From e1064b13c070b2014f66be20f73cb1150f2eac65 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 28 Apr 2014 11:30:12 +0200 Subject: [PATCH 001/875] NewLisp language added --- lib/linguist/languages.yml | 10 + lib/linguist/samples.json | 104197 +++++++++++++++--------------- samples/Common Lisp/sample.lsp | 21 + samples/NewLisp/irc.lsp | 239 + 4 files changed, 52465 insertions(+), 52002 deletions(-) create mode 100644 samples/Common Lisp/sample.lsp create mode 100644 samples/NewLisp/irc.lsp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 70302378..62bff7b9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1276,6 +1276,16 @@ NetLogo: color: "#ff2b2b" primary_extension: .nlogo +NewLisp: + type: programming + lexer: NewLisp + primary_extension: .lsp + color: "#eedd66" + extensions: + - .nl + interpreters: + - newlisp + Nginx: type: markup lexer: Nginx configuration file diff --git a/lib/linguist/samples.json b/lib/linguist/samples.json index f174c9ab..e82f9c84 100644 --- a/lib/linguist/samples.json +++ b/lib/linguist/samples.json @@ -1,469 +1,77 @@ { "extnames": { - "ABAP": [ - ".abap" - ], - "Agda": [ - ".agda" - ], - "Alloy": [ - ".als" - ], - "Apex": [ - ".cls" - ], - "AppleScript": [ - ".applescript" - ], - "Arduino": [ - ".ino" - ], - "AsciiDoc": [ - ".adoc", - ".asc", - ".asciidoc" - ], - "AspectJ": [ - ".aj" - ], - "ATS": [ - ".atxt", - ".dats", - ".hats", - ".sats" - ], - "AutoHotkey": [ - ".ahk" - ], - "Awk": [ - ".awk" - ], - "BlitzBasic": [ - ".bb" - ], - "Bluespec": [ - ".bsv" - ], - "Brightscript": [ - ".brs" - ], - "C": [ - ".c", - ".cats", - ".h" - ], - "C#": [ - ".cs", - ".cshtml" - ], - "C++": [ - ".cc", - ".cpp", - ".h", - ".hpp", - ".inl" - ], - "Ceylon": [ - ".ceylon" - ], - "Cirru": [ - ".cirru" - ], - "Clojure": [ - ".cl2", - ".clj", - ".cljc", - ".cljs", - ".cljscm", - ".cljx", - ".hic" - ], - "COBOL": [ - ".cbl", - ".ccp", - ".cob", - ".cpy" - ], - "CoffeeScript": [ - ".coffee" - ], - "Common Lisp": [ - ".cl", - ".lisp" - ], - "Coq": [ - ".v" - ], - "Creole": [ - ".creole" - ], - "Crystal": [ - ".cr" - ], - "CSS": [ - ".css" - ], - "Cuda": [ - ".cu", - ".cuh" - ], - "Dart": [ - ".dart" - ], - "Diff": [ - ".patch" - ], - "DM": [ - ".dm" - ], - "Dogescript": [ - ".djs" - ], - "E": [ - ".E" - ], - "Eagle": [ - ".brd", - ".sch" - ], - "ECL": [ - ".ecl" - ], - "edn": [ - ".edn" - ], "Elm": [ ".elm" ], - "Emacs Lisp": [ - ".el" + "Liquid": [ + ".liquid" ], - "Erlang": [ - ".erl", - ".escript", - ".script!" + "Racket": [ + ".scrbl" ], - "fish": [ - ".fish" + "PogoScript": [ + ".pogo" ], - "Forth": [ - ".forth", - ".fth" - ], - "Frege": [ - ".fr" - ], - "Game Maker Language": [ - ".gml" - ], - "GAP": [ - ".g", - ".gd", - ".gi" - ], - "GAS": [ - ".s" - ], - "GLSL": [ - ".fp", - ".glsl" - ], - "Gnuplot": [ - ".gnu", - ".gp" - ], - "Gosu": [ - ".gs", - ".gst", - ".gsx", - ".vark" - ], - "Grammatical Framework": [ - ".gf" - ], - "Groovy": [ - ".gradle", - ".script!" - ], - "Groovy Server Pages": [ - ".gsp" - ], - "Haml": [ - ".haml" - ], - "Handlebars": [ - ".handlebars", - ".hbs" + "Zephir": [ + ".zep" ], "HTML": [ ".html", ".st" ], - "Hy": [ - ".hy" - ], - "IDL": [ - ".dlm", - ".pro" - ], - "Idris": [ - ".idr" - ], - "Inform 7": [ - ".i7x", - ".ni" - ], - "Ioke": [ - ".ik" - ], - "Jade": [ - ".jade" - ], - "Java": [ - ".java" - ], - "JavaScript": [ - ".js", - ".script!" - ], - "JSON": [ - ".json", - ".lock" - ], - "JSON5": [ - ".json5" - ], - "JSONiq": [ - ".jq" - ], - "JSONLD": [ - ".jsonld" - ], - "Julia": [ - ".jl" - ], - "Kit": [ - ".kit" - ], - "Kotlin": [ - ".kt" - ], - "KRL": [ - ".krl" - ], - "Lasso": [ - ".las", - ".lasso", - ".lasso9", - ".ldml" - ], - "Latte": [ - ".latte" - ], - "Less": [ - ".less" - ], - "LFE": [ - ".lfe" - ], - "Liquid": [ - ".liquid" - ], - "Literate Agda": [ - ".lagda" - ], - "Literate CoffeeScript": [ - ".litcoffee" - ], - "LiveScript": [ - ".ls" - ], - "Logos": [ - ".xm" - ], - "Logtalk": [ - ".lgt" - ], - "Lua": [ - ".pd_lua" - ], - "M": [ - ".m" - ], - "Makefile": [ - ".script!" - ], - "Markdown": [ - ".md" - ], - "Mask": [ - ".mask" - ], - "Mathematica": [ - ".m" - ], - "Matlab": [ - ".m" - ], - "Max": [ - ".maxhelp", - ".maxpat", - ".mxt" - ], - "MediaWiki": [ - ".mediawiki" - ], - "Mercury": [ - ".m", - ".moo" - ], - "Monkey": [ - ".monkey" - ], - "Moocode": [ - ".moo" - ], - "MoonScript": [ - ".moon" - ], - "MTML": [ - ".mtml" - ], - "Nemerle": [ - ".n" + "Opa": [ + ".opa" ], "NetLogo": [ ".nlogo" ], - "Nimrod": [ - ".nim" + "RobotFramework": [ + ".robot" ], - "NSIS": [ - ".nsh", - ".nsi" - ], - "Nu": [ - ".nu", - ".script!" - ], - "Objective-C": [ - ".h", - ".m" - ], - "Objective-C++": [ - ".mm" - ], - "OCaml": [ - ".eliom", - ".ml" - ], - "Omgrofl": [ - ".omgrofl" - ], - "Opa": [ - ".opa" - ], - "OpenCL": [ - ".cl" - ], - "OpenEdge ABL": [ - ".cls", - ".p" - ], - "Org": [ - ".org" - ], - "Oxygene": [ - ".oxygene" + "Awk": [ + ".awk" ], "Parrot Assembly": [ ".pasm" ], - "Parrot Internal Representation": [ - ".pir" + "Agda": [ + ".agda" ], - "Pascal": [ - ".dpr" + "Verilog": [ + ".v" ], - "PAWN": [ - ".pwn" + "Groovy Server Pages": [ + ".gsp" ], - "Perl": [ - ".fcgi", - ".pl", - ".pm", - ".pod", - ".script!", - ".t" - ], - "Perl6": [ - ".p6", - ".pm6" - ], - "PHP": [ - ".module", - ".php", + "Groovy": [ + ".gradle", ".script!" ], - "Pod": [ - ".pod" + "Sass": [ + ".sass", + ".scss" ], - "PogoScript": [ - ".pogo" + "Apex": [ + ".cls" ], - "PostScript": [ - ".ps" + "UnrealScript": [ + ".uc" ], - "PowerShell": [ - ".ps1", - ".psm1" + "LiveScript": [ + ".ls" ], - "Processing": [ - ".pde" + "BlitzBasic": [ + ".bb" ], - "Prolog": [ - ".ecl", - ".pl", - ".prolog" + "Forth": [ + ".forth", + ".fth" ], - "Protocol Buffer": [ - ".proto" - ], - "PureScript": [ - ".purs" - ], - "Python": [ - ".py", + "Erlang": [ + ".erl", + ".escript", ".script!" ], - "R": [ - ".R", - ".r", - ".rsx", - ".script!" - ], - "Racket": [ - ".scrbl" - ], - "Ragel in Ruby Host": [ - ".rl" - ], - "RDoc": [ - ".rdoc" - ], - "Rebol": [ - ".r", - ".r2", - ".r3", - ".reb", - ".rebol" - ], - "RMarkdown": [ - ".rmd" - ], - "RobotFramework": [ - ".robot" - ], "Ruby": [ ".pluginspec", ".rabl", @@ -471,32 +79,59 @@ ".rb", ".script!" ], - "Rust": [ - ".rs" + "PowerShell": [ + ".ps1", + ".psm1" ], - "Sass": [ - ".sass", - ".scss" + "Game Maker Language": [ + ".gml" ], - "Scala": [ - ".sbt", - ".sc", - ".script!" + "Emacs Lisp": [ + ".el" ], - "Scaml": [ - ".scaml" + "PAWN": [ + ".pwn" ], - "Scheme": [ - ".sld", - ".sps" + "Protocol Buffer": [ + ".proto" ], - "Scilab": [ - ".sce", - ".sci", - ".tst" + "Parrot Internal Representation": [ + ".pir" ], - "SCSS": [ - ".scss" + "Standard ML": [ + ".fun", + ".sig", + ".sml" + ], + "MediaWiki": [ + ".mediawiki" + ], + "Jade": [ + ".jade" + ], + "Haml": [ + ".haml" + ], + "JSONiq": [ + ".jq" + ], + "Logos": [ + ".xm" + ], + "Julia": [ + ".jl" + ], + "XProc": [ + ".xpl" + ], + "TypeScript": [ + ".ts" + ], + "XQuery": [ + ".xqm" + ], + "MTML": [ + ".mtml" ], "Shell": [ ".bash", @@ -504,35 +139,270 @@ ".sh", ".zsh" ], - "ShellSession": [ - ".sh-session" + "Mathematica": [ + ".m" ], "Shen": [ ".shen" ], - "Slash": [ - ".sl" + "Prolog": [ + ".ecl", + ".pl", + ".prolog" ], - "Smalltalk": [ - ".st" + "Idris": [ + ".idr" + ], + "CoffeeScript": [ + ".coffee" + ], + "Objective-C": [ + ".h", + ".m" + ], + "ATS": [ + ".atxt", + ".dats", + ".hats", + ".sats" + ], + "Nimrod": [ + ".nim" + ], + "Gnuplot": [ + ".gnu", + ".gp" + ], + "YAML": [ + ".yml" + ], + "Dart": [ + ".dart" ], "SourcePawn": [ ".sp" ], - "SQL": [ - ".prc", - ".sql", - ".tab", - ".udf", - ".viw" + "Omgrofl": [ + ".omgrofl" ], - "Squirrel": [ - ".nut" + "Nemerle": [ + ".n" ], - "Standard ML": [ - ".fun", - ".sig", - ".sml" + "Nu": [ + ".nu", + ".script!" + ], + "C++": [ + ".cc", + ".cpp", + ".h", + ".hpp", + ".inl" + ], + "Cuda": [ + ".cu", + ".cuh" + ], + "Gosu": [ + ".gs", + ".gst", + ".gsx", + ".vark" + ], + "Crystal": [ + ".cr" + ], + "RMarkdown": [ + ".rmd" + ], + "E": [ + ".E" + ], + "AspectJ": [ + ".aj" + ], + "Logtalk": [ + ".lgt" + ], + "Frege": [ + ".fr" + ], + "Inform 7": [ + ".i7x", + ".ni" + ], + "Tcl": [ + ".tm" + ], + "edn": [ + ".edn" + ], + "Hy": [ + ".hy" + ], + "DM": [ + ".dm" + ], + "GLSL": [ + ".fp", + ".glsl" + ], + "ABAP": [ + ".abap" + ], + "CSS": [ + ".css" + ], + "JSON": [ + ".json", + ".lock" + ], + "Handlebars": [ + ".handlebars", + ".hbs" + ], + "Creole": [ + ".creole" + ], + "JSON5": [ + ".json5" + ], + "VHDL": [ + ".vhd" + ], + "PHP": [ + ".module", + ".php", + ".script!" + ], + "OCaml": [ + ".eliom", + ".ml" + ], + "Grammatical Framework": [ + ".gf" + ], + "Pod": [ + ".pod" + ], + "Mercury": [ + ".m", + ".moo" + ], + "Volt": [ + ".volt" + ], + "Pascal": [ + ".dpr" + ], + "AsciiDoc": [ + ".adoc", + ".asc", + ".asciidoc" + ], + "Kotlin": [ + ".kt" + ], + "Coq": [ + ".v" + ], + "fish": [ + ".fish" + ], + "Less": [ + ".less" + ], + "Smalltalk": [ + ".st" + ], + "Perl6": [ + ".p6", + ".pm6" + ], + "Java": [ + ".java" + ], + "Scilab": [ + ".sce", + ".sci", + ".tst" + ], + "Ioke": [ + ".ik" + ], + "Org": [ + ".org" + ], + "Slash": [ + ".sl" + ], + "Python": [ + ".py", + ".script!" + ], + "NewLisp": [ + ".lsp" + ], + "Eagle": [ + ".brd", + ".sch" + ], + "PostScript": [ + ".ps" + ], + "Max": [ + ".maxhelp", + ".maxpat", + ".mxt" + ], + "KRL": [ + ".krl" + ], + "Literate Agda": [ + ".lagda" + ], + "JavaScript": [ + ".js", + ".script!" + ], + "ECL": [ + ".ecl" + ], + "Lua": [ + ".pd_lua" + ], + "AutoHotkey": [ + ".ahk" + ], + "Cirru": [ + ".cirru" + ], + "PureScript": [ + ".purs" + ], + "Kit": [ + ".kit" + ], + "Monkey": [ + ".monkey" + ], + "XML": [ + ".ant", + ".ivy", + ".pluginspec", + ".xml" + ], + "SuperCollider": [ + ".scd" + ], + "XSLT": [ + ".xslt" + ], + "ShellSession": [ + ".sh-session" + ], + "Matlab": [ + ".m" ], "Stata": [ ".ado", @@ -543,105 +413,221 @@ ".matah", ".sthlp" ], + "Common Lisp": [ + ".cl", + ".lisp", + ".lsp" + ], + "RDoc": [ + ".rdoc" + ], "Stylus": [ ".styl" ], - "SuperCollider": [ - ".scd" + "wisp": [ + ".wisp" + ], + "Turing": [ + ".t" + ], + "Arduino": [ + ".ino" + ], + "Alloy": [ + ".als" + ], + "OpenCL": [ + ".cl" + ], + "JSONLD": [ + ".jsonld" + ], + "Makefile": [ + ".script!" + ], + "M": [ + ".m" + ], + "Scheme": [ + ".sld", + ".sps" ], "SystemVerilog": [ ".sv", ".svh", ".vh" ], - "Tcl": [ - ".tm" + "Markdown": [ + ".md" ], - "Tea": [ - ".tea" + "Ragel in Ruby Host": [ + ".rl" + ], + "Dogescript": [ + ".djs" + ], + "OpenEdge ABL": [ + ".cls", + ".p" + ], + "GAS": [ + ".s" + ], + "Squirrel": [ + ".nut" + ], + "SCSS": [ + ".scss" + ], + "NSIS": [ + ".nsh", + ".nsi" + ], + "Brightscript": [ + ".brs" + ], + "R": [ + ".R", + ".r", + ".rsx", + ".script!" + ], + "Rust": [ + ".rs" + ], + "Diff": [ + ".patch" + ], + "C": [ + ".c", + ".cats", + ".h" + ], + "Processing": [ + ".pde" + ], + "Scala": [ + ".sbt", + ".sc", + ".script!" + ], + "Objective-C++": [ + ".mm" + ], + "SQL": [ + ".prc", + ".sql", + ".tab", + ".udf", + ".viw" + ], + "Bluespec": [ + ".bsv" + ], + "Literate CoffeeScript": [ + ".litcoffee" + ], + "Xtend": [ + ".xtend" ], "TeX": [ ".cls" ], - "Turing": [ - ".t" + "AppleScript": [ + ".applescript" ], - "TXL": [ - ".txl" + "Oxygene": [ + ".oxygene" ], - "TypeScript": [ - ".ts" + "Rebol": [ + ".r", + ".r2", + ".r3", + ".reb", + ".rebol" ], - "UnrealScript": [ - ".uc" + "Latte": [ + ".latte" ], - "Verilog": [ - ".v" + "C#": [ + ".cs", + ".cshtml" ], - "VHDL": [ - ".vhd" + "LFE": [ + ".lfe" + ], + "MoonScript": [ + ".moon" + ], + "Moocode": [ + ".moo" + ], + "Clojure": [ + ".cl2", + ".clj", + ".cljc", + ".cljs", + ".cljscm", + ".cljx", + ".hic" + ], + "XC": [ + ".xc" + ], + "Scaml": [ + ".scaml" + ], + "COBOL": [ + ".cbl", + ".ccp", + ".cob", + ".cpy" + ], + "Tea": [ + ".tea" + ], + "Mask": [ + ".mask" + ], + "GAP": [ + ".g", + ".gd", + ".gi" ], "Visual Basic": [ ".cls", ".vb", ".vbhtml" ], - "Volt": [ - ".volt" + "Lasso": [ + ".las", + ".lasso", + ".lasso9", + ".ldml" ], - "wisp": [ - ".wisp" + "Ceylon": [ + ".ceylon" ], - "XC": [ - ".xc" + "Perl": [ + ".fcgi", + ".pl", + ".pm", + ".pod", + ".script!", + ".t" ], - "XML": [ - ".ant", - ".ivy", - ".pluginspec", - ".xml" + "TXL": [ + ".txl" ], - "XProc": [ - ".xpl" - ], - "XQuery": [ - ".xqm" - ], - "XSLT": [ - ".xslt" - ], - "Xtend": [ - ".xtend" - ], - "YAML": [ - ".yml" - ], - "Zephir": [ - ".zep" + "IDL": [ + ".dlm", + ".pro" ] }, "interpreters": { }, "filenames": { - "ApacheConf": [ - ".htaccess", - "apache2.conf", - "httpd.conf" - ], - "INI": [ - ".editorconfig", - ".gitconfig" - ], - "Makefile": [ - "Makefile" - ], - "Nginx": [ - "nginx.conf" - ], - "Perl": [ - "ack" - ], "Ruby": [ "Appraisals", "Capfile", @@ -673,2389 +659,1155 @@ "zshenv", "zshrc" ], + "YAML": [ + ".gemrc" + ], + "INI": [ + ".editorconfig", + ".gitconfig" + ], "VimL": [ ".gvimrc", ".vimrc" ], - "YAML": [ - ".gemrc" + "Makefile": [ + "Makefile" + ], + "Nginx": [ + "nginx.conf" + ], + "ApacheConf": [ + ".htaccess", + "apache2.conf", + "httpd.conf" + ], + "Perl": [ + "ack" ] }, - "tokens_total": 589756, - "languages_total": 713, + "tokens_total": 591099, + "languages_total": 715, "tokens": { - "ABAP": { - "*/**": 1, - "*": 56, - "The": 2, - "MIT": 2, - "License": 1, - "(": 8, - ")": 8, - "Copyright": 1, - "c": 3, - "Ren": 1, - "van": 1, - "Mil": 1, - "Permission": 1, - "is": 2, - "hereby": 1, - "granted": 1, - "free": 1, - "of": 6, - "charge": 1, - "to": 10, - "any": 1, - "person": 1, - "obtaining": 1, - "a": 1, - "copy": 2, - "this": 2, - "software": 1, - "and": 3, - "associated": 1, - "documentation": 1, - "files": 4, - "the": 10, - "deal": 1, - "in": 3, - "Software": 3, - "without": 2, - "restriction": 1, - "including": 1, - "limitation": 1, - "rights": 1, - "use": 1, - "modify": 1, - "merge": 1, - "publish": 1, - "distribute": 1, - "sublicense": 1, - "and/or": 1, - "sell": 1, - "copies": 2, - "permit": 1, - "persons": 1, - "whom": 1, - "furnished": 1, - "do": 4, - "so": 1, - "subject": 1, - "following": 1, - "conditions": 1, - "above": 1, - "copyright": 1, - "notice": 2, - "permission": 1, - "shall": 1, - "be": 1, - "included": 1, - "all": 1, - "or": 1, - "substantial": 1, - "portions": 1, - "Software.": 1, - "THE": 6, - "SOFTWARE": 2, - "IS": 1, - "PROVIDED": 1, - "WITHOUT": 1, - "WARRANTY": 1, - "OF": 4, - "ANY": 2, - "KIND": 1, - "EXPRESS": 1, - "OR": 7, - "IMPLIED": 1, - "INCLUDING": 1, - "BUT": 1, - "NOT": 1, - "LIMITED": 1, - "TO": 2, - "WARRANTIES": 1, - "MERCHANTABILITY": 1, - "FITNESS": 1, - "FOR": 2, - "A": 1, - "PARTICULAR": 1, - "PURPOSE": 1, - "AND": 1, - "NONINFRINGEMENT.": 1, - "IN": 4, - "NO": 1, - "EVENT": 1, - "SHALL": 1, - "AUTHORS": 1, - "COPYRIGHT": 1, - "HOLDERS": 1, - "BE": 1, - "LIABLE": 1, - "CLAIM": 1, - "DAMAGES": 1, - "OTHER": 2, - "LIABILITY": 1, - "WHETHER": 1, - "AN": 1, - "ACTION": 1, - "CONTRACT": 1, - "TORT": 1, - "OTHERWISE": 1, - "ARISING": 1, - "FROM": 1, - "OUT": 1, - "CONNECTION": 1, - "WITH": 1, - "USE": 1, - "DEALINGS": 1, - "SOFTWARE.": 1, - "*/": 1, - "-": 978, - "CLASS": 2, - "CL_CSV_PARSER": 6, - "DEFINITION": 2, - "class": 2, - "cl_csv_parser": 2, - "definition": 1, - "public": 3, - "inheriting": 1, - "from": 1, - "cl_object": 1, - "final": 1, - "create": 1, - ".": 9, - "section.": 3, - "not": 3, - "include": 3, - "other": 3, - "source": 3, - "here": 3, - "type": 11, - "pools": 1, - "abap": 1, - "methods": 2, - "constructor": 2, - "importing": 1, - "delegate": 1, - "ref": 1, - "if_csv_parser_delegate": 1, - "csvstring": 1, - "string": 1, - "separator": 1, - "skip_first_line": 1, - "abap_bool": 2, - "parse": 2, - "raising": 1, - "cx_csv_parse_error": 2, - "protected": 1, - "private": 1, - "constants": 1, - "_textindicator": 1, - "value": 2, - "IMPLEMENTATION": 2, - "implementation.": 1, - "": 2, - "+": 9, - "|": 7, - "Instance": 2, - "Public": 1, - "Method": 2, - "CONSTRUCTOR": 1, - "[": 5, - "]": 5, - "DELEGATE": 1, - "TYPE": 5, - "REF": 1, - "IF_CSV_PARSER_DELEGATE": 1, - "CSVSTRING": 1, - "STRING": 1, - "SEPARATOR": 1, - "C": 1, - "SKIP_FIRST_LINE": 1, - "ABAP_BOOL": 1, - "": 2, - "method": 2, - "constructor.": 1, - "super": 1, - "_delegate": 1, - "delegate.": 1, - "_csvstring": 2, - "csvstring.": 1, - "_separator": 1, - "separator.": 1, - "_skip_first_line": 1, - "skip_first_line.": 1, - "endmethod.": 2, - "Get": 1, - "lines": 4, - "data": 3, - "is_first_line": 1, - "abap_true.": 2, - "standard": 2, - "table": 3, - "string.": 3, - "_lines": 1, - "field": 1, - "symbols": 1, - "": 3, - "loop": 1, - "at": 2, - "assigning": 1, - "Parse": 1, - "line": 1, - "values": 2, - "_parse_line": 2, - "Private": 1, - "_LINES": 1, - "<": 1, - "RETURNING": 1, - "STRINGTAB": 1, - "_lines.": 1, - "split": 1, - "cl_abap_char_utilities": 1, - "cr_lf": 1, - "into": 6, - "returning.": 1, - "Space": 2, - "concatenate": 4, - "csvvalue": 6, - "csvvalue.": 5, - "else.": 4, - "char": 2, - "endif.": 6, - "This": 1, - "indicates": 1, - "an": 1, - "error": 1, - "CSV": 1, - "formatting": 1, - "text_ended": 1, - "message": 2, - "e003": 1, - "csv": 1, - "msg.": 2, - "raise": 1, - "exception": 1, - "exporting": 1, - "endwhile.": 2, - "append": 2, - "csvvalues.": 2, - "clear": 1, - "pos": 2, - "endclass.": 1 - }, - "Agda": { - "module": 3, - "NatCat": 1, - "where": 2, - "open": 2, - "import": 2, - "Relation.Binary.PropositionalEquality": 1, - "-": 21, - "If": 1, - "you": 2, - "can": 1, - "show": 1, - "that": 1, - "a": 1, - "relation": 1, - "only": 1, - "ever": 1, - "has": 1, - "one": 1, - "inhabitant": 5, - "get": 1, - "the": 1, - "category": 1, - "laws": 1, - "for": 1, - "free": 1, - "EasyCategory": 3, - "(": 36, - "obj": 4, - "Set": 2, - ")": 36, - "_": 6, - "{": 10, - "x": 34, - "y": 28, - "z": 18, - "}": 10, - "id": 9, - "single": 4, - "r": 26, - "s": 29, - "assoc": 2, - "w": 4, - "t": 6, - "Data.Nat": 1, - "same": 5, - ".0": 2, - "n": 14, - "refl": 6, - ".": 5, - "suc": 6, - "m": 6, - "cong": 1, - "trans": 5, - ".n": 1, - "zero": 1, - "Nat": 1 - }, - "Alloy": { - "module": 3, - "examples/systems/file_system": 1, - "abstract": 2, - "sig": 20, - "Object": 10, - "{": 54, - "}": 60, - "Name": 2, - "File": 1, - "extends": 10, - "some": 3, - "d": 3, - "Dir": 8, - "|": 19, - "this": 14, - "in": 19, - "d.entries.contents": 1, - "entries": 3, - "set": 10, - "DirEntry": 2, - "parent": 3, - "lone": 6, - "this.": 4, - "@contents.": 1, - "@entries": 1, - "all": 16, - "e1": 2, - "e2": 2, - "e1.name": 1, - "e2.name": 1, - "@parent": 2, - "Root": 5, - "one": 8, - "no": 8, - "Cur": 1, - "name": 1, - "contents": 2, - "pred": 16, - "OneParent_buggyVersion": 2, - "-": 41, - "d.parent": 2, - "OneParent_correctVersion": 2, - "(": 12, - "&&": 2, - "contents.d": 1, - ")": 9, - "NoDirAliases": 3, - "o": 1, - "o.": 1, - "check": 6, - "for": 7, - "expect": 6, - "examples/systems/marksweepgc": 1, - "Node": 10, - "HeapState": 5, - "left": 3, - "right": 1, - "marked": 1, - "freeList": 1, - "clearMarks": 1, - "[": 82, - "hs": 16, - ".marked": 3, - ".right": 4, - "hs.right": 3, - "fun": 1, - "reachable": 1, - "n": 5, - "]": 80, - "+": 14, - "n.": 1, - "hs.left": 2, - "mark": 1, - "from": 2, - "hs.reachable": 1, - "setFreeList": 1, - ".freeList.*": 3, - ".left": 5, - "hs.marked": 1, - "GC": 1, - "root": 5, - "assert": 3, - "Soundness1": 2, - "h": 9, - "live": 3, - "h.reachable": 1, - "h.right": 1, - "Soundness2": 2, - ".reachable": 2, - "h.GC": 1, - ".freeList": 1, - "Completeness": 1, - "examples/systems/views": 1, - "open": 2, - "util/ordering": 1, - "State": 16, - "as": 2, - "so": 1, - "util/relation": 1, - "rel": 1, - "Ref": 19, - "t": 16, - "b": 13, - "v": 25, - "views": 2, - "when": 1, - "is": 1, - "view": 2, - "of": 3, - "type": 1, - "backing": 1, - "dirty": 3, - "contains": 1, - "refs": 7, - "that": 1, - "have": 1, - "been": 1, - "invalidated": 1, - "obj": 1, - "ViewType": 8, - "anyviews": 2, - "visualization": 1, - "ViewType.views": 1, - "Map": 2, - "keys": 3, - "map": 2, - "s": 6, - "Ref.map": 1, - "s.refs": 3, - "MapRef": 4, - "fact": 4, - "State.obj": 3, - "Iterator": 2, - "done": 3, - "lastRef": 2, - "IteratorRef": 5, - "Set": 2, - "elts": 2, - "SetRef": 5, - "KeySetView": 6, - "State.views": 1, - "IteratorView": 3, - "s.views": 2, - "handle": 1, - "possibility": 1, - "modifying": 1, - "an": 1, - "object": 1, - "and": 1, - "its": 1, - "at": 1, - "once": 1, - "*": 1, - "should": 1, - "we": 1, - "limit": 1, - "frame": 1, - "conds": 1, - "to": 1, - "non": 1, - "*/": 1, - "modifies": 5, - "pre": 15, - "post": 14, - "rs": 4, - "let": 5, - "vr": 1, - "pre.views": 8, - "mods": 3, - "rs.*vr": 1, - "r": 3, - "pre.refs": 6, - "pre.obj": 10, - "post.obj": 7, - "viewFrame": 4, - "post.dirty": 1, - "pre.dirty": 1, - "allocates": 5, - "&": 3, - "post.refs": 1, - ".map": 3, - ".elts": 3, - "dom": 1, - "<:>": 1, - "setRefs": 1, - "MapRef.put": 1, - "k": 5, - "none": 4, - "post.views": 4, - "SetRef.iterator": 1, - "iterRef": 4, - "i": 7, - "i.left": 3, - "i.done": 1, - "i.lastRef": 1, - "IteratorRef.remove": 1, - ".lastRef": 2, - "IteratorRef.next": 1, - "ref": 3, - "IteratorRef.hasNext": 1, - "s.obj": 1, - "zippishOK": 2, - "ks": 6, - "vs": 6, - "m": 4, - "ki": 2, - "vi": 2, - "s0": 4, - "so/first": 1, - "s1": 4, - "so/next": 7, - "s2": 6, - "s3": 4, - "s4": 4, - "s5": 4, - "s6": 4, - "s7": 2, - "precondition": 2, - "s0.dirty": 1, - "ks.iterator": 1, - "vs.iterator": 1, - "ki.hasNext": 1, - "vi.hasNext": 1, - "ki.this/next": 1, - "vi.this/next": 1, - "m.put": 1, - "ki.remove": 1, - "vi.remove": 1, - "State.dirty": 1, - "ViewType.pre.views": 2, - "but": 1, - "#s.obj": 1, - "<": 1 - }, - "ApacheConf": { - "ServerSignature": 1, - "Off": 1, - "RewriteCond": 15, - "%": 48, - "{": 16, - "REQUEST_METHOD": 1, - "}": 16, - "(": 16, - "HEAD": 1, - "|": 80, - "TRACE": 1, - "DELETE": 1, - "TRACK": 1, - ")": 17, - "[": 17, - "NC": 13, - "OR": 14, - "]": 17, - "THE_REQUEST": 1, - "r": 1, - "n": 1, - "A": 6, - "D": 6, - "HTTP_REFERER": 1, - "<|>": 6, - "C": 5, - "E": 5, - "HTTP_COOKIE": 1, - "REQUEST_URI": 1, - "/": 3, - ";": 2, - "<": 1, - ".": 7, - "HTTP_USER_AGENT": 5, - "java": 1, - "curl": 2, - "wget": 2, - "winhttp": 1, - "HTTrack": 1, - "clshttp": 1, - "archiver": 1, - "loader": 1, - "email": 1, - "harvest": 1, - "extract": 1, - "grab": 1, - "miner": 1, - "libwww": 1, - "-": 43, - "perl": 1, - "python": 1, - "nikto": 1, - "scan": 1, - "#Block": 1, - "mySQL": 1, - "injects": 1, - "QUERY_STRING": 5, - ".*": 3, - "*": 1, - "union": 1, - "select": 1, - "insert": 1, - "cast": 1, - "set": 1, - "declare": 1, - "drop": 1, - "update": 1, - "md5": 1, - "benchmark": 1, - "./": 1, - "localhost": 1, - "loopback": 1, - ".0": 2, - ".1": 1, - "a": 1, - "z0": 1, - "RewriteRule": 1, - "index.php": 1, - "F": 1, - "#": 182, - "ServerRoot": 2, - "#Listen": 2, - "Listen": 2, - "LoadModule": 126, - "authn_file_module": 2, - "/usr/lib/apache2/modules/mod_authn_file.so": 1, - "authn_dbm_module": 2, - "/usr/lib/apache2/modules/mod_authn_dbm.so": 1, - "authn_anon_module": 2, - "/usr/lib/apache2/modules/mod_authn_anon.so": 1, - "authn_dbd_module": 2, - "/usr/lib/apache2/modules/mod_authn_dbd.so": 1, - "authn_default_module": 2, - "/usr/lib/apache2/modules/mod_authn_default.so": 1, - "authn_alias_module": 1, - "/usr/lib/apache2/modules/mod_authn_alias.so": 1, - "authz_host_module": 2, - "/usr/lib/apache2/modules/mod_authz_host.so": 1, - "authz_groupfile_module": 2, - "/usr/lib/apache2/modules/mod_authz_groupfile.so": 1, - "authz_user_module": 2, - "/usr/lib/apache2/modules/mod_authz_user.so": 1, - "authz_dbm_module": 2, - "/usr/lib/apache2/modules/mod_authz_dbm.so": 1, - "authz_owner_module": 2, - "/usr/lib/apache2/modules/mod_authz_owner.so": 1, - "authnz_ldap_module": 1, - "/usr/lib/apache2/modules/mod_authnz_ldap.so": 1, - "authz_default_module": 2, - "/usr/lib/apache2/modules/mod_authz_default.so": 1, - "auth_basic_module": 2, - "/usr/lib/apache2/modules/mod_auth_basic.so": 1, - "auth_digest_module": 2, - "/usr/lib/apache2/modules/mod_auth_digest.so": 1, - "file_cache_module": 1, - "/usr/lib/apache2/modules/mod_file_cache.so": 1, - "cache_module": 2, - "/usr/lib/apache2/modules/mod_cache.so": 1, - "disk_cache_module": 2, - "/usr/lib/apache2/modules/mod_disk_cache.so": 1, - "mem_cache_module": 2, - "/usr/lib/apache2/modules/mod_mem_cache.so": 1, - "dbd_module": 2, - "/usr/lib/apache2/modules/mod_dbd.so": 1, - "dumpio_module": 2, - "/usr/lib/apache2/modules/mod_dumpio.so": 1, - "ext_filter_module": 2, - "/usr/lib/apache2/modules/mod_ext_filter.so": 1, - "include_module": 2, - "/usr/lib/apache2/modules/mod_include.so": 1, - "filter_module": 2, - "/usr/lib/apache2/modules/mod_filter.so": 1, - "charset_lite_module": 1, - "/usr/lib/apache2/modules/mod_charset_lite.so": 1, - "deflate_module": 2, - "/usr/lib/apache2/modules/mod_deflate.so": 1, - "ldap_module": 1, - "/usr/lib/apache2/modules/mod_ldap.so": 1, - "log_forensic_module": 2, - "/usr/lib/apache2/modules/mod_log_forensic.so": 1, - "env_module": 2, - "/usr/lib/apache2/modules/mod_env.so": 1, - "mime_magic_module": 2, - "/usr/lib/apache2/modules/mod_mime_magic.so": 1, - "cern_meta_module": 2, - "/usr/lib/apache2/modules/mod_cern_meta.so": 1, - "expires_module": 2, - "/usr/lib/apache2/modules/mod_expires.so": 1, - "headers_module": 2, - "/usr/lib/apache2/modules/mod_headers.so": 1, - "ident_module": 2, - "/usr/lib/apache2/modules/mod_ident.so": 1, - "usertrack_module": 2, - "/usr/lib/apache2/modules/mod_usertrack.so": 1, - "unique_id_module": 2, - "/usr/lib/apache2/modules/mod_unique_id.so": 1, - "setenvif_module": 2, - "/usr/lib/apache2/modules/mod_setenvif.so": 1, - "version_module": 2, - "/usr/lib/apache2/modules/mod_version.so": 1, - "proxy_module": 2, - "/usr/lib/apache2/modules/mod_proxy.so": 1, - "proxy_connect_module": 2, - "/usr/lib/apache2/modules/mod_proxy_connect.so": 1, - "proxy_ftp_module": 2, - "/usr/lib/apache2/modules/mod_proxy_ftp.so": 1, - "proxy_http_module": 2, - "/usr/lib/apache2/modules/mod_proxy_http.so": 1, - "proxy_ajp_module": 2, - "/usr/lib/apache2/modules/mod_proxy_ajp.so": 1, - "proxy_balancer_module": 2, - "/usr/lib/apache2/modules/mod_proxy_balancer.so": 1, - "ssl_module": 4, - "/usr/lib/apache2/modules/mod_ssl.so": 1, - "mime_module": 4, - "/usr/lib/apache2/modules/mod_mime.so": 1, - "dav_module": 2, - "/usr/lib/apache2/modules/mod_dav.so": 1, - "status_module": 2, - "/usr/lib/apache2/modules/mod_status.so": 1, - "autoindex_module": 2, - "/usr/lib/apache2/modules/mod_autoindex.so": 1, - "asis_module": 2, - "/usr/lib/apache2/modules/mod_asis.so": 1, - "info_module": 2, - "/usr/lib/apache2/modules/mod_info.so": 1, - "suexec_module": 1, - "/usr/lib/apache2/modules/mod_suexec.so": 1, - "cgid_module": 3, - "/usr/lib/apache2/modules/mod_cgid.so": 1, - "cgi_module": 2, - "/usr/lib/apache2/modules/mod_cgi.so": 1, - "dav_fs_module": 2, - "/usr/lib/apache2/modules/mod_dav_fs.so": 1, - "dav_lock_module": 1, - "/usr/lib/apache2/modules/mod_dav_lock.so": 1, - "vhost_alias_module": 2, - "/usr/lib/apache2/modules/mod_vhost_alias.so": 1, - "negotiation_module": 2, - "/usr/lib/apache2/modules/mod_negotiation.so": 1, - "dir_module": 4, - "/usr/lib/apache2/modules/mod_dir.so": 1, - "imagemap_module": 2, - "/usr/lib/apache2/modules/mod_imagemap.so": 1, - "actions_module": 2, - "/usr/lib/apache2/modules/mod_actions.so": 1, - "speling_module": 2, - "/usr/lib/apache2/modules/mod_speling.so": 1, - "userdir_module": 2, - "/usr/lib/apache2/modules/mod_userdir.so": 1, - "alias_module": 4, - "/usr/lib/apache2/modules/mod_alias.so": 1, - "rewrite_module": 2, - "/usr/lib/apache2/modules/mod_rewrite.so": 1, - "": 17, - "mpm_netware_module": 2, - "User": 2, - "daemon": 2, - "Group": 2, - "": 17, - "ServerAdmin": 2, - "you@example.com": 2, - "#ServerName": 2, - "www.example.com": 2, - "DocumentRoot": 2, - "": 6, - "Options": 6, - "FollowSymLinks": 4, - "AllowOverride": 6, - "None": 8, - "Order": 10, - "deny": 10, - "allow": 10, - "Deny": 6, - "from": 10, - "all": 10, - "": 6, - "usr": 2, - "share": 1, - "apache2": 1, - "default": 1, - "site": 1, - "htdocs": 1, - "Indexes": 2, - "Allow": 4, - "DirectoryIndex": 2, - "index.html": 2, - "": 2, - "ht": 1, - "Satisfy": 4, - "All": 4, - "": 2, - "ErrorLog": 2, - "/var/log/apache2/error_log": 1, - "LogLevel": 2, - "warn": 2, - "log_config_module": 3, - "LogFormat": 6, - "combined": 4, - "common": 4, - "logio_module": 3, - "combinedio": 2, - "CustomLog": 2, - "/var/log/apache2/access_log": 2, - "#CustomLog": 2, - "ScriptAlias": 1, - "/cgi": 2, - "bin/": 2, - "#Scriptsock": 2, - "/var/run/apache2/cgisock": 1, - "lib": 1, - "cgi": 3, - "bin": 1, - "DefaultType": 2, - "text/plain": 2, - "TypesConfig": 2, - "/etc/apache2/mime.types": 1, - "#AddType": 4, - "application/x": 6, - "gzip": 6, - ".tgz": 6, - "#AddEncoding": 4, - "x": 4, - "compress": 4, - ".Z": 4, - ".gz": 4, - "AddType": 4, - "#AddHandler": 4, - "script": 2, - ".cgi": 2, - "type": 2, - "map": 2, - "var": 2, - "text/html": 2, - ".shtml": 4, - "#AddOutputFilter": 2, - "INCLUDES": 2, - "#MIMEMagicFile": 2, - "/etc/apache2/magic": 1, - "#ErrorDocument": 8, - "/missing.html": 2, - "http": 2, - "//www.example.com/subscription_info.html": 2, - "#EnableMMAP": 2, - "off": 5, - "#EnableSendfile": 2, - "#Include": 17, - "/etc/apache2/extra/httpd": 11, - "mpm.conf": 2, - "multilang": 2, - "errordoc.conf": 2, - "autoindex.conf": 2, - "languages.conf": 2, - "userdir.conf": 2, - "info.conf": 2, - "vhosts.conf": 2, - "manual.conf": 2, - "dav.conf": 2, - "default.conf": 2, - "ssl.conf": 2, - "SSLRandomSeed": 4, - "startup": 2, - "builtin": 4, - "connect": 2, - "libexec/apache2/mod_authn_file.so": 1, - "libexec/apache2/mod_authn_dbm.so": 1, - "libexec/apache2/mod_authn_anon.so": 1, - "libexec/apache2/mod_authn_dbd.so": 1, - "libexec/apache2/mod_authn_default.so": 1, - "libexec/apache2/mod_authz_host.so": 1, - "libexec/apache2/mod_authz_groupfile.so": 1, - "libexec/apache2/mod_authz_user.so": 1, - "libexec/apache2/mod_authz_dbm.so": 1, - "libexec/apache2/mod_authz_owner.so": 1, - "libexec/apache2/mod_authz_default.so": 1, - "libexec/apache2/mod_auth_basic.so": 1, - "libexec/apache2/mod_auth_digest.so": 1, - "libexec/apache2/mod_cache.so": 1, - "libexec/apache2/mod_disk_cache.so": 1, - "libexec/apache2/mod_mem_cache.so": 1, - "libexec/apache2/mod_dbd.so": 1, - "libexec/apache2/mod_dumpio.so": 1, - "reqtimeout_module": 1, - "libexec/apache2/mod_reqtimeout.so": 1, - "libexec/apache2/mod_ext_filter.so": 1, - "libexec/apache2/mod_include.so": 1, - "libexec/apache2/mod_filter.so": 1, - "substitute_module": 1, - "libexec/apache2/mod_substitute.so": 1, - "libexec/apache2/mod_deflate.so": 1, - "libexec/apache2/mod_log_config.so": 1, - "libexec/apache2/mod_log_forensic.so": 1, - "libexec/apache2/mod_logio.so": 1, - "libexec/apache2/mod_env.so": 1, - "libexec/apache2/mod_mime_magic.so": 1, - "libexec/apache2/mod_cern_meta.so": 1, - "libexec/apache2/mod_expires.so": 1, - "libexec/apache2/mod_headers.so": 1, - "libexec/apache2/mod_ident.so": 1, - "libexec/apache2/mod_usertrack.so": 1, - "#LoadModule": 4, - "libexec/apache2/mod_unique_id.so": 1, - "libexec/apache2/mod_setenvif.so": 1, - "libexec/apache2/mod_version.so": 1, - "libexec/apache2/mod_proxy.so": 1, - "libexec/apache2/mod_proxy_connect.so": 1, - "libexec/apache2/mod_proxy_ftp.so": 1, - "libexec/apache2/mod_proxy_http.so": 1, - "proxy_scgi_module": 1, - "libexec/apache2/mod_proxy_scgi.so": 1, - "libexec/apache2/mod_proxy_ajp.so": 1, - "libexec/apache2/mod_proxy_balancer.so": 1, - "libexec/apache2/mod_ssl.so": 1, - "libexec/apache2/mod_mime.so": 1, - "libexec/apache2/mod_dav.so": 1, - "libexec/apache2/mod_status.so": 1, - "libexec/apache2/mod_autoindex.so": 1, - "libexec/apache2/mod_asis.so": 1, - "libexec/apache2/mod_info.so": 1, - "libexec/apache2/mod_cgi.so": 1, - "libexec/apache2/mod_dav_fs.so": 1, - "libexec/apache2/mod_vhost_alias.so": 1, - "libexec/apache2/mod_negotiation.so": 1, - "libexec/apache2/mod_dir.so": 1, - "libexec/apache2/mod_imagemap.so": 1, - "libexec/apache2/mod_actions.so": 1, - "libexec/apache2/mod_speling.so": 1, - "libexec/apache2/mod_userdir.so": 1, - "libexec/apache2/mod_alias.so": 1, - "libexec/apache2/mod_rewrite.so": 1, - "perl_module": 1, - "libexec/apache2/mod_perl.so": 1, - "php5_module": 1, - "libexec/apache2/libphp5.so": 1, - "hfs_apple_module": 1, - "libexec/apache2/mod_hfs_apple.so": 1, - "mpm_winnt_module": 1, - "_www": 2, - "Library": 2, - "WebServer": 2, - "Documents": 1, - "MultiViews": 1, - "Hh": 1, - "Tt": 1, - "Dd": 1, - "Ss": 2, - "_": 1, - "": 1, - "rsrc": 1, - "": 1, - "": 1, - "namedfork": 1, - "": 1, - "ScriptAliasMatch": 1, - "i": 1, - "webobjects": 1, - "/private/var/run/cgisock": 1, - "CGI": 1, - "Executables": 1, - "/private/etc/apache2/mime.types": 1, - "/private/etc/apache2/magic": 1, - "#MaxRanges": 1, - "unlimited": 1, - "TraceEnable": 1, - "Include": 6, - "/private/etc/apache2/extra/httpd": 11, - "/private/etc/apache2/other/*.conf": 1 - }, - "Apex": { - "global": 70, - "class": 7, - "ArrayUtils": 1, - "{": 219, - "static": 83, - "String": 60, - "[": 102, - "]": 102, - "EMPTY_STRING_ARRAY": 1, - "new": 60, - "}": 219, - ";": 308, - "Integer": 34, - "MAX_NUMBER_OF_ELEMENTS_IN_LIST": 5, - "get": 4, - "return": 106, - "List": 71, - "": 30, - "objectToString": 1, - "(": 481, - "": 22, - "objects": 3, - ")": 481, - "strings": 3, - "null": 92, - "if": 91, - "objects.size": 1, - "for": 24, - "Object": 23, - "obj": 3, - "instanceof": 1, - "strings.add": 1, - "reverse": 2, - "anArray": 14, - "i": 55, - "j": 10, - "anArray.size": 2, - "-": 18, - "tmp": 6, - "while": 8, - "+": 75, - "SObject": 19, - "lowerCase": 1, - "strs": 9, - "returnValue": 22, - "strs.size": 3, - "str": 10, - "returnValue.add": 3, - "str.toLowerCase": 1, - "upperCase": 1, - "str.toUpperCase": 1, - "trim": 1, - "str.trim": 3, - "mergex": 2, - "array1": 8, - "array2": 9, - "merged": 6, - "array1.size": 4, - "array2.size": 2, - "<": 32, - "": 19, - "sObj": 4, - "merged.add": 2, - "Boolean": 38, - "isEmpty": 7, - "objectArray": 17, - "true": 12, - "objectArray.size": 6, - "isNotEmpty": 4, - "pluck": 1, - "fieldName": 3, - "||": 12, - "fieldName.trim": 2, - ".length": 2, - "plucked": 3, - ".get": 4, - "toString": 3, - "void": 9, - "assertArraysAreEqual": 2, - "expected": 16, - "actual": 16, - "//check": 2, - "to": 4, - "see": 2, - "one": 2, - "param": 2, - "is": 5, - "but": 2, - "the": 4, - "other": 2, - "not": 3, - "System.assert": 6, - "&&": 46, - "ArrayUtils.toString": 12, - "expected.size": 4, - "actual.size": 2, - "merg": 2, - "list1": 15, - "list2": 9, - "returnList": 11, - "list1.size": 6, - "list2.size": 2, - "throw": 6, - "IllegalArgumentException": 5, - "elmt": 8, - "returnList.add": 8, - "subset": 6, - "aList": 4, - "count": 10, - "startIndex": 9, - "<=>": 2, - "size": 2, - "1": 2, - "list1.get": 2, - "//": 11, - "//LIST/ARRAY": 1, - "SORTING": 1, - "//FOR": 2, - "FORCE.COM": 1, - "PRIMITIVES": 1, - "Double": 1, - "ID": 1, - "etc.": 1, - "qsort": 18, - "theList": 72, - "PrimitiveComparator": 2, - "sortAsc": 24, - "ObjectComparator": 3, - "comparator": 14, - "theList.size": 2, - "SALESFORCE": 1, - "OBJECTS": 1, - "sObjects": 1, - "ISObjectComparator": 3, - "private": 10, - "lo0": 6, - "hi0": 8, - "lo": 42, - "hi": 50, - "else": 25, - "comparator.compare": 12, - "prs": 8, - "pivot": 14, - "/": 4, - "BooleanUtils": 1, - "isFalse": 1, - "bool": 32, - "false": 13, - "isNotFalse": 1, - "isNotTrue": 1, - "isTrue": 1, - "negate": 1, - "toBooleanDefaultIfNull": 1, - "defaultVal": 2, - "toBoolean": 2, - "value": 10, - "strToBoolean": 1, - "StringUtils.equalsIgnoreCase": 1, - "//Converts": 1, - "an": 4, - "int": 1, - "a": 6, - "boolean": 1, - "specifying": 1, - "//the": 2, - "conversion": 1, - "values.": 1, - "//Returns": 1, - "//Throws": 1, - "trueValue": 2, - "falseValue": 2, - "toInteger": 1, - "toStringYesNo": 1, - "toStringYN": 1, - "trueString": 2, - "falseString": 2, - "xor": 1, - "boolArray": 4, - "boolArray.size": 1, - "firstItem": 2, - "EmailUtils": 1, - "sendEmailWithStandardAttachments": 3, - "recipients": 11, - "emailSubject": 10, - "body": 8, - "useHTML": 6, - "": 1, - "attachmentIDs": 2, - "": 2, - "stdAttachments": 4, - "SELECT": 1, - "id": 1, - "name": 2, - "FROM": 1, - "Attachment": 2, - "WHERE": 1, - "Id": 1, - "IN": 1, - "": 3, - "fileAttachments": 5, - "attachment": 1, - "Messaging.EmailFileAttachment": 2, - "fileAttachment": 2, - "fileAttachment.setFileName": 1, - "attachment.Name": 1, - "fileAttachment.setBody": 1, - "attachment.Body": 1, - "fileAttachments.add": 1, - "sendEmail": 4, - "sendTextEmail": 1, - "textBody": 2, - "sendHTMLEmail": 1, - "htmlBody": 2, - "recipients.size": 1, - "Messaging.SingleEmailMessage": 3, - "mail": 2, - "email": 1, - "saved": 1, - "as": 1, - "activity.": 1, - "mail.setSaveAsActivity": 1, - "mail.setToAddresses": 1, - "mail.setSubject": 1, - "mail.setBccSender": 1, - "mail.setUseSignature": 1, - "mail.setHtmlBody": 1, - "mail.setPlainTextBody": 1, - "fileAttachments.size": 1, - "mail.setFileAttachments": 1, - "Messaging.sendEmail": 1, - "isValidEmailAddress": 2, - "split": 5, - "str.split": 1, - "split.size": 2, - ".split": 1, - "isNotValidEmailAddress": 1, - "public": 10, - "GeoUtils": 1, - "generate": 1, - "KML": 1, - "string": 7, - "given": 2, - "page": 1, - "reference": 1, - "call": 1, - "getContent": 1, - "then": 1, - "cleanup": 1, - "output.": 1, - "generateFromContent": 1, - "PageReference": 2, - "pr": 1, - "ret": 7, - "try": 1, - "pr.getContent": 1, - ".toString": 1, - "ret.replaceAll": 4, - "content": 1, - "produces": 1, - "quote": 1, - "chars": 1, - "we": 1, - "need": 1, - "escape": 1, - "these": 2, - "in": 1, - "node": 1, - "catch": 1, - "exception": 1, - "e": 2, - "system.debug": 2, - "must": 1, - "use": 1, - "ALL": 1, - "since": 1, - "many": 1, - "line": 1, - "may": 1, - "also": 1, - "Map": 33, - "": 2, - "geo_response": 1, - "accountAddressString": 2, - "account": 2, - "acct": 1, - "form": 1, - "address": 1, - "object": 1, - "adr": 9, - "acct.billingstreet": 1, - "acct.billingcity": 1, - "acct.billingstate": 1, - "acct.billingpostalcode": 2, - "acct.billingcountry": 2, - "adr.replaceAll": 4, - "testmethod": 1, - "t1": 1, - "pageRef": 3, - "Page.kmlPreviewTemplate": 1, - "Test.setCurrentPage": 1, - "system.assert": 1, - "GeoUtils.generateFromContent": 1, - "Account": 2, - "billingstreet": 1, - "billingcity": 1, - "billingstate": 1, - "billingpostalcode": 1, - "billingcountry": 1, - "insert": 1, - "system.assertEquals": 1, - "LanguageUtils": 1, - "final": 6, - "HTTP_LANGUAGE_CODE_PARAMETER_KEY": 2, - "DEFAULT_LANGUAGE_CODE": 3, - "Set": 6, - "SUPPORTED_LANGUAGE_CODES": 2, - "//Chinese": 2, - "Simplified": 1, - "Traditional": 1, - "//Dutch": 1, - "//English": 1, - "//Finnish": 1, - "//French": 1, - "//German": 1, - "//Italian": 1, - "//Japanese": 1, - "//Korean": 1, - "//Polish": 1, - "//Portuguese": 1, - "Brazilian": 1, - "//Russian": 1, - "//Spanish": 1, - "//Swedish": 1, - "//Thai": 1, - "//Czech": 1, - "//Danish": 1, - "//Hungarian": 1, - "//Indonesian": 1, - "//Turkish": 1, - "": 29, - "DEFAULTS": 1, - "getLangCodeByHttpParam": 4, - "LANGUAGE_CODE_SET": 1, - "getSuppLangCodeSet": 2, - "ApexPages.currentPage": 4, - ".getParameters": 2, - "LANGUAGE_HTTP_PARAMETER": 7, - "StringUtils.lowerCase": 3, - "StringUtils.replaceChars": 2, - "//underscore": 1, - "//dash": 1, - "DEFAULTS.containsKey": 3, - "DEFAULTS.get": 3, - "StringUtils.isNotBlank": 1, - "SUPPORTED_LANGUAGE_CODES.contains": 2, - "getLangCodeByBrowser": 4, - "LANGUAGES_FROM_BROWSER_AS_STRING": 2, - ".getHeaders": 1, - "LANGUAGES_FROM_BROWSER_AS_LIST": 3, - "splitAndFilterAcceptLanguageHeader": 2, - "LANGUAGES_FROM_BROWSER_AS_LIST.size": 1, - "languageFromBrowser": 6, - "getLangCodeByUser": 3, - "UserInfo.getLanguage": 1, - "getLangCodeByHttpParamOrIfNullThenBrowser": 1, - "StringUtils.defaultString": 4, - "getLangCodeByHttpParamOrIfNullThenUser": 1, - "getLangCodeByBrowserOrIfNullThenHttpParam": 1, - "getLangCodeByBrowserOrIfNullThenUser": 1, - "header": 2, - "tokens": 3, - "StringUtils.split": 1, - "token": 7, - "token.contains": 1, - "token.substring": 1, - "token.indexOf": 1, - "StringUtils.length": 1, - "StringUtils.substring": 1, - "langCodes": 2, - "langCode": 3, - "langCodes.add": 1, - "getLanguageName": 1, - "displayLanguageCode": 13, - "languageCode": 2, - "translatedLanguageNames.get": 2, - "filterLanguageCode": 4, - "getAllLanguages": 3, - "translatedLanguageNames.containsKey": 1, - "translatedLanguageNames": 1, - "TwilioAPI": 2, - "MissingTwilioConfigCustomSettingsException": 2, - "extends": 1, - "Exception": 1, - "TwilioRestClient": 5, - "client": 2, - "getDefaultClient": 2, - "TwilioConfig__c": 5, - "twilioCfg": 7, - "getTwilioConfig": 3, - "TwilioAPI.client": 2, - "twilioCfg.AccountSid__c": 3, - "twilioCfg.AuthToken__c": 3, - "TwilioAccount": 1, - "getDefaultAccount": 1, - ".getAccount": 2, - "TwilioCapability": 2, - "createCapability": 1, - "createClient": 1, - "accountSid": 2, - "authToken": 2, - "Test.isRunningTest": 1, - "dummy": 2, - "sid": 1, - "TwilioConfig__c.getOrgDefaults": 1, - "@isTest": 1, - "test_TwilioAPI": 1, - "System.assertEquals": 5, - "TwilioAPI.getTwilioConfig": 2, - ".AccountSid__c": 1, - ".AuthToken__c": 1, - "TwilioAPI.getDefaultClient": 2, - ".getAccountSid": 1, - ".getSid": 2, - "TwilioAPI.getDefaultAccount": 1 - }, - "AppleScript": { - "set": 108, - "windowWidth": 3, - "to": 128, - "windowHeight": 3, - "delay": 3, - "AppleScript": 2, - "s": 3, - "text": 13, - "item": 13, - "delimiters": 1, - "tell": 40, - "application": 16, - "screen_width": 2, - "(": 89, - "do": 4, - "JavaScript": 2, - "in": 13, - "document": 2, - ")": 88, - "screen_height": 2, - "end": 67, - "myFrontMost": 3, - "name": 8, - "of": 72, - "first": 1, - "processes": 2, - "whose": 1, - "frontmost": 1, - "is": 40, - "true": 8, - "{": 32, - "desktopTop": 2, - "desktopLeft": 1, - "desktopRight": 1, - "desktopBottom": 1, - "}": 32, - "bounds": 2, - "desktop": 1, - "try": 10, - "process": 5, - "w": 5, - "h": 4, - "size": 5, - "drawer": 2, - "window": 5, - "on": 18, - "error": 3, - "position": 1, - "-": 57, - "/": 2, - "property": 7, - "type_list": 6, - "extension_list": 6, - "html": 2, - "not": 5, - "currently": 2, - "handled": 2, - "run": 4, - "FinderSelection": 4, - "the": 56, - "selection": 2, - "as": 27, - "alias": 8, - "list": 9, - "FS": 10, - "Ideally": 2, - "this": 2, - "could": 2, - "be": 2, - "passed": 2, - "open": 8, - "handler": 2, - "SelectionCount": 6, - "number": 6, - "count": 10, - "if": 50, - "then": 28, - "userPicksFolder": 6, - "else": 14, - "MyPath": 4, - "path": 6, - "me": 2, - "If": 2, - "I": 2, - "m": 2, - "a": 4, - "double": 2, - "clicked": 2, - "droplet": 2, - "these_items": 18, - "choose": 2, - "file": 6, - "with": 11, - "prompt": 2, - "type": 6, - "thesefiles": 2, - "item_info": 24, - "repeat": 19, - "i": 10, - "from": 9, - "this_item": 14, - "info": 4, - "for": 5, - "folder": 10, - "processFolder": 8, - "false": 9, - "and": 7, - "or": 6, - "extension": 4, - "theFilePath": 8, - "string": 17, - "thePOSIXFilePath": 8, - "POSIX": 4, - "processFile": 8, - "folders": 2, - "theFolder": 6, - "without": 2, - "invisibles": 2, - "&": 63, - "thePOSIXFileName": 6, - "terminalCommand": 6, - "convertCommand": 4, - "newFileName": 4, - "shell": 2, - "script": 2, - "need": 1, - "pass": 1, - "URL": 1, - "Terminal": 1, - "localMailboxes": 3, - "every": 3, - "mailbox": 2, - "greater": 5, - "than": 6, - "messageCountDisplay": 5, - "return": 16, - "my": 3, - "getMessageCountsForMailboxes": 4, - "everyAccount": 2, - "account": 1, - "eachAccount": 3, - "accountMailboxes": 3, - "outputMessage": 2, - "make": 3, - "new": 2, - "outgoing": 2, - "message": 2, - "properties": 2, - "content": 2, - "subject": 1, - "visible": 2, - "font": 2, - "theMailboxes": 2, - "mailboxes": 1, - "returns": 2, - "displayString": 4, - "eachMailbox": 4, - "mailboxName": 2, - "messageCount": 2, - "messages": 1, - "unreadCount": 2, - "unread": 1, - "padString": 3, - "theString": 4, - "fieldLength": 5, - "integer": 3, - "stringLength": 4, - "length": 1, - "paddedString": 5, - "character": 2, - "less": 1, - "equal": 3, - "paddingLength": 2, - "times": 1, - "space": 1, - "lowFontSize": 9, - "highFontSize": 6, - "messageText": 4, - "userInput": 4, - "display": 4, - "dialog": 4, - "default": 4, - "answer": 3, - "buttons": 3, - "button": 4, - "returned": 5, - "minimumFontSize": 4, - "newFontSize": 6, - "result": 2, - "theText": 3, - "exit": 1, - "fontList": 2, - "activate": 3, - "crazyTextMessage": 2, - "eachCharacter": 4, - "characters": 1, - "some": 1, - "random": 4, - "color": 1, - "current": 3, - "pane": 4, - "UI": 1, - "elements": 1, - "enabled": 2, - "tab": 1, - "group": 1, - "click": 1, - "radio": 1, - "get": 1, - "value": 1, - "field": 1, - "isVoiceOverRunning": 3, - "isRunning": 3, - "contains": 1, - "isVoiceOverRunningWithAppleScript": 3, - "isRunningWithAppleScript": 3, - "VoiceOver": 1, - "x": 1, - "vo": 1, - "cursor": 1, - "currentDate": 3, - "date": 1, - "amPM": 4, - "currentHour": 9, - "minutes": 2, - "<": 2, - "below": 1, - "sound": 1, - "nice": 1, - "currentMinutes": 4, - "ensure": 1, - "nn": 2, - "gets": 1, - "AM": 1, - "readjust": 1, - "hour": 1, - "time": 1, - "currentTime": 3, - "day": 1, - "output": 1, - "say": 1 - }, - "Arduino": { - "void": 2, - "setup": 1, - "(": 4, - ")": 4, - "{": 2, - "Serial.begin": 1, - ";": 2, - "}": 2, - "loop": 1, - "Serial.print": 1 - }, - "AsciiDoc": { - "Gregory": 2, - "Rom": 2, - "has": 2, - "written": 2, - "an": 2, - "AsciiDoc": 3, - "plugin": 2, - "for": 2, - "the": 2, - "Redmine": 2, - "project": 2, - "management": 2, - "application.": 2, - "https": 1, - "//github.com/foo": 1, - "-": 4, - "users/foo": 1, - "vicmd": 1, - "gif": 1, - "tag": 1, - "rom": 2, - "[": 2, - "]": 2, - "end": 1, - "berschrift": 1, - "*": 4, - "Codierungen": 1, - "sind": 1, - "verr": 1, - "ckt": 1, - "auf": 1, - "lteren": 1, - "Versionen": 1, - "von": 1, - "Ruby": 1, - "Home": 1, - "Page": 1, - "Example": 1, - "Articles": 1, - "Item": 6, - "Document": 1, - "Title": 1, - "Doc": 1, - "Writer": 1, - "": 1, - "idprefix": 1, - "id_": 1, - "Preamble": 1, - "paragraph.": 4, - "NOTE": 1, - "This": 1, - "is": 1, - "test": 1, - "only": 1, - "a": 1, - "test.": 1, - "Section": 3, - "A": 2, - "*Section": 3, - "A*": 2, - "Subsection": 1, - "B": 2, - "B*": 1, - ".Section": 1, - "list": 1 - }, - "AspectJ": { - "package": 2, - "com.blogspot.miguelinlas3.aspectj.cache": 1, - ";": 29, - "import": 5, - "java.util.Map": 2, - "java.util.WeakHashMap": 1, - "org.aspectj.lang.JoinPoint": 1, - "com.blogspot.miguelinlas3.aspectj.cache.marker.Cachable": 1, - "public": 6, - "aspect": 2, - "CacheAspect": 1, - "{": 11, - "pointcut": 3, - "cache": 3, - "(": 46, - "Cachable": 2, - "cachable": 5, - ")": 46, - "execution": 1, - "@Cachable": 2, - "*": 2, - "..": 1, - "&&": 2, - "@annotation": 1, - "Object": 15, - "around": 2, - "String": 3, - "evaluatedKey": 6, - "this.evaluateKey": 1, - "cachable.scriptKey": 1, - "thisJoinPoint": 1, + "Elm": { + "data": 1, + "Tree": 3, + "a": 5, + "Node": 8, + "(": 119, + ")": 116, + "|": 3, + "Empty": 8, + "empty": 2, + "singleton": 2, + "v": 8, + "insert": 4, + "x": 13, + "tree": 7, + "case": 5, + "of": 7, + "-": 11, + "y": 7, + "left": 7, + "right": 8, "if": 2, - "cache.containsKey": 1, - "System.out.println": 5, - "+": 7, - "return": 5, - "this.cache.get": 1, - "}": 11, - "value": 3, - "proceed": 2, - "cache.put": 1, - "protected": 2, - "evaluateKey": 1, - "key": 2, - "JoinPoint": 1, - "joinPoint": 1, - "//": 1, - "TODO": 1, - "add": 1, - "some": 1, - "smart": 1, - "staff": 1, - "to": 1, - "allow": 1, - "simple": 1, - "scripting": 1, - "in": 1, - "annotation": 1, - "Map": 3, - "": 2, - "new": 1, - "WeakHashMap": 1, - "aspects.caching": 1, - "abstract": 3, - "OptimizeRecursionCache": 2, - "@SuppressWarnings": 3, - "private": 1, - "_cache": 2, - "getCache": 2, - "operation": 4, - "o": 16, - "topLevelOperation": 4, - "cflowbelow": 1, - "before": 1, - "cachedValue": 4, - "_cache.get": 1, - "null": 1, - "after": 2, - "returning": 2, - "result": 3, - "_cache.put": 1, - "_cache.size": 1 - }, - "ATS": { - "//": 211, - "#include": 16, - "staload": 25, - "_": 25, - "sortdef": 2, - "ftype": 13, - "type": 30, - "-": 49, - "infixr": 2, - "(": 562, - ")": 567, - "typedef": 10, - "a": 200, - "b": 26, - "": 2, - "functor": 12, - "F": 34, - "{": 142, - "}": 141, - "list0": 9, - "extern": 13, - "val": 95, - "functor_list0": 7, - "implement": 55, - "f": 22, - "lam": 20, - "xs": 82, - "list0_map": 2, - "": 14, - "": 3, - "datatype": 4, - "CoYoneda": 7, - "r": 25, - "of": 59, - "fun": 56, - "CoYoneda_phi": 2, - "CoYoneda_psi": 3, - "ftor": 9, - "fx": 8, - "x": 48, - "int0": 4, - "I": 8, - "int": 2, - "bool": 27, - "True": 7, - "|": 22, - "False": 8, - "boxed": 2, - "boolean": 2, - "bool2string": 4, - "string": 2, - "case": 9, - "+": 20, - "fprint_val": 2, - "": 2, - "out": 8, - "fprint": 3, - "int2bool": 2, - "i": 6, - "let": 34, - "in": 48, - "if": 7, - "then": 11, - "else": 7, - "end": 73, - "myintlist0": 2, - "g0ofg1": 1, - "list": 1, - "myboolist0": 9, - "fprintln": 3, - "stdout_ref": 4, - "main0": 3, - "UN": 3, - "phil_left": 3, - "n": 51, - "phil_right": 3, - "nmod": 1, - "NPHIL": 6, - "randsleep": 6, - "intGte": 1, - "void": 14, - "ignoret": 2, - "sleep": 2, - "UN.cast": 2, - "uInt": 1, - "rand": 1, - "mod": 1, - "phil_think": 3, - "println": 9, - "phil_dine": 3, - "lf": 5, - "rf": 5, - "phil_loop": 10, - "nl": 2, - "nr": 2, - "ch_lfork": 2, - "fork_changet": 5, - "ch_rfork": 2, - "channel_takeout": 4, - "HX": 1, - "try": 1, - "to": 16, - "actively": 1, - "induce": 1, - "deadlock": 2, - "ch_forktray": 3, - "forktray_changet": 4, - "channel_insert": 5, - "[": 49, - "]": 48, - "cleaner_wash": 3, - "fork_get_num": 4, - "cleaner_return": 4, - "ch": 7, - "cleaner_loop": 6, - "f0": 3, - "dynload": 3, - "local": 10, - "mythread_create_cloptr": 6, - "llam": 6, - "while": 1, - "true": 5, - "%": 7, - "#": 7, - "#define": 4, - "nphil": 13, - "natLt": 2, - "absvtype": 2, - "fork_vtype": 3, - "ptr": 2, - "vtypedef": 2, - "fork": 16, - "channel": 11, - "datavtype": 1, - "FORK": 3, - "assume": 2, - "the_forkarray": 2, - "t": 1, - "array_tabulate": 1, - "fopr": 1, - "": 2, - "where": 6, - "channel_create_exn": 2, - "": 2, - "i2sz": 4, - "arrayref_tabulate": 1, - "the_forktray": 2, - "set_vtype": 3, - "t@ype": 2, - "set": 34, - "t0p": 31, - "compare_elt_elt": 4, - "x1": 1, - "x2": 1, - "<": 14, - "linset_nil": 2, - "linset_make_nil": 2, - "linset_sing": 2, - "": 16, - "linset_make_sing": 2, - "linset_make_list": 1, + "then": 2, + "else": 2, + "<": 1, + "fromList": 3, + "xs": 9, + "foldl": 1, + "depth": 5, + "+": 14, + "max": 1, + "map": 11, + "f": 8, + "t1": 2, + "[": 31, + "]": 31, + "t2": 3, + "main": 3, + "flow": 4, + "down": 3, + "display": 4, + "name": 6, + "text": 4, + ".": 9, + "monospace": 1, + "toText": 6, + "concat": 1, + "show": 2, + "import": 3, "List": 1, - "INV": 24, - "linset_is_nil": 2, - "linset_isnot_nil": 2, - "linset_size": 2, - "size_t": 1, - "linset_is_member": 3, - "x0": 22, - "linset_isnot_member": 1, - "linset_copy": 2, - "linset_free": 2, - "linset_insert": 3, - "&": 17, - "linset_takeout": 1, - "res": 9, - "opt": 6, - "endfun": 1, - "linset_takeout_opt": 1, - "Option_vt": 4, - "linset_remove": 2, - "linset_choose": 3, - "linset_choose_opt": 1, - "linset_takeoutmax": 1, - "linset_takeoutmax_opt": 1, - "linset_takeoutmin": 1, - "linset_takeoutmin_opt": 1, - "fprint_linset": 3, - "sep": 1, - "FILEref": 2, - "overload": 1, - "with": 1, - "env": 11, - "vt0p": 2, - "linset_foreach": 3, - "fwork": 3, - "linset_foreach_env": 3, - "linset_listize": 2, - "List0_vt": 5, - "linset_listize1": 2, - "code": 6, - "reuse": 2, - "elt": 2, - "list_vt_nil": 16, - "list_vt_cons": 17, - "list_vt_is_nil": 1, - "list_vt_is_cons": 1, - "list_vt_length": 1, - "aux": 4, - "nat": 4, - ".": 14, - "": 3, - "list_vt": 7, - "sgn": 9, - "false": 6, - "list_vt_copy": 2, - "list_vt_free": 1, - "mynode_cons": 4, - "nx": 22, - "mynode1": 6, - "xs1": 15, - "UN.castvwtp0": 8, - "List1_vt": 5, - "@list_vt_cons": 5, - "xs2": 3, - "prval": 20, - "UN.cast2void": 5, - ";": 4, - "fold@": 8, - "ins": 3, - "tail": 1, - "recursive": 1, - "n1": 4, - "<=>": 1, - "1": 3, - "mynode_make_elt": 4, - "ans": 2, - "is": 26, - "found": 1, - "effmask_all": 3, - "free@": 1, - "xs1_": 3, - "rem": 1, - "*": 2, - "opt_some": 1, - "opt_none": 1, - "list_vt_foreach": 1, - "": 3, - "list_vt_foreach_env": 1, - "mynode_null": 5, - "mynode": 3, - "null": 1, - "the_null_ptr": 1, - "mynode_free": 1, - "nx2": 4, - "mynode_get_elt": 1, - "nx1": 7, - "UN.castvwtp1": 2, - "mynode_set_elt": 1, - "l": 3, - "__assert": 2, - "praxi": 1, - "mynode_getfree_elt": 1, - "linset_takeout_ngc": 2, - "takeout": 3, - "mynode0": 1, - "pf_x": 6, - "view@x": 3, - "pf_xs1": 6, - "view@xs1": 3, - "linset_takeoutmax_ngc": 2, - "xs_": 4, - "@list_vt_nil": 1, - "linset_takeoutmin_ngc": 2, - "unsnoc": 4, - "pos": 1, - "and": 10, - "fold@xs": 1, - "ATS_PACKNAME": 1, - "ATS_STALOADFLAG": 1, - "no": 2, - "static": 1, - "loading": 1, - "at": 2, - "run": 1, - "time": 1, - "castfn": 1, - "linset2list": 1, + "intercalate": 2, + "intersperse": 3, + "Website.Skeleton": 1, + "Website.ColorScheme": 1, + "addFolder": 4, + "folder": 2, + "lst": 6, + "let": 2, + "add": 2, + "in": 2, + "n": 2, + "elements": 2, + "functional": 2, + "reactive": 2, + "example": 3, + "loc": 2, + "Text.link": 1, + "toLinks": 2, + "title": 2, + "links": 2, + "width": 3, + "italic": 1, + "bold": 2, + "Text.color": 1, + "accent4": 1, + "insertSpace": 2, + "{": 1, + "spacer": 2, + ";": 1, + "}": 1, + "subsection": 2, + "w": 7, + "info": 2, + "words": 2, + "markdown": 1, + "###": 1, + "Basic": 1, + "Examples": 1, + "Each": 1, + "listed": 1, + "below": 1, + "focuses": 1, + "on": 1, + "single": 1, + "function": 1, + "or": 1, + "concept.": 1, + "These": 1, + "examples": 1, + "demonstrate": 1, + "all": 1, + "the": 1, + "basic": 1, + "building": 1, + "blocks": 1, + "Elm.": 1, + "content": 2, + "exampleSets": 2, + "plainText": 1, + "lift": 1, + "skeleton": 1, + "Window.width": 1, + "asText": 1, + "qsort": 4, + "filter": 2, + "<)x)>": 1 + }, + "Liquid": { + "

": 1, + "We": 1, + "have": 1, + "wonderful": 1, + "products": 1, + "

": 1, + "
": 5, + "": 1, + "product.price_min": 1, + "money": 5, + "product.price_varies": 1, + "-": 4, + "product.price_max": 1, + "": 1, + "
": 1, + "action=": 1, + "method=": 1, + "": 1, + "style=": 5, + "": 1, + "type=": 2, + "
": 1, + "product.description": 1, + "": 1, "": 1, "html": 1, "PUBLIC": 1, "W3C": 1, "DTD": 2, "XHTML": 1, + "1": 1, + "0": 1, + "Transitional": 1, "EN": 1, "http": 2, "www": 1, "w3": 1, "org": 1, "TR": 1, - "xhtml11": 2, + "xhtml1": 2, + "transitional": 1, "dtd": 1, "": 1, "xmlns=": 1, + "xml": 1, + "lang=": 2, "": 1, "": 1, "equiv=": 1, "content=": 1, "": 1, - "EFFECTIVATS": 1, - "DiningPhil2": 1, + "shop.name": 2, + "page_title": 1, "": 1, - "#patscode_style": 1, + "global_asset_url": 5, + "stylesheet_tag": 3, + "script_tag": 5, + "shopify_asset_url": 1, + "asset_url": 2, + "content_for_header": 1, "": 1, "": 1, - "

": 1, - "Effective": 1, - "ATS": 2, - "Dining": 2, - "Philosophers": 2, - "

": 1, - "In": 2, - "this": 2, - "article": 2, - "present": 1, - "an": 6, - "implementation": 3, - "slight": 1, - "variant": 1, - "the": 30, - "famous": 1, - "problem": 1, - "by": 4, - "Dijkstra": 1, - "that": 8, - "makes": 1, - "simple": 1, - "but": 1, - "convincing": 1, - "use": 1, - "linear": 2, - "types.": 1, - "

": 8, - "The": 8, - "Original": 2, - "Problem": 2, - "

": 8, - "There": 3, - "are": 7, - "five": 1, - "philosophers": 1, - "sitting": 1, - "around": 1, - "table": 3, - "there": 3, - "also": 3, - "forks": 7, - "placed": 1, - "on": 8, - "such": 1, - "each": 2, - "located": 2, - "between": 1, - "left": 3, - "hand": 6, - "philosopher": 5, - "right": 3, - "another": 1, - "philosopher.": 1, - "Each": 4, - "does": 1, - "following": 6, - "routine": 1, - "repeatedly": 1, - "thinking": 1, - "dining.": 1, - "order": 1, - "dine": 1, - "needs": 2, - "first": 2, - "acquire": 1, - "two": 3, - "one": 3, - "his": 4, - "side": 2, - "other": 2, - "side.": 2, - "After": 2, - "finishing": 1, - "dining": 1, - "puts": 2, - "acquired": 1, - "onto": 1, - "A": 6, - "Variant": 1, - "twist": 1, - "added": 1, - "original": 1, - "version": 1, "

": 1, - "used": 1, - "it": 2, - "becomes": 1, - "be": 9, - "put": 1, - "tray": 2, - "for": 15, - "dirty": 2, - "forks.": 1, - "cleaner": 2, - "who": 1, - "cleans": 1, - "them": 2, - "back": 1, - "table.": 1, - "Channels": 1, - "Communication": 1, - "just": 1, - "shared": 1, - "queue": 1, - "fixed": 1, - "capacity.": 1, - "functions": 1, - "inserting": 1, - "element": 5, - "into": 3, - "taking": 1, - "given": 4, - "

": 7,
-      "class=": 6,
-      "#pats2xhtml_sats": 3,
-      "
": 7, - "If": 2, - "called": 2, - "full": 4, - "caller": 2, - "blocked": 3, - "until": 2, - "taken": 1, - "channel.": 2, - "empty": 1, - "inserted": 1, - "Channel": 2, - "Fork": 3, - "Forks": 1, - "resources": 1, - "type.": 1, - "initially": 1, - "stored": 2, - "which": 2, - "can": 4, - "obtained": 2, - "calling": 2, - "function": 3, - "defined": 1, - "natural": 1, - "numbers": 1, - "less": 1, - "than": 1, - "channels": 4, - "storing": 3, - "chosen": 3, - "capacity": 3, - "reason": 1, - "store": 1, - "most": 1, - "guarantee": 1, - "these": 1, - "never": 2, - "so": 2, - "attempt": 1, - "made": 1, - "send": 1, - "signals": 1, - "awake": 1, - "callers": 1, - "supposedly": 1, - "being": 2, - "due": 1, - "Tray": 1, - "instead": 1, - "become": 1, - "as": 4, - "only": 1, - "total": 1, - "Philosopher": 1, - "Loop": 2, - "implemented": 2, - "loop": 2, - "#pats2xhtml_dats": 3, - "It": 2, - "should": 3, - "straighforward": 2, - "follow": 2, - "Cleaner": 1, - "finds": 1, - "number": 2, - "uses": 1, - "locate": 1, - "fork.": 1, - "Its": 1, - "actual": 1, - "follows": 1, - "now": 1, - "Testing": 1, - "entire": 1, - "files": 1, - "DiningPhil2.sats": 1, - "DiningPhil2.dats": 1, - "DiningPhil2_fork.dats": 1, - "DiningPhil2_thread.dats": 1, - "Makefile": 1, - "available": 1, - "compiling": 1, - "source": 1, - "excutable": 1, - "testing.": 1, - "One": 1, - "able": 1, - "encounter": 1, - "after": 1, - "running": 1, - "simulation": 1, - "while.": 1, - "
": 1, - "size=": 1, - "This": 1, - "written": 1, - "href=": 1, - "Hongwei": 1, - "Xi": 1, - "": 1, + "Skip": 1, + "to": 1, + "navigation.": 1, + "

": 1, + "cart.item_count": 7, + "There": 1, + "pluralize": 3, + "title=": 3, + "your": 1, + "cart": 1, + "

": 1, + "Your": 1, + "subtotal": 1, + "is": 1, + "cart.total_price": 2, + ".": 3, + "

": 1, + "item": 1, + "cart.items": 1, + "onMouseover=": 2, + "onMouseout=": 2, + "
": 2, + "

": 1, + "

": 1, + "onclick=": 1, + "View": 1, + "Mini": 1, + "Cart": 1, + "(": 1, + ")": 1, + "
": 3, + "content_for_layout": 1, + "link": 2, + "linklists.main": 1, + "menu.links": 1, + "link.title": 2, + "link_to": 2, + "link.url": 2, + "tags": 1, + "tag": 4, + "collection.tags": 1, + "": 1, + "link_to_add_tag": 1, + "": 1, + "highlight_active_tag": 1, + "link_to_tag": 1, + "linklists.footer.links": 1, + "All": 1, + "prices": 1, + "are": 1, + "shop.currency": 1, + "Powered": 1, + "by": 1, + "Shopify": 1, "": 1, - "": 1, - "main": 1, - "fprint_filsub": 1, - "option0": 3, - "functor_option0": 2, - "option0_map": 1, - "functor_homres": 2, - "c": 3, - "Yoneda_phi": 3, - "Yoneda_psi": 3, - "m": 4, - "mf": 4, - "natrans": 3, - "G": 2, - "Yoneda_phi_nat": 2, - "Yoneda_psi_nat": 2, - "list_t": 1, - "g0ofg1_list": 1, - "Yoneda_bool_list0": 3, - "myboolist1": 2 + "": 1 }, - "AutoHotkey": { - "MsgBox": 1, - "Hello": 1, - "World": 1 + "Racket": { + ";": 3, + "Clean": 1, + "simple": 1, + "and": 1, + "efficient": 1, + "code": 1, + "-": 94, + "that": 2, + "s": 1, + "the": 3, + "power": 1, + "of": 4, + "Racket": 2, + "http": 1, + "//racket": 1, + "lang.org/": 1, + "(": 23, + "define": 1, + "bottles": 4, + "n": 8, + "more": 2, + ")": 23, + "printf": 2, + "case": 1, + "[": 16, + "]": 16, + "else": 1, + "if": 1, + "for": 2, + "in": 3, + "range": 1, + "sub1": 1, + "displayln": 2, + "#lang": 1, + "scribble/manual": 1, + "@": 3, + "require": 1, + "scribble/bnf": 1, + "@title": 1, + "{": 2, + "Scribble": 3, + "The": 1, + "Documentation": 1, + "Tool": 1, + "}": 2, + "@author": 1, + "is": 3, + "a": 1, + "collection": 1, + "tools": 1, + "creating": 1, + "prose": 2, + "documents": 1, + "papers": 1, + "books": 1, + "library": 1, + "documentation": 1, + "etc.": 1, + "HTML": 1, + "or": 2, + "PDF": 1, + "via": 1, + "Latex": 1, + "form.": 1, + "More": 1, + "generally": 1, + "helps": 1, + "you": 1, + "write": 1, + "programs": 1, + "are": 1, + "rich": 1, + "textual": 1, + "content": 2, + "whether": 1, + "to": 2, + "be": 2, + "typeset": 1, + "any": 1, + "other": 1, + "form": 1, + "text": 1, + "generated": 1, + "programmatically.": 1, + "This": 1, + "document": 1, + "itself": 1, + "written": 1, + "using": 1, + "Scribble.": 1, + "You": 1, + "can": 1, + "see": 1, + "its": 1, + "source": 1, + "at": 1, + "let": 1, + "url": 3, + "link": 1, + "starting": 1, + "with": 1, + "@filepath": 1, + "scribble.scrbl": 1, + "file.": 1, + "@table": 1, + "contents": 1, + "@include": 8, + "section": 9, + "@index": 1 + }, + "PogoScript": { + "httpism": 1, + "require": 3, + "async": 1, + "resolve": 2, + ".resolve": 1, + "exports.squash": 1, + "(": 38, + "url": 5, + ")": 38, + "html": 15, + "httpism.get": 2, + ".body": 2, + "squash": 2, + "callback": 2, + "replacements": 6, + "sort": 2, + "links": 2, + "in": 11, + ".concat": 1, + "scripts": 2, + "for": 2, + "each": 2, + "@": 6, + "r": 1, + "{": 3, + "r.url": 1, + "r.href": 1, + "}": 3, + "async.map": 1, + "get": 2, + "err": 2, + "requested": 2, + "replace": 2, + "replacements.sort": 1, + "a": 1, + "b": 1, + "a.index": 1, + "-": 1, + "b.index": 1, + "replacement": 2, + "replacement.body": 1, + "replacement.url": 1, + "i": 3, + "parts": 3, + "rep": 1, + "rep.index": 1, + "+": 2, + "rep.length": 1, + "html.substr": 1, + "link": 2, + "reg": 5, + "r/": 2, + "": 1, + "]": 7, + "*href": 1, + "[": 5, + "*": 2, + "/": 2, + "|": 2, + "s*": 2, + "<\\/link\\>": 1, + "/gi": 2, + "elements": 5, + "matching": 3, + "as": 3, + "script": 2, + "": 1, + "*src": 1, + "<\\/script\\>": 1, + "tag": 3, + "while": 1, + "m": 1, + "reg.exec": 1, + "elements.push": 1, + "index": 1, + "m.index": 1, + "length": 1, + "m.0.length": 1, + "href": 1, + "m.1": 1 + }, + "Zephir": { + "namespace": 3, + "Test": 2, + "Router": 1, + ";": 86, + "class": 2, + "Route": 1, + "{": 56, + "protected": 9, + "_pattern": 3, + "_compiledPattern": 3, + "_paths": 3, + "_methods": 5, + "_hostname": 3, + "_converters": 3, + "_id": 2, + "_name": 3, + "_beforeMatch": 3, + "public": 22, + "function": 22, + "__construct": 1, + "(": 55, + "pattern": 37, + "paths": 7, + "null": 11, + "httpMethods": 6, + ")": 53, + "this": 28, + "-": 25, + "reConfigure": 2, + "let": 51, + "}": 50, + "compilePattern": 2, + "var": 4, + "idPattern": 6, + "if": 39, + "memstr": 10, + "str_replace": 6, + "return": 25, + ".": 5, + "via": 1, + "extractNamedParams": 2, + "string": 6, + "char": 1, + "ch": 27, + "tmp": 4, + "matches": 5, + "boolean": 1, + "notValid": 5, + "false": 3, + "int": 3, + "cursor": 4, + "cursorVar": 5, + "marker": 4, + "bracketCount": 7, + "parenthesesCount": 5, + "foundPattern": 6, + "intermediate": 4, + "numberMatches": 4, + "route": 12, + "item": 7, + "variable": 5, + "regexp": 7, + "strlen": 1, + "<=>": 5, + "0": 9, + "for": 4, + "in": 4, + "1": 3, + "else": 11, + "+": 5, + "substr": 3, + "break": 9, + "&&": 6, + "z": 2, + "Z": 2, + "true": 2, + "<='9')>": 1, + "_": 1, + "2": 2, + "continue": 1, + "[": 14, + "]": 14, + "moduleName": 5, + "controllerName": 7, + "actionName": 4, + "parts": 9, + "routePaths": 5, + "realClassName": 1, + "namespaceName": 1, + "pcrePattern": 4, + "compiledPattern": 4, + "extracted": 4, + "typeof": 2, + "throw": 1, + "new": 1, + "Exception": 1, + "explode": 1, + "switch": 1, + "count": 1, + "case": 3, + "controller": 1, + "action": 1, + "array": 1, + "The": 1, + "contains": 1, + "invalid": 1, + "#": 1, + "array_merge": 1, + "//Update": 1, + "the": 1, + "s": 1, + "name": 5, + "*": 2, + "@return": 1, + "*/": 1, + "getName": 1, + "setName": 1, + "beforeMatch": 1, + "callback": 2, + "getBeforeMatch": 1, + "getRouteId": 1, + "getPattern": 1, + "getCompiledPattern": 1, + "getPaths": 1, + "getReversedPaths": 1, + "reversed": 4, + "path": 3, + "position": 3, + "setHttpMethods": 1, + "getHttpMethods": 1, + "setHostname": 1, + "hostname": 2, + "getHostname": 1, + "convert": 1, + "converter": 2, + "getConverters": 1, + "%": 10, + "#define": 1, + "MAX_FACTOR": 3, + "#include": 1, + "static": 1, + "long": 3, + "fibonacci": 4, + "n": 5, + "<": 1, + "Cblock": 1, + "testCblock1": 1, + "a": 6, + "testCblock2": 1 + }, + "HTML": { + "": 2, + "html": 1, + "PUBLIC": 2, + "W3C": 2, + "DTD": 3, + "XHTML": 1, + "1": 1, + "0": 2, + "Transitional": 1, + "EN": 2, + "http": 3, + "www": 2, + "w3": 2, + "org": 2, + "TR": 2, + "xhtml1": 2, + "transitional": 1, + "dtd": 2, + "": 2, + "xmlns=": 1, + "": 2, + "": 1, + "equiv=": 1, + "content=": 1, + "": 2, + "Related": 2, + "Pages": 2, + "": 2, + "": 1, + "href=": 9, + "rel=": 1, + "type=": 1, + "": 1, + "": 2, + "
": 10, + "class=": 22, + "": 8, + "Main": 1, + "Page": 1, + "": 8, + "&": 3, + "middot": 3, + ";": 3, + "Class": 2, + "Overview": 2, + "Hierarchy": 1, + "All": 1, + "Classes": 1, + "
": 11, + "Here": 1, + "is": 1, + "a": 4, + "list": 1, + "of": 5, + "all": 1, + "related": 1, + "documentation": 1, + "pages": 1, + "": 1, + "": 2, + "id=": 2, + "": 4, + "": 2, + "16": 1, + "The": 2, + "Layout": 1, + "System": 1, + "
": 4, + "": 2, + "src=": 2, + "alt=": 2, + "width=": 1, + "height=": 2, + "target=": 3, + "
": 1, + "Generated": 1, + "with": 1, + "Doxygen": 1, + "": 2, + "": 2, + "HTML": 2, + "4": 1, + "Frameset": 1, + "REC": 1, + "html40": 1, + "frameset": 1, + "Common_meta": 1, + "(": 14, + ")": 14, + "Android": 5, + "API": 7, + "Differences": 2, + "Report": 2, + "Header": 1, + "

": 1, + "

": 1, + "

": 3, + "This": 1, + "document": 1, + "details": 1, + "the": 11, + "changes": 2, + "in": 4, + "framework": 2, + "API.": 3, + "It": 2, + "shows": 1, + "additions": 1, + "modifications": 1, + "and": 5, + "removals": 2, + "for": 2, + "packages": 1, + "classes": 1, + "methods": 1, + "fields.": 1, + "Each": 1, + "reference": 1, + "to": 3, + "an": 3, + "change": 2, + "includes": 1, + "brief": 1, + "description": 1, + "explanation": 1, + "suggested": 1, + "workaround": 1, + "where": 1, + "available.": 1, + "

": 3, + "differences": 2, + "described": 1, + "this": 2, + "report": 1, + "are": 3, + "based": 1, + "comparison": 1, + "APIs": 1, + "whose": 1, + "versions": 1, + "specified": 1, + "upper": 1, + "-": 1, + "right": 1, + "corner": 1, + "page.": 1, + "compares": 1, + "newer": 1, + "older": 2, + "version": 1, + "noting": 1, + "any": 1, + "relative": 1, + "So": 1, + "example": 1, + "indicated": 1, + "no": 1, + "longer": 1, + "present": 1, + "For": 1, + "more": 1, + "information": 1, + "about": 1, + "SDK": 1, + "see": 1, + "product": 1, + "site": 1, + ".": 1, + "if": 4, + "no_delta": 1, + "

": 1, + "Congratulation": 1, + "

": 1, + "No": 1, + "were": 1, + "detected": 1, + "between": 1, + "two": 1, + "provided": 1, + "APIs.": 1, + "endif": 4, + "removed_packages": 2, + "Table": 3, + "name": 3, + "rows": 3, + "{": 3, + "it.from": 1, + "ModelElementRow": 1, + "}": 3, + "
": 3, + "added_packages": 2, + "it.to": 2, + "PackageAddedLink": 1, + "SimpleTableRow": 2, + "changed_packages": 2, + "PackageChangedLink": 1 + }, + "Opa": { + "Server.start": 1, + "(": 4, + "Server.http": 1, + "{": 2, + "page": 1, + "function": 1, + ")": 4, + "

": 2, + "Hello": 2, + "world": 2, + "

": 2, + "}": 2, + "title": 1, + "server": 1, + "Server.one_page_server": 1, + "-": 1 + }, + "NetLogo": { + "patches": 7, + "-": 28, + "own": 1, + "[": 17, + "living": 6, + ";": 12, + "indicates": 1, + "if": 2, + "the": 6, + "cell": 10, + "is": 1, + "live": 4, + "neighbors": 5, + "counts": 1, + "how": 1, + "many": 1, + "neighboring": 1, + "cells": 2, + "are": 1, + "alive": 1, + "]": 17, + "to": 6, + "setup": 2, + "blank": 1, + "clear": 2, + "all": 5, + "ask": 6, + "death": 5, + "reset": 2, + "ticks": 2, + "end": 6, + "random": 2, + "ifelse": 3, + "float": 1, + "<": 1, + "initial": 1, + "density": 1, + "birth": 4, + "set": 5, + "true": 1, + "pcolor": 2, + "fgcolor": 1, + "false": 1, + "bgcolor": 1, + "go": 1, + "count": 1, + "with": 2, + "Starting": 1, + "a": 1, + "new": 1, + "here": 1, + "ensures": 1, + "that": 1, + "finish": 1, + "executing": 2, + "first": 1, + "before": 1, + "any": 1, + "of": 2, + "them": 1, + "start": 1, + "second": 1, + "ask.": 1, + "This": 1, + "keeps": 1, + "in": 2, + "synch": 1, + "each": 2, + "other": 1, + "so": 1, + "births": 1, + "and": 1, + "deaths": 1, + "at": 1, + "generation": 1, + "happen": 1, + "lockstep.": 1, + "tick": 1, + "draw": 1, + "let": 1, + "erasing": 2, + "patch": 2, + "mouse": 5, + "xcor": 2, + "ycor": 2, + "while": 1, + "down": 1, + "display": 1 + }, + "RobotFramework": { + "***": 16, + "Settings": 3, + "Documentation": 3, + "Example": 3, + "test": 6, + "case": 1, + "using": 4, + "the": 9, + "gherkin": 1, + "syntax.": 1, + "...": 28, + "This": 3, + "has": 5, + "a": 4, + "workflow": 3, + "similar": 1, + "to": 5, + "keyword": 5, + "-": 16, + "driven": 4, + "examples.": 1, + "The": 2, + "difference": 1, + "is": 6, + "that": 5, + "keywords": 3, + "use": 2, + "higher": 1, + "abstraction": 1, + "level": 1, + "and": 2, + "their": 1, + "arguments": 1, + "are": 1, + "embedded": 1, + "into": 1, + "names.": 1, + "kind": 2, + "of": 3, + "_gherkin_": 2, + "syntax": 1, + "been": 3, + "made": 1, + "popular": 1, + "by": 3, + "[": 4, + "http": 1, + "//cukes.info": 1, + "|": 1, + "Cucumber": 1, + "]": 4, + ".": 4, + "It": 1, + "works": 3, + "well": 3, + "especially": 1, + "when": 2, + "tests": 5, + "act": 1, + "as": 1, + "examples": 1, + "need": 3, + "be": 9, + "easily": 1, + "understood": 1, + "also": 2, + "business": 2, + "people.": 1, + "Library": 3, + "CalculatorLibrary": 5, + "Test": 4, + "Cases": 3, + "Addition": 2, + "Given": 1, + "calculator": 1, + "cleared": 2, + "When": 1, + "user": 2, + "types": 2, + "pushes": 2, + "equals": 2, + "Then": 1, + "result": 2, + "Keywords": 2, + "Calculator": 1, + "Push": 16, + "button": 13, + "C": 4, + "User": 2, + "buttons": 4, + "{": 15, + "expression": 5, + "}": 15, + "Result": 8, + "should": 9, + "cases": 2, + "data": 2, + "testing": 2, + "approach.": 2, + "Tests": 1, + "Calculate": 3, + "created": 1, + "in": 5, + "this": 1, + "file": 1, + "turn": 1, + "uses": 1, + "An": 1, + "exception": 1, + "last": 1, + "custom": 1, + "_template": 1, + "keyword_.": 1, + "style": 3, + "you": 1, + "repeat": 1, + "same": 1, + "multiple": 2, + "times.": 1, + "Notice": 1, + "one": 1, + "these": 1, + "fails": 1, + "on": 1, + "purpose": 1, + "show": 1, + "how": 1, + "failures": 1, + "look": 1, + "like.": 1, + "Template": 2, + "Expression": 1, + "Expected": 1, + "+": 6, + "Subtraction": 1, + "Multiplication": 1, + "*": 4, + "Division": 2, + "/": 5, + "Failing": 1, + "Calculation": 3, + "error": 4, + "fail": 2, + "kekkonen": 1, + "Invalid": 2, + "EMPTY": 3, + "expression.": 1, + "zero.": 1, + "Arguments": 2, + "expected": 4, + "Should": 2, + "cause": 1, + "equal": 1, + "#": 2, + "Using": 1, + "BuiltIn": 1, + "All": 1, + "contain": 1, + "constructed": 1, + "from": 1, + "Creating": 1, + "new": 1, + "or": 1, + "editing": 1, + "existing": 1, + "easy": 1, + "even": 1, + "for": 2, + "people": 2, + "without": 1, + "programming": 1, + "skills.": 1, + "normal": 1, + "automation.": 1, + "If": 1, + "understand": 1, + "may": 1, + "work": 1, + "better.": 1, + "Simple": 1, + "calculation": 2, + "Longer": 1, + "Clear": 1, + "built": 1, + "variable": 1 }, "Awk": { "SHEBANG#!awk": 1, @@ -3170,95 +1922,1624 @@ "fragments": 1, "END": 1 }, + "Parrot Assembly": { + "SHEBANG#!parrot": 1, + ".pcc_sub": 1, + "main": 2, + "say": 1, + "end": 1 + }, + "Agda": { + "module": 3, + "NatCat": 1, + "where": 2, + "open": 2, + "import": 2, + "Relation.Binary.PropositionalEquality": 1, + "-": 21, + "If": 1, + "you": 2, + "can": 1, + "show": 1, + "that": 1, + "a": 1, + "relation": 1, + "only": 1, + "ever": 1, + "has": 1, + "one": 1, + "inhabitant": 5, + "get": 1, + "the": 1, + "category": 1, + "laws": 1, + "for": 1, + "free": 1, + "EasyCategory": 3, + "(": 36, + "obj": 4, + "Set": 2, + ")": 36, + "_": 6, + "{": 10, + "x": 34, + "y": 28, + "z": 18, + "}": 10, + "id": 9, + "single": 4, + "r": 26, + "s": 29, + "assoc": 2, + "w": 4, + "t": 6, + "Data.Nat": 1, + "same": 5, + ".0": 2, + "n": 14, + "refl": 6, + ".": 5, + "suc": 6, + "m": 6, + "cong": 1, + "trans": 5, + ".n": 1, + "zero": 1, + "Nat": 1 + }, + "Verilog": { + "////////////////////////////////////////////////////////////////////////////////": 14, + "//": 117, + "timescale": 10, + "ns": 8, + "/": 11, + "ps": 8, + "module": 18, + "sqrt_pipelined": 3, + "(": 378, + "input": 68, + "clk": 40, + "clock": 3, + "reset_n": 32, + "asynchronous": 2, + "reset": 13, + "start": 12, + "optional": 2, + "signal": 3, + "[": 179, + "INPUT_BITS": 28, + "-": 73, + "]": 179, + "radicand": 12, + "unsigned": 2, + "output": 42, + "reg": 26, + "data_valid": 7, + "data": 4, + "valid": 2, + "OUTPUT_BITS": 14, + "root": 8, + ")": 378, + ";": 287, + "parameter": 7, + "number": 2, + "of": 8, + "bits": 2, + "any": 1, + "integer": 1, + "localparam": 4, + "+": 36, + "%": 3, + "start_gen": 7, + "propagation": 1, + "OUTPUT_BITS*INPUT_BITS": 9, + "root_gen": 15, + "values": 3, + "radicand_gen": 10, + "wire": 67, + "mask_gen": 9, + "mask": 3, + "always": 23, + "@": 16, + "posedge": 11, + "or": 14, + "negedge": 8, + "begin": 46, + "if": 23, + "<": 47, + "end": 48, + "else": 22, + "generate": 3, + "genvar": 3, + "i": 62, + "for": 4, + "mask_4": 1, + "is": 4, + "odd": 1, + "this": 2, + "a": 5, + "assign": 23, + "INPUT_BITS*": 27, + "<<": 2, + "*": 4, + "i/2": 2, + "even": 1, + "pipeline": 2, + "pipeline_stage": 1, + "INPUT_BITS*i": 5, + "<=>": 4, + "1": 7, + "endgenerate": 3, + "endmodule": 18, + "ns/1ps": 2, + "sign_extender": 1, + "#": 10, + "INPUT_WIDTH": 5, + "OUTPUT_WIDTH": 4, + "original": 3, + "sign_extended_original": 2, + "sign_extend": 3, + "gen_sign_extend": 1, + "b0": 27, + "{": 11, + "}": 11, + "t_button_debounce": 1, + "CLK_FREQUENCY": 4, + "DEBOUNCE_HZ": 4, + "button": 25, + "debounce": 6, + "button_debounce": 3, + ".CLK_FREQUENCY": 1, + ".DEBOUNCE_HZ": 1, + ".clk": 6, + ".reset_n": 3, + ".button": 1, + ".debounce": 1, + "initial": 3, + "bx": 4, + "#10": 10, + "#5": 3, + "#100": 1, + "#0.1": 8, + "mux": 1, + "opA": 4, + "opB": 3, + "sum": 5, + "dsp_sel": 9, + "out": 5, + "cout": 4, + "b0000": 1, + "b01": 1, + "b11": 1, + "pipeline_registers": 1, + "BIT_WIDTH": 5, + "pipe_in": 4, + "pipe_out": 5, + "NUMBER_OF_STAGES": 7, + "BIT_WIDTH*": 5, + "pipe_gen": 6, + "BIT_WIDTH*i": 2, + "hex_display": 1, + "num": 5, + "en": 13, + "hex0": 2, + "hex1": 2, + "hex2": 2, + "hex3": 2, + "seg_7": 4, + "hex_group0": 1, + ".num": 4, + ".en": 4, + ".seg": 4, + "hex_group1": 1, + "hex_group2": 1, + "hex_group3": 1, + "bouncy": 1, + "debounced": 1, + "cycle": 1, + "COUNT_VALUE": 2, + "WAIT": 6, + "FIRE": 4, + "COUNT": 4, + "state": 6, + "next_state": 6, + "count": 6, + "case": 3, + "endcase": 3, + "default": 2, + "t_sqrt_pipelined": 1, + ".INPUT_BITS": 1, + ".start": 2, + ".radicand": 1, + ".data_valid": 2, + ".root": 1, + "#50": 2, + "#10000": 1, + "finish": 2, + "e0": 1, + "x": 41, + "y": 21, + "e1": 1, + "ch": 1, + "z": 7, + "o": 6, + "&": 6, + "maj": 1, + "|": 2, + "s0": 1, + "s1": 1, + "ps2_mouse": 1, + "Clock": 14, + "Input": 2, + "Reset": 1, + "inout": 2, + "ps2_clk": 3, + "PS2": 2, + "Bidirectional": 2, + "ps2_dat": 3, + "Data": 13, + "the_command": 2, + "Command": 1, + "to": 3, + "send": 2, + "mouse": 1, + "send_command": 2, + "Signal": 2, + "command_was_sent": 2, + "command": 1, + "finished": 1, + "sending": 1, + "error_communication_timed_out": 3, + "received_data": 2, + "Received": 1, + "received_data_en": 4, + "If": 1, + "new": 1, + "has": 1, + "been": 1, + "received": 1, + "start_receiving_data": 3, + "wait_for_incoming_data": 3, + "ps2_clk_posedge": 3, + "Internal": 2, + "Wires": 1, + "ps2_clk_negedge": 3, + "idle_counter": 4, + "Registers": 2, + "ps2_clk_reg": 4, + "ps2_data_reg": 5, + "last_ps2_clk": 4, + "ns_ps2_transceiver": 13, + "State": 1, + "Machine": 1, + "s_ps2_transceiver": 8, + "PS2_STATE_0_IDLE": 10, + "h1": 1, + "PS2_STATE_2_COMMAND_OUT": 2, + "h3": 1, + "PS2_STATE_4_END_DELAYED": 4, + "b1": 19, + "Defaults": 1, + "PS2_STATE_1_DATA_IN": 3, + "||": 1, + "PS2_STATE_3_END_TRANSFER": 3, + "h00": 1, + "&&": 3, + "h01": 1, + "ps2_mouse_cmdout": 1, + "mouse_cmdout": 1, + "Inputs": 2, + ".reset": 2, + ".the_command": 1, + ".send_command": 1, + ".ps2_clk_posedge": 2, + ".ps2_clk_negedge": 2, + ".ps2_clk": 1, + "Bidirectionals": 1, + ".ps2_dat": 1, + ".command_was_sent": 1, + "Outputs": 2, + ".error_communication_timed_out": 1, + "ps2_mouse_datain": 1, + "mouse_datain": 1, + ".wait_for_incoming_data": 1, + ".start_receiving_data": 1, + ".ps2_data": 1, + ".received_data": 1, + ".received_data_en": 1, + "vga": 1, + "wb_clk_i": 6, + "Mhz": 1, + "VDU": 1, + "wb_rst_i": 6, + "wb_dat_i": 3, + "wb_dat_o": 2, + "wb_adr_i": 3, + "wb_we_i": 3, + "wb_tga_i": 5, + "wb_sel_i": 3, + "wb_stb_i": 2, + "wb_cyc_i": 2, + "wb_ack_o": 2, + "vga_red_o": 2, + "vga_green_o": 2, + "vga_blue_o": 2, + "horiz_sync": 2, + "vert_sync": 2, + "csrm_adr_o": 2, + "csrm_sel_o": 2, + "csrm_we_o": 2, + "csrm_dat_o": 2, + "csrm_dat_i": 2, + "csr_adr_i": 3, + "csr_stb_i": 2, + "conf_wb_dat_o": 3, + "conf_wb_ack_o": 3, + "mem_wb_dat_o": 3, + "mem_wb_ack_o": 3, + "csr_adr_o": 2, + "csr_dat_i": 3, + "csr_stb_o": 3, + "v_retrace": 3, + "vh_retrace": 3, + "w_vert_sync": 3, + "shift_reg1": 3, + "graphics_alpha": 4, + "memory_mapping1": 3, + "write_mode": 3, + "raster_op": 3, + "read_mode": 3, + "bitmask": 3, + "set_reset": 3, + "enable_set_reset": 3, + "map_mask": 3, + "x_dotclockdiv2": 3, + "chain_four": 3, + "read_map_select": 3, + "color_compare": 3, + "color_dont_care": 3, + "wbm_adr_o": 3, + "wbm_sel_o": 3, + "wbm_we_o": 3, + "wbm_dat_o": 3, + "wbm_dat_i": 3, + "wbm_stb_o": 3, + "wbm_ack_i": 3, + "stb": 4, + "cur_start": 3, + "cur_end": 3, + "start_addr": 2, + "vcursor": 3, + "hcursor": 3, + "horiz_total": 3, + "end_horiz": 3, + "st_hor_retr": 3, + "end_hor_retr": 3, + "vert_total": 3, + "end_vert": 3, + "st_ver_retr": 3, + "end_ver_retr": 3, + "pal_addr": 3, + "pal_we": 3, + "pal_read": 3, + "pal_write": 3, + "dac_we": 3, + "dac_read_data_cycle": 3, + "dac_read_data_register": 3, + "dac_read_data": 3, + "dac_write_data_cycle": 3, + "dac_write_data_register": 3, + "dac_write_data": 3, + "vga_config_iface": 1, + "config_iface": 1, + ".wb_clk_i": 2, + ".wb_rst_i": 2, + ".wb_dat_i": 2, + ".wb_dat_o": 2, + ".wb_adr_i": 2, + ".wb_we_i": 2, + ".wb_sel_i": 2, + ".wb_stb_i": 2, + ".wb_ack_o": 2, + ".shift_reg1": 2, + ".graphics_alpha": 2, + ".memory_mapping1": 2, + ".write_mode": 2, + ".raster_op": 2, + ".read_mode": 2, + ".bitmask": 2, + ".set_reset": 2, + ".enable_set_reset": 2, + ".map_mask": 2, + ".x_dotclockdiv2": 2, + ".chain_four": 2, + ".read_map_select": 2, + ".color_compare": 2, + ".color_dont_care": 2, + ".pal_addr": 2, + ".pal_we": 2, + ".pal_read": 2, + ".pal_write": 2, + ".dac_we": 2, + ".dac_read_data_cycle": 2, + ".dac_read_data_register": 2, + ".dac_read_data": 2, + ".dac_write_data_cycle": 2, + ".dac_write_data_register": 2, + ".dac_write_data": 2, + ".cur_start": 2, + ".cur_end": 2, + ".start_addr": 1, + ".vcursor": 2, + ".hcursor": 2, + ".horiz_total": 2, + ".end_horiz": 2, + ".st_hor_retr": 2, + ".end_hor_retr": 2, + ".vert_total": 2, + ".end_vert": 2, + ".st_ver_retr": 2, + ".end_ver_retr": 2, + ".v_retrace": 2, + ".vh_retrace": 2, + "vga_lcd": 1, + "lcd": 1, + ".rst": 1, + ".csr_adr_o": 1, + ".csr_dat_i": 1, + ".csr_stb_o": 1, + ".vga_red_o": 1, + ".vga_green_o": 1, + ".vga_blue_o": 1, + ".horiz_sync": 1, + ".vert_sync": 1, + "vga_cpu_mem_iface": 1, + "cpu_mem_iface": 1, + ".wbs_adr_i": 1, + ".wbs_sel_i": 1, + ".wbs_we_i": 1, + ".wbs_dat_i": 1, + ".wbs_dat_o": 1, + ".wbs_stb_i": 1, + ".wbs_ack_o": 1, + ".wbm_adr_o": 1, + ".wbm_sel_o": 1, + ".wbm_we_o": 1, + ".wbm_dat_o": 1, + ".wbm_dat_i": 1, + ".wbm_stb_o": 1, + ".wbm_ack_i": 1, + "vga_mem_arbitrer": 1, + "mem_arbitrer": 1, + ".clk_i": 1, + ".rst_i": 1, + ".csr_adr_i": 1, + ".csr_dat_o": 1, + ".csr_stb_i": 1, + ".csrm_adr_o": 1, + ".csrm_sel_o": 1, + ".csrm_we_o": 1, + ".csrm_dat_o": 1, + ".csrm_dat_i": 1, + "t_div_pipelined": 1, + "dividend": 3, + "divisor": 5, + "div_by_zero": 2, + "quotient": 2, + "quotient_correct": 1, + "BITS": 2, + "div_pipelined": 2, + ".BITS": 1, + ".dividend": 1, + ".divisor": 1, + ".quotient": 1, + ".div_by_zero": 1, + "#1": 1, + "#1000": 1, + "control": 1, + "an": 6, + "b": 3, + "c": 3, + "d": 3, + "e": 3, + "f": 2, + "g": 2, + "h": 2, + "j": 2, + "k": 2, + "l": 2, + "FDRSE": 6, + ".INIT": 6, + "Synchronous": 12, + ".S": 6, + "Initial": 6, + "value": 6, + "register": 6, + "DFF2": 1, + ".Q": 6, + ".C": 6, + ".CE": 6, + "enable": 6, + ".D": 6, + ".R": 6, + "set": 6, + "DFF0": 1, + "DFF6": 1, + "DFF4": 1, + "DFF10": 1, + "DFF8": 1 + }, + "Groovy Server Pages": { + "": 4, + "": 4, + "": 4, + "http": 3, + "equiv=": 3, + "content=": 4, + "": 4, + "Testing": 3, + "with": 3, + "Resources": 2, + "": 4, + "": 2, + "module=": 2, + "": 4, + "": 4, + "": 4, + "": 4, + "SiteMesh": 2, + "and": 2, + "{": 1, + "example": 1, + "}": 1, + "<%@>": 1, + "page": 2, + "contentType=": 1, + "Using": 1, + "directive": 1, + "tag": 1, + "": 2, + "Print": 1, + "name=": 1 + }, + "Groovy": { + "SHEBANG#!groovy": 1, + "println": 2, + "task": 1, + "echoDirListViaAntBuilder": 1, + "(": 7, + ")": 7, + "{": 3, + "description": 1, + "//Docs": 1, + "http": 1, + "//ant.apache.org/manual/Types/fileset.html": 1, + "//Echo": 1, + "the": 3, + "Gradle": 1, + "project": 1, + "name": 1, + "via": 1, + "ant": 1, + "echo": 1, + "plugin": 1, + "ant.echo": 3, + "message": 1, + "project.name": 1, + "path": 2, + "//Gather": 1, + "list": 1, + "of": 1, + "files": 1, + "in": 1, + "a": 1, + "subdirectory": 1, + "ant.fileScanner": 1, + "fileset": 1, + "dir": 1, + "}": 3, + ".each": 1, + "//Print": 1, + "each": 1, + "file": 1, + "to": 1, + "screen": 1, + "with": 1, + "CWD": 1, + "projectDir": 1, + "removed.": 1, + "it.toString": 1, + "-": 1 + }, + "Sass": { + "blue": 7, + "#3bbfce": 2, + "margin": 8, + "px": 3, + ".content": 1, + "-": 3, + "navigation": 1, + "border": 3, + "color": 4, + "darken": 1, + "(": 1, + "%": 1, + ")": 1, + ".border": 2, + "padding": 2, + "/": 4, + ";": 6, + ".content_navigation": 1, + "{": 2, + "}": 2, + "solid": 1 + }, + "Apex": { + "global": 70, + "class": 7, + "TwilioAPI": 2, + "{": 219, + "private": 10, + "MissingTwilioConfigCustomSettingsException": 2, + "extends": 1, + "Exception": 1, + "}": 219, + "static": 83, + "TwilioRestClient": 5, + "client": 2, + ";": 308, + "(": 481, + ")": 481, + "public": 10, + "getDefaultClient": 2, + "if": 91, + "null": 92, + "TwilioConfig__c": 5, + "twilioCfg": 7, + "getTwilioConfig": 3, + "TwilioAPI.client": 2, + "new": 60, + "twilioCfg.AccountSid__c": 3, + "twilioCfg.AuthToken__c": 3, + "return": 106, + "TwilioAccount": 1, + "getDefaultAccount": 1, + ".getAccount": 2, + "TwilioCapability": 2, + "createCapability": 1, + "createClient": 1, + "String": 60, + "accountSid": 2, + "authToken": 2, + "Test.isRunningTest": 1, + "//": 11, + "dummy": 2, + "sid": 1, + "token": 7, + "else": 25, + "TwilioConfig__c.getOrgDefaults": 1, + "throw": 6, + "@isTest": 1, + "void": 9, + "test_TwilioAPI": 1, + "System.assertEquals": 5, + "TwilioAPI.getTwilioConfig": 2, + ".AccountSid__c": 1, + ".AuthToken__c": 1, + "TwilioAPI.getDefaultClient": 2, + ".getAccountSid": 1, + ".getSid": 2, + "TwilioAPI.getDefaultAccount": 1, + "BooleanUtils": 1, + "Boolean": 38, + "isFalse": 1, + "bool": 32, + "false": 13, + "isNotFalse": 1, + "true": 12, + "isNotTrue": 1, + "isTrue": 1, + "negate": 1, + "toBooleanDefaultIfNull": 1, + "defaultVal": 2, + "toBoolean": 2, + "Integer": 34, + "value": 10, + "strToBoolean": 1, + "StringUtils.equalsIgnoreCase": 1, + "//Converts": 1, + "an": 4, + "int": 1, + "to": 4, + "a": 6, + "boolean": 1, + "specifying": 1, + "//the": 2, + "conversion": 1, + "values.": 1, + "//Returns": 1, + "//Throws": 1, + "trueValue": 2, + "falseValue": 2, + "IllegalArgumentException": 5, + "toInteger": 1, + "toStringYesNo": 1, + "toStringYN": 1, + "toString": 3, + "trueString": 2, + "falseString": 2, + "xor": 1, + "[": 102, + "]": 102, + "boolArray": 4, + "||": 12, + "boolArray.size": 1, + "firstItem": 2, + "for": 24, + "EmailUtils": 1, + "sendEmailWithStandardAttachments": 3, + "List": 71, + "": 30, + "recipients": 11, + "emailSubject": 10, + "body": 8, + "useHTML": 6, + "": 1, + "attachmentIDs": 2, + "": 2, + "stdAttachments": 4, + "SELECT": 1, + "id": 1, + "name": 2, + "FROM": 1, + "Attachment": 2, + "WHERE": 1, + "Id": 1, + "IN": 1, + "": 3, + "fileAttachments": 5, + "attachment": 1, + "Messaging.EmailFileAttachment": 2, + "fileAttachment": 2, + "fileAttachment.setFileName": 1, + "attachment.Name": 1, + "fileAttachment.setBody": 1, + "attachment.Body": 1, + "fileAttachments.add": 1, + "sendEmail": 4, + "sendTextEmail": 1, + "textBody": 2, + "sendHTMLEmail": 1, + "htmlBody": 2, + "recipients.size": 1, + "Messaging.SingleEmailMessage": 3, + "mail": 2, + "email": 1, + "is": 5, + "not": 3, + "saved": 1, + "as": 1, + "activity.": 1, + "mail.setSaveAsActivity": 1, + "mail.setToAddresses": 1, + "mail.setSubject": 1, + "mail.setBccSender": 1, + "mail.setUseSignature": 1, + "mail.setHtmlBody": 1, + "mail.setPlainTextBody": 1, + "&&": 46, + "fileAttachments.size": 1, + "mail.setFileAttachments": 1, + "Messaging.sendEmail": 1, + "isValidEmailAddress": 2, + "str": 10, + "str.trim": 3, + ".length": 2, + "split": 5, + "str.split": 1, + "split.size": 2, + ".split": 1, + "isNotValidEmailAddress": 1, + "LanguageUtils": 1, + "final": 6, + "HTTP_LANGUAGE_CODE_PARAMETER_KEY": 2, + "DEFAULT_LANGUAGE_CODE": 3, + "Set": 6, + "SUPPORTED_LANGUAGE_CODES": 2, + "//Chinese": 2, + "Simplified": 1, + "Traditional": 1, + "//Dutch": 1, + "//English": 1, + "//Finnish": 1, + "//French": 1, + "//German": 1, + "//Italian": 1, + "//Japanese": 1, + "//Korean": 1, + "//Polish": 1, + "//Portuguese": 1, + "Brazilian": 1, + "//Russian": 1, + "//Spanish": 1, + "//Swedish": 1, + "//Thai": 1, + "//Czech": 1, + "//Danish": 1, + "//Hungarian": 1, + "//Indonesian": 1, + "//Turkish": 1, + "Map": 33, + "": 29, + "DEFAULTS": 1, + "getLangCodeByHttpParam": 4, + "returnValue": 22, + "LANGUAGE_CODE_SET": 1, + "getSuppLangCodeSet": 2, + "ApexPages.currentPage": 4, + ".getParameters": 2, + "LANGUAGE_HTTP_PARAMETER": 7, + "StringUtils.lowerCase": 3, + "StringUtils.replaceChars": 2, + ".get": 4, + "//underscore": 1, + "//dash": 1, + "DEFAULTS.containsKey": 3, + "DEFAULTS.get": 3, + "StringUtils.isNotBlank": 1, + "SUPPORTED_LANGUAGE_CODES.contains": 2, + "getLangCodeByBrowser": 4, + "LANGUAGES_FROM_BROWSER_AS_STRING": 2, + ".getHeaders": 1, + "LANGUAGES_FROM_BROWSER_AS_LIST": 3, + "splitAndFilterAcceptLanguageHeader": 2, + "LANGUAGES_FROM_BROWSER_AS_LIST.size": 1, + "languageFromBrowser": 6, + "getLangCodeByUser": 3, + "UserInfo.getLanguage": 1, + "getLangCodeByHttpParamOrIfNullThenBrowser": 1, + "StringUtils.defaultString": 4, + "getLangCodeByHttpParamOrIfNullThenUser": 1, + "getLangCodeByBrowserOrIfNullThenHttpParam": 1, + "getLangCodeByBrowserOrIfNullThenUser": 1, + "header": 2, + "returnList": 11, + "tokens": 3, + "StringUtils.split": 1, + "token.contains": 1, + "token.substring": 1, + "token.indexOf": 1, + "returnList.add": 8, + "StringUtils.length": 1, + "StringUtils.substring": 1, + "langCodes": 2, + "langCode": 3, + "langCodes.add": 1, + "getLanguageName": 1, + "displayLanguageCode": 13, + "languageCode": 2, + "translatedLanguageNames.get": 2, + "filterLanguageCode": 4, + "getAllLanguages": 3, + "translatedLanguageNames.containsKey": 1, + "<": 32, + "translatedLanguageNames": 1, + "GeoUtils": 1, + "generate": 1, + "KML": 1, + "string": 7, + "given": 2, + "page": 1, + "reference": 1, + "call": 1, + "getContent": 1, + "then": 1, + "cleanup": 1, + "the": 4, + "output.": 1, + "generateFromContent": 1, + "PageReference": 2, + "pr": 1, + "ret": 7, + "try": 1, + "pr.getContent": 1, + ".toString": 1, + "ret.replaceAll": 4, + "get": 4, + "content": 1, + "produces": 1, + "quote": 1, + "chars": 1, + "we": 1, + "need": 1, + "escape": 1, + "these": 2, + "in": 1, + "node": 1, + "catch": 1, + "exception": 1, + "e": 2, + "system.debug": 2, + "+": 75, + "must": 1, + "use": 1, + "ALL": 1, + "since": 1, + "many": 1, + "line": 1, + "may": 1, + "also": 1, + "": 2, + "geo_response": 1, + "accountAddressString": 2, + "account": 2, + "acct": 1, + "form": 1, + "address": 1, + "object": 1, + "adr": 9, + "acct.billingstreet": 1, + "acct.billingcity": 1, + "acct.billingstate": 1, + "acct.billingpostalcode": 2, + "acct.billingcountry": 2, + "adr.replaceAll": 4, + "testmethod": 1, + "t1": 1, + "pageRef": 3, + "Page.kmlPreviewTemplate": 1, + "Test.setCurrentPage": 1, + "system.assert": 1, + "GeoUtils.generateFromContent": 1, + "Account": 2, + "billingstreet": 1, + "billingcity": 1, + "billingstate": 1, + "billingpostalcode": 1, + "billingcountry": 1, + "insert": 1, + "system.assertEquals": 1, + "ArrayUtils": 1, + "EMPTY_STRING_ARRAY": 1, + "MAX_NUMBER_OF_ELEMENTS_IN_LIST": 5, + "objectToString": 1, + "": 22, + "objects": 3, + "strings": 3, + "objects.size": 1, + "Object": 23, + "obj": 3, + "instanceof": 1, + "strings.add": 1, + "reverse": 2, + "anArray": 14, + "i": 55, + "j": 10, + "anArray.size": 2, + "-": 18, + "tmp": 6, + "while": 8, + "SObject": 19, + "lowerCase": 1, + "strs": 9, + "strs.size": 3, + "returnValue.add": 3, + "str.toLowerCase": 1, + "upperCase": 1, + "str.toUpperCase": 1, + "trim": 1, + "mergex": 2, + "array1": 8, + "array2": 9, + "merged": 6, + "array1.size": 4, + "array2.size": 2, + "": 19, + "sObj": 4, + "merged.add": 2, + "isEmpty": 7, + "objectArray": 17, + "objectArray.size": 6, + "isNotEmpty": 4, + "pluck": 1, + "fieldName": 3, + "fieldName.trim": 2, + "plucked": 3, + "assertArraysAreEqual": 2, + "expected": 16, + "actual": 16, + "//check": 2, + "see": 2, + "one": 2, + "param": 2, + "but": 2, + "other": 2, + "System.assert": 6, + "ArrayUtils.toString": 12, + "expected.size": 4, + "actual.size": 2, + "merg": 2, + "list1": 15, + "list2": 9, + "list1.size": 6, + "list2.size": 2, + "elmt": 8, + "subset": 6, + "aList": 4, + "count": 10, + "startIndex": 9, + "<=>": 2, + "size": 2, + "1": 2, + "list1.get": 2, + "//LIST/ARRAY": 1, + "SORTING": 1, + "//FOR": 2, + "FORCE.COM": 1, + "PRIMITIVES": 1, + "Double": 1, + "ID": 1, + "etc.": 1, + "qsort": 18, + "theList": 72, + "PrimitiveComparator": 2, + "sortAsc": 24, + "ObjectComparator": 3, + "comparator": 14, + "theList.size": 2, + "SALESFORCE": 1, + "OBJECTS": 1, + "sObjects": 1, + "ISObjectComparator": 3, + "lo0": 6, + "hi0": 8, + "lo": 42, + "hi": 50, + "comparator.compare": 12, + "prs": 8, + "pivot": 14, + "/": 4 + }, + "UnrealScript": { + "class": 18, + "US3HelloWorld": 1, + "extends": 2, + "GameInfo": 1, + ";": 295, + "event": 3, + "InitGame": 1, + "(": 189, + "string": 25, + "Options": 1, + "out": 2, + "Error": 1, + ")": 189, + "{": 28, + "log": 1, + "}": 27, + "defaultproperties": 1, + "//": 5, + "-": 220, + "MutU2Weapons": 1, + "Mutator": 1, + "config": 18, + "U2Weapons": 1, + "var": 30, + "ReplacedWeaponClassNames0": 1, + "ReplacedWeaponClassNames1": 1, + "ReplacedWeaponClassNames2": 1, + "ReplacedWeaponClassNames3": 1, + "ReplacedWeaponClassNames4": 1, + "ReplacedWeaponClassNames5": 1, + "ReplacedWeaponClassNames6": 1, + "ReplacedWeaponClassNames7": 1, + "ReplacedWeaponClassNames8": 1, + "ReplacedWeaponClassNames9": 1, + "ReplacedWeaponClassNames10": 1, + "ReplacedWeaponClassNames11": 1, + "ReplacedWeaponClassNames12": 1, + "bool": 18, + "bConfigUseU2Weapon0": 1, + "bConfigUseU2Weapon1": 1, + "bConfigUseU2Weapon2": 1, + "bConfigUseU2Weapon3": 1, + "bConfigUseU2Weapon4": 1, + "bConfigUseU2Weapon5": 1, + "bConfigUseU2Weapon6": 1, + "bConfigUseU2Weapon7": 1, + "bConfigUseU2Weapon8": 1, + "bConfigUseU2Weapon9": 1, + "bConfigUseU2Weapon10": 1, + "bConfigUseU2Weapon11": 1, + "bConfigUseU2Weapon12": 1, + "//var": 8, + "byte": 4, + "bUseU2Weapon": 1, + "[": 125, + "]": 125, + "": 7, + "ReplacedWeaponClasses": 3, + "": 2, + "ReplacedWeaponPickupClasses": 1, + "": 3, + "ReplacedAmmoPickupClasses": 1, + "U2WeaponClasses": 2, + "//GE": 17, + "For": 3, + "default": 12, + "properties": 3, + "ONLY": 3, + "U2WeaponPickupClassNames": 1, + "U2AmmoPickupClassNames": 2, + "bIsVehicle": 4, + "bNotVehicle": 3, + "localized": 2, + "U2WeaponDisplayText": 1, + "U2WeaponDescText": 1, + "GUISelectOptions": 1, + "int": 10, + "FirePowerMode": 1, + "bExperimental": 3, + "bUseFieldGenerator": 2, + "bUseProximitySensor": 2, + "bIntegrateShieldReward": 2, + "IterationNum": 8, + "Weapons.Length": 1, + "const": 1, + "DamageMultiplier": 28, + "DamagePercentage": 3, + "bUseXMPFeel": 4, + "FlashbangModeString": 1, + "struct": 1, + "WeaponInfo": 2, + "ReplacedWeaponClass": 1, + "Generated": 4, + "from": 6, + "ReplacedWeaponClassName.": 2, + "This": 3, + "is": 6, + "what": 1, + "we": 3, + "replace.": 1, + "ReplacedWeaponPickupClass": 1, + "UNUSED": 1, + "ReplacedAmmoPickupClass": 1, + "WeaponClass": 1, + "the": 31, + "weapon": 10, + "are": 1, + "going": 1, + "to": 4, + "put": 1, + "inside": 1, + "world.": 1, + "WeaponPickupClassName": 1, + "WeponClass.": 1, + "AmmoPickupClassName": 1, + "WeaponClass.": 1, + "bEnabled": 1, + "Structs": 1, + "can": 2, + "d": 1, + "thus": 1, + "still": 1, + "require": 1, + "bConfigUseU2WeaponX": 1, + "indicates": 1, + "that": 3, + "spawns": 1, + "a": 2, + "vehicle": 3, + "deployable": 1, + "turrets": 1, + ".": 2, + "These": 1, + "only": 2, + "work": 1, + "in": 4, + "gametypes": 1, + "duh.": 1, + "Opposite": 1, + "of": 1, + "works": 1, + "non": 1, + "gametypes.": 2, + "Think": 1, + "shotgun.": 1, + "Weapons": 31, + "function": 5, + "PostBeginPlay": 1, + "local": 8, + "FireMode": 8, + "x": 65, + "//local": 3, + "ReplacedWeaponPickupClassName": 1, + "//IterationNum": 1, + "ArrayCount": 2, + "Level.Game.bAllowVehicles": 4, + "He": 1, + "he": 1, + "neat": 1, + "way": 1, + "get": 1, + "required": 1, + "number.": 1, + "for": 11, + "<": 9, + "+": 18, + ".bEnabled": 3, + "GetPropertyText": 5, + "needed": 1, + "use": 1, + "variables": 1, + "an": 1, + "array": 2, + "like": 1, + "fashion.": 1, + "//bUseU2Weapon": 1, + ".ReplacedWeaponClass": 5, + "DynamicLoadObject": 2, + "//ReplacedWeaponClasses": 1, + "//ReplacedWeaponPickupClassName": 1, + ".default.PickupClass": 1, + "if": 55, + ".ReplacedWeaponClass.default.FireModeClass": 4, + "None": 10, + "&&": 15, + ".default.AmmoClass": 1, + ".default.AmmoClass.default.PickupClass": 2, + ".ReplacedAmmoPickupClass": 2, + "break": 1, + ".WeaponClass": 7, + ".WeaponPickupClassName": 1, + ".WeaponClass.default.PickupClass": 1, + ".AmmoPickupClassName": 2, + ".bIsVehicle": 2, + ".bNotVehicle": 2, + "Super.PostBeginPlay": 1, + "ValidReplacement": 6, + "return": 47, + "CheckReplacement": 1, + "Actor": 1, + "Other": 23, + "bSuperRelevant": 3, + "i": 12, + "WeaponLocker": 3, + "L": 2, + "xWeaponBase": 3, + ".WeaponType": 2, + "false": 3, + "true": 5, + "Weapon": 1, + "Other.IsA": 2, + "Other.Class": 2, + "Ammo": 1, + "ReplaceWith": 1, + "L.Weapons.Length": 1, + "L.Weapons": 2, + "//STARTING": 1, + "WEAPON": 1, + "xPawn": 6, + ".RequiredEquipment": 3, + "True": 2, + "Special": 1, + "handling": 1, + "Shield": 2, + "Reward": 2, + "integration": 1, + "ShieldPack": 7, + ".SetStaticMesh": 1, + "StaticMesh": 1, + ".Skins": 1, + "Shader": 2, + ".RepSkin": 1, + ".SetDrawScale": 1, + ".SetCollisionSize": 1, + ".PickupMessage": 1, + ".PickupSound": 1, + "Sound": 1, + "Super.CheckReplacement": 1, + "GetInventoryClassOverride": 1, + "InventoryClassName": 3, + "Super.GetInventoryClassOverride": 1, + "static": 2, + "FillPlayInfo": 1, + "PlayInfo": 3, + "": 1, + "Recs": 4, + "WeaponOptions": 17, + "Super.FillPlayInfo": 1, + ".static.GetWeaponList": 1, + "Recs.Length": 1, + ".ClassName": 1, + ".FriendlyName": 1, + "PlayInfo.AddSetting": 33, + "default.RulesGroup": 33, + "default.U2WeaponDisplayText": 33, + "GetDescriptionText": 1, + "PropName": 35, + "default.U2WeaponDescText": 33, + "Super.GetDescriptionText": 1, + "PreBeginPlay": 1, + "float": 3, + "k": 29, + "Multiplier.": 1, + "Super.PreBeginPlay": 1, + "/100.0": 1, + "//log": 1, + "@k": 1, + "//Sets": 1, + "various": 1, + "settings": 1, + "match": 1, + "different": 1, + "games": 1, + ".default.DamagePercentage": 1, + "//Original": 1, + "U2": 3, + "compensate": 1, + "division": 1, + "errors": 1, + "Class": 105, + ".default.DamageMin": 12, + "*": 54, + ".default.DamageMax": 12, + ".default.Damage": 27, + ".default.myDamage": 4, + "//Dampened": 1, + "already": 1, + "no": 2, + "need": 1, + "rewrite": 1, + "else": 1, + "//General": 2, + "XMP": 4, + ".default.Spread": 1, + ".default.MaxAmmo": 7, + ".default.Speed": 8, + ".default.MomentumTransfer": 4, + ".default.ClipSize": 4, + ".default.FireLastReloadTime": 3, + ".default.DamageRadius": 4, + ".default.LifeSpan": 4, + ".default.ShakeRadius": 1, + ".default.ShakeMagnitude": 1, + ".default.MaxSpeed": 5, + ".default.FireRate": 3, + ".default.ReloadTime": 3, + "//3200": 1, + "too": 1, + "much": 1, + ".default.VehicleDamageScaling": 2, + "*k": 28, + "//Experimental": 1, + "options": 1, + "lets": 1, + "you": 2, + "Unuse": 1, + "EMPimp": 1, + "projectile": 1, + "and": 3, + "fire": 1, + "two": 1, + "CAR": 1, + "barrels": 1, + "//CAR": 1, + "nothing": 1, + "U2Weapons.U2AssaultRifleFire": 1, + "U2Weapons.U2AssaultRifleAltFire": 1, + "U2ProjectileConcussionGrenade": 1, + "U2Weapons.U2AssaultRifleInv": 1, + "U2Weapons.U2WeaponEnergyRifle": 1, + "U2Weapons.U2WeaponFlameThrower": 1, + "U2Weapons.U2WeaponPistol": 1, + "U2Weapons.U2AutoTurretDeploy": 1, + "U2Weapons.U2WeaponRocketLauncher": 1, + "U2Weapons.U2WeaponGrenadeLauncher": 1, + "U2Weapons.U2WeaponSniper": 2, + "U2Weapons.U2WeaponRocketTurret": 1, + "U2Weapons.U2WeaponLandMine": 1, + "U2Weapons.U2WeaponLaserTripMine": 1, + "U2Weapons.U2WeaponShotgun": 1, + "s": 7, + "Minigun.": 1, + "Enable": 5, + "Shock": 1, + "Lance": 1, + "Energy": 2, + "Rifle": 3, + "What": 7, + "should": 7, + "be": 8, + "replaced": 8, + "with": 9, + "Rifle.": 3, + "By": 7, + "it": 7, + "Bio": 1, + "Magnum": 2, + "Pistol": 1, + "Pistol.": 1, + "Onslaught": 1, + "Grenade": 1, + "Launcher.": 2, + "Shark": 2, + "Rocket": 4, + "Launcher": 1, + "Flak": 1, + "Cannon.": 1, + "Should": 1, + "Lightning": 1, + "Gun": 2, + "Widowmaker": 2, + "Sniper": 3, + "Classic": 1, + "here.": 1, + "Turret": 2, + "delpoyable": 1, + "deployable.": 1, + "Redeemer.": 1, + "Laser": 2, + "Trip": 2, + "Mine": 1, + "Mine.": 1, + "t": 2, + "replace": 1, + "Link": 1, + "matches": 1, + "vehicles.": 1, + "Crowd": 1, + "Pleaser": 1, + "Shotgun.": 1, + "have": 1, + "shields": 1, + "or": 2, + "damage": 1, + "filtering.": 1, + "If": 1, + "checked": 1, + "mutator": 1, + "produces": 1, + "Unreal": 4, + "II": 4, + "shield": 1, + "pickups.": 1, + "Choose": 1, + "between": 2, + "white": 1, + "overlay": 3, + "depending": 2, + "on": 2, + "player": 2, + "view": 1, + "style": 1, + "distance": 1, + "foolproof": 1, + "FM_DistanceBased": 1, + "Arena": 1, + "Add": 1, + "weapons": 1, + "other": 1, + "Fully": 1, + "customisable": 1, + "choose": 1, + "behaviour.": 1 + }, + "LiveScript": { + "a": 8, + "-": 25, + "const": 1, + "b": 3, + "var": 1, + "c": 3, + "d": 3, + "_000_000km": 1, + "*": 1, + "ms": 1, + "e": 2, + "(": 9, + ")": 10, + "dashes": 1, + "identifiers": 1, + "underscores_i": 1, + "/regexp1/": 1, + "and": 3, + "//regexp2//g": 1, + "strings": 1, + "[": 2, + "til": 1, + "]": 2, + "or": 2, + "to": 2, + "|": 3, + "map": 1, + "filter": 1, + "fold": 1, + "+": 1, + "class": 1, + "Class": 1, + "extends": 1, + "Anc": 1, + "est": 1, + "args": 1, + "copy": 1, + "from": 1, + "callback": 4, + "error": 6, + "data": 2, + "<": 1, + "read": 1, + "file": 2, + "return": 2, + "if": 2, + "<~>": 1, + "write": 1 + }, "BlitzBasic": { "Local": 34, - "bk": 3, - "CreateBank": 5, + "i": 49, + "start": 13, + "result": 4, + "s.Sum3Obj": 2, + "New": 11, + "Sum3Obj": 6, + "For": 6, + "To": 6, + "s": 12, + "Handle": 2, + "Before": 3, + "Delete": 6, + "Next": 7, + "MilliSecs": 4, "(": 125, ")": 126, - "PokeFloat": 3, + "Sum3_": 2, + "MakeSum3Obj": 2, "-": 24, "Print": 13, - "Bin": 4, - "PeekInt": 4, - "%": 6, - "Shl": 7, - "f": 5, - "ff": 1, - "+": 11, - "Hex": 2, - "FloatToHalf": 3, - "HalfToFloat": 1, - "FToI": 2, + "Sum3": 2, "WaitKey": 2, "End": 58, - ";": 57, - "Half": 1, - "precision": 2, - "bit": 2, - "arithmetic": 2, - "library": 2, - "Global": 2, - "Half_CBank_": 13, "Function": 101, - "f#": 3, + "a": 46, + "b": 7, + "c": 7, + "Return": 36, + "+": 11, + "Type": 8, + "Field": 10, + "isActive": 4, + "Last": 1, "If": 25, "Then": 18, - "Return": 36, - "HalfToFloat#": 1, - "h": 4, - "signBit": 6, - "exponent": 22, - "fraction": 9, - "fBits": 8, - "And": 8, - "<": 18, - "Shr": 3, - "F": 3, - "FF": 2, - "ElseIf": 1, - "Or": 4, - "PokeInt": 2, - "PeekFloat": 1, - "F800000": 1, - "FFFFF": 1, - "Abs": 1, - "*": 2, - "Sgn": 1, - "Else": 7, - "EndIf": 7, - "HalfAdd": 1, - "l": 84, - "r": 12, - "HalfSub": 1, - "HalfMul": 1, - "HalfDiv": 1, - "HalfLT": 1, - "HalfGT": 1, - "Double": 2, - "DoubleOut": 1, - "[": 2, - "]": 2, - "Double_CBank_": 1, - "DoubleToFloat#": 1, - "d": 1, - "FloatToDouble": 1, - "IntToDouble": 1, - "i": 49, - "SefToDouble": 1, - "s": 12, - "e": 4, - "DoubleAdd": 1, - "DoubleSub": 1, - "DoubleMul": 1, - "DoubleDiv": 1, - "DoubleLT": 1, - "DoubleGT": 1, + "True": 4, + "Restore": 1, + "label": 1, + "Read": 1, + "foo": 1, + ".label": 1, + "Data": 1, + "a_": 2, + "a.Sum3Obj": 1, + "Object.Sum3Obj": 1, + "return_": 2, + "Insert": 3, + "First": 1, + "False": 3, + ";": 57, "IDEal": 3, "Editor": 3, "Parameters": 3, - "F#1A#20#2F": 1, "C#Blitz3D": 3, + "Double": 2, "linked": 2, "list": 32, "container": 1, @@ -3272,9 +3553,7 @@ "and": 9, "issue": 1, "fixes": 1, - "Type": 8, "LList": 3, - "Field": 10, "head_.ListNode": 1, "tail_.ListNode": 1, "ListNode": 8, @@ -3286,12 +3565,11 @@ "cn_.ListNode": 1, "cni_": 8, "Create": 4, - "a": 46, "new": 4, "object": 2, "CreateList.LList": 1, "l.LList": 20, - "New": 11, + "l": 84, "head_": 35, "tail_": 34, "nx_": 33, @@ -3314,7 +3592,6 @@ "values": 4, "FreeList": 1, "ClearList": 2, - "Delete": 6, "Remove": 7, "the": 52, "from": 15, @@ -3323,6 +3600,7 @@ "n.ListNode": 12, "While": 7, "n": 54, + "<": 18, "nx.ListNode": 1, "nx": 1, "Wend": 6, @@ -3336,7 +3614,6 @@ "GetIterator": 3, "elems": 4, "EachIn": 5, - "True": 4, "if": 2, "contains": 1, "given": 7, @@ -3351,13 +3628,14 @@ "size": 4, "BankSize": 1, "p": 7, - "For": 6, - "To": 6, "Step": 2, "ListAddLast": 2, - "Next": 7, + "PeekInt": 4, "containing": 3, "ListToBank": 1, + "*": 2, + "CreateBank": 5, + "PokeInt": 2, "Swap": 1, "contents": 1, "two": 1, @@ -3398,7 +3676,6 @@ "return": 7, "ListAddLast.ListNode": 1, "Attach": 1, - "start": 13, "ListAddFirst.ListNode": 1, "occurence": 1, "ListRemove": 1, @@ -3411,14 +3688,16 @@ "index": 13, "ValueAtIndex": 1, "ListNodeAtIndex": 3, + "Else": 7, "invalid": 1, "ListNodeAtIndex.ListNode": 1, + "e": 4, "Beyond": 1, "valid": 2, "Negative": 1, "count": 1, "backward": 1, - "Before": 3, + "EndIf": 7, "Replace": 1, "added": 2, "by": 3, @@ -3433,7 +3712,6 @@ "ListRemoveFirst": 1, "val": 6, "ListRemoveLast": 1, - "Insert": 3, "into": 2, "before": 2, "specified": 2, @@ -3486,10 +3764,10 @@ "Disconnect": 1, "having": 1, "reached": 1, - "False": 3, "currently": 1, "pointed": 1, "IteratorRemove": 1, + "And": 8, "temp.ListNode": 1, "temp": 1, "Call": 1, @@ -3499,6351 +3777,11305 @@ "IteratorBreak": 1, "F#5#A#10#18#2A#32#3E#47#4C#58#66#6F#78#8F#9B#A9#B7#BD#C5#CC": 1, "F#E3#E9#EF#F4#F9#103#10D#11B#12B#13F#152#163": 1, - "result": 4, - "s.Sum3Obj": 2, - "Sum3Obj": 6, - "Handle": 2, - "MilliSecs": 4, - "Sum3_": 2, - "MakeSum3Obj": 2, - "Sum3": 2, - "b": 7, - "c": 7, - "isActive": 4, - "Last": 1, - "Restore": 1, - "label": 1, - "Read": 1, - "foo": 1, - ".label": 1, - "Data": 1, - "a_": 2, - "a.Sum3Obj": 1, - "Object.Sum3Obj": 1, - "return_": 2, - "First": 1 + "bk": 3, + "PokeFloat": 3, + "Bin": 4, + "%": 6, + "Shl": 7, + "f": 5, + "ff": 1, + "Hex": 2, + "FloatToHalf": 3, + "HalfToFloat": 1, + "FToI": 2, + "Half": 1, + "precision": 2, + "bit": 2, + "arithmetic": 2, + "library": 2, + "Global": 2, + "Half_CBank_": 13, + "f#": 3, + "HalfToFloat#": 1, + "h": 4, + "signBit": 6, + "exponent": 22, + "fraction": 9, + "fBits": 8, + "Shr": 3, + "F": 3, + "FF": 2, + "ElseIf": 1, + "Or": 4, + "PeekFloat": 1, + "F800000": 1, + "FFFFF": 1, + "Abs": 1, + "Sgn": 1, + "HalfAdd": 1, + "r": 12, + "HalfSub": 1, + "HalfMul": 1, + "HalfDiv": 1, + "HalfLT": 1, + "HalfGT": 1, + "DoubleOut": 1, + "[": 2, + "]": 2, + "Double_CBank_": 1, + "DoubleToFloat#": 1, + "d": 1, + "FloatToDouble": 1, + "IntToDouble": 1, + "SefToDouble": 1, + "DoubleAdd": 1, + "DoubleSub": 1, + "DoubleMul": 1, + "DoubleDiv": 1, + "DoubleLT": 1, + "DoubleGT": 1, + "F#1A#20#2F": 1 }, - "Bluespec": { - "package": 2, - "TbTL": 1, - ";": 156, - "import": 1, - "TL": 6, - "*": 1, - "interface": 2, - "Lamp": 3, - "method": 42, - "Bool": 32, - "changed": 2, - "Action": 17, - "show_offs": 2, - "show_ons": 2, - "reset": 2, - "endinterface": 2, - "module": 3, - "mkLamp#": 1, - "(": 158, - "String": 1, - "name": 3, - "lamp": 5, - ")": 163, - "Reg#": 15, - "prev": 5, - "<": 44, - "-": 29, - "mkReg": 15, - "False": 9, + "Forth": { + "immediate": 19, + "lastxt": 4, + "@": 13, + "dup": 10, + "c@": 2, + "negate": 1, + "swap": 12, + "c": 3, + ";": 61, + "source": 5, + "nip": 2, + "in": 4, + "Copyright": 3, + "Lars": 3, + "Brinkhoff": 3, + "char": 10, + "(": 88, + "-": 473, + ")": 87, + "bl": 4, + "word": 9, + "here": 9, + "+": 17, + "ahead": 2, + "resolve": 4, + "literal": 4, + "postpone": 14, + "nonimmediate": 1, + "caddr": 1, + "drop": 4, + "C": 9, + "find": 2, + "cells": 1, + "postponers": 1, + "execute": 1, + "unresolved": 4, + "orig": 5, + "chars": 1, + "n1": 2, + "n2": 2, + "else": 6, + "orig1": 1, + "orig2": 1, + "branch": 5, "if": 9, - "&&": 3, - "write": 2, - "+": 7, - "endmethod": 8, - "endmodule": 3, - "mkTest": 1, - "let": 1, - "dut": 2, - "sysTL": 3, - "Bit#": 1, - "ctr": 8, - "carN": 4, - "carS": 2, - "carE": 2, - "carW": 2, - "lamps": 15, - "[": 17, - "]": 17, - "mkLamp": 12, - "dut.lampRedNS": 1, - "dut.lampAmberNS": 1, - "dut.lampGreenNS": 1, - "dut.lampRedE": 1, - "dut.lampAmberE": 1, - "dut.lampGreenE": 1, - "dut.lampRedW": 1, - "dut.lampAmberW": 1, - "dut.lampGreenW": 1, - "dut.lampRedPed": 1, - "dut.lampAmberPed": 1, - "dut.lampGreenPed": 1, - "rule": 10, - "start": 1, - "dumpvars": 1, - "endrule": 10, - "detect_cars": 1, - "dut.set_car_state_N": 1, - "dut.set_car_state_S": 1, - "dut.set_car_state_E": 1, - "dut.set_car_state_W": 1, - "go": 1, - "True": 6, - "<=>": 3, - "12_000": 1, - "ped_button_push": 4, - "stop": 1, - "display": 2, - "finish": 1, - "function": 10, - "do_offs": 2, - "l": 3, - "l.show_offs": 1, - "do_ons": 2, - "l.show_ons": 1, - "do_reset": 2, - "l.reset": 1, - "do_it": 4, - "f": 2, - "action": 3, - "for": 3, - "Integer": 3, - "i": 15, - "endaction": 3, - "endfunction": 7, - "any_changes": 2, - "b": 12, - "||": 7, - ".changed": 1, - "return": 9, - "show": 1, - "time": 1, - "endpackage": 2, - "set_car_state_N": 2, - "x": 8, - "set_car_state_S": 2, - "set_car_state_E": 2, - "set_car_state_W": 2, - "lampRedNS": 2, - "lampAmberNS": 2, - "lampGreenNS": 2, - "lampRedE": 2, - "lampAmberE": 2, - "lampGreenE": 2, - "lampRedW": 2, - "lampAmberW": 2, - "lampGreenW": 2, - "lampRedPed": 2, - "lampAmberPed": 2, - "lampGreenPed": 2, - "typedef": 3, - "enum": 1, - "{": 1, - "AllRed": 4, - "GreenNS": 9, - "AmberNS": 5, - "GreenE": 8, - "AmberE": 5, - "GreenW": 8, - "AmberW": 5, - "GreenPed": 4, - "AmberPed": 3, - "}": 1, - "TLstates": 11, - "deriving": 1, - "Eq": 1, - "Bits": 1, - "UInt#": 2, - "Time32": 9, - "CtrSize": 3, - "allRedDelay": 2, - "amberDelay": 2, - "nsGreenDelay": 2, - "ewGreenDelay": 3, - "pedGreenDelay": 1, - "pedAmberDelay": 1, - "clocks_per_sec": 2, - "state": 21, - "next_green": 8, - "secs": 7, - "ped_button_pushed": 4, - "car_present_N": 3, - "car_present_S": 3, - "car_present_E": 4, - "car_present_W": 4, - "car_present_NS": 3, - "cycle_ctr": 6, - "dec_cycle_ctr": 1, - "Rules": 5, - "low_priority_rule": 2, - "rules": 4, - "inc_sec": 1, - "endrules": 4, - "next_state": 8, - "ns": 4, - "0": 2, - "green_seq": 7, - "case": 2, - "endcase": 2, - "car_present": 4, - "make_from_green_rule": 5, - "green_state": 2, - "delay": 2, - "car_is_present": 2, - "from_green": 1, - "make_from_amber_rule": 5, - "amber_state": 2, - "ng": 2, - "from_amber": 1, - "hprs": 10, - "7": 1, - "1": 1, - "2": 1, - "3": 1, - "4": 1, - "5": 1, - "6": 1, - "fromAllRed": 2, - "else": 4, - "noAction": 1, - "high_priority_rules": 4, - "rJoin": 1, - "addRules": 1, - "preempts": 1 - }, - "Brightscript": { - "**": 17, - "Simple": 1, - "Grid": 2, - "Screen": 2, - "Demonstration": 1, - "App": 1, - "Copyright": 1, - "(": 32, - "c": 1, - ")": 31, - "Roku": 1, - "Inc.": 1, - "All": 3, - "Rights": 1, - "Reserved.": 1, - "************************************************************": 2, - "Sub": 2, - "Main": 1, - "set": 2, - "to": 10, - "go": 1, - "time": 1, - "get": 1, - "started": 1, - "while": 4, - "gridstyle": 7, - "<": 1, - "print": 7, - ";": 10, - "screen": 5, - "preShowGridScreen": 2, - "showGridScreen": 2, - "end": 2, - "End": 4, - "Set": 1, - "the": 17, - "configurable": 1, - "theme": 3, - "attributes": 2, - "for": 10, - "application": 1, - "Configure": 1, - "custom": 1, - "overhang": 1, - "and": 4, - "Logo": 1, - "are": 2, - "artwork": 2, - "colors": 1, - "offsets": 1, - "specific": 1, - "app": 1, - "******************************************************": 4, - "Screens": 1, - "can": 2, - "make": 1, - "slight": 1, - "adjustments": 1, - "default": 1, - "individual": 1, - "attributes.": 1, - "these": 1, - "greyscales": 1, - "theme.GridScreenBackgroundColor": 1, - "theme.GridScreenMessageColor": 1, - "theme.GridScreenRetrievingColor": 1, - "theme.GridScreenListNameColor": 1, - "used": 1, - "in": 3, - "theme.CounterTextLeft": 1, - "theme.CounterSeparator": 1, - "theme.CounterTextRight": 1, - "theme.GridScreenLogoHD": 1, - "theme.GridScreenLogoOffsetHD_X": 1, - "theme.GridScreenLogoOffsetHD_Y": 1, - "theme.GridScreenOverhangHeightHD": 1, - "theme.GridScreenLogoSD": 1, - "theme.GridScreenOverhangHeightSD": 1, - "theme.GridScreenLogoOffsetSD_X": 1, - "theme.GridScreenLogoOffsetSD_Y": 1, - "theme.GridScreenFocusBorderSD": 1, - "theme.GridScreenFocusBorderHD": 1, - "use": 1, - "your": 1, - "own": 1, - "description": 1, - "background": 1, - "theme.GridScreenDescriptionOffsetSD": 1, - "theme.GridScreenDescriptionOffsetHD": 1, - "return": 5, - "Function": 5, - "Perform": 1, - "any": 1, - "startup/initialization": 1, - "stuff": 1, - "prior": 1, - "style": 6, - "as": 2, - "string": 3, - "As": 3, - "Object": 2, - "m.port": 3, - "CreateObject": 2, - "screen.SetMessagePort": 1, - "screen.": 1, - "The": 1, - "will": 3, - "show": 1, - "retreiving": 1, - "categoryList": 4, - "getCategoryList": 1, - "[": 3, - "]": 4, - "+": 1, - "screen.setupLists": 1, - "categoryList.count": 2, - "screen.SetListNames": 1, - "StyleButtons": 3, - "getGridControlButtons": 1, - "screen.SetContentList": 2, - "i": 3, - "-": 15, - "getShowsForCategoryItem": 1, - "screen.Show": 1, - "true": 1, - "msg": 3, - "wait": 1, - "getmessageport": 1, - "does": 1, - "not": 2, - "work": 1, - "on": 1, - "gridscreen": 1, - "type": 2, - "if": 3, - "then": 3, - "msg.GetMessage": 1, - "msg.GetIndex": 3, - "msg.getData": 2, - "msg.isListItemFocused": 1, - "else": 1, - "msg.isListItemSelected": 1, - "row": 2, - "selection": 3, - "yes": 1, - "so": 2, - "we": 3, - "come": 1, - "back": 1, - "with": 2, - "new": 1, - ".Title": 1, - "endif": 1, - "**********************************************************": 1, - "this": 3, - "function": 1, - "passing": 1, - "an": 1, - "roAssociativeArray": 2, - "be": 2, - "sufficient": 1, - "springboard": 2, - "display": 2, - "add": 1, - "code": 1, - "create": 1, - "now": 1, - "do": 1, - "nothing": 1, - "Return": 1, - "list": 1, - "of": 5, - "categories": 1, - "filter": 1, - "all": 1, - "categories.": 1, - "just": 2, - "static": 1, - "data": 2, - "example.": 1, - "********************************************************************": 1, - "ContentMetaData": 1, - "objects": 1, - "shows": 1, - "category.": 1, - "For": 1, - "example": 1, - "cheat": 1, - "but": 2, - "ideally": 1, - "you": 1, - "dynamically": 1, - "content": 2, - "each": 1, - "category": 1, - "is": 1, - "dynamic": 1, - "s": 1, - "one": 3, - "small": 1, - "step": 1, - "a": 4, - "man": 1, - "giant": 1, - "leap": 1, - "mankind.": 1, - "http": 14, - "//upload.wikimedia.org/wikipedia/commons/1/1e/Apollo_11_first_step.jpg": 2, - "I": 2, - "have": 2, - "Dream": 1, - "PG": 1, - "dream": 1, - "that": 1, - "my": 1, - "four": 1, - "little": 1, - "children": 1, - "day": 1, - "live": 1, - "nation": 1, - "where": 1, - "they": 1, - "judged": 1, - "by": 2, - "color": 1, - "their": 2, - "skin": 1, - "character.": 1, - "//upload.wikimedia.org/wikipedia/commons/8/81/Martin_Luther_King_": 2, - "_March_on_Washington.jpg": 2, - "Flat": 6, - "Movie": 2, - "HD": 6, - "x2": 4, - "SD": 5, - "Netflix": 1, - "//upload.wikimedia.org/wikipedia/commons/4/43/Gold_star_on_blue.gif": 2, - "Landscape": 1, - "x3": 6, - "Channel": 1, - "Store": 1, - "//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Dunkery_Hill.jpg/800px": 2, - "Dunkery_Hill.jpg": 2, - "Portrait": 1, - "x4": 1, - "posters": 3, - "//upload.wikimedia.org/wikipedia/commons/9/9f/Kane_George_Gurnett.jpg": 2, - "Square": 1, - "x1": 1, - "//upload.wikimedia.org/wikipedia/commons/thumb/d/de/SQUARE_SHAPE.svg/536px": 2, - "SQUARE_SHAPE.svg.png": 2, - "x9": 1, - "//upload.wikimedia.org/wikipedia/commons/thumb/2/22/": 2, - "%": 8, - "C3": 4, - "cran_TV_plat.svg/200px": 2, - "cran_TV_plat.svg.png": 2, - "}": 1, - "buttons": 1 - }, - "C": { - "#include": 154, - "const": 358, - "char": 530, - "*blob_type": 2, - ";": 5465, - "struct": 360, - "blob": 6, - "*lookup_blob": 2, - "(": 6243, - "unsigned": 140, - "*sha1": 16, - ")": 6245, - "{": 1531, - "object": 41, - "*obj": 9, - "lookup_object": 2, - "sha1": 20, - "if": 1015, - "obj": 48, - "return": 529, - "create_object": 2, - "OBJ_BLOB": 3, - "alloc_blob_node": 1, - "-": 1803, - "type": 36, - "error": 96, - "sha1_to_hex": 8, - "typename": 2, - "NULL": 330, - "}": 1547, - "*": 261, - "int": 446, - "parse_blob_buffer": 2, - "*item": 10, - "void": 288, - "*buffer": 6, - "long": 105, - "size": 120, - "item": 24, - "object.parsed": 4, - "#ifndef": 89, - "BLOB_H": 2, - "#define": 920, - "extern": 38, - "#endif": 243, - "BOOTSTRAP_H": 2, - "": 8, - "__GNUC__": 8, - "typedef": 191, - "*true": 1, - "*false": 1, - "*eof": 1, - "*empty_list": 1, - "*global_enviroment": 1, - "enum": 30, - "obj_type": 1, - "scm_bool": 1, - "scm_empty_list": 1, - "scm_eof": 1, - "scm_char": 1, - "scm_int": 1, - "scm_pair": 1, - "scm_symbol": 1, - "scm_prim_fun": 1, - "scm_lambda": 1, - "scm_str": 1, - "scm_file": 1, - "*eval_proc": 1, - "*maybe_add_begin": 1, - "*code": 2, - "init_enviroment": 1, - "*env": 4, - "eval_err": 1, - "*msg": 7, - "__attribute__": 1, - "noreturn": 1, - "define_var": 1, - "*var": 4, - "*val": 6, - "set_var": 1, - "*get_var": 1, - "*cond2nested_if": 1, - "*cond": 1, - "*let2lambda": 1, - "*let": 1, - "*and2nested_if": 1, - "*and": 1, - "*or2nested_if": 1, - "*or": 1, - "git_cache_init": 1, - "git_cache": 4, - "*cache": 4, - "size_t": 52, - "git_cached_obj_freeptr": 1, - "free_ptr": 2, - "<": 219, - "git__size_t_powerof2": 1, - "cache": 26, - "size_mask": 6, - "lru_count": 1, - "free_obj": 4, - "git_mutex_init": 1, - "&": 442, - "lock": 6, - "nodes": 10, - "git__malloc": 3, - "sizeof": 71, - "git_cached_obj": 5, - "GITERR_CHECK_ALLOC": 3, - "memset": 4, - "git_cache_free": 1, - "i": 410, - "for": 88, - "+": 551, - "[": 601, - "]": 601, - "git_cached_obj_decref": 3, - "git__free": 15, - "*git_cache_get": 1, - "git_oid": 7, - "*oid": 2, - "uint32_t": 144, - "hash": 12, - "*node": 2, - "*result": 1, - "memcpy": 35, - "oid": 17, - "id": 13, - "git_mutex_lock": 2, - "node": 9, - "&&": 248, - "git_oid_cmp": 6, - "git_cached_obj_incref": 3, - "result": 48, - "git_mutex_unlock": 2, - "*git_cache_try_store": 1, - "*_entry": 1, - "*entry": 2, - "_entry": 1, - "entry": 17, - "else": 190, - "save_commit_buffer": 3, - "*commit_type": 2, - "static": 455, - "commit": 59, - "*check_commit": 1, - "quiet": 5, - "OBJ_COMMIT": 5, - "*lookup_commit_reference_gently": 2, - "deref_tag": 1, - "parse_object": 1, - "check_commit": 2, - "*lookup_commit_reference": 2, - "lookup_commit_reference_gently": 1, - "*lookup_commit_or_die": 2, - "*ref_name": 2, - "*c": 69, - "lookup_commit_reference": 2, - "c": 252, - "die": 5, - "_": 3, - "ref_name": 2, - "hashcmp": 2, - "object.sha1": 8, - "warning": 1, - "*lookup_commit": 2, - "alloc_commit_node": 1, - "*lookup_commit_reference_by_name": 2, - "*name": 12, - "*commit": 10, - "get_sha1": 1, - "name": 28, - "||": 141, - "parse_commit": 3, - "parse_commit_date": 2, - "*buf": 10, - "*tail": 2, - "*dateptr": 1, - "buf": 57, - "tail": 12, - "memcmp": 6, - "while": 70, - "dateptr": 2, - "strtoul": 2, - "commit_graft": 13, - "**commit_graft": 1, - "commit_graft_alloc": 4, - "commit_graft_nr": 5, - "commit_graft_pos": 2, - "lo": 6, - "hi": 5, - "mi": 5, - "/": 9, - "*graft": 3, - "cmp": 9, - "graft": 10, - "register_commit_graft": 2, - "ignore_dups": 2, - "pos": 7, - "free": 62, - "alloc_nr": 1, - "xrealloc": 2, - "parse_commit_buffer": 3, - "buffer": 10, - "*bufptr": 1, - "parent": 7, - "commit_list": 35, - "**pptr": 1, - "<=>": 16, - "bufptr": 12, - "46": 1, - "tree": 3, - "5": 1, - "45": 1, - "n": 70, - "bogus": 1, - "s": 154, - "get_sha1_hex": 2, - "lookup_tree": 1, - "pptr": 5, - "parents": 4, - "lookup_commit_graft": 1, - "*new_parent": 2, - "48": 1, - "7": 1, - "47": 1, - "bad": 1, - "in": 11, - "nr_parent": 3, - "grafts_replace_parents": 1, - "continue": 20, - "new_parent": 6, - "lookup_commit": 2, - "commit_list_insert": 2, - "next": 8, - "date": 5, - "object_type": 1, - "ret": 142, - "read_sha1_file": 1, - "find_commit_subject": 2, - "*commit_buffer": 2, - "**subject": 2, - "*eol": 1, - "*p": 9, - "commit_buffer": 1, - "a": 80, - "b_date": 3, - "b": 66, - "a_date": 2, - "*commit_list_get_next": 1, - "*a": 9, - "commit_list_set_next": 1, - "*next": 6, - "commit_list_sort_by_date": 2, - "**list": 5, - "*list": 2, - "llist_mergesort": 1, - "peel_to_type": 1, - "util": 3, - "merge_remote_desc": 3, - "*desc": 1, - "desc": 5, - "xmalloc": 2, - "strdup": 1, - "**commit_list_append": 2, - "**next": 2, - "*new": 1, - "new": 4, - "COMMIT_H": 2, - "*util": 1, - "indegree": 1, - "*parents": 4, - "*tree": 3, - "decoration": 1, - "name_decoration": 3, - "*commit_list_insert": 1, - "commit_list_count": 1, - "*l": 1, - "*commit_list_insert_by_date": 1, - "free_commit_list": 1, - "cmit_fmt": 3, - "CMIT_FMT_RAW": 1, - "CMIT_FMT_MEDIUM": 2, - "CMIT_FMT_DEFAULT": 1, - "CMIT_FMT_SHORT": 1, - "CMIT_FMT_FULL": 1, - "CMIT_FMT_FULLER": 1, - "CMIT_FMT_ONELINE": 1, - "CMIT_FMT_EMAIL": 1, - "CMIT_FMT_USERFORMAT": 1, - "CMIT_FMT_UNSPECIFIED": 1, - "pretty_print_context": 6, - "fmt": 4, - "abbrev": 1, - "*subject": 1, - "*after_subject": 1, - "preserve_subject": 1, - "date_mode": 2, - "date_mode_explicit": 1, - "need_8bit_cte": 2, - "show_notes": 1, - "reflog_walk_info": 1, - "*reflog_info": 1, - "*output_encoding": 2, - "userformat_want": 2, - "notes": 1, - "has_non_ascii": 1, - "*text": 1, - "rev_info": 2, - "*logmsg_reencode": 1, - "*reencode_commit_message": 1, - "**encoding_p": 1, - "get_commit_format": 1, - "*arg": 1, - "*format_subject": 1, - "strbuf": 12, - "*sb": 7, - "*line_separator": 1, - "userformat_find_requirements": 1, - "*fmt": 2, - "*w": 2, - "format_commit_message": 1, - "*format": 2, - "*context": 1, - "pretty_print_commit": 1, - "*pp": 4, - "pp_commit_easy": 1, - "pp_user_info": 1, - "*what": 1, - "*line": 1, - "*encoding": 2, - "pp_title_line": 1, - "**msg_p": 2, - "pp_remainder": 1, - "indent": 1, - "*pop_most_recent_commit": 1, - "mark": 3, - "*pop_commit": 1, - "**stack": 1, - "clear_commit_marks": 1, - "clear_commit_marks_for_object_array": 1, - "object_array": 2, - "sort_in_topological_order": 1, - "**": 6, - "list": 1, - "lifo": 1, - "FLEX_ARRAY": 1, - "*read_graft_line": 1, - "len": 30, - "*lookup_commit_graft": 1, - "*get_merge_bases": 1, - "*rev1": 1, - "*rev2": 1, - "cleanup": 12, - "*get_merge_bases_many": 1, - "*one": 1, - "**twos": 1, - "*get_octopus_merge_bases": 1, - "*in": 1, - "register_shallow": 1, - "unregister_shallow": 1, - "for_each_commit_graft": 1, - "each_commit_graft_fn": 1, - "is_repository_shallow": 1, - "*get_shallow_commits": 1, - "*heads": 2, - "depth": 2, - "shallow_flag": 1, - "not_shallow_flag": 1, - "is_descendant_of": 1, - "in_merge_bases": 1, - "interactive_add": 1, - "argc": 26, - "**argv": 6, - "*prefix": 7, - "patch": 1, - "run_add_interactive": 1, - "*revision": 1, - "*patch_mode": 1, - "**pathspec": 1, - "inline": 3, - "single_parent": 1, - "*reduce_heads": 1, - "commit_extra_header": 7, - "*key": 5, - "*value": 5, - "append_merge_tag_headers": 1, - "***tail": 1, - "commit_tree": 1, - "*ret": 20, - "*author": 2, - "*sign_commit": 2, - "commit_tree_extended": 1, - "*read_commit_extra_headers": 1, - "*read_commit_extra_header_lines": 1, - "free_commit_extra_headers": 1, - "*extra": 1, - "merge_remote_util": 1, - "*get_merge_parent": 1, - "parse_signed_commit": 1, - "*message": 1, - "*signature": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "#ifdef": 66, - "CONFIG_SMP": 1, - "DEFINE_MUTEX": 1, - "cpu_add_remove_lock": 3, - "cpu_maps_update_begin": 9, - "mutex_lock": 5, - "cpu_maps_update_done": 9, - "mutex_unlock": 6, - "RAW_NOTIFIER_HEAD": 1, - "cpu_chain": 4, - "cpu_hotplug_disabled": 7, - "CONFIG_HOTPLUG_CPU": 2, - "task_struct": 5, - "*active_writer": 1, - "mutex": 1, - "refcount": 2, - "cpu_hotplug": 1, - ".active_writer": 1, - ".lock": 1, - "__MUTEX_INITIALIZER": 1, - "cpu_hotplug.lock": 8, - ".refcount": 1, - "get_online_cpus": 2, - "might_sleep": 1, - "cpu_hotplug.active_writer": 6, - "current": 5, - "cpu_hotplug.refcount": 3, - "EXPORT_SYMBOL_GPL": 4, - "put_online_cpus": 2, - "unlikely": 54, - "wake_up_process": 1, - "cpu_hotplug_begin": 4, - "likely": 22, - "break": 244, - "__set_current_state": 1, - "TASK_UNINTERRUPTIBLE": 1, - "schedule": 1, - "cpu_hotplug_done": 4, - "#else": 94, - "__ref": 6, - "register_cpu_notifier": 2, - "notifier_block": 3, - "*nb": 3, - "raw_notifier_chain_register": 1, - "nb": 2, - "__cpu_notify": 6, - "val": 20, - "*v": 3, - "nr_to_call": 2, - "*nr_calls": 1, - "__raw_notifier_call_chain": 1, - "v": 11, - "nr_calls": 9, - "notifier_to_errno": 1, - "cpu_notify": 5, - "cpu_notify_nofail": 4, - "BUG_ON": 4, - "EXPORT_SYMBOL": 8, - "unregister_cpu_notifier": 2, - "raw_notifier_chain_unregister": 1, - "clear_tasks_mm_cpumask": 1, - "cpu": 57, - "WARN_ON": 1, - "cpu_online": 5, - "rcu_read_lock": 1, - "for_each_process": 2, - "p": 60, - "*t": 2, - "t": 32, - "find_lock_task_mm": 1, - "cpumask_clear_cpu": 5, - "mm_cpumask": 1, - "mm": 1, - "task_unlock": 1, - "rcu_read_unlock": 1, - "check_for_tasks": 2, - "write_lock_irq": 1, - "tasklist_lock": 2, - "task_cpu": 1, - "state": 104, - "TASK_RUNNING": 1, - "utime": 1, - "stime": 1, - "printk": 12, - "KERN_WARNING": 3, - "comm": 1, - "task_pid_nr": 1, - "flags": 89, - "write_unlock_irq": 1, - "take_cpu_down_param": 3, - "mod": 13, - "*hcpu": 3, - "take_cpu_down": 2, - "*_param": 1, - "*param": 1, - "_param": 1, - "err": 38, - "__cpu_disable": 1, - "CPU_DYING": 1, - "|": 132, - "param": 2, - "hcpu": 10, - "_cpu_down": 3, - "tasks_frozen": 4, - "CPU_TASKS_FROZEN": 2, - "tcd_param": 2, - ".mod": 1, - ".hcpu": 1, - "num_online_cpus": 2, - "EBUSY": 3, - "EINVAL": 6, - "CPU_DOWN_PREPARE": 1, - "CPU_DOWN_FAILED": 2, - "__func__": 2, - "goto": 159, - "out_release": 3, - "__stop_machine": 1, - "cpumask_of": 1, - "idle_cpu": 1, - "cpu_relax": 1, - "__cpu_die": 1, - "CPU_DEAD": 1, - "CPU_POST_DEAD": 1, - "cpu_down": 2, - "out": 18, - "__cpuinit": 3, - "_cpu_up": 3, - "*idle": 1, - "cpu_present": 1, - "idle": 4, - "idle_thread_get": 1, - "IS_ERR": 1, - "PTR_ERR": 1, - "CPU_UP_PREPARE": 1, - "out_notify": 3, - "__cpu_up": 1, - "CPU_ONLINE": 1, - "CPU_UP_CANCELED": 1, - "cpu_up": 2, - "CONFIG_MEMORY_HOTPLUG": 2, - "nid": 5, - "pg_data_t": 1, - "*pgdat": 1, - "cpu_possible": 1, - "KERN_ERR": 5, - "#if": 92, - "defined": 42, - "CONFIG_IA64": 1, - "cpu_to_node": 1, - "node_online": 1, - "mem_online_node": 1, - "pgdat": 3, - "NODE_DATA": 1, - "ENOMEM": 4, - "node_zonelists": 1, - "_zonerefs": 1, - "zone": 1, - "zonelists_mutex": 2, - "build_all_zonelists": 1, - "CONFIG_PM_SLEEP_SMP": 2, - "cpumask_var_t": 1, - "frozen_cpus": 9, - "__weak": 4, - "arch_disable_nonboot_cpus_begin": 2, - "arch_disable_nonboot_cpus_end": 2, - "disable_nonboot_cpus": 1, - "first_cpu": 3, - "cpumask_first": 1, - "cpu_online_mask": 3, - "cpumask_clear": 2, - "for_each_online_cpu": 1, - "cpumask_set_cpu": 5, - "arch_enable_nonboot_cpus_begin": 2, - "arch_enable_nonboot_cpus_end": 2, - "enable_nonboot_cpus": 1, - "cpumask_empty": 1, - "KERN_INFO": 2, - "for_each_cpu": 1, - "__init": 2, - "alloc_frozen_cpus": 2, - "alloc_cpumask_var": 1, - "GFP_KERNEL": 1, - "__GFP_ZERO": 1, - "core_initcall": 2, - "cpu_hotplug_disable_before_freeze": 2, - "cpu_hotplug_enable_after_thaw": 2, - "cpu_hotplug_pm_callback": 2, - "action": 2, - "*ptr": 1, - "switch": 46, - "case": 273, - "PM_SUSPEND_PREPARE": 1, - "PM_HIBERNATION_PREPARE": 1, - "PM_POST_SUSPEND": 1, - "PM_POST_HIBERNATION": 1, - "default": 33, - "NOTIFY_DONE": 1, - "NOTIFY_OK": 1, - "cpu_hotplug_pm_sync_init": 2, - "pm_notifier": 1, - "notify_cpu_starting": 1, - "CPU_STARTING": 1, - "cpumask_test_cpu": 1, - "CPU_STARTING_FROZEN": 1, - "MASK_DECLARE_1": 3, - "x": 57, - "UL": 1, - "<<": 56, - "MASK_DECLARE_2": 3, - "MASK_DECLARE_4": 3, - "MASK_DECLARE_8": 9, - "cpu_bit_bitmap": 2, - "BITS_PER_LONG": 2, - "BITS_TO_LONGS": 1, - "NR_CPUS": 2, - "DECLARE_BITMAP": 6, - "cpu_all_bits": 2, - "CPU_BITS_ALL": 2, - "CONFIG_INIT_ALL_POSSIBLE": 1, - "cpu_possible_bits": 6, - "CONFIG_NR_CPUS": 5, - "__read_mostly": 5, - "cpumask": 7, - "*const": 4, - "cpu_possible_mask": 2, - "to_cpumask": 15, - "cpu_online_bits": 5, - "cpu_present_bits": 5, - "cpu_present_mask": 2, - "cpu_active_bits": 4, - "cpu_active_mask": 2, - "set_cpu_possible": 1, - "bool": 6, - "possible": 2, - "set_cpu_present": 1, - "present": 2, - "set_cpu_online": 1, - "online": 2, - "set_cpu_active": 1, - "active": 2, - "init_cpu_present": 1, - "*src": 3, - "cpumask_copy": 3, - "src": 16, - "init_cpu_possible": 1, - "init_cpu_online": 1, - "*diff_prefix_from_pathspec": 1, - "git_strarray": 2, - "*pathspec": 2, - "git_buf": 3, - "prefix": 34, - "GIT_BUF_INIT": 3, - "*scan": 2, - "git_buf_common_prefix": 1, - "pathspec": 15, - "scan": 4, - "prefix.ptr": 2, - "git__iswildcard": 1, - "git_buf_truncate": 1, - "prefix.size": 1, - "git_buf_detach": 1, - "git_buf_free": 4, - "diff_pathspec_is_interesting": 2, - "*str": 1, - "count": 17, - "false": 77, - "true": 73, - "str": 162, - "strings": 5, - "diff_path_matches_pathspec": 3, - "git_diff_list": 17, - "*diff": 8, - "*path": 2, - "git_attr_fnmatch": 4, - "*match": 3, - "diff": 93, - "pathspec.length": 1, - "git_vector_foreach": 4, - "match": 16, - "p_fnmatch": 1, - "pattern": 3, - "path": 20, - "FNM_NOMATCH": 1, - "GIT_ATTR_FNMATCH_HASWILD": 1, - "strncmp": 1, - "length": 58, - "GIT_ATTR_FNMATCH_NEGATIVE": 1, - "git_diff_delta": 19, - "*diff_delta__alloc": 1, - "git_delta_t": 5, - "status": 57, - "*delta": 6, - "git__calloc": 3, - "delta": 54, - "old_file.path": 12, - "git_pool_strdup": 3, - "pool": 12, - "new_file.path": 6, - "opts.flags": 8, - "GIT_DIFF_REVERSE": 3, - "GIT_DELTA_ADDED": 4, - "GIT_DELTA_DELETED": 7, - "*diff_delta__dup": 1, - "*d": 1, - "git_pool": 4, - "*pool": 3, - "d": 16, - "fail": 19, - "*diff_delta__merge_like_cgit": 1, - "*b": 6, - "*dup": 1, - "diff_delta__dup": 3, - "dup": 15, - "new_file.oid": 7, - "git_oid_cpy": 5, - "new_file.mode": 4, - "new_file.size": 3, - "new_file.flags": 4, - "old_file.oid": 3, - "GIT_DELTA_UNTRACKED": 5, - "GIT_DELTA_IGNORED": 5, - "GIT_DELTA_UNMODIFIED": 11, - "diff_delta__from_one": 5, - "git_index_entry": 8, - "GIT_DIFF_INCLUDE_IGNORED": 1, - "GIT_DIFF_INCLUDE_UNTRACKED": 1, - "diff_delta__alloc": 2, - "assert": 41, - "GIT_DELTA_MODIFIED": 3, - "old_file.mode": 2, - "mode": 11, - "old_file.size": 1, - "file_size": 6, - "old_file.flags": 2, - "GIT_DIFF_FILE_VALID_OID": 4, - "git_vector_insert": 4, - "deltas": 8, - "diff_delta__from_two": 2, - "*old_entry": 1, - "*new_entry": 1, - "*new_oid": 1, - "GIT_DIFF_INCLUDE_UNMODIFIED": 1, - "*temp": 1, - "old_entry": 5, - "new_entry": 5, - "temp": 11, - "new_oid": 3, - "git_oid_iszero": 2, - "*diff_strdup_prefix": 1, - "strlen": 17, - "git_pool_strcat": 1, - "git_pool_strndup": 1, - "diff_delta__cmp": 3, - "*da": 1, - "*db": 3, - "strcmp": 20, - "da": 2, - "db": 10, - "config_bool": 5, - "git_config": 3, - "*cfg": 2, - "defvalue": 2, - "git_config_get_bool": 1, - "cfg": 6, - "giterr_clear": 1, - "*git_diff_list_alloc": 1, - "git_repository": 7, - "*repo": 7, - "git_diff_options": 7, - "*opts": 6, - "repo": 23, - "git_vector_init": 3, - "git_pool_init": 2, - "git_repository_config__weakptr": 1, - "diffcaps": 13, - "GIT_DIFFCAPS_HAS_SYMLINKS": 2, - "GIT_DIFFCAPS_ASSUME_UNCHANGED": 2, - "GIT_DIFFCAPS_TRUST_EXEC_BIT": 2, - "GIT_DIFFCAPS_TRUST_CTIME": 2, - "opts": 24, - "opts.pathspec": 2, - "opts.old_prefix": 4, - "diff_strdup_prefix": 2, - "old_prefix": 2, - "DIFF_OLD_PREFIX_DEFAULT": 1, - "opts.new_prefix": 4, - "new_prefix": 2, - "DIFF_NEW_PREFIX_DEFAULT": 1, - "*swap": 1, - "swap": 9, - "pathspec.count": 2, - "*pattern": 1, - "pathspec.strings": 1, - "GIT_ATTR_FNMATCH_ALLOWSPACE": 1, - "git_attr_fnmatch__parse": 1, - "GIT_ENOTFOUND": 1, - "git_diff_list_free": 3, - "deltas.contents": 1, - "git_vector_free": 3, - "pathspec.contents": 1, - "git_pool_clear": 2, - "oid_for_workdir_item": 2, - "full_path": 3, - "git_buf_joinpath": 1, - "git_repository_workdir": 1, - "S_ISLNK": 2, - "git_odb__hashlink": 1, - "full_path.ptr": 2, - "git__is_sizet": 1, - "giterr_set": 1, - "GITERR_OS": 1, - "fd": 34, - "git_futils_open_ro": 1, - "git_odb__hashfd": 1, - "GIT_OBJ_BLOB": 1, - "p_close": 1, - "EXEC_BIT_MASK": 3, - "maybe_modified": 2, - "git_iterator": 8, - "*old_iter": 2, - "*oitem": 2, - "*new_iter": 2, - "*nitem": 2, - "noid": 4, - "*use_noid": 1, - "omode": 8, - "oitem": 29, - "nmode": 10, - "nitem": 32, - "GIT_UNUSED": 1, - "old_iter": 8, - "S_ISREG": 1, - "GIT_MODE_TYPE": 3, - "GIT_MODE_PERMS_MASK": 1, - "flags_extended": 2, - "GIT_IDXENTRY_INTENT_TO_ADD": 1, - "GIT_IDXENTRY_SKIP_WORKTREE": 1, - "new_iter": 13, - "GIT_ITERATOR_WORKDIR": 2, - "ctime.seconds": 2, - "mtime.seconds": 2, - "GIT_DIFFCAPS_USE_DEV": 1, - "dev": 2, - "ino": 2, - "uid": 2, - "gid": 2, - "S_ISGITLINK": 1, - "git_submodule": 1, - "*sub": 1, - "GIT_DIFF_IGNORE_SUBMODULES": 1, - "git_submodule_lookup": 1, - "sub": 12, - "ignore": 1, - "GIT_SUBMODULE_IGNORE_ALL": 1, - "use_noid": 2, - "diff_from_iterators": 5, - "**diff_ptr": 1, - "ignore_prefix": 6, - "git_diff_list_alloc": 1, - "old_src": 1, - "new_src": 3, - "git_iterator_current": 2, - "git_iterator_advance": 5, - "delta_type": 8, - "git_buf_len": 1, - "git__prefixcmp": 2, - "git_buf_cstr": 1, - "S_ISDIR": 1, - "GIT_DIFF_RECURSE_UNTRACKED_DIRS": 1, - "git_iterator_current_is_ignored": 2, - "git_buf_sets": 1, - "git_iterator_advance_into_directory": 1, - "git_iterator_free": 4, - "*diff_ptr": 2, - "git_diff_tree_to_tree": 1, - "git_tree": 4, - "*old_tree": 3, - "*new_tree": 1, - "**diff": 4, - "diff_prefix_from_pathspec": 4, - "old_tree": 5, - "new_tree": 2, - "git_iterator_for_tree_range": 4, - "git_diff_index_to_tree": 1, - "git_iterator_for_index_range": 2, - "git_diff_workdir_to_index": 1, - "git_iterator_for_workdir_range": 2, - "git_diff_workdir_to_tree": 1, - "git_diff_merge": 1, - "*onto": 1, - "*from": 1, - "onto_pool": 7, - "git_vector": 1, - "onto_new": 6, - "j": 206, - "onto": 7, - "from": 16, - "deltas.length": 4, - "*o": 8, - "GIT_VECTOR_GET": 2, - "*f": 2, - "f": 184, - "o": 80, - "diff_delta__merge_like_cgit": 1, - "git_vector_swap": 1, - "git_pool_swap": 1, - "ATSHOME_LIBATS_DYNARRAY_CATS": 3, - "": 5, - "atslib_dynarray_memcpy": 1, - "atslib_dynarray_memmove": 1, - "memmove": 2, - "//": 262, - "ifndef": 2, - "git_usage_string": 2, - "git_more_info_string": 2, - "N_": 1, - "startup_info": 3, - "git_startup_info": 2, - "use_pager": 8, - "pager_config": 3, - "*cmd": 5, - "want": 3, - "pager_command_config": 2, - "*data": 12, - "data": 69, - "prefixcmp": 3, - "var": 7, - "cmd": 46, - "git_config_maybe_bool": 1, - "value": 9, - "xstrdup": 2, - "check_pager_config": 3, - "c.cmd": 1, - "c.want": 2, - "c.value": 3, - "pager_program": 1, - "commit_pager_choice": 4, - "setenv": 1, - "setup_pager": 1, - "handle_options": 2, - "***argv": 2, - "*argc": 1, - "*envchanged": 1, - "**orig_argv": 1, - "*argv": 6, - "new_argv": 7, - "option_count": 1, - "alias_command": 4, - "trace_argv_printf": 3, - "*argcp": 4, - "subdir": 3, - "chdir": 2, - "die_errno": 3, - "errno": 20, - "saved_errno": 1, - "git_version_string": 1, - "GIT_VERSION": 1, - "RUN_SETUP": 81, - "RUN_SETUP_GENTLY": 16, - "USE_PAGER": 3, - "NEED_WORK_TREE": 18, - "cmd_struct": 4, - "option": 9, - "run_builtin": 2, - "help": 4, - "stat": 3, - "st": 2, - "argv": 54, - "setup_git_directory": 1, - "nongit_ok": 2, - "setup_git_directory_gently": 1, - "have_repository": 1, - "trace_repo_setup": 1, - "setup_work_tree": 1, - "fn": 5, - "fstat": 1, - "fileno": 1, - "stdout": 5, - "S_ISFIFO": 1, - "st.st_mode": 2, - "S_ISSOCK": 1, - "fflush": 2, - "ferror": 2, - "fclose": 5, - "handle_internal_command": 3, - "commands": 3, - "cmd_add": 2, - "cmd_annotate": 1, - "cmd_apply": 1, - "cmd_archive": 1, - "cmd_bisect__helper": 1, - "cmd_blame": 2, - "cmd_branch": 1, - "cmd_bundle": 1, - "cmd_cat_file": 1, - "cmd_check_attr": 1, - "cmd_check_ref_format": 1, - "cmd_checkout": 1, - "cmd_checkout_index": 1, - "cmd_cherry": 1, - "cmd_cherry_pick": 1, - "cmd_clean": 1, - "cmd_clone": 1, - "cmd_column": 1, - "cmd_commit": 1, - "cmd_commit_tree": 1, - "cmd_config": 1, - "cmd_count_objects": 1, - "cmd_describe": 1, - "cmd_diff": 1, - "cmd_diff_files": 1, - "cmd_diff_index": 1, - "cmd_diff_tree": 1, - "cmd_fast_export": 1, - "cmd_fetch": 1, - "cmd_fetch_pack": 1, - "cmd_fmt_merge_msg": 1, - "cmd_for_each_ref": 1, - "cmd_format_patch": 1, - "cmd_fsck": 2, - "cmd_gc": 1, - "cmd_get_tar_commit_id": 1, - "cmd_grep": 1, - "cmd_hash_object": 1, - "cmd_help": 1, - "cmd_index_pack": 1, - "cmd_init_db": 2, - "cmd_log": 1, - "cmd_ls_files": 1, - "cmd_ls_remote": 2, - "cmd_ls_tree": 1, - "cmd_mailinfo": 1, - "cmd_mailsplit": 1, - "cmd_merge": 1, - "cmd_merge_base": 1, - "cmd_merge_file": 1, - "cmd_merge_index": 1, - "cmd_merge_ours": 1, - "cmd_merge_recursive": 4, - "cmd_merge_tree": 1, - "cmd_mktag": 1, - "cmd_mktree": 1, - "cmd_mv": 1, - "cmd_name_rev": 1, - "cmd_notes": 1, - "cmd_pack_objects": 1, - "cmd_pack_redundant": 1, - "cmd_pack_refs": 1, - "cmd_patch_id": 1, - "cmd_prune": 1, - "cmd_prune_packed": 1, - "cmd_push": 1, - "cmd_read_tree": 1, - "cmd_receive_pack": 1, - "cmd_reflog": 1, - "cmd_remote": 1, - "cmd_remote_ext": 1, - "cmd_remote_fd": 1, - "cmd_replace": 1, - "cmd_repo_config": 1, - "cmd_rerere": 1, - "cmd_reset": 1, - "cmd_rev_list": 1, - "cmd_rev_parse": 1, - "cmd_revert": 1, - "cmd_rm": 1, - "cmd_send_pack": 1, - "cmd_shortlog": 1, - "cmd_show": 1, - "cmd_show_branch": 1, - "cmd_show_ref": 1, - "cmd_status": 1, - "cmd_stripspace": 1, - "cmd_symbolic_ref": 1, - "cmd_tag": 1, - "cmd_tar_tree": 1, - "cmd_unpack_file": 1, - "cmd_unpack_objects": 1, - "cmd_update_index": 1, - "cmd_update_ref": 1, - "cmd_update_server_info": 1, - "cmd_upload_archive": 1, - "cmd_upload_archive_writer": 1, - "cmd_var": 1, - "cmd_verify_pack": 1, - "cmd_verify_tag": 1, - "cmd_version": 1, - "cmd_whatchanged": 1, - "cmd_write_tree": 1, - "ext": 4, - "STRIP_EXTENSION": 1, - "*argv0": 1, - "argv0": 2, - "ARRAY_SIZE": 1, - "exit": 20, - "execv_dashed_external": 2, - "STRBUF_INIT": 1, - "*tmp": 1, - "strbuf_addf": 1, - "tmp": 6, - "cmd.buf": 1, - "run_command_v_opt": 1, - "RUN_SILENT_EXEC_FAILURE": 1, - "RUN_CLEAN_ON_EXIT": 1, - "ENOENT": 3, - "strbuf_release": 1, - "run_argv": 2, - "done_alias": 4, - "argcp": 2, - "handle_alias": 1, - "main": 3, - "git_extract_argv0_path": 1, - "git_setup_gettext": 1, - "printf": 4, - "list_common_cmds_help": 1, - "setup_path": 1, - "done_help": 3, - "was_alias": 3, - "fprintf": 18, - "stderr": 15, - "help_unknown_cmd": 1, - "strerror": 4, - "PPC_SHA1": 1, - "git_hash_ctx": 7, - "SHA_CTX": 3, - "*git_hash_new_ctx": 1, - "*ctx": 5, - "ctx": 16, - "SHA1_Init": 4, - "git_hash_free_ctx": 1, - "git_hash_init": 1, - "git_hash_update": 1, - "SHA1_Update": 3, - "git_hash_final": 1, - "*out": 3, - "SHA1_Final": 3, - "git_hash_buf": 1, - "git_hash_vec": 1, - "git_buf_vec": 1, - "*vec": 1, - "vec": 2, - ".data": 1, - ".len": 3, - "HELLO_H": 2, - "hello": 1, - "": 5, - "": 2, - "": 3, - "": 3, - "": 2, - "ULLONG_MAX": 10, - "MIN": 3, - "HTTP_PARSER_DEBUG": 4, - "SET_ERRNO": 47, - "e": 4, - "do": 21, - "parser": 334, - "http_errno": 11, - "error_lineno": 3, - "__LINE__": 50, - "CALLBACK_NOTIFY_": 3, - "FOR": 11, - "ER": 4, - "HTTP_PARSER_ERRNO": 10, - "HPE_OK": 10, - "settings": 6, - "on_##FOR": 4, - "HPE_CB_##FOR": 2, - "CALLBACK_NOTIFY": 10, - "CALLBACK_NOTIFY_NOADVANCE": 2, - "CALLBACK_DATA_": 4, - "LEN": 2, - "FOR##_mark": 7, - "CALLBACK_DATA": 10, - "CALLBACK_DATA_NOADVANCE": 6, - "MARK": 7, - "PROXY_CONNECTION": 4, - "CONNECTION": 4, - "CONTENT_LENGTH": 4, - "TRANSFER_ENCODING": 4, - "UPGRADE": 4, - "CHUNKED": 4, - "KEEP_ALIVE": 4, - "CLOSE": 4, - "*method_strings": 1, - "XX": 63, - "num": 24, - "string": 18, - "#string": 1, - "HTTP_METHOD_MAP": 3, - "#undef": 7, - "tokens": 5, - "int8_t": 3, - "unhex": 3, - "HTTP_PARSER_STRICT": 5, - "uint8_t": 6, - "normal_url_char": 3, - "T": 3, - "s_dead": 10, - "s_start_req_or_res": 4, - "s_res_or_resp_H": 3, - "s_start_res": 5, - "s_res_H": 3, - "s_res_HT": 4, - "s_res_HTT": 3, - "s_res_HTTP": 3, - "s_res_first_http_major": 3, - "s_res_http_major": 3, - "s_res_first_http_minor": 3, - "s_res_http_minor": 3, - "s_res_first_status_code": 3, - "s_res_status_code": 3, - "s_res_status": 3, - "s_res_line_almost_done": 4, - "s_start_req": 6, - "s_req_method": 4, - "s_req_spaces_before_url": 5, - "s_req_schema": 6, - "s_req_schema_slash": 6, - "s_req_schema_slash_slash": 6, - "s_req_host_start": 8, - "s_req_host_v6_start": 7, - "s_req_host_v6": 7, - "s_req_host_v6_end": 7, - "s_req_host": 8, - "s_req_port_start": 7, - "s_req_port": 6, - "s_req_path": 8, - "s_req_query_string_start": 8, - "s_req_query_string": 7, - "s_req_fragment_start": 7, - "s_req_fragment": 7, - "s_req_http_start": 3, - "s_req_http_H": 3, - "s_req_http_HT": 3, - "s_req_http_HTT": 3, - "s_req_http_HTTP": 3, - "s_req_first_http_major": 3, - "s_req_http_major": 3, - "s_req_first_http_minor": 3, - "s_req_http_minor": 3, - "s_req_line_almost_done": 4, - "s_header_field_start": 12, - "s_header_field": 4, - "s_header_value_start": 4, - "s_header_value": 5, - "s_header_value_lws": 3, - "s_header_almost_done": 6, - "s_chunk_size_start": 4, - "s_chunk_size": 3, - "s_chunk_parameters": 3, - "s_chunk_size_almost_done": 4, - "s_headers_almost_done": 4, - "s_headers_done": 4, - "s_chunk_data": 3, - "s_chunk_data_almost_done": 3, - "s_chunk_data_done": 3, - "s_body_identity": 3, - "s_body_identity_eof": 4, - "s_message_done": 3, - "PARSING_HEADER": 2, - "header_states": 1, - "h_general": 23, - "0": 11, - "h_C": 3, - "h_CO": 3, - "h_CON": 3, - "h_matching_connection": 3, - "h_matching_proxy_connection": 3, - "h_matching_content_length": 3, - "h_matching_transfer_encoding": 3, - "h_matching_upgrade": 3, - "h_connection": 6, - "h_content_length": 5, - "h_transfer_encoding": 5, - "h_upgrade": 4, - "h_matching_transfer_encoding_chunked": 3, - "h_matching_connection_keep_alive": 3, - "h_matching_connection_close": 3, - "h_transfer_encoding_chunked": 4, - "h_connection_keep_alive": 4, - "h_connection_close": 4, - "Macros": 1, - "character": 11, - "classes": 1, - "depends": 1, - "on": 4, - "strict": 2, - "define": 14, - "CR": 18, - "r": 58, - "LF": 21, - "LOWER": 7, - "0x20": 1, - "IS_ALPHA": 5, - "z": 47, - "IS_NUM": 14, - "9": 1, - "IS_ALPHANUM": 3, - "IS_HEX": 2, - "TOKEN": 4, - "IS_URL_CHAR": 6, - "IS_HOST_CHAR": 4, - "0x80": 1, - "endif": 6, - "start_state": 1, - "HTTP_REQUEST": 7, - "cond": 1, - "HPE_STRICT": 1, - "HTTP_STRERROR_GEN": 3, - "#n": 1, - "*description": 1, - "http_strerror_tab": 7, - "HTTP_ERRNO_MAP": 3, - "http_message_needs_eof": 4, - "http_parser": 13, - "*parser": 9, - "parse_url_char": 5, - "ch": 145, - "http_parser_execute": 2, - "http_parser_settings": 5, - "*settings": 2, - "unhex_val": 7, - "*header_field_mark": 1, - "*header_value_mark": 1, - "*url_mark": 1, - "*body_mark": 1, - "message_complete": 7, - "HPE_INVALID_EOF_STATE": 1, - "header_field_mark": 2, - "header_value_mark": 2, - "url_mark": 2, - "nread": 7, - "HTTP_MAX_HEADER_SIZE": 2, - "HPE_HEADER_OVERFLOW": 1, - "reexecute_byte": 7, - "HPE_CLOSED_CONNECTION": 1, - "content_length": 27, - "message_begin": 3, - "HTTP_RESPONSE": 3, - "HPE_INVALID_CONSTANT": 3, - "method": 39, - "HTTP_HEAD": 2, - "index": 58, - "STRICT_CHECK": 15, - "HPE_INVALID_VERSION": 12, - "http_major": 11, - "http_minor": 11, - "HPE_INVALID_STATUS": 3, - "status_code": 8, - "HPE_INVALID_METHOD": 4, - "http_method": 4, - "HTTP_CONNECT": 4, - "HTTP_DELETE": 1, - "HTTP_GET": 1, - "HTTP_LOCK": 1, - "HTTP_MKCOL": 2, - "HTTP_NOTIFY": 1, - "HTTP_OPTIONS": 1, - "HTTP_POST": 2, - "HTTP_REPORT": 1, - "HTTP_SUBSCRIBE": 2, - "HTTP_TRACE": 1, - "HTTP_UNLOCK": 2, - "*matcher": 1, - "matcher": 3, - "method_strings": 2, - "HTTP_CHECKOUT": 1, - "HTTP_COPY": 1, - "HTTP_MOVE": 1, - "HTTP_MERGE": 1, - "HTTP_MSEARCH": 1, - "HTTP_MKACTIVITY": 1, - "HTTP_SEARCH": 1, - "HTTP_PROPFIND": 2, - "HTTP_PUT": 2, - "HTTP_PATCH": 1, - "HTTP_PURGE": 1, - "HTTP_UNSUBSCRIBE": 1, - "HTTP_PROPPATCH": 1, - "url": 4, - "HPE_INVALID_URL": 4, - "HPE_LF_EXPECTED": 1, - "HPE_INVALID_HEADER_TOKEN": 2, - "header_field": 5, - "header_state": 42, - "header_value": 6, - "F_UPGRADE": 3, - "HPE_INVALID_CONTENT_LENGTH": 4, - "uint64_t": 8, - "F_CONNECTION_KEEP_ALIVE": 3, - "F_CONNECTION_CLOSE": 3, - "F_CHUNKED": 11, - "F_TRAILING": 3, - "NEW_MESSAGE": 6, - "upgrade": 3, - "on_headers_complete": 3, - "F_SKIPBODY": 4, - "HPE_CB_headers_complete": 1, - "to_read": 6, - "body": 6, - "body_mark": 2, - "HPE_INVALID_CHUNK_SIZE": 2, - "HPE_INVALID_INTERNAL_STATE": 1, - "1": 2, - "HPE_UNKNOWN": 1, - "Does": 1, - "the": 91, - "need": 5, - "to": 37, - "see": 2, - "an": 2, - "EOF": 26, - "find": 1, - "end": 48, - "of": 44, - "message": 3, - "http_should_keep_alive": 2, - "http_method_str": 1, - "m": 8, - "http_parser_init": 2, - "http_parser_type": 3, - "http_errno_name": 1, - "/sizeof": 4, - ".name": 1, - "http_errno_description": 1, - ".description": 1, - "http_parser_parse_url": 2, - "buflen": 3, - "is_connect": 4, - "http_parser_url": 3, - "*u": 2, - "http_parser_url_fields": 2, - "uf": 14, - "old_uf": 4, - "u": 18, - "port": 7, - "field_set": 5, - "UF_MAX": 3, - "UF_SCHEMA": 2, - "UF_HOST": 3, - "UF_PORT": 5, - "UF_PATH": 2, - "UF_QUERY": 2, - "UF_FRAGMENT": 2, - "field_data": 5, - ".off": 2, - "xffff": 1, - "uint16_t": 12, - "http_parser_pause": 2, - "paused": 3, - "HPE_PAUSED": 2, - "http_parser_h": 2, - "__cplusplus": 20, - "HTTP_PARSER_VERSION_MAJOR": 1, - "HTTP_PARSER_VERSION_MINOR": 1, - "": 2, - "_WIN32": 3, - "__MINGW32__": 1, - "_MSC_VER": 5, - "__int8": 2, - "__int16": 2, - "int16_t": 1, - "__int32": 2, - "int32_t": 112, - "__int64": 3, - "int64_t": 2, - "ssize_t": 1, - "": 1, - "*1024": 4, - "DELETE": 2, - "GET": 2, - "HEAD": 2, - "POST": 2, - "PUT": 2, - "CONNECT": 2, - "OPTIONS": 2, - "TRACE": 2, - "COPY": 2, - "LOCK": 2, - "MKCOL": 2, - "MOVE": 2, - "PROPFIND": 2, - "PROPPATCH": 2, - "SEARCH": 3, - "UNLOCK": 2, - "REPORT": 2, - "MKACTIVITY": 2, - "CHECKOUT": 2, - "MERGE": 2, - "MSEARCH": 1, - "M": 1, - "NOTIFY": 2, - "SUBSCRIBE": 2, - "UNSUBSCRIBE": 2, - "PATCH": 2, - "PURGE": 2, - "HTTP_##name": 1, - "HTTP_BOTH": 1, - "OK": 1, - "CB_message_begin": 1, - "CB_url": 1, - "CB_header_field": 1, - "CB_header_value": 1, - "CB_headers_complete": 1, - "CB_body": 1, - "CB_message_complete": 1, - "INVALID_EOF_STATE": 1, - "HEADER_OVERFLOW": 1, - "CLOSED_CONNECTION": 1, - "INVALID_VERSION": 1, - "INVALID_STATUS": 1, - "INVALID_METHOD": 1, - "INVALID_URL": 1, - "INVALID_HOST": 1, - "INVALID_PORT": 1, - "INVALID_PATH": 1, - "INVALID_QUERY_STRING": 1, - "INVALID_FRAGMENT": 1, - "LF_EXPECTED": 1, - "INVALID_HEADER_TOKEN": 1, - "INVALID_CONTENT_LENGTH": 1, - "INVALID_CHUNK_SIZE": 1, - "INVALID_CONSTANT": 1, - "INVALID_INTERNAL_STATE": 1, - "STRICT": 1, - "PAUSED": 1, - "UNKNOWN": 1, - "HTTP_ERRNO_GEN": 3, - "HPE_##n": 1, - "HTTP_PARSER_ERRNO_LINE": 2, - "short": 6, - "http_cb": 3, - "on_message_begin": 1, - "http_data_cb": 4, - "on_url": 1, - "on_header_field": 1, - "on_header_value": 1, - "on_body": 1, - "on_message_complete": 1, - "off": 8, - "*http_method_str": 1, - "*http_errno_name": 1, - "*http_errno_description": 1, - "": 1, - "_Included_jni_JniLayer": 2, - "JNIEXPORT": 6, - "jlong": 6, - "JNICALL": 6, - "Java_jni_JniLayer_jni_1layer_1initialize": 1, - "JNIEnv": 6, - "jobject": 6, - "jintArray": 1, - "jint": 7, - "Java_jni_JniLayer_jni_1layer_1mainloop": 1, - "Java_jni_JniLayer_jni_1layer_1set_1button": 1, - "Java_jni_JniLayer_jni_1layer_1set_1analog": 1, - "jfloat": 1, - "Java_jni_JniLayer_jni_1layer_1report_1analog_1chg": 1, - "Java_jni_JniLayer_jni_1layer_1kill": 1, - "strncasecmp": 2, - "_strnicmp": 1, - "REF_TABLE_SIZE": 1, - "BUFFER_BLOCK": 5, - "BUFFER_SPAN": 9, - "MKD_LI_END": 1, - "gperf_case_strncmp": 1, - "s1": 6, - "s2": 6, - "GPERF_DOWNCASE": 1, - "GPERF_CASE_STRNCMP": 1, - "link_ref": 2, - "*link": 1, - "*title": 1, - "sd_markdown": 6, - "tag": 1, - "tag_len": 3, - "w": 6, - "is_empty": 4, - "htmlblock_end": 3, - "*curtag": 2, - "*rndr": 4, - "start_of_line": 2, - "tag_size": 3, - "curtag": 8, - "end_tag": 4, - "block_lines": 3, - "htmlblock_end_tag": 1, - "rndr": 25, - "parse_htmlblock": 1, - "*ob": 3, - "do_render": 4, - "tag_end": 7, - "work": 4, - "find_block_tag": 1, - "work.size": 5, - "cb.blockhtml": 6, - "ob": 14, - "opaque": 8, - "parse_table_row": 1, - "columns": 3, - "*col_data": 1, - "header_flag": 3, - "col": 9, - "*row_work": 1, - "cb.table_cell": 3, - "cb.table_row": 2, - "row_work": 4, - "rndr_newbuf": 2, - "cell_start": 5, - "cell_end": 6, - "*cell_work": 1, - "cell_work": 3, - "_isspace": 3, - "parse_inline": 1, - "col_data": 2, - "rndr_popbuf": 2, - "empty_cell": 2, - "parse_table_header": 1, - "*columns": 2, - "**column_data": 1, - "pipes": 23, - "header_end": 7, - "under_end": 1, - "*column_data": 1, - "calloc": 1, - "beg": 10, - "doc_size": 6, - "document": 9, - "UTF8_BOM": 1, - "is_ref": 1, - "md": 18, - "refs": 2, - "expand_tabs": 1, - "text": 22, - "bufputc": 2, - "bufgrow": 1, - "MARKDOWN_GROW": 1, - "cb.doc_header": 2, - "parse_block": 1, - "cb.doc_footer": 2, - "bufrelease": 3, - "free_link_refs": 1, - "work_bufs": 8, - ".size": 2, - "sd_markdown_free": 1, - "*md": 1, - ".asize": 2, - ".item": 2, - "stack_free": 2, - "sd_version": 1, - "*ver_major": 2, - "*ver_minor": 2, - "*ver_revision": 2, - "SUNDOWN_VER_MAJOR": 1, - "SUNDOWN_VER_MINOR": 1, - "SUNDOWN_VER_REVISION": 1, - "": 4, - "": 2, - "": 1, - "": 1, - "": 2, - "__APPLE__": 2, - "TARGET_OS_IPHONE": 1, - "**environ": 1, - "uv__chld": 2, - "EV_P_": 1, - "ev_child*": 1, - "watcher": 4, - "revents": 2, - "rstatus": 1, - "exit_status": 3, - "term_signal": 3, - "uv_process_t": 1, - "*process": 1, - "process": 19, - "child_watcher": 5, - "EV_CHILD": 1, - "ev_child_stop": 2, - "EV_A_": 1, - "WIFEXITED": 1, - "WEXITSTATUS": 2, - "WIFSIGNALED": 2, - "WTERMSIG": 2, - "exit_cb": 3, - "uv__make_socketpair": 2, - "fds": 20, - "SOCK_NONBLOCK": 2, - "fl": 8, - "SOCK_CLOEXEC": 1, - "UV__F_NONBLOCK": 5, - "socketpair": 2, - "AF_UNIX": 2, - "SOCK_STREAM": 2, - "uv__cloexec": 4, - "uv__nonblock": 5, - "uv__make_pipe": 2, - "__linux__": 3, - "UV__O_CLOEXEC": 1, - "UV__O_NONBLOCK": 1, - "uv__pipe2": 1, - "ENOSYS": 1, - "pipe": 1, - "uv__process_init_stdio": 2, - "uv_stdio_container_t*": 4, - "container": 17, - "writable": 8, - "UV_IGNORE": 2, - "UV_CREATE_PIPE": 4, - "UV_INHERIT_FD": 3, - "UV_INHERIT_STREAM": 2, - "data.stream": 7, - "UV_NAMED_PIPE": 2, - "data.fd": 1, - "uv__process_stdio_flags": 2, - "uv_pipe_t*": 1, - "ipc": 1, - "UV_STREAM_READABLE": 2, - "UV_STREAM_WRITABLE": 2, - "uv__process_open_stream": 2, - "child_fd": 3, - "close": 13, - "uv__stream_open": 1, - "uv_stream_t*": 2, - "uv__process_close_stream": 2, - "uv__stream_close": 1, - "uv__process_child_init": 2, - "uv_process_options_t": 2, - "options": 62, - "stdio_count": 7, - "int*": 22, - "options.flags": 4, - "UV_PROCESS_DETACHED": 2, - "setsid": 2, - "close_fd": 2, - "use_fd": 7, - "open": 4, - "O_RDONLY": 1, - "O_RDWR": 2, - "perror": 5, - "_exit": 6, - "dup2": 4, - "options.cwd": 2, - "UV_PROCESS_SETGID": 2, - "setgid": 1, - "options.gid": 1, - "UV_PROCESS_SETUID": 2, - "setuid": 1, - "options.uid": 1, - "environ": 4, - "options.env": 1, - "execvp": 1, - "options.file": 2, - "options.args": 1, - "SPAWN_WAIT_EXEC": 5, - "uv_spawn": 1, - "uv_loop_t*": 1, - "loop": 9, - "uv_process_t*": 3, - "char**": 7, - "save_our_env": 3, - "options.stdio_count": 4, - "malloc": 3, - "signal_pipe": 7, - "pollfd": 1, - "pfd": 2, - "pid_t": 2, - "pid": 13, - "UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS": 1, - "uv__handle_init": 1, - "uv_handle_t*": 1, - "UV_PROCESS": 1, - "counters.process_init": 1, - "uv__handle_start": 1, - "options.exit_cb": 1, - "options.stdio": 3, - "fork": 2, - "pfd.fd": 1, - "pfd.events": 1, - "POLLIN": 1, - "POLLHUP": 1, - "pfd.revents": 1, - "poll": 1, - "EINTR": 1, - "ev_child_init": 1, - "ev_child_start": 1, - "ev": 2, - "child_watcher.data": 1, - "uv__set_sys_error": 2, - "uv_process_kill": 1, - "signum": 4, - "kill": 4, - "uv_err_t": 1, - "uv_kill": 1, - "uv__new_sys_error": 1, - "uv_ok_": 1, - "uv__process_close": 1, - "handle": 10, - "uv__handle_stop": 1, - "VALUE": 13, - "rb_cRDiscount": 4, - "rb_rdiscount_to_html": 2, - "self": 9, - "*res": 2, - "szres": 8, - "encoding": 14, - "rb_funcall": 14, - "rb_intern": 15, - "rb_str_buf_new": 2, - "Check_Type": 2, - "T_STRING": 2, - "rb_rdiscount__get_flags": 3, - "MMIOT": 2, - "*doc": 2, - "mkd_string": 2, - "RSTRING_PTR": 2, - "RSTRING_LEN": 2, - "mkd_compile": 2, - "doc": 6, - "mkd_document": 1, - "res": 4, - "rb_str_cat": 4, - "mkd_cleanup": 2, - "rb_respond_to": 1, - "rb_rdiscount_toc_content": 2, - "mkd_toc": 1, - "ruby_obj": 11, - "MKD_TABSTOP": 1, - "MKD_NOHEADER": 1, - "Qtrue": 10, - "MKD_NOPANTS": 1, - "MKD_NOHTML": 1, - "MKD_TOC": 1, - "MKD_NOIMAGE": 1, - "MKD_NOLINKS": 1, - "MKD_NOTABLES": 1, - "MKD_STRICT": 1, - "MKD_AUTOLINK": 1, - "MKD_SAFELINK": 1, - "MKD_NO_EXT": 1, - "Init_rdiscount": 1, - "rb_define_class": 1, - "rb_cObject": 1, - "rb_define_method": 2, - "READLINE_READLINE_CATS": 3, - "": 1, - "atscntrb_readline_rl_library_version": 1, - "char*": 167, - "rl_library_version": 1, - "atscntrb_readline_rl_readline_version": 1, - "rl_readline_version": 1, - "atscntrb_readline_readline": 1, - "readline": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 2, - "": 1, - "": 1, - "": 3, - "": 1, - "sharedObjectsStruct": 1, - "shared": 1, - "double": 126, - "R_Zero": 2, - "R_PosInf": 2, - "R_NegInf": 2, - "R_Nan": 2, - "redisServer": 1, - "server": 1, - "redisCommand": 6, - "*commandTable": 1, - "redisCommandTable": 5, - "getCommand": 1, - "setCommand": 1, - "noPreloadGetKeys": 6, - "setnxCommand": 1, - "setexCommand": 1, - "psetexCommand": 1, - "appendCommand": 1, - "strlenCommand": 1, - "delCommand": 1, - "existsCommand": 1, - "setbitCommand": 1, - "getbitCommand": 1, - "setrangeCommand": 1, - "getrangeCommand": 2, - "incrCommand": 1, - "decrCommand": 1, - "mgetCommand": 1, - "rpushCommand": 1, - "lpushCommand": 1, - "rpushxCommand": 1, - "lpushxCommand": 1, - "linsertCommand": 1, - "rpopCommand": 1, - "lpopCommand": 1, - "brpopCommand": 1, - "brpoplpushCommand": 1, - "blpopCommand": 1, - "llenCommand": 1, - "lindexCommand": 1, - "lsetCommand": 1, - "lrangeCommand": 1, - "ltrimCommand": 1, - "lremCommand": 1, - "rpoplpushCommand": 1, - "saddCommand": 1, - "sremCommand": 1, - "smoveCommand": 1, - "sismemberCommand": 1, - "scardCommand": 1, - "spopCommand": 1, - "srandmemberCommand": 1, - "sinterCommand": 2, - "sinterstoreCommand": 1, - "sunionCommand": 1, - "sunionstoreCommand": 1, - "sdiffCommand": 1, - "sdiffstoreCommand": 1, - "zaddCommand": 1, - "zincrbyCommand": 1, - "zremCommand": 1, - "zremrangebyscoreCommand": 1, - "zremrangebyrankCommand": 1, - "zunionstoreCommand": 1, - "zunionInterGetKeys": 4, - "zinterstoreCommand": 1, - "zrangeCommand": 1, - "zrangebyscoreCommand": 1, - "zrevrangebyscoreCommand": 1, - "zcountCommand": 1, - "zrevrangeCommand": 1, - "zcardCommand": 1, - "zscoreCommand": 1, - "zrankCommand": 1, - "zrevrankCommand": 1, - "hsetCommand": 1, - "hsetnxCommand": 1, - "hgetCommand": 1, - "hmsetCommand": 1, - "hmgetCommand": 1, - "hincrbyCommand": 1, - "hincrbyfloatCommand": 1, - "hdelCommand": 1, - "hlenCommand": 1, - "hkeysCommand": 1, - "hvalsCommand": 1, - "hgetallCommand": 1, - "hexistsCommand": 1, - "incrbyCommand": 1, - "decrbyCommand": 1, - "incrbyfloatCommand": 1, - "getsetCommand": 1, - "msetCommand": 1, - "msetnxCommand": 1, - "randomkeyCommand": 1, - "selectCommand": 1, - "moveCommand": 1, - "renameCommand": 1, - "renameGetKeys": 2, - "renamenxCommand": 1, - "expireCommand": 1, - "expireatCommand": 1, - "pexpireCommand": 1, - "pexpireatCommand": 1, - "keysCommand": 1, - "dbsizeCommand": 1, - "authCommand": 3, - "pingCommand": 2, - "echoCommand": 2, - "saveCommand": 1, - "bgsaveCommand": 1, - "bgrewriteaofCommand": 1, - "shutdownCommand": 2, - "lastsaveCommand": 1, - "typeCommand": 1, - "multiCommand": 2, - "execCommand": 2, - "discardCommand": 2, - "syncCommand": 1, - "flushdbCommand": 1, - "flushallCommand": 1, - "sortCommand": 1, - "infoCommand": 4, - "monitorCommand": 2, - "ttlCommand": 1, - "pttlCommand": 1, - "persistCommand": 1, - "slaveofCommand": 2, - "debugCommand": 1, - "configCommand": 1, - "subscribeCommand": 2, - "unsubscribeCommand": 2, - "psubscribeCommand": 2, - "punsubscribeCommand": 2, - "publishCommand": 1, - "watchCommand": 2, - "unwatchCommand": 1, - "clusterCommand": 1, - "restoreCommand": 1, - "migrateCommand": 1, - "askingCommand": 1, - "dumpCommand": 1, - "objectCommand": 1, - "clientCommand": 1, - "evalCommand": 1, - "evalShaCommand": 1, - "slowlogCommand": 1, - "scriptCommand": 2, - "timeCommand": 2, - "bitopCommand": 1, - "bitcountCommand": 1, - "redisLogRaw": 3, - "level": 12, - "syslogLevelMap": 2, - "LOG_DEBUG": 1, - "LOG_INFO": 1, - "LOG_NOTICE": 1, - "LOG_WARNING": 1, - "FILE": 3, - "*fp": 3, - "rawmode": 2, - "REDIS_LOG_RAW": 2, - "xff": 3, - "server.verbosity": 4, - "fp": 13, - "server.logfile": 8, - "fopen": 3, - "msg": 10, - "timeval": 4, - "tv": 8, - "gettimeofday": 4, - "strftime": 1, - "localtime": 1, - "tv.tv_sec": 4, - "snprintf": 2, - "tv.tv_usec/1000": 1, - "getpid": 7, - "server.syslog_enabled": 3, - "syslog": 1, - "redisLog": 33, - "...": 127, - "va_list": 3, - "ap": 4, - "REDIS_MAX_LOGMSG_LEN": 1, - "va_start": 3, - "vsnprintf": 1, - "va_end": 3, - "redisLogFromHandler": 2, - "server.daemonize": 5, - "O_APPEND": 2, - "O_CREAT": 2, - "O_WRONLY": 2, - "STDOUT_FILENO": 2, - "ll2string": 3, - "write": 7, - "time": 10, - "oom": 3, - "REDIS_WARNING": 19, - "sleep": 1, - "abort": 1, - "ustime": 7, - "ust": 7, - "*1000000": 1, - "tv.tv_usec": 3, - "mstime": 5, - "/1000": 1, - "exitFromChild": 1, - "retcode": 3, - "COVERAGE_TEST": 1, - "dictVanillaFree": 1, - "*privdata": 8, - "DICT_NOTUSED": 6, - "privdata": 8, - "zfree": 2, - "dictListDestructor": 2, - "listRelease": 1, - "list*": 1, - "dictSdsKeyCompare": 6, - "*key1": 4, - "*key2": 4, - "l1": 4, - "l2": 3, - "sdslen": 14, - "sds": 13, - "key1": 5, - "key2": 5, - "dictSdsKeyCaseCompare": 2, - "strcasecmp": 13, - "dictRedisObjectDestructor": 7, - "decrRefCount": 6, - "dictSdsDestructor": 4, - "sdsfree": 2, - "dictObjKeyCompare": 2, - "robj": 7, - "*o1": 2, - "*o2": 2, - "o1": 7, - "ptr": 18, - "o2": 7, - "dictObjHash": 2, - "key": 9, - "dictGenHashFunction": 5, - "dictSdsHash": 4, - "dictSdsCaseHash": 2, - "dictGenCaseHashFunction": 1, - "dictEncObjKeyCompare": 4, - "robj*": 3, - "REDIS_ENCODING_INT": 4, - "getDecodedObject": 3, - "dictEncObjHash": 4, - "REDIS_ENCODING_RAW": 1, - "dictType": 8, - "setDictType": 1, - "zsetDictType": 1, - "dbDictType": 2, - "keyptrDictType": 2, - "commandTableDictType": 2, - "hashDictType": 1, - "keylistDictType": 4, - "clusterNodesDictType": 1, - "htNeedsResize": 3, - "dict": 11, - "*dict": 5, - "used": 10, - "dictSlots": 3, - "dictSize": 10, - "DICT_HT_INITIAL_SIZE": 2, - "used*100/size": 1, - "REDIS_HT_MINFILL": 1, - "tryResizeHashTables": 2, - "server.dbnum": 8, - "server.db": 23, - ".dict": 9, - "dictResize": 2, - ".expires": 8, - "incrementallyRehash": 2, - "dictIsRehashing": 2, - "dictRehashMilliseconds": 2, - "updateDictResizePolicy": 2, - "server.rdb_child_pid": 12, - "server.aof_child_pid": 10, - "dictEnableResize": 1, - "dictDisableResize": 1, - "activeExpireCycle": 2, - "iteration": 6, - "start": 10, - "timelimit": 5, - "*REDIS_EXPIRELOOKUPS_TIME_PERC/REDIS_HZ/100": 1, - "expired": 4, - "redisDb": 3, - "expires": 3, - "slots": 2, - "now": 5, - "num*100/slots": 1, - "REDIS_EXPIRELOOKUPS_PER_CRON": 2, - "dictEntry": 2, - "*de": 2, - "de": 12, - "dictGetRandomKey": 4, - "dictGetSignedIntegerVal": 1, - "dictGetKey": 4, - "*keyobj": 2, - "createStringObject": 11, - "propagateExpire": 2, - "keyobj": 6, - "dbDelete": 2, - "server.stat_expiredkeys": 3, - "xf": 1, - "REDIS_EXPIRELOOKUPS_PER_CRON/4": 1, - "updateLRUClock": 3, - "server.lruclock": 2, - "server.unixtime/REDIS_LRU_CLOCK_RESOLUTION": 1, - "REDIS_LRU_CLOCK_MAX": 1, - "trackOperationsPerSecond": 2, - "server.ops_sec_last_sample_time": 3, - "ops": 1, - "server.stat_numcommands": 4, - "server.ops_sec_last_sample_ops": 3, - "ops_sec": 3, - "ops*1000/t": 1, - "server.ops_sec_samples": 4, - "server.ops_sec_idx": 4, - "%": 2, - "REDIS_OPS_SEC_SAMPLES": 3, - "getOperationsPerSecond": 2, - "sum": 3, - "clientsCronHandleTimeout": 2, - "redisClient": 12, - "time_t": 4, - "server.unixtime": 10, - "server.maxidletime": 3, - "REDIS_SLAVE": 3, - "REDIS_MASTER": 2, - "REDIS_BLOCKED": 2, - "pubsub_channels": 2, - "listLength": 14, - "pubsub_patterns": 2, - "lastinteraction": 3, - "REDIS_VERBOSE": 3, - "freeClient": 1, - "bpop.timeout": 2, - "addReply": 13, - "shared.nullmultibulk": 2, - "unblockClientWaitingData": 1, - "clientsCronResizeQueryBuffer": 2, - "querybuf_size": 3, - "sdsAllocSize": 1, - "querybuf": 6, - "idletime": 2, - "REDIS_MBULK_BIG_ARG": 1, - "querybuf_size/": 1, - "querybuf_peak": 2, - "sdsavail": 1, - "sdsRemoveFreeSpace": 1, - "clientsCron": 2, - "numclients": 3, - "server.clients": 7, - "iterations": 4, - "numclients/": 1, - "REDIS_HZ*10": 1, - "listNode": 4, - "*head": 1, - "listRotate": 1, - "head": 3, - "listFirst": 2, - "listNodeValue": 3, - "run_with_period": 6, - "_ms_": 2, - "loops": 2, - "/REDIS_HZ": 2, - "serverCron": 2, - "aeEventLoop": 2, - "*eventLoop": 2, - "*clientData": 1, - "server.cronloops": 3, - "REDIS_NOTUSED": 5, - "eventLoop": 2, - "clientData": 1, - "server.watchdog_period": 3, - "watchdogScheduleSignal": 1, - "zmalloc_used_memory": 8, - "server.stat_peak_memory": 5, - "server.shutdown_asap": 3, - "prepareForShutdown": 2, - "REDIS_OK": 23, - "vkeys": 8, - "server.activerehashing": 2, - "server.slaves": 9, - "server.aof_rewrite_scheduled": 4, - "rewriteAppendOnlyFileBackground": 2, - "statloc": 5, - "wait3": 1, - "WNOHANG": 1, - "exitcode": 3, - "bysignal": 4, - "backgroundSaveDoneHandler": 1, - "backgroundRewriteDoneHandler": 1, - "server.saveparamslen": 3, - "saveparam": 1, - "*sp": 1, - "server.saveparams": 2, - "server.dirty": 3, - "sp": 4, - "changes": 2, - "server.lastsave": 3, - "seconds": 2, - "REDIS_NOTICE": 13, - "rdbSaveBackground": 1, - "server.rdb_filename": 4, - "server.aof_rewrite_perc": 3, - "server.aof_current_size": 2, - "server.aof_rewrite_min_size": 2, - "base": 1, - "server.aof_rewrite_base_size": 4, - "growth": 3, - "server.aof_current_size*100/base": 1, - "server.aof_flush_postponed_start": 2, - "flushAppendOnlyFile": 2, - "server.masterhost": 7, - "freeClientsInAsyncFreeQueue": 1, - "replicationCron": 1, - "server.cluster_enabled": 6, - "clusterCron": 1, - "beforeSleep": 2, - "*ln": 3, - "server.unblocked_clients": 4, - "ln": 8, - "redisAssert": 1, - "listDelNode": 1, - "REDIS_UNBLOCKED": 1, - "server.current_client": 3, - "processInputBuffer": 1, - "createSharedObjects": 2, - "shared.crlf": 2, - "createObject": 31, - "REDIS_STRING": 31, - "sdsnew": 27, - "shared.ok": 3, - "shared.err": 1, - "shared.emptybulk": 1, - "shared.czero": 1, - "shared.cone": 1, - "shared.cnegone": 1, - "shared.nullbulk": 1, - "shared.emptymultibulk": 1, - "shared.pong": 2, - "shared.queued": 2, - "shared.wrongtypeerr": 1, - "shared.nokeyerr": 1, - "shared.syntaxerr": 2, - "shared.sameobjecterr": 1, - "shared.outofrangeerr": 1, - "shared.noscripterr": 1, - "shared.loadingerr": 2, - "shared.slowscripterr": 2, - "shared.masterdownerr": 2, - "shared.bgsaveerr": 2, - "shared.roslaveerr": 2, - "shared.oomerr": 2, - "shared.space": 1, - "shared.colon": 1, - "shared.plus": 1, - "REDIS_SHARED_SELECT_CMDS": 1, - "shared.select": 1, - "sdscatprintf": 24, - "sdsempty": 8, - "shared.messagebulk": 1, - "shared.pmessagebulk": 1, - "shared.subscribebulk": 1, - "shared.unsubscribebulk": 1, - "shared.psubscribebulk": 1, - "shared.punsubscribebulk": 1, - "shared.del": 1, - "shared.rpop": 1, - "shared.lpop": 1, - "REDIS_SHARED_INTEGERS": 1, - "shared.integers": 2, - "void*": 135, - "REDIS_SHARED_BULKHDR_LEN": 1, - "shared.mbulkhdr": 1, - "shared.bulkhdr": 1, - "initServerConfig": 2, - "getRandomHexChars": 1, - "server.runid": 3, - "REDIS_RUN_ID_SIZE": 2, - "server.arch_bits": 3, - "server.port": 7, - "REDIS_SERVERPORT": 1, - "server.bindaddr": 2, - "server.unixsocket": 7, - "server.unixsocketperm": 2, - "server.ipfd": 9, - "server.sofd": 9, - "REDIS_DEFAULT_DBNUM": 1, - "REDIS_MAXIDLETIME": 1, - "server.client_max_querybuf_len": 1, - "REDIS_MAX_QUERYBUF_LEN": 1, - "server.loading": 4, - "server.syslog_ident": 2, - "zstrdup": 5, - "server.syslog_facility": 2, - "LOG_LOCAL0": 1, - "server.aof_state": 7, - "REDIS_AOF_OFF": 5, - "server.aof_fsync": 1, - "AOF_FSYNC_EVERYSEC": 1, - "server.aof_no_fsync_on_rewrite": 1, - "REDIS_AOF_REWRITE_PERC": 1, - "REDIS_AOF_REWRITE_MIN_SIZE": 1, - "server.aof_last_fsync": 1, - "server.aof_rewrite_time_last": 2, - "server.aof_rewrite_time_start": 2, - "server.aof_delayed_fsync": 2, - "server.aof_fd": 4, - "server.aof_selected_db": 1, - "server.pidfile": 3, - "server.aof_filename": 3, - "server.requirepass": 4, - "server.rdb_compression": 1, - "server.rdb_checksum": 1, - "server.maxclients": 6, - "REDIS_MAX_CLIENTS": 1, - "server.bpop_blocked_clients": 2, - "server.maxmemory": 6, - "server.maxmemory_policy": 11, - "REDIS_MAXMEMORY_VOLATILE_LRU": 3, - "server.maxmemory_samples": 3, - "server.hash_max_ziplist_entries": 1, - "REDIS_HASH_MAX_ZIPLIST_ENTRIES": 1, - "server.hash_max_ziplist_value": 1, - "REDIS_HASH_MAX_ZIPLIST_VALUE": 1, - "server.list_max_ziplist_entries": 1, - "REDIS_LIST_MAX_ZIPLIST_ENTRIES": 1, - "server.list_max_ziplist_value": 1, - "REDIS_LIST_MAX_ZIPLIST_VALUE": 1, - "server.set_max_intset_entries": 1, - "REDIS_SET_MAX_INTSET_ENTRIES": 1, - "server.zset_max_ziplist_entries": 1, - "REDIS_ZSET_MAX_ZIPLIST_ENTRIES": 1, - "server.zset_max_ziplist_value": 1, - "REDIS_ZSET_MAX_ZIPLIST_VALUE": 1, - "server.repl_ping_slave_period": 1, - "REDIS_REPL_PING_SLAVE_PERIOD": 1, - "server.repl_timeout": 1, - "REDIS_REPL_TIMEOUT": 1, - "server.cluster.configfile": 1, - "server.lua_caller": 1, - "server.lua_time_limit": 1, - "REDIS_LUA_TIME_LIMIT": 1, - "server.lua_client": 1, - "server.lua_timedout": 2, - "resetServerSaveParams": 2, - "appendServerSaveParams": 3, - "*60": 1, - "server.masterauth": 1, - "server.masterport": 2, - "server.master": 3, - "server.repl_state": 6, - "REDIS_REPL_NONE": 1, - "server.repl_syncio_timeout": 1, - "REDIS_REPL_SYNCIO_TIMEOUT": 1, - "server.repl_serve_stale_data": 2, - "server.repl_slave_ro": 2, - "server.repl_down_since": 2, - "server.client_obuf_limits": 9, - "REDIS_CLIENT_LIMIT_CLASS_NORMAL": 3, - ".hard_limit_bytes": 3, - ".soft_limit_bytes": 3, - ".soft_limit_seconds": 3, - "REDIS_CLIENT_LIMIT_CLASS_SLAVE": 3, - "*1024*256": 1, - "*1024*64": 1, - "REDIS_CLIENT_LIMIT_CLASS_PUBSUB": 3, - "*1024*32": 1, - "*1024*8": 1, - "/R_Zero": 2, - "R_Zero/R_Zero": 1, - "server.commands": 1, - "dictCreate": 6, - "populateCommandTable": 2, - "server.delCommand": 1, - "lookupCommandByCString": 3, - "server.multiCommand": 1, - "server.lpushCommand": 1, - "server.slowlog_log_slower_than": 1, - "REDIS_SLOWLOG_LOG_SLOWER_THAN": 1, - "server.slowlog_max_len": 1, - "REDIS_SLOWLOG_MAX_LEN": 1, - "server.assert_failed": 1, - "server.assert_file": 1, - "server.assert_line": 1, - "server.bug_report_start": 1, - "adjustOpenFilesLimit": 2, - "rlim_t": 3, - "maxfiles": 6, - "rlimit": 1, - "limit": 3, - "getrlimit": 1, - "RLIMIT_NOFILE": 2, - "oldlimit": 5, - "limit.rlim_cur": 2, - "limit.rlim_max": 1, - "setrlimit": 1, - "initServer": 2, - "signal": 2, - "SIGHUP": 1, - "SIG_IGN": 2, - "SIGPIPE": 1, - "setupSignalHandlers": 2, - "openlog": 1, - "LOG_PID": 1, - "LOG_NDELAY": 1, - "LOG_NOWAIT": 1, - "listCreate": 6, - "server.clients_to_close": 1, - "server.monitors": 2, - "server.el": 7, - "aeCreateEventLoop": 1, - "zmalloc": 2, - "*server.dbnum": 1, - "anetTcpServer": 1, - "server.neterr": 4, - "ANET_ERR": 2, - "unlink": 3, - "anetUnixServer": 1, - ".blocking_keys": 1, - ".watched_keys": 1, - ".id": 1, - "server.pubsub_channels": 2, - "server.pubsub_patterns": 4, - "listSetFreeMethod": 1, - "freePubsubPattern": 1, - "listSetMatchMethod": 1, - "listMatchPubsubPattern": 1, - "aofRewriteBufferReset": 1, - "server.aof_buf": 3, - "server.rdb_save_time_last": 2, - "server.rdb_save_time_start": 2, - "server.stat_numconnections": 2, - "server.stat_evictedkeys": 3, - "server.stat_starttime": 2, - "server.stat_keyspace_misses": 2, - "server.stat_keyspace_hits": 2, - "server.stat_fork_time": 2, - "server.stat_rejected_conn": 2, - "server.lastbgsave_status": 3, - "server.stop_writes_on_bgsave_err": 2, - "aeCreateTimeEvent": 1, - "aeCreateFileEvent": 2, - "AE_READABLE": 2, - "acceptTcpHandler": 1, - "AE_ERR": 2, - "acceptUnixHandler": 1, - "REDIS_AOF_ON": 2, - "LL*": 1, - "REDIS_MAXMEMORY_NO_EVICTION": 2, - "clusterInit": 1, - "scriptingInit": 1, - "slowlogInit": 1, - "bioInit": 1, - "numcommands": 5, - "sflags": 1, - "retval": 3, - "arity": 3, - "addReplyErrorFormat": 1, - "authenticated": 3, - "proc": 14, - "addReplyError": 6, - "getkeys_proc": 1, - "firstkey": 1, - "hashslot": 3, - "server.cluster.state": 1, - "REDIS_CLUSTER_OK": 1, - "ask": 3, - "clusterNode": 1, - "*n": 1, - "getNodeByQuery": 1, - "server.cluster.myself": 1, - "addReplySds": 3, - "ip": 4, - "freeMemoryIfNeeded": 2, - "REDIS_CMD_DENYOOM": 1, - "REDIS_ERR": 5, - "REDIS_CMD_WRITE": 2, - "REDIS_REPL_CONNECTED": 3, - "tolower": 2, - "REDIS_MULTI": 1, - "queueMultiCommand": 1, - "call": 1, - "REDIS_CALL_FULL": 1, - "save": 2, - "REDIS_SHUTDOWN_SAVE": 1, - "nosave": 2, - "REDIS_SHUTDOWN_NOSAVE": 1, - "SIGKILL": 2, - "rdbRemoveTempFile": 1, - "aof_fsync": 1, - "rdbSave": 1, - "addReplyBulk": 1, - "addReplyMultiBulkLen": 1, - "addReplyBulkLongLong": 2, - "bytesToHuman": 3, - "*s": 3, - "sprintf": 10, - "n/": 3, - "LL*1024*1024": 2, - "LL*1024*1024*1024": 1, - "genRedisInfoString": 2, - "*section": 2, - "info": 64, - "uptime": 2, - "rusage": 1, - "self_ru": 2, - "c_ru": 2, - "lol": 3, - "bib": 3, - "allsections": 12, - "defsections": 11, - "sections": 11, - "section": 14, - "getrusage": 2, - "RUSAGE_SELF": 1, - "RUSAGE_CHILDREN": 1, - "getClientsMaxBuffers": 1, - "utsname": 1, - "sdscat": 14, - "uname": 1, - "REDIS_VERSION": 4, - "redisGitSHA1": 3, - "strtol": 2, - "redisGitDirty": 3, - "name.sysname": 1, - "name.release": 1, - "name.machine": 1, - "aeGetApiName": 1, - "__GNUC_MINOR__": 2, - "__GNUC_PATCHLEVEL__": 1, - "uptime/": 1, - "*24": 1, - "hmem": 3, - "peak_hmem": 3, - "zmalloc_get_rss": 1, - "lua_gc": 1, - "server.lua": 1, - "LUA_GCCOUNT": 1, - "*1024LL": 1, - "zmalloc_get_fragmentation_ratio": 1, - "ZMALLOC_LIB": 2, - "aofRewriteBufferSize": 2, - "bioPendingJobsOfType": 1, - "REDIS_BIO_AOF_FSYNC": 1, - "perc": 3, - "eta": 4, - "elapsed": 3, - "off_t": 1, - "remaining_bytes": 1, - "server.loading_total_bytes": 3, - "server.loading_loaded_bytes": 3, - "server.loading_start_time": 2, - "elapsed*remaining_bytes": 1, - "/server.loading_loaded_bytes": 1, - "REDIS_REPL_TRANSFER": 2, - "server.repl_transfer_left": 1, - "server.repl_transfer_lastio": 1, - "slaveid": 3, - "listIter": 2, - "li": 6, - "listRewind": 2, - "listNext": 2, - "*slave": 2, - "*state": 1, - "anetPeerToString": 1, - "slave": 3, - "replstate": 1, - "REDIS_REPL_WAIT_BGSAVE_START": 1, - "REDIS_REPL_WAIT_BGSAVE_END": 1, - "REDIS_REPL_SEND_BULK": 1, - "REDIS_REPL_ONLINE": 1, - "float": 26, - "self_ru.ru_stime.tv_sec": 1, - "self_ru.ru_stime.tv_usec/1000000": 1, - "self_ru.ru_utime.tv_sec": 1, - "self_ru.ru_utime.tv_usec/1000000": 1, - "c_ru.ru_stime.tv_sec": 1, - "c_ru.ru_stime.tv_usec/1000000": 1, - "c_ru.ru_utime.tv_sec": 1, - "c_ru.ru_utime.tv_usec/1000000": 1, - "calls": 4, - "microseconds": 1, - "microseconds/c": 1, - "keys": 4, - "REDIS_MONITOR": 1, - "slaveseldb": 1, - "listAddNodeTail": 1, - "mem_used": 9, - "mem_tofree": 3, - "mem_freed": 4, - "slaves": 3, - "obuf_bytes": 3, - "getClientOutputBufferMemoryUsage": 1, - "k": 15, - "keys_freed": 3, - "bestval": 5, - "bestkey": 9, - "REDIS_MAXMEMORY_ALLKEYS_LRU": 2, - "REDIS_MAXMEMORY_ALLKEYS_RANDOM": 2, - "REDIS_MAXMEMORY_VOLATILE_RANDOM": 1, - "thiskey": 7, - "thisval": 8, - "dictFind": 1, - "dictGetVal": 2, - "estimateObjectIdleTime": 1, - "REDIS_MAXMEMORY_VOLATILE_TTL": 1, - "flushSlavesOutputBuffers": 1, - "linuxOvercommitMemoryValue": 2, - "fgets": 1, - "atoi": 3, - "linuxOvercommitMemoryWarning": 2, - "createPidFile": 2, - "daemonize": 2, - "STDIN_FILENO": 1, - "STDERR_FILENO": 2, - "version": 4, - "usage": 2, - "redisAsciiArt": 2, - "*16": 2, - "ascii_logo": 1, - "sigtermHandler": 2, - "sig": 2, - "sigaction": 6, - "act": 6, - "sigemptyset": 2, - "act.sa_mask": 2, - "act.sa_flags": 2, - "act.sa_handler": 1, - "SIGTERM": 1, - "HAVE_BACKTRACE": 1, - "SA_NODEFER": 1, - "SA_RESETHAND": 1, - "SA_SIGINFO": 1, - "act.sa_sigaction": 1, - "sigsegvHandler": 1, - "SIGSEGV": 1, - "SIGBUS": 1, - "SIGFPE": 1, - "SIGILL": 1, - "memtest": 2, - "megabytes": 1, - "passes": 1, - "zmalloc_enable_thread_safeness": 1, - "srand": 1, - "dictSetHashFunctionSeed": 1, - "*configfile": 1, - "configfile": 2, - "sdscatrepr": 1, - "loadServerConfig": 1, - "loadAppendOnlyFile": 1, - "/1000000": 2, - "rdbLoad": 1, - "aeSetBeforeSleepProc": 1, - "aeMain": 1, - "aeDeleteEventLoop": 1, - "": 1, - "": 2, - "": 2, - "rfUTF8_IsContinuationbyte": 1, - "e.t.c.": 1, - "rfFReadLine_UTF8": 5, - "FILE*": 64, - "utf8": 36, - "uint32_t*": 34, - "byteLength": 197, - "bufferSize": 6, - "eof": 53, - "bytesN": 98, - "bIndex": 5, - "RF_NEWLINE_CRLF": 1, - "newLineFound": 1, - "*bufferSize": 1, - "RF_OPTION_FGETS_READBYTESN": 5, - "RF_MALLOC": 47, - "tempBuff": 6, - "RF_LF": 10, - "buff": 95, - "RF_SUCCESS": 14, - "RE_FILE_EOF": 22, - "found": 20, - "*eofReached": 14, - "LOG_ERROR": 64, - "RF_HEXEQ_UI": 7, - "rfFgetc_UTF32BE": 3, - "else//": 14, - "undo": 5, - "peek": 5, - "ahead": 5, - "file": 6, - "pointer": 5, - "fseek": 19, - "SEEK_CUR": 19, - "rfFgets_UTF32LE": 2, - "eofReached": 4, - "rfFgetc_UTF32LE": 4, - "rfFgets_UTF16BE": 2, - "rfFgetc_UTF16BE": 4, - "rfFgets_UTF16LE": 2, - "rfFgetc_UTF16LE": 4, - "rfFgets_UTF8": 2, - "rfFgetc_UTF8": 3, - "RF_HEXEQ_C": 9, - "fgetc": 9, - "check": 8, - "RE_FILE_READ": 2, - "cp": 12, - "c2": 13, - "c3": 9, - "c4": 5, - "i_READ_CHECK": 20, - "///": 4, - "success": 4, - "cc": 24, - "we": 10, - "more": 2, - "bytes": 225, - "xC0": 3, - "xC1": 1, - "RE_UTF8_INVALID_SEQUENCE_INVALID_BYTE": 6, - "RE_UTF8_INVALID_SEQUENCE_END": 6, - "rfUTF8_IsContinuationByte": 12, - "RE_UTF8_INVALID_SEQUENCE_CONBYTE": 6, - "decoded": 3, - "codepoint": 47, - "F": 38, - "xE0": 2, - "xF": 5, - "decode": 6, - "xF0": 2, - "RF_HEXGE_C": 1, - "xBF": 2, - "//invalid": 1, - "byte": 6, - "are": 6, - "xFF": 1, - "//if": 1, - "needing": 1, - "than": 5, - "swapE": 21, - "v1": 38, - "v2": 26, - "rfUTILS_Endianess": 24, - "RF_LITTLE_ENDIAN": 23, - "fread": 12, - "endianess": 40, - "needed": 10, - "rfUTILS_SwapEndianUS": 10, - "RF_HEXGE_US": 4, - "xD800": 8, - "RF_HEXLE_US": 4, - "xDFFF": 8, - "RF_HEXL_US": 8, - "RF_HEXG_US": 8, - "xDBFF": 4, - "RE_UTF16_INVALID_SEQUENCE": 20, - "RE_UTF16_NO_SURRPAIR": 2, - "xDC00": 4, - "user": 2, - "wants": 2, - "ff": 10, - "uint16_t*": 11, - "surrogate": 4, - "pair": 4, - "existence": 2, - "RF_BIG_ENDIAN": 10, - "rfUTILS_SwapEndianUI": 11, - "rfFback_UTF32BE": 2, - "i_FSEEK_CHECK": 14, - "rfFback_UTF32LE": 2, - "rfFback_UTF16BE": 2, - "rfFback_UTF16LE": 2, - "rfFback_UTF8": 2, - "depending": 1, - "number": 19, - "read": 1, - "backwards": 1, - "RE_UTF8_INVALID_SEQUENCE": 2, - "REFU_IO_H": 2, - "": 2, - "opening": 2, - "bracket": 4, - "calling": 4, - "C": 14, - "xA": 1, - "RF_CR": 1, - "xD": 1, - "REFU_WIN32_VERSION": 1, - "i_PLUSB_WIN32": 2, - "foff_rft": 2, - "off64_t": 1, - "///Fseek": 1, - "and": 15, - "Ftelll": 1, - "definitions": 1, - "rfFseek": 2, - "i_FILE_": 16, - "i_OFFSET_": 4, - "i_WHENCE_": 4, - "_fseeki64": 1, - "rfFtell": 2, - "_ftelli64": 1, - "fseeko64": 1, - "ftello64": 1, - "i_DECLIMEX_": 121, - "rfFReadLine_UTF16BE": 6, - "rfFReadLine_UTF16LE": 4, - "rfFReadLine_UTF32BE": 1, - "rfFReadLine_UTF32LE": 4, - "rfFgets_UTF32BE": 1, - "RF_IAMHERE_FOR_DOXYGEN": 22, - "rfPopen": 2, - "command": 2, - "i_rfPopen": 2, - "i_CMD_": 2, - "i_MODE_": 2, - "i_rfLMS_WRAP2": 5, - "rfPclose": 1, - "stream": 3, - "///closing": 1, - "#endif//include": 1, - "guards": 2, - "": 1, - "": 2, - "local": 5, - "stack": 6, - "memory": 4, - "RF_OPTION_DEFAULT_ARGUMENTS": 24, - "RF_String*": 222, - "rfString_Create": 4, - "i_rfString_Create": 3, - "READ_VSNPRINTF_ARGS": 5, - "rfUTF8_VerifySequence": 7, - "RF_FAILURE": 24, - "RE_STRING_INIT_FAILURE": 8, - "buffAllocated": 11, - "RF_String": 27, - "i_NVrfString_Create": 3, - "i_rfString_CreateLocal1": 3, - "RF_OPTION_SOURCE_ENCODING": 30, - "RF_UTF8": 8, - "characterLength": 16, - "*codepoints": 2, - "rfLMS_MacroEvalPtr": 2, - "RF_LMS": 6, - "RF_UTF16_LE": 9, - "RF_UTF16_BE": 7, - "codepoints": 44, - "i/2": 2, - "#elif": 14, - "RF_UTF32_LE": 3, - "RF_UTF32_BE": 3, - "UTF16": 4, - "rfUTF16_Decode": 5, - "rfUTF16_Decode_swap": 5, - "RF_UTF16_BE//": 2, - "RF_UTF32_LE//": 2, - "copy": 4, - "UTF32": 4, - "into": 8, - "RF_UTF32_BE//": 2, - "": 2, - "any": 3, - "other": 16, - "UTF": 17, - "8": 15, - "encode": 2, - "them": 3, - "rfUTF8_Encode": 4, - "While": 2, - "attempting": 2, - "create": 2, - "temporary": 4, - "given": 5, - "sequence": 6, - "could": 2, - "not": 6, - "be": 6, - "properly": 2, - "encoded": 2, - "RE_UTF8_ENCODING": 2, - "End": 2, - "Non": 2, - "code=": 2, - "normally": 1, - "since": 5, - "here": 5, - "have": 2, - "validity": 2, - "get": 4, - "Error": 2, - "at": 3, - "String": 11, - "Allocation": 2, - "due": 2, - "invalid": 2, - "rfLMS_Push": 4, - "Memory": 4, - "allocation": 3, - "Local": 2, - "Stack": 2, - "failed": 2, - "Insufficient": 2, - "space": 4, - "Consider": 2, - "compiling": 2, - "library": 3, - "with": 9, - "bigger": 3, - "Quitting": 2, - "proccess": 2, - "RE_LOCALMEMSTACK_INSUFFICIENT": 8, - "i_NVrfString_CreateLocal": 3, - "during": 1, - "rfString_Init": 3, - "i_rfString_Init": 3, - "i_NVrfString_Init": 3, - "rfString_Create_cp": 2, - "rfString_Init_cp": 3, - "RF_HEXLE_UI": 8, - "RF_HEXGE_UI": 6, - "C0": 3, - "ffff": 4, - "xFC0": 4, - "xF000": 2, - "xE": 2, - "F000": 2, - "C0000": 2, - "E": 11, - "RE_UTF8_INVALID_CODE_POINT": 2, - "rfString_Create_i": 2, - "numLen": 8, - "max": 4, - "is": 17, - "most": 3, - "environment": 3, - "so": 4, - "chars": 3, - "will": 3, - "certainly": 3, - "fit": 3, - "it": 12, - "strcpy": 4, - "rfString_Init_i": 2, - "rfString_Create_f": 2, - "rfString_Init_f": 2, - "rfString_Create_UTF16": 2, - "rfString_Init_UTF16": 3, - "utf8ByteLength": 34, - "last": 1, - "utf": 1, - "null": 4, - "termination": 3, - "byteLength*2": 1, - "allocate": 1, - "same": 1, - "as": 4, - "different": 1, - "RE_INPUT": 1, - "ends": 3, - "rfString_Create_UTF32": 2, - "rfString_Init_UTF32": 3, - "codeBuffer": 9, - "xFEFF": 1, - "big": 14, - "endian": 20, - "xFFFE0000": 1, - "little": 7, - "according": 1, - "standard": 1, - "no": 4, - "BOM": 1, - "means": 1, - "rfUTF32_Length": 1, - "i_rfString_Assign": 3, - "dest": 7, - "sourceP": 2, - "source": 8, - "RF_REALLOC": 9, - "rfString_Assign_char": 2, - "<5)>": 1, - "rfString_Create_nc": 3, - "i_rfString_Create_nc": 3, - "bytesWritten": 2, - "i_NVrfString_Create_nc": 3, - "rfString_Init_nc": 4, - "i_rfString_Init_nc": 3, - "i_NVrfString_Init_nc": 3, - "rfString_Destroy": 2, - "rfString_Deinit": 3, - "rfString_ToUTF16": 4, - "charsN": 5, - "rfUTF8_Decode": 2, - "rfUTF16_Encode": 1, - "rfString_ToUTF32": 4, - "rfString_Length": 5, - "RF_STRING_ITERATE_START": 9, - "RF_STRING_ITERATE_END": 9, - "rfString_GetChar": 2, - "thisstr": 210, - "codePoint": 18, - "RF_STRING_INDEX_OUT_OF_BOUNDS": 2, - "rfString_BytePosToCodePoint": 7, - "rfString_BytePosToCharPos": 4, - "thisstrP": 32, - "bytepos": 12, - "before": 4, - "charPos": 8, - "byteI": 7, - "i_rfString_Equal": 3, - "s1P": 2, - "s2P": 2, - "i_rfString_Find": 5, - "sstrP": 6, - "optionsP": 11, - "sstr": 39, - "*optionsP": 8, - "RF_BITFLAG_ON": 5, - "RF_CASE_IGNORE": 2, - "strstr": 2, - "RF_MATCH_WORD": 5, - "exact": 6, - "": 1, - "0x5a": 1, - "0x7a": 1, - "substring": 5, - "search": 1, - "zero": 2, - "equals": 1, - "then": 1, - "okay": 1, - "rfString_Equal": 4, - "RFS_": 8, - "ERANGE": 1, - "RE_STRING_TOFLOAT_UNDERFLOW": 1, - "RE_STRING_TOFLOAT": 1, - "rfString_Copy_OUT": 2, - "srcP": 6, - "rfString_Copy_IN": 2, - "dst": 15, - "rfString_Copy_chars": 2, - "bytePos": 23, - "terminate": 1, - "i_rfString_ScanfAfter": 3, - "afterstrP": 2, - "format": 4, - "afterstr": 5, - "sscanf": 1, - "<=0)>": 1, - "Counts": 1, - "how": 1, - "many": 1, - "times": 1, - "occurs": 1, - "inside": 2, - "i_rfString_Count": 5, - "sstr2": 2, - "move": 12, - "rfString_FindBytePos": 10, - "rfString_Tokenize": 2, - "sep": 3, - "tokensN": 2, - "RF_String**": 2, - "*tokensN": 1, - "rfString_Count": 4, - "lstr": 6, - "lstrP": 1, - "rstr": 24, - "rstrP": 5, - "rfString_After": 4, - "rfString_Beforev": 4, - "parNP": 6, - "i_rfString_Beforev": 16, - "parN": 10, - "*parNP": 2, - "minPos": 17, - "thisPos": 8, - "argList": 8, - "va_arg": 2, - "i_rfString_Before": 5, - "i_rfString_After": 5, - "afterP": 2, - "after": 6, - "rfString_Afterv": 4, - "i_rfString_Afterv": 16, - "minPosLength": 3, - "go": 8, - "i_rfString_Append": 3, - "otherP": 4, - "strncat": 1, - "rfString_Append_i": 2, - "rfString_Append_f": 2, - "i_rfString_Prepend": 3, - "goes": 1, - "i_rfString_Remove": 6, - "numberP": 1, - "*numberP": 1, - "occurences": 5, - "done": 1, - "<=thisstr->": 1, - "i_rfString_KeepOnly": 3, - "keepstrP": 2, - "keepLength": 2, - "charValue": 12, - "*keepChars": 1, - "keepstr": 5, - "exists": 6, - "charBLength": 5, - "keepChars": 4, - "*keepLength": 1, - "rfString_Iterate_Start": 6, - "rfString_Iterate_End": 4, - "": 1, - "does": 1, - "exist": 2, - "back": 1, - "cover": 1, - "that": 9, - "effectively": 1, - "gets": 1, - "deleted": 1, - "rfUTF8_FromCodepoint": 1, - "this": 5, - "kind": 1, - "non": 1, - "clean": 1, - "way": 1, - "macro": 2, - "internally": 1, - "uses": 1, - "byteIndex_": 12, - "variable": 1, - "use": 1, - "determine": 1, - "backs": 1, - "by": 1, - "contiuing": 1, - "make": 3, - "sure": 2, - "position": 1, - "won": 1, - "array": 1, - "rfString_PruneStart": 2, - "nBytePos": 23, - "rfString_PruneEnd": 2, - "RF_STRING_ITERATEB_START": 2, - "RF_STRING_ITERATEB_END": 2, - "rfString_PruneMiddleB": 2, - "pBytePos": 15, - "indexing": 1, - "works": 1, - "pbytePos": 2, - "pth": 2, - "include": 6, - "rfString_PruneMiddleF": 2, - "got": 1, - "all": 2, - "i_rfString_Replace": 6, - "numP": 1, - "*numP": 1, - "RF_StringX": 2, - "just": 1, - "finding": 1, - "foundN": 10, - "bSize": 4, - "bytePositions": 17, - "bSize*sizeof": 1, - "rfStringX_FromString_IN": 1, - "temp.bIndex": 2, - "temp.bytes": 1, - "temp.byteLength": 1, - "rfStringX_Deinit": 1, - "replace": 3, - "removed": 2, - "one": 2, - "orSize": 5, - "nSize": 4, - "number*diff": 1, - "strncpy": 3, - "smaller": 1, - "diff*number": 1, - "remove": 1, - "equal": 1, - "i_rfString_StripStart": 3, - "subP": 7, - "RF_String*sub": 2, - "noMatch": 8, - "*subValues": 2, - "subLength": 6, - "subValues": 8, - "*subLength": 2, - "i_rfString_StripEnd": 3, - "lastBytePos": 4, - "testity": 2, - "i_rfString_Strip": 3, - "res1": 2, - "rfString_StripStart": 3, - "res2": 2, - "rfString_StripEnd": 3, - "rfString_Create_fUTF8": 2, - "rfString_Init_fUTF8": 3, - "unused": 3, - "rfString_Assign_fUTF8": 2, - "FILE*f": 2, - "utf8BufferSize": 4, - "function": 6, - "rfString_Append_fUTF8": 2, - "rfString_Append": 5, - "rfString_Create_fUTF16": 2, - "rfString_Init_fUTF16": 3, - "rfString_Assign_fUTF16": 2, - "rfString_Append_fUTF16": 2, - "char*utf8": 3, - "rfString_Create_fUTF32": 2, - "rfString_Init_fUTF32": 3, - "<0)>": 1, - "Failure": 1, - "initialize": 1, - "reading": 1, - "Little": 1, - "Endian": 1, - "32": 1, - "bytesN=": 1, - "rfString_Assign_fUTF32": 2, - "rfString_Append_fUTF32": 2, - "i_rfString_Fwrite": 5, - "sP": 2, - "encodingP": 1, - "*utf32": 1, - "utf16": 11, - "*encodingP": 1, - "fwrite": 5, - "logging": 5, - "utf32": 10, - "i_WRITE_CHECK": 1, - "RE_FILE_WRITE": 1, - "REFU_USTRING_H": 2, - "": 1, - "RF_MODULE_STRINGS//": 1, - "included": 2, - "module": 3, - "": 1, - "argument": 1, - "wrapping": 1, - "functionality": 1, - "": 1, - "unicode": 2, - "xFF0FFFF": 1, - "rfUTF8_IsContinuationByte2": 1, - "b__": 3, - "0xBF": 1, - "pragma": 1, - "pack": 2, - "push": 1, - "internal": 4, - "author": 1, - "Lefteris": 1, - "09": 1, - "12": 1, - "2010": 1, - "endinternal": 1, - "brief": 1, - "A": 11, - "representation": 2, - "The": 1, - "Refu": 2, - "Unicode": 1, - "has": 2, - "two": 1, - "versions": 1, - "One": 1, - "ref": 1, - "what": 1, - "operations": 1, - "can": 2, - "performed": 1, - "extended": 3, - "Strings": 2, - "Functions": 1, - "convert": 1, - "but": 1, - "always": 2, - "Once": 1, - "been": 1, - "created": 1, - "assumed": 1, - "valid": 1, - "every": 1, - "performs": 1, - "unless": 1, - "otherwise": 1, - "specified": 1, - "All": 1, - "functions": 2, - "which": 1, - "isinherited": 1, - "StringX": 2, - "their": 1, - "description": 1, - "safely": 1, - "specific": 1, - "or": 1, - "needs": 1, - "manipulate": 1, - "Extended": 1, - "To": 1, - "documentation": 1, - "even": 1, - "clearer": 1, - "should": 2, - "marked": 1, - "notinherited": 1, - "cppcode": 1, - "constructor": 1, - "i_StringCHandle": 1, - "@endcpp": 1, - "@endinternal": 1, - "*/": 1, - "#pragma": 1, - "pop": 1, - "i_rfString_CreateLocal": 2, - "__VA_ARGS__": 66, - "RP_SELECT_FUNC_IF_NARGIS": 5, - "i_SELECT_RF_STRING_CREATE": 1, - "i_SELECT_RF_STRING_CREATE1": 1, - "i_SELECT_RF_STRING_CREATE0": 1, - "///Internal": 1, - "creates": 1, - "i_SELECT_RF_STRING_CREATELOCAL": 1, - "i_SELECT_RF_STRING_CREATELOCAL1": 1, - "i_SELECT_RF_STRING_CREATELOCAL0": 1, - "i_SELECT_RF_STRING_INIT": 1, - "i_SELECT_RF_STRING_INIT1": 1, - "i_SELECT_RF_STRING_INIT0": 1, - "code": 6, - "i_SELECT_RF_STRING_CREATE_NC": 1, - "i_SELECT_RF_STRING_CREATE_NC1": 1, - "i_SELECT_RF_STRING_CREATE_NC0": 1, - "i_SELECT_RF_STRING_INIT_NC": 1, - "i_SELECT_RF_STRING_INIT_NC1": 1, - "i_SELECT_RF_STRING_INIT_NC0": 1, - "//@": 1, - "rfString_Assign": 2, - "i_DESTINATION_": 2, - "i_SOURCE_": 2, - "rfString_ToUTF8": 2, - "i_STRING_": 2, - "rfString_ToCstr": 2, - "uint32_t*length": 1, - "string_": 9, - "startCharacterPos_": 4, - "characterUnicodeValue_": 4, - "j_": 6, - "//Two": 1, - "macros": 1, - "accomplish": 1, - "going": 1, - "backwards.": 1, - "This": 1, - "its": 1, - "pair.": 1, - "rfString_IterateB_Start": 1, - "characterPos_": 5, - "b_index_": 6, - "c_index_": 3, - "rfString_IterateB_End": 1, - "i_STRING1_": 2, - "i_STRING2_": 2, - "i_rfLMSX_WRAP2": 4, - "rfString_Find": 3, - "i_THISSTR_": 60, - "i_SEARCHSTR_": 26, - "i_OPTIONS_": 28, - "i_rfLMS_WRAP3": 4, - "i_RFI8_": 54, - "RF_SELECT_FUNC_IF_NARGGT": 10, - "i_NPSELECT_RF_STRING_FIND": 1, - "i_NPSELECT_RF_STRING_FIND1": 1, - "RF_COMPILE_ERROR": 33, - "i_NPSELECT_RF_STRING_FIND0": 1, - "RF_SELECT_FUNC": 10, - "i_SELECT_RF_STRING_FIND": 1, - "i_SELECT_RF_STRING_FIND2": 1, - "i_SELECT_RF_STRING_FIND3": 1, - "i_SELECT_RF_STRING_FIND1": 1, - "i_SELECT_RF_STRING_FIND0": 1, - "rfString_ToInt": 1, - "int32_t*": 1, - "rfString_ToDouble": 1, - "double*": 1, - "rfString_ScanfAfter": 2, - "i_AFTERSTR_": 8, - "i_FORMAT_": 2, - "i_VAR_": 2, - "i_rfLMSX_WRAP4": 11, - "i_NPSELECT_RF_STRING_COUNT": 1, - "i_NPSELECT_RF_STRING_COUNT1": 1, - "i_NPSELECT_RF_STRING_COUNT0": 1, - "i_SELECT_RF_STRING_COUNT": 1, - "i_SELECT_RF_STRING_COUNT2": 1, - "i_rfLMSX_WRAP3": 5, - "i_SELECT_RF_STRING_COUNT3": 1, - "i_SELECT_RF_STRING_COUNT1": 1, - "i_SELECT_RF_STRING_COUNT0": 1, - "rfString_Between": 3, - "i_rfString_Between": 4, - "i_NPSELECT_RF_STRING_BETWEEN": 1, - "i_NPSELECT_RF_STRING_BETWEEN1": 1, - "i_NPSELECT_RF_STRING_BETWEEN0": 1, - "i_SELECT_RF_STRING_BETWEEN": 1, - "i_SELECT_RF_STRING_BETWEEN4": 1, - "i_LEFTSTR_": 6, - "i_RIGHTSTR_": 6, - "i_RESULT_": 12, - "i_rfLMSX_WRAP5": 9, - "i_SELECT_RF_STRING_BETWEEN5": 1, - "i_SELECT_RF_STRING_BETWEEN3": 1, - "i_SELECT_RF_STRING_BETWEEN2": 1, - "i_SELECT_RF_STRING_BETWEEN1": 1, - "i_SELECT_RF_STRING_BETWEEN0": 1, - "i_NPSELECT_RF_STRING_BEFOREV": 1, - "i_NPSELECT_RF_STRING_BEFOREV1": 1, - "RF_SELECT_FUNC_IF_NARGGT2": 2, - "i_LIMSELECT_RF_STRING_BEFOREV": 1, - "i_NPSELECT_RF_STRING_BEFOREV0": 1, - "i_LIMSELECT_RF_STRING_BEFOREV1": 1, - "i_LIMSELECT_RF_STRING_BEFOREV0": 1, - "i_SELECT_RF_STRING_BEFOREV": 1, - "i_SELECT_RF_STRING_BEFOREV5": 1, - "i_ARG1_": 56, - "i_ARG2_": 56, - "i_ARG3_": 56, - "i_ARG4_": 56, - "i_RFUI8_": 28, - "i_SELECT_RF_STRING_BEFOREV6": 1, - "i_rfLMSX_WRAP6": 2, - "i_SELECT_RF_STRING_BEFOREV7": 1, - "i_rfLMSX_WRAP7": 2, - "i_SELECT_RF_STRING_BEFOREV8": 1, - "i_rfLMSX_WRAP8": 2, - "i_SELECT_RF_STRING_BEFOREV9": 1, - "i_rfLMSX_WRAP9": 2, - "i_SELECT_RF_STRING_BEFOREV10": 1, - "i_rfLMSX_WRAP10": 2, - "i_SELECT_RF_STRING_BEFOREV11": 1, - "i_rfLMSX_WRAP11": 2, - "i_SELECT_RF_STRING_BEFOREV12": 1, - "i_rfLMSX_WRAP12": 2, - "i_SELECT_RF_STRING_BEFOREV13": 1, - "i_rfLMSX_WRAP13": 2, - "i_SELECT_RF_STRING_BEFOREV14": 1, - "i_rfLMSX_WRAP14": 2, - "i_SELECT_RF_STRING_BEFOREV15": 1, - "i_rfLMSX_WRAP15": 2, - "i_SELECT_RF_STRING_BEFOREV16": 1, - "i_rfLMSX_WRAP16": 2, - "i_SELECT_RF_STRING_BEFOREV17": 1, - "i_rfLMSX_WRAP17": 2, - "i_SELECT_RF_STRING_BEFOREV18": 1, - "i_rfLMSX_WRAP18": 2, - "rfString_Before": 3, - "i_NPSELECT_RF_STRING_BEFORE": 1, - "i_NPSELECT_RF_STRING_BEFORE1": 1, - "i_NPSELECT_RF_STRING_BEFORE0": 1, - "i_SELECT_RF_STRING_BEFORE": 1, - "i_SELECT_RF_STRING_BEFORE3": 1, - "i_SELECT_RF_STRING_BEFORE4": 1, - "i_SELECT_RF_STRING_BEFORE2": 1, - "i_SELECT_RF_STRING_BEFORE1": 1, - "i_SELECT_RF_STRING_BEFORE0": 1, - "i_NPSELECT_RF_STRING_AFTER": 1, - "i_NPSELECT_RF_STRING_AFTER1": 1, - "i_NPSELECT_RF_STRING_AFTER0": 1, - "i_SELECT_RF_STRING_AFTER": 1, - "i_SELECT_RF_STRING_AFTER3": 1, - "i_OUTSTR_": 6, - "i_SELECT_RF_STRING_AFTER4": 1, - "i_SELECT_RF_STRING_AFTER2": 1, - "i_SELECT_RF_STRING_AFTER1": 1, - "i_SELECT_RF_STRING_AFTER0": 1, - "i_NPSELECT_RF_STRING_AFTERV": 1, - "i_NPSELECT_RF_STRING_AFTERV1": 1, - "i_LIMSELECT_RF_STRING_AFTERV": 1, - "i_NPSELECT_RF_STRING_AFTERV0": 1, - "i_LIMSELECT_RF_STRING_AFTERV1": 1, - "i_LIMSELECT_RF_STRING_AFTERV0": 1, - "i_SELECT_RF_STRING_AFTERV": 1, - "i_SELECT_RF_STRING_AFTERV5": 1, - "i_SELECT_RF_STRING_AFTERV6": 1, - "i_SELECT_RF_STRING_AFTERV7": 1, - "i_SELECT_RF_STRING_AFTERV8": 1, - "i_SELECT_RF_STRING_AFTERV9": 1, - "i_SELECT_RF_STRING_AFTERV10": 1, - "i_SELECT_RF_STRING_AFTERV11": 1, - "i_SELECT_RF_STRING_AFTERV12": 1, - "i_SELECT_RF_STRING_AFTERV13": 1, - "i_SELECT_RF_STRING_AFTERV14": 1, - "i_SELECT_RF_STRING_AFTERV15": 1, - "i_SELECT_RF_STRING_AFTERV16": 1, - "i_SELECT_RF_STRING_AFTERV17": 1, - "i_SELECT_RF_STRING_AFTERV18": 1, - "i_OTHERSTR_": 4, - "rfString_Prepend": 2, - "rfString_Remove": 3, - "i_NPSELECT_RF_STRING_REMOVE": 1, - "i_NPSELECT_RF_STRING_REMOVE1": 1, - "i_NPSELECT_RF_STRING_REMOVE0": 1, - "i_SELECT_RF_STRING_REMOVE": 1, - "i_SELECT_RF_STRING_REMOVE2": 1, - "i_REPSTR_": 16, - "i_RFUI32_": 8, - "i_SELECT_RF_STRING_REMOVE3": 1, - "i_NUMBER_": 12, - "i_SELECT_RF_STRING_REMOVE4": 1, - "i_SELECT_RF_STRING_REMOVE1": 1, - "i_SELECT_RF_STRING_REMOVE0": 1, - "rfString_KeepOnly": 2, - "I_KEEPSTR_": 2, - "rfString_Replace": 3, - "i_NPSELECT_RF_STRING_REPLACE": 1, - "i_NPSELECT_RF_STRING_REPLACE1": 1, - "i_NPSELECT_RF_STRING_REPLACE0": 1, - "i_SELECT_RF_STRING_REPLACE": 1, - "i_SELECT_RF_STRING_REPLACE3": 1, - "i_SELECT_RF_STRING_REPLACE4": 1, - "i_SELECT_RF_STRING_REPLACE5": 1, - "i_SELECT_RF_STRING_REPLACE2": 1, - "i_SELECT_RF_STRING_REPLACE1": 1, - "i_SELECT_RF_STRING_REPLACE0": 1, - "i_SUBSTR_": 6, - "rfString_Strip": 2, - "rfString_Fwrite": 2, - "i_NPSELECT_RF_STRING_FWRITE": 1, - "i_NPSELECT_RF_STRING_FWRITE1": 1, - "i_NPSELECT_RF_STRING_FWRITE0": 1, - "i_SELECT_RF_STRING_FWRITE": 1, - "i_SELECT_RF_STRING_FWRITE3": 1, - "i_STR_": 8, - "i_ENCODING_": 4, - "i_SELECT_RF_STRING_FWRITE2": 1, - "i_SELECT_RF_STRING_FWRITE1": 1, - "i_SELECT_RF_STRING_FWRITE0": 1, - "rfString_Fwrite_fUTF8": 1, - "closing": 1, - "#error": 4, - "Attempted": 1, - "manipulation": 1, - "flag": 1, - "off.": 1, - "Rebuild": 1, - "added": 1, - "you": 1, - "#endif//": 1, - "PY_SSIZE_T_CLEAN": 1, - "Py_PYTHON_H": 1, - "Python": 2, - "headers": 1, - "compile": 1, - "extensions": 1, - "please": 1, - "install": 1, - "development": 1, - "Python.": 1, - "PY_VERSION_HEX": 11, - "Cython": 1, - "requires": 1, - ".": 1, - "offsetof": 2, - "member": 2, - "type*": 1, - "WIN32": 2, - "MS_WINDOWS": 2, - "__stdcall": 2, - "__cdecl": 2, - "__fastcall": 2, - "DL_IMPORT": 2, - "DL_EXPORT": 2, - "PY_LONG_LONG": 5, - "LONG_LONG": 1, - "Py_HUGE_VAL": 2, - "HUGE_VAL": 1, - "PYPY_VERSION": 1, - "CYTHON_COMPILING_IN_PYPY": 3, - "CYTHON_COMPILING_IN_CPYTHON": 6, - "Py_ssize_t": 35, - "PY_SSIZE_T_MAX": 1, - "INT_MAX": 1, - "PY_SSIZE_T_MIN": 1, - "INT_MIN": 1, - "PY_FORMAT_SIZE_T": 1, - "CYTHON_FORMAT_SSIZE_T": 2, - "PyInt_FromSsize_t": 6, - "PyInt_FromLong": 3, - "PyInt_AsSsize_t": 3, - "__Pyx_PyInt_AsInt": 2, - "PyNumber_Index": 1, - "PyNumber_Check": 2, - "PyFloat_Check": 2, - "PyNumber_Int": 1, - "PyErr_Format": 4, - "PyExc_TypeError": 4, - "Py_TYPE": 7, - "tp_name": 4, - "PyObject*": 24, - "__Pyx_PyIndex_Check": 3, - "PyComplex_Check": 1, - "PyIndex_Check": 2, - "PyErr_WarnEx": 1, - "category": 2, - "stacklevel": 1, - "PyErr_Warn": 1, - "__PYX_BUILD_PY_SSIZE_T": 2, - "Py_REFCNT": 1, - "ob_refcnt": 1, - "ob_type": 7, - "Py_SIZE": 1, - "PyVarObject*": 1, - "ob_size": 1, - "PyVarObject_HEAD_INIT": 1, - "PyObject_HEAD_INIT": 1, - "PyType_Modified": 1, - "PyObject": 276, - "itemsize": 1, - "readonly": 1, - "ndim": 2, - "*shape": 1, - "*strides": 1, - "*suboffsets": 1, - "*internal": 1, - "Py_buffer": 6, - "PyBUF_SIMPLE": 1, - "PyBUF_WRITABLE": 3, - "PyBUF_FORMAT": 3, - "PyBUF_ND": 2, - "PyBUF_STRIDES": 6, - "PyBUF_C_CONTIGUOUS": 1, - "PyBUF_F_CONTIGUOUS": 1, - "PyBUF_ANY_CONTIGUOUS": 1, - "PyBUF_INDIRECT": 2, - "PyBUF_RECORDS": 1, - "PyBUF_FULL": 1, - "PY_MAJOR_VERSION": 13, - "__Pyx_BUILTIN_MODULE_NAME": 2, - "__Pyx_PyCode_New": 2, - "l": 7, - "fv": 4, - "cell": 4, - "fline": 4, - "lnos": 4, - "PyCode_New": 2, - "PY_MINOR_VERSION": 1, - "PyUnicode_FromString": 2, - "PyUnicode_Decode": 1, - "Py_TPFLAGS_CHECKTYPES": 1, - "Py_TPFLAGS_HAVE_INDEX": 1, - "Py_TPFLAGS_HAVE_NEWBUFFER": 1, - "PyUnicode_KIND": 1, - "CYTHON_PEP393_ENABLED": 2, - "__Pyx_PyUnicode_READY": 2, - "op": 8, - "PyUnicode_IS_READY": 1, - "_PyUnicode_Ready": 1, - "__Pyx_PyUnicode_GET_LENGTH": 2, - "PyUnicode_GET_LENGTH": 1, - "__Pyx_PyUnicode_READ_CHAR": 2, - "PyUnicode_READ_CHAR": 1, - "__Pyx_PyUnicode_READ": 2, - "PyUnicode_READ": 1, - "PyUnicode_GET_SIZE": 1, - "Py_UCS4": 2, - "PyUnicode_AS_UNICODE": 1, - "Py_UNICODE*": 1, - "PyBaseString_Type": 1, - "PyUnicode_Type": 2, - "PyStringObject": 2, - "PyUnicodeObject": 1, - "PyString_Type": 2, - "PyString_Check": 2, - "PyUnicode_Check": 1, - "PyString_CheckExact": 2, - "PyUnicode_CheckExact": 1, - "PyBytesObject": 1, - "PyBytes_Type": 1, - "PyBytes_Check": 1, - "PyBytes_CheckExact": 1, - "PyBytes_FromString": 2, - "PyString_FromString": 2, - "PyBytes_FromStringAndSize": 1, - "PyString_FromStringAndSize": 1, - "PyBytes_FromFormat": 1, - "PyString_FromFormat": 1, - "PyBytes_DecodeEscape": 1, - "PyString_DecodeEscape": 1, - "PyBytes_AsString": 2, - "PyString_AsString": 1, - "PyBytes_AsStringAndSize": 1, - "PyString_AsStringAndSize": 1, - "PyBytes_Size": 1, - "PyString_Size": 1, - "PyBytes_AS_STRING": 1, - "PyString_AS_STRING": 1, - "PyBytes_GET_SIZE": 1, - "PyString_GET_SIZE": 1, - "PyBytes_Repr": 1, - "PyString_Repr": 1, - "PyBytes_Concat": 1, - "PyString_Concat": 1, - "PyBytes_ConcatAndDel": 1, - "PyString_ConcatAndDel": 1, - "PySet_Check": 1, - "PyObject_TypeCheck": 3, - "PySet_Type": 2, - "PyFrozenSet_Check": 1, - "PyFrozenSet_Type": 1, - "PySet_CheckExact": 2, - "__Pyx_TypeCheck": 1, - "PyTypeObject": 25, - "PyIntObject": 1, - "PyLongObject": 2, - "PyInt_Type": 1, - "PyLong_Type": 1, - "PyInt_Check": 1, - "PyLong_Check": 1, - "PyInt_CheckExact": 1, - "PyLong_CheckExact": 1, - "PyInt_FromString": 1, - "PyLong_FromString": 1, - "PyInt_FromUnicode": 1, - "PyLong_FromUnicode": 1, - "PyLong_FromLong": 1, - "PyInt_FromSize_t": 1, - "PyLong_FromSize_t": 1, - "PyLong_FromSsize_t": 1, - "PyInt_AsLong": 2, - "PyLong_AsLong": 1, - "PyInt_AS_LONG": 1, - "PyLong_AS_LONG": 1, - "PyLong_AsSsize_t": 1, - "PyInt_AsUnsignedLongMask": 1, - "PyLong_AsUnsignedLongMask": 1, - "PyInt_AsUnsignedLongLongMask": 1, - "PyLong_AsUnsignedLongLongMask": 1, - "PyBoolObject": 1, - "Py_hash_t": 1, - "__Pyx_PyInt_FromHash_t": 2, - "__Pyx_PyInt_AsHash_t": 2, - "__Pyx_PySequence_GetSlice": 2, - "PySequence_GetSlice": 2, - "__Pyx_PySequence_SetSlice": 2, - "PySequence_SetSlice": 2, - "__Pyx_PySequence_DelSlice": 2, - "PySequence_DelSlice": 2, - "PyErr_SetString": 3, - "PyExc_SystemError": 3, - "tp_as_mapping": 3, - "PyMethod_New": 2, - "func": 3, - "klass": 1, - "PyInstanceMethod_New": 1, - "__Pyx_GetAttrString": 2, - "PyObject_GetAttrString": 2, - "__Pyx_SetAttrString": 2, - "PyObject_SetAttrString": 2, - "__Pyx_DelAttrString": 2, - "PyObject_DelAttrString": 2, - "__Pyx_NAMESTR": 2, - "__Pyx_DOCSTR": 2, - "__Pyx_PyNumber_Divide": 2, - "y": 14, - "PyNumber_TrueDivide": 1, - "__Pyx_PyNumber_InPlaceDivide": 2, - "PyNumber_InPlaceTrueDivide": 1, - "PyNumber_Divide": 1, - "PyNumber_InPlaceDivide": 1, - "__PYX_EXTERN_C": 3, - "_USE_MATH_DEFINES": 1, - "__PYX_HAVE__sklearn__linear_model__sgd_fast": 1, - "__PYX_HAVE_API__sklearn__linear_model__sgd_fast": 1, - "_OPENMP": 1, - "": 1, - "PYREX_WITHOUT_ASSERTIONS": 1, - "CYTHON_WITHOUT_ASSERTIONS": 1, - "CYTHON_INLINE": 65, - "__inline__": 1, - "__inline": 1, - "__STDC_VERSION__": 2, - "L": 1, - "CYTHON_UNUSED": 14, - "**p": 1, - "is_unicode": 1, - "is_str": 1, - "intern": 1, - "__Pyx_StringTabEntry": 2, - "__Pyx_PyBytes_FromUString": 1, - "__Pyx_PyBytes_AsUString": 1, - "__Pyx_Owned_Py_None": 1, - "Py_INCREF": 10, - "Py_None": 8, - "__Pyx_PyBool_FromLong": 1, - "Py_True": 2, - "Py_False": 2, - "__Pyx_PyObject_IsTrue": 1, - "__Pyx_PyNumber_Int": 1, - "__Pyx_PyIndex_AsSsize_t": 1, - "__Pyx_PyInt_FromSize_t": 1, - "__Pyx_PyInt_AsSize_t": 1, - "__pyx_PyFloat_AsDouble": 12, - "PyFloat_CheckExact": 1, - "PyFloat_AS_DOUBLE": 1, - "PyFloat_AsDouble": 2, - "__pyx_PyFloat_AsFloat": 1, - "__builtin_expect": 2, - "*__pyx_m": 1, - "*__pyx_b": 1, - "*__pyx_empty_tuple": 1, - "*__pyx_empty_bytes": 1, - "__pyx_lineno": 58, - "__pyx_clineno": 58, - "__pyx_cfilenm": 1, - "__FILE__": 4, - "*__pyx_filename": 7, - "CYTHON_CCOMPLEX": 12, - "_Complex_I": 3, - "": 1, - "": 1, - "__sun__": 1, - "fj": 1, - "*__pyx_f": 1, - "IS_UNSIGNED": 1, - "__Pyx_StructField_": 2, - "__PYX_BUF_FLAGS_PACKED_STRUCT": 1, - "__Pyx_StructField_*": 1, - "fields": 1, - "arraysize": 1, - "typegroup": 1, - "is_unsigned": 1, - "__Pyx_TypeInfo": 2, - "__Pyx_TypeInfo*": 2, - "offset": 1, - "__Pyx_StructField": 2, - "__Pyx_StructField*": 1, - "field": 1, - "parent_offset": 1, - "__Pyx_BufFmt_StackElem": 1, - "root": 1, - "__Pyx_BufFmt_StackElem*": 2, - "fmt_offset": 1, - "new_count": 1, - "enc_count": 1, - "struct_alignment": 1, - "is_complex": 1, - "enc_type": 1, - "new_packmode": 1, - "enc_packmode": 1, - "is_valid_array": 1, - "__Pyx_BufFmt_Context": 1, - "npy_int8": 1, - "__pyx_t_5numpy_int8_t": 1, - "npy_int16": 1, - "__pyx_t_5numpy_int16_t": 1, - "npy_int32": 1, - "__pyx_t_5numpy_int32_t": 4, - "npy_int64": 1, - "__pyx_t_5numpy_int64_t": 1, - "npy_uint8": 1, - "__pyx_t_5numpy_uint8_t": 1, - "npy_uint16": 1, - "__pyx_t_5numpy_uint16_t": 1, - "npy_uint32": 1, - "__pyx_t_5numpy_uint32_t": 1, - "npy_uint64": 1, - "__pyx_t_5numpy_uint64_t": 1, - "npy_float32": 1, - "__pyx_t_5numpy_float32_t": 1, - "npy_float64": 1, - "__pyx_t_5numpy_float64_t": 4, - "npy_long": 1, - "__pyx_t_5numpy_int_t": 1, - "npy_longlong": 2, - "__pyx_t_5numpy_long_t": 1, - "__pyx_t_5numpy_longlong_t": 1, - "npy_ulong": 1, - "__pyx_t_5numpy_uint_t": 1, - "npy_ulonglong": 2, - "__pyx_t_5numpy_ulong_t": 1, - "__pyx_t_5numpy_ulonglong_t": 1, - "npy_intp": 1, - "__pyx_t_5numpy_intp_t": 1, - "npy_uintp": 1, - "__pyx_t_5numpy_uintp_t": 1, - "npy_double": 2, - "__pyx_t_5numpy_float_t": 1, - "__pyx_t_5numpy_double_t": 1, - "npy_longdouble": 1, - "__pyx_t_5numpy_longdouble_t": 1, - "__pyx_t_7sklearn_5utils_13weight_vector_DOUBLE": 2, - "__pyx_t_7sklearn_5utils_13weight_vector_INTEGER": 1, - "__pyx_t_7sklearn_5utils_11seq_dataset_DOUBLE": 7, - "__pyx_t_7sklearn_5utils_11seq_dataset_INTEGER": 7, - "__pyx_t_7sklearn_12linear_model_8sgd_fast_DOUBLE": 4, - "__pyx_t_7sklearn_12linear_model_8sgd_fast_INTEGER": 3, - "std": 8, - "complex": 2, - "__pyx_t_float_complex": 27, - "_Complex": 2, - "real": 2, - "imag": 2, - "__pyx_t_double_complex": 27, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction": 15, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression": 11, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber": 6, - "__pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset": 5, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 6, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification": 7, - "__pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset": 2, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Log": 5, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge": 6, - "__pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset": 2, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 6, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber": 5, - "__pyx_obj_7sklearn_5utils_13weight_vector_WeightVector": 3, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss": 5, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive": 6, - "npy_cfloat": 1, - "__pyx_t_5numpy_cfloat_t": 1, - "npy_cdouble": 2, - "__pyx_t_5numpy_cdouble_t": 1, - "npy_clongdouble": 1, - "__pyx_t_5numpy_clongdouble_t": 1, - "__pyx_t_5numpy_complex_t": 1, - "PyObject_HEAD": 3, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction": 5, - "*__pyx_vtab": 3, - "__pyx_base": 18, - "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset": 4, - "n_samples": 1, - "epsilon": 2, - "current_index": 2, - "stride": 2, - "*X_data_ptr": 2, - "*X_indptr_ptr": 1, - "*X_indices_ptr": 1, - "*Y_data_ptr": 2, - "PyArrayObject": 8, - "*feature_indices": 2, - "*feature_indices_ptr": 2, - "*index": 2, - "*index_data_ptr": 2, - "*sample_weight_data": 2, - "threshold": 2, - "n_features": 2, - "__pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector": 3, - "*w_data_ptr": 1, - "wscale": 1, - "sq_norm": 1, - "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_SequentialDataset": 1, - "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset": 2, - "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_ArrayDataset": 1, - "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset": 2, - "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_CSRDataset": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 2, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression": 3, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 2, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber": 2, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Huber": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge": 2, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification": 1, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Hinge": 1, - "*__pyx_vtabptr_7sklearn_5utils_13weight_vector_WeightVector": 1, - "CYTHON_REFNANNY": 3, - "__Pyx_RefNannyAPIStruct": 3, - "*__Pyx_RefNanny": 1, - "*__Pyx_RefNannyImportAPI": 1, - "*modname": 1, - "__Pyx_RefNannyDeclarations": 11, - "*__pyx_refnanny": 1, - "WITH_THREAD": 1, - "__Pyx_RefNannySetupContext": 12, - "acquire_gil": 4, - "PyGILState_STATE": 1, - "__pyx_gilstate_save": 2, - "PyGILState_Ensure": 1, - "__pyx_refnanny": 8, - "__Pyx_RefNanny": 8, - "SetupContext": 3, - "PyGILState_Release": 1, - "__Pyx_RefNannyFinishContext": 14, - "FinishContext": 1, - "__Pyx_INCREF": 6, - "INCREF": 1, - "__Pyx_DECREF": 20, - "DECREF": 1, - "__Pyx_GOTREF": 24, - "GOTREF": 1, - "__Pyx_GIVEREF": 9, - "GIVEREF": 1, - "__Pyx_XINCREF": 2, - "__Pyx_XDECREF": 20, - "__Pyx_XGOTREF": 2, - "__Pyx_XGIVEREF": 5, - "Py_DECREF": 2, - "Py_XINCREF": 1, - "Py_XDECREF": 1, - "__Pyx_CLEAR": 1, - "__Pyx_XCLEAR": 1, - "*__Pyx_GetName": 1, - "__Pyx_ErrRestore": 1, - "*type": 4, - "*tb": 2, - "__Pyx_ErrFetch": 1, - "**type": 1, - "**value": 1, - "**tb": 1, - "__Pyx_Raise": 4, - "*cause": 1, - "__Pyx_RaiseArgtupleInvalid": 7, - "func_name": 2, - "num_min": 1, - "num_max": 1, - "num_found": 1, - "__Pyx_RaiseDoubleKeywordsError": 1, - "kw_name": 1, - "__Pyx_ParseOptionalKeywords": 4, - "*kwds": 1, - "**argnames": 1, - "*kwds2": 1, - "*values": 1, - "num_pos_args": 1, - "function_name": 1, - "__Pyx_ArgTypeTest": 1, - "none_allowed": 1, - "__Pyx_GetBufferAndValidate": 1, - "Py_buffer*": 2, - "dtype": 1, - "nd": 1, - "cast": 1, - "__Pyx_SafeReleaseBuffer": 1, - "__Pyx_TypeTest": 1, - "__Pyx_RaiseBufferFallbackError": 1, - "*__Pyx_GetItemInt_Generic": 1, - "*r": 7, - "PyObject_GetItem": 1, - "__Pyx_GetItemInt_List": 1, - "to_py_func": 6, - "__Pyx_GetItemInt_List_Fast": 1, - "__Pyx_GetItemInt_Generic": 6, - "*__Pyx_GetItemInt_List_Fast": 1, - "PyList_GET_SIZE": 5, - "PyList_GET_ITEM": 3, - "PySequence_GetItem": 3, - "__Pyx_GetItemInt_Tuple": 1, - "__Pyx_GetItemInt_Tuple_Fast": 1, - "*__Pyx_GetItemInt_Tuple_Fast": 1, - "PyTuple_GET_SIZE": 14, - "PyTuple_GET_ITEM": 15, - "__Pyx_GetItemInt": 1, - "__Pyx_GetItemInt_Fast": 2, - "PyList_CheckExact": 1, - "PyTuple_CheckExact": 1, - "PySequenceMethods": 1, - "*m": 1, - "tp_as_sequence": 1, - "sq_item": 2, - "sq_length": 2, - "PySequence_Check": 1, - "__Pyx_RaiseTooManyValuesError": 1, - "expected": 2, - "__Pyx_RaiseNeedMoreValuesError": 1, - "__Pyx_RaiseNoneNotIterableError": 1, - "__Pyx_IterFinish": 1, - "__Pyx_IternextUnpackEndCheck": 1, - "*retval": 1, - "shape": 1, - "strides": 1, - "suboffsets": 1, - "__Pyx_Buf_DimInfo": 2, - "pybuffer": 1, - "__Pyx_Buffer": 2, - "*rcbuffer": 1, - "diminfo": 1, - "__Pyx_LocalBuf_ND": 1, - "__Pyx_GetBuffer": 2, - "*view": 2, - "__Pyx_ReleaseBuffer": 2, - "PyObject_GetBuffer": 1, - "PyBuffer_Release": 1, - "__Pyx_zeros": 1, - "__Pyx_minusones": 1, - "*__Pyx_Import": 1, - "*from_list": 1, - "__Pyx_RaiseImportError": 1, - "__Pyx_Print": 1, - "__pyx_print": 1, - "__pyx_print_kwargs": 1, - "__Pyx_PrintOne": 1, - "__Pyx_CREAL": 4, - ".real": 3, - "__Pyx_CIMAG": 4, - ".imag": 3, - "__real__": 1, - "__imag__": 1, - "__Pyx_SET_CREAL": 2, - "__Pyx_SET_CIMAG": 2, - "__pyx_t_float_complex_from_parts": 1, - "__Pyx_c_eqf": 2, - "__Pyx_c_sumf": 2, - "__Pyx_c_difff": 2, - "__Pyx_c_prodf": 2, - "__Pyx_c_quotf": 2, - "__Pyx_c_negf": 2, - "__Pyx_c_is_zerof": 3, - "__Pyx_c_conjf": 3, - "conj": 3, - "__Pyx_c_absf": 3, - "abs": 2, - "__Pyx_c_powf": 3, - "pow": 2, - "conjf": 1, - "cabsf": 1, - "cpowf": 1, - "__pyx_t_double_complex_from_parts": 1, - "__Pyx_c_eq": 2, - "__Pyx_c_sum": 2, - "__Pyx_c_diff": 2, - "__Pyx_c_prod": 2, - "__Pyx_c_quot": 2, - "__Pyx_c_neg": 2, - "__Pyx_c_is_zero": 3, - "__Pyx_c_conj": 3, - "__Pyx_c_abs": 3, - "__Pyx_c_pow": 3, - "cabs": 1, - "cpow": 1, - "__Pyx_PyInt_AsUnsignedChar": 1, - "__Pyx_PyInt_AsUnsignedShort": 1, - "__Pyx_PyInt_AsUnsignedInt": 1, - "__Pyx_PyInt_AsChar": 1, - "__Pyx_PyInt_AsShort": 1, - "signed": 5, - "__Pyx_PyInt_AsSignedChar": 1, - "__Pyx_PyInt_AsSignedShort": 1, - "__Pyx_PyInt_AsSignedInt": 1, - "__Pyx_PyInt_AsLongDouble": 1, - "__Pyx_PyInt_AsUnsignedLong": 1, - "__Pyx_PyInt_AsUnsignedLongLong": 1, - "__Pyx_PyInt_AsLong": 1, - "__Pyx_PyInt_AsLongLong": 1, - "__Pyx_PyInt_AsSignedLong": 1, - "__Pyx_PyInt_AsSignedLongLong": 1, - "__Pyx_WriteUnraisable": 4, - "clineno": 1, - "lineno": 1, - "*filename": 2, - "__Pyx_check_binary_version": 1, - "__Pyx_SetVtable": 1, - "*vtable": 1, - "__Pyx_PyIdentifier_FromString": 3, - "*__Pyx_ImportModule": 1, - "*__Pyx_ImportType": 1, - "*module_name": 1, - "*class_name": 1, - "__Pyx_GetVtable": 1, - "code_line": 4, - "PyCodeObject*": 2, - "code_object": 2, - "__Pyx_CodeObjectCacheEntry": 1, - "__Pyx_CodeObjectCache": 2, - "max_count": 1, - "__Pyx_CodeObjectCacheEntry*": 2, - "entries": 2, - "__pyx_code_cache": 1, - "__pyx_bisect_code_objects": 1, - "PyCodeObject": 1, - "*__pyx_find_code_object": 1, - "__pyx_insert_code_object": 1, - "__Pyx_AddTraceback": 7, - "*funcname": 1, - "c_line": 1, - "py_line": 1, - "__Pyx_InitStrings": 1, - "*__pyx_ptype_7cpython_4type_type": 1, - "*__pyx_ptype_5numpy_dtype": 1, - "*__pyx_ptype_5numpy_flatiter": 1, - "*__pyx_ptype_5numpy_broadcast": 1, - "*__pyx_ptype_5numpy_ndarray": 1, - "*__pyx_ptype_5numpy_ufunc": 1, - "*__pyx_f_5numpy__util_dtypestring": 1, - "PyArray_Descr": 1, - "*__pyx_ptype_7sklearn_5utils_13weight_vector_WeightVector": 1, - "*__pyx_ptype_7sklearn_5utils_11seq_dataset_SequentialDataset": 1, - "*__pyx_ptype_7sklearn_5utils_11seq_dataset_ArrayDataset": 1, - "*__pyx_ptype_7sklearn_5utils_11seq_dataset_CSRDataset": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_LossFunction": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Regression": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Classification": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_ModifiedHuber": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Hinge": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Log": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredLoss": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Huber": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_max": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_min": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_sqnorm": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty": 1, - "__Pyx_TypeInfo_nn___pyx_t_7sklearn_12linear_model_8sgd_fast_DOUBLE": 1, - "__Pyx_MODULE_NAME": 1, - "__pyx_module_is_main_sklearn__linear_model__sgd_fast": 1, - "*__pyx_builtin_NotImplementedError": 1, - "*__pyx_builtin_range": 1, - "*__pyx_builtin_ValueError": 1, - "*__pyx_builtin_RuntimeError": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 2, - "*__pyx_v_self": 52, - "__pyx_v_p": 46, - "__pyx_v_y": 46, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_4__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge___init__": 1, - "__pyx_v_threshold": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_6__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge___init__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_6__reduce__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_4__reduce__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_4__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber___init__": 1, - "__pyx_v_c": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_6__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive___init__": 1, - "__pyx_v_epsilon": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_6__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive___init__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_6__reduce__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd": 1, - "*__pyx_self": 1, - "*__pyx_v_weights": 1, - "__pyx_v_intercept": 1, - "*__pyx_v_loss": 1, - "__pyx_v_penalty_type": 1, - "__pyx_v_alpha": 1, - "__pyx_v_C": 1, - "__pyx_v_rho": 1, - "*__pyx_v_dataset": 1, - "__pyx_v_n_iter": 1, - "__pyx_v_fit_intercept": 1, - "__pyx_v_verbose": 1, - "__pyx_v_shuffle": 1, - "*__pyx_v_seed": 1, - "__pyx_v_weight_pos": 1, - "__pyx_v_weight_neg": 1, - "__pyx_v_learning_rate": 1, - "__pyx_v_eta0": 1, - "__pyx_v_power_t": 1, - "__pyx_v_t": 1, - "__pyx_v_intercept_decay": 1, - "__pyx_pf_5numpy_7ndarray___getbuffer__": 1, - "*__pyx_v_info": 2, - "__pyx_v_flags": 1, - "__pyx_pf_5numpy_7ndarray_2__releasebuffer__": 1, - "__pyx_k_1": 1, - "__pyx_k_2": 1, - "__pyx_k_3": 1, - "__pyx_k_4": 1, - "__pyx_k_6": 1, - "__pyx_k_8": 1, - "__pyx_k_10": 1, - "__pyx_k_12": 1, - "__pyx_k_13": 1, - "__pyx_k_16": 1, - "__pyx_k_20": 1, - "__pyx_k_21": 1, - "__pyx_k__B": 1, - "__pyx_k__C": 1, - "__pyx_k__H": 1, - "__pyx_k__I": 1, - "__pyx_k__L": 1, - "__pyx_k__O": 1, - "__pyx_k__Q": 1, - "__pyx_k__b": 1, - "__pyx_k__c": 1, - "__pyx_k__d": 1, - "__pyx_k__f": 1, - "__pyx_k__g": 1, - "__pyx_k__h": 1, - "__pyx_k__i": 1, - "__pyx_k__l": 1, - "__pyx_k__p": 1, - "__pyx_k__q": 1, - "__pyx_k__t": 1, - "__pyx_k__u": 1, - "__pyx_k__w": 1, - "__pyx_k__y": 1, - "__pyx_k__Zd": 1, - "__pyx_k__Zf": 1, - "__pyx_k__Zg": 1, - "__pyx_k__np": 1, - "__pyx_k__any": 1, - "__pyx_k__eta": 1, - "__pyx_k__rho": 1, - "__pyx_k__sys": 1, - "__pyx_k__eta0": 1, - "__pyx_k__loss": 1, - "__pyx_k__seed": 1, - "__pyx_k__time": 1, - "__pyx_k__xnnz": 1, - "__pyx_k__alpha": 1, - "__pyx_k__count": 1, - "__pyx_k__dloss": 1, - "__pyx_k__dtype": 1, - "__pyx_k__epoch": 1, - "__pyx_k__isinf": 1, - "__pyx_k__isnan": 1, - "__pyx_k__numpy": 1, - "__pyx_k__order": 1, - "__pyx_k__range": 1, - "__pyx_k__shape": 1, - "__pyx_k__zeros": 1, - "__pyx_k__n_iter": 1, - "__pyx_k__update": 1, - "__pyx_k__dataset": 1, - "__pyx_k__epsilon": 1, - "__pyx_k__float64": 1, - "__pyx_k__nonzero": 1, - "__pyx_k__power_t": 1, - "__pyx_k__shuffle": 1, - "__pyx_k__sumloss": 1, - "__pyx_k__t_start": 1, - "__pyx_k__verbose": 1, - "__pyx_k__weights": 1, - "__pyx_k____main__": 1, - "__pyx_k____test__": 1, - "__pyx_k__is_hinge": 1, - "__pyx_k__intercept": 1, - "__pyx_k__n_samples": 1, - "__pyx_k__plain_sgd": 1, - "__pyx_k__threshold": 1, - "__pyx_k__x_ind_ptr": 1, - "__pyx_k__ValueError": 1, - "__pyx_k__n_features": 1, - "__pyx_k__q_data_ptr": 1, - "__pyx_k__weight_neg": 1, - "__pyx_k__weight_pos": 1, - "__pyx_k__x_data_ptr": 1, - "__pyx_k__RuntimeError": 1, - "__pyx_k__class_weight": 1, - "__pyx_k__penalty_type": 1, - "__pyx_k__fit_intercept": 1, - "__pyx_k__learning_rate": 1, - "__pyx_k__sample_weight": 1, - "__pyx_k__intercept_decay": 1, - "__pyx_k__NotImplementedError": 1, - "*__pyx_kp_s_1": 1, - "*__pyx_kp_u_10": 1, - "*__pyx_kp_u_12": 1, - "*__pyx_kp_u_13": 1, - "*__pyx_kp_u_16": 1, - "*__pyx_kp_s_2": 1, - "*__pyx_kp_s_20": 1, - "*__pyx_n_s_21": 1, - "*__pyx_kp_s_3": 1, - "*__pyx_kp_s_4": 1, - "*__pyx_kp_u_6": 1, - "*__pyx_kp_u_8": 1, - "*__pyx_n_s__C": 1, - "*__pyx_n_s__NotImplementedError": 1, - "*__pyx_n_s__RuntimeError": 1, - "*__pyx_n_s__ValueError": 1, - "*__pyx_n_s____main__": 1, - "*__pyx_n_s____test__": 1, - "*__pyx_n_s__alpha": 1, - "*__pyx_n_s__any": 1, - "*__pyx_n_s__c": 1, - "*__pyx_n_s__class_weight": 1, - "*__pyx_n_s__count": 1, - "*__pyx_n_s__dataset": 1, - "*__pyx_n_s__dloss": 1, - "*__pyx_n_s__dtype": 1, - "*__pyx_n_s__epoch": 1, - "*__pyx_n_s__epsilon": 1, - "*__pyx_n_s__eta": 1, - "*__pyx_n_s__eta0": 1, - "*__pyx_n_s__fit_intercept": 1, - "*__pyx_n_s__float64": 1, - "*__pyx_n_s__i": 1, - "*__pyx_n_s__intercept": 1, - "*__pyx_n_s__intercept_decay": 1, - "*__pyx_n_s__is_hinge": 1, - "*__pyx_n_s__isinf": 1, - "*__pyx_n_s__isnan": 1, - "*__pyx_n_s__learning_rate": 1, - "*__pyx_n_s__loss": 1, - "*__pyx_n_s__n_features": 1, - "*__pyx_n_s__n_iter": 1, - "*__pyx_n_s__n_samples": 1, - "*__pyx_n_s__nonzero": 1, - "*__pyx_n_s__np": 1, - "*__pyx_n_s__numpy": 1, - "*__pyx_n_s__order": 1, - "*__pyx_n_s__p": 1, - "*__pyx_n_s__penalty_type": 1, - "*__pyx_n_s__plain_sgd": 1, - "*__pyx_n_s__power_t": 1, - "*__pyx_n_s__q": 1, - "*__pyx_n_s__q_data_ptr": 1, - "*__pyx_n_s__range": 1, - "*__pyx_n_s__rho": 1, - "*__pyx_n_s__sample_weight": 1, - "*__pyx_n_s__seed": 1, - "*__pyx_n_s__shape": 1, - "*__pyx_n_s__shuffle": 1, - "*__pyx_n_s__sumloss": 1, - "*__pyx_n_s__sys": 1, - "*__pyx_n_s__t": 1, - "*__pyx_n_s__t_start": 1, - "*__pyx_n_s__threshold": 1, - "*__pyx_n_s__time": 1, - "*__pyx_n_s__u": 1, - "*__pyx_n_s__update": 1, - "*__pyx_n_s__verbose": 1, - "*__pyx_n_s__w": 1, - "*__pyx_n_s__weight_neg": 1, - "*__pyx_n_s__weight_pos": 1, - "*__pyx_n_s__weights": 1, - "*__pyx_n_s__x_data_ptr": 1, - "*__pyx_n_s__x_ind_ptr": 1, - "*__pyx_n_s__xnnz": 1, - "*__pyx_n_s__y": 1, - "*__pyx_n_s__zeros": 1, - "*__pyx_int_15": 1, - "*__pyx_k_tuple_5": 1, - "*__pyx_k_tuple_7": 1, - "*__pyx_k_tuple_9": 1, - "*__pyx_k_tuple_11": 1, - "*__pyx_k_tuple_14": 1, - "*__pyx_k_tuple_15": 1, - "*__pyx_k_tuple_17": 1, - "*__pyx_k_tuple_18": 1, - "*__pyx_k_codeobj_19": 1, - "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_1loss": 3, - "*__pyx_args": 9, - "*__pyx_kwds": 9, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, - "__pyx_skip_dispatch": 6, - "__pyx_r": 39, - "*__pyx_t_1": 6, - "*__pyx_t_2": 3, - "*__pyx_t_3": 3, - "*__pyx_t_4": 3, - "__pyx_t_5": 12, - "__pyx_v_self": 15, - "tp_dictoffset": 3, - "__pyx_t_1": 69, - "PyObject_GetAttr": 3, - "__pyx_n_s__loss": 2, - "__pyx_filename": 51, - "__pyx_f": 42, - "__pyx_L1_error": 33, - "PyCFunction_Check": 3, - "PyCFunction_GET_FUNCTION": 3, - "PyCFunction": 3, - "__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_1loss": 1, - "__pyx_t_2": 21, - "PyFloat_FromDouble": 9, - "__pyx_t_3": 39, - "__pyx_t_4": 27, - "PyTuple_New": 3, - "PyTuple_SET_ITEM": 6, - "PyObject_Call": 6, - "PyErr_Occurred": 9, - "__pyx_L0": 18, - "__pyx_builtin_NotImplementedError": 3, - "__pyx_empty_tuple": 3, - "__pyx_doc_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, - "*__pyx_r": 6, - "**__pyx_pyargnames": 3, - "__pyx_n_s__p": 6, - "__pyx_n_s__y": 6, - "values": 30, - "__pyx_kwds": 15, - "kw_args": 15, - "pos_args": 12, - "__pyx_args": 21, - "__pyx_L5_argtuple_error": 12, - "PyDict_Size": 3, - "PyDict_GetItem": 6, - "__pyx_L3_error": 18, - "__pyx_pyargnames": 3, - "__pyx_L4_argument_unpacking_done": 6, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, - "__pyx_vtab": 2, - "loss": 1, - "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_3dloss": 3, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss": 1, - "__pyx_n_s__dloss": 1, - "__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_3dloss": 1, - "__pyx_doc_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 1, - "dloss": 1, - "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression_1loss": 3, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 1, - "__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression_1loss": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 1, - "__pyx_base.__pyx_vtab": 1, - "__pyx_base.loss": 1, - "syscalldef": 1, - "syscalldefs": 1, - "SYSCALL_OR_NUM": 3, - "SYS_restart_syscall": 1, - "MAKE_UINT16": 3, - "SYS_exit": 1, - "SYS_fork": 1, - "__wglew_h__": 2, - "__WGLEW_H__": 1, - "__wglext_h_": 2, - "wglext.h": 1, - "wglew.h": 1, - "WINAPI": 119, - "": 1, - "GLEW_STATIC": 1, - "WGL_3DFX_multisample": 2, - "WGL_SAMPLE_BUFFERS_3DFX": 1, - "WGL_SAMPLES_3DFX": 1, - "WGLEW_3DFX_multisample": 1, - "WGLEW_GET_VAR": 49, - "__WGLEW_3DFX_multisample": 2, - "WGL_3DL_stereo_control": 2, - "WGL_STEREO_EMITTER_ENABLE_3DL": 1, - "WGL_STEREO_EMITTER_DISABLE_3DL": 1, - "WGL_STEREO_POLARITY_NORMAL_3DL": 1, - "WGL_STEREO_POLARITY_INVERT_3DL": 1, - "BOOL": 84, - "PFNWGLSETSTEREOEMITTERSTATE3DLPROC": 2, - "HDC": 65, - "hDC": 33, - "UINT": 30, - "uState": 1, - "wglSetStereoEmitterState3DL": 1, - "WGLEW_GET_FUN": 120, - "__wglewSetStereoEmitterState3DL": 2, - "WGLEW_3DL_stereo_control": 1, - "__WGLEW_3DL_stereo_control": 2, - "WGL_AMD_gpu_association": 2, - "WGL_GPU_VENDOR_AMD": 1, - "F00": 1, - "WGL_GPU_RENDERER_STRING_AMD": 1, - "F01": 1, - "WGL_GPU_OPENGL_VERSION_STRING_AMD": 1, - "F02": 1, - "WGL_GPU_FASTEST_TARGET_GPUS_AMD": 1, - "A2": 2, - "WGL_GPU_RAM_AMD": 1, - "A3": 2, - "WGL_GPU_CLOCK_AMD": 1, - "A4": 2, - "WGL_GPU_NUM_PIPES_AMD": 1, - "A5": 3, - "WGL_GPU_NUM_SIMD_AMD": 1, - "A6": 2, - "WGL_GPU_NUM_RB_AMD": 1, - "A7": 2, - "WGL_GPU_NUM_SPI_AMD": 1, - "A8": 2, - "VOID": 6, - "PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC": 2, - "HGLRC": 14, - "dstCtx": 1, - "GLint": 18, - "srcX0": 1, - "srcY0": 1, - "srcX1": 1, - "srcY1": 1, - "dstX0": 1, - "dstY0": 1, - "dstX1": 1, - "dstY1": 1, - "GLbitfield": 1, - "mask": 1, - "GLenum": 8, - "filter": 1, - "PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC": 2, - "PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC": 2, - "hShareContext": 2, - "attribList": 2, - "PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC": 2, - "hglrc": 5, - "PFNWGLGETCONTEXTGPUIDAMDPROC": 2, - "PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC": 2, - "PFNWGLGETGPUIDSAMDPROC": 2, - "maxCount": 1, - "UINT*": 6, - "ids": 1, - "INT": 3, - "PFNWGLGETGPUINFOAMDPROC": 2, - "property": 1, - "dataType": 1, - "PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC": 2, - "wglBlitContextFramebufferAMD": 1, - "__wglewBlitContextFramebufferAMD": 2, - "wglCreateAssociatedContextAMD": 1, - "__wglewCreateAssociatedContextAMD": 2, - "wglCreateAssociatedContextAttribsAMD": 1, - "__wglewCreateAssociatedContextAttribsAMD": 2, - "wglDeleteAssociatedContextAMD": 1, - "__wglewDeleteAssociatedContextAMD": 2, - "wglGetContextGPUIDAMD": 1, - "__wglewGetContextGPUIDAMD": 2, - "wglGetCurrentAssociatedContextAMD": 1, - "__wglewGetCurrentAssociatedContextAMD": 2, - "wglGetGPUIDsAMD": 1, - "__wglewGetGPUIDsAMD": 2, - "wglGetGPUInfoAMD": 1, - "__wglewGetGPUInfoAMD": 2, - "wglMakeAssociatedContextCurrentAMD": 1, - "__wglewMakeAssociatedContextCurrentAMD": 2, - "WGLEW_AMD_gpu_association": 1, - "__WGLEW_AMD_gpu_association": 2, - "WGL_ARB_buffer_region": 2, - "WGL_FRONT_COLOR_BUFFER_BIT_ARB": 1, - "WGL_BACK_COLOR_BUFFER_BIT_ARB": 1, - "WGL_DEPTH_BUFFER_BIT_ARB": 1, - "WGL_STENCIL_BUFFER_BIT_ARB": 1, - "HANDLE": 14, - "PFNWGLCREATEBUFFERREGIONARBPROC": 2, - "iLayerPlane": 5, - "uType": 1, - "PFNWGLDELETEBUFFERREGIONARBPROC": 2, - "hRegion": 3, - "PFNWGLRESTOREBUFFERREGIONARBPROC": 2, - "width": 3, - "height": 3, - "xSrc": 1, - "ySrc": 1, - "PFNWGLSAVEBUFFERREGIONARBPROC": 2, - "wglCreateBufferRegionARB": 1, - "__wglewCreateBufferRegionARB": 2, - "wglDeleteBufferRegionARB": 1, - "__wglewDeleteBufferRegionARB": 2, - "wglRestoreBufferRegionARB": 1, - "__wglewRestoreBufferRegionARB": 2, - "wglSaveBufferRegionARB": 1, - "__wglewSaveBufferRegionARB": 2, - "WGLEW_ARB_buffer_region": 1, - "__WGLEW_ARB_buffer_region": 2, - "WGL_ARB_create_context": 2, - "WGL_CONTEXT_DEBUG_BIT_ARB": 1, - "WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB": 1, - "WGL_CONTEXT_MAJOR_VERSION_ARB": 1, - "WGL_CONTEXT_MINOR_VERSION_ARB": 1, - "WGL_CONTEXT_LAYER_PLANE_ARB": 1, - "WGL_CONTEXT_FLAGS_ARB": 1, - "ERROR_INVALID_VERSION_ARB": 1, - "ERROR_INVALID_PROFILE_ARB": 1, - "PFNWGLCREATECONTEXTATTRIBSARBPROC": 2, - "wglCreateContextAttribsARB": 1, - "__wglewCreateContextAttribsARB": 2, - "WGLEW_ARB_create_context": 1, - "__WGLEW_ARB_create_context": 2, - "WGL_ARB_create_context_profile": 2, - "WGL_CONTEXT_CORE_PROFILE_BIT_ARB": 1, - "WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB": 1, - "WGL_CONTEXT_PROFILE_MASK_ARB": 1, - "WGLEW_ARB_create_context_profile": 1, - "__WGLEW_ARB_create_context_profile": 2, - "WGL_ARB_create_context_robustness": 2, - "WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB": 1, - "WGL_LOSE_CONTEXT_ON_RESET_ARB": 1, - "WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB": 1, - "WGL_NO_RESET_NOTIFICATION_ARB": 1, - "WGLEW_ARB_create_context_robustness": 1, - "__WGLEW_ARB_create_context_robustness": 2, - "WGL_ARB_extensions_string": 2, - "PFNWGLGETEXTENSIONSSTRINGARBPROC": 2, - "hdc": 16, - "wglGetExtensionsStringARB": 1, - "__wglewGetExtensionsStringARB": 2, - "WGLEW_ARB_extensions_string": 1, - "__WGLEW_ARB_extensions_string": 2, - "WGL_ARB_framebuffer_sRGB": 2, - "WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB": 1, - "A9": 2, - "WGLEW_ARB_framebuffer_sRGB": 1, - "__WGLEW_ARB_framebuffer_sRGB": 2, - "WGL_ARB_make_current_read": 2, - "ERROR_INVALID_PIXEL_TYPE_ARB": 1, - "ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB": 1, - "PFNWGLGETCURRENTREADDCARBPROC": 2, - "PFNWGLMAKECONTEXTCURRENTARBPROC": 2, - "hDrawDC": 2, - "hReadDC": 2, - "wglGetCurrentReadDCARB": 1, - "__wglewGetCurrentReadDCARB": 2, - "wglMakeContextCurrentARB": 1, - "__wglewMakeContextCurrentARB": 2, - "WGLEW_ARB_make_current_read": 1, - "__WGLEW_ARB_make_current_read": 2, - "WGL_ARB_multisample": 2, - "WGL_SAMPLE_BUFFERS_ARB": 1, - "WGL_SAMPLES_ARB": 1, - "WGLEW_ARB_multisample": 1, - "__WGLEW_ARB_multisample": 2, - "WGL_ARB_pbuffer": 2, - "WGL_DRAW_TO_PBUFFER_ARB": 1, - "D": 8, - "WGL_MAX_PBUFFER_PIXELS_ARB": 1, - "WGL_MAX_PBUFFER_WIDTH_ARB": 1, - "WGL_MAX_PBUFFER_HEIGHT_ARB": 1, - "WGL_PBUFFER_LARGEST_ARB": 1, - "WGL_PBUFFER_WIDTH_ARB": 1, - "WGL_PBUFFER_HEIGHT_ARB": 1, - "WGL_PBUFFER_LOST_ARB": 1, - "DECLARE_HANDLE": 6, - "HPBUFFERARB": 12, - "PFNWGLCREATEPBUFFERARBPROC": 2, - "iPixelFormat": 6, - "iWidth": 2, - "iHeight": 2, - "piAttribList": 4, - "PFNWGLDESTROYPBUFFERARBPROC": 2, - "hPbuffer": 14, - "PFNWGLGETPBUFFERDCARBPROC": 2, - "PFNWGLQUERYPBUFFERARBPROC": 2, - "iAttribute": 8, - "piValue": 8, - "PFNWGLRELEASEPBUFFERDCARBPROC": 2, - "wglCreatePbufferARB": 1, - "__wglewCreatePbufferARB": 2, - "wglDestroyPbufferARB": 1, - "__wglewDestroyPbufferARB": 2, - "wglGetPbufferDCARB": 1, - "__wglewGetPbufferDCARB": 2, - "wglQueryPbufferARB": 1, - "__wglewQueryPbufferARB": 2, - "wglReleasePbufferDCARB": 1, - "__wglewReleasePbufferDCARB": 2, - "WGLEW_ARB_pbuffer": 1, - "__WGLEW_ARB_pbuffer": 2, - "WGL_ARB_pixel_format": 2, - "WGL_NUMBER_PIXEL_FORMATS_ARB": 1, - "WGL_DRAW_TO_WINDOW_ARB": 1, - "WGL_DRAW_TO_BITMAP_ARB": 1, - "WGL_ACCELERATION_ARB": 1, - "WGL_NEED_PALETTE_ARB": 1, - "WGL_NEED_SYSTEM_PALETTE_ARB": 1, - "WGL_SWAP_LAYER_BUFFERS_ARB": 1, - "WGL_SWAP_METHOD_ARB": 1, - "WGL_NUMBER_OVERLAYS_ARB": 1, - "WGL_NUMBER_UNDERLAYS_ARB": 1, - "WGL_TRANSPARENT_ARB": 1, - "WGL_SHARE_DEPTH_ARB": 1, - "WGL_SHARE_STENCIL_ARB": 1, - "WGL_SHARE_ACCUM_ARB": 1, - "WGL_SUPPORT_GDI_ARB": 1, - "WGL_SUPPORT_OPENGL_ARB": 1, - "WGL_DOUBLE_BUFFER_ARB": 1, - "WGL_STEREO_ARB": 1, - "WGL_PIXEL_TYPE_ARB": 1, - "WGL_COLOR_BITS_ARB": 1, - "WGL_RED_BITS_ARB": 1, - "WGL_RED_SHIFT_ARB": 1, - "WGL_GREEN_BITS_ARB": 1, - "WGL_GREEN_SHIFT_ARB": 1, - "WGL_BLUE_BITS_ARB": 1, - "WGL_BLUE_SHIFT_ARB": 1, - "WGL_ALPHA_BITS_ARB": 1, - "B": 9, - "WGL_ALPHA_SHIFT_ARB": 1, - "WGL_ACCUM_BITS_ARB": 1, - "WGL_ACCUM_RED_BITS_ARB": 1, - "WGL_ACCUM_GREEN_BITS_ARB": 1, - "WGL_ACCUM_BLUE_BITS_ARB": 1, - "WGL_ACCUM_ALPHA_BITS_ARB": 1, - "WGL_DEPTH_BITS_ARB": 1, - "WGL_STENCIL_BITS_ARB": 1, - "WGL_AUX_BUFFERS_ARB": 1, - "WGL_NO_ACCELERATION_ARB": 1, - "WGL_GENERIC_ACCELERATION_ARB": 1, - "WGL_FULL_ACCELERATION_ARB": 1, - "WGL_SWAP_EXCHANGE_ARB": 1, - "WGL_SWAP_COPY_ARB": 1, - "WGL_SWAP_UNDEFINED_ARB": 1, - "WGL_TYPE_RGBA_ARB": 1, - "WGL_TYPE_COLORINDEX_ARB": 1, - "WGL_TRANSPARENT_RED_VALUE_ARB": 1, - "WGL_TRANSPARENT_GREEN_VALUE_ARB": 1, - "WGL_TRANSPARENT_BLUE_VALUE_ARB": 1, - "WGL_TRANSPARENT_ALPHA_VALUE_ARB": 1, - "WGL_TRANSPARENT_INDEX_VALUE_ARB": 1, - "PFNWGLCHOOSEPIXELFORMATARBPROC": 2, - "piAttribIList": 2, - "FLOAT": 4, - "*pfAttribFList": 2, - "nMaxFormats": 2, - "*piFormats": 2, - "*nNumFormats": 2, - "PFNWGLGETPIXELFORMATATTRIBFVARBPROC": 2, - "nAttributes": 4, - "piAttributes": 4, - "*pfValues": 2, - "PFNWGLGETPIXELFORMATATTRIBIVARBPROC": 2, - "*piValues": 2, - "wglChoosePixelFormatARB": 1, - "__wglewChoosePixelFormatARB": 2, - "wglGetPixelFormatAttribfvARB": 1, - "__wglewGetPixelFormatAttribfvARB": 2, - "wglGetPixelFormatAttribivARB": 1, - "__wglewGetPixelFormatAttribivARB": 2, - "WGLEW_ARB_pixel_format": 1, - "__WGLEW_ARB_pixel_format": 2, - "WGL_ARB_pixel_format_float": 2, - "WGL_TYPE_RGBA_FLOAT_ARB": 1, - "A0": 3, - "WGLEW_ARB_pixel_format_float": 1, - "__WGLEW_ARB_pixel_format_float": 2, - "WGL_ARB_render_texture": 2, - "WGL_BIND_TO_TEXTURE_RGB_ARB": 1, - "WGL_BIND_TO_TEXTURE_RGBA_ARB": 1, - "WGL_TEXTURE_FORMAT_ARB": 1, - "WGL_TEXTURE_TARGET_ARB": 1, - "WGL_MIPMAP_TEXTURE_ARB": 1, - "WGL_TEXTURE_RGB_ARB": 1, - "WGL_TEXTURE_RGBA_ARB": 1, - "WGL_NO_TEXTURE_ARB": 2, - "WGL_TEXTURE_CUBE_MAP_ARB": 1, - "WGL_TEXTURE_1D_ARB": 1, - "WGL_TEXTURE_2D_ARB": 1, - "WGL_MIPMAP_LEVEL_ARB": 1, - "WGL_CUBE_MAP_FACE_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB": 1, - "WGL_FRONT_LEFT_ARB": 1, - "WGL_FRONT_RIGHT_ARB": 1, - "WGL_BACK_LEFT_ARB": 1, - "WGL_BACK_RIGHT_ARB": 1, - "WGL_AUX0_ARB": 1, - "WGL_AUX1_ARB": 1, - "WGL_AUX2_ARB": 1, - "WGL_AUX3_ARB": 1, - "WGL_AUX4_ARB": 1, - "WGL_AUX5_ARB": 1, - "WGL_AUX6_ARB": 1, - "WGL_AUX7_ARB": 1, - "WGL_AUX8_ARB": 1, - "WGL_AUX9_ARB": 1, - "PFNWGLBINDTEXIMAGEARBPROC": 2, - "iBuffer": 2, - "PFNWGLRELEASETEXIMAGEARBPROC": 2, - "PFNWGLSETPBUFFERATTRIBARBPROC": 2, - "wglBindTexImageARB": 1, - "__wglewBindTexImageARB": 2, - "wglReleaseTexImageARB": 1, - "__wglewReleaseTexImageARB": 2, - "wglSetPbufferAttribARB": 1, - "__wglewSetPbufferAttribARB": 2, - "WGLEW_ARB_render_texture": 1, - "__WGLEW_ARB_render_texture": 2, - "WGL_ATI_pixel_format_float": 2, - "WGL_TYPE_RGBA_FLOAT_ATI": 1, - "GL_RGBA_FLOAT_MODE_ATI": 1, - "GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI": 1, - "WGLEW_ATI_pixel_format_float": 1, - "__WGLEW_ATI_pixel_format_float": 2, - "WGL_ATI_render_texture_rectangle": 2, - "WGL_TEXTURE_RECTANGLE_ATI": 1, - "WGLEW_ATI_render_texture_rectangle": 1, - "__WGLEW_ATI_render_texture_rectangle": 2, - "WGL_EXT_create_context_es2_profile": 2, - "WGL_CONTEXT_ES2_PROFILE_BIT_EXT": 1, - "WGLEW_EXT_create_context_es2_profile": 1, - "__WGLEW_EXT_create_context_es2_profile": 2, - "WGL_EXT_depth_float": 2, - "WGL_DEPTH_FLOAT_EXT": 1, - "WGLEW_EXT_depth_float": 1, - "__WGLEW_EXT_depth_float": 2, - "WGL_EXT_display_color_table": 2, - "GLboolean": 53, - "PFNWGLBINDDISPLAYCOLORTABLEEXTPROC": 2, - "GLushort": 3, - "PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC": 2, - "PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC": 2, - "PFNWGLLOADDISPLAYCOLORTABLEEXTPROC": 2, - "GLushort*": 1, - "table": 1, - "GLuint": 9, - "wglBindDisplayColorTableEXT": 1, - "__wglewBindDisplayColorTableEXT": 2, - "wglCreateDisplayColorTableEXT": 1, - "__wglewCreateDisplayColorTableEXT": 2, - "wglDestroyDisplayColorTableEXT": 1, - "__wglewDestroyDisplayColorTableEXT": 2, - "wglLoadDisplayColorTableEXT": 1, - "__wglewLoadDisplayColorTableEXT": 2, - "WGLEW_EXT_display_color_table": 1, - "__WGLEW_EXT_display_color_table": 2, - "WGL_EXT_extensions_string": 2, - "PFNWGLGETEXTENSIONSSTRINGEXTPROC": 2, - "wglGetExtensionsStringEXT": 1, - "__wglewGetExtensionsStringEXT": 2, - "WGLEW_EXT_extensions_string": 1, - "__WGLEW_EXT_extensions_string": 2, - "WGL_EXT_framebuffer_sRGB": 2, - "WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT": 1, - "WGLEW_EXT_framebuffer_sRGB": 1, - "__WGLEW_EXT_framebuffer_sRGB": 2, - "WGL_EXT_make_current_read": 2, - "ERROR_INVALID_PIXEL_TYPE_EXT": 1, - "PFNWGLGETCURRENTREADDCEXTPROC": 2, - "PFNWGLMAKECONTEXTCURRENTEXTPROC": 2, - "wglGetCurrentReadDCEXT": 1, - "__wglewGetCurrentReadDCEXT": 2, - "wglMakeContextCurrentEXT": 1, - "__wglewMakeContextCurrentEXT": 2, - "WGLEW_EXT_make_current_read": 1, - "__WGLEW_EXT_make_current_read": 2, - "WGL_EXT_multisample": 2, - "WGL_SAMPLE_BUFFERS_EXT": 1, - "WGL_SAMPLES_EXT": 1, - "WGLEW_EXT_multisample": 1, - "__WGLEW_EXT_multisample": 2, - "WGL_EXT_pbuffer": 2, - "WGL_DRAW_TO_PBUFFER_EXT": 1, - "WGL_MAX_PBUFFER_PIXELS_EXT": 1, - "WGL_MAX_PBUFFER_WIDTH_EXT": 1, - "WGL_MAX_PBUFFER_HEIGHT_EXT": 1, - "WGL_OPTIMAL_PBUFFER_WIDTH_EXT": 1, - "WGL_OPTIMAL_PBUFFER_HEIGHT_EXT": 1, - "WGL_PBUFFER_LARGEST_EXT": 1, - "WGL_PBUFFER_WIDTH_EXT": 1, - "WGL_PBUFFER_HEIGHT_EXT": 1, - "HPBUFFEREXT": 6, - "PFNWGLCREATEPBUFFEREXTPROC": 2, - "PFNWGLDESTROYPBUFFEREXTPROC": 2, - "PFNWGLGETPBUFFERDCEXTPROC": 2, - "PFNWGLQUERYPBUFFEREXTPROC": 2, - "PFNWGLRELEASEPBUFFERDCEXTPROC": 2, - "wglCreatePbufferEXT": 1, - "__wglewCreatePbufferEXT": 2, - "wglDestroyPbufferEXT": 1, - "__wglewDestroyPbufferEXT": 2, - "wglGetPbufferDCEXT": 1, - "__wglewGetPbufferDCEXT": 2, - "wglQueryPbufferEXT": 1, - "__wglewQueryPbufferEXT": 2, - "wglReleasePbufferDCEXT": 1, - "__wglewReleasePbufferDCEXT": 2, - "WGLEW_EXT_pbuffer": 1, - "__WGLEW_EXT_pbuffer": 2, - "WGL_EXT_pixel_format": 2, - "WGL_NUMBER_PIXEL_FORMATS_EXT": 1, - "WGL_DRAW_TO_WINDOW_EXT": 1, - "WGL_DRAW_TO_BITMAP_EXT": 1, - "WGL_ACCELERATION_EXT": 1, - "WGL_NEED_PALETTE_EXT": 1, - "WGL_NEED_SYSTEM_PALETTE_EXT": 1, - "WGL_SWAP_LAYER_BUFFERS_EXT": 1, - "WGL_SWAP_METHOD_EXT": 1, - "WGL_NUMBER_OVERLAYS_EXT": 1, - "WGL_NUMBER_UNDERLAYS_EXT": 1, - "WGL_TRANSPARENT_EXT": 1, - "WGL_TRANSPARENT_VALUE_EXT": 1, - "WGL_SHARE_DEPTH_EXT": 1, - "WGL_SHARE_STENCIL_EXT": 1, - "WGL_SHARE_ACCUM_EXT": 1, - "WGL_SUPPORT_GDI_EXT": 1, - "WGL_SUPPORT_OPENGL_EXT": 1, - "WGL_DOUBLE_BUFFER_EXT": 1, - "WGL_STEREO_EXT": 1, - "WGL_PIXEL_TYPE_EXT": 1, - "WGL_COLOR_BITS_EXT": 1, - "WGL_RED_BITS_EXT": 1, - "WGL_RED_SHIFT_EXT": 1, - "WGL_GREEN_BITS_EXT": 1, - "WGL_GREEN_SHIFT_EXT": 1, - "WGL_BLUE_BITS_EXT": 1, - "WGL_BLUE_SHIFT_EXT": 1, - "WGL_ALPHA_BITS_EXT": 1, - "WGL_ALPHA_SHIFT_EXT": 1, - "WGL_ACCUM_BITS_EXT": 1, - "WGL_ACCUM_RED_BITS_EXT": 1, - "WGL_ACCUM_GREEN_BITS_EXT": 1, - "WGL_ACCUM_BLUE_BITS_EXT": 1, - "WGL_ACCUM_ALPHA_BITS_EXT": 1, - "WGL_DEPTH_BITS_EXT": 1, - "WGL_STENCIL_BITS_EXT": 1, - "WGL_AUX_BUFFERS_EXT": 1, - "WGL_NO_ACCELERATION_EXT": 1, - "WGL_GENERIC_ACCELERATION_EXT": 1, - "WGL_FULL_ACCELERATION_EXT": 1, - "WGL_SWAP_EXCHANGE_EXT": 1, - "WGL_SWAP_COPY_EXT": 1, - "WGL_SWAP_UNDEFINED_EXT": 1, - "WGL_TYPE_RGBA_EXT": 1, - "WGL_TYPE_COLORINDEX_EXT": 1, - "PFNWGLCHOOSEPIXELFORMATEXTPROC": 2, - "PFNWGLGETPIXELFORMATATTRIBFVEXTPROC": 2, - "PFNWGLGETPIXELFORMATATTRIBIVEXTPROC": 2, - "wglChoosePixelFormatEXT": 1, - "__wglewChoosePixelFormatEXT": 2, - "wglGetPixelFormatAttribfvEXT": 1, - "__wglewGetPixelFormatAttribfvEXT": 2, - "wglGetPixelFormatAttribivEXT": 1, - "__wglewGetPixelFormatAttribivEXT": 2, - "WGLEW_EXT_pixel_format": 1, - "__WGLEW_EXT_pixel_format": 2, - "WGL_EXT_pixel_format_packed_float": 2, - "WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT": 1, - "WGLEW_EXT_pixel_format_packed_float": 1, - "__WGLEW_EXT_pixel_format_packed_float": 2, - "WGL_EXT_swap_control": 2, - "PFNWGLGETSWAPINTERVALEXTPROC": 2, - "PFNWGLSWAPINTERVALEXTPROC": 2, - "interval": 1, - "wglGetSwapIntervalEXT": 1, - "__wglewGetSwapIntervalEXT": 2, - "wglSwapIntervalEXT": 1, - "__wglewSwapIntervalEXT": 2, - "WGLEW_EXT_swap_control": 1, - "__WGLEW_EXT_swap_control": 2, - "WGL_I3D_digital_video_control": 2, - "WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D": 1, - "WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D": 1, - "WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D": 1, - "WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D": 1, - "PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC": 2, - "PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC": 2, - "wglGetDigitalVideoParametersI3D": 1, - "__wglewGetDigitalVideoParametersI3D": 2, - "wglSetDigitalVideoParametersI3D": 1, - "__wglewSetDigitalVideoParametersI3D": 2, - "WGLEW_I3D_digital_video_control": 1, - "__WGLEW_I3D_digital_video_control": 2, - "WGL_I3D_gamma": 2, - "WGL_GAMMA_TABLE_SIZE_I3D": 1, - "WGL_GAMMA_EXCLUDE_DESKTOP_I3D": 1, - "PFNWGLGETGAMMATABLEI3DPROC": 2, - "iEntries": 2, - "USHORT*": 2, - "puRed": 2, - "USHORT": 4, - "*puGreen": 2, - "*puBlue": 2, - "PFNWGLGETGAMMATABLEPARAMETERSI3DPROC": 2, - "PFNWGLSETGAMMATABLEI3DPROC": 2, - "PFNWGLSETGAMMATABLEPARAMETERSI3DPROC": 2, - "wglGetGammaTableI3D": 1, - "__wglewGetGammaTableI3D": 2, - "wglGetGammaTableParametersI3D": 1, - "__wglewGetGammaTableParametersI3D": 2, - "wglSetGammaTableI3D": 1, - "__wglewSetGammaTableI3D": 2, - "wglSetGammaTableParametersI3D": 1, - "__wglewSetGammaTableParametersI3D": 2, - "WGLEW_I3D_gamma": 1, - "__WGLEW_I3D_gamma": 2, - "WGL_I3D_genlock": 2, - "WGL_GENLOCK_SOURCE_MULTIVIEW_I3D": 1, - "WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D": 1, - "WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D": 1, - "WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D": 1, - "WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D": 1, - "WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D": 1, - "WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D": 1, - "WGL_GENLOCK_SOURCE_EDGE_RISING_I3D": 1, - "WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D": 1, - "PFNWGLDISABLEGENLOCKI3DPROC": 2, - "PFNWGLENABLEGENLOCKI3DPROC": 2, - "PFNWGLGENLOCKSAMPLERATEI3DPROC": 2, - "uRate": 2, - "PFNWGLGENLOCKSOURCEDELAYI3DPROC": 2, - "uDelay": 2, - "PFNWGLGENLOCKSOURCEEDGEI3DPROC": 2, - "uEdge": 2, - "PFNWGLGENLOCKSOURCEI3DPROC": 2, - "uSource": 2, - "PFNWGLGETGENLOCKSAMPLERATEI3DPROC": 2, - "PFNWGLGETGENLOCKSOURCEDELAYI3DPROC": 2, - "PFNWGLGETGENLOCKSOURCEEDGEI3DPROC": 2, - "PFNWGLGETGENLOCKSOURCEI3DPROC": 2, - "PFNWGLISENABLEDGENLOCKI3DPROC": 2, - "BOOL*": 3, - "pFlag": 3, - "PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC": 2, - "uMaxLineDelay": 1, - "*uMaxPixelDelay": 1, - "wglDisableGenlockI3D": 1, - "__wglewDisableGenlockI3D": 2, - "wglEnableGenlockI3D": 1, - "__wglewEnableGenlockI3D": 2, - "wglGenlockSampleRateI3D": 1, - "__wglewGenlockSampleRateI3D": 2, - "wglGenlockSourceDelayI3D": 1, - "__wglewGenlockSourceDelayI3D": 2, - "wglGenlockSourceEdgeI3D": 1, - "__wglewGenlockSourceEdgeI3D": 2, - "wglGenlockSourceI3D": 1, - "__wglewGenlockSourceI3D": 2, - "wglGetGenlockSampleRateI3D": 1, - "__wglewGetGenlockSampleRateI3D": 2, - "wglGetGenlockSourceDelayI3D": 1, - "__wglewGetGenlockSourceDelayI3D": 2, - "wglGetGenlockSourceEdgeI3D": 1, - "__wglewGetGenlockSourceEdgeI3D": 2, - "wglGetGenlockSourceI3D": 1, - "__wglewGetGenlockSourceI3D": 2, - "wglIsEnabledGenlockI3D": 1, - "__wglewIsEnabledGenlockI3D": 2, - "wglQueryGenlockMaxSourceDelayI3D": 1, - "__wglewQueryGenlockMaxSourceDelayI3D": 2, - "WGLEW_I3D_genlock": 1, - "__WGLEW_I3D_genlock": 2, - "WGL_I3D_image_buffer": 2, - "WGL_IMAGE_BUFFER_MIN_ACCESS_I3D": 1, - "WGL_IMAGE_BUFFER_LOCK_I3D": 1, - "PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC": 2, - "HANDLE*": 3, - "pEvent": 1, - "LPVOID": 3, - "*pAddress": 1, - "DWORD": 5, - "*pSize": 1, - "PFNWGLCREATEIMAGEBUFFERI3DPROC": 2, - "dwSize": 1, - "uFlags": 1, - "PFNWGLDESTROYIMAGEBUFFERI3DPROC": 2, - "pAddress": 2, - "PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC": 2, - "LPVOID*": 1, - "wglAssociateImageBufferEventsI3D": 1, - "__wglewAssociateImageBufferEventsI3D": 2, - "wglCreateImageBufferI3D": 1, - "__wglewCreateImageBufferI3D": 2, - "wglDestroyImageBufferI3D": 1, - "__wglewDestroyImageBufferI3D": 2, - "wglReleaseImageBufferEventsI3D": 1, - "__wglewReleaseImageBufferEventsI3D": 2, - "WGLEW_I3D_image_buffer": 1, - "__WGLEW_I3D_image_buffer": 2, - "WGL_I3D_swap_frame_lock": 2, - "PFNWGLDISABLEFRAMELOCKI3DPROC": 2, - "PFNWGLENABLEFRAMELOCKI3DPROC": 2, - "PFNWGLISENABLEDFRAMELOCKI3DPROC": 2, - "PFNWGLQUERYFRAMELOCKMASTERI3DPROC": 2, - "wglDisableFrameLockI3D": 1, - "__wglewDisableFrameLockI3D": 2, - "wglEnableFrameLockI3D": 1, - "__wglewEnableFrameLockI3D": 2, - "wglIsEnabledFrameLockI3D": 1, - "__wglewIsEnabledFrameLockI3D": 2, - "wglQueryFrameLockMasterI3D": 1, - "__wglewQueryFrameLockMasterI3D": 2, - "WGLEW_I3D_swap_frame_lock": 1, - "__WGLEW_I3D_swap_frame_lock": 2, - "WGL_I3D_swap_frame_usage": 2, - "PFNWGLBEGINFRAMETRACKINGI3DPROC": 2, - "PFNWGLENDFRAMETRACKINGI3DPROC": 2, - "PFNWGLGETFRAMEUSAGEI3DPROC": 2, - "float*": 1, - "pUsage": 1, - "PFNWGLQUERYFRAMETRACKINGI3DPROC": 2, - "DWORD*": 1, - "pFrameCount": 1, - "*pMissedFrames": 1, - "*pLastMissedUsage": 1, - "wglBeginFrameTrackingI3D": 1, - "__wglewBeginFrameTrackingI3D": 2, - "wglEndFrameTrackingI3D": 1, - "__wglewEndFrameTrackingI3D": 2, - "wglGetFrameUsageI3D": 1, - "__wglewGetFrameUsageI3D": 2, - "wglQueryFrameTrackingI3D": 1, - "__wglewQueryFrameTrackingI3D": 2, - "WGLEW_I3D_swap_frame_usage": 1, - "__WGLEW_I3D_swap_frame_usage": 2, - "WGL_NV_DX_interop": 2, - "WGL_ACCESS_READ_ONLY_NV": 1, - "WGL_ACCESS_READ_WRITE_NV": 1, - "WGL_ACCESS_WRITE_DISCARD_NV": 1, - "PFNWGLDXCLOSEDEVICENVPROC": 2, - "hDevice": 9, - "PFNWGLDXLOCKOBJECTSNVPROC": 2, - "hObjects": 2, - "PFNWGLDXOBJECTACCESSNVPROC": 2, - "hObject": 2, - "access": 2, - "PFNWGLDXOPENDEVICENVPROC": 2, - "dxDevice": 1, - "PFNWGLDXREGISTEROBJECTNVPROC": 2, - "dxObject": 2, - "PFNWGLDXSETRESOURCESHAREHANDLENVPROC": 2, - "shareHandle": 1, - "PFNWGLDXUNLOCKOBJECTSNVPROC": 2, - "PFNWGLDXUNREGISTEROBJECTNVPROC": 2, - "wglDXCloseDeviceNV": 1, - "__wglewDXCloseDeviceNV": 2, - "wglDXLockObjectsNV": 1, - "__wglewDXLockObjectsNV": 2, - "wglDXObjectAccessNV": 1, - "__wglewDXObjectAccessNV": 2, - "wglDXOpenDeviceNV": 1, - "__wglewDXOpenDeviceNV": 2, - "wglDXRegisterObjectNV": 1, - "__wglewDXRegisterObjectNV": 2, - "wglDXSetResourceShareHandleNV": 1, - "__wglewDXSetResourceShareHandleNV": 2, - "wglDXUnlockObjectsNV": 1, - "__wglewDXUnlockObjectsNV": 2, - "wglDXUnregisterObjectNV": 1, - "__wglewDXUnregisterObjectNV": 2, - "WGLEW_NV_DX_interop": 1, - "__WGLEW_NV_DX_interop": 2, - "WGL_NV_copy_image": 2, - "PFNWGLCOPYIMAGESUBDATANVPROC": 2, - "hSrcRC": 1, - "srcName": 1, - "srcTarget": 1, - "srcLevel": 1, - "srcX": 1, - "srcY": 1, - "srcZ": 1, - "hDstRC": 1, - "dstName": 1, - "dstTarget": 1, - "dstLevel": 1, - "dstX": 1, - "dstY": 1, - "dstZ": 1, - "GLsizei": 4, - "wglCopyImageSubDataNV": 1, - "__wglewCopyImageSubDataNV": 2, - "WGLEW_NV_copy_image": 1, - "__WGLEW_NV_copy_image": 2, - "WGL_NV_float_buffer": 2, - "WGL_FLOAT_COMPONENTS_NV": 1, - "B0": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV": 1, - "B1": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV": 1, - "B2": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV": 1, - "B3": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV": 1, - "B4": 1, - "WGL_TEXTURE_FLOAT_R_NV": 1, - "B5": 1, - "WGL_TEXTURE_FLOAT_RG_NV": 1, - "B6": 1, - "WGL_TEXTURE_FLOAT_RGB_NV": 1, - "B7": 1, - "WGL_TEXTURE_FLOAT_RGBA_NV": 1, - "B8": 1, - "WGLEW_NV_float_buffer": 1, - "__WGLEW_NV_float_buffer": 2, - "WGL_NV_gpu_affinity": 2, - "WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV": 1, - "D0": 1, - "WGL_ERROR_MISSING_AFFINITY_MASK_NV": 1, - "D1": 1, - "HGPUNV": 5, - "_GPU_DEVICE": 1, - "cb": 1, - "CHAR": 2, - "DeviceName": 1, - "DeviceString": 1, - "Flags": 1, - "RECT": 1, - "rcVirtualScreen": 1, - "GPU_DEVICE": 1, - "*PGPU_DEVICE": 1, - "PFNWGLCREATEAFFINITYDCNVPROC": 2, - "*phGpuList": 1, - "PFNWGLDELETEDCNVPROC": 2, - "PFNWGLENUMGPUDEVICESNVPROC": 2, - "hGpu": 1, - "iDeviceIndex": 1, - "PGPU_DEVICE": 1, - "lpGpuDevice": 1, - "PFNWGLENUMGPUSFROMAFFINITYDCNVPROC": 2, - "hAffinityDC": 1, - "iGpuIndex": 2, - "*hGpu": 1, - "PFNWGLENUMGPUSNVPROC": 2, - "*phGpu": 1, - "wglCreateAffinityDCNV": 1, - "__wglewCreateAffinityDCNV": 2, - "wglDeleteDCNV": 1, - "__wglewDeleteDCNV": 2, - "wglEnumGpuDevicesNV": 1, - "__wglewEnumGpuDevicesNV": 2, - "wglEnumGpusFromAffinityDCNV": 1, - "__wglewEnumGpusFromAffinityDCNV": 2, - "wglEnumGpusNV": 1, - "__wglewEnumGpusNV": 2, - "WGLEW_NV_gpu_affinity": 1, - "__WGLEW_NV_gpu_affinity": 2, - "WGL_NV_multisample_coverage": 2, - "WGL_COVERAGE_SAMPLES_NV": 1, - "WGL_COLOR_SAMPLES_NV": 1, - "B9": 1, - "WGLEW_NV_multisample_coverage": 1, - "__WGLEW_NV_multisample_coverage": 2, - "WGL_NV_present_video": 2, - "WGL_NUM_VIDEO_SLOTS_NV": 1, - "F0": 1, - "HVIDEOOUTPUTDEVICENV": 2, - "PFNWGLBINDVIDEODEVICENVPROC": 2, - "hDc": 6, - "uVideoSlot": 2, - "hVideoDevice": 4, - "PFNWGLENUMERATEVIDEODEVICESNVPROC": 2, - "HVIDEOOUTPUTDEVICENV*": 1, - "phDeviceList": 2, - "PFNWGLQUERYCURRENTCONTEXTNVPROC": 2, - "wglBindVideoDeviceNV": 1, - "__wglewBindVideoDeviceNV": 2, - "wglEnumerateVideoDevicesNV": 1, - "__wglewEnumerateVideoDevicesNV": 2, - "wglQueryCurrentContextNV": 1, - "__wglewQueryCurrentContextNV": 2, - "WGLEW_NV_present_video": 1, - "__WGLEW_NV_present_video": 2, - "WGL_NV_render_depth_texture": 2, - "WGL_BIND_TO_TEXTURE_DEPTH_NV": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV": 1, - "WGL_DEPTH_TEXTURE_FORMAT_NV": 1, - "WGL_TEXTURE_DEPTH_COMPONENT_NV": 1, - "WGL_DEPTH_COMPONENT_NV": 1, - "WGLEW_NV_render_depth_texture": 1, - "__WGLEW_NV_render_depth_texture": 2, - "WGL_NV_render_texture_rectangle": 2, - "WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV": 1, - "A1": 1, - "WGL_TEXTURE_RECTANGLE_NV": 1, - "WGLEW_NV_render_texture_rectangle": 1, - "__WGLEW_NV_render_texture_rectangle": 2, - "WGL_NV_swap_group": 2, - "PFNWGLBINDSWAPBARRIERNVPROC": 2, - "group": 3, - "barrier": 1, - "PFNWGLJOINSWAPGROUPNVPROC": 2, - "PFNWGLQUERYFRAMECOUNTNVPROC": 2, - "GLuint*": 3, - "PFNWGLQUERYMAXSWAPGROUPSNVPROC": 2, - "maxGroups": 1, - "*maxBarriers": 1, - "PFNWGLQUERYSWAPGROUPNVPROC": 2, - "*barrier": 1, - "PFNWGLRESETFRAMECOUNTNVPROC": 2, - "wglBindSwapBarrierNV": 1, - "__wglewBindSwapBarrierNV": 2, - "wglJoinSwapGroupNV": 1, - "__wglewJoinSwapGroupNV": 2, - "wglQueryFrameCountNV": 1, - "__wglewQueryFrameCountNV": 2, - "wglQueryMaxSwapGroupsNV": 1, - "__wglewQueryMaxSwapGroupsNV": 2, - "wglQuerySwapGroupNV": 1, - "__wglewQuerySwapGroupNV": 2, - "wglResetFrameCountNV": 1, - "__wglewResetFrameCountNV": 2, - "WGLEW_NV_swap_group": 1, - "__WGLEW_NV_swap_group": 2, - "WGL_NV_vertex_array_range": 2, - "PFNWGLALLOCATEMEMORYNVPROC": 2, - "GLfloat": 3, - "readFrequency": 1, - "writeFrequency": 1, - "priority": 1, - "PFNWGLFREEMEMORYNVPROC": 2, - "*pointer": 1, - "wglAllocateMemoryNV": 1, - "__wglewAllocateMemoryNV": 2, - "wglFreeMemoryNV": 1, - "__wglewFreeMemoryNV": 2, - "WGLEW_NV_vertex_array_range": 1, - "__WGLEW_NV_vertex_array_range": 2, - "WGL_NV_video_capture": 2, - "WGL_UNIQUE_ID_NV": 1, - "CE": 1, - "WGL_NUM_VIDEO_CAPTURE_SLOTS_NV": 1, - "CF": 1, - "HVIDEOINPUTDEVICENV": 5, - "PFNWGLBINDVIDEOCAPTUREDEVICENVPROC": 2, - "PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC": 2, - "HVIDEOINPUTDEVICENV*": 1, - "PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC": 2, - "PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC": 2, - "PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC": 2, - "wglBindVideoCaptureDeviceNV": 1, - "__wglewBindVideoCaptureDeviceNV": 2, - "wglEnumerateVideoCaptureDevicesNV": 1, - "__wglewEnumerateVideoCaptureDevicesNV": 2, - "wglLockVideoCaptureDeviceNV": 1, - "__wglewLockVideoCaptureDeviceNV": 2, - "wglQueryVideoCaptureDeviceNV": 1, - "__wglewQueryVideoCaptureDeviceNV": 2, - "wglReleaseVideoCaptureDeviceNV": 1, - "__wglewReleaseVideoCaptureDeviceNV": 2, - "WGLEW_NV_video_capture": 1, - "__WGLEW_NV_video_capture": 2, - "WGL_NV_video_output": 2, - "WGL_BIND_TO_VIDEO_RGB_NV": 1, - "WGL_BIND_TO_VIDEO_RGBA_NV": 1, - "C1": 1, - "WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV": 1, - "C2": 1, - "WGL_VIDEO_OUT_COLOR_NV": 1, - "C3": 1, - "WGL_VIDEO_OUT_ALPHA_NV": 1, - "C4": 1, - "WGL_VIDEO_OUT_DEPTH_NV": 1, - "C5": 1, - "WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV": 1, - "C6": 1, - "WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV": 1, - "C7": 1, - "WGL_VIDEO_OUT_FRAME": 1, - "C8": 1, - "WGL_VIDEO_OUT_FIELD_1": 1, - "C9": 1, - "WGL_VIDEO_OUT_FIELD_2": 1, - "CA": 1, - "WGL_VIDEO_OUT_STACKED_FIELDS_1_2": 1, - "CB": 1, - "WGL_VIDEO_OUT_STACKED_FIELDS_2_1": 1, - "CC": 1, - "HPVIDEODEV": 4, - "PFNWGLBINDVIDEOIMAGENVPROC": 2, - "iVideoBuffer": 2, - "PFNWGLGETVIDEODEVICENVPROC": 2, - "numDevices": 1, - "HPVIDEODEV*": 1, - "PFNWGLGETVIDEOINFONVPROC": 2, - "hpVideoDevice": 1, - "long*": 2, - "pulCounterOutputPbuffer": 1, - "*pulCounterOutputVideo": 1, - "PFNWGLRELEASEVIDEODEVICENVPROC": 2, - "PFNWGLRELEASEVIDEOIMAGENVPROC": 2, - "PFNWGLSENDPBUFFERTOVIDEONVPROC": 2, - "iBufferType": 1, - "pulCounterPbuffer": 1, - "bBlock": 1, - "wglBindVideoImageNV": 1, - "__wglewBindVideoImageNV": 2, - "wglGetVideoDeviceNV": 1, - "__wglewGetVideoDeviceNV": 2, - "wglGetVideoInfoNV": 1, - "__wglewGetVideoInfoNV": 2, - "wglReleaseVideoDeviceNV": 1, - "__wglewReleaseVideoDeviceNV": 2, - "wglReleaseVideoImageNV": 1, - "__wglewReleaseVideoImageNV": 2, - "wglSendPbufferToVideoNV": 1, - "__wglewSendPbufferToVideoNV": 2, - "WGLEW_NV_video_output": 1, - "__WGLEW_NV_video_output": 2, - "WGL_OML_sync_control": 2, - "PFNWGLGETMSCRATEOMLPROC": 2, - "INT32*": 1, - "numerator": 1, - "INT32": 1, - "*denominator": 1, - "PFNWGLGETSYNCVALUESOMLPROC": 2, - "INT64*": 3, - "INT64": 18, - "*msc": 3, - "*sbc": 3, - "PFNWGLSWAPBUFFERSMSCOMLPROC": 2, - "target_msc": 3, - "divisor": 3, - "remainder": 3, - "PFNWGLSWAPLAYERBUFFERSMSCOMLPROC": 2, - "fuPlanes": 1, - "PFNWGLWAITFORMSCOMLPROC": 2, - "PFNWGLWAITFORSBCOMLPROC": 2, - "target_sbc": 1, - "wglGetMscRateOML": 1, - "__wglewGetMscRateOML": 2, - "wglGetSyncValuesOML": 1, - "__wglewGetSyncValuesOML": 2, - "wglSwapBuffersMscOML": 1, - "__wglewSwapBuffersMscOML": 2, - "wglSwapLayerBuffersMscOML": 1, - "__wglewSwapLayerBuffersMscOML": 2, - "wglWaitForMscOML": 1, - "__wglewWaitForMscOML": 2, - "wglWaitForSbcOML": 1, - "__wglewWaitForSbcOML": 2, - "WGLEW_OML_sync_control": 1, - "__WGLEW_OML_sync_control": 2, - "GLEW_MX": 4, - "WGLEW_EXPORT": 167, - "GLEWAPI": 6, - "WGLEWContextStruct": 2, - "WGLEWContext": 1, - "wglewContextInit": 2, - "WGLEWContext*": 2, - "wglewContextIsSupported": 2, - "wglewInit": 1, - "wglewGetContext": 4, - "wglewIsSupported": 2, - "wglewGetExtension": 1, - "yajl_status_to_string": 1, - "yajl_status": 4, - "statStr": 6, - "yajl_status_ok": 1, - "yajl_status_client_canceled": 1, - "yajl_status_insufficient_data": 1, - "yajl_status_error": 1, - "yajl_handle": 10, - "yajl_alloc": 1, - "yajl_callbacks": 1, - "callbacks": 3, - "yajl_parser_config": 1, - "config": 4, - "yajl_alloc_funcs": 3, - "afs": 8, - "allowComments": 4, - "validateUTF8": 3, - "hand": 28, - "afsBuffer": 3, - "realloc": 1, - "yajl_set_default_alloc_funcs": 1, - "YA_MALLOC": 1, - "yajl_handle_t": 1, - "alloc": 6, - "checkUTF8": 1, - "lexer": 4, - "yajl_lex_alloc": 1, - "bytesConsumed": 2, - "decodeBuf": 2, - "yajl_buf_alloc": 1, - "yajl_bs_init": 1, - "stateStack": 3, - "yajl_bs_push": 1, - "yajl_state_start": 1, - "yajl_reset_parser": 1, - "yajl_lex_realloc": 1, - "yajl_free": 1, - "yajl_bs_free": 1, - "yajl_buf_free": 1, - "yajl_lex_free": 1, - "YA_FREE": 2, - "yajl_parse": 2, - "jsonText": 4, - "jsonTextLen": 4, - "yajl_do_parse": 1, - "yajl_parse_complete": 1, - "yajl_get_error": 1, - "verbose": 2, - "yajl_render_error_string": 1, - "yajl_get_bytes_consumed": 1, - "yajl_free_error": 1 - }, - "C#": { - "@": 1, - "{": 5, - "ViewBag.Title": 1, - ";": 8, - "}": 5, - "@section": 1, - "featured": 1, - "
": 1, - "class=": 7, - "
": 1, - "
": 1, - "

": 1, - "@ViewBag.Title.": 1, - "

": 1, - "

": 1, - "@ViewBag.Message": 1, - "

": 1, - "
": 1, - "

": 1, - "To": 1, - "learn": 1, - "more": 4, - "about": 2, - "ASP.NET": 5, - "MVC": 4, - "visit": 2, - "": 5, - "href=": 5, - "title=": 2, - "http": 1, - "//asp.net/mvc": 1, - "": 5, - ".": 2, - "The": 1, - "page": 1, - "features": 3, - "": 1, - "videos": 1, - "tutorials": 1, - "and": 6, - "samples": 1, - "": 1, - "to": 4, - "help": 1, - "you": 4, - "get": 1, - "the": 5, - "most": 1, - "from": 1, - "MVC.": 1, + "flag": 4, + "then": 5, + "[": 16, + "]": 15, + "does": 5, + "dodoes_code": 1, + "over": 5, + "code": 3, + "r": 18, + "begin": 2, + "dest": 5, + "while": 2, + "x": 10, + "repeat": 2, + "until": 1, + "recurse": 1, + "compile": 2, + "pad": 3, + "addr": 11, + "parse": 5, + "n": 22, + "<": 14, + "r@": 2, + "TODO": 12, "If": 1, - "have": 1, - "any": 1, - "questions": 1, - "our": 1, - "forums": 1, - "

": 1, - "
": 1, - "
": 1, - "

": 1, - "We": 1, - "suggest": 1, + "necessary": 1, + "refill": 2, + "and": 3, + "keep": 1, + "parsing.": 1, + "string": 3, + "allot": 2, + "align": 2, + "cmove": 1, + "s": 4, + "state": 2, + "...": 4, + "R": 13, + "cr": 3, + "type": 3, + "abort": 3, + "": 1, + "Undefined": 1, + "ok": 1, + "HELLO": 4, + ".": 5, + "*": 9, + "forth": 2, + "Tools": 2, + "words.": 6, + ".s": 1, + "emit": 2, + "depth": 1, + "traverse": 1, + "dictionary": 1, + "extension": 4, + "assembler": 1, + "kernel": 1, + "bye": 1, + "cs": 2, + "pick": 1, + "roll": 1, + "editor": 1, + "forget": 1, + "reveal": 1, + "Kernel": 4, + "Forth2012": 2, + "tools": 1, + "nr": 1, + "synonym": 1, + "undefined": 2, + "defined": 1, + "invert": 1, + "/cell": 2, + "cell": 2, + "tuck": 2, + "rot": 2, + "Block": 2, + "variable": 3, + "blk": 3, + "current": 5, + "block": 8, + "buffer": 2, + "evaluate": 1, + "extended": 3, + "semantics": 3, + "flush": 1, + "load": 2, + "save": 2, + "input": 2, + "#source": 2, + "interpret": 1, + "restore": 1, + "buffers": 2, + "update": 1, + "empty": 2, + "scr": 2, + "list": 1, + "bounds": 1, + "do": 2, + "i": 5, + "loop": 4, + "thru": 1, + "y": 5, + "#tib": 2, + ".r": 1, + "x1": 5, + "x2": 5, + "noname": 1, + "SP": 1, + "query": 1, + "tib": 1, + "body": 1, + "true": 1, + "u.r": 1, + "u": 3, + "false": 1, + "unused": 1, + "value": 1, + "create": 2, + "within": 1, + "core": 1, + "action": 1, + "of": 3, + "defer": 2, + "name": 1, + "KataDiversion": 1, + "Forth": 1, + "utils": 1, + "the": 7, + "stack": 3, + "EMPTY": 1, + "DEPTH": 2, + "IF": 10, + "BEGIN": 3, + "DROP": 5, + "UNTIL": 3, + "THEN": 10, + "power": 2, + "**": 2, + "n1_pow_n2": 1, + "SWAP": 8, + "DUP": 14, + "DO": 2, + "OVER": 2, + "LOOP": 2, + "NIP": 4, + "compute": 1, + "highest": 1, + "below": 1, + "N.": 1, + "e.g.": 2, + "MAXPOW2": 2, + "log2_n": 1, + "ABORT": 1, + "ELSE": 7, + "|": 4, + "I": 5, + "i*2": 1, + "/": 3, + "kata": 1, + "test": 1, + "given": 3, + "N": 6, + "has": 1, + "two": 2, + "adjacent": 2, + "bits": 3, + "NOT": 3, + "TWO": 3, + "ADJACENT": 3, + "BITS": 3, + "bool": 1, + "uses": 1, "following": 1, - "

": 1, - "
    ": 1, - "
  1. ": 3, - "
    ": 3, + "algorithm": 1, + "return": 5, + "A": 5, + "X": 5, + "LOG2": 1, + "end": 1, + "OR": 1, + "INVERT": 1, + "maximum": 1, + "number": 4, + "which": 3, + "can": 2, + "be": 2, + "made": 2, + "with": 2, + "MAX": 2, + "NB": 3, + "m": 2, + "**n": 1, + "numbers": 1, + "or": 1, + "less": 1, + "have": 1, + "not": 1, + "bits.": 1, + "see": 1, + "http": 1, + "//www.codekata.com/2007/01/code_kata_fifte.html": 1, + "HOW": 1, + "MANY": 1 + }, + "Erlang": { + "%": 134, + "For": 1, + "each": 1, + "header": 1, + "file": 6, + "it": 2, + "scans": 1, + "thru": 1, + "all": 1, + "records": 1, + "and": 8, + "create": 1, + "helper": 1, + "functions": 2, + "Helper": 1, + "are": 3, + "setters": 1, + "getters": 1, + "fields": 4, + "fields_atom": 4, + "type": 6, + "-": 262, + "module": 2, + "(": 236, + "record_helper": 1, + ")": 230, + ".": 37, + "export": 2, + "[": 66, + "make/1": 1, + "make/2": 1, + "]": 61, + "make": 3, + "HeaderFiles": 5, + "atom_to_list": 18, + "X": 12, + "||": 6, + "<->": 5, + "hrl": 1, + "relative": 1, + "to": 2, + "current": 1, + "dir": 1, + "OutDir": 4, + "ModuleName": 3, + "HeaderComment": 2, + "ModuleDeclaration": 2, + "+": 214, + "<": 1, + "Src": 10, + "format_src": 8, + "lists": 11, + "sort": 1, + "flatten": 6, + "read": 2, + "generate_type_default_function": 2, + "write_file": 1, + "erl": 1, + "list_to_binary": 1, + "HeaderFile": 4, + "try": 2, + "epp": 1, + "parse_file": 1, + "of": 9, + "{": 109, + "ok": 34, + "Tree": 4, + "}": 109, + "parse": 2, + ";": 56, + "error": 4, + "Error": 4, + "catch": 2, + "_": 52, + "catched_error": 1, + "end.": 3, + "|": 25, + "T": 24, + "when": 29, + "length": 6, + "Type": 3, + "A": 5, + "B": 4, + "NSrc": 4, + "_Type": 1, + "Type1": 2, + "parse_record": 3, + "attribute": 1, + "record": 4, + "RecordInfo": 2, + "RecordName": 41, + "RecordFields": 10, + "if": 1, + "generate_setter_getter_function": 5, + "generate_type_function": 3, + "true": 3, + "generate_fields_function": 2, + "generate_fields_atom_function": 2, + "end": 3, + "parse_field_name": 5, + "record_field": 9, + "atom": 9, + "FieldName": 26, + "field": 4, + "_FieldName": 2, + "ParentRecordName": 8, + "parent_field": 2, + "parse_field_name_atom": 5, + "concat": 5, + "_S": 3, + "F": 16, + "S": 6, + "concat_ext": 4, + "parse_field": 6, + "AccFields": 6, + "AccParentFields": 6, + "case": 3, + "Field": 2, + "PField": 2, + "parse_field_atom": 4, + "zzz": 1, + "Fields": 4, + "field_atom": 1, + "to_setter_getter_function": 5, + "setter": 2, + "getter": 2, + "This": 2, + "is": 1, + "auto": 1, + "generated": 1, + "file.": 1, + "Please": 1, + "don": 1, + "t": 1, + "edit": 1, + "record_utils": 1, + "compile": 2, + "export_all": 1, + "include": 1, + "abstract_message": 21, + "async_message": 12, + "clientId": 5, + "destination": 5, + "messageId": 5, + "timestamp": 5, + "timeToLive": 5, + "headers": 5, + "body": 5, + "correlationId": 5, + "correlationIdBytes": 5, + "get": 12, + "Obj": 49, + "is_record": 25, + "Obj#abstract_message.body": 1, + "Obj#abstract_message.clientId": 1, + "Obj#abstract_message.destination": 1, + "Obj#abstract_message.headers": 1, + "Obj#abstract_message.messageId": 1, + "Obj#abstract_message.timeToLive": 1, + "Obj#abstract_message.timestamp": 1, + "Obj#async_message.correlationId": 1, + "Obj#async_message.correlationIdBytes": 1, + "parent": 5, + "Obj#async_message.parent": 3, + "ParentProperty": 6, + "is_atom": 2, + "set": 13, + "Value": 35, + "NewObj": 20, + "Obj#abstract_message": 7, + "Obj#async_message": 3, + "NewParentObject": 2, + "undefined.": 1, + "SHEBANG#!escript": 3, + "main/1": 1, + "main": 4, + "io": 5, + "format": 7, + "*": 9, + "Mode": 1, + "erlang": 5, + "coding": 1, + "utf": 1, + "tab": 1, + "width": 1, + "c": 2, + "basic": 1, + "offset": 1, + "indent": 1, + "tabs": 1, + "mode": 2, + "BSD": 1, + "LICENSE": 1, + "Copyright": 1, + "Michael": 2, + "Truog": 2, + "": 1, + "at": 1, + "gmail": 1, + "dot": 1, + "com": 1, + "All": 2, + "rights": 1, + "reserved.": 1, + "Redistribution": 1, + "use": 2, + "in": 3, + "source": 2, + "binary": 2, + "forms": 1, + "with": 2, + "or": 3, + "without": 2, + "modification": 1, + "permitted": 1, + "provided": 2, + "that": 1, + "the": 9, + "following": 4, + "conditions": 3, + "met": 1, + "Redistributions": 2, + "code": 2, + "must": 3, + "retain": 1, + "above": 2, + "copyright": 2, + "notice": 2, + "this": 4, + "list": 2, + "disclaimer.": 1, + "form": 1, + "reproduce": 1, + "disclaimer": 1, + "documentation": 1, + "and/or": 1, + "other": 1, + "materials": 2, + "distribution.": 1, + "advertising": 1, + "mentioning": 1, + "features": 1, + "software": 3, + "display": 1, + "acknowledgment": 1, + "product": 1, + "includes": 1, + "developed": 1, + "by": 1, + "The": 1, + "name": 1, + "author": 2, + "may": 1, + "not": 1, + "be": 1, + "used": 1, + "endorse": 1, + "promote": 1, + "products": 1, + "derived": 1, + "from": 1, + "specific": 1, + "prior": 1, + "written": 1, + "permission": 1, + "THIS": 2, + "SOFTWARE": 2, + "IS": 1, + "PROVIDED": 1, + "BY": 1, + "THE": 5, + "COPYRIGHT": 2, + "HOLDERS": 1, + "AND": 4, + "CONTRIBUTORS": 2, + "ANY": 4, + "EXPRESS": 1, + "OR": 8, + "IMPLIED": 2, + "WARRANTIES": 2, + "INCLUDING": 3, + "BUT": 2, + "NOT": 2, + "LIMITED": 2, + "TO": 2, + "OF": 8, + "MERCHANTABILITY": 1, + "FITNESS": 1, + "FOR": 2, + "PARTICULAR": 1, + "PURPOSE": 1, + "ARE": 1, + "DISCLAIMED.": 1, + "IN": 3, + "NO": 1, + "EVENT": 1, + "SHALL": 1, + "OWNER": 1, + "BE": 1, + "LIABLE": 1, + "DIRECT": 1, + "INDIRECT": 1, + "INCIDENTAL": 1, + "SPECIAL": 1, + "EXEMPLARY": 1, + "CONSEQUENTIAL": 1, + "DAMAGES": 1, + "PROCUREMENT": 1, + "SUBSTITUTE": 1, + "GOODS": 1, + "SERVICES": 1, + "LOSS": 1, + "USE": 2, + "DATA": 1, + "PROFITS": 1, + "BUSINESS": 1, + "INTERRUPTION": 1, + "HOWEVER": 1, + "CAUSED": 1, + "ON": 1, + "THEORY": 1, + "LIABILITY": 2, + "WHETHER": 1, + "CONTRACT": 1, + "STRICT": 1, + "TORT": 1, + "NEGLIGENCE": 1, + "OTHERWISE": 1, + "ARISING": 1, + "WAY": 1, + "OUT": 1, + "EVEN": 1, + "IF": 1, + "ADVISED": 1, + "POSSIBILITY": 1, + "SUCH": 1, + "DAMAGE.": 1, + "sys": 2, + "RelToolConfig": 5, + "target_dir": 2, + "TargetDir": 14, + "overlay": 2, + "OverlayConfig": 4, + "consult": 1, + "Spec": 2, + "reltool": 2, + "get_target_spec": 1, + "make_dir": 1, + "eexist": 1, + "exit_code": 3, + "eval_target_spec": 1, + "root_dir": 1, + "process_overlay": 2, + "shell": 3, + "Command": 3, + "Arguments": 3, + "CommandSuffix": 2, + "reverse": 4, + "os": 1, + "cmd": 1, + "io_lib": 2, + "boot_rel_vsn": 2, + "Config": 2, + "_RelToolConfig": 1, + "rel": 2, + "_Name": 1, + "Ver": 1, + "proplists": 1, + "lookup": 1, + "Ver.": 1, + "minimal": 2, + "parsing": 1, + "for": 1, + "handling": 1, + "mustache": 11, + "syntax": 1, + "Body": 2, + "Context": 11, + "Result": 10, + "_Context": 1, + "KeyStr": 6, + "mustache_key": 4, + "C": 4, + "Rest": 10, + "Key": 2, + "list_to_existing_atom": 1, + "dict": 2, + "find": 1, + "support": 1, + "based": 1, + "on": 1, + "rebar": 1, + "overlays": 1, + "BootRelVsn": 2, + "OverlayVars": 2, + "from_list": 1, + "erts_vsn": 1, + "system_info": 1, + "version": 1, + "rel_vsn": 1, + "hostname": 1, + "net_adm": 1, + "localhost": 1, + "BaseDir": 7, + "get_cwd": 1, + "execute_overlay": 6, + "_Vars": 1, + "_BaseDir": 1, + "_TargetDir": 1, + "mkdir": 1, + "Out": 4, + "Vars": 7, + "filename": 3, + "join": 3, + "copy": 1, + "In": 2, + "InFile": 3, + "OutFile": 2, + "filelib": 1, + "is_file": 1, + "ExitCode": 2, + "halt": 2, + "flush": 1, + "smp": 1, + "enable": 1, + "sname": 1, + "factorial": 1, + "mnesia": 1, + "debug": 1, + "verbose": 1, + "String": 2, + "N": 6, + "list_to_integer": 1, + "fac": 4, + "usage": 3 + }, + "Ruby": { + "require": 58, + "module": 8, + "Sinatra": 2, + "class": 7, + "Request": 2, + "<": 2, + "Rack": 1, + "def": 143, + "accept": 1, + "@env": 2, + "[": 56, + "]": 56, + "||": 22, + "begin": 9, + "entries": 1, + ".to_s.split": 1, + "(": 244, + ")": 256, + "entries.map": 1, + "{": 68, + "|": 91, + "e": 8, + "accept_entry": 1, + "}": 68, + ".sort_by": 1, + "&": 31, + "last": 4, + ".map": 6, + "first": 1, + "end": 238, + "preferred_type": 1, + "yield": 5, + "self.defer": 1, + "/": 34, + "do": 37, + "match": 6, + "if": 72, + "keys": 6, + "<<": 15, + "else": 25, + "-": 34, + "#": 100, + "pattern": 1, + "elsif": 7, + "path.respond_to": 5, + "&&": 8, + "path": 16, + "path.keys": 1, + "names": 2, + "path.names": 1, + "raise": 17, + "TypeError": 1, + "URI": 3, + "URI.const_defined": 1, + "Parser": 1, + "Parser.new": 1, + "encoded": 1, + "char": 4, + "enc": 5, + "URI.escape": 1, + "public": 2, + "helpers": 3, + "data": 1, + "reset": 1, + "set": 36, + "environment": 2, + "ENV": 4, + "development": 6, + ".to_sym": 1, + "raise_errors": 1, + "Proc.new": 11, + "test": 5, + "dump_errors": 1, + "show_exceptions": 1, + "sessions": 1, + "false": 26, + "logging": 2, + "protection": 1, + "true": 15, + "method_override": 4, + "use_code": 1, + "default_encoding": 1, + "add_charset": 1, + "%": 10, + "w": 6, + "javascript": 1, + "xml": 2, + "xhtml": 1, + "+": 47, + "json": 1, + "t": 3, + "settings.add_charset": 1, + "text": 3, + "//": 3, + "session_secret": 3, + "SecureRandom.hex": 1, + "rescue": 13, + "LoadError": 3, + "NotImplementedError": 1, + "Kernel.rand": 1, + "**256": 1, + "self": 11, + "alias_method": 2, + "methodoverride": 2, + "run": 2, + "start": 7, + "server": 11, + "via": 1, + "at": 1, + "exit": 2, + "hook": 9, + "running": 2, + "is": 3, + "the": 8, + "built": 1, + "in": 3, + "now": 1, + "http": 1, + "webrick": 1, + "bind": 1, + "port": 4, + "ruby_engine": 6, + "defined": 1, + "RUBY_ENGINE": 2, + "server.unshift": 6, + "ruby_engine.nil": 1, + "absolute_redirects": 1, + "prefixed_redirects": 1, + "empty_path_info": 1, + "nil": 21, + "app_file": 4, + "root": 5, + "File.expand_path": 1, + "File.dirname": 4, + "views": 1, + "File.join": 6, + "reload_templates": 1, + "lock": 1, + "threaded": 1, + "public_folder": 3, + "static": 1, + "File.exist": 1, + "static_cache_control": 1, + "error": 3, + "Exception": 1, + "response.status": 1, + "content_type": 3, + "configure": 2, + "get": 2, + "filename": 2, + "__FILE__": 3, + "png": 1, + "send_file": 1, + "NotFound": 1, + "HTML": 2, + ".gsub": 5, + "": 1, + "html": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "

    ": 1, + "doesn": 1, + "rsquo": 1, + "know": 1, + "this": 2, + "ditty.": 1, + "

    ": 1, + "": 1, + "src=": 1, + "
    ": 1, + "id=": 1, + "Try": 1, + "
    ": 1,
    +      "request.request_method.downcase": 1,
    +      "n": 4,
    +      "nend": 1,
    +      "
    ": 1, + "
    ": 1, + "": 1, + "": 1, + "Application": 2, + "Base": 2, + "super": 3, + "unless": 15, + "self.register": 2, + "extensions": 6, + "block": 30, + "nodoc": 3, + "added_methods": 2, + "extensions.map": 1, + "m": 3, + "m.public_instance_methods": 1, + ".flatten": 1, + "Delegator.delegate": 1, + "Delegator": 1, + "self.delegate": 1, + "methods": 1, + "methods.each": 1, + "method_name": 5, + "define_method": 1, + "*args": 16, + "return": 25, + "args": 5, + "respond_to": 1, + "Delegator.target.send": 1, + "private": 3, + "delegate": 1, + "patch": 3, + "put": 1, + "post": 1, + "delete": 1, + "head": 3, + "options": 3, + "template": 1, + "layout": 1, + "before": 1, + "after": 1, + "not_found": 1, + "mime_type": 1, + "enable": 1, + "disable": 1, + "use": 1, + "production": 1, + "settings": 2, + "attr_accessor": 2, + "target": 1, + "self.target": 1, + "Wrapper": 1, + "initialize": 2, + "stack": 2, + "instance": 2, + "@stack": 1, + "@instance": 2, + "@instance.settings": 1, + "call": 1, + "env": 2, + "@stack.call": 1, + "inspect": 2, + "self.new": 1, + "base": 4, + "Class.new": 2, + "base.class_eval": 1, + "block_given": 5, + "Delegator.target.register": 1, + "self.helpers": 1, + "Delegator.target.helpers": 1, + "self.use": 1, + "Delegator.target.use": 1, + "Grit": 1, + "SHEBANG#!ruby": 2, + "puts": 12, + "ActiveSupport": 1, + "Inflector": 1, + "extend": 2, + "pluralize": 3, + "word": 10, + "apply_inflections": 3, + "inflections.plurals": 1, + "singularize": 2, + "inflections.singulars": 1, + "camelize": 2, + "term": 1, + "uppercase_first_letter": 2, + "string": 4, + "term.to_s": 1, + "string.sub": 2, + "a": 10, + "z": 7, + "d": 6, + "*/": 1, + "inflections.acronyms": 1, + ".capitalize": 1, + "inflections.acronym_regex": 2, + "b": 4, + "A": 5, + "Z_": 1, + ".downcase": 2, + "string.gsub": 1, + "_": 2, + "*": 3, + "/i": 2, + "underscore": 3, + "camel_cased_word": 6, + "camel_cased_word.to_s.dup": 1, + "word.gsub": 4, + "Za": 1, + "Z": 3, + "word.tr": 1, + "word.downcase": 1, + "humanize": 2, + "lower_case_and_underscored_word": 1, + "result": 8, + "lower_case_and_underscored_word.to_s.dup": 1, + "inflections.humans.each": 1, + "rule": 4, + "replacement": 4, + "break": 4, + "result.sub": 2, + "result.gsub": 2, + "/_id": 1, + "result.tr": 1, + "w/": 1, + ".upcase": 1, + "titleize": 1, + "": 1, + "capitalize": 1, + "Create": 1, + "name": 51, + "of": 1, + "table": 2, + "like": 1, + "Rails": 1, + "does": 1, + "for": 1, + "models": 1, + "to": 1, + "This": 1, + "method": 4, + "uses": 1, + "on": 2, + "RawScaledScorer": 1, + "tableize": 2, + "class_name": 2, + "classify": 1, + "table_name": 1, + "table_name.to_s.sub": 1, + "/.*": 1, + "./": 1, + "dasherize": 1, + "underscored_word": 1, + "underscored_word.tr": 1, + "demodulize": 1, + "path.to_s": 3, + "i": 2, + "path.rindex": 2, + "..": 1, + "deconstantize": 1, + "implementation": 1, + "based": 1, + "one": 1, + "facets": 1, + "id": 1, + "outside": 2, + "inside": 2, + "s": 2, + "owned": 1, + "constant": 4, + "constant.ancestors.inject": 1, + "const": 3, + "ancestor": 3, + "Object": 1, + "ancestor.const_defined": 1, + "constant.const_get": 1, + "safe_constantize": 1, + "constantize": 1, + "NameError": 2, + "e.message": 2, + "uninitialized": 1, + "wrong": 1, + "const_regexp": 3, + "e.name.to_s": 1, + "camel_cased_word.to_s": 1, + "ArgumentError": 1, + "/not": 1, + "missing": 1, + "ordinal": 1, + "number": 2, + ".include": 1, + "number.to_i.abs": 2, + "case": 5, + "when": 11, + "ordinalize": 1, + "parts": 1, + "camel_cased_word.split": 1, + "parts.pop": 1, + "parts.reverse.inject": 1, + "acc": 2, + "part": 1, + "part.empty": 1, + "rules": 1, + "word.to_s.dup": 1, + "word.empty": 1, + "inflections.uncountables.include": 1, + "result.downcase": 1, + "Z/": 1, + "rules.each": 1, + "SHEBANG#!rake": 1, + "task": 2, + "default": 2, + "Resque": 3, + "include": 3, + "Helpers": 1, + "redis": 7, + "String": 2, + "/redis": 1, + "Redis.connect": 2, + "url": 12, + "thread_safe": 2, + "namespace": 3, + "server.split": 2, + "host": 3, + "db": 3, + "Redis.new": 1, + "resque": 2, + "@redis": 6, + "Redis": 3, + "Namespace.new": 2, + "Namespace": 1, + "@queues": 2, + "Hash.new": 1, + "h": 2, + "Queue.new": 1, + "coder": 3, + "@coder": 1, + "MultiJsonCoder.new": 1, + "attr_writer": 4, + "self.redis": 2, + "Redis.respond_to": 1, + "connect": 1, + "redis_id": 2, + "redis.respond_to": 2, + "redis.server": 1, + "nodes": 1, + "distributed": 1, + "redis.nodes.map": 1, + "n.id": 1, + ".join": 1, + "redis.client.id": 1, + "before_first_fork": 2, + "@before_first_fork": 2, + "before_fork": 2, + "@before_fork": 2, + "after_fork": 2, + "@after_fork": 2, + "to_s": 1, + "inline": 3, + "alias": 1, + "push": 1, + "queue": 24, + "item": 4, + "pop": 1, + ".pop": 1, + "ThreadError": 1, + ".size": 1, + "peek": 1, + "count": 5, + ".slice": 1, + "list_range": 1, + "key": 8, + "decode": 2, + "redis.lindex": 1, + "Array": 2, + "redis.lrange": 1, + "queues": 3, + "redis.smembers": 1, + "remove_queue": 1, + ".destroy": 1, + "@queues.delete": 1, + "queue.to_s": 1, + "name.to_s": 3, + "enqueue": 1, + "klass": 16, + "enqueue_to": 2, + "queue_from_class": 4, + "before_hooks": 2, + "Plugin.before_enqueue_hooks": 1, + ".collect": 2, + "klass.send": 4, + "before_hooks.any": 2, + "Job.create": 1, + "Plugin.after_enqueue_hooks": 1, + ".each": 4, + "dequeue": 1, + "Plugin.before_dequeue_hooks": 1, + "Job.destroy": 1, + "Plugin.after_dequeue_hooks": 1, + "klass.instance_variable_get": 1, + "@queue": 1, + "klass.respond_to": 1, + "and": 6, + "klass.queue": 1, + "reserve": 1, + "Job.reserve": 1, + "validate": 1, + "NoQueueError.new": 1, + "klass.to_s.empty": 1, + "NoClassError.new": 1, + "workers": 2, + "Worker.all": 1, + "working": 2, + "Worker.working": 1, + "remove_worker": 1, + "worker_id": 2, + "worker": 1, + "Worker.find": 1, + "worker.unregister_worker": 1, + "info": 2, + "pending": 1, + "queues.inject": 1, + "k": 2, + "processed": 2, + "Stat": 2, + "queues.size": 1, + "workers.size.to_i": 1, + "working.size": 1, + "failed": 3, + "servers": 1, + "redis.keys": 1, + "key.sub": 1, + "Formula": 2, + "FileUtils": 1, + "attr_reader": 5, + "version": 10, + "homepage": 2, + "specs": 14, + "downloader": 6, + "standard": 2, + "unstable": 2, + "bottle_version": 2, + "bottle_url": 3, + "bottle_sha1": 2, + "buildpath": 1, + "set_instance_variable": 12, + "@head": 4, + "not": 3, + "@url": 8, + "or": 7, + "ARGV.build_head": 2, + "@version": 10, + "@spec_to_use": 4, + "@unstable": 2, + "@standard.nil": 1, + "SoftwareSpecification.new": 3, + "@specs": 3, + "@standard": 3, + "@url.nil": 1, + "@name": 3, + "validate_variable": 7, + "@path": 1, + "path.nil": 1, + "self.class.path": 1, + "Pathname.new": 3, + "@spec_to_use.detect_version": 1, + "CHECKSUM_TYPES.each": 1, + "type": 10, + "@downloader": 2, + "download_strategy.new": 2, + "@spec_to_use.url": 1, + "@spec_to_use.specs": 1, + "@bottle_url": 2, + "bottle_base_url": 1, + "bottle_filename": 1, + "@bottle_sha1": 2, + "installed": 2, + "installed_prefix.children.length": 1, + "explicitly_requested": 1, + "ARGV.named.empty": 1, + "ARGV.formulae.include": 1, + "linked_keg": 1, + "HOMEBREW_REPOSITORY/": 2, + "/@name": 1, + "installed_prefix": 1, + "head_prefix": 2, + "HOMEBREW_CELLAR": 2, + "head_prefix.directory": 1, + "prefix": 14, + "rack": 1, + "prefix.parent": 1, + "bin": 1, + "doc": 1, + "lib": 1, + "libexec": 1, + "man": 9, + "man1": 1, + "man2": 1, + "man3": 1, + "man4": 1, + "man5": 1, + "man6": 1, + "man7": 1, + "man8": 1, + "sbin": 1, + "share": 1, + "etc": 1, + "HOMEBREW_PREFIX": 2, + "var": 1, + "plist_name": 2, + "plist_path": 1, + "download_strategy": 1, + "@spec_to_use.download_strategy": 1, + "cached_download": 1, + "@downloader.cached_location": 1, + "caveats": 1, + "patches": 2, + "keg_only": 2, + "self.class.keg_only_reason": 1, + "fails_with": 2, + "cc": 3, + "self.class.cc_failures.nil": 1, + "Compiler.new": 1, + "cc.is_a": 1, + "Compiler": 1, + "self.class.cc_failures.find": 1, + "failure": 1, + "next": 1, + "failure.compiler": 1, + "cc.name": 1, + "failure.build.zero": 1, + "failure.build": 1, + "cc.build": 1, + "skip_clean": 2, + "self.class.skip_clean_all": 1, + "to_check": 2, + "path.relative_path_from": 1, + ".to_s": 3, + "self.class.skip_clean_paths.include": 1, + "brew": 2, + "stage": 2, + "Interrupt": 2, + "RuntimeError": 1, + "SystemCallError": 1, + "don": 1, + "config.log": 2, + "std_autotools": 1, + "variant": 1, + "because": 1, + "autotools": 1, + "lot": 1, + "std_cmake_args": 1, + "W": 1, + "DCMAKE_INSTALL_PREFIX": 1, + "DCMAKE_BUILD_TYPE": 1, + "None": 1, + "DCMAKE_FIND_FRAMEWORK": 1, + "LAST": 1, + "Wno": 1, + "dev": 1, + "self.class_s": 2, + "#remove": 1, + "invalid": 1, + "characters": 1, + "then": 4, + "camelcase": 1, + "it": 1, + "name.capitalize.gsub": 1, + "_.": 1, + "zA": 1, + "Z0": 1, + "upcase": 1, + "self.names": 1, + "Dir": 4, + "f": 11, + "File.basename": 2, + ".sort": 2, + "self.all": 1, + "map": 1, + "self.map": 1, + "rv": 3, + "each": 1, + "self.each": 1, + "names.each": 1, + "Formula.factory": 2, + "onoe": 2, + "self.aliases": 1, + "self.canonical_name": 1, + "name.kind_of": 2, + "Pathname": 2, + "formula_with_that_name": 1, + "HOMEBREW_REPOSITORY": 4, + "possible_alias": 1, + "possible_cached_formula": 1, + "HOMEBREW_CACHE_FORMULA": 2, + "name.include": 2, + "r": 3, + ".": 3, + "tapd": 1, + "tapd.find_formula": 1, + "relative_pathname": 1, + "relative_pathname.stem.to_s": 1, + "tapd.directory": 1, + "formula_with_that_name.file": 1, + "formula_with_that_name.readable": 1, + "possible_alias.file": 1, + "possible_alias.realpath.basename": 1, + "possible_cached_formula.file": 1, + "possible_cached_formula.to_s": 1, + "self.factory": 1, + "https": 1, + "ftp": 1, + ".basename": 1, + "target_file": 6, + "name.basename": 1, + "HOMEBREW_CACHE_FORMULA.mkpath": 1, + "FileUtils.rm": 1, + "force": 1, + "curl": 1, + "install_type": 4, + "from_url": 1, + "Formula.canonical_name": 1, + ".rb": 1, + "path.stem": 1, + "from_path": 1, + "Formula.path": 1, + "from_name": 2, + "klass_name": 2, + "Object.const_get": 1, + "klass.new": 2, + "FormulaUnavailableError.new": 1, + "tap": 1, + "path.realpath.to_s": 1, + "/Library/Taps/": 1, + "self.path": 1, + "mirrors": 4, + "self.class.mirrors": 1, + "deps": 1, + "self.class.dependencies.deps": 1, + "external_deps": 1, + "self.class.dependencies.external_deps": 1, + "recursive_deps": 1, + "Formula.expand_deps": 1, + ".flatten.uniq": 1, + "self.expand_deps": 1, + "f.deps.map": 1, + "dep": 3, + "f_dep": 3, + "dep.to_s": 1, + "expand_deps": 1, + "protected": 1, + "system": 1, + "cmd": 6, + "pretty_args": 1, + "args.dup": 1, + "pretty_args.delete": 1, + "ARGV.verbose": 2, + "ohai": 3, + ".strip": 1, + "removed_ENV_variables": 2, + "args.empty": 1, + "cmd.split": 1, + ".first": 1, + "ENV.remove_cc_etc": 1, + "safe_system": 4, + "rd": 1, + "wr": 3, + "IO.pipe": 1, + "pid": 1, + "fork": 1, + "rd.close": 1, + "stdout.reopen": 1, + "stderr.reopen": 1, + "args.collect": 1, + "arg": 1, + "arg.to_s": 1, + "exec": 2, + "never": 1, + "gets": 1, + "here": 1, + "threw": 1, + "wr.close": 1, + "out": 4, + "rd.read": 1, + "until": 1, + "rd.eof": 1, + "Process.wait": 1, + ".success": 1, + "removed_ENV_variables.each": 1, + "value": 4, + "ENV.kind_of": 1, + "Hash": 3, + "BuildError.new": 1, + "fetch": 2, + "install_bottle": 1, + "CurlBottleDownloadStrategy.new": 1, + "mirror_list": 2, + "HOMEBREW_CACHE.mkpath": 1, + "fetched": 4, + "downloader.fetch": 1, + "CurlDownloadStrategyError": 1, + "mirror_list.empty": 1, + "mirror_list.shift.values_at": 1, + "retry": 2, + "checksum_type": 2, + "CHECKSUM_TYPES.detect": 1, + "instance_variable_defined": 2, + "verify_download_integrity": 2, + "fn": 2, + "args.length": 1, + "md5": 2, + "supplied": 4, + "instance_variable_get": 2, + "type.to_s.upcase": 1, + "hasher": 2, + "Digest.const_get": 1, + "hash": 2, + "fn.incremental_hash": 1, + "supplied.empty": 1, + "message": 2, + "EOF": 2, + "mismatch": 1, + "Expected": 1, + "Got": 1, + "Archive": 1, + "To": 1, + "an": 1, + "incomplete": 1, + "download": 1, + "remove": 1, + "file": 1, + "above.": 1, + "supplied.upcase": 1, + "hash.upcase": 1, + "opoo": 1, + "CHECKSUM_TYPES": 2, + "sha1": 4, + "sha256": 1, + ".freeze": 1, + "fetched.kind_of": 1, + "mktemp": 1, + "downloader.stage": 1, + "@buildpath": 2, + "Pathname.pwd": 1, + "patch_list": 1, + "Patches.new": 1, + "patch_list.empty": 1, + "patch_list.external_patches": 1, + "patch_list.download": 1, + "patch_list.each": 1, + "p": 2, + "p.compression": 1, + "gzip": 1, + "p.compressed_filename": 2, + "bzip2": 1, + "p.patch_args": 1, + "v": 2, + "v.to_s.empty": 1, + "s/": 1, + "class_value": 3, + "self.class.send": 1, + "instance_variable_set": 1, + "self.method_added": 1, + "self.attr_rw": 1, + "attrs": 1, + "attrs.each": 1, + "attr": 4, + "class_eval": 1, + "Q": 1, + "val": 10, + "val.nil": 3, + "@#": 2, + "attr_rw": 4, + "keg_only_reason": 1, + "skip_clean_all": 2, + "cc_failures": 1, + "stable": 2, + "instance_eval": 2, + "ARGV.build_devel": 2, + "devel": 1, + "@mirrors": 3, + "clear": 1, + "from": 1, + "release": 1, + "bottle": 1, + "bottle_block": 1, + "self.version": 1, + "self.url": 1, + "self.sha1": 1, + "sha1.shift": 1, + "@sha1": 6, + "MacOS.cat": 1, + "MacOS.lion": 1, + "self.data": 1, + "bottle_block.instance_eval": 1, + "@bottle_version": 1, + "bottle_block.data": 1, + "mirror": 1, + "@mirrors.uniq": 1, + "dependencies": 1, + "@dependencies": 1, + "DependencyCollector.new": 1, + "depends_on": 1, + "dependencies.add": 1, + "paths": 3, + "all": 1, + "@skip_clean_all": 2, + "@skip_clean_paths": 3, + ".flatten.each": 1, + "p.to_s": 2, + "@skip_clean_paths.include": 1, + "skip_clean_paths": 1, + "reason": 2, + "explanation": 1, + "@keg_only_reason": 1, + "KegOnlyReason.new": 1, + "explanation.to_s.chomp": 1, + "compiler": 3, + "@cc_failures": 2, + "CompilerFailures.new": 1, + "CompilerFailure.new": 2, + "SHEBANG#!python": 1, + "SHEBANG#!macruby": 1, + ".unshift": 1, + "For": 1, + "use/testing": 1, + "no": 1, + "gem": 3, + "require_all": 4, + "glob": 2, + "Jekyll": 3, + "VERSION": 1, + "DEFAULTS": 2, + "Dir.pwd": 3, + "self.configuration": 1, + "override": 3, + "source": 2, + "config_file": 2, + "config": 3, + "YAML.load_file": 1, + "config.is_a": 1, + "stdout.puts": 1, + "err": 1, + "stderr.puts": 2, + "err.to_s": 1, + "DEFAULTS.deep_merge": 1, + ".deep_merge": 1, + "object": 2, + "@user": 1, + "person": 1, + "attributes": 2, + "username": 1, + "email": 1, + "location": 1, + "created_at": 1, + "registered_at": 1, + "node": 2, + "role": 1, + "user": 1, + "user.is_admin": 1, + "child": 1, + "phone_numbers": 1, + "pnumbers": 1, + "extends": 1, + "node_numbers": 1, + "u": 1, + "partial": 1, + "u.phone_numbers": 1, + "load": 3, + "plugin": 3, + "appraise": 2, + "Jenkins": 1, + "Plugin": 1, + "Specification.new": 1, + "plugin.name": 1, + "plugin.display_name": 1, + "plugin.version": 1, + "plugin.description": 1, + "plugin.url": 1, + "plugin.developed_by": 1, + "plugin.uses_repository": 1, + "github": 1, + "plugin.depends_on": 1, + "#plugin.depends_on": 1, + "Foo": 1 + }, + "PowerShell": { + "Write": 2, + "-": 2, + "Host": 2, + "function": 1, + "hello": 1, + "(": 1, + ")": 1, + "{": 1, + "}": 1 + }, + "Game Maker Language": { + "hangCountMax": 2, + ";": 1282, + "//////////////////////////////////////": 2, + "kLeft": 12, + "checkLeft": 1, + "(": 1501, + ")": 1502, + "if": 397, + "kLeftPushedSteps": 3, + "+": 206, + "else": 151, + "kLeftPressed": 2, + "checkLeftPressed": 1, + "kLeftReleased": 3, + "checkLeftReleased": 1, + "kRight": 12, + "checkRight": 1, + "kRightPushedSteps": 3, + "kRightPressed": 2, + "checkRightPressed": 1, + "kRightReleased": 3, + "checkRightReleased": 1, + "kUp": 5, + "checkUp": 1, + "kDown": 5, + "checkDown": 1, + "//key": 1, + "canRun": 1, + "kRun": 2, + "kJump": 6, + "checkJump": 1, + "kJumpPressed": 11, + "checkJumpPressed": 1, + "kJumpReleased": 5, + "checkJumpReleased": 1, + "cantJump": 3, + "{": 300, + "-": 212, + "}": 307, + "global.isTunnelMan": 1, + "and": 155, + "sprite_index": 14, + "sTunnelAttackL": 1, + "holdItem": 1, + "kAttack": 2, + "checkAttack": 2, + "kAttackPressed": 2, + "checkAttackPressed": 1, + "kAttackReleased": 2, + "checkAttackReleased": 1, + "kItemPressed": 2, + "checkItemPressed": 1, + "xPrev": 1, + "x": 76, + "yPrev": 1, + "y": 85, + "stunned": 3, + "or": 78, + "dead": 3, + "false": 85, + "//////////////////////////////////////////": 2, + "colSolidLeft": 4, + "colSolidRight": 3, + "colLeft": 6, + "colRight": 6, + "colTop": 4, + "colBot": 11, + "colLadder": 3, + "colPlatBot": 6, + "colPlat": 5, + "colWaterTop": 3, + "colIceBot": 2, + "runKey": 4, + "isCollisionMoveableSolidLeft": 1, + "true": 73, + "isCollisionMoveableSolidRight": 1, + "isCollisionLeft": 2, + "isCollisionRight": 2, + "isCollisionTop": 1, + "isCollisionBottom": 1, + "isCollisionLadder": 1, + "isCollisionPlatformBottom": 1, + "isCollisionPlatform": 1, + "isCollisionWaterTop": 1, + "collision_point": 30, + "oIce": 1, + "checkRun": 1, + "runHeld": 3, + "not": 63, + "whipping": 5, + "state": 50, + "CLIMBING": 5, + "HANGING": 10, + "approximatelyZero": 4, + "xVel": 24, + "xAcc": 12, + "platformCharacterIs": 23, + "ON_GROUND": 18, + "DUCKING": 4, + "pushTimer": 3, + "//if": 5, + "SS_IsSoundPlaying": 2, + "global.sndPush": 4, + "playSound": 3, + "facing": 17, + "LEFT": 7, + "runAcc": 2, + "abs": 9, + "alarm": 13, + "[": 99, + "]": 103, + "<": 39, + "floor": 11, + "/": 5, + "RIGHT": 10, + "/xVel": 1, + "instance_exists": 8, + "oCape": 2, + "oCape.open": 6, + "kJumped": 7, + "ladderTimer": 4, + "ladder": 5, + "oLadder": 4, + "ladder.x": 3, + "oLadderTop": 2, + "yAcc": 26, + "climbAcc": 2, + "FALLING": 8, + "STANDING": 2, + "departLadderXVel": 2, + "departLadderYVel": 1, + "JUMPING": 6, + "jumpButtonReleased": 7, + "jumpTime": 8, + "IN_AIR": 5, + "gravityIntensity": 2, + "yVel": 20, + "RUNNING": 3, + "jumps": 3, + "//playSound": 1, + "global.sndLand": 1, + "grav": 22, + "global.hasGloves": 3, + "hangCount": 14, + "*": 18, + "yVel*0.3": 1, + "oWeb": 2, + "obj": 14, + "instance_place": 3, + "obj.life": 1, + "initialJumpAcc": 6, + "xVel/2": 3, + "gravNorm": 7, + "global.hasCape": 1, + "global.hasJetpack": 4, + "jetpackFuel": 2, + "fallTimer": 2, + "global.hasJordans": 1, + "yAccLimit": 2, + "global.hasSpringShoes": 1, + "global.sndJump": 1, + "jumpTimeTotal": 2, + "//let": 1, + "the": 62, + "character": 20, + "continue": 4, + "to": 62, + "jump": 1, + "jumpTime/jumpTimeTotal": 1, + "looking": 2, + "UP": 1, + "LOOKING_UP": 4, + "oSolid": 14, + "move_snap": 6, + "oTree": 4, + "oArrow": 5, + "instance_nearest": 1, + "obj.stuck": 1, + "//the": 2, + "can": 1, + "t": 23, + "want": 1, + "use": 4, + "because": 2, + "is": 9, + "too": 2, + "high": 1, + "yPrevHigh": 1, + "//": 11, + "we": 5, + "ll": 1, + "move": 2, + "correct": 1, + "distance": 1, + "but": 2, + "need": 1, + "shorten": 1, + "out": 4, + "a": 55, + "little": 1, + "ratio": 1, + "xVelInteger": 2, + "/dist*0.9": 1, + "//can": 1, + "be": 4, + "changed": 1, + "moveTo": 2, + "round": 6, + "xVelInteger*ratio": 1, + "yVelInteger*ratio": 1, + "slopeChangeInY": 1, + "maxDownSlope": 1, + "floating": 1, + "just": 1, + "above": 1, + "slope": 1, + "so": 2, + "down": 1, + "upYPrev": 1, + "for": 26, + "<=upYPrev+maxDownSlope;y+=1)>": 1, + "hit": 1, + "solid": 1, + "below": 1, + "upYPrev=": 1, + "I": 1, + "know": 1, + "that": 2, + "this": 2, + "doesn": 1, + "seem": 1, + "make": 1, + "sense": 1, + "of": 25, + "name": 9, + "variable": 1, + "it": 6, + "all": 3, + "works": 1, + "correctly": 1, + "after": 1, + "break": 58, + "loop": 1, + "y=": 1, + "figures": 1, + "what": 1, + "sprite": 12, + "index": 11, + "should": 25, + "characterSprite": 1, + "sets": 1, + "previous": 2, + "previously": 1, + "statePrevPrev": 1, + "statePrev": 2, + "calculates": 1, + "image_speed": 9, + "based": 1, + "on": 4, + "s": 6, + "velocity": 1, + "runAnimSpeed": 1, + "0": 21, + "1": 32, + "sqrt": 1, + "sqr": 2, + "climbAnimSpeed": 1, + "<=>": 3, + "4": 2, + "setCollisionBounds": 3, + "8": 9, + "5": 5, + "DUCKTOHANG": 1, + "image_index": 1, + "limit": 5, + "at": 23, + "animation": 1, + "always": 1, + "looks": 1, + "good": 1, + "global.levelType": 22, + "//global.currLevel": 1, + "global.currLevel": 22, + "global.hadDarkLevel": 4, + "global.startRoomX": 1, + "global.startRoomY": 1, + "global.endRoomX": 1, + "global.endRoomY": 1, + "oGame.levelGen": 2, + "i": 95, + "j": 14, + "global.roomPath": 1, + "k": 5, + "global.lake": 3, + "isLevel": 1, + "999": 2, + "global": 8, + "levelType": 2, + "2": 2, + "16": 14, + "656": 3, + "instance_create": 20, + "oDark": 2, + "invincible": 2, + "sDark": 1, + "oTemple": 2, + "cityOfGold": 1, + "sTemple": 2, + "lake": 1, + "i*16": 8, + "j*16": 6, + "oLush": 2, + "obj.sprite_index": 4, + "sLush": 2, + "obj.invincible": 3, + "oBrick": 1, + "sBrick": 1, + "global.cityOfGold": 2, + "*16": 2, + "//instance_create": 2, + "oSpikes": 1, + "background_index": 1, + "bgTemple": 1, + "global.temp1": 1, + "global.gameStart": 3, + "scrLevelGen": 1, + "global.cemetary": 3, + "rand": 10, + "global.probCemetary": 1, + "with": 47, + "oRoom": 1, + "scrRoomGen": 1, + "global.blackMarket": 3, + "scrRoomGenMarket": 1, + "scrRoomGen2": 1, + "global.yetiLair": 2, + "scrRoomGenYeti": 1, + "scrRoomGen3": 1, + "scrRoomGen4": 1, + "scrRoomGen5": 1, + "global.darkLevel": 4, + "global.noDarkLevel": 1, + "global.probDarkLevel": 1, + "oPlayer1.x": 2, + "oPlayer1.y": 2, + "oFlare": 1, + "global.genUdjatEye": 4, + "global.madeUdjatEye": 1, + "global.genMarketEntrance": 4, + "global.madeMarketEntrance": 1, + "////////////////////////////": 2, + "global.temp2": 1, + "isRoom": 3, + "scrEntityGen": 1, + "oEntrance": 1, + "global.customLevel": 1, + "oEntrance.x": 1, + "oEntrance.y": 1, + "global.snakePit": 1, + "global.alienCraft": 1, + "global.sacrificePit": 1, + "oPlayer1": 1, + "scrSetupWalls": 3, + "global.graphicsHigh": 1, + "repeat": 7, + "tile_add": 4, + "bgExtrasLush": 1, + "*rand": 12, + "bgExtrasIce": 1, + "bgExtrasTemple": 1, + "bgExtras": 1, + "global.murderer": 1, + "global.thiefLevel": 1, + "isRealLevel": 1, + "oExit": 1, + "type": 8, + "oShopkeeper": 1, + "obj.status": 1, + "oTreasure": 1, + "instance_destroy": 7, + "oWater": 1, + "sWaterTop": 1, + "sLavaTop": 1, + "scrCheckWaterTop": 1, + "global.temp3": 1, + "var": 79, + "list": 36, + "hashList": 5, + "text": 19, + "pluginname": 9, + "pluginhash": 4, + "realhash": 1, + "url": 62, + "handle": 1, + "filesize": 1, + "progress": 1, + "tempfile": 1, + "tempdir": 1, + "failed": 56, + "lastContact": 2, + "isCached": 2, + "ds_list_create": 5, + "isDebug": 2, + "split": 1, + "argument0": 28, + "ds_list_size": 11, + "ds_list_find_value": 9, + "string_copy": 32, + "string_pos": 20, + "string_length": 25, + "ds_list_replace": 3, + "ds_list_add": 23, + "checkpluginname": 1, + "show_message": 7, + "return": 56, + "ds_list_find_index": 1, + "file_exists": 5, + "working_directory": 6, + ".zip": 3, + "ServerPluginsCache": 6, + "@": 5, + ".zip.tmp": 1, + ".tmp": 2, + "ServerPluginsDebug": 1, + "Warning": 2, + "server": 10, + "sent": 7, + "plugin": 6, + "being": 2, + "loaded": 2, + "from": 5, + "ServerPluginsDebug.": 2, + "Make": 2, + "sure": 2, + "clients": 1, + "have": 2, + "same": 6, + "version": 4, + "they": 1, + "may": 2, + "unable": 2, + "connect.": 2, + "has": 2, + "you": 1, + "Downloading": 1, + "last_plugin.log": 2, + "plugin.gml": 1, + "ds_list_destroy": 4, + "player": 36, + "playerId": 11, + "commandLimitRemaining": 4, + "argument1": 10, + "variable_local_exists": 4, + "commandReceiveState": 1, + "commandReceiveExpectedBytes": 1, + "commandReceiveCommand": 1, + "while": 15, + "socket": 40, + "player.socket": 12, + "tcp_receive": 3, + "player.commandReceiveExpectedBytes": 7, + "switch": 9, + "player.commandReceiveState": 7, + "case": 50, + "player.commandReceiveCommand": 4, + "read_ubyte": 10, + "commandBytes": 2, + "commandBytesInvalidCommand": 1, + "commandBytesPrefixLength1": 1, + "commandBytesPrefixLength2": 1, + "default": 1, + "read_ushort": 2, + "PLAYER_LEAVE": 1, + "socket_destroy": 4, + "PLAYER_CHANGECLASS": 1, + "class": 8, + "getCharacterObject": 2, + "player.team": 8, + "player.object": 12, + "SpawnRoom": 2, + "lastDamageDealer": 8, + "||": 16, + "sendEventPlayerDeath": 4, + "noone": 7, + "BID_FAREWELL": 4, + "doEventPlayerDeath": 4, + "assistant": 16, + "secondToLastDamageDealer": 2, + "lastDamageDealer.object": 2, + "lastDamageDealer.object.healer": 4, + "FINISHED_OFF": 5, + "player.alarm": 4, + "<=0)>": 1, + "checkClasslimits": 2, + "team": 13, + "ServerPlayerChangeclass": 2, + "sendBuffer": 1, + "PLAYER_CHANGETEAM": 1, + "newTeam": 7, + "balance": 5, + "redSuperiority": 6, + "calculate": 1, + "which": 1, + "bigger": 2, + "Player": 1, + "TEAM_RED": 8, + "TEAM_BLUE": 6, + "player.class": 15, + "TEAM_SPECTATOR": 1, + "global.Server_Respawntime": 3, + "newClass": 4, + "global.sendBuffer": 19, + "ServerPlayerChangeteam": 1, + "ServerBalanceTeams": 1, + "CHAT_BUBBLE": 2, + "bubbleImage": 5, + "global.aFirst": 1, + "write_ubyte": 20, + "setChatBubble": 1, + "BUILD_SENTRY": 2, + "CLASS_ENGINEER": 3, + "collision_circle": 1, + "player.object.x": 3, + "player.object.y": 3, + "Sentry": 1, + "player.object.nutsNBolts": 1, + "player.sentry": 2, + "player.object.onCabinet": 1, + "write_ushort": 2, + "global.serializeBuffer": 3, + "player.object.x*5": 1, + "player.object.y*5": 1, + "write_byte": 1, + "player.object.image_xscale": 2, + "buildSentry": 1, + "DESTROY_SENTRY": 1, + "DROP_INTEL": 1, + "player.object.intel": 1, + "sendEventDropIntel": 1, + "doEventDropIntel": 1, + "OMNOMNOMNOM": 2, + "player.humiliated": 1, + "player.object.taunting": 1, + "player.object.omnomnomnom": 1, + "player.object.canEat": 1, + "CLASS_HEAVY": 2, + "omnomnomnom": 2, + "omnomnomnomindex": 4, + "omnomnomnomend": 2, + "xscale": 1, + "image_xscale": 17, + "TOGGLE_ZOOM": 2, + "CLASS_SNIPER": 3, + "toggleZoom": 1, + "PLAYER_CHANGENAME": 2, + "nameLength": 4, + "socket_receivebuffer_size": 3, + "MAX_PLAYERNAME_LENGTH": 2, + "KICK": 2, + "KICK_NAME": 1, + "current_time": 2, + "lastNamechange": 2, + "read_string": 9, + "string_count": 2, + "write_string": 9, + "INPUTSTATE": 1, + "keyState": 1, + "netAimDirection": 1, + "aimDirection": 1, + "netAimDirection*360/65536": 1, + "event_user": 1, + "REWARD_REQUEST": 1, + "player.rewardId": 1, + "player.challenge": 2, + "rewardCreateChallenge": 1, + "REWARD_CHALLENGE_CODE": 1, + "write_binstring": 1, + "REWARD_CHALLENGE_RESPONSE": 1, + "answer": 3, + "authbuffer": 1, + "read_binstring": 1, + "rewardAuthStart": 1, + "challenge": 1, + "rewardId": 1, + "PLUGIN_PACKET": 1, + "packetID": 3, + "buf": 5, + "success": 3, + "buffer_create": 7, + "write_buffer_part": 3, + "_PluginPacketPush": 1, + "buffer_destroy": 8, + "KICK_BAD_PLUGIN_PACKET": 1, + "CLIENT_SETTINGS": 2, + "mirror": 4, + "player.queueJump": 1, + "#define": 26, + "__http_init": 3, + "global.__HttpClient": 4, + "object_add": 1, + "object_set_persistent": 1, + "__http_split": 3, + "delimeter": 7, + "argument2": 3, + "count": 4, + "__http_parse_url": 4, + "map": 47, + "ds_map_create": 4, + "ds_map_add": 15, + "colonPos": 22, + "string_char_at": 13, + "slashPos": 13, + "real": 14, + "queryPos": 12, + "ds_map_destroy": 6, + "__http_resolve_url": 2, + "baseUrl": 3, + "refUrl": 18, + "urlParts": 15, + "refUrlParts": 5, + "canParseRefUrl": 3, + "result": 11, + "ds_map_find_value": 22, + "__http_resolve_path": 3, + "ds_map_replace": 3, + "ds_map_exists": 11, + "ds_map_delete": 1, + "path": 10, + "query": 4, + "relUrl": 1, + "__http_construct_url": 2, + "basePath": 4, + "refPath": 7, + "parts": 29, + "refParts": 5, + "lastPart": 3, + "ds_list_delete": 5, + "part": 6, + "__http_parse_hex": 2, + "hexString": 4, + "hexValues": 3, + "digit": 4, + "string": 13, + "__http_prepare_request": 4, + "client": 33, + "headers": 11, + "parsed": 18, + "show_error": 2, + "destroyed": 3, + "CR": 10, + "chr": 3, + "LF": 5, + "CRLF": 17, + "tcp_connect": 1, + "errored": 19, + "error": 18, + "linebuf": 33, + "line": 19, + "statusCode": 6, + "reasonPhrase": 2, + "responseBody": 19, + "responseBodySize": 5, + "responseBodyProgress": 5, + "responseHeaders": 9, + "requestUrl": 2, + "requestHeaders": 2, + "key": 17, + "ds_map_find_first": 1, + "is_string": 2, + "ds_map_find_next": 1, + "socket_send": 1, + "__http_parse_header": 3, + "ord": 16, + "headerValue": 9, + "string_lower": 3, + "headerName": 4, + "__http_client_step": 2, + "exit": 10, + "socket_has_error": 1, + "socket_error": 1, + "__http_client_destroy": 20, + "available": 7, + "tcp_receive_available": 1, + "&&": 6, + "tcp_eof": 3, + "bytesRead": 6, + "c": 20, + "Reached": 2, + "end": 11, + "HTTP": 1, + "defines": 1, + "sequence": 2, + "as": 1, + "marker": 1, + "protocol": 3, + "elements": 1, + "except": 2, + "entity": 1, + "body": 2, + "see": 1, + "appendix": 1, + "19": 1, + "3": 1, + "tolerant": 1, + "applications": 1, + "Strip": 1, + "trailing": 1, + "First": 1, + "status": 2, + "code": 2, + "The": 6, + "first": 3, + "Response": 1, + "message": 1, + "Status": 1, + "Line": 1, + "consisting": 1, + "followed": 1, + "by": 5, + "numeric": 1, + "its": 1, + "associated": 1, + "textual": 1, + "phrase": 1, + "each": 18, + "element": 8, + "separated": 1, + "SP": 1, + "characters": 3, + "No": 3, + "allowed": 1, + "in": 21, + "final": 1, + "httpVer": 2, + "spacePos": 11, + "space": 4, + "response": 5, + "second": 2, + "Other": 1, + "Blank": 1, + "write": 1, + "remainder": 1, + "Header": 1, + "Receiving": 1, + "write_buffer": 2, + "transfer": 6, + "encoding": 2, + "chunked": 4, + "Chunked": 1, + "let": 1, + "decode": 36, + "actualResponseBody": 8, + "actualResponseSize": 1, + "actualResponseBodySize": 3, + "Parse": 1, + "chunks": 1, + "chunk": 12, + "size": 7, + "extension": 3, + "data": 4, + "HEX": 1, + "buffer_bytes_left": 6, + "chunkSize": 11, + "Read": 1, + "byte": 2, + "We": 1, + "found": 21, + "semicolon": 1, + "beginning": 1, + "skip": 1, + "stuff": 2, + "header": 2, + "Doesn": 1, + "did": 1, + "empty": 13, + "something": 1, + "up": 6, + "Parsing": 1, + "hex": 2, + "was": 1, + "hexadecimal": 1, + "Is": 1, + "than": 1, + "remaining": 1, + "responseHaders": 1, + "location": 4, + "resolved": 5, + "http_new_get": 1, + "variable_global_exists": 2, + "http_new_get_ex": 1, + "http_step": 1, + "client.errored": 3, + "client.state": 3, + "http_status_code": 1, + "client.statusCode": 1, + "http_reason_phrase": 1, + "client.error": 1, + "client.reasonPhrase": 1, + "http_response_body": 1, + "client.responseBody": 1, + "http_response_body_size": 1, + "client.responseBodySize": 1, + "http_response_body_progress": 1, + "client.responseBodyProgress": 1, + "http_response_headers": 1, + "client.responseHeaders": 1, + "http_destroy": 1, + "victim": 10, + "killer": 11, + "damageSource": 18, + "argument3": 1, + "//*************************************": 6, + "//*": 3, + "Scoring": 1, + "Kill": 1, + "log": 1, + "recordKillInLog": 1, + "victim.stats": 1, + "DEATHS": 1, + "WEAPON_KNIFE": 1, + "WEAPON_BACKSTAB": 1, + "killer.stats": 8, + "STABS": 2, + "killer.roundStats": 8, + "POINTS": 10, + "victim.object.currentWeapon.object_index": 1, + "Medigun": 2, + "victim.object.currentWeapon.uberReady": 1, + "BONUS": 2, + "KILLS": 2, + "victim.object.intel": 1, + "DEFENSES": 2, + "recordEventInLog": 1, + "killer.team": 1, + "killer.name": 2, + "global.myself": 4, + "assistant.stats": 2, + "ASSISTS": 2, + "assistant.roundStats": 2, + ".5": 2, + "//SPEC": 1, + "victim.object.x": 3, + "victim.object.y": 3, + "Spectator": 1, + "Gibbing": 2, + "xoffset": 5, + "yoffset": 5, + "xsize": 3, + "ysize": 3, + "view_xview": 3, + "view_yview": 3, + "view_wview": 2, + "view_hview": 2, + "randomize": 1, + "victim.object": 2, + "WEAPON_ROCKETLAUNCHER": 1, + "WEAPON_MINEGUN": 1, + "FRAG_BOX": 2, + "WEAPON_REFLECTED_STICKY": 1, + "WEAPON_REFLECTED_ROCKET": 1, + "FINISHED_OFF_GIB": 2, + "GENERATOR_EXPLOSION": 2, + "CLASS_QUOTE": 3, + "global.gibLevel": 14, + "distance_to_point": 3, + "xsize/2": 2, + "ysize/2": 2, + "hasReward": 4, + "createGib": 14, + "PumpkinGib": 1, + "hspeed": 14, + "vspeed": 13, + "random": 21, + "choose": 8, + "Gib": 1, + "BlueClump": 1, + "RedClump": 1, + "blood": 2, + "BloodDrop": 1, + "blood.hspeed": 1, + "blood.vspeed": 1, + "blood.sprite_index": 1, + "PumpkinJuiceS": 1, + "//All": 1, + "Classes": 1, + "gib": 1, + "head": 1, + "hands": 2, + "feet": 1, + "Headgib": 1, + "//Medic": 1, + "specially": 1, + "colored": 1, + "CLASS_MEDIC": 2, + "Hand": 3, + "Feet": 1, + "//Class": 1, + "specific": 1, + "gibs": 1, + "CLASS_PYRO": 2, + "Accesory": 5, + "CLASS_SOLDIER": 2, + "playsound": 2, + "deadbody": 2, + "DeathSnd1": 1, + "DeathSnd2": 1, + "DeadGuy": 1, + "deadbody.sprite_index": 2, + "haxxyStatue": 1, + "deadbody.image_index": 2, + "CHARACTER_ANIMATION_DEAD": 1, + "deadbody.hspeed": 1, + "deadbody.vspeed": 1, + "deadbody.image_xscale": 1, + "global.gg_birthday": 1, + "myHat": 2, + "PartyHat": 1, + "myHat.image_index": 2, + "victim.team": 2, + "global.xmas": 1, + "XmasHat": 1, + "Deathcam": 1, + "global.killCam": 3, + "KILL_BOX": 1, + "DeathCam": 1, + "DeathCam.killedby": 1, + "DeathCam.name": 1, + "DeathCam.oldxview": 1, + "DeathCam.oldyview": 1, + "DeathCam.lastDamageSource": 1, + "DeathCam.team": 1, + "global.myself.team": 3, + "RoomChangeObserver": 1, + "set_little_endian_global": 1, + "file_delete": 3, + "backupFilename": 5, + "file_find_first": 1, + "file_find_next": 1, + "file_find_close": 1, + "customMapRotationFile": 7, + "restart": 4, + "//import": 1, + "wav": 1, + "files": 1, + "music": 1, + "global.MenuMusic": 3, + "sound_add": 3, + "global.IngameMusic": 3, + "global.FaucetMusic": 3, + "sound_volume": 3, + "global.tempBuffer": 3, + "global.HudCheck": 1, + "global.map_rotation": 19, + "global.CustomMapCollisionSprite": 1, + "window_set_region_scale": 1, + "ini_open": 2, + "global.playerName": 7, + "ini_read_string": 12, + "min": 4, + "global.fullscreen": 3, + "ini_read_real": 65, + "global.useLobbyServer": 2, + "global.hostingPort": 2, + "global.music": 2, + "MUSIC_BOTH": 1, + "global.playerLimit": 4, + "//thy": 1, + "playerlimit": 1, + "shalt": 1, + "exceed": 1, + "global.dedicatedMode": 7, + "ini_write_real": 60, + "global.multiClientLimit": 2, + "global.particles": 2, + "PARTICLES_NORMAL": 1, + "global.monitorSync": 3, + "set_synchronization": 2, + "global.medicRadar": 2, + "global.showHealer": 2, + "global.showHealing": 2, + "global.showHealthBar": 3, + "global.showTeammateStats": 2, + "global.serverPluginsPrompt": 2, + "global.restartPrompt": 2, + "//user": 1, + "HUD": 1, + "settings": 1, + "global.timerPos": 2, + "global.killLogPos": 2, + "global.kothHudPos": 2, + "global.clientPassword": 1, + "global.shuffleRotation": 2, + "global.timeLimitMins": 2, + "max": 2, + "global.serverPassword": 2, + "global.mapRotationFile": 1, + "global.serverName": 2, + "global.welcomeMessage": 2, + "global.caplimit": 3, + "global.caplimitBkup": 1, + "global.autobalance": 2, + "global.Server_RespawntimeSec": 4, + "global.rewardKey": 1, + "unhex": 1, + "global.rewardId": 1, + "global.mapdownloadLimitBps": 2, + "global.updaterBetaChannel": 3, + "isBetaVersion": 1, + "global.attemptPortForward": 2, + "global.serverPluginList": 3, + "global.serverPluginsRequired": 2, + "CrosshairFilename": 5, + "CrosshairRemoveBG": 4, + "global.queueJumping": 2, + "global.backgroundHash": 2, + "global.backgroundTitle": 2, + "global.backgroundURL": 2, + "global.backgroundShowVersion": 2, + "readClasslimitsFromIni": 1, + "global.currentMapArea": 1, + "global.totalMapAreas": 1, + "global.setupTimer": 1, + "global.joinedServerName": 2, + "global.serverPluginsInUse": 1, + "global.pluginPacketBuffers": 1, + "global.pluginPacketPlayers": 1, + "ini_write_string": 10, + "ini_key_delete": 1, + "global.classlimits": 10, + "CLASS_SCOUT": 1, + "CLASS_DEMOMAN": 1, + "CLASS_SPY": 1, + "//screw": 1, + "will": 1, + "start": 1, + "//map_truefort": 1, + "maps": 37, + "//map_2dfort": 1, + "//map_conflict": 1, + "//map_classicwell": 1, + "//map_waterway": 1, + "//map_orange": 1, + "//map_dirtbowl": 1, + "//map_egypt": 1, + "//arena_montane": 1, + "//arena_lumberyard": 1, + "//gen_destroy": 1, + "//koth_valley": 1, + "//koth_corinth": 1, + "//koth_harvest": 1, + "//dkoth_atalia": 1, + "//dkoth_sixties": 1, + "//Server": 1, + "respawn": 1, + "time": 1, + "calculator.": 1, + "Converts": 1, + "frame.": 1, + "read": 1, + "multiply": 1, + "hehe": 1, + "global.mapchanging": 1, + "ini_close": 2, + "global.protocolUuid": 2, + "parseUuid": 2, + "PROTOCOL_UUID": 1, + "global.gg2lobbyId": 2, + "GG2_LOBBY_UUID": 1, + "initRewards": 1, + "IPRaw": 3, + "portRaw": 3, + "doubleCheck": 8, + "global.launchMap": 5, + "parameter_count": 1, + "parameter_string": 8, + "global.serverPort": 1, + "global.serverIP": 1, + "global.isHost": 1, + "Client": 1, + "global.customMapdesginated": 2, + "fileHandle": 6, + "mapname": 9, + "file_text_open_read": 1, + "file_text_eof": 1, + "file_text_read_string": 1, + "starts": 1, + "tab": 2, + "string_delete": 1, + "delete": 1, + "comment": 1, + "starting": 1, + "#": 3, + "file_text_readln": 1, + "file_text_close": 1, + "load": 1, + "ini": 1, + "file": 2, + "Maps": 9, + "section": 1, + "//Set": 1, + "rotation": 1, + "sort_list": 7, + "*maps": 1, + "ds_list_sort": 1, + "mod": 1, + "window_set_fullscreen": 2, + "global.gg2Font": 2, + "font_add_sprite": 2, + "gg2FontS": 1, + "global.countFont": 1, + "countFontS": 1, + "draw_set_font": 1, + "cursor_sprite": 1, + "CrosshairS": 5, + "directory_exists": 2, + "directory_create": 2, + "AudioControl": 1, + "SSControl": 1, + "message_background": 1, + "popupBackgroundB": 1, + "message_button": 1, + "popupButtonS": 1, + "message_text_font": 1, + "c_white": 13, + "message_button_font": 1, + "message_input_font": 1, + "//Key": 1, + "Mapping": 1, + "global.jump": 1, + "global.down": 1, + "global.left": 1, + "global.right": 1, + "global.attack": 1, + "MOUSE_LEFT": 1, + "global.special": 1, + "MOUSE_RIGHT": 1, + "global.taunt": 1, + "global.chat1": 1, + "global.chat2": 1, + "global.chat3": 1, + "global.medic": 1, + "global.drop": 1, + "global.changeTeam": 1, + "global.changeClass": 1, + "global.showScores": 1, + "vk_shift": 1, + "calculateMonthAndDay": 1, + "loadplugins": 1, + "registry_set_root": 1, + "HKLM": 1, + "global.NTKernelVersion": 1, + "registry_read_string_ext": 1, + "CurrentVersion": 1, + "SIC": 1, + "sprite_replace": 1, + "sprite_set_offset": 1, + "sprite_get_width": 1, + "/2": 2, + "sprite_get_height": 1, + "AudioControlToggleMute": 1, + "room_goto_fix": 2, + "Menu": 2, + "playerObject": 1, + "playerID": 1, + "otherPlayerID": 1, + "otherPlayer": 1, + "sameVersion": 1, + "buffer": 1, + "plugins": 4, + "pluginsRequired": 2, + "usePlugins": 1, + "global.serverSocket": 10, + "gotServerHello": 2, + "room": 1, + "DownloadRoom": 1, + "keyboard_check": 1, + "vk_escape": 1, + "downloadingMap": 2, + "downloadMapBytes": 2, + "buffer_size": 2, + "downloadMapBuffer": 6, + "write_buffer_to_file": 1, + "downloadMapName": 3, + "roomchange": 2, + "do": 1, + "HELLO": 1, + "receivestring": 4, + "advertisedMapMd5": 1, + "receiveCompleteMessage": 1, + "Server": 3, + "illegal": 2, + "This": 2, + "requires": 1, + "following": 2, + "play": 2, + "suggests": 1, + "optional": 1, + "Error": 2, + "ocurred": 1, + "loading": 1, + "plugins.": 1, + "Maps/": 2, + ".png": 2, + "Enter": 1, + "Password": 1, + "Incorrect": 1, + "Password.": 1, + "Incompatible": 1, + "version.": 1, + "Name": 1, + "Exploit": 1, + "Invalid": 2, + "packet": 3, + "ID": 2, + "There": 1, + "are": 1, + "many": 1, + "connections": 1, + "your": 1, + "IP": 1, + "You": 1, + "been": 1, + "kicked": 1, + "server.": 1, + ".": 12, + "#Server": 1, + "went": 1, + "invalid": 1, + "internal": 1, + "#Exiting.": 1, + "full.": 1, + "ERROR": 1, + "when": 1, + "reading": 1, + "no": 1, + "such": 1, + "unexpected": 1, + "data.": 1, + "until": 1, + "downloadHandle": 3, + "tmpfile": 3, + "window_oldshowborder": 2, + "window_oldfullscreen": 2, + "timeLeft": 1, + "counter": 1, + "AudioControlPlaySong": 1, + "window_get_showborder": 1, + "window_get_fullscreen": 1, + "window_set_showborder": 1, + "UPDATE_SOURCE_BETA": 1, + "UPDATE_SOURCE": 1, + "temp_directory": 1, + "httpGet": 1, + "httpRequestStatus": 1, + "download": 1, + "isn": 1, + "extract": 1, + "downloaded": 1, + "now.": 1, + "extractzip": 1, + "execute_program": 1, + "game_end": 1, + "//draws": 1, + "draw": 3, + "blinkToggle": 1, + "sPExit": 1, + "sDamselExit": 1, + "sTunnelExit": 1, + "draw_sprite_ext": 10, + "image_yscale": 14, + "image_angle": 14, + "image_blend": 2, + "image_alpha": 10, + "//draw_sprite": 1, + "draw_sprite": 9, + "sJetpackBack": 1, + "sJetpackRight": 1, + "sJetpackLeft": 1, + "redColor": 2, + "make_color_rgb": 1, + "holdArrow": 4, + "ARROW_NORM": 2, + "sArrowRight": 1, + "ARROW_BOMB": 2, + "holdArrowToggle": 2, + "sBombArrowRight": 2, + "sArrowLeft": 1, + "sBombArrowLeft": 2, + "__jso_gmt_tuple": 1, + "//Position": 1, + "address": 1, + "table": 1, + "pos": 2, + "addr_table": 2, + "*argument_count": 1, + "//Build": 1, + "tuple": 1, + "ca": 1, + "isstr": 1, + "datastr": 1, + "argument_count": 1, + "//Check": 1, + "argument": 10, + "Unexpected": 18, + "position": 16, + "f": 5, + "JSON": 5, + "string.": 5, + "Cannot": 5, + "parse": 3, + "boolean": 3, + "value": 13, + "expecting": 9, + "digit.": 9, + "e": 4, + "E": 4, + "dot": 1, + "an": 24, + "integer": 6, + "Expected": 6, + "least": 6, + "arguments": 26, + "got": 6, + "find": 10, + "lookup.": 4, + "indices": 1, + "nested": 27, + "lists": 6, + "Index": 1, + "overflow": 4, + "Recursive": 1, + "abcdef": 1, + "number": 7, + "num": 1, + "assert_true": 1, + "_assert_error_popup": 2, + "string_repeat": 2, + "_assert_newline": 2, + "assert_false": 1, + "assert_equal": 1, + "//Safe": 1, + "equality": 1, + "check": 1, + "won": 1, + "support": 1, + "instead": 1, + "_assert_debug_value": 1, + "//String": 1, + "os_browser": 1, + "browser_not_a_browser": 1, + "string_replace_all": 1, + "//Numeric": 1, + "GMTuple": 1, + "jso_encode_string": 1, + "encode": 8, + "escape": 2, + "jso_encode_map": 4, + "one": 42, + "key1": 3, + "key2": 3, + "multi": 7, + "jso_encode_list": 3, + "three": 36, + "_jso_decode_string": 5, + "small": 1, + "quick": 2, + "brown": 2, + "fox": 2, + "over": 2, + "lazy": 2, + "dog.": 2, + "simple": 1, + "Waahoo": 1, + "negg": 1, + "mixed": 1, + "_jso_decode_boolean": 2, + "_jso_decode_real": 11, + "standard": 1, + "zero": 4, + "signed": 2, + "decimal": 1, + "digits": 1, + "positive": 7, + "negative": 7, + "exponent": 4, + "_jso_decode_integer": 3, + "_jso_decode_map": 14, + "didn": 14, + "include": 14, + "right": 14, + "prefix": 14, + "#1": 14, + "#2": 14, + "entry": 29, + "pi": 2, + "bool": 2, + "waahoo": 10, + "woohah": 8, + "mix": 4, + "_jso_decode_list": 14, + "woo": 2, + "Empty": 4, + "equal": 20, + "other.": 12, + "junk": 2, + "info": 1, + "taxi": 1, + "An": 4, + "filled": 4, + "map.": 2, + "A": 24, + "B": 18, + "C": 8, + "content": 4, + "entered": 4, + "different": 12, + "orders": 4, + "D": 1, + "keys": 2, + "values": 4, + "six": 1, + "corresponding": 4, + "types": 4, + "other": 4, + "crash.": 4, + "list.": 2, + "Lists": 4, + "two": 16, + "entries": 2, + "also": 2, + "jso_map_check": 9, + "existing": 9, + "single": 11, + "jso_map_lookup": 3, + "wrong": 10, + "trap": 2, + "jso_map_lookup_type": 3, + "four": 21, + "inexistent": 11, + "multiple": 20, + "jso_list_check": 8, + "jso_list_lookup": 3, + "jso_list_lookup_type": 3, + "inner": 1, + "indexing": 1, + "bad": 1, + "jso_cleanup_map": 1, + "one_map": 1, + "xr": 19, + "yr": 19, + "cloakAlpha": 1, + "canCloak": 1, + "cloakAlpha/2": 1, + "invisible": 1, + "stabbing": 2, + "power": 1, + "currentWeapon.stab.alpha": 1, + "draw_set_alpha": 3, + "draw_healthbar": 1, + "hp*100/maxHp": 1, + "c_black": 1, + "c_red": 3, + "c_green": 1, + "mouse_x": 1, + "mouse_y": 1, + "<25)>": 1, + "cloak": 2, + "myself": 2, + "draw_set_halign": 1, + "fa_center": 1, + "draw_set_valign": 1, + "fa_bottom": 1, + "team=": 1, + "draw_set_color": 2, + "c_blue": 2, + "draw_text": 4, + "35": 1, + "showTeammateStats": 1, + "weapons": 3, + "50": 3, + "Superburst": 1, + "currentWeapon": 2, + "uberCharge": 1, + "20": 1, + "Shotgun": 1, + "Nuts": 1, + "N": 1, + "Bolts": 1, + "nutsNBolts": 1, + "Minegun": 1, + "Lobbed": 1, + "Mines": 1, + "lobbed": 1, + "ubercolour": 6, + "overlaySprite": 6, + "zoomed": 1, + "SniperCrouchRedS": 1, + "SniperCrouchBlueS": 1, + "sniperCrouchOverlay": 1, + "overlay": 1, + "draw_sprite_ext_overlay": 7, + "omnomnomnomSprite": 2, + "omnomnomnomOverlay": 2, + "ubered": 7, + "7": 4, + "taunting": 2, + "tauntsprite": 2, + "tauntOverlay": 2, + "tauntindex": 2, + "humiliated": 1, + "humiliationPoses": 1, + "animationImage": 9, + "humiliationOffset": 1, + "animationOffset": 6, + "burnDuration": 2, + "burnIntensity": 2, + "numFlames": 1, + "maxIntensity": 1, + "FlameS": 1, + "flameArray_x": 1, + "flameArray_y": 1, + "maxDuration": 1, + "demon": 4, + "demonX": 5, + "median": 2, + "demonY": 4, + "demonOffset": 4, + "demonDir": 2, + "dir": 3, + "demonFrame": 5, + "sprite_get_number": 1, + "*player.team": 2, + "dir*1": 2 + }, + "Emacs Lisp": { + ";": 333, + "ess": 48, + "-": 294, + "julia.el": 2, + "ESS": 5, + "julia": 39, + "mode": 12, + "and": 3, + "inferior": 13, + "interaction": 1, + "Copyright": 1, + "(": 156, + "C": 2, + ")": 144, + "Vitalie": 3, + "Spinu.": 1, + "Filename": 1, + "Author": 1, + "Spinu": 2, + "based": 1, + "on": 2, + "mode.el": 1, + "from": 3, + "lang": 1, + "project": 1, + "Maintainer": 1, + "Created": 1, + "Keywords": 1, + "This": 4, + "file": 10, + "is": 5, + "*NOT*": 1, + "part": 2, + "of": 8, + "GNU": 4, + "Emacs.": 1, + "program": 6, + "free": 1, + "software": 1, + "you": 1, + "can": 1, + "redistribute": 1, + "it": 3, + "and/or": 1, + "modify": 5, + "under": 1, + "the": 10, + "terms": 1, + "General": 3, + "Public": 3, + "License": 3, + "as": 1, + "published": 1, + "by": 1, + "Free": 2, + "Software": 2, + "Foundation": 2, + "either": 1, + "version": 2, + "any": 1, + "later": 1, + "version.": 1, + "distributed": 1, + "in": 3, + "hope": 1, + "that": 2, + "will": 1, + "be": 2, + "useful": 1, + "but": 2, + "WITHOUT": 1, + "ANY": 1, + "WARRANTY": 1, + "without": 1, + "even": 1, + "implied": 1, + "warranty": 1, + "MERCHANTABILITY": 1, + "or": 3, + "FITNESS": 1, + "FOR": 1, + "A": 1, + "PARTICULAR": 1, + "PURPOSE.": 1, + "See": 1, + "for": 8, + "more": 1, + "details.": 1, + "You": 1, + "should": 2, + "have": 1, + "received": 1, + "a": 4, + "copy": 2, + "along": 1, + "with": 4, + "this": 1, + "see": 2, + "COPYING.": 1, + "If": 1, + "not": 1, + "write": 2, + "to": 4, + "Inc.": 1, + "Franklin": 1, + "Street": 1, + "Fifth": 1, + "Floor": 1, + "Boston": 1, + "MA": 1, + "USA.": 1, + "Commentary": 1, + "customise": 1, + "name": 8, + "point": 6, + "your": 1, + "release": 1, + "basic": 1, + "start": 13, + "M": 2, + "x": 2, + "julia.": 2, + "require": 2, + "auto": 1, + "alist": 9, + "table": 9, + "character": 1, + "quote": 2, + "transpose": 1, + "syntax": 7, + "entry": 4, + ".": 40, + "Syntax": 3, + "inside": 1, + "char": 6, + "defvar": 5, + "let": 3, + "make": 4, + "defconst": 5, + "regex": 5, + "unquote": 1, + "forloop": 1, + "subset": 2, + "regexp": 6, + "font": 6, + "lock": 6, + "defaults": 2, + "list": 3, + "identity": 1, + "keyword": 2, + "face": 4, + "constant": 1, + "cons": 1, + "function": 7, + "keep": 2, + "string": 8, + "paragraph": 3, + "concat": 7, + "page": 2, + "delimiter": 2, + "separate": 1, + "ignore": 2, + "fill": 1, + "prefix": 2, + "t": 6, + "final": 1, + "newline": 1, + "comment": 6, + "add": 4, + "skip": 1, + "column": 1, + "indent": 8, + "S": 2, + "line": 5, + "calculate": 1, + "parse": 1, + "sexp": 1, + "comments": 1, + "style": 2, + "default": 1, + "ignored": 1, + "local": 6, + "process": 5, + "nil": 12, + "dump": 2, + "files": 1, + "_": 1, + "autoload": 1, + "defun": 5, + "send": 3, + "visibly": 1, + "temporary": 1, + "directory": 2, + "temp": 2, + "insert": 1, + "format": 3, + "load": 1, + "command": 5, + "get": 3, + "help": 3, + "topics": 1, + "&": 3, + "optional": 3, + "proc": 3, + "words": 1, + "vector": 1, + "com": 1, + "error": 6, + "s": 5, + "*in": 1, + "[": 3, + "n": 1, + "]": 3, + "*": 1, + "at": 5, + ".*": 2, + "+": 5, + "w*": 1, + "http": 1, + "//docs.julialang.org/en/latest/search/": 1, + "q": 1, + "%": 1, + "include": 1, + "funargs": 1, + "re": 2, + "args": 10, + "language": 1, + "STERM": 1, + "editor": 2, + "R": 2, + "pager": 2, + "versions": 1, + "Julia": 1, + "made": 1, + "available.": 1, + "String": 1, + "arguments": 2, + "used": 1, + "when": 2, + "starting": 1, + "group": 1, + "###autoload": 2, + "interactive": 2, + "setq": 2, + "customize": 5, + "emacs": 1, + "<": 1, + "hook": 4, + "complete": 1, + "object": 2, + "completion": 4, + "functions": 2, + "first": 1, + "if": 4, + "fboundp": 1, + "end": 1, + "workaround": 1, + "set": 3, + "variable": 3, + "post": 1, + "run": 2, + "settings": 1, + "notably": 1, + "null": 1, + "dribble": 1, + "buffer": 3, + "debugging": 1, + "only": 1, + "dialect": 1, + "current": 2, + "arg": 1, + "let*": 2, + "jl": 2, + "space": 1, + "just": 1, + "case": 1, + "read": 1, + "..": 3, + "multi": 1, + "...": 1, + "tb": 1, + "logo": 1, + "goto": 2, + "min": 1, + "while": 1, + "search": 1, + "forward": 1, + "replace": 1, + "match": 1, + "max": 1, + "inject": 1, + "code": 1, + "etc": 1, + "hooks": 1, + "busy": 1, + "funname": 5, + "eldoc": 1, + "show": 1, + "symbol": 2, + "aggressive": 1, + "car": 1, + "funname.start": 1, + "sequence": 1, + "nth": 1, + "W": 1, + "window": 2, + "width": 1, + "minibuffer": 1, + "length": 1, + "doc": 1, + "propertize": 1, + "use": 1, + "classes": 1, + "screws": 1, + "egrep": 1, + "print": 1 + }, + "PAWN": { + "//": 22, + "-": 1551, + "#include": 5, + "": 1, + "": 1, + "": 1, + "#pragma": 1, + "tabsize": 1, + "#define": 5, + "COLOR_WHITE": 2, + "xFFFFFFFF": 2, + "COLOR_NORMAL_PLAYER": 3, + "xFFBB7777": 1, + "CITY_LOS_SANTOS": 7, + "CITY_SAN_FIERRO": 4, + "CITY_LAS_VENTURAS": 6, + "new": 13, + "total_vehicles_from_files": 19, + ";": 257, + "gPlayerCitySelection": 21, + "[": 56, + "MAX_PLAYERS": 3, + "]": 56, + "gPlayerHasCitySelected": 6, + "gPlayerLastCitySelectionTick": 5, + "Text": 5, + "txtClassSelHelper": 14, + "txtLosSantos": 7, + "txtSanFierro": 7, + "txtLasVenturas": 7, + "thisanimid": 1, + "lastanimid": 1, + "main": 1, + "(": 273, + ")": 273, + "{": 39, + "print": 3, + "}": 39, + "public": 6, + "OnPlayerConnect": 1, + "playerid": 132, + "GameTextForPlayer": 1, + "SendClientMessage": 1, + "GetTickCount": 4, + "//SetPlayerColor": 2, + "//Kick": 1, + "return": 17, + "OnPlayerSpawn": 1, + "if": 28, + "IsPlayerNPC": 3, + "randSpawn": 16, + "SetPlayerInterior": 7, + "TogglePlayerClock": 2, + "ResetPlayerMoney": 3, + "GivePlayerMoney": 2, + "random": 3, + "sizeof": 3, + "gRandomSpawns_LosSantos": 5, + "SetPlayerPos": 6, + "SetPlayerFacingAngle": 6, + "else": 9, + "gRandomSpawns_SanFierro": 5, + "gRandomSpawns_LasVenturas": 5, + "SetPlayerSkillLevel": 11, + "WEAPONSKILL_PISTOL": 1, + "WEAPONSKILL_PISTOL_SILENCED": 1, + "WEAPONSKILL_DESERT_EAGLE": 1, + "WEAPONSKILL_SHOTGUN": 1, + "WEAPONSKILL_SAWNOFF_SHOTGUN": 1, + "WEAPONSKILL_SPAS12_SHOTGUN": 1, + "WEAPONSKILL_MICRO_UZI": 1, + "WEAPONSKILL_MP5": 1, + "WEAPONSKILL_AK47": 1, + "WEAPONSKILL_M4": 1, + "WEAPONSKILL_SNIPERRIFLE": 1, + "GivePlayerWeapon": 1, + "WEAPON_COLT45": 1, + "//GivePlayerWeapon": 1, + "WEAPON_MP5": 1, + "OnPlayerDeath": 1, + "killerid": 3, + "reason": 1, + "playercash": 4, + "INVALID_PLAYER_ID": 1, + "GetPlayerMoney": 1, + "ClassSel_SetupCharSelection": 2, + "SetPlayerCameraPos": 6, + "SetPlayerCameraLookAt": 6, + "ClassSel_InitCityNameText": 4, + "txtInit": 7, + "TextDrawUseBox": 2, + "TextDrawLetterSize": 2, + "TextDrawFont": 2, + "TextDrawSetShadow": 2, + "TextDrawSetOutline": 2, + "TextDrawColor": 2, + "xEEEEEEFF": 1, + "TextDrawBackgroundColor": 2, + "FF": 2, + "ClassSel_InitTextDraws": 2, + "TextDrawCreate": 4, + "TextDrawBoxColor": 1, + "BB": 1, + "TextDrawTextSize": 1, + "ClassSel_SetupSelectedCity": 3, + "TextDrawShowForPlayer": 4, + "TextDrawHideForPlayer": 10, + "ClassSel_SwitchToNextCity": 3, + "+": 19, + "PlayerPlaySound": 2, + "ClassSel_SwitchToPreviousCity": 2, + "<": 3, + "ClassSel_HandleCitySelection": 2, + "Keys": 3, + "ud": 2, + "lr": 4, + "GetPlayerKeys": 1, + "&": 1, + "KEY_FIRE": 1, + "TogglePlayerSpectating": 2, + "OnPlayerRequestClass": 1, + "classid": 1, + "GetPlayerState": 2, + "PLAYER_STATE_SPECTATING": 2, + "OnGameModeInit": 1, + "SetGameModeText": 1, + "ShowPlayerMarkers": 1, + "PLAYER_MARKERS_MODE_GLOBAL": 1, + "ShowNameTags": 1, + "SetNameTagDrawDistance": 1, + "EnableStuntBonusForAll": 1, + "DisableInteriorEnterExits": 1, + "SetWeather": 1, + "SetWorldTime": 1, + "//UsePlayerPedAnims": 1, + "//ManualVehicleEngineAndLights": 1, + "//LimitGlobalChatRadius": 1, + "AddPlayerClass": 69, + "//AddPlayerClass": 1, + "LoadStaticVehiclesFromFile": 17, + "printf": 1, + "OnPlayerUpdate": 1, + "IsPlayerConnected": 1, + "&&": 2, + "GetPlayerInterior": 1, + "GetPlayerWeapon": 2, + "SetPlayerArmedWeapon": 1, + "fists": 1, + "no": 1, + "syncing": 1, + "until": 1, + "they": 1, + "change": 1, + "their": 1, + "weapon": 1, + "WEAPON_MINIGUN": 1, + "Kick": 1 + }, + "Protocol Buffer": { + "package": 1, + "tutorial": 1, + ";": 13, + "option": 2, + "java_package": 1, + "java_outer_classname": 1, + "message": 3, + "Person": 2, + "{": 4, + "required": 3, + "string": 3, + "name": 1, + "int32": 1, + "id": 1, + "optional": 2, + "email": 1, + "enum": 1, + "PhoneType": 2, + "MOBILE": 1, + "HOME": 2, + "WORK": 1, + "}": 4, + "PhoneNumber": 2, + "number": 1, + "type": 1, + "[": 1, + "default": 1, + "]": 1, + "repeated": 2, + "phone": 1, + "AddressBook": 1, + "person": 1 + }, + "Parrot Internal Representation": { + "SHEBANG#!parrot": 1, + ".sub": 1, + "main": 1, + "say": 1, + ".end": 1 + }, + "Standard ML": { + "signature": 2, + "LAZY_BASE": 3, + "sig": 2, + "type": 5, + "a": 74, + "lazy": 12, + "-": 19, + ")": 826, + "end": 52, + "LAZY": 1, + "bool": 9, + "val": 143, + "inject": 3, + "toString": 3, + "(": 822, + "string": 14, + "eq": 2, + "*": 9, + "eqBy": 3, + "compare": 7, + "order": 2, + "map": 2, + "b": 58, + "structure": 10, + "Ops": 2, + "LazyBase": 2, + "struct": 9, + "exception": 1, + "Undefined": 3, + "fun": 51, + "delay": 3, + "f": 37, + "force": 9, + "undefined": 1, + "fn": 124, + "raise": 5, + "LazyMemoBase": 2, + "datatype": 28, + "|": 225, + "Done": 1, + "of": 90, + "unit": 6, + "let": 43, + "open": 8, + "B": 1, + "x": 59, + "isUndefined": 2, + "ignore": 2, + ";": 20, + "false": 31, + "handle": 3, + "true": 35, + "if": 50, + "then": 50, + "else": 50, + "p": 6, + "y": 44, + "op": 1, + "Lazy": 1, + "LazyFn": 2, + "LazyMemo": 1, + "functor": 2, + "Main": 1, + "S": 2, + "MAIN_STRUCTS": 1, + "MAIN": 1, + "Compile": 3, + "Place": 1, + "t": 23, + "Files": 3, + "Generated": 4, + "MLB": 4, + "O": 4, + "OUT": 3, + "SML": 6, + "TypeCheck": 3, + "toInt": 1, + "int": 1, + "OptPred": 1, + "Target": 1, + "Yes": 1, + "Show": 1, + "Anns": 1, + "PathMap": 1, + "gcc": 5, + "ref": 45, + "arScript": 3, + "asOpts": 6, + "{": 79, + "opt": 34, + "pred": 15, + "OptPred.t": 3, + "}": 79, + "list": 10, + "[": 104, + "]": 108, + "ccOpts": 6, + "linkOpts": 6, + "buildConstants": 2, + "debugRuntime": 3, + "debugFormat": 5, + "Dwarf": 3, + "DwarfPlus": 3, + "Dwarf2": 3, + "Stabs": 3, + "StabsPlus": 3, + "option": 6, + "NONE": 47, + "expert": 3, + "explicitAlign": 3, + "Control.align": 1, + "explicitChunk": 2, + "Control.chunk": 1, + "explicitCodegen": 5, + "Native": 5, + "Explicit": 5, + "Control.codegen": 3, + "keepGenerated": 3, + "keepO": 3, + "output": 16, + "profileSet": 3, + "profileTimeSet": 3, + "runtimeArgs": 3, + "show": 2, + "Show.t": 1, + "stop": 10, + "Place.OUT": 1, + "parseMlbPathVar": 3, + "line": 9, + "String.t": 1, + "case": 83, + "String.tokens": 7, + "Char.isSpace": 8, + "var": 3, + "path": 7, + "SOME": 68, + "_": 83, + "readMlbPathMap": 2, + "file": 14, + "File.t": 12, + "not": 1, + "File.canRead": 1, + "Error.bug": 14, + "concat": 52, + "List.keepAllMap": 4, + "File.lines": 2, + "String.forall": 4, + "v": 4, + "targetMap": 5, + "arch": 11, + "MLton.Platform.Arch.t": 3, + "os": 13, + "MLton.Platform.OS.t": 3, + "target": 28, + "Promise.lazy": 1, + "targetsDir": 5, + "OS.Path.mkAbsolute": 4, + "relativeTo": 4, + "Control.libDir": 1, + "potentialTargets": 2, + "Dir.lsDirs": 1, + "targetDir": 5, + "osFile": 2, + "OS.Path.joinDirFile": 3, + "dir": 4, + "archFile": 2, + "File.contents": 2, + "List.first": 2, + "MLton.Platform.OS.fromString": 1, + "MLton.Platform.Arch.fromString": 1, + "in": 40, + "setTargetType": 3, + "usage": 48, + "List.peek": 7, + "...": 23, + "Control": 3, + "Target.arch": 2, + "Target.os": 2, + "hasCodegen": 8, + "cg": 21, + "z": 73, + "Control.Target.arch": 4, + "Control.Target.os": 2, + "Control.Format.t": 1, + "AMD64": 2, + "x86Codegen": 9, + "X86": 3, + "amd64Codegen": 8, + "<": 3, + "Darwin": 6, + "orelse": 7, + "Control.format": 3, + "Executable": 5, + "Archive": 4, + "hasNativeCodegen": 2, + "defaultAlignIs8": 3, + "Alpha": 1, + "ARM": 1, + "HPPA": 1, + "IA64": 1, + "MIPS": 1, + "Sparc": 1, + "S390": 1, + "makeOptions": 3, + "s": 168, + "Fail": 2, + "reportAnnotation": 4, + "flag": 12, + "e": 18, + "Control.Elaborate.Bad": 1, + "Control.Elaborate.Deprecated": 1, + "ids": 2, + "Control.warnDeprecated": 1, + "Out.output": 2, + "Out.error": 3, + "List.toString": 1, + "Control.Elaborate.Id.name": 1, + "Control.Elaborate.Good": 1, + "Control.Elaborate.Other": 1, + "Popt": 1, + "tokenizeOpt": 4, + "opts": 4, + "List.foreach": 5, + "tokenizeTargetOpt": 4, + "List.map": 3, + "Normal": 29, + "SpaceString": 48, + "Align4": 2, + "Align8": 2, + "Expert": 72, + "o": 8, + "List.push": 22, + "OptPred.Yes": 6, + "boolRef": 20, + "ChunkPerFunc": 1, + "OneChunk": 1, + "String.hasPrefix": 2, + "prefix": 3, + "String.dropPrefix": 1, + "Char.isDigit": 3, + "Int.fromString": 4, + "n": 4, + "Coalesce": 1, + "limit": 1, + "Bool": 10, + "closureConvertGlobalize": 1, + "closureConvertShrink": 1, + "String.concatWith": 2, + "Control.Codegen.all": 2, + "Control.Codegen.toString": 2, + "name": 7, + "value": 4, + "Compile.setCommandLineConstant": 2, + "contifyIntoMain": 1, + "debug": 4, + "Control.Elaborate.processDefault": 1, + "Control.defaultChar": 1, + "Control.defaultInt": 5, + "Control.defaultReal": 2, + "Control.defaultWideChar": 2, + "Control.defaultWord": 4, + "Regexp.fromString": 7, + "re": 34, + "Regexp.compileDFA": 4, + "diagPasses": 1, + "Control.Elaborate.processEnabled": 2, + "dropPasses": 1, + "intRef": 8, + "errorThreshhold": 1, + "emitMain": 1, + "exportHeader": 3, + "Control.Format.all": 2, + "Control.Format.toString": 2, + "gcCheck": 1, + "Limit": 1, + "First": 1, + "Every": 1, + "Native.IEEEFP": 1, + "indentation": 1, + "Int": 8, + "i": 8, + "inlineNonRec": 6, + "small": 19, + "product": 19, + "#product": 1, + "inlineIntoMain": 1, + "loops": 18, + "inlineLeafA": 6, + "repeat": 18, + "size": 19, + "inlineLeafB": 6, + "keepCoreML": 1, + "keepDot": 1, + "keepMachine": 1, + "keepRSSA": 1, + "keepSSA": 1, + "keepSSA2": 1, + "keepSXML": 1, + "keepXML": 1, + "keepPasses": 1, + "libname": 9, + "loopPasses": 1, + "Int.toString": 3, + "markCards": 1, + "maxFunctionSize": 1, + "mlbPathVars": 4, + "@": 3, + "Native.commented": 1, + "Native.copyProp": 1, + "Native.cutoff": 1, + "Native.liveTransfer": 1, + "Native.liveStack": 1, + "Native.moveHoist": 1, + "Native.optimize": 1, + "Native.split": 1, + "Native.shuffle": 1, + "err": 1, + "optimizationPasses": 1, + "il": 10, + "set": 10, + "Result.Yes": 6, + "Result.No": 5, + "polyvariance": 9, + "hofo": 12, + "rounds": 12, + "preferAbsPaths": 1, + "profPasses": 1, + "profile": 6, + "ProfileNone": 2, + "ProfileAlloc": 1, + "ProfileCallStack": 3, + "ProfileCount": 1, + "ProfileDrop": 1, + "ProfileLabel": 1, + "ProfileTimeLabel": 4, + "ProfileTimeField": 2, + "profileBranch": 1, + "Regexp": 3, + "seq": 3, + "anys": 6, + "compileDFA": 3, + "profileC": 1, + "profileInclExcl": 2, + "profileIL": 3, + "ProfileSource": 1, + "ProfileSSA": 1, + "ProfileSSA2": 1, + "profileRaise": 2, + "profileStack": 1, + "profileVal": 1, + "Show.Anns": 1, + "Show.PathMap": 1, + "showBasis": 1, + "showDefUse": 1, + "showTypes": 1, + "Control.optimizationPasses": 4, + "String.equals": 4, + "Place.Files": 2, + "Place.Generated": 2, + "Place.O": 3, + "Place.TypeCheck": 1, + "#target": 2, + "Self": 2, + "Cross": 2, + "SpaceString2": 6, + "OptPred.Target": 6, + "#1": 1, + "trace": 4, + "#2": 2, + "typeCheck": 1, + "verbosity": 4, + "Silent": 3, + "Top": 5, + "Pass": 1, + "Detail": 1, + "warnAnn": 1, + "warnDeprecated": 1, + "zoneCutDepth": 1, + "style": 6, + "arg": 3, + "desc": 3, + "mainUsage": 3, + "parse": 2, + "Popt.makeUsage": 1, + "showExpert": 1, + "commandLine": 5, + "args": 8, + "lib": 2, + "libDir": 2, + "OS.Path.mkCanonical": 1, + "result": 1, + "targetStr": 3, + "libTargetDir": 1, + "targetArch": 4, + "archStr": 1, + "String.toLower": 2, + "MLton.Platform.Arch.toString": 2, + "targetOS": 5, + "OSStr": 2, + "MLton.Platform.OS.toString": 1, + "positionIndependent": 3, + "format": 7, + "MinGW": 4, + "Cygwin": 4, + "Library": 6, + "LibArchive": 3, + "Control.positionIndependent": 1, + "align": 1, + "codegen": 4, + "CCodegen": 1, + "MLton.Rusage.measureGC": 1, + "exnHistory": 1, + "Bool.toString": 1, + "Control.profile": 1, + "Control.ProfileCallStack": 1, + "sizeMap": 1, + "Control.libTargetDir": 1, + "ty": 4, + "Bytes.toBits": 1, + "Bytes.fromInt": 1, + "lookup": 4, + "use": 2, + "on": 1, + "must": 1, + "x86": 1, + "with": 1, + "ieee": 1, + "fp": 1, + "can": 1, + "No": 1, + "Out.standard": 1, + "input": 22, + "rest": 3, + "inputFile": 1, + "File.base": 5, + "File.fileOf": 1, + "start": 6, + "base": 3, + "rec": 1, + "loop": 3, + "suf": 14, + "hasNum": 2, + "sufs": 2, + "String.hasSuffix": 2, + "suffix": 8, + "Place.t": 1, + "List.exists": 1, + "File.withIn": 1, + "csoFiles": 1, + "Place.compare": 1, + "GREATER": 5, + "Place.toString": 2, + "EQUAL": 5, + "LESS": 5, + "printVersion": 1, + "tempFiles": 3, + "tmpDir": 2, + "tmpVar": 2, + "default": 2, + "MLton.Platform.OS.host": 2, + "Process.getEnv": 1, + "d": 32, + "temp": 3, + "out": 9, + "File.temp": 1, + "OS.Path.concat": 1, + "Out.close": 2, + "maybeOut": 10, + "maybeOutBase": 4, + "File.extension": 3, + "outputBase": 2, + "ext": 1, + "OS.Path.splitBaseExt": 1, + "defLibname": 6, + "OS.Path.splitDirFile": 1, + "String.extract": 1, + "toAlNum": 2, + "c": 42, + "Char.isAlphaNum": 1, + "#": 3, + "CharVector.map": 1, + "atMLtons": 1, + "Vector.fromList": 1, + "tokenize": 1, + "rev": 2, + "gccDebug": 3, + "asDebug": 2, + "compileO": 3, + "inputs": 7, + "libOpts": 2, + "System.system": 4, + "List.concat": 4, + "linkArchives": 1, + "String.contains": 1, + "File.move": 1, + "from": 1, + "to": 1, + "mkOutputO": 3, + "Counter.t": 3, + "File.dirOf": 2, + "Counter.next": 1, + "compileC": 2, + "debugSwitches": 2, + "compileS": 2, + "compileCSO": 1, + "List.forall": 1, + "Counter.new": 1, + "oFiles": 2, + "List.fold": 1, + "ac": 4, + "extension": 6, + "Option.toString": 1, + "mkCompileSrc": 1, + "listFiles": 2, + "elaborate": 1, + "compile": 2, + "outputs": 2, + "r": 3, + "make": 1, + "Int.inc": 1, + "Out.openOut": 1, + "print": 4, + "outputHeader": 2, + "done": 3, + "Control.No": 1, + "l": 2, + "Layout.output": 1, + "Out.newline": 1, + "Vector.foreach": 1, + "String.translate": 1, + "/": 1, + "Type": 1, + "Check": 1, + ".c": 1, + ".s": 1, + "invalid": 1, + "MLton": 1, + "Exn.finally": 1, + "File.remove": 1, + "doit": 1, + "Process.makeCommandLine": 1, + "main": 1, + "mainWrapped": 1, + "OS.Process.exit": 1, + "CommandLine.arguments": 1, + "RedBlackTree": 1, + "key": 16, + "entry": 12, + "dict": 17, + "Empty": 15, + "Red": 41, + "local": 1, + "lk": 4, + "tree": 4, + "and": 2, + "zipper": 3, + "TOP": 5, + "LEFTB": 10, + "RIGHTB": 10, + "delete": 3, + "zip": 19, + "Black": 40, + "LEFTR": 8, + "RIGHTR": 9, + "bbZip": 28, + "w": 17, + "delMin": 8, + "Match": 1, + "joinRed": 3, + "needB": 2, + "del": 8, + "NotFound": 2, + "entry1": 16, + "as": 7, + "key1": 8, + "datum1": 4, + "joinBlack": 1, + "insertShadow": 3, + "datum": 1, + "oldEntry": 7, + "ins": 8, + "left": 10, + "right": 10, + "restore_left": 1, + "restore_right": 1, + "app": 3, + "ap": 7, + "new": 1, + "insert": 2, + "table": 14, + "clear": 1 + }, + "MediaWiki": { + "Overview": 1, + "The": 17, + "GDB": 15, + "Tracepoint": 4, + "Analysis": 1, + "feature": 3, + "is": 9, + "an": 3, + "extension": 1, + "to": 12, + "the": 72, + "Tracing": 3, + "and": 20, + "Monitoring": 1, + "Framework": 1, + "that": 4, + "allows": 2, + "visualization": 1, + "analysis": 1, + "of": 8, + "C/C": 10, + "+": 20, + "tracepoint": 5, + "data": 5, + "collected": 2, + "by": 10, + "stored": 1, + "a": 12, + "log": 1, + "file.": 1, "Getting": 1, "Started": 1, - "
    ": 3, - "gives": 2, - "a": 3, - "powerful": 1, - "patterns": 1, - "-": 3, - "based": 1, - "way": 1, - "build": 1, - "dynamic": 1, - "websites": 1, - "that": 5, - "enables": 1, - "clean": 1, - "separation": 1, - "of": 2, - "concerns": 1, - "full": 1, - "control": 1, - "over": 1, - "markup": 1, - "for": 4, - "enjoyable": 1, - "agile": 1, - "development.": 1, + "can": 9, + "be": 18, + "installed": 2, + "from": 8, + "Eclipse": 1, + "update": 2, + "site": 1, + "selecting": 1, + ".": 8, + "requires": 1, + "version": 1, + "or": 8, + "later": 1, + "on": 3, + "local": 1, + "host.": 1, + "executable": 3, + "program": 1, + "must": 3, + "found": 1, + "in": 15, + "path.": 1, + "Trace": 9, + "Perspective": 1, + "To": 1, + "open": 1, + "perspective": 2, + "select": 5, "includes": 1, - "many": 1, - "enable": 1, - "fast": 1, - "TDD": 1, - "friendly": 1, - "development": 1, - "creating": 1, - "sophisticated": 1, - "applications": 1, - "use": 1, - "latest": 1, - "web": 2, - "standards.": 1, - "Learn": 3, - "
  2. ": 3, - "Add": 1, - "NuGet": 2, - "packages": 1, - "jump": 1, - "start": 1, + "following": 1, + "views": 2, + "default": 2, + "*": 6, + "This": 7, + "view": 7, + "shows": 7, + "projects": 1, + "workspace": 2, + "used": 1, + "create": 1, + "manage": 1, + "projects.": 1, + "running": 1, + "Postmortem": 5, + "Debugger": 4, + "instances": 1, + "displays": 2, + "thread": 1, + "stack": 2, + "trace": 17, + "associated": 1, + "with": 4, + "tracepoint.": 3, + "status": 1, + "debugger": 1, + "navigation": 1, + "records.": 1, + "console": 1, + "output": 1, + "Debugger.": 1, + "editor": 7, + "area": 2, + "contains": 1, + "editors": 1, + "when": 1, + "opened.": 1, + "[": 11, + "Image": 2, + "images/GDBTracePerspective.png": 1, + "]": 11, + "Collecting": 2, + "Data": 4, + "outside": 2, + "scope": 1, + "this": 5, + "feature.": 1, + "It": 1, + "done": 2, + "command": 1, + "line": 2, + "using": 3, + "CDT": 3, + "debug": 1, + "component": 1, + "within": 1, + "Eclipse.": 1, + "See": 1, + "FAQ": 2, + "entry": 2, + "#References": 2, + "|": 2, + "References": 3, + "section.": 2, + "Importing": 2, + "Some": 1, + "information": 1, + "section": 1, + "redundant": 1, + "LTTng": 3, + "User": 3, + "Guide.": 1, + "For": 1, + "further": 1, + "details": 1, + "see": 1, + "Guide": 2, + "Creating": 1, + "Project": 1, + "In": 5, + "right": 3, + "-": 8, + "click": 8, + "context": 4, + "menu.": 4, + "dialog": 1, + "name": 2, "your": 2, - "coding": 1, - "makes": 1, - "it": 2, - "easy": 1, - "install": 1, - "update": 1, - "free": 1, - "libraries": 1, - "tools.": 1, - "Find": 1, - "Web": 1, - "Hosting": 1, - "You": 1, - "can": 1, - "easily": 1, - "find": 1, - "hosting": 1, - "company": 1, - "offers": 1, - "right": 1, - "mix": 1, - "price": 1, - "applications.": 1, - "
": 1, - "using": 5, - "System": 1, - "System.Collections.Generic": 1, - "System.Linq": 1, - "System.Text": 1, - "System.Threading.Tasks": 1, - "namespace": 1, - "LittleSampleApp": 1, - "///": 4, - "": 1, - "Just": 1, - "what": 1, - "says": 1, - "on": 1, - "tin.": 1, - "A": 1, - "little": 1, - "sample": 1, + "project": 2, + "tracing": 1, + "folder": 5, + "Browse": 2, + "enter": 2, + "source": 2, + "directory.": 1, + "Select": 1, + "file": 6, + "tree.": 1, + "Optionally": 1, + "set": 1, + "type": 2, + "Click": 1, + "Alternatively": 1, + "drag": 1, + "&": 1, + "dropped": 1, + "any": 2, + "external": 1, + "manager.": 1, + "Selecting": 2, + "Type": 1, + "Right": 2, + "imported": 1, + "choose": 2, + "step": 1, + "omitted": 1, + "if": 1, + "was": 2, + "selected": 3, + "at": 3, + "import.": 1, + "will": 6, + "updated": 2, + "icon": 1, + "images/gdb_icon16.png": 1, + "Executable": 1, + "created": 1, + "identified": 1, + "so": 2, + "launched": 1, + "properly.": 1, + "path": 1, + "press": 1, + "recognized": 1, + "as": 1, + "executable.": 1, + "Visualizing": 1, + "Opening": 1, + "double": 1, + "it": 3, + "opened": 2, + "Events": 5, + "instance": 1, + "launched.": 1, + "If": 2, + "available": 1, + "code": 1, + "corresponding": 1, + "first": 1, + "record": 2, + "also": 2, + "editor.": 2, + "At": 1, + "point": 1, + "recommended": 1, + "relocate": 1, + "not": 1, + "hidden": 1, + "Viewing": 1, + "table": 1, + "shown": 1, + "one": 1, + "row": 1, + "for": 2, + "each": 1, + "record.": 2, + "column": 6, + "sequential": 1, + "number.": 1, + "number": 2, + "assigned": 1, + "collection": 1, + "time": 2, + "method": 1, + "where": 1, + "set.": 1, + "run": 1, + "Searching": 1, + "filtering": 1, + "entering": 1, + "regular": 1, + "expression": 1, + "header.": 1, + "Navigating": 1, + "records": 1, + "keyboard": 1, + "mouse.": 1, + "show": 1, + "current": 1, + "navigated": 1, + "clicking": 1, + "buttons.": 1, + "updated.": 1, + "http": 4, + "//wiki.eclipse.org/index.php/Linux_Tools_Project/LTTng2/User_Guide": 1, + "//wiki.eclipse.org/CDT/User/FAQ#How_can_I_trace_my_application_using_C.2FC.2B.2B_Tracepoints.3F": 1, + "How": 1, + "I": 1, + "my": 1, "application": 1, - "Linguist": 1, - "try": 1, - "out.": 1, - "": 1, - "class": 1, - "Program": 1, - "static": 1, + "Tracepoints": 1, + "Updating": 1, + "Document": 1, + "document": 2, + "maintained": 1, + "collaborative": 1, + "wiki.": 1, + "you": 1, + "wish": 1, + "modify": 1, + "please": 1, + "visit": 1, + "//wiki.eclipse.org/index.php/Linux_Tools_Project/GDB_Tracepoint_Analysis/User_Guide": 1, + "//wiki.eclipse.org/Linux_Tools_Project/GDB_Tracepoint_Analysis/User_Guide": 1 + }, + "Jade": { + "p.": 1, + "Hello": 1, + "World": 1 + }, + "Haml": { + "%": 1, + "p": 1, + "Hello": 1, + "World": 1 + }, + "JSONiq": { + "(": 14, + "Query": 2, + "for": 4, + "returning": 1, + "one": 1, + "database": 2, + "entry": 1, + ")": 14, + "import": 5, + "module": 5, + "namespace": 5, + "req": 6, + ";": 9, + "catalog": 4, + "variable": 4, + "id": 3, + "param": 4, + "-": 11, + "values": 4, + "[": 5, + "]": 5, + "part": 2, + "get": 2, + "data": 4, + "by": 2, + "key": 1, + "searching": 1, + "the": 1, + "keywords": 1, + "index": 3, + "phrase": 2, + "limit": 2, + "integer": 1, + "result": 1, + "at": 1, + "idx": 2, + "in": 1, + "search": 1, + "where": 1, + "le": 1, + "let": 1, + "result.s": 1, + "result.p": 1, + "return": 1, + "{": 2, + "|": 2, + "score": 1, + "result.r": 1, + "}": 2 + }, + "Logos": { + "%": 15, + "hook": 2, + "ABC": 2, + "-": 3, + "(": 8, + "id": 2, + ")": 8, + "a": 1, + "B": 1, + "b": 1, + "{": 4, + "log": 1, + ";": 8, + "return": 2, + "orig": 2, + "nil": 2, + "}": 4, + "end": 4, + "subclass": 1, + "DEF": 1, + "NSObject": 1, + "init": 3, + "[": 2, + "c": 1, + "RuntimeAccessibleClass": 1, + "alloc": 1, + "]": 2, + "group": 1, + "OptionalHooks": 2, "void": 1, - "Main": 1, - "(": 3, - "string": 1, + "release": 1, + "self": 1, + "retain": 1, + "ctor": 1, + "if": 1, + "OptionalCondition": 1 + }, + "Julia": { + "##": 5, + "Test": 1, + "case": 1, + "from": 1, + "Issue": 1, + "#445": 1, + "#STOCKCORR": 1, + "-": 11, + "The": 1, + "original": 1, + "unoptimised": 1, + "code": 1, + "that": 1, + "simulates": 1, + "two": 2, + "correlated": 1, + "assets": 1, + "function": 1, + "stockcorr": 1, + "(": 13, + ")": 13, + "Correlated": 1, + "asset": 1, + "information": 1, + "CurrentPrice": 3, + "[": 20, + "]": 20, + "#": 11, + "Initial": 1, + "Prices": 1, + "of": 6, + "the": 2, + "stocks": 1, + "Corr": 2, + ";": 1, + "Correlation": 1, + "Matrix": 2, + "T": 5, + "Number": 2, + "days": 3, + "to": 1, + "simulate": 1, + "years": 1, + "n": 4, + "simulations": 1, + "dt": 3, + "/250": 1, + "Time": 1, + "step": 1, + "year": 1, + "Div": 3, + "Dividend": 1, + "Vol": 5, + "Volatility": 1, + "Market": 1, + "Information": 1, + "r": 3, + "Risk": 1, + "free": 1, + "rate": 1, + "Define": 1, + "storages": 1, + "SimulPriceA": 5, + "zeros": 2, + "Simulated": 2, + "Price": 2, + "Asset": 2, + "A": 1, + "SimulPriceB": 5, + "B": 1, + "Generating": 1, + "paths": 1, + "stock": 1, + "prices": 1, + "by": 2, + "Geometric": 1, + "Brownian": 1, + "Motion": 1, + "UpperTriangle": 2, + "chol": 1, + "Cholesky": 1, + "decomposition": 1, + "for": 2, + "i": 5, + "Wiener": 1, + "randn": 1, + "CorrWiener": 1, + "Wiener*UpperTriangle": 1, + "j": 7, + "*exp": 2, + "/2": 2, + "*dt": 2, + "+": 2, + "*sqrt": 2, + "*CorrWiener": 2, + "end": 3, + "return": 1 + }, + "XProc": { + "": 1, + "version=": 2, + "encoding=": 1, + "": 1, + "xmlns": 2, + "p=": 1, + "c=": 1, + "": 1, + "port=": 2, + "": 1, + "": 1, + "Hello": 1, + "world": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1 + }, + "TypeScript": { + "console.log": 1, + "(": 18, + ")": 18, + ";": 8, + "class": 3, + "Animal": 4, + "{": 9, + "constructor": 3, + "public": 1, + "name": 5, + "}": 9, + "move": 3, + "meters": 2, + "alert": 3, + "this.name": 1, + "+": 3, + "Snake": 2, + "extends": 2, + "super": 2, + "super.move": 2, + "Horse": 2, + "var": 2, + "sam": 1, + "new": 2, + "tom": 1, + "sam.move": 1, + "tom.move": 1 + }, + "XQuery": { + "(": 38, + "-": 486, + "xproc.xqm": 1, + "core": 1, + "xqm": 1, + "contains": 1, + "entry": 2, + "points": 1, + "primary": 1, + "eval": 3, + "step": 5, + "function": 3, + "and": 3, + "control": 1, + "functions.": 1, + ")": 38, + "xquery": 1, + "version": 1, + "encoding": 1, + ";": 25, + "module": 6, + "namespace": 8, + "xproc": 17, + "declare": 24, + "namespaces": 5, + "p": 2, + "c": 1, + "err": 1, + "imports": 1, + "import": 4, + "util": 1, + "at": 4, + "const": 1, + "parse": 8, + "u": 2, + "options": 2, + "boundary": 1, + "space": 1, + "preserve": 1, + "option": 1, + "saxon": 1, + "output": 1, + "functions": 1, + "variable": 13, + "run": 2, + "run#6": 1, + "choose": 1, + "try": 1, + "catch": 1, + "group": 1, + "for": 1, + "each": 1, + "viewport": 1, + "library": 1, + "pipeline": 8, + "list": 1, + "all": 1, + "declared": 1, + "enum": 3, + "{": 5, + "": 1, + "name=": 1, + "ns": 1, + "": 1, + "}": 5, + "": 1, + "": 1, + "point": 1, + "stdin": 1, + "dflag": 1, + "tflag": 1, + "bindings": 2, + "STEP": 3, + "I": 1, + "preprocess": 1, + "let": 6, + "validate": 1, + "explicit": 3, + "AST": 2, + "name": 1, + "type": 1, + "ast": 1, + "element": 1, + "parse/@*": 1, + "sort": 1, + "parse/*": 1, + "II": 1, + "eval_result": 1, + "III": 1, + "serialize": 1, + "return": 2, + "results": 1, + "serialized_result": 2 + }, + "MTML": { + "<$mt:Var>": 15, + "name=": 19, + "value=": 9, + "": 1, + "op=": 8, + "setvar=": 9, + "": 1, + "<": 2, + "a": 1, + "href": 1, + "<$mt:CategoryLabel>": 1, + "remove_html=": 1, + "": 1, + "": 1, + "": 1, + "function=": 1, + "": 1, + "gt=": 2, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 2, + "from=": 2, + "to=": 2, + "div": 1, + "class": 1, + "col_num": 1, + "": 2, + "": 1 + }, + "Shell": { + "SHEBANG#!bash": 8, + "name": 1, + "foodforthought.jpg": 1, + "echo": 71, + "{": 63, + "name##*fo": 1, + "}": 61, + "SHEBANG#!sh": 2, + "#": 53, + "declare": 22, + "-": 391, + "r": 17, + "sbt_release_version": 2, + "sbt_snapshot_version": 2, + "SNAPSHOT": 3, + "unset": 10, + "sbt_jar": 3, + "sbt_dir": 2, + "sbt_create": 2, + "sbt_snapshot": 1, + "sbt_launch_dir": 3, + "scala_version": 3, + "java_home": 1, + "sbt_explicit_version": 7, + "verbose": 6, + "debug": 11, + "quiet": 6, + "build_props_sbt": 3, + "(": 107, + ")": 154, + "if": 39, + "[": 85, + "f": 68, + "project/build.properties": 9, + "]": 85, + ";": 138, + "then": 41, + "versionLine": 2, + "grep": 8, + "sbt.version": 3, + "versionString": 3, + "versionLine##sbt.version": 1, + "fi": 34, + "update_build_props_sbt": 2, + "local": 22, + "ver": 5, + "old": 4, + "return": 3, + "elif": 4, + "perl": 3, + "pi": 1, + "e": 4, + "q": 8, + "||": 12, + "Updated": 1, + "file": 9, + "setting": 2, + "to": 33, + "Previous": 1, + "value": 1, + "was": 1, + "sbt_version": 8, + "n": 22, + "else": 10, + "v": 11, + "echoerr": 3, + "&": 5, + "vlog": 1, + "&&": 65, + "dlog": 8, + "get_script_path": 2, + "path": 13, + "L": 1, + "target": 1, + "readlink": 1, + "get_mem_opts": 3, + "mem": 4, + "perm": 6, + "/": 2, + "<": 2, + "codecache": 1, + "die": 2, + "exit": 10, + "make_url": 3, + "groupid": 1, + "category": 1, + "version": 12, + "default_jvm_opts": 1, + "default_sbt_opts": 1, + "default_sbt_mem": 2, + "noshare_opts": 1, + "sbt_opts_file": 1, + "jvm_opts_file": 1, + "latest_28": 1, + "latest_29": 1, + "latest_210": 1, + "script_path": 1, + "script_dir": 1, + "script_name": 2, + "java_cmd": 2, + "java": 2, + "sbt_mem": 5, + "a": 12, + "residual_args": 4, + "java_args": 3, + "scalac_args": 4, + "sbt_commands": 2, + "build_props_scala": 1, + "build.scala.versions": 1, + "versionLine##build.scala.versions": 1, + "%": 5, + ".*": 2, + "execRunner": 2, + "for": 7, + "arg": 3, + "do": 8, + "printf": 4, + "|": 17, + "done": 8, + "exec": 3, + "sbt_groupid": 3, + "case": 9, + "in": 25, + "*": 11, + "org.scala": 4, + "tools.sbt": 3, + "sbt": 18, + "esac": 7, + "sbt_artifactory_list": 2, + "version0": 2, + "url": 4, + "curl": 8, + "s": 14, + "list": 3, + "only": 6, + "F": 1, + "pe": 1, + "make_release_url": 2, + "releases": 1, + "make_snapshot_url": 2, + "snapshots": 1, + "head": 1, + "/dev/null": 6, + "jar_url": 1, + "jar_file": 1, + "download_url": 2, + "jar": 3, + "mkdir": 2, + "p": 2, + "dirname": 1, + "which": 10, + "fail": 1, + "silent": 1, + "output": 1, + "wget": 2, + "O": 1, + "acquire_sbt_jar": 1, + "sbt_url": 1, + "usage": 2, + "cat": 3, + "<<": 2, + "EOM": 3, + "Usage": 1, + "options": 8, + "h": 3, + "help": 5, + "print": 1, + "this": 6, + "message": 1, + "runner": 1, + "is": 11, + "chattier": 1, + "d": 9, + "set": 21, + "log": 2, + "level": 2, + "Debug": 1, + "Error": 1, + "no": 16, + "colors": 2, + "disable": 1, + "ANSI": 1, + "color": 1, + "codes": 1, + "create": 2, + "start": 1, + "even": 3, + "current": 1, + "directory": 5, + "contains": 2, + "project": 1, + "dir": 3, + "": 3, + "global": 1, + "settings/plugins": 1, + "default": 4, + "/.sbt/": 1, + "": 1, + "boot": 3, + "shared": 1, + "/.sbt/boot": 1, + "series": 1, + "ivy": 2, + "Ivy": 1, + "repository": 3, + "/.ivy2": 1, + "": 1, + "memory": 3, + "share": 2, + "use": 1, + "all": 1, + "caches": 1, + "sharing": 1, + "offline": 3, + "put": 1, + "mode": 2, + "jvm": 2, + "": 1, + "Turn": 1, + "on": 4, + "JVM": 1, + "debugging": 1, + "open": 1, + "at": 1, + "the": 17, + "given": 2, + "port.": 1, + "batch": 2, + "Disable": 1, + "interactive": 1, + "The": 1, + "way": 1, + "accomplish": 1, + "pre": 1, + "there": 2, + "build.properties": 1, + "an": 1, + "property": 1, + "update": 2, + "disk.": 1, + "That": 1, + "scalacOptions": 3, + "S": 2, + "stripped": 1, + "In": 1, + "of": 6, + "duplicated": 1, + "or": 3, + "conflicting": 1, + "order": 1, + "above": 1, + "shows": 1, + "precedence": 1, + "JAVA_OPTS": 1, + "lowest": 1, + "command": 5, + "line": 1, + "highest.": 1, + "addJava": 9, + "addSbt": 12, + "addScalac": 2, + "addResidual": 2, + "addResolver": 1, + "addDebugger": 2, + "get_jvm_opts": 2, + "process_args": 2, + "require_arg": 12, + "type": 5, + "opt": 3, + "z": 12, + "while": 3, + "gt": 1, + "shift": 28, + "integer": 1, + "inc": 1, + "port": 1, + "true": 2, + "snapshot": 1, + "launch": 1, + "scala": 3, + "home": 2, + "D*": 1, + "J*": 1, + "S*": 1, + "sbtargs": 3, + "IFS": 1, + "read": 1, + "<\"$sbt_opts_file\">": 1, + "process": 1, + "combined": 1, + "args": 2, + "reset": 1, + "residuals": 1, + "argumentCount=": 1, + "we": 1, + "were": 1, + "any": 1, + "opts": 1, + "eq": 1, + "0": 1, + "ThisBuild": 1, + "Update": 1, + "build": 2, + "properties": 1, + "disk": 5, + "explicit": 1, + "gives": 1, + "us": 1, + "choice": 1, + "Detected": 1, + "Overriding": 1, + "alert": 1, + "them": 1, + "stuff": 3, + "here": 1, + "argumentCount": 1, + "./build.sbt": 1, + "./project": 1, + "pwd": 1, + "doesn": 1, + "t": 3, + "understand": 1, + "iflast": 1, + "#residual_args": 1, + "@": 3, + "x": 1, + "system": 1, + "rbenv": 2, + "versions": 1, + "bare": 1, + "prefix": 1, + "typeset": 5, + "i": 2, + "bottles": 6, + "rvm_ignore_rvmrc": 1, + "rvmrc": 3, + "rvm_rvmrc_files": 3, + "ef": 1, + "+": 1, + "GREP_OPTIONS": 1, + "source": 7, + "export": 25, + "rvm_path": 4, + "UID": 1, + "rvm_is_not_a_shell_function": 2, + "rvm_path/scripts": 1, + "rvm": 1, + "SHEBANG#!zsh": 2, + "PATH": 14, + "stty": 2, + "istrip": 2, + "/usr/bin/clear": 2, + "fpath": 6, + "HOME/.zsh/func": 2, + "U": 2, + "umask": 2, + "/opt/local/bin": 2, + "/opt/local/sbin": 2, + "/bin": 4, + "/usr/bin": 8, + "prompt": 2, + "history": 18, + "endif": 2, + "##": 28, + "SCREENDIR": 2, + "/usr/local/bin": 6, + "/usr/local/sbin": 6, + "/usr/xpg4/bin": 4, + "/usr/sbin": 6, + "/usr/sfw/bin": 4, + "/usr/ccs/bin": 4, + "/usr/openwin/bin": 4, + "/opt/mysql/current/bin": 4, + "MANPATH": 2, + "/usr/local/man": 2, + "/usr/share/man": 2, + "Random": 2, + "ENV...": 2, + "TERM": 4, + "COLORTERM": 2, + "CLICOLOR": 2, + "can": 3, + "be": 3, + "anything": 2, + "actually": 2, + "DISPLAY": 2, + ".": 5, + "##############################################################################": 16, + "#Import": 2, + "shell": 4, + "agnostic": 2, + "Bash": 3, + "Zsh": 2, + "environment": 2, + "config": 4, + "/.profile": 2, + "HISTSIZE": 2, + "#How": 2, + "many": 2, + "lines": 2, + "keep": 3, + "HISTFILE": 2, + "/.zsh_history": 2, + "#Where": 2, + "save": 4, + "SAVEHIST": 2, + "#Number": 2, + "entries": 2, + "HISTDUP": 2, + "erase": 2, + "#Erase": 2, + "duplicates": 2, + "setopt": 8, + "appendhistory": 2, + "#Append": 2, + "overwriting": 2, + "sharehistory": 2, + "#Share": 2, + "across": 2, + "terminals": 2, + "incappendhistory": 2, + "#Immediately": 2, + "append": 2, + "not": 2, + "just": 2, + "when": 2, + "term": 2, + "killed": 2, + "#.": 2, + "/.dotfiles/z": 4, + "zsh/z.sh": 2, + "#function": 2, + "precmd": 2, + "rupa/z.sh": 2, + "function": 6, + "ls": 6, + "Fh": 2, + "l": 8, + "long": 2, + "format...": 2, + "ll": 2, + "less": 2, + "XF": 2, + "pipe": 2, + "into": 3, + "#CDPATH": 2, + "HISTIGNORE": 2, + "HISTCONTROL": 2, + "ignoreboth": 2, + "shopt": 13, + "cdspell": 2, + "extglob": 2, + "progcomp": 2, + "complete": 82, + "X": 54, + "bunzip2": 2, + "bzcat": 2, + "bzcmp": 2, + "bzdiff": 2, + "bzegrep": 2, + "bzfgrep": 2, + "bzgrep": 2, + "unzip": 2, + "zipinfo": 2, + "compress": 2, + "znew": 2, + "gunzip": 2, + "zcmp": 2, + "zdiff": 2, + "zcat": 2, + "zegrep": 2, + "zfgrep": 2, + "zgrep": 2, + "zless": 2, + "zmore": 2, + "uncompress": 2, + "ee": 2, + "display": 2, + "xv": 2, + "qiv": 2, + "gv": 2, + "ggv": 2, + "xdvi": 2, + "dvips": 2, + "dviselect": 2, + "dvitype": 2, + "acroread": 2, + "xpdf": 2, + "makeinfo": 2, + "texi2html": 2, + "tex": 2, + "latex": 2, + "slitex": 2, + "jadetex": 2, + "pdfjadetex": 2, + "pdftex": 2, + "pdflatex": 2, + "texi2dvi": 2, + "mpg123": 2, + "mpg321": 2, + "xine": 2, + "aviplay": 2, + "realplay": 2, + "xanim": 2, + "ogg123": 2, + "gqmpeg": 2, + "freeamp": 2, + "xmms": 2, + "xfig": 2, + "timidity": 2, + "playmidi": 2, + "vi": 2, + "vim": 2, + "gvim": 2, + "rvim": 2, + "view": 2, + "rview": 2, + "rgvim": 2, + "rgview": 2, + "gview": 2, + "emacs": 2, + "wine": 2, + "bzme": 2, + "netscape": 2, + "mozilla": 2, + "lynx": 2, + "opera": 2, + "w3m": 2, + "galeon": 2, + "dillo": 2, + "elinks": 2, + "links": 2, + "u": 2, + "su": 2, + "passwd": 2, + "groups": 2, + "user": 2, + "commands": 8, + "see": 4, + "users": 2, + "A": 10, + "stopped": 4, + "P": 4, + "bg": 4, + "completes": 10, + "with": 12, + "jobs": 4, + "j": 2, + "fg": 2, + "disown": 2, + "other": 2, + "job": 3, + "readonly": 4, + "and": 5, + "variables": 2, + "helptopic": 2, + "helptopics": 2, + "unalias": 4, + "aliases": 2, + "binding": 2, + "bind": 4, + "readline": 2, + "bindings": 2, + "make": 6, + "more": 3, + "intelligent": 2, + "c": 2, + "man": 6, + "#sudo": 2, + "pushd": 2, + "cd": 11, + "rmdir": 2, + "Make": 2, + "directories": 2, + "W": 2, + "alias": 42, + "filenames": 2, + "PS1": 2, + "..": 2, + "cd..": 2, + "csh": 2, + "same": 2, + "as": 2, + "bash...": 2, + "quit": 2, + "shorter": 2, + "D": 2, + "rehash": 2, + "/.bashrc": 3, + "after": 2, + "I": 2, + "edit": 2, + "it": 2, + "pg": 2, + "patch": 2, + "sed": 2, + "awk": 2, + "diff": 2, + "find": 2, + "ps": 2, + "whoami": 2, + "ping": 2, + "histappend": 2, + "PROMPT_COMMAND": 2, + "pkgname": 1, + "stud": 4, + "git": 16, + "pkgver": 1, + "pkgrel": 1, + "pkgdesc": 1, + "arch": 1, + "i686": 1, + "x86_64": 1, + "license": 1, + "depends": 1, + "libev": 1, + "openssl": 1, + "makedepends": 1, + "provides": 1, + "conflicts": 1, + "_gitroot": 1, + "https": 2, + "//github.com/bumptech/stud.git": 1, + "_gitname": 1, + "msg": 4, + "pull": 3, + "origin": 1, + "clone": 5, + "rm": 2, + "rf": 1, + "package": 1, + "PREFIX": 1, + "/usr": 1, + "DESTDIR": 1, + "install": 8, + "Dm755": 1, + "init.stud": 1, + "dirpersiststore": 2, + "docker": 1, + "from": 1, + "ubuntu": 1, + "maintainer": 1, + "Solomon": 1, + "Hykes": 1, + "": 1, + "run": 13, + "apt": 6, + "get": 6, + "y": 5, + "//go.googlecode.com/files/go1.1.1.linux": 1, + "amd64.tar.gz": 1, + "tar": 1, + "C": 1, + "/usr/local": 1, + "xz": 1, + "env": 4, + "/usr/local/go/bin": 2, + "/sbin": 2, + "GOPATH": 1, + "/go": 1, + "CGO_ENABLED": 1, + "/tmp": 1, + "t.go": 1, + "go": 2, + "test": 1, + "PKG": 12, + "github.com/kr/pty": 1, + "REV": 6, + "c699": 1, + "http": 3, + "//": 3, + "/go/src/": 6, + "checkout": 3, + "github.com/gorilla/context/": 1, + "d61e5": 1, + "github.com/gorilla/mux/": 1, + "b36453141c": 1, + "iptables": 1, + "/etc/apt/sources.list": 1, + "lxc": 1, + "aufs": 1, + "tools": 1, + "add": 1, + "/go/src/github.com/dotcloud/docker": 1, + "/go/src/github.com/dotcloud/docker/docker": 1, + "ldflags": 1, + "/go/bin": 1, + "cmd": 1, + "script": 1, + "dotfile": 1, + "does": 1, + "lot": 1, + "fun": 2, + "like": 1, + "turning": 1, + "normal": 1, + "dotfiles": 1, + "eg": 1, + ".bashrc": 1, + "symlinks": 1, + "away": 1, + "optionally": 1, + "moving": 1, + "files": 1, + "so": 1, + "that": 1, + "they": 1, + "preserved": 1, + "up": 1, + "cron": 1, + "automate": 1, + "aforementioned": 1, + "maybe": 1, + "some": 1, + "nocasematch": 1, + "This": 1, + "makes": 1, + "pattern": 1, + "matching": 1, + "insensitive": 1, + "POSTFIX": 1, + "URL": 1, + "PUSHURL": 1, + "overwrite": 3, + "print_help": 2, + "k": 1, + "false": 2, + "o": 3, + "continue": 1, + "mv": 1, + "ln": 1, + "remote.origin.url": 1, + "remote.origin.pushurl": 1, + "crontab": 1, + ".jobs.cron": 1 + }, + "Mathematica": { + "Paclet": 1, + "[": 74, + "Name": 1, + "-": 8, + "Version": 1, + "MathematicaVersion": 1, + "Description": 1, + "Creator": 1, + "Extensions": 1, + "{": 2, + "Language": 1, + "MainPage": 1, + "}": 2, + "]": 73, + "BeginPackage": 1, + ";": 41, + "PossiblyTrueQ": 3, + "usage": 22, + "PossiblyFalseQ": 2, + "PossiblyNonzeroQ": 3, + "Begin": 2, + "expr_": 4, + "Not": 6, + "TrueQ": 4, + "expr": 4, + "End": 2, + "AnyQ": 3, + "AnyElementQ": 4, + "AllQ": 2, + "AllElementQ": 2, + "AnyNonzeroQ": 2, + "AnyPossiblyNonzeroQ": 2, + "RealQ": 3, + "PositiveQ": 3, + "NonnegativeQ": 3, + "PositiveIntegerQ": 3, + "NonnegativeIntegerQ": 4, + "IntegerListQ": 5, + "PositiveIntegerListQ": 3, + "NonnegativeIntegerListQ": 3, + "IntegerOrListQ": 2, + "PositiveIntegerOrListQ": 2, + "NonnegativeIntegerOrListQ": 2, + "SymbolQ": 2, + "SymbolOrNumberQ": 2, + "cond_": 4, + "L_": 5, + "Fold": 3, + "Or": 1, + "False": 4, + "cond": 4, + "/@": 3, + "L": 4, + "Flatten": 1, + "And": 4, + "True": 2, + "SHEBANG#!#!=": 1, + "n_": 5, + "Im": 1, + "n": 8, + "Positive": 2, + "IntegerQ": 3, + "&&": 4, + "input_": 6, + "ListQ": 1, + "input": 11, + "MemberQ": 3, + "IntegerQ/@input": 1, + "||": 4, + "a_": 2, + "Head": 2, + "a": 3, + "Symbol": 2, + "NumericQ": 1, + "EndPackage": 1, + "Get": 1 + }, + "Shen": { + "*": 47, + "html.shen": 1, + "-": 747, + "html": 2, + "generation": 1, + "functions": 1, + "for": 12, + "shen": 1, + "Copyright": 2, + "(": 267, + "C": 6, + ")": 250, + "Eric": 2, + "Schulte": 2, + "***": 5, + "License": 2, + "Redistribution": 2, + "and": 16, + "use": 2, + "in": 13, + "source": 4, + "binary": 4, + "forms": 2, + "with": 8, + "or": 2, + "without": 2, + "modification": 2, + "are": 7, + "permitted": 2, + "provided": 4, + "that": 3, + "the": 29, + "following": 6, + "conditions": 6, + "met": 2, + "Redistributions": 4, + "of": 20, + "code": 2, + "must": 4, + "retain": 2, + "above": 4, + "copyright": 4, + "notice": 4, + "this": 4, + "list": 32, + "disclaimer.": 2, + "form": 2, + "reproduce": 2, + "disclaimer": 2, + "documentation": 2, + "and/or": 2, + "other": 2, + "materials": 2, + "distribution.": 2, + "THIS": 4, + "SOFTWARE": 4, + "IS": 2, + "PROVIDED": 2, + "BY": 2, + "THE": 10, + "COPYRIGHT": 4, + "HOLDERS": 2, + "AND": 8, + "CONTRIBUTORS": 4, + "ANY": 8, + "EXPRESS": 2, + "OR": 16, + "IMPLIED": 4, + "WARRANTIES": 4, + "INCLUDING": 6, + "BUT": 4, + "NOT": 4, + "LIMITED": 4, + "TO": 4, + "OF": 16, + "MERCHANTABILITY": 2, + "FITNESS": 2, + "FOR": 4, + "A": 32, + "PARTICULAR": 2, + "PURPOSE": 2, + "ARE": 2, + "DISCLAIMED.": 2, + "IN": 6, + "NO": 2, + "EVENT": 2, + "SHALL": 2, + "HOLDER": 2, + "BE": 2, + "LIABLE": 2, + "DIRECT": 2, + "INDIRECT": 2, + "INCIDENTAL": 2, + "SPECIAL": 2, + "EXEMPLARY": 2, + "CONSEQUENTIAL": 2, + "DAMAGES": 2, + "PROCUREMENT": 2, + "SUBSTITUTE": 2, + "GOODS": 2, + "SERVICES": 2, + ";": 12, + "LOSS": 2, + "USE": 4, + "DATA": 2, + "PROFITS": 2, + "BUSINESS": 2, + "INTERRUPTION": 2, + "HOWEVER": 2, + "CAUSED": 2, + "ON": 2, + "THEORY": 2, + "LIABILITY": 4, + "WHETHER": 2, + "CONTRACT": 2, + "STRICT": 2, + "TORT": 2, + "NEGLIGENCE": 2, + "OTHERWISE": 2, + "ARISING": 2, + "WAY": 2, + "OUT": 2, + "EVEN": 2, + "IF": 2, + "ADVISED": 2, + "POSSIBILITY": 2, + "SUCH": 2, + "DAMAGE.": 2, + "Commentary": 2, + "The": 1, + "standard": 1, + "lisp": 1, + "to": 16, + "conversion": 1, + "tool": 1, + "suite.": 1, + "Follows": 1, + "some": 1, + "convertions": 1, + "Clojure": 1, + "tasks": 1, + "stuff": 1, + "todo1": 1, + "today": 1, + "attributes": 1, + "AS": 1, + "load": 1, + "JSON": 1, + "Lexer": 1, + "Read": 1, + "a": 30, + "stream": 1, + "characters": 4, + "Whitespace": 4, + "not": 1, + "strings": 2, + "should": 2, + "be": 2, + "discarded.": 1, + "preserved": 1, + "Strings": 1, + "can": 1, + "contain": 2, + "escaped": 1, + "double": 1, + "quotes.": 1, + "e.g.": 2, + "define": 34, + "whitespacep": 2, + "ASCII": 2, + "#": 4, + "Space.": 1, + "All": 1, + "others": 1, + "whitespace": 7, + "from": 3, + "an": 3, + "table.": 1, + "Char": 4, + "member": 1, + "[": 93, + "]": 91, + "replace": 3, + "@s": 4, + "Suffix": 4, + "where": 2, + "Prefix": 2, + "fetch": 1, + "until": 1, + "unescaped": 1, + "doublequote": 1, + "c#34": 5, + "|": 103, + "WhitespaceChar": 2, + "Chars": 4, + "strip": 2, + "chars": 2, + "tokenise": 1, + "JSONString": 2, + "let": 9, + "CharList": 2, + "explode": 1, + "graph.shen": 1, + "library": 3, + "graph": 52, + "definition": 1, + "manipulation": 1, + "Graphs": 1, + "represented": 1, + "as": 2, + "two": 1, + "dictionaries": 1, + "one": 2, + "vertices": 17, + "edges.": 1, + "It": 1, + "is": 5, + "important": 1, + "note": 1, + "dictionary": 3, + "implementation": 1, + "used": 2, + "able": 1, + "accept": 1, + "arbitrary": 1, + "data": 17, + "structures": 1, + "keys.": 1, + "This": 1, + "structure": 2, + "technically": 1, + "encodes": 1, + "hypergraphs": 1, + "generalization": 1, + "graphs": 1, + "which": 1, + "each": 1, + "edge": 32, + "may": 1, + "any": 1, + "number": 12, + ".": 1, + "Examples": 1, + "regular": 1, + "G": 25, + "hypergraph": 1, + "H": 3, + "corresponding": 1, + "given": 4, + "below.": 1, + "": 3, + "Vertices": 11, + "Edges": 9, + "+": 33, + "Graph": 65, + "hash": 8, + "key": 9, + "value": 17, + "b": 13, + "c": 11, + "g": 19, + "d": 12, + "e": 14, + "f": 10, + "Hypergraph": 1, + "h": 3, + "i": 3, + "j": 2, + "associated": 1, + "edge/vertex": 1, + "@p": 17, + "V": 48, + "E": 20, + "edges": 17, + "M": 4, + "vertex": 29, + "associations": 1, + "size": 2, + "all": 3, + "stored": 1, + "dict": 39, + "sizeof": 4, + "int": 1, + "indices": 1, + "into": 1, + "&": 1, + "Edge": 11, + "dicts": 3, + "entry": 2, + "storage": 2, + "Vertex": 3, + "Code": 1, + "require": 2, + "sequence": 2, + "datatype": 1, + "dictoinary": 1, + "vector": 4, + "symbol": 1, + "package": 2, + "add": 25, + "has": 5, + "neighbors": 8, + "connected": 21, + "components": 8, + "partition": 7, + "bipartite": 3, + "included": 2, + "take": 2, + "drop": 2, + "while": 2, + "range": 1, + "flatten": 1, + "filter": 2, + "complement": 1, + "seperate": 1, + "zip": 1, + "indexed": 1, + "reduce": 3, + "mapcon": 3, + "unique": 3, + "frequencies": 1, + "shuffle": 1, + "pick": 1, + "remove": 2, + "first": 2, + "interpose": 1, + "subset": 3, + "cartesian": 1, + "product": 1, + "<-dict>": 5, + "contents": 1, + "keys": 3, + "vals": 1, + "make": 10, + "X": 4, + "<-address>": 5, + "0": 1, + "create": 1, + "specified": 1, + "sizes": 2, + "}": 22, + "Vertsize": 2, + "Edgesize": 2, + "absvector": 1, + "do": 8, + "address": 5, + "defmacro": 3, + "macro": 3, + "return": 4, + "taking": 1, + "optional": 1, + "N": 7, + "vert": 12, + "1": 1, + "2": 3, + "{": 15, + "get": 3, + "Value": 3, + "if": 8, + "tuple": 3, + "fst": 3, + "error": 7, + "string": 3, + "resolve": 6, + "Vector": 2, + "Index": 2, + "Place": 6, + "nth": 1, + "<-vector>": 2, + "Vert": 5, + "Val": 5, + "trap": 4, + "snd": 2, + "map": 5, + "lambda": 1, + "w": 4, + "B": 2, + "Data": 2, + "w/o": 5, + "D": 4, + "update": 5, + "s": 1, + "Vs": 4, + "Store": 6, + "<": 4, + "limit": 2, + "VertLst": 2, + "/.": 4, + "Contents": 5, + "adjoin": 2, + "length": 5, + "EdgeID": 3, + "EdgeLst": 2, + "p": 1, + "boolean": 4, + "Return": 1, + "Already": 5, + "New": 5, + "Reachable": 2, + "difference": 3, + "append": 1, + "including": 1, + "itself": 1, + "fully": 1, + "Acc": 2, + "true": 1, + "_": 1, + "VS": 4, + "Component": 6, + "ES": 3, + "Con": 8, + "verts": 4, + "cons": 1, + "place": 3, + "partitions": 1, + "element": 2, + "simple": 3, + "CS": 3, + "Neighbors": 3, + "empty": 1, + "intersection": 1, + "check": 1, + "tests": 1, + "set": 1, + "chris": 6, + "patton": 2, + "eric": 1, + "nobody": 2, + "fail": 1, + "when": 1, + "wrapper": 1, + "function": 1 + }, + "Prolog": { + "-": 52, + "turing": 1, + "(": 49, + "Tape0": 2, + "Tape": 2, + ")": 49, + "perform": 4, + "q0": 1, + "[": 21, + "]": 21, + "Ls": 12, + "Rs": 16, + "reverse": 1, + "Ls1": 4, + "append": 1, + ".": 25, + "qf": 1, + "Q0": 2, + "Ls0": 6, + "Rs0": 6, + "symbol": 3, + "Sym": 6, + "RsRest": 2, + "once": 1, + "rule": 1, + "Q1": 2, + "NewSym": 2, + "Action": 2, + "action": 4, + "|": 12, + "Rs1": 2, + "b": 2, + "left": 4, + "stay": 1, + "right": 1, + "L": 2, + "male": 3, + "john": 2, + "peter": 3, + "female": 2, + "vick": 2, + "christie": 3, + "parents": 4, + "brother": 1, + "X": 3, + "Y": 2, + "F": 2, + "M": 2, + "lib": 1, + "ic": 1, + "vabs": 2, + "Val": 8, + "AbsVal": 10, + "#": 9, + ";": 1, + "labeling": 2, + "vabsIC": 1, + "or": 1, + "faitListe": 3, + "_": 2, + "First": 2, + "Rest": 6, + "Taille": 2, + "Min": 2, + "Max": 2, + "Min..Max": 1, + "Taille1": 2, + "suite": 3, + "Xi": 5, + "Xi1": 7, + "Xi2": 7, + "checkRelation": 3, + "VabsXi1": 2, + "Xi.": 1, + "checkPeriode": 3, + "ListVar": 2, + "length": 1, + "Length": 2, + "<": 1, + "X1": 2, + "X2": 2, + "X3": 2, + "X4": 2, + "X5": 2, + "X6": 2, + "X7": 2, + "X8": 2, + "X9": 2, + "X10": 3 + }, + "Idris": { + "module": 1, + "Prelude.Char": 1, + "import": 1, + "Builtins": 1, + "isUpper": 4, + "Char": 13, + "-": 8, + "Bool": 8, + "x": 36, + "&&": 3, + "<=>": 3, + "Z": 1, + "isLower": 4, + "z": 1, + "isAlpha": 3, + "||": 9, + "isDigit": 3, + "(": 8, + "9": 1, + "isAlphaNum": 2, + "isSpace": 2, + "isNL": 2, + "toUpper": 3, + "if": 2, + ")": 7, + "then": 2, + "prim__intToChar": 2, + "prim__charToInt": 2, + "else": 2, + "toLower": 2, + "+": 1, + "isHexDigit": 2, + "elem": 1, + "hexChars": 3, + "where": 1, + "List": 1, "[": 1, - "]": 1, - "args": 1, - ")": 3, - "Console.WriteLine": 2 + "]": 1 + }, + "CoffeeScript": { + "#": 35, + "fs": 2, + "require": 21, + "path": 3, + "{": 31, + "Lexer": 3, + "RESERVED": 3, + "}": 34, + "parser": 1, + "vm": 1, + "if": 102, + "require.extensions": 3, + "[": 134, + "]": 134, + "(": 193, + "module": 1, + "filename": 6, + ")": 196, + "-": 107, + "content": 4, + "compile": 5, + "fs.readFileSync": 1, + "module._compile": 1, + "else": 53, + "require.registerExtension": 2, + "exports.VERSION": 1, + "exports.RESERVED": 1, + "exports.helpers": 2, + "exports.compile": 1, + "code": 20, + "options": 16, + "merge": 1, + "try": 3, + "js": 5, + "parser.parse": 3, + "lexer.tokenize": 3, + ".compile": 1, + "return": 29, + "unless": 19, + "options.header": 1, + "catch": 2, + "err": 20, + "err.message": 2, + "options.filename": 5, + "throw": 3, + "header": 1, + "exports.tokens": 1, + "exports.nodes": 1, + "source": 5, + "typeof": 2, + "is": 36, + "exports.run": 1, + "mainModule": 1, + "require.main": 1, + "mainModule.filename": 4, + "process.argv": 1, + "then": 24, + "fs.realpathSync": 2, + "mainModule.moduleCache": 1, + "and": 20, + "mainModule.paths": 1, + "._nodeModulePaths": 1, + "path.dirname": 2, + "path.extname": 1, + "isnt": 7, + "or": 22, + "mainModule._compile": 2, + "exports.eval": 1, + "code.trim": 1, + "Script": 2, + "vm.Script": 1, + "options.sandbox": 4, + "instanceof": 2, + "Script.createContext": 2, + ".constructor": 1, + "sandbox": 8, + "k": 4, + "v": 4, + "for": 14, + "own": 2, + "of": 7, + "sandbox.global": 1, + "sandbox.root": 1, + "sandbox.GLOBAL": 1, + "global": 3, + "sandbox.__filename": 3, + "||": 3, + "sandbox.__dirname": 1, + "sandbox.module": 2, + "sandbox.require": 2, + "Module": 2, + "_module": 3, + "new": 12, + "options.modulename": 1, + "_require": 2, + "Module._load": 1, + "true": 8, + "_module.filename": 1, + "r": 4, + "in": 32, + "Object.getOwnPropertyNames": 1, + "when": 16, + "_require.paths": 1, + "_module.paths": 1, + "Module._nodeModulePaths": 1, + "process.cwd": 1, + "_require.resolve": 1, + "request": 2, + "Module._resolveFilename": 1, + "o": 4, + "o.bare": 1, + "on": 3, + "ensure": 1, + "value": 25, + "vm.runInThisContext": 1, + "vm.runInContext": 1, + "lexer": 1, + "parser.lexer": 1, + "lex": 1, + "tag": 33, + "@yytext": 1, + "@yylineno": 1, + "@tokens": 7, + "@pos": 2, + "+": 31, + "setInput": 1, + "upcomingInput": 1, + "parser.yy": 1, + "async": 1, + "nack": 1, + "bufferLines": 3, + "pause": 2, + "sourceScriptEnv": 3, + "join": 8, + "exists": 5, + "basename": 2, + "resolve": 2, + "module.exports": 1, + "class": 11, + "RackApplication": 1, + "constructor": 6, + "@configuration": 1, + "@root": 8, + "@firstHost": 1, + "@logger": 1, + "@configuration.getLogger": 1, + "@readyCallbacks": 3, + "@quitCallbacks": 3, + "@statCallbacks": 3, + "ready": 1, + "callback": 35, + "@state": 11, + "@readyCallbacks.push": 1, + "@initialize": 2, + "quit": 1, + "@quitCallbacks.push": 1, + "@terminate": 2, + "queryRestartFile": 1, + "fs.stat": 1, + "stats": 1, + "@mtime": 5, + "null": 15, + "false": 4, + "lastMtime": 2, + "stats.mtime.getTime": 1, + "setPoolRunOnceFlag": 1, + "@statCallbacks.length": 1, + "alwaysRestart": 2, + "@pool.runOnce": 1, + "statCallback": 2, + "@statCallbacks.push": 1, + "loadScriptEnvironment": 1, + "env": 18, + "async.reduce": 1, + "script": 7, + "scriptExists": 2, + "loadRvmEnvironment": 1, + "rvmrcExists": 2, + "rvm": 1, + "@configuration.rvmPath": 1, + "rvmExists": 2, + "libexecPath": 1, + "before": 2, + ".trim": 1, + "loadEnvironment": 1, + "@queryRestartFile": 2, + "@loadScriptEnvironment": 1, + "@configuration.env": 1, + "@loadRvmEnvironment": 1, + "initialize": 1, + "@quit": 3, + "@loadEnvironment": 1, + "@logger.error": 3, + "@pool": 2, + "nack.createPool": 1, + "size": 1, + ".POW_WORKERS": 1, + "@configuration.workers": 1, + "idle": 1, + ".POW_TIMEOUT": 1, + "@configuration.timeout": 1, + "*": 21, + "@pool.stdout": 1, + "line": 6, + "@logger.info": 1, + "@pool.stderr": 1, + "@logger.warning": 1, + "@pool.on": 2, + "process": 2, + "@logger.debug": 2, + "readyCallback": 2, + "terminate": 1, + "@ready": 3, + "@pool.quit": 1, + "quitCallback": 2, + "handle": 1, + "req": 4, + "res": 3, + "next": 3, + "resume": 2, + "@setPoolRunOnceFlag": 1, + "@restartIfNecessary": 1, + "req.proxyMetaVariables": 1, + "SERVER_PORT": 1, + "@configuration.dstPort.toString": 1, + "@pool.proxy": 1, + "finally": 2, + "restart": 1, + "restartIfNecessary": 1, + "mtimeChanged": 2, + "@restart": 1, + "writeRvmBoilerplate": 1, + "powrc": 3, + "boilerplate": 2, + "@constructor.rvmBoilerplate": 1, + "fs.readFile": 1, + "contents": 2, + "contents.indexOf": 1, + "fs.writeFile": 1, + "@rvmBoilerplate": 1, + "console.log": 1, + "Rewriter": 2, + "INVERSES": 2, + "count": 5, + "starts": 1, + "compact": 1, + "last": 3, + "exports.Lexer": 1, + "tokenize": 1, + "opts": 1, + "WHITESPACE.test": 1, + "code.replace": 1, + "/": 44, + "r/g": 1, + ".replace": 3, + "TRAILING_SPACES": 2, + "@code": 1, + "The": 7, + "remainder": 1, + "the": 4, + "code.": 1, + "@line": 4, + "opts.line": 1, + "current": 5, + "line.": 1, + "@indent": 3, + "indentation": 3, + "level.": 3, + "@indebt": 1, + "over": 1, + "at": 2, + "@outdebt": 1, + "under": 1, + "outdentation": 1, + "@indents": 1, + "stack": 4, + "all": 1, + "levels.": 1, + "@ends": 1, + "pairing": 1, + "up": 1, + "tokens.": 1, + "Stream": 1, + "parsed": 1, + "tokens": 5, + "form": 1, + ".": 13, + "i": 8, + "while": 4, + "@chunk": 9, + "i..": 1, + "@identifierToken": 1, + "@commentToken": 1, + "@whitespaceToken": 1, + "@lineToken": 1, + "@heredocToken": 1, + "@stringToken": 1, + "@numberToken": 1, + "@regexToken": 1, + "@jsToken": 1, + "@literalToken": 1, + "@closeIndentation": 1, + "@error": 10, + "@ends.pop": 1, + "opts.rewrite": 1, + "off": 1, + ".rewrite": 1, + "identifierToken": 1, + "match": 23, + "IDENTIFIER.exec": 1, + "input": 1, + "id": 16, + "colon": 3, + "@tag": 3, + "@token": 12, + "id.length": 1, + "forcedIdentifier": 4, + "prev": 17, + "not": 4, + "prev.spaced": 3, + "JS_KEYWORDS": 1, + "COFFEE_KEYWORDS": 1, + "id.toUpperCase": 1, + "LINE_BREAK": 2, + "@seenFor": 4, + "yes": 5, + "UNARY": 4, + "RELATION": 3, + "no": 3, + "@value": 1, + "@tokens.pop": 1, + "JS_FORBIDDEN": 1, + "String": 1, + "id.reserved": 1, + "COFFEE_ALIAS_MAP": 1, + "COFFEE_ALIASES": 1, + "switch": 7, + "input.length": 1, + "numberToken": 1, + "NUMBER.exec": 1, + "number": 13, + "BOX": 1, + "/.test": 4, + "/E/.test": 1, + "x/.test": 1, + "d*": 1, + "d": 2, + "lexedLength": 2, + "number.length": 1, + "octalLiteral": 2, + "/.exec": 2, + "parseInt": 5, + ".toString": 3, + "binaryLiteral": 2, + "b": 1, + "stringToken": 1, + "@chunk.charAt": 3, + "SIMPLESTR.exec": 1, + "string": 9, + "MULTILINER": 2, + "@balancedString": 1, + "<": 6, + "string.indexOf": 1, + "@interpolateString": 2, + "@escapeLines": 1, + "octalEsc": 1, + "|": 21, + "string.length": 1, + "heredocToken": 1, + "HEREDOC.exec": 1, + "heredoc": 4, + "quote": 5, + "heredoc.charAt": 1, + "doc": 11, + "@sanitizeHeredoc": 2, + "indent": 7, + "<=>": 1, + "indexOf": 1, + "interpolateString": 1, + "token": 1, + "STRING": 2, + "makeString": 1, + "n": 16, + "length": 4, + "Matches": 1, + "consumes": 1, + "comments": 1, + "commentToken": 1, + "@chunk.match": 1, + "COMMENT": 2, + "comment": 2, + "here": 3, + "herecomment": 4, + "Array": 1, + ".join": 2, + "comment.length": 1, + "jsToken": 1, + "JSTOKEN.exec": 1, + "script.length": 1, + "regexToken": 1, + "HEREGEX.exec": 1, + "@heregexToken": 1, + "NOT_REGEX": 2, + "NOT_SPACED_REGEX": 2, + "REGEX.exec": 1, + "regex": 5, + "flags": 2, + "..1": 1, + "match.length": 1, + "heregexToken": 1, + "heregex": 1, + "body": 2, + "body.indexOf": 1, + "re": 1, + "body.replace": 1, + "HEREGEX_OMIT": 3, + "//g": 1, + "re.match": 1, + "*/": 2, + "heregex.length": 1, + "@tokens.push": 1, + "tokens.push": 1, + "value...": 1, + "continue": 3, + "value.replace": 2, + "/g": 3, + "spaced": 1, + "reserved": 1, + "word": 1, + "value.length": 2, + "MATH": 3, + "COMPARE": 3, + "COMPOUND_ASSIGN": 2, + "SHIFT": 3, + "LOGIC": 3, + ".spaced": 1, + "CALLABLE": 2, + "INDEXABLE": 2, + "@ends.push": 1, + "@pair": 1, + "sanitizeHeredoc": 1, + "HEREDOC_ILLEGAL.test": 1, + "doc.indexOf": 1, + "HEREDOC_INDENT.exec": 1, + "attempt": 2, + "attempt.length": 1, + "indent.length": 1, + "doc.replace": 2, + "///": 12, + "///g": 1, + "n/": 1, + "tagParameters": 1, + "this": 6, + "tokens.length": 1, + "tok": 5, + "stack.push": 1, + "stack.length": 1, + "stack.pop": 2, + "closeIndentation": 1, + "@outdentToken": 1, + "balancedString": 1, + "str": 1, + "end": 2, + "continueCount": 3, + "str.length": 1, + "letter": 1, + "str.charAt": 1, + "missing": 1, + "starting": 1, + "Hello": 1, + "name.capitalize": 1, + "OUTDENT": 1, + "THROW": 1, + "EXTENDS": 1, + "&": 4, + "delete": 1, + "break": 1, + "debugger": 1, + "do": 2, + "extends": 6, + "super": 4, + "undefined": 1, + "until": 1, + "loop": 1, + "by": 1, + "&&": 1, + "case": 1, + "default": 1, + "function": 2, + "var": 1, + "void": 1, + "with": 1, + "const": 1, + "let": 2, + "enum": 1, + "export": 1, + "import": 1, + "native": 1, + "__hasProp": 1, + "__extends": 1, + "__slice": 1, + "__bind": 1, + "__indexOf": 1, + "implements": 1, + "interface": 1, + "package": 1, + "private": 1, + "protected": 1, + "public": 1, + "static": 1, + "yield": 1, + "arguments": 1, + "eval": 2, + "s": 10, + "S": 10, + "OPERATOR": 1, + "%": 1, + "compound": 1, + "assign": 1, + "compare": 1, + "zero": 1, + "fill": 1, + "right": 1, + "shift": 2, + "doubles": 1, + "logic": 1, + "soak": 1, + "access": 1, + "range": 1, + "splat": 1, + "WHITESPACE": 1, + "###": 3, + "s*#": 1, + "##": 1, + ".*": 1, + "CODE": 1, + "MULTI_DENT": 1, + "SIMPLESTR": 1, + "JSTOKEN": 1, + "REGEX": 1, + "disallow": 1, + "leading": 1, + "whitespace": 1, + "equals": 1, + "signs": 1, + "every": 1, + "other": 1, + "thing": 1, + "anything": 1, + "escaped": 1, + "character": 1, + "imgy": 2, + "w": 2, + "HEREGEX": 1, + "#.*": 1, + "n/g": 1, + "HEREDOC_INDENT": 1, + "HEREDOC_ILLEGAL": 1, + "//": 1, + "LINE_CONTINUER": 1, + "s*": 1, + "BOOL": 1, + "NOT_REGEX.concat": 1, + "CALLABLE.concat": 1, + "CoffeeScript": 1, + "CoffeeScript.require": 1, + "CoffeeScript.eval": 1, + "options.bare": 2, + "CoffeeScript.compile": 2, + "CoffeeScript.run": 3, + "Function": 1, + "window": 1, + "CoffeeScript.load": 2, + "url": 2, + "xhr": 2, + "window.ActiveXObject": 1, + "XMLHttpRequest": 1, + "xhr.open": 1, + "xhr.overrideMimeType": 1, + "xhr.onreadystatechange": 1, + "xhr.readyState": 1, + "xhr.status": 1, + "xhr.responseText": 1, + "Error": 1, + "xhr.send": 1, + "runScripts": 3, + "scripts": 2, + "document.getElementsByTagName": 1, + "coffees": 2, + "s.type": 1, + "index": 4, + "coffees.length": 1, + "execute": 3, + ".type": 1, + "script.src": 2, + "script.innerHTML": 1, + "window.addEventListener": 1, + "addEventListener": 1, + "attachEvent": 1, + "Animal": 3, + "@name": 2, + "move": 3, + "meters": 2, + "alert": 4, + "Snake": 2, + "Horse": 2, + "sam": 1, + "tom": 1, + "sam.move": 1, + "tom.move": 1, + "dnsserver": 1, + "exports.Server": 1, + "Server": 2, + "dnsserver.Server": 1, + "NS_T_A": 3, + "NS_T_NS": 2, + "NS_T_CNAME": 1, + "NS_T_SOA": 2, + "NS_C_IN": 5, + "NS_RCODE_NXDOMAIN": 2, + "domain": 6, + "@rootAddress": 2, + "@domain": 3, + "domain.toLowerCase": 1, + "@soa": 2, + "createSOA": 2, + "@on": 1, + "@handleRequest": 1, + "handleRequest": 1, + "question": 5, + "req.question": 1, + "subdomain": 10, + "@extractSubdomain": 1, + "question.name": 3, + "isARequest": 2, + "res.addRR": 2, + "subdomain.getAddress": 1, + ".isEmpty": 1, + "isNSRequest": 2, + "res.header.rcode": 1, + "res.send": 1, + "extractSubdomain": 1, + "name": 5, + "Subdomain.extract": 1, + "question.type": 2, + "question.class": 2, + "mname": 2, + "rname": 2, + "serial": 2, + "Date": 1, + ".getTime": 1, + "refresh": 2, + "retry": 2, + "expire": 2, + "minimum": 2, + "dnsserver.createSOA": 1, + "exports.createServer": 1, + "address": 4, + "exports.Subdomain": 1, + "Subdomain": 4, + "@extract": 1, + "name.toLowerCase": 1, + "offset": 4, + "name.length": 1, + "domain.length": 1, + "name.slice": 2, + "@for": 2, + "IPAddressSubdomain.pattern.test": 1, + "IPAddressSubdomain": 2, + "EncodedSubdomain.pattern.test": 1, + "EncodedSubdomain": 2, + "@subdomain": 1, + "@address": 2, + "@labels": 2, + ".split": 1, + "@length": 3, + "@labels.length": 1, + "isEmpty": 1, + "getAddress": 3, + "@pattern": 2, + "@labels.slice": 1, + "a": 2, + "z0": 2, + "decode": 2, + "exports.encode": 1, + "encode": 1, + "ip": 2, + "byte": 2, + "ip.split": 1, + "<<": 1, + "PATTERN": 1, + "exports.decode": 1, + "PATTERN.test": 1, + "ip.push": 1, + "xFF": 1, + "ip.join": 1, + "opposite": 2, + "square": 4, + "x": 6, + "list": 2, + "math": 1, + "root": 1, + "Math.sqrt": 1, + "cube": 1, + "race": 1, + "winner": 2, + "runners...": 1, + "print": 1, + "runners": 1, + "elvis": 1, + "cubes": 1, + "math.cube": 1, + "num": 2 + }, + "Objective-C": { + "//": 317, + "#include": 18, + "": 2, + "": 1, + "": 2, + "": 1, + "": 1, + "": 1, + "": 1, + "": 2, + "": 1, + "#import": 53, + "//#include": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "//#import": 1, + "": 4, + "": 2, + "": 1, + "": 2, + "": 2, + "": 1, + "": 1, + "": 2, + "#ifndef": 9, + "__has_feature": 3, + "#define": 65, + "(": 2109, + "x": 10, + ")": 2106, + "#endif": 59, + "#ifdef": 10, + "JK_ENABLE_CF_TRANSFER_OWNERSHIP_CALLBACKS": 2, + "#warning": 1, + "As": 1, + "of": 34, + "JSONKit": 11, + "v1.4": 1, + "is": 77, + "no": 7, + "longer": 2, + "required.": 1, + "It": 2, + "a": 78, + "valid": 5, + "option.": 1, + "__OBJC_GC__": 1, + "#error": 6, + "does": 3, + "not": 29, + "support": 4, + "Objective": 2, + "-": 595, + "C": 6, + "Garbage": 1, + "Collection": 1, + "#if": 41, + "objc_arc": 1, + "Automatic": 1, + "Reference": 1, + "Counting": 1, + "ARC": 1, + "UINT_MAX": 3, + "xffffffffU": 1, + "||": 42, + "INT_MIN": 3, + "fffffff": 1, + "ULLONG_MAX": 1, + "xffffffffffffffffULL": 1, + "LLONG_MIN": 1, + "fffffffffffffffLL": 1, + "LL": 1, + "requires": 4, + "the": 197, + "and": 44, + "types": 2, + "to": 115, + "be": 49, + "bits": 1, + "respectively.": 1, + "defined": 16, + "__LP64__": 4, + "&&": 123, + "ULONG_MAX": 3, + "INT_MAX": 2, + "LONG_MAX": 3, + "LONG_MIN": 3, + "WORD_BIT": 1, + "LONG_BIT": 1, + "same": 6, + "on": 26, + "bit": 1, + "architectures.": 1, + "NSUIntegerMax": 7, + "NSIntegerMax": 4, + "NSIntegerMin": 3, + "NSInteger": 56, + "NSUInteger": 93, + "size": 12, + "as": 17, + "type.": 3, + "SIZE_MAX": 1, + "SSIZE_MAX": 1, + "JK_HASH_INIT": 1, + "UL": 138, + "JK_FAST_TRAILING_BYTES": 2, + "JK_CACHE_SLOTS_BITS": 2, + "JK_CACHE_SLOTS": 1, + "<<": 16, + "JK_CACHE_PROBES": 1, + "JK_INIT_CACHE_AGE": 1, + "JK_TOKENBUFFER_SIZE": 1, + "*": 311, + "JK_STACK_OBJS": 1, + "JK_JSONBUFFER_SIZE": 1, + "JK_UTF8BUFFER_SIZE": 1, + "JK_ENCODE_CACHE_SLOTS": 1, + "__GNUC__": 14, + "JK_ATTRIBUTES": 15, + "attr": 3, + "...": 11, + "__attribute__": 3, + "##__VA_ARGS__": 7, + "JK_EXPECTED": 4, + "cond": 12, + "expect": 3, + "__builtin_expect": 1, + "long": 71, + "JK_EXPECT_T": 22, + "U": 2, + "JK_EXPECT_F": 14, + "JK_PREFETCH": 2, + "ptr": 3, + "__builtin_prefetch": 1, + "#else": 8, + "JK_STATIC_INLINE": 10, + "static": 102, + "__inline__": 1, + "always_inline": 1, + "JK_ALIGNED": 1, + "arg": 11, + "aligned": 1, + "JK_UNUSED_ARG": 2, + "unused": 3, + "JK_WARN_UNUSED": 1, + "warn_unused_result": 9, + "JK_WARN_UNUSED_CONST": 1, + "const": 28, + "JK_WARN_UNUSED_PURE": 1, + "pure": 2, + "JK_WARN_UNUSED_SENTINEL": 1, + "sentinel": 1, + "JK_NONNULL_ARGS": 1, + "nonnull": 6, + "JK_WARN_UNUSED_NONNULL_ARGS": 1, + "JK_WARN_UNUSED_CONST_NONNULL_ARGS": 1, + "JK_WARN_UNUSED_PURE_NONNULL_ARGS": 1, + "__GNUC_MINOR__": 3, + "JK_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED": 2, + "nn": 4, + "alloc_size": 1, + "@class": 4, + "JKArray": 14, + "JKDictionaryEnumerator": 4, + "JKDictionary": 22, + ";": 2003, + "enum": 17, + "{": 541, + "JSONNumberStateStart": 1, + "JSONNumberStateFinished": 1, + "JSONNumberStateError": 1, + "JSONNumberStateWholeNumberStart": 1, + "JSONNumberStateWholeNumberMinus": 1, + "JSONNumberStateWholeNumberZero": 1, + "JSONNumberStateWholeNumber": 1, + "JSONNumberStatePeriod": 1, + "JSONNumberStateFractionalNumberStart": 1, + "JSONNumberStateFractionalNumber": 1, + "JSONNumberStateExponentStart": 1, + "JSONNumberStateExponentPlusMinus": 1, + "JSONNumberStateExponent": 1, + "}": 532, + "JSONStringStateStart": 1, + "JSONStringStateParsing": 1, + "JSONStringStateFinished": 1, + "JSONStringStateError": 1, + "JSONStringStateEscape": 1, + "JSONStringStateEscapedUnicode1": 1, + "JSONStringStateEscapedUnicode2": 1, + "JSONStringStateEscapedUnicode3": 1, + "JSONStringStateEscapedUnicode4": 1, + "JSONStringStateEscapedUnicodeSurrogate1": 1, + "JSONStringStateEscapedUnicodeSurrogate2": 1, + "JSONStringStateEscapedUnicodeSurrogate3": 1, + "JSONStringStateEscapedUnicodeSurrogate4": 1, + "JSONStringStateEscapedNeedEscapeForSurrogate": 1, + "JSONStringStateEscapedNeedEscapedUForSurrogate": 1, + "JKParseAcceptValue": 2, + "JKParseAcceptComma": 2, + "JKParseAcceptEnd": 3, + "JKParseAcceptValueOrEnd": 1, + "|": 13, + "JKParseAcceptCommaOrEnd": 1, + "JKClassUnknown": 1, + "JKClassString": 1, + "JKClassNumber": 1, + "JKClassArray": 1, + "JKClassDictionary": 1, + "JKClassNull": 1, + "JKManagedBufferOnStack": 1, + "JKManagedBufferOnHeap": 1, + "JKManagedBufferLocationMask": 1, + "JKManagedBufferLocationShift": 1, + "JKManagedBufferMustFree": 1, + "typedef": 47, + "JKFlags": 5, + "JKManagedBufferFlags": 1, + "JKObjectStackOnStack": 1, + "JKObjectStackOnHeap": 1, + "JKObjectStackLocationMask": 1, + "JKObjectStackLocationShift": 1, + "JKObjectStackMustFree": 1, + "JKObjectStackFlags": 1, + "JKTokenTypeInvalid": 1, + "JKTokenTypeNumber": 1, + "JKTokenTypeString": 1, + "JKTokenTypeObjectBegin": 1, + "JKTokenTypeObjectEnd": 1, + "JKTokenTypeArrayBegin": 1, + "JKTokenTypeArrayEnd": 1, + "JKTokenTypeSeparator": 1, + "JKTokenTypeComma": 1, + "JKTokenTypeTrue": 1, + "JKTokenTypeFalse": 1, + "JKTokenTypeNull": 1, + "JKTokenTypeWhiteSpace": 1, + "JKTokenType": 2, + "JKValueTypeNone": 1, + "JKValueTypeString": 1, + "JKValueTypeLongLong": 1, + "JKValueTypeUnsignedLongLong": 1, + "JKValueTypeDouble": 1, + "JKValueType": 1, + "JKEncodeOptionAsData": 1, + "JKEncodeOptionAsString": 1, + "JKEncodeOptionAsTypeMask": 1, + "JKEncodeOptionCollectionObj": 1, + "JKEncodeOptionStringObj": 1, + "JKEncodeOptionStringObjTrimQuotes": 1, + "JKEncodeOptionType": 2, + "JKHash": 4, + "struct": 20, + "JKTokenCacheItem": 2, + "JKTokenCache": 2, + "JKTokenValue": 2, + "JKParseToken": 2, + "JKPtrRange": 2, + "JKObjectStack": 5, + "JKBuffer": 2, + "JKConstBuffer": 2, + "JKConstPtrRange": 2, + "JKRange": 2, + "JKManagedBuffer": 5, + "JKFastClassLookup": 2, + "JKEncodeCache": 6, + "JKEncodeState": 11, + "JKObjCImpCache": 2, + "JKHashTableEntry": 21, + "id": 170, + "error": 75, + "serializeObject": 1, + "object": 36, + "options": 6, + "JKSerializeOptionFlags": 16, + "optionFlags": 1, + "encodeOption": 2, + "block": 18, + "JKSERIALIZER_BLOCKS_PROTO": 1, + "delegate": 29, + "selector": 12, + "SEL": 19, + "NSError": 51, + "**": 27, + "void": 253, + "releaseState": 1, + "@end": 37, + "keyHash": 21, + "key": 32, + "uint32_t": 1, + "UTF32": 11, + "uint16_t": 1, + "UTF16": 1, + "uint8_t": 1, + "UTF8": 2, + "conversionOK": 1, + "sourceExhausted": 1, + "targetExhausted": 1, + "sourceIllegal": 1, + "ConversionResult": 1, + "UNI_REPLACEMENT_CHAR": 1, + "FFFD": 1, + "UNI_MAX_BMP": 1, + "FFFF": 3, + "UNI_MAX_UTF16": 1, + "UNI_MAX_UTF32": 1, + "FFFFFFF": 1, + "UNI_MAX_LEGAL_UTF32": 1, + "UNI_SUR_HIGH_START": 1, + "xD800": 1, + "UNI_SUR_HIGH_END": 1, + "xDBFF": 1, + "UNI_SUR_LOW_START": 1, + "xDC00": 1, + "UNI_SUR_LOW_END": 1, + "xDFFF": 1, + "char": 19, + "trailingBytesForUTF8": 1, + "[": 1227, + "]": 1227, + "offsetsFromUTF8": 1, + "E2080UL": 1, + "C82080UL": 1, + "xFA082080UL": 1, + "firstByteMark": 1, + "xC0": 1, + "xE0": 1, + "xF0": 1, + "xF8": 1, + "xFC": 1, + "JK_AT_STRING_PTR": 1, + "&": 36, + "stringBuffer.bytes.ptr": 2, + "atIndex": 6, + "JK_END_STRING_PTR": 1, + "stringBuffer.bytes.length": 1, + "*_JKArrayCreate": 2, + "*objects": 5, + "count": 99, + "BOOL": 137, + "mutableCollection": 7, + "_JKArrayInsertObjectAtIndex": 3, + "*array": 9, + "newObject": 12, + "objectIndex": 48, + "_JKArrayReplaceObjectAtIndexWithObject": 3, + "_JKArrayRemoveObjectAtIndex": 3, + "_JKDictionaryCapacityForCount": 4, + "*_JKDictionaryCreate": 2, + "*keys": 2, + "*keyHashes": 2, + "*_JKDictionaryHashEntry": 2, + "*dictionary": 13, + "_JKDictionaryCapacity": 3, + "_JKDictionaryResizeIfNeccessary": 3, + "_JKDictionaryRemoveObjectWithEntry": 3, + "*entry": 4, + "_JKDictionaryAddObject": 4, + "*_JKDictionaryHashTableEntryForKey": 2, + "aKey": 13, + "_JSONDecoderCleanup": 1, + "JSONDecoder": 2, + "*decoder": 1, + "_NSStringObjectFromJSONString": 1, + "NSString": 127, + "*jsonString": 1, + "JKParseOptionFlags": 12, + "parseOptionFlags": 11, + "**error": 1, + "jk_managedBuffer_release": 1, + "*managedBuffer": 3, + "jk_managedBuffer_setToStackBuffer": 1, + "unsigned": 62, + "*ptr": 2, + "size_t": 23, + "length": 32, + "*jk_managedBuffer_resize": 1, + "newSize": 1, + "jk_objectStack_release": 1, + "*objectStack": 3, + "jk_objectStack_setToStackBuffer": 1, + "**objects": 1, + "**keys": 1, + "CFHashCode": 1, + "*cfHashes": 1, + "int": 55, + "jk_objectStack_resize": 1, + "newCount": 1, + "jk_error": 1, + "JKParseState": 18, + "*parseState": 16, + "*format": 7, + "jk_parse_string": 1, + "jk_parse_number": 1, + "jk_parse_is_newline": 1, + "*atCharacterPtr": 1, + "jk_parse_skip_newline": 1, + "jk_parse_skip_whitespace": 1, + "jk_parse_next_token": 1, + "jk_error_parse_accept_or3": 1, + "state": 35, + "*or1String": 1, + "*or2String": 1, + "*or3String": 1, + "*jk_create_dictionary": 1, + "startingObjectIndex": 1, + "*jk_parse_dictionary": 1, + "*jk_parse_array": 1, + "*jk_object_for_token": 1, + "*jk_cachedObjects": 1, + "jk_cache_age": 1, + "jk_set_parsed_token": 1, + "type": 5, + "advanceBy": 1, + "jk_encode_error": 1, + "*encodeState": 9, + "jk_encode_printf": 1, + "*cacheSlot": 4, + "startingAtIndex": 4, + "jk_encode_write": 1, + "jk_encode_writePrettyPrintWhiteSpace": 1, + "jk_encode_write1slow": 2, + "ssize_t": 2, + "depthChange": 2, + "jk_encode_write1fast": 2, + "jk_encode_writen": 1, + "jk_encode_object_hash": 1, + "*objectPtr": 2, + "jk_encode_updateCache": 1, + "jk_encode_add_atom_to_buffer": 1, + "jk_encode_write1": 1, + "es": 3, + "dc": 3, + "f": 8, + "_jk_encode_prettyPrint": 1, + "jk_min": 1, + "b": 4, + "jk_max": 3, + "jk_calculateHash": 1, + "currentHash": 1, + "c": 7, + "Class": 3, + "_JKArrayClass": 5, + "NULL": 152, + "_JKArrayInstanceSize": 4, + "_JKDictionaryClass": 5, + "_JKDictionaryInstanceSize": 4, + "_jk_NSNumberClass": 2, + "NSNumberAllocImp": 2, + "_jk_NSNumberAllocImp": 2, + "NSNumberInitWithUnsignedLongLongImp": 2, + "_jk_NSNumberInitWithUnsignedLongLongImp": 2, + "extern": 6, + "jk_collectionClassLoadTimeInitialization": 2, + "constructor": 1, + "NSAutoreleasePool": 2, + "*pool": 1, + "alloc": 47, + "init": 34, + "Though": 1, + "technically": 1, + "required": 2, + "run": 1, + "time": 9, + "environment": 1, + "at": 10, + "load": 1, + "initialization": 1, + "may": 8, + "less": 1, + "than": 9, + "ideal.": 1, + "objc_getClass": 2, + "class_getInstanceSize": 2, + "NSNumber": 11, + "class": 30, + "methodForSelector": 2, + "@selector": 28, + "temp_NSNumber": 4, + "initWithUnsignedLongLong": 1, + "release": 66, + "pool": 2, + "#pragma": 44, + "mark": 42, + "@interface": 23, + "NSMutableArray": 31, + "": 2, + "NSMutableCopying": 2, + "NSFastEnumeration": 2, + "capacity": 51, + "mutations": 20, + "@implementation": 13, + "+": 195, + "allocWithZone": 4, + "NSZone": 4, + "zone": 8, + "NSException": 19, + "raise": 18, + "NSInvalidArgumentException": 6, + "format": 18, + "@": 258, + "NSStringFromClass": 18, + "self": 500, + "NSStringFromSelector": 16, + "_cmd": 16, + "return": 165, + "NSCParameterAssert": 19, + "objects": 58, + "if": 297, + "array": 84, + "calloc": 5, + "Directly": 2, + "allocate": 2, + "instance": 2, + "via": 5, + "calloc.": 2, + "isa": 2, + "malloc": 1, + "sizeof": 13, + "autorelease": 21, + "memcpy": 2, + "NO": 30, + "<=>": 15, + "*newObjects": 1, + "newObjects": 2, + "realloc": 1, + "NSMallocException": 2, + "memset": 1, + "<": 56, + "memmove": 2, + "CFRelease": 19, + "dealloc": 13, + "atObject": 12, + "for": 99, + "free": 4, + "super": 25, + "NSParameterAssert": 15, + "getObjects": 2, + "objectsPtr": 3, + "range": 8, + "NSRange": 1, + "NSMaxRange": 4, + "NSRangeException": 6, + "range.location": 2, + "range.length": 1, + "objectAtIndex": 8, + "countByEnumeratingWithState": 2, + "NSFastEnumerationState": 2, + "stackbuf": 8, + "len": 6, + "mutationsPtr": 2, + "itemsPtr": 2, + "enumeratedCount": 8, + "while": 11, + "insertObject": 1, + "anObject": 16, + "NSInternalInconsistencyException": 4, + "__clang_analyzer__": 3, + "retain": 73, + "Stupid": 2, + "clang": 3, + "analyzer...": 2, + "Issue": 2, + "#19.": 2, + "removeObjectAtIndex": 1, + "replaceObjectAtIndex": 1, + "withObject": 10, + "copyWithZone": 1, + "NSArray": 27, + "initWithObjects": 2, + "mutableCopyWithZone": 1, + "NSEnumerator": 2, + "collection": 11, + "nextObject": 6, + "initWithJKDictionary": 3, + "initDictionary": 4, + "allObjects": 2, + "CFRetain": 4, + "NSDictionary": 37, + "arrayWithObjects": 1, + "_JKDictionaryHashEntry": 2, + "returnObject": 3, + "entry": 41, + ".key": 11, + "NSMutableDictionary": 18, + "jk_dictionaryCapacities": 4, + "bottom": 6, + "top": 8, + "/": 18, + "mid": 5, + "tableSize": 2, + "lround": 1, + "floor": 1, + "else": 35, + "dictionary": 64, + "capacityForCount": 4, + "resize": 3, + "oldCapacity": 2, + "NS_BLOCK_ASSERTIONS": 1, + "oldCount": 2, + "*oldEntry": 1, + "idx": 33, + "oldEntry": 9, + ".keyHash": 2, + ".object": 7, + "keys": 5, + "keyHashes": 2, + "atEntry": 45, + "removeIdx": 3, + "entryIdx": 4, + "%": 30, + "*atEntry": 3, + "break": 13, + "addKeyEntry": 2, + "addIdx": 5, + "*atAddEntry": 1, + "atAddEntry": 6, + "keyEntry": 4, + "CFEqual": 2, + "CFHash": 1, + "If": 30, + "was": 4, + "in": 42, + "table": 7, + "we": 73, + "would": 2, + "have": 15, + "found": 4, + "it": 28, + "by": 12, + "now.": 1, + "objectForKey": 29, + "entryForKey": 3, + "_JKDictionaryHashTableEntryForKey": 1, + "andKeys": 1, + "arrayIdx": 5, + "keyEnumerator": 1, + "setObject": 9, + "forKey": 9, + "copy": 4, + "Why": 1, + "earth": 1, + "complain": 1, + "that": 23, + "this": 50, + "but": 5, + "doesn": 1, + "Internal": 2, + "Unable": 2, + "temporary": 2, + "buffer.": 2, + "line": 2, + "#": 2, + "ld": 2, + "Invalid": 1, + "character": 1, + "string": 9, + "x.": 1, + "u": 4, + "n": 7, + "r": 6, + "t": 15, + "A": 4, + "F": 1, + ".": 2, + "e": 1, + "s": 35, + "double": 3, + "Unexpected": 1, + "token": 1, + "wanted": 1, + "Expected": 3, + "or": 18, + "NSString*": 13, + "kTextStyleType": 2, + "kViewStyleType": 2, + "kImageStyleType": 2, + "///////////////////////////////////////////////////////////////////////////////////////////////////": 24, + "StyleViewController": 2, + "initWithStyleName": 1, + "name": 7, + "styleType": 3, + "initWithNibName": 3, + "nil": 131, + "bundle": 3, + "self.title": 2, + "_style": 8, + "TTStyleSheet": 4, + "globalStyleSheet": 4, + "styleWithSelector": 4, + "_styleHighlight": 6, + "forState": 4, + "UIControlStateHighlighted": 1, + "_styleDisabled": 6, + "UIControlStateDisabled": 1, + "_styleSelected": 6, + "UIControlStateSelected": 1, + "_styleType": 6, + "TT_RELEASE_SAFELY": 12, + "UIViewController": 2, + "addTextView": 5, + "title": 2, + "frame": 38, + "CGRect": 41, + "style": 29, + "TTStyle*": 7, + "textFrame": 3, + "TTRectInset": 3, + "UIEdgeInsetsMake": 3, + "StyleView*": 2, + "text": 12, + "StyleView": 2, + "initWithFrame": 12, + "text.text": 1, + "TTStyleContext*": 1, + "context": 4, + "TTStyleContext": 1, + "context.frame": 1, + "context.delegate": 1, + "context.font": 1, + "UIFont": 3, + "systemFontOfSize": 2, + "systemFontSize": 1, + "CGSize": 5, + "addToSize": 1, + "CGSizeZero": 1, + "size.width": 1, + "size.height": 1, + "textFrame.size": 1, + "text.frame": 1, + "text.style": 1, + "text.backgroundColor": 1, + "UIColor": 3, + "colorWithRed": 3, + "green": 3, + "blue": 3, + "alpha": 3, + "text.autoresizingMask": 1, + "UIViewAutoresizingFlexibleWidth": 4, + "UIViewAutoresizingFlexibleBottomMargin": 3, + "self.view": 4, + "addSubview": 8, + "addView": 5, + "viewFrame": 4, + "view": 11, + "view.style": 2, + "view.backgroundColor": 2, + "view.autoresizingMask": 2, + "addImageView": 5, + "TTImageView*": 1, + "TTImageView": 1, + "view.urlPath": 1, + "imageFrame": 2, + "view.frame": 2, + "imageFrame.size": 1, + "view.image.size": 1, + "loadView": 4, + "self.view.bounds": 2, + "frame.size.height": 15, + "isEqualToString": 13, + "frame.origin.y": 16, + "MainMenuViewController": 2, + "TTTableViewController": 1, + "SBJsonParser": 2, + "NSObject": 5, + "@property": 150, + "maxDepth": 2, + "*error": 3, + "objectWithData": 7, + "NSData*": 1, + "data": 27, + "objectWithString": 5, + "repr": 5, + "jsonText": 1, + "NSError**": 2, + "Foo": 2, + "TUITableViewStylePlain": 2, + "regular": 1, + "TUITableViewStyleGrouped": 1, + "grouped": 1, + "headers": 11, + "stick": 1, + "scroll": 3, + "with": 19, + "TUITableViewStyle": 4, + "TUITableViewScrollPositionNone": 2, + "TUITableViewScrollPositionTop": 2, + "TUITableViewScrollPositionMiddle": 1, + "TUITableViewScrollPositionBottom": 1, + "TUITableViewScrollPositionToVisible": 3, + "currently": 4, + "only": 12, + "supported": 1, + "TUITableViewScrollPosition": 5, + "TUITableViewInsertionMethodBeforeIndex": 1, + "NSOrderedAscending": 4, + "TUITableViewInsertionMethodAtIndex": 1, + "NSOrderedSame": 1, + "TUITableViewInsertionMethodAfterIndex": 1, + "NSOrderedDescending": 4, + "TUITableViewInsertionMethod": 3, + "TUITableViewCell": 23, + "@protocol": 3, + "TUITableViewDataSource": 2, + "TUITableView": 25, + "TUITableViewDelegate": 1, + "": 1, + "TUIScrollViewDelegate": 1, + "CGFloat": 44, + "tableView": 45, + "heightForRowAtIndexPath": 2, + "TUIFastIndexPath": 89, + "indexPath": 47, + "@optional": 2, + "willDisplayCell": 2, + "cell": 21, + "forRowAtIndexPath": 2, + "called": 3, + "after": 5, + "added": 5, + "subview": 1, + "didSelectRowAtIndexPath": 3, + "happens": 4, + "left/right": 2, + "mouse": 2, + "down": 1, + "up/down": 1, + "didDeselectRowAtIndexPath": 3, + "didClickRowAtIndexPath": 1, + "withEvent": 2, + "NSEvent": 3, + "event": 8, + "up": 4, + "can": 20, + "look": 1, + "clickCount": 1, + "TUITableView*": 1, + "shouldSelectRowAtIndexPath": 3, + "TUIFastIndexPath*": 1, + "forEvent": 3, + "NSEvent*": 1, + "YES": 62, + "implemented": 7, + "NSMenu": 1, + "menuForRowAtIndexPath": 1, + "tableViewWillReloadData": 3, + "tableViewDidReloadData": 3, + "targetIndexPathForMoveFromRowAtIndexPath": 1, + "fromPath": 1, + "toProposedIndexPath": 1, + "proposedPath": 1, + "TUIScrollView": 1, + "__unsafe_unretained": 2, + "": 4, + "_dataSource": 6, + "weak": 2, + "_sectionInfo": 27, + "TUIView": 17, + "_pullDownView": 4, + "_headerView": 8, + "_lastSize": 1, + "_contentHeight": 7, + "NSMutableIndexSet": 6, + "_visibleSectionHeaders": 6, + "_visibleItems": 14, + "_reusableTableCells": 5, + "_selectedIndexPath": 9, + "_indexPathShouldBeFirstResponder": 2, + "_futureMakeFirstResponderToken": 2, + "_keepVisibleIndexPathForReload": 2, + "_relativeOffsetForReload": 2, + "drag": 1, + "reorder": 1, + "_dragToReorderCell": 5, + "CGPoint": 7, + "_currentDragToReorderLocation": 1, + "_currentDragToReorderMouseOffset": 1, + "_currentDragToReorderIndexPath": 1, + "_currentDragToReorderInsertionMethod": 1, + "_previousDragToReorderIndexPath": 1, + "_previousDragToReorderInsertionMethod": 1, + "animateSelectionChanges": 3, + "forceSaveScrollPosition": 1, + "derepeaterEnabled": 1, + "layoutSubviewsReentrancyGuard": 1, + "didFirstLayout": 1, + "dataSourceNumberOfSectionsInTableView": 1, + "delegateTableViewWillDisplayCellForRowAtIndexPath": 1, + "maintainContentOffsetAfterReload": 3, + "_tableFlags": 1, + "must": 6, + "specify": 2, + "creation.": 1, + "calls": 1, + "UITableViewStylePlain": 1, + "nonatomic": 40, + "unsafe_unretained": 2, + "dataSource": 2, + "": 4, + "readwrite": 1, + "assign": 84, + "reloadData": 3, + "reloadDataMaintainingVisibleIndexPath": 2, + "relativeOffset": 5, + "reloadLayout": 2, + "numberOfSections": 10, + "numberOfRowsInSection": 9, + "section": 60, + "rectForHeaderOfSection": 4, + "rectForSection": 3, + "rectForRowAtIndexPath": 7, + "NSIndexSet": 4, + "indexesOfSectionsInRect": 2, + "rect": 10, + "indexesOfSectionHeadersInRect": 2, + "indexPathForCell": 2, + "returns": 4, + "visible": 16, + "indexPathsForRowsInRect": 3, + "indexPathForRowAtPoint": 2, + "point": 11, + "indexPathForRowAtVerticalOffset": 2, + "offset": 23, + "indexOfSectionWithHeaderAtPoint": 2, + "indexOfSectionWithHeaderAtVerticalOffset": 2, + "enumerateIndexPathsUsingBlock": 2, + "*indexPath": 11, + "*stop": 7, + "enumerateIndexPathsWithOptions": 2, + "NSEnumerationOptions": 4, + "usingBlock": 6, + "enumerateIndexPathsFromIndexPath": 4, + "fromIndexPath": 6, + "toIndexPath": 12, + "withOptions": 4, + "headerViewForSection": 6, + "cellForRowAtIndexPath": 9, + "index": 11, + "path": 11, + "out": 7, + "visibleCells": 3, + "particular": 2, + "order": 1, + "sortedVisibleCells": 2, + "indexPathsForVisibleRows": 2, + "scrollToRowAtIndexPath": 3, + "atScrollPosition": 3, + "scrollPosition": 9, + "animated": 27, + "indexPathForSelectedRow": 4, + "representing": 1, + "row": 36, + "selection.": 1, + "indexPathForFirstRow": 2, + "indexPathForLastRow": 2, + "selectRowAtIndexPath": 3, + "deselectRowAtIndexPath": 3, + "strong": 4, + "*pullDownView": 1, + "pullDownViewIsVisible": 3, + "*headerView": 6, + "dequeueReusableCellWithIdentifier": 2, + "identifier": 7, + "": 1, + "@required": 1, + "canMoveRowAtIndexPath": 2, + "moveRowAtIndexPath": 2, + "numberOfSectionsInTableView": 3, + "NSIndexPath": 5, + "indexPathForRow": 11, + "inSection": 11, + "readonly": 19, + "": 1, + "kFramePadding": 7, + "kElementSpacing": 3, + "kGroupSpacing": 5, + "PlaygroundViewController": 2, + "addHeader": 5, + "yOffset": 42, + "UILabel*": 2, + "label": 6, + "UILabel": 2, + "CGRectZero": 5, + "label.text": 2, + "label.font": 3, + "label.numberOfLines": 2, + "label.frame": 4, + "frame.origin.x": 3, + "frame.size.width": 4, + "sizeWithFont": 2, + "constrainedToSize": 2, + "CGSizeMake": 3, + ".height": 4, + "_scrollView": 9, + "label.frame.size.height": 2, + "addText": 5, + "UIScrollView": 1, + "_scrollView.autoresizingMask": 1, + "UIViewAutoresizingFlexibleHeight": 1, + "NSLocalizedString": 9, + "UIButton*": 1, + "button": 5, + "UIButton": 1, + "buttonWithType": 1, + "UIButtonTypeRoundedRect": 1, + "setTitle": 1, + "UIControlStateNormal": 1, + "addTarget": 1, + "action": 1, + "debugTestAction": 2, + "forControlEvents": 1, + "UIControlEventTouchUpInside": 1, + "sizeToFit": 1, + "button.frame": 2, + "stringWithFormat": 6, + "TTCurrentLocale": 2, + "displayNameForKey": 1, + "NSLocaleIdentifier": 1, + "value": 21, + "localeIdentifier": 1, + "TTPathForBundleResource": 1, + "TTPathForDocumentsResource": 1, + "dataUsingEncoding": 2, + "NSUTF8StringEncoding": 2, + "md5Hash": 1, + "setContentSize": 1, + "viewDidUnload": 2, + "viewDidAppear": 2, + "flashScrollIndicators": 1, + "DEBUG": 1, + "NSLog": 4, + "TTDPRINTMETHODNAME": 1, + "TTDPRINT": 9, + "TTMAXLOGLEVEL": 1, + "TTDERROR": 1, + "TTLOGLEVEL_ERROR": 1, + "TTDWARNING": 1, + "TTLOGLEVEL_WARNING": 1, + "TTDINFO": 1, + "TTLOGLEVEL_INFO": 1, + "TTDCONDITIONLOG": 3, + "true": 9, + "false": 3, + "rand": 1, + "TTDASSERT": 2, + "@synthesize": 7, + "self.maxDepth": 2, + "Methods": 1, + "NSData": 28, + "self.error": 3, + "SBJsonStreamParserAccumulator": 2, + "*accumulator": 1, + "SBJsonStreamParserAdapter": 2, + "*adapter": 1, + "adapter.delegate": 1, + "accumulator": 1, + "SBJsonStreamParser": 2, + "*parser": 1, + "parser.maxDepth": 1, + "parser.delegate": 1, + "adapter": 1, + "switch": 3, + "parser": 3, + "parse": 1, + "case": 8, + "SBJsonStreamParserComplete": 1, + "accumulator.value": 1, + "SBJsonStreamParserWaitingForData": 1, + "SBJsonStreamParserError": 1, + "parser.error": 1, + "error_": 2, + "tmp": 3, + "*ui": 1, + "dictionaryWithObjectsAndKeys": 10, + "NSLocalizedDescriptionKey": 10, + "*error_": 1, + "errorWithDomain": 6, + "code": 16, + "userInfo": 15, + "ui": 1, + "": 1, + "": 1, + "": 1, + "__OBJC__": 4, + "": 1, + "": 1, + "__cplusplus": 2, + "NSINTEGER_DEFINED": 3, + "NS_BUILD_32_LIKE_64": 3, + "_JSONKIT_H_": 3, + "__APPLE_CC__": 2, + "JK_DEPRECATED_ATTRIBUTE": 6, + "deprecated": 1, + "JSONKIT_VERSION_MAJOR": 1, + "JSONKIT_VERSION_MINOR": 1, + "JKParseOptionNone": 1, + "JKParseOptionStrict": 1, + "JKParseOptionComments": 2, + "JKParseOptionUnicodeNewlines": 2, + "JKParseOptionLooseUnicode": 2, + "JKParseOptionPermitTextAfterValidJSON": 2, + "JKParseOptionValidFlags": 1, + "JKSerializeOptionNone": 3, + "JKSerializeOptionPretty": 2, + "JKSerializeOptionEscapeUnicode": 2, + "JKSerializeOptionEscapeForwardSlashes": 2, + "JKSerializeOptionValidFlags": 1, + "Opaque": 1, + "internal": 2, + "private": 1, + "decoder": 1, + "decoderWithParseOptions": 1, + "initWithParseOptions": 1, + "clearCache": 1, + "parseUTF8String": 2, + "Deprecated": 4, + "v1.4.": 4, + "Use": 6, + "objectWithUTF8String": 4, + "instead.": 4, + "parseJSONData": 2, + "jsonData": 6, + "mutableObjectWithUTF8String": 2, + "mutableObjectWithData": 2, + "////////////": 4, + "Deserializing": 1, + "methods": 2, + "JSONKitDeserializing": 2, + "objectFromJSONString": 1, + "objectFromJSONStringWithParseOptions": 2, + "mutableObjectFromJSONString": 1, + "mutableObjectFromJSONStringWithParseOptions": 2, + "objectFromJSONData": 1, + "objectFromJSONDataWithParseOptions": 2, + "mutableObjectFromJSONData": 1, + "mutableObjectFromJSONDataWithParseOptions": 2, + "Serializing": 1, + "JSONKitSerializing": 3, + "JSONData": 3, + "Invokes": 2, + "JSONDataWithOptions": 8, + "includeQuotes": 6, + "serializeOptions": 14, + "JSONString": 3, + "JSONStringWithOptions": 8, + "serializeUnsupportedClassesUsingDelegate": 4, + "__BLOCKS__": 1, + "JSONKitSerializingBlockAdditions": 2, + "serializeUnsupportedClassesUsingBlock": 4, + "UIScrollView*": 1, + "": 2, + "main": 8, + "argc": 1, + "*argv": 1, + "TTViewController": 1, + "@private": 2, + "TARGET_OS_IPHONE": 11, + "": 1, + "": 1, + "*ASIHTTPRequestVersion": 2, + "*defaultUserAgent": 1, + "NetworkRequestErrorDomain": 12, + "*ASIHTTPRequestRunLoopMode": 1, + "CFOptionFlags": 1, + "kNetworkEvents": 1, + "kCFStreamEventHasBytesAvailable": 1, + "kCFStreamEventEndEncountered": 1, + "kCFStreamEventErrorOccurred": 1, + "*sessionCredentialsStore": 1, + "*sessionProxyCredentialsStore": 1, + "NSRecursiveLock": 13, + "*sessionCredentialsLock": 1, + "*sessionCookies": 1, + "RedirectionLimit": 1, + "NSTimeInterval": 10, + "defaultTimeOutSeconds": 3, + "ReadStreamClientCallBack": 1, + "CFReadStreamRef": 5, + "readStream": 5, + "CFStreamEventType": 2, + "*clientCallBackInfo": 1, + "ASIHTTPRequest*": 1, + "clientCallBackInfo": 1, + "handleNetworkEvent": 2, + "*progressLock": 1, + "*ASIRequestCancelledError": 1, + "*ASIRequestTimedOutError": 1, + "*ASIAuthenticationError": 1, + "*ASIUnableToCreateRequestError": 1, + "*ASITooMuchRedirectionError": 1, + "*bandwidthUsageTracker": 1, + "averageBandwidthUsedPerSecond": 2, + "nextConnectionNumberToCreate": 1, + "*persistentConnectionsPool": 1, + "*connectionsLock": 1, + "nextRequestID": 1, + "bandwidthUsedInLastSecond": 1, + "NSDate": 9, + "*bandwidthMeasurementDate": 1, + "NSLock": 2, + "*bandwidthThrottlingLock": 1, + "maxBandwidthPerSecond": 2, + "ASIWWANBandwidthThrottleAmount": 2, + "isBandwidthThrottled": 2, + "shouldThrottleBandwidthForWWANOnly": 1, + "*sessionCookiesLock": 1, + "*delegateAuthenticationLock": 1, + "*throttleWakeUpTime": 1, + "": 9, + "defaultCache": 3, + "runningRequestCount": 1, + "shouldUpdateNetworkActivityIndicator": 1, + "NSThread": 4, + "*networkThread": 1, + "NSOperationQueue": 4, + "*sharedQueue": 1, + "ASIHTTPRequest": 31, + "cancelLoad": 3, + "destroyReadStream": 3, + "scheduleReadStream": 1, + "unscheduleReadStream": 1, + "willAskDelegateForCredentials": 1, + "willAskDelegateForProxyCredentials": 1, + "askDelegateForProxyCredentials": 1, + "askDelegateForCredentials": 1, + "failAuthentication": 1, + "measureBandwidthUsage": 1, + "recordBandwidthUsage": 1, + "startRequest": 3, + "updateStatus": 2, + "NSTimer": 5, + "timer": 5, + "checkRequestStatus": 2, + "reportFailure": 3, + "reportFinished": 1, + "markAsFinished": 4, + "performRedirect": 1, + "shouldTimeOut": 2, + "willRedirect": 1, + "willAskDelegateToConfirmRedirect": 1, + "performInvocation": 2, + "NSInvocation": 4, + "invocation": 4, + "onTarget": 7, + "target": 5, + "releasingObject": 2, + "objectToRelease": 1, + "hideNetworkActivityIndicatorAfterDelay": 1, + "hideNetworkActivityIndicatorIfNeeeded": 1, + "runRequests": 1, + "configureProxies": 2, + "fetchPACFile": 1, + "finishedDownloadingPACFile": 1, + "theRequest": 1, + "runPACScript": 1, + "script": 1, + "timeOutPACRead": 1, + "useDataFromCache": 2, + "updatePartialDownloadSize": 1, + "registerForNetworkReachabilityNotifications": 1, + "unsubscribeFromNetworkReachabilityNotifications": 1, + "reachabilityChanged": 1, + "NSNotification": 2, + "note": 1, + "NS_BLOCKS_AVAILABLE": 8, + "performBlockOnMainThread": 2, + "ASIBasicBlock": 15, + "releaseBlocksOnMainThread": 4, + "releaseBlocks": 3, + "blocks": 16, + "callBlock": 1, + "complete": 12, + "*responseCookies": 3, + "responseStatusCode": 3, + "*lastActivityTime": 2, + "partialDownloadSize": 8, + "uploadBufferSize": 6, + "NSOutputStream": 6, + "*postBodyWriteStream": 1, + "NSInputStream": 7, + "*postBodyReadStream": 1, + "lastBytesRead": 3, + "lastBytesSent": 3, + "*cancelledLock": 2, + "*fileDownloadOutputStream": 2, + "*inflatedFileDownloadOutputStream": 2, + "authenticationRetryCount": 2, + "proxyAuthenticationRetryCount": 4, + "updatedProgress": 3, + "needsRedirect": 3, + "redirectCount": 2, + "*compressedPostBody": 1, + "*compressedPostBodyFilePath": 1, + "*authenticationRealm": 2, + "*proxyAuthenticationRealm": 3, + "*responseStatusMessage": 3, + "inProgress": 4, + "retryCount": 3, + "willRetryRequest": 1, + "connectionCanBeReused": 4, + "*connectionInfo": 2, + "*readStream": 1, + "ASIAuthenticationState": 5, + "authenticationNeeded": 3, + "readStreamIsScheduled": 1, + "downloadComplete": 2, + "*requestID": 3, + "*runLoopMode": 2, + "*statusTimer": 2, + "didUseCachedResponse": 3, + "NSURL": 21, + "*redirectURL": 2, + "isPACFileRequest": 3, + "*PACFileRequest": 2, + "*PACFileReadStream": 2, + "NSMutableData": 5, + "*PACFileData": 2, + "setter": 2, + "setSynchronous": 2, + "isSynchronous": 2, + "initialize": 1, + "persistentConnectionsPool": 3, + "connectionsLock": 3, + "progressLock": 1, + "bandwidthThrottlingLock": 1, + "sessionCookiesLock": 1, + "sessionCredentialsLock": 1, + "delegateAuthenticationLock": 1, + "bandwidthUsageTracker": 1, + "initWithCapacity": 2, + "ASIRequestTimedOutError": 1, + "initWithDomain": 5, + "ASIRequestTimedOutErrorType": 2, + "ASIAuthenticationError": 1, + "ASIAuthenticationErrorType": 3, + "ASIRequestCancelledError": 2, + "ASIRequestCancelledErrorType": 2, + "ASIUnableToCreateRequestError": 3, + "ASIUnableToCreateRequestErrorType": 2, + "ASITooMuchRedirectionError": 1, + "ASITooMuchRedirectionErrorType": 3, + "sharedQueue": 4, + "setMaxConcurrentOperationCount": 1, + "initWithURL": 4, + "newURL": 16, + "setRequestMethod": 3, + "setRunLoopMode": 2, + "NSDefaultRunLoopMode": 2, + "setShouldAttemptPersistentConnection": 2, + "setPersistentConnectionTimeoutSeconds": 2, + "setShouldPresentCredentialsBeforeChallenge": 1, + "setShouldRedirect": 1, + "setShowAccurateProgress": 1, + "setShouldResetDownloadProgress": 1, + "setShouldResetUploadProgress": 1, + "setAllowCompressedResponse": 1, + "setShouldWaitToInflateCompressedResponses": 1, + "setDefaultResponseEncoding": 1, + "NSISOLatin1StringEncoding": 2, + "setShouldPresentProxyAuthenticationDialog": 1, + "setTimeOutSeconds": 1, + "setUseSessionPersistence": 1, + "setUseCookiePersistence": 1, + "setValidatesSecureCertificate": 1, + "setRequestCookies": 2, + "setDidStartSelector": 1, + "requestStarted": 3, + "setDidReceiveResponseHeadersSelector": 1, + "request": 113, + "didReceiveResponseHeaders": 2, + "setWillRedirectSelector": 1, + "willRedirectToURL": 1, + "setDidFinishSelector": 1, + "requestFinished": 4, + "setDidFailSelector": 1, + "requestFailed": 2, + "setDidReceiveDataSelector": 1, + "didReceiveData": 2, + "setURL": 3, + "setCancelledLock": 1, + "setDownloadCache": 3, + "requestWithURL": 7, + "usingCache": 5, + "cache": 17, + "andCachePolicy": 3, + "ASIUseDefaultCachePolicy": 1, + "ASICachePolicy": 4, + "policy": 7, + "*request": 1, + "setCachePolicy": 1, + "setAuthenticationNeeded": 2, + "ASINoAuthenticationNeededYet": 3, + "requestAuthentication": 7, + "proxyAuthentication": 7, + "clientCertificateIdentity": 5, + "redirectURL": 1, + "statusTimer": 3, + "invalidate": 2, + "queue": 12, + "postBody": 11, + "compressedPostBody": 4, + "requestHeaders": 6, + "requestCookies": 1, + "downloadDestinationPath": 11, + "temporaryFileDownloadPath": 2, + "temporaryUncompressedDataDownloadPath": 3, + "fileDownloadOutputStream": 1, + "inflatedFileDownloadOutputStream": 1, + "username": 8, + "password": 11, + "domain": 2, + "authenticationRealm": 4, + "authenticationScheme": 4, + "requestCredentials": 1, + "proxyHost": 2, + "proxyType": 1, + "proxyUsername": 3, + "proxyPassword": 3, + "proxyDomain": 1, + "proxyAuthenticationRealm": 2, + "proxyAuthenticationScheme": 2, + "proxyCredentials": 1, + "url": 24, + "originalURL": 1, + "lastActivityTime": 1, + "responseCookies": 1, + "rawResponseData": 4, + "responseHeaders": 5, + "requestMethod": 13, + "cancelledLock": 37, + "postBodyFilePath": 7, + "compressedPostBodyFilePath": 4, + "postBodyWriteStream": 7, + "postBodyReadStream": 2, + "PACurl": 1, + "clientCertificates": 2, + "responseStatusMessage": 1, + "connectionInfo": 13, + "requestID": 2, + "dataDecompressor": 1, + "userAgentString": 1, + "*blocks": 1, + "completionBlock": 5, + "addObject": 16, + "failureBlock": 5, + "startedBlock": 5, + "headersReceivedBlock": 5, + "bytesReceivedBlock": 8, + "bytesSentBlock": 5, + "downloadSizeIncrementedBlock": 5, + "uploadSizeIncrementedBlock": 5, + "dataReceivedBlock": 5, + "proxyAuthenticationNeededBlock": 5, + "authenticationNeededBlock": 5, + "requestRedirectedBlock": 5, + "performSelectorOnMainThread": 2, + "waitUntilDone": 4, + "isMainThread": 2, + "Blocks": 1, + "will": 57, + "released": 2, + "when": 46, + "method": 5, + "exits": 1, + "setup": 2, + "addRequestHeader": 5, + "header": 20, + "setRequestHeaders": 2, + "dictionaryWithCapacity": 2, + "buildPostBody": 3, + "haveBuiltPostBody": 3, + "Are": 1, + "submitting": 1, + "body": 8, + "from": 18, + "file": 14, + "disk": 1, + "were": 5, + "writing": 2, + "post": 2, + "appendPostData": 3, + "appendPostDataFromFile": 3, + "close": 5, + "write": 4, + "stream": 13, + "setPostBodyWriteStream": 2, + "*path": 1, + "shouldCompressRequestBody": 6, + "setCompressedPostBodyFilePath": 1, + "NSTemporaryDirectory": 2, + "stringByAppendingPathComponent": 2, + "NSProcessInfo": 2, + "processInfo": 2, + "globallyUniqueString": 2, + "*err": 3, + "ASIDataCompressor": 2, + "compressDataFromFile": 1, + "toFile": 1, + "err": 8, + "failWithError": 11, + "setPostLength": 3, + "NSFileManager": 1, + "attributesOfItemAtPath": 1, + "fileSize": 1, + "ASIFileManagementError": 2, + "NSUnderlyingErrorKey": 3, + "Otherwise": 2, + "an": 20, + "memory": 3, + "*compressedBody": 1, + "compressData": 1, + "setCompressedPostBody": 1, + "compressedBody": 1, + "postLength": 6, + "setHaveBuiltPostBody": 1, + "setupPostBody": 3, + "shouldStreamPostDataFromDisk": 4, + "setPostBodyFilePath": 1, + "setDidCreateTemporaryPostDataFile": 1, + "initToFileAtPath": 1, + "append": 1, + "open": 2, + "setPostBody": 1, + "bytes": 8, + "maxLength": 3, + "appendData": 2, + "*stream": 1, + "initWithFileAtPath": 1, + "bytesRead": 5, + "hasBytesAvailable": 1, + "buffer": 7, + "*256": 1, + "read": 3, + "dataWithBytes": 1, + "lock": 19, + "*m": 1, + "unlock": 20, + "m": 1, + "newRequestMethod": 3, + "*u": 1, + "isEqual": 4, + "setRedirectURL": 2, + "d": 11, + "setDelegate": 4, + "newDelegate": 6, + "q": 2, + "setQueue": 2, + "newQueue": 3, + "get": 4, + "information": 5, + "about": 4, + "cancelOnRequestThread": 2, + "DEBUG_REQUEST_STATUS": 4, + "ASI_DEBUG_LOG": 11, + "isCancelled": 6, + "setComplete": 3, + "willChangeValueForKey": 1, + "cancelled": 5, + "didChangeValueForKey": 1, + "cancel": 5, + "performSelector": 7, + "onThread": 2, + "threadForRequest": 3, + "clearDelegatesAndCancel": 2, + "Clear": 3, + "delegates": 2, + "setDownloadProgressDelegate": 2, + "setUploadProgressDelegate": 2, + "result": 4, + "responseString": 3, + "*data": 2, + "responseData": 5, + "initWithBytes": 1, + "encoding": 7, + "responseEncoding": 3, + "isResponseCompressed": 3, + "*encoding": 1, + "rangeOfString": 1, + ".location": 1, + "NSNotFound": 1, + "shouldWaitToInflateCompressedResponses": 4, + "ASIDataDecompressor": 4, + "uncompressData": 1, + "running": 4, + "startSynchronous": 2, + "DEBUG_THROTTLING": 2, + "ASIHTTPRequestRunLoopMode": 2, + "setInProgress": 3, + "NSRunLoop": 2, + "currentRunLoop": 2, + "runMode": 1, + "runLoopMode": 2, + "beforeDate": 1, + "distantFuture": 1, + "start": 3, + "startAsynchronous": 2, + "addOperation": 1, + "concurrency": 1, + "isConcurrent": 1, + "isFinished": 1, + "finished": 3, + "isExecuting": 1, + "logic": 1, + "@try": 1, + "__IPHONE_OS_VERSION_MAX_ALLOWED": 4, + "__IPHONE_4_0": 6, + "isMultitaskingSupported": 2, + "shouldContinueWhenAppEntersBackground": 3, + "backgroundTask": 7, + "UIBackgroundTaskInvalid": 3, + "UIApplication": 2, + "sharedApplication": 2, + "beginBackgroundTaskWithExpirationHandler": 1, + "dispatch_async": 1, + "dispatch_get_main_queue": 1, + "endBackgroundTask": 1, + "HEAD": 10, + "generated": 3, + "ASINetworkQueue": 4, + "set": 24, + "already.": 1, + "so": 15, + "should": 8, + "proceed.": 1, + "setDidUseCachedResponse": 1, + "Must": 1, + "call": 8, + "before": 6, + "create": 1, + "needs": 1, + "mainRequest": 9, + "ll": 6, + "already": 4, + "CFHTTPMessageRef": 3, + "Create": 1, + "new": 10, + "HTTP": 9, + "request.": 1, + "CFHTTPMessageCreateRequest": 1, + "kCFAllocatorDefault": 3, + "CFStringRef": 1, + "CFURLRef": 1, + "useHTTPVersionOne": 3, + "kCFHTTPVersion1_0": 1, + "kCFHTTPVersion1_1": 1, + "//If": 2, + "need": 10, + "let": 8, + "generate": 1, + "its": 9, + "first": 9, + "use": 26, + "them": 10, + "buildRequestHeaders": 3, + "Even": 1, + "still": 2, + "give": 2, + "subclasses": 2, + "chance": 2, + "add": 5, + "their": 3, + "own": 3, + "requests": 21, + "ASIS3Request": 1, + "downloadCache": 5, + "default": 8, + "download": 9, + "downloading": 5, + "proxy": 11, + "PAC": 7, + "once": 3, + "process": 1, + "@catch": 1, + "*exception": 1, + "*underlyingError": 1, + "ASIUnhandledExceptionError": 3, + "exception": 3, + "reason": 1, + "NSLocalizedFailureReasonErrorKey": 1, + "underlyingError": 1, + "@finally": 1, + "applyAuthorizationHeader": 2, + "Do": 3, + "want": 5, + "send": 2, + "credentials": 35, + "are": 15, + "asked": 3, + "shouldPresentCredentialsBeforeChallenge": 4, + "DEBUG_HTTP_AUTHENTICATION": 4, + "*credentials": 1, + "auth": 2, + "basic": 3, + "authentication": 18, + "explicitly": 2, + "kCFHTTPAuthenticationSchemeBasic": 2, + "addBasicAuthenticationHeaderWithUsername": 2, + "andPassword": 2, + "See": 5, + "any": 3, + "cached": 2, + "session": 5, + "store": 4, + "useSessionPersistence": 6, + "findSessionAuthenticationCredentials": 2, + "When": 15, + "Authentication": 3, + "stored": 9, + "challenge": 1, + "CFNetwork": 3, + "apply": 2, + "Digest": 2, + "NTLM": 6, + "always": 2, + "like": 1, + "CFHTTPMessageApplyCredentialDictionary": 2, + "CFHTTPAuthenticationRef": 2, + "CFDictionaryRef": 1, + "setAuthenticationScheme": 1, + "removeAuthenticationCredentialsFromSessionStore": 3, + "these": 3, + "previous": 2, + "passed": 2, + "re": 9, + "retrying": 1, + "using": 8, + "our": 6, + "custom": 2, + "measure": 1, + "bandwidth": 3, + "throttled": 1, + "necessary": 2, + "setPostBodyReadStream": 2, + "ASIInputStream": 2, + "inputStreamWithData": 2, + "setReadStream": 2, + "NSMakeCollectable": 3, + "CFReadStreamCreateForStreamedHTTPRequest": 1, + "CFReadStreamCreateForHTTPRequest": 1, + "ASIInternalErrorWhileBuildingRequestType": 3, + "scheme": 5, + "lowercaseString": 1, + "validatesSecureCertificate": 3, + "*sslProperties": 2, + "initWithObjectsAndKeys": 1, + "numberWithBool": 3, + "kCFStreamSSLAllowsExpiredCertificates": 1, + "kCFStreamSSLAllowsAnyRoot": 1, + "kCFStreamSSLValidatesCertificateChain": 1, + "kCFNull": 1, + "kCFStreamSSLPeerName": 1, + "CFReadStreamSetProperty": 1, + "kCFStreamPropertySSLSettings": 1, + "CFTypeRef": 1, + "sslProperties": 2, + "*certificates": 1, + "arrayWithCapacity": 2, + "The": 15, + "SecIdentityRef": 3, + "certificates": 2, + "ve": 7, + "opened": 3, + "*oldStream": 1, + "persistent": 5, + "connection": 17, + "possible": 3, + "shouldAttemptPersistentConnection": 2, + "redirecting": 2, + "current": 2, + "connecting": 2, + "server": 8, + "host": 9, + "intValue": 4, + "port": 17, + "setConnectionInfo": 2, + "Check": 1, + "expired": 1, + "timeIntervalSinceNow": 1, + "DEBUG_PERSISTENT_CONNECTIONS": 3, + "removeObject": 2, + "//Some": 1, + "other": 3, + "reused": 2, + "previously": 1, + "there": 1, + "one": 1, + "We": 7, + "just": 4, + "make": 3, + "old": 5, + "http": 4, + "//lists.apple.com/archives/Macnetworkprog/2006/Mar/msg00119.html": 1, + "oldStream": 4, + "streamSuccessfullyOpened": 1, + "setConnectionCanBeReused": 2, + "shouldResetUploadProgress": 3, + "showAccurateProgress": 7, + "incrementUploadSizeBy": 3, + "updateProgressIndicator": 4, + "uploadProgressDelegate": 8, + "withProgress": 4, + "ofTotal": 4, + "shouldResetDownloadProgress": 3, + "downloadProgressDelegate": 10, + "Record": 1, + "started": 1, + "timeout": 6, + "nothing": 2, + "setLastActivityTime": 1, + "date": 3, + "setStatusTimer": 2, + "timerWithTimeInterval": 1, + "repeats": 1, + "addTimer": 1, + "forMode": 1, + "here": 2, + "sent": 6, + "more": 5, + "upload": 4, + "safely": 1, + "totalBytesSent": 5, + "***Black": 1, + "magic": 1, + "warning***": 1, + "reliable": 1, + "way": 1, + "track": 1, + "progress": 13, + "KB": 4, + "iPhone": 3, + "Mac": 2, + "very": 2, + "slow.": 1, + "secondsSinceLastActivity": 1, + "timeOutSeconds": 3, + "*1.5": 1, + "won": 3, + "updating": 1, + "checking": 1, + "told": 1, + "us": 2, + "performThrottling": 2, + "auto": 2, + "retry": 3, + "numberOfTimesToRetryOnTimeout": 2, + "resuming": 1, + "update": 6, + "Range": 1, + "take": 1, + "account": 1, + "perhaps": 1, + "uploaded": 2, + "far": 2, + "setTotalBytesSent": 1, + "CFReadStreamCopyProperty": 2, + "kCFStreamPropertyHTTPRequestBytesWrittenCount": 1, + "unsignedLongLongValue": 1, + "middle": 1, + "said": 1, + "might": 4, + "resume": 2, + "used": 16, + "preset": 2, + "content": 5, + "updateUploadProgress": 3, + "updateDownloadProgress": 3, + "NSProgressIndicator": 4, + "MaxValue": 2, + "UIProgressView": 2, + "max": 7, + "setMaxValue": 2, + "amount": 12, + "callerToRetain": 7, + "examined": 1, + "since": 1, + "authenticate": 1, + "contentLength": 6, + "bytesReadSoFar": 3, + "totalBytesRead": 4, + "setUpdatedProgress": 1, + "didReceiveBytes": 2, + "totalSize": 2, + "setLastBytesRead": 1, + "pass": 5, + "pointer": 2, + "directly": 1, + "number": 2, + "itself": 1, + "rather": 4, + "setArgument": 4, + "argumentNumber": 1, + "callback": 3, + "NSMethodSignature": 1, + "*cbSignature": 1, + "methodSignatureForSelector": 1, + "*cbInvocation": 1, + "invocationWithMethodSignature": 1, + "cbSignature": 1, + "cbInvocation": 5, + "setSelector": 1, + "setTarget": 1, + "Used": 13, + "until": 2, + "forget": 2, + "know": 3, + "attempt": 3, + "reuse": 3, + "theError": 6, + "removeObjectForKey": 1, + "dateWithTimeIntervalSinceNow": 1, + "persistentConnectionTimeoutSeconds": 4, + "ignore": 1, + "ASIFallbackToCacheIfLoadFailsCachePolicy": 2, + "cachePolicy": 3, + "canUseCachedDataForRequest": 1, + "setError": 2, + "*failedRequest": 1, + "created": 3, + "compatible": 1, + "fail": 1, + "failedRequest": 4, + "parsing": 2, + "response": 17, + "readResponseHeaders": 2, + "message": 2, + "kCFStreamPropertyHTTPResponseHeader": 1, + "Make": 1, + "sure": 1, + "didn": 3, + "tells": 1, + "keepAliveHeader": 2, + "NSScanner": 2, + "*scanner": 1, + "scannerWithString": 1, + "scanner": 5, + "scanString": 2, + "intoString": 3, + "scanInt": 2, + "scanUpToString": 1, + "probably": 4, + "what": 3, + "you": 10, + "hard": 1, + "keep": 2, + "throw": 1, + "away.": 1, + "*userAgentHeader": 1, + "*acceptHeader": 1, + "userAgentHeader": 2, + "acceptHeader": 2, + "setHaveBuiltRequestHeaders": 1, + "Force": 2, + "rebuild": 2, + "cookie": 1, + "incase": 1, + "got": 1, + "some": 1, + "cookies": 5, + "All": 2, + "remain": 1, + "they": 6, + "redirects": 2, + "applyCookieHeader": 2, + "redirected": 2, + "ones": 3, + "URLWithString": 1, + "valueForKey": 2, + "relativeToURL": 1, + "absoluteURL": 1, + "setNeedsRedirect": 1, + "This": 7, + "means": 1, + "manually": 1, + "redirect": 4, + "those": 1, + "global": 1, + "But": 1, + "safest": 1, + "option": 1, + "different": 4, + "responseCode": 1, + "parseStringEncodingFromHeaders": 2, + "Handle": 1, + "NSStringEncoding": 6, + "charset": 5, + "*mimeType": 1, + "parseMimeType": 2, + "mimeType": 2, + "andResponseEncoding": 2, + "fromContentType": 2, + "setResponseEncoding": 2, + "defaultResponseEncoding": 4, + "saveProxyCredentialsToKeychain": 1, + "newCredentials": 16, + "NSURLCredential": 8, + "*authenticationCredentials": 2, + "credentialWithUser": 2, + "kCFHTTPAuthenticationUsername": 2, + "kCFHTTPAuthenticationPassword": 2, + "persistence": 2, + "NSURLCredentialPersistencePermanent": 2, + "authenticationCredentials": 4, + "saveCredentials": 4, + "forProxy": 2, + "proxyPort": 2, + "realm": 14, + "saveCredentialsToKeychain": 3, + "forHost": 2, + "protocol": 10, + "applyProxyCredentials": 2, + "setProxyAuthenticationRetryCount": 1, + "Apply": 1, + "whatever": 1, + "ok": 1, + "built": 2, + "CFMutableDictionaryRef": 1, + "save": 3, + "keychain": 7, + "useKeychainPersistence": 4, + "*sessionCredentials": 1, + "sessionCredentials": 6, + "storeAuthenticationCredentialsInSessionStore": 2, + "setRequestCredentials": 1, + "findProxyCredentials": 2, + "*newCredentials": 1, + "*user": 1, + "*pass": 1, + "*theRequest": 1, + "try": 3, + "user": 6, + "connect": 1, + "website": 1, + "kCFHTTPAuthenticationSchemeNTLM": 1, + "Ok": 1, + "For": 2, + "authenticating": 2, + "proxies": 3, + "extract": 1, + "NSArray*": 1, + "ntlmComponents": 1, + "componentsSeparatedByString": 1, + "AUTH": 6, + "Request": 6, + "parent": 1, + "properties": 1, + "received": 5, + "ASIAuthenticationDialog": 2, + "had": 1, + "FooAppDelegate": 2, + "window": 1, + "applicationDidFinishLaunching": 1, + "aNotification": 1, + "": 1, + "NSWindow": 2, + "*window": 2, + "IBOutlet": 1, + "HEADER_Z_POSITION": 2, + "beginning": 1, + "height": 19, + "TUITableViewRowInfo": 3, + "TUITableViewSection": 16, + "*_tableView": 1, + "*_headerView": 1, + "Not": 2, + "reusable": 1, + "similar": 1, + "UITableView": 1, + "sectionIndex": 23, + "numberOfRows": 13, + "sectionHeight": 9, + "sectionOffset": 8, + "*rowInfo": 1, + "initWithNumberOfRows": 2, + "_tableView": 3, + "rowInfo": 7, + "_setupRowHeights": 2, + "*header": 1, + "self.headerView": 2, + "roundf": 2, + "header.frame.size.height": 1, + "i": 41, + "h": 3, + "_tableView.delegate": 1, + ".offset": 2, + "rowHeight": 2, + "sectionRowOffset": 2, + "tableRowOffset": 2, + "headerHeight": 4, + "self.headerView.frame.size.height": 1, + "headerView": 14, + "_tableView.dataSource": 3, + "respondsToSelector": 8, + "_headerView.autoresizingMask": 1, + "TUIViewAutoresizingFlexibleWidth": 1, + "_headerView.layer.zPosition": 1, + "Private": 1, + "_updateSectionInfo": 2, + "_updateDerepeaterViews": 2, + "pullDownView": 1, + "_tableFlags.animateSelectionChanges": 3, + "_tableFlags.delegateTableViewWillDisplayCellForRowAtIndexPath": 1, + "setDataSource": 1, + "_tableFlags.dataSourceNumberOfSectionsInTableView": 2, + "setAnimateSelectionChanges": 1, + "*s": 3, + "y": 12, + "CGRectMake": 8, + "self.bounds.size.width": 4, + "indexPath.section": 3, + "indexPath.row": 1, + "*section": 8, + "removeFromSuperview": 4, + "removeAllIndexes": 2, + "*sections": 1, + "bounds": 2, + ".size.height": 1, + "self.contentInset.top*2": 1, + "section.sectionOffset": 1, + "sections": 4, + "self.contentInset.bottom": 1, + "_enqueueReusableCell": 2, + "*identifier": 1, + "cell.reuseIdentifier": 1, + "*c": 1, + "lastObject": 1, + "removeLastObject": 1, + "prepareForReuse": 1, + "allValues": 1, + "SortCells": 1, + "*a": 2, + "*b": 2, + "*ctx": 1, + "a.frame.origin.y": 2, + "b.frame.origin.y": 2, + "*v": 2, + "v": 4, + "sortedArrayUsingComparator": 1, + "NSComparator": 1, + "NSComparisonResult": 1, + "INDEX_PATHS_FOR_VISIBLE_ROWS": 4, + "allKeys": 1, + "*i": 4, + "*cell": 7, + "*indexes": 2, + "CGRectIntersectsRect": 5, + "indexes": 4, + "addIndex": 3, + "*indexPaths": 1, + "cellRect": 7, + "indexPaths": 2, + "CGRectContainsPoint": 1, + "cellRect.origin.y": 1, + "origin": 1, + "brief": 1, + "Obtain": 1, + "whose": 2, + "specified": 1, + "exists": 1, + "negative": 1, + "returned": 1, + "param": 1, + "location": 3, + "p": 3, + "0": 2, + "width": 1, + "point.y": 1, + "section.headerView": 9, + "sectionLowerBound": 2, + "fromIndexPath.section": 1, + "sectionUpperBound": 3, + "toIndexPath.section": 1, + "rowLowerBound": 2, + "fromIndexPath.row": 1, + "rowUpperBound": 3, + "toIndexPath.row": 1, + "irow": 3, + "lower": 1, + "bound": 1, + "iteration...": 1, + "rowCount": 3, + "j": 5, + "stop": 4, + "FALSE": 2, + "...then": 1, + "zero": 1, + "subsequent": 2, + "iterations": 1, + "_topVisibleIndexPath": 1, + "*topVisibleIndex": 1, + "sortedArrayUsingSelector": 1, + "compare": 4, + "topVisibleIndex": 2, + "setFrame": 2, + "_tableFlags.forceSaveScrollPosition": 1, + "setContentOffset": 2, + "_tableFlags.didFirstLayout": 1, + "prevent": 2, + "during": 4, + "layout": 3, + "pinned": 5, + "isKindOfClass": 2, + "TUITableViewSectionHeader": 5, + ".pinnedToViewport": 2, + "TRUE": 1, + "pinnedHeader": 1, + "CGRectGetMaxY": 2, + "headerFrame": 4, + "pinnedHeader.frame.origin.y": 1, + "intersecting": 1, + "push": 1, + "upwards.": 1, + "pinnedHeaderFrame": 2, + "pinnedHeader.frame": 2, + "pinnedHeaderFrame.origin.y": 1, + "notify": 3, + "section.headerView.frame": 1, + "setNeedsLayout": 3, + "section.headerView.superview": 1, + "remove": 4, + "offscreen": 2, + "toRemove": 1, + "enumerateIndexesUsingBlock": 1, + "removeIndex": 1, + "_layoutCells": 3, + "visibleCellsNeedRelayout": 5, + "remaining": 1, + "cells": 7, + "needed": 3, + "cell.frame": 1, + "cell.layer.zPosition": 1, + "visibleRect": 3, + "Example": 1, + "*oldVisibleIndexPaths": 1, + "*newVisibleIndexPaths": 1, + "*indexPathsToRemove": 1, + "oldVisibleIndexPaths": 2, + "mutableCopy": 2, + "indexPathsToRemove": 2, + "removeObjectsInArray": 2, + "newVisibleIndexPaths": 2, + "*indexPathsToAdd": 1, + "indexPathsToAdd": 2, + "don": 2, + "newly": 1, + "superview": 1, + "bringSubviewToFront": 1, + "self.contentSize": 3, + "headerViewRect": 3, + "s.height": 3, + "_headerView.frame.size.height": 2, + "visible.size.width": 3, + "_headerView.frame": 1, + "_headerView.hidden": 4, + "show": 2, + "pullDownRect": 4, + "_pullDownView.frame.size.height": 2, + "_pullDownView.hidden": 4, + "_pullDownView.frame": 1, + "self.delegate": 10, + "recycle": 1, + "all": 3, + "regenerated": 3, + "layoutSubviews": 5, + "because": 1, + "dragged": 1, + "clear": 3, + "removeAllObjects": 1, + "laid": 1, + "next": 2, + "_tableFlags.layoutSubviewsReentrancyGuard": 3, + "setAnimationsEnabled": 1, + "CATransaction": 3, + "begin": 1, + "setDisableActions": 1, + "_preLayoutCells": 2, + "munge": 2, + "contentOffset": 2, + "_layoutSectionHeaders": 2, + "_tableFlags.derepeaterEnabled": 1, + "commit": 1, + "has": 6, + "selected": 2, + "being": 4, + "overlapped": 1, + "r.size.height": 4, + "headerFrame.size.height": 1, + "do": 5, + "r.origin.y": 1, + "v.size.height": 2, + "scrollRectToVisible": 2, + "sec": 3, + "_makeRowAtIndexPathFirstResponder": 2, + "accept": 2, + "responder": 2, + "made": 1, + "acceptsFirstResponder": 1, + "self.nsWindow": 3, + "makeFirstResponderIfNotAlreadyInResponderChain": 1, + "futureMakeFirstResponderRequestToken": 1, + "*oldIndexPath": 1, + "oldIndexPath": 2, + "setSelected": 2, + "setNeedsDisplay": 2, + "selection": 3, + "actually": 2, + "changes": 4, + "NSResponder": 1, + "*firstResponder": 1, + "firstResponder": 3, + "indexPathForFirstVisibleRow": 2, + "*firstIndexPath": 1, + "firstIndexPath": 4, + "indexPathForLastVisibleRow": 2, + "*lastIndexPath": 5, + "lastIndexPath": 8, + "performKeyAction": 2, + "repeative": 1, + "press": 1, + "noCurrentSelection": 2, + "isARepeat": 1, + "TUITableViewCalculateNextIndexPathBlock": 3, + "selectValidIndexPath": 3, + "*startForNoSelection": 2, + "calculateNextIndexPath": 4, + "foundValidNextRow": 4, + "*newIndexPath": 1, + "newIndexPath": 6, + "startForNoSelection": 1, + "_delegate": 2, + "self.animateSelectionChanges": 1, + "charactersIgnoringModifiers": 1, + "characterAtIndex": 1, + "NSUpArrowFunctionKey": 1, + "lastIndexPath.section": 2, + "lastIndexPath.row": 2, + "rowsInSection": 7, + "NSDownArrowFunctionKey": 1, + "_tableFlags.maintainContentOffsetAfterReload": 2, + "setMaintainContentOffsetAfterReload": 1, + "newValue": 2, + "indexPathWithIndexes": 1, + "indexAtPosition": 2, + "nibNameOrNil": 1, + "NSBundle": 1, + "nibBundleOrNil": 1, + "//self.variableHeightRows": 1, + "self.tableViewStyle": 1, + "UITableViewStyleGrouped": 1, + "self.dataSource": 1, + "TTSectionedDataSource": 1, + "dataSourceWithObjects": 1, + "TTTableTextItem": 48, + "itemWithText": 48, + "URL": 48, + "": 1, + "": 1, + "Necessary": 1, + "background": 1, + "task": 1, + "__IPHONE_3_2": 2, + "__MAC_10_5": 2, + "__MAC_10_6": 2, + "_ASIAuthenticationState": 1, + "ASIHTTPAuthenticationNeeded": 1, + "ASIProxyAuthenticationNeeded": 1, + "_ASINetworkErrorType": 1, + "ASIConnectionFailureErrorType": 2, + "ASIInternalErrorWhileApplyingCredentialsType": 1, + "ASICompressionError": 1, + "ASINetworkErrorType": 1, + "ASIHeadersBlock": 3, + "*responseHeaders": 2, + "ASISizeBlock": 5, + "ASIProgressBlock": 5, + "total": 4, + "ASIDataBlock": 3, + "NSOperation": 1, + "": 1, + "operation": 2, + "include": 1, + "GET": 1, + "params": 1, + "query": 1, + "where": 1, + "appropriate": 4, + "*url": 2, + "Will": 7, + "contain": 4, + "original": 2, + "making": 1, + "change": 2, + "*originalURL": 2, + "Temporarily": 1, + "stores": 1, + "to.": 2, + "again": 1, + "notified": 2, + "various": 1, + "ASIHTTPRequestDelegate": 1, + "": 1, + "Another": 1, + "also": 1, + "status": 4, + "updates": 2, + "Generally": 1, + "likely": 1, + "sessionCookies": 2, + "*requestCookies": 2, + "populated": 1, + "useCookiePersistence": 3, + "network": 4, + "present": 3, + "successfully": 4, + "presented": 2, + "duration": 1, + "clearSession": 2, + "allowCompressedResponse": 3, + "inform": 1, + "compressed": 2, + "automatically": 2, + "decompress": 1, + "gzipped": 7, + "responses.": 1, + "Default": 10, + "true.": 1, + "gzipped.": 1, + "false.": 1, + "You": 1, + "enable": 1, + "feature": 1, + "your": 2, + "webserver": 1, + "work.": 1, + "Tested": 1, + "apache": 1, + "only.": 1, + "downloaded": 6, + "*downloadDestinationPath": 2, + "files": 5, + "Once": 2, + "decompressed": 3, + "moved": 2, + "*temporaryFileDownloadPath": 2, + "containing": 1, + "inflated": 6, + "comes": 3, + "*temporaryUncompressedDataDownloadPath": 2, + "fails": 2, + "completes": 6, + "occurs": 1, + "Connection": 1, + "failure": 1, + "occurred": 1, + "inspect": 1, + "Username": 2, + "*username": 2, + "*password": 2, + "User": 1, + "Agent": 1, + "*userAgentString": 2, + "Domain": 2, + "*domain": 2, + "*proxyUsername": 2, + "*proxyPassword": 2, + "*proxyDomain": 2, + "Delegate": 2, + "displaying": 2, + "usually": 2, + "supply": 2, + "handle": 4, + "yourself": 4, + "": 2, + "Whether": 1, + "hassle": 1, + "adding": 1, + "apps": 1, + "shouldPresentProxyAuthenticationDialog": 2, + "*proxyCredentials": 2, + "Basic": 2, + "*proxyAuthenticationScheme": 2, + "Realm": 1, + "eg": 2, + "OK": 1, + "etc": 1, + "Description": 1, + "Size": 3, + "partially": 1, + "POST": 2, + "payload": 1, + "Last": 2, + "incrementing": 2, + "prevents": 1, + "inopportune": 1, + "moment": 1, + "Called": 6, + "starts.": 1, + "didStartSelector": 2, + "receives": 3, + "headers.": 1, + "didReceiveResponseHeadersSelector": 2, + "Location": 1, + "shouldRedirect": 3, + "then": 1, + "restart": 1, + "calling": 1, + "redirectToURL": 2, + "simply": 1, + "willRedirectSelector": 2, + "successfully.": 1, + "didFinishSelector": 2, + "fails.": 1, + "didFailSelector": 2, + "data.": 1, + "implement": 1, + "populate": 1, + "didReceiveDataSelector": 2, + "recording": 1, + "something": 1, + "last": 1, + "happened": 1, + "Number": 1, + "seconds": 2, + "wait": 1, + "timing": 1, + "starts": 2, + "*mainRequest": 2, + "indicator": 4, + "according": 2, + "how": 2, + "much": 2, + "Also": 1, + "see": 1, + "comments": 1, + "ASINetworkQueue.h": 1, + "ensure": 1, + "incremented": 4, + "Prevents": 1, + "largely": 1, + "internally": 3, + "reflect": 1, + "PUT": 1, + "operations": 1, + "sizes": 1, + "greater": 1, + "unless": 2, + "been": 1, + "Likely": 1, + "OS": 1, + "X": 1, + "Leopard": 1, + "Text": 1, + "responses": 5, + "Content": 1, + "Type": 1, + "value.": 1, + "Defaults": 2, + "set.": 1, + "Tells": 1, + "delete": 1, + "partial": 2, + "downloads": 1, + "allows": 1, + "existing": 1, + "download.": 1, + "NO.": 1, + "allowResumeForFileDownloads": 2, + "Custom": 1, + "associated": 1, + "*userInfo": 2, + "tag": 2, + "defaults": 2, + "tell": 2, + "loop": 1, + "Incremented": 1, + "every": 3, + "redirects.": 1, + "reaches": 1, + "check": 1, + "secure": 1, + "certificate": 2, + "signed": 1, + "development": 1, + "DO": 1, + "NOT": 1, + "USE": 1, + "IN": 1, + "PRODUCTION": 1, + "*clientCertificates": 2, + "Details": 1, + "could": 1, + "best": 1, + "local": 1, + "*PACurl": 2, + "values": 3, + "above.": 1, + "No": 1, + "yet": 1, + "ASIHTTPRequests": 1, + "avoids": 1, + "extra": 1, + "round": 1, + "trip": 1, + "succeeded": 1, + "which": 1, + "efficient": 1, + "authenticated": 1, + "large": 1, + "bodies": 1, + "slower": 1, + "connections": 3, + "Set": 4, + "affects": 1, + "YES.": 1, + "Credentials": 1, + "never": 1, + "asks": 1, + "hasn": 1, + "doing": 1, + "anything": 1, + "expires": 1, + "yes": 1, + "alive": 1, + "Stores": 1, + "use.": 1, + "expire": 2, + "connection.": 2, + "These": 1, + "determine": 1, + "whether": 1, + "match": 1, + "An": 2, + "determining": 1, + "available": 1, + "reference": 1, + "one.": 1, + "closed": 1, + "either": 1, + "another": 1, + "fires": 1, + "automatic": 1, + "standard": 1, + "follow": 1, + "behaviour": 2, + "most": 1, + "browsers": 1, + "shouldUseRFC2616RedirectBehaviour": 2, + "record": 1, + "ID": 1, + "uniquely": 1, + "identifies": 1, + "primarily": 1, + "debugging": 1, + "synchronous": 1, + "checks": 1, + "setDefaultCache": 2, + "configure": 2, + "ASICacheDelegate.h": 2, + "storage": 2, + "ASICacheStoragePolicy": 2, + "cacheStoragePolicy": 2, + "pulled": 1, + "secondsToCache": 3, + "interval": 1, + "expiring": 1, + "UIBackgroundTaskIdentifier": 1, + "helper": 1, + "inflate": 2, + "*dataDecompressor": 2, + "Controls": 1, + "without": 1, + "raw": 3, + "discarded": 1, + "normal": 1, + "contents": 1, + "into": 1, + "Setting": 1, + "especially": 1, + "useful": 1, + "users": 1, + "conjunction": 1, + "streaming": 1, + "allow": 1, + "behind": 1, + "scenes": 1, + "https": 1, + "webservers": 1, + "asynchronously": 1, + "reading": 1, + "URLs": 2, + "storing": 1, + "startSynchronous.": 1, + "Currently": 1, + "detection": 2, + "synchronously": 1, + "//block": 12, + "execute": 4, + "handling": 4, + "redirections": 1, + "setStartedBlock": 1, + "aStartedBlock": 1, + "setHeadersReceivedBlock": 1, + "aReceivedBlock": 2, + "setCompletionBlock": 1, + "aCompletionBlock": 1, + "setFailedBlock": 1, + "aFailedBlock": 1, + "setBytesReceivedBlock": 1, + "aBytesReceivedBlock": 1, + "setBytesSentBlock": 1, + "aBytesSentBlock": 1, + "setDownloadSizeIncrementedBlock": 1, + "aDownloadSizeIncrementedBlock": 1, + "setUploadSizeIncrementedBlock": 1, + "anUploadSizeIncrementedBlock": 1, + "setDataReceivedBlock": 1, + "setAuthenticationNeededBlock": 1, + "anAuthenticationBlock": 1, + "setProxyAuthenticationNeededBlock": 1, + "aProxyAuthenticationBlock": 1, + "setRequestRedirectedBlock": 1, + "aRedirectBlock": 1, + "HEADRequest": 1, + "upload/download": 1, + "updateProgressIndicators": 1, + "removeUploadProgressSoFar": 1, + "incrementDownloadSizeBy": 1, + "caller": 1, + "talking": 1, + "requestReceivedResponseHeaders": 1, + "newHeaders": 1, + "retryUsingNewConnection": 1, + "stringEncoding": 1, + "contentType": 1, + "stuff": 1, + "applyCredentials": 1, + "findCredentials": 1, + "retryUsingSuppliedCredentials": 1, + "cancelAuthentication": 1, + "attemptToApplyCredentialsAndResume": 1, + "attemptToApplyProxyCredentialsAndResume": 1, + "showProxyAuthenticationDialog": 1, + "showAuthenticationDialog": 1, + "theUsername": 1, + "thePassword": 1, + "handlers": 1, + "handleBytesAvailable": 1, + "handleStreamComplete": 1, + "handleStreamError": 1, + "cleanup": 1, + "removeTemporaryDownloadFile": 1, + "removeTemporaryUncompressedDownloadFile": 1, + "removeTemporaryUploadFile": 1, + "removeTemporaryCompressedUploadFile": 1, + "removeFileAtPath": 1, + "connectionID": 1, + "expirePersistentConnections": 1, + "setDefaultTimeOutSeconds": 1, + "newTimeOutSeconds": 1, + "client": 1, + "setClientCertificateIdentity": 1, + "anIdentity": 1, + "sessionProxyCredentialsStore": 1, + "sessionCredentialsStore": 1, + "storeProxyAuthenticationCredentialsInSessionStore": 1, + "removeProxyAuthenticationCredentialsFromSessionStore": 1, + "findSessionProxyAuthenticationCredentials": 1, + "savedCredentialsForHost": 1, + "savedCredentialsForProxy": 1, + "removeCredentialsForHost": 1, + "removeCredentialsForProxy": 1, + "setSessionCookies": 1, + "newSessionCookies": 1, + "addSessionCookie": 1, + "NSHTTPCookie": 1, + "newCookie": 1, + "agent": 2, + "defaultUserAgentString": 1, + "setDefaultUserAgentString": 1, + "mime": 1, + "mimeTypeForFileAtPath": 1, + "measurement": 1, + "throttling": 1, + "setMaxBandwidthPerSecond": 1, + "incrementBandwidthUsedInLastSecond": 1, + "setShouldThrottleBandwidthForWWAN": 1, + "throttle": 1, + "throttleBandwidthForWWANUsingLimit": 1, + "limit": 1, + "reachability": 1, + "isNetworkReachableViaWWAN": 1, + "maxUploadReadLength": 1, + "activity": 1, + "isNetworkInUse": 1, + "setShouldUpdateNetworkActivityIndicator": 1, + "shouldUpdate": 1, + "showNetworkActivityIndicator": 1, + "hideNetworkActivityIndicator": 1, + "miscellany": 1, + "base64forData": 1, + "theData": 1, + "expiryDateForRequest": 1, + "maxAge": 2, + "dateFromRFC1123String": 1, + "threading": 1, + "*proxyHost": 1, + "*proxyType": 1, + "*requestHeaders": 1, + "*requestCredentials": 1, + "*rawResponseData": 1, + "*requestMethod": 1, + "*postBody": 1, + "*postBodyFilePath": 1, + "didCreateTemporaryPostDataFile": 1, + "*authenticationScheme": 1, + "shouldPresentAuthenticationDialog": 1, + "haveBuiltRequestHeaders": 1 + }, + "ATS": { + "%": 7, + "{": 142, + "#include": 16, + "}": 141, + "": 1, + "html": 1, + "PUBLIC": 1, + "W3C": 1, + "DTD": 2, + "XHTML": 1, + "1": 3, + "EN": 1, + "http": 2, + "www": 1, + "w3": 1, + "org": 1, + "TR": 1, + "xhtml11": 2, + "dtd": 1, + "": 1, + "xmlns=": 1, + "": 1, + "": 1, + "equiv=": 1, + "content=": 1, + "": 1, + "EFFECTIVATS": 1, + "-": 49, + "DiningPhil2": 1, + "": 1, + "#patscode_style": 1, + "(": 562, + ")": 567, + "": 1, + "": 1, + "

": 1, + "Effective": 1, + "ATS": 2, + "Dining": 2, + "Philosophers": 2, + "

": 1, + "In": 2, + "this": 2, + "article": 2, + "I": 8, + "present": 1, + "an": 6, + "implementation": 3, + "of": 59, + "a": 200, + "slight": 1, + "variant": 1, + "the": 30, + "famous": 1, + "problem": 1, + "by": 4, + "Dijkstra": 1, + "that": 8, + "makes": 1, + "simple": 1, + "but": 1, + "convincing": 1, + "use": 1, + "linear": 2, + "types.": 1, + "

": 8, + "The": 8, + "Original": 2, + "Problem": 2, + "

": 8, + "There": 3, + "are": 7, + "five": 1, + "philosophers": 1, + "sitting": 1, + "around": 1, + "table": 3, + "and": 10, + "there": 3, + "also": 3, + "forks": 7, + "placed": 1, + "on": 8, + "such": 1, + "each": 2, + "fork": 16, + "is": 26, + "located": 2, + "between": 1, + "left": 3, + "hand": 6, + "philosopher": 5, + "right": 3, + "another": 1, + "philosopher.": 1, + "Each": 4, + "does": 1, + "following": 6, + "routine": 1, + "repeatedly": 1, + "thinking": 1, + "dining.": 1, + "order": 1, + "to": 16, + "dine": 1, + "needs": 2, + "first": 2, + "acquire": 1, + "two": 3, + "one": 3, + "his": 4, + "side": 2, + "other": 2, + "side.": 2, + "After": 2, + "finishing": 1, + "dining": 1, + "puts": 2, + "acquired": 1, + "onto": 1, + "A": 6, + "Variant": 1, + "twist": 1, + "added": 1, + "original": 1, + "version": 1, + "

": 1, + "used": 1, + "it": 2, + "becomes": 1, + "be": 9, + "put": 1, + "in": 48, + "tray": 2, + "for": 15, + "dirty": 2, + "forks.": 1, + "cleaner": 2, + "who": 1, + "cleans": 1, + "then": 11, + "them": 2, + "back": 1, + "table.": 1, + "Channels": 1, + "Communication": 1, + "channel": 11, + "just": 1, + "shared": 1, + "queue": 1, + "fixed": 1, + "capacity.": 1, + "functions": 1, + "inserting": 1, + "element": 5, + "into": 3, + "taking": 1, + "out": 8, + "given": 4, + "

": 7,
+      "class=": 6,
+      "#pats2xhtml_sats": 3,
+      "
": 7, + "If": 2, + "[": 49, + "channel_insert": 5, + "]": 48, + "called": 2, + "full": 4, + "caller": 2, + "blocked": 3, + "until": 2, + "taken": 1, + "channel.": 2, + "channel_takeout": 4, + "empty": 1, + "inserted": 1, + "Channel": 2, + "Fork": 3, + "Forks": 1, + "resources": 1, + "type.": 1, + "initially": 1, + "stored": 2, + "which": 2, + "can": 4, + "obtained": 2, + "calling": 2, + "function": 3, + "where": 6, + "type": 30, + "nphil": 13, + "defined": 1, + "natLt": 2, + "natural": 1, + "numbers": 1, + "less": 1, + "than": 1, + ".": 14, + "channels": 4, + "storing": 3, + "chosen": 3, + "capacity": 3, + "reason": 1, + "store": 1, + "at": 2, + "most": 1, + "guarantee": 1, + "these": 1, + "never": 2, + "so": 2, + "no": 2, + "attempt": 1, + "made": 1, + "send": 1, + "signals": 1, + "awake": 1, + "callers": 1, + "supposedly": 1, + "being": 2, + "due": 1, + "Tray": 1, + "instead": 1, + "become": 1, + "as": 4, + "only": 1, + "total": 1, + "Philosopher": 1, + "Loop": 2, + "implemented": 2, + "loop": 2, + "#pats2xhtml_dats": 3, + "It": 2, + "should": 3, + "straighforward": 2, + "follow": 2, + "code": 6, + "phil_loop": 10, + "Cleaner": 1, + "cleaner_return": 4, + "finds": 1, + "number": 2, + "uses": 1, + "locate": 1, + "fork.": 1, + "Its": 1, + "actual": 1, + "follows": 1, + "now": 1, + "cleaner_loop": 6, + "Testing": 1, + "entire": 1, + "files": 1, + "DiningPhil2.sats": 1, + "DiningPhil2.dats": 1, + "DiningPhil2_fork.dats": 1, + "DiningPhil2_thread.dats": 1, + "Makefile": 1, + "available": 1, + "compiling": 1, + "source": 1, + "excutable": 1, + "testing.": 1, + "One": 1, + "able": 1, + "encounter": 1, + "deadlock": 2, + "after": 1, + "running": 1, + "simulation": 1, + "while.": 1, + "
": 1, + "size=": 1, + "This": 1, + "written": 1, + "": 14, + "href=": 1, + "Hongwei": 1, + "Xi": 1, + "": 1, + "": 1, + "": 1, + "implement": 55, + "main": 1, + "fprint_filsub": 1, + "stdout_ref": 4, + "//": 211, + "staload": 25, + "_": 25, + "sortdef": 2, + "ftype": 13, + "infixr": 2, + "typedef": 10, + "b": 26, + "": 2, + "functor": 12, + "F": 34, + "list0": 9, + "extern": 13, + "val": 95, + "functor_list0": 7, + "f": 22, + "lam": 20, + "xs": 82, + "list0_map": 2, + "": 3, + "option0": 3, + "functor_option0": 2, + "opt": 6, + "option0_map": 1, + "functor_homres": 2, + "c": 3, + "r": 25, + "x": 48, + "fun": 56, + "Yoneda_phi": 3, + "Yoneda_psi": 3, + "ftor": 9, + "fx": 8, + "m": 4, + "mf": 4, + "natrans": 3, + "G": 2, + "Yoneda_phi_nat": 2, + "Yoneda_psi_nat": 2, + "*": 2, + "datatype": 4, + "bool": 27, + "True": 7, + "|": 22, + "False": 8, + "boxed": 2, + "boolean": 2, + "bool2string": 4, + "string": 2, + "case": 9, + "+": 20, + "fprint_val": 2, + "": 2, + "fprint": 3, + "myboolist0": 9, + "list_t": 1, + "g0ofg1_list": 1, + "Yoneda_bool_list0": 3, + "myboolist1": 2, + "fprintln": 3, + "main0": 3, + "UN": 3, + "phil_left": 3, + "n": 51, + "phil_right": 3, + "nmod": 1, + "NPHIL": 6, + "randsleep": 6, + "intGte": 1, + "void": 14, + "ignoret": 2, + "sleep": 2, + "UN.cast": 2, + "uInt": 1, + "rand": 1, + "mod": 1, + "phil_think": 3, + "println": 9, + "phil_dine": 3, + "lf": 5, + "rf": 5, + "let": 34, + "nl": 2, + "nr": 2, + "ch_lfork": 2, + "fork_changet": 5, + "ch_rfork": 2, + "HX": 1, + "try": 1, + "actively": 1, + "induce": 1, + "ch_forktray": 3, + "forktray_changet": 4, + "end": 73, + "cleaner_wash": 3, + "fork_get_num": 4, + "ch": 7, + "f0": 3, + "dynload": 3, + "local": 10, + "mythread_create_cloptr": 6, + "llam": 6, + "while": 1, + "true": 5, + "datavtype": 1, + "FORK": 3, + "assume": 2, + "fork_vtype": 3, + "the_forkarray": 2, + "t": 1, + "array_tabulate": 1, + "fopr": 1, + "": 2, + "channel_create_exn": 2, + "": 2, + "i2sz": 4, + "arrayref_tabulate": 1, + "the_forktray": 2, + "absvtype": 2, + "set_vtype": 3, + "t@ype": 2, + "ptr": 2, + "vtypedef": 2, + "set": 34, + "t0p": 31, + "compare_elt_elt": 4, + "x1": 1, + "x2": 1, + "<": 14, + "int": 2, + "linset_nil": 2, + "linset_make_nil": 2, + "linset_sing": 2, + "": 16, + "linset_make_sing": 2, + "linset_make_list": 1, + "List": 1, + "INV": 24, + "linset_is_nil": 2, + "linset_isnot_nil": 2, + "linset_size": 2, + "size_t": 1, + "linset_is_member": 3, + "x0": 22, + "linset_isnot_member": 1, + "linset_copy": 2, + "linset_free": 2, + "linset_insert": 3, + "&": 17, + "linset_takeout": 1, + "res": 9, + "#": 7, + "endfun": 1, + "linset_takeout_opt": 1, + "Option_vt": 4, + "linset_remove": 2, + "linset_choose": 3, + "linset_choose_opt": 1, + "linset_takeoutmax": 1, + "linset_takeoutmax_opt": 1, + "linset_takeoutmin": 1, + "linset_takeoutmin_opt": 1, + "fprint_linset": 3, + "sep": 1, + "FILEref": 2, + "overload": 1, + "with": 1, + "env": 11, + "vt0p": 2, + "linset_foreach": 3, + "fwork": 3, + "linset_foreach_env": 3, + "linset_listize": 2, + "List0_vt": 5, + "linset_listize1": 2, + "#define": 4, + "ATS_PACKNAME": 1, + "ATS_STALOADFLAG": 1, + "static": 1, + "loading": 1, + "run": 1, + "time": 1, + "castfn": 1, + "linset2list": 1, + "reuse": 2, + "elt": 2, + "list_vt_nil": 16, + "list_vt_cons": 17, + "list_vt_is_nil": 1, + "list_vt_is_cons": 1, + "list_vt_length": 1, + "aux": 4, + "nat": 4, + "": 3, + "list_vt": 7, + "sgn": 9, + "if": 7, + "false": 6, + "else": 7, + "list_vt_copy": 2, + "list_vt_free": 1, + "mynode_cons": 4, + "nx": 22, + "mynode1": 6, + "xs1": 15, + "UN.castvwtp0": 8, + "List1_vt": 5, + "@list_vt_cons": 5, + "xs2": 3, + "prval": 20, + "UN.cast2void": 5, + ";": 4, + "fold@": 8, + "ins": 3, + "tail": 1, + "recursive": 1, + "n1": 4, + "<=>": 1, + "mynode_make_elt": 4, + "ans": 2, + "found": 1, + "effmask_all": 3, + "free@": 1, + "xs1_": 3, + "rem": 1, + "opt_some": 1, + "opt_none": 1, + "list_vt_foreach": 1, + "": 3, + "list_vt_foreach_env": 1, + "mynode_null": 5, + "mynode": 3, + "null": 1, + "the_null_ptr": 1, + "mynode_free": 1, + "nx2": 4, + "mynode_get_elt": 1, + "nx1": 7, + "UN.castvwtp1": 2, + "mynode_set_elt": 1, + "l": 3, + "__assert": 2, + "praxi": 1, + "mynode_getfree_elt": 1, + "linset_takeout_ngc": 2, + "takeout": 3, + "mynode0": 1, + "pf_x": 6, + "view@x": 3, + "pf_xs1": 6, + "view@xs1": 3, + "linset_takeoutmax_ngc": 2, + "xs_": 4, + "@list_vt_nil": 1, + "linset_takeoutmin_ngc": 2, + "unsnoc": 4, + "pos": 1, + "fold@xs": 1, + "CoYoneda": 7, + "CoYoneda_phi": 2, + "CoYoneda_psi": 3, + "int0": 4, + "int2bool": 2, + "i": 6, + "myintlist0": 2, + "g0ofg1": 1, + "list": 1 + }, + "Nimrod": { + "echo": 1 + }, + "Gnuplot": { + "set": 98, + "dummy": 3, + "u": 25, + "v": 31, + "label": 14, + "at": 14, + "-": 102, + "left": 15, + "norotate": 18, + "back": 23, + "nopoint": 14, + "offset": 25, + "character": 22, + "arrow": 7, + "from": 7, + "to": 7, + "head": 7, + "nofilled": 7, + "linetype": 11, + "linewidth": 11, + "parametric": 3, + "view": 3, + "samples": 3, + "isosamples": 3, + "hidden3d": 2, + "trianglepattern": 2, + "undefined": 2, + "altdiagonal": 2, + "bentover": 2, + "ztics": 2, + "norangelimit": 3, + "title": 13, + "xlabel": 6, + "font": 8, + "textcolor": 13, + "lt": 15, + "xrange": 3, + "[": 18, + "]": 18, + "noreverse": 13, + "nowriteback": 12, + "ylabel": 5, + "rotate": 3, + "by": 3, + "yrange": 4, + "zlabel": 4, + "zrange": 2, + "sinc": 13, + "(": 52, + ")": 52, + "sin": 3, + "sqrt": 4, + "u**2": 4, + "+": 6, + "v**2": 4, + "/": 2, + "GPFUN_sinc": 2, + "xx": 2, + "dx": 2, + "x0": 4, + "x1": 4, + "x2": 4, + "x3": 4, + "x4": 4, + "x5": 4, + "x6": 4, + "x7": 4, + "x8": 4, + "x9": 4, + "splot": 3, + "<": 10, + "notitle": 15, + "unset": 2, + "border": 3, + "angles": 1, + "degrees": 1, + "mapping": 1, + "spherical": 1, + "noxtics": 2, + "noytics": 2, + "noztics": 1, + "urange": 1, + "vrange": 1, + "cblabel": 1, + "cbrange": 1, + "colorbox": 3, + "user": 1, + "vertical": 2, + "origin": 1, + "screen": 2, + "size": 1, + "front": 1, + "bdefault": 1, + "cos": 9, + "*cos": 1, + "*sin": 1, + "with": 3, + "lines": 2, + "using": 2, + "labels": 1, + "point": 1, + "pt": 2, + "lw": 1, + ".1": 1, + "tc": 1, + "pal": 1, + "xmin": 3, + "xmax": 1, + "n": 1, + "zbase": 2, + ".5": 2, + "*n": 1, + "floor": 3, + "u/3": 1, + "*dx": 1, + "%": 2, + "u/3.*dx": 1, + "/0": 1, + "SHEBANG#!gnuplot": 1, + "reset": 1, + "terminal": 1, + "png": 1, + "output": 1, + "#set": 2, + "xr": 1, + "yr": 1, + "plot": 3, + "rgb": 8, + "style": 7, + "line": 4, + "linecolor": 4, + "pointtype": 4, + "pointsize": 4, + "default": 4, + "pointinterval": 4, + "bmargin": 1, + "x": 7, + "ls": 4, + ".2": 1, + ".4": 1, + ".6": 1, + ".8": 1, + "lc": 3, + "boxwidth": 1, + "absolute": 1, + "fill": 1, + "solid": 1, + "key": 1, + "inside": 1, + "right": 1, + "top": 1, + "Right": 1, + "noenhanced": 1, + "autotitles": 1, + "nobox": 1, + "histogram": 1, + "clustered": 1, + "gap": 1, + "datafile": 1, + "missing": 1, + "data": 1, + "histograms": 1, + "xtics": 3, + "in": 1, + "scale": 1, + "nomirror": 1, + "autojustify": 1, + "i": 1, + "xtic": 1, + "ti": 4, + "col": 4 + }, + "YAML": { + "-": 25, + "http_interactions": 1, + "request": 1, + "method": 1, + "get": 1, + "uri": 1, + "http": 1, + "//example.com/": 1, + "body": 3, + "headers": 2, + "{": 1, + "}": 1, + "response": 2, + "status": 1, + "code": 1, + "message": 1, + "OK": 1, + "Content": 2, + "Type": 1, + "text/html": 1, + ";": 1, + "charset": 1, + "utf": 1, + "Length": 1, + "This": 1, + "is": 1, + "the": 1, + "http_version": 1, + "recorded_at": 1, + "Tue": 1, + "Nov": 1, + "GMT": 1, + "recorded_with": 1, + "VCR": 1, + "gem": 1, + "local": 1, + "gen": 1, + "rdoc": 2, + "run": 1, + "tests": 1, + "inline": 1, + "source": 1, + "line": 1, + "numbers": 1, + "gempath": 1, + "/usr/local/rubygems": 1, + "/home/gavin/.rubygems": 1 + }, + "Dart": { + "import": 1, + "as": 1, + "math": 1, + ";": 9, + "class": 1, + "Point": 5, + "{": 3, + "num": 2, + "x": 2, + "y": 2, + "(": 7, + "this.x": 1, + "this.y": 1, + ")": 7, + "distanceTo": 1, + "other": 1, + "var": 4, + "dx": 3, + "-": 2, + "other.x": 1, + "dy": 3, + "other.y": 1, + "return": 1, + "math.sqrt": 1, + "*": 2, + "+": 1, + "}": 3, + "void": 1, + "main": 1, + "p": 1, + "new": 2, + "q": 1, + "print": 1 + }, + "SourcePawn": { + "//#define": 1, + "DEBUG": 2, + "#if": 1, + "defined": 1, + "#define": 7, + "assert": 2, + "(": 233, + "%": 18, + ")": 234, + "if": 44, + "ThrowError": 2, + ";": 213, + "assert_msg": 2, + "#else": 1, + "#endif": 1, + "#pragma": 1, + "semicolon": 1, + "#include": 3, + "": 1, + "": 1, + "": 1, + "public": 21, + "Plugin": 1, + "myinfo": 1, + "{": 73, + "name": 7, + "author": 1, + "description": 1, + "version": 1, + "SOURCEMOD_VERSION": 1, + "url": 1, + "}": 71, + "new": 62, + "Handle": 51, + "g_Cvar_Winlimit": 5, + "INVALID_HANDLE": 56, + "g_Cvar_Maxrounds": 5, + "g_Cvar_Fraglimit": 6, + "g_Cvar_Bonusroundtime": 6, + "g_Cvar_StartTime": 3, + "g_Cvar_StartRounds": 5, + "g_Cvar_StartFrags": 3, + "g_Cvar_ExtendTimeStep": 2, + "g_Cvar_ExtendRoundStep": 2, + "g_Cvar_ExtendFragStep": 2, + "g_Cvar_ExcludeMaps": 3, + "g_Cvar_IncludeMaps": 2, + "g_Cvar_NoVoteMode": 2, + "g_Cvar_Extend": 2, + "g_Cvar_DontChange": 2, + "g_Cvar_EndOfMapVote": 8, + "g_Cvar_VoteDuration": 3, + "g_Cvar_RunOff": 2, + "g_Cvar_RunOffPercent": 2, + "g_VoteTimer": 7, + "g_RetryTimer": 4, + "g_MapList": 8, + "g_NominateList": 7, + "g_NominateOwners": 7, + "g_OldMapList": 7, + "g_NextMapList": 2, + "g_VoteMenu": 1, + "g_Extends": 2, + "g_TotalRounds": 7, + "bool": 10, + "g_HasVoteStarted": 7, + "g_WaitingForVote": 4, + "g_MapVoteCompleted": 9, + "g_ChangeMapAtRoundEnd": 6, + "g_ChangeMapInProgress": 4, + "g_mapFileSerial": 3, + "-": 12, + "g_NominateCount": 3, + "MapChange": 4, + "g_ChangeTime": 1, + "g_NominationsResetForward": 3, + "g_MapVoteStartedForward": 2, + "MAXTEAMS": 4, + "g_winCount": 4, + "[": 19, + "]": 19, + "VOTE_EXTEND": 1, + "VOTE_DONTCHANGE": 1, + "OnPluginStart": 1, + "LoadTranslations": 2, + "arraySize": 5, + "ByteCountToCells": 1, + "PLATFORM_MAX_PATH": 6, + "CreateArray": 5, + "CreateConVar": 15, + "_": 18, + "true": 26, + "RegAdminCmd": 2, + "Command_Mapvote": 2, + "ADMFLAG_CHANGEMAP": 2, + "Command_SetNextmap": 2, + "FindConVar": 4, + "||": 15, + "decl": 5, + "String": 11, + "folder": 5, + "GetGameFolderName": 1, + "sizeof": 6, + "strcmp": 3, + "HookEvent": 6, + "Event_TeamPlayWinPanel": 3, + "Event_TFRestartRound": 2, + "else": 5, + "Event_RoundEnd": 3, + "Event_PlayerDeath": 2, + "AutoExecConfig": 1, + "//Change": 1, + "the": 5, + "mp_bonusroundtime": 1, + "max": 1, + "so": 1, + "that": 2, + "we": 2, + "have": 2, + "time": 9, + "to": 4, + "display": 2, + "vote": 6, + "//If": 1, + "you": 1, + "a": 1, + "during": 2, + "bonus": 2, + "good": 1, + "defaults": 1, + "are": 1, + "duration": 1, + "and": 1, + "mp_bonustime": 1, + "SetConVarBounds": 1, + "ConVarBound_Upper": 1, + "CreateGlobalForward": 2, + "ET_Ignore": 2, + "Param_String": 1, + "Param_Cell": 1, + "APLRes": 1, + "AskPluginLoad2": 1, + "myself": 1, + "late": 1, + "error": 1, + "err_max": 1, + "RegPluginLibrary": 1, + "CreateNative": 9, + "Native_NominateMap": 1, + "Native_RemoveNominationByMap": 1, + "Native_RemoveNominationByOwner": 1, + "Native_InitiateVote": 1, + "Native_CanVoteStart": 2, + "Native_CheckVoteDone": 2, + "Native_GetExcludeMapList": 2, + "Native_GetNominatedMapList": 2, + "Native_EndOfMapVoteEnabled": 2, + "return": 23, + "APLRes_Success": 1, + "OnConfigsExecuted": 1, + "ReadMapList": 1, + "MAPLIST_FLAG_CLEARARRAY": 1, + "|": 1, + "MAPLIST_FLAG_MAPSFOLDER": 1, + "LogError": 2, + "CreateNextVote": 1, + "SetupTimeleftTimer": 3, + "false": 8, + "ClearArray": 2, + "for": 9, + "i": 13, + "<": 5, + "+": 12, + "&&": 5, + "GetConVarInt": 10, + "GetConVarFloat": 2, + "<=>": 1, + "Warning": 1, + "Bonus": 1, + "Round": 1, + "Time": 2, + "shorter": 1, + "than": 1, + "Vote": 4, + "Votes": 1, + "round": 1, + "may": 1, + "not": 1, + "complete": 1, + "OnMapEnd": 1, + "map": 27, + "GetCurrentMap": 1, + "PushArrayString": 3, + "GetArraySize": 8, + "RemoveFromArray": 3, + "OnClientDisconnect": 1, + "client": 9, + "index": 8, + "FindValueInArray": 1, + "oldmap": 4, + "GetArrayString": 3, + "Call_StartForward": 1, + "Call_PushString": 1, + "Call_PushCell": 1, + "GetArrayCell": 2, + "Call_Finish": 1, + "Action": 3, + "args": 3, + "ReplyToCommand": 2, + "Plugin_Handled": 4, + "GetCmdArg": 1, + "IsMapValid": 1, + "ShowActivity": 1, + "LogAction": 1, + "SetNextMap": 1, + "OnMapTimeLeftChanged": 1, + "GetMapTimeLeft": 1, + "startTime": 4, + "*": 1, + "GetConVarBool": 6, + "InitiateVote": 8, + "MapChange_MapEnd": 6, + "KillTimer": 1, + "//g_VoteTimer": 1, + "CreateTimer": 3, + "float": 2, + "Timer_StartMapVote": 3, + "TIMER_FLAG_NO_MAPCHANGE": 4, + "data": 8, + "CreateDataTimer": 1, + "WritePackCell": 2, + "ResetPack": 1, + "timer": 2, + "Plugin_Stop": 2, + "mapChange": 2, + "ReadPackCell": 2, + "hndl": 2, + "event": 11, + "const": 4, + "dontBroadcast": 4, + "Timer_ChangeMap": 2, + "bluescore": 2, + "GetEventInt": 7, + "redscore": 2, + "StrEqual": 1, + "CheckMaxRounds": 3, + "switch": 1, + "case": 2, + "CheckWinLimit": 4, + "//We": 1, + "need": 2, + "do": 1, + "nothing": 1, + "on": 1, + "winning_team": 1, + "this": 1, + "indicates": 1, + "stalemate.": 1, + "default": 1, + "winner": 9, + "//": 3, + "Nuclear": 1, + "Dawn": 1, + "SetFailState": 1, + "winner_score": 2, + "winlimit": 3, + "roundcount": 2, + "maxrounds": 3, + "fragger": 3, + "GetClientOfUserId": 1, + "GetClientFrags": 1, + "when": 2, + "inputlist": 1, + "IsVoteInProgress": 1, + "Can": 1, + "t": 7, + "be": 1, + "excluded": 1, + "from": 1, + "as": 2, + "they": 1, + "weren": 1, + "nominationsToAdd": 1, + "Change": 2, + "Extend": 2, + "Map": 5, + "Voting": 7, + "next": 5, + "has": 5, + "started.": 1, + "SM": 5, + "Nextmap": 5, + "Started": 1, + "Current": 2, + "Extended": 1, + "finished.": 3, + "The": 1, + "current": 1, + "been": 1, + "extended.": 1, + "Stays": 1, + "was": 3, + "Finished": 1, + "s.": 1, + "Runoff": 2, + "Starting": 2, + "indecisive": 1, + "beginning": 1, + "runoff": 1, + "T": 3, + "Dont": 1, + "because": 1, + "outside": 1, + "request": 1, + "inputarray": 1, + "plugin": 5, + "numParams": 5, + "CanVoteStart": 1, + "array": 3, + "GetNativeCell": 3, + "size": 2, + "maparray": 3, + "ownerarray": 3, + "If": 1, + "optional": 1, + "parameter": 1, + "an": 1, + "owner": 1, + "list": 1, + "passed": 1, + "then": 1, + "fill": 1, + "out": 1, + "well": 1, + "PushArrayCell": 1 + }, + "Omgrofl": { + "lol": 14, + "iz": 11, + "wtf": 1, + "liek": 1, + "lmao": 1, + "brb": 1, + "w00t": 1, + "Hello": 1, + "World": 1, + "rofl": 13, + "lool": 5, + "loool": 6, + "stfu": 1 + }, + "Nemerle": { + "using": 1, + "System.Console": 1, + ";": 2, + "module": 1, + "Program": 1, + "{": 2, + "Main": 1, + "(": 2, + ")": 2, + "void": 1, + "WriteLine": 1, + "}": 2 + }, + "Nu": { + "SHEBANG#!nush": 1, + "(": 14, + "puts": 1, + ")": 14, + ";": 22, + "main.nu": 1, + "Entry": 1, + "point": 1, + "for": 1, + "a": 1, + "Nu": 1, + "program.": 1, + "Copyright": 1, + "c": 1, + "Tim": 1, + "Burks": 1, + "Neon": 1, + "Design": 1, + "Technology": 1, + "Inc.": 1, + "load": 4, + "basics": 1, + "cocoa": 1, + "definitions": 1, + "menu": 1, + "generation": 1, + "Aaron": 1, + "Hillegass": 1, + "t": 1, + "retain": 1, + "it.": 1, + "NSApplication": 2, + "sharedApplication": 2, + "setDelegate": 1, + "set": 1, + "delegate": 1, + "ApplicationDelegate": 1, + "alloc": 1, + "init": 1, + "this": 1, + "makes": 1, + "the": 3, + "application": 1, + "window": 1, + "take": 1, + "focus": 1, + "when": 1, + "we": 1, + "ve": 1, + "started": 1, + "it": 1, + "from": 1, + "terminal": 1, + "activateIgnoringOtherApps": 1, + "YES": 1, + "run": 1, + "main": 1, + "Cocoa": 1, + "event": 1, + "loop": 1, + "NSApplicationMain": 1, + "nil": 1 }, "C++": { - "class": 40, - "Bar": 2, + "#ifndef": 28, + "GDSDBREADER_H": 3, + "#define": 342, + "#include": 121, + "": 1, + "GDS_DIR": 1, + "enum": 17, + "level": 10, "{": 629, - "protected": 4, - "char": 127, - "*name": 6, - ";": 2564, - "public": 33, - "void": 226, - "hello": 2, - "(": 2853, - ")": 2855, + "LEVEL_ONE": 1, + "LEVEL_TWO": 1, + "LEVEL_THREE": 1, "}": 629, + ";": 2564, + "class": 40, + "dbDataStructure": 2, + "public": 33, + "QString": 20, + "label": 1, + "quint32": 3, + "depth": 1, + "userIndex": 1, + "QByteArray": 1, + "data": 26, "//": 292, + "This": 19, + "is": 102, + "COMPRESSED": 1, + "optimize": 1, + "ram": 1, + "and": 118, + "disk": 2, + "space": 2, + "decompressed": 1, + "quint64": 1, + "uniqueID": 1, + "QVector": 2, + "": 1, + "nextItems": 1, + "": 1, + "nextItemsIndices": 1, + "dbDataStructure*": 1, + "father": 1, + "fatherIndex": 1, + "bool": 105, + "noFatherRoot": 1, + "Used": 2, + "to": 254, + "tell": 1, + "if": 316, + "this": 55, + "node": 1, + "the": 541, + "root": 1, + "(": 2853, + "so": 2, + "hasn": 1, + "t": 15, + "in": 165, + "argument": 1, + "list": 3, + "of": 215, + "an": 23, + "operator": 10, + "overload.": 1, + "A": 7, + "friend": 10, + "return": 221, + "stream": 6, + "<<": 29, + "myclass.label": 2, + "myclass.depth": 2, + "myclass.userIndex": 2, + "qCompress": 2, + "myclass.data": 4, + ")": 2855, + "myclass.uniqueID": 2, + "myclass.nextItemsIndices": 2, + "myclass.fatherIndex": 2, + "myclass.noFatherRoot": 2, + "myclass.fileName": 2, + "myclass.firstLineData": 4, + "myclass.linesNumbers": 2, + "QDataStream": 2, + "&": 161, + "myclass": 1, + "//Don": 1, + "read": 21, + "it": 19, + "either": 4, + "qUncompress": 2, + "#endif": 98, "///": 843, "mainpage": 1, "C": 6, @@ -9853,25 +15085,19 @@ "BCM": 14, "as": 28, "used": 17, - "in": 165, "Raspberry": 6, "Pi": 5, - "This": 19, - "is": 102, "a": 157, "RPi": 17, ".": 16, "It": 7, "provides": 3, "access": 17, - "to": 254, "GPIO": 87, - "and": 118, "other": 17, "IO": 2, "functions": 19, "on": 55, - "the": 541, "chip": 9, "allowing": 3, "pins": 40, @@ -9879,7 +15105,6 @@ "IDE": 4, "plug": 3, "board": 2, - "so": 2, "you": 29, "can": 21, "control": 17, @@ -9929,10 +15154,8 @@ "another": 1, "The": 50, "version": 38, - "of": 215, "package": 1, "that": 36, - "this": 55, "documentation": 3, "refers": 1, "be": 35, @@ -9951,7 +15174,6 @@ "programs": 4, "provided.": 1, "Based": 1, - "data": 26, "//elinux.org/RPi_Low": 1, "level_peripherals": 1, "//www.raspberrypi.org/wp": 1, @@ -9977,7 +15199,6 @@ "author": 3, "directly": 2, "unless": 1, - "it": 19, "discuss": 1, "commercial": 1, "licensing.": 1, @@ -10005,7 +15226,6 @@ "yet": 1, "determined": 1, "suspect": 1, - "an": 23, "interrupt": 1, "handler": 1, "hitting": 1, @@ -10053,7 +15273,6 @@ "bcm2835_peri_write": 3, "bcm2835_peri_set_bits": 2, "low": 5, - "level": 10, "peripheral": 14, "register": 17, "functions.": 4, @@ -10218,7 +15437,6 @@ "guarantee": 1, "bcm2835_delay": 5, "bcm2835_delayMicroseconds": 6, - "return": 221, "exactly": 2, "requested.": 1, "fact": 2, @@ -10247,7 +15465,6 @@ "sched_param": 1, "sp": 4, "memset": 3, - "&": 161, "sizeof": 15, "sp.sched_priority": 1, "sched_get_priority_max": 1, @@ -10263,7 +15480,6 @@ "GPL": 2, "appropriate": 7, "option": 1, - "if": 316, "want": 5, "share": 2, "source": 12, @@ -10348,7 +15564,6 @@ "Sundstrom.": 1, "bcm2835_spi_transfernb": 2, "buffers": 3, - "read": 21, "write.": 1, "Improvements": 3, "barrier": 3, @@ -10449,7 +15664,6 @@ "patch": 1, "since": 3, "don": 1, - "t": 15, "seem": 1, "work": 1, "everywhere.": 1, @@ -10512,10 +15726,7 @@ "DIRECTLY": 1, "USE": 1, "LISTS": 1, - "#ifndef": 28, "BCM2835_H": 3, - "#define": 342, - "#include": 121, "": 2, "defgroup": 7, "constants": 1, @@ -10639,7 +15850,6 @@ "modes": 1, "bcm2835_gpio_fsel": 2, "typedef": 50, - "enum": 17, "BCM2835_GPIO_FSEL_INPT": 1, "b000": 1, "Input": 2, @@ -10682,8 +15892,6 @@ "Control": 6, "masks": 1, "BCM2835_PAD_PASSWRD": 1, - "A": 7, - "<<": 29, "Password": 1, "BCM2835_PAD_SLEW_RATE_UNLIMITED": 1, "Slew": 1, @@ -11023,7 +16231,6 @@ "BCM2835_PWM0_SERIAL": 1, "BCM2835_PWM0_ENABLE": 1, "x": 86, - "#endif": 98, "#ifdef": 19, "__cplusplus": 12, "init": 2, @@ -11052,6 +16259,7 @@ "successful": 2, "else": 50, "int": 192, + "void": 226, "Close": 1, "deallocating": 1, "allocated": 2, @@ -11136,7 +16344,6 @@ "affect.": 4, "eg": 5, "returns": 4, - "either": 4, "Works": 1, "whether": 4, "output.": 1, @@ -11344,6 +16551,7 @@ "nothing": 1, "driver": 1, "const": 170, + "char": 127, "*": 177, "receive.": 2, "received.": 2, @@ -11386,737 +16594,6 @@ "how": 3, "spi.c": 1, "spin.c": 1, - "#pragma": 3, - "": 4, - "": 4, - "": 2, - "namespace": 32, - "std": 52, - "DEFAULT_DELIMITER": 1, - "CsvStreamer": 5, - "private": 16, - "ofstream": 1, - "File": 1, - "stream": 6, - "vector": 16, - "row_buffer": 1, - "stores": 3, - "row": 12, - "flushed/written": 1, - "fields": 4, - "columns": 2, - "rows": 3, - "records": 2, - "including": 2, - "delimiter": 2, - "Delimiter": 1, - "character": 10, - "comma": 2, - "string": 24, - "sanitize": 1, - "ready": 1, - "Empty": 1, - "CSV": 4, - "streamer...": 1, - "Same": 1, - "...": 1, - "Opens": 3, - "path/name": 3, - "Ensures": 1, - "closed": 1, - "saved": 1, - "delimiting": 1, - "add_field": 1, - "line": 11, - "adds": 1, - "field": 5, - "save_fields": 1, - "save": 1, - "writes": 2, - "append": 8, - "Appends": 5, - "quoted": 1, - "leading/trailing": 1, - "spaces": 3, - "trimmed": 1, - "bool": 105, - "Like": 1, - "specify": 1, - "trim": 2, - "keep": 1, - "float": 74, - "double": 25, - "writeln": 1, - "Flushes": 1, - "Saves": 1, - "closes": 1, - "field_count": 1, - "Gets": 2, - "row_count": 1, - "": 1, - "": 1, - "": 2, - "static": 262, - "Env": 13, - "*env_instance": 1, - "NULL": 109, - "*Env": 1, - "instance": 4, - "env_instance": 3, - "QObject": 2, - "QCoreApplication": 1, - "parse": 3, - "**envp": 1, - "**env": 1, - "**": 2, - "QString": 20, - "envvar": 2, - "name": 25, - "indexOfEquals": 5, - "env": 3, - "envp": 4, - "*env": 1, - "envvar.indexOf": 1, - "continue": 2, - "envvar.left": 1, - "envvar.mid": 1, - "m_map.insert": 1, - "QVariantMap": 3, - "asVariantMap": 2, - "m_map": 2, - "ENV_H": 3, - "": 1, - "Q_OBJECT": 1, - "*instance": 1, - "Field": 2, - "Free": 1, - "Black": 1, - "White": 1, - "Illegal": 1, - "Player": 1, - "GDSDBREADER_H": 3, - "": 1, - "GDS_DIR": 1, - "LEVEL_ONE": 1, - "LEVEL_TWO": 1, - "LEVEL_THREE": 1, - "dbDataStructure": 2, - "label": 1, - "quint32": 3, - "depth": 1, - "userIndex": 1, - "QByteArray": 1, - "COMPRESSED": 1, - "optimize": 1, - "ram": 1, - "disk": 2, - "space": 2, - "decompressed": 1, - "quint64": 1, - "uniqueID": 1, - "QVector": 2, - "": 1, - "nextItems": 1, - "": 1, - "nextItemsIndices": 1, - "dbDataStructure*": 1, - "father": 1, - "fatherIndex": 1, - "noFatherRoot": 1, - "Used": 2, - "tell": 1, - "node": 1, - "root": 1, - "hasn": 1, - "argument": 1, - "list": 3, - "operator": 10, - "overload.": 1, - "friend": 10, - "myclass.label": 2, - "myclass.depth": 2, - "myclass.userIndex": 2, - "qCompress": 2, - "myclass.data": 4, - "myclass.uniqueID": 2, - "myclass.nextItemsIndices": 2, - "myclass.fatherIndex": 2, - "myclass.noFatherRoot": 2, - "myclass.fileName": 2, - "myclass.firstLineData": 4, - "myclass.linesNumbers": 2, - "QDataStream": 2, - "myclass": 1, - "//Don": 1, - "qUncompress": 2, - "": 2, - "main": 2, - "cout": 2, - "endl": 1, - "": 1, - "": 1, - "": 1, - "EC_KEY_regenerate_key": 1, - "EC_KEY": 3, - "*eckey": 2, - "BIGNUM": 9, - "*priv_key": 1, - "ok": 3, - "BN_CTX": 2, - "*ctx": 2, - "EC_POINT": 4, - "*pub_key": 1, - "eckey": 7, - "EC_GROUP": 2, - "*group": 2, - "EC_KEY_get0_group": 2, - "ctx": 26, - "BN_CTX_new": 2, - "goto": 156, - "err": 26, - "pub_key": 6, - "EC_POINT_new": 4, - "EC_POINT_mul": 3, - "priv_key": 2, - "EC_KEY_set_private_key": 1, - "EC_KEY_set_public_key": 2, - "EC_POINT_free": 4, - "BN_CTX_free": 2, - "ECDSA_SIG_recover_key_GFp": 3, - "ECDSA_SIG": 3, - "*ecsig": 1, - "*msg": 2, - "msglen": 2, - "recid": 3, - "ret": 24, - "*x": 1, - "*e": 1, - "*order": 1, - "*sor": 1, - "*eor": 1, - "*field": 1, - "*R": 1, - "*O": 1, - "*Q": 1, - "*rr": 1, - "*zero": 1, - "n": 28, - "i": 83, - "BN_CTX_start": 1, - "BN_CTX_get": 8, - "EC_GROUP_get_order": 1, - "BN_copy": 1, - "BN_mul_word": 1, - "BN_add": 1, - "ecsig": 3, - "r": 36, - "EC_GROUP_get_curve_GFp": 1, - "BN_cmp": 1, - "R": 6, - "EC_POINT_set_compressed_coordinates_GFp": 1, - "O": 5, - "EC_POINT_is_at_infinity": 1, - "Q": 5, - "EC_GROUP_get_degree": 1, - "e": 15, - "BN_bin2bn": 3, - "msg": 1, - "*msglen": 1, - "BN_rshift": 1, - "zero": 5, - "BN_zero": 1, - "BN_mod_sub": 1, - "rr": 4, - "BN_mod_inverse": 1, - "sor": 3, - "BN_mod_mul": 2, - "eor": 3, - "BN_CTX_end": 1, - "CKey": 26, - "SetCompressedPubKey": 4, - "EC_KEY_set_conv_form": 1, - "pkey": 14, - "POINT_CONVERSION_COMPRESSED": 1, - "fCompressedPubKey": 5, - "Reset": 5, - "EC_KEY_new_by_curve_name": 2, - "NID_secp256k1": 2, - "throw": 4, - "key_error": 6, - "fSet": 7, - "b": 57, - "EC_KEY_dup": 1, - "b.pkey": 2, - "b.fSet": 2, - "EC_KEY_copy": 1, - "hash": 20, - "vchSig": 18, - "nSize": 2, - "vchSig.clear": 2, - "vchSig.resize": 2, - "Shrink": 1, - "fit": 1, - "actual": 1, - "SignCompact": 2, - "uint256": 10, - "": 19, - "fOk": 3, - "*sig": 2, - "ECDSA_do_sign": 1, - "sig": 11, - "nBitsR": 3, - "BN_num_bits": 2, - "nBitsS": 3, - "&&": 24, - "nRecId": 4, - "<4;>": 1, - "keyRec": 5, - "1": 4, - "GetPubKey": 5, - "break": 34, - "BN_bn2bin": 2, - "/8": 2, - "ECDSA_SIG_free": 2, - "SetCompactSignature": 2, - "vchSig.size": 2, - "nV": 6, - "<27>": 1, - "ECDSA_SIG_new": 1, - "EC_KEY_free": 1, - "Verify": 2, - "ECDSA_verify": 1, - "VerifyCompact": 2, - "key": 23, - "key.SetCompactSignature": 1, - "key.GetPubKey": 1, - "IsValid": 4, - "fCompr": 3, - "CSecret": 4, - "secret": 2, - "GetSecret": 2, - "key2": 1, - "key2.SetSecret": 1, - "key2.GetPubKey": 1, - "BITCOIN_KEY_H": 2, - "": 1, - "": 1, - "runtime_error": 2, - "explicit": 4, - "str": 2, - "CKeyID": 5, - "uint160": 8, - "CScriptID": 3, - "CPubKey": 11, - "vchPubKey": 6, - "vchPubKeyIn": 2, - "a.vchPubKey": 3, - "b.vchPubKey": 3, - "IMPLEMENT_SERIALIZE": 1, - "READWRITE": 1, - "GetID": 1, - "Hash160": 1, - "GetHash": 1, - "Hash": 1, - "vchPubKey.begin": 1, - "vchPubKey.end": 1, - "vchPubKey.size": 3, - "||": 17, - "IsCompressed": 2, - "Raw": 1, - "secure_allocator": 2, - "CPrivKey": 3, - "EC_KEY*": 1, - "IsNull": 1, - "MakeNewKey": 1, - "fCompressed": 3, - "SetPrivKey": 1, - "vchPrivKey": 1, - "SetSecret": 1, - "vchSecret": 1, - "GetPrivKey": 1, - "SetPubKey": 1, - "Sign": 2, - "LIBCANIH": 2, - "": 1, - "": 1, - "int64": 1, - "//#define": 1, - "DEBUG": 5, - "dout": 2, - "#else": 31, - "cerr": 1, - "libcanister": 2, - "//the": 8, - "canmem": 22, - "object": 3, - "generic": 1, - "container": 2, - "commonly": 1, - "//throughout": 1, - "canister": 14, - "framework": 1, - "hold": 1, - "uncertain": 1, - "//length": 1, - "contain": 1, - "null": 3, - "bytes.": 1, - "raw": 2, - "absolute": 1, - "length": 10, - "//creates": 3, - "unallocated": 1, - "allocsize": 1, - "blank": 1, - "strdata": 1, - "//automates": 1, - "creation": 1, - "limited": 2, - "canmems": 1, - "//cleans": 1, - "zeromem": 1, - "//overwrites": 2, - "fragmem": 1, - "notation": 1, - "countlen": 1, - "//counts": 1, - "strings": 1, - "//removes": 1, - "nulls": 1, - "//returns": 2, - "singleton": 2, - "//contains": 2, - "caninfo": 2, - "path": 8, - "//physical": 1, - "internalname": 1, - "//a": 1, - "numfiles": 1, - "files": 6, - "//necessary": 1, - "type": 7, - "canfile": 7, - "//this": 1, - "holds": 2, - "//canister": 1, - "canister*": 1, - "parent": 1, - "//internal": 1, - "id": 4, - "//use": 1, - "own.": 1, - "newline": 2, - "delimited": 2, - "container.": 1, - "TOC": 1, - "info": 2, - "general": 1, - "canfiles": 1, - "recommended": 1, - "modify": 1, - "//these": 1, - "enforced.": 1, - "canfile*": 1, - "readonly": 3, - "//if": 1, - "routines": 1, - "anything": 1, - "//maximum": 1, - "//time": 1, - "whatever": 1, - "suits": 1, - "application.": 1, - "cachemax": 2, - "cachecnt": 1, - "//number": 1, - "cache": 2, - "modified": 3, - "//both": 1, - "initialize": 1, - "fspath": 3, - "//destroys": 1, - "flushing": 1, - "modded": 1, - "//open": 1, - "//does": 1, - "exist": 2, - "//close": 1, - "flush": 1, - "clean": 2, - "//deletes": 1, - "inside": 1, - "delFile": 1, - "//pulls": 1, - "getFile": 1, - "otherwise": 1, - "overwrites": 1, - "operation": 1, - "succeeded": 2, - "writeFile": 2, - "//get": 1, - "//list": 1, - "paths": 1, - "getTOC": 1, - "//brings": 1, - "back": 1, - "limit": 1, - "//important": 1, - "sCFID": 2, - "CFID": 2, - "avoid": 1, - "uncaching": 1, - "//really": 1, - "just": 2, - "internally": 1, - "harm.": 1, - "cacheclean": 1, - "dFlush": 1, - "Q_OS_LINUX": 2, - "": 1, - "#if": 52, - "QT_VERSION": 1, - "QT_VERSION_CHECK": 1, - "#error": 9, - "Something": 1, - "wrong": 1, - "setup.": 1, - "report": 3, - "mailing": 1, - "argc": 2, - "char**": 2, - "argv": 2, - "google_breakpad": 1, - "ExceptionHandler": 1, - "Utils": 4, - "exceptionHandler": 2, - "qInstallMsgHandler": 1, - "messageHandler": 2, - "QApplication": 1, - "app": 1, - "STATIC_BUILD": 1, - "Q_INIT_RESOURCE": 2, - "WebKit": 1, - "InspectorBackendStub": 1, - "app.setWindowIcon": 1, - "QIcon": 1, - "app.setApplicationName": 1, - "app.setOrganizationName": 1, - "app.setOrganizationDomain": 1, - "app.setApplicationVersion": 1, - "PHANTOMJS_VERSION_STRING": 1, - "Phantom": 1, - "phantom": 1, - "phantom.execute": 1, - "app.exec": 1, - "phantom.returnValue": 1, - "__OG_MATH_INL__": 2, - "og": 1, - "OG_INLINE": 41, - "Math": 41, - "Abs": 1, - "MASK_SIGNED": 2, - "y": 16, - "Fabs": 1, - "f": 104, - "uInt": 1, - "*pf": 1, - "reinterpret_cast": 8, - "": 1, - "pf": 1, - "fabsf": 1, - "Round": 1, - "floorf": 2, - "Floor": 1, - "Ceil": 1, - "ceilf": 1, - "Ftoi": 1, - "@todo": 1, - "note": 1, - "sse": 1, - "cvttss2si": 2, - "OG_ASM_MSVC": 4, - "defined": 23, - "OG_FTOI_USE_SSE": 2, - "SysInfo": 2, - "cpu.general.SSE": 2, - "__asm": 8, - "eax": 5, - "mov": 6, - "fld": 4, - "fistp": 3, - "//__asm": 3, - "O_o": 3, - "#elif": 7, - "OG_ASM_GNU": 4, - "__asm__": 4, - "__volatile__": 4, - "cast": 7, - "why": 3, - "did": 3, - "static_cast": 11, - "": 3, - "FtoiFast": 2, - "Ftol": 1, - "": 1, - "Fmod": 1, - "numerator": 2, - "denominator": 2, - "fmodf": 1, - "Modf": 2, - "modff": 2, - "Sqrt": 2, - "sqrtf": 2, - "InvSqrt": 1, - "OG_ASSERT": 4, - "RSqrt": 1, - "g": 2, - "*reinterpret_cast": 3, - "guess": 1, - "f375a86": 1, - "": 1, - "Newtons": 1, - "calculation": 1, - "Log": 1, - "logf": 3, - "Log2": 1, - "INV_LN_2": 1, - "Log10": 1, - "INV_LN_10": 1, - "Pow": 1, - "exp": 2, - "powf": 1, - "Exp": 1, - "expf": 1, - "IsPowerOfTwo": 4, - "faster": 3, - "two": 2, - "known": 1, - "methods": 2, - "moved": 1, - "beginning": 1, - "HigherPowerOfTwo": 4, - "LowerPowerOfTwo": 2, - "FloorPowerOfTwo": 1, - "CeilPowerOfTwo": 1, - "ClosestPowerOfTwo": 1, - "Digits": 1, - "digits": 6, - "step": 3, - "Sin": 2, - "sinf": 1, - "ASin": 1, - "<=>": 2, - "0f": 2, - "HALF_PI": 2, - "asinf": 1, - "Cos": 2, - "cosf": 1, - "ACos": 1, - "PI": 1, - "acosf": 1, - "Tan": 1, - "tanf": 1, - "ATan": 2, - "atanf": 1, - "f1": 2, - "f2": 2, - "atan2f": 1, - "SinCos": 1, - "sometimes": 1, - "assembler": 1, - "waaayy": 1, - "_asm": 1, - "fsincos": 1, - "ecx": 2, - "edx": 2, - "fstp": 2, - "dword": 2, - "ptr": 2, - "asm": 1, - "Deg2Rad": 1, - "DEG_TO_RAD": 1, - "Rad2Deg": 1, - "RAD_TO_DEG": 1, - "Square": 1, - "v": 10, - "Cube": 1, - "Sec2Ms": 1, - "sec": 2, - "Ms2Sec": 1, - "ms": 2, - "NINJA_METRICS_H_": 3, - "int64_t.": 1, - "Metrics": 2, - "module": 1, - "dumps": 1, - "stats": 2, - "actions.": 1, - "To": 1, - "METRIC_RECORD": 4, - "below.": 1, - "metrics": 2, - "hit": 1, - "path.": 2, - "count": 1, - "Total": 1, - "spent": 1, - "int64_t": 3, - "sum": 1, - "scoped": 1, - "recording": 1, - "metric": 2, - "across": 1, - "body": 1, - "macro.": 1, - "ScopedMetric": 4, - "Metric*": 4, - "metric_": 1, - "Timestamp": 1, - "started.": 1, - "Value": 24, - "platform": 2, - "dependent.": 1, - "start_": 1, - "prints": 1, - "report.": 1, - "NewMetric": 2, - "Print": 2, - "summary": 1, - "stdout.": 1, - "Report": 1, - "": 1, - "metrics_": 1, - "Get": 1, - "relative": 2, - "epoch.": 1, - "Epoch": 1, - "varies": 1, - "between": 1, - "platforms": 1, - "useful": 1, - "measuring": 1, - "elapsed": 1, - "time.": 1, - "GetTimeMillis": 1, - "simple": 1, - "stopwatch": 1, - "seconds": 1, - "Restart": 3, - "called.": 1, - "Stopwatch": 2, - "started_": 4, - "Seconds": 1, - "call.": 1, - "Elapsed": 1, - "": 1, - "primary": 1, - "metrics.": 1, - "top": 1, - "recorded": 1, - "metrics_h_metric": 2, - "g_metrics": 3, - "metrics_h_scoped": 1, - "Metrics*": 1, "INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION": 1, "": 1, "": 2, @@ -12127,11 +16604,13 @@ "": 1, "": 1, "": 1, + "namespace": 32, "persons": 4, "google": 72, "protobuf": 72, "Descriptor*": 3, "Person_descriptor_": 6, + "NULL": 109, "GeneratedMessageReflection*": 1, "Person_reflection_": 4, "protobuf_AssignDesc_protocol_2dbuffer_2eproto": 4, @@ -12142,6 +16621,7 @@ "FindFileByName": 1, "GOOGLE_CHECK": 1, "message_type": 1, + "static": 262, "Person_offsets_": 2, "GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET": 3, "Person": 65, @@ -12158,6 +16638,8 @@ "protobuf_AssignDescriptorsOnce": 4, "GoogleOnceInit": 1, "protobuf_RegisterTypes": 2, + "std": 52, + "string": 24, "InternalRegisterGeneratedMessage": 1, "default_instance": 3, "protobuf_ShutdownFile_protocol_2dbuffer_2eproto": 4, @@ -12206,11 +16688,14 @@ "mutable_name": 3, "WireFormat": 10, "VerifyUTF8String": 3, + "name": 25, ".data": 3, ".length": 3, "PARSE": 1, + "goto": 156, "handle_uninterpreted": 2, "ExpectAtEnd": 1, + "break": 34, "WIRETYPE_END_GROUP": 1, "SkipField": 1, "#undef": 3, @@ -12250,596 +16735,251 @@ "metadata": 2, "metadata.descriptor": 1, "metadata.reflection": 1, - "PROTOBUF_protocol_2dbuffer_2eproto__INCLUDED": 3, - "GOOGLE_PROTOBUF_VERSION": 1, - "generated": 2, - "newer": 2, - "protoc": 2, - "incompatible": 2, - "Protocol": 2, - "headers.": 3, - "update": 1, - "GOOGLE_PROTOBUF_MIN_PROTOC_VERSION": 1, - "older": 1, - "regenerate": 1, - "protoc.": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "virtual": 10, - "*this": 1, - "UnknownFieldSet": 2, - "UnknownFieldSet*": 1, - "GetCachedSize": 1, - "clear_name": 2, - "size_t": 5, - "release_name": 2, - "set_allocated_name": 2, - "set_has_name": 7, - "clear_has_name": 5, - "mutable": 1, - "u": 9, - "*name_": 1, - "assign": 3, - "temp": 2, - "SWIG": 2, - "QSCICOMMAND_H": 2, - "__APPLE__": 4, - "": 1, - "": 2, - "": 1, - "QsciScintilla": 7, - "QsciCommand": 7, - "represents": 1, - "editor": 1, - "command": 9, - "keys": 3, - "bound": 4, - "Methods": 1, - "provided": 1, - "binding.": 1, - "Each": 1, - "friendly": 2, - "description": 3, - "dialogs.": 1, - "QSCINTILLA_EXPORT": 2, - "commands": 1, - "assigned": 1, - "key.": 1, - "Command": 4, - "Move": 26, - "down": 12, - "line.": 33, - "LineDown": 1, - "QsciScintillaBase": 100, - "SCI_LINEDOWN": 1, - "Extend": 33, - "selection": 39, - "LineDownExtend": 1, - "SCI_LINEDOWNEXTEND": 1, - "rectangular": 9, - "LineDownRectExtend": 1, - "SCI_LINEDOWNRECTEXTEND": 1, - "Scroll": 5, - "view": 2, - "LineScrollDown": 1, - "SCI_LINESCROLLDOWN": 1, - "LineUp": 1, - "SCI_LINEUP": 1, - "LineUpExtend": 1, - "SCI_LINEUPEXTEND": 1, - "LineUpRectExtend": 1, - "SCI_LINEUPRECTEXTEND": 1, - "LineScrollUp": 1, - "SCI_LINESCROLLUP": 1, - "document.": 8, - "ScrollToStart": 1, - "SCI_SCROLLTOSTART": 1, - "ScrollToEnd": 1, - "SCI_SCROLLTOEND": 1, - "vertically": 1, - "centre": 1, - "VerticalCentreCaret": 1, - "SCI_VERTICALCENTRECARET": 1, - "paragraph.": 4, - "ParaDown": 1, - "SCI_PARADOWN": 1, - "ParaDownExtend": 1, - "SCI_PARADOWNEXTEND": 1, - "ParaUp": 1, - "SCI_PARAUP": 1, - "ParaUpExtend": 1, - "SCI_PARAUPEXTEND": 1, - "left": 7, - "character.": 9, - "CharLeft": 1, - "SCI_CHARLEFT": 1, - "CharLeftExtend": 1, - "SCI_CHARLEFTEXTEND": 1, - "CharLeftRectExtend": 1, - "SCI_CHARLEFTRECTEXTEND": 1, - "CharRight": 1, - "SCI_CHARRIGHT": 1, - "CharRightExtend": 1, - "SCI_CHARRIGHTEXTEND": 1, - "CharRightRectExtend": 1, - "SCI_CHARRIGHTRECTEXTEND": 1, - "word.": 9, - "WordLeft": 1, - "SCI_WORDLEFT": 1, - "WordLeftExtend": 1, - "SCI_WORDLEFTEXTEND": 1, - "WordRight": 1, - "SCI_WORDRIGHT": 1, - "WordRightExtend": 1, - "SCI_WORDRIGHTEXTEND": 1, - "WordLeftEnd": 1, - "SCI_WORDLEFTEND": 1, - "WordLeftEndExtend": 1, - "SCI_WORDLEFTENDEXTEND": 1, - "WordRightEnd": 1, - "SCI_WORDRIGHTEND": 1, - "WordRightEndExtend": 1, - "SCI_WORDRIGHTENDEXTEND": 1, - "part.": 4, - "WordPartLeft": 1, - "SCI_WORDPARTLEFT": 1, - "WordPartLeftExtend": 1, - "SCI_WORDPARTLEFTEXTEND": 1, - "WordPartRight": 1, - "SCI_WORDPARTRIGHT": 1, - "WordPartRightExtend": 1, - "SCI_WORDPARTRIGHTEXTEND": 1, - "document": 16, - "Home": 1, - "SCI_HOME": 1, - "HomeExtend": 1, - "SCI_HOMEEXTEND": 1, - "HomeRectExtend": 1, - "SCI_HOMERECTEXTEND": 1, - "displayed": 10, - "HomeDisplay": 1, - "SCI_HOMEDISPLAY": 1, - "HomeDisplayExtend": 1, - "SCI_HOMEDISPLAYEXTEND": 1, - "HomeWrap": 1, - "SCI_HOMEWRAP": 1, - "HomeWrapExtend": 1, - "SCI_HOMEWRAPEXTEND": 1, - "visible": 6, - "VCHome": 1, - "SCI_VCHOME": 1, - "VCHomeExtend": 1, - "SCI_VCHOMEEXTEND": 1, - "VCHomeRectExtend": 1, - "SCI_VCHOMERECTEXTEND": 1, - "VCHomeWrap": 1, - "SCI_VCHOMEWRAP": 1, - "VCHomeWrapExtend": 1, - "SCI_VCHOMEWRAPEXTEND": 1, - "LineEnd": 1, - "SCI_LINEEND": 1, - "LineEndExtend": 1, - "SCI_LINEENDEXTEND": 1, - "LineEndRectExtend": 1, - "SCI_LINEENDRECTEXTEND": 1, - "LineEndDisplay": 1, - "SCI_LINEENDDISPLAY": 1, - "LineEndDisplayExtend": 1, - "SCI_LINEENDDISPLAYEXTEND": 1, - "LineEndWrap": 1, - "SCI_LINEENDWRAP": 1, - "LineEndWrapExtend": 1, - "SCI_LINEENDWRAPEXTEND": 1, - "DocumentStart": 1, - "SCI_DOCUMENTSTART": 1, - "DocumentStartExtend": 1, - "SCI_DOCUMENTSTARTEXTEND": 1, - "DocumentEnd": 1, - "SCI_DOCUMENTEND": 1, - "DocumentEndExtend": 1, - "SCI_DOCUMENTENDEXTEND": 1, - "page.": 13, - "PageUp": 1, - "SCI_PAGEUP": 1, - "PageUpExtend": 1, - "SCI_PAGEUPEXTEND": 1, - "PageUpRectExtend": 1, - "SCI_PAGEUPRECTEXTEND": 1, - "PageDown": 1, - "SCI_PAGEDOWN": 1, - "PageDownExtend": 1, - "SCI_PAGEDOWNEXTEND": 1, - "PageDownRectExtend": 1, - "SCI_PAGEDOWNRECTEXTEND": 1, - "Stuttered": 4, - "move": 2, - "StutteredPageUp": 1, - "SCI_STUTTEREDPAGEUP": 1, - "extend": 2, - "StutteredPageUpExtend": 1, - "SCI_STUTTEREDPAGEUPEXTEND": 1, - "StutteredPageDown": 1, - "SCI_STUTTEREDPAGEDOWN": 1, - "StutteredPageDownExtend": 1, - "SCI_STUTTEREDPAGEDOWNEXTEND": 1, - "Delete": 10, - "SCI_CLEAR": 1, - "DeleteBack": 1, - "SCI_DELETEBACK": 1, - "DeleteBackNotLine": 1, - "SCI_DELETEBACKNOTLINE": 1, - "left.": 2, - "DeleteWordLeft": 1, - "SCI_DELWORDLEFT": 1, - "right.": 2, - "DeleteWordRight": 1, - "SCI_DELWORDRIGHT": 1, - "DeleteWordRightEnd": 1, - "SCI_DELWORDRIGHTEND": 1, - "DeleteLineLeft": 1, - "SCI_DELLINELEFT": 1, - "DeleteLineRight": 1, - "SCI_DELLINERIGHT": 1, - "LineDelete": 1, - "SCI_LINEDELETE": 1, - "Cut": 2, - "clipboard.": 5, - "LineCut": 1, - "SCI_LINECUT": 1, - "Copy": 2, - "LineCopy": 1, - "SCI_LINECOPY": 1, - "Transpose": 1, - "lines.": 1, - "LineTranspose": 1, - "SCI_LINETRANSPOSE": 1, - "Duplicate": 2, - "LineDuplicate": 1, - "SCI_LINEDUPLICATE": 1, - "whole": 2, - "SelectAll": 1, - "SCI_SELECTALL": 1, - "lines": 3, - "MoveSelectedLinesUp": 1, - "SCI_MOVESELECTEDLINESUP": 1, - "MoveSelectedLinesDown": 1, - "SCI_MOVESELECTEDLINESDOWN": 1, - "selection.": 1, - "SelectionDuplicate": 1, - "SCI_SELECTIONDUPLICATE": 1, - "Convert": 2, - "lower": 1, - "case.": 2, - "SelectionLowerCase": 1, - "SCI_LOWERCASE": 1, - "upper": 1, - "SelectionUpperCase": 1, - "SCI_UPPERCASE": 1, - "SelectionCut": 1, - "SCI_CUT": 1, - "SelectionCopy": 1, - "SCI_COPY": 1, - "Paste": 2, - "SCI_PASTE": 1, - "Toggle": 1, - "insert/overtype.": 1, - "EditToggleOvertype": 1, - "SCI_EDITTOGGLEOVERTYPE": 1, - "Insert": 2, - "dependent": 1, - "newline.": 1, - "Newline": 1, - "SCI_NEWLINE": 1, - "formfeed.": 1, - "Formfeed": 1, - "SCI_FORMFEED": 1, - "Indent": 1, - "Tab": 1, - "SCI_TAB": 1, - "De": 1, - "indent": 1, - "Backtab": 1, - "SCI_BACKTAB": 1, - "Cancel": 2, - "SCI_CANCEL": 1, - "Undo": 2, - "command.": 5, - "SCI_UNDO": 1, - "Redo": 2, - "SCI_REDO": 1, - "Zoom": 2, - "in.": 1, - "ZoomIn": 1, - "SCI_ZOOMIN": 1, - "out.": 1, - "ZoomOut": 1, - "SCI_ZOOMOUT": 1, - "Return": 3, - "executed": 1, - "instance.": 2, - "scicmd": 2, - "Execute": 1, - "Binds": 2, - "binding": 3, - "removed.": 2, - "invalid": 5, - "unchanged.": 1, - "Valid": 1, - "Key_Down": 1, - "Key_Up": 1, - "Key_Left": 1, - "Key_Right": 1, - "Key_Home": 1, - "Key_End": 1, - "Key_PageUp": 1, - "Key_PageDown": 1, - "Key_Delete": 1, - "Key_Insert": 1, - "Key_Escape": 1, - "Key_Backspace": 1, - "Key_Tab": 1, - "Key_Return.": 1, - "Keys": 1, - "SHIFT": 1, - "CTRL": 1, - "ALT": 1, - "META.": 1, - "setAlternateKey": 3, - "validKey": 3, - "setKey": 3, - "altkey": 3, - "alternateKey": 3, - "returned.": 4, - "qkey": 2, - "qaltkey": 2, - "valid": 2, - "QsciCommandSet": 1, - "*qs": 1, - "cmd": 1, - "*desc": 1, - "bindKey": 1, - "qk": 1, - "scik": 1, - "*qsCmd": 1, - "scikey": 1, - "scialtkey": 1, - "*descCmd": 1, - "QSCIPRINTER_H": 2, - "": 1, - "": 1, - "QT_BEGIN_NAMESPACE": 1, - "QRect": 2, - "QPainter": 2, - "QT_END_NAMESPACE": 1, - "QsciPrinter": 9, - "sub": 2, - "Qt": 1, - "QPrinter": 3, - "text": 5, - "Scintilla": 2, - "further": 1, - "classed": 1, - "layout": 1, - "adding": 2, - "headers": 3, - "footers": 2, - "example.": 1, - "Constructs": 1, - "printer": 1, - "paint": 1, - "PrinterMode": 1, - "ScreenResolution": 1, - "Destroys": 1, - "Format": 1, - "drawn": 2, - "painter": 4, - "add": 3, - "customised": 2, - "graphics.": 2, - "drawing": 4, - "actually": 1, - "sized.": 1, - "area": 5, - "draw": 1, - "text.": 3, - "necessary": 1, - "reserve": 1, - "By": 1, - "printable": 1, - "setFullPage": 1, - "because": 2, - "printRange": 2, - "try": 1, - "over": 1, - "pagenr": 2, - "numbered": 1, - "formatPage": 1, - "points": 2, - "font": 2, - "printing.": 2, - "setMagnification": 2, - "magnification": 3, - "mag": 2, - "printing": 2, - "magnification.": 1, - "qsb.": 1, - "negative": 2, - "signifies": 2, - "error.": 1, - "*qsb": 1, - "wrap": 4, - "WrapWord.": 1, - "setWrapMode": 2, - "WrapMode": 3, - "wrapMode": 2, - "wmode.": 1, - "wmode": 1, - "": 2, - "Gui": 1, "rpc_init": 1, "rpc_server_loop": 1, - "v8": 9, - "Scanner": 16, - "UnicodeCache*": 4, - "unicode_cache": 3, - "unicode_cache_": 10, - "octal_pos_": 5, - "Location": 14, - "harmony_scoping_": 4, - "harmony_modules_": 4, - "Initialize": 4, - "Utf16CharacterStream*": 3, - "source_": 7, - "Init": 3, - "has_line_terminator_before_next_": 9, - "SkipWhiteSpace": 4, - "Scan": 5, - "uc32": 19, - "ScanHexNumber": 2, - "expected_length": 4, - "ASSERT": 17, - "overflow": 1, - "c0_": 64, - "d": 8, - "HexValue": 2, - "j": 4, - "PushBack": 8, - "Advance": 44, - "STATIC_ASSERT": 5, - "Token": 212, - "NUM_TOKENS": 1, - "one_char_tokens": 2, - "ILLEGAL": 120, - "LPAREN": 2, - "RPAREN": 2, - "COMMA": 2, - "COLON": 2, - "SEMICOLON": 2, - "CONDITIONAL": 2, - "LBRACK": 2, - "RBRACK": 2, - "LBRACE": 2, - "RBRACE": 2, - "BIT_NOT": 2, - "Next": 3, - "current_": 2, - "next_": 2, - "has_multiline_comment_before_next_": 5, - "token": 64, - "": 1, - "pos": 12, - "source_pos": 10, - "next_.token": 3, - "next_.location.beg_pos": 3, - "next_.location.end_pos": 4, - "current_.token": 4, - "IsByteOrderMark": 2, - "xFEFF": 1, - "xFFFE": 1, - "start_position": 2, - "IsWhiteSpace": 2, - "IsLineTerminator": 6, - "SkipSingleLineComment": 6, - "undo": 4, - "WHITESPACE": 6, - "SkipMultiLineComment": 3, - "ch": 5, - "ScanHtmlComment": 3, - "LT": 2, - "next_.literal_chars": 13, - "ScanString": 3, - "LTE": 1, - "ASSIGN_SHL": 1, - "SHL": 1, - "GTE": 1, - "ASSIGN_SAR": 1, - "ASSIGN_SHR": 1, - "SHR": 1, - "SAR": 1, - "GT": 1, - "EQ_STRICT": 1, - "EQ": 1, - "ASSIGN": 1, - "NE_STRICT": 1, - "NE": 1, - "INC": 1, - "ASSIGN_ADD": 1, - "ADD": 1, - "DEC": 1, - "ASSIGN_SUB": 1, - "SUB": 1, - "ASSIGN_MUL": 1, - "MUL": 1, - "ASSIGN_MOD": 1, - "MOD": 1, - "ASSIGN_DIV": 1, - "DIV": 1, - "AND": 1, - "ASSIGN_BIT_AND": 1, - "BIT_AND": 1, - "OR": 1, - "ASSIGN_BIT_OR": 1, - "BIT_OR": 1, - "ASSIGN_BIT_XOR": 1, - "BIT_XOR": 1, - "IsDecimalDigit": 2, - "ScanNumber": 3, - "PERIOD": 1, - "IsIdentifierStart": 2, - "ScanIdentifierOrKeyword": 2, - "EOS": 1, - "SeekForward": 4, - "current_pos": 4, - "ASSERT_EQ": 1, - "ScanEscape": 2, - "IsCarriageReturn": 2, - "IsLineFeed": 2, - "fall": 2, - "xxx": 1, - "immediately": 1, - "octal": 1, - "escape": 1, - "quote": 3, - "consume": 2, - "LiteralScope": 4, - "literal": 2, - "X": 2, - "E": 3, - "l": 1, - "w": 1, - "keyword": 1, - "Unescaped": 1, - "in_character_class": 2, - "AddLiteralCharAdvance": 3, - "literal.Complete": 2, - "ScanLiteralUnicodeEscape": 3, + "__OG_MATH_INL__": 2, + "og": 1, + "OG_INLINE": 41, + "Math": 41, + "Abs": 1, + "i": 83, + "#if": 52, + "MASK_SIGNED": 2, + "#else": 31, + "y": 16, + "float": 74, + "Fabs": 1, + "f": 104, + "uInt": 1, + "*pf": 1, + "reinterpret_cast": 8, + "": 1, + "pf": 1, + "fabsf": 1, + "Round": 1, + "floorf": 2, + "Floor": 1, + "Ceil": 1, + "ceilf": 1, + "Ftoi": 1, + "@todo": 1, + "note": 1, + "sse": 1, + "cvttss2si": 2, + "OG_ASM_MSVC": 4, + "defined": 23, + "OG_FTOI_USE_SSE": 2, + "SysInfo": 2, + "cpu.general.SSE": 2, + "__asm": 8, + "eax": 5, + "mov": 6, + "fld": 4, + "fistp": 3, + "//__asm": 3, + "O_o": 3, + "#elif": 7, + "OG_ASM_GNU": 4, + "__asm__": 4, + "__volatile__": 4, + "cast": 7, + "why": 3, + "id": 4, + "did": 3, + "static_cast": 11, + "": 3, + "FtoiFast": 2, + "Ftol": 1, + "": 1, + "Sign": 2, + "Fmod": 1, + "numerator": 2, + "denominator": 2, + "fmodf": 1, + "Modf": 2, + "modff": 2, + "Sqrt": 2, + "sqrtf": 2, + "InvSqrt": 1, + "OG_ASSERT": 4, + "RSqrt": 1, + "g": 2, + "*reinterpret_cast": 3, + "guess": 1, + "f375a86": 1, + "": 1, + "Newtons": 1, + "calculation": 1, + "Log": 1, + "logf": 3, + "Log2": 1, + "INV_LN_2": 1, + "Log10": 1, + "INV_LN_10": 1, + "Pow": 1, + "exp": 2, + "powf": 1, + "Exp": 1, + "expf": 1, + "IsPowerOfTwo": 4, + "faster": 3, + "two": 2, + "known": 1, + "methods": 2, + "moved": 1, + "beginning": 1, + "&&": 24, + "HigherPowerOfTwo": 4, + "LowerPowerOfTwo": 2, + "FloorPowerOfTwo": 1, + "CeilPowerOfTwo": 1, + "ClosestPowerOfTwo": 1, + "Digits": 1, + "digits": 6, + "step": 3, + "Sin": 2, + "sinf": 1, + "ASin": 1, + "<=>": 2, + "1": 4, + "0f": 2, + "HALF_PI": 2, + "asinf": 1, + "Cos": 2, + "cosf": 1, + "ACos": 1, + "PI": 1, + "acosf": 1, + "Tan": 1, + "tanf": 1, + "ATan": 2, + "atanf": 1, + "f1": 2, + "f2": 2, + "atan2f": 1, + "SinCos": 1, + "sometimes": 1, + "assembler": 1, + "just": 2, + "waaayy": 1, + "_asm": 1, + "fsincos": 1, + "ecx": 2, + "edx": 2, + "fstp": 2, + "dword": 2, + "ptr": 2, + "asm": 1, + "Deg2Rad": 1, + "DEG_TO_RAD": 1, + "Rad2Deg": 1, + "RAD_TO_DEG": 1, + "Square": 1, + "v": 10, + "Cube": 1, + "Sec2Ms": 1, + "sec": 2, + "Ms2Sec": 1, + "ms": 2, + "#pragma": 3, + "": 4, + "": 4, + "": 2, + "DEFAULT_DELIMITER": 1, + "CsvStreamer": 5, + "private": 16, + "ofstream": 1, + "File": 1, + "vector": 16, + "row_buffer": 1, + "stores": 3, + "row": 12, + "flushed/written": 1, + "fields": 4, + "columns": 2, + "rows": 3, + "records": 2, + "including": 2, + "delimiter": 2, + "Delimiter": 1, + "character": 10, + "comma": 2, + "sanitize": 1, + "ready": 1, + "Empty": 1, + "CSV": 4, + "streamer...": 1, + "Same": 1, + "...": 1, + "Opens": 3, + "path/name": 3, + "Ensures": 1, + "closed": 1, + "saved": 1, + "delimiting": 1, + "add_field": 1, + "line": 11, + "adds": 1, + "field": 5, + "save_fields": 1, + "save": 1, + "writes": 2, + "append": 8, + "Appends": 5, + "quoted": 1, + "leading/trailing": 1, + "spaces": 3, + "trimmed": 1, + "Like": 1, + "specify": 1, + "trim": 2, + "keep": 1, + "double": 25, + "writeln": 1, + "Flushes": 1, + "Saves": 1, + "closes": 1, + "field_count": 1, + "Gets": 2, + "row_count": 1, + "": 2, + "Gui": 1, "V8_SCANNER_H_": 3, + "v8": 9, "ParsingFlags": 1, "kNoParsingFlags": 1, "kLanguageModeMask": 4, "kAllowLazy": 1, "kAllowNativesSyntax": 1, "kAllowModules": 1, + "STATIC_ASSERT": 5, "CLASSIC_MODE": 2, "STRICT_MODE": 2, "EXTENDED_MODE": 2, + "HexValue": 2, + "uc32": 19, + "": 19, "x16": 1, "x36.": 1, "Utf16CharacterStream": 3, "pos_": 6, + "virtual": 10, + "Advance": 44, "buffer_cursor_": 5, "buffer_end_": 3, + "||": 17, "ReadBlock": 2, "": 1, "kEndOfInput": 2, + "pos": 12, + "SeekForward": 4, "code_unit_count": 7, "buffered_chars": 2, "SlowSeekForward": 2, + "PushBack": 8, "int32_t": 1, "code_unit": 6, + "protected": 4, "uc16*": 3, "UnicodeCache": 3, "unibrow": 11, @@ -12850,11 +16990,14 @@ "": 2, "utf8_decoder": 1, "utf8_decoder_": 2, + "IsIdentifierStart": 2, "uchar": 4, "kIsIdentifierStart.get": 1, "IsIdentifierPart": 1, "kIsIdentifierPart.get": 1, + "IsLineTerminator": 6, "kIsLineTerminator.get": 1, + "IsWhiteSpace": 2, "kIsWhiteSpace.get": 1, "Predicate": 4, "": 1, @@ -12880,6 +17023,8 @@ "": 6, "kASCIISize": 1, "ConvertToUtf16": 2, + "ASSERT": 17, + "u": 9, "": 2, "kUC16Size": 2, "is_ascii": 3, @@ -12888,6 +17033,8 @@ "utf16_literal": 3, "backing_store_.start": 5, "ascii_literal": 3, + "length": 10, + "Reset": 5, "kInitialCapacity": 2, "kGrowthFactory": 2, "kMinConversionSlack": 1, @@ -12906,6 +17053,9 @@ "src": 2, "": 1, "dst": 2, + "Scanner": 16, + "LiteralScope": 4, + "explicit": 4, "Scanner*": 2, "self": 5, "scanner_": 5, @@ -12914,11 +17064,23 @@ "DropLiteral": 2, "Complete": 1, "TerminateLiteral": 2, + "Location": 14, + "b": 57, + "e": 15, "beg_pos": 5, "end_pos": 4, + "IsValid": 4, + "invalid": 5, "kNoOctalLocation": 1, + "UnicodeCache*": 4, "scanner_contants": 1, + "Initialize": 4, + "Utf16CharacterStream*": 3, + "Token": 212, + "Value": 24, + "Next": 3, "current_token": 1, + "current_.token": 4, "current_.location": 2, "literal_ascii_string": 1, "ASSERT_NOT_NULL": 9, @@ -12932,224 +17094,90 @@ "location.beg_pos": 1, "STRING": 1, "peek": 1, + "next_.token": 3, "peek_location": 1, "next_.location": 1, "next_literal_ascii_string": 1, + "next_.literal_chars": 13, "next_literal_utf16_string": 1, "is_next_literal_ascii": 1, "next_literal_length": 1, + "unicode_cache": 3, + "unicode_cache_": 10, "kCharacterLookaheadBufferSize": 3, "ScanOctalEscape": 1, "octal_position": 1, + "octal_pos_": 5, "clear_octal_position": 1, "HarmonyScoping": 1, + "harmony_scoping_": 4, "SetHarmonyScoping": 1, "scoping": 2, "HarmonyModules": 1, + "harmony_modules_": 4, "SetHarmonyModules": 1, "modules": 2, "HasAnyLineTerminatorBeforeNext": 1, + "has_line_terminator_before_next_": 9, + "has_multiline_comment_before_next_": 5, "ScanRegExpPattern": 1, "seen_equal": 1, "ScanRegExpFlags": 1, "IsIdentifier": 1, "CharacterStream*": 1, "TokenDesc": 3, + "token": 64, "LiteralBuffer*": 2, "literal_chars": 1, + "Init": 3, "free_buffer": 3, "literal_buffer1_": 3, "literal_buffer2_": 2, "AddLiteralChar": 2, + "AddLiteralCharAdvance": 3, + "c0_": 64, + "source_": 7, + "ch": 5, "tok": 2, "else_": 2, + "ScanHexNumber": 2, + "expected_length": 4, + "Scan": 5, + "SkipWhiteSpace": 4, + "SkipSingleLineComment": 6, + "SkipMultiLineComment": 3, + "ScanHtmlComment": 3, "ScanDecimalDigits": 1, + "ScanNumber": 3, "seen_period": 1, + "ScanIdentifierOrKeyword": 2, "ScanIdentifierSuffix": 1, "LiteralScope*": 1, + "literal": 2, + "ScanString": 3, + "ScanEscape": 2, "ScanIdentifierUnicodeEscape": 1, + "ScanLiteralUnicodeEscape": 3, + "source_pos": 10, + "current_": 2, "desc": 2, + "next_": 2, "look": 1, "ahead": 1, - "smallPrime_t": 1, - "UTILS_H": 3, - "": 1, - "": 1, - "": 1, - "QTemporaryFile": 1, - "showUsage": 1, - "QtMsgType": 1, - "dump_path": 1, - "minidump_id": 1, - "void*": 1, - "context": 8, - "QVariant": 1, - "coffee2js": 1, - "script": 1, - "injectJsInFrame": 2, - "jsFilePath": 5, - "libraryPath": 5, - "QWebFrame": 4, - "*targetFrame": 4, - "startingScript": 2, - "Encoding": 3, - "jsFileEnc": 2, - "readResourceFileUtf8": 1, - "resourceFilePath": 1, - "loadJSForDebug": 2, - "autorun": 2, - "cleanupFromDebug": 1, - "findScript": 1, - "jsFromScriptFile": 1, - "scriptPath": 1, - "enc": 1, - "shouldn": 1, - "instantiated": 1, - "QTemporaryFile*": 2, - "m_tempHarness": 1, - "We": 1, - "ourselves": 1, - "m_tempWrapper": 1, - "V8_DECLARE_ONCE": 1, - "init_once": 2, - "V8": 21, - "is_running_": 6, - "has_been_set_up_": 4, - "has_been_disposed_": 6, - "has_fatal_error_": 5, - "use_crankshaft_": 6, - "List": 3, - "": 3, - "call_completed_callbacks_": 16, - "LazyMutex": 1, - "entropy_mutex": 1, - "LAZY_MUTEX_INITIALIZER": 1, - "EntropySource": 3, - "entropy_source": 4, - "Deserializer*": 2, - "des": 3, - "FlagList": 1, - "EnforceFlagImplications": 1, - "InitializeOncePerProcess": 4, - "Isolate": 9, - "CurrentPerIsolateThreadData": 4, - "EnterDefaultIsolate": 1, - "thread_id": 1, - ".Equals": 1, - "ThreadId": 1, - "Current": 5, - "isolate": 15, - "IsDead": 2, - "Isolate*": 6, - "SetFatalError": 2, - "TearDown": 5, - "IsDefaultIsolate": 1, - "ElementsAccessor": 2, - "LOperand": 2, - "TearDownCaches": 1, - "RegisteredExtension": 1, - "UnregisterAll": 1, - "OS": 3, - "seed_random": 2, - "FLAG_random_seed": 2, - "val": 3, - "ScopedLock": 1, - "lock": 1, - "entropy_mutex.Pointer": 1, - "random": 1, - "random_base": 3, - "xFFFF": 2, - "FFFF": 1, - "SetEntropySource": 2, - "SetReturnAddressLocationResolver": 3, - "ReturnAddressLocationResolver": 2, - "resolver": 3, - "StackFrame": 1, - "Random": 3, - "Context*": 4, - "IsGlobalContext": 1, - "ByteArray*": 1, - "seed": 2, - "random_seed": 1, - "": 1, - "GetDataStartAddress": 1, - "RandomPrivate": 2, - "private_random_seed": 1, - "IdleNotification": 3, - "hint": 3, - "FLAG_use_idle_notification": 1, - "HEAP": 1, - "AddCallCompletedCallback": 2, - "CallCompletedCallback": 4, - "callback": 7, - "Lazy": 1, - "init.": 1, - "Add": 1, - "RemoveCallCompletedCallback": 2, - "Remove": 1, - "FireCallCompletedCallback": 2, - "HandleScopeImplementer*": 1, - "handle_scope_implementer": 5, - "CallDepthIsZero": 1, - "IncrementCallDepth": 1, - "DecrementCallDepth": 1, - "union": 1, - "double_value": 1, - "uint64_t_value": 1, - "double_int_union": 2, - "Object*": 4, - "FillHeapNumberWithRandom": 2, - "heap_number": 4, - "random_bits": 2, - "binary_million": 3, - "r.double_value": 3, - "r.uint64_t_value": 1, - "HeapNumber": 1, - "set_value": 1, - "InitializeOncePerProcessImpl": 3, - "SetUp": 4, - "FLAG_crankshaft": 1, - "Serializer": 1, - "SupportsCrankshaft": 1, - "PostSetUp": 1, - "RuntimeProfiler": 1, - "GlobalSetUp": 1, - "FLAG_stress_compaction": 1, - "FLAG_force_marking_deque_overflows": 1, - "FLAG_gc_global": 1, - "FLAG_max_new_space_size": 1, - "kPageSizeBits": 1, - "SetUpCaches": 1, - "SetUpJSCallerSavedCodeData": 1, - "SamplerRegistry": 1, - "ExternalReference": 1, - "CallOnce": 1, - "V8_V8_H_": 3, - "GOOGLE3": 2, - "NDEBUG": 4, - "both": 1, - "Deserializer": 1, - "AllStatic": 1, - "IsRunning": 1, - "UseCrankshaft": 1, - "FatalProcessOutOfMemory": 1, - "take_snapshot": 1, - "NilValue": 1, - "kNullValue": 1, - "kUndefinedValue": 1, - "EqualityKind": 1, - "kStrictEquality": 1, - "kNonStrictEquality": 1, "PY_SSIZE_T_CLEAN": 1, "Py_PYTHON_H": 1, + "#error": 9, "Python": 1, + "headers": 3, "compile": 1, "extensions": 1, "development": 1, "Python.": 1, "": 1, "offsetof": 2, + "type": 7, "member": 2, + "size_t": 5, "type*": 1, "WIN32": 2, "MS_WINDOWS": 2, @@ -13167,6 +17195,7 @@ "Py_TYPE": 4, "PyDict_Type": 1, "PyDict_Contains": 1, + "d": 8, "o": 20, "PySequence_Contains": 1, "Py_ssize_t": 17, @@ -13204,6 +17233,7 @@ "PyObject": 221, "*obj": 2, "itemsize": 2, + "readonly": 3, "ndim": 2, "*format": 1, "*shape": 1, @@ -13321,6 +17351,7 @@ "klass": 1, "PyInstanceMethod_New": 1, "__Pyx_GetAttrString": 2, + "n": 28, "PyObject_GetAttrString": 3, "__Pyx_SetAttrString": 2, "PyObject_SetAttrString": 2, @@ -13441,6 +17472,7 @@ "m": 4, "PyImport_ImportModule": 1, "modname": 1, + "r": 36, "PyLong_AsVoidPtr": 1, "Py_XDECREF": 3, "__Pyx_RefNannySetupContext": 13, @@ -13467,6 +17499,7 @@ "*type": 3, "*__Pyx_GetName": 1, "*dict": 1, + "*name": 6, "__Pyx_ErrRestore": 1, "*value": 2, "*tb": 2, @@ -13840,2705 +17873,1341 @@ "elsize": 1, "__pyx_k_tuple_16": 1, "__pyx_L10": 2, - "Py_EQ": 6 - }, - "Ceylon": { - "doc": 2, - "by": 1, - "shared": 5, - "void": 1, - "test": 1, - "(": 4, - ")": 4, - "{": 3, - "print": 1, - ";": 4, - "}": 3, - "class": 1, - "Test": 2, - "name": 4, - "satisfies": 1, - "Comparable": 1, - "": 1, - "String": 2, - "actual": 2, - "string": 1, - "Comparison": 1, - "compare": 1, - "other": 1, - "return": 1, - "<=>": 1, - "other.name": 1 - }, - "Cirru": { - "print": 38, - "array": 14, - "int": 36, - "string": 7, - "set": 12, - "f": 3, - "block": 1, - "(": 20, - "a": 22, - "b": 7, - "c": 9, - ")": 20, - "call": 1, - "bool": 6, - "true": 1, - "false": 1, - "yes": 1, - "no": 1, - "map": 8, - "m": 3, - "float": 1, - "require": 1, - "./stdio.cr": 1, - "self": 2, - "child": 1, - "under": 2, - "parent": 1, - "get": 4, - "x": 2, - "just": 4, - "-": 4, - "code": 4, - "eval": 2, - "nothing": 1, - "container": 3 - }, - "Clojure": { - "(": 83, - "defn": 4, - "prime": 2, - "[": 41, - "n": 9, - "]": 41, - "not": 3, - "-": 14, - "any": 1, - "zero": 1, - "map": 2, - "#": 1, - "rem": 2, - "%": 1, - ")": 84, - "range": 3, - ";": 8, - "while": 3, - "stops": 1, - "at": 1, - "the": 1, - "first": 2, - "collection": 1, - "element": 1, - "that": 1, - "evaluates": 1, - "to": 1, - "false": 2, - "like": 1, - "take": 1, - "for": 2, - "x": 6, - "html": 1, - "head": 1, - "meta": 1, - "{": 8, - "charset": 1, - "}": 8, - "link": 1, - "rel": 1, - "href": 1, + "Py_EQ": 6, + "UTILS_H": 3, + "": 1, + "": 1, + "": 1, + "QTemporaryFile": 1, + "Utils": 4, + "showUsage": 1, + "messageHandler": 2, + "QtMsgType": 1, + "*msg": 2, + "exceptionHandler": 2, + "dump_path": 1, + "minidump_id": 1, + "void*": 1, + "context": 8, + "succeeded": 2, + "QVariant": 1, + "coffee2js": 1, "script": 1, - "src": 1, - "body": 1, - "div.nav": 1, - "p": 1, - "into": 2, - "array": 3, - "aseq": 8, - "nil": 1, - "type": 2, - "let": 1, - "count": 3, - "a": 3, - "make": 1, - "loop": 1, - "seq": 1, - "i": 4, - "if": 1, - "<": 1, - "do": 1, - "aset": 1, - "recur": 1, - "next": 1, - "inc": 1, - "defprotocol": 1, - "ISound": 4, - "sound": 5, - "deftype": 2, - "Cat": 1, - "_": 3, - "Dog": 1, - "extend": 1, - "default": 1, - "rand": 2, - "scm*": 1, - "random": 1, - "real": 1, - "clj": 1, - "ns": 2, - "c2.svg": 2, - "use": 2, - "c2.core": 2, - "only": 4, - "unify": 2, - "c2.maths": 2, - "Pi": 2, - "Tau": 2, - "radians": 2, - "per": 2, - "degree": 2, - "sin": 2, - "cos": 2, - "mean": 2, - "cljs": 3, - "require": 1, - "c2.dom": 1, - "as": 1, - "dom": 1, - "Stub": 1, - "float": 2, - "fn": 2, - "which": 1, - "does": 1, - "exist": 1, - "on": 1, - "runtime": 1, - "def": 1, - "identity": 1, - "xy": 1, - "coordinates": 7, - "cond": 1, - "and": 1, - "vector": 1, - "y": 1, - "deftest": 1, - "function": 1, - "tests": 1, - "is": 7, - "true": 2, - "contains": 1, - "foo": 6, - "bar": 4, - "select": 1, - "keys": 2, - "baz": 4, - "vals": 1, - "filter": 1 - }, - "COBOL": { - "program": 1, - "-": 19, - "id.": 1, - "hello.": 3, - "procedure": 1, - "division.": 1, - "display": 1, - ".": 3, - "stop": 1, - "run.": 1, - "IDENTIFICATION": 2, - "DIVISION.": 4, - "PROGRAM": 2, - "ID.": 2, - "PROCEDURE": 2, - "DISPLAY": 2, - "STOP": 2, - "RUN.": 2, - "COBOL": 7, - "TEST": 2, - "RECORD.": 1, - "USAGES.": 1, - "COMP": 5, - "PIC": 5, - "S9": 4, - "(": 5, - ")": 5, - "COMP.": 3, - "COMP2": 2 - }, - "CoffeeScript": { - "CoffeeScript": 1, - "require": 21, - "CoffeeScript.require": 1, - "CoffeeScript.eval": 1, - "(": 193, - "code": 20, - "options": 16, - "{": 31, - "}": 34, - ")": 196, - "-": 107, - "options.bare": 2, - "on": 3, - "eval": 2, - "CoffeeScript.compile": 2, - "CoffeeScript.run": 3, - "Function": 1, - "return": 29, - "unless": 19, - "window": 1, - "CoffeeScript.load": 2, - "url": 2, - "callback": 35, - "xhr": 2, - "new": 12, - "window.ActiveXObject": 1, - "or": 22, - "XMLHttpRequest": 1, - "xhr.open": 1, - "true": 8, - "xhr.overrideMimeType": 1, - "if": 102, - "of": 7, - "xhr.onreadystatechange": 1, - "xhr.readyState": 1, - "is": 36, - "xhr.status": 1, - "in": 32, - "[": 134, - "]": 134, - "xhr.responseText": 1, - "else": 53, - "throw": 3, - "Error": 1, - "xhr.send": 1, - "null": 15, - "runScripts": 3, - "scripts": 2, - "document.getElementsByTagName": 1, - "coffees": 2, - "s": 10, - "for": 14, - "when": 16, - "s.type": 1, - "index": 4, - "length": 4, - "coffees.length": 1, - "do": 2, - "execute": 3, - "script": 7, - "+": 31, - ".type": 1, - "script.src": 2, - "script.innerHTML": 1, - "window.addEventListener": 1, - "addEventListener": 1, - "no": 3, - "attachEvent": 1, - "class": 11, - "Animal": 3, - "constructor": 6, - "@name": 2, - "move": 3, - "meters": 2, - "alert": 4, - "Snake": 2, - "extends": 6, - "super": 4, - "Horse": 2, - "sam": 1, - "tom": 1, - "sam.move": 1, - "tom.move": 1, - "#": 35, - "fs": 2, - "path": 3, - "Lexer": 3, - "RESERVED": 3, - "parser": 1, - "vm": 1, - "require.extensions": 3, - "module": 1, - "filename": 6, - "content": 4, - "compile": 5, - "fs.readFileSync": 1, - "module._compile": 1, - "require.registerExtension": 2, - "exports.VERSION": 1, - "exports.RESERVED": 1, - "exports.helpers": 2, - "exports.compile": 1, - "merge": 1, - "try": 3, - "js": 5, - "parser.parse": 3, - "lexer.tokenize": 3, - ".compile": 1, - "options.header": 1, - "catch": 2, - "err": 20, - "err.message": 2, - "options.filename": 5, - "header": 1, - "exports.tokens": 1, - "exports.nodes": 1, - "source": 5, - "typeof": 2, - "exports.run": 1, - "mainModule": 1, - "require.main": 1, - "mainModule.filename": 4, - "process.argv": 1, - "then": 24, - "fs.realpathSync": 2, - "mainModule.moduleCache": 1, - "and": 20, - "mainModule.paths": 1, - "._nodeModulePaths": 1, - "path.dirname": 2, - "path.extname": 1, - "isnt": 7, - "mainModule._compile": 2, - "exports.eval": 1, - "code.trim": 1, - "Script": 2, - "vm.Script": 1, - "options.sandbox": 4, - "instanceof": 2, - "Script.createContext": 2, - ".constructor": 1, - "sandbox": 8, - "k": 4, - "v": 4, - "own": 2, - "sandbox.global": 1, - "sandbox.root": 1, - "sandbox.GLOBAL": 1, - "global": 3, - "sandbox.__filename": 3, - "||": 3, - "sandbox.__dirname": 1, - "sandbox.module": 2, - "sandbox.require": 2, - "Module": 2, - "_module": 3, - "options.modulename": 1, - "_require": 2, - "Module._load": 1, - "_module.filename": 1, - "r": 4, - "Object.getOwnPropertyNames": 1, - "_require.paths": 1, - "_module.paths": 1, - "Module._nodeModulePaths": 1, - "process.cwd": 1, - "_require.resolve": 1, - "request": 2, - "Module._resolveFilename": 1, - "o": 4, - "o.bare": 1, - "ensure": 1, - "value": 25, - "vm.runInThisContext": 1, - "vm.runInContext": 1, - "lexer": 1, - "parser.lexer": 1, - "lex": 1, - "tag": 33, - "@yytext": 1, - "@yylineno": 1, - "@tokens": 7, - "@pos": 2, - "setInput": 1, - "upcomingInput": 1, - "parser.yy": 1, - "console.log": 1, - "number": 13, - "opposite": 2, - "square": 4, - "x": 6, - "*": 21, - "list": 2, - "math": 1, - "root": 1, - "Math.sqrt": 1, - "cube": 1, - "race": 1, - "winner": 2, - "runners...": 1, - "print": 1, - "runners": 1, - "elvis": 1, - "cubes": 1, - "math.cube": 1, - "num": 2, - "Rewriter": 2, - "INVERSES": 2, - "count": 5, - "starts": 1, - "compact": 1, - "last": 3, - "exports.Lexer": 1, - "tokenize": 1, - "opts": 1, - "WHITESPACE.test": 1, - "code.replace": 1, - "/": 44, - "r/g": 1, - ".replace": 3, - "TRAILING_SPACES": 2, - "@code": 1, - "The": 7, - "remainder": 1, - "the": 4, - "code.": 1, - "@line": 4, - "opts.line": 1, - "current": 5, - "line.": 1, - "@indent": 3, - "indentation": 3, - "level.": 3, - "@indebt": 1, - "over": 1, - "at": 2, - "@outdebt": 1, - "under": 1, - "outdentation": 1, - "@indents": 1, - "stack": 4, - "all": 1, - "levels.": 1, - "@ends": 1, - "pairing": 1, - "up": 1, - "tokens.": 1, - "Stream": 1, - "parsed": 1, - "tokens": 5, - "form": 1, - "line": 6, - ".": 13, - "i": 8, - "while": 4, - "@chunk": 9, - "i..": 1, - "@identifierToken": 1, - "@commentToken": 1, - "@whitespaceToken": 1, - "@lineToken": 1, - "@heredocToken": 1, - "@stringToken": 1, - "@numberToken": 1, - "@regexToken": 1, - "@jsToken": 1, - "@literalToken": 1, - "@closeIndentation": 1, - "@error": 10, - "@ends.pop": 1, - "opts.rewrite": 1, - "off": 1, - ".rewrite": 1, - "identifierToken": 1, - "match": 23, - "IDENTIFIER.exec": 1, - "input": 1, - "id": 16, - "colon": 3, - "@tag": 3, - "@token": 12, - "id.length": 1, - "forcedIdentifier": 4, - "prev": 17, - "not": 4, - "prev.spaced": 3, - "JS_KEYWORDS": 1, - "COFFEE_KEYWORDS": 1, - "id.toUpperCase": 1, - "LINE_BREAK": 2, - "@seenFor": 4, - "yes": 5, - "UNARY": 4, - "RELATION": 3, - "@value": 1, - "@tokens.pop": 1, - "JS_FORBIDDEN": 1, - "String": 1, - "id.reserved": 1, - "COFFEE_ALIAS_MAP": 1, - "COFFEE_ALIASES": 1, - "switch": 7, - "input.length": 1, - "numberToken": 1, - "NUMBER.exec": 1, - "BOX": 1, - "/.test": 4, - "/E/.test": 1, - "x/.test": 1, - "d*": 1, - "d": 2, - "lexedLength": 2, - "number.length": 1, - "octalLiteral": 2, - "/.exec": 2, - "parseInt": 5, - ".toString": 3, - "binaryLiteral": 2, - "b": 1, - "stringToken": 1, - "@chunk.charAt": 3, - "SIMPLESTR.exec": 1, - "string": 9, - "MULTILINER": 2, - "@balancedString": 1, - "<": 6, - "string.indexOf": 1, - "@interpolateString": 2, - "@escapeLines": 1, - "octalEsc": 1, - "|": 21, - "string.length": 1, - "heredocToken": 1, - "HEREDOC.exec": 1, - "heredoc": 4, - "quote": 5, - "heredoc.charAt": 1, - "doc": 11, - "@sanitizeHeredoc": 2, - "indent": 7, - "<=>": 1, - "indexOf": 1, - "interpolateString": 1, - "token": 1, - "STRING": 2, - "makeString": 1, - "n": 16, - "Matches": 1, - "consumes": 1, - "comments": 1, - "commentToken": 1, - "@chunk.match": 1, - "COMMENT": 2, - "comment": 2, - "here": 3, - "herecomment": 4, - "Array": 1, - ".join": 2, - "comment.length": 1, - "jsToken": 1, - "JSTOKEN.exec": 1, - "script.length": 1, - "regexToken": 1, - "HEREGEX.exec": 1, - "@heregexToken": 1, - "NOT_REGEX": 2, - "NOT_SPACED_REGEX": 2, - "REGEX.exec": 1, - "regex": 5, - "flags": 2, - "..1": 1, - "match.length": 1, - "heregexToken": 1, - "heregex": 1, - "body": 2, - "body.indexOf": 1, - "re": 1, - "body.replace": 1, - "HEREGEX_OMIT": 3, - "//g": 1, - "re.match": 1, - "*/": 2, - "heregex.length": 1, - "@tokens.push": 1, - "tokens.push": 1, - "value...": 1, - "continue": 3, - "value.replace": 2, - "/g": 3, - "spaced": 1, - "reserved": 1, - "word": 1, - "value.length": 2, - "MATH": 3, - "COMPARE": 3, - "COMPOUND_ASSIGN": 2, - "SHIFT": 3, - "LOGIC": 3, - ".spaced": 1, - "CALLABLE": 2, - "INDEXABLE": 2, - "@ends.push": 1, - "@pair": 1, - "sanitizeHeredoc": 1, - "HEREDOC_ILLEGAL.test": 1, - "doc.indexOf": 1, - "HEREDOC_INDENT.exec": 1, - "attempt": 2, - "attempt.length": 1, - "indent.length": 1, - "doc.replace": 2, - "///": 12, - "///g": 1, - "n/": 1, - "tagParameters": 1, - "this": 6, - "tokens.length": 1, - "tok": 5, - "stack.push": 1, - "stack.length": 1, - "stack.pop": 2, - "closeIndentation": 1, - "@outdentToken": 1, - "balancedString": 1, - "str": 1, - "end": 2, - "continueCount": 3, - "str.length": 1, - "letter": 1, - "str.charAt": 1, - "missing": 1, - "starting": 1, - "Hello": 1, - "name.capitalize": 1, - "OUTDENT": 1, - "THROW": 1, - "EXTENDS": 1, - "&": 4, - "false": 4, - "delete": 1, - "break": 1, - "debugger": 1, - "finally": 2, - "undefined": 1, - "until": 1, - "loop": 1, - "by": 1, - "&&": 1, - "case": 1, - "default": 1, - "function": 2, - "var": 1, - "void": 1, - "with": 1, - "const": 1, - "let": 2, - "enum": 1, - "export": 1, - "import": 1, - "native": 1, - "__hasProp": 1, - "__extends": 1, - "__slice": 1, - "__bind": 1, - "__indexOf": 1, - "implements": 1, - "interface": 1, - "package": 1, - "private": 1, - "protected": 1, - "public": 1, - "static": 1, - "yield": 1, - "arguments": 1, - "S": 10, - "OPERATOR": 1, - "%": 1, - "compound": 1, - "assign": 1, - "compare": 1, - "zero": 1, - "fill": 1, - "right": 1, - "shift": 2, - "doubles": 1, - "logic": 1, - "soak": 1, - "access": 1, - "range": 1, - "splat": 1, - "WHITESPACE": 1, - "###": 3, - "s*#": 1, - "##": 1, - ".*": 1, - "CODE": 1, - "MULTI_DENT": 1, - "SIMPLESTR": 1, - "JSTOKEN": 1, - "REGEX": 1, - "disallow": 1, - "leading": 1, - "whitespace": 1, - "equals": 1, - "signs": 1, - "every": 1, - "other": 1, - "thing": 1, - "anything": 1, - "escaped": 1, - "character": 1, - "imgy": 2, - "w": 2, - "HEREGEX": 1, - "#.*": 1, - "n/g": 1, - "HEREDOC_INDENT": 1, - "HEREDOC_ILLEGAL": 1, - "//": 1, - "LINE_CONTINUER": 1, - "s*": 1, - "BOOL": 1, - "NOT_REGEX.concat": 1, - "CALLABLE.concat": 1, - "async": 1, - "nack": 1, - "bufferLines": 3, - "pause": 2, - "sourceScriptEnv": 3, - "join": 8, - "exists": 5, - "basename": 2, - "resolve": 2, - "module.exports": 1, - "RackApplication": 1, - "@configuration": 1, - "@root": 8, - "@firstHost": 1, - "@logger": 1, - "@configuration.getLogger": 1, - "@readyCallbacks": 3, - "@quitCallbacks": 3, - "@statCallbacks": 3, - "ready": 1, - "@state": 11, - "@readyCallbacks.push": 1, - "@initialize": 2, - "quit": 1, - "@quitCallbacks.push": 1, - "@terminate": 2, - "queryRestartFile": 1, - "fs.stat": 1, - "stats": 1, - "@mtime": 5, - "lastMtime": 2, - "stats.mtime.getTime": 1, - "setPoolRunOnceFlag": 1, - "@statCallbacks.length": 1, - "alwaysRestart": 2, - "@pool.runOnce": 1, - "statCallback": 2, - "@statCallbacks.push": 1, - "loadScriptEnvironment": 1, - "env": 18, - "async.reduce": 1, - "scriptExists": 2, - "loadRvmEnvironment": 1, - "rvmrcExists": 2, - "rvm": 1, - "@configuration.rvmPath": 1, - "rvmExists": 2, - "libexecPath": 1, - "before": 2, - ".trim": 1, - "loadEnvironment": 1, - "@queryRestartFile": 2, - "@loadScriptEnvironment": 1, - "@configuration.env": 1, - "@loadRvmEnvironment": 1, - "initialize": 1, - "@quit": 3, - "@loadEnvironment": 1, - "@logger.error": 3, - "@pool": 2, - "nack.createPool": 1, - "size": 1, - ".POW_WORKERS": 1, - "@configuration.workers": 1, - "idle": 1, - ".POW_TIMEOUT": 1, - "@configuration.timeout": 1, - "@pool.stdout": 1, - "@logger.info": 1, - "@pool.stderr": 1, - "@logger.warning": 1, - "@pool.on": 2, - "process": 2, - "@logger.debug": 2, - "readyCallback": 2, - "terminate": 1, - "@ready": 3, - "@pool.quit": 1, - "quitCallback": 2, - "handle": 1, - "req": 4, - "res": 3, - "next": 3, - "resume": 2, - "@setPoolRunOnceFlag": 1, - "@restartIfNecessary": 1, - "req.proxyMetaVariables": 1, - "SERVER_PORT": 1, - "@configuration.dstPort.toString": 1, - "@pool.proxy": 1, - "restart": 1, - "restartIfNecessary": 1, - "mtimeChanged": 2, - "@restart": 1, - "writeRvmBoilerplate": 1, - "powrc": 3, - "boilerplate": 2, - "@constructor.rvmBoilerplate": 1, - "fs.readFile": 1, - "contents": 2, - "contents.indexOf": 1, - "fs.writeFile": 1, - "@rvmBoilerplate": 1, - "dnsserver": 1, - "exports.Server": 1, - "Server": 2, - "dnsserver.Server": 1, - "NS_T_A": 3, - "NS_T_NS": 2, - "NS_T_CNAME": 1, - "NS_T_SOA": 2, - "NS_C_IN": 5, - "NS_RCODE_NXDOMAIN": 2, - "domain": 6, - "@rootAddress": 2, - "@domain": 3, - "domain.toLowerCase": 1, - "@soa": 2, - "createSOA": 2, - "@on": 1, - "@handleRequest": 1, - "handleRequest": 1, - "question": 5, - "req.question": 1, - "subdomain": 10, - "@extractSubdomain": 1, - "question.name": 3, - "isARequest": 2, - "res.addRR": 2, - "subdomain.getAddress": 1, - ".isEmpty": 1, - "isNSRequest": 2, - "res.header.rcode": 1, - "res.send": 1, - "extractSubdomain": 1, - "name": 5, - "Subdomain.extract": 1, - "question.type": 2, - "question.class": 2, - "mname": 2, - "rname": 2, - "serial": 2, - "Date": 1, - ".getTime": 1, - "refresh": 2, - "retry": 2, - "expire": 2, - "minimum": 2, - "dnsserver.createSOA": 1, - "exports.createServer": 1, - "address": 4, - "exports.Subdomain": 1, - "Subdomain": 4, - "@extract": 1, - "name.toLowerCase": 1, - "offset": 4, - "name.length": 1, - "domain.length": 1, - "name.slice": 2, - "@for": 2, - "IPAddressSubdomain.pattern.test": 1, - "IPAddressSubdomain": 2, - "EncodedSubdomain.pattern.test": 1, - "EncodedSubdomain": 2, - "@subdomain": 1, - "@address": 2, - "@labels": 2, - ".split": 1, - "@length": 3, - "@labels.length": 1, - "isEmpty": 1, - "getAddress": 3, - "@pattern": 2, - "@labels.slice": 1, - "a": 2, - "z0": 2, - "decode": 2, - "exports.encode": 1, - "encode": 1, - "ip": 2, - "byte": 2, - "ip.split": 1, - "<<": 1, - "PATTERN": 1, - "exports.decode": 1, - "PATTERN.test": 1, - "ip.push": 1, - "xFF": 1, - "ip.join": 1 - }, - "Common Lisp": { - ";": 152, - "@file": 1, - "macros": 2, - "-": 161, - "advanced.cl": 1, - "@breif": 1, - "Advanced": 1, - "macro": 5, - "practices": 1, - "defining": 1, - "your": 1, - "own": 1, - "Macro": 1, - "definition": 1, - "skeleton": 1, - "(": 365, - "defmacro": 5, - "name": 6, - "parameter*": 1, - ")": 372, - "body": 8, - "form*": 1, - "Note": 2, - "that": 5, - "backquote": 1, - "expression": 2, - "is": 6, - "most": 2, - "often": 1, - "used": 2, - "in": 23, - "the": 35, - "form": 1, - "primep": 4, - "test": 1, - "a": 7, - "number": 2, - "for": 3, - "prime": 12, - "defun": 23, - "n": 8, - "if": 14, - "<": 1, - "return": 3, - "from": 8, - "do": 9, - "i": 8, - "+": 35, - "p": 10, - "t": 7, - "not": 6, - "zerop": 1, - "mod": 1, - "sqrt": 1, - "when": 4, - "next": 11, - "bigger": 1, - "than": 1, - "specified": 2, - "The": 2, - "recommended": 1, - "procedures": 1, - "to": 4, - "writting": 1, - "new": 6, - "are": 2, - "as": 1, - "follows": 1, - "Write": 2, - "sample": 2, - "call": 2, - "and": 12, - "code": 2, - "it": 2, - "should": 1, - "expand": 1, - "into": 2, - "primes": 3, - "format": 3, - "Expected": 1, - "expanded": 1, - "codes": 1, - "generate": 1, - "hardwritten": 1, - "expansion": 2, - "arguments": 1, - "var": 49, - "range": 4, - "&": 8, - "rest": 5, - "let": 6, - "first": 5, - "start": 5, - "second": 3, - "end": 8, - "third": 2, - "@body": 4, - "More": 1, - "concise": 1, - "implementations": 1, - "with": 7, - "synonym": 1, - "also": 1, - "emits": 1, - "more": 1, - "friendly": 1, - "messages": 1, - "on": 1, - "incorrent": 1, - "input.": 1, - "Test": 1, - "result": 1, - "of": 3, - "macroexpand": 2, - "function": 2, - "gensyms": 4, - "value": 8, - "Define": 1, - "note": 1, - "how": 1, - "comma": 1, - "interpolate": 1, - "loop": 2, - "names": 2, - "collect": 1, - "gensym": 1, - "#": 15, - "|": 9, - "ESCUELA": 1, - "POLITECNICA": 1, - "SUPERIOR": 1, - "UNIVERSIDAD": 1, - "AUTONOMA": 1, - "DE": 1, - "MADRID": 1, - "INTELIGENCIA": 1, - "ARTIFICIAL": 1, - "Motor": 1, - "de": 2, - "inferencia": 1, - "Basado": 1, - "en": 2, - "parte": 1, - "Peter": 1, - "Norvig": 1, - "Global": 1, - "variables": 6, - "defvar": 4, - "*hypothesis": 1, - "list*": 7, - "*rule": 4, - "*fact": 2, - "Constants": 1, - "defconstant": 2, - "fail": 10, - "nil": 3, - "no": 6, - "bindings": 45, - "lambda": 4, - "b": 6, - "mapcar": 2, - "man": 3, - "luis": 1, - "pedro": 1, - "woman": 2, - "mart": 1, - "daniel": 1, - "laura": 1, - "facts": 1, - "x": 47, - "aux": 3, - "unify": 12, - "hypothesis": 10, - "list": 9, - "____________________________________________________________________________": 5, - "FUNCTION": 3, - "FIND": 1, - "RULES": 2, - "COMMENTS": 3, - "Returns": 2, - "rules": 5, - "whose": 1, - "THENs": 1, - "term": 1, - "given": 3, - "": 2, - "satisfy": 1, - "this": 1, - "requirement": 1, - "renamed.": 1, - "EXAMPLES": 2, - "setq": 1, - "renamed": 3, - "rule": 17, - "rename": 1, - "then": 7, - "unless": 3, - "null": 1, - "equal": 4, - "VALUE": 1, - "FROM": 1, - "all": 2, - "solutions": 1, - "found": 5, - "using": 1, - "": 1, - ".": 10, - "single": 1, - "can": 4, - "have": 1, - "multiple": 1, - "solutions.": 1, - "mapcan": 1, - "R1": 2, - "pertenece": 3, - "E": 4, - "_": 8, - "R2": 2, - "Xs": 2, - "Then": 1, - "EVAL": 2, - "RULE": 2, - "PERTENECE": 6, - "E.42": 2, - "returns": 4, - "NIL": 3, - "That": 2, - "query": 4, - "be": 2, - "proven": 2, - "binding": 17, - "necessary": 2, - "fact": 4, - "has": 1, - "On": 1, - "other": 1, - "hand": 1, - "E.49": 2, - "XS.50": 2, - "R2.": 1, - "eval": 6, - "ifs": 1, - "NOT": 2, - "question": 1, - "T": 1, - "equality": 2, - "UNIFY": 1, - "Finds": 1, - "general": 1, - "unifier": 1, - "two": 2, - "input": 2, - "expressions": 2, - "taking": 1, - "account": 1, - "": 1, - "In": 1, - "case": 1, - "total": 1, - "unification.": 1, - "Otherwise": 1, - "which": 1, - "constant": 1, - "anonymous": 4, - "make": 4, - "variable": 6, - "Auxiliary": 1, - "Functions": 1, - "cond": 3, - "or": 4, - "get": 5, - "lookup": 5, - "occurs": 5, - "extend": 2, - "symbolp": 2, - "eql": 2, - "char": 2, - "symbol": 2, - "assoc": 1, - "car": 2, - "val": 6, - "cdr": 2, - "cons": 2, - "append": 1, - "eq": 7, - "consp": 2, - "subst": 3, - "listp": 1, - "exp": 1, - "unique": 3, - "find": 6, - "anywhere": 6, - "predicate": 8, - "tree": 11, - "optional": 2, - "so": 4, - "far": 4, - "atom": 3, - "funcall": 2, - "pushnew": 1, - "gentemp": 2, + "injectJsInFrame": 2, + "jsFilePath": 5, + "libraryPath": 5, + "QWebFrame": 4, + "*targetFrame": 4, + "startingScript": 2, + "Encoding": 3, + "jsFileEnc": 2, + "readResourceFileUtf8": 1, + "resourceFilePath": 1, + "loadJSForDebug": 2, + "autorun": 2, + "cleanupFromDebug": 1, + "findScript": 1, + "jsFromScriptFile": 1, + "scriptPath": 1, + "enc": 1, + "shouldn": 1, + "instantiated": 1, + "QTemporaryFile*": 2, + "m_tempHarness": 1, + "We": 1, + "clean": 2, + "ourselves": 1, + "m_tempWrapper": 1, + "overflow": 1, + "j": 4, + "NUM_TOKENS": 1, + "one_char_tokens": 2, + "ILLEGAL": 120, + "LPAREN": 2, + "RPAREN": 2, + "COMMA": 2, + "COLON": 2, + "SEMICOLON": 2, + "CONDITIONAL": 2, + "LBRACK": 2, + "RBRACK": 2, + "LBRACE": 2, + "RBRACE": 2, + "BIT_NOT": 2, + "": 1, + "next_.location.beg_pos": 3, + "next_.location.end_pos": 4, + "IsByteOrderMark": 2, + "xFEFF": 1, + "xFFFE": 1, + "start_position": 2, + "continue": 2, + "undo": 4, + "WHITESPACE": 6, + "LT": 2, + "LTE": 1, + "ASSIGN_SHL": 1, + "SHL": 1, + "GTE": 1, + "ASSIGN_SAR": 1, + "ASSIGN_SHR": 1, + "SHR": 1, + "SAR": 1, + "GT": 1, + "EQ_STRICT": 1, + "EQ": 1, + "ASSIGN": 1, + "NE_STRICT": 1, + "NE": 1, + "INC": 1, + "ASSIGN_ADD": 1, + "ADD": 1, + "DEC": 1, + "ASSIGN_SUB": 1, + "SUB": 1, + "ASSIGN_MUL": 1, + "MUL": 1, + "ASSIGN_MOD": 1, + "MOD": 1, + "ASSIGN_DIV": 1, + "DIV": 1, + "AND": 1, + "ASSIGN_BIT_AND": 1, + "BIT_AND": 1, + "OR": 1, + "ASSIGN_BIT_OR": 1, + "BIT_OR": 1, + "ASSIGN_BIT_XOR": 1, + "BIT_XOR": 1, + "IsDecimalDigit": 2, + "PERIOD": 1, + "EOS": 1, + "current_pos": 4, + "ASSERT_EQ": 1, + "IsCarriageReturn": 2, + "IsLineFeed": 2, + "fall": 2, + "xxx": 1, + "report": 3, + "immediately": 1, + "because": 2, + "octal": 1, + "escape": 1, "quote": 3, - "s/reuse": 1, - "cons/cons": 1, - "expresion": 2, - "some": 1, - "EOF": 1, + "consume": 2, + "X": 2, + "E": 3, + "l": 1, + "w": 1, + "keyword": 1, + "valid": 2, + "Unescaped": 1, + "character.": 9, + "in_character_class": 2, + "literal.Complete": 2, + "QSCIPRINTER_H": 2, + "__APPLE__": 4, + "": 1, + "": 2, + "": 1, + "QT_BEGIN_NAMESPACE": 1, + "QRect": 2, + "QPainter": 2, + "QT_END_NAMESPACE": 1, + "QsciScintillaBase": 100, + "QsciPrinter": 9, + "sub": 2, + "Qt": 1, + "QPrinter": 3, + "text": 5, + "Scintilla": 2, + "document.": 8, + "further": 1, + "classed": 1, + "layout": 1, + "adding": 2, + "footers": 2, + "example.": 1, + "QSCINTILLA_EXPORT": 2, + "Constructs": 1, + "printer": 1, + "paint": 1, + "PrinterMode": 1, + "ScreenResolution": 1, + "Destroys": 1, + "instance.": 2, + "Format": 1, + "document": 16, + "drawn": 2, + "painter": 4, + "add": 3, + "customised": 2, + "graphics.": 2, + "drawing": 4, + "actually": 1, + "sized.": 1, + "area": 5, + "draw": 1, + "text.": 3, + "modified": 3, + "necessary": 1, + "reserve": 1, + "By": 1, + "relative": 2, + "printable": 1, + "page.": 13, + "setFullPage": 1, + "printRange": 2, + "try": 1, + "over": 1, + "whole": 2, + "pagenr": 2, + "numbered": 1, + "formatPage": 1, + "Return": 3, + "points": 2, + "font": 2, + "printing.": 2, + "setMagnification": 2, + "magnification": 3, + "mag": 2, + "printing": 2, + "magnification.": 1, + "Print": 2, + "lines": 3, + "instance": 4, + "qsb.": 1, + "negative": 2, + "signifies": 2, + "error.": 1, + "*qsb": 1, + "wrap": 4, + "QsciScintilla": 7, + "WrapWord.": 1, + "setWrapMode": 2, + "WrapMode": 3, + "wrapMode": 2, + "wmode.": 1, + "wmode": 1, + "NINJA_METRICS_H_": 3, + "int64_t.": 1, + "Metrics": 2, + "module": 1, + "dumps": 1, + "stats": 2, + "actions.": 1, + "To": 1, + "METRIC_RECORD": 4, + "below.": 1, + "metrics": 2, + "hit": 1, + "path.": 2, + "count": 1, + "Total": 1, + "spent": 1, + "int64_t": 3, + "sum": 1, + "scoped": 1, + "object": 3, + "recording": 1, + "metric": 2, + "across": 1, + "body": 1, + "macro.": 1, + "ScopedMetric": 4, + "Metric*": 4, + "metric_": 1, + "Timestamp": 1, + "started.": 1, + "platform": 2, + "dependent.": 1, + "start_": 1, + "singleton": 2, + "prints": 1, + "report.": 1, + "NewMetric": 2, + "summary": 1, + "stdout.": 1, + "Report": 1, + "": 1, + "metrics_": 1, + "Get": 1, + "epoch.": 1, + "Epoch": 1, + "varies": 1, + "between": 1, + "platforms": 1, + "useful": 1, + "measuring": 1, + "elapsed": 1, + "time.": 1, + "GetTimeMillis": 1, + "simple": 1, + "stopwatch": 1, + "seconds": 1, + "Restart": 3, + "called.": 1, + "Stopwatch": 2, + "started_": 4, + "Seconds": 1, + "call.": 1, + "Elapsed": 1, + "": 1, + "primary": 1, + "metrics.": 1, + "top": 1, + "recorded": 1, + "metrics_h_metric": 2, + "g_metrics": 3, + "metrics_h_scoped": 1, + "Metrics*": 1, + "smallPrime_t": 1, + "Bar": 2, + "hello": 2, + "ENV_H": 3, + "": 1, + "": 2, + "Env": 13, + "QObject": 2, + "Q_OBJECT": 1, + "*instance": 1, + "parse": 3, + "**": 2, + "envp": 4, + "QVariantMap": 3, + "asVariantMap": 2, + "m_map": 2, + "Field": 2, + "Free": 1, + "Black": 1, + "White": 1, + "Illegal": 1, + "Player": 1, + "": 2, + "main": 2, + "cout": 2, + "endl": 1, + "LIBCANIH": 2, + "": 1, + "": 1, + "int64": 1, + "//#define": 1, + "DEBUG": 5, + "dout": 2, + "cerr": 1, + "libcanister": 2, + "//the": 8, + "canmem": 22, + "generic": 1, + "container": 2, + "commonly": 1, + "//throughout": 1, + "canister": 14, + "framework": 1, + "hold": 1, + "uncertain": 1, + "//length": 1, + "contain": 1, + "null": 3, + "bytes.": 1, + "raw": 2, + "absolute": 1, + "//creates": 3, + "unallocated": 1, + "allocsize": 1, + "blank": 1, + "strdata": 1, + "//automates": 1, + "creation": 1, + "zero": 5, + "limited": 2, + "canmems": 1, + "//cleans": 1, + "zeromem": 1, + "//overwrites": 2, + "fragmem": 1, + "notation": 1, + "countlen": 1, + "//counts": 1, + "strings": 1, + "//removes": 1, + "nulls": 1, + "//returns": 2, + "//contains": 2, + "caninfo": 2, + "path": 8, + "//physical": 1, + "internalname": 1, + "//a": 1, + "numfiles": 1, + "files": 6, + "//necessary": 1, + "canfile": 7, + "//this": 1, + "holds": 2, + "//canister": 1, + "canister*": 1, + "parent": 1, + "//internal": 1, + "//use": 1, + "own.": 1, + "newline": 2, + "delimited": 2, + "container.": 1, + "TOC": 1, + "info": 2, + "general": 1, + "canfiles": 1, + "recommended": 1, + "modify": 1, + "//these": 1, + "enforced.": 1, + "canfile*": 1, + "//if": 1, + "routines": 1, + "anything": 1, + "//maximum": 1, + "//time": 1, + "whatever": 1, + "suits": 1, + "application.": 1, + "cachemax": 2, + "cachecnt": 1, + "//number": 1, + "cache": 2, + "//both": 1, + "initialize": 1, + "fspath": 3, + "//destroys": 1, + "flushing": 1, + "modded": 1, + "//open": 1, + "//does": 1, + "exist": 2, + "//close": 1, + "flush": 1, + "//deletes": 1, + "inside": 1, + "delFile": 1, + "//pulls": 1, + "getFile": 1, + "otherwise": 1, + "overwrites": 1, + "operation": 1, + "writeFile": 2, + "//get": 1, + "//list": 1, + "paths": 1, + "getTOC": 1, + "//brings": 1, + "back": 1, + "limit": 1, + "//important": 1, + "sCFID": 2, + "CFID": 2, + "avoid": 1, + "uncaching": 1, + "//really": 1, + "internally": 1, + "harm.": 1, + "cacheclean": 1, + "dFlush": 1, + "BITCOIN_KEY_H": 2, + "": 1, + "": 1, + "EC_KEY": 3, + "key_error": 6, + "runtime_error": 2, + "str": 2, + "CKeyID": 5, + "uint160": 8, + "CScriptID": 3, + "CPubKey": 11, + "vchPubKey": 6, + "CKey": 26, + "vchPubKeyIn": 2, + "a.vchPubKey": 3, + "b.vchPubKey": 3, + "IMPLEMENT_SERIALIZE": 1, + "READWRITE": 1, + "GetID": 1, + "Hash160": 1, + "uint256": 10, + "GetHash": 1, + "Hash": 1, + "vchPubKey.begin": 1, + "vchPubKey.end": 1, + "vchPubKey.size": 3, + "IsCompressed": 2, + "Raw": 1, + "secure_allocator": 2, + "CPrivKey": 3, + "CSecret": 4, + "EC_KEY*": 1, + "pkey": 14, + "fSet": 7, + "fCompressedPubKey": 5, + "SetCompressedPubKey": 4, + "IsNull": 1, + "MakeNewKey": 1, + "fCompressed": 3, + "SetPrivKey": 1, + "vchPrivKey": 1, + "SetSecret": 1, + "vchSecret": 1, + "GetSecret": 2, + "GetPrivKey": 1, + "SetPubKey": 1, + "GetPubKey": 5, + "hash": 20, + "vchSig": 18, + "SignCompact": 2, + "SetCompactSignature": 2, + "Verify": 2, + "VerifyCompact": 2, + "V8_V8_H_": 3, + "GOOGLE3": 2, + "NDEBUG": 4, + "both": 1, + "Deserializer": 1, + "V8": 21, + "AllStatic": 1, + "Deserializer*": 2, + "des": 3, + "TearDown": 5, + "IsRunning": 1, + "is_running_": 6, + "UseCrankshaft": 1, + "use_crankshaft_": 6, + "IsDead": 2, + "has_fatal_error_": 5, + "has_been_disposed_": 6, + "SetFatalError": 2, + "FatalProcessOutOfMemory": 1, + "take_snapshot": 1, + "SetEntropySource": 2, + "EntropySource": 3, + "SetReturnAddressLocationResolver": 3, + "ReturnAddressLocationResolver": 2, + "resolver": 3, + "Random": 3, + "Context*": 4, + "RandomPrivate": 2, + "Isolate*": 6, + "isolate": 15, + "Object*": 4, + "FillHeapNumberWithRandom": 2, + "heap_number": 4, + "IdleNotification": 3, + "hint": 3, + "AddCallCompletedCallback": 2, + "CallCompletedCallback": 4, + "callback": 7, + "RemoveCallCompletedCallback": 2, + "FireCallCompletedCallback": 2, + "InitializeOncePerProcessImpl": 3, + "InitializeOncePerProcess": 4, + "has_been_set_up_": 4, + "List": 3, + "": 3, + "call_completed_callbacks_": 16, + "NilValue": 1, + "kNullValue": 1, + "kUndefinedValue": 1, + "EqualityKind": 1, + "kStrictEquality": 1, + "kNonStrictEquality": 1, + "PROTOBUF_protocol_2dbuffer_2eproto__INCLUDED": 3, + "GOOGLE_PROTOBUF_VERSION": 1, + "generated": 2, + "newer": 2, + "protoc": 2, + "incompatible": 2, + "Protocol": 2, + "headers.": 3, + "update": 1, + "GOOGLE_PROTOBUF_MIN_PROTOC_VERSION": 1, + "older": 1, + "regenerate": 1, + "protoc.": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "*this": 1, + "UnknownFieldSet": 2, + "UnknownFieldSet*": 1, + "GetCachedSize": 1, + "clear_name": 2, + "release_name": 2, + "set_allocated_name": 2, + "set_has_name": 7, + "clear_has_name": 5, + "mutable": 1, + "*name_": 1, + "assign": 3, + "temp": 2, + "SWIG": 2, + "QSCICOMMAND_H": 2, + "": 1, + "": 1, + "QsciCommand": 7, + "represents": 1, + "editor": 1, + "command": 9, + "keys": 3, + "bound": 4, + "Methods": 1, + "provided": 1, + "key": 23, + "binding.": 1, + "Each": 1, + "friendly": 2, + "description": 3, + "dialogs.": 1, + "commands": 1, + "assigned": 1, + "key.": 1, + "Command": 4, + "Move": 26, + "down": 12, + "line.": 33, + "LineDown": 1, + "SCI_LINEDOWN": 1, + "Extend": 33, + "selection": 39, + "LineDownExtend": 1, + "SCI_LINEDOWNEXTEND": 1, + "rectangular": 9, + "LineDownRectExtend": 1, + "SCI_LINEDOWNRECTEXTEND": 1, + "Scroll": 5, + "view": 2, + "LineScrollDown": 1, + "SCI_LINESCROLLDOWN": 1, + "LineUp": 1, + "SCI_LINEUP": 1, + "LineUpExtend": 1, + "SCI_LINEUPEXTEND": 1, + "LineUpRectExtend": 1, + "SCI_LINEUPRECTEXTEND": 1, + "LineScrollUp": 1, + "SCI_LINESCROLLUP": 1, + "ScrollToStart": 1, + "SCI_SCROLLTOSTART": 1, + "ScrollToEnd": 1, + "SCI_SCROLLTOEND": 1, + "vertically": 1, + "centre": 1, + "VerticalCentreCaret": 1, + "SCI_VERTICALCENTRECARET": 1, + "paragraph.": 4, + "ParaDown": 1, + "SCI_PARADOWN": 1, + "ParaDownExtend": 1, + "SCI_PARADOWNEXTEND": 1, + "ParaUp": 1, + "SCI_PARAUP": 1, + "ParaUpExtend": 1, + "SCI_PARAUPEXTEND": 1, + "left": 7, + "CharLeft": 1, + "SCI_CHARLEFT": 1, + "CharLeftExtend": 1, + "SCI_CHARLEFTEXTEND": 1, + "CharLeftRectExtend": 1, + "SCI_CHARLEFTRECTEXTEND": 1, + "CharRight": 1, + "SCI_CHARRIGHT": 1, + "CharRightExtend": 1, + "SCI_CHARRIGHTEXTEND": 1, + "CharRightRectExtend": 1, + "SCI_CHARRIGHTRECTEXTEND": 1, + "word.": 9, + "WordLeft": 1, + "SCI_WORDLEFT": 1, + "WordLeftExtend": 1, + "SCI_WORDLEFTEXTEND": 1, + "WordRight": 1, + "SCI_WORDRIGHT": 1, + "WordRightExtend": 1, + "SCI_WORDRIGHTEXTEND": 1, + "WordLeftEnd": 1, + "SCI_WORDLEFTEND": 1, + "WordLeftEndExtend": 1, + "SCI_WORDLEFTENDEXTEND": 1, + "WordRightEnd": 1, + "SCI_WORDRIGHTEND": 1, + "WordRightEndExtend": 1, + "SCI_WORDRIGHTENDEXTEND": 1, + "part.": 4, + "WordPartLeft": 1, + "SCI_WORDPARTLEFT": 1, + "WordPartLeftExtend": 1, + "SCI_WORDPARTLEFTEXTEND": 1, + "WordPartRight": 1, + "SCI_WORDPARTRIGHT": 1, + "WordPartRightExtend": 1, + "SCI_WORDPARTRIGHTEXTEND": 1, + "Home": 1, + "SCI_HOME": 1, + "HomeExtend": 1, + "SCI_HOMEEXTEND": 1, + "HomeRectExtend": 1, + "SCI_HOMERECTEXTEND": 1, + "displayed": 10, + "HomeDisplay": 1, + "SCI_HOMEDISPLAY": 1, + "HomeDisplayExtend": 1, + "SCI_HOMEDISPLAYEXTEND": 1, + "HomeWrap": 1, + "SCI_HOMEWRAP": 1, + "HomeWrapExtend": 1, + "SCI_HOMEWRAPEXTEND": 1, + "visible": 6, + "VCHome": 1, + "SCI_VCHOME": 1, + "VCHomeExtend": 1, + "SCI_VCHOMEEXTEND": 1, + "VCHomeRectExtend": 1, + "SCI_VCHOMERECTEXTEND": 1, + "VCHomeWrap": 1, + "SCI_VCHOMEWRAP": 1, + "VCHomeWrapExtend": 1, + "SCI_VCHOMEWRAPEXTEND": 1, + "LineEnd": 1, + "SCI_LINEEND": 1, + "LineEndExtend": 1, + "SCI_LINEENDEXTEND": 1, + "LineEndRectExtend": 1, + "SCI_LINEENDRECTEXTEND": 1, + "LineEndDisplay": 1, + "SCI_LINEENDDISPLAY": 1, + "LineEndDisplayExtend": 1, + "SCI_LINEENDDISPLAYEXTEND": 1, + "LineEndWrap": 1, + "SCI_LINEENDWRAP": 1, + "LineEndWrapExtend": 1, + "SCI_LINEENDWRAPEXTEND": 1, + "DocumentStart": 1, + "SCI_DOCUMENTSTART": 1, + "DocumentStartExtend": 1, + "SCI_DOCUMENTSTARTEXTEND": 1, + "DocumentEnd": 1, + "SCI_DOCUMENTEND": 1, + "DocumentEndExtend": 1, + "SCI_DOCUMENTENDEXTEND": 1, + "PageUp": 1, + "SCI_PAGEUP": 1, + "PageUpExtend": 1, + "SCI_PAGEUPEXTEND": 1, + "PageUpRectExtend": 1, + "SCI_PAGEUPRECTEXTEND": 1, + "PageDown": 1, + "SCI_PAGEDOWN": 1, + "PageDownExtend": 1, + "SCI_PAGEDOWNEXTEND": 1, + "PageDownRectExtend": 1, + "SCI_PAGEDOWNRECTEXTEND": 1, + "Stuttered": 4, + "move": 2, + "StutteredPageUp": 1, + "SCI_STUTTEREDPAGEUP": 1, + "extend": 2, + "StutteredPageUpExtend": 1, + "SCI_STUTTEREDPAGEUPEXTEND": 1, + "StutteredPageDown": 1, + "SCI_STUTTEREDPAGEDOWN": 1, + "StutteredPageDownExtend": 1, + "SCI_STUTTEREDPAGEDOWNEXTEND": 1, + "Delete": 10, + "SCI_CLEAR": 1, + "DeleteBack": 1, + "SCI_DELETEBACK": 1, + "DeleteBackNotLine": 1, + "SCI_DELETEBACKNOTLINE": 1, + "left.": 2, + "DeleteWordLeft": 1, + "SCI_DELWORDLEFT": 1, + "right.": 2, + "DeleteWordRight": 1, + "SCI_DELWORDRIGHT": 1, + "DeleteWordRightEnd": 1, + "SCI_DELWORDRIGHTEND": 1, + "DeleteLineLeft": 1, + "SCI_DELLINELEFT": 1, + "DeleteLineRight": 1, + "SCI_DELLINERIGHT": 1, + "LineDelete": 1, + "SCI_LINEDELETE": 1, + "Cut": 2, + "clipboard.": 5, + "LineCut": 1, + "SCI_LINECUT": 1, + "Copy": 2, + "LineCopy": 1, + "SCI_LINECOPY": 1, + "Transpose": 1, + "lines.": 1, + "LineTranspose": 1, + "SCI_LINETRANSPOSE": 1, + "Duplicate": 2, + "LineDuplicate": 1, + "SCI_LINEDUPLICATE": 1, + "SelectAll": 1, + "SCI_SELECTALL": 1, + "MoveSelectedLinesUp": 1, + "SCI_MOVESELECTEDLINESUP": 1, + "MoveSelectedLinesDown": 1, + "SCI_MOVESELECTEDLINESDOWN": 1, + "selection.": 1, + "SelectionDuplicate": 1, + "SCI_SELECTIONDUPLICATE": 1, + "Convert": 2, + "lower": 1, + "case.": 2, + "SelectionLowerCase": 1, + "SCI_LOWERCASE": 1, + "upper": 1, + "SelectionUpperCase": 1, + "SCI_UPPERCASE": 1, + "SelectionCut": 1, + "SCI_CUT": 1, + "SelectionCopy": 1, + "SCI_COPY": 1, + "Paste": 2, + "SCI_PASTE": 1, + "Toggle": 1, + "insert/overtype.": 1, + "EditToggleOvertype": 1, + "SCI_EDITTOGGLEOVERTYPE": 1, + "Insert": 2, + "dependent": 1, + "newline.": 1, + "Newline": 1, + "SCI_NEWLINE": 1, + "formfeed.": 1, + "Formfeed": 1, + "SCI_FORMFEED": 1, + "Indent": 1, + "Tab": 1, + "SCI_TAB": 1, + "De": 1, + "indent": 1, + "Backtab": 1, + "SCI_BACKTAB": 1, + "Cancel": 2, + "SCI_CANCEL": 1, + "Undo": 2, + "command.": 5, + "SCI_UNDO": 1, + "Redo": 2, + "SCI_REDO": 1, + "Zoom": 2, + "in.": 1, + "ZoomIn": 1, + "SCI_ZOOMIN": 1, + "out.": 1, + "ZoomOut": 1, + "SCI_ZOOMOUT": 1, + "executed": 1, + "scicmd": 2, + "Execute": 1, + "Binds": 2, + "binding": 3, + "removed.": 2, + "unchanged.": 1, + "Valid": 1, + "Key_Down": 1, + "Key_Up": 1, + "Key_Left": 1, + "Key_Right": 1, + "Key_Home": 1, + "Key_End": 1, + "Key_PageUp": 1, + "Key_PageDown": 1, + "Key_Delete": 1, + "Key_Insert": 1, + "Key_Escape": 1, + "Key_Backspace": 1, + "Key_Tab": 1, + "Key_Return.": 1, + "Keys": 1, + "SHIFT": 1, + "CTRL": 1, + "ALT": 1, + "META.": 1, + "setAlternateKey": 3, + "validKey": 3, + "setKey": 3, + "altkey": 3, + "alternateKey": 3, + "returned.": 4, + "qkey": 2, + "qaltkey": 2, + "QsciCommandSet": 1, + "*qs": 1, + "cmd": 1, + "*desc": 1, + "bindKey": 1, + "qk": 1, + "scik": 1, + "*qsCmd": 1, + "scikey": 1, + "scialtkey": 1, + "*descCmd": 1, + "": 1, + "": 1, + "*env_instance": 1, + "*Env": 1, + "env_instance": 3, + "QCoreApplication": 1, + "**envp": 1, + "**env": 1, + "envvar": 2, + "indexOfEquals": 5, + "env": 3, + "*env": 1, + "envvar.indexOf": 1, + "envvar.left": 1, + "envvar.mid": 1, + "m_map.insert": 1, + "Q_OS_LINUX": 2, + "": 1, + "QT_VERSION": 1, + "QT_VERSION_CHECK": 1, + "Something": 1, + "wrong": 1, + "setup.": 1, + "mailing": 1, + "argc": 2, + "char**": 2, + "argv": 2, + "google_breakpad": 1, + "ExceptionHandler": 1, + "qInstallMsgHandler": 1, + "QApplication": 1, + "app": 1, + "STATIC_BUILD": 1, + "Q_INIT_RESOURCE": 2, + "WebKit": 1, + "InspectorBackendStub": 1, + "app.setWindowIcon": 1, + "QIcon": 1, + "app.setApplicationName": 1, + "app.setOrganizationName": 1, + "app.setOrganizationDomain": 1, + "app.setApplicationVersion": 1, + "PHANTOMJS_VERSION_STRING": 1, + "Phantom": 1, + "phantom": 1, + "phantom.execute": 1, + "app.exec": 1, + "phantom.returnValue": 1, + "": 1, + "": 1, + "": 1, + "EC_KEY_regenerate_key": 1, + "*eckey": 2, + "BIGNUM": 9, + "*priv_key": 1, + "ok": 3, + "BN_CTX": 2, + "*ctx": 2, + "EC_POINT": 4, + "*pub_key": 1, + "eckey": 7, + "EC_GROUP": 2, + "*group": 2, + "EC_KEY_get0_group": 2, + "ctx": 26, + "BN_CTX_new": 2, + "err": 26, + "pub_key": 6, + "EC_POINT_new": 4, + "EC_POINT_mul": 3, + "priv_key": 2, + "EC_KEY_set_private_key": 1, + "EC_KEY_set_public_key": 2, + "EC_POINT_free": 4, + "BN_CTX_free": 2, + "ECDSA_SIG_recover_key_GFp": 3, + "ECDSA_SIG": 3, + "*ecsig": 1, + "msglen": 2, + "recid": 3, + "ret": 24, + "*x": 1, + "*e": 1, + "*order": 1, + "*sor": 1, + "*eor": 1, + "*field": 1, + "*R": 1, + "*O": 1, + "*Q": 1, + "*rr": 1, + "*zero": 1, + "BN_CTX_start": 1, + "BN_CTX_get": 8, + "EC_GROUP_get_order": 1, + "BN_copy": 1, + "BN_mul_word": 1, + "BN_add": 1, + "ecsig": 3, + "EC_GROUP_get_curve_GFp": 1, + "BN_cmp": 1, + "R": 6, + "EC_POINT_set_compressed_coordinates_GFp": 1, + "O": 5, + "EC_POINT_is_at_infinity": 1, + "Q": 5, + "EC_GROUP_get_degree": 1, + "BN_bin2bn": 3, + "msg": 1, + "*msglen": 1, + "BN_rshift": 1, + "BN_zero": 1, + "BN_mod_sub": 1, + "rr": 4, + "BN_mod_inverse": 1, + "sor": 3, + "BN_mod_mul": 2, + "eor": 3, + "BN_CTX_end": 1, + "EC_KEY_set_conv_form": 1, + "POINT_CONVERSION_COMPRESSED": 1, + "EC_KEY_new_by_curve_name": 2, + "NID_secp256k1": 2, + "throw": 4, + "EC_KEY_dup": 1, + "b.pkey": 2, + "b.fSet": 2, + "EC_KEY_copy": 1, + "nSize": 2, + "vchSig.clear": 2, + "vchSig.resize": 2, + "Shrink": 1, + "fit": 1, + "actual": 1, + "fOk": 3, + "*sig": 2, + "ECDSA_do_sign": 1, + "sig": 11, + "nBitsR": 3, + "BN_num_bits": 2, + "nBitsS": 3, + "nRecId": 4, + "<4;>": 1, + "keyRec": 5, + "BN_bn2bin": 2, + "/8": 2, + "ECDSA_SIG_free": 2, + "vchSig.size": 2, + "nV": 6, + "<27>": 1, + "ECDSA_SIG_new": 1, + "EC_KEY_free": 1, + "ECDSA_verify": 1, + "key.SetCompactSignature": 1, + "key.GetPubKey": 1, + "fCompr": 3, + "secret": 2, + "key2": 1, + "key2.SetSecret": 1, + "key2.GetPubKey": 1, + "V8_DECLARE_ONCE": 1, + "init_once": 2, + "LazyMutex": 1, + "entropy_mutex": 1, + "LAZY_MUTEX_INITIALIZER": 1, + "entropy_source": 4, + "FlagList": 1, + "EnforceFlagImplications": 1, + "Isolate": 9, + "CurrentPerIsolateThreadData": 4, + "EnterDefaultIsolate": 1, + "thread_id": 1, + ".Equals": 1, + "ThreadId": 1, + "Current": 5, + "IsDefaultIsolate": 1, + "ElementsAccessor": 2, + "LOperand": 2, + "TearDownCaches": 1, + "RegisteredExtension": 1, + "UnregisterAll": 1, + "OS": 3, + "seed_random": 2, + "FLAG_random_seed": 2, + "val": 3, + "ScopedLock": 1, + "lock": 1, + "entropy_mutex.Pointer": 1, + "random": 1, + "random_base": 3, + "xFFFF": 2, + "FFFF": 1, + "StackFrame": 1, + "IsGlobalContext": 1, + "ByteArray*": 1, + "seed": 2, + "random_seed": 1, + "": 1, + "GetDataStartAddress": 1, + "private_random_seed": 1, + "FLAG_use_idle_notification": 1, + "HEAP": 1, + "Lazy": 1, + "init.": 1, + "Add": 1, + "Remove": 1, + "HandleScopeImplementer*": 1, + "handle_scope_implementer": 5, + "CallDepthIsZero": 1, + "IncrementCallDepth": 1, + "DecrementCallDepth": 1, + "union": 1, + "double_value": 1, + "uint64_t_value": 1, + "double_int_union": 2, + "random_bits": 2, + "binary_million": 3, + "r.double_value": 3, + "r.uint64_t_value": 1, + "HeapNumber": 1, + "set_value": 1, + "SetUp": 4, + "FLAG_crankshaft": 1, + "Serializer": 1, + "SupportsCrankshaft": 1, + "PostSetUp": 1, + "RuntimeProfiler": 1, + "GlobalSetUp": 1, + "FLAG_stress_compaction": 1, + "FLAG_force_marking_deque_overflows": 1, + "FLAG_gc_global": 1, + "FLAG_max_new_space_size": 1, + "kPageSizeBits": 1, + "SetUpCaches": 1, + "SetUpJSCallerSavedCodeData": 1, + "SamplerRegistry": 1, + "ExternalReference": 1, + "CallOnce": 1 + }, + "Cuda": { + "#include": 2, + "": 1, + "": 1, + "__global__": 2, + "void": 3, + "vectorAdd": 2, + "(": 20, + "const": 2, + "float": 8, + "*A": 1, + "*B": 1, + "*C": 1, + "int": 14, + "numElements": 4, + ")": 20, + "{": 8, + "i": 5, + "blockDim.x": 3, "*": 2, - "lisp": 1, - "package": 1, - "foo": 2, - "Header": 1, - "comment.": 4, - "*foo*": 1, - "execute": 1, - "compile": 1, - "toplevel": 2, - "load": 1, - "add": 1, - "y": 2, - "key": 1, - "z": 2, - "declare": 1, - "ignore": 1, - "Inline": 1, - "Multi": 1, - "line": 2, - "After": 1 + "blockIdx.x": 2, + "+": 12, + "threadIdx.x": 4, + ";": 30, + "if": 3, + "<": 5, + "C": 1, + "[": 11, + "]": 11, + "A": 1, + "B": 1, + "}": 8, + "main": 1, + "cudaError_t": 1, + "err": 5, + "cudaSuccess": 2, + "threadsPerBlock": 4, + "blocksPerGrid": 1, + "-": 1, + "/": 2, + "<<": 1, + "": 1, + "d_A": 2, + "d_B": 2, + "d_C": 2, + "cudaGetLastError": 1, + "fprintf": 1, + "stderr": 1, + "cudaGetErrorString": 1, + "exit": 1, + "EXIT_FAILURE": 1, + "cudaDeviceReset": 1, + "return": 1, + "scalarProdGPU": 1, + "*d_C": 1, + "*d_A": 1, + "*d_B": 1, + "vectorN": 2, + "elementN": 3, + "//Accumulators": 1, + "cache": 1, + "__shared__": 1, + "accumResult": 5, + "ACCUM_N": 4, + "////////////////////////////////////////////////////////////////////////////": 2, + "for": 5, + "vec": 5, + "gridDim.x": 1, + "vectorBase": 3, + "IMUL": 1, + "vectorEnd": 2, + "////////////////////////////////////////////////////////////////////////": 4, + "iAccum": 10, + "sum": 3, + "pos": 5, + "stride": 5, + "__syncthreads": 1 }, - "Coq": { - "Inductive": 41, - "day": 9, - "Type": 86, - "|": 457, - "monday": 5, - "tuesday": 3, - "wednesday": 3, - "thursday": 3, - "friday": 3, - "saturday": 3, - "sunday": 2, - "day.": 1, - "Definition": 46, - "next_weekday": 3, - "(": 1248, - "d": 6, - ")": 1249, - "match": 70, - "with": 223, - "end.": 52, - "Example": 37, - "test_next_weekday": 1, - "tuesday.": 1, - "Proof.": 208, - "simpl.": 70, - "reflexivity.": 199, - "Qed.": 194, - "bool": 38, - "true": 68, - "false": 48, - "bool.": 1, - "negb": 10, - "b": 89, - "andb": 8, - "b1": 35, - "b2": 23, - "orb": 8, - "test_orb1": 1, - "true.": 16, - "test_orb2": 1, - "false.": 12, - "test_orb3": 1, - "test_orb4": 1, - "nandb": 5, - "end": 16, - "test_nandb1": 1, - "test_nandb2": 1, - "test_nandb3": 1, - "test_nandb4": 1, - "andb3": 5, - "b3": 2, - "test_andb31": 1, - "test_andb32": 1, - "test_andb33": 1, - "test_andb34": 1, - "Module": 11, - "Playground1.": 5, - "nat": 108, - "O": 98, - "S": 186, - "-": 508, - "nat.": 4, - "pred": 3, - "n": 369, - "minustwo": 1, - "Fixpoint": 36, - "evenb": 5, - "oddb": 5, - ".": 433, - "test_oddb1": 1, - "test_oddb2": 1, - "plus": 10, - "m": 201, - "mult": 3, - "minus": 3, - "_": 67, - "exp": 2, - "base": 3, - "power": 2, - "p": 81, - "factorial": 2, - "test_factorial1": 1, - "Notation": 39, - "x": 266, - "y": 116, - "at": 17, - "level": 11, - "left": 6, - "associativity": 7, - "nat_scope.": 3, - "beq_nat": 24, - "forall": 248, - "+": 227, - "n.": 44, - "Theorem": 115, - "plus_O_n": 1, - "intros": 258, - "plus_1_1": 1, - "mult_0_1": 1, - "*": 59, - "O.": 5, - "plus_id_example": 1, - "m.": 21, - "H.": 100, - "rewrite": 241, - "plus_id_exercise": 1, - "o": 25, - "o.": 4, - "H": 76, - "mult_0_plus": 1, - "plus_O_n.": 1, - "mult_1_plus": 1, - "plus_1_1.": 1, - "mult_1": 1, - "induction": 81, - "as": 77, - "[": 170, - "plus_1_neq_0": 1, - "destruct": 94, - "]": 173, - "Case": 51, - "IHn": 12, - "plus_comm": 3, - "plus_distr.": 1, - "beq_nat_refl": 3, - "plus_rearrange": 1, - "q": 15, - "q.": 2, - "assert": 68, - "plus_comm.": 3, - "plus_swap": 2, - "p.": 9, - "plus_assoc.": 4, - "H2": 12, - "H2.": 20, - "plus_swap.": 2, - "<->": 31, - "IHm": 2, - "reflexivity": 16, - "Qed": 23, - "mult_comm": 2, - "Proof": 12, - "0": 5, - "simpl": 116, - "mult_0_r.": 4, - "mult_distr": 1, - "mult_1_distr.": 1, - "mult_1.": 1, - "bad": 1, - "zero_nbeq_S": 1, - "andb_false_r": 1, - "plus_ble_compat_1": 1, - "ble_nat": 6, - "IHp.": 2, - "S_nbeq_0": 1, - "mult_1_1": 1, - "plus_0_r.": 1, - "all3_spec": 1, - "c": 70, - "c.": 5, - "b.": 14, - "Lemma": 51, - "mult_plus_1": 1, - "IHm.": 1, - "mult_mult": 1, - "IHn.": 3, - "mult_plus_1.": 1, - "mult_plus_distr_r": 1, - "mult_mult.": 3, - "H1": 18, - "plus_assoc": 1, - "H1.": 31, - "H3": 4, - "H3.": 5, - "mult_assoc": 1, - "mult_plus_distr_r.": 1, - "bin": 9, - "BO": 4, - "D": 9, - "M": 4, - "bin.": 1, - "incbin": 2, - "bin2un": 3, - "bin_comm": 1, - "End": 15, - "Require": 17, - "Import": 11, - "List": 2, - "Multiset": 2, - "PermutSetoid": 1, - "Relations": 2, - "Sorting.": 1, - "Section": 4, - "defs.": 2, - "Variable": 7, - "A": 113, - "Type.": 3, - "leA": 25, - "relation": 19, - "A.": 6, - "eqA": 29, - "Let": 8, - "gtA": 1, - "y.": 15, - "Hypothesis": 7, - "leA_dec": 4, - "{": 39, - "}": 35, - "eqA_dec": 26, - "leA_refl": 1, - "leA_trans": 2, - "z": 14, - "z.": 6, - "leA_antisym": 1, - "Hint": 9, - "Resolve": 5, - "leA_refl.": 1, - "Immediate": 1, - "leA_antisym.": 1, - "emptyBag": 4, - "EmptyBag": 2, - "singletonBag": 10, - "SingletonBag": 2, - "eqA_dec.": 2, - "Tree": 24, - "Tree_Leaf": 9, - "Tree_Node": 11, - "Tree.": 1, - "leA_Tree": 16, - "a": 207, - "t": 93, - "True": 1, - "T1": 25, - "T2": 20, - "leA_Tree_Leaf": 5, - "Tree_Leaf.": 1, - ";": 375, - "auto": 73, - "datatypes.": 47, - "leA_Tree_Node": 1, - "G": 6, - "is_heap": 18, - "Prop": 17, - "nil_is_heap": 5, - "node_is_heap": 7, - "invert_heap": 3, - "/": 41, - "T2.": 1, - "inversion": 104, - "is_heap_rect": 1, - "P": 32, - "T": 49, - "T.": 9, - "simple": 7, - "PG": 2, - "PD": 2, - "PN.": 2, - "elim": 21, - "H4": 7, - "intros.": 27, - "apply": 340, - "X0": 2, - "is_heap_rec": 1, - "Set": 4, - "X": 191, - "low_trans": 3, - "merge_lem": 3, - "l1": 89, - "l2": 73, - "list": 78, - "merge_exist": 5, - "l": 379, - "Sorted": 5, - "meq": 15, - "list_contents": 30, - "munion": 18, - "HdRel": 4, - "l2.": 8, - "Morphisms.": 2, - "Instance": 7, - "Equivalence": 2, - "@meq": 4, - "constructor": 6, - "red.": 1, - "meq_trans.": 1, - "Defined.": 1, - "Proper": 5, - "@munion": 1, - "now": 24, - "meq_congr.": 1, - "merge": 5, - "fix": 2, - "l1.": 5, - "rename": 2, - "into": 2, - "l.": 26, - "revert": 5, - "H0.": 24, - "a0": 15, - "l0": 7, - "Sorted_inv": 2, - "in": 221, - "H0": 16, - "clear": 7, - "merge0.": 2, - "using": 18, - "cons_sort": 2, - "cons_leA": 2, - "munion_ass.": 2, - "cons_leA.": 2, - "@HdRel_inv": 2, - "trivial": 15, - "merge0": 1, - "setoid_rewrite": 2, - "munion_ass": 1, - "munion_comm.": 2, - "repeat": 11, - "munion_comm": 1, - "contents": 12, - "multiset": 2, - "t1": 48, - "t2": 51, - "equiv_Tree": 1, - "insert_spec": 3, - "insert_exist": 4, - "insert": 2, - "unfold": 58, - "T0": 2, - "treesort_twist1": 1, - "T3": 2, - "HeapT3": 1, - "ConT3": 1, - "LeA.": 1, - "LeA": 1, - "treesort_twist2": 1, - "build_heap": 3, - "heap_exist": 3, - "list_to_heap": 2, - "nil": 46, - "exact": 4, - "nil_is_heap.": 1, - "i": 11, - "meq_trans": 10, - "meq_right": 2, - "meq_sym": 2, - "flat_spec": 3, - "flat_exist": 3, - "heap_to_list": 2, - "h": 14, - "s1": 20, - "i1": 15, - "m1": 1, - "s2": 2, - "i2": 10, - "m2.": 1, - "meq_congr": 1, - "munion_rotate.": 1, - "treesort": 1, - "&": 21, - "permutation": 43, - "intro": 27, - "permutation.": 1, - "exists": 60, - "Export": 10, - "SfLib.": 2, - "AExp.": 2, - "aexp": 30, - "ANum": 18, - "APlus": 14, - "AMinus": 9, - "AMult": 9, - "aexp.": 1, - "bexp": 22, - "BTrue": 10, - "BFalse": 11, - "BEq": 9, - "BLe": 9, - "BNot": 9, - "BAnd": 10, - "bexp.": 1, - "aeval": 46, - "e": 53, - "a1": 56, - "a2": 62, - "test_aeval1": 1, - "beval": 16, - "optimize_0plus": 15, - "e2": 54, - "e1": 58, - "test_optimize_0plus": 1, - "optimize_0plus_sound": 4, - "e.": 15, - "e1.": 1, - "SCase": 24, - "SSCase": 3, - "IHe2.": 10, - "IHe1.": 11, - "aexp_cases": 3, - "try": 17, - "IHe1": 6, - "IHe2": 6, - "optimize_0plus_all": 2, - "Tactic": 9, - "tactic": 9, - "first": 18, - "ident": 9, - "Case_aux": 38, - "optimize_0plus_all_sound": 1, - "bexp_cases": 4, - "optimize_and": 5, - "optimize_and_sound": 1, - "IHe": 2, - "aevalR_first_try.": 2, - "aevalR": 18, - "E_Anum": 1, - "E_APlus": 2, - "n1": 45, - "n2": 41, - "E_AMinus": 2, - "E_AMult": 2, - "Reserved": 4, - "E_ANum": 1, - "where": 6, - "bevalR": 11, - "E_BTrue": 1, - "E_BFalse": 1, - "E_BEq": 1, - "E_BLe": 1, - "E_BNot": 1, - "E_BAnd": 1, - "aeval_iff_aevalR": 9, - "split.": 17, - "subst": 7, - "generalize": 13, - "dependent": 6, - "IHa1": 1, - "IHa2": 1, - "beval_iff_bevalR": 1, - "*.": 110, - "subst.": 43, - "IHbevalR": 1, - "IHbevalR1": 1, - "IHbevalR2": 1, - "a.": 6, - "constructor.": 16, - "<": 76, - "remember": 12, - "IHa.": 1, - "IHa1.": 1, - "IHa2.": 1, - "silly_presburger_formula": 1, - "<=>": 12, - "3": 2, - "omega": 7, - "Id": 7, - "id": 7, - "id.": 1, - "beq_id": 14, - "id1": 2, - "id2": 2, - "beq_id_refl": 1, - "i.": 2, - "beq_nat_refl.": 1, - "beq_id_eq": 4, - "i2.": 8, - "i1.": 3, - "beq_nat_eq": 2, - "beq_id_false_not_eq": 1, - "C.": 3, - "n0": 5, - "beq_false_not_eq": 1, - "not_eq_beq_id_false": 1, - "not_eq_beq_false.": 1, - "beq_nat_sym": 2, - "AId": 4, - "com_cases": 1, - "SKIP": 5, - "IFB": 4, - "WHILE": 5, - "c1": 14, - "c2": 9, - "e3": 1, - "cl": 1, - "st": 113, - "E_IfTrue": 2, - "THEN": 3, - "ELSE": 3, - "FI": 3, - "E_WhileEnd": 2, - "DO": 4, - "END": 4, - "E_WhileLoop": 2, - "ceval_cases": 1, - "E_Skip": 1, - "E_Ass": 1, - "E_Seq": 1, - "E_IfFalse": 1, - "assignment": 1, - "command": 2, - "if": 10, - "st1": 2, - "IHi1": 3, - "Heqst1": 1, - "Hceval.": 4, - "Hceval": 2, - "assumption.": 61, - "bval": 2, - "ceval_step": 3, - "Some": 21, - "ceval_step_more": 7, - "x1.": 3, - "omega.": 7, - "x2.": 2, - "IHHce.": 2, - "%": 3, - "IHHce1.": 1, - "IHHce2.": 1, - "x0": 14, - "plus2": 1, - "nx": 3, - "Y": 38, - "ny": 2, - "XtimesYinZ": 1, - "Z": 11, - "ny.": 1, - "loop": 2, - "contra.": 19, - "loopdef.": 1, - "Heqloopdef.": 8, - "contra1.": 1, - "IHcontra2.": 1, - "no_whiles": 15, - "com": 5, - "ct": 2, - "cf": 2, - "no_Whiles": 10, - "noWhilesSKIP": 1, - "noWhilesAss": 1, - "noWhilesSeq": 1, - "noWhilesIf": 1, - "no_whiles_eqv": 1, - "noWhilesSKIP.": 1, - "noWhilesAss.": 1, - "noWhilesSeq.": 1, - "IHc1.": 2, - "auto.": 47, - "eauto": 10, - "andb_true_elim1": 4, - "IHc2.": 2, - "andb_true_elim2": 4, - "noWhilesIf.": 1, - "andb_true_intro.": 2, - "no_whiles_terminate": 1, - "state": 6, - "st.": 7, - "update": 2, - "IHc1": 2, - "IHc2": 2, - "H5.": 1, - "x1": 11, - "r": 11, - "r.": 3, - "symmetry": 4, - "Heqr.": 1, - "H4.": 2, - "s": 13, - "Heqr": 3, - "H8.": 1, - "H10": 1, - "assumption": 10, - "beval_short_circuit": 5, - "beval_short_circuit_eqv": 1, - "sinstr": 8, - "SPush": 8, - "SLoad": 6, - "SPlus": 10, - "SMinus": 11, - "SMult": 11, - "sinstr.": 1, - "s_execute": 21, - "stack": 7, - "prog": 2, - "cons": 26, - "al": 3, - "bl": 3, - "s_execute1": 1, - "empty_state": 2, - "s_execute2": 1, - "s_compile": 36, - "v": 28, - "s_compile1": 1, - "execute_theorem": 1, - "other": 20, - "other.": 4, - "app_ass.": 6, - "s_compile_correct": 1, - "app_nil_end.": 1, - "execute_theorem.": 1, - "Eqdep_dec.": 1, - "Arith.": 2, - "eq_rect_eq_nat": 2, - "Q": 3, - "eq_rect": 3, - "h.": 1, - "K_dec_set": 1, - "eq_nat_dec.": 1, - "Scheme": 1, - "le_ind": 1, - "replace": 4, - "le_n": 4, - "fun": 17, - "refl_equal": 4, - "pattern": 2, - "case": 2, - "trivial.": 14, - "contradiction": 8, - "le_Sn_n": 5, - "le_S": 6, - "Heq": 8, - "m0": 1, - "HeqS": 3, - "injection": 4, - "HeqS.": 2, - "eq_rect_eq_nat.": 1, - "IHp": 2, - "dep_pair_intro": 2, - "Hx": 20, - "Hy": 14, - "<=n),>": 1, - "x=": 1, - "exist": 7, - "Hy.": 3, - "Heq.": 6, - "le_uniqueness_proof": 1, - "Hy0": 1, - "card": 2, - "f": 108, - "card_interval": 1, - "<=n}>": 1, - "proj1_sig": 1, - "proj2_sig": 1, - "Hp": 5, - "Hq": 3, - "Hpq.": 1, - "Hmn.": 1, - "Hmn": 1, - "interval_dec": 1, - "left.": 3, - "dep_pair_intro.": 3, - "right.": 9, - "discriminate": 3, - "le_Sn_le": 2, - "eq_S.": 1, - "Hneq.": 2, - "card_inj_aux": 1, - "g": 6, - "False.": 1, - "Hfbound": 1, - "Hfinj": 1, - "Hgsurj.": 1, - "Hgsurj": 3, - "Hfx": 2, - "le_n_O_eq.": 2, - "Hfbound.": 2, - "Hx.": 5, - "le_lt_dec": 9, - "xSn": 21, - "then": 9, - "else": 9, - "is": 4, - "bounded": 1, - "injective": 6, - "Hlefx": 1, - "Hgefx": 1, - "Hlefy": 1, - "Hgefy": 1, - "Hfinj.": 3, - "sym_not_eq.": 2, - "Heqf.": 2, - "Hneqy.": 2, - "le_lt_trans": 2, - "le_O_n.": 2, - "le_neq_lt": 2, - "Hneqx.": 2, - "pred_inj.": 1, - "lt_O_neq": 2, - "neq_dep_intro": 2, - "inj_restrict": 1, - "Heqf": 1, - "surjective": 1, - "Hlep.": 3, - "Hle": 1, - "Hlt": 3, - "Hfsurj": 2, - "le_n_S": 1, - "Hlep": 4, - "Hneq": 7, - "Heqx.": 2, - "Heqx": 4, - "Hle.": 1, - "le_not_lt": 1, - "lt_trans": 4, - "lt_n_Sn.": 1, - "Hlt.": 1, - "lt_irrefl": 2, - "lt_le_trans": 1, - "pose": 2, - "let": 3, - "Hneqx": 1, - "Hneqy": 1, - "Heqg": 1, - "Hdec": 3, - "Heqy": 1, - "Hginj": 1, - "HSnx.": 1, - "HSnx": 1, - "interval_discr": 1, - "<=m}>": 1, - "card_inj": 1, - "interval_dec.": 1, - "card_interval.": 2, - "Basics.": 2, - "NatList.": 2, - "natprod": 5, - "pair": 7, - "natprod.": 1, - "fst": 3, - "snd": 3, - "swap_pair": 1, - "surjective_pairing": 1, - "count": 7, - "remove_one": 3, - "test_remove_one1": 1, - "remove_all": 2, - "bag": 3, - "app_ass": 1, - "l3": 12, - "natlist": 7, - "l3.": 1, - "remove_decreases_count": 1, - "s.": 4, - "ble_n_Sn.": 1, - "IHs.": 2, - "natoption": 5, - "None": 9, - "natoption.": 1, - "index": 3, - "option_elim": 2, - "hd_opt": 8, - "test_hd_opt1": 2, - "None.": 2, - "test_hd_opt2": 2, - "option_elim_hd": 1, - "head": 1, - "beq_natlist": 5, - "v1": 7, - "r1": 2, - "v2": 2, - "r2": 2, - "test_beq_natlist1": 1, - "test_beq_natlist2": 1, - "beq_natlist_refl": 1, - "IHl.": 7, - "silly1": 1, - "eq1": 6, - "eq2.": 9, - "eq2": 1, - "silly2a": 1, - "eq1.": 5, - "silly_ex": 1, - "silly3": 1, - "symmetry.": 2, - "rev_exercise": 1, - "rev_involutive.": 1, - "Setoid": 1, - "Compare_dec": 1, - "ListNotations.": 1, - "Implicit": 15, - "Arguments.": 2, - "Permutation.": 2, - "Permutation": 38, - "perm_nil": 1, - "perm_skip": 1, - "Local": 7, - "Constructors": 3, - "Permutation_nil": 2, - "HF.": 3, - "@nil": 1, - "HF": 2, - "||": 1, - "Permutation_nil_cons": 1, - "discriminate.": 2, - "Permutation_refl": 1, - "Permutation_sym": 1, - "Hperm": 7, - "perm_trans": 1, - "Permutation_trans": 4, - "Logic.eq": 2, - "@Permutation": 5, - "iff": 1, - "@In": 1, - "red": 6, - "Permutation_in.": 2, - "Permutation_app_tail": 2, - "tl": 8, - "eapply": 8, - "Permutation_app_head": 2, - "app_comm_cons": 5, - "Permutation_app": 3, - "Hpermmm": 1, - "idtac": 1, - "Global": 5, - "@app": 1, - "Permutation_app.": 1, - "Permutation_add_inside": 1, - "Permutation_cons_append": 1, - "IHl": 8, - "Permutation_cons_append.": 3, - "Permutation_app_comm": 3, - "app_nil_r": 1, - "app_assoc": 2, - "Permutation_cons_app": 3, - "Permutation_middle": 2, - "Permutation_rev": 3, - "rev": 7, - "1": 1, - "@rev": 1, - "2": 1, - "Permutation_length": 2, - "length": 21, - "transitivity": 4, - "@length": 1, - "Permutation_length.": 1, - "Permutation_ind_bis": 2, - "Hnil": 1, - "Hskip": 3, - "Hswap": 2, - "Htrans.": 1, - "Htrans": 1, - "eauto.": 7, - "Ltac": 1, - "break_list": 5, - "Permutation_nil_app_cons": 1, - "l4": 3, - "P.": 5, - "IH": 3, - "Permutation_middle.": 3, - "perm_swap.": 2, - "perm_swap": 1, - "eq_refl": 2, - "In_split": 1, - "Permutation_app_inv": 1, - "NoDup": 4, - "incl": 3, - "N.": 1, - "E": 7, - "Ha": 6, - "In": 6, - "N": 1, - "Hal": 1, - "Hl": 1, - "exfalso.": 1, - "NoDup_Permutation_bis": 2, - "inversion_clear": 6, - "intuition.": 2, - "Permutation_NoDup": 1, - "Permutation_map": 1, - "Hf": 15, - "injective_bounded_surjective": 1, - "set": 1, - "seq": 2, - "map": 4, - "x.": 3, - "in_map_iff.": 2, - "in_seq": 4, - "arith": 4, - "NoDup_cardinal_incl": 1, - "injective_map_NoDup": 2, - "seq_NoDup": 1, - "map_length": 1, - "by": 7, - "in_map_iff": 1, - "split": 14, - "nat_bijection_Permutation": 1, - "BD.": 1, - "seq_NoDup.": 1, - "map_length.": 1, - "Injection": 1, - "Permutation_alt": 1, - "Alternative": 1, - "characterization": 1, - "of": 4, - "via": 1, - "nth_error": 7, - "and": 1, - "nth": 2, - "adapt": 4, - "adapt_injective": 1, - "adapt.": 2, - "EQ.": 2, - "LE": 11, - "LT": 14, - "eq_add_S": 2, - "Hf.": 1, - "Lt.le_lt_or_eq": 3, - "LE.": 3, - "EQ": 8, - "lt": 3, - "LT.": 5, - "Lt.S_pred": 3, - "Lt.lt_not_le": 2, - "adapt_ok": 2, - "nth_error_app1": 1, - "nth_error_app2": 1, - "arith.": 8, - "Minus.minus_Sn_m": 1, - "Permutation_nth_error": 2, - "IHP": 2, - "IHP2": 1, - "Hg": 2, - "E.": 2, - "L12": 2, - "app_length.": 2, - "plus_n_Sm.": 1, - "adapt_injective.": 1, - "nth_error_None": 4, - "Hn": 1, - "Hf2": 1, - "Hf3": 2, - "Lt.le_or_lt": 1, - "Lt.lt_irrefl": 2, - "Lt.lt_le_trans": 2, - "Hf1": 1, - "do": 4, - "congruence.": 1, - "Permutation_alt.": 1, - "Permutation_app_swap": 1, - "only": 3, - "parsing": 3, - "Omega": 1, - "SetoidList.": 1, - "nil.": 2, - "..": 4, - "Permut.": 1, - "eqA_equiv": 1, - "eqA.": 1, - "list_contents_app": 5, - "permut_refl": 1, - "permut_sym": 4, - "permut_trans": 5, - "permut_cons_eq": 3, - "meq_left": 1, - "meq_singleton": 1, - "permut_cons": 5, - "permut_app": 1, - "specialize": 6, - "a0.": 1, - "decide": 1, - "permut_add_inside_eq": 1, - "permut_add_cons_inside": 3, - "permut_add_inside": 1, - "permut_middle": 1, - "permut_refl.": 5, - "permut_sym_app": 1, - "permut_rev": 1, - "permut_add_cons_inside.": 1, - "app_nil_end": 1, - "results": 1, - "permut_conv_inv": 1, - "plus_reg_l.": 1, - "permut_app_inv1": 1, - "list_contents_app.": 1, - "plus_reg_l": 1, - "multiplicity": 6, - "Fact": 3, - "if_eqA_then": 1, - "B": 6, - "if_eqA_refl": 3, - "decide_left": 1, - "if_eqA": 1, - "contradict": 3, - "A1": 2, - "if_eqA_rewrite_r": 1, - "A2": 4, - "Hxx": 1, - "multiplicity_InA": 4, - "InA": 8, - "multiplicity_InA_O": 2, - "multiplicity_InA_S": 1, - "multiplicity_NoDupA": 1, - "NoDupA": 3, - "NEQ": 1, - "compatible": 1, - "permut_InA_InA": 3, - "multiplicity_InA.": 1, - "meq.": 2, - "permut_cons_InA": 3, - "permut_nil": 3, - "Abs": 2, - "permut_length_1": 1, - "permut_length_2": 1, - "permut_length_1.": 2, - "@if_eqA_rewrite_l": 2, - "permut_length": 1, - "InA_split": 1, - "h2": 1, - "plus_n_Sm": 1, - "f_equal.": 1, - "app_length": 1, - "IHl1": 1, - "permut_remove_hd": 1, - "f_equal": 1, - "if_eqA_rewrite_l": 1, - "NoDupA_equivlistA_permut": 1, - "Equivalence_Reflexive.": 1, - "change": 1, - "Equivalence_Reflexive": 1, - "Forall2": 2, - "permutation_Permutation": 1, - "Forall2.": 1, - "proof": 1, - "IHA": 2, - "Forall2_app_inv_r": 1, - "Hl1": 1, - "Hl2": 1, - "Forall2_app": 1, - "Forall2_cons": 1, - "Permutation_impl_permutation": 1, - "permut_eqA": 1, - "Permut_permut.": 1, - "permut_right": 1, - "permut_tran": 1, - "Lists.": 1, - "X.": 4, - "app": 5, - "snoc": 9, - "Arguments": 11, - "list123": 1, - "right": 2, - "test_repeat1": 1, - "nil_app": 1, - "rev_snoc": 1, - "snoc_with_append": 1, - "v.": 1, - "IHl1.": 1, - "prod": 3, - "Y.": 1, - "type_scope.": 1, - "combine": 3, - "lx": 4, - "ly": 4, - "tx": 2, - "ty": 7, - "tp": 2, - "option": 6, - "xs": 7, - "plus3": 2, - "prod_curry": 3, - "prod_uncurry": 3, - "uncurry_uncurry": 1, - "curry_uncurry": 1, - "filter": 3, - "test": 4, - "countoddmembers": 1, - "k": 7, - "fmostlytrue": 5, - "override": 5, - "ftrue": 1, - "override_example1": 1, - "override_example2": 1, - "override_example3": 1, - "override_example4": 1, - "override_example": 1, - "constfun": 1, - "unfold_example_bad": 1, - "plus3.": 1, - "override_eq": 1, - "f.": 1, - "override.": 2, - "override_neq": 1, - "x2": 3, - "k1": 5, - "k2": 4, - "eq.": 11, - "silly4": 1, - "silly5": 1, - "sillyex1": 1, - "j": 6, - "j.": 1, - "silly6": 1, - "silly7": 1, - "sillyex2": 1, - "assertion": 3, - "Hl.": 1, - "eq": 4, - "beq_nat_O_l": 1, - "beq_nat_O_r": 1, - "double_injective": 1, - "double": 2, - "fold_map": 2, - "fold": 1, - "total": 2, - "fold_map_correct": 1, - "fold_map.": 1, - "forallb": 4, - "existsb": 3, - "existsb2": 2, - "existsb_correct": 1, - "existsb2.": 1, - "index_okx": 1, - "mumble": 5, - "mumble.": 1, - "grumble": 3, - "Logic.": 1, - "Prop.": 1, - "partial_function": 6, - "R": 54, - "y1": 6, - "y2": 5, - "y2.": 3, - "next_nat_partial_function": 1, - "next_nat.": 1, - "partial_function.": 5, - "Q.": 2, - "le_not_a_partial_function": 1, - "le": 1, - "not.": 3, - "Nonsense.": 4, - "le_n.": 6, - "le_S.": 4, - "total_relation_not_partial_function": 1, - "total_relation": 1, - "total_relation1.": 2, - "empty_relation_not_partial_funcion": 1, - "empty_relation.": 1, - "reflexive": 5, - "le_reflexive": 1, - "le.": 4, - "reflexive.": 1, - "transitive": 8, - "le_trans": 4, - "Hnm": 3, - "Hmo.": 4, - "Hnm.": 3, - "IHHmo.": 1, - "lt.": 2, - "transitive.": 1, - "Hm": 1, - "le_S_n": 2, - "Sn_le_Sm__n_le_m.": 1, - "not": 1, - "TODO": 1, - "Hmo": 1, - "symmetric": 2, - "antisymmetric": 3, - "le_antisymmetric": 1, - "Sn_le_Sm__n_le_m": 2, - "IHb": 1, - "equivalence": 1, - "order": 2, - "preorder": 1, - "le_order": 1, - "order.": 1, - "le_reflexive.": 1, - "le_antisymmetric.": 1, - "le_trans.": 1, - "clos_refl_trans": 8, - "rt_step": 1, - "rt_refl": 1, - "rt_trans": 3, - "next_nat_closure_is_le": 1, - "next_nat": 1, - "rt_refl.": 2, - "IHle.": 1, - "rt_step.": 2, - "nn.": 1, - "IHclos_refl_trans1.": 2, - "IHclos_refl_trans2.": 2, - "refl_step_closure": 11, - "rsc_refl": 1, - "rsc_step": 4, - "rsc_R": 2, - "rsc_refl.": 4, - "rsc_trans": 4, - "IHrefl_step_closure": 1, - "rtc_rsc_coincide": 1, - "IHrefl_step_closure.": 1, - "Imp.": 1, - "Relations.": 1, - "tm": 43, - "tm_const": 45, - "tm_plus": 30, - "tm.": 3, - "SimpleArith0.": 2, - "eval": 8, - "SimpleArith1.": 2, - "E_Const": 2, - "E_Plus": 2, - "test_step_1": 1, - "ST_Plus1.": 2, - "ST_PlusConstConst.": 3, - "test_step_2": 1, - "ST_Plus2.": 2, - "step_deterministic": 1, - "step.": 3, - "Hy1": 2, - "Hy2.": 2, - "step_cases": 4, - "Hy2": 3, - "SCase.": 3, - "Hy1.": 5, - "IHHy1": 2, - "SimpleArith2.": 1, - "value": 25, - "v_const": 4, - "step": 9, - "ST_PlusConstConst": 3, - "ST_Plus1": 2, - "strong_progress": 2, - "value_not_same_as_normal_form": 2, - "normal_form": 3, - "t.": 4, - "normal_form.": 2, - "v_funny.": 1, - "Temp1.": 1, - "Temp2.": 1, - "ST_Funny": 1, - "Temp3.": 1, - "Temp4.": 2, - "tm_true": 8, - "tm_false": 5, - "tm_if": 10, - "v_true": 1, - "v_false": 1, - "tm_false.": 3, - "ST_IfTrue": 1, - "ST_IfFalse": 1, - "ST_If": 1, - "t3": 6, - "bool_step_prop4": 1, - "bool_step_prop4_holds": 1, - "bool_step_prop4.": 2, - "ST_ShortCut.": 1, - "IHt1.": 1, - "t2.": 4, - "t3.": 2, - "ST_If.": 2, - "Temp5.": 1, - "stepmany": 4, - "normalizing": 1, - "IHt2": 3, - "H11": 2, - "H12": 2, - "H21": 3, - "H22": 2, - "nf_same_as_value": 3, - "H12.": 1, - "H22.": 1, - "H11.": 1, - "stepmany_congr_1": 1, - "stepmany_congr2": 1, - "eval__value": 1, - "HE.": 1, - "eval_cases": 1, - "HE": 1, - "v_const.": 1, - "Sorted.": 1, - "Mergesort.": 1, - "STLC.": 1, - "ty_Bool": 10, - "ty_arrow": 7, - "ty.": 2, - "tm_var": 6, - "tm_app": 7, - "tm_abs": 9, - "idB": 2, - "idBB": 2, - "idBBBB": 2, - "v_abs": 1, - "t_true": 1, - "t_false": 1, - "value.": 1, - "ST_App2": 1, - "step_example3": 1, - "idB.": 1, - "rsc_step.": 2, - "ST_App1.": 2, - "ST_AppAbs.": 3, - "v_abs.": 2, - "context": 1, - "partial_map": 4, - "Context.": 1, - "empty": 3, - "extend": 1, - "Gamma": 10, - "has_type": 4, - "appears_free_in": 1, - "S.": 1, - "HT": 1, - "T_Var.": 1, - "extend_neq": 1, - "Heqe.": 3, - "T_Abs.": 1, - "context_invariance...": 2, - "Hafi.": 2, - "extend.": 2, - "IHt.": 1, - "Coiso1.": 2, - "Coiso2.": 3, - "HeqCoiso1.": 1, - "HeqCoiso2.": 1, - "beq_id_false_not_eq.": 1, - "ex_falso_quodlibet.": 1, - "preservation": 1, - "HT.": 1, - "substitution_preserves_typing": 1, - "T11.": 4, - "HT1.": 1, - "T_App": 2, - "IHHT1.": 1, - "IHHT2.": 1, - "tm_cases": 1, - "Ht": 1, - "Ht.": 3, - "IHt1": 2, - "T11": 2, - "ST_App2.": 1, - "ty_Bool.": 1, - "IHt3": 1, - "ST_IfTrue.": 1, - "ST_IfFalse.": 1, - "types_unique": 1, - "T12": 2, - "IHhas_type.": 1, - "IHhas_type1.": 1, - "IHhas_type2.": 1 - }, - "Creole": { - "Creole": 6, - "is": 3, - "a": 2, - "-": 5, - "to": 2, - "HTML": 1, - "converter": 2, - "for": 1, - "the": 5, - "lightweight": 1, - "markup": 1, - "language": 1, - "(": 5, - "http": 4, - "//wikicreole.org/": 1, - ")": 5, - ".": 1, - "Github": 1, - "uses": 1, + "Gosu": { + "package": 2, + "example": 2, + "uses": 2, + "java.util.*": 1, + "java.io.File": 1, + "class": 1, + "Person": 7, + "extends": 1, + "Contact": 1, + "implements": 1, + "IEmailable": 2, + "{": 28, + "var": 10, + "_name": 4, + "String": 6, + "_age": 3, + "Integer": 3, + "as": 3, + "Age": 1, + "_relationship": 2, + "Relationship": 3, + "readonly": 1, + "RelationshipOfPerson": 1, + "delegate": 1, + "_emailHelper": 2, + "represents": 1, + "enum": 1, + "FRIEND": 1, + "FAMILY": 1, + "BUSINESS_CONTACT": 1, + "}": 28, + "static": 7, + "ALL_PEOPLE": 2, + "new": 6, + "HashMap": 1, + "": 1, + "(": 53, + ")": 54, + "construct": 1, + "name": 4, + "age": 4, + "relationship": 2, + "EmailHelper": 1, "this": 1, - "render": 1, - "*.creole": 1, - "files.": 1, - "Project": 1, - "page": 1, - "on": 2, - "github": 1, - "*": 5, - "//github.com/minad/creole": 1, - "Travis": 1, - "CI": 1, - "https": 1, - "//travis": 1, - "ci.org/minad/creole": 1, - "RDOC": 1, - "//rdoc.info/projects/minad/creole": 1, - "INSTALLATION": 1, - "{": 6, - "gem": 1, - "install": 1, - "creole": 1, - "}": 6, - "SYNOPSIS": 1, - "require": 1, - "html": 1, - "Creole.creolize": 1, - "BUGS": 1, - "If": 1, - "you": 1, - "found": 1, - "bug": 1, - "please": 1, - "report": 1, - "it": 1, - "at": 1, - "project": 1, - "s": 1, - "tracker": 1, - "GitHub": 1, - "//github.com/minad/creole/issues": 1, - "AUTHORS": 1, - "Lars": 2, - "Christensen": 2, - "larsch": 1, - "Daniel": 2, - "Mendler": 1, - "minad": 1, - "LICENSE": 1, - "Copyright": 1, - "c": 1, - "Mendler.": 1, - "It": 1, - "free": 1, - "software": 1, + "property": 2, + "get": 1, + "Name": 3, + "return": 4, + "set": 1, + "override": 1, + "function": 11, + "getEmailName": 1, + "incrementAge": 1, + "+": 2, + "@Deprecated": 1, + "printPersonInfo": 1, + "print": 3, + "addPerson": 4, + "p": 5, + "if": 4, + "ALL_PEOPLE.containsKey": 2, + ".Name": 1, + "throw": 1, + "IllegalArgumentException": 1, + "[": 4, + "p.Name": 2, + "]": 4, + "addAllPeople": 1, + "contacts": 2, + "List": 1, + "": 1, + "for": 2, + "contact": 3, + "in": 3, + "typeis": 1, "and": 1, - "may": 1, - "be": 1, - "redistributed": 1, - "under": 1, - "terms": 1, - "specified": 1, - "in": 1, - "README": 1, - "file": 1, - "of": 1, - "Ruby": 1, - "distribution.": 1 + "not": 1, + "contact.Name": 1, + "getAllPeopleOlderThanNOrderedByName": 1, + "int": 2, + "allPeople": 1, + "ALL_PEOPLE.Values": 3, + "allPeople.where": 1, + "-": 3, + "p.Age": 1, + ".orderBy": 1, + "loadPersonFromDB": 1, + "id": 1, + "using": 2, + "conn": 1, + "DBConnectionManager.getConnection": 1, + "stmt": 1, + "conn.prepareStatement": 1, + "stmt.setInt": 1, + "result": 1, + "stmt.executeQuery": 1, + "result.next": 1, + "result.getString": 2, + "result.getInt": 1, + "Relationship.valueOf": 2, + "loadFromFile": 1, + "file": 3, + "File": 2, + "file.eachLine": 1, + "line": 1, + "line.HasContent": 1, + "line.toPerson": 1, + "saveToFile": 1, + "writer": 2, + "FileWriter": 1, + "PersonCSVTemplate.renderToString": 1, + "PersonCSVTemplate.render": 1, + "hello": 1, + "enhancement": 1, + "Hello": 2, + "toPerson": 1, + "vals": 4, + "this.split": 1, + "<%!-->": 1, + "defined": 1, + "gst": 1, + "<": 1, + "%": 2, + "@": 1, + "params": 1, + "users": 2, + "Collection": 1, + "": 1, + "<%>": 2, + "user": 1, + "user.LastName": 1, + "user.FirstName": 1, + "user.Department": 1 }, "Crystal": { "SHEBANG#!bin/crystal": 2, @@ -16546,19 +19215,13 @@ "describe": 2, "do": 26, "it": 21, - "run": 14, + "assert_type": 7, "(": 201, ")": 201, - ".to_i.should": 11, - "eq": 16, - "end": 135, - ".to_f32.should": 2, - ".to_b.should": 1, - "be_true": 1, - "assert_type": 7, "{": 7, "int32": 8, "}": 7, + "end": 135, "union_of": 1, "char": 1, "result": 3, @@ -16573,6 +19236,7 @@ "NonGenericClassType": 1, "foo.instance_vars": 1, ".type.should": 3, + "eq": 16, "mod.int32": 1, "GenericClassType": 2, "foo_i32": 4, @@ -16785,7 +19449,2149 @@ "Alias": 1, "TupleIndexer": 1, "Attribute": 1, - "exps.map": 1 + "exps.map": 1, + "run": 14, + ".to_i.should": 11, + ".to_f32.should": 2, + ".to_b.should": 1, + "be_true": 1 + }, + "RMarkdown": { + "Some": 1, + "text.": 1, + "##": 1, + "A": 1, + "graphic": 1, + "in": 1, + "R": 1, + "{": 1, + "r": 1, + "}": 1, + "plot": 1, + "(": 3, + ")": 3, + "hist": 1, + "rnorm": 1 + }, + "E": { + "#File": 1, + "objects": 1, + "for": 3, + "hardwired": 1, + "files": 1, + "def": 24, + "file1": 1, + "": 1, + "file2": 1, + "": 1, + "#Using": 2, + "a": 4, + "variable": 1, + "file": 3, + "name": 4, + "filePath": 2, + "file3": 1, + "": 1, + "[": 10, + "]": 10, + "single": 1, + "character": 1, + "to": 27, + "specify": 1, + "Windows": 1, + "drive": 1, + "file4": 1, + "": 1, + "file5": 1, + "": 1, + "file6": 1, + "": 1, + "when": 2, + "(": 65, + "tempVow": 2, + ")": 64, + "-": 2, + "{": 57, + "#...use": 1, + "}": 57, + "catch": 2, + "prob": 2, + "#....": 1, + "report": 1, + "problem": 1, + "finally": 1, + "#....log": 1, + "event": 1, + "makeVOCPair": 1, + "brandName": 3, + "String": 1, + "near": 6, + "var": 6, + "myTempContents": 6, + "none": 2, + "brand": 5, + "__printOn": 4, + "out": 4, + "TextWriter": 4, + "void": 5, + "out.print": 4, + "ProveAuth": 2, + "<$brandName>": 3, + "prover": 1, + "getBrand": 4, + "return": 19, + "coerce": 2, + "specimen": 2, + "optEjector": 3, + "sealedBox": 2, + "offerContent": 1, + "CheckAuth": 2, + "checker": 3, + "template": 1, + "match": 4, + "get": 2, + "authList": 2, + "any": 2, + "specimenBox": 2, + "null": 1, + "if": 2, + "specimenBox.__respondsTo": 1, + "specimenBox.offerContent": 1, + "else": 1, + "auth": 3, + "in": 1, + "throw.eject": 1, + "Unmatched": 1, + "authorization": 1, + "__respondsTo": 2, + "_": 3, + "true": 1, + "false": 1, + "__getAllegedType": 1, + "null.__getAllegedType": 1, + "makeVehicle": 3, + "self": 1, + "vehicle": 2, + "milesTillEmpty": 1, + "self.milesPerGallon": 1, + "*": 1, + "self.getFuelRemaining": 1, + "makeCar": 4, + "fuelRemaining": 4, + "car": 8, + "extends": 2, + "milesPerGallon": 2, + "getFuelRemaining": 2, + "makeJet": 1, + "jet": 3, + "println": 2, + "The": 2, + "can": 1, + "go": 1, + "car.milesTillEmpty": 1, + "miles.": 1, + "pragma.syntax": 1, + "send": 1, + "message": 4, + "friend": 4, + "<-receive(message))>": 1, + "chatUI.showMessage": 4, + "receive": 1, + "receiveFriend": 2, + "friendRcvr": 2, + "bind": 2, + "save": 1, + "file.setText": 1, + "makeURIFromObject": 1, + "chatController": 2, + "load": 1, + "getObjectFromURI": 1, + "file.getText": 1, + "<": 1, + "x": 3, + "y": 3, + "moveTo": 1, + "newX": 2, + "newY": 2, + "getX": 1, + "getY": 1, + "setName": 1, + "newName": 2, + "getName": 1, + "sportsCar": 1, + "sportsCar.moveTo": 1, + "sportsCar.getName": 1, + "is": 1, + "at": 1, + "X": 1, + "location": 1, + "sportsCar.getX": 1 + }, + "AspectJ": { + "package": 2, + "aspects.caching": 1, + ";": 29, + "import": 5, + "java.util.Map": 2, + "public": 6, + "abstract": 3, + "aspect": 2, + "OptimizeRecursionCache": 2, + "{": 11, + "@SuppressWarnings": 3, + "(": 46, + ")": 46, + "private": 1, + "Map": 3, + "_cache": 2, + "getCache": 2, + "}": 11, + "pointcut": 3, + "operation": 4, + "Object": 15, + "o": 16, + "topLevelOperation": 4, + "&&": 2, + "cflowbelow": 1, + "before": 1, + "System.out.println": 5, + "+": 7, + "around": 2, + "cachedValue": 4, + "_cache.get": 1, + "if": 2, + "null": 1, + "return": 5, + "proceed": 2, + "after": 2, + "returning": 2, + "result": 3, + "_cache.put": 1, + "_cache.size": 1, + "com.blogspot.miguelinlas3.aspectj.cache": 1, + "java.util.WeakHashMap": 1, + "org.aspectj.lang.JoinPoint": 1, + "com.blogspot.miguelinlas3.aspectj.cache.marker.Cachable": 1, + "CacheAspect": 1, + "cache": 3, + "Cachable": 2, + "cachable": 5, + "execution": 1, + "@Cachable": 2, + "*": 2, + "..": 1, + "@annotation": 1, + "String": 3, + "evaluatedKey": 6, + "this.evaluateKey": 1, + "cachable.scriptKey": 1, + "thisJoinPoint": 1, + "cache.containsKey": 1, + "this.cache.get": 1, + "value": 3, + "cache.put": 1, + "protected": 2, + "evaluateKey": 1, + "key": 2, + "JoinPoint": 1, + "joinPoint": 1, + "//": 1, + "TODO": 1, + "add": 1, + "some": 1, + "smart": 1, + "staff": 1, + "to": 1, + "allow": 1, + "simple": 1, + "scripting": 1, + "in": 1, + "annotation": 1, + "": 2, + "new": 1, + "WeakHashMap": 1 + }, + "Logtalk": { + "-": 3, + "object": 2, + "(": 4, + "hello_world": 1, + ")": 4, + ".": 2, + "%": 2, + "the": 2, + "initialization/1": 1, + "directive": 1, + "argument": 1, + "is": 2, + "automatically": 1, + "executed": 1, + "when": 1, + "loaded": 1, + "into": 1, + "memory": 1, + "initialization": 1, + "nl": 2, + "write": 1, + "end_object.": 1 + }, + "Frege": { + "module": 2, + "examples.CommandLineClock": 1, + "where": 39, + "data": 3, + "Date": 5, + "native": 4, + "java.util.Date": 1, + "new": 9, + "(": 339, + ")": 345, + "-": 730, + "IO": 13, + "MutableIO": 1, + "toString": 2, + "Mutable": 1, + "s": 21, + "ST": 1, + "String": 9, + "d.toString": 1, + "action": 2, + "to": 13, + "give": 2, + "us": 1, + "the": 20, + "current": 4, + "time": 1, + "as": 33, + "do": 38, + "d": 3, + "<->": 35, + "java": 5, + "lang": 2, + "Thread": 2, + "sleep": 4, + "takes": 1, + "a": 99, + "long": 4, + "and": 14, + "returns": 2, + "nothing": 2, + "but": 2, + "may": 1, + "throw": 1, + "an": 6, + "InterruptedException": 4, + "This": 2, + "is": 24, + "without": 1, + "doubt": 1, + "public": 1, + "static": 1, + "void": 2, + "millis": 1, + "throws": 4, + "Encoded": 1, + "in": 22, + "Frege": 1, + "argument": 1, + "type": 8, + "Long": 3, + "result": 11, + "does": 2, + "defined": 1, + "frege": 1, + "Lang": 1, + "main": 11, + "args": 2, + "forever": 1, + "print": 25, + "stdout.flush": 1, + "Thread.sleep": 4, + "package": 2, + "examples.Sudoku": 1, + "import": 7, + "Data.TreeMap": 1, + "Tree": 4, + "keys": 2, + "Data.List": 1, + "DL": 1, + "hiding": 1, + "find": 20, + "union": 10, + "Element": 6, + "Int": 6, + "Zelle": 8, + "[": 120, + "]": 116, + "set": 4, + "of": 32, + "candidates": 18, + "Position": 22, + "Feld": 3, + "Brett": 13, + "for": 25, + "assumptions": 10, + "conclusions": 2, + "Assumption": 21, + "ISNOT": 14, + "|": 62, + "IS": 16, + "derive": 2, + "Eq": 1, + "Ord": 1, + "instance": 1, + "Show": 1, + "show": 24, + "p": 72, + "e": 15, + "pname": 10, + "+": 200, + "e.show": 2, + "showcs": 5, + "cs": 27, + "joined": 4, + "map": 49, + "Assumption.show": 1, + "elements": 12, + "all": 22, + "possible": 2, + "..": 1, + "positions": 16, + "rowstarts": 4, + "row": 20, + "starting": 3, + "colstarts": 3, + "column": 2, + "boxstarts": 3, + "box": 15, + "boxmuster": 3, + "pattern": 1, + "by": 3, + "adding": 1, + "upper": 2, + "left": 4, + "position": 9, + "results": 1, + "real": 1, + "extract": 2, + "field": 9, + "getf": 16, + "f": 19, + "fs": 22, + "fst": 9, + "otherwise": 8, + "cell": 24, + "getc": 12, + "b": 113, + "snd": 20, + "compute": 5, + "list": 7, + "that": 18, + "belong": 3, + "same": 8, + "given": 3, + "z..": 1, + "z": 12, + "quot": 1, + "*": 5, + "col": 17, + "c": 33, + "mod": 3, + "ri": 2, + "div": 3, + "or": 15, + "depending": 1, + "on": 4, + "ci": 3, + "index": 3, + "middle": 2, + "right": 4, + "check": 2, + "if": 5, + "candidate": 10, + "has": 2, + "exactly": 2, + "one": 2, + "member": 1, + "i.e.": 1, + "been": 1, + "solved": 1, + "single": 9, + "Bool": 2, + "_": 60, + "true": 16, + "false": 13, + "unsolved": 10, + "rows": 4, + "cols": 6, + "boxes": 1, + "allrows": 8, + "allcols": 5, + "allboxs": 5, + "allrcb": 5, + "zip": 7, + "repeat": 3, + "containers": 6, + "PRINTING": 1, + "printable": 1, + "coordinate": 1, + "a1": 3, + "lower": 1, + "i9": 1, + "packed": 1, + "chr": 2, + "ord": 6, + "board": 41, + "printb": 4, + "mapM_": 5, + "p1line": 2, + "println": 25, + "pfld": 4, + "line": 2, + "brief": 1, + "no": 4, + ".": 41, + "some": 2, + "x": 45, + "zs": 1, + "initial/final": 1, + "msg": 6, + "return": 17, + "res012": 2, + "case": 6, + "concatMap": 1, + "a*100": 1, + "b*10": 1, + "BOARD": 1, + "ALTERATION": 1, + "ACTIONS": 1, + "message": 1, + "about": 1, + "what": 1, + "done": 1, + "turnoff1": 3, + "i": 16, + "off": 11, + "nc": 7, + "head": 19, + "newb": 7, + "filter": 26, + "notElem": 7, + "turnoff": 11, + "turnoffh": 1, + "ps": 8, + "foldM": 2, + "toh": 2, + "setto": 3, + "n": 38, + "cname": 4, + "nf": 2, + "<": 84, + "SOLVING": 1, + "STRATEGIES": 1, + "reduce": 3, + "sets": 2, + "contains": 1, + "numbers": 1, + "already": 1, + "finds": 1, + "logs": 1, + "NAKED": 5, + "SINGLEs": 1, + "passing.": 1, + "sss": 3, + "each": 2, + "with": 15, + "more": 2, + "than": 2, + "fields": 6, + "are": 6, + "rcb": 16, + "elem": 16, + "collect": 1, + "remove": 3, + "from": 7, + "look": 10, + "number": 4, + "appears": 1, + "container": 9, + "this": 2, + "can": 9, + "go": 1, + "other": 2, + "place": 1, + "HIDDEN": 6, + "SINGLE": 1, + "hiddenSingle": 2, + "select": 1, + "containername": 1, + "FOR": 11, + "IN": 9, + "occurs": 5, + "length": 20, + "PAIRS": 8, + "TRIPLES": 8, + "QUADS": 2, + "nakedPair": 4, + "t": 14, + "nm": 6, + "SELECT": 3, + "pos": 5, + "tuple": 2, + "name": 2, + "//": 8, + "let": 8, + "u": 6, + "fold": 7, + "non": 2, + "outof": 6, + "tuples": 2, + "hit": 7, + "subset": 3, + "any": 3, + "hiddenPair": 4, + "minus": 2, + "uniq": 4, + "sort": 4, + "common": 4, + "1": 2, + "bs": 7, + "undefined": 1, + "cannot": 1, + "happen": 1, + "because": 1, + "either": 1, + "empty": 4, + "not": 5, + "intersectionlist": 2, + "intersections": 2, + "reason": 8, + "reson": 1, + "cpos": 7, + "WHERE": 2, + "tail": 2, + "intersection": 1, + "we": 5, + "occurences": 1, + "XY": 2, + "Wing": 2, + "there": 6, + "exists": 6, + "A": 7, + "X": 5, + "Y": 4, + "B": 5, + "Z": 6, + "shares": 2, + "C": 6, + "reasoning": 1, + "will": 4, + "be": 9, + "since": 1, + "indeed": 1, + "thus": 1, + "see": 1, + "xyWing": 2, + "y": 15, + "rcba": 4, + "share": 1, + "b1": 11, + "b2": 10, + "&&": 9, + "||": 2, + "then": 1, + "else": 1, + "c1": 4, + "c2": 3, + "N": 5, + "Fish": 1, + "Swordfish": 1, + "Jellyfish": 1, + "When": 2, + "particular": 1, + "digit": 1, + "located": 2, + "only": 1, + "columns": 2, + "eliminate": 1, + "those": 2, + "which": 2, + "fish": 7, + "fishname": 5, + "rset": 4, + "take": 13, + "certain": 1, + "rflds": 2, + "rowset": 1, + "colss": 3, + "must": 4, + "appear": 1, + "at": 3, + "least": 3, + "cstart": 2, + "immediate": 1, + "consequences": 6, + "assumption": 8, + "form": 1, + "conseq": 3, + "cp": 3, + "two": 1, + "contradict": 2, + "contradicts": 7, + "get": 3, + "aPos": 5, + "List": 1, + "turned": 1, + "when": 2, + "true/false": 1, + "toClear": 7, + "whose": 1, + "implications": 5, + "themself": 1, + "chain": 2, + "paths": 12, + "solution": 6, + "reverse": 4, + "css": 7, + "yields": 1, + "contradictory": 1, + "chainContra": 2, + "pro": 7, + "contra": 4, + "ALL": 2, + "conlusions": 1, + "uniqBy": 2, + "using": 2, + "sortBy": 2, + "comparing": 2, + "conslusion": 1, + "chains": 4, + "LET": 1, + "BE": 1, + "final": 2, + "conclusion": 4, + "THE": 1, + "FIRST": 1, + "con": 3, + "implication": 2, + "ai": 2, + "so": 1, + "a0": 1, + "OR": 7, + "a2": 2, + "...": 2, + "IMPLIES": 1, + "For": 2, + "cells": 1, + "pi": 2, + "have": 1, + "construct": 2, + "p0": 1, + "p1": 1, + "c0": 1, + "cellRegionChain": 2, + "os": 3, + "cellas": 2, + "regionas": 2, + "iss": 3, + "ass": 2, + "first": 2, + "candidates@": 1, + "region": 2, + "oss": 2, + "Liste": 1, + "aller": 1, + "Annahmen": 1, + "r": 7, + "ein": 1, + "bestimmtes": 1, + "acstree": 3, + "Tree.fromList": 1, + "bypass": 1, + "maybe": 1, + "tree": 1, + "lookup": 2, + "Just": 2, + "error": 1, + "performance": 1, + "resons": 1, + "confine": 1, + "ourselves": 1, + "20": 1, + "per": 1, + "mkPaths": 3, + "acst": 3, + "impl": 2, + "{": 1, + "a3": 1, + "ordered": 1, + "impls": 2, + "ns": 2, + "concat": 1, + "takeUntil": 1, + "null": 1, + "iterate": 1, + "expandchain": 3, + "avoid": 1, + "loops": 1, + "uni": 3, + "SOLVE": 1, + "SUDOKU": 1, + "Apply": 1, + "available": 1, + "strategies": 1, + "until": 1, + "changes": 1, + "anymore": 1, + "Strategy": 1, + "functions": 2, + "supposed": 1, + "applied": 1, + "changed": 1, + "board.": 1, + "strategy": 2, + "anything": 1, + "alter": 1, + "it": 2, + "next": 1, + "tried.": 1, + "solve": 19, + "res@": 16, + "apply": 17, + "res": 16, + "smallest": 1, + "comment": 16, + "SINGLES": 1, + "locked": 1, + "2": 3, + "QUADRUPELS": 6, + "3": 3, + "4": 3, + "WINGS": 1, + "FISH": 3, + "pcomment": 2, + "9": 5, + "forcing": 1, + "allow": 1, + "infer": 1, + "both": 1, + "brd": 2, + "com": 5, + "stderr": 3, + "<<": 4, + "log": 1, + "turn": 1, + "string": 3, + "into": 1, + "mkrow": 2, + "mkrow1": 2, + "xs": 4, + "make": 1, + "sure": 1, + "unpacked": 2, + "<=>": 1, + "0": 2, + "ignored": 1, + "h": 1, + "help": 1, + "usage": 1, + "Sudoku": 2, + "file": 4, + "81": 3, + "char": 1, + "consisting": 1, + "digits": 2, + "One": 1, + "such": 1, + "going": 1, + "http": 3, + "www": 1, + "sudokuoftheday": 1, + "pages": 1, + "o": 1, + "php": 1, + "Right": 6, + "click": 1, + "puzzle": 1, + "open": 1, + "tab": 1, + "Copy": 1, + "URL": 2, + "address": 1, + "your": 1, + "browser": 1, + "There": 1, + "also": 1, + "hard": 1, + "sudokus": 1, + "examples": 1, + "top95": 1, + "txt": 1, + "W": 1, + "felder": 2, + "decode": 4, + "files": 2, + "forM_": 1, + "sudoku": 2, + "br": 4, + "openReader": 1, + "lines": 2, + "BufferedReader.getLines": 1, + "process": 5, + "ss": 8, + "mapM": 3, + "sum": 2, + "candi": 2, + "consider": 3, + "acht": 4, + "stderr.println": 3, + "neun": 2, + "examples.SwingExamples": 1, + "Java.Awt": 1, + "ActionListener": 2, + "Java.Swing": 1, + "rs": 2, + "Runnable.new": 1, + "helloWorldGUI": 2, + "buttonDemoGUI": 2, + "celsiusConverterGUI": 2, + "invokeLater": 1, + "getLine": 2, + "tempTextField": 2, + "JTextField.new": 1, + "celsiusLabel": 1, + "JLabel.new": 3, + "convertButton": 1, + "JButton.new": 3, + "fahrenheitLabel": 1, + "frame": 3, + "JFrame.new": 3, + "frame.setDefaultCloseOperation": 3, + "JFrame.dispose_on_close": 3, + "frame.setTitle": 1, + "celsiusLabel.setText": 1, + "convertButton.setText": 1, + "convertButtonActionPerformed": 2, + "celsius": 3, + "getText": 1, + "double": 1, + "Left": 5, + "fahrenheitLabel.setText": 3, + "c*1.8": 1, + ".long": 1, + "ActionListener.new": 2, + "convertButton.addActionListener": 1, + "contentPane": 2, + "frame.getContentPane": 2, + "layout": 2, + "GroupLayout.new": 1, + "contentPane.setLayout": 1, + "TODO": 1, + "continue": 1, + "//docs.oracle.com/javase/tutorial/displayCode.html": 1, + "code": 1, + "//docs.oracle.com/javase/tutorial/uiswing/examples/learn/CelsiusConverterProject/src/learn/CelsiusConverterGUI.java": 1, + "frame.pack": 3, + "frame.setVisible": 3, + "label": 2, + "cp.add": 1, + "newContentPane": 2, + "JPanel.new": 1, + "JButton": 4, + "b1.setVerticalTextPosition": 1, + "SwingConstants.center": 2, + "b1.setHorizontalTextPosition": 1, + "SwingConstants.leading": 2, + "b2.setVerticalTextPosition": 1, + "b2.setHorizontalTextPosition": 1, + "b3": 7, + "Enable": 1, + "button": 1, + "setVerticalTextPosition": 1, + "SwingConstants": 2, + "center": 1, + "setHorizontalTextPosition": 1, + "leading": 1, + "setEnabled": 7, + "action1": 2, + "action3": 2, + "b1.addActionListener": 1, + "b3.addActionListener": 1, + "newContentPane.add": 3, + "newContentPane.setOpaque": 1, + "frame.setContentPane": 1, + "examples.Concurrent": 1, + "System.Random": 1, + "Java.Net": 1, + "Control.Concurrent": 1, + "main2": 1, + "m": 2, + "newEmptyMVar": 1, + "forkIO": 11, + "m.put": 3, + "replicateM_": 3, + "m.take": 1, + "example1": 1, + "putChar": 2, + "example2": 2, + "setReminder": 3, + "L*n": 1, + "table": 1, + "mainPhil": 2, + "fork1": 3, + "fork2": 3, + "fork3": 3, + "fork4": 3, + "fork5": 3, + "MVar": 3, + "5": 1, + "philosopher": 7, + "Kant": 1, + "Locke": 1, + "Wittgenstein": 1, + "Nozick": 1, + "Mises": 1, + "me": 13, + "g": 4, + "Random.newStdGen": 1, + "phil": 4, + "tT": 2, + "g1": 2, + "Random.randomR": 2, + "L": 6, + "eT": 2, + "g2": 3, + "thinkTime": 3, + "eatTime": 3, + "fl": 4, + "left.take": 1, + "rFork": 2, + "poll": 1, + "fr": 3, + "right.put": 1, + "left.put": 2, + "table.notifyAll": 2, + "Nothing": 2, + "table.wait": 1, + "inter": 3, + "catch": 2, + "getURL": 4, + "xx": 2, + "url": 1, + "URL.new": 1, + "url.openConnection": 1, + "con.connect": 1, + "con.getInputStream": 1, + "typ": 5, + "con.getContentType": 1, + "ir": 2, + "InputStreamReader.new": 2, + "fromMaybe": 1, + "charset": 2, + "unsupportedEncoding": 3, + "BufferedReader": 1, + "getLines": 1, + "InputStream": 1, + "UnsupportedEncodingException": 1, + "InputStreamReader": 1, + "x.catched": 1, + "ctyp": 2, + "charset=": 1, + "m.group": 1, + "SomeException": 2, + "Throwable": 1, + "m1": 1, + "MVar.newEmpty": 3, + "m2": 1, + "m3": 2, + "catchAll": 3, + "m1.put": 1, + "m2.put": 1, + "m3.put": 1, + "r1": 2, + "m1.take": 1, + "r2": 3, + "m2.take": 1, + "r3": 3, + "putStrLn": 2, + "x.getClass.getName": 1 + }, + "Inform 7": { + "Version": 1, + "of": 3, + "Trivial": 3, + "Extension": 3, + "by": 3, + "Andrew": 3, + "Plotkin": 1, + "begins": 1, + "here.": 2, + "A": 3, + "cow": 3, + "is": 4, + "a": 2, + "kind": 1, + "animal.": 1, + "can": 1, + "be": 1, + "purple.": 1, + "ends": 1, + "Plotkin.": 2, + "Include": 1, + "The": 1, + "Kitchen": 1, + "room.": 1, + "[": 1, + "This": 1, + "kitchen": 1, + "modelled": 1, + "after": 1, + "the": 4, + "one": 1, + "in": 2, + "Zork": 1, + "although": 1, + "it": 1, + "lacks": 1, + "detail": 1, + "to": 2, + "establish": 1, + "this": 1, + "player.": 1, + "]": 1, + "purple": 1, + "called": 1, + "Gelett": 2, + "Kitchen.": 1, + "Instead": 1, + "examining": 1, + "say": 1 + }, + "Tcl": { + "#": 7, + "package": 2, + "require": 2, + "Tcl": 2, + "namespace": 6, + "eval": 2, + "stream": 61, + "{": 148, + "export": 3, + "[": 76, + "a": 1, + "-": 5, + "z": 1, + "]": 76, + "*": 19, + "}": 148, + "ensemble": 1, + "create": 7, + "proc": 28, + "first": 24, + "restCmdPrefix": 2, + "return": 22, + "list": 18, + "lassign": 11, + "foldl": 1, + "cmdPrefix": 19, + "initialValue": 7, + "args": 13, + "set": 34, + "numStreams": 3, + "llength": 5, + "if": 14, + "FoldlSingleStream": 2, + "lindex": 5, + "elseif": 3, + "FoldlMultiStream": 2, + "else": 5, + "Usage": 4, + "foreach": 5, + "numArgs": 7, + "varName": 7, + "body": 8, + "ForeachSingleStream": 2, + "(": 11, + ")": 11, + "&&": 2, + "%": 1, + "end": 2, + "items": 5, + "lrange": 1, + "ForeachMultiStream": 2, + "fromList": 2, + "_list": 4, + "index": 4, + "expr": 4, + "+": 1, + "isEmpty": 10, + "map": 1, + "MapSingleStream": 3, + "MapMultiStream": 3, + "rest": 22, + "select": 2, + "while": 6, + "take": 2, + "num": 3, + "||": 1, + "<": 1, + "toList": 1, + "res": 10, + "lappend": 8, + "#################################": 2, + "acc": 9, + "streams": 5, + "firsts": 6, + "restStreams": 6, + "uplevel": 4, + "nextItems": 4, + "msg": 1, + "code": 1, + "error": 1, + "level": 1, + "XDG": 11, + "variable": 4, + "DEFAULTS": 8, + "DATA_HOME": 4, + "CONFIG_HOME": 4, + "CACHE_HOME": 4, + "RUNTIME_DIR": 3, + "DATA_DIRS": 4, + "CONFIG_DIRS": 4, + "SetDefaults": 3, + "ne": 2, + "file": 9, + "join": 9, + "env": 8, + "HOME": 3, + ".local": 1, + "share": 3, + ".config": 1, + ".cache": 1, + "/usr": 2, + "local": 1, + "/etc": 1, + "xdg": 1, + "XDGVarSet": 4, + "var": 11, + "info": 1, + "exists": 1, + "XDG_": 4, + "Dir": 4, + "subdir": 16, + "dir": 5, + "dict": 2, + "get": 2, + "Dirs": 3, + "rawDirs": 3, + "split": 1, + "outDirs": 3, + "XDG_RUNTIME_DIR": 1 + }, + "edn": { + "[": 24, + "{": 22, + "db/id": 22, + "#db/id": 22, + "db.part/db": 6, + "]": 24, + "db/ident": 3, + "object/name": 18, + "db/doc": 4, + "db/valueType": 3, + "db.type/string": 2, + "db/index": 3, + "true": 3, + "db/cardinality": 3, + "db.cardinality/one": 3, + "db.install/_attribute": 3, + "}": 22, + "object/meanRadius": 18, + "db.type/double": 1, + "data/source": 2, + "db.part/tx": 2, + "db.part/user": 17 + }, + "Hy": { + ";": 4, + "The": 1, + "concurrent.futures": 2, + "example": 2, + "in": 2, + "Hy.": 2, + "(": 28, + "import": 1, + "[": 10, + "ThreadPoolExecutor": 2, + "as": 3, + "-": 10, + "completed": 2, + "]": 10, + "random": 1, + "randint": 2, + "sh": 1, + "sleep": 2, + ")": 28, + "defn": 2, + "task": 2, + "to": 2, + "do": 2, + "with": 1, + "executor": 2, + "setv": 1, + "jobs": 2, + "list": 1, + "comp": 1, + ".submit": 1, + "x": 3, + "range": 1, + "for": 2, + "future": 2, + ".result": 1, + "Fibonacci": 1, + "fib": 4, + "n": 5, + "if": 2, + "<": 1, + "+": 1, + "__name__": 1, + "print": 1 + }, + "DM": { + "#define": 4, + "PI": 6, + "#if": 1, + "G": 1, + "#elif": 1, + "I": 1, + "#else": 1, + "K": 1, + "#endif": 1, + "var/GlobalCounter": 1, + "var/const/CONST_VARIABLE": 1, + "var/list/MyList": 1, + "list": 3, + "(": 17, + "new": 1, + "/datum/entity": 2, + ")": 17, + "var/list/EmptyList": 1, + "[": 2, + "]": 2, + "//": 6, + "creates": 1, + "a": 1, + "of": 1, + "null": 2, + "entries": 1, + "var/list/NullList": 1, + "var/name": 1, + "var/number": 1, + "/datum/entity/proc/myFunction": 1, + "world.log": 5, + "<<": 5, + "/datum/entity/New": 1, + "number": 2, + "GlobalCounter": 1, + "+": 3, + "/datum/entity/unit": 1, + "name": 1, + "/datum/entity/unit/New": 1, + "..": 1, + "calls": 1, + "the": 2, + "parent": 1, + "s": 1, + "proc": 1, + ";": 3, + "equal": 1, + "to": 1, + "super": 1, + "and": 1, + "base": 1, + "in": 1, + "other": 1, + "languages": 1, + "rand": 1, + "/datum/entity/unit/myFunction": 1, + "/proc/ReverseList": 1, + "var/list/input": 1, + "var/list/output": 1, + "for": 1, + "var/i": 1, + "input.len": 1, + "i": 3, + "-": 2, + "IMPORTANT": 1, + "List": 1, + "Arrays": 1, + "count": 1, + "from": 1, + "output": 2, + "input": 1, + "is": 2, + "return": 3, + "/proc/DoStuff": 1, + "var/bitflag": 2, + "bitflag": 4, + "|": 1, + "/proc/DoOtherStuff": 1, + "bits": 1, + "maximum": 1, + "amount": 1, + "&": 1, + "/proc/DoNothing": 1, + "var/pi": 1, + "if": 2, + "pi": 2, + "else": 2, + "CONST_VARIABLE": 1, + "#undef": 1, + "Undefine": 1 + }, + "GLSL": { + "////": 4, + "High": 1, + "quality": 2, + "(": 386, + "Some": 1, + "browsers": 1, + "may": 1, + "freeze": 1, + "or": 1, + "crash": 1, + ")": 386, + "//#define": 10, + "HIGHQUALITY": 2, + "Medium": 1, + "Should": 1, + "be": 1, + "fine": 1, + "on": 3, + "all": 1, + "systems": 1, + "works": 1, + "Intel": 1, + "HD2000": 1, + "Win7": 1, + "but": 1, + "quite": 1, + "slow": 1, + "MEDIUMQUALITY": 2, + "Defaults": 1, + "REFLECTIONS": 3, + "#define": 13, + "SHADOWS": 5, + "GRASS": 3, + "SMALL_WAVES": 4, + "RAGGED_LEAVES": 5, + "DETAILED_NOISE": 3, + "LIGHT_AA": 3, + "//": 36, + "sample": 2, + "SSAA": 2, + "HEAVY_AA": 2, + "x2": 5, + "RG": 1, + "TONEMAP": 5, + "Configurations": 1, + "#ifdef": 14, + "#endif": 14, + "const": 18, + "float": 103, + "eps": 5, + "e": 4, + "-": 108, + ";": 353, + "PI": 3, + "vec3": 165, + "sunDir": 5, + "skyCol": 4, + "sandCol": 2, + "treeCol": 2, + "grassCol": 2, + "leavesCol": 4, + "leavesPos": 4, + "sunCol": 5, + "#else": 5, + "exposure": 1, + "Only": 1, + "used": 1, + "when": 1, + "tonemapping": 1, + "mod289": 4, + "x": 11, + "{": 61, + "return": 47, + "floor": 8, + "*": 115, + "/": 24, + "}": 61, + "vec4": 72, + "permute": 4, + "x*34.0": 1, + "+": 108, + "*x": 3, + "taylorInvSqrt": 2, + "r": 14, + "snoise": 7, + "v": 8, + "vec2": 26, + "C": 1, + "/6.0": 1, + "/3.0": 1, + "D": 1, + "i": 38, + "dot": 30, + "C.yyy": 2, + "x0": 7, + "C.xxx": 2, + "g": 2, + "step": 2, + "x0.yzx": 1, + "x0.xyz": 1, + "l": 1, + "i1": 2, + "min": 11, + "g.xyz": 2, + "l.zxy": 2, + "i2": 2, + "max": 9, + "x1": 4, + "*C.x": 2, + "/3": 1, + "C.y": 1, + "x3": 4, + "D.yyy": 1, + "D.y": 1, + "p": 26, + "i.z": 1, + "i1.z": 1, + "i2.z": 1, + "i.y": 1, + "i1.y": 1, + "i2.y": 1, + "i.x": 1, + "i1.x": 1, + "i2.x": 1, + "n_": 2, + "/7.0": 1, + "ns": 4, + "D.wyz": 1, + "D.xzx": 1, + "j": 4, + "ns.z": 3, + "mod": 2, + "*7": 1, + "x_": 3, + "y_": 2, + "N": 1, + "*ns.x": 2, + "ns.yyyy": 2, + "y": 2, + "h": 21, + "abs": 2, + "b0": 3, + "x.xy": 1, + "y.xy": 1, + "b1": 3, + "x.zw": 1, + "y.zw": 1, + "//vec4": 3, + "s0": 2, + "lessThan": 2, + "*2.0": 4, + "s1": 2, + "sh": 1, + "a0": 1, + "b0.xzyw": 1, + "s0.xzyw*sh.xxyy": 1, + "a1": 1, + "b1.xzyw": 1, + "s1.xzyw*sh.zzww": 1, + "p0": 5, + "a0.xy": 1, + "h.x": 1, + "p1": 5, + "a0.zw": 1, + "h.y": 1, + "p2": 5, + "a1.xy": 1, + "h.z": 1, + "p3": 5, + "a1.zw": 1, + "h.w": 1, + "//Normalise": 1, + "gradients": 1, + "norm": 1, + "norm.x": 1, + "norm.y": 1, + "norm.z": 1, + "norm.w": 1, + "m": 8, + "m*m": 1, + "fbm": 2, + "final": 5, + "waterHeight": 4, + "d": 10, + "length": 7, + "p.xz": 2, + "sin": 8, + "iGlobalTime": 7, + "Island": 1, + "waves": 3, + "p*0.5": 1, + "Other": 1, + "bump": 2, + "pos": 42, + "rayDir": 43, + "s": 23, + "Fade": 1, + "out": 1, + "to": 1, + "reduce": 1, + "aliasing": 1, + "dist": 7, + "<": 23, + "sqrt": 6, + "Calculate": 1, + "normal": 7, + "from": 2, + "heightmap": 1, + "pos.x": 1, + "iGlobalTime*0.5": 1, + "pos.z": 2, + "*0.7": 1, + "*s": 4, + "normalize": 14, + "e.xyy": 1, + "e.yxy": 1, + "intersectSphere": 2, + "rpos": 5, + "rdir": 3, + "rad": 2, + "op": 5, + "b": 5, + "det": 11, + "b*b": 2, + "rad*rad": 2, + "if": 29, + "t": 44, + "rdir*t": 1, + "intersectCylinder": 1, + "rdir2": 2, + "rdir.yz": 1, + "op.yz": 3, + "rpos.yz": 2, + "rdir2*t": 2, + "pos.yz": 2, + "intersectPlane": 3, + "rayPos": 38, + "n": 18, + "sign": 1, + "rotate": 5, + "theta": 6, + "c": 6, + "cos": 4, + "p.x": 2, + "p.z": 2, + "p.y": 1, + "impulse": 2, + "k": 8, + "by": 1, + "iq": 2, + "k*x": 1, + "exp": 2, + "grass": 2, + "Optimization": 1, + "Avoid": 1, + "noise": 1, + "too": 1, + "far": 1, + "away": 1, + "pos.y": 8, + "tree": 2, + "pos.y*0.03": 2, + "mat2": 2, + "m*pos.xy": 1, + "width": 2, + "clamp": 4, + "scene": 7, + "vtree": 4, + "vgrass": 2, + ".x": 4, + "eps.xyy": 1, + "eps.yxy": 1, + "eps.yyx": 1, + "plantsShadow": 2, + "Soft": 1, + "shadow": 4, + "taken": 1, + "for": 7, + "int": 7, + "rayDir*t": 2, + "res": 6, + "res.x": 3, + "k*res.x/t": 1, + "s*s*": 1, + "intersectWater": 2, + "rayPos.y": 1, + "rayDir.y": 1, + "intersectSand": 3, + "intersectTreasure": 2, + "intersectLeaf": 2, + "openAmount": 4, + "dir": 2, + "offset": 5, + "rayDir*res.w": 1, + "pos*0.8": 2, + "||": 3, + "res.w": 6, + "res2": 2, + "dir.xy": 1, + "dir.z": 1, + "rayDir*res2.w": 1, + "res2.w": 3, + "&&": 10, + "leaves": 7, + "e20": 3, + "sway": 5, + "fract": 1, + "upDownSway": 2, + "angleOffset": 3, + "Left": 1, + "right": 1, + "alpha": 3, + "Up": 1, + "down": 1, + "k*10.0": 1, + "p.xzy": 1, + ".xzy": 2, + "d.xzy": 1, + "Shift": 1, + "Intersect": 11, + "individual": 1, + "leaf": 1, + "res.xyz": 1, + "sand": 2, + "resSand": 2, + "//if": 1, + "resSand.w": 4, + "plants": 6, + "resLeaves": 3, + "resLeaves.w": 10, + "e7": 3, + "light": 5, + "sunDir*0.01": 2, + "col": 32, + "n.y": 3, + "lightLeaves": 3, + "ao": 5, + "sky": 5, + "res.y": 2, + "uvFact": 2, + "uv": 12, + "n.x": 1, + "tex": 6, + "texture2D": 6, + "iChannel0": 3, + ".rgb": 2, + "e8": 1, + "traceReflection": 2, + "resPlants": 2, + "resPlants.w": 6, + "resPlants.xyz": 2, + "pos.xz": 2, + "leavesPos.xz": 2, + ".r": 3, + "resLeaves.xyz": 2, + "trace": 2, + "resSand.xyz": 1, + "treasure": 1, + "chest": 1, + "resTreasure": 1, + "resTreasure.w": 4, + "resTreasure.xyz": 1, + "water": 1, + "resWater": 1, + "resWater.w": 4, + "ct": 2, + "fresnel": 2, + "pow": 3, + "trans": 2, + "reflDir": 3, + "reflect": 1, + "refl": 3, + "resWater.t": 1, + "mix": 2, + "camera": 8, + "px": 4, + "rd": 1, + "iResolution.yy": 1, + "iResolution.x/iResolution.y*0.5": 1, + "rd.x": 1, + "rd.y": 1, + "void": 5, + "main": 3, + "gl_FragCoord.xy": 7, + "*0.25": 4, + "*0.5": 1, + "Optimized": 1, + "Haarm": 1, + "Peter": 1, + "Duiker": 1, + "curve": 1, + "col*exposure": 1, + "x*": 2, + ".5": 1, + "gl_FragColor": 2, + "#version": 1, + "uniform": 7, + "kCoeff": 2, + "kCube": 2, + "uShift": 3, + "vShift": 3, + "chroma_red": 2, + "chroma_green": 2, + "chroma_blue": 2, + "bool": 1, + "apply_disto": 4, + "sampler2D": 1, + "input1": 4, + "adsk_input1_w": 4, + "adsk_input1_h": 3, + "adsk_input1_aspect": 1, + "adsk_input1_frameratio": 5, + "adsk_result_w": 3, + "adsk_result_h": 2, + "distortion_f": 3, + "f": 17, + "r*r": 1, + "inverse_f": 2, + "[": 29, + "]": 29, + "lut": 9, + "max_r": 2, + "incr": 2, + "lut_r": 5, + ".z": 5, + ".y": 2, + "aberrate": 4, + "chroma": 2, + "chromaticize_and_invert": 2, + "rgb_f": 5, + "px.x": 2, + "px.y": 2, + "uv.x": 11, + "uv.y": 7, + "*2": 2, + "uv.x*uv.x": 1, + "uv.y*uv.y": 1, + "else": 1, + "rgb_uvs": 12, + "rgb_f.rr": 1, + "rgb_f.gg": 1, + "rgb_f.bb": 1, + "sampled": 1, + "sampled.r": 1, + "sampled.g": 1, + ".g": 1, + "sampled.b": 1, + ".b": 1, + "gl_FragColor.rgba": 1, + "sampled.rgb": 1, + "NUM_LIGHTS": 4, + "AMBIENT": 2, + "MAX_DIST": 3, + "MAX_DIST_SQUARED": 3, + "lightColor": 3, + "varying": 3, + "fragmentNormal": 2, + "cameraVector": 2, + "lightVector": 4, + "initialize": 1, + "diffuse/specular": 1, + "lighting": 1, + "diffuse": 4, + "specular": 4, + "the": 1, + "fragment": 1, + "and": 2, + "direction": 1, + "cameraDir": 2, + "loop": 1, + "through": 1, + "each": 1, + "calculate": 1, + "distance": 1, + "between": 1, + "distFactor": 3, + "lightDir": 3, + "diffuseDot": 2, + "halfAngle": 2, + "specularColor": 2, + "specularDot": 2, + "sample.rgb": 1, + "sample.a": 1 + }, + "ABAP": { + "*/**": 1, + "*": 56, + "The": 2, + "MIT": 2, + "License": 1, + "(": 8, + ")": 8, + "Copyright": 1, + "c": 3, + "Ren": 1, + "van": 1, + "Mil": 1, + "Permission": 1, + "is": 2, + "hereby": 1, + "granted": 1, + "free": 1, + "of": 6, + "charge": 1, + "to": 10, + "any": 1, + "person": 1, + "obtaining": 1, + "a": 1, + "copy": 2, + "this": 2, + "software": 1, + "and": 3, + "associated": 1, + "documentation": 1, + "files": 4, + "the": 10, + "deal": 1, + "in": 3, + "Software": 3, + "without": 2, + "restriction": 1, + "including": 1, + "limitation": 1, + "rights": 1, + "use": 1, + "modify": 1, + "merge": 1, + "publish": 1, + "distribute": 1, + "sublicense": 1, + "and/or": 1, + "sell": 1, + "copies": 2, + "permit": 1, + "persons": 1, + "whom": 1, + "furnished": 1, + "do": 4, + "so": 1, + "subject": 1, + "following": 1, + "conditions": 1, + "above": 1, + "copyright": 1, + "notice": 2, + "permission": 1, + "shall": 1, + "be": 1, + "included": 1, + "all": 1, + "or": 1, + "substantial": 1, + "portions": 1, + "Software.": 1, + "THE": 6, + "SOFTWARE": 2, + "IS": 1, + "PROVIDED": 1, + "WITHOUT": 1, + "WARRANTY": 1, + "OF": 4, + "ANY": 2, + "KIND": 1, + "EXPRESS": 1, + "OR": 7, + "IMPLIED": 1, + "INCLUDING": 1, + "BUT": 1, + "NOT": 1, + "LIMITED": 1, + "TO": 2, + "WARRANTIES": 1, + "MERCHANTABILITY": 1, + "FITNESS": 1, + "FOR": 2, + "A": 1, + "PARTICULAR": 1, + "PURPOSE": 1, + "AND": 1, + "NONINFRINGEMENT.": 1, + "IN": 4, + "NO": 1, + "EVENT": 1, + "SHALL": 1, + "AUTHORS": 1, + "COPYRIGHT": 1, + "HOLDERS": 1, + "BE": 1, + "LIABLE": 1, + "CLAIM": 1, + "DAMAGES": 1, + "OTHER": 2, + "LIABILITY": 1, + "WHETHER": 1, + "AN": 1, + "ACTION": 1, + "CONTRACT": 1, + "TORT": 1, + "OTHERWISE": 1, + "ARISING": 1, + "FROM": 1, + "OUT": 1, + "CONNECTION": 1, + "WITH": 1, + "USE": 1, + "DEALINGS": 1, + "SOFTWARE.": 1, + "*/": 1, + "-": 978, + "CLASS": 2, + "CL_CSV_PARSER": 6, + "DEFINITION": 2, + "class": 2, + "cl_csv_parser": 2, + "definition": 1, + "public": 3, + "inheriting": 1, + "from": 1, + "cl_object": 1, + "final": 1, + "create": 1, + ".": 9, + "section.": 3, + "not": 3, + "include": 3, + "other": 3, + "source": 3, + "here": 3, + "type": 11, + "pools": 1, + "abap": 1, + "methods": 2, + "constructor": 2, + "importing": 1, + "delegate": 1, + "ref": 1, + "if_csv_parser_delegate": 1, + "csvstring": 1, + "string": 1, + "separator": 1, + "skip_first_line": 1, + "abap_bool": 2, + "parse": 2, + "raising": 1, + "cx_csv_parse_error": 2, + "protected": 1, + "private": 1, + "constants": 1, + "_textindicator": 1, + "value": 2, + "IMPLEMENTATION": 2, + "implementation.": 1, + "": 2, + "+": 9, + "|": 7, + "Instance": 2, + "Public": 1, + "Method": 2, + "CONSTRUCTOR": 1, + "[": 5, + "]": 5, + "DELEGATE": 1, + "TYPE": 5, + "REF": 1, + "IF_CSV_PARSER_DELEGATE": 1, + "CSVSTRING": 1, + "STRING": 1, + "SEPARATOR": 1, + "C": 1, + "SKIP_FIRST_LINE": 1, + "ABAP_BOOL": 1, + "": 2, + "method": 2, + "constructor.": 1, + "super": 1, + "_delegate": 1, + "delegate.": 1, + "_csvstring": 2, + "csvstring.": 1, + "_separator": 1, + "separator.": 1, + "_skip_first_line": 1, + "skip_first_line.": 1, + "endmethod.": 2, + "Get": 1, + "lines": 4, + "data": 3, + "is_first_line": 1, + "abap_true.": 2, + "standard": 2, + "table": 3, + "string.": 3, + "_lines": 1, + "field": 1, + "symbols": 1, + "": 3, + "loop": 1, + "at": 2, + "assigning": 1, + "Parse": 1, + "line": 1, + "values": 2, + "_parse_line": 2, + "Private": 1, + "_LINES": 1, + "<": 1, + "RETURNING": 1, + "STRINGTAB": 1, + "_lines.": 1, + "split": 1, + "cl_abap_char_utilities": 1, + "cr_lf": 1, + "into": 6, + "returning.": 1, + "Space": 2, + "concatenate": 4, + "csvvalue": 6, + "csvvalue.": 5, + "else.": 4, + "char": 2, + "endif.": 6, + "This": 1, + "indicates": 1, + "an": 1, + "error": 1, + "CSV": 1, + "formatting": 1, + "text_ended": 1, + "message": 2, + "e003": 1, + "csv": 1, + "msg.": 2, + "raise": 1, + "exception": 1, + "exporting": 1, + "endwhile.": 2, + "append": 2, + "csvvalues.": 2, + "clear": 1, + "pos": 2, + "endclass.": 1 }, "CSS": { ".clearfix": 8, @@ -17535,395 +22341,9545 @@ "backdrop.fade": 1, "backdrop.fade.in": 1 }, - "Cuda": { - "__global__": 2, - "void": 3, - "scalarProdGPU": 1, - "(": 20, - "float": 8, - "*d_C": 1, - "*d_A": 1, - "*d_B": 1, - "int": 14, - "vectorN": 2, - "elementN": 3, - ")": 20, - "{": 8, - "//Accumulators": 1, - "cache": 1, - "__shared__": 1, - "accumResult": 5, - "[": 11, - "ACCUM_N": 4, - "]": 11, - ";": 30, - "////////////////////////////////////////////////////////////////////////////": 2, - "for": 5, - "vec": 5, - "blockIdx.x": 2, - "<": 5, - "+": 12, - "gridDim.x": 1, - "vectorBase": 3, - "IMUL": 1, - "vectorEnd": 2, - "////////////////////////////////////////////////////////////////////////": 4, - "iAccum": 10, - "threadIdx.x": 4, - "blockDim.x": 3, - "sum": 3, - "pos": 5, - "d_A": 2, - "*": 2, - "d_B": 2, - "}": 8, - "stride": 5, - "/": 2, - "__syncthreads": 1, - "if": 3, - "d_C": 2, - "#include": 2, - "": 1, - "": 1, - "vectorAdd": 2, - "const": 2, - "*A": 1, - "*B": 1, - "*C": 1, - "numElements": 4, - "i": 5, - "C": 1, - "A": 1, - "B": 1, - "main": 1, - "cudaError_t": 1, - "err": 5, - "cudaSuccess": 2, - "threadsPerBlock": 4, - "blocksPerGrid": 1, - "-": 1, - "<<": 1, - "": 1, - "cudaGetLastError": 1, - "fprintf": 1, - "stderr": 1, - "cudaGetErrorString": 1, - "exit": 1, - "EXIT_FAILURE": 1, - "cudaDeviceReset": 1, - "return": 1 + "JSON": { + "{": 73, + "[": 17, + "]": 17, + "}": 73, + "true": 3 }, - "Dart": { - "import": 1, - "as": 1, - "math": 1, - ";": 9, - "class": 1, - "Point": 5, - "{": 3, - "num": 2, - "x": 2, - "y": 2, - "(": 7, - "this.x": 1, - "this.y": 1, - ")": 7, - "distanceTo": 1, - "other": 1, - "var": 4, - "dx": 3, - "-": 2, - "other.x": 1, - "dy": 3, - "other.y": 1, - "return": 1, - "math.sqrt": 1, - "*": 2, - "+": 1, - "}": 3, - "void": 1, - "main": 1, - "p": 1, - "new": 2, - "q": 1, - "print": 1 + "Handlebars": { + "
": 5, + "class=": 5, + "

": 3, + "{": 16, + "title": 1, + "}": 16, + "

": 3, + "body": 3, + "
": 5, + "By": 2, + "fullName": 2, + "author": 2, + "Comments": 1, + "#each": 1, + "comments": 1, + "

": 1, + "

": 1, + "/each": 1 }, - "Diff": { - "diff": 1, + "Creole": { + "Creole": 6, + "is": 3, + "a": 2, "-": 5, - "git": 1, - "a/lib/linguist.rb": 2, - "b/lib/linguist.rb": 2, - "index": 1, - "d472341..8ad9ffb": 1, - "+": 3 - }, - "DM": { - "#define": 4, - "PI": 6, - "#if": 1, - "G": 1, - "#elif": 1, - "I": 1, - "#else": 1, - "K": 1, - "#endif": 1, - "var/GlobalCounter": 1, - "var/const/CONST_VARIABLE": 1, - "var/list/MyList": 1, - "list": 3, - "(": 17, - "new": 1, - "/datum/entity": 2, - ")": 17, - "var/list/EmptyList": 1, - "[": 2, - "]": 2, - "//": 6, - "creates": 1, - "a": 1, - "of": 1, - "null": 2, - "entries": 1, - "var/list/NullList": 1, - "var/name": 1, - "var/number": 1, - "/datum/entity/proc/myFunction": 1, - "world.log": 5, - "<<": 5, - "/datum/entity/New": 1, - "number": 2, - "GlobalCounter": 1, - "+": 3, - "/datum/entity/unit": 1, - "name": 1, - "/datum/entity/unit/New": 1, - "..": 1, - "calls": 1, - "the": 2, - "parent": 1, - "s": 1, - "proc": 1, - ";": 3, - "equal": 1, - "to": 1, - "super": 1, - "and": 1, - "base": 1, - "in": 1, - "other": 1, - "languages": 1, - "rand": 1, - "/datum/entity/unit/myFunction": 1, - "/proc/ReverseList": 1, - "var/list/input": 1, - "var/list/output": 1, + "to": 2, + "HTML": 1, + "converter": 2, "for": 1, - "var/i": 1, - "input.len": 1, - "i": 3, - "-": 2, - "IMPORTANT": 1, - "List": 1, - "Arrays": 1, - "count": 1, - "from": 1, - "output": 2, - "input": 1, - "is": 2, - "return": 3, - "/proc/DoStuff": 1, - "var/bitflag": 2, - "bitflag": 4, - "|": 1, - "/proc/DoOtherStuff": 1, - "bits": 1, - "maximum": 1, - "amount": 1, - "&": 1, - "/proc/DoNothing": 1, - "var/pi": 1, - "if": 2, - "pi": 2, - "else": 2, - "CONST_VARIABLE": 1, - "#undef": 1, - "Undefine": 1 - }, - "Dogescript": { - "quiet": 1, - "wow": 4, - "such": 2, - "language": 3, - "very": 1, - "syntax": 1, + "the": 5, + "lightweight": 1, + "markup": 1, + "language": 1, + "(": 5, + "http": 4, + "//wikicreole.org/": 1, + ")": 5, + ".": 1, + "Github": 1, + "uses": 1, + "this": 1, + "render": 1, + "*.creole": 1, + "files.": 1, + "Project": 1, + "page": 1, + "on": 2, "github": 1, - "recognized": 1, - "loud": 1, - "much": 1, - "friendly": 2, - "rly": 1, - "is": 2, - "true": 1, - "plz": 2, - "console.loge": 2, - "with": 2, - "but": 1, - "module.exports": 1 + "*": 5, + "//github.com/minad/creole": 1, + "Travis": 1, + "CI": 1, + "https": 1, + "//travis": 1, + "ci.org/minad/creole": 1, + "RDOC": 1, + "//rdoc.info/projects/minad/creole": 1, + "INSTALLATION": 1, + "{": 6, + "gem": 1, + "install": 1, + "creole": 1, + "}": 6, + "SYNOPSIS": 1, + "require": 1, + "html": 1, + "Creole.creolize": 1, + "BUGS": 1, + "If": 1, + "you": 1, + "found": 1, + "bug": 1, + "please": 1, + "report": 1, + "it": 1, + "at": 1, + "project": 1, + "s": 1, + "tracker": 1, + "GitHub": 1, + "//github.com/minad/creole/issues": 1, + "AUTHORS": 1, + "Lars": 2, + "Christensen": 2, + "larsch": 1, + "Daniel": 2, + "Mendler": 1, + "minad": 1, + "LICENSE": 1, + "Copyright": 1, + "c": 1, + "Mendler.": 1, + "It": 1, + "free": 1, + "software": 1, + "and": 1, + "may": 1, + "be": 1, + "redistributed": 1, + "under": 1, + "terms": 1, + "specified": 1, + "in": 1, + "README": 1, + "file": 1, + "of": 1, + "Ruby": 1, + "distribution.": 1 }, - "E": { - "def": 24, - "makeVehicle": 3, - "(": 65, + "JSON5": { + "{": 6, + "foo": 1, + "while": 1, + "true": 1, + "this": 1, + "here": 1, + "//": 2, + "inline": 1, + "comment": 1, + "hex": 1, + "xDEADbeef": 1, + "half": 1, + ".5": 1, + "delta": 1, + "+": 1, + "to": 1, + "Infinity": 1, + "and": 1, + "beyond": 1, + "finally": 1, + "oh": 1, + "[": 3, + "]": 3, + "}": 6, + "name": 1, + "version": 1, + "description": 1, + "keywords": 1, + "author": 1, + "contributors": 1, + "main": 1, + "bin": 1, + "dependencies": 1, + "devDependencies": 1, + "mocha": 1, + "scripts": 1, + "build": 1, + "test": 1, + "homepage": 1, + "repository": 1, + "type": 1, + "url": 1 + }, + "VHDL": { + "-": 2, + "VHDL": 1, + "example": 1, + "file": 1, + "library": 1, + "ieee": 1, + ";": 7, + "use": 1, + "ieee.std_logic_1164.all": 1, + "entity": 2, + "inverter": 2, + "is": 2, + "port": 1, + "(": 1, + "a": 2, + "in": 1, + "std_logic": 2, + "b": 2, + "out": 1, + ")": 1, + "end": 2, + "architecture": 2, + "rtl": 1, + "of": 1, + "begin": 1, + "<": 1, + "not": 1 + }, + "PHP": { + "SHEBANG#!php": 3, + "": 3, + "Yii": 3, + "console": 3, + "bootstrap": 1, + "file": 3, + "link": 10, + "http": 14, + "www": 4, + "yiiframework": 2, + "com": 2, + "copyright": 5, + "Copyright": 5, + "c": 1, + "2008": 1, + "Software": 5, + "LLC": 1, + "license": 6, + "defined": 5, + "YII_DEBUG": 2, + "or": 9, + "define": 2, + "true": 133, + "fcgi": 1, + "doesn": 1, + "t": 26, + "have": 2, + "STDIN": 3, + "by": 2, + "default": 9, + "fopen": 1, + "php": 12, + "stdin": 1, + "r": 1, + "require": 3, + "__DIR__": 3, + "vendor": 2, + "yiisoft": 1, + "yii2": 1, + "yii": 2, + "autoload": 1, + "config": 3, + "application": 2, + "new": 74, + "Application": 3, + "run": 4, + "(": 2416, + ")": 2417, + ";": 1383, + "<": 11, + "echo": 2, + "CakePHP": 6, + "tm": 6, + "Rapid": 2, + "Development": 2, + "Framework": 2, + "cakephp": 4, + "org": 10, + "2005": 4, + "2012": 4, + "Cake": 7, + "Foundation": 4, + "Inc": 4, + "cakefoundation": 4, + "Licensed": 2, + "under": 2, + "The": 4, + "MIT": 4, + "License": 4, + "Redistributions": 2, + "of": 10, + "files": 7, + "must": 2, + "retain": 2, + "the": 11, + "above": 2, + "notice": 2, + "Project": 2, + "package": 2, + "Controller": 4, + "since": 2, + "v": 17, + "0": 4, + "2": 2, + "9": 1, + "opensource": 2, + "licenses": 2, + "mit": 2, + "App": 20, + "uses": 46, + "CakeResponse": 2, + "Network": 1, + "ClassRegistry": 9, + "Utility": 6, + "ComponentCollection": 2, + "View": 9, + "CakeEvent": 13, + "Event": 6, + "CakeEventListener": 4, + "CakeEventManager": 5, + "controller": 3, + "class": 21, + "for": 8, + "organization": 1, + "business": 1, + "logic": 1, + "Provides": 1, + "basic": 1, + "functionality": 1, + "such": 1, + "as": 96, + "rendering": 1, + "views": 1, + "inside": 1, + "layouts": 1, + "automatic": 1, + "model": 34, + "availability": 1, + "redirection": 2, + "callbacks": 4, + "and": 5, + "more": 1, + "Controllers": 2, + "should": 1, + "provide": 1, + "a": 11, + "number": 1, + "action": 7, + "methods": 5, + "These": 1, + "are": 5, + "public": 202, + "on": 4, + "that": 2, + "not": 2, + "prefixed": 1, + "with": 5, + "_": 1, + "part": 10, + "Each": 1, + "serves": 1, + "an": 1, + "endpoint": 1, + "performing": 2, + "specific": 1, + "resource": 1, + "collection": 3, + "resources": 1, + "For": 2, + "example": 2, + "adding": 1, + "editing": 1, + "object": 14, + "listing": 1, + "set": 26, + "objects": 5, + "You": 2, + "can": 2, + "access": 1, + "request": 76, + "parameters": 4, + "using": 2, + "this": 928, + ".": 169, + "contains": 1, + "all": 11, + "POST": 1, + "GET": 1, + "FILES": 1, + "*": 25, + "were": 1, + "request.": 1, + "After": 1, + "required": 2, + "actions": 2, + "controllers": 2, + "responsible": 1, + "creating": 1, + "response.": 2, + "This": 1, + "usually": 1, + "takes": 1, + "form": 7, + "generated": 1, + "possibly": 1, + "to": 6, + "another": 1, + "action.": 1, + "In": 1, + "either": 1, + "case": 31, + "-": 1271, + "response": 33, + "allows": 1, + "you": 1, + "manipulate": 1, + "aspects": 1, + "created": 8, + "Dispatcher": 1, + "based": 2, + "routing.": 1, + "By": 1, + "use": 23, + "conventional": 1, + "names.": 1, + "/posts/index": 1, + "maps": 1, + "PostsController": 1, + "index": 5, + "re": 1, + "map": 1, + "urls": 1, + "Router": 5, + "connect": 1, + "@package": 2, + "Cake.Controller": 1, + "@property": 8, + "AclComponent": 1, + "Acl": 1, + "AuthComponent": 1, + "Auth": 1, + "CookieComponent": 1, + "Cookie": 1, + "EmailComponent": 1, + "Email": 1, + "PaginatorComponent": 1, + "Paginator": 1, + "RequestHandlerComponent": 1, + "RequestHandler": 1, + "SecurityComponent": 1, + "Security": 1, + "SessionComponent": 1, + "Session": 1, + "@link": 2, + "//book.cakephp.org/2.0/en/controllers.html": 1, + "*/": 2, + "extends": 3, + "Object": 4, + "implements": 3, + "{": 974, + "name": 181, + "null": 164, + "helpers": 1, + "array": 296, + "protected": 59, + "_responseClass": 1, + "viewPath": 3, + "layoutPath": 1, + "viewVars": 3, + "view": 5, + "layout": 5, + "autoRender": 6, + "autoLayout": 2, + "Components": 7, + "components": 1, + "viewClass": 10, + "ext": 1, + "plugin": 31, + "cacheAction": 1, + "false": 154, + "passedArgs": 2, + "scaffold": 2, + "modelClass": 25, + "modelKey": 2, + "validationErrors": 50, + "_mergeParent": 4, + "_eventManager": 12, + "function": 205, + "__construct": 8, + "if": 450, + "substr": 6, + "get_class": 4, + "}": 972, + "Inflector": 12, + "singularize": 4, + "underscore": 3, + "childMethods": 2, + "get_class_methods": 2, + "parentMethods": 2, + "array_diff": 3, + "instanceof": 8, + "CakeRequest": 5, + "setRequest": 2, + "parent": 14, + "__isset": 2, + "switch": 6, + "return": 305, + "is_array": 37, + "foreach": 94, + "list": 29, + "pluginSplit": 12, + "loadModel": 3, + "__get": 2, + "isset": 101, + "params": 34, + "[": 672, + "]": 672, + "load": 3, + "settings": 2, + "__set": 1, + "value": 53, + "camelize": 3, + "&&": 119, + "array_merge": 32, + "array_key_exists": 11, + "empty": 96, + "invokeAction": 1, + "try": 3, + "method": 31, + "ReflectionMethod": 2, + "_isPrivateAction": 2, + "throw": 19, + "PrivateActionException": 1, + "invokeArgs": 1, + "catch": 3, + "ReflectionException": 1, + "e": 18, + "_getScaffold": 2, + "MissingActionException": 1, + "privateAction": 4, + "||": 52, + "isPublic": 1, + "in_array": 26, + "prefixes": 4, + "strpos": 15, + "prefix": 2, + "explode": 9, + "Scaffold": 1, + "_mergeControllerVars": 2, + "pluginController": 9, + "pluginDot": 4, + "mergeParent": 2, + "is_subclass_of": 3, + "pluginVars": 3, + "appVars": 6, + "merge": 12, + "_mergeVars": 5, + "get_class_vars": 2, + "array_unshift": 2, + "_mergeUses": 3, + "else": 70, + "implementedEvents": 2, + "constructClasses": 1, + "init": 4, + "current": 4, + "getEventManager": 13, + "attach": 4, + "startupProcess": 1, + "dispatch": 11, + "shutdownProcess": 1, + "httpCodes": 3, + "code": 4, + "id": 82, + "MissingModelException": 1, + "redirect": 6, + "url": 18, + "status": 15, + "exit": 7, + "extract": 9, + "EXTR_OVERWRITE": 3, + "event": 35, + "//TODO": 1, + "Remove": 1, + "following": 1, + "line": 10, + "when": 1, + "events": 1, + "fully": 1, + "migrated": 1, + "break": 19, + "breakOn": 4, + "collectReturn": 1, + "isStopped": 4, + "result": 21, + "_parseBeforeRedirect": 2, + "function_exists": 4, + "session_write_close": 1, + "header": 3, + "is_string": 7, + "codes": 3, + "array_flip": 1, + "statusCode": 14, + "send": 1, + "_stop": 1, + "resp": 6, + "elseif": 31, + "compact": 8, + "one": 19, + "two": 6, + "data": 187, + "array_combine": 2, + "+": 12, + "setAction": 1, + "args": 5, + "func_get_args": 5, + "unset": 22, + "call_user_func_array": 3, + "&": 19, + "validate": 9, + "errors": 9, + "count": 32, + "validateErrors": 1, + "alias": 87, + "invalidFields": 2, + "render": 3, + "className": 27, + "models": 6, + "keys": 19, + "currentModel": 2, + "currentObject": 6, + "getObject": 1, + "is_a": 1, + "location": 1, + "body": 1, + "referer": 5, + "local": 2, + "disableCache": 2, + "flash": 1, + "message": 12, + "pause": 2, + "postConditions": 1, + "op": 9, + "bool": 5, + "exclusive": 2, + "cond": 5, + "arrayOp": 2, + "fields": 60, + "field": 88, + "key": 64, + "fieldOp": 11, + "continue": 7, + "strtoupper": 3, + "trim": 3, + "paginate": 3, + "scope": 2, + "whitelist": 14, + "beforeFilter": 1, + "beforeRender": 1, + "beforeRedirect": 1, + "afterFilter": 1, + "beforeScaffold": 2, + "_beforeScaffold": 1, + "afterScaffoldSave": 2, + "_afterScaffoldSave": 1, + "afterScaffoldSaveError": 2, + "_afterScaffoldSaveError": 1, + "scaffoldError": 2, + "_scaffoldError": 1, + "namespace": 28, + "Symfony": 24, + "Component": 24, + "DomCrawler": 5, + "Field": 9, + "FormField": 3, + "Form": 4, + "Link": 3, + "ArrayAccess": 1, + "private": 24, + "button": 6, + "DOMNode": 3, + "node": 42, + "currentUri": 7, + "initialize": 2, + "getFormNode": 1, + "setValues": 2, + "values": 53, + "getValues": 3, + "isDisabled": 2, + "FileFormField": 3, + "hasValue": 1, + "getValue": 2, + "getFiles": 3, + "getMethod": 6, + "getPhpValues": 2, + "qs": 4, + "http_build_query": 3, + "parse_str": 2, + "getPhpFiles": 2, + "getUri": 8, + "uri": 23, + "queryString": 2, + "sep": 1, + "sep.": 1, + "getRawUri": 1, + "getAttribute": 10, + "has": 7, + "remove": 4, + "get": 12, + "add": 7, + "offsetExists": 1, + "offsetGet": 1, + "offsetSet": 1, + "offsetUnset": 1, + "setNode": 1, + "nodeName": 13, + "do": 2, + "parentNode": 1, + "LogicException": 4, + "while": 6, + "sprintf": 27, + "FormFieldRegistry": 2, + "document": 6, + "DOMDocument": 2, + "importNode": 3, + "root": 4, + "appendChild": 10, + "createElement": 6, + "xpath": 2, + "DOMXPath": 1, + "query": 102, + "hasAttribute": 1, + "InputFormField": 2, + "ChoiceFormField": 2, + "addChoice": 1, + "TextareaFormField": 1, + "base": 8, + "segments": 13, + "getSegments": 4, + "getName": 14, + "target": 20, + "path": 20, + "array_shift": 5, + "InvalidArgumentException": 9, "self": 1, - ")": 64, - "{": 57, - "vehicle": 2, - "to": 27, - "milesTillEmpty": 1, - "return": 19, - "self.milesPerGallon": 1, - "*": 1, - "self.getFuelRemaining": 1, - "}": 57, - "makeCar": 4, - "var": 6, - "fuelRemaining": 4, - "car": 8, - "extends": 2, - "milesPerGallon": 2, - "getFuelRemaining": 2, - "makeJet": 1, - "jet": 3, - "println": 2, - "The": 2, - "can": 1, - "go": 1, - "car.milesTillEmpty": 1, - "miles.": 1, - "name": 4, - "x": 3, - "y": 3, - "moveTo": 1, - "newX": 2, - "newY": 2, - "getX": 1, - "getY": 1, + "create": 13, + "k": 7, + "setValue": 1, + "walk": 3, + "static": 6, + "registry": 4, + "output": 60, + "preg_match": 6, + "m": 5, + "BrowserKit": 1, + "Crawler": 2, + "Process": 1, + "PhpProcess": 2, + "abstract": 2, + "Client": 1, + "history": 15, + "cookieJar": 9, + "server": 20, + "crawler": 7, + "insulated": 7, + "followRedirects": 5, + "History": 2, + "CookieJar": 2, + "setServerParameters": 2, + "followRedirect": 4, + "Boolean": 4, + "insulate": 1, + "class_exists": 2, + "RuntimeException": 2, + "setServerParameter": 1, + "getServerParameter": 1, + "getHistory": 1, + "getCookieJar": 1, + "getCrawler": 1, + "getResponse": 1, + "getRequest": 1, + "click": 1, + "submit": 2, + "content": 4, + "changeHistory": 4, + "getAbsoluteUri": 2, + "isEmpty": 2, + "parse_url": 3, + "PHP_URL_HOST": 1, + "PHP_URL_SCHEME": 1, + "Request": 3, + "allValues": 1, + "filterRequest": 2, + "doRequestInProcess": 2, + "doRequest": 2, + "filterResponse": 2, + "updateFromResponse": 1, + "getHeader": 2, + "createCrawlerFromContent": 2, + "getContent": 2, + "process": 10, + "getScript": 2, + "sys_get_temp_dir": 2, + "isSuccessful": 1, + "getOutput": 3, + "getErrorOutput": 2, + "unserialize": 1, + "type": 62, + "addContent": 1, + "back": 2, + "requestFromRequest": 4, + "forward": 2, + "reload": 1, + "restart": 1, + "clear": 2, + "preg_replace": 4, + "PHP_URL_PATH": 1, + "strrpos": 2, + "path.": 1, + "getParameters": 1, + "getServer": 1, + "Console": 17, + "Input": 6, + "InputInterface": 4, + "ArgvInput": 2, + "ArrayInput": 3, + "InputDefinition": 2, + "InputOption": 15, + "InputArgument": 3, + "Output": 5, + "OutputInterface": 6, + "ConsoleOutput": 2, + "ConsoleOutputInterface": 2, + "Command": 6, + "HelpCommand": 2, + "ListCommand": 2, + "Helper": 3, + "HelperSet": 3, + "FormatterHelper": 2, + "DialogHelper": 2, + "commands": 39, + "wantHelps": 4, + "runningCommand": 5, + "version": 8, + "catchExceptions": 4, + "autoExit": 4, + "definition": 3, + "helperSet": 6, + "getDefaultHelperSet": 2, + "getDefaultInputDefinition": 2, + "getDefaultCommands": 2, + "command": 41, + "input": 20, + "doRun": 2, + "Exception": 1, + "renderException": 3, + "getCode": 1, + "is_numeric": 7, + "getCommandName": 2, + "hasParameterOption": 7, + "setDecorated": 2, + "setInteractive": 2, + "getHelperSet": 3, + "inputStream": 2, + "getInputStream": 1, + "posix_isatty": 1, + "setVerbosity": 2, + "VERBOSITY_QUIET": 1, + "VERBOSITY_VERBOSE": 2, + "writeln": 13, + "getLongVersion": 3, + "find": 17, + "setHelperSet": 1, + "getDefinition": 2, + "getHelp": 2, + "messages": 16, + "getOptions": 1, + "option": 5, + "getShortcut": 2, + "getDescription": 3, + "implode": 8, + "PHP_EOL": 3, + "setCatchExceptions": 1, + "boolean": 4, + "setAutoExit": 1, "setName": 1, - "newName": 2, - "getName": 1, - "sportsCar": 1, - "sportsCar.moveTo": 1, - "sportsCar.getName": 1, + "getVersion": 3, + "setVersion": 1, + "register": 1, + "addCommands": 1, + "setApplication": 2, + "isEnabled": 1, + "getAliases": 3, + "helpCommand": 3, + "setCommand": 1, + "getNamespaces": 3, + "namespaces": 4, + "extractNamespace": 7, + "array_values": 5, + "array_unique": 4, + "array_filter": 2, + "findNamespace": 4, + "allNamespaces": 3, + "n": 12, + "found": 4, + "i": 36, + "abbrevs": 31, + "getAbbreviations": 4, + "array_map": 2, + "p": 3, + "<=>": 3, + "alternatives": 10, + "findAlternativeNamespace": 2, + "getAbbreviationSuggestions": 4, + "searchName": 13, + "pos": 3, + "namespace.substr": 1, + "suggestions": 2, + "aliases": 8, + "findAlternativeCommands": 2, + "substr_count": 1, + "names": 3, + "len": 11, + "strlen": 14, + "abbrev": 4, + "asText": 1, + "raw": 2, + "width": 7, + "sortCommands": 4, + "space": 5, + "space.": 1, + "asXml": 2, + "asDom": 2, + "dom": 12, + "formatOutput": 1, + "xml": 5, + "commandsXML": 3, + "setAttribute": 2, + "namespacesXML": 3, + "namespaceArrayXML": 4, + "commandXML": 3, + "createTextNode": 1, + "getElementsByTagName": 1, + "item": 9, + "saveXml": 1, + "string": 5, + "encoding": 2, + "mb_detect_encoding": 1, + "mb_strlen": 1, + "title": 3, + "getTerminalWidth": 3, + "PHP_INT_MAX": 1, + "lines": 3, + "preg_split": 1, + "getMessage": 1, + "str_split": 1, + "max": 2, + "str_repeat": 2, + "title.str_repeat": 1, + "line.str_repeat": 1, + "message.": 1, + "getVerbosity": 1, + "trace": 12, + "getTrace": 1, + "getFile": 2, + "getLine": 2, + "getPrevious": 1, + "getSynopsis": 1, + "ansicon": 4, + "getenv": 2, + "getSttyColumns": 3, + "match": 4, + "getTerminalHeight": 1, + "getFirstArgument": 1, + "REQUIRED": 1, + "VALUE_NONE": 7, + "descriptorspec": 2, + "proc_open": 1, + "pipes": 4, + "is_resource": 1, + "info": 5, + "stream_get_contents": 1, + "fclose": 2, + "proc_close": 1, + "namespacedCommands": 5, + "ksort": 2, + "limit": 3, + "parts": 4, + "array_pop": 1, + "array_slice": 1, + "callback": 5, + "findAlternatives": 3, + "call_user_func": 2, + "lev": 6, + "levenshtein": 2, + "3": 1, + "/": 1, + "asort": 1, + "array_keys": 7, + "relational": 2, + "mapper": 2, + "DBO": 2, + "backed": 2, + "mapping": 1, + "database": 2, + "tables": 5, + "PHP": 1, + "versions": 1, + "5": 1, + "Model": 5, + "10": 1, + "Validation": 1, + "String": 5, + "Set": 9, + "BehaviorCollection": 2, + "ModelBehavior": 1, + "ConnectionManager": 2, + "Xml": 2, + "Automatically": 1, + "selects": 1, + "table": 21, + "pluralized": 1, + "lowercase": 1, + "User": 1, "is": 1, "at": 1, - "X": 1, - "location": 1, - "sportsCar.getX": 1, - "makeVOCPair": 1, - "brandName": 3, - "String": 1, - "near": 6, - "myTempContents": 6, - "none": 2, - "brand": 5, - "__printOn": 4, - "out": 4, - "TextWriter": 4, - "void": 5, - "out.print": 4, - "ProveAuth": 2, - "<$brandName>": 3, - "prover": 1, - "getBrand": 4, - "coerce": 2, - "specimen": 2, - "optEjector": 3, - "sealedBox": 2, - "offerContent": 1, - "CheckAuth": 2, - "checker": 3, - "template": 1, - "match": 4, - "[": 10, - "get": 2, - "authList": 2, - "any": 2, - "]": 10, - "specimenBox": 2, - "null": 1, - "if": 2, - "specimenBox.__respondsTo": 1, - "specimenBox.offerContent": 1, - "else": 1, - "for": 3, - "auth": 3, - "in": 1, - "throw.eject": 1, - "Unmatched": 1, - "authorization": 1, - "__respondsTo": 2, - "_": 3, - "true": 1, - "false": 1, - "__getAllegedType": 1, - "null.__getAllegedType": 1, - "#File": 1, - "objects": 1, - "hardwired": 1, - "files": 1, - "file1": 1, - "": 1, - "file2": 1, - "": 1, - "#Using": 2, + "least": 1, + "primary": 3, + "key.": 1, + "Cake.Model": 1, + "//book.cakephp.org/2.0/en/models.html": 1, + "useDbConfig": 7, + "useTable": 12, + "displayField": 4, + "schemaName": 1, + "primaryKey": 38, + "_schema": 11, + "validationDomain": 1, + "tablePrefix": 8, + "tableToModel": 4, + "cacheQueries": 1, + "belongsTo": 7, + "hasOne": 2, + "hasMany": 2, + "hasAndBelongsToMany": 24, + "actsAs": 2, + "Behaviors": 6, + "cacheSources": 7, + "findQueryType": 3, + "recursive": 9, + "order": 4, + "virtualFields": 8, + "_associationKeys": 2, + "_associations": 5, + "__backAssociation": 22, + "__backInnerAssociation": 1, + "__backOriginalAssociation": 1, + "__backContainableAssociation": 1, + "_insertID": 1, + "_sourceConfigured": 1, + "findMethods": 3, + "ds": 3, + "addObject": 2, + "parentClass": 3, + "get_parent_class": 1, + "tableize": 2, + "_createLinks": 3, + "__call": 1, + "dispatchMethod": 1, + "getDataSource": 15, + "relation": 7, + "assocKey": 13, + "dynamic": 2, + "isKeySet": 1, + "AppModel": 1, + "_constructLinkedModel": 2, + "schema": 11, + "hasField": 7, + "setDataSource": 2, + "property_exists": 3, + "bindModel": 1, + "reset": 6, + "assoc": 75, + "assocName": 6, + "unbindModel": 1, + "_generateAssociation": 2, + "dynamicWith": 3, + "sort": 1, + "setSource": 1, + "tableName": 4, + "db": 45, + "method_exists": 5, + "sources": 3, + "listSources": 1, + "strtolower": 1, + "MissingTableException": 1, + "is_object": 2, + "SimpleXMLElement": 1, + "_normalizeXmlData": 3, + "toArray": 1, + "reverse": 1, + "_setAliasData": 2, + "modelName": 3, + "fieldSet": 3, + "fieldName": 6, + "fieldValue": 7, + "deconstruct": 2, + "getAssociated": 4, + "getColumnType": 4, + "useNewDate": 2, + "dateFields": 5, + "timeFields": 2, + "date": 9, + "val": 27, + "format": 3, + "columns": 5, + "str_replace": 3, + "describe": 1, + "getColumnTypes": 1, + "trigger_error": 1, + "__d": 1, + "E_USER_WARNING": 1, + "cols": 7, + "column": 10, + "startQuote": 4, + "endQuote": 4, + "checkVirtual": 3, + "isVirtualField": 3, + "hasMethod": 2, + "getVirtualField": 1, + "filterKey": 2, + "defaults": 6, + "properties": 4, + "read": 2, + "conditions": 41, + "saveField": 1, + "options": 85, + "save": 9, + "fieldList": 1, + "_whitelist": 4, + "keyPresentAndEmpty": 2, + "exists": 6, + "validates": 60, + "updateCol": 6, + "colType": 4, + "time": 3, + "strtotime": 1, + "joined": 5, + "x": 4, + "y": 2, + "success": 10, + "cache": 2, + "_prepareUpdateFields": 2, + "update": 2, + "fInfo": 4, + "isUUID": 5, + "j": 2, + "array_search": 1, + "uuid": 3, + "updateCounterCache": 6, + "_saveMulti": 2, + "_clearCache": 2, + "join": 22, + "joinModel": 8, + "keyInfo": 4, + "withModel": 4, + "pluginName": 1, + "dbMulti": 6, + "newData": 5, + "newValues": 8, + "newJoins": 7, + "primaryAdded": 3, + "idField": 3, + "row": 17, + "keepExisting": 3, + "associationForeignKey": 5, + "links": 4, + "oldLinks": 4, + "delete": 9, + "oldJoin": 4, + "insertMulti": 1, + "foreignKey": 11, + "fkQuoted": 3, + "escapeField": 6, + "intval": 4, + "updateAll": 3, + "foreignKeys": 3, + "included": 3, + "array_intersect": 1, + "old": 2, + "saveAll": 1, + "numeric": 1, + "validateMany": 4, + "saveMany": 3, + "validateAssociated": 5, + "saveAssociated": 5, + "transactionBegun": 4, + "begin": 2, + "record": 10, + "saved": 18, + "commit": 2, + "rollback": 2, + "associations": 9, + "association": 47, + "notEmpty": 4, + "_return": 3, + "recordData": 2, + "cascade": 10, + "_deleteDependent": 3, + "_deleteLinks": 3, + "_collectForeignKeys": 2, + "savedAssociatons": 3, + "deleteAll": 2, + "records": 6, + "ids": 8, + "_id": 2, + "getID": 2, + "hasAny": 1, + "buildQuery": 2, + "is_null": 1, + "results": 22, + "resetAssociations": 3, + "_filterResults": 2, + "ucfirst": 2, + "modParams": 2, + "_findFirst": 1, + "state": 15, + "_findCount": 1, + "calculate": 2, + "expression": 1, + "_findList": 1, + "tokenize": 1, + "lst": 4, + "combine": 1, + "_findNeighbors": 1, + "prevVal": 2, + "return2": 6, + "_findThreaded": 1, + "nest": 1, + "isUnique": 1, + "is_bool": 1, + "sql": 1, + "php_help": 1, + "arg": 1, + "php_permission": 1, + "TRUE": 1, + "php_eval": 1, + "global": 2, + "theme_path": 5, + "theme_info": 3, + "conf": 2, + "old_theme_path": 2, + "drupal_get_path": 1, + "dirname": 1, + "filename": 1, + "ob_start": 1, + "print": 1, + "eval": 1, + "ob_get_contents": 1, + "ob_end_clean": 1, + "_php_filter_tips": 1, + "filter": 1, + "long": 2, + "FALSE": 2, + "base_url": 1, + "php_filter_info": 1, + "filters": 2 + }, + "OCaml": { + "type": 2, "a": 4, - "variable": 1, - "file": 3, - "filePath": 2, - "file3": 1, - "": 1, - "single": 1, - "character": 1, - "specify": 1, - "Windows": 1, - "drive": 1, - "file4": 1, - "": 1, - "file5": 1, - "": 1, - "file6": 1, - "": 1, - "pragma.syntax": 1, - "send": 1, - "message": 4, - "when": 2, - "friend": 4, - "<-receive(message))>": 1, - "chatUI.showMessage": 4, - "catch": 2, - "prob": 2, - "receive": 1, - "receiveFriend": 2, - "friendRcvr": 2, - "bind": 2, - "save": 1, - "file.setText": 1, - "makeURIFromObject": 1, - "chatController": 2, - "load": 1, - "getObjectFromURI": 1, - "file.getText": 1, + "-": 22, + "unit": 5, + ")": 23, + "module": 5, + "Ops": 2, + "struct": 5, + "let": 13, + "(": 21, + "@": 6, + "f": 10, + "k": 21, + "|": 15, + "x": 14, + "end": 5, + "open": 4, + "List": 1, + "rec": 3, + "map": 3, + "l": 8, + "match": 4, + "with": 4, + "[": 13, + "]": 13, + "hd": 6, + "tl": 6, + "fun": 9, + "fold": 2, + "acc": 5, + "Option": 1, + "opt": 2, + "None": 5, + "Some": 5, + "Lazy": 1, + "option": 1, + ";": 14, + "mutable": 1, + "waiters": 5, + "}": 13, + "make": 1, + "push": 4, + "cps": 7, + "{": 11, + "value": 3, + "force": 1, + "l.value": 2, + "when": 1, + "l.waiters": 5, + "<->": 3, + "function": 1, + "Base.List.iter": 1, + "l.push": 1, "<": 1, + "get_state": 1, + "lazy_from_val": 1, + "_": 2, + "shared": 1, + "Eliom_content": 1, + "Html5.D": 1, + "Eliom_parameter": 1, + "server": 2, + "Example": 1, + "Eliom_registration.App": 1, + "application_name": 1, + "main": 2, + "Eliom_service.service": 1, + "path": 1, + "get_params": 1, + "client": 1, + "hello_popup": 2, + "Dom_html.window##alert": 1, + "Js.string": 1, + "Example.register": 1, + "service": 1, + "Lwt.return": 1, + "html": 1, + "head": 1, + "title": 1, + "pcdata": 4, + "body": 1, + "h1": 1, + "p": 1, + "h2": 1, + "a_onclick": 1 + }, + "Grammatical Framework": { + "-": 594, + "#": 14, + "path": 14, + ".": 13, + "../foods": 1, + "present": 7, + "concrete": 33, + "FoodsFre": 1, + "of": 89, + "Foods": 34, + "open": 23, + "SyntaxFre": 1, + "ParadigmsFre": 1, + "in": 32, + "{": 579, + "flags": 32, + "coding": 29, + "utf8": 29, + ";": 1399, + "lincat": 28, + "Comment": 31, + "Utt": 4, + "Item": 31, + "NP": 4, + "Kind": 33, + "CN": 4, + "Quality": 34, + "AP": 4, + "lin": 28, + "Pred": 30, + "item": 36, + "quality": 90, + "mkUtt": 4, + "(": 256, + "mkCl": 4, + ")": 256, + "This": 29, + "kind": 115, + "mkNP": 16, + "this_QuantSg": 2, + "That": 29, + "that_QuantSg": 2, + "These": 28, + "these_QuantPl": 2, + "Those": 28, + "those_QuantPl": 2, + "Mod": 29, + "mkCN": 20, + "Very": 29, + "mkAP": 28, + "very_AdA": 4, + "Wine": 29, + "mkN": 46, + "masculine": 4, + "Pizza": 28, + "feminine": 2, + "Cheese": 29, + "Fish": 29, + "Fresh": 29, + "mkA": 47, + "Warm": 29, + "Italian": 29, + "Expensive": 29, + "Delicious": 29, + "Boring": 29, + "}": 580, + "FoodsPes": 1, + "optimize": 1, + "noexpand": 1, + "s": 365, + "Str": 394, + "Add": 8, + "prep": 11, + "Number": 207, + "n": 206, + "item.s": 24, + "+": 480, + "quality.s": 50, + "Indep": 4, + "copula": 33, + "item.n": 29, + "det": 86, + "Sg": 184, + "Pl": 182, + "a": 57, + "kind.s": 46, + "Attr": 9, + "kind.prep": 1, + "quality.prep": 1, + "regN": 15, + "at": 3, + "a.s": 8, + "a.prep": 1, + "adj": 38, + "it": 2, + "must": 1, + "be": 1, + "written": 1, + "as": 2, + "param": 22, + "|": 122, + "oper": 29, + "noun": 51, + "noun.s": 7, + "x1": 3, + "_": 68, + "x4": 2, + "pytzA": 3, + "pytzAy": 1, + "pytzAhA": 3, + "pr": 4, + "case": 44, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "mrd": 8, + "tAzh": 8, + "mkAdj": 27, + "tAzhy": 2, + "table": 148, + "c": 73, + "Aarne": 13, + "Ranta": 13, + "under": 33, + "LGPL": 33, + "FoodsEng": 1, + "language": 2, + "en_US": 1, + "regNoun": 38, + "man": 10, + "men": 10, + "car": 6, + "cold": 4, + "instance": 5, + "LexFoodsSwe": 2, + "LexFoods": 12, + "SyntaxSwe": 2, + "ParadigmsSwe": 1, + "wine_N": 7, + "pizza_N": 7, + "cheese_N": 7, + "fish_N": 8, + "fresh_A": 7, + "warm_A": 8, + "italian_A": 7, + "expensive_A": 7, + "delicious_A": 7, + "boring_A": 7, + "Jordi": 2, + "Saludes": 2, + "LexFoodsCat": 2, + "SyntaxCat": 2, + "ParadigmsCat": 1, + "M": 1, + "MorphoCat": 1, + "M.Masc": 2, + "Katerina": 2, + "Bohmova": 2, + "FoodsCze": 1, + "ResCze": 2, + "Adjective": 9, + "Noun": 9, + "NounPhrase": 3, + "item.g": 12, + "kind.g": 38, + "g": 132, + "Neutr": 21, + "Masc": 67, + "Fem": 65, + "qual": 8, + "qual.s": 8, + "regAdj": 61, + "regnfAdj": 2, + "Femke": 1, + "Johansson": 1, + "FoodsDut": 1, + "AForm": 4, + "APred": 8, + "AAttr": 3, + "f": 16, + "regadj": 6, + "wijn": 3, + "koud": 3, + "duur": 2, + "dure": 2, + "LexFoodsIta": 2, + "SyntaxIta": 2, + "ParadigmsIta": 1, + "LexFoodsGer": 2, + "SyntaxGer": 2, + "ParadigmsGer": 1, + "Laurette": 2, + "Pretorius": 2, + "Sr": 2, + "&": 2, + "Jr": 2, + "and": 4, + "Ansu": 2, + "Berg": 2, + "FoodsAfr": 1, + "Prelude": 11, + "Predef": 3, + "AdjAP": 10, + "Predic": 3, + "declNoun_e": 2, + "declNoun_aa": 2, + "declNoun_ss": 2, + "declNoun_s": 2, + "veryAdj": 2, + "smartAdj_e": 4, + "operations": 2, + "wyn": 1, + "kaas": 1, + "vis": 1, + "pizza": 1, + "x": 74, + "let": 8, + "v": 6, + "tk": 1, + "last": 3, + "y": 3, + "declAdj_e": 2, + "declAdj_g": 2, + "w": 15, + "init": 4, + "declAdj_oog": 2, + "i": 2, + "x.s": 8, + "FoodsFin": 1, + "FoodsI": 6, + "with": 5, + "Syntax": 7, + "SyntaxFin": 2, + "LexFoodsFin": 2, + "FoodsSpa": 1, + "SyntaxSpa": 1, + "StructuralSpa": 1, + "ParadigmsSpa": 1, + "Vikash": 1, + "Rauniyar": 1, + "FoodsHin": 2, + "Gender": 94, + "p": 11, + "lark": 8, + "ms": 4, + "mp": 4, + "acch": 6, + "FoodsCat": 1, + "Dinesh": 1, + "Simkhada": 1, + "FoodsNep": 1, + "adjPl": 2, + "bor": 2, + "Julia": 1, + "Hammar": 1, + "FoodsEpo": 1, + "SS": 6, + "ss": 13, + "d": 6, + "cn": 11, + "cn.s": 8, + "vino": 3, + "nova": 3, + "Rami": 1, + "Shashati": 1, + "FoodsPor": 1, + "mkAdjReg": 7, + "QualityT": 5, + "Type": 9, + "bonito": 2, + "bonita": 2, + "bonitos": 2, + "bonitas": 2, + "regular": 2, + "pattern": 1, + "adjSozinho": 2, + "sozinho": 3, + "sozinh": 4, + "Predef.tk": 2, + "for": 6, + "gender": 2, + "independent": 1, + "adjectives": 2, + "adjUtil": 2, + "util": 3, + "uteis": 3, + "smart": 1, + "paradigm": 1, + "adjcetives": 1, + "ItemT": 2, + "KindT": 4, + "num": 6, + "noun.g": 3, + "animal": 2, + "animais": 2, + "gen": 4, + "carro": 3, + "John": 1, + "J.": 1, + "Camilleri": 1, + "FoodsMlt": 1, + "adjective": 22, + "uniAdj": 2, + "Create": 6, + "an": 2, + "full": 1, + "function": 1, + "Params": 4, + "Sing": 4, + "Plural": 2, + "iswed": 2, + "sewda": 2, + "suwed": 3, + "Param": 2, + "frisk": 4, + "eg": 1, + "tal": 1, + "buzz": 1, + "uni": 4, + "Singular": 1, + "inherent": 1, + "ktieb": 2, + "kotba": 2, + "Copula": 1, + "is": 6, + "linking": 1, + "verb": 1, + "article": 3, + "taking": 1, + "into": 1, + "account": 1, + "first": 1, + "letter": 1, + "next": 1, + "word": 3, + "pre": 1, + "cons@": 1, + "cons": 1, + "determinant": 1, + "Sg/Pl": 1, + "m": 9, + "cn.g": 10, + "string": 1, + "default": 1, + "to": 6, + "masc": 3, + "number": 2, + "FoodsIta": 1, + "prelude": 2, + "Inese": 1, + "Bernsone": 1, + "FoodsLav": 1, + "Q": 5, + "Defin": 9, + "Q1": 5, + "Ind": 14, + "Def": 21, + "q": 10, + "spec": 2, + "Q2": 3, + "specAdj": 2, + "skaists": 5, + "skaista": 2, + "skaisti": 2, + "skaistas": 2, + "skaistais": 2, + "skaistaa": 2, + "skaistie": 2, + "skaistaas": 2, + "skaist": 8, + "incomplete": 1, + "this_Det": 2, + "that_Det": 2, + "these_Det": 2, + "those_Det": 2, + "FoodsChi": 1, + "quality.p": 2, + "kind.c": 11, + "geKind": 5, + "longQuality": 8, + "mkKind": 2, + "interface": 1, + "N": 4, + "A": 6, + "Martha": 1, + "Dis": 1, + "Brandt": 1, + "FoodsIce": 1, + "the": 7, + "more": 1, + "commonly": 1, + "used": 2, + "Iceland": 1, + "but": 1, + "Icelandic": 1, + "defOrInd": 2, + "order": 1, + "given": 1, + "forms": 2, + "mSg": 1, + "fSg": 1, + "nSg": 1, + "mPl": 1, + "fPl": 1, + "nPl": 1, + "mSgDef": 1, + "f/nSgDef": 1, + "_PlDef": 1, + "fem": 2, + "neutr": 2, + "x9": 1, + "ferskur": 5, + "fersk": 11, + "ferskt": 2, + "ferskir": 2, + "ferskar": 2, + "fersk_pl": 2, + "ferski": 2, + "ferska": 2, + "fersku": 2, + "t": 28, + "": 1, + "<": 10, + "abstract": 1, + "startcat": 1, + "cat": 1, + "fun": 1, + "Shafqat": 1, + "Virk": 1, + "FoodsUrd": 1, + "coupla": 2, + "alltenses": 3, + "FoodsTha": 1, + "SyntaxTha": 1, + "LexiconTha": 1, + "ParadigmsTha": 1, + "R": 4, + "ResTha": 1, + "R.thword": 4, + "FoodsAmh": 1, + "ParadigmsFin": 1, + "FoodsGer": 1, + "FoodsTsn": 1, + "NounClass": 28, + "r": 9, + "b": 9, + "Bool": 5, + "p_form": 18, + "TType": 16, + "mkPredDescrCop": 2, + "quality.t": 3, + "item.c": 1, + "quality.p_form": 1, + "kind.w": 4, + "mkDemPron1": 3, + "kind.q": 4, + "mkDemPron2": 3, + "mkMod": 2, + "Lexicon": 1, + "mkNounNC14_6": 2, + "mkNounNC9_10": 4, + "smartVery": 2, + "mkVarAdj": 2, + "mkOrdAdj": 4, + "mkPerAdj": 2, + "mkVerbRel": 2, + "NC9_10": 14, + "NC14_6": 14, + "P": 4, + "V": 4, + "ModV": 4, + "y.b": 1, + "True": 3, + "y.w": 2, + "y.r": 2, + "y.c": 14, + "y.q": 4, + "smartQualRelPart": 5, + "x.t": 10, + "smartDescrCop": 5, + "False": 3, + "mkVeryAdj": 2, + "x.p_form": 2, + "mkVeryVerb": 3, + "mkQualRelPart_PName": 2, + "mkQualRelPart": 2, + "mkDescrCop_PName": 2, + "mkDescrCop": 2, + "FoodsSwe": 1, + "**": 1, + "sv_SE": 1, + "/GF/lib/src/prelude": 1, + "Nyamsuren": 1, + "Erdenebadrakh": 1, + "FoodsMon": 1, + "prefixSS": 1, + "Dana": 1, + "Dannells": 1, + "Licensed": 1, + "FoodsHeb": 2, + "Species": 8, + "mod": 7, + "Modified": 5, + "sp": 11, + "Indef": 6, + "T": 2, + "regAdj2": 3, + "F": 2, + "Adj": 4, + "cn.mod": 2, + "gvina": 6, + "hagvina": 3, + "gvinot": 6, + "hagvinot": 3, + "defH": 7, + "replaceLastLetter": 7, + "tov": 6, + "tova": 3, + "tovim": 3, + "tovot": 3, + "c@": 3, + "italki": 3, + "italk": 4, + "FoodsOri": 1, + "Ramona": 1, + "Enache": 1, + "FoodsRon": 1, + "NGender": 6, + "NMasc": 2, + "NFem": 3, + "NNeut": 2, + "mkTab": 5, + "mkNoun": 5, + "getAgrGender": 3, + "acesta": 2, + "aceasta": 2, + "gg": 3, + "det.s": 1, + "peste": 2, + "pesti": 2, + "scump": 2, + "scumpa": 2, + "scumpi": 2, + "scumpe": 2, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "ng": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "FoodsTur": 1, + "Case": 10, + "softness": 4, + "Softness": 5, + "h": 4, + "Harmony": 5, + "Reason": 1, + "excluding": 1, + "plural": 3, + "form": 4, + "In": 1, + "Turkish": 1, + "if": 1, + "subject": 1, + "not": 2, + "human": 2, + "being": 1, + "then": 1, + "singular": 1, + "regardless": 1, + "subject.": 1, + "Since": 1, + "all": 1, + "possible": 1, + "subjects": 1, + "are": 1, + "non": 1, + "do": 1, + "need": 1, + "have": 2, + "form.": 1, + "quality.softness": 1, + "quality.h": 1, + "quality.c": 1, + "Nom": 9, + "Gen": 5, + "a.c": 1, + "a.softness": 1, + "a.h": 1, + "I_Har": 4, + "Ih_Har": 4, + "U_Har": 4, + "Uh_Har": 4, + "Ih": 1, + "Uh": 1, + "Soft": 3, + "Hard": 3, + "overload": 1, + "mkn": 1, + "peynir": 2, + "peynirler": 2, + "[": 2, + "]": 2, + "sarap": 2, + "saraplar": 2, + "sarabi": 2, + "saraplari": 2, + "italyan": 4, + "ca": 2, + "getSoftness": 2, + "getHarmony": 2, + "See": 1, + "comment": 1, + "lines": 1, + "excluded": 1, + "copula.": 1, + "base": 4, + "*": 1, + "resource": 1, + "ne": 2, + "muz": 2, + "muzi": 2, + "msg": 3, + "fsg": 3, + "nsg": 3, + "mpl": 3, + "fpl": 3, + "npl": 3, + "mlad": 7, + "vynikajici": 7, + "Krasimir": 1, + "Angelov": 1, + "FoodsBul": 1, + "Agr": 3, + "ASg": 23, + "APl": 11, + "item.a": 2, + "../lib/src/prelude": 1, + "Zofia": 1, + "Stankiewicz": 1, + "FoodsJpn": 1, + "Style": 3, + "AdjUse": 4, + "AdjType": 4, + "IAdj": 4, + "Plain": 3, + "Polite": 4, + "NaAdj": 4, + "na": 1, + "different": 1, + "attributes": 1, + "predicates": 2, + "phrase": 1, + "types": 1, + "can": 1, + "without": 1, + "cannot": 1, + "sakana": 6, + "chosenna": 2, + "chosen": 2, + "akai": 2 + }, + "Pod": { + "Id": 1, + "contents.pod": 1, + "v": 1, + "/05/04": 1, + "tower": 1, + "Exp": 1, + "begin": 3, + "html": 7, + "": 1, + "end": 4, + "head1": 2, + "Net": 12, + "Z3950": 12, + "AsyncZ": 16, + "head2": 3, + "Intro": 1, + "adds": 1, + "an": 3, + "additional": 1, + "layer": 1, + "of": 19, + "asynchronous": 4, + "support": 1, + "for": 11, + "the": 29, + "module": 6, + "through": 1, + "use": 1, + "multiple": 1, + "forked": 1, + "processes.": 1, + "I": 8, + "hope": 1, + "that": 9, + "users": 1, + "will": 1, + "also": 2, + "find": 1, + "it": 3, + "provides": 1, + "a": 8, + "convenient": 2, + "front": 1, + "to": 9, + "C": 13, + "": 1, + ".": 5, + "My": 1, + "initial": 1, + "idea": 1, + "was": 1, + "write": 1, + "something": 2, + "would": 1, + "provide": 1, + "means": 1, + "processing": 1, + "and": 14, + "formatting": 2, + "Z39.50": 1, + "records": 4, + "which": 3, + "did": 1, + "using": 1, + "": 2, + "synchronous": 1, + "code.": 1, + "But": 3, + "wanted": 1, + "could": 1, + "handle": 1, + "queries": 1, + "large": 1, + "numbers": 1, + "servers": 1, + "at": 1, + "one": 1, + "session.": 1, + "Working": 1, + "on": 1, + "this": 3, + "part": 3, + "my": 1, + "project": 1, + "found": 1, + "had": 1, + "trouble": 1, + "with": 6, + "features": 1, + "so": 1, + "ended": 1, + "up": 1, + "what": 1, + "have": 3, + "here.": 1, + "give": 2, + "more": 4, + "detailed": 4, + "account": 2, + "in": 9, + "": 4, + "href=": 5, + "": 1, + "DESCRIPTION": 1, + "": 1, + "": 5, + "section": 2, + "": 5, + "AsyncZ.html": 2, + "": 6, + "pod": 3, + "B": 1, + "": 1, + "": 1, + "cut": 3, + "Documentation": 1, + "over": 2, + "item": 10, + "AsyncZ.pod": 1, + "This": 4, + "is": 8, + "starting": 2, + "point": 2, + "gives": 2, + "overview": 2, + "describes": 2, + "basic": 4, + "mechanics": 2, + "its": 2, + "workings": 2, + "details": 5, + "particulars": 2, + "objects": 2, + "methods.": 2, + "see": 2, + "L": 1, + "": 1, + "explanations": 2, + "sample": 2, + "scripts": 2, + "come": 2, + "": 2, + "distribution.": 2, + "Options.pod": 1, + "document": 2, + "various": 2, + "options": 2, + "can": 4, + "be": 2, + "set": 2, + "modify": 2, + "behavior": 2, + "Index": 1, + "Report.pod": 2, + "deals": 2, + "how": 4, + "are": 7, + "treated": 2, + "line": 4, + "by": 2, + "you": 4, + "affect": 2, + "apearance": 2, + "record": 2, + "s": 2, + "HOW": 2, + "TO.": 2, + "back": 2, + "": 1, + "The": 6, + "Modules": 1, + "There": 2, + "modules": 5, + "than": 2, + "there": 2, + "documentation.": 2, + "reason": 2, + "only": 2, + "full": 2, + "complete": 2, + "access": 9, + "other": 2, + "either": 2, + "internal": 2, + "": 1, + "or": 4, + "accessed": 2, + "indirectly": 2, + "indirectly.": 2, + "head3": 1, + "Here": 1, + "main": 1, + "direct": 2, + "documented": 7, + "": 4, + "": 2, + "documentation": 4, + "ErrMsg": 1, + "User": 1, + "error": 1, + "message": 1, + "handling": 2, + "indirect": 2, + "Errors": 1, + "Error": 1, + "debugging": 1, + "limited": 2, + "Report": 1, + "Module": 1, + "reponsible": 1, + "fetching": 1, + "ZLoop": 1, + "Event": 1, + "loop": 1, + "child": 3, + "processes": 3, + "no": 2, + "not": 2, + "ZSend": 1, + "Connection": 1, + "Options": 2, + "_params": 1, + "INDEX": 1 + }, + "Mercury": { + "%": 416, + "-": 6967, + "module": 46, + "libs.options.": 3, + "interface.": 13, + "import_module": 126, + "char.": 1, + "getopt_io.": 1, + "io.": 8, + "set.": 4, + "pred": 255, + "short_option": 36, + "(": 3351, + "char": 10, + "in": 510, + "option": 9, + "out": 337, + ")": 3351, + "is": 246, + "semidet.": 10, + "long_option": 241, + "string": 115, + "option_defaults": 2, + "option_data": 2, + "nondet.": 1, + "special_handler": 1, + "special_data": 1, + "option_table": 5, + "maybe_option_table": 3, + "inconsequential_options": 1, + "set": 16, + "det.": 184, + "options_help": 1, + "io": 6, + "di": 54, + "uo": 58, + "type": 57, + ".": 610, + "func": 24, + "option_table_add_mercury_library_directory": 1, + "option_table.": 2, + "option_table_add_search_library_files_directory": 1, + "quote_arg": 1, + "string.": 7, + "inhibit_warnings": 4, + ";": 913, + "inhibit_accumulator_warnings": 3, + "halt_at_warn": 3, + "halt_at_syntax_errors": 3, + "halt_at_auto_parallel_failure": 3, + "warn_singleton_vars": 3, + "warn_overlapping_scopes": 3, + "warn_det_decls_too_lax": 3, + "warn_inferred_erroneous": 3, + "warn_nothing_exported": 3, + "warn_unused_args": 3, + "warn_interface_imports": 3, + "warn_missing_opt_files": 3, + "warn_missing_trans_opt_files": 3, + "warn_missing_trans_opt_deps": 3, + "warn_non_contiguous_clauses": 3, + "warn_non_contiguous_foreign_procs": 3, + "warn_non_stratification": 3, + "warn_unification_cannot_succeed": 3, + "warn_simple_code": 3, + "warn_duplicate_calls": 3, + "warn_missing_module_name": 3, + "warn_wrong_module_name": 3, + "warn_smart_recompilation": 3, + "warn_undefined_options_variables": 3, + "warn_non_tail_recursion": 3, + "warn_target_code": 3, + "warn_up_to_date": 3, + "warn_stubs": 3, + "warn_dead_procs": 3, + "warn_table_with_inline": 3, + "warn_non_term_special_preds": 3, + "warn_known_bad_format_calls": 3, + "warn_unknown_format_calls": 3, + "warn_obsolete": 3, + "warn_insts_without_matching_type": 3, + "warn_unused_imports": 3, + "inform_ite_instead_of_switch": 3, + "warn_unresolved_polymorphism": 3, + "warn_suspicious_foreign_procs": 3, + "warn_state_var_shadowing": 3, + "inform_inferred": 3, + "inform_inferred_types": 3, + "inform_inferred_modes": 3, + "verbose": 4, + "very_verbose": 4, + "verbose_errors": 4, + "verbose_recompilation": 3, + "find_all_recompilation_reasons": 3, + "verbose_make": 3, + "verbose_commands": 3, + "output_compile_error_lines": 3, + "report_cmd_line_args": 3, + "report_cmd_line_args_in_doterr": 3, + "statistics": 4, + "detailed_statistics": 3, + "proc_size_statistics": 3, + "debug_types": 4, + "debug_modes": 4, + "debug_modes_statistics": 3, + "debug_modes_minimal": 3, + "debug_modes_verbose": 3, + "debug_modes_pred_id": 3, + "debug_dep_par_conj": 3, + "debug_det": 4, + "debug_code_gen_pred_id": 3, + "debug_opt": 3, + "debug_term": 4, + "term": 10, + "constraint": 2, + "termination": 3, + "analysis": 1, + "debug_opt_pred_id": 3, + "debug_opt_pred_name": 3, + "debug_pd": 3, + "pd": 1, + "partial": 1, + "deduction/deforestation": 1, + "debug_il_asm": 3, + "il_asm": 1, + "IL": 2, + "generation": 1, + "via": 1, + "asm": 1, + "debug_liveness": 3, + "debug_stack_opt": 3, + "debug_make": 3, + "debug_closure": 3, + "debug_trail_usage": 3, + "debug_mode_constraints": 3, + "debug_intermodule_analysis": 3, + "debug_mm_tabling_analysis": 3, + "debug_indirect_reuse": 3, + "debug_type_rep": 3, + "make_short_interface": 4, + "make_interface": 5, + "make_private_interface": 4, + "make_optimization_interface": 5, + "make_transitive_opt_interface": 5, + "make_analysis_registry": 3, + "make_xml_documentation": 5, + "generate_source_file_mapping": 4, + "generate_dependency_file": 3, + "generate_dependencies": 4, + "generate_module_order": 3, + "generate_standalone_interface": 3, + "convert_to_mercury": 6, + "typecheck_only": 4, + "errorcheck_only": 4, + "target_code_only": 10, + "compile_only": 4, + "compile_to_shared_lib": 3, + "output_grade_string": 3, + "output_link_command": 3, + "output_shared_lib_link_command": 3, + "output_libgrades": 3, + "output_cc": 3, + "output_c_compiler_type": 4, + "output_csharp_compiler_type": 3, + "output_cflags": 3, + "output_library_link_flags": 3, + "output_grade_defines": 3, + "output_c_include_directory_flags": 4, + "smart_recompilation": 3, + "generate_item_version_numbers": 2, + "generate_mmc_make_module_dependencies": 4, + "assume_gmake": 3, + "trace_level": 4, + "trace_optimized": 4, + "trace_prof": 3, + "trace_table_io": 3, + "trace_table_io_only_retry": 3, + "trace_table_io_states": 3, + "trace_table_io_require": 3, + "trace_table_io_all": 3, + "trace_goal_flags": 3, + "prof_optimized": 4, + "exec_trace_tail_rec": 3, + "suppress_trace": 3, + "force_disable_tracing": 3, + "delay_death": 3, + "delay_death_max_vars": 3, + "stack_trace_higher_order": 3, + "force_disable_ssdebug": 3, + "generate_bytecode": 3, + "line_numbers": 4, + "auto_comments": 4, + "frameopt_comments": 3, + "max_error_line_width": 3, + "show_dependency_graph": 3, + "imports_graph": 3, + "dump_trace_counts": 3, + "dump_hlds": 5, + "dump_hlds_pred_id": 3, + "dump_hlds_pred_name": 3, + "dump_hlds_alias": 4, + "dump_hlds_options": 3, + "dump_hlds_inst_limit": 3, + "dump_hlds_file_suffix": 3, + "dump_same_hlds": 3, + "dump_mlds": 4, + "verbose_dump_mlds": 4, + "mode_constraints": 3, + "simple_mode_constraints": 3, + "prop_mode_constraints": 4, + "benchmark_modes": 3, + "benchmark_modes_repeat": 3, + "sign_assembly": 3, + "separate_assemblies": 3, + "reorder_conj": 3, + "reorder_disj": 3, + "fully_strict": 3, + "strict_sequential": 3, + "allow_stubs": 3, + "infer_types": 3, + "infer_modes": 3, + "infer_det": 4, + "infer_all": 3, + "type_inference_iteration_limit": 3, + "mode_inference_iteration_limit": 3, + "event_set_file_name": 3, + "grade": 4, + "target": 14, + "il": 5, + "il_only": 4, + "+": 127, + "compile_to_c": 4, + "c": 1, + "java": 35, + "java_only": 4, + "csharp": 6, + "csharp_only": 4, + "x86_64": 6, + "x86_64_only": 4, + "erlang": 6, + "erlang_only": 4, + "exec_trace": 3, + "decl_debug": 3, + "profiling": 5, + "profile_time": 5, + "profile_calls": 6, + "time_profiling": 3, + "memory_profiling": 3, + "profile_mem": 1, + "deep_profiling": 3, + "profile_deep": 4, + "profile_memory": 3, + "use_activation_counts": 3, + "pre_prof_transforms_simplify": 3, + "pre_implicit_parallelism_simplify": 3, + "coverage_profiling": 3, + "coverage_profiling_via_calls": 3, + "coverage_profiling_static": 3, + "profile_deep_coverage_after_goal": 3, + "profile_deep_coverage_branch_ite": 3, + "profile_deep_coverage_branch_switch": 3, + "profile_deep_coverage_branch_disj": 3, + "profile_deep_coverage_use_portcounts": 3, + "profile_deep_coverage_use_trivial": 2, + "profile_for_feedback": 2, + "use_zeroing_for_ho_cycles": 2, + "use_lots_of_ho_specialization": 2, + "deep_profile_tail_recursion": 2, + "record_term_sizes_as_words": 2, + "record_term_sizes_as_cells": 2, + "experimental_complexity": 2, + "gc": 2, + "parallel": 3, + "threadscope": 2, + "use_trail": 3, + "trail_segments": 2, + "use_minimal_model_stack_copy": 2, + "use_minimal_model_own_stacks": 2, + "minimal_model_debug": 2, + "single_prec_float": 2, + "type_layout": 2, + "maybe_thread_safe_opt": 2, + "extend_stacks_when_needed": 2, + "stack_segments": 2, + "use_regions": 2, + "use_alloc_regions": 2, + "use_regions_debug": 2, + "use_regions_profiling": 2, + "source_to_source_debug": 5, + "ssdb_trace_level": 3, + "link_ssdb_libs": 4, + "tags": 2, + "num_tag_bits": 2, + "num_reserved_addresses": 2, + "num_reserved_objects": 2, + "bits_per_word": 2, + "bytes_per_word": 2, + "conf_low_tag_bits": 2, + "unboxed_float": 3, + "unboxed_enums": 2, + "unboxed_no_tag_types": 2, + "sync_term_size": 2, + "words": 1, + "gcc_non_local_gotos": 3, + "gcc_global_registers": 2, + "asm_labels": 3, + "pic_reg": 2, + "use_float_registers": 5, + "highlevel_code": 3, + "highlevel_data": 2, + "gcc_nested_functions": 2, + "det_copy_out": 2, + "nondet_copy_out": 2, + "put_commit_in_own_func": 2, + "put_nondet_env_on_heap": 2, + "verifiable_code": 2, + "il_refany_fields": 2, + "il_funcptr_types": 2, + "il_byref_tailcalls": 2, + "backend_foreign_languages": 2, + "stack_trace": 2, + "basic_stack_layout": 2, + "agc_stack_layout": 2, + "procid_stack_layout": 2, + "trace_stack_layout": 2, + "body_typeinfo_liveness": 4, + "can_compare_constants_as_ints": 2, + "pretest_equality_cast_pointers": 2, + "can_compare_compound_values": 2, + "lexically_order_constructors": 2, + "mutable_always_boxed": 2, + "delay_partial_instantiations": 2, + "allow_defn_of_builtins": 2, + "special_preds": 2, + "type_ctor_info": 2, + "type_ctor_layout": 2, + "type_ctor_functors": 2, + "new_type_class_rtti": 2, + "rtti_line_numbers": 2, + "disable_minimal_model_stack_copy_pneg": 2, + "disable_minimal_model_stack_copy_cut": 2, + "use_minimal_model_stack_copy_pneg": 2, + "use_minimal_model_stack_copy_cut": 3, + "disable_trail_ops": 3, + "size_region_ite_fixed": 2, + "size_region_disj_fixed": 2, + "size_region_semi_disj_fixed": 1, + "size_region_commit_fixed": 2, + "size_region_ite_protect": 2, + "size_region_ite_snapshot": 2, + "size_region_semi_disj_protect": 2, + "size_region_disj_snapshot": 2, + "size_region_commit_entry": 2, + "solver_type_auto_init": 2, + "allow_multi_arm_switches": 2, + "type_check_constraints": 2, + "allow_argument_packing": 2, + "low_level_debug": 2, + "table_debug": 2, + "trad_passes": 2, + "parallel_liveness": 2, + "parallel_code_gen": 2, + "polymorphism": 2, + "reclaim_heap_on_failure": 2, + "reclaim_heap_on_semidet_failure": 2, + "reclaim_heap_on_nondet_failure": 2, + "have_delay_slot": 2, + "num_real_r_regs": 2, + "num_real_f_regs": 2, + "num_real_r_temps": 2, + "num_real_f_temps": 2, + "max_jump_table_size": 2, + "max_specialized_do_call_closure": 2, + "max_specialized_do_call_class_method": 2, + "compare_specialization": 2, + "should_pretest_equality": 2, + "fact_table_max_array_size": 2, + "fact_table_hash_percent_full": 2, + "gcc_local_labels": 2, + "prefer_switch": 2, + "opt_no_return_calls": 3, + "opt_level": 3, + "opt_level_number": 2, + "opt_space": 2, + "Default": 3, + "to": 16, + "optimize": 3, + "time.": 1, + "intermodule_optimization": 2, + "read_opt_files_transitively": 2, + "use_opt_files": 2, + "use_trans_opt_files": 2, + "transitive_optimization": 2, + "intermodule_analysis": 2, + "analysis_repeat": 2, + "analysis_file_cache": 2, + "allow_inlining": 2, + "inlining": 2, + "inline_simple": 2, + "inline_builtins": 2, + "inline_single_use": 2, + "inline_call_cost": 2, + "inline_compound_threshold": 2, + "inline_simple_threshold": 2, + "inline_vars_threshold": 2, + "intermod_inline_simple_threshold": 2, + "from_ground_term_threshold": 2, + "enable_const_struct": 2, + "common_struct": 2, + "common_struct_preds": 2, + "common_goal": 2, + "constraint_propagation": 2, + "local_constraint_propagation": 2, + "optimize_unused_args": 2, + "intermod_unused_args": 2, + "optimize_higher_order": 2, + "higher_order_size_limit": 2, + "higher_order_arg_limit": 2, + "unneeded_code": 2, + "unneeded_code_copy_limit": 2, + "unneeded_code_debug": 2, + "unneeded_code_debug_pred_name": 2, + "type_specialization": 2, + "user_guided_type_specialization": 2, + "introduce_accumulators": 2, + "optimize_constructor_last_call_accumulator": 2, + "optimize_constructor_last_call_null": 3, + "optimize_constructor_last_call": 2, + "optimize_duplicate_calls": 2, + "constant_propagation": 2, + "excess_assign": 2, + "optimize_format_calls": 2, + "optimize_saved_vars_const": 2, + "optimize_saved_vars_cell": 2, + "optimize_saved_vars_cell_loop": 2, + "optimize_saved_vars_cell_full_path": 2, + "optimize_saved_vars_cell_on_stack": 2, + "optimize_saved_vars_cell_candidate_headvars": 2, + "optimize_saved_vars_cell_cv_store_cost": 2, + "optimize_saved_vars_cell_cv_load_cost": 2, + "optimize_saved_vars_cell_fv_store_cost": 2, + "optimize_saved_vars_cell_fv_load_cost": 2, + "optimize_saved_vars_cell_op_ratio": 2, + "optimize_saved_vars_cell_node_ratio": 2, + "optimize_saved_vars_cell_all_path_node_ratio": 2, + "optimize_saved_vars_cell_include_all_candidates": 2, + "optimize_saved_vars": 2, + "loop_invariants": 2, + "delay_construct": 2, + "follow_code": 2, + "optimize_dead_procs": 2, + "deforestation": 2, + "deforestation_depth_limit": 2, + "deforestation_cost_factor": 2, + "deforestation_vars_threshold": 2, + "deforestation_size_threshold": 2, + "analyse_trail_usage": 2, + "optimize_trail_usage": 3, + "optimize_region_ops": 3, + "analyse_mm_tabling": 2, + "untuple": 2, + "tuple": 2, + "tuple_trace_counts_file": 2, + "tuple_costs_ratio": 2, + "tuple_min_args": 2, + "inline_par_builtins": 2, + "always_specialize_in_dep_par_conjs": 2, + "allow_some_paths_only_waits": 2, + "region_analysis": 3, + "structure_sharing_analysis": 2, + "structure_sharing_widening": 2, + "structure_reuse_analysis": 2, + "structure_reuse_constraint": 2, + "structure_reuse_constraint_arg": 2, + "structure_reuse_max_conditions": 2, + "structure_reuse_repeat": 2, + "structure_reuse_free_cells": 2, + "termination_check": 2, + "verbose_check_termination": 2, + "termination_single_args": 2, + "termination_norm": 2, + "termination_error_limit": 2, + "termination_path_limit": 2, + "termination2": 2, + "check_termination2": 2, + "verbose_check_termination2": 2, + "termination2_norm": 2, + "widening_limit": 2, + "arg_size_analysis_only": 2, + "propagate_failure_constrs": 2, + "term2_maximum_matrix_size": 2, + "analyse_exceptions": 2, + "analyse_closures": 2, + "smart_indexing": 2, + "dense_switch_req_density": 2, + "lookup_switch_req_density": 2, + "dense_switch_size": 2, + "lookup_switch_size": 2, + "string_hash_switch_size": 2, + "string_binary_switch_size": 2, + "tag_switch_size": 2, + "try_switch_size": 2, + "binary_switch_size": 2, + "switch_single_rec_base_first": 2, + "switch_multi_rec_base_first": 2, + "static_ground_cells": 3, + "static_ground_floats": 3, + "static_code_addresses": 3, + "use_atomic_cells": 2, + "middle_rec": 2, + "simple_neg": 2, + "allow_hijacks": 3, + "optimize_tailcalls": 2, + "optimize_initializations": 2, + "eliminate_local_vars": 2, + "generate_trail_ops_inline": 2, + "common_data": 2, + "common_layout_data": 2, + "Also": 1, + "used": 2, + "for": 8, + "MLDS": 2, + "optimizations.": 1, + "optimize_peep": 2, + "optimize_peep_mkword": 2, + "optimize_jumps": 2, + "optimize_fulljumps": 2, + "pessimize_tailcalls": 2, + "checked_nondet_tailcalls": 2, + "use_local_vars": 2, + "local_var_access_threshold": 2, + "standardize_labels": 2, + "optimize_labels": 2, + "optimize_dups": 2, + "optimize_proc_dups": 2, + "optimize_frames": 2, + "optimize_delay_slot": 2, + "optimize_reassign": 2, + "optimize_repeat": 2, + "layout_compression_limit": 2, + "use_macro_for_redo_fail": 2, + "emit_c_loops": 2, + "procs_per_c_function": 3, + "everything_in_one_c_function": 2, + "local_thread_engine_base": 2, + "erlang_switch_on_strings_as_atoms": 2, + "target_debug": 2, + "cc": 2, + "cflags": 2, + "quoted_cflag": 2, + "c_include_directory": 2, + "c_optimize": 2, + "ansi_c": 2, + "inline_alloc": 2, + "gcc_flags": 2, + "quoted_gcc_flag": 2, + "clang_flags": 2, + "quoted_clang_flag": 2, + "msvc_flags": 2, + "quoted_msvc_flag": 2, + "cflags_for_warnings": 2, + "cflags_for_optimization": 2, + "cflags_for_ansi": 2, + "cflags_for_regs": 2, + "cflags_for_gotos": 2, + "cflags_for_threads": 2, + "cflags_for_debug": 2, + "cflags_for_pic": 2, + "c_flag_to_name_object_file": 2, + "object_file_extension": 2, + "pic_object_file_extension": 2, + "link_with_pic_object_file_extension": 2, + "c_compiler_type": 2, + "csharp_compiler_type": 2, + "java_compiler": 2, + "java_interpreter": 2, + "java_flags": 2, + "quoted_java_flag": 2, + "java_classpath": 2, + "java_object_file_extension": 2, + "il_assembler": 2, + "ilasm_flags": 2, + "quoted_ilasm_flag": 2, + "dotnet_library_version": 2, + "support_ms_clr": 2, + "support_rotor_clr": 2, + "csharp_compiler": 2, + "csharp_flags": 2, + "quoted_csharp_flag": 2, + "cli_interpreter": 2, + "erlang_compiler": 2, + "erlang_interpreter": 2, + "erlang_flags": 2, + "quoted_erlang_flag": 2, + "erlang_include_directory": 2, + "erlang_object_file_extension": 2, + "erlang_native_code": 2, + "erlang_inhibit_trivial_warnings": 2, + "output_file_name": 3, + "ld_flags": 2, + "quoted_ld_flag": 2, + "ld_libflags": 2, + "quoted_ld_libflag": 2, + "link_library_directories": 3, + "runtime_link_library_directories": 3, + "link_libraries": 3, + "link_objects": 2, + "mercury_library_directories": 2, + "mercury_library_directory_special": 2, + "search_library_files_directories": 2, + "search_library_files_directory_special": 2, + "mercury_libraries": 2, + "mercury_library_special": 2, + "mercury_standard_library_directory": 2, + "mercury_standard_library_directory_special": 2, + "init_file_directories": 2, + "init_files": 2, + "trace_init_files": 2, + "linkage": 2, + "linkage_special": 2, + "mercury_linkage": 2, + "mercury_linkage_special": 2, + "strip": 2, + "demangle": 2, + "main": 15, + "allow_undefined": 2, + "use_readline": 2, + "runtime_flags": 2, + "extra_initialization_functions": 2, + "frameworks": 2, + "framework_directories": 3, + "shared_library_extension": 2, + "library_extension": 2, + "executable_file_extension": 2, + "link_executable_command": 2, + "link_shared_lib_command": 2, + "create_archive_command": 2, + "create_archive_command_output_flag": 2, + "create_archive_command_flags": 2, + "ranlib_command": 2, + "ranlib_flags": 2, + "mkinit_command": 2, + "mkinit_erl_command": 2, + "demangle_command": 2, + "filtercc_command": 2, + "trace_libs": 2, + "thread_libs": 2, + "hwloc_libs": 2, + "hwloc_static_libs": 2, + "shared_libs": 2, + "math_lib": 2, + "readline_libs": 2, + "linker_opt_separator": 2, + "linker_thread_flags": 2, + "shlib_linker_thread_flags": 2, + "linker_static_flags": 2, + "linker_strip_flag": 2, + "linker_link_lib_flag": 2, + "linker_link_lib_suffix": 2, + "shlib_linker_link_lib_flag": 2, + "shlib_linker_link_lib_suffix": 2, + "linker_debug_flags": 2, + "shlib_linker_debug_flags": 2, + "linker_trace_flags": 2, + "shlib_linker_trace_flags": 2, + "linker_path_flag": 2, + "linker_rpath_flag": 2, + "linker_rpath_separator": 2, + "shlib_linker_rpath_flag": 2, + "shlib_linker_rpath_separator": 2, + "linker_allow_undefined_flag": 2, + "linker_error_undefined_flag": 2, + "shlib_linker_use_install_name": 2, + "shlib_linker_install_name_flag": 2, + "shlib_linker_install_name_path": 2, + "java_archive_command": 2, + "make": 3, + "keep_going": 3, + "rebuild": 3, + "jobs": 3, + "track_flags": 2, + "invoked_by_mmc_make": 2, + "extra_init_command": 2, + "pre_link_command": 2, + "install_prefix": 2, + "use_symlinks": 2, + "mercury_configuration_directory": 2, + "mercury_configuration_directory_special": 2, + "install_command": 2, + "install_command_dir_option": 2, + "libgrades": 2, + "libgrades_include_components": 2, + "libgrades_exclude_components": 2, + "lib_linkages": 2, + "flags_file": 2, + "options_files": 2, + "config_file": 2, + "options_search_directories": 2, + "use_subdirs": 2, + "use_grade_subdirs": 2, + "search_directories": 3, + "intermod_directories": 2, + "use_search_directories_for_intermod": 2, + "libgrade_install_check": 2, + "order_make_by_timestamp": 2, + "show_make_times": 2, + "extra_library_header": 2, + "restricted_command_line": 2, + "env_type": 2, + "host_env_type": 2, + "target_env_type": 2, + "filenames_from_stdin": 2, + "typecheck_ambiguity_warn_limit": 2, + "typecheck_ambiguity_error_limit": 2, + "help": 4, + "version": 3, + "fullarch": 2, + "cross_compiling": 2, + "local_module_id": 2, + "analysis_file_cache_dir": 2, + "compiler_sufficiently_recent": 2, + "experiment": 2, + "ignore_par_conjunctions": 2, + "control_granularity": 2, + "distance_granularity": 2, + "implicit_parallelism": 2, + "feedback_file": 2, + "par_loop_control": 2, + "par_loop_control_preserve_tail_recursion.": 1, + "implementation.": 12, + "libs.handle_options.": 1, + "assoc_list.": 3, + "bool.": 4, + "dir.": 1, + "int.": 4, + "list.": 4, + "map.": 3, + "maybe.": 3, + "pair.": 3, + "require.": 6, + "option_category": 2, + "warning_option": 2, + "verbosity_option": 2, + "output_option": 2, + "aux_output_option": 2, + "language_semantics_option": 2, + "compilation_model_option": 2, + "internal_use_option": 2, + "code_gen_option": 2, + "special_optimization_option": 2, + "optimization_option": 2, + "target_code_compilation_option": 2, + "link_option": 2, + "build_system_option": 2, + "miscellaneous_option.": 1, + "Option": 2, + "option_defaults_2": 18, + "_Category": 1, + "OptionsList": 2, + "list.member": 2, + "list": 82, + "pair": 7, + "mode": 8, + "multi.": 1, + "[": 203, + "bool_special": 7, + "bool": 406, + "no": 365, + "yes": 144, + "XXX": 3, + "should": 1, + "be": 1, + "]": 203, + "int": 129, + "accumulating": 49, + "maybe_string": 6, + "special": 17, + "string_special": 18, + "int_special": 1, + "maybe_string_special": 1, + "file_special": 1, + "miscellaneous_option": 1, + "par_loop_control_preserve_tail_recursion": 1, + "store.": 1, + "typeclass": 1, + "store": 52, + "T": 52, + "where": 8, + "S": 133, + "instance": 4, + "io.state": 3, + "some": 4, + "store.init": 2, + "generic_mutvar": 15, + "io_mutvar": 1, + "store_mutvar": 1, + "store.new_mutvar": 1, + "det": 21, + "<": 14, + "store.copy_mutvar": 1, + "store.get_mutvar": 1, + "store.set_mutvar": 1, + "<=>": 5, + "new_cyclic_mutvar": 2, + "Func": 4, + "Mutvar": 23, + "Create": 1, + "a": 10, + "new": 25, + "mutable": 3, + "variable": 1, + "whose": 2, + "value": 16, + "initialized": 2, + "with": 5, + "the": 27, + "returned": 1, + "from": 1, + "specified": 1, + "function": 3, + "The": 2, + "argument": 6, + "passed": 2, + "mutvar": 6, + "itself": 4, + "has": 4, + "not": 7, + "yet": 1, + "been": 1, + "this": 4, + "safe": 2, + "because": 1, + "does": 3, + "get": 2, + "so": 3, + "it": 1, + "can": 1, + "t": 5, + "examine": 1, + "uninitialized": 1, + "This": 2, + "predicate": 1, + "useful": 1, + "creating": 1, + "self": 1, + "referential": 1, + "values": 1, + "such": 2, + "as": 5, + "circular": 1, + "linked": 1, + "lists": 1, + "For": 1, + "example": 1, + "clist": 2, + "node": 1, + "store.new_cyclic_mutvar": 1, + "generic_ref": 20, + "io_ref": 1, + "store_ref": 1, + "store.new_ref": 1, + "store.ref_functor": 1, + "store.arg_ref": 1, + "ArgT": 4, + "store.new_arg_ref": 3, + "store.set_ref": 1, + "store.set_ref_value": 1, + "store.copy_ref_value": 1, + "store.extract_ref_value": 1, + "Nasty": 1, + "performance": 2, + "hacks": 1, + "WARNING": 1, + "use": 1, + "of": 10, + "these": 1, + "procedures": 2, + "dangerous": 1, + "Use": 1, + "them": 1, + "only": 4, + "last": 1, + "resort": 1, + "if": 15, + "critical": 1, + "and": 6, + "shows": 1, + "that": 2, + "using": 1, + "versions": 1, + "bottleneck": 1, + "These": 1, + "may": 1, + "vanish": 1, + "future": 1, + "Mercury": 1, + "unsafe_arg_ref": 1, + "same": 2, + "arg_ref": 12, + "unsafe_new_arg_ref": 1, + "new_arg_ref": 1, + "except": 1, + "they": 4, + "doesn": 1, + "check": 1, + "errors": 1, + "don": 3, + "work": 3, + "no_tag": 1, + "types": 3, + "exactly": 2, + "one": 2, + "functor": 2, + "which": 2, + "arguments": 2, + "occupy": 1, + "word": 2, + "other": 1, + "functors.": 1, + "store.unsafe_arg_ref": 1, + "store.unsafe_new_arg_ref": 1, + "implementation": 1, + "deconstruct": 2, + "require": 1, + "state": 3, + "just": 1, + "dummy": 2, + "real": 1, + "representation": 1, + "pragma": 41, + "foreign_type": 10, + "C": 34, + "MR_Word": 24, + "can_pass_as_mercury_type": 5, + "equality": 5, + "store_equal": 7, + "comparison": 5, + "store_compare": 7, + "int32": 1, + "Java": 12, + "Erlang": 3, + "semidet": 2, + "_": 149, + "error": 7, + "attempt": 2, + "unify": 21, + "two": 2, + "stores": 2, + "comparison_result": 1, + "compare": 1, + "Mutvars": 1, + "references": 1, + "are": 1, + "each": 1, + "represented": 1, + "pointer": 1, + "single": 1, + "on": 1, + "heap": 1, + "private_builtin.ref": 2, + "ref": 2, + "store.do_init": 6, + "foreign_proc": 28, + "_S0": 16, + "will_not_call_mercury": 28, + "promise_pure": 30, + "will_not_modify_trail": 7, + "new_mutvar": 5, + "Val": 45, + "S0": 23, + "get_mutvar": 5, + "set_mutvar": 5, + "_S": 12, + "copy_mutvar": 1, + "Copy": 2, + "Value": 4, + "store.unsafe_new_uninitialized_mutvar": 1, + "unsafe_new_uninitialized_mutvar": 4, + "MR_offset_incr_hp_msg": 5, + "MR_SIZE_SLOT_SIZE": 10, + "1": 5, + "MR_ALLOC_ID": 5, + "2": 2, + "MR_define_size_slot": 5, + "0": 2, + "object": 21, + "MutVar": 4, + "Store": 5, + "apply": 1, + "Ref": 41, + "foreign_code": 2, + "public": 17, + "class": 4, + "Object": 9, + "referenced": 4, + "obj": 7, + "Specific": 2, + "field": 20, + "or": 2, + "null": 8, + "specify": 2, + "GetFields": 2, + "return": 6, + "fields": 3, + "any": 2, + "particular": 2, + "order": 2, + "really": 2, + "usable": 2, + "System": 1, + "Reflection": 1, + "FieldInfo": 1, + "Constructors": 2, + "init": 8, + "num": 11, + "setField": 4, + "Set": 2, + "according": 2, + "given": 2, + "index": 2, + "void": 4, + "GetType": 1, + "Return": 6, + "reference": 4, + "getValue": 4, + "else": 8, + "GetValue": 1, + "Update": 2, + "setValue": 2, + "SetValue": 1, + "static": 1, + "lang": 28, + "getDeclaredFields": 2, + "reflect": 1, + "Field": 5, + "try": 3, + "getClass": 1, + "catch": 11, + "SecurityException": 1, + "se": 1, + "throw": 11, + "RuntimeException": 11, + "Security": 1, + "manager": 1, + "denied": 1, + "access": 3, + "ArrayIndexOutOfBoundsException": 1, + "e": 13, + "No": 1, + "Exception": 3, + "Unable": 3, + "getMessage": 3, + "IllegalAccessException": 2, + "inaccessible": 2, + "IllegalArgumentException": 2, + "mismatch": 2, + "NullPointerException": 2, + "new_ref": 4, + "ets": 3, + "insert": 1, + "copy_ref_value": 1, + "unsafe_ref_value": 6, + "store.unsafe_ref_value": 1, + "lookup": 1, + "ref_functor": 1, + "Functor": 6, + "Arity": 5, + "canonicalize": 1, + "foreign_decl": 1, + "include": 4, + "mercury_type_info": 1, + "h": 4, + "mercury_heap": 1, + "mercury_misc": 1, + "MR_fatal_error": 5, + "mercury_deconstruct": 1, + "MR_arg": 3, + "ArgNum": 7, + "ArgRef": 22, + "may_not_duplicate": 1, + "MR_TypeInfo": 10, + "type_info": 8, + "arg_type_info": 6, + "exp_arg_type_info": 6, + "const": 10, + "MR_DuArgLocn": 2, + "arg_locn": 9, + "TypeInfo_for_T": 2, + "TypeInfo_for_ArgT": 2, + "MR_save_transient_registers": 2, + "MR_NONCANON_ABORT": 2, + "number": 2, + "range": 2, + "MR_compare_type_info": 2, + "MR_COMPARE_EQUAL": 2, + "wrong": 2, + "MR_restore_transient_registers": 2, + "NULL": 2, + "MR_arg_bits": 2, + "{": 27, + "store.ref/2": 3, + "*": 20, + "MR_arg_value": 2, + "}": 28, + "C#": 6, + "store.Ref": 8, + "Ref.getValue": 6, + "*arg_ref": 1, + "*arg_locn": 1, + "&": 7, + "&&": 1, + "ValRef": 1, + "Ref.setValue": 3, + "ValRef.getValue": 2, + "*Ptr": 2, + "Ptr": 4, + "MR_strip_tag": 2, + "Arg": 6, + "rot13_verbose.": 1, + "io__state": 4, + "rot13a/2": 1, + "A": 14, + "table": 1, + "map": 7, + "alphabetic": 2, + "characters": 1, + "their": 1, + "rot13": 11, + "equivalents": 1, + "fails": 1, + "input": 1, + "rot13a": 55, + "rot13/2": 1, + "Applies": 1, + "algorithm": 1, + "character.": 1, + "Char": 12, + "RotChar": 8, + "TmpChar": 2, + "then": 3, + "io__read_char": 1, + "Res": 8, + "ok": 3, + "io__write_char": 1, + "eof": 6, + "ErrorCode": 4, + "io__error_message": 2, + "ErrorMessage": 4, + "io__stderr_stream": 1, + "StdErr": 8, + "io__write_string": 2, + "io__nl": 1, + "expr.": 1, + "token": 5, + "parse": 1, + "exprn/1": 1, + "xx": 1, + "scan": 16, + "rule": 3, + "exprn": 7, + "Num": 18, + "B": 8, + "factor": 6, + "/": 1, + "//": 2, + "Chars": 2, + "Toks": 13, + "Toks0": 11, + "list__reverse": 1, + "|": 38, + "Cs": 9, + "char__is_whitespace": 1, + "char__is_digit": 2, + "takewhile": 1, + "Digits": 2, + "Rest": 2, + "string__from_char_list": 1, + "NumStr": 2, + "string__det_to_int": 1, + "rot13_concise.": 1, + "alphabet": 3, + "cycle": 4, + "rot_n": 2, + "N": 6, + "char_to_string": 1, + "CharString": 2, + "sub_string_search": 1, + "Index": 3, + "NewIndex": 2, + "mod": 1, + "index_det": 1, + "read_char": 1, + "print": 3, + "error_message": 1, + "stderr_stream": 1, + "nl": 1, + "hello.": 1, + "IO": 4, + "io.write_string": 1, + "rot13_ralph.": 1, + "io__read_byte": 1, + "Result": 4, + "X": 9, + "io__write_byte": 1, + "ErrNo": 2, + "z": 1, + "Rot13": 2, + "rem": 1, + "ll_backend.code_info.": 1, + "check_hlds.type_util.": 2, + "hlds.code_model.": 1, + "hlds.hlds_data.": 2, + "hlds.hlds_goal.": 2, + "hlds.hlds_llds.": 1, + "hlds.hlds_module.": 2, + "hlds.hlds_pred.": 2, + "hlds.instmap.": 2, + "libs.globals.": 2, + "ll_backend.continuation_info.": 1, + "ll_backend.global_data.": 1, + "ll_backend.layout.": 1, + "ll_backend.llds.": 1, + "ll_backend.trace_gen.": 1, + "mdbcomp.prim_data.": 3, + "mdbcomp.goal_path.": 2, + "parse_tree.prog_data.": 2, + "parse_tree.set_of_var.": 2, + "counter.": 1, + "set_tree234.": 1, + "term.": 3, + "backend_libs.builtin_ops.": 1, + "backend_libs.proc_label.": 1, + "hlds.arg_info.": 1, + "hlds.hlds_desc.": 1, + "hlds.hlds_rtti.": 2, + "libs.trace_params.": 1, + "ll_backend.code_util.": 1, + "ll_backend.opt_debug.": 1, + "ll_backend.var_locn.": 1, + "parse_tree.builtin_lib_types.": 2, + "parse_tree.prog_type.": 2, + "parse_tree.mercury_to_mercury.": 1, + "cord.": 1, + "stack.": 1, + "varset.": 2, + "code_info.": 1, + "code_info_init": 2, + "globals": 5, + "pred_id": 15, + "proc_id": 12, + "pred_info": 20, + "proc_info": 11, + "abs_follow_vars": 3, + "module_info": 26, + "static_cell_info": 4, + "const_struct_map": 3, + "resume_point_info": 11, + "trace_slot_info": 3, + "maybe": 20, + "containing_goal_map": 4, + "code_info": 208, + "get_globals": 5, + "get_exprn_opts": 2, + "exprn_opts": 3, + "get_module_info": 7, + "get_pred_id": 6, + "get_proc_id": 5, + "get_pred_info": 2, + "get_proc_info": 4, + "get_varset": 3, + "prog_varset": 14, + "get_var_types": 3, + "vartypes.": 1, + "get_maybe_trace_info": 2, + "trace_info": 3, + "get_emit_trail_ops": 2, + "add_trail_ops": 5, + "get_emit_region_ops": 2, + "add_region_ops": 6, + "get_forward_live_vars": 2, + "set_of_progvar": 10, + "set_forward_live_vars": 2, + "get_instmap": 4, + "instmap": 3, + "set_instmap": 3, + "get_par_conj_depth": 2, + "set_par_conj_depth": 2, + "get_label_counter": 3, + "counter": 6, + "get_succip_used": 2, + "get_layout_info": 4, + "proc_label_layout_info": 3, + "get_proc_trace_events": 2, + "set_proc_trace_events": 2, + "get_closure_layouts": 3, + "closure_proc_id_data": 4, + "get_max_reg_in_use_at_trace": 2, + "set_max_reg_in_use_at_trace": 2, + "get_created_temp_frame": 2, + "get_static_cell_info": 5, + "set_static_cell_info": 5, + "get_alloc_sites": 3, + "set_tree234": 3, + "alloc_site_info": 4, + "set_alloc_sites": 3, + "get_used_env_vars": 2, + "set_used_env_vars": 2, + "get_opt_trail_ops": 2, + "get_opt_region_ops": 2, + "get_auto_comments": 2, + "get_lcmc_null": 2, + "get_containing_goal_map": 3, + "get_containing_goal_map_det": 2, + "get_const_struct_map": 2, + "add_out_of_line_code": 2, + "llds_code": 21, + "get_out_of_line_code": 2, + "get_var_slot_count": 2, + "set_maybe_trace_info": 3, + "get_opt_no_return_calls": 2, + "get_zombies": 2, + "set_zombies": 2, + "get_var_locn_info": 7, + "var_locn_info": 3, + "set_var_locn_info": 4, + "get_temps_in_use": 6, + "lval": 114, + "set_temps_in_use": 4, + "get_fail_info": 13, + "fail_info": 24, + "set_fail_info": 9, + "set_label_counter": 3, + "set_succip_used": 3, + "set_layout_info": 4, + "get_max_temp_slot_count": 2, + "set_max_temp_slot_count": 2, + "get_temp_content_map": 3, + "slot_contents": 4, + "set_temp_content_map": 2, + "get_persistent_temps": 3, + "set_persistent_temps": 2, + "set_closure_layouts": 3, + "get_closure_seq_counter": 3, + "set_closure_seq_counter": 3, + "set_created_temp_frame": 2, + "code_info_static": 26, + "code_info_loc_dep": 22, + "code_info_persistent": 44, + "cis_globals": 2, + "cis_exprn_opts": 2, + "cis_module_info": 2, + "cis_pred_id": 2, + "cis_proc_id": 2, + "cis_pred_info": 2, + "cis_proc_info": 2, + "cis_proc_label": 1, + "proc_label": 2, + "cis_varset": 2, + "cis_var_slot_count": 2, + "cis_maybe_trace_info": 3, + "cis_opt_no_resume_calls": 2, + "cis_emit_trail_ops": 2, + "cis_opt_trail_ops": 2, + "cis_emit_region_ops": 2, + "cis_opt_region_ops": 2, + "cis_auto_comments": 2, + "cis_lcmc_null": 2, + "cis_containing_goal_map": 2, + "cis_const_struct_map": 2, + "cild_forward_live_vars": 3, + "cild_instmap": 3, + "cild_zombies": 3, + "cild_var_locn_info": 3, + "cild_temps_in_use": 3, + "cild_fail_info": 3, + "cild_par_conj_depth": 3, + "cip_label_num_src": 3, + "cip_store_succip": 3, + "cip_label_info": 3, + "cip_proc_trace_events": 3, + "cip_stackslot_max": 3, + "cip_temp_contents": 3, + "cip_persistent_temps": 3, + "cip_closure_layout_seq": 3, + "cip_closure_layouts": 3, + "cip_max_reg_r_used": 3, + "cip_max_reg_f_used": 2, + "cip_created_temp_frame": 3, + "cip_static_cell_info": 3, + "cip_alloc_sites": 3, + "cip_used_env_vars": 3, + "cip_ts_string_table_size": 3, + "cip_ts_rev_string_table": 4, + "cip_out_of_line_code": 4, + "SaveSuccip": 2, + "Globals": 32, + "PredId": 50, + "ProcId": 31, + "PredInfo": 64, + "ProcInfo": 43, + "FollowVars": 6, + "ModuleInfo": 49, + "StaticCellInfo": 8, + "ConstStructMap": 2, + "ResumePoint": 13, + "TraceSlotInfo": 5, + "MaybeContainingGoalMap": 5, + "TSRevStringTable": 2, + "TSStringTableSize": 2, + "CodeInfo": 2, + "ProcLabel": 8, + "make_proc_label": 1, + "proc_info_get_initial_instmap": 1, + "InstMap": 6, + "proc_info_get_liveness_info": 1, + "Liveness": 4, + "CodeModel": 8, + "proc_info_interface_code_model": 2, + "build_input_arg_list": 1, + "ArgList": 2, + "proc_info_get_varset": 1, + "VarSet": 15, + "proc_info_get_vartypes": 2, + "VarTypes": 22, + "proc_info_get_stack_slots": 1, + "StackSlots": 5, + "ExprnOpts": 4, + "init_exprn_opts": 3, + "globals.lookup_bool_option": 18, + "UseFloatRegs": 6, + "FloatRegType": 3, + "reg_f": 1, + "reg_r": 2, + "globals.get_trace_level": 1, + "TraceLevel": 5, + "eff_trace_level_is_none": 2, + "trace_fail_vars": 1, + "FailVars": 3, + "MaybeFailVars": 3, + "set_of_var.union": 3, + "EffLiveness": 3, + "init_var_locn_state": 1, + "VarLocnInfo": 12, + "stack.init": 1, + "ResumePoints": 14, + "AllowHijack": 3, + "Hijack": 6, + "allowed": 6, + "not_allowed": 5, + "DummyFailInfo": 2, + "resume_point_unknown": 9, + "may_be_different": 7, + "not_inside_non_condition": 2, + "map.init": 7, + "TempContentMap": 4, + "set.init": 7, + "PersistentTemps": 4, + "TempsInUse": 8, + "Zombies": 2, + "set_of_var.init": 1, + "LayoutMap": 2, + "max_var_slot": 1, + "VarSlotMax": 2, + "trace_reserved_slots": 1, + "FixedSlots": 2, + "int.max": 1, + "SlotMax": 2, + "OptNoReturnCalls": 2, + "UseTrail": 2, + "DisableTrailOps": 2, + "EmitTrailOps": 3, + "do_not_add_trail_ops": 1, + "OptTrailOps": 2, + "OptRegionOps": 2, + "UseRegions": 3, + "EmitRegionOps": 3, + "do_not_add_region_ops": 1, + "AutoComments": 2, + "LCMCNull": 2, + "CodeInfo0": 2, + "init_fail_info": 2, + "will": 1, + "override": 1, + "nested": 1, + "conjunction": 1, + "depth": 1, + "counter.init": 2, + "set_tree234.init": 1, + "cord.empty": 1, + "init_maybe_trace_info": 3, + "CodeInfo1": 2, + "exprn_opts.": 1, + "OptNLG": 3, + "NLG": 3, + "have_non_local_gotos": 1, + "do_not_have_non_local_gotos": 1, + "OptASM": 3, + "ASM": 3, + "have_asm_labels": 1, + "do_not_have_asm_labels": 1, + "OptSGCell": 3, + "SGCell": 3, + "have_static_ground_cells": 1, + "do_not_have_static_ground_cells": 1, + "OptUBF": 3, + "UBF": 3, + "have_unboxed_floats": 1, + "do_not_have_unboxed_floats": 1, + "OptFloatRegs": 3, + "do_not_use_float_registers": 1, + "OptSGFloat": 3, + "SGFloat": 3, + "have_static_ground_floats": 1, + "do_not_have_static_ground_floats": 1, + "OptStaticCodeAddr": 3, + "StaticCodeAddrs": 3, + "have_static_code_addresses": 1, + "do_not_have_static_code_addresses": 1, + "CI": 294, + "proc_info_get_has_tail_call_events": 1, + "HasTailCallEvents": 3, + "tail_call_events": 1, + "get_next_label": 5, + "TailRecLabel": 2, + "MaybeTailRecLabel": 3, + "no_tail_call_events": 1, + "trace_setup": 1, + "TraceInfo": 2, + "MaxRegR": 4, + "MaxRegF": 4, + "cip_max_reg_f_used.": 1, + "TI": 4, + "LV": 2, + "IM": 2, + "Zs": 2, + "EI": 2, + "FI": 2, + "LC": 2, + "SU": 2, + "LI": 2, + "PTE": 2, + "TM": 2, + "CM": 2, + "PT": 2, + "CLS": 2, + "CG": 2, + "MR": 4, + "MF": 1, + "MF.": 1, + "SCI": 2, + "ASI": 2, + "UEV": 2, + "ContainingGoalMap": 2, + "unexpected": 21, + "NewCode": 2, + "Code0": 2, + ".CI": 29, + "Code": 36, + "Code.": 1, + "get_stack_slots": 2, + "stack_slots": 1, + "get_follow_var_map": 2, + "abs_follow_vars_map": 1, + "get_next_non_reserved": 2, + "reg_type": 1, + "set_follow_vars": 4, + "pre_goal_update": 3, + "hlds_goal_info": 22, + "has_subgoals": 2, + "post_goal_update": 3, + "variable_type": 3, + "prog_var": 58, + "mer_type.": 1, + "variable_is_of_dummy_type": 2, + "is_dummy_type.": 1, + "search_type_defn": 4, + "mer_type": 21, + "hlds_type_defn": 1, + "lookup_type_defn": 2, + "hlds_type_defn.": 1, + "lookup_cheaper_tag_test": 2, + "maybe_cheaper_tag_test.": 1, + "filter_region_vars": 2, + "set_of_progvar.": 2, + "get_proc_model": 2, + "code_model.": 1, + "get_headvars": 2, + "get_arginfo": 2, + "arg_info": 2, + "get_pred_proc_arginfo": 3, + "current_resume_point_vars": 2, + "variable_name": 2, + "make_proc_entry_label": 2, + "code_addr.": 1, + "label": 5, + "succip_is_used": 2, + "add_trace_layout_for_label": 2, + "term.context": 3, + "trace_port": 1, + "forward_goal_path": 1, + "user_event_info": 1, + "layout_label_info": 2, + "get_cur_proc_label": 4, + "get_next_closure_seq_no": 2, + "add_closure_layout": 2, + "add_threadscope_string": 2, + "get_threadscope_rev_string_table": 2, + "add_scalar_static_cell": 2, + "typed_rval": 1, + "data_id": 3, + "add_scalar_static_cell_natural_types": 2, + "rval": 3, + "add_vector_static_cell": 2, + "llds_type": 1, + "add_alloc_site_info": 2, + "prog_context": 1, + "alloc_site_id": 2, + "add_resume_layout_for_label": 2, + "var_locn_get_stack_slots": 1, + "FollowVarMap": 2, + "var_locn_get_follow_var_map": 1, + "RegType": 2, + "NextNonReserved": 2, + "var_locn_get_next_non_reserved": 1, + "VarLocnInfo0": 4, + "var_locn_set_follow_vars": 1, + "GoalInfo": 44, + "HasSubGoals": 3, + "goal_info_get_resume_point": 1, + "no_resume_point": 1, + "resume_point": 1, + "goal_info_get_follow_vars": 1, + "MaybeFollowVars": 3, + "goal_info_get_pre_deaths": 1, + "PreDeaths": 3, + "rem_forward_live_vars": 3, + "maybe_make_vars_forward_dead": 2, + "goal_info_get_pre_births": 1, + "PreBirths": 2, + "add_forward_live_vars": 2, + "does_not_have_subgoals": 2, + "goal_info_get_post_deaths": 2, + "PostDeaths": 5, + "goal_info_get_post_births": 1, + "PostBirths": 3, + "make_vars_forward_live": 1, + "InstMapDelta": 2, + "goal_info_get_instmap_delta": 1, + "InstMap0": 2, + "instmap.apply_instmap_delta": 1, + "TypeInfoLiveness": 2, + "module_info_pred_info": 6, + "body_should_use_typeinfo_liveness": 1, + "Var": 13, + "Type": 18, + "lookup_var_type": 3, + "IsDummy": 2, + "VarType": 2, + "check_dummy_type": 1, + "TypeDefn": 6, + "type_to_ctor_det": 1, + "TypeCtor": 2, + "module_info_get_type_table": 1, + "TypeTable": 2, + "search_type_ctor_defn": 1, + "TypeDefnPrime": 2, + "CheaperTagTest": 3, + "get_type_defn_body": 1, + "TypeBody": 2, + "hlds_du_type": 1, + "CheaperTagTestPrime": 2, + "no_cheaper_tag_test": 1, + "ForwardLiveVarsBeforeGoal": 6, + "RegionVars": 2, + "code_info.get_var_types": 1, + "set_of_var.filter": 1, + "is_region_var": 1, + "HeadVars": 20, + "module_info_pred_proc_info": 4, + "proc_info_get_headvars": 2, + "ArgInfo": 4, + "proc_info_arg_info": 1, + "ResumeVars": 4, + "FailInfo": 19, + "ResumePointStack": 2, + "stack.det_top": 5, + "ResumePointInfo": 2, + "pick_first_resume_point": 1, + "ResumeMap": 8, + "map.keys": 3, + "ResumeMapVarList": 2, + "set_of_var.list_to_set": 3, + "Name": 4, + "Varset": 2, + "varset.lookup_name": 2, + "Immed0": 3, + "CodeAddr": 2, + "Immed": 3, + "globals.lookup_int_option": 1, + "ProcsPerFunc": 2, + "CurPredId": 2, + "CurProcId": 2, + "proc": 2, + "make_entry_label": 1, + "Label": 8, + "C0": 4, + "counter.allocate": 2, + "internal_label": 3, + "Context": 20, + "Port": 2, + "IsHidden": 2, + "GoalPath": 2, + "MaybeSolverEventInfo": 2, + "Layout": 2, + "Internals0": 8, + "Exec": 5, + "trace_port_layout_info": 1, + "LabelNum": 8, + "entry_label": 2, + "map.search": 2, + "Internal0": 4, + "internal_layout_info": 6, + "Exec0": 3, + "Resume": 5, + "Internal": 8, + "map.det_update": 4, + "Internals": 6, + "map.det_insert": 3, + "LayoutInfo": 2, + "Resume0": 3, + "get_active_temps_data": 2, + "assoc_list": 1, + "Temps": 2, + "map.select": 1, + "TempsInUseContentMap": 2, + "map.to_assoc_list": 3, + "cis_proc_label.": 1, + "SeqNo": 2, + "ClosureLayout": 2, + "ClosureLayouts": 2, + "String": 2, + "SlotNum": 2, + "Size0": 3, + "RevTable0": 2, + "Size": 4, + "RevTable": 3, + "RevTable.": 1, + "TableSize": 2, + "cip_ts_string_table_size.": 1, + "RvalsTypes": 2, + "DataAddr": 6, + "StaticCellInfo0": 6, + "global_data.add_scalar_static_cell": 1, + "Rvals": 2, + "global_data.add_scalar_static_cell_natural_types": 1, + "Types": 6, + "Vector": 2, + "global_data.add_vector_static_cell": 1, + "AllocId": 2, + "AllocSite": 3, + "AllocSites0": 2, + "set_tree234.insert": 1, + "AllocSites": 2, + "position_info.": 1, + "branch_end_info.": 1, + "branch_end": 4, + "branch_end_info": 7, + "remember_position": 3, + "position_info": 14, + "reset_to_position": 4, + "reset_resume_known": 2, + "generate_branch_end": 2, + "abs_store_map": 3, + "after_all_branches": 2, + "save_hp_in_branch": 2, + "pos_get_fail_info": 3, + "fail_info.": 2, + "LocDep": 6, + "cild_fail_info.": 1, + "CurCI": 2, + "NextCI": 2, + "Static": 2, + "Persistent": 2, + "NextCI0": 4, + "TempsInUse0": 4, + "set.union": 2, + "BranchStart": 2, + "BranchStartFailInfo": 2, + "BSResumeKnown": 2, + "CurFailInfo": 2, + "CurFailStack": 2, + "CurCurfMaxfr": 2, + "CurCondEnv": 2, + "CurHijack": 2, + "NewFailInfo": 2, + "StoreMap": 8, + "MaybeEnd0": 3, + "MaybeEnd": 6, + "AbsVarLocs": 3, + "assoc_list.values": 1, + "AbsLocs": 2, + "code_util.max_mentioned_abs_regs": 1, + "instmap_is_reachable": 1, + "VarLocs": 2, + "assoc_list.map_values_only": 2, + "abs_locn_to_lval": 2, + "place_vars": 1, + "remake_with_store_map": 4, + "empty": 9, + "EndCodeInfo1": 5, + "EndCodeInfo0": 3, + "FailInfo0": 13, + "FailInfo1": 2, + "ResumeKnown0": 5, + "CurfrMaxfr0": 2, + "CondEnv0": 3, + "Hijack0": 2, + "R": 2, + "ResumeKnown1": 2, + "CurfrMaxfr1": 2, + "CondEnv1": 2, + "Hijack1": 2, + "resume_point_known": 15, + "Redoip0": 3, + "Redoip1": 2, + "ResumeKnown": 21, + "expect": 15, + "must_be_equal": 11, + "CurfrMaxfr": 24, + "EndCodeInfoA": 2, + "TempsInUse1": 2, + "EndCodeInfo": 2, + "BranchEnd": 2, + "BranchEndCodeInfo": 2, + "BranchEndLocDep": 2, + "VarLocns": 2, + "VarLvals": 2, + "reinit_var_locn_state": 1, + "Slot": 2, + "Pos0": 2, + "Pos": 2, + "CI0": 2, + "CIStatic0": 2, + "CILocDep0": 2, + "CIPersistent0": 2, + "LocDep0": 2, + "CI1": 2, + "save_hp": 1, + "CI2": 2, + "CIStatic": 2, + "CIPersistent": 2, + "resume_map.": 1, + "resume_point_info.": 1, + "disj_hijack_info.": 1, + "prepare_for_disj_hijack": 2, + "code_model": 3, + "disj_hijack_info": 3, + "undo_disj_hijack": 2, + "ite_hijack_info.": 1, + "prepare_for_ite_hijack": 2, + "embedded_stack_frame_id": 3, + "ite_hijack_info": 3, + "ite_enter_then": 2, + "simple_neg_info.": 1, + "enter_simple_neg": 2, + "simple_neg_info": 3, + "leave_simple_neg": 2, + "det_commit_info.": 1, + "prepare_for_det_commit": 2, + "det_commit_info": 6, + "generate_det_commit": 2, + "semi_commit_info.": 1, + "prepare_for_semi_commit": 2, + "semi_commit_info": 6, + "generate_semi_commit": 2, + "effect_resume_point": 2, + "pop_resume_point": 1, + "top_resume_point": 1, + "set_resume_point_to_unknown": 1, + "set_resume_point_and_frame_to_unknown": 1, + "generate_failure": 2, + "fail_if_rval_is_false": 1, + "failure_is_direct_branch": 1, + "code_addr": 8, + "may_use_nondet_tailcall": 1, + "nondet_tail_call": 1, + "produce_vars": 1, + "resume_map": 9, + "flush_resume_vars_to_stack": 1, + "make_resume_point": 1, + "resume_locs": 1, + "generate_resume_point": 2, + "resume_point_vars": 1, + "resume_point_stack_addr": 2, + "stack": 1, + "curfr_vs_maxfr": 2, + "condition_env": 3, + "hijack_allowed": 2, + "orig_only": 2, + "stack_only": 2, + "orig_and_stack": 1, + "stack_and_orig": 1, + "redoip_update": 2, + "has_been_done": 5, + "wont_be_done.": 1, + "resume_point_unknown.": 1, + "may_be_different.": 1, + "inside_non_condition": 6, + "not_inside_non_condition.": 1, + "not_allowed.": 1, + "disj_no_hijack": 4, + "disj_temp_frame": 4, + "disj_quarter_hijack": 4, + "disj_half_hijack": 3, + "disj_full_hijack": 3, + "HijackInfo": 29, + "CondEnv": 12, + "Allow": 12, + "model_det": 2, + "model_semi": 3, + "singleton": 28, + "llds_instr": 64, + "comment": 5, + "model_non": 2, + "create_temp_frame": 4, + "do_fail": 6, + "stack.pop": 1, + "TopResumePoint": 6, + "RestResumePoints": 2, + "stack.is_empty": 1, + "wont_be_done": 2, + "acquire_temp_slot": 15, + "slot_lval": 14, + "redoip_slot": 30, + "curfr": 18, + "non_persistent_temp_slot": 15, + "RedoipSlot": 33, + "assign": 46, + "maxfr": 42, + "redofr_slot": 14, + "RedofrSlot": 17, + "from_list": 13, + "prevfr_slot": 3, + "pick_stack_resume_point": 3, + "StackLabel": 9, + "LabelConst": 4, + "llconst_code_addr": 6, + "true": 3, + "ite_region_info": 5, + "ite_info": 3, + "ite_hijack_type": 2, + "ite_no_hijack": 3, + "ite_temp_frame": 3, + "ite_quarter_hijack": 3, + "ite_half_hijack": 3, + "ite_full_hijack": 3, + "CondCodeModel": 4, + "MaybeEmbeddedFrameId": 5, + "HijackType": 12, + "MaybeRegionInfo": 12, + "MaxfrSlot": 30, + "TempFrameCode": 4, + "MaxfrCode": 7, + "EmbeddedFrameId": 2, + "slot_success_record": 1, + "persistent_temp_slot": 1, + "SuccessRecordSlot": 6, + "InitSuccessCode": 3, + "llconst_false": 1, + "ITEResumePoint": 2, + "ThenCode": 10, + "ElseCode": 7, + "ResumePoints0": 5, + "stack.det_pop": 1, + "HijackResumeKnown": 2, + "OldCondEnv": 2, + "RegionInfo": 2, + "EmbeddedStackFrameId": 2, + "ITEStackResumeCodeAddr": 2, + "llconst_true": 1, + "AfterRegionOp": 3, + "if_val": 1, + "unop": 1, + "logical_not": 1, + "code_label": 2, + "use_and_maybe_pop_region_frame": 1, + "region_ite_nondet_cond_fail": 1, + "goto": 2, + "maybe_pick_stack_resume_point": 1, + "ResumeMap0": 2, + "make_fake_resume_map": 5, + "do_redo": 1, + "is_empty": 1, + "Vars": 10, + "Locns": 2, + "set.make_singleton_set": 1, + "reg": 1, + "region_commit_stack_frame": 5, + "AddTrailOps": 4, + "AddRegionOps": 5, + "CommitGoalInfo": 4, + "DetCommitInfo": 4, + "SaveMaxfrCode": 3, + "save_maxfr": 3, + "MaybeMaxfrSlot": 6, + "maybe_save_trail_info": 2, + "MaybeTrailSlots": 8, + "SaveTrailCode": 4, + "maybe_save_region_commit_frame": 4, + "MaybeRegionCommitFrameInfo": 8, + "SaveRegionCommitFrameCode": 2, + "SaveRegionCommitFrameCode.": 2, + "RestoreMaxfrCode": 3, + "restore_maxfr": 3, + "release_temp_slot": 1, + "maybe_restore_trail_info": 2, + "CommitTrailCode": 4, + "maybe_restore_region_commit_frame": 2, + "SuccessRegionCode": 3, + "_FailureRegionCode": 1, + "SuccessRegionCode.": 1, + "commit_hijack_info": 2, + "commit_temp_frame": 3, + "commit_quarter_hijack": 3, + "commit_half_hijack": 3, + "commit_full_hijack": 3, + "SemiCommitInfo": 4, + "clone_resume_point": 1, + "NewResumePoint": 4, + "stack.push": 1, + "StackLabelConst": 7, + "UseMinimalModelStackCopyCut": 4, + "Components": 4, + "foreign_proc_raw_code": 4, + "cannot_branch_away": 4, + "proc_affects_liveness": 2, + "live_lvals_info": 4, + "proc_does_not_affect_liveness": 2, + "MD": 4, + "proc_may_duplicate": 2, + "MarkCode": 3, + "foreign_proc_code": 2, + "proc_will_not_call_mercury": 2, + "HijackCode": 5, + "UseMinimalModel": 3, + "CutCode": 4, + "SuccessUndoCode": 5, + "FailureUndoCode": 5, + "AfterCommit": 2, + "ResumePointCode": 2, + "FailCode": 2, + "RestoreTrailCode": 2, + "FailureRegionCode": 2, + "SuccLabel": 3, + "GotoSuccLabel": 2, + "SuccLabelCode": 1, + "SuccessCode": 2, + "FailureCode": 2, + "SuccLabelCode.": 1, + "_ForwardLiveVarsBeforeGoal": 1, + "check_hlds.polymorphism.": 1, + "hlds.": 1, + "mdbcomp.": 1, + "parse_tree.": 1, + "polymorphism_process_module": 2, + "polymorphism_process_generated_pred": 2, + "unification_typeinfos_rtti_varmaps": 2, + "rtti_varmaps": 9, + "unification": 8, + "polymorphism_process_new_call": 2, + "builtin_state": 1, + "call_unify_context": 2, + "sym_name": 3, + "hlds_goal": 45, + "poly_info": 45, + "polymorphism_make_type_info_vars": 1, + "polymorphism_make_type_info_var": 1, + "int_or_var": 2, + "iov_int": 1, + "iov_var": 1, + "gen_extract_type_info": 1, + "tvar": 10, + "kind": 1, + "vartypes": 12, + "poly_info.": 1, + "create_poly_info": 1, + "poly_info_extract": 1, + "build_typeclass_info_type": 3, + "prog_constraint": 4, + "type_is_typeclass_info": 1, + "type_is_type_info_or_ctor_type": 1, + "build_type_info_type": 1, + "get_special_proc": 1, + "special_pred_id": 2, + "get_special_proc_det": 1, + "convert_pred_to_lambda_goal": 3, + "purity": 1, + "lambda_eval_method": 1, + "unify_context": 3, + "context": 1, + "unify_rhs": 4, + "fix_undetermined_mode_lambda_goal": 2, + "rhs_lambda_goal": 7, + "init_type_info_var": 1, + "init_const_type_ctor_info_var": 1, + "type_ctor": 1, + "cons_id": 2, + "type_info_kind": 2, + "type_ctor_info.": 1, + "new_type_info_var_raw": 1, + "check_hlds.clause_to_proc.": 1, + "check_hlds.mode_util.": 1, + "hlds.from_ground_term_util.": 1, + "hlds.const_struct.": 1, + "hlds.goal_util.": 1, + "hlds.hlds_args.": 1, + "hlds.hlds_clauses.": 1, + "hlds.hlds_code_util.": 1, + "hlds.passes_aux.": 1, + "hlds.pred_table.": 1, + "hlds.quantification.": 1, + "hlds.special_pred.": 1, + "libs.": 1, + "mdbcomp.program_representation.": 1, + "parse_tree.prog_mode.": 1, + "parse_tree.prog_type_subst.": 1, + "solutions.": 1, + "module_info_get_preds": 3, + ".ModuleInfo": 8, + "Preds0": 2, + "PredIds0": 2, + "list.foldl": 6, + "maybe_polymorphism_process_pred": 3, + "Preds1": 2, + "PredIds1": 2, + "fixup_pred_polymorphism": 4, + "expand_class_method_bodies": 1, + "PredModule": 8, + "pred_info_module": 4, + "PredName": 8, + "pred_info_name": 4, + "PredArity": 6, + "pred_info_orig_arity": 3, + "no_type_info_builtin": 3, + "copy_module_clauses_to_procs": 1, + "polymorphism_process_pred_msg": 3, + "PredTable0": 3, + "map.lookup": 2, + "PredInfo0": 16, + "pred_info_get_clauses_info": 2, + "ClausesInfo0": 5, + "clauses_info_get_vartypes": 2, + "VarTypes0": 12, + "clauses_info_get_headvars": 2, + "pred_info_get_arg_types": 7, + "TypeVarSet": 15, + "ExistQVars": 13, + "ArgTypes0": 3, + "proc_arg_vector_partition_poly_args": 1, + "ExtraHeadVarList": 2, + "OldHeadVarList": 2, + "lookup_var_types": 6, + "ExtraArgTypes": 2, + "ArgTypes": 6, + "pred_info_set_arg_types": 1, + "PredInfo1": 5, + "OldHeadVarTypes": 2, + "type_list_subsumes": 2, + "Subn": 3, + "map.is_empty": 1, + "pred_info_set_existq_tvar_binding": 1, + "PredInfo2": 7, + "polymorphism_introduce_exists_casts_pred": 3, + "PredTable": 2, + "module_info_set_preds": 1, + "pred_info_get_procedures": 2, + ".PredInfo": 2, + "Procs0": 4, + "map.map_values_only": 1, + ".ProcInfo": 2, + "introduce_exists_casts_proc": 1, + "Procs": 4, + "pred_info_set_procedures": 2, + "trace": 4, + "compiletime": 4, + "flag": 4, + "write_pred_progress_message": 1, + "polymorphism_process_pred": 4, + "selected_pred": 1, + "ground": 9, + "untrailed": 2, + "level": 1, + "pred_id_to_int": 1, + "impure": 2, + "set_selected_pred": 2, + "polymorphism_process_clause_info": 3, + "ClausesInfo": 13, + "Info": 134, + "ExtraArgModes": 20, + "poly_info_get_module_info": 4, + "poly_info_get_const_struct_db": 1, + "ConstStructDb": 2, + "module_info_set_const_struct_db": 1, + "poly_info_get_typevarset": 4, + "pred_info_set_typevarset": 1, + "pred_info_set_clauses_info": 1, + "ProcIds": 5, + "pred_info_procids": 2, + "polymorphism_process_proc_in_table": 3, + "module_info_set_pred_info": 1, + "clauses_info": 6, + "poly_arg_vector": 9, + "mer_mode": 14, + "ModuleInfo0": 8, + "init_poly_info": 1, + ".ClausesInfo": 2, + "_VarSet": 1, + "ExplicitVarTypes": 2, + "_TVarNameMap": 1, + "_VarTypes": 1, + "HeadVars0": 5, + "ClausesRep0": 2, + "ItemNumbers": 2, + "_RttiVarMaps": 1, + "HaveForeignClauses": 2, + "setup_headvars": 3, + "UnconstrainedTVars": 15, + "ExtraTypeInfoHeadVars": 4, + "ExistTypeClassInfoHeadVars": 6, + "get_clause_list": 1, + "Clauses0": 2, + "list.map_foldl": 2, + "polymorphism_process_clause": 3, + "Clauses": 2, + "poly_info_get_varset": 4, + ".Info": 25, + "poly_info_get_var_types": 6, + "poly_info_get_rtti_varmaps": 4, + "RttiVarMaps": 16, + "set_clause_list": 1, + "ClausesRep": 2, + "TVarNameMap": 2, + "while": 1, + "adding": 1, + "clauses.": 1, + "proc_arg_vector": 9, + "clause": 2, + "OldHeadVars": 2, + "NewHeadVars": 2, + "Clause": 2, + "pred_info_is_imported": 2, + "Goal0": 21, + ".Clause": 1, + "clause_body": 2, + "empty_cache_maps": 4, + "poly_info_set_num_reuses": 1, + "polymorphism_process_goal": 20, + "Goal1": 2, + "produce_existq_tvars": 3, + "Goal2": 2, + "pred_info_get_exist_quant_tvars": 1, + "fixup_quantification": 1, + "Goal": 40, + "proc_table": 2, + "ProcTable": 2, + ".ProcTable": 1, + "ProcInfo0": 2, + "polymorphism_process_proc": 3, + "pred_info_is_pseudo_imported": 1, + "hlds_pred.in_in_unification_proc_id": 1, + "HeadVarList": 4, + "proc_arg_vector_to_list": 2, + "clauses_info_get_rtti_varmaps": 1, + "clauses_info_get_varset": 1, + "proc_info_set_headvars": 1, + "proc_info_set_rtti_varmaps": 1, + "proc_info_set_varset": 1, + "proc_info_set_vartypes": 1, + "copy_clauses_to_proc": 1, + "proc_info_get_argmodes": 2, + "ArgModes1": 2, + "ExtraArgModesList": 2, + "poly_arg_vector_to_list": 1, + "ArgModes": 5, + "proc_info_set_argmodes": 1, + "ExtraHeadTypeInfoVars": 7, + "ExistHeadTypeClassInfoVars": 9, + "pred_info_get_origin": 1, + "Origin": 8, + "ExtraArgModes0": 3, + "poly_arg_vector_init": 1, + "origin_instance_method": 1, + "InstanceMethodConstraints": 4, + "setup_headvars_instance_method": 3, + "origin_special_pred": 1, + "origin_transformed": 1, + "origin_created": 1, + "origin_assertion": 1, + "origin_lambda": 1, + "origin_user": 1, + "pred_info_get_class_context": 4, + "ClassContext": 6, + "InstanceTVars": 7, + "InstanceUnconstrainedTVars": 2, + "InstanceUnconstrainedTypeInfoVars": 2, + "setup_headvars_2": 4, + "instance_method_constraints": 2, + "InstanceTypes": 2, + "InstanceConstraints": 3, + "type_vars_list": 5, + "get_unconstrained_tvars": 1, + "UnconstrainedInstanceTVars": 6, + "ArgTypeVarSet": 5, + "make_head_vars": 3, + "UnconstrainedInstanceTypeInfoVars": 7, + "make_typeclass_info_head_vars": 3, + "do_record_type_info_locns": 3, + "InstanceHeadTypeClassInfoVars": 4, + "proc_arg_vector_set_instance_type_infos": 1, + "proc_arg_vector_set_instance_typeclass_infos": 1, + "RttiVarMaps0": 4, + "rtti_reuse_typeclass_info_var": 3, + "poly_info_set_rtti_varmaps": 3, + "in_mode": 3, + "InMode": 3, + "list.duplicate": 6, + "list.length": 16, + "UnconstrainedInstanceTypeInfoModes": 2, + "InstanceHeadTypeClassInfoModes": 2, + "poly_arg_vector_set_instance_type_infos": 1, + "poly_arg_vector_set_instance_typeclass_infos": 1, + "prog_constraints": 1, + "AllUnconstrainedTVars": 2, + "AllExtraHeadTypeInfoVars": 2, + "constraints": 4, + "UnivConstraints": 3, + "ExistConstraints": 6, + "prog_type.constraint_list_get_tvars": 2, + "UnivConstrainedTVars": 2, + "ExistConstrainedTVars": 2, + "poly_info_get_constraint_map": 4, + "ConstraintMap": 12, + "get_improved_exists_head_constraints": 4, + "ActualExistConstraints": 9, + "pred_info_get_markers": 1, + "PredMarkers": 2, + "check_marker": 1, + "marker_class_method": 1, + "RecordExistQLocns": 3, + "do_not_record_type_info_locns": 1, + "UnivHeadTypeClassInfoVars": 4, + "HeadTypeVars": 2, + "list.delete_elems": 12, + "UnconstrainedTVars0": 2, + "UnconstrainedTVars1": 2, + "UnconstrainedTVars2": 2, + "list.remove_dups": 4, + "UnconstrainedUnivTVars": 7, + "UnconstrainedExistTVars": 6, + "ExistHeadTypeInfoVars": 5, + "UnivHeadTypeInfoVars": 4, + "list.condense": 4, + "proc_arg_vector_set_univ_type_infos": 1, + "HeadVars1": 2, + "proc_arg_vector_set_exist_type_infos": 1, + "HeadVars2": 2, + "proc_arg_vector_set_univ_typeclass_infos": 1, + "HeadVars3": 2, + "proc_arg_vector_set_exist_typeclass_infos": 1, + "In": 6, + "out_mode": 2, + "Out": 6, + "NumUnconstrainedUnivTVars": 2, + "NumUnconstrainedExistTVars": 2, + "NumUnivClassInfoVars": 2, + "NumExistClassInfoVars": 2, + "UnivTypeInfoModes": 2, + "ExistTypeInfoModes": 2, + "UnivTypeClassInfoModes": 2, + "ExistTypeClassInfoModes": 2, + "poly_arg_vector_set_univ_type_infos": 1, + "poly_arg_vector_set_exist_type_infos": 1, + "poly_arg_vector_set_univ_typeclass_infos": 1, + "poly_arg_vector_set_exist_typeclass_infos": 1, + "ToLocn": 4, + "TheVar": 2, + "TheLocn": 2, + "list.map": 17, + "UnivTypeLocns": 2, + "list.foldl_corresponding": 3, + "rtti_det_insert_type_info_locn": 3, + "ExistTypeLocns": 2, + "UnconstrainedInstanceTypeLocns": 2, + ".RttiVarMaps": 1, + "TypeInfoHeadVars": 2, + "pred_info_get_tvar_kinds": 2, + "KindMap": 2, + "PredClassContext": 5, + "PredExistConstraints": 2, + "exist_constraints": 1, + "ExistQVarsForCall": 2, + "goal_info_get_context": 4, + "make_typeclass_info_vars": 3, + "ExistTypeClassVarsMCAs": 2, + "ExtraTypeClassGoals": 5, + "assoc_list.keys": 8, + "ExistTypeClassVars": 3, + "assign_var_list": 8, + "ExtraTypeClassUnifyGoals": 2, + "vartypes_is_empty": 1, + "PredToActualTypeSubst": 4, + "ActualArgTypes": 8, + "ArgTypeSubst": 2, + "apply_subst_to_tvar_list": 1, + "ActualTypes": 2, + "polymorphism_do_make_type_info_vars": 5, + "TypeInfoVarsMCAs": 2, + "ExtraTypeInfoGoals": 4, + "TypeInfoVars": 5, + "ExtraTypeInfoUnifyGoals": 2, + "GoalList": 8, + "conj_list_to_goal": 6, + "Var1": 5, + "Vars1": 2, + "Var2": 5, + "Vars2": 2, + "Goals": 13, + "assign_var": 3, + "true_goal": 1, + "term.context_init": 2, + "create_pure_atomic_complicated_unification": 1, + "rhs_var": 2, + "umc_explicit": 1, + "constraint_map": 1, + "NumExistConstraints": 4, + "search_hlds_constraint_list": 1, + "unproven": 3, + "goal_id": 1, + "ActualExistConstraints0": 2, + "GoalExpr0": 18, + "GoalInfo0": 41, + "generic_call": 1, + "plain_call": 5, + "ArgVars0": 23, + "polymorphism_process_call": 4, + "ExtraVars": 13, + "ExtraGoals": 13, + "ArgVars": 6, + "CallExpr": 4, + "call_args": 1, + "Call": 4, + "call_foreign_proc": 4, + "polymorphism_process_foreign_proc": 3, + "XVar": 11, + "Y": 9, + "Mode": 12, + "Unification": 16, + "UnifyContext": 15, + "polymorphism_process_unify": 4, + "conj": 5, + "ConjType": 4, + "Goals0": 13, + "plain_conj": 4, + "polymorphism_process_plain_conj": 5, + "parallel_conj": 1, + "get_cache_maps_snapshot": 11, + "InitialSnapshot": 36, + "polymorphism_process_par_conj": 5, + "GoalExpr": 19, + "disj": 2, + "polymorphism_process_disj": 6, + "set_cache_maps_snapshot": 15, + "if_then_else": 2, + "Cond0": 2, + "Then0": 2, + "Else0": 2, + "Cond": 2, + "Then": 2, + "Else": 2, + "negation": 2, + "SubGoal0": 14, + "SubGoal": 16, + "switch": 2, + "CanFail": 4, + "Cases0": 4, + "polymorphism_process_cases": 5, + "Cases": 4, + "scope": 7, + "Reason0": 16, + "from_ground_term": 2, + "TermVar": 4, + "Kind": 5, + "from_ground_term_initial": 2, + "polymorphism_process_from_ground_term_initial": 3, + "from_ground_term_construct": 1, + "from_ground_term_deconstruct": 1, + "from_ground_term_other": 1, + "promise_solutions": 1, + "promise_purity": 1, + "require_detism": 1, + "require_complete_switch": 1, + "commit": 1, + "barrier": 1, + "loop_control": 1, + "exist_quant": 1, + "trace_goal": 1, + "shorthand": 2, + "ShortHand0": 4, + "atomic_goal": 2, + "GoalType": 2, + "Outer": 2, + "Inner": 2, + "MainGoal0": 2, + "OrElseGoals0": 2, + "OrElseInners": 2, + "MainGoal": 2, + "OrElseGoals": 2, + "ShortHand": 3, + "try_goal": 2, + "MaybeIO": 2, + "ResultVar": 2, + "SubGoalExpr0": 4, + "SubGoalInfo": 2, + "Conjuncts0": 2, + "ConjunctA0": 2, + "ConjunctB0": 2, + "ConjunctA": 2, + "ConjunctB": 2, + "Conjuncts": 2, + "SubGoalExpr": 2, + "bi_implication": 1, + "hlds_goal_expr": 2, + "SubGoalInfo0": 2, + "SubGoals0Prime": 2, + "SubGoals0": 2, + "polymorphism_process_fgti_goals": 5, + "RevMarkedSubGoals": 2, + "fgt_invariants_kept": 2, + "InvariantsStatus": 7, + "Reason": 2, + "fgt_invariants_broken": 2, + "introduce_partial_fgt_scopes": 1, + "deconstruct_top_down": 1, + "fgt_marked_goal": 2, + "fgt_invariants_status": 2, + "RevMarkedGoals": 4, + "OldInfo": 3, + "XVarPrime": 2, + "ModePrime": 2, + "UnificationPrime": 2, + "UnifyContextPrime": 2, + "rhs_functor": 5, + "ConsIdPrime": 2, + "YVarsPrime": 2, + "ConsId": 10, + "YVars": 4, + "polymorphism_process_unify_functor": 4, + "Changed": 10, + "VarSetBefore": 2, + "MaxVarBefore": 2, + "varset.max_var": 2, + "poly_info_get_num_reuses": 2, + "NumReusesBefore": 2, + "VarSetAfter": 2, + "MaxVarAfter": 2, + "NumReusesAfter": 2, + "MarkedGoal": 3, + "fgt_kept_goal": 1, + "fgt_broken_goal": 1, + ".RevMarkedGoals": 1, + "unify_mode": 2, + "Unification0": 8, + "_YVar": 1, + "unification_typeinfos": 5, + "_Changed": 3, + "Args": 11, + "Purity": 9, + "Groundness": 6, + "PredOrFunc": 6, + "EvalMethod": 8, + "LambdaVars": 13, + "Modes": 4, + "Det": 4, + "LambdaGoal0": 5, + "LambdaGoal1": 2, + "fixup_lambda_quantification": 1, + "LambdaGoal": 6, + "NonLocalTypeInfos": 3, + "set_of_var.to_sorted_list": 1, + "NonLocalTypeInfosList": 2, + "Y1": 2, + "NonLocals0": 10, + "goal_info_get_nonlocals": 6, + "NonLocals": 12, + "goal_info_set_nonlocals": 6, + "type_vars": 2, + "TypeVars": 8, + "get_type_info_locn": 1, + "TypeInfoLocns": 6, + "add_unification_typeinfos": 4, + "rtti_lookup_type_info_locn": 1, + "type_info_locn": 1, + "type_info_locn_var": 1, + "TypeInfoVars0": 2, + ".GoalInfo": 1, + "set_of_var.insert_list": 4, + ".Unification": 5, + "complicated_unify": 2, + "construct": 1, + "simple_test": 1, + "X0": 8, + "ConsId0": 5, + "Mode0": 4, + "TypeOfX": 6, + "closure_cons": 1, + "ShroudedPredProcId": 2, + "ProcId0": 3, + "unshroud_pred_proc_id": 1, + "type_is_higher_order_details": 1, + "_PredOrFunc": 1, + "CalleeArgTypes": 2, + "invalid_proc_id": 1, + "goal_info_add_feature": 1, + "feature_lambda_undetermined_mode": 1, + "GoalInfo1": 6, + "VarSet0": 2, + "Functor0": 6, + "poly_info_set_varset_and_types": 1, + "cons": 3, + "ConsTypeCtor": 2, + "remove_new_prefix": 1, + "OrigFunctor": 2, + "IsConstruction": 7, + "type_util.get_existq_cons_defn": 1, + "ConsDefn": 2, + "polymorphism_process_existq_unify_functor": 3, + "UnifyExpr": 2, + "Unify": 2, + "PredArgTypes": 10, + "create_fresh_vars": 5, + "QualifiedPName": 5, + "qualified": 1, + "cons_id_dummy_type_ctor": 1, + "RHS": 2, + "CallUnifyContext": 2, + "LambdaGoalExpr": 2, + "not_builtin": 3, + "OutsideVars": 2, + "InsideVars": 2, + "set_of_var.intersect": 1, + "LambdaNonLocals": 2, + "GoalId": 8, + "goal_info_get_goal_id": 3, + "goal_info_init": 1, + "LambdaGoalInfo0": 2, + "goal_info_set_context": 1, + "LambdaGoalInfo1": 2, + "LambdaGoalInfo2": 2, + "goal_info_set_purity": 1, + "LambdaGoalInfo3": 2, + "goal_info_set_goal_id": 1, + "LambdaGoalInfo": 4, + "lambda_modes_and_det": 4, + "LambdaModes": 6, + "LambdaDet": 6, + "pred_info_is_pred_or_func": 1, + "ho_ground": 1, + "_LambdaModes0": 1, + "_LambdaDet0": 1, + "goal_to_conj_list": 1, + "LambdaGoalList0": 2, + "list.split_last": 1, + "LambdaGoalButLast0": 2, + "LastGoal0": 2, + "LastGoalExpr0": 2, + "LastGoalInfo0": 2, + "PredId0": 2, + "_DummyProcId": 1, + "Args0": 5, + "MaybeCallUnifyContext0": 2, + "QualifiedPName0": 2, + "LambdaGoalButLast": 2, + "LastGoalInfo": 2, + "MaybeCallUnifyContext": 4, + "LastGoalExpr": 2, + "LastGoal": 2, + "prog_vars": 1, + "determinism": 1, + "NumArgModes": 2, + "NumLambdaVars": 2, + "list.drop": 2, + "LambdaModesPrime": 2, + "proc_info_get_declared_determinism": 1, + "MaybeDet": 3, + "sorry": 1, + "varset.new_var": 1, + "add_var_type": 1, + "ctor_defn": 2, + "CtorDefn": 2, + "ActualRetType": 2, + "CtorTypeVarSet": 2, + "CtorExistQVars": 2, + "CtorKindMap": 2, + "CtorExistentialConstraints": 2, + "CtorArgTypes": 2, + "CtorRetType": 2, + "TypeVarSet0": 5, + "tvarset_merge_renaming": 3, + "CtorToParentRenaming": 6, + "apply_variable_renaming_to_tvar_list": 2, + "ParentExistQVars": 6, + "apply_variable_renaming_to_tvar_kind_map": 2, + "ParentKindMap": 7, + "apply_variable_renaming_to_prog_constraint_list": 1, + "ParentExistentialConstraints": 3, + "apply_variable_renaming_to_type_list": 4, + "ParentArgTypes": 6, + "apply_variable_renaming_to_type": 1, + "ParentRetType": 2, + "poly_info_set_typevarset": 3, + "type_list_subsumes_det": 3, + "ParentToActualTypeSubst": 6, + "NumExistentialConstraints": 3, + "lookup_hlds_constraint_list": 4, + "ActualExistentialConstraints": 4, + "ExtraTypeClassVarsMCAs": 2, + "ExtraTypeClassVars": 2, + "assumed": 2, + "make_existq_typeclass_info_vars": 2, + "constraint_list_get_tvars": 3, + "ParentExistConstrainedTVars": 4, + "ParentUnconstrainedExistQVars": 2, + "apply_rec_subst_to_tvar_list": 4, + "ActualExistentialTypes": 2, + "ExtraTypeInfoVarsMCAs": 2, + "ExtraTypeInfoVars": 2, + "ExtraTypeClassVars.": 1, + "bound": 1, + "Attributes": 2, + "ProcExtraArgs": 2, + "MaybeTraceRuntimeCond": 2, + "Impl": 14, + "foreign_arg_var": 1, + "CanOptAwayUnnamed": 11, + "polymorphism_process_foreign_proc_args": 3, + "ExtraArgs": 5, + "pragma_foreign_code_impl": 4, + "foreign_arg": 1, + "PredTypeVarSet": 8, + "UnivCs": 4, + "ExistCs": 4, + "UnivVars0": 2, + "get_constrained_vars": 2, + "UnivConstrainedVars": 2, + "ExistVars0": 2, + "ExistConstrainedVars": 2, + "PredTypeVars0": 2, + "PredTypeVars1": 2, + "PredTypeVars2": 2, + "PredTypeVars": 3, + "foreign_proc_add_typeclass_info": 4, + "ExistTypeClassArgInfos": 2, + "UnivTypeClassArgInfos": 2, + "TypeClassArgInfos": 2, + "list.filter": 1, + "ExistUnconstrainedVars": 2, + "UnivUnconstrainedVars": 2, + "foreign_proc_add_typeinfo": 4, + "ExistTypeArgInfos": 2, + "UnivTypeArgInfos": 2, + "TypeInfoArgInfos": 2, + "ArgInfos": 2, + "TypeInfoTypes": 2, + "type_info_type": 1, + "UnivTypes": 2, + "ExistTypes": 2, + "OrigArgTypes": 2, + "make_foreign_args": 1, + "tvarset": 3, + "box_policy": 2, + "Constraint": 2, + "MaybeArgName": 7, + "native_if_possible": 2, + "SymName": 4, + "sym_name_to_string_sep": 1, + "TypeVarNames": 2, + "underscore_and_tvar_name": 3, + "string.append_list": 1, + "ConstraintVarName": 3, + "foreign_code_does_not_use_variable": 4, + "TVar": 4, + "varset.search_name": 1, + "TypeVarName": 2, + "C_VarName": 3, + "VarName": 2, + "foreign_code_uses_variable": 1, + "TVarName": 2, + "TVarName0": 1, + "TVarName0.": 1, + "cache_maps": 3, + "case": 4, + "Case0": 2, + "Case": 2, + "MainConsId": 2, + "OtherConsIds": 2, + "PredExistQVars": 2, + "PredKindMap": 3, + "varset.is_empty": 1, + "PredToParentTypeRenaming": 6, + "ParentTVars": 4, + "apply_variable_renaming_to_prog_constraints": 1, + "ParentClassContext": 2, + "ParentUnivConstraints": 3, + "ParentExistConstraints": 3, + "ParentUnivConstrainedTVars": 2, + "ParentUnconstrainedTVars0": 2, + "ParentUnconstrainedTVars1": 2, + "ParentUnconstrainedTVars": 3, + "ParentUnconstrainedUnivTVars": 3, + "ParentUnconstrainedExistTVars": 2, + "NumUnivConstraints": 2, + "ActualUnivConstraints": 2, + "ActualExistQVarTypes": 2, + "prog_type.type_list_to_var_list": 1, + "ActualExistQVars0": 2, + "ActualExistQVars": 2, + "ExtraUnivClassVarsMCAs": 2, + "ExtraUnivClassGoals": 2, + "ExtraUnivClassVars": 2, + "ExtraExistClassVars": 2, + "ExtraExistClassGoals": 2, + "ActualUnconstrainedUnivTypes": 2, + "ExtraUnivTypeInfoVarsMCAs": 2, + "ExtraUnivTypeInfoGoals": 2, + "ExtraUnivTypeInfoVars": 2, + "ActualUnconstrainedExistTypes": 2, + "ExtraExistTypeInfoVarsMCAs": 2, + "ExtraExistTypeInfoGoals": 2, + "ExtraExistTypeInfoVars": 2, + "CalleePredInfo": 2, + "CalleeProcInfo": 3, + "CallArgs0": 3, + "BuiltinState": 2, + "TVarSet0": 2, + "ActualArgTypes0": 3, + "PredTVarSet": 2, + "_PredExistQVars": 1, + "CalleeHeadVars": 2, + "proc_info_get_rtti_varmaps": 1, + "CalleeRttiVarMaps": 2, + "NCallArgs0": 2, + "NPredArgs": 2, + "NExtraArgs": 3, + "OrigPredArgTypes0": 2, + "list.take": 1, + "CalleeExtraHeadVars0": 2, + "OrigPredArgTypes": 2, + "CalleeExtraHeadVars": 2, + "TVarSet": 2, + "PredToParentRenaming": 3, + "OrigParentArgTypes": 2, + "ParentToActualTSubst": 2, + "GetTypeInfoTypes": 2, + "ProgVar": 2, + "TypeInfoType": 2, + "rtti_varmaps_var_info": 1, + "VarInfo": 4, + "type_info_var": 1, + "typeclass_info_var": 1, + "non_rtti_var": 1, + "PredTypeInfoTypes": 2, + "ParentTypeInfoTypes": 2, + "apply_rec_subst_to_type_list": 1, + "ActualTypeInfoTypes": 2, + "Ctxt": 2, + "ExtraArgsConstArgs": 2, + "CallArgs": 2, + "NonLocals1": 2, + "CallGoalExpr": 2, + "CallGoal": 2 + }, + "Volt": { + "module": 1, + "main": 2, + ";": 53, + "import": 7, + "core.stdc.stdio": 1, + "core.stdc.stdlib": 1, + "watt.process": 1, + "watt.path": 1, + "results": 1, + "list": 1, + "cmd": 1, + "int": 8, + "(": 37, + ")": 37, + "{": 12, + "auto": 6, + "cmdGroup": 2, + "new": 3, + "CmdGroup": 1, + "bool": 4, + "printOk": 2, + "true": 4, + "printImprovments": 2, + "printFailing": 2, + "printRegressions": 2, + "string": 1, + "compiler": 3, + "getEnv": 1, + "if": 7, + "is": 2, + "null": 3, + "printf": 6, + ".ptr": 14, + "return": 2, + "-": 3, + "}": 12, + "///": 1, + "@todo": 1, + "Scan": 1, + "for": 4, + "files": 1, + "tests": 2, + "testList": 1, + "total": 5, + "passed": 5, + "failed": 5, + "improved": 3, + "regressed": 6, + "rets": 5, + "Result": 2, + "[": 6, + "]": 6, + "tests.length": 3, + "size_t": 3, + "i": 14, + "<": 3, + "+": 14, + ".runTest": 1, + "cmdGroup.waitAll": 1, + "ret": 1, + "ret.ok": 1, + "cast": 5, + "ret.hasPassed": 4, + "&&": 2, + "ret.test.ptr": 4, + "ret.msg.ptr": 4, + "else": 3, + "fflush": 2, + "stdout": 1, + "xml": 8, + "fopen": 1, + "fprintf": 2, + "rets.length": 1, + ".xmlLog": 1, + "fclose": 1, + "rate": 2, + "float": 2, + "/": 1, + "*": 1, + "f": 1, + "double": 1 + }, + "Pascal": { + "program": 1, + "gmail": 1, + ";": 6, + "uses": 1, + "Forms": 1, + "Unit2": 1, + "in": 1, + "{": 2, + "Form2": 2, + "}": 2, + "R": 1, + "*.res": 1, + "begin": 1, + "Application.Initialize": 1, + "Application.MainFormOnTaskbar": 1, + "True": 1, + "Application.CreateForm": 1, + "(": 1, + "TForm2": 1, + ")": 1, + "Application.Run": 1, + "end.": 1 + }, + "AsciiDoc": { + "Gregory": 2, + "Rom": 2, + "has": 2, + "written": 2, + "an": 2, + "AsciiDoc": 3, + "plugin": 2, + "for": 2, + "the": 2, + "Redmine": 2, + "project": 2, + "management": 2, + "application.": 2, + "https": 1, + "//github.com/foo": 1, + "-": 4, + "users/foo": 1, + "vicmd": 1, + "gif": 1, + "tag": 1, + "rom": 2, + "[": 2, + "]": 2, + "end": 1, + "berschrift": 1, + "*": 4, + "Codierungen": 1, + "sind": 1, + "verr": 1, + "ckt": 1, + "auf": 1, + "lteren": 1, + "Versionen": 1, + "von": 1, + "Ruby": 1, + "Home": 1, + "Page": 1, + "Example": 1, + "Articles": 1, + "Item": 6, + "Document": 1, + "Title": 1, + "Doc": 1, + "Writer": 1, + "": 1, + "idprefix": 1, + "id_": 1, + "Preamble": 1, + "paragraph.": 4, + "NOTE": 1, + "This": 1, + "is": 1, + "test": 1, + "only": 1, + "a": 1, + "test.": 1, + "Section": 3, + "A": 2, + "*Section": 3, + "A*": 2, + "Subsection": 1, + "B": 2, + "B*": 1, + ".Section": 1, + "list": 1 + }, + "Kotlin": { + "package": 1, + "addressbook": 1, + "class": 5, + "Contact": 1, + "(": 15, + "val": 16, + "name": 2, + "String": 7, + "emails": 1, + "List": 3, + "": 1, + "addresses": 1, + "": 1, + "phonenums": 1, + "": 1, + ")": 15, + "EmailAddress": 1, + "user": 1, + "host": 1, + "PostalAddress": 1, + "streetAddress": 1, + "city": 1, + "zip": 1, + "state": 2, + "USState": 1, + "country": 3, + "Country": 7, + "{": 6, + "assert": 1, + "null": 3, + "xor": 1, + "Countries": 2, + "[": 3, + "]": 3, + "}": 6, + "PhoneNumber": 1, + "areaCode": 1, + "Int": 1, + "number": 1, + "Long": 1, + "object": 1, + "fun": 1, + "get": 2, + "id": 2, + "CountryID": 1, + "countryTable": 2, + "private": 2, + "var": 1, + "table": 5, + "Map": 2, + "": 2, + "if": 1, + "HashMap": 1, + "for": 1, + "line": 3, + "in": 1, + "TextFile": 1, + ".lines": 1, + "stripWhiteSpace": 1, + "true": 1, + "return": 1 + }, + "Coq": { + "Require": 17, + "Export": 10, + "SfLib.": 2, + "Module": 11, + "AExp.": 2, + "Inductive": 41, + "aexp": 30, + "Type": 86, + "|": 457, + "ANum": 18, + "nat": 108, + "-": 508, + "APlus": 14, + "AMinus": 9, + "AMult": 9, + "aexp.": 1, + "bexp": 22, + "BTrue": 10, + "BFalse": 11, + "BEq": 9, + "BLe": 9, + "BNot": 9, + "BAnd": 10, + "bexp.": 1, + "Fixpoint": 36, + "aeval": 46, + "(": 1248, + "e": 53, + ")": 1249, + "match": 70, + "with": 223, + "n": 369, + "a1": 56, + "a2": 62, + "+": 227, + "*": 59, + "end.": 52, + "Example": 37, + "test_aeval1": 1, + "Proof.": 208, + "reflexivity.": 199, + "Qed.": 194, + "beval": 16, + "bool": 38, + "true": 68, + "false": 48, + "beq_nat": 24, + "ble_nat": 6, + "b1": 35, + "negb": 10, + "b2": 23, + "andb": 8, + "optimize_0plus": 15, + "a": 207, + "e2": 54, + "e1": 58, + "test_optimize_0plus": 1, + ".": 433, + "Theorem": 115, + "optimize_0plus_sound": 4, + "forall": 248, + "e.": 15, + "intros": 258, + "induction": 81, + "Case": 51, + "destruct": 94, + "e1.": 1, + "SCase": 24, + "n.": 44, + "SSCase": 3, + "simpl.": 70, + "apply": 340, + "IHe2.": 10, + "rewrite": 241, + "simpl": 116, + "in": 221, + "IHe1.": 11, + "aexp_cases": 3, + ";": 375, + "try": 17, + "IHe1": 6, + "IHe2": 6, + "reflexivity": 16, + "optimize_0plus_all": 2, + "b": 89, + "Tactic": 9, + "Notation": 39, + "tactic": 9, + "first": 18, + "ident": 9, + "c": 70, + "[": 170, + "Case_aux": 38, + "]": 173, + "optimize_0plus_all_sound": 1, + "bexp_cases": 4, + "optimize_and": 5, + "optimize_and_sound": 1, + "IHe": 2, + "aevalR_first_try.": 2, + "aevalR": 18, + "Prop": 17, + "E_Anum": 1, + "E_APlus": 2, + "n1": 45, + "n2": 41, + "E_AMinus": 2, + "E_AMult": 2, + "at": 17, + "level": 11, + "End": 15, + "Reserved": 4, + "E_ANum": 1, + "where": 6, + "bevalR": 11, + "E_BTrue": 1, + "E_BFalse": 1, + "E_BEq": 1, + "E_BLe": 1, + "E_BNot": 1, + "E_BAnd": 1, + "aeval_iff_aevalR": 9, + "<->": 31, + "split.": 17, + "H": 76, + "subst": 7, + "generalize": 13, + "dependent": 6, + "constructor": 6, + "IHa1": 1, + "IHa2": 1, + "beval_iff_bevalR": 1, + "b.": 14, + "H.": 100, + "*.": 110, + "H0.": 24, + "subst.": 43, + "IHbevalR": 1, + "IHbevalR1": 1, + "IHbevalR2": 1, + "a.": 6, + "constructor.": 16, + "<": 76, + "remember": 12, + "as": 77, + "A": 113, + "assert": 68, + "a0": 15, + "IHa.": 1, + "IHa1.": 1, + "IHa2.": 1, + "silly_presburger_formula": 1, + "m": 201, + "o": 25, + "p": 81, + "<=>": 12, + "3": 2, + "Proof": 12, + "omega": 7, + "Qed": 23, + "Id": 7, + "id": 7, + "id.": 1, + "Definition": 46, + "beq_id": 14, + "id1": 2, + "id2": 2, + "beq_id_refl": 1, + "i": 11, + "i.": 2, + "intros.": 27, + "beq_nat_refl.": 1, + "beq_id_eq": 4, + "i1": 15, + "i2": 10, + "i2.": 8, + "i1.": 3, + "unfold": 58, + "beq_nat_eq": 2, + "beq_id_false_not_eq": 1, + "C.": 3, + "n0": 5, + "beq_false_not_eq": 1, + "inversion": 104, + "not_eq_beq_id_false": 1, + "false.": 12, + "not_eq_beq_false.": 1, + "beq_nat_sym": 2, + "S": 186, + "AId": 4, + "com_cases": 1, + "SKIP": 5, + "IFB": 4, + "WHILE": 5, + "l": 379, + "c1": 14, + "c2": 9, + "e3": 1, + "cl": 1, + "st": 113, + "/": 41, + "E_IfTrue": 2, + "THEN": 3, + "ELSE": 3, + "FI": 3, + "E_WhileEnd": 2, + "DO": 4, + "END": 4, + "E_WhileLoop": 2, + "ceval_cases": 1, + "E_Skip": 1, + "E_Ass": 1, + "E_Seq": 1, + "E_IfFalse": 1, + "assignment": 1, + "command": 2, + "if": 10, + "st1": 2, + "o.": 4, + "IHi1": 3, + "Heqst1": 1, + "Hceval.": 4, + "Hceval": 2, + "assumption.": 61, + "bval": 2, + "ceval_step": 3, + "Some": 21, + "ceval_step_more": 7, + "x1.": 3, + "omega.": 7, + "H1": 18, + "x2.": 2, + "IHHce.": 2, + "exists": 60, + "x": 266, + "%": 3, + "nat.": 4, + "IHHce1.": 1, + "IHHce2.": 1, + "x0": 14, + "X": 191, + "plus2": 1, + "nx": 3, + "Y": 38, + "ny": 2, + "XtimesYinZ": 1, + "Z": 11, + "ny.": 1, + "loop": 2, + "contra.": 19, + "loopdef.": 1, + "Heqloopdef.": 8, + "contra1.": 1, + "IHcontra2.": 1, + "no_whiles": 15, + "com": 5, + "_": 67, + "ct": 2, + "cf": 2, + "no_Whiles": 10, + "noWhilesSKIP": 1, + "noWhilesAss": 1, + "noWhilesSeq": 1, + "noWhilesIf": 1, + "no_whiles_eqv": 1, + "c.": 5, + "noWhilesSKIP.": 1, + "noWhilesAss.": 1, + "noWhilesSeq.": 1, + "IHc1.": 2, + "auto.": 47, + "eauto": 10, + "andb_true_elim1": 4, + "IHc2.": 2, + "andb_true_elim2": 4, + "noWhilesIf.": 1, + "andb_true_intro.": 2, + "H1.": 31, + "no_whiles_terminate": 1, + "state": 6, + "st.": 7, + "update": 2, + "IHc1": 2, + "H3.": 5, + "IHc2": 2, + "H2.": 20, + "H5.": 1, + "x1": 11, + "r": 11, + "r.": 3, + "symmetry": 4, + "Heqr.": 1, + "H4.": 2, + "s": 13, + "Heqr": 3, + "H4": 7, + "H8.": 1, + "H10": 1, + "assumption": 10, + "H0": 16, + "H2": 12, + "H3": 4, + "beval_short_circuit": 5, + "end": 16, + "beval_short_circuit_eqv": 1, + "sinstr": 8, + "SPush": 8, + "SLoad": 6, + "SPlus": 10, + "SMinus": 11, + "SMult": 11, + "sinstr.": 1, + "s_execute": 21, + "stack": 7, + "list": 78, + "prog": 2, + "cons": 26, + "nil": 46, + "al": 3, + "bl": 3, + "s_execute1": 1, + "empty_state": 2, + "s_execute2": 1, + "s_compile": 36, + "v": 28, + "s_compile1": 1, + "execute_theorem": 1, + "s1": 20, + "other": 20, + "other.": 4, + "app_ass.": 6, + "plus_comm": 3, + "mult_comm": 2, + "s_compile_correct": 1, + "app_nil_end.": 1, + "execute_theorem.": 1, + "Sorted.": 1, + "Mergesort.": 1, + "Import": 11, + "List": 2, + "Multiset": 2, + "PermutSetoid": 1, + "Relations": 2, + "Sorting.": 1, + "Section": 4, + "defs.": 2, + "Variable": 7, + "Type.": 3, + "leA": 25, + "relation": 19, + "A.": 6, + "eqA": 29, + "Let": 8, + "gtA": 1, + "y": 116, + "y.": 15, + "Hypothesis": 7, + "leA_dec": 4, + "{": 39, + "}": 35, + "eqA_dec": 26, + "leA_refl": 1, + "leA_trans": 2, + "z": 14, + "z.": 6, + "leA_antisym": 1, + "Hint": 9, + "Resolve": 5, + "leA_refl.": 1, + "Immediate": 1, + "leA_antisym.": 1, + "emptyBag": 4, + "EmptyBag": 2, + "singletonBag": 10, + "SingletonBag": 2, + "eqA_dec.": 2, + "Tree": 24, + "Tree_Leaf": 9, + "Tree_Node": 11, + "Tree.": 1, + "leA_Tree": 16, + "t": 93, + "True": 1, + "T1": 25, + "T2": 20, + "Lemma": 51, + "leA_Tree_Leaf": 5, + "Tree_Leaf.": 1, + "auto": 73, + "datatypes.": 47, + "leA_Tree_Node": 1, + "G": 6, + "D": 9, + "is_heap": 18, + "nil_is_heap": 5, + "node_is_heap": 7, + "invert_heap": 3, + "T2.": 1, + "is_heap_rect": 1, + "P": 32, + "T": 49, + "T.": 9, + "simple": 7, + "PG": 2, + "PD": 2, + "PN.": 2, + "elim": 21, + "X0": 2, + "is_heap_rec": 1, + "Set": 4, + "low_trans": 3, + "merge_lem": 3, + "l1": 89, + "l2": 73, + "merge_exist": 5, + "Sorted": 5, + "meq": 15, + "list_contents": 30, + "munion": 18, + "HdRel": 4, + "l2.": 8, + "Morphisms.": 2, + "Instance": 7, + "Equivalence": 2, + "@meq": 4, + "red.": 1, + "meq_trans.": 1, + "Defined.": 1, + "Proper": 5, + "@munion": 1, + "now": 24, + "meq_congr.": 1, + "merge": 5, + "fix": 2, + "l1.": 5, + "rename": 2, + "into": 2, + "l.": 26, + "revert": 5, + "l0": 7, + "Sorted_inv": 2, + "clear": 7, + "merge0.": 2, + "using": 18, + "cons_sort": 2, + "cons_leA": 2, + "m.": 21, + "munion_ass.": 2, + "cons_leA.": 2, + "@HdRel_inv": 2, + "trivial": 15, + "merge0": 1, + "setoid_rewrite": 2, + "munion_ass": 1, + "munion_comm.": 2, + "repeat": 11, + "munion_comm": 1, + "contents": 12, + "multiset": 2, + "t1": 48, + "t2": 51, + "equiv_Tree": 1, + "insert_spec": 3, + "insert_exist": 4, + "insert": 2, + "T0": 2, + "treesort_twist1": 1, + "T3": 2, + "HeapT3": 1, + "ConT3": 1, + "LeA.": 1, + "LeA": 1, + "treesort_twist2": 1, + "build_heap": 3, + "heap_exist": 3, + "list_to_heap": 2, + "exact": 4, + "nil_is_heap.": 1, + "meq_trans": 10, + "meq_right": 2, + "meq_sym": 2, + "flat_spec": 3, + "flat_exist": 3, + "heap_to_list": 2, + "h": 14, + "m1": 1, + "s2": 2, + "m2.": 1, + "meq_congr": 1, + "munion_rotate.": 1, + "treesort": 1, + "&": 21, + "permutation": 43, + "intro": 27, + "permutation.": 1, + "Setoid": 1, + "Compare_dec": 1, + "ListNotations.": 1, + "Implicit": 15, + "Arguments.": 2, + "Permutation.": 2, + "Permutation": 38, + "perm_nil": 1, + "perm_skip": 1, + "Local": 7, + "Constructors": 3, + "Permutation_nil": 2, + "HF.": 3, + "@nil": 1, + "HF": 2, + "discriminate": 3, + "||": 1, + "Permutation_nil_cons": 1, + "discriminate.": 2, + "Permutation_refl": 1, + "IHl.": 7, + "Permutation_sym": 1, + "Hperm": 7, + "perm_trans": 1, + "Permutation_trans": 4, + "Logic.eq": 2, + "@Permutation": 5, + "iff": 1, + "@In": 1, + "red": 6, + "Permutation_in.": 2, + "Permutation_app_tail": 2, + "tl": 8, + "eapply": 8, + "trivial.": 14, + "Permutation_app_head": 2, + "app_comm_cons": 5, + "Permutation_app": 3, + "Hpermmm": 1, + "idtac": 1, + "Global": 5, + "@app": 1, + "Permutation_app.": 1, + "Permutation_add_inside": 1, + "Permutation_cons_append": 1, + "IHl": 8, + "Permutation_cons_append.": 3, + "Permutation_app_comm": 3, + "app_nil_r": 1, + "app_assoc": 2, + "Permutation_cons_app": 3, + "Permutation_middle": 2, + "Permutation_rev": 3, + "rev": 7, + "1": 1, + "@rev": 1, + "2": 1, + "Permutation_length": 2, + "length": 21, + "transitivity": 4, + "@length": 1, + "Permutation_length.": 1, + "Permutation_ind_bis": 2, + "Hnil": 1, + "Hskip": 3, + "Hswap": 2, + "Htrans.": 1, + "Htrans": 1, + "eauto.": 7, + "Ltac": 1, + "break_list": 5, + "injection": 4, + "Permutation_nil_app_cons": 1, + "l3": 12, + "l4": 3, + "P.": 5, + "Hp": 5, + "IH": 3, + "Permutation_middle.": 3, + "perm_swap.": 2, + "perm_swap": 1, + "eq_refl": 2, + "In_split": 1, + "Permutation_app_inv": 1, + "NoDup": 4, + "incl": 3, + "N.": 1, + "E": 7, + "Hx.": 5, + "Ha": 6, + "In": 6, + "Hy": 14, + "N": 1, + "Hal": 1, + "Hl": 1, + "exfalso.": 1, + "Hx": 20, + "NoDup_Permutation_bis": 2, + "inversion_clear": 6, + "intuition.": 2, + "Permutation_NoDup": 1, + "Permutation_map": 1, + "Hf": 15, + "Hy.": 3, + "injective_bounded_surjective": 1, + "f": 108, + "injective": 6, + "set": 1, + "seq": 2, + "map": 4, + "x.": 3, + "in_map_iff.": 2, + "in_seq": 4, + "arith": 4, + "NoDup_cardinal_incl": 1, + "injective_map_NoDup": 2, + "seq_NoDup": 1, + "map_length": 1, + "by": 7, + "in_map_iff": 1, + "split": 14, + "nat_bijection_Permutation": 1, + "let": 3, + "BD.": 1, + "seq_NoDup.": 1, + "map_length.": 1, + "Injection": 1, + "Permutation_alt": 1, + "Alternative": 1, + "characterization": 1, + "of": 4, + "via": 1, + "nth_error": 7, + "and": 1, + "nth": 2, + "adapt": 4, + "le_lt_dec": 9, + "0": 5, + "then": 9, + "else": 9, + "pred": 3, + "adapt_injective": 1, + "adapt.": 2, + "EQ.": 2, + "LE": 11, + "LT": 14, + "eq_add_S": 2, + "Hf.": 1, + "Lt.le_lt_or_eq": 3, + "LE.": 3, + "EQ": 8, + "lt": 3, + "LT.": 5, + "Lt.S_pred": 3, + "Lt.lt_not_le": 2, + "adapt_ok": 2, + "nth_error_app1": 1, + "nth_error_app2": 1, + "arith.": 8, + "Minus.minus_Sn_m": 1, + "Permutation_nth_error": 2, + "fun": 17, + "IHP": 2, + "IHP2": 1, + "g": 6, + "Hg": 2, + "E.": 2, + "L12": 2, + "app_length.": 2, + "plus_n_Sm.": 1, + "adapt_injective.": 1, + "nth_error_None": 4, + "Hn": 1, + "Hf2": 1, + "Hf3": 2, + "Lt.le_or_lt": 1, + "d": 6, + "Lt.lt_irrefl": 2, + "Lt.lt_le_trans": 2, + "Hf1": 1, + "do": 4, + "congruence.": 1, + "Permutation_alt.": 1, + "Permutation_app_swap": 1, + "only": 3, + "parsing": 3, + "Logic.": 1, + "Playground1.": 5, + "Prop.": 1, + "partial_function": 6, + "R": 54, + "y1": 6, + "y2": 5, + "y2.": 3, + "next_nat_partial_function": 1, + "next_nat.": 1, + "partial_function.": 5, + "Q.": 2, + "le_not_a_partial_function": 1, + "le": 1, + "not.": 3, + "O": 98, + "Nonsense.": 4, + "O.": 5, + "le_n.": 6, + "le_S.": 4, + "total_relation_not_partial_function": 1, + "total_relation": 1, + "total_relation1.": 2, + "empty_relation_not_partial_funcion": 1, + "empty_relation.": 1, + "reflexive": 5, + "le_reflexive": 1, + "le.": 4, + "reflexive.": 1, + "transitive": 8, + "le_trans": 4, + "Hnm": 3, + "Hmo.": 4, + "Hnm.": 3, + "IHHmo.": 1, + "lt_trans": 4, + "lt.": 2, + "transitive.": 1, + "le_S": 6, + "Hm": 1, + "le_Sn_le": 2, + "le_S_n": 2, + "Sn_le_Sm__n_le_m.": 1, + "le_Sn_n": 5, + "not": 1, + "IHn": 12, + "TODO": 1, + "Hmo": 1, + "symmetric": 2, + "antisymmetric": 3, + "le_antisymmetric": 1, + "Sn_le_Sm__n_le_m": 2, + "IHb": 1, + "equivalence": 1, + "order": 2, + "preorder": 1, + "le_order": 1, + "order.": 1, + "le_reflexive.": 1, + "le_antisymmetric.": 1, + "le_trans.": 1, + "clos_refl_trans": 8, + "rt_step": 1, + "rt_refl": 1, + "rt_trans": 3, + "next_nat_closure_is_le": 1, + "next_nat": 1, + "rt_refl.": 2, + "IHle.": 1, + "rt_step.": 2, + "nn.": 1, + "IHclos_refl_trans1.": 2, + "IHclos_refl_trans2.": 2, + "refl_step_closure": 11, + "rsc_refl": 1, + "rsc_step": 4, + "rsc_R": 2, + "rsc_refl.": 4, + "rsc_trans": 4, + "X.": 4, + "IHrefl_step_closure": 1, + "rtc_rsc_coincide": 1, + "IHrefl_step_closure.": 1, + "day": 9, + "monday": 5, + "tuesday": 3, + "wednesday": 3, + "thursday": 3, + "friday": 3, + "saturday": 3, + "sunday": 2, + "day.": 1, + "next_weekday": 3, + "test_next_weekday": 1, + "tuesday.": 1, + "bool.": 1, + "orb": 8, + "test_orb1": 1, + "true.": 16, + "test_orb2": 1, + "test_orb3": 1, + "test_orb4": 1, + "nandb": 5, + "test_nandb1": 1, + "test_nandb2": 1, + "test_nandb3": 1, + "test_nandb4": 1, + "andb3": 5, + "b3": 2, + "test_andb31": 1, + "test_andb32": 1, + "test_andb33": 1, + "test_andb34": 1, + "minustwo": 1, + "evenb": 5, + "oddb": 5, + "test_oddb1": 1, + "test_oddb2": 1, + "plus": 10, + "mult": 3, + "minus": 3, + "exp": 2, + "base": 3, + "power": 2, + "factorial": 2, + "test_factorial1": 1, + "left": 6, + "associativity": 7, + "nat_scope.": 3, + "plus_O_n": 1, + "plus_1_1": 1, + "mult_0_1": 1, + "plus_id_example": 1, + "plus_id_exercise": 1, + "mult_0_plus": 1, + "plus_O_n.": 1, + "mult_1_plus": 1, + "plus_1_1.": 1, + "mult_1": 1, + "plus_1_neq_0": 1, + "plus_distr.": 1, + "beq_nat_refl": 3, + "plus_rearrange": 1, + "q": 15, + "q.": 2, + "plus_comm.": 3, + "plus_swap": 2, + "p.": 9, + "plus_assoc.": 4, + "plus_swap.": 2, + "IHm": 2, + "mult_0_r.": 4, + "mult_distr": 1, + "mult_1_distr.": 1, + "mult_1.": 1, + "bad": 1, + "zero_nbeq_S": 1, + "andb_false_r": 1, + "plus_ble_compat_1": 1, + "IHp.": 2, + "S_nbeq_0": 1, + "mult_1_1": 1, + "plus_0_r.": 1, + "all3_spec": 1, + "mult_plus_1": 1, + "IHm.": 1, + "mult_mult": 1, + "IHn.": 3, + "mult_plus_1.": 1, + "mult_plus_distr_r": 1, + "mult_mult.": 3, + "plus_assoc": 1, + "mult_assoc": 1, + "mult_plus_distr_r.": 1, + "bin": 9, + "BO": 4, + "M": 4, + "bin.": 1, + "incbin": 2, + "bin2un": 3, + "bin_comm": 1, + "STLC.": 1, + "ty": 7, + "ty_Bool": 10, + "ty_arrow": 7, + "ty.": 2, + "tm": 43, + "tm_var": 6, + "tm_app": 7, + "tm_abs": 9, + "tm_true": 8, + "tm_false": 5, + "tm_if": 10, + "tm.": 3, + "idB": 2, + "idBB": 2, + "idBBBB": 2, + "k": 7, + "value": 25, + "v_abs": 1, + "t_true": 1, + "t_false": 1, + "tm_false.": 3, + "value.": 1, + "ST_App2": 1, + "v1": 7, + "t3": 6, + "step": 9, + "stepmany": 4, + "step.": 3, + "step_example3": 1, + "idB.": 1, + "rsc_step.": 2, + "ST_App1.": 2, + "ST_AppAbs.": 3, + "v_abs.": 2, + "context": 1, + "partial_map": 4, + "Context.": 1, + "option": 6, + "empty": 3, + "None": 9, + "extend": 1, + "Gamma": 10, + "has_type": 4, + "appears_free_in": 1, + "S.": 1, + "HT": 1, + "T_Var.": 1, + "extend_neq": 1, + "Heqe.": 3, + "T_Abs.": 1, + "context_invariance...": 2, + "Hafi.": 2, + "extend.": 2, + "IHt.": 1, + "Coiso1.": 2, + "Coiso2.": 3, + "HeqCoiso1.": 1, + "HeqCoiso2.": 1, + "beq_id_false_not_eq.": 1, + "ex_falso_quodlibet.": 1, + "preservation": 1, + "HT.": 1, + "substitution_preserves_typing": 1, + "T11.": 4, + "HT1.": 1, + "T_App": 2, + "IHHT1.": 1, + "IHHT2.": 1, + "t.": 4, + "tm_cases": 1, + "Ht": 1, + "Ht.": 3, + "right.": 9, + "IHt1": 2, + "T11": 2, + "IHt2": 3, + "ST_App2.": 1, + "ty_Bool.": 1, + "IHt3": 1, + "t2.": 4, + "ST_IfTrue.": 1, + "t3.": 2, + "ST_IfFalse.": 1, + "ST_If.": 2, + "types_unique": 1, + "T12": 2, + "IHhas_type.": 1, + "IHhas_type1.": 1, + "IHhas_type2.": 1, + "Imp.": 1, + "Relations.": 1, + "tm_const": 45, + "tm_plus": 30, + "SimpleArith0.": 2, + "eval": 8, + "SimpleArith1.": 2, + "E_Const": 2, + "E_Plus": 2, + "test_step_1": 1, + "ST_Plus1.": 2, + "ST_PlusConstConst.": 3, + "test_step_2": 1, + "ST_Plus2.": 2, + "step_deterministic": 1, + "Hy1": 2, + "Hy2.": 2, + "step_cases": 4, + "Hy2": 3, + "SCase.": 3, + "Hy1.": 5, + "IHHy1": 2, + "SimpleArith2.": 1, + "v_const": 4, + "ST_PlusConstConst": 3, + "ST_Plus1": 2, + "strong_progress": 2, + "value_not_same_as_normal_form": 2, + "normal_form": 3, + "normal_form.": 2, + "v_funny.": 1, + "Temp1.": 1, + "Temp2.": 1, + "ST_Funny": 1, + "Temp3.": 1, + "Temp4.": 2, + "v_true": 1, + "v_false": 1, + "ST_IfTrue": 1, + "ST_IfFalse": 1, + "ST_If": 1, + "bool_step_prop4": 1, + "bool_step_prop4_holds": 1, + "bool_step_prop4.": 2, + "ST_ShortCut.": 1, + "left.": 3, + "IHt1.": 1, + "Temp5.": 1, + "normalizing": 1, + "H11": 2, + "H12": 2, + "H21": 3, + "H22": 2, + "nf_same_as_value": 3, + "H12.": 1, + "H22.": 1, + "H11.": 1, + "stepmany_congr_1": 1, + "stepmany_congr2": 1, + "eval__value": 1, + "HE.": 1, + "eval_cases": 1, + "HE": 1, + "v_const.": 1, + "Basics.": 2, + "NatList.": 2, + "natprod": 5, + "pair": 7, + "natprod.": 1, + "fst": 3, + "snd": 3, + "swap_pair": 1, + "surjective_pairing": 1, + "count": 7, + "remove_one": 3, + "test_remove_one1": 1, + "remove_all": 2, + "bag": 3, + "app_ass": 1, + "natlist": 7, + "l3.": 1, + "remove_decreases_count": 1, + "s.": 4, + "ble_n_Sn.": 1, + "IHs.": 2, + "natoption": 5, + "natoption.": 1, + "index": 3, + "option_elim": 2, + "hd_opt": 8, + "test_hd_opt1": 2, + "None.": 2, + "test_hd_opt2": 2, + "option_elim_hd": 1, + "head": 1, + "beq_natlist": 5, + "r1": 2, + "v2": 2, + "r2": 2, + "test_beq_natlist1": 1, + "test_beq_natlist2": 1, + "beq_natlist_refl": 1, + "silly1": 1, + "eq1": 6, + "eq2.": 9, + "eq2": 1, + "silly2a": 1, + "eq1.": 5, + "silly_ex": 1, + "silly3": 1, + "symmetry.": 2, + "rev_exercise": 1, + "rev_involutive.": 1, + "Eqdep_dec.": 1, + "Arith.": 2, + "eq_rect_eq_nat": 2, + "Q": 3, + "eq_rect": 3, + "h.": 1, + "K_dec_set": 1, + "eq_nat_dec.": 1, + "Scheme": 1, + "le_ind": 1, + "replace": 4, + "le_n": 4, + "refl_equal": 4, + "pattern": 2, + "case": 2, + "contradiction": 8, + "Heq": 8, + "m0": 1, + "HeqS": 3, + "HeqS.": 2, + "eq_rect_eq_nat.": 1, + "IHp": 2, + "dep_pair_intro": 2, + "<=n),>": 1, + "x=": 1, + "exist": 7, + "Heq.": 6, + "le_uniqueness_proof": 1, + "Hy0": 1, + "card": 2, + "card_interval": 1, + "<=n}>": 1, + "proj1_sig": 1, + "proj2_sig": 1, + "Hq": 3, + "Hpq.": 1, + "Hmn.": 1, + "Hmn": 1, + "interval_dec": 1, + "dep_pair_intro.": 3, + "eq_S.": 1, + "Hneq.": 2, + "card_inj_aux": 1, + "False.": 1, + "Hfbound": 1, + "Hfinj": 1, + "Hgsurj.": 1, + "Hgsurj": 3, + "Hfx": 2, + "le_n_O_eq.": 2, + "Hfbound.": 2, + "xSn": 21, + "is": 4, + "bounded": 1, + "Hlefx": 1, + "Hgefx": 1, + "Hlefy": 1, + "Hgefy": 1, + "Hfinj.": 3, + "sym_not_eq.": 2, + "Heqf.": 2, + "Hneqy.": 2, + "le_lt_trans": 2, + "le_O_n.": 2, + "le_neq_lt": 2, + "Hneqx.": 2, + "pred_inj.": 1, + "lt_O_neq": 2, + "neq_dep_intro": 2, + "inj_restrict": 1, + "Heqf": 1, + "surjective": 1, + "Hlep.": 3, + "Hle": 1, + "Hlt": 3, + "Hfsurj": 2, + "le_n_S": 1, + "Hlep": 4, + "Hneq": 7, + "Heqx.": 2, + "Heqx": 4, + "Hle.": 1, + "le_not_lt": 1, + "lt_n_Sn.": 1, + "Hlt.": 1, + "lt_irrefl": 2, + "lt_le_trans": 1, + "pose": 2, + "Hneqx": 1, + "Hneqy": 1, + "Heqg": 1, + "Hdec": 3, + "Heqy": 1, + "Hginj": 1, + "HSnx.": 1, + "HSnx": 1, + "interval_discr": 1, + "<=m}>": 1, + "card_inj": 1, + "interval_dec.": 1, + "card_interval.": 2, + "Omega": 1, + "SetoidList.": 1, + "nil.": 2, + "..": 4, + "Permut.": 1, + "eqA_equiv": 1, + "eqA.": 1, + "list_contents_app": 5, + "permut_refl": 1, + "permut_sym": 4, + "permut_trans": 5, + "permut_cons_eq": 3, + "meq_left": 1, + "meq_singleton": 1, + "permut_cons": 5, + "permut_app": 1, + "specialize": 6, + "a0.": 1, + "decide": 1, + "permut_add_inside_eq": 1, + "permut_add_cons_inside": 3, + "permut_add_inside": 1, + "permut_middle": 1, + "permut_refl.": 5, + "permut_sym_app": 1, + "permut_rev": 1, + "permut_add_cons_inside.": 1, + "app_nil_end": 1, + "results": 1, + "permut_conv_inv": 1, + "plus_reg_l.": 1, + "permut_app_inv1": 1, + "list_contents_app.": 1, + "plus_reg_l": 1, + "multiplicity": 6, + "Fact": 3, + "if_eqA_then": 1, + "B": 6, + "if_eqA_refl": 3, + "decide_left": 1, + "if_eqA": 1, + "contradict": 3, + "A1": 2, + "if_eqA_rewrite_r": 1, + "A2": 4, + "Hxx": 1, + "multiplicity_InA": 4, + "InA": 8, + "multiplicity_InA_O": 2, + "multiplicity_InA_S": 1, + "multiplicity_NoDupA": 1, + "NoDupA": 3, + "NEQ": 1, + "compatible": 1, + "permut_InA_InA": 3, + "multiplicity_InA.": 1, + "meq.": 2, + "permut_cons_InA": 3, + "permut_nil": 3, + "Abs": 2, + "permut_length_1": 1, + "permut_length_2": 1, + "permut_length_1.": 2, + "@if_eqA_rewrite_l": 2, + "permut_length": 1, + "InA_split": 1, + "h2": 1, + "plus_n_Sm": 1, + "f_equal.": 1, + "app_length": 1, + "IHl1": 1, + "permut_remove_hd": 1, + "f_equal": 1, + "if_eqA_rewrite_l": 1, + "NoDupA_equivlistA_permut": 1, + "Equivalence_Reflexive.": 1, + "change": 1, + "Equivalence_Reflexive": 1, + "Forall2": 2, + "permutation_Permutation": 1, + "Forall2.": 1, + "proof": 1, + "IHA": 2, + "Forall2_app_inv_r": 1, + "Hl1": 1, + "Hl2": 1, + "Forall2_app": 1, + "Forall2_cons": 1, + "Permutation_impl_permutation": 1, + "permut_eqA": 1, + "Permut_permut.": 1, + "permut_right": 1, + "permut_tran": 1, + "Lists.": 1, + "app": 5, + "snoc": 9, + "Arguments": 11, + "list123": 1, + "right": 2, + "test_repeat1": 1, + "nil_app": 1, + "rev_snoc": 1, + "snoc_with_append": 1, + "v.": 1, + "IHl1.": 1, + "prod": 3, + "Y.": 1, + "type_scope.": 1, + "combine": 3, + "lx": 4, + "ly": 4, + "tx": 2, + "tp": 2, + "xs": 7, + "plus3": 2, + "prod_curry": 3, + "prod_uncurry": 3, + "uncurry_uncurry": 1, + "curry_uncurry": 1, + "filter": 3, + "test": 4, + "countoddmembers": 1, + "fmostlytrue": 5, + "override": 5, + "ftrue": 1, + "override_example1": 1, + "override_example2": 1, + "override_example3": 1, + "override_example4": 1, + "override_example": 1, + "constfun": 1, + "unfold_example_bad": 1, + "plus3.": 1, + "override_eq": 1, + "f.": 1, + "override.": 2, + "override_neq": 1, + "x2": 3, + "k1": 5, + "k2": 4, + "eq.": 11, + "silly4": 1, + "silly5": 1, + "sillyex1": 1, + "j": 6, + "j.": 1, + "silly6": 1, + "silly7": 1, + "sillyex2": 1, + "assertion": 3, + "Hl.": 1, + "eq": 4, + "beq_nat_O_l": 1, + "beq_nat_O_r": 1, + "double_injective": 1, + "double": 2, + "fold_map": 2, + "fold": 1, + "total": 2, + "fold_map_correct": 1, + "fold_map.": 1, + "forallb": 4, + "existsb": 3, + "existsb2": 2, + "existsb_correct": 1, + "existsb2.": 1, + "index_okx": 1, + "mumble": 5, + "mumble.": 1, + "grumble": 3 + }, + "fish": { + "function": 6, + "eval": 5, + "-": 102, + "S": 1, + "d": 3, + "#": 18, + "If": 2, + "we": 2, + "are": 1, + "in": 2, + "an": 1, + "interactive": 8, + "shell": 1, + "should": 2, + "enable": 1, + "full": 4, + "job": 5, + "control": 5, + "since": 1, + "it": 1, + "behave": 1, + "like": 2, + "the": 1, + "real": 1, + "code": 1, + "was": 1, + "executed.": 1, + "don": 1, + "t": 2, + "do": 1, + "this": 1, + "commands": 1, + "that": 1, + "expect": 1, + "to": 1, + "be": 1, + "used": 1, + "interactively": 1, + "less": 1, + "wont": 1, + "work": 1, + "using": 1, + "eval.": 1, + "set": 49, + "l": 15, + "mode": 5, + "if": 21, + "status": 7, + "is": 3, + "else": 3, + "none": 1, + "end": 33, + "echo": 3, + "|": 3, + ".": 2, + "<": 1, + "&": 1, + "res": 2, + "return": 6, + "g": 1, + "IFS": 4, + "n": 5, + "configdir": 2, + "/.config": 1, + "q": 9, + "XDG_CONFIG_HOME": 2, + "not": 8, + "fish_function_path": 4, + "configdir/fish/functions": 1, + "__fish_sysconfdir/functions": 1, + "__fish_datadir/functions": 3, + "contains": 4, + "[": 13, + "]": 13, + "fish_complete_path": 4, + "configdir/fish/completions": 1, + "__fish_sysconfdir/completions": 1, + "__fish_datadir/completions": 3, + "test": 7, + "/usr/xpg4/bin": 3, + "PATH": 6, + "path_list": 4, + "/bin": 1, + "/usr/bin": 1, + "/usr/X11R6/bin": 1, + "/usr/local/bin": 1, + "__fish_bin_dir": 1, + "switch": 3, + "USER": 1, + "case": 9, + "root": 1, + "/sbin": 1, + "/usr/sbin": 1, + "/usr/local/sbin": 1, + "for": 1, + "i": 5, + "fish_sigtrap_handler": 1, + "on": 2, + "signal": 1, + "TRAP": 1, + "no": 2, + "scope": 1, + "shadowing": 1, + "description": 2, + "breakpoint": 1, + "__fish_on_interactive": 2, + "event": 1, + "fish_prompt": 1, + "__fish_config_interactive": 1, + "functions": 5, + "e": 6, + "funced": 3, + "editor": 7, + "EDITOR": 1, + "funcname": 14, + "while": 2, + "argv": 9, + "h": 1, + "help": 1, + "__fish_print_help": 1, + "set_color": 4, + "red": 2, + "printf": 3, + "(": 7, + "_": 3, + ")": 7, + "normal": 2, + "begin": 2, + ";": 7, + "or": 3, + "init": 5, + "nend": 2, + "editor_cmd": 2, + "type": 1, + "f": 3, + "/dev/null": 2, + "fish": 3, + "z": 1, + "fish_indent": 2, + "indent": 1, + "prompt": 2, + "read": 1, + "p": 1, + "c": 1, + "s": 1, + "cmd": 2, + "TMPDIR": 2, + "/tmp": 1, + "tmpname": 8, + "%": 2, + "self": 2, + "random": 2, + "stat": 2, + "rm": 1 + }, + "Less": { + "@blue": 4, + "#3bbfce": 1, + ";": 7, + "@margin": 3, + "px": 1, + ".content": 1, + "-": 3, + "navigation": 1, + "{": 2, + "border": 2, + "color": 3, + "darken": 1, + "(": 1, + "%": 1, + ")": 1, + "}": 2, + ".border": 1, + "padding": 1, + "/": 2, + "margin": 1 + }, + "INI": { + ";": 1, + "editorconfig.org": 1, + "root": 1, + "true": 3, + "[": 2, + "*": 1, + "]": 2, + "indent_style": 1, + "space": 1, + "indent_size": 1, + "end_of_line": 1, + "lf": 1, + "charset": 1, + "utf": 1, + "-": 1, + "trim_trailing_whitespace": 1, + "insert_final_newline": 1, + "user": 1, + "name": 1, + "Josh": 1, + "Peek": 1, + "email": 1, + "josh@github.com": 1 + }, + "Smalltalk": { + "Object": 1, + "subclass": 2, + "#Philosophers": 1, + "instanceVariableNames": 1, + "classVariableNames": 1, + "poolDictionaries": 1, + "category": 1, + "Philosophers": 3, + "class": 1, + "methodsFor": 2, + "new": 4, + "self": 25, + "shouldNotImplement": 1, + "quantity": 2, + "super": 1, + "initialize": 3, + "dine": 4, + "seconds": 2, + "(": 19, + "Delay": 3, + "forSeconds": 1, + ")": 19, + "wait.": 5, + "philosophers": 2, + "do": 1, + "[": 18, + "each": 5, + "|": 18, + "terminate": 1, + "]": 18, + ".": 16, + "size": 4, + "leftFork": 6, + "n": 11, + "forks": 5, + "at": 3, + "rightFork": 6, + "ifTrue": 1, + "ifFalse": 1, + "+": 1, + "eating": 3, + "Semaphore": 2, + "new.": 2, + "-": 1, + "timesRepeat": 1, + "signal": 1, + "randy": 3, + "Random": 1, + "to": 2, + "collect": 2, + "forMutualExclusion": 1, + "philosopher": 2, + "philosopherCode": 3, + "status": 8, + "n.": 2, + "printString": 1, + "true": 2, + "whileTrue": 1, + "Transcript": 5, + "nextPutAll": 5, + ";": 8, + "nl.": 5, + "forMilliseconds": 2, + "next": 2, + "*": 2, + "critical": 1, + "signal.": 2, + "newProcess": 1, + "priority": 1, + "Processor": 1, + "userBackgroundPriority": 1, + "name": 1, + "resume": 1, + "yourself": 1, + "Koan": 1, + "TestBasic": 1, + "": 1, + "A": 1, + "collection": 1, + "of": 1, + "introductory": 1, + "tests": 2, + "testDeclarationAndAssignment": 1, + "declaration": 2, + "anotherDeclaration": 2, + "_": 1, + "expect": 10, + "fillMeIn": 10, + "toEqual": 10, + "declaration.": 1, + "anotherDeclaration.": 1, + "testEqualSignIsNotAnAssignmentOperator": 1, + "variableA": 6, + "variableB": 5, + "value": 2, + "variableB.": 2, + "testMultipleStatementsInASingleLine": 1, + "variableC": 2, + "variableA.": 1, + "variableC.": 1, + "testInequality": 1, + "testLogicalOr": 1, + "expression": 4, + "<": 2, + "expression.": 2, + "testLogicalAnd": 1, + "&": 1, + "testNot": 1, + "not.": 1, + "testSimpleChainMatches": 1, + "e": 11, + "eCtrl": 3, + "eventKey": 3, + "e.": 1, + "ctrl": 5, + "true.": 1, + "assert": 2, + "matches": 4, + "{": 4, + "}": 4, + "eCtrl.": 2, + "deny": 2, + "a": 1 + }, + "Perl6": { + "SHEBANG#!perl": 1, + "use": 1, + "v6": 1, + ";": 19, + "my": 10, + "string": 7, + "if": 1, + "eq": 1, + "{": 29, + "say": 10, + "}": 27, + "regex": 2, + "http": 1, + "-": 3, + "verb": 1, + "|": 9, + "#": 13, + "multi": 2, + "line": 5, + "comment": 2, + "(": 16, + ")": 19, + "I": 1, + "there": 1, + "m": 2, + "even": 1, + "specialer": 1, + "does": 7, + "nesting": 1, + "work": 1, + "<": 3, + "trying": 1, + "mixed": 1, + "delimiters": 1, + "qq": 5, + "": 1, + "arbitrary": 2, + "delimiter": 2, + "Hooray": 1, + "q": 5, + "": 1, + "with": 9, + "whitespace": 1, + "<<": 1, + "more": 1, + "strings": 1, + "%": 1, + "hash": 1, + "Hash.new": 1, + "begin": 1, + "pod": 1, + "Here": 1, + "t": 2, + "highlighted": 1, + "table": 1, + "Of": 1, + "role": 10, + "things": 1, + "A": 3, + "single": 3, + "declarator": 7, + "a": 8, + "keyword": 7, + "like": 7, + "Another": 2, + "block": 2, + "brace": 1, + "More": 2, + "blocks": 2, + "don": 2, + "x": 2, + "foo": 3, + "Rob": 1, + "food": 1, + "match": 1, + "sub": 1, + "something": 1, + "Str": 1, + "D": 1, + "value": 1, + "...": 1, + "s": 1, + "some": 2, + "stuff": 1, + "chars": 1, + "/": 1, + "": 1, + "": 1, + "roleq": 1, + "token": 6, + "pod_formatting_code": 1, + "": 1, + "<[A..Z]>": 1, + "*POD_IN_FORMATTINGCODE": 1, + "": 1, + "[": 1, + "": 1, + "N*": 1, + "stopper": 2, + "MAIN": 1, + "quote": 1, + "backslash": 3, + "sym": 3, + "<\\\\>": 1, + "": 1, + "": 1, + "": 1, + "": 1, + ".": 1, + "method": 2, + "tweak_q": 1, + "v": 2, + "self.panic": 2, + "tweak_qq": 1, + "b1": 1, + "c1": 1, + "s1": 1, + "a1": 1, + "h1": 1, + "f1": 1, + "Too": 2, + "late": 2, + "for": 2 + }, + "Java": { + "package": 6, + "clojure.asm": 1, + ";": 891, + "import": 66, + "java.lang.reflect.Constructor": 1, + "java.lang.reflect.Method": 1, + "public": 214, + "class": 12, + "Type": 42, + "{": 434, + "final": 78, + "static": 141, + "int": 62, + "VOID": 5, + "BOOLEAN": 6, + "CHAR": 6, + "BYTE": 6, + "SHORT": 6, + "INT": 6, + "FLOAT": 6, + "LONG": 7, + "DOUBLE": 7, + "ARRAY": 6, + "OBJECT": 7, + "VOID_TYPE": 3, + "new": 131, + "(": 1097, + ")": 1097, + "BOOLEAN_TYPE": 3, + "CHAR_TYPE": 3, + "BYTE_TYPE": 3, + "SHORT_TYPE": 3, + "INT_TYPE": 3, + "FLOAT_TYPE": 3, + "LONG_TYPE": 3, + "DOUBLE_TYPE": 3, + "private": 77, + "sort": 18, + "char": 13, + "[": 54, + "]": 54, + "buf": 43, + "off": 25, + "len": 24, + "this.sort": 2, + "this.len": 2, + "}": 434, + "this.buf": 2, + "this.off": 1, + "getType": 10, + "String": 33, + "typeDescriptor": 1, + "return": 267, + "typeDescriptor.toCharArray": 1, + "Class": 10, + "c": 21, + "if": 116, + "c.isPrimitive": 2, + "Integer.TYPE": 2, + "else": 33, + "Void.TYPE": 3, + "Boolean.TYPE": 2, + "Byte.TYPE": 2, + "Character.TYPE": 2, + "Short.TYPE": 2, + "Double.TYPE": 2, + "Float.TYPE": 2, + "getDescriptor": 15, + "getObjectType": 1, + "name": 10, + "l": 5, + "name.length": 2, + "+": 83, + "name.getChars": 1, + "getArgumentTypes": 2, + "methodDescriptor": 2, + "methodDescriptor.toCharArray": 2, + "size": 16, + "while": 10, + "true": 21, + "car": 18, + "break": 4, + "args": 6, + ".len": 1, + "Method": 3, + "method": 2, + "classes": 2, + "method.getParameterTypes": 1, + "types": 3, + "classes.length": 2, + "for": 16, + "i": 54, + "-": 15, + "getReturnType": 2, + "methodDescriptor.indexOf": 1, + "method.getReturnType": 1, + "switch": 6, + "case": 56, + "//": 16, + "default": 6, + "getSort": 1, + "getDimensions": 3, + "getElementType": 2, + "getClassName": 1, + "StringBuffer": 14, + "b": 7, + ".getClassName": 1, + "b.append": 1, + "b.toString": 1, + ".replace": 2, + "getInternalName": 2, + "buf.toString": 4, + "getMethodDescriptor": 2, + "returnType": 1, + "argumentTypes": 2, + "buf.append": 21, + "<": 13, + "argumentTypes.length": 1, + ".getDescriptor": 1, + "returnType.getDescriptor": 1, + "void": 25, + "c.getName": 1, + "getConstructorDescriptor": 1, + "Constructor": 1, + "parameters": 4, + "c.getParameterTypes": 1, + "parameters.length": 2, + ".toString": 1, + "m": 1, + "m.getParameterTypes": 1, + "m.getReturnType": 1, + "d": 10, + "d.isPrimitive": 1, + "d.isArray": 1, + "d.getComponentType": 1, + "d.getName": 1, + "name.charAt": 1, + "getSize": 1, + "||": 8, + "getOpcode": 1, + "opcode": 17, + "Opcodes.IALOAD": 1, + "Opcodes.IASTORE": 1, + "boolean": 36, + "equals": 2, + "Object": 31, + "o": 12, + "this": 16, + "instanceof": 19, + "false": 12, + "t": 6, + "t.sort": 1, + "Type.OBJECT": 2, + "Type.ARRAY": 2, + "t.len": 1, + "j": 9, + "t.off": 1, + "end": 4, + "t.buf": 1, + "hashCode": 1, + "hc": 4, + "*": 2, + "toString": 1, + "nokogiri.internals": 1, + "nokogiri.internals.NokogiriHelpers.getNokogiriClass": 1, + "nokogiri.internals.NokogiriHelpers.isNamespace": 1, + "nokogiri.internals.NokogiriHelpers.stringOrNil": 1, + "nokogiri.HtmlDocument": 1, + "nokogiri.NokogiriService": 1, + "nokogiri.XmlDocument": 1, + "org.apache.xerces.parsers.DOMParser": 1, + "org.apache.xerces.xni.Augmentations": 1, + "org.apache.xerces.xni.QName": 1, + "org.apache.xerces.xni.XMLAttributes": 1, + "org.apache.xerces.xni.XNIException": 1, + "org.apache.xerces.xni.parser.XMLDocumentFilter": 1, + "org.apache.xerces.xni.parser.XMLParserConfiguration": 1, + "org.cyberneko.html.HTMLConfiguration": 1, + "org.cyberneko.html.filters.DefaultFilter": 1, + "org.jruby.Ruby": 2, + "org.jruby.RubyClass": 2, + "org.jruby.runtime.ThreadContext": 1, + "org.jruby.runtime.builtin.IRubyObject": 2, + "org.w3c.dom.Document": 1, + "org.w3c.dom.NamedNodeMap": 1, + "org.w3c.dom.NodeList": 1, + "HtmlDomParserContext": 3, + "extends": 10, + "XmlDomParserContext": 1, + "Ruby": 43, + "runtime": 88, + "IRubyObject": 35, + "options": 4, + "super": 7, + "encoding": 2, + "@Override": 6, + "protected": 8, + "initErrorHandler": 1, + "options.strict": 1, + "errorHandler": 6, + "NokogiriStrictErrorHandler": 1, + "options.noError": 2, + "options.noWarning": 2, + "NokogiriNonStrictErrorHandler4NekoHtml": 1, + "initParser": 1, + "XMLParserConfiguration": 1, + "config": 2, + "HTMLConfiguration": 1, + "XMLDocumentFilter": 3, + "removeNSAttrsFilter": 2, + "RemoveNSAttrsFilter": 2, + "elementValidityCheckFilter": 3, + "ElementValidityCheckFilter": 3, + "//XMLDocumentFilter": 1, + "filters": 3, + "config.setErrorHandler": 1, + "this.errorHandler": 2, + "parser": 1, + "DOMParser": 1, + "setProperty": 4, + "java_encoding": 2, + "setFeature": 4, + "enableDocumentFragment": 1, + "XmlDocument": 8, + "getNewEmptyDocument": 1, + "ThreadContext": 2, + "context": 8, + "XmlDocument.rbNew": 1, + "getNokogiriClass": 1, + "context.getRuntime": 3, + "wrapDocument": 1, + "RubyClass": 92, + "klazz": 107, + "Document": 2, + "document": 5, + "HtmlDocument": 7, + "htmlDocument": 6, + "NokogiriService.HTML_DOCUMENT_ALLOCATOR.allocate": 1, + "htmlDocument.setDocumentNode": 1, + "ruby_encoding.isNil": 1, + "detected_encoding": 2, + "null": 80, + "&&": 6, + "detected_encoding.isNil": 1, + "ruby_encoding": 3, + "charset": 2, + "tryGetCharsetFromHtml5MetaTag": 2, + "stringOrNil": 1, + "htmlDocument.setEncoding": 1, + "htmlDocument.setParsedEncoding": 1, + ".equalsIgnoreCase": 5, + "document.getDocumentElement": 2, + ".getNodeName": 4, + "NodeList": 2, + "list": 1, + ".getChildNodes": 2, + "list.getLength": 1, + "list.item": 2, + "headers": 1, + "headers.getLength": 1, + "headers.item": 2, + "NamedNodeMap": 1, + "nodeMap": 1, + ".getAttributes": 1, + "k": 5, + "nodeMap.getLength": 1, + "nodeMap.item": 2, + ".getNodeValue": 1, + "DefaultFilter": 2, + "startElement": 2, + "QName": 2, + "element": 3, + "XMLAttributes": 2, + "attrs": 4, + "Augmentations": 2, + "augs": 4, + "throws": 26, + "XNIException": 2, + "attrs.getLength": 1, + "isNamespace": 1, + "attrs.getQName": 1, + "attrs.removeAttributeAt": 1, + "element.uri": 1, + "super.startElement": 2, + "NokogiriErrorHandler": 2, + "element_names": 3, + "g": 1, + "r": 1, + "w": 1, + "x": 8, + "y": 1, + "z": 1, + "isValid": 2, + "testee": 1, + "testee.toCharArray": 1, + "index": 4, + "Integer": 2, + ".length": 1, + "testee.equals": 1, + "name.rawname": 2, + "errorHandler.getErrors": 1, + ".add": 1, + "Exception": 1, + "persons": 1, + "ProtocolBuffer": 2, + "registerAllExtensions": 1, + "com.google.protobuf.ExtensionRegistry": 2, + "registry": 1, + "interface": 1, + "PersonOrBuilder": 2, + "com.google.protobuf.MessageOrBuilder": 1, + "hasName": 5, + "java.lang.String": 15, + "getName": 3, + "com.google.protobuf.ByteString": 13, + "getNameBytes": 5, + "Person": 10, + "com.google.protobuf.GeneratedMessage": 1, + "implements": 3, + "com.google.protobuf.GeneratedMessage.Builder": 2, + "": 1, + "builder": 4, + "this.unknownFields": 4, + "builder.getUnknownFields": 1, + "noInit": 1, + "com.google.protobuf.UnknownFieldSet.getDefaultInstance": 1, + "defaultInstance": 4, + "getDefaultInstance": 2, + "getDefaultInstanceForType": 2, + "com.google.protobuf.UnknownFieldSet": 2, + "unknownFields": 3, + "@java.lang.Override": 4, + "getUnknownFields": 3, + "com.google.protobuf.CodedInputStream": 5, + "input": 18, + "com.google.protobuf.ExtensionRegistryLite": 8, + "extensionRegistry": 16, + "com.google.protobuf.InvalidProtocolBufferException": 9, + "initFields": 2, + "mutable_bitField0_": 1, + "com.google.protobuf.UnknownFieldSet.Builder": 1, + "com.google.protobuf.UnknownFieldSet.newBuilder": 1, + "try": 26, + "done": 4, + "tag": 3, + "input.readTag": 1, + "parseUnknownField": 1, + "bitField0_": 15, + "|": 5, + "name_": 18, + "input.readBytes": 1, + "catch": 27, + "e": 31, + "throw": 9, + "e.setUnfinishedMessage": 1, + "java.io.IOException": 10, + "e.getMessage": 1, + ".setUnfinishedMessage": 1, + "finally": 2, + "unknownFields.build": 1, + "makeExtensionsImmutable": 1, + "com.google.protobuf.Descriptors.Descriptor": 4, + "persons.ProtocolBuffer.internal_static_persons_Person_descriptor": 3, + "com.google.protobuf.GeneratedMessage.FieldAccessorTable": 4, + "internalGetFieldAccessorTable": 2, + "persons.ProtocolBuffer.internal_static_persons_Person_fieldAccessorTable": 2, + ".ensureFieldAccessorsInitialized": 2, + "persons.ProtocolBuffer.Person.class": 2, + "persons.ProtocolBuffer.Person.Builder.class": 2, + "com.google.protobuf.Parser": 2, + "": 3, + "PARSER": 2, + "com.google.protobuf.AbstractParser": 1, + "parsePartialFrom": 1, + "getParserForType": 1, + "NAME_FIELD_NUMBER": 1, + "java.lang.Object": 7, + "&": 7, + "ref": 16, + "bs": 1, + "s": 10, + "bs.toStringUtf8": 1, + "bs.isValidUtf8": 1, + "com.google.protobuf.ByteString.copyFromUtf8": 2, + "byte": 4, + "memoizedIsInitialized": 4, + "isInitialized": 5, + "writeTo": 1, + "com.google.protobuf.CodedOutputStream": 2, + "output": 2, + "getSerializedSize": 2, + "output.writeBytes": 1, + ".writeTo": 1, + "memoizedSerializedSize": 3, + ".computeBytesSize": 1, + ".getSerializedSize": 1, + "long": 5, + "serialVersionUID": 1, + "L": 1, + "writeReplace": 1, + "java.io.ObjectStreamException": 1, + "super.writeReplace": 1, + "persons.ProtocolBuffer.Person": 22, + "parseFrom": 8, + "data": 8, + "PARSER.parseFrom": 8, + "java.io.InputStream": 4, + "parseDelimitedFrom": 2, + "PARSER.parseDelimitedFrom": 2, + "Builder": 20, + "newBuilder": 5, + "Builder.create": 1, + "newBuilderForType": 2, + "prototype": 2, + ".mergeFrom": 2, + "toBuilder": 1, + "com.google.protobuf.GeneratedMessage.BuilderParent": 2, + "parent": 4, + "": 1, + "persons.ProtocolBuffer.PersonOrBuilder": 1, + "maybeForceBuilderInitialization": 3, + "com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders": 1, + "create": 2, + "clear": 1, + "super.clear": 1, + "clone": 47, + "buildPartial": 3, + "getDescriptorForType": 1, + "persons.ProtocolBuffer.Person.getDefaultInstance": 2, + "build": 1, + "result": 5, + "result.isInitialized": 1, + "newUninitializedMessageException": 1, + "from_bitField0_": 2, + "to_bitField0_": 3, + "result.name_": 1, + "result.bitField0_": 1, + "onBuilt": 1, + "mergeFrom": 5, + "com.google.protobuf.Message": 1, + "other": 6, + "super.mergeFrom": 1, + "other.hasName": 1, + "other.name_": 1, + "onChanged": 4, + "this.mergeUnknownFields": 1, + "other.getUnknownFields": 1, + "parsedMessage": 5, + "PARSER.parsePartialFrom": 1, + "e.getUnfinishedMessage": 1, + ".toStringUtf8": 1, + "setName": 1, + "value": 11, + "NullPointerException": 3, + "clearName": 1, + ".getName": 1, + "setNameBytes": 1, + "defaultInstance.initFields": 1, + "internal_static_persons_Person_descriptor": 3, + "internal_static_persons_Person_fieldAccessorTable": 2, + "com.google.protobuf.Descriptors.FileDescriptor": 5, + "descriptor": 3, + "descriptorData": 2, + "com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner": 2, + "assigner": 2, + "assignDescriptors": 1, + "root": 6, + ".getMessageTypes": 1, + ".get": 1, + ".internalBuildGeneratedFileFrom": 1, + "nokogiri": 6, + "java.util.Collections": 2, + "java.util.HashMap": 1, + "java.util.Map": 3, + "org.jruby.RubyArray": 1, + "org.jruby.RubyFixnum": 1, + "org.jruby.RubyModule": 1, + "org.jruby.runtime.ObjectAllocator": 1, + "org.jruby.runtime.load.BasicLibraryService": 1, + "NokogiriService": 1, + "BasicLibraryService": 1, + "nokogiriClassCacheGvarName": 1, + "Map": 1, + "": 2, + "nokogiriClassCache": 2, + "basicLoad": 1, + "ruby": 25, + "init": 2, + "createNokogiriClassCahce": 2, + "Collections.synchronizedMap": 1, + "HashMap": 1, + "nokogiriClassCache.put": 26, + "ruby.getClassFromPath": 26, + "RubyModule": 18, + "ruby.defineModule": 1, + "xmlModule": 7, + "nokogiri.defineModuleUnder": 3, + "xmlSaxModule": 3, + "xmlModule.defineModuleUnder": 1, + "htmlModule": 5, + "htmlSaxModule": 3, + "htmlModule.defineModuleUnder": 1, + "xsltModule": 3, + "createNokogiriModule": 2, + "createSyntaxErrors": 2, + "xmlNode": 5, + "createXmlModule": 2, + "createHtmlModule": 2, + "createDocuments": 2, + "createSaxModule": 2, + "createXsltModule": 2, + "encHandler": 1, + "nokogiri.defineClassUnder": 2, + "ruby.getObject": 13, + "ENCODING_HANDLER_ALLOCATOR": 2, + "encHandler.defineAnnotatedMethods": 1, + "EncodingHandler.class": 1, + "syntaxError": 2, + "ruby.getStandardError": 2, + ".getAllocator": 1, + "xmlSyntaxError": 4, + "xmlModule.defineClassUnder": 23, + "XML_SYNTAXERROR_ALLOCATOR": 2, + "xmlSyntaxError.defineAnnotatedMethods": 1, + "XmlSyntaxError.class": 1, + "node": 14, + "XML_NODE_ALLOCATOR": 2, + "node.defineAnnotatedMethods": 1, + "XmlNode.class": 1, + "attr": 1, + "XML_ATTR_ALLOCATOR": 2, + "attr.defineAnnotatedMethods": 1, + "XmlAttr.class": 1, + "attrDecl": 1, + "XML_ATTRIBUTE_DECL_ALLOCATOR": 2, + "attrDecl.defineAnnotatedMethods": 1, + "XmlAttributeDecl.class": 1, + "characterData": 3, + "comment": 1, + "XML_COMMENT_ALLOCATOR": 2, + "comment.defineAnnotatedMethods": 1, + "XmlComment.class": 1, + "text": 2, + "XML_TEXT_ALLOCATOR": 2, + "text.defineAnnotatedMethods": 1, + "XmlText.class": 1, + "cdata": 1, + "XML_CDATA_ALLOCATOR": 2, + "cdata.defineAnnotatedMethods": 1, + "XmlCdata.class": 1, + "dtd": 1, + "XML_DTD_ALLOCATOR": 2, + "dtd.defineAnnotatedMethods": 1, + "XmlDtd.class": 1, + "documentFragment": 1, + "XML_DOCUMENT_FRAGMENT_ALLOCATOR": 2, + "documentFragment.defineAnnotatedMethods": 1, + "XmlDocumentFragment.class": 1, + "XML_ELEMENT_ALLOCATOR": 2, + "element.defineAnnotatedMethods": 1, + "XmlElement.class": 1, + "elementContent": 1, + "XML_ELEMENT_CONTENT_ALLOCATOR": 2, + "elementContent.defineAnnotatedMethods": 1, + "XmlElementContent.class": 1, + "elementDecl": 1, + "XML_ELEMENT_DECL_ALLOCATOR": 2, + "elementDecl.defineAnnotatedMethods": 1, + "XmlElementDecl.class": 1, + "entityDecl": 1, + "XML_ENTITY_DECL_ALLOCATOR": 2, + "entityDecl.defineAnnotatedMethods": 1, + "XmlEntityDecl.class": 1, + "entityDecl.defineConstant": 6, + "RubyFixnum.newFixnum": 6, + "XmlEntityDecl.INTERNAL_GENERAL": 1, + "XmlEntityDecl.EXTERNAL_GENERAL_PARSED": 1, + "XmlEntityDecl.EXTERNAL_GENERAL_UNPARSED": 1, + "XmlEntityDecl.INTERNAL_PARAMETER": 1, + "XmlEntityDecl.EXTERNAL_PARAMETER": 1, + "XmlEntityDecl.INTERNAL_PREDEFINED": 1, + "entref": 1, + "XML_ENTITY_REFERENCE_ALLOCATOR": 2, + "entref.defineAnnotatedMethods": 1, + "XmlEntityReference.class": 1, + "namespace": 1, + "XML_NAMESPACE_ALLOCATOR": 2, + "namespace.defineAnnotatedMethods": 1, + "XmlNamespace.class": 1, + "nodeSet": 1, + "XML_NODESET_ALLOCATOR": 2, + "nodeSet.defineAnnotatedMethods": 1, + "XmlNodeSet.class": 1, + "pi": 1, + "XML_PROCESSING_INSTRUCTION_ALLOCATOR": 2, + "pi.defineAnnotatedMethods": 1, + "XmlProcessingInstruction.class": 1, + "reader": 1, + "XML_READER_ALLOCATOR": 2, + "reader.defineAnnotatedMethods": 1, + "XmlReader.class": 1, + "schema": 2, + "XML_SCHEMA_ALLOCATOR": 2, + "schema.defineAnnotatedMethods": 1, + "XmlSchema.class": 1, + "relaxng": 1, + "XML_RELAXNG_ALLOCATOR": 2, + "relaxng.defineAnnotatedMethods": 1, + "XmlRelaxng.class": 1, + "xpathContext": 1, + "XML_XPATHCONTEXT_ALLOCATOR": 2, + "xpathContext.defineAnnotatedMethods": 1, + "XmlXpathContext.class": 1, + "htmlElemDesc": 1, + "htmlModule.defineClassUnder": 3, + "HTML_ELEMENT_DESCRIPTION_ALLOCATOR": 2, + "htmlElemDesc.defineAnnotatedMethods": 1, + "HtmlElementDescription.class": 1, + "htmlEntityLookup": 1, + "HTML_ENTITY_LOOKUP_ALLOCATOR": 2, + "htmlEntityLookup.defineAnnotatedMethods": 1, + "HtmlEntityLookup.class": 1, + "xmlDocument": 5, + "XML_DOCUMENT_ALLOCATOR": 2, + "xmlDocument.defineAnnotatedMethods": 1, + "XmlDocument.class": 1, + "//RubyModule": 1, + "htmlDoc": 1, + "html.defineOrGetClassUnder": 1, + "HTML_DOCUMENT_ALLOCATOR": 2, + "htmlDocument.defineAnnotatedMethods": 1, + "HtmlDocument.class": 1, + "xmlSaxParserContext": 5, + "xmlSaxModule.defineClassUnder": 2, + "XML_SAXPARSER_CONTEXT_ALLOCATOR": 2, + "xmlSaxParserContext.defineAnnotatedMethods": 1, + "XmlSaxParserContext.class": 1, + "xmlSaxPushParser": 1, + "XML_SAXPUSHPARSER_ALLOCATOR": 2, + "xmlSaxPushParser.defineAnnotatedMethods": 1, + "XmlSaxPushParser.class": 1, + "htmlSaxParserContext": 4, + "htmlSaxModule.defineClassUnder": 1, + "HTML_SAXPARSER_CONTEXT_ALLOCATOR": 2, + "htmlSaxParserContext.defineAnnotatedMethods": 1, + "HtmlSaxParserContext.class": 1, + "stylesheet": 1, + "xsltModule.defineClassUnder": 1, + "XSLT_STYLESHEET_ALLOCATOR": 2, + "stylesheet.defineAnnotatedMethods": 1, + "XsltStylesheet.class": 2, + "xsltModule.defineAnnotatedMethod": 1, + "ObjectAllocator": 60, + "allocate": 30, + "EncodingHandler": 1, + "htmlDocument.clone": 1, + "clone.setMetaClass": 23, + "CloneNotSupportedException": 23, + "HtmlSaxParserContext": 5, + "htmlSaxParserContext.clone": 1, + "HtmlElementDescription": 1, + "HtmlEntityLookup": 1, + "XmlAttr": 5, + "xmlAttr": 3, + "xmlAttr.clone": 1, + "XmlCdata": 5, + "xmlCdata": 3, + "xmlCdata.clone": 1, + "XmlComment": 5, + "xmlComment": 3, + "xmlComment.clone": 1, + "xmlDocument.clone": 1, + "XmlDocumentFragment": 5, + "xmlDocumentFragment": 3, + "xmlDocumentFragment.clone": 1, + "XmlDtd": 5, + "xmlDtd": 3, + "xmlDtd.clone": 1, + "XmlElement": 5, + "xmlElement": 3, + "xmlElement.clone": 1, + "XmlElementDecl": 5, + "xmlElementDecl": 3, + "xmlElementDecl.clone": 1, + "XmlEntityReference": 5, + "xmlEntityRef": 3, + "xmlEntityRef.clone": 1, + "XmlNamespace": 5, + "xmlNamespace": 3, + "xmlNamespace.clone": 1, + "XmlNode": 5, + "xmlNode.clone": 1, + "XmlNodeSet": 5, + "xmlNodeSet": 5, + "xmlNodeSet.clone": 1, + "xmlNodeSet.setNodes": 1, + "RubyArray.newEmptyArray": 1, + "XmlProcessingInstruction": 5, + "xmlProcessingInstruction": 3, + "xmlProcessingInstruction.clone": 1, + "XmlReader": 5, + "xmlReader": 5, + "xmlReader.clone": 1, + "XmlAttributeDecl": 1, + "XmlEntityDecl": 1, + "runtime.newNotImplementedError": 1, + "XmlRelaxng": 5, + "xmlRelaxng": 3, + "xmlRelaxng.clone": 1, + "XmlSaxParserContext": 5, + "xmlSaxParserContext.clone": 1, + "XmlSaxPushParser": 1, + "XmlSchema": 5, + "xmlSchema": 3, + "xmlSchema.clone": 1, + "XmlSyntaxError": 5, + "xmlSyntaxError.clone": 1, + "XmlText": 6, + "xmlText": 3, + "xmlText.clone": 1, + "XmlXpathContext": 5, + "xmlXpathContext": 3, + "xmlXpathContext.clone": 1, + "XsltStylesheet": 4, + "xsltStylesheet": 3, + "xsltStylesheet.clone": 1, + "clojure.lang": 1, + "java.lang.ref.Reference": 1, + "java.math.BigInteger": 1, + "java.util.concurrent.ConcurrentHashMap": 1, + "java.lang.ref.SoftReference": 1, + "java.lang.ref.ReferenceQueue": 1, + "Util": 1, + "equiv": 17, + "k1": 40, + "k2": 38, + "Number": 9, + "Numbers.equal": 1, + "IPersistentCollection": 5, + "pcequiv": 2, + "k1.equals": 2, + "double": 4, + "c1": 2, + "c2": 2, + ".equiv": 2, + "identical": 1, + "classOf": 1, + "x.getClass": 1, + "compare": 1, + "Numbers.compare": 1, + "Comparable": 1, + ".compareTo": 1, + "hash": 3, + "o.hashCode": 2, + "hasheq": 1, + "Numbers.hasheq": 1, + "IHashEq": 2, + ".hasheq": 1, + "hashCombine": 1, + "seed": 5, + "//a": 1, + "la": 1, + "boost": 1, + "e3779b9": 1, + "<<": 1, + "isPrimitive": 1, + "isInteger": 1, + "Long": 1, + "BigInt": 1, + "BigInteger": 1, + "ret1": 2, + "ret": 4, + "nil": 2, + "ISeq": 2, + "": 1, + "clearCache": 1, + "ReferenceQueue": 1, + "rq": 1, + "ConcurrentHashMap": 1, + "K": 2, + "Reference": 3, + "": 3, + "cache": 1, + "//cleanup": 1, + "any": 1, + "dead": 1, + "entries": 1, + "rq.poll": 2, + "Map.Entry": 1, + "cache.entrySet": 1, + "val": 3, + "e.getValue": 1, + "val.get": 1, + "cache.remove": 1, + "e.getKey": 1, + "RuntimeException": 5, + "runtimeException": 2, + "Throwable": 4, + "sneakyThrow": 1, + "Util.": 1, + "": 1, + "sneakyThrow0": 2, + "@SuppressWarnings": 1, + "": 1, + "T": 2, + "hudson.model": 1, + "hudson.ExtensionListView": 1, + "hudson.Functions": 1, + "hudson.Platform": 1, + "hudson.PluginManager": 1, + "hudson.cli.declarative.CLIResolver": 1, + "hudson.model.listeners.ItemListener": 1, + "hudson.slaves.ComputerListener": 1, + "hudson.util.CopyOnWriteList": 1, + "hudson.util.FormValidation": 1, + "jenkins.model.Jenkins": 1, + "org.jvnet.hudson.reactor.ReactorException": 1, + "org.kohsuke.stapler.QueryParameter": 1, + "org.kohsuke.stapler.Stapler": 1, + "org.kohsuke.stapler.StaplerRequest": 1, + "org.kohsuke.stapler.StaplerResponse": 1, + "javax.servlet.ServletContext": 1, + "javax.servlet.ServletException": 1, + "java.io.File": 1, + "java.text.NumberFormat": 1, + "java.text.ParseException": 1, + "java.util.List": 1, + "hudson.Util.fixEmpty": 1, + "Hudson": 5, + "Jenkins": 2, + "transient": 2, + "CopyOnWriteList": 4, + "": 2, + "itemListeners": 2, + "ExtensionListView.createCopyOnWriteList": 2, + "ItemListener.class": 1, + "": 2, + "computerListeners": 2, + "ComputerListener.class": 1, + "@CLIResolver": 1, + "getInstance": 2, + "Jenkins.getInstance": 2, + "File": 2, + "ServletContext": 2, + "IOException": 8, + "InterruptedException": 2, + "ReactorException": 2, + "PluginManager": 1, + "pluginManager": 2, + "getJobListeners": 1, + "getComputerListeners": 1, + "Slave": 3, + "getSlave": 1, + "Node": 1, + "n": 3, + "getNode": 1, + "List": 3, + "": 2, + "getSlaves": 1, + "slaves": 3, + "setSlaves": 1, + "setNodes": 1, + "TopLevelItem": 3, + "getJob": 1, + "getItem": 1, + "getJobCaseInsensitive": 1, + "match": 2, + "Functions.toEmailSafeString": 2, + "item": 2, + "getItems": 1, + "item.getName": 1, + "synchronized": 1, + "doQuietDown": 2, + "StaplerResponse": 4, + "rsp": 6, + "ServletException": 3, + ".generateResponse": 2, + "doLogRss": 1, + "StaplerRequest": 4, + "req": 6, + "qs": 3, + "req.getQueryString": 1, + "rsp.sendRedirect2": 1, + "doFieldCheck": 3, + "fixEmpty": 8, + "req.getParameter": 4, + "FormValidation": 2, + "@QueryParameter": 4, + "type": 3, + "errorText": 3, + "warningText": 3, + "FormValidation.error": 4, + "FormValidation.warning": 1, + "type.equalsIgnoreCase": 2, + "NumberFormat.getInstance": 2, + ".parse": 2, + ".floatValue": 1, + "<=>": 1, + "0": 1, + "error": 1, + "Messages": 1, + "Hudson_NotAPositiveNumber": 1, + "equalsIgnoreCase": 1, + "number": 1, + "negative": 1, + "NumberFormat": 1, + "parse": 1, + "floatValue": 1, + "Messages.Hudson_NotANegativeNumber": 1, + "ParseException": 1, + "Messages.Hudson_NotANumber": 1, + "FormValidation.ok": 1, + "isWindows": 1, + "File.pathSeparatorChar": 1, + "isDarwin": 1, + "Platform.isDarwin": 1, + "adminCheck": 3, + "Stapler.getCurrentRequest": 1, + "Stapler.getCurrentResponse": 1, + "isAdmin": 4, + "rsp.sendError": 1, + "StaplerResponse.SC_FORBIDDEN": 1, + ".getACL": 1, + ".hasPermission": 1, + "ADMINISTER": 1, + "XSTREAM.alias": 1, + "Hudson.class": 1, + "MasterComputer": 1, + "Jenkins.MasterComputer": 1, + "CloudList": 3, + "Jenkins.CloudList": 1, + "h": 2, + "needed": 1, + "XStream": 1, + "deserialization": 1 + }, + "Scilab": { + "disp": 1, + "(": 7, + "%": 4, + "pi": 3, + ")": 7, + ";": 7, + "function": 1, + "[": 1, + "a": 4, + "b": 4, + "]": 1, + "myfunction": 1, + "d": 2, + "e": 4, + "f": 2, + "+": 5, + "cos": 1, + "cosh": 1, + "if": 1, + "then": 1, "-": 2, - "tempVow": 2, - "#...use": 1, - "#....": 1, - "report": 1, - "problem": 1, - "finally": 1, - "#....log": 1, - "event": 1 + "e.field": 1, + "else": 1, + "home": 1, + "return": 1, + "end": 1, + "myvar": 1, + "endfunction": 1, + "assert_checkequal": 1, + "assert_checkfalse": 1 + }, + "Ioke": { + "SHEBANG#!ioke": 1, + "println": 1 + }, + "Org": { + "#": 13, + "+": 13, + "OPTIONS": 1, + "H": 1, + "num": 1, + "nil": 4, + "toc": 2, + "n": 1, + "@": 1, + "t": 10, + "|": 4, + "-": 30, + "f": 2, + "*": 3, + "TeX": 1, + "LaTeX": 1, + "skip": 1, + "d": 2, + "(": 11, + "HIDE": 1, + ")": 11, + "tags": 2, + "not": 1, + "in": 2, + "STARTUP": 1, + "align": 1, + "fold": 1, + "nodlcheck": 1, + "hidestars": 1, + "oddeven": 1, + "lognotestate": 1, + "SEQ_TODO": 1, + "TODO": 1, + "INPROGRESS": 1, + "i": 1, + "WAITING": 1, + "w@": 1, + "DONE": 1, + "CANCELED": 1, + "c@": 1, + "TAGS": 1, + "Write": 1, + "w": 1, + "Update": 1, + "u": 1, + "Fix": 1, + "Check": 1, + "c": 1, + "TITLE": 1, + "org": 10, + "ruby": 6, + "AUTHOR": 1, + "Brian": 1, + "Dewey": 1, + "EMAIL": 1, + "bdewey@gmail.com": 1, + "LANGUAGE": 1, + "en": 1, + "PRIORITIES": 1, + "A": 1, + "C": 1, + "B": 1, + "CATEGORY": 1, + "worg": 1, + "{": 1, + "Back": 1, + "to": 8, + "Worg": 1, + "rubygems": 2, + "ve": 1, + "already": 1, + "created": 1, + "a": 4, + "site.": 1, + "Make": 1, + "sure": 1, + "you": 2, + "have": 1, + "installed": 1, + "sudo": 1, + "gem": 1, + "install": 1, + ".": 1, + "You": 1, + "need": 1, + "register": 1, + "new": 2, + "Webby": 3, + "filter": 3, + "handle": 1, + "mode": 2, + "content.": 2, + "makes": 1, + "this": 2, + "easy.": 1, + "In": 1, + "the": 6, + "lib/": 1, + "folder": 1, + "of": 2, + "your": 2, + "site": 1, + "create": 1, + "file": 1, + "orgmode.rb": 1, + "BEGIN_EXAMPLE": 2, + "require": 1, + "Filters.register": 1, + "do": 2, + "input": 3, + "Orgmode": 2, + "Parser.new": 1, + ".to_html": 1, + "end": 1, + "END_EXAMPLE": 1, + "This": 2, + "code": 1, + "creates": 1, + "that": 1, + "will": 1, + "use": 1, + "parser": 1, + "translate": 1, + "into": 1, + "HTML.": 1, + "Create": 1, + "For": 1, + "example": 1, + "title": 2, + "Parser": 1, + "created_at": 1, + "status": 2, + "Under": 1, + "development": 1, + "erb": 1, + "orgmode": 3, + "<%=>": 2, + "page": 2, + "Status": 1, + "Description": 1, + "Helpful": 1, + "Ruby": 1, + "routines": 1, + "for": 3, + "parsing": 1, + "files.": 1, + "The": 3, + "most": 1, + "significant": 1, + "thing": 2, + "library": 1, + "does": 1, + "today": 1, + "is": 5, + "convert": 1, + "files": 1, + "textile.": 1, + "Currently": 1, + "cannot": 1, + "much": 1, + "customize": 1, + "conversion.": 1, + "supplied": 1, + "textile": 1, + "conversion": 1, + "optimized": 1, + "extracting": 1, + "from": 1, + "orgfile": 1, + "as": 1, + "opposed": 1, + "History": 1, + "**": 1, + "Version": 1, + "first": 1, + "output": 2, + "HTML": 2, + "gets": 1, + "class": 1, + "now": 1, + "indented": 1, + "Proper": 1, + "support": 1, + "multi": 1, + "paragraph": 2, + "list": 1, + "items.": 1, + "See": 1, + "part": 1, + "last": 1, + "bullet.": 1, + "Fixed": 1, + "bugs": 1, + "wouldn": 1, + "s": 1, + "all": 1, + "there": 1, + "it": 1 + }, + "Slash": { + "<%>": 1, + "class": 11, + "Env": 1, + "def": 18, + "init": 4, + "memory": 3, + "ptr": 9, + "0": 3, + "ptr=": 1, + "current_value": 5, + "current_value=": 1, + "value": 1, + "AST": 4, + "Next": 1, + "eval": 10, + "env": 16, + "Prev": 1, + "Inc": 1, + "Dec": 1, + "Output": 1, + "print": 1, + "char": 5, + "Input": 1, + "Sequence": 2, + "nodes": 6, + "for": 2, + "node": 2, + "in": 2, + "Loop": 1, + "seq": 4, + "while": 1, + "Parser": 1, + "str": 2, + "chars": 2, + "split": 1, + "parse": 1, + "stack": 3, + "_parse_char": 2, + "if": 1, + "length": 1, + "1": 1, + "throw": 1, + "SyntaxError": 1, + "new": 2, + "unexpected": 2, + "end": 1, + "of": 1, + "input": 1, + "last": 1, + "switch": 1, + "<": 1, + "+": 1, + "-": 1, + ".": 1, + "[": 1, + "]": 1, + ")": 7, + ";": 6, + "}": 3, + "@stack.pop": 1, + "_add": 1, + "(": 6, + "Loop.new": 1, + "Sequence.new": 1, + "src": 2, + "File.read": 1, + "ARGV.first": 1, + "ast": 1, + "Parser.new": 1, + ".parse": 1, + "ast.eval": 1, + "Env.new": 1 + }, + "Python": { + "SHEBANG#!python": 4, + "import": 47, + "os": 1, + "sys": 2, + "def": 68, + "main": 4, + "(": 719, + ")": 730, + "#": 13, + "usage": 3, + "string": 1, + "command": 4, + "check": 4, + "if": 145, + "len": 9, + "sys.argv": 2, + "<": 1, + "sys.exit": 1, + "+": 37, + ".join": 3, + "[": 152, + "]": 152, + "printDelimiter": 4, + "print": 39, + "get": 1, + "a": 2, + "list": 1, + "of": 3, + "git": 1, + "directories": 1, + "in": 79, + "the": 5, + "specified": 1, + "parent": 5, + "gitDirectories": 2, + "getSubdirectories": 2, + "isGitDirectory": 2, + "for": 59, + "gitDirectory": 2, + "os.chdir": 1, + "os.getcwd": 1, + "os.system": 1, + "directory": 9, + "filter": 3, + "None": 86, + "os.path.abspath": 1, + "subdirectories": 3, + "os.walk": 1, + ".next": 1, + "is": 29, + "return": 57, + "i": 7, + "else": 30, + "os.path.isdir": 1, + "*": 33, + "__name__": 2, + "from": 34, + "__future__": 2, + "unicode_literals": 1, + "copy": 1, + "functools": 1, + "update_wrapper": 2, + "future_builtins": 1, + "zip": 8, + "django.db.models.manager": 1, + "Imported": 1, + "to": 4, + "register": 1, + "signal": 1, + "handler.": 1, + "django.conf": 1, + "settings": 1, + "django.core.exceptions": 1, + "ObjectDoesNotExist": 2, + "MultipleObjectsReturned": 2, + "FieldError": 4, + "ValidationError": 8, + "NON_FIELD_ERRORS": 3, + "django.core": 1, + "validators": 1, + "django.db.models.fields": 1, + "AutoField": 2, + "FieldDoesNotExist": 2, + "django.db.models.fields.related": 1, + "ManyToOneRel": 3, + "OneToOneField": 3, + "add_lazy_relation": 2, + "django.db": 1, + "router": 1, + "transaction": 1, + "DatabaseError": 3, + "DEFAULT_DB_ALIAS": 2, + "django.db.models.query": 1, + "Q": 3, + "django.db.models.query_utils": 2, + "DeferredAttribute": 3, + "django.db.models.deletion": 1, + "Collector": 2, + "django.db.models.options": 1, + "Options": 2, + "django.db.models": 1, + "signals": 1, + "django.db.models.loading": 1, + "register_models": 2, + "get_model": 3, + "django.utils.translation": 1, + "ugettext_lazy": 1, + "as": 11, + "_": 5, + "django.utils.functional": 1, + "curry": 6, + "django.utils.encoding": 1, + "smart_str": 3, + "force_unicode": 3, + "django.utils.text": 1, + "get_text_list": 2, + "capfirst": 6, + "class": 14, + "ModelBase": 4, + "type": 6, + "__new__": 2, + "cls": 32, + "name": 39, + "bases": 6, + "attrs": 7, + "super_new": 3, + "super": 2, + ".__new__": 1, + "parents": 8, + "b": 11, + "isinstance": 11, + "not": 64, + "module": 6, + "attrs.pop": 2, + "new_class": 9, + "{": 25, + "}": 25, + "attr_meta": 5, + "abstract": 3, + "getattr": 30, + "False": 28, + "meta": 12, + "base_meta": 2, + "model_module": 1, + "sys.modules": 1, + "new_class.__module__": 1, + "kwargs": 9, + "model_module.__name__.split": 1, + "-": 30, + "new_class.add_to_class": 7, + "**kwargs": 9, + "subclass_exception": 3, + "tuple": 3, + "x.DoesNotExist": 1, + "x": 22, + "hasattr": 11, + "and": 35, + "x._meta.abstract": 2, + "or": 27, + "x.MultipleObjectsReturned": 1, + "base_meta.abstract": 1, + "new_class._meta.ordering": 1, + "base_meta.ordering": 1, + "new_class._meta.get_latest_by": 1, + "base_meta.get_latest_by": 1, + "is_proxy": 5, + "new_class._meta.proxy": 1, + "new_class._default_manager": 2, + "new_class._base_manager": 2, + "new_class._default_manager._copy_to_model": 1, + "new_class._base_manager._copy_to_model": 1, + "m": 3, + "new_class._meta.app_label": 3, + "seed_cache": 2, + "only_installed": 2, + "obj_name": 2, + "obj": 4, + "attrs.items": 1, + "new_fields": 2, + "new_class._meta.local_fields": 3, + "new_class._meta.local_many_to_many": 2, + "new_class._meta.virtual_fields": 1, + "field_names": 5, + "set": 3, + "f.name": 5, + "f": 19, + "base": 13, + "parent._meta.abstract": 1, + "parent._meta.fields": 1, + "raise": 22, + "TypeError": 4, + "%": 32, + "continue": 10, + "new_class._meta.setup_proxy": 1, + "new_class._meta.concrete_model": 2, + "base._meta.concrete_model": 2, + "o2o_map": 3, + "dict": 3, + "f.rel.to": 1, + "original_base": 1, + "parent_fields": 3, + "base._meta.local_fields": 1, + "base._meta.local_many_to_many": 1, + "field": 32, + "field.name": 14, + "base.__name__": 2, + "base._meta.abstract": 2, + "elif": 4, + "attr_name": 3, + "base._meta.module_name": 1, + "auto_created": 1, + "True": 20, + "parent_link": 1, + "new_class._meta.parents": 1, + "copy.deepcopy": 2, + "new_class._meta.parents.update": 1, + "base._meta.parents": 1, + "new_class.copy_managers": 2, + "base._meta.abstract_managers": 1, + "original_base._meta.concrete_managers": 1, + "base._meta.virtual_fields": 1, + "attr_meta.abstract": 1, + "new_class.Meta": 1, + "new_class._prepare": 1, + "copy_managers": 1, + "base_managers": 2, + "base_managers.sort": 1, + "mgr_name": 3, + "manager": 3, + "val": 14, + "new_manager": 2, + "manager._copy_to_model": 1, + "cls.add_to_class": 1, + "add_to_class": 1, + "value": 9, + "value.contribute_to_class": 1, + "setattr": 14, + "_prepare": 1, + "opts": 5, + "cls._meta": 3, + "opts._prepare": 1, + "opts.order_with_respect_to": 2, + "cls.get_next_in_order": 1, + "cls._get_next_or_previous_in_order": 2, + "is_next": 9, + "cls.get_previous_in_order": 1, + "make_foreign_order_accessors": 2, + "model": 8, + "field.rel.to": 2, + "cls.__name__.lower": 2, + "method_get_order": 2, + "method_set_order": 2, + "opts.order_with_respect_to.rel.to": 1, + "cls.__doc__": 3, + "cls.__name__": 1, + "f.attname": 5, + "opts.fields": 1, + "cls.get_absolute_url": 3, + "get_absolute_url": 2, + "signals.class_prepared.send": 1, + "sender": 5, + "ModelState": 2, + "object": 6, + "__init__": 5, + "self": 100, + "db": 2, + "self.db": 1, + "self.adding": 1, + "Model": 2, + "__metaclass__": 3, + "_deferred": 1, + "*args": 4, + "signals.pre_init.send": 1, + "self.__class__": 10, + "args": 8, + "self._state": 1, + "args_len": 2, + "self._meta.fields": 5, + "IndexError": 2, + "fields_iter": 4, + "iter": 1, + "field.attname": 17, + "kwargs.pop": 6, + "field.rel": 2, + "is_related_object": 3, + "self.__class__.__dict__.get": 2, + "try": 17, + "rel_obj": 3, + "except": 17, + "KeyError": 3, + "field.get_default": 3, + "field.null": 1, + "prop": 5, + "kwargs.keys": 2, + "property": 2, + "AttributeError": 1, + "pass": 4, + ".__init__": 1, + "signals.post_init.send": 1, + "instance": 5, + "__repr__": 2, + "u": 9, + "unicode": 8, + "UnicodeEncodeError": 1, + "UnicodeDecodeError": 1, + "self.__class__.__name__": 3, + "__str__": 1, + ".encode": 1, + "__eq__": 1, + "other": 4, + "self._get_pk_val": 6, + "other._get_pk_val": 1, + "__ne__": 1, + "self.__eq__": 1, + "__hash__": 1, + "hash": 1, + "__reduce__": 1, + "data": 22, + "self.__dict__": 1, + "defers": 2, + "self._deferred": 1, + "deferred_class_factory": 2, + "factory": 5, + "defers.append": 1, + "self._meta.proxy_for_model": 1, + "simple_class_factory": 2, + "model_unpickle": 2, + "_get_pk_val": 2, + "self._meta": 2, + "meta.pk.attname": 2, + "_set_pk_val": 2, + "self._meta.pk.attname": 2, + "pk": 5, + "serializable_value": 1, + "field_name": 8, + "self._meta.get_field_by_name": 1, + "save": 1, + "force_insert": 7, + "force_update": 10, + "using": 30, + "update_fields": 23, + "ValueError": 5, + "frozenset": 2, + "field.primary_key": 1, + "non_model_fields": 2, + "update_fields.difference": 1, + "self.save_base": 2, + "save.alters_data": 1, + "save_base": 1, + "raw": 9, + "origin": 7, + "router.db_for_write": 2, + "assert": 7, + "meta.proxy": 5, + "meta.auto_created": 2, + "signals.pre_save.send": 1, + "org": 3, + "meta.parents.items": 1, + "parent._meta.pk.attname": 2, + "parent._meta": 1, + "non_pks": 5, + "meta.local_fields": 2, + "f.primary_key": 2, + "pk_val": 4, + "pk_set": 5, + "record_exists": 5, + "cls._base_manager": 1, + "manager.using": 3, + ".filter": 7, + ".exists": 1, + "values": 13, + "f.pre_save": 1, + "rows": 3, + "._update": 1, + "meta.order_with_respect_to": 2, + "order_value": 2, + ".count": 1, + "self._order": 1, + "fields": 12, + "update_pk": 3, + "bool": 2, + "meta.has_auto_field": 1, + "result": 2, + "manager._insert": 1, + "return_id": 1, + "transaction.commit_unless_managed": 2, + "self._state.db": 2, + "self._state.adding": 4, + "signals.post_save.send": 1, + "created": 1, + "save_base.alters_data": 1, + "delete": 1, + "self._meta.object_name": 1, + "collector": 1, + "collector.collect": 1, + "collector.delete": 1, + "delete.alters_data": 1, + "_get_FIELD_display": 1, + "field.flatchoices": 1, + ".get": 2, + "strings_only": 1, + "_get_next_or_previous_by_FIELD": 1, + "self.pk": 6, + "op": 6, + "order": 5, + "param": 3, + "q": 4, + "|": 1, + "qs": 6, + "self.__class__._default_manager.using": 1, + "*kwargs": 1, + ".order_by": 2, + "self.DoesNotExist": 1, + "self.__class__._meta.object_name": 1, + "_get_next_or_previous_in_order": 1, + "cachename": 4, + "order_field": 1, + "self._meta.order_with_respect_to": 1, + "self._default_manager.filter": 1, + "order_field.name": 1, + "order_field.attname": 1, + "self._default_manager.values": 1, + "self._meta.pk.name": 1, + "prepare_database_save": 1, + "unused": 1, + "clean": 1, + "validate_unique": 1, + "exclude": 23, + "unique_checks": 6, + "date_checks": 6, + "self._get_unique_checks": 1, + "errors": 20, + "self._perform_unique_checks": 1, + "date_errors": 1, + "self._perform_date_checks": 1, + "k": 4, + "v": 11, + "date_errors.items": 1, + "errors.setdefault": 3, + ".extend": 2, + "_get_unique_checks": 1, + "unique_togethers": 2, + "self._meta.unique_together": 1, + "parent_class": 4, + "self._meta.parents.keys": 2, + "parent_class._meta.unique_together": 2, + "unique_togethers.append": 1, + "model_class": 11, + "unique_together": 2, + "break": 2, + "unique_checks.append": 2, + "fields_with_class": 2, + "self._meta.local_fields": 1, + "fields_with_class.append": 1, + "parent_class._meta.local_fields": 1, + "f.unique": 1, + "f.unique_for_date": 3, + "date_checks.append": 3, + "f.unique_for_year": 3, + "f.unique_for_month": 3, + "_perform_unique_checks": 1, + "unique_check": 10, + "lookup_kwargs": 8, + "self._meta.get_field": 1, + "lookup_value": 3, + "str": 2, + "lookup_kwargs.keys": 1, + "model_class._default_manager.filter": 2, + "*lookup_kwargs": 2, + "model_class_pk": 3, + "model_class._meta": 2, + "qs.exclude": 2, + "qs.exists": 2, + "key": 5, + ".append": 2, + "self.unique_error_message": 1, + "_perform_date_checks": 1, + "lookup_type": 7, + "unique_for": 9, + "date": 3, + "date.day": 1, + "date.month": 1, + "date.year": 1, + "self.date_error_message": 1, + "date_error_message": 1, + "opts.get_field": 4, + ".verbose_name": 3, + "unique_error_message": 1, + "model_name": 3, + "opts.verbose_name": 1, + "field_label": 2, + "field.verbose_name": 1, + "field.error_messages": 1, + "field_labels": 4, + "map": 1, + "lambda": 1, + "full_clean": 1, + "self.clean_fields": 1, + "e": 13, + "e.update_error_dict": 3, + "self.clean": 1, + "errors.keys": 1, + "exclude.append": 1, + "self.validate_unique": 1, + "clean_fields": 1, + "raw_value": 3, + "f.blank": 1, + "validators.EMPTY_VALUES": 1, + "f.clean": 1, + "e.messages": 1, + "############################################": 2, + "ordered_obj": 2, + "id_list": 2, + "rel_val": 4, + "ordered_obj._meta.order_with_respect_to.rel.field_name": 2, + "order_name": 4, + "ordered_obj._meta.order_with_respect_to.name": 2, + "j": 2, + "enumerate": 1, + "ordered_obj.objects.filter": 2, + ".update": 1, + "_order": 1, + "pk_name": 3, + "ordered_obj._meta.pk.name": 1, + "r": 3, + ".values": 1, + "##############################################": 2, + "func": 2, + "settings.ABSOLUTE_URL_OVERRIDES.get": 1, + "opts.app_label": 1, + "opts.module_name": 1, + "########": 2, + "Empty": 1, + "cls.__new__": 1, + "model_unpickle.__safe_for_unpickle__": 1, + "argparse": 1, + "matplotlib.pyplot": 1, + "pl": 1, + "numpy": 1, + "np": 1, + "scipy.optimize": 1, + "prettytable": 1, + "PrettyTable": 6, + "__docformat__": 1, + "S": 4, + "phif": 7, + "U": 10, + "/": 23, + "options": 3, + "_parse_args": 2, + "V": 12, + "np.genfromtxt": 8, + "delimiter": 8, + "t": 8, + "U_err": 7, + "offset": 13, + "np.mean": 1, + "np.linspace": 9, + "min": 10, + "max": 11, + "y": 10, + "np.ones": 11, + "x.size": 2, + "pl.plot": 9, + "**6": 6, + "label": 18, + ".format": 11, + "pl.errorbar": 8, + "yerr": 8, + "linestyle": 8, + "marker": 4, + "pl.grid": 5, + "pl.legend": 5, + "loc": 5, + "pl.title": 5, + "pl.xlabel": 5, + "ur": 11, + "pl.ylabel": 5, + "pl.savefig": 5, + "pl.clf": 5, + "glanz": 13, + "matt": 13, + "schwarz": 13, + "weiss": 13, + "T0": 1, + "T0_err": 2, + "glanz_phi": 4, + "matt_phi": 4, + "schwarz_phi": 4, + "weiss_phi": 4, + "T_err": 7, + "sigma": 4, + "boltzmann": 12, + "T": 6, + "epsilon": 7, + "T**4": 1, + "glanz_popt": 3, + "glanz_pconv": 1, + "op.curve_fit": 6, + "matt_popt": 3, + "matt_pconv": 1, + "schwarz_popt": 3, + "schwarz_pconv": 1, + "weiss_popt": 3, + "weiss_pconv": 1, + "glanz_x": 3, + "glanz_y": 2, + "*glanz_popt": 1, + "color": 8, + "matt_x": 3, + "matt_y": 2, + "*matt_popt": 1, + "schwarz_x": 3, + "schwarz_y": 2, + "*schwarz_popt": 1, + "weiss_x": 3, + "weiss_y": 2, + "*weiss_popt": 1, + "np.sqrt": 17, + "glanz_pconv.diagonal": 2, + "matt_pconv.diagonal": 2, + "schwarz_pconv.diagonal": 2, + "weiss_pconv.diagonal": 2, + "xerr": 6, + "U_err/S": 4, + "header": 5, + "glanz_table": 2, + "row": 10, + ".size": 4, + "*T_err": 4, + "glanz_phi.size": 1, + "*U_err/S": 4, + "glanz_table.add_row": 1, + "matt_table": 2, + "matt_phi.size": 1, + "matt_table.add_row": 1, + "schwarz_table": 2, + "schwarz_phi.size": 1, + "schwarz_table.add_row": 1, + "weiss_table": 2, + "weiss_phi.size": 1, + "weiss_table.add_row": 1, + "T0**4": 1, + "d": 5, + "phi": 5, + "c": 3, + "a*x": 1, + "dx": 6, + "d**": 2, + "dy": 4, + "dx_err": 3, + "np.abs": 1, + "dy_err": 2, + "popt": 5, + "pconv": 2, + "*popt": 2, + "pconv.diagonal": 3, + "table": 2, + "table.align": 1, + "dy.size": 1, + "*dy_err": 1, + "table.add_row": 1, + "U1": 3, + "I1": 3, + "U2": 2, + "I_err": 2, + "p": 1, + "R": 1, + "R_err": 2, + "/I1": 1, + "**2": 2, + "U1/I1**2": 1, + "phi_err": 3, + "alpha": 2, + "beta": 1, + "R0": 6, + "R0_err": 2, + "alpha*R0": 2, + "*np.sqrt": 6, + "*beta*R": 5, + "alpha**2*R0": 5, + "*beta*R0": 7, + "*beta*R0*T0": 2, + "epsilon_err": 2, + "f1": 1, + "f2": 1, + "f3": 1, + "alpha**2": 1, + "*beta": 1, + "*beta*T0": 1, + "*beta*R0**2": 1, + "f1**2": 1, + "f2**2": 1, + "f3**2": 1, + "parser": 1, + "argparse.ArgumentParser": 1, + "description": 1, + "#parser.add_argument": 3, + "metavar": 1, + "nargs": 1, + "help": 2, + "dest": 1, + "default": 1, + "action": 1, + "version": 6, + "parser.parse_args": 1, + "google.protobuf": 4, + "descriptor": 1, + "_descriptor": 1, + "message": 1, + "_message": 1, + "reflection": 1, + "_reflection": 1, + "descriptor_pb2": 1, + "DESCRIPTOR": 3, + "_descriptor.FileDescriptor": 1, + "package": 1, + "serialized_pb": 1, + "_PERSON": 3, + "_descriptor.Descriptor": 1, + "full_name": 2, + "filename": 1, + "file": 1, + "containing_type": 2, + "_descriptor.FieldDescriptor": 1, + "index": 1, + "number": 1, + "cpp_type": 1, + "has_default_value": 1, + "default_value": 1, + "message_type": 1, + "enum_type": 1, + "is_extension": 1, + "extension_scope": 1, + "extensions": 1, + "nested_types": 1, + "enum_types": 1, + "is_extendable": 1, + "extension_ranges": 1, + "serialized_start": 1, + "serialized_end": 1, + "DESCRIPTOR.message_types_by_name": 1, + "Person": 1, + "_message.Message": 1, + "_reflection.GeneratedProtocolMessageType": 1, + "absolute_import": 1, + "division": 1, + "with_statement": 1, + "Cookie": 1, + "logging": 1, + "socket": 1, + "time": 1, + "tornado.escape": 1, + "utf8": 2, + "native_str": 4, + "parse_qs_bytes": 3, + "tornado": 3, + "httputil": 1, + "iostream": 1, + "tornado.netutil": 1, + "TCPServer": 2, + "stack_context": 1, + "tornado.util": 1, + "bytes_type": 2, + "ssl": 2, + "Python": 1, + "ImportError": 1, + "HTTPServer": 1, + "request_callback": 4, + "no_keep_alive": 4, + "io_loop": 3, + "xheaders": 4, + "ssl_options": 3, + "self.request_callback": 5, + "self.no_keep_alive": 4, + "self.xheaders": 3, + "TCPServer.__init__": 1, + "handle_stream": 1, + "stream": 4, + "address": 4, + "HTTPConnection": 2, + "_BadRequestException": 5, + "Exception": 2, + "self.stream": 1, + "self.address": 3, + "self._request": 7, + "self._request_finished": 4, + "self._header_callback": 3, + "stack_context.wrap": 2, + "self._on_headers": 1, + "self.stream.read_until": 2, + "self._write_callback": 5, + "write": 2, + "chunk": 5, + "callback": 7, + "self.stream.closed": 1, + "self.stream.write": 2, + "self._on_write_complete": 1, + "finish": 2, + "self.stream.writing": 2, + "self._finish_request": 2, + "_on_write_complete": 1, + "_finish_request": 1, + "disconnect": 5, + "connection_header": 5, + "self._request.headers.get": 2, + "connection_header.lower": 1, + "self._request.supports_http_1_1": 1, + "self._request.headers": 1, + "self._request.method": 2, + "self.stream.close": 2, + "_on_headers": 1, + "data.decode": 1, + "eol": 3, + "data.find": 1, + "start_line": 1, + "method": 5, + "uri": 5, + "start_line.split": 1, + "version.startswith": 1, + "headers": 5, + "httputil.HTTPHeaders.parse": 1, + "self.stream.socket": 1, + "socket.AF_INET": 2, + "socket.AF_INET6": 1, + "remote_ip": 8, + "HTTPRequest": 2, + "connection": 5, + "content_length": 6, + "headers.get": 2, + "int": 1, + "self.stream.max_buffer_size": 1, + "self.stream.read_bytes": 1, + "self._on_request_body": 1, + "logging.info": 1, + "_on_request_body": 1, + "self._request.body": 2, + "content_type": 1, + "content_type.startswith": 2, + "arguments": 2, + "arguments.iteritems": 2, + "self._request.arguments.setdefault": 1, + "content_type.split": 1, + "sep": 2, + "field.strip": 1, + ".partition": 1, + "httputil.parse_multipart_form_data": 1, + "self._request.arguments": 1, + "self._request.files": 1, + "logging.warning": 1, + "body": 2, + "protocol": 4, + "host": 2, + "files": 2, + "self.method": 1, + "self.uri": 2, + "self.version": 2, + "self.headers": 4, + "httputil.HTTPHeaders": 1, + "self.body": 1, + "connection.xheaders": 1, + "self.remote_ip": 4, + "self.headers.get": 5, + "self._valid_ip": 1, + "self.protocol": 7, + "connection.stream": 1, + "iostream.SSLIOStream": 1, + "self.host": 2, + "self.files": 1, + "self.connection": 1, + "self._start_time": 3, + "time.time": 3, + "self._finish_time": 4, + "self.path": 1, + "self.query": 2, + "uri.partition": 1, + "self.arguments": 2, + "supports_http_1_1": 1, + "@property": 1, + "cookies": 1, + "self._cookies": 3, + "Cookie.SimpleCookie": 1, + "self._cookies.load": 1, + "self.connection.write": 1, + "self.connection.finish": 1, + "full_url": 1, + "request_time": 1, + "get_ssl_certificate": 1, + "self.connection.stream.socket.getpeercert": 1, + "ssl.SSLError": 1, + "n": 3, + "_valid_ip": 1, + "ip": 2, + "res": 2, + "socket.getaddrinfo": 1, + "socket.AF_UNSPEC": 1, + "socket.SOCK_STREAM": 1, + "socket.AI_NUMERICHOST": 1, + "socket.gaierror": 1, + "e.args": 1, + "socket.EAI_NONAME": 1, + ".globals": 1, + "request": 1, + "http_method_funcs": 2, + "View": 2, + "A": 1, + "which": 1, + "methods": 5, + "this": 2, + "pluggable": 1, + "view": 2, + "can": 1, + "handle.": 1, + "The": 1, + "canonical": 1, + "way": 1, + "decorate": 2, + "based": 1, + "views": 1, + "as_view": 1, + ".": 1, + "However": 1, + "since": 1, + "moves": 1, + "parts": 1, + "logic": 1, + "declaration": 1, + "place": 1, + "where": 1, + "it": 1, + "s": 1, + "also": 1, + "used": 1, + "instantiating": 1, + "view.view_class": 1, + "view.__name__": 1, + "view.__doc__": 1, + "view.__module__": 1, + "cls.__module__": 1, + "view.methods": 1, + "cls.methods": 1, + "MethodViewType": 2, + "rv": 2, + "type.__new__": 1, + "rv.methods": 2, + "methods.add": 1, + "key.upper": 1, + "sorted": 1, + "MethodView": 1, + "dispatch_request": 1, + "meth": 5, + "request.method.lower": 1, + "request.method": 2 + }, + "NewLisp": { + "SHEBANG#!newlisp": 1, + ";": 37, + "@module": 1, + "IRC": 13, + "@description": 1, + "a": 5, + "basic": 1, + "irc": 7, + "library": 1, + "@version": 1, + "early": 1, + "alpha": 1, + "-": 101, + "@author": 1, + "cormullion": 1, + "Usage": 1, + "(": 235, + "init": 2, + ")": 232, + "username/nick": 1, + "not": 3, + "that": 1, + "one": 1, + "obviously": 1, + "connect": 3, + "irc/server": 1, + "join": 6, + "channel": 16, + "{": 24, + "#newlisp": 2, + "}": 24, + "room": 1, + "either": 1, + "read": 7, + "loop": 4, + "monitor": 1, + "only": 1, + "no": 1, + "input": 1, + "or": 1, + "session": 4, + "command": 8, + "line": 2, + "end": 2, + "with": 6, + "/QUIT": 1, + "context": 2, + "define": 19, + "Idle": 1, + "time": 4, + "seconds": 1, + "Itime": 3, + "stamp": 3, + "since": 1, + "last": 2, + "message": 26, + "was": 1, + "processed": 1, + "register": 4, + "callback": 25, + "name": 10, + "function": 5, + "println": 6, + "registering": 1, + "for": 2, + "sym": 2, + "term": 2, + "prefix": 2, + "push": 2, + "list": 26, + "Icallbacks": 4, + "deregister": 1, + "deregistering": 1, + "setf": 1, + "assoc": 1, + "nil": 4, + "current": 1, + "callbacks": 12, + "do": 14, + "data": 13, + "when": 3, + "set": 16, + "error": 5, + "in": 1, + "dolist": 3, + "rf": 1, + "ref": 1, + "all": 2, + "func": 2, + "entry": 1, + "if": 2, + "catch": 3, + "apply": 1, + "Inickname": 4, + "str": 1, + "Ichannels": 7, + "of": 4, + "day": 2, + "server": 4, + "port": 2, + "Iconnected": 4, + "true": 2, + "identify": 1, + "password": 2, + "net": 10, + "send": 11, + "Iserver": 10, + "format": 8, + "part": 1, + "chan": 3, + "empty": 4, + "leave": 2, + "specified": 1, + "begin": 2, + "replace": 2, + "quit": 1, + "privmsg": 1, + "user": 4, + "notice": 1, + "to": 3, + "cond": 5, + "starts": 5, + "/": 1, + "default": 1, + "character": 1, + "username": 10, + "first": 3, + "clean": 2, + "parse": 3, + "sender": 4, + "|": 2, + "slice": 1, + "text": 6, + "+": 1, + "find": 2, + "process": 3, + "ctcp": 2, + "target": 6, + "PRIVMSG": 2, + "NOTICE": 2, + "trim": 1, + "messages": 2, + "parts": 1, + "let": 2, + "buffer": 6, + "peek": 2, + "receive": 1, + "unless": 1, + "monitoring": 1, + "while": 3, + "sleep": 2, + "print": 2, + "raw": 3, + "example": 1, + "using": 1, + "lookup": 2, + "date": 3, + "value": 1, + "%": 3, + "H": 1, + "M": 1, + "S": 1, + "interactive": 1, + "terminal": 1, + "must": 1, + "add": 1, + "display": 1, + "outgoing": 1, + "zero": 1, + "string": 2, + "finished": 1, + "exit": 1, + "code": 2, + "[": 2, + "]": 2, + "simple": 1, + "bot": 2, + "load": 1, + "env": 1, + "HOME": 1, + "/projects/programming/newlisp": 1, + "projects/irc.lsp": 1, + "idle": 1, + "event": 2, + "/text": 1 }, "Eagle": { "": 2, @@ -18428,10053 +32384,244 @@ "": 12, "radius=": 12 }, - "ECL": { - "#option": 1, - "(": 32, - "true": 1, - ")": 32, - ";": 23, - "namesRecord": 4, - "RECORD": 1, - "string20": 1, - "surname": 1, - "string10": 2, - "forename": 1, - "integer2": 5, - "age": 2, - "dadAge": 1, - "mumAge": 1, - "END": 1, - "namesRecord2": 3, - "record": 1, - "extra": 1, - "end": 1, - "namesTable": 11, - "dataset": 2, - "FLAT": 2, - "namesTable2": 9, - "aveAgeL": 3, - "l": 1, - "l.dadAge": 1, - "+": 16, - "l.mumAge": 1, - "/2": 2, - "aveAgeR": 4, - "r": 1, - "r.dadAge": 1, - "r.mumAge": 1, - "output": 9, - "join": 11, - "left": 2, - "right": 3, - "//Several": 1, - "simple": 1, - "examples": 1, - "of": 1, - "sliding": 2, - "syntax": 1, - "left.age": 8, - "right.age": 12, - "-": 5, - "and": 10, - "<": 1, - "between": 7, - "//Same": 1, - "but": 1, - "on": 1, - "strings.": 1, - "Also": 1, - "includes": 1, - "to": 1, - "ensure": 1, - "sort": 1, - "is": 1, - "done": 1, - "by": 1, - "non": 1, - "before": 1, - "sliding.": 1, - "left.surname": 2, - "right.surname": 4, - "[": 4, - "]": 4, - "all": 1, - "//This": 1, - "should": 1, - "not": 1, - "generate": 1, - "a": 1, - "self": 1 - }, - "edn": { - "[": 24, - "{": 22, - "db/id": 22, - "#db/id": 22, - "db.part/db": 6, - "]": 24, - "db/ident": 3, - "object/name": 18, - "db/doc": 4, - "db/valueType": 3, - "db.type/string": 2, - "db/index": 3, - "true": 3, - "db/cardinality": 3, - "db.cardinality/one": 3, - "db.install/_attribute": 3, - "}": 22, - "object/meanRadius": 18, - "db.type/double": 1, - "data/source": 2, - "db.part/tx": 2, - "db.part/user": 17 - }, - "Elm": { - "import": 3, - "List": 1, - "(": 119, - "intercalate": 2, - "intersperse": 3, - ")": 116, - "Website.Skeleton": 1, - "Website.ColorScheme": 1, - "addFolder": 4, - "folder": 2, - "lst": 6, - "let": 2, - "add": 2, - "x": 13, - "y": 7, - "+": 14, - "in": 2, - "f": 8, - "n": 2, - "xs": 9, - "map": 11, - "elements": 2, - "[": 31, - "]": 31, - "functional": 2, - "reactive": 2, - "-": 11, - "example": 3, - "name": 6, - "loc": 2, - "Text.link": 1, - "toText": 6, - "toLinks": 2, - "title": 2, - "links": 2, - "flow": 4, - "right": 8, - "width": 3, - "text": 4, - "italic": 1, - "bold": 2, - ".": 9, - "Text.color": 1, - "accent4": 1, - "insertSpace": 2, - "case": 5, - "of": 7, - "{": 1, - "spacer": 2, - ";": 1, - "}": 1, - "subsection": 2, - "w": 7, - "info": 2, - "down": 3, - "words": 2, - "markdown": 1, - "|": 3, - "###": 1, - "Basic": 1, - "Examples": 1, - "Each": 1, - "listed": 1, - "below": 1, - "focuses": 1, - "on": 1, - "a": 5, - "single": 1, - "function": 1, - "or": 1, - "concept.": 1, - "These": 1, - "examples": 1, - "demonstrate": 1, - "all": 1, - "the": 1, - "basic": 1, - "building": 1, - "blocks": 1, - "Elm.": 1, - "content": 2, - "exampleSets": 2, - "plainText": 1, - "main": 3, - "lift": 1, - "skeleton": 1, - "Window.width": 1, - "asText": 1, - "qsort": 4, - "filter": 2, - "<)x)>": 1, - "data": 1, - "Tree": 3, - "Node": 8, - "Empty": 8, - "empty": 2, - "singleton": 2, - "v": 8, - "insert": 4, - "tree": 7, - "left": 7, - "if": 2, - "then": 2, - "else": 2, - "<": 1, - "fromList": 3, - "foldl": 1, - "depth": 5, - "max": 1, - "t1": 2, - "t2": 3, - "display": 4, - "monospace": 1, - "concat": 1, - "show": 2 - }, - "Emacs Lisp": { - "(": 156, - "print": 1, - ")": 144, - ";": 333, - "ess": 48, - "-": 294, - "julia.el": 2, - "ESS": 5, - "julia": 39, - "mode": 12, - "and": 3, - "inferior": 13, - "interaction": 1, - "Copyright": 1, - "C": 2, - "Vitalie": 3, - "Spinu.": 1, - "Filename": 1, - "Author": 1, - "Spinu": 2, - "based": 1, - "on": 2, - "mode.el": 1, - "from": 3, - "lang": 1, - "project": 1, - "Maintainer": 1, - "Created": 1, - "Keywords": 1, - "This": 4, - "file": 10, - "is": 5, - "*NOT*": 1, - "part": 2, - "of": 8, - "GNU": 4, - "Emacs.": 1, - "program": 6, - "free": 1, - "software": 1, - "you": 1, - "can": 1, - "redistribute": 1, - "it": 3, - "and/or": 1, - "modify": 5, - "under": 1, - "the": 10, - "terms": 1, - "General": 3, - "Public": 3, - "License": 3, - "as": 1, - "published": 1, - "by": 1, - "Free": 2, - "Software": 2, - "Foundation": 2, - "either": 1, - "version": 2, - "any": 1, - "later": 1, - "version.": 1, - "distributed": 1, - "in": 3, - "hope": 1, - "that": 2, - "will": 1, - "be": 2, - "useful": 1, - "but": 2, - "WITHOUT": 1, - "ANY": 1, - "WARRANTY": 1, - "without": 1, - "even": 1, - "implied": 1, - "warranty": 1, - "MERCHANTABILITY": 1, - "or": 3, - "FITNESS": 1, - "FOR": 1, - "A": 1, - "PARTICULAR": 1, - "PURPOSE.": 1, - "See": 1, - "for": 8, - "more": 1, - "details.": 1, - "You": 1, - "should": 2, - "have": 1, - "received": 1, - "a": 4, - "copy": 2, - "along": 1, - "with": 4, - "this": 1, - "see": 2, - "COPYING.": 1, - "If": 1, - "not": 1, - "write": 2, - "to": 4, - "Inc.": 1, - "Franklin": 1, - "Street": 1, - "Fifth": 1, - "Floor": 1, - "Boston": 1, - "MA": 1, - "USA.": 1, - "Commentary": 1, - "customise": 1, - "name": 8, - "point": 6, - "your": 1, - "release": 1, - "basic": 1, - "start": 13, - "M": 2, - "x": 2, - "julia.": 2, - "require": 2, - "auto": 1, - "alist": 9, - "table": 9, - "character": 1, - "quote": 2, - "transpose": 1, - "syntax": 7, - "entry": 4, - ".": 40, - "Syntax": 3, - "inside": 1, - "char": 6, - "defvar": 5, - "let": 3, - "make": 4, - "defconst": 5, - "regex": 5, - "unquote": 1, - "forloop": 1, - "subset": 2, - "regexp": 6, - "font": 6, - "lock": 6, - "defaults": 2, - "list": 3, - "identity": 1, - "keyword": 2, - "face": 4, - "constant": 1, - "cons": 1, - "function": 7, - "keep": 2, - "string": 8, - "paragraph": 3, - "concat": 7, - "page": 2, - "delimiter": 2, - "separate": 1, - "ignore": 2, - "fill": 1, - "prefix": 2, - "t": 6, - "final": 1, - "newline": 1, - "comment": 6, - "add": 4, - "skip": 1, - "column": 1, - "indent": 8, - "S": 2, - "line": 5, - "calculate": 1, - "parse": 1, - "sexp": 1, - "comments": 1, - "style": 2, - "default": 1, - "ignored": 1, - "local": 6, - "process": 5, - "nil": 12, - "dump": 2, - "files": 1, - "_": 1, - "autoload": 1, - "defun": 5, - "send": 3, - "visibly": 1, - "temporary": 1, - "directory": 2, - "temp": 2, - "insert": 1, - "format": 3, - "load": 1, - "command": 5, - "get": 3, - "help": 3, - "topics": 1, - "&": 3, - "optional": 3, - "proc": 3, - "words": 1, - "vector": 1, - "com": 1, - "error": 6, - "s": 5, - "*in": 1, - "[": 3, - "n": 1, - "]": 3, - "*": 1, - "at": 5, - ".*": 2, - "+": 5, - "w*": 1, - "http": 1, - "//docs.julialang.org/en/latest/search/": 1, - "q": 1, - "%": 1, - "include": 1, - "funargs": 1, - "re": 2, - "args": 10, - "language": 1, - "STERM": 1, - "editor": 2, - "R": 2, - "pager": 2, - "versions": 1, - "Julia": 1, - "made": 1, - "available.": 1, - "String": 1, - "arguments": 2, - "used": 1, - "when": 2, - "starting": 1, - "group": 1, - "###autoload": 2, - "interactive": 2, - "setq": 2, - "customize": 5, - "emacs": 1, - "<": 1, - "hook": 4, - "complete": 1, - "object": 2, - "completion": 4, - "functions": 2, - "first": 1, - "if": 4, - "fboundp": 1, - "end": 1, - "workaround": 1, - "set": 3, - "variable": 3, - "post": 1, - "run": 2, - "settings": 1, - "notably": 1, - "null": 1, - "dribble": 1, - "buffer": 3, - "debugging": 1, - "only": 1, - "dialect": 1, - "current": 2, - "arg": 1, - "let*": 2, - "jl": 2, - "space": 1, - "just": 1, - "case": 1, - "read": 1, - "..": 3, - "multi": 1, - "...": 1, - "tb": 1, - "logo": 1, - "goto": 2, - "min": 1, - "while": 1, - "search": 1, - "forward": 1, - "replace": 1, - "match": 1, - "max": 1, - "inject": 1, - "code": 1, - "etc": 1, - "hooks": 1, - "busy": 1, - "funname": 5, - "eldoc": 1, - "show": 1, - "symbol": 2, - "aggressive": 1, - "car": 1, - "funname.start": 1, - "sequence": 1, - "nth": 1, - "W": 1, - "window": 2, - "width": 1, - "minibuffer": 1, - "length": 1, - "doc": 1, - "propertize": 1, - "use": 1, - "classes": 1, - "screws": 1, - "egrep": 1 - }, - "Erlang": { - "SHEBANG#!escript": 3, - "%": 134, - "-": 262, - "*": 9, - "erlang": 5, - "smp": 1, - "enable": 1, - "sname": 1, - "factorial": 1, - "mnesia": 1, - "debug": 1, - "verbose": 1, - "main": 4, - "(": 236, - "[": 66, - "String": 2, - "]": 61, - ")": 230, - "try": 2, - "N": 6, - "list_to_integer": 1, - "F": 16, - "fac": 4, - "io": 5, - "format": 7, - "catch": 2, - "_": 52, - "usage": 3, - "end": 3, - ";": 56, - ".": 37, - "halt": 2, - "export": 2, - "main/1": 1, - "For": 1, - "each": 1, - "header": 1, - "file": 6, - "it": 2, - "scans": 1, - "thru": 1, - "all": 1, - "records": 1, - "and": 8, - "create": 1, - "helper": 1, - "functions": 2, - "Helper": 1, - "are": 3, - "setters": 1, - "getters": 1, - "fields": 4, - "fields_atom": 4, - "type": 6, - "module": 2, - "record_helper": 1, - "make/1": 1, - "make/2": 1, - "make": 3, - "HeaderFiles": 5, - "atom_to_list": 18, - "X": 12, - "||": 6, - "<->": 5, - "hrl": 1, - "relative": 1, - "to": 2, - "current": 1, - "dir": 1, - "OutDir": 4, - "ModuleName": 3, - "HeaderComment": 2, - "ModuleDeclaration": 2, - "+": 214, - "<": 1, - "Src": 10, - "format_src": 8, - "lists": 11, - "sort": 1, - "flatten": 6, - "read": 2, - "generate_type_default_function": 2, - "write_file": 1, - "erl": 1, - "list_to_binary": 1, - "HeaderFile": 4, - "epp": 1, - "parse_file": 1, - "of": 9, - "{": 109, - "ok": 34, - "Tree": 4, - "}": 109, - "parse": 2, - "error": 4, - "Error": 4, - "catched_error": 1, - "end.": 3, - "|": 25, - "T": 24, - "when": 29, - "length": 6, - "Type": 3, - "A": 5, - "B": 4, - "NSrc": 4, - "_Type": 1, - "Type1": 2, - "parse_record": 3, - "attribute": 1, - "record": 4, - "RecordInfo": 2, - "RecordName": 41, - "RecordFields": 10, - "if": 1, - "generate_setter_getter_function": 5, - "generate_type_function": 3, - "true": 3, - "generate_fields_function": 2, - "generate_fields_atom_function": 2, - "parse_field_name": 5, - "record_field": 9, - "atom": 9, - "FieldName": 26, - "field": 4, - "_FieldName": 2, - "ParentRecordName": 8, - "parent_field": 2, - "parse_field_name_atom": 5, - "concat": 5, - "_S": 3, - "S": 6, - "concat_ext": 4, - "parse_field": 6, - "AccFields": 6, - "AccParentFields": 6, - "case": 3, - "Field": 2, - "PField": 2, - "parse_field_atom": 4, - "zzz": 1, - "Fields": 4, - "field_atom": 1, - "to_setter_getter_function": 5, - "setter": 2, - "getter": 2, - "This": 2, - "is": 1, - "auto": 1, - "generated": 1, - "file.": 1, - "Please": 1, - "don": 1, - "t": 1, - "edit": 1, - "record_utils": 1, - "compile": 2, - "export_all": 1, - "include": 1, - "abstract_message": 21, - "async_message": 12, - "clientId": 5, - "destination": 5, - "messageId": 5, - "timestamp": 5, - "timeToLive": 5, - "headers": 5, - "body": 5, - "correlationId": 5, - "correlationIdBytes": 5, - "get": 12, - "Obj": 49, - "is_record": 25, - "Obj#abstract_message.body": 1, - "Obj#abstract_message.clientId": 1, - "Obj#abstract_message.destination": 1, - "Obj#abstract_message.headers": 1, - "Obj#abstract_message.messageId": 1, - "Obj#abstract_message.timeToLive": 1, - "Obj#abstract_message.timestamp": 1, - "Obj#async_message.correlationId": 1, - "Obj#async_message.correlationIdBytes": 1, - "parent": 5, - "Obj#async_message.parent": 3, - "ParentProperty": 6, - "is_atom": 2, - "set": 13, - "Value": 35, - "NewObj": 20, - "Obj#abstract_message": 7, - "Obj#async_message": 3, - "NewParentObject": 2, - "undefined.": 1, - "Mode": 1, - "coding": 1, - "utf": 1, - "tab": 1, - "width": 1, - "c": 2, - "basic": 1, - "offset": 1, - "indent": 1, - "tabs": 1, - "mode": 2, - "BSD": 1, - "LICENSE": 1, - "Copyright": 1, - "Michael": 2, - "Truog": 2, - "": 1, - "at": 1, - "gmail": 1, - "dot": 1, - "com": 1, - "All": 2, - "rights": 1, - "reserved.": 1, - "Redistribution": 1, - "use": 2, - "in": 3, - "source": 2, - "binary": 2, - "forms": 1, - "with": 2, - "or": 3, - "without": 2, - "modification": 1, - "permitted": 1, - "provided": 2, - "that": 1, - "the": 9, - "following": 4, - "conditions": 3, - "met": 1, - "Redistributions": 2, - "code": 2, - "must": 3, - "retain": 1, - "above": 2, - "copyright": 2, - "notice": 2, - "this": 4, - "list": 2, - "disclaimer.": 1, - "form": 1, - "reproduce": 1, - "disclaimer": 1, - "documentation": 1, - "and/or": 1, - "other": 1, - "materials": 2, - "distribution.": 1, - "advertising": 1, - "mentioning": 1, - "features": 1, - "software": 3, - "display": 1, - "acknowledgment": 1, - "product": 1, - "includes": 1, - "developed": 1, - "by": 1, + "PostScript": { + "%": 23, + "PS": 1, + "-": 4, + "Adobe": 1, + "Creator": 1, + "Aaron": 1, + "Puchert": 1, + "Title": 1, "The": 1, - "name": 1, - "author": 2, - "may": 1, - "not": 1, - "be": 1, - "used": 1, - "endorse": 1, - "promote": 1, - "products": 1, - "derived": 1, - "from": 1, - "specific": 1, - "prior": 1, - "written": 1, - "permission": 1, - "THIS": 2, - "SOFTWARE": 2, - "IS": 1, - "PROVIDED": 1, - "BY": 1, - "THE": 5, - "COPYRIGHT": 2, - "HOLDERS": 1, - "AND": 4, - "CONTRIBUTORS": 2, - "ANY": 4, - "EXPRESS": 1, - "OR": 8, - "IMPLIED": 2, - "WARRANTIES": 2, - "INCLUDING": 3, - "BUT": 2, - "NOT": 2, - "LIMITED": 2, - "TO": 2, - "OF": 8, - "MERCHANTABILITY": 1, - "FITNESS": 1, - "FOR": 2, - "PARTICULAR": 1, - "PURPOSE": 1, - "ARE": 1, - "DISCLAIMED.": 1, - "IN": 3, - "NO": 1, - "EVENT": 1, - "SHALL": 1, - "OWNER": 1, - "BE": 1, - "LIABLE": 1, - "DIRECT": 1, - "INDIRECT": 1, - "INCIDENTAL": 1, - "SPECIAL": 1, - "EXEMPLARY": 1, - "CONSEQUENTIAL": 1, - "DAMAGES": 1, - "PROCUREMENT": 1, - "SUBSTITUTE": 1, - "GOODS": 1, - "SERVICES": 1, - "LOSS": 1, - "USE": 2, - "DATA": 1, - "PROFITS": 1, - "BUSINESS": 1, - "INTERRUPTION": 1, - "HOWEVER": 1, - "CAUSED": 1, - "ON": 1, - "THEORY": 1, - "LIABILITY": 2, - "WHETHER": 1, - "CONTRACT": 1, - "STRICT": 1, - "TORT": 1, - "NEGLIGENCE": 1, - "OTHERWISE": 1, - "ARISING": 1, - "WAY": 1, - "OUT": 1, - "EVEN": 1, - "IF": 1, - "ADVISED": 1, - "POSSIBILITY": 1, - "SUCH": 1, - "DAMAGE.": 1, - "sys": 2, - "RelToolConfig": 5, - "target_dir": 2, - "TargetDir": 14, - "overlay": 2, - "OverlayConfig": 4, - "consult": 1, - "Spec": 2, - "reltool": 2, - "get_target_spec": 1, - "make_dir": 1, - "eexist": 1, - "exit_code": 3, - "eval_target_spec": 1, - "root_dir": 1, - "process_overlay": 2, - "shell": 3, - "Command": 3, - "Arguments": 3, - "CommandSuffix": 2, - "reverse": 4, - "os": 1, - "cmd": 1, - "io_lib": 2, - "boot_rel_vsn": 2, - "Config": 2, - "_RelToolConfig": 1, - "rel": 2, - "_Name": 1, - "Ver": 1, - "proplists": 1, - "lookup": 1, - "Ver.": 1, - "minimal": 2, - "parsing": 1, - "for": 1, - "handling": 1, - "mustache": 11, - "syntax": 1, - "Body": 2, - "Context": 11, - "Result": 10, - "_Context": 1, - "KeyStr": 6, - "mustache_key": 4, - "C": 4, - "Rest": 10, - "Key": 2, - "list_to_existing_atom": 1, - "dict": 2, - "find": 1, - "support": 1, - "based": 1, - "on": 1, - "rebar": 1, - "overlays": 1, - "BootRelVsn": 2, - "OverlayVars": 2, - "from_list": 1, - "erts_vsn": 1, - "system_info": 1, - "version": 1, - "rel_vsn": 1, - "hostname": 1, - "net_adm": 1, - "localhost": 1, - "BaseDir": 7, - "get_cwd": 1, - "execute_overlay": 6, - "_Vars": 1, - "_BaseDir": 1, - "_TargetDir": 1, - "mkdir": 1, - "Out": 4, - "Vars": 7, - "filename": 3, - "join": 3, - "copy": 1, - "In": 2, - "InFile": 3, - "OutFile": 2, - "filelib": 1, - "is_file": 1, - "ExitCode": 2, - "flush": 1 - }, - "fish": { - "#": 18, - "set": 49, - "-": 102, - "g": 1, - "IFS": 4, - "n": 5, - "t": 2, - "l": 15, - "configdir": 2, - "/.config": 1, - "if": 21, - "q": 9, - "XDG_CONFIG_HOME": 2, - "end": 33, - "not": 8, - "fish_function_path": 4, - "configdir/fish/functions": 1, - "__fish_sysconfdir/functions": 1, - "__fish_datadir/functions": 3, - "contains": 4, - "[": 13, - "]": 13, - "fish_complete_path": 4, - "configdir/fish/completions": 1, - "__fish_sysconfdir/completions": 1, - "__fish_datadir/completions": 3, - "test": 7, - "d": 3, - "/usr/xpg4/bin": 3, - "PATH": 6, - "path_list": 4, - "/bin": 1, - "/usr/bin": 1, - "/usr/X11R6/bin": 1, - "/usr/local/bin": 1, - "__fish_bin_dir": 1, - "switch": 3, - "USER": 1, - "case": 9, - "root": 1, - "/sbin": 1, - "/usr/sbin": 1, - "/usr/local/sbin": 1, - "for": 1, - "i": 5, - "in": 2, - "function": 6, - "fish_sigtrap_handler": 1, - "on": 2, - "signal": 1, - "TRAP": 1, - "no": 2, - "scope": 1, - "shadowing": 1, - "description": 2, - "breakpoint": 1, - "__fish_on_interactive": 2, - "event": 1, - "fish_prompt": 1, - "__fish_config_interactive": 1, - "functions": 5, - "e": 6, - "eval": 5, - "S": 1, - "If": 2, - "we": 2, - "are": 1, - "an": 1, - "interactive": 8, - "shell": 1, - "should": 2, - "enable": 1, - "full": 4, - "job": 5, - "control": 5, - "since": 1, - "it": 1, - "behave": 1, - "like": 2, - "the": 1, - "real": 1, - "code": 1, - "was": 1, - "executed.": 1, - "don": 1, - "do": 1, - "this": 1, - "commands": 1, - "that": 1, - "expect": 1, - "to": 1, - "be": 1, - "used": 1, - "interactively": 1, - "less": 1, - "wont": 1, - "work": 1, - "using": 1, - "eval.": 1, - "mode": 5, - "status": 7, - "is": 3, - "else": 3, - "none": 1, - "echo": 3, - "|": 3, - ".": 2, - "<": 1, - "&": 1, - "res": 2, - "return": 6, - "funced": 3, - "editor": 7, - "EDITOR": 1, - "funcname": 14, - "while": 2, - "argv": 9, - "h": 1, - "help": 1, - "__fish_print_help": 1, - "set_color": 4, - "red": 2, - "printf": 3, - "(": 7, - "_": 3, - ")": 7, - "normal": 2, - "begin": 2, - ";": 7, - "or": 3, - "init": 5, - "nend": 2, - "editor_cmd": 2, - "type": 1, - "f": 3, - "/dev/null": 2, - "fish": 3, - "z": 1, - "fish_indent": 2, - "indent": 1, - "prompt": 2, - "read": 1, - "p": 1, - "c": 1, - "s": 1, - "cmd": 2, - "TMPDIR": 2, - "/tmp": 1, - "tmpname": 8, - "%": 2, - "self": 2, - "random": 2, - "stat": 2, - "rm": 1 - }, - "Forth": { - "(": 88, - "Block": 2, - "words.": 6, - ")": 87, - "variable": 3, - "blk": 3, - "current": 5, - "-": 473, - "block": 8, - "n": 22, - "addr": 11, - ";": 61, - "buffer": 2, - "evaluate": 1, - "extended": 3, - "semantics": 3, - "flush": 1, - "load": 2, - "...": 4, - "dup": 10, - "save": 2, - "input": 2, - "in": 4, - "@": 13, - "source": 5, - "#source": 2, - "interpret": 1, - "restore": 1, - "buffers": 2, - "update": 1, - "extension": 4, - "empty": 2, - "scr": 2, - "list": 1, - "bounds": 1, - "do": 2, - "i": 5, - "emit": 2, - "loop": 4, - "refill": 2, - "thru": 1, - "x": 10, - "y": 5, - "+": 17, - "swap": 12, - "*": 9, - "forth": 2, - "Copyright": 3, - "Lars": 3, - "Brinkhoff": 3, - "Kernel": 4, - "#tib": 2, - "TODO": 12, - ".r": 1, - ".": 5, - "[": 16, - "char": 10, - "]": 15, - "parse": 5, - "type": 3, - "immediate": 19, - "<": 14, - "flag": 4, - "r": 18, - "x1": 5, - "x2": 5, - "R": 13, - "rot": 2, - "r@": 2, - "noname": 1, - "align": 2, - "here": 9, - "c": 3, - "allot": 2, - "lastxt": 4, - "SP": 1, - "query": 1, - "tib": 1, - "body": 1, - "true": 1, - "tuck": 2, - "over": 5, - "u.r": 1, - "u": 3, - "if": 9, - "drop": 4, - "false": 1, - "else": 6, - "then": 5, - "unused": 1, - "value": 1, - "create": 2, - "does": 5, - "within": 1, - "compile": 2, - "Forth2012": 2, - "core": 1, - "action": 1, - "of": 3, - "defer": 2, - "name": 1, - "s": 4, - "c@": 2, - "negate": 1, - "nip": 2, - "bl": 4, - "word": 9, - "ahead": 2, - "resolve": 4, - "literal": 4, - "postpone": 14, - "nonimmediate": 1, - "caddr": 1, - "C": 9, - "find": 2, - "cells": 1, - "postponers": 1, - "execute": 1, - "unresolved": 4, - "orig": 5, - "chars": 1, - "n1": 2, - "n2": 2, - "orig1": 1, - "orig2": 1, - "branch": 5, - "dodoes_code": 1, - "code": 3, - "begin": 2, - "dest": 5, - "while": 2, - "repeat": 2, - "until": 1, - "recurse": 1, - "pad": 3, - "If": 1, - "necessary": 1, - "and": 3, - "keep": 1, - "parsing.": 1, - "string": 3, - "cmove": 1, - "state": 2, - "cr": 3, - "abort": 3, - "": 1, - "Undefined": 1, - "ok": 1, - "HELLO": 4, - "KataDiversion": 1, - "Forth": 1, - "utils": 1, - "the": 7, - "stack": 3, - "EMPTY": 1, - "DEPTH": 2, - "IF": 10, - "BEGIN": 3, - "DROP": 5, - "UNTIL": 3, - "THEN": 10, - "power": 2, - "**": 2, - "n1_pow_n2": 1, - "SWAP": 8, - "DUP": 14, - "DO": 2, - "OVER": 2, - "LOOP": 2, - "NIP": 4, - "compute": 1, - "highest": 1, - "below": 1, - "N.": 1, - "e.g.": 2, - "MAXPOW2": 2, - "log2_n": 1, - "ABORT": 1, - "ELSE": 7, - "|": 4, - "I": 5, - "i*2": 1, - "/": 3, - "kata": 1, - "test": 1, - "given": 3, - "N": 6, - "has": 1, - "two": 2, - "adjacent": 2, - "bits": 3, - "NOT": 3, - "TWO": 3, - "ADJACENT": 3, - "BITS": 3, - "bool": 1, - "uses": 1, - "following": 1, - "algorithm": 1, - "return": 5, - "A": 5, - "X": 5, - "LOG2": 1, - "end": 1, - "OR": 1, - "INVERT": 1, - "maximum": 1, - "number": 4, - "which": 3, - "can": 2, - "be": 2, - "made": 2, - "with": 2, - "MAX": 2, - "NB": 3, - "m": 2, - "**n": 1, - "numbers": 1, - "or": 1, - "less": 1, - "have": 1, - "not": 1, - "bits.": 1, - "see": 1, - "http": 1, - "//www.codekata.com/2007/01/code_kata_fifte.html": 1, - "HOW": 1, - "MANY": 1, - "Tools": 2, - ".s": 1, - "depth": 1, - "traverse": 1, - "dictionary": 1, - "assembler": 1, - "kernel": 1, - "bye": 1, - "cs": 2, - "pick": 1, - "roll": 1, - "editor": 1, - "forget": 1, - "reveal": 1, - "tools": 1, - "nr": 1, - "synonym": 1, - "undefined": 2, - "defined": 1, - "invert": 1, - "/cell": 2, - "cell": 2 - }, - "Frege": { - "module": 2, - "examples.CommandLineClock": 1, - "where": 39, - "data": 3, - "Date": 5, - "native": 4, - "java.util.Date": 1, - "new": 9, - "(": 339, - ")": 345, - "-": 730, - "IO": 13, - "MutableIO": 1, - "toString": 2, - "Mutable": 1, - "s": 21, - "ST": 1, - "String": 9, - "d.toString": 1, - "action": 2, - "to": 13, - "give": 2, - "us": 1, - "the": 20, - "current": 4, - "time": 1, - "as": 33, - "do": 38, - "d": 3, - "<->": 35, - "java": 5, - "lang": 2, - "Thread": 2, - "sleep": 4, - "takes": 1, - "a": 99, - "long": 4, - "and": 14, - "returns": 2, - "nothing": 2, - "but": 2, - "may": 1, - "throw": 1, - "an": 6, - "InterruptedException": 4, - "This": 2, - "is": 24, - "without": 1, - "doubt": 1, - "public": 1, - "static": 1, - "void": 2, - "millis": 1, - "throws": 4, - "Encoded": 1, - "in": 22, - "Frege": 1, - "argument": 1, - "type": 8, - "Long": 3, - "result": 11, - "does": 2, - "defined": 1, - "frege": 1, - "Lang": 1, - "main": 11, - "args": 2, - "forever": 1, - "print": 25, - "stdout.flush": 1, - "Thread.sleep": 4, - "examples.Concurrent": 1, - "import": 7, - "System.Random": 1, - "Java.Net": 1, - "URL": 2, - "Control.Concurrent": 1, - "C": 6, - "main2": 1, - "m": 2, - "<": 84, - "newEmptyMVar": 1, - "forkIO": 11, - "m.put": 3, - "replicateM_": 3, - "c": 33, - "m.take": 1, - "println": 25, - "example1": 1, - "putChar": 2, - "example2": 2, - "getLine": 2, - "case": 6, - "of": 32, - "Right": 6, - "n": 38, - "setReminder": 3, - "Left": 5, - "_": 60, - "+": 200, - "show": 24, - "L*n": 1, - "table": 1, - "mainPhil": 2, - "[": 120, - "fork1": 3, - "fork2": 3, - "fork3": 3, - "fork4": 3, - "fork5": 3, - "]": 116, - "mapM": 3, - "MVar": 3, - "1": 2, - "5": 1, - "philosopher": 7, - "Kant": 1, - "Locke": 1, - "Wittgenstein": 1, - "Nozick": 1, - "Mises": 1, - "return": 17, - "Int": 6, - "me": 13, - "left": 4, - "right": 4, - "g": 4, - "Random.newStdGen": 1, - "let": 8, - "phil": 4, - "tT": 2, - "g1": 2, - "Random.randomR": 2, - "L": 6, - "eT": 2, - "g2": 3, - "thinkTime": 3, - "*": 5, - "eatTime": 3, - "fl": 4, - "left.take": 1, - "rFork": 2, - "poll": 1, - "Just": 2, - "fr": 3, - "right.put": 1, - "left.put": 2, - "table.notifyAll": 2, - "Nothing": 2, - "table.wait": 1, - "inter": 3, - "catch": 2, - "getURL": 4, - "xx": 2, - "url": 1, - "URL.new": 1, - "con": 3, - "url.openConnection": 1, - "con.connect": 1, - "con.getInputStream": 1, - "typ": 5, - "con.getContentType": 1, - "stderr.println": 3, - "ir": 2, - "InputStreamReader.new": 2, - "fromMaybe": 1, - "charset": 2, - "unsupportedEncoding": 3, - "br": 4, - "BufferedReader": 1, - "getLines": 1, - "InputStream": 1, - "UnsupportedEncodingException": 1, - "InputStreamReader": 1, - "x": 45, - "x.catched": 1, - "ctyp": 2, - "charset=": 1, - "m.group": 1, - "SomeException": 2, - "Throwable": 1, - "m1": 1, - "MVar.newEmpty": 3, - "m2": 1, - "m3": 2, - "r": 7, - "catchAll": 3, - ".": 41, - "m1.put": 1, - "m2.put": 1, - "m3.put": 1, - "r1": 2, - "m1.take": 1, - "r2": 3, - "m2.take": 1, - "r3": 3, - "take": 13, - "ss": 8, - "mapM_": 5, - "putStrLn": 2, - "|": 62, - "x.getClass.getName": 1, - "y": 15, - "sum": 2, - "map": 49, - "length": 20, - "package": 2, - "examples.Sudoku": 1, - "Data.TreeMap": 1, - "Tree": 4, - "keys": 2, - "Data.List": 1, - "DL": 1, - "hiding": 1, - "find": 20, - "union": 10, - "Element": 6, - "Zelle": 8, - "set": 4, - "candidates": 18, - "Position": 22, - "Feld": 3, - "Brett": 13, - "for": 25, - "assumptions": 10, - "conclusions": 2, - "Assumption": 21, - "ISNOT": 14, - "IS": 16, - "derive": 2, - "Eq": 1, - "Ord": 1, - "instance": 1, - "Show": 1, - "p": 72, - "e": 15, - "pname": 10, - "e.show": 2, - "showcs": 5, - "cs": 27, - "joined": 4, - "Assumption.show": 1, - "elements": 12, - "all": 22, - "possible": 2, - "..": 1, - "positions": 16, - "rowstarts": 4, - "row": 20, - "starting": 3, - "colstarts": 3, - "column": 2, - "boxstarts": 3, - "box": 15, - "boxmuster": 3, - "pattern": 1, - "by": 3, - "adding": 1, - "upper": 2, - "position": 9, - "results": 1, - "real": 1, - "extract": 2, - "field": 9, - "getf": 16, - "f": 19, - "fs": 22, - "fst": 9, - "otherwise": 8, - "cell": 24, - "getc": 12, - "b": 113, - "snd": 20, - "compute": 5, - "list": 7, - "that": 18, - "belong": 3, - "same": 8, - "given": 3, - "z..": 1, - "z": 12, - "quot": 1, - "col": 17, - "mod": 3, - "ri": 2, - "div": 3, - "or": 15, - "depending": 1, - "on": 4, - "ci": 3, - "index": 3, - "middle": 2, - "check": 2, - "if": 5, - "candidate": 10, - "has": 2, - "exactly": 2, - "one": 2, - "member": 1, - "i.e.": 1, - "been": 1, - "solved": 1, - "single": 9, - "Bool": 2, - "true": 16, - "false": 13, - "unsolved": 10, - "rows": 4, - "cols": 6, - "boxes": 1, - "allrows": 8, - "allcols": 5, - "allboxs": 5, - "allrcb": 5, - "zip": 7, - "repeat": 3, - "containers": 6, - "PRINTING": 1, - "printable": 1, - "coordinate": 1, - "a1": 3, - "lower": 1, - "i9": 1, - "packed": 1, - "chr": 2, - "ord": 6, - "board": 41, - "printb": 4, - "p1line": 2, - "pfld": 4, - "line": 2, - "brief": 1, - "no": 4, - "some": 2, - "zs": 1, - "initial/final": 1, - "msg": 6, - "res012": 2, - "concatMap": 1, - "a*100": 1, - "b*10": 1, - "BOARD": 1, - "ALTERATION": 1, - "ACTIONS": 1, - "message": 1, - "about": 1, - "what": 1, - "done": 1, - "turnoff1": 3, - "i": 16, - "off": 11, - "nc": 7, - "head": 19, - "newb": 7, - "filter": 26, - "notElem": 7, - "turnoff": 11, - "turnoffh": 1, - "ps": 8, - "foldM": 2, - "toh": 2, - "setto": 3, - "cname": 4, - "nf": 2, - "SOLVING": 1, - "STRATEGIES": 1, - "reduce": 3, - "sets": 2, - "contains": 1, - "numbers": 1, - "already": 1, - "finds": 1, - "logs": 1, - "NAKED": 5, - "SINGLEs": 1, - "passing.": 1, - "sss": 3, - "each": 2, - "with": 15, - "more": 2, - "than": 2, - "fields": 6, - "are": 6, - "rcb": 16, - "elem": 16, - "collect": 1, - "remove": 3, - "from": 7, - "look": 10, - "number": 4, - "appears": 1, - "container": 9, - "this": 2, - "can": 9, - "go": 1, - "other": 2, - "place": 1, - "HIDDEN": 6, - "SINGLE": 1, - "hiddenSingle": 2, - "select": 1, - "containername": 1, - "FOR": 11, - "IN": 9, - "occurs": 5, - "PAIRS": 8, - "TRIPLES": 8, - "QUADS": 2, - "nakedPair": 4, - "t": 14, - "nm": 6, - "SELECT": 3, - "pos": 5, - "tuple": 2, - "name": 2, - "//": 8, - "u": 6, - "fold": 7, - "non": 2, - "outof": 6, - "tuples": 2, - "hit": 7, - "subset": 3, - "any": 3, - "hiddenPair": 4, - "minus": 2, - "uniq": 4, - "sort": 4, - "common": 4, - "bs": 7, - "undefined": 1, - "cannot": 1, - "happen": 1, - "because": 1, - "either": 1, - "empty": 4, - "not": 5, - "intersectionlist": 2, - "intersections": 2, - "reason": 8, - "reson": 1, - "cpos": 7, - "WHERE": 2, - "tail": 2, - "intersection": 1, - "we": 5, - "occurences": 1, - "XY": 2, - "Wing": 2, - "there": 6, - "exists": 6, - "A": 7, - "X": 5, - "Y": 4, - "B": 5, - "Z": 6, - "shares": 2, - "reasoning": 1, - "will": 4, - "be": 9, - "since": 1, - "indeed": 1, - "thus": 1, - "see": 1, - "xyWing": 2, - "rcba": 4, - "share": 1, - "b1": 11, - "b2": 10, - "&&": 9, - "||": 2, - "then": 1, - "else": 1, - "c1": 4, - "c2": 3, - "N": 5, - "Fish": 1, - "Swordfish": 1, - "Jellyfish": 1, - "When": 2, - "particular": 1, - "digit": 1, - "located": 2, - "only": 1, - "columns": 2, - "eliminate": 1, - "those": 2, - "which": 2, - "fish": 7, - "fishname": 5, - "rset": 4, - "certain": 1, - "rflds": 2, - "rowset": 1, - "colss": 3, - "must": 4, - "appear": 1, - "at": 3, - "least": 3, - "cstart": 2, - "immediate": 1, - "consequences": 6, - "assumption": 8, - "form": 1, - "conseq": 3, - "cp": 3, - "two": 1, - "contradict": 2, - "contradicts": 7, - "get": 3, - "aPos": 5, - "List": 1, - "turned": 1, - "when": 2, - "true/false": 1, - "toClear": 7, - "whose": 1, - "implications": 5, - "themself": 1, - "chain": 2, - "paths": 12, - "solution": 6, - "reverse": 4, - "css": 7, - "yields": 1, - "contradictory": 1, - "chainContra": 2, - "pro": 7, - "contra": 4, - "ALL": 2, - "conlusions": 1, - "uniqBy": 2, - "using": 2, - "sortBy": 2, - "comparing": 2, - "conslusion": 1, - "chains": 4, - "LET": 1, - "BE": 1, - "final": 2, - "conclusion": 4, - "THE": 1, - "FIRST": 1, - "implication": 2, - "ai": 2, - "so": 1, - "a0": 1, - "OR": 7, - "a2": 2, - "...": 2, - "IMPLIES": 1, - "For": 2, - "cells": 1, - "pi": 2, - "have": 1, - "construct": 2, - "p0": 1, - "p1": 1, - "c0": 1, - "cellRegionChain": 2, - "os": 3, - "cellas": 2, - "regionas": 2, - "iss": 3, - "ass": 2, - "first": 2, - "candidates@": 1, - "region": 2, - "oss": 2, - "Liste": 1, - "aller": 1, - "Annahmen": 1, - "ein": 1, - "bestimmtes": 1, - "acstree": 3, - "Tree.fromList": 1, - "bypass": 1, - "maybe": 1, - "tree": 1, - "lookup": 2, - "error": 1, - "performance": 1, - "resons": 1, - "confine": 1, - "ourselves": 1, - "20": 1, - "per": 1, - "mkPaths": 3, - "acst": 3, - "impl": 2, - "{": 1, - "a3": 1, - "ordered": 1, - "impls": 2, - "ns": 2, - "concat": 1, - "takeUntil": 1, - "null": 1, - "iterate": 1, - "expandchain": 3, - "avoid": 1, - "loops": 1, - "uni": 3, - "SOLVE": 1, - "SUDOKU": 1, - "Apply": 1, - "available": 1, - "strategies": 1, - "until": 1, - "changes": 1, - "anymore": 1, - "Strategy": 1, - "functions": 2, - "supposed": 1, - "applied": 1, - "changed": 1, - "board.": 1, - "strategy": 2, - "anything": 1, - "alter": 1, - "it": 2, - "next": 1, - "tried.": 1, - "solve": 19, - "res@": 16, - "apply": 17, - "res": 16, - "smallest": 1, - "comment": 16, - "SINGLES": 1, - "locked": 1, - "2": 3, - "QUADRUPELS": 6, - "3": 3, - "4": 3, - "WINGS": 1, - "FISH": 3, - "pcomment": 2, - "9": 5, - "forcing": 1, - "allow": 1, - "infer": 1, - "both": 1, - "brd": 2, - "com": 5, - "stderr": 3, - "<<": 4, - "log": 1, - "turn": 1, - "string": 3, - "into": 1, - "mkrow": 2, - "mkrow1": 2, - "xs": 4, - "make": 1, - "sure": 1, - "unpacked": 2, - "<=>": 1, - "0": 2, - "ignored": 1, - "h": 1, - "help": 1, - "usage": 1, - "Sudoku": 2, - "file": 4, - "81": 3, - "char": 1, - "consisting": 1, - "digits": 2, - "One": 1, - "such": 1, - "going": 1, - "http": 3, - "www": 1, - "sudokuoftheday": 1, - "pages": 1, - "o": 1, - "php": 1, - "click": 1, - "puzzle": 1, - "open": 1, - "tab": 1, - "Copy": 1, - "address": 1, - "your": 1, - "browser": 1, - "There": 1, - "also": 1, - "hard": 1, - "sudokus": 1, - "examples": 1, - "top95": 1, - "txt": 1, - "W": 1, - "felder": 2, - "decode": 4, - "files": 2, - "forM_": 1, - "sudoku": 2, - "openReader": 1, - "lines": 2, - "BufferedReader.getLines": 1, - "process": 5, - "candi": 2, - "consider": 3, - "acht": 4, - "neun": 2, - "examples.SwingExamples": 1, - "Java.Awt": 1, - "ActionListener": 2, - "Java.Swing": 1, - "rs": 2, - "Runnable.new": 1, - "helloWorldGUI": 2, - "buttonDemoGUI": 2, - "celsiusConverterGUI": 2, - "invokeLater": 1, - "tempTextField": 2, - "JTextField.new": 1, - "celsiusLabel": 1, - "JLabel.new": 3, - "convertButton": 1, - "JButton.new": 3, - "fahrenheitLabel": 1, - "frame": 3, - "JFrame.new": 3, - "frame.setDefaultCloseOperation": 3, - "JFrame.dispose_on_close": 3, - "frame.setTitle": 1, - "celsiusLabel.setText": 1, - "convertButton.setText": 1, - "convertButtonActionPerformed": 2, - "celsius": 3, - "getText": 1, - "double": 1, - "fahrenheitLabel.setText": 3, - "c*1.8": 1, - ".long": 1, - "ActionListener.new": 2, - "convertButton.addActionListener": 1, - "contentPane": 2, - "frame.getContentPane": 2, - "layout": 2, - "GroupLayout.new": 1, - "contentPane.setLayout": 1, - "TODO": 1, - "continue": 1, - "//docs.oracle.com/javase/tutorial/displayCode.html": 1, - "code": 1, - "//docs.oracle.com/javase/tutorial/uiswing/examples/learn/CelsiusConverterProject/src/learn/CelsiusConverterGUI.java": 1, - "frame.pack": 3, - "frame.setVisible": 3, - "label": 2, - "cp.add": 1, - "newContentPane": 2, - "JPanel.new": 1, - "JButton": 4, - "b1.setVerticalTextPosition": 1, - "SwingConstants.center": 2, - "b1.setHorizontalTextPosition": 1, - "SwingConstants.leading": 2, - "b2.setVerticalTextPosition": 1, - "b2.setHorizontalTextPosition": 1, - "b3": 7, - "Enable": 1, - "button": 1, - "setVerticalTextPosition": 1, - "SwingConstants": 2, - "center": 1, - "setHorizontalTextPosition": 1, - "leading": 1, - "setEnabled": 7, - "action1": 2, - "action3": 2, - "b1.addActionListener": 1, - "b3.addActionListener": 1, - "newContentPane.add": 3, - "newContentPane.setOpaque": 1, - "frame.setContentPane": 1 - }, - "Game Maker Language": { - "//draws": 1, - "the": 62, - "sprite": 12, - "draw": 3, - "true": 73, - ";": 1282, - "if": 397, - "(": 1501, - "facing": 17, - "RIGHT": 10, - ")": 1502, - "image_xscale": 17, - "-": 212, - "else": 151, - "blinkToggle": 1, - "{": 300, - "state": 50, - "CLIMBING": 5, - "or": 78, - "sprite_index": 14, - "sPExit": 1, - "sDamselExit": 1, - "sTunnelExit": 1, - "and": 155, - "global.hasJetpack": 4, - "not": 63, - "whipping": 5, - "draw_sprite_ext": 10, - "x": 76, - "y": 85, - "image_yscale": 14, - "image_angle": 14, - "image_blend": 2, - "image_alpha": 10, - "//draw_sprite": 1, - "draw_sprite": 9, - "sJetpackBack": 1, - "false": 85, - "}": 307, - "sJetpackRight": 1, - "sJetpackLeft": 1, - "+": 206, - "redColor": 2, - "make_color_rgb": 1, - "holdArrow": 4, - "ARROW_NORM": 2, - "sArrowRight": 1, - "ARROW_BOMB": 2, - "holdArrowToggle": 2, - "sBombArrowRight": 2, - "LEFT": 7, - "sArrowLeft": 1, - "sBombArrowLeft": 2, - "hangCountMax": 2, - "//////////////////////////////////////": 2, - "kLeft": 12, - "checkLeft": 1, - "kLeftPushedSteps": 3, - "kLeftPressed": 2, - "checkLeftPressed": 1, - "kLeftReleased": 3, - "checkLeftReleased": 1, - "kRight": 12, - "checkRight": 1, - "kRightPushedSteps": 3, - "kRightPressed": 2, - "checkRightPressed": 1, - "kRightReleased": 3, - "checkRightReleased": 1, - "kUp": 5, - "checkUp": 1, - "kDown": 5, - "checkDown": 1, - "//key": 1, - "canRun": 1, - "kRun": 2, - "kJump": 6, - "checkJump": 1, - "kJumpPressed": 11, - "checkJumpPressed": 1, - "kJumpReleased": 5, - "checkJumpReleased": 1, - "cantJump": 3, - "global.isTunnelMan": 1, - "sTunnelAttackL": 1, - "holdItem": 1, - "kAttack": 2, - "checkAttack": 2, - "kAttackPressed": 2, - "checkAttackPressed": 1, - "kAttackReleased": 2, - "checkAttackReleased": 1, - "kItemPressed": 2, - "checkItemPressed": 1, - "xPrev": 1, - "yPrev": 1, - "stunned": 3, - "dead": 3, - "//////////////////////////////////////////": 2, - "colSolidLeft": 4, - "colSolidRight": 3, - "colLeft": 6, - "colRight": 6, - "colTop": 4, - "colBot": 11, - "colLadder": 3, - "colPlatBot": 6, - "colPlat": 5, - "colWaterTop": 3, - "colIceBot": 2, - "runKey": 4, - "isCollisionMoveableSolidLeft": 1, - "isCollisionMoveableSolidRight": 1, - "isCollisionLeft": 2, - "isCollisionRight": 2, - "isCollisionTop": 1, - "isCollisionBottom": 1, - "isCollisionLadder": 1, - "isCollisionPlatformBottom": 1, - "isCollisionPlatform": 1, - "isCollisionWaterTop": 1, - "collision_point": 30, - "oIce": 1, - "checkRun": 1, - "runHeld": 3, - "HANGING": 10, - "approximatelyZero": 4, - "xVel": 24, - "xAcc": 12, - "platformCharacterIs": 23, - "ON_GROUND": 18, - "DUCKING": 4, - "pushTimer": 3, - "//if": 5, - "SS_IsSoundPlaying": 2, - "global.sndPush": 4, - "playSound": 3, - "runAcc": 2, - "abs": 9, - "alarm": 13, - "[": 99, - "]": 103, - "<": 39, - "floor": 11, - "/": 5, - "/xVel": 1, - "instance_exists": 8, - "oCape": 2, - "oCape.open": 6, - "kJumped": 7, - "ladderTimer": 4, - "ladder": 5, - "oLadder": 4, - "ladder.x": 3, - "oLadderTop": 2, - "yAcc": 26, - "climbAcc": 2, - "FALLING": 8, - "STANDING": 2, - "departLadderXVel": 2, - "departLadderYVel": 1, - "JUMPING": 6, - "jumpButtonReleased": 7, - "jumpTime": 8, - "IN_AIR": 5, - "gravityIntensity": 2, - "yVel": 20, - "RUNNING": 3, - "jumps": 3, - "//playSound": 1, - "global.sndLand": 1, - "grav": 22, - "global.hasGloves": 3, - "hangCount": 14, - "*": 18, - "yVel*0.3": 1, - "oWeb": 2, - "obj": 14, - "instance_place": 3, - "obj.life": 1, - "initialJumpAcc": 6, - "xVel/2": 3, - "gravNorm": 7, - "global.hasCape": 1, - "jetpackFuel": 2, - "fallTimer": 2, - "global.hasJordans": 1, - "yAccLimit": 2, - "global.hasSpringShoes": 1, - "global.sndJump": 1, - "jumpTimeTotal": 2, - "//let": 1, - "character": 20, - "continue": 4, - "to": 62, - "jump": 1, - "jumpTime/jumpTimeTotal": 1, - "looking": 2, - "UP": 1, - "LOOKING_UP": 4, - "oSolid": 14, - "move_snap": 6, - "oTree": 4, - "oArrow": 5, - "instance_nearest": 1, - "obj.stuck": 1, - "//the": 2, - "can": 1, - "t": 23, - "want": 1, - "use": 4, - "because": 2, - "is": 9, - "too": 2, - "high": 1, - "yPrevHigh": 1, - "//": 11, - "we": 5, - "ll": 1, - "move": 2, - "correct": 1, - "distance": 1, - "but": 2, - "need": 1, - "shorten": 1, - "out": 4, - "a": 55, - "little": 1, - "ratio": 1, - "xVelInteger": 2, - "/dist*0.9": 1, - "//can": 1, - "be": 4, - "changed": 1, - "moveTo": 2, - "round": 6, - "xVelInteger*ratio": 1, - "yVelInteger*ratio": 1, - "slopeChangeInY": 1, - "maxDownSlope": 1, - "floating": 1, - "just": 1, - "above": 1, - "slope": 1, - "so": 2, - "down": 1, - "upYPrev": 1, - "for": 26, - "<=upYPrev+maxDownSlope;y+=1)>": 1, - "hit": 1, - "solid": 1, - "below": 1, - "upYPrev=": 1, - "I": 1, - "know": 1, - "that": 2, - "this": 2, - "doesn": 1, - "seem": 1, - "make": 1, - "sense": 1, - "of": 25, - "name": 9, - "variable": 1, - "it": 6, - "all": 3, - "works": 1, - "correctly": 1, - "after": 1, - "break": 58, - "loop": 1, - "y=": 1, - "figures": 1, - "what": 1, - "index": 11, - "should": 25, - "characterSprite": 1, - "sets": 1, - "previous": 2, - "previously": 1, - "statePrevPrev": 1, - "statePrev": 2, - "calculates": 1, - "image_speed": 9, - "based": 1, - "on": 4, - "s": 6, - "velocity": 1, - "runAnimSpeed": 1, - "0": 21, - "1": 32, - "sqrt": 1, - "sqr": 2, - "climbAnimSpeed": 1, - "<=>": 3, - "4": 2, - "setCollisionBounds": 3, - "8": 9, - "5": 5, - "DUCKTOHANG": 1, - "image_index": 1, - "limit": 5, - "at": 23, - "animation": 1, - "always": 1, - "looks": 1, - "good": 1, - "var": 79, - "i": 95, - "playerObject": 1, - "playerID": 1, - "player": 36, - "otherPlayerID": 1, - "otherPlayer": 1, - "sameVersion": 1, - "buffer": 1, - "plugins": 4, - "pluginsRequired": 2, - "usePlugins": 1, - "tcp_eof": 3, - "global.serverSocket": 10, - "gotServerHello": 2, - "show_message": 7, - "instance_destroy": 7, - "exit": 10, - "room": 1, - "DownloadRoom": 1, - "keyboard_check": 1, - "vk_escape": 1, - "downloadingMap": 2, - "while": 15, - "tcp_receive": 3, - "min": 4, - "downloadMapBytes": 2, - "buffer_size": 2, - "downloadMapBuffer": 6, - "write_buffer": 2, - "write_buffer_to_file": 1, - "downloadMapName": 3, - "buffer_destroy": 8, - "roomchange": 2, - "do": 1, - "switch": 9, - "read_ubyte": 10, - "case": 50, - "HELLO": 1, - "global.joinedServerName": 2, - "receivestring": 4, - "advertisedMapMd5": 1, - "receiveCompleteMessage": 1, - "global.tempBuffer": 3, - "string_pos": 20, - "Server": 3, - "sent": 7, - "illegal": 2, - "map": 47, - "This": 2, - "server": 10, - "requires": 1, - "following": 2, - "play": 2, - "#": 3, - "suggests": 1, - "optional": 1, - "Error": 2, - "ocurred": 1, - "loading": 1, - "plugins.": 1, - "Maps/": 2, - ".png": 2, - "The": 6, - "version": 4, - "Enter": 1, - "Password": 1, - "Incorrect": 1, - "Password.": 1, - "Incompatible": 1, - "protocol": 3, - "version.": 1, - "Name": 1, - "Exploit": 1, - "Invalid": 2, - "plugin": 6, - "packet": 3, - "ID": 2, - "There": 1, - "are": 1, - "many": 1, - "connections": 1, - "from": 5, - "your": 1, - "IP": 1, - "You": 1, - "have": 2, - "been": 1, - "kicked": 1, - "server.": 1, - ".": 12, - "#Server": 1, - "went": 1, - "invalid": 1, - "internal": 1, - "#Exiting.": 1, - "full.": 1, - "noone": 7, - "ERROR": 1, - "when": 1, - "reading": 1, - "no": 1, - "such": 1, - "unexpected": 1, - "data.": 1, - "until": 1, - "downloadHandle": 3, - "url": 62, - "tmpfile": 3, - "window_oldshowborder": 2, - "window_oldfullscreen": 2, - "timeLeft": 1, - "counter": 1, - "AudioControlPlaySong": 1, - "window_get_showborder": 1, - "window_get_fullscreen": 1, - "window_set_fullscreen": 2, - "window_set_showborder": 1, - "global.updaterBetaChannel": 3, - "UPDATE_SOURCE_BETA": 1, - "UPDATE_SOURCE": 1, - "temp_directory": 1, - "httpGet": 1, - "httpRequestStatus": 1, - "download": 1, - "isn": 1, - "extract": 1, - "downloaded": 1, - "file": 2, - "now.": 1, - "extractzip": 1, - "working_directory": 6, - "execute_program": 1, - "game_end": 1, - "victim": 10, - "killer": 11, - "assistant": 16, - "damageSource": 18, - "argument0": 28, - "argument1": 10, - "argument2": 3, - "argument3": 1, - "//*************************************": 6, - "//*": 3, - "Scoring": 1, - "Kill": 1, - "log": 1, - "recordKillInLog": 1, - "victim.stats": 1, - "DEATHS": 1, - "WEAPON_KNIFE": 1, - "||": 16, - "WEAPON_BACKSTAB": 1, - "killer.stats": 8, - "STABS": 2, - "killer.roundStats": 8, - "POINTS": 10, - "victim.object.currentWeapon.object_index": 1, - "Medigun": 2, - "victim.object.currentWeapon.uberReady": 1, - "BONUS": 2, - "KILLS": 2, - "victim.object.intel": 1, - "DEFENSES": 2, - "recordEventInLog": 1, - "killer.team": 1, - "killer.name": 2, - "global.myself": 4, - "assistant.stats": 2, - "ASSISTS": 2, - "assistant.roundStats": 2, - ".5": 2, - "//SPEC": 1, - "instance_create": 20, - "victim.object.x": 3, - "victim.object.y": 3, - "Spectator": 1, - "Gibbing": 2, - "xoffset": 5, - "yoffset": 5, - "xsize": 3, - "ysize": 3, - "view_xview": 3, - "view_yview": 3, - "view_wview": 2, - "view_hview": 2, - "randomize": 1, - "with": 47, - "victim.object": 2, - "WEAPON_ROCKETLAUNCHER": 1, - "WEAPON_MINEGUN": 1, - "FRAG_BOX": 2, - "WEAPON_REFLECTED_STICKY": 1, - "WEAPON_REFLECTED_ROCKET": 1, - "FINISHED_OFF_GIB": 2, - "GENERATOR_EXPLOSION": 2, - "player.class": 15, - "CLASS_QUOTE": 3, - "global.gibLevel": 14, - "distance_to_point": 3, - "xsize/2": 2, - "ysize/2": 2, - "hasReward": 4, - "repeat": 7, - "createGib": 14, - "PumpkinGib": 1, - "hspeed": 14, - "vspeed": 13, - "random": 21, - "choose": 8, - "Gib": 1, - "player.team": 8, - "TEAM_BLUE": 6, - "BlueClump": 1, - "TEAM_RED": 8, - "RedClump": 1, - "blood": 2, - "BloodDrop": 1, - "blood.hspeed": 1, - "blood.vspeed": 1, - "blood.sprite_index": 1, - "PumpkinJuiceS": 1, - "//All": 1, - "Classes": 1, - "gib": 1, - "head": 1, - "hands": 2, - "feet": 1, - "Headgib": 1, - "//Medic": 1, - "has": 2, - "specially": 1, - "colored": 1, - "CLASS_MEDIC": 2, - "Hand": 3, - "Feet": 1, - "//Class": 1, - "specific": 1, - "gibs": 1, - "CLASS_PYRO": 2, - "Accesory": 5, - "CLASS_SOLDIER": 2, - "CLASS_ENGINEER": 3, - "CLASS_SNIPER": 3, - "playsound": 2, - "deadbody": 2, - "DeathSnd1": 1, - "DeathSnd2": 1, - "DeadGuy": 1, - "deadbody.sprite_index": 2, - "haxxyStatue": 1, - "deadbody.image_index": 2, - "CHARACTER_ANIMATION_DEAD": 1, - "deadbody.hspeed": 1, - "deadbody.vspeed": 1, - "deadbody.image_xscale": 1, - "global.gg_birthday": 1, - "myHat": 2, - "PartyHat": 1, - "myHat.image_index": 2, - "victim.team": 2, - "global.xmas": 1, - "XmasHat": 1, - "Deathcam": 1, - "global.killCam": 3, - "KILL_BOX": 1, - "FINISHED_OFF": 5, - "DeathCam": 1, - "DeathCam.killedby": 1, - "DeathCam.name": 1, - "DeathCam.oldxview": 1, - "DeathCam.oldyview": 1, - "DeathCam.lastDamageSource": 1, - "DeathCam.team": 1, - "global.myself.team": 3, - "xr": 19, - "yr": 19, - "cloakAlpha": 1, - "team": 13, - "canCloak": 1, - "cloakAlpha/2": 1, - "invisible": 1, - "stabbing": 2, - "power": 1, - "currentWeapon.stab.alpha": 1, - "&&": 6, - "global.showHealthBar": 3, - "draw_set_alpha": 3, - "draw_healthbar": 1, - "hp*100/maxHp": 1, - "c_black": 1, - "c_red": 3, - "c_green": 1, - "mouse_x": 1, - "mouse_y": 1, - "<25)>": 1, - "cloak": 2, - "global": 8, - "myself": 2, - "draw_set_halign": 1, - "fa_center": 1, - "draw_set_valign": 1, - "fa_bottom": 1, - "team=": 1, - "draw_set_color": 2, - "c_blue": 2, - "draw_text": 4, - "35": 1, - "showTeammateStats": 1, - "weapons": 3, - "50": 3, - "Superburst": 1, - "string": 13, - "currentWeapon": 2, - "uberCharge": 1, - "20": 1, - "Shotgun": 1, - "Nuts": 1, - "N": 1, - "Bolts": 1, - "nutsNBolts": 1, - "Minegun": 1, - "Lobbed": 1, - "Mines": 1, - "lobbed": 1, - "ubercolour": 6, - "overlaySprite": 6, - "zoomed": 1, - "SniperCrouchRedS": 1, - "SniperCrouchBlueS": 1, - "sniperCrouchOverlay": 1, - "overlay": 1, - "omnomnomnom": 2, - "draw_sprite_ext_overlay": 7, - "omnomnomnomSprite": 2, - "omnomnomnomOverlay": 2, - "omnomnomnomindex": 4, - "c_white": 13, - "ubered": 7, - "7": 4, - "taunting": 2, - "tauntsprite": 2, - "tauntOverlay": 2, - "tauntindex": 2, - "humiliated": 1, - "humiliationPoses": 1, - "animationImage": 9, - "humiliationOffset": 1, - "animationOffset": 6, - "burnDuration": 2, - "burnIntensity": 2, - "numFlames": 1, - "maxIntensity": 1, - "FlameS": 1, - "flameArray_x": 1, - "flameArray_y": 1, - "maxDuration": 1, - "demon": 4, - "demonX": 5, - "median": 2, - "demonY": 4, - "demonOffset": 4, - "demonDir": 2, - "dir": 3, - "demonFrame": 5, - "sprite_get_number": 1, - "*player.team": 2, - "dir*1": 2, - "#define": 26, - "__http_init": 3, - "global.__HttpClient": 4, - "object_add": 1, - "object_set_persistent": 1, - "__http_split": 3, - "text": 19, - "delimeter": 7, - "list": 36, - "count": 4, - "ds_list_create": 5, - "ds_list_add": 23, - "string_copy": 32, - "string_length": 25, - "return": 56, - "__http_parse_url": 4, - "ds_map_create": 4, - "ds_map_add": 15, - "colonPos": 22, - "string_char_at": 13, - "slashPos": 13, - "real": 14, - "queryPos": 12, - "ds_map_destroy": 6, - "__http_resolve_url": 2, - "baseUrl": 3, - "refUrl": 18, - "urlParts": 15, - "refUrlParts": 5, - "canParseRefUrl": 3, - "result": 11, - "ds_map_find_value": 22, - "__http_resolve_path": 3, - "ds_map_replace": 3, - "ds_map_exists": 11, - "ds_map_delete": 1, - "path": 10, - "query": 4, - "relUrl": 1, - "__http_construct_url": 2, - "basePath": 4, - "refPath": 7, - "parts": 29, - "refParts": 5, - "lastPart": 3, - "ds_list_find_value": 9, - "ds_list_size": 11, - "ds_list_delete": 5, - "ds_list_destroy": 4, - "part": 6, - "ds_list_replace": 3, - "__http_parse_hex": 2, - "hexString": 4, - "hexValues": 3, - "digit": 4, - "__http_prepare_request": 4, - "client": 33, - "headers": 11, - "parsed": 18, - "show_error": 2, - "destroyed": 3, - "CR": 10, - "chr": 3, - "LF": 5, - "CRLF": 17, - "socket": 40, - "tcp_connect": 1, - "errored": 19, - "error": 18, - "linebuf": 33, - "line": 19, - "statusCode": 6, - "reasonPhrase": 2, - "responseBody": 19, - "buffer_create": 7, - "responseBodySize": 5, - "responseBodyProgress": 5, - "responseHeaders": 9, - "requestUrl": 2, - "requestHeaders": 2, - "write_string": 9, - "key": 17, - "ds_map_find_first": 1, - "is_string": 2, - "ds_map_find_next": 1, - "socket_send": 1, - "__http_parse_header": 3, - "ord": 16, - "headerValue": 9, - "string_lower": 3, - "headerName": 4, - "__http_client_step": 2, - "socket_has_error": 1, - "socket_error": 1, - "__http_client_destroy": 20, - "available": 7, - "tcp_receive_available": 1, - "bytesRead": 6, - "c": 20, - "read_string": 9, - "Reached": 2, - "end": 11, - "HTTP": 1, - "defines": 1, - "sequence": 2, - "as": 1, - "marker": 1, - "elements": 1, - "except": 2, - "entity": 1, - "body": 2, - "see": 1, - "appendix": 1, - "19": 1, - "3": 1, - "tolerant": 1, - "applications": 1, - "Strip": 1, - "trailing": 1, - "First": 1, - "status": 2, - "code": 2, - "first": 3, - "Response": 1, - "message": 1, - "Status": 1, - "Line": 1, - "consisting": 1, - "followed": 1, - "by": 5, - "numeric": 1, - "its": 1, - "associated": 1, - "textual": 1, - "phrase": 1, - "each": 18, - "element": 8, - "separated": 1, - "SP": 1, - "characters": 3, - "No": 3, - "allowed": 1, - "in": 21, - "final": 1, - "httpVer": 2, - "spacePos": 11, - "space": 4, - "response": 5, - "second": 2, - "Other": 1, - "Blank": 1, - "write": 1, - "remainder": 1, - "write_buffer_part": 3, - "Header": 1, - "Receiving": 1, - "transfer": 6, - "encoding": 2, - "chunked": 4, - "Chunked": 1, - "let": 1, - "decode": 36, - "actualResponseBody": 8, - "actualResponseSize": 1, - "actualResponseBodySize": 3, - "Parse": 1, - "chunks": 1, - "chunk": 12, - "size": 7, - "extension": 3, - "data": 4, - "HEX": 1, - "buffer_bytes_left": 6, - "chunkSize": 11, - "Read": 1, - "byte": 2, - "We": 1, - "found": 21, - "semicolon": 1, - "beginning": 1, - "skip": 1, - "stuff": 2, - "header": 2, - "Doesn": 1, - "did": 1, - "empty": 13, - "something": 1, - "up": 6, - "Parsing": 1, - "failed": 56, - "hex": 2, - "was": 1, - "hexadecimal": 1, - "Is": 1, - "bigger": 2, - "than": 1, - "remaining": 1, - "2": 2, - "responseHaders": 1, - "location": 4, - "resolved": 5, - "socket_destroy": 4, - "http_new_get": 1, - "variable_global_exists": 2, - "http_new_get_ex": 1, - "http_step": 1, - "client.errored": 3, - "client.state": 3, - "http_status_code": 1, - "client.statusCode": 1, - "http_reason_phrase": 1, - "client.error": 1, - "client.reasonPhrase": 1, - "http_response_body": 1, - "client.responseBody": 1, - "http_response_body_size": 1, - "client.responseBodySize": 1, - "http_response_body_progress": 1, - "client.responseBodyProgress": 1, - "http_response_headers": 1, - "client.responseHeaders": 1, - "http_destroy": 1, - "RoomChangeObserver": 1, - "set_little_endian_global": 1, - "file_exists": 5, - "file_delete": 3, - "backupFilename": 5, - "file_find_first": 1, - "file_find_next": 1, - "file_find_close": 1, - "customMapRotationFile": 7, - "restart": 4, - "//import": 1, - "wav": 1, - "files": 1, - "music": 1, - "global.MenuMusic": 3, - "sound_add": 3, - "global.IngameMusic": 3, - "global.FaucetMusic": 3, - "sound_volume": 3, - "global.sendBuffer": 19, - "global.HudCheck": 1, - "global.map_rotation": 19, - "global.CustomMapCollisionSprite": 1, - "window_set_region_scale": 1, - "ini_open": 2, - "global.playerName": 7, - "ini_read_string": 12, - "string_count": 2, - "MAX_PLAYERNAME_LENGTH": 2, - "global.fullscreen": 3, - "ini_read_real": 65, - "global.useLobbyServer": 2, - "global.hostingPort": 2, - "global.music": 2, - "MUSIC_BOTH": 1, - "global.playerLimit": 4, - "//thy": 1, - "playerlimit": 1, - "shalt": 1, - "exceed": 1, - "global.dedicatedMode": 7, - "ini_write_real": 60, - "global.multiClientLimit": 2, - "global.particles": 2, - "PARTICLES_NORMAL": 1, - "global.monitorSync": 3, - "set_synchronization": 2, - "global.medicRadar": 2, - "global.showHealer": 2, - "global.showHealing": 2, - "global.showTeammateStats": 2, - "global.serverPluginsPrompt": 2, - "global.restartPrompt": 2, - "//user": 1, - "HUD": 1, - "settings": 1, - "global.timerPos": 2, - "global.killLogPos": 2, - "global.kothHudPos": 2, - "global.clientPassword": 1, - "global.shuffleRotation": 2, - "global.timeLimitMins": 2, - "max": 2, - "global.serverPassword": 2, - "global.mapRotationFile": 1, - "global.serverName": 2, - "global.welcomeMessage": 2, - "global.caplimit": 3, - "global.caplimitBkup": 1, - "global.autobalance": 2, - "global.Server_RespawntimeSec": 4, - "global.rewardKey": 1, - "unhex": 1, - "global.rewardId": 1, - "global.mapdownloadLimitBps": 2, - "isBetaVersion": 1, - "global.attemptPortForward": 2, - "global.serverPluginList": 3, - "global.serverPluginsRequired": 2, - "CrosshairFilename": 5, - "CrosshairRemoveBG": 4, - "global.queueJumping": 2, - "global.backgroundHash": 2, - "global.backgroundTitle": 2, - "global.backgroundURL": 2, - "global.backgroundShowVersion": 2, - "readClasslimitsFromIni": 1, - "global.currentMapArea": 1, - "global.totalMapAreas": 1, - "global.setupTimer": 1, - "global.serverPluginsInUse": 1, - "global.pluginPacketBuffers": 1, - "global.pluginPacketPlayers": 1, - "ini_write_string": 10, - "ini_key_delete": 1, - "global.classlimits": 10, - "CLASS_SCOUT": 1, - "CLASS_HEAVY": 2, - "CLASS_DEMOMAN": 1, - "CLASS_SPY": 1, - "//screw": 1, - "will": 1, - "start": 1, - "//map_truefort": 1, - "maps": 37, - "//map_2dfort": 1, - "//map_conflict": 1, - "//map_classicwell": 1, - "//map_waterway": 1, - "//map_orange": 1, - "//map_dirtbowl": 1, - "//map_egypt": 1, - "//arena_montane": 1, - "//arena_lumberyard": 1, - "//gen_destroy": 1, - "//koth_valley": 1, - "//koth_corinth": 1, - "//koth_harvest": 1, - "//dkoth_atalia": 1, - "//dkoth_sixties": 1, - "//Server": 1, - "respawn": 1, - "time": 1, - "calculator.": 1, - "Converts": 1, - "frame.": 1, - "read": 1, - "multiply": 1, - "hehe": 1, - "global.Server_Respawntime": 3, - "global.mapchanging": 1, - "ini_close": 2, - "global.protocolUuid": 2, - "parseUuid": 2, - "PROTOCOL_UUID": 1, - "global.gg2lobbyId": 2, - "GG2_LOBBY_UUID": 1, - "initRewards": 1, - "IPRaw": 3, - "portRaw": 3, - "doubleCheck": 8, - "global.launchMap": 5, - "parameter_count": 1, - "parameter_string": 8, - "global.serverPort": 1, - "global.serverIP": 1, - "global.isHost": 1, - "Client": 1, - "global.customMapdesginated": 2, - "fileHandle": 6, - "mapname": 9, - "file_text_open_read": 1, - "file_text_eof": 1, - "file_text_read_string": 1, - "starts": 1, - "tab": 2, - "string_delete": 1, - "delete": 1, - "comment": 1, - "starting": 1, - "file_text_readln": 1, - "file_text_close": 1, - "load": 1, - "ini": 1, - "Maps": 9, - "section": 1, - "//Set": 1, - "rotation": 1, - "sort_list": 7, - "*maps": 1, - "ds_list_sort": 1, - "mod": 1, - "global.gg2Font": 2, - "font_add_sprite": 2, - "gg2FontS": 1, - "global.countFont": 1, - "countFontS": 1, - "draw_set_font": 1, - "cursor_sprite": 1, - "CrosshairS": 5, - "directory_exists": 2, - "directory_create": 2, - "AudioControl": 1, - "SSControl": 1, - "message_background": 1, - "popupBackgroundB": 1, - "message_button": 1, - "popupButtonS": 1, - "message_text_font": 1, - "message_button_font": 1, - "message_input_font": 1, - "//Key": 1, - "Mapping": 1, - "global.jump": 1, - "global.down": 1, - "global.left": 1, - "global.right": 1, - "global.attack": 1, - "MOUSE_LEFT": 1, - "global.special": 1, - "MOUSE_RIGHT": 1, - "global.taunt": 1, - "global.chat1": 1, - "global.chat2": 1, - "global.chat3": 1, - "global.medic": 1, - "global.drop": 1, - "global.changeTeam": 1, - "global.changeClass": 1, - "global.showScores": 1, - "vk_shift": 1, - "calculateMonthAndDay": 1, - "loadplugins": 1, - "registry_set_root": 1, - "HKLM": 1, - "global.NTKernelVersion": 1, - "registry_read_string_ext": 1, - "CurrentVersion": 1, - "SIC": 1, - "sprite_replace": 1, - "sprite_set_offset": 1, - "sprite_get_width": 1, - "/2": 2, - "sprite_get_height": 1, - "AudioControlToggleMute": 1, - "room_goto_fix": 2, - "Menu": 2, - "__jso_gmt_tuple": 1, - "//Position": 1, - "address": 1, - "table": 1, - "pos": 2, - "addr_table": 2, - "*argument_count": 1, - "//Build": 1, - "tuple": 1, - "ca": 1, - "isstr": 1, - "datastr": 1, - "argument_count": 1, - "//Check": 1, - "argument": 10, - "Unexpected": 18, - "position": 16, - "f": 5, - "JSON": 5, - "string.": 5, - "Cannot": 5, - "parse": 3, - "boolean": 3, - "value": 13, - "expecting": 9, - "digit.": 9, - "e": 4, - "E": 4, - "dot": 1, - "an": 24, - "integer": 6, - "Expected": 6, - "least": 6, - "arguments": 26, - "got": 6, - "find": 10, - "lookup.": 4, - "indices": 1, - "nested": 27, - "lists": 6, - "Index": 1, - "overflow": 4, - "Recursive": 1, - "abcdef": 1, - "number": 7, - "num": 1, - "assert_true": 1, - "_assert_error_popup": 2, - "string_repeat": 2, - "_assert_newline": 2, - "assert_false": 1, - "assert_equal": 1, - "//Safe": 1, - "equality": 1, - "check": 1, - "won": 1, - "support": 1, - "instead": 1, - "_assert_debug_value": 1, - "//String": 1, - "os_browser": 1, - "browser_not_a_browser": 1, - "string_replace_all": 1, - "//Numeric": 1, - "GMTuple": 1, - "jso_encode_string": 1, - "encode": 8, - "escape": 2, - "jso_encode_map": 4, - "one": 42, - "key1": 3, - "key2": 3, - "multi": 7, - "jso_encode_list": 3, - "three": 36, - "_jso_decode_string": 5, - "small": 1, - "quick": 2, - "brown": 2, - "fox": 2, - "over": 2, - "lazy": 2, - "dog.": 2, - "simple": 1, - "Waahoo": 1, - "negg": 1, - "mixed": 1, - "_jso_decode_boolean": 2, - "_jso_decode_real": 11, - "standard": 1, - "zero": 4, - "signed": 2, - "decimal": 1, - "digits": 1, - "positive": 7, - "negative": 7, - "exponent": 4, - "_jso_decode_integer": 3, - "_jso_decode_map": 14, - "didn": 14, - "include": 14, - "right": 14, - "prefix": 14, - "#1": 14, - "#2": 14, - "entry": 29, - "pi": 2, - "bool": 2, - "waahoo": 10, - "woohah": 8, - "mix": 4, - "_jso_decode_list": 14, - "woo": 2, - "Empty": 4, - "equal": 20, - "other.": 12, - "junk": 2, - "info": 1, - "taxi": 1, - "An": 4, - "filled": 4, - "map.": 2, - "A": 24, - "B": 18, - "C": 8, - "same": 6, - "content": 4, - "entered": 4, - "different": 12, - "orders": 4, - "D": 1, - "keys": 2, - "values": 4, - "six": 1, - "corresponding": 4, - "types": 4, - "other": 4, - "crash.": 4, - "list.": 2, - "Lists": 4, - "two": 16, - "entries": 2, - "also": 2, - "jso_map_check": 9, - "existing": 9, - "single": 11, - "jso_map_lookup": 3, - "wrong": 10, - "trap": 2, - "jso_map_lookup_type": 3, - "type": 8, - "four": 21, - "inexistent": 11, - "multiple": 20, - "jso_list_check": 8, - "jso_list_lookup": 3, - "jso_list_lookup_type": 3, - "inner": 1, - "indexing": 1, - "bad": 1, - "jso_cleanup_map": 1, - "one_map": 1, - "hashList": 5, - "pluginname": 9, - "pluginhash": 4, - "realhash": 1, - "handle": 1, - "filesize": 1, - "progress": 1, - "tempfile": 1, - "tempdir": 1, - "lastContact": 2, - "isCached": 2, - "isDebug": 2, - "split": 1, - "checkpluginname": 1, - "ds_list_find_index": 1, - ".zip": 3, - "ServerPluginsCache": 6, - "@": 5, - ".zip.tmp": 1, - ".tmp": 2, - "ServerPluginsDebug": 1, - "Warning": 2, - "being": 2, - "loaded": 2, - "ServerPluginsDebug.": 2, - "Make": 2, - "sure": 2, - "clients": 1, - "they": 1, - "may": 2, - "unable": 2, - "connect.": 2, - "you": 1, - "Downloading": 1, - "last_plugin.log": 2, - "plugin.gml": 1, - "playerId": 11, - "commandLimitRemaining": 4, - "variable_local_exists": 4, - "commandReceiveState": 1, - "commandReceiveExpectedBytes": 1, - "commandReceiveCommand": 1, - "player.socket": 12, - "player.commandReceiveExpectedBytes": 7, - "player.commandReceiveState": 7, - "player.commandReceiveCommand": 4, - "commandBytes": 2, - "commandBytesInvalidCommand": 1, - "commandBytesPrefixLength1": 1, - "commandBytesPrefixLength2": 1, - "default": 1, - "read_ushort": 2, - "PLAYER_LEAVE": 1, - "PLAYER_CHANGECLASS": 1, - "class": 8, - "getCharacterObject": 2, - "player.object": 12, - "SpawnRoom": 2, - "lastDamageDealer": 8, - "sendEventPlayerDeath": 4, - "BID_FAREWELL": 4, - "doEventPlayerDeath": 4, - "secondToLastDamageDealer": 2, - "lastDamageDealer.object": 2, - "lastDamageDealer.object.healer": 4, - "player.alarm": 4, - "<=0)>": 1, - "checkClasslimits": 2, - "ServerPlayerChangeclass": 2, - "sendBuffer": 1, - "PLAYER_CHANGETEAM": 1, - "newTeam": 7, - "balance": 5, - "redSuperiority": 6, - "calculate": 1, - "which": 1, - "Player": 1, - "TEAM_SPECTATOR": 1, - "newClass": 4, - "ServerPlayerChangeteam": 1, - "ServerBalanceTeams": 1, - "CHAT_BUBBLE": 2, - "bubbleImage": 5, - "global.aFirst": 1, - "write_ubyte": 20, - "setChatBubble": 1, - "BUILD_SENTRY": 2, - "collision_circle": 1, - "player.object.x": 3, - "player.object.y": 3, - "Sentry": 1, - "player.object.nutsNBolts": 1, - "player.sentry": 2, - "player.object.onCabinet": 1, - "write_ushort": 2, - "global.serializeBuffer": 3, - "player.object.x*5": 1, - "player.object.y*5": 1, - "write_byte": 1, - "player.object.image_xscale": 2, - "buildSentry": 1, - "DESTROY_SENTRY": 1, - "DROP_INTEL": 1, - "player.object.intel": 1, - "sendEventDropIntel": 1, - "doEventDropIntel": 1, - "OMNOMNOMNOM": 2, - "player.humiliated": 1, - "player.object.taunting": 1, - "player.object.omnomnomnom": 1, - "player.object.canEat": 1, - "omnomnomnomend": 2, - "xscale": 1, - "TOGGLE_ZOOM": 2, - "toggleZoom": 1, - "PLAYER_CHANGENAME": 2, - "nameLength": 4, - "socket_receivebuffer_size": 3, - "KICK": 2, - "KICK_NAME": 1, - "current_time": 2, - "lastNamechange": 2, - "INPUTSTATE": 1, - "keyState": 1, - "netAimDirection": 1, - "aimDirection": 1, - "netAimDirection*360/65536": 1, - "event_user": 1, - "REWARD_REQUEST": 1, - "player.rewardId": 1, - "player.challenge": 2, - "rewardCreateChallenge": 1, - "REWARD_CHALLENGE_CODE": 1, - "write_binstring": 1, - "REWARD_CHALLENGE_RESPONSE": 1, - "answer": 3, - "authbuffer": 1, - "read_binstring": 1, - "rewardAuthStart": 1, - "challenge": 1, - "rewardId": 1, - "PLUGIN_PACKET": 1, - "packetID": 3, - "buf": 5, - "success": 3, - "_PluginPacketPush": 1, - "KICK_BAD_PLUGIN_PACKET": 1, - "CLIENT_SETTINGS": 2, - "mirror": 4, - "player.queueJump": 1, - "global.levelType": 22, - "//global.currLevel": 1, - "global.currLevel": 22, - "global.hadDarkLevel": 4, - "global.startRoomX": 1, - "global.startRoomY": 1, - "global.endRoomX": 1, - "global.endRoomY": 1, - "oGame.levelGen": 2, - "j": 14, - "global.roomPath": 1, - "k": 5, - "global.lake": 3, - "isLevel": 1, - "999": 2, - "levelType": 2, - "16": 14, - "656": 3, - "oDark": 2, - "invincible": 2, - "sDark": 1, - "oTemple": 2, - "cityOfGold": 1, - "sTemple": 2, - "lake": 1, - "i*16": 8, - "j*16": 6, - "oLush": 2, - "obj.sprite_index": 4, - "sLush": 2, - "obj.invincible": 3, - "oBrick": 1, - "sBrick": 1, - "global.cityOfGold": 2, - "*16": 2, - "//instance_create": 2, - "oSpikes": 1, - "background_index": 1, - "bgTemple": 1, - "global.temp1": 1, - "global.gameStart": 3, - "scrLevelGen": 1, - "global.cemetary": 3, - "rand": 10, - "global.probCemetary": 1, - "oRoom": 1, - "scrRoomGen": 1, - "global.blackMarket": 3, - "scrRoomGenMarket": 1, - "scrRoomGen2": 1, - "global.yetiLair": 2, - "scrRoomGenYeti": 1, - "scrRoomGen3": 1, - "scrRoomGen4": 1, - "scrRoomGen5": 1, - "global.darkLevel": 4, - "global.noDarkLevel": 1, - "global.probDarkLevel": 1, - "oPlayer1.x": 2, - "oPlayer1.y": 2, - "oFlare": 1, - "global.genUdjatEye": 4, - "global.madeUdjatEye": 1, - "global.genMarketEntrance": 4, - "global.madeMarketEntrance": 1, - "////////////////////////////": 2, - "global.temp2": 1, - "isRoom": 3, - "scrEntityGen": 1, - "oEntrance": 1, - "global.customLevel": 1, - "oEntrance.x": 1, - "oEntrance.y": 1, - "global.snakePit": 1, - "global.alienCraft": 1, - "global.sacrificePit": 1, - "oPlayer1": 1, - "scrSetupWalls": 3, - "global.graphicsHigh": 1, - "tile_add": 4, - "bgExtrasLush": 1, - "*rand": 12, - "bgExtrasIce": 1, - "bgExtrasTemple": 1, - "bgExtras": 1, - "global.murderer": 1, - "global.thiefLevel": 1, - "isRealLevel": 1, - "oExit": 1, - "oShopkeeper": 1, - "obj.status": 1, - "oTreasure": 1, - "oWater": 1, - "sWaterTop": 1, - "sLavaTop": 1, - "scrCheckWaterTop": 1, - "global.temp3": 1 - }, - "GAP": { - "#############################################################################": 63, - "##": 766, - "#W": 4, - "example.gd": 2, - "This": 10, - "file": 7, - "contains": 7, - "a": 113, - "sample": 2, - "of": 114, - "GAP": 15, - "declaration": 1, - "file.": 3, - "DeclareProperty": 2, - "(": 721, - "IsLeftModule": 6, - ")": 722, - ";": 569, - "DeclareGlobalFunction": 5, - "#C": 7, - "IsQuuxFrobnicator": 1, - "": 3, - "": 28, - "": 7, - "Name=": 33, - "Arg=": 33, - "Type=": 7, - "": 28, - "Tests": 1, - "whether": 5, - "R": 5, - "is": 72, - "quux": 1, - "frobnicator.": 1, - "": 28, - "": 28, - "DeclareSynonym": 17, - "IsField": 1, - "and": 102, - "IsGroup": 1, - "implementation": 1, - "#M": 20, - "SomeOperation": 1, - "": 2, - "performs": 1, - "some": 2, - "operation": 1, - "on": 5, - "InstallMethod": 18, - "SomeProperty": 1, - "[": 145, - "]": 169, - "function": 37, - "M": 7, - "if": 103, - "IsFreeLeftModule": 3, - "not": 49, - "IsTrivial": 1, - "then": 128, - "return": 41, - "true": 21, - "fi": 91, - "TryNextMethod": 7, - "end": 34, - "#F": 17, - "SomeGlobalFunction": 2, - "A": 9, - "global": 1, - "variadic": 1, - "funfion.": 1, - "InstallGlobalFunction": 5, - "arg": 16, - "Length": 14, - "+": 9, - "*": 12, - "elif": 21, - "-": 67, - "else": 25, - "Error": 7, - "#": 73, - "SomeFunc": 1, - "x": 14, - "y": 8, - "local": 16, - "z": 3, - "func": 3, - "tmp": 20, - "j": 3, - "mod": 2, - "List": 6, - "while": 5, - "do": 18, - "for": 53, - "in": 64, - "Print": 24, - "od": 15, - "repeat": 1, - "until": 1, - "<": 17, - "Magic.gd": 1, - "AutoDoc": 4, - "package": 10, - "Copyright": 6, - "Max": 2, - "Horn": 2, - "JLU": 2, - "Giessen": 2, - "Sebastian": 2, - "Gutsche": 2, - "University": 4, - "Kaiserslautern": 2, - "SHEBANG#!#! @Description": 1, - "SHEBANG#!#! This": 1, - "SHEBANG#!#! any": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! ": 5, - "SHEBANG#!#! It": 3, - "SHEBANG#!#! That": 1, - "SHEBANG#!#! of": 1, - "SHEBANG#!#! (with": 1, - "SHEBANG#!#! main": 1, - "SHEBANG#!#! XML": 1, - "SHEBANG#!#! other": 1, - "SHEBANG#!#! as": 1, - "SHEBANG#!#! to": 2, - "SHEBANG#!#! Secondly,": 1, - "SHEBANG#!#! page": 1, - "SHEBANG#!#! (name,": 1, - "SHEBANG#!#! on": 1, - "SHEBANG#!Item>": 25, - "SHEBANG#!#! tags": 1, - "SHEBANG#!#! This": 1, - "SHEBANG#!#! produce": 1, - "SHEBANG#!#! MathJaX": 1, - "SHEBANG#!#! generated": 1, - "SHEBANG#!#! this,": 1, - "SHEBANG#!#! supplementary": 1, - "SHEBANG#!#! (see": 1, - "SHEBANG#!Enum>": 1, - "SHEBANG#!#! For": 1, - "SHEBANG#!>": 11, - "SHEBANG#!#! The": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!Mark>": 22, - "SHEBANG#!#! The": 2, - "SHEBANG#!A>": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! ": 4, - "SHEBANG#!#! This": 4, - "SHEBANG#!#! Directory()": 1, - "SHEBANG#!#! (i.e.": 1, - "SHEBANG#!#! Default": 1, - "SHEBANG#!#! for": 1, - "SHEBANG#!#! The": 3, - "SHEBANG#!#! record.": 3, - "SHEBANG#!#! equivalent": 3, - "SHEBANG#!#! enabled.": 3, - "SHEBANG#!#! package's": 1, - "SHEBANG#!#! In": 3, - "SHEBANG#!K>),": 3, - "SHEBANG#!#! If": 3, - "####": 34, - "TODO": 3, - "mention": 1, - "merging": 1, - "with": 24, - "PackageInfo.AutoDoc": 1, - "SHEBANG#!#! ": 3, - "SHEBANG#!#! ": 13, - "SHEBANG#!#! A": 6, - "SHEBANG#!#! If": 2, - "SHEBANG#!#! your": 1, - "SHEBANG#!#! you": 1, - "SHEBANG#!#! to": 4, - "SHEBANG#!#! is": 1, - "SHEBANG#!#! of": 2, - "SHEBANG#!#! This": 3, - "SHEBANG#!#! i.e.": 1, - "SHEBANG#!#! The": 2, - "SHEBANG#!#! then": 1, - "The": 21, - "param": 1, - "bit": 2, - "strange.": 1, - "We": 4, - "should": 2, - "probably": 2, - "change": 1, - "it": 8, - "to": 37, - "be": 24, - "more": 3, - "general": 1, - "as": 23, - "one": 11, - "might": 1, - "want": 1, - "define": 2, - "other": 4, - "entities...": 1, - "For": 10, - "now": 1, - "we": 3, - "document": 1, - "leave": 1, - "us": 1, - "the": 136, - "choice": 1, - "revising": 1, - "how": 1, - "works.": 1, - "": 2, - "": 117, - "entities": 2, - "": 117, - "": 2, - "": 2, - "list": 16, - "names": 1, - "or": 13, - "which": 8, - "are": 14, - "used": 10, - "corresponding": 1, - "XML": 4, - "entities.": 1, - "example": 3, - "set": 6, - "containing": 1, - "string": 6, - "": 2, - "SomePackage": 3, - "": 2, - "following": 4, - "added": 1, - "preamble": 1, - "": 2, - "CDATA": 2, - "ENTITY": 2, - "": 2, - "allows": 1, - "you": 3, - "write": 3, - "&": 37, - "amp": 1, - "your": 1, - "documentation": 2, - "reference": 1, - "that": 39, - "package.": 2, - "If": 11, - "another": 1, - "type": 2, - "entity": 1, - "desired": 1, - "can": 12, - "simply": 2, - "add": 2, - "instead": 1, - "two": 13, - "entry": 2, - "list.": 2, - "It": 1, - "will": 5, - "handled": 3, - "so": 3, - "please": 1, - "careful.": 1, - "": 2, - "SHEBANG#!#! for": 1, - "SHEBANG#!#! statement": 1, - "SHEBANG#!#! components": 2, - "SHEBANG#!#! example,": 1, - "SHEBANG#!#! acknowledgements": 1, - "SHEBANG#!#! ": 6, - "SHEBANG#!#! by": 1, - "SHEBANG#!#! package": 1, - "SHEBANG#!#! Usually": 2, - "SHEBANG#!#! are": 2, - "SHEBANG#!#! Default": 3, - "SHEBANG#!#! When": 1, - "SHEBANG#!#! they": 1, - "Document": 1, - "section_intros": 2, - "later": 1, - "on.": 1, - "However": 2, - "note": 2, - "thanks": 1, - "new": 2, - "comment": 1, - "syntax": 1, - "only": 5, - "remaining": 1, - "use": 5, - "this": 15, - "seems": 1, - "ability": 1, - "specify": 3, - "order": 1, - "chapters": 1, - "sections.": 1, - "TODO.": 1, - "SHEBANG#!#! files": 1, - "Note": 3, - "strictly": 1, - "speaking": 1, - "also": 3, - "scaffold.": 1, - "uses": 2, - "scaffolding": 2, - "mechanism": 4, - "really": 4, - "necessary": 2, - "custom": 1, - "name": 2, - "main": 1, - "Thus": 3, - "purpose": 1, - "parameter": 1, - "cater": 1, - "packages": 5, - "have": 3, - "existing": 1, - "using": 2, - "different": 2, - "wish": 1, - "scaffolding.": 1, - "explain": 1, - "why": 2, - "allow": 1, - "specifying": 1, - "gapdoc.main.": 1, - "code": 1, - "still": 1, - "honor": 1, - "though": 1, - "just": 1, - "case.": 1, - "SHEBANG#!#! In": 1, - "maketest": 12, - "part.": 1, - "Still": 1, - "under": 1, - "construction.": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! The": 1, - "SHEBANG#!#! a": 1, - "SHEBANG#!#! which": 1, - "SHEBANG#!#! the": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! ": 2, - "SHEBANG#!#! Sets": 1, - "SHEBANG#!#! A": 1, - "SHEBANG#!#! will": 1, - "SHEBANG#!#! @Returns": 1, - "SHEBANG#!#! @Arguments": 1, - "SHEBANG#!#! @ChapterInfo": 1, - "Magic.gi": 1, - "BindGlobal": 7, - "str": 8, - "suffix": 3, - "n": 31, - "m": 8, - "{": 21, - "}": 21, - "i": 25, - "d": 16, - "IsDirectoryPath": 1, - "CreateDir": 2, - "currently": 1, - "undocumented": 1, - "fail": 18, - "LastSystemError": 1, - ".message": 1, - "false": 7, - "pkg": 32, - "subdirs": 2, - "extensions": 1, - "d_rel": 6, - "files": 4, - "result": 9, - "DirectoriesPackageLibrary": 2, - "IsEmpty": 6, - "continue": 3, - "Directory": 5, - "DirectoryContents": 1, - "Sort": 1, - "AUTODOC_GetSuffix": 2, - "IsReadableFile": 2, - "Filename": 8, - "Add": 4, - "Make": 1, - "callable": 1, - "package_name": 1, - "AutoDocWorksheet.": 1, - "Which": 1, - "create": 1, - "worksheet": 1, - "package_info": 3, - "opt": 3, - "scaffold": 12, - "gapdoc": 7, - "autodoc": 8, - "pkg_dir": 5, - "doc_dir": 18, - "doc_dir_rel": 3, - "title_page": 7, - "tree": 8, - "is_worksheet": 13, - "position_document_class": 7, - "gapdoc_latex_option_record": 4, - "LowercaseString": 3, - "rec": 20, - "DirectoryCurrent": 1, - "PackageInfo": 1, - "key": 3, - "val": 4, - "ValueOption": 1, - "opt.": 1, - "IsBound": 39, - "opt.dir": 4, - "IsString": 7, - "IsDirectory": 1, - "AUTODOC_CreateDirIfMissing": 1, - "opt.scaffold": 5, - "package_info.AutoDoc": 3, - "IsRecord": 7, - "IsBool": 4, - "AUTODOC_APPEND_RECORD_WRITEONCE": 3, - "AUTODOC_WriteOnce": 10, - "opt.autodoc": 5, - "Concatenation": 15, - "package_info.Dependencies.NeededOtherPackages": 1, - "package_info.Dependencies.SuggestedOtherPackages": 1, - "ForAny": 1, - "autodoc.files": 7, - "autodoc.scan_dirs": 5, - "autodoc.level": 3, - "PushOptions": 1, - "level_value": 1, - "Append": 2, - "AUTODOC_FindMatchingFiles": 2, - "opt.gapdoc": 5, - "opt.maketest": 4, - "gapdoc.main": 8, - "package_info.PackageDoc": 3, - ".BookName": 2, - "gapdoc.bookname": 4, - "#Print": 1, - "gapdoc.files": 9, - "gapdoc.scan_dirs": 3, - "Set": 1, - "Number": 1, - "ListWithIdenticalEntries": 1, - "f": 11, - "DocumentationTree": 1, - "autodoc.section_intros": 2, - "AUTODOC_PROCESS_INTRO_STRINGS": 1, - "Tree": 2, - "AutoDocScanFiles": 1, - "PackageName": 2, - "scaffold.TitlePage": 4, - "scaffold.TitlePage.Title": 2, - ".TitlePage.Title": 2, - "Position": 2, - "Remove": 2, - "JoinStringsWithSeparator": 1, - "ReplacedString": 2, - "Syntax": 1, - "scaffold.document_class": 7, - "PositionSublist": 5, - "GAPDoc2LaTeXProcs.Head": 14, - "..": 6, - "scaffold.latex_header_file": 2, - "StringFile": 2, - "scaffold.gapdoc_latex_options": 4, - "RecNames": 1, - "scaffold.gapdoc_latex_options.": 5, - "IsList": 1, - "scaffold.includes": 4, - "scaffold.bib": 7, - "Unbind": 1, - "scaffold.main_xml_file": 2, - ".TitlePage": 1, - "ExtractTitleInfoFromPackageInfo": 1, - "CreateTitlePage": 1, - "scaffold.MainPage": 2, - "scaffold.dir": 1, - "scaffold.book_name": 1, - "CreateMainPage": 1, - "WriteDocumentation": 1, - "SetGapDocLaTeXOptions": 1, - "MakeGAPDocDoc": 1, - "CopyHTMLStyleFiles": 1, - "GAPDocManualLab": 1, - "maketest.folder": 3, - "maketest.scan_dir": 3, - "CreateMakeTest": 1, - "PackageInfo.g": 2, - "cvec": 1, - "s": 4, - "template": 1, - "SetPackageInfo": 1, - "Subtitle": 1, - "Version": 1, - "Date": 1, - "dd/mm/yyyy": 1, - "format": 2, - "Information": 1, - "about": 3, - "authors": 1, - "maintainers.": 1, - "Persons": 1, - "LastName": 1, - "FirstNames": 1, - "IsAuthor": 1, - "IsMaintainer": 1, - "Email": 1, - "WWWHome": 1, - "PostalAddress": 1, - "Place": 1, - "Institution": 1, - "Status": 2, - "information.": 1, - "Currently": 1, - "cases": 2, - "recognized": 1, - "successfully": 2, - "refereed": 2, - "developers": 1, - "agreed": 1, - "distribute": 1, - "them": 1, - "core": 1, - "system": 1, - "development": 1, - "versions": 1, - "all": 18, - "You": 1, - "must": 6, - "provide": 2, - "next": 6, - "entries": 8, - "status": 1, - "because": 2, - "was": 1, - "#CommunicatedBy": 1, - "#AcceptDate": 1, - "PackageWWWHome": 1, - "README_URL": 1, - ".PackageWWWHome": 2, - "PackageInfoURL": 1, - "ArchiveURL": 1, - ".Version": 2, - "ArchiveFormats": 1, - "Here": 2, - "short": 1, - "abstract": 1, - "explaining": 1, - "content": 1, - "HTML": 1, - "overview": 1, - "Web": 1, - "page": 1, - "an": 17, - "URL": 1, - "Webpage": 1, - "detailed": 1, - "information": 1, - "than": 1, - "few": 1, - "lines": 1, - "less": 1, - "ok": 1, - "Please": 1, - "specifing": 1, - "names.": 1, - "AbstractHTML": 1, - "PackageDoc": 1, - "BookName": 1, - "ArchiveURLSubset": 1, - "HTMLStart": 1, - "PDFFile": 1, - "SixFile": 1, - "LongTitle": 1, - "Dependencies": 1, - "NeededOtherPackages": 1, - "SuggestedOtherPackages": 1, - "ExternalConditions": 1, - "AvailabilityTest": 1, - "SHOW_STAT": 1, - "DirectoriesPackagePrograms": 1, - "#Info": 1, - "InfoWarning": 1, - "*Optional*": 2, - "but": 1, - "recommended": 1, - "path": 1, - "relative": 1, - "root": 1, - "many": 1, - "tests": 1, - "functionality": 1, - "sensible.": 1, - "#TestFile": 1, - "keyword": 1, - "related": 1, - "topic": 1, - "Keywords": 1, - "vspc.gd": 1, - "library": 2, - "Thomas": 2, - "Breuer": 2, - "#Y": 6, - "C": 11, - "Lehrstuhl": 2, - "D": 36, - "r": 2, - "Mathematik": 2, - "RWTH": 2, - "Aachen": 2, - "Germany": 2, - "School": 2, - "Math": 2, - "Comp.": 2, - "Sci.": 2, - "St": 2, - "Andrews": 2, - "Scotland": 2, - "Group": 3, - "declares": 1, - "operations": 2, - "vector": 67, - "spaces.": 4, - "bases": 5, - "free": 3, - "left": 15, - "modules": 1, - "found": 1, - "": 10, - "lib/basis.gd": 1, - ".": 257, - "IsLeftOperatorRing": 1, - "IsLeftOperatorAdditiveGroup": 2, - "IsRing": 1, - "IsAssociativeLOpDProd": 2, - "#T": 6, - "IsLeftOperatorRingWithOne": 2, - "IsRingWithOne": 1, - "IsLeftVectorSpace": 3, - "": 38, - "IsVectorSpace": 26, - "<#GAPDoc>": 17, - "Label=": 19, - "": 12, - "space": 74, - "": 12, - "module": 2, - "see": 30, - "nbsp": 30, - "": 71, - "Func=": 40, - "over": 24, - "division": 15, - "ring": 14, - "Chapter": 3, - "Chap=": 3, - "

": 23, - "Whenever": 1, - "talk": 1, - "": 42, - "F": 61, - "": 41, - "V": 152, - "additive": 1, - "group": 2, - "acts": 1, - "via": 6, - "multiplication": 1, - "from": 5, - "such": 4, - "action": 4, - "addition": 1, - "right": 2, - "distributive.": 1, - "accessed": 1, - "value": 9, - "attribute": 2, - "Vector": 1, - "spaces": 15, - "always": 1, - "Filt=": 4, - "synonyms.": 1, - "<#/GAPDoc>": 17, - "IsLeftActedOnByDivisionRing": 4, - "InstallTrueMethod": 4, - "IsGaussianSpace": 10, - "": 14, - "filter": 3, - "Sect=": 6, - "row": 17, - "matrix": 5, - "field": 12, - "say": 1, - "indicates": 3, - "vectors": 16, - "matrices": 5, - "respectively": 1, - "contained": 4, - "In": 3, - "case": 2, - "called": 1, - "Gaussian": 19, - "space.": 5, - "Bases": 1, - "computed": 2, - "elimination": 5, - "given": 4, - "generators.": 1, - "": 12, - "": 12, - "gap": 41, - "mats": 5, - "VectorSpace": 13, - "Rationals": 13, - "E": 2, - "element": 2, - "extension": 3, - "Field": 1, - "": 12, - "DeclareFilter": 1, - "IsFullMatrixModule": 1, - "IsFullRowModule": 1, - "IsDivisionRing": 5, - "": 12, - "nontrivial": 1, - "associative": 1, - "algebra": 2, - "multiplicative": 1, - "inverse": 1, - "each": 2, - "nonzero": 3, - "element.": 1, - "every": 1, - "possibly": 1, - "itself": 1, - "being": 2, - "thus": 1, - "property": 2, - "get": 1, - "usually": 1, - "represented": 1, - "coefficients": 3, - "stored": 1, - "DeclareSynonymAttr": 4, - "IsMagmaWithInversesIfNonzero": 1, - "IsNonTrivial": 1, - "IsAssociative": 1, - "IsEuclideanRing": 1, - "#A": 7, - "GeneratorsOfLeftVectorSpace": 1, - "GeneratorsOfVectorSpace": 2, - "": 7, - "Attr=": 10, - "returns": 14, - "generate": 1, - "FullRowSpace": 5, - "GeneratorsOfLeftOperatorAdditiveGroup": 2, - "CanonicalBasis": 3, - "supports": 1, - "canonical": 6, - "basis": 14, - "otherwise": 2, - "": 3, - "": 3, - "returned.": 4, - "defining": 1, - "its": 2, - "uniquely": 1, - "determined": 1, - "by": 14, - "exist": 1, - "same": 6, - "acting": 8, - "domain": 17, - "equality": 1, - "these": 5, - "decided": 1, - "comparing": 1, - "bases.": 1, - "exact": 1, - "meaning": 1, - "depends": 1, - "Canonical": 1, - "defined": 3, - "designs": 1, - "kind": 1, - "defines": 1, - "method": 4, - "installs": 1, - "call": 1, - "On": 1, - "hand": 1, - "install": 1, - "calls": 1, - "": 10, - "CANONICAL_BASIS_FLAGS": 1, - "": 9, - "vecs": 4, - "B": 16, - "": 8, - "3": 5, - "generators": 16, - "BasisVectors": 4, - "DeclareAttribute": 4, - "IsRowSpace": 2, - "consists": 7, - "IsRowModule": 1, - "IsGaussianRowSpace": 1, - "scalars": 2, - "occur": 2, - "vectors.": 2, - "calculations.": 2, - "Otherwise": 3, - "non": 4, - "Gaussian.": 2, - "need": 3, - "flag": 2, - "down": 2, - "methods": 4, - "delegate": 2, - "ones.": 2, - "IsNonGaussianRowSpace": 1, - "expresses": 2, - "cannot": 2, - "compute": 3, - "nice": 4, - "way.": 2, - "Let": 4, - "K": 4, - "spanned": 4, - "Then": 1, - "/": 12, - "cap": 1, - "v": 5, - "replacing": 1, - "forming": 1, - "concatenation.": 1, - "So": 2, - "associated": 3, - "DeclareHandlingByNiceBasis": 2, - "IsMatrixSpace": 2, - "IsMatrixModule": 1, - "IsGaussianMatrixSpace": 1, - "IsNonGaussianMatrixSpace": 1, - "irrelevant": 1, - "concatenation": 1, - "rows": 1, - "necessarily": 1, - "NormedRowVectors": 2, - "normed": 1, - "finite": 5, - "those": 1, - "first": 1, - "component.": 1, - "yields": 1, - "natural": 1, - "dimensional": 5, - "subspaces": 17, - "GF": 22, - "*Z": 5, - "Z": 6, - "Action": 1, - "GL": 1, - "OnLines": 1, - "TrivialSubspace": 2, - "subspace": 7, - "zero": 4, - "triv": 2, - "0": 2, - "AsSet": 1, - "TrivialSubmodule": 1, - "": 5, - "": 2, - "collection": 3, - "gens": 16, - "elements": 7, - "optional": 3, - "argument": 1, - "empty.": 1, - "known": 5, - "linearly": 3, - "independent": 3, - "particular": 1, - "dimension": 9, - "immediately": 2, - "formed": 1, - "argument.": 1, - "2": 1, - "Subspace": 4, - "generated": 1, - "SubspaceNC": 2, - "subset": 4, - "empty": 1, - "trivial": 1, - "parent": 3, - "returned": 3, - "does": 1, - "except": 1, - "omits": 1, - "check": 5, - "both": 2, - "W": 32, - "1": 3, - "Submodule": 1, - "SubmoduleNC": 1, - "#O": 2, - "AsVectorSpace": 4, - "view": 4, - "": 2, - "domain.": 1, - "form": 2, - "Oper=": 6, - "smaller": 1, - "larger": 1, - "ring.": 3, - "Dimension": 6, - "LeftActingDomain": 29, - "9": 1, - "AsLeftModule": 6, - "AsSubspace": 5, - "": 6, - "U": 12, - "collection.": 1, - "/2": 4, - "Parent": 4, - "DeclareOperation": 2, - "IsCollection": 3, - "Intersection2Spaces": 4, - "": 2, - "": 2, - "": 2, - "takes": 1, - "arguments": 1, - "intersection": 5, - "domains": 3, - "let": 1, - "their": 1, - "intersection.": 1, - "AsStruct": 2, - "equal": 1, - "either": 2, - "Substruct": 1, - "common": 1, - "Struct": 1, - "basis.": 1, - "handle": 1, - "intersections": 1, - "algebras": 2, - "ideals": 2, - "sided": 1, - "ideals.": 1, - "": 2, - "": 2, - "nonnegative": 2, - "integer": 2, - "length": 1, - "An": 2, - "alternative": 2, - "construct": 2, - "above": 2, - "FullRowModule": 2, - "FullMatrixSpace": 2, - "": 1, - "positive": 1, - "integers": 1, - "fact": 1, - "FullMatrixModule": 3, - "IsSubspacesVectorSpace": 9, - "fixed": 1, - "lies": 1, - "category": 1, - "Subspaces": 8, - "Size": 5, - "iter": 17, - "Iterator": 5, - "NextIterator": 5, - "DeclareCategory": 1, - "IsDomain": 1, - "IsFinite": 4, - "Returns": 1, - "": 1, - "Called": 2, - "k": 17, - "Special": 1, - "provided": 1, - "domains.": 1, - "IsInt": 3, - "IsSubspace": 3, - "OrthogonalSpaceInFullRowSpace": 1, - "complement": 1, - "full": 2, - "#P": 1, - "IsVectorSpaceHomomorphism": 3, - "": 2, - "": 1, - "mapping": 2, - "homomorphism": 1, - "linear": 1, - "source": 2, - "range": 1, - "b": 8, - "hold": 1, - "IsGeneralMapping": 2, - "#E": 2, - "vspc.gi": 1, - "generic": 1, - "SetLeftActingDomain": 2, - "": 2, - "external": 1, - "knows": 1, - "e.g.": 1, - "tell": 1, - "InstallOtherMethod": 3, - "IsAttributeStoringRep": 2, - "IsLeftActedOnByRing": 2, - "IsObject": 1, - "extL": 2, - "HasIsDivisionRing": 1, - "SetIsLeftActedOnByDivisionRing": 1, - "IsExtLSet": 1, - "IsIdenticalObj": 5, - "difference": 1, - "between": 1, - "shall": 1, - "CallFuncList": 1, - "FreeLeftModule": 1, - "newC": 7, - "IsSubset": 4, - "SetParent": 1, - "UseIsomorphismRelation": 2, - "UseSubsetRelation": 4, - "View": 1, - "base": 5, - "gen": 5, - "loop": 2, - "newgens": 4, - "extended": 1, - "Characteristic": 2, - "Basis": 5, - "AsField": 2, - "GeneratorsOfLeftModule": 9, - "LeftModuleByGenerators": 5, - "Zero": 5, - "Intersection": 1, - "ViewObj": 4, - "print": 1, - "no.": 1, - "HasGeneratorsOfLeftModule": 2, - "HasDimension": 1, - "override": 1, - "PrintObj": 5, - "HasZero": 1, - "": 2, - "factor": 2, - "": 1, - "ImagesSource": 1, - "NaturalHomomorphismBySubspace": 1, - "AsStructure": 3, - "Substructure": 3, - "Structure": 2, - "inters": 17, - "gensV": 7, - "gensW": 7, - "VW": 3, - "sum": 1, - "Intersection2": 4, - "IsFiniteDimensional": 2, - "Coefficients": 3, - "SumIntersectionMat": 1, - "LinearCombination": 2, - "HasParent": 2, - "SetIsTrivial": 1, - "ClosureLeftModule": 2, - "": 1, - "closure": 1, - "IsCollsElms": 1, - "HasBasis": 1, - "IsVector": 1, - "w": 3, - "easily": 1, - "UseBasis": 1, - "Methods": 1, - "collections": 1, - "#R": 1, - "IsSubspacesVectorSpaceDefaultRep": 7, - "representation": 1, - "components": 1, - "means": 1, - "DeclareRepresentation": 1, - "IsComponentObjectRep": 1, - ".dimension": 9, - ".structure": 9, - "number": 2, - "q": 20, - "prod_": 2, - "frac": 3, - "recursion": 1, - "sum_": 1, - "size": 12, - "qn": 10, - "qd": 10, - "ank": 6, - "Int": 1, - "Enumerator": 2, - "Use": 1, - "iterator": 3, - "allowed": 1, - "elms": 4, - "IsDoneIterator": 3, - ".associatedIterator": 3, - ".basis": 2, - "structure": 4, - "associatedIterator": 2, - "ShallowCopy": 2, - "IteratorByFunctions": 1, - "IsDoneIterator_Subspaces": 1, - "NextIterator_Subspaces": 1, - "ShallowCopy_Subspaces": 1, - "": 1, - "dim": 2, - "Objectify": 2, - "NewType": 2, - "CollectionsFamily": 2, - "FamilyObj": 2, - "map": 4, - "S": 4, - "Source": 1, - "Range": 1, - "IsLinearMapping": 1 - }, - "GAS": { - ".cstring": 1, - "LC0": 2, - ".ascii": 2, - ".text": 1, - ".globl": 2, - "_main": 2, - "LFB3": 4, - "pushq": 1, - "%": 6, - "rbp": 2, - "LCFI0": 3, - "movq": 1, - "rsp": 1, - "LCFI1": 2, - "leaq": 1, - "(": 1, - "rip": 1, - ")": 1, - "rdi": 1, - "call": 1, - "_puts": 1, - "movl": 1, - "eax": 1, - "leave": 1, - "ret": 1, - "LFE3": 2, - ".section": 1, - "__TEXT": 1, - "__eh_frame": 1, - "coalesced": 1, - "no_toc": 1, - "+": 2, - "strip_static_syms": 1, - "live_support": 1, - "EH_frame1": 2, - ".set": 5, - "L": 10, - "set": 10, - "LECIE1": 2, - "-": 7, - "LSCIE1": 2, - ".long": 6, - ".byte": 20, - "xc": 1, - ".align": 2, - "_main.eh": 2, - "LSFDE1": 1, - "LEFDE1": 2, - "LASFDE1": 3, - ".quad": 2, - ".": 1, - "xe": 1, - "xd": 1, - ".subsections_via_symbols": 1 - }, - "GLSL": { - "////": 4, - "High": 1, - "quality": 2, - "(": 386, - "Some": 1, - "browsers": 1, - "may": 1, - "freeze": 1, - "or": 1, - "crash": 1, - ")": 386, - "//#define": 10, - "HIGHQUALITY": 2, - "Medium": 1, - "Should": 1, - "be": 1, - "fine": 1, - "on": 3, - "all": 1, - "systems": 1, - "works": 1, - "Intel": 1, - "HD2000": 1, - "Win7": 1, - "but": 1, - "quite": 1, - "slow": 1, - "MEDIUMQUALITY": 2, - "Defaults": 1, - "REFLECTIONS": 3, - "#define": 13, - "SHADOWS": 5, - "GRASS": 3, - "SMALL_WAVES": 4, - "RAGGED_LEAVES": 5, - "DETAILED_NOISE": 3, - "LIGHT_AA": 3, - "//": 36, - "sample": 2, - "SSAA": 2, - "HEAVY_AA": 2, - "x2": 5, - "RG": 1, - "TONEMAP": 5, - "Configurations": 1, - "#ifdef": 14, - "#endif": 14, - "const": 18, - "float": 103, - "eps": 5, - "e": 4, - "-": 108, - ";": 353, - "PI": 3, - "vec3": 165, - "sunDir": 5, - "skyCol": 4, - "sandCol": 2, - "treeCol": 2, - "grassCol": 2, - "leavesCol": 4, - "leavesPos": 4, - "sunCol": 5, - "#else": 5, - "exposure": 1, - "Only": 1, - "used": 1, - "when": 1, - "tonemapping": 1, - "mod289": 4, - "x": 11, - "{": 61, - "return": 47, - "floor": 8, - "*": 115, - "/": 24, - "}": 61, - "vec4": 72, - "permute": 4, - "x*34.0": 1, - "+": 108, - "*x": 3, - "taylorInvSqrt": 2, - "r": 14, - "snoise": 7, - "v": 8, - "vec2": 26, - "C": 1, - "/6.0": 1, - "/3.0": 1, - "D": 1, - "i": 38, - "dot": 30, - "C.yyy": 2, - "x0": 7, - "C.xxx": 2, - "g": 2, - "step": 2, - "x0.yzx": 1, - "x0.xyz": 1, - "l": 1, - "i1": 2, - "min": 11, - "g.xyz": 2, - "l.zxy": 2, - "i2": 2, - "max": 9, - "x1": 4, - "*C.x": 2, - "/3": 1, - "C.y": 1, - "x3": 4, - "D.yyy": 1, - "D.y": 1, - "p": 26, - "i.z": 1, - "i1.z": 1, - "i2.z": 1, - "i.y": 1, - "i1.y": 1, - "i2.y": 1, - "i.x": 1, - "i1.x": 1, - "i2.x": 1, - "n_": 2, - "/7.0": 1, - "ns": 4, - "D.wyz": 1, - "D.xzx": 1, - "j": 4, - "ns.z": 3, - "mod": 2, - "*7": 1, - "x_": 3, - "y_": 2, - "N": 1, - "*ns.x": 2, - "ns.yyyy": 2, - "y": 2, - "h": 21, - "abs": 2, - "b0": 3, - "x.xy": 1, - "y.xy": 1, - "b1": 3, - "x.zw": 1, - "y.zw": 1, - "//vec4": 3, - "s0": 2, - "lessThan": 2, - "*2.0": 4, - "s1": 2, - "sh": 1, - "a0": 1, - "b0.xzyw": 1, - "s0.xzyw*sh.xxyy": 1, - "a1": 1, - "b1.xzyw": 1, - "s1.xzyw*sh.zzww": 1, - "p0": 5, - "a0.xy": 1, - "h.x": 1, - "p1": 5, - "a0.zw": 1, - "h.y": 1, - "p2": 5, - "a1.xy": 1, - "h.z": 1, - "p3": 5, - "a1.zw": 1, - "h.w": 1, - "//Normalise": 1, - "gradients": 1, - "norm": 1, - "norm.x": 1, - "norm.y": 1, - "norm.z": 1, - "norm.w": 1, - "m": 8, - "m*m": 1, - "fbm": 2, - "final": 5, - "waterHeight": 4, - "d": 10, - "length": 7, - "p.xz": 2, - "sin": 8, - "iGlobalTime": 7, - "Island": 1, - "waves": 3, - "p*0.5": 1, - "Other": 1, - "bump": 2, - "pos": 42, - "rayDir": 43, - "s": 23, - "Fade": 1, - "out": 1, - "to": 1, - "reduce": 1, - "aliasing": 1, - "dist": 7, - "<": 23, - "sqrt": 6, - "Calculate": 1, - "normal": 7, - "from": 2, - "heightmap": 1, - "pos.x": 1, - "iGlobalTime*0.5": 1, - "pos.z": 2, - "*0.7": 1, - "*s": 4, - "normalize": 14, - "e.xyy": 1, - "e.yxy": 1, - "intersectSphere": 2, - "rpos": 5, - "rdir": 3, - "rad": 2, - "op": 5, - "b": 5, - "det": 11, - "b*b": 2, - "rad*rad": 2, - "if": 29, - "t": 44, - "rdir*t": 1, - "intersectCylinder": 1, - "rdir2": 2, - "rdir.yz": 1, - "op.yz": 3, - "rpos.yz": 2, - "rdir2*t": 2, - "pos.yz": 2, - "intersectPlane": 3, - "rayPos": 38, - "n": 18, - "sign": 1, - "rotate": 5, - "theta": 6, - "c": 6, - "cos": 4, - "p.x": 2, - "p.z": 2, - "p.y": 1, - "impulse": 2, - "k": 8, - "by": 1, - "iq": 2, - "k*x": 1, - "exp": 2, - "grass": 2, - "Optimization": 1, - "Avoid": 1, - "noise": 1, - "too": 1, - "far": 1, - "away": 1, - "pos.y": 8, - "tree": 2, - "pos.y*0.03": 2, - "mat2": 2, - "m*pos.xy": 1, - "width": 2, - "clamp": 4, - "scene": 7, - "vtree": 4, - "vgrass": 2, - ".x": 4, - "eps.xyy": 1, - "eps.yxy": 1, - "eps.yyx": 1, - "plantsShadow": 2, - "Soft": 1, - "shadow": 4, - "taken": 1, - "for": 7, - "int": 7, - "rayDir*t": 2, - "res": 6, - "res.x": 3, - "k*res.x/t": 1, - "s*s*": 1, - "intersectWater": 2, - "rayPos.y": 1, - "rayDir.y": 1, - "intersectSand": 3, - "intersectTreasure": 2, - "intersectLeaf": 2, - "openAmount": 4, - "dir": 2, - "offset": 5, - "rayDir*res.w": 1, - "pos*0.8": 2, - "||": 3, - "res.w": 6, - "res2": 2, - "dir.xy": 1, - "dir.z": 1, - "rayDir*res2.w": 1, - "res2.w": 3, - "&&": 10, - "leaves": 7, - "e20": 3, - "sway": 5, - "fract": 1, - "upDownSway": 2, - "angleOffset": 3, - "Left": 1, - "right": 1, - "alpha": 3, - "Up": 1, - "down": 1, - "k*10.0": 1, - "p.xzy": 1, - ".xzy": 2, - "d.xzy": 1, - "Shift": 1, - "Intersect": 11, - "individual": 1, - "leaf": 1, - "res.xyz": 1, - "sand": 2, - "resSand": 2, - "//if": 1, - "resSand.w": 4, - "plants": 6, - "resLeaves": 3, - "resLeaves.w": 10, - "e7": 3, - "light": 5, - "sunDir*0.01": 2, - "col": 32, - "n.y": 3, - "lightLeaves": 3, - "ao": 5, - "sky": 5, - "res.y": 2, - "uvFact": 2, - "uv": 12, - "n.x": 1, - "tex": 6, - "texture2D": 6, - "iChannel0": 3, - ".rgb": 2, - "e8": 1, - "traceReflection": 2, - "resPlants": 2, - "resPlants.w": 6, - "resPlants.xyz": 2, - "pos.xz": 2, - "leavesPos.xz": 2, - ".r": 3, - "resLeaves.xyz": 2, - "trace": 2, - "resSand.xyz": 1, - "treasure": 1, - "chest": 1, - "resTreasure": 1, - "resTreasure.w": 4, - "resTreasure.xyz": 1, - "water": 1, - "resWater": 1, - "resWater.w": 4, - "ct": 2, - "fresnel": 2, - "pow": 3, - "trans": 2, - "reflDir": 3, - "reflect": 1, - "refl": 3, - "resWater.t": 1, - "mix": 2, - "camera": 8, - "px": 4, - "rd": 1, - "iResolution.yy": 1, - "iResolution.x/iResolution.y*0.5": 1, - "rd.x": 1, - "rd.y": 1, - "void": 5, - "main": 3, - "gl_FragCoord.xy": 7, - "*0.25": 4, - "*0.5": 1, - "Optimized": 1, - "Haarm": 1, - "Peter": 1, - "Duiker": 1, - "curve": 1, - "col*exposure": 1, - "x*": 2, - ".5": 1, - "gl_FragColor": 2, - "NUM_LIGHTS": 4, - "AMBIENT": 2, - "MAX_DIST": 3, - "MAX_DIST_SQUARED": 3, - "uniform": 7, - "lightColor": 3, - "[": 29, - "]": 29, - "varying": 3, - "fragmentNormal": 2, - "cameraVector": 2, - "lightVector": 4, - "initialize": 1, - "diffuse/specular": 1, - "lighting": 1, - "diffuse": 4, - "specular": 4, - "the": 1, - "fragment": 1, - "and": 2, - "direction": 1, - "cameraDir": 2, - "loop": 1, - "through": 1, - "each": 1, - "calculate": 1, - "distance": 1, - "between": 1, - "distFactor": 3, - "lightDir": 3, - "diffuseDot": 2, - "halfAngle": 2, - "specularColor": 2, - "specularDot": 2, - "sample.rgb": 1, - "sample.a": 1, - "#version": 1, - "kCoeff": 2, - "kCube": 2, - "uShift": 3, - "vShift": 3, - "chroma_red": 2, - "chroma_green": 2, - "chroma_blue": 2, - "bool": 1, - "apply_disto": 4, - "sampler2D": 1, - "input1": 4, - "adsk_input1_w": 4, - "adsk_input1_h": 3, - "adsk_input1_aspect": 1, - "adsk_input1_frameratio": 5, - "adsk_result_w": 3, - "adsk_result_h": 2, - "distortion_f": 3, - "f": 17, - "r*r": 1, - "inverse_f": 2, - "lut": 9, - "max_r": 2, - "incr": 2, - "lut_r": 5, - ".z": 5, - ".y": 2, - "aberrate": 4, - "chroma": 2, - "chromaticize_and_invert": 2, - "rgb_f": 5, - "px.x": 2, - "px.y": 2, - "uv.x": 11, - "uv.y": 7, - "*2": 2, - "uv.x*uv.x": 1, - "uv.y*uv.y": 1, - "else": 1, - "rgb_uvs": 12, - "rgb_f.rr": 1, - "rgb_f.gg": 1, - "rgb_f.bb": 1, - "sampled": 1, - "sampled.r": 1, - "sampled.g": 1, - ".g": 1, - "sampled.b": 1, - ".b": 1, - "gl_FragColor.rgba": 1, - "sampled.rgb": 1 - }, - "Gnuplot": { - "set": 98, - "label": 14, - "at": 14, - "-": 102, - "left": 15, - "norotate": 18, - "back": 23, - "textcolor": 13, - "rgb": 8, - "nopoint": 14, - "offset": 25, - "character": 22, - "lt": 15, - "style": 7, - "line": 4, - "linetype": 11, - "linecolor": 4, - "linewidth": 11, - "pointtype": 4, - "pointsize": 4, - "default": 4, - "pointinterval": 4, - "noxtics": 2, - "noytics": 2, - "title": 13, - "xlabel": 6, - "xrange": 3, - "[": 18, - "]": 18, - "noreverse": 13, - "nowriteback": 12, - "yrange": 4, - "bmargin": 1, - "unset": 2, - "colorbox": 3, - "plot": 3, - "cos": 9, - "(": 52, - "x": 7, - ")": 52, - "ls": 4, - ".2": 1, - ".4": 1, - ".6": 1, - ".8": 1, - "lc": 3, - "boxwidth": 1, - "absolute": 1, - "fill": 1, - "solid": 1, - "border": 3, - "key": 1, - "inside": 1, - "right": 1, - "top": 1, - "vertical": 2, - "Right": 1, - "noenhanced": 1, - "autotitles": 1, - "nobox": 1, - "histogram": 1, - "clustered": 1, - "gap": 1, - "datafile": 1, - "missing": 1, - "data": 1, - "histograms": 1, - "xtics": 3, - "in": 1, + "Sierpinski": 1, + "triangle": 1, + "Pages": 1, + "PageOrder": 1, + "Ascend": 1, + "BeginProlog": 1, + "/pageset": 1, + "{": 4, "scale": 1, - "nomirror": 1, - "rotate": 3, - "by": 3, - "autojustify": 1, - "norangelimit": 3, - "font": 8, - "i": 1, - "using": 2, - "xtic": 1, - "ti": 4, - "col": 4, - "u": 25, - "SHEBANG#!gnuplot": 1, - "reset": 1, - "terminal": 1, - "png": 1, - "output": 1, - "ylabel": 5, - "#set": 2, - "xr": 1, - "yr": 1, - "pt": 2, - "notitle": 15, - "dummy": 3, - "v": 31, - "arrow": 7, - "from": 7, - "to": 7, - "head": 7, - "nofilled": 7, - "parametric": 3, - "view": 3, - "samples": 3, - "isosamples": 3, - "hidden3d": 2, - "trianglepattern": 2, - "undefined": 2, - "altdiagonal": 2, - "bentover": 2, - "ztics": 2, - "zlabel": 4, - "zrange": 2, - "sinc": 13, - "sin": 3, - "sqrt": 4, - "u**2": 4, - "+": 6, - "v**2": 4, - "/": 2, - "GPFUN_sinc": 2, - "xx": 2, - "dx": 2, - "x0": 4, - "x1": 4, - "x2": 4, - "x3": 4, - "x4": 4, - "x5": 4, - "x6": 4, - "x7": 4, - "x8": 4, - "x9": 4, - "splot": 3, - "<": 10, - "xmin": 3, - "xmax": 1, - "n": 1, - "zbase": 2, - ".5": 2, - "*n": 1, - "floor": 3, - "u/3": 1, - "*dx": 1, - "%": 2, - "u/3.*dx": 1, - "/0": 1, - "angles": 1, - "degrees": 1, - "mapping": 1, - "spherical": 1, - "noztics": 1, - "urange": 1, - "vrange": 1, - "cblabel": 1, - "cbrange": 1, - "user": 1, - "origin": 1, - "screen": 2, - "size": 1, - "front": 1, - "bdefault": 1, - "*cos": 1, - "*sin": 1, - "with": 3, - "lines": 2, - "labels": 1, - "point": 1, - "lw": 1, - ".1": 1, - "tc": 1, - "pal": 1 - }, - "Gosu": { - "<%!-->": 1, - "defined": 1, - "in": 3, - "Hello": 2, - "gst": 1, - "<": 1, - "%": 2, - "@": 1, - "params": 1, - "(": 53, - "users": 2, - "Collection": 1, - "": 1, - ")": 54, - "<%>": 2, - "for": 2, - "user": 1, - "{": 28, - "user.LastName": 1, - "}": 28, - "user.FirstName": 1, - "user.Department": 1, - "package": 2, - "example": 2, - "enhancement": 1, - "String": 6, - "function": 11, - "toPerson": 1, - "Person": 7, - "var": 10, - "vals": 4, - "this.split": 1, - "return": 4, - "new": 6, - "[": 4, - "]": 4, - "as": 3, - "int": 2, - "Relationship.valueOf": 2, - "hello": 1, - "print": 3, - "uses": 2, - "java.util.*": 1, - "java.io.File": 1, - "class": 1, - "extends": 1, - "Contact": 1, - "implements": 1, - "IEmailable": 2, - "_name": 4, - "_age": 3, - "Integer": 3, - "Age": 1, - "_relationship": 2, - "Relationship": 3, - "readonly": 1, - "RelationshipOfPerson": 1, - "delegate": 1, - "_emailHelper": 2, - "represents": 1, - "enum": 1, - "FRIEND": 1, - "FAMILY": 1, - "BUSINESS_CONTACT": 1, - "static": 7, - "ALL_PEOPLE": 2, - "HashMap": 1, - "": 1, - "construct": 1, - "name": 4, - "age": 4, - "relationship": 2, - "EmailHelper": 1, - "this": 1, - "property": 2, - "get": 1, - "Name": 3, "set": 1, - "override": 1, - "getEmailName": 1, - "incrementAge": 1, - "+": 2, - "@Deprecated": 1, - "printPersonInfo": 1, - "addPerson": 4, - "p": 5, - "if": 4, - "ALL_PEOPLE.containsKey": 2, - ".Name": 1, - "throw": 1, - "IllegalArgumentException": 1, - "p.Name": 2, - "addAllPeople": 1, - "contacts": 2, - "List": 1, - "": 1, - "contact": 3, - "typeis": 1, - "and": 1, - "not": 1, - "contact.Name": 1, - "getAllPeopleOlderThanNOrderedByName": 1, - "allPeople": 1, - "ALL_PEOPLE.Values": 3, - "allPeople.where": 1, - "-": 3, - "p.Age": 1, - ".orderBy": 1, - "loadPersonFromDB": 1, - "id": 1, - "using": 2, - "conn": 1, - "DBConnectionManager.getConnection": 1, - "stmt": 1, - "conn.prepareStatement": 1, - "stmt.setInt": 1, - "result": 1, - "stmt.executeQuery": 1, - "result.next": 1, - "result.getString": 2, - "result.getInt": 1, - "loadFromFile": 1, - "file": 3, - "File": 2, - "file.eachLine": 1, - "line": 1, - "line.HasContent": 1, - "line.toPerson": 1, - "saveToFile": 1, - "writer": 2, - "FileWriter": 1, - "PersonCSVTemplate.renderToString": 1, - "PersonCSVTemplate.render": 1 - }, - "Grammatical Framework": { - "-": 594, - "(": 256, - "c": 73, - ")": 256, - "Aarne": 13, - "Ranta": 13, - "under": 33, - "LGPL": 33, - "abstract": 1, - "Foods": 34, - "{": 579, - "flags": 32, - "startcat": 1, - "Comment": 31, - ";": 1399, - "cat": 1, - "Item": 31, - "Kind": 33, - "Quality": 34, - "fun": 1, - "Pred": 30, - "This": 29, - "That": 29, - "These": 28, - "Those": 28, - "Mod": 29, - "Wine": 29, - "Cheese": 29, - "Fish": 29, - "Pizza": 28, - "Very": 29, - "Fresh": 29, - "Warm": 29, - "Italian": 29, - "Expensive": 29, - "Delicious": 29, - "Boring": 29, - "}": 580, - "Laurette": 2, - "Pretorius": 2, - "Sr": 2, - "&": 2, - "Jr": 2, - "and": 4, - "Ansu": 2, - "Berg": 2, - "concrete": 33, - "FoodsAfr": 1, - "of": 89, - "open": 23, - "Prelude": 11, - "Predef": 3, - "in": 32, - "coding": 29, - "utf8": 29, - "lincat": 28, - "s": 365, - "Str": 394, - "Number": 207, - "n": 206, - "AdjAP": 10, - "lin": 28, - "item": 36, - "quality": 90, - "item.s": 24, - "+": 480, - "quality.s": 50, - "Predic": 3, - "kind": 115, - "kind.s": 46, - "Sg": 184, - "Pl": 182, - "table": 148, - "Attr": 9, - "declNoun_e": 2, - "declNoun_aa": 2, - "declNoun_ss": 2, - "declNoun_s": 2, - "veryAdj": 2, - "regAdj": 61, - "smartAdj_e": 4, - "param": 22, - "|": 122, - "oper": 29, - "Noun": 9, - "operations": 2, - "wyn": 1, - "kaas": 1, - "vis": 1, - "pizza": 1, - "x": 74, - "let": 8, - "v": 6, - "tk": 1, - "last": 3, - "Adjective": 9, - "mkAdj": 27, - "y": 3, - "declAdj_e": 2, - "declAdj_g": 2, - "w": 15, - "init": 4, - "declAdj_oog": 2, - "i": 2, - "a": 57, - "x.s": 8, - "case": 44, - "_": 68, - "FoodsAmh": 1, - "Krasimir": 1, - "Angelov": 1, - "FoodsBul": 1, - "Gender": 94, - "Masc": 67, - "Fem": 65, - "Neutr": 21, - "Agr": 3, - "ASg": 23, - "APl": 11, - "g": 132, - "qual": 8, - "item.a": 2, - "qual.s": 8, - "kind.g": 38, - "#": 14, - "path": 14, - ".": 13, - "present": 7, - "Jordi": 2, - "Saludes": 2, - "FoodsCat": 1, - "FoodsI": 6, - "with": 5, - "Syntax": 7, - "SyntaxCat": 2, - "LexFoods": 12, - "LexFoodsCat": 2, - "FoodsChi": 1, - "p": 11, - "quality.p": 2, - "kind.c": 11, - "geKind": 5, - "longQuality": 8, - "mkKind": 2, - "Katerina": 2, - "Bohmova": 2, - "FoodsCze": 1, - "ResCze": 2, - "NounPhrase": 3, - "copula": 33, - "item.n": 29, - "item.g": 12, - "det": 86, - "noun": 51, - "regnfAdj": 2, - "Femke": 1, - "Johansson": 1, - "FoodsDut": 1, - "AForm": 4, - "APred": 8, - "AAttr": 3, - "regNoun": 38, - "f": 16, - "a.s": 8, - "regadj": 6, - "adj": 38, - "noun.s": 7, - "man": 10, - "men": 10, - "wijn": 3, - "koud": 3, - "duur": 2, - "dure": 2, - "FoodsEng": 1, - "language": 2, - "en_US": 1, - "car": 6, - "cold": 4, - "Julia": 1, - "Hammar": 1, - "FoodsEpo": 1, - "SS": 6, - "ss": 13, - "d": 6, - "cn": 11, - "cn.s": 8, - "vino": 3, - "nova": 3, - "FoodsFin": 1, - "SyntaxFin": 2, - "LexFoodsFin": 2, - "../foods": 1, - "FoodsFre": 1, - "SyntaxFre": 1, - "ParadigmsFre": 1, - "Utt": 4, - "NP": 4, - "CN": 4, - "AP": 4, - "mkUtt": 4, - "mkCl": 4, - "mkNP": 16, - "this_QuantSg": 2, - "that_QuantSg": 2, - "these_QuantPl": 2, - "those_QuantPl": 2, - "mkCN": 20, - "mkAP": 28, - "very_AdA": 4, - "mkN": 46, - "masculine": 4, - "feminine": 2, - "mkA": 47, - "FoodsGer": 1, - "SyntaxGer": 2, - "LexFoodsGer": 2, - "alltenses": 3, - "Dana": 1, - "Dannells": 1, - "Licensed": 1, - "FoodsHeb": 2, - "Species": 8, - "mod": 7, - "Modified": 5, - "sp": 11, - "Indef": 6, - "Def": 21, - "T": 2, - "regAdj2": 3, - "F": 2, - "Type": 9, - "Adj": 4, - "m": 9, - "cn.mod": 2, - "cn.g": 10, - "gvina": 6, - "hagvina": 3, - "gvinot": 6, - "hagvinot": 3, - "defH": 7, - "replaceLastLetter": 7, - "adjective": 22, - "tov": 6, - "tova": 3, - "tovim": 3, - "tovot": 3, - "to": 6, - "c@": 3, - "italki": 3, - "italk": 4, - "Vikash": 1, - "Rauniyar": 1, - "FoodsHin": 2, - "regN": 15, - "lark": 8, - "ms": 4, - "mp": 4, - "acch": 6, - "incomplete": 1, - "this_Det": 2, - "that_Det": 2, - "these_Det": 2, - "those_Det": 2, - "wine_N": 7, - "pizza_N": 7, - "cheese_N": 7, - "fish_N": 8, - "fresh_A": 7, - "warm_A": 8, - "italian_A": 7, - "expensive_A": 7, - "delicious_A": 7, - "boring_A": 7, - "prelude": 2, - "Martha": 1, - "Dis": 1, - "Brandt": 1, - "FoodsIce": 1, - "Defin": 9, - "Ind": 14, - "the": 7, - "word": 3, - "is": 6, - "more": 1, - "commonly": 1, - "used": 2, - "Iceland": 1, - "but": 1, - "Icelandic": 1, - "for": 6, - "it": 2, - "defOrInd": 2, - "order": 1, - "given": 1, - "forms": 2, - "mSg": 1, - "fSg": 1, - "nSg": 1, - "mPl": 1, - "fPl": 1, - "nPl": 1, - "mSgDef": 1, - "f/nSgDef": 1, - "_PlDef": 1, - "masc": 3, - "fem": 2, - "neutr": 2, - "x1": 3, - "x9": 1, - "ferskur": 5, - "fersk": 11, - "ferskt": 2, - "ferskir": 2, - "ferskar": 2, - "fersk_pl": 2, - "ferski": 2, - "ferska": 2, - "fersku": 2, - "t": 28, - "": 1, - "<": 10, - "Predef.tk": 2, - "FoodsIta": 1, - "SyntaxIta": 2, - "LexFoodsIta": 2, - "../lib/src/prelude": 1, - "Zofia": 1, - "Stankiewicz": 1, - "FoodsJpn": 1, - "Style": 3, - "AdjUse": 4, - "AdjType": 4, - "quality.t": 3, - "IAdj": 4, - "Plain": 3, - "Polite": 4, - "NaAdj": 4, - "na": 1, - "adjectives": 2, - "have": 2, - "different": 1, - "as": 2, - "attributes": 1, - "predicates": 2, - "phrase": 1, - "types": 1, - "can": 1, - "form": 4, - "without": 1, - "cannot": 1, - "sakana": 6, - "chosenna": 2, - "chosen": 2, - "akai": 2, - "Inese": 1, - "Bernsone": 1, - "FoodsLav": 1, - "Q": 5, - "Q1": 5, - "q": 10, - "spec": 2, - "Q2": 3, - "specAdj": 2, - "skaists": 5, - "skaista": 2, - "skaisti": 2, - "skaistas": 2, - "skaistais": 2, - "skaistaa": 2, - "skaistie": 2, - "skaistaas": 2, - "skaist": 8, - "John": 1, - "J.": 1, - "Camilleri": 1, - "FoodsMlt": 1, - "uniAdj": 2, - "Create": 6, - "an": 2, - "full": 1, - "function": 1, - "Params": 4, - "Sing": 4, - "Plural": 2, - "iswed": 2, - "sewda": 2, - "suwed": 3, - "regular": 2, - "Param": 2, - "frisk": 4, - "eg": 1, - "tal": 1, - "buzz": 1, - "uni": 4, - "Singular": 1, - "inherent": 1, - "ktieb": 2, - "kotba": 2, - "Copula": 1, - "linking": 1, - "verb": 1, - "article": 3, - "taking": 1, - "into": 1, - "account": 1, - "first": 1, - "letter": 1, - "next": 1, - "pre": 1, - "cons@": 1, - "cons": 1, - "determinant": 1, - "Sg/Pl": 1, - "string": 1, - "default": 1, - "gender": 2, - "number": 2, - "/GF/lib/src/prelude": 1, - "Nyamsuren": 1, - "Erdenebadrakh": 1, - "FoodsMon": 1, - "prefixSS": 1, - "Dinesh": 1, - "Simkhada": 1, - "FoodsNep": 1, - "adjPl": 2, - "bor": 2, - "FoodsOri": 1, - "FoodsPes": 1, - "optimize": 1, - "noexpand": 1, - "Add": 8, - "prep": 11, - "Indep": 4, - "kind.prep": 1, - "quality.prep": 1, - "at": 3, - "a.prep": 1, - "must": 1, - "be": 1, - "written": 1, - "x4": 2, - "pytzA": 3, - "pytzAy": 1, - "pytzAhA": 3, - "pr": 4, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "mrd": 8, - "tAzh": 8, - "tAzhy": 2, - "Rami": 1, - "Shashati": 1, - "FoodsPor": 1, - "mkAdjReg": 7, - "QualityT": 5, - "bonito": 2, - "bonita": 2, - "bonitos": 2, - "bonitas": 2, - "pattern": 1, - "adjSozinho": 2, - "sozinho": 3, - "sozinh": 4, - "independent": 1, - "adjUtil": 2, - "util": 3, - "uteis": 3, - "smart": 1, - "paradigm": 1, - "adjcetives": 1, - "ItemT": 2, - "KindT": 4, - "num": 6, - "noun.g": 3, - "animal": 2, - "animais": 2, - "gen": 4, - "carro": 3, - "Ramona": 1, - "Enache": 1, - "FoodsRon": 1, - "NGender": 6, - "NMasc": 2, - "NFem": 3, - "NNeut": 2, - "mkTab": 5, - "mkNoun": 5, - "getAgrGender": 3, - "acesta": 2, - "aceasta": 2, - "gg": 3, - "det.s": 1, - "peste": 2, - "pesti": 2, - "scump": 2, - "scumpa": 2, - "scumpi": 2, - "scumpe": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "ng": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "FoodsSpa": 1, - "SyntaxSpa": 1, - "StructuralSpa": 1, - "ParadigmsSpa": 1, - "FoodsSwe": 1, - "SyntaxSwe": 2, - "LexFoodsSwe": 2, - "**": 1, - "sv_SE": 1, - "FoodsTha": 1, - "SyntaxTha": 1, - "LexiconTha": 1, - "ParadigmsTha": 1, - "R": 4, - "ResTha": 1, - "R.thword": 4, - "FoodsTsn": 1, - "NounClass": 28, - "r": 9, - "b": 9, - "Bool": 5, - "p_form": 18, - "TType": 16, - "mkPredDescrCop": 2, - "item.c": 1, - "quality.p_form": 1, - "kind.w": 4, - "mkDemPron1": 3, - "kind.q": 4, - "mkDemPron2": 3, - "mkMod": 2, - "Lexicon": 1, - "mkNounNC14_6": 2, - "mkNounNC9_10": 4, - "smartVery": 2, - "mkVarAdj": 2, - "mkOrdAdj": 4, - "mkPerAdj": 2, - "mkVerbRel": 2, - "NC9_10": 14, - "NC14_6": 14, - "P": 4, - "V": 4, - "ModV": 4, - "y.b": 1, - "True": 3, - "y.w": 2, - "y.r": 2, - "y.c": 14, - "y.q": 4, - "smartQualRelPart": 5, - "x.t": 10, - "smartDescrCop": 5, - "False": 3, - "mkVeryAdj": 2, - "x.p_form": 2, - "mkVeryVerb": 3, - "mkQualRelPart_PName": 2, - "mkQualRelPart": 2, - "mkDescrCop_PName": 2, - "mkDescrCop": 2, - "FoodsTur": 1, - "Case": 10, - "softness": 4, - "Softness": 5, - "h": 4, - "Harmony": 5, - "Reason": 1, - "excluding": 1, - "plural": 3, - "In": 1, - "Turkish": 1, - "if": 1, - "subject": 1, - "not": 2, - "human": 2, - "being": 1, - "then": 1, - "singular": 1, - "regardless": 1, - "subject.": 1, - "Since": 1, - "all": 1, - "possible": 1, - "subjects": 1, - "are": 1, - "non": 1, - "do": 1, - "need": 1, - "form.": 1, - "quality.softness": 1, - "quality.h": 1, - "quality.c": 1, - "Nom": 9, - "Gen": 5, - "a.c": 1, - "a.softness": 1, - "a.h": 1, - "I_Har": 4, - "Ih_Har": 4, - "U_Har": 4, - "Uh_Har": 4, - "Ih": 1, - "Uh": 1, - "Soft": 3, - "Hard": 3, - "overload": 1, - "mkn": 1, - "peynir": 2, - "peynirler": 2, - "[": 2, - "]": 2, - "sarap": 2, - "saraplar": 2, - "sarabi": 2, - "saraplari": 2, - "italyan": 4, - "ca": 2, - "getSoftness": 2, - "getHarmony": 2, - "See": 1, - "comment": 1, - "lines": 1, - "excluded": 1, - "copula.": 1, - "base": 4, - "*": 1, - "Shafqat": 1, - "Virk": 1, - "FoodsUrd": 1, - "coupla": 2, - "interface": 1, - "N": 4, - "A": 6, - "instance": 5, - "ParadigmsCat": 1, - "M": 1, - "MorphoCat": 1, - "M.Masc": 2, - "ParadigmsFin": 1, - "ParadigmsGer": 1, - "ParadigmsIta": 1, - "ParadigmsSwe": 1, - "resource": 1, - "ne": 2, - "muz": 2, - "muzi": 2, - "msg": 3, - "fsg": 3, - "nsg": 3, - "mpl": 3, - "fpl": 3, - "npl": 3, - "mlad": 7, - "vynikajici": 7 - }, - "Groovy": { - "task": 1, - "echoDirListViaAntBuilder": 1, - "(": 7, - ")": 7, - "{": 3, - "description": 1, - "//Docs": 1, - "http": 1, - "//ant.apache.org/manual/Types/fileset.html": 1, - "//Echo": 1, - "the": 3, - "Gradle": 1, - "project": 1, - "name": 1, - "via": 1, - "ant": 1, - "echo": 1, - "plugin": 1, - "ant.echo": 3, - "message": 1, - "project.name": 1, - "path": 2, - "//Gather": 1, - "list": 1, - "of": 1, - "files": 1, - "in": 1, - "a": 1, - "subdirectory": 1, - "ant.fileScanner": 1, - "fileset": 1, - "dir": 1, - "}": 3, - ".each": 1, - "//Print": 1, - "each": 1, - "file": 1, - "to": 1, - "screen": 1, - "with": 1, - "CWD": 1, - "projectDir": 1, - "removed.": 1, - "println": 2, - "it.toString": 1, - "-": 1, - "SHEBANG#!groovy": 1 - }, - "Groovy Server Pages": { - "": 4, - "": 4, - "": 4, - "http": 3, - "equiv=": 3, - "content=": 4, - "": 4, - "Testing": 3, - "with": 3, - "SiteMesh": 2, - "and": 2, - "Resources": 2, - "": 4, - "name=": 1, - "": 2, - "module=": 2, - "": 4, - "": 4, - "": 4, - "": 4, - "<%@>": 1, - "page": 2, - "contentType=": 1, - "Using": 1, - "directive": 1, - "tag": 1, - "

": 2, - "Print": 1, - "{": 1, - "example": 1, - "}": 1 - }, - "Haml": { - "%": 1, - "p": 1, - "Hello": 1, - "World": 1 - }, - "Handlebars": { - "
": 5, - "class=": 5, - "

": 3, - "{": 16, - "title": 1, - "}": 16, - "

": 3, - "body": 3, - "
": 5, - "By": 2, - "fullName": 2, - "author": 2, - "Comments": 1, - "#each": 1, - "comments": 1, - "

": 1, - "

": 1, - "/each": 1 - }, - "HTML": { - "": 2, - "HTML": 2, - "PUBLIC": 2, - "W3C": 2, - "DTD": 3, - "4": 1, - "0": 2, - "Frameset": 1, - "EN": 2, - "http": 3, - "www": 2, - "w3": 2, - "org": 2, - "TR": 2, - "REC": 1, - "html40": 1, - "frameset": 1, - "dtd": 2, - "": 2, - "": 2, - "Common_meta": 1, - "(": 14, - ")": 14, - "": 2, - "Android": 5, - "API": 7, - "Differences": 2, - "Report": 2, - "": 2, - "": 2, - "
": 10, - "class=": 22, - "Header": 1, - "

": 1, - "

": 1, - "

": 3, - "This": 1, - "document": 1, - "details": 1, - "the": 11, - "changes": 2, - "in": 4, - "framework": 2, - "API.": 3, - "It": 2, - "shows": 1, - "additions": 1, - "modifications": 1, - "and": 5, - "removals": 2, - "for": 2, - "packages": 1, - "classes": 1, - "methods": 1, - "fields.": 1, - "Each": 1, - "reference": 1, - "to": 3, - "an": 3, - "change": 2, - "includes": 1, - "a": 4, - "brief": 1, - "description": 1, - "of": 5, - "explanation": 1, - "suggested": 1, - "workaround": 1, - "where": 1, - "available.": 1, - "

": 3, - "The": 2, - "differences": 2, - "described": 1, - "this": 2, - "report": 1, - "are": 3, - "based": 1, - "comparison": 1, - "APIs": 1, - "whose": 1, - "versions": 1, - "specified": 1, - "upper": 1, - "-": 1, - "right": 1, - "corner": 1, - "page.": 1, - "compares": 1, - "newer": 1, - "older": 2, - "version": 1, - "noting": 1, - "any": 1, - "relative": 1, - "So": 1, - "example": 1, - "indicated": 1, - "no": 1, - "longer": 1, - "present": 1, - "For": 1, - "more": 1, - "information": 1, - "about": 1, - "SDK": 1, - "see": 1, - "": 8, - "href=": 9, - "target=": 3, - "product": 1, - "site": 1, - "": 8, - ".": 1, - "if": 4, - "no_delta": 1, - "

": 1, - "Congratulation": 1, - "

": 1, - "No": 1, - "were": 1, - "detected": 1, - "between": 1, - "two": 1, - "provided": 1, - "APIs.": 1, - "endif": 4, - "removed_packages": 2, - "Table": 3, - "name": 3, - "rows": 3, - "{": 3, - "it.from": 1, - "ModelElementRow": 1, - "}": 3, - "
": 3, - "added_packages": 2, - "it.to": 2, - "PackageAddedLink": 1, - "SimpleTableRow": 2, - "changed_packages": 2, - "PackageChangedLink": 1, - "
": 11, - "": 2, - "": 2, - "html": 1, - "XHTML": 1, - "1": 1, - "Transitional": 1, - "xhtml1": 2, - "transitional": 1, - "xmlns=": 1, - "": 1, - "equiv=": 1, - "content=": 1, - "Related": 2, - "Pages": 2, - "": 1, - "rel=": 1, - "type=": 1, - "": 1, - "Main": 1, - "Page": 1, - "&": 3, - "middot": 3, - ";": 3, - "Class": 2, - "Overview": 2, - "Hierarchy": 1, - "All": 1, - "Classes": 1, - "Here": 1, - "is": 1, - "list": 1, - "all": 1, - "related": 1, - "documentation": 1, - "pages": 1, - "": 1, - "": 2, - "id=": 2, - "": 4, - "": 2, - "16": 1, - "Layout": 1, - "System": 1, - "
": 4, - "": 2, - "src=": 2, - "alt=": 2, - "width=": 1, - "height=": 2, - "
": 1, - "Generated": 1, - "with": 1, - "Doxygen": 1 - }, - "Hy": { - ";": 4, - "Fibonacci": 1, - "example": 2, - "in": 2, - "Hy.": 2, - "(": 28, - "defn": 2, - "fib": 4, - "[": 10, - "n": 5, - "]": 10, - "if": 2, - "<": 1, - ")": 28, - "+": 1, - "-": 10, - "__name__": 1, - "for": 2, - "x": 3, - "print": 1, - "The": 1, - "concurrent.futures": 2, - "import": 1, - "ThreadPoolExecutor": 2, - "as": 3, - "completed": 2, - "random": 1, - "randint": 2, - "sh": 1, - "sleep": 2, - "task": 2, - "to": 2, - "do": 2, - "with": 1, - "executor": 2, - "setv": 1, - "jobs": 2, - "list": 1, - "comp": 1, - ".submit": 1, - "range": 1, - "future": 2, - ".result": 1 - }, - "IDL": { - ";": 59, - "docformat": 3, - "+": 8, - "Inverse": 1, - "hyperbolic": 2, - "cosine.": 1, - "Uses": 1, - "the": 7, - "formula": 1, - "text": 1, - "{": 3, - "acosh": 1, - "}": 3, - "(": 26, - "z": 9, - ")": 26, - "ln": 1, - "sqrt": 4, - "-": 14, - "Examples": 2, - "The": 1, - "arc": 1, - "sine": 1, - "function": 4, - "looks": 1, - "like": 2, - "IDL": 5, - "x": 8, - "*": 2, - "findgen": 1, - "/": 1, - "plot": 1, - "mg_acosh": 2, - "xstyle": 1, - "This": 1, - "should": 1, - "look": 1, - "..": 1, - "image": 1, - "acosh.png": 1, - "Returns": 3, - "float": 1, - "double": 2, - "complex": 2, - "or": 1, - "depending": 1, - "on": 1, - "input": 2, - "Params": 3, - "in": 4, - "required": 4, - "type": 5, - "numeric": 1, - "compile_opt": 3, - "strictarr": 3, - "return": 5, - "alog": 1, - "end": 5, - "MODULE": 1, - "mg_analysis": 1, - "DESCRIPTION": 1, - "Tools": 1, - "for": 2, - "analysis": 1, - "VERSION": 1, - "SOURCE": 1, - "mgalloy": 1, - "BUILD_DATE": 1, - "January": 1, - "FUNCTION": 2, - "MG_ARRAY_EQUAL": 1, - "KEYWORDS": 1, - "MG_TOTAL": 1, - "Find": 1, - "greatest": 1, - "common": 1, - "denominator": 1, - "GCD": 1, - "two": 1, - "positive": 2, - "integers.": 1, - "integer": 5, - "a": 4, - "first": 1, - "b": 4, - "second": 1, - "mg_gcd": 2, - "on_error": 1, - "if": 5, - "n_params": 1, - "ne": 1, - "then": 5, - "message": 2, - "mg_isinteger": 2, - "||": 1, - "begin": 2, - "endif": 2, - "_a": 3, - "abs": 2, - "_b": 3, - "minArg": 5, - "<": 1, - "maxArg": 3, - "eq": 2, - "remainder": 3, - "mod": 1, - "Truncate": 1, - "argument": 2, - "towards": 1, - "i.e.": 1, - "takes": 1, - "FLOOR": 1, - "of": 4, - "values": 2, - "and": 1, - "CEIL": 1, - "negative": 1, - "values.": 1, - "Try": 1, - "main": 2, - "level": 2, - "program": 2, - "at": 1, - "this": 1, - "file.": 1, - "It": 1, - "does": 1, - "print": 4, - "mg_trunc": 3, + "cm": 1, + "translate": 1, + "setlinewidth": 1, + "}": 4, + "def": 2, + "/sierpinski": 1, + "dup": 4, + "gt": 1, "[": 6, "]": 6, - "floor": 2, - "ceil": 2, - "array": 2, - "same": 1, - "as": 1, - "float/double": 1, - "containing": 1, - "to": 1, - "truncate": 1, - "result": 3, - "posInd": 3, - "where": 1, - "gt": 2, - "nposInd": 2, - "L": 1, - "example": 1 - }, - "Idris": { - "module": 1, - "Prelude.Char": 1, - "import": 1, - "Builtins": 1, - "isUpper": 4, - "Char": 13, - "-": 8, - "Bool": 8, - "x": 36, - "&&": 3, - "<=>": 3, - "Z": 1, - "isLower": 4, - "z": 1, - "isAlpha": 3, - "||": 9, - "isDigit": 3, - "(": 8, - "9": 1, - "isAlphaNum": 2, - "isSpace": 2, - "isNL": 2, - "toUpper": 3, - "if": 2, - ")": 7, - "then": 2, - "prim__intToChar": 2, - "prim__charToInt": 2, - "else": 2, - "toLower": 2, - "+": 1, - "isHexDigit": 2, - "elem": 1, - "hexChars": 3, - "where": 1, - "List": 1, - "[": 1, - "]": 1 - }, - "Inform 7": { - "by": 3, - "Andrew": 3, - "Plotkin.": 2, - "Include": 1, - "Trivial": 3, - "Extension": 3, - "The": 1, - "Kitchen": 1, - "is": 4, - "a": 2, - "room.": 1, - "[": 1, - "This": 1, - "kitchen": 1, - "modelled": 1, - "after": 1, - "the": 4, - "one": 1, - "in": 2, - "Zork": 1, - "although": 1, - "it": 1, - "lacks": 1, - "detail": 1, - "to": 2, - "establish": 1, - "this": 1, - "player.": 1, - "]": 1, - "A": 3, - "purple": 1, - "cow": 3, - "called": 1, - "Gelett": 2, - "Kitchen.": 1, - "Instead": 1, - "of": 3, - "examining": 1, - "say": 1, - "Version": 1, - "Plotkin": 1, - "begins": 1, - "here.": 2, - "kind": 1, - "animal.": 1, - "can": 1, - "be": 1, - "purple.": 1, - "ends": 1 - }, - "INI": { - ";": 1, - "editorconfig.org": 1, - "root": 1, - "true": 3, - "[": 2, - "*": 1, - "]": 2, - "indent_style": 1, - "space": 1, - "indent_size": 1, - "end_of_line": 1, - "lf": 1, - "charset": 1, - "utf": 1, - "-": 1, - "trim_trailing_whitespace": 1, - "insert_final_newline": 1, - "user": 1, - "name": 1, - "Josh": 1, - "Peek": 1, - "email": 1, - "josh@github.com": 1 - }, - "Ioke": { - "SHEBANG#!ioke": 1, - "println": 1 - }, - "Jade": { - "p.": 1, - "Hello": 1, - "World": 1 - }, - "Java": { - "package": 6, - "clojure.asm": 1, - ";": 891, - "import": 66, - "java.lang.reflect.Constructor": 1, - "java.lang.reflect.Method": 1, - "public": 214, - "class": 12, - "Type": 42, - "{": 434, - "final": 78, - "static": 141, - "int": 62, - "VOID": 5, - "BOOLEAN": 6, - "CHAR": 6, - "BYTE": 6, - "SHORT": 6, - "INT": 6, - "FLOAT": 6, - "LONG": 7, - "DOUBLE": 7, - "ARRAY": 6, - "OBJECT": 7, - "VOID_TYPE": 3, - "new": 131, - "(": 1097, - ")": 1097, - "BOOLEAN_TYPE": 3, - "CHAR_TYPE": 3, - "BYTE_TYPE": 3, - "SHORT_TYPE": 3, - "INT_TYPE": 3, - "FLOAT_TYPE": 3, - "LONG_TYPE": 3, - "DOUBLE_TYPE": 3, - "private": 77, - "sort": 18, - "char": 13, - "[": 54, - "]": 54, - "buf": 43, - "off": 25, - "len": 24, - "this.sort": 2, - "this.len": 2, - "}": 434, - "this.buf": 2, - "this.off": 1, - "getType": 10, - "String": 33, - "typeDescriptor": 1, - "return": 267, - "typeDescriptor.toCharArray": 1, - "Class": 10, - "c": 21, - "if": 116, - "c.isPrimitive": 2, - "Integer.TYPE": 2, - "else": 33, - "Void.TYPE": 3, - "Boolean.TYPE": 2, - "Byte.TYPE": 2, - "Character.TYPE": 2, - "Short.TYPE": 2, - "Double.TYPE": 2, - "Float.TYPE": 2, - "getDescriptor": 15, - "getObjectType": 1, - "name": 10, - "l": 5, - "name.length": 2, - "+": 83, - "name.getChars": 1, - "getArgumentTypes": 2, - "methodDescriptor": 2, - "methodDescriptor.toCharArray": 2, - "size": 16, - "while": 10, - "true": 21, - "car": 18, - "break": 4, - "args": 6, - ".len": 1, - "Method": 3, - "method": 2, - "classes": 2, - "method.getParameterTypes": 1, - "types": 3, - "classes.length": 2, - "for": 16, - "i": 54, - "-": 15, - "getReturnType": 2, - "methodDescriptor.indexOf": 1, - "method.getReturnType": 1, - "switch": 6, - "case": 56, - "//": 16, - "default": 6, - "getSort": 1, - "getDimensions": 3, - "getElementType": 2, - "getClassName": 1, - "StringBuffer": 14, - "b": 7, - ".getClassName": 1, - "b.append": 1, - "b.toString": 1, - ".replace": 2, - "getInternalName": 2, - "buf.toString": 4, - "getMethodDescriptor": 2, - "returnType": 1, - "argumentTypes": 2, - "buf.append": 21, - "<": 13, - "argumentTypes.length": 1, - ".getDescriptor": 1, - "returnType.getDescriptor": 1, - "void": 25, - "c.getName": 1, - "getConstructorDescriptor": 1, - "Constructor": 1, - "parameters": 4, - "c.getParameterTypes": 1, - "parameters.length": 2, - ".toString": 1, - "m": 1, - "m.getParameterTypes": 1, - "m.getReturnType": 1, - "d": 10, - "d.isPrimitive": 1, - "d.isArray": 1, - "d.getComponentType": 1, - "d.getName": 1, - "name.charAt": 1, - "getSize": 1, - "||": 8, - "getOpcode": 1, - "opcode": 17, - "Opcodes.IALOAD": 1, - "Opcodes.IASTORE": 1, - "boolean": 36, - "equals": 2, - "Object": 31, - "o": 12, - "this": 16, - "instanceof": 19, - "false": 12, - "t": 6, - "t.sort": 1, - "Type.OBJECT": 2, - "Type.ARRAY": 2, - "t.len": 1, - "j": 9, - "t.off": 1, - "end": 4, - "t.buf": 1, - "hashCode": 1, - "hc": 4, - "*": 2, - "toString": 1, - "clojure.lang": 1, - "java.lang.ref.Reference": 1, - "java.math.BigInteger": 1, - "java.util.Map": 3, - "java.util.concurrent.ConcurrentHashMap": 1, - "java.lang.ref.SoftReference": 1, - "java.lang.ref.ReferenceQueue": 1, - "Util": 1, - "equiv": 17, - "k1": 40, - "k2": 38, - "null": 80, - "Number": 9, - "&&": 6, - "Numbers.equal": 1, - "IPersistentCollection": 5, - "pcequiv": 2, - "k1.equals": 2, - "long": 5, - "double": 4, - "c1": 2, - "c2": 2, - ".equiv": 2, - "identical": 1, - "classOf": 1, - "x": 8, - "x.getClass": 1, - "compare": 1, - "Numbers.compare": 1, - "Comparable": 1, - ".compareTo": 1, - "hash": 3, - "o.hashCode": 2, - "hasheq": 1, - "Numbers.hasheq": 1, - "IHashEq": 2, - ".hasheq": 1, - "hashCombine": 1, - "seed": 5, - "//a": 1, - "la": 1, - "boost": 1, - "e3779b9": 1, + "concat": 5, + "sub": 3, + "sierpinski": 4, + "newpath": 1, + "moveto": 1, + "lineto": 2, + "closepath": 1, + "fill": 1, + "ifelse": 1, + "pop": 1, + "EndProlog": 1, + "BeginSetup": 1, "<<": 1, - "isPrimitive": 1, - "isInteger": 1, - "Integer": 2, - "Long": 1, - "BigInt": 1, - "BigInteger": 1, - "ret1": 2, - "ret": 4, - "nil": 2, - "ISeq": 2, - "": 1, - "clearCache": 1, - "ReferenceQueue": 1, - "rq": 1, - "ConcurrentHashMap": 1, - "K": 2, - "Reference": 3, - "": 3, - "cache": 1, - "//cleanup": 1, - "any": 1, - "dead": 1, - "entries": 1, - "rq.poll": 2, - "Map.Entry": 1, - "e": 31, - "cache.entrySet": 1, - "val": 3, - "e.getValue": 1, - "val.get": 1, - "cache.remove": 1, - "e.getKey": 1, - "RuntimeException": 5, - "runtimeException": 2, - "s": 10, - "Throwable": 4, - "sneakyThrow": 1, - "throw": 9, - "NullPointerException": 3, - "Util.": 1, - "": 1, - "sneakyThrow0": 2, - "@SuppressWarnings": 1, - "": 1, - "extends": 10, - "throws": 26, - "T": 2, - "nokogiri.internals": 1, - "nokogiri.internals.NokogiriHelpers.getNokogiriClass": 1, - "nokogiri.internals.NokogiriHelpers.isNamespace": 1, - "nokogiri.internals.NokogiriHelpers.stringOrNil": 1, - "nokogiri.HtmlDocument": 1, - "nokogiri.NokogiriService": 1, - "nokogiri.XmlDocument": 1, - "org.apache.xerces.parsers.DOMParser": 1, - "org.apache.xerces.xni.Augmentations": 1, - "org.apache.xerces.xni.QName": 1, - "org.apache.xerces.xni.XMLAttributes": 1, - "org.apache.xerces.xni.XNIException": 1, - "org.apache.xerces.xni.parser.XMLDocumentFilter": 1, - "org.apache.xerces.xni.parser.XMLParserConfiguration": 1, - "org.cyberneko.html.HTMLConfiguration": 1, - "org.cyberneko.html.filters.DefaultFilter": 1, - "org.jruby.Ruby": 2, - "org.jruby.RubyClass": 2, - "org.jruby.runtime.ThreadContext": 1, - "org.jruby.runtime.builtin.IRubyObject": 2, - "org.w3c.dom.Document": 1, - "org.w3c.dom.NamedNodeMap": 1, - "org.w3c.dom.NodeList": 1, - "HtmlDomParserContext": 3, - "XmlDomParserContext": 1, - "Ruby": 43, - "runtime": 88, - "IRubyObject": 35, - "options": 4, - "super": 7, - "encoding": 2, - "@Override": 6, - "protected": 8, - "initErrorHandler": 1, - "options.strict": 1, - "errorHandler": 6, - "NokogiriStrictErrorHandler": 1, - "options.noError": 2, - "options.noWarning": 2, - "NokogiriNonStrictErrorHandler4NekoHtml": 1, - "initParser": 1, - "XMLParserConfiguration": 1, - "config": 2, - "HTMLConfiguration": 1, - "XMLDocumentFilter": 3, - "removeNSAttrsFilter": 2, - "RemoveNSAttrsFilter": 2, - "elementValidityCheckFilter": 3, - "ElementValidityCheckFilter": 3, - "//XMLDocumentFilter": 1, - "filters": 3, - "config.setErrorHandler": 1, - "this.errorHandler": 2, - "parser": 1, - "DOMParser": 1, - "setProperty": 4, - "java_encoding": 2, - "setFeature": 4, - "enableDocumentFragment": 1, - "XmlDocument": 8, - "getNewEmptyDocument": 1, - "ThreadContext": 2, - "context": 8, - "XmlDocument.rbNew": 1, - "getNokogiriClass": 1, - "context.getRuntime": 3, - "wrapDocument": 1, - "RubyClass": 92, - "klazz": 107, - "Document": 2, - "document": 5, - "HtmlDocument": 7, - "htmlDocument": 6, - "NokogiriService.HTML_DOCUMENT_ALLOCATOR.allocate": 1, - "htmlDocument.setDocumentNode": 1, - "ruby_encoding.isNil": 1, - "detected_encoding": 2, - "detected_encoding.isNil": 1, - "ruby_encoding": 3, - "charset": 2, - "tryGetCharsetFromHtml5MetaTag": 2, - "stringOrNil": 1, - "htmlDocument.setEncoding": 1, - "htmlDocument.setParsedEncoding": 1, - ".equalsIgnoreCase": 5, - "document.getDocumentElement": 2, - ".getNodeName": 4, - "NodeList": 2, - "list": 1, - ".getChildNodes": 2, - "list.getLength": 1, - "list.item": 2, - "headers": 1, - "headers.getLength": 1, - "headers.item": 2, - "NamedNodeMap": 1, - "nodeMap": 1, - ".getAttributes": 1, - "k": 5, - "nodeMap.getLength": 1, - "nodeMap.item": 2, - ".getNodeValue": 1, - "DefaultFilter": 2, - "startElement": 2, - "QName": 2, - "element": 3, - "XMLAttributes": 2, - "attrs": 4, - "Augmentations": 2, - "augs": 4, - "XNIException": 2, - "attrs.getLength": 1, - "isNamespace": 1, - "attrs.getQName": 1, - "attrs.removeAttributeAt": 1, - "element.uri": 1, - "super.startElement": 2, - "NokogiriErrorHandler": 2, - "element_names": 3, - "g": 1, + "/PageSize": 1, + "setpagedevice": 1, + "A4": 1, + "EndSetup": 1, + "Page": 1, + "Test": 1, + "pageset": 1, + "sqrt": 1, + "showpage": 1, + "EOF": 1 + }, + "Max": { + "max": 1, + "v2": 1, + ";": 39, + "#N": 2, + "vpatcher": 1, + "#P": 33, + "toggle": 1, + "button": 4, + "window": 2, + "setfont": 1, + "Verdana": 1, + "linecount": 1, + "newex": 8, "r": 1, - "w": 1, - "y": 1, - "z": 1, - "isValid": 2, - "testee": 1, - "testee.toCharArray": 1, - "index": 4, - ".length": 1, - "testee.equals": 1, - "name.rawname": 2, - "errorHandler.getErrors": 1, - ".add": 1, - "Exception": 1, - "hudson.model": 1, - "hudson.ExtensionListView": 1, - "hudson.Functions": 1, - "hudson.Platform": 1, - "hudson.PluginManager": 1, - "hudson.cli.declarative.CLIResolver": 1, - "hudson.model.listeners.ItemListener": 1, - "hudson.slaves.ComputerListener": 1, - "hudson.util.CopyOnWriteList": 1, - "hudson.util.FormValidation": 1, - "jenkins.model.Jenkins": 1, - "org.jvnet.hudson.reactor.ReactorException": 1, - "org.kohsuke.stapler.QueryParameter": 1, - "org.kohsuke.stapler.Stapler": 1, - "org.kohsuke.stapler.StaplerRequest": 1, - "org.kohsuke.stapler.StaplerResponse": 1, - "javax.servlet.ServletContext": 1, - "javax.servlet.ServletException": 1, - "java.io.File": 1, - "java.io.IOException": 10, - "java.text.NumberFormat": 1, - "java.text.ParseException": 1, - "java.util.Collections": 2, - "java.util.List": 1, - "hudson.Util.fixEmpty": 1, - "Hudson": 5, - "Jenkins": 2, - "transient": 2, - "CopyOnWriteList": 4, - "": 2, - "itemListeners": 2, - "ExtensionListView.createCopyOnWriteList": 2, - "ItemListener.class": 1, - "": 2, - "computerListeners": 2, - "ComputerListener.class": 1, - "@CLIResolver": 1, - "getInstance": 2, - "Jenkins.getInstance": 2, - "File": 2, - "root": 6, - "ServletContext": 2, - "IOException": 8, - "InterruptedException": 2, - "ReactorException": 2, - "PluginManager": 1, - "pluginManager": 2, - "getJobListeners": 1, - "getComputerListeners": 1, - "Slave": 3, - "getSlave": 1, - "Node": 1, - "n": 3, - "getNode": 1, - "List": 3, - "": 2, - "getSlaves": 1, - "slaves": 3, - "setSlaves": 1, - "setNodes": 1, - "TopLevelItem": 3, - "getJob": 1, - "getItem": 1, - "getJobCaseInsensitive": 1, - "match": 2, - "Functions.toEmailSafeString": 2, - "item": 2, - "getItems": 1, - "item.getName": 1, - "synchronized": 1, - "doQuietDown": 2, - "StaplerResponse": 4, - "rsp": 6, - "ServletException": 3, - ".generateResponse": 2, - "doLogRss": 1, - "StaplerRequest": 4, - "req": 6, - "qs": 3, - "req.getQueryString": 1, - "rsp.sendRedirect2": 1, - "doFieldCheck": 3, - "fixEmpty": 8, - "req.getParameter": 4, - "FormValidation": 2, - "@QueryParameter": 4, - "value": 11, - "type": 3, - "errorText": 3, - "warningText": 3, - "FormValidation.error": 4, - "FormValidation.warning": 1, - "try": 26, - "type.equalsIgnoreCase": 2, - "NumberFormat.getInstance": 2, - ".parse": 2, - ".floatValue": 1, - "<=>": 1, - "0": 1, - "error": 1, - "Messages": 1, - "Hudson_NotAPositiveNumber": 1, - "equalsIgnoreCase": 1, - "number": 1, - "negative": 1, - "NumberFormat": 1, - "parse": 1, - "floatValue": 1, - "Messages.Hudson_NotANegativeNumber": 1, - "catch": 27, - "ParseException": 1, - "Messages.Hudson_NotANumber": 1, - "FormValidation.ok": 1, - "isWindows": 1, - "File.pathSeparatorChar": 1, - "isDarwin": 1, - "Platform.isDarwin": 1, - "adminCheck": 3, - "Stapler.getCurrentRequest": 1, - "Stapler.getCurrentResponse": 1, - "isAdmin": 4, - "rsp.sendError": 1, - "StaplerResponse.SC_FORBIDDEN": 1, - ".getACL": 1, - ".hasPermission": 1, - "ADMINISTER": 1, - "XSTREAM.alias": 1, - "Hudson.class": 1, - "MasterComputer": 1, - "Jenkins.MasterComputer": 1, - "CloudList": 3, - "Jenkins.CloudList": 1, - "h": 2, - "needed": 1, - "XStream": 1, - "deserialization": 1, - "nokogiri": 6, - "java.util.HashMap": 1, - "org.jruby.RubyArray": 1, - "org.jruby.RubyFixnum": 1, - "org.jruby.RubyModule": 1, - "org.jruby.runtime.ObjectAllocator": 1, - "org.jruby.runtime.load.BasicLibraryService": 1, - "NokogiriService": 1, - "implements": 3, - "BasicLibraryService": 1, - "nokogiriClassCacheGvarName": 1, - "Map": 1, - "": 2, - "nokogiriClassCache": 2, - "basicLoad": 1, - "ruby": 25, - "init": 2, - "createNokogiriClassCahce": 2, - "Collections.synchronizedMap": 1, - "HashMap": 1, - "nokogiriClassCache.put": 26, - "ruby.getClassFromPath": 26, - "RubyModule": 18, - "ruby.defineModule": 1, - "xmlModule": 7, - "nokogiri.defineModuleUnder": 3, - "xmlSaxModule": 3, - "xmlModule.defineModuleUnder": 1, - "htmlModule": 5, - "htmlSaxModule": 3, - "htmlModule.defineModuleUnder": 1, - "xsltModule": 3, - "createNokogiriModule": 2, - "createSyntaxErrors": 2, - "xmlNode": 5, - "createXmlModule": 2, - "createHtmlModule": 2, - "createDocuments": 2, - "createSaxModule": 2, - "createXsltModule": 2, - "encHandler": 1, - "nokogiri.defineClassUnder": 2, - "ruby.getObject": 13, - "ENCODING_HANDLER_ALLOCATOR": 2, - "encHandler.defineAnnotatedMethods": 1, - "EncodingHandler.class": 1, - "syntaxError": 2, - "ruby.getStandardError": 2, - ".getAllocator": 1, - "xmlSyntaxError": 4, - "xmlModule.defineClassUnder": 23, - "XML_SYNTAXERROR_ALLOCATOR": 2, - "xmlSyntaxError.defineAnnotatedMethods": 1, - "XmlSyntaxError.class": 1, - "node": 14, - "XML_NODE_ALLOCATOR": 2, - "node.defineAnnotatedMethods": 1, - "XmlNode.class": 1, - "attr": 1, - "XML_ATTR_ALLOCATOR": 2, - "attr.defineAnnotatedMethods": 1, - "XmlAttr.class": 1, - "attrDecl": 1, - "XML_ATTRIBUTE_DECL_ALLOCATOR": 2, - "attrDecl.defineAnnotatedMethods": 1, - "XmlAttributeDecl.class": 1, - "characterData": 3, - "comment": 1, - "XML_COMMENT_ALLOCATOR": 2, - "comment.defineAnnotatedMethods": 1, - "XmlComment.class": 1, - "text": 2, - "XML_TEXT_ALLOCATOR": 2, - "text.defineAnnotatedMethods": 1, - "XmlText.class": 1, - "cdata": 1, - "XML_CDATA_ALLOCATOR": 2, - "cdata.defineAnnotatedMethods": 1, - "XmlCdata.class": 1, - "dtd": 1, - "XML_DTD_ALLOCATOR": 2, - "dtd.defineAnnotatedMethods": 1, - "XmlDtd.class": 1, - "documentFragment": 1, - "XML_DOCUMENT_FRAGMENT_ALLOCATOR": 2, - "documentFragment.defineAnnotatedMethods": 1, - "XmlDocumentFragment.class": 1, - "XML_ELEMENT_ALLOCATOR": 2, - "element.defineAnnotatedMethods": 1, - "XmlElement.class": 1, - "elementContent": 1, - "XML_ELEMENT_CONTENT_ALLOCATOR": 2, - "elementContent.defineAnnotatedMethods": 1, - "XmlElementContent.class": 1, - "elementDecl": 1, - "XML_ELEMENT_DECL_ALLOCATOR": 2, - "elementDecl.defineAnnotatedMethods": 1, - "XmlElementDecl.class": 1, - "entityDecl": 1, - "XML_ENTITY_DECL_ALLOCATOR": 2, - "entityDecl.defineAnnotatedMethods": 1, - "XmlEntityDecl.class": 1, - "entityDecl.defineConstant": 6, - "RubyFixnum.newFixnum": 6, - "XmlEntityDecl.INTERNAL_GENERAL": 1, - "XmlEntityDecl.EXTERNAL_GENERAL_PARSED": 1, - "XmlEntityDecl.EXTERNAL_GENERAL_UNPARSED": 1, - "XmlEntityDecl.INTERNAL_PARAMETER": 1, - "XmlEntityDecl.EXTERNAL_PARAMETER": 1, - "XmlEntityDecl.INTERNAL_PREDEFINED": 1, - "entref": 1, - "XML_ENTITY_REFERENCE_ALLOCATOR": 2, - "entref.defineAnnotatedMethods": 1, - "XmlEntityReference.class": 1, - "namespace": 1, - "XML_NAMESPACE_ALLOCATOR": 2, - "namespace.defineAnnotatedMethods": 1, - "XmlNamespace.class": 1, - "nodeSet": 1, - "XML_NODESET_ALLOCATOR": 2, - "nodeSet.defineAnnotatedMethods": 1, - "XmlNodeSet.class": 1, - "pi": 1, - "XML_PROCESSING_INSTRUCTION_ALLOCATOR": 2, - "pi.defineAnnotatedMethods": 1, - "XmlProcessingInstruction.class": 1, - "reader": 1, - "XML_READER_ALLOCATOR": 2, - "reader.defineAnnotatedMethods": 1, - "XmlReader.class": 1, - "schema": 2, - "XML_SCHEMA_ALLOCATOR": 2, - "schema.defineAnnotatedMethods": 1, - "XmlSchema.class": 1, - "relaxng": 1, - "XML_RELAXNG_ALLOCATOR": 2, - "relaxng.defineAnnotatedMethods": 1, - "XmlRelaxng.class": 1, - "xpathContext": 1, - "XML_XPATHCONTEXT_ALLOCATOR": 2, - "xpathContext.defineAnnotatedMethods": 1, - "XmlXpathContext.class": 1, - "htmlElemDesc": 1, - "htmlModule.defineClassUnder": 3, - "HTML_ELEMENT_DESCRIPTION_ALLOCATOR": 2, - "htmlElemDesc.defineAnnotatedMethods": 1, - "HtmlElementDescription.class": 1, - "htmlEntityLookup": 1, - "HTML_ENTITY_LOOKUP_ALLOCATOR": 2, - "htmlEntityLookup.defineAnnotatedMethods": 1, - "HtmlEntityLookup.class": 1, - "xmlDocument": 5, - "XML_DOCUMENT_ALLOCATOR": 2, - "xmlDocument.defineAnnotatedMethods": 1, - "XmlDocument.class": 1, - "//RubyModule": 1, - "htmlDoc": 1, - "html.defineOrGetClassUnder": 1, - "HTML_DOCUMENT_ALLOCATOR": 2, - "htmlDocument.defineAnnotatedMethods": 1, - "HtmlDocument.class": 1, - "xmlSaxParserContext": 5, - "xmlSaxModule.defineClassUnder": 2, - "XML_SAXPARSER_CONTEXT_ALLOCATOR": 2, - "xmlSaxParserContext.defineAnnotatedMethods": 1, - "XmlSaxParserContext.class": 1, - "xmlSaxPushParser": 1, - "XML_SAXPUSHPARSER_ALLOCATOR": 2, - "xmlSaxPushParser.defineAnnotatedMethods": 1, - "XmlSaxPushParser.class": 1, - "htmlSaxParserContext": 4, - "htmlSaxModule.defineClassUnder": 1, - "HTML_SAXPARSER_CONTEXT_ALLOCATOR": 2, - "htmlSaxParserContext.defineAnnotatedMethods": 1, - "HtmlSaxParserContext.class": 1, - "stylesheet": 1, - "xsltModule.defineClassUnder": 1, - "XSLT_STYLESHEET_ALLOCATOR": 2, - "stylesheet.defineAnnotatedMethods": 1, - "XsltStylesheet.class": 2, - "xsltModule.defineAnnotatedMethod": 1, - "ObjectAllocator": 60, - "allocate": 30, - "EncodingHandler": 1, - "clone": 47, - "htmlDocument.clone": 1, - "clone.setMetaClass": 23, - "CloneNotSupportedException": 23, - "HtmlSaxParserContext": 5, - "htmlSaxParserContext.clone": 1, - "HtmlElementDescription": 1, - "HtmlEntityLookup": 1, - "XmlAttr": 5, - "xmlAttr": 3, - "xmlAttr.clone": 1, - "XmlCdata": 5, - "xmlCdata": 3, - "xmlCdata.clone": 1, - "XmlComment": 5, - "xmlComment": 3, - "xmlComment.clone": 1, - "xmlDocument.clone": 1, - "XmlDocumentFragment": 5, - "xmlDocumentFragment": 3, - "xmlDocumentFragment.clone": 1, - "XmlDtd": 5, - "xmlDtd": 3, - "xmlDtd.clone": 1, - "XmlElement": 5, - "xmlElement": 3, - "xmlElement.clone": 1, - "XmlElementDecl": 5, - "xmlElementDecl": 3, - "xmlElementDecl.clone": 1, - "XmlEntityReference": 5, - "xmlEntityRef": 3, - "xmlEntityRef.clone": 1, - "XmlNamespace": 5, - "xmlNamespace": 3, - "xmlNamespace.clone": 1, - "XmlNode": 5, - "xmlNode.clone": 1, - "XmlNodeSet": 5, - "xmlNodeSet": 5, - "xmlNodeSet.clone": 1, - "xmlNodeSet.setNodes": 1, - "RubyArray.newEmptyArray": 1, - "XmlProcessingInstruction": 5, - "xmlProcessingInstruction": 3, - "xmlProcessingInstruction.clone": 1, - "XmlReader": 5, - "xmlReader": 5, - "xmlReader.clone": 1, - "XmlAttributeDecl": 1, - "XmlEntityDecl": 1, - "runtime.newNotImplementedError": 1, - "XmlRelaxng": 5, - "xmlRelaxng": 3, - "xmlRelaxng.clone": 1, - "XmlSaxParserContext": 5, - "xmlSaxParserContext.clone": 1, - "XmlSaxPushParser": 1, - "XmlSchema": 5, - "xmlSchema": 3, - "xmlSchema.clone": 1, - "XmlSyntaxError": 5, - "xmlSyntaxError.clone": 1, - "XmlText": 6, - "xmlText": 3, - "xmlText.clone": 1, - "XmlXpathContext": 5, - "xmlXpathContext": 3, - "xmlXpathContext.clone": 1, - "XsltStylesheet": 4, - "xsltStylesheet": 3, - "xsltStylesheet.clone": 1, - "persons": 1, - "ProtocolBuffer": 2, - "registerAllExtensions": 1, - "com.google.protobuf.ExtensionRegistry": 2, - "registry": 1, - "interface": 1, - "PersonOrBuilder": 2, - "com.google.protobuf.MessageOrBuilder": 1, - "hasName": 5, - "java.lang.String": 15, - "getName": 3, - "com.google.protobuf.ByteString": 13, - "getNameBytes": 5, - "Person": 10, - "com.google.protobuf.GeneratedMessage": 1, - "com.google.protobuf.GeneratedMessage.Builder": 2, - "": 1, - "builder": 4, - "this.unknownFields": 4, - "builder.getUnknownFields": 1, - "noInit": 1, - "com.google.protobuf.UnknownFieldSet.getDefaultInstance": 1, - "defaultInstance": 4, - "getDefaultInstance": 2, - "getDefaultInstanceForType": 2, - "com.google.protobuf.UnknownFieldSet": 2, - "unknownFields": 3, - "@java.lang.Override": 4, - "getUnknownFields": 3, - "com.google.protobuf.CodedInputStream": 5, - "input": 18, - "com.google.protobuf.ExtensionRegistryLite": 8, - "extensionRegistry": 16, - "com.google.protobuf.InvalidProtocolBufferException": 9, - "initFields": 2, - "mutable_bitField0_": 1, - "com.google.protobuf.UnknownFieldSet.Builder": 1, - "com.google.protobuf.UnknownFieldSet.newBuilder": 1, - "done": 4, - "tag": 3, - "input.readTag": 1, - "parseUnknownField": 1, - "bitField0_": 15, - "|": 5, - "name_": 18, - "input.readBytes": 1, - "e.setUnfinishedMessage": 1, - "e.getMessage": 1, - ".setUnfinishedMessage": 1, - "finally": 2, - "unknownFields.build": 1, - "makeExtensionsImmutable": 1, - "com.google.protobuf.Descriptors.Descriptor": 4, - "persons.ProtocolBuffer.internal_static_persons_Person_descriptor": 3, - "com.google.protobuf.GeneratedMessage.FieldAccessorTable": 4, - "internalGetFieldAccessorTable": 2, - "persons.ProtocolBuffer.internal_static_persons_Person_fieldAccessorTable": 2, - ".ensureFieldAccessorsInitialized": 2, - "persons.ProtocolBuffer.Person.class": 2, - "persons.ProtocolBuffer.Person.Builder.class": 2, - "com.google.protobuf.Parser": 2, - "": 3, - "PARSER": 2, - "com.google.protobuf.AbstractParser": 1, - "parsePartialFrom": 1, - "getParserForType": 1, - "NAME_FIELD_NUMBER": 1, - "java.lang.Object": 7, - "&": 7, - "ref": 16, - "bs": 1, - "bs.toStringUtf8": 1, - "bs.isValidUtf8": 1, - "com.google.protobuf.ByteString.copyFromUtf8": 2, - "byte": 4, - "memoizedIsInitialized": 4, - "isInitialized": 5, - "writeTo": 1, - "com.google.protobuf.CodedOutputStream": 2, - "output": 2, - "getSerializedSize": 2, - "output.writeBytes": 1, - ".writeTo": 1, - "memoizedSerializedSize": 3, - ".computeBytesSize": 1, - ".getSerializedSize": 1, - "serialVersionUID": 1, - "L": 1, - "writeReplace": 1, - "java.io.ObjectStreamException": 1, - "super.writeReplace": 1, - "persons.ProtocolBuffer.Person": 22, - "parseFrom": 8, - "data": 8, - "PARSER.parseFrom": 8, - "java.io.InputStream": 4, - "parseDelimitedFrom": 2, - "PARSER.parseDelimitedFrom": 2, - "Builder": 20, - "newBuilder": 5, - "Builder.create": 1, - "newBuilderForType": 2, - "prototype": 2, - ".mergeFrom": 2, - "toBuilder": 1, - "com.google.protobuf.GeneratedMessage.BuilderParent": 2, - "parent": 4, - "": 1, - "persons.ProtocolBuffer.PersonOrBuilder": 1, - "maybeForceBuilderInitialization": 3, - "com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders": 1, - "create": 2, - "clear": 1, - "super.clear": 1, - "buildPartial": 3, - "getDescriptorForType": 1, - "persons.ProtocolBuffer.Person.getDefaultInstance": 2, - "build": 1, - "result": 5, - "result.isInitialized": 1, - "newUninitializedMessageException": 1, - "from_bitField0_": 2, - "to_bitField0_": 3, - "result.name_": 1, - "result.bitField0_": 1, - "onBuilt": 1, - "mergeFrom": 5, - "com.google.protobuf.Message": 1, - "other": 6, - "super.mergeFrom": 1, - "other.hasName": 1, - "other.name_": 1, - "onChanged": 4, - "this.mergeUnknownFields": 1, - "other.getUnknownFields": 1, - "parsedMessage": 5, - "PARSER.parsePartialFrom": 1, - "e.getUnfinishedMessage": 1, - ".toStringUtf8": 1, - "setName": 1, - "clearName": 1, - ".getName": 1, - "setNameBytes": 1, - "defaultInstance.initFields": 1, - "internal_static_persons_Person_descriptor": 3, - "internal_static_persons_Person_fieldAccessorTable": 2, - "com.google.protobuf.Descriptors.FileDescriptor": 5, - "descriptor": 3, - "descriptorData": 2, - "com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner": 2, - "assigner": 2, - "assignDescriptors": 1, - ".getMessageTypes": 1, - ".get": 1, - ".internalBuildGeneratedFileFrom": 1 + "jojo": 2, + "#B": 2, + "color": 2, + "s": 1, + "route": 1, + "append": 1, + "toto": 1, + "%": 1, + "counter": 2, + "#X": 1, + "flags": 1, + "newobj": 1, + "metro": 1, + "t": 2, + "message": 2, + "Goodbye": 1, + "World": 2, + "Hello": 1, + "connect": 13, + "fasten": 1, + "pop": 1, + "{": 126, + "}": 126, + "[": 163, + "]": 163 + }, + "KRL": { + "ruleset": 1, + "sample": 1, + "{": 3, + "meta": 1, + "name": 1, + "description": 1, + "<<": 1, + "Hello": 1, + "world": 1, + "author": 1, + "}": 3, + "rule": 1, + "hello": 1, + "select": 1, + "when": 1, + "web": 1, + "pageview": 1, + "notify": 1, + "(": 1, + ")": 1, + ";": 1 + }, + "Literate Agda": { + "documentclass": 1, + "{": 35, + "article": 1, + "}": 35, + "usepackage": 7, + "amssymb": 1, + "bbm": 1, + "[": 2, + "greek": 1, + "english": 1, + "]": 2, + "babel": 1, + "ucs": 1, + "utf8x": 1, + "inputenc": 1, + "autofe": 1, + "DeclareUnicodeCharacter": 3, + "ensuremath": 3, + "ulcorner": 1, + "urcorner": 1, + "overline": 1, + "equiv": 1, + "fancyvrb": 1, + "DefineVerbatimEnvironment": 1, + "code": 3, + "Verbatim": 1, + "%": 1, + "Add": 1, + "fancy": 1, + "options": 1, + "here": 1, + "if": 1, + "you": 3, + "like.": 1, + "begin": 2, + "document": 2, + "module": 3, + "NatCat": 1, + "where": 2, + "open": 2, + "import": 2, + "Relation.Binary.PropositionalEquality": 1, + "-": 21, + "If": 1, + "can": 1, + "show": 1, + "that": 1, + "a": 1, + "relation": 1, + "only": 1, + "ever": 1, + "has": 1, + "one": 1, + "inhabitant": 5, + "get": 1, + "the": 1, + "category": 1, + "laws": 1, + "for": 1, + "free": 1, + "EasyCategory": 3, + "(": 36, + "obj": 4, + "Set": 2, + ")": 36, + "_": 6, + "x": 34, + "y": 28, + "z": 18, + "id": 9, + "single": 4, + "r": 26, + "s": 29, + "assoc": 2, + "w": 4, + "t": 6, + "Data.Nat": 1, + "same": 5, + ".0": 2, + "n": 14, + "refl": 6, + ".": 5, + "suc": 6, + "m": 6, + "cong": 1, + "trans": 5, + ".n": 1, + "zero": 1, + "Nat": 1, + "end": 2 }, "JavaScript": { - "function": 1210, "(": 8513, + "function": 1210, ")": 8521, "{": 2736, - ";": 4052, - "//": 410, - "jshint": 1, - "_": 9, - "var": 910, - "Modal": 2, - "content": 5, - "options": 56, - "this.options": 6, - "this.": 2, - "element": 19, - ".delegate": 2, - ".proxy": 1, - "this.hide": 1, - "this": 577, "}": 2712, - "Modal.prototype": 1, - "constructor": 8, - "toggle": 10, - "return": 944, - "[": 1459, - "this.isShown": 3, - "]": 1456, - "show": 10, - "that": 33, - "e": 663, - ".Event": 1, - "element.trigger": 1, - "if": 1230, - "||": 648, - "e.isDefaultPrevented": 2, - ".addClass": 1, - "true": 147, - "escape.call": 1, - "backdrop.call": 1, - "transition": 1, - ".support.transition": 1, - "&&": 1017, - "that.": 3, - "element.hasClass": 1, - "element.parent": 1, - ".length": 24, - "element.appendTo": 1, - "document.body": 8, - "//don": 1, - "in": 170, - "shown": 2, - "hide": 8, - "body": 22, - "modal": 4, - "-": 705, - "open": 2, - "fade": 4, - "hidden": 12, - "
": 4, - "class=": 5, - "static": 2, - "keyup.dismiss.modal": 2, - "object": 59, - "string": 41, - "click.modal.data": 1, - "api": 1, - "data": 145, - "target": 44, - "href": 9, - ".extend": 1, - "target.data": 1, - "this.data": 5, - "e.preventDefault": 1, - "target.modal": 1, - "option": 12, - "window.jQuery": 7, - "Animal": 12, - "Horse": 12, - "Snake": 12, - "sam": 4, - "tom": 4, - "__hasProp": 2, - "Object.prototype.hasOwnProperty": 6, - "__extends": 6, - "child": 17, - "parent": 15, - "for": 262, - "key": 85, - "__hasProp.call": 2, - "ctor": 6, - "this.constructor": 5, - "ctor.prototype": 3, - "parent.prototype": 6, - "child.prototype": 4, - "new": 86, - "child.__super__": 3, - "name": 161, - "this.name": 7, - "Animal.prototype.move": 2, - "meters": 4, - "alert": 11, - "+": 1135, - "Snake.__super__.constructor.apply": 2, - "arguments": 83, - "Snake.prototype.move": 2, - "Snake.__super__.move.call": 2, - "Horse.__super__.constructor.apply": 2, - "Horse.prototype.move": 2, - "Horse.__super__.move.call": 2, - "sam.move": 2, - "tom.move": 2, ".call": 10, - ".hasOwnProperty": 2, - "Animal.name": 1, - "_super": 4, - "Snake.name": 1, - "Horse.name": 1, - "console.log": 3, - "util": 1, - "require": 9, - "net": 1, - "stream": 1, - "url": 23, - "EventEmitter": 3, - ".EventEmitter": 1, - "FreeList": 2, - ".FreeList": 1, - "HTTPParser": 2, - "process.binding": 1, - ".HTTPParser": 1, - "assert": 8, - ".ok": 1, - "END_OF_FILE": 3, - "debug": 15, - "process.env.NODE_DEBUG": 2, - "/http/.test": 1, - "x": 33, - "console.error": 3, - "else": 307, - "parserOnHeaders": 2, - "headers": 41, - "this.maxHeaderPairs": 2, - "<": 209, - "this._headers.length": 1, - "this._headers": 13, - "this._headers.concat": 1, - "this._url": 1, - "parserOnHeadersComplete": 2, - "info": 2, - "parser": 27, - "info.headers": 1, - "info.url": 1, - "parser._headers": 6, - "parser._url": 4, - "parser.incoming": 9, - "IncomingMessage": 4, - "parser.socket": 4, - "parser.incoming.httpVersionMajor": 1, - "info.versionMajor": 2, - "parser.incoming.httpVersionMinor": 1, - "info.versionMinor": 2, - "parser.incoming.httpVersion": 1, - "parser.incoming.url": 1, - "n": 874, - "headers.length": 2, - "parser.maxHeaderPairs": 4, - "Math.min": 5, - "i": 853, - "k": 302, - "v": 135, - "parser.incoming._addHeaderLine": 2, - "info.method": 2, - "parser.incoming.method": 1, - "parser.incoming.statusCode": 2, - "info.statusCode": 1, - "parser.incoming.upgrade": 4, - "info.upgrade": 2, - "skipBody": 3, - "false": 142, - "response": 3, - "to": 92, - "HEAD": 3, - "or": 38, - "CONNECT": 1, - "parser.onIncoming": 3, - "info.shouldKeepAlive": 1, - "parserOnBody": 2, - "b": 961, - "start": 20, - "len": 11, - "slice": 10, - "b.slice": 1, - "parser.incoming._paused": 2, - "parser.incoming._pendings.length": 2, - "parser.incoming._pendings.push": 2, - "parser.incoming._emitData": 1, - "parserOnMessageComplete": 2, - "parser.incoming.complete": 2, - "parser.incoming.readable": 1, - "parser.incoming._emitEnd": 1, - "parser.socket.readable": 1, - "parser.socket.resume": 1, - "parsers": 2, - "HTTPParser.REQUEST": 2, - "parser.onHeaders": 1, - "parser.onHeadersComplete": 1, - "parser.onBody": 1, - "parser.onMessageComplete": 1, - "exports.parsers": 1, - "CRLF": 13, - "STATUS_CODES": 2, - "exports.STATUS_CODES": 1, - "RFC": 16, - "obsoleted": 1, - "by": 12, - "connectionExpression": 1, - "/Connection/i": 1, - "transferEncodingExpression": 1, - "/Transfer": 1, - "Encoding/i": 1, - "closeExpression": 1, - "/close/i": 1, - "chunkExpression": 1, - "/chunk/i": 1, - "contentLengthExpression": 1, - "/Content": 1, - "Length/i": 1, - "dateExpression": 1, - "/Date/i": 1, - "expectExpression": 1, - "/Expect/i": 1, - "continueExpression": 1, - "/100": 2, - "continue/i": 1, - "dateCache": 5, - "utcDate": 2, - "d": 771, - "Date": 4, - "d.toUTCString": 1, - "setTimeout": 19, - "undefined": 328, - "d.getMilliseconds": 1, - "socket": 26, - "stream.Stream.call": 2, - "this.socket": 10, - "this.connection": 8, - "this.httpVersion": 1, - "null": 427, - "this.complete": 2, - "this.headers": 2, - "this.trailers": 2, - "this.readable": 1, - "this._paused": 3, - "this._pendings": 1, - "this._endEmitted": 3, - "this.url": 1, - "this.method": 2, - "this.statusCode": 3, - "this.client": 1, - "util.inherits": 7, - "stream.Stream": 2, - "exports.IncomingMessage": 1, - "IncomingMessage.prototype.destroy": 1, - "error": 20, - "this.socket.destroy": 3, - "IncomingMessage.prototype.setEncoding": 1, - "encoding": 26, - "StringDecoder": 2, - ".StringDecoder": 1, - "lazy": 1, - "load": 5, - "this._decoder": 2, - "IncomingMessage.prototype.pause": 1, - "this.socket.pause": 1, - "IncomingMessage.prototype.resume": 1, - "this.socket.resume": 1, - "this._emitPending": 1, - "IncomingMessage.prototype._emitPending": 1, - "callback": 23, - "this._pendings.length": 1, - "self": 17, - "process.nextTick": 1, - "while": 53, - "self._paused": 1, - "self._pendings.length": 2, - "chunk": 14, - "self._pendings.shift": 1, - "Buffer.isBuffer": 2, - "self._emitData": 1, - "self.readable": 1, - "self._emitEnd": 1, - "IncomingMessage.prototype._emitData": 1, - "this._decoder.write": 1, - "string.length": 1, - "this.emit": 5, - "IncomingMessage.prototype._emitEnd": 1, - "IncomingMessage.prototype._addHeaderLine": 1, - "field": 36, - "value": 98, - "dest": 12, - "field.toLowerCase": 1, - "switch": 30, - "case": 136, - ".push": 3, - "break": 111, - "default": 21, - "field.slice": 1, - "OutgoingMessage": 5, - "this.output": 3, - "this.outputEncodings": 2, - "this.writable": 1, - "this._last": 3, - "this.chunkedEncoding": 6, - "this.shouldKeepAlive": 4, - "this.useChunkedEncodingByDefault": 4, - "this.sendDate": 3, - "this._hasBody": 6, - "this._trailer": 5, - "this.finished": 4, - "exports.OutgoingMessage": 1, - "OutgoingMessage.prototype.destroy": 1, - "OutgoingMessage.prototype._send": 1, - "this._headerSent": 5, - "typeof": 132, - "this._header": 10, - "this.output.unshift": 1, - "this.outputEncodings.unshift": 1, - "this._writeRaw": 2, - "OutgoingMessage.prototype._writeRaw": 1, - "data.length": 3, - "this.connection._httpMessage": 3, - "this.connection.writable": 3, - "this.output.length": 5, - "this._buffer": 2, - "c": 775, - "this.output.shift": 2, - "this.outputEncodings.shift": 2, - "this.connection.write": 4, - "OutgoingMessage.prototype._buffer": 1, - "length": 48, - "this.output.push": 2, - "this.outputEncodings.push": 2, - "lastEncoding": 2, - "lastData": 2, - "data.constructor": 1, - "lastData.constructor": 1, - "OutgoingMessage.prototype._storeHeader": 1, - "firstLine": 2, - "sentConnectionHeader": 3, - "sentContentLengthHeader": 4, - "sentTransferEncodingHeader": 3, - "sentDateHeader": 3, - "sentExpect": 3, - "messageHeader": 7, - "store": 3, - "connectionExpression.test": 1, - "closeExpression.test": 1, - "self._last": 4, - "self.shouldKeepAlive": 4, - "transferEncodingExpression.test": 1, - "chunkExpression.test": 1, - "self.chunkedEncoding": 1, - "contentLengthExpression.test": 1, - "dateExpression.test": 1, - "expectExpression.test": 1, - "keys": 11, - "Object.keys": 5, - "isArray": 10, - "Array.isArray": 7, - "l": 312, - "keys.length": 5, - "j": 265, - "value.length": 1, - "shouldSendKeepAlive": 2, - "this.agent": 2, - "this._send": 8, - "OutgoingMessage.prototype.setHeader": 1, - "arguments.length": 18, - "throw": 27, - "Error": 16, - "name.toLowerCase": 6, - "this._headerNames": 5, - "OutgoingMessage.prototype.getHeader": 1, - "OutgoingMessage.prototype.removeHeader": 1, - "delete": 39, - "OutgoingMessage.prototype._renderHeaders": 1, - "OutgoingMessage.prototype.write": 1, - "this._implicitHeader": 2, - "TypeError": 2, - "chunk.length": 2, - "ret": 62, - "Buffer.byteLength": 2, - "len.toString": 2, - "OutgoingMessage.prototype.addTrailers": 1, - "OutgoingMessage.prototype.end": 1, - "hot": 3, - ".toString": 3, - "this.write": 1, - "Last": 2, - "chunk.": 1, - "this._finish": 2, - "OutgoingMessage.prototype._finish": 1, - "instanceof": 19, - "ServerResponse": 5, - "DTRACE_HTTP_SERVER_RESPONSE": 1, - "ClientRequest": 6, - "DTRACE_HTTP_CLIENT_REQUEST": 1, - "OutgoingMessage.prototype._flush": 1, - "this.socket.writable": 2, - "XXX": 1, - "Necessary": 1, - "this.socket.write": 1, - "req": 32, - "OutgoingMessage.call": 2, - "req.method": 5, - "req.httpVersionMajor": 2, - "req.httpVersionMinor": 2, - "exports.ServerResponse": 1, - "ServerResponse.prototype.statusCode": 1, - "onServerResponseClose": 3, - "this._httpMessage.emit": 2, - "ServerResponse.prototype.assignSocket": 1, - "socket._httpMessage": 9, - "socket.on": 2, - "this._flush": 1, - "ServerResponse.prototype.detachSocket": 1, - "socket.removeListener": 5, - "ServerResponse.prototype.writeContinue": 1, - "this._sent100": 2, - "ServerResponse.prototype._implicitHeader": 1, - "this.writeHead": 1, - "ServerResponse.prototype.writeHead": 1, - "statusCode": 7, - "reasonPhrase": 4, - "headerIndex": 4, - "obj": 40, - "this._renderHeaders": 3, - "obj.length": 1, - "obj.push": 1, - "statusLine": 2, - "statusCode.toString": 1, - "this._expect_continue": 1, - "this._storeHeader": 2, - "ServerResponse.prototype.writeHeader": 1, - "this.writeHead.apply": 1, - "Agent": 5, - "self.options": 2, - "self.requests": 6, - "self.sockets": 3, - "self.maxSockets": 1, - "self.options.maxSockets": 1, - "Agent.defaultMaxSockets": 2, - "self.on": 1, - "host": 29, - "port": 29, - "localAddress": 15, - ".shift": 1, - ".onSocket": 1, - "socket.destroy": 10, - "self.createConnection": 2, - "net.createConnection": 3, - "exports.Agent": 1, - "Agent.prototype.defaultPort": 1, - "Agent.prototype.addRequest": 1, - "this.sockets": 9, - "this.maxSockets": 1, - "req.onSocket": 1, - "this.createSocket": 2, - "this.requests": 5, - "Agent.prototype.createSocket": 1, - "util._extend": 1, - "options.port": 4, - "options.host": 4, - "options.localAddress": 3, - "s": 290, - "onFree": 3, - "self.emit": 9, - "s.on": 4, - "onClose": 3, - "err": 5, - "self.removeSocket": 2, - "onRemove": 3, - "s.removeListener": 3, - "Agent.prototype.removeSocket": 1, - "index": 5, - ".indexOf": 2, - ".splice": 5, - ".emit": 1, - "globalAgent": 3, - "exports.globalAgent": 1, - "cb": 16, - "self.agent": 3, - "options.agent": 3, - "defaultPort": 3, - "options.defaultPort": 1, - "options.hostname": 1, - "options.setHost": 1, - "setHost": 2, - "self.socketPath": 4, - "options.socketPath": 1, - "method": 30, - "self.method": 3, - "options.method": 2, - ".toUpperCase": 3, - "self.path": 3, - "options.path": 2, - "self.once": 2, - "options.headers": 7, - "self.setHeader": 1, - "this.getHeader": 2, - "hostHeader": 3, - "this.setHeader": 2, - "options.auth": 2, - "//basic": 1, - "auth": 1, - "Buffer": 1, - "self.useChunkedEncodingByDefault": 2, - "self._storeHeader": 2, - "self.getHeader": 1, - "self._renderHeaders": 1, - "options.createConnection": 4, - "self.onSocket": 3, - "self.agent.addRequest": 1, - "conn": 3, - "self._deferToConnect": 1, - "self._flush": 1, - "exports.ClientRequest": 1, - "ClientRequest.prototype._implicitHeader": 1, - "this.path": 1, - "ClientRequest.prototype.abort": 1, - "this._deferToConnect": 3, - "createHangUpError": 3, - "error.code": 1, - "freeParser": 9, - "parser.socket.onend": 1, - "parser.socket.ondata": 1, - "parser.socket.parser": 1, - "parsers.free": 1, - "req.parser": 1, - "socketCloseListener": 2, - "socket.parser": 3, - "req.emit": 8, - "req.res": 8, - "req.res.readable": 1, - "req.res.emit": 1, - "res": 14, - "req.res._emitPending": 1, - "res._emitEnd": 1, - "res.emit": 1, - "req._hadError": 3, - "parser.finish": 6, - "socketErrorListener": 2, - "err.message": 1, - "err.stack": 1, - "socketOnEnd": 1, - "this._httpMessage": 3, - "this.parser": 2, - "socketOnData": 1, - "end": 14, - "parser.execute": 2, - "bytesParsed": 4, - "socket.ondata": 3, - "socket.onend": 3, - "bodyHead": 4, - "d.slice": 2, - "eventName": 21, - "req.listeners": 1, - "req.upgradeOrConnect": 1, - "socket.emit": 1, - "parserOnIncomingClient": 1, - "shouldKeepAlive": 4, - "res.upgrade": 1, - "skip": 5, - "isHeadResponse": 2, - "res.statusCode": 1, - "Clear": 1, - "so": 8, - "we": 25, - "don": 5, - "continue": 18, - "ve": 3, - "been": 5, - "upgraded": 1, - "via": 2, - "WebSockets": 1, - "also": 5, - "shouldn": 2, - "AGENT": 2, - "socket.destroySoon": 2, - "keep": 1, - "alive": 1, - "close": 2, - "free": 1, - "number": 13, - "an": 12, - "important": 1, - "promisy": 1, - "thing": 2, - "all": 16, - "the": 107, - "onSocket": 3, - "self.socket.writable": 1, - "self.socket": 5, - ".apply": 7, - "arguments_": 2, - "self.socket.once": 1, - "ClientRequest.prototype.setTimeout": 1, - "msecs": 4, - "this.once": 2, - "emitTimeout": 4, - "this.socket.setTimeout": 1, - "this.socket.once": 1, - "this.setTimeout": 3, - "sock": 1, - "ClientRequest.prototype.setNoDelay": 1, - "ClientRequest.prototype.setSocketKeepAlive": 1, - "ClientRequest.prototype.clearTimeout": 1, - "exports.request": 2, - "url.parse": 1, - "options.protocol": 3, - "exports.get": 1, - "req.end": 1, - "ondrain": 3, - "httpSocketSetup": 2, - "Server": 6, - "requestListener": 6, - "net.Server.call": 1, - "allowHalfOpen": 1, - "this.addListener": 2, - "this.httpAllowHalfOpen": 1, - "connectionListener": 3, - "net.Server": 1, - "exports.Server": 1, - "exports.createServer": 1, - "outgoing": 2, - "incoming": 2, - "abortIncoming": 3, - "incoming.length": 2, - "incoming.shift": 2, - "serverSocketCloseListener": 3, - "socket.setTimeout": 1, - "*": 70, - "minute": 1, - "timeout": 2, - "socket.once": 1, - "parsers.alloc": 1, - "parser.reinitialize": 1, - "this.maxHeadersCount": 2, - "<<": 4, - "socket.addListener": 2, - "self.listeners": 2, - "req.socket": 1, - "self.httpAllowHalfOpen": 1, - "socket.writable": 2, - "socket.end": 2, - "outgoing.length": 2, - "._last": 1, - "socket._httpMessage._last": 1, - "incoming.push": 1, - "res.shouldKeepAlive": 1, - "DTRACE_HTTP_SERVER_REQUEST": 1, - "outgoing.push": 1, - "res.assignSocket": 1, - "res.on": 1, - "res.detachSocket": 1, - "res._last": 1, - "m": 76, - "outgoing.shift": 1, - "m.assignSocket": 1, - "req.headers": 2, - "continueExpression.test": 1, - "res._expect_continue": 1, - "res.writeContinue": 1, - "Not": 4, + "this": 577, + ";": 4052, "a": 1489, - "response.": 1, - "even": 3, - "exports._connectionListener": 1, - "Client": 6, - "this.host": 1, - "this.port": 1, - "maxSockets": 1, - "Client.prototype.request": 1, - "path": 5, - "self.host": 1, - "self.port": 1, - "c.on": 2, - "exports.Client": 1, - "module.deprecate": 2, - "exports.createClient": 1, - "cubes": 4, - "list": 21, - "math": 4, - "num": 23, - "opposite": 6, - "race": 4, - "square": 10, - "__slice": 2, - "Array.prototype.slice": 6, - "root": 5, - "Math.sqrt": 2, - "cube": 2, - "runners": 6, - "winner": 6, - "__slice.call": 2, - "print": 2, - "elvis": 4, - "_i": 10, - "_len": 6, - "_results": 6, - "list.length": 5, - "_results.push": 2, - "math.cube": 2, - ".slice": 6, - "A": 24, - "w": 110, - "ma": 3, - "c.isReady": 4, - "try": 44, - "s.documentElement.doScroll": 2, - "catch": 38, - "c.ready": 7, - "Qa": 1, - "b.src": 4, - "c.ajax": 1, - "async": 5, - "dataType": 6, - "c.globalEval": 1, - "b.text": 3, - "b.textContent": 2, - "b.innerHTML": 3, - "b.parentNode": 4, - "b.parentNode.removeChild": 2, - "X": 6, - "f": 666, - "a.length": 23, - "o": 322, - "c.isFunction": 9, - "d.call": 3, - "J": 5, - ".getTime": 3, - "Y": 3, - "Z": 6, - "na": 1, - ".type": 2, - "c.event.handle.apply": 1, - "oa": 1, - "r": 261, - "c.data": 12, - "a.liveFired": 4, - "i.live": 1, - "a.button": 2, - "a.type": 14, - "u": 304, - "i.live.slice": 1, - "u.length": 3, - "i.origType.replace": 1, - "O": 6, - "f.push": 5, - "i.selector": 3, - "u.splice": 1, - "a.target": 5, - ".closest": 4, - "a.currentTarget": 4, - "j.length": 2, - ".selector": 1, - ".elem": 1, - "i.preType": 2, - "a.relatedTarget": 2, - "d.push": 1, - "elem": 101, - "handleObj": 2, - "d.length": 8, - "j.elem": 2, - "a.data": 2, - "j.handleObj.data": 1, - "a.handleObj": 2, - "j.handleObj": 1, - "j.handleObj.origHandler.apply": 1, - "pa": 1, - "b.replace": 3, - "/": 290, - "./g": 2, - ".replace": 38, - "/g": 37, - "qa": 1, - "a.parentNode": 6, - "a.parentNode.nodeType": 2, - "ra": 1, - "b.each": 1, - "this.nodeName": 4, - ".nodeName": 2, - "f.events": 1, - "e.handle": 2, - "e.events": 2, - "c.event.add": 1, - ".data": 3, - "sa": 2, - ".ownerDocument": 5, - "ta.test": 1, - "c.support.checkClone": 2, - "ua.test": 1, - "c.fragments": 2, - "b.createDocumentFragment": 1, - "c.clean": 1, - "fragment": 27, - "cacheable": 2, - "K": 4, - "c.each": 2, - "va.concat.apply": 1, - "va.slice": 1, - "wa": 1, - "a.document": 3, + "b": 961, + "cy": 4, + "return": 944, + "f.isWindow": 2, "a.nodeType": 27, "a.defaultView": 2, + "||": 648, "a.parentWindow": 2, - "c.fn.init": 1, - "Ra": 2, - "A.jQuery": 3, - "Sa": 2, - "A.": 3, - "A.document": 1, - "T": 4, - "Ta": 1, - "<[\\w\\W]+>": 4, - "|": 206, - "#": 13, - "Ua": 1, - ".": 91, - "Va": 1, - "S/": 4, - "Wa": 2, - "u00A0": 2, - "Xa": 1, - "<(\\w+)\\s*\\/?>": 4, - "<\\/\\1>": 4, - "P": 4, - "navigator.userAgent": 3, - "xa": 3, - "Q": 6, - "L": 10, - "Object.prototype.toString": 7, - "aa": 1, - "ba": 3, - "Array.prototype.push": 4, - "R": 2, - "ya": 2, - "Array.prototype.indexOf": 4, - "c.fn": 2, - "c.prototype": 1, - "init": 7, - "this.context": 17, - "this.length": 40, - "s.body": 2, - "this.selector": 16, - "Ta.exec": 1, - "b.ownerDocument": 6, - "Xa.exec": 1, - "c.isPlainObject": 3, - "s.createElement": 10, - "c.fn.attr.call": 1, - "f.createElement": 1, - "a.cacheable": 1, - "a.fragment.cloneNode": 1, - "a.fragment": 1, - ".childNodes": 2, - "c.merge": 4, - "s.getElementById": 1, - "b.id": 1, - "T.find": 1, - "/.test": 19, - "s.getElementsByTagName": 2, - "b.jquery": 1, - ".find": 5, - "T.ready": 1, - "a.selector": 4, - "a.context": 2, - "c.makeArray": 3, - "selector": 40, - "jquery": 3, - "size": 6, - "toArray": 2, - "R.call": 2, - "get": 24, - "this.toArray": 3, - "this.slice": 5, - "pushStack": 4, - "c.isArray": 5, - "ba.apply": 1, - "f.prevObject": 1, - "f.context": 1, - "f.selector": 2, - "each": 17, - "ready": 31, - "c.bindReady": 1, - "a.call": 17, - "Q.push": 1, - "eq": 2, - "first": 10, - "this.eq": 4, - "last": 6, - "this.pushStack": 12, - "R.apply": 1, - ".join": 14, - "map": 7, - "c.map": 1, - "this.prevObject": 3, - "push": 11, - "sort": 4, - ".sort": 9, - "splice": 5, - "c.fn.init.prototype": 1, - "c.extend": 7, - "c.fn.extend": 4, - "noConflict": 4, - "isReady": 5, - "c.fn.triggerHandler": 1, - ".triggerHandler": 1, - "bindReady": 5, - "s.readyState": 2, - "s.addEventListener": 3, - "A.addEventListener": 1, - "s.attachEvent": 3, - "A.attachEvent": 1, - "A.frameElement": 1, - "isFunction": 12, - "isPlainObject": 4, - "a.setInterval": 2, - "a.constructor": 2, - "aa.call": 3, - "a.constructor.prototype": 2, - "isEmptyObject": 7, - "parseJSON": 4, - "c.trim": 3, - "a.replace": 7, - "@": 1, - "d*": 8, - "eE": 4, - "s*": 15, - "A.JSON": 1, - "A.JSON.parse": 2, - "Function": 3, - "c.error": 2, - "noop": 3, - "globalEval": 2, - "Va.test": 1, - "s.documentElement": 2, - "d.type": 2, - "c.support.scriptEval": 2, - "d.appendChild": 3, - "s.createTextNode": 2, - "d.text": 1, - "b.insertBefore": 3, - "b.firstChild": 5, - "b.removeChild": 3, - "nodeName": 20, - "a.nodeName": 12, - "a.nodeName.toUpperCase": 2, - "b.toUpperCase": 3, - "b.apply": 2, - "b.call": 4, - "trim": 5, - "makeArray": 3, - "ba.call": 1, - "inArray": 5, - "b.indexOf": 2, - "b.length": 12, - "merge": 2, - "grep": 6, - "f.length": 5, - "f.concat.apply": 1, - "guid": 5, - "proxy": 4, - "a.apply": 2, - "b.guid": 2, - "a.guid": 7, - "c.guid": 1, - "uaMatch": 3, - "a.toLowerCase": 4, - "webkit": 6, - "w.": 17, - "/.exec": 4, - "opera": 4, - ".*version": 4, - "msie": 4, - "/compatible/.test": 1, - "mozilla": 4, - ".*": 20, - "rv": 4, - "browser": 11, - "version": 10, - "c.uaMatch": 1, - "P.browser": 2, - "c.browser": 1, - "c.browser.version": 1, - "P.version": 1, - "c.browser.webkit": 1, - "c.browser.safari": 1, - "c.inArray": 2, - "ya.call": 1, - "s.removeEventListener": 1, - "s.detachEvent": 1, - "c.support": 2, - "d.style.display": 5, - "d.innerHTML": 2, - "d.getElementsByTagName": 6, - "e.length": 9, - "leadingWhitespace": 3, - "d.firstChild.nodeType": 1, - "tbody": 7, - "htmlSerialize": 3, - "style": 30, - "/red/.test": 1, - "j.getAttribute": 2, - "hrefNormalized": 3, - "opacity": 13, - "j.style.opacity": 1, - "cssFloat": 4, - "j.style.cssFloat": 1, - "checkOn": 4, - ".value": 1, - "optSelected": 3, - ".appendChild": 1, - ".selected": 1, - "parentNode": 10, - "d.removeChild": 1, - ".parentNode": 7, - "deleteExpando": 3, - "checkClone": 1, - "scriptEval": 1, - "noCloneEvent": 3, - "boxModel": 1, - "b.type": 4, - "b.appendChild": 1, - "a.insertBefore": 2, - "a.firstChild": 6, - "b.test": 1, - "c.support.deleteExpando": 2, - "a.removeChild": 2, - "d.attachEvent": 2, - "d.fireEvent": 1, - "c.support.noCloneEvent": 1, - "d.detachEvent": 1, - "d.cloneNode": 1, - ".fireEvent": 3, - "s.createDocumentFragment": 1, - "a.appendChild": 3, - "d.firstChild": 2, - "a.cloneNode": 3, - ".cloneNode": 4, - ".lastChild.checked": 2, - "k.style.width": 1, - "k.style.paddingLeft": 1, - "s.body.appendChild": 1, - "c.boxModel": 1, - "c.support.boxModel": 1, - "k.offsetWidth": 1, - "s.body.removeChild": 1, - ".style.display": 5, - "n.setAttribute": 1, - "c.support.submitBubbles": 1, - "c.support.changeBubbles": 1, - "c.props": 2, - "readonly": 3, - "maxlength": 2, - "cellspacing": 2, - "rowspan": 2, - "colspan": 2, - "tabindex": 4, - "usemap": 2, - "frameborder": 2, - "G": 11, - "Ya": 2, - "za": 3, - "cache": 45, - "expando": 14, - "noData": 3, - "embed": 3, - "applet": 2, - "c.noData": 2, - "a.nodeName.toLowerCase": 3, - "c.cache": 2, - "removeData": 8, - "c.isEmptyObject": 1, - "c.removeData": 2, - "c.expando": 2, - "a.removeAttribute": 3, - "this.each": 42, - "a.split": 4, - "this.triggerHandler": 6, - "this.trigger": 2, - ".each": 3, - "queue": 7, - "dequeue": 6, - "c.queue": 3, - "d.shift": 2, - "d.unshift": 2, - "f.call": 1, - "c.dequeue": 4, - "delay": 4, - "c.fx": 1, - "c.fx.speeds": 1, - "this.queue": 4, - "clearQueue": 2, - "Aa": 3, - "t": 436, - "ca": 6, - "Za": 2, - "r/g": 2, - "/href": 1, - "src": 7, - "style/": 1, - "ab": 1, - "button": 24, - "input": 25, - "/i": 22, - "bb": 2, - "select": 20, - "textarea": 8, - "area": 2, - "Ba": 3, - "/radio": 1, - "checkbox/": 1, - "attr": 13, - "c.attr": 4, - "removeAttr": 5, - "this.nodeType": 4, - "this.removeAttribute": 1, - "addClass": 2, - "r.addClass": 1, - "r.attr": 1, - ".split": 19, - "e.nodeType": 7, - "e.className": 14, - "j.indexOf": 1, - "removeClass": 2, - "n.removeClass": 1, - "n.attr": 1, - "j.replace": 2, - "toggleClass": 2, - "j.toggleClass": 1, - "j.attr": 1, - "i.hasClass": 1, - "this.className": 10, - "hasClass": 2, - "": 1, - "className": 4, - "replace": 8, - "indexOf": 5, - "val": 13, - "c.nodeName": 4, - "b.attributes.value": 1, - ".specified": 1, - "b.value": 4, - "b.selectedIndex": 2, - "b.options": 1, - "": 1, - "i=": 31, - "selected": 5, - "a=": 23, - "test": 21, - "type": 49, - "support": 13, - "getAttribute": 3, - "on": 37, - "o=": 13, - "n=": 10, - "r=": 18, - "nodeType=": 6, - "call": 9, - "checked=": 1, - "this.selected": 1, - ".val": 5, - "this.selectedIndex": 1, - "this.value": 4, - "attrFn": 2, - "css": 7, - "html": 10, - "text": 14, - "width": 32, - "height": 25, - "offset": 21, - "c.attrFn": 1, - "c.isXMLDoc": 1, - "a.test": 2, - "ab.test": 1, - "a.getAttributeNode": 7, - ".nodeValue": 1, - "b.specified": 2, - "bb.test": 2, - "cb.test": 1, - "a.href": 2, - "c.support.style": 1, - "a.style.cssText": 3, - "a.setAttribute": 7, - "c.support.hrefNormalized": 1, - "a.getAttribute": 11, - "c.style": 1, - "db": 1, - "handle": 15, - "click": 11, - "events": 18, - "altKey": 4, - "attrChange": 4, - "attrName": 4, - "bubbles": 4, - "cancelable": 4, - "charCode": 7, - "clientX": 6, - "clientY": 5, - "ctrlKey": 6, - "currentTarget": 4, - "detail": 3, - "eventPhase": 4, - "fromElement": 6, - "handler": 14, - "keyCode": 6, - "layerX": 3, - "layerY": 3, - "metaKey": 5, - "newValue": 3, - "offsetX": 4, - "offsetY": 4, - "originalTarget": 1, - "pageX": 4, - "pageY": 4, - "prevValue": 3, - "relatedNode": 4, - "relatedTarget": 6, - "screenX": 4, - "screenY": 4, - "shiftKey": 4, - "srcElement": 5, - "toElement": 5, - "view": 4, - "wheelDelta": 3, - "which": 8, - "mouseover": 12, - "mouseout": 12, - "form": 12, - "click.specialSubmit": 2, - "submit": 14, - "image": 5, - "keypress.specialSubmit": 2, - "password": 5, - ".specialSubmit": 2, - "radio": 17, - "checkbox": 14, - "multiple": 7, - "_change_data": 6, - "focusout": 11, - "change": 16, - "file": 5, - ".specialChange": 4, - "focusin": 9, - "bind": 3, - "one": 15, - "unload": 5, - "live": 8, - "lastToggle": 4, - "die": 3, - "hover": 3, - "mouseenter": 9, - "mouseleave": 9, - "focus": 7, - "blur": 8, - "resize": 3, - "scroll": 6, - "dblclick": 3, - "mousedown": 3, - "mouseup": 3, - "mousemove": 3, - "keydown": 4, - "keypress": 4, - "keyup": 3, - "onunload": 1, - "g": 441, - "h": 499, - "q": 34, - "h.nodeType": 4, - "p": 110, - "y": 101, - "S": 8, - "H": 8, - "M": 9, - "I": 7, - "f.exec": 2, - "p.push": 2, - "p.length": 10, - "r.exec": 1, - "n.relative": 5, - "ga": 2, - "p.shift": 4, - "n.match.ID.test": 2, - "k.find": 6, - "v.expr": 4, - "k.filter": 5, - "v.set": 5, - "expr": 2, - "p.pop": 4, - "set": 22, - "z": 21, - "h.parentNode": 3, - "D": 9, - "k.error": 2, - "j.call": 2, - ".nodeType": 9, - "E": 11, - "l.push": 2, - "l.push.apply": 1, - "k.uniqueSort": 5, - "B": 5, - "g.sort": 1, - "g.length": 2, - "g.splice": 2, - "k.matches": 1, - "n.order.length": 1, - "n.order": 1, - "n.leftMatch": 1, - ".exec": 2, - "q.splice": 1, - "y.substr": 1, - "y.length": 1, - "Syntax": 3, - "unrecognized": 3, - "expression": 4, - "ID": 8, - "NAME": 2, - "TAG": 2, - "u00c0": 2, - "uFFFF": 2, - "leftMatch": 2, - "attrMap": 2, - "attrHandle": 2, - "g.getAttribute": 1, - "relative": 4, - "W/.test": 1, - "h.toLowerCase": 2, - "": 1, - "previousSibling": 5, - "nth": 5, - "odd": 2, - "not": 26, - "reset": 2, - "contains": 8, - "only": 10, - "id": 38, - "class": 5, - "Array": 3, - "sourceIndex": 1, - "div": 28, - "script": 7, - "": 4, - "name=": 2, - "href=": 2, - "": 2, - "

": 2, - "

": 2, - ".TEST": 2, - "
": 3, - "CLASS": 1, - "HTML": 9, - "find": 7, - "filter": 10, - "nextSibling": 3, - "iframe": 3, - "": 1, - "": 1, - "
": 1, - "
": 1, - "": 4, - "
": 5, - "": 3, - "": 3, - "": 2, - "": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "before": 8, - "after": 7, - "position": 7, - "absolute": 2, - "top": 12, - "left": 14, - "margin": 8, - "border": 7, - "px": 31, - "solid": 2, - "#000": 2, - "padding": 4, - "": 1, - "": 1, - "fixed": 1, - "marginTop": 3, - "marginLeft": 2, - "using": 5, - "borderTopWidth": 1, - "borderLeftWidth": 1, - "Left": 1, - "Top": 1, - "pageXOffset": 2, - "pageYOffset": 1, - "Height": 1, - "Width": 1, - "inner": 2, - "outer": 2, - "scrollTo": 1, - "CSS1Compat": 1, - "client": 3, - "window": 16, - "document": 26, - "window.document": 2, - "navigator": 3, - "window.navigator": 2, - "location": 2, - "window.location": 5, - "jQuery": 48, - "context": 48, - "The": 9, - "is": 67, - "actually": 2, - "just": 2, - "jQuery.fn.init": 2, - "rootjQuery": 8, - "Map": 4, - "over": 7, - "of": 28, - "overwrite": 4, - "_jQuery": 4, - "window.": 6, - "central": 2, - "reference": 5, - "simple": 3, - "way": 2, - "check": 8, - "strings": 8, - "both": 2, - "optimize": 3, - "quickExpr": 2, - "Check": 10, - "has": 9, - "non": 8, - "whitespace": 7, - "character": 3, - "it": 112, - "rnotwhite": 2, - "Used": 3, - "trimming": 2, - "trimLeft": 4, - "trimRight": 4, - "digits": 3, - "rdigit": 1, - "d/": 3, - "Match": 3, - "standalone": 2, - "tag": 2, - "rsingleTag": 2, - "JSON": 5, - "RegExp": 12, - "rvalidchars": 2, - "rvalidescape": 2, - "rvalidbraces": 2, - "Useragent": 2, - "rwebkit": 2, - "ropera": 2, - "rmsie": 2, - "rmozilla": 2, - "Keep": 2, - "UserAgent": 2, - "use": 10, - "with": 18, - "jQuery.browser": 4, - "userAgent": 3, - "For": 5, - "matching": 3, - "engine": 2, - "and": 42, - "browserMatch": 3, - "deferred": 25, - "used": 13, - "DOM": 21, - "readyList": 6, - "event": 31, - "DOMContentLoaded": 14, - "Save": 2, - "some": 2, - "core": 2, - "methods": 8, - "toString": 4, - "hasOwn": 2, - "String.prototype.trim": 3, - "Class": 2, - "pairs": 2, - "class2type": 3, - "jQuery.fn": 4, - "jQuery.prototype": 2, - "match": 30, - "doc": 4, - "Handle": 14, - "DOMElement": 2, - "selector.nodeType": 2, - "exists": 9, - "once": 4, - "finding": 2, - "Are": 2, - "dealing": 2, - "selector.charAt": 4, - "selector.length": 4, - "Assume": 2, - "are": 18, - "regex": 3, - "quickExpr.exec": 2, - "Verify": 3, - "no": 19, - "was": 6, - "specified": 4, - "#id": 3, - "HANDLE": 2, - "array": 7, - "context.ownerDocument": 2, - "If": 21, - "single": 2, - "passed": 5, - "clean": 3, - "like": 5, - "method.": 3, - "jQuery.fn.init.prototype": 2, - "jQuery.extend": 11, - "jQuery.fn.extend": 4, - "copy": 16, - "copyIsArray": 2, - "clone": 5, - "deep": 12, - "situation": 2, - "boolean": 8, - "when": 20, - "something": 3, - "possible": 3, - "jQuery.isFunction": 6, - "extend": 13, - "itself": 4, - "argument": 2, - "Only": 5, - "deal": 2, - "null/undefined": 2, - "values": 10, - "Extend": 2, - "base": 2, - "Prevent": 2, - "never": 2, - "ending": 2, - "loop": 7, - "Recurse": 2, - "bring": 2, - "Return": 2, - "modified": 3, - "Is": 2, - "be": 12, - "Set": 4, - "occurs.": 2, - "counter": 2, - "track": 2, - "how": 2, - "many": 3, - "items": 2, - "wait": 12, - "fires.": 2, - "See": 9, - "#6781": 2, - "readyWait": 6, - "Hold": 2, - "release": 2, - "holdReady": 3, - "hold": 6, - "jQuery.readyWait": 6, - "jQuery.ready": 16, - "Either": 2, - "released": 2, - "DOMready/load": 2, - "yet": 2, - "jQuery.isReady": 6, - "Make": 17, - "sure": 18, - "at": 58, - "least": 4, - "IE": 28, - "gets": 6, - "little": 4, - "overzealous": 4, - "ticket": 4, - "#5443": 4, - "Remember": 2, - "normal": 2, - "Ready": 2, - "fired": 12, - "decrement": 2, - "need": 10, - "there": 6, - "functions": 6, - "bound": 8, - "execute": 4, - "readyList.resolveWith": 1, - "Trigger": 2, - "any": 12, - "jQuery.fn.trigger": 2, - ".trigger": 3, - ".unbind": 4, - "jQuery._Deferred": 3, - "Catch": 2, - "cases": 4, - "where": 2, - ".ready": 2, - "called": 2, - "already": 6, - "occurred.": 2, - "document.readyState": 4, - "asynchronously": 2, - "allow": 6, - "scripts": 2, - "opportunity": 2, - "Mozilla": 2, - "Opera": 2, - "nightlies": 3, - "currently": 4, - "document.addEventListener": 6, - "Use": 7, - "handy": 2, - "fallback": 4, - "window.onload": 4, - "will": 7, - "always": 6, - "work": 6, - "window.addEventListener": 2, - "model": 14, - "document.attachEvent": 6, - "ensure": 2, - "firing": 16, - "onload": 2, - "maybe": 2, - "late": 2, - "but": 4, - "safe": 3, - "iframes": 2, - "window.attachEvent": 2, - "frame": 23, - "continually": 2, - "see": 6, - "toplevel": 7, - "window.frameElement": 2, - "document.documentElement.doScroll": 4, - "doScrollCheck": 6, - "test/unit/core.js": 2, - "details": 3, - "concerning": 2, - "isFunction.": 2, - "Since": 3, - "aren": 5, - "pass": 7, - "through": 3, - "as": 11, - "well": 2, - "jQuery.type": 4, - "obj.nodeType": 2, - "jQuery.isWindow": 2, - "own": 4, - "property": 15, - "must": 4, - "Object": 4, - "obj.constructor": 2, - "hasOwn.call": 6, - "obj.constructor.prototype": 2, - "Own": 2, - "properties": 7, - "enumerated": 2, - "firstly": 2, - "speed": 4, - "up": 4, - "then": 8, - "own.": 2, - "msg": 4, - "leading/trailing": 2, - "removed": 3, - "can": 10, - "breaking": 1, - "spaces": 3, - "rnotwhite.test": 2, - "xA0": 7, - "document.removeEventListener": 2, - "document.detachEvent": 2, - "trick": 2, - "Diego": 2, - "Perini": 2, - "http": 6, - "//javascript.nwbox.com/IEContentLoaded/": 2, - "waiting": 2, - "Promise": 1, - "promiseMethods": 3, - "Static": 1, - "sliceDeferred": 1, - "Create": 1, - "callbacks": 10, - "_Deferred": 4, - "stored": 4, - "args": 31, - "avoid": 5, - "doing": 3, - "flag": 1, - "know": 3, - "cancelled": 5, - "done": 10, - "f1": 1, - "f2": 1, - "...": 1, - "_fired": 5, - "args.length": 3, - "deferred.done.apply": 2, - "callbacks.push": 1, - "deferred.resolveWith": 5, - "resolve": 7, - "given": 3, - "resolveWith": 4, - "make": 2, - "available": 1, - "#8421": 1, - "callbacks.shift": 1, - "finally": 3, - "Has": 1, - "resolved": 1, - "isResolved": 3, - "Cancel": 1, - "cancel": 6, - "Full": 1, - "fledged": 1, - "two": 1, - "Deferred": 5, - "func": 3, - "failDeferred": 1, - "promise": 14, - "Add": 4, - "errorDeferred": 1, - "doneCallbacks": 2, - "failCallbacks": 2, - "deferred.done": 2, - ".fail": 2, - ".fail.apply": 1, - "fail": 10, - "failDeferred.done": 1, - "rejectWith": 2, - "failDeferred.resolveWith": 1, - "reject": 4, - "failDeferred.resolve": 1, - "isRejected": 2, - "failDeferred.isResolved": 1, - "pipe": 2, - "fnDone": 2, - "fnFail": 2, - "jQuery.Deferred": 1, - "newDefer": 3, - "jQuery.each": 2, - "fn": 14, - "action": 3, - "returned": 4, - "fn.apply": 1, - "returned.promise": 2, - ".then": 3, - "newDefer.resolve": 1, - "newDefer.reject": 1, - ".promise": 5, - "Get": 4, - "provided": 1, - "aspect": 1, - "added": 1, - "promiseMethods.length": 1, - "failDeferred.cancel": 1, - "deferred.cancel": 2, - "Unexpose": 1, - "Call": 1, - "func.call": 1, - "helper": 1, - "firstParam": 6, - "count": 4, - "<=>": 1, - "1": 97, - "resolveFunc": 2, - "sliceDeferred.call": 2, - "Strange": 1, - "bug": 3, - "FF4": 1, - "Values": 1, - "changed": 3, - "onto": 2, - "sometimes": 1, - "outside": 2, - ".when": 1, - "Cloning": 2, - "into": 2, - "fresh": 1, - "solves": 1, - "issue": 1, - "deferred.reject": 1, - "deferred.promise": 1, - "jQuery.support": 1, - "document.createElement": 26, - "documentElement": 2, - "document.documentElement": 2, - "opt": 2, - "marginDiv": 5, - "bodyStyle": 1, - "tds": 6, - "isSupported": 7, - "Preliminary": 1, - "tests": 48, - "div.setAttribute": 1, - "div.innerHTML": 7, - "div.getElementsByTagName": 6, - "Can": 2, - "automatically": 2, - "inserted": 1, - "insert": 1, - "them": 3, - "empty": 3, - "tables": 1, - "link": 2, - "elements": 9, - "serialized": 3, - "correctly": 1, - "innerHTML": 1, - "This": 3, - "requires": 1, - "wrapper": 1, - "information": 5, - "from": 7, - "uses": 3, - ".cssText": 2, - "instead": 6, - "/top/.test": 2, - "URLs": 1, - "optgroup": 5, - "opt.selected": 1, - "Test": 3, - "setAttribute": 1, - "camelCase": 3, - "class.": 1, - "works": 1, - "attrFixes": 1, - "get/setAttribute": 1, - "ie6/7": 1, - "getSetAttribute": 3, - "div.className": 1, - "Will": 2, - "defined": 3, - "later": 1, - "submitBubbles": 3, - "changeBubbles": 3, - "focusinBubbles": 2, - "inlineBlockNeedsLayout": 3, - "shrinkWrapBlocks": 2, - "reliableMarginRight": 2, - "checked": 4, - "status": 3, - "properly": 2, - "cloned": 1, - "input.checked": 1, - "support.noCloneChecked": 1, - "input.cloneNode": 1, - ".checked": 2, - "inside": 3, - "disabled": 11, - "selects": 1, - "Fails": 2, - "Internet": 1, - "Explorer": 1, - "div.test": 1, - "support.deleteExpando": 1, - "div.addEventListener": 1, - "div.attachEvent": 2, - "div.fireEvent": 1, - "node": 23, - "being": 2, - "appended": 2, - "input.value": 5, - "input.setAttribute": 5, - "support.radioValue": 2, - "div.appendChild": 4, - "document.createDocumentFragment": 3, - "fragment.appendChild": 2, - "div.firstChild": 3, - "WebKit": 9, - "doesn": 2, - "inline": 3, - "display": 7, - "none": 4, - "GC": 2, - "references": 1, - "across": 1, - "JS": 7, - "boundary": 1, - "isNode": 11, - "elem.nodeType": 8, - "nodes": 14, - "global": 5, - "attached": 1, - "directly": 2, - "occur": 1, - "jQuery.cache": 3, - "defining": 1, - "objects": 7, - "its": 2, - "allows": 1, - "code": 2, - "shortcut": 1, - "same": 1, - "jQuery.expando": 12, - "Avoid": 1, - "more": 6, - "than": 3, - "trying": 1, - "pvt": 8, - "internalKey": 12, - "getByName": 3, - "unique": 2, - "since": 1, - "their": 3, - "ends": 1, - "jQuery.uuid": 1, - "TODO": 2, - "hack": 2, - "ONLY.": 2, - "Avoids": 2, - "exposing": 2, - "metadata": 2, - "plain": 2, - "JSON.stringify": 4, - ".toJSON": 4, - "jQuery.noop": 2, - "An": 1, - "jQuery.data": 15, - "key/value": 1, - "pair": 1, - "shallow": 1, - "copied": 1, - "existing": 1, - "thisCache": 15, - "Internal": 1, - "separate": 1, - "destroy": 1, - "unless": 2, - "internal": 8, - "had": 1, - "isEmptyDataObject": 3, - "internalCache": 3, - "Browsers": 1, - "deletion": 1, - "refuse": 1, - "expandos": 2, - "other": 3, - "browsers": 2, - "faster": 1, - "iterating": 1, - "persist": 1, - "existed": 1, - "Otherwise": 2, - "eliminate": 2, - "lookups": 2, - "entries": 2, - "longer": 2, - "exist": 2, - "does": 9, - "us": 2, - "nor": 2, - "have": 6, - "removeAttribute": 3, - "Document": 2, - "these": 2, - "jQuery.support.deleteExpando": 3, - "elem.removeAttribute": 6, - "only.": 2, - "_data": 3, - "determining": 3, - "acceptData": 3, - "elem.nodeName": 2, - "jQuery.noData": 2, - "elem.nodeName.toLowerCase": 2, - "elem.getAttribute": 7, - ".attributes": 2, - "attr.length": 2, - ".name": 3, - "name.indexOf": 2, - "jQuery.camelCase": 6, - "name.substring": 2, - "dataAttr": 6, - "parts": 28, - "key.split": 2, - "Try": 4, - "fetch": 4, - "internally": 5, - "jQuery.removeData": 2, - "nothing": 2, - "found": 10, - "HTML5": 3, - "attribute": 5, - "key.replace": 2, - "rmultiDash": 3, - ".toLowerCase": 7, - "jQuery.isNaN": 1, - "parseFloat": 30, - "rbrace.test": 2, - "jQuery.parseJSON": 2, - "isn": 2, - "option.selected": 2, - "jQuery.support.optDisabled": 2, - "option.disabled": 2, - "option.getAttribute": 2, - "option.parentNode.disabled": 2, - "jQuery.nodeName": 3, - "option.parentNode": 2, - "specific": 2, - "We": 6, - "get/set": 2, - "attributes": 14, - "comment": 3, - "nType": 8, - "jQuery.attrFn": 2, - "Fallback": 2, - "prop": 24, - "supported": 2, - "jQuery.prop": 2, - "hooks": 14, - "notxml": 8, - "jQuery.isXMLDoc": 2, - "Normalize": 1, - "needed": 2, - "jQuery.attrFix": 2, - "jQuery.attrHooks": 2, - "boolHook": 3, - "rboolean.test": 4, - "value.toLowerCase": 2, - "formHook": 3, - "forms": 1, - "certain": 2, - "characters": 6, - "rinvalidChar.test": 1, - "jQuery.removeAttr": 2, - "hooks.set": 2, - "elem.setAttribute": 2, - "hooks.get": 2, - "Non": 3, - "existent": 2, - "normalize": 2, - "propName": 8, - "jQuery.support.getSetAttribute": 1, - "jQuery.attr": 2, - "elem.removeAttributeNode": 1, - "elem.getAttributeNode": 1, - "corresponding": 2, - "jQuery.propFix": 2, - "attrHooks": 3, - "tabIndex": 4, - "readOnly": 2, - "htmlFor": 2, - "maxLength": 2, - "cellSpacing": 2, - "cellPadding": 2, - "rowSpan": 2, - "colSpan": 2, - "useMap": 2, - "frameBorder": 2, - "contentEditable": 2, - "auto": 3, - "&": 13, - "getData": 3, - "setData": 3, - "changeData": 3, - "bubbling": 1, - "live.": 2, - "hasDuplicate": 1, - "baseHasDuplicate": 2, - "rBackslash": 1, - "rNonWord": 1, - "W/": 2, - "Sizzle": 1, - "results": 4, - "seed": 1, - "origContext": 1, - "context.nodeType": 2, - "checkSet": 1, - "extra": 1, - "cur": 6, - "pop": 1, - "prune": 1, - "contextXML": 1, - "Sizzle.isXML": 1, - "soFar": 1, - "Reset": 1, - "cy": 4, - "f.isWindow": 2, "cv": 2, + "if": 1230, "cj": 4, + "[": 1459, + "]": 1456, + "var": 910, + "f": 666, + "+": 1135, ".appendTo": 2, + "d": 771, "b.css": 1, "b.remove": 1, "ck": 5, @@ -28494,26 +32641,54 @@ "f.css": 24, "c.body.removeChild": 1, "cu": 18, + "c": 775, "f.each": 21, "cp.concat.apply": 1, "cp.slice": 1, "ct": 34, "cq": 3, "cs": 3, + "setTimeout": 19, "f.now": 2, "ci": 29, + "try": 44, + "new": 86, "a.ActiveXObject": 3, + "catch": 38, "ch": 58, "a.XMLHttpRequest": 1, + "cb": 16, "a.dataFilter": 2, + "&&": 1017, "a.dataType": 1, "a.dataTypes": 2, + "e": 663, + "g": 441, + "h": 499, + "i": 853, + "d.length": 8, + "j": 265, + "k": 302, + "l": 312, + "m": 76, + "n": 874, + "o": 322, + "p": 110, + "for": 262, + "<": 209, + "in": 170, "a.converters": 3, + "typeof": 132, + "h.toLowerCase": 2, + "else": 307, "o.split": 1, + "break": 111, "f.error": 4, "m.replace": 1, + "ca": 6, "a.contents": 1, "a.responseFields": 1, + "while": 53, "f.shift": 1, "a.mimeType": 1, "c.getResponseHeader": 1, @@ -28522,6 +32697,7 @@ "b_": 4, "f.isArray": 8, "bF.test": 1, + "null": 427, "c.dataTypes": 1, "h.length": 3, "bU": 4, @@ -28529,21 +32705,38 @@ "bZ": 3, "f.isFunction": 21, "b.toLowerCase": 3, + ".split": 19, "bQ": 3, + "/": 290, + "/.test": 19, "h.substr": 1, "bD": 3, "bx": 2, + "by": 12, "a.offsetWidth": 6, "a.offsetHeight": 2, + "-": 705, + "parseFloat": 30, "bn": 2, + "b.src": 4, "f.ajax": 3, + "url": 23, + "async": 5, + "dataType": 6, "f.globalEval": 2, + "b.text": 3, + "b.textContent": 2, + "b.innerHTML": 3, + ".replace": 38, "bf": 6, + "b.parentNode": 4, + "b.parentNode.removeChild": 2, "bm": 3, "f.nodeName": 16, "bl": 3, "a.getElementsByTagName": 9, "f.grep": 3, + "a.type": 14, "a.defaultChecked": 1, "a.checked": 4, "bk": 5, @@ -28561,6 +32754,7 @@ "a.defaultValue": 1, "b.defaultChecked": 1, "b.checked": 1, + "b.value": 4, "a.value": 8, "b.removeAttribute": 3, "f.expando": 23, @@ -28569,75 +32763,168 @@ "f.data": 25, "d.events": 1, "f.extend": 23, + "delete": 39, + "e.handle": 2, + "e.events": 2, + ".length": 24, "": 1, "bh": 1, + "nodeName": 20, "table": 6, "getElementsByTagName": 1, + "tbody": 7, "0": 220, "appendChild": 1, "ownerDocument": 9, "createElement": 3, + "X": 6, "b=": 25, + "isFunction": 12, + "grep": 6, "e=": 21, + "call": 9, "nodeType": 1, + "a=": 23, "d=": 15, + "nodeType=": 6, + "S": 8, + "test": 21, + "filter": 10, + "inArray": 5, "W": 3, + "a.parentNode": 6, + "a.parentNode.nodeType": 2, + "O": 6, + "b.replace": 3, + "A": 24, + "B": 5, "N": 2, + "q": 34, + "r": 261, "f._data": 15, + "a.liveFired": 4, "r.live": 1, "a.target.disabled": 1, + "a.button": 2, "a.namespace": 1, + "RegExp": 12, "a.namespace.split": 1, + ".join": 14, + "s": 290, "r.live.slice": 1, "s.length": 2, "g.origType.replace": 1, + "y": 101, "q.push": 1, "g.selector": 3, "s.splice": 1, + "a.target": 5, + ".closest": 4, + "a.currentTarget": 4, + "e.length": 9, "m.selector": 1, "n.test": 2, "g.namespace": 1, "m.elem.disabled": 1, "m.elem": 1, "g.preType": 3, + "a.relatedTarget": 2, "f.contains": 5, + "p.push": 2, + "elem": 101, + "handleObj": 2, "level": 3, "m.level": 1, + "p.length": 10, "": 1, "e.elem": 2, + "a.data": 2, "e.handleObj.data": 1, + "a.handleObj": 2, "e.handleObj": 1, "e.handleObj.origHandler.apply": 1, + "arguments": 83, "a.isPropagationStopped": 1, "e.level": 1, "a.isImmediatePropagationStopped": 1, + "L": 10, "e.type": 6, "e.originalEvent": 1, "e.liveFired": 1, "f.event.handle.call": 1, + "e.isDefaultPrevented": 2, ".preventDefault": 1, "F": 8, + "E": 11, "f.removeData": 4, "i.resolve": 1, "c.replace": 4, + ".toLowerCase": 7, + "a.getAttribute": 11, "f.isNaN": 3, "i.test": 1, "f.parseJSON": 2, + "a.document": 3, "a.navigator": 1, "a.location": 1, + "H": 8, "e.isReady": 1, "c.documentElement.doScroll": 2, "e.ready": 6, "e.fn.init": 1, "a.jQuery": 2, "a.": 2, + "*": 70, + "<[\\w\\W]+>": 4, + "|": 206, + "#": 13, + "w": 110, + "S/": 4, + "d/": 3, + "<(\\w+)\\s*\\/?>": 4, + "<\\/\\1>": 4, + "true": 147, + "false": 142, + ".": 91, + "d*": 8, + "eE": 4, + "/g": 37, + "s*": 15, + "webkit": 6, + "w.": 17, + "t": 436, + "opera": 4, + ".*version": 4, + "u": 304, + "msie": 4, + "v": 135, + "mozilla": 4, + ".*": 20, + "rv": 4, "d.userAgent": 1, + "x": 33, + "z": 21, + "Object.prototype.toString": 7, + "Object.prototype.hasOwnProperty": 6, "C": 4, + "Array.prototype.push": 4, + "D": 9, + "Array.prototype.slice": 6, + "String.prototype.trim": 3, + "Array.prototype.indexOf": 4, + "G": 11, "e.fn": 2, "e.prototype": 1, + "constructor": 8, + "init": 7, + "this.context": 17, + "this.length": 40, "c.body": 4, + "this.selector": 16, "a.charAt": 2, + "a.length": 23, "i.exec": 1, + "instanceof": 19, "d.ownerDocument": 1, "n.exec": 1, "e.isPlainObject": 1, @@ -28647,36 +32934,83 @@ "j.cacheable": 1, "e.clone": 1, "j.fragment": 2, + ".childNodes": 2, "e.merge": 3, "c.getElementById": 1, + "h.parentNode": 3, "h.id": 1, "f.find": 2, "d.jquery": 1, + ".find": 5, + "this.constructor": 5, "e.isFunction": 5, "f.ready": 1, + "a.selector": 4, + "a.context": 2, "e.makeArray": 1, + "selector": 40, + "jquery": 3, + "length": 48, + "size": 6, + "toArray": 2, "D.call": 4, + "get": 24, + "this.toArray": 3, + "pushStack": 4, "e.isArray": 2, "C.apply": 1, "d.prevObject": 1, "d.context": 2, "d.selector": 2, + "each": 17, "e.each": 2, + "ready": 31, "e.bindReady": 1, "y.done": 1, + "eq": 2, + "this.slice": 5, + "first": 10, + "this.eq": 4, + "last": 6, + "slice": 10, + "this.pushStack": 12, "D.apply": 1, + "map": 7, "e.map": 1, + "a.call": 17, + "end": 14, + "this.prevObject": 3, + "push": 11, + "sort": 4, + ".sort": 9, + "splice": 5, + ".splice": 5, "e.fn.init.prototype": 1, "e.extend": 2, "e.fn.extend": 1, + "arguments.length": 18, "": 1, "f=": 13, + "i=": 31, + "continue": 18, + "isPlainObject": 4, "g=": 15, + "isArray": 10, "h=": 19, + "extend": 13, + "noConflict": 4, "jQuery=": 2, + "isReady": 5, + "1": 97, + "readyWait": 6, + "holdReady": 3, + "body": 22, "isReady=": 1, "y.resolveWith": 1, "e.fn.trigger": 1, + ".trigger": 3, + ".unbind": 4, + "bindReady": 5, "e._Deferred": 1, "c.readyState": 2, "c.addEventListener": 4, @@ -28684,17 +33018,26 @@ "c.attachEvent": 3, "a.attachEvent": 6, "a.frameElement": 1, + "Array.isArray": 7, "isWindow": 2, "isNaN": 6, "m.test": 1, + "type": 49, "String": 2, "A.call": 1, "e.isWindow": 2, + "a.constructor": 2, "B.call": 3, + "a.constructor.prototype": 2, + "isEmptyObject": 7, + "error": 20, + "throw": 27, + "parseJSON": 4, "e.trim": 1, "a.JSON": 1, "a.JSON.parse": 2, "o.test": 1, + "Function": 3, "e.error": 2, "parseXML": 1, "a.DOMParser": 1, @@ -28705,30 +33048,50 @@ "c.loadXML": 1, "c.documentElement": 4, "d.nodeName": 4, + "noop": 3, + "globalEval": 2, "j.test": 3, "a.execScript": 1, "a.eval.call": 1, + "a.nodeName": 12, + "a.nodeName.toUpperCase": 2, + "b.toUpperCase": 3, "c.apply": 2, "c.call": 3, + "trim": 5, "E.call": 1, + "makeArray": 3, "C.call": 1, "F.call": 1, + "b.length": 12, + "merge": 2, "c.length": 8, "": 1, "j=": 14, "k=": 11, "h.concat.apply": 1, + "guid": 5, + "proxy": 4, + "a.apply": 2, "f.concat": 1, "g.guid": 3, + "a.guid": 7, "e.guid": 3, "access": 2, "e.access": 1, + "d.call": 3, "now": 5, + "Date": 4, + ".getTime": 3, + "uaMatch": 3, + "a.toLowerCase": 4, "s.exec": 1, "t.exec": 1, "u.exec": 1, "a.indexOf": 2, "v.exec": 1, + "browser": 11, + "version": 10, "sub": 4, "a.fn.init": 2, "a.superclass": 1, @@ -28746,49 +33109,103 @@ "x.version": 1, "e.browser.webkit": 1, "e.browser.safari": 1, + "xA0": 7, "c.removeEventListener": 2, "c.detachEvent": 1, + ".slice": 6, + "_Deferred": 4, + "done": 10, "": 1, + "resolveWith": 4, "c=": 24, "shift": 1, "apply": 8, + "finally": 3, + "resolve": 7, + "isResolved": 3, + "cancel": 6, + "Deferred": 5, + "then": 8, + "fail": 10, + "always": 6, + "rejectWith": 2, + "reject": 4, + "isRejected": 2, + "pipe": 2, + "promise": 14, + "when": 20, "h.call": 2, "g.resolveWith": 3, "<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>": 1, + ".promise": 5, + ".then": 3, "g.reject": 1, "g.promise": 1, "f.support": 2, + "a.setAttribute": 7, "a.innerHTML": 7, "f.appendChild": 1, + "leadingWhitespace": 3, "a.firstChild.nodeType": 2, + "htmlSerialize": 3, + "style": 30, + "/top/.test": 2, "e.getAttribute": 2, + "hrefNormalized": 3, + "opacity": 13, "e.style.opacity": 1, + "cssFloat": 4, "e.style.cssFloat": 1, + "checkOn": 4, "h.value": 3, + "optSelected": 3, "g.selected": 1, + "getSetAttribute": 3, "a.className": 1, + "submitBubbles": 3, + "changeBubbles": 3, + "focusinBubbles": 2, + "deleteExpando": 3, + "noCloneEvent": 3, + "inlineBlockNeedsLayout": 3, + "shrinkWrapBlocks": 2, + "reliableMarginRight": 2, "h.checked": 2, "j.noCloneChecked": 1, "h.cloneNode": 1, + ".checked": 2, "f.disabled": 1, "j.optDisabled": 1, "g.disabled": 1, + "a.test": 2, "j.deleteExpando": 1, "a.fireEvent": 1, "j.noCloneEvent": 1, "a.detachEvent": 1, + "a.cloneNode": 3, + ".fireEvent": 3, "h.setAttribute": 2, "j.radioValue": 1, + "a.appendChild": 3, "c.createDocumentFragment": 1, "k.appendChild": 1, + "a.firstChild": 6, "j.checkClone": 1, "k.cloneNode": 1, + ".cloneNode": 4, + ".lastChild.checked": 2, "a.style.width": 1, "a.style.paddingLeft": 1, "visibility": 3, + "width": 32, + "height": 25, + "border": 7, + "margin": 8, "background": 56, "l.style": 1, "l.appendChild": 1, + "b.insertBefore": 3, + "b.firstChild": 5, "j.appendChecked": 1, "j.boxModel": 1, "a.style": 8, @@ -28797,6 +33214,7 @@ "j.inlineBlockNeedsLayout": 1, "j.shrinkWrapBlocks": 1, ".offsetHeight": 4, + ".style.display": 5, "j.reliableHiddenOffsets": 1, "c.defaultView": 2, "c.defaultView.getComputedStyle": 3, @@ -28807,81 +33225,155 @@ "marginRight": 2, ".marginRight": 2, "l.innerHTML": 1, + "b.removeChild": 3, + "submit": 14, + "change": 16, + "focusin": 9, "f.boxModel": 1, "f.support.boxModel": 4, + "Z": 6, + "cache": 45, "uuid": 2, + "expando": 14, "f.fn.jquery": 1, "Math.random": 2, "D/g": 2, + "noData": 3, + "embed": 3, + "object": 59, + "applet": 2, "hasData": 2, "f.cache": 5, + "data": 145, "f.acceptData": 4, "f.uuid": 1, + ".toJSON": 4, "f.noop": 4, "f.camelCase": 5, ".events": 1, + "removeData": 8, "f.support.deleteExpando": 3, + "_data": 3, + "acceptData": 3, "f.noData": 2, + "a.nodeName.toLowerCase": 3, "f.fn.extend": 9, + ".nodeType": 9, + ".attributes": 2, + ".name": 3, "g.indexOf": 2, "g.substring": 1, + "this.each": 42, + "a.split": 4, + "this.triggerHandler": 6, + "this.data": 5, "b.triggerHandler": 2, "_mark": 2, "_unmark": 3, + "queue": 7, "f.makeArray": 5, "e.push": 3, + "dequeue": 6, "f.queue": 3, "c.shift": 2, "c.unshift": 1, "f.dequeue": 4, + "delay": 4, "f.fx": 2, "f.fx.speeds": 1, + "this.queue": 4, + "clearQueue": 2, "d.resolveWith": 1, "f.Deferred": 2, "f._Deferred": 2, "l.done": 1, "d.promise": 1, + "r/g": 2, + "button": 24, + "input": 25, + "/i": 22, + "select": 20, + "textarea": 8, "rea": 1, "autofocus": 1, "autoplay": 1, + "checked": 4, "controls": 1, "defer": 1, + "disabled": 11, + "hidden": 12, + "loop": 7, + "multiple": 7, + "open": 2, + "readonly": 3, "required": 1, "scoped": 1, + "selected": 5, + "attr": 13, "f.access": 3, "f.attr": 2, + "removeAttr": 5, "f.removeAttr": 3, + "prop": 24, "f.prop": 2, "removeProp": 1, "f.propFix": 6, + "addClass": 2, "c.addClass": 1, + "c.attr": 4, + "e.nodeType": 7, + "e.className": 14, "f.trim": 2, + "removeClass": 2, "c.removeClass": 1, "g.nodeType": 6, "g.className": 4, "h.replace": 2, + "toggleClass": 2, "d.toggleClass": 1, "d.attr": 1, "h.hasClass": 1, + "this.className": 10, + "hasClass": 2, "": 1, + "className": 4, + "replace": 8, + "indexOf": 5, + "val": 13, "f.valHooks": 7, "e.nodeName.toLowerCase": 1, "c.get": 1, "e.value": 1, + "this.nodeType": 4, "e.val": 1, "f.map": 5, "this.nodeName.toLowerCase": 1, "this.type": 3, "c.set": 1, + "this.value": 4, "valHooks": 1, + "option": 12, "a.attributes.value": 1, + "b.specified": 2, "a.text": 1, "a.selectedIndex": 3, "a.options": 2, "": 3, + "support": 13, "optDisabled": 1, + "getAttribute": 3, + "parentNode": 10, + "optgroup": 5, + "set": 22, + "find": 7, "selected=": 1, + "attrFn": 2, + "css": 7, + "html": 10, + "text": 14, + "offset": 21, "attrFix": 1, + "tabindex": 4, "f.attrFn": 3, "f.isXMLDoc": 4, "f.attrFix": 3, @@ -28893,15 +33385,26 @@ "i.set": 1, "i.get": 1, "f.support.getSetAttribute": 2, + "a.removeAttribute": 3, "a.removeAttributeNode": 1, + "a.getAttributeNode": 7, + "attrHooks": 3, "q.test": 1, "f.support.radioValue": 1, + "tabIndex": 4, "c.specified": 1, "c.value": 1, "r.test": 1, "s.test": 1, + "a.href": 2, "propFix": 1, + "maxlength": 2, + "cellspacing": 2, "cellpadding": 1, + "rowspan": 2, + "colspan": 2, + "usemap": 2, + "frameborder": 2, "contenteditable": 1, "f.propHooks": 1, "h.set": 1, @@ -28909,6 +33412,7 @@ "propHooks": 1, "f.attrHooks.value": 1, "v.get": 1, + "v.set": 5, "f.attrHooks.name": 1, "f.valHooks.button": 1, "d.nodeValue": 3, @@ -28916,12 +33420,17 @@ "f.support.style": 1, "f.attrHooks.style": 1, "a.style.cssText.toLowerCase": 1, + "a.style.cssText": 3, "f.support.optSelected": 1, "f.propHooks.selected": 2, + "b.selectedIndex": 2, "b.parentNode.selectedIndex": 1, "f.support.checkOn": 1, "f.inArray": 4, + ".val": 5, + "./g": 2, "s.": 1, + "a.replace": 7, "f.event": 2, "add": 15, "d.handler": 1, @@ -28934,6 +33443,7 @@ "f.event.handle.apply": 1, "k.elem": 2, "c.split": 2, + "handler": 14, "l.indexOf": 1, "l.split": 1, "n.shift": 1, @@ -28949,6 +33459,7 @@ "h.handler.guid": 2, "o.push": 1, "f.event.global": 2, + "global": 5, "remove": 9, "s.events": 1, "c.type": 9, @@ -28964,8 +33475,13 @@ "p.splice": 1, "": 1, "u=": 12, + "handle": 15, "elem=": 4, + "events": 18, "customEvent": 1, + "getData": 3, + "setData": 3, + "changeData": 3, "trigger": 4, "h.slice": 1, "i.shift": 1, @@ -28983,9 +33499,11 @@ "b.handle.elem": 2, "c.result": 3, "c.target": 3, + "d.unshift": 2, "do": 15, "c.currentTarget": 2, "m.apply": 1, + ".apply": 7, "k.parentNode": 1, "k.ownerDocument": 1, "c.target.ownerDocument": 1, @@ -29008,6 +33526,40 @@ "isImmediatePropagationStopped": 2, "result": 9, "props": 21, + "altKey": 4, + "attrChange": 4, + "attrName": 4, + "bubbles": 4, + "cancelable": 4, + "charCode": 7, + "clientX": 6, + "clientY": 5, + "ctrlKey": 6, + "currentTarget": 4, + "detail": 3, + "eventPhase": 4, + "fromElement": 6, + "keyCode": 6, + "layerX": 3, + "layerY": 3, + "metaKey": 5, + "newValue": 3, + "offsetX": 4, + "offsetY": 4, + "pageX": 4, + "pageY": 4, + "prevValue": 3, + "relatedNode": 4, + "relatedTarget": 6, + "screenX": 4, + "screenY": 4, + "shiftKey": 4, + "srcElement": 5, + "target": 44, + "toElement": 5, + "view": 4, + "wheelDelta": 3, + "which": 8, "split": 4, "fix": 1, "Event": 3, @@ -29015,6 +33567,7 @@ "relatedTarget=": 1, "fromElement=": 1, "pageX=": 2, + "documentElement": 2, "scrollLeft": 2, "clientLeft": 2, "pageY=": 1, @@ -29029,12 +33582,15 @@ "special": 3, "setup": 5, "teardown": 6, + "live": 8, + "event": 31, "origType": 2, "beforeunload": 1, "onbeforeunload=": 3, "removeEvent=": 1, "removeEventListener": 3, "detachEvent": 2, + "on": 37, "Event=": 1, "originalEvent=": 1, "type=": 5, @@ -29053,27 +33609,45 @@ "isPropagationStopped": 1, "G=": 1, "H=": 1, + "mouseenter": 9, + "mouseover": 12, + "mouseleave": 9, + "mouseout": 12, "submit=": 1, + "form": 12, + "click": 11, "specialSubmit": 3, "closest": 3, + "keypress": 4, "keyCode=": 1, + "I": 7, "J=": 1, + "value": 98, "selectedIndex": 1, "a.selected": 1, + "K": 4, "z.test": 3, "d.readOnly": 1, + "J": 5, + "d.type": 2, "c.liveFired": 1, "f.event.special.change": 1, "filters": 1, + "focusout": 11, "beforedeactivate": 1, + "b.type": 4, "K.call": 2, + "keydown": 4, "a.keyCode": 2, "beforeactivate": 1, "f.event.add": 2, + "this.nodeName": 4, "f.event.special.change.filters": 1, "I.focus": 1, "I.beforeactivate": 1, "f.support.focusinBubbles": 1, + "focus": 7, + "blur": 8, "c.originalEvent": 1, "a.preventDefault": 3, "f.fn": 9, @@ -29086,23 +33660,39 @@ "undelegate": 1, "this.die": 1, "triggerHandler": 1, + "toggle": 10, "%": 26, ".guid": 1, "this.click": 1, + "hover": 3, "this.mouseenter": 1, ".mouseleave": 1, + "M": 9, "g.charAt": 1, "n.unbind": 1, "y.exec": 1, "a.push": 2, "n.length": 1, "": 1, + "load": 5, + "resize": 3, + "scroll": 6, + "unload": 5, + "dblclick": 3, + "mousedown": 3, + "mouseup": 3, + "mousemove": 3, + "keyup": 3, + "fn": 14, "this.bind": 2, + "this.trigger": 2, "": 2, "sizcache=": 4, "sizset": 2, "sizset=": 2, + "string": 41, "toLowerCase": 3, + "W/": 2, "d.nodeType": 5, "k.isXML": 4, "a.exec": 2, @@ -29112,13 +33702,19 @@ "l.relative": 6, "x.shift": 4, "l.match.ID.test": 2, + "k.find": 6, "q.expr": 4, + "k.filter": 5, "q.set": 4, + "expr": 2, "x.pop": 4, "d.parentNode": 4, + "k.error": 2, "e.call": 1, "f.push.apply": 1, "k.contains": 5, + "f.push": 5, + "k.uniqueSort": 5, "a.sort": 1, "": 1, "matches=": 1, @@ -29126,11 +33722,58 @@ "l.order.length": 1, "l.order": 1, "l.leftMatch": 1, + ".exec": 2, + "g.splice": 2, "j.substr": 1, + "j.length": 2, + "undefined": 328, + "Syntax": 3, + "unrecognized": 3, + "expression": 4, + "ID": 8, + "NAME": 2, + "TAG": 2, + "u00c0": 2, + "uFFFF": 2, + "leftMatch": 2, + "attrMap": 2, + "attrHandle": 2, + "href": 9, + "relative": 4, "": 1, + "previousSibling": 5, + "name": 161, + "nth": 5, + "even": 3, + "odd": 2, + "not": 26, + "radio": 17, + "checkbox": 14, + "file": 5, + "password": 5, + "image": 5, + "reset": 2, + "contains": 8, + "only": 10, + "id": 38, + "class": 5, + "Array": 3, + "number": 13, + "div": 28, + "script": 7, + "": 4, + "name=": 2, + "href=": 2, + "": 2, "__sizzle__": 1, + "

": 2, + "class=": 5, + "

": 2, + ".TEST": 2, + "&": 13, "sizzle": 1, "l.match.PSEUDO.test": 1, + "b.call": 4, "a.document.nodeType": 1, "a.getElementsByClassName": 3, "a.lastChild.className": 1, @@ -29146,16 +33789,21 @@ "b.nodeName": 2, "l.match.PSEUDO.exec": 1, "l.match.PSEUDO": 1, + "f.length": 5, "f.expr": 4, "k.selectors": 1, "f.expr.filters": 3, "f.unique": 4, "f.text": 2, "k.getText": 1, + "P": 4, "/Until": 1, + "Q": 6, "parents": 2, "prevUntil": 2, "prevAll": 2, + "R": 2, + "T": 4, "U": 1, "f.expr.match.POS": 1, "V": 2, @@ -29166,9 +33814,12 @@ ".filter": 2, "": 1, "e.splice": 1, + "has": 9, "this.filter": 2, "": 1, + "is": 67, "": 1, + "index": 5, ".is": 2, "c.push": 3, "g.parentNode": 2, @@ -29183,6 +33834,7 @@ "this.get": 1, "andSelf": 1, "this.add": 1, + "parent": 15, "f.dir": 6, "parentsUntil": 1, "f.nth": 2, @@ -29205,13 +33857,19 @@ "dir": 1, "sibling": 1, "a.nextSibling": 1, + "Y": 3, + "jQuery": 48, "<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>": 1, "/ig": 3, + "_": 9, + "ba": 3, "tbody/i": 1, + "bb": 2, "bc": 1, "bd": 1, "/checked": 1, "s*.checked.": 1, + "be": 12, "java": 1, "ecma": 1, "script/i": 1, @@ -29222,6 +33880,7 @@ "tr": 23, "td": 3, "col": 7, + "area": 2, "_default": 5, "bg.optgroup": 1, "bg.option": 1, @@ -29237,11 +33896,13 @@ "c.text": 2, "this.empty": 3, ".append": 6, + ".ownerDocument": 5, ".createTextNode": 1, "wrapAll": 1, ".wrapAll": 2, ".eq": 1, ".clone": 1, + ".parentNode": 7, "b.map": 1, "wrapInner": 1, ".wrapInner": 1, @@ -29250,6 +33911,7 @@ "b.append": 1, "wrap": 2, "unwrap": 1, + ".each": 3, ".replaceWith": 1, "this.childNodes": 1, ".end": 1, @@ -29259,13 +33921,18 @@ "prepend": 1, "this.insertBefore": 1, "this.firstChild": 1, + "before": 8, "this.parentNode.insertBefore": 2, "a.push.apply": 2, + "after": 7, "this.nextSibling": 2, ".toArray": 1, "f.cleanData": 4, + "d.getElementsByTagName": 6, "d.parentNode.removeChild": 1, + "empty": 3, "b.getElementsByTagName": 1, + "clone": 5, "this.map": 3, "f.clone": 2, ".innerHTML.replace": 1, @@ -29288,12 +33955,14 @@ "f.support.checkClone": 2, "bd.test": 2, ".domManip": 1, + "j.call": 2, "g.html": 1, "g.domManip": 1, "j.parentNode": 1, "f.support.parentNode": 1, "i.nodeType": 1, "i.childNodes.length": 1, + "fragment": 27, "f.buildFragment": 2, "e.fragment": 1, "h.childNodes.length": 1, @@ -29304,6 +33973,7 @@ "f.fragments": 3, "i.createDocumentFragment": 1, "f.clean": 1, + "cacheable": 2, "appendTo": 1, "prependTo": 1, "insertBefore": 1, @@ -29316,7 +33986,10 @@ "e.selector": 1, "f.support.noCloneEvent": 1, "f.support.noCloneChecked": 1, + "clean": 3, "b.createElement": 2, + "b.ownerDocument": 6, + "bb.test": 2, "b.createTextNode": 2, "k.replace": 2, "o.innerHTML": 1, @@ -29335,9 +34008,11 @@ "k.nodeType": 1, "h.push": 1, "be.test": 1, + ".type": 2, ".type.toLowerCase": 1, "h.splice.apply": 1, ".concat": 3, + "d.appendChild": 3, "cleanData": 1, "j.nodeName": 1, "j.nodeName.toLowerCase": 1, @@ -29352,11 +34027,14 @@ "br": 19, "ms": 2, "bs": 2, + "px": 31, "bt": 42, "bu": 11, "bv": 2, "de": 1, "bw": 2, + "position": 7, + "display": 7, "bz": 7, "bA": 3, "bB": 5, @@ -29383,9 +34061,11 @@ "k.set": 1, "g.get": 1, "swap": 1, + "camelCase": 3, "f.curCSS": 1, "f.swap": 2, "<0||e==null){e=a.style[b];return>": 1, + "auto": 3, "0px": 1, "f.support.opacity": 1, "f.cssHooks.opacity": 1, @@ -29394,6 +34074,7 @@ "a.currentStyle.filter": 1, "a.style.filter": 1, "RegExp.": 1, + "/100": 2, "c.zoom": 1, "b*100": 1, "d.filter": 1, @@ -29445,7 +34126,9 @@ "widget": 1, "bL": 1, "GET": 1, + "HEAD": 3, "bM": 2, + "//": 410, "bN": 2, "bO": 2, "<\\/script>": 2, @@ -29478,6 +34161,7 @@ "this.serializeArray": 1, "serializeArray": 1, "this.elements": 2, + "this.name": 7, "this.disabled": 1, "this.checked": 1, "bP.test": 1, @@ -29490,6 +34174,7 @@ "getJSON": 1, "ajaxSetup": 1, "f.ajaxSettings": 4, + "context": 48, "ajaxSettings": 1, "isLocal": 1, "bK.test": 1, @@ -29541,10 +34226,13 @@ "v.complete": 1, "i.done": 1, "<2)for(b>": 1, + "status": 3, "url=": 1, "dataTypes=": 1, "crossDomain=": 2, + "r=": 18, "exec": 8, + "http": 6, "80": 2, "443": 2, "param": 3, @@ -29565,19 +34253,24 @@ "Type": 1, "ifModified": 1, "lastModified": 3, + "If": 21, "Modified": 1, + "Since": 3, "etag": 3, "None": 1, + "Match": 3, "Accept": 1, "dataTypes": 4, "q=": 1, "01": 1, + "headers": 41, "beforeSend": 2, "p=": 5, "No": 1, "Transport": 1, "readyState=": 1, "ajaxSend": 1, + "timeout": 2, "v.abort": 1, "d.timeout": 1, "p.send": 1, @@ -29596,6 +34289,7 @@ "cd.test": 2, "b.url": 4, "b.jsonpCallback": 4, + "j.replace": 2, "d.always": 1, "b.converters": 1, "/javascript": 1, @@ -29640,6 +34334,7 @@ "h.setRequestHeader": 1, "h.send": 1, "c.hasContent": 1, + "c.data": 12, "h.readyState": 3, "h.onreadystatechange": 2, "h.abort": 1, @@ -29654,6 +34349,8 @@ "c.isLocal": 1, ".unload": 1, "cm": 2, + "show": 10, + "hide": 8, "cn": 1, "co": 5, "cp": 1, @@ -29663,11 +34360,13 @@ "a.oRequestAnimationFrame": 1, "this.animate": 2, "d.style": 3, + "d.style.display": 5, ".style": 1, "": 1, "_toggle": 2, "animate": 4, "fadeTo": 1, + "speed": 4, "queue=": 2, "animatedProperties=": 1, "animatedProperties": 2, @@ -29678,12 +34377,17 @@ "overflow": 2, "overflowX": 1, "overflowY": 1, + "inline": 3, "float": 3, + "none": 4, "display=": 3, "zoom=": 1, "fx": 10, "l=": 10, "m=": 2, + "cur": 6, + "n=": 10, + "o=": 13, "custom": 5, "stop": 7, "timers": 3, @@ -29709,6 +34413,7 @@ "prop=": 3, "orig=": 1, "orig": 3, + "options": 56, "step": 7, "startTime=": 1, "start=": 1, @@ -29716,6 +34421,7 @@ "unit=": 1, "unit": 1, "now=": 1, + "start": 20, "pos=": 1, "state=": 1, "co=": 2, @@ -29767,7 +34473,9 @@ "f.offset.bodyOffset": 2, "b.getBoundingClientRect": 1, "e.documentElement": 4, + "top": 12, "c.top": 4, + "left": 14, "c.left": 4, "e.body": 3, "g.clientTop": 1, @@ -29807,6 +34515,8 @@ "f.offset": 1, "initialize": 3, "b.style": 1, + "a.insertBefore": 2, + "d.firstChild": 2, "d.nextSibling.firstChild.firstChild": 1, "this.doesNotAddBorder": 1, "e.offsetTop": 4, @@ -29820,6 +34530,7 @@ "this.subtractsBorderForOverflowNotVisible": 1, "this.doesNotIncludeMarginInBodyOffset": 1, "a.offsetTop": 2, + "a.removeChild": 2, "bodyOffset": 1, "a.offsetLeft": 1, "f.offset.doesNotIncludeMarginInBodyOffset": 1, @@ -29840,6 +34551,7 @@ "this.offsetParent": 2, "this.offset": 2, "cx.test": 2, + ".nodeName": 2, "b.offset": 1, "d.top": 2, "d.left": 2, @@ -29854,878 +34566,7 @@ "e.document.compatMode": 1, "e.document.body": 1, "this.css": 1, - "Prioritize": 1, - "": 1, - "XSS": 1, - "location.hash": 1, - "#9521": 1, - "Matches": 1, - "dashed": 1, - "camelizing": 1, - "rdashAlpha": 1, - "rmsPrefix": 1, - "fcamelCase": 1, - "letter": 3, - "readyList.fireWith": 1, - ".off": 1, - "jQuery.Callbacks": 2, - "IE8": 2, - "exceptions": 2, - "#9897": 1, - "elems": 9, - "chainable": 4, - "emptyGet": 3, - "bulk": 3, - "elems.length": 1, - "Sets": 3, - "jQuery.access": 2, - "Optionally": 1, - "executed": 1, - "Bulk": 1, - "operations": 1, - "iterate": 1, - "executing": 1, - "exec.call": 1, - "they": 2, - "run": 1, - "against": 1, - "entire": 1, - "fn.call": 2, - "value.call": 1, - "Gets": 2, - "frowned": 1, - "upon.": 1, - "More": 1, - "//docs.jquery.com/Utilities/jQuery.browser": 1, - "ua": 6, - "ua.toLowerCase": 1, - "rwebkit.exec": 1, - "ropera.exec": 1, - "rmsie.exec": 1, - "ua.indexOf": 1, - "rmozilla.exec": 1, - "jQuerySub": 7, - "jQuerySub.fn.init": 2, - "jQuerySub.superclass": 1, - "jQuerySub.fn": 2, - "jQuerySub.prototype": 1, - "jQuerySub.fn.constructor": 1, - "jQuerySub.sub": 1, - "jQuery.fn.init.call": 1, - "rootjQuerySub": 2, - "jQuerySub.fn.init.prototype": 1, - "jQuery.uaMatch": 1, - "browserMatch.browser": 2, - "jQuery.browser.version": 1, - "browserMatch.version": 1, - "jQuery.browser.webkit": 1, - "jQuery.browser.safari": 1, - "flagsCache": 3, - "createFlags": 2, - "flags": 13, - "flags.split": 1, - "flags.length": 1, - "Convert": 1, - "formatted": 2, - "Actual": 2, - "Stack": 1, - "fire": 4, - "calls": 1, - "repeatable": 1, - "lists": 2, - "stack": 2, - "forgettable": 1, - "memory": 8, - "Flag": 2, - "First": 3, - "fireWith": 1, - "firingStart": 3, - "End": 1, - "firingLength": 4, - "Index": 1, - "firingIndex": 5, - "several": 1, - "actual": 1, - "Inspect": 1, - "recursively": 1, - "mode": 1, - "flags.unique": 1, - "self.has": 1, - "list.push": 1, - "Fire": 1, - "flags.memory": 1, - "flags.stopOnFalse": 1, - "Mark": 1, - "halted": 1, - "flags.once": 1, - "stack.length": 1, - "stack.shift": 1, - "self.fireWith": 1, - "self.disable": 1, - "Callbacks": 1, - "collection": 3, - "Do": 2, - "current": 7, - "batch": 2, - "With": 1, - "/a": 1, - ".55": 1, - "basic": 1, - "all.length": 1, - "supports": 2, - "select.appendChild": 1, - "strips": 1, - "leading": 1, - "div.firstChild.nodeType": 1, - "manipulated": 1, - "normalizes": 1, - "around": 1, - "issue.": 1, - "#5145": 1, - "existence": 1, - "styleFloat": 1, - "a.style.cssFloat": 1, - "defaults": 3, - "working": 1, - "property.": 1, - "too": 1, - "marked": 1, - "marks": 1, - "select.disabled": 1, - "support.optDisabled": 1, - "opt.disabled": 1, - "handlers": 1, - "support.noCloneEvent": 1, - "div.cloneNode": 1, - "maintains": 1, - "#11217": 1, - "loses": 1, - "div.lastChild": 1, - "conMarginTop": 3, - "paddingMarginBorder": 5, - "positionTopLeftWidthHeight": 3, - "paddingMarginBorderVisibility": 3, - "container": 4, - "container.style.cssText": 1, - "body.insertBefore": 1, - "body.firstChild": 1, - "Construct": 1, - "container.appendChild": 1, - "cells": 3, - "still": 4, - "offsetWidth/Height": 3, - "visible": 1, - "row": 1, - "reliable": 1, - "offsets": 1, - "safety": 1, - "goggles": 1, - "#4512": 1, - "fails": 2, - "support.reliableHiddenOffsets": 1, - "explicit": 1, - "right": 3, - "incorrectly": 1, - "computed": 1, - "based": 1, - "container.": 1, - "#3333": 1, - "Feb": 1, - "Bug": 1, - "getComputedStyle": 3, - "returns": 1, - "wrong": 1, - "window.getComputedStyle": 6, - "marginDiv.style.width": 1, - "marginDiv.style.marginRight": 1, - "div.style.width": 2, - "support.reliableMarginRight": 1, - "div.style.zoom": 2, - "natively": 1, - "block": 4, - "act": 1, - "setting": 2, - "giving": 1, - "layout": 2, - "div.style.padding": 1, - "div.style.border": 1, - "div.style.overflow": 2, - "div.style.display": 2, - "support.inlineBlockNeedsLayout": 1, - "div.offsetWidth": 2, - "shrink": 1, - "support.shrinkWrapBlocks": 1, - "div.style.cssText": 1, - "outer.firstChild": 1, - "outer.nextSibling.firstChild.firstChild": 1, - "offsetSupport": 2, - "doesNotAddBorder": 1, - "inner.offsetTop": 4, - "doesAddBorderForTableAndCells": 1, - "td.offsetTop": 1, - "inner.style.position": 2, - "inner.style.top": 2, - "safari": 1, - "subtracts": 1, - "here": 1, - "offsetSupport.fixedPosition": 1, - "outer.style.overflow": 1, - "outer.style.position": 1, - "offsetSupport.subtractsBorderForOverflowNotVisible": 1, - "offsetSupport.doesNotIncludeMarginInBodyOffset": 1, - "body.offsetTop": 1, - "div.style.marginTop": 1, - "support.pixelMargin": 1, - ".marginTop": 1, - "container.style.zoom": 2, - "body.removeChild": 1, - "rbrace": 1, - "Please": 1, - "caution": 1, - "Unique": 1, - "page": 1, - "rinlinejQuery": 1, - "jQuery.fn.jquery": 1, - "following": 1, - "uncatchable": 1, - "you": 1, - "attempt": 2, - "them.": 1, - "Ban": 1, - "except": 1, - "Flash": 1, - "jQuery.acceptData": 2, - "privateCache": 1, - "differently": 1, - "because": 1, - "IE6": 1, - "order": 1, - "collisions": 1, - "between": 1, - "user": 1, - "data.": 1, - "thisCache.data": 3, - "Users": 1, - "should": 1, - "inspect": 1, - "undocumented": 1, - "subject": 1, - "change.": 1, - "But": 1, - "anyone": 1, - "listen": 1, - "No.": 1, - "isEvents": 1, - "privateCache.events": 1, - "converted": 2, - "camel": 2, - "names": 2, - "camelCased": 1, - "Reference": 1, - "entry": 1, - "purpose": 1, - "continuing": 1, - "Support": 1, - "space": 1, - "separated": 1, - "jQuery.isArray": 1, - "manipulation": 1, - "cased": 1, - "name.split": 1, - "name.length": 1, - "want": 1, - "let": 1, - "destroyed": 2, - "jQuery.isEmptyObject": 1, - "Don": 1, - "care": 1, - "Ensure": 1, - "#10080": 1, - "cache.setInterval": 1, - "part": 8, - "jQuery._data": 2, - "elem.attributes": 1, - "self.triggerHandler": 2, - "jQuery.isNumeric": 1, - "All": 1, - "lowercase": 1, - "Grab": 1, - "necessary": 1, - "hook": 1, - "nodeHook": 1, - "attrNames": 3, - "isBool": 4, - "rspace": 1, - "attrNames.length": 1, - "#9699": 1, - "explanation": 1, - "approach": 1, - "removal": 1, - "#10870": 1, - "**": 1, - "timeStamp": 1, - "char": 2, - "buttons": 1, - "SHEBANG#!node": 2, - "http.createServer": 1, - "res.writeHead": 1, - "res.end": 1, - ".listen": 1, - "Date.prototype.toJSON": 2, - "isFinite": 1, - "this.valueOf": 2, - "this.getUTCFullYear": 1, - "this.getUTCMonth": 1, - "this.getUTCDate": 1, - "this.getUTCHours": 1, - "this.getUTCMinutes": 1, - "this.getUTCSeconds": 1, - "String.prototype.toJSON": 1, - "Number.prototype.toJSON": 1, - "Boolean.prototype.toJSON": 1, - "u0000": 1, - "u00ad": 1, - "u0600": 1, - "u0604": 1, - "u070f": 1, - "u17b4": 1, - "u17b5": 1, - "u200c": 1, - "u200f": 1, - "u2028": 3, - "u202f": 1, - "u2060": 1, - "u206f": 1, - "ufeff": 1, - "ufff0": 1, - "uffff": 1, - "escapable": 1, - "/bfnrt": 1, - "fA": 2, - "JSON.parse": 1, - "PUT": 1, - "DELETE": 1, - "_id": 1, - "ties": 1, - "collection.": 1, - "_removeReference": 1, - "model.collection": 2, - "model.unbind": 1, - "this._onModelEvent": 1, - "_onModelEvent": 1, - "ev": 5, - "this._remove": 1, - "model.idAttribute": 2, - "this._byId": 2, - "model.previous": 1, - "model.id": 1, - "this.trigger.apply": 2, - "_.each": 1, - "Backbone.Collection.prototype": 1, - "this.models": 1, - "_.toArray": 1, - "Backbone.Router": 1, - "options.routes": 2, - "this.routes": 4, - "this._bindRoutes": 1, - "this.initialize.apply": 2, - "namedParam": 2, - "splatParam": 2, - "escapeRegExp": 2, - "_.extend": 9, - "Backbone.Router.prototype": 1, - "Backbone.Events": 2, - "route": 18, - "Backbone.history": 2, - "Backbone.History": 2, - "_.isRegExp": 1, - "this._routeToRegExp": 1, - "Backbone.history.route": 1, - "_.bind": 2, - "this._extractParameters": 1, - "callback.apply": 1, - "navigate": 2, - "triggerRoute": 4, - "Backbone.history.navigate": 1, - "_bindRoutes": 1, - "routes": 4, - "routes.unshift": 1, - "routes.length": 1, - "this.route": 1, - "_routeToRegExp": 1, - "route.replace": 1, - "_extractParameters": 1, - "route.exec": 1, - "this.handlers": 2, - "_.bindAll": 1, - "hashStrip": 4, - "#*": 1, - "isExplorer": 1, - "/msie": 1, - "historyStarted": 3, - "Backbone.History.prototype": 1, - "getFragment": 1, - "forcePushState": 2, - "this._hasPushState": 6, - "window.location.pathname": 1, - "window.location.search": 1, - "fragment.indexOf": 1, - "this.options.root": 6, - "fragment.substr": 1, - "this.options.root.length": 1, - "window.location.hash": 3, - "fragment.replace": 1, - "this._wantsPushState": 3, - "this.options.pushState": 2, - "window.history": 2, - "window.history.pushState": 2, - "this.getFragment": 6, - "docMode": 3, - "document.documentMode": 3, - "oldIE": 3, - "isExplorer.exec": 1, - "navigator.userAgent.toLowerCase": 1, - "this.iframe": 4, - ".contentWindow": 1, - "this.navigate": 2, - ".bind": 3, - "this.checkUrl": 3, - "setInterval": 6, - "this.interval": 1, - "this.fragment": 13, - "loc": 2, - "atRoot": 3, - "loc.pathname": 1, - "loc.hash": 1, - "loc.hash.replace": 1, - "window.history.replaceState": 1, - "document.title": 2, - "loc.protocol": 2, - "loc.host": 2, - "this.loadUrl": 4, - "this.handlers.unshift": 1, - "checkUrl": 1, - "this.iframe.location.hash": 3, - "decodeURIComponent": 2, - "loadUrl": 1, - "fragmentOverride": 2, - "matched": 2, - "_.any": 1, - "handler.route.test": 1, - "handler.callback": 1, - "frag": 13, - "frag.indexOf": 1, - "this.iframe.document.open": 1, - ".close": 1, - "Backbone.View": 1, - "this.cid": 3, - "_.uniqueId": 1, - "this._configure": 1, - "this._ensureElement": 1, - "this.delegateEvents": 1, - "selectorDelegate": 2, - "this.el": 10, - "eventSplitter": 2, - "viewOptions": 2, - "Backbone.View.prototype": 1, - "tagName": 3, - "render": 1, - "el": 4, - ".attr": 1, - ".html": 1, - "delegateEvents": 1, - "this.events": 1, - "key.match": 1, - "_configure": 1, - "viewOptions.length": 1, - "_ensureElement": 1, - "attrs": 6, - "this.attributes": 1, - "this.id": 2, - "attrs.id": 1, - "this.make": 1, - "this.tagName": 1, - "_.isString": 1, - "protoProps": 6, - "classProps": 2, - "inherits": 2, - "child.extend": 1, - "this.extend": 1, - "Backbone.Model.extend": 1, - "Backbone.Collection.extend": 1, - "Backbone.Router.extend": 1, - "Backbone.View.extend": 1, - "methodMap": 2, - "Backbone.sync": 1, - "params": 2, - "params.url": 2, - "getUrl": 2, - "urlError": 2, - "params.data": 5, - "params.contentType": 2, - "model.toJSON": 1, - "Backbone.emulateJSON": 2, - "params.processData": 1, - "Backbone.emulateHTTP": 1, - "params.data._method": 1, - "params.type": 1, - "params.beforeSend": 1, - "xhr": 1, - "xhr.setRequestHeader": 1, - ".ajax": 1, - "staticProps": 3, - "protoProps.hasOwnProperty": 1, - "protoProps.constructor": 1, - "parent.apply": 1, - "child.prototype.constructor": 1, - "object.url": 4, - "_.isFunction": 1, - "wrapError": 1, - "onError": 3, - "resp": 3, - "model.trigger": 1, - "escapeHTML": 1, - "string.replace": 1, - "#x": 1, - "da": 1, - "": 1, - "lt": 55, - "#x27": 1, - "#x2F": 1, - "window.Modernizr": 1, - "Modernizr": 12, - "enableClasses": 3, - "docElement": 1, - "mod": 12, - "modElem": 2, - "mStyle": 2, - "modElem.style": 1, - "inputElem": 6, - "smile": 4, - "prefixes": 2, - "omPrefixes": 1, - "cssomPrefixes": 2, - "omPrefixes.split": 1, - "domPrefixes": 3, - "omPrefixes.toLowerCase": 1, - "ns": 1, - "inputs": 3, - "classes": 1, - "classes.slice": 1, - "featureName": 5, - "testing": 1, - "injectElementWithStyles": 9, - "rule": 5, - "testnames": 3, - "fakeBody": 4, - "node.id": 1, - "div.id": 1, - "fakeBody.appendChild": 1, - "//avoid": 1, - "crashing": 1, - "fakeBody.style.background": 1, - "docElement.appendChild": 2, - "fakeBody.parentNode.removeChild": 1, - "div.parentNode.removeChild": 1, - "testMediaQuery": 2, - "mq": 3, - "matchMedia": 3, - "window.matchMedia": 1, - "window.msMatchMedia": 1, - ".matches": 1, - "bool": 30, - "node.currentStyle": 2, - "isEventSupported": 5, - "TAGNAMES": 2, - "element.setAttribute": 3, - "element.removeAttribute": 2, - "_hasOwnProperty": 2, - "hasOwnProperty": 5, - "_hasOwnProperty.call": 2, - "object.constructor.prototype": 1, - "Function.prototype.bind": 2, - "slice.call": 3, - "F.prototype": 1, - "target.prototype": 1, - "target.apply": 2, - "args.concat": 2, - "setCss": 7, - "str": 4, - "mStyle.cssText": 1, - "setCssAll": 2, - "str1": 6, - "str2": 4, - "prefixes.join": 3, - "substr": 2, - "testProps": 3, - "prefixed": 7, - "testDOMProps": 2, - "item": 4, - "item.bind": 1, - "testPropsAll": 17, - "ucProp": 5, - "prop.charAt": 1, - "prop.substr": 1, - "cssomPrefixes.join": 1, - "elem.getContext": 2, - ".getContext": 8, - ".fillText": 1, - "window.WebGLRenderingContext": 1, - "window.DocumentTouch": 1, - "DocumentTouch": 1, - "node.offsetTop": 1, - "window.postMessage": 1, - "window.openDatabase": 1, - "history.pushState": 1, - "mStyle.backgroundColor": 3, - "mStyle.background": 1, - ".style.textShadow": 1, - "mStyle.opacity": 1, - "str3": 2, - "str1.length": 1, - "mStyle.backgroundImage": 1, - "docElement.style": 1, - "node.offsetLeft": 1, - "node.offsetHeight": 2, - "document.styleSheets": 1, - "document.styleSheets.length": 1, - "cssText": 4, - "style.cssRules": 3, - "style.cssText": 1, - "/src/i.test": 1, - "cssText.indexOf": 1, - "rule.split": 1, - "elem.canPlayType": 10, - "Boolean": 2, - "bool.ogg": 2, - "bool.h264": 1, - "bool.webm": 1, - "bool.mp3": 1, - "bool.wav": 1, - "bool.m4a": 1, - "localStorage.setItem": 1, - "localStorage.removeItem": 1, - "sessionStorage.setItem": 1, - "sessionStorage.removeItem": 1, - "window.Worker": 1, - "window.applicationCache": 1, - "document.createElementNS": 6, - "ns.svg": 4, - ".createSVGRect": 1, - "div.firstChild.namespaceURI": 1, - "/SVGAnimate/.test": 1, - "toString.call": 2, - "/SVGClipPath/.test": 1, - "webforms": 2, - "props.length": 2, - "attrs.list": 2, - "window.HTMLDataListElement": 1, - "inputElemType": 5, - "defaultView": 2, - "inputElem.setAttribute": 1, - "inputElem.type": 1, - "inputElem.value": 2, - "inputElem.style.cssText": 1, - "inputElem.style.WebkitAppearance": 1, - "document.defaultView": 1, - "defaultView.getComputedStyle": 2, - ".WebkitAppearance": 1, - "inputElem.offsetHeight": 1, - "docElement.removeChild": 1, - "inputElem.checkValidity": 2, - "feature": 12, - "feature.toLowerCase": 2, - "classes.push": 1, - "Modernizr.input": 1, - "Modernizr.addTest": 2, - "docElement.className": 2, - "chaining.": 1, - "window.html5": 2, - "reSkip": 1, - "saveClones": 1, - "fieldset": 1, - "h1": 5, - "h2": 5, - "h3": 3, - "h4": 3, - "h5": 1, - "h6": 1, - "img": 1, - "label": 2, - "li": 19, - "ol": 1, - "span": 1, - "strong": 1, - "tfoot": 1, - "th": 1, - "ul": 1, - "supportsHtml5Styles": 5, - "supportsUnknownElements": 3, - "//if": 2, - "implemented": 1, - "assume": 1, - "Styles": 1, - "Chrome": 2, - "additional": 1, - "solve": 1, - "node.hidden": 1, - ".display": 1, - "a.childNodes.length": 1, - "frag.cloneNode": 1, - "frag.createDocumentFragment": 1, - "frag.createElement": 2, - "addStyleSheet": 2, - "ownerDocument.createElement": 3, - "ownerDocument.getElementsByTagName": 1, - "ownerDocument.documentElement": 1, - "p.innerHTML": 1, - "parent.insertBefore": 1, - "p.lastChild": 1, - "parent.firstChild": 1, - "getElements": 2, - "html5.elements": 1, - "elements.split": 1, - "shivMethods": 2, - "docCreateElement": 5, - "docCreateFragment": 2, - "ownerDocument.createDocumentFragment": 2, - "//abort": 1, - "shiv": 1, - "html5.shivMethods": 1, - "saveClones.test": 1, - "node.canHaveChildren": 1, - "reSkip.test": 1, - "frag.appendChild": 1, - "html5": 3, - "shivDocument": 3, - "shived": 5, - "ownerDocument.documentShived": 2, - "html5.shivCSS": 1, - "options.elements": 1, - "options.shivCSS": 1, - "options.shivMethods": 1, - "Modernizr._version": 1, - "Modernizr._prefixes": 1, - "Modernizr._domPrefixes": 1, - "Modernizr._cssomPrefixes": 1, - "Modernizr.mq": 1, - "Modernizr.hasEvent": 1, - "Modernizr.testProp": 1, - "Modernizr.testAllProps": 1, - "Modernizr.testStyles": 1, - "Modernizr.prefixed": 1, - "docElement.className.replace": 1, - "js": 1, - "classes.join": 1, - "this.document": 1, - "PEG.parser": 1, - "quote": 3, - "result0": 264, - "result1": 81, - "result2": 77, - "parse_singleQuotedCharacter": 3, - "result1.push": 3, - "input.charCodeAt": 18, - "pos": 197, - "reportFailures": 64, - "matchFailed": 40, - "pos1": 63, - "chars": 1, - "chars.join": 1, - "pos0": 51, - "parse_simpleSingleQuotedCharacter": 2, - "parse_simpleEscapeSequence": 3, - "parse_zeroEscapeSequence": 3, - "parse_hexEscapeSequence": 3, - "parse_unicodeEscapeSequence": 3, - "parse_eolEscapeSequence": 3, - "pos2": 22, - "parse_eolChar": 6, - "input.length": 9, - "input.charAt": 21, - "char_": 9, - "parse_class": 1, - "result3": 35, - "result4": 12, - "result5": 4, - "parse_classCharacterRange": 3, - "parse_classCharacter": 5, - "result2.push": 1, - "parse___": 2, - "inverted": 4, - "partsConverted": 2, - "part.data": 1, - "rawText": 5, - "part.rawText": 1, - "ignoreCase": 1, - "begin": 1, - "begin.data.charCodeAt": 1, - "end.data.charCodeAt": 1, - "this.SyntaxError": 2, - "begin.rawText": 2, - "end.rawText": 2, - "begin.data": 1, - "end.data": 1, - "parse_bracketDelimitedCharacter": 2, - "quoteForRegexpClass": 1, - "parse_simpleBracketDelimitedCharacter": 2, - "parse_digit": 3, - "recognize": 1, - "input.substr": 9, - "parse_hexDigit": 7, - "String.fromCharCode": 4, - "parse_eol": 4, - "eol": 2, - "parse_letter": 1, - "parse_lowerCaseLetter": 2, - "parse_upperCaseLetter": 2, - "parse_whitespace": 3, - "parse_comment": 3, - "result0.push": 1, - "parse_singleLineComment": 2, - "parse_multiLineComment": 2, - "u2029": 2, - "x0B": 1, - "uFEFF": 1, - "u1680": 1, - "u180E": 1, - "u2000": 1, - "u200A": 1, - "u202F": 1, - "u205F": 1, - "u3000": 1, - "cleanupExpected": 2, - "expected": 12, - "expected.sort": 1, - "lastExpected": 3, - "cleanExpected": 2, - "expected.length": 4, - "cleanExpected.push": 1, - "computeErrorPosition": 2, - "line": 14, - "column": 8, - "seenCR": 5, - "rightmostFailuresPos": 2, - "parseFunctions": 1, - "startRule": 1, - "errorPosition": 1, - "rightmostFailuresExpected": 1, - "errorPosition.line": 1, - "errorPosition.column": 1, - "toSource": 1, - "this._source": 1, - "result.SyntaxError": 1, - "buildMessage": 2, - "expectedHumanized": 5, - "foundHumanized": 3, - "expected.slice": 1, - "this.expected": 1, - "this.found": 1, - "this.message": 3, - "this.line": 3, - "this.column": 1, - "result.SyntaxError.prototype": 1, - "Error.prototype": 1, + "window": 16, "steelseries": 10, "n.charAt": 1, "n.substring": 1, @@ -30784,6 +34625,8 @@ "min": 2, ".5": 7, "u/": 3, + "switch": 30, + "case": 136, "/u": 3, "f/": 1, "vt": 50, @@ -30798,15 +34641,18 @@ "n/255": 1, "t/255": 1, "i/255": 1, + "Math.min": 5, "f/r": 1, "/f": 3, "<0?0:n>": 1, "si": 23, "ti": 39, "Math.round": 7, + "or": 38, "/r": 1, "u*r": 1, "ni": 30, + "document": 26, "tt": 53, "ei": 26, "ot": 43, @@ -30898,6 +34744,8 @@ "ri": 24, "ht": 34, "ef": 5, + "we": 25, + "of": 28, "steelseries.TrendState.OFF": 4, "lr": 19, "f*.06": 1, @@ -30906,14 +34754,18 @@ "f*.36": 4, "et": 45, "gi": 26, + "at": 58, + "lt": 55, "rr": 21, "*lt": 9, "r.getElementById": 7, + ".getContext": 8, "u.save": 7, "u.clearRect": 5, "u.canvas.width": 7, "u.canvas.height": 7, "s/2": 2, + "it": 112, "k/2": 1, "pf": 4, ".6*s": 1, @@ -30929,6 +34781,7 @@ "rf": 5, "k*.57": 1, "tf": 5, + "ve": 3, "k*.61": 1, "Math.PI/2": 40, "ue": 1, @@ -30952,6 +34805,7 @@ "Math.PI": 13, "at/yt": 4, "*Math.PI": 10, + "default": 21, "*ue": 1, "ci/2": 1, "wi": 24, @@ -30984,6 +34838,7 @@ "pi": 24, "kt": 24, "pi.getContext": 2, + "li": 19, "pu": 9, "li.getContext": 6, "gu": 9, @@ -31112,6 +34967,7 @@ "f*.075": 1, "decimals": 1, "wt.decimals": 1, + "digits": 3, "wt.digits": 2, "valueForeColor": 1, "wt.valueForeColor": 1, @@ -31150,6 +35006,7 @@ "gf": 2, "yf.repaint": 1, "ur": 20, + "setInterval": 6, "e3": 5, "this.setValue": 7, "": 5, @@ -31178,6 +35035,7 @@ "this.setTitleString": 4, "this.setUnitString": 4, "this.setMinValue": 4, + "frame": 23, "this.getMinValue": 3, "this.setMaxValue": 3, "this.getMaxValue": 4, @@ -32208,12 +36066,820 @@ "7fd5f0": 2, "3c4439": 2, "72": 1, + "Animal": 12, + "Horse": 12, + "Snake": 12, + "sam": 4, + "tom": 4, + "__hasProp": 2, + ".hasOwnProperty": 2, + "__extends": 6, + "child": 17, + "key": 85, + "__hasProp.call": 2, + "ctor": 6, + "ctor.prototype": 3, + "parent.prototype": 6, + "child.prototype": 4, + "child.__super__": 3, + "Animal.name": 1, + "Animal.prototype.move": 2, + "meters": 4, + "alert": 11, + "_super": 4, + "Snake.name": 1, + "Snake.__super__.constructor.apply": 2, + "Snake.prototype.move": 2, + "Snake.__super__.move.call": 2, + "Horse.name": 1, + "Horse.__super__.constructor.apply": 2, + "Horse.prototype.move": 2, + "Horse.__super__.move.call": 2, + "sam.move": 2, + "tom.move": 2, + "cubes": 4, + "list": 21, + "math": 4, + "num": 23, + "opposite": 6, + "race": 4, + "square": 10, + "__slice": 2, + "root": 5, + "Math.sqrt": 2, + "cube": 2, + "runners": 6, + "winner": 6, + "__slice.call": 2, + "print": 2, + "elvis": 4, + "_i": 10, + "_len": 6, + "_results": 6, + "list.length": 5, + "_results.push": 2, + "math.cube": 2, + "util": 1, + "require": 9, + "net": 1, + "stream": 1, + "EventEmitter": 3, + ".EventEmitter": 1, + "FreeList": 2, + ".FreeList": 1, + "HTTPParser": 2, + "process.binding": 1, + ".HTTPParser": 1, + "assert": 8, + ".ok": 1, + "END_OF_FILE": 3, + "debug": 15, + "process.env.NODE_DEBUG": 2, + "/http/.test": 1, + "console.error": 3, + "parserOnHeaders": 2, + "this.maxHeaderPairs": 2, + "this._headers.length": 1, + "this._headers": 13, + "this._headers.concat": 1, + "this._url": 1, + "parserOnHeadersComplete": 2, + "info": 2, + "parser": 27, + "info.headers": 1, + "info.url": 1, + "parser._headers": 6, + "parser._url": 4, + "parser.incoming": 9, + "IncomingMessage": 4, + "parser.socket": 4, + "parser.incoming.httpVersionMajor": 1, + "info.versionMajor": 2, + "parser.incoming.httpVersionMinor": 1, + "info.versionMinor": 2, + "parser.incoming.httpVersion": 1, + "parser.incoming.url": 1, + "headers.length": 2, + "parser.maxHeaderPairs": 4, + "parser.incoming._addHeaderLine": 2, + "info.method": 2, + "parser.incoming.method": 1, + "parser.incoming.statusCode": 2, + "info.statusCode": 1, + "parser.incoming.upgrade": 4, + "info.upgrade": 2, + "skipBody": 3, + "response": 3, + "to": 92, + "CONNECT": 1, + "parser.onIncoming": 3, + "info.shouldKeepAlive": 1, + "parserOnBody": 2, + "len": 11, + "b.slice": 1, + "parser.incoming._paused": 2, + "parser.incoming._pendings.length": 2, + "parser.incoming._pendings.push": 2, + "parser.incoming._emitData": 1, + "parserOnMessageComplete": 2, + "parser.incoming.complete": 2, + "parser.incoming.readable": 1, + "parser.incoming._emitEnd": 1, + "parser.socket.readable": 1, + "parser.socket.resume": 1, + "parsers": 2, + "HTTPParser.REQUEST": 2, + "parser.onHeaders": 1, + "parser.onHeadersComplete": 1, + "parser.onBody": 1, + "parser.onMessageComplete": 1, + "exports.parsers": 1, + "CRLF": 13, + "STATUS_CODES": 2, + "exports.STATUS_CODES": 1, + "RFC": 16, + "obsoleted": 1, + "connectionExpression": 1, + "/Connection/i": 1, + "transferEncodingExpression": 1, + "/Transfer": 1, + "Encoding/i": 1, + "closeExpression": 1, + "/close/i": 1, + "chunkExpression": 1, + "/chunk/i": 1, + "contentLengthExpression": 1, + "/Content": 1, + "Length/i": 1, + "dateExpression": 1, + "/Date/i": 1, + "expectExpression": 1, + "/Expect/i": 1, + "continueExpression": 1, + "continue/i": 1, + "dateCache": 5, + "utcDate": 2, + "d.toUTCString": 1, + "d.getMilliseconds": 1, + "socket": 26, + "stream.Stream.call": 2, + "this.socket": 10, + "this.connection": 8, + "this.httpVersion": 1, + "this.complete": 2, + "this.headers": 2, + "this.trailers": 2, + "this.readable": 1, + "this._paused": 3, + "this._pendings": 1, + "this._endEmitted": 3, + "this.url": 1, + "this.method": 2, + "this.statusCode": 3, + "this.client": 1, + "util.inherits": 7, + "stream.Stream": 2, + "exports.IncomingMessage": 1, + "IncomingMessage.prototype.destroy": 1, + "this.socket.destroy": 3, + "IncomingMessage.prototype.setEncoding": 1, + "encoding": 26, + "StringDecoder": 2, + ".StringDecoder": 1, + "lazy": 1, + "this._decoder": 2, + "IncomingMessage.prototype.pause": 1, + "this.socket.pause": 1, + "IncomingMessage.prototype.resume": 1, + "this.socket.resume": 1, + "this._emitPending": 1, + "IncomingMessage.prototype._emitPending": 1, + "callback": 23, + "this._pendings.length": 1, + "self": 17, + "process.nextTick": 1, + "self._paused": 1, + "self._pendings.length": 2, + "chunk": 14, + "self._pendings.shift": 1, + "Buffer.isBuffer": 2, + "self._emitData": 1, + "self.readable": 1, + "self._emitEnd": 1, + "IncomingMessage.prototype._emitData": 1, + "this._decoder.write": 1, + "string.length": 1, + "this.emit": 5, + "IncomingMessage.prototype._emitEnd": 1, + "IncomingMessage.prototype._addHeaderLine": 1, + "field": 36, + "dest": 12, + "field.toLowerCase": 1, + ".push": 3, + "field.slice": 1, + "OutgoingMessage": 5, + "this.output": 3, + "this.outputEncodings": 2, + "this.writable": 1, + "this._last": 3, + "this.chunkedEncoding": 6, + "this.shouldKeepAlive": 4, + "this.useChunkedEncodingByDefault": 4, + "this.sendDate": 3, + "this._hasBody": 6, + "this._trailer": 5, + "this.finished": 4, + "exports.OutgoingMessage": 1, + "OutgoingMessage.prototype.destroy": 1, + "OutgoingMessage.prototype._send": 1, + "this._headerSent": 5, + "this._header": 10, + "this.output.unshift": 1, + "this.outputEncodings.unshift": 1, + "this._writeRaw": 2, + "OutgoingMessage.prototype._writeRaw": 1, + "data.length": 3, + "this.connection._httpMessage": 3, + "this.connection.writable": 3, + "this.output.length": 5, + "this._buffer": 2, + "this.output.shift": 2, + "this.outputEncodings.shift": 2, + "this.connection.write": 4, + "OutgoingMessage.prototype._buffer": 1, + "this.output.push": 2, + "this.outputEncodings.push": 2, + "lastEncoding": 2, + "lastData": 2, + "data.constructor": 1, + "lastData.constructor": 1, + "OutgoingMessage.prototype._storeHeader": 1, + "firstLine": 2, + "sentConnectionHeader": 3, + "sentContentLengthHeader": 4, + "sentTransferEncodingHeader": 3, + "sentDateHeader": 3, + "sentExpect": 3, + "messageHeader": 7, + "store": 3, + "connectionExpression.test": 1, + "closeExpression.test": 1, + "self._last": 4, + "self.shouldKeepAlive": 4, + "transferEncodingExpression.test": 1, + "chunkExpression.test": 1, + "self.chunkedEncoding": 1, + "contentLengthExpression.test": 1, + "dateExpression.test": 1, + "expectExpression.test": 1, + "keys": 11, + "Object.keys": 5, + "keys.length": 5, + "value.length": 1, + "shouldSendKeepAlive": 2, + "this.agent": 2, + "this._send": 8, + "OutgoingMessage.prototype.setHeader": 1, + "Error": 16, + "name.toLowerCase": 6, + "this._headerNames": 5, + "OutgoingMessage.prototype.getHeader": 1, + "OutgoingMessage.prototype.removeHeader": 1, + "OutgoingMessage.prototype._renderHeaders": 1, + "OutgoingMessage.prototype.write": 1, + "this._implicitHeader": 2, + "TypeError": 2, + "chunk.length": 2, + "ret": 62, + "Buffer.byteLength": 2, + "len.toString": 2, + "OutgoingMessage.prototype.addTrailers": 1, + "OutgoingMessage.prototype.end": 1, + "hot": 3, + ".toString": 3, + "this.write": 1, + "Last": 2, + "chunk.": 1, + "this._finish": 2, + "OutgoingMessage.prototype._finish": 1, + "ServerResponse": 5, + "DTRACE_HTTP_SERVER_RESPONSE": 1, + "ClientRequest": 6, + "DTRACE_HTTP_CLIENT_REQUEST": 1, + "OutgoingMessage.prototype._flush": 1, + "this.socket.writable": 2, + "XXX": 1, + "Necessary": 1, + "this.socket.write": 1, + "req": 32, + "OutgoingMessage.call": 2, + "req.method": 5, + "req.httpVersionMajor": 2, + "req.httpVersionMinor": 2, + "exports.ServerResponse": 1, + "ServerResponse.prototype.statusCode": 1, + "onServerResponseClose": 3, + "this._httpMessage.emit": 2, + "ServerResponse.prototype.assignSocket": 1, + "socket._httpMessage": 9, + "socket.on": 2, + "this._flush": 1, + "ServerResponse.prototype.detachSocket": 1, + "socket.removeListener": 5, + "ServerResponse.prototype.writeContinue": 1, + "this._sent100": 2, + "ServerResponse.prototype._implicitHeader": 1, + "this.writeHead": 1, + "ServerResponse.prototype.writeHead": 1, + "statusCode": 7, + "reasonPhrase": 4, + "headerIndex": 4, + "obj": 40, + "this._renderHeaders": 3, + "obj.length": 1, + "obj.push": 1, + "statusLine": 2, + "statusCode.toString": 1, + "this._expect_continue": 1, + "this._storeHeader": 2, + "ServerResponse.prototype.writeHeader": 1, + "this.writeHead.apply": 1, + "Agent": 5, + "self.options": 2, + "self.requests": 6, + "self.sockets": 3, + "self.maxSockets": 1, + "self.options.maxSockets": 1, + "Agent.defaultMaxSockets": 2, + "self.on": 1, + "host": 29, + "port": 29, + "localAddress": 15, + ".shift": 1, + ".onSocket": 1, + "socket.destroy": 10, + "self.createConnection": 2, + "net.createConnection": 3, + "exports.Agent": 1, + "Agent.prototype.defaultPort": 1, + "Agent.prototype.addRequest": 1, + "this.sockets": 9, + "this.maxSockets": 1, + "req.onSocket": 1, + "this.createSocket": 2, + "this.requests": 5, + "Agent.prototype.createSocket": 1, + "util._extend": 1, + "options.port": 4, + "options.host": 4, + "options.localAddress": 3, + "onFree": 3, + "self.emit": 9, + "s.on": 4, + "onClose": 3, + "err": 5, + "self.removeSocket": 2, + "onRemove": 3, + "s.removeListener": 3, + "Agent.prototype.removeSocket": 1, + ".indexOf": 2, + ".emit": 1, + "globalAgent": 3, + "exports.globalAgent": 1, + "self.agent": 3, + "options.agent": 3, + "defaultPort": 3, + "options.defaultPort": 1, + "options.hostname": 1, + "options.setHost": 1, + "setHost": 2, + "self.socketPath": 4, + "options.socketPath": 1, + "method": 30, + "self.method": 3, + "options.method": 2, + ".toUpperCase": 3, + "self.path": 3, + "options.path": 2, + "self.once": 2, + "options.headers": 7, + "self.setHeader": 1, + "this.getHeader": 2, + "hostHeader": 3, + "this.setHeader": 2, + "options.auth": 2, + "//basic": 1, + "auth": 1, + "Buffer": 1, + "self.useChunkedEncodingByDefault": 2, + "self._storeHeader": 2, + "self.getHeader": 1, + "self._renderHeaders": 1, + "options.createConnection": 4, + "self.onSocket": 3, + "self.agent.addRequest": 1, + "conn": 3, + "self._deferToConnect": 1, + "self._flush": 1, + "exports.ClientRequest": 1, + "ClientRequest.prototype._implicitHeader": 1, + "this.path": 1, + "ClientRequest.prototype.abort": 1, + "this._deferToConnect": 3, + "createHangUpError": 3, + "error.code": 1, + "freeParser": 9, + "parser.socket.onend": 1, + "parser.socket.ondata": 1, + "parser.socket.parser": 1, + "parsers.free": 1, + "req.parser": 1, + "socketCloseListener": 2, + "socket.parser": 3, + "req.emit": 8, + "req.res": 8, + "req.res.readable": 1, + "req.res.emit": 1, + "res": 14, + "req.res._emitPending": 1, + "res._emitEnd": 1, + "res.emit": 1, + "req._hadError": 3, + "parser.finish": 6, + "socketErrorListener": 2, + "err.message": 1, + "err.stack": 1, + "socketOnEnd": 1, + "this._httpMessage": 3, + "this.parser": 2, + "socketOnData": 1, + "parser.execute": 2, + "bytesParsed": 4, + "socket.ondata": 3, + "socket.onend": 3, + "bodyHead": 4, + "d.slice": 2, + "eventName": 21, + "req.listeners": 1, + "req.upgradeOrConnect": 1, + "socket.emit": 1, + "parserOnIncomingClient": 1, + "shouldKeepAlive": 4, + "res.upgrade": 1, + "skip": 5, + "isHeadResponse": 2, + "res.statusCode": 1, + "Clear": 1, + "so": 8, + "that": 33, + "don": 5, + "been": 5, + "upgraded": 1, + "via": 2, + "WebSockets": 1, + "also": 5, + "shouldn": 2, + "AGENT": 2, + "socket.destroySoon": 2, + "keep": 1, + "alive": 1, + "close": 2, + "free": 1, + "an": 12, + "important": 1, + "promisy": 1, + "thing": 2, + "all": 16, + "the": 107, + "onSocket": 3, + "self.socket.writable": 1, + "self.socket": 5, + "arguments_": 2, + "self.socket.once": 1, + "ClientRequest.prototype.setTimeout": 1, + "msecs": 4, + "this.once": 2, + "emitTimeout": 4, + "this.socket.setTimeout": 1, + "this.socket.once": 1, + "this.setTimeout": 3, + "sock": 1, + "ClientRequest.prototype.setNoDelay": 1, + "ClientRequest.prototype.setSocketKeepAlive": 1, + "ClientRequest.prototype.clearTimeout": 1, + "exports.request": 2, + "url.parse": 1, + "options.protocol": 3, + "exports.get": 1, + "req.end": 1, + "ondrain": 3, + "httpSocketSetup": 2, + "Server": 6, + "requestListener": 6, + "net.Server.call": 1, + "allowHalfOpen": 1, + "this.addListener": 2, + "this.httpAllowHalfOpen": 1, + "connectionListener": 3, + "net.Server": 1, + "exports.Server": 1, + "exports.createServer": 1, + "outgoing": 2, + "incoming": 2, + "abortIncoming": 3, + "incoming.length": 2, + "incoming.shift": 2, + "serverSocketCloseListener": 3, + "socket.setTimeout": 1, + "minute": 1, + "socket.once": 1, + "parsers.alloc": 1, + "parser.reinitialize": 1, + "this.maxHeadersCount": 2, + "<<": 4, + "socket.addListener": 2, + "self.listeners": 2, + "req.socket": 1, + "self.httpAllowHalfOpen": 1, + "socket.writable": 2, + "socket.end": 2, + "outgoing.length": 2, + "._last": 1, + "socket._httpMessage._last": 1, + "incoming.push": 1, + "res.shouldKeepAlive": 1, + "DTRACE_HTTP_SERVER_REQUEST": 1, + "outgoing.push": 1, + "res.assignSocket": 1, + "res.on": 1, + "res.detachSocket": 1, + "res._last": 1, + "outgoing.shift": 1, + "m.assignSocket": 1, + "req.headers": 2, + "continueExpression.test": 1, + "res._expect_continue": 1, + "res.writeContinue": 1, + "Not": 4, + "response.": 1, + "exports._connectionListener": 1, + "Client": 6, + "this.host": 1, + "this.port": 1, + "maxSockets": 1, + "Client.prototype.request": 1, + "path": 5, + "self.host": 1, + "self.port": 1, + "c.on": 2, + "exports.Client": 1, + "module.deprecate": 2, + "exports.createClient": 1, + "JSON": 5, + "Date.prototype.toJSON": 2, + "isFinite": 1, + "this.valueOf": 2, + "this.getUTCFullYear": 1, + "this.getUTCMonth": 1, + "this.getUTCDate": 1, + "this.getUTCHours": 1, + "this.getUTCMinutes": 1, + "this.getUTCSeconds": 1, + "String.prototype.toJSON": 1, + "Number.prototype.toJSON": 1, + "Boolean.prototype.toJSON": 1, + "u0000": 1, + "u00ad": 1, + "u0600": 1, + "u0604": 1, + "u070f": 1, + "u17b4": 1, + "u17b5": 1, + "u200c": 1, + "u200f": 1, + "u2028": 3, + "u202f": 1, + "u2060": 1, + "u206f": 1, + "ufeff": 1, + "ufff0": 1, + "uffff": 1, + "escapable": 1, + "boolean": 8, + "JSON.stringify": 4, + "/bfnrt": 1, + "fA": 2, + "JSON.parse": 1, + "PUT": 1, + "DELETE": 1, + "_id": 1, + "Can": 2, + "ties": 1, + "collection.": 1, + "_removeReference": 1, + "model": 14, + "model.collection": 2, + "model.unbind": 1, + "this._onModelEvent": 1, + "_onModelEvent": 1, + "ev": 5, + "collection": 3, + "this._remove": 1, + "model.idAttribute": 2, + "this._byId": 2, + "model.previous": 1, + "model.id": 1, + "this.trigger.apply": 2, + "methods": 8, + "_.each": 1, + "Backbone.Collection.prototype": 1, + "this.models": 1, + "_.toArray": 1, + "Backbone.Router": 1, + "options.routes": 2, + "this.routes": 4, + "this._bindRoutes": 1, + "this.initialize.apply": 2, + "namedParam": 2, + "splatParam": 2, + "escapeRegExp": 2, + "_.extend": 9, + "Backbone.Router.prototype": 1, + "Backbone.Events": 2, + "route": 18, + "Backbone.history": 2, + "Backbone.History": 2, + "_.isRegExp": 1, + "this._routeToRegExp": 1, + "Backbone.history.route": 1, + "_.bind": 2, + "args": 31, + "this._extractParameters": 1, + "callback.apply": 1, + "navigate": 2, + "triggerRoute": 4, + "Backbone.history.navigate": 1, + "_bindRoutes": 1, + "routes": 4, + "routes.unshift": 1, + "routes.length": 1, + "this.route": 1, + "_routeToRegExp": 1, + "route.replace": 1, + "_extractParameters": 1, + "route.exec": 1, + "this.handlers": 2, + "_.bindAll": 1, + "hashStrip": 4, + "#*": 1, + "isExplorer": 1, + "/msie": 1, + "historyStarted": 3, + "Backbone.History.prototype": 1, + "getFragment": 1, + "forcePushState": 2, + "this._hasPushState": 6, + "window.location.pathname": 1, + "window.location.search": 1, + "fragment.indexOf": 1, + "this.options.root": 6, + "fragment.substr": 1, + "this.options.root.length": 1, + "window.location.hash": 3, + "fragment.replace": 1, + "this.options": 6, + "this._wantsPushState": 3, + "this.options.pushState": 2, + "window.history": 2, + "window.history.pushState": 2, + "this.getFragment": 6, + "docMode": 3, + "document.documentMode": 3, + "oldIE": 3, + "isExplorer.exec": 1, + "navigator.userAgent.toLowerCase": 1, + "this.iframe": 4, + ".contentWindow": 1, + "this.navigate": 2, + ".bind": 3, + "this.checkUrl": 3, + "this.interval": 1, + "this.fragment": 13, + "loc": 2, + "window.location": 5, + "atRoot": 3, + "loc.pathname": 1, + "loc.hash": 1, + "loc.hash.replace": 1, + "window.history.replaceState": 1, + "document.title": 2, + "loc.protocol": 2, + "loc.host": 2, + "this.loadUrl": 4, + "this.handlers.unshift": 1, + "checkUrl": 1, + "current": 7, + "this.iframe.location.hash": 3, + "decodeURIComponent": 2, + "loadUrl": 1, + "fragmentOverride": 2, + "matched": 2, + "_.any": 1, + "handler.route.test": 1, + "handler.callback": 1, + "frag": 13, + "frag.indexOf": 1, + "this.iframe.document.open": 1, + ".close": 1, + "Backbone.View": 1, + "this.cid": 3, + "_.uniqueId": 1, + "this._configure": 1, + "this._ensureElement": 1, + "this.delegateEvents": 1, + "selectorDelegate": 2, + "this.el": 10, + "eventSplitter": 2, + "viewOptions": 2, + "Backbone.View.prototype": 1, + "tagName": 3, + "render": 1, + "make": 2, + "attributes": 14, + "content": 5, + "el": 4, + "document.createElement": 26, + ".attr": 1, + ".html": 1, + "delegateEvents": 1, + "this.events": 1, + "match": 30, + "key.match": 1, + ".delegate": 2, + "_configure": 1, + "viewOptions.length": 1, + "_ensureElement": 1, + "attrs": 6, + "this.attributes": 1, + "this.id": 2, + "attrs.id": 1, + "this.make": 1, + "this.tagName": 1, + "_.isString": 1, + "protoProps": 6, + "classProps": 2, + "inherits": 2, + "child.extend": 1, + "this.extend": 1, + "Backbone.Model.extend": 1, + "Backbone.Collection.extend": 1, + "Backbone.Router.extend": 1, + "Backbone.View.extend": 1, + "methodMap": 2, + "Backbone.sync": 1, + "params": 2, + "params.url": 2, + "getUrl": 2, + "urlError": 2, + "params.data": 5, + "params.contentType": 2, + "model.toJSON": 1, + "Backbone.emulateJSON": 2, + "params.processData": 1, + "Backbone.emulateHTTP": 1, + "params.data._method": 1, + "params.type": 1, + "params.beforeSend": 1, + "xhr": 1, + "xhr.setRequestHeader": 1, + ".ajax": 1, + "staticProps": 3, + "protoProps.hasOwnProperty": 1, + "protoProps.constructor": 1, + "parent.apply": 1, + "child.prototype.constructor": 1, + "object.url": 4, + "_.isFunction": 1, + "wrapError": 1, + "onError": 3, + "resp": 3, + "model.trigger": 1, + "escapeHTML": 1, + "string.replace": 1, + "#x": 1, + "da": 1, + "": 1, + "#x27": 1, + "#x2F": 1, + "SHEBANG#!node": 2, + "console.log": 3, "KEYWORDS": 2, "array_to_hash": 11, "RESERVED_WORDS": 2, "KEYWORDS_BEFORE_EXPRESSION": 2, "KEYWORDS_ATOM": 2, "OPERATOR_CHARS": 1, + "characters": 6, "RE_HEX_NUMBER": 1, "RE_OCT_NUMBER": 1, "RE_DEC_NUMBER": 1, @@ -32223,6 +36889,7 @@ "PUNC_CHARS": 1, "REGEXP_MODIFIERS": 1, "UNICODE": 1, + "letter": 3, "non_spacing_mark": 1, "space_combining_mark": 1, "connector_punctuation": 1, @@ -32233,6 +36900,8 @@ "//XXX": 1, "out": 1, "means": 1, + "something": 3, + "than": 3, "is_alphanumeric_char": 3, "is_unicode_combining_mark": 2, "UNICODE.non_spacing_mark.test": 1, @@ -32242,6 +36911,7 @@ "is_identifier_start": 2, "is_identifier_char": 1, "zero": 2, + "non": 8, "joiner": 2, "": 1, "": 1, @@ -32255,6 +36925,10 @@ "RE_DEC_NUMBER.test": 1, "JS_Parse_Error": 2, "message": 5, + "line": 14, + "pos": 197, + "this.message": 3, + "this.line": 3, "this.col": 2, "ex": 3, "ex.name": 1, @@ -32270,6 +36944,7 @@ "tokenizer": 2, "TEXT": 1, "TEXT.replace": 1, + "u2029": 2, "uFEFF/": 1, "tokpos": 1, "tokline": 1, @@ -32311,13 +36986,16 @@ "has_dot": 3, "valid": 4, "read_escaped_char": 1, + "String.fromCharCode": 4, "hex_bytes": 3, "digit": 3, "read_string": 1, "with_eof_error": 1, + "quote": 3, "comment1": 1, "Unterminated": 2, "multiline": 1, + "comment": 3, "comment2": 1, "WARNING": 1, "***": 1, @@ -32330,6 +37008,7 @@ "UnicodeEscapeSequence": 1, "uXXXX": 1, "Unicode": 1, + "char": 2, "identifier": 1, "regular": 1, "regexp": 5, @@ -32338,29 +37017,40 @@ "atom": 5, "keyword": 11, "Unexpected": 3, + "character": 3, "void": 1, "<\",>": 1, "<=\",>": 1, + "expected": 12, + "block": 4, "debugger": 2, + "outside": 2, "const": 2, + "with": 18, + "label": 2, "stat": 1, "Label": 1, "without": 1, + "matching": 3, "statement": 1, + "inside": 3, "defun": 1, "Name": 1, "Missing": 1, "catch/finally": 1, "blocks": 1, "unary": 2, + "array": 7, "dot": 2, "postfix": 1, "Invalid": 2, + "use": 10, "binary": 1, "conditional": 1, "assign": 1, "assignment": 1, "seq": 1, + "toplevel": 7, "member": 2, "array.length": 1, "Object.prototype.hasOwnProperty.call": 1, @@ -32382,2300 +37072,1618 @@ "exports.OPERATORS": 1, "exports.is_alphanumeric_char": 1, "exports.set_logger": 1, - "logger": 2 - }, - "JSON": { - "{": 73, - "[": 17, - "]": 17, - "}": 73, - "true": 3 - }, - "JSON5": { - "{": 6, - "foo": 1, - "while": 1, - "true": 1, - "this": 1, - "here": 1, - "//": 2, - "inline": 1, - "comment": 1, - "hex": 1, - "xDEADbeef": 1, - "half": 1, - ".5": 1, - "delta": 1, - "+": 1, - "to": 1, - "Infinity": 1, - "and": 1, - "beyond": 1, - "finally": 1, - "oh": 1, - "[": 3, - "]": 3, - "}": 6, - "name": 1, - "version": 1, - "description": 1, - "keywords": 1, - "author": 1, - "contributors": 1, - "main": 1, - "bin": 1, - "dependencies": 1, - "devDependencies": 1, - "mocha": 1, - "scripts": 1, - "build": 1, - "test": 1, - "homepage": 1, - "repository": 1, - "type": 1, - "url": 1 - }, - "JSONiq": { - "(": 14, - "Query": 2, - "for": 4, - "returning": 1, - "one": 1, - "database": 2, - "entry": 1, - ")": 14, - "import": 5, - "module": 5, - "namespace": 5, - "req": 6, - ";": 9, - "catalog": 4, - "variable": 4, - "id": 3, - "param": 4, - "-": 11, - "values": 4, - "[": 5, - "]": 5, - "part": 2, - "get": 2, - "data": 4, - "by": 2, - "key": 1, - "searching": 1, - "the": 1, - "keywords": 1, - "index": 3, - "phrase": 2, - "limit": 2, - "integer": 1, - "result": 1, - "at": 1, - "idx": 2, - "in": 1, - "search": 1, - "where": 1, - "le": 1, - "let": 1, - "result.s": 1, - "result.p": 1, - "return": 1, - "{": 2, - "|": 2, - "score": 1, - "result.r": 1, - "}": 2 - }, - "JSONLD": { - "{": 7, - "}": 7, - "[": 1, - "null": 2, - "]": 1 - }, - "Julia": { - "##": 5, - "Test": 1, - "case": 1, - "from": 1, - "Issue": 1, - "#445": 1, - "#STOCKCORR": 1, - "-": 11, - "The": 1, - "original": 1, - "unoptimised": 1, - "code": 1, - "that": 1, - "simulates": 1, - "two": 2, - "correlated": 1, - "assets": 1, - "function": 1, - "stockcorr": 1, - "(": 13, - ")": 13, - "Correlated": 1, - "asset": 1, - "information": 1, - "CurrentPrice": 3, - "[": 20, - "]": 20, - "#": 11, - "Initial": 1, - "Prices": 1, - "of": 6, - "the": 2, - "stocks": 1, - "Corr": 2, - ";": 1, - "Correlation": 1, - "Matrix": 2, - "T": 5, - "Number": 2, - "days": 3, - "to": 1, - "simulate": 1, - "years": 1, - "n": 4, - "simulations": 1, - "dt": 3, - "/250": 1, - "Time": 1, - "step": 1, - "year": 1, - "Div": 3, - "Dividend": 1, - "Vol": 5, - "Volatility": 1, - "Market": 1, - "Information": 1, - "r": 3, - "Risk": 1, - "free": 1, - "rate": 1, - "Define": 1, - "storages": 1, - "SimulPriceA": 5, - "zeros": 2, - "Simulated": 2, - "Price": 2, - "Asset": 2, - "A": 1, - "SimulPriceB": 5, - "B": 1, - "Generating": 1, - "paths": 1, - "stock": 1, - "prices": 1, - "by": 2, - "Geometric": 1, - "Brownian": 1, - "Motion": 1, - "UpperTriangle": 2, - "chol": 1, - "Cholesky": 1, - "decomposition": 1, - "for": 2, - "i": 5, - "Wiener": 1, - "randn": 1, - "CorrWiener": 1, - "Wiener*UpperTriangle": 1, - "j": 7, - "*exp": 2, - "/2": 2, - "*dt": 2, - "+": 2, - "*sqrt": 2, - "*CorrWiener": 2, - "end": 3, - "return": 1 - }, - "Kit": { - "
": 1, - "

": 1, - "

": 1, - "

": 1, - "

": 1, - "
": 1 - }, - "Kotlin": { - "package": 1, - "addressbook": 1, - "class": 5, - "Contact": 1, - "(": 15, - "val": 16, - "name": 2, - "String": 7, - "emails": 1, - "List": 3, - "": 1, - "addresses": 1, - "": 1, - "phonenums": 1, - "": 1, - ")": 15, - "EmailAddress": 1, - "user": 1, - "host": 1, - "PostalAddress": 1, - "streetAddress": 1, - "city": 1, - "zip": 1, - "state": 2, - "USState": 1, - "country": 3, - "Country": 7, - "{": 6, - "assert": 1, - "null": 3, - "xor": 1, - "Countries": 2, - "[": 3, - "]": 3, - "}": 6, - "PhoneNumber": 1, - "areaCode": 1, - "Int": 1, - "number": 1, - "Long": 1, - "object": 1, - "fun": 1, - "get": 2, - "id": 2, - "CountryID": 1, - "countryTable": 2, - "private": 2, - "var": 1, - "table": 5, - "Map": 2, - "": 2, - "if": 1, - "HashMap": 1, - "for": 1, - "line": 3, - "in": 1, - "TextFile": 1, - ".lines": 1, - "stripWhiteSpace": 1, - "true": 1, - "return": 1 - }, - "KRL": { - "ruleset": 1, - "sample": 1, - "{": 3, - "meta": 1, - "name": 1, - "description": 1, - "<<": 1, - "Hello": 1, - "world": 1, - "author": 1, - "}": 3, - "rule": 1, - "hello": 1, - "select": 1, - "when": 1, - "web": 1, - "pageview": 1, - "notify": 1, - "(": 1, - ")": 1, - ";": 1 - }, - "Lasso": { - "<": 7, - "LassoScript": 1, - "//": 169, - "JSON": 2, - "Encoding": 1, - "and": 52, - "Decoding": 1, - "Copyright": 1, - "-": 2248, - "LassoSoft": 1, - "Inc.": 1, - "": 1, - "": 1, - "": 1, - "This": 5, - "tag": 11, - "is": 35, - "now": 23, - "incorporated": 1, - "in": 46, - "Lasso": 15, - "If": 4, - "(": 640, - "Lasso_TagExists": 1, - ")": 639, - "False": 1, - ";": 573, - "Define_Tag": 1, - "Namespace": 1, - "Required": 1, - "Optional": 1, - "Local": 7, - "Map": 3, - "r": 8, - "n": 30, - "t": 8, - "f": 2, - "b": 2, - "output": 30, - "newoptions": 1, - "options": 2, - "array": 20, - "set": 10, - "list": 4, - "queue": 2, - "priorityqueue": 2, - "stack": 2, - "pair": 1, - "map": 23, - "[": 22, - "]": 23, - "literal": 3, - "string": 59, - "integer": 30, - "decimal": 5, - "boolean": 4, - "null": 26, - "date": 23, - "temp": 12, - "object": 7, - "{": 18, - "}": 18, - "client_ip": 1, - "client_address": 1, - "__jsonclass__": 6, - "deserialize": 2, - "": 3, - "": 3, - "Decode_JSON": 2, - "Decode_": 1, - "value": 14, - "consume_string": 1, - "ibytes": 9, - "unescapes": 1, - "u": 1, - "UTF": 4, - "%": 14, - "QT": 4, - "TZ": 2, - "T": 3, - "consume_token": 1, - "obytes": 3, - "delimit": 7, - "true": 12, - "false": 8, - ".": 5, - "consume_array": 1, - "consume_object": 1, - "key": 3, - "val": 1, - "native": 2, - "comment": 2, - "http": 6, - "//www.lassosoft.com/json": 1, - "start": 5, - "Literal": 2, - "String": 1, - "Object": 2, - "JSON_RPCCall": 1, - "RPCCall": 1, - "JSON_": 1, - "method": 7, - "params": 11, - "id": 7, - "host": 6, - "//localhost/lassoapps.8/rpc/rpc.lasso": 1, - "request": 2, - "result": 6, - "JSON_Records": 3, - "KeyField": 1, - "ReturnField": 1, - "ExcludeField": 1, - "Fields": 1, - "_fields": 1, - "fields": 2, - "No": 1, - "found": 5, - "for": 65, - "_keyfield": 4, - "keyfield": 4, - "ID": 1, - "_index": 1, - "_return": 1, - "returnfield": 1, - "_exclude": 1, - "excludefield": 1, - "_records": 1, - "_record": 1, - "_temp": 1, - "_field": 1, - "_output": 1, - "error_msg": 15, - "error_code": 11, - "found_count": 11, - "rows": 1, - "#_records": 1, - "Return": 7, - "@#_output": 1, - "/Define_Tag": 1, - "/If": 3, - "define": 20, - "trait_json_serialize": 2, - "trait": 1, - "require": 1, - "asString": 3, - "json_serialize": 18, - "e": 13, - "bytes": 8, - "+": 146, - "#e": 13, - "Replace": 19, - "&": 21, - "json_literal": 1, - "asstring": 4, - "format": 7, - "gmt": 1, - "|": 13, - "trait_forEach": 1, - "local": 116, - "foreach": 1, - "#output": 50, - "#delimit": 7, - "#1": 3, - "return": 75, - "with": 25, - "pr": 1, - "eachPair": 1, - "select": 1, - "#pr": 2, - "first": 12, - "second": 8, - "join": 5, - "json_object": 2, - "foreachpair": 1, - "any": 14, - "serialize": 1, - "json_consume_string": 3, - "while": 9, - "#temp": 19, - "#ibytes": 17, - "export8bits": 6, - "#obytes": 5, - "import8bits": 4, - "Escape": 1, - "/while": 7, - "unescape": 1, - "//Replace": 1, - "if": 76, - "BeginsWith": 1, - "&&": 30, - "EndsWith": 1, - "Protect": 1, - "serialization_reader": 1, - "xml": 1, - "read": 1, - "/Protect": 1, - "else": 32, - "size": 24, - "or": 6, - "regexp": 1, - "d": 2, - "Z": 1, - "matches": 1, - "Format": 1, - "yyyyMMdd": 2, - "HHmmssZ": 1, - "HHmmss": 1, - "/if": 53, - "json_consume_token": 2, - "marker": 4, - "Is": 1, - "also": 5, - "end": 2, - "of": 24, - "token": 1, - "//............................................................................": 2, - "string_IsNumeric": 1, - "json_consume_array": 3, - "While": 1, - "Discard": 1, - "whitespace": 3, - "Else": 7, - "insert": 18, - "#key": 12, - "json_consume_object": 2, - "Loop_Abort": 1, - "/While": 1, - "Find": 3, - "isa": 25, - "First": 4, - "find": 57, - "Second": 1, - "json_deserialize": 1, - "removeLeading": 1, - "bom_utf8": 1, - "Reset": 1, - "on": 1, - "provided": 1, - "**/": 1, - "type": 63, - "parent": 5, - "public": 1, - "onCreate": 1, - "...": 3, - "..onCreate": 1, - "#rest": 1, - "json_rpccall": 1, - "#id": 2, - "#host": 4, - "Lasso_UniqueID": 1, - "Include_URL": 1, - "PostParams": 1, - "Encode_JSON": 1, - "#method": 1, - "#params": 5, - "": 6, - "2009": 14, - "09": 10, - "04": 8, - "JS": 126, - "Added": 40, - "content_body": 14, - "compatibility": 4, - "pre": 4, - "8": 6, - "5": 4, - "05": 4, - "07": 6, - "timestamp": 4, - "to": 98, - "knop_cachestore": 4, - "maxage": 2, - "parameter": 8, - "knop_cachefetch": 4, - "Corrected": 8, - "construction": 2, - "cache_name": 2, - "internally": 2, - "the": 86, - "knop_cache": 2, - "tags": 14, - "so": 16, - "it": 20, - "will": 12, - "work": 6, - "correctly": 2, - "at": 10, - "site": 4, - "root": 2, - "2008": 6, - "11": 8, - "dummy": 2, - "knop_debug": 4, - "ctype": 2, - "be": 38, - "able": 14, - "transparently": 2, - "without": 4, - "L": 2, - "Debug": 2, - "24": 2, - "knop_stripbackticks": 2, - "01": 4, - "28": 2, - "Cache": 2, - "name": 32, - "used": 12, - "when": 10, - "using": 8, - "session": 4, - "storage": 8, - "2007": 6, - "12": 8, - "knop_cachedelete": 2, - "Created": 4, - "03": 2, - "knop_foundrows": 2, - "condition": 4, - "returning": 2, - "normal": 2, - "For": 2, - "lasso_tagexists": 4, - "define_tag": 48, - "namespace=": 12, - "__html_reply__": 4, - "define_type": 14, - "debug": 2, - "_unknowntag": 6, - "onconvert": 2, - "stripbackticks": 2, - "description=": 2, - "priority=": 2, - "required=": 2, - "input": 2, - "split": 2, - "@#output": 2, - "/define_tag": 36, - "description": 34, - "namespace": 16, - "priority": 8, - "Johan": 2, - "S": 2, - "lve": 2, - "#charlist": 6, - "current": 10, - "time": 8, - "a": 52, - "mixed": 2, - "up": 4, - "as": 26, - "seed": 6, - "#seed": 36, - "convert": 4, - "this": 14, - "base": 6, - "conversion": 4, - "get": 12, - "#base": 8, - "/": 6, - "over": 2, - "new": 14, - "chunk": 2, - "millisecond": 2, - "math_random": 2, - "lower": 2, - "upper": 2, - "__lassoservice_ip__": 2, - "response_localpath": 8, - "removetrailing": 8, - "response_filepath": 8, - "//tagswap.net/found_rows": 2, - "action_statement": 2, - "string_findregexp": 8, - "#sql": 42, - "ignorecase": 12, - "||": 8, - "maxrecords_value": 2, - "inaccurate": 2, - "must": 4, - "accurate": 2, - "Default": 2, - "usually": 2, - "fastest.": 2, - "Can": 2, - "not": 10, - "GROUP": 4, - "BY": 6, - "example.": 2, - "normalize": 4, - "around": 2, - "FROM": 2, - "expression": 6, - "string_replaceregexp": 8, - "replace": 8, - "ReplaceOnlyOne": 2, - "substring": 6, - "remove": 6, - "ORDER": 2, - "statement": 4, - "since": 4, - "causes": 4, - "problems": 2, - "field": 26, - "aliases": 2, - "we": 2, - "can": 14, - "simple": 2, - "later": 2, - "query": 4, - "contains": 2, - "use": 10, - "SQL_CALC_FOUND_ROWS": 2, - "which": 2, - "much": 2, - "slower": 2, - "see": 16, - "//bugs.mysql.com/bug.php": 2, - "removeleading": 2, - "inline": 4, - "sql": 2, - "exit": 2, - "here": 2, - "normally": 2, - "/inline": 2, - "fallback": 4, - "required": 10, - "optional": 36, - "local_defined": 26, - "knop_seed": 2, - "#RandChars": 4, - "Get": 2, - "Math_Random": 2, - "Min": 2, - "Max": 2, - "Size": 2, - "#value": 14, - "#numericValue": 4, - "length": 8, - "#cryptvalue": 10, - "#anyChar": 2, - "Encrypt_Blowfish": 2, - "decrypt_blowfish": 2, - "String_Remove": 2, - "StartPosition": 2, - "EndPosition": 2, - "Seed": 2, - "String_IsAlphaNumeric": 2, - "self": 72, - "_date_msec": 4, - "/define_type": 4, - "seconds": 4, - "default": 4, - "store": 4, - "all": 6, - "page": 14, - "vars": 8, - "specified": 8, - "iterate": 12, - "keys": 6, - "var": 38, - "#item": 10, - "#type": 26, - "#data": 14, - "/iterate": 12, - "//fail_if": 6, - "session_id": 6, - "#session": 10, - "session_addvar": 4, - "#cache_name": 72, - "duration": 4, - "#expires": 4, - "server_name": 6, - "initiate": 10, - "thread": 6, - "RW": 6, - "lock": 24, - "global": 40, - "Thread_RWLock": 6, - "create": 6, - "reference": 10, - "@": 8, - "writing": 6, - "#lock": 12, - "writelock": 4, - "check": 6, - "cache": 4, - "unlock": 6, - "writeunlock": 4, - "#maxage": 4, - "cached": 8, - "data": 12, - "too": 4, - "old": 4, - "reading": 2, - "readlock": 2, - "readunlock": 2, - "ignored": 2, - "//##################################################################": 4, - "knoptype": 2, - "All": 4, - "Knop": 6, - "custom": 8, - "types": 10, - "should": 4, - "have": 6, - "identify": 2, - "registered": 2, - "knop": 6, - "isknoptype": 2, - "knop_knoptype": 2, - "prototype": 4, - "version": 4, - "14": 4, - "Base": 2, - "framework": 2, - "Contains": 2, - "common": 4, - "member": 10, - "Used": 2, - "boilerplate": 2, - "creating": 4, - "other": 4, - "instance": 8, - "variables": 2, - "are": 4, - "available": 2, - "well": 2, - "CHANGE": 4, - "NOTES": 4, - "Syntax": 4, - "adjustments": 4, - "9": 2, - "Changed": 6, - "error": 22, - "numbers": 2, - "added": 10, - "even": 2, - "language": 10, - "already": 2, - "exists.": 2, - "improved": 4, - "reporting": 2, - "messages": 6, - "such": 2, - "from": 6, - "bad": 2, - "database": 14, - "queries": 2, - "error_lang": 2, - "provide": 2, - "knop_lang": 8, - "add": 12, - "localized": 2, - "except": 2, - "knop_base": 8, - "html": 4, - "xhtml": 28, - "help": 10, - "nicely": 2, - "formatted": 2, - "output.": 2, - "Centralized": 2, - "knop_base.": 2, - "Moved": 6, - "codes": 2, - "improve": 2, - "documentation.": 2, - "It": 2, - "always": 2, - "an": 8, - "parameter.": 2, - "trace": 2, - "tagtime": 4, - "was": 6, - "nav": 4, - "earlier": 2, - "varname": 4, - "retreive": 2, - "variable": 8, - "that": 18, - "stored": 2, - "in.": 2, - "automatically": 2, - "sense": 2, - "doctype": 6, - "exists": 2, - "buffer.": 2, - "The": 6, - "performance.": 2, - "internal": 2, - "html.": 2, - "Introduced": 2, - "_knop_data": 10, - "general": 2, - "level": 2, - "caching": 2, - "between": 2, - "different": 2, - "objects.": 2, - "TODO": 2, - "option": 2, - "Google": 2, - "Code": 2, - "Wiki": 2, - "working": 2, - "properly": 4, - "run": 2, - "by": 12, - "atbegin": 2, - "handler": 2, - "explicitly": 2, - "*/": 2, - "entire": 4, - "ms": 2, - "defined": 4, - "each": 8, - "instead": 4, - "avoid": 2, - "recursion": 2, - "properties": 4, - "#endslash": 10, - "#tags": 2, - "#t": 2, - "doesn": 4, - "p": 2, - "Parameters": 4, - "nParameters": 2, - "Internal.": 2, - "Finds": 2, - "out": 2, - "used.": 2, - "Looks": 2, - "unless": 2, - "array.": 2, - "variable.": 2, - "Looking": 2, - "#xhtmlparam": 4, - "plain": 2, - "#doctype": 4, - "copy": 4, - "standard": 2, - "code": 2, - "errors": 12, - "error_data": 12, - "form": 2, - "grid": 2, - "lang": 2, - "user": 4, - "#error_lang": 12, - "addlanguage": 4, - "strings": 6, - "@#errorcodes": 2, - "#error_lang_custom": 2, - "#custom_language": 10, - "once": 4, - "one": 2, - "#custom_string": 4, - "#errorcodes": 4, - "#error_code": 10, - "message": 6, - "getstring": 2, - "test": 2, - "known": 2, - "lasso": 2, - "knop_timer": 2, - "knop_unique": 2, - "look": 2, - "#varname": 6, - "loop_abort": 2, - "tag_name": 2, - "#timer": 2, - "#trace": 4, - "merge": 2, - "#eol": 8, - "2010": 4, - "23": 4, - "Custom": 2, - "interact": 2, - "databases": 2, - "Supports": 4, - "both": 2, - "MySQL": 2, - "FileMaker": 2, - "datasources": 2, - "2012": 4, - "06": 2, - "10": 2, - "SP": 4, - "Fix": 2, - "precision": 2, - "bug": 2, - "6": 2, - "0": 2, - "1": 2, - "renderfooter": 2, - "15": 2, - "Add": 2, - "support": 6, - "Thanks": 2, - "Ric": 2, - "Lewis": 2, - "settable": 4, - "removed": 2, - "table": 6, - "nextrecord": 12, - "deprecation": 2, - "warning": 2, - "corrected": 2, - "verification": 2, - "index": 4, - "before": 4, - "calling": 2, - "resultset_count": 6, - "break": 2, - "versions": 2, - "fixed": 4, - "incorrect": 2, - "debug_trace": 2, - "addrecord": 4, - "how": 2, - "keyvalue": 10, - "returned": 6, - "adding": 2, - "records": 4, - "inserting": 2, - "generated": 2, - "suppressed": 2, - "specifying": 2, - "saverecord": 8, - "deleterecord": 4, - "case.": 2, - "recorddata": 6, - "no": 2, - "longer": 2, - "touch": 2, - "current_record": 2, - "zero": 2, - "access": 2, - "occurrence": 2, - "same": 4, - "returns": 4, - "knop_databaserows": 2, - "inlinename.": 4, - "next.": 2, - "remains": 2, - "supported": 2, - "backwards": 2, - "compatibility.": 2, - "resets": 2, - "record": 20, - "pointer": 8, - "reaching": 2, - "last": 4, - "honors": 2, - "incremented": 2, - "recordindex": 4, - "specific": 2, - "found.": 2, - "getrecord": 8, - "REALLY": 2, - "works": 4, - "keyvalues": 4, - "double": 2, - "oops": 4, - "I": 4, - "thought": 2, - "but": 2, - "misplaced": 2, - "paren...": 2, - "corresponding": 2, - "resultset": 2, - "/resultset": 2, - "through": 2, - "handling": 2, - "better": 2, - "knop_user": 4, - "keeplock": 4, - "updates": 2, - "datatype": 2, - "knop_databaserow": 2, - "iterated.": 2, - "When": 2, - "iterating": 2, - "row": 2, - "values.": 2, - "Addedd": 2, - "increments": 2, - "recordpointer": 2, - "called": 2, - "until": 2, - "reached.": 2, - "Returns": 2, - "long": 2, - "there": 2, - "more": 2, - "records.": 2, - "Useful": 2, - "loop": 2, - "example": 2, - "below": 2, - "Implemented": 2, - "reset": 2, - "query.": 2, - "shortcut": 2, - "Removed": 2, - "onassign": 2, - "touble": 2, - "Extended": 2, - "field_names": 2, - "names": 4, - "db": 2, - "objects": 2, - "never": 2, - "been": 2, - "optionally": 2, - "supports": 2, - "sql.": 2, - "Make": 2, - "sure": 2, - "SQL": 2, - "includes": 2, - "relevant": 2, - "lockfield": 2, - "locking": 4, - "capturesearchvars": 2, - "mysteriously": 2, - "after": 2, - "operations": 2, - "caused": 2, - "errors.": 2, - "flag": 2, - "save": 2, - "locked": 2, - "releasing": 2, - "Adding": 2, - "progress.": 2, - "Done": 2, - "oncreate": 2, - "getrecord.": 2, - "documentation": 2, - "most": 2, - "existing": 2, - "it.": 2, - "Faster": 2, - "than": 2, - "scratch.": 2, - "shown_first": 2, - "again": 2, - "hoping": 2, - "s": 2, - "only": 2, - "captured": 2, - "update": 2, - "uselimit": 2, - "querys": 2, - "LIMIT": 2, - "still": 2, - "gets": 2, - "proper": 2, - "searchresult": 2, - "separate": 2, - "COUNT": 2 - }, - "Latte": { - "{": 54, - "**": 1, - "*": 4, - "@param": 3, - "string": 2, - "basePath": 1, - "web": 1, - "base": 1, - "path": 1, - "robots": 2, - "tell": 1, - "how": 1, - "to": 2, - "index": 1, - "the": 1, - "content": 1, - "of": 3, - "a": 4, - "page": 1, - "(": 18, - "optional": 1, - ")": 18, - "array": 1, - "flashes": 1, - "flash": 3, - "messages": 1, - "}": 54, - "": 1, - "html": 1, - "": 1, - "": 1, - "": 6, - "charset=": 1, - "name=": 4, - "content=": 5, - "n": 8, - "ifset=": 1, - "http": 1, - "equiv=": 1, - "": 1, - "ifset": 1, - "title": 4, - "/ifset": 1, - "Translation": 1, - "report": 1, - "": 1, - "": 2, - "rel=": 2, - "media=": 1, - "href=": 4, - "": 3, - "block": 3, - "#head": 1, - "/block": 3, - "": 1, - "": 1, - "class=": 12, - "document.documentElement.className": 1, - "+": 3, - "#navbar": 1, - "include": 3, - "_navbar.latte": 1, - "
": 6, - "inner": 1, - "foreach=": 3, - "_flash.latte": 1, - "
": 7, - "#content": 1, - "
": 1, - "
": 1, - "src=": 1, - "#scripts": 1, - "": 1, - "": 1, - "var": 3, - "define": 1, - "author": 7, - "": 2, - "Author": 2, - "authorId": 2, - "-": 71, - "id": 3, - "black": 2, - "avatar": 2, - "img": 2, - "rounded": 2, - "class": 2, - "tooltip": 4, - "Total": 1, - "time": 4, - "shortName": 1, - "translated": 4, - "on": 5, - "all": 1, - "videos.": 1, - "amaraCallbackLink": 1, - "row": 2, - "col": 3, - "md": 2, - "outOf": 5, - "done": 7, - "threshold": 4, - "alert": 2, - "warning": 2, - "<=>": 2, - "Seems": 1, - "complete": 1, - "|": 6, - "out": 1, - "

": 2, - "elseif": 2, - "<": 1, - "p": 1, - "if": 7, - "Although": 1, - "is": 1, - "there": 1, - "are": 1, - "no": 1, - "English": 1, - "subtitles": 1, - "for": 1, - "comparison.": 1, - "/if": 8, - "/cache": 1, - "editor": 1, - "ksid": 2, - "new": 5, - "video": 2, - "siteId": 1, - "Video": 1, - "khanovaskola.cz": 1, - "revision": 18, - "rev": 4, - "this": 3, - "older": 1, - "#": 2, - "else": 2, - "newer": 1, - "
": 1, - "

": 1, - "diffs": 3, - "noescape": 2, - "

": 1, - "description": 1, - "text": 4, - "as": 2, - "line": 3, - "context": 1, - "splitter": 1, - "template": 1, - "bottom": 1, - "Expand": 1, - "fa": 16, - "sort": 1, - "ellipsis": 1, - "h": 1, - "success": 1, - "amaraEdit": 1, - "amaraId": 2, - "editButton": 1, - "btn": 17, - "default": 6, - "edit": 1, - "khanAcademy": 1, - "kaButton": 1, - "link": 1, - "info": 1, - "group": 4, - "approve": 1, - "thumbs": 3, - "up": 1, - "markIncomplete": 2, - "down": 2, - "redirectToAdd": 1, - "plus": 1, - "square": 1, - "table": 2, - "condensed": 1, - "revisions": 1, - "revId": 1, - "secondary": 2, - "Percent": 1, - "lines": 1, - "&": 1, - "thinsp": 1, - "%": 1, - "": 3, - "": 3, - "": 2, - "incomplete": 3, - "approved": 2, - "": 1, - "user": 1, - "loggedIn": 1, - "&&": 1, - "comments": 2, - "count": 1, - "": 2, - "": 2, - "colspan=": 1, - "": 1, - "comment": 4, - "left": 1, - "createdAt": 1, - "timeAgo": 1, - "noborder": 1, - "input": 3, - "form": 1, - "control": 1, - "Comment": 1, - "only": 1, - "visible": 1, - "other": 1, - "editors": 1, - "save": 1, - "share": 1, - "": 1, - "": 1, - "/form": 1, - "/foreach": 1, - "
": 1 - }, - "Less": { - "@blue": 4, - "#3bbfce": 1, - ";": 7, - "@margin": 3, - "px": 1, - ".content": 1, - "-": 3, - "navigation": 1, - "{": 2, - "border": 2, - "color": 3, - "darken": 1, - "(": 1, - "%": 1, - ")": 1, - "}": 2, - ".border": 1, - "padding": 1, - "/": 2, - "margin": 1 - }, - "LFE": { - ";": 213, - "Copyright": 4, - "(": 217, - "c": 4, - ")": 231, - "Duncan": 4, - "McGreggor": 4, - "": 2, - "Licensed": 3, - "under": 9, - "the": 36, - "Apache": 3, - "License": 12, - "Version": 3, - "you": 3, - "may": 6, - "not": 5, - "use": 6, - "this": 3, - "file": 6, - "except": 3, - "in": 10, - "compliance": 3, - "with": 8, - "License.": 6, - "You": 3, - "obtain": 3, - "a": 8, - "copy": 3, - "of": 10, - "at": 4, - "http": 4, - "//www.apache.org/licenses/LICENSE": 3, - "-": 98, - "Unless": 3, - "required": 3, - "by": 4, - "applicable": 3, - "law": 3, - "or": 6, - "agreed": 3, - "to": 10, - "writing": 3, - "software": 3, - "distributed": 6, - "is": 5, - "on": 4, - "an": 5, - "BASIS": 3, - "WITHOUT": 3, - "WARRANTIES": 3, - "OR": 3, - "CONDITIONS": 3, - "OF": 3, - "ANY": 3, - "KIND": 3, - "either": 3, - "express": 3, - "implied.": 3, - "See": 3, - "for": 5, - "specific": 3, - "language": 3, - "governing": 3, - "permissions": 3, - "and": 7, - "limitations": 3, - "File": 4, - "church.lfe": 1, - "Author": 3, - "Purpose": 3, - "Demonstrating": 2, - "church": 20, - "numerals": 1, - "from": 2, - "lambda": 18, - "calculus": 1, - "The": 4, - "code": 2, - "below": 3, - "was": 1, - "used": 1, - "create": 4, - "section": 1, - "user": 1, - "guide": 1, - "here": 1, - "//lfe.github.io/user": 1, - "guide/recursion/5.html": 1, - "Here": 1, - "some": 2, - "example": 2, - "usage": 1, - "slurp": 2, - "five/0": 2, - "int2": 1, - "get": 21, - "defmodule": 2, - "export": 2, - "all": 1, - "defun": 20, - "zero": 2, - "s": 19, - "x": 12, - "one": 1, - "funcall": 23, - "two": 1, - "three": 1, - "four": 1, - "five": 1, - "int": 2, - "successor": 3, - "n": 4, - "+": 2, - "int1": 1, - "numeral": 8, - "#": 3, - "successor/1": 1, - "count": 7, - "limit": 4, - "cond": 1, - "/": 1, - "integer": 2, - "*": 6, - "Mode": 1, - "LFE": 4, - "Code": 1, - "Paradigms": 1, - "Artificial": 1, - "Intelligence": 1, - "Programming": 1, - "Peter": 1, - "Norvig": 1, - "gps1.lisp": 1, - "First": 1, - "version": 1, - "GPS": 1, - "General": 1, - "Problem": 1, - "Solver": 1, - "Converted": 1, - "Robert": 3, - "Virding": 3, - "Define": 1, - "macros": 1, - "global": 2, - "variable": 2, - "access.": 1, - "This": 2, - "hack": 1, - "very": 1, - "naughty": 1, - "defsyntax": 2, - "defvar": 2, - "[": 3, - "name": 8, - "val": 2, - "]": 3, - "let": 6, - "v": 3, - "put": 1, - "getvar": 3, - "solved": 1, - "gps": 1, - "state": 4, - "goals": 2, - "Set": 1, - "variables": 1, - "but": 1, - "existing": 1, - "*ops*": 1, - "*state*": 5, - "current": 1, - "list": 13, - "conditions.": 1, - "if": 1, - "every": 1, - "fun": 1, - "achieve": 1, - "op": 8, - "action": 3, - "setvar": 2, - "set": 1, - "difference": 1, - "del": 5, - "union": 1, - "add": 3, - "drive": 1, - "son": 2, - "school": 2, - "preconds": 4, - "shop": 6, - "installs": 1, - "battery": 1, - "car": 1, - "works": 1, - "make": 2, - "communication": 2, - "telephone": 1, - "have": 3, - "phone": 1, - "book": 1, - "give": 1, - "money": 3, - "has": 1, - "mnesia_demo.lfe": 1, - "A": 1, - "simple": 4, - "Mnesia": 2, - "demo": 2, - "LFE.": 1, - "contains": 1, - "using": 1, - "access": 1, - "tables.": 1, - "It": 1, - "shows": 2, - "how": 2, - "emp": 1, - "XXXX": 1, - "macro": 1, - "ETS": 1, - "match": 5, - "pattern": 1, - "together": 1, - "mnesia": 8, - "match_object": 1, - "specifications": 1, - "select": 1, - "Query": 2, - "List": 2, - "Comprehensions.": 1, - "mnesia_demo": 1, - "new": 2, - "by_place": 1, - "by_place_ms": 1, - "by_place_qlc": 2, - "defrecord": 1, - "person": 8, - "place": 7, - "job": 3, - "Start": 1, - "table": 2, - "we": 1, - "will": 1, - "memory": 1, - "only": 1, - "schema.": 1, - "start": 1, - "create_table": 1, - "attributes": 1, - "Initialise": 1, - "table.": 1, - "people": 1, - "spec": 1, - "p": 2, - "j": 2, - "when": 1, - "tuple": 1, - "transaction": 2, - "f": 3, - "Use": 1, - "Comprehensions": 1, - "records": 1, - "q": 2, - "qlc": 2, - "lc": 1, - "<": 1, - "e": 1, - "object.lfe": 1, - "OOP": 1, - "closures": 1, - "object": 16, - "system": 1, - "demonstrated": 1, - "do": 2, - "following": 2, - "objects": 2, - "call": 2, - "methods": 5, - "those": 1, - "which": 1, - "can": 1, - "other": 1, - "update": 1, - "instance": 2, - "Note": 1, - "however": 1, - "that": 1, - "his": 1, - "does": 1, - "demonstrate": 1, - "inheritance.": 1, - "To": 1, - "cd": 1, - "examples": 1, - "../bin/lfe": 1, + "logger": 2, + "ma": 3, + "c.isReady": 4, + "s.documentElement.doScroll": 2, + "c.ready": 7, + "Qa": 1, + "c.ajax": 1, + "c.globalEval": 1, + "c.isFunction": 9, + "na": 1, + "c.event.handle.apply": 1, + "oa": 1, + "i.live": 1, + "i.live.slice": 1, + "u.length": 3, + "i.origType.replace": 1, + "i.selector": 3, + "u.splice": 1, + ".selector": 1, + ".elem": 1, + "i.preType": 2, + "d.push": 1, + "j.elem": 2, + "j.handleObj.data": 1, + "j.handleObj": 1, + "j.handleObj.origHandler.apply": 1, "pa": 1, - "../ebin": 1, - "Load": 1, - "fish": 6, - "class": 3, - "#Fun": 1, - "": 1, - "Execute": 1, - "basic": 1, - "species": 7, - "mommy": 3, - "move": 4, - "Carp": 1, - "swam": 1, - "feet": 1, - "ok": 1, - "id": 9, - "Now": 1, - "strictly": 1, - "necessary.": 1, - "When": 1, - "isn": 1, - "children": 10, - "formatted": 1, - "verb": 2, - "self": 6, - "distance": 2, - "erlang": 1, - "length": 1, - "method": 7, - "define": 1, - "info": 1, - "reproduce": 1 - }, - "Liquid": { - "": 1, - "html": 1, - "PUBLIC": 1, - "W3C": 1, - "DTD": 2, - "XHTML": 1, - "1": 1, - "0": 1, - "Transitional": 1, - "EN": 1, - "http": 2, - "www": 1, - "w3": 1, - "org": 1, - "TR": 1, - "xhtml1": 2, - "transitional": 1, - "dtd": 1, - "": 1, - "xmlns=": 1, - "xml": 1, - "lang=": 2, - "": 1, - "": 1, - "equiv=": 1, - "content=": 1, - "": 1, - "{": 89, - "shop.name": 2, - "}": 89, - "-": 4, - "page_title": 1, - "": 1, - "|": 31, - "global_asset_url": 5, - "stylesheet_tag": 3, - "script_tag": 5, - "shopify_asset_url": 1, - "asset_url": 2, - "content_for_header": 1, - "": 1, - "": 1, - "id=": 28, - "

": 1, - "class=": 14, - "": 9, - "href=": 9, - "Skip": 1, - "to": 1, - "navigation.": 1, - "": 9, - "

": 1, - "%": 46, - "if": 5, - "cart.item_count": 7, - "
": 23, - "style=": 5, - "

": 3, - "There": 1, - "pluralize": 3, - "in": 8, - "title=": 3, - "your": 1, - "cart": 1, - "

": 3, - "

": 1, - "Your": 1, - "subtotal": 1, - "is": 1, - "cart.total_price": 2, - "money": 5, - ".": 3, - "

": 1, - "for": 6, - "item": 1, - "cart.items": 1, - "onMouseover=": 2, - "onMouseout=": 2, - "": 4, - "src=": 5, - "
": 23, - "endfor": 6, - "
": 2, - "endif": 5, - "

": 1, - "

": 1, - "onclick=": 1, - "View": 1, - "Mini": 1, - "Cart": 1, - "(": 1, - ")": 1, - "
": 3, - "content_for_layout": 1, - "
    ": 5, - "link": 2, - "linklists.main": 1, - "menu.links": 1, - "
  • ": 5, - "link.title": 2, - "link_to": 2, - "link.url": 2, - "
  • ": 5, - "
": 5, - "tags": 1, - "tag": 4, - "collection.tags": 1, - "": 1, - "link_to_add_tag": 1, - "": 1, - "highlight_active_tag": 1, - "link_to_tag": 1, - "linklists.footer.links": 1, - "All": 1, - "prices": 1, - "are": 1, - "shop.currency": 1, - "Powered": 1, - "by": 1, - "Shopify": 1, - "": 1, - "": 1, - "

": 1, - "We": 1, - "have": 1, - "wonderful": 1, - "products": 1, - "

": 1, - "image": 1, - "product.images": 1, - "forloop.first": 1, - "rel=": 2, - "alt=": 2, - "else": 1, - "product.title": 1, - "Vendor": 1, - "product.vendor": 1, - "link_to_vendor": 1, - "Type": 1, - "product.type": 1, - "link_to_type": 1, - "": 1, - "product.price_min": 1, - "product.price_varies": 1, - "product.price_max": 1, - "": 1, - "
": 1, - "action=": 1, - "method=": 1, + "qa": 1, + "ra": 1, + "b.each": 1, + "f.events": 1, + "c.event.add": 1, + ".data": 3, + "sa": 2, + "ta.test": 1, + "c.support.checkClone": 2, + "ua.test": 1, + "c.fragments": 2, + "b.createDocumentFragment": 1, + "c.clean": 1, + "c.each": 2, + "va.concat.apply": 1, + "va.slice": 1, + "wa": 1, + "c.fn.init": 1, + "Ra": 2, + "A.jQuery": 3, + "Sa": 2, + "A.": 3, + "A.document": 1, + "Ta": 1, + "Ua": 1, + "Va": 1, + "Wa": 2, + "u00A0": 2, + "Xa": 1, + "navigator.userAgent": 3, + "xa": 3, + "aa": 1, + "ya": 2, + "c.fn": 2, + "c.prototype": 1, + "s.body": 2, + "Ta.exec": 1, + "Xa.exec": 1, + "c.isPlainObject": 3, + "s.createElement": 10, + "c.fn.attr.call": 1, + "f.createElement": 1, + "a.cacheable": 1, + "a.fragment.cloneNode": 1, + "a.fragment": 1, + "c.merge": 4, + "s.getElementById": 1, + "b.id": 1, + "T.find": 1, + "s.getElementsByTagName": 2, + "b.jquery": 1, + "T.ready": 1, + "c.makeArray": 3, + "R.call": 2, + "c.isArray": 5, + "ba.apply": 1, + "f.prevObject": 1, + "f.context": 1, + "f.selector": 2, + "c.bindReady": 1, + "Q.push": 1, + "R.apply": 1, + "c.map": 1, + "c.fn.init.prototype": 1, + "c.extend": 7, + "c.fn.extend": 4, + "c.fn.triggerHandler": 1, + ".triggerHandler": 1, + "s.readyState": 2, + "s.addEventListener": 3, + "A.addEventListener": 1, + "s.attachEvent": 3, + "A.attachEvent": 1, + "A.frameElement": 1, + "a.setInterval": 2, + "aa.call": 3, + "c.trim": 3, + "@": 1, + "A.JSON": 1, + "A.JSON.parse": 2, + "c.error": 2, + "Va.test": 1, + "s.documentElement": 2, + "c.support.scriptEval": 2, + "s.createTextNode": 2, + "d.text": 1, + "b.apply": 2, + "ba.call": 1, + "b.indexOf": 2, + "f.concat.apply": 1, + "b.guid": 2, + "c.guid": 1, + "/.exec": 4, + "/compatible/.test": 1, + "c.uaMatch": 1, + "P.browser": 2, + "c.browser": 1, + "c.browser.version": 1, + "P.version": 1, + "c.browser.webkit": 1, + "c.browser.safari": 1, + "c.inArray": 2, + "ya.call": 1, + "s.removeEventListener": 1, + "s.detachEvent": 1, + "c.support": 2, + "d.innerHTML": 2, + "d.firstChild.nodeType": 1, + "/red/.test": 1, + "j.getAttribute": 2, + "j.style.opacity": 1, + "j.style.cssFloat": 1, + ".value": 1, + ".appendChild": 1, + ".selected": 1, + "d.removeChild": 1, + "checkClone": 1, + "scriptEval": 1, + "boxModel": 1, + "b.appendChild": 1, + "b.test": 1, + "c.support.deleteExpando": 2, + "d.attachEvent": 2, + "d.fireEvent": 1, + "c.support.noCloneEvent": 1, + "d.detachEvent": 1, + "d.cloneNode": 1, + "s.createDocumentFragment": 1, + "k.style.width": 1, + "k.style.paddingLeft": 1, + "s.body.appendChild": 1, + "c.boxModel": 1, + "c.support.boxModel": 1, + "k.offsetWidth": 1, + "s.body.removeChild": 1, + "n.setAttribute": 1, + "c.support.submitBubbles": 1, + "c.support.changeBubbles": 1, + "c.props": 2, + "Ya": 2, + "za": 3, + "c.noData": 2, + "c.cache": 2, + "c.isEmptyObject": 1, + "c.removeData": 2, + "c.expando": 2, + "c.queue": 3, + "d.shift": 2, + "f.call": 1, + "c.dequeue": 4, + "c.fx": 1, + "c.fx.speeds": 1, + "Aa": 3, + "Za": 2, + "/href": 1, + "src": 7, + "style/": 1, + "ab": 1, + "Ba": 3, + "/radio": 1, + "checkbox/": 1, + "this.removeAttribute": 1, + "r.addClass": 1, + "r.attr": 1, + "j.indexOf": 1, + "n.removeClass": 1, + "n.attr": 1, + "j.toggleClass": 1, + "j.attr": 1, + "i.hasClass": 1, + "": 1, + "c.nodeName": 4, + "b.attributes.value": 1, + ".specified": 1, + "b.options": 1, + "": 1, + "checked=": 1, + "this.selected": 1, + "this.selectedIndex": 1, + "c.attrFn": 1, + "c.isXMLDoc": 1, + "ab.test": 1, + ".nodeValue": 1, + "cb.test": 1, + "c.support.style": 1, + "c.support.hrefNormalized": 1, + "c.style": 1, + "db": 1, + "originalTarget": 1, + "click.specialSubmit": 2, + "keypress.specialSubmit": 2, + ".specialSubmit": 2, + "_change_data": 6, + ".specialChange": 4, + "bind": 3, + "one": 15, + "lastToggle": 4, + "die": 3, + "onunload": 1, + "h.nodeType": 4, + "f.exec": 2, + "r.exec": 1, + "n.relative": 5, + "ga": 2, + "p.shift": 4, + "n.match.ID.test": 2, + "v.expr": 4, + "p.pop": 4, + "l.push": 2, + "l.push.apply": 1, + "g.sort": 1, + "g.length": 2, + "k.matches": 1, + "n.order.length": 1, + "n.order": 1, + "n.leftMatch": 1, + "q.splice": 1, + "y.substr": 1, + "y.length": 1, + "g.getAttribute": 1, + "W/.test": 1, + "": 1, + "sourceIndex": 1, + "
": 4, + "
": 3, + "CLASS": 1, + "HTML": 9, + "nextSibling": 3, + "iframe": 3, + "": 1, "": 1, - "": 1, - "type=": 2, - "": 1, - "product.description": 1, - "": 1 - }, - "Literate Agda": { - "documentclass": 1, - "{": 35, - "article": 1, - "}": 35, - "usepackage": 7, - "amssymb": 1, - "bbm": 1, - "[": 2, - "greek": 1, - "english": 1, - "]": 2, - "babel": 1, - "ucs": 1, - "utf8x": 1, - "inputenc": 1, - "autofe": 1, - "DeclareUnicodeCharacter": 3, - "ensuremath": 3, - "ulcorner": 1, - "urcorner": 1, - "overline": 1, - "equiv": 1, - "fancyvrb": 1, - "DefineVerbatimEnvironment": 1, - "code": 3, - "Verbatim": 1, - "%": 1, - "Add": 1, - "fancy": 1, - "options": 1, - "here": 1, - "if": 1, - "you": 3, - "like.": 1, - "begin": 2, - "document": 2, - "module": 3, - "NatCat": 1, + "
": 1, + "
": 1, + "": 4, + "
": 5, + "": 3, + "": 3, + "": 2, + "": 2, + "": 1, + "": 1, + "": 1, + "": 1, + "absolute": 2, + "solid": 2, + "#000": 2, + "padding": 4, + "": 1, + "": 1, + "fixed": 1, + "marginTop": 3, + "marginLeft": 2, + "using": 5, + "borderTopWidth": 1, + "borderLeftWidth": 1, + "static": 2, + "Left": 1, + "Top": 1, + "pageXOffset": 2, + "pageYOffset": 1, + "Height": 1, + "Width": 1, + "inner": 2, + "outer": 2, + "scrollTo": 1, + "CSS1Compat": 1, + "client": 3, + "window.document": 2, + "navigator": 3, + "window.navigator": 2, + "location": 2, + "The": 9, + "actually": 2, + "just": 2, + "jQuery.fn.init": 2, + "rootjQuery": 8, + "Map": 4, + "over": 7, + "overwrite": 4, + "_jQuery": 4, + "window.jQuery": 7, + "window.": 6, + "central": 2, + "reference": 5, + "simple": 3, + "way": 2, + "check": 8, + "strings": 8, + "Prioritize": 1, + "#id": 3, + "": 1, + "avoid": 5, + "XSS": 1, + "location.hash": 1, + "#9521": 1, + "quickExpr": 2, + "Check": 10, + "whitespace": 7, + "rnotwhite": 2, + "Used": 3, + "trimming": 2, + "trimLeft": 4, + "trimRight": 4, + "standalone": 2, + "tag": 2, + "rsingleTag": 2, + "rvalidchars": 2, + "rvalidescape": 2, + "rvalidbraces": 2, + "Useragent": 2, + "rwebkit": 2, + "ropera": 2, + "rmsie": 2, + "rmozilla": 2, + "Matches": 1, + "dashed": 1, + "camelizing": 1, + "rdashAlpha": 1, + "rmsPrefix": 1, + "jQuery.camelCase": 6, + "as": 11, + "fcamelCase": 1, + "Keep": 2, + "UserAgent": 2, + "jQuery.browser": 4, + "userAgent": 3, + "For": 5, + "engine": 2, + "and": 42, + "browserMatch": 3, + "deferred": 25, + "used": 13, + "DOM": 21, + "readyList": 6, + "DOMContentLoaded": 14, + "Save": 2, + "some": 2, + "core": 2, + "toString": 4, + "hasOwn": 2, + "Class": 2, + "pairs": 2, + "class2type": 3, + "jQuery.fn": 4, + "jQuery.prototype": 2, + "doc": 4, + "Handle": 14, + "DOMElement": 2, + "selector.nodeType": 2, + "element": 19, + "exists": 9, + "once": 4, + "optimize": 3, + "finding": 2, + "document.body": 8, + "Are": 2, + "dealing": 2, + "selector.charAt": 4, + "selector.length": 4, + "Assume": 2, + "are": 18, + "regex": 3, + "quickExpr.exec": 2, + "Verify": 3, + "no": 19, + "was": 6, + "specified": 4, + "HANDLE": 2, + "context.ownerDocument": 2, + "single": 2, + "passed": 5, + "like": 5, + "method.": 3, + "jQuery.fn.init.prototype": 2, + "jQuery.extend": 11, + "jQuery.fn.extend": 4, + "copy": 16, + "copyIsArray": 2, + "deep": 12, + "situation": 2, + "possible": 3, + "jQuery.isFunction": 6, + "itself": 4, + "argument": 2, + "Only": 5, + "deal": 2, + "null/undefined": 2, + "values": 10, + "Extend": 2, + "base": 2, + "Prevent": 2, + "never": 2, + "ending": 2, + "Recurse": 2, + "bring": 2, + "Return": 2, + "modified": 3, + "Is": 2, + "Set": 4, + "occurs.": 2, + "counter": 2, + "track": 2, + "how": 2, + "many": 3, + "items": 2, + "wait": 12, + "fires.": 2, + "See": 9, + "#6781": 2, + "Hold": 2, + "release": 2, + "hold": 6, + "jQuery.readyWait": 6, + "jQuery.ready": 16, + "Either": 2, + "released": 2, + "DOMready/load": 2, + "yet": 2, + "jQuery.isReady": 6, + "Make": 17, + "sure": 18, + "least": 4, + "IE": 28, + "gets": 6, + "little": 4, + "overzealous": 4, + "ticket": 4, + "#5443": 4, + "Remember": 2, + "normal": 2, + "Ready": 2, + "fired": 12, + "decrement": 2, + "need": 10, + "there": 6, + "functions": 6, + "bound": 8, + "execute": 4, + "readyList.fireWith": 1, + "Trigger": 2, + "any": 12, + "jQuery.fn.trigger": 2, + ".off": 1, + "jQuery.Callbacks": 2, + "Catch": 2, + "cases": 4, "where": 2, - "open": 2, - "import": 2, - "Relation.Binary.PropositionalEquality": 1, - "-": 21, - "If": 1, - "can": 1, - "show": 1, - "that": 1, - "a": 1, - "relation": 1, - "only": 1, - "ever": 1, - "has": 1, - "one": 1, - "inhabitant": 5, - "get": 1, - "the": 1, - "category": 1, - "laws": 1, - "for": 1, - "free": 1, - "EasyCategory": 3, - "(": 36, - "obj": 4, - "Set": 2, - ")": 36, - "_": 6, - "x": 34, - "y": 28, - "z": 18, - "id": 9, - "single": 4, - "r": 26, - "s": 29, - "assoc": 2, - "w": 4, - "t": 6, - "Data.Nat": 1, - "same": 5, - ".0": 2, - "n": 14, - "refl": 6, - ".": 5, - "suc": 6, - "m": 6, - "cong": 1, - "trans": 5, - ".n": 1, - "zero": 1, - "Nat": 1, - "end": 2 - }, - "Literate CoffeeScript": { - "The": 2, - "**Scope**": 2, - "class": 2, - "regulates": 1, - "lexical": 1, - "scoping": 1, - "within": 2, - "CoffeeScript.": 1, - "As": 1, - "you": 2, - "generate": 1, - "code": 1, - "create": 1, - "a": 8, - "tree": 1, - "of": 4, - "scopes": 1, - "in": 2, - "the": 12, - "same": 1, - "shape": 1, - "as": 3, - "nested": 1, - "function": 2, - "bodies.": 1, - "Each": 1, - "scope": 2, - "knows": 1, - "about": 1, - "variables": 3, - "declared": 2, - "it": 4, - "and": 5, - "has": 1, - "reference": 3, - "to": 8, - "its": 3, - "parent": 2, - "enclosing": 1, - "scope.": 2, - "In": 1, - "this": 3, - "way": 1, - "we": 4, - "know": 1, - "which": 3, - "are": 3, - "new": 2, - "need": 2, - "be": 2, - "with": 3, - "var": 4, - "shared": 1, - "external": 1, - "scopes.": 1, - "Import": 1, - "helpers": 1, - "plan": 1, - "use.": 1, - "{": 4, - "extend": 1, - "last": 1, - "}": 4, - "require": 1, - "exports.Scope": 1, - "Scope": 1, - "root": 1, - "is": 3, - "top": 2, - "-": 5, - "level": 1, - "object": 1, - "for": 3, - "given": 1, - "file.": 1, - "@root": 1, - "null": 1, - "Initialize": 1, - "lookups": 1, - "up": 1, - "chain": 1, - "well": 1, - "**Block**": 1, - "node": 1, - "belongs": 2, - "where": 1, - "should": 1, - "declare": 1, - "that": 2, - "to.": 1, - "constructor": 1, - "(": 5, - "@parent": 2, - "@expressions": 1, - "@method": 1, - ")": 6, - "@variables": 3, - "[": 4, - "name": 8, - "type": 5, - "]": 4, - "@positions": 4, - "Scope.root": 1, - "unless": 1, - "Adds": 1, - "variable": 1, - "or": 1, - "overrides": 1, - "an": 1, - "existing": 1, - "one.": 1, - "add": 1, - "immediate": 3, - "return": 1, - "@parent.add": 1, - "if": 2, - "@shared": 1, - "not": 1, - "Object": 1, - "hasOwnProperty.call": 1, - ".type": 1, - "else": 2, - "@variables.push": 1, - "When": 1, - "super": 1, - "called": 1, - "find": 1, - "current": 1, - "method": 1, - "param": 1, - "_": 3, - "then": 1, - "tempVars": 1, - "realVars": 1, - ".push": 1, - "v.name": 1, - "realVars.sort": 1, - ".concat": 1, - "tempVars.sort": 1, - "Return": 1, - "list": 1, - "assignments": 1, - "supposed": 1, - "made": 1, - "at": 1, - "assignedVariables": 1, - "v": 1, - "when": 1, - "v.type.assigned": 1 - }, - "LiveScript": { - "a": 8, - "-": 25, - "const": 1, - "b": 3, - "var": 1, - "c": 3, - "d": 3, - "_000_000km": 1, - "*": 1, - "ms": 1, - "e": 2, - "(": 9, - ")": 10, - "dashes": 1, - "identifiers": 1, - "underscores_i": 1, - "/regexp1/": 1, - "and": 3, - "//regexp2//g": 1, - "strings": 1, - "[": 2, - "til": 1, - "]": 2, - "or": 2, - "to": 2, - "|": 3, - "map": 1, - "filter": 1, - "fold": 1, - "+": 1, - "class": 1, - "Class": 1, - "extends": 1, - "Anc": 1, - "est": 1, - "args": 1, - "copy": 1, - "from": 1, - "callback": 4, - "error": 6, - "data": 2, - "<": 1, - "read": 1, - "file": 2, - "return": 2, - "if": 2, - "<~>": 1, - "write": 1 - }, - "Logos": { - "%": 15, - "hook": 2, - "ABC": 2, - "-": 3, - "(": 8, - "id": 2, - ")": 8, - "a": 1, - "B": 1, - "b": 1, - "{": 4, - "log": 1, - ";": 8, - "return": 2, - "orig": 2, - "nil": 2, - "}": 4, - "end": 4, - "subclass": 1, - "DEF": 1, - "NSObject": 1, - "init": 3, - "[": 2, - "c": 1, - "RuntimeAccessibleClass": 1, - "alloc": 1, - "]": 2, - "group": 1, - "OptionalHooks": 2, - "void": 1, - "release": 1, - "self": 1, - "retain": 1, - "ctor": 1, - "if": 1, - "OptionalCondition": 1 - }, - "Logtalk": { - "-": 3, - "object": 2, - "(": 4, - "hello_world": 1, - ")": 4, - ".": 2, - "%": 2, - "the": 2, - "initialization/1": 1, - "directive": 1, - "argument": 1, - "is": 2, - "automatically": 1, + ".ready": 2, + "called": 2, + "already": 6, + "occurred.": 2, + "document.readyState": 4, + "asynchronously": 2, + "allow": 6, + "scripts": 2, + "opportunity": 2, + "Mozilla": 2, + "Opera": 2, + "nightlies": 3, + "currently": 4, + "document.addEventListener": 6, + "Use": 7, + "handy": 2, + "fallback": 4, + "window.onload": 4, + "will": 7, + "work": 6, + "window.addEventListener": 2, + "document.attachEvent": 6, + "ensure": 2, + "firing": 16, + "onload": 2, + "maybe": 2, + "late": 2, + "but": 4, + "safe": 3, + "iframes": 2, + "window.attachEvent": 2, + "continually": 2, + "see": 6, + "window.frameElement": 2, + "document.documentElement.doScroll": 4, + "doScrollCheck": 6, + "test/unit/core.js": 2, + "details": 3, + "concerning": 2, + "isFunction.": 2, + "aren": 5, + "pass": 7, + "through": 3, + "well": 2, + "jQuery.type": 4, + "obj.nodeType": 2, + "jQuery.isWindow": 2, + "own": 4, + "property": 15, + "must": 4, + "Object": 4, + "obj.constructor": 2, + "hasOwn.call": 6, + "obj.constructor.prototype": 2, + "IE8": 2, + "Will": 2, + "exceptions": 2, + "certain": 2, + "objects": 7, + "#9897": 1, + "Own": 2, + "properties": 7, + "enumerated": 2, + "firstly": 2, + "up": 4, + "own.": 2, + "msg": 4, + "leading/trailing": 2, + "removed": 3, + "can": 10, + "elems": 9, + "chainable": 4, + "emptyGet": 3, + "bulk": 3, + "elems.length": 1, + "Sets": 3, + "jQuery.access": 2, + "Optionally": 1, "executed": 1, - "when": 1, - "loaded": 1, - "into": 1, - "memory": 1, - "initialization": 1, - "nl": 2, - "write": 1, - "end_object.": 1 + "Bulk": 1, + "operations": 1, + "iterate": 1, + "executing": 1, + "exec.call": 1, + "Otherwise": 2, + "they": 2, + "run": 1, + "against": 1, + "entire": 1, + "fn.call": 2, + "value.call": 1, + "Gets": 2, + "frowned": 1, + "upon.": 1, + "More": 1, + "//docs.jquery.com/Utilities/jQuery.browser": 1, + "ua": 6, + "ua.toLowerCase": 1, + "rwebkit.exec": 1, + "ropera.exec": 1, + "rmsie.exec": 1, + "ua.indexOf": 1, + "rmozilla.exec": 1, + "jQuerySub": 7, + "jQuerySub.fn.init": 2, + "jQuerySub.superclass": 1, + "jQuerySub.fn": 2, + "jQuerySub.prototype": 1, + "jQuerySub.fn.constructor": 1, + "jQuerySub.sub": 1, + "jQuery.fn.init.call": 1, + "rootjQuerySub": 2, + "jQuerySub.fn.init.prototype": 1, + "jQuery.each": 2, + "jQuery.uaMatch": 1, + "browserMatch.browser": 2, + "jQuery.browser.version": 1, + "browserMatch.version": 1, + "jQuery.browser.webkit": 1, + "jQuery.browser.safari": 1, + "rnotwhite.test": 2, + "document.removeEventListener": 2, + "document.detachEvent": 2, + "trick": 2, + "Diego": 2, + "Perini": 2, + "//javascript.nwbox.com/IEContentLoaded/": 2, + "waiting": 2, + "flagsCache": 3, + "createFlags": 2, + "flags": 13, + "flags.split": 1, + "flags.length": 1, + "Convert": 1, + "from": 7, + "formatted": 2, + "Actual": 2, + "Stack": 1, + "fire": 4, + "calls": 1, + "repeatable": 1, + "lists": 2, + "stack": 2, + "forgettable": 1, + "memory": 8, + "Flag": 2, + "know": 3, + "First": 3, + "internally": 5, + "fireWith": 1, + "firingStart": 3, + "End": 1, + "firingLength": 4, + "Index": 1, + "needed": 2, + "firingIndex": 5, + "Add": 4, + "several": 1, + "callbacks": 10, + "actual": 1, + "args.length": 3, + "Inspect": 1, + "recursively": 1, + "unique": 2, + "mode": 1, + "flags.unique": 1, + "self.has": 1, + "list.push": 1, + "Fire": 1, + "flags.memory": 1, + "flags.stopOnFalse": 1, + "Mark": 1, + "halted": 1, + "flags.once": 1, + "stack.length": 1, + "stack.shift": 1, + "self.fireWith": 1, + "self.disable": 1, + "Callbacks": 1, + "Do": 2, + "batch": 2, + "With": 1, + "/a": 1, + ".55": 1, + "basic": 1, + "all.length": 1, + "supports": 2, + "tests": 48, + "opt": 2, + "select.appendChild": 1, + "div.getElementsByTagName": 6, + "strips": 1, + "leading": 1, + "div.firstChild.nodeType": 1, + "elements": 9, + "manipulated": 1, + "normalizes": 1, + "uses": 3, + "instead": 6, + "around": 1, + "WebKit": 9, + "issue.": 1, + "#5145": 1, + "existence": 1, + "styleFloat": 1, + "a.style.cssFloat": 1, + "defaults": 3, + "input.value": 5, + "working": 1, + "property.": 1, + "too": 1, + "marked": 1, + "marks": 1, + "them": 3, + "select.disabled": 1, + "support.optDisabled": 1, + "opt.disabled": 1, + "Test": 3, + "handlers": 1, + "does": 9, + "support.noCloneEvent": 1, + "div.cloneNode": 1, + "maintains": 1, + "its": 2, + "being": 2, + "appended": 2, + "input.setAttribute": 5, + "support.radioValue": 2, + "#11217": 1, + "loses": 1, + "attribute": 5, + "div.appendChild": 4, + "document.createDocumentFragment": 3, + "fragment.appendChild": 2, + "div.lastChild": 1, + "doesn": 2, + "have": 6, + "conMarginTop": 3, + "paddingMarginBorder": 5, + "positionTopLeftWidthHeight": 3, + "paddingMarginBorderVisibility": 3, + "container": 4, + "container.style.cssText": 1, + "body.insertBefore": 1, + "body.firstChild": 1, + "Construct": 1, + "container.appendChild": 1, + "cells": 3, + "still": 4, + "offsetWidth/Height": 3, + "other": 3, + "visible": 1, + "row": 1, + "reliable": 1, + "determining": 3, + "directly": 2, + "offsets": 1, + "safety": 1, + "goggles": 1, + "bug": 3, + "#4512": 1, + "more": 6, + "information": 5, + "fails": 2, + "div.innerHTML": 7, + "tds": 6, + "isSupported": 7, + "support.reliableHiddenOffsets": 1, + "explicit": 1, + "right": 3, + "incorrectly": 1, + "computed": 1, + "based": 1, + "container.": 1, + "#3333": 1, + "Fails": 2, + "Feb": 1, + "Bug": 1, + "getComputedStyle": 3, + "returns": 1, + "wrong": 1, + "window.getComputedStyle": 6, + "marginDiv": 5, + "marginDiv.style.width": 1, + "marginDiv.style.marginRight": 1, + "div.style.width": 2, + "support.reliableMarginRight": 1, + "div.style.zoom": 2, + "natively": 1, + "act": 1, + "setting": 2, + "their": 3, + "giving": 1, + "layout": 2, + "div.style.padding": 1, + "div.style.border": 1, + "div.style.overflow": 2, + "div.style.display": 2, + "support.inlineBlockNeedsLayout": 1, + "div.offsetWidth": 2, + "shrink": 1, + "support.shrinkWrapBlocks": 1, + "div.style.cssText": 1, + "div.firstChild": 3, + "outer.firstChild": 1, + "outer.nextSibling.firstChild.firstChild": 1, + "offsetSupport": 2, + "doesNotAddBorder": 1, + "inner.offsetTop": 4, + "doesAddBorderForTableAndCells": 1, + "td.offsetTop": 1, + "inner.style.position": 2, + "inner.style.top": 2, + "safari": 1, + "subtracts": 1, + "here": 1, + "offsetSupport.fixedPosition": 1, + "outer.style.overflow": 1, + "outer.style.position": 1, + "offsetSupport.subtractsBorderForOverflowNotVisible": 1, + "offsetSupport.doesNotIncludeMarginInBodyOffset": 1, + "body.offsetTop": 1, + "div.style.marginTop": 1, + "support.pixelMargin": 1, + ".marginTop": 1, + "container.style.zoom": 2, + "body.removeChild": 1, + "rbrace": 1, + "rmultiDash": 3, + "Please": 1, + "caution": 1, + "Unique": 1, + "page": 1, + "Non": 3, + "rinlinejQuery": 1, + "jQuery.fn.jquery": 1, + "following": 1, + "uncatchable": 1, + "you": 1, + "attempt": 2, + "them.": 1, + "Ban": 1, + "except": 1, + "Flash": 1, + "expandos": 2, + "elem.nodeType": 8, + "jQuery.cache": 3, + "jQuery.expando": 12, + "isEmptyDataObject": 3, + "pvt": 8, + "jQuery.acceptData": 2, + "privateCache": 1, + "thisCache": 15, + "internalKey": 12, + "getByName": 3, + "We": 6, + "nodes": 14, + "JS": 7, + "differently": 1, + "because": 1, + "IE6": 1, + "internal": 8, + "order": 1, + "collisions": 1, + "between": 1, + "user": 1, + "defined": 3, + "data.": 1, + "thisCache.data": 3, + "Users": 1, + "should": 1, + "inspect": 1, + "jQuery.data": 15, + "undocumented": 1, + "subject": 1, + "change.": 1, + "But": 1, + "anyone": 1, + "listen": 1, + "No.": 1, + "isEvents": 1, + "privateCache.events": 1, + "both": 2, + "converted": 2, + "camel": 2, + "names": 2, + "Try": 4, + "camelCased": 1, + "Reference": 1, + "isNode": 11, + "entry": 1, + "purpose": 1, + "continuing": 1, + "Support": 1, + "space": 1, + "separated": 1, + "jQuery.isArray": 1, + "manipulation": 1, + "cased": 1, + "spaces": 3, + "unless": 2, + "name.split": 1, + "name.length": 1, + "want": 1, + "let": 1, + "destroyed": 2, + "jQuery.isEmptyObject": 1, + "Don": 1, + "care": 1, + "Ensure": 1, + "#10080": 1, + "jQuery.support.deleteExpando": 3, + "cache.setInterval": 1, + "eliminate": 2, + "node": 23, + "lookups": 2, + "entries": 2, + "longer": 2, + "exist": 2, + "us": 2, + "nor": 2, + "removeAttribute": 3, + "Document": 2, + "these": 2, + "elem.removeAttribute": 6, + "only.": 2, + "elem.nodeName": 2, + "jQuery.noData": 2, + "elem.nodeName.toLowerCase": 2, + "elem.getAttribute": 7, + "parts": 28, + "part": 8, + "jQuery._data": 2, + "elem.attributes": 1, + "attr.length": 2, + "name.indexOf": 2, + "name.substring": 2, + "dataAttr": 6, + "key.split": 2, + "fetch": 4, + "stored": 4, + "self.triggerHandler": 2, + "jQuery.removeData": 2, + "nothing": 2, + "found": 10, + "HTML5": 3, + "key.replace": 2, + "jQuery.isNumeric": 1, + "rbrace.test": 2, + "jQuery.parseJSON": 2, + "isn": 2, + "option.selected": 2, + "jQuery.support.optDisabled": 2, + "option.disabled": 2, + "option.getAttribute": 2, + "option.parentNode.disabled": 2, + "jQuery.nodeName": 3, + "option.parentNode": 2, + "Get": 4, + "specific": 2, + "get/set": 2, + "nType": 8, + "jQuery.attrFn": 2, + "Fallback": 2, + "supported": 2, + "jQuery.prop": 2, + "notxml": 8, + "jQuery.isXMLDoc": 2, + "All": 1, + "lowercase": 1, + "Grab": 1, + "necessary": 1, + "hook": 1, + "hooks": 14, + "jQuery.attrHooks": 2, + "rboolean.test": 4, + "boolHook": 3, + "nodeHook": 1, + "jQuery.removeAttr": 2, + "hooks.set": 2, + "elem.setAttribute": 2, + "hooks.get": 2, + "existent": 2, + "normalize": 2, + "propName": 8, + "attrNames": 3, + "isBool": 4, + "value.toLowerCase": 2, + "rspace": 1, + "attrNames.length": 1, + "jQuery.propFix": 2, + "#9699": 1, + "explanation": 1, + "approach": 1, + "removal": 1, + "#10870": 1, + "jQuery.attr": 2, + "corresponding": 2, + "changed": 3, + "readOnly": 2, + "htmlFor": 2, + "maxLength": 2, + "cellSpacing": 2, + "cellPadding": 2, + "rowSpan": 2, + "colSpan": 2, + "useMap": 2, + "frameBorder": 2, + "contentEditable": 2, + "**": 1, + "timeStamp": 1, + "buttons": 1, + "http.createServer": 1, + "res.writeHead": 1, + "res.end": 1, + ".listen": 1, + "jshint": 1, + "Modal": 2, + "this.": 2, + ".proxy": 1, + "this.hide": 1, + "Modal.prototype": 1, + "this.isShown": 3, + ".Event": 1, + "element.trigger": 1, + ".addClass": 1, + "escape.call": 1, + "backdrop.call": 1, + "transition": 1, + ".support.transition": 1, + "that.": 3, + "element.hasClass": 1, + "element.parent": 1, + "element.appendTo": 1, + "//don": 1, + "shown": 2, + "modal": 4, + "fade": 4, + "keyup.dismiss.modal": 2, + "click.modal.data": 1, + "api": 1, + ".extend": 1, + "target.data": 1, + "e.preventDefault": 1, + "target.modal": 1, + "rdigit": 1, + "readyList.resolveWith": 1, + "jQuery._Deferred": 3, + "breaking": 1, + "Promise": 1, + "promiseMethods": 3, + "Static": 1, + "sliceDeferred": 1, + "Create": 1, + "doing": 3, + "flag": 1, + "cancelled": 5, + "f1": 1, + "f2": 1, + "...": 1, + "_fired": 5, + "deferred.done.apply": 2, + "callbacks.push": 1, + "deferred.resolveWith": 5, + "given": 3, + "available": 1, + "#8421": 1, + "callbacks.shift": 1, + "Has": 1, + "resolved": 1, + "Cancel": 1, + "Full": 1, + "fledged": 1, + "two": 1, + "func": 3, + "failDeferred": 1, + "errorDeferred": 1, + "doneCallbacks": 2, + "failCallbacks": 2, + "deferred.done": 2, + ".fail": 2, + ".fail.apply": 1, + "failDeferred.done": 1, + "failDeferred.resolveWith": 1, + "failDeferred.resolve": 1, + "failDeferred.isResolved": 1, + "fnDone": 2, + "fnFail": 2, + "jQuery.Deferred": 1, + "newDefer": 3, + "action": 3, + "returned": 4, + "fn.apply": 1, + "returned.promise": 2, + "newDefer.resolve": 1, + "newDefer.reject": 1, + "provided": 1, + "aspect": 1, + "added": 1, + "promiseMethods.length": 1, + "failDeferred.cancel": 1, + "deferred.cancel": 2, + "Unexpose": 1, + "Call": 1, + "func.call": 1, + "helper": 1, + "firstParam": 6, + "count": 4, + "<=>": 1, + "resolveFunc": 2, + "sliceDeferred.call": 2, + "Strange": 1, + "FF4": 1, + "Values": 1, + "onto": 2, + "sometimes": 1, + ".when": 1, + "Cloning": 2, + "into": 2, + "fresh": 1, + "solves": 1, + "issue": 1, + "deferred.reject": 1, + "deferred.promise": 1, + "jQuery.support": 1, + "document.documentElement": 2, + "bodyStyle": 1, + "Preliminary": 1, + "div.setAttribute": 1, + "automatically": 2, + "inserted": 1, + "insert": 1, + "tables": 1, + "link": 2, + "serialized": 3, + "correctly": 1, + "innerHTML": 1, + "This": 3, + "requires": 1, + "wrapper": 1, + ".cssText": 2, + "URLs": 1, + "opt.selected": 1, + "setAttribute": 1, + "class.": 1, + "works": 1, + "attrFixes": 1, + "get/setAttribute": 1, + "ie6/7": 1, + "div.className": 1, + "later": 1, + "properly": 2, + "cloned": 1, + "input.checked": 1, + "support.noCloneChecked": 1, + "input.cloneNode": 1, + "selects": 1, + "Internet": 1, + "Explorer": 1, + "div.test": 1, + "support.deleteExpando": 1, + "div.addEventListener": 1, + "div.attachEvent": 2, + "div.fireEvent": 1, + "GC": 2, + "references": 1, + "across": 1, + "boundary": 1, + "attached": 1, + "occur": 1, + "defining": 1, + "allows": 1, + "code": 2, + "shortcut": 1, + "same": 1, + "Avoid": 1, + "trying": 1, + "since": 1, + "ends": 1, + "jQuery.uuid": 1, + "TODO": 2, + "hack": 2, + "ONLY.": 2, + "Avoids": 2, + "exposing": 2, + "metadata": 2, + "plain": 2, + "jQuery.noop": 2, + "An": 1, + "key/value": 1, + "pair": 1, + "shallow": 1, + "copied": 1, + "existing": 1, + "Internal": 1, + "separate": 1, + "destroy": 1, + "had": 1, + "internalCache": 3, + "Browsers": 1, + "deletion": 1, + "refuse": 1, + "browsers": 2, + "faster": 1, + "iterating": 1, + "persist": 1, + "existed": 1, + "jQuery.isNaN": 1, + "Normalize": 1, + "jQuery.attrFix": 2, + "formHook": 3, + "forms": 1, + "rinvalidChar.test": 1, + "jQuery.support.getSetAttribute": 1, + "elem.removeAttributeNode": 1, + "elem.getAttributeNode": 1, + "bubbling": 1, + "live.": 2, + "hasDuplicate": 1, + "baseHasDuplicate": 2, + "rBackslash": 1, + "rNonWord": 1, + "Sizzle": 1, + "results": 4, + "seed": 1, + "origContext": 1, + "context.nodeType": 2, + "checkSet": 1, + "extra": 1, + "pop": 1, + "prune": 1, + "contextXML": 1, + "Sizzle.isXML": 1, + "soFar": 1, + "Reset": 1, + "window.Modernizr": 1, + "Modernizr": 12, + "enableClasses": 3, + "docElement": 1, + "mod": 12, + "modElem": 2, + "mStyle": 2, + "modElem.style": 1, + "inputElem": 6, + "smile": 4, + "prefixes": 2, + "omPrefixes": 1, + "cssomPrefixes": 2, + "omPrefixes.split": 1, + "domPrefixes": 3, + "omPrefixes.toLowerCase": 1, + "ns": 1, + "inputs": 3, + "classes": 1, + "classes.slice": 1, + "featureName": 5, + "testing": 1, + "injectElementWithStyles": 9, + "rule": 5, + "testnames": 3, + "fakeBody": 4, + "node.id": 1, + "div.id": 1, + "fakeBody.appendChild": 1, + "//avoid": 1, + "crashing": 1, + "fakeBody.style.background": 1, + "docElement.appendChild": 2, + "fakeBody.parentNode.removeChild": 1, + "div.parentNode.removeChild": 1, + "testMediaQuery": 2, + "mq": 3, + "matchMedia": 3, + "window.matchMedia": 1, + "window.msMatchMedia": 1, + ".matches": 1, + "bool": 30, + "node.currentStyle": 2, + "isEventSupported": 5, + "TAGNAMES": 2, + "element.setAttribute": 3, + "element.removeAttribute": 2, + "_hasOwnProperty": 2, + "hasOwnProperty": 5, + "_hasOwnProperty.call": 2, + "object.constructor.prototype": 1, + "Function.prototype.bind": 2, + "slice.call": 3, + "F.prototype": 1, + "target.prototype": 1, + "target.apply": 2, + "args.concat": 2, + "setCss": 7, + "str": 4, + "mStyle.cssText": 1, + "setCssAll": 2, + "str1": 6, + "str2": 4, + "prefixes.join": 3, + "substr": 2, + "testProps": 3, + "prefixed": 7, + "testDOMProps": 2, + "item": 4, + "item.bind": 1, + "testPropsAll": 17, + "ucProp": 5, + "prop.charAt": 1, + "prop.substr": 1, + "cssomPrefixes.join": 1, + "elem.getContext": 2, + ".fillText": 1, + "window.WebGLRenderingContext": 1, + "window.DocumentTouch": 1, + "DocumentTouch": 1, + "node.offsetTop": 1, + "window.postMessage": 1, + "window.openDatabase": 1, + "history.pushState": 1, + "mStyle.backgroundColor": 3, + "mStyle.background": 1, + ".style.textShadow": 1, + "mStyle.opacity": 1, + "str3": 2, + "str1.length": 1, + "mStyle.backgroundImage": 1, + "docElement.style": 1, + "node.offsetLeft": 1, + "node.offsetHeight": 2, + "document.styleSheets": 1, + "document.styleSheets.length": 1, + "cssText": 4, + "style.cssRules": 3, + "style.cssText": 1, + "/src/i.test": 1, + "cssText.indexOf": 1, + "rule.split": 1, + "elem.canPlayType": 10, + "Boolean": 2, + "bool.ogg": 2, + "bool.h264": 1, + "bool.webm": 1, + "bool.mp3": 1, + "bool.wav": 1, + "bool.m4a": 1, + "localStorage.setItem": 1, + "localStorage.removeItem": 1, + "sessionStorage.setItem": 1, + "sessionStorage.removeItem": 1, + "window.Worker": 1, + "window.applicationCache": 1, + "document.createElementNS": 6, + "ns.svg": 4, + ".createSVGRect": 1, + "div.firstChild.namespaceURI": 1, + "/SVGAnimate/.test": 1, + "toString.call": 2, + "/SVGClipPath/.test": 1, + "webforms": 2, + "props.length": 2, + "attrs.list": 2, + "window.HTMLDataListElement": 1, + "inputElemType": 5, + "defaultView": 2, + "inputElem.setAttribute": 1, + "inputElem.type": 1, + "inputElem.value": 2, + "inputElem.style.cssText": 1, + "inputElem.style.WebkitAppearance": 1, + "document.defaultView": 1, + "defaultView.getComputedStyle": 2, + ".WebkitAppearance": 1, + "inputElem.offsetHeight": 1, + "docElement.removeChild": 1, + "inputElem.checkValidity": 2, + "feature": 12, + "feature.toLowerCase": 2, + "classes.push": 1, + "Modernizr.input": 1, + "Modernizr.addTest": 2, + "docElement.className": 2, + "chaining.": 1, + "window.html5": 2, + "reSkip": 1, + "saveClones": 1, + "fieldset": 1, + "h1": 5, + "h2": 5, + "h3": 3, + "h4": 3, + "h5": 1, + "h6": 1, + "img": 1, + "ol": 1, + "span": 1, + "strong": 1, + "tfoot": 1, + "th": 1, + "ul": 1, + "supportsHtml5Styles": 5, + "supportsUnknownElements": 3, + "//if": 2, + "implemented": 1, + "assume": 1, + "Styles": 1, + "Chrome": 2, + "additional": 1, + "solve": 1, + "node.hidden": 1, + ".display": 1, + "a.childNodes.length": 1, + "frag.cloneNode": 1, + "frag.createDocumentFragment": 1, + "frag.createElement": 2, + "addStyleSheet": 2, + "ownerDocument.createElement": 3, + "ownerDocument.getElementsByTagName": 1, + "ownerDocument.documentElement": 1, + "p.innerHTML": 1, + "parent.insertBefore": 1, + "p.lastChild": 1, + "parent.firstChild": 1, + "getElements": 2, + "html5.elements": 1, + "elements.split": 1, + "shivMethods": 2, + "docCreateElement": 5, + "docCreateFragment": 2, + "ownerDocument.createDocumentFragment": 2, + "//abort": 1, + "shiv": 1, + "html5.shivMethods": 1, + "saveClones.test": 1, + "node.canHaveChildren": 1, + "reSkip.test": 1, + "frag.appendChild": 1, + "html5": 3, + "shivDocument": 3, + "shived": 5, + "ownerDocument.documentShived": 2, + "html5.shivCSS": 1, + "options.elements": 1, + "options.shivCSS": 1, + "options.shivMethods": 1, + "Modernizr._version": 1, + "Modernizr._prefixes": 1, + "Modernizr._domPrefixes": 1, + "Modernizr._cssomPrefixes": 1, + "Modernizr.mq": 1, + "Modernizr.hasEvent": 1, + "Modernizr.testProp": 1, + "Modernizr.testAllProps": 1, + "Modernizr.testStyles": 1, + "Modernizr.prefixed": 1, + "docElement.className.replace": 1, + "js": 1, + "classes.join": 1, + "this.document": 1, + "PEG.parser": 1, + "result0": 264, + "result1": 81, + "result2": 77, + "parse_singleQuotedCharacter": 3, + "result1.push": 3, + "input.charCodeAt": 18, + "reportFailures": 64, + "matchFailed": 40, + "pos1": 63, + "chars": 1, + "chars.join": 1, + "pos0": 51, + "parse_simpleSingleQuotedCharacter": 2, + "parse_simpleEscapeSequence": 3, + "parse_zeroEscapeSequence": 3, + "parse_hexEscapeSequence": 3, + "parse_unicodeEscapeSequence": 3, + "parse_eolEscapeSequence": 3, + "pos2": 22, + "parse_eolChar": 6, + "input.length": 9, + "input.charAt": 21, + "char_": 9, + "parse_class": 1, + "result3": 35, + "result4": 12, + "result5": 4, + "parse_classCharacterRange": 3, + "parse_classCharacter": 5, + "result2.push": 1, + "parse___": 2, + "inverted": 4, + "partsConverted": 2, + "part.data": 1, + "rawText": 5, + "part.rawText": 1, + "ignoreCase": 1, + "begin": 1, + "begin.data.charCodeAt": 1, + "end.data.charCodeAt": 1, + "this.SyntaxError": 2, + "begin.rawText": 2, + "end.rawText": 2, + "begin.data": 1, + "end.data": 1, + "parse_bracketDelimitedCharacter": 2, + "quoteForRegexpClass": 1, + "parse_simpleBracketDelimitedCharacter": 2, + "parse_digit": 3, + "recognize": 1, + "input.substr": 9, + "parse_hexDigit": 7, + "parse_eol": 4, + "eol": 2, + "parse_letter": 1, + "parse_lowerCaseLetter": 2, + "parse_upperCaseLetter": 2, + "parse_whitespace": 3, + "parse_comment": 3, + "result0.push": 1, + "parse_singleLineComment": 2, + "parse_multiLineComment": 2, + "x0B": 1, + "uFEFF": 1, + "u1680": 1, + "u180E": 1, + "u2000": 1, + "u200A": 1, + "u202F": 1, + "u205F": 1, + "u3000": 1, + "cleanupExpected": 2, + "expected.sort": 1, + "lastExpected": 3, + "cleanExpected": 2, + "expected.length": 4, + "cleanExpected.push": 1, + "computeErrorPosition": 2, + "column": 8, + "seenCR": 5, + "rightmostFailuresPos": 2, + "parseFunctions": 1, + "startRule": 1, + "errorPosition": 1, + "rightmostFailuresExpected": 1, + "errorPosition.line": 1, + "errorPosition.column": 1, + "toSource": 1, + "this._source": 1, + "result.SyntaxError": 1, + "buildMessage": 2, + "expectedHumanized": 5, + "foundHumanized": 3, + "expected.slice": 1, + "this.expected": 1, + "this.found": 1, + "this.column": 1, + "result.SyntaxError.prototype": 1, + "Error.prototype": 1 + }, + "ECL": { + "#option": 1, + "(": 32, + "true": 1, + ")": 32, + ";": 23, + "namesRecord": 4, + "RECORD": 1, + "string20": 1, + "surname": 1, + "string10": 2, + "forename": 1, + "integer2": 5, + "age": 2, + "dadAge": 1, + "mumAge": 1, + "END": 1, + "namesRecord2": 3, + "record": 1, + "extra": 1, + "end": 1, + "namesTable": 11, + "dataset": 2, + "FLAT": 2, + "namesTable2": 9, + "aveAgeL": 3, + "l": 1, + "l.dadAge": 1, + "+": 16, + "l.mumAge": 1, + "/2": 2, + "aveAgeR": 4, + "r": 1, + "r.dadAge": 1, + "r.mumAge": 1, + "output": 9, + "join": 11, + "left": 2, + "right": 3, + "//Several": 1, + "simple": 1, + "examples": 1, + "of": 1, + "sliding": 2, + "syntax": 1, + "left.age": 8, + "right.age": 12, + "-": 5, + "and": 10, + "<": 1, + "between": 7, + "//Same": 1, + "but": 1, + "on": 1, + "strings.": 1, + "Also": 1, + "includes": 1, + "to": 1, + "ensure": 1, + "sort": 1, + "is": 1, + "done": 1, + "by": 1, + "non": 1, + "before": 1, + "sliding.": 1, + "left.surname": 2, + "right.surname": 4, + "[": 4, + "]": 4, + "all": 1, + "//This": 1, + "should": 1, + "not": 1, + "generate": 1, + "a": 1, + "self": 1 }, "Lua": { "-": 60, @@ -34855,31 +38863,4436 @@ "in_7_list": 1, "in_8_list": 1 }, + "AutoHotkey": { + "MsgBox": 1, + "Hello": 1, + "World": 1 + }, + "VimL": { + "no": 1, + "toolbar": 1, + "set": 7, + "guioptions": 1, + "-": 1, + "T": 1, + "nocompatible": 1, + "ignorecase": 1, + "incsearch": 1, + "smartcase": 1, + "showmatch": 1, + "showcmd": 1, + "syntax": 1, + "on": 1 + }, + "Cirru": { + "require": 1, + "./stdio.cr": 1, + "print": 38, + "map": 8, + "a": 22, + "int": 36, + "b": 7, + "array": 14, + "(": 20, + ")": 20, + "c": 9, + "set": 12, + "m": 3, + "string": 7, + "nothing": 1, + "code": 4, + "get": 4, + "container": 3, + "float": 1, + "self": 2, + "child": 1, + "under": 2, + "parent": 1, + "x": 2, + "just": 4, + "-": 4, + "eval": 2, + "bool": 6, + "true": 1, + "false": 1, + "yes": 1, + "no": 1, + "f": 3, + "block": 1, + "call": 1 + }, + "PureScript": { + "module": 4, + "Data.Foreign": 2, + "(": 111, + "Foreign": 12, + "..": 1, + ")": 115, + "ForeignParser": 29, + "parseForeign": 6, + "parseJSON": 3, + "ReadForeign": 11, + "read": 10, + "prop": 3, + "where": 20, + "import": 32, + "Prelude": 3, + "Data.Array": 3, + "Data.Either": 1, + "Data.Maybe": 3, + "Data.Tuple": 3, + "Data.Traversable": 2, + "foreign": 6, + "data": 3, + "*": 1, + "fromString": 2, + "String": 13, + "-": 88, + "Either": 6, + "readPrimType": 5, + "forall": 26, + "a.": 6, + "a": 46, + "readMaybeImpl": 2, + "Maybe": 5, + "readPropImpl": 2, + "showForeignImpl": 2, + "instance": 12, + "showForeign": 1, + "Prelude.Show": 1, + "show": 5, + "p": 11, + "x": 26, + "json": 2, + "monadForeignParser": 1, + "Prelude.Monad": 1, + "return": 6, + "_": 7, + "Right": 9, + "f": 28, + "case": 9, + "of": 9, + "Left": 8, + "err": 8, + "applicativeForeignParser": 1, + "Prelude.Applicative": 1, + "pure": 1, + "<*>": 2, + "<$>": 8, + "functorForeignParser": 1, + "Prelude.Functor": 1, + "class": 4, + "readString": 1, + "readNumber": 1, + "Number": 1, + "readBoolean": 1, + "Boolean": 1, + "readArray": 1, + "[": 5, + "]": 5, + "let": 4, + "arrayItem": 2, + "Tuple": 21, + "i": 2, + "result": 4, + "+": 30, + "in": 2, + "xs": 3, + "traverse": 2, + "zip": 1, + "range": 1, + "length": 3, + "readMaybe": 1, + "<<": 4, + "<": 13, + "Just": 7, + "Nothing": 7, + "ReactiveJQueryTest": 1, + "flip": 2, + "Control.Monad": 1, + "Control.Monad.Eff": 1, + "Control.Monad.JQuery": 1, + "Control.Reactive": 1, + "Control.Reactive.JQuery": 1, + "map": 8, + "head": 2, + "Data.Foldable": 2, + "Data.Monoid": 1, + "Debug.Trace": 1, + "Global": 1, + "parseInt": 1, + "main": 1, + "do": 4, + "personDemo": 2, + "todoListDemo": 1, + "greet": 1, + "firstName": 2, + "lastName": 2, + "Create": 3, + "new": 1, + "reactive": 1, + "variables": 1, + "to": 3, + "hold": 1, + "the": 3, + "user": 1, + "readRArray": 1, + "arr": 10, + "insertRArray": 1, + "{": 25, + "text": 5, + "completed": 2, + "}": 26, + "paragraph": 2, + "display": 2, + "next": 1, + "task": 4, + "nextTaskLabel": 3, + "create": 2, + "append": 2, + "b": 49, + "nextTask": 2, + "toComputedArray": 2, + "toComputed": 2, + "bindTextOneWay": 2, + "counter": 3, + "counterLabel": 3, + "rs": 2, + "cs": 2, + "<->": 1, + "c": 17, + "if": 1, + "then": 1, + "else": 1, + "entry": 1, + "entry.completed": 1, + "foldl": 4, + "Data.Map": 1, + "Map": 26, + "empty": 6, + "singleton": 5, + "insert": 10, + "lookup": 8, + "delete": 9, + "alter": 8, + "toList": 10, + "fromList": 3, + "union": 3, + "qualified": 1, + "as": 1, + "P": 1, + "concat": 3, + "k": 108, + "v": 57, + "Leaf": 15, + "|": 9, + "Branch": 27, + "key": 13, + "value": 8, + "left": 15, + "right": 14, + "eqMap": 1, + "P.Eq": 11, + "m1": 6, + "m2": 6, + "P.": 11, + "/": 1, + "P.not": 1, + "showMap": 1, + "P.Show": 3, + "m": 6, + "P.show": 1, + "v.": 11, + "P.Ord": 9, + "b@": 6, + "k1": 16, + "b.left": 9, + "b.right": 8, + "findMinKey": 5, + "glue": 4, + "minKey": 3, + "root": 2, + "b.key": 1, + "b.value": 2, + "v1": 3, + "v2.": 1, + "v2": 2, + "Control.Arrow": 1, + "Arrow": 5, + "c.": 3, + "first": 4, + "d.": 2, + "d": 6, + "arrowFunction": 1, + "second": 3, + "Category": 3, + "swap": 4, + "b.": 1, + "y": 2, + "infixr": 3, + "***": 2, + "&&": 3, + "&": 3, + ".": 2, + "g": 4, + "ArrowZero": 1, + "zeroArrow": 1, + "<+>": 2, + "ArrowPlus": 1 + }, + "Kit": { + "
": 1, + "

": 1, + "

": 1, + "

": 1, + "

": 1, + "
": 1 + }, + "Monkey": { + "Strict": 1, + "sample": 1, + "class": 1, + "from": 1, + "the": 1, + "documentation": 1, + "Class": 3, + "Game": 1, + "Extends": 2, + "App": 1, + "Function": 2, + "New": 1, + "(": 12, + ")": 12, + "End": 8, + "DrawSpiral": 3, + "clock": 3, + "Local": 3, + "w": 3, + "DeviceWidth/2": 1, + "For": 1, + "i#": 1, + "Until": 1, + "w*1.5": 1, + "Step": 1, + ".2": 1, + "x#": 1, + "y#": 1, + "x": 2, + "+": 5, + "i*Sin": 1, + "i*3": 1, + "y": 2, + "i*Cos": 1, + "i*2": 1, + "DrawRect": 1, + "Next": 1, + "hitbox.Collide": 1, + "event.pos": 1, + "Field": 2, + "updateCount": 3, + "Method": 4, + "OnCreate": 1, + "Print": 2, + "SetUpdateRate": 1, + "OnUpdate": 1, + "OnRender": 1, + "Cls": 1, + "updateCount*1.1": 1, + "Enemy": 1, + "Die": 1, + "Abstract": 1, + "field": 1, + "testField": 1, + "Bool": 2, + "True": 2, + "oss": 1, + "he": 2, + "-": 2, + "killed": 1, + "me": 1, + "b": 6, + "extending": 1, + "with": 1, + "generics": 1, + "VectorNode": 1, + "Node": 1, + "": 1, + "array": 1, + "syntax": 1, + "Global": 14, + "listOfStuff": 3, + "String": 4, + "[": 6, + "]": 6, + "lessStuff": 1, + "oneStuff": 1, + "a": 3, + "comma": 1, + "separated": 1, + "sequence": 1, + "text": 1, + "worstCase": 1, + "worst.List": 1, + "": 1, + "escape": 1, + "characers": 1, + "in": 1, + "strings": 1, + "string3": 1, + "string4": 1, + "string5": 1, + "string6": 1, + "prints": 1, + ".ToUpper": 1, + "Boolean": 1, + "shorttype": 1, + "boolVariable1": 1, + "boolVariable2": 1, + "False": 1, + "preprocessor": 1, + "keywords": 1, + "#If": 1, + "TARGET": 2, + "DoStuff": 1, + "#ElseIf": 1, + "DoOtherStuff": 1, + "#End": 1, + "operators": 1, + "|": 2, + "&": 1, + "c": 1 + }, + "XML": { + "": 1, + "name=": 227, + "version=": 10, + "compatVersion=": 1, + "": 1, + "FreeMedForms": 1, + "": 1, + "": 1, + "(": 53, + "C": 1, + ")": 46, + "-": 50, + "by": 14, + "Eric": 1, + "MAEKER": 1, + "MD": 1, + "": 1, + "": 1, + "GPLv3": 1, + "": 1, + "": 1, + "Patient": 1, + "data": 2, + "": 1, + "": 3, + "The": 75, + "XML": 1, + "form": 1, + "loader/saver": 1, + "for": 60, + "FreeMedForms.": 1, + "": 3, + "": 1, + "http": 1, + "//www.freemedforms.com/": 1, + "": 1, + "": 1, + "": 4, + "": 1, + "": 1, + "": 4, + "": 1, + "xmlns": 2, + "ea=": 2, + "": 1, + "organisation=": 3, + "module=": 3, + "revision=": 3, + "status=": 1, + "this": 77, + "is": 123, + "a": 128, + "easyant": 3, + "module.ivy": 1, + "sample": 2, + "file": 3, + "java": 1, + "standard": 1, + "application": 2, + "": 1, + "": 1, + "value=": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 2, + "visibility=": 2, + "description=": 2, + "": 1, + "": 1, + "org=": 1, + "rev=": 1, + "conf=": 1, + "default": 9, + "junit": 2, + "test": 7, + "/": 6, + "": 1, + "": 1, + "": 1, + "This": 21, + "module.ant": 1, + "optionnal": 1, + "and": 44, + "designed": 1, + "to": 164, + "customize": 1, + "your": 8, + "build": 1, + "with": 23, + "own": 2, + "specific": 8, + "target.": 1, + "": 2, + "": 2, + "my": 2, + "awesome": 1, + "additionnal": 1, + "target": 6, + "": 2, + "": 2, + "extensionOf=": 1, + "i": 2, + "would": 2, + "love": 1, + "could": 1, + "easily": 1, + "plug": 1, + "pre": 1, + "compile": 1, + "step": 1, + "": 1, + "encoding=": 1, + "": 1, + "TS": 1, + "": 1, + "language=": 1, + "": 1, + "": 2, + "MainWindow": 1, + "": 2, + "": 8, + "": 8, + "filename=": 8, + "line=": 8, + "": 8, + "United": 1, + "Kingdom": 1, + "": 8, + "": 8, + "Reino": 1, + "Unido": 1, + "": 8, + "": 8, + "God": 1, + "save": 2, + "the": 261, + "Queen": 1, + "Deus": 1, + "salve": 1, + "Rainha": 1, + "England": 1, + "Inglaterra": 1, + "Wales": 1, + "Gales": 1, + "Scotland": 1, + "Esc": 1, + "cia": 1, + "Northern": 1, + "Ireland": 1, + "Irlanda": 1, + "Norte": 1, + "Portuguese": 1, + "Portugu": 1, + "s": 3, + "English": 1, + "Ingl": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "ReactiveUI": 2, + "": 1, + "": 1, + "": 120, + "": 120, + "IObservedChange": 5, + "generic": 3, + "interface": 4, + "that": 94, + "replaces": 1, + "non": 1, + "PropertyChangedEventArgs.": 1, + "Note": 7, + "it": 16, + "used": 19, + "both": 2, + "Changing": 5, + "i.e.": 23, + "Changed": 4, + "Observables.": 2, + "In": 6, + "future": 2, + "will": 65, + "be": 57, + "Covariant": 1, + "which": 12, + "allow": 1, + "simpler": 1, + "casting": 1, + "between": 15, + "changes.": 2, + "": 121, + "": 120, + "object": 42, + "has": 16, + "raised": 1, + "change.": 12, + "name": 7, + "of": 75, + "property": 74, + "changed": 18, + "on": 35, + "Sender.": 1, + "value": 44, + "changed.": 9, + "IMPORTANT": 1, + "NOTE": 1, + "often": 3, + "not": 9, + "set": 41, + "performance": 1, + "reasons": 1, + "unless": 1, + "you": 20, + "have": 17, + "explicitly": 1, + "requested": 1, + "an": 88, + "Observable": 56, + "via": 8, + "method": 34, + "such": 5, + "as": 25, + "ObservableForProperty.": 1, + "To": 4, + "retrieve": 3, + "use": 5, + "Value": 3, + "extension": 2, + "method.": 2, + "IReactiveNotifyPropertyChanged": 6, + "represents": 4, + "extended": 1, + "version": 3, + "INotifyPropertyChanged": 1, + "also": 17, + "exposes": 1, + "IEnableLogger": 1, + "dummy": 1, + "attaching": 1, + "any": 11, + "class": 11, + "give": 1, + "access": 3, + "Log": 2, + "When": 5, + "called": 5, + "fire": 11, + "change": 26, + "notifications": 22, + "neither": 3, + "traditional": 3, + "nor": 3, + "until": 7, + "return": 11, + "disposed.": 3, + "": 36, + "An": 26, + "when": 38, + "disposed": 4, + "reenables": 3, + "notifications.": 5, + "": 36, + "Represents": 4, + "fires": 6, + "*before*": 2, + "about": 5, + "should": 10, + "duplicate": 2, + "if": 27, + "same": 8, + "multiple": 6, + "times.": 4, + "*after*": 2, + "TSender": 1, + "helper": 5, + "adds": 2, + "typed": 2, + "versions": 2, + "Changed.": 1, + "IReactiveCollection": 3, + "collection": 27, + "can": 11, + "notify": 3, + "its": 4, + "contents": 2, + "are": 13, + "either": 1, + "items": 27, + "added/removed": 1, + "or": 24, + "itself": 2, + "changes": 13, + ".": 20, + "It": 1, + "important": 6, + "implement": 5, + "Changing/Changed": 1, + "from": 12, + "semantically": 3, + "Fires": 14, + "added": 6, + "once": 4, + "per": 2, + "item": 19, + "added.": 4, + "Functions": 2, + "add": 2, + "AddRange": 2, + "provided": 14, + "was": 6, + "before": 8, + "going": 4, + "collection.": 6, + "been": 5, + "removed": 4, + "providing": 20, + "removed.": 4, + "whenever": 18, + "number": 9, + "in": 45, + "new": 10, + "Count.": 4, + "previous": 2, + "Provides": 4, + "Item": 4, + "implements": 8, + "IReactiveNotifyPropertyChanged.": 4, + "only": 18, + "enabled": 8, + "ChangeTrackingEnabled": 2, + "True.": 2, + "Enables": 2, + "ItemChanging": 2, + "ItemChanged": 2, + "properties": 29, + ";": 10, + "implementing": 2, + "rebroadcast": 2, + "through": 3, + "ItemChanging/ItemChanged.": 2, + "T": 1, + "type": 23, + "specified": 7, + "Observables": 4, + "IMessageBus": 1, + "act": 2, + "simple": 2, + "way": 2, + "ViewModels": 3, + "other": 9, + "objects": 4, + "communicate": 2, + "each": 7, + "loosely": 2, + "coupled": 2, + "way.": 2, + "Specifying": 2, + "messages": 22, + "go": 2, + "where": 4, + "done": 2, + "combination": 2, + "Type": 9, + "message": 30, + "well": 2, + "additional": 3, + "parameter": 6, + "unique": 12, + "string": 13, + "distinguish": 12, + "arbitrarily": 2, + "client.": 2, + "Listen": 4, + "provides": 6, + "Message": 2, + "RegisterMessageSource": 4, + "SendMessage.": 2, + "": 12, + "listen": 6, + "to.": 7, + "": 12, + "": 84, + "A": 19, + "identical": 11, + "types": 10, + "one": 27, + "purpose": 10, + "leave": 10, + "null.": 10, + "": 83, + "Determins": 2, + "particular": 2, + "registered.": 2, + "message.": 1, + "True": 6, + "posted": 3, + "Type.": 2, + "Registers": 3, + "representing": 20, + "stream": 7, + "send.": 4, + "Another": 2, + "part": 2, + "code": 4, + "then": 3, + "call": 5, + "Observable.": 6, + "subscribed": 2, + "sent": 2, + "out": 4, + "provided.": 5, + "Sends": 2, + "single": 2, + "using": 9, + "contract.": 2, + "Consider": 2, + "instead": 2, + "sending": 2, + "response": 2, + "events.": 2, + "actual": 2, + "send": 3, + "returns": 5, + "current": 10, + "logger": 2, + "allows": 15, + "log": 2, + "attached.": 1, + "structure": 1, + "representation": 1, + "memoizing": 2, + "cache": 14, + "evaluate": 1, + "function": 13, + "but": 7, + "keep": 1, + "recently": 3, + "evaluated": 1, + "parameters.": 1, + "Since": 1, + "mathematical": 2, + "sense": 1, + "key": 12, + "*always*": 1, + "maps": 1, + "corresponding": 2, + "value.": 2, + "calculation": 8, + "function.": 6, + "returned": 2, + "Constructor": 2, + "whose": 7, + "results": 6, + "want": 2, + "Tag": 1, + "user": 2, + "defined": 1, + "size": 1, + "maintain": 1, + "after": 1, + "old": 1, + "start": 1, + "thrown": 1, + "out.": 1, + "result": 3, + "gets": 1, + "evicted": 2, + "because": 2, + "Invalidate": 2, + "full": 1, + "Evaluates": 1, + "returning": 1, + "cached": 2, + "possible": 1, + "pass": 2, + "optional": 2, + "parameter.": 1, + "Ensure": 1, + "next": 1, + "time": 3, + "queried": 1, + "called.": 1, + "all": 4, + "Returns": 5, + "values": 4, + "currently": 2, + "MessageBus": 3, + "bus.": 1, + "scheduler": 11, + "post": 2, + "RxApp.DeferredScheduler": 2, + "default.": 2, + "Current": 1, + "RxApp": 1, + "global": 1, + "object.": 3, + "ViewModel": 8, + "another": 3, + "Return": 1, + "instance": 2, + "type.": 3, + "registered": 1, + "ObservableAsPropertyHelper": 6, + "help": 1, + "backed": 1, + "read": 3, + "still": 1, + "created": 2, + "directly": 1, + "more": 16, + "ToProperty": 2, + "ObservableToProperty": 1, + "methods.": 2, + "so": 1, + "output": 1, + "chained": 2, + "example": 2, + "property.": 12, + "Constructs": 4, + "base": 3, + "on.": 6, + "action": 2, + "take": 2, + "typically": 1, + "t": 2, + "bindings": 13, + "null": 4, + "OAPH": 2, + "at": 2, + "startup.": 1, + "initial": 28, + "normally": 6, + "Dispatcher": 3, + "based": 9, + "last": 1, + "Exception": 1, + "steps": 1, + "taken": 1, + "ensure": 3, + "never": 3, + "complete": 1, + "fail.": 1, + "Converts": 2, + "automatically": 3, + "onChanged": 2, + "raise": 2, + "notification.": 2, + "equivalent": 2, + "convenient.": 1, + "Expression": 7, + "initialized": 2, + "backing": 9, + "field": 10, + "ReactiveObject": 11, + "ObservableAsyncMRUCache": 2, + "memoization": 2, + "asynchronous": 4, + "expensive": 2, + "compute": 1, + "MRU": 1, + "fixed": 1, + "limit": 5, + "cache.": 5, + "guarantees": 6, + "given": 11, + "flight": 2, + "subsequent": 1, + "requests": 4, + "wait": 3, + "first": 1, + "empty": 1, + "web": 6, + "image": 1, + "receives": 1, + "two": 1, + "concurrent": 5, + "issue": 2, + "WebRequest": 1, + "does": 1, + "mean": 1, + "request": 3, + "Concurrency": 1, + "limited": 1, + "maxConcurrent": 1, + "too": 1, + "many": 1, + "operations": 6, + "progress": 1, + "further": 1, + "queued": 1, + "slot": 1, + "available.": 1, + "performs": 1, + "asyncronous": 1, + "async": 3, + "CPU": 1, + "Observable.Return": 1, + "may": 1, + "result.": 2, + "*must*": 1, + "equivalently": 1, + "input": 2, + "being": 1, + "memoized": 1, + "calculationFunc": 2, + "depends": 1, + "varables": 1, + "than": 5, + "unpredictable.": 1, + "reached": 2, + "discarded.": 4, + "maximum": 2, + "regardless": 2, + "caches": 2, + "server.": 2, + "clean": 1, + "up": 25, + "manage": 1, + "disk": 1, + "download": 1, + "temporary": 1, + "folder": 1, + "onRelease": 1, + "delete": 1, + "file.": 1, + "run": 7, + "defaults": 1, + "TaskpoolScheduler": 2, + "Issues": 1, + "fetch": 1, + "operation.": 1, + "operation": 2, + "finishes.": 1, + "If": 6, + "immediately": 3, + "upon": 1, + "subscribing": 1, + "returned.": 2, + "provide": 2, + "synchronous": 1, + "AsyncGet": 1, + "resulting": 1, + "Works": 2, + "like": 2, + "SelectMany": 2, + "memoizes": 2, + "selector": 5, + "calls.": 2, + "addition": 3, + "no": 4, + "selectors": 2, + "running": 4, + "concurrently": 2, + "queues": 2, + "rest.": 2, + "very": 2, + "services": 2, + "avoid": 2, + "potentially": 2, + "spamming": 2, + "server": 2, + "hundreds": 2, + "requests.": 2, + "similar": 3, + "passed": 1, + "SelectMany.": 1, + "similarly": 1, + "ObservableAsyncMRUCache.AsyncGet": 1, + "must": 2, + "sense.": 1, + "flattened": 2, + "selector.": 2, + "overload": 2, + "useful": 2, + "making": 3, + "service": 1, + "several": 1, + "places": 1, + "paths": 1, + "already": 1, + "configured": 1, + "ObservableAsyncMRUCache.": 1, + "notification": 6, + "Attempts": 1, + "expression": 3, + "false": 2, + "expression.": 1, + "entire": 1, + "able": 1, + "followed": 1, + "otherwise": 1, + "Given": 3, + "fully": 3, + "filled": 1, + "SetValueToProperty": 1, + "apply": 3, + "target.property": 1, + "This.GetValue": 1, + "observed": 1, + "onto": 1, + "convert": 2, + "stream.": 3, + "ValueIfNotDefault": 1, + "filters": 1, + "BindTo": 1, + "takes": 1, + "applies": 1, + "Conceptually": 1, + "child": 2, + "without": 1, + "checks.": 1, + "set.": 3, + "x.Foo.Bar.Baz": 1, + "disconnects": 1, + "binding.": 1, + "ReactiveCollection.": 1, + "ReactiveCollection": 1, + "existing": 3, + "list.": 2, + "list": 1, + "populate": 1, + "anything": 2, + "Change": 2, + "Tracking": 2, + "Creates": 3, + "adding": 2, + "completes": 4, + "optionally": 2, + "ensuring": 2, + "delay.": 2, + "withDelay": 2, + "leak": 2, + "Timer.": 2, + "always": 4, + "UI": 2, + "thread.": 3, + "put": 2, + "into": 2, + "populated": 4, + "faster": 2, + "delay": 2, + "Select": 3, + "item.": 3, + "creating": 2, + "collections": 1, + "updated": 1, + "respective": 1, + "Model": 1, + "updated.": 1, + "Collection.Select": 1, + "mirror": 1, + "ObservableForProperty": 14, + "ReactiveObject.": 1, + "unlike": 13, + "Selector": 1, + "classes": 2, + "INotifyPropertyChanged.": 1, + "monitor": 1, + "RaiseAndSetIfChanged": 2, + "Setter": 2, + "write": 2, + "assumption": 4, + "named": 2, + "RxApp.GetFieldNameForPropertyNameFunc.": 2, + "almost": 2, + "keyword.": 2, + "newly": 2, + "intended": 5, + "Silverlight": 2, + "WP7": 1, + "reflection": 1, + "cannot": 1, + "private": 1, + "field.": 1, + "Reference": 1, + "Use": 13, + "custom": 4, + "raiseAndSetIfChanged": 1, + "doesn": 1, + "x": 1, + "x.SomeProperty": 1, + "suffice.": 1, + "RaisePropertyChanging": 2, + "mock": 4, + "scenarios": 4, + "manually": 4, + "fake": 4, + "invoke": 4, + "raisePropertyChanging": 4, + "faking": 4, + "RaisePropertyChanged": 2, + "helps": 1, + "make": 2, + "them": 1, + "compatible": 1, + "Rx.Net.": 1, + "declare": 1, + "initialize": 1, + "derive": 1, + "properties/methods": 1, + "MakeObjectReactiveHelper.": 1, + "InUnitTestRunner": 1, + "attempts": 1, + "determine": 1, + "heuristically": 1, + "unit": 3, + "framework.": 1, + "we": 1, + "determined": 1, + "framework": 1, + "running.": 1, + "GetFieldNameForProperty": 1, + "convention": 2, + "GetFieldNameForPropertyNameFunc.": 1, + "needs": 1, + "found.": 1, + "name.": 1, + "DeferredScheduler": 1, + "schedule": 2, + "work": 2, + "normal": 2, + "mode": 2, + "DispatcherScheduler": 1, + "Unit": 1, + "Test": 1, + "Immediate": 1, + "simplify": 1, + "writing": 1, + "common": 1, + "tests.": 1, + "background": 1, + "modes": 1, + "TPL": 1, + "Task": 1, + "Pool": 1, + "Threadpool": 1, + "Set": 3, + "provider": 1, + "usually": 1, + "entry": 1, + "MessageBus.Current.": 1, + "override": 1, + "naming": 1, + "one.": 1, + "WhenAny": 12, + "observe": 12, + "constructors": 12, + "need": 12, + "setup.": 12, + "": 1, + "": 1 + }, + "SuperCollider": { + "//boot": 1, + "server": 1, + "s.boot": 1, + ";": 18, + "(": 22, + "SynthDef": 1, + "{": 5, + "var": 1, + "sig": 7, + "resfreq": 3, + "Saw.ar": 1, + ")": 22, + "SinOsc.kr": 1, + "*": 3, + "+": 1, + "RLPF.ar": 1, + "Out.ar": 1, + "}": 5, + ".play": 2, + "do": 2, + "arg": 1, + "i": 1, + "Pan2.ar": 1, + "SinOsc.ar": 1, + "exprand": 1, + "LFNoise2.kr": 2, + "rrand": 2, + ".range": 2, + "**": 1, + "rand2": 1, + "a": 2, + "Env.perc": 1, + "-": 1, + "b": 1, + "a.delay": 2, + "a.test.plot": 1, + "b.test.plot": 1, + "Env": 1, + "[": 2, + "]": 2, + ".plot": 2, + "e": 1, + "Env.sine.asStream": 1, + "e.next.postln": 1, + "wait": 1, + ".fork": 1 + }, + "XSLT": { + "": 1, + "version=": 2, + "": 1, + "xmlns": 1, + "xsl=": 1, + "": 1, + "match=": 1, + "": 1, + "": 1, + "

": 1, + "My": 1, + "CD": 1, + "Collection": 1, + "

": 1, + "": 1, + "border=": 1, + "": 2, + "bgcolor=": 1, + "": 2, + "Artist": 1, + "": 2, + "": 1, + "select=": 3, + "": 2, + "": 1, + "
": 2, + "Title": 1, + "
": 2, + "": 2, + "
": 1, + "": 1, + "": 1, + "
": 1, + "
": 1 + }, + "ShellSession": { + "echo": 2, + "FOOBAR": 2, + "Hello": 2, + "World": 2, + "gem": 4, + "install": 4, + "nokogiri": 6, + "...": 4, + "Building": 2, + "native": 2, + "extensions.": 2, + "This": 4, + "could": 2, + "take": 2, + "a": 4, + "while...": 2, + "checking": 1, + "for": 4, + "libxml/parser.h...": 1, + "***": 2, + "extconf.rb": 1, + "failed": 1, + "Could": 2, + "not": 2, + "create": 1, + "Makefile": 1, + "due": 1, + "to": 3, + "some": 1, + "reason": 2, + "probably": 1, + "lack": 1, + "of": 2, + "necessary": 1, + "libraries": 1, + "and/or": 1, + "headers.": 1, + "Check": 1, + "the": 2, + "mkmf.log": 1, + "file": 1, + "more": 1, + "details.": 1, + "You": 1, + "may": 1, + "need": 1, + "configuration": 1, + "options.": 1, + "brew": 2, + "tap": 2, + "homebrew/dupes": 1, + "Cloning": 1, + "into": 1, + "remote": 3, + "Counting": 1, + "objects": 3, + "done.": 4, + "Compressing": 1, + "%": 5, + "(": 6, + "/591": 1, + ")": 6, + "Total": 1, + "delta": 2, + "reused": 1, + "Receiving": 1, + "/1034": 1, + "KiB": 1, + "|": 1, + "bytes/s": 1, + "Resolving": 1, + "deltas": 1, + "/560": 1, + "Checking": 1, + "connectivity...": 1, + "done": 1, + "Warning": 1, + "homebrew/dupes/lsof": 1, + "over": 1, + "mxcl/master/lsof": 1, + "Tapped": 1, + "formula": 4, + "apple": 1, + "-": 12, + "gcc42": 1, + "Downloading": 1, + "http": 2, + "//r.research.att.com/tools/gcc": 1, + "darwin11.pkg": 1, + "########################################################################": 1, + "Caveats": 1, + "NOTE": 1, + "provides": 1, + "components": 1, + "that": 1, + "were": 1, + "removed": 1, + "from": 3, + "XCode": 2, + "in": 2, + "release.": 1, + "There": 1, + "is": 2, + "no": 1, + "this": 1, + "if": 1, + "you": 1, + "are": 1, + "using": 1, + "version": 1, + "prior": 1, + "contains": 1, + "compilers": 2, + "built": 2, + "Apple": 1, + "s": 1, + "GCC": 1, + "sources": 1, + "build": 1, + "available": 1, + "//opensource.apple.com/tarballs/gcc": 1, + "All": 1, + "have": 1, + "suffix.": 1, + "A": 1, + "GFortran": 1, + "compiler": 1, + "also": 1, + "included.": 1, + "Summary": 1, + "/usr/local/Cellar/apple": 1, + "gcc42/4.2.1": 1, + "files": 1, + "M": 1, + "seconds": 1, + "v": 1, + "Fetching": 1, + "Successfully": 1, + "installed": 2, + "Installing": 2, + "ri": 1, + "documentation": 2, + "RDoc": 1 + }, + "Matlab": { + "function": 34, + "write_gains": 1, + "(": 1379, + "pathToFile": 11, + "speeds": 21, + "gains": 12, + ")": 1380, + "%": 554, + "contents": 1, + "importdata": 1, + ";": 909, + "speedsInFile": 5, + "contents.data": 2, + "gainsInFile": 3, + "end": 150, + "sameSpeedIndices": 5, + "[": 311, + "]": 311, + "for": 78, + "i": 338, + "length": 49, + "j": 242, + "if": 52, + "abs": 12, + "-": 673, + "<": 9, + "e": 14, + "allGains": 4, + "allSpeeds": 4, + "order": 11, + "sort": 1, + "all": 15, + "fid": 7, + "fopen": 2, + "h": 19, + "contents.colheaders": 1, + "fprintf": 18, + "{": 157, + "}": 157, + "fclose": 2, + "d": 12, + "d_mean": 3, + "d_std": 3, + "normalize": 1, + "mean": 2, + "repmat": 2, + "size": 11, + "std": 1, + "d./": 1, + "data": 27, + "load_bikes": 2, + "bikes": 24, + "input": 14, + "speedNames": 12, + "gains.Benchmark.Slow": 1, + "place": 2, + "holder": 2, + "gains.Browserins.Slow": 1, + "gains.Browser.Slow": 1, + "gains.Pista.Slow": 1, + "gains.Fisher.Slow": 1, + "gains.Yellow.Slow": 1, + "gains.Yellowrev.Slow": 1, + "gains.Benchmark.Medium": 1, + "gains.Browserins.Medium": 1, + "gains.Browser.Medium": 1, + "gains.Pista.Medium": 1, + "gains.Fisher.Medium": 1, + "gains.Yellow.Medium": 1, + "gains.Yellowrev.Medium": 1, + "gains.Benchmark.Fast": 1, + "gains.Browserins.Fast": 1, + "gains.Browser.Fast": 1, + "gains.Pista.Fast": 1, + "gains.Fisher.Fast": 1, + "gains.Yellow.Fast": 1, + "gains.Yellowrev.Fast": 1, + "data.": 6, + ".": 13, + "...": 162, + "generate_data": 5, + "gains.": 1, + "par": 7, + "par_text_to_struct": 4, + "textscan": 1, + "names": 6, + "strtrim": 2, + "vals": 2, + "regexp": 1, + "v": 12, + "par.": 1, + "str2num": 1, + "clear": 13, + "Initial": 3, + "Conditions": 1, + "mu": 73, + "T": 22, + "N": 9, + "C": 13, + "x_0": 45, + "y_0": 29, + "vx_0": 37, + "vy_0": 22, + "sqrt": 14, + "+": 169, + "*Potential": 5, + "k": 75, + "Integration": 2, + "options": 14, + "odeset": 4, + "@cross_y": 1, + "t": 32, + "y": 25, + "te": 2, + "ye": 9, + "ie": 2, + "ode113": 2, + "@f": 6, + "figure": 17, + "plot": 26, + "average": 1, + "x": 46, + "m": 44, + "n": 102, + "|": 2, + "&": 4, + "error": 16, + "sum": 2, + "/length": 1, + "tic": 7, + "x_min": 3, + "x_max": 3, + "y_min": 3, + "y_max": 3, + "how": 1, + "many": 1, + "points": 11, + "per": 5, + "one": 3, + "measure": 1, + "unit": 1, + "both": 1, + "in": 8, + "and": 7, + "ds": 1, + "/": 59, + "x_res": 7, + "*n": 2, + "y_res": 7, + "grid_x": 3, + "linspace": 14, + "grid_y": 3, + "advected_x": 12, + "zeros": 61, + "advected_y": 12, + "parfor": 5, + "X": 6, + "ode45": 6, + "@dg": 1, + "store": 4, + "advected": 2, + "positions": 2, + "as": 4, + "they": 2, + "would": 2, + "appear": 2, + "coords": 2, + "Compute": 3, + "FTLE": 14, + "sigma": 6, + "compute": 2, + "Jacobian": 3, + "phi": 13, + "*ds": 4, + "find": 24, + "max": 9, + "eigenvalue": 2, + "of": 35, + "*phi": 2, + "log": 2, + "lambda_max": 2, + "/abs": 3, + "*T": 3, + "toc": 5, + "field": 2, + "contourf": 2, + "location": 1, + "EastOutside": 1, + "axis": 5, + "equal": 2, + "shading": 3, + "flat": 3, + "x_T": 25, + "y_T": 17, + "vx_T": 22, + "e_T": 7, + "filter": 14, + "Integrate_FILE": 1, + "e_0": 7, + "Integrate": 6, + "nx": 32, + "ny": 29, + "nvx": 32, + "ne": 29, + "vy_T": 12, + "Look": 2, + "phisically": 2, + "meaningful": 6, + "meaningless": 2, + "point": 14, + "only": 7, + "waitbar": 6, + "i/nx": 2, + "sprintf": 11, + "l": 64, + "*e_0": 3, + "isreal": 8, + "ci": 9, + "Y": 19, + "*": 46, + "Potential": 1, + "close": 4, + "lane_change": 1, + "start": 4, + "width": 3, + "slope": 3, + "pathLength": 3, + "speed": 20, + "num": 24, + "type": 4, + "varargin": 25, + "single": 1, + "double": 1, + "Double": 1, + "lane": 4, + "change": 1, + "needs": 1, + "lane.": 1, + "else": 23, + "laneLength": 4, + "startOfSlope": 3, + "endOfSlope": 1, + "<=>": 1, + "ones": 6, + "1": 1, + "downSlope": 3, + "clc": 1, + "rollData": 8, + "create_ieee_paper_plots": 2, + "z": 3, + "*vx_0": 1, + "pcolor": 2, + "bicycle": 7, + "bicycle_state_space": 1, + "S": 5, + "dbstack": 1, + "CURRENT_DIRECTORY": 2, + "fileparts": 1, + ".file": 1, + "filesep": 14, + "A": 11, + "B": 9, + "D": 7, + "whipple_pull_force_abcd": 2, + "states": 7, + "outputs": 10, + "inputs": 14, + "defaultSettings.states": 1, + "defaultSettings.inputs": 1, + "defaultSettings.outputs": 1, + "userSettings": 3, + "varargin_to_structure": 2, + "struct": 1, + "settings": 3, + "overwrite_settings": 2, + "defaultSettings": 3, + "minStates": 2, + "ismember": 15, + "settings.states": 3, + "keepStates": 2, + "removeStates": 1, + "row": 6, + "col": 5, + "s": 13, + "removeInputs": 2, + "settings.inputs": 1, + "keepOutputs": 2, + "settings.outputs": 1, + "It": 1, + "is": 7, + "not": 3, + "possible": 1, + "to": 9, + "keep": 1, + "output": 7, + "because": 1, + "it": 1, + "depends": 1, + "on": 13, + "StateName": 1, + "OutputName": 1, + "InputName": 1, + "value": 2, + "isterminal": 2, + "direction": 2, + "distance": 6, + "FIXME": 1, + "from": 2, + "the": 14, + "largest": 1, + "primary": 1, + "Elements": 1, + "grid": 1, + "definition": 2, + "Dimensionless": 1, + "integrating": 1, + "time": 21, + "Choice": 2, + "mass": 2, + "parameter": 2, + "Computation": 9, + "Lagrangian": 3, + "Points": 2, + "xl1": 13, + "yl1": 12, + "xl2": 9, + "yl2": 8, + "xl3": 8, + "yl3": 8, + "xl4": 10, + "yl4": 9, + "xl5": 8, + "yl5": 8, + "Lagr": 6, + "initial": 5, + "total": 6, + "energy": 8, + "E_L1": 4, + "Omega": 7, + "C_L1": 3, + "*E_L1": 1, + "Szebehely": 1, + "E": 8, + "Offset": 2, + "conditions": 3, + "range": 2, + "x_0_min": 8, + "x_0_max": 8, + "vx_0_min": 8, + "vx_0_max": 8, + "ndgrid": 2, + "*E": 2, + "*Omega": 5, + "vx_0.": 2, + "E_cin": 4, + "filtro": 15, + "E_T": 11, + "delta_E": 7, + "a": 17, + "matrix": 3, + "numbers": 2, + "integration": 9, + "steps": 2, + "each": 2, + "np": 8, + "number": 2, + "integrated": 5, + "Energy": 4, + "tolerance": 2, + "setting": 4, + "energy_tol": 6, + "Setting": 1, + "integrator": 2, + "RelTol": 2, + "AbsTol": 2, + "From": 1, + "Short": 1, + "Parallel": 2, + "equations": 2, + "motion": 2, + "r1": 3, + "r2": 3, + "g": 5, + "i/n": 1, + "y_0.": 2, + "./": 1, + "mu./": 1, + "&&": 13, + "Check": 6, + "real": 3, + "velocity": 2, + "positive": 2, + "Kinetic": 2, + "@f_reg": 1, + "Saving": 4, + "solutions": 2, + "final": 2, + "difference": 2, + "with": 2, + "conservation": 2, + "position": 2, + "interesting": 4, + "non": 2, + "sense": 2, + "bad": 4, + "t_integrazione": 3, + "filtro_1": 12, + "||": 3, + "dphi": 12, + "ftle": 10, + "ftle_norm": 1, + "ds_x": 1, + "ds_vx": 1, + "La": 1, + "direzione": 1, + "dello": 1, + "spostamento": 1, + "la": 2, + "decide": 1, + "il": 1, + "denominatore": 1, + "TODO": 1, + "spiegarsi": 1, + "teoricamente": 1, + "come": 1, + "mai": 1, + "matrice": 1, + "pu": 1, + "essere": 1, + "ridotta": 1, + "x2": 1, + "*ds_x": 2, + "*ds_vx": 2, + "Manual": 2, + "visualize": 2, + "*log": 2, + "eig": 6, + "dphi*dphi": 1, + "tempo": 4, + "integrare": 2, + ".2f": 5, + "calcolare": 2, + "var_": 2, + "_": 2, + "var_xvx_": 2, + "ode00": 2, + "_n": 2, + "num2str": 10, + "save": 2, + "nome": 2, + "load_data": 4, + "filename": 21, + "guess.plantOne": 3, + "guess.plantTwo": 2, + "plantNum.plantOne": 2, + "plantNum.plantTwo": 2, + "sections": 13, + "secData.": 1, + "data.Ts": 6, + "kP1": 4, + "gainSlopeOffset": 6, + "eye": 9, + "kP2": 3, + "b": 12, + "strcmp": 24, + "display": 10, + "guess.": 2, + "result.": 2, + ".fit.par": 1, + "currentGuess": 2, + ".*": 2, + "warning": 1, + "randomGuess": 1, + "The": 6, + "self": 2, + "validation": 2, + "VAF": 2, + "f.": 2, + "data/": 1, + "results.mat": 1, + "guess": 1, + "plantNum": 1, + "result": 5, + "plots/": 1, + ".png": 1, + "task": 1, + "plant": 4, + "closed": 1, + "loop": 1, + "system": 2, + "u.": 1, + "gain": 1, + "guesses": 1, + "k1": 4, + "f": 13, + "k2": 3, + "k3": 3, + "k4": 4, + "identified": 1, + ".vaf": 1, + "wnm": 11, + "zetanm": 5, + "ss": 3, + "data.modelPar.A": 1, + "data.modelPar.B": 1, + "data.modelPar.C": 1, + "data.modelPar.D": 1, + "bicycle.StateName": 2, + "bicycle.OutputName": 4, + "bicycle.InputName": 2, + "analytic": 3, + "system_state_space": 2, + "numeric": 2, + "data.system.A": 1, + "data.system.B": 1, + "data.system.C": 1, + "data.system.D": 1, + "numeric.StateName": 1, + "data.bicycle.states": 1, + "numeric.InputName": 1, + "data.bicycle.inputs": 1, + "numeric.OutputName": 1, + "data.bicycle.outputs": 1, + "pzplot": 1, + "hold": 23, + "den": 15, + "ss2tf": 2, + "analytic.A": 3, + "analytic.B": 1, + "analytic.C": 1, + "analytic.D": 1, + "mine": 1, + "tf": 18, + "bode": 5, + "data.forceTF.PhiDot.num": 1, + "data.forceTF.PhiDot.den": 1, + "numeric.A": 2, + "numeric.B": 1, + "numeric.C": 1, + "numeric.D": 1, + "whipple_pull_force_ABCD": 1, + "bottomRow": 1, + "prod": 3, + "parser": 1, + "inputParser": 1, + "parser.addRequired": 1, + "parser.addParamValue": 3, + "true": 2, + "parser.parse": 1, + "args": 1, + "parser.Results": 1, + "raw": 1, + "load": 1, + "args.directory": 1, + "iddata": 1, + "raw.theta": 1, + "raw.theta_c": 1, + "args.sampleTime": 1, + "args.detrend": 1, + "detrend": 1, + "f_x_t": 2, + "inline": 1, + "grid_min": 3, + "grid_max": 3, + "grid_width": 1, + "grid_spacing": 5, + "grid_width/": 1, + "*grid_width/": 4, + "colorbar": 1, + "Earth": 2, + "Moon": 2, + "C_star": 1, + "C/2": 1, + "first": 3, + "orbit": 1, + "t0": 6, + "Y0": 6, + "x0": 4, + "y0": 2, + "vx0": 2, + "vy0": 2, + "l0": 1, + "delta_E0": 1, + "Hill": 1, + "Edgecolor": 1, + "none": 1, + "ok": 2, + "sg": 1, + "sr": 1, + "ret": 3, + "matlab_function": 5, + "disp": 8, + "Range": 1, + "E_0": 4, + "C_L1/2": 1, + "Y_0": 4, + "dx": 6, + "dvx": 3, + "dy": 5, + "/2": 3, + "de": 4, + "Definition": 1, + "arrays": 1, + "In": 1, + "this": 2, + "approach": 1, + "useful": 9, + "pints": 1, + "are": 1, + "stored": 1, + "v_y": 3, + "vx": 2, + "vy": 2, + "Selection": 1, + "Data": 2, + "transfer": 1, + "GPU": 3, + "x_gpu": 3, + "gpuArray": 4, + "y_gpu": 3, + "vx_gpu": 3, + "vy_gpu": 3, + "x_f": 3, + "y_f": 3, + "vx_f": 3, + "vy_f": 3, + "arrayfun": 2, + "@RKF45_FILE_gpu": 1, + "back": 1, + "CPU": 1, + "memory": 1, + "cleaning": 1, + "gather": 4, + "Construction": 1, + "computation": 2, + "X_T": 4, + "Y_T": 4, + "VX_T": 4, + "VY_T": 3, + "filter_ftle": 11, + "Compute_FILE_gpu": 1, + "Plot": 1, + "results": 1, + "squeeze": 1, + "arguments": 7, + "mod": 3, + "ischar": 1, + "options.": 1, + "adapting_structural_model": 2, + "u": 3, + "aux": 3, + "elseif": 14, + "aux.pars": 3, + "Yp": 2, + "human": 1, + "aux.timeDelay": 2, + "c1": 5, + "aux.m": 3, + "aux.b": 3, + "c2": 5, + "Yc": 5, + "parallel": 2, + "aux.plantFirst": 2, + "aux.plantSecond": 2, + "Ys": 1, + "feedback": 1, + "tf2ss": 1, + "Ys.num": 1, + "Ys.den": 1, + "global": 6, + "goldenRatio": 12, + "exist": 1, + "mkdir": 1, + "linestyles": 15, + "colors": 13, + "loop_shape_example": 3, + "data.Benchmark.Medium": 2, + "plot_io_roll": 3, + "open_loop_all_bikes": 1, + "handling_all_bikes": 1, + "path_plots": 1, + "var": 3, + "io": 7, + "typ": 3, + "plot_io": 1, + "phase_portraits": 2, + "eigenvalues": 2, + "bikeData": 2, + "figWidth": 24, + "figHeight": 19, + "set": 43, + "gcf": 17, + "freq": 12, + "closedLoops": 1, + "bikeData.closedLoops": 1, + "bops": 7, + "bodeoptions": 1, + "bops.FreqUnits": 1, + "gray": 7, + "deltaNum": 2, + "closedLoops.Delta.num": 1, + "deltaDen": 2, + "closedLoops.Delta.den": 1, + "bodeplot": 6, + "neuroNum": 2, + "neuroDen": 2, + "whichLines": 3, + "phiDotNum": 2, + "closedLoops.PhiDot.num": 1, + "phiDotDen": 2, + "closedLoops.PhiDot.den": 1, + "closedBode": 3, + "off": 10, + "opts": 4, + "getoptions": 2, + "opts.YLim": 3, + "opts.PhaseMatching": 2, + "opts.PhaseMatchingValue": 2, + "opts.Title.String": 2, + "setoptions": 2, + "lines": 17, + "findobj": 5, + "raise": 19, + "plotAxes": 22, + "curPos1": 4, + "get": 11, + "curPos2": 4, + "xLab": 8, + "legWords": 3, + "closeLeg": 2, + "legend": 7, + "axes": 9, + "db1": 4, + "text": 11, + "db2": 2, + "dArrow1": 2, + "annotation": 13, + "dArrow2": 2, + "dArrow": 2, + "print": 6, + "fix_ps_linestyle": 6, + "openLoops": 1, + "bikeData.openLoops": 1, + "openLoops.Phi.num": 1, + "openLoops.Phi.den": 1, + "openLoops.Psi.num": 1, + "openLoops.Psi.den": 1, + "openLoops.Y.num": 1, + "openLoops.Y.den": 1, + "openBode": 3, + "line": 15, + "wc": 14, + "wShift": 5, + "bikeData.handlingMetric.num": 1, + "bikeData.handlingMetric.den": 1, + "w": 6, + "mag": 4, + "phase": 2, + "metricLine": 1, + "Linewidth": 7, + "Color": 13, + "Linestyle": 6, + "Handling": 2, + "Quality": 2, + "Metric": 2, + "Frequency": 2, + "rad/s": 4, + "Level": 6, + "benchmark": 1, + "Handling.eps": 1, + "plots": 4, + "deps2": 1, + "loose": 4, + "PaperOrientation": 3, + "portrait": 3, + "PaperUnits": 3, + "inches": 3, + "PaperPositionMode": 3, + "manual": 3, + "PaperPosition": 3, + "PaperSize": 3, + "rad/sec": 1, + "Open": 1, + "Loop": 1, + "Bode": 1, + "Diagrams": 1, + "at": 3, + "m/s": 6, + "Latex": 1, + "LineStyle": 2, + "LineWidth": 2, + "Location": 2, + "Southwest": 1, + "Fontsize": 4, + "YColor": 2, + "XColor": 1, + "Position": 6, + "Xlabel": 1, + "Units": 1, + "normalized": 1, + "openBode.eps": 1, + "deps2c": 3, + "maxMag": 2, + "magnitudes": 1, + "area": 1, + "fillColors": 1, + "gca": 8, + "metricLines": 2, + ".handlingMetric.num": 1, + ".handlingMetric.den": 1, + "chil": 2, + "legLines": 1, + "Hands": 1, + "free": 1, + "@": 1, + "handling.eps": 1, + "YTick": 1, + "YTickLabel": 1, + "Path": 1, + "Southeast": 1, + "Distance": 1, + "Lateral": 1, + "Deviation": 1, + "paths.eps": 1, + "like": 1, + "plot.": 1, + "prettyNames": 3, + "units": 3, + "index": 6, + "variable": 10, + "fieldnames": 5, + "data.Browser": 1, + "maxValue": 4, + "oneSpeed": 3, + "history": 7, + "oneSpeed.": 3, + "round": 1, + "pad": 10, + "yShift": 16, + "xShift": 3, + "oneSpeed.time": 2, + "oneSpeed.speed": 2, + "xAxis": 12, + "xData": 3, + "textX": 3, + "ylim": 2, + "ticks": 4, + "xlabel": 8, + "xLimits": 6, + "xlim": 8, + "loc": 3, + "l1": 2, + "l2": 2, + "ylabel": 4, + "box": 4, + "x_r": 6, + "y_r": 6, + "w_r": 5, + "h_r": 5, + "rectangle": 2, + "w_r/2": 4, + "h_r/2": 4, + "x_a": 10, + "y_a": 10, + "w_a": 7, + "h_a": 5, + "ax": 15, + "rollData.speed": 1, + "rollData.time": 1, + "path": 3, + "rollData.path": 1, + "frontWheel": 3, + "rollData.outputs": 3, + "rollAngle": 4, + "steerAngle": 4, + "rollTorque": 4, + "rollData.inputs": 1, + "subplot": 3, + "h1": 5, + "h2": 5, + "plotyy": 3, + "inset": 3, + "gainChanges": 2, + "loopNames": 4, + "xy": 7, + "xySource": 7, + "xlabels": 2, + "ylabels": 2, + "legends": 3, + "floatSpec": 3, + "twentyPercent": 1, + "nominalData": 1, + "nominalData.": 2, + "bikeData.": 2, + "twentyPercent.": 2, + "leg1": 2, + "bikeData.modelPar.": 1, + "leg2": 2, + "twentyPercent.modelPar.": 1, + "eVals": 5, + "pathToParFile": 2, + "str": 2, + "eigenValues": 1, + "zeroIndices": 3, + "maxEvals": 4, + "maxLine": 7, + "minLine": 4, + "min": 1, + "speedInd": 12, + "Call": 2, + "which": 2, + "resides": 2, + "same": 2, + "directory": 2, + "value1": 4, + "semicolon": 2, + "mandatory": 2, + "suppresses": 2, + "command": 2, + "line.": 2, + "value2": 4, + "name": 4, + "convert_variable": 1, + "coordinates": 6, + "get_variables": 2, + "columns": 4, + "roots": 3, + "*mu": 6, + "c3": 3, + "RK4": 3, + "fun": 5, + "tspan": 7, + "th": 1, + "Runge": 1, + "Kutta": 1, + "dim": 2, + "while": 1, + "h/2": 2, + "k1*h/2": 1, + "k2*h/2": 1, + "h*k3": 1, + "h/6*": 1, + "*k2": 1, + "*k3": 1, + "filtfcn": 2, + "statefcn": 2, + "makeFilter": 1, + "@iirFilter": 1, + "@getState": 1, + "yn": 2, + "iirFilter": 1, + "xn": 4, + "vOut": 2, + "getState": 1, + "overrideSettings": 3, + "overrideNames": 2, + "defaultNames": 2, + "notGiven": 5, + "setxor": 1, + "settings.": 1, + "defaultSettings.": 1, + "choose_plant": 4, + "p": 7, + "cross_validation": 1, + "hyper_parameter": 3, + "num_data": 2, + "K": 4, + "indices": 2, + "crossvalind": 1, + "errors": 4, + "test_idx": 4, + "train_idx": 3, + "x_train": 2, + "y_train": 2, + "train": 1, + "x_test": 3, + "y_test": 3, + "calc_cost": 1, + "calc_error": 2, + "Transforming": 1, + "into": 1, + "Hamiltonian": 1, + "variables": 2, + "px_0": 2, + "py_0": 2, + "px_T": 4, + "py_T": 4, + "inf": 1, + "@cr3bp_jac": 1, + "@fH": 1, + "EnergyH": 1, + "t_integr": 1, + "Back": 1, + "Inf": 1, + "_e": 1, + "_H": 1, + "arg1": 1, + "arg": 2, + "RK4_par": 1, + "t1": 6, + "t2": 6, + "t3": 1, + "dataPlantOne": 3, + "dataAdapting": 3, + "dataPlantTwo": 3, + "guessPlantOne": 4, + "resultPlantOne": 1, + "find_structural_gains": 2, + "yh": 2, + "fit": 6, + "compare": 3, + "resultPlantOne.fit": 1, + "guessPlantTwo": 3, + "resultPlantTwo": 1, + "resultPlantTwo.fit": 1, + "resultPlantOne.fit.par": 1, + "resultPlantTwo.fit.par": 1, + "uses": 1, + "tau": 1, + "through": 1, + "wfs": 1, + "plantOneSlopeOffset": 3, + "plantTwoSlopeOffset": 3, + "idnlgrey": 1, + "pem": 1, + "delta_e": 3, + "Integrate_FTLE_Gawlick_ell": 1, + "ecc": 2, + "nu": 2, + "ecc*cos": 1, + "@f_ell": 1, + "Consider": 1, + "also": 1, + "negative": 1, + "goodness": 1, + "classdef": 1, + "matlab_class": 2, + "properties": 1, + "R": 1, + "G": 1, + "methods": 1, + "obj": 2, + "r": 2, + "obj.R": 2, + "obj.G": 2, + "obj.B": 2, + "enumeration": 1, + "red": 1, + "green": 1, + "blue": 1, + "cyan": 1, + "magenta": 1, + "yellow": 1, + "black": 1, + "white": 1 + }, + "Stata": { + "local": 6, + "inname": 1, + "outname": 1, + "MAXDIM": 1, + "{": 441, + "smcl": 1, + "}": 440, + "*": 25, + "version": 2, + "Matthew": 2, + "White": 2, + "jan2014": 1, + "...": 30, + "title": 7, + "Title": 1, + "phang": 4, + "cmd": 111, + "odkmeta": 17, + "hline": 1, + "Create": 4, + "a": 30, + "do": 22, + "-": 42, + "file": 18, + "to": 23, + "import": 9, + "ODK": 6, + "data": 4, + "marker": 10, + "syntax": 1, + "Syntax": 1, + "p": 2, + "using": 10, + "it": 61, + "help": 27, + "filename": 3, + "opt": 25, + "csv": 9, + "(": 60, + "csvfile": 3, + ")": 61, + "Using": 7, + "histogram": 2, + "as": 29, + "template.": 8, + "notwithstanding": 1, + "is": 31, + "rarely": 1, + "preceded": 3, + "by": 7, + "an": 6, + "underscore.": 1, + "cmdab": 5, + "s": 10, + "urvey": 2, + "surveyfile": 5, + "odkmeta##surveyopts": 2, + "surveyopts": 4, + "cho": 2, + "ices": 2, + "choicesfile": 4, + "odkmeta##choicesopts": 2, + "choicesopts": 5, + "[": 6, + "options": 1, + "]": 6, + "odbc": 2, + "the": 67, + "position": 1, + "of": 36, + "last": 1, + "character": 1, + "in": 24, + "first": 2, + "column": 18, + "+": 2, + "synoptset": 5, + "tabbed": 4, + "synopthdr": 4, + "synoptline": 8, + "syntab": 6, + "Main": 3, + "heckman": 2, + "p2coldent": 3, + "name": 20, + ".csv": 2, + "that": 21, + "contains": 3, + "p_end": 47, + "metadata": 5, + "from": 6, + "survey": 14, + "worksheet": 5, + "choices": 10, + "Fields": 2, + "synopt": 16, + "drop": 1, + "attrib": 2, + "headers": 8, + "not": 8, + "field": 25, + "attributes": 10, + "with": 10, + "keep": 1, + "only": 3, + "rel": 1, + "ax": 1, + "ignore": 1, + "fields": 7, + "exist": 1, + "Lists": 1, + "ca": 1, + "oth": 1, + "er": 1, + "odkmeta##other": 1, + "other": 14, + "Stata": 5, + "value": 14, + "values": 3, + "select": 6, + "or_other": 5, + ";": 15, + "default": 8, + "max": 2, + "one": 5, + "line": 4, + "write": 1, + "each": 7, + "list": 13, + "on": 7, + "single": 1, + "Options": 1, + "replace": 7, + "overwrite": 1, + "existing": 1, + "p2colreset": 4, + "and": 18, + "are": 13, + "required.": 1, + "Change": 1, + "t": 2, + "ype": 1, + "header": 15, + "type": 7, + "attribute": 10, + "la": 2, + "bel": 2, + "label": 9, + "d": 1, + "isabled": 1, + "disabled": 4, + "li": 1, + "stname": 1, + "list_name": 6, + "maximum": 3, + "plus": 2, + "min": 2, + "minimum": 2, + "minus": 1, + "#": 6, + "constant": 2, + "for": 13, + "all": 3, + "labels": 8, + "description": 1, + "Description": 1, + "pstd": 20, + "creates": 1, + "worksheets": 1, + "XLSForm.": 1, + "The": 9, + "saved": 1, + "completes": 2, + "following": 1, + "tasks": 3, + "order": 1, + "anova": 1, + "phang2": 23, + "o": 12, + "Import": 2, + "lists": 2, + "Add": 1, + "char": 4, + "characteristics": 4, + "Split": 1, + "select_multiple": 6, + "variables": 8, + "Drop": 1, + "note": 1, + "format": 1, + "Format": 1, + "date": 1, + "time": 1, + "datetime": 1, + "Attach": 2, + "variable": 14, + "notes": 1, + "merge": 3, + "Merge": 1, + "repeat": 6, + "groups": 4, + "After": 1, + "have": 2, + "been": 1, + "split": 4, + "can": 1, + "be": 12, + "removed": 1, + "without": 2, + "affecting": 1, + "tasks.": 1, + "User": 1, + "written": 2, + "supplements": 1, + "may": 2, + "make": 1, + "use": 3, + "any": 3, + "which": 6, + "imported": 4, + "characteristics.": 1, + "remarks": 1, + "Remarks": 1, + "uses": 3, + "helpb": 7, + "insheet": 4, + "data.": 1, + "long": 7, + "strings": 1, + "digits": 1, + "such": 2, + "simserial": 1, + "will": 9, + "numeric": 4, + "even": 1, + "if": 10, + "they": 2, + "more": 1, + "than": 3, + "digits.": 1, + "As": 1, + "result": 6, + "lose": 1, + "precision": 1, + ".": 22, + "makes": 1, + "limited": 1, + "mata": 1, + "Mata": 1, + "manage": 1, + "contain": 1, + "difficult": 1, + "characters.": 2, + "starts": 1, + "definitions": 1, + "several": 1, + "macros": 1, + "these": 4, + "constants": 1, + "uses.": 1, + "For": 4, + "instance": 1, + "macro": 1, + "datemask": 1, + "varname": 1, + "constraints": 1, + "names": 16, + "Further": 1, + "files": 1, + "often": 1, + "much": 1, + "longer": 1, + "length": 3, + "limit": 1, + "These": 2, + "differences": 1, + "convention": 1, + "lead": 1, + "three": 1, + "kinds": 1, + "problematic": 1, + "Long": 3, + "involve": 1, + "invalid": 1, + "combination": 1, + "characters": 3, + "example": 2, + "begins": 1, + "colon": 1, + "followed": 1, + "number.": 1, + "convert": 2, + "instead": 1, + "naming": 1, + "v": 6, + "concatenated": 1, + "positive": 1, + "integer": 1, + "v1": 1, + "unique": 1, + "but": 4, + "when": 1, + "converted": 3, + "truncated": 1, + "become": 3, + "duplicates.": 1, + "again": 1, + "names.": 6, + "form": 1, + "duplicates": 1, + "cannot": 2, + "chooses": 1, + "different": 1, + "Because": 1, + "problem": 2, + "recommended": 1, + "you": 1, + "If": 2, + "its": 3, + "characteristic": 2, + "odkmeta##Odk_bad_name": 1, + "Odk_bad_name": 3, + "otherwise": 1, + "Most": 1, + "depend": 1, + "There": 1, + "two": 2, + "exceptions": 1, + "variables.": 1, + "error": 4, + "has": 6, + "or": 7, + "splitting": 2, + "would": 1, + "duplicate": 4, + "reshape": 2, + "groups.": 1, + "there": 2, + "merging": 2, + "code": 1, + "datasets.": 1, + "Where": 1, + "renaming": 2, + "left": 1, + "user.": 1, + "section": 2, + "designated": 2, + "area": 2, + "renaming.": 3, + "In": 3, + "reshaping": 1, + "group": 4, + "own": 2, + "Many": 1, + "forms": 2, + "require": 1, + "others": 1, + "few": 1, + "need": 1, + "renamed": 1, + "should": 1, + "go": 1, + "areas.": 1, + "However": 1, + "some": 1, + "usually": 1, + "because": 1, + "many": 2, + "nested": 2, + "above": 1, + "this": 1, + "case": 1, + "work": 1, + "best": 1, + "Odk_group": 1, + "Odk_name": 1, + "Odk_is_other": 2, + "Odk_geopoint": 2, + "r": 2, + "varlist": 2, + "Odk_list_name": 2, + "foreach": 1, + "var": 5, + "*search": 1, + "n/a": 1, + "know": 1, + "don": 1, + "worksheet.": 1, + "requires": 1, + "comma": 1, + "separated": 2, + "text": 1, + "file.": 1, + "Strings": 1, + "embedded": 2, + "commas": 1, + "double": 3, + "quotes": 3, + "end": 4, + "must": 2, + "enclosed": 1, + "another": 1, + "quote.": 1, + "pmore": 5, + "Each": 1, + "header.": 1, + "Use": 1, + "suboptions": 1, + "specify": 1, + "alternative": 1, + "respectively.": 1, + "All": 1, + "used.": 1, + "standardized": 1, + "follows": 1, + "replaced": 9, + "select_one": 3, + "begin_group": 1, + "begin": 2, + "end_group": 1, + "begin_repeat": 1, + "end_repeat": 1, + "addition": 1, + "specified": 1, + "attaches": 1, + "pmore2": 3, + "formed": 1, + "concatenating": 1, + "elements": 1, + "Odk_repeat": 1, + "nested.": 1, + "geopoint": 2, + "component": 1, + "Latitude": 1, + "Longitude": 1, + "Altitude": 1, + "Accuracy": 1, + "blank.": 1, + "imports": 4, + "XLSForm": 1, + "list.": 1, + "one.": 1, + "specifies": 4, + "vary": 1, + "definition": 1, + "rather": 1, + "multiple": 1, + "delimit": 1, + "#delimit": 1, + "dlgtab": 1, + "Other": 1, + "already": 2, + "exists.": 1, + "examples": 1, + "Examples": 1, + "named": 1, + "import.do": 7, + "including": 1, + "survey.csv": 1, + "choices.csv": 1, + "txt": 6, + "Same": 3, + "previous": 3, + "command": 3, + "appears": 2, + "fieldname": 3, + "survey_fieldname.csv": 1, + "valuename": 2, + "choices_valuename.csv": 1, + "except": 1, + "hint": 2, + "dropattrib": 2, + "does": 1, + "_all": 1, + "acknowledgements": 1, + "Acknowledgements": 1, + "Lindsey": 1, + "Shaughnessy": 1, + "Innovations": 2, + "Poverty": 2, + "Action": 2, + "assisted": 1, + "almost": 1, + "aspects": 1, + "development.": 1, + "She": 1, + "collaborated": 1, + "structure": 1, + "program": 2, + "was": 1, + "very": 1, + "helpful": 1, + "tester": 1, + "contributed": 1, + "information": 1, + "about": 1, + "ODK.": 1, + "author": 1, + "Author": 1, + "mwhite@poverty": 1, + "action.org": 1, + "Setup": 1, + "sysuse": 1, + "auto": 1, + "Fit": 2, + "linear": 2, + "regression": 2, + "regress": 5, + "mpg": 1, + "weight": 4, + "foreign": 2, + "better": 1, + "physics": 1, + "standpoint": 1, + "gen": 1, + "gp100m": 2, + "/mpg": 1, + "Obtain": 1, + "beta": 2, + "coefficients": 1, + "refitting": 1, + "model": 1, + "Suppress": 1, + "intercept": 1, + "term": 1, + "noconstant": 1, + "Model": 1, + "bn.foreign": 1, + "hascons": 1, + "hello": 1, + "vers": 1, + "display": 1, + "matrix": 3, + "tanh": 1, + "u": 3, + "eu": 4, + "emu": 4, + "exp": 2, + "return": 1, + "/": 1, + "mar2014": 1, + "Hello": 1, + "world": 1 + }, + "Common Lisp": { + ";": 162, + "-": 171, + "*": 4, + "lisp": 2, + "(": 379, + "in": 24, + "package": 2, + "foo": 4, + ")": 386, + "Header": 2, + "comment.": 8, + "defvar": 5, + "*foo*": 2, + "eval": 7, + "when": 5, + "execute": 2, + "compile": 2, + "toplevel": 4, + "load": 2, + "defun": 24, + "add": 2, + "x": 52, + "&": 11, + "optional": 3, + "y": 4, + "key": 2, + "z": 4, + "declare": 2, + "ignore": 2, + "Inline": 2, + "+": 37, + "or": 5, + "#": 17, + "|": 11, + "Multi": 2, + "line": 4, + "defmacro": 6, + "body": 9, + "b": 7, + "if": 15, + "After": 2, + "@file": 1, + "macros": 2, + "advanced.cl": 1, + "@breif": 1, + "Advanced": 1, + "macro": 5, + "practices": 1, + "defining": 1, + "your": 1, + "own": 1, + "Macro": 1, + "definition": 1, + "skeleton": 1, + "name": 6, + "parameter*": 1, + "form*": 1, + "Note": 2, + "that": 5, + "backquote": 1, + "expression": 2, + "is": 6, + "most": 2, + "often": 1, + "used": 2, + "the": 35, + "form": 1, + "primep": 4, + "test": 1, + "a": 7, + "number": 2, + "for": 3, + "prime": 12, + "n": 8, + "<": 1, + "return": 3, + "from": 8, + "do": 9, + "i": 8, + "p": 10, + "t": 7, + "not": 6, + "zerop": 1, + "mod": 1, + "sqrt": 1, + "next": 11, + "bigger": 1, + "than": 1, + "specified": 2, + "The": 2, + "recommended": 1, + "procedures": 1, + "to": 4, + "writting": 1, + "new": 6, + "are": 2, + "as": 1, + "follows": 1, + "Write": 2, + "sample": 2, + "call": 2, + "and": 12, + "code": 2, + "it": 2, + "should": 1, + "expand": 1, + "into": 2, + "primes": 3, + "format": 3, + "Expected": 1, + "expanded": 1, + "codes": 1, + "generate": 1, + "hardwritten": 1, + "expansion": 2, + "arguments": 1, + "var": 49, + "range": 4, + "rest": 5, + "let": 6, + "first": 5, + "start": 5, + "second": 3, + "end": 8, + "third": 2, + "@body": 4, + "More": 1, + "concise": 1, + "implementations": 1, + "with": 7, + "synonym": 1, + "also": 1, + "emits": 1, + "more": 1, + "friendly": 1, + "messages": 1, + "on": 1, + "incorrent": 1, + "input.": 1, + "Test": 1, + "result": 1, + "of": 3, + "macroexpand": 2, + "function": 2, + "gensyms": 4, + "value": 8, + "Define": 1, + "note": 1, + "how": 1, + "comma": 1, + "interpolate": 1, + "loop": 2, + "names": 2, + "collect": 1, + "gensym": 1, + "ESCUELA": 1, + "POLITECNICA": 1, + "SUPERIOR": 1, + "UNIVERSIDAD": 1, + "AUTONOMA": 1, + "DE": 1, + "MADRID": 1, + "INTELIGENCIA": 1, + "ARTIFICIAL": 1, + "Motor": 1, + "de": 2, + "inferencia": 1, + "Basado": 1, + "en": 2, + "parte": 1, + "Peter": 1, + "Norvig": 1, + "Global": 1, + "variables": 6, + "*hypothesis": 1, + "list*": 7, + "*rule": 4, + "*fact": 2, + "Constants": 1, + "defconstant": 2, + "fail": 10, + "nil": 3, + "no": 6, + "bindings": 45, + "lambda": 4, + "mapcar": 2, + "man": 3, + "luis": 1, + "pedro": 1, + "woman": 2, + "mart": 1, + "daniel": 1, + "laura": 1, + "facts": 1, + "aux": 3, + "unify": 12, + "hypothesis": 10, + "list": 9, + "____________________________________________________________________________": 5, + "FUNCTION": 3, + "FIND": 1, + "RULES": 2, + "COMMENTS": 3, + "Returns": 2, + "rules": 5, + "whose": 1, + "THENs": 1, + "term": 1, + "given": 3, + "": 2, + "satisfy": 1, + "this": 1, + "requirement": 1, + "renamed.": 1, + "EXAMPLES": 2, + "setq": 1, + "renamed": 3, + "rule": 17, + "rename": 1, + "then": 7, + "unless": 3, + "null": 1, + "equal": 4, + "VALUE": 1, + "FROM": 1, + "all": 2, + "solutions": 1, + "found": 5, + "using": 1, + "": 1, + ".": 10, + "single": 1, + "can": 4, + "have": 1, + "multiple": 1, + "solutions.": 1, + "mapcan": 1, + "R1": 2, + "pertenece": 3, + "E": 4, + "_": 8, + "R2": 2, + "Xs": 2, + "Then": 1, + "EVAL": 2, + "RULE": 2, + "PERTENECE": 6, + "E.42": 2, + "returns": 4, + "NIL": 3, + "That": 2, + "query": 4, + "be": 2, + "proven": 2, + "binding": 17, + "necessary": 2, + "fact": 4, + "has": 1, + "On": 1, + "other": 1, + "hand": 1, + "E.49": 2, + "XS.50": 2, + "R2.": 1, + "ifs": 1, + "NOT": 2, + "question": 1, + "T": 1, + "equality": 2, + "UNIFY": 1, + "Finds": 1, + "general": 1, + "unifier": 1, + "two": 2, + "input": 2, + "expressions": 2, + "taking": 1, + "account": 1, + "": 1, + "In": 1, + "case": 1, + "total": 1, + "unification.": 1, + "Otherwise": 1, + "which": 1, + "constant": 1, + "anonymous": 4, + "make": 4, + "variable": 6, + "Auxiliary": 1, + "Functions": 1, + "cond": 3, + "get": 5, + "lookup": 5, + "occurs": 5, + "extend": 2, + "symbolp": 2, + "eql": 2, + "char": 2, + "symbol": 2, + "assoc": 1, + "car": 2, + "val": 6, + "cdr": 2, + "cons": 2, + "append": 1, + "eq": 7, + "consp": 2, + "subst": 3, + "listp": 1, + "exp": 1, + "unique": 3, + "find": 6, + "anywhere": 6, + "predicate": 8, + "tree": 11, + "so": 4, + "far": 4, + "atom": 3, + "funcall": 2, + "pushnew": 1, + "gentemp": 2, + "quote": 3, + "s/reuse": 1, + "cons/cons": 1, + "expresion": 2, + "some": 1, + "EOF": 1 + }, + "RDoc": { + "RDoc": 7, + "-": 9, + "Ruby": 4, + "Documentation": 2, + "System": 1, + "home": 1, + "https": 3, + "//github.com/rdoc/rdoc": 1, + "rdoc": 7, + "http": 1, + "//docs.seattlerb.org/rdoc": 1, + "bugs": 1, + "//github.com/rdoc/rdoc/issues": 1, + "code": 1, + "quality": 1, + "{": 1, + "": 1, + "src=": 1, + "alt=": 1, + "}": 1, + "[": 3, + "//codeclimate.com/github/rdoc/rdoc": 1, + "]": 3, + "Description": 1, + "produces": 1, + "HTML": 1, + "and": 9, + "command": 4, + "line": 1, + "documentation": 8, + "for": 9, + "projects.": 1, + "includes": 1, + "the": 12, + "+": 8, + "ri": 1, + "tools": 1, + "generating": 1, + "displaying": 1, + "from": 1, + "line.": 1, + "Generating": 1, + "Once": 1, + "installed": 1, + "you": 3, + "can": 2, + "create": 1, + "using": 1, + "options": 1, + "names...": 1, + "For": 1, + "an": 1, + "up": 1, + "to": 4, + "date": 1, + "option": 1, + "summary": 1, + "type": 2, + "help": 1, + "A": 1, + "typical": 1, + "use": 1, + "might": 1, + "be": 3, + "generate": 1, + "a": 5, + "package": 1, + "of": 2, + "source": 2, + "(": 3, + "such": 1, + "as": 1, + "itself": 1, + ")": 3, + ".": 2, + "This": 2, + "generates": 1, + "all": 1, + "C": 1, + "files": 2, + "in": 4, + "below": 1, + "current": 1, + "directory.": 1, + "These": 1, + "will": 1, + "stored": 1, + "tree": 1, + "starting": 1, + "subdirectory": 1, + "doc": 1, + "You": 2, + "make": 2, + "this": 1, + "slightly": 1, + "more": 1, + "useful": 1, + "your": 1, + "readers": 1, + "by": 1, + "having": 1, + "index": 1, + "page": 1, + "contain": 1, + "primary": 1, + "file.": 1, + "In": 1, + "our": 1, + "case": 1, + "we": 1, + "could": 1, + "#": 1, + "rdoc/rdoc": 1, + "s": 1, + "OK": 1, + "file": 1, + "bug": 1, + "report": 1, + "anything": 1, + "t": 1, + "figure": 1, + "out": 1, + "how": 1, + "produce": 1, + "output": 1, + "like": 1, + "that": 1, + "is": 4, + "probably": 1, + "bug.": 1, + "License": 1, + "Copyright": 1, + "c": 2, + "Dave": 1, + "Thomas": 1, + "The": 1, + "Pragmatic": 1, + "Programmers.": 1, + "Portions": 2, + "Eric": 1, + "Hodel.": 1, + "copyright": 1, + "others": 1, + "see": 1, + "individual": 1, + "LEGAL.rdoc": 1, + "details.": 1, + "free": 1, + "software": 2, + "may": 1, + "redistributed": 1, + "under": 1, + "terms": 1, + "specified": 1, + "LICENSE.rdoc.": 1, + "Warranty": 1, + "provided": 1, + "without": 2, + "any": 1, + "express": 1, + "or": 1, + "implied": 2, + "warranties": 2, + "including": 1, + "limitation": 1, + "merchantability": 1, + "fitness": 1, + "particular": 1, + "purpose.": 1 + }, + "Stylus": { + "border": 6, + "-": 10, + "radius": 5, + "(": 1, + ")": 1, + "webkit": 1, + "arguments": 3, + "moz": 1, + "a.button": 1, + "px": 5, + "fonts": 2, + "helvetica": 1, + "arial": 1, + "sans": 1, + "serif": 1, + "body": 1, + "{": 1, + "padding": 3, + ";": 2, + "font": 1, + "px/1.4": 1, + "}": 1, + "form": 2, + "input": 2, + "[": 2, + "type": 2, + "text": 2, + "]": 2, + "solid": 1, + "#eee": 1, + "color": 2, + "#ddd": 1, + "textarea": 1, + "@extends": 2, + "foo": 2, + "#FFF": 1, + ".bar": 1, + "background": 1, + "#000": 1 + }, + "wisp": { + ";": 199, + "#": 2, + "wisp": 6, + "Wisp": 13, + "is": 20, + "homoiconic": 1, + "JS": 17, + "dialect": 1, + "with": 6, + "a": 24, + "clojure": 2, + "syntax": 2, + "s": 7, + "-": 33, + "expressions": 6, + "and": 9, + "macros.": 1, + "code": 3, + "compiles": 1, + "to": 21, + "human": 1, + "readable": 1, + "javascript": 1, + "which": 3, + "one": 3, + "of": 16, + "they": 3, + "key": 3, + "differences": 1, + "from": 2, + "clojurescript.": 1, + "##": 2, + "data": 1, + "structures": 1, + "nil": 4, + "just": 3, + "like": 2, + "js": 1, + "undefined": 1, + "differenc": 1, + "that": 7, + "it": 10, + "shortcut": 1, + "for": 5, + "void": 2, + "(": 77, + ")": 75, + "in": 16, + "JS.": 2, + "Booleans": 1, + "booleans": 2, + "true": 6, + "/": 1, + "false": 2, + "are": 14, + "Numbers": 1, + "numbers": 2, + "Strings": 2, + "strings": 3, + "can": 13, + "be": 15, + "multiline": 1, + "Characters": 2, + "sugar": 1, + "single": 1, + "char": 1, + "Keywords": 3, + "symbolic": 2, + "identifiers": 2, + "evaluate": 2, + "themselves.": 1, + "keyword": 1, + "Since": 1, + "string": 1, + "constats": 1, + "fulfill": 1, + "this": 2, + "purpose": 2, + "keywords": 1, + "compile": 3, + "equivalent": 2, + "strings.": 1, + "window.addEventListener": 1, + "load": 1, + "handler": 1, + "invoked": 2, + "as": 4, + "functions": 8, + "desugars": 1, + "plain": 2, + "associated": 2, + "value": 2, + "access": 1, + "bar": 4, + "foo": 6, + "[": 22, + "]": 22, + "Vectors": 1, + "vectors": 1, + "arrays.": 1, + "Note": 3, + "Commas": 2, + "white": 1, + "space": 1, + "&": 6, + "used": 1, + "if": 7, + "desired": 1, + "Maps": 2, + "hash": 1, + "maps": 1, + "objects.": 1, + "unlike": 1, + "keys": 1, + "not": 4, + "arbitary": 1, + "types.": 1, + "{": 4, + "beep": 1, + "bop": 1, + "}": 4, + "optional": 2, + "but": 7, + "come": 1, + "handy": 1, + "separating": 1, + "pairs.": 1, + "b": 5, + "In": 5, + "future": 2, + "JSONs": 1, + "may": 1, + "made": 2, + "compatible": 1, + "map": 3, + "syntax.": 1, + "Lists": 1, + "You": 1, + "up": 1, + "lists": 1, + "representing": 1, + "expressions.": 1, + "The": 1, + "first": 4, + "item": 2, + "the": 9, + "expression": 6, + "function": 7, + "being": 1, + "rest": 7, + "items": 2, + "arguments.": 2, + "baz": 2, + "Conventions": 1, + "puts": 1, + "lot": 2, + "effort": 1, + "making": 1, + "naming": 1, + "conventions": 3, + "transparent": 1, + "by": 2, + "encouraning": 1, + "lisp": 1, + "then": 1, + "translating": 1, + "them": 1, + "dash": 1, + "delimited": 1, + "dashDelimited": 1, + "predicate": 1, + "isPredicate": 1, + "__privates__": 1, + "list": 2, + "vector": 1, + "listToVector": 1, + "As": 1, + "side": 2, + "effect": 1, + "some": 2, + "names": 1, + "expressed": 3, + "few": 1, + "ways": 1, + "although": 1, + "third": 2, + "expression.": 1, + "<": 1, + "number": 3, + "Else": 1, + "missing": 1, + "conditional": 1, + "evaluates": 2, + "result": 2, + "will": 6, + ".": 6, + "monday": 1, + "today": 1, + "Compbining": 1, + "everything": 1, + "an": 1, + "sometimes": 1, + "might": 1, + "want": 2, + "compbine": 1, + "multiple": 1, + "into": 2, + "usually": 3, + "evaluating": 1, + "have": 2, + "effects": 1, + "do": 4, + "console.log": 2, + "+": 9, + "Also": 1, + "special": 4, + "form": 10, + "many.": 1, + "If": 2, + "evaluation": 1, + "nil.": 1, + "Bindings": 1, + "Let": 1, + "containing": 1, + "lexical": 1, + "context": 1, + "simbols": 1, + "bindings": 1, + "forms": 1, + "bound": 1, + "their": 2, + "respective": 1, + "results.": 1, + "let": 2, + "c": 1, + "Functions": 1, + "fn": 15, + "x": 22, + "named": 1, + "similar": 2, + "increment": 1, + "also": 2, + "contain": 1, + "documentation": 1, + "metadata.": 1, + "Docstring": 1, + "metadata": 1, + "presented": 1, + "compiled": 2, + "yet": 1, + "comments": 1, + "function.": 1, + "incerement": 1, + "added": 1, + "makes": 1, + "capturing": 1, + "arguments": 7, + "easier": 1, + "than": 1, + "argument": 1, + "follows": 1, + "simbol": 1, + "capture": 1, + "all": 4, + "args": 1, + "array.": 1, + "rest.reduce": 1, + "sum": 3, + "Overloads": 1, + "overloaded": 1, + "depending": 1, + "on": 1, + "take": 2, + "without": 2, + "introspection": 1, + "version": 1, + "y": 6, + "more": 3, + "more.reduce": 1, + "does": 1, + "has": 2, + "variadic": 1, + "overload": 1, + "passed": 1, + "throws": 1, + "exception.": 1, + "Other": 1, + "Special": 1, + "Forms": 1, + "Instantiation": 1, + "type": 2, + "instantiation": 1, + "consice": 1, + "needs": 1, + "suffixed": 1, + "character": 1, + "Type.": 1, + "options": 2, + "More": 1, + "verbose": 1, + "there": 1, + "new": 2, + "Class": 1, + "Method": 1, + "calls": 3, + "method": 2, + "no": 1, + "different": 1, + "Any": 1, + "quoted": 1, + "prevent": 1, + "doesn": 1, + "t": 1, + "unless": 5, + "or": 2, + "macro": 7, + "try": 1, + "implemting": 1, + "understand": 1, + "use": 2, + "case": 1, + "We": 1, + "execute": 1, + "body": 4, + "condition": 4, + "defn": 2, + "Although": 1, + "following": 2, + "log": 1, + "anyway": 1, + "since": 1, + "exectued": 1, + "before": 1, + "called.": 1, + "Macros": 2, + "solve": 1, + "problem": 1, + "because": 1, + "immediately.": 1, + "Instead": 1, + "you": 1, + "get": 2, + "choose": 1, + "when": 1, + "evaluated.": 1, + "return": 1, + "instead.": 1, + "defmacro": 3, + "less": 1, + "how": 1, + "build": 1, + "implemented.": 1, + "define": 4, + "name": 2, + "def": 1, + "@body": 1, + "Now": 1, + "we": 2, + "above": 1, + "defined": 1, + "expanded": 2, + "time": 1, + "resulting": 1, + "diff": 1, + "program": 1, + "output.": 1, + "print": 1, + "message": 2, + ".log": 1, + "console": 1, + "Not": 1, + "macros": 2, + "via": 2, + "templating": 1, + "language": 1, + "available": 1, + "at": 1, + "hand": 1, + "assemble": 1, + "form.": 1, + "For": 2, + "instance": 1, + "ease": 1, + "functional": 1, + "chanining": 1, + "popular": 1, + "chaining.": 1, + "example": 1, + "API": 1, + "pioneered": 1, + "jQuery": 1, + "very": 2, + "common": 1, + "open": 2, + "target": 1, + "keypress": 2, + "filter": 2, + "isEnterKey": 1, + "getInputText": 1, + "reduce": 3, + "render": 2, + "Unfortunately": 1, + "though": 1, + "requires": 1, + "need": 1, + "methods": 1, + "dsl": 1, + "object": 1, + "limited.": 1, + "Making": 1, + "party": 1, + "second": 1, + "class.": 1, + "Via": 1, + "achieve": 1, + "chaining": 1, + "such": 1, + "tradeoffs.": 1, + "operations": 3, + "operation": 3, + "cons": 2, + "tagret": 1, + "enter": 1, + "input": 1, + "text": 1 + }, + "Turing": { + "function": 1, + "factorial": 4, + "(": 3, + "n": 9, + "int": 2, + ")": 3, + "real": 1, + "if": 2, + "then": 1, + "result": 2, + "else": 1, + "*": 1, + "-": 1, + "end": 3, + "var": 1, + "loop": 2, + "put": 3, + "..": 1, + "get": 1, + "exit": 1, + "when": 1 + }, + "Arduino": { + "void": 2, + "setup": 1, + "(": 4, + ")": 4, + "{": 2, + "Serial.begin": 1, + ";": 2, + "}": 2, + "loop": 1, + "Serial.print": 1 + }, + "Alloy": { + "module": 3, + "examples/systems/views": 1, + "open": 2, + "util/ordering": 1, + "[": 82, + "State": 16, + "]": 80, + "as": 2, + "so": 1, + "util/relation": 1, + "rel": 1, + "sig": 20, + "Ref": 19, + "{": 54, + "}": 60, + "Object": 10, + "-": 41, + "t": 16, + "b": 13, + "v": 25, + "in": 19, + "views": 2, + "when": 1, + "is": 1, + "view": 2, + "of": 3, + "type": 1, + "backing": 1, + "dirty": 3, + "contains": 1, + "refs": 7, + "that": 1, + "have": 1, + "been": 1, + "invalidated": 1, + "set": 10, + "obj": 1, + "one": 8, + "ViewType": 8, + "anyviews": 2, + "for": 7, + "visualization": 1, + "ViewType.views": 1, + "Map": 2, + "extends": 10, + "keys": 3, + "map": 2, + "all": 16, + "s": 6, + "|": 19, + "+": 14, + "Ref.map": 1, + "s.refs": 3, + "MapRef": 4, + "fact": 4, + "State.obj": 3, + "Iterator": 2, + "left": 3, + "done": 3, + "lastRef": 2, + "lone": 6, + "IteratorRef": 5, + "Set": 2, + "elts": 2, + "SetRef": 5, + "abstract": 2, + "KeySetView": 6, + "State.views": 1, + "IteratorView": 3, + "s.views": 2, + "(": 12, + "handle": 1, + "possibility": 1, + "modifying": 1, + "an": 1, + "object": 1, + "and": 1, + "its": 1, + "at": 1, + "once": 1, + "*": 1, + "should": 1, + "we": 1, + "limit": 1, + "frame": 1, + "conds": 1, + "to": 1, + "non": 1, + "*/": 1, + "pred": 16, + "modifies": 5, + "pre": 15, + "post": 14, + "rs": 4, + "let": 5, + "vr": 1, + "pre.views": 8, + "mods": 3, + "rs.*vr": 1, + "r": 3, + "pre.refs": 6, + "pre.obj": 10, + "post.obj": 7, + "viewFrame": 4, + "post.dirty": 1, + "pre.dirty": 1, + "some": 3, + "&&": 2, + "allocates": 5, + "no": 8, + "&": 3, + "post.refs": 1, + ".map": 3, + ".elts": 3, + "dom": 1, + ")": 9, + "<:>": 1, + ".left": 5, + "setRefs": 1, + "this": 14, + "MapRef.put": 1, + "k": 5, + "none": 4, + "post.views": 4, + "SetRef.iterator": 1, + "iterRef": 4, + "i": 7, + "i.left": 3, + "i.done": 1, + "i.lastRef": 1, + "IteratorRef.remove": 1, + ".lastRef": 2, + "IteratorRef.next": 1, + "ref": 3, + "IteratorRef.hasNext": 1, + "s.obj": 1, + "assert": 3, + "zippishOK": 2, + "ks": 6, + "vs": 6, + "m": 4, + "ki": 2, + "vi": 2, + "s0": 4, + "so/first": 1, + "s1": 4, + "so/next": 7, + "s2": 6, + "s3": 4, + "s4": 4, + "s5": 4, + "s6": 4, + "s7": 2, + "precondition": 2, + "s0.dirty": 1, + "ks.iterator": 1, + "vs.iterator": 1, + "ki.hasNext": 1, + "vi.hasNext": 1, + "ki.this/next": 1, + "vi.this/next": 1, + "m.put": 1, + "ki.remove": 1, + "vi.remove": 1, + "State.dirty": 1, + "ViewType.pre.views": 2, + "check": 6, + "but": 1, + "expect": 6, + "#s.obj": 1, + "<": 1, + "examples/systems/file_system": 1, + "Name": 2, + "File": 1, + "d": 3, + "Dir": 8, + "d.entries.contents": 1, + "entries": 3, + "DirEntry": 2, + "parent": 3, + "this.": 4, + "@contents.": 1, + "@entries": 1, + "e1": 2, + "e2": 2, + "e1.name": 1, + "e2.name": 1, + "@parent": 2, + "Root": 5, + "Cur": 1, + "name": 1, + "contents": 2, + "OneParent_buggyVersion": 2, + "d.parent": 2, + "OneParent_correctVersion": 2, + "contents.d": 1, + "NoDirAliases": 3, + "o": 1, + "o.": 1, + "examples/systems/marksweepgc": 1, + "Node": 10, + "HeapState": 5, + "right": 1, + "marked": 1, + "freeList": 1, + "clearMarks": 1, + "hs": 16, + ".marked": 3, + ".right": 4, + "hs.right": 3, + "fun": 1, + "reachable": 1, + "n": 5, + "n.": 1, + "hs.left": 2, + "mark": 1, + "from": 2, + "hs.reachable": 1, + "setFreeList": 1, + ".freeList.*": 3, + "hs.marked": 1, + "GC": 1, + "root": 5, + "Soundness1": 2, + "h": 9, + "live": 3, + "h.reachable": 1, + "h.right": 1, + "Soundness2": 2, + ".reachable": 2, + "h.GC": 1, + ".freeList": 1, + "Completeness": 1 + }, + "OpenCL": { + "double": 3, + "run_fftw": 1, + "(": 18, + "int": 3, + "n": 4, + "const": 4, + "float": 3, + "*": 5, + "x": 5, + "y": 4, + ")": 18, + "{": 4, + "fftwf_plan": 1, + "p1": 3, + "fftwf_plan_dft_1d": 1, + "fftwf_complex": 2, + "FFTW_FORWARD": 1, + "FFTW_ESTIMATE": 1, + ";": 12, + "nops": 3, + "t": 4, + "cl": 2, + "realTime": 2, + "for": 1, + "op": 3, + "<": 1, + "+": 4, + "fftwf_execute": 1, + "}": 4, + "-": 1, + "/": 1, + "fftwf_destroy_plan": 1, + "return": 1, + "typedef": 1, + "foo_t": 3, + "#ifndef": 1, + "ZERO": 3, + "#define": 2, + "#endif": 1, + "FOO": 1, + "__kernel": 1, + "void": 1, + "foo": 1, + "__global": 1, + "__local": 1, + "uint": 1, + "barrier": 1, + "CLK_LOCAL_MEM_FENCE": 1, + "if": 1, + "*x": 1 + }, + "JSONLD": { + "{": 7, + "}": 7, + "[": 1, + "null": 2, + "]": 1 + }, + "Makefile": { + "SHEBANG#!make": 1, + "%": 1, + "ls": 1, + "-": 6, + "l": 1, + "all": 1, + "hello": 4, + "main.o": 3, + "factorial.o": 3, + "hello.o": 3, + "g": 4, + "+": 8, + "o": 1, + "main.cpp": 2, + "c": 3, + "factorial.cpp": 2, + "hello.cpp": 2, + "clean": 1, + "rm": 1, + "rf": 1, + "*o": 1 + }, "M": { - "%": 207, - "zewdAPI": 52, - ";": 1309, - "Enterprise": 5, - "Web": 5, - "Developer": 5, - "run": 2, - "-": 1605, - "time": 9, - "functions": 4, - "and": 59, - "user": 27, - "APIs": 1, - "Product": 2, + "compute": 2, "(": 2144, - "Build": 6, + "miles": 4, + "gallons": 4, ")": 2152, - "Date": 2, - "Fri": 1, - "Nov": 1, + "quit": 30, + "miles/gallons": 1, + "computepesimist": 1, + "miles/": 1, + "+": 189, + "computeoptimist": 1, + "/gallons": 1, + "MDB": 60, + ";": 1309, + "M/DB": 2, + "Mumps": 1, + "Emulation": 1, + "of": 84, + "Amazon": 1, + "SimpleDB": 1, + "-": 1605, "|": 171, - "for": 77, - "GT.M": 30, - "m_apache": 3, "Copyright": 12, "c": 113, "M/Gateway": 4, @@ -34909,7 +43322,6 @@ "under": 14, "the": 223, "terms": 11, - "of": 84, "GNU": 33, "Affero": 33, "General": 33, @@ -34952,6 +43364,7 @@ "PARTICULAR": 11, "PURPOSE.": 11, "See": 15, + "for": 77, "more": 13, "details.": 12, "You": 13, @@ -34970,759 +43383,19 @@ "": 11, ".": 815, "QUIT": 251, - "_": 127, - "getVersion": 1, - "zewdCompiler": 6, - "date": 1, - "getDate": 1, - "compilePage": 2, - "app": 13, - "page": 12, - "mode": 12, - "technology": 9, - "outputPath": 4, - "multilingual": 4, - "maxLines": 4, - "d": 381, - "g": 228, - "compileAll": 2, - "templatePageName": 2, - "autoTranslate": 2, - "language": 6, - "verbose": 2, - "zewdMgr": 1, - "startSession": 2, - "requestArray": 2, - "serverArray": 1, - "sessionArray": 5, - "filesArray": 1, - "zewdPHP": 8, - ".requestArray": 2, - ".serverArray": 1, - ".sessionArray": 3, - ".filesArray": 1, - "closeSession": 2, - "saveSession": 2, - "endOfPage": 2, - "prePageScript": 2, - "sessid": 146, - "releaseLock": 2, - "tokeniseURL": 2, - "url": 2, - "zewdCompiler16": 5, - "getSessid": 1, - "token": 21, - "i": 465, - "isTokenExpired": 2, - "p": 84, - "zewdSession": 39, - "initialiseSession": 1, - "k": 122, - "deleteSession": 2, - "changeApp": 1, - "appName": 4, - "setSessionValue": 6, - "setRedirect": 1, - "toPage": 1, - "e": 210, - "n": 197, - "path": 4, - "s": 775, - "getRootURL": 1, - "l": 84, - "zewd": 17, - "trace": 24, - "_sessid_": 3, - "_token_": 1, - "_nextPage": 1, - "zcvt": 11, - "nextPage": 1, - "isNextPageTokenValid": 2, - "zewdCompiler13": 10, - "isCSP": 1, - "normaliseTextValue": 1, - "text": 6, - "replaceAll": 11, - "writeLine": 2, - "line": 14, - "CacheTempBuffer": 2, - "j": 67, - "increment": 11, - "w": 127, - "displayOptions": 2, - "fieldName": 5, - "listName": 6, - "escape": 7, - "codeValue": 7, - "name": 121, - "nnvp": 1, - "nvp": 1, - "pos": 33, - "textValue": 6, - "value": 72, - "getSessionValue": 3, - "tr": 13, - "+": 189, - "f": 93, - "o": 51, - "q": 244, - "codeValueEsc": 7, - "textValueEsc": 7, - "htmlOutputEncode": 2, - "zewdAPI2": 5, - "_codeValueEsc_": 1, - "selected": 4, - "translationMode": 1, - "_appName": 1, - "typex": 1, - "type": 2, - "avoid": 1, - "Cache": 3, - "bug": 2, - "getPhraseIndex": 1, - "zewdCompiler5": 1, - "licensed": 1, - "setWarning": 2, - "isTemp": 11, - "setWLDSymbol": 1, - "Duplicate": 1, - "performance": 1, - "also": 4, - "wldAppName": 1, - "wldName": 1, - "wldSessid": 1, - "zzname": 1, - "zv": 6, - "[": 54, - "extcErr": 1, - "mess": 3, - "namespace": 1, - "zt": 20, - "valueErr": 1, - "exportCustomTags": 2, - "tagList": 1, - "filepath": 10, - ".tagList": 1, - "exportAllCustomTags": 2, - "importCustomTags": 2, - "filePath": 2, - "zewdForm": 1, - "stripSpaces": 6, - "np": 17, - "obj": 6, - "prop": 6, - "setSessionObject": 3, - "allowJSONAccess": 1, - "sessionName": 30, - "access": 21, - "disallowJSONAccess": 1, - "JSONAccess": 1, - "existsInSession": 2, - "existsInSessionArray": 2, - "p1": 5, - "p2": 10, - "p3": 3, - "p4": 2, - "p5": 2, - "p6": 2, - "p7": 2, - "p8": 2, - "p9": 2, - "p10": 2, - "p11": 2, - "clearSessionArray": 1, - "arrayName": 35, - "setSessionArray": 1, - "itemName": 16, - "itemValue": 7, - "getSessionArray": 1, - "array": 22, - "clearArray": 2, - "set": 98, - "m": 37, - "getSessionArrayErr": 1, - "Come": 1, - "here": 4, - "if": 44, - "error": 62, - "occurred": 2, - "addToSession": 2, - "@name": 4, - "mergeToSession": 1, - "mergeGlobalToSession": 2, - "globalName": 7, - "mergeGlobalFromSession": 2, - "mergeArrayToSession": 1, - "mergeArrayToSessionObject": 2, - ".array": 1, - "mergeArrayFromSession": 1, - "mergeFromSession": 1, - "deleteFromSession": 1, - "deleteFromSessionObject": 1, - "sessionNameExists": 1, - "getSessionArrayValue": 2, - "subscript": 7, - "exists": 6, - ".exists": 1, - "sessionArrayValueExists": 2, - "deleteSessionArrayValue": 2, - "Objects": 1, - "objectName": 13, - "propertyName": 3, - "propertyValue": 5, - "comma": 3, - "x": 96, - "replace": 27, - "objectName_": 2, - "_propertyName": 2, - "_propertyName_": 2, - "_propertyValue_": 1, - "_p": 1, - "quoted": 1, - "string": 50, - "FromStr": 6, - "S": 99, - "ToStr": 4, - "InText": 4, - "old": 3, - "new": 15, - "ok": 14, - "removeDocument": 1, - "zewdDOM": 3, - "instanceName": 2, - "clearXMLIndex": 1, - "zewdSchemaForm": 1, - "closeDOM": 1, - "makeTokenString": 1, - "length": 7, - "token_": 1, - "r": 88, - "makeString": 3, - "char": 9, - "len": 8, - "create": 6, - "characters": 8, - "str": 15, - "convertDateToSeconds": 1, - "hdate": 7, - "Q": 58, - "hdate*86400": 1, - "convertSecondsToDate": 1, - "secs": 2, - "secs#86400": 1, - "getTokenExpiry": 2, - "h*86400": 1, - "h": 39, - "randChar": 1, - "R": 2, - "lowerCase": 2, - "stripLeadingSpaces": 2, - "stripTrailingSpaces": 2, - "d1": 7, - "zd": 1, - "yy": 19, - "dd": 4, - "I": 43, - "<10>": 1, - "dd=": 2, - "mm=": 3, - "1": 74, - "d1=": 1, - "2": 14, - "p1=": 1, - "mm": 7, - "p2=": 1, - "yy=": 1, - "3": 6, - "dd_": 1, - "mm_": 1, - "inetTime": 1, - "Decode": 1, - "Internet": 1, - "Format": 1, - "Time": 1, - "from": 16, - "H": 1, - "format": 2, - "Offset": 1, - "relative": 1, - "to": 74, - "GMT": 1, - "eg": 3, - "hh": 4, - "ss": 4, - "<": 20, - "_hh": 1, - "time#3600": 1, - "_mm": 1, - "time#60": 1, - "_ss": 2, - "hh_": 1, - "_mm_": 1, - "openNewFile": 2, - "openFile": 2, - "openDOM": 2, - "&": 28, - "#39": 1, - "<\",\"<\")>": 1, - "string=": 1, - "gt": 1, - "amp": 1, - "HTML": 1, - "quot": 2, - "stop": 20, - "no": 54, - "no2": 1, - "p1_c_p2": 1, - "getIP": 2, - "Get": 2, - "own": 2, - "IP": 1, - "address": 1, - "ajaxErrorRedirect": 2, - "classExport": 2, - "className": 2, - "methods": 2, - ".methods": 1, - "strx": 2, - "disableEwdMgr": 1, - "enableEwdMgr": 1, - "enableWLDAccess": 1, - "disableWLDAccess": 1, - "isSSOValid": 2, - "sso": 2, - "username": 8, - "password": 8, - "zewdMgrAjax2": 1, - "uniqueId": 1, - "nodeOID": 2, - "filename": 2, - "linkToParentSession": 2, - "zewdCompiler20": 1, - "exportToGTM": 1, - "routine": 6, - "zewdDemo": 1, - "Tutorial": 1, - "Wed": 1, - "Apr": 1, - "getLanguage": 1, - "getRequestValue": 1, - "login": 1, - "getTextValue": 4, - "getPasswordValue": 2, - "_username_": 1, - "_password": 1, - "logine": 1, - "message": 8, - "textid": 1, - "errorMessage": 1, - "ewdDemo": 8, - "clearList": 2, - "appendToList": 4, - "addUsername": 1, - "newUsername": 5, - "newUsername_": 1, - "setTextValue": 4, - "testValue": 1, - "pass": 24, - "getSelectValue": 3, - "_user": 1, - "getPassword": 1, - "setPassword": 1, - "getObjDetails": 1, - "data": 43, - "_user_": 1, - "_data": 2, - "setRadioOn": 2, - "initialiseCheckbox": 2, - "setCheckboxOn": 3, - "createLanguageList": 1, - "setMultipleSelectOn": 2, - "clearTextArea": 2, - "textarea": 2, - "createTextArea": 1, - ".textarea": 1, - "userType": 4, - "setMultipleSelectValues": 1, - ".selected": 1, - "testField3": 3, - ".value": 1, - "testField2": 1, - "field3": 1, - "must": 8, - "null": 6, - "dateTime": 1, - "start": 26, - "student": 14, - "zwrite": 1, - "write": 59, - "order": 11, - "do": 15, - "quit": 30, - "file": 10, - "part": 3, - "DataBallet.": 4, - "C": 9, - "Laurent": 2, - "Parenteau": 2, - "": 2, - "DataBallet": 4, - "encode": 1, - "Return": 1, - "base64": 6, - "URL": 2, - "Filename": 1, - "safe": 3, - "alphabet": 2, - "RFC": 1, - "todrop": 2, - "Populate": 1, - "values": 4, - "on": 17, - "first": 10, - "use": 5, - "only.": 1, - "zextract": 3, - "zlength": 3, - "Comment": 1, - "comment": 4, - "block": 1, - "comments": 5, - "always": 2, - "semicolon": 1, - "next": 1, - "while": 4, - "legal": 1, - "blank": 1, - "whitespace": 2, - "alone": 1, - "valid": 2, - "**": 4, - "Comments": 1, - "graphic": 3, - "character": 5, - "such": 1, - "@#": 1, - "*": 6, - "{": 5, - "}": 5, - "]": 15, - "/": 3, - "space": 1, - "considered": 1, - "though": 1, - "t": 12, - "it.": 2, - "ASCII": 2, - "whose": 1, - "numeric": 8, - "code": 29, - "above": 3, - "below": 1, - "are": 14, - "NOT": 2, - "allowed": 18, - "routine.": 1, - "multiple": 1, - "semicolons": 1, - "okay": 1, - "has": 7, - "tag": 2, - "after": 3, - "does": 1, - "command": 11, - "Tag1": 1, - "Tags": 2, - "an": 14, - "uppercase": 2, - "lowercase": 1, - "alphabetic": 2, - "series": 2, - "HELO": 1, - "most": 1, - "common": 1, - "label": 5, - "LABEL": 1, - "followed": 1, - "directly": 1, - "open": 1, - "parenthesis": 2, - "formal": 1, - "list": 1, - "variables": 3, - "close": 1, - "ANOTHER": 1, - "X": 19, - "Normally": 1, - "subroutine": 1, - "would": 2, - "ended": 1, - "we": 1, - "taking": 1, - "advantage": 1, - "rule": 1, - "END": 1, - "implicit": 1, - "Digest": 2, - "Extension": 9, - "Piotr": 7, - "Koper": 7, - "": 7, - "trademark": 2, - "Fidelity": 2, - "Information": 2, - "Services": 2, - "Inc.": 2, - "//sourceforge.net/projects/fis": 2, - "gtm/": 2, - "simple": 2, - "OpenSSL": 3, - "based": 1, - "digest": 19, - "extension": 3, - "rewrite": 1, - "EVP_DigestInit": 1, - "usage": 3, - "example": 5, - "additional": 5, - "M": 24, - "wrapper.": 1, - "//www.openssl.org/docs/crypto/EVP_DigestInit.html": 1, - "The": 11, - "return": 7, - "digest.init": 3, - "usually": 1, - "when": 11, - "invalid": 4, - "algorithm": 1, - "was": 5, - "specification.": 1, - "Anyway": 1, - "properly": 1, - "used": 6, - "never": 4, - "fail.": 1, - "Please": 2, - "feel": 2, - "contact": 2, - "me": 2, - "questions": 2, - "returns": 7, - "HEX": 1, - "all": 8, - "one": 5, - "digest.update": 2, - ".c": 2, - ".m": 11, - "digest.final": 2, - ".d": 1, - "init": 6, - "alg": 3, - "context": 1, - "handler": 9, - "try": 1, - "etc": 1, - "returned": 1, - "occurs": 1, - "e.g.": 2, - "unknown": 1, - "update": 1, - "ctx": 4, - "msg": 6, - "updates": 1, - ".ctx": 2, - ".msg": 1, - "final": 1, - "hex": 1, - "encoded": 8, - "frees": 1, - "memory": 1, - "allocated": 1, - ".digest": 1, - "algorithms": 1, - "availability": 1, - "depends": 1, - "libcrypto": 1, - "configuration": 1, - "md4": 1, - "md5": 2, - "sha": 1, - "sha1": 1, - "sha224": 1, - "sha256": 1, - "sha512": 1, - "dss1": 1, - "ripemd160": 1, - "These": 2, - "two": 2, - "routines": 6, - "illustrate": 1, - "dynamic": 1, - "scope": 1, - "triangle1": 1, - "sum": 15, - "main2": 1, - "y": 33, - "triangle2": 1, - "compute": 2, - "Fibonacci": 1, - "b": 64, - "term": 10, - "start1": 2, - "entry": 5, - "start2": 1, - "function": 6, - "computes": 1, - "factorial": 3, - "f*n": 1, - "main": 1, - "GMRGPNB0": 1, - "CISC/JH/RM": 1, - "NARRATIVE": 1, - "BUILDER": 1, - "TEXT": 5, - "GENERATOR": 1, - "cont.": 1, - "/20/91": 1, - "Text": 1, - "Generator": 1, - "Jan": 1, - "ENTRY": 2, - "WITH": 1, - "GMRGA": 1, - "SET": 3, - "TO": 6, - "POINT": 1, - "AT": 1, - "WHICH": 1, - "WANT": 1, - "START": 1, - "BUILDING": 1, - "GMRGE0": 11, - "GMRGADD": 4, - "D": 64, - "GMR": 6, - "GMRGA0": 11, - "GMRGPDA": 9, - "GMRGCSW": 2, - "NOW": 1, - "DTC": 1, - "GMRGB0": 9, - "O": 24, - "GMRGST": 6, - "GMRGPDT": 2, - "STAT": 8, - "GMRGRUT0": 3, - "GMRGF0": 3, - "GMRGSTAT": 8, - "P": 68, - "_GMRGB0_": 2, - "GMRD": 6, - "GMRGSSW": 3, - "SNT": 1, - "GMRGPNB1": 1, - "GMRGNAR": 8, - "GMRGPAR_": 2, - "_GMRGSPC_": 3, - "_GMRGRM": 2, - "_GMRGE0": 1, - "STORETXT": 1, - "GMRGRUT1": 1, - "GMRGSPC": 3, - "F": 10, - "GMRGD0": 7, - "ALIST": 1, - "G": 40, - "TMP": 26, - "J": 38, - "GMRGPLVL": 6, - "GMRGA0_": 1, - "_GMRGD0_": 1, - "_GMRGSSW_": 1, - "_GMRGADD": 1, - "GMRGI0": 6, - "label1": 1, - "if1": 2, - "statement": 3, - "if2": 2, - "statements": 1, - "contrasted": 1, - "": 3, - "variable": 8, - "a=": 3, - "smaller": 3, - "than": 4, - "b=": 4, - "if3": 1, - "else": 7, - "clause": 2, - "if4": 1, - "bodies": 1, - "exercise": 1, - "car": 14, - "@": 8, - "MD5": 6, - "Implementation": 1, - "It": 2, - "works": 1, - "ZCHSET": 2, - "please": 1, - "don": 1, - "only": 9, - "joke.": 1, - "Serves": 1, - "well": 2, - "reverse": 1, - "engineering": 1, - "obtaining": 1, - "boolean": 2, - "integer": 1, - "addition": 1, - "modulo": 1, - "division.": 1, - "//en.wikipedia.org/wiki/MD5": 1, - "#64": 1, - "msg_": 1, - "_m_": 1, - "n64": 2, - "*8": 2, - "read": 2, - ".p": 1, - "..": 28, - "...": 6, - "*i": 3, - "#16": 3, - "xor": 4, - "rotate": 5, - "#4294967296": 6, - "n32h": 5, - "bit": 5, - "#2": 1, - "*2147483648": 2, - "a#2": 1, - "b#2": 1, - ".a": 1, - ".b": 1, - "rol": 1, - "a*": 1, - "**n": 1, - "c#4294967296": 1, - "*n": 1, - "n#256": 1, - "n#16": 2, - "MDB": 60, - "M/DB": 2, - "Mumps": 1, - "Emulation": 1, - "Amazon": 1, - "SimpleDB": 1, "buildDate": 1, "indexLength": 10, "Note": 2, "keyId": 108, "been": 4, "tested": 1, + "and": 59, + "must": 8, + "valid": 2, + "time": 9, "these": 1, + "methods": 2, + "are": 14, "called": 8, "To": 2, "Initialise": 2, @@ -35734,7 +43407,11 @@ "userSecretKey": 6, "requestId": 17, "boxUsage": 11, + "n": 197, "startTime": 21, + "stop": 20, + "s": 775, + "init": 6, ".startTime": 5, "MDBUAF": 2, "end": 33, @@ -35745,17 +43422,30 @@ "dnx": 3, "id": 33, "noOfDomains": 12, + "token": 21, + "g": 228, + "i": 465, + "tr": 13, "MDBConfig": 1, + "e": 210, "getDomainId": 3, + "name": 121, "found": 7, "namex": 8, + "f": 93, + "o": 51, + "q": 244, + "d": 381, "buildItemNameIndex": 2, "domainId": 53, "itemId": 41, + "itemValue": 7, "itemValuex": 3, "countDomains": 2, "key": 22, + "no": 54, "deleteDomain": 2, + "k": 122, "listDomains": 1, "maxNoOfDomains": 2, "nextToken": 7, @@ -35767,15 +43457,23 @@ "getItemId": 2, "getAttributeValueId": 3, "attribId": 36, + "value": 72, "valuex": 13, "putAttributes": 2, + "itemName": 16, "attributes": 32, + "replace": 27, "valueId": 16, "xvalue": 4, "add": 5, "Item": 1, + "to": 74, "Domain": 1, + "if": 44, + "new": 15, "itemNamex": 4, + "increment": 11, + "error": 62, "parseJSON": 1, "zmwire": 53, "attributesJSON": 1, @@ -35784,9 +43482,14 @@ "getAttributeId": 2, "domain": 1, "Not": 1, + "allowed": 18, + "than": 4, + "one": 5, "same": 2, + "first": 10, "remove": 6, "existing": 2, + "values": 4, "now": 1, "name/value": 2, "pair": 1, @@ -35795,6 +43498,7 @@ "attrNo": 9, "valueNo": 6, "delete": 2, + "all": 8, "item": 2, "associated": 1, "queryIndex": 1, @@ -35804,23 +43508,35 @@ "vno": 2, "left": 5, "completely": 3, + "from": 16, "references": 1, + "pos": 33, "maxNoOfItems": 3, "itemList": 12, "session": 1, "identifier": 1, "stored": 1, + "m": 37, "queryExpression": 16, + "[": 54, + "%": 207, + "zewd": 17, + "j": 67, + "ok": 14, "relink": 1, "zewdGTMRuntime": 1, "CGIEVAR": 1, "cgi": 1, + "data": 43, "unescName": 5, "urlDecode": 2, "KEY": 36, "response": 29, "WebLink": 1, + "access": 21, + "entry": 5, "point": 2, + "here": 4, "action": 15, "AWSAcessKeyId": 1, "db": 9, @@ -35831,7 +43547,9 @@ "signatureVersion": 3, "stringToSign": 2, "rltKey": 2, + "trace": 24, "_action_": 2, + "_": 127, "h_": 3, "mdbKey": 2, "errorResponse": 9, @@ -35846,6 +43564,7 @@ "OK": 6, "_db": 1, "MDBAPI": 1, + "p": 84, "lineNo": 19, "CacheTempEWD": 16, "_db_": 1, @@ -35874,14 +43593,19 @@ "runSelect": 3, "count": 18, "select": 3, + "*": 6, "where": 6, + "order": 11, "limit": 14, "asc": 1, + "l": 84, "inValue": 6, + "str": 15, "expr": 18, "rel": 2, "itemStack": 3, "between": 2, + "<": 20, "<=\">": 1, "lastWord=": 7, "inAttr=": 5, @@ -35889,16 +43613,21 @@ "thisWord=": 7, "inAttr": 2, "c=": 28, + "1": 74, "queryExpression=": 4, "_queryExpression": 2, "4": 5, + "null": 6, + "3": 6, "isNull": 1, "5": 1, "8": 1, "isNotNull": 1, "9": 1, + "np": 17, "offset": 6, "prevName": 1, + "term": 10, "np=": 1, "diffNames": 6, "_term": 3, @@ -35908,6 +43637,8 @@ ".itemList": 4, "escVals": 1, "str_c": 2, + "invalid": 4, + "x": 96, "_x_": 1, "query": 4, "orderBy": 1, @@ -35917,203 +43648,790 @@ ".queryExpression": 1, ".orderBy": 1, ".limit": 1, + "replaceAll": 11, "executeSelect": 1, ".itemStack": 1, "***": 2, "listCopy": 3, + "numeric": 8, "N.N": 12, "N.N1": 4, + "escape": 7, "externalSelect": 2, "json": 9, "_keyId_": 1, "_selectExpression": 1, + "FromStr": 6, + "S": 99, + "ToStr": 4, + "InText": 4, + "old": 3, + "string": 50, + "p1": 5, + "p2": 10, + "stripTrailingSpaces": 2, "spaces": 3, + "makeString": 3, "string_spaces": 1, + "char": 9, + "len": 8, + "create": 6, + "characters": 8, "test": 6, - "miles": 4, - "gallons": 4, - "miles/gallons": 1, - "computepesimist": 1, - "miles/": 1, - "computeoptimist": 1, - "/gallons": 1, - "Mumtris": 3, - "tetris": 1, - "game": 1, - "MUMPS": 1, - "fun.": 1, - "Resize": 1, - "terminal": 2, - "maximize": 1, - "PuTTY": 1, - "window": 1, - "restart": 3, - "so": 4, - "report": 1, - "true": 2, - "size": 3, - "mumtris.": 1, - "Try": 2, - "setting": 3, - "ansi": 2, - "compatible": 1, - "cursor": 1, - "positioning.": 1, - "NOTICE": 1, - "uses": 1, - "making": 1, - "delays": 1, - "lower": 1, - "s.": 1, - "That": 1, - "means": 2, - "CPU": 1, - "fall": 5, - "lock": 2, - "clear": 6, - "change": 6, - "preview": 3, - "over": 2, - "exit": 3, - "short": 1, - "circuit": 1, - "redraw": 3, - "timeout": 1, - "harddrop": 1, - "other": 1, - "ex": 5, - "hd": 3, - "*c": 1, - "<0&'d>": 1, - "i=": 14, - "st": 6, - "t10m": 1, - "0": 23, - "<0>": 2, - "q=": 6, - "d=": 1, - "zb": 2, - "right": 3, - "fl=": 1, - "gr=": 1, - "hl": 2, - "help": 2, - "drop": 2, - "hd=": 1, - "matrix": 2, - "stack": 8, - "draw": 3, - "ticks": 2, - "h=": 2, - "1000000000": 1, - "e=": 1, - "t10m=": 1, - "100": 2, - "n=": 1, - "ne=": 1, - "x=": 5, - "y=": 3, - "r=": 3, - "collision": 6, - "score": 5, - "k=": 1, - "j=": 4, - "<1))))>": 1, - "800": 1, - "200": 1, - "lv": 5, - "lc=": 1, - "10": 1, - "lc": 3, - "mt_": 2, - "cls": 6, - ".s": 5, - "dh/2": 6, - "dw/2": 6, - "*s": 4, - "u": 6, - "echo": 1, - "intro": 1, - "workaround": 1, - "ANSI": 1, - "driver": 1, - "NL": 1, - "some": 1, - "place": 9, - "clearscreen": 1, - "N": 19, - "h/2": 3, - "*w/2": 3, - "fill": 3, - "fl": 2, - "*x": 1, - "mx": 4, - "my": 5, - "step": 8, - "**lv*sb": 1, - "*lv": 1, - "sc": 3, - "ne": 2, - "gr": 1, - "w*3": 1, - "dev": 1, - "zsh": 1, - "dw": 1, - "dh": 1, - "elements": 3, - "elemId": 3, - "rotateVersions": 1, - "rotateVersion": 2, - "bottom": 1, - "coordinate": 1, - "____": 1, - "__": 2, - "||": 1, - "ax": 2, - "bx": 2, - "cx": 2, - "ay": 2, - "cy": 2, - "sumx": 3, - "sqrx": 3, - "sumxy": 5, - "x*x": 1, - "x*y": 1, + "GT.M": 30, "PCRE": 23, + "Extension": 9, + "C": 9, + "Piotr": 7, + "Koper": 7, + "": 7, + "Examples": 4, + "pcre.m": 1, + "comments": 5, + "on": 17, + "routines": 6, + "parameters": 1, + "possible": 5, + "options": 45, + "pcreexamples": 32, + "Initial": 2, + "release": 2, + "pkoper": 2, + "API": 7, + "The": 11, + "shining": 1, + "examples": 4, + "Test": 1, + "subject": 24, + "match": 41, + "w": 127, + "pcre": 59, + "Simple": 2, + ".n": 20, + "zwr": 17, + "Match": 4, + "named": 12, + "groups": 5, + "group": 4, + "output": 49, + "only": 9, + "patterns": 3, + "global": 26, + "Global": 8, + "grouped": 2, + "captured": 6, + "Just": 1, + "Change": 2, + "word": 3, + "Escape": 1, + "sequence": 1, + "More": 1, + "chars": 3, + "Low": 1, + "level": 5, + "api": 1, + "pattern": 21, + "ref": 41, + "begin": 18, + "Setup": 1, + "exception": 12, + "trap": 10, + "myexception2": 2, + "zt": 20, + "st_": 1, + "zl_": 2, + "case": 7, + "insensitive": 7, + "well": 2, + "stringified": 2, + "names": 3, + "functions": 4, + "extension": 3, + "start": 26, + "Compile": 2, + "compile": 14, + ".pattern": 3, + ".options": 1, + "pass": 24, + "reference": 2, + "Run": 1, + "exec": 4, + ".ref": 13, + ".subject": 3, + ".offset": 1, + "ovector": 25, + "array": 22, + "ovecsize": 5, + "used.": 2, + "size": 3, + "always": 2, + "number": 5, + "capture": 10, + "strings": 1, + "submitted": 1, + "exact": 1, + "usable": 1, + "integers": 1, + "Get": 2, + "an": 14, + "way": 1, + "i*2": 3, + "ze": 8, + "what": 2, + "aa": 9, + "print": 8, + "while": 4, + "/": 3, + "b*": 7, + "/mg": 2, + "s/": 6, + "/Xy/g": 6, + "aaa": 1, + "nbb": 1, + ".*": 1, + "stack": 8, + "usage": 3, + "discover": 1, + "procedure": 2, + "stackusage": 3, + "Locale": 5, + "Support": 1, + "Polish": 1, + "language": 6, + "has": 7, + "used": 6, + "example": 5, + "I18N": 2, + "support": 3, + "PCRE.": 1, + "encoded": 8, + "UTF": 17, + "Polish.": 1, + "second": 1, + "letter": 1, + "": 1, + "which": 4, + "ISO8859": 1, + "//en.wikipedia.org/wiki/Polish_code_pages": 1, + "complete": 1, + "listing": 1, + "CHAR": 1, + "different": 3, + "character": 5, + "modes": 1, + "In": 1, + "mode": 12, + "return": 7, + "two": 2, + "octet": 4, + "probably": 1, + "expected": 1, + "result": 3, + "when": 11, + "working": 1, + "single": 2, + "ISO": 3, + "chars.": 1, + "Use": 1, + "zch": 7, + "prepared": 1, + "GTM": 8, + "E": 12, + "BADCHAR": 1, + "errors.": 1, + "Also": 1, + "others": 1, + "might": 1, + "expected.": 1, + "POSIX": 1, + "i.e.": 3, + "localization": 1, + "nolocale": 2, + "zchset": 2, + "isolocale": 2, + "utflocale": 2, + "M": 24, + "environment": 7, + "LANG": 4, + "LC_CTYPE": 1, + "Set": 2, + "obtain": 2, + "results.": 1, + "envlocale": 2, + "ztrnlnm": 2, + "Notes": 1, + "Enabling": 1, + "native": 1, + "requires": 1, + "libicu": 2, + "gtm_chset": 1, + "gtm_icu_version": 1, + "recompiled": 1, + "object": 4, + "files": 4, + "Instructions": 1, + "Debian": 2, + "Install": 1, + "libicu48": 2, + "apt": 1, + "get": 2, + "install": 1, + "append": 1, + "setup": 3, + "user": 27, + "write": 59, + "chown": 1, + "gtm": 1, + "/opt/gtm": 1, + "Startup": 1, + "errors": 6, + "INVOBJ": 1, + "Cannot": 1, + "ZLINK": 1, + "file": 10, + "due": 1, + "unexpected": 1, + "format": 2, + "I": 43, + "TEXT": 5, + "Object": 1, + "compiled": 1, + "CHSET": 1, + "ZCHSET": 2, + "above": 3, + "written": 3, + "startup": 1, + "correct": 1, + "like": 4, + "step": 8, + "above.": 1, + "Limits": 1, + "built": 1, + "limits": 6, + "internal": 3, + "matching": 4, + "recursion.": 1, + "Those": 1, + "prevent": 1, + "engine": 1, + "very": 2, + "long": 2, + "runs": 2, + "especially": 1, + "there": 2, + "would": 2, + "matches": 10, + "paths": 2, + "tree": 1, + "checked.": 1, + "Functions": 1, + "using": 4, + "itself": 1, + "allows": 1, + "setting": 3, + "MATCH_LIMIT": 1, + "MATCH_LIMIT_RECURSION": 1, + "optional": 16, + "arguments": 1, + "mlimit": 20, + "reclimit": 19, + "locale": 24, + "subst": 3, + "last": 4, + "library": 1, + "compilation": 2, + "defaults": 3, + "config": 3, + "Example": 1, + "run": 2, + "longrun": 3, + "Equal": 1, + "corrected": 1, + "shortrun": 2, + "Enforced": 1, + "enforcedlimit": 2, + "Exception": 2, + "Handling": 1, + "Error": 1, + "conditions": 1, + "handled": 1, + "zc": 1, + "codes": 1, + "labels": 1, + "file.": 1, + "When": 2, + "neither": 1, + "nor": 1, + "et": 4, + "set": 98, + "default": 6, + "handler": 9, + "within": 1, + "mechanism.": 1, + "out": 2, + "details": 5, + "depending": 1, + "caller": 1, + "type": 2, + "re": 2, + "raise": 3, + "exception.": 1, + "lead": 1, + "writing": 4, + "prompt": 1, + "b": 64, + "code": 29, + "place": 9, + "routine": 6, + "was": 5, + "terminating": 1, + "image.": 1, + "define": 2, + "own": 2, + "pcreexamples.m": 2, + "handlers.": 1, + "Handler": 1, + "No": 17, + "nohandler": 4, + "ec": 10, + "COMPILE": 2, + "Pattern": 1, + "failed": 1, + "unmatched": 1, + "parentheses": 1, + "<-->": 1, + "HERE": 1, + "RTSLOC": 2, + "At": 2, + "source": 3, + "location": 5, + "2": 14, + "SETECODE": 1, + "Non": 1, + "empty": 7, + "assigned": 1, + "ECODE": 1, + "defined": 2, + "32": 1, + "GT": 1, + "image": 1, + "terminated": 1, + "myexception1": 3, + "zt=": 1, + "mytrap1": 2, + "x=": 5, + "never": 4, + "ec=": 7, + "zg": 2, + "mytrap3": 1, + "U16392": 2, + "DETAILS": 1, + "executed": 1, + "frame": 1, + "called.": 1, + "deeper": 1, + "frames": 1, + "already": 1, + "dropped": 1, + "command": 11, + "so": 4, + "err": 4, + "local": 1, + "variable": 8, + "available": 1, + "context.": 1, + "Thats": 1, + "why": 1, + "doesn": 1, + "t": 12, + "change": 6, + "st": 6, + "unless": 1, + "cleared.": 1, + "Always": 1, + "clear": 6, + "handling": 2, + "done.": 2, + "Execute": 1, + "p5global": 1, + "p5replace": 1, + "p5lf": 1, + "p5nl": 1, + "newline": 1, + "utf8support": 1, + "myexception3": 1, + "Comment": 1, + "comment": 4, + "block": 1, + "semicolon": 1, + "next": 1, + "line": 14, + "legal": 1, + "blank": 1, + "whitespace": 2, + "alone": 1, + "**": 4, + "Comments": 1, + "graphic": 3, + "such": 1, + "@#": 1, + "&": 28, + "{": 5, + "}": 5, + "]": 15, + "space": 1, + "considered": 1, + "though": 1, + "it.": 2, + "ASCII": 2, + "whose": 1, + "below": 1, + "NOT": 2, + "routine.": 1, + "multiple": 1, + "semicolons": 1, + "okay": 1, + "tag": 2, + "after": 3, + "bug": 2, + "does": 1, + "Tag1": 1, + "Tags": 2, + "uppercase": 2, + "lowercase": 1, + "alphabetic": 2, + "series": 2, + "HELO": 1, + "most": 1, + "common": 1, + "label": 5, + "LABEL": 1, + "followed": 1, + "directly": 1, + "open": 1, + "parenthesis": 2, + "formal": 1, + "list": 1, + "variables": 3, + "close": 1, + "ANOTHER": 1, + "X": 19, + "Normally": 1, + "subroutine": 1, + "ended": 1, + "we": 1, + "taking": 1, + "advantage": 1, + "rule": 1, + "END": 1, + "implicit": 1, + "PXAI": 1, + "ISL/JVS": 1, + "ISA/KWP": 1, + "ESW": 1, + "PCE": 2, + "DRIVING": 1, + "RTN": 1, + "/20/03": 1, + "am": 1, + "PATIENT": 5, + "CARE": 1, + "ENCOUNTER": 2, + "**15": 1, + "Aug": 1, + "Build": 6, + "Q": 58, + "DATA2PCE": 1, + "PXADATA": 7, + "PXAPKG": 9, + "PXASOURC": 10, + "PXAVISIT": 8, + "PXAUSER": 6, + "PXANOT": 3, + "ERRRET": 2, + "PXAPREDT": 2, + "PXAPROB": 15, + "PXACCNT": 2, + "add/edit/delete": 1, + "PCE.": 1, + "required": 4, + "pointer": 4, + "visit": 3, + "related.": 1, + "known": 2, + "then": 2, + "nodes": 1, + "needed": 1, + "lookup/create": 1, + "visit.": 1, + "adding": 1, + "data.": 1, + "displayed": 1, + "screen": 1, + "debugging": 1, + "initial": 1, + "code.": 1, + "passed": 4, + "reference.": 2, + "present": 1, + "PXKERROR": 2, + "elements": 3, + "caller.": 1, + "want": 1, + "edit": 1, + "Primary": 3, + "Provider": 1, + "use": 5, + "moment": 1, + "editing": 2, + "being": 1, + "dangerous": 1, + "dotted": 1, + "name.": 1, + "warnings": 1, + "occur": 1, + "They": 1, + "back": 4, + "form": 1, + "general": 1, + "description": 1, + "problem.": 1, + "IF": 9, + "ERROR1": 1, + "GENERAL": 2, + "ERRORS": 4, + "J": 38, + "SUBSCRIPT": 5, + "PASSED": 4, + "IN": 4, + "FIELD": 2, + "FROM": 5, + "WARNING2": 1, + "WARNINGS": 2, + "WARNING3": 1, + "SERVICE": 1, + "CONNECTION": 1, + "REASON": 9, + "ERROR4": 1, + "PROBLEM": 1, + "LIST": 1, + "Returns": 2, + "PFSS": 2, + "Account": 2, + "Reference": 2, + "known.": 1, + "Returned": 1, + "located": 1, + "Order": 1, + "#100": 1, + "process": 3, + "occurred": 2, + "processed": 1, + "could": 1, + "incorrectly": 1, + "NEW": 3, + "VARIABLES": 1, + "N": 19, + "NOVSIT": 1, + "PXAK": 20, + "DFN": 1, + "PXAERRF": 3, + "PXADEC": 1, + "PXELAP": 1, + "PXASUB": 2, + "VALQUIET": 2, + "PRIMFND": 7, + "K": 5, + "PXAERROR": 1, + "PXAERR": 7, + "PRVDR": 1, + "needs": 1, + "look": 1, + "up": 1, + "passed.": 1, + "D": 64, + "@PXADATA@": 8, + "G": 40, + "DUZ": 3, + "TMP": 26, + "SOR": 1, + "SOURCE": 2, + "PKG2IEN": 1, + "VSIT": 1, + "PXAPIUTL": 2, + "TMPSOURC": 1, + "SAVES": 1, + "CREATES": 1, + "VST": 2, + "VISIT": 3, + "KILL": 1, + "VPTR": 1, + "PXAIVSTV": 1, + "ERR": 2, + "PXAIVST": 1, + "PRV": 1, + "PROVIDER": 1, + "P": 68, + "AUPNVSIT": 1, + "F": 10, + "O": 24, + ".I": 4, + "..S": 7, + "status": 2, + "Secondary": 2, + ".S": 6, + "..I": 2, + "PXADI": 4, + "NODE": 5, + "SCREEN": 2, + "VA": 1, + "EXTERNAL": 2, + "INTERNAL": 2, + "ARRAY": 2, + "PXAICPTV": 1, + "SEND": 1, + "TO": 6, + "W": 4, + "BLD": 2, + "DIALOG": 4, + ".PXAERR": 3, + "MSG": 2, + "SET": 3, + "GLOBAL": 1, + "NA": 1, + "PROVDRST": 1, + "Check": 1, + "provider": 1, + "PRVIEN": 14, + "DETS": 7, + "DIC": 6, + "DR": 4, + "DA": 4, + "DIQ": 3, + "PRI": 3, + "PRVPRIM": 2, + "AUPNVPRV": 2, + "U": 14, + ".04": 1, + "EN": 2, + "DIQ1": 1, + "POVPRM": 1, + "POVARR": 1, + "STOP": 1, + "LPXAK": 4, + "ORDX": 14, + "NDX": 7, + "ORDXP": 3, + "DX": 2, + "ICD9": 2, + "AUPNVPOV": 2, + "@POVARR@": 6, + "force": 1, + "originally": 1, + "primary": 1, + "diagnosis": 1, + "flag": 1, + ".F": 2, + "..E": 1, + "...S": 5, + "PRCAAPR": 1, + "WASH": 1, + "ISC@ALTOONA": 1, + "PA/RGY": 1, + "ACCOUNT": 1, + "PROFILE": 1, + "CONT": 1, + "/9/94": 1, + "AM": 1, + "V": 2, + "Accounts": 1, + "Receivable": 1, + "**198": 1, + "Mar": 1, + "Per": 1, + "VHA": 1, + "Directive": 1, + "modified.": 1, + "PRCATY": 2, + "Y": 26, + "DEBT": 10, + "PRCADB": 5, + "PRCA": 14, + "COUNT": 2, + "OUT": 2, + "SEL": 1, + "BILL": 11, + "BAT": 8, + "TRAN": 5, + "DXS": 1, + "DTOUT": 2, + "DIROUT": 1, + "DIRUT": 1, + "DUOUT": 1, + "ASK": 3, + "DPTNOFZY": 2, + "DPTNOFZK": 2, + "R": 2, + "DTIME": 1, + "UPPER": 1, + "VALM1": 1, + "RCD": 1, + "DISV": 2, + "NAM": 1, + "RCFN01": 1, + "COMP": 2, + "EN1": 1, + "PRCAATR": 1, + "Y_": 3, + "@": 8, + "PRCADB_": 1, + "HDR": 1, + "PRCAAPR1": 3, + "HDR2": 1, + "DIS": 1, + "STAT1": 2, + "_PRCATY_": 1, + "COMP1": 2, + "RCY": 5, + "COMP2": 2, + "STAT": 8, + "_STAT_": 1, + "_STAT": 1, + "payments": 1, + "_TRAN": 1, + "student": 14, + "zwrite": 1, + "do": 15, + "part": 3, + "Keith": 1, + "Lynch": 1, + "p#f": 1, + "*8": 2, + "trademark": 2, + "Fidelity": 2, + "Information": 2, + "Services": 2, + "Inc.": 2, + "//sourceforge.net/projects/fis": 2, + "gtm/": 2, "tries": 1, "deliver": 1, "best": 2, - "possible": 5, "interface": 1, "world": 4, "providing": 1, - "support": 3, "arrays": 1, - "stringified": 2, "parameter": 1, - "names": 3, "simplified": 1, - "API": 7, "locales": 2, "exceptions": 1, "Perl5": 1, - "Global": 8, "Match.": 1, - "pcreexamples.m": 2, "comprehensive": 1, - "examples": 4, - "pcre": 59, "beginner": 1, - "level": 5, "tips": 1, - "match": 41, - "limits": 6, - "exception": 12, - "handling": 2, - "UTF": 17, "GT.M.": 1, - "out": 2, - "known": 2, + "Try": 2, "book": 1, "regular": 1, "expressions": 1, @@ -36121,13 +44439,12 @@ "For": 3, "information": 1, "//pcre.org/": 1, - "Initial": 2, - "release": 2, - "pkoper": 2, + "Please": 2, + "feel": 2, + "contact": 2, + "me": 2, + "questions": 2, "pcre.version": 1, - "config": 3, - "case": 7, - "insensitive": 7, "protect": 11, "erropt": 6, "isstring": 5, @@ -36135,66 +44452,41 @@ ".name": 1, ".erropt": 3, ".isstring": 1, - ".n": 20, - "ec": 10, - "compile": 14, - "pattern": 21, - "options": 45, - "locale": 24, - "mlimit": 20, - "reclimit": 19, - "optional": 16, + ".s": 5, "joined": 3, "Unix": 1, "pcre_maketables": 2, "cases": 1, "undefined": 1, - "environment": 7, - "defined": 2, - "LANG": 4, "LC_*": 1, - "output": 49, - "Debian": 2, + "...": 6, "tip": 1, "dpkg": 1, "reconfigure": 1, "enable": 1, "system": 1, "wide": 1, - "number": 5, - "internal": 3, - "matching": 4, + "function": 6, "calls": 1, "pcre_exec": 4, "execution": 2, "manual": 2, - "details": 5, "depth": 1, "recursion": 1, "calling": 2, - "ref": 41, - "err": 4, "erroffset": 3, "pcre.compile": 1, - ".pattern": 3, - ".ref": 13, ".err": 1, ".erroffset": 1, - "exec": 4, - "subject": 24, "startoffset": 3, + "length": 7, "octets": 2, "starts": 1, - "like": 4, - "chars": 3, "pcre.exec": 2, - ".subject": 3, "zl": 7, - "ec=": 7, - "ovector": 25, + "<0>": 2, "element": 1, "code=": 4, - "ovecsize": 5, "fullinfo": 3, "OPTIONS": 2, "SIZE": 1, @@ -36213,58 +44505,50 @@ "JIT": 1, "JITSIZE": 1, "NAME": 3, + "also": 4, "nametable": 4, + "returns": 7, "index": 1, + "0": 23, "indexed": 4, "substring": 1, - "begin": 18, "begin=": 3, "end=": 4, "contains": 2, - "octet": 4, "UNICODE": 1, - "ze": 8, "begin_": 1, "_end": 1, "store": 6, "stores": 1, - "captured": 6, "key=": 2, "gstore": 3, "round": 12, "byref": 5, - "global": 26, "ref=": 3, "l=": 2, - "capture": 10, "indexes": 1, "extended": 1, "NAMED_ONLY": 2, - "named": 12, - "groups": 5, "OVECTOR": 2, + "additional": 5, "namedonly": 9, "options=": 4, + "i=": 14, "o=": 12, + "u": 6, "namedonly=": 2, "ovector=": 2, "NO_AUTO_CAPTURE": 2, "_capture_": 2, - "matches": 10, "s=": 4, "_s_": 1, "GROUPED": 1, - "group": 4, - "result": 3, - "patterns": 3, "pcredemo": 1, "pcreccp": 1, "cc": 1, - "procedure": 2, "Perl": 1, "utf8": 2, "crlf": 6, - "empty": 7, "skip": 6, "determine": 1, "them": 1, @@ -36281,6 +44565,7 @@ "none": 1, "build": 2, "NEWLINE": 1, + "..": 28, ".start": 1, "unwind": 1, "call": 1, @@ -36296,48 +44581,30 @@ ".round": 2, ".byref": 2, ".ovector": 2, - "subst": 3, - "last": 4, "occurrences": 1, "matched": 1, - "back": 4, "th": 3, "replaced": 1, "substitution": 2, "begins": 1, "substituted": 2, - "defaults": 3, "ends": 1, "backref": 1, "boffset": 1, "prepare": 1, - "reference": 2, ".subst": 1, ".backref": 1, "silently": 1, "zco": 1, "": 1, - "s/": 6, - "b*": 7, - "/Xy/g": 6, - "print": 8, - "aa": 9, - "et": 4, "direct": 3, + "msg": 6, "take": 1, - "default": 6, - "setup": 3, - "trap": 10, - "source": 3, - "location": 5, "argument": 1, "@ref": 2, - "E": 12, - "COMPILE": 2, + "message": 8, "meaning": 1, "zs": 2, - "re": 2, - "raise": 3, "XC": 1, "specific": 3, "U16384": 1, @@ -36348,12 +44615,10 @@ "U16389": 1, "U16390": 1, "U16391": 1, - "U16392": 2, "U16393": 1, "NOTES": 1, "U16401": 2, "raised": 2, - "i.e.": 3, "NOMATCH": 2, "ever": 1, "uncommon": 1, @@ -36386,513 +44651,343 @@ "U16425": 1, "U16426": 1, "U16427": 1, - "Examples": 4, - "pcre.m": 1, - "parameters": 1, - "pcreexamples": 32, - "shining": 1, - "Test": 1, - "Simple": 2, - "zwr": 17, - "Match": 4, - "grouped": 2, - "Just": 1, - "Change": 2, - "word": 3, - "Escape": 1, - "sequence": 1, - "More": 1, - "Low": 1, - "api": 1, - "Setup": 1, - "myexception2": 2, - "st_": 1, - "zl_": 2, - "Compile": 2, - ".options": 1, - "Run": 1, - ".offset": 1, - "used.": 2, - "strings": 1, - "submitted": 1, - "exact": 1, - "usable": 1, - "integers": 1, - "way": 1, - "i*2": 3, - "what": 2, - "/mg": 2, - "aaa": 1, - "nbb": 1, - ".*": 1, - "discover": 1, - "stackusage": 3, - "Locale": 5, - "Support": 1, - "Polish": 1, - "I18N": 2, - "PCRE.": 1, - "Polish.": 1, - "second": 1, - "letter": 1, - "": 1, - "which": 4, - "ISO8859": 1, - "//en.wikipedia.org/wiki/Polish_code_pages": 1, - "complete": 1, - "listing": 1, - "CHAR": 1, - "different": 3, - "modes": 1, - "In": 1, - "probably": 1, - "expected": 1, - "working": 1, - "single": 2, - "ISO": 3, - "chars.": 1, - "Use": 1, - "zch": 7, - "prepared": 1, - "GTM": 8, - "BADCHAR": 1, - "errors.": 1, - "Also": 1, - "others": 1, - "might": 1, - "expected.": 1, - "POSIX": 1, - "localization": 1, - "nolocale": 2, - "zchset": 2, - "isolocale": 2, - "utflocale": 2, - "LC_CTYPE": 1, - "Set": 2, - "obtain": 2, - "results.": 1, - "envlocale": 2, - "ztrnlnm": 2, - "Notes": 1, - "Enabling": 1, - "native": 1, - "requires": 1, - "libicu": 2, - "gtm_chset": 1, - "gtm_icu_version": 1, - "recompiled": 1, - "object": 4, - "files": 4, - "Instructions": 1, - "Install": 1, - "libicu48": 2, - "apt": 1, - "get": 2, - "install": 1, - "append": 1, - "chown": 1, - "gtm": 1, - "/opt/gtm": 1, - "Startup": 1, - "errors": 6, - "INVOBJ": 1, - "Cannot": 1, - "ZLINK": 1, - "due": 1, - "unexpected": 1, - "Object": 1, - "compiled": 1, - "CHSET": 1, - "written": 3, - "startup": 1, - "correct": 1, - "above.": 1, - "Limits": 1, - "built": 1, - "recursion.": 1, - "Those": 1, - "prevent": 1, - "engine": 1, - "very": 2, - "long": 2, - "runs": 2, - "especially": 1, - "there": 2, - "paths": 2, - "tree": 1, - "checked.": 1, - "Functions": 1, - "using": 4, - "itself": 1, - "allows": 1, - "MATCH_LIMIT": 1, - "MATCH_LIMIT_RECURSION": 1, - "arguments": 1, - "library": 1, - "compilation": 2, - "Example": 1, - "longrun": 3, - "Equal": 1, - "corrected": 1, - "shortrun": 2, - "Enforced": 1, - "enforcedlimit": 2, - "Exception": 2, - "Handling": 1, - "Error": 1, - "conditions": 1, - "handled": 1, - "zc": 1, - "codes": 1, - "labels": 1, - "file.": 1, - "When": 2, - "neither": 1, - "nor": 1, - "within": 1, - "mechanism.": 1, - "depending": 1, - "caller": 1, - "exception.": 1, - "lead": 1, - "writing": 4, - "prompt": 1, - "terminating": 1, - "image.": 1, - "define": 2, - "handlers.": 1, - "Handler": 1, - "No": 17, - "nohandler": 4, - "Pattern": 1, - "failed": 1, - "unmatched": 1, - "parentheses": 1, - "<-->": 1, - "HERE": 1, - "RTSLOC": 2, - "At": 2, - "SETECODE": 1, - "Non": 1, - "assigned": 1, - "ECODE": 1, - "32": 1, - "GT": 1, - "image": 1, - "terminated": 1, - "myexception1": 3, - "zt=": 1, - "mytrap1": 2, - "zg": 2, - "mytrap3": 1, - "DETAILS": 1, - "executed": 1, - "frame": 1, - "called.": 1, - "deeper": 1, - "frames": 1, - "already": 1, - "dropped": 1, - "local": 1, - "available": 1, - "context.": 1, - "Thats": 1, - "why": 1, - "doesn": 1, - "unless": 1, - "cleared.": 1, - "Always": 1, - "done.": 2, - "Execute": 1, - "p5global": 1, - "p5replace": 1, - "p5lf": 1, - "p5nl": 1, - "newline": 1, - "utf8support": 1, - "myexception3": 1, - "contrasting": 1, - "postconditionals": 1, - "IF": 9, - "commands": 1, - "post1": 1, - "postconditional": 3, - "purposely": 4, - "TEST": 16, - "false": 5, - "post2": 1, - "special": 2, - "post": 1, - "condition": 1, - "PRCAAPR": 1, - "WASH": 1, - "ISC@ALTOONA": 1, - "PA/RGY": 1, - "PATIENT": 5, - "ACCOUNT": 1, - "PROFILE": 1, - "CONT": 1, - "/9/94": 1, - "AM": 1, - "V": 2, - "Accounts": 1, - "Receivable": 1, - "**198": 1, - "Mar": 1, - "Per": 1, - "VHA": 1, - "Directive": 1, - "modified.": 1, - "EN": 2, - "PRCATY": 2, - "NEW": 3, - "DIC": 6, - "Y": 26, - "DEBT": 10, - "PRCADB": 5, - "DA": 4, - "PRCA": 14, - "COUNT": 2, - "OUT": 2, - "SEL": 1, - "BILL": 11, - "BAT": 8, - "TRAN": 5, - "DR": 4, - "DXS": 1, - "DTOUT": 2, - "DIROUT": 1, - "DIRUT": 1, - "DUOUT": 1, - "ASK": 3, - "DPTNOFZY": 2, - "DPTNOFZK": 2, - "K": 5, - "DTIME": 1, - "UPPER": 1, - "VALM1": 1, - "RCD": 1, - "DISV": 2, - "DUZ": 3, - "NAM": 1, - "RCFN01": 1, - "COMP": 2, - "EN1": 1, - "PRCAATR": 1, - "Y_": 3, - "PRCADB_": 1, - "HDR": 1, - "PRCAAPR1": 3, - "HDR2": 1, - "DIS": 1, - "STAT1": 2, - "_PRCATY_": 1, - "COMP1": 2, - "RCY": 5, - "COMP2": 2, - "_STAT_": 1, - "_STAT": 1, - "payments": 1, - "_TRAN": 1, - "Keith": 1, - "Lynch": 1, - "p#f": 1, - "PXAI": 1, - "ISL/JVS": 1, - "ISA/KWP": 1, - "ESW": 1, - "PCE": 2, - "DRIVING": 1, - "RTN": 1, - "/20/03": 1, - "am": 1, - "CARE": 1, - "ENCOUNTER": 2, - "**15": 1, - "Aug": 1, - "DATA2PCE": 1, - "PXADATA": 7, - "PXAPKG": 9, - "PXASOURC": 10, - "PXAVISIT": 8, - "PXAUSER": 6, - "PXANOT": 3, - "ERRRET": 2, - "PXAPREDT": 2, - "PXAPROB": 15, - "PXACCNT": 2, - "add/edit/delete": 1, - "PCE.": 1, - "required": 4, - "pointer": 4, - "visit": 3, - "related.": 1, - "then": 2, - "nodes": 1, - "needed": 1, - "lookup/create": 1, - "visit.": 1, - "adding": 1, - "data.": 1, - "displayed": 1, - "screen": 1, - "debugging": 1, - "initial": 1, - "code.": 1, - "passed": 4, - "reference.": 2, - "present": 1, - "PXKERROR": 2, - "caller.": 1, - "want": 1, - "edit": 1, - "Primary": 3, - "Provider": 1, - "moment": 1, - "editing": 2, - "being": 1, - "dangerous": 1, - "dotted": 1, - "name.": 1, - "warnings": 1, - "occur": 1, - "They": 1, - "form": 1, - "general": 1, - "description": 1, - "problem.": 1, - "ERROR1": 1, - "GENERAL": 2, - "ERRORS": 4, - "SUBSCRIPT": 5, - "PASSED": 4, - "IN": 4, - "FIELD": 2, - "FROM": 5, - "WARNING2": 1, - "WARNINGS": 2, - "WARNING3": 1, - "SERVICE": 1, - "CONNECTION": 1, - "REASON": 9, - "ERROR4": 1, - "PROBLEM": 1, - "LIST": 1, - "Returns": 2, - "PFSS": 2, - "Account": 2, - "Reference": 2, - "known.": 1, - "Returned": 1, - "located": 1, - "Order": 1, - "#100": 1, - "process": 3, - "processed": 1, - "could": 1, - "incorrectly": 1, - "VARIABLES": 1, - "NOVSIT": 1, - "PXAK": 20, - "DFN": 1, - "PXAERRF": 3, - "PXADEC": 1, - "PXELAP": 1, - "PXASUB": 2, - "VALQUIET": 2, - "PRIMFND": 7, - "PXAERROR": 1, - "PXAERR": 7, - "PRVDR": 1, - "needs": 1, - "look": 1, - "up": 1, - "passed.": 1, - "@PXADATA@": 8, - "SOR": 1, - "SOURCE": 2, - "PKG2IEN": 1, - "VSIT": 1, - "PXAPIUTL": 2, - "TMPSOURC": 1, - "SAVES": 1, - "CREATES": 1, - "VST": 2, - "VISIT": 3, - "KILL": 1, - "VPTR": 1, - "PXAIVSTV": 1, - "ERR": 2, - "PXAIVST": 1, - "PRV": 1, - "PROVIDER": 1, - "AUPNVSIT": 1, - ".I": 4, - "..S": 7, - "status": 2, - "Secondary": 2, - ".S": 6, - "..I": 2, - "PXADI": 4, - "NODE": 5, - "SCREEN": 2, - "VA": 1, - "EXTERNAL": 2, - "INTERNAL": 2, - "ARRAY": 2, - "PXAICPTV": 1, - "SEND": 1, - "W": 4, - "BLD": 2, - "DIALOG": 4, - ".PXAERR": 3, - "MSG": 2, - "GLOBAL": 1, - "NA": 1, - "PROVDRST": 1, - "Check": 1, - "provider": 1, - "PRVIEN": 14, - "DETS": 7, - "DIQ": 3, - "PRI": 3, - "PRVPRIM": 2, - "AUPNVPRV": 2, - "U": 14, - ".04": 1, - "DIQ1": 1, - "POVPRM": 1, - "POVARR": 1, - "STOP": 1, - "LPXAK": 4, - "ORDX": 14, - "NDX": 7, - "ORDXP": 3, - "DX": 2, - "ICD9": 2, - "AUPNVPOV": 2, - "@POVARR@": 6, - "force": 1, - "originally": 1, - "primary": 1, - "diagnosis": 1, - "flag": 1, - ".F": 2, - "..E": 1, - "...S": 5, - "decode": 1, - "val": 5, - "Decoded": 1, - "Encoded": 1, - "decoded": 3, - "decoded_": 1, - "safechar": 3, - "zchar": 1, - "encoded_c": 1, - "encoded_": 2, - "FUNC": 1, - "DH": 1, - "zascii": 1, + "start1": 2, + "sum": 15, + "start2": 1, + "ax": 2, + "bx": 2, + "cx": 2, + "ay": 2, + "cy": 2, + "sumx": 3, + "sqrx": 3, + "sumxy": 5, + "x*x": 1, + "y": 33, + "x*y": 1, + "exercise": 1, + "car": 14, + "zewdAPI": 52, + "Enterprise": 5, + "Web": 5, + "Developer": 5, + "APIs": 1, + "Product": 2, + "Date": 2, + "Fri": 1, + "Nov": 1, + "m_apache": 3, + "getVersion": 1, + "zewdCompiler": 6, + "date": 1, + "getDate": 1, + "compilePage": 2, + "app": 13, + "page": 12, + "technology": 9, + "outputPath": 4, + "multilingual": 4, + "maxLines": 4, + "compileAll": 2, + "templatePageName": 2, + "autoTranslate": 2, + "verbose": 2, + "zewdMgr": 1, + "startSession": 2, + "requestArray": 2, + "serverArray": 1, + "sessionArray": 5, + "filesArray": 1, + "zewdPHP": 8, + ".requestArray": 2, + ".serverArray": 1, + ".sessionArray": 3, + ".filesArray": 1, + "closeSession": 2, + "saveSession": 2, + "endOfPage": 2, + "prePageScript": 2, + "sessid": 146, + "releaseLock": 2, + "tokeniseURL": 2, + "url": 2, + "zewdCompiler16": 5, + "getSessid": 1, + "isTokenExpired": 2, + "zewdSession": 39, + "initialiseSession": 1, + "deleteSession": 2, + "changeApp": 1, + "appName": 4, + "setSessionValue": 6, + "setRedirect": 1, + "toPage": 1, + "path": 4, + "getRootURL": 1, + "_sessid_": 3, + "_token_": 1, + "_nextPage": 1, + "zcvt": 11, + "nextPage": 1, + "isNextPageTokenValid": 2, + "zewdCompiler13": 10, + "isCSP": 1, + "normaliseTextValue": 1, + "text": 6, + "writeLine": 2, + "CacheTempBuffer": 2, + "displayOptions": 2, + "fieldName": 5, + "listName": 6, + "codeValue": 7, + "nnvp": 1, + "nvp": 1, + "textValue": 6, + "getSessionValue": 3, + "codeValueEsc": 7, + "textValueEsc": 7, + "htmlOutputEncode": 2, + "zewdAPI2": 5, + "_codeValueEsc_": 1, + "selected": 4, + "translationMode": 1, + "_appName": 1, + "typex": 1, + "avoid": 1, + "Cache": 3, + "getPhraseIndex": 1, + "zewdCompiler5": 1, + "licensed": 1, + "setWarning": 2, + "isTemp": 11, + "setWLDSymbol": 1, + "Duplicate": 1, + "performance": 1, + "wldAppName": 1, + "wldName": 1, + "wldSessid": 1, + "zzname": 1, + "zv": 6, + "extcErr": 1, + "mess": 3, + "namespace": 1, + "valueErr": 1, + "exportCustomTags": 2, + "tagList": 1, + "filepath": 10, + ".tagList": 1, + "exportAllCustomTags": 2, + "importCustomTags": 2, + "filePath": 2, + "zewdForm": 1, + "stripSpaces": 6, + "obj": 6, + "prop": 6, + "setSessionObject": 3, + "allowJSONAccess": 1, + "sessionName": 30, + "disallowJSONAccess": 1, + "JSONAccess": 1, + "existsInSession": 2, + "existsInSessionArray": 2, + "p3": 3, + "p4": 2, + "p5": 2, + "p6": 2, + "p7": 2, + "p8": 2, + "p9": 2, + "p10": 2, + "p11": 2, + "clearSessionArray": 1, + "arrayName": 35, + "setSessionArray": 1, + "getSessionArray": 1, + "clearArray": 2, + "getSessionArrayErr": 1, + "Come": 1, + "addToSession": 2, + "@name": 4, + "mergeToSession": 1, + "mergeGlobalToSession": 2, + "globalName": 7, + "mergeGlobalFromSession": 2, + "mergeArrayToSession": 1, + "mergeArrayToSessionObject": 2, + ".array": 1, + "mergeArrayFromSession": 1, + "mergeFromSession": 1, + "deleteFromSession": 1, + "deleteFromSessionObject": 1, + "sessionNameExists": 1, + "getSessionArrayValue": 2, + "subscript": 7, + "exists": 6, + ".exists": 1, + "sessionArrayValueExists": 2, + "deleteSessionArrayValue": 2, + "Objects": 1, + "objectName": 13, + "propertyName": 3, + "propertyValue": 5, + "comma": 3, + "objectName_": 2, + "_propertyName": 2, + "_propertyName_": 2, + "_propertyValue_": 1, + "_p": 1, + "quoted": 1, + "removeDocument": 1, + "zewdDOM": 3, + "instanceName": 2, + "clearXMLIndex": 1, + "zewdSchemaForm": 1, + "closeDOM": 1, + "makeTokenString": 1, + "token_": 1, + "r": 88, + "convertDateToSeconds": 1, + "hdate": 7, + "hdate*86400": 1, + "convertSecondsToDate": 1, + "secs": 2, + "secs#86400": 1, + "getTokenExpiry": 2, + "h*86400": 1, + "h": 39, + "randChar": 1, + "lowerCase": 2, + "stripLeadingSpaces": 2, + "d1": 7, + "zd": 1, + "yy": 19, + "dd": 4, + "<10>": 1, + "dd=": 2, + "mm=": 3, + "d1=": 1, + "p1=": 1, + "mm": 7, + "p2=": 1, + "yy=": 1, + "dd_": 1, + "mm_": 1, + "inetTime": 1, + "Decode": 1, + "Internet": 1, + "Format": 1, + "Time": 1, + "H": 1, + "Offset": 1, + "relative": 1, + "GMT": 1, + "eg": 3, + "hh": 4, + "ss": 4, + "_hh": 1, + "time#3600": 1, + "_mm": 1, + "time#60": 1, + "_ss": 2, + "hh_": 1, + "_mm_": 1, + "openNewFile": 2, + "openFile": 2, + "openDOM": 2, + "#39": 1, + "<\",\"<\")>": 1, + "string=": 1, + "gt": 1, + "amp": 1, + "HTML": 1, + "quot": 2, + "no2": 1, + "p1_c_p2": 1, + "getIP": 2, + "IP": 1, + "address": 1, + "ajaxErrorRedirect": 2, + "classExport": 2, + "className": 2, + ".methods": 1, + "strx": 2, + "disableEwdMgr": 1, + "enableEwdMgr": 1, + "enableWLDAccess": 1, + "disableWLDAccess": 1, + "isSSOValid": 2, + "sso": 2, + "username": 8, + "password": 8, + "zewdMgrAjax2": 1, + "uniqueId": 1, + "nodeOID": 2, + "filename": 2, + "linkToParentSession": 2, + "zewdCompiler20": 1, + "exportToGTM": 1, + "label1": 1, + "GMRGPNB0": 1, + "CISC/JH/RM": 1, + "NARRATIVE": 1, + "BUILDER": 1, + "GENERATOR": 1, + "cont.": 1, + "/20/91": 1, + "Text": 1, + "Generator": 1, + "Jan": 1, + "ENTRY": 2, + "WITH": 1, + "GMRGA": 1, + "POINT": 1, + "AT": 1, + "WHICH": 1, + "WANT": 1, + "START": 1, + "BUILDING": 1, + "GMRGE0": 11, + "GMRGADD": 4, + "GMR": 6, + "GMRGA0": 11, + "GMRGPDA": 9, + "GMRGCSW": 2, + "NOW": 1, + "DTC": 1, + "GMRGB0": 9, + "GMRGST": 6, + "GMRGPDT": 2, + "GMRGRUT0": 3, + "GMRGF0": 3, + "GMRGSTAT": 8, + "_GMRGB0_": 2, + "GMRD": 6, + "GMRGSSW": 3, + "SNT": 1, + "GMRGPNB1": 1, + "GMRGNAR": 8, + "GMRGPAR_": 2, + "_GMRGSPC_": 3, + "_GMRGRM": 2, + "_GMRGE0": 1, + "STORETXT": 1, + "GMRGRUT1": 1, + "GMRGSPC": 3, + "GMRGD0": 7, + "ALIST": 1, + "GMRGPLVL": 6, + "GMRGA0_": 1, + "_GMRGD0_": 1, + "_GMRGSSW_": 1, + "_GMRGADD": 1, + "GMRGI0": 6, + "These": 2, + "illustrate": 1, + "dynamic": 1, + "scope": 1, + "triangle1": 1, + "main2": 1, + "triangle2": 1, "WVBRNOT": 1, "HCIOFO/FT": 1, "JR": 1, @@ -36977,6 +45072,54 @@ "WVBRNOT2": 1, "WVPOP": 1, "WVLOOP": 1, + "DataBallet.": 4, + "Laurent": 2, + "Parenteau": 2, + "": 2, + "DataBallet": 4, + "decode": 1, + "val": 5, + "Decoded": 1, + "URL": 2, + "Encoded": 1, + "decoded": 3, + "zlength": 3, + "zextract": 3, + "decoded_": 1, + "else": 7, + "safechar": 3, + "zchar": 1, + "encoded_c": 1, + "encoded_": 2, + "FUNC": 1, + "DH": 1, + "zascii": 1, + "if1": 2, + "simple": 2, + "statement": 3, + "if2": 2, + "statements": 1, + "contrasted": 1, + "": 3, + "a=": 3, + "smaller": 3, + "b=": 4, + "if3": 1, + "clause": 2, + "if4": 1, + "bodies": 1, + "contrasting": 1, + "postconditionals": 1, + "commands": 1, + "post1": 1, + "postconditional": 3, + "purposely": 4, + "TEST": 16, + "false": 5, + "post2": 1, + "special": 2, + "post": 1, + "condition": 1, "ZDIOUT1": 1, "Experimental": 1, "FileMan": 1, @@ -37037,6 +45180,278 @@ "indentation": 1, "tab": 1, "space.": 1, + "Fibonacci": 1, + "computes": 1, + "factorial": 3, + "f*n": 1, + "main": 1, + "MD5": 6, + "Implementation": 1, + "It": 2, + "works": 1, + "please": 1, + "don": 1, + "joke.": 1, + "Serves": 1, + "reverse": 1, + "engineering": 1, + "obtaining": 1, + "boolean": 2, + "integer": 1, + "addition": 1, + "modulo": 1, + "division.": 1, + "md5": 2, + "//en.wikipedia.org/wiki/MD5": 1, + "#64": 1, + "msg_": 1, + "_m_": 1, + "n64": 2, + "read": 2, + ".m": 11, + ".p": 1, + "*i": 3, + "#16": 3, + "xor": 4, + "rotate": 5, + "#4294967296": 6, + "n32h": 5, + "bit": 5, + "#2": 1, + "*2147483648": 2, + "a#2": 1, + "b#2": 1, + ".a": 1, + ".b": 1, + "rol": 1, + "a*": 1, + "**n": 1, + "c#4294967296": 1, + "*n": 1, + "n#256": 1, + "n#16": 2, + "encode": 1, + "Return": 1, + "base64": 6, + "Filename": 1, + "safe": 3, + "alphabet": 2, + "RFC": 1, + "todrop": 2, + "Populate": 1, + "only.": 1, + "Digest": 2, + "OpenSSL": 3, + "based": 1, + "digest": 19, + "rewrite": 1, + "EVP_DigestInit": 1, + "wrapper.": 1, + "//www.openssl.org/docs/crypto/EVP_DigestInit.html": 1, + "digest.init": 3, + "usually": 1, + "algorithm": 1, + "specification.": 1, + "Anyway": 1, + "properly": 1, + "fail.": 1, + "HEX": 1, + "digest.update": 2, + ".c": 2, + "digest.final": 2, + ".d": 1, + "alg": 3, + "context": 1, + "try": 1, + "etc": 1, + "returned": 1, + "occurs": 1, + "e.g.": 2, + "unknown": 1, + "update": 1, + "ctx": 4, + "updates": 1, + ".ctx": 2, + ".msg": 1, + "final": 1, + "hex": 1, + "frees": 1, + "memory": 1, + "allocated": 1, + ".digest": 1, + "algorithms": 1, + "availability": 1, + "depends": 1, + "libcrypto": 1, + "configuration": 1, + "md4": 1, + "sha": 1, + "sha1": 1, + "sha224": 1, + "sha256": 1, + "sha512": 1, + "dss1": 1, + "ripemd160": 1, + "zewdDemo": 1, + "Tutorial": 1, + "Wed": 1, + "Apr": 1, + "getLanguage": 1, + "getRequestValue": 1, + "login": 1, + "getTextValue": 4, + "getPasswordValue": 2, + "_username_": 1, + "_password": 1, + "logine": 1, + "textid": 1, + "errorMessage": 1, + "ewdDemo": 8, + "clearList": 2, + "appendToList": 4, + "addUsername": 1, + "newUsername": 5, + "newUsername_": 1, + "setTextValue": 4, + "testValue": 1, + "getSelectValue": 3, + "_user": 1, + "getPassword": 1, + "setPassword": 1, + "getObjDetails": 1, + "_user_": 1, + "_data": 2, + "setRadioOn": 2, + "initialiseCheckbox": 2, + "setCheckboxOn": 3, + "createLanguageList": 1, + "setMultipleSelectOn": 2, + "clearTextArea": 2, + "textarea": 2, + "createTextArea": 1, + ".textarea": 1, + "userType": 4, + "setMultipleSelectValues": 1, + ".selected": 1, + "testField3": 3, + ".value": 1, + "testField2": 1, + "field3": 1, + "dateTime": 1, + "Mumtris": 3, + "tetris": 1, + "game": 1, + "MUMPS": 1, + "fun.": 1, + "Resize": 1, + "terminal": 2, + "maximize": 1, + "PuTTY": 1, + "window": 1, + "restart": 3, + "report": 1, + "true": 2, + "mumtris.": 1, + "ansi": 2, + "compatible": 1, + "cursor": 1, + "positioning.": 1, + "NOTICE": 1, + "uses": 1, + "making": 1, + "delays": 1, + "lower": 1, + "s.": 1, + "That": 1, + "means": 2, + "CPU": 1, + "fall": 5, + "lock": 2, + "preview": 3, + "over": 2, + "exit": 3, + "short": 1, + "circuit": 1, + "redraw": 3, + "timeout": 1, + "harddrop": 1, + "other": 1, + "ex": 5, + "hd": 3, + "*c": 1, + "<0&'d>": 1, + "t10m": 1, + "q=": 6, + "d=": 1, + "zb": 2, + "right": 3, + "fl=": 1, + "gr=": 1, + "hl": 2, + "help": 2, + "drop": 2, + "hd=": 1, + "matrix": 2, + "draw": 3, + "ticks": 2, + "h=": 2, + "1000000000": 1, + "e=": 1, + "t10m=": 1, + "100": 2, + "n=": 1, + "ne=": 1, + "y=": 3, + "r=": 3, + "collision": 6, + "score": 5, + "k=": 1, + "j=": 4, + "<1))))>": 1, + "800": 1, + "200": 1, + "lv": 5, + "lc=": 1, + "10": 1, + "lc": 3, + "mt_": 2, + "cls": 6, + "dh/2": 6, + "dw/2": 6, + "*s": 4, + "echo": 1, + "intro": 1, + "workaround": 1, + "ANSI": 1, + "driver": 1, + "NL": 1, + "some": 1, + "clearscreen": 1, + "h/2": 3, + "*w/2": 3, + "fill": 3, + "fl": 2, + "*x": 1, + "mx": 4, + "my": 5, + "**lv*sb": 1, + "*lv": 1, + "sc": 3, + "ne": 2, + "gr": 1, + "w*3": 1, + "dev": 1, + "zsh": 1, + "dw": 1, + "dh": 1, + "elemId": 3, + "rotateVersions": 1, + "rotateVersion": 2, + "bottom": 1, + "coordinate": 1, + "____": 1, + "__": 2, + "||": 1, "M/Wire": 4, "Protocol": 2, "Systems": 1, @@ -37213,5444 +45628,534 @@ "c1": 4, "buf_c1_": 1 }, - "Makefile": { - "all": 1, - "hello": 4, - "main.o": 3, - "factorial.o": 3, - "hello.o": 3, - "g": 4, - "+": 8, - "-": 6, - "o": 1, - "main.cpp": 2, - "c": 3, - "factorial.cpp": 2, - "hello.cpp": 2, - "clean": 1, - "rm": 1, - "rf": 1, - "*o": 1, - "SHEBANG#!make": 1, - "%": 1, - "ls": 1, - "l": 1 + "Scheme": { + "(": 366, + "import": 1, + "rnrs": 1, + ")": 380, + "only": 1, + "surfage": 4, + "s1": 1, + "lists": 1, + "filter": 4, + "-": 192, + "map": 4, + "gl": 12, + "glut": 2, + "dharmalab": 2, + "records": 1, + "define": 30, + "record": 5, + "type": 5, + "math": 1, + "basic": 2, + "agave": 4, + "glu": 1, + "compat": 1, + "geometry": 1, + "pt": 49, + "glamour": 2, + "window": 2, + "misc": 1, + "s19": 1, + "time": 24, + "s27": 1, + "random": 27, + "bits": 1, + "s42": 1, + "eager": 1, + "comprehensions": 1, + ";": 1684, + "utilities": 1, + "say": 9, + ".": 2, + "args": 2, + "for": 7, + "each": 7, + "display": 4, + "newline": 2, + "translate": 6, + "p": 6, + "glTranslated": 1, + "x": 10, + "y": 3, + "radians": 8, + "/": 7, + "pi": 2, + "degrees": 2, + "angle": 6, + "a": 19, + "cos": 1, + "sin": 1, + "current": 15, + "in": 14, + "nanoseconds": 2, + "let": 2, + "val": 3, + "+": 28, + "second": 1, + "nanosecond": 1, + "seconds": 12, + "micro": 1, + "milli": 1, + "base": 2, + "step": 1, + "score": 5, + "level": 5, + "ships": 1, + "spaceship": 5, + "fields": 4, + "mutable": 14, + "pos": 16, + "vel": 4, + "theta": 1, + "force": 1, + "particle": 8, + "birth": 2, + "lifetime": 1, + "color": 2, + "particles": 11, + "asteroid": 14, + "radius": 6, + "number": 3, + "of": 3, + "starting": 3, + "asteroids": 15, + "#f": 5, + "bullet": 16, + "pack": 12, + "is": 8, + "initialize": 1, + "size": 1, + "title": 1, + "reshape": 1, + "width": 8, + "height": 8, + "source": 2, + "randomize": 1, + "default": 1, + "wrap": 4, + "mod": 2, + "ship": 8, + "make": 11, + "ammo": 9, + "set": 19, + "list": 6, + "ec": 6, + "i": 6, + "inexact": 16, + "integer": 25, + "buffered": 1, + "procedure": 1, + "lambda": 12, + "background": 1, + "glColor3f": 5, + "matrix": 5, + "excursion": 5, + "ship.pos": 5, + "glRotated": 2, + "ship.theta": 10, + "glutWireCone": 1, + "par": 6, + "c": 4, + "vector": 6, + "ref": 3, + "glutWireSphere": 3, + "bullets": 7, + "pack.pos": 3, + "glutWireCube": 1, + "last": 3, + "dt": 7, + "update": 2, + "system": 2, + "pt*n": 8, + "ship.vel": 5, + "pack.vel": 1, + "cond": 2, + "par.birth": 1, + "par.lifetime": 1, + "else": 2, + "par.pos": 2, + "par.vel": 1, + "bullet.birth": 1, + "bullet.pos": 2, + "bullet.vel": 1, + "a.pos": 2, + "a.vel": 1, + "if": 1, + "<": 1, + "a.radius": 1, + "contact": 2, + "b": 4, + "when": 5, + "<=>": 3, + "distance": 3, + "begin": 2, + "1": 2, + "f": 1, + "append": 4, + "4": 1, + "50": 4, + "0": 7, + "100": 6, + "2": 1, + "n": 2, + "null": 1, + "10": 1, + "5": 1, + "glutIdleFunc": 1, + "glutPostRedisplay": 1, + "glutKeyboardFunc": 1, + "key": 2, + "case": 1, + "char": 1, + "#": 6, + "w": 1, + "d": 1, + "s": 1, + "space": 1, + "cons": 1, + "glutMainLoop": 1, + "library": 1, + "libs": 1, + "export": 1, + "list2": 2, + "objs": 2, + "should": 1, + "not": 1, + "be": 1, + "exported": 1 + }, + "SystemVerilog": { + "module": 3, + "endpoint_phy_wrapper": 2, + "(": 92, + "input": 12, + "clk_sys_i": 2, + "clk_ref_i": 6, + "clk_rx_i": 3, + "rst_n_i": 3, + "IWishboneMaster.master": 2, + "src": 1, + "IWishboneSlave.slave": 1, + "snk": 1, + "sys": 1, + "output": 6, + "[": 17, + "]": 17, + "td_o": 2, + "rd_i": 2, + "txn_o": 2, + "txp_o": 2, + "rxn_i": 2, + "rxp_i": 2, + ")": 92, + ";": 32, + "wire": 12, + "rx_clock": 3, + "parameter": 2, + "g_phy_type": 6, + "gtx_data": 3, + "gtx_k": 3, + "gtx_disparity": 3, + "gtx_enc_error": 3, + "grx_data": 3, + "grx_clk": 1, + "grx_k": 3, + "grx_enc_error": 3, + "grx_bitslide": 2, + "gtp_rst": 2, + "tx_clock": 3, + "generate": 1, + "if": 5, + "begin": 4, + "assign": 2, + "wr_tbi_phy": 1, + "U_Phy": 1, + ".serdes_rst_i": 1, + ".serdes_loopen_i": 1, + "b0": 5, + ".serdes_enable_i": 1, + "b1": 2, + ".serdes_tx_data_i": 1, + ".serdes_tx_k_i": 1, + ".serdes_tx_disparity_o": 1, + ".serdes_tx_enc_err_o": 1, + ".serdes_rx_data_o": 1, + ".serdes_rx_k_o": 1, + ".serdes_rx_enc_err_o": 1, + ".serdes_rx_bitslide_o": 1, + ".tbi_refclk_i": 1, + ".tbi_rbclk_i": 1, + ".tbi_td_o": 1, + ".tbi_rd_i": 1, + ".tbi_syncen_o": 1, + ".tbi_loopen_o": 1, + ".tbi_prbsen_o": 1, + ".tbi_enable_o": 1, + "end": 4, + "else": 2, + "//": 3, + "wr_gtx_phy_virtex6": 1, + "#": 3, + ".g_simulation": 2, + "U_PHY": 1, + ".clk_ref_i": 2, + ".tx_clk_o": 1, + ".tx_data_i": 1, + ".tx_k_i": 1, + ".tx_disparity_o": 1, + ".tx_enc_err_o": 1, + ".rx_rbclk_o": 1, + ".rx_data_o": 1, + ".rx_k_o": 1, + ".rx_enc_err_o": 1, + ".rx_bitslide_o": 1, + ".rst_i": 1, + ".loopen_i": 1, + ".pad_txn0_o": 1, + ".pad_txp0_o": 1, + ".pad_rxn0_i": 1, + ".pad_rxp0_i": 1, + "endgenerate": 1, + "wr_endpoint": 1, + ".g_pcs_16bit": 1, + ".g_rx_buffer_size": 1, + ".g_with_rx_buffer": 1, + ".g_with_timestamper": 1, + ".g_with_dmtd": 1, + ".g_with_dpi_classifier": 1, + ".g_with_vlans": 1, + ".g_with_rtu": 1, + "DUT": 1, + ".clk_sys_i": 1, + ".clk_dmtd_i": 1, + ".rst_n_i": 1, + ".pps_csync_p1_i": 1, + ".src_dat_o": 1, + "snk.dat_i": 1, + ".src_adr_o": 1, + "snk.adr": 1, + ".src_sel_o": 1, + "snk.sel": 1, + ".src_cyc_o": 1, + "snk.cyc": 1, + ".src_stb_o": 1, + "snk.stb": 1, + ".src_we_o": 1, + "snk.we": 1, + ".src_stall_i": 1, + "snk.stall": 1, + ".src_ack_i": 1, + "snk.ack": 1, + ".src_err_i": 1, + ".rtu_full_i": 1, + ".rtu_rq_strobe_p1_o": 1, + ".rtu_rq_smac_o": 1, + ".rtu_rq_dmac_o": 1, + ".rtu_rq_vid_o": 1, + ".rtu_rq_has_vid_o": 1, + ".rtu_rq_prio_o": 1, + ".rtu_rq_has_prio_o": 1, + ".wb_cyc_i": 1, + "sys.cyc": 1, + ".wb_stb_i": 1, + "sys.stb": 1, + ".wb_we_i": 1, + "sys.we": 1, + ".wb_sel_i": 1, + "sys.sel": 1, + ".wb_adr_i": 1, + "sys.adr": 1, + ".wb_dat_i": 1, + "sys.dat_o": 1, + ".wb_dat_o": 1, + "sys.dat_i": 1, + ".wb_ack_o": 1, + "sys.ack": 1, + "endmodule": 2, + "priority_encoder": 1, + "INPUT_WIDTH": 3, + "OUTPUT_WIDTH": 3, + "logic": 2, + "-": 4, + "input_data": 2, + "output_data": 3, + "int": 1, + "ii": 6, + "always_comb": 1, + "for": 2, + "<": 1, + "+": 3, + "function": 1, + "integer": 2, + "log2": 4, + "x": 6, + "endfunction": 1, + "fifo": 1, + "clk_50": 1, + "clk_2": 1, + "reset_n": 1, + "data_out": 1, + "empty": 1 }, "Markdown": { "Tender": 1 }, - "Mask": { - "header": 1, - "{": 10, - "img": 1, - ".logo": 1, - "src": 1, - "alt": 1, - "logo": 1, - ";": 3, - "h4": 1, - "if": 1, - "(": 3, - "currentUser": 1, - ")": 3, - ".account": 1, - "a": 1, - "href": 1, - "}": 10, - ".view": 1, - "ul": 1, - "for": 1, - "user": 1, - "index": 1, - "of": 1, - "users": 1, - "li.user": 1, - "data": 1, - "-": 3, - "id": 1, - ".name": 1, - ".count": 1, - ".date": 1, - "countdownComponent": 1, - "input": 1, - "type": 1, - "text": 1, - "dualbind": 1, - "value": 1, - "button": 1, - "x": 2, - "signal": 1, - "h5": 1, - "animation": 1, - "slot": 1, - "@model": 1, - "@next": 1, - "footer": 1, - "bazCompo": 1 - }, - "Mathematica": { - "Get": 1, - "[": 74, - "]": 73, - "Paclet": 1, - "Name": 1, - "-": 8, - "Version": 1, - "MathematicaVersion": 1, - "Description": 1, - "Creator": 1, - "Extensions": 1, - "{": 2, - "Language": 1, - "MainPage": 1, - "}": 2, - "BeginPackage": 1, - ";": 41, - "PossiblyTrueQ": 3, - "usage": 22, - "PossiblyFalseQ": 2, - "PossiblyNonzeroQ": 3, - "Begin": 2, - "expr_": 4, - "Not": 6, - "TrueQ": 4, - "expr": 4, - "End": 2, - "AnyQ": 3, - "AnyElementQ": 4, - "AllQ": 2, - "AllElementQ": 2, - "AnyNonzeroQ": 2, - "AnyPossiblyNonzeroQ": 2, - "RealQ": 3, - "PositiveQ": 3, - "NonnegativeQ": 3, - "PositiveIntegerQ": 3, - "NonnegativeIntegerQ": 4, - "IntegerListQ": 5, - "PositiveIntegerListQ": 3, - "NonnegativeIntegerListQ": 3, - "IntegerOrListQ": 2, - "PositiveIntegerOrListQ": 2, - "NonnegativeIntegerOrListQ": 2, - "SymbolQ": 2, - "SymbolOrNumberQ": 2, - "cond_": 4, - "L_": 5, - "Fold": 3, - "Or": 1, - "False": 4, - "cond": 4, - "/@": 3, - "L": 4, - "Flatten": 1, - "And": 4, - "True": 2, - "SHEBANG#!#!=": 1, - "n_": 5, - "Im": 1, - "n": 8, - "Positive": 2, - "IntegerQ": 3, - "&&": 4, - "input_": 6, - "ListQ": 1, - "input": 11, - "MemberQ": 3, - "IntegerQ/@input": 1, - "||": 4, - "a_": 2, - "Head": 2, - "a": 3, - "Symbol": 2, - "NumericQ": 1, - "EndPackage": 1 - }, - "Matlab": { - "function": 34, - "[": 311, - "dx": 6, - "y": 25, - "]": 311, - "adapting_structural_model": 2, - "(": 1379, - "t": 32, - "x": 46, - "u": 3, - "varargin": 25, - ")": 1380, - "%": 554, - "size": 11, - "aux": 3, - "{": 157, - "end": 150, - "}": 157, - ";": 909, - "m": 44, - "zeros": 61, - "b": 12, - "for": 78, - "i": 338, - "if": 52, - "+": 169, - "elseif": 14, - "else": 23, - "display": 10, - "aux.pars": 3, - ".*": 2, - "Yp": 2, - "human": 1, - "aux.timeDelay": 2, - "c1": 5, - "aux.m": 3, - "*": 46, - "aux.b": 3, - "e": 14, - "-": 673, - "c2": 5, - "Yc": 5, - "parallel": 2, - "plant": 4, - "aux.plantFirst": 2, - "aux.plantSecond": 2, - "Ys": 1, - "feedback": 1, - "A": 11, - "B": 9, - "C": 13, - "D": 7, - "tf2ss": 1, - "Ys.num": 1, - "Ys.den": 1, - "average": 1, - "n": 102, - "|": 2, - "&": 4, - "error": 16, - "sum": 2, - "/length": 1, - "bicycle": 7, - "bicycle_state_space": 1, - "speed": 20, - "S": 5, - "dbstack": 1, - "CURRENT_DIRECTORY": 2, - "fileparts": 1, - ".file": 1, - "par": 7, - "par_text_to_struct": 4, - "filesep": 14, - "...": 162, - "whipple_pull_force_abcd": 2, - "states": 7, - "outputs": 10, - "inputs": 14, - "defaultSettings.states": 1, - "defaultSettings.inputs": 1, - "defaultSettings.outputs": 1, - "userSettings": 3, - "varargin_to_structure": 2, - "struct": 1, - "settings": 3, - "overwrite_settings": 2, - "defaultSettings": 3, - "minStates": 2, - "ismember": 15, - "settings.states": 3, - "<": 9, - "keepStates": 2, - "find": 24, - "removeStates": 1, - "row": 6, - "abs": 12, - "col": 5, - "s": 13, - "sprintf": 11, - "removeInputs": 2, - "settings.inputs": 1, - "keepOutputs": 2, - "settings.outputs": 1, - "It": 1, - "is": 7, - "not": 3, - "possible": 1, - "to": 9, - "keep": 1, - "output": 7, - "because": 1, - "it": 1, - "depends": 1, - "on": 13, - "input": 14, - "StateName": 1, - "OutputName": 1, - "InputName": 1, - "x_0": 45, - "linspace": 14, - "vx_0": 37, - "z": 3, - "j": 242, - "*vx_0": 1, - "figure": 17, - "pcolor": 2, - "shading": 3, - "flat": 3, - "name": 4, - "order": 11, - "convert_variable": 1, - "variable": 10, - "coordinates": 6, - "speeds": 21, - "get_variables": 2, - "columns": 4, - "create_ieee_paper_plots": 2, - "data": 27, - "rollData": 8, - "global": 6, - "goldenRatio": 12, - "sqrt": 14, - "/": 59, - "exist": 1, - "mkdir": 1, - "linestyles": 15, - "colors": 13, - "loop_shape_example": 3, - "data.Benchmark.Medium": 2, - "plot_io_roll": 3, - "open_loop_all_bikes": 1, - "handling_all_bikes": 1, - "path_plots": 1, - "var": 3, - "io": 7, - "typ": 3, - "length": 49, - "plot_io": 1, - "phase_portraits": 2, - "eigenvalues": 2, - "bikeData": 2, - "figWidth": 24, - "figHeight": 19, - "set": 43, - "gcf": 17, - "freq": 12, - "hold": 23, - "all": 15, - "closedLoops": 1, - "bikeData.closedLoops": 1, - "bops": 7, - "bodeoptions": 1, - "bops.FreqUnits": 1, - "strcmp": 24, - "gray": 7, - "deltaNum": 2, - "closedLoops.Delta.num": 1, - "deltaDen": 2, - "closedLoops.Delta.den": 1, - "bodeplot": 6, - "tf": 18, - "neuroNum": 2, - "neuroDen": 2, - "whichLines": 3, - "phiDotNum": 2, - "closedLoops.PhiDot.num": 1, - "phiDotDen": 2, - "closedLoops.PhiDot.den": 1, - "closedBode": 3, - "off": 10, - "opts": 4, - "getoptions": 2, - "opts.YLim": 3, - "opts.PhaseMatching": 2, - "opts.PhaseMatchingValue": 2, - "opts.Title.String": 2, - "setoptions": 2, - "lines": 17, - "findobj": 5, - "raise": 19, - "plotAxes": 22, - "curPos1": 4, - "get": 11, - "curPos2": 4, - "xLab": 8, - "legWords": 3, - "closeLeg": 2, - "legend": 7, - "axes": 9, - "db1": 4, - "text": 11, - "db2": 2, - "dArrow1": 2, - "annotation": 13, - "dArrow2": 2, - "dArrow": 2, - "filename": 21, - "pathToFile": 11, - "print": 6, - "fix_ps_linestyle": 6, - "openLoops": 1, - "bikeData.openLoops": 1, - "num": 24, - "openLoops.Phi.num": 1, - "den": 15, - "openLoops.Phi.den": 1, - "openLoops.Psi.num": 1, - "openLoops.Psi.den": 1, - "openLoops.Y.num": 1, - "openLoops.Y.den": 1, - "openBode": 3, - "line": 15, - "wc": 14, - "wShift": 5, - "num2str": 10, - "bikeData.handlingMetric.num": 1, - "bikeData.handlingMetric.den": 1, - "w": 6, - "mag": 4, - "phase": 2, - "bode": 5, - "metricLine": 1, - "plot": 26, - "k": 75, - "Linewidth": 7, - "Color": 13, - "Linestyle": 6, - "Handling": 2, - "Quality": 2, - "Metric": 2, - "Frequency": 2, - "rad/s": 4, - "Level": 6, - "benchmark": 1, - "Handling.eps": 1, - "plots": 4, - "deps2": 1, - "loose": 4, - "PaperOrientation": 3, - "portrait": 3, - "PaperUnits": 3, - "inches": 3, - "PaperPositionMode": 3, - "manual": 3, - "PaperPosition": 3, - "PaperSize": 3, - "rad/sec": 1, - "phi": 13, - "Open": 1, - "Loop": 1, - "Bode": 1, - "Diagrams": 1, - "at": 3, - "m/s": 6, - "Latex": 1, - "type": 4, - "LineStyle": 2, - "LineWidth": 2, - "Location": 2, - "Southwest": 1, - "Fontsize": 4, - "YColor": 2, - "XColor": 1, - "Position": 6, - "Xlabel": 1, - "Units": 1, - "normalized": 1, - "openBode.eps": 1, - "deps2c": 3, - "maxMag": 2, - "max": 9, - "magnitudes": 1, - "area": 1, - "fillColors": 1, - "gca": 8, - "speedNames": 12, - "metricLines": 2, - "bikes": 24, - "data.": 6, - ".": 13, - ".handlingMetric.num": 1, - ".handlingMetric.den": 1, - "chil": 2, - "legLines": 1, - "Hands": 1, - "free": 1, - "@": 1, - "handling.eps": 1, - "f": 13, - "YTick": 1, - "YTickLabel": 1, - "Path": 1, - "Southeast": 1, - "Distance": 1, - "Lateral": 1, - "Deviation": 1, - "paths.eps": 1, - "d": 12, - "like": 1, - "plot.": 1, - "names": 6, - "prettyNames": 3, - "units": 3, - "index": 6, - "fieldnames": 5, - "data.Browser": 1, - "maxValue": 4, - "oneSpeed": 3, - "history": 7, - "oneSpeed.": 3, - "round": 1, - "pad": 10, - "yShift": 16, - "xShift": 3, - "time": 21, - "oneSpeed.time": 2, - "oneSpeed.speed": 2, - "distance": 6, - "xAxis": 12, - "xData": 3, - "textX": 3, - "ylim": 2, - "ticks": 4, - "xlabel": 8, - "xLimits": 6, - "xlim": 8, - "loc": 3, - "l1": 2, - "l2": 2, - "first": 3, - "ylabel": 4, - "box": 4, - "&&": 13, - "x_r": 6, - "y_r": 6, - "w_r": 5, - "h_r": 5, - "rectangle": 2, - "w_r/2": 4, - "h_r/2": 4, - "x_a": 10, - "y_a": 10, - "w_a": 7, - "h_a": 5, - "ax": 15, - "axis": 5, - "rollData.speed": 1, - "rollData.time": 1, - "path": 3, - "rollData.path": 1, - "frontWheel": 3, - "rollData.outputs": 3, - "rollAngle": 4, - "steerAngle": 4, - "rollTorque": 4, - "rollData.inputs": 1, - "subplot": 3, - "h1": 5, - "h2": 5, - "plotyy": 3, - "inset": 3, - "gainChanges": 2, - "loopNames": 4, - "xy": 7, - "xySource": 7, - "xlabels": 2, - "ylabels": 2, - "legends": 3, - "floatSpec": 3, - "twentyPercent": 1, - "generate_data": 5, - "nominalData": 1, - "nominalData.": 2, - "bikeData.": 2, - "twentyPercent.": 2, - "equal": 2, - "leg1": 2, - "bikeData.modelPar.": 1, - "leg2": 2, - "twentyPercent.modelPar.": 1, - "eVals": 5, - "pathToParFile": 2, - "str": 2, - "eigenValues": 1, - "eig": 6, - "real": 3, - "zeroIndices": 3, - "ones": 6, - "maxEvals": 4, - "maxLine": 7, - "minLine": 4, - "min": 1, - "speedInd": 12, - "cross_validation": 1, - "hyper_parameter": 3, - "num_data": 2, - "K": 4, - "indices": 2, - "crossvalind": 1, - "errors": 4, - "test_idx": 4, - "train_idx": 3, - "x_train": 2, - "y_train": 2, - "train": 1, - "x_test": 3, - "y_test": 3, - "calc_cost": 1, - "calc_error": 2, - "mean": 2, - "value": 2, - "isterminal": 2, - "direction": 2, - "mu": 73, - "FIXME": 1, - "from": 2, - "the": 14, - "largest": 1, - "primary": 1, - "clear": 13, - "tic": 7, - "T": 22, - "x_min": 3, - "x_max": 3, - "y_min": 3, - "y_max": 3, - "how": 1, - "many": 1, - "points": 11, - "per": 5, - "one": 3, - "measure": 1, - "unit": 1, - "both": 1, - "in": 8, - "and": 7, - "ds": 1, - "x_res": 7, - "*n": 2, - "y_res": 7, - "grid_x": 3, - "grid_y": 3, - "advected_x": 12, - "advected_y": 12, - "parfor": 5, - "X": 6, - "ode45": 6, - "@dg": 1, - "store": 4, - "advected": 2, - "positions": 2, - "as": 4, - "they": 2, - "would": 2, - "appear": 2, - "coords": 2, - "Compute": 3, - "FTLE": 14, - "sigma": 6, - "compute": 2, - "Jacobian": 3, - "*ds": 4, - "eigenvalue": 2, - "of": 35, - "*phi": 2, - "log": 2, - "lambda_max": 2, - "/abs": 3, - "*T": 3, - "toc": 5, - "field": 2, - "contourf": 2, - "location": 1, - "EastOutside": 1, - "f_x_t": 2, - "inline": 1, - "grid_min": 3, - "grid_max": 3, - "grid_width": 1, - "grid_spacing": 5, - "grid_width/": 1, - "*grid_width/": 4, - "colorbar": 1, - "load_data": 4, - "t0": 6, - "t1": 6, - "t2": 6, - "t3": 1, - "dataPlantOne": 3, - "data.Ts": 6, - "dataAdapting": 3, - "dataPlantTwo": 3, - "guessPlantOne": 4, - "resultPlantOne": 1, - "find_structural_gains": 2, - "yh": 2, - "fit": 6, - "x0": 4, - "compare": 3, - "resultPlantOne.fit": 1, - "guessPlantTwo": 3, - "resultPlantTwo": 1, - "resultPlantTwo.fit": 1, - "kP1": 4, - "resultPlantOne.fit.par": 1, - "kP2": 3, - "resultPlantTwo.fit.par": 1, - "gainSlopeOffset": 6, - "eye": 9, - "this": 2, - "only": 7, - "uses": 1, - "tau": 1, - "through": 1, - "wfs": 1, - "true": 2, - "plantOneSlopeOffset": 3, - "plantTwoSlopeOffset": 3, - "mod": 3, - "idnlgrey": 1, - "pem": 1, - "guess.plantOne": 3, - "guess.plantTwo": 2, - "plantNum.plantOne": 2, - "plantNum.plantTwo": 2, - "sections": 13, - "secData.": 1, - "||": 3, - "guess.": 2, - "result.": 2, - ".fit.par": 1, - "currentGuess": 2, - "warning": 1, - "randomGuess": 1, - "The": 6, - "self": 2, - "validation": 2, - "VAF": 2, - "f.": 2, - "data/": 1, - "results.mat": 1, - "guess": 1, - "plantNum": 1, - "result": 5, - "plots/": 1, - ".png": 1, - "task": 1, - "closed": 1, - "loop": 1, - "system": 2, - "u.": 1, - "gain": 1, - "guesses": 1, - "k1": 4, - "k2": 3, - "k3": 3, - "k4": 4, - "identified": 1, - "gains": 12, - ".vaf": 1, - "Elements": 1, - "grid": 1, - "definition": 2, - "Dimensionless": 1, - "integrating": 1, - "Choice": 2, - "mass": 2, - "parameter": 2, - "Computation": 9, - "Lagrangian": 3, - "Points": 2, - "xl1": 13, - "yl1": 12, - "xl2": 9, - "yl2": 8, - "xl3": 8, - "yl3": 8, - "xl4": 10, - "yl4": 9, - "xl5": 8, - "yl5": 8, - "Lagr": 6, - "initial": 5, - "total": 6, - "energy": 8, - "E_L1": 4, - "Omega": 7, - "C_L1": 3, - "*E_L1": 1, - "Szebehely": 1, - "E": 8, - "Offset": 2, - "Initial": 3, - "conditions": 3, - "range": 2, - "x_0_min": 8, - "x_0_max": 8, - "vx_0_min": 8, - "vx_0_max": 8, - "y_0": 29, - "ndgrid": 2, - "vy_0": 22, - "*E": 2, - "*Omega": 5, - "vx_0.": 2, - "E_cin": 4, - "x_T": 25, - "y_T": 17, - "vx_T": 22, - "vy_T": 12, - "filtro": 15, - "E_T": 11, - "delta_E": 7, - "a": 17, - "matrix": 3, - "numbers": 2, - "integration": 9, - "steps": 2, - "each": 2, - "np": 8, - "number": 2, - "integrated": 5, - "fprintf": 18, - "Energy": 4, - "tolerance": 2, - "setting": 4, - "energy_tol": 6, - "Setting": 1, - "options": 14, - "integrator": 2, - "RelTol": 2, - "AbsTol": 2, - "From": 1, - "Short": 1, - "odeset": 4, - "Parallel": 2, - "equations": 2, - "motion": 2, - "h": 19, - "waitbar": 6, - "r1": 3, - "r2": 3, - "g": 5, - "i/n": 1, - "y_0.": 2, - "./": 1, - "mu./": 1, - "isreal": 8, - "Check": 6, - "velocity": 2, - "positive": 2, - "Kinetic": 2, - "Y": 19, - "@f_reg": 1, - "Saving": 4, - "solutions": 2, - "final": 2, - "difference": 2, - "with": 2, - "conservation": 2, - "position": 2, - "point": 14, - "interesting": 4, - "non": 2, - "sense": 2, - "bad": 4, - "close": 4, - "t_integrazione": 3, - "filtro_1": 12, - "dphi": 12, - "ftle": 10, - "ftle_norm": 1, - "ds_x": 1, - "ds_vx": 1, - "La": 1, - "direzione": 1, - "dello": 1, - "spostamento": 1, - "la": 2, - "decide": 1, - "il": 1, - "denominatore": 1, - "TODO": 1, - "spiegarsi": 1, - "teoricamente": 1, - "come": 1, - "mai": 1, - "matrice": 1, - "pu": 1, - "essere": 1, - "ridotta": 1, - "x2": 1, - "*ds_x": 2, - "*ds_vx": 2, - "Manual": 2, - "visualize": 2, - "*log": 2, - "dphi*dphi": 1, - "tempo": 4, - "integrare": 2, - ".2f": 5, - "calcolare": 2, - "var_": 2, - "_": 2, - "var_xvx_": 2, - "ode00": 2, - "_n": 2, - "save": 2, - "nome": 2, - "Transforming": 1, - "into": 1, - "Hamiltonian": 1, - "variables": 2, - "px_0": 2, - "py_0": 2, - "px_T": 4, - "py_T": 4, - "inf": 1, - "@cr3bp_jac": 1, - "@fH": 1, - "EnergyH": 1, - "t_integr": 1, - "Back": 1, - "Inf": 1, - "_e": 1, - "_H": 1, - "Range": 1, - "E_0": 4, - "C_L1/2": 1, - "Y_0": 4, - "nx": 32, - "nvx": 32, - "dvx": 3, - "ny": 29, - "dy": 5, - "/2": 3, - "ne": 29, - "de": 4, - "e_0": 7, - "Definition": 1, - "arrays": 1, - "In": 1, - "approach": 1, - "useful": 9, - "pints": 1, - "are": 1, - "stored": 1, - "filter": 14, - "l": 64, - "v_y": 3, - "*e_0": 3, - "vx": 2, - "vy": 2, - "Selection": 1, - "Data": 2, - "transfer": 1, - "GPU": 3, - "x_gpu": 3, - "gpuArray": 4, - "y_gpu": 3, - "vx_gpu": 3, - "vy_gpu": 3, - "Integration": 2, - "N": 9, - "x_f": 3, - "y_f": 3, - "vx_f": 3, - "vy_f": 3, - "arrayfun": 2, - "@RKF45_FILE_gpu": 1, - "back": 1, - "CPU": 1, - "memory": 1, - "cleaning": 1, - "gather": 4, - "Construction": 1, - "computation": 2, - "X_T": 4, - "Y_T": 4, - "VX_T": 4, - "VY_T": 3, - "filter_ftle": 11, - "Compute_FILE_gpu": 1, - "Plot": 1, - "results": 1, - "squeeze": 1, - "clc": 1, - "load_bikes": 2, - "e_T": 7, - "Integrate_FILE": 1, - "Integrate": 6, - "Look": 2, - "phisically": 2, - "meaningful": 6, - "meaningless": 2, - "i/nx": 2, - "*Potential": 5, - "ci": 9, - "te": 2, - "ye": 9, - "ie": 2, - "@f": 6, - "Potential": 1, - "delta_e": 3, - "Integrate_FTLE_Gawlick_ell": 1, - "ecc": 2, - "nu": 2, - "ecc*cos": 1, - "@f_ell": 1, - "Consider": 1, - "also": 1, - "negative": 1, - "goodness": 1, - "roots": 3, - "*mu": 6, - "c3": 3, - "lane_change": 1, - "start": 4, - "width": 3, - "slope": 3, - "pathLength": 3, - "single": 1, - "double": 1, - "Double": 1, - "lane": 4, - "change": 1, - "needs": 1, - "lane.": 1, - "laneLength": 4, - "startOfSlope": 3, - "endOfSlope": 1, - "<=>": 1, - "1": 1, - "downSlope": 3, - "gains.Benchmark.Slow": 1, - "place": 2, - "holder": 2, - "gains.Browserins.Slow": 1, - "gains.Browser.Slow": 1, - "gains.Pista.Slow": 1, - "gains.Fisher.Slow": 1, - "gains.Yellow.Slow": 1, - "gains.Yellowrev.Slow": 1, - "gains.Benchmark.Medium": 1, - "gains.Browserins.Medium": 1, - "gains.Browser.Medium": 1, - "gains.Pista.Medium": 1, - "gains.Fisher.Medium": 1, - "gains.Yellow.Medium": 1, - "gains.Yellowrev.Medium": 1, - "gains.Benchmark.Fast": 1, - "gains.Browserins.Fast": 1, - "gains.Browser.Fast": 1, - "gains.Pista.Fast": 1, - "gains.Fisher.Fast": 1, - "gains.Yellow.Fast": 1, - "gains.Yellowrev.Fast": 1, - "gains.": 1, - "parser": 1, - "inputParser": 1, - "parser.addRequired": 1, - "parser.addParamValue": 3, - "parser.parse": 1, - "args": 1, - "parser.Results": 1, - "raw": 1, - "load": 1, - "args.directory": 1, - "iddata": 1, - "raw.theta": 1, - "raw.theta_c": 1, - "args.sampleTime": 1, - "args.detrend": 1, - "detrend": 1, - "filtfcn": 2, - "statefcn": 2, - "makeFilter": 1, - "v": 12, - "@iirFilter": 1, - "@getState": 1, - "yn": 2, - "iirFilter": 1, - "xn": 4, - "vOut": 2, - "getState": 1, - "classdef": 1, - "matlab_class": 2, - "properties": 1, - "R": 1, - "G": 1, - "methods": 1, - "obj": 2, - "r": 2, - "obj.R": 2, - "obj.G": 2, - "obj.B": 2, - "disp": 8, - "enumeration": 1, - "red": 1, - "green": 1, - "blue": 1, - "cyan": 1, - "magenta": 1, - "yellow": 1, - "black": 1, - "white": 1, - "ret": 3, - "matlab_function": 5, - "Call": 2, - "which": 2, - "resides": 2, - "same": 2, - "directory": 2, - "value1": 4, - "semicolon": 2, - "mandatory": 2, - "suppresses": 2, - "command": 2, - "line.": 2, - "value2": 4, - "d_mean": 3, - "d_std": 3, - "normalize": 1, - "repmat": 2, - "std": 1, - "d./": 1, - "overrideSettings": 3, - "overrideNames": 2, - "defaultNames": 2, - "notGiven": 5, - "setxor": 1, - "settings.": 1, - "defaultSettings.": 1, - "fid": 7, - "fopen": 2, - "textscan": 1, - "fclose": 2, - "strtrim": 2, - "vals": 2, - "regexp": 1, - "par.": 1, - "str2num": 1, - "choose_plant": 4, - "p": 7, - "Conditions": 1, - "@cross_y": 1, - "ode113": 2, - "RK4": 3, - "fun": 5, - "tspan": 7, - "th": 1, - "Runge": 1, - "Kutta": 1, - "dim": 2, - "while": 1, - "h/2": 2, - "k1*h/2": 1, - "k2*h/2": 1, - "h*k3": 1, - "h/6*": 1, - "*k2": 1, - "*k3": 1, - "arg1": 1, - "arg": 2, - "RK4_par": 1, - "wnm": 11, - "zetanm": 5, - "ss": 3, - "data.modelPar.A": 1, - "data.modelPar.B": 1, - "data.modelPar.C": 1, - "data.modelPar.D": 1, - "bicycle.StateName": 2, - "bicycle.OutputName": 4, - "bicycle.InputName": 2, - "analytic": 3, - "system_state_space": 2, - "numeric": 2, - "data.system.A": 1, - "data.system.B": 1, - "data.system.C": 1, - "data.system.D": 1, - "numeric.StateName": 1, - "data.bicycle.states": 1, - "numeric.InputName": 1, - "data.bicycle.inputs": 1, - "numeric.OutputName": 1, - "data.bicycle.outputs": 1, - "pzplot": 1, - "ss2tf": 2, - "analytic.A": 3, - "analytic.B": 1, - "analytic.C": 1, - "analytic.D": 1, - "mine": 1, - "data.forceTF.PhiDot.num": 1, - "data.forceTF.PhiDot.den": 1, - "numeric.A": 2, - "numeric.B": 1, - "numeric.C": 1, - "numeric.D": 1, - "whipple_pull_force_ABCD": 1, - "bottomRow": 1, - "prod": 3, - "Earth": 2, - "Moon": 2, - "C_star": 1, - "C/2": 1, - "orbit": 1, - "Y0": 6, - "y0": 2, - "vx0": 2, - "vy0": 2, - "l0": 1, - "delta_E0": 1, - "Hill": 1, - "Edgecolor": 1, - "none": 1, - "ok": 2, - "sg": 1, - "sr": 1, - "arguments": 7, - "ischar": 1, - "options.": 1, - "write_gains": 1, - "contents": 1, - "importdata": 1, - "speedsInFile": 5, - "contents.data": 2, - "gainsInFile": 3, - "sameSpeedIndices": 5, - "allGains": 4, - "allSpeeds": 4, - "sort": 1, - "contents.colheaders": 1 - }, - "Max": { - "{": 126, - "}": 126, - "[": 163, - "]": 163, - "max": 1, - "v2": 1, - ";": 39, - "#N": 2, - "vpatcher": 1, - "#P": 33, - "toggle": 1, - "button": 4, - "window": 2, - "setfont": 1, - "Verdana": 1, - "linecount": 1, - "newex": 8, - "r": 1, - "jojo": 2, - "#B": 2, - "color": 2, - "s": 1, - "route": 1, - "append": 1, - "toto": 1, - "%": 1, - "counter": 2, - "#X": 1, - "flags": 1, - "newobj": 1, - "metro": 1, - "t": 2, - "message": 2, - "Goodbye": 1, - "World": 2, - "Hello": 1, - "connect": 13, - "fasten": 1, - "pop": 1 - }, - "MediaWiki": { - "Overview": 1, - "The": 17, - "GDB": 15, - "Tracepoint": 4, - "Analysis": 1, - "feature": 3, - "is": 9, - "an": 3, - "extension": 1, - "to": 12, - "the": 72, - "Tracing": 3, - "and": 20, - "Monitoring": 1, - "Framework": 1, - "that": 4, - "allows": 2, - "visualization": 1, - "analysis": 1, - "of": 8, - "C/C": 10, - "+": 20, - "tracepoint": 5, - "data": 5, - "collected": 2, - "by": 10, - "stored": 1, - "a": 12, - "log": 1, - "file.": 1, - "Getting": 1, - "Started": 1, - "can": 9, - "be": 18, - "installed": 2, - "from": 8, - "Eclipse": 1, - "update": 2, - "site": 1, - "selecting": 1, - ".": 8, - "requires": 1, - "version": 1, - "or": 8, - "later": 1, - "on": 3, - "local": 1, - "host.": 1, - "executable": 3, - "program": 1, - "must": 3, - "found": 1, - "in": 15, - "path.": 1, - "Trace": 9, - "Perspective": 1, - "To": 1, - "open": 1, - "perspective": 2, - "select": 5, - "includes": 1, - "following": 1, - "views": 2, - "default": 2, - "*": 6, - "This": 7, - "view": 7, - "shows": 7, - "projects": 1, - "workspace": 2, - "used": 1, - "create": 1, - "manage": 1, - "projects.": 1, - "running": 1, - "Postmortem": 5, - "Debugger": 4, - "instances": 1, - "displays": 2, - "thread": 1, - "stack": 2, - "trace": 17, - "associated": 1, - "with": 4, - "tracepoint.": 3, - "status": 1, - "debugger": 1, - "navigation": 1, - "records.": 1, - "console": 1, - "output": 1, - "Debugger.": 1, - "editor": 7, - "area": 2, - "contains": 1, - "editors": 1, - "when": 1, - "opened.": 1, - "[": 11, - "Image": 2, - "images/GDBTracePerspective.png": 1, - "]": 11, - "Collecting": 2, - "Data": 4, - "outside": 2, - "scope": 1, - "this": 5, - "feature.": 1, - "It": 1, - "done": 2, - "command": 1, - "line": 2, - "using": 3, - "CDT": 3, - "debug": 1, - "component": 1, - "within": 1, - "Eclipse.": 1, - "See": 1, - "FAQ": 2, - "entry": 2, - "#References": 2, - "|": 2, - "References": 3, - "section.": 2, - "Importing": 2, - "Some": 1, - "information": 1, - "section": 1, - "redundant": 1, - "LTTng": 3, - "User": 3, - "Guide.": 1, - "For": 1, - "further": 1, - "details": 1, - "see": 1, - "Guide": 2, - "Creating": 1, - "Project": 1, - "In": 5, - "right": 3, - "-": 8, - "click": 8, - "context": 4, - "menu.": 4, - "dialog": 1, - "name": 2, - "your": 2, - "project": 2, - "tracing": 1, - "folder": 5, - "Browse": 2, - "enter": 2, - "source": 2, - "directory.": 1, - "Select": 1, - "file": 6, - "tree.": 1, - "Optionally": 1, - "set": 1, - "type": 2, - "Click": 1, - "Alternatively": 1, - "drag": 1, - "&": 1, - "dropped": 1, - "any": 2, - "external": 1, - "manager.": 1, - "Selecting": 2, - "Type": 1, - "Right": 2, - "imported": 1, - "choose": 2, - "step": 1, - "omitted": 1, - "if": 1, - "was": 2, - "selected": 3, - "at": 3, - "import.": 1, - "will": 6, - "updated": 2, - "icon": 1, - "images/gdb_icon16.png": 1, - "Executable": 1, - "created": 1, - "identified": 1, - "so": 2, - "launched": 1, - "properly.": 1, - "path": 1, - "press": 1, - "recognized": 1, - "as": 1, - "executable.": 1, - "Visualizing": 1, - "Opening": 1, - "double": 1, - "it": 3, - "opened": 2, - "Events": 5, - "instance": 1, - "launched.": 1, - "If": 2, - "available": 1, - "code": 1, - "corresponding": 1, - "first": 1, - "record": 2, - "also": 2, - "editor.": 2, - "At": 1, - "point": 1, - "recommended": 1, - "relocate": 1, - "not": 1, - "hidden": 1, - "Viewing": 1, - "table": 1, - "shown": 1, - "one": 1, - "row": 1, - "for": 2, - "each": 1, - "record.": 2, - "column": 6, - "sequential": 1, - "number.": 1, - "number": 2, - "assigned": 1, - "collection": 1, - "time": 2, - "method": 1, - "where": 1, - "set.": 1, - "run": 1, - "Searching": 1, - "filtering": 1, - "entering": 1, - "regular": 1, - "expression": 1, - "header.": 1, - "Navigating": 1, - "records": 1, - "keyboard": 1, - "mouse.": 1, - "show": 1, - "current": 1, - "navigated": 1, - "clicking": 1, - "buttons.": 1, - "updated.": 1, - "http": 4, - "//wiki.eclipse.org/index.php/Linux_Tools_Project/LTTng2/User_Guide": 1, - "//wiki.eclipse.org/CDT/User/FAQ#How_can_I_trace_my_application_using_C.2FC.2B.2B_Tracepoints.3F": 1, - "How": 1, - "I": 1, - "my": 1, - "application": 1, - "Tracepoints": 1, - "Updating": 1, - "Document": 1, - "document": 2, - "maintained": 1, - "collaborative": 1, - "wiki.": 1, - "you": 1, - "wish": 1, - "modify": 1, - "please": 1, - "visit": 1, - "//wiki.eclipse.org/index.php/Linux_Tools_Project/GDB_Tracepoint_Analysis/User_Guide": 1, - "//wiki.eclipse.org/Linux_Tools_Project/GDB_Tracepoint_Analysis/User_Guide": 1 - }, - "Mercury": { - "%": 416, - "-": 6967, - "module": 46, - "ll_backend.code_info.": 1, - "interface.": 13, - "import_module": 126, - "check_hlds.type_util.": 2, - "hlds.code_model.": 1, - "hlds.hlds_data.": 2, - "hlds.hlds_goal.": 2, - "hlds.hlds_llds.": 1, - "hlds.hlds_module.": 2, - "hlds.hlds_pred.": 2, - "hlds.instmap.": 2, - "libs.globals.": 2, - "ll_backend.continuation_info.": 1, - "ll_backend.global_data.": 1, - "ll_backend.layout.": 1, - "ll_backend.llds.": 1, - "ll_backend.trace_gen.": 1, - "mdbcomp.prim_data.": 3, - "mdbcomp.goal_path.": 2, - "parse_tree.prog_data.": 2, - "parse_tree.set_of_var.": 2, - "assoc_list.": 3, - "bool.": 4, - "counter.": 1, - "io.": 8, - "list.": 4, - "map.": 3, - "maybe.": 3, - "set.": 4, - "set_tree234.": 1, - "term.": 3, - "implementation.": 12, - "backend_libs.builtin_ops.": 1, - "backend_libs.proc_label.": 1, - "hlds.arg_info.": 1, - "hlds.hlds_desc.": 1, - "hlds.hlds_rtti.": 2, - "libs.options.": 3, - "libs.trace_params.": 1, - "ll_backend.code_util.": 1, - "ll_backend.opt_debug.": 1, - "ll_backend.var_locn.": 1, - "parse_tree.builtin_lib_types.": 2, - "parse_tree.prog_type.": 2, - "parse_tree.mercury_to_mercury.": 1, - "cord.": 1, - "int.": 4, - "pair.": 3, - "require.": 6, - "stack.": 1, - "string.": 7, - "varset.": 2, - "type": 57, - "code_info.": 1, - "pred": 255, - "code_info_init": 2, - "(": 3351, - "bool": 406, - "in": 510, - "globals": 5, - "pred_id": 15, - "proc_id": 12, - "pred_info": 20, - "proc_info": 11, - "abs_follow_vars": 3, - "module_info": 26, - "static_cell_info": 4, - "const_struct_map": 3, - "resume_point_info": 11, - "out": 337, - "trace_slot_info": 3, - "maybe": 20, - "containing_goal_map": 4, - ")": 3351, - "list": 82, - "string": 115, - "int": 129, - "code_info": 208, - "is": 246, - "det.": 184, - "get_globals": 5, - "get_exprn_opts": 2, - "exprn_opts": 3, - "get_module_info": 7, - "get_pred_id": 6, - "get_proc_id": 5, - "get_pred_info": 2, - "get_proc_info": 4, - "get_varset": 3, - "prog_varset": 14, - "func": 24, - "get_var_types": 3, - "vartypes.": 1, - "get_maybe_trace_info": 2, - "trace_info": 3, - "get_emit_trail_ops": 2, - "add_trail_ops": 5, - "get_emit_region_ops": 2, - "add_region_ops": 6, - "get_forward_live_vars": 2, - "set_of_progvar": 10, - "set_forward_live_vars": 2, - "get_instmap": 4, - "instmap": 3, - "set_instmap": 3, - "get_par_conj_depth": 2, - "set_par_conj_depth": 2, - "get_label_counter": 3, - "counter": 6, - "get_succip_used": 2, - "get_layout_info": 4, - "proc_label_layout_info": 3, - "get_proc_trace_events": 2, - "set_proc_trace_events": 2, - "get_closure_layouts": 3, - "closure_proc_id_data": 4, - "get_max_reg_in_use_at_trace": 2, - "set_max_reg_in_use_at_trace": 2, - "get_created_temp_frame": 2, - "get_static_cell_info": 5, - "set_static_cell_info": 5, - "get_alloc_sites": 3, - "set_tree234": 3, - "alloc_site_info": 4, - "set_alloc_sites": 3, - "get_used_env_vars": 2, - "set": 16, - "set_used_env_vars": 2, - "get_opt_trail_ops": 2, - "get_opt_region_ops": 2, - "get_auto_comments": 2, - "get_lcmc_null": 2, - "get_containing_goal_map": 3, - "get_containing_goal_map_det": 2, - "get_const_struct_map": 2, - "add_out_of_line_code": 2, - "llds_code": 21, - "get_out_of_line_code": 2, - "get_var_slot_count": 2, - "set_maybe_trace_info": 3, - "get_opt_no_return_calls": 2, - "get_zombies": 2, - "set_zombies": 2, - "get_var_locn_info": 7, - "var_locn_info": 3, - "set_var_locn_info": 4, - "get_temps_in_use": 6, - "lval": 114, - "set_temps_in_use": 4, - "get_fail_info": 13, - "fail_info": 24, - "set_fail_info": 9, - "set_label_counter": 3, - "set_succip_used": 3, - "set_layout_info": 4, - "get_max_temp_slot_count": 2, - "set_max_temp_slot_count": 2, - "get_temp_content_map": 3, - "map": 7, - "slot_contents": 4, - "set_temp_content_map": 2, - "get_persistent_temps": 3, - "set_persistent_temps": 2, - "set_closure_layouts": 3, - "get_closure_seq_counter": 3, - "set_closure_seq_counter": 3, - "set_created_temp_frame": 2, - "code_info_static": 26, - "code_info_loc_dep": 22, - "code_info_persistent": 44, - ".": 610, - "cis_globals": 2, - "cis_exprn_opts": 2, - "cis_module_info": 2, - "cis_pred_id": 2, - "cis_proc_id": 2, - "cis_pred_info": 2, - "cis_proc_info": 2, - "cis_proc_label": 1, - "proc_label": 2, - "cis_varset": 2, - "cis_var_slot_count": 2, - "cis_maybe_trace_info": 3, - "cis_opt_no_resume_calls": 2, - "cis_emit_trail_ops": 2, - "cis_opt_trail_ops": 2, - "cis_emit_region_ops": 2, - "cis_opt_region_ops": 2, - "cis_auto_comments": 2, - "cis_lcmc_null": 2, - "cis_containing_goal_map": 2, - "cis_const_struct_map": 2, - "cild_forward_live_vars": 3, - "cild_instmap": 3, - "cild_zombies": 3, - "cild_var_locn_info": 3, - "cild_temps_in_use": 3, - "cild_fail_info": 3, - "cild_par_conj_depth": 3, - "cip_label_num_src": 3, - "cip_store_succip": 3, - "cip_label_info": 3, - "cip_proc_trace_events": 3, - "cip_stackslot_max": 3, - "cip_temp_contents": 3, - "cip_persistent_temps": 3, - "cip_closure_layout_seq": 3, - "cip_closure_layouts": 3, - "cip_max_reg_r_used": 3, - "cip_max_reg_f_used": 2, - "cip_created_temp_frame": 3, - "cip_static_cell_info": 3, - "cip_alloc_sites": 3, - "cip_used_env_vars": 3, - "cip_ts_string_table_size": 3, - "cip_ts_rev_string_table": 4, - "cip_out_of_line_code": 4, - "SaveSuccip": 2, - "Globals": 32, - "PredId": 50, - "ProcId": 31, - "PredInfo": 64, - "ProcInfo": 43, - "FollowVars": 6, - "ModuleInfo": 49, - "StaticCellInfo": 8, - "ConstStructMap": 2, - "ResumePoint": 13, - "TraceSlotInfo": 5, - "MaybeContainingGoalMap": 5, - "TSRevStringTable": 2, - "TSStringTableSize": 2, - "CodeInfo": 2, - "ProcLabel": 8, - "make_proc_label": 1, - "proc_info_get_initial_instmap": 1, - "InstMap": 6, - "proc_info_get_liveness_info": 1, - "Liveness": 4, - "CodeModel": 8, - "proc_info_interface_code_model": 2, - "build_input_arg_list": 1, - "ArgList": 2, - "proc_info_get_varset": 1, - "VarSet": 15, - "proc_info_get_vartypes": 2, - "VarTypes": 22, - "proc_info_get_stack_slots": 1, - "StackSlots": 5, - "ExprnOpts": 4, - "init_exprn_opts": 3, - "globals.lookup_bool_option": 18, - "use_float_registers": 5, - "UseFloatRegs": 6, - "yes": 144, - "FloatRegType": 3, - "reg_f": 1, - ";": 913, - "no": 365, - "reg_r": 2, - "globals.get_trace_level": 1, - "TraceLevel": 5, - "eff_trace_level_is_none": 2, - "trace_fail_vars": 1, - "FailVars": 3, - "MaybeFailVars": 3, - "set_of_var.union": 3, - "EffLiveness": 3, - "init_var_locn_state": 1, - "VarLocnInfo": 12, - "stack.init": 1, - "ResumePoints": 14, - "allow_hijacks": 3, - "AllowHijack": 3, - "Hijack": 6, - "allowed": 6, - "not_allowed": 5, - "DummyFailInfo": 2, - "resume_point_unknown": 9, - "may_be_different": 7, - "not_inside_non_condition": 2, - "map.init": 7, - "TempContentMap": 4, - "set.init": 7, - "PersistentTemps": 4, - "TempsInUse": 8, - "Zombies": 2, - "set_of_var.init": 1, - "LayoutMap": 2, - "max_var_slot": 1, - "VarSlotMax": 2, - "trace_reserved_slots": 1, - "FixedSlots": 2, - "_": 149, - "int.max": 1, - "SlotMax": 2, - "opt_no_return_calls": 3, - "OptNoReturnCalls": 2, - "use_trail": 3, - "UseTrail": 2, - "disable_trail_ops": 3, - "DisableTrailOps": 2, - "EmitTrailOps": 3, - "do_not_add_trail_ops": 1, - "optimize_trail_usage": 3, - "OptTrailOps": 2, - "optimize_region_ops": 3, - "OptRegionOps": 2, - "region_analysis": 3, - "UseRegions": 3, - "EmitRegionOps": 3, - "do_not_add_region_ops": 1, - "auto_comments": 4, - "AutoComments": 2, - "optimize_constructor_last_call_null": 3, - "LCMCNull": 2, - "CodeInfo0": 2, - "init_fail_info": 2, - "will": 1, - "override": 1, - "this": 4, - "dummy": 2, - "value": 16, - "nested": 1, - "parallel": 3, - "conjunction": 1, - "depth": 1, - "counter.init": 2, - "[": 203, - "]": 203, - "set_tree234.init": 1, - "cord.empty": 1, - "init_maybe_trace_info": 3, - "CodeInfo1": 2, - "exprn_opts.": 1, - "gcc_non_local_gotos": 3, - "OptNLG": 3, - "NLG": 3, - "have_non_local_gotos": 1, - "do_not_have_non_local_gotos": 1, - "asm_labels": 3, - "OptASM": 3, - "ASM": 3, - "have_asm_labels": 1, - "do_not_have_asm_labels": 1, - "static_ground_cells": 3, - "OptSGCell": 3, - "SGCell": 3, - "have_static_ground_cells": 1, - "do_not_have_static_ground_cells": 1, - "unboxed_float": 3, - "OptUBF": 3, - "UBF": 3, - "have_unboxed_floats": 1, - "do_not_have_unboxed_floats": 1, - "OptFloatRegs": 3, - "do_not_use_float_registers": 1, - "static_ground_floats": 3, - "OptSGFloat": 3, - "SGFloat": 3, - "have_static_ground_floats": 1, - "do_not_have_static_ground_floats": 1, - "static_code_addresses": 3, - "OptStaticCodeAddr": 3, - "StaticCodeAddrs": 3, - "have_static_code_addresses": 1, - "do_not_have_static_code_addresses": 1, - "trace_level": 4, - "CI": 294, - "proc_info_get_has_tail_call_events": 1, - "HasTailCallEvents": 3, - "tail_call_events": 1, - "get_next_label": 5, - "TailRecLabel": 2, - "MaybeTailRecLabel": 3, - "no_tail_call_events": 1, - "trace_setup": 1, - "TraceInfo": 2, - "MaxRegR": 4, - "MaxRegF": 4, - "cip_max_reg_f_used.": 1, - "TI": 4, - "LV": 2, - "IM": 2, - "Zs": 2, - "EI": 2, - "FI": 2, - "N": 6, - "LC": 2, - "SU": 2, - "LI": 2, - "PTE": 2, - "TM": 2, - "CM": 2, - "PT": 2, - "CLS": 2, - "CG": 2, - "MR": 4, - "MF": 1, - "MF.": 1, - "SCI": 2, - "ASI": 2, - "UEV": 2, - "ContainingGoalMap": 2, - "unexpected": 21, - "NewCode": 2, - "Code0": 2, - ".CI": 29, - "Code": 36, - "+": 127, - "Code.": 1, - "get_stack_slots": 2, - "stack_slots": 1, - "get_follow_var_map": 2, - "abs_follow_vars_map": 1, - "get_next_non_reserved": 2, - "reg_type": 1, - "set_follow_vars": 4, - "pre_goal_update": 3, - "hlds_goal_info": 22, - "has_subgoals": 2, - "post_goal_update": 3, - "body_typeinfo_liveness": 4, - "variable_type": 3, - "prog_var": 58, - "mer_type.": 1, - "variable_is_of_dummy_type": 2, - "is_dummy_type.": 1, - "search_type_defn": 4, - "mer_type": 21, - "hlds_type_defn": 1, - "semidet.": 10, - "lookup_type_defn": 2, - "hlds_type_defn.": 1, - "lookup_cheaper_tag_test": 2, - "maybe_cheaper_tag_test.": 1, - "filter_region_vars": 2, - "set_of_progvar.": 2, - "get_proc_model": 2, - "code_model.": 1, - "get_headvars": 2, - "get_arginfo": 2, - "arg_info": 2, - "get_pred_proc_arginfo": 3, - "current_resume_point_vars": 2, - "variable_name": 2, - "make_proc_entry_label": 2, - "code_addr.": 1, - "label": 5, - "succip_is_used": 2, - "add_trace_layout_for_label": 2, - "term.context": 3, - "trace_port": 1, - "forward_goal_path": 1, - "user_event_info": 1, - "layout_label_info": 2, - "get_cur_proc_label": 4, - "get_next_closure_seq_no": 2, - "add_closure_layout": 2, - "add_threadscope_string": 2, - "get_threadscope_rev_string_table": 2, - "add_scalar_static_cell": 2, - "typed_rval": 1, - "data_id": 3, - "add_scalar_static_cell_natural_types": 2, - "rval": 3, - "add_vector_static_cell": 2, - "llds_type": 1, - "add_alloc_site_info": 2, - "prog_context": 1, - "alloc_site_id": 2, - "add_resume_layout_for_label": 2, - "var_locn_get_stack_slots": 1, - "FollowVarMap": 2, - "var_locn_get_follow_var_map": 1, - "RegType": 2, - "NextNonReserved": 2, - "var_locn_get_next_non_reserved": 1, - "VarLocnInfo0": 4, - "var_locn_set_follow_vars": 1, - "GoalInfo": 44, - "HasSubGoals": 3, - "goal_info_get_resume_point": 1, - "no_resume_point": 1, - "resume_point": 1, - "goal_info_get_follow_vars": 1, - "MaybeFollowVars": 3, - "goal_info_get_pre_deaths": 1, - "PreDeaths": 3, - "rem_forward_live_vars": 3, - "maybe_make_vars_forward_dead": 2, - "goal_info_get_pre_births": 1, - "PreBirths": 2, - "add_forward_live_vars": 2, - "does_not_have_subgoals": 2, - "goal_info_get_post_deaths": 2, - "PostDeaths": 5, - "goal_info_get_post_births": 1, - "PostBirths": 3, - "make_vars_forward_live": 1, - "InstMapDelta": 2, - "goal_info_get_instmap_delta": 1, - "InstMap0": 2, - "instmap.apply_instmap_delta": 1, - "TypeInfoLiveness": 2, - "module_info_pred_info": 6, - "body_should_use_typeinfo_liveness": 1, - "Var": 13, - "Type": 18, - "lookup_var_type": 3, - "IsDummy": 2, - "VarType": 2, - "check_dummy_type": 1, - "TypeDefn": 6, - "type_to_ctor_det": 1, - "TypeCtor": 2, - "module_info_get_type_table": 1, - "TypeTable": 2, - "search_type_ctor_defn": 1, - "TypeDefnPrime": 2, - "CheaperTagTest": 3, - "get_type_defn_body": 1, - "TypeBody": 2, - "hlds_du_type": 1, - "CheaperTagTestPrime": 2, - "no_cheaper_tag_test": 1, - "ForwardLiveVarsBeforeGoal": 6, - "RegionVars": 2, - "code_info.get_var_types": 1, - "set_of_var.filter": 1, - "is_region_var": 1, - "HeadVars": 20, - "module_info_pred_proc_info": 4, - "proc_info_get_headvars": 2, - "ArgInfo": 4, - "proc_info_arg_info": 1, - "ResumeVars": 4, - "FailInfo": 19, - "ResumePointStack": 2, - "stack.det_top": 5, - "ResumePointInfo": 2, - "pick_first_resume_point": 1, - "ResumeMap": 8, - "map.keys": 3, - "ResumeMapVarList": 2, - "set_of_var.list_to_set": 3, - "Name": 4, - "Varset": 2, - "varset.lookup_name": 2, - "Immed0": 3, - "CodeAddr": 2, - "Immed": 3, - "globals.lookup_int_option": 1, - "procs_per_c_function": 3, - "ProcsPerFunc": 2, - "CurPredId": 2, - "CurProcId": 2, - "proc": 2, - "make_entry_label": 1, - "Label": 8, - "C0": 4, - "counter.allocate": 2, - "C": 34, - "internal_label": 3, - "Context": 20, - "Port": 2, - "IsHidden": 2, - "GoalPath": 2, - "MaybeSolverEventInfo": 2, - "Layout": 2, - "Internals0": 8, - "Exec": 5, - "trace_port_layout_info": 1, - "LabelNum": 8, - "entry_label": 2, - "map.search": 2, - "Internal0": 4, - "internal_layout_info": 6, - "Exec0": 3, - "Resume": 5, - "Return": 6, - "Internal": 8, - "map.det_update": 4, - "Internals": 6, - "map.det_insert": 3, - "LayoutInfo": 2, - "Resume0": 3, - "get_active_temps_data": 2, - "assoc_list": 1, - "Temps": 2, - "map.select": 1, - "TempsInUseContentMap": 2, - "map.to_assoc_list": 3, - "cis_proc_label.": 1, - "SeqNo": 2, - "ClosureLayout": 2, - "ClosureLayouts": 2, - "|": 38, - "String": 2, - "SlotNum": 2, - "Size0": 3, - "RevTable0": 2, - "Size": 4, - "RevTable": 3, - "RevTable.": 1, - "TableSize": 2, - "cip_ts_string_table_size.": 1, - "RvalsTypes": 2, - "DataAddr": 6, - "StaticCellInfo0": 6, - "global_data.add_scalar_static_cell": 1, - "Rvals": 2, - "global_data.add_scalar_static_cell_natural_types": 1, - "Types": 6, - "Vector": 2, - "global_data.add_vector_static_cell": 1, - "AllocId": 2, - "AllocSite": 3, - "AllocSites0": 2, - "set_tree234.insert": 1, - "AllocSites": 2, - "position_info.": 1, - "branch_end_info.": 1, - "branch_end": 4, - "branch_end_info": 7, - "remember_position": 3, - "position_info": 14, - "reset_to_position": 4, - "reset_resume_known": 2, - "generate_branch_end": 2, - "abs_store_map": 3, - "after_all_branches": 2, - "save_hp_in_branch": 2, - "pos_get_fail_info": 3, - "fail_info.": 2, - "LocDep": 6, - "cild_fail_info.": 1, - "CurCI": 2, - "NextCI": 2, - "Static": 2, - "Persistent": 2, - "NextCI0": 4, - "TempsInUse0": 4, - "set.union": 2, - "BranchStart": 2, - "BranchStartFailInfo": 2, - "BSResumeKnown": 2, - "CurFailInfo": 2, - "CurFailStack": 2, - "CurCurfMaxfr": 2, - "CurCondEnv": 2, - "CurHijack": 2, - "NewFailInfo": 2, - "StoreMap": 8, - "MaybeEnd0": 3, - "MaybeEnd": 6, - "AbsVarLocs": 3, - "assoc_list.values": 1, - "AbsLocs": 2, - "code_util.max_mentioned_abs_regs": 1, - "instmap_is_reachable": 1, - "VarLocs": 2, - "assoc_list.map_values_only": 2, - "abs_locn_to_lval": 2, - "place_vars": 1, - "remake_with_store_map": 4, - "empty": 9, - "EndCodeInfo1": 5, - "EndCodeInfo0": 3, - "FailInfo0": 13, - "FailInfo1": 2, - "ResumeKnown0": 5, - "CurfrMaxfr0": 2, - "CondEnv0": 3, - "Hijack0": 2, - "R": 2, - "ResumeKnown1": 2, - "CurfrMaxfr1": 2, - "CondEnv1": 2, - "Hijack1": 2, - "resume_point_known": 15, - "Redoip0": 3, - "Redoip1": 2, - "ResumeKnown": 21, - "expect": 15, - "unify": 21, - "must_be_equal": 11, - "CurfrMaxfr": 24, - "EndCodeInfoA": 2, - "TempsInUse1": 2, - "EndCodeInfo": 2, - "BranchEnd": 2, - "BranchEndCodeInfo": 2, - "BranchEndLocDep": 2, - "VarLocns": 2, - "VarLvals": 2, - "reinit_var_locn_state": 1, - "Slot": 2, - "Pos0": 2, - "Pos": 2, - "CI0": 2, - "CIStatic0": 2, - "CILocDep0": 2, - "CIPersistent0": 2, - "LocDep0": 2, - "CI1": 2, - "save_hp": 1, - "CI2": 2, - "CIStatic": 2, - "CIPersistent": 2, - "resume_map.": 1, - "resume_point_info.": 1, - "disj_hijack_info.": 1, - "prepare_for_disj_hijack": 2, - "code_model": 3, - "disj_hijack_info": 3, - "undo_disj_hijack": 2, - "ite_hijack_info.": 1, - "prepare_for_ite_hijack": 2, - "embedded_stack_frame_id": 3, - "ite_hijack_info": 3, - "ite_enter_then": 2, - "simple_neg_info.": 1, - "enter_simple_neg": 2, - "simple_neg_info": 3, - "leave_simple_neg": 2, - "det_commit_info.": 1, - "prepare_for_det_commit": 2, - "det_commit_info": 6, - "generate_det_commit": 2, - "semi_commit_info.": 1, - "prepare_for_semi_commit": 2, - "semi_commit_info": 6, - "generate_semi_commit": 2, - "effect_resume_point": 2, - "pop_resume_point": 1, - "top_resume_point": 1, - "set_resume_point_to_unknown": 1, - "set_resume_point_and_frame_to_unknown": 1, - "generate_failure": 2, - "fail_if_rval_is_false": 1, - "failure_is_direct_branch": 1, - "code_addr": 8, - "may_use_nondet_tailcall": 1, - "nondet_tail_call": 1, - "produce_vars": 1, - "resume_map": 9, - "flush_resume_vars_to_stack": 1, - "make_resume_point": 1, - "resume_locs": 1, - "generate_resume_point": 2, - "resume_point_vars": 1, - "resume_point_stack_addr": 2, - "stack": 1, - "curfr_vs_maxfr": 2, - "condition_env": 3, - "hijack_allowed": 2, - "orig_only": 2, - "stack_only": 2, - "orig_and_stack": 1, - "stack_and_orig": 1, - "redoip_update": 2, - "has_been_done": 5, - "wont_be_done.": 1, - "resume_point_unknown.": 1, - "may_be_different.": 1, - "inside_non_condition": 6, - "not_inside_non_condition.": 1, - "not_allowed.": 1, - "disj_no_hijack": 4, - "disj_temp_frame": 4, - "disj_quarter_hijack": 4, - "disj_half_hijack": 3, - "disj_full_hijack": 3, - "HijackInfo": 29, - "CondEnv": 12, - "Allow": 12, - "model_det": 2, - "model_semi": 3, - "singleton": 28, - "llds_instr": 64, - "comment": 5, - "model_non": 2, - "create_temp_frame": 4, - "do_fail": 6, - "stack.pop": 1, - "TopResumePoint": 6, - "RestResumePoints": 2, - "stack.is_empty": 1, - "wont_be_done": 2, - "acquire_temp_slot": 15, - "slot_lval": 14, - "redoip_slot": 30, - "curfr": 18, - "non_persistent_temp_slot": 15, - "RedoipSlot": 33, - "assign": 46, - "maxfr": 42, - "redofr_slot": 14, - "RedofrSlot": 17, - "from_list": 13, - "prevfr_slot": 3, - "pick_stack_resume_point": 3, - "StackLabel": 9, - "LabelConst": 4, - "const": 10, - "llconst_code_addr": 6, - "true": 3, - "ite_region_info": 5, - "ite_info": 3, - "ite_hijack_type": 2, - "ite_no_hijack": 3, - "ite_temp_frame": 3, - "ite_quarter_hijack": 3, - "ite_half_hijack": 3, - "ite_full_hijack": 3, - "CondCodeModel": 4, - "MaybeEmbeddedFrameId": 5, - "HijackType": 12, - "MaybeRegionInfo": 12, - "MaxfrSlot": 30, - "TempFrameCode": 4, - "MaxfrCode": 7, - "EmbeddedFrameId": 2, - "slot_success_record": 1, - "persistent_temp_slot": 1, - "SuccessRecordSlot": 6, - "InitSuccessCode": 3, - "llconst_false": 1, - "ITEResumePoint": 2, - "ThenCode": 10, - "ElseCode": 7, - "ResumePoints0": 5, - "stack.det_pop": 1, - "HijackResumeKnown": 2, - "OldCondEnv": 2, - "RegionInfo": 2, - "EmbeddedStackFrameId": 2, - "ITEStackResumeCodeAddr": 2, - "llconst_true": 1, - "AfterRegionOp": 3, - "if_val": 1, - "unop": 1, - "logical_not": 1, - "code_label": 2, - "use_and_maybe_pop_region_frame": 1, - "region_ite_nondet_cond_fail": 1, - "goto": 2, - "maybe_pick_stack_resume_point": 1, - "ResumeMap0": 2, - "make_fake_resume_map": 5, - "do_redo": 1, - "is_empty": 1, - "Vars": 10, - "Locns": 2, - "set.make_singleton_set": 1, - "reg": 1, - "pair": 7, - "region_commit_stack_frame": 5, - "AddTrailOps": 4, - "AddRegionOps": 5, - "CommitGoalInfo": 4, - "DetCommitInfo": 4, - "SaveMaxfrCode": 3, - "save_maxfr": 3, - "MaybeMaxfrSlot": 6, - "maybe_save_trail_info": 2, - "MaybeTrailSlots": 8, - "SaveTrailCode": 4, - "maybe_save_region_commit_frame": 4, - "MaybeRegionCommitFrameInfo": 8, - "SaveRegionCommitFrameCode": 2, - "SaveRegionCommitFrameCode.": 2, - "RestoreMaxfrCode": 3, - "restore_maxfr": 3, - "release_temp_slot": 1, - "maybe_restore_trail_info": 2, - "CommitTrailCode": 4, - "maybe_restore_region_commit_frame": 2, - "SuccessRegionCode": 3, - "_FailureRegionCode": 1, - "SuccessRegionCode.": 1, - "commit_hijack_info": 2, - "commit_temp_frame": 3, - "commit_quarter_hijack": 3, - "commit_half_hijack": 3, - "commit_full_hijack": 3, - "SemiCommitInfo": 4, - "clone_resume_point": 1, - "NewResumePoint": 4, - "stack.push": 1, - "StackLabelConst": 7, - "use_minimal_model_stack_copy_cut": 3, - "UseMinimalModelStackCopyCut": 4, - "Components": 4, - "foreign_proc_raw_code": 4, - "cannot_branch_away": 4, - "proc_affects_liveness": 2, - "live_lvals_info": 4, - "proc_does_not_affect_liveness": 2, - "MD": 4, - "proc_may_duplicate": 2, - "MarkCode": 3, - "foreign_proc_code": 2, - "proc_will_not_call_mercury": 2, - "HijackCode": 5, - "UseMinimalModel": 3, - "CutCode": 4, - "SuccessUndoCode": 5, - "FailureUndoCode": 5, - "AfterCommit": 2, - "ResumePointCode": 2, - "FailCode": 2, - "RestoreTrailCode": 2, - "FailureRegionCode": 2, - "SuccLabel": 3, - "GotoSuccLabel": 2, - "SuccLabelCode": 1, - "SuccessCode": 2, - "FailureCode": 2, - "SuccLabelCode.": 1, - "_ForwardLiveVarsBeforeGoal": 1, - "expr.": 1, - "char": 10, - "token": 5, - "num": 11, - "eof": 6, - "parse": 1, - "exprn/1": 1, - "xx": 1, - "scan": 16, - "mode": 8, - "rule": 3, - "exprn": 7, - "Num": 18, - "A": 14, - "term": 10, - "B": 8, - "{": 27, - "}": 28, - "*": 20, - "factor": 6, - "/": 1, - "//": 2, - "Chars": 2, - "Toks": 13, - "Toks0": 11, - "list__reverse": 1, - "Cs": 9, - "char__is_whitespace": 1, - "char__is_digit": 2, - "takewhile": 1, - "Digits": 2, - "Rest": 2, - "string__from_char_list": 1, - "NumStr": 2, - "string__det_to_int": 1, - "error": 7, - "hello.": 1, - "main": 15, - "io": 6, - "di": 54, - "uo": 58, - "IO": 4, - "io.write_string": 1, - "char.": 1, - "getopt_io.": 1, - "short_option": 36, - "option": 9, - "long_option": 241, - "option_defaults": 2, - "option_data": 2, - "nondet.": 1, - "special_handler": 1, - "special_data": 1, - "option_table": 5, - "maybe_option_table": 3, - "inconsequential_options": 1, - "options_help": 1, - "option_table_add_mercury_library_directory": 1, - "option_table.": 2, - "option_table_add_search_library_files_directory": 1, - "quote_arg": 1, - "inhibit_warnings": 4, - "inhibit_accumulator_warnings": 3, - "halt_at_warn": 3, - "halt_at_syntax_errors": 3, - "halt_at_auto_parallel_failure": 3, - "warn_singleton_vars": 3, - "warn_overlapping_scopes": 3, - "warn_det_decls_too_lax": 3, - "warn_inferred_erroneous": 3, - "warn_nothing_exported": 3, - "warn_unused_args": 3, - "warn_interface_imports": 3, - "warn_missing_opt_files": 3, - "warn_missing_trans_opt_files": 3, - "warn_missing_trans_opt_deps": 3, - "warn_non_contiguous_clauses": 3, - "warn_non_contiguous_foreign_procs": 3, - "warn_non_stratification": 3, - "warn_unification_cannot_succeed": 3, - "warn_simple_code": 3, - "warn_duplicate_calls": 3, - "warn_missing_module_name": 3, - "warn_wrong_module_name": 3, - "warn_smart_recompilation": 3, - "warn_undefined_options_variables": 3, - "warn_non_tail_recursion": 3, - "warn_target_code": 3, - "warn_up_to_date": 3, - "warn_stubs": 3, - "warn_dead_procs": 3, - "warn_table_with_inline": 3, - "warn_non_term_special_preds": 3, - "warn_known_bad_format_calls": 3, - "warn_unknown_format_calls": 3, - "warn_obsolete": 3, - "warn_insts_without_matching_type": 3, - "warn_unused_imports": 3, - "inform_ite_instead_of_switch": 3, - "warn_unresolved_polymorphism": 3, - "warn_suspicious_foreign_procs": 3, - "warn_state_var_shadowing": 3, - "inform_inferred": 3, - "inform_inferred_types": 3, - "inform_inferred_modes": 3, - "verbose": 4, - "very_verbose": 4, - "verbose_errors": 4, - "verbose_recompilation": 3, - "find_all_recompilation_reasons": 3, - "verbose_make": 3, - "verbose_commands": 3, - "output_compile_error_lines": 3, - "report_cmd_line_args": 3, - "report_cmd_line_args_in_doterr": 3, - "statistics": 4, - "detailed_statistics": 3, - "proc_size_statistics": 3, - "debug_types": 4, - "debug_modes": 4, - "debug_modes_statistics": 3, - "debug_modes_minimal": 3, - "debug_modes_verbose": 3, - "debug_modes_pred_id": 3, - "debug_dep_par_conj": 3, - "debug_det": 4, - "debug_code_gen_pred_id": 3, - "debug_opt": 3, - "debug_term": 4, - "constraint": 2, - "termination": 3, - "analysis": 1, - "debug_opt_pred_id": 3, - "debug_opt_pred_name": 3, - "debug_pd": 3, - "pd": 1, - "partial": 1, - "deduction/deforestation": 1, - "debug_il_asm": 3, - "il_asm": 1, - "IL": 2, - "generation": 1, - "via": 1, - "asm": 1, - "debug_liveness": 3, - "debug_stack_opt": 3, - "debug_make": 3, - "debug_closure": 3, - "debug_trail_usage": 3, - "debug_mode_constraints": 3, - "debug_intermodule_analysis": 3, - "debug_mm_tabling_analysis": 3, - "debug_indirect_reuse": 3, - "debug_type_rep": 3, - "make_short_interface": 4, - "make_interface": 5, - "make_private_interface": 4, - "make_optimization_interface": 5, - "make_transitive_opt_interface": 5, - "make_analysis_registry": 3, - "make_xml_documentation": 5, - "generate_source_file_mapping": 4, - "generate_dependency_file": 3, - "generate_dependencies": 4, - "generate_module_order": 3, - "generate_standalone_interface": 3, - "convert_to_mercury": 6, - "typecheck_only": 4, - "errorcheck_only": 4, - "target_code_only": 10, - "compile_only": 4, - "compile_to_shared_lib": 3, - "output_grade_string": 3, - "output_link_command": 3, - "output_shared_lib_link_command": 3, - "output_libgrades": 3, - "output_cc": 3, - "output_c_compiler_type": 4, - "output_csharp_compiler_type": 3, - "output_cflags": 3, - "output_library_link_flags": 3, - "output_grade_defines": 3, - "output_c_include_directory_flags": 4, - "smart_recompilation": 3, - "generate_item_version_numbers": 2, - "generate_mmc_make_module_dependencies": 4, - "assume_gmake": 3, - "trace_optimized": 4, - "trace_prof": 3, - "trace_table_io": 3, - "trace_table_io_only_retry": 3, - "trace_table_io_states": 3, - "trace_table_io_require": 3, - "trace_table_io_all": 3, - "trace_goal_flags": 3, - "prof_optimized": 4, - "exec_trace_tail_rec": 3, - "suppress_trace": 3, - "force_disable_tracing": 3, - "delay_death": 3, - "delay_death_max_vars": 3, - "stack_trace_higher_order": 3, - "force_disable_ssdebug": 3, - "generate_bytecode": 3, - "line_numbers": 4, - "frameopt_comments": 3, - "max_error_line_width": 3, - "show_dependency_graph": 3, - "imports_graph": 3, - "dump_trace_counts": 3, - "dump_hlds": 5, - "dump_hlds_pred_id": 3, - "dump_hlds_pred_name": 3, - "dump_hlds_alias": 4, - "dump_hlds_options": 3, - "dump_hlds_inst_limit": 3, - "dump_hlds_file_suffix": 3, - "dump_same_hlds": 3, - "dump_mlds": 4, - "verbose_dump_mlds": 4, - "mode_constraints": 3, - "simple_mode_constraints": 3, - "prop_mode_constraints": 4, - "benchmark_modes": 3, - "benchmark_modes_repeat": 3, - "sign_assembly": 3, - "separate_assemblies": 3, - "reorder_conj": 3, - "reorder_disj": 3, - "fully_strict": 3, - "strict_sequential": 3, - "allow_stubs": 3, - "infer_types": 3, - "infer_modes": 3, - "infer_det": 4, - "infer_all": 3, - "type_inference_iteration_limit": 3, - "mode_inference_iteration_limit": 3, - "event_set_file_name": 3, - "grade": 4, - "target": 14, - "il": 5, - "il_only": 4, - "compile_to_c": 4, - "c": 1, - "java": 35, - "java_only": 4, - "csharp": 6, - "csharp_only": 4, - "x86_64": 6, - "x86_64_only": 4, - "erlang": 6, - "erlang_only": 4, - "exec_trace": 3, - "decl_debug": 3, - "profiling": 5, - "profile_time": 5, - "profile_calls": 6, - "time_profiling": 3, - "memory_profiling": 3, - "profile_mem": 1, - "deep_profiling": 3, - "profile_deep": 4, - "profile_memory": 3, - "use_activation_counts": 3, - "pre_prof_transforms_simplify": 3, - "pre_implicit_parallelism_simplify": 3, - "coverage_profiling": 3, - "coverage_profiling_via_calls": 3, - "coverage_profiling_static": 3, - "profile_deep_coverage_after_goal": 3, - "profile_deep_coverage_branch_ite": 3, - "profile_deep_coverage_branch_switch": 3, - "profile_deep_coverage_branch_disj": 3, - "profile_deep_coverage_use_portcounts": 3, - "profile_deep_coverage_use_trivial": 2, - "profile_for_feedback": 2, - "use_zeroing_for_ho_cycles": 2, - "use_lots_of_ho_specialization": 2, - "deep_profile_tail_recursion": 2, - "record_term_sizes_as_words": 2, - "record_term_sizes_as_cells": 2, - "experimental_complexity": 2, - "gc": 2, - "threadscope": 2, - "trail_segments": 2, - "use_minimal_model_stack_copy": 2, - "use_minimal_model_own_stacks": 2, - "minimal_model_debug": 2, - "single_prec_float": 2, - "type_layout": 2, - "maybe_thread_safe_opt": 2, - "extend_stacks_when_needed": 2, - "stack_segments": 2, - "use_regions": 2, - "use_alloc_regions": 2, - "use_regions_debug": 2, - "use_regions_profiling": 2, - "source_to_source_debug": 5, - "ssdb_trace_level": 3, - "link_ssdb_libs": 4, - "tags": 2, - "num_tag_bits": 2, - "num_reserved_addresses": 2, - "num_reserved_objects": 2, - "bits_per_word": 2, - "bytes_per_word": 2, - "conf_low_tag_bits": 2, - "unboxed_enums": 2, - "unboxed_no_tag_types": 2, - "sync_term_size": 2, - "words": 1, - "gcc_global_registers": 2, - "pic_reg": 2, - "highlevel_code": 3, - "highlevel_data": 2, - "gcc_nested_functions": 2, - "det_copy_out": 2, - "nondet_copy_out": 2, - "put_commit_in_own_func": 2, - "put_nondet_env_on_heap": 2, - "verifiable_code": 2, - "il_refany_fields": 2, - "il_funcptr_types": 2, - "il_byref_tailcalls": 2, - "backend_foreign_languages": 2, - "stack_trace": 2, - "basic_stack_layout": 2, - "agc_stack_layout": 2, - "procid_stack_layout": 2, - "trace_stack_layout": 2, - "can_compare_constants_as_ints": 2, - "pretest_equality_cast_pointers": 2, - "can_compare_compound_values": 2, - "lexically_order_constructors": 2, - "mutable_always_boxed": 2, - "delay_partial_instantiations": 2, - "allow_defn_of_builtins": 2, - "special_preds": 2, - "type_ctor_info": 2, - "type_ctor_layout": 2, - "type_ctor_functors": 2, - "new_type_class_rtti": 2, - "rtti_line_numbers": 2, - "disable_minimal_model_stack_copy_pneg": 2, - "disable_minimal_model_stack_copy_cut": 2, - "use_minimal_model_stack_copy_pneg": 2, - "size_region_ite_fixed": 2, - "size_region_disj_fixed": 2, - "size_region_semi_disj_fixed": 1, - "size_region_commit_fixed": 2, - "size_region_ite_protect": 2, - "size_region_ite_snapshot": 2, - "size_region_semi_disj_protect": 2, - "size_region_disj_snapshot": 2, - "size_region_commit_entry": 2, - "solver_type_auto_init": 2, - "allow_multi_arm_switches": 2, - "type_check_constraints": 2, - "allow_argument_packing": 2, - "low_level_debug": 2, - "table_debug": 2, - "trad_passes": 2, - "parallel_liveness": 2, - "parallel_code_gen": 2, - "polymorphism": 2, - "reclaim_heap_on_failure": 2, - "reclaim_heap_on_semidet_failure": 2, - "reclaim_heap_on_nondet_failure": 2, - "have_delay_slot": 2, - "num_real_r_regs": 2, - "num_real_f_regs": 2, - "num_real_r_temps": 2, - "num_real_f_temps": 2, - "max_jump_table_size": 2, - "max_specialized_do_call_closure": 2, - "max_specialized_do_call_class_method": 2, - "compare_specialization": 2, - "should_pretest_equality": 2, - "fact_table_max_array_size": 2, - "fact_table_hash_percent_full": 2, - "gcc_local_labels": 2, - "prefer_switch": 2, - "opt_level": 3, - "opt_level_number": 2, - "opt_space": 2, - "Default": 3, - "to": 16, - "optimize": 3, - "time.": 1, - "intermodule_optimization": 2, - "read_opt_files_transitively": 2, - "use_opt_files": 2, - "use_trans_opt_files": 2, - "transitive_optimization": 2, - "intermodule_analysis": 2, - "analysis_repeat": 2, - "analysis_file_cache": 2, - "allow_inlining": 2, - "inlining": 2, - "inline_simple": 2, - "inline_builtins": 2, - "inline_single_use": 2, - "inline_call_cost": 2, - "inline_compound_threshold": 2, - "inline_simple_threshold": 2, - "inline_vars_threshold": 2, - "intermod_inline_simple_threshold": 2, - "from_ground_term_threshold": 2, - "enable_const_struct": 2, - "common_struct": 2, - "common_struct_preds": 2, - "common_goal": 2, - "constraint_propagation": 2, - "local_constraint_propagation": 2, - "optimize_unused_args": 2, - "intermod_unused_args": 2, - "optimize_higher_order": 2, - "higher_order_size_limit": 2, - "higher_order_arg_limit": 2, - "unneeded_code": 2, - "unneeded_code_copy_limit": 2, - "unneeded_code_debug": 2, - "unneeded_code_debug_pred_name": 2, - "type_specialization": 2, - "user_guided_type_specialization": 2, - "introduce_accumulators": 2, - "optimize_constructor_last_call_accumulator": 2, - "optimize_constructor_last_call": 2, - "optimize_duplicate_calls": 2, - "constant_propagation": 2, - "excess_assign": 2, - "optimize_format_calls": 2, - "optimize_saved_vars_const": 2, - "optimize_saved_vars_cell": 2, - "optimize_saved_vars_cell_loop": 2, - "optimize_saved_vars_cell_full_path": 2, - "optimize_saved_vars_cell_on_stack": 2, - "optimize_saved_vars_cell_candidate_headvars": 2, - "optimize_saved_vars_cell_cv_store_cost": 2, - "optimize_saved_vars_cell_cv_load_cost": 2, - "optimize_saved_vars_cell_fv_store_cost": 2, - "optimize_saved_vars_cell_fv_load_cost": 2, - "optimize_saved_vars_cell_op_ratio": 2, - "optimize_saved_vars_cell_node_ratio": 2, - "optimize_saved_vars_cell_all_path_node_ratio": 2, - "optimize_saved_vars_cell_include_all_candidates": 2, - "optimize_saved_vars": 2, - "loop_invariants": 2, - "delay_construct": 2, - "follow_code": 2, - "optimize_dead_procs": 2, - "deforestation": 2, - "deforestation_depth_limit": 2, - "deforestation_cost_factor": 2, - "deforestation_vars_threshold": 2, - "deforestation_size_threshold": 2, - "analyse_trail_usage": 2, - "analyse_mm_tabling": 2, - "untuple": 2, - "tuple": 2, - "tuple_trace_counts_file": 2, - "tuple_costs_ratio": 2, - "tuple_min_args": 2, - "inline_par_builtins": 2, - "always_specialize_in_dep_par_conjs": 2, - "allow_some_paths_only_waits": 2, - "structure_sharing_analysis": 2, - "structure_sharing_widening": 2, - "structure_reuse_analysis": 2, - "structure_reuse_constraint": 2, - "structure_reuse_constraint_arg": 2, - "structure_reuse_max_conditions": 2, - "structure_reuse_repeat": 2, - "structure_reuse_free_cells": 2, - "termination_check": 2, - "verbose_check_termination": 2, - "termination_single_args": 2, - "termination_norm": 2, - "termination_error_limit": 2, - "termination_path_limit": 2, - "termination2": 2, - "check_termination2": 2, - "verbose_check_termination2": 2, - "termination2_norm": 2, - "widening_limit": 2, - "arg_size_analysis_only": 2, - "propagate_failure_constrs": 2, - "term2_maximum_matrix_size": 2, - "analyse_exceptions": 2, - "analyse_closures": 2, - "smart_indexing": 2, - "dense_switch_req_density": 2, - "lookup_switch_req_density": 2, - "dense_switch_size": 2, - "lookup_switch_size": 2, - "string_hash_switch_size": 2, - "string_binary_switch_size": 2, - "tag_switch_size": 2, - "try_switch_size": 2, - "binary_switch_size": 2, - "switch_single_rec_base_first": 2, - "switch_multi_rec_base_first": 2, - "use_atomic_cells": 2, - "middle_rec": 2, - "simple_neg": 2, - "optimize_tailcalls": 2, - "optimize_initializations": 2, - "eliminate_local_vars": 2, - "generate_trail_ops_inline": 2, - "common_data": 2, - "common_layout_data": 2, - "Also": 1, - "used": 2, - "for": 8, - "MLDS": 2, - "optimizations.": 1, - "optimize_peep": 2, - "optimize_peep_mkword": 2, - "optimize_jumps": 2, - "optimize_fulljumps": 2, - "pessimize_tailcalls": 2, - "checked_nondet_tailcalls": 2, - "use_local_vars": 2, - "local_var_access_threshold": 2, - "standardize_labels": 2, - "optimize_labels": 2, - "optimize_dups": 2, - "optimize_proc_dups": 2, - "optimize_frames": 2, - "optimize_delay_slot": 2, - "optimize_reassign": 2, - "optimize_repeat": 2, - "layout_compression_limit": 2, - "use_macro_for_redo_fail": 2, - "emit_c_loops": 2, - "everything_in_one_c_function": 2, - "local_thread_engine_base": 2, - "erlang_switch_on_strings_as_atoms": 2, - "target_debug": 2, - "cc": 2, - "cflags": 2, - "quoted_cflag": 2, - "c_include_directory": 2, - "c_optimize": 2, - "ansi_c": 2, - "inline_alloc": 2, - "gcc_flags": 2, - "quoted_gcc_flag": 2, - "clang_flags": 2, - "quoted_clang_flag": 2, - "msvc_flags": 2, - "quoted_msvc_flag": 2, - "cflags_for_warnings": 2, - "cflags_for_optimization": 2, - "cflags_for_ansi": 2, - "cflags_for_regs": 2, - "cflags_for_gotos": 2, - "cflags_for_threads": 2, - "cflags_for_debug": 2, - "cflags_for_pic": 2, - "c_flag_to_name_object_file": 2, - "object_file_extension": 2, - "pic_object_file_extension": 2, - "link_with_pic_object_file_extension": 2, - "c_compiler_type": 2, - "csharp_compiler_type": 2, - "java_compiler": 2, - "java_interpreter": 2, - "java_flags": 2, - "quoted_java_flag": 2, - "java_classpath": 2, - "java_object_file_extension": 2, - "il_assembler": 2, - "ilasm_flags": 2, - "quoted_ilasm_flag": 2, - "dotnet_library_version": 2, - "support_ms_clr": 2, - "support_rotor_clr": 2, - "csharp_compiler": 2, - "csharp_flags": 2, - "quoted_csharp_flag": 2, - "cli_interpreter": 2, - "erlang_compiler": 2, - "erlang_interpreter": 2, - "erlang_flags": 2, - "quoted_erlang_flag": 2, - "erlang_include_directory": 2, - "erlang_object_file_extension": 2, - "erlang_native_code": 2, - "erlang_inhibit_trivial_warnings": 2, - "output_file_name": 3, - "ld_flags": 2, - "quoted_ld_flag": 2, - "ld_libflags": 2, - "quoted_ld_libflag": 2, - "link_library_directories": 3, - "runtime_link_library_directories": 3, - "link_libraries": 3, - "link_objects": 2, - "mercury_library_directories": 2, - "mercury_library_directory_special": 2, - "search_library_files_directories": 2, - "search_library_files_directory_special": 2, - "mercury_libraries": 2, - "mercury_library_special": 2, - "mercury_standard_library_directory": 2, - "mercury_standard_library_directory_special": 2, - "init_file_directories": 2, - "init_files": 2, - "trace_init_files": 2, - "linkage": 2, - "linkage_special": 2, - "mercury_linkage": 2, - "mercury_linkage_special": 2, - "strip": 2, - "demangle": 2, - "allow_undefined": 2, - "use_readline": 2, - "runtime_flags": 2, - "extra_initialization_functions": 2, - "frameworks": 2, - "framework_directories": 3, - "shared_library_extension": 2, - "library_extension": 2, - "executable_file_extension": 2, - "link_executable_command": 2, - "link_shared_lib_command": 2, - "create_archive_command": 2, - "create_archive_command_output_flag": 2, - "create_archive_command_flags": 2, - "ranlib_command": 2, - "ranlib_flags": 2, - "mkinit_command": 2, - "mkinit_erl_command": 2, - "demangle_command": 2, - "filtercc_command": 2, - "trace_libs": 2, - "thread_libs": 2, - "hwloc_libs": 2, - "hwloc_static_libs": 2, - "shared_libs": 2, - "math_lib": 2, - "readline_libs": 2, - "linker_opt_separator": 2, - "linker_thread_flags": 2, - "shlib_linker_thread_flags": 2, - "linker_static_flags": 2, - "linker_strip_flag": 2, - "linker_link_lib_flag": 2, - "linker_link_lib_suffix": 2, - "shlib_linker_link_lib_flag": 2, - "shlib_linker_link_lib_suffix": 2, - "linker_debug_flags": 2, - "shlib_linker_debug_flags": 2, - "linker_trace_flags": 2, - "shlib_linker_trace_flags": 2, - "linker_path_flag": 2, - "linker_rpath_flag": 2, - "linker_rpath_separator": 2, - "shlib_linker_rpath_flag": 2, - "shlib_linker_rpath_separator": 2, - "linker_allow_undefined_flag": 2, - "linker_error_undefined_flag": 2, - "shlib_linker_use_install_name": 2, - "shlib_linker_install_name_flag": 2, - "shlib_linker_install_name_path": 2, - "java_archive_command": 2, - "make": 3, - "keep_going": 3, - "rebuild": 3, - "jobs": 3, - "track_flags": 2, - "invoked_by_mmc_make": 2, - "extra_init_command": 2, - "pre_link_command": 2, - "install_prefix": 2, - "use_symlinks": 2, - "mercury_configuration_directory": 2, - "mercury_configuration_directory_special": 2, - "install_command": 2, - "install_command_dir_option": 2, - "libgrades": 2, - "libgrades_include_components": 2, - "libgrades_exclude_components": 2, - "lib_linkages": 2, - "flags_file": 2, - "options_files": 2, - "config_file": 2, - "options_search_directories": 2, - "use_subdirs": 2, - "use_grade_subdirs": 2, - "search_directories": 3, - "intermod_directories": 2, - "use_search_directories_for_intermod": 2, - "libgrade_install_check": 2, - "order_make_by_timestamp": 2, - "show_make_times": 2, - "extra_library_header": 2, - "restricted_command_line": 2, - "env_type": 2, - "host_env_type": 2, - "target_env_type": 2, - "filenames_from_stdin": 2, - "typecheck_ambiguity_warn_limit": 2, - "typecheck_ambiguity_error_limit": 2, - "help": 4, - "version": 3, - "fullarch": 2, - "cross_compiling": 2, - "local_module_id": 2, - "analysis_file_cache_dir": 2, - "compiler_sufficiently_recent": 2, - "experiment": 2, - "ignore_par_conjunctions": 2, - "control_granularity": 2, - "distance_granularity": 2, - "implicit_parallelism": 2, - "feedback_file": 2, - "par_loop_control": 2, - "par_loop_control_preserve_tail_recursion.": 1, - "libs.handle_options.": 1, - "dir.": 1, - "option_category": 2, - "warning_option": 2, - "verbosity_option": 2, - "output_option": 2, - "aux_output_option": 2, - "language_semantics_option": 2, - "compilation_model_option": 2, - "internal_use_option": 2, - "code_gen_option": 2, - "special_optimization_option": 2, - "optimization_option": 2, - "target_code_compilation_option": 2, - "link_option": 2, - "build_system_option": 2, - "miscellaneous_option.": 1, - "Option": 2, - "option_defaults_2": 18, - "_Category": 1, - "OptionsList": 2, - "list.member": 2, - "multi.": 1, - "bool_special": 7, - "XXX": 3, - "should": 1, - "be": 1, - "accumulating": 49, - "maybe_string": 6, - "special": 17, - "string_special": 18, - "int_special": 1, - "maybe_string_special": 1, - "file_special": 1, - "miscellaneous_option": 1, - "par_loop_control_preserve_tail_recursion": 1, - "check_hlds.polymorphism.": 1, - "hlds.": 1, - "mdbcomp.": 1, - "parse_tree.": 1, - "polymorphism_process_module": 2, - "polymorphism_process_generated_pred": 2, - "unification_typeinfos_rtti_varmaps": 2, - "rtti_varmaps": 9, - "unification": 8, - "polymorphism_process_new_call": 2, - "builtin_state": 1, - "call_unify_context": 2, - "sym_name": 3, - "hlds_goal": 45, - "poly_info": 45, - "polymorphism_make_type_info_vars": 1, - "polymorphism_make_type_info_var": 1, - "int_or_var": 2, - "iov_int": 1, - "iov_var": 1, - "gen_extract_type_info": 1, - "tvar": 10, - "kind": 1, - "vartypes": 12, - "poly_info.": 1, - "create_poly_info": 1, - "poly_info_extract": 1, - "build_typeclass_info_type": 3, - "prog_constraint": 4, - "type_is_typeclass_info": 1, - "type_is_type_info_or_ctor_type": 1, - "build_type_info_type": 1, - "get_special_proc": 1, - "special_pred_id": 2, - "get_special_proc_det": 1, - "convert_pred_to_lambda_goal": 3, - "purity": 1, - "lambda_eval_method": 1, - "unify_context": 3, - "context": 1, - "unify_rhs": 4, - "fix_undetermined_mode_lambda_goal": 2, - "rhs_lambda_goal": 7, - "init_type_info_var": 1, - "init_const_type_ctor_info_var": 1, - "type_ctor": 1, - "cons_id": 2, - "type_info_kind": 2, - "type_info": 8, - "type_ctor_info.": 1, - "new_type_info_var_raw": 1, - "check_hlds.clause_to_proc.": 1, - "check_hlds.mode_util.": 1, - "hlds.from_ground_term_util.": 1, - "hlds.const_struct.": 1, - "hlds.goal_util.": 1, - "hlds.hlds_args.": 1, - "hlds.hlds_clauses.": 1, - "hlds.hlds_code_util.": 1, - "hlds.passes_aux.": 1, - "hlds.pred_table.": 1, - "hlds.quantification.": 1, - "hlds.special_pred.": 1, - "libs.": 1, - "mdbcomp.program_representation.": 1, - "parse_tree.prog_mode.": 1, - "parse_tree.prog_type_subst.": 1, - "solutions.": 1, - "module_info_get_preds": 3, - ".ModuleInfo": 8, - "Preds0": 2, - "PredIds0": 2, - "list.foldl": 6, - "maybe_polymorphism_process_pred": 3, - "Preds1": 2, - "PredIds1": 2, - "fixup_pred_polymorphism": 4, - "expand_class_method_bodies": 1, - "PredModule": 8, - "pred_info_module": 4, - "PredName": 8, - "pred_info_name": 4, - "PredArity": 6, - "pred_info_orig_arity": 3, - "no_type_info_builtin": 3, - "copy_module_clauses_to_procs": 1, - "polymorphism_process_pred_msg": 3, - "PredTable0": 3, - "map.lookup": 2, - "PredInfo0": 16, - "pred_info_get_clauses_info": 2, - "ClausesInfo0": 5, - "clauses_info_get_vartypes": 2, - "VarTypes0": 12, - "clauses_info_get_headvars": 2, - "pred_info_get_arg_types": 7, - "TypeVarSet": 15, - "ExistQVars": 13, - "ArgTypes0": 3, - "proc_arg_vector_partition_poly_args": 1, - "ExtraHeadVarList": 2, - "OldHeadVarList": 2, - "lookup_var_types": 6, - "ExtraArgTypes": 2, - "ArgTypes": 6, - "pred_info_set_arg_types": 1, - "PredInfo1": 5, - "OldHeadVarTypes": 2, - "type_list_subsumes": 2, - "Subn": 3, - "map.is_empty": 1, - "pred_info_set_existq_tvar_binding": 1, - "PredInfo2": 7, - "polymorphism_introduce_exists_casts_pred": 3, - "PredTable": 2, - "module_info_set_preds": 1, - "pred_info_get_procedures": 2, - ".PredInfo": 2, - "Procs0": 4, - "map.map_values_only": 1, - ".ProcInfo": 2, - "det": 21, - "introduce_exists_casts_proc": 1, - "Procs": 4, - "pred_info_set_procedures": 2, - "trace": 4, - "compiletime": 4, - "flag": 4, - "write_pred_progress_message": 1, - "polymorphism_process_pred": 4, - "mutable": 3, - "selected_pred": 1, - "ground": 9, - "untrailed": 2, - "level": 1, - "promise_pure": 30, - "pred_id_to_int": 1, - "impure": 2, - "set_selected_pred": 2, - "polymorphism_process_clause_info": 3, - "ClausesInfo": 13, - "Info": 134, - "ExtraArgModes": 20, - "poly_info_get_module_info": 4, - "poly_info_get_const_struct_db": 1, - "ConstStructDb": 2, - "module_info_set_const_struct_db": 1, - "poly_info_get_typevarset": 4, - "pred_info_set_typevarset": 1, - "pred_info_set_clauses_info": 1, - "ProcIds": 5, - "pred_info_procids": 2, - "polymorphism_process_proc_in_table": 3, - "module_info_set_pred_info": 1, - "clauses_info": 6, - "poly_arg_vector": 9, - "mer_mode": 14, - "ModuleInfo0": 8, - "init_poly_info": 1, - ".ClausesInfo": 2, - "_VarSet": 1, - "ExplicitVarTypes": 2, - "_TVarNameMap": 1, - "_VarTypes": 1, - "HeadVars0": 5, - "ClausesRep0": 2, - "ItemNumbers": 2, - "_RttiVarMaps": 1, - "HaveForeignClauses": 2, - "setup_headvars": 3, - "UnconstrainedTVars": 15, - "ExtraTypeInfoHeadVars": 4, - "ExistTypeClassInfoHeadVars": 6, - "get_clause_list": 1, - "Clauses0": 2, - "list.map_foldl": 2, - "polymorphism_process_clause": 3, - "Clauses": 2, - "poly_info_get_varset": 4, - ".Info": 25, - "poly_info_get_var_types": 6, - "poly_info_get_rtti_varmaps": 4, - "RttiVarMaps": 16, - "set_clause_list": 1, - "ClausesRep": 2, - "TVarNameMap": 2, - "This": 2, - "only": 4, - "while": 1, - "adding": 1, - "the": 27, - "clauses.": 1, - "proc_arg_vector": 9, - "clause": 2, - "OldHeadVars": 2, - "NewHeadVars": 2, - "Clause": 2, - "pred_info_is_imported": 2, - "Goal0": 21, - ".Clause": 1, - "clause_body": 2, - "empty_cache_maps": 4, - "poly_info_set_num_reuses": 1, - "polymorphism_process_goal": 20, - "Goal1": 2, - "produce_existq_tvars": 3, - "Goal2": 2, - "pred_info_get_exist_quant_tvars": 1, - "fixup_quantification": 1, - "Goal": 40, - "proc_table": 2, - "ProcTable": 2, - ".ProcTable": 1, - "ProcInfo0": 2, - "polymorphism_process_proc": 3, - "pred_info_is_pseudo_imported": 1, - "hlds_pred.in_in_unification_proc_id": 1, - "HeadVarList": 4, - "proc_arg_vector_to_list": 2, - "clauses_info_get_rtti_varmaps": 1, - "clauses_info_get_varset": 1, - "proc_info_set_headvars": 1, - "proc_info_set_rtti_varmaps": 1, - "proc_info_set_varset": 1, - "proc_info_set_vartypes": 1, - "copy_clauses_to_proc": 1, - "proc_info_get_argmodes": 2, - "ArgModes1": 2, - "ExtraArgModesList": 2, - "poly_arg_vector_to_list": 1, - "ArgModes": 5, - "proc_info_set_argmodes": 1, - "ExtraHeadTypeInfoVars": 7, - "ExistHeadTypeClassInfoVars": 9, - "pred_info_get_origin": 1, - "Origin": 8, - "ExtraArgModes0": 3, - "poly_arg_vector_init": 1, - "origin_instance_method": 1, - "InstanceMethodConstraints": 4, - "setup_headvars_instance_method": 3, - "origin_special_pred": 1, - "origin_transformed": 1, - "origin_created": 1, - "origin_assertion": 1, - "origin_lambda": 1, - "origin_user": 1, - "pred_info_get_class_context": 4, - "ClassContext": 6, - "InstanceTVars": 7, - "InstanceUnconstrainedTVars": 2, - "InstanceUnconstrainedTypeInfoVars": 2, - "setup_headvars_2": 4, - "instance_method_constraints": 2, - "InstanceTypes": 2, - "InstanceConstraints": 3, - "type_vars_list": 5, - "get_unconstrained_tvars": 1, - "UnconstrainedInstanceTVars": 6, - "ArgTypeVarSet": 5, - "make_head_vars": 3, - "UnconstrainedInstanceTypeInfoVars": 7, - "make_typeclass_info_head_vars": 3, - "do_record_type_info_locns": 3, - "InstanceHeadTypeClassInfoVars": 4, - "proc_arg_vector_set_instance_type_infos": 1, - "proc_arg_vector_set_instance_typeclass_infos": 1, - "RttiVarMaps0": 4, - "rtti_reuse_typeclass_info_var": 3, - "poly_info_set_rtti_varmaps": 3, - "in_mode": 3, - "InMode": 3, - "list.duplicate": 6, - "list.length": 16, - "UnconstrainedInstanceTypeInfoModes": 2, - "InstanceHeadTypeClassInfoModes": 2, - "poly_arg_vector_set_instance_type_infos": 1, - "poly_arg_vector_set_instance_typeclass_infos": 1, - "prog_constraints": 1, - "AllUnconstrainedTVars": 2, - "AllExtraHeadTypeInfoVars": 2, - "constraints": 4, - "UnivConstraints": 3, - "ExistConstraints": 6, - "prog_type.constraint_list_get_tvars": 2, - "UnivConstrainedTVars": 2, - "ExistConstrainedTVars": 2, - "poly_info_get_constraint_map": 4, - "ConstraintMap": 12, - "get_improved_exists_head_constraints": 4, - "ActualExistConstraints": 9, - "pred_info_get_markers": 1, - "PredMarkers": 2, - "check_marker": 1, - "marker_class_method": 1, - "RecordExistQLocns": 3, - "do_not_record_type_info_locns": 1, - "UnivHeadTypeClassInfoVars": 4, - "HeadTypeVars": 2, - "list.delete_elems": 12, - "UnconstrainedTVars0": 2, - "UnconstrainedTVars1": 2, - "UnconstrainedTVars2": 2, - "list.remove_dups": 4, - "UnconstrainedUnivTVars": 7, - "UnconstrainedExistTVars": 6, - "ExistHeadTypeInfoVars": 5, - "UnivHeadTypeInfoVars": 4, - "list.condense": 4, - "proc_arg_vector_set_univ_type_infos": 1, - "HeadVars1": 2, - "proc_arg_vector_set_exist_type_infos": 1, - "HeadVars2": 2, - "proc_arg_vector_set_univ_typeclass_infos": 1, - "HeadVars3": 2, - "proc_arg_vector_set_exist_typeclass_infos": 1, - "In": 6, - "out_mode": 2, - "Out": 6, - "NumUnconstrainedUnivTVars": 2, - "NumUnconstrainedExistTVars": 2, - "NumUnivClassInfoVars": 2, - "NumExistClassInfoVars": 2, - "UnivTypeInfoModes": 2, - "ExistTypeInfoModes": 2, - "UnivTypeClassInfoModes": 2, - "ExistTypeClassInfoModes": 2, - "poly_arg_vector_set_univ_type_infos": 1, - "poly_arg_vector_set_exist_type_infos": 1, - "poly_arg_vector_set_univ_typeclass_infos": 1, - "poly_arg_vector_set_exist_typeclass_infos": 1, - "some": 4, - "ToLocn": 4, - "TheVar": 2, - "TheLocn": 2, - "list.map": 17, - "UnivTypeLocns": 2, - "list.foldl_corresponding": 3, - "rtti_det_insert_type_info_locn": 3, - "ExistTypeLocns": 2, - "UnconstrainedInstanceTypeLocns": 2, - ".RttiVarMaps": 1, - "TypeInfoHeadVars": 2, - "pred_info_get_tvar_kinds": 2, - "KindMap": 2, - "PredClassContext": 5, - "PredExistConstraints": 2, - "exist_constraints": 1, - "ExistQVarsForCall": 2, - "goal_info_get_context": 4, - "make_typeclass_info_vars": 3, - "ExistTypeClassVarsMCAs": 2, - "ExtraTypeClassGoals": 5, - "assoc_list.keys": 8, - "ExistTypeClassVars": 3, - "assign_var_list": 8, - "ExtraTypeClassUnifyGoals": 2, - "vartypes_is_empty": 1, - "PredToActualTypeSubst": 4, - "ActualArgTypes": 8, - "ArgTypeSubst": 2, - "apply_subst_to_tvar_list": 1, - "ActualTypes": 2, - "polymorphism_do_make_type_info_vars": 5, - "TypeInfoVarsMCAs": 2, - "ExtraTypeInfoGoals": 4, - "TypeInfoVars": 5, - "ExtraTypeInfoUnifyGoals": 2, - "GoalList": 8, - "conj_list_to_goal": 6, - "Var1": 5, - "Vars1": 2, - "Var2": 5, - "Vars2": 2, - "Goals": 13, - "assign_var": 3, - "true_goal": 1, - "term.context_init": 2, - "create_pure_atomic_complicated_unification": 1, - "rhs_var": 2, - "umc_explicit": 1, - "constraint_map": 1, - "NumExistConstraints": 4, - "search_hlds_constraint_list": 1, - "unproven": 3, - "goal_id": 1, - "ActualExistConstraints0": 2, - "GoalExpr0": 18, - "GoalInfo0": 41, - "generic_call": 1, - "plain_call": 5, - "ArgVars0": 23, - "polymorphism_process_call": 4, - "ExtraVars": 13, - "ExtraGoals": 13, - "ArgVars": 6, - "CallExpr": 4, - "call_args": 1, - "Call": 4, - "call_foreign_proc": 4, - "polymorphism_process_foreign_proc": 3, - "XVar": 11, - "Y": 9, - "Mode": 12, - "Unification": 16, - "UnifyContext": 15, - "polymorphism_process_unify": 4, - "conj": 5, - "ConjType": 4, - "Goals0": 13, - "plain_conj": 4, - "polymorphism_process_plain_conj": 5, - "parallel_conj": 1, - "get_cache_maps_snapshot": 11, - "InitialSnapshot": 36, - "polymorphism_process_par_conj": 5, - "GoalExpr": 19, - "disj": 2, - "polymorphism_process_disj": 6, - "set_cache_maps_snapshot": 15, - "if_then_else": 2, - "Cond0": 2, - "Then0": 2, - "Else0": 2, - "Cond": 2, - "Then": 2, - "Else": 2, - "negation": 2, - "SubGoal0": 14, - "SubGoal": 16, - "switch": 2, - "CanFail": 4, - "Cases0": 4, - "polymorphism_process_cases": 5, - "Cases": 4, - "scope": 7, - "Reason0": 16, - "from_ground_term": 2, - "TermVar": 4, - "Kind": 5, - "from_ground_term_initial": 2, - "polymorphism_process_from_ground_term_initial": 3, - "from_ground_term_construct": 1, - "from_ground_term_deconstruct": 1, - "from_ground_term_other": 1, - "promise_solutions": 1, - "promise_purity": 1, - "require_detism": 1, - "require_complete_switch": 1, - "commit": 1, - "barrier": 1, - "loop_control": 1, - "exist_quant": 1, - "trace_goal": 1, - "shorthand": 2, - "ShortHand0": 4, - "atomic_goal": 2, - "GoalType": 2, - "Outer": 2, - "Inner": 2, - "MainGoal0": 2, - "OrElseGoals0": 2, - "OrElseInners": 2, - "MainGoal": 2, - "OrElseGoals": 2, - "ShortHand": 3, - "try_goal": 2, - "MaybeIO": 2, - "ResultVar": 2, - "SubGoalExpr0": 4, - "SubGoalInfo": 2, - "Conjuncts0": 2, - "ConjunctA0": 2, - "ConjunctB0": 2, - "ConjunctA": 2, - "ConjunctB": 2, - "Conjuncts": 2, - "SubGoalExpr": 2, - "bi_implication": 1, - "hlds_goal_expr": 2, - "SubGoalInfo0": 2, - "SubGoals0Prime": 2, - "SubGoals0": 2, - "polymorphism_process_fgti_goals": 5, - "RevMarkedSubGoals": 2, - "fgt_invariants_kept": 2, - "InvariantsStatus": 7, - "Reason": 2, - "fgt_invariants_broken": 2, - "introduce_partial_fgt_scopes": 1, - "deconstruct_top_down": 1, - "fgt_marked_goal": 2, - "fgt_invariants_status": 2, - "RevMarkedGoals": 4, - "OldInfo": 3, - "XVarPrime": 2, - "ModePrime": 2, - "UnificationPrime": 2, - "UnifyContextPrime": 2, - "rhs_functor": 5, - "ConsIdPrime": 2, - "YVarsPrime": 2, - "ConsId": 10, - "YVars": 4, - "polymorphism_process_unify_functor": 4, - "Changed": 10, - "VarSetBefore": 2, - "MaxVarBefore": 2, - "varset.max_var": 2, - "poly_info_get_num_reuses": 2, - "NumReusesBefore": 2, - "VarSetAfter": 2, - "MaxVarAfter": 2, - "NumReusesAfter": 2, - "MarkedGoal": 3, - "fgt_kept_goal": 1, - "fgt_broken_goal": 1, - ".RevMarkedGoals": 1, - "unify_mode": 2, - "Unification0": 8, - "_YVar": 1, - "unification_typeinfos": 5, - "_Changed": 3, - "Args": 11, - "Purity": 9, - "Groundness": 6, - "PredOrFunc": 6, - "EvalMethod": 8, - "LambdaVars": 13, - "Modes": 4, - "Det": 4, - "LambdaGoal0": 5, - "LambdaGoal1": 2, - "fixup_lambda_quantification": 1, - "LambdaGoal": 6, - "NonLocalTypeInfos": 3, - "set_of_var.to_sorted_list": 1, - "NonLocalTypeInfosList": 2, - "Y1": 2, - "NonLocals0": 10, - "goal_info_get_nonlocals": 6, - "NonLocals": 12, - "goal_info_set_nonlocals": 6, - "type_vars": 2, - "TypeVars": 8, - "get_type_info_locn": 1, - "TypeInfoLocns": 6, - "add_unification_typeinfos": 4, - "rtti_lookup_type_info_locn": 1, - "type_info_locn": 1, - "type_info_locn_var": 1, - "TypeInfoVars0": 2, - ".GoalInfo": 1, - "set_of_var.insert_list": 4, - ".Unification": 5, - "complicated_unify": 2, - "construct": 1, - "deconstruct": 2, - "simple_test": 1, - "X0": 8, - "ConsId0": 5, - "Mode0": 4, - "TypeOfX": 6, - "Arity": 5, - "closure_cons": 1, - "ShroudedPredProcId": 2, - "ProcId0": 3, - "unshroud_pred_proc_id": 1, - "type_is_higher_order_details": 1, - "_PredOrFunc": 1, - "CalleeArgTypes": 2, - "invalid_proc_id": 1, - "goal_info_add_feature": 1, - "feature_lambda_undetermined_mode": 1, - "GoalInfo1": 6, - "VarSet0": 2, - "Functor0": 6, - "poly_info_set_varset_and_types": 1, - "cons": 3, - "ConsTypeCtor": 2, - "remove_new_prefix": 1, - "OrigFunctor": 2, - "IsConstruction": 7, - "type_util.get_existq_cons_defn": 1, - "ConsDefn": 2, - "polymorphism_process_existq_unify_functor": 3, - "UnifyExpr": 2, - "Unify": 2, - "PredArgTypes": 10, - "Functor": 6, - "create_fresh_vars": 5, - "QualifiedPName": 5, - "qualified": 1, - "cons_id_dummy_type_ctor": 1, - "RHS": 2, - "CallUnifyContext": 2, - "LambdaGoalExpr": 2, - "not_builtin": 3, - "OutsideVars": 2, - "InsideVars": 2, - "set_of_var.intersect": 1, - "LambdaNonLocals": 2, - "GoalId": 8, - "goal_info_get_goal_id": 3, - "goal_info_init": 1, - "LambdaGoalInfo0": 2, - "goal_info_set_context": 1, - "LambdaGoalInfo1": 2, - "LambdaGoalInfo2": 2, - "goal_info_set_purity": 1, - "LambdaGoalInfo3": 2, - "goal_info_set_goal_id": 1, - "LambdaGoalInfo": 4, - "lambda_modes_and_det": 4, - "LambdaModes": 6, - "LambdaDet": 6, - "pred_info_is_pred_or_func": 1, - "ho_ground": 1, - "_LambdaModes0": 1, - "_LambdaDet0": 1, - "goal_to_conj_list": 1, - "LambdaGoalList0": 2, - "list.split_last": 1, - "LambdaGoalButLast0": 2, - "LastGoal0": 2, - "LastGoalExpr0": 2, - "LastGoalInfo0": 2, - "PredId0": 2, - "_DummyProcId": 1, - "Args0": 5, - "MaybeCallUnifyContext0": 2, - "QualifiedPName0": 2, - "LambdaGoalButLast": 2, - "LastGoalInfo": 2, - "MaybeCallUnifyContext": 4, - "LastGoalExpr": 2, - "LastGoal": 2, - "prog_vars": 1, - "determinism": 1, - "NumArgModes": 2, - "NumLambdaVars": 2, - "list.drop": 2, - "LambdaModesPrime": 2, - "proc_info_get_declared_determinism": 1, - "MaybeDet": 3, - "sorry": 1, - "varset.new_var": 1, - "add_var_type": 1, - "ctor_defn": 2, - "CtorDefn": 2, - "ActualRetType": 2, - "CtorTypeVarSet": 2, - "CtorExistQVars": 2, - "CtorKindMap": 2, - "CtorExistentialConstraints": 2, - "CtorArgTypes": 2, - "CtorRetType": 2, - "TypeVarSet0": 5, - "tvarset_merge_renaming": 3, - "CtorToParentRenaming": 6, - "apply_variable_renaming_to_tvar_list": 2, - "ParentExistQVars": 6, - "apply_variable_renaming_to_tvar_kind_map": 2, - "ParentKindMap": 7, - "apply_variable_renaming_to_prog_constraint_list": 1, - "ParentExistentialConstraints": 3, - "apply_variable_renaming_to_type_list": 4, - "ParentArgTypes": 6, - "apply_variable_renaming_to_type": 1, - "ParentRetType": 2, - "poly_info_set_typevarset": 3, - "type_list_subsumes_det": 3, - "ParentToActualTypeSubst": 6, - "NumExistentialConstraints": 3, - "lookup_hlds_constraint_list": 4, - "ActualExistentialConstraints": 4, - "ExtraTypeClassVarsMCAs": 2, - "ExtraTypeClassVars": 2, - "assumed": 2, - "make_existq_typeclass_info_vars": 2, - "constraint_list_get_tvars": 3, - "ParentExistConstrainedTVars": 4, - "ParentUnconstrainedExistQVars": 2, - "apply_rec_subst_to_tvar_list": 4, - "ActualExistentialTypes": 2, - "ExtraTypeInfoVarsMCAs": 2, - "ExtraTypeInfoVars": 2, - "ExtraTypeClassVars.": 1, - "bound": 1, - "Attributes": 2, - "ProcExtraArgs": 2, - "MaybeTraceRuntimeCond": 2, - "Impl": 14, - "foreign_arg_var": 1, - "CanOptAwayUnnamed": 11, - "polymorphism_process_foreign_proc_args": 3, - "ExtraArgs": 5, - "pragma_foreign_code_impl": 4, - "foreign_arg": 1, - "PredTypeVarSet": 8, - "UnivCs": 4, - "ExistCs": 4, - "UnivVars0": 2, - "get_constrained_vars": 2, - "UnivConstrainedVars": 2, - "ExistVars0": 2, - "ExistConstrainedVars": 2, - "PredTypeVars0": 2, - "PredTypeVars1": 2, - "PredTypeVars2": 2, - "PredTypeVars": 3, - "foreign_proc_add_typeclass_info": 4, - "ExistTypeClassArgInfos": 2, - "UnivTypeClassArgInfos": 2, - "TypeClassArgInfos": 2, - "list.filter": 1, - "X": 9, - "semidet": 2, - "ExistUnconstrainedVars": 2, - "UnivUnconstrainedVars": 2, - "foreign_proc_add_typeinfo": 4, - "ExistTypeArgInfos": 2, - "UnivTypeArgInfos": 2, - "TypeInfoArgInfos": 2, - "ArgInfos": 2, - "TypeInfoTypes": 2, - "type_info_type": 1, - "UnivTypes": 2, - "ExistTypes": 2, - "OrigArgTypes": 2, - "make_foreign_args": 1, - "tvarset": 3, - "box_policy": 2, - "Constraint": 2, - "MaybeArgName": 7, - "native_if_possible": 2, - "SymName": 4, - "sym_name_to_string_sep": 1, - "TypeVarNames": 2, - "underscore_and_tvar_name": 3, - "string.append_list": 1, - "ConstraintVarName": 3, - "foreign_code_does_not_use_variable": 4, - "TVar": 4, - "varset.search_name": 1, - "TypeVarName": 2, - "C_VarName": 3, - "VarName": 2, - "foreign_code_uses_variable": 1, - "TVarName": 2, - "TVarName0": 1, - "TVarName0.": 1, - "cache_maps": 3, - "case": 4, - "Case0": 2, - "Case": 2, - "MainConsId": 2, - "OtherConsIds": 2, - "PredExistQVars": 2, - "PredKindMap": 3, - "varset.is_empty": 1, - "PredToParentTypeRenaming": 6, - "ParentTVars": 4, - "apply_variable_renaming_to_prog_constraints": 1, - "ParentClassContext": 2, - "ParentUnivConstraints": 3, - "ParentExistConstraints": 3, - "ParentUnivConstrainedTVars": 2, - "ParentUnconstrainedTVars0": 2, - "ParentUnconstrainedTVars1": 2, - "ParentUnconstrainedTVars": 3, - "ParentUnconstrainedUnivTVars": 3, - "ParentUnconstrainedExistTVars": 2, - "NumUnivConstraints": 2, - "ActualUnivConstraints": 2, - "ActualExistQVarTypes": 2, - "prog_type.type_list_to_var_list": 1, - "ActualExistQVars0": 2, - "ActualExistQVars": 2, - "ExtraUnivClassVarsMCAs": 2, - "ExtraUnivClassGoals": 2, - "ExtraUnivClassVars": 2, - "ExtraExistClassVars": 2, - "ExtraExistClassGoals": 2, - "ActualUnconstrainedUnivTypes": 2, - "ExtraUnivTypeInfoVarsMCAs": 2, - "ExtraUnivTypeInfoGoals": 2, - "ExtraUnivTypeInfoVars": 2, - "ActualUnconstrainedExistTypes": 2, - "ExtraExistTypeInfoVarsMCAs": 2, - "ExtraExistTypeInfoGoals": 2, - "ExtraExistTypeInfoVars": 2, - "CalleePredInfo": 2, - "CalleeProcInfo": 3, - "CallArgs0": 3, - "BuiltinState": 2, - "TVarSet0": 2, - "ActualArgTypes0": 3, - "PredTVarSet": 2, - "_PredExistQVars": 1, - "CalleeHeadVars": 2, - "proc_info_get_rtti_varmaps": 1, - "CalleeRttiVarMaps": 2, - "NCallArgs0": 2, - "NPredArgs": 2, - "NExtraArgs": 3, - "OrigPredArgTypes0": 2, - "list.take": 1, - "CalleeExtraHeadVars0": 2, - "OrigPredArgTypes": 2, - "CalleeExtraHeadVars": 2, - "TVarSet": 2, - "PredToParentRenaming": 3, - "OrigParentArgTypes": 2, - "ParentToActualTSubst": 2, - "GetTypeInfoTypes": 2, - "ProgVar": 2, - "TypeInfoType": 2, - "rtti_varmaps_var_info": 1, - "VarInfo": 4, - "type_info_var": 1, - "typeclass_info_var": 1, - "non_rtti_var": 1, - "PredTypeInfoTypes": 2, - "ParentTypeInfoTypes": 2, - "apply_rec_subst_to_type_list": 1, - "ActualTypeInfoTypes": 2, - "Ctxt": 2, - "ExtraArgsConstArgs": 2, - "CallArgs": 2, - "NonLocals1": 2, - "CallGoalExpr": 2, - "CallGoal": 2, - "rot13_concise.": 1, - "state": 3, - "alphabet": 3, - "cycle": 4, - "rot_n": 2, - "Char": 12, - "RotChar": 8, - "char_to_string": 1, - "CharString": 2, - "if": 15, - "sub_string_search": 1, - "Index": 3, - "then": 3, - "NewIndex": 2, - "mod": 1, - "index_det": 1, - "else": 8, - "rot13": 11, - "read_char": 1, - "Res": 8, - "ok": 3, - "print": 3, - "ErrorCode": 4, - "error_message": 1, - "ErrorMessage": 4, - "stderr_stream": 1, - "StdErr": 8, - "nl": 1, - "rot13_ralph.": 1, - "io__state": 4, - "io__read_byte": 1, - "Result": 4, - "io__write_byte": 1, - "ErrNo": 2, - "io__error_message": 2, - "z": 1, - "Rot13": 2, - "<": 14, - "rem": 1, - "rot13_verbose.": 1, - "rot13a/2": 1, - "table": 1, - "alphabetic": 2, - "characters": 1, - "their": 1, - "equivalents": 1, - "fails": 1, - "input": 1, - "not": 7, - "rot13a": 55, - "rot13/2": 1, - "Applies": 1, - "algorithm": 1, - "a": 10, - "character.": 1, - "TmpChar": 2, - "io__read_char": 1, - "io__write_char": 1, - "io__stderr_stream": 1, - "io__write_string": 2, - "io__nl": 1, - "store.": 1, - "typeclass": 1, - "store": 52, - "T": 52, - "where": 8, - "S": 133, - "instance": 4, - "io.state": 3, - "store.init": 2, - "generic_mutvar": 15, - "io_mutvar": 1, - "store_mutvar": 1, - "store.new_mutvar": 1, - "store.copy_mutvar": 1, - "store.get_mutvar": 1, - "store.set_mutvar": 1, - "<=>": 5, - "new_cyclic_mutvar": 2, - "Func": 4, - "Mutvar": 23, - "Create": 1, - "new": 25, - "variable": 1, - "whose": 2, - "initialized": 2, - "with": 5, - "returned": 1, - "from": 1, - "specified": 1, - "function": 3, - "The": 2, - "argument": 6, - "passed": 2, - "mutvar": 6, - "itself": 4, - "has": 4, - "yet": 1, - "been": 1, - "safe": 2, - "because": 1, - "does": 3, - "get": 2, - "so": 3, - "it": 1, - "can": 1, - "t": 5, - "examine": 1, - "uninitialized": 1, - "predicate": 1, - "useful": 1, - "creating": 1, - "self": 1, - "referential": 1, - "values": 1, - "such": 2, - "as": 5, - "circular": 1, - "linked": 1, - "lists": 1, - "For": 1, - "example": 1, - "clist": 2, - "node": 1, - "store.new_cyclic_mutvar": 1, - "generic_ref": 20, - "io_ref": 1, - "store_ref": 1, - "store.new_ref": 1, - "store.ref_functor": 1, - "store.arg_ref": 1, - "ArgT": 4, - "store.new_arg_ref": 3, - "store.set_ref": 1, - "store.set_ref_value": 1, - "store.copy_ref_value": 1, - "store.extract_ref_value": 1, - "Nasty": 1, - "performance": 2, - "hacks": 1, - "WARNING": 1, - "use": 1, - "of": 10, - "these": 1, - "procedures": 2, - "dangerous": 1, - "Use": 1, - "them": 1, - "last": 1, - "resort": 1, - "critical": 1, - "and": 6, - "shows": 1, - "that": 2, - "using": 1, - "versions": 1, - "bottleneck": 1, - "These": 1, - "may": 1, - "vanish": 1, - "future": 1, - "Mercury": 1, - "unsafe_arg_ref": 1, - "same": 2, - "arg_ref": 12, - "unsafe_new_arg_ref": 1, - "new_arg_ref": 1, - "except": 1, - "they": 4, - "doesn": 1, - "check": 1, - "errors": 1, - "don": 3, - "work": 3, - "no_tag": 1, - "types": 3, - "exactly": 2, - "one": 2, - "functor": 2, - "which": 2, - "arguments": 2, - "occupy": 1, - "word": 2, - "other": 1, - "functors.": 1, - "store.unsafe_arg_ref": 1, - "store.unsafe_new_arg_ref": 1, - "implementation": 1, - "require": 1, - "just": 1, - "real": 1, - "representation": 1, - "pragma": 41, - "foreign_type": 10, - "MR_Word": 24, - "can_pass_as_mercury_type": 5, - "equality": 5, - "store_equal": 7, - "comparison": 5, - "store_compare": 7, - "int32": 1, - "Java": 12, - "Erlang": 3, - "attempt": 2, - "two": 2, - "stores": 2, - "comparison_result": 1, - "compare": 1, - "Mutvars": 1, - "references": 1, - "are": 1, - "each": 1, - "represented": 1, - "pointer": 1, - "single": 1, - "on": 1, - "heap": 1, - "private_builtin.ref": 2, - "ref": 2, - "store.do_init": 6, - "foreign_proc": 28, - "_S0": 16, - "will_not_call_mercury": 28, - "will_not_modify_trail": 7, - "new_mutvar": 5, - "Val": 45, - "S0": 23, - "get_mutvar": 5, - "set_mutvar": 5, - "_S": 12, - "copy_mutvar": 1, - "Copy": 2, - "Value": 4, - "store.unsafe_new_uninitialized_mutvar": 1, - "unsafe_new_uninitialized_mutvar": 4, - "MR_offset_incr_hp_msg": 5, - "MR_SIZE_SLOT_SIZE": 10, - "1": 5, - "MR_ALLOC_ID": 5, - "2": 2, - "MR_define_size_slot": 5, - "0": 2, - "object": 21, - "MutVar": 4, - "Store": 5, - "apply": 1, - "Ref": 41, - "foreign_code": 2, - "public": 17, - "class": 4, - "Object": 9, - "referenced": 4, - "obj": 7, - "Specific": 2, - "field": 20, - "or": 2, - "null": 8, - "specify": 2, - "GetFields": 2, - "return": 6, - "fields": 3, - "any": 2, - "particular": 2, - "order": 2, - "really": 2, - "usable": 2, - "System": 1, - "Reflection": 1, - "FieldInfo": 1, - "Constructors": 2, - "init": 8, - "setField": 4, - "Set": 2, - "according": 2, - "given": 2, - "index": 2, - "void": 4, - "GetType": 1, - "reference": 4, - "getValue": 4, - "GetValue": 1, - "Update": 2, - "setValue": 2, - "SetValue": 1, - "static": 1, - "lang": 28, - "getDeclaredFields": 2, - "reflect": 1, - "Field": 5, - "try": 3, - "getClass": 1, - "catch": 11, - "SecurityException": 1, - "se": 1, - "throw": 11, - "RuntimeException": 11, - "Security": 1, - "manager": 1, - "denied": 1, - "access": 3, - "ArrayIndexOutOfBoundsException": 1, - "e": 13, - "No": 1, - "Exception": 3, - "Unable": 3, - "getMessage": 3, - "IllegalAccessException": 2, - "inaccessible": 2, - "IllegalArgumentException": 2, - "mismatch": 2, - "NullPointerException": 2, - "new_ref": 4, - "ets": 3, - "insert": 1, - "copy_ref_value": 1, - "unsafe_ref_value": 6, - "store.unsafe_ref_value": 1, - "lookup": 1, - "ref_functor": 1, - "canonicalize": 1, - "foreign_decl": 1, - "include": 4, - "mercury_type_info": 1, - "h": 4, - "mercury_heap": 1, - "mercury_misc": 1, - "MR_fatal_error": 5, - "mercury_deconstruct": 1, - "MR_arg": 3, - "ArgNum": 7, - "ArgRef": 22, - "may_not_duplicate": 1, - "MR_TypeInfo": 10, - "arg_type_info": 6, - "exp_arg_type_info": 6, - "MR_DuArgLocn": 2, - "arg_locn": 9, - "TypeInfo_for_T": 2, - "TypeInfo_for_ArgT": 2, - "MR_save_transient_registers": 2, - "MR_NONCANON_ABORT": 2, - "number": 2, - "range": 2, - "MR_compare_type_info": 2, - "MR_COMPARE_EQUAL": 2, - "wrong": 2, - "MR_restore_transient_registers": 2, - "NULL": 2, - "MR_arg_bits": 2, - "store.ref/2": 3, - "MR_arg_value": 2, - "C#": 6, - "store.Ref": 8, - "Ref.getValue": 6, - "*arg_ref": 1, - "*arg_locn": 1, - "&": 7, - "&&": 1, - "ValRef": 1, - "Ref.setValue": 3, - "ValRef.getValue": 2, - "*Ptr": 2, - "Ptr": 4, - "MR_strip_tag": 2, - "Arg": 6 - }, - "Monkey": { - "Strict": 1, - "sample": 1, - "class": 1, - "from": 1, - "the": 1, - "documentation": 1, - "Class": 3, - "Game": 1, - "Extends": 2, - "App": 1, - "Function": 2, - "New": 1, - "(": 12, - ")": 12, - "End": 8, - "DrawSpiral": 3, - "clock": 3, - "Local": 3, - "w": 3, - "DeviceWidth/2": 1, - "For": 1, - "i#": 1, - "Until": 1, - "w*1.5": 1, - "Step": 1, - ".2": 1, - "x#": 1, - "y#": 1, - "x": 2, - "+": 5, - "i*Sin": 1, - "i*3": 1, - "y": 2, - "i*Cos": 1, - "i*2": 1, - "DrawRect": 1, - "Next": 1, - "hitbox.Collide": 1, - "event.pos": 1, - "Field": 2, - "updateCount": 3, - "Method": 4, - "OnCreate": 1, - "Print": 2, - "SetUpdateRate": 1, - "OnUpdate": 1, - "OnRender": 1, - "Cls": 1, - "updateCount*1.1": 1, - "Enemy": 1, - "Die": 1, - "Abstract": 1, - "field": 1, - "testField": 1, - "Bool": 2, - "True": 2, - "oss": 1, - "he": 2, - "-": 2, - "killed": 1, - "me": 1, - "b": 6, - "extending": 1, - "with": 1, - "generics": 1, - "VectorNode": 1, - "Node": 1, - "": 1, - "array": 1, - "syntax": 1, - "Global": 14, - "listOfStuff": 3, - "String": 4, - "[": 6, - "]": 6, - "lessStuff": 1, - "oneStuff": 1, - "a": 3, - "comma": 1, - "separated": 1, - "sequence": 1, - "text": 1, - "worstCase": 1, - "worst.List": 1, - "": 1, - "escape": 1, - "characers": 1, - "in": 1, - "strings": 1, - "string3": 1, - "string4": 1, - "string5": 1, - "string6": 1, - "prints": 1, - ".ToUpper": 1, - "Boolean": 1, - "shorttype": 1, - "boolVariable1": 1, - "boolVariable2": 1, - "False": 1, - "preprocessor": 1, - "keywords": 1, - "#If": 1, - "TARGET": 2, - "DoStuff": 1, - "#ElseIf": 1, - "DoOtherStuff": 1, - "#End": 1, - "operators": 1, - "|": 2, - "&": 1, - "c": 1 - }, - "Moocode": { - "@program": 29, - "toy": 3, - "wind": 1, - "this.wound": 8, - "+": 39, - ";": 505, - "player": 2, - "tell": 1, - "(": 600, - "this.name": 4, - ")": 593, - "player.location": 1, - "announce": 1, - "player.name": 1, - ".": 30, - "while": 15, - "read": 1, - "endwhile": 14, - "I": 1, - "M": 1, - "P": 1, - "O": 1, - "R": 1, - "T": 2, - "A": 1, - "N": 1, - "The": 2, - "following": 2, - "code": 43, - "cannot": 1, - "be": 1, - "used": 1, - "as": 28, - "is.": 1, - "You": 1, - "will": 1, - "need": 1, - "to": 1, - "rewrite": 1, - "functionality": 1, - "that": 3, - "is": 6, - "not": 2, - "present": 1, - "in": 43, - "your": 1, - "server/core.": 1, - "most": 1, - "straight": 1, - "-": 98, - "forward": 1, - "target": 7, - "other": 1, - "than": 1, - "Stunt/Improvise": 1, - "a": 12, - "server/core": 1, - "provides": 1, - "map": 5, - "datatype": 1, - "and": 1, - "anonymous": 1, - "objects.": 1, - "Installation": 1, - "my": 1, - "server": 1, - "uses": 1, - "the": 4, - "object": 1, - "numbers": 1, - "#36819": 1, - "MOOcode": 4, - "Experimental": 2, - "Language": 2, - "Package": 2, - "#36820": 1, - "Changelog": 1, - "#36821": 1, - "Dictionary": 1, - "#36822": 1, - "Compiler": 2, - "#38128": 1, - "Syntax": 4, - "Tree": 1, - "Pretty": 1, - "Printer": 1, - "#37644": 1, - "Tokenizer": 2, - "Prototype": 25, - "#37645": 1, - "Parser": 2, - "#37648": 1, - "Symbol": 2, - "#37649": 1, - "Literal": 1, - "#37650": 1, - "Statement": 8, - "#37651": 1, - "Operator": 11, - "#37652": 1, - "Control": 1, - "Flow": 1, - "#37653": 1, - "Assignment": 2, - "#38140": 1, - "Compound": 1, - "#38123": 1, - "Prefix": 1, - "#37654": 1, - "Infix": 1, - "#37655": 1, - "Name": 1, - "#37656": 1, - "Bracket": 1, - "#37657": 1, - "Brace": 1, - "#37658": 1, - "If": 1, - "#38119": 1, - "For": 1, - "#38120": 1, - "Loop": 1, - "#38126": 1, - "Fork": 1, - "#38127": 1, - "Try": 1, - "#37659": 1, - "Invocation": 1, - "#37660": 1, - "Verb": 1, - "Selector": 2, - "#37661": 1, - "Property": 1, - "#38124": 1, - "Error": 1, - "Catching": 1, - "#38122": 1, - "Positional": 1, - "#38141": 1, - "From": 1, - "#37662": 1, - "Utilities": 1, - "#36823": 1, - "Tests": 4, - "#36824": 1, - "#37646": 1, - "#37647": 1, - "parent": 1, - "plastic.tokenizer_proto": 4, - "_": 4, - "_ensure_prototype": 4, - "application/x": 27, - "moocode": 27, - "typeof": 11, - "this": 114, - "OBJ": 3, - "||": 19, - "raise": 23, - "E_INVARG": 3, - "_ensure_instance": 7, - "ANON": 2, - "plastic.compiler": 3, - "_lookup": 2, - "private": 1, - "{": 112, - "name": 9, - "}": 112, - "args": 26, - "if": 90, - "value": 73, - "this.variable_map": 3, - "[": 99, - "]": 102, - "E_RANGE": 17, - "return": 61, - "else": 45, - "tostr": 51, - "random": 3, - "this.reserved_names": 1, - "endif": 93, - "compile": 1, - "source": 32, - "options": 3, - "tokenizer": 6, - "this.plastic.tokenizer_proto": 2, - "create": 16, - "parser": 89, - "this.plastic.parser_proto": 2, - "compiler": 2, - "try": 2, - "statements": 13, - "except": 2, - "ex": 4, - "ANY": 3, - ".tokenizer.row": 1, - "endtry": 2, - "for": 31, - "statement": 29, - "statement.type": 10, - "@source": 3, - "p": 82, - "@compiler": 1, - "endfor": 31, - "ticks_left": 4, - "<": 13, - "seconds_left": 4, - "&&": 39, - "suspend": 4, - "statement.value": 20, - "elseif": 41, - "_generate": 1, - "isa": 21, - "this.plastic.sign_operator_proto": 1, - "|": 9, - "statement.first": 18, - "statement.second": 13, - "this.plastic.control_flow_statement_proto": 1, - "first": 22, - "statement.id": 3, - "this.plastic.if_statement_proto": 1, - "s": 47, - "respond_to": 9, - "@code": 28, - "@this": 13, - "i": 29, - "length": 11, - "LIST": 6, - "this.plastic.for_statement_proto": 1, - "statement.subtype": 2, - "this.plastic.loop_statement_proto": 1, - "prefix": 4, - "this.plastic.fork_statement_proto": 1, - "this.plastic.try_statement_proto": 1, - "x": 9, - "@x": 3, - "join": 6, - "this.plastic.assignment_operator_proto": 1, - "statement.first.type": 1, - "res": 19, - "rest": 3, - "v": 17, - "statement.first.value": 1, - "v.type": 2, - "v.first": 2, - "v.second": 1, - "this.plastic.bracket_operator_proto": 1, - "statement.third": 4, - "this.plastic.brace_operator_proto": 1, - "this.plastic.invocation_operator_proto": 1, - "@a": 2, - "statement.second.type": 2, - "this.plastic.property_selector_operator_proto": 1, - "this.plastic.error_catching_operator_proto": 1, - "second": 18, - "this.plastic.literal_proto": 1, - "toliteral": 1, - "this.plastic.positional_symbol_proto": 1, - "this.plastic.prefix_operator_proto": 3, - "this.plastic.infix_operator_proto": 1, - "this.plastic.traditional_ternary_operator_proto": 1, - "this.plastic.name_proto": 1, - "plastic.printer": 2, - "_print": 4, - "indent": 4, - "result": 7, - "item": 2, - "@result": 2, - "E_PROPNF": 1, - "print": 1, - "instance": 59, - "instance.row": 1, - "instance.column": 1, - "instance.source": 1, - "advance": 16, - "this.token": 21, - "this.source": 3, - "row": 23, - "this.row": 2, - "column": 63, - "this.column": 2, - "eol": 5, - "block_comment": 6, - "inline_comment": 4, - "loop": 14, - "len": 3, - "continue": 16, - "next_two": 4, - "column..column": 1, - "c": 44, - "break": 6, - "re": 1, - "not.": 1, - "Worse": 1, - "*": 4, - "valid": 2, - "error": 6, - "like": 4, - "E_PERM": 4, - "treated": 2, - "literal": 2, - "an": 2, - "invalid": 2, - "E_FOO": 1, - "variable.": 1, - "Any": 1, - "starts": 1, - "with": 1, - "characters": 1, - "*now*": 1, - "but": 1, - "errors": 1, - "are": 1, - "errors.": 1, - "*/": 1, - "<=>": 8, - "z": 4, - "col1": 6, - "mark": 2, - "start": 2, - "1": 13, - "9": 4, - "col2": 4, - "chars": 21, - "index": 2, - "E_": 1, - "token": 24, - "type": 9, - "this.errors": 1, - "col1..col2": 2, - "toobj": 1, - "float": 4, - "0": 1, - "cc": 1, - "e": 1, - "tofloat": 1, - "toint": 1, - "esc": 1, - "q": 1, - "col1..column": 1, - "plastic.parser_proto": 3, - "@options": 1, - "instance.tokenizer": 1, - "instance.symbols": 1, - "plastic": 1, - "this.plastic": 1, - "symbol": 65, - "plastic.name_proto": 1, - "plastic.literal_proto": 1, - "plastic.operator_proto": 10, - "plastic.prefix_operator_proto": 1, - "plastic.error_catching_operator_proto": 3, - "plastic.assignment_operator_proto": 1, - "plastic.compound_assignment_operator_proto": 5, - "plastic.traditional_ternary_operator_proto": 2, - "plastic.infix_operator_proto": 13, - "plastic.sign_operator_proto": 2, - "plastic.bracket_operator_proto": 1, - "plastic.brace_operator_proto": 1, - "plastic.control_flow_statement_proto": 3, - "plastic.if_statement_proto": 1, - "plastic.for_statement_proto": 1, - "plastic.loop_statement_proto": 2, - "plastic.fork_statement_proto": 1, - "plastic.try_statement_proto": 1, - "plastic.from_statement_proto": 2, - "plastic.verb_selector_operator_proto": 2, - "plastic.property_selector_operator_proto": 2, - "plastic.invocation_operator_proto": 1, - "id": 14, - "bp": 3, - "proto": 4, - "nothing": 1, - "this.plastic.symbol_proto": 2, - "this.symbols": 4, - "clone": 2, - "this.token.type": 1, - "this.token.value": 1, - "this.token.eol": 1, - "operator": 1, - "variable": 1, - "identifier": 1, - "keyword": 1, - "Unexpected": 1, - "end": 2, - "Expected": 1, - "t": 1, - "call": 1, - "nud": 2, - "on": 1, - "@definition": 1, - "new": 4, - "pop": 4, - "delete": 1, - "plastic.utilities": 6, - "suspend_if_necessary": 4, - "parse_map_sequence": 1, - "separator": 6, - "infix": 3, - "terminator": 6, - "symbols": 7, - "ids": 6, - "@ids": 2, - "push": 3, - "@symbol": 2, - ".id": 13, - "key": 7, - "expression": 19, - "@map": 1, - "parse_list_sequence": 2, - "list": 3, - "@list": 1, - "validate_scattering_pattern": 1, - "pattern": 5, - "state": 8, - "element": 1, - "element.type": 3, - "element.id": 2, - "element.first.type": 2, - "children": 4, - "node": 3, - "node.value": 1, - "@children": 1, - "match": 1, - "root": 2, - "keys": 3, - "matches": 3, - "stack": 4, - "next": 2, - "top": 5, - "@stack": 2, - "top.": 1, - "@matches": 1, - "plastic.symbol_proto": 2, - "opts": 2, - "instance.id": 1, - "instance.value": 1, - "instance.bp": 1, - "k": 3, - "instance.": 1, - "parents": 3, - "ancestor": 2, - "ancestors": 1, - "property": 1, - "properties": 1, - "this.type": 8, - "this.first": 8, - "import": 8, - "this.second": 7, - "left": 2, - "this.third": 3, - "sequence": 2, - "led": 4, - "this.bp": 2, - "second.type": 2, - "make_identifier": 4, - "first.id": 1, - "parser.symbols": 2, - "reserve_keyword": 2, - "this.plastic.utilities": 1, - "third": 4, - "third.id": 2, - "second.id": 1, - "std": 1, - "reserve_statement": 1, - "types": 7, - ".type": 1, - "target.type": 3, - "target.value": 3, - "target.id": 4, - "temp": 4, - "temp.id": 1, - "temp.first.id": 1, - "temp.first.type": 2, - "temp.second.type": 1, - "temp.first": 2, - "imports": 5, - "import.type": 2, - "@imports": 2, - "parser.plastic.invocation_operator_proto": 1, - "temp.type": 1, - "parser.plastic.name_proto": 2, - "temp.first.value": 1, - "temp.second": 1, - "first.type": 1, - "parser.imports": 2, - "import.id": 2, - "parser.plastic.assignment_operator_proto": 1, - "result.type": 1, - "result.first": 1, - "result.second": 1, - "@verb": 1, - "do_the_work": 3, - "none": 1, - "object_utils": 1, - "this.location": 3, - "room": 1, - "announce_all": 2, - "continue_msg": 1, - "fork": 1, - "endfork": 1, - "wind_down_msg": 1 - }, - "MoonScript": { - "types": 2, - "require": 5, - "util": 2, - "data": 1, - "import": 5, - "reversed": 2, - "unpack": 22, - "from": 4, - "ntype": 16, - "mtype": 3, - "build": 7, - "smart_node": 7, - "is_slice": 2, - "value_is_singular": 3, - "insert": 18, - "table": 2, - "NameProxy": 14, - "LocalName": 2, - "destructure": 1, - "local": 1, - "implicitly_return": 2, - "class": 4, - "Run": 8, - "new": 2, - "(": 54, - "@fn": 1, - ")": 54, - "self": 2, - "[": 79, - "]": 79, - "call": 3, - "state": 2, - "self.fn": 1, - "-": 51, - "transform": 2, - "the": 4, - "last": 6, - "stm": 16, - "is": 2, - "a": 4, - "list": 6, - "of": 1, - "stms": 4, - "will": 1, - "puke": 1, - "on": 1, - "group": 1, - "apply_to_last": 6, - "fn": 3, - "find": 2, - "real": 1, - "exp": 17, - "last_exp_id": 3, - "for": 20, - "i": 15, - "#stms": 1, - "if": 43, - "and": 8, - "break": 1, - "return": 11, - "in": 18, - "ipairs": 3, - "else": 22, - "body": 26, - "sindle": 1, - "expression/statement": 1, - "is_singular": 2, - "false": 2, - "#body": 1, - "true": 4, - "find_assigns": 2, - "out": 9, - "{": 135, - "}": 136, - "thing": 4, - "*body": 2, - "switch": 7, - "when": 12, - "table.insert": 3, - "extract": 1, - "names": 16, - "hoist_declarations": 1, - "assigns": 5, - "hoist": 1, - "plain": 1, - "old": 1, - "*find_assigns": 1, - "name": 31, - "*names": 3, - "type": 5, - "after": 1, - "runs": 1, - "idx": 4, - "while": 3, - "do": 2, - "+": 2, - "expand_elseif_assign": 2, - "ifstm": 5, - "#ifstm": 1, - "case": 13, - "split": 4, - "constructor_name": 2, - "with_continue_listener": 4, - "continue_name": 13, - "nil": 8, - "@listen": 1, - "unless": 6, - "@put_name": 2, - "build.group": 14, - "@splice": 1, - "lines": 2, - "Transformer": 2, - "@transformers": 3, - "@seen_nodes": 3, - "setmetatable": 1, - "__mode": 1, - "scope": 4, - "node": 68, - "...": 10, - "transformer": 3, - "res": 3, - "or": 6, - "bind": 1, - "@transform": 2, - "__call": 1, - "can_transform": 1, - "construct_comprehension": 2, - "inner": 2, - "clauses": 4, - "current_stms": 7, - "_": 10, - "clause": 4, - "t": 10, - "iter": 2, - "elseif": 1, - "cond": 11, - "error": 4, - "..t": 1, - "Statement": 2, - "root_stms": 1, - "@": 1, - "assign": 9, - "values": 10, - "bubble": 1, - "cascading": 2, - "transformed": 2, - "#values": 1, - "value": 7, - "@transform.statement": 2, - "types.cascading": 1, - "ret": 16, - "types.is_value": 1, - "destructure.has_destructure": 2, - "destructure.split_assign": 1, - "continue": 1, - "@send": 1, - "build.assign_one": 11, - "export": 1, - "they": 1, - "are": 1, - "included": 1, - "#node": 3, - "cls": 5, - "cls.name": 1, - "build.assign": 3, - "update": 1, - "op": 2, - "op_final": 3, - "match": 1, - "..op": 1, - "not": 2, - "source": 7, - "stubs": 1, - "real_names": 4, - "build.chain": 7, - "base": 8, - "stub": 4, - "*stubs": 2, - "source_name": 3, - "comprehension": 1, - "action": 4, - "decorated": 1, - "dec": 6, - "wrapped": 4, - "fail": 5, + "Ragel in Ruby Host": { + "begin": 3, + "%": 34, + "{": 19, + "machine": 3, + "simple_scanner": 1, + ";": 38, + "action": 9, + "Emit": 4, + "emit": 4, + "data": 15, + "[": 20, + "(": 33, + "ts": 4, + "+": 7, + ")": 33, "..": 1, - "build.declare": 1, - "*stm": 1, - "expand": 1, - "destructure.build_assign": 2, - "build.do": 2, - "apply": 1, - "decorator": 1, - "mutate": 1, - "all": 1, - "bodies": 1, - "body_idx": 3, - "with": 3, - "block": 2, - "scope_name": 5, - "named_assign": 2, - "assign_name": 1, - "@set": 1, - "foreach": 1, - "node.iter": 1, - "destructures": 5, - "node.names": 3, - "proxy": 2, - "next": 1, - "node.body": 9, - "index_name": 3, - "list_name": 6, - "slice_var": 3, - "bounds": 3, - "slice": 7, - "#list": 1, - "table.remove": 2, - "max_tmp_name": 5, - "index": 2, - "conds": 3, - "exp_name": 3, - "convert": 1, - "into": 1, - "statment": 1, - "convert_cond": 2, - "case_exps": 3, - "cond_exp": 5, - "first": 3, - "if_stm": 5, - "*conds": 1, - "if_cond": 4, - "parent_assign": 3, - "parent_val": 1, - "apart": 1, - "properties": 4, - "statements": 4, - "item": 3, - "tuple": 8, - "*item": 1, - "constructor": 7, - "*properties": 1, - "key": 3, - "parent_cls_name": 5, - "base_name": 4, - "self_name": 4, - "cls_name": 1, - "build.fndef": 3, - "args": 3, - "arrow": 1, - "then": 2, - "constructor.arrow": 1, - "real_name": 6, - "#real_name": 1, - "build.table": 2, - "look": 1, - "up": 1, - "object": 1, - "class_lookup": 3, - "cls_mt": 2, - "out_body": 1, - "make": 1, - "sure": 1, - "we": 1, - "don": 1, - "string": 1, - "parens": 2, - "colon_stub": 1, - "super": 1, - "dot": 1, - "varargs": 2, - "arg_list": 1, - "Value": 1 - }, - "MTML": { - "<$mt:Var>": 15, - "name=": 19, - "value=": 9, - "": 1, - "op=": 8, - "setvar=": 9, - "": 1, - "<": 2, - "a": 1, - "href": 1, - "<$mt:CategoryLabel>": 1, - "remove_html=": 1, - "": 1, - "": 1, - "": 1, - "function=": 1, - "": 1, - "gt=": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 2, - "from=": 2, - "to=": 2, - "div": 1, - "class": 1, - "col_num": 1, - "": 2, - "": 1 - }, - "Nemerle": { - "using": 1, - "System.Console": 1, - ";": 2, + "te": 1, + "-": 5, + "]": 20, + ".pack": 6, + "}": 19, + "foo": 8, + "any": 4, + "main": 3, + "|": 11, + "*": 9, + "end": 23, + "#": 4, + "class": 3, + "SimpleScanner": 1, + "attr_reader": 2, + "path": 8, + "def": 10, + "initialize": 2, + "@path": 2, + "write": 9, + "stdout.puts": 2, + "perform": 2, + "pe": 4, + "ignored": 4, + "eof": 3, + "init": 3, + "leftover": 8, + "File.open": 2, + "do": 2, + "f": 2, + "while": 2, + "chunk": 2, + "f.read": 2, + "ENV": 2, + ".to_i": 2, + "chunk.unpack": 2, + "p": 8, + "||": 1, + "data.length": 3, + "exec": 3, + "if": 4, + "ts..pe": 1, + "else": 2, + "s": 4, + "SimpleScanner.new": 1, + "ARGV": 2, + "s.perform": 2, + "simple_tokenizer": 1, + "MyTs": 2, + "my_ts": 6, + "MyTe": 2, + "my_te": 6, + "my_ts...my_te": 1, + "nil": 4, + "SimpleTokenizer": 1, + "my_ts..": 1, + "SimpleTokenizer.new": 1, + "ephemeris_parser": 1, + "mark": 6, + "parse_start_time": 2, + "parser.start_time": 1, + "mark..p": 4, + "parse_stop_time": 2, + "parser.stop_time": 1, + "parse_step_size": 2, + "parser.step_size": 1, + "parse_ephemeris_table": 2, + "fhold": 1, + "parser.ephemeris_table": 1, + "ws": 2, + "t": 1, + "r": 1, + "n": 1, + "adbc": 2, + "year": 2, + "digit": 7, + "month": 2, + "upper": 1, + "lower": 1, + "date": 2, + "hours": 2, + "minutes": 2, + "seconds": 2, + "tz": 2, + "datetime": 3, + "time_unit": 2, + "soe": 2, + "eoe": 2, + "ephemeris_table": 3, + "alnum": 1, + "./": 1, + "start_time": 4, + "space*": 2, + "stop_time": 4, + "step_size": 3, + "ephemeris": 2, + "any*": 3, + "require": 1, "module": 1, - "Program": 1, - "{": 2, - "Main": 1, - "(": 2, - ")": 2, - "void": 1, - "WriteLine": 1, - "}": 2 - }, - "NetLogo": { - "patches": 7, - "-": 28, - "own": 1, - "[": 17, - "living": 6, - ";": 12, - "indicates": 1, - "if": 2, - "the": 6, - "cell": 10, - "is": 1, - "live": 4, - "neighbors": 5, - "counts": 1, - "how": 1, - "many": 1, - "neighboring": 1, - "cells": 2, - "are": 1, - "alive": 1, - "]": 17, - "to": 6, - "setup": 2, - "blank": 1, - "clear": 2, - "all": 5, - "ask": 6, - "death": 5, - "reset": 2, - "ticks": 2, - "end": 6, - "random": 2, - "ifelse": 3, - "float": 1, + "Tengai": 1, + "EPHEMERIS_DATA": 2, + "Struct.new": 1, + ".freeze": 1, + "EphemerisParser": 1, "<": 1, - "initial": 1, - "density": 1, - "birth": 4, - "set": 5, - "true": 1, - "pcolor": 2, - "fgcolor": 1, - "false": 1, - "bgcolor": 1, - "go": 1, - "count": 1, - "with": 2, - "Starting": 1, - "a": 1, + "self.parse": 1, + "parser": 2, "new": 1, - "here": 1, - "ensures": 1, - "that": 1, - "finish": 1, - "executing": 2, - "first": 1, - "before": 1, - "any": 1, - "of": 2, - "them": 1, - "start": 1, - "second": 1, - "ask.": 1, - "This": 1, - "keeps": 1, - "in": 2, - "synch": 1, - "each": 2, - "other": 1, - "so": 1, - "births": 1, - "and": 1, - "deaths": 1, - "at": 1, - "generation": 1, - "happen": 1, - "lockstep.": 1, - "tick": 1, - "draw": 1, - "let": 1, - "erasing": 2, - "patch": 2, - "mouse": 5, - "xcor": 2, - "ycor": 2, - "while": 1, - "down": 1, - "display": 1 + "data.unpack": 1, + "data.is_a": 1, + "String": 1, + "time": 6, + "super": 2, + "parse_time": 3, + "private": 1, + "DateTime.parse": 1 + }, + "Dogescript": { + "quiet": 1, + "wow": 4, + "such": 2, + "language": 3, + "very": 1, + "syntax": 1, + "github": 1, + "recognized": 1, + "loud": 1, + "much": 1, + "friendly": 2, + "rly": 1, + "is": 2, + "true": 1, + "plz": 2, + "console.loge": 2, + "with": 2, + "but": 1, + "module.exports": 1 }, "Nginx": { "user": 1, @@ -42739,29 +46244,441 @@ "logs/big.server.access.log": 1, "//big_server_com": 1 }, - "Nimrod": { - "echo": 1 + "OpenEdge ABL": { + "USING": 3, + "Progress.Lang.*.": 3, + "CLASS": 2, + "email.Email": 2, + "USE": 2, + "-": 73, + "WIDGET": 2, + "POOL": 2, + "&": 3, + "SCOPED": 1, + "DEFINE": 16, + "QUOTES": 1, + "@#": 1, + "%": 2, + "*": 2, + "+": 21, + "._MIME_BOUNDARY_.": 1, + "#@": 1, + "WIN": 1, + "From": 4, + "To": 8, + "CC": 2, + "BCC": 2, + "Personal": 1, + "Private": 1, + "Company": 2, + "confidential": 2, + "normal": 1, + "urgent": 2, + "non": 1, + "Cannot": 3, + "locate": 3, + "file": 6, + "in": 3, + "the": 3, + "filesystem": 3, + "R": 3, + "File": 3, + "exists": 3, + "but": 3, + "is": 3, + "not": 3, + "readable": 3, + "Error": 3, + "copying": 3, + "from": 3, + "<\">": 8, + "ttSenders": 2, + "cEmailAddress": 8, + "n": 13, + "ttToRecipients": 1, + "Reply": 3, + "ttReplyToRecipients": 1, + "Cc": 2, + "ttCCRecipients": 1, + "Bcc": 2, + "ttBCCRecipients": 1, + "Return": 1, + "Receipt": 1, + "ttDeliveryReceiptRecipients": 1, + "Disposition": 3, + "Notification": 1, + "ttReadReceiptRecipients": 1, + "Subject": 2, + "Importance": 3, + "H": 1, + "High": 1, + "L": 1, + "Low": 1, + "Sensitivity": 2, + "Priority": 2, + "Date": 4, + "By": 1, + "Expiry": 2, + "Mime": 1, + "Version": 1, + "Content": 10, + "Type": 4, + "multipart/mixed": 1, + ";": 5, + "boundary": 1, + "text/plain": 2, + "charset": 2, + "Transfer": 4, + "Encoding": 4, + "base64": 2, + "bit": 2, + "application/octet": 1, + "stream": 1, + "attachment": 2, + "filename": 2, + "ttAttachments.cFileName": 2, + "cNewLine.": 1, + "RETURN": 7, + "lcReturnData.": 1, + "END": 12, + "METHOD.": 6, + "METHOD": 6, + "PUBLIC": 6, + "CHARACTER": 9, + "send": 1, + "(": 44, + ")": 44, + "objSendEmailAlgorithm": 1, + "sendEmail": 2, + "INPUT": 11, + "THIS": 1, + "OBJECT": 2, + ".": 14, + "CLASS.": 2, + "MESSAGE": 2, + "PARAMETER": 3, + "objSendEmailAlg": 2, + "AS": 21, + "email.SendEmailSocket": 1, + "NO": 13, + "UNDO.": 12, + "VARIABLE": 12, + "vbuffer": 9, + "MEMPTR": 2, + "vstatus": 1, + "LOGICAL": 1, + "vState": 2, + "INTEGER": 6, + "ASSIGN": 2, + "vstate": 1, + "FUNCTION": 1, + "getHostname": 1, + "RETURNS": 1, + "cHostname": 1, + "THROUGH": 1, + "hostname": 1, + "ECHO.": 1, + "IMPORT": 1, + "UNFORMATTED": 1, + "cHostname.": 2, + "CLOSE.": 1, + "FUNCTION.": 1, + "PROCEDURE": 2, + "newState": 2, + "INTEGER.": 1, + "pstring": 4, + "CHARACTER.": 1, + "newState.": 1, + "IF": 2, + "THEN": 2, + "RETURN.": 1, + "SET": 5, + "SIZE": 5, + "LENGTH": 3, + "PUT": 1, + "STRING": 7, + "pstring.": 1, + "SELF": 4, + "WRITE": 1, + "PROCEDURE.": 2, + "ReadSocketResponse": 1, + "vlength": 5, + "str": 3, + "v": 1, + "GET": 3, + "BYTES": 2, + "AVAILABLE": 2, + "VIEW": 1, + "ALERT": 1, + "BOX.": 1, + "DO": 2, + "READ": 1, + "handleResponse": 1, + "END.": 2, + "INTERFACE": 1, + "email.SendEmailAlgorithm": 1, + "ipobjEmail": 1, + "INTERFACE.": 1, + "email.Util": 1, + "FINAL": 1, + "PRIVATE": 1, + "STATIC": 5, + "cMonthMap": 2, + "EXTENT": 1, + "INITIAL": 1, + "[": 2, + "]": 2, + "ABLDateTimeToEmail": 3, + "ipdttzDateTime": 6, + "DATETIME": 3, + "TZ": 2, + "DAY": 1, + "MONTH": 1, + "YEAR": 1, + "TRUNCATE": 2, + "MTIME": 1, + "/": 2, + "ABLTimeZoneToString": 2, + "TIMEZONE": 1, + "ipdtDateTime": 2, + "ipiTimeZone": 3, + "ABSOLUTE": 1, + "MODULO": 1, + "LONGCHAR": 4, + "ConvertDataToBase64": 1, + "iplcNonEncodedData": 2, + "lcPreBase64Data": 4, + "lcPostBase64Data": 3, + "mptrPostBase64Data": 3, + "i": 3, + "COPY": 1, + "LOB": 1, + "FROM": 1, + "TO": 2, + "mptrPostBase64Data.": 1, + "BASE64": 1, + "ENCODE": 1, + "BY": 1, + "SUBSTRING": 1, + "CHR": 2, + "lcPostBase64Data.": 1 + }, + "GAS": { + ".cstring": 1, + "LC0": 2, + ".ascii": 2, + ".text": 1, + ".globl": 2, + "_main": 2, + "LFB3": 4, + "pushq": 1, + "%": 6, + "rbp": 2, + "LCFI0": 3, + "movq": 1, + "rsp": 1, + "LCFI1": 2, + "leaq": 1, + "(": 1, + "rip": 1, + ")": 1, + "rdi": 1, + "call": 1, + "_puts": 1, + "movl": 1, + "eax": 1, + "leave": 1, + "ret": 1, + "LFE3": 2, + ".section": 1, + "__TEXT": 1, + "__eh_frame": 1, + "coalesced": 1, + "no_toc": 1, + "+": 2, + "strip_static_syms": 1, + "live_support": 1, + "EH_frame1": 2, + ".set": 5, + "L": 10, + "set": 10, + "LECIE1": 2, + "-": 7, + "LSCIE1": 2, + ".long": 6, + ".byte": 20, + "xc": 1, + ".align": 2, + "_main.eh": 2, + "LSFDE1": 1, + "LEFDE1": 2, + "LASFDE1": 3, + ".quad": 2, + ".": 1, + "xe": 1, + "xd": 1, + ".subsections_via_symbols": 1 + }, + "Squirrel": { + "//example": 1, + "from": 1, + "http": 1, + "//www.squirrel": 1, + "-": 1, + "lang.org/#documentation": 1, + "local": 3, + "table": 1, + "{": 10, + "a": 2, + "subtable": 1, + "array": 3, + "[": 3, + "]": 3, + "}": 10, + "+": 2, + "b": 1, + ";": 15, + "foreach": 1, + "(": 10, + "i": 1, + "val": 2, + "in": 1, + ")": 10, + "print": 2, + "typeof": 1, + "/////////////////////////////////////////////": 1, + "class": 2, + "Entity": 3, + "constructor": 2, + "etype": 2, + "entityname": 4, + "name": 2, + "type": 2, + "x": 2, + "y": 2, + "z": 2, + "null": 2, + "function": 2, + "MoveTo": 1, + "newx": 2, + "newy": 2, + "newz": 2, + "Player": 2, + "extends": 1, + "base.constructor": 1, + "DoDomething": 1, + "newplayer": 1, + "newplayer.MoveTo": 1 + }, + "SCSS": { + "blue": 4, + "#3bbfce": 1, + ";": 7, + "margin": 4, + "px": 1, + ".content": 1, + "-": 3, + "navigation": 1, + "{": 2, + "border": 2, + "color": 3, + "darken": 1, + "(": 1, + "%": 1, + ")": 1, + "}": 2, + ".border": 1, + "padding": 1, + "/": 2 }, "NSIS": { ";": 39, + "-": 205, + "x64.nsh": 1, + "A": 1, + "few": 1, + "simple": 1, + "macros": 1, + "to": 6, + "handle": 1, + "installations": 1, + "on": 6, + "x64": 1, + "machines.": 1, + "RunningX64": 4, + "checks": 1, + "if": 4, + "the": 4, + "installer": 1, + "is": 2, + "running": 1, + "x64.": 1, + "{": 8, + "If": 1, + "}": 8, + "MessageBox": 11, + "MB_OK": 8, + "EndIf": 1, + "DisableX64FSRedirection": 4, + "disables": 1, + "file": 4, + "system": 2, + "redirection.": 2, + "EnableX64FSRedirection": 4, + "enables": 1, + "SetOutPath": 3, + "SYSDIR": 1, + "File": 3, + "some.dll": 2, + "#": 3, + "extracts": 2, + "C": 2, + "Windows": 3, + "System32": 1, + "SysWOW64": 1, + "ifndef": 2, + "___X64__NSH___": 3, + "define": 4, + "include": 1, + "LogicLib.nsh": 1, + "macro": 3, + "_RunningX64": 1, + "_a": 1, + "_b": 1, + "_t": 2, + "_f": 2, + "insertmacro": 2, + "_LOGICLIB_TEMP": 3, + "System": 4, + "Call": 6, + "kernel32": 4, + "GetCurrentProcess": 1, + "(": 5, + ")": 5, + "i.s": 1, + "IsWow64Process": 1, + "*i.s": 1, + "Pop": 1, + "_": 1, + "macroend": 3, + "Wow64EnableWow64FsRedirection": 2, + "i0": 1, + "i1": 1, + "endif": 4, "bigtest.nsi": 1, "This": 2, "script": 1, "attempts": 1, - "to": 6, "test": 1, "most": 1, "of": 3, - "the": 4, "functionality": 1, "NSIS": 3, "exehead.": 1, - "-": 205, "ifdef": 2, "HAVE_UPX": 1, "packhdr": 1, "tmp.dat": 1, - "endif": 4, "NOCOMPRESS": 1, "SetCompress": 1, "off": 1, @@ -42770,7 +46687,6 @@ "Icon": 1, "OutFile": 1, "SetDateSave": 1, - "on": 6, "SetDatablockOptimize": 1, "CRCCheck": 1, "SilentInstall": 1, @@ -42795,10 +46711,8 @@ "instfiles": 2, "UninstPage": 2, "uninstConfirm": 1, - "ifndef": 2, "NOINSTTYPES": 1, "only": 1, - "if": 4, "not": 2, "defined": 1, "InstType": 6, @@ -42829,9 +46743,7 @@ "BigNSISTest": 8, "uninstall": 2, "strings": 1, - "SetOutPath": 3, "INSTDIR": 15, - "File": 3, "/a": 1, "CreateDirectory": 1, "recursively": 1, @@ -42845,8 +46757,6 @@ "SectionEnd": 5, "SectionIn": 4, "Start": 2, - "MessageBox": 11, - "MB_OK": 8, "MB_YESNO": 3, "IDYES": 2, "MyLabel": 2, @@ -42857,7 +46767,6 @@ "xdeadbeef": 1, "WriteRegBin": 1, "WriteINIStr": 5, - "Call": 6, "MyFunctionTest": 1, "DeleteINIStr": 1, "DeleteINISec": 1, @@ -42882,7 +46791,6 @@ "IDNO": 1, "NoOverwrite": 1, "skipped": 2, - "file": 4, "doesn": 2, "s": 1, "icon": 1, @@ -42891,12 +46799,10 @@ "and": 1, "give": 1, "hotkey": 1, - "(": 5, "Ctrl": 1, "+": 2, "Shift": 1, "Q": 2, - ")": 5, "CreateShortCut": 2, "SW_SHOWMINIMIZED": 1, "CONTROL": 1, @@ -42913,9 +46819,7 @@ "Hit": 1, "next": 1, "continue.": 1, - "{": 8, "NSISDIR": 1, - "}": 8, "Contrib": 1, "Graphics": 1, "Icons": 1, @@ -42924,7 +46828,6 @@ "Uninstall": 2, "Software": 1, "Microsoft": 1, - "Windows": 3, "CurrentVersion": 1, "silent.nsi": 1, "LogicLib.nsi": 1, @@ -42949,2945 +46852,7151 @@ "IDOK": 1, "t": 1, "exist": 1, - "NoErrorMsg": 1, - "x64.nsh": 1, - "A": 1, - "few": 1, - "simple": 1, - "macros": 1, - "handle": 1, - "installations": 1, - "x64": 1, - "machines.": 1, - "RunningX64": 4, - "checks": 1, - "installer": 1, - "is": 2, - "running": 1, - "x64.": 1, - "If": 1, - "EndIf": 1, - "DisableX64FSRedirection": 4, - "disables": 1, - "system": 2, - "redirection.": 2, - "EnableX64FSRedirection": 4, - "enables": 1, - "SYSDIR": 1, - "some.dll": 2, - "#": 3, - "extracts": 2, - "C": 2, - "System32": 1, - "SysWOW64": 1, - "___X64__NSH___": 3, - "define": 4, - "include": 1, - "LogicLib.nsh": 1, - "macro": 3, - "_RunningX64": 1, - "_a": 1, - "_b": 1, - "_t": 2, - "_f": 2, - "insertmacro": 2, - "_LOGICLIB_TEMP": 3, - "System": 4, - "kernel32": 4, - "GetCurrentProcess": 1, - "i.s": 1, - "IsWow64Process": 1, - "*i.s": 1, - "Pop": 1, - "_": 1, - "macroend": 3, - "Wow64EnableWow64FsRedirection": 2, - "i0": 1, - "i1": 1 + "NoErrorMsg": 1 }, - "Nu": { - "SHEBANG#!nush": 1, - "(": 14, - "puts": 1, - ")": 14, - ";": 22, - "main.nu": 1, - "Entry": 1, - "point": 1, - "for": 1, - "a": 1, - "Nu": 1, - "program.": 1, + "Brightscript": { + "**": 17, + "Simple": 1, + "Grid": 2, + "Screen": 2, + "Demonstration": 1, + "App": 1, "Copyright": 1, + "(": 32, "c": 1, - "Tim": 1, - "Burks": 1, - "Neon": 1, - "Design": 1, - "Technology": 1, + ")": 31, + "Roku": 1, "Inc.": 1, - "load": 4, - "basics": 1, - "cocoa": 1, - "definitions": 1, - "menu": 1, - "generation": 1, - "Aaron": 1, - "Hillegass": 1, - "t": 1, - "retain": 1, - "it.": 1, - "NSApplication": 2, - "sharedApplication": 2, - "setDelegate": 1, - "set": 1, - "delegate": 1, - "ApplicationDelegate": 1, - "alloc": 1, - "init": 1, - "this": 1, - "makes": 1, - "the": 3, + "All": 3, + "Rights": 1, + "Reserved.": 1, + "************************************************************": 2, + "Sub": 2, + "Main": 1, + "set": 2, + "to": 10, + "go": 1, + "time": 1, + "get": 1, + "started": 1, + "while": 4, + "gridstyle": 7, + "<": 1, + "print": 7, + ";": 10, + "screen": 5, + "preShowGridScreen": 2, + "showGridScreen": 2, + "end": 2, + "End": 4, + "Set": 1, + "the": 17, + "configurable": 1, + "theme": 3, + "attributes": 2, + "for": 10, "application": 1, - "window": 1, - "take": 1, - "focus": 1, - "when": 1, - "we": 1, - "ve": 1, - "started": 1, - "it": 1, - "from": 1, - "terminal": 1, - "activateIgnoringOtherApps": 1, - "YES": 1, - "run": 1, - "main": 1, - "Cocoa": 1, - "event": 1, - "loop": 1, - "NSApplicationMain": 1, - "nil": 1 - }, - "Objective-C": { - "//": 317, - "#import": 53, - "": 4, - "#if": 41, - "TARGET_OS_IPHONE": 11, - "": 1, - "__IPHONE_OS_VERSION_MAX_ALLOWED": 4, - "__IPHONE_4_0": 6, - "": 1, - "Necessary": 1, - "for": 99, + "Configure": 1, + "custom": 1, + "overhang": 1, + "and": 4, + "Logo": 1, + "are": 2, + "artwork": 2, + "colors": 1, + "offsets": 1, + "specific": 1, + "app": 1, + "******************************************************": 4, + "Screens": 1, + "can": 2, + "make": 1, + "slight": 1, + "adjustments": 1, + "default": 1, + "individual": 1, + "attributes.": 1, + "these": 1, + "greyscales": 1, + "theme.GridScreenBackgroundColor": 1, + "theme.GridScreenMessageColor": 1, + "theme.GridScreenRetrievingColor": 1, + "theme.GridScreenListNameColor": 1, + "used": 1, + "in": 3, + "theme.CounterTextLeft": 1, + "theme.CounterSeparator": 1, + "theme.CounterTextRight": 1, + "theme.GridScreenLogoHD": 1, + "theme.GridScreenLogoOffsetHD_X": 1, + "theme.GridScreenLogoOffsetHD_Y": 1, + "theme.GridScreenOverhangHeightHD": 1, + "theme.GridScreenLogoSD": 1, + "theme.GridScreenOverhangHeightSD": 1, + "theme.GridScreenLogoOffsetSD_X": 1, + "theme.GridScreenLogoOffsetSD_Y": 1, + "theme.GridScreenFocusBorderSD": 1, + "theme.GridScreenFocusBorderHD": 1, + "use": 1, + "your": 1, + "own": 1, + "description": 1, "background": 1, - "task": 1, - "support": 4, - "#endif": 59, - "": 2, - "@class": 4, - "ASIDataDecompressor": 4, - ";": 2003, - "extern": 6, - "NSString": 127, - "*ASIHTTPRequestVersion": 2, - "#ifndef": 9, - "__IPHONE_3_2": 2, - "#define": 65, - "__MAC_10_5": 2, - "__MAC_10_6": 2, - "typedef": 47, - "enum": 17, - "_ASIAuthenticationState": 1, - "{": 541, - "ASINoAuthenticationNeededYet": 3, - "ASIHTTPAuthenticationNeeded": 1, - "ASIProxyAuthenticationNeeded": 1, - "}": 532, - "ASIAuthenticationState": 5, - "_ASINetworkErrorType": 1, - "ASIConnectionFailureErrorType": 2, - "ASIRequestTimedOutErrorType": 2, - "ASIAuthenticationErrorType": 3, - "ASIRequestCancelledErrorType": 2, - "ASIUnableToCreateRequestErrorType": 2, - "ASIInternalErrorWhileBuildingRequestType": 3, - "ASIInternalErrorWhileApplyingCredentialsType": 1, - "ASIFileManagementError": 2, - "ASITooMuchRedirectionErrorType": 3, - "ASIUnhandledExceptionError": 3, - "ASICompressionError": 1, - "ASINetworkErrorType": 1, - "NSString*": 13, - "const": 28, - "NetworkRequestErrorDomain": 12, - "unsigned": 62, - "long": 71, - "ASIWWANBandwidthThrottleAmount": 2, - "NS_BLOCKS_AVAILABLE": 8, - "void": 253, - "(": 2109, - "ASIBasicBlock": 15, - ")": 2106, - "ASIHeadersBlock": 3, - "NSDictionary": 37, - "*responseHeaders": 2, - "ASISizeBlock": 5, - "size": 12, - "ASIProgressBlock": 5, - "total": 4, - "ASIDataBlock": 3, - "NSData": 28, - "*data": 2, - "@interface": 23, - "ASIHTTPRequest": 31, - "NSOperation": 1, - "": 1, - "The": 15, - "url": 24, - "this": 50, - "operation": 2, - "should": 8, - "include": 1, - "GET": 1, - "params": 1, - "in": 42, - "the": 197, - "query": 1, - "string": 9, - "where": 1, - "appropriate": 4, - "NSURL": 21, - "*url": 2, - "Will": 7, - "always": 2, - "contain": 4, - "original": 2, - "used": 16, - "making": 1, - "request": 113, - "value": 21, - "of": 34, - "can": 20, - "change": 2, - "when": 46, - "a": 78, - "is": 77, - "redirected": 2, - "*originalURL": 2, - "Temporarily": 1, - "stores": 1, - "we": 73, - "are": 15, - "about": 4, - "to": 115, - "redirect": 4, - "to.": 2, - "be": 49, - "nil": 131, - "again": 1, - "do": 5, - "*redirectURL": 2, - "delegate": 29, - "-": 595, - "will": 57, - "notified": 2, - "various": 1, - "changes": 4, - "state": 35, - "via": 5, - "ASIHTTPRequestDelegate": 1, - "protocol": 10, - "id": 170, - "": 1, - "Another": 1, - "that": 23, - "also": 1, - "status": 4, - "and": 44, - "progress": 13, - "updates": 2, - "Generally": 1, - "you": 10, - "won": 3, - "s": 35, - "more": 5, - "likely": 1, - "sessionCookies": 2, - "NSMutableArray": 31, - "*requestCookies": 2, - "populated": 1, - "with": 19, - "cookies": 5, - "NSArray": 27, - "*responseCookies": 3, - "If": 30, - "use": 26, - "useCookiePersistence": 3, - "true": 9, - "network": 4, - "requests": 21, - "present": 3, - "valid": 5, - "from": 18, - "previous": 2, - "BOOL": 137, - "useKeychainPersistence": 4, - "attempt": 3, - "read": 3, - "credentials": 35, - "keychain": 7, - "save": 3, - "them": 10, - "they": 6, - "successfully": 4, - "presented": 2, - "useSessionPersistence": 6, - "reuse": 3, - "duration": 1, - "session": 5, - "until": 2, - "clearSession": 2, - "called": 3, - "allowCompressedResponse": 3, - "inform": 1, - "server": 8, - "accept": 2, - "compressed": 2, - "data": 27, - "automatically": 2, - "decompress": 1, - "gzipped": 7, - "responses.": 1, - "Default": 10, - "true.": 1, - "shouldCompressRequestBody": 6, - "body": 8, - "gzipped.": 1, - "false.": 1, - "You": 1, - "probably": 4, - "need": 10, - "enable": 1, - "feature": 1, - "on": 26, - "your": 2, - "webserver": 1, - "make": 3, - "work.": 1, - "Tested": 1, - "apache": 1, - "only.": 1, - "When": 15, - "downloadDestinationPath": 11, - "set": 24, - "result": 4, - "downloaded": 6, - "file": 14, - "at": 10, - "location": 3, - "not": 29, - "download": 9, - "stored": 9, - "memory": 3, - "*downloadDestinationPath": 2, - "files": 5, - "Once": 2, - "complete": 12, - "decompressed": 3, - "if": 297, - "necessary": 2, - "moved": 2, - "*temporaryFileDownloadPath": 2, - "response": 17, - "shouldWaitToInflateCompressedResponses": 4, - "NO": 30, - "created": 3, - "path": 11, - "containing": 1, - "inflated": 6, - "as": 17, - "it": 28, - "comes": 3, - "*temporaryUncompressedDataDownloadPath": 2, - "Used": 13, - "writing": 2, - "NSOutputStream": 6, - "*fileDownloadOutputStream": 2, - "*inflatedFileDownloadOutputStream": 2, - "fails": 2, - "or": 18, - "completes": 6, - "finished": 3, - "cancelled": 5, - "an": 20, - "error": 75, - "occurs": 1, - "NSError": 51, - "code": 16, - "Connection": 1, - "failure": 1, - "occurred": 1, - "inspect": 1, - "[": 1227, - "userInfo": 15, - "]": 1227, - "objectForKey": 29, - "NSUnderlyingErrorKey": 3, - "information": 5, - "*error": 3, - "Username": 2, - "password": 11, - "authentication": 18, - "*username": 2, - "*password": 2, - "User": 1, - "Agent": 1, - "*userAgentString": 2, - "Domain": 2, - "NTLM": 6, - "*domain": 2, - "proxy": 11, - "*proxyUsername": 2, - "*proxyPassword": 2, - "*proxyDomain": 2, - "Delegate": 2, - "displaying": 2, - "upload": 4, - "usually": 2, - "NSProgressIndicator": 4, - "but": 5, - "supply": 2, - "different": 4, - "object": 36, - "handle": 4, - "yourself": 4, - "": 2, - "uploadProgressDelegate": 8, - "downloadProgressDelegate": 10, - "Whether": 1, - "t": 15, - "want": 5, - "hassle": 1, - "adding": 1, - "authenticating": 2, - "proxies": 3, - "their": 3, - "apps": 1, - "shouldPresentProxyAuthenticationDialog": 2, - "CFHTTPAuthenticationRef": 2, - "proxyAuthentication": 7, - "*proxyCredentials": 2, - "during": 4, - "int": 55, - "proxyAuthenticationRetryCount": 4, - "Authentication": 3, - "scheme": 5, - "Basic": 2, - "Digest": 2, - "*proxyAuthenticationScheme": 2, - "Realm": 1, - "required": 2, - "*proxyAuthenticationRealm": 3, - "HTTP": 9, - "eg": 2, - "OK": 1, - "Not": 2, - "found": 4, - "etc": 1, - "responseStatusCode": 3, - "Description": 1, - "*responseStatusMessage": 3, - "Size": 3, - "contentLength": 6, - "partially": 1, - "content": 5, - "partialDownloadSize": 8, - "POST": 2, - "payload": 1, - "postLength": 6, - "amount": 12, - "totalBytesRead": 4, - "uploaded": 2, - "totalBytesSent": 5, - "Last": 2, - "incrementing": 2, - "lastBytesRead": 3, - "sent": 6, - "lastBytesSent": 3, - "This": 7, - "lock": 19, - "prevents": 1, - "being": 4, - "inopportune": 1, - "moment": 1, - "NSRecursiveLock": 13, - "*cancelledLock": 2, - "Called": 6, - "implemented": 7, - "starts.": 1, - "requestStarted": 3, - "SEL": 19, - "didStartSelector": 2, - "receives": 3, - "headers.": 1, - "didReceiveResponseHeaders": 2, - "didReceiveResponseHeadersSelector": 2, - "Location": 1, - "header": 20, - "shouldRedirect": 3, - "YES": 62, - "then": 1, - "needed": 3, - "restart": 1, - "by": 12, - "calling": 1, - "redirectToURL": 2, - "simply": 1, - "cancel": 5, - "willRedirectSelector": 2, - "successfully.": 1, - "requestFinished": 4, - "didFinishSelector": 2, - "fails.": 1, - "requestFailed": 2, - "didFailSelector": 2, - "data.": 1, - "didReceiveData": 2, - "implement": 1, - "method": 5, - "must": 6, - "populate": 1, - "responseData": 5, - "write": 4, - "didReceiveDataSelector": 2, - "recording": 1, - "something": 1, - "last": 1, - "happened": 1, - "compare": 4, - "current": 2, - "date": 3, - "time": 9, - "out": 7, - "NSDate": 9, - "*lastActivityTime": 2, - "Number": 1, - "seconds": 2, - "wait": 1, - "before": 6, - "timing": 1, - "default": 8, - "NSTimeInterval": 10, - "timeOutSeconds": 3, - "HEAD": 10, - "length": 32, - "starts": 2, - "shouldResetUploadProgress": 3, - "shouldResetDownloadProgress": 3, - "showAccurateProgress": 7, - "preset": 2, - "*mainRequest": 2, - "only": 12, - "update": 6, - "indicator": 4, - "according": 2, - "how": 2, - "much": 2, - "has": 6, - "received": 5, - "so": 15, - "far": 2, - "Also": 1, - "see": 1, - "comments": 1, - "ASINetworkQueue.h": 1, - "ensure": 1, - "incremented": 4, - "once": 3, - "updatedProgress": 3, - "Prevents": 1, - "post": 2, - "built": 2, - "than": 9, - "largely": 1, - "subclasses": 2, - "haveBuiltPostBody": 3, - "internally": 3, - "may": 8, - "reflect": 1, - "internal": 2, - "buffer": 7, - "CFNetwork": 3, - "/": 18, - "PUT": 1, - "operations": 1, - "sizes": 1, - "greater": 1, - "uploadBufferSize": 6, - "timeout": 6, - "unless": 2, - "bytes": 8, - "have": 15, - "been": 1, - "Likely": 1, - "KB": 4, - "iPhone": 3, - "Mac": 2, - "OS": 1, - "X": 1, - "Leopard": 1, - "x": 10, - "Text": 1, - "encoding": 7, - "responses": 5, - "send": 2, - "Content": 1, - "Type": 1, - "charset": 5, - "value.": 1, - "Defaults": 2, - "NSISOLatin1StringEncoding": 2, - "NSStringEncoding": 6, - "defaultResponseEncoding": 4, - "text": 12, - "didn": 3, - "set.": 1, - "responseEncoding": 3, - "Tells": 1, - "delete": 1, - "partial": 2, - "downloads": 1, - "allows": 1, - "existing": 1, - "resume": 2, - "download.": 1, - "NO.": 1, - "allowResumeForFileDownloads": 2, - "Custom": 1, - "user": 6, - "associated": 1, - "*userInfo": 2, - "NSInteger": 56, - "tag": 2, - "Use": 6, - "rather": 4, - "defaults": 2, - "false": 3, - "useHTTPVersionOne": 3, - "get": 4, - "tell": 2, - "main": 8, - "loop": 1, - "stop": 4, - "retry": 3, - "new": 10, - "needsRedirect": 3, - "Incremented": 1, - "every": 3, - "redirects.": 1, - "reaches": 1, - "give": 2, - "up": 4, - "redirectCount": 2, - "check": 1, - "secure": 1, - "certificate": 2, - "self": 500, - "signed": 1, - "certificates": 2, - "development": 1, - "DO": 1, - "NOT": 1, - "USE": 1, - "IN": 1, - "PRODUCTION": 1, - "validatesSecureCertificate": 3, - "SecIdentityRef": 3, - "clientCertificateIdentity": 5, - "*clientCertificates": 2, - "Details": 1, - "could": 1, - "these": 3, - "best": 1, - "local": 1, - "*PACurl": 2, - "See": 5, - "values": 3, - "above.": 1, - "No": 1, - "yet": 1, - "authenticationNeeded": 3, - "ASIHTTPRequests": 1, - "store": 4, - "same": 6, - "asked": 3, - "avoids": 1, - "extra": 1, - "round": 1, - "trip": 1, - "after": 5, - "succeeded": 1, - "which": 1, - "efficient": 1, - "authenticated": 1, - "large": 1, - "bodies": 1, - "slower": 1, - "connections": 3, - "Set": 4, - "explicitly": 2, - "affects": 1, - "cache": 17, - "YES.": 1, - "Credentials": 1, - "never": 1, - "asks": 1, - "For": 2, - "using": 8, - "authenticationScheme": 4, - "*": 311, - "kCFHTTPAuthenticationSchemeBasic": 2, - "very": 2, - "first": 9, - "shouldPresentCredentialsBeforeChallenge": 4, - "hasn": 1, - "doing": 1, - "anything": 1, - "expires": 1, - "persistentConnectionTimeoutSeconds": 4, - "yes": 1, - "keep": 2, - "alive": 1, - "connectionCanBeReused": 4, - "Stores": 1, - "persistent": 5, - "connection": 17, - "currently": 4, - "use.": 1, - "It": 2, - "particular": 2, - "specify": 2, - "expire": 2, - "A": 4, - "host": 9, - "port": 17, - "connection.": 2, - "These": 1, - "determine": 1, - "whether": 1, - "reused": 2, - "subsequent": 2, - "all": 3, - "match": 1, - "An": 2, - "determining": 1, - "available": 1, - "number": 2, - "reference": 1, - "don": 2, - "ve": 7, - "opened": 3, - "one.": 1, - "stream": 13, - "closed": 1, - "+": 195, - "released": 2, - "either": 1, - "another": 1, - "timer": 5, - "fires": 1, - "NSMutableDictionary": 18, - "*connectionInfo": 2, - "automatic": 1, - "redirects": 2, - "standard": 1, - "follow": 1, - "behaviour": 2, - "most": 1, - "browsers": 1, - "shouldUseRFC2616RedirectBehaviour": 2, - "record": 1, - "downloading": 5, - "downloadComplete": 2, - "ID": 1, - "uniquely": 1, - "identifies": 1, - "primarily": 1, - "debugging": 1, - "NSNumber": 11, - "*requestID": 3, - "ASIHTTPRequestRunLoopMode": 2, - "synchronous": 1, - "NSDefaultRunLoopMode": 2, - "other": 3, - "*runLoopMode": 2, - "checks": 1, - "NSTimer": 5, - "*statusTimer": 2, - "setDefaultCache": 2, - "configure": 2, - "": 9, - "downloadCache": 5, - "policy": 7, - "ASICacheDelegate.h": 2, - "possible": 3, - "ASICachePolicy": 4, - "cachePolicy": 3, - "storage": 2, - "ASICacheStoragePolicy": 2, - "cacheStoragePolicy": 2, - "was": 4, - "pulled": 1, - "didUseCachedResponse": 3, - "secondsToCache": 3, - "custom": 2, - "interval": 1, - "expiring": 1, - "&&": 123, - "shouldContinueWhenAppEntersBackground": 3, - "UIBackgroundTaskIdentifier": 1, - "backgroundTask": 7, - "helper": 1, - "inflate": 2, - "*dataDecompressor": 2, - "Controls": 1, - "without": 1, - "responseString": 3, - "All": 2, - "no": 7, - "raw": 3, - "discarded": 1, - "rawResponseData": 4, - "temporaryFileDownloadPath": 2, - "normal": 1, - "temporaryUncompressedDataDownloadPath": 3, - "contents": 1, - "into": 1, - "Setting": 1, - "especially": 1, - "useful": 1, - "users": 1, - "conjunction": 1, - "streaming": 1, - "parser": 3, - "allow": 1, - "passed": 2, - "while": 11, - "still": 2, - "running": 4, - "behind": 1, - "scenes": 1, - "PAC": 7, - "own": 3, - "isPACFileRequest": 3, - "http": 4, - "https": 1, - "webservers": 1, - "*PACFileRequest": 2, - "asynchronously": 1, - "reading": 1, - "URLs": 2, - "NSInputStream": 7, - "*PACFileReadStream": 2, - "storing": 1, - "NSMutableData": 5, - "*PACFileData": 2, - "startSynchronous.": 1, - "Currently": 1, - "detection": 2, - "synchronously": 1, - "isSynchronous": 2, - "//block": 12, - "execute": 4, - "startedBlock": 5, - "headers": 11, - "headersReceivedBlock": 5, - "completionBlock": 5, - "failureBlock": 5, - "bytesReceivedBlock": 8, - "bytesSentBlock": 5, - "downloadSizeIncrementedBlock": 5, - "uploadSizeIncrementedBlock": 5, - "handling": 4, - "dataReceivedBlock": 5, - "authenticationNeededBlock": 5, - "proxyAuthenticationNeededBlock": 5, - "redirections": 1, - "requestRedirectedBlock": 5, - "#pragma": 44, - "mark": 42, - "init": 34, - "dealloc": 13, - "initWithURL": 4, - "newURL": 16, - "requestWithURL": 7, - "usingCache": 5, - "andCachePolicy": 3, - "setStartedBlock": 1, - "aStartedBlock": 1, - "setHeadersReceivedBlock": 1, - "aReceivedBlock": 2, - "setCompletionBlock": 1, - "aCompletionBlock": 1, - "setFailedBlock": 1, - "aFailedBlock": 1, - "setBytesReceivedBlock": 1, - "aBytesReceivedBlock": 1, - "setBytesSentBlock": 1, - "aBytesSentBlock": 1, - "setDownloadSizeIncrementedBlock": 1, - "aDownloadSizeIncrementedBlock": 1, - "setUploadSizeIncrementedBlock": 1, - "anUploadSizeIncrementedBlock": 1, - "setDataReceivedBlock": 1, - "setAuthenticationNeededBlock": 1, - "anAuthenticationBlock": 1, - "setProxyAuthenticationNeededBlock": 1, - "aProxyAuthenticationBlock": 1, - "setRequestRedirectedBlock": 1, - "aRedirectBlock": 1, - "setup": 2, - "addRequestHeader": 5, - "applyCookieHeader": 2, - "buildRequestHeaders": 3, - "applyAuthorizationHeader": 2, - "buildPostBody": 3, - "appendPostData": 3, - "appendPostDataFromFile": 3, - "isResponseCompressed": 3, - "startSynchronous": 2, - "startAsynchronous": 2, - "clearDelegatesAndCancel": 2, - "HEADRequest": 1, - "upload/download": 1, - "updateProgressIndicators": 1, - "updateUploadProgress": 3, - "updateDownloadProgress": 3, - "removeUploadProgressSoFar": 1, - "incrementDownloadSizeBy": 1, - "incrementUploadSizeBy": 3, - "updateProgressIndicator": 4, - "withProgress": 4, - "ofTotal": 4, - "performSelector": 7, - "selector": 12, - "onTarget": 7, - "target": 5, - "withObject": 10, - "callerToRetain": 7, - "caller": 1, - "talking": 1, - "delegates": 2, - "requestReceivedResponseHeaders": 1, - "newHeaders": 1, - "failWithError": 11, - "theError": 6, - "retryUsingNewConnection": 1, - "parsing": 2, - "readResponseHeaders": 2, - "parseStringEncodingFromHeaders": 2, - "parseMimeType": 2, - "**": 27, - "mimeType": 2, - "andResponseEncoding": 2, - "stringEncoding": 1, - "fromContentType": 2, - "contentType": 1, + "theme.GridScreenDescriptionOffsetSD": 1, + "theme.GridScreenDescriptionOffsetHD": 1, + "return": 5, + "Function": 5, + "Perform": 1, + "any": 1, + "startup/initialization": 1, "stuff": 1, - "applyCredentials": 1, - "newCredentials": 16, - "applyProxyCredentials": 2, - "findCredentials": 1, - "findProxyCredentials": 2, - "retryUsingSuppliedCredentials": 1, - "cancelAuthentication": 1, - "attemptToApplyCredentialsAndResume": 1, - "attemptToApplyProxyCredentialsAndResume": 1, - "showProxyAuthenticationDialog": 1, - "showAuthenticationDialog": 1, - "addBasicAuthenticationHeaderWithUsername": 2, - "theUsername": 1, - "andPassword": 2, - "thePassword": 1, - "handlers": 1, - "handleNetworkEvent": 2, - "CFStreamEventType": 2, - "type": 5, - "handleBytesAvailable": 1, - "handleStreamComplete": 1, - "handleStreamError": 1, - "cleanup": 1, - "markAsFinished": 4, - "removeTemporaryDownloadFile": 1, - "removeTemporaryUncompressedDownloadFile": 1, - "removeTemporaryUploadFile": 1, - "removeTemporaryCompressedUploadFile": 1, - "removeFileAtPath": 1, - "err": 8, - "connectionID": 1, - "expirePersistentConnections": 1, - "defaultTimeOutSeconds": 3, - "setDefaultTimeOutSeconds": 1, - "newTimeOutSeconds": 1, - "client": 1, - "setClientCertificateIdentity": 1, - "anIdentity": 1, - "sessionProxyCredentialsStore": 1, - "sessionCredentialsStore": 1, - "storeProxyAuthenticationCredentialsInSessionStore": 1, - "storeAuthenticationCredentialsInSessionStore": 2, - "removeProxyAuthenticationCredentialsFromSessionStore": 1, - "removeAuthenticationCredentialsFromSessionStore": 3, - "findSessionProxyAuthenticationCredentials": 1, - "findSessionAuthenticationCredentials": 2, - "saveCredentialsToKeychain": 3, - "saveCredentials": 4, - "NSURLCredential": 8, - "forHost": 2, - "realm": 14, - "forProxy": 2, - "savedCredentialsForHost": 1, - "savedCredentialsForProxy": 1, - "removeCredentialsForHost": 1, - "removeCredentialsForProxy": 1, - "setSessionCookies": 1, - "newSessionCookies": 1, - "addSessionCookie": 1, - "NSHTTPCookie": 1, - "newCookie": 1, - "agent": 2, - "defaultUserAgentString": 1, - "setDefaultUserAgentString": 1, - "mime": 1, - "mimeTypeForFileAtPath": 1, - "bandwidth": 3, - "measurement": 1, - "throttling": 1, - "maxBandwidthPerSecond": 2, - "setMaxBandwidthPerSecond": 1, - "averageBandwidthUsedPerSecond": 2, - "performThrottling": 2, - "isBandwidthThrottled": 2, - "incrementBandwidthUsedInLastSecond": 1, - "setShouldThrottleBandwidthForWWAN": 1, - "throttle": 1, - "throttleBandwidthForWWANUsingLimit": 1, - "limit": 1, - "reachability": 1, - "isNetworkReachableViaWWAN": 1, - "queue": 12, - "NSOperationQueue": 4, - "sharedQueue": 4, - "defaultCache": 3, - "maxUploadReadLength": 1, - "activity": 1, - "isNetworkInUse": 1, - "setShouldUpdateNetworkActivityIndicator": 1, - "shouldUpdate": 1, - "showNetworkActivityIndicator": 1, - "hideNetworkActivityIndicator": 1, - "miscellany": 1, - "base64forData": 1, - "theData": 1, - "expiryDateForRequest": 1, - "maxAge": 2, - "dateFromRFC1123String": 1, - "isMultitaskingSupported": 2, - "threading": 1, - "NSThread": 4, - "threadForRequest": 3, - "@property": 150, - "retain": 73, - "*proxyHost": 1, - "assign": 84, - "proxyPort": 2, - "*proxyType": 1, - "setter": 2, - "setURL": 3, - "nonatomic": 40, - "readonly": 19, - "*authenticationRealm": 2, - "*requestHeaders": 1, - "*requestCredentials": 1, - "*rawResponseData": 1, - "*requestMethod": 1, - "*postBody": 1, - "*postBodyFilePath": 1, - "shouldStreamPostDataFromDisk": 4, - "didCreateTemporaryPostDataFile": 1, - "*authenticationScheme": 1, - "shouldPresentAuthenticationDialog": 1, - "authenticationRetryCount": 2, - "haveBuiltRequestHeaders": 1, - "inProgress": 4, - "numberOfTimesToRetryOnTimeout": 2, - "retryCount": 3, - "shouldAttemptPersistentConnection": 2, - "@end": 37, - "": 1, - "#else": 8, - "": 1, - "@": 258, - "static": 102, - "*defaultUserAgent": 1, - "*ASIHTTPRequestRunLoopMode": 1, - "CFOptionFlags": 1, - "kNetworkEvents": 1, - "kCFStreamEventHasBytesAvailable": 1, - "|": 13, - "kCFStreamEventEndEncountered": 1, - "kCFStreamEventErrorOccurred": 1, - "*sessionCredentialsStore": 1, - "*sessionProxyCredentialsStore": 1, - "*sessionCredentialsLock": 1, - "*sessionCookies": 1, - "RedirectionLimit": 1, - "ReadStreamClientCallBack": 1, - "CFReadStreamRef": 5, - "readStream": 5, - "*clientCallBackInfo": 1, - "ASIHTTPRequest*": 1, - "clientCallBackInfo": 1, - "*progressLock": 1, - "*ASIRequestCancelledError": 1, - "*ASIRequestTimedOutError": 1, - "*ASIAuthenticationError": 1, - "*ASIUnableToCreateRequestError": 1, - "*ASITooMuchRedirectionError": 1, - "*bandwidthUsageTracker": 1, - "nextConnectionNumberToCreate": 1, - "*persistentConnectionsPool": 1, - "*connectionsLock": 1, - "nextRequestID": 1, - "bandwidthUsedInLastSecond": 1, - "*bandwidthMeasurementDate": 1, - "NSLock": 2, - "*bandwidthThrottlingLock": 1, - "shouldThrottleBandwidthForWWANOnly": 1, - "*sessionCookiesLock": 1, - "*delegateAuthenticationLock": 1, - "*throttleWakeUpTime": 1, - "runningRequestCount": 1, - "shouldUpdateNetworkActivityIndicator": 1, - "*networkThread": 1, - "*sharedQueue": 1, - "cancelLoad": 3, - "destroyReadStream": 3, - "scheduleReadStream": 1, - "unscheduleReadStream": 1, - "willAskDelegateForCredentials": 1, - "willAskDelegateForProxyCredentials": 1, - "askDelegateForProxyCredentials": 1, - "askDelegateForCredentials": 1, - "failAuthentication": 1, - "measureBandwidthUsage": 1, - "recordBandwidthUsage": 1, - "startRequest": 3, - "updateStatus": 2, - "checkRequestStatus": 2, - "reportFailure": 3, - "reportFinished": 1, - "performRedirect": 1, - "shouldTimeOut": 2, - "willRedirect": 1, - "willAskDelegateToConfirmRedirect": 1, - "performInvocation": 2, - "NSInvocation": 4, - "invocation": 4, - "releasingObject": 2, - "objectToRelease": 1, - "hideNetworkActivityIndicatorAfterDelay": 1, - "hideNetworkActivityIndicatorIfNeeeded": 1, - "runRequests": 1, - "configureProxies": 2, - "fetchPACFile": 1, - "finishedDownloadingPACFile": 1, - "theRequest": 1, - "runPACScript": 1, - "script": 1, - "timeOutPACRead": 1, - "useDataFromCache": 2, - "updatePartialDownloadSize": 1, - "registerForNetworkReachabilityNotifications": 1, - "unsubscribeFromNetworkReachabilityNotifications": 1, - "reachabilityChanged": 1, - "NSNotification": 2, - "note": 1, - "performBlockOnMainThread": 2, - "block": 18, - "releaseBlocksOnMainThread": 4, - "releaseBlocks": 3, - "blocks": 16, - "callBlock": 1, - "*postBodyWriteStream": 1, - "*postBodyReadStream": 1, - "*compressedPostBody": 1, - "*compressedPostBodyFilePath": 1, - "willRetryRequest": 1, - "*readStream": 1, - "readStreamIsScheduled": 1, - "setSynchronous": 2, - "@implementation": 13, - "initialize": 1, - "class": 30, - "persistentConnectionsPool": 3, - "alloc": 47, - "connectionsLock": 3, - "progressLock": 1, - "bandwidthThrottlingLock": 1, - "sessionCookiesLock": 1, - "sessionCredentialsLock": 1, - "delegateAuthenticationLock": 1, - "bandwidthUsageTracker": 1, - "initWithCapacity": 2, - "ASIRequestTimedOutError": 1, - "initWithDomain": 5, - "dictionaryWithObjectsAndKeys": 10, - "NSLocalizedDescriptionKey": 10, - "ASIAuthenticationError": 1, - "ASIRequestCancelledError": 2, - "ASIUnableToCreateRequestError": 3, - "ASITooMuchRedirectionError": 1, - "setMaxConcurrentOperationCount": 1, - "setRequestMethod": 3, - "setRunLoopMode": 2, - "setShouldAttemptPersistentConnection": 2, - "setPersistentConnectionTimeoutSeconds": 2, - "setShouldPresentCredentialsBeforeChallenge": 1, - "setShouldRedirect": 1, - "setShowAccurateProgress": 1, - "setShouldResetDownloadProgress": 1, - "setShouldResetUploadProgress": 1, - "setAllowCompressedResponse": 1, - "setShouldWaitToInflateCompressedResponses": 1, - "setDefaultResponseEncoding": 1, - "setShouldPresentProxyAuthenticationDialog": 1, - "setTimeOutSeconds": 1, - "setUseSessionPersistence": 1, - "setUseCookiePersistence": 1, - "setValidatesSecureCertificate": 1, - "setRequestCookies": 2, - "autorelease": 21, - "setDidStartSelector": 1, - "@selector": 28, - "setDidReceiveResponseHeadersSelector": 1, - "setWillRedirectSelector": 1, - "willRedirectToURL": 1, - "setDidFinishSelector": 1, - "setDidFailSelector": 1, - "setDidReceiveDataSelector": 1, - "setCancelledLock": 1, - "setDownloadCache": 3, - "return": 165, - "ASIUseDefaultCachePolicy": 1, - "*request": 1, - "setCachePolicy": 1, - "setAuthenticationNeeded": 2, - "requestAuthentication": 7, - "CFRelease": 19, - "redirectURL": 1, - "release": 66, - "statusTimer": 3, - "invalidate": 2, - "postBody": 11, - "compressedPostBody": 4, - "requestHeaders": 6, - "requestCookies": 1, - "fileDownloadOutputStream": 1, - "inflatedFileDownloadOutputStream": 1, - "username": 8, - "domain": 2, - "authenticationRealm": 4, - "requestCredentials": 1, - "proxyHost": 2, - "proxyType": 1, - "proxyUsername": 3, - "proxyPassword": 3, - "proxyDomain": 1, - "proxyAuthenticationRealm": 2, - "proxyAuthenticationScheme": 2, - "proxyCredentials": 1, - "originalURL": 1, - "lastActivityTime": 1, - "responseCookies": 1, - "responseHeaders": 5, - "requestMethod": 13, - "cancelledLock": 37, - "postBodyFilePath": 7, - "compressedPostBodyFilePath": 4, - "postBodyWriteStream": 7, - "postBodyReadStream": 2, - "PACurl": 1, - "clientCertificates": 2, - "responseStatusMessage": 1, - "connectionInfo": 13, - "requestID": 2, - "dataDecompressor": 1, - "userAgentString": 1, - "super": 25, - "*blocks": 1, - "array": 84, - "addObject": 16, - "performSelectorOnMainThread": 2, - "waitUntilDone": 4, - "isMainThread": 2, - "Blocks": 1, - "exits": 1, - "setRequestHeaders": 2, - "dictionaryWithCapacity": 2, - "setObject": 9, - "forKey": 9, - "Are": 1, - "submitting": 1, - "disk": 1, - "were": 5, - "close": 5, - "setPostBodyWriteStream": 2, - "*path": 1, - "setCompressedPostBodyFilePath": 1, - "NSTemporaryDirectory": 2, - "stringByAppendingPathComponent": 2, - "NSProcessInfo": 2, - "processInfo": 2, - "globallyUniqueString": 2, - "*err": 3, - "ASIDataCompressor": 2, - "compressDataFromFile": 1, - "toFile": 1, - "&": 36, - "else": 35, - "setPostLength": 3, - "NSFileManager": 1, - "attributesOfItemAtPath": 1, - "fileSize": 1, - "errorWithDomain": 6, - "stringWithFormat": 6, - "Otherwise": 2, - "*compressedBody": 1, - "compressData": 1, - "setCompressedPostBody": 1, - "compressedBody": 1, - "isEqualToString": 13, - "||": 42, - "setHaveBuiltPostBody": 1, - "setupPostBody": 3, - "setPostBodyFilePath": 1, - "setDidCreateTemporaryPostDataFile": 1, - "initToFileAtPath": 1, - "append": 1, - "open": 2, - "setPostBody": 1, - "maxLength": 3, - "appendData": 2, - "*stream": 1, - "initWithFileAtPath": 1, - "NSUInteger": 93, - "bytesRead": 5, - "hasBytesAvailable": 1, - "char": 19, - "*256": 1, - "sizeof": 13, - "break": 13, - "dataWithBytes": 1, - "*m": 1, - "unlock": 20, - "m": 1, - "newRequestMethod": 3, - "*u": 1, - "u": 4, - "isEqual": 4, - "NULL": 152, - "setRedirectURL": 2, - "d": 11, - "setDelegate": 4, - "newDelegate": 6, - "q": 2, - "setQueue": 2, - "newQueue": 3, - "cancelOnRequestThread": 2, - "DEBUG_REQUEST_STATUS": 4, - "ASI_DEBUG_LOG": 11, - "isCancelled": 6, - "setComplete": 3, - "CFRetain": 4, - "willChangeValueForKey": 1, - "didChangeValueForKey": 1, - "onThread": 2, - "Clear": 3, - "setDownloadProgressDelegate": 2, - "setUploadProgressDelegate": 2, - "initWithBytes": 1, - "*encoding": 1, - "rangeOfString": 1, - ".location": 1, - "NSNotFound": 1, - "uncompressData": 1, - "DEBUG_THROTTLING": 2, - "setInProgress": 3, - "NSRunLoop": 2, - "currentRunLoop": 2, - "runMode": 1, - "runLoopMode": 2, - "beforeDate": 1, - "distantFuture": 1, - "start": 3, - "addOperation": 1, - "concurrency": 1, - "isConcurrent": 1, - "isFinished": 1, - "isExecuting": 1, - "logic": 1, - "@try": 1, - "UIBackgroundTaskInvalid": 3, - "UIApplication": 2, - "sharedApplication": 2, - "beginBackgroundTaskWithExpirationHandler": 1, - "dispatch_async": 1, - "dispatch_get_main_queue": 1, - "endBackgroundTask": 1, - "generated": 3, - "ASINetworkQueue": 4, - "already.": 1, - "proceed.": 1, - "setDidUseCachedResponse": 1, - "Must": 1, - "call": 8, - "create": 1, - "needs": 1, - "mainRequest": 9, - "ll": 6, - "already": 4, - "CFHTTPMessageRef": 3, - "Create": 1, - "request.": 1, - "CFHTTPMessageCreateRequest": 1, - "kCFAllocatorDefault": 3, - "CFStringRef": 1, - "CFURLRef": 1, - "kCFHTTPVersion1_0": 1, - "kCFHTTPVersion1_1": 1, - "//If": 2, - "let": 8, - "generate": 1, - "its": 9, - "Even": 1, - "chance": 2, - "add": 5, - "ASIS3Request": 1, - "does": 3, - "process": 1, - "@catch": 1, - "NSException": 19, - "*exception": 1, - "*underlyingError": 1, - "exception": 3, - "name": 7, - "reason": 1, - "NSLocalizedFailureReasonErrorKey": 1, - "underlyingError": 1, - "@finally": 1, - "Do": 3, - "DEBUG_HTTP_AUTHENTICATION": 4, - "*credentials": 1, - "auth": 2, - "basic": 3, - "any": 3, - "cached": 2, - "key": 32, - "challenge": 1, - "apply": 2, - "like": 1, - "CFHTTPMessageApplyCredentialDictionary": 2, - "CFDictionaryRef": 1, - "setAuthenticationScheme": 1, - "happens": 4, - "%": 30, - "re": 9, - "retrying": 1, - "our": 6, - "measure": 1, - "throttled": 1, - "setPostBodyReadStream": 2, - "ASIInputStream": 2, - "inputStreamWithData": 2, - "setReadStream": 2, - "NSMakeCollectable": 3, - "CFReadStreamCreateForStreamedHTTPRequest": 1, - "CFReadStreamCreateForHTTPRequest": 1, - "lowercaseString": 1, - "*sslProperties": 2, - "initWithObjectsAndKeys": 1, - "numberWithBool": 3, - "kCFStreamSSLAllowsExpiredCertificates": 1, - "kCFStreamSSLAllowsAnyRoot": 1, - "kCFStreamSSLValidatesCertificateChain": 1, - "kCFNull": 1, - "kCFStreamSSLPeerName": 1, - "CFReadStreamSetProperty": 1, - "kCFStreamPropertySSLSettings": 1, - "CFTypeRef": 1, - "sslProperties": 2, - "*certificates": 1, - "arrayWithCapacity": 2, - "count": 99, - "*oldStream": 1, - "redirecting": 2, - "connecting": 2, - "intValue": 4, - "setConnectionInfo": 2, - "Check": 1, - "expired": 1, - "timeIntervalSinceNow": 1, - "<": 56, - "DEBUG_PERSISTENT_CONNECTIONS": 3, - "removeObject": 2, - "//Some": 1, - "previously": 1, - "there": 1, - "one": 1, - "We": 7, - "just": 4, - "old": 5, - "//lists.apple.com/archives/Macnetworkprog/2006/Mar/msg00119.html": 1, - "oldStream": 4, - "streamSuccessfullyOpened": 1, - "setConnectionCanBeReused": 2, - "Record": 1, - "started": 1, - "nothing": 2, - "setLastActivityTime": 1, - "setStatusTimer": 2, - "timerWithTimeInterval": 1, - "repeats": 1, - "addTimer": 1, - "forMode": 1, - "here": 2, - "safely": 1, - "***Black": 1, - "magic": 1, - "warning***": 1, - "reliable": 1, - "way": 1, - "track": 1, - "strong": 4, - "slow.": 1, - "secondsSinceLastActivity": 1, - "*1.5": 1, - "updating": 1, - "checking": 1, - "told": 1, - "us": 2, - "auto": 2, - "resuming": 1, - "Range": 1, - "take": 1, - "account": 1, - "perhaps": 1, - "setTotalBytesSent": 1, - "CFReadStreamCopyProperty": 2, - "kCFStreamPropertyHTTPRequestBytesWrittenCount": 1, - "unsignedLongLongValue": 1, - "middle": 1, - "said": 1, - "might": 4, - "MaxValue": 2, - "UIProgressView": 2, - "double": 3, - "max": 7, - "setMaxValue": 2, - "examined": 1, - "since": 1, - "authenticate": 1, - "bytesReadSoFar": 3, - "setUpdatedProgress": 1, - "didReceiveBytes": 2, - "totalSize": 2, - "setLastBytesRead": 1, - "pass": 5, - "pointer": 2, - "directly": 1, - "itself": 1, - "setArgument": 4, - "atIndex": 6, - "argumentNumber": 1, - "callback": 3, - "NSMethodSignature": 1, - "*cbSignature": 1, - "methodSignatureForSelector": 1, - "*cbInvocation": 1, - "invocationWithMethodSignature": 1, - "cbSignature": 1, - "cbInvocation": 5, - "setSelector": 1, - "setTarget": 1, - "forget": 2, - "know": 3, - "removeObjectForKey": 1, - "dateWithTimeIntervalSinceNow": 1, - "ignore": 1, - "ASIFallbackToCacheIfLoadFailsCachePolicy": 2, - "canUseCachedDataForRequest": 1, - "setError": 2, - "*failedRequest": 1, - "compatible": 1, - "fail": 1, - "failedRequest": 4, - "message": 2, - "kCFStreamPropertyHTTPResponseHeader": 1, - "Make": 1, - "sure": 1, - "tells": 1, - "keepAliveHeader": 2, - "NSScanner": 2, - "*scanner": 1, - "scannerWithString": 1, - "scanner": 5, - "scanString": 2, - "intoString": 3, - "scanInt": 2, - "scanUpToString": 1, - "what": 3, - "hard": 1, - "throw": 1, - "away.": 1, - "*userAgentHeader": 1, - "*acceptHeader": 1, - "userAgentHeader": 2, - "acceptHeader": 2, - "setHaveBuiltRequestHeaders": 1, - "Force": 2, - "rebuild": 2, - "cookie": 1, - "incase": 1, - "got": 1, - "some": 1, - "remain": 1, - "ones": 3, - "URLWithString": 1, - "valueForKey": 2, - "relativeToURL": 1, - "absoluteURL": 1, - "setNeedsRedirect": 1, - "means": 1, - "manually": 1, - "added": 5, - "those": 1, - "global": 1, - "But": 1, - "safest": 1, - "option": 1, - "responseCode": 1, - "Handle": 1, - "*mimeType": 1, - "setResponseEncoding": 2, - "saveProxyCredentialsToKeychain": 1, - "*authenticationCredentials": 2, - "credentialWithUser": 2, - "kCFHTTPAuthenticationUsername": 2, - "kCFHTTPAuthenticationPassword": 2, - "persistence": 2, - "NSURLCredentialPersistencePermanent": 2, - "authenticationCredentials": 4, - "setProxyAuthenticationRetryCount": 1, - "Apply": 1, - "whatever": 1, - "ok": 1, - "CFMutableDictionaryRef": 1, - "*sessionCredentials": 1, - "dictionary": 64, - "sessionCredentials": 6, - "setRequestCredentials": 1, - "*newCredentials": 1, - "*user": 1, - "*pass": 1, - "*theRequest": 1, - "try": 3, - "connect": 1, - "website": 1, - "kCFHTTPAuthenticationSchemeNTLM": 1, - "Ok": 1, - "extract": 1, - "NSArray*": 1, - "ntlmComponents": 1, - "componentsSeparatedByString": 1, - "AUTH": 6, - "Request": 6, - "parent": 1, - "properties": 1, - "ASIAuthenticationDialog": 2, - "had": 1, - "Foo": 2, - "NSObject": 5, - "": 2, - "FooAppDelegate": 2, - "": 1, - "@private": 2, - "NSWindow": 2, - "*window": 2, - "IBOutlet": 1, - "@synthesize": 7, - "window": 1, - "applicationDidFinishLaunching": 1, - "aNotification": 1, - "argc": 1, - "*argv": 1, - "NSLog": 4, - "#include": 18, - "": 1, - "": 2, - "": 2, - "": 1, - "": 1, - "#ifdef": 10, - "__OBJC__": 4, - "": 2, - "": 2, - "": 2, - "": 1, - "": 2, - "": 1, - "__cplusplus": 2, - "NSINTEGER_DEFINED": 3, - "defined": 16, - "__LP64__": 4, - "NS_BUILD_32_LIKE_64": 3, - "NSIntegerMin": 3, - "LONG_MIN": 3, - "NSIntegerMax": 4, - "LONG_MAX": 3, - "NSUIntegerMax": 7, - "ULONG_MAX": 3, - "INT_MIN": 3, - "INT_MAX": 2, - "UINT_MAX": 3, - "_JSONKIT_H_": 3, - "__GNUC__": 14, - "__APPLE_CC__": 2, - "JK_DEPRECATED_ATTRIBUTE": 6, - "__attribute__": 3, - "deprecated": 1, - "JSONKIT_VERSION_MAJOR": 1, - "JSONKIT_VERSION_MINOR": 1, - "JKFlags": 5, - "JKParseOptionNone": 1, - "JKParseOptionStrict": 1, - "JKParseOptionComments": 2, - "<<": 16, - "JKParseOptionUnicodeNewlines": 2, - "JKParseOptionLooseUnicode": 2, - "JKParseOptionPermitTextAfterValidJSON": 2, - "JKParseOptionValidFlags": 1, - "JKParseOptionFlags": 12, - "JKSerializeOptionNone": 3, - "JKSerializeOptionPretty": 2, - "JKSerializeOptionEscapeUnicode": 2, - "JKSerializeOptionEscapeForwardSlashes": 2, - "JKSerializeOptionValidFlags": 1, - "JKSerializeOptionFlags": 16, - "struct": 20, - "JKParseState": 18, - "Opaque": 1, - "private": 1, - "type.": 3, - "JSONDecoder": 2, - "*parseState": 16, - "decoder": 1, - "decoderWithParseOptions": 1, - "parseOptionFlags": 11, - "initWithParseOptions": 1, - "clearCache": 1, - "parseUTF8String": 2, - "size_t": 23, - "Deprecated": 4, - "JSONKit": 11, - "v1.4.": 4, - "objectWithUTF8String": 4, - "instead.": 4, - "parseJSONData": 2, - "jsonData": 6, - "objectWithData": 7, - "mutableObjectWithUTF8String": 2, - "mutableObjectWithData": 2, - "////////////": 4, - "Deserializing": 1, - "methods": 2, - "JSONKitDeserializing": 2, - "objectFromJSONString": 1, - "objectFromJSONStringWithParseOptions": 2, - "mutableObjectFromJSONString": 1, - "mutableObjectFromJSONStringWithParseOptions": 2, - "objectFromJSONData": 1, - "objectFromJSONDataWithParseOptions": 2, - "mutableObjectFromJSONData": 1, - "mutableObjectFromJSONDataWithParseOptions": 2, - "Serializing": 1, - "JSONKitSerializing": 3, - "JSONData": 3, - "Invokes": 2, - "JSONDataWithOptions": 8, - "includeQuotes": 6, - "serializeOptions": 14, - "JSONString": 3, - "JSONStringWithOptions": 8, - "serializeUnsupportedClassesUsingDelegate": 4, - "__BLOCKS__": 1, - "JSONKitSerializingBlockAdditions": 2, - "serializeUnsupportedClassesUsingBlock": 4, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "//#include": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "//#import": 1, - "": 1, - "": 1, - "": 1, - "__has_feature": 3, - "JK_ENABLE_CF_TRANSFER_OWNERSHIP_CALLBACKS": 2, - "#warning": 1, - "As": 1, - "v1.4": 1, - "longer": 2, - "required.": 1, - "option.": 1, - "__OBJC_GC__": 1, - "#error": 6, - "Objective": 2, - "C": 6, - "Garbage": 1, - "Collection": 1, - "objc_arc": 1, - "Automatic": 1, - "Reference": 1, - "Counting": 1, - "ARC": 1, - "xffffffffU": 1, - "fffffff": 1, - "ULLONG_MAX": 1, - "xffffffffffffffffULL": 1, - "LLONG_MIN": 1, - "fffffffffffffffLL": 1, - "LL": 1, - "requires": 4, - "types": 2, - "bits": 1, - "respectively.": 1, - "WORD_BIT": 1, - "LONG_BIT": 1, - "bit": 1, - "architectures.": 1, - "SIZE_MAX": 1, - "SSIZE_MAX": 1, - "JK_HASH_INIT": 1, - "UL": 138, - "JK_FAST_TRAILING_BYTES": 2, - "JK_CACHE_SLOTS_BITS": 2, - "JK_CACHE_SLOTS": 1, - "JK_CACHE_PROBES": 1, - "JK_INIT_CACHE_AGE": 1, - "JK_TOKENBUFFER_SIZE": 1, - "JK_STACK_OBJS": 1, - "JK_JSONBUFFER_SIZE": 1, - "JK_UTF8BUFFER_SIZE": 1, - "JK_ENCODE_CACHE_SLOTS": 1, - "JK_ATTRIBUTES": 15, - "attr": 3, - "...": 11, - "##__VA_ARGS__": 7, - "JK_EXPECTED": 4, - "cond": 12, - "expect": 3, - "__builtin_expect": 1, - "JK_EXPECT_T": 22, - "U": 2, - "JK_EXPECT_F": 14, - "JK_PREFETCH": 2, - "ptr": 3, - "__builtin_prefetch": 1, - "JK_STATIC_INLINE": 10, - "__inline__": 1, - "always_inline": 1, - "JK_ALIGNED": 1, - "arg": 11, - "aligned": 1, - "JK_UNUSED_ARG": 2, - "unused": 3, - "JK_WARN_UNUSED": 1, - "warn_unused_result": 9, - "JK_WARN_UNUSED_CONST": 1, - "JK_WARN_UNUSED_PURE": 1, - "pure": 2, - "JK_WARN_UNUSED_SENTINEL": 1, - "sentinel": 1, - "JK_NONNULL_ARGS": 1, - "nonnull": 6, - "JK_WARN_UNUSED_NONNULL_ARGS": 1, - "JK_WARN_UNUSED_CONST_NONNULL_ARGS": 1, - "JK_WARN_UNUSED_PURE_NONNULL_ARGS": 1, - "__GNUC_MINOR__": 3, - "JK_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED": 2, - "nn": 4, - "alloc_size": 1, - "JKArray": 14, - "JKDictionaryEnumerator": 4, - "JKDictionary": 22, - "JSONNumberStateStart": 1, - "JSONNumberStateFinished": 1, - "JSONNumberStateError": 1, - "JSONNumberStateWholeNumberStart": 1, - "JSONNumberStateWholeNumberMinus": 1, - "JSONNumberStateWholeNumberZero": 1, - "JSONNumberStateWholeNumber": 1, - "JSONNumberStatePeriod": 1, - "JSONNumberStateFractionalNumberStart": 1, - "JSONNumberStateFractionalNumber": 1, - "JSONNumberStateExponentStart": 1, - "JSONNumberStateExponentPlusMinus": 1, - "JSONNumberStateExponent": 1, - "JSONStringStateStart": 1, - "JSONStringStateParsing": 1, - "JSONStringStateFinished": 1, - "JSONStringStateError": 1, - "JSONStringStateEscape": 1, - "JSONStringStateEscapedUnicode1": 1, - "JSONStringStateEscapedUnicode2": 1, - "JSONStringStateEscapedUnicode3": 1, - "JSONStringStateEscapedUnicode4": 1, - "JSONStringStateEscapedUnicodeSurrogate1": 1, - "JSONStringStateEscapedUnicodeSurrogate2": 1, - "JSONStringStateEscapedUnicodeSurrogate3": 1, - "JSONStringStateEscapedUnicodeSurrogate4": 1, - "JSONStringStateEscapedNeedEscapeForSurrogate": 1, - "JSONStringStateEscapedNeedEscapedUForSurrogate": 1, - "JKParseAcceptValue": 2, - "JKParseAcceptComma": 2, - "JKParseAcceptEnd": 3, - "JKParseAcceptValueOrEnd": 1, - "JKParseAcceptCommaOrEnd": 1, - "JKClassUnknown": 1, - "JKClassString": 1, - "JKClassNumber": 1, - "JKClassArray": 1, - "JKClassDictionary": 1, - "JKClassNull": 1, - "JKManagedBufferOnStack": 1, - "JKManagedBufferOnHeap": 1, - "JKManagedBufferLocationMask": 1, - "JKManagedBufferLocationShift": 1, - "JKManagedBufferMustFree": 1, - "JKManagedBufferFlags": 1, - "JKObjectStackOnStack": 1, - "JKObjectStackOnHeap": 1, - "JKObjectStackLocationMask": 1, - "JKObjectStackLocationShift": 1, - "JKObjectStackMustFree": 1, - "JKObjectStackFlags": 1, - "JKTokenTypeInvalid": 1, - "JKTokenTypeNumber": 1, - "JKTokenTypeString": 1, - "JKTokenTypeObjectBegin": 1, - "JKTokenTypeObjectEnd": 1, - "JKTokenTypeArrayBegin": 1, - "JKTokenTypeArrayEnd": 1, - "JKTokenTypeSeparator": 1, - "JKTokenTypeComma": 1, - "JKTokenTypeTrue": 1, - "JKTokenTypeFalse": 1, - "JKTokenTypeNull": 1, - "JKTokenTypeWhiteSpace": 1, - "JKTokenType": 2, - "JKValueTypeNone": 1, - "JKValueTypeString": 1, - "JKValueTypeLongLong": 1, - "JKValueTypeUnsignedLongLong": 1, - "JKValueTypeDouble": 1, - "JKValueType": 1, - "JKEncodeOptionAsData": 1, - "JKEncodeOptionAsString": 1, - "JKEncodeOptionAsTypeMask": 1, - "JKEncodeOptionCollectionObj": 1, - "JKEncodeOptionStringObj": 1, - "JKEncodeOptionStringObjTrimQuotes": 1, - "JKEncodeOptionType": 2, - "JKHash": 4, - "JKTokenCacheItem": 2, - "JKTokenCache": 2, - "JKTokenValue": 2, - "JKParseToken": 2, - "JKPtrRange": 2, - "JKObjectStack": 5, - "JKBuffer": 2, - "JKConstBuffer": 2, - "JKConstPtrRange": 2, - "JKRange": 2, - "JKManagedBuffer": 5, - "JKFastClassLookup": 2, - "JKEncodeCache": 6, - "JKEncodeState": 11, - "JKObjCImpCache": 2, - "JKHashTableEntry": 21, - "serializeObject": 1, - "options": 6, - "optionFlags": 1, - "encodeOption": 2, - "JKSERIALIZER_BLOCKS_PROTO": 1, - "releaseState": 1, - "keyHash": 21, - "uint32_t": 1, - "UTF32": 11, - "uint16_t": 1, - "UTF16": 1, - "uint8_t": 1, - "UTF8": 2, - "conversionOK": 1, - "sourceExhausted": 1, - "targetExhausted": 1, - "sourceIllegal": 1, - "ConversionResult": 1, - "UNI_REPLACEMENT_CHAR": 1, - "FFFD": 1, - "UNI_MAX_BMP": 1, - "FFFF": 3, - "UNI_MAX_UTF16": 1, - "UNI_MAX_UTF32": 1, - "FFFFFFF": 1, - "UNI_MAX_LEGAL_UTF32": 1, - "UNI_SUR_HIGH_START": 1, - "xD800": 1, - "UNI_SUR_HIGH_END": 1, - "xDBFF": 1, - "UNI_SUR_LOW_START": 1, - "xDC00": 1, - "UNI_SUR_LOW_END": 1, - "xDFFF": 1, - "trailingBytesForUTF8": 1, - "offsetsFromUTF8": 1, - "E2080UL": 1, - "C82080UL": 1, - "xFA082080UL": 1, - "firstByteMark": 1, - "xC0": 1, - "xE0": 1, - "xF0": 1, - "xF8": 1, - "xFC": 1, - "JK_AT_STRING_PTR": 1, - "stringBuffer.bytes.ptr": 2, - "JK_END_STRING_PTR": 1, - "stringBuffer.bytes.length": 1, - "*_JKArrayCreate": 2, - "*objects": 5, - "mutableCollection": 7, - "_JKArrayInsertObjectAtIndex": 3, - "*array": 9, - "newObject": 12, - "objectIndex": 48, - "_JKArrayReplaceObjectAtIndexWithObject": 3, - "_JKArrayRemoveObjectAtIndex": 3, - "_JKDictionaryCapacityForCount": 4, - "*_JKDictionaryCreate": 2, - "*keys": 2, - "*keyHashes": 2, - "*_JKDictionaryHashEntry": 2, - "*dictionary": 13, - "_JKDictionaryCapacity": 3, - "_JKDictionaryResizeIfNeccessary": 3, - "_JKDictionaryRemoveObjectWithEntry": 3, - "*entry": 4, - "_JKDictionaryAddObject": 4, - "*_JKDictionaryHashTableEntryForKey": 2, - "aKey": 13, - "_JSONDecoderCleanup": 1, - "*decoder": 1, - "_NSStringObjectFromJSONString": 1, - "*jsonString": 1, - "**error": 1, - "jk_managedBuffer_release": 1, - "*managedBuffer": 3, - "jk_managedBuffer_setToStackBuffer": 1, - "*ptr": 2, - "*jk_managedBuffer_resize": 1, - "newSize": 1, - "jk_objectStack_release": 1, - "*objectStack": 3, - "jk_objectStack_setToStackBuffer": 1, - "**objects": 1, - "**keys": 1, - "CFHashCode": 1, - "*cfHashes": 1, - "jk_objectStack_resize": 1, - "newCount": 1, - "jk_error": 1, - "*format": 7, - "jk_parse_string": 1, - "jk_parse_number": 1, - "jk_parse_is_newline": 1, - "*atCharacterPtr": 1, - "jk_parse_skip_newline": 1, - "jk_parse_skip_whitespace": 1, - "jk_parse_next_token": 1, - "jk_error_parse_accept_or3": 1, - "*or1String": 1, - "*or2String": 1, - "*or3String": 1, - "*jk_create_dictionary": 1, - "startingObjectIndex": 1, - "*jk_parse_dictionary": 1, - "*jk_parse_array": 1, - "*jk_object_for_token": 1, - "*jk_cachedObjects": 1, - "jk_cache_age": 1, - "jk_set_parsed_token": 1, - "advanceBy": 1, - "jk_encode_error": 1, - "*encodeState": 9, - "jk_encode_printf": 1, - "*cacheSlot": 4, - "startingAtIndex": 4, - "jk_encode_write": 1, - "jk_encode_writePrettyPrintWhiteSpace": 1, - "jk_encode_write1slow": 2, - "ssize_t": 2, - "depthChange": 2, - "jk_encode_write1fast": 2, - "jk_encode_writen": 1, - "jk_encode_object_hash": 1, - "*objectPtr": 2, - "jk_encode_updateCache": 1, - "jk_encode_add_atom_to_buffer": 1, - "jk_encode_write1": 1, - "es": 3, - "dc": 3, - "f": 8, - "_jk_encode_prettyPrint": 1, - "jk_min": 1, - "b": 4, - "jk_max": 3, - "jk_calculateHash": 1, - "currentHash": 1, - "c": 7, - "Class": 3, - "_JKArrayClass": 5, - "_JKArrayInstanceSize": 4, - "_JKDictionaryClass": 5, - "_JKDictionaryInstanceSize": 4, - "_jk_NSNumberClass": 2, - "NSNumberAllocImp": 2, - "_jk_NSNumberAllocImp": 2, - "NSNumberInitWithUnsignedLongLongImp": 2, - "_jk_NSNumberInitWithUnsignedLongLongImp": 2, - "jk_collectionClassLoadTimeInitialization": 2, - "constructor": 1, - "NSAutoreleasePool": 2, - "*pool": 1, - "Though": 1, - "technically": 1, - "run": 1, - "environment": 1, - "load": 1, - "initialization": 1, - "less": 1, - "ideal.": 1, - "objc_getClass": 2, - "class_getInstanceSize": 2, - "methodForSelector": 2, - "temp_NSNumber": 4, - "initWithUnsignedLongLong": 1, - "pool": 2, - "": 2, - "NSMutableCopying": 2, - "NSFastEnumeration": 2, - "capacity": 51, - "mutations": 20, - "allocWithZone": 4, - "NSZone": 4, - "zone": 8, - "raise": 18, - "NSInvalidArgumentException": 6, - "format": 18, - "NSStringFromClass": 18, - "NSStringFromSelector": 16, - "_cmd": 16, - "NSCParameterAssert": 19, - "objects": 58, - "calloc": 5, - "Directly": 2, - "allocate": 2, - "instance": 2, - "calloc.": 2, - "isa": 2, - "malloc": 1, - "memcpy": 2, - "<=>": 15, - "*newObjects": 1, - "newObjects": 2, - "realloc": 1, - "NSMallocException": 2, - "memset": 1, - "memmove": 2, - "atObject": 12, - "free": 4, - "NSParameterAssert": 15, - "getObjects": 2, - "objectsPtr": 3, - "range": 8, - "NSRange": 1, - "NSMaxRange": 4, - "NSRangeException": 6, - "range.location": 2, - "range.length": 1, - "objectAtIndex": 8, - "countByEnumeratingWithState": 2, - "NSFastEnumerationState": 2, - "stackbuf": 8, - "len": 6, - "mutationsPtr": 2, - "itemsPtr": 2, - "enumeratedCount": 8, - "insertObject": 1, - "anObject": 16, - "NSInternalInconsistencyException": 4, - "__clang_analyzer__": 3, - "Stupid": 2, - "clang": 3, - "analyzer...": 2, - "Issue": 2, - "#19.": 2, - "removeObjectAtIndex": 1, - "replaceObjectAtIndex": 1, - "copyWithZone": 1, - "initWithObjects": 2, - "mutableCopyWithZone": 1, - "NSEnumerator": 2, - "collection": 11, - "nextObject": 6, - "initWithJKDictionary": 3, - "initDictionary": 4, - "allObjects": 2, - "arrayWithObjects": 1, - "_JKDictionaryHashEntry": 2, - "returnObject": 3, - "entry": 41, - ".key": 11, - "jk_dictionaryCapacities": 4, - "bottom": 6, - "top": 8, - "mid": 5, - "tableSize": 2, - "lround": 1, - "floor": 1, - "capacityForCount": 4, - "resize": 3, - "oldCapacity": 2, - "NS_BLOCK_ASSERTIONS": 1, - "oldCount": 2, - "*oldEntry": 1, - "idx": 33, - "oldEntry": 9, - ".keyHash": 2, - ".object": 7, - "keys": 5, - "keyHashes": 2, - "atEntry": 45, - "removeIdx": 3, - "entryIdx": 4, - "*atEntry": 3, - "addKeyEntry": 2, - "addIdx": 5, - "*atAddEntry": 1, - "atAddEntry": 6, - "keyEntry": 4, - "CFEqual": 2, - "CFHash": 1, - "table": 7, - "would": 2, - "now.": 1, - "entryForKey": 3, - "_JKDictionaryHashTableEntryForKey": 1, - "andKeys": 1, - "arrayIdx": 5, - "keyEnumerator": 1, - "copy": 4, - "Why": 1, - "earth": 1, - "complain": 1, - "doesn": 1, - "Internal": 2, - "Unable": 2, - "temporary": 2, - "buffer.": 2, - "line": 2, - "#": 2, - "ld": 2, - "Invalid": 1, - "character": 1, - "x.": 1, - "n": 7, - "r": 6, - "F": 1, - ".": 2, - "e": 1, - "Unexpected": 1, - "token": 1, - "wanted": 1, - "Expected": 3, - "MainMenuViewController": 2, - "TTTableViewController": 1, - "///////////////////////////////////////////////////////////////////////////////////////////////////": 24, - "initWithNibName": 3, - "nibNameOrNil": 1, - "bundle": 3, - "NSBundle": 1, - "nibBundleOrNil": 1, - "self.title": 2, - "//self.variableHeightRows": 1, - "self.tableViewStyle": 1, - "UITableViewStyleGrouped": 1, - "self.dataSource": 1, - "TTSectionedDataSource": 1, - "dataSourceWithObjects": 1, - "TTTableTextItem": 48, - "itemWithText": 48, - "URL": 48, - "PlaygroundViewController": 2, - "UIViewController": 2, - "UIScrollView*": 1, - "_scrollView": 9, - "": 1, - "CGFloat": 44, - "kFramePadding": 7, - "kElementSpacing": 3, - "kGroupSpacing": 5, - "addHeader": 5, - "yOffset": 42, - "UILabel*": 2, - "label": 6, - "UILabel": 2, - "initWithFrame": 12, - "CGRectZero": 5, - "label.text": 2, - "label.font": 3, - "UIFont": 3, - "systemFontOfSize": 2, - "label.numberOfLines": 2, - "CGRect": 41, - "frame": 38, - "label.frame": 4, - "frame.origin.x": 3, - "frame.origin.y": 16, - "frame.size.width": 4, - "frame.size.height": 15, - "sizeWithFont": 2, - "constrainedToSize": 2, - "CGSizeMake": 3, - ".height": 4, - "addSubview": 8, - "label.frame.size.height": 2, - "TT_RELEASE_SAFELY": 12, - "addText": 5, - "loadView": 4, - "UIScrollView": 1, - "self.view.bounds": 2, - "_scrollView.autoresizingMask": 1, - "UIViewAutoresizingFlexibleWidth": 4, - "UIViewAutoresizingFlexibleHeight": 1, - "self.view": 4, - "NSLocalizedString": 9, - "UIButton*": 1, - "button": 5, - "UIButton": 1, - "buttonWithType": 1, - "UIButtonTypeRoundedRect": 1, - "setTitle": 1, - "forState": 4, - "UIControlStateNormal": 1, - "addTarget": 1, - "action": 1, - "debugTestAction": 2, - "forControlEvents": 1, - "UIControlEventTouchUpInside": 1, - "sizeToFit": 1, - "button.frame": 2, - "TTCurrentLocale": 2, - "displayNameForKey": 1, - "NSLocaleIdentifier": 1, - "localeIdentifier": 1, - "TTPathForBundleResource": 1, - "TTPathForDocumentsResource": 1, - "dataUsingEncoding": 2, - "NSUTF8StringEncoding": 2, - "md5Hash": 1, - "setContentSize": 1, - "viewDidUnload": 2, - "viewDidAppear": 2, - "animated": 27, - "flashScrollIndicators": 1, - "DEBUG": 1, - "TTDPRINTMETHODNAME": 1, - "TTDPRINT": 9, - "TTMAXLOGLEVEL": 1, - "TTDERROR": 1, - "TTLOGLEVEL_ERROR": 1, - "TTDWARNING": 1, - "TTLOGLEVEL_WARNING": 1, - "TTDINFO": 1, - "TTLOGLEVEL_INFO": 1, - "TTDCONDITIONLOG": 3, - "rand": 1, - "TTDASSERT": 2, - "SBJsonParser": 2, - "maxDepth": 2, - "NSData*": 1, - "objectWithString": 5, - "repr": 5, - "jsonText": 1, - "NSError**": 2, - "self.maxDepth": 2, - "Methods": 1, - "self.error": 3, - "SBJsonStreamParserAccumulator": 2, - "*accumulator": 1, - "SBJsonStreamParserAdapter": 2, - "*adapter": 1, - "adapter.delegate": 1, - "accumulator": 1, - "SBJsonStreamParser": 2, - "*parser": 1, - "parser.maxDepth": 1, - "parser.delegate": 1, - "adapter": 1, - "switch": 3, - "parse": 1, - "case": 8, - "SBJsonStreamParserComplete": 1, - "accumulator.value": 1, - "SBJsonStreamParserWaitingForData": 1, - "SBJsonStreamParserError": 1, - "parser.error": 1, - "error_": 2, - "tmp": 3, - "*ui": 1, - "*error_": 1, - "ui": 1, - "StyleViewController": 2, - "TTViewController": 1, - "TTStyle*": 7, - "_style": 8, - "_styleHighlight": 6, - "_styleDisabled": 6, - "_styleSelected": 6, - "_styleType": 6, - "kTextStyleType": 2, - "kViewStyleType": 2, - "kImageStyleType": 2, - "initWithStyleName": 1, - "styleType": 3, - "TTStyleSheet": 4, - "globalStyleSheet": 4, - "styleWithSelector": 4, - "UIControlStateHighlighted": 1, - "UIControlStateDisabled": 1, - "UIControlStateSelected": 1, - "addTextView": 5, - "title": 2, - "style": 29, - "textFrame": 3, - "TTRectInset": 3, - "UIEdgeInsetsMake": 3, - "StyleView*": 2, - "StyleView": 2, - "text.text": 1, - "TTStyleContext*": 1, - "context": 4, - "TTStyleContext": 1, - "context.frame": 1, - "context.delegate": 1, - "context.font": 1, - "systemFontSize": 1, - "CGSize": 5, - "addToSize": 1, - "CGSizeZero": 1, - "size.width": 1, - "size.height": 1, - "textFrame.size": 1, - "text.frame": 1, - "text.style": 1, - "text.backgroundColor": 1, - "UIColor": 3, - "colorWithRed": 3, - "green": 3, - "blue": 3, - "alpha": 3, - "text.autoresizingMask": 1, - "UIViewAutoresizingFlexibleBottomMargin": 3, - "addView": 5, - "viewFrame": 4, - "view": 11, - "view.style": 2, - "view.backgroundColor": 2, - "view.autoresizingMask": 2, - "addImageView": 5, - "TTImageView*": 1, - "TTImageView": 1, - "view.urlPath": 1, - "imageFrame": 2, - "view.frame": 2, - "imageFrame.size": 1, - "view.image.size": 1, - "TUITableViewStylePlain": 2, - "regular": 1, - "TUITableViewStyleGrouped": 1, - "grouped": 1, - "stick": 1, - "scroll": 3, - "TUITableViewStyle": 4, - "TUITableViewScrollPositionNone": 2, - "TUITableViewScrollPositionTop": 2, - "TUITableViewScrollPositionMiddle": 1, - "TUITableViewScrollPositionBottom": 1, - "TUITableViewScrollPositionToVisible": 3, - "supported": 1, - "TUITableViewScrollPosition": 5, - "TUITableViewInsertionMethodBeforeIndex": 1, - "NSOrderedAscending": 4, - "TUITableViewInsertionMethodAtIndex": 1, - "NSOrderedSame": 1, - "TUITableViewInsertionMethodAfterIndex": 1, - "NSOrderedDescending": 4, - "TUITableViewInsertionMethod": 3, - "TUITableViewCell": 23, - "@protocol": 3, - "TUITableViewDataSource": 2, - "TUITableView": 25, - "TUITableViewDelegate": 1, - "": 1, - "TUIScrollViewDelegate": 1, - "tableView": 45, - "heightForRowAtIndexPath": 2, - "TUIFastIndexPath": 89, - "indexPath": 47, - "@optional": 2, - "willDisplayCell": 2, - "cell": 21, - "forRowAtIndexPath": 2, - "subview": 1, - "didSelectRowAtIndexPath": 3, - "left/right": 2, - "mouse": 2, - "down": 1, - "up/down": 1, - "didDeselectRowAtIndexPath": 3, - "didClickRowAtIndexPath": 1, - "withEvent": 2, - "NSEvent": 3, - "event": 8, - "look": 1, - "clickCount": 1, - "TUITableView*": 1, - "shouldSelectRowAtIndexPath": 3, - "TUIFastIndexPath*": 1, - "forEvent": 3, - "NSEvent*": 1, - "NSMenu": 1, - "menuForRowAtIndexPath": 1, - "tableViewWillReloadData": 3, - "tableViewDidReloadData": 3, - "targetIndexPathForMoveFromRowAtIndexPath": 1, - "fromPath": 1, - "toProposedIndexPath": 1, - "proposedPath": 1, - "TUIScrollView": 1, - "__unsafe_unretained": 2, - "": 4, - "_dataSource": 6, - "weak": 2, - "_sectionInfo": 27, - "TUIView": 17, - "_pullDownView": 4, - "_headerView": 8, - "_lastSize": 1, - "_contentHeight": 7, - "NSMutableIndexSet": 6, - "_visibleSectionHeaders": 6, - "_visibleItems": 14, - "_reusableTableCells": 5, - "_selectedIndexPath": 9, - "_indexPathShouldBeFirstResponder": 2, - "_futureMakeFirstResponderToken": 2, - "_keepVisibleIndexPathForReload": 2, - "_relativeOffsetForReload": 2, - "drag": 1, - "reorder": 1, - "_dragToReorderCell": 5, - "CGPoint": 7, - "_currentDragToReorderLocation": 1, - "_currentDragToReorderMouseOffset": 1, - "_currentDragToReorderIndexPath": 1, - "_currentDragToReorderInsertionMethod": 1, - "_previousDragToReorderIndexPath": 1, - "_previousDragToReorderInsertionMethod": 1, - "animateSelectionChanges": 3, - "forceSaveScrollPosition": 1, - "derepeaterEnabled": 1, - "layoutSubviewsReentrancyGuard": 1, - "didFirstLayout": 1, - "dataSourceNumberOfSectionsInTableView": 1, - "delegateTableViewWillDisplayCellForRowAtIndexPath": 1, - "maintainContentOffsetAfterReload": 3, - "_tableFlags": 1, - "creation.": 1, - "calls": 1, - "UITableViewStylePlain": 1, - "unsafe_unretained": 2, - "dataSource": 2, - "": 4, - "readwrite": 1, - "reloadData": 3, - "reloadDataMaintainingVisibleIndexPath": 2, - "relativeOffset": 5, - "reloadLayout": 2, - "numberOfSections": 10, - "numberOfRowsInSection": 9, - "section": 60, - "rectForHeaderOfSection": 4, - "rectForSection": 3, - "rectForRowAtIndexPath": 7, - "NSIndexSet": 4, - "indexesOfSectionsInRect": 2, - "rect": 10, - "indexesOfSectionHeadersInRect": 2, - "indexPathForCell": 2, - "returns": 4, - "visible": 16, - "indexPathsForRowsInRect": 3, - "indexPathForRowAtPoint": 2, - "point": 11, - "indexPathForRowAtVerticalOffset": 2, - "offset": 23, - "indexOfSectionWithHeaderAtPoint": 2, - "indexOfSectionWithHeaderAtVerticalOffset": 2, - "enumerateIndexPathsUsingBlock": 2, - "*indexPath": 11, - "*stop": 7, - "enumerateIndexPathsWithOptions": 2, - "NSEnumerationOptions": 4, - "usingBlock": 6, - "enumerateIndexPathsFromIndexPath": 4, - "fromIndexPath": 6, - "toIndexPath": 12, - "withOptions": 4, - "headerViewForSection": 6, - "cellForRowAtIndexPath": 9, - "index": 11, - "visibleCells": 3, - "order": 1, - "sortedVisibleCells": 2, - "indexPathsForVisibleRows": 2, - "scrollToRowAtIndexPath": 3, - "atScrollPosition": 3, - "scrollPosition": 9, - "indexPathForSelectedRow": 4, - "representing": 1, - "row": 36, - "selection.": 1, - "indexPathForFirstRow": 2, - "indexPathForLastRow": 2, - "selectRowAtIndexPath": 3, - "deselectRowAtIndexPath": 3, - "*pullDownView": 1, - "pullDownViewIsVisible": 3, - "*headerView": 6, - "dequeueReusableCellWithIdentifier": 2, - "identifier": 7, - "": 1, - "@required": 1, - "canMoveRowAtIndexPath": 2, - "moveRowAtIndexPath": 2, - "numberOfSectionsInTableView": 3, - "NSIndexPath": 5, - "indexPathForRow": 11, - "inSection": 11, - "HEADER_Z_POSITION": 2, - "beginning": 1, - "height": 19, - "TUITableViewRowInfo": 3, - "TUITableViewSection": 16, - "*_tableView": 1, - "*_headerView": 1, - "reusable": 1, - "similar": 1, - "UITableView": 1, - "sectionIndex": 23, - "numberOfRows": 13, - "sectionHeight": 9, - "sectionOffset": 8, - "*rowInfo": 1, - "initWithNumberOfRows": 2, - "_tableView": 3, - "rowInfo": 7, - "_setupRowHeights": 2, - "*header": 1, - "self.headerView": 2, - "roundf": 2, - "header.frame.size.height": 1, - "i": 41, - "h": 3, - "_tableView.delegate": 1, - ".offset": 2, - "rowHeight": 2, - "sectionRowOffset": 2, - "tableRowOffset": 2, - "headerHeight": 4, - "self.headerView.frame.size.height": 1, - "headerView": 14, - "_tableView.dataSource": 3, - "respondsToSelector": 8, - "_headerView.autoresizingMask": 1, - "TUIViewAutoresizingFlexibleWidth": 1, - "_headerView.layer.zPosition": 1, - "Private": 1, - "_updateSectionInfo": 2, - "_updateDerepeaterViews": 2, - "pullDownView": 1, - "_tableFlags.animateSelectionChanges": 3, - "_tableFlags.delegateTableViewWillDisplayCellForRowAtIndexPath": 1, - "setDataSource": 1, - "_tableFlags.dataSourceNumberOfSectionsInTableView": 2, - "setAnimateSelectionChanges": 1, - "*s": 3, - "y": 12, - "CGRectMake": 8, - "self.bounds.size.width": 4, - "indexPath.section": 3, - "indexPath.row": 1, - "*section": 8, - "removeFromSuperview": 4, - "removeAllIndexes": 2, - "*sections": 1, - "bounds": 2, - ".size.height": 1, - "self.contentInset.top*2": 1, - "section.sectionOffset": 1, - "sections": 4, - "self.contentInset.bottom": 1, - "_enqueueReusableCell": 2, - "*identifier": 1, - "cell.reuseIdentifier": 1, - "*c": 1, - "lastObject": 1, - "removeLastObject": 1, - "prepareForReuse": 1, - "allValues": 1, - "SortCells": 1, - "*a": 2, - "*b": 2, - "*ctx": 1, - "a.frame.origin.y": 2, - "b.frame.origin.y": 2, - "*v": 2, - "v": 4, - "sortedArrayUsingComparator": 1, - "NSComparator": 1, - "NSComparisonResult": 1, - "INDEX_PATHS_FOR_VISIBLE_ROWS": 4, - "allKeys": 1, - "*i": 4, - "*cell": 7, - "*indexes": 2, - "CGRectIntersectsRect": 5, - "indexes": 4, - "addIndex": 3, - "*indexPaths": 1, - "cellRect": 7, - "indexPaths": 2, - "CGRectContainsPoint": 1, - "cellRect.origin.y": 1, - "origin": 1, - "brief": 1, - "Obtain": 1, - "whose": 2, - "specified": 1, - "exists": 1, - "negative": 1, - "returned": 1, - "param": 1, - "p": 3, - "0": 2, - "width": 1, - "point.y": 1, - "section.headerView": 9, - "sectionLowerBound": 2, - "fromIndexPath.section": 1, - "sectionUpperBound": 3, - "toIndexPath.section": 1, - "rowLowerBound": 2, - "fromIndexPath.row": 1, - "rowUpperBound": 3, - "toIndexPath.row": 1, - "irow": 3, - "lower": 1, - "bound": 1, - "iteration...": 1, - "rowCount": 3, - "j": 5, - "FALSE": 2, - "...then": 1, - "zero": 1, - "iterations": 1, - "_topVisibleIndexPath": 1, - "*topVisibleIndex": 1, - "sortedArrayUsingSelector": 1, - "topVisibleIndex": 2, - "setFrame": 2, - "_tableFlags.forceSaveScrollPosition": 1, - "setContentOffset": 2, - "_tableFlags.didFirstLayout": 1, - "prevent": 2, - "layout": 3, - "pinned": 5, - "isKindOfClass": 2, - "TUITableViewSectionHeader": 5, - ".pinnedToViewport": 2, - "TRUE": 1, - "pinnedHeader": 1, - "CGRectGetMaxY": 2, - "headerFrame": 4, - "pinnedHeader.frame.origin.y": 1, - "intersecting": 1, - "push": 1, - "upwards.": 1, - "pinnedHeaderFrame": 2, - "pinnedHeader.frame": 2, - "pinnedHeaderFrame.origin.y": 1, - "notify": 3, - "section.headerView.frame": 1, - "setNeedsLayout": 3, - "section.headerView.superview": 1, - "remove": 4, - "offscreen": 2, - "toRemove": 1, - "enumerateIndexesUsingBlock": 1, - "removeIndex": 1, - "_layoutCells": 3, - "visibleCellsNeedRelayout": 5, - "remaining": 1, - "cells": 7, - "cell.frame": 1, - "cell.layer.zPosition": 1, - "visibleRect": 3, - "Example": 1, - "*oldVisibleIndexPaths": 1, - "*newVisibleIndexPaths": 1, - "*indexPathsToRemove": 1, - "oldVisibleIndexPaths": 2, - "mutableCopy": 2, - "indexPathsToRemove": 2, - "removeObjectsInArray": 2, - "newVisibleIndexPaths": 2, - "*indexPathsToAdd": 1, - "indexPathsToAdd": 2, - "newly": 1, - "superview": 1, - "bringSubviewToFront": 1, - "self.contentSize": 3, - "headerViewRect": 3, - "s.height": 3, - "_headerView.frame.size.height": 2, - "visible.size.width": 3, - "_headerView.frame": 1, - "_headerView.hidden": 4, - "show": 2, - "pullDownRect": 4, - "_pullDownView.frame.size.height": 2, - "_pullDownView.hidden": 4, - "_pullDownView.frame": 1, - "self.delegate": 10, - "recycle": 1, - "regenerated": 3, - "layoutSubviews": 5, - "because": 1, - "dragged": 1, - "clear": 3, - "removeAllObjects": 1, - "laid": 1, - "next": 2, - "_tableFlags.layoutSubviewsReentrancyGuard": 3, - "setAnimationsEnabled": 1, - "CATransaction": 3, - "begin": 1, - "setDisableActions": 1, - "_preLayoutCells": 2, - "munge": 2, - "contentOffset": 2, - "_layoutSectionHeaders": 2, - "_tableFlags.derepeaterEnabled": 1, - "commit": 1, - "selected": 2, - "overlapped": 1, - "r.size.height": 4, - "headerFrame.size.height": 1, - "r.origin.y": 1, - "v.size.height": 2, - "scrollRectToVisible": 2, - "sec": 3, - "_makeRowAtIndexPathFirstResponder": 2, - "responder": 2, - "made": 1, - "acceptsFirstResponder": 1, - "self.nsWindow": 3, - "makeFirstResponderIfNotAlreadyInResponderChain": 1, - "futureMakeFirstResponderRequestToken": 1, - "*oldIndexPath": 1, - "oldIndexPath": 2, - "setSelected": 2, - "setNeedsDisplay": 2, + "prior": 1, + "style": 6, + "as": 2, + "string": 3, + "As": 3, + "Object": 2, + "m.port": 3, + "CreateObject": 2, + "screen.SetMessagePort": 1, + "screen.": 1, + "The": 1, + "will": 3, + "show": 1, + "retreiving": 1, + "categoryList": 4, + "getCategoryList": 1, + "[": 3, + "]": 4, + "+": 1, + "screen.setupLists": 1, + "categoryList.count": 2, + "screen.SetListNames": 1, + "StyleButtons": 3, + "getGridControlButtons": 1, + "screen.SetContentList": 2, + "i": 3, + "-": 15, + "getShowsForCategoryItem": 1, + "screen.Show": 1, + "true": 1, + "msg": 3, + "wait": 1, + "getmessageport": 1, + "does": 1, + "not": 2, + "work": 1, + "on": 1, + "gridscreen": 1, + "type": 2, + "if": 3, + "then": 3, + "msg.GetMessage": 1, + "msg.GetIndex": 3, + "msg.getData": 2, + "msg.isListItemFocused": 1, + "else": 1, + "msg.isListItemSelected": 1, + "row": 2, "selection": 3, - "actually": 2, - "NSResponder": 1, - "*firstResponder": 1, - "firstResponder": 3, - "indexPathForFirstVisibleRow": 2, - "*firstIndexPath": 1, - "firstIndexPath": 4, - "indexPathForLastVisibleRow": 2, - "*lastIndexPath": 5, - "lastIndexPath": 8, - "performKeyAction": 2, - "repeative": 1, - "press": 1, - "noCurrentSelection": 2, - "isARepeat": 1, - "TUITableViewCalculateNextIndexPathBlock": 3, - "selectValidIndexPath": 3, - "*startForNoSelection": 2, - "calculateNextIndexPath": 4, - "foundValidNextRow": 4, - "*newIndexPath": 1, - "newIndexPath": 6, - "startForNoSelection": 1, - "_delegate": 2, - "self.animateSelectionChanges": 1, - "charactersIgnoringModifiers": 1, - "characterAtIndex": 1, - "NSUpArrowFunctionKey": 1, - "lastIndexPath.section": 2, - "lastIndexPath.row": 2, - "rowsInSection": 7, - "NSDownArrowFunctionKey": 1, - "_tableFlags.maintainContentOffsetAfterReload": 2, - "setMaintainContentOffsetAfterReload": 1, - "newValue": 2, - "indexPathWithIndexes": 1, - "indexAtPosition": 2 + "yes": 1, + "so": 2, + "we": 3, + "come": 1, + "back": 1, + "with": 2, + "new": 1, + ".Title": 1, + "endif": 1, + "**********************************************************": 1, + "this": 3, + "function": 1, + "passing": 1, + "an": 1, + "roAssociativeArray": 2, + "be": 2, + "sufficient": 1, + "springboard": 2, + "display": 2, + "add": 1, + "code": 1, + "create": 1, + "now": 1, + "do": 1, + "nothing": 1, + "Return": 1, + "list": 1, + "of": 5, + "categories": 1, + "filter": 1, + "all": 1, + "categories.": 1, + "just": 2, + "static": 1, + "data": 2, + "example.": 1, + "********************************************************************": 1, + "ContentMetaData": 1, + "objects": 1, + "shows": 1, + "category.": 1, + "For": 1, + "example": 1, + "cheat": 1, + "but": 2, + "ideally": 1, + "you": 1, + "dynamically": 1, + "content": 2, + "each": 1, + "category": 1, + "is": 1, + "dynamic": 1, + "s": 1, + "one": 3, + "small": 1, + "step": 1, + "a": 4, + "man": 1, + "giant": 1, + "leap": 1, + "mankind.": 1, + "http": 14, + "//upload.wikimedia.org/wikipedia/commons/1/1e/Apollo_11_first_step.jpg": 2, + "I": 2, + "have": 2, + "Dream": 1, + "PG": 1, + "dream": 1, + "that": 1, + "my": 1, + "four": 1, + "little": 1, + "children": 1, + "day": 1, + "live": 1, + "nation": 1, + "where": 1, + "they": 1, + "judged": 1, + "by": 2, + "color": 1, + "their": 2, + "skin": 1, + "character.": 1, + "//upload.wikimedia.org/wikipedia/commons/8/81/Martin_Luther_King_": 2, + "_March_on_Washington.jpg": 2, + "Flat": 6, + "Movie": 2, + "HD": 6, + "x2": 4, + "SD": 5, + "Netflix": 1, + "//upload.wikimedia.org/wikipedia/commons/4/43/Gold_star_on_blue.gif": 2, + "Landscape": 1, + "x3": 6, + "Channel": 1, + "Store": 1, + "//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Dunkery_Hill.jpg/800px": 2, + "Dunkery_Hill.jpg": 2, + "Portrait": 1, + "x4": 1, + "posters": 3, + "//upload.wikimedia.org/wikipedia/commons/9/9f/Kane_George_Gurnett.jpg": 2, + "Square": 1, + "x1": 1, + "//upload.wikimedia.org/wikipedia/commons/thumb/d/de/SQUARE_SHAPE.svg/536px": 2, + "SQUARE_SHAPE.svg.png": 2, + "x9": 1, + "//upload.wikimedia.org/wikipedia/commons/thumb/2/22/": 2, + "%": 8, + "C3": 4, + "cran_TV_plat.svg/200px": 2, + "cran_TV_plat.svg.png": 2, + "}": 1, + "buttons": 1 + }, + "R": { + "df.residual.mira": 1, + "<": 24, + "-": 27, + "function": 7, + "(": 60, + "object": 9, + "...": 4, + ")": 60, + "{": 7, + "fit": 2, + "analyses": 1, + "[": 10, + "]": 10, + "return": 7, + "df.residual": 2, + "}": 7, + "df.residual.lme": 1, + "fixDF": 1, + "df.residual.mer": 1, + "sum": 1, + "object@dims": 1, + "*": 2, + "c": 5, + "+": 3, + "df.residual.default": 1, + "q": 2, + "df": 3, + "if": 3, + "is.null": 1, + "mk": 2, + "try": 2, + "coef": 1, + "silent": 2, + "TRUE": 5, + "mn": 2, + "f": 5, + "fitted": 1, + "inherits": 2, + "|": 3, + "NULL": 2, + "n": 3, + "ifelse": 1, + "is.data.frame": 1, + "is.matrix": 1, + "nrow": 1, + "length": 2, + "k": 3, + "max": 1, + "##polyg": 1, + "vector": 2, + "##numpoints": 1, + "number": 1, + "##output": 1, + "output": 1, + "##": 1, + "Example": 1, + "scripts": 1, + "group": 1, + "pts": 1, + "spsample": 1, + "polyg": 1, + "numpoints": 1, + "type": 1, + "hello": 2, + "print": 1, + "SHEBANG#!Rscript": 1, + "ParseDates": 2, + "lines": 4, + "dates": 3, + "matrix": 2, + "unlist": 2, + "strsplit": 2, + "ncol": 2, + "byrow": 2, + "days": 2, + "times": 2, + "hours": 2, + "all.days": 2, + "all.hours": 2, + "data.frame": 1, + "Day": 2, + "factor": 2, + "levels": 2, + "Hour": 2, + "Main": 2, + "system": 1, + "intern": 1, + "punchcard": 4, + "as.data.frame": 1, + "table": 1, + "ggplot2": 6, + "ggplot": 1, + "aes": 2, + "y": 1, + "x": 1, + "geom_point": 1, + "size": 1, + "Freq": 1, + "scale_size": 1, + "range": 1, + "ggsave": 1, + "filename": 1, + "plot": 1, + "width": 1, + "height": 1 + }, + "Rust": { + "//": 20, + "use": 10, + "cell": 1, + "Cell": 2, + ";": 218, + "cmp": 1, + "Eq": 2, + "option": 4, + "result": 18, + "Result": 3, + "comm": 5, + "{": 213, + "stream": 21, + "Chan": 4, + "GenericChan": 1, + "GenericPort": 1, + "Port": 3, + "SharedChan": 4, + "}": 210, + "prelude": 1, + "*": 1, + "task": 39, + "rt": 29, + "task_id": 2, + "sched_id": 2, + "rust_task": 1, + "util": 4, + "replace": 8, + "mod": 5, + "local_data_priv": 1, + "pub": 26, + "local_data": 1, + "spawn": 15, + "///": 13, + "A": 6, + "handle": 3, + "to": 6, + "a": 9, + "scheduler": 6, + "#": 61, + "[": 61, + "deriving_eq": 3, + "]": 61, + "enum": 4, + "Scheduler": 4, + "SchedulerHandle": 2, + "(": 429, + ")": 434, + "Task": 2, + "TaskHandle": 2, + "TaskResult": 4, + "Success": 6, + "Failure": 6, + "impl": 3, + "for": 10, + "pure": 2, + "fn": 89, + "eq": 1, + "&": 30, + "self": 15, + "other": 4, + "-": 33, + "bool": 6, + "match": 4, + "|": 20, + "true": 9, + "_": 4, + "false": 7, + "ne": 1, + ".eq": 1, + "modes": 1, + "SchedMode": 4, + "Run": 3, + "on": 5, + "the": 10, + "default": 1, + "DefaultScheduler": 2, + "current": 1, + "CurrentScheduler": 2, + "specific": 1, + "ExistingScheduler": 1, + "PlatformThread": 2, + "All": 1, + "tasks": 1, + "run": 1, + "in": 3, + "same": 1, + "OS": 3, + "thread": 2, + "SingleThreaded": 4, + "Tasks": 2, + "are": 2, + "distributed": 2, + "among": 2, + "available": 1, + "CPUs": 1, + "ThreadPerCore": 2, + "Each": 1, + "runs": 1, + "its": 1, + "own": 1, + "ThreadPerTask": 1, + "fixed": 1, + "number": 1, + "of": 3, + "threads": 1, + "ManualThreads": 3, + "uint": 7, + "struct": 7, + "SchedOpts": 4, + "mode": 9, + "foreign_stack_size": 3, + "Option": 4, + "": 2, + "TaskOpts": 12, + "linked": 15, + "supervised": 11, + "mut": 16, + "notify_chan": 24, + "<": 3, + "": 3, + "sched": 10, + "TaskBuilder": 21, + "opts": 21, + "gen_body": 4, + "@fn": 2, + "v": 6, + "can_not_copy": 11, + "": 1, + "consumed": 4, + "default_task_opts": 4, + "body": 6, + "Identity": 1, + "function": 1, + "None": 23, + "doc": 1, + "hidden": 1, + "FIXME": 1, + "#3538": 1, + "priv": 1, + "consume": 1, + "if": 7, + "self.consumed": 2, + "fail": 17, + "Fake": 1, + "move": 1, + "let": 84, + "self.opts.notify_chan": 7, + "self.opts.linked": 4, + "self.opts.supervised": 5, + "self.opts.sched": 6, + "self.gen_body": 2, + "unlinked": 1, + "..": 8, + "self.consume": 7, + "future_result": 1, + "blk": 2, + "self.opts.notify_chan.is_some": 1, + "notify_pipe_po": 2, + "notify_pipe_ch": 2, + "Some": 8, + "Configure": 1, + "custom": 1, + "task.": 1, + "sched_mode": 1, + "add_wrapper": 1, + "wrapper": 2, + "prev_gen_body": 2, + "f": 38, + "x": 7, + "x.opts.linked": 1, + "x.opts.supervised": 1, + "x.opts.sched": 1, + "spawn_raw": 1, + "x.gen_body": 1, + "Runs": 1, + "while": 2, + "transfering": 1, + "ownership": 1, + "one": 1, + "argument": 1, + "child.": 1, + "spawn_with": 2, + "": 2, + "arg": 5, + "do": 49, + "self.spawn": 1, + "arg.take": 1, + "try": 5, + "": 2, + "T": 2, + "": 2, + "po": 11, + "ch": 26, + "": 1, + "fr_task_builder": 1, + "self.future_result": 1, + "+": 4, + "r": 6, + "fr_task_builder.spawn": 1, + "||": 11, + "ch.send": 11, + "unwrap": 3, + ".recv": 3, + "Ok": 3, + "po.recv": 10, + "Err": 2, + ".spawn": 9, + "spawn_unlinked": 6, + ".unlinked": 3, + "spawn_supervised": 5, + ".supervised": 2, + ".spawn_with": 1, + "spawn_sched": 8, + ".sched_mode": 2, + ".try": 1, + "yield": 16, + "Yield": 1, + "control": 1, + "unsafe": 31, + "task_": 2, + "rust_get_task": 5, + "killed": 3, + "rust_task_yield": 1, + "&&": 1, + "failing": 2, + "True": 1, + "running": 2, + "has": 1, + "failed": 1, + "rust_task_is_unwinding": 1, + "get_task": 1, + "Get": 1, + "get_task_id": 1, + "get_scheduler": 1, + "rust_get_sched_id": 6, + "unkillable": 5, + "": 3, + "U": 6, + "AllowFailure": 5, + "t": 24, + "*rust_task": 6, + "drop": 3, + "rust_task_allow_kill": 3, + "self.t": 4, + "_allow_failure": 2, + "rust_task_inhibit_kill": 3, + "The": 1, + "inverse": 1, + "unkillable.": 1, + "Only": 1, + "ever": 1, + "be": 2, + "used": 1, + "nested": 1, + ".": 1, + "rekillable": 1, + "DisallowFailure": 5, + "atomically": 3, + "DeferInterrupts": 5, + "rust_task_allow_yield": 1, + "_interrupts": 1, + "rust_task_inhibit_yield": 1, + "test": 31, + "should_fail": 11, + "ignore": 16, + "cfg": 16, + "windows": 14, + "test_cant_dup_task_builder": 1, + "b": 2, + "b.spawn": 2, + "should": 2, + "have": 1, + "been": 1, + "by": 1, + "previous": 1, + "call": 1, + "test_spawn_unlinked_unsup_no_fail_down": 1, + "grandchild": 1, + "sends": 1, + "port": 3, + "ch.clone": 2, + "iter": 8, + "repeat": 8, + "If": 1, + "first": 1, + "grandparent": 1, + "hangs.": 1, + "Shouldn": 1, + "leave": 1, + "child": 3, + "hanging": 1, + "around.": 1, + "test_spawn_linked_sup_fail_up": 1, + "fails": 4, + "parent": 2, + "_ch": 1, + "<()>": 6, + "opts.linked": 2, + "opts.supervised": 2, + "b0": 5, + "b1": 3, + "b1.spawn": 3, + "We": 1, + "get": 1, + "punted": 1, + "awake": 1, + "test_spawn_linked_sup_fail_down": 1, + "loop": 5, + "*both*": 1, + "mechanisms": 1, + "would": 1, + "wrong": 1, + "this": 1, + "didn": 1, + "s": 1, + "failure": 1, + "propagate": 1, + "across": 1, + "gap": 1, + "test_spawn_failure_propagate_secondborn": 1, + "test_spawn_failure_propagate_nephew_or_niece": 1, + "test_spawn_linked_sup_propagate_sibling": 1, + "test_run_basic": 1, + "Wrapper": 5, + "test_add_wrapper": 1, + "b0.add_wrapper": 1, + "ch.f.swap_unwrap": 4, + "test_future_result": 1, + ".future_result": 4, + "assert": 10, + "test_back_to_the_future_result": 1, + "test_try_success": 1, + "test_try_fail": 1, + "test_spawn_sched_no_threads": 1, + "u": 2, + "test_spawn_sched": 1, + "i": 3, + "int": 5, + "parent_sched_id": 4, + "child_sched_id": 5, + "else": 1, + "test_spawn_sched_childs_on_default_sched": 1, + "default_id": 2, + "nolink": 1, + "extern": 1, + "testrt": 9, + "rust_dbg_lock_create": 2, + "*libc": 6, + "c_void": 6, + "rust_dbg_lock_destroy": 2, + "lock": 13, + "rust_dbg_lock_lock": 3, + "rust_dbg_lock_unlock": 3, + "rust_dbg_lock_wait": 2, + "rust_dbg_lock_signal": 2, + "test_spawn_sched_blocking": 1, + "start_po": 1, + "start_ch": 1, + "fin_po": 1, + "fin_ch": 1, + "start_ch.send": 1, + "fin_ch.send": 1, + "start_po.recv": 1, + "pingpong": 3, + "": 2, + "val": 4, + "setup_po": 1, + "setup_ch": 1, + "parent_po": 2, + "parent_ch": 2, + "child_po": 2, + "child_ch": 4, + "setup_ch.send": 1, + "setup_po.recv": 1, + "child_ch.send": 1, + "fin_po.recv": 1, + "avoid_copying_the_body": 5, + "spawnfn": 2, + "p": 3, + "x_in_parent": 2, + "ptr": 2, + "addr_of": 2, + "as": 7, + "x_in_child": 4, + "p.recv": 1, + "test_avoid_copying_the_body_spawn": 1, + "test_avoid_copying_the_body_task_spawn": 1, + "test_avoid_copying_the_body_try": 1, + "test_avoid_copying_the_body_unlinked": 1, + "test_platform_thread": 1, + "test_unkillable": 1, + "pp": 2, + "*uint": 1, + "cast": 2, + "transmute": 2, + "_p": 1, + "test_unkillable_nested": 1, + "Here": 1, + "test_atomically_nested": 1, + "test_child_doesnt_ref_parent": 1, + "const": 1, + "generations": 2, + "child_no": 3, + "return": 1, + "test_sched_thread_per_core": 1, + "chan": 2, + "cores": 2, + "rust_num_threads": 1, + "reported_threads": 2, + "rust_sched_threads": 2, + "chan.send": 2, + "port.recv": 2, + "test_spawn_thread_on_demand": 1, + "max_threads": 2, + "running_threads": 2, + "rust_sched_current_nonlazy_threads": 2, + "port2": 1, + "chan2": 1, + "chan2.send": 1, + "running_threads2": 2, + "port2.recv": 1 + }, + "Diff": { + "diff": 1, + "-": 5, + "git": 1, + "a/lib/linguist.rb": 2, + "b/lib/linguist.rb": 2, + "index": 1, + "d472341..8ad9ffb": 1, + "+": 3 + }, + "C": { + "#include": 154, + "": 5, + "": 4, + "": 2, + "": 1, + "": 1, + "": 8, + "": 2, + "#ifdef": 66, + "__APPLE__": 2, + "#endif": 243, + "#if": 92, + "defined": 42, + "(": 6243, + ")": 6245, + "&&": 248, + "TARGET_OS_IPHONE": 1, + "#else": 94, + "extern": 38, + "char": 530, + "**environ": 1, + ";": 5465, + "static": 455, + "void": 288, + "uv__chld": 2, + "EV_P_": 1, + "ev_child*": 1, + "watcher": 4, + "int": 446, + "revents": 2, + "{": 1531, + "status": 57, + "-": 1803, + "rstatus": 1, + "exit_status": 3, + "term_signal": 3, + "uv_process_t": 1, + "*process": 1, + "data": 69, + "assert": 41, + "&": 442, + "process": 19, + "child_watcher": 5, + "EV_CHILD": 1, + "ev_child_stop": 2, + "EV_A_": 1, + "if": 1015, + "WIFEXITED": 1, + "WEXITSTATUS": 2, + "}": 1547, + "WIFSIGNALED": 2, + "WTERMSIG": 2, + "exit_cb": 3, + "uv__make_socketpair": 2, + "fds": 20, + "[": 601, + "]": 601, + "flags": 89, + "SOCK_NONBLOCK": 2, + "fl": 8, + "SOCK_CLOEXEC": 1, + "UV__F_NONBLOCK": 5, + "|": 132, + "socketpair": 2, + "AF_UNIX": 2, + "SOCK_STREAM": 2, + "return": 529, + "errno": 20, + "EINVAL": 6, + "uv__cloexec": 4, + "uv__nonblock": 5, + "uv__make_pipe": 2, + "__linux__": 3, + "UV__O_CLOEXEC": 1, + "UV__O_NONBLOCK": 1, + "uv__pipe2": 1, + "ENOSYS": 1, + "pipe": 1, + "uv__process_init_stdio": 2, + "uv_stdio_container_t*": 4, + "container": 17, + "writable": 8, + "fd": 34, + "switch": 46, + "UV_IGNORE": 2, + "UV_CREATE_PIPE": 4, + "UV_INHERIT_FD": 3, + "UV_INHERIT_STREAM": 2, + "case": 273, + "data.stream": 7, + "NULL": 330, + "type": 36, + "UV_NAMED_PIPE": 2, + "data.fd": 1, + "else": 190, + "default": 33, + "uv__process_stdio_flags": 2, + "uv_pipe_t*": 1, + "ipc": 1, + "UV_STREAM_READABLE": 2, + "UV_STREAM_WRITABLE": 2, + "uv__process_open_stream": 2, + "child_fd": 3, + "||": 141, + "<": 219, + "close": 13, + "uv__stream_open": 1, + "uv_stream_t*": 2, + "uv__process_close_stream": 2, + "uv__stream_close": 1, + "uv__process_child_init": 2, + "uv_process_options_t": 2, + "options": 62, + "stdio_count": 7, + "int*": 22, + "pipes": 23, + "i": 410, + "options.flags": 4, + "UV_PROCESS_DETACHED": 2, + "setsid": 2, + "for": 88, + "+": 551, + "close_fd": 2, + "*": 261, + "use_fd": 7, + "open": 4, + "O_RDONLY": 1, + "O_RDWR": 2, + "perror": 5, + "_exit": 6, + "continue": 20, + "dup2": 4, + "options.cwd": 2, + "chdir": 2, + "UV_PROCESS_SETGID": 2, + "setgid": 1, + "options.gid": 1, + "UV_PROCESS_SETUID": 2, + "setuid": 1, + "options.uid": 1, + "environ": 4, + "options.env": 1, + "execvp": 1, + "options.file": 2, + "options.args": 1, + "#ifndef": 89, + "SPAWN_WAIT_EXEC": 5, + "uv_spawn": 1, + "uv_loop_t*": 1, + "loop": 9, + "uv_process_t*": 3, + "char**": 7, + "save_our_env": 3, + "options.stdio_count": 4, + "malloc": 3, + "sizeof": 71, + "signal_pipe": 7, + "struct": 360, + "pollfd": 1, + "pfd": 2, + "pid_t": 2, + "pid": 13, + "ENOMEM": 4, + "goto": 159, + "error": 96, + "UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS": 1, + "uv__handle_init": 1, + "uv_handle_t*": 1, + "UV_PROCESS": 1, + "counters.process_init": 1, + "uv__handle_start": 1, + "options.exit_cb": 1, + "options.stdio": 3, + "fork": 2, + "do": 21, + "pfd.fd": 1, + "pfd.events": 1, + "POLLIN": 1, + "POLLHUP": 1, + "pfd.revents": 1, + "poll": 1, + "while": 70, + "EINTR": 1, + "ev_child_init": 1, + "ev_child_start": 1, + "ev": 2, + "child_watcher.data": 1, + "j": 206, + "free": 62, + "uv__set_sys_error": 2, + "uv_process_kill": 1, + "signum": 4, + "r": 58, + "kill": 4, + "uv_err_t": 1, + "uv_kill": 1, + "uv__new_sys_error": 1, + "uv_ok_": 1, + "uv__process_close": 1, + "handle": 10, + "uv__handle_stop": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "CONFIG_SMP": 1, + "DEFINE_MUTEX": 1, + "cpu_add_remove_lock": 3, + "cpu_maps_update_begin": 9, + "mutex_lock": 5, + "cpu_maps_update_done": 9, + "mutex_unlock": 6, + "RAW_NOTIFIER_HEAD": 1, + "cpu_chain": 4, + "cpu_hotplug_disabled": 7, + "CONFIG_HOTPLUG_CPU": 2, + "task_struct": 5, + "*active_writer": 1, + "mutex": 1, + "lock": 6, + "refcount": 2, + "cpu_hotplug": 1, + ".active_writer": 1, + ".lock": 1, + "__MUTEX_INITIALIZER": 1, + "cpu_hotplug.lock": 8, + ".refcount": 1, + "get_online_cpus": 2, + "might_sleep": 1, + "cpu_hotplug.active_writer": 6, + "current": 5, + "cpu_hotplug.refcount": 3, + "EXPORT_SYMBOL_GPL": 4, + "put_online_cpus": 2, + "unlikely": 54, + "wake_up_process": 1, + "cpu_hotplug_begin": 4, + "likely": 22, + "break": 244, + "__set_current_state": 1, + "TASK_UNINTERRUPTIBLE": 1, + "schedule": 1, + "cpu_hotplug_done": 4, + "__ref": 6, + "register_cpu_notifier": 2, + "notifier_block": 3, + "*nb": 3, + "ret": 142, + "raw_notifier_chain_register": 1, + "nb": 2, + "__cpu_notify": 6, + "unsigned": 140, + "long": 105, + "val": 20, + "*v": 3, + "nr_to_call": 2, + "*nr_calls": 1, + "__raw_notifier_call_chain": 1, + "v": 11, + "nr_calls": 9, + "notifier_to_errno": 1, + "cpu_notify": 5, + "cpu_notify_nofail": 4, + "BUG_ON": 4, + "EXPORT_SYMBOL": 8, + "unregister_cpu_notifier": 2, + "raw_notifier_chain_unregister": 1, + "clear_tasks_mm_cpumask": 1, + "cpu": 57, + "*p": 9, + "WARN_ON": 1, + "cpu_online": 5, + "rcu_read_lock": 1, + "for_each_process": 2, + "p": 60, + "*t": 2, + "t": 32, + "find_lock_task_mm": 1, + "cpumask_clear_cpu": 5, + "mm_cpumask": 1, + "mm": 1, + "task_unlock": 1, + "rcu_read_unlock": 1, + "inline": 3, + "check_for_tasks": 2, + "write_lock_irq": 1, + "tasklist_lock": 2, + "task_cpu": 1, + "state": 104, + "TASK_RUNNING": 1, + "utime": 1, + "stime": 1, + "printk": 12, + "KERN_WARNING": 3, + "comm": 1, + "task_pid_nr": 1, + "write_unlock_irq": 1, + "take_cpu_down_param": 3, + "mod": 13, + "*hcpu": 3, + "take_cpu_down": 2, + "*_param": 1, + "*param": 1, + "_param": 1, + "err": 38, + "__cpu_disable": 1, + "CPU_DYING": 1, + "param": 2, + "hcpu": 10, + "_cpu_down": 3, + "tasks_frozen": 4, + "CPU_TASKS_FROZEN": 2, + "tcd_param": 2, + ".mod": 1, + ".hcpu": 1, + "num_online_cpus": 2, + "EBUSY": 3, + "CPU_DOWN_PREPARE": 1, + "CPU_DOWN_FAILED": 2, + "__func__": 2, + "out_release": 3, + "__stop_machine": 1, + "cpumask_of": 1, + "idle_cpu": 1, + "cpu_relax": 1, + "__cpu_die": 1, + "CPU_DEAD": 1, + "CPU_POST_DEAD": 1, + "cpu_down": 2, + "out": 18, + "__cpuinit": 3, + "_cpu_up": 3, + "*idle": 1, + "cpu_present": 1, + "idle": 4, + "idle_thread_get": 1, + "IS_ERR": 1, + "PTR_ERR": 1, + "CPU_UP_PREPARE": 1, + "out_notify": 3, + "__cpu_up": 1, + "CPU_ONLINE": 1, + "CPU_UP_CANCELED": 1, + "cpu_up": 2, + "CONFIG_MEMORY_HOTPLUG": 2, + "nid": 5, + "pg_data_t": 1, + "*pgdat": 1, + "cpu_possible": 1, + "KERN_ERR": 5, + "CONFIG_IA64": 1, + "cpu_to_node": 1, + "node_online": 1, + "mem_online_node": 1, + "pgdat": 3, + "NODE_DATA": 1, + "node_zonelists": 1, + "_zonerefs": 1, + "zone": 1, + "zonelists_mutex": 2, + "build_all_zonelists": 1, + "CONFIG_PM_SLEEP_SMP": 2, + "cpumask_var_t": 1, + "frozen_cpus": 9, + "__weak": 4, + "arch_disable_nonboot_cpus_begin": 2, + "arch_disable_nonboot_cpus_end": 2, + "disable_nonboot_cpus": 1, + "first_cpu": 3, + "cpumask_first": 1, + "cpu_online_mask": 3, + "cpumask_clear": 2, + "for_each_online_cpu": 1, + "cpumask_set_cpu": 5, + "arch_enable_nonboot_cpus_begin": 2, + "arch_enable_nonboot_cpus_end": 2, + "enable_nonboot_cpus": 1, + "cpumask_empty": 1, + "KERN_INFO": 2, + "for_each_cpu": 1, + "__init": 2, + "alloc_frozen_cpus": 2, + "alloc_cpumask_var": 1, + "GFP_KERNEL": 1, + "__GFP_ZERO": 1, + "core_initcall": 2, + "cpu_hotplug_disable_before_freeze": 2, + "cpu_hotplug_enable_after_thaw": 2, + "cpu_hotplug_pm_callback": 2, + "action": 2, + "*ptr": 1, + "PM_SUSPEND_PREPARE": 1, + "PM_HIBERNATION_PREPARE": 1, + "PM_POST_SUSPEND": 1, + "PM_POST_HIBERNATION": 1, + "NOTIFY_DONE": 1, + "NOTIFY_OK": 1, + "cpu_hotplug_pm_sync_init": 2, + "pm_notifier": 1, + "notify_cpu_starting": 1, + "CPU_STARTING": 1, + "cpumask_test_cpu": 1, + "CPU_STARTING_FROZEN": 1, + "#define": 920, + "MASK_DECLARE_1": 3, + "x": 57, + "UL": 1, + "<<": 56, + "MASK_DECLARE_2": 3, + "MASK_DECLARE_4": 3, + "MASK_DECLARE_8": 9, + "const": 358, + "cpu_bit_bitmap": 2, + "BITS_PER_LONG": 2, + "BITS_TO_LONGS": 1, + "NR_CPUS": 2, + "DECLARE_BITMAP": 6, + "cpu_all_bits": 2, + "CPU_BITS_ALL": 2, + "CONFIG_INIT_ALL_POSSIBLE": 1, + "cpu_possible_bits": 6, + "CONFIG_NR_CPUS": 5, + "__read_mostly": 5, + "cpumask": 7, + "*const": 4, + "cpu_possible_mask": 2, + "to_cpumask": 15, + "cpu_online_bits": 5, + "cpu_present_bits": 5, + "cpu_present_mask": 2, + "cpu_active_bits": 4, + "cpu_active_mask": 2, + "set_cpu_possible": 1, + "bool": 6, + "possible": 2, + "set_cpu_present": 1, + "present": 2, + "set_cpu_online": 1, + "online": 2, + "set_cpu_active": 1, + "active": 2, + "init_cpu_present": 1, + "*src": 3, + "cpumask_copy": 3, + "src": 16, + "init_cpu_possible": 1, + "init_cpu_online": 1, + "REFU_IO_H": 2, + "": 2, + "__cplusplus": 20, + "//": 262, + "opening": 2, + "bracket": 4, + "calling": 4, + "from": 16, + "C": 14, + "RF_LF": 10, + "xA": 1, + "RF_CR": 1, + "xD": 1, + "REFU_WIN32_VERSION": 1, + "i_PLUSB_WIN32": 2, + "_MSC_VER": 5, + "typedef": 191, + "__int64": 3, + "foff_rft": 2, + "": 2, + "off64_t": 1, + "///Fseek": 1, + "and": 15, + "Ftelll": 1, + "definitions": 1, + "rfFseek": 2, + "i_FILE_": 16, + "i_OFFSET_": 4, + "i_WHENCE_": 4, + "_fseeki64": 1, + "rfFtell": 2, + "_ftelli64": 1, + "fseeko64": 1, + "ftello64": 1, + "i_DECLIMEX_": 121, + "int32_t": 112, + "rfFReadLine_UTF8": 5, + "FILE*": 64, + "f": 184, + "utf8": 36, + "uint32_t*": 34, + "byteLength": 197, + "bufferSize": 6, + "char*": 167, + "eof": 53, + "rfFReadLine_UTF16BE": 6, + "rfFReadLine_UTF16LE": 4, + "rfFReadLine_UTF32BE": 1, + "rfFReadLine_UTF32LE": 4, + "rfFgets_UTF32BE": 1, + "buff": 95, + "uint32_t": 144, + "num": 24, + "rfFgets_UTF32LE": 2, + "rfFgets_UTF16BE": 2, + "rfFgets_UTF16LE": 2, + "rfFgets_UTF8": 2, + "rfFgetc_UTF8": 3, + "*c": 69, + "cp": 12, + "rfFgetc_UTF16BE": 4, + "rfFgetc_UTF16LE": 4, + "rfFgetc_UTF32LE": 4, + "rfFgetc_UTF32BE": 3, + "rfFback_UTF32BE": 2, + "rfFback_UTF32LE": 2, + "rfFback_UTF16BE": 2, + "rfFback_UTF16LE": 2, + "rfFback_UTF8": 2, + "RF_IAMHERE_FOR_DOXYGEN": 22, + "rfPopen": 2, + "void*": 135, + "command": 2, + "mode": 11, + "i_rfPopen": 2, + "i_CMD_": 2, + "i_MODE_": 2, + "i_rfLMS_WRAP2": 5, + "rfPclose": 1, + "stream": 3, + "///closing": 1, + "#endif//include": 1, + "guards": 2, + "end": 48, + "main": 3, + "printf": 4, + "syscalldef": 1, + "syscalldefs": 1, + "SYSCALL_OR_NUM": 3, + "SYS_restart_syscall": 1, + "MAKE_UINT16": 3, + "SYS_exit": 1, + "SYS_fork": 1, + "BOOTSTRAP_H": 2, + "__GNUC__": 8, + "object": 41, + "*true": 1, + "*false": 1, + "*eof": 1, + "*empty_list": 1, + "*global_enviroment": 1, + "enum": 30, + "obj_type": 1, + "scm_bool": 1, + "scm_empty_list": 1, + "scm_eof": 1, + "scm_char": 1, + "scm_int": 1, + "scm_pair": 1, + "scm_symbol": 1, + "scm_prim_fun": 1, + "scm_lambda": 1, + "scm_str": 1, + "scm_file": 1, + "*eval_proc": 1, + "*maybe_add_begin": 1, + "*code": 2, + "init_enviroment": 1, + "*env": 4, + "eval_err": 1, + "*msg": 7, + "__attribute__": 1, + "noreturn": 1, + "define_var": 1, + "*var": 4, + "*val": 6, + "set_var": 1, + "*get_var": 1, + "*cond2nested_if": 1, + "*cond": 1, + "*let2lambda": 1, + "*let": 1, + "*and2nested_if": 1, + "*and": 1, + "*or2nested_if": 1, + "*or": 1, + "http_parser_h": 2, + "HTTP_PARSER_VERSION_MAJOR": 1, + "HTTP_PARSER_VERSION_MINOR": 1, + "_WIN32": 3, + "__MINGW32__": 1, + "__int8": 2, + "int8_t": 3, + "uint8_t": 6, + "__int16": 2, + "int16_t": 1, + "uint16_t": 12, + "__int32": 2, + "int64_t": 2, + "uint64_t": 8, + "size_t": 52, + "ssize_t": 1, + "": 1, + "HTTP_PARSER_STRICT": 5, + "HTTP_PARSER_DEBUG": 4, + "HTTP_MAX_HEADER_SIZE": 2, + "*1024": 4, + "http_parser": 13, + "http_parser_settings": 5, + "HTTP_METHOD_MAP": 3, + "XX": 63, + "DELETE": 2, + "GET": 2, + "HEAD": 2, + "POST": 2, + "PUT": 2, + "CONNECT": 2, + "OPTIONS": 2, + "TRACE": 2, + "COPY": 2, + "LOCK": 2, + "MKCOL": 2, + "MOVE": 2, + "PROPFIND": 2, + "PROPPATCH": 2, + "SEARCH": 3, + "UNLOCK": 2, + "REPORT": 2, + "MKACTIVITY": 2, + "CHECKOUT": 2, + "MERGE": 2, + "MSEARCH": 1, + "M": 1, + "NOTIFY": 2, + "SUBSCRIBE": 2, + "UNSUBSCRIBE": 2, + "PATCH": 2, + "PURGE": 2, + "http_method": 4, + "name": 28, + "string": 18, + "HTTP_##name": 1, + "#undef": 7, + "http_parser_type": 3, + "HTTP_REQUEST": 7, + "HTTP_RESPONSE": 3, + "HTTP_BOTH": 1, + "F_CHUNKED": 11, + "F_CONNECTION_KEEP_ALIVE": 3, + "F_CONNECTION_CLOSE": 3, + "F_TRAILING": 3, + "F_UPGRADE": 3, + "F_SKIPBODY": 4, + "HTTP_ERRNO_MAP": 3, + "OK": 1, + "CB_message_begin": 1, + "CB_url": 1, + "CB_header_field": 1, + "CB_header_value": 1, + "CB_headers_complete": 1, + "CB_body": 1, + "CB_message_complete": 1, + "INVALID_EOF_STATE": 1, + "HEADER_OVERFLOW": 1, + "CLOSED_CONNECTION": 1, + "INVALID_VERSION": 1, + "INVALID_STATUS": 1, + "INVALID_METHOD": 1, + "INVALID_URL": 1, + "INVALID_HOST": 1, + "INVALID_PORT": 1, + "INVALID_PATH": 1, + "INVALID_QUERY_STRING": 1, + "INVALID_FRAGMENT": 1, + "LF_EXPECTED": 1, + "INVALID_HEADER_TOKEN": 1, + "INVALID_CONTENT_LENGTH": 1, + "INVALID_CHUNK_SIZE": 1, + "INVALID_CONSTANT": 1, + "INVALID_INTERNAL_STATE": 1, + "STRICT": 1, + "PAUSED": 1, + "UNKNOWN": 1, + "HTTP_ERRNO_GEN": 3, + "n": 70, + "s": 154, + "HPE_##n": 1, + "http_errno": 11, + "HTTP_PARSER_ERRNO": 10, + "HTTP_PARSER_ERRNO_LINE": 2, + "error_lineno": 3, + "header_state": 42, + "index": 58, + "nread": 7, + "content_length": 27, + "short": 6, + "http_major": 11, + "http_minor": 11, + "status_code": 8, + "method": 39, + "upgrade": 3, + "*data": 12, + "http_cb": 3, + "on_message_begin": 1, + "http_data_cb": 4, + "on_url": 1, + "on_header_field": 1, + "on_header_value": 1, + "on_headers_complete": 3, + "on_body": 1, + "on_message_complete": 1, + "http_parser_url_fields": 2, + "UF_SCHEMA": 2, + "UF_HOST": 3, + "UF_PORT": 5, + "UF_PATH": 2, + "UF_QUERY": 2, + "UF_FRAGMENT": 2, + "UF_MAX": 3, + "http_parser_url": 3, + "field_set": 5, + "port": 7, + "off": 8, + "len": 30, + "field_data": 5, + "http_parser_init": 2, + "*parser": 9, + "http_parser_execute": 2, + "*settings": 2, + "http_should_keep_alive": 2, + "*http_method_str": 1, + "m": 8, + "*http_errno_name": 1, + "*http_errno_description": 1, + "http_parser_parse_url": 2, + "*buf": 10, + "buflen": 3, + "is_connect": 4, + "*u": 2, + "http_parser_pause": 2, + "paused": 3, + "COMMIT_H": 2, + "commit_list": 35, + "commit": 59, + "*item": 10, + "*next": 6, + "*util": 1, + "indegree": 1, + "date": 5, + "*parents": 4, + "tree": 3, + "*tree": 3, + "*buffer": 6, + "save_commit_buffer": 3, + "*commit_type": 2, + "decoration": 1, + "name_decoration": 3, + "*lookup_commit": 2, + "*sha1": 16, + "*lookup_commit_reference": 2, + "*lookup_commit_reference_gently": 2, + "quiet": 5, + "*lookup_commit_reference_by_name": 2, + "*name": 12, + "*lookup_commit_or_die": 2, + "*ref_name": 2, + "parse_commit_buffer": 3, + "size": 120, + "parse_commit": 3, + "find_commit_subject": 2, + "*commit_buffer": 2, + "**subject": 2, + "*commit_list_insert": 1, + "**list": 5, + "**commit_list_append": 2, + "*commit": 10, + "**next": 2, + "commit_list_count": 1, + "*l": 1, + "*commit_list_insert_by_date": 1, + "commit_list_sort_by_date": 2, + "free_commit_list": 1, + "*list": 2, + "cmit_fmt": 3, + "CMIT_FMT_RAW": 1, + "CMIT_FMT_MEDIUM": 2, + "CMIT_FMT_DEFAULT": 1, + "CMIT_FMT_SHORT": 1, + "CMIT_FMT_FULL": 1, + "CMIT_FMT_FULLER": 1, + "CMIT_FMT_ONELINE": 1, + "CMIT_FMT_EMAIL": 1, + "CMIT_FMT_USERFORMAT": 1, + "CMIT_FMT_UNSPECIFIED": 1, + "pretty_print_context": 6, + "fmt": 4, + "abbrev": 1, + "*subject": 1, + "*after_subject": 1, + "preserve_subject": 1, + "date_mode": 2, + "date_mode_explicit": 1, + "need_8bit_cte": 2, + "show_notes": 1, + "reflog_walk_info": 1, + "*reflog_info": 1, + "*output_encoding": 2, + "userformat_want": 2, + "notes": 1, + "has_non_ascii": 1, + "*text": 1, + "rev_info": 2, + "*logmsg_reencode": 1, + "*reencode_commit_message": 1, + "**encoding_p": 1, + "get_commit_format": 1, + "*arg": 1, + "*format_subject": 1, + "strbuf": 12, + "*sb": 7, + "*line_separator": 1, + "userformat_find_requirements": 1, + "*fmt": 2, + "*w": 2, + "format_commit_message": 1, + "*format": 2, + "*context": 1, + "pretty_print_commit": 1, + "*pp": 4, + "pp_commit_easy": 1, + "pp_user_info": 1, + "*what": 1, + "*line": 1, + "*encoding": 2, + "pp_title_line": 1, + "**msg_p": 2, + "pp_remainder": 1, + "indent": 1, + "*pop_most_recent_commit": 1, + "mark": 3, + "*pop_commit": 1, + "**stack": 1, + "clear_commit_marks": 1, + "clear_commit_marks_for_object_array": 1, + "object_array": 2, + "*a": 9, + "sort_in_topological_order": 1, + "**": 6, + "list": 1, + "lifo": 1, + "commit_graft": 13, + "sha1": 20, + "nr_parent": 3, + "parent": 7, + "FLEX_ARRAY": 1, + "*read_graft_line": 1, + "register_commit_graft": 2, + "*lookup_commit_graft": 1, + "*get_merge_bases": 1, + "*rev1": 1, + "*rev2": 1, + "cleanup": 12, + "*get_merge_bases_many": 1, + "*one": 1, + "**twos": 1, + "*get_octopus_merge_bases": 1, + "*in": 1, + "register_shallow": 1, + "unregister_shallow": 1, + "for_each_commit_graft": 1, + "each_commit_graft_fn": 1, + "is_repository_shallow": 1, + "*get_shallow_commits": 1, + "*heads": 2, + "depth": 2, + "shallow_flag": 1, + "not_shallow_flag": 1, + "is_descendant_of": 1, + "in_merge_bases": 1, + "interactive_add": 1, + "argc": 26, + "**argv": 6, + "*prefix": 7, + "patch": 1, + "run_add_interactive": 1, + "*revision": 1, + "*patch_mode": 1, + "**pathspec": 1, + "single_parent": 1, + "parents": 4, + "next": 8, + "*reduce_heads": 1, + "commit_extra_header": 7, + "*key": 5, + "*value": 5, + "append_merge_tag_headers": 1, + "***tail": 1, + "commit_tree": 1, + "*ret": 20, + "*author": 2, + "*sign_commit": 2, + "commit_tree_extended": 1, + "*read_commit_extra_headers": 1, + "*read_commit_extra_header_lines": 1, + "free_commit_extra_headers": 1, + "*extra": 1, + "merge_remote_desc": 3, + "*obj": 9, + "merge_remote_util": 1, + "util": 3, + "*get_merge_parent": 1, + "parse_signed_commit": 1, + "*message": 1, + "*signature": 1, + "git_usage_string": 2, + "git_more_info_string": 2, + "N_": 1, + "startup_info": 3, + "git_startup_info": 2, + "use_pager": 8, + "pager_config": 3, + "*cmd": 5, + "want": 3, + "pager_command_config": 2, + "prefixcmp": 3, + "var": 7, + "strcmp": 20, + "c": 252, + "cmd": 46, + "b": 66, + "git_config_maybe_bool": 1, + "value": 9, + "xstrdup": 2, + "check_pager_config": 3, + "c.cmd": 1, + "c.want": 2, + "c.value": 3, + "git_config": 3, + "pager_program": 1, + "commit_pager_choice": 4, + "setenv": 1, + "setup_pager": 1, + "handle_options": 2, + "***argv": 2, + "*argc": 1, + "*envchanged": 1, + "**orig_argv": 1, + "*argv": 6, + "new_argv": 7, + "option_count": 1, + "count": 17, + "die": 5, + "alias_command": 4, + "trace_argv_printf": 3, + "xrealloc": 2, + "*argcp": 4, + "memcpy": 35, + "subdir": 3, + "die_errno": 3, + "saved_errno": 1, + "git_version_string": 1, + "GIT_VERSION": 1, + "RUN_SETUP": 81, + "RUN_SETUP_GENTLY": 16, + "USE_PAGER": 3, + "NEED_WORK_TREE": 18, + "cmd_struct": 4, + "option": 9, + "run_builtin": 2, + "help": 4, + "stat": 3, + "st": 2, + "prefix": 34, + "argv": 54, + "setup_git_directory": 1, + "nongit_ok": 2, + "setup_git_directory_gently": 1, + "have_repository": 1, + "trace_repo_setup": 1, + "setup_work_tree": 1, + "fn": 5, + "fstat": 1, + "fileno": 1, + "stdout": 5, + "S_ISFIFO": 1, + "st.st_mode": 2, + "S_ISSOCK": 1, + "fflush": 2, + "ferror": 2, + "fclose": 5, + "handle_internal_command": 3, + "commands": 3, + "cmd_add": 2, + "cmd_annotate": 1, + "cmd_apply": 1, + "cmd_archive": 1, + "cmd_bisect__helper": 1, + "cmd_blame": 2, + "cmd_branch": 1, + "cmd_bundle": 1, + "cmd_cat_file": 1, + "cmd_check_attr": 1, + "cmd_check_ref_format": 1, + "cmd_checkout": 1, + "cmd_checkout_index": 1, + "cmd_cherry": 1, + "cmd_cherry_pick": 1, + "cmd_clean": 1, + "cmd_clone": 1, + "cmd_column": 1, + "cmd_commit": 1, + "cmd_commit_tree": 1, + "cmd_config": 1, + "cmd_count_objects": 1, + "cmd_describe": 1, + "cmd_diff": 1, + "cmd_diff_files": 1, + "cmd_diff_index": 1, + "cmd_diff_tree": 1, + "cmd_fast_export": 1, + "cmd_fetch": 1, + "cmd_fetch_pack": 1, + "cmd_fmt_merge_msg": 1, + "cmd_for_each_ref": 1, + "cmd_format_patch": 1, + "cmd_fsck": 2, + "cmd_gc": 1, + "cmd_get_tar_commit_id": 1, + "cmd_grep": 1, + "cmd_hash_object": 1, + "cmd_help": 1, + "cmd_index_pack": 1, + "cmd_init_db": 2, + "cmd_log": 1, + "cmd_ls_files": 1, + "cmd_ls_remote": 2, + "cmd_ls_tree": 1, + "cmd_mailinfo": 1, + "cmd_mailsplit": 1, + "cmd_merge": 1, + "cmd_merge_base": 1, + "cmd_merge_file": 1, + "cmd_merge_index": 1, + "cmd_merge_ours": 1, + "cmd_merge_recursive": 4, + "cmd_merge_tree": 1, + "cmd_mktag": 1, + "cmd_mktree": 1, + "cmd_mv": 1, + "cmd_name_rev": 1, + "cmd_notes": 1, + "cmd_pack_objects": 1, + "cmd_pack_redundant": 1, + "cmd_pack_refs": 1, + "cmd_patch_id": 1, + "cmd_prune": 1, + "cmd_prune_packed": 1, + "cmd_push": 1, + "cmd_read_tree": 1, + "cmd_receive_pack": 1, + "cmd_reflog": 1, + "cmd_remote": 1, + "cmd_remote_ext": 1, + "cmd_remote_fd": 1, + "cmd_replace": 1, + "cmd_repo_config": 1, + "cmd_rerere": 1, + "cmd_reset": 1, + "cmd_rev_list": 1, + "cmd_rev_parse": 1, + "cmd_revert": 1, + "cmd_rm": 1, + "cmd_send_pack": 1, + "cmd_shortlog": 1, + "cmd_show": 1, + "cmd_show_branch": 1, + "cmd_show_ref": 1, + "cmd_status": 1, + "cmd_stripspace": 1, + "cmd_symbolic_ref": 1, + "cmd_tag": 1, + "cmd_tar_tree": 1, + "cmd_unpack_file": 1, + "cmd_unpack_objects": 1, + "cmd_update_index": 1, + "cmd_update_ref": 1, + "cmd_update_server_info": 1, + "cmd_upload_archive": 1, + "cmd_upload_archive_writer": 1, + "cmd_var": 1, + "cmd_verify_pack": 1, + "cmd_verify_tag": 1, + "cmd_version": 1, + "cmd_whatchanged": 1, + "cmd_write_tree": 1, + "ext": 4, + "STRIP_EXTENSION": 1, + "strlen": 17, + "*argv0": 1, + "argv0": 2, + "ARRAY_SIZE": 1, + "exit": 20, + "execv_dashed_external": 2, + "STRBUF_INIT": 1, + "*tmp": 1, + "strbuf_addf": 1, + "tmp": 6, + "cmd.buf": 1, + "run_command_v_opt": 1, + "RUN_SILENT_EXEC_FAILURE": 1, + "RUN_CLEAN_ON_EXIT": 1, + "ENOENT": 3, + "strbuf_release": 1, + "run_argv": 2, + "done_alias": 4, + "argcp": 2, + "handle_alias": 1, + "git_extract_argv0_path": 1, + "git_setup_gettext": 1, + "list_common_cmds_help": 1, + "setup_path": 1, + "done_help": 3, + "was_alias": 3, + "fprintf": 18, + "stderr": 15, + "help_unknown_cmd": 1, + "strerror": 4, + "HELLO_H": 2, + "hello": 1, + "*check_commit": 1, + "obj": 48, + "OBJ_COMMIT": 5, + "sha1_to_hex": 8, + "typename": 2, + "deref_tag": 1, + "parse_object": 1, + "check_commit": 2, + "lookup_commit_reference_gently": 1, + "lookup_commit_reference": 2, + "_": 3, + "ref_name": 2, + "hashcmp": 2, + "object.sha1": 8, + "warning": 1, + "lookup_object": 2, + "create_object": 2, + "alloc_commit_node": 1, + "get_sha1": 1, + "parse_commit_date": 2, + "*tail": 2, + "*dateptr": 1, + "buf": 57, + "tail": 12, + "memcmp": 6, + "dateptr": 2, + "strtoul": 2, + "**commit_graft": 1, + "commit_graft_alloc": 4, + "commit_graft_nr": 5, + "commit_graft_pos": 2, + "lo": 6, + "hi": 5, + "mi": 5, + "/": 9, + "*graft": 3, + "cmp": 9, + "graft": 10, + "ignore_dups": 2, + "pos": 7, + "alloc_nr": 1, + "buffer": 10, + "*bufptr": 1, + "**pptr": 1, + "item": 24, + "object.parsed": 4, + "<=>": 16, + "bufptr": 12, + "46": 1, + "5": 1, + "45": 1, + "bogus": 1, + "get_sha1_hex": 2, + "lookup_tree": 1, + "pptr": 5, + "lookup_commit_graft": 1, + "*new_parent": 2, + "48": 1, + "7": 1, + "47": 1, + "bad": 1, + "in": 11, + "grafts_replace_parents": 1, + "new_parent": 6, + "lookup_commit": 2, + "commit_list_insert": 2, + "object_type": 1, + "read_sha1_file": 1, + "*eol": 1, + "commit_buffer": 1, + "a": 80, + "b_date": 3, + "a_date": 2, + "*commit_list_get_next": 1, + "commit_list_set_next": 1, + "llist_mergesort": 1, + "peel_to_type": 1, + "*desc": 1, + "desc": 5, + "xmalloc": 2, + "strdup": 1, + "*new": 1, + "new": 4, + "*diff_prefix_from_pathspec": 1, + "git_strarray": 2, + "*pathspec": 2, + "git_buf": 3, + "GIT_BUF_INIT": 3, + "*scan": 2, + "git_buf_common_prefix": 1, + "pathspec": 15, + "scan": 4, + "prefix.ptr": 2, + "git__iswildcard": 1, + "git_buf_truncate": 1, + "prefix.size": 1, + "git_buf_detach": 1, + "git_buf_free": 4, + "diff_pathspec_is_interesting": 2, + "*str": 1, + "false": 77, + "true": 73, + "str": 162, + "strings": 5, + "diff_path_matches_pathspec": 3, + "git_diff_list": 17, + "*diff": 8, + "*path": 2, + "git_attr_fnmatch": 4, + "*match": 3, + "diff": 93, + "pathspec.length": 1, + "git_vector_foreach": 4, + "match": 16, + "result": 48, + "p_fnmatch": 1, + "pattern": 3, + "path": 20, + "FNM_NOMATCH": 1, + "GIT_ATTR_FNMATCH_HASWILD": 1, + "strncmp": 1, + "length": 58, + "GIT_ATTR_FNMATCH_NEGATIVE": 1, + "git_diff_delta": 19, + "*diff_delta__alloc": 1, + "git_delta_t": 5, + "*delta": 6, + "git__calloc": 3, + "delta": 54, + "old_file.path": 12, + "git_pool_strdup": 3, + "pool": 12, + "git__free": 15, + "new_file.path": 6, + "opts.flags": 8, + "GIT_DIFF_REVERSE": 3, + "GIT_DELTA_ADDED": 4, + "GIT_DELTA_DELETED": 7, + "*diff_delta__dup": 1, + "*d": 1, + "git_pool": 4, + "*pool": 3, + "git__malloc": 3, + "d": 16, + "fail": 19, + "*diff_delta__merge_like_cgit": 1, + "*b": 6, + "*dup": 1, + "diff_delta__dup": 3, + "dup": 15, + "git_oid_cmp": 6, + "new_file.oid": 7, + "git_oid_cpy": 5, + "new_file.mode": 4, + "new_file.size": 3, + "new_file.flags": 4, + "old_file.oid": 3, + "GIT_DELTA_UNTRACKED": 5, + "GIT_DELTA_IGNORED": 5, + "GIT_DELTA_UNMODIFIED": 11, + "diff_delta__from_one": 5, + "git_index_entry": 8, + "*entry": 2, + "GIT_DIFF_INCLUDE_IGNORED": 1, + "GIT_DIFF_INCLUDE_UNTRACKED": 1, + "entry": 17, + "diff_delta__alloc": 2, + "GITERR_CHECK_ALLOC": 3, + "GIT_DELTA_MODIFIED": 3, + "old_file.mode": 2, + "old_file.size": 1, + "file_size": 6, + "oid": 17, + "old_file.flags": 2, + "GIT_DIFF_FILE_VALID_OID": 4, + "git_vector_insert": 4, + "deltas": 8, + "diff_delta__from_two": 2, + "*old_entry": 1, + "*new_entry": 1, + "git_oid": 7, + "*new_oid": 1, + "GIT_DIFF_INCLUDE_UNMODIFIED": 1, + "*temp": 1, + "old_entry": 5, + "new_entry": 5, + "temp": 11, + "new_oid": 3, + "git_oid_iszero": 2, + "*diff_strdup_prefix": 1, + "git_pool_strcat": 1, + "git_pool_strndup": 1, + "diff_delta__cmp": 3, + "*da": 1, + "*db": 3, + "da": 2, + "db": 10, + "config_bool": 5, + "*cfg": 2, + "defvalue": 2, + "git_config_get_bool": 1, + "cfg": 6, + "giterr_clear": 1, + "*git_diff_list_alloc": 1, + "git_repository": 7, + "*repo": 7, + "git_diff_options": 7, + "*opts": 6, + "repo": 23, + "git_vector_init": 3, + "git_pool_init": 2, + "git_repository_config__weakptr": 1, + "diffcaps": 13, + "GIT_DIFFCAPS_HAS_SYMLINKS": 2, + "GIT_DIFFCAPS_ASSUME_UNCHANGED": 2, + "GIT_DIFFCAPS_TRUST_EXEC_BIT": 2, + "GIT_DIFFCAPS_TRUST_CTIME": 2, + "opts": 24, + "memset": 4, + "opts.pathspec": 2, + "opts.old_prefix": 4, + "diff_strdup_prefix": 2, + "old_prefix": 2, + "DIFF_OLD_PREFIX_DEFAULT": 1, + "opts.new_prefix": 4, + "new_prefix": 2, + "DIFF_NEW_PREFIX_DEFAULT": 1, + "*swap": 1, + "swap": 9, + "pathspec.count": 2, + "*pattern": 1, + "pathspec.strings": 1, + "GIT_ATTR_FNMATCH_ALLOWSPACE": 1, + "git_attr_fnmatch__parse": 1, + "GIT_ENOTFOUND": 1, + "git_diff_list_free": 3, + "deltas.contents": 1, + "git_vector_free": 3, + "pathspec.contents": 1, + "git_pool_clear": 2, + "oid_for_workdir_item": 2, + "*oid": 2, + "full_path": 3, + "git_buf_joinpath": 1, + "git_repository_workdir": 1, + "S_ISLNK": 2, + "git_odb__hashlink": 1, + "full_path.ptr": 2, + "git__is_sizet": 1, + "giterr_set": 1, + "GITERR_OS": 1, + "git_futils_open_ro": 1, + "git_odb__hashfd": 1, + "GIT_OBJ_BLOB": 1, + "p_close": 1, + "EXEC_BIT_MASK": 3, + "maybe_modified": 2, + "git_iterator": 8, + "*old_iter": 2, + "*oitem": 2, + "*new_iter": 2, + "*nitem": 2, + "noid": 4, + "*use_noid": 1, + "omode": 8, + "oitem": 29, + "nmode": 10, + "nitem": 32, + "GIT_UNUSED": 1, + "old_iter": 8, + "S_ISREG": 1, + "GIT_MODE_TYPE": 3, + "GIT_MODE_PERMS_MASK": 1, + "flags_extended": 2, + "GIT_IDXENTRY_INTENT_TO_ADD": 1, + "GIT_IDXENTRY_SKIP_WORKTREE": 1, + "new_iter": 13, + "GIT_ITERATOR_WORKDIR": 2, + "ctime.seconds": 2, + "mtime.seconds": 2, + "GIT_DIFFCAPS_USE_DEV": 1, + "dev": 2, + "ino": 2, + "uid": 2, + "gid": 2, + "S_ISGITLINK": 1, + "git_submodule": 1, + "*sub": 1, + "GIT_DIFF_IGNORE_SUBMODULES": 1, + "git_submodule_lookup": 1, + "sub": 12, + "ignore": 1, + "GIT_SUBMODULE_IGNORE_ALL": 1, + "use_noid": 2, + "diff_from_iterators": 5, + "**diff_ptr": 1, + "ignore_prefix": 6, + "git_diff_list_alloc": 1, + "old_src": 1, + "new_src": 3, + "git_iterator_current": 2, + "git_iterator_advance": 5, + "delta_type": 8, + "git_buf_len": 1, + "git__prefixcmp": 2, + "git_buf_cstr": 1, + "S_ISDIR": 1, + "GIT_DIFF_RECURSE_UNTRACKED_DIRS": 1, + "git_iterator_current_is_ignored": 2, + "git_buf_sets": 1, + "git_iterator_advance_into_directory": 1, + "git_iterator_free": 4, + "*diff_ptr": 2, + "git_diff_tree_to_tree": 1, + "git_tree": 4, + "*old_tree": 3, + "*new_tree": 1, + "**diff": 4, + "diff_prefix_from_pathspec": 4, + "old_tree": 5, + "new_tree": 2, + "git_iterator_for_tree_range": 4, + "git_diff_index_to_tree": 1, + "git_iterator_for_index_range": 2, + "git_diff_workdir_to_index": 1, + "git_iterator_for_workdir_range": 2, + "git_diff_workdir_to_tree": 1, + "git_diff_merge": 1, + "*onto": 1, + "*from": 1, + "onto_pool": 7, + "git_vector": 1, + "onto_new": 6, + "onto": 7, + "deltas.length": 4, + "*o": 8, + "GIT_VECTOR_GET": 2, + "*f": 2, + "o": 80, + "diff_delta__merge_like_cgit": 1, + "git_vector_swap": 1, + "git_pool_swap": 1, + "REFU_USTRING_H": 2, + "": 1, + "RF_MODULE_STRINGS//": 1, + "check": 8, + "the": 91, + "are": 6, + "included": 2, + "as": 4, + "module": 3, + "": 1, + "argument": 1, + "": 2, + "local": 5, + "memory": 4, + "function": 6, + "wrapping": 1, + "functionality": 1, + "": 1, + "unicode": 2, + "RF_CASE_IGNORE": 2, + "RF_MATCH_WORD": 5, + "RF_STRING_INDEX_OUT_OF_BOUNDS": 2, + "xFF0FFFF": 1, + "rfUTF8_IsContinuationByte2": 1, + "b__": 3, + "0xBF": 1, + "pragma": 1, + "pack": 2, + "push": 1, + "1": 2, + "internal": 4, + "author": 1, + "Lefteris": 1, + "09": 1, + "12": 1, + "2010": 1, + "endinternal": 1, + "brief": 1, + "A": 11, + "String": 11, + "with": 9, + "UTF": 17, + "8": 15, + "representation": 2, + "The": 1, + "Refu": 2, + "is": 17, + "Unicode": 1, + "that": 9, + "has": 2, + "two": 1, + "versions": 1, + "One": 1, + "this": 5, + "other": 16, + "ref": 1, + "RF_StringX": 2, + "to": 37, + "see": 2, + "what": 1, + "operations": 1, + "can": 2, + "be": 6, + "performed": 1, + "on": 4, + "extended": 3, + "Strings": 2, + "Functions": 1, + "convert": 1, + "all": 2, + "encoding": 14, + "exists": 6, + "but": 1, + "always": 2, + "at": 3, + "Once": 1, + "been": 1, + "created": 1, + "it": 12, + "assumed": 1, + "of": 44, + "bytes": 225, + "inside": 2, + "valid": 1, + "since": 5, + "every": 1, + "performs": 1, + "unless": 1, + "otherwise": 1, + "specified": 1, + "All": 1, + "functions": 2, + "which": 1, + "have": 2, + "isinherited": 1, + "StringX": 2, + "their": 1, + "description": 1, + "used": 10, + "safely": 1, + "no": 4, + "specific": 1, + "version": 4, + "or": 1, + "needs": 1, + "exist": 2, + "manipulate": 1, + "Extended": 1, + "To": 1, + "make": 3, + "documentation": 1, + "even": 1, + "clearer": 1, + "should": 2, + "not": 6, + "marked": 1, + "notinherited": 1, + "cppcode": 1, + "constructor": 1, + "i_StringCHandle": 1, + "rfString_Create": 4, + "@endcpp": 1, + "@endinternal": 1, + "*/": 1, + "RF_String": 27, + "#pragma": 1, + "pop": 1, + "RF_String*": 222, + "RFS_": 8, + "...": 127, + "i_rfString_CreateLocal": 2, + "__VA_ARGS__": 66, + "RF_OPTION_DEFAULT_ARGUMENTS": 24, + "i_rfString_Create": 3, + "i_NVrfString_Create": 3, + "RP_SELECT_FUNC_IF_NARGIS": 5, + "i_SELECT_RF_STRING_CREATE": 1, + "i_SELECT_RF_STRING_CREATE1": 1, + "i_SELECT_RF_STRING_CREATE0": 1, + "///Internal": 1, + "creates": 1, + "temporary": 4, + "i_rfString_CreateLocal1": 3, + "i_NVrfString_CreateLocal": 3, + "i_SELECT_RF_STRING_CREATELOCAL": 1, + "i_SELECT_RF_STRING_CREATELOCAL1": 1, + "i_SELECT_RF_STRING_CREATELOCAL0": 1, + "rfString_Init": 3, + "i_rfString_Init": 3, + "i_NVrfString_Init": 3, + "i_SELECT_RF_STRING_INIT": 1, + "i_SELECT_RF_STRING_INIT1": 1, + "i_SELECT_RF_STRING_INIT0": 1, + "rfString_Create_cp": 2, + "code": 6, + "rfString_Init_cp": 3, + "rfString_Create_nc": 3, + "i_rfString_Create_nc": 3, + "i_NVrfString_Create_nc": 3, + "i_SELECT_RF_STRING_CREATE_NC": 1, + "i_SELECT_RF_STRING_CREATE_NC1": 1, + "i_SELECT_RF_STRING_CREATE_NC0": 1, + "rfString_Init_nc": 4, + "i_rfString_Init_nc": 3, + "i_NVrfString_Init_nc": 3, + "i_SELECT_RF_STRING_INIT_NC": 1, + "i_SELECT_RF_STRING_INIT_NC1": 1, + "i_SELECT_RF_STRING_INIT_NC0": 1, + "rfString_Create_i": 2, + "rfString_Init_i": 2, + "rfString_Create_f": 2, + "float": 26, + "rfString_Init_f": 2, + "rfString_Create_UTF16": 2, + "endianess": 40, + "rfString_Init_UTF16": 3, + "rfString_Create_UTF32": 2, + "rfString_Init_UTF32": 3, + "//@": 1, + "rfString_Assign": 2, + "dest": 7, + "source": 8, + "i_rfString_Assign": 3, + "i_DESTINATION_": 2, + "i_SOURCE_": 2, + "rfString_Assign_char": 2, + "thisstr": 210, + "character": 11, + "rfString_Destroy": 2, + "rfString_Deinit": 3, + "rfString_ToUTF8": 2, + "i_STRING_": 2, + "rfString_ToCstr": 2, + "uint16_t*": 11, + "rfString_ToUTF16": 4, + "rfString_ToUTF32": 4, + "uint32_t*length": 1, + "iteration": 6, + "rfString_Iterate_Start": 6, + "string_": 9, + "startCharacterPos_": 4, + "characterUnicodeValue_": 4, + "byteIndex_": 12, + "j_": 6, + "rfUTF8_IsContinuationByte": 12, + "rfString_BytePosToCodePoint": 7, + "rfString_Iterate_End": 4, + "//Two": 1, + "macros": 1, + "accomplish": 1, + "an": 2, + "any": 3, + "given": 5, + "going": 1, + "backwards.": 1, + "This": 1, + "macro": 2, + "its": 1, + "pair.": 1, + "rfString_IterateB_Start": 1, + "characterPos_": 5, + "b_index_": 6, + "c_index_": 3, + "rfString_IterateB_End": 1, + "rfString_Length": 5, + "rfString_GetChar": 2, + "bytepos": 12, + "rfString_BytePosToCharPos": 4, + "before": 4, + "rfString_Equal": 4, + "s1": 6, + "s2": 6, + "i_rfString_Equal": 3, + "i_STRING1_": 2, + "i_STRING2_": 2, + "i_rfLMSX_WRAP2": 4, + "rfString_Find": 3, + "sstr": 39, + "i_rfString_Find": 5, + "i_THISSTR_": 60, + "i_SEARCHSTR_": 26, + "i_OPTIONS_": 28, + "i_rfLMS_WRAP3": 4, + "i_RFI8_": 54, + "RF_SELECT_FUNC_IF_NARGGT": 10, + "i_NPSELECT_RF_STRING_FIND": 1, + "i_NPSELECT_RF_STRING_FIND1": 1, + "RF_COMPILE_ERROR": 33, + "i_NPSELECT_RF_STRING_FIND0": 1, + "RF_SELECT_FUNC": 10, + "i_SELECT_RF_STRING_FIND": 1, + "i_SELECT_RF_STRING_FIND2": 1, + "i_SELECT_RF_STRING_FIND3": 1, + "i_SELECT_RF_STRING_FIND1": 1, + "i_SELECT_RF_STRING_FIND0": 1, + "rfString_ToInt": 1, + "int32_t*": 1, + "rfString_ToDouble": 1, + "double*": 1, + "rfString_Copy_OUT": 2, + "rfString_Copy_IN": 2, + "dst": 15, + "rfString_Copy_chars": 2, + "rfString_ScanfAfter": 2, + "afterstr": 5, + "format": 4, + "i_rfString_ScanfAfter": 3, + "i_AFTERSTR_": 8, + "i_FORMAT_": 2, + "i_VAR_": 2, + "i_rfLMSX_WRAP4": 11, + "rfString_Count": 4, + "i_rfString_Count": 5, + "i_NPSELECT_RF_STRING_COUNT": 1, + "i_NPSELECT_RF_STRING_COUNT1": 1, + "i_NPSELECT_RF_STRING_COUNT0": 1, + "i_SELECT_RF_STRING_COUNT": 1, + "i_SELECT_RF_STRING_COUNT2": 1, + "i_rfLMSX_WRAP3": 5, + "i_SELECT_RF_STRING_COUNT3": 1, + "i_SELECT_RF_STRING_COUNT1": 1, + "i_SELECT_RF_STRING_COUNT0": 1, + "rfString_Tokenize": 2, + "sep": 3, + "tokensN": 2, + "RF_String**": 2, + "tokens": 5, + "rfString_Between": 3, + "lstr": 6, + "rstr": 24, + "i_rfString_Between": 4, + "i_NPSELECT_RF_STRING_BETWEEN": 1, + "i_NPSELECT_RF_STRING_BETWEEN1": 1, + "i_NPSELECT_RF_STRING_BETWEEN0": 1, + "i_SELECT_RF_STRING_BETWEEN": 1, + "i_SELECT_RF_STRING_BETWEEN4": 1, + "i_LEFTSTR_": 6, + "i_RIGHTSTR_": 6, + "i_RESULT_": 12, + "i_rfLMSX_WRAP5": 9, + "i_SELECT_RF_STRING_BETWEEN5": 1, + "i_SELECT_RF_STRING_BETWEEN3": 1, + "i_SELECT_RF_STRING_BETWEEN2": 1, + "i_SELECT_RF_STRING_BETWEEN1": 1, + "i_SELECT_RF_STRING_BETWEEN0": 1, + "rfString_Beforev": 4, + "parN": 10, + "i_rfString_Beforev": 16, + "i_NPSELECT_RF_STRING_BEFOREV": 1, + "i_NPSELECT_RF_STRING_BEFOREV1": 1, + "RF_SELECT_FUNC_IF_NARGGT2": 2, + "i_LIMSELECT_RF_STRING_BEFOREV": 1, + "i_NPSELECT_RF_STRING_BEFOREV0": 1, + "i_LIMSELECT_RF_STRING_BEFOREV1": 1, + "i_LIMSELECT_RF_STRING_BEFOREV0": 1, + "i_SELECT_RF_STRING_BEFOREV": 1, + "i_SELECT_RF_STRING_BEFOREV5": 1, + "i_ARG1_": 56, + "i_ARG2_": 56, + "i_ARG3_": 56, + "i_ARG4_": 56, + "i_RFUI8_": 28, + "i_SELECT_RF_STRING_BEFOREV6": 1, + "i_rfLMSX_WRAP6": 2, + "i_SELECT_RF_STRING_BEFOREV7": 1, + "i_rfLMSX_WRAP7": 2, + "i_SELECT_RF_STRING_BEFOREV8": 1, + "i_rfLMSX_WRAP8": 2, + "i_SELECT_RF_STRING_BEFOREV9": 1, + "i_rfLMSX_WRAP9": 2, + "i_SELECT_RF_STRING_BEFOREV10": 1, + "i_rfLMSX_WRAP10": 2, + "i_SELECT_RF_STRING_BEFOREV11": 1, + "i_rfLMSX_WRAP11": 2, + "i_SELECT_RF_STRING_BEFOREV12": 1, + "i_rfLMSX_WRAP12": 2, + "i_SELECT_RF_STRING_BEFOREV13": 1, + "i_rfLMSX_WRAP13": 2, + "i_SELECT_RF_STRING_BEFOREV14": 1, + "i_rfLMSX_WRAP14": 2, + "i_SELECT_RF_STRING_BEFOREV15": 1, + "i_rfLMSX_WRAP15": 2, + "i_SELECT_RF_STRING_BEFOREV16": 1, + "i_rfLMSX_WRAP16": 2, + "i_SELECT_RF_STRING_BEFOREV17": 1, + "i_rfLMSX_WRAP17": 2, + "i_SELECT_RF_STRING_BEFOREV18": 1, + "i_rfLMSX_WRAP18": 2, + "rfString_Before": 3, + "i_rfString_Before": 5, + "i_NPSELECT_RF_STRING_BEFORE": 1, + "i_NPSELECT_RF_STRING_BEFORE1": 1, + "i_NPSELECT_RF_STRING_BEFORE0": 1, + "i_SELECT_RF_STRING_BEFORE": 1, + "i_SELECT_RF_STRING_BEFORE3": 1, + "i_SELECT_RF_STRING_BEFORE4": 1, + "i_SELECT_RF_STRING_BEFORE2": 1, + "i_SELECT_RF_STRING_BEFORE1": 1, + "i_SELECT_RF_STRING_BEFORE0": 1, + "rfString_After": 4, + "after": 6, + "i_rfString_After": 5, + "i_NPSELECT_RF_STRING_AFTER": 1, + "i_NPSELECT_RF_STRING_AFTER1": 1, + "i_NPSELECT_RF_STRING_AFTER0": 1, + "i_SELECT_RF_STRING_AFTER": 1, + "i_SELECT_RF_STRING_AFTER3": 1, + "i_OUTSTR_": 6, + "i_SELECT_RF_STRING_AFTER4": 1, + "i_SELECT_RF_STRING_AFTER2": 1, + "i_SELECT_RF_STRING_AFTER1": 1, + "i_SELECT_RF_STRING_AFTER0": 1, + "rfString_Afterv": 4, + "i_rfString_Afterv": 16, + "i_NPSELECT_RF_STRING_AFTERV": 1, + "i_NPSELECT_RF_STRING_AFTERV1": 1, + "i_LIMSELECT_RF_STRING_AFTERV": 1, + "i_NPSELECT_RF_STRING_AFTERV0": 1, + "i_LIMSELECT_RF_STRING_AFTERV1": 1, + "i_LIMSELECT_RF_STRING_AFTERV0": 1, + "i_SELECT_RF_STRING_AFTERV": 1, + "i_SELECT_RF_STRING_AFTERV5": 1, + "i_SELECT_RF_STRING_AFTERV6": 1, + "i_SELECT_RF_STRING_AFTERV7": 1, + "i_SELECT_RF_STRING_AFTERV8": 1, + "i_SELECT_RF_STRING_AFTERV9": 1, + "i_SELECT_RF_STRING_AFTERV10": 1, + "i_SELECT_RF_STRING_AFTERV11": 1, + "i_SELECT_RF_STRING_AFTERV12": 1, + "i_SELECT_RF_STRING_AFTERV13": 1, + "i_SELECT_RF_STRING_AFTERV14": 1, + "i_SELECT_RF_STRING_AFTERV15": 1, + "i_SELECT_RF_STRING_AFTERV16": 1, + "i_SELECT_RF_STRING_AFTERV17": 1, + "i_SELECT_RF_STRING_AFTERV18": 1, + "rfString_Append": 5, + "i_rfString_Append": 3, + "i_OTHERSTR_": 4, + "rfString_Append_i": 2, + "rfString_Append_f": 2, + "rfString_Prepend": 2, + "i_rfString_Prepend": 3, + "rfString_Remove": 3, + "number": 19, + "i_rfString_Remove": 6, + "i_NPSELECT_RF_STRING_REMOVE": 1, + "i_NPSELECT_RF_STRING_REMOVE1": 1, + "i_NPSELECT_RF_STRING_REMOVE0": 1, + "i_SELECT_RF_STRING_REMOVE": 1, + "i_SELECT_RF_STRING_REMOVE2": 1, + "i_REPSTR_": 16, + "i_RFUI32_": 8, + "i_SELECT_RF_STRING_REMOVE3": 1, + "i_NUMBER_": 12, + "i_SELECT_RF_STRING_REMOVE4": 1, + "i_SELECT_RF_STRING_REMOVE1": 1, + "i_SELECT_RF_STRING_REMOVE0": 1, + "rfString_KeepOnly": 2, + "keepstr": 5, + "i_rfString_KeepOnly": 3, + "I_KEEPSTR_": 2, + "rfString_PruneStart": 2, + "rfString_PruneEnd": 2, + "rfString_PruneMiddleB": 2, + "rfString_PruneMiddleF": 2, + "rfString_Replace": 3, + "i_rfString_Replace": 6, + "i_NPSELECT_RF_STRING_REPLACE": 1, + "i_NPSELECT_RF_STRING_REPLACE1": 1, + "i_NPSELECT_RF_STRING_REPLACE0": 1, + "i_SELECT_RF_STRING_REPLACE": 1, + "i_SELECT_RF_STRING_REPLACE3": 1, + "i_SELECT_RF_STRING_REPLACE4": 1, + "i_SELECT_RF_STRING_REPLACE5": 1, + "i_SELECT_RF_STRING_REPLACE2": 1, + "i_SELECT_RF_STRING_REPLACE1": 1, + "i_SELECT_RF_STRING_REPLACE0": 1, + "rfString_StripStart": 3, + "i_rfString_StripStart": 3, + "i_SUBSTR_": 6, + "rfString_StripEnd": 3, + "i_rfString_StripEnd": 3, + "rfString_Strip": 2, + "i_rfString_Strip": 3, + "rfString_Create_fUTF8": 2, + "rfString_Init_fUTF8": 3, + "rfString_Assign_fUTF8": 2, + "rfString_Append_fUTF8": 2, + "rfString_Create_fUTF16": 2, + "rfString_Init_fUTF16": 3, + "rfString_Append_fUTF16": 2, + "rfString_Assign_fUTF16": 2, + "rfString_Create_fUTF32": 2, + "rfString_Init_fUTF32": 3, + "rfString_Assign_fUTF32": 2, + "rfString_Append_fUTF32": 2, + "rfString_Fwrite": 2, + "i_rfString_Fwrite": 5, + "i_NPSELECT_RF_STRING_FWRITE": 1, + "i_NPSELECT_RF_STRING_FWRITE1": 1, + "i_NPSELECT_RF_STRING_FWRITE0": 1, + "i_SELECT_RF_STRING_FWRITE": 1, + "i_SELECT_RF_STRING_FWRITE3": 1, + "i_STR_": 8, + "i_ENCODING_": 4, + "i_SELECT_RF_STRING_FWRITE2": 1, + "RF_UTF8": 8, + "i_SELECT_RF_STRING_FWRITE1": 1, + "i_SELECT_RF_STRING_FWRITE0": 1, + "rfString_Fwrite_fUTF8": 1, + "closing": 1, + "include": 6, + "#error": 4, + "Attempted": 1, + "manipulation": 1, + "flag": 1, + "off.": 1, + "Rebuild": 1, + "library": 3, + "added": 1, + "you": 1, + "need": 5, + "them": 3, + "#endif//": 1, + "": 3, + "": 5, + "yajl_status_to_string": 1, + "yajl_status": 4, + "statStr": 6, + "yajl_status_ok": 1, + "yajl_status_client_canceled": 1, + "yajl_status_insufficient_data": 1, + "yajl_status_error": 1, + "yajl_handle": 10, + "yajl_alloc": 1, + "yajl_callbacks": 1, + "callbacks": 3, + "yajl_parser_config": 1, + "config": 4, + "yajl_alloc_funcs": 3, + "afs": 8, + "ctx": 16, + "allowComments": 4, + "validateUTF8": 3, + "hand": 28, + "afsBuffer": 3, + "realloc": 1, + "yajl_set_default_alloc_funcs": 1, + "YA_MALLOC": 1, + "yajl_handle_t": 1, + "alloc": 6, + "checkUTF8": 1, + "lexer": 4, + "yajl_lex_alloc": 1, + "bytesConsumed": 2, + "decodeBuf": 2, + "yajl_buf_alloc": 1, + "yajl_bs_init": 1, + "stateStack": 3, + "yajl_bs_push": 1, + "yajl_state_start": 1, + "yajl_reset_parser": 1, + "yajl_lex_realloc": 1, + "yajl_free": 1, + "yajl_bs_free": 1, + "yajl_buf_free": 1, + "yajl_lex_free": 1, + "YA_FREE": 2, + "yajl_parse": 2, + "jsonText": 4, + "jsonTextLen": 4, + "yajl_do_parse": 1, + "yajl_parse_complete": 1, + "yajl_get_error": 1, + "verbose": 2, + "yajl_render_error_string": 1, + "yajl_get_bytes_consumed": 1, + "yajl_free_error": 1, + "": 3, + "strncasecmp": 2, + "_strnicmp": 1, + "REF_TABLE_SIZE": 1, + "BUFFER_BLOCK": 5, + "BUFFER_SPAN": 9, + "MKD_LI_END": 1, + "gperf_case_strncmp": 1, + "GPERF_DOWNCASE": 1, + "GPERF_CASE_STRNCMP": 1, + "link_ref": 2, + "id": 13, + "*link": 1, + "*title": 1, + "sd_markdown": 6, + "tag": 1, + "tag_len": 3, + "w": 6, + "is_empty": 4, + "htmlblock_end": 3, + "*curtag": 2, + "*rndr": 4, + "start_of_line": 2, + "tag_size": 3, + "curtag": 8, + "end_tag": 4, + "block_lines": 3, + "htmlblock_end_tag": 1, + "rndr": 25, + "parse_htmlblock": 1, + "*ob": 3, + "do_render": 4, + "tag_end": 7, + "work": 4, + "find_block_tag": 1, + "work.size": 5, + "cb.blockhtml": 6, + "ob": 14, + "opaque": 8, + "parse_table_row": 1, + "columns": 3, + "*col_data": 1, + "header_flag": 3, + "col": 9, + "*row_work": 1, + "cb.table_cell": 3, + "cb.table_row": 2, + "row_work": 4, + "rndr_newbuf": 2, + "cell_start": 5, + "cell_end": 6, + "*cell_work": 1, + "cell_work": 3, + "_isspace": 3, + "parse_inline": 1, + "col_data": 2, + "rndr_popbuf": 2, + "empty_cell": 2, + "parse_table_header": 1, + "*columns": 2, + "**column_data": 1, + "header_end": 7, + "under_end": 1, + "*column_data": 1, + "calloc": 1, + "beg": 10, + "doc_size": 6, + "document": 9, + "UTF8_BOM": 1, + "is_ref": 1, + "md": 18, + "refs": 2, + "expand_tabs": 1, + "text": 22, + "bufputc": 2, + "bufgrow": 1, + "MARKDOWN_GROW": 1, + "cb.doc_header": 2, + "parse_block": 1, + "cb.doc_footer": 2, + "bufrelease": 3, + "free_link_refs": 1, + "work_bufs": 8, + ".size": 2, + "sd_markdown_free": 1, + "*md": 1, + ".asize": 2, + ".item": 2, + "stack_free": 2, + "sd_version": 1, + "*ver_major": 2, + "*ver_minor": 2, + "*ver_revision": 2, + "SUNDOWN_VER_MAJOR": 1, + "SUNDOWN_VER_MINOR": 1, + "SUNDOWN_VER_REVISION": 1, + "git_cache_init": 1, + "git_cache": 4, + "*cache": 4, + "git_cached_obj_freeptr": 1, + "free_ptr": 2, + "git__size_t_powerof2": 1, + "cache": 26, + "size_mask": 6, + "lru_count": 1, + "free_obj": 4, + "git_mutex_init": 1, + "nodes": 10, + "git_cached_obj": 5, + "git_cache_free": 1, + "git_cached_obj_decref": 3, + "*git_cache_get": 1, + "hash": 12, + "*node": 2, + "*result": 1, + "git_mutex_lock": 2, + "node": 9, + "git_cached_obj_incref": 3, + "git_mutex_unlock": 2, + "*git_cache_try_store": 1, + "*_entry": 1, + "_entry": 1, + "ATSHOME_LIBATS_DYNARRAY_CATS": 3, + "atslib_dynarray_memcpy": 1, + "atslib_dynarray_memmove": 1, + "memmove": 2, + "ifndef": 2, + "PPC_SHA1": 1, + "git_hash_ctx": 7, + "SHA_CTX": 3, + "*git_hash_new_ctx": 1, + "*ctx": 5, + "SHA1_Init": 4, + "git_hash_free_ctx": 1, + "git_hash_init": 1, + "git_hash_update": 1, + "SHA1_Update": 3, + "git_hash_final": 1, + "*out": 3, + "SHA1_Final": 3, + "git_hash_buf": 1, + "git_hash_vec": 1, + "git_buf_vec": 1, + "*vec": 1, + "vec": 2, + ".data": 1, + ".len": 3, + "BLOB_H": 2, + "*blob_type": 2, + "blob": 6, + "*lookup_blob": 2, + "parse_blob_buffer": 2, + "__wglew_h__": 2, + "__WGLEW_H__": 1, + "__wglext_h_": 2, + "wglext.h": 1, + "wglew.h": 1, + "WINAPI": 119, + "": 1, + "GLEW_STATIC": 1, + "WGL_3DFX_multisample": 2, + "WGL_SAMPLE_BUFFERS_3DFX": 1, + "WGL_SAMPLES_3DFX": 1, + "WGLEW_3DFX_multisample": 1, + "WGLEW_GET_VAR": 49, + "__WGLEW_3DFX_multisample": 2, + "WGL_3DL_stereo_control": 2, + "WGL_STEREO_EMITTER_ENABLE_3DL": 1, + "WGL_STEREO_EMITTER_DISABLE_3DL": 1, + "WGL_STEREO_POLARITY_NORMAL_3DL": 1, + "WGL_STEREO_POLARITY_INVERT_3DL": 1, + "BOOL": 84, + "PFNWGLSETSTEREOEMITTERSTATE3DLPROC": 2, + "HDC": 65, + "hDC": 33, + "UINT": 30, + "uState": 1, + "wglSetStereoEmitterState3DL": 1, + "WGLEW_GET_FUN": 120, + "__wglewSetStereoEmitterState3DL": 2, + "WGLEW_3DL_stereo_control": 1, + "__WGLEW_3DL_stereo_control": 2, + "WGL_AMD_gpu_association": 2, + "WGL_GPU_VENDOR_AMD": 1, + "F00": 1, + "WGL_GPU_RENDERER_STRING_AMD": 1, + "F01": 1, + "WGL_GPU_OPENGL_VERSION_STRING_AMD": 1, + "F02": 1, + "WGL_GPU_FASTEST_TARGET_GPUS_AMD": 1, + "A2": 2, + "WGL_GPU_RAM_AMD": 1, + "A3": 2, + "WGL_GPU_CLOCK_AMD": 1, + "A4": 2, + "WGL_GPU_NUM_PIPES_AMD": 1, + "A5": 3, + "WGL_GPU_NUM_SIMD_AMD": 1, + "A6": 2, + "WGL_GPU_NUM_RB_AMD": 1, + "A7": 2, + "WGL_GPU_NUM_SPI_AMD": 1, + "A8": 2, + "VOID": 6, + "PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC": 2, + "HGLRC": 14, + "dstCtx": 1, + "GLint": 18, + "srcX0": 1, + "srcY0": 1, + "srcX1": 1, + "srcY1": 1, + "dstX0": 1, + "dstY0": 1, + "dstX1": 1, + "dstY1": 1, + "GLbitfield": 1, + "mask": 1, + "GLenum": 8, + "filter": 1, + "PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC": 2, + "PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC": 2, + "hShareContext": 2, + "attribList": 2, + "PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC": 2, + "hglrc": 5, + "PFNWGLGETCONTEXTGPUIDAMDPROC": 2, + "PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC": 2, + "PFNWGLGETGPUIDSAMDPROC": 2, + "maxCount": 1, + "UINT*": 6, + "ids": 1, + "INT": 3, + "PFNWGLGETGPUINFOAMDPROC": 2, + "property": 1, + "dataType": 1, + "PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC": 2, + "wglBlitContextFramebufferAMD": 1, + "__wglewBlitContextFramebufferAMD": 2, + "wglCreateAssociatedContextAMD": 1, + "__wglewCreateAssociatedContextAMD": 2, + "wglCreateAssociatedContextAttribsAMD": 1, + "__wglewCreateAssociatedContextAttribsAMD": 2, + "wglDeleteAssociatedContextAMD": 1, + "__wglewDeleteAssociatedContextAMD": 2, + "wglGetContextGPUIDAMD": 1, + "__wglewGetContextGPUIDAMD": 2, + "wglGetCurrentAssociatedContextAMD": 1, + "__wglewGetCurrentAssociatedContextAMD": 2, + "wglGetGPUIDsAMD": 1, + "__wglewGetGPUIDsAMD": 2, + "wglGetGPUInfoAMD": 1, + "__wglewGetGPUInfoAMD": 2, + "wglMakeAssociatedContextCurrentAMD": 1, + "__wglewMakeAssociatedContextCurrentAMD": 2, + "WGLEW_AMD_gpu_association": 1, + "__WGLEW_AMD_gpu_association": 2, + "WGL_ARB_buffer_region": 2, + "WGL_FRONT_COLOR_BUFFER_BIT_ARB": 1, + "WGL_BACK_COLOR_BUFFER_BIT_ARB": 1, + "WGL_DEPTH_BUFFER_BIT_ARB": 1, + "WGL_STENCIL_BUFFER_BIT_ARB": 1, + "HANDLE": 14, + "PFNWGLCREATEBUFFERREGIONARBPROC": 2, + "iLayerPlane": 5, + "uType": 1, + "PFNWGLDELETEBUFFERREGIONARBPROC": 2, + "hRegion": 3, + "PFNWGLRESTOREBUFFERREGIONARBPROC": 2, + "y": 14, + "width": 3, + "height": 3, + "xSrc": 1, + "ySrc": 1, + "PFNWGLSAVEBUFFERREGIONARBPROC": 2, + "wglCreateBufferRegionARB": 1, + "__wglewCreateBufferRegionARB": 2, + "wglDeleteBufferRegionARB": 1, + "__wglewDeleteBufferRegionARB": 2, + "wglRestoreBufferRegionARB": 1, + "__wglewRestoreBufferRegionARB": 2, + "wglSaveBufferRegionARB": 1, + "__wglewSaveBufferRegionARB": 2, + "WGLEW_ARB_buffer_region": 1, + "__WGLEW_ARB_buffer_region": 2, + "WGL_ARB_create_context": 2, + "WGL_CONTEXT_DEBUG_BIT_ARB": 1, + "WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB": 1, + "WGL_CONTEXT_MAJOR_VERSION_ARB": 1, + "WGL_CONTEXT_MINOR_VERSION_ARB": 1, + "WGL_CONTEXT_LAYER_PLANE_ARB": 1, + "WGL_CONTEXT_FLAGS_ARB": 1, + "ERROR_INVALID_VERSION_ARB": 1, + "ERROR_INVALID_PROFILE_ARB": 1, + "PFNWGLCREATECONTEXTATTRIBSARBPROC": 2, + "wglCreateContextAttribsARB": 1, + "__wglewCreateContextAttribsARB": 2, + "WGLEW_ARB_create_context": 1, + "__WGLEW_ARB_create_context": 2, + "WGL_ARB_create_context_profile": 2, + "WGL_CONTEXT_CORE_PROFILE_BIT_ARB": 1, + "WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB": 1, + "WGL_CONTEXT_PROFILE_MASK_ARB": 1, + "WGLEW_ARB_create_context_profile": 1, + "__WGLEW_ARB_create_context_profile": 2, + "WGL_ARB_create_context_robustness": 2, + "WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB": 1, + "WGL_LOSE_CONTEXT_ON_RESET_ARB": 1, + "WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB": 1, + "WGL_NO_RESET_NOTIFICATION_ARB": 1, + "WGLEW_ARB_create_context_robustness": 1, + "__WGLEW_ARB_create_context_robustness": 2, + "WGL_ARB_extensions_string": 2, + "PFNWGLGETEXTENSIONSSTRINGARBPROC": 2, + "hdc": 16, + "wglGetExtensionsStringARB": 1, + "__wglewGetExtensionsStringARB": 2, + "WGLEW_ARB_extensions_string": 1, + "__WGLEW_ARB_extensions_string": 2, + "WGL_ARB_framebuffer_sRGB": 2, + "WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB": 1, + "A9": 2, + "WGLEW_ARB_framebuffer_sRGB": 1, + "__WGLEW_ARB_framebuffer_sRGB": 2, + "WGL_ARB_make_current_read": 2, + "ERROR_INVALID_PIXEL_TYPE_ARB": 1, + "ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB": 1, + "PFNWGLGETCURRENTREADDCARBPROC": 2, + "PFNWGLMAKECONTEXTCURRENTARBPROC": 2, + "hDrawDC": 2, + "hReadDC": 2, + "wglGetCurrentReadDCARB": 1, + "__wglewGetCurrentReadDCARB": 2, + "wglMakeContextCurrentARB": 1, + "__wglewMakeContextCurrentARB": 2, + "WGLEW_ARB_make_current_read": 1, + "__WGLEW_ARB_make_current_read": 2, + "WGL_ARB_multisample": 2, + "WGL_SAMPLE_BUFFERS_ARB": 1, + "WGL_SAMPLES_ARB": 1, + "WGLEW_ARB_multisample": 1, + "__WGLEW_ARB_multisample": 2, + "WGL_ARB_pbuffer": 2, + "WGL_DRAW_TO_PBUFFER_ARB": 1, + "D": 8, + "WGL_MAX_PBUFFER_PIXELS_ARB": 1, + "E": 11, + "WGL_MAX_PBUFFER_WIDTH_ARB": 1, + "F": 38, + "WGL_MAX_PBUFFER_HEIGHT_ARB": 1, + "WGL_PBUFFER_LARGEST_ARB": 1, + "WGL_PBUFFER_WIDTH_ARB": 1, + "WGL_PBUFFER_HEIGHT_ARB": 1, + "WGL_PBUFFER_LOST_ARB": 1, + "DECLARE_HANDLE": 6, + "HPBUFFERARB": 12, + "PFNWGLCREATEPBUFFERARBPROC": 2, + "iPixelFormat": 6, + "iWidth": 2, + "iHeight": 2, + "piAttribList": 4, + "PFNWGLDESTROYPBUFFERARBPROC": 2, + "hPbuffer": 14, + "PFNWGLGETPBUFFERDCARBPROC": 2, + "PFNWGLQUERYPBUFFERARBPROC": 2, + "iAttribute": 8, + "piValue": 8, + "PFNWGLRELEASEPBUFFERDCARBPROC": 2, + "wglCreatePbufferARB": 1, + "__wglewCreatePbufferARB": 2, + "wglDestroyPbufferARB": 1, + "__wglewDestroyPbufferARB": 2, + "wglGetPbufferDCARB": 1, + "__wglewGetPbufferDCARB": 2, + "wglQueryPbufferARB": 1, + "__wglewQueryPbufferARB": 2, + "wglReleasePbufferDCARB": 1, + "__wglewReleasePbufferDCARB": 2, + "WGLEW_ARB_pbuffer": 1, + "__WGLEW_ARB_pbuffer": 2, + "WGL_ARB_pixel_format": 2, + "WGL_NUMBER_PIXEL_FORMATS_ARB": 1, + "WGL_DRAW_TO_WINDOW_ARB": 1, + "WGL_DRAW_TO_BITMAP_ARB": 1, + "WGL_ACCELERATION_ARB": 1, + "WGL_NEED_PALETTE_ARB": 1, + "WGL_NEED_SYSTEM_PALETTE_ARB": 1, + "WGL_SWAP_LAYER_BUFFERS_ARB": 1, + "WGL_SWAP_METHOD_ARB": 1, + "WGL_NUMBER_OVERLAYS_ARB": 1, + "WGL_NUMBER_UNDERLAYS_ARB": 1, + "WGL_TRANSPARENT_ARB": 1, + "WGL_SHARE_DEPTH_ARB": 1, + "WGL_SHARE_STENCIL_ARB": 1, + "WGL_SHARE_ACCUM_ARB": 1, + "WGL_SUPPORT_GDI_ARB": 1, + "WGL_SUPPORT_OPENGL_ARB": 1, + "WGL_DOUBLE_BUFFER_ARB": 1, + "WGL_STEREO_ARB": 1, + "WGL_PIXEL_TYPE_ARB": 1, + "WGL_COLOR_BITS_ARB": 1, + "WGL_RED_BITS_ARB": 1, + "WGL_RED_SHIFT_ARB": 1, + "WGL_GREEN_BITS_ARB": 1, + "WGL_GREEN_SHIFT_ARB": 1, + "WGL_BLUE_BITS_ARB": 1, + "WGL_BLUE_SHIFT_ARB": 1, + "WGL_ALPHA_BITS_ARB": 1, + "B": 9, + "WGL_ALPHA_SHIFT_ARB": 1, + "WGL_ACCUM_BITS_ARB": 1, + "WGL_ACCUM_RED_BITS_ARB": 1, + "WGL_ACCUM_GREEN_BITS_ARB": 1, + "WGL_ACCUM_BLUE_BITS_ARB": 1, + "WGL_ACCUM_ALPHA_BITS_ARB": 1, + "WGL_DEPTH_BITS_ARB": 1, + "WGL_STENCIL_BITS_ARB": 1, + "WGL_AUX_BUFFERS_ARB": 1, + "WGL_NO_ACCELERATION_ARB": 1, + "WGL_GENERIC_ACCELERATION_ARB": 1, + "WGL_FULL_ACCELERATION_ARB": 1, + "WGL_SWAP_EXCHANGE_ARB": 1, + "WGL_SWAP_COPY_ARB": 1, + "WGL_SWAP_UNDEFINED_ARB": 1, + "WGL_TYPE_RGBA_ARB": 1, + "WGL_TYPE_COLORINDEX_ARB": 1, + "WGL_TRANSPARENT_RED_VALUE_ARB": 1, + "WGL_TRANSPARENT_GREEN_VALUE_ARB": 1, + "WGL_TRANSPARENT_BLUE_VALUE_ARB": 1, + "WGL_TRANSPARENT_ALPHA_VALUE_ARB": 1, + "WGL_TRANSPARENT_INDEX_VALUE_ARB": 1, + "PFNWGLCHOOSEPIXELFORMATARBPROC": 2, + "piAttribIList": 2, + "FLOAT": 4, + "*pfAttribFList": 2, + "nMaxFormats": 2, + "*piFormats": 2, + "*nNumFormats": 2, + "PFNWGLGETPIXELFORMATATTRIBFVARBPROC": 2, + "nAttributes": 4, + "piAttributes": 4, + "*pfValues": 2, + "PFNWGLGETPIXELFORMATATTRIBIVARBPROC": 2, + "*piValues": 2, + "wglChoosePixelFormatARB": 1, + "__wglewChoosePixelFormatARB": 2, + "wglGetPixelFormatAttribfvARB": 1, + "__wglewGetPixelFormatAttribfvARB": 2, + "wglGetPixelFormatAttribivARB": 1, + "__wglewGetPixelFormatAttribivARB": 2, + "WGLEW_ARB_pixel_format": 1, + "__WGLEW_ARB_pixel_format": 2, + "WGL_ARB_pixel_format_float": 2, + "WGL_TYPE_RGBA_FLOAT_ARB": 1, + "A0": 3, + "WGLEW_ARB_pixel_format_float": 1, + "__WGLEW_ARB_pixel_format_float": 2, + "WGL_ARB_render_texture": 2, + "WGL_BIND_TO_TEXTURE_RGB_ARB": 1, + "WGL_BIND_TO_TEXTURE_RGBA_ARB": 1, + "WGL_TEXTURE_FORMAT_ARB": 1, + "WGL_TEXTURE_TARGET_ARB": 1, + "WGL_MIPMAP_TEXTURE_ARB": 1, + "WGL_TEXTURE_RGB_ARB": 1, + "WGL_TEXTURE_RGBA_ARB": 1, + "WGL_NO_TEXTURE_ARB": 2, + "WGL_TEXTURE_CUBE_MAP_ARB": 1, + "WGL_TEXTURE_1D_ARB": 1, + "WGL_TEXTURE_2D_ARB": 1, + "WGL_MIPMAP_LEVEL_ARB": 1, + "WGL_CUBE_MAP_FACE_ARB": 1, + "WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB": 1, + "WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB": 1, + "WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB": 1, + "WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB": 1, + "WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB": 1, + "WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB": 1, + "WGL_FRONT_LEFT_ARB": 1, + "WGL_FRONT_RIGHT_ARB": 1, + "WGL_BACK_LEFT_ARB": 1, + "WGL_BACK_RIGHT_ARB": 1, + "WGL_AUX0_ARB": 1, + "WGL_AUX1_ARB": 1, + "WGL_AUX2_ARB": 1, + "WGL_AUX3_ARB": 1, + "WGL_AUX4_ARB": 1, + "WGL_AUX5_ARB": 1, + "WGL_AUX6_ARB": 1, + "WGL_AUX7_ARB": 1, + "WGL_AUX8_ARB": 1, + "WGL_AUX9_ARB": 1, + "PFNWGLBINDTEXIMAGEARBPROC": 2, + "iBuffer": 2, + "PFNWGLRELEASETEXIMAGEARBPROC": 2, + "PFNWGLSETPBUFFERATTRIBARBPROC": 2, + "wglBindTexImageARB": 1, + "__wglewBindTexImageARB": 2, + "wglReleaseTexImageARB": 1, + "__wglewReleaseTexImageARB": 2, + "wglSetPbufferAttribARB": 1, + "__wglewSetPbufferAttribARB": 2, + "WGLEW_ARB_render_texture": 1, + "__WGLEW_ARB_render_texture": 2, + "WGL_ATI_pixel_format_float": 2, + "WGL_TYPE_RGBA_FLOAT_ATI": 1, + "GL_RGBA_FLOAT_MODE_ATI": 1, + "GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI": 1, + "WGLEW_ATI_pixel_format_float": 1, + "__WGLEW_ATI_pixel_format_float": 2, + "WGL_ATI_render_texture_rectangle": 2, + "WGL_TEXTURE_RECTANGLE_ATI": 1, + "WGLEW_ATI_render_texture_rectangle": 1, + "__WGLEW_ATI_render_texture_rectangle": 2, + "WGL_EXT_create_context_es2_profile": 2, + "WGL_CONTEXT_ES2_PROFILE_BIT_EXT": 1, + "WGLEW_EXT_create_context_es2_profile": 1, + "__WGLEW_EXT_create_context_es2_profile": 2, + "WGL_EXT_depth_float": 2, + "WGL_DEPTH_FLOAT_EXT": 1, + "WGLEW_EXT_depth_float": 1, + "__WGLEW_EXT_depth_float": 2, + "WGL_EXT_display_color_table": 2, + "GLboolean": 53, + "PFNWGLBINDDISPLAYCOLORTABLEEXTPROC": 2, + "GLushort": 3, + "PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC": 2, + "PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC": 2, + "PFNWGLLOADDISPLAYCOLORTABLEEXTPROC": 2, + "GLushort*": 1, + "table": 1, + "GLuint": 9, + "wglBindDisplayColorTableEXT": 1, + "__wglewBindDisplayColorTableEXT": 2, + "wglCreateDisplayColorTableEXT": 1, + "__wglewCreateDisplayColorTableEXT": 2, + "wglDestroyDisplayColorTableEXT": 1, + "__wglewDestroyDisplayColorTableEXT": 2, + "wglLoadDisplayColorTableEXT": 1, + "__wglewLoadDisplayColorTableEXT": 2, + "WGLEW_EXT_display_color_table": 1, + "__WGLEW_EXT_display_color_table": 2, + "WGL_EXT_extensions_string": 2, + "PFNWGLGETEXTENSIONSSTRINGEXTPROC": 2, + "wglGetExtensionsStringEXT": 1, + "__wglewGetExtensionsStringEXT": 2, + "WGLEW_EXT_extensions_string": 1, + "__WGLEW_EXT_extensions_string": 2, + "WGL_EXT_framebuffer_sRGB": 2, + "WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT": 1, + "WGLEW_EXT_framebuffer_sRGB": 1, + "__WGLEW_EXT_framebuffer_sRGB": 2, + "WGL_EXT_make_current_read": 2, + "ERROR_INVALID_PIXEL_TYPE_EXT": 1, + "PFNWGLGETCURRENTREADDCEXTPROC": 2, + "PFNWGLMAKECONTEXTCURRENTEXTPROC": 2, + "wglGetCurrentReadDCEXT": 1, + "__wglewGetCurrentReadDCEXT": 2, + "wglMakeContextCurrentEXT": 1, + "__wglewMakeContextCurrentEXT": 2, + "WGLEW_EXT_make_current_read": 1, + "__WGLEW_EXT_make_current_read": 2, + "WGL_EXT_multisample": 2, + "WGL_SAMPLE_BUFFERS_EXT": 1, + "WGL_SAMPLES_EXT": 1, + "WGLEW_EXT_multisample": 1, + "__WGLEW_EXT_multisample": 2, + "WGL_EXT_pbuffer": 2, + "WGL_DRAW_TO_PBUFFER_EXT": 1, + "WGL_MAX_PBUFFER_PIXELS_EXT": 1, + "WGL_MAX_PBUFFER_WIDTH_EXT": 1, + "WGL_MAX_PBUFFER_HEIGHT_EXT": 1, + "WGL_OPTIMAL_PBUFFER_WIDTH_EXT": 1, + "WGL_OPTIMAL_PBUFFER_HEIGHT_EXT": 1, + "WGL_PBUFFER_LARGEST_EXT": 1, + "WGL_PBUFFER_WIDTH_EXT": 1, + "WGL_PBUFFER_HEIGHT_EXT": 1, + "HPBUFFEREXT": 6, + "PFNWGLCREATEPBUFFEREXTPROC": 2, + "PFNWGLDESTROYPBUFFEREXTPROC": 2, + "PFNWGLGETPBUFFERDCEXTPROC": 2, + "PFNWGLQUERYPBUFFEREXTPROC": 2, + "PFNWGLRELEASEPBUFFERDCEXTPROC": 2, + "wglCreatePbufferEXT": 1, + "__wglewCreatePbufferEXT": 2, + "wglDestroyPbufferEXT": 1, + "__wglewDestroyPbufferEXT": 2, + "wglGetPbufferDCEXT": 1, + "__wglewGetPbufferDCEXT": 2, + "wglQueryPbufferEXT": 1, + "__wglewQueryPbufferEXT": 2, + "wglReleasePbufferDCEXT": 1, + "__wglewReleasePbufferDCEXT": 2, + "WGLEW_EXT_pbuffer": 1, + "__WGLEW_EXT_pbuffer": 2, + "WGL_EXT_pixel_format": 2, + "WGL_NUMBER_PIXEL_FORMATS_EXT": 1, + "WGL_DRAW_TO_WINDOW_EXT": 1, + "WGL_DRAW_TO_BITMAP_EXT": 1, + "WGL_ACCELERATION_EXT": 1, + "WGL_NEED_PALETTE_EXT": 1, + "WGL_NEED_SYSTEM_PALETTE_EXT": 1, + "WGL_SWAP_LAYER_BUFFERS_EXT": 1, + "WGL_SWAP_METHOD_EXT": 1, + "WGL_NUMBER_OVERLAYS_EXT": 1, + "WGL_NUMBER_UNDERLAYS_EXT": 1, + "WGL_TRANSPARENT_EXT": 1, + "WGL_TRANSPARENT_VALUE_EXT": 1, + "WGL_SHARE_DEPTH_EXT": 1, + "WGL_SHARE_STENCIL_EXT": 1, + "WGL_SHARE_ACCUM_EXT": 1, + "WGL_SUPPORT_GDI_EXT": 1, + "WGL_SUPPORT_OPENGL_EXT": 1, + "WGL_DOUBLE_BUFFER_EXT": 1, + "WGL_STEREO_EXT": 1, + "WGL_PIXEL_TYPE_EXT": 1, + "WGL_COLOR_BITS_EXT": 1, + "WGL_RED_BITS_EXT": 1, + "WGL_RED_SHIFT_EXT": 1, + "WGL_GREEN_BITS_EXT": 1, + "WGL_GREEN_SHIFT_EXT": 1, + "WGL_BLUE_BITS_EXT": 1, + "WGL_BLUE_SHIFT_EXT": 1, + "WGL_ALPHA_BITS_EXT": 1, + "WGL_ALPHA_SHIFT_EXT": 1, + "WGL_ACCUM_BITS_EXT": 1, + "WGL_ACCUM_RED_BITS_EXT": 1, + "WGL_ACCUM_GREEN_BITS_EXT": 1, + "WGL_ACCUM_BLUE_BITS_EXT": 1, + "WGL_ACCUM_ALPHA_BITS_EXT": 1, + "WGL_DEPTH_BITS_EXT": 1, + "WGL_STENCIL_BITS_EXT": 1, + "WGL_AUX_BUFFERS_EXT": 1, + "WGL_NO_ACCELERATION_EXT": 1, + "WGL_GENERIC_ACCELERATION_EXT": 1, + "WGL_FULL_ACCELERATION_EXT": 1, + "WGL_SWAP_EXCHANGE_EXT": 1, + "WGL_SWAP_COPY_EXT": 1, + "WGL_SWAP_UNDEFINED_EXT": 1, + "WGL_TYPE_RGBA_EXT": 1, + "WGL_TYPE_COLORINDEX_EXT": 1, + "PFNWGLCHOOSEPIXELFORMATEXTPROC": 2, + "PFNWGLGETPIXELFORMATATTRIBFVEXTPROC": 2, + "PFNWGLGETPIXELFORMATATTRIBIVEXTPROC": 2, + "wglChoosePixelFormatEXT": 1, + "__wglewChoosePixelFormatEXT": 2, + "wglGetPixelFormatAttribfvEXT": 1, + "__wglewGetPixelFormatAttribfvEXT": 2, + "wglGetPixelFormatAttribivEXT": 1, + "__wglewGetPixelFormatAttribivEXT": 2, + "WGLEW_EXT_pixel_format": 1, + "__WGLEW_EXT_pixel_format": 2, + "WGL_EXT_pixel_format_packed_float": 2, + "WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT": 1, + "WGLEW_EXT_pixel_format_packed_float": 1, + "__WGLEW_EXT_pixel_format_packed_float": 2, + "WGL_EXT_swap_control": 2, + "PFNWGLGETSWAPINTERVALEXTPROC": 2, + "PFNWGLSWAPINTERVALEXTPROC": 2, + "interval": 1, + "wglGetSwapIntervalEXT": 1, + "__wglewGetSwapIntervalEXT": 2, + "wglSwapIntervalEXT": 1, + "__wglewSwapIntervalEXT": 2, + "WGLEW_EXT_swap_control": 1, + "__WGLEW_EXT_swap_control": 2, + "WGL_I3D_digital_video_control": 2, + "WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D": 1, + "WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D": 1, + "WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D": 1, + "WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D": 1, + "PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC": 2, + "PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC": 2, + "wglGetDigitalVideoParametersI3D": 1, + "__wglewGetDigitalVideoParametersI3D": 2, + "wglSetDigitalVideoParametersI3D": 1, + "__wglewSetDigitalVideoParametersI3D": 2, + "WGLEW_I3D_digital_video_control": 1, + "__WGLEW_I3D_digital_video_control": 2, + "WGL_I3D_gamma": 2, + "WGL_GAMMA_TABLE_SIZE_I3D": 1, + "WGL_GAMMA_EXCLUDE_DESKTOP_I3D": 1, + "PFNWGLGETGAMMATABLEI3DPROC": 2, + "iEntries": 2, + "USHORT*": 2, + "puRed": 2, + "USHORT": 4, + "*puGreen": 2, + "*puBlue": 2, + "PFNWGLGETGAMMATABLEPARAMETERSI3DPROC": 2, + "PFNWGLSETGAMMATABLEI3DPROC": 2, + "PFNWGLSETGAMMATABLEPARAMETERSI3DPROC": 2, + "wglGetGammaTableI3D": 1, + "__wglewGetGammaTableI3D": 2, + "wglGetGammaTableParametersI3D": 1, + "__wglewGetGammaTableParametersI3D": 2, + "wglSetGammaTableI3D": 1, + "__wglewSetGammaTableI3D": 2, + "wglSetGammaTableParametersI3D": 1, + "__wglewSetGammaTableParametersI3D": 2, + "WGLEW_I3D_gamma": 1, + "__WGLEW_I3D_gamma": 2, + "WGL_I3D_genlock": 2, + "WGL_GENLOCK_SOURCE_MULTIVIEW_I3D": 1, + "WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D": 1, + "WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D": 1, + "WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D": 1, + "WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D": 1, + "WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D": 1, + "WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D": 1, + "WGL_GENLOCK_SOURCE_EDGE_RISING_I3D": 1, + "WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D": 1, + "PFNWGLDISABLEGENLOCKI3DPROC": 2, + "PFNWGLENABLEGENLOCKI3DPROC": 2, + "PFNWGLGENLOCKSAMPLERATEI3DPROC": 2, + "uRate": 2, + "PFNWGLGENLOCKSOURCEDELAYI3DPROC": 2, + "uDelay": 2, + "PFNWGLGENLOCKSOURCEEDGEI3DPROC": 2, + "uEdge": 2, + "PFNWGLGENLOCKSOURCEI3DPROC": 2, + "uSource": 2, + "PFNWGLGETGENLOCKSAMPLERATEI3DPROC": 2, + "PFNWGLGETGENLOCKSOURCEDELAYI3DPROC": 2, + "PFNWGLGETGENLOCKSOURCEEDGEI3DPROC": 2, + "PFNWGLGETGENLOCKSOURCEI3DPROC": 2, + "PFNWGLISENABLEDGENLOCKI3DPROC": 2, + "BOOL*": 3, + "pFlag": 3, + "PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC": 2, + "uMaxLineDelay": 1, + "*uMaxPixelDelay": 1, + "wglDisableGenlockI3D": 1, + "__wglewDisableGenlockI3D": 2, + "wglEnableGenlockI3D": 1, + "__wglewEnableGenlockI3D": 2, + "wglGenlockSampleRateI3D": 1, + "__wglewGenlockSampleRateI3D": 2, + "wglGenlockSourceDelayI3D": 1, + "__wglewGenlockSourceDelayI3D": 2, + "wglGenlockSourceEdgeI3D": 1, + "__wglewGenlockSourceEdgeI3D": 2, + "wglGenlockSourceI3D": 1, + "__wglewGenlockSourceI3D": 2, + "wglGetGenlockSampleRateI3D": 1, + "__wglewGetGenlockSampleRateI3D": 2, + "wglGetGenlockSourceDelayI3D": 1, + "__wglewGetGenlockSourceDelayI3D": 2, + "wglGetGenlockSourceEdgeI3D": 1, + "__wglewGetGenlockSourceEdgeI3D": 2, + "wglGetGenlockSourceI3D": 1, + "__wglewGetGenlockSourceI3D": 2, + "wglIsEnabledGenlockI3D": 1, + "__wglewIsEnabledGenlockI3D": 2, + "wglQueryGenlockMaxSourceDelayI3D": 1, + "__wglewQueryGenlockMaxSourceDelayI3D": 2, + "WGLEW_I3D_genlock": 1, + "__WGLEW_I3D_genlock": 2, + "WGL_I3D_image_buffer": 2, + "WGL_IMAGE_BUFFER_MIN_ACCESS_I3D": 1, + "WGL_IMAGE_BUFFER_LOCK_I3D": 1, + "PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC": 2, + "HANDLE*": 3, + "pEvent": 1, + "LPVOID": 3, + "*pAddress": 1, + "DWORD": 5, + "*pSize": 1, + "PFNWGLCREATEIMAGEBUFFERI3DPROC": 2, + "dwSize": 1, + "uFlags": 1, + "PFNWGLDESTROYIMAGEBUFFERI3DPROC": 2, + "pAddress": 2, + "PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC": 2, + "LPVOID*": 1, + "wglAssociateImageBufferEventsI3D": 1, + "__wglewAssociateImageBufferEventsI3D": 2, + "wglCreateImageBufferI3D": 1, + "__wglewCreateImageBufferI3D": 2, + "wglDestroyImageBufferI3D": 1, + "__wglewDestroyImageBufferI3D": 2, + "wglReleaseImageBufferEventsI3D": 1, + "__wglewReleaseImageBufferEventsI3D": 2, + "WGLEW_I3D_image_buffer": 1, + "__WGLEW_I3D_image_buffer": 2, + "WGL_I3D_swap_frame_lock": 2, + "PFNWGLDISABLEFRAMELOCKI3DPROC": 2, + "PFNWGLENABLEFRAMELOCKI3DPROC": 2, + "PFNWGLISENABLEDFRAMELOCKI3DPROC": 2, + "PFNWGLQUERYFRAMELOCKMASTERI3DPROC": 2, + "wglDisableFrameLockI3D": 1, + "__wglewDisableFrameLockI3D": 2, + "wglEnableFrameLockI3D": 1, + "__wglewEnableFrameLockI3D": 2, + "wglIsEnabledFrameLockI3D": 1, + "__wglewIsEnabledFrameLockI3D": 2, + "wglQueryFrameLockMasterI3D": 1, + "__wglewQueryFrameLockMasterI3D": 2, + "WGLEW_I3D_swap_frame_lock": 1, + "__WGLEW_I3D_swap_frame_lock": 2, + "WGL_I3D_swap_frame_usage": 2, + "PFNWGLBEGINFRAMETRACKINGI3DPROC": 2, + "PFNWGLENDFRAMETRACKINGI3DPROC": 2, + "PFNWGLGETFRAMEUSAGEI3DPROC": 2, + "float*": 1, + "pUsage": 1, + "PFNWGLQUERYFRAMETRACKINGI3DPROC": 2, + "DWORD*": 1, + "pFrameCount": 1, + "*pMissedFrames": 1, + "*pLastMissedUsage": 1, + "wglBeginFrameTrackingI3D": 1, + "__wglewBeginFrameTrackingI3D": 2, + "wglEndFrameTrackingI3D": 1, + "__wglewEndFrameTrackingI3D": 2, + "wglGetFrameUsageI3D": 1, + "__wglewGetFrameUsageI3D": 2, + "wglQueryFrameTrackingI3D": 1, + "__wglewQueryFrameTrackingI3D": 2, + "WGLEW_I3D_swap_frame_usage": 1, + "__WGLEW_I3D_swap_frame_usage": 2, + "WGL_NV_DX_interop": 2, + "WGL_ACCESS_READ_ONLY_NV": 1, + "WGL_ACCESS_READ_WRITE_NV": 1, + "WGL_ACCESS_WRITE_DISCARD_NV": 1, + "PFNWGLDXCLOSEDEVICENVPROC": 2, + "hDevice": 9, + "PFNWGLDXLOCKOBJECTSNVPROC": 2, + "hObjects": 2, + "PFNWGLDXOBJECTACCESSNVPROC": 2, + "hObject": 2, + "access": 2, + "PFNWGLDXOPENDEVICENVPROC": 2, + "dxDevice": 1, + "PFNWGLDXREGISTEROBJECTNVPROC": 2, + "dxObject": 2, + "PFNWGLDXSETRESOURCESHAREHANDLENVPROC": 2, + "shareHandle": 1, + "PFNWGLDXUNLOCKOBJECTSNVPROC": 2, + "PFNWGLDXUNREGISTEROBJECTNVPROC": 2, + "wglDXCloseDeviceNV": 1, + "__wglewDXCloseDeviceNV": 2, + "wglDXLockObjectsNV": 1, + "__wglewDXLockObjectsNV": 2, + "wglDXObjectAccessNV": 1, + "__wglewDXObjectAccessNV": 2, + "wglDXOpenDeviceNV": 1, + "__wglewDXOpenDeviceNV": 2, + "wglDXRegisterObjectNV": 1, + "__wglewDXRegisterObjectNV": 2, + "wglDXSetResourceShareHandleNV": 1, + "__wglewDXSetResourceShareHandleNV": 2, + "wglDXUnlockObjectsNV": 1, + "__wglewDXUnlockObjectsNV": 2, + "wglDXUnregisterObjectNV": 1, + "__wglewDXUnregisterObjectNV": 2, + "WGLEW_NV_DX_interop": 1, + "__WGLEW_NV_DX_interop": 2, + "WGL_NV_copy_image": 2, + "PFNWGLCOPYIMAGESUBDATANVPROC": 2, + "hSrcRC": 1, + "srcName": 1, + "srcTarget": 1, + "srcLevel": 1, + "srcX": 1, + "srcY": 1, + "srcZ": 1, + "hDstRC": 1, + "dstName": 1, + "dstTarget": 1, + "dstLevel": 1, + "dstX": 1, + "dstY": 1, + "dstZ": 1, + "GLsizei": 4, + "wglCopyImageSubDataNV": 1, + "__wglewCopyImageSubDataNV": 2, + "WGLEW_NV_copy_image": 1, + "__WGLEW_NV_copy_image": 2, + "WGL_NV_float_buffer": 2, + "WGL_FLOAT_COMPONENTS_NV": 1, + "B0": 1, + "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV": 1, + "B1": 1, + "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV": 1, + "B2": 1, + "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV": 1, + "B3": 1, + "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV": 1, + "B4": 1, + "WGL_TEXTURE_FLOAT_R_NV": 1, + "B5": 1, + "WGL_TEXTURE_FLOAT_RG_NV": 1, + "B6": 1, + "WGL_TEXTURE_FLOAT_RGB_NV": 1, + "B7": 1, + "WGL_TEXTURE_FLOAT_RGBA_NV": 1, + "B8": 1, + "WGLEW_NV_float_buffer": 1, + "__WGLEW_NV_float_buffer": 2, + "WGL_NV_gpu_affinity": 2, + "WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV": 1, + "D0": 1, + "WGL_ERROR_MISSING_AFFINITY_MASK_NV": 1, + "D1": 1, + "HGPUNV": 5, + "_GPU_DEVICE": 1, + "cb": 1, + "CHAR": 2, + "DeviceName": 1, + "DeviceString": 1, + "Flags": 1, + "RECT": 1, + "rcVirtualScreen": 1, + "GPU_DEVICE": 1, + "*PGPU_DEVICE": 1, + "PFNWGLCREATEAFFINITYDCNVPROC": 2, + "*phGpuList": 1, + "PFNWGLDELETEDCNVPROC": 2, + "PFNWGLENUMGPUDEVICESNVPROC": 2, + "hGpu": 1, + "iDeviceIndex": 1, + "PGPU_DEVICE": 1, + "lpGpuDevice": 1, + "PFNWGLENUMGPUSFROMAFFINITYDCNVPROC": 2, + "hAffinityDC": 1, + "iGpuIndex": 2, + "*hGpu": 1, + "PFNWGLENUMGPUSNVPROC": 2, + "*phGpu": 1, + "wglCreateAffinityDCNV": 1, + "__wglewCreateAffinityDCNV": 2, + "wglDeleteDCNV": 1, + "__wglewDeleteDCNV": 2, + "wglEnumGpuDevicesNV": 1, + "__wglewEnumGpuDevicesNV": 2, + "wglEnumGpusFromAffinityDCNV": 1, + "__wglewEnumGpusFromAffinityDCNV": 2, + "wglEnumGpusNV": 1, + "__wglewEnumGpusNV": 2, + "WGLEW_NV_gpu_affinity": 1, + "__WGLEW_NV_gpu_affinity": 2, + "WGL_NV_multisample_coverage": 2, + "WGL_COVERAGE_SAMPLES_NV": 1, + "WGL_COLOR_SAMPLES_NV": 1, + "B9": 1, + "WGLEW_NV_multisample_coverage": 1, + "__WGLEW_NV_multisample_coverage": 2, + "WGL_NV_present_video": 2, + "WGL_NUM_VIDEO_SLOTS_NV": 1, + "F0": 1, + "HVIDEOOUTPUTDEVICENV": 2, + "PFNWGLBINDVIDEODEVICENVPROC": 2, + "hDc": 6, + "uVideoSlot": 2, + "hVideoDevice": 4, + "PFNWGLENUMERATEVIDEODEVICESNVPROC": 2, + "HVIDEOOUTPUTDEVICENV*": 1, + "phDeviceList": 2, + "PFNWGLQUERYCURRENTCONTEXTNVPROC": 2, + "wglBindVideoDeviceNV": 1, + "__wglewBindVideoDeviceNV": 2, + "wglEnumerateVideoDevicesNV": 1, + "__wglewEnumerateVideoDevicesNV": 2, + "wglQueryCurrentContextNV": 1, + "__wglewQueryCurrentContextNV": 2, + "WGLEW_NV_present_video": 1, + "__WGLEW_NV_present_video": 2, + "WGL_NV_render_depth_texture": 2, + "WGL_BIND_TO_TEXTURE_DEPTH_NV": 1, + "WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV": 1, + "WGL_DEPTH_TEXTURE_FORMAT_NV": 1, + "WGL_TEXTURE_DEPTH_COMPONENT_NV": 1, + "WGL_DEPTH_COMPONENT_NV": 1, + "WGLEW_NV_render_depth_texture": 1, + "__WGLEW_NV_render_depth_texture": 2, + "WGL_NV_render_texture_rectangle": 2, + "WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV": 1, + "WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV": 1, + "A1": 1, + "WGL_TEXTURE_RECTANGLE_NV": 1, + "WGLEW_NV_render_texture_rectangle": 1, + "__WGLEW_NV_render_texture_rectangle": 2, + "WGL_NV_swap_group": 2, + "PFNWGLBINDSWAPBARRIERNVPROC": 2, + "group": 3, + "barrier": 1, + "PFNWGLJOINSWAPGROUPNVPROC": 2, + "PFNWGLQUERYFRAMECOUNTNVPROC": 2, + "GLuint*": 3, + "PFNWGLQUERYMAXSWAPGROUPSNVPROC": 2, + "maxGroups": 1, + "*maxBarriers": 1, + "PFNWGLQUERYSWAPGROUPNVPROC": 2, + "*barrier": 1, + "PFNWGLRESETFRAMECOUNTNVPROC": 2, + "wglBindSwapBarrierNV": 1, + "__wglewBindSwapBarrierNV": 2, + "wglJoinSwapGroupNV": 1, + "__wglewJoinSwapGroupNV": 2, + "wglQueryFrameCountNV": 1, + "__wglewQueryFrameCountNV": 2, + "wglQueryMaxSwapGroupsNV": 1, + "__wglewQueryMaxSwapGroupsNV": 2, + "wglQuerySwapGroupNV": 1, + "__wglewQuerySwapGroupNV": 2, + "wglResetFrameCountNV": 1, + "__wglewResetFrameCountNV": 2, + "WGLEW_NV_swap_group": 1, + "__WGLEW_NV_swap_group": 2, + "WGL_NV_vertex_array_range": 2, + "PFNWGLALLOCATEMEMORYNVPROC": 2, + "GLfloat": 3, + "readFrequency": 1, + "writeFrequency": 1, + "priority": 1, + "PFNWGLFREEMEMORYNVPROC": 2, + "*pointer": 1, + "wglAllocateMemoryNV": 1, + "__wglewAllocateMemoryNV": 2, + "wglFreeMemoryNV": 1, + "__wglewFreeMemoryNV": 2, + "WGLEW_NV_vertex_array_range": 1, + "__WGLEW_NV_vertex_array_range": 2, + "WGL_NV_video_capture": 2, + "WGL_UNIQUE_ID_NV": 1, + "CE": 1, + "WGL_NUM_VIDEO_CAPTURE_SLOTS_NV": 1, + "CF": 1, + "HVIDEOINPUTDEVICENV": 5, + "PFNWGLBINDVIDEOCAPTUREDEVICENVPROC": 2, + "PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC": 2, + "HVIDEOINPUTDEVICENV*": 1, + "PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC": 2, + "PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC": 2, + "PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC": 2, + "wglBindVideoCaptureDeviceNV": 1, + "__wglewBindVideoCaptureDeviceNV": 2, + "wglEnumerateVideoCaptureDevicesNV": 1, + "__wglewEnumerateVideoCaptureDevicesNV": 2, + "wglLockVideoCaptureDeviceNV": 1, + "__wglewLockVideoCaptureDeviceNV": 2, + "wglQueryVideoCaptureDeviceNV": 1, + "__wglewQueryVideoCaptureDeviceNV": 2, + "wglReleaseVideoCaptureDeviceNV": 1, + "__wglewReleaseVideoCaptureDeviceNV": 2, + "WGLEW_NV_video_capture": 1, + "__WGLEW_NV_video_capture": 2, + "WGL_NV_video_output": 2, + "WGL_BIND_TO_VIDEO_RGB_NV": 1, + "C0": 3, + "WGL_BIND_TO_VIDEO_RGBA_NV": 1, + "C1": 1, + "WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV": 1, + "C2": 1, + "WGL_VIDEO_OUT_COLOR_NV": 1, + "C3": 1, + "WGL_VIDEO_OUT_ALPHA_NV": 1, + "C4": 1, + "WGL_VIDEO_OUT_DEPTH_NV": 1, + "C5": 1, + "WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV": 1, + "C6": 1, + "WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV": 1, + "C7": 1, + "WGL_VIDEO_OUT_FRAME": 1, + "C8": 1, + "WGL_VIDEO_OUT_FIELD_1": 1, + "C9": 1, + "WGL_VIDEO_OUT_FIELD_2": 1, + "CA": 1, + "WGL_VIDEO_OUT_STACKED_FIELDS_1_2": 1, + "CB": 1, + "WGL_VIDEO_OUT_STACKED_FIELDS_2_1": 1, + "CC": 1, + "HPVIDEODEV": 4, + "PFNWGLBINDVIDEOIMAGENVPROC": 2, + "iVideoBuffer": 2, + "PFNWGLGETVIDEODEVICENVPROC": 2, + "numDevices": 1, + "HPVIDEODEV*": 1, + "PFNWGLGETVIDEOINFONVPROC": 2, + "hpVideoDevice": 1, + "long*": 2, + "pulCounterOutputPbuffer": 1, + "*pulCounterOutputVideo": 1, + "PFNWGLRELEASEVIDEODEVICENVPROC": 2, + "PFNWGLRELEASEVIDEOIMAGENVPROC": 2, + "PFNWGLSENDPBUFFERTOVIDEONVPROC": 2, + "iBufferType": 1, + "pulCounterPbuffer": 1, + "bBlock": 1, + "wglBindVideoImageNV": 1, + "__wglewBindVideoImageNV": 2, + "wglGetVideoDeviceNV": 1, + "__wglewGetVideoDeviceNV": 2, + "wglGetVideoInfoNV": 1, + "__wglewGetVideoInfoNV": 2, + "wglReleaseVideoDeviceNV": 1, + "__wglewReleaseVideoDeviceNV": 2, + "wglReleaseVideoImageNV": 1, + "__wglewReleaseVideoImageNV": 2, + "wglSendPbufferToVideoNV": 1, + "__wglewSendPbufferToVideoNV": 2, + "WGLEW_NV_video_output": 1, + "__WGLEW_NV_video_output": 2, + "WGL_OML_sync_control": 2, + "PFNWGLGETMSCRATEOMLPROC": 2, + "INT32*": 1, + "numerator": 1, + "INT32": 1, + "*denominator": 1, + "PFNWGLGETSYNCVALUESOMLPROC": 2, + "INT64*": 3, + "ust": 7, + "INT64": 18, + "*msc": 3, + "*sbc": 3, + "PFNWGLSWAPBUFFERSMSCOMLPROC": 2, + "target_msc": 3, + "divisor": 3, + "remainder": 3, + "PFNWGLSWAPLAYERBUFFERSMSCOMLPROC": 2, + "fuPlanes": 1, + "PFNWGLWAITFORMSCOMLPROC": 2, + "PFNWGLWAITFORSBCOMLPROC": 2, + "target_sbc": 1, + "wglGetMscRateOML": 1, + "__wglewGetMscRateOML": 2, + "wglGetSyncValuesOML": 1, + "__wglewGetSyncValuesOML": 2, + "wglSwapBuffersMscOML": 1, + "__wglewSwapBuffersMscOML": 2, + "wglSwapLayerBuffersMscOML": 1, + "__wglewSwapLayerBuffersMscOML": 2, + "wglWaitForMscOML": 1, + "__wglewWaitForMscOML": 2, + "wglWaitForSbcOML": 1, + "__wglewWaitForSbcOML": 2, + "WGLEW_OML_sync_control": 1, + "__WGLEW_OML_sync_control": 2, + "GLEW_MX": 4, + "WGLEW_EXPORT": 167, + "GLEWAPI": 6, + "WGLEWContextStruct": 2, + "WGLEWContext": 1, + "wglewContextInit": 2, + "WGLEWContext*": 2, + "wglewContextIsSupported": 2, + "wglewInit": 1, + "wglewGetContext": 4, + "wglewIsSupported": 2, + "wglewGetExtension": 1, + "": 1, + "_Included_jni_JniLayer": 2, + "JNIEXPORT": 6, + "jlong": 6, + "JNICALL": 6, + "Java_jni_JniLayer_jni_1layer_1initialize": 1, + "JNIEnv": 6, + "jobject": 6, + "jintArray": 1, + "jint": 7, + "Java_jni_JniLayer_jni_1layer_1mainloop": 1, + "Java_jni_JniLayer_jni_1layer_1set_1button": 1, + "Java_jni_JniLayer_jni_1layer_1set_1analog": 1, + "jfloat": 1, + "Java_jni_JniLayer_jni_1layer_1report_1analog_1chg": 1, + "Java_jni_JniLayer_jni_1layer_1kill": 1, + "OBJ_BLOB": 3, + "alloc_blob_node": 1, + "": 2, + "": 2, + "": 1, + "": 3, + "stack": 6, + "READ_VSNPRINTF_ARGS": 5, + "rfUTF8_VerifySequence": 7, + "RF_FAILURE": 24, + "LOG_ERROR": 64, + "RE_STRING_INIT_FAILURE": 8, + "buffAllocated": 11, + "RF_MALLOC": 47, + "RF_OPTION_SOURCE_ENCODING": 30, + "characterLength": 16, + "*codepoints": 2, + "rfLMS_MacroEvalPtr": 2, + "RF_LMS": 6, + "RF_UTF16_LE": 9, + "RF_UTF16_BE": 7, + "codepoints": 44, + "i/2": 2, + "#elif": 14, + "RF_UTF32_LE": 3, + "RF_UTF32_BE": 3, + "decode": 6, + "UTF16": 4, + "rfUTILS_Endianess": 24, + "RF_LITTLE_ENDIAN": 23, + "rfUTF16_Decode": 5, + "rfUTF16_Decode_swap": 5, + "RF_UTF16_BE//": 2, + "RF_UTF32_LE//": 2, + "copy": 4, + "UTF32": 4, + "into": 8, + "codepoint": 47, + "rfUTILS_SwapEndianUI": 11, + "RF_UTF32_BE//": 2, + "RF_BIG_ENDIAN": 10, + "": 2, + "endif": 6, + "than": 5, + "encode": 2, + "rfUTF8_Encode": 4, + "0": 11, + "While": 2, + "attempting": 2, + "create": 2, + "byte": 6, + "sequence": 6, + "could": 2, + "properly": 2, + "encoded": 2, + "RE_UTF8_ENCODING": 2, + "End": 2, + "Non": 2, + "code=": 2, + "normally": 1, + "here": 5, + "we": 10, + "validity": 2, + "get": 4, + "Error": 2, + "Allocation": 2, + "due": 2, + "invalid": 2, + "rfLMS_Push": 4, + "Memory": 4, + "allocation": 3, + "Local": 2, + "Stack": 2, + "failed": 2, + "Insufficient": 2, + "space": 4, + "Consider": 2, + "compiling": 2, + "bigger": 3, + "Quitting": 2, + "proccess": 2, + "RE_LOCALMEMSTACK_INSUFFICIENT": 8, + "RE_UTF16_INVALID_SEQUENCE": 20, + "during": 1, + "RF_HEXLE_UI": 8, + "RF_HEXGE_UI": 6, + "ff": 10, + "ffff": 4, + "xFC0": 4, + "xF000": 2, + "xE": 2, + "F000": 2, + "C0000": 2, + "RE_UTF8_INVALID_CODE_POINT": 2, + "numLen": 8, + "max": 4, + "most": 3, + "environment": 3, + "so": 4, + "chars": 3, + "will": 3, + "certainly": 3, + "fit": 3, + "sprintf": 10, + "strcpy": 4, + "utf8ByteLength": 34, + "last": 1, + "utf": 1, + "null": 4, + "termination": 3, + "byteLength*2": 1, + "allocate": 1, + "same": 1, + "else//": 14, + "different": 1, + "RE_INPUT": 1, + "ends": 3, + "swapE": 21, + "codeBuffer": 9, + "RF_HEXEQ_UI": 7, + "xFEFF": 1, + "big": 14, + "endian": 20, + "xFFFE0000": 1, + "little": 7, + "according": 1, + "standard": 1, + "BOM": 1, + "means": 1, + "rfUTF32_Length": 1, + "sourceP": 2, + "RF_REALLOC": 9, + "<5)>": 1, + "bytesWritten": 2, + "charsN": 5, + "rfUTF8_Decode": 2, + "rfUTF16_Encode": 1, + "RF_STRING_ITERATE_START": 9, + "RF_STRING_ITERATE_END": 9, + "codePoint": 18, + "RF_HEXEQ_C": 9, + "xC0": 3, + "xE0": 2, + "xF": 5, + "xF0": 2, + "thisstrP": 32, + "charPos": 8, + "byteI": 7, + "s1P": 2, + "s2P": 2, + "sstrP": 6, + "optionsP": 11, + "*optionsP": 8, + "found": 20, + "RF_BITFLAG_ON": 5, + "strstr": 2, + "exact": 6, + "": 1, + "0x5a": 1, + "0x7a": 1, + "substring": 5, + "search": 1, + "zero": 2, + "equals": 1, + "then": 1, + "okay": 1, + "RF_SUCCESS": 14, + "ERANGE": 1, + "RE_STRING_TOFLOAT_UNDERFLOW": 1, + "RE_STRING_TOFLOAT": 1, + "srcP": 6, + "bytePos": 23, + "terminate": 1, + "afterstrP": 2, + "*s": 3, + "sscanf": 1, + "<=0)>": 1, + "Counts": 1, + "how": 1, + "many": 1, + "times": 1, + "occurs": 1, + "sstr2": 2, + "move": 12, + "rfString_FindBytePos": 10, + "*tokensN": 1, + "lstrP": 1, + "rstrP": 5, + "start": 10, + "parNP": 6, + "*parNP": 2, + "minPos": 17, + "thisPos": 8, + "va_list": 3, + "argList": 8, + "va_start": 3, + "va_arg": 2, + "va_end": 3, + "afterP": 2, + "minPosLength": 3, + "go": 8, + "otherP": 4, + "strncat": 1, + "goes": 1, + "numberP": 1, + "*numberP": 1, + "occurences": 5, + "done": 1, + "<=thisstr->": 1, + "keepstrP": 2, + "keepLength": 2, + "charValue": 12, + "*keepChars": 1, + "charBLength": 5, + "keepChars": 4, + "*keepLength": 1, + "": 1, + "does": 1, + "back": 1, + "cover": 1, + "effectively": 1, + "gets": 1, + "deleted": 1, + "rfUTF8_FromCodepoint": 1, + "kind": 1, + "non": 1, + "clean": 1, + "way": 1, + "internally": 1, + "uses": 1, + "variable": 1, + "use": 1, + "determine": 1, + "backs": 1, + "by": 1, + "contiuing": 1, + "sure": 2, + "position": 1, + "won": 1, + "array": 1, + "nBytePos": 23, + "RF_STRING_ITERATEB_START": 2, + "RF_STRING_ITERATEB_END": 2, + "pBytePos": 15, + "indexing": 1, + "works": 1, + "pbytePos": 2, + "pth": 2, + "got": 1, + "needed": 10, + "numP": 1, + "*numP": 1, + "just": 1, + "finding": 1, + "foundN": 10, + "bSize": 4, + "bytePositions": 17, + "bSize*sizeof": 1, + "rfStringX_FromString_IN": 1, + "temp.bIndex": 2, + "temp.bytes": 1, + "temp.byteLength": 1, + "rfStringX_Deinit": 1, + "replace": 3, + "removed": 2, + "one": 2, + "orSize": 5, + "nSize": 4, + "number*diff": 1, + "strncpy": 3, + "smaller": 1, + "diff*number": 1, + "remove": 1, + "equal": 1, + "subP": 7, + "RF_String*sub": 2, + "noMatch": 8, + "*subValues": 2, + "subLength": 6, + "subValues": 8, + "*subLength": 2, + "lastBytePos": 4, + "testity": 2, + "res1": 2, + "res2": 2, + "bytesN": 98, + "unused": 3, + "FILE*f": 2, + "utf8BufferSize": 4, + "char*utf8": 3, + "<0)>": 1, + "Failure": 1, + "initialize": 1, + "reading": 1, + "Little": 1, + "Endian": 1, + "32": 1, + "file": 6, + "bytesN=": 1, + "sP": 2, + "encodingP": 1, + "*utf32": 1, + "utf16": 11, + "*encodingP": 1, + "fwrite": 5, + "logging": 5, + "rfUTILS_SwapEndianUS": 10, + "utf32": 10, + "i_WRITE_CHECK": 1, + "RE_FILE_WRITE": 1, + "VALUE": 13, + "rb_cRDiscount": 4, + "rb_rdiscount_to_html": 2, + "self": 9, + "*res": 2, + "szres": 8, + "rb_funcall": 14, + "rb_intern": 15, + "rb_str_buf_new": 2, + "Check_Type": 2, + "T_STRING": 2, + "rb_rdiscount__get_flags": 3, + "MMIOT": 2, + "*doc": 2, + "mkd_string": 2, + "RSTRING_PTR": 2, + "RSTRING_LEN": 2, + "mkd_compile": 2, + "doc": 6, + "mkd_document": 1, + "res": 4, + "EOF": 26, + "rb_str_cat": 4, + "mkd_cleanup": 2, + "rb_respond_to": 1, + "rb_rdiscount_toc_content": 2, + "mkd_toc": 1, + "ruby_obj": 11, + "MKD_TABSTOP": 1, + "MKD_NOHEADER": 1, + "Qtrue": 10, + "MKD_NOPANTS": 1, + "MKD_NOHTML": 1, + "MKD_TOC": 1, + "MKD_NOIMAGE": 1, + "MKD_NOLINKS": 1, + "MKD_NOTABLES": 1, + "MKD_STRICT": 1, + "MKD_AUTOLINK": 1, + "MKD_SAFELINK": 1, + "MKD_NO_EXT": 1, + "Init_rdiscount": 1, + "rb_define_class": 1, + "rb_cObject": 1, + "rb_define_method": 2, + "": 2, + "": 2, + "ULLONG_MAX": 10, + "MIN": 3, + "SET_ERRNO": 47, + "e": 4, + "parser": 334, + "__LINE__": 50, + "CALLBACK_NOTIFY_": 3, + "FOR": 11, + "ER": 4, + "HPE_OK": 10, + "settings": 6, + "on_##FOR": 4, + "HPE_CB_##FOR": 2, + "CALLBACK_NOTIFY": 10, + "CALLBACK_NOTIFY_NOADVANCE": 2, + "CALLBACK_DATA_": 4, + "LEN": 2, + "FOR##_mark": 7, + "CALLBACK_DATA": 10, + "CALLBACK_DATA_NOADVANCE": 6, + "MARK": 7, + "PROXY_CONNECTION": 4, + "CONNECTION": 4, + "CONTENT_LENGTH": 4, + "TRANSFER_ENCODING": 4, + "UPGRADE": 4, + "CHUNKED": 4, + "KEEP_ALIVE": 4, + "CLOSE": 4, + "*method_strings": 1, + "#string": 1, + "unhex": 3, + "normal_url_char": 3, + "T": 3, + "s_dead": 10, + "s_start_req_or_res": 4, + "s_res_or_resp_H": 3, + "s_start_res": 5, + "s_res_H": 3, + "s_res_HT": 4, + "s_res_HTT": 3, + "s_res_HTTP": 3, + "s_res_first_http_major": 3, + "s_res_http_major": 3, + "s_res_first_http_minor": 3, + "s_res_http_minor": 3, + "s_res_first_status_code": 3, + "s_res_status_code": 3, + "s_res_status": 3, + "s_res_line_almost_done": 4, + "s_start_req": 6, + "s_req_method": 4, + "s_req_spaces_before_url": 5, + "s_req_schema": 6, + "s_req_schema_slash": 6, + "s_req_schema_slash_slash": 6, + "s_req_host_start": 8, + "s_req_host_v6_start": 7, + "s_req_host_v6": 7, + "s_req_host_v6_end": 7, + "s_req_host": 8, + "s_req_port_start": 7, + "s_req_port": 6, + "s_req_path": 8, + "s_req_query_string_start": 8, + "s_req_query_string": 7, + "s_req_fragment_start": 7, + "s_req_fragment": 7, + "s_req_http_start": 3, + "s_req_http_H": 3, + "s_req_http_HT": 3, + "s_req_http_HTT": 3, + "s_req_http_HTTP": 3, + "s_req_first_http_major": 3, + "s_req_http_major": 3, + "s_req_first_http_minor": 3, + "s_req_http_minor": 3, + "s_req_line_almost_done": 4, + "s_header_field_start": 12, + "s_header_field": 4, + "s_header_value_start": 4, + "s_header_value": 5, + "s_header_value_lws": 3, + "s_header_almost_done": 6, + "s_chunk_size_start": 4, + "s_chunk_size": 3, + "s_chunk_parameters": 3, + "s_chunk_size_almost_done": 4, + "s_headers_almost_done": 4, + "s_headers_done": 4, + "s_chunk_data": 3, + "s_chunk_data_almost_done": 3, + "s_chunk_data_done": 3, + "s_body_identity": 3, + "s_body_identity_eof": 4, + "s_message_done": 3, + "PARSING_HEADER": 2, + "header_states": 1, + "h_general": 23, + "h_C": 3, + "h_CO": 3, + "h_CON": 3, + "h_matching_connection": 3, + "h_matching_proxy_connection": 3, + "h_matching_content_length": 3, + "h_matching_transfer_encoding": 3, + "h_matching_upgrade": 3, + "h_connection": 6, + "h_content_length": 5, + "h_transfer_encoding": 5, + "h_upgrade": 4, + "h_matching_transfer_encoding_chunked": 3, + "h_matching_connection_keep_alive": 3, + "h_matching_connection_close": 3, + "h_transfer_encoding_chunked": 4, + "h_connection_keep_alive": 4, + "h_connection_close": 4, + "Macros": 1, + "classes": 1, + "depends": 1, + "strict": 2, + "define": 14, + "CR": 18, + "LF": 21, + "LOWER": 7, + "0x20": 1, + "IS_ALPHA": 5, + "z": 47, + "IS_NUM": 14, + "9": 1, + "IS_ALPHANUM": 3, + "IS_HEX": 2, + "TOKEN": 4, + "IS_URL_CHAR": 6, + "IS_HOST_CHAR": 4, + "0x80": 1, + "start_state": 1, + "cond": 1, + "HPE_STRICT": 1, + "HTTP_STRERROR_GEN": 3, + "#n": 1, + "*description": 1, + "http_strerror_tab": 7, + "http_message_needs_eof": 4, + "parse_url_char": 5, + "ch": 145, + "unhex_val": 7, + "*header_field_mark": 1, + "*header_value_mark": 1, + "*url_mark": 1, + "*body_mark": 1, + "message_complete": 7, + "HPE_INVALID_EOF_STATE": 1, + "header_field_mark": 2, + "header_value_mark": 2, + "url_mark": 2, + "HPE_HEADER_OVERFLOW": 1, + "reexecute_byte": 7, + "HPE_CLOSED_CONNECTION": 1, + "message_begin": 3, + "HPE_INVALID_CONSTANT": 3, + "HTTP_HEAD": 2, + "STRICT_CHECK": 15, + "HPE_INVALID_VERSION": 12, + "HPE_INVALID_STATUS": 3, + "HPE_INVALID_METHOD": 4, + "HTTP_CONNECT": 4, + "HTTP_DELETE": 1, + "HTTP_GET": 1, + "HTTP_LOCK": 1, + "HTTP_MKCOL": 2, + "HTTP_NOTIFY": 1, + "HTTP_OPTIONS": 1, + "HTTP_POST": 2, + "HTTP_REPORT": 1, + "HTTP_SUBSCRIBE": 2, + "HTTP_TRACE": 1, + "HTTP_UNLOCK": 2, + "*matcher": 1, + "matcher": 3, + "method_strings": 2, + "HTTP_CHECKOUT": 1, + "HTTP_COPY": 1, + "HTTP_MOVE": 1, + "HTTP_MERGE": 1, + "HTTP_MSEARCH": 1, + "HTTP_MKACTIVITY": 1, + "HTTP_SEARCH": 1, + "HTTP_PROPFIND": 2, + "HTTP_PUT": 2, + "HTTP_PATCH": 1, + "HTTP_PURGE": 1, + "HTTP_UNSUBSCRIBE": 1, + "HTTP_PROPPATCH": 1, + "url": 4, + "HPE_INVALID_URL": 4, + "HPE_LF_EXPECTED": 1, + "HPE_INVALID_HEADER_TOKEN": 2, + "header_field": 5, + "header_value": 6, + "HPE_INVALID_CONTENT_LENGTH": 4, + "NEW_MESSAGE": 6, + "HPE_CB_headers_complete": 1, + "to_read": 6, + "body": 6, + "body_mark": 2, + "HPE_INVALID_CHUNK_SIZE": 2, + "HPE_INVALID_INTERNAL_STATE": 1, + "HPE_UNKNOWN": 1, + "Does": 1, + "find": 1, + "message": 3, + "http_method_str": 1, + "http_errno_name": 1, + "/sizeof": 4, + ".name": 1, + "http_errno_description": 1, + ".description": 1, + "uf": 14, + "old_uf": 4, + "u": 18, + ".off": 2, + "xffff": 1, + "HPE_PAUSED": 2, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 2, + "": 1, + "": 1, + "": 1, + "sharedObjectsStruct": 1, + "shared": 1, + "double": 126, + "R_Zero": 2, + "R_PosInf": 2, + "R_NegInf": 2, + "R_Nan": 2, + "redisServer": 1, + "server": 1, + "redisCommand": 6, + "*commandTable": 1, + "redisCommandTable": 5, + "getCommand": 1, + "setCommand": 1, + "noPreloadGetKeys": 6, + "setnxCommand": 1, + "setexCommand": 1, + "psetexCommand": 1, + "appendCommand": 1, + "strlenCommand": 1, + "delCommand": 1, + "existsCommand": 1, + "setbitCommand": 1, + "getbitCommand": 1, + "setrangeCommand": 1, + "getrangeCommand": 2, + "incrCommand": 1, + "decrCommand": 1, + "mgetCommand": 1, + "rpushCommand": 1, + "lpushCommand": 1, + "rpushxCommand": 1, + "lpushxCommand": 1, + "linsertCommand": 1, + "rpopCommand": 1, + "lpopCommand": 1, + "brpopCommand": 1, + "brpoplpushCommand": 1, + "blpopCommand": 1, + "llenCommand": 1, + "lindexCommand": 1, + "lsetCommand": 1, + "lrangeCommand": 1, + "ltrimCommand": 1, + "lremCommand": 1, + "rpoplpushCommand": 1, + "saddCommand": 1, + "sremCommand": 1, + "smoveCommand": 1, + "sismemberCommand": 1, + "scardCommand": 1, + "spopCommand": 1, + "srandmemberCommand": 1, + "sinterCommand": 2, + "sinterstoreCommand": 1, + "sunionCommand": 1, + "sunionstoreCommand": 1, + "sdiffCommand": 1, + "sdiffstoreCommand": 1, + "zaddCommand": 1, + "zincrbyCommand": 1, + "zremCommand": 1, + "zremrangebyscoreCommand": 1, + "zremrangebyrankCommand": 1, + "zunionstoreCommand": 1, + "zunionInterGetKeys": 4, + "zinterstoreCommand": 1, + "zrangeCommand": 1, + "zrangebyscoreCommand": 1, + "zrevrangebyscoreCommand": 1, + "zcountCommand": 1, + "zrevrangeCommand": 1, + "zcardCommand": 1, + "zscoreCommand": 1, + "zrankCommand": 1, + "zrevrankCommand": 1, + "hsetCommand": 1, + "hsetnxCommand": 1, + "hgetCommand": 1, + "hmsetCommand": 1, + "hmgetCommand": 1, + "hincrbyCommand": 1, + "hincrbyfloatCommand": 1, + "hdelCommand": 1, + "hlenCommand": 1, + "hkeysCommand": 1, + "hvalsCommand": 1, + "hgetallCommand": 1, + "hexistsCommand": 1, + "incrbyCommand": 1, + "decrbyCommand": 1, + "incrbyfloatCommand": 1, + "getsetCommand": 1, + "msetCommand": 1, + "msetnxCommand": 1, + "randomkeyCommand": 1, + "selectCommand": 1, + "moveCommand": 1, + "renameCommand": 1, + "renameGetKeys": 2, + "renamenxCommand": 1, + "expireCommand": 1, + "expireatCommand": 1, + "pexpireCommand": 1, + "pexpireatCommand": 1, + "keysCommand": 1, + "dbsizeCommand": 1, + "authCommand": 3, + "pingCommand": 2, + "echoCommand": 2, + "saveCommand": 1, + "bgsaveCommand": 1, + "bgrewriteaofCommand": 1, + "shutdownCommand": 2, + "lastsaveCommand": 1, + "typeCommand": 1, + "multiCommand": 2, + "execCommand": 2, + "discardCommand": 2, + "syncCommand": 1, + "flushdbCommand": 1, + "flushallCommand": 1, + "sortCommand": 1, + "infoCommand": 4, + "monitorCommand": 2, + "ttlCommand": 1, + "pttlCommand": 1, + "persistCommand": 1, + "slaveofCommand": 2, + "debugCommand": 1, + "configCommand": 1, + "subscribeCommand": 2, + "unsubscribeCommand": 2, + "psubscribeCommand": 2, + "punsubscribeCommand": 2, + "publishCommand": 1, + "watchCommand": 2, + "unwatchCommand": 1, + "clusterCommand": 1, + "restoreCommand": 1, + "migrateCommand": 1, + "askingCommand": 1, + "dumpCommand": 1, + "objectCommand": 1, + "clientCommand": 1, + "evalCommand": 1, + "evalShaCommand": 1, + "slowlogCommand": 1, + "scriptCommand": 2, + "timeCommand": 2, + "bitopCommand": 1, + "bitcountCommand": 1, + "redisLogRaw": 3, + "level": 12, + "syslogLevelMap": 2, + "LOG_DEBUG": 1, + "LOG_INFO": 1, + "LOG_NOTICE": 1, + "LOG_WARNING": 1, + "FILE": 3, + "*fp": 3, + "rawmode": 2, + "REDIS_LOG_RAW": 2, + "xff": 3, + "server.verbosity": 4, + "fp": 13, + "server.logfile": 8, + "fopen": 3, + "msg": 10, + "timeval": 4, + "tv": 8, + "gettimeofday": 4, + "strftime": 1, + "localtime": 1, + "tv.tv_sec": 4, + "snprintf": 2, + "tv.tv_usec/1000": 1, + "getpid": 7, + "server.syslog_enabled": 3, + "syslog": 1, + "redisLog": 33, + "ap": 4, + "REDIS_MAX_LOGMSG_LEN": 1, + "vsnprintf": 1, + "redisLogFromHandler": 2, + "server.daemonize": 5, + "O_APPEND": 2, + "O_CREAT": 2, + "O_WRONLY": 2, + "STDOUT_FILENO": 2, + "ll2string": 3, + "write": 7, + "time": 10, + "oom": 3, + "REDIS_WARNING": 19, + "sleep": 1, + "abort": 1, + "ustime": 7, + "*1000000": 1, + "tv.tv_usec": 3, + "mstime": 5, + "/1000": 1, + "exitFromChild": 1, + "retcode": 3, + "COVERAGE_TEST": 1, + "dictVanillaFree": 1, + "*privdata": 8, + "DICT_NOTUSED": 6, + "privdata": 8, + "zfree": 2, + "dictListDestructor": 2, + "listRelease": 1, + "list*": 1, + "dictSdsKeyCompare": 6, + "*key1": 4, + "*key2": 4, + "l1": 4, + "l2": 3, + "sdslen": 14, + "sds": 13, + "key1": 5, + "key2": 5, + "dictSdsKeyCaseCompare": 2, + "strcasecmp": 13, + "dictRedisObjectDestructor": 7, + "decrRefCount": 6, + "dictSdsDestructor": 4, + "sdsfree": 2, + "dictObjKeyCompare": 2, + "robj": 7, + "*o1": 2, + "*o2": 2, + "o1": 7, + "ptr": 18, + "o2": 7, + "dictObjHash": 2, + "key": 9, + "dictGenHashFunction": 5, + "dictSdsHash": 4, + "dictSdsCaseHash": 2, + "dictGenCaseHashFunction": 1, + "dictEncObjKeyCompare": 4, + "robj*": 3, + "REDIS_ENCODING_INT": 4, + "getDecodedObject": 3, + "dictEncObjHash": 4, + "REDIS_ENCODING_RAW": 1, + "dictType": 8, + "setDictType": 1, + "zsetDictType": 1, + "dbDictType": 2, + "keyptrDictType": 2, + "commandTableDictType": 2, + "hashDictType": 1, + "keylistDictType": 4, + "clusterNodesDictType": 1, + "htNeedsResize": 3, + "dict": 11, + "*dict": 5, + "dictSlots": 3, + "dictSize": 10, + "DICT_HT_INITIAL_SIZE": 2, + "used*100/size": 1, + "REDIS_HT_MINFILL": 1, + "tryResizeHashTables": 2, + "server.dbnum": 8, + "server.db": 23, + ".dict": 9, + "dictResize": 2, + ".expires": 8, + "incrementallyRehash": 2, + "dictIsRehashing": 2, + "dictRehashMilliseconds": 2, + "updateDictResizePolicy": 2, + "server.rdb_child_pid": 12, + "server.aof_child_pid": 10, + "dictEnableResize": 1, + "dictDisableResize": 1, + "activeExpireCycle": 2, + "timelimit": 5, + "*REDIS_EXPIRELOOKUPS_TIME_PERC/REDIS_HZ/100": 1, + "expired": 4, + "redisDb": 3, + "expires": 3, + "slots": 2, + "now": 5, + "num*100/slots": 1, + "REDIS_EXPIRELOOKUPS_PER_CRON": 2, + "dictEntry": 2, + "*de": 2, + "de": 12, + "dictGetRandomKey": 4, + "dictGetSignedIntegerVal": 1, + "dictGetKey": 4, + "*keyobj": 2, + "createStringObject": 11, + "propagateExpire": 2, + "keyobj": 6, + "dbDelete": 2, + "server.stat_expiredkeys": 3, + "xf": 1, + "REDIS_EXPIRELOOKUPS_PER_CRON/4": 1, + "updateLRUClock": 3, + "server.lruclock": 2, + "server.unixtime/REDIS_LRU_CLOCK_RESOLUTION": 1, + "REDIS_LRU_CLOCK_MAX": 1, + "trackOperationsPerSecond": 2, + "server.ops_sec_last_sample_time": 3, + "ops": 1, + "server.stat_numcommands": 4, + "server.ops_sec_last_sample_ops": 3, + "ops_sec": 3, + "ops*1000/t": 1, + "server.ops_sec_samples": 4, + "server.ops_sec_idx": 4, + "%": 2, + "REDIS_OPS_SEC_SAMPLES": 3, + "getOperationsPerSecond": 2, + "sum": 3, + "clientsCronHandleTimeout": 2, + "redisClient": 12, + "time_t": 4, + "server.unixtime": 10, + "server.maxidletime": 3, + "REDIS_SLAVE": 3, + "REDIS_MASTER": 2, + "REDIS_BLOCKED": 2, + "pubsub_channels": 2, + "listLength": 14, + "pubsub_patterns": 2, + "lastinteraction": 3, + "REDIS_VERBOSE": 3, + "freeClient": 1, + "bpop.timeout": 2, + "addReply": 13, + "shared.nullmultibulk": 2, + "unblockClientWaitingData": 1, + "clientsCronResizeQueryBuffer": 2, + "querybuf_size": 3, + "sdsAllocSize": 1, + "querybuf": 6, + "idletime": 2, + "REDIS_MBULK_BIG_ARG": 1, + "querybuf_size/": 1, + "querybuf_peak": 2, + "sdsavail": 1, + "sdsRemoveFreeSpace": 1, + "clientsCron": 2, + "numclients": 3, + "server.clients": 7, + "iterations": 4, + "numclients/": 1, + "REDIS_HZ*10": 1, + "listNode": 4, + "*head": 1, + "listRotate": 1, + "head": 3, + "listFirst": 2, + "listNodeValue": 3, + "run_with_period": 6, + "_ms_": 2, + "loops": 2, + "/REDIS_HZ": 2, + "serverCron": 2, + "aeEventLoop": 2, + "*eventLoop": 2, + "*clientData": 1, + "server.cronloops": 3, + "REDIS_NOTUSED": 5, + "eventLoop": 2, + "clientData": 1, + "server.watchdog_period": 3, + "watchdogScheduleSignal": 1, + "zmalloc_used_memory": 8, + "server.stat_peak_memory": 5, + "server.shutdown_asap": 3, + "prepareForShutdown": 2, + "REDIS_OK": 23, + "vkeys": 8, + "server.activerehashing": 2, + "server.slaves": 9, + "server.aof_rewrite_scheduled": 4, + "rewriteAppendOnlyFileBackground": 2, + "statloc": 5, + "wait3": 1, + "WNOHANG": 1, + "exitcode": 3, + "bysignal": 4, + "backgroundSaveDoneHandler": 1, + "backgroundRewriteDoneHandler": 1, + "server.saveparamslen": 3, + "saveparam": 1, + "*sp": 1, + "server.saveparams": 2, + "server.dirty": 3, + "sp": 4, + "changes": 2, + "server.lastsave": 3, + "seconds": 2, + "REDIS_NOTICE": 13, + "rdbSaveBackground": 1, + "server.rdb_filename": 4, + "server.aof_rewrite_perc": 3, + "server.aof_current_size": 2, + "server.aof_rewrite_min_size": 2, + "base": 1, + "server.aof_rewrite_base_size": 4, + "growth": 3, + "server.aof_current_size*100/base": 1, + "server.aof_flush_postponed_start": 2, + "flushAppendOnlyFile": 2, + "server.masterhost": 7, + "freeClientsInAsyncFreeQueue": 1, + "replicationCron": 1, + "server.cluster_enabled": 6, + "clusterCron": 1, + "beforeSleep": 2, + "*ln": 3, + "server.unblocked_clients": 4, + "ln": 8, + "redisAssert": 1, + "listDelNode": 1, + "REDIS_UNBLOCKED": 1, + "server.current_client": 3, + "processInputBuffer": 1, + "createSharedObjects": 2, + "shared.crlf": 2, + "createObject": 31, + "REDIS_STRING": 31, + "sdsnew": 27, + "shared.ok": 3, + "shared.err": 1, + "shared.emptybulk": 1, + "shared.czero": 1, + "shared.cone": 1, + "shared.cnegone": 1, + "shared.nullbulk": 1, + "shared.emptymultibulk": 1, + "shared.pong": 2, + "shared.queued": 2, + "shared.wrongtypeerr": 1, + "shared.nokeyerr": 1, + "shared.syntaxerr": 2, + "shared.sameobjecterr": 1, + "shared.outofrangeerr": 1, + "shared.noscripterr": 1, + "shared.loadingerr": 2, + "shared.slowscripterr": 2, + "shared.masterdownerr": 2, + "shared.bgsaveerr": 2, + "shared.roslaveerr": 2, + "shared.oomerr": 2, + "shared.space": 1, + "shared.colon": 1, + "shared.plus": 1, + "REDIS_SHARED_SELECT_CMDS": 1, + "shared.select": 1, + "sdscatprintf": 24, + "sdsempty": 8, + "shared.messagebulk": 1, + "shared.pmessagebulk": 1, + "shared.subscribebulk": 1, + "shared.unsubscribebulk": 1, + "shared.psubscribebulk": 1, + "shared.punsubscribebulk": 1, + "shared.del": 1, + "shared.rpop": 1, + "shared.lpop": 1, + "REDIS_SHARED_INTEGERS": 1, + "shared.integers": 2, + "REDIS_SHARED_BULKHDR_LEN": 1, + "shared.mbulkhdr": 1, + "shared.bulkhdr": 1, + "initServerConfig": 2, + "getRandomHexChars": 1, + "server.runid": 3, + "REDIS_RUN_ID_SIZE": 2, + "server.arch_bits": 3, + "server.port": 7, + "REDIS_SERVERPORT": 1, + "server.bindaddr": 2, + "server.unixsocket": 7, + "server.unixsocketperm": 2, + "server.ipfd": 9, + "server.sofd": 9, + "REDIS_DEFAULT_DBNUM": 1, + "REDIS_MAXIDLETIME": 1, + "server.client_max_querybuf_len": 1, + "REDIS_MAX_QUERYBUF_LEN": 1, + "server.loading": 4, + "server.syslog_ident": 2, + "zstrdup": 5, + "server.syslog_facility": 2, + "LOG_LOCAL0": 1, + "server.aof_state": 7, + "REDIS_AOF_OFF": 5, + "server.aof_fsync": 1, + "AOF_FSYNC_EVERYSEC": 1, + "server.aof_no_fsync_on_rewrite": 1, + "REDIS_AOF_REWRITE_PERC": 1, + "REDIS_AOF_REWRITE_MIN_SIZE": 1, + "server.aof_last_fsync": 1, + "server.aof_rewrite_time_last": 2, + "server.aof_rewrite_time_start": 2, + "server.aof_delayed_fsync": 2, + "server.aof_fd": 4, + "server.aof_selected_db": 1, + "server.pidfile": 3, + "server.aof_filename": 3, + "server.requirepass": 4, + "server.rdb_compression": 1, + "server.rdb_checksum": 1, + "server.maxclients": 6, + "REDIS_MAX_CLIENTS": 1, + "server.bpop_blocked_clients": 2, + "server.maxmemory": 6, + "server.maxmemory_policy": 11, + "REDIS_MAXMEMORY_VOLATILE_LRU": 3, + "server.maxmemory_samples": 3, + "server.hash_max_ziplist_entries": 1, + "REDIS_HASH_MAX_ZIPLIST_ENTRIES": 1, + "server.hash_max_ziplist_value": 1, + "REDIS_HASH_MAX_ZIPLIST_VALUE": 1, + "server.list_max_ziplist_entries": 1, + "REDIS_LIST_MAX_ZIPLIST_ENTRIES": 1, + "server.list_max_ziplist_value": 1, + "REDIS_LIST_MAX_ZIPLIST_VALUE": 1, + "server.set_max_intset_entries": 1, + "REDIS_SET_MAX_INTSET_ENTRIES": 1, + "server.zset_max_ziplist_entries": 1, + "REDIS_ZSET_MAX_ZIPLIST_ENTRIES": 1, + "server.zset_max_ziplist_value": 1, + "REDIS_ZSET_MAX_ZIPLIST_VALUE": 1, + "server.repl_ping_slave_period": 1, + "REDIS_REPL_PING_SLAVE_PERIOD": 1, + "server.repl_timeout": 1, + "REDIS_REPL_TIMEOUT": 1, + "server.cluster.configfile": 1, + "server.lua_caller": 1, + "server.lua_time_limit": 1, + "REDIS_LUA_TIME_LIMIT": 1, + "server.lua_client": 1, + "server.lua_timedout": 2, + "resetServerSaveParams": 2, + "appendServerSaveParams": 3, + "*60": 1, + "server.masterauth": 1, + "server.masterport": 2, + "server.master": 3, + "server.repl_state": 6, + "REDIS_REPL_NONE": 1, + "server.repl_syncio_timeout": 1, + "REDIS_REPL_SYNCIO_TIMEOUT": 1, + "server.repl_serve_stale_data": 2, + "server.repl_slave_ro": 2, + "server.repl_down_since": 2, + "server.client_obuf_limits": 9, + "REDIS_CLIENT_LIMIT_CLASS_NORMAL": 3, + ".hard_limit_bytes": 3, + ".soft_limit_bytes": 3, + ".soft_limit_seconds": 3, + "REDIS_CLIENT_LIMIT_CLASS_SLAVE": 3, + "*1024*256": 1, + "*1024*64": 1, + "REDIS_CLIENT_LIMIT_CLASS_PUBSUB": 3, + "*1024*32": 1, + "*1024*8": 1, + "/R_Zero": 2, + "R_Zero/R_Zero": 1, + "server.commands": 1, + "dictCreate": 6, + "populateCommandTable": 2, + "server.delCommand": 1, + "lookupCommandByCString": 3, + "server.multiCommand": 1, + "server.lpushCommand": 1, + "server.slowlog_log_slower_than": 1, + "REDIS_SLOWLOG_LOG_SLOWER_THAN": 1, + "server.slowlog_max_len": 1, + "REDIS_SLOWLOG_MAX_LEN": 1, + "server.assert_failed": 1, + "server.assert_file": 1, + "server.assert_line": 1, + "server.bug_report_start": 1, + "adjustOpenFilesLimit": 2, + "rlim_t": 3, + "maxfiles": 6, + "rlimit": 1, + "limit": 3, + "getrlimit": 1, + "RLIMIT_NOFILE": 2, + "oldlimit": 5, + "limit.rlim_cur": 2, + "limit.rlim_max": 1, + "setrlimit": 1, + "initServer": 2, + "signal": 2, + "SIGHUP": 1, + "SIG_IGN": 2, + "SIGPIPE": 1, + "setupSignalHandlers": 2, + "openlog": 1, + "LOG_PID": 1, + "LOG_NDELAY": 1, + "LOG_NOWAIT": 1, + "listCreate": 6, + "server.clients_to_close": 1, + "server.monitors": 2, + "server.el": 7, + "aeCreateEventLoop": 1, + "zmalloc": 2, + "*server.dbnum": 1, + "anetTcpServer": 1, + "server.neterr": 4, + "ANET_ERR": 2, + "unlink": 3, + "anetUnixServer": 1, + ".blocking_keys": 1, + ".watched_keys": 1, + ".id": 1, + "server.pubsub_channels": 2, + "server.pubsub_patterns": 4, + "listSetFreeMethod": 1, + "freePubsubPattern": 1, + "listSetMatchMethod": 1, + "listMatchPubsubPattern": 1, + "aofRewriteBufferReset": 1, + "server.aof_buf": 3, + "server.rdb_save_time_last": 2, + "server.rdb_save_time_start": 2, + "server.stat_numconnections": 2, + "server.stat_evictedkeys": 3, + "server.stat_starttime": 2, + "server.stat_keyspace_misses": 2, + "server.stat_keyspace_hits": 2, + "server.stat_fork_time": 2, + "server.stat_rejected_conn": 2, + "server.lastbgsave_status": 3, + "server.stop_writes_on_bgsave_err": 2, + "aeCreateTimeEvent": 1, + "aeCreateFileEvent": 2, + "AE_READABLE": 2, + "acceptTcpHandler": 1, + "AE_ERR": 2, + "acceptUnixHandler": 1, + "REDIS_AOF_ON": 2, + "LL*": 1, + "REDIS_MAXMEMORY_NO_EVICTION": 2, + "clusterInit": 1, + "scriptingInit": 1, + "slowlogInit": 1, + "bioInit": 1, + "numcommands": 5, + "sflags": 1, + "retval": 3, + "arity": 3, + "addReplyErrorFormat": 1, + "authenticated": 3, + "proc": 14, + "addReplyError": 6, + "getkeys_proc": 1, + "firstkey": 1, + "hashslot": 3, + "server.cluster.state": 1, + "REDIS_CLUSTER_OK": 1, + "ask": 3, + "clusterNode": 1, + "*n": 1, + "getNodeByQuery": 1, + "server.cluster.myself": 1, + "addReplySds": 3, + "ip": 4, + "freeMemoryIfNeeded": 2, + "REDIS_CMD_DENYOOM": 1, + "REDIS_ERR": 5, + "REDIS_CMD_WRITE": 2, + "REDIS_REPL_CONNECTED": 3, + "tolower": 2, + "REDIS_MULTI": 1, + "queueMultiCommand": 1, + "call": 1, + "REDIS_CALL_FULL": 1, + "save": 2, + "REDIS_SHUTDOWN_SAVE": 1, + "nosave": 2, + "REDIS_SHUTDOWN_NOSAVE": 1, + "SIGKILL": 2, + "rdbRemoveTempFile": 1, + "aof_fsync": 1, + "rdbSave": 1, + "addReplyBulk": 1, + "addReplyMultiBulkLen": 1, + "addReplyBulkLongLong": 2, + "bytesToHuman": 3, + "n/": 3, + "LL*1024*1024": 2, + "LL*1024*1024*1024": 1, + "genRedisInfoString": 2, + "*section": 2, + "info": 64, + "uptime": 2, + "rusage": 1, + "self_ru": 2, + "c_ru": 2, + "lol": 3, + "bib": 3, + "allsections": 12, + "defsections": 11, + "sections": 11, + "section": 14, + "getrusage": 2, + "RUSAGE_SELF": 1, + "RUSAGE_CHILDREN": 1, + "getClientsMaxBuffers": 1, + "utsname": 1, + "sdscat": 14, + "uname": 1, + "REDIS_VERSION": 4, + "redisGitSHA1": 3, + "strtol": 2, + "redisGitDirty": 3, + "name.sysname": 1, + "name.release": 1, + "name.machine": 1, + "aeGetApiName": 1, + "__GNUC_MINOR__": 2, + "__GNUC_PATCHLEVEL__": 1, + "uptime/": 1, + "*24": 1, + "hmem": 3, + "peak_hmem": 3, + "zmalloc_get_rss": 1, + "lua_gc": 1, + "server.lua": 1, + "LUA_GCCOUNT": 1, + "*1024LL": 1, + "zmalloc_get_fragmentation_ratio": 1, + "ZMALLOC_LIB": 2, + "aofRewriteBufferSize": 2, + "bioPendingJobsOfType": 1, + "REDIS_BIO_AOF_FSYNC": 1, + "perc": 3, + "eta": 4, + "elapsed": 3, + "off_t": 1, + "remaining_bytes": 1, + "server.loading_total_bytes": 3, + "server.loading_loaded_bytes": 3, + "server.loading_start_time": 2, + "elapsed*remaining_bytes": 1, + "/server.loading_loaded_bytes": 1, + "REDIS_REPL_TRANSFER": 2, + "server.repl_transfer_left": 1, + "server.repl_transfer_lastio": 1, + "slaveid": 3, + "listIter": 2, + "li": 6, + "listRewind": 2, + "listNext": 2, + "*slave": 2, + "*state": 1, + "anetPeerToString": 1, + "slave": 3, + "replstate": 1, + "REDIS_REPL_WAIT_BGSAVE_START": 1, + "REDIS_REPL_WAIT_BGSAVE_END": 1, + "REDIS_REPL_SEND_BULK": 1, + "REDIS_REPL_ONLINE": 1, + "self_ru.ru_stime.tv_sec": 1, + "self_ru.ru_stime.tv_usec/1000000": 1, + "self_ru.ru_utime.tv_sec": 1, + "self_ru.ru_utime.tv_usec/1000000": 1, + "c_ru.ru_stime.tv_sec": 1, + "c_ru.ru_stime.tv_usec/1000000": 1, + "c_ru.ru_utime.tv_sec": 1, + "c_ru.ru_utime.tv_usec/1000000": 1, + "calls": 4, + "microseconds": 1, + "microseconds/c": 1, + "keys": 4, + "REDIS_MONITOR": 1, + "slaveseldb": 1, + "listAddNodeTail": 1, + "mem_used": 9, + "mem_tofree": 3, + "mem_freed": 4, + "slaves": 3, + "obuf_bytes": 3, + "getClientOutputBufferMemoryUsage": 1, + "k": 15, + "keys_freed": 3, + "bestval": 5, + "bestkey": 9, + "REDIS_MAXMEMORY_ALLKEYS_LRU": 2, + "REDIS_MAXMEMORY_ALLKEYS_RANDOM": 2, + "REDIS_MAXMEMORY_VOLATILE_RANDOM": 1, + "thiskey": 7, + "thisval": 8, + "dictFind": 1, + "dictGetVal": 2, + "estimateObjectIdleTime": 1, + "REDIS_MAXMEMORY_VOLATILE_TTL": 1, + "flushSlavesOutputBuffers": 1, + "linuxOvercommitMemoryValue": 2, + "fgets": 1, + "atoi": 3, + "linuxOvercommitMemoryWarning": 2, + "createPidFile": 2, + "daemonize": 2, + "STDIN_FILENO": 1, + "STDERR_FILENO": 2, + "usage": 2, + "redisAsciiArt": 2, + "*16": 2, + "ascii_logo": 1, + "sigtermHandler": 2, + "sig": 2, + "sigaction": 6, + "act": 6, + "sigemptyset": 2, + "act.sa_mask": 2, + "act.sa_flags": 2, + "act.sa_handler": 1, + "SIGTERM": 1, + "HAVE_BACKTRACE": 1, + "SA_NODEFER": 1, + "SA_RESETHAND": 1, + "SA_SIGINFO": 1, + "act.sa_sigaction": 1, + "sigsegvHandler": 1, + "SIGSEGV": 1, + "SIGBUS": 1, + "SIGFPE": 1, + "SIGILL": 1, + "memtest": 2, + "megabytes": 1, + "passes": 1, + "zmalloc_enable_thread_safeness": 1, + "srand": 1, + "dictSetHashFunctionSeed": 1, + "*configfile": 1, + "configfile": 2, + "sdscatrepr": 1, + "loadServerConfig": 1, + "loadAppendOnlyFile": 1, + "/1000000": 2, + "rdbLoad": 1, + "aeSetBeforeSleepProc": 1, + "aeMain": 1, + "aeDeleteEventLoop": 1, + "READLINE_READLINE_CATS": 3, + "": 1, + "atscntrb_readline_rl_library_version": 1, + "rl_library_version": 1, + "atscntrb_readline_rl_readline_version": 1, + "rl_readline_version": 1, + "atscntrb_readline_readline": 1, + "readline": 1, + "": 1, + "rfUTF8_IsContinuationbyte": 1, + "e.t.c.": 1, + "bIndex": 5, + "RF_NEWLINE_CRLF": 1, + "newLineFound": 1, + "*bufferSize": 1, + "RF_OPTION_FGETS_READBYTESN": 5, + "tempBuff": 6, + "RE_FILE_EOF": 22, + "*eofReached": 14, + "undo": 5, + "peek": 5, + "ahead": 5, + "pointer": 5, + "fseek": 19, + "SEEK_CUR": 19, + "eofReached": 4, + "fgetc": 9, + "RE_FILE_READ": 2, + "c2": 13, + "c3": 9, + "c4": 5, + "i_READ_CHECK": 20, + "///": 4, + "success": 4, + "cc": 24, + "more": 2, + "xC1": 1, + "RE_UTF8_INVALID_SEQUENCE_INVALID_BYTE": 6, + "RE_UTF8_INVALID_SEQUENCE_END": 6, + "RE_UTF8_INVALID_SEQUENCE_CONBYTE": 6, + "decoded": 3, + "RF_HEXGE_C": 1, + "xBF": 2, + "//invalid": 1, + "xFF": 1, + "//if": 1, + "needing": 1, + "v1": 38, + "v2": 26, + "fread": 12, + "RF_HEXGE_US": 4, + "xD800": 8, + "RF_HEXLE_US": 4, + "xDFFF": 8, + "RF_HEXL_US": 8, + "RF_HEXG_US": 8, + "xDBFF": 4, + "RE_UTF16_NO_SURRPAIR": 2, + "xDC00": 4, + "user": 2, + "wants": 2, + "surrogate": 4, + "pair": 4, + "existence": 2, + "i_FSEEK_CHECK": 14, + "depending": 1, + "read": 1, + "backwards": 1, + "RE_UTF8_INVALID_SEQUENCE": 2, + "PY_SSIZE_T_CLEAN": 1, + "Py_PYTHON_H": 1, + "Python": 2, + "headers": 1, + "compile": 1, + "extensions": 1, + "please": 1, + "install": 1, + "development": 1, + "Python.": 1, + "PY_VERSION_HEX": 11, + "Cython": 1, + "requires": 1, + ".": 1, + "offsetof": 2, + "member": 2, + "type*": 1, + "WIN32": 2, + "MS_WINDOWS": 2, + "__stdcall": 2, + "__cdecl": 2, + "__fastcall": 2, + "DL_IMPORT": 2, + "DL_EXPORT": 2, + "PY_LONG_LONG": 5, + "LONG_LONG": 1, + "Py_HUGE_VAL": 2, + "HUGE_VAL": 1, + "PYPY_VERSION": 1, + "CYTHON_COMPILING_IN_PYPY": 3, + "CYTHON_COMPILING_IN_CPYTHON": 6, + "Py_ssize_t": 35, + "PY_SSIZE_T_MAX": 1, + "INT_MAX": 1, + "PY_SSIZE_T_MIN": 1, + "INT_MIN": 1, + "PY_FORMAT_SIZE_T": 1, + "CYTHON_FORMAT_SSIZE_T": 2, + "PyInt_FromSsize_t": 6, + "PyInt_FromLong": 3, + "PyInt_AsSsize_t": 3, + "__Pyx_PyInt_AsInt": 2, + "PyNumber_Index": 1, + "PyNumber_Check": 2, + "PyFloat_Check": 2, + "PyNumber_Int": 1, + "PyErr_Format": 4, + "PyExc_TypeError": 4, + "Py_TYPE": 7, + "tp_name": 4, + "PyObject*": 24, + "__Pyx_PyIndex_Check": 3, + "PyComplex_Check": 1, + "PyIndex_Check": 2, + "PyErr_WarnEx": 1, + "category": 2, + "stacklevel": 1, + "PyErr_Warn": 1, + "__PYX_BUILD_PY_SSIZE_T": 2, + "Py_REFCNT": 1, + "ob_refcnt": 1, + "ob_type": 7, + "Py_SIZE": 1, + "PyVarObject*": 1, + "ob_size": 1, + "PyVarObject_HEAD_INIT": 1, + "PyObject_HEAD_INIT": 1, + "PyType_Modified": 1, + "PyObject": 276, + "itemsize": 1, + "readonly": 1, + "ndim": 2, + "*shape": 1, + "*strides": 1, + "*suboffsets": 1, + "*internal": 1, + "Py_buffer": 6, + "PyBUF_SIMPLE": 1, + "PyBUF_WRITABLE": 3, + "PyBUF_FORMAT": 3, + "PyBUF_ND": 2, + "PyBUF_STRIDES": 6, + "PyBUF_C_CONTIGUOUS": 1, + "PyBUF_F_CONTIGUOUS": 1, + "PyBUF_ANY_CONTIGUOUS": 1, + "PyBUF_INDIRECT": 2, + "PyBUF_RECORDS": 1, + "PyBUF_FULL": 1, + "PY_MAJOR_VERSION": 13, + "__Pyx_BUILTIN_MODULE_NAME": 2, + "__Pyx_PyCode_New": 2, + "l": 7, + "fv": 4, + "cell": 4, + "fline": 4, + "lnos": 4, + "PyCode_New": 2, + "PY_MINOR_VERSION": 1, + "PyUnicode_FromString": 2, + "PyUnicode_Decode": 1, + "Py_TPFLAGS_CHECKTYPES": 1, + "Py_TPFLAGS_HAVE_INDEX": 1, + "Py_TPFLAGS_HAVE_NEWBUFFER": 1, + "PyUnicode_KIND": 1, + "CYTHON_PEP393_ENABLED": 2, + "__Pyx_PyUnicode_READY": 2, + "op": 8, + "PyUnicode_IS_READY": 1, + "_PyUnicode_Ready": 1, + "__Pyx_PyUnicode_GET_LENGTH": 2, + "PyUnicode_GET_LENGTH": 1, + "__Pyx_PyUnicode_READ_CHAR": 2, + "PyUnicode_READ_CHAR": 1, + "__Pyx_PyUnicode_READ": 2, + "PyUnicode_READ": 1, + "PyUnicode_GET_SIZE": 1, + "Py_UCS4": 2, + "PyUnicode_AS_UNICODE": 1, + "Py_UNICODE*": 1, + "PyBaseString_Type": 1, + "PyUnicode_Type": 2, + "PyStringObject": 2, + "PyUnicodeObject": 1, + "PyString_Type": 2, + "PyString_Check": 2, + "PyUnicode_Check": 1, + "PyString_CheckExact": 2, + "PyUnicode_CheckExact": 1, + "PyBytesObject": 1, + "PyBytes_Type": 1, + "PyBytes_Check": 1, + "PyBytes_CheckExact": 1, + "PyBytes_FromString": 2, + "PyString_FromString": 2, + "PyBytes_FromStringAndSize": 1, + "PyString_FromStringAndSize": 1, + "PyBytes_FromFormat": 1, + "PyString_FromFormat": 1, + "PyBytes_DecodeEscape": 1, + "PyString_DecodeEscape": 1, + "PyBytes_AsString": 2, + "PyString_AsString": 1, + "PyBytes_AsStringAndSize": 1, + "PyString_AsStringAndSize": 1, + "PyBytes_Size": 1, + "PyString_Size": 1, + "PyBytes_AS_STRING": 1, + "PyString_AS_STRING": 1, + "PyBytes_GET_SIZE": 1, + "PyString_GET_SIZE": 1, + "PyBytes_Repr": 1, + "PyString_Repr": 1, + "PyBytes_Concat": 1, + "PyString_Concat": 1, + "PyBytes_ConcatAndDel": 1, + "PyString_ConcatAndDel": 1, + "PySet_Check": 1, + "PyObject_TypeCheck": 3, + "PySet_Type": 2, + "PyFrozenSet_Check": 1, + "PyFrozenSet_Type": 1, + "PySet_CheckExact": 2, + "__Pyx_TypeCheck": 1, + "PyTypeObject": 25, + "PyIntObject": 1, + "PyLongObject": 2, + "PyInt_Type": 1, + "PyLong_Type": 1, + "PyInt_Check": 1, + "PyLong_Check": 1, + "PyInt_CheckExact": 1, + "PyLong_CheckExact": 1, + "PyInt_FromString": 1, + "PyLong_FromString": 1, + "PyInt_FromUnicode": 1, + "PyLong_FromUnicode": 1, + "PyLong_FromLong": 1, + "PyInt_FromSize_t": 1, + "PyLong_FromSize_t": 1, + "PyLong_FromSsize_t": 1, + "PyInt_AsLong": 2, + "PyLong_AsLong": 1, + "PyInt_AS_LONG": 1, + "PyLong_AS_LONG": 1, + "PyLong_AsSsize_t": 1, + "PyInt_AsUnsignedLongMask": 1, + "PyLong_AsUnsignedLongMask": 1, + "PyInt_AsUnsignedLongLongMask": 1, + "PyLong_AsUnsignedLongLongMask": 1, + "PyBoolObject": 1, + "Py_hash_t": 1, + "__Pyx_PyInt_FromHash_t": 2, + "__Pyx_PyInt_AsHash_t": 2, + "__Pyx_PySequence_GetSlice": 2, + "PySequence_GetSlice": 2, + "__Pyx_PySequence_SetSlice": 2, + "PySequence_SetSlice": 2, + "__Pyx_PySequence_DelSlice": 2, + "PySequence_DelSlice": 2, + "PyErr_SetString": 3, + "PyExc_SystemError": 3, + "tp_as_mapping": 3, + "PyMethod_New": 2, + "func": 3, + "klass": 1, + "PyInstanceMethod_New": 1, + "__Pyx_GetAttrString": 2, + "PyObject_GetAttrString": 2, + "__Pyx_SetAttrString": 2, + "PyObject_SetAttrString": 2, + "__Pyx_DelAttrString": 2, + "PyObject_DelAttrString": 2, + "__Pyx_NAMESTR": 2, + "__Pyx_DOCSTR": 2, + "__Pyx_PyNumber_Divide": 2, + "PyNumber_TrueDivide": 1, + "__Pyx_PyNumber_InPlaceDivide": 2, + "PyNumber_InPlaceTrueDivide": 1, + "PyNumber_Divide": 1, + "PyNumber_InPlaceDivide": 1, + "__PYX_EXTERN_C": 3, + "_USE_MATH_DEFINES": 1, + "__PYX_HAVE__sklearn__linear_model__sgd_fast": 1, + "__PYX_HAVE_API__sklearn__linear_model__sgd_fast": 1, + "_OPENMP": 1, + "": 1, + "PYREX_WITHOUT_ASSERTIONS": 1, + "CYTHON_WITHOUT_ASSERTIONS": 1, + "CYTHON_INLINE": 65, + "__inline__": 1, + "__inline": 1, + "__STDC_VERSION__": 2, + "L": 1, + "CYTHON_UNUSED": 14, + "**p": 1, + "is_unicode": 1, + "is_str": 1, + "intern": 1, + "__Pyx_StringTabEntry": 2, + "__Pyx_PyBytes_FromUString": 1, + "__Pyx_PyBytes_AsUString": 1, + "__Pyx_Owned_Py_None": 1, + "Py_INCREF": 10, + "Py_None": 8, + "__Pyx_PyBool_FromLong": 1, + "Py_True": 2, + "Py_False": 2, + "__Pyx_PyObject_IsTrue": 1, + "__Pyx_PyNumber_Int": 1, + "__Pyx_PyIndex_AsSsize_t": 1, + "__Pyx_PyInt_FromSize_t": 1, + "__Pyx_PyInt_AsSize_t": 1, + "__pyx_PyFloat_AsDouble": 12, + "PyFloat_CheckExact": 1, + "PyFloat_AS_DOUBLE": 1, + "PyFloat_AsDouble": 2, + "__pyx_PyFloat_AsFloat": 1, + "__builtin_expect": 2, + "*__pyx_m": 1, + "*__pyx_b": 1, + "*__pyx_empty_tuple": 1, + "*__pyx_empty_bytes": 1, + "__pyx_lineno": 58, + "__pyx_clineno": 58, + "__pyx_cfilenm": 1, + "__FILE__": 4, + "*__pyx_filename": 7, + "CYTHON_CCOMPLEX": 12, + "_Complex_I": 3, + "": 1, + "": 1, + "__sun__": 1, + "fj": 1, + "*__pyx_f": 1, + "IS_UNSIGNED": 1, + "__Pyx_StructField_": 2, + "__PYX_BUF_FLAGS_PACKED_STRUCT": 1, + "__Pyx_StructField_*": 1, + "fields": 1, + "arraysize": 1, + "typegroup": 1, + "is_unsigned": 1, + "__Pyx_TypeInfo": 2, + "__Pyx_TypeInfo*": 2, + "offset": 1, + "__Pyx_StructField": 2, + "__Pyx_StructField*": 1, + "field": 1, + "parent_offset": 1, + "__Pyx_BufFmt_StackElem": 1, + "root": 1, + "__Pyx_BufFmt_StackElem*": 2, + "fmt_offset": 1, + "new_count": 1, + "enc_count": 1, + "struct_alignment": 1, + "is_complex": 1, + "enc_type": 1, + "new_packmode": 1, + "enc_packmode": 1, + "is_valid_array": 1, + "__Pyx_BufFmt_Context": 1, + "npy_int8": 1, + "__pyx_t_5numpy_int8_t": 1, + "npy_int16": 1, + "__pyx_t_5numpy_int16_t": 1, + "npy_int32": 1, + "__pyx_t_5numpy_int32_t": 4, + "npy_int64": 1, + "__pyx_t_5numpy_int64_t": 1, + "npy_uint8": 1, + "__pyx_t_5numpy_uint8_t": 1, + "npy_uint16": 1, + "__pyx_t_5numpy_uint16_t": 1, + "npy_uint32": 1, + "__pyx_t_5numpy_uint32_t": 1, + "npy_uint64": 1, + "__pyx_t_5numpy_uint64_t": 1, + "npy_float32": 1, + "__pyx_t_5numpy_float32_t": 1, + "npy_float64": 1, + "__pyx_t_5numpy_float64_t": 4, + "npy_long": 1, + "__pyx_t_5numpy_int_t": 1, + "npy_longlong": 2, + "__pyx_t_5numpy_long_t": 1, + "__pyx_t_5numpy_longlong_t": 1, + "npy_ulong": 1, + "__pyx_t_5numpy_uint_t": 1, + "npy_ulonglong": 2, + "__pyx_t_5numpy_ulong_t": 1, + "__pyx_t_5numpy_ulonglong_t": 1, + "npy_intp": 1, + "__pyx_t_5numpy_intp_t": 1, + "npy_uintp": 1, + "__pyx_t_5numpy_uintp_t": 1, + "npy_double": 2, + "__pyx_t_5numpy_float_t": 1, + "__pyx_t_5numpy_double_t": 1, + "npy_longdouble": 1, + "__pyx_t_5numpy_longdouble_t": 1, + "__pyx_t_7sklearn_5utils_13weight_vector_DOUBLE": 2, + "__pyx_t_7sklearn_5utils_13weight_vector_INTEGER": 1, + "__pyx_t_7sklearn_5utils_11seq_dataset_DOUBLE": 7, + "__pyx_t_7sklearn_5utils_11seq_dataset_INTEGER": 7, + "__pyx_t_7sklearn_12linear_model_8sgd_fast_DOUBLE": 4, + "__pyx_t_7sklearn_12linear_model_8sgd_fast_INTEGER": 3, + "std": 8, + "complex": 2, + "__pyx_t_float_complex": 27, + "_Complex": 2, + "real": 2, + "imag": 2, + "__pyx_t_double_complex": 27, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction": 15, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression": 11, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber": 6, + "__pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset": 5, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 6, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification": 7, + "__pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset": 2, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Log": 5, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge": 6, + "__pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset": 2, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 6, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber": 5, + "__pyx_obj_7sklearn_5utils_13weight_vector_WeightVector": 3, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss": 5, + "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive": 6, + "npy_cfloat": 1, + "__pyx_t_5numpy_cfloat_t": 1, + "npy_cdouble": 2, + "__pyx_t_5numpy_cdouble_t": 1, + "npy_clongdouble": 1, + "__pyx_t_5numpy_clongdouble_t": 1, + "__pyx_t_5numpy_complex_t": 1, + "PyObject_HEAD": 3, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction": 5, + "*__pyx_vtab": 3, + "__pyx_base": 18, + "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset": 4, + "n_samples": 1, + "epsilon": 2, + "current_index": 2, + "stride": 2, + "*X_data_ptr": 2, + "*X_indptr_ptr": 1, + "*X_indices_ptr": 1, + "*Y_data_ptr": 2, + "PyArrayObject": 8, + "*feature_indices": 2, + "*feature_indices_ptr": 2, + "*index": 2, + "*index_data_ptr": 2, + "*sample_weight_data": 2, + "threshold": 2, + "n_features": 2, + "__pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector": 3, + "*w_data_ptr": 1, + "wscale": 1, + "sq_norm": 1, + "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_SequentialDataset": 1, + "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset": 2, + "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_ArrayDataset": 1, + "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset": 2, + "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_CSRDataset": 1, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 2, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression": 3, + "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 1, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 2, + "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 1, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber": 2, + "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Huber": 1, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge": 2, + "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification": 1, + "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Hinge": 1, + "*__pyx_vtabptr_7sklearn_5utils_13weight_vector_WeightVector": 1, + "CYTHON_REFNANNY": 3, + "__Pyx_RefNannyAPIStruct": 3, + "*__Pyx_RefNanny": 1, + "*__Pyx_RefNannyImportAPI": 1, + "*modname": 1, + "__Pyx_RefNannyDeclarations": 11, + "*__pyx_refnanny": 1, + "WITH_THREAD": 1, + "__Pyx_RefNannySetupContext": 12, + "acquire_gil": 4, + "PyGILState_STATE": 1, + "__pyx_gilstate_save": 2, + "PyGILState_Ensure": 1, + "__pyx_refnanny": 8, + "__Pyx_RefNanny": 8, + "SetupContext": 3, + "PyGILState_Release": 1, + "__Pyx_RefNannyFinishContext": 14, + "FinishContext": 1, + "__Pyx_INCREF": 6, + "INCREF": 1, + "__Pyx_DECREF": 20, + "DECREF": 1, + "__Pyx_GOTREF": 24, + "GOTREF": 1, + "__Pyx_GIVEREF": 9, + "GIVEREF": 1, + "__Pyx_XINCREF": 2, + "__Pyx_XDECREF": 20, + "__Pyx_XGOTREF": 2, + "__Pyx_XGIVEREF": 5, + "Py_DECREF": 2, + "Py_XINCREF": 1, + "Py_XDECREF": 1, + "__Pyx_CLEAR": 1, + "__Pyx_XCLEAR": 1, + "*__Pyx_GetName": 1, + "__Pyx_ErrRestore": 1, + "*type": 4, + "*tb": 2, + "__Pyx_ErrFetch": 1, + "**type": 1, + "**value": 1, + "**tb": 1, + "__Pyx_Raise": 4, + "*cause": 1, + "__Pyx_RaiseArgtupleInvalid": 7, + "func_name": 2, + "num_min": 1, + "num_max": 1, + "num_found": 1, + "__Pyx_RaiseDoubleKeywordsError": 1, + "kw_name": 1, + "__Pyx_ParseOptionalKeywords": 4, + "*kwds": 1, + "**argnames": 1, + "*kwds2": 1, + "*values": 1, + "num_pos_args": 1, + "function_name": 1, + "__Pyx_ArgTypeTest": 1, + "none_allowed": 1, + "__Pyx_GetBufferAndValidate": 1, + "Py_buffer*": 2, + "dtype": 1, + "nd": 1, + "cast": 1, + "__Pyx_SafeReleaseBuffer": 1, + "__Pyx_TypeTest": 1, + "__Pyx_RaiseBufferFallbackError": 1, + "*__Pyx_GetItemInt_Generic": 1, + "*r": 7, + "PyObject_GetItem": 1, + "__Pyx_GetItemInt_List": 1, + "to_py_func": 6, + "__Pyx_GetItemInt_List_Fast": 1, + "__Pyx_GetItemInt_Generic": 6, + "*__Pyx_GetItemInt_List_Fast": 1, + "PyList_GET_SIZE": 5, + "PyList_GET_ITEM": 3, + "PySequence_GetItem": 3, + "__Pyx_GetItemInt_Tuple": 1, + "__Pyx_GetItemInt_Tuple_Fast": 1, + "*__Pyx_GetItemInt_Tuple_Fast": 1, + "PyTuple_GET_SIZE": 14, + "PyTuple_GET_ITEM": 15, + "__Pyx_GetItemInt": 1, + "__Pyx_GetItemInt_Fast": 2, + "PyList_CheckExact": 1, + "PyTuple_CheckExact": 1, + "PySequenceMethods": 1, + "*m": 1, + "tp_as_sequence": 1, + "sq_item": 2, + "sq_length": 2, + "PySequence_Check": 1, + "__Pyx_RaiseTooManyValuesError": 1, + "expected": 2, + "__Pyx_RaiseNeedMoreValuesError": 1, + "__Pyx_RaiseNoneNotIterableError": 1, + "__Pyx_IterFinish": 1, + "__Pyx_IternextUnpackEndCheck": 1, + "*retval": 1, + "shape": 1, + "strides": 1, + "suboffsets": 1, + "__Pyx_Buf_DimInfo": 2, + "pybuffer": 1, + "__Pyx_Buffer": 2, + "*rcbuffer": 1, + "diminfo": 1, + "__Pyx_LocalBuf_ND": 1, + "__Pyx_GetBuffer": 2, + "*view": 2, + "__Pyx_ReleaseBuffer": 2, + "PyObject_GetBuffer": 1, + "PyBuffer_Release": 1, + "__Pyx_zeros": 1, + "__Pyx_minusones": 1, + "*__Pyx_Import": 1, + "*from_list": 1, + "__Pyx_RaiseImportError": 1, + "__Pyx_Print": 1, + "__pyx_print": 1, + "__pyx_print_kwargs": 1, + "__Pyx_PrintOne": 1, + "__Pyx_CREAL": 4, + ".real": 3, + "__Pyx_CIMAG": 4, + ".imag": 3, + "__real__": 1, + "__imag__": 1, + "__Pyx_SET_CREAL": 2, + "__Pyx_SET_CIMAG": 2, + "__pyx_t_float_complex_from_parts": 1, + "__Pyx_c_eqf": 2, + "__Pyx_c_sumf": 2, + "__Pyx_c_difff": 2, + "__Pyx_c_prodf": 2, + "__Pyx_c_quotf": 2, + "__Pyx_c_negf": 2, + "__Pyx_c_is_zerof": 3, + "__Pyx_c_conjf": 3, + "conj": 3, + "__Pyx_c_absf": 3, + "abs": 2, + "__Pyx_c_powf": 3, + "pow": 2, + "conjf": 1, + "cabsf": 1, + "cpowf": 1, + "__pyx_t_double_complex_from_parts": 1, + "__Pyx_c_eq": 2, + "__Pyx_c_sum": 2, + "__Pyx_c_diff": 2, + "__Pyx_c_prod": 2, + "__Pyx_c_quot": 2, + "__Pyx_c_neg": 2, + "__Pyx_c_is_zero": 3, + "__Pyx_c_conj": 3, + "__Pyx_c_abs": 3, + "__Pyx_c_pow": 3, + "cabs": 1, + "cpow": 1, + "__Pyx_PyInt_AsUnsignedChar": 1, + "__Pyx_PyInt_AsUnsignedShort": 1, + "__Pyx_PyInt_AsUnsignedInt": 1, + "__Pyx_PyInt_AsChar": 1, + "__Pyx_PyInt_AsShort": 1, + "signed": 5, + "__Pyx_PyInt_AsSignedChar": 1, + "__Pyx_PyInt_AsSignedShort": 1, + "__Pyx_PyInt_AsSignedInt": 1, + "__Pyx_PyInt_AsLongDouble": 1, + "__Pyx_PyInt_AsUnsignedLong": 1, + "__Pyx_PyInt_AsUnsignedLongLong": 1, + "__Pyx_PyInt_AsLong": 1, + "__Pyx_PyInt_AsLongLong": 1, + "__Pyx_PyInt_AsSignedLong": 1, + "__Pyx_PyInt_AsSignedLongLong": 1, + "__Pyx_WriteUnraisable": 4, + "clineno": 1, + "lineno": 1, + "*filename": 2, + "__Pyx_check_binary_version": 1, + "__Pyx_SetVtable": 1, + "*vtable": 1, + "__Pyx_PyIdentifier_FromString": 3, + "*__Pyx_ImportModule": 1, + "*__Pyx_ImportType": 1, + "*module_name": 1, + "*class_name": 1, + "__Pyx_GetVtable": 1, + "code_line": 4, + "PyCodeObject*": 2, + "code_object": 2, + "__Pyx_CodeObjectCacheEntry": 1, + "__Pyx_CodeObjectCache": 2, + "max_count": 1, + "__Pyx_CodeObjectCacheEntry*": 2, + "entries": 2, + "__pyx_code_cache": 1, + "__pyx_bisect_code_objects": 1, + "PyCodeObject": 1, + "*__pyx_find_code_object": 1, + "__pyx_insert_code_object": 1, + "__Pyx_AddTraceback": 7, + "*funcname": 1, + "c_line": 1, + "py_line": 1, + "__Pyx_InitStrings": 1, + "*__pyx_ptype_7cpython_4type_type": 1, + "*__pyx_ptype_5numpy_dtype": 1, + "*__pyx_ptype_5numpy_flatiter": 1, + "*__pyx_ptype_5numpy_broadcast": 1, + "*__pyx_ptype_5numpy_ndarray": 1, + "*__pyx_ptype_5numpy_ufunc": 1, + "*__pyx_f_5numpy__util_dtypestring": 1, + "PyArray_Descr": 1, + "*__pyx_ptype_7sklearn_5utils_13weight_vector_WeightVector": 1, + "*__pyx_ptype_7sklearn_5utils_11seq_dataset_SequentialDataset": 1, + "*__pyx_ptype_7sklearn_5utils_11seq_dataset_ArrayDataset": 1, + "*__pyx_ptype_7sklearn_5utils_11seq_dataset_CSRDataset": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_LossFunction": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Regression": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Classification": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_ModifiedHuber": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Hinge": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Log": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredLoss": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Huber": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 1, + "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive": 1, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_max": 1, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_min": 1, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_sqnorm": 1, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty": 1, + "__Pyx_TypeInfo_nn___pyx_t_7sklearn_12linear_model_8sgd_fast_DOUBLE": 1, + "__Pyx_MODULE_NAME": 1, + "__pyx_module_is_main_sklearn__linear_model__sgd_fast": 1, + "*__pyx_builtin_NotImplementedError": 1, + "*__pyx_builtin_range": 1, + "*__pyx_builtin_ValueError": 1, + "*__pyx_builtin_RuntimeError": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 2, + "*__pyx_v_self": 52, + "__pyx_v_p": 46, + "__pyx_v_y": 46, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 2, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 2, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_2dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_2dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_2dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_4__reduce__": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge___init__": 1, + "__pyx_v_threshold": 2, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_2loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_4dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_6__reduce__": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge___init__": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_2loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_4dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_6__reduce__": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_2dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_4__reduce__": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_2dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_4__reduce__": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber___init__": 1, + "__pyx_v_c": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_2loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_4dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_6__reduce__": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive___init__": 1, + "__pyx_v_epsilon": 2, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_2loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_4dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_6__reduce__": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive___init__": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_2loss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_4dloss": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_6__reduce__": 1, + "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd": 1, + "*__pyx_self": 1, + "*__pyx_v_weights": 1, + "__pyx_v_intercept": 1, + "*__pyx_v_loss": 1, + "__pyx_v_penalty_type": 1, + "__pyx_v_alpha": 1, + "__pyx_v_C": 1, + "__pyx_v_rho": 1, + "*__pyx_v_dataset": 1, + "__pyx_v_n_iter": 1, + "__pyx_v_fit_intercept": 1, + "__pyx_v_verbose": 1, + "__pyx_v_shuffle": 1, + "*__pyx_v_seed": 1, + "__pyx_v_weight_pos": 1, + "__pyx_v_weight_neg": 1, + "__pyx_v_learning_rate": 1, + "__pyx_v_eta0": 1, + "__pyx_v_power_t": 1, + "__pyx_v_t": 1, + "__pyx_v_intercept_decay": 1, + "__pyx_pf_5numpy_7ndarray___getbuffer__": 1, + "*__pyx_v_info": 2, + "__pyx_v_flags": 1, + "__pyx_pf_5numpy_7ndarray_2__releasebuffer__": 1, + "__pyx_k_1": 1, + "__pyx_k_2": 1, + "__pyx_k_3": 1, + "__pyx_k_4": 1, + "__pyx_k_6": 1, + "__pyx_k_8": 1, + "__pyx_k_10": 1, + "__pyx_k_12": 1, + "__pyx_k_13": 1, + "__pyx_k_16": 1, + "__pyx_k_20": 1, + "__pyx_k_21": 1, + "__pyx_k__B": 1, + "__pyx_k__C": 1, + "__pyx_k__H": 1, + "__pyx_k__I": 1, + "__pyx_k__L": 1, + "__pyx_k__O": 1, + "__pyx_k__Q": 1, + "__pyx_k__b": 1, + "__pyx_k__c": 1, + "__pyx_k__d": 1, + "__pyx_k__f": 1, + "__pyx_k__g": 1, + "__pyx_k__h": 1, + "__pyx_k__i": 1, + "__pyx_k__l": 1, + "__pyx_k__p": 1, + "__pyx_k__q": 1, + "__pyx_k__t": 1, + "__pyx_k__u": 1, + "__pyx_k__w": 1, + "__pyx_k__y": 1, + "__pyx_k__Zd": 1, + "__pyx_k__Zf": 1, + "__pyx_k__Zg": 1, + "__pyx_k__np": 1, + "__pyx_k__any": 1, + "__pyx_k__eta": 1, + "__pyx_k__rho": 1, + "__pyx_k__sys": 1, + "__pyx_k__eta0": 1, + "__pyx_k__loss": 1, + "__pyx_k__seed": 1, + "__pyx_k__time": 1, + "__pyx_k__xnnz": 1, + "__pyx_k__alpha": 1, + "__pyx_k__count": 1, + "__pyx_k__dloss": 1, + "__pyx_k__dtype": 1, + "__pyx_k__epoch": 1, + "__pyx_k__isinf": 1, + "__pyx_k__isnan": 1, + "__pyx_k__numpy": 1, + "__pyx_k__order": 1, + "__pyx_k__range": 1, + "__pyx_k__shape": 1, + "__pyx_k__zeros": 1, + "__pyx_k__n_iter": 1, + "__pyx_k__update": 1, + "__pyx_k__dataset": 1, + "__pyx_k__epsilon": 1, + "__pyx_k__float64": 1, + "__pyx_k__nonzero": 1, + "__pyx_k__power_t": 1, + "__pyx_k__shuffle": 1, + "__pyx_k__sumloss": 1, + "__pyx_k__t_start": 1, + "__pyx_k__verbose": 1, + "__pyx_k__weights": 1, + "__pyx_k____main__": 1, + "__pyx_k____test__": 1, + "__pyx_k__is_hinge": 1, + "__pyx_k__intercept": 1, + "__pyx_k__n_samples": 1, + "__pyx_k__plain_sgd": 1, + "__pyx_k__threshold": 1, + "__pyx_k__x_ind_ptr": 1, + "__pyx_k__ValueError": 1, + "__pyx_k__n_features": 1, + "__pyx_k__q_data_ptr": 1, + "__pyx_k__weight_neg": 1, + "__pyx_k__weight_pos": 1, + "__pyx_k__x_data_ptr": 1, + "__pyx_k__RuntimeError": 1, + "__pyx_k__class_weight": 1, + "__pyx_k__penalty_type": 1, + "__pyx_k__fit_intercept": 1, + "__pyx_k__learning_rate": 1, + "__pyx_k__sample_weight": 1, + "__pyx_k__intercept_decay": 1, + "__pyx_k__NotImplementedError": 1, + "*__pyx_kp_s_1": 1, + "*__pyx_kp_u_10": 1, + "*__pyx_kp_u_12": 1, + "*__pyx_kp_u_13": 1, + "*__pyx_kp_u_16": 1, + "*__pyx_kp_s_2": 1, + "*__pyx_kp_s_20": 1, + "*__pyx_n_s_21": 1, + "*__pyx_kp_s_3": 1, + "*__pyx_kp_s_4": 1, + "*__pyx_kp_u_6": 1, + "*__pyx_kp_u_8": 1, + "*__pyx_n_s__C": 1, + "*__pyx_n_s__NotImplementedError": 1, + "*__pyx_n_s__RuntimeError": 1, + "*__pyx_n_s__ValueError": 1, + "*__pyx_n_s____main__": 1, + "*__pyx_n_s____test__": 1, + "*__pyx_n_s__alpha": 1, + "*__pyx_n_s__any": 1, + "*__pyx_n_s__c": 1, + "*__pyx_n_s__class_weight": 1, + "*__pyx_n_s__count": 1, + "*__pyx_n_s__dataset": 1, + "*__pyx_n_s__dloss": 1, + "*__pyx_n_s__dtype": 1, + "*__pyx_n_s__epoch": 1, + "*__pyx_n_s__epsilon": 1, + "*__pyx_n_s__eta": 1, + "*__pyx_n_s__eta0": 1, + "*__pyx_n_s__fit_intercept": 1, + "*__pyx_n_s__float64": 1, + "*__pyx_n_s__i": 1, + "*__pyx_n_s__intercept": 1, + "*__pyx_n_s__intercept_decay": 1, + "*__pyx_n_s__is_hinge": 1, + "*__pyx_n_s__isinf": 1, + "*__pyx_n_s__isnan": 1, + "*__pyx_n_s__learning_rate": 1, + "*__pyx_n_s__loss": 1, + "*__pyx_n_s__n_features": 1, + "*__pyx_n_s__n_iter": 1, + "*__pyx_n_s__n_samples": 1, + "*__pyx_n_s__nonzero": 1, + "*__pyx_n_s__np": 1, + "*__pyx_n_s__numpy": 1, + "*__pyx_n_s__order": 1, + "*__pyx_n_s__p": 1, + "*__pyx_n_s__penalty_type": 1, + "*__pyx_n_s__plain_sgd": 1, + "*__pyx_n_s__power_t": 1, + "*__pyx_n_s__q": 1, + "*__pyx_n_s__q_data_ptr": 1, + "*__pyx_n_s__range": 1, + "*__pyx_n_s__rho": 1, + "*__pyx_n_s__sample_weight": 1, + "*__pyx_n_s__seed": 1, + "*__pyx_n_s__shape": 1, + "*__pyx_n_s__shuffle": 1, + "*__pyx_n_s__sumloss": 1, + "*__pyx_n_s__sys": 1, + "*__pyx_n_s__t": 1, + "*__pyx_n_s__t_start": 1, + "*__pyx_n_s__threshold": 1, + "*__pyx_n_s__time": 1, + "*__pyx_n_s__u": 1, + "*__pyx_n_s__update": 1, + "*__pyx_n_s__verbose": 1, + "*__pyx_n_s__w": 1, + "*__pyx_n_s__weight_neg": 1, + "*__pyx_n_s__weight_pos": 1, + "*__pyx_n_s__weights": 1, + "*__pyx_n_s__x_data_ptr": 1, + "*__pyx_n_s__x_ind_ptr": 1, + "*__pyx_n_s__xnnz": 1, + "*__pyx_n_s__y": 1, + "*__pyx_n_s__zeros": 1, + "*__pyx_int_15": 1, + "*__pyx_k_tuple_5": 1, + "*__pyx_k_tuple_7": 1, + "*__pyx_k_tuple_9": 1, + "*__pyx_k_tuple_11": 1, + "*__pyx_k_tuple_14": 1, + "*__pyx_k_tuple_15": 1, + "*__pyx_k_tuple_17": 1, + "*__pyx_k_tuple_18": 1, + "*__pyx_k_codeobj_19": 1, + "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_1loss": 3, + "*__pyx_args": 9, + "*__pyx_kwds": 9, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, + "__pyx_skip_dispatch": 6, + "__pyx_r": 39, + "*__pyx_t_1": 6, + "*__pyx_t_2": 3, + "*__pyx_t_3": 3, + "*__pyx_t_4": 3, + "__pyx_t_5": 12, + "__pyx_v_self": 15, + "tp_dictoffset": 3, + "__pyx_t_1": 69, + "PyObject_GetAttr": 3, + "__pyx_n_s__loss": 2, + "__pyx_filename": 51, + "__pyx_f": 42, + "__pyx_L1_error": 33, + "PyCFunction_Check": 3, + "PyCFunction_GET_FUNCTION": 3, + "PyCFunction": 3, + "__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_1loss": 1, + "__pyx_t_2": 21, + "PyFloat_FromDouble": 9, + "__pyx_t_3": 39, + "__pyx_t_4": 27, + "PyTuple_New": 3, + "PyTuple_SET_ITEM": 6, + "PyObject_Call": 6, + "PyErr_Occurred": 9, + "__pyx_L0": 18, + "__pyx_builtin_NotImplementedError": 3, + "__pyx_empty_tuple": 3, + "__pyx_doc_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, + "*__pyx_r": 6, + "**__pyx_pyargnames": 3, + "__pyx_n_s__p": 6, + "__pyx_n_s__y": 6, + "values": 30, + "__pyx_kwds": 15, + "kw_args": 15, + "pos_args": 12, + "__pyx_args": 21, + "__pyx_L5_argtuple_error": 12, + "PyDict_Size": 3, + "PyDict_GetItem": 6, + "__pyx_L3_error": 18, + "__pyx_pyargnames": 3, + "__pyx_L4_argument_unpacking_done": 6, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, + "__pyx_vtab": 2, + "loss": 1, + "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_3dloss": 3, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss": 1, + "__pyx_n_s__dloss": 1, + "__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_3dloss": 1, + "__pyx_doc_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 1, + "dloss": 1, + "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression_1loss": 3, + "__pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 1, + "__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression_1loss": 1, + "__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 1, + "__pyx_base.__pyx_vtab": 1, + "__pyx_base.loss": 1 + }, + "ApacheConf": { + "ServerSignature": 1, + "Off": 1, + "RewriteCond": 15, + "%": 48, + "{": 16, + "REQUEST_METHOD": 1, + "}": 16, + "(": 16, + "HEAD": 1, + "|": 80, + "TRACE": 1, + "DELETE": 1, + "TRACK": 1, + ")": 17, + "[": 17, + "NC": 13, + "OR": 14, + "]": 17, + "THE_REQUEST": 1, + "r": 1, + "n": 1, + "A": 6, + "D": 6, + "HTTP_REFERER": 1, + "<|>": 6, + "C": 5, + "E": 5, + "HTTP_COOKIE": 1, + "REQUEST_URI": 1, + "/": 3, + ";": 2, + "<": 1, + ".": 7, + "HTTP_USER_AGENT": 5, + "java": 1, + "curl": 2, + "wget": 2, + "winhttp": 1, + "HTTrack": 1, + "clshttp": 1, + "archiver": 1, + "loader": 1, + "email": 1, + "harvest": 1, + "extract": 1, + "grab": 1, + "miner": 1, + "libwww": 1, + "-": 43, + "perl": 1, + "python": 1, + "nikto": 1, + "scan": 1, + "#Block": 1, + "mySQL": 1, + "injects": 1, + "QUERY_STRING": 5, + ".*": 3, + "*": 1, + "union": 1, + "select": 1, + "insert": 1, + "cast": 1, + "set": 1, + "declare": 1, + "drop": 1, + "update": 1, + "md5": 1, + "benchmark": 1, + "./": 1, + "localhost": 1, + "loopback": 1, + ".0": 2, + ".1": 1, + "a": 1, + "z0": 1, + "RewriteRule": 1, + "index.php": 1, + "F": 1, + "#": 182, + "ServerRoot": 2, + "#Listen": 2, + "Listen": 2, + "LoadModule": 126, + "authn_file_module": 2, + "libexec/apache2/mod_authn_file.so": 1, + "authn_dbm_module": 2, + "libexec/apache2/mod_authn_dbm.so": 1, + "authn_anon_module": 2, + "libexec/apache2/mod_authn_anon.so": 1, + "authn_dbd_module": 2, + "libexec/apache2/mod_authn_dbd.so": 1, + "authn_default_module": 2, + "libexec/apache2/mod_authn_default.so": 1, + "authz_host_module": 2, + "libexec/apache2/mod_authz_host.so": 1, + "authz_groupfile_module": 2, + "libexec/apache2/mod_authz_groupfile.so": 1, + "authz_user_module": 2, + "libexec/apache2/mod_authz_user.so": 1, + "authz_dbm_module": 2, + "libexec/apache2/mod_authz_dbm.so": 1, + "authz_owner_module": 2, + "libexec/apache2/mod_authz_owner.so": 1, + "authz_default_module": 2, + "libexec/apache2/mod_authz_default.so": 1, + "auth_basic_module": 2, + "libexec/apache2/mod_auth_basic.so": 1, + "auth_digest_module": 2, + "libexec/apache2/mod_auth_digest.so": 1, + "cache_module": 2, + "libexec/apache2/mod_cache.so": 1, + "disk_cache_module": 2, + "libexec/apache2/mod_disk_cache.so": 1, + "mem_cache_module": 2, + "libexec/apache2/mod_mem_cache.so": 1, + "dbd_module": 2, + "libexec/apache2/mod_dbd.so": 1, + "dumpio_module": 2, + "libexec/apache2/mod_dumpio.so": 1, + "reqtimeout_module": 1, + "libexec/apache2/mod_reqtimeout.so": 1, + "ext_filter_module": 2, + "libexec/apache2/mod_ext_filter.so": 1, + "include_module": 2, + "libexec/apache2/mod_include.so": 1, + "filter_module": 2, + "libexec/apache2/mod_filter.so": 1, + "substitute_module": 1, + "libexec/apache2/mod_substitute.so": 1, + "deflate_module": 2, + "libexec/apache2/mod_deflate.so": 1, + "log_config_module": 3, + "libexec/apache2/mod_log_config.so": 1, + "log_forensic_module": 2, + "libexec/apache2/mod_log_forensic.so": 1, + "logio_module": 3, + "libexec/apache2/mod_logio.so": 1, + "env_module": 2, + "libexec/apache2/mod_env.so": 1, + "mime_magic_module": 2, + "libexec/apache2/mod_mime_magic.so": 1, + "cern_meta_module": 2, + "libexec/apache2/mod_cern_meta.so": 1, + "expires_module": 2, + "libexec/apache2/mod_expires.so": 1, + "headers_module": 2, + "libexec/apache2/mod_headers.so": 1, + "ident_module": 2, + "libexec/apache2/mod_ident.so": 1, + "usertrack_module": 2, + "libexec/apache2/mod_usertrack.so": 1, + "#LoadModule": 4, + "unique_id_module": 2, + "libexec/apache2/mod_unique_id.so": 1, + "setenvif_module": 2, + "libexec/apache2/mod_setenvif.so": 1, + "version_module": 2, + "libexec/apache2/mod_version.so": 1, + "proxy_module": 2, + "libexec/apache2/mod_proxy.so": 1, + "proxy_connect_module": 2, + "libexec/apache2/mod_proxy_connect.so": 1, + "proxy_ftp_module": 2, + "libexec/apache2/mod_proxy_ftp.so": 1, + "proxy_http_module": 2, + "libexec/apache2/mod_proxy_http.so": 1, + "proxy_scgi_module": 1, + "libexec/apache2/mod_proxy_scgi.so": 1, + "proxy_ajp_module": 2, + "libexec/apache2/mod_proxy_ajp.so": 1, + "proxy_balancer_module": 2, + "libexec/apache2/mod_proxy_balancer.so": 1, + "ssl_module": 4, + "libexec/apache2/mod_ssl.so": 1, + "mime_module": 4, + "libexec/apache2/mod_mime.so": 1, + "dav_module": 2, + "libexec/apache2/mod_dav.so": 1, + "status_module": 2, + "libexec/apache2/mod_status.so": 1, + "autoindex_module": 2, + "libexec/apache2/mod_autoindex.so": 1, + "asis_module": 2, + "libexec/apache2/mod_asis.so": 1, + "info_module": 2, + "libexec/apache2/mod_info.so": 1, + "cgi_module": 2, + "libexec/apache2/mod_cgi.so": 1, + "dav_fs_module": 2, + "libexec/apache2/mod_dav_fs.so": 1, + "vhost_alias_module": 2, + "libexec/apache2/mod_vhost_alias.so": 1, + "negotiation_module": 2, + "libexec/apache2/mod_negotiation.so": 1, + "dir_module": 4, + "libexec/apache2/mod_dir.so": 1, + "imagemap_module": 2, + "libexec/apache2/mod_imagemap.so": 1, + "actions_module": 2, + "libexec/apache2/mod_actions.so": 1, + "speling_module": 2, + "libexec/apache2/mod_speling.so": 1, + "userdir_module": 2, + "libexec/apache2/mod_userdir.so": 1, + "alias_module": 4, + "libexec/apache2/mod_alias.so": 1, + "rewrite_module": 2, + "libexec/apache2/mod_rewrite.so": 1, + "perl_module": 1, + "libexec/apache2/mod_perl.so": 1, + "php5_module": 1, + "libexec/apache2/libphp5.so": 1, + "hfs_apple_module": 1, + "libexec/apache2/mod_hfs_apple.so": 1, + "": 17, + "mpm_netware_module": 2, + "mpm_winnt_module": 1, + "User": 2, + "_www": 2, + "Group": 2, + "": 17, + "ServerAdmin": 2, + "you@example.com": 2, + "#ServerName": 2, + "www.example.com": 2, + "DocumentRoot": 2, + "": 6, + "Options": 6, + "FollowSymLinks": 4, + "AllowOverride": 6, + "None": 8, + "Order": 10, + "deny": 10, + "allow": 10, + "Deny": 6, + "from": 10, + "all": 10, + "": 6, + "Library": 2, + "WebServer": 2, + "Documents": 1, + "Indexes": 2, + "MultiViews": 1, + "Allow": 4, + "DirectoryIndex": 2, + "index.html": 2, + "": 2, + "Hh": 1, + "Tt": 1, + "Dd": 1, + "Ss": 2, + "_": 1, + "Satisfy": 4, + "All": 4, + "": 2, + "": 1, + "rsrc": 1, + "": 1, + "": 1, + "namedfork": 1, + "": 1, + "ErrorLog": 2, + "LogLevel": 2, + "warn": 2, + "LogFormat": 6, + "combined": 4, + "common": 4, + "combinedio": 2, + "CustomLog": 2, + "#CustomLog": 2, + "ScriptAliasMatch": 1, + "/cgi": 2, + "bin/": 2, + "i": 1, + "webobjects": 1, + "cgid_module": 3, + "#Scriptsock": 2, + "/private/var/run/cgisock": 1, + "CGI": 1, + "Executables": 1, + "DefaultType": 2, + "text/plain": 2, + "TypesConfig": 2, + "/private/etc/apache2/mime.types": 1, + "#AddType": 4, + "application/x": 6, + "gzip": 6, + ".tgz": 6, + "#AddEncoding": 4, + "x": 4, + "compress": 4, + ".Z": 4, + ".gz": 4, + "AddType": 4, + "#AddHandler": 4, + "cgi": 3, + "script": 2, + ".cgi": 2, + "type": 2, + "map": 2, + "var": 2, + "text/html": 2, + ".shtml": 4, + "#AddOutputFilter": 2, + "INCLUDES": 2, + "#MIMEMagicFile": 2, + "/private/etc/apache2/magic": 1, + "#ErrorDocument": 8, + "/missing.html": 2, + "http": 2, + "//www.example.com/subscription_info.html": 2, + "#MaxRanges": 1, + "unlimited": 1, + "#EnableMMAP": 2, + "off": 5, + "#EnableSendfile": 2, + "TraceEnable": 1, + "Include": 6, + "/private/etc/apache2/extra/httpd": 11, + "mpm.conf": 2, + "#Include": 17, + "multilang": 2, + "errordoc.conf": 2, + "autoindex.conf": 2, + "languages.conf": 2, + "userdir.conf": 2, + "info.conf": 2, + "vhosts.conf": 2, + "manual.conf": 2, + "dav.conf": 2, + "default.conf": 2, + "ssl.conf": 2, + "SSLRandomSeed": 4, + "startup": 2, + "builtin": 4, + "connect": 2, + "/private/etc/apache2/other/*.conf": 1, + "/usr/lib/apache2/modules/mod_authn_file.so": 1, + "/usr/lib/apache2/modules/mod_authn_dbm.so": 1, + "/usr/lib/apache2/modules/mod_authn_anon.so": 1, + "/usr/lib/apache2/modules/mod_authn_dbd.so": 1, + "/usr/lib/apache2/modules/mod_authn_default.so": 1, + "authn_alias_module": 1, + "/usr/lib/apache2/modules/mod_authn_alias.so": 1, + "/usr/lib/apache2/modules/mod_authz_host.so": 1, + "/usr/lib/apache2/modules/mod_authz_groupfile.so": 1, + "/usr/lib/apache2/modules/mod_authz_user.so": 1, + "/usr/lib/apache2/modules/mod_authz_dbm.so": 1, + "/usr/lib/apache2/modules/mod_authz_owner.so": 1, + "authnz_ldap_module": 1, + "/usr/lib/apache2/modules/mod_authnz_ldap.so": 1, + "/usr/lib/apache2/modules/mod_authz_default.so": 1, + "/usr/lib/apache2/modules/mod_auth_basic.so": 1, + "/usr/lib/apache2/modules/mod_auth_digest.so": 1, + "file_cache_module": 1, + "/usr/lib/apache2/modules/mod_file_cache.so": 1, + "/usr/lib/apache2/modules/mod_cache.so": 1, + "/usr/lib/apache2/modules/mod_disk_cache.so": 1, + "/usr/lib/apache2/modules/mod_mem_cache.so": 1, + "/usr/lib/apache2/modules/mod_dbd.so": 1, + "/usr/lib/apache2/modules/mod_dumpio.so": 1, + "/usr/lib/apache2/modules/mod_ext_filter.so": 1, + "/usr/lib/apache2/modules/mod_include.so": 1, + "/usr/lib/apache2/modules/mod_filter.so": 1, + "charset_lite_module": 1, + "/usr/lib/apache2/modules/mod_charset_lite.so": 1, + "/usr/lib/apache2/modules/mod_deflate.so": 1, + "ldap_module": 1, + "/usr/lib/apache2/modules/mod_ldap.so": 1, + "/usr/lib/apache2/modules/mod_log_forensic.so": 1, + "/usr/lib/apache2/modules/mod_env.so": 1, + "/usr/lib/apache2/modules/mod_mime_magic.so": 1, + "/usr/lib/apache2/modules/mod_cern_meta.so": 1, + "/usr/lib/apache2/modules/mod_expires.so": 1, + "/usr/lib/apache2/modules/mod_headers.so": 1, + "/usr/lib/apache2/modules/mod_ident.so": 1, + "/usr/lib/apache2/modules/mod_usertrack.so": 1, + "/usr/lib/apache2/modules/mod_unique_id.so": 1, + "/usr/lib/apache2/modules/mod_setenvif.so": 1, + "/usr/lib/apache2/modules/mod_version.so": 1, + "/usr/lib/apache2/modules/mod_proxy.so": 1, + "/usr/lib/apache2/modules/mod_proxy_connect.so": 1, + "/usr/lib/apache2/modules/mod_proxy_ftp.so": 1, + "/usr/lib/apache2/modules/mod_proxy_http.so": 1, + "/usr/lib/apache2/modules/mod_proxy_ajp.so": 1, + "/usr/lib/apache2/modules/mod_proxy_balancer.so": 1, + "/usr/lib/apache2/modules/mod_ssl.so": 1, + "/usr/lib/apache2/modules/mod_mime.so": 1, + "/usr/lib/apache2/modules/mod_dav.so": 1, + "/usr/lib/apache2/modules/mod_status.so": 1, + "/usr/lib/apache2/modules/mod_autoindex.so": 1, + "/usr/lib/apache2/modules/mod_asis.so": 1, + "/usr/lib/apache2/modules/mod_info.so": 1, + "suexec_module": 1, + "/usr/lib/apache2/modules/mod_suexec.so": 1, + "/usr/lib/apache2/modules/mod_cgid.so": 1, + "/usr/lib/apache2/modules/mod_cgi.so": 1, + "/usr/lib/apache2/modules/mod_dav_fs.so": 1, + "dav_lock_module": 1, + "/usr/lib/apache2/modules/mod_dav_lock.so": 1, + "/usr/lib/apache2/modules/mod_vhost_alias.so": 1, + "/usr/lib/apache2/modules/mod_negotiation.so": 1, + "/usr/lib/apache2/modules/mod_dir.so": 1, + "/usr/lib/apache2/modules/mod_imagemap.so": 1, + "/usr/lib/apache2/modules/mod_actions.so": 1, + "/usr/lib/apache2/modules/mod_speling.so": 1, + "/usr/lib/apache2/modules/mod_userdir.so": 1, + "/usr/lib/apache2/modules/mod_alias.so": 1, + "/usr/lib/apache2/modules/mod_rewrite.so": 1, + "daemon": 2, + "usr": 2, + "share": 1, + "apache2": 1, + "default": 1, + "site": 1, + "htdocs": 1, + "ht": 1, + "/var/log/apache2/error_log": 1, + "/var/log/apache2/access_log": 2, + "ScriptAlias": 1, + "/var/run/apache2/cgisock": 1, + "lib": 1, + "bin": 1, + "/etc/apache2/mime.types": 1, + "/etc/apache2/magic": 1, + "/etc/apache2/extra/httpd": 11 + }, + "Processing": { + "void": 2, + "setup": 1, + "(": 17, + ")": 17, + "{": 2, + "size": 1, + ";": 15, + "background": 1, + "noStroke": 1, + "}": 2, + "draw": 1, + "fill": 6, + "triangle": 2, + "rect": 1, + "quad": 1, + "ellipse": 1, + "arc": 1, + "PI": 1, + "TWO_PI": 1 + }, + "Scala": { + "name": 4, + "version": 1, + "organization": 1, + "libraryDependencies": 3, + "+": 49, + "%": 12, + "Seq": 3, + "(": 67, + ")": 67, + "{": 21, + "val": 6, + "libosmVersion": 4, + "from": 1, + "}": 22, + "maxErrors": 1, + "pollInterval": 1, + "javacOptions": 1, + "scalacOptions": 1, + "scalaVersion": 1, + "initialCommands": 2, + "in": 12, + "console": 1, + "mainClass": 2, + "Compile": 4, + "packageBin": 1, + "Some": 6, + "run": 1, + "watchSources": 1, + "<+=>": 1, + "baseDirectory": 1, + "map": 1, + "_": 2, + "input": 1, + "add": 2, + "a": 4, + "maven": 2, + "style": 2, + "repository": 2, + "resolvers": 2, + "at": 4, + "url": 3, + "sequence": 1, + "of": 1, + "repositories": 1, + "define": 1, + "the": 5, + "to": 7, + "publish": 1, + "publishTo": 1, + "set": 2, + "Ivy": 1, + "logging": 1, + "be": 1, + "highest": 1, + "level": 1, + "ivyLoggingLevel": 1, + "UpdateLogging": 1, + "Full": 1, + "disable": 1, + "updating": 1, + "dynamic": 1, + "revisions": 1, + "including": 1, + "SNAPSHOT": 1, + "versions": 1, + "offline": 1, + "true": 5, + "prompt": 1, + "for": 1, + "this": 1, + "build": 1, + "include": 1, + "project": 1, + "id": 1, + "shellPrompt": 2, + "ThisBuild": 1, + "state": 3, + "Project.extract": 1, + ".currentRef.project": 1, + "System.getProperty": 1, + "showTiming": 1, + "false": 7, + "showSuccess": 1, + "timingFormat": 1, + "import": 9, + "java.text.DateFormat": 1, + "DateFormat.getDateTimeInstance": 1, + "DateFormat.SHORT": 2, + "crossPaths": 1, + "fork": 2, + "Test": 3, + "javaOptions": 1, + "parallelExecution": 2, + "javaHome": 1, + "file": 3, + "scalaHome": 1, + "aggregate": 1, + "clean": 1, + "logLevel": 2, + "compile": 1, + "Level.Warn": 2, + "persistLogLevel": 1, + "Level.Debug": 1, + "traceLevel": 2, + "unmanagedJars": 1, + "publishArtifact": 2, + "packageDoc": 2, + "artifactClassifier": 1, + "retrieveManaged": 1, + "credentials": 2, + "Credentials": 2, + "Path.userHome": 1, + "/": 2, + "math.random": 1, + "scala.language.postfixOps": 1, + "scala.util._": 1, + "scala.util.": 1, + "Try": 1, + "Success": 2, + "Failure": 2, + "scala.concurrent._": 1, + "duration._": 1, + "ExecutionContext.Implicits.global": 1, + "scala.concurrent.": 1, + "ExecutionContext": 1, + "CanAwait": 1, + "OnCompleteRunnable": 1, + "TimeoutException": 1, + "ExecutionException": 1, + "blocking": 3, + "object": 3, + "node11": 1, + "println": 8, + "//": 29, + "Welcome": 1, + "Scala": 1, + "worksheet": 1, + "def": 10, + "retry": 3, + "[": 11, + "T": 8, + "]": 11, + "n": 3, + "Int": 11, + "block": 8, + "Future": 5, + "ns": 1, + "Iterator": 2, + ".iterator": 1, + "attempts": 1, + "ns.map": 1, + "failed": 2, + "Future.failed": 1, + "new": 1, + "Exception": 2, + "attempts.foldLeft": 1, + "fallbackTo": 1, + "scala.concurrent.Future": 1, + "scala.concurrent.Fut": 1, + "|": 19, + "ure": 1, + "rb": 3, + "i": 9, + "Thread.sleep": 2, + "*random.toInt": 1, + "i.toString": 5, + "ri": 2, + "onComplete": 1, + "case": 8, + "s": 1, + "s.toString": 1, + "t": 1, + "t.toString": 1, + "r": 1, + "r.toString": 1, + "Unit": 1, + "toList": 1, + ".foreach": 1, + "Iteration": 5, + "java.lang.Exception": 1, + "Hi": 10, + "-": 5, + "SHEBANG#!sh": 2, + "exec": 2, + "scala": 2, + "#": 2, + "Beers": 1, + "extends": 1, + "Application": 1, + "bottles": 3, + "qty": 12, + "f": 4, + "String": 5, + "higher": 1, + "order": 1, + "functions": 2, + "match": 2, + "x": 3, + "beers": 3, + "sing": 3, + "implicit": 3, + "song": 3, + "takeOne": 2, + "nextQty": 2, + "nested": 1, + "if": 2, + "else": 2, + "refrain": 2, + ".capitalize": 1, + "tail": 1, + "recursion": 1, + "headOfSong": 1, + "parameter": 1, + "HelloWorld": 1, + "main": 1, + "args": 1, + "Array": 1 }, "Objective-C++": { "#include": 26, @@ -46639,10216 +54748,6 @@ "text": 1, "self.on": 1 }, - "OCaml": { - "{": 11, - "shared": 1, - "open": 4, - "Eliom_content": 1, - "Html5.D": 1, - "Eliom_parameter": 1, - "}": 13, - "server": 2, - "module": 5, - "Example": 1, - "Eliom_registration.App": 1, - "(": 21, - "struct": 5, - "let": 13, - "application_name": 1, - "end": 5, - ")": 23, - "main": 2, - "Eliom_service.service": 1, - "path": 1, - "[": 13, - "]": 13, - "get_params": 1, - "unit": 5, - "client": 1, - "hello_popup": 2, - "Dom_html.window##alert": 1, - "Js.string": 1, - "_": 2, - "Example.register": 1, - "service": 1, - "fun": 9, - "-": 22, - "Lwt.return": 1, - "html": 1, - "head": 1, - "title": 1, - "pcdata": 4, - "body": 1, - "h1": 1, - ";": 14, - "p": 1, - "h2": 1, - "a": 4, - "a_onclick": 1, - "type": 2, - "Ops": 2, - "@": 6, - "f": 10, - "k": 21, - "|": 15, - "x": 14, - "List": 1, - "rec": 3, - "map": 3, - "l": 8, - "match": 4, - "with": 4, - "hd": 6, - "tl": 6, - "fold": 2, - "acc": 5, - "Option": 1, - "opt": 2, - "None": 5, - "Some": 5, - "Lazy": 1, - "option": 1, - "mutable": 1, - "waiters": 5, - "make": 1, - "push": 4, - "cps": 7, - "value": 3, - "force": 1, - "l.value": 2, - "when": 1, - "l.waiters": 5, - "<->": 3, - "function": 1, - "Base.List.iter": 1, - "l.push": 1, - "<": 1, - "get_state": 1, - "lazy_from_val": 1 - }, - "Omgrofl": { - "lol": 14, - "iz": 11, - "wtf": 1, - "liek": 1, - "lmao": 1, - "brb": 1, - "w00t": 1, - "Hello": 1, - "World": 1, - "rofl": 13, - "lool": 5, - "loool": 6, - "stfu": 1 - }, - "Opa": { - "server": 1, - "Server.one_page_server": 1, - "(": 4, - "-": 1, - "

": 2, - "Hello": 2, - "world": 2, - "

": 2, - ")": 4, - "Server.start": 1, - "Server.http": 1, - "{": 2, - "page": 1, - "function": 1, - "}": 2, - "title": 1 - }, - "OpenCL": { - "double": 3, - "run_fftw": 1, - "(": 18, - "int": 3, - "n": 4, - "const": 4, - "float": 3, - "*": 5, - "x": 5, - "y": 4, - ")": 18, - "{": 4, - "fftwf_plan": 1, - "p1": 3, - "fftwf_plan_dft_1d": 1, - "fftwf_complex": 2, - "FFTW_FORWARD": 1, - "FFTW_ESTIMATE": 1, - ";": 12, - "nops": 3, - "t": 4, - "cl": 2, - "realTime": 2, - "for": 1, - "op": 3, - "<": 1, - "+": 4, - "fftwf_execute": 1, - "}": 4, - "-": 1, - "/": 1, - "fftwf_destroy_plan": 1, - "return": 1, - "typedef": 1, - "foo_t": 3, - "#ifndef": 1, - "ZERO": 3, - "#define": 2, - "#endif": 1, - "FOO": 1, - "__kernel": 1, - "void": 1, - "foo": 1, - "__global": 1, - "__local": 1, - "uint": 1, - "barrier": 1, - "CLK_LOCAL_MEM_FENCE": 1, - "if": 1, - "*x": 1 - }, - "OpenEdge ABL": { - "USING": 3, - "Progress.Lang.*.": 3, - "CLASS": 2, - "email.Email": 2, - "USE": 2, - "-": 73, - "WIDGET": 2, - "POOL": 2, - "&": 3, - "SCOPED": 1, - "DEFINE": 16, - "QUOTES": 1, - "@#": 1, - "%": 2, - "*": 2, - "+": 21, - "._MIME_BOUNDARY_.": 1, - "#@": 1, - "WIN": 1, - "From": 4, - "To": 8, - "CC": 2, - "BCC": 2, - "Personal": 1, - "Private": 1, - "Company": 2, - "confidential": 2, - "normal": 1, - "urgent": 2, - "non": 1, - "Cannot": 3, - "locate": 3, - "file": 6, - "in": 3, - "the": 3, - "filesystem": 3, - "R": 3, - "File": 3, - "exists": 3, - "but": 3, - "is": 3, - "not": 3, - "readable": 3, - "Error": 3, - "copying": 3, - "from": 3, - "<\">": 8, - "ttSenders": 2, - "cEmailAddress": 8, - "n": 13, - "ttToRecipients": 1, - "Reply": 3, - "ttReplyToRecipients": 1, - "Cc": 2, - "ttCCRecipients": 1, - "Bcc": 2, - "ttBCCRecipients": 1, - "Return": 1, - "Receipt": 1, - "ttDeliveryReceiptRecipients": 1, - "Disposition": 3, - "Notification": 1, - "ttReadReceiptRecipients": 1, - "Subject": 2, - "Importance": 3, - "H": 1, - "High": 1, - "L": 1, - "Low": 1, - "Sensitivity": 2, - "Priority": 2, - "Date": 4, - "By": 1, - "Expiry": 2, - "Mime": 1, - "Version": 1, - "Content": 10, - "Type": 4, - "multipart/mixed": 1, - ";": 5, - "boundary": 1, - "text/plain": 2, - "charset": 2, - "Transfer": 4, - "Encoding": 4, - "base64": 2, - "bit": 2, - "application/octet": 1, - "stream": 1, - "attachment": 2, - "filename": 2, - "ttAttachments.cFileName": 2, - "cNewLine.": 1, - "RETURN": 7, - "lcReturnData.": 1, - "END": 12, - "METHOD.": 6, - "METHOD": 6, - "PUBLIC": 6, - "CHARACTER": 9, - "send": 1, - "(": 44, - ")": 44, - "objSendEmailAlgorithm": 1, - "sendEmail": 2, - "INPUT": 11, - "THIS": 1, - "OBJECT": 2, - ".": 14, - "CLASS.": 2, - "MESSAGE": 2, - "INTERFACE": 1, - "email.SendEmailAlgorithm": 1, - "ipobjEmail": 1, - "AS": 21, - "INTERFACE.": 1, - "PARAMETER": 3, - "objSendEmailAlg": 2, - "email.SendEmailSocket": 1, - "NO": 13, - "UNDO.": 12, - "VARIABLE": 12, - "vbuffer": 9, - "MEMPTR": 2, - "vstatus": 1, - "LOGICAL": 1, - "vState": 2, - "INTEGER": 6, - "ASSIGN": 2, - "vstate": 1, - "FUNCTION": 1, - "getHostname": 1, - "RETURNS": 1, - "cHostname": 1, - "THROUGH": 1, - "hostname": 1, - "ECHO.": 1, - "IMPORT": 1, - "UNFORMATTED": 1, - "cHostname.": 2, - "CLOSE.": 1, - "FUNCTION.": 1, - "PROCEDURE": 2, - "newState": 2, - "INTEGER.": 1, - "pstring": 4, - "CHARACTER.": 1, - "newState.": 1, - "IF": 2, - "THEN": 2, - "RETURN.": 1, - "SET": 5, - "SIZE": 5, - "LENGTH": 3, - "PUT": 1, - "STRING": 7, - "pstring.": 1, - "SELF": 4, - "WRITE": 1, - "PROCEDURE.": 2, - "ReadSocketResponse": 1, - "vlength": 5, - "str": 3, - "v": 1, - "GET": 3, - "BYTES": 2, - "AVAILABLE": 2, - "VIEW": 1, - "ALERT": 1, - "BOX.": 1, - "DO": 2, - "READ": 1, - "handleResponse": 1, - "END.": 2, - "email.Util": 1, - "FINAL": 1, - "PRIVATE": 1, - "STATIC": 5, - "cMonthMap": 2, - "EXTENT": 1, - "INITIAL": 1, - "[": 2, - "]": 2, - "ABLDateTimeToEmail": 3, - "ipdttzDateTime": 6, - "DATETIME": 3, - "TZ": 2, - "DAY": 1, - "MONTH": 1, - "YEAR": 1, - "TRUNCATE": 2, - "MTIME": 1, - "/": 2, - "ABLTimeZoneToString": 2, - "TIMEZONE": 1, - "ipdtDateTime": 2, - "ipiTimeZone": 3, - "ABSOLUTE": 1, - "MODULO": 1, - "LONGCHAR": 4, - "ConvertDataToBase64": 1, - "iplcNonEncodedData": 2, - "lcPreBase64Data": 4, - "lcPostBase64Data": 3, - "mptrPostBase64Data": 3, - "i": 3, - "COPY": 1, - "LOB": 1, - "FROM": 1, - "TO": 2, - "mptrPostBase64Data.": 1, - "BASE64": 1, - "ENCODE": 1, - "BY": 1, - "SUBSTRING": 1, - "CHR": 2, - "lcPostBase64Data.": 1 - }, - "Org": { - "#": 13, - "+": 13, - "OPTIONS": 1, - "H": 1, - "num": 1, - "nil": 4, - "toc": 2, - "n": 1, - "@": 1, - "t": 10, - "|": 4, - "-": 30, - "f": 2, - "*": 3, - "TeX": 1, - "LaTeX": 1, - "skip": 1, - "d": 2, - "(": 11, - "HIDE": 1, - ")": 11, - "tags": 2, - "not": 1, - "in": 2, - "STARTUP": 1, - "align": 1, - "fold": 1, - "nodlcheck": 1, - "hidestars": 1, - "oddeven": 1, - "lognotestate": 1, - "SEQ_TODO": 1, - "TODO": 1, - "INPROGRESS": 1, - "i": 1, - "WAITING": 1, - "w@": 1, - "DONE": 1, - "CANCELED": 1, - "c@": 1, - "TAGS": 1, - "Write": 1, - "w": 1, - "Update": 1, - "u": 1, - "Fix": 1, - "Check": 1, - "c": 1, - "TITLE": 1, - "org": 10, - "ruby": 6, - "AUTHOR": 1, - "Brian": 1, - "Dewey": 1, - "EMAIL": 1, - "bdewey@gmail.com": 1, - "LANGUAGE": 1, - "en": 1, - "PRIORITIES": 1, - "A": 1, - "C": 1, - "B": 1, - "CATEGORY": 1, - "worg": 1, - "{": 1, - "Back": 1, - "to": 8, - "Worg": 1, - "rubygems": 2, - "ve": 1, - "already": 1, - "created": 1, - "a": 4, - "site.": 1, - "Make": 1, - "sure": 1, - "you": 2, - "have": 1, - "installed": 1, - "sudo": 1, - "gem": 1, - "install": 1, - ".": 1, - "You": 1, - "need": 1, - "register": 1, - "new": 2, - "Webby": 3, - "filter": 3, - "handle": 1, - "mode": 2, - "content.": 2, - "makes": 1, - "this": 2, - "easy.": 1, - "In": 1, - "the": 6, - "lib/": 1, - "folder": 1, - "of": 2, - "your": 2, - "site": 1, - "create": 1, - "file": 1, - "orgmode.rb": 1, - "BEGIN_EXAMPLE": 2, - "require": 1, - "Filters.register": 1, - "do": 2, - "input": 3, - "Orgmode": 2, - "Parser.new": 1, - ".to_html": 1, - "end": 1, - "END_EXAMPLE": 1, - "This": 2, - "code": 1, - "creates": 1, - "that": 1, - "will": 1, - "use": 1, - "parser": 1, - "translate": 1, - "into": 1, - "HTML.": 1, - "Create": 1, - "For": 1, - "example": 1, - "title": 2, - "Parser": 1, - "created_at": 1, - "status": 2, - "Under": 1, - "development": 1, - "erb": 1, - "orgmode": 3, - "<%=>": 2, - "page": 2, - "Status": 1, - "Description": 1, - "Helpful": 1, - "Ruby": 1, - "routines": 1, - "for": 3, - "parsing": 1, - "files.": 1, - "The": 3, - "most": 1, - "significant": 1, - "thing": 2, - "library": 1, - "does": 1, - "today": 1, - "is": 5, - "convert": 1, - "files": 1, - "textile.": 1, - "Currently": 1, - "cannot": 1, - "much": 1, - "customize": 1, - "conversion.": 1, - "supplied": 1, - "textile": 1, - "conversion": 1, - "optimized": 1, - "extracting": 1, - "from": 1, - "orgfile": 1, - "as": 1, - "opposed": 1, - "History": 1, - "**": 1, - "Version": 1, - "first": 1, - "output": 2, - "HTML": 2, - "gets": 1, - "class": 1, - "now": 1, - "indented": 1, - "Proper": 1, - "support": 1, - "multi": 1, - "paragraph": 2, - "list": 1, - "items.": 1, - "See": 1, - "part": 1, - "last": 1, - "bullet.": 1, - "Fixed": 1, - "bugs": 1, - "wouldn": 1, - "s": 1, - "all": 1, - "there": 1, - "it": 1 - }, - "Oxygene": { - "": 1, - "DefaultTargets=": 1, - "xmlns=": 1, - "": 3, - "": 1, - "Loops": 2, - "": 1, - "": 1, - "exe": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "False": 4, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Properties": 1, - "App.ico": 1, - "": 1, - "": 1, - "Condition=": 3, - "Release": 2, - "": 1, - "": 1, - "{": 1, - "BD89C": 1, - "-": 4, - "B610": 1, - "CEE": 1, - "CAF": 1, - "C515D88E2C94": 1, - "}": 1, - "": 1, - "": 3, - "": 1, - "DEBUG": 1, - ";": 2, - "TRACE": 1, - "": 1, - "": 2, - ".": 2, - "bin": 2, - "Debug": 1, - "": 2, - "": 1, - "True": 3, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Project=": 1, - "": 2, - "": 5, - "Include=": 12, - "": 5, - "(": 5, - "Framework": 5, - ")": 5, - "mscorlib.dll": 1, - "": 5, - "": 5, - "System.dll": 1, - "ProgramFiles": 1, - "Reference": 1, - "Assemblies": 1, - "Microsoft": 1, - "v3.5": 1, - "System.Core.dll": 1, - "": 1, - "": 1, - "System.Data.dll": 1, - "System.Xml.dll": 1, - "": 2, - "": 4, - "": 1, - "": 1, - "": 2, - "ResXFileCodeGenerator": 1, - "": 2, - "": 1, - "": 1, - "SettingsSingleFileGenerator": 1, - "": 1, - "": 1 - }, - "Parrot Assembly": { - "SHEBANG#!parrot": 1, - ".pcc_sub": 1, - "main": 2, - "say": 1, - "end": 1 - }, - "Parrot Internal Representation": { - "SHEBANG#!parrot": 1, - ".sub": 1, - "main": 1, - "say": 1, - ".end": 1 - }, - "Pascal": { - "program": 1, - "gmail": 1, - ";": 6, - "uses": 1, - "Forms": 1, - "Unit2": 1, - "in": 1, - "{": 2, - "Form2": 2, - "}": 2, - "R": 1, - "*.res": 1, - "begin": 1, - "Application.Initialize": 1, - "Application.MainFormOnTaskbar": 1, - "True": 1, - "Application.CreateForm": 1, - "(": 1, - "TForm2": 1, - ")": 1, - "Application.Run": 1, - "end.": 1 - }, - "PAWN": { - "//": 22, - "-": 1551, - "#include": 5, - "": 1, - "": 1, - "": 1, - "#pragma": 1, - "tabsize": 1, - "#define": 5, - "COLOR_WHITE": 2, - "xFFFFFFFF": 2, - "COLOR_NORMAL_PLAYER": 3, - "xFFBB7777": 1, - "CITY_LOS_SANTOS": 7, - "CITY_SAN_FIERRO": 4, - "CITY_LAS_VENTURAS": 6, - "new": 13, - "total_vehicles_from_files": 19, - ";": 257, - "gPlayerCitySelection": 21, - "[": 56, - "MAX_PLAYERS": 3, - "]": 56, - "gPlayerHasCitySelected": 6, - "gPlayerLastCitySelectionTick": 5, - "Text": 5, - "txtClassSelHelper": 14, - "txtLosSantos": 7, - "txtSanFierro": 7, - "txtLasVenturas": 7, - "thisanimid": 1, - "lastanimid": 1, - "main": 1, - "(": 273, - ")": 273, - "{": 39, - "print": 3, - "}": 39, - "public": 6, - "OnPlayerConnect": 1, - "playerid": 132, - "GameTextForPlayer": 1, - "SendClientMessage": 1, - "GetTickCount": 4, - "//SetPlayerColor": 2, - "//Kick": 1, - "return": 17, - "OnPlayerSpawn": 1, - "if": 28, - "IsPlayerNPC": 3, - "randSpawn": 16, - "SetPlayerInterior": 7, - "TogglePlayerClock": 2, - "ResetPlayerMoney": 3, - "GivePlayerMoney": 2, - "random": 3, - "sizeof": 3, - "gRandomSpawns_LosSantos": 5, - "SetPlayerPos": 6, - "SetPlayerFacingAngle": 6, - "else": 9, - "gRandomSpawns_SanFierro": 5, - "gRandomSpawns_LasVenturas": 5, - "SetPlayerSkillLevel": 11, - "WEAPONSKILL_PISTOL": 1, - "WEAPONSKILL_PISTOL_SILENCED": 1, - "WEAPONSKILL_DESERT_EAGLE": 1, - "WEAPONSKILL_SHOTGUN": 1, - "WEAPONSKILL_SAWNOFF_SHOTGUN": 1, - "WEAPONSKILL_SPAS12_SHOTGUN": 1, - "WEAPONSKILL_MICRO_UZI": 1, - "WEAPONSKILL_MP5": 1, - "WEAPONSKILL_AK47": 1, - "WEAPONSKILL_M4": 1, - "WEAPONSKILL_SNIPERRIFLE": 1, - "GivePlayerWeapon": 1, - "WEAPON_COLT45": 1, - "//GivePlayerWeapon": 1, - "WEAPON_MP5": 1, - "OnPlayerDeath": 1, - "killerid": 3, - "reason": 1, - "playercash": 4, - "INVALID_PLAYER_ID": 1, - "GetPlayerMoney": 1, - "ClassSel_SetupCharSelection": 2, - "SetPlayerCameraPos": 6, - "SetPlayerCameraLookAt": 6, - "ClassSel_InitCityNameText": 4, - "txtInit": 7, - "TextDrawUseBox": 2, - "TextDrawLetterSize": 2, - "TextDrawFont": 2, - "TextDrawSetShadow": 2, - "TextDrawSetOutline": 2, - "TextDrawColor": 2, - "xEEEEEEFF": 1, - "TextDrawBackgroundColor": 2, - "FF": 2, - "ClassSel_InitTextDraws": 2, - "TextDrawCreate": 4, - "TextDrawBoxColor": 1, - "BB": 1, - "TextDrawTextSize": 1, - "ClassSel_SetupSelectedCity": 3, - "TextDrawShowForPlayer": 4, - "TextDrawHideForPlayer": 10, - "ClassSel_SwitchToNextCity": 3, - "+": 19, - "PlayerPlaySound": 2, - "ClassSel_SwitchToPreviousCity": 2, - "<": 3, - "ClassSel_HandleCitySelection": 2, - "Keys": 3, - "ud": 2, - "lr": 4, - "GetPlayerKeys": 1, - "&": 1, - "KEY_FIRE": 1, - "TogglePlayerSpectating": 2, - "OnPlayerRequestClass": 1, - "classid": 1, - "GetPlayerState": 2, - "PLAYER_STATE_SPECTATING": 2, - "OnGameModeInit": 1, - "SetGameModeText": 1, - "ShowPlayerMarkers": 1, - "PLAYER_MARKERS_MODE_GLOBAL": 1, - "ShowNameTags": 1, - "SetNameTagDrawDistance": 1, - "EnableStuntBonusForAll": 1, - "DisableInteriorEnterExits": 1, - "SetWeather": 1, - "SetWorldTime": 1, - "//UsePlayerPedAnims": 1, - "//ManualVehicleEngineAndLights": 1, - "//LimitGlobalChatRadius": 1, - "AddPlayerClass": 69, - "//AddPlayerClass": 1, - "LoadStaticVehiclesFromFile": 17, - "printf": 1, - "OnPlayerUpdate": 1, - "IsPlayerConnected": 1, - "&&": 2, - "GetPlayerInterior": 1, - "GetPlayerWeapon": 2, - "SetPlayerArmedWeapon": 1, - "fists": 1, - "no": 1, - "syncing": 1, - "until": 1, - "they": 1, - "change": 1, - "their": 1, - "weapon": 1, - "WEAPON_MINIGUN": 1, - "Kick": 1 - }, - "Perl": { - "package": 14, - "App": 131, - "Ack": 136, - ";": 1193, - "use": 83, - "warnings": 18, - "strict": 18, - "File": 54, - "Next": 27, - "Plugin": 2, - "Basic": 10, - "head1": 36, - "NAME": 6, - "-": 868, - "A": 2, - "container": 1, - "for": 83, - "functions": 2, - "the": 143, - "ack": 38, - "program": 6, - "VERSION": 15, - "Version": 1, - "cut": 28, - "our": 34, - "COPYRIGHT": 7, - "BEGIN": 7, - "{": 1121, - "}": 1134, - "fh": 28, - "*STDOUT": 6, - "%": 78, - "types": 26, - "type_wanted": 20, - "mappings": 29, - "ignore_dirs": 12, - "input_from_pipe": 8, - "output_to_pipe": 12, - "dir_sep_chars": 10, - "is_cygwin": 6, - "is_windows": 12, - "Spec": 13, - "(": 925, - ")": 923, - "Glob": 4, - "Getopt": 6, - "Long": 6, - "_MTN": 2, - "blib": 2, - "CVS": 5, - "RCS": 2, - "SCCS": 2, - "_darcs": 2, - "_sgbak": 2, - "_build": 2, - "actionscript": 2, - "[": 159, - "qw": 35, - "as": 37, - "mxml": 2, - "]": 155, - "ada": 4, - "adb": 2, - "ads": 2, - "asm": 4, - "s": 35, - "batch": 2, - "bat": 2, - "cmd": 2, - "binary": 3, - "q": 5, - "Binary": 2, - "files": 42, - "defined": 54, - "by": 16, - "Perl": 9, - "T": 2, - "op": 2, - "default": 19, - "off": 4, - "tt": 4, - "tt2": 2, - "ttml": 2, - "vb": 4, - "bas": 2, - "cls": 2, - "frm": 2, - "ctl": 2, - "resx": 2, - "verilog": 2, - "v": 19, - "vh": 2, - "sv": 2, - "vhdl": 4, - "vhd": 2, - "vim": 4, - "yaml": 4, - "yml": 2, - "xml": 6, - "dtd": 2, - "xsl": 2, - "xslt": 2, - "ent": 2, - "while": 31, - "my": 404, - "type": 69, - "exts": 6, - "each": 14, - "if": 276, - "ref": 33, - "ext": 14, - "@": 38, - "push": 30, - "_": 101, - "mk": 2, - "mak": 2, - "not": 54, - "t": 18, - "p": 9, - "STDIN": 2, - "O": 4, - "eq": 31, - "/MSWin32/": 2, - "quotemeta": 5, - "catfile": 4, - "SYNOPSIS": 6, - "If": 15, - "you": 44, - "want": 7, - "to": 95, - "know": 4, - "about": 4, - "F": 24, - "": 13, - "see": 5, - "file": 49, - "itself.": 3, - "No": 4, - "user": 4, - "serviceable": 1, - "parts": 1, - "inside.": 1, - "is": 69, - "all": 23, - "that": 33, - "should": 6, - "this.": 1, - "FUNCTIONS": 1, - "head2": 34, - "read_ackrc": 4, - "Reads": 1, - "contents": 2, - "of": 64, - ".ackrc": 1, - "and": 85, - "returns": 4, - "arguments.": 1, - "sub": 225, - "@files": 12, - "ENV": 40, - "ACKRC": 2, - "@dirs": 4, - "HOME": 4, - "USERPROFILE": 2, - "dir": 27, - "grep": 17, - "bsd_glob": 4, - "GLOB_TILDE": 2, - "filename": 68, - "&&": 83, - "e": 20, - "open": 7, - "or": 49, - "die": 38, - "@lines": 21, - "/./": 2, - "/": 69, - "s*#/": 2, - "<$fh>": 4, - "chomp": 3, - "close": 19, - "s/": 22, - "+": 120, - "//": 9, - "return": 157, - "get_command_line_options": 4, - "Gets": 3, - "command": 14, - "line": 20, - "arguments": 2, - "does": 10, - "specific": 2, - "tweaking.": 1, - "opt": 291, - "pager": 19, - "ACK_PAGER_COLOR": 7, - "||": 49, - "ACK_PAGER": 5, - "getopt_specs": 6, - "m": 17, - "after_context": 16, - "before_context": 18, - "shift": 165, - "val": 26, - "break": 14, - "c": 5, - "count": 23, - "color": 38, - "ACK_COLOR_MATCH": 5, - "ACK_COLOR_FILENAME": 5, - "ACK_COLOR_LINENO": 4, - "column": 4, - "#": 99, - "ignore": 7, - "this": 22, - "option": 7, - "it": 28, - "handled": 2, - "beforehand": 2, - "f": 25, - "flush": 8, - "follow": 7, - "G": 11, - "heading": 18, - "h": 6, - "H": 6, - "i": 26, - "invert_file_match": 8, - "lines": 19, - "l": 17, - "regex": 28, - "n": 19, - "o": 17, - "output": 36, - "undef": 17, - "passthru": 9, - "print0": 7, - "Q": 7, - "show_types": 4, - "smart_case": 3, - "sort_files": 11, - "u": 10, - "w": 4, - "remove_dir_sep": 7, - "delete": 10, - "print_version_statement": 2, - "exit": 16, - "show_help": 3, - "@_": 43, - "show_help_types": 2, - "require": 12, - "Pod": 4, - "Usage": 4, - "pod2usage": 2, - "verbose": 2, - "exitval": 2, - "dummy": 2, - "wanted": 4, - "no//": 2, - "must": 5, - "be": 36, - "later": 2, - "exists": 19, - "else": 53, - "qq": 18, - "Unknown": 2, - "unshift": 4, - "@ARGV": 12, - "split": 13, - "ACK_OPTIONS": 5, - "def_types_from_ARGV": 5, - "filetypes_supported": 5, - "parser": 12, - "Parser": 4, - "new": 55, - "configure": 4, - "getoptions": 4, - "to_screen": 10, - "defaults": 16, - "eval": 8, - "Win32": 9, - "Console": 2, - "ANSI": 3, - "key": 20, - "value": 12, - "<": 15, - "join": 5, - "map": 10, - "@ret": 10, - "from": 19, - "warn": 22, - "..": 7, - "uniq": 4, - "@uniq": 2, - "sort": 8, - "a": 85, - "<=>": 2, - "b": 6, - "keys": 15, - "numerical": 2, - "occurs": 2, - "only": 11, - "once": 4, - "Go": 1, - "through": 6, - "look": 2, - "I": 68, - "<--type-set>": 1, - "foo=": 1, - "bar": 3, - "<--type-add>": 1, - "xml=": 1, - ".": 125, - "Remove": 1, - "them": 5, - "add": 9, - "supported": 1, - "filetypes": 8, - "i.e.": 2, - "into": 6, - "etc.": 3, - "@typedef": 8, - "td": 6, - "set": 12, - "Builtin": 4, - "cannot": 4, - "changed.": 4, - "ne": 9, - "delete_type": 5, - "Type": 2, - "exist": 4, - "creating": 3, - "with": 26, - "...": 2, - "unless": 39, - "@exts": 8, - ".//": 2, - "Cannot": 4, - "append": 2, - "Removes": 1, - "internal": 1, - "structures": 1, - "containing": 5, - "information": 2, - "type_wanted.": 1, - "Internal": 2, - "error": 4, - "builtin": 2, - "ignoredir_filter": 5, - "Standard": 1, - "filter": 12, - "pass": 1, - "L": 34, - "": 1, - "descend_filter.": 1, - "It": 3, - "true": 3, - "directory": 8, - "any": 4, - "ones": 1, - "we": 7, - "ignore.": 1, - "path": 28, - "This": 27, - "removes": 1, - "trailing": 1, - "separator": 4, - "there": 6, - "one": 9, - "its": 2, - "argument": 1, - "Returns": 10, - "list": 10, - "<$filename>": 1, - "could": 2, - "be.": 1, - "For": 5, - "example": 5, - "": 1, - "The": 22, - "filetype": 1, - "will": 9, - "C": 56, - "": 1, - "can": 30, - "skipped": 2, - "something": 3, - "avoid": 1, - "searching": 6, - "even": 4, - "under": 5, - "a.": 1, - "constant": 2, - "TEXT": 16, - "basename": 9, - ".*": 2, - "is_searchable": 8, - "lc_basename": 8, - "lc": 5, - "r": 14, - "B": 76, - "header": 17, - "SHEBANG#!#!": 2, - "ruby": 3, - "|": 28, - "lua": 2, - "erl": 2, - "hp": 2, - "ython": 2, - "d": 9, - "d.": 2, - "*": 8, - "b/": 4, - "ba": 2, - "k": 6, - "z": 2, - "sh": 2, - "/i": 2, - "search": 11, - "false": 1, - "regular": 3, - "expression": 9, - "found.": 4, - "www": 2, - "U": 2, - "y": 8, - "tr/": 2, - "x": 7, - "w/": 3, - "nOo_/": 2, - "_thpppt": 3, - "_get_thpppt": 3, - "print": 35, - "_bar": 3, - "<<": 10, - "&": 22, - "*I": 2, - "g": 7, - "#.": 6, - ".#": 4, - "I#": 2, - "#I": 6, - "#7": 4, - "results.": 2, - "on": 25, - "when": 18, - "used": 12, - "interactively": 6, - "no": 22, - "Print": 6, - "between": 4, - "results": 8, - "different": 2, - "files.": 6, - "group": 2, - "Same": 8, - "nogroup": 2, - "noheading": 2, - "nobreak": 2, - "Highlight": 2, - "matching": 15, - "text": 6, - "redirected": 2, - "Windows": 4, - "colour": 2, - "COLOR": 6, - "match": 21, - "lineno": 2, - "Set": 3, - "filenames": 7, - "matches": 7, - "numbers.": 2, - "Flush": 2, - "immediately": 2, - "non": 2, - "goes": 2, - "pipe": 4, - "finding": 2, - "Only": 7, - "found": 11, - "without": 3, - "searching.": 2, - "PATTERN": 8, - "specified.": 4, - "REGEX": 2, - "but": 4, - "REGEX.": 2, - "Sort": 2, - "lexically.": 3, - "invert": 2, - "Print/search": 2, - "handle": 3, - "do": 12, - "g/": 2, - "G.": 2, - "show": 3, - "Show": 2, - "which": 7, - "has.": 2, - "inclusion/exclusion": 2, - "All": 4, - "searched": 5, - "Ignores": 2, - ".svn": 3, - "other": 5, - "ignored": 6, - "directories": 9, - "unrestricted": 2, - "name": 44, - "Add/Remove": 2, - "dirs": 2, - "R": 2, - "recurse": 2, - "Recurse": 3, - "subdirectories": 2, - "END_OF_HELP": 2, - "VMS": 2, - "vd": 2, - "Term": 6, - "ANSIColor": 8, - "black": 3, - "on_yellow": 3, - "bold": 5, - "green": 3, - "yellow": 3, - "printing": 2, - "qr/": 13, - "last_output_line": 6, - "any_output": 10, - "keep_context": 8, - "@before": 16, - "before_starts_at_line": 10, - "after": 18, - "number": 4, - "still": 4, - "res": 59, - "next_text": 8, - "has_lines": 4, - "scalar": 2, - "m/": 4, - "regex/": 9, - "next": 9, - "print_match_or_context": 13, - "elsif": 10, - "last": 17, - "max": 12, - "nmatches": 61, - "show_filename": 35, - "context_overall_output_count": 6, - "print_blank_line": 2, - "is_binary": 4, - "search_resource": 7, - "is_match": 7, - "starting_line_no": 1, - "match_start": 5, - "match_end": 3, - "Prints": 4, - "out": 2, - "context": 1, - "around": 5, - "match.": 3, - "opts": 2, - "array": 7, - "line_no": 12, - "show_column": 4, - "display_filename": 8, - "colored": 6, - "print_first_filename": 2, - "sep": 8, - "output_func": 8, - "print_separator": 2, - "print_filename": 2, - "display_line_no": 4, - "print_line_no": 2, - "regex/go": 2, - "regex/Term": 2, - "substr": 2, - "/eg": 2, - "z/": 2, - "K/": 2, - "z//": 2, - "print_column_no": 2, - "scope": 4, - "TOTAL_COUNT_SCOPE": 2, - "total_count": 10, - "get_total_count": 4, - "reset_total_count": 4, - "search_and_list": 8, - "Optimized": 1, - "version": 2, - "lines.": 3, - "ors": 11, - "record": 3, - "show_total": 6, - "print_count": 4, - "print_count0": 2, - "filetypes_supported_set": 9, - "True/False": 1, - "are": 25, - "print_files": 4, - "iter": 23, - "returned": 3, - "iterator": 3, - "<$regex>": 1, - "<$one>": 1, - "stop": 1, - "first.": 1, - "<$ors>": 1, - "<\"\\n\">": 1, - "defines": 2, - "what": 14, - "filename.": 1, - "print_files_with_matches": 4, - "where": 3, - "was": 2, - "repo": 18, - "Repository": 11, - "next_resource": 6, - "print_matches": 4, - "tarballs_work": 4, - ".tar": 2, - ".gz": 2, - "Tar": 4, - "XXX": 4, - "Error": 2, - "checking": 2, - "needs_line_scan": 14, - "reset": 5, - "filetype_setup": 4, - "Minor": 1, - "housekeeping": 1, - "before": 1, - "go": 1, - "expand_filenames": 7, - "reference": 8, - "expanded": 3, - "globs": 1, - "EXPAND_FILENAMES_SCOPE": 4, - "argv": 12, - "attr": 6, - "foreach": 4, - "pattern": 10, - "@results": 14, - "didn": 2, - "ve": 2, - "tried": 2, - "load": 2, - "GetAttributes": 2, - "end": 9, - "attributes": 4, - "got": 2, - "get_starting_points": 4, - "starting": 2, - "@what": 14, - "reslash": 4, - "Assume": 2, - "current": 5, - "start_point": 4, - "_match": 8, - "target": 6, - "invert_flag": 4, - "get_iterator": 4, - "Return": 2, - "starting_point": 10, - "g_regex": 4, - "file_filter": 12, - "g_regex/": 6, - "Maybe": 2, - "is_interesting": 4, - "descend_filter": 11, - "error_handler": 5, - "msg": 4, - "follow_symlinks": 6, - "set_up_pager": 3, - "Unable": 2, - "going": 1, - "pipe.": 1, - "exit_from_ack": 5, - "Exit": 1, - "application": 15, - "correct": 1, - "code.": 2, - "otherwise": 2, - "handed": 1, - "in": 36, - "argument.": 1, - "rc": 11, - "LICENSE": 3, - "Copyright": 2, - "Andy": 2, - "Lester.": 2, - "free": 4, - "software": 3, - "redistribute": 4, - "and/or": 4, - "modify": 4, - "terms": 4, - "Artistic": 2, - "License": 2, - "v2.0.": 2, - "End": 3, - "SHEBANG#!#! perl": 4, - "examples/benchmarks/fib.pl": 1, - "Fibonacci": 2, - "Benchmark": 1, - "DESCRIPTION": 4, - "Calculates": 1, - "Number": 1, - "": 1, - "unspecified": 1, - "fib": 4, - "N": 2, - "SEE": 4, - "ALSO": 4, - "": 1, - "SHEBANG#!perl": 5, - "MAIN": 1, - "main": 3, - "env_is_usable": 3, - "th": 1, - "pt": 1, - "env": 76, - "@keys": 2, - "ACK_/": 1, - "@ENV": 1, - "load_colors": 1, - "ACK_SWITCHES": 1, - "Unbuffer": 1, - "mode": 1, - "build_regex": 3, - "nargs": 2, - "Resource": 5, - "file_matching": 2, - "check_regex": 2, - "like": 13, - "finder": 1, - "options": 7, - "FILE...": 1, - "DIRECTORY...": 1, - "designed": 1, - "replacement": 1, - "uses": 2, - "": 5, - "searches": 1, - "named": 3, - "input": 9, - "FILEs": 1, - "standard": 1, - "given": 10, - "PATTERN.": 1, - "By": 2, - "prints": 2, - "also": 7, - "would": 5, - "actually": 1, - "let": 1, - "take": 5, - "advantage": 1, - ".wango": 1, - "won": 1, - "throw": 1, - "away": 1, - "because": 3, - "times": 2, - "symlinks": 1, - "than": 5, - "whatever": 1, - "were": 1, - "specified": 3, - "line.": 4, - "default.": 2, - "item": 44, - "": 11, - "paths": 3, - "included": 1, - "search.": 1, - "entire": 3, - "matched": 1, - "against": 1, - "shell": 4, - "glob.": 1, - "<-i>": 5, - "<-w>": 2, - "<-v>": 3, - "<-Q>": 4, - "apply": 3, - "relative": 1, - "convenience": 1, - "shortcut": 2, - "<-f>": 6, - "<--group>": 2, - "<--nogroup>": 2, - "groups": 1, - "with.": 1, - "interactively.": 1, - "result": 1, - "per": 1, - "grep.": 2, - "redirected.": 1, - "<-H>": 1, - "<--with-filename>": 1, - "<-h>": 1, - "<--no-filename>": 1, - "Suppress": 1, - "prefixing": 1, - "multiple": 5, - "searched.": 1, - "<--help>": 1, - "short": 1, - "help": 2, - "statement.": 1, - "<--ignore-case>": 1, - "Ignore": 3, - "case": 3, - "strings.": 1, - "applies": 3, - "regexes": 3, - "<-g>": 5, - "<-G>": 3, - "options.": 4, - "": 2, - "etc": 2, - "May": 2, - "directories.": 2, - "mason": 1, - "users": 4, - "may": 3, - "wish": 1, - "include": 1, - "<--ignore-dir=data>": 1, - "<--noignore-dir>": 1, - "allows": 4, - "normally": 1, - "perhaps": 1, - "research": 1, - "<.svn/props>": 1, - "always": 5, - "simple": 2, - "name.": 1, - "Nested": 1, - "": 1, - "NOT": 1, - "supported.": 1, - "You": 4, - "need": 5, - "specify": 1, - "<--ignore-dir=foo>": 1, - "then": 4, - "foo": 6, - "taken": 1, - "account": 1, - "explicitly": 1, - "": 2, - "file.": 3, - "Multiple": 1, - "<--line>": 1, - "comma": 1, - "separated": 2, - "<--line=3,5,7>": 1, - "<--line=4-7>": 1, - "works.": 1, - "ascending": 1, - "order": 2, - "matter": 1, - "<-l>": 2, - "<--files-with-matches>": 1, - "instead": 4, - "text.": 1, - "<-L>": 1, - "<--files-without-matches>": 1, - "": 2, - "equivalent": 2, - "specifying": 1, - "Specify": 1, - "explicitly.": 1, - "helpful": 2, - "don": 2, - "": 1, - "via": 1, - "": 4, - "": 4, - "environment": 2, - "variables.": 1, - "Using": 3, - "suppress": 3, - "grouping": 3, - "coloring": 3, - "piping": 3, - "does.": 2, - "<--passthru>": 1, - "whether": 1, - "they": 1, - "expression.": 1, - "Highlighting": 1, - "work": 3, - "though": 1, - "so": 4, - "highlight": 1, - "seeing": 1, - "tail": 1, - "/access.log": 1, - "<--print0>": 1, - "works": 1, - "conjunction": 1, - "null": 1, - "byte": 1, - "usual": 1, - "newline.": 1, - "dealing": 1, - "contain": 3, - "whitespace": 1, - "e.g.": 2, - "html": 1, - "xargs": 2, - "rm": 1, - "<--literal>": 1, - "Quote": 1, - "metacharacters": 2, - "treated": 1, - "literal.": 1, - "<-r>": 1, - "<-R>": 1, - "<--recurse>": 1, - "just": 2, - "here": 2, - "compatibility": 2, - "turning": 1, - "<--no-recurse>": 1, - "off.": 1, - "<--smart-case>": 1, - "<--no-smart-case>": 1, - "strings": 1, - "contains": 2, - "uppercase": 1, - "characters.": 1, - "similar": 1, - "": 1, - "vim.": 1, - "overrides": 2, - "option.": 1, - "<--sort-files>": 1, - "Sorts": 1, - "Use": 6, - "your": 20, - "listings": 1, - "deterministic": 1, - "runs": 1, - "<--show-types>": 1, - "Outputs": 1, - "associates": 1, - "Works": 1, - "<--thpppt>": 1, - "Display": 1, - "important": 1, - "Bill": 1, - "Cat": 1, - "logo.": 1, - "Note": 5, - "exact": 1, - "spelling": 1, - "<--thpppppt>": 1, - "important.": 1, - "make": 3, - "perl": 8, - "php": 2, - "python": 1, - "looks": 2, - "location.": 1, - "variable": 1, - "specifies": 1, - "placed": 1, - "front": 1, - "explicit": 1, - "Specifies": 4, - "recognized": 1, - "clear": 2, - "dark": 1, - "underline": 1, - "underscore": 2, - "blink": 1, - "reverse": 1, - "concealed": 1, - "red": 1, - "blue": 1, - "magenta": 1, - "on_black": 1, - "on_red": 1, - "on_green": 1, - "on_blue": 1, - "on_magenta": 1, - "on_cyan": 1, - "on_white.": 1, - "Case": 1, - "significant.": 1, - "Underline": 1, - "reset.": 1, - "alone": 1, - "sets": 4, - "foreground": 1, - "on_color": 1, - "background": 1, - "color.": 2, - "<--color-filename>": 1, - "printed": 1, - "<--color>": 1, - "mode.": 1, - "<--color-lineno>": 1, - "See": 1, - "": 1, - "specifications.": 1, - "such": 6, - "": 1, - "": 1, - "": 1, - "send": 1, - "output.": 1, - "except": 1, - "assume": 1, - "support": 2, - "both": 1, - "understands": 1, - "sequences.": 1, - "never": 1, - "back": 4, - "ACK": 2, - "OTHER": 1, - "TOOLS": 1, - "Vim": 3, - "integration": 3, - "integrates": 1, - "easily": 2, - "editor.": 1, - "<.vimrc>": 1, - "grepprg": 1, - "That": 3, - "examples": 1, - "<-a>": 1, - "flags.": 1, - "Now": 1, - "step": 1, - "Dumper": 1, - "perllib": 1, - "Emacs": 1, - "Phil": 1, - "Jackson": 1, - "put": 1, - "together": 2, - "an": 16, - "": 1, - "extension": 1, - "": 1, - "TextMate": 2, - "Pedro": 1, - "Melo": 1, - "who": 1, - "writes": 1, - "Shell": 2, - "Code": 1, - "greater": 1, - "normal": 1, - "code": 8, - "<$?=256>": 1, - "": 1, - "backticks.": 1, - "errors": 1, - "used.": 1, - "at": 4, - "least": 1, - "returned.": 1, - "DEBUGGING": 1, - "PROBLEMS": 1, - "gives": 2, - "re": 3, - "expecting": 1, - "forgotten": 1, - "<--noenv>": 1, - "<.ackrc>": 1, - "remember.": 1, - "Put": 1, - "definitions": 1, - "it.": 1, - "smart": 1, - "too.": 1, - "there.": 1, - "working": 1, - "big": 1, - "codesets": 1, - "more": 2, - "create": 3, - "tree": 2, - "ideal": 1, - "sending": 1, - "": 1, - "prefer": 1, - "doubt": 1, - "day": 1, - "find": 1, - "trouble": 1, - "spots": 1, - "website": 1, - "visitor.": 1, - "had": 1, - "problem": 1, - "loading": 1, - "": 1, - "took": 1, - "access": 2, - "log": 3, - "scanned": 1, - "twice.": 1, - "aa.bb.cc.dd": 1, - "/path/to/access.log": 1, - "B5": 1, - "troublesome.gif": 1, - "first": 1, - "finds": 2, - "Apache": 2, - "IP.": 1, - "second": 1, - "troublesome": 1, - "GIF": 1, - "shows": 1, - "previous": 1, - "five": 1, - "case.": 1, - "Share": 1, - "knowledge": 1, - "Join": 1, - "mailing": 1, - "list.": 1, - "Send": 1, - "me": 1, - "tips": 1, - "here.": 1, - "FAQ": 1, - "Why": 3, - "isn": 1, - "doesn": 8, - "behavior": 3, - "driven": 1, - "filetype.": 1, - "": 1, - "kind": 1, - "ignores": 1, - "switch": 1, - "you.": 1, - "source": 2, - "compiled": 1, - "object": 6, - "control": 1, - "metadata": 1, - "wastes": 1, - "lot": 1, - "time": 3, - "those": 2, - "well": 2, - "returning": 1, - "things": 2, - "great": 1, - "did": 1, - "replace": 3, - "read": 6, - "only.": 1, - "has": 3, - "perfectly": 1, - "good": 2, - "way": 2, - "using": 5, - "<-p>": 1, - "<-n>": 1, - "switches.": 1, - "certainly": 2, - "select": 1, - "update.": 1, - "change": 1, - "PHP": 1, - "Unix": 1, - "Can": 1, - "recognize": 1, - "<.xyz>": 1, - "already": 2, - "program/package": 1, - "called": 4, - "ack.": 2, - "Yes": 1, - "know.": 1, - "nothing": 1, - "suggest": 1, - "symlink": 1, - "points": 1, - "": 1, - "crucial": 1, - "benefits": 1, - "having": 1, - "Regan": 1, - "Slaven": 1, - "ReziE": 1, - "<0x107>": 1, - "Mark": 1, - "Stosberg": 1, - "David": 1, - "Alan": 1, - "Pisoni": 1, - "Adriano": 1, - "Ferreira": 1, - "James": 1, - "Keenan": 1, - "Leland": 1, - "Johnson": 1, - "Ricardo": 1, - "Signes": 1, - "Pete": 1, - "Krawczyk.": 1, - "files_defaults": 3, - "skip_dirs": 3, - "CORE": 3, - "curdir": 1, - "updir": 1, - "__PACKAGE__": 1, - "parms": 15, - "@queue": 8, - "_setup": 2, - "fullpath": 12, - "splice": 2, - "local": 5, - "wantarray": 3, - "_candidate_files": 2, - "sort_standard": 2, - "cmp": 2, - "sort_reverse": 1, - "@parts": 3, - "passed_parms": 6, - "copy": 4, - "parm": 1, - "hash": 11, - "badkey": 1, - "caller": 2, - "start": 7, - "dh": 4, - "opendir": 1, - "@newfiles": 5, - "sort_sub": 4, - "readdir": 1, - "has_stat": 3, - "catdir": 3, - "closedir": 1, - "": 1, - "these": 4, - "updated": 1, - "update": 1, - "message": 1, - "bak": 1, - "core": 1, - "swp": 1, - "min": 3, - "js": 1, - "1": 1, - "str": 12, - "regex_is_lc": 2, - "S": 1, - ".*//": 1, - "_my_program": 3, - "Basename": 2, - "FAIL": 12, - "Carp": 11, - "confess": 2, - "@ISA": 2, - "class": 8, - "self": 141, - "bless": 7, - "could_be_binary": 4, - "opened": 1, - "id": 6, - "*STDIN": 2, - "size": 5, - "_000": 1, - "buffer": 9, - "sysread": 1, - "regex/m": 1, - "seek": 4, - "readline": 1, - "nexted": 3, - "CGI": 6, - "Fast": 3, - "XML": 2, - "Hash": 11, - "XS": 2, - "FindBin": 1, - "Bin": 3, - "#use": 1, - "lib": 2, - "_stop": 4, - "request": 11, - "SIG": 3, - "nginx": 2, - "external": 2, - "fcgi": 2, - "Ext_Request": 1, - "FCGI": 1, - "Request": 11, - "*STDERR": 1, - "int": 2, - "ARGV": 2, - "conv": 2, - "use_attr": 1, - "indent": 1, - "xml_decl": 1, - "tmpl_path": 2, - "tmpl": 5, - "data": 3, - "nick": 1, - "parent": 5, - "third_party": 1, - "artist_name": 2, - "venue": 2, - "event": 2, - "date": 2, - "zA": 1, - "Z0": 1, - "Content": 2, - "application/xml": 1, - "charset": 2, - "utf": 2, - "hash2xml": 1, - "text/html": 1, - "nError": 1, - "M": 1, - "system": 1, - "Foo": 11, - "Bar": 1, - "@array": 1, - "pod": 1, - "Catalyst": 10, - "PSGI": 10, - "How": 1, - "": 3, - "specification": 3, - "interface": 1, - "web": 8, - "servers": 2, - "based": 2, - "applications": 2, - "frameworks.": 1, - "supports": 1, - "writing": 1, - "portable": 1, - "run": 1, - "various": 2, - "methods": 4, - "standalone": 1, - "server": 2, - "mod_perl": 3, - "FastCGI": 2, - "": 3, - "implementation": 1, - "running": 1, - "applications.": 1, - "Engine": 1, - "XXXX": 1, - "classes": 2, - "environments": 1, - "been": 1, - "changed": 1, - "done": 2, - "implementing": 1, - "possible": 2, - "manually": 2, - "": 1, - "root": 1, - "application.": 1, - "write": 2, - "own": 4, - ".psgi": 7, - "Writing": 2, - "alternate": 1, - "": 1, - "extensions": 1, - "implement": 2, - "": 1, - "": 1, - "": 1, - "simplest": 1, - "<.psgi>": 1, - "": 1, - "TestApp": 5, - "app": 2, - "psgi_app": 3, - "middleware": 2, - "components": 2, - "automatically": 2, - "": 1, - "applied": 1, - "psgi": 2, - "yourself.": 2, - "Details": 1, - "below.": 1, - "Additional": 1, - "": 1, - "What": 1, - "generates": 2, - "": 1, - "setting": 2, - "wrapped": 1, - "": 1, - "some": 1, - "engine": 1, - "fixes": 1, - "uniform": 1, - "behaviour": 2, - "contained": 1, - "over": 2, - "": 1, - "": 1, - "override": 1, - "providing": 2, - "none": 1, - "call": 2, - "MyApp": 1, - "Thus": 1, - "functionality": 1, - "ll": 1, - "An": 1, - "apply_default_middlewares": 2, - "method": 8, - "supplied": 1, - "wrap": 1, - "middlewares": 1, - "means": 3, - "auto": 1, - "generated": 1, - "": 1, - "": 1, - "AUTHORS": 2, - "Contributors": 1, - "Catalyst.pm": 1, - "library": 2, - "software.": 1, - "same": 2, - "Plack": 25, - "_001": 1, - "HTTP": 16, - "Headers": 8, - "MultiValue": 9, - "Body": 2, - "Upload": 2, - "TempBuffer": 2, - "URI": 11, - "Escape": 6, - "_deprecated": 8, - "alt": 1, - "carp": 2, - "croak": 3, - "required": 2, - "address": 2, - "REMOTE_ADDR": 1, - "remote_host": 2, - "REMOTE_HOST": 1, - "protocol": 1, - "SERVER_PROTOCOL": 1, - "REQUEST_METHOD": 1, - "port": 1, - "SERVER_PORT": 2, - "REMOTE_USER": 1, - "request_uri": 1, - "REQUEST_URI": 2, - "path_info": 4, - "PATH_INFO": 3, - "script_name": 1, - "SCRIPT_NAME": 2, - "scheme": 3, - "secure": 2, - "body": 30, - "content_length": 4, - "CONTENT_LENGTH": 3, - "content_type": 5, - "CONTENT_TYPE": 2, - "session": 1, - "session_options": 1, - "logger": 1, - "cookies": 9, - "HTTP_COOKIE": 3, - "@pairs": 2, - "pair": 4, - "uri_unescape": 1, - "query_parameters": 3, - "uri": 11, - "query_form": 2, - "content": 8, - "_parse_request_body": 4, - "cl": 10, - "raw_body": 1, - "headers": 56, - "field": 2, - "HTTPS": 1, - "_//": 1, - "CONTENT": 1, - "COOKIE": 1, - "content_encoding": 5, - "referer": 3, - "user_agent": 3, - "body_parameters": 3, - "parameters": 8, - "query": 4, - "flatten": 3, - "uploads": 5, - "hostname": 1, - "url_scheme": 1, - "params": 1, - "query_params": 1, - "body_params": 1, - "cookie": 6, - "param": 8, - "get_all": 2, - "upload": 13, - "raw_uri": 1, - "base": 10, - "path_query": 1, - "_uri_base": 3, - "path_escape_class": 2, - "uri_escape": 3, - "QUERY_STRING": 3, - "canonical": 2, - "HTTP_HOST": 1, - "SERVER_NAME": 1, - "new_response": 4, - "Response": 16, - "ct": 3, - "cleanup": 1, - "spin": 2, - "chunk": 4, - "length": 1, - "rewind": 1, - "from_mixed": 2, - "@uploads": 3, - "@obj": 3, - "_make_upload": 2, - "__END__": 2, - "Portable": 2, - "app_or_middleware": 1, - "req": 28, - "finalize": 5, - "": 2, - "provides": 1, - "consistent": 1, - "API": 2, - "objects": 2, - "across": 1, - "environments.": 1, - "CAVEAT": 1, - "module": 2, - "intended": 1, - "developers": 3, - "framework": 2, - "rather": 2, - "directly": 1, - "recommended": 1, - "yet": 1, - "too": 1, - "low": 1, - "level.": 1, - "encouraged": 1, - "frameworks": 2, - "": 1, - "modules": 1, - "": 1, - "provide": 1, - "higher": 1, - "level": 1, - "top": 1, - "PSGI.": 1, - "METHODS": 2, - "Some": 1, - "earlier": 1, - "versions": 1, - "deprecated": 1, - "Take": 1, - "": 1, - "Unless": 1, - "noted": 1, - "": 1, - "passing": 1, - "values": 5, - "accessor": 1, - "debug": 1, - "set.": 1, - "": 2, - "request.": 1, - "uploads.": 2, - "": 2, - "": 1, - "objects.": 1, - "Shortcut": 6, - "content_encoding.": 1, - "content_length.": 1, - "content_type.": 1, - "header.": 2, - "referer.": 1, - "user_agent.": 1, - "GET": 1, - "POST": 1, - "CGI.pm": 2, - "compatible": 1, - "method.": 1, - "alternative": 1, - "accessing": 1, - "parameters.": 3, - "Unlike": 1, - "": 1, - "allow": 1, - "modifying": 1, - "@values": 1, - "@params": 1, - "convenient": 1, - "@fields": 1, - "Creates": 2, - "": 3, - "object.": 4, - "Handy": 1, - "remove": 2, - "dependency": 1, - "easy": 1, - "subclassing": 1, - "duck": 1, - "typing": 1, - "overriding": 1, - "generation": 1, - "middlewares.": 1, - "Parameters": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "store": 1, - "plain": 2, - "": 1, - "scalars": 1, - "references": 1, - "ARRAY": 1, - "parse": 1, - "twice": 1, - "efficiency.": 1, - "DISPATCHING": 1, - "wants": 1, - "dispatch": 1, - "route": 1, - "actions": 1, - "sure": 1, - "": 1, - "virtual": 1, - "regardless": 1, - "how": 1, - "mounted.": 1, - "hosted": 1, - "scripts": 1, - "multiplexed": 1, - "tools": 1, - "": 1, - "idea": 1, - "subclass": 1, - "define": 1, - "uri_for": 2, - "args": 3, - "So": 1, - "say": 1, - "link": 1, - "signoff": 1, - "": 1, - "empty.": 1, - "older": 1, - "instead.": 1, - "Cookie": 2, - "handling": 1, - "simplified": 1, - "string": 5, - "encoding": 2, - "decoding": 1, - "totally": 1, - "up": 1, - "framework.": 1, - "Also": 1, - "": 1, - "now": 1, - "": 1, - "Simple": 1, - "longer": 1, - "have": 2, - "wacky": 1, - "simply": 1, - "Tatsuhiko": 2, - "Miyagawa": 2, - "Kazuhiro": 1, - "Osawa": 1, - "Tokuhiro": 2, - "Matsuno": 2, - "": 1, - "": 1, - "Util": 3, - "Accessor": 1, - "status": 17, - "Scalar": 2, - "location": 4, - "redirect": 1, - "url": 2, - "clone": 1, - "_finalize_cookies": 2, - "/chr": 1, - "/ge": 1, - "LWS": 1, - "single": 1, - "SP": 1, - "//g": 1, - "CR": 1, - "LF": 1, - "since": 1, - "char": 1, - "invalid": 1, - "header_field_names": 1, - "_body": 2, - "blessed": 1, - "overload": 1, - "Method": 1, - "_bake_cookie": 2, - "push_header": 1, - "@cookie": 7, - "domain": 3, - "_date": 2, - "expires": 7, - "httponly": 1, - "@MON": 1, - "Jan": 1, - "Feb": 1, - "Mar": 1, - "Apr": 1, - "Jun": 1, - "Jul": 1, - "Aug": 1, - "Sep": 1, - "Oct": 1, - "Nov": 1, - "Dec": 1, - "@WDAY": 1, - "Sun": 1, - "Mon": 1, - "Tue": 1, - "Wed": 1, - "Thu": 1, - "Fri": 1, - "Sat": 1, - "sec": 2, - "hour": 2, - "mday": 2, - "mon": 2, - "year": 3, - "wday": 2, - "gmtime": 1, - "sprintf": 1, - "WDAY": 1, - "MON": 1, - "response": 5, - "psgi_handler": 1, - "API.": 1, - "Sets": 2, - "gets": 2, - "": 1, - "alias.": 2, - "response.": 1, - "Setter": 2, - "either": 2, - "headers.": 1, - "body_str": 1, - "io": 1, - "body.": 1, - "IO": 1, - "Handle": 1, - "": 1, - "X": 2, - "text/plain": 1, - "gzip": 1, - "normalize": 1, - "string.": 1, - "Users": 1, - "responsible": 1, - "properly": 1, - "": 1, - "names": 1, - "their": 1, - "corresponding": 1, - "": 2, - "everything": 1, - "": 1, - "": 2, - "": 1, - "": 1, - "": 1, - "integer": 1, - "epoch": 1, - "": 1, - "convert": 1, - "formats": 1, - "<+3M>": 1, - "reference.": 1, - "AUTHOR": 1 - }, - "Perl6": { - "token": 6, - "pod_formatting_code": 1, - "{": 29, - "": 1, - "<[A..Z]>": 1, - "*POD_IN_FORMATTINGCODE": 1, - "}": 27, - "": 1, - "[": 1, - "": 1, - "#": 13, - "N*": 1, - "role": 10, - "q": 5, - "stopper": 2, - "MAIN": 1, - "quote": 1, - ")": 19, - "backslash": 3, - "sym": 3, - "<\\\\>": 1, - "": 1, - "": 1, - "": 1, - "": 1, - ".": 1, - "method": 2, - "tweak_q": 1, - "(": 16, - "v": 2, - "self.panic": 2, - "tweak_qq": 1, - "qq": 5, - "does": 7, - "b1": 1, - "c1": 1, - "s1": 1, - "a1": 1, - "h1": 1, - "f1": 1, - "Too": 2, - "late": 2, - "for": 2, - "SHEBANG#!perl": 1, - "use": 1, - "v6": 1, - ";": 19, - "my": 10, - "string": 7, - "if": 1, - "eq": 1, - "say": 10, - "regex": 2, - "http": 1, - "-": 3, - "verb": 1, - "|": 9, - "multi": 2, - "line": 5, - "comment": 2, - "I": 1, - "there": 1, - "m": 2, - "even": 1, - "specialer": 1, - "nesting": 1, - "work": 1, - "<": 3, - "trying": 1, - "mixed": 1, - "delimiters": 1, - "": 1, - "arbitrary": 2, - "delimiter": 2, - "Hooray": 1, - "": 1, - "with": 9, - "whitespace": 1, - "<<": 1, - "more": 1, - "strings": 1, - "%": 1, - "hash": 1, - "Hash.new": 1, - "begin": 1, - "pod": 1, - "Here": 1, - "t": 2, - "highlighted": 1, - "table": 1, - "Of": 1, - "things": 1, - "A": 3, - "single": 3, - "declarator": 7, - "a": 8, - "keyword": 7, - "like": 7, - "Another": 2, - "block": 2, - "brace": 1, - "More": 2, - "blocks": 2, - "don": 2, - "x": 2, - "foo": 3, - "Rob": 1, - "food": 1, - "match": 1, - "sub": 1, - "something": 1, - "Str": 1, - "D": 1, - "value": 1, - "...": 1, - "s": 1, - "some": 2, - "stuff": 1, - "chars": 1, - "/": 1, - "": 1, - "": 1, - "roleq": 1 - }, - "PHP": { - "<": 11, - "php": 12, - "namespace": 28, - "Symfony": 24, - "Component": 24, - "Console": 17, - ";": 1383, - "use": 23, - "Input": 6, - "InputInterface": 4, - "ArgvInput": 2, - "ArrayInput": 3, - "InputDefinition": 2, - "InputOption": 15, - "InputArgument": 3, - "Output": 5, - "OutputInterface": 6, - "ConsoleOutput": 2, - "ConsoleOutputInterface": 2, - "Command": 6, - "HelpCommand": 2, - "ListCommand": 2, - "Helper": 3, - "HelperSet": 3, - "FormatterHelper": 2, - "DialogHelper": 2, - "class": 21, - "Application": 3, - "{": 974, - "private": 24, - "commands": 39, - "wantHelps": 4, - "false": 154, - "runningCommand": 5, - "name": 181, - "version": 8, - "catchExceptions": 4, - "autoExit": 4, - "definition": 3, - "helperSet": 6, - "public": 202, - "function": 205, - "__construct": 8, - "(": 2416, - ")": 2417, - "this": 928, - "-": 1271, - "true": 133, - "array": 296, - "getDefaultHelperSet": 2, - "getDefaultInputDefinition": 2, - "foreach": 94, - "getDefaultCommands": 2, - "as": 96, - "command": 41, - "add": 7, - "}": 972, - "run": 4, - "input": 20, - "null": 164, - "output": 60, - "if": 450, - "new": 74, - "try": 3, - "statusCode": 14, - "doRun": 2, - "catch": 3, - "Exception": 1, - "e": 18, - "throw": 19, - "instanceof": 8, - "renderException": 3, - "getErrorOutput": 2, - "else": 70, - "getCode": 1, - "is_numeric": 7, - "&&": 119, - "exit": 7, - "return": 305, - "getCommandName": 2, - "hasParameterOption": 7, - "setDecorated": 2, - "elseif": 31, - "setInteractive": 2, - "function_exists": 4, - "getHelperSet": 3, - "has": 7, - "inputStream": 2, - "get": 12, - "getInputStream": 1, - "posix_isatty": 1, - "setVerbosity": 2, - "VERBOSITY_QUIET": 1, - "VERBOSITY_VERBOSE": 2, - "writeln": 13, - "getLongVersion": 3, - "find": 17, - "setHelperSet": 1, - "getDefinition": 2, - "getHelp": 2, - "messages": 16, - "sprintf": 27, - "getOptions": 1, - "option": 5, - "[": 672, - "]": 672, - ".": 169, - "getName": 14, - "getShortcut": 2, - "getDescription": 3, - "implode": 8, - "PHP_EOL": 3, - "setCatchExceptions": 1, - "boolean": 4, - "Boolean": 4, - "setAutoExit": 1, - "setName": 1, - "getVersion": 3, - "setVersion": 1, - "register": 1, - "addCommands": 1, - "setApplication": 2, - "isEnabled": 1, - "getAliases": 3, - "alias": 87, - "isset": 101, - "InvalidArgumentException": 9, - "helpCommand": 3, - "setCommand": 1, - "getNamespaces": 3, - "namespaces": 4, - "extractNamespace": 7, - "array_values": 5, - "array_unique": 4, - "array_filter": 2, - "findNamespace": 4, - "allNamespaces": 3, - "n": 12, - "explode": 9, - "found": 4, - "i": 36, - "part": 10, - "abbrevs": 31, - "static": 6, - "getAbbreviations": 4, - "array_map": 2, - "p": 3, - "message": 12, - "<=>": 3, - "alternatives": 10, - "findAlternativeNamespace": 2, - "count": 32, - "getAbbreviationSuggestions": 4, - "searchName": 13, - "pos": 3, - "strrpos": 2, - "substr": 6, - "namespace.substr": 1, - "suggestions": 2, - "aliases": 8, - "findAlternativeCommands": 2, - "all": 11, - "substr_count": 1, - "+": 12, - "names": 3, - "for": 8, - "len": 11, - "strlen": 14, - "abbrev": 4, - "asText": 1, - "raw": 2, - "width": 7, - "sortCommands": 4, - "space": 5, - "space.": 1, - "asXml": 2, - "asDom": 2, - "dom": 12, - "DOMDocument": 2, - "formatOutput": 1, - "appendChild": 10, - "xml": 5, - "createElement": 6, - "commandsXML": 3, - "setAttribute": 2, - "namespacesXML": 3, - "namespaceArrayXML": 4, - "continue": 7, - "commandXML": 3, - "createTextNode": 1, - "node": 42, - "getElementsByTagName": 1, - "item": 9, - "importNode": 3, - "saveXml": 1, - "string": 5, - "encoding": 2, - "mb_detect_encoding": 1, - "mb_strlen": 1, - "do": 2, - "title": 3, - "get_class": 4, - "getTerminalWidth": 3, - "PHP_INT_MAX": 1, - "lines": 3, - "preg_split": 1, - "getMessage": 1, - "line": 10, - "str_split": 1, - "max": 2, - "str_repeat": 2, - "title.str_repeat": 1, - "line.str_repeat": 1, - "message.": 1, - "getVerbosity": 1, - "trace": 12, - "getTrace": 1, - "array_unshift": 2, - "getFile": 2, - "getLine": 2, - "type": 62, - "file": 3, - "while": 6, - "getPrevious": 1, - "getSynopsis": 1, - "protected": 59, - "defined": 5, - "ansicon": 4, - "getenv": 2, - "preg_replace": 4, - "preg_match": 6, - "getSttyColumns": 3, - "match": 4, - "getTerminalHeight": 1, - "trim": 3, - "getFirstArgument": 1, - "REQUIRED": 1, - "VALUE_NONE": 7, - "descriptorspec": 2, - "process": 10, - "proc_open": 1, - "pipes": 4, - "is_resource": 1, - "info": 5, - "stream_get_contents": 1, - "fclose": 2, - "proc_close": 1, - "namespacedCommands": 5, - "key": 64, - "ksort": 2, - "&": 19, - "limit": 3, - "parts": 4, - "array_pop": 1, - "array_slice": 1, - "callback": 5, - "findAlternatives": 3, - "collection": 3, - "call_user_func": 2, - "lev": 6, - "levenshtein": 2, - "3": 1, - "strpos": 15, - "values": 53, - "/": 1, - "||": 52, - "value": 53, - "asort": 1, - "array_keys": 7, - "BrowserKit": 1, - "DomCrawler": 5, - "Crawler": 2, - "Link": 3, - "Form": 4, - "Process": 1, - "PhpProcess": 2, - "abstract": 2, - "Client": 1, - "history": 15, - "cookieJar": 9, - "server": 20, - "request": 76, - "response": 33, - "crawler": 7, - "insulated": 7, - "redirect": 6, - "followRedirects": 5, - "History": 2, - "CookieJar": 2, - "setServerParameters": 2, - "followRedirect": 4, - "insulate": 1, - "class_exists": 2, - "RuntimeException": 2, - "array_merge": 32, - "setServerParameter": 1, - "getServerParameter": 1, - "default": 9, - "getHistory": 1, - "getCookieJar": 1, - "getCrawler": 1, - "getResponse": 1, - "getRequest": 1, - "click": 1, - "link": 10, - "submit": 2, - "getMethod": 6, - "getUri": 8, - "form": 7, - "setValues": 2, - "getPhpValues": 2, - "getPhpFiles": 2, - "method": 31, - "uri": 23, - "parameters": 4, - "files": 7, - "content": 4, - "changeHistory": 4, - "getAbsoluteUri": 2, - "isEmpty": 2, - "current": 4, - "parse_url": 3, - "PHP_URL_HOST": 1, - "PHP_URL_SCHEME": 1, - "Request": 3, - "allValues": 1, - "filterRequest": 2, - "doRequestInProcess": 2, - "doRequest": 2, - "filterResponse": 2, - "updateFromResponse": 1, - "getHeader": 2, - "createCrawlerFromContent": 2, - "getContent": 2, - "getScript": 2, - "sys_get_temp_dir": 2, - "isSuccessful": 1, - "getOutput": 3, - "unserialize": 1, - "LogicException": 4, - "addContent": 1, - "back": 2, - "requestFromRequest": 4, - "forward": 2, - "reload": 1, - "empty": 96, - "restart": 1, - "clear": 2, - "currentUri": 7, - "path": 20, - "PHP_URL_PATH": 1, - "path.": 1, - "getParameters": 1, - "getFiles": 3, - "getServer": 1, - "": 3, - "CakePHP": 6, - "tm": 6, - "Rapid": 2, - "Development": 2, - "Framework": 2, - "http": 14, - "cakephp": 4, - "org": 10, - "Copyright": 5, - "2005": 4, - "2012": 4, - "Cake": 7, - "Software": 5, - "Foundation": 4, - "Inc": 4, - "cakefoundation": 4, - "Licensed": 2, - "under": 2, - "The": 4, - "MIT": 4, - "License": 4, - "Redistributions": 2, - "of": 10, - "must": 2, - "retain": 2, - "the": 11, - "above": 2, - "copyright": 5, - "notice": 2, - "Project": 2, - "package": 2, - "Controller": 4, - "since": 2, - "v": 17, - "0": 4, - "2": 2, - "9": 1, - "license": 6, - "www": 4, - "opensource": 2, - "licenses": 2, - "mit": 2, - "App": 20, - "uses": 46, - "CakeResponse": 2, - "Network": 1, - "ClassRegistry": 9, - "Utility": 6, - "ComponentCollection": 2, - "View": 9, - "CakeEvent": 13, - "Event": 6, - "CakeEventListener": 4, - "CakeEventManager": 5, - "controller": 3, - "organization": 1, - "business": 1, - "logic": 1, - "Provides": 1, - "basic": 1, - "functionality": 1, - "such": 1, - "rendering": 1, - "views": 1, - "inside": 1, - "layouts": 1, - "automatic": 1, - "model": 34, - "availability": 1, - "redirection": 2, - "callbacks": 4, - "and": 5, - "more": 1, - "Controllers": 2, - "should": 1, - "provide": 1, - "a": 11, - "number": 1, - "action": 7, - "methods": 5, - "These": 1, - "are": 5, - "on": 4, - "that": 2, - "not": 2, - "prefixed": 1, - "with": 5, - "_": 1, - "Each": 1, - "serves": 1, - "an": 1, - "endpoint": 1, - "performing": 2, - "specific": 1, - "resource": 1, - "or": 9, - "resources": 1, - "For": 2, - "example": 2, - "adding": 1, - "editing": 1, - "object": 14, - "listing": 1, - "set": 26, - "objects": 5, - "You": 2, - "can": 2, - "access": 1, - "using": 2, - "contains": 1, - "POST": 1, - "GET": 1, - "FILES": 1, - "*": 25, - "were": 1, - "request.": 1, - "After": 1, - "required": 2, - "actions": 2, - "controllers": 2, - "responsible": 1, - "creating": 1, - "response.": 2, - "This": 1, - "usually": 1, - "takes": 1, - "generated": 1, - "possibly": 1, - "to": 6, - "another": 1, - "action.": 1, - "In": 1, - "either": 1, - "case": 31, - "allows": 1, - "you": 1, - "manipulate": 1, - "aspects": 1, - "created": 8, - "by": 2, - "Dispatcher": 1, - "based": 2, - "routing.": 1, - "By": 1, - "conventional": 1, - "names.": 1, - "/posts/index": 1, - "maps": 1, - "PostsController": 1, - "index": 5, - "re": 1, - "map": 1, - "urls": 1, - "Router": 5, - "connect": 1, - "@package": 2, - "Cake.Controller": 1, - "@property": 8, - "AclComponent": 1, - "Acl": 1, - "AuthComponent": 1, - "Auth": 1, - "CookieComponent": 1, - "Cookie": 1, - "EmailComponent": 1, - "Email": 1, - "PaginatorComponent": 1, - "Paginator": 1, - "RequestHandlerComponent": 1, - "RequestHandler": 1, - "SecurityComponent": 1, - "Security": 1, - "SessionComponent": 1, - "Session": 1, - "@link": 2, - "//book.cakephp.org/2.0/en/controllers.html": 1, - "*/": 2, - "extends": 3, - "Object": 4, - "implements": 3, - "helpers": 1, - "_responseClass": 1, - "viewPath": 3, - "layoutPath": 1, - "viewVars": 3, - "view": 5, - "layout": 5, - "autoRender": 6, - "autoLayout": 2, - "Components": 7, - "components": 1, - "viewClass": 10, - "ext": 1, - "plugin": 31, - "cacheAction": 1, - "passedArgs": 2, - "scaffold": 2, - "modelClass": 25, - "modelKey": 2, - "validationErrors": 50, - "_mergeParent": 4, - "_eventManager": 12, - "Inflector": 12, - "singularize": 4, - "underscore": 3, - "childMethods": 2, - "get_class_methods": 2, - "parentMethods": 2, - "array_diff": 3, - "CakeRequest": 5, - "setRequest": 2, - "parent": 14, - "__isset": 2, - "switch": 6, - "is_array": 37, - "list": 29, - "pluginSplit": 12, - "loadModel": 3, - "__get": 2, - "params": 34, - "load": 3, - "settings": 2, - "__set": 1, - "camelize": 3, - "array_key_exists": 11, - "invokeAction": 1, - "ReflectionMethod": 2, - "_isPrivateAction": 2, - "PrivateActionException": 1, - "invokeArgs": 1, - "ReflectionException": 1, - "_getScaffold": 2, - "MissingActionException": 1, - "privateAction": 4, - "isPublic": 1, - "in_array": 26, - "prefixes": 4, - "prefix": 2, - "Scaffold": 1, - "_mergeControllerVars": 2, - "pluginController": 9, - "pluginDot": 4, - "mergeParent": 2, - "is_subclass_of": 3, - "pluginVars": 3, - "appVars": 6, - "merge": 12, - "_mergeVars": 5, - "get_class_vars": 2, - "_mergeUses": 3, - "implementedEvents": 2, - "constructClasses": 1, - "init": 4, - "getEventManager": 13, - "attach": 4, - "startupProcess": 1, - "dispatch": 11, - "shutdownProcess": 1, - "httpCodes": 3, - "code": 4, - "id": 82, - "MissingModelException": 1, - "url": 18, - "status": 15, - "extract": 9, - "EXTR_OVERWRITE": 3, - "event": 35, - "//TODO": 1, - "Remove": 1, - "following": 1, - "when": 1, - "events": 1, - "fully": 1, - "migrated": 1, - "break": 19, - "breakOn": 4, - "collectReturn": 1, - "isStopped": 4, - "result": 21, - "_parseBeforeRedirect": 2, - "session_write_close": 1, - "header": 3, - "is_string": 7, - "codes": 3, - "array_flip": 1, - "send": 1, - "_stop": 1, - "resp": 6, - "compact": 8, - "one": 19, - "two": 6, - "data": 187, - "array_combine": 2, - "setAction": 1, - "args": 5, - "func_get_args": 5, - "unset": 22, - "call_user_func_array": 3, - "validate": 9, - "errors": 9, - "validateErrors": 1, - "invalidFields": 2, - "render": 3, - "className": 27, - "models": 6, - "keys": 19, - "currentModel": 2, - "currentObject": 6, - "getObject": 1, - "is_a": 1, - "location": 1, - "body": 1, - "referer": 5, - "local": 2, - "disableCache": 2, - "flash": 1, - "pause": 2, - "postConditions": 1, - "op": 9, - "bool": 5, - "exclusive": 2, - "cond": 5, - "arrayOp": 2, - "fields": 60, - "field": 88, - "fieldOp": 11, - "strtoupper": 3, - "paginate": 3, - "scope": 2, - "whitelist": 14, - "beforeFilter": 1, - "beforeRender": 1, - "beforeRedirect": 1, - "afterFilter": 1, - "beforeScaffold": 2, - "_beforeScaffold": 1, - "afterScaffoldSave": 2, - "_afterScaffoldSave": 1, - "afterScaffoldSaveError": 2, - "_afterScaffoldSaveError": 1, - "scaffoldError": 2, - "_scaffoldError": 1, - "php_help": 1, - "arg": 1, - "t": 26, - "php_permission": 1, - "TRUE": 1, - "php_eval": 1, - "global": 2, - "theme_path": 5, - "theme_info": 3, - "conf": 2, - "old_theme_path": 2, - "drupal_get_path": 1, - "dirname": 1, - "filename": 1, - "ob_start": 1, - "print": 1, - "eval": 1, - "ob_get_contents": 1, - "ob_end_clean": 1, - "_php_filter_tips": 1, - "filter": 1, - "format": 3, - "long": 2, - "FALSE": 2, - "base_url": 1, - "php_filter_info": 1, - "filters": 2, - "Field": 9, - "FormField": 3, - "ArrayAccess": 1, - "button": 6, - "DOMNode": 3, - "initialize": 2, - "getFormNode": 1, - "getValues": 3, - "isDisabled": 2, - "FileFormField": 3, - "hasValue": 1, - "getValue": 2, - "qs": 4, - "http_build_query": 3, - "parse_str": 2, - "queryString": 2, - "sep": 1, - "sep.": 1, - "getRawUri": 1, - "getAttribute": 10, - "remove": 4, - "offsetExists": 1, - "offsetGet": 1, - "offsetSet": 1, - "offsetUnset": 1, - "setNode": 1, - "nodeName": 13, - "parentNode": 1, - "FormFieldRegistry": 2, - "document": 6, - "root": 4, - "xpath": 2, - "DOMXPath": 1, - "query": 102, - "hasAttribute": 1, - "InputFormField": 2, - "ChoiceFormField": 2, - "addChoice": 1, - "TextareaFormField": 1, - "base": 8, - "segments": 13, - "getSegments": 4, - "target": 20, - "array_shift": 5, - "self": 1, - "create": 13, - "k": 7, - "setValue": 1, - "walk": 3, - "registry": 4, - "m": 5, - "relational": 2, - "mapper": 2, - "DBO": 2, - "backed": 2, - "mapping": 1, - "database": 2, - "tables": 5, - "PHP": 1, - "versions": 1, - "5": 1, - "Model": 5, - "10": 1, - "Validation": 1, - "String": 5, - "Set": 9, - "BehaviorCollection": 2, - "ModelBehavior": 1, - "ConnectionManager": 2, - "Xml": 2, - "Automatically": 1, - "selects": 1, - "table": 21, - "pluralized": 1, - "lowercase": 1, - "User": 1, - "is": 1, - "have": 2, - "at": 1, - "least": 1, - "primary": 3, - "key.": 1, - "Cake.Model": 1, - "//book.cakephp.org/2.0/en/models.html": 1, - "useDbConfig": 7, - "useTable": 12, - "displayField": 4, - "schemaName": 1, - "primaryKey": 38, - "_schema": 11, - "validationDomain": 1, - "tablePrefix": 8, - "tableToModel": 4, - "cacheQueries": 1, - "belongsTo": 7, - "hasOne": 2, - "hasMany": 2, - "hasAndBelongsToMany": 24, - "actsAs": 2, - "Behaviors": 6, - "cacheSources": 7, - "findQueryType": 3, - "recursive": 9, - "order": 4, - "virtualFields": 8, - "_associationKeys": 2, - "_associations": 5, - "__backAssociation": 22, - "__backInnerAssociation": 1, - "__backOriginalAssociation": 1, - "__backContainableAssociation": 1, - "_insertID": 1, - "_sourceConfigured": 1, - "findMethods": 3, - "ds": 3, - "addObject": 2, - "parentClass": 3, - "get_parent_class": 1, - "tableize": 2, - "_createLinks": 3, - "__call": 1, - "dispatchMethod": 1, - "getDataSource": 15, - "relation": 7, - "assocKey": 13, - "dynamic": 2, - "isKeySet": 1, - "AppModel": 1, - "_constructLinkedModel": 2, - "schema": 11, - "hasField": 7, - "setDataSource": 2, - "property_exists": 3, - "bindModel": 1, - "reset": 6, - "assoc": 75, - "assocName": 6, - "unbindModel": 1, - "_generateAssociation": 2, - "dynamicWith": 3, - "sort": 1, - "setSource": 1, - "tableName": 4, - "db": 45, - "method_exists": 5, - "sources": 3, - "listSources": 1, - "strtolower": 1, - "MissingTableException": 1, - "is_object": 2, - "SimpleXMLElement": 1, - "_normalizeXmlData": 3, - "toArray": 1, - "reverse": 1, - "_setAliasData": 2, - "modelName": 3, - "fieldSet": 3, - "fieldName": 6, - "fieldValue": 7, - "deconstruct": 2, - "getAssociated": 4, - "getColumnType": 4, - "useNewDate": 2, - "dateFields": 5, - "timeFields": 2, - "date": 9, - "val": 27, - "columns": 5, - "str_replace": 3, - "describe": 1, - "getColumnTypes": 1, - "trigger_error": 1, - "__d": 1, - "E_USER_WARNING": 1, - "cols": 7, - "column": 10, - "startQuote": 4, - "endQuote": 4, - "checkVirtual": 3, - "isVirtualField": 3, - "hasMethod": 2, - "getVirtualField": 1, - "filterKey": 2, - "defaults": 6, - "properties": 4, - "read": 2, - "conditions": 41, - "saveField": 1, - "options": 85, - "save": 9, - "fieldList": 1, - "_whitelist": 4, - "keyPresentAndEmpty": 2, - "exists": 6, - "validates": 60, - "updateCol": 6, - "colType": 4, - "time": 3, - "strtotime": 1, - "joined": 5, - "x": 4, - "y": 2, - "success": 10, - "cache": 2, - "_prepareUpdateFields": 2, - "update": 2, - "fInfo": 4, - "isUUID": 5, - "j": 2, - "array_search": 1, - "uuid": 3, - "updateCounterCache": 6, - "_saveMulti": 2, - "_clearCache": 2, - "join": 22, - "joinModel": 8, - "keyInfo": 4, - "withModel": 4, - "pluginName": 1, - "dbMulti": 6, - "newData": 5, - "newValues": 8, - "newJoins": 7, - "primaryAdded": 3, - "idField": 3, - "row": 17, - "keepExisting": 3, - "associationForeignKey": 5, - "links": 4, - "oldLinks": 4, - "delete": 9, - "oldJoin": 4, - "insertMulti": 1, - "foreignKey": 11, - "fkQuoted": 3, - "escapeField": 6, - "intval": 4, - "updateAll": 3, - "foreignKeys": 3, - "included": 3, - "array_intersect": 1, - "old": 2, - "saveAll": 1, - "numeric": 1, - "validateMany": 4, - "saveMany": 3, - "validateAssociated": 5, - "saveAssociated": 5, - "transactionBegun": 4, - "begin": 2, - "record": 10, - "saved": 18, - "commit": 2, - "rollback": 2, - "associations": 9, - "association": 47, - "notEmpty": 4, - "_return": 3, - "recordData": 2, - "cascade": 10, - "_deleteDependent": 3, - "_deleteLinks": 3, - "_collectForeignKeys": 2, - "savedAssociatons": 3, - "deleteAll": 2, - "records": 6, - "ids": 8, - "_id": 2, - "getID": 2, - "hasAny": 1, - "buildQuery": 2, - "is_null": 1, - "results": 22, - "resetAssociations": 3, - "_filterResults": 2, - "ucfirst": 2, - "modParams": 2, - "_findFirst": 1, - "state": 15, - "_findCount": 1, - "calculate": 2, - "expression": 1, - "_findList": 1, - "tokenize": 1, - "lst": 4, - "combine": 1, - "_findNeighbors": 1, - "prevVal": 2, - "return2": 6, - "_findThreaded": 1, - "nest": 1, - "isUnique": 1, - "is_bool": 1, - "sql": 1, - "SHEBANG#!php": 3, - "echo": 2, - "Yii": 3, - "console": 3, - "bootstrap": 1, - "yiiframework": 2, - "com": 2, - "c": 1, - "2008": 1, - "LLC": 1, - "YII_DEBUG": 2, - "define": 2, - "fcgi": 1, - "doesn": 1, - "STDIN": 3, - "fopen": 1, - "stdin": 1, - "r": 1, - "require": 3, - "__DIR__": 3, - "vendor": 2, - "yiisoft": 1, - "yii2": 1, - "yii": 2, - "autoload": 1, - "config": 3, - "application": 2 - }, - "Pod": { - "Id": 1, - "contents.pod": 1, - "v": 1, - "/05/04": 1, - "tower": 1, - "Exp": 1, - "begin": 3, - "html": 7, - "": 1, - "end": 4, - "head1": 2, - "Net": 12, - "Z3950": 12, - "AsyncZ": 16, - "head2": 3, - "Intro": 1, - "adds": 1, - "an": 3, - "additional": 1, - "layer": 1, - "of": 19, - "asynchronous": 4, - "support": 1, - "for": 11, - "the": 29, - "module": 6, - "through": 1, - "use": 1, - "multiple": 1, - "forked": 1, - "processes.": 1, - "I": 8, - "hope": 1, - "that": 9, - "users": 1, - "will": 1, - "also": 2, - "find": 1, - "it": 3, - "provides": 1, - "a": 8, - "convenient": 2, - "front": 1, - "to": 9, - "C": 13, - "": 1, - ".": 5, - "My": 1, - "initial": 1, - "idea": 1, - "was": 1, - "write": 1, - "something": 2, - "would": 1, - "provide": 1, - "means": 1, - "processing": 1, - "and": 14, - "formatting": 2, - "Z39.50": 1, - "records": 4, - "which": 3, - "did": 1, - "using": 1, - "": 2, - "synchronous": 1, - "code.": 1, - "But": 3, - "wanted": 1, - "could": 1, - "handle": 1, - "queries": 1, - "large": 1, - "numbers": 1, - "servers": 1, - "at": 1, - "one": 1, - "session.": 1, - "Working": 1, - "on": 1, - "this": 3, - "part": 3, - "my": 1, - "project": 1, - "found": 1, - "had": 1, - "trouble": 1, - "with": 6, - "features": 1, - "so": 1, - "ended": 1, - "up": 1, - "what": 1, - "have": 3, - "here.": 1, - "give": 2, - "more": 4, - "detailed": 4, - "account": 2, - "in": 9, - "": 4, - "href=": 5, - "": 1, - "DESCRIPTION": 1, - "": 1, - "": 5, - "section": 2, - "": 5, - "AsyncZ.html": 2, - "": 6, - "pod": 3, - "B": 1, - "": 1, - "": 1, - "cut": 3, - "Documentation": 1, - "over": 2, - "item": 10, - "AsyncZ.pod": 1, - "This": 4, - "is": 8, - "starting": 2, - "point": 2, - "gives": 2, - "overview": 2, - "describes": 2, - "basic": 4, - "mechanics": 2, - "its": 2, - "workings": 2, - "details": 5, - "particulars": 2, - "objects": 2, - "methods.": 2, - "see": 2, - "L": 1, - "": 1, - "explanations": 2, - "sample": 2, - "scripts": 2, - "come": 2, - "": 2, - "distribution.": 2, - "Options.pod": 1, - "document": 2, - "various": 2, - "options": 2, - "can": 4, - "be": 2, - "set": 2, - "modify": 2, - "behavior": 2, - "Index": 1, - "Report.pod": 2, - "deals": 2, - "how": 4, - "are": 7, - "treated": 2, - "line": 4, - "by": 2, - "you": 4, - "affect": 2, - "apearance": 2, - "record": 2, - "s": 2, - "HOW": 2, - "TO.": 2, - "back": 2, - "": 1, - "The": 6, - "Modules": 1, - "There": 2, - "modules": 5, - "than": 2, - "there": 2, - "documentation.": 2, - "reason": 2, - "only": 2, - "full": 2, - "complete": 2, - "access": 9, - "other": 2, - "either": 2, - "internal": 2, - "": 1, - "or": 4, - "accessed": 2, - "indirectly": 2, - "indirectly.": 2, - "head3": 1, - "Here": 1, - "main": 1, - "direct": 2, - "documented": 7, - "": 4, - "": 2, - "documentation": 4, - "ErrMsg": 1, - "User": 1, - "error": 1, - "message": 1, - "handling": 2, - "indirect": 2, - "Errors": 1, - "Error": 1, - "debugging": 1, - "limited": 2, - "Report": 1, - "Module": 1, - "reponsible": 1, - "fetching": 1, - "ZLoop": 1, - "Event": 1, - "loop": 1, - "child": 3, - "processes": 3, - "no": 2, - "not": 2, - "ZSend": 1, - "Connection": 1, - "Options": 2, - "_params": 1, - "INDEX": 1 - }, - "PogoScript": { - "httpism": 1, - "require": 3, - "async": 1, - "resolve": 2, - ".resolve": 1, - "exports.squash": 1, - "(": 38, - "url": 5, - ")": 38, - "html": 15, - "httpism.get": 2, - ".body": 2, - "squash": 2, - "callback": 2, - "replacements": 6, - "sort": 2, - "links": 2, - "in": 11, - ".concat": 1, - "scripts": 2, - "for": 2, - "each": 2, - "@": 6, - "r": 1, - "{": 3, - "r.url": 1, - "r.href": 1, - "}": 3, - "async.map": 1, - "get": 2, - "err": 2, - "requested": 2, - "replace": 2, - "replacements.sort": 1, - "a": 1, - "b": 1, - "a.index": 1, - "-": 1, - "b.index": 1, - "replacement": 2, - "replacement.body": 1, - "replacement.url": 1, - "i": 3, - "parts": 3, - "rep": 1, - "rep.index": 1, - "+": 2, - "rep.length": 1, - "html.substr": 1, - "link": 2, - "reg": 5, - "r/": 2, - "": 1, - "]": 7, - "*href": 1, - "[": 5, - "*": 2, - "/": 2, - "|": 2, - "s*": 2, - "<\\/link\\>": 1, - "/gi": 2, - "elements": 5, - "matching": 3, - "as": 3, - "script": 2, - "": 1, - "*src": 1, - "<\\/script\\>": 1, - "tag": 3, - "while": 1, - "m": 1, - "reg.exec": 1, - "elements.push": 1, - "index": 1, - "m.index": 1, - "length": 1, - "m.0.length": 1, - "href": 1, - "m.1": 1 - }, - "PostScript": { - "%": 23, - "PS": 1, - "-": 4, - "Adobe": 1, - "Creator": 1, - "Aaron": 1, - "Puchert": 1, - "Title": 1, - "The": 1, - "Sierpinski": 1, - "triangle": 1, - "Pages": 1, - "PageOrder": 1, - "Ascend": 1, - "BeginProlog": 1, - "/pageset": 1, - "{": 4, - "scale": 1, - "set": 1, - "cm": 1, - "translate": 1, - "setlinewidth": 1, - "}": 4, - "def": 2, - "/sierpinski": 1, - "dup": 4, - "gt": 1, - "[": 6, - "]": 6, - "concat": 5, - "sub": 3, - "sierpinski": 4, - "newpath": 1, - "moveto": 1, - "lineto": 2, - "closepath": 1, - "fill": 1, - "ifelse": 1, - "pop": 1, - "EndProlog": 1, - "BeginSetup": 1, - "<<": 1, - "/PageSize": 1, - "setpagedevice": 1, - "A4": 1, - "EndSetup": 1, - "Page": 1, - "Test": 1, - "pageset": 1, - "sqrt": 1, - "showpage": 1, - "EOF": 1 - }, - "PowerShell": { - "Write": 2, - "-": 2, - "Host": 2, - "function": 1, - "hello": 1, - "(": 1, - ")": 1, - "{": 1, - "}": 1 - }, - "Processing": { - "void": 2, - "setup": 1, - "(": 17, - ")": 17, - "{": 2, - "size": 1, - ";": 15, - "background": 1, - "noStroke": 1, - "}": 2, - "draw": 1, - "fill": 6, - "triangle": 2, - "rect": 1, - "quad": 1, - "ellipse": 1, - "arc": 1, - "PI": 1, - "TWO_PI": 1 - }, - "Prolog": { - "-": 52, - "lib": 1, - "(": 49, - "ic": 1, - ")": 49, - ".": 25, - "vabs": 2, - "Val": 8, - "AbsVal": 10, - "#": 9, - ";": 1, - "labeling": 2, - "[": 21, - "]": 21, - "vabsIC": 1, - "or": 1, - "faitListe": 3, - "_": 2, - "First": 2, - "|": 12, - "Rest": 6, - "Taille": 2, - "Min": 2, - "Max": 2, - "Min..Max": 1, - "Taille1": 2, - "suite": 3, - "Xi": 5, - "Xi1": 7, - "Xi2": 7, - "checkRelation": 3, - "VabsXi1": 2, - "Xi.": 1, - "checkPeriode": 3, - "ListVar": 2, - "length": 1, - "Length": 2, - "<": 1, - "X1": 2, - "X2": 2, - "X3": 2, - "X4": 2, - "X5": 2, - "X6": 2, - "X7": 2, - "X8": 2, - "X9": 2, - "X10": 3, - "male": 3, - "john": 2, - "peter": 3, - "female": 2, - "vick": 2, - "christie": 3, - "parents": 4, - "brother": 1, - "X": 3, - "Y": 2, - "F": 2, - "M": 2, - "turing": 1, - "Tape0": 2, - "Tape": 2, - "perform": 4, - "q0": 1, - "Ls": 12, - "Rs": 16, - "reverse": 1, - "Ls1": 4, - "append": 1, - "qf": 1, - "Q0": 2, - "Ls0": 6, - "Rs0": 6, - "symbol": 3, - "Sym": 6, - "RsRest": 2, - "once": 1, - "rule": 1, - "Q1": 2, - "NewSym": 2, - "Action": 2, - "action": 4, - "Rs1": 2, - "b": 2, - "left": 4, - "stay": 1, - "right": 1, - "L": 2 - }, - "Protocol Buffer": { - "package": 1, - "tutorial": 1, - ";": 13, - "option": 2, - "java_package": 1, - "java_outer_classname": 1, - "message": 3, - "Person": 2, - "{": 4, - "required": 3, - "string": 3, - "name": 1, - "int32": 1, - "id": 1, - "optional": 2, - "email": 1, - "enum": 1, - "PhoneType": 2, - "MOBILE": 1, - "HOME": 2, - "WORK": 1, - "}": 4, - "PhoneNumber": 2, - "number": 1, - "type": 1, - "[": 1, - "default": 1, - "]": 1, - "repeated": 2, - "phone": 1, - "AddressBook": 1, - "person": 1 - }, - "PureScript": { - "module": 4, - "Control.Arrow": 1, - "where": 20, - "import": 32, - "Data.Tuple": 3, - "class": 4, - "Arrow": 5, - "a": 46, - "arr": 10, - "forall": 26, - "b": 49, - "c.": 3, - "(": 111, - "-": 88, - "c": 17, - ")": 115, - "first": 4, - "d.": 2, - "Tuple": 21, - "d": 6, - "instance": 12, - "arrowFunction": 1, - "f": 28, - "second": 3, - "Category": 3, - "swap": 4, - "b.": 1, - "x": 26, - "y": 2, - "infixr": 3, - "***": 2, - "&&": 3, - "&": 3, - ".": 2, - "g": 4, - "ArrowZero": 1, - "zeroArrow": 1, - "<+>": 2, - "ArrowPlus": 1, - "Data.Foreign": 2, - "Foreign": 12, - "..": 1, - "ForeignParser": 29, - "parseForeign": 6, - "parseJSON": 3, - "ReadForeign": 11, - "read": 10, - "prop": 3, - "Prelude": 3, - "Data.Array": 3, - "Data.Either": 1, - "Data.Maybe": 3, - "Data.Traversable": 2, - "foreign": 6, - "data": 3, - "*": 1, - "fromString": 2, - "String": 13, - "Either": 6, - "readPrimType": 5, - "a.": 6, - "readMaybeImpl": 2, - "Maybe": 5, - "readPropImpl": 2, - "showForeignImpl": 2, - "showForeign": 1, - "Prelude.Show": 1, - "show": 5, - "p": 11, - "json": 2, - "monadForeignParser": 1, - "Prelude.Monad": 1, - "return": 6, - "_": 7, - "Right": 9, - "case": 9, - "of": 9, - "Left": 8, - "err": 8, - "applicativeForeignParser": 1, - "Prelude.Applicative": 1, - "pure": 1, - "<*>": 2, - "<$>": 8, - "functorForeignParser": 1, - "Prelude.Functor": 1, - "readString": 1, - "readNumber": 1, - "Number": 1, - "readBoolean": 1, - "Boolean": 1, - "readArray": 1, - "[": 5, - "]": 5, - "let": 4, - "arrayItem": 2, - "i": 2, - "result": 4, - "+": 30, - "in": 2, - "xs": 3, - "traverse": 2, - "zip": 1, - "range": 1, - "length": 3, - "readMaybe": 1, - "<<": 4, - "<": 13, - "Just": 7, - "Nothing": 7, - "Data.Map": 1, - "Map": 26, - "empty": 6, - "singleton": 5, - "insert": 10, - "lookup": 8, - "delete": 9, - "alter": 8, - "toList": 10, - "fromList": 3, - "union": 3, - "map": 8, - "qualified": 1, - "as": 1, - "P": 1, - "concat": 3, - "Data.Foldable": 2, - "foldl": 4, - "k": 108, - "v": 57, - "Leaf": 15, - "|": 9, - "Branch": 27, - "{": 25, - "key": 13, - "value": 8, - "left": 15, - "right": 14, - "}": 26, - "eqMap": 1, - "P.Eq": 11, - "m1": 6, - "m2": 6, - "P.": 11, - "/": 1, - "P.not": 1, - "showMap": 1, - "P.Show": 3, - "m": 6, - "P.show": 1, - "v.": 11, - "P.Ord": 9, - "b@": 6, - "k1": 16, - "b.left": 9, - "b.right": 8, - "findMinKey": 5, - "glue": 4, - "minKey": 3, - "root": 2, - "b.key": 1, - "b.value": 2, - "v1": 3, - "v2.": 1, - "v2": 2, - "ReactiveJQueryTest": 1, - "flip": 2, - "Control.Monad": 1, - "Control.Monad.Eff": 1, - "Control.Monad.JQuery": 1, - "Control.Reactive": 1, - "Control.Reactive.JQuery": 1, - "head": 2, - "Data.Monoid": 1, - "Debug.Trace": 1, - "Global": 1, - "parseInt": 1, - "main": 1, - "do": 4, - "personDemo": 2, - "todoListDemo": 1, - "greet": 1, - "firstName": 2, - "lastName": 2, - "Create": 3, - "new": 1, - "reactive": 1, - "variables": 1, - "to": 3, - "hold": 1, - "the": 3, - "user": 1, - "readRArray": 1, - "insertRArray": 1, - "text": 5, - "completed": 2, - "paragraph": 2, - "display": 2, - "next": 1, - "task": 4, - "nextTaskLabel": 3, - "create": 2, - "append": 2, - "nextTask": 2, - "toComputedArray": 2, - "toComputed": 2, - "bindTextOneWay": 2, - "counter": 3, - "counterLabel": 3, - "rs": 2, - "cs": 2, - "<->": 1, - "if": 1, - "then": 1, - "else": 1, - "entry": 1, - "entry.completed": 1 - }, - "Python": { - "from": 34, - "__future__": 2, - "import": 47, - "unicode_literals": 1, - "copy": 1, - "sys": 2, - "functools": 1, - "update_wrapper": 2, - "future_builtins": 1, - "zip": 8, - "django.db.models.manager": 1, - "#": 13, - "Imported": 1, - "to": 4, - "register": 1, - "signal": 1, - "handler.": 1, - "django.conf": 1, - "settings": 1, - "django.core.exceptions": 1, - "(": 719, - "ObjectDoesNotExist": 2, - "MultipleObjectsReturned": 2, - "FieldError": 4, - "ValidationError": 8, - "NON_FIELD_ERRORS": 3, - ")": 730, - "django.core": 1, - "validators": 1, - "django.db.models.fields": 1, - "AutoField": 2, - "FieldDoesNotExist": 2, - "django.db.models.fields.related": 1, - "ManyToOneRel": 3, - "OneToOneField": 3, - "add_lazy_relation": 2, - "django.db": 1, - "router": 1, - "transaction": 1, - "DatabaseError": 3, - "DEFAULT_DB_ALIAS": 2, - "django.db.models.query": 1, - "Q": 3, - "django.db.models.query_utils": 2, - "DeferredAttribute": 3, - "django.db.models.deletion": 1, - "Collector": 2, - "django.db.models.options": 1, - "Options": 2, - "django.db.models": 1, - "signals": 1, - "django.db.models.loading": 1, - "register_models": 2, - "get_model": 3, - "django.utils.translation": 1, - "ugettext_lazy": 1, - "as": 11, - "_": 5, - "django.utils.functional": 1, - "curry": 6, - "django.utils.encoding": 1, - "smart_str": 3, - "force_unicode": 3, - "django.utils.text": 1, - "get_text_list": 2, - "capfirst": 6, - "class": 14, - "ModelBase": 4, - "type": 6, - "def": 68, - "__new__": 2, - "cls": 32, - "name": 39, - "bases": 6, - "attrs": 7, - "super_new": 3, - "super": 2, - ".__new__": 1, - "parents": 8, - "[": 152, - "b": 11, - "for": 59, - "in": 79, - "if": 145, - "isinstance": 11, - "]": 152, - "not": 64, - "return": 57, - "module": 6, - "attrs.pop": 2, - "new_class": 9, - "{": 25, - "}": 25, - "attr_meta": 5, - "None": 86, - "abstract": 3, - "getattr": 30, - "False": 28, - "meta": 12, - "else": 30, - "base_meta": 2, - "is": 29, - "model_module": 1, - "sys.modules": 1, - "new_class.__module__": 1, - "kwargs": 9, - "model_module.__name__.split": 1, - "-": 30, - "new_class.add_to_class": 7, - "**kwargs": 9, - "subclass_exception": 3, - "tuple": 3, - "x.DoesNotExist": 1, - "x": 22, - "hasattr": 11, - "and": 35, - "x._meta.abstract": 2, - "or": 27, - "x.MultipleObjectsReturned": 1, - "base_meta.abstract": 1, - "new_class._meta.ordering": 1, - "base_meta.ordering": 1, - "new_class._meta.get_latest_by": 1, - "base_meta.get_latest_by": 1, - "is_proxy": 5, - "new_class._meta.proxy": 1, - "new_class._default_manager": 2, - "new_class._base_manager": 2, - "new_class._default_manager._copy_to_model": 1, - "new_class._base_manager._copy_to_model": 1, - "m": 3, - "new_class._meta.app_label": 3, - "seed_cache": 2, - "only_installed": 2, - "obj_name": 2, - "obj": 4, - "attrs.items": 1, - "new_fields": 2, - "new_class._meta.local_fields": 3, - "+": 37, - "new_class._meta.local_many_to_many": 2, - "new_class._meta.virtual_fields": 1, - "field_names": 5, - "set": 3, - "f.name": 5, - "f": 19, - "base": 13, - "parent": 5, - "parent._meta.abstract": 1, - "parent._meta.fields": 1, - "raise": 22, - "TypeError": 4, - "%": 32, - "continue": 10, - "new_class._meta.setup_proxy": 1, - "new_class._meta.concrete_model": 2, - "base._meta.concrete_model": 2, - "o2o_map": 3, - "dict": 3, - "f.rel.to": 1, - "original_base": 1, - "parent_fields": 3, - "base._meta.local_fields": 1, - "base._meta.local_many_to_many": 1, - "field": 32, - "field.name": 14, - "base.__name__": 2, - "base._meta.abstract": 2, - "elif": 4, - "attr_name": 3, - "base._meta.module_name": 1, - "auto_created": 1, - "True": 20, - "parent_link": 1, - "new_class._meta.parents": 1, - "copy.deepcopy": 2, - "new_class._meta.parents.update": 1, - "base._meta.parents": 1, - "new_class.copy_managers": 2, - "base._meta.abstract_managers": 1, - "original_base._meta.concrete_managers": 1, - "base._meta.virtual_fields": 1, - "attr_meta.abstract": 1, - "new_class.Meta": 1, - "new_class._prepare": 1, - "copy_managers": 1, - "base_managers": 2, - "base_managers.sort": 1, - "mgr_name": 3, - "manager": 3, - "val": 14, - "new_manager": 2, - "manager._copy_to_model": 1, - "cls.add_to_class": 1, - "add_to_class": 1, - "value": 9, - "value.contribute_to_class": 1, - "setattr": 14, - "_prepare": 1, - "opts": 5, - "cls._meta": 3, - "opts._prepare": 1, - "opts.order_with_respect_to": 2, - "cls.get_next_in_order": 1, - "cls._get_next_or_previous_in_order": 2, - "is_next": 9, - "cls.get_previous_in_order": 1, - "make_foreign_order_accessors": 2, - "model": 8, - "field.rel.to": 2, - "cls.__name__.lower": 2, - "method_get_order": 2, - "method_set_order": 2, - "opts.order_with_respect_to.rel.to": 1, - "cls.__doc__": 3, - "cls.__name__": 1, - ".join": 3, - "f.attname": 5, - "opts.fields": 1, - "cls.get_absolute_url": 3, - "get_absolute_url": 2, - "signals.class_prepared.send": 1, - "sender": 5, - "ModelState": 2, - "object": 6, - "__init__": 5, - "self": 100, - "db": 2, - "self.db": 1, - "self.adding": 1, - "Model": 2, - "__metaclass__": 3, - "_deferred": 1, - "*args": 4, - "signals.pre_init.send": 1, - "self.__class__": 10, - "args": 8, - "self._state": 1, - "args_len": 2, - "len": 9, - "self._meta.fields": 5, - "IndexError": 2, - "fields_iter": 4, - "iter": 1, - "field.attname": 17, - "kwargs.pop": 6, - "field.rel": 2, - "is_related_object": 3, - "self.__class__.__dict__.get": 2, - "try": 17, - "rel_obj": 3, - "except": 17, - "KeyError": 3, - "field.get_default": 3, - "field.null": 1, - "prop": 5, - "kwargs.keys": 2, - "property": 2, - "AttributeError": 1, - "pass": 4, - ".__init__": 1, - "signals.post_init.send": 1, - "instance": 5, - "__repr__": 2, - "u": 9, - "unicode": 8, - "UnicodeEncodeError": 1, - "UnicodeDecodeError": 1, - "self.__class__.__name__": 3, - "__str__": 1, - ".encode": 1, - "__eq__": 1, - "other": 4, - "self._get_pk_val": 6, - "other._get_pk_val": 1, - "__ne__": 1, - "self.__eq__": 1, - "__hash__": 1, - "hash": 1, - "__reduce__": 1, - "data": 22, - "self.__dict__": 1, - "defers": 2, - "self._deferred": 1, - "deferred_class_factory": 2, - "factory": 5, - "defers.append": 1, - "self._meta.proxy_for_model": 1, - "simple_class_factory": 2, - "model_unpickle": 2, - "_get_pk_val": 2, - "self._meta": 2, - "meta.pk.attname": 2, - "_set_pk_val": 2, - "self._meta.pk.attname": 2, - "pk": 5, - "serializable_value": 1, - "field_name": 8, - "self._meta.get_field_by_name": 1, - "save": 1, - "force_insert": 7, - "force_update": 10, - "using": 30, - "update_fields": 23, - "ValueError": 5, - "frozenset": 2, - "field.primary_key": 1, - "non_model_fields": 2, - "update_fields.difference": 1, - "self.save_base": 2, - "save.alters_data": 1, - "save_base": 1, - "raw": 9, - "origin": 7, - "router.db_for_write": 2, - "assert": 7, - "meta.proxy": 5, - "meta.auto_created": 2, - "signals.pre_save.send": 1, - "org": 3, - "meta.parents.items": 1, - "parent._meta.pk.attname": 2, - "parent._meta": 1, - "non_pks": 5, - "meta.local_fields": 2, - "f.primary_key": 2, - "pk_val": 4, - "pk_set": 5, - "record_exists": 5, - "cls._base_manager": 1, - "manager.using": 3, - ".filter": 7, - ".exists": 1, - "values": 13, - "f.pre_save": 1, - "rows": 3, - "._update": 1, - "meta.order_with_respect_to": 2, - "order_value": 2, - "*": 33, - ".count": 1, - "self._order": 1, - "fields": 12, - "update_pk": 3, - "bool": 2, - "meta.has_auto_field": 1, - "result": 2, - "manager._insert": 1, - "return_id": 1, - "transaction.commit_unless_managed": 2, - "self._state.db": 2, - "self._state.adding": 4, - "signals.post_save.send": 1, - "created": 1, - "save_base.alters_data": 1, - "delete": 1, - "self._meta.object_name": 1, - "collector": 1, - "collector.collect": 1, - "collector.delete": 1, - "delete.alters_data": 1, - "_get_FIELD_display": 1, - "field.flatchoices": 1, - ".get": 2, - "strings_only": 1, - "_get_next_or_previous_by_FIELD": 1, - "self.pk": 6, - "op": 6, - "order": 5, - "param": 3, - "q": 4, - "|": 1, - "qs": 6, - "self.__class__._default_manager.using": 1, - "*kwargs": 1, - ".order_by": 2, - "self.DoesNotExist": 1, - "self.__class__._meta.object_name": 1, - "_get_next_or_previous_in_order": 1, - "cachename": 4, - "order_field": 1, - "self._meta.order_with_respect_to": 1, - "self._default_manager.filter": 1, - "order_field.name": 1, - "order_field.attname": 1, - "self._default_manager.values": 1, - "self._meta.pk.name": 1, - "prepare_database_save": 1, - "unused": 1, - "clean": 1, - "validate_unique": 1, - "exclude": 23, - "unique_checks": 6, - "date_checks": 6, - "self._get_unique_checks": 1, - "errors": 20, - "self._perform_unique_checks": 1, - "date_errors": 1, - "self._perform_date_checks": 1, - "k": 4, - "v": 11, - "date_errors.items": 1, - "errors.setdefault": 3, - ".extend": 2, - "_get_unique_checks": 1, - "unique_togethers": 2, - "self._meta.unique_together": 1, - "parent_class": 4, - "self._meta.parents.keys": 2, - "parent_class._meta.unique_together": 2, - "unique_togethers.append": 1, - "model_class": 11, - "unique_together": 2, - "check": 4, - "break": 2, - "unique_checks.append": 2, - "fields_with_class": 2, - "self._meta.local_fields": 1, - "fields_with_class.append": 1, - "parent_class._meta.local_fields": 1, - "f.unique": 1, - "f.unique_for_date": 3, - "date_checks.append": 3, - "f.unique_for_year": 3, - "f.unique_for_month": 3, - "_perform_unique_checks": 1, - "unique_check": 10, - "lookup_kwargs": 8, - "self._meta.get_field": 1, - "lookup_value": 3, - "str": 2, - "lookup_kwargs.keys": 1, - "model_class._default_manager.filter": 2, - "*lookup_kwargs": 2, - "model_class_pk": 3, - "model_class._meta": 2, - "qs.exclude": 2, - "qs.exists": 2, - "key": 5, - ".append": 2, - "self.unique_error_message": 1, - "_perform_date_checks": 1, - "lookup_type": 7, - "unique_for": 9, - "date": 3, - "date.day": 1, - "date.month": 1, - "date.year": 1, - "self.date_error_message": 1, - "date_error_message": 1, - "opts.get_field": 4, - ".verbose_name": 3, - "unique_error_message": 1, - "model_name": 3, - "opts.verbose_name": 1, - "field_label": 2, - "field.verbose_name": 1, - "field.error_messages": 1, - "field_labels": 4, - "map": 1, - "lambda": 1, - "full_clean": 1, - "self.clean_fields": 1, - "e": 13, - "e.update_error_dict": 3, - "self.clean": 1, - "errors.keys": 1, - "exclude.append": 1, - "self.validate_unique": 1, - "clean_fields": 1, - "raw_value": 3, - "f.blank": 1, - "validators.EMPTY_VALUES": 1, - "f.clean": 1, - "e.messages": 1, - "############################################": 2, - "ordered_obj": 2, - "id_list": 2, - "rel_val": 4, - "ordered_obj._meta.order_with_respect_to.rel.field_name": 2, - "order_name": 4, - "ordered_obj._meta.order_with_respect_to.name": 2, - "i": 7, - "j": 2, - "enumerate": 1, - "ordered_obj.objects.filter": 2, - ".update": 1, - "_order": 1, - "pk_name": 3, - "ordered_obj._meta.pk.name": 1, - "r": 3, - ".values": 1, - "##############################################": 2, - "func": 2, - "settings.ABSOLUTE_URL_OVERRIDES.get": 1, - "opts.app_label": 1, - "opts.module_name": 1, - "########": 2, - "Empty": 1, - "cls.__new__": 1, - "model_unpickle.__safe_for_unpickle__": 1, - ".globals": 1, - "request": 1, - "http_method_funcs": 2, - "View": 2, - "A": 1, - "which": 1, - "methods": 5, - "this": 2, - "pluggable": 1, - "view": 2, - "can": 1, - "handle.": 1, - "The": 1, - "canonical": 1, - "way": 1, - "decorate": 2, - "based": 1, - "views": 1, - "the": 5, - "of": 3, - "as_view": 1, - ".": 1, - "However": 1, - "since": 1, - "moves": 1, - "parts": 1, - "logic": 1, - "declaration": 1, - "place": 1, - "where": 1, - "it": 1, - "s": 1, - "also": 1, - "used": 1, - "instantiating": 1, - "view.view_class": 1, - "view.__name__": 1, - "view.__doc__": 1, - "view.__module__": 1, - "cls.__module__": 1, - "view.methods": 1, - "cls.methods": 1, - "MethodViewType": 2, - "d": 5, - "rv": 2, - "type.__new__": 1, - "rv.methods": 2, - "methods.add": 1, - "key.upper": 1, - "sorted": 1, - "MethodView": 1, - "dispatch_request": 1, - "meth": 5, - "request.method.lower": 1, - "request.method": 2, - "google.protobuf": 4, - "descriptor": 1, - "_descriptor": 1, - "message": 1, - "_message": 1, - "reflection": 1, - "_reflection": 1, - "descriptor_pb2": 1, - "DESCRIPTOR": 3, - "_descriptor.FileDescriptor": 1, - "package": 1, - "serialized_pb": 1, - "_PERSON": 3, - "_descriptor.Descriptor": 1, - "full_name": 2, - "filename": 1, - "file": 1, - "containing_type": 2, - "_descriptor.FieldDescriptor": 1, - "index": 1, - "number": 1, - "cpp_type": 1, - "label": 18, - "has_default_value": 1, - "default_value": 1, - "message_type": 1, - "enum_type": 1, - "is_extension": 1, - "extension_scope": 1, - "options": 3, - "extensions": 1, - "nested_types": 1, - "enum_types": 1, - "is_extendable": 1, - "extension_ranges": 1, - "serialized_start": 1, - "serialized_end": 1, - "DESCRIPTOR.message_types_by_name": 1, - "Person": 1, - "_message.Message": 1, - "_reflection.GeneratedProtocolMessageType": 1, - "SHEBANG#!python": 4, - "print": 39, - "os": 1, - "main": 4, - "usage": 3, - "string": 1, - "command": 4, - "sys.argv": 2, - "<": 1, - "sys.exit": 1, - "printDelimiter": 4, - "get": 1, - "a": 2, - "list": 1, - "git": 1, - "directories": 1, - "specified": 1, - "gitDirectories": 2, - "getSubdirectories": 2, - "isGitDirectory": 2, - "gitDirectory": 2, - "os.chdir": 1, - "os.getcwd": 1, - "os.system": 1, - "directory": 9, - "filter": 3, - "os.path.abspath": 1, - "subdirectories": 3, - "os.walk": 1, - ".next": 1, - "os.path.isdir": 1, - "__name__": 2, - "argparse": 1, - "matplotlib.pyplot": 1, - "pl": 1, - "numpy": 1, - "np": 1, - "scipy.optimize": 1, - "prettytable": 1, - "PrettyTable": 6, - "__docformat__": 1, - "S": 4, - "phif": 7, - "U": 10, - "/": 23, - "_parse_args": 2, - "V": 12, - "np.genfromtxt": 8, - "delimiter": 8, - "t": 8, - "U_err": 7, - "offset": 13, - "np.mean": 1, - "np.linspace": 9, - "min": 10, - "max": 11, - "y": 10, - "np.ones": 11, - "x.size": 2, - "pl.plot": 9, - "**6": 6, - ".format": 11, - "pl.errorbar": 8, - "yerr": 8, - "linestyle": 8, - "marker": 4, - "pl.grid": 5, - "pl.legend": 5, - "loc": 5, - "pl.title": 5, - "pl.xlabel": 5, - "ur": 11, - "pl.ylabel": 5, - "pl.savefig": 5, - "pl.clf": 5, - "glanz": 13, - "matt": 13, - "schwarz": 13, - "weiss": 13, - "T0": 1, - "T0_err": 2, - "glanz_phi": 4, - "matt_phi": 4, - "schwarz_phi": 4, - "weiss_phi": 4, - "T_err": 7, - "sigma": 4, - "boltzmann": 12, - "T": 6, - "epsilon": 7, - "T**4": 1, - "glanz_popt": 3, - "glanz_pconv": 1, - "op.curve_fit": 6, - "matt_popt": 3, - "matt_pconv": 1, - "schwarz_popt": 3, - "schwarz_pconv": 1, - "weiss_popt": 3, - "weiss_pconv": 1, - "glanz_x": 3, - "glanz_y": 2, - "*glanz_popt": 1, - "color": 8, - "matt_x": 3, - "matt_y": 2, - "*matt_popt": 1, - "schwarz_x": 3, - "schwarz_y": 2, - "*schwarz_popt": 1, - "weiss_x": 3, - "weiss_y": 2, - "*weiss_popt": 1, - "np.sqrt": 17, - "glanz_pconv.diagonal": 2, - "matt_pconv.diagonal": 2, - "schwarz_pconv.diagonal": 2, - "weiss_pconv.diagonal": 2, - "xerr": 6, - "U_err/S": 4, - "header": 5, - "glanz_table": 2, - "row": 10, - ".size": 4, - "*T_err": 4, - "glanz_phi.size": 1, - "*U_err/S": 4, - "glanz_table.add_row": 1, - "matt_table": 2, - "matt_phi.size": 1, - "matt_table.add_row": 1, - "schwarz_table": 2, - "schwarz_phi.size": 1, - "schwarz_table.add_row": 1, - "weiss_table": 2, - "weiss_phi.size": 1, - "weiss_table.add_row": 1, - "T0**4": 1, - "phi": 5, - "c": 3, - "a*x": 1, - "dx": 6, - "d**": 2, - "dy": 4, - "dx_err": 3, - "np.abs": 1, - "dy_err": 2, - "popt": 5, - "pconv": 2, - "*popt": 2, - "pconv.diagonal": 3, - "table": 2, - "table.align": 1, - "dy.size": 1, - "*dy_err": 1, - "table.add_row": 1, - "U1": 3, - "I1": 3, - "U2": 2, - "I_err": 2, - "p": 1, - "R": 1, - "R_err": 2, - "/I1": 1, - "**2": 2, - "U1/I1**2": 1, - "phi_err": 3, - "alpha": 2, - "beta": 1, - "R0": 6, - "R0_err": 2, - "alpha*R0": 2, - "*np.sqrt": 6, - "*beta*R": 5, - "alpha**2*R0": 5, - "*beta*R0": 7, - "*beta*R0*T0": 2, - "epsilon_err": 2, - "f1": 1, - "f2": 1, - "f3": 1, - "alpha**2": 1, - "*beta": 1, - "*beta*T0": 1, - "*beta*R0**2": 1, - "f1**2": 1, - "f2**2": 1, - "f3**2": 1, - "parser": 1, - "argparse.ArgumentParser": 1, - "description": 1, - "#parser.add_argument": 3, - "metavar": 1, - "nargs": 1, - "help": 2, - "dest": 1, - "default": 1, - "action": 1, - "version": 6, - "parser.parse_args": 1, - "absolute_import": 1, - "division": 1, - "with_statement": 1, - "Cookie": 1, - "logging": 1, - "socket": 1, - "time": 1, - "tornado.escape": 1, - "utf8": 2, - "native_str": 4, - "parse_qs_bytes": 3, - "tornado": 3, - "httputil": 1, - "iostream": 1, - "tornado.netutil": 1, - "TCPServer": 2, - "stack_context": 1, - "tornado.util": 1, - "bytes_type": 2, - "ssl": 2, - "Python": 1, - "ImportError": 1, - "HTTPServer": 1, - "request_callback": 4, - "no_keep_alive": 4, - "io_loop": 3, - "xheaders": 4, - "ssl_options": 3, - "self.request_callback": 5, - "self.no_keep_alive": 4, - "self.xheaders": 3, - "TCPServer.__init__": 1, - "handle_stream": 1, - "stream": 4, - "address": 4, - "HTTPConnection": 2, - "_BadRequestException": 5, - "Exception": 2, - "self.stream": 1, - "self.address": 3, - "self._request": 7, - "self._request_finished": 4, - "self._header_callback": 3, - "stack_context.wrap": 2, - "self._on_headers": 1, - "self.stream.read_until": 2, - "self._write_callback": 5, - "write": 2, - "chunk": 5, - "callback": 7, - "self.stream.closed": 1, - "self.stream.write": 2, - "self._on_write_complete": 1, - "finish": 2, - "self.stream.writing": 2, - "self._finish_request": 2, - "_on_write_complete": 1, - "_finish_request": 1, - "disconnect": 5, - "connection_header": 5, - "self._request.headers.get": 2, - "connection_header.lower": 1, - "self._request.supports_http_1_1": 1, - "self._request.headers": 1, - "self._request.method": 2, - "self.stream.close": 2, - "_on_headers": 1, - "data.decode": 1, - "eol": 3, - "data.find": 1, - "start_line": 1, - "method": 5, - "uri": 5, - "start_line.split": 1, - "version.startswith": 1, - "headers": 5, - "httputil.HTTPHeaders.parse": 1, - "self.stream.socket": 1, - "socket.AF_INET": 2, - "socket.AF_INET6": 1, - "remote_ip": 8, - "HTTPRequest": 2, - "connection": 5, - "content_length": 6, - "headers.get": 2, - "int": 1, - "self.stream.max_buffer_size": 1, - "self.stream.read_bytes": 1, - "self._on_request_body": 1, - "logging.info": 1, - "_on_request_body": 1, - "self._request.body": 2, - "content_type": 1, - "content_type.startswith": 2, - "arguments": 2, - "arguments.iteritems": 2, - "self._request.arguments.setdefault": 1, - "content_type.split": 1, - "sep": 2, - "field.strip": 1, - ".partition": 1, - "httputil.parse_multipart_form_data": 1, - "self._request.arguments": 1, - "self._request.files": 1, - "logging.warning": 1, - "body": 2, - "protocol": 4, - "host": 2, - "files": 2, - "self.method": 1, - "self.uri": 2, - "self.version": 2, - "self.headers": 4, - "httputil.HTTPHeaders": 1, - "self.body": 1, - "connection.xheaders": 1, - "self.remote_ip": 4, - "self.headers.get": 5, - "self._valid_ip": 1, - "self.protocol": 7, - "connection.stream": 1, - "iostream.SSLIOStream": 1, - "self.host": 2, - "self.files": 1, - "self.connection": 1, - "self._start_time": 3, - "time.time": 3, - "self._finish_time": 4, - "self.path": 1, - "self.query": 2, - "uri.partition": 1, - "self.arguments": 2, - "supports_http_1_1": 1, - "@property": 1, - "cookies": 1, - "self._cookies": 3, - "Cookie.SimpleCookie": 1, - "self._cookies.load": 1, - "self.connection.write": 1, - "self.connection.finish": 1, - "full_url": 1, - "request_time": 1, - "get_ssl_certificate": 1, - "self.connection.stream.socket.getpeercert": 1, - "ssl.SSLError": 1, - "n": 3, - "_valid_ip": 1, - "ip": 2, - "res": 2, - "socket.getaddrinfo": 1, - "socket.AF_UNSPEC": 1, - "socket.SOCK_STREAM": 1, - "socket.AI_NUMERICHOST": 1, - "socket.gaierror": 1, - "e.args": 1, - "socket.EAI_NONAME": 1 - }, - "R": { - "df.residual.mira": 1, - "<": 24, - "-": 27, - "function": 7, - "(": 60, - "object": 9, - "...": 4, - ")": 60, - "{": 7, - "fit": 2, - "analyses": 1, - "[": 10, - "]": 10, - "return": 7, - "df.residual": 2, - "}": 7, - "df.residual.lme": 1, - "fixDF": 1, - "df.residual.mer": 1, - "sum": 1, - "object@dims": 1, - "*": 2, - "c": 5, - "+": 3, - "df.residual.default": 1, - "q": 2, - "df": 3, - "if": 3, - "is.null": 1, - "mk": 2, - "try": 2, - "coef": 1, - "silent": 2, - "TRUE": 5, - "mn": 2, - "f": 5, - "fitted": 1, - "inherits": 2, - "|": 3, - "NULL": 2, - "n": 3, - "ifelse": 1, - "is.data.frame": 1, - "is.matrix": 1, - "nrow": 1, - "length": 2, - "k": 3, - "max": 1, - "SHEBANG#!Rscript": 1, - "ParseDates": 2, - "lines": 4, - "dates": 3, - "matrix": 2, - "unlist": 2, - "strsplit": 2, - "ncol": 2, - "byrow": 2, - "days": 2, - "times": 2, - "hours": 2, - "all.days": 2, - "all.hours": 2, - "data.frame": 1, - "Day": 2, - "factor": 2, - "levels": 2, - "Hour": 2, - "Main": 2, - "system": 1, - "intern": 1, - "punchcard": 4, - "as.data.frame": 1, - "table": 1, - "ggplot2": 6, - "ggplot": 1, - "aes": 2, - "y": 1, - "x": 1, - "geom_point": 1, - "size": 1, - "Freq": 1, - "scale_size": 1, - "range": 1, - "ggsave": 1, - "filename": 1, - "plot": 1, - "width": 1, - "height": 1, - "hello": 2, - "print": 1, - "##polyg": 1, - "vector": 2, - "##numpoints": 1, - "number": 1, - "##output": 1, - "output": 1, - "##": 1, - "Example": 1, - "scripts": 1, - "group": 1, - "pts": 1, - "spsample": 1, - "polyg": 1, - "numpoints": 1, - "type": 1 - }, - "Racket": { - ";": 3, - "Clean": 1, - "simple": 1, - "and": 1, - "efficient": 1, - "code": 1, - "-": 94, - "that": 2, - "s": 1, - "the": 3, - "power": 1, - "of": 4, - "Racket": 2, - "http": 1, - "//racket": 1, - "lang.org/": 1, - "(": 23, - "define": 1, - "bottles": 4, - "n": 8, - "more": 2, - ")": 23, - "printf": 2, - "case": 1, - "[": 16, - "]": 16, - "else": 1, - "if": 1, - "for": 2, - "in": 3, - "range": 1, - "sub1": 1, - "displayln": 2, - "#lang": 1, - "scribble/manual": 1, - "@": 3, - "require": 1, - "scribble/bnf": 1, - "@title": 1, - "{": 2, - "Scribble": 3, - "The": 1, - "Documentation": 1, - "Tool": 1, - "}": 2, - "@author": 1, - "is": 3, - "a": 1, - "collection": 1, - "tools": 1, - "creating": 1, - "prose": 2, - "documents": 1, - "papers": 1, - "books": 1, - "library": 1, - "documentation": 1, - "etc.": 1, - "HTML": 1, - "or": 2, - "PDF": 1, - "via": 1, - "Latex": 1, - "form.": 1, - "More": 1, - "generally": 1, - "helps": 1, - "you": 1, - "write": 1, - "programs": 1, - "are": 1, - "rich": 1, - "textual": 1, - "content": 2, - "whether": 1, - "to": 2, - "be": 2, - "typeset": 1, - "any": 1, - "other": 1, - "form": 1, - "text": 1, - "generated": 1, - "programmatically.": 1, - "This": 1, - "document": 1, - "itself": 1, - "written": 1, - "using": 1, - "Scribble.": 1, - "You": 1, - "can": 1, - "see": 1, - "its": 1, - "source": 1, - "at": 1, - "let": 1, - "url": 3, - "link": 1, - "starting": 1, - "with": 1, - "@filepath": 1, - "scribble.scrbl": 1, - "file.": 1, - "@table": 1, - "contents": 1, - "@include": 8, - "section": 9, - "@index": 1 - }, - "Ragel in Ruby Host": { - "begin": 3, - "%": 34, - "{": 19, - "machine": 3, - "ephemeris_parser": 1, - ";": 38, - "action": 9, - "mark": 6, - "p": 8, - "}": 19, - "parse_start_time": 2, - "parser.start_time": 1, - "data": 15, - "[": 20, - "mark..p": 4, - "]": 20, - ".pack": 6, - "(": 33, - ")": 33, - "parse_stop_time": 2, - "parser.stop_time": 1, - "parse_step_size": 2, - "parser.step_size": 1, - "parse_ephemeris_table": 2, - "fhold": 1, - "parser.ephemeris_table": 1, - "ws": 2, - "t": 1, - "r": 1, - "n": 1, - "adbc": 2, - "|": 11, - "year": 2, - "digit": 7, - "month": 2, - "upper": 1, - "lower": 1, - "date": 2, - "hours": 2, - "minutes": 2, - "seconds": 2, - "tz": 2, - "datetime": 3, - "time_unit": 2, - "s": 4, - "soe": 2, - "eoe": 2, - "ephemeris_table": 3, - "alnum": 1, - "*": 9, - "-": 5, - "./": 1, - "start_time": 4, - "space*": 2, - "stop_time": 4, - "step_size": 3, - "+": 7, - "ephemeris": 2, - "main": 3, - "any*": 3, - "end": 23, - "require": 1, - "module": 1, - "Tengai": 1, - "EPHEMERIS_DATA": 2, - "Struct.new": 1, - ".freeze": 1, - "class": 3, - "EphemerisParser": 1, - "<": 1, - "def": 10, - "self.parse": 1, - "parser": 2, - "new": 1, - "data.unpack": 1, - "if": 4, - "data.is_a": 1, - "String": 1, - "eof": 3, - "data.length": 3, - "write": 9, - "init": 3, - "exec": 3, - "time": 6, - "super": 2, - "parse_time": 3, - "private": 1, - "DateTime.parse": 1, - "simple_scanner": 1, - "Emit": 4, - "emit": 4, - "ts": 4, - "..": 1, - "te": 1, - "foo": 8, - "any": 4, - "#": 4, - "SimpleScanner": 1, - "attr_reader": 2, - "path": 8, - "initialize": 2, - "@path": 2, - "stdout.puts": 2, - "perform": 2, - "pe": 4, - "ignored": 4, - "leftover": 8, - "File.open": 2, - "do": 2, - "f": 2, - "while": 2, - "chunk": 2, - "f.read": 2, - "ENV": 2, - ".to_i": 2, - "chunk.unpack": 2, - "||": 1, - "ts..pe": 1, - "else": 2, - "SimpleScanner.new": 1, - "ARGV": 2, - "s.perform": 2, - "simple_tokenizer": 1, - "MyTs": 2, - "my_ts": 6, - "MyTe": 2, - "my_te": 6, - "my_ts...my_te": 1, - "nil": 4, - "SimpleTokenizer": 1, - "my_ts..": 1, - "SimpleTokenizer.new": 1 - }, - "RDoc": { - "RDoc": 7, - "-": 9, - "Ruby": 4, - "Documentation": 2, - "System": 1, - "home": 1, - "https": 3, - "//github.com/rdoc/rdoc": 1, - "rdoc": 7, - "http": 1, - "//docs.seattlerb.org/rdoc": 1, - "bugs": 1, - "//github.com/rdoc/rdoc/issues": 1, - "code": 1, - "quality": 1, - "{": 1, - "": 1, - "src=": 1, - "alt=": 1, - "}": 1, - "[": 3, - "//codeclimate.com/github/rdoc/rdoc": 1, - "]": 3, - "Description": 1, - "produces": 1, - "HTML": 1, - "and": 9, - "command": 4, - "line": 1, - "documentation": 8, - "for": 9, - "projects.": 1, - "includes": 1, - "the": 12, - "+": 8, - "ri": 1, - "tools": 1, - "generating": 1, - "displaying": 1, - "from": 1, - "line.": 1, - "Generating": 1, - "Once": 1, - "installed": 1, - "you": 3, - "can": 2, - "create": 1, - "using": 1, - "options": 1, - "names...": 1, - "For": 1, - "an": 1, - "up": 1, - "to": 4, - "date": 1, - "option": 1, - "summary": 1, - "type": 2, - "help": 1, - "A": 1, - "typical": 1, - "use": 1, - "might": 1, - "be": 3, - "generate": 1, - "a": 5, - "package": 1, - "of": 2, - "source": 2, - "(": 3, - "such": 1, - "as": 1, - "itself": 1, - ")": 3, - ".": 2, - "This": 2, - "generates": 1, - "all": 1, - "C": 1, - "files": 2, - "in": 4, - "below": 1, - "current": 1, - "directory.": 1, - "These": 1, - "will": 1, - "stored": 1, - "tree": 1, - "starting": 1, - "subdirectory": 1, - "doc": 1, - "You": 2, - "make": 2, - "this": 1, - "slightly": 1, - "more": 1, - "useful": 1, - "your": 1, - "readers": 1, - "by": 1, - "having": 1, - "index": 1, - "page": 1, - "contain": 1, - "primary": 1, - "file.": 1, - "In": 1, - "our": 1, - "case": 1, - "we": 1, - "could": 1, - "#": 1, - "rdoc/rdoc": 1, - "s": 1, - "OK": 1, - "file": 1, - "bug": 1, - "report": 1, - "anything": 1, - "t": 1, - "figure": 1, - "out": 1, - "how": 1, - "produce": 1, - "output": 1, - "like": 1, - "that": 1, - "is": 4, - "probably": 1, - "bug.": 1, - "License": 1, - "Copyright": 1, - "c": 2, - "Dave": 1, - "Thomas": 1, - "The": 1, - "Pragmatic": 1, - "Programmers.": 1, - "Portions": 2, - "Eric": 1, - "Hodel.": 1, - "copyright": 1, - "others": 1, - "see": 1, - "individual": 1, - "LEGAL.rdoc": 1, - "details.": 1, - "free": 1, - "software": 2, - "may": 1, - "redistributed": 1, - "under": 1, - "terms": 1, - "specified": 1, - "LICENSE.rdoc.": 1, - "Warranty": 1, - "provided": 1, - "without": 2, - "any": 1, - "express": 1, - "or": 1, - "implied": 2, - "warranties": 2, - "including": 1, - "limitation": 1, - "merchantability": 1, - "fitness": 1, - "particular": 1, - "purpose.": 1 - }, - "Rebol": { - "REBOL": 5, - "[": 54, - "System": 1, - "Title": 2, - "Rights": 1, - "{": 8, - "Copyright": 1, - "Technologies": 2, - "is": 4, - "a": 2, - "trademark": 1, - "of": 1, - "}": 8, - "License": 2, - "Licensed": 1, - "under": 1, - "the": 3, - "Apache": 1, - "Version": 1, - "See": 1, - "http": 1, - "//www.apache.org/licenses/LICENSE": 1, - "-": 26, - "Purpose": 1, - "These": 1, - "are": 2, - "used": 3, - "to": 2, - "define": 1, - "natives": 1, - "and": 2, - "actions.": 1, - "Bind": 1, - "attributes": 1, - "for": 4, - "this": 1, - "block": 5, - "BIND_SET": 1, - "SHALLOW": 1, - "]": 61, - ";": 19, - "Special": 1, - "as": 1, - "spec": 3, - "datatype": 2, - "test": 1, - "functions": 1, - "(": 30, - "e.g.": 1, - "time": 2, - ")": 33, - "value": 1, - "any": 1, - "type": 1, - "The": 1, - "native": 5, - "function": 3, - "must": 1, - "be": 1, - "defined": 1, - "first.": 1, - "This": 1, - "special": 1, - "boot": 1, - "created": 1, - "manually": 1, - "within": 1, - "C": 1, - "code.": 1, - "Creates": 2, - "internal": 2, - "usage": 2, - "only": 2, - ".": 4, - "no": 3, - "check": 2, - "required": 2, - "we": 2, - "know": 2, - "it": 2, - "correct": 2, - "action": 2, - "Rebol": 4, - "re": 20, - "func": 5, - "s": 5, - "/i": 1, - "rejoin": 1, - "compose": 1, - "either": 1, - "i": 1, - "little": 1, - "helper": 1, - "standard": 1, - "grammar": 1, - "regex": 2, - "date": 6, - "naive": 1, - "string": 1, - "|": 22, - "S": 3, - "*": 7, - "<(?:[^^\\>": 1, - "d": 3, - "+": 6, - "/": 5, - "@": 1, - "%": 2, - "A": 3, - "F": 1, - "url": 1, - "PR_LITERAL": 10, - "string_url": 1, - "email": 1, - "string_email": 1, - "binary": 1, - "binary_base_two": 1, - "binary_base_sixty_four": 1, - "binary_base_sixteen": 1, - "re/i": 2, - "issue": 1, - "string_issue": 1, - "values": 1, - "value_date": 1, - "value_time": 1, - "tuple": 1, - "value_tuple": 1, - "pair": 1, - "value_pair": 1, - "number": 2, - "PR": 1, - "Za": 2, - "z0": 2, - "<[=>": 1, - "rebol": 1, - "red": 1, - "/system": 1, - "world": 1, - "topaz": 1, - "true": 1, - "false": 1, - "yes": 1, - "on": 1, - "off": 1, - "none": 1, - "#": 1, - "hello": 8, - "print": 4, - "author": 1 - }, - "RMarkdown": { - "Some": 1, - "text.": 1, - "##": 1, - "A": 1, - "graphic": 1, - "in": 1, - "R": 1, - "{": 1, - "r": 1, - "}": 1, - "plot": 1, - "(": 3, - ")": 3, - "hist": 1, - "rnorm": 1 - }, - "RobotFramework": { - "***": 16, - "Settings": 3, - "Documentation": 3, - "Example": 3, - "test": 6, - "cases": 2, - "using": 4, - "the": 9, - "data": 2, - "-": 16, - "driven": 4, - "testing": 2, - "approach.": 2, - "...": 28, - "Tests": 1, - "use": 2, - "Calculate": 3, - "keyword": 5, - "created": 1, - "in": 5, - "this": 1, - "file": 1, - "that": 5, - "turn": 1, - "uses": 1, - "keywords": 3, - "CalculatorLibrary": 5, - ".": 4, - "An": 1, - "exception": 1, - "is": 6, - "last": 1, - "has": 5, - "a": 4, - "custom": 1, - "_template": 1, - "keyword_.": 1, - "The": 2, - "style": 3, - "works": 3, - "well": 3, - "when": 2, - "you": 1, - "need": 3, - "to": 5, - "repeat": 1, - "same": 1, - "workflow": 3, - "multiple": 2, - "times.": 1, - "Notice": 1, - "one": 1, - "of": 3, - "these": 1, - "tests": 5, - "fails": 1, - "on": 1, - "purpose": 1, - "show": 1, - "how": 1, - "failures": 1, - "look": 1, - "like.": 1, - "Test": 4, - "Template": 2, - "Library": 3, - "Cases": 3, - "Expression": 1, - "Expected": 1, - "Addition": 2, - "+": 6, - "Subtraction": 1, - "Multiplication": 1, - "*": 4, - "Division": 2, - "/": 5, - "Failing": 1, - "Calculation": 3, - "error": 4, - "[": 4, - "]": 4, - "should": 9, - "fail": 2, - "kekkonen": 1, - "Invalid": 2, - "button": 13, - "{": 15, - "EMPTY": 3, - "}": 15, - "expression.": 1, - "by": 3, - "zero.": 1, - "Keywords": 2, - "Arguments": 2, - "expression": 5, - "expected": 4, - "Push": 16, - "buttons": 4, - "C": 4, - "Result": 8, - "be": 9, - "Should": 2, - "cause": 1, - "equal": 1, - "#": 2, - "Using": 1, - "BuiltIn": 1, - "case": 1, - "gherkin": 1, - "syntax.": 1, - "This": 3, - "similar": 1, - "examples.": 1, - "difference": 1, - "higher": 1, - "abstraction": 1, - "level": 1, - "and": 2, - "their": 1, - "arguments": 1, - "are": 1, - "embedded": 1, - "into": 1, - "names.": 1, - "kind": 2, - "_gherkin_": 2, - "syntax": 1, - "been": 3, - "made": 1, - "popular": 1, - "http": 1, - "//cukes.info": 1, - "|": 1, - "Cucumber": 1, - "It": 1, - "especially": 1, - "act": 1, - "as": 1, - "examples": 1, - "easily": 1, - "understood": 1, - "also": 2, - "business": 2, - "people.": 1, - "Given": 1, - "calculator": 1, - "cleared": 2, - "When": 1, - "user": 2, - "types": 2, - "pushes": 2, - "equals": 2, - "Then": 1, - "result": 2, - "Calculator": 1, - "User": 2, - "All": 1, - "contain": 1, - "constructed": 1, - "from": 1, - "Creating": 1, - "new": 1, - "or": 1, - "editing": 1, - "existing": 1, - "easy": 1, - "even": 1, - "for": 2, - "people": 2, - "without": 1, - "programming": 1, - "skills.": 1, - "normal": 1, - "automation.": 1, - "If": 1, - "understand": 1, - "may": 1, - "work": 1, - "better.": 1, - "Simple": 1, - "calculation": 2, - "Longer": 1, - "Clear": 1, - "built": 1, - "variable": 1 - }, - "Ruby": { - "appraise": 2, - "do": 37, - "gem": 3, - "end": 238, - "load": 3, - "Dir": 4, - "[": 56, - "]": 56, - ".each": 4, - "{": 68, - "|": 91, - "plugin": 3, - "(": 244, - ")": 256, - "}": 68, - "task": 2, - "default": 2, - "puts": 12, - "module": 8, - "Foo": 1, - "require": 58, - "class": 7, - "Formula": 2, - "include": 3, - "FileUtils": 1, - "attr_reader": 5, - "name": 51, - "path": 16, - "url": 12, - "version": 10, - "homepage": 2, - "specs": 14, - "downloader": 6, - "standard": 2, - "unstable": 2, - "head": 3, - "bottle_version": 2, - "bottle_url": 3, - "bottle_sha1": 2, - "buildpath": 1, - "def": 143, - "initialize": 2, - "nil": 21, - "set_instance_variable": 12, - "if": 72, - "@head": 4, - "and": 6, - "not": 3, - "@url": 8, - "or": 7, - "ARGV.build_head": 2, - "@version": 10, - "@spec_to_use": 4, - "@unstable": 2, - "else": 25, - "@standard.nil": 1, - "SoftwareSpecification.new": 3, - "@specs": 3, - "@standard": 3, - "raise": 17, - "@url.nil": 1, - "@name": 3, - "validate_variable": 7, - "@path": 1, - "path.nil": 1, - "self.class.path": 1, - "Pathname.new": 3, - "||": 22, - "@spec_to_use.detect_version": 1, - "CHECKSUM_TYPES.each": 1, - "type": 10, - "@downloader": 2, - "download_strategy.new": 2, - "@spec_to_use.url": 1, - "@spec_to_use.specs": 1, - "@bottle_url": 2, - "bottle_base_url": 1, - "+": 47, - "bottle_filename": 1, - "self": 11, - "@bottle_sha1": 2, - "installed": 2, - "return": 25, - "installed_prefix.children.length": 1, - "rescue": 13, - "false": 26, - "explicitly_requested": 1, - "ARGV.named.empty": 1, - "ARGV.formulae.include": 1, - "linked_keg": 1, - "HOMEBREW_REPOSITORY/": 2, - "/@name": 1, - "installed_prefix": 1, - "head_prefix": 2, - "HOMEBREW_CELLAR": 2, - "head_prefix.directory": 1, - "prefix": 14, - "rack": 1, - ";": 41, - "prefix.parent": 1, - "bin": 1, - "doc": 1, - "info": 2, - "lib": 1, - "libexec": 1, - "man": 9, - "man1": 1, - "man2": 1, - "man3": 1, - "man4": 1, - "man5": 1, - "man6": 1, - "man7": 1, - "man8": 1, - "sbin": 1, - "share": 1, - "etc": 1, - "HOMEBREW_PREFIX": 2, - "var": 1, - "plist_name": 2, - "plist_path": 1, - "download_strategy": 1, - "@spec_to_use.download_strategy": 1, - "cached_download": 1, - "@downloader.cached_location": 1, - "caveats": 1, - "options": 3, - "patches": 2, - "keg_only": 2, - "self.class.keg_only_reason": 1, - "fails_with": 2, - "cc": 3, - "self.class.cc_failures.nil": 1, - "Compiler.new": 1, - "unless": 15, - "cc.is_a": 1, - "Compiler": 1, - "self.class.cc_failures.find": 1, - "failure": 1, - "next": 1, - "failure.compiler": 1, - "cc.name": 1, - "failure.build.zero": 1, - "failure.build": 1, - "cc.build": 1, - "skip_clean": 2, - "true": 15, - "self.class.skip_clean_all": 1, - "to_check": 2, - "path.relative_path_from": 1, - ".to_s": 3, - "self.class.skip_clean_paths.include": 1, - "brew": 2, - "stage": 2, - "begin": 9, - "patch": 3, - "yield": 5, - "Interrupt": 2, - "RuntimeError": 1, - "SystemCallError": 1, - "e": 8, - "#": 100, - "don": 1, - "config.log": 2, - "t": 3, - "a": 10, - "std_autotools": 1, - "variant": 1, - "because": 1, - "autotools": 1, - "is": 3, - "lot": 1, - "std_cmake_args": 1, - "%": 10, - "W": 1, - "-": 34, - "DCMAKE_INSTALL_PREFIX": 1, - "DCMAKE_BUILD_TYPE": 1, - "None": 1, - "DCMAKE_FIND_FRAMEWORK": 1, - "LAST": 1, - "Wno": 1, - "dev": 1, - "self.class_s": 2, - "#remove": 1, - "invalid": 1, - "characters": 1, - "then": 4, - "camelcase": 1, - "it": 1, - "name.capitalize.gsub": 1, - "/": 34, - "_.": 1, - "s": 2, - "zA": 1, - "Z0": 1, - "upcase": 1, - ".gsub": 5, - "self.names": 1, - ".map": 6, - "f": 11, - "File.basename": 2, - ".sort": 2, - "self.all": 1, - "map": 1, - "self.map": 1, - "rv": 3, - "each": 1, - "<<": 15, - "self.each": 1, - "names.each": 1, - "n": 4, - "Formula.factory": 2, - "onoe": 2, - "inspect": 2, - "self.aliases": 1, - "self.canonical_name": 1, - "name.to_s": 3, - "name.kind_of": 2, - "Pathname": 2, - "formula_with_that_name": 1, - "HOMEBREW_REPOSITORY": 4, - "possible_alias": 1, - "possible_cached_formula": 1, - "HOMEBREW_CACHE_FORMULA": 2, - "name.include": 2, - "r": 3, - ".": 3, - "tapd": 1, - ".downcase": 2, - "tapd.find_formula": 1, - "relative_pathname": 1, - "relative_pathname.stem.to_s": 1, - "tapd.directory": 1, - "elsif": 7, - "formula_with_that_name.file": 1, - "formula_with_that_name.readable": 1, - "possible_alias.file": 1, - "possible_alias.realpath.basename": 1, - "possible_cached_formula.file": 1, - "possible_cached_formula.to_s": 1, - "self.factory": 1, - "https": 1, - "ftp": 1, - "//": 3, - ".basename": 1, - "target_file": 6, - "name.basename": 1, - "HOMEBREW_CACHE_FORMULA.mkpath": 1, - "FileUtils.rm": 1, - "force": 1, - "curl": 1, - "install_type": 4, - "from_url": 1, - "Formula.canonical_name": 1, - ".rb": 1, - "path.stem": 1, - "from_path": 1, - "path.to_s": 3, - "Formula.path": 1, - "from_name": 2, - "klass_name": 2, - "klass": 16, - "Object.const_get": 1, - "NameError": 2, - "LoadError": 3, - "klass.new": 2, - "FormulaUnavailableError.new": 1, - "tap": 1, - "path.realpath.to_s": 1, - "/Library/Taps/": 1, - "w": 6, - "self.path": 1, - "mirrors": 4, - "self.class.mirrors": 1, - "deps": 1, - "self.class.dependencies.deps": 1, - "external_deps": 1, - "self.class.dependencies.external_deps": 1, - "recursive_deps": 1, - "Formula.expand_deps": 1, - ".flatten.uniq": 1, - "self.expand_deps": 1, - "f.deps.map": 1, - "dep": 3, - "f_dep": 3, - "dep.to_s": 1, - "expand_deps": 1, - "protected": 1, - "system": 1, - "cmd": 6, - "*args": 16, - "pretty_args": 1, - "args.dup": 1, - "pretty_args.delete": 1, - "ARGV.verbose": 2, - "ohai": 3, - ".strip": 1, - "removed_ENV_variables": 2, - "case": 5, - "args.empty": 1, - "cmd.split": 1, - ".first": 1, - "when": 11, - "ENV.remove_cc_etc": 1, - "safe_system": 4, - "rd": 1, - "wr": 3, - "IO.pipe": 1, - "pid": 1, - "fork": 1, - "rd.close": 1, - "stdout.reopen": 1, - "stderr.reopen": 1, - "args.collect": 1, - "arg": 1, - "arg.to_s": 1, - "exec": 2, - "exit": 2, - "never": 1, - "gets": 1, - "here": 1, - "threw": 1, - "failed": 3, - "wr.close": 1, - "out": 4, - "rd.read": 1, - "until": 1, - "rd.eof": 1, - "Process.wait": 1, - ".success": 1, - "removed_ENV_variables.each": 1, - "key": 8, - "value": 4, - "ENV": 4, - "ENV.kind_of": 1, - "Hash": 3, - "BuildError.new": 1, - "args": 5, - "public": 2, - "fetch": 2, - "install_bottle": 1, - "CurlBottleDownloadStrategy.new": 1, - "mirror_list": 2, - "HOMEBREW_CACHE.mkpath": 1, - "fetched": 4, - "downloader.fetch": 1, - "CurlDownloadStrategyError": 1, - "mirror_list.empty": 1, - "mirror_list.shift.values_at": 1, - "retry": 2, - "checksum_type": 2, - "CHECKSUM_TYPES.detect": 1, - "instance_variable_defined": 2, - "verify_download_integrity": 2, - "fn": 2, - "args.length": 1, - "md5": 2, - "supplied": 4, - "instance_variable_get": 2, - "type.to_s.upcase": 1, - "hasher": 2, - "Digest.const_get": 1, - "hash": 2, - "fn.incremental_hash": 1, - "supplied.empty": 1, - "message": 2, - "EOF": 2, - "mismatch": 1, - "Expected": 1, - "Got": 1, - "Archive": 1, - "To": 1, - "an": 1, - "incomplete": 1, - "download": 1, - "remove": 1, - "the": 8, - "file": 1, - "above.": 1, - "supplied.upcase": 1, - "hash.upcase": 1, - "opoo": 1, - "private": 3, - "CHECKSUM_TYPES": 2, - "sha1": 4, - "sha256": 1, - ".freeze": 1, - "fetched.kind_of": 1, - "mktemp": 1, - "downloader.stage": 1, - "@buildpath": 2, - "Pathname.pwd": 1, - "patch_list": 1, - "Patches.new": 1, - "patch_list.empty": 1, - "patch_list.external_patches": 1, - "patch_list.download": 1, - "patch_list.each": 1, - "p": 2, - "p.compression": 1, - "gzip": 1, - "p.compressed_filename": 2, - "bzip2": 1, - "*": 3, - "p.patch_args": 1, - "v": 2, - "v.to_s.empty": 1, - "s/": 1, - "class_value": 3, - "self.class.send": 1, - "instance_variable_set": 1, - "self.method_added": 1, - "method": 4, - "self.attr_rw": 1, - "attrs": 1, - "attrs.each": 1, - "attr": 4, - "class_eval": 1, - "Q": 1, - "val": 10, - "val.nil": 3, - "@#": 2, - "attr_rw": 4, - "keg_only_reason": 1, - "skip_clean_all": 2, - "cc_failures": 1, - "stable": 2, - "&": 31, - "block": 30, - "block_given": 5, - "instance_eval": 2, - "ARGV.build_devel": 2, - "devel": 1, - "@mirrors": 3, - "clear": 1, - "from": 1, - "release": 1, - "bottle": 1, - "bottle_block": 1, - "Class.new": 2, - "self.version": 1, - "self.url": 1, - "self.sha1": 1, - "sha1.shift": 1, - "@sha1": 6, - "MacOS.cat": 1, - "String": 2, - "MacOS.lion": 1, - "self.data": 1, - "&&": 8, - "bottle_block.instance_eval": 1, - "@bottle_version": 1, - "bottle_block.data": 1, - "mirror": 1, - "@mirrors.uniq": 1, - "dependencies": 1, - "@dependencies": 1, - "DependencyCollector.new": 1, - "depends_on": 1, - "dependencies.add": 1, - "paths": 3, - "all": 1, - "@skip_clean_all": 2, - "@skip_clean_paths": 3, - ".flatten.each": 1, - "p.to_s": 2, - "@skip_clean_paths.include": 1, - "skip_clean_paths": 1, - "reason": 2, - "explanation": 1, - "@keg_only_reason": 1, - "KegOnlyReason.new": 1, - "explanation.to_s.chomp": 1, - "compiler": 3, - "@cc_failures": 2, - "CompilerFailures.new": 1, - "CompilerFailure.new": 2, - "Grit": 1, - "ActiveSupport": 1, - "Inflector": 1, - "extend": 2, - "pluralize": 3, - "word": 10, - "apply_inflections": 3, - "inflections.plurals": 1, - "singularize": 2, - "inflections.singulars": 1, - "camelize": 2, - "term": 1, - "uppercase_first_letter": 2, - "string": 4, - "term.to_s": 1, - "string.sub": 2, - "z": 7, - "d": 6, - "*/": 1, - "inflections.acronyms": 1, - ".capitalize": 1, - "inflections.acronym_regex": 2, - "b": 4, - "A": 5, - "Z_": 1, - "string.gsub": 1, - "_": 2, - "/i": 2, - "underscore": 3, - "camel_cased_word": 6, - "camel_cased_word.to_s.dup": 1, - "word.gsub": 4, - "Za": 1, - "Z": 3, - "word.tr": 1, - "word.downcase": 1, - "humanize": 2, - "lower_case_and_underscored_word": 1, - "result": 8, - "lower_case_and_underscored_word.to_s.dup": 1, - "inflections.humans.each": 1, - "rule": 4, - "replacement": 4, - "break": 4, - "result.sub": 2, - "result.gsub": 2, - "/_id": 1, - "result.tr": 1, - "match": 6, - "w/": 1, - ".upcase": 1, - "titleize": 1, - "": 1, - "capitalize": 1, - "Create": 1, - "of": 1, - "table": 2, - "like": 1, - "Rails": 1, - "does": 1, - "for": 1, - "models": 1, - "to": 1, - "names": 2, - "This": 1, - "uses": 1, - "on": 2, - "last": 4, - "in": 3, - "RawScaledScorer": 1, - "tableize": 2, - "class_name": 2, - "classify": 1, - "table_name": 1, - "table_name.to_s.sub": 1, - "/.*": 1, - "./": 1, - "dasherize": 1, - "underscored_word": 1, - "underscored_word.tr": 1, - "demodulize": 1, - "i": 2, - "path.rindex": 2, - "..": 1, - "deconstantize": 1, - "implementation": 1, - "based": 1, - "one": 1, - "facets": 1, - "id": 1, - "outside": 2, - "inside": 2, - "owned": 1, - "constant": 4, - "constant.ancestors.inject": 1, - "const": 3, - "ancestor": 3, - "Object": 1, - "ancestor.const_defined": 1, - "constant.const_get": 1, - "safe_constantize": 1, - "constantize": 1, - "e.message": 2, - "uninitialized": 1, - "wrong": 1, - "const_regexp": 3, - "e.name.to_s": 1, - "camel_cased_word.to_s": 1, - "ArgumentError": 1, - "/not": 1, - "missing": 1, - "ordinal": 1, - "number": 2, - ".include": 1, - "number.to_i.abs": 2, - "ordinalize": 1, - "nodoc": 3, - "parts": 1, - "camel_cased_word.split": 1, - "parts.pop": 1, - "parts.reverse.inject": 1, - "acc": 2, - "part": 1, - "part.empty": 1, - "rules": 1, - "word.to_s.dup": 1, - "word.empty": 1, - "inflections.uncountables.include": 1, - "result.downcase": 1, - "Z/": 1, - "rules.each": 1, - ".unshift": 1, - "File.dirname": 4, - "__FILE__": 3, - "For": 1, - "use/testing": 1, - "no": 1, - "require_all": 4, - "glob": 2, - "File.join": 6, - "Jekyll": 3, - "VERSION": 1, - "DEFAULTS": 2, - "Dir.pwd": 3, - "self.configuration": 1, - "override": 3, - "source": 2, - "config_file": 2, - "config": 3, - "YAML.load_file": 1, - "config.is_a": 1, - "stdout.puts": 1, - "err": 1, - "stderr.puts": 2, - "err.to_s": 1, - "DEFAULTS.deep_merge": 1, - ".deep_merge": 1, - "Jenkins": 1, - "Plugin": 1, - "Specification.new": 1, - "plugin.name": 1, - "plugin.display_name": 1, - "plugin.version": 1, - "plugin.description": 1, - "plugin.url": 1, - "plugin.developed_by": 1, - "plugin.uses_repository": 1, - "github": 1, - "plugin.depends_on": 1, - "#plugin.depends_on": 1, - "SHEBANG#!macruby": 1, - "object": 2, - "@user": 1, - "person": 1, - "attributes": 2, - "username": 1, - "email": 1, - "location": 1, - "created_at": 1, - "registered_at": 1, - "node": 2, - "role": 1, - "user": 1, - "user.is_admin": 1, - "child": 1, - "phone_numbers": 1, - "pnumbers": 1, - "extends": 1, - "node_numbers": 1, - "u": 1, - "partial": 1, - "u.phone_numbers": 1, - "Resque": 3, - "Helpers": 1, - "redis": 7, - "server": 11, - "/redis": 1, - "Redis.connect": 2, - "thread_safe": 2, - "namespace": 3, - "server.split": 2, - "host": 3, - "port": 4, - "db": 3, - "Redis.new": 1, - "resque": 2, - "@redis": 6, - "Redis": 3, - "Namespace.new": 2, - "Namespace": 1, - "@queues": 2, - "Hash.new": 1, - "h": 2, - "Queue.new": 1, - "coder": 3, - "@coder": 1, - "MultiJsonCoder.new": 1, - "attr_writer": 4, - "self.redis": 2, - "Redis.respond_to": 1, - "connect": 1, - "redis_id": 2, - "redis.respond_to": 2, - "redis.server": 1, - "nodes": 1, - "distributed": 1, - "redis.nodes.map": 1, - "n.id": 1, - ".join": 1, - "redis.client.id": 1, - "before_first_fork": 2, - "@before_first_fork": 2, - "before_fork": 2, - "@before_fork": 2, - "after_fork": 2, - "@after_fork": 2, - "to_s": 1, - "attr_accessor": 2, - "inline": 3, - "alias": 1, - "push": 1, - "queue": 24, - "item": 4, - "pop": 1, - ".pop": 1, - "ThreadError": 1, - "size": 3, - ".size": 1, - "peek": 1, - "start": 7, - "count": 5, - ".slice": 1, - "list_range": 1, - "decode": 2, - "redis.lindex": 1, - "Array": 2, - "redis.lrange": 1, - "queues": 3, - "redis.smembers": 1, - "remove_queue": 1, - ".destroy": 1, - "@queues.delete": 1, - "queue.to_s": 1, - "enqueue": 1, - "enqueue_to": 2, - "queue_from_class": 4, - "before_hooks": 2, - "Plugin.before_enqueue_hooks": 1, - ".collect": 2, - "hook": 9, - "klass.send": 4, - "before_hooks.any": 2, - "Job.create": 1, - "Plugin.after_enqueue_hooks": 1, - "dequeue": 1, - "Plugin.before_dequeue_hooks": 1, - "Job.destroy": 1, - "Plugin.after_dequeue_hooks": 1, - "klass.instance_variable_get": 1, - "@queue": 1, - "klass.respond_to": 1, - "klass.queue": 1, - "reserve": 1, - "Job.reserve": 1, - "validate": 1, - "NoQueueError.new": 1, - "klass.to_s.empty": 1, - "NoClassError.new": 1, - "workers": 2, - "Worker.all": 1, - "working": 2, - "Worker.working": 1, - "remove_worker": 1, - "worker_id": 2, - "worker": 1, - "Worker.find": 1, - "worker.unregister_worker": 1, - "pending": 1, - "queues.inject": 1, - "m": 3, - "k": 2, - "processed": 2, - "Stat": 2, - "queues.size": 1, - "workers.size.to_i": 1, - "working.size": 1, - "servers": 1, - "environment": 2, - "keys": 6, - "redis.keys": 1, - "key.sub": 1, - "SHEBANG#!ruby": 2, - "SHEBANG#!rake": 1, - "Sinatra": 2, - "Request": 2, - "<": 2, - "Rack": 1, - "accept": 1, - "@env": 2, - "entries": 1, - ".to_s.split": 1, - "entries.map": 1, - "accept_entry": 1, - ".sort_by": 1, - "first": 1, - "preferred_type": 1, - "self.defer": 1, - "pattern": 1, - "path.respond_to": 5, - "path.keys": 1, - "path.names": 1, - "TypeError": 1, - "URI": 3, - "URI.const_defined": 1, - "Parser": 1, - "Parser.new": 1, - "encoded": 1, - "char": 4, - "enc": 5, - "URI.escape": 1, - "helpers": 3, - "data": 1, - "reset": 1, - "set": 36, - "development": 6, - ".to_sym": 1, - "raise_errors": 1, - "Proc.new": 11, - "test": 5, - "dump_errors": 1, - "show_exceptions": 1, - "sessions": 1, - "logging": 2, - "protection": 1, - "method_override": 4, - "use_code": 1, - "default_encoding": 1, - "add_charset": 1, - "javascript": 1, - "xml": 2, - "xhtml": 1, - "json": 1, - "settings.add_charset": 1, - "text": 3, - "session_secret": 3, - "SecureRandom.hex": 1, - "NotImplementedError": 1, - "Kernel.rand": 1, - "**256": 1, - "alias_method": 2, - "methodoverride": 2, - "run": 2, - "via": 1, - "at": 1, - "running": 2, - "built": 1, - "now": 1, - "http": 1, - "webrick": 1, - "bind": 1, - "ruby_engine": 6, - "defined": 1, - "RUBY_ENGINE": 2, - "server.unshift": 6, - "ruby_engine.nil": 1, - "absolute_redirects": 1, - "prefixed_redirects": 1, - "empty_path_info": 1, - "app_file": 4, - "root": 5, - "File.expand_path": 1, - "views": 1, - "reload_templates": 1, - "lock": 1, - "threaded": 1, - "public_folder": 3, - "static": 1, - "File.exist": 1, - "static_cache_control": 1, - "error": 3, - "Exception": 1, - "response.status": 1, - "content_type": 3, - "configure": 2, - "get": 2, - "filename": 2, - "png": 1, - "send_file": 1, - "NotFound": 1, - "HTML": 2, - "": 1, - "html": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "

": 1, - "doesn": 1, - "rsquo": 1, - "know": 1, - "this": 2, - "ditty.": 1, - "

": 1, - "": 1, - "src=": 1, - "
": 1, - "id=": 1, - "Try": 1, - "
": 1,
-      "request.request_method.downcase": 1,
-      "nend": 1,
-      "
": 1, - "
": 1, - "": 1, - "": 1, - "Application": 2, - "Base": 2, - "super": 3, - "self.register": 2, - "extensions": 6, - "added_methods": 2, - "extensions.map": 1, - "m.public_instance_methods": 1, - ".flatten": 1, - "Delegator.delegate": 1, - "Delegator": 1, - "self.delegate": 1, - "methods": 1, - "methods.each": 1, - "method_name": 5, - "define_method": 1, - "respond_to": 1, - "Delegator.target.send": 1, - "delegate": 1, - "put": 1, - "post": 1, - "delete": 1, - "template": 1, - "layout": 1, - "before": 1, - "after": 1, - "not_found": 1, - "mime_type": 1, - "enable": 1, - "disable": 1, - "use": 1, - "production": 1, - "settings": 2, - "target": 1, - "self.target": 1, - "Wrapper": 1, - "stack": 2, - "instance": 2, - "@stack": 1, - "@instance": 2, - "@instance.settings": 1, - "call": 1, - "env": 2, - "@stack.call": 1, - "self.new": 1, - "base": 4, - "base.class_eval": 1, - "Delegator.target.register": 1, - "self.helpers": 1, - "Delegator.target.helpers": 1, - "self.use": 1, - "Delegator.target.use": 1, - "SHEBANG#!python": 1 - }, - "Rust": { - "//": 20, - "use": 10, - "cell": 1, - "Cell": 2, - ";": 218, - "cmp": 1, - "Eq": 2, - "option": 4, - "result": 18, - "Result": 3, - "comm": 5, - "{": 213, - "stream": 21, - "Chan": 4, - "GenericChan": 1, - "GenericPort": 1, - "Port": 3, - "SharedChan": 4, - "}": 210, - "prelude": 1, - "*": 1, - "task": 39, - "rt": 29, - "task_id": 2, - "sched_id": 2, - "rust_task": 1, - "util": 4, - "replace": 8, - "mod": 5, - "local_data_priv": 1, - "pub": 26, - "local_data": 1, - "spawn": 15, - "///": 13, - "A": 6, - "handle": 3, - "to": 6, - "a": 9, - "scheduler": 6, - "#": 61, - "[": 61, - "deriving_eq": 3, - "]": 61, - "enum": 4, - "Scheduler": 4, - "SchedulerHandle": 2, - "(": 429, - ")": 434, - "Task": 2, - "TaskHandle": 2, - "TaskResult": 4, - "Success": 6, - "Failure": 6, - "impl": 3, - "for": 10, - "pure": 2, - "fn": 89, - "eq": 1, - "&": 30, - "self": 15, - "other": 4, - "-": 33, - "bool": 6, - "match": 4, - "|": 20, - "true": 9, - "_": 4, - "false": 7, - "ne": 1, - ".eq": 1, - "modes": 1, - "SchedMode": 4, - "Run": 3, - "on": 5, - "the": 10, - "default": 1, - "DefaultScheduler": 2, - "current": 1, - "CurrentScheduler": 2, - "specific": 1, - "ExistingScheduler": 1, - "PlatformThread": 2, - "All": 1, - "tasks": 1, - "run": 1, - "in": 3, - "same": 1, - "OS": 3, - "thread": 2, - "SingleThreaded": 4, - "Tasks": 2, - "are": 2, - "distributed": 2, - "among": 2, - "available": 1, - "CPUs": 1, - "ThreadPerCore": 2, - "Each": 1, - "runs": 1, - "its": 1, - "own": 1, - "ThreadPerTask": 1, - "fixed": 1, - "number": 1, - "of": 3, - "threads": 1, - "ManualThreads": 3, - "uint": 7, - "struct": 7, - "SchedOpts": 4, - "mode": 9, - "foreign_stack_size": 3, - "Option": 4, - "": 2, - "TaskOpts": 12, - "linked": 15, - "supervised": 11, - "mut": 16, - "notify_chan": 24, - "<": 3, - "": 3, - "sched": 10, - "TaskBuilder": 21, - "opts": 21, - "gen_body": 4, - "@fn": 2, - "v": 6, - "can_not_copy": 11, - "": 1, - "consumed": 4, - "default_task_opts": 4, - "body": 6, - "Identity": 1, - "function": 1, - "None": 23, - "doc": 1, - "hidden": 1, - "FIXME": 1, - "#3538": 1, - "priv": 1, - "consume": 1, - "if": 7, - "self.consumed": 2, - "fail": 17, - "Fake": 1, - "move": 1, - "let": 84, - "self.opts.notify_chan": 7, - "self.opts.linked": 4, - "self.opts.supervised": 5, - "self.opts.sched": 6, - "self.gen_body": 2, - "unlinked": 1, - "..": 8, - "self.consume": 7, - "future_result": 1, - "blk": 2, - "self.opts.notify_chan.is_some": 1, - "notify_pipe_po": 2, - "notify_pipe_ch": 2, - "Some": 8, - "Configure": 1, - "custom": 1, - "task.": 1, - "sched_mode": 1, - "add_wrapper": 1, - "wrapper": 2, - "prev_gen_body": 2, - "f": 38, - "x": 7, - "x.opts.linked": 1, - "x.opts.supervised": 1, - "x.opts.sched": 1, - "spawn_raw": 1, - "x.gen_body": 1, - "Runs": 1, - "while": 2, - "transfering": 1, - "ownership": 1, - "one": 1, - "argument": 1, - "child.": 1, - "spawn_with": 2, - "": 2, - "arg": 5, - "do": 49, - "self.spawn": 1, - "arg.take": 1, - "try": 5, - "": 2, - "T": 2, - "": 2, - "po": 11, - "ch": 26, - "": 1, - "fr_task_builder": 1, - "self.future_result": 1, - "+": 4, - "r": 6, - "fr_task_builder.spawn": 1, - "||": 11, - "ch.send": 11, - "unwrap": 3, - ".recv": 3, - "Ok": 3, - "po.recv": 10, - "Err": 2, - ".spawn": 9, - "spawn_unlinked": 6, - ".unlinked": 3, - "spawn_supervised": 5, - ".supervised": 2, - ".spawn_with": 1, - "spawn_sched": 8, - ".sched_mode": 2, - ".try": 1, - "yield": 16, - "Yield": 1, - "control": 1, - "unsafe": 31, - "task_": 2, - "rust_get_task": 5, - "killed": 3, - "rust_task_yield": 1, - "&&": 1, - "failing": 2, - "True": 1, - "running": 2, - "has": 1, - "failed": 1, - "rust_task_is_unwinding": 1, - "get_task": 1, - "Get": 1, - "get_task_id": 1, - "get_scheduler": 1, - "rust_get_sched_id": 6, - "unkillable": 5, - "": 3, - "U": 6, - "AllowFailure": 5, - "t": 24, - "*rust_task": 6, - "drop": 3, - "rust_task_allow_kill": 3, - "self.t": 4, - "_allow_failure": 2, - "rust_task_inhibit_kill": 3, - "The": 1, - "inverse": 1, - "unkillable.": 1, - "Only": 1, - "ever": 1, - "be": 2, - "used": 1, - "nested": 1, - ".": 1, - "rekillable": 1, - "DisallowFailure": 5, - "atomically": 3, - "DeferInterrupts": 5, - "rust_task_allow_yield": 1, - "_interrupts": 1, - "rust_task_inhibit_yield": 1, - "test": 31, - "should_fail": 11, - "ignore": 16, - "cfg": 16, - "windows": 14, - "test_cant_dup_task_builder": 1, - "b": 2, - "b.spawn": 2, - "should": 2, - "have": 1, - "been": 1, - "by": 1, - "previous": 1, - "call": 1, - "test_spawn_unlinked_unsup_no_fail_down": 1, - "grandchild": 1, - "sends": 1, - "port": 3, - "ch.clone": 2, - "iter": 8, - "repeat": 8, - "If": 1, - "first": 1, - "grandparent": 1, - "hangs.": 1, - "Shouldn": 1, - "leave": 1, - "child": 3, - "hanging": 1, - "around.": 1, - "test_spawn_linked_sup_fail_up": 1, - "fails": 4, - "parent": 2, - "_ch": 1, - "<()>": 6, - "opts.linked": 2, - "opts.supervised": 2, - "b0": 5, - "b1": 3, - "b1.spawn": 3, - "We": 1, - "get": 1, - "punted": 1, - "awake": 1, - "test_spawn_linked_sup_fail_down": 1, - "loop": 5, - "*both*": 1, - "mechanisms": 1, - "would": 1, - "wrong": 1, - "this": 1, - "didn": 1, - "s": 1, - "failure": 1, - "propagate": 1, - "across": 1, - "gap": 1, - "test_spawn_failure_propagate_secondborn": 1, - "test_spawn_failure_propagate_nephew_or_niece": 1, - "test_spawn_linked_sup_propagate_sibling": 1, - "test_run_basic": 1, - "Wrapper": 5, - "test_add_wrapper": 1, - "b0.add_wrapper": 1, - "ch.f.swap_unwrap": 4, - "test_future_result": 1, - ".future_result": 4, - "assert": 10, - "test_back_to_the_future_result": 1, - "test_try_success": 1, - "test_try_fail": 1, - "test_spawn_sched_no_threads": 1, - "u": 2, - "test_spawn_sched": 1, - "i": 3, - "int": 5, - "parent_sched_id": 4, - "child_sched_id": 5, - "else": 1, - "test_spawn_sched_childs_on_default_sched": 1, - "default_id": 2, - "nolink": 1, - "extern": 1, - "testrt": 9, - "rust_dbg_lock_create": 2, - "*libc": 6, - "c_void": 6, - "rust_dbg_lock_destroy": 2, - "lock": 13, - "rust_dbg_lock_lock": 3, - "rust_dbg_lock_unlock": 3, - "rust_dbg_lock_wait": 2, - "rust_dbg_lock_signal": 2, - "test_spawn_sched_blocking": 1, - "start_po": 1, - "start_ch": 1, - "fin_po": 1, - "fin_ch": 1, - "start_ch.send": 1, - "fin_ch.send": 1, - "start_po.recv": 1, - "pingpong": 3, - "": 2, - "val": 4, - "setup_po": 1, - "setup_ch": 1, - "parent_po": 2, - "parent_ch": 2, - "child_po": 2, - "child_ch": 4, - "setup_ch.send": 1, - "setup_po.recv": 1, - "child_ch.send": 1, - "fin_po.recv": 1, - "avoid_copying_the_body": 5, - "spawnfn": 2, - "p": 3, - "x_in_parent": 2, - "ptr": 2, - "addr_of": 2, - "as": 7, - "x_in_child": 4, - "p.recv": 1, - "test_avoid_copying_the_body_spawn": 1, - "test_avoid_copying_the_body_task_spawn": 1, - "test_avoid_copying_the_body_try": 1, - "test_avoid_copying_the_body_unlinked": 1, - "test_platform_thread": 1, - "test_unkillable": 1, - "pp": 2, - "*uint": 1, - "cast": 2, - "transmute": 2, - "_p": 1, - "test_unkillable_nested": 1, - "Here": 1, - "test_atomically_nested": 1, - "test_child_doesnt_ref_parent": 1, - "const": 1, - "generations": 2, - "child_no": 3, - "return": 1, - "test_sched_thread_per_core": 1, - "chan": 2, - "cores": 2, - "rust_num_threads": 1, - "reported_threads": 2, - "rust_sched_threads": 2, - "chan.send": 2, - "port.recv": 2, - "test_spawn_thread_on_demand": 1, - "max_threads": 2, - "running_threads": 2, - "rust_sched_current_nonlazy_threads": 2, - "port2": 1, - "chan2": 1, - "chan2.send": 1, - "running_threads2": 2, - "port2.recv": 1 - }, - "Sass": { - "blue": 7, - "#3bbfce": 2, - ";": 6, - "margin": 8, - "px": 3, - ".content_navigation": 1, - "{": 2, - "color": 4, - "}": 2, - ".border": 2, - "padding": 2, - "/": 4, - "border": 3, - "solid": 1, - ".content": 1, - "-": 3, - "navigation": 1, - "darken": 1, - "(": 1, - "%": 1, - ")": 1 - }, - "Scala": { - "SHEBANG#!sh": 2, - "exec": 2, - "scala": 2, - "#": 2, - "object": 3, - "Beers": 1, - "extends": 1, - "Application": 1, - "{": 21, - "def": 10, - "bottles": 3, - "(": 67, - "qty": 12, - "Int": 11, - "f": 4, - "String": 5, - ")": 67, - "//": 29, - "higher": 1, - "-": 5, - "order": 1, - "functions": 2, - "match": 2, - "case": 8, - "+": 49, - "x": 3, - "}": 22, - "beers": 3, - "sing": 3, - "implicit": 3, - "song": 3, - "takeOne": 2, - "nextQty": 2, - "nested": 1, - "if": 2, - "else": 2, - "refrain": 2, - ".capitalize": 1, - "tail": 1, - "recursion": 1, - "val": 6, - "headOfSong": 1, - "println": 8, - "parameter": 1, - "name": 4, - "version": 1, - "organization": 1, - "libraryDependencies": 3, - "%": 12, - "Seq": 3, - "libosmVersion": 4, - "from": 1, - "maxErrors": 1, - "pollInterval": 1, - "javacOptions": 1, - "scalacOptions": 1, - "scalaVersion": 1, - "initialCommands": 2, - "in": 12, - "console": 1, - "mainClass": 2, - "Compile": 4, - "packageBin": 1, - "Some": 6, - "run": 1, - "watchSources": 1, - "<+=>": 1, - "baseDirectory": 1, - "map": 1, - "_": 2, - "input": 1, - "add": 2, - "a": 4, - "maven": 2, - "style": 2, - "repository": 2, - "resolvers": 2, - "at": 4, - "url": 3, - "sequence": 1, - "of": 1, - "repositories": 1, - "define": 1, - "the": 5, - "to": 7, - "publish": 1, - "publishTo": 1, - "set": 2, - "Ivy": 1, - "logging": 1, - "be": 1, - "highest": 1, - "level": 1, - "ivyLoggingLevel": 1, - "UpdateLogging": 1, - "Full": 1, - "disable": 1, - "updating": 1, - "dynamic": 1, - "revisions": 1, - "including": 1, - "SNAPSHOT": 1, - "versions": 1, - "offline": 1, - "true": 5, - "prompt": 1, - "for": 1, - "this": 1, - "build": 1, - "include": 1, - "project": 1, - "id": 1, - "shellPrompt": 2, - "ThisBuild": 1, - "state": 3, - "Project.extract": 1, - ".currentRef.project": 1, - "System.getProperty": 1, - "showTiming": 1, - "false": 7, - "showSuccess": 1, - "timingFormat": 1, - "import": 9, - "java.text.DateFormat": 1, - "DateFormat.getDateTimeInstance": 1, - "DateFormat.SHORT": 2, - "crossPaths": 1, - "fork": 2, - "Test": 3, - "javaOptions": 1, - "parallelExecution": 2, - "javaHome": 1, - "file": 3, - "scalaHome": 1, - "aggregate": 1, - "clean": 1, - "logLevel": 2, - "compile": 1, - "Level.Warn": 2, - "persistLogLevel": 1, - "Level.Debug": 1, - "traceLevel": 2, - "unmanagedJars": 1, - "publishArtifact": 2, - "packageDoc": 2, - "artifactClassifier": 1, - "retrieveManaged": 1, - "credentials": 2, - "Credentials": 2, - "Path.userHome": 1, - "/": 2, - "math.random": 1, - "scala.language.postfixOps": 1, - "scala.util._": 1, - "scala.util.": 1, - "Try": 1, - "Success": 2, - "Failure": 2, - "scala.concurrent._": 1, - "duration._": 1, - "ExecutionContext.Implicits.global": 1, - "scala.concurrent.": 1, - "ExecutionContext": 1, - "CanAwait": 1, - "OnCompleteRunnable": 1, - "TimeoutException": 1, - "ExecutionException": 1, - "blocking": 3, - "node11": 1, - "Welcome": 1, - "Scala": 1, - "worksheet": 1, - "retry": 3, - "[": 11, - "T": 8, - "]": 11, - "n": 3, - "block": 8, - "Future": 5, - "ns": 1, - "Iterator": 2, - ".iterator": 1, - "attempts": 1, - "ns.map": 1, - "failed": 2, - "Future.failed": 1, - "new": 1, - "Exception": 2, - "attempts.foldLeft": 1, - "fallbackTo": 1, - "scala.concurrent.Future": 1, - "scala.concurrent.Fut": 1, - "|": 19, - "ure": 1, - "rb": 3, - "i": 9, - "Thread.sleep": 2, - "*random.toInt": 1, - "i.toString": 5, - "ri": 2, - "onComplete": 1, - "s": 1, - "s.toString": 1, - "t": 1, - "t.toString": 1, - "r": 1, - "r.toString": 1, - "Unit": 1, - "toList": 1, - ".foreach": 1, - "Iteration": 5, - "java.lang.Exception": 1, - "Hi": 10, - "HelloWorld": 1, - "main": 1, - "args": 1, - "Array": 1 - }, - "Scaml": { - "%": 1, - "p": 1, - "Hello": 1, - "World": 1 - }, - "Scheme": { - "(": 366, - "import": 1, - "rnrs": 1, - ")": 380, - "only": 1, - "surfage": 4, - "s1": 1, - "lists": 1, - "filter": 4, - "-": 192, - "map": 4, - "gl": 12, - "glut": 2, - "dharmalab": 2, - "records": 1, - "define": 30, - "record": 5, - "type": 5, - "math": 1, - "basic": 2, - "agave": 4, - "glu": 1, - "compat": 1, - "geometry": 1, - "pt": 49, - "glamour": 2, - "window": 2, - "misc": 1, - "s19": 1, - "time": 24, - "s27": 1, - "random": 27, - "bits": 1, - "s42": 1, - "eager": 1, - "comprehensions": 1, - ";": 1684, - "utilities": 1, - "say": 9, - ".": 2, - "args": 2, - "for": 7, - "each": 7, - "display": 4, - "newline": 2, - "translate": 6, - "p": 6, - "glTranslated": 1, - "x": 10, - "y": 3, - "radians": 8, - "/": 7, - "pi": 2, - "degrees": 2, - "angle": 6, - "a": 19, - "cos": 1, - "sin": 1, - "current": 15, - "in": 14, - "nanoseconds": 2, - "let": 2, - "val": 3, - "+": 28, - "second": 1, - "nanosecond": 1, - "seconds": 12, - "micro": 1, - "milli": 1, - "base": 2, - "step": 1, - "score": 5, - "level": 5, - "ships": 1, - "spaceship": 5, - "fields": 4, - "mutable": 14, - "pos": 16, - "vel": 4, - "theta": 1, - "force": 1, - "particle": 8, - "birth": 2, - "lifetime": 1, - "color": 2, - "particles": 11, - "asteroid": 14, - "radius": 6, - "number": 3, - "of": 3, - "starting": 3, - "asteroids": 15, - "#f": 5, - "bullet": 16, - "pack": 12, - "is": 8, - "initialize": 1, - "size": 1, - "title": 1, - "reshape": 1, - "width": 8, - "height": 8, - "source": 2, - "randomize": 1, - "default": 1, - "wrap": 4, - "mod": 2, - "ship": 8, - "make": 11, - "ammo": 9, - "set": 19, - "list": 6, - "ec": 6, - "i": 6, - "inexact": 16, - "integer": 25, - "buffered": 1, - "procedure": 1, - "lambda": 12, - "background": 1, - "glColor3f": 5, - "matrix": 5, - "excursion": 5, - "ship.pos": 5, - "glRotated": 2, - "ship.theta": 10, - "glutWireCone": 1, - "par": 6, - "c": 4, - "vector": 6, - "ref": 3, - "glutWireSphere": 3, - "bullets": 7, - "pack.pos": 3, - "glutWireCube": 1, - "last": 3, - "dt": 7, - "update": 2, - "system": 2, - "pt*n": 8, - "ship.vel": 5, - "pack.vel": 1, - "cond": 2, - "par.birth": 1, - "par.lifetime": 1, - "else": 2, - "par.pos": 2, - "par.vel": 1, - "bullet.birth": 1, - "bullet.pos": 2, - "bullet.vel": 1, - "a.pos": 2, - "a.vel": 1, - "if": 1, - "<": 1, - "a.radius": 1, - "contact": 2, - "b": 4, - "when": 5, - "<=>": 3, - "distance": 3, - "begin": 2, - "1": 2, - "f": 1, - "append": 4, - "4": 1, - "50": 4, - "0": 7, - "100": 6, - "2": 1, - "n": 2, - "null": 1, - "10": 1, - "5": 1, - "glutIdleFunc": 1, - "glutPostRedisplay": 1, - "glutKeyboardFunc": 1, - "key": 2, - "case": 1, - "char": 1, - "#": 6, - "w": 1, - "d": 1, - "s": 1, - "space": 1, - "cons": 1, - "glutMainLoop": 1, - "library": 1, - "libs": 1, - "export": 1, - "list2": 2, - "objs": 2, - "should": 1, - "not": 1, - "be": 1, - "exported": 1 - }, - "Scilab": { - "function": 1, - "[": 1, - "a": 4, - "b": 4, - "]": 1, - "myfunction": 1, - "(": 7, - "d": 2, - "e": 4, - "f": 2, - ")": 7, - "+": 5, - "%": 4, - "pi": 3, - ";": 7, - "cos": 1, - "cosh": 1, - "if": 1, - "then": 1, - "-": 2, - "e.field": 1, - "else": 1, - "home": 1, - "return": 1, - "end": 1, - "myvar": 1, - "endfunction": 1, - "disp": 1, - "assert_checkequal": 1, - "assert_checkfalse": 1 - }, - "SCSS": { - "blue": 4, - "#3bbfce": 1, - ";": 7, - "margin": 4, - "px": 1, - ".content": 1, - "-": 3, - "navigation": 1, - "{": 2, - "border": 2, - "color": 3, - "darken": 1, - "(": 1, - "%": 1, - ")": 1, - "}": 2, - ".border": 1, - "padding": 1, - "/": 2 - }, - "Shell": { - "SHEBANG#!bash": 8, - "typeset": 5, - "-": 391, - "i": 2, - "n": 22, - "bottles": 6, - "no": 16, - "while": 3, - "[": 85, - "]": 85, - "do": 8, - "echo": 71, - "case": 9, - "{": 63, - "}": 61, - "in": 25, - ")": 154, - "%": 5, - "s": 14, - ";": 138, - "esac": 7, - "done": 8, - "exit": 10, - "/usr/bin/clear": 2, - "##": 28, - "if": 39, - "z": 12, - "then": 41, - "export": 25, - "SCREENDIR": 2, - "fi": 34, - "PATH": 14, - "/usr/local/bin": 6, - "/usr/local/sbin": 6, - "/usr/xpg4/bin": 4, - "/usr/sbin": 6, - "/usr/bin": 8, - "/usr/sfw/bin": 4, - "/usr/ccs/bin": 4, - "/usr/openwin/bin": 4, - "/opt/mysql/current/bin": 4, - "MANPATH": 2, - "/usr/local/man": 2, - "/usr/share/man": 2, - "Random": 2, - "ENV...": 2, - "TERM": 4, - "COLORTERM": 2, - "CLICOLOR": 2, - "#": 53, - "can": 3, - "be": 3, - "set": 21, - "to": 33, - "anything": 2, - "actually": 2, - "DISPLAY": 2, - "r": 17, - "&&": 65, - ".": 5, - "function": 6, - "ls": 6, - "command": 5, - "Fh": 2, - "l": 8, - "list": 3, - "long": 2, - "format...": 2, - "ll": 2, - "|": 17, - "less": 2, - "XF": 2, - "pipe": 2, - "into": 3, - "#CDPATH": 2, - "HISTIGNORE": 2, - "HISTCONTROL": 2, - "ignoreboth": 2, - "shopt": 13, - "cdspell": 2, - "extglob": 2, - "progcomp": 2, - "complete": 82, - "f": 68, - "X": 54, - "bunzip2": 2, - "bzcat": 2, - "bzcmp": 2, - "bzdiff": 2, - "bzegrep": 2, - "bzfgrep": 2, - "bzgrep": 2, - "unzip": 2, - "zipinfo": 2, - "compress": 2, - "znew": 2, - "gunzip": 2, - "zcmp": 2, - "zdiff": 2, - "zcat": 2, - "zegrep": 2, - "zfgrep": 2, - "zgrep": 2, - "zless": 2, - "zmore": 2, - "uncompress": 2, - "ee": 2, - "display": 2, - "xv": 2, - "qiv": 2, - "gv": 2, - "ggv": 2, - "xdvi": 2, - "dvips": 2, - "dviselect": 2, - "dvitype": 2, - "acroread": 2, - "xpdf": 2, - "makeinfo": 2, - "texi2html": 2, - "tex": 2, - "latex": 2, - "slitex": 2, - "jadetex": 2, - "pdfjadetex": 2, - "pdftex": 2, - "pdflatex": 2, - "texi2dvi": 2, - "mpg123": 2, - "mpg321": 2, - "xine": 2, - "aviplay": 2, - "realplay": 2, - "xanim": 2, - "ogg123": 2, - "gqmpeg": 2, - "freeamp": 2, - "xmms": 2, - "xfig": 2, - "timidity": 2, - "playmidi": 2, - "vi": 2, - "vim": 2, - "gvim": 2, - "rvim": 2, - "view": 2, - "rview": 2, - "rgvim": 2, - "rgview": 2, - "gview": 2, - "emacs": 2, - "wine": 2, - "bzme": 2, - "netscape": 2, - "mozilla": 2, - "lynx": 2, - "opera": 2, - "w3m": 2, - "galeon": 2, - "curl": 8, - "dillo": 2, - "elinks": 2, - "links": 2, - "u": 2, - "su": 2, - "passwd": 2, - "groups": 2, - "user": 2, - "commands": 8, - "see": 4, - "only": 6, - "users": 2, - "A": 10, - "stopped": 4, - "P": 4, - "bg": 4, - "completes": 10, - "with": 12, - "jobs": 4, - "j": 2, - "fg": 2, - "disown": 2, - "other": 2, - "job": 3, - "v": 11, - "readonly": 4, - "unset": 10, - "and": 5, - "shell": 4, - "variables": 2, - "setopt": 8, - "options": 8, - "helptopic": 2, - "help": 5, - "helptopics": 2, - "a": 12, - "unalias": 4, - "aliases": 2, - "binding": 2, - "bind": 4, - "readline": 2, - "bindings": 2, - "(": 107, - "make": 6, - "this": 6, - "more": 3, - "intelligent": 2, - "c": 2, - "type": 5, - "which": 10, - "man": 6, - "#sudo": 2, - "on": 4, - "d": 9, - "pushd": 2, - "cd": 11, - "rmdir": 2, - "Make": 2, - "directory": 5, - "directories": 2, - "W": 2, - "alias": 42, - "filenames": 2, - "for": 7, - "PS1": 2, - "..": 2, - "cd..": 2, - "t": 3, - "csh": 2, - "is": 11, - "same": 2, - "as": 2, - "bash...": 2, - "quit": 2, - "q": 8, - "even": 3, - "shorter": 2, - "D": 2, - "rehash": 2, - "source": 7, - "/.bashrc": 3, - "after": 2, - "I": 2, - "edit": 2, - "it": 2, - "pg": 2, - "patch": 2, - "sed": 2, - "awk": 2, - "diff": 2, - "grep": 8, - "find": 2, - "ps": 2, - "whoami": 2, - "ping": 2, - "histappend": 2, - "PROMPT_COMMAND": 2, - "umask": 2, - "path": 13, - "/opt/local/bin": 2, - "/opt/local/sbin": 2, - "/bin": 4, - "prompt": 2, - "history": 18, - "endif": 2, - "stty": 2, - "istrip": 2, - "dirpersiststore": 2, - "##############################################################################": 16, - "#Import": 2, - "the": 17, - "agnostic": 2, - "Bash": 3, - "or": 3, - "Zsh": 2, - "environment": 2, - "config": 4, - "/.profile": 2, - "HISTSIZE": 2, - "#How": 2, - "many": 2, - "lines": 2, - "of": 6, - "keep": 3, - "memory": 3, - "HISTFILE": 2, - "/.zsh_history": 2, - "#Where": 2, - "save": 4, - "disk": 5, - "SAVEHIST": 2, - "#Number": 2, - "entries": 2, - "HISTDUP": 2, - "erase": 2, - "#Erase": 2, - "duplicates": 2, - "file": 9, - "appendhistory": 2, - "#Append": 2, - "overwriting": 2, - "sharehistory": 2, - "#Share": 2, - "across": 2, - "terminals": 2, - "incappendhistory": 2, - "#Immediately": 2, - "append": 2, - "not": 2, - "just": 2, - "when": 2, - "term": 2, - "killed": 2, - "#.": 2, - "/.dotfiles/z": 4, - "zsh/z.sh": 2, - "#function": 2, - "precmd": 2, - "rupa/z.sh": 2, - "fpath": 6, - "HOME/.zsh/func": 2, - "U": 2, - "docker": 1, - "version": 12, - "from": 1, - "ubuntu": 1, - "maintainer": 1, - "Solomon": 1, - "Hykes": 1, - "": 1, - "run": 13, - "apt": 6, - "get": 6, - "install": 8, - "y": 5, - "git": 16, - "https": 2, - "//go.googlecode.com/files/go1.1.1.linux": 1, - "amd64.tar.gz": 1, - "tar": 1, - "C": 1, - "/usr/local": 1, - "xz": 1, - "env": 4, - "/usr/local/go/bin": 2, - "/sbin": 2, - "GOPATH": 1, - "/go": 1, - "CGO_ENABLED": 1, - "/tmp": 1, - "t.go": 1, - "go": 2, - "test": 1, - "PKG": 12, - "github.com/kr/pty": 1, - "REV": 6, - "c699": 1, - "clone": 5, - "http": 3, - "//": 3, - "/go/src/": 6, - "checkout": 3, - "github.com/gorilla/context/": 1, - "d61e5": 1, - "github.com/gorilla/mux/": 1, - "b36453141c": 1, - "iptables": 1, - "/etc/apt/sources.list": 1, - "update": 2, - "lxc": 1, - "aufs": 1, - "tools": 1, - "add": 1, - "/go/src/github.com/dotcloud/docker": 1, - "/go/src/github.com/dotcloud/docker/docker": 1, - "ldflags": 1, - "/go/bin": 1, - "cmd": 1, - "pkgname": 1, - "stud": 4, - "pkgver": 1, - "pkgrel": 1, - "pkgdesc": 1, - "arch": 1, - "i686": 1, - "x86_64": 1, - "url": 4, - "license": 1, - "depends": 1, - "libev": 1, - "openssl": 1, - "makedepends": 1, - "provides": 1, - "conflicts": 1, - "_gitroot": 1, - "//github.com/bumptech/stud.git": 1, - "_gitname": 1, - "build": 2, - "msg": 4, - "pull": 3, - "origin": 1, - "else": 10, - "rm": 2, - "rf": 1, - "package": 1, - "PREFIX": 1, - "/usr": 1, - "DESTDIR": 1, - "Dm755": 1, - "init.stud": 1, - "mkdir": 2, - "p": 2, - "script": 1, - "dotfile": 1, - "repository": 3, - "does": 1, - "lot": 1, - "fun": 2, - "stuff": 3, - "like": 1, - "turning": 1, - "normal": 1, - "dotfiles": 1, - "eg": 1, - ".bashrc": 1, - "symlinks": 1, - "away": 1, - "optionally": 1, - "moving": 1, - "old": 4, - "files": 1, - "so": 1, - "that": 1, - "they": 1, - "preserved": 1, - "setting": 2, - "up": 1, - "cron": 1, - "automate": 1, - "aforementioned": 1, - "maybe": 1, - "some": 1, - "nocasematch": 1, - "This": 1, - "makes": 1, - "pattern": 1, - "matching": 1, - "insensitive": 1, - "POSTFIX": 1, - "URL": 1, - "PUSHURL": 1, - "overwrite": 3, - "true": 2, - "print_help": 2, - "e": 4, - "opt": 3, - "@": 3, - "k": 1, - "local": 22, - "false": 2, - "h": 3, - ".*": 2, - "o": 3, - "continue": 1, - "mv": 1, - "ln": 1, - "remote.origin.url": 1, - "remote.origin.pushurl": 1, - "crontab": 1, - ".jobs.cron": 1, - "x": 1, - "system": 1, - "exec": 3, - "rbenv": 2, - "versions": 1, - "bare": 1, - "&": 5, - "prefix": 1, - "/dev/null": 6, - "rvm_ignore_rvmrc": 1, - "declare": 22, - "rvmrc": 3, - "rvm_rvmrc_files": 3, - "ef": 1, - "+": 1, - "GREP_OPTIONS": 1, - "printf": 4, - "rvm_path": 4, - "UID": 1, - "elif": 4, - "rvm_is_not_a_shell_function": 2, - "rvm_path/scripts": 1, - "rvm": 1, - "sbt_release_version": 2, - "sbt_snapshot_version": 2, - "SNAPSHOT": 3, - "sbt_jar": 3, - "sbt_dir": 2, - "sbt_create": 2, - "sbt_snapshot": 1, - "sbt_launch_dir": 3, - "scala_version": 3, - "java_home": 1, - "sbt_explicit_version": 7, - "verbose": 6, - "debug": 11, - "quiet": 6, - "build_props_sbt": 3, - "project/build.properties": 9, - "versionLine": 2, - "sbt.version": 3, - "versionString": 3, - "versionLine##sbt.version": 1, - "update_build_props_sbt": 2, - "ver": 5, - "return": 3, - "perl": 3, - "pi": 1, - "||": 12, - "Updated": 1, - "Previous": 1, - "value": 1, - "was": 1, - "sbt_version": 8, - "echoerr": 3, - "vlog": 1, - "dlog": 8, - "get_script_path": 2, - "L": 1, - "target": 1, - "readlink": 1, - "get_mem_opts": 3, - "mem": 4, - "perm": 6, - "/": 2, - "<": 2, - "codecache": 1, - "die": 2, - "make_url": 3, - "groupid": 1, - "category": 1, - "default_jvm_opts": 1, - "default_sbt_opts": 1, - "default_sbt_mem": 2, - "noshare_opts": 1, - "sbt_opts_file": 1, - "jvm_opts_file": 1, - "latest_28": 1, - "latest_29": 1, - "latest_210": 1, - "script_path": 1, - "script_dir": 1, - "script_name": 2, - "java_cmd": 2, - "java": 2, - "sbt_mem": 5, - "residual_args": 4, - "java_args": 3, - "scalac_args": 4, - "sbt_commands": 2, - "build_props_scala": 1, - "build.scala.versions": 1, - "versionLine##build.scala.versions": 1, - "execRunner": 2, - "arg": 3, - "sbt_groupid": 3, - "*": 11, - "org.scala": 4, - "tools.sbt": 3, - "sbt": 18, - "sbt_artifactory_list": 2, - "version0": 2, - "F": 1, - "pe": 1, - "make_release_url": 2, - "releases": 1, - "make_snapshot_url": 2, - "snapshots": 1, - "head": 1, - "jar_url": 1, - "jar_file": 1, - "download_url": 2, - "jar": 3, - "dirname": 1, - "fail": 1, - "silent": 1, - "output": 1, - "wget": 2, - "O": 1, - "acquire_sbt_jar": 1, - "sbt_url": 1, - "usage": 2, - "cat": 3, - "<<": 2, - "EOM": 3, - "Usage": 1, - "print": 1, - "message": 1, - "runner": 1, - "chattier": 1, - "log": 2, - "level": 2, - "Debug": 1, - "Error": 1, - "colors": 2, - "disable": 1, - "ANSI": 1, - "color": 1, - "codes": 1, - "create": 2, - "start": 1, - "current": 1, - "contains": 2, - "project": 1, - "dir": 3, - "": 3, - "global": 1, - "settings/plugins": 1, - "default": 4, - "/.sbt/": 1, - "": 1, - "boot": 3, - "shared": 1, - "/.sbt/boot": 1, - "series": 1, - "ivy": 2, - "Ivy": 1, - "/.ivy2": 1, - "": 1, - "share": 2, - "use": 1, - "all": 1, - "caches": 1, - "sharing": 1, - "offline": 3, - "put": 1, - "mode": 2, - "jvm": 2, - "": 1, - "Turn": 1, - "JVM": 1, - "debugging": 1, - "open": 1, - "at": 1, - "given": 2, - "port.": 1, - "batch": 2, - "Disable": 1, - "interactive": 1, - "The": 1, - "way": 1, - "accomplish": 1, - "pre": 1, - "there": 2, - "build.properties": 1, - "an": 1, - "property": 1, - "disk.": 1, - "That": 1, - "scalacOptions": 3, - "S": 2, - "stripped": 1, - "In": 1, - "duplicated": 1, - "conflicting": 1, - "order": 1, - "above": 1, - "shows": 1, - "precedence": 1, - "JAVA_OPTS": 1, - "lowest": 1, - "line": 1, - "highest.": 1, - "addJava": 9, - "addSbt": 12, - "addScalac": 2, - "addResidual": 2, - "addResolver": 1, - "addDebugger": 2, - "get_jvm_opts": 2, - "process_args": 2, - "require_arg": 12, - "gt": 1, - "shift": 28, - "integer": 1, - "inc": 1, - "port": 1, - "snapshot": 1, - "launch": 1, - "scala": 3, - "home": 2, - "D*": 1, - "J*": 1, - "S*": 1, - "sbtargs": 3, - "IFS": 1, - "read": 1, - "<\"$sbt_opts_file\">": 1, - "process": 1, - "combined": 1, - "args": 2, - "reset": 1, - "residuals": 1, - "argumentCount=": 1, - "we": 1, - "were": 1, - "any": 1, - "opts": 1, - "eq": 1, - "0": 1, - "ThisBuild": 1, - "Update": 1, - "properties": 1, - "explicit": 1, - "gives": 1, - "us": 1, - "choice": 1, - "Detected": 1, - "Overriding": 1, - "alert": 1, - "them": 1, - "here": 1, - "argumentCount": 1, - "./build.sbt": 1, - "./project": 1, - "pwd": 1, - "doesn": 1, - "understand": 1, - "iflast": 1, - "#residual_args": 1, - "SHEBANG#!sh": 2, - "SHEBANG#!zsh": 2, - "name": 1, - "foodforthought.jpg": 1, - "name##*fo": 1 - }, - "ShellSession": { - "echo": 2, - "FOOBAR": 2, - "Hello": 2, - "World": 2, - "gem": 4, - "install": 4, - "nokogiri": 6, - "...": 4, - "Building": 2, - "native": 2, - "extensions.": 2, - "This": 4, - "could": 2, - "take": 2, - "a": 4, - "while...": 2, - "checking": 1, - "for": 4, - "libxml/parser.h...": 1, - "***": 2, - "extconf.rb": 1, - "failed": 1, - "Could": 2, - "not": 2, - "create": 1, - "Makefile": 1, - "due": 1, - "to": 3, - "some": 1, - "reason": 2, - "probably": 1, - "lack": 1, - "of": 2, - "necessary": 1, - "libraries": 1, - "and/or": 1, - "headers.": 1, - "Check": 1, - "the": 2, - "mkmf.log": 1, - "file": 1, - "more": 1, - "details.": 1, - "You": 1, - "may": 1, - "need": 1, - "configuration": 1, - "options.": 1, - "brew": 2, - "tap": 2, - "homebrew/dupes": 1, - "Cloning": 1, - "into": 1, - "remote": 3, - "Counting": 1, - "objects": 3, - "done.": 4, - "Compressing": 1, - "%": 5, - "(": 6, - "/591": 1, - ")": 6, - "Total": 1, - "delta": 2, - "reused": 1, - "Receiving": 1, - "/1034": 1, - "KiB": 1, - "|": 1, - "bytes/s": 1, - "Resolving": 1, - "deltas": 1, - "/560": 1, - "Checking": 1, - "connectivity...": 1, - "done": 1, - "Warning": 1, - "homebrew/dupes/lsof": 1, - "over": 1, - "mxcl/master/lsof": 1, - "Tapped": 1, - "formula": 4, - "apple": 1, - "-": 12, - "gcc42": 1, - "Downloading": 1, - "http": 2, - "//r.research.att.com/tools/gcc": 1, - "darwin11.pkg": 1, - "########################################################################": 1, - "Caveats": 1, - "NOTE": 1, - "provides": 1, - "components": 1, - "that": 1, - "were": 1, - "removed": 1, - "from": 3, - "XCode": 2, - "in": 2, - "release.": 1, - "There": 1, - "is": 2, - "no": 1, - "this": 1, - "if": 1, - "you": 1, - "are": 1, - "using": 1, - "version": 1, - "prior": 1, - "contains": 1, - "compilers": 2, - "built": 2, - "Apple": 1, - "s": 1, - "GCC": 1, - "sources": 1, - "build": 1, - "available": 1, - "//opensource.apple.com/tarballs/gcc": 1, - "All": 1, - "have": 1, - "suffix.": 1, - "A": 1, - "GFortran": 1, - "compiler": 1, - "also": 1, - "included.": 1, - "Summary": 1, - "/usr/local/Cellar/apple": 1, - "gcc42/4.2.1": 1, - "files": 1, - "M": 1, - "seconds": 1, - "v": 1, - "Fetching": 1, - "Successfully": 1, - "installed": 2, - "Installing": 2, - "ri": 1, - "documentation": 2, - "RDoc": 1 - }, - "Shen": { - "*": 47, - "graph.shen": 1, - "-": 747, - "a": 30, - "library": 3, - "for": 12, - "graph": 52, - "definition": 1, - "and": 16, - "manipulation": 1, - "Copyright": 2, - "(": 267, - "C": 6, - ")": 250, - "Eric": 2, - "Schulte": 2, - "***": 5, - "License": 2, - "Redistribution": 2, - "use": 2, - "in": 13, - "source": 4, - "binary": 4, - "forms": 2, - "with": 8, - "or": 2, - "without": 2, - "modification": 2, - "are": 7, - "permitted": 2, - "provided": 4, - "that": 3, - "the": 29, - "following": 6, - "conditions": 6, - "met": 2, - "Redistributions": 4, - "of": 20, - "code": 2, - "must": 4, - "retain": 2, - "above": 4, - "copyright": 4, - "notice": 4, - "this": 4, - "list": 32, - "disclaimer.": 2, - "form": 2, - "reproduce": 2, - "disclaimer": 2, - "documentation": 2, - "and/or": 2, - "other": 2, - "materials": 2, - "distribution.": 2, - "THIS": 4, - "SOFTWARE": 4, - "IS": 2, - "PROVIDED": 2, - "BY": 2, - "THE": 10, - "COPYRIGHT": 4, - "HOLDERS": 2, - "AND": 8, - "CONTRIBUTORS": 4, - "ANY": 8, - "EXPRESS": 2, - "OR": 16, - "IMPLIED": 4, - "WARRANTIES": 4, - "INCLUDING": 6, - "BUT": 4, - "NOT": 4, - "LIMITED": 4, - "TO": 4, - "OF": 16, - "MERCHANTABILITY": 2, - "FITNESS": 2, - "FOR": 4, - "A": 32, - "PARTICULAR": 2, - "PURPOSE": 2, - "ARE": 2, - "DISCLAIMED.": 2, - "IN": 6, - "NO": 2, - "EVENT": 2, - "SHALL": 2, - "HOLDER": 2, - "BE": 2, - "LIABLE": 2, - "DIRECT": 2, - "INDIRECT": 2, - "INCIDENTAL": 2, - "SPECIAL": 2, - "EXEMPLARY": 2, - "CONSEQUENTIAL": 2, - "DAMAGES": 2, - "PROCUREMENT": 2, - "SUBSTITUTE": 2, - "GOODS": 2, - "SERVICES": 2, - ";": 12, - "LOSS": 2, - "USE": 4, - "DATA": 2, - "PROFITS": 2, - "BUSINESS": 2, - "INTERRUPTION": 2, - "HOWEVER": 2, - "CAUSED": 2, - "ON": 2, - "THEORY": 2, - "LIABILITY": 4, - "WHETHER": 2, - "CONTRACT": 2, - "STRICT": 2, - "TORT": 2, - "NEGLIGENCE": 2, - "OTHERWISE": 2, - "ARISING": 2, - "WAY": 2, - "OUT": 2, - "EVEN": 2, - "IF": 2, - "ADVISED": 2, - "POSSIBILITY": 2, - "SUCH": 2, - "DAMAGE.": 2, - "Commentary": 2, - "Graphs": 1, - "represented": 1, - "as": 2, - "two": 1, - "dictionaries": 1, - "one": 2, - "vertices": 17, - "edges.": 1, - "It": 1, - "is": 5, - "important": 1, - "to": 16, - "note": 1, - "dictionary": 3, - "implementation": 1, - "used": 2, - "able": 1, - "accept": 1, - "arbitrary": 1, - "data": 17, - "structures": 1, - "keys.": 1, - "This": 1, - "structure": 2, - "technically": 1, - "encodes": 1, - "hypergraphs": 1, - "generalization": 1, - "graphs": 1, - "which": 1, - "each": 1, - "edge": 32, - "may": 1, - "contain": 2, - "any": 1, - "number": 12, - ".": 1, - "Examples": 1, - "regular": 1, - "G": 25, - "hypergraph": 1, - "H": 3, - "corresponding": 1, - "given": 4, - "below.": 1, - "": 3, - "Vertices": 11, - "Edges": 9, - "+": 33, - "Graph": 65, - "hash": 8, - "|": 103, - "key": 9, - "value": 17, - "b": 13, - "c": 11, - "g": 19, - "[": 93, - "]": 91, - "d": 12, - "e": 14, - "f": 10, - "Hypergraph": 1, - "h": 3, - "i": 3, - "j": 2, - "associated": 1, - "edge/vertex": 1, - "@p": 17, - "V": 48, - "#": 4, - "E": 20, - "edges": 17, - "M": 4, - "vertex": 29, - "associations": 1, - "size": 2, - "all": 3, - "stored": 1, - "dict": 39, - "sizeof": 4, - "int": 1, - "indices": 1, - "into": 1, - "&": 1, - "Edge": 11, - "dicts": 3, - "entry": 2, - "storage": 2, - "Vertex": 3, - "Code": 1, - "require": 2, - "sequence": 2, - "datatype": 1, - "dictoinary": 1, - "vector": 4, - "symbol": 1, - "package": 2, - "add": 25, - "has": 5, - "neighbors": 8, - "connected": 21, - "components": 8, - "partition": 7, - "bipartite": 3, - "included": 2, - "from": 3, - "take": 2, - "drop": 2, - "while": 2, - "range": 1, - "flatten": 1, - "filter": 2, - "complement": 1, - "seperate": 1, - "zip": 1, - "indexed": 1, - "reduce": 3, - "mapcon": 3, - "unique": 3, - "frequencies": 1, - "shuffle": 1, - "pick": 1, - "remove": 2, - "first": 2, - "interpose": 1, - "subset": 3, - "cartesian": 1, - "product": 1, - "<-dict>": 5, - "contents": 1, - "keys": 3, - "vals": 1, - "make": 10, - "define": 34, - "X": 4, - "<-address>": 5, - "0": 1, - "create": 1, - "specified": 1, - "sizes": 2, - "}": 22, - "Vertsize": 2, - "Edgesize": 2, - "let": 9, - "absvector": 1, - "do": 8, - "address": 5, - "defmacro": 3, - "macro": 3, - "return": 4, - "taking": 1, - "optional": 1, - "N": 7, - "vert": 12, - "1": 1, - "2": 3, - "{": 15, - "get": 3, - "Value": 3, - "if": 8, - "tuple": 3, - "fst": 3, - "error": 7, - "string": 3, - "resolve": 6, - "Vector": 2, - "Index": 2, - "Place": 6, - "nth": 1, - "<-vector>": 2, - "Vert": 5, - "Val": 5, - "trap": 4, - "snd": 2, - "map": 5, - "lambda": 1, - "w": 4, - "B": 2, - "Data": 2, - "w/o": 5, - "D": 4, - "update": 5, - "an": 3, - "s": 1, - "Vs": 4, - "Store": 6, - "<": 4, - "limit": 2, - "VertLst": 2, - "/.": 4, - "Contents": 5, - "adjoin": 2, - "length": 5, - "EdgeID": 3, - "EdgeLst": 2, - "p": 1, - "boolean": 4, - "Return": 1, - "Already": 5, - "New": 5, - "Reachable": 2, - "difference": 3, - "append": 1, - "including": 1, - "itself": 1, - "fully": 1, - "Acc": 2, - "true": 1, - "_": 1, - "VS": 4, - "Component": 6, - "ES": 3, - "Con": 8, - "verts": 4, - "cons": 1, - "place": 3, - "partitions": 1, - "element": 2, - "simple": 3, - "CS": 3, - "Neighbors": 3, - "empty": 1, - "intersection": 1, - "check": 1, - "tests": 1, - "set": 1, - "chris": 6, - "patton": 2, - "eric": 1, - "nobody": 2, - "fail": 1, - "when": 1, - "wrapper": 1, - "function": 1, - "html.shen": 1, - "html": 2, - "generation": 1, - "functions": 1, - "shen": 1, - "The": 1, - "standard": 1, - "lisp": 1, - "conversion": 1, - "tool": 1, - "suite.": 1, - "Follows": 1, - "some": 1, - "convertions": 1, - "Clojure": 1, - "tasks": 1, - "stuff": 1, - "todo1": 1, - "today": 1, - "attributes": 1, - "AS": 1, - "load": 1, - "JSON": 1, - "Lexer": 1, - "Read": 1, - "stream": 1, - "characters": 4, - "Whitespace": 4, - "not": 1, - "strings": 2, - "should": 2, - "be": 2, - "discarded.": 1, - "preserved": 1, - "Strings": 1, - "can": 1, - "escaped": 1, - "double": 1, - "quotes.": 1, - "e.g.": 2, - "whitespacep": 2, - "ASCII": 2, - "Space.": 1, - "All": 1, - "others": 1, - "whitespace": 7, - "table.": 1, - "Char": 4, - "member": 1, - "replace": 3, - "@s": 4, - "Suffix": 4, - "where": 2, - "Prefix": 2, - "fetch": 1, - "until": 1, - "unescaped": 1, - "doublequote": 1, - "c#34": 5, - "WhitespaceChar": 2, - "Chars": 4, - "strip": 2, - "chars": 2, - "tokenise": 1, - "JSONString": 2, - "CharList": 2, - "explode": 1 - }, - "Slash": { - "<%>": 1, - "class": 11, - "Env": 1, - "def": 18, - "init": 4, - "memory": 3, - "ptr": 9, - "0": 3, - "ptr=": 1, - "current_value": 5, - "current_value=": 1, - "value": 1, - "AST": 4, - "Next": 1, - "eval": 10, - "env": 16, - "Prev": 1, - "Inc": 1, - "Dec": 1, - "Output": 1, - "print": 1, - "char": 5, - "Input": 1, - "Sequence": 2, - "nodes": 6, - "for": 2, - "node": 2, - "in": 2, - "Loop": 1, - "seq": 4, - "while": 1, - "Parser": 1, - "str": 2, - "chars": 2, - "split": 1, - "parse": 1, - "stack": 3, - "_parse_char": 2, - "if": 1, - "length": 1, - "1": 1, - "throw": 1, - "SyntaxError": 1, - "new": 2, - "unexpected": 2, - "end": 1, - "of": 1, - "input": 1, - "last": 1, - "switch": 1, - "<": 1, - "+": 1, - "-": 1, - ".": 1, - "[": 1, - "]": 1, - ")": 7, - ";": 6, - "}": 3, - "@stack.pop": 1, - "_add": 1, - "(": 6, - "Loop.new": 1, - "Sequence.new": 1, - "src": 2, - "File.read": 1, - "ARGV.first": 1, - "ast": 1, - "Parser.new": 1, - ".parse": 1, - "ast.eval": 1, - "Env.new": 1 - }, - "Smalltalk": { - "Object": 1, - "subclass": 2, - "#Philosophers": 1, - "instanceVariableNames": 1, - "classVariableNames": 1, - "poolDictionaries": 1, - "category": 1, - "Philosophers": 3, - "class": 1, - "methodsFor": 2, - "new": 4, - "self": 25, - "shouldNotImplement": 1, - "quantity": 2, - "super": 1, - "initialize": 3, - "dine": 4, - "seconds": 2, - "(": 19, - "Delay": 3, - "forSeconds": 1, - ")": 19, - "wait.": 5, - "philosophers": 2, - "do": 1, - "[": 18, - "each": 5, - "|": 18, - "terminate": 1, - "]": 18, - ".": 16, - "size": 4, - "leftFork": 6, - "n": 11, - "forks": 5, - "at": 3, - "rightFork": 6, - "ifTrue": 1, - "ifFalse": 1, - "+": 1, - "eating": 3, - "Semaphore": 2, - "new.": 2, - "-": 1, - "timesRepeat": 1, - "signal": 1, - "randy": 3, - "Random": 1, - "to": 2, - "collect": 2, - "forMutualExclusion": 1, - "philosopher": 2, - "philosopherCode": 3, - "status": 8, - "n.": 2, - "printString": 1, - "true": 2, - "whileTrue": 1, - "Transcript": 5, - "nextPutAll": 5, - ";": 8, - "nl.": 5, - "forMilliseconds": 2, - "next": 2, - "*": 2, - "critical": 1, - "signal.": 2, - "newProcess": 1, - "priority": 1, - "Processor": 1, - "userBackgroundPriority": 1, - "name": 1, - "resume": 1, - "yourself": 1, - "Koan": 1, - "TestBasic": 1, - "": 1, - "A": 1, - "collection": 1, - "of": 1, - "introductory": 1, - "tests": 2, - "testDeclarationAndAssignment": 1, - "declaration": 2, - "anotherDeclaration": 2, - "_": 1, - "expect": 10, - "fillMeIn": 10, - "toEqual": 10, - "declaration.": 1, - "anotherDeclaration.": 1, - "testEqualSignIsNotAnAssignmentOperator": 1, - "variableA": 6, - "variableB": 5, - "value": 2, - "variableB.": 2, - "testMultipleStatementsInASingleLine": 1, - "variableC": 2, - "variableA.": 1, - "variableC.": 1, - "testInequality": 1, - "testLogicalOr": 1, - "expression": 4, - "<": 2, - "expression.": 2, - "testLogicalAnd": 1, - "&": 1, - "testNot": 1, - "not.": 1, - "testSimpleChainMatches": 1, - "e": 11, - "eCtrl": 3, - "eventKey": 3, - "e.": 1, - "ctrl": 5, - "true.": 1, - "assert": 2, - "matches": 4, - "{": 4, - "}": 4, - "eCtrl.": 2, - "deny": 2, - "a": 1 - }, - "SourcePawn": { - "//#define": 1, - "DEBUG": 2, - "#if": 1, - "defined": 1, - "#define": 7, - "assert": 2, - "(": 233, - "%": 18, - ")": 234, - "if": 44, - "ThrowError": 2, - ";": 213, - "assert_msg": 2, - "#else": 1, - "#endif": 1, - "#pragma": 1, - "semicolon": 1, - "#include": 3, - "": 1, - "": 1, - "": 1, - "public": 21, - "Plugin": 1, - "myinfo": 1, - "{": 73, - "name": 7, - "author": 1, - "description": 1, - "version": 1, - "SOURCEMOD_VERSION": 1, - "url": 1, - "}": 71, - "new": 62, - "Handle": 51, - "g_Cvar_Winlimit": 5, - "INVALID_HANDLE": 56, - "g_Cvar_Maxrounds": 5, - "g_Cvar_Fraglimit": 6, - "g_Cvar_Bonusroundtime": 6, - "g_Cvar_StartTime": 3, - "g_Cvar_StartRounds": 5, - "g_Cvar_StartFrags": 3, - "g_Cvar_ExtendTimeStep": 2, - "g_Cvar_ExtendRoundStep": 2, - "g_Cvar_ExtendFragStep": 2, - "g_Cvar_ExcludeMaps": 3, - "g_Cvar_IncludeMaps": 2, - "g_Cvar_NoVoteMode": 2, - "g_Cvar_Extend": 2, - "g_Cvar_DontChange": 2, - "g_Cvar_EndOfMapVote": 8, - "g_Cvar_VoteDuration": 3, - "g_Cvar_RunOff": 2, - "g_Cvar_RunOffPercent": 2, - "g_VoteTimer": 7, - "g_RetryTimer": 4, - "g_MapList": 8, - "g_NominateList": 7, - "g_NominateOwners": 7, - "g_OldMapList": 7, - "g_NextMapList": 2, - "g_VoteMenu": 1, - "g_Extends": 2, - "g_TotalRounds": 7, - "bool": 10, - "g_HasVoteStarted": 7, - "g_WaitingForVote": 4, - "g_MapVoteCompleted": 9, - "g_ChangeMapAtRoundEnd": 6, - "g_ChangeMapInProgress": 4, - "g_mapFileSerial": 3, - "-": 12, - "g_NominateCount": 3, - "MapChange": 4, - "g_ChangeTime": 1, - "g_NominationsResetForward": 3, - "g_MapVoteStartedForward": 2, - "MAXTEAMS": 4, - "g_winCount": 4, - "[": 19, - "]": 19, - "VOTE_EXTEND": 1, - "VOTE_DONTCHANGE": 1, - "OnPluginStart": 1, - "LoadTranslations": 2, - "arraySize": 5, - "ByteCountToCells": 1, - "PLATFORM_MAX_PATH": 6, - "CreateArray": 5, - "CreateConVar": 15, - "_": 18, - "true": 26, - "RegAdminCmd": 2, - "Command_Mapvote": 2, - "ADMFLAG_CHANGEMAP": 2, - "Command_SetNextmap": 2, - "FindConVar": 4, - "||": 15, - "decl": 5, - "String": 11, - "folder": 5, - "GetGameFolderName": 1, - "sizeof": 6, - "strcmp": 3, - "HookEvent": 6, - "Event_TeamPlayWinPanel": 3, - "Event_TFRestartRound": 2, - "else": 5, - "Event_RoundEnd": 3, - "Event_PlayerDeath": 2, - "AutoExecConfig": 1, - "//Change": 1, - "the": 5, - "mp_bonusroundtime": 1, - "max": 1, - "so": 1, - "that": 2, - "we": 2, - "have": 2, - "time": 9, - "to": 4, - "display": 2, - "vote": 6, - "//If": 1, - "you": 1, - "a": 1, - "during": 2, - "bonus": 2, - "good": 1, - "defaults": 1, - "are": 1, - "duration": 1, - "and": 1, - "mp_bonustime": 1, - "SetConVarBounds": 1, - "ConVarBound_Upper": 1, - "CreateGlobalForward": 2, - "ET_Ignore": 2, - "Param_String": 1, - "Param_Cell": 1, - "APLRes": 1, - "AskPluginLoad2": 1, - "myself": 1, - "late": 1, - "error": 1, - "err_max": 1, - "RegPluginLibrary": 1, - "CreateNative": 9, - "Native_NominateMap": 1, - "Native_RemoveNominationByMap": 1, - "Native_RemoveNominationByOwner": 1, - "Native_InitiateVote": 1, - "Native_CanVoteStart": 2, - "Native_CheckVoteDone": 2, - "Native_GetExcludeMapList": 2, - "Native_GetNominatedMapList": 2, - "Native_EndOfMapVoteEnabled": 2, - "return": 23, - "APLRes_Success": 1, - "OnConfigsExecuted": 1, - "ReadMapList": 1, - "MAPLIST_FLAG_CLEARARRAY": 1, - "|": 1, - "MAPLIST_FLAG_MAPSFOLDER": 1, - "LogError": 2, - "CreateNextVote": 1, - "SetupTimeleftTimer": 3, - "false": 8, - "ClearArray": 2, - "for": 9, - "i": 13, - "<": 5, - "+": 12, - "&&": 5, - "GetConVarInt": 10, - "GetConVarFloat": 2, - "<=>": 1, - "Warning": 1, - "Bonus": 1, - "Round": 1, - "Time": 2, - "shorter": 1, - "than": 1, - "Vote": 4, - "Votes": 1, - "round": 1, - "may": 1, - "not": 1, - "complete": 1, - "OnMapEnd": 1, - "map": 27, - "GetCurrentMap": 1, - "PushArrayString": 3, - "GetArraySize": 8, - "RemoveFromArray": 3, - "OnClientDisconnect": 1, - "client": 9, - "index": 8, - "FindValueInArray": 1, - "oldmap": 4, - "GetArrayString": 3, - "Call_StartForward": 1, - "Call_PushString": 1, - "Call_PushCell": 1, - "GetArrayCell": 2, - "Call_Finish": 1, - "Action": 3, - "args": 3, - "ReplyToCommand": 2, - "Plugin_Handled": 4, - "GetCmdArg": 1, - "IsMapValid": 1, - "ShowActivity": 1, - "LogAction": 1, - "SetNextMap": 1, - "OnMapTimeLeftChanged": 1, - "GetMapTimeLeft": 1, - "startTime": 4, - "*": 1, - "GetConVarBool": 6, - "InitiateVote": 8, - "MapChange_MapEnd": 6, - "KillTimer": 1, - "//g_VoteTimer": 1, - "CreateTimer": 3, - "float": 2, - "Timer_StartMapVote": 3, - "TIMER_FLAG_NO_MAPCHANGE": 4, - "data": 8, - "CreateDataTimer": 1, - "WritePackCell": 2, - "ResetPack": 1, - "timer": 2, - "Plugin_Stop": 2, - "mapChange": 2, - "ReadPackCell": 2, - "hndl": 2, - "event": 11, - "const": 4, - "dontBroadcast": 4, - "Timer_ChangeMap": 2, - "bluescore": 2, - "GetEventInt": 7, - "redscore": 2, - "StrEqual": 1, - "CheckMaxRounds": 3, - "switch": 1, - "case": 2, - "CheckWinLimit": 4, - "//We": 1, - "need": 2, - "do": 1, - "nothing": 1, - "on": 1, - "winning_team": 1, - "this": 1, - "indicates": 1, - "stalemate.": 1, - "default": 1, - "winner": 9, - "//": 3, - "Nuclear": 1, - "Dawn": 1, - "SetFailState": 1, - "winner_score": 2, - "winlimit": 3, - "roundcount": 2, - "maxrounds": 3, - "fragger": 3, - "GetClientOfUserId": 1, - "GetClientFrags": 1, - "when": 2, - "inputlist": 1, - "IsVoteInProgress": 1, - "Can": 1, - "t": 7, - "be": 1, - "excluded": 1, - "from": 1, - "as": 2, - "they": 1, - "weren": 1, - "nominationsToAdd": 1, - "Change": 2, - "Extend": 2, - "Map": 5, - "Voting": 7, - "next": 5, - "has": 5, - "started.": 1, - "SM": 5, - "Nextmap": 5, - "Started": 1, - "Current": 2, - "Extended": 1, - "finished.": 3, - "The": 1, - "current": 1, - "been": 1, - "extended.": 1, - "Stays": 1, - "was": 3, - "Finished": 1, - "s.": 1, - "Runoff": 2, - "Starting": 2, - "indecisive": 1, - "beginning": 1, - "runoff": 1, - "T": 3, - "Dont": 1, - "because": 1, - "outside": 1, - "request": 1, - "inputarray": 1, - "plugin": 5, - "numParams": 5, - "CanVoteStart": 1, - "array": 3, - "GetNativeCell": 3, - "size": 2, - "maparray": 3, - "ownerarray": 3, - "If": 1, - "optional": 1, - "parameter": 1, - "an": 1, - "owner": 1, - "list": 1, - "passed": 1, - "then": 1, - "fill": 1, - "out": 1, - "well": 1, - "PushArrayCell": 1 - }, "SQL": { "IF": 13, "EXISTS": 12, @@ -56885,9 +54784,35 @@ "rv": 1, "]": 1, "END": 1, + "use": 1, + "translog": 1, + ";": 31, + "VIEW": 1, + "suspendedtoday": 2, + "create": 2, + "view": 1, + "as": 1, + "select": 10, + "from": 2, + "suspended": 1, + "where": 2, + "datediff": 1, + "datetime": 10, + "now": 1, + "if": 1, + "not": 5, + "exists": 1, + "sysobjects": 1, + "name": 3, + "and": 1, + "type": 3, + "in": 1, + "exec": 1, + "%": 2, + "object_ddl": 1, + "go": 1, "SHOW": 2, "WARNINGS": 2, - ";": 31, "-": 496, "Table": 9, "structure": 9, @@ -56905,7 +54830,6 @@ "content": 2, "longtext": 1, "date_posted": 4, - "datetime": 10, "created_by": 2, "last_modified": 2, "last_modified_by": 2, @@ -56943,7 +54867,6 @@ "tries": 1, "UNIQUE": 4, "classes": 4, - "name": 3, "date_created": 6, "archive": 2, "class_challenges": 4, @@ -56957,13 +54880,10 @@ "joined": 2, "last_visit": 2, "is_activated": 2, - "type": 3, "token": 3, "user_has_challenge_token": 3, - "create": 2, "FILIAL": 10, "NUMBER": 1, - "not": 5, "null": 4, "title_ua": 1, "VARCHAR2": 4, @@ -56980,7 +54900,6 @@ "primary": 1, "key": 1, "grant": 8, - "select": 10, "on": 8, "to": 8, "ATOLL": 1, @@ -56990,1604 +54909,506 @@ "PLANMONITOR": 1, "SIEBEL": 1, "VBIS": 1, - "VPORTAL": 1, - "if": 1, - "exists": 1, - "from": 2, - "sysobjects": 1, - "where": 2, - "and": 1, - "in": 1, - "exec": 1, - "%": 2, - "object_ddl": 1, - "go": 1, - "use": 1, - "translog": 1, - "VIEW": 1, - "suspendedtoday": 2, - "view": 1, - "as": 1, - "suspended": 1, - "datediff": 1, - "now": 1 + "VPORTAL": 1 }, - "Squirrel": { - "//example": 1, - "from": 1, - "http": 1, - "//www.squirrel": 1, - "-": 1, - "lang.org/#documentation": 1, - "local": 3, - "table": 1, - "{": 10, - "a": 2, - "subtable": 1, - "array": 3, - "[": 3, - "]": 3, - "}": 10, - "+": 2, - "b": 1, - ";": 15, - "foreach": 1, - "(": 10, - "i": 1, - "val": 2, - "in": 1, - ")": 10, - "print": 2, - "typeof": 1, - "/////////////////////////////////////////////": 1, - "class": 2, - "Entity": 3, - "constructor": 2, - "etype": 2, - "entityname": 4, - "name": 2, - "type": 2, - "x": 2, - "y": 2, - "z": 2, - "null": 2, - "function": 2, - "MoveTo": 1, - "newx": 2, - "newy": 2, - "newz": 2, - "Player": 2, - "extends": 1, - "base.constructor": 1, - "DoDomething": 1, - "newplayer": 1, - "newplayer.MoveTo": 1 - }, - "Standard ML": { - "signature": 2, - "LAZY_BASE": 3, - "sig": 2, - "type": 5, - "a": 74, - "lazy": 12, - "-": 19, - ")": 826, - "end": 52, - "LAZY": 1, - "bool": 9, - "val": 143, - "inject": 3, - "toString": 3, - "(": 822, - "string": 14, - "eq": 2, - "*": 9, - "eqBy": 3, - "compare": 7, - "order": 2, - "map": 2, - "b": 58, - "structure": 10, - "Ops": 2, - "LazyBase": 2, - "struct": 9, - "exception": 1, - "Undefined": 3, - "fun": 51, - "delay": 3, - "f": 37, - "force": 9, - "undefined": 1, - "fn": 124, - "raise": 5, - "LazyMemoBase": 2, - "datatype": 28, - "|": 225, - "Done": 1, - "of": 90, - "unit": 6, - "let": 43, - "open": 8, - "B": 1, - "x": 59, - "isUndefined": 2, - "ignore": 2, - ";": 20, - "false": 31, - "handle": 3, - "true": 35, - "if": 50, - "then": 50, - "else": 50, - "p": 6, - "y": 44, - "op": 1, - "Lazy": 1, - "LazyFn": 2, - "LazyMemo": 1, - "functor": 2, - "Main": 1, - "S": 2, - "MAIN_STRUCTS": 1, - "MAIN": 1, - "Compile": 3, - "Place": 1, - "t": 23, - "Files": 3, - "Generated": 4, - "MLB": 4, - "O": 4, - "OUT": 3, - "SML": 6, - "TypeCheck": 3, - "toInt": 1, - "int": 1, - "OptPred": 1, - "Target": 1, - "Yes": 1, - "Show": 1, - "Anns": 1, - "PathMap": 1, - "gcc": 5, - "ref": 45, - "arScript": 3, - "asOpts": 6, - "{": 79, - "opt": 34, - "pred": 15, - "OptPred.t": 3, - "}": 79, - "list": 10, - "[": 104, - "]": 108, - "ccOpts": 6, - "linkOpts": 6, - "buildConstants": 2, - "debugRuntime": 3, - "debugFormat": 5, - "Dwarf": 3, - "DwarfPlus": 3, - "Dwarf2": 3, - "Stabs": 3, - "StabsPlus": 3, - "option": 6, - "NONE": 47, - "expert": 3, - "explicitAlign": 3, - "Control.align": 1, - "explicitChunk": 2, - "Control.chunk": 1, - "explicitCodegen": 5, - "Native": 5, - "Explicit": 5, - "Control.codegen": 3, - "keepGenerated": 3, - "keepO": 3, - "output": 16, - "profileSet": 3, - "profileTimeSet": 3, - "runtimeArgs": 3, - "show": 2, - "Show.t": 1, - "stop": 10, - "Place.OUT": 1, - "parseMlbPathVar": 3, - "line": 9, - "String.t": 1, - "case": 83, - "String.tokens": 7, - "Char.isSpace": 8, - "var": 3, - "path": 7, - "SOME": 68, - "_": 83, - "readMlbPathMap": 2, - "file": 14, - "File.t": 12, - "not": 1, - "File.canRead": 1, - "Error.bug": 14, - "concat": 52, - "List.keepAllMap": 4, - "File.lines": 2, - "String.forall": 4, - "v": 4, - "targetMap": 5, - "arch": 11, - "MLton.Platform.Arch.t": 3, - "os": 13, - "MLton.Platform.OS.t": 3, - "target": 28, - "Promise.lazy": 1, - "targetsDir": 5, - "OS.Path.mkAbsolute": 4, - "relativeTo": 4, - "Control.libDir": 1, - "potentialTargets": 2, - "Dir.lsDirs": 1, - "targetDir": 5, - "osFile": 2, - "OS.Path.joinDirFile": 3, - "dir": 4, - "archFile": 2, - "File.contents": 2, - "List.first": 2, - "MLton.Platform.OS.fromString": 1, - "MLton.Platform.Arch.fromString": 1, - "in": 40, - "setTargetType": 3, - "usage": 48, - "List.peek": 7, - "...": 23, - "Control": 3, - "Target.arch": 2, - "Target.os": 2, - "hasCodegen": 8, - "cg": 21, - "z": 73, - "Control.Target.arch": 4, - "Control.Target.os": 2, - "Control.Format.t": 1, - "AMD64": 2, - "x86Codegen": 9, - "X86": 3, - "amd64Codegen": 8, - "<": 3, - "Darwin": 6, - "orelse": 7, - "Control.format": 3, - "Executable": 5, - "Archive": 4, - "hasNativeCodegen": 2, - "defaultAlignIs8": 3, - "Alpha": 1, - "ARM": 1, - "HPPA": 1, - "IA64": 1, - "MIPS": 1, - "Sparc": 1, - "S390": 1, - "makeOptions": 3, - "s": 168, - "Fail": 2, - "reportAnnotation": 4, - "flag": 12, - "e": 18, - "Control.Elaborate.Bad": 1, - "Control.Elaborate.Deprecated": 1, - "ids": 2, - "Control.warnDeprecated": 1, - "Out.output": 2, - "Out.error": 3, - "List.toString": 1, - "Control.Elaborate.Id.name": 1, - "Control.Elaborate.Good": 1, - "Control.Elaborate.Other": 1, - "Popt": 1, - "tokenizeOpt": 4, - "opts": 4, - "List.foreach": 5, - "tokenizeTargetOpt": 4, - "List.map": 3, - "Normal": 29, - "SpaceString": 48, - "Align4": 2, - "Align8": 2, - "Expert": 72, - "o": 8, - "List.push": 22, - "OptPred.Yes": 6, - "boolRef": 20, - "ChunkPerFunc": 1, - "OneChunk": 1, - "String.hasPrefix": 2, - "prefix": 3, - "String.dropPrefix": 1, - "Char.isDigit": 3, - "Int.fromString": 4, - "n": 4, - "Coalesce": 1, - "limit": 1, - "Bool": 10, - "closureConvertGlobalize": 1, - "closureConvertShrink": 1, - "String.concatWith": 2, - "Control.Codegen.all": 2, - "Control.Codegen.toString": 2, - "name": 7, - "value": 4, - "Compile.setCommandLineConstant": 2, - "contifyIntoMain": 1, - "debug": 4, - "Control.Elaborate.processDefault": 1, - "Control.defaultChar": 1, - "Control.defaultInt": 5, - "Control.defaultReal": 2, - "Control.defaultWideChar": 2, - "Control.defaultWord": 4, - "Regexp.fromString": 7, - "re": 34, - "Regexp.compileDFA": 4, - "diagPasses": 1, - "Control.Elaborate.processEnabled": 2, - "dropPasses": 1, - "intRef": 8, - "errorThreshhold": 1, - "emitMain": 1, - "exportHeader": 3, - "Control.Format.all": 2, - "Control.Format.toString": 2, - "gcCheck": 1, - "Limit": 1, - "First": 1, - "Every": 1, - "Native.IEEEFP": 1, - "indentation": 1, - "Int": 8, - "i": 8, - "inlineNonRec": 6, - "small": 19, - "product": 19, - "#product": 1, - "inlineIntoMain": 1, - "loops": 18, - "inlineLeafA": 6, - "repeat": 18, - "size": 19, - "inlineLeafB": 6, - "keepCoreML": 1, - "keepDot": 1, - "keepMachine": 1, - "keepRSSA": 1, - "keepSSA": 1, - "keepSSA2": 1, - "keepSXML": 1, - "keepXML": 1, - "keepPasses": 1, - "libname": 9, - "loopPasses": 1, - "Int.toString": 3, - "markCards": 1, - "maxFunctionSize": 1, - "mlbPathVars": 4, - "@": 3, - "Native.commented": 1, - "Native.copyProp": 1, - "Native.cutoff": 1, - "Native.liveTransfer": 1, - "Native.liveStack": 1, - "Native.moveHoist": 1, - "Native.optimize": 1, - "Native.split": 1, - "Native.shuffle": 1, - "err": 1, - "optimizationPasses": 1, - "il": 10, - "set": 10, - "Result.Yes": 6, - "Result.No": 5, - "polyvariance": 9, - "hofo": 12, - "rounds": 12, - "preferAbsPaths": 1, - "profPasses": 1, - "profile": 6, - "ProfileNone": 2, - "ProfileAlloc": 1, - "ProfileCallStack": 3, - "ProfileCount": 1, - "ProfileDrop": 1, - "ProfileLabel": 1, - "ProfileTimeLabel": 4, - "ProfileTimeField": 2, - "profileBranch": 1, - "Regexp": 3, - "seq": 3, - "anys": 6, - "compileDFA": 3, - "profileC": 1, - "profileInclExcl": 2, - "profileIL": 3, - "ProfileSource": 1, - "ProfileSSA": 1, - "ProfileSSA2": 1, - "profileRaise": 2, - "profileStack": 1, - "profileVal": 1, - "Show.Anns": 1, - "Show.PathMap": 1, - "showBasis": 1, - "showDefUse": 1, - "showTypes": 1, - "Control.optimizationPasses": 4, - "String.equals": 4, - "Place.Files": 2, - "Place.Generated": 2, - "Place.O": 3, - "Place.TypeCheck": 1, - "#target": 2, - "Self": 2, - "Cross": 2, - "SpaceString2": 6, - "OptPred.Target": 6, - "#1": 1, - "trace": 4, - "#2": 2, - "typeCheck": 1, - "verbosity": 4, - "Silent": 3, - "Top": 5, - "Pass": 1, - "Detail": 1, - "warnAnn": 1, - "warnDeprecated": 1, - "zoneCutDepth": 1, - "style": 6, - "arg": 3, - "desc": 3, - "mainUsage": 3, - "parse": 2, - "Popt.makeUsage": 1, - "showExpert": 1, - "commandLine": 5, - "args": 8, - "lib": 2, - "libDir": 2, - "OS.Path.mkCanonical": 1, - "result": 1, - "targetStr": 3, - "libTargetDir": 1, - "targetArch": 4, - "archStr": 1, - "String.toLower": 2, - "MLton.Platform.Arch.toString": 2, - "targetOS": 5, - "OSStr": 2, - "MLton.Platform.OS.toString": 1, - "positionIndependent": 3, - "format": 7, - "MinGW": 4, - "Cygwin": 4, - "Library": 6, - "LibArchive": 3, - "Control.positionIndependent": 1, - "align": 1, - "codegen": 4, - "CCodegen": 1, - "MLton.Rusage.measureGC": 1, - "exnHistory": 1, - "Bool.toString": 1, - "Control.profile": 1, - "Control.ProfileCallStack": 1, - "sizeMap": 1, - "Control.libTargetDir": 1, - "ty": 4, - "Bytes.toBits": 1, - "Bytes.fromInt": 1, - "lookup": 4, - "use": 2, - "on": 1, - "must": 1, - "x86": 1, - "with": 1, - "ieee": 1, - "fp": 1, - "can": 1, - "No": 1, - "Out.standard": 1, - "input": 22, - "rest": 3, - "inputFile": 1, - "File.base": 5, - "File.fileOf": 1, - "start": 6, - "base": 3, - "rec": 1, - "loop": 3, - "suf": 14, - "hasNum": 2, - "sufs": 2, - "String.hasSuffix": 2, - "suffix": 8, - "Place.t": 1, - "List.exists": 1, - "File.withIn": 1, - "csoFiles": 1, - "Place.compare": 1, - "GREATER": 5, - "Place.toString": 2, - "EQUAL": 5, - "LESS": 5, - "printVersion": 1, - "tempFiles": 3, - "tmpDir": 2, - "tmpVar": 2, - "default": 2, - "MLton.Platform.OS.host": 2, - "Process.getEnv": 1, - "d": 32, - "temp": 3, - "out": 9, - "File.temp": 1, - "OS.Path.concat": 1, - "Out.close": 2, - "maybeOut": 10, - "maybeOutBase": 4, - "File.extension": 3, - "outputBase": 2, - "ext": 1, - "OS.Path.splitBaseExt": 1, - "defLibname": 6, - "OS.Path.splitDirFile": 1, - "String.extract": 1, - "toAlNum": 2, - "c": 42, - "Char.isAlphaNum": 1, - "#": 3, - "CharVector.map": 1, - "atMLtons": 1, - "Vector.fromList": 1, - "tokenize": 1, - "rev": 2, - "gccDebug": 3, - "asDebug": 2, - "compileO": 3, - "inputs": 7, - "libOpts": 2, - "System.system": 4, - "List.concat": 4, - "linkArchives": 1, - "String.contains": 1, - "File.move": 1, - "from": 1, - "to": 1, - "mkOutputO": 3, - "Counter.t": 3, - "File.dirOf": 2, - "Counter.next": 1, - "compileC": 2, - "debugSwitches": 2, - "compileS": 2, - "compileCSO": 1, - "List.forall": 1, - "Counter.new": 1, - "oFiles": 2, - "List.fold": 1, - "ac": 4, - "extension": 6, - "Option.toString": 1, - "mkCompileSrc": 1, - "listFiles": 2, - "elaborate": 1, - "compile": 2, - "outputs": 2, - "r": 3, - "make": 1, - "Int.inc": 1, - "Out.openOut": 1, - "print": 4, - "outputHeader": 2, - "done": 3, - "Control.No": 1, - "l": 2, - "Layout.output": 1, - "Out.newline": 1, - "Vector.foreach": 1, - "String.translate": 1, - "/": 1, - "Type": 1, - "Check": 1, - ".c": 1, - ".s": 1, - "invalid": 1, - "MLton": 1, - "Exn.finally": 1, - "File.remove": 1, - "doit": 1, - "Process.makeCommandLine": 1, - "main": 1, - "mainWrapped": 1, - "OS.Process.exit": 1, - "CommandLine.arguments": 1, - "RedBlackTree": 1, - "key": 16, - "entry": 12, - "dict": 17, - "Empty": 15, - "Red": 41, - "local": 1, - "lk": 4, - "tree": 4, - "and": 2, - "zipper": 3, - "TOP": 5, - "LEFTB": 10, - "RIGHTB": 10, - "delete": 3, - "zip": 19, - "Black": 40, - "LEFTR": 8, - "RIGHTR": 9, - "bbZip": 28, - "w": 17, - "delMin": 8, - "Match": 1, - "joinRed": 3, - "needB": 2, - "del": 8, - "NotFound": 2, - "entry1": 16, - "as": 7, - "key1": 8, - "datum1": 4, - "joinBlack": 1, - "insertShadow": 3, - "datum": 1, - "oldEntry": 7, - "ins": 8, - "left": 10, - "right": 10, - "restore_left": 1, - "restore_right": 1, - "app": 3, - "ap": 7, - "new": 1, - "insert": 2, - "table": 14, - "clear": 1 - }, - "Stata": { - "local": 6, - "inname": 1, - "outname": 1, - "program": 2, - "hello": 1, - "vers": 1, - "display": 1, - "end": 4, - "{": 441, - "*": 25, - "version": 2, - "mar2014": 1, - "}": 440, - "...": 30, - "Hello": 1, - "world": 1, - "p_end": 47, - "MAXDIM": 1, - "smcl": 1, - "Matthew": 2, - "White": 2, - "jan2014": 1, - "title": 7, - "Title": 1, - "phang": 4, - "cmd": 111, - "odkmeta": 17, - "hline": 1, - "Create": 4, - "a": 30, - "do": 22, - "-": 42, - "file": 18, - "to": 23, - "import": 9, - "ODK": 6, - "data": 4, - "marker": 10, - "syntax": 1, - "Syntax": 1, - "p": 2, - "using": 10, - "it": 61, - "help": 27, - "filename": 3, - "opt": 25, - "csv": 9, - "(": 60, - "csvfile": 3, - ")": 61, - "Using": 7, - "histogram": 2, - "as": 29, - "template.": 8, - "notwithstanding": 1, - "is": 31, - "rarely": 1, - "preceded": 3, - "by": 7, - "an": 6, - "underscore.": 1, - "cmdab": 5, - "s": 10, - "urvey": 2, - "surveyfile": 5, - "odkmeta##surveyopts": 2, - "surveyopts": 4, - "cho": 2, - "ices": 2, - "choicesfile": 4, - "odkmeta##choicesopts": 2, - "choicesopts": 5, - "[": 6, - "options": 1, - "]": 6, - "odbc": 2, - "the": 67, - "position": 1, - "of": 36, - "last": 1, - "character": 1, - "in": 24, - "first": 2, - "column": 18, - "+": 2, - "synoptset": 5, - "tabbed": 4, - "synopthdr": 4, - "synoptline": 8, - "syntab": 6, - "Main": 3, - "heckman": 2, - "p2coldent": 3, - "name": 20, - ".csv": 2, - "that": 21, - "contains": 3, - "metadata": 5, - "from": 6, - "survey": 14, - "worksheet": 5, - "choices": 10, - "Fields": 2, - "synopt": 16, - "drop": 1, - "attrib": 2, - "headers": 8, - "not": 8, - "field": 25, - "attributes": 10, - "with": 10, - "keep": 1, - "only": 3, - "rel": 1, - "ax": 1, - "ignore": 1, - "fields": 7, - "exist": 1, - "Lists": 1, - "ca": 1, - "oth": 1, - "er": 1, - "odkmeta##other": 1, - "other": 14, - "Stata": 5, - "value": 14, - "values": 3, - "select": 6, - "or_other": 5, - ";": 15, - "default": 8, - "max": 2, - "one": 5, - "line": 4, - "write": 1, - "each": 7, - "list": 13, - "on": 7, - "single": 1, - "Options": 1, - "replace": 7, - "overwrite": 1, - "existing": 1, - "p2colreset": 4, - "and": 18, - "are": 13, - "required.": 1, - "Change": 1, - "t": 2, - "ype": 1, - "header": 15, - "type": 7, - "attribute": 10, - "la": 2, - "bel": 2, - "label": 9, - "d": 1, - "isabled": 1, - "disabled": 4, - "li": 1, - "stname": 1, - "list_name": 6, - "maximum": 3, - "plus": 2, - "min": 2, - "minimum": 2, - "minus": 1, - "#": 6, - "constant": 2, - "for": 13, - "all": 3, - "labels": 8, - "description": 1, - "Description": 1, - "pstd": 20, - "creates": 1, - "worksheets": 1, - "XLSForm.": 1, - "The": 9, - "saved": 1, - "completes": 2, - "following": 1, - "tasks": 3, - "order": 1, - "anova": 1, - "phang2": 23, - "o": 12, - "Import": 2, - "lists": 2, - "Add": 1, - "char": 4, - "characteristics": 4, - "Split": 1, - "select_multiple": 6, - "variables": 8, - "Drop": 1, - "note": 1, - "format": 1, - "Format": 1, - "date": 1, - "time": 1, - "datetime": 1, - "Attach": 2, - "variable": 14, - "notes": 1, - "merge": 3, - "Merge": 1, - "repeat": 6, - "groups": 4, - "After": 1, - "have": 2, - "been": 1, - "split": 4, - "can": 1, - "be": 12, - "removed": 1, - "without": 2, - "affecting": 1, - "tasks.": 1, - "User": 1, - "written": 2, - "supplements": 1, - "may": 2, - "make": 1, - "use": 3, - "any": 3, - "which": 6, - "imported": 4, - "characteristics.": 1, - "remarks": 1, - "Remarks": 1, - "uses": 3, - "helpb": 7, - "insheet": 4, - "data.": 1, - "long": 7, - "strings": 1, - "digits": 1, - "such": 2, - "simserial": 1, - "will": 9, - "numeric": 4, - "even": 1, - "if": 10, - "they": 2, - "more": 1, - "than": 3, - "digits.": 1, - "As": 1, - "result": 6, - "lose": 1, - "precision": 1, - ".": 22, - "makes": 1, - "limited": 1, - "mata": 1, - "Mata": 1, - "manage": 1, - "contain": 1, - "difficult": 1, - "characters.": 2, - "starts": 1, - "definitions": 1, - "several": 1, - "macros": 1, - "these": 4, - "constants": 1, - "uses.": 1, - "For": 4, - "instance": 1, - "macro": 1, - "datemask": 1, - "varname": 1, - "constraints": 1, - "names": 16, - "Further": 1, - "files": 1, - "often": 1, - "much": 1, - "longer": 1, - "length": 3, - "limit": 1, - "These": 2, - "differences": 1, - "convention": 1, - "lead": 1, - "three": 1, - "kinds": 1, - "problematic": 1, - "Long": 3, - "involve": 1, - "invalid": 1, - "combination": 1, - "characters": 3, - "example": 2, - "begins": 1, - "colon": 1, - "followed": 1, - "number.": 1, - "convert": 2, - "instead": 1, - "naming": 1, - "v": 6, - "concatenated": 1, - "positive": 1, - "integer": 1, - "v1": 1, - "unique": 1, - "but": 4, - "when": 1, - "converted": 3, - "truncated": 1, - "become": 3, - "duplicates.": 1, - "again": 1, - "names.": 6, - "form": 1, - "duplicates": 1, - "cannot": 2, - "chooses": 1, - "different": 1, - "Because": 1, - "problem": 2, - "recommended": 1, - "you": 1, - "If": 2, - "its": 3, - "characteristic": 2, - "odkmeta##Odk_bad_name": 1, - "Odk_bad_name": 3, - "otherwise": 1, - "Most": 1, - "depend": 1, - "There": 1, - "two": 2, - "exceptions": 1, - "variables.": 1, - "error": 4, - "has": 6, - "or": 7, - "splitting": 2, - "would": 1, - "duplicate": 4, - "reshape": 2, - "groups.": 1, - "there": 2, - "merging": 2, - "code": 1, - "datasets.": 1, - "Where": 1, - "renaming": 2, - "left": 1, - "user.": 1, - "section": 2, - "designated": 2, - "area": 2, - "renaming.": 3, - "In": 3, - "reshaping": 1, - "group": 4, - "own": 2, - "Many": 1, - "forms": 2, - "require": 1, - "others": 1, - "few": 1, - "need": 1, - "renamed": 1, - "should": 1, - "go": 1, - "areas.": 1, - "However": 1, - "some": 1, - "usually": 1, - "because": 1, - "many": 2, - "nested": 2, - "above": 1, - "this": 1, - "case": 1, - "work": 1, - "best": 1, - "Odk_group": 1, - "Odk_name": 1, - "Odk_is_other": 2, - "Odk_geopoint": 2, - "r": 2, - "varlist": 2, - "Odk_list_name": 2, - "foreach": 1, - "var": 5, - "*search": 1, - "n/a": 1, - "know": 1, - "don": 1, - "worksheet.": 1, - "requires": 1, - "comma": 1, - "separated": 2, - "text": 1, - "file.": 1, - "Strings": 1, - "embedded": 2, - "commas": 1, - "double": 3, - "quotes": 3, - "must": 2, - "enclosed": 1, - "another": 1, - "quote.": 1, - "pmore": 5, - "Each": 1, - "header.": 1, - "Use": 1, - "suboptions": 1, - "specify": 1, - "alternative": 1, - "respectively.": 1, - "All": 1, - "used.": 1, - "standardized": 1, - "follows": 1, - "replaced": 9, - "select_one": 3, - "begin_group": 1, - "begin": 2, - "end_group": 1, - "begin_repeat": 1, - "end_repeat": 1, - "addition": 1, - "specified": 1, - "attaches": 1, - "pmore2": 3, - "formed": 1, - "concatenating": 1, - "elements": 1, - "Odk_repeat": 1, - "nested.": 1, - "geopoint": 2, - "component": 1, - "Latitude": 1, - "Longitude": 1, - "Altitude": 1, - "Accuracy": 1, - "blank.": 1, - "imports": 4, - "XLSForm": 1, - "list.": 1, - "one.": 1, - "specifies": 4, - "vary": 1, - "definition": 1, - "rather": 1, - "multiple": 1, - "delimit": 1, - "#delimit": 1, - "dlgtab": 1, - "Other": 1, - "already": 2, - "exists.": 1, - "examples": 1, - "Examples": 1, - "named": 1, - "import.do": 7, - "including": 1, - "survey.csv": 1, - "choices.csv": 1, - "txt": 6, - "Same": 3, - "previous": 3, - "command": 3, - "appears": 2, - "fieldname": 3, - "survey_fieldname.csv": 1, - "valuename": 2, - "choices_valuename.csv": 1, - "except": 1, - "hint": 2, - "dropattrib": 2, - "does": 1, - "_all": 1, - "acknowledgements": 1, - "Acknowledgements": 1, - "Lindsey": 1, - "Shaughnessy": 1, - "Innovations": 2, - "Poverty": 2, - "Action": 2, - "assisted": 1, - "almost": 1, - "aspects": 1, - "development.": 1, - "She": 1, - "collaborated": 1, - "structure": 1, - "was": 1, - "very": 1, - "helpful": 1, - "tester": 1, - "contributed": 1, - "information": 1, - "about": 1, - "ODK.": 1, - "author": 1, - "Author": 1, - "mwhite@poverty": 1, - "action.org": 1, - "Setup": 1, - "sysuse": 1, - "auto": 1, - "Fit": 2, - "linear": 2, - "regression": 2, - "regress": 5, - "mpg": 1, - "weight": 4, - "foreign": 2, - "better": 1, - "physics": 1, - "standpoint": 1, - "gen": 1, - "gp100m": 2, - "/mpg": 1, - "Obtain": 1, - "beta": 2, - "coefficients": 1, - "refitting": 1, - "model": 1, - "Suppress": 1, - "intercept": 1, - "term": 1, - "noconstant": 1, - "Model": 1, - "bn.foreign": 1, - "hascons": 1, - "matrix": 3, - "tanh": 1, - "u": 3, - "eu": 4, - "emu": 4, - "exp": 2, - "return": 1, - "/": 1 - }, - "Stylus": { - "border": 6, - "-": 10, - "radius": 5, - "(": 1, - ")": 1, - "webkit": 1, - "arguments": 3, - "moz": 1, - "a.button": 1, - "px": 5, - "fonts": 2, - "helvetica": 1, - "arial": 1, - "sans": 1, - "serif": 1, - "body": 1, + "Bluespec": { + "package": 2, + "TL": 6, + ";": 156, + "interface": 2, + "method": 42, + "Action": 17, + "ped_button_push": 4, + "(": 158, + ")": 163, + "set_car_state_N": 2, + "Bool": 32, + "x": 8, + "set_car_state_S": 2, + "set_car_state_E": 2, + "set_car_state_W": 2, + "lampRedNS": 2, + "lampAmberNS": 2, + "lampGreenNS": 2, + "lampRedE": 2, + "lampAmberE": 2, + "lampGreenE": 2, + "lampRedW": 2, + "lampAmberW": 2, + "lampGreenW": 2, + "lampRedPed": 2, + "lampAmberPed": 2, + "lampGreenPed": 2, + "endinterface": 2, + "typedef": 3, + "enum": 1, "{": 1, - "padding": 3, - ";": 2, - "font": 1, - "px/1.4": 1, + "AllRed": 4, + "GreenNS": 9, + "AmberNS": 5, + "GreenE": 8, + "AmberE": 5, + "GreenW": 8, + "AmberW": 5, + "GreenPed": 4, + "AmberPed": 3, "}": 1, - "form": 2, - "input": 2, - "[": 2, - "type": 2, - "text": 2, - "]": 2, - "solid": 1, - "#eee": 1, - "color": 2, - "#ddd": 1, - "textarea": 1, - "@extends": 2, - "foo": 2, - "#FFF": 1, - ".bar": 1, - "background": 1, - "#000": 1 - }, - "SuperCollider": { - "//boot": 1, - "server": 1, - "s.boot": 1, - ";": 18, - "(": 22, - "SynthDef": 1, - "{": 5, - "var": 1, - "sig": 7, - "resfreq": 3, - "Saw.ar": 1, - ")": 22, - "SinOsc.kr": 1, - "*": 3, - "+": 1, - "RLPF.ar": 1, - "Out.ar": 1, - "}": 5, - ".play": 2, - "do": 2, - "arg": 1, - "i": 1, - "Pan2.ar": 1, - "SinOsc.ar": 1, - "exprand": 1, - "LFNoise2.kr": 2, - "rrand": 2, - ".range": 2, - "**": 1, - "rand2": 1, - "a": 2, - "Env.perc": 1, - "-": 1, - "b": 1, - "a.delay": 2, - "a.test.plot": 1, - "b.test.plot": 1, - "Env": 1, - "[": 2, - "]": 2, - ".plot": 2, - "e": 1, - "Env.sine.asStream": 1, - "e.next.postln": 1, - "wait": 1, - ".fork": 1 - }, - "SystemVerilog": { + "TLstates": 11, + "deriving": 1, + "Eq": 1, + "Bits": 1, + "UInt#": 2, + "Time32": 9, + "CtrSize": 3, "module": 3, - "endpoint_phy_wrapper": 2, - "(": 92, - "input": 12, - "clk_sys_i": 2, - "clk_ref_i": 6, - "clk_rx_i": 3, - "rst_n_i": 3, - "IWishboneMaster.master": 2, - "src": 1, - "IWishboneSlave.slave": 1, - "snk": 1, - "sys": 1, - "output": 6, + "sysTL": 3, + "allRedDelay": 2, + "amberDelay": 2, + "nsGreenDelay": 2, + "ewGreenDelay": 3, + "pedGreenDelay": 1, + "pedAmberDelay": 1, + "clocks_per_sec": 2, + "Reg#": 15, + "state": 21, + "<": 44, + "-": 29, + "mkReg": 15, + "next_green": 8, + "secs": 7, + "ped_button_pushed": 4, + "False": 9, + "car_present_N": 3, + "True": 6, + "car_present_S": 3, + "car_present_E": 4, + "car_present_W": 4, + "car_present_NS": 3, + "||": 7, + "cycle_ctr": 6, + "rule": 10, + "dec_cycle_ctr": 1, + "endrule": 10, + "Rules": 5, + "low_priority_rule": 2, + "rules": 4, + "inc_sec": 1, + "+": 7, + "endrules": 4, + "function": 10, + "next_state": 8, + "ns": 4, + "action": 3, + "<=>": 3, + "0": 2, + "endaction": 3, + "endfunction": 7, + "green_seq": 7, + "case": 2, + "return": 9, + "endcase": 2, + "car_present": 4, + "make_from_green_rule": 5, + "green_state": 2, + "delay": 2, + "car_is_present": 2, + "from_green": 1, + "make_from_amber_rule": 5, + "amber_state": 2, + "ng": 2, + "from_amber": 1, + "&&": 3, + "hprs": 10, + "7": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "fromAllRed": 2, + "if": 9, + "else": 4, + "noAction": 1, + "high_priority_rules": 4, "[": 17, "]": 17, - "td_o": 2, - "rd_i": 2, - "txn_o": 2, - "txp_o": 2, - "rxn_i": 2, - "rxp_i": 2, - ")": 92, - ";": 32, - "wire": 12, - "rx_clock": 3, - "parameter": 2, - "g_phy_type": 6, - "gtx_data": 3, - "gtx_k": 3, - "gtx_disparity": 3, - "gtx_enc_error": 3, - "grx_data": 3, - "grx_clk": 1, - "grx_k": 3, - "grx_enc_error": 3, - "grx_bitslide": 2, - "gtp_rst": 2, - "tx_clock": 3, + "for": 3, + "Integer": 3, + "i": 15, + "rJoin": 1, + "addRules": 1, + "preempts": 1, + "endmethod": 8, + "b": 12, + "endmodule": 3, + "endpackage": 2, + "TbTL": 1, + "import": 1, + "*": 1, + "Lamp": 3, + "changed": 2, + "show_offs": 2, + "show_ons": 2, + "reset": 2, + "mkLamp#": 1, + "String": 1, + "name": 3, + "lamp": 5, + "prev": 5, + "write": 2, + "mkTest": 1, + "let": 1, + "dut": 2, + "Bit#": 1, + "ctr": 8, + "carN": 4, + "carS": 2, + "carE": 2, + "carW": 2, + "lamps": 15, + "mkLamp": 12, + "dut.lampRedNS": 1, + "dut.lampAmberNS": 1, + "dut.lampGreenNS": 1, + "dut.lampRedE": 1, + "dut.lampAmberE": 1, + "dut.lampGreenE": 1, + "dut.lampRedW": 1, + "dut.lampAmberW": 1, + "dut.lampGreenW": 1, + "dut.lampRedPed": 1, + "dut.lampAmberPed": 1, + "dut.lampGreenPed": 1, + "start": 1, + "dumpvars": 1, + "detect_cars": 1, + "dut.set_car_state_N": 1, + "dut.set_car_state_S": 1, + "dut.set_car_state_E": 1, + "dut.set_car_state_W": 1, + "go": 1, + "12_000": 1, + "stop": 1, + "display": 2, + "finish": 1, + "do_offs": 2, + "l": 3, + "l.show_offs": 1, + "do_ons": 2, + "l.show_ons": 1, + "do_reset": 2, + "l.reset": 1, + "do_it": 4, + "f": 2, + "any_changes": 2, + ".changed": 1, + "show": 1, + "time": 1 + }, + "Literate CoffeeScript": { + "The": 2, + "**Scope**": 2, + "class": 2, + "regulates": 1, + "lexical": 1, + "scoping": 1, + "within": 2, + "CoffeeScript.": 1, + "As": 1, + "you": 2, "generate": 1, - "if": 5, - "begin": 4, - "assign": 2, - "wr_tbi_phy": 1, - "U_Phy": 1, - ".serdes_rst_i": 1, - ".serdes_loopen_i": 1, - "b0": 5, - ".serdes_enable_i": 1, - "b1": 2, - ".serdes_tx_data_i": 1, - ".serdes_tx_k_i": 1, - ".serdes_tx_disparity_o": 1, - ".serdes_tx_enc_err_o": 1, - ".serdes_rx_data_o": 1, - ".serdes_rx_k_o": 1, - ".serdes_rx_enc_err_o": 1, - ".serdes_rx_bitslide_o": 1, - ".tbi_refclk_i": 1, - ".tbi_rbclk_i": 1, - ".tbi_td_o": 1, - ".tbi_rd_i": 1, - ".tbi_syncen_o": 1, - ".tbi_loopen_o": 1, - ".tbi_prbsen_o": 1, - ".tbi_enable_o": 1, - "end": 4, - "else": 2, - "//": 3, - "wr_gtx_phy_virtex6": 1, - "#": 3, - ".g_simulation": 2, - "U_PHY": 1, - ".clk_ref_i": 2, - ".tx_clk_o": 1, - ".tx_data_i": 1, - ".tx_k_i": 1, - ".tx_disparity_o": 1, - ".tx_enc_err_o": 1, - ".rx_rbclk_o": 1, - ".rx_data_o": 1, - ".rx_k_o": 1, - ".rx_enc_err_o": 1, - ".rx_bitslide_o": 1, - ".rst_i": 1, - ".loopen_i": 1, - ".pad_txn0_o": 1, - ".pad_txp0_o": 1, - ".pad_rxn0_i": 1, - ".pad_rxp0_i": 1, - "endgenerate": 1, - "wr_endpoint": 1, - ".g_pcs_16bit": 1, - ".g_rx_buffer_size": 1, - ".g_with_rx_buffer": 1, - ".g_with_timestamper": 1, - ".g_with_dmtd": 1, - ".g_with_dpi_classifier": 1, - ".g_with_vlans": 1, - ".g_with_rtu": 1, - "DUT": 1, - ".clk_sys_i": 1, - ".clk_dmtd_i": 1, - ".rst_n_i": 1, - ".pps_csync_p1_i": 1, - ".src_dat_o": 1, - "snk.dat_i": 1, - ".src_adr_o": 1, - "snk.adr": 1, - ".src_sel_o": 1, - "snk.sel": 1, - ".src_cyc_o": 1, - "snk.cyc": 1, - ".src_stb_o": 1, - "snk.stb": 1, - ".src_we_o": 1, - "snk.we": 1, - ".src_stall_i": 1, - "snk.stall": 1, - ".src_ack_i": 1, - "snk.ack": 1, - ".src_err_i": 1, - ".rtu_full_i": 1, - ".rtu_rq_strobe_p1_o": 1, - ".rtu_rq_smac_o": 1, - ".rtu_rq_dmac_o": 1, - ".rtu_rq_vid_o": 1, - ".rtu_rq_has_vid_o": 1, - ".rtu_rq_prio_o": 1, - ".rtu_rq_has_prio_o": 1, - ".wb_cyc_i": 1, - "sys.cyc": 1, - ".wb_stb_i": 1, - "sys.stb": 1, - ".wb_we_i": 1, - "sys.we": 1, - ".wb_sel_i": 1, - "sys.sel": 1, - ".wb_adr_i": 1, - "sys.adr": 1, - ".wb_dat_i": 1, - "sys.dat_o": 1, - ".wb_dat_o": 1, - "sys.dat_i": 1, - ".wb_ack_o": 1, - "sys.ack": 1, - "endmodule": 2, - "fifo": 1, - "clk_50": 1, - "clk_2": 1, - "reset_n": 1, - "data_out": 1, - "empty": 1, - "priority_encoder": 1, - "INPUT_WIDTH": 3, - "OUTPUT_WIDTH": 3, - "logic": 2, - "-": 4, - "input_data": 2, - "output_data": 3, - "int": 1, - "ii": 6, - "always_comb": 1, - "for": 2, - "<": 1, - "+": 3, - "function": 1, - "integer": 2, - "log2": 4, - "x": 6, - "endfunction": 1 - }, - "Tcl": { - "#": 7, - "package": 2, - "require": 2, - "Tcl": 2, - "namespace": 6, - "eval": 2, - "stream": 61, - "{": 148, - "export": 3, - "[": 76, - "a": 1, - "-": 5, - "z": 1, - "]": 76, - "*": 19, - "}": 148, - "ensemble": 1, - "create": 7, - "proc": 28, - "first": 24, - "restCmdPrefix": 2, - "return": 22, - "list": 18, - "lassign": 11, - "foldl": 1, - "cmdPrefix": 19, - "initialValue": 7, - "args": 13, - "set": 34, - "numStreams": 3, - "llength": 5, - "if": 14, - "FoldlSingleStream": 2, - "lindex": 5, - "elseif": 3, - "FoldlMultiStream": 2, - "else": 5, - "Usage": 4, - "foreach": 5, - "numArgs": 7, - "varName": 7, - "body": 8, - "ForeachSingleStream": 2, - "(": 11, - ")": 11, - "&&": 2, - "%": 1, - "end": 2, - "items": 5, - "lrange": 1, - "ForeachMultiStream": 2, - "fromList": 2, - "_list": 4, - "index": 4, - "expr": 4, - "+": 1, - "isEmpty": 10, - "map": 1, - "MapSingleStream": 3, - "MapMultiStream": 3, - "rest": 22, - "select": 2, - "while": 6, - "take": 2, - "num": 3, - "||": 1, - "<": 1, - "toList": 1, - "res": 10, - "lappend": 8, - "#################################": 2, - "acc": 9, - "streams": 5, - "firsts": 6, - "restStreams": 6, - "uplevel": 4, - "nextItems": 4, - "msg": 1, "code": 1, - "error": 1, + "create": 1, + "a": 8, + "tree": 1, + "of": 4, + "scopes": 1, + "in": 2, + "the": 12, + "same": 1, + "shape": 1, + "as": 3, + "nested": 1, + "function": 2, + "bodies.": 1, + "Each": 1, + "scope": 2, + "knows": 1, + "about": 1, + "variables": 3, + "declared": 2, + "it": 4, + "and": 5, + "has": 1, + "reference": 3, + "to": 8, + "its": 3, + "parent": 2, + "enclosing": 1, + "scope.": 2, + "In": 1, + "this": 3, + "way": 1, + "we": 4, + "know": 1, + "which": 3, + "are": 3, + "new": 2, + "need": 2, + "be": 2, + "with": 3, + "var": 4, + "shared": 1, + "external": 1, + "scopes.": 1, + "Import": 1, + "helpers": 1, + "plan": 1, + "use.": 1, + "{": 4, + "extend": 1, + "last": 1, + "}": 4, + "require": 1, + "exports.Scope": 1, + "Scope": 1, + "root": 1, + "is": 3, + "top": 2, + "-": 5, "level": 1, - "XDG": 11, - "variable": 4, - "DEFAULTS": 8, - "DATA_HOME": 4, - "CONFIG_HOME": 4, - "CACHE_HOME": 4, - "RUNTIME_DIR": 3, - "DATA_DIRS": 4, - "CONFIG_DIRS": 4, - "SetDefaults": 3, - "ne": 2, - "file": 9, - "join": 9, - "env": 8, - "HOME": 3, - ".local": 1, - "share": 3, - ".config": 1, - ".cache": 1, - "/usr": 2, - "local": 1, - "/etc": 1, - "xdg": 1, - "XDGVarSet": 4, - "var": 11, - "info": 1, - "exists": 1, - "XDG_": 4, - "Dir": 4, - "subdir": 16, - "dir": 5, - "dict": 2, - "get": 2, - "Dirs": 3, - "rawDirs": 3, - "split": 1, - "outDirs": 3, - "XDG_RUNTIME_DIR": 1 + "object": 1, + "for": 3, + "given": 1, + "file.": 1, + "@root": 1, + "null": 1, + "Initialize": 1, + "lookups": 1, + "up": 1, + "chain": 1, + "well": 1, + "**Block**": 1, + "node": 1, + "belongs": 2, + "where": 1, + "should": 1, + "declare": 1, + "that": 2, + "to.": 1, + "constructor": 1, + "(": 5, + "@parent": 2, + "@expressions": 1, + "@method": 1, + ")": 6, + "@variables": 3, + "[": 4, + "name": 8, + "type": 5, + "]": 4, + "@positions": 4, + "Scope.root": 1, + "unless": 1, + "Adds": 1, + "variable": 1, + "or": 1, + "overrides": 1, + "an": 1, + "existing": 1, + "one.": 1, + "add": 1, + "immediate": 3, + "return": 1, + "@parent.add": 1, + "if": 2, + "@shared": 1, + "not": 1, + "Object": 1, + "hasOwnProperty.call": 1, + ".type": 1, + "else": 2, + "@variables.push": 1, + "When": 1, + "super": 1, + "called": 1, + "find": 1, + "current": 1, + "method": 1, + "param": 1, + "_": 3, + "then": 1, + "tempVars": 1, + "realVars": 1, + ".push": 1, + "v.name": 1, + "realVars.sort": 1, + ".concat": 1, + "tempVars.sort": 1, + "Return": 1, + "list": 1, + "assignments": 1, + "supposed": 1, + "made": 1, + "at": 1, + "assignedVariables": 1, + "v": 1, + "when": 1, + "v.type.assigned": 1 }, - "Tea": { - "<%>": 1, - "template": 1, - "foo": 1 + "Xtend": { + "package": 2, + "example2": 1, + "import": 7, + "org.junit.Test": 2, + "static": 4, + "org.junit.Assert.*": 2, + "class": 4, + "BasicExpressions": 2, + "{": 14, + "@Test": 7, + "def": 7, + "void": 7, + "literals": 5, + "(": 42, + ")": 42, + "//": 11, + "string": 1, + "work": 1, + "with": 2, + "single": 1, + "or": 1, + "double": 2, + "quotes": 1, + "assertEquals": 14, + "number": 1, + "big": 1, + "decimals": 1, + "in": 2, + "this": 1, + "case": 1, + "+": 6, + "*": 1, + "bd": 3, + "boolean": 1, + "true": 1, + "false": 1, + "getClass": 1, + "typeof": 1, + "}": 13, + "collections": 2, + "There": 1, + "are": 1, + "various": 1, + "methods": 2, + "to": 1, + "create": 1, + "and": 1, + "numerous": 1, + "extension": 2, + "which": 1, + "make": 1, + "working": 1, + "them": 1, + "convenient.": 1, + "val": 9, + "list": 1, + "newArrayList": 2, + "list.map": 1, + "[": 9, + "toUpperCase": 1, + "]": 9, + ".head": 1, + "set": 1, + "newHashSet": 1, + "set.filter": 1, + "it": 2, + ".size": 2, + "map": 1, + "newHashMap": 1, + "-": 5, + "map.get": 1, + "controlStructures": 1, + "looks": 1, + "like": 1, + "Java": 1, + "if": 1, + ".length": 1, + "but": 1, + "foo": 1, + "bar": 1, + "Never": 2, + "happens": 3, + "text": 2, + "never": 1, + "s": 1, + "cascades.": 1, + "Object": 1, + "someValue": 2, + "switch": 1, + "Number": 1, + "String": 2, + "loops": 1, + "for": 2, + "loop": 2, + "var": 1, + "counter": 8, + "i": 4, + "..": 1, + "while": 2, + "iterator": 1, + ".iterator": 2, + "iterator.hasNext": 1, + "iterator.next": 1, + "example6": 1, + "java.io.FileReader": 1, + "java.util.Set": 1, + "com.google.common.io.CharStreams.*": 1, + "Movies": 1, + "numberOfActionMovies": 1, + "movies.filter": 2, + "categories.contains": 1, + "yearOfBestMovieFrom80ies": 1, + ".contains": 1, + "year": 2, + ".sortBy": 1, + "rating": 3, + ".last.year": 1, + "sumOfVotesOfTop2": 1, + "long": 2, + "movies": 3, + "movies.sortBy": 1, + ".take": 1, + ".map": 1, + "numberOfVotes": 2, + ".reduce": 1, + "a": 2, + "b": 2, + "|": 2, + "_229": 1, + "new": 2, + "FileReader": 1, + ".readLines.map": 1, + "line": 1, + "segments": 1, + "line.split": 1, + "return": 1, + "Movie": 2, + "segments.next": 4, + "Integer": 1, + "parseInt": 1, + "Double": 1, + "parseDouble": 1, + "Long": 1, + "parseLong": 1, + "segments.toSet": 1, + "@Data": 1, + "title": 1, + "int": 1, + "Set": 1, + "": 1, + "categories": 1 }, "TeX": { "%": 135, @@ -59178,1046 +55999,3421 @@ "sign": 1, "makebox": 6 }, - "Turing": { - "function": 1, - "factorial": 4, - "(": 3, - "n": 9, - "int": 2, - ")": 3, - "real": 1, - "if": 2, - "then": 1, - "result": 2, - "else": 1, - "*": 1, - "-": 1, - "end": 3, - "var": 1, - "loop": 2, - "put": 3, - "..": 1, - "get": 1, - "exit": 1, - "when": 1 - }, - "TXL": { - "define": 12, - "program": 1, - "[": 38, - "expression": 9, - "]": 38, - "end": 12, - "term": 6, - "|": 3, - "addop": 2, - "primary": 4, - "mulop": 2, - "number": 10, - "(": 2, - ")": 2, - "-": 3, - "/": 3, - "rule": 12, - "main": 1, - "replace": 6, - "E": 3, - "construct": 1, - "NewE": 3, - "resolveAddition": 2, - "resolveSubtraction": 2, - "resolveMultiplication": 2, - "resolveDivision": 2, - "resolveParentheses": 2, - "where": 1, - "not": 1, - "by": 6, - "N1": 8, - "+": 2, - "N2": 8, - "*": 2, - "N": 2 - }, - "TypeScript": { - "class": 3, - "Animal": 4, - "{": 9, - "constructor": 3, - "(": 18, - "public": 1, - "name": 5, - ")": 18, - "}": 9, - "move": 3, - "meters": 2, - "alert": 3, - "this.name": 1, - "+": 3, - ";": 8, - "Snake": 2, - "extends": 2, - "super": 2, - "super.move": 2, - "Horse": 2, - "var": 2, - "sam": 1, + "AppleScript": { + "tell": 40, + "application": 16, + "set": 108, + "localMailboxes": 3, + "to": 128, + "every": 3, + "mailbox": 2, + "if": 50, + "(": 89, + "count": 10, + "of": 72, + ")": 88, + "is": 40, + "greater": 5, + "than": 6, + "then": 28, + "messageCountDisplay": 5, + "&": 63, + "return": 16, + "my": 3, + "getMessageCountsForMailboxes": 4, + "else": 14, + "end": 67, + "everyAccount": 2, + "account": 1, + "repeat": 19, + "with": 11, + "eachAccount": 3, + "in": 13, + "accountMailboxes": 3, + "name": 8, + "outputMessage": 2, + "make": 3, "new": 2, - "tom": 1, - "sam.move": 1, - "tom.move": 1, - "console.log": 1 - }, - "UnrealScript": { - "//": 5, - "-": 220, - "class": 18, - "MutU2Weapons": 1, - "extends": 2, - "Mutator": 1, - "config": 18, - "(": 189, - "U2Weapons": 1, - ")": 189, - ";": 295, - "var": 30, - "string": 25, - "ReplacedWeaponClassNames0": 1, - "ReplacedWeaponClassNames1": 1, - "ReplacedWeaponClassNames2": 1, - "ReplacedWeaponClassNames3": 1, - "ReplacedWeaponClassNames4": 1, - "ReplacedWeaponClassNames5": 1, - "ReplacedWeaponClassNames6": 1, - "ReplacedWeaponClassNames7": 1, - "ReplacedWeaponClassNames8": 1, - "ReplacedWeaponClassNames9": 1, - "ReplacedWeaponClassNames10": 1, - "ReplacedWeaponClassNames11": 1, - "ReplacedWeaponClassNames12": 1, - "bool": 18, - "bConfigUseU2Weapon0": 1, - "bConfigUseU2Weapon1": 1, - "bConfigUseU2Weapon2": 1, - "bConfigUseU2Weapon3": 1, - "bConfigUseU2Weapon4": 1, - "bConfigUseU2Weapon5": 1, - "bConfigUseU2Weapon6": 1, - "bConfigUseU2Weapon7": 1, - "bConfigUseU2Weapon8": 1, - "bConfigUseU2Weapon9": 1, - "bConfigUseU2Weapon10": 1, - "bConfigUseU2Weapon11": 1, - "bConfigUseU2Weapon12": 1, - "//var": 8, - "byte": 4, - "bUseU2Weapon": 1, - "[": 125, - "]": 125, - "": 7, - "ReplacedWeaponClasses": 3, - "": 2, - "ReplacedWeaponPickupClasses": 1, - "": 3, - "ReplacedAmmoPickupClasses": 1, - "U2WeaponClasses": 2, - "//GE": 17, - "For": 3, - "default": 12, - "properties": 3, - "ONLY": 3, - "U2WeaponPickupClassNames": 1, - "U2AmmoPickupClassNames": 2, - "bIsVehicle": 4, - "bNotVehicle": 3, - "localized": 2, - "U2WeaponDisplayText": 1, - "U2WeaponDescText": 1, - "GUISelectOptions": 1, - "int": 10, - "FirePowerMode": 1, - "bExperimental": 3, - "bUseFieldGenerator": 2, - "bUseProximitySensor": 2, - "bIntegrateShieldReward": 2, - "IterationNum": 8, - "Weapons.Length": 1, - "const": 1, - "DamageMultiplier": 28, - "DamagePercentage": 3, - "bUseXMPFeel": 4, - "FlashbangModeString": 1, - "struct": 1, - "WeaponInfo": 2, - "{": 28, - "ReplacedWeaponClass": 1, - "Generated": 4, - "from": 6, - "ReplacedWeaponClassName.": 2, - "This": 3, - "is": 6, - "what": 1, - "we": 3, - "replace.": 1, - "ReplacedWeaponPickupClass": 1, - "UNUSED": 1, - "ReplacedAmmoPickupClass": 1, - "WeaponClass": 1, - "the": 31, - "weapon": 10, - "are": 1, - "going": 1, - "to": 4, - "put": 1, - "inside": 1, - "world.": 1, - "WeaponPickupClassName": 1, - "WeponClass.": 1, - "AmmoPickupClassName": 1, - "WeaponClass.": 1, - "bEnabled": 1, - "Structs": 1, - "can": 2, - "d": 1, - "thus": 1, - "still": 1, - "require": 1, - "bConfigUseU2WeaponX": 1, - "indicates": 1, - "that": 3, - "spawns": 1, - "a": 2, - "vehicle": 3, - "deployable": 1, - "turrets": 1, - ".": 2, - "These": 1, - "only": 2, - "work": 1, - "in": 4, - "gametypes": 1, - "duh.": 1, - "Opposite": 1, - "of": 1, - "works": 1, - "non": 1, - "gametypes.": 2, - "Think": 1, - "shotgun.": 1, - "}": 27, - "Weapons": 31, - "function": 5, - "PostBeginPlay": 1, - "local": 8, - "FireMode": 8, - "x": 65, - "//local": 3, - "ReplacedWeaponPickupClassName": 1, - "//IterationNum": 1, - "ArrayCount": 2, - "Level.Game.bAllowVehicles": 4, - "He": 1, - "he": 1, - "neat": 1, - "way": 1, + "outgoing": 2, + "message": 2, + "properties": 2, + "{": 32, + "content": 2, + "subject": 1, + "visible": 2, + "true": 8, + "}": 32, + "font": 2, + "size": 5, + "on": 18, + "theMailboxes": 2, + "-": 57, + "list": 9, + "mailboxes": 1, + "returns": 2, + "string": 17, + "displayString": 4, + "eachMailbox": 4, + "mailboxName": 2, + "messageCount": 2, + "messages": 1, + "as": 27, + "unreadCount": 2, + "unread": 1, + "padString": 3, + "theString": 4, + "fieldLength": 5, + "integer": 3, + "stringLength": 4, + "length": 1, + "paddedString": 5, + "text": 13, + "from": 9, + "character": 2, + "less": 1, + "or": 6, + "equal": 3, + "paddingLength": 2, + "times": 1, + "space": 1, + "activate": 3, + "current": 3, + "pane": 4, + "UI": 1, + "elements": 1, + "enabled": 2, + "tab": 1, + "group": 1, + "window": 5, + "process": 5, + "click": 1, + "radio": 1, + "button": 4, + "delay": 3, "get": 1, - "required": 1, - "number.": 1, - "for": 11, - "<": 9, - "+": 18, - ".bEnabled": 3, - "GetPropertyText": 5, - "needed": 1, - "use": 1, - "variables": 1, - "an": 1, - "array": 2, - "like": 1, - "fashion.": 1, - "//bUseU2Weapon": 1, - ".ReplacedWeaponClass": 5, - "DynamicLoadObject": 2, - "//ReplacedWeaponClasses": 1, - "//ReplacedWeaponPickupClassName": 1, - ".default.PickupClass": 1, - "if": 55, - ".ReplacedWeaponClass.default.FireModeClass": 4, - "None": 10, - "&&": 15, - ".default.AmmoClass": 1, - ".default.AmmoClass.default.PickupClass": 2, - ".ReplacedAmmoPickupClass": 2, - "break": 1, - ".WeaponClass": 7, - ".WeaponPickupClassName": 1, - ".WeaponClass.default.PickupClass": 1, - ".AmmoPickupClassName": 2, - ".bIsVehicle": 2, - ".bNotVehicle": 2, - "Super.PostBeginPlay": 1, - "ValidReplacement": 6, - "return": 47, - "CheckReplacement": 1, - "Actor": 1, - "Other": 23, - "out": 2, - "bSuperRelevant": 3, - "i": 12, - "WeaponLocker": 3, - "L": 2, - "xWeaponBase": 3, - ".WeaponType": 2, - "false": 3, - "true": 5, - "Weapon": 1, - "Other.IsA": 2, - "Other.Class": 2, - "Ammo": 1, - "ReplaceWith": 1, - "L.Weapons.Length": 1, - "L.Weapons": 2, - "//STARTING": 1, - "WEAPON": 1, - "xPawn": 6, - ".RequiredEquipment": 3, - "True": 2, - "Special": 1, - "handling": 1, - "Shield": 2, - "Reward": 2, - "integration": 1, - "ShieldPack": 7, - ".SetStaticMesh": 1, - "StaticMesh": 1, - ".Skins": 1, - "Shader": 2, - ".RepSkin": 1, - ".SetDrawScale": 1, - ".SetCollisionSize": 1, - ".PickupMessage": 1, - ".PickupSound": 1, - "Sound": 1, - "Super.CheckReplacement": 1, - "GetInventoryClassOverride": 1, - "InventoryClassName": 3, - "Super.GetInventoryClassOverride": 1, - "static": 2, - "FillPlayInfo": 1, - "PlayInfo": 3, - "": 1, - "Recs": 4, - "WeaponOptions": 17, - "Super.FillPlayInfo": 1, - ".static.GetWeaponList": 1, - "Recs.Length": 1, - ".ClassName": 1, - ".FriendlyName": 1, - "PlayInfo.AddSetting": 33, - "default.RulesGroup": 33, - "default.U2WeaponDisplayText": 33, - "event": 3, - "GetDescriptionText": 1, - "PropName": 35, - "default.U2WeaponDescText": 33, - "Super.GetDescriptionText": 1, - "PreBeginPlay": 1, - "float": 3, - "k": 29, - "Multiplier.": 1, - "Super.PreBeginPlay": 1, - "/100.0": 1, - "//log": 1, - "@k": 1, - "//Sets": 1, - "various": 1, - "settings": 1, - "match": 1, - "different": 1, - "games": 1, - ".default.DamagePercentage": 1, - "//Original": 1, - "U2": 3, - "compensate": 1, - "division": 1, - "errors": 1, - "Class": 105, - ".default.DamageMin": 12, - "*": 54, - ".default.DamageMax": 12, - ".default.Damage": 27, - ".default.myDamage": 4, - "//Dampened": 1, - "already": 1, - "no": 2, - "need": 1, - "rewrite": 1, - "else": 1, - "//General": 2, - "XMP": 4, - ".default.Spread": 1, - ".default.MaxAmmo": 7, - ".default.Speed": 8, - ".default.MomentumTransfer": 4, - ".default.ClipSize": 4, - ".default.FireLastReloadTime": 3, - ".default.DamageRadius": 4, - ".default.LifeSpan": 4, - ".default.ShakeRadius": 1, - ".default.ShakeMagnitude": 1, - ".default.MaxSpeed": 5, - ".default.FireRate": 3, - ".default.ReloadTime": 3, - "//3200": 1, - "too": 1, - "much": 1, - ".default.VehicleDamageScaling": 2, - "*k": 28, - "//Experimental": 1, - "options": 1, - "lets": 1, - "you": 2, - "Unuse": 1, - "EMPimp": 1, - "projectile": 1, - "and": 3, - "fire": 1, - "two": 1, - "CAR": 1, - "barrels": 1, - "//CAR": 1, - "nothing": 1, - "U2Weapons.U2AssaultRifleFire": 1, - "U2Weapons.U2AssaultRifleAltFire": 1, - "U2ProjectileConcussionGrenade": 1, - "U2Weapons.U2AssaultRifleInv": 1, - "U2Weapons.U2WeaponEnergyRifle": 1, - "U2Weapons.U2WeaponFlameThrower": 1, - "U2Weapons.U2WeaponPistol": 1, - "U2Weapons.U2AutoTurretDeploy": 1, - "U2Weapons.U2WeaponRocketLauncher": 1, - "U2Weapons.U2WeaponGrenadeLauncher": 1, - "U2Weapons.U2WeaponSniper": 2, - "U2Weapons.U2WeaponRocketTurret": 1, - "U2Weapons.U2WeaponLandMine": 1, - "U2Weapons.U2WeaponLaserTripMine": 1, - "U2Weapons.U2WeaponShotgun": 1, - "s": 7, - "Minigun.": 1, - "Enable": 5, - "Shock": 1, - "Lance": 1, - "Energy": 2, - "Rifle": 3, - "What": 7, - "should": 7, - "be": 8, - "replaced": 8, - "with": 9, - "Rifle.": 3, - "By": 7, - "it": 7, - "Bio": 1, - "Magnum": 2, - "Pistol": 1, - "Pistol.": 1, - "Onslaught": 1, - "Grenade": 1, - "Launcher.": 2, - "Shark": 2, - "Rocket": 4, - "Launcher": 1, - "Flak": 1, - "Cannon.": 1, - "Should": 1, - "Lightning": 1, - "Gun": 2, - "Widowmaker": 2, - "Sniper": 3, - "Classic": 1, - "here.": 1, - "Turret": 2, - "delpoyable": 1, - "deployable.": 1, - "Redeemer.": 1, - "Laser": 2, - "Trip": 2, - "Mine": 1, - "Mine.": 1, - "t": 2, - "replace": 1, - "Link": 1, - "matches": 1, - "vehicles.": 1, - "Crowd": 1, - "Pleaser": 1, - "Shotgun.": 1, - "have": 1, - "shields": 1, - "or": 2, - "damage": 1, - "filtering.": 1, - "If": 1, - "checked": 1, - "mutator": 1, - "produces": 1, - "Unreal": 4, - "II": 4, - "shield": 1, - "pickups.": 1, - "Choose": 1, - "between": 2, - "white": 1, - "overlay": 3, - "depending": 2, - "on": 2, - "player": 2, - "view": 1, - "style": 1, - "distance": 1, - "foolproof": 1, - "FM_DistanceBased": 1, - "Arena": 1, - "Add": 1, - "weapons": 1, - "other": 1, - "Fully": 1, - "customisable": 1, - "choose": 1, - "behaviour.": 1, - "US3HelloWorld": 1, - "GameInfo": 1, - "InitGame": 1, - "Options": 1, - "Error": 1, - "log": 1, - "defaultproperties": 1 - }, - "Verilog": { - "////////////////////////////////////////////////////////////////////////////////": 14, - "//": 117, - "timescale": 10, - "ns": 8, - "/": 11, - "ps": 8, - "module": 18, - "button_debounce": 3, - "(": 378, - "input": 68, - "clk": 40, - "clock": 3, - "reset_n": 32, - "asynchronous": 2, - "reset": 13, - "button": 25, - "bouncy": 1, - "output": 42, - "reg": 26, - "debounce": 6, - "debounced": 1, - "-": 73, - "cycle": 1, - "signal": 3, - ")": 378, - ";": 287, - "parameter": 7, - "CLK_FREQUENCY": 4, - "DEBOUNCE_HZ": 4, - "localparam": 4, - "COUNT_VALUE": 2, - "WAIT": 6, - "FIRE": 4, - "COUNT": 4, - "[": 179, - "]": 179, - "state": 6, - "next_state": 6, - "count": 6, - "always": 23, - "@": 16, - "posedge": 11, - "or": 14, - "negedge": 8, - "<": 47, - "begin": 46, - "if": 23, - "end": 48, - "else": 22, - "case": 3, - "<=>": 4, - "1": 7, - "endcase": 3, - "default": 2, - "endmodule": 18, - "control": 1, - "en": 13, - "dsp_sel": 9, - "an": 6, - "wire": 67, - "a": 5, - "b": 3, - "c": 3, - "d": 3, - "e": 3, - "f": 2, - "g": 2, - "h": 2, - "i": 62, - "j": 2, - "k": 2, - "l": 2, - "assign": 23, - "FDRSE": 6, - "#": 10, - ".INIT": 6, - "b0": 27, - "Synchronous": 12, - ".S": 6, - "b1": 19, - "Initial": 6, - "value": 6, - "of": 8, - "register": 6, - "DFF2": 1, - ".Q": 6, - "Data": 13, - ".C": 6, - "Clock": 14, - ".CE": 6, - "enable": 6, - ".D": 6, - ".R": 6, - "set": 6, - "DFF0": 1, - "DFF6": 1, - "DFF4": 1, - "DFF10": 1, - "DFF8": 1, - "hex_display": 1, - "num": 5, - "hex0": 2, - "hex1": 2, - "hex2": 2, - "hex3": 2, - "seg_7": 4, - "hex_group0": 1, - ".num": 4, - ".en": 4, - ".seg": 4, - "hex_group1": 1, - "hex_group2": 1, - "hex_group3": 1, - "mux": 1, - "opA": 4, - "opB": 3, - "sum": 5, - "out": 5, - "cout": 4, - "b0000": 1, - "b01": 1, - "b11": 1, - "pipeline_registers": 1, - "BIT_WIDTH": 5, - "pipe_in": 4, - "pipe_out": 5, - "NUMBER_OF_STAGES": 7, - "generate": 3, - "genvar": 3, - "*": 4, - "BIT_WIDTH*": 5, - "pipe_gen": 6, - "for": 4, - "+": 36, - "pipeline": 2, - "BIT_WIDTH*i": 2, - "endgenerate": 3, - "ps2_mouse": 1, - "Input": 2, - "Reset": 1, - "inout": 2, - "ps2_clk": 3, - "PS2": 2, - "Bidirectional": 2, - "ps2_dat": 3, - "the_command": 2, - "Command": 1, - "to": 3, - "send": 2, - "mouse": 1, - "send_command": 2, - "Signal": 2, - "command_was_sent": 2, - "command": 1, - "finished": 1, - "sending": 1, - "error_communication_timed_out": 3, - "received_data": 2, - "Received": 1, - "data": 4, - "received_data_en": 4, - "If": 1, - "new": 1, - "has": 1, - "been": 1, - "received": 1, - "start_receiving_data": 3, - "wait_for_incoming_data": 3, - "ps2_clk_posedge": 3, - "Internal": 2, - "Wires": 1, - "ps2_clk_negedge": 3, - "idle_counter": 4, - "Registers": 2, - "ps2_clk_reg": 4, - "ps2_data_reg": 5, - "last_ps2_clk": 4, - "ns_ps2_transceiver": 13, - "State": 1, - "Machine": 1, - "s_ps2_transceiver": 8, - "PS2_STATE_0_IDLE": 10, - "h1": 1, - "PS2_STATE_2_COMMAND_OUT": 2, - "h3": 1, - "PS2_STATE_4_END_DELAYED": 4, - "Defaults": 1, - "PS2_STATE_1_DATA_IN": 3, - "||": 1, - "PS2_STATE_3_END_TRANSFER": 3, - "h00": 1, - "&&": 3, - "h01": 1, - "ps2_mouse_cmdout": 1, - "mouse_cmdout": 1, - ".clk": 6, - "Inputs": 2, - ".reset": 2, - ".the_command": 1, - ".send_command": 1, - ".ps2_clk_posedge": 2, - ".ps2_clk_negedge": 2, - ".ps2_clk": 1, - "Bidirectionals": 1, - ".ps2_dat": 1, - ".command_was_sent": 1, - "Outputs": 2, - ".error_communication_timed_out": 1, - "ps2_mouse_datain": 1, - "mouse_datain": 1, - ".wait_for_incoming_data": 1, - ".start_receiving_data": 1, - ".ps2_data": 1, - ".received_data": 1, - ".received_data_en": 1, - "ns/1ps": 2, - "e0": 1, - "x": 41, - "y": 21, - "{": 11, - "}": 11, - "e1": 1, - "ch": 1, - "z": 7, - "o": 6, - "&": 6, - "maj": 1, - "|": 2, - "s0": 1, - "s1": 1, - "sign_extender": 1, - "INPUT_WIDTH": 5, - "OUTPUT_WIDTH": 4, - "original": 3, - "sign_extended_original": 2, - "sign_extend": 3, - "gen_sign_extend": 1, - "sqrt_pipelined": 3, - "start": 12, - "optional": 2, - "INPUT_BITS": 28, - "radicand": 12, - "unsigned": 2, - "data_valid": 7, - "valid": 2, - "OUTPUT_BITS": 14, - "root": 8, - "number": 2, - "bits": 2, - "any": 1, - "integer": 1, - "%": 3, - "start_gen": 7, - "propagation": 1, - "OUTPUT_BITS*INPUT_BITS": 9, - "root_gen": 15, - "values": 3, - "radicand_gen": 10, - "mask_gen": 9, - "mask": 3, - "mask_4": 1, - "is": 4, - "odd": 1, + "value": 1, + "field": 1, + "display": 4, + "dialog": 4, + "property": 7, + "lowFontSize": 9, + "highFontSize": 6, + "messageText": 4, + "userInput": 4, + "default": 4, + "answer": 3, + "buttons": 3, + "the": 56, + "returned": 5, + "minimumFontSize": 4, + "newFontSize": 6, + "result": 2, + "theText": 3, + "not": 5, + "exit": 1, + "fontList": 2, + "crazyTextMessage": 2, + "eachCharacter": 4, + "characters": 1, + "some": 1, + "item": 13, + "random": 4, + "number": 6, + "color": 1, + "isVoiceOverRunning": 3, + "isRunning": 3, + "false": 9, + "processes": 2, + "contains": 1, + "isVoiceOverRunningWithAppleScript": 3, + "isRunningWithAppleScript": 3, + "AppleScript": 2, + "VoiceOver": 1, + "try": 10, + "x": 1, + "bounds": 2, + "vo": 1, + "cursor": 1, + "error": 3, + "currentDate": 3, + "date": 1, + "amPM": 4, + "currentHour": 9, + "s": 3, + "minutes": 2, + "and": 7, + "<": 2, + "below": 1, + "sound": 1, + "nice": 1, + "currentMinutes": 4, + "ensure": 1, + "nn": 2, + "gets": 1, + "AM": 1, + "readjust": 1, + "for": 5, + "hour": 1, + "time": 1, + "currentTime": 3, + "day": 1, + "output": 1, + "say": 1, + "windowWidth": 3, + "windowHeight": 3, + "delimiters": 1, + "screen_width": 2, + "do": 4, + "JavaScript": 2, + "document": 2, + "screen_height": 2, + "myFrontMost": 3, + "first": 1, + "whose": 1, + "frontmost": 1, + "desktopTop": 2, + "desktopLeft": 1, + "desktopRight": 1, + "desktopBottom": 1, + "desktop": 1, + "w": 5, + "h": 4, + "drawer": 2, + "position": 1, + "/": 2, + "type_list": 6, + "extension_list": 6, + "html": 2, + "currently": 2, + "handled": 2, + "run": 4, + "FinderSelection": 4, + "selection": 2, + "alias": 8, + "FS": 10, + "Ideally": 2, "this": 2, - "INPUT_BITS*": 27, - "<<": 2, - "i/2": 2, - "even": 1, - "pipeline_stage": 1, - "INPUT_BITS*i": 5, - "t_button_debounce": 1, - ".CLK_FREQUENCY": 1, - ".DEBOUNCE_HZ": 1, - ".reset_n": 3, - ".button": 1, - ".debounce": 1, - "initial": 3, - "bx": 4, - "#10": 10, - "#5": 3, - "#100": 1, - "#0.1": 8, - "t_div_pipelined": 1, - "dividend": 3, - "divisor": 5, - "div_by_zero": 2, - "quotient": 2, - "quotient_correct": 1, - "BITS": 2, - "div_pipelined": 2, - ".BITS": 1, - ".dividend": 1, - ".divisor": 1, - ".quotient": 1, - ".div_by_zero": 1, - ".start": 2, - ".data_valid": 2, - "#50": 2, - "#1": 1, - "#1000": 1, - "finish": 2, - "t_sqrt_pipelined": 1, - ".INPUT_BITS": 1, - ".radicand": 1, - ".root": 1, - "#10000": 1, - "vga": 1, - "wb_clk_i": 6, - "Mhz": 1, - "VDU": 1, - "wb_rst_i": 6, - "wb_dat_i": 3, - "wb_dat_o": 2, - "wb_adr_i": 3, - "wb_we_i": 3, - "wb_tga_i": 5, - "wb_sel_i": 3, - "wb_stb_i": 2, - "wb_cyc_i": 2, - "wb_ack_o": 2, - "vga_red_o": 2, - "vga_green_o": 2, - "vga_blue_o": 2, - "horiz_sync": 2, - "vert_sync": 2, - "csrm_adr_o": 2, - "csrm_sel_o": 2, - "csrm_we_o": 2, - "csrm_dat_o": 2, - "csrm_dat_i": 2, - "csr_adr_i": 3, - "csr_stb_i": 2, - "conf_wb_dat_o": 3, - "conf_wb_ack_o": 3, - "mem_wb_dat_o": 3, - "mem_wb_ack_o": 3, - "csr_adr_o": 2, - "csr_dat_i": 3, - "csr_stb_o": 3, - "v_retrace": 3, - "vh_retrace": 3, - "w_vert_sync": 3, - "shift_reg1": 3, - "graphics_alpha": 4, - "memory_mapping1": 3, - "write_mode": 3, - "raster_op": 3, - "read_mode": 3, - "bitmask": 3, - "set_reset": 3, - "enable_set_reset": 3, - "map_mask": 3, - "x_dotclockdiv2": 3, - "chain_four": 3, - "read_map_select": 3, - "color_compare": 3, - "color_dont_care": 3, - "wbm_adr_o": 3, - "wbm_sel_o": 3, - "wbm_we_o": 3, - "wbm_dat_o": 3, - "wbm_dat_i": 3, - "wbm_stb_o": 3, - "wbm_ack_i": 3, - "stb": 4, - "cur_start": 3, - "cur_end": 3, - "start_addr": 2, - "vcursor": 3, - "hcursor": 3, - "horiz_total": 3, - "end_horiz": 3, - "st_hor_retr": 3, - "end_hor_retr": 3, - "vert_total": 3, - "end_vert": 3, - "st_ver_retr": 3, - "end_ver_retr": 3, - "pal_addr": 3, - "pal_we": 3, - "pal_read": 3, - "pal_write": 3, - "dac_we": 3, - "dac_read_data_cycle": 3, - "dac_read_data_register": 3, - "dac_read_data": 3, - "dac_write_data_cycle": 3, - "dac_write_data_register": 3, - "dac_write_data": 3, - "vga_config_iface": 1, - "config_iface": 1, - ".wb_clk_i": 2, - ".wb_rst_i": 2, - ".wb_dat_i": 2, - ".wb_dat_o": 2, - ".wb_adr_i": 2, - ".wb_we_i": 2, - ".wb_sel_i": 2, - ".wb_stb_i": 2, - ".wb_ack_o": 2, - ".shift_reg1": 2, - ".graphics_alpha": 2, - ".memory_mapping1": 2, - ".write_mode": 2, - ".raster_op": 2, - ".read_mode": 2, - ".bitmask": 2, - ".set_reset": 2, - ".enable_set_reset": 2, - ".map_mask": 2, - ".x_dotclockdiv2": 2, - ".chain_four": 2, - ".read_map_select": 2, - ".color_compare": 2, - ".color_dont_care": 2, - ".pal_addr": 2, - ".pal_we": 2, - ".pal_read": 2, - ".pal_write": 2, - ".dac_we": 2, - ".dac_read_data_cycle": 2, - ".dac_read_data_register": 2, - ".dac_read_data": 2, - ".dac_write_data_cycle": 2, - ".dac_write_data_register": 2, - ".dac_write_data": 2, - ".cur_start": 2, - ".cur_end": 2, - ".start_addr": 1, - ".vcursor": 2, - ".hcursor": 2, - ".horiz_total": 2, - ".end_horiz": 2, - ".st_hor_retr": 2, - ".end_hor_retr": 2, - ".vert_total": 2, - ".end_vert": 2, - ".st_ver_retr": 2, - ".end_ver_retr": 2, - ".v_retrace": 2, - ".vh_retrace": 2, - "vga_lcd": 1, - "lcd": 1, - ".rst": 1, - ".csr_adr_o": 1, - ".csr_dat_i": 1, - ".csr_stb_o": 1, - ".vga_red_o": 1, - ".vga_green_o": 1, - ".vga_blue_o": 1, - ".horiz_sync": 1, - ".vert_sync": 1, - "vga_cpu_mem_iface": 1, - "cpu_mem_iface": 1, - ".wbs_adr_i": 1, - ".wbs_sel_i": 1, - ".wbs_we_i": 1, - ".wbs_dat_i": 1, - ".wbs_dat_o": 1, - ".wbs_stb_i": 1, - ".wbs_ack_o": 1, - ".wbm_adr_o": 1, - ".wbm_sel_o": 1, - ".wbm_we_o": 1, - ".wbm_dat_o": 1, - ".wbm_dat_i": 1, - ".wbm_stb_o": 1, - ".wbm_ack_i": 1, - "vga_mem_arbitrer": 1, - "mem_arbitrer": 1, - ".clk_i": 1, - ".rst_i": 1, - ".csr_adr_i": 1, - ".csr_dat_o": 1, - ".csr_stb_i": 1, - ".csrm_adr_o": 1, - ".csrm_sel_o": 1, - ".csrm_we_o": 1, - ".csrm_dat_o": 1, - ".csrm_dat_i": 1 + "could": 2, + "be": 2, + "passed": 2, + "open": 8, + "handler": 2, + "SelectionCount": 6, + "userPicksFolder": 6, + "MyPath": 4, + "path": 6, + "me": 2, + "If": 2, + "I": 2, + "m": 2, + "a": 4, + "double": 2, + "clicked": 2, + "droplet": 2, + "these_items": 18, + "choose": 2, + "file": 6, + "prompt": 2, + "type": 6, + "thesefiles": 2, + "item_info": 24, + "i": 10, + "this_item": 14, + "info": 4, + "folder": 10, + "processFolder": 8, + "extension": 4, + "theFilePath": 8, + "thePOSIXFilePath": 8, + "POSIX": 4, + "processFile": 8, + "folders": 2, + "theFolder": 6, + "without": 2, + "invisibles": 2, + "thePOSIXFileName": 6, + "terminalCommand": 6, + "convertCommand": 4, + "newFileName": 4, + "shell": 2, + "script": 2, + "need": 1, + "pass": 1, + "URL": 1, + "Terminal": 1 }, - "VHDL": { - "-": 2, - "VHDL": 1, - "example": 1, - "file": 1, - "library": 1, - "ieee": 1, - ";": 7, - "use": 1, - "ieee.std_logic_1164.all": 1, - "entity": 2, - "inverter": 2, - "is": 2, - "port": 1, - "(": 1, + "Oxygene": { + "": 1, + "DefaultTargets=": 1, + "xmlns=": 1, + "": 3, + "": 1, + "Loops": 2, + "": 1, + "": 1, + "exe": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "False": 4, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "Properties": 1, + "App.ico": 1, + "": 1, + "": 1, + "Condition=": 3, + "Release": 2, + "": 1, + "": 1, + "{": 1, + "BD89C": 1, + "-": 4, + "B610": 1, + "CEE": 1, + "CAF": 1, + "C515D88E2C94": 1, + "}": 1, + "": 1, + "": 3, + "": 1, + "DEBUG": 1, + ";": 2, + "TRACE": 1, + "": 1, + "": 2, + ".": 2, + "bin": 2, + "Debug": 1, + "": 2, + "": 1, + "True": 3, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "": 1, + "Project=": 1, + "": 2, + "": 5, + "Include=": 12, + "": 5, + "(": 5, + "Framework": 5, + ")": 5, + "mscorlib.dll": 1, + "": 5, + "": 5, + "System.dll": 1, + "ProgramFiles": 1, + "Reference": 1, + "Assemblies": 1, + "Microsoft": 1, + "v3.5": 1, + "System.Core.dll": 1, + "": 1, + "": 1, + "System.Data.dll": 1, + "System.Xml.dll": 1, + "": 2, + "": 4, + "": 1, + "": 1, + "": 2, + "ResXFileCodeGenerator": 1, + "": 2, + "": 1, + "": 1, + "SettingsSingleFileGenerator": 1, + "": 1, + "": 1 + }, + "Rebol": { + "Rebol": 4, + "[": 54, + "author": 1, + "]": 61, + "hello": 8, + "func": 5, + "print": 4, + "REBOL": 5, + "System": 1, + "Title": 2, + "Rights": 1, + "{": 8, + "Copyright": 1, + "Technologies": 2, + "is": 4, "a": 2, - "in": 1, - "std_logic": 2, - "b": 2, - "out": 1, - ")": 1, - "end": 2, - "architecture": 2, - "rtl": 1, + "trademark": 1, "of": 1, - "begin": 1, - "<": 1, - "not": 1 + "}": 8, + "License": 2, + "Licensed": 1, + "under": 1, + "the": 3, + "Apache": 1, + "Version": 1, + "See": 1, + "http": 1, + "//www.apache.org/licenses/LICENSE": 1, + "-": 26, + "Purpose": 1, + "These": 1, + "are": 2, + "used": 3, + "to": 2, + "define": 1, + "natives": 1, + "and": 2, + "actions.": 1, + "Bind": 1, + "attributes": 1, + "for": 4, + "this": 1, + "block": 5, + "BIND_SET": 1, + "SHALLOW": 1, + ";": 19, + "Special": 1, + "as": 1, + "spec": 3, + "datatype": 2, + "test": 1, + "functions": 1, + "(": 30, + "e.g.": 1, + "time": 2, + ")": 33, + "value": 1, + "any": 1, + "type": 1, + "The": 1, + "native": 5, + "function": 3, + "must": 1, + "be": 1, + "defined": 1, + "first.": 1, + "This": 1, + "special": 1, + "boot": 1, + "created": 1, + "manually": 1, + "within": 1, + "C": 1, + "code.": 1, + "Creates": 2, + "internal": 2, + "usage": 2, + "only": 2, + ".": 4, + "no": 3, + "check": 2, + "required": 2, + "we": 2, + "know": 2, + "it": 2, + "correct": 2, + "action": 2, + "re": 20, + "s": 5, + "/i": 1, + "rejoin": 1, + "compose": 1, + "either": 1, + "i": 1, + "little": 1, + "helper": 1, + "standard": 1, + "grammar": 1, + "regex": 2, + "date": 6, + "naive": 1, + "string": 1, + "|": 22, + "S": 3, + "*": 7, + "<(?:[^^\\>": 1, + "d": 3, + "+": 6, + "/": 5, + "@": 1, + "%": 2, + "A": 3, + "F": 1, + "url": 1, + "PR_LITERAL": 10, + "string_url": 1, + "email": 1, + "string_email": 1, + "binary": 1, + "binary_base_two": 1, + "binary_base_sixty_four": 1, + "binary_base_sixteen": 1, + "re/i": 2, + "issue": 1, + "string_issue": 1, + "values": 1, + "value_date": 1, + "value_time": 1, + "tuple": 1, + "value_tuple": 1, + "pair": 1, + "value_pair": 1, + "number": 2, + "PR": 1, + "Za": 2, + "z0": 2, + "<[=>": 1, + "rebol": 1, + "red": 1, + "/system": 1, + "world": 1, + "topaz": 1, + "true": 1, + "false": 1, + "yes": 1, + "on": 1, + "off": 1, + "none": 1, + "#": 1 }, - "VimL": { + "Latte": { + "{": 54, + "**": 1, + "*": 4, + "@param": 3, + "string": 2, + "basePath": 1, + "web": 1, + "base": 1, + "path": 1, + "robots": 2, + "tell": 1, + "how": 1, + "to": 2, + "index": 1, + "the": 1, + "content": 1, + "of": 3, + "a": 4, + "page": 1, + "(": 18, + "optional": 1, + ")": 18, + "array": 1, + "flashes": 1, + "flash": 3, + "messages": 1, + "}": 54, + "": 1, + "html": 1, + "": 1, + "": 1, + "": 6, + "charset=": 1, + "name=": 4, + "content=": 5, + "n": 8, + "ifset=": 1, + "http": 1, + "equiv=": 1, + "": 1, + "ifset": 1, + "title": 4, + "/ifset": 1, + "Translation": 1, + "report": 1, + "": 1, + "": 2, + "rel=": 2, + "media=": 1, + "href=": 4, + "": 3, + "block": 3, + "#head": 1, + "/block": 3, + "": 1, + "": 1, + "class=": 12, + "document.documentElement.className": 1, + "+": 3, + "#navbar": 1, + "include": 3, + "_navbar.latte": 1, + "
": 6, + "inner": 1, + "foreach=": 3, + "_flash.latte": 1, + "
": 7, + "#content": 1, + "
": 1, + "
": 1, + "src=": 1, + "#scripts": 1, + "": 1, + "": 1, + "var": 3, + "define": 1, + "author": 7, + "
": 2, + "Author": 2, + "authorId": 2, + "-": 71, + "id": 3, + "black": 2, + "avatar": 2, + "img": 2, + "rounded": 2, + "class": 2, + "tooltip": 4, + "Total": 1, + "time": 4, + "shortName": 1, + "translated": 4, + "on": 5, + "all": 1, + "videos.": 1, + "amaraCallbackLink": 1, + "row": 2, + "col": 3, + "md": 2, + "outOf": 5, + "done": 7, + "threshold": 4, + "alert": 2, + "warning": 2, + "<=>": 2, + "Seems": 1, + "complete": 1, + "|": 6, + "out": 1, + "

": 2, + "elseif": 2, + "<": 1, + "p": 1, + "if": 7, + "Although": 1, + "is": 1, + "there": 1, + "are": 1, "no": 1, - "toolbar": 1, - "set": 7, - "guioptions": 1, - "-": 1, - "T": 1, - "nocompatible": 1, - "ignorecase": 1, - "incsearch": 1, - "smartcase": 1, - "showmatch": 1, - "showcmd": 1, + "English": 1, + "subtitles": 1, + "for": 1, + "comparison.": 1, + "/if": 8, + "/cache": 1, + "editor": 1, + "ksid": 2, + "new": 5, + "video": 2, + "siteId": 1, + "Video": 1, + "khanovaskola.cz": 1, + "revision": 18, + "rev": 4, + "this": 3, + "older": 1, + "#": 2, + "else": 2, + "newer": 1, + "
": 1, + "

": 1, + "diffs": 3, + "noescape": 2, + "

": 1, + "description": 1, + "text": 4, + "as": 2, + "line": 3, + "context": 1, + "splitter": 1, + "template": 1, + "bottom": 1, + "Expand": 1, + "fa": 16, + "sort": 1, + "ellipsis": 1, + "h": 1, + "success": 1, + "amaraEdit": 1, + "amaraId": 2, + "editButton": 1, + "btn": 17, + "default": 6, + "edit": 1, + "khanAcademy": 1, + "kaButton": 1, + "link": 1, + "info": 1, + "group": 4, + "approve": 1, + "thumbs": 3, + "up": 1, + "markIncomplete": 2, + "down": 2, + "redirectToAdd": 1, + "plus": 1, + "square": 1, + "table": 2, + "condensed": 1, + "revisions": 1, + "revId": 1, + "secondary": 2, + "Percent": 1, + "lines": 1, + "&": 1, + "thinsp": 1, + "%": 1, + "
": 3, + "": 3, + "": 2, + "incomplete": 3, + "approved": 2, + "": 1, + "user": 1, + "loggedIn": 1, + "&&": 1, + "comments": 2, + "count": 1, + "": 2, + "": 2, + "colspan=": 1, + "": 1, + "comment": 4, + "left": 1, + "createdAt": 1, + "timeAgo": 1, + "noborder": 1, + "input": 3, + "form": 1, + "control": 1, + "Comment": 1, + "only": 1, + "visible": 1, + "other": 1, + "editors": 1, + "save": 1, + "share": 1, + "": 1, + "": 1, + "/form": 1, + "/foreach": 1, + "
": 1 + }, + "C#": { + "@": 1, + "{": 5, + "ViewBag.Title": 1, + ";": 8, + "}": 5, + "@section": 1, + "featured": 1, + "
": 1, + "class=": 7, + "
": 1, + "
": 1, + "

": 1, + "@ViewBag.Title.": 1, + "

": 1, + "

": 1, + "@ViewBag.Message": 1, + "

": 1, + "
": 1, + "

": 1, + "To": 1, + "learn": 1, + "more": 4, + "about": 2, + "ASP.NET": 5, + "MVC": 4, + "visit": 2, + "": 5, + "href=": 5, + "title=": 2, + "http": 1, + "//asp.net/mvc": 1, + "": 5, + ".": 2, + "The": 1, + "page": 1, + "features": 3, + "": 1, + "videos": 1, + "tutorials": 1, + "and": 6, + "samples": 1, + "": 1, + "to": 4, + "help": 1, + "you": 4, + "get": 1, + "the": 5, + "most": 1, + "from": 1, + "MVC.": 1, + "If": 1, + "have": 1, + "any": 1, + "questions": 1, + "our": 1, + "forums": 1, + "

": 1, + "
": 1, + "
": 1, + "

": 1, + "We": 1, + "suggest": 1, + "following": 1, + "

": 1, + "
    ": 1, + "
  1. ": 3, + "
    ": 3, + "Getting": 1, + "Started": 1, + "
    ": 3, + "gives": 2, + "a": 3, + "powerful": 1, + "patterns": 1, + "-": 3, + "based": 1, + "way": 1, + "build": 1, + "dynamic": 1, + "websites": 1, + "that": 5, + "enables": 1, + "clean": 1, + "separation": 1, + "of": 2, + "concerns": 1, + "full": 1, + "control": 1, + "over": 1, + "markup": 1, + "for": 4, + "enjoyable": 1, + "agile": 1, + "development.": 1, + "includes": 1, + "many": 1, + "enable": 1, + "fast": 1, + "TDD": 1, + "friendly": 1, + "development": 1, + "creating": 1, + "sophisticated": 1, + "applications": 1, + "use": 1, + "latest": 1, + "web": 2, + "standards.": 1, + "Learn": 3, + "
  2. ": 3, + "Add": 1, + "NuGet": 2, + "packages": 1, + "jump": 1, + "start": 1, + "your": 2, + "coding": 1, + "makes": 1, + "it": 2, + "easy": 1, + "install": 1, + "update": 1, + "free": 1, + "libraries": 1, + "tools.": 1, + "Find": 1, + "Web": 1, + "Hosting": 1, + "You": 1, + "can": 1, + "easily": 1, + "find": 1, + "hosting": 1, + "company": 1, + "offers": 1, + "right": 1, + "mix": 1, + "price": 1, + "applications.": 1, + "
": 1, + "using": 5, + "System": 1, + "System.Collections.Generic": 1, + "System.Linq": 1, + "System.Text": 1, + "System.Threading.Tasks": 1, + "namespace": 1, + "LittleSampleApp": 1, + "///": 4, + "": 1, + "Just": 1, + "what": 1, + "says": 1, + "on": 1, + "tin.": 1, + "A": 1, + "little": 1, + "sample": 1, + "application": 1, + "Linguist": 1, + "try": 1, + "out.": 1, + "": 1, + "class": 1, + "Program": 1, + "static": 1, + "void": 1, + "Main": 1, + "(": 3, + "string": 1, + "[": 1, + "]": 1, + "args": 1, + ")": 3, + "Console.WriteLine": 2 + }, + "LFE": { + ";": 213, + "-": 98, + "*": 6, + "Mode": 1, + "LFE": 4, + "Code": 1, + "from": 2, + "Paradigms": 1, + "of": 10, + "Artificial": 1, + "Intelligence": 1, + "Programming": 1, + "Copyright": 4, + "(": 217, + "c": 4, + ")": 231, + "Peter": 1, + "Norvig": 1, + "File": 4, + "gps1.lisp": 1, + "First": 1, + "version": 1, + "GPS": 1, + "General": 1, + "Problem": 1, + "Solver": 1, + "Converted": 1, + "to": 10, + "by": 4, + "Robert": 3, + "Virding": 3, + "Define": 1, + "macros": 1, + "for": 5, + "global": 2, + "variable": 2, + "access.": 1, + "This": 2, + "is": 5, + "a": 8, + "hack": 1, + "and": 7, + "very": 1, + "naughty": 1, + "defsyntax": 2, + "defvar": 2, + "[": 3, + "name": 8, + "val": 2, + "]": 3, + "let": 6, + "v": 3, + "put": 1, + "getvar": 3, + "get": 21, + "solved": 1, + "defun": 20, + "gps": 1, + "state": 4, + "goals": 2, + "Set": 1, + "variables": 1, + "but": 1, + "use": 6, + "existing": 1, + "*ops*": 1, + "*state*": 5, + "The": 4, + "current": 1, + "list": 13, + "conditions.": 1, + "if": 1, + "every": 1, + "fun": 1, + "achieve": 1, + "op": 8, + "action": 3, + "setvar": 2, + "set": 1, + "difference": 1, + "del": 5, + "union": 1, + "add": 3, + "drive": 1, + "son": 2, + "school": 2, + "preconds": 4, + "at": 4, + "shop": 6, + "installs": 1, + "battery": 1, + "car": 1, + "works": 1, + "make": 2, + "in": 10, + "communication": 2, + "with": 8, + "telephone": 1, + "have": 3, + "phone": 1, + "book": 1, + "give": 1, + "money": 3, + "has": 1, + "Licensed": 3, + "under": 9, + "the": 36, + "Apache": 3, + "License": 12, + "Version": 3, + "you": 3, + "may": 6, + "not": 5, + "this": 3, + "file": 6, + "except": 3, + "compliance": 3, + "License.": 6, + "You": 3, + "obtain": 3, + "copy": 3, + "http": 4, + "//www.apache.org/licenses/LICENSE": 3, + "Unless": 3, + "required": 3, + "applicable": 3, + "law": 3, + "or": 6, + "agreed": 3, + "writing": 3, + "software": 3, + "distributed": 6, + "on": 4, + "an": 5, + "BASIS": 3, + "WITHOUT": 3, + "WARRANTIES": 3, + "OR": 3, + "CONDITIONS": 3, + "OF": 3, + "ANY": 3, + "KIND": 3, + "either": 3, + "express": 3, + "implied.": 3, + "See": 3, + "specific": 3, + "language": 3, + "governing": 3, + "permissions": 3, + "limitations": 3, + "mnesia_demo.lfe": 1, + "Author": 3, + "Purpose": 3, + "A": 1, + "simple": 4, + "Mnesia": 2, + "demo": 2, + "LFE.": 1, + "contains": 1, + "using": 1, + "access": 1, + "tables.": 1, + "It": 1, + "shows": 2, + "how": 2, + "emp": 1, + "XXXX": 1, + "macro": 1, + "ETS": 1, + "match": 5, + "pattern": 1, + "together": 1, + "mnesia": 8, + "match_object": 1, + "specifications": 1, + "select": 1, + "Query": 2, + "List": 2, + "Comprehensions.": 1, + "defmodule": 2, + "mnesia_demo": 1, + "export": 2, + "new": 2, + "by_place": 1, + "by_place_ms": 1, + "by_place_qlc": 2, + "defrecord": 1, + "person": 8, + "place": 7, + "job": 3, + "Start": 1, + "create": 4, + "table": 2, + "we": 1, + "will": 1, + "memory": 1, + "only": 1, + "schema.": 1, + "start": 1, + "create_table": 1, + "#": 3, + "attributes": 1, + "Initialise": 1, + "table.": 1, + "people": 1, + "spec": 1, + "n": 4, + "p": 2, + "j": 2, + "when": 1, + "tuple": 1, + "transaction": 2, + "f": 3, + "Use": 1, + "Comprehensions": 1, + "records": 1, + "lambda": 18, + "q": 2, + "qlc": 2, + "lc": 1, + "<": 1, + "e": 1, + "Duncan": 4, + "McGreggor": 4, + "": 2, + "object.lfe": 1, + "Demonstrating": 2, + "OOP": 1, + "closures": 1, + "object": 16, + "system": 1, + "demonstrated": 1, + "below": 3, + "do": 2, + "following": 2, + "objects": 2, + "call": 2, + "methods": 5, + "those": 1, + "which": 1, + "can": 1, + "other": 1, + "update": 1, + "instance": 2, + "Note": 1, + "however": 1, + "that": 1, + "his": 1, + "example": 2, + "does": 1, + "demonstrate": 1, + "inheritance.": 1, + "To": 1, + "code": 2, + "cd": 1, + "examples": 1, + "../bin/lfe": 1, + "pa": 1, + "../ebin": 1, + "Load": 1, + "fish": 6, + "class": 3, + "slurp": 2, + "#Fun": 1, + "": 1, + "Execute": 1, + "some": 2, + "basic": 1, + "species": 7, + "mommy": 3, + "move": 4, + "Carp": 1, + "swam": 1, + "feet": 1, + "ok": 1, + "id": 9, + "Now": 1, + "s": 19, + "strictly": 1, + "necessary.": 1, + "When": 1, + "isn": 1, + "children": 10, + "formatted": 1, + "verb": 2, + "self": 6, + "distance": 2, + "count": 7, + "erlang": 1, + "length": 1, + "method": 7, + "funcall": 23, + "define": 1, + "info": 1, + "reproduce": 1, + "church.lfe": 1, + "church": 20, + "numerals": 1, + "calculus": 1, + "was": 1, + "used": 1, + "section": 1, + "user": 1, + "guide": 1, + "here": 1, + "//lfe.github.io/user": 1, + "guide/recursion/5.html": 1, + "Here": 1, + "usage": 1, + "five/0": 2, + "int2": 1, + "all": 1, + "zero": 2, + "x": 12, + "one": 1, + "two": 1, + "three": 1, + "four": 1, + "five": 1, + "int": 2, + "successor": 3, + "+": 2, + "int1": 1, + "numeral": 8, + "successor/1": 1, + "limit": 4, + "cond": 1, + "/": 1, + "integer": 2 + }, + "MoonScript": { + "types": 2, + "require": 5, + "util": 2, + "data": 1, + "import": 5, + "reversed": 2, + "unpack": 22, + "from": 4, + "ntype": 16, + "mtype": 3, + "build": 7, + "smart_node": 7, + "is_slice": 2, + "value_is_singular": 3, + "insert": 18, + "table": 2, + "NameProxy": 14, + "LocalName": 2, + "destructure": 1, + "local": 1, + "implicitly_return": 2, + "class": 4, + "Run": 8, + "new": 2, + "(": 54, + "@fn": 1, + ")": 54, + "self": 2, + "[": 79, + "]": 79, + "call": 3, + "state": 2, + "self.fn": 1, + "-": 51, + "transform": 2, + "the": 4, + "last": 6, + "stm": 16, + "is": 2, + "a": 4, + "list": 6, + "of": 1, + "stms": 4, + "will": 1, + "puke": 1, + "on": 1, + "group": 1, + "apply_to_last": 6, + "fn": 3, + "find": 2, + "real": 1, + "exp": 17, + "last_exp_id": 3, + "for": 20, + "i": 15, + "#stms": 1, + "if": 43, + "and": 8, + "break": 1, + "return": 11, + "in": 18, + "ipairs": 3, + "else": 22, + "body": 26, + "sindle": 1, + "expression/statement": 1, + "is_singular": 2, + "false": 2, + "#body": 1, + "true": 4, + "find_assigns": 2, + "out": 9, + "{": 135, + "}": 136, + "thing": 4, + "*body": 2, + "switch": 7, + "when": 12, + "table.insert": 3, + "extract": 1, + "names": 16, + "hoist_declarations": 1, + "assigns": 5, + "hoist": 1, + "plain": 1, + "old": 1, + "*find_assigns": 1, + "name": 31, + "*names": 3, + "type": 5, + "after": 1, + "runs": 1, + "idx": 4, + "while": 3, + "do": 2, + "+": 2, + "expand_elseif_assign": 2, + "ifstm": 5, + "#ifstm": 1, + "case": 13, + "split": 4, + "constructor_name": 2, + "with_continue_listener": 4, + "continue_name": 13, + "nil": 8, + "@listen": 1, + "unless": 6, + "@put_name": 2, + "build.group": 14, + "@splice": 1, + "lines": 2, + "Transformer": 2, + "@transformers": 3, + "@seen_nodes": 3, + "setmetatable": 1, + "__mode": 1, + "scope": 4, + "node": 68, + "...": 10, + "transformer": 3, + "res": 3, + "or": 6, + "bind": 1, + "@transform": 2, + "__call": 1, + "can_transform": 1, + "construct_comprehension": 2, + "inner": 2, + "clauses": 4, + "current_stms": 7, + "_": 10, + "clause": 4, + "t": 10, + "iter": 2, + "elseif": 1, + "cond": 11, + "error": 4, + "..t": 1, + "Statement": 2, + "root_stms": 1, + "@": 1, + "assign": 9, + "values": 10, + "bubble": 1, + "cascading": 2, + "transformed": 2, + "#values": 1, + "value": 7, + "@transform.statement": 2, + "types.cascading": 1, + "ret": 16, + "types.is_value": 1, + "destructure.has_destructure": 2, + "destructure.split_assign": 1, + "continue": 1, + "@send": 1, + "build.assign_one": 11, + "export": 1, + "they": 1, + "are": 1, + "included": 1, + "#node": 3, + "cls": 5, + "cls.name": 1, + "build.assign": 3, + "update": 1, + "op": 2, + "op_final": 3, + "match": 1, + "..op": 1, + "not": 2, + "source": 7, + "stubs": 1, + "real_names": 4, + "build.chain": 7, + "base": 8, + "stub": 4, + "*stubs": 2, + "source_name": 3, + "comprehension": 1, + "action": 4, + "decorated": 1, + "dec": 6, + "wrapped": 4, + "fail": 5, + "..": 1, + "build.declare": 1, + "*stm": 1, + "expand": 1, + "destructure.build_assign": 2, + "build.do": 2, + "apply": 1, + "decorator": 1, + "mutate": 1, + "all": 1, + "bodies": 1, + "body_idx": 3, + "with": 3, + "block": 2, + "scope_name": 5, + "named_assign": 2, + "assign_name": 1, + "@set": 1, + "foreach": 1, + "node.iter": 1, + "destructures": 5, + "node.names": 3, + "proxy": 2, + "next": 1, + "node.body": 9, + "index_name": 3, + "list_name": 6, + "slice_var": 3, + "bounds": 3, + "slice": 7, + "#list": 1, + "table.remove": 2, + "max_tmp_name": 5, + "index": 2, + "conds": 3, + "exp_name": 3, + "convert": 1, + "into": 1, + "statment": 1, + "convert_cond": 2, + "case_exps": 3, + "cond_exp": 5, + "first": 3, + "if_stm": 5, + "*conds": 1, + "if_cond": 4, + "parent_assign": 3, + "parent_val": 1, + "apart": 1, + "properties": 4, + "statements": 4, + "item": 3, + "tuple": 8, + "*item": 1, + "constructor": 7, + "*properties": 1, + "key": 3, + "parent_cls_name": 5, + "base_name": 4, + "self_name": 4, + "cls_name": 1, + "build.fndef": 3, + "args": 3, + "arrow": 1, + "then": 2, + "constructor.arrow": 1, + "real_name": 6, + "#real_name": 1, + "build.table": 2, + "look": 1, + "up": 1, + "object": 1, + "class_lookup": 3, + "cls_mt": 2, + "out_body": 1, + "make": 1, + "sure": 1, + "we": 1, + "don": 1, + "string": 1, + "parens": 2, + "colon_stub": 1, + "super": 1, + "dot": 1, + "varargs": 2, + "arg_list": 1, + "Value": 1 + }, + "Moocode": { + "@program": 29, + "toy": 3, + "wind": 1, + "this.wound": 8, + "+": 39, + ";": 505, + "player": 2, + "tell": 1, + "(": 600, + "this.name": 4, + ")": 593, + "player.location": 1, + "announce": 1, + "player.name": 1, + ".": 30, + "@verb": 1, + "do_the_work": 3, + "this": 114, + "none": 1, + "if": 90, + "object_utils": 1, + "isa": 21, + "this.location": 3, + "room": 1, + "announce_all": 2, + "continue_msg": 1, + "-": 98, + "fork": 1, + "endfork": 1, + "else": 45, + "wind_down_msg": 1, + "endif": 93, + "<": 13, + "while": 15, + "read": 1, + "endwhile": 14, + "I": 1, + "M": 1, + "P": 1, + "O": 1, + "R": 1, + "T": 2, + "A": 1, + "N": 1, + "The": 2, + "following": 2, + "code": 43, + "cannot": 1, + "be": 1, + "used": 1, + "as": 28, + "is.": 1, + "You": 1, + "will": 1, + "need": 1, + "to": 1, + "rewrite": 1, + "functionality": 1, + "that": 3, + "is": 6, + "not": 2, + "present": 1, + "in": 43, + "your": 1, + "server/core.": 1, + "most": 1, + "straight": 1, + "forward": 1, + "target": 7, + "other": 1, + "than": 1, + "Stunt/Improvise": 1, + "a": 12, + "server/core": 1, + "provides": 1, + "map": 5, + "datatype": 1, + "and": 1, + "anonymous": 1, + "objects.": 1, + "Installation": 1, + "my": 1, + "server": 1, + "uses": 1, + "the": 4, + "object": 1, + "numbers": 1, + "#36819": 1, + "MOOcode": 4, + "Experimental": 2, + "Language": 2, + "Package": 2, + "#36820": 1, + "Changelog": 1, + "#36821": 1, + "Dictionary": 1, + "#36822": 1, + "Compiler": 2, + "#38128": 1, + "Syntax": 4, + "Tree": 1, + "Pretty": 1, + "Printer": 1, + "#37644": 1, + "Tokenizer": 2, + "Prototype": 25, + "#37645": 1, + "Parser": 2, + "#37648": 1, + "Symbol": 2, + "#37649": 1, + "Literal": 1, + "#37650": 1, + "Statement": 8, + "#37651": 1, + "Operator": 11, + "#37652": 1, + "Control": 1, + "Flow": 1, + "#37653": 1, + "Assignment": 2, + "#38140": 1, + "Compound": 1, + "#38123": 1, + "Prefix": 1, + "#37654": 1, + "Infix": 1, + "#37655": 1, + "Name": 1, + "#37656": 1, + "Bracket": 1, + "#37657": 1, + "Brace": 1, + "#37658": 1, + "If": 1, + "#38119": 1, + "For": 1, + "#38120": 1, + "Loop": 1, + "#38126": 1, + "Fork": 1, + "#38127": 1, + "Try": 1, + "#37659": 1, + "Invocation": 1, + "#37660": 1, + "Verb": 1, + "Selector": 2, + "#37661": 1, + "Property": 1, + "#38124": 1, + "Error": 1, + "Catching": 1, + "#38122": 1, + "Positional": 1, + "#38141": 1, + "From": 1, + "#37662": 1, + "Utilities": 1, + "#36823": 1, + "Tests": 4, + "#36824": 1, + "#37646": 1, + "#37647": 1, + "parent": 1, + "plastic.tokenizer_proto": 4, + "_": 4, + "_ensure_prototype": 4, + "application/x": 27, + "moocode": 27, + "typeof": 11, + "OBJ": 3, + "||": 19, + "raise": 23, + "E_INVARG": 3, + "_ensure_instance": 7, + "ANON": 2, + "plastic.compiler": 3, + "_lookup": 2, + "private": 1, + "{": 112, + "name": 9, + "}": 112, + "args": 26, + "value": 73, + "this.variable_map": 3, + "[": 99, + "]": 102, + "E_RANGE": 17, + "return": 61, + "tostr": 51, + "random": 3, + "this.reserved_names": 1, + "compile": 1, + "source": 32, + "options": 3, + "tokenizer": 6, + "this.plastic.tokenizer_proto": 2, + "create": 16, + "parser": 89, + "this.plastic.parser_proto": 2, + "compiler": 2, + "try": 2, + "statements": 13, + "except": 2, + "ex": 4, + "ANY": 3, + ".tokenizer.row": 1, + "endtry": 2, + "for": 31, + "statement": 29, + "statement.type": 10, + "@source": 3, + "p": 82, + "@compiler": 1, + "endfor": 31, + "ticks_left": 4, + "seconds_left": 4, + "&&": 39, + "suspend": 4, + "statement.value": 20, + "elseif": 41, + "_generate": 1, + "this.plastic.sign_operator_proto": 1, + "|": 9, + "statement.first": 18, + "statement.second": 13, + "this.plastic.control_flow_statement_proto": 1, + "first": 22, + "statement.id": 3, + "this.plastic.if_statement_proto": 1, + "s": 47, + "respond_to": 9, + "@code": 28, + "@this": 13, + "i": 29, + "length": 11, + "LIST": 6, + "this.plastic.for_statement_proto": 1, + "statement.subtype": 2, + "this.plastic.loop_statement_proto": 1, + "prefix": 4, + "this.plastic.fork_statement_proto": 1, + "this.plastic.try_statement_proto": 1, + "x": 9, + "@x": 3, + "join": 6, + "this.plastic.assignment_operator_proto": 1, + "statement.first.type": 1, + "res": 19, + "rest": 3, + "v": 17, + "statement.first.value": 1, + "v.type": 2, + "v.first": 2, + "v.second": 1, + "this.plastic.bracket_operator_proto": 1, + "statement.third": 4, + "this.plastic.brace_operator_proto": 1, + "this.plastic.invocation_operator_proto": 1, + "@a": 2, + "statement.second.type": 2, + "this.plastic.property_selector_operator_proto": 1, + "this.plastic.error_catching_operator_proto": 1, + "second": 18, + "this.plastic.literal_proto": 1, + "toliteral": 1, + "this.plastic.positional_symbol_proto": 1, + "this.plastic.prefix_operator_proto": 3, + "this.plastic.infix_operator_proto": 1, + "this.plastic.traditional_ternary_operator_proto": 1, + "this.plastic.name_proto": 1, + "plastic.printer": 2, + "_print": 4, + "indent": 4, + "result": 7, + "item": 2, + "@result": 2, + "E_PROPNF": 1, + "print": 1, + "instance": 59, + "instance.row": 1, + "instance.column": 1, + "instance.source": 1, + "advance": 16, + "this.token": 21, + "this.source": 3, + "row": 23, + "this.row": 2, + "column": 63, + "this.column": 2, + "eol": 5, + "block_comment": 6, + "inline_comment": 4, + "loop": 14, + "len": 3, + "continue": 16, + "next_two": 4, + "column..column": 1, + "c": 44, + "break": 6, + "re": 1, + "not.": 1, + "Worse": 1, + "*": 4, + "valid": 2, + "error": 6, + "like": 4, + "E_PERM": 4, + "treated": 2, + "literal": 2, + "an": 2, + "invalid": 2, + "E_FOO": 1, + "variable.": 1, + "Any": 1, + "starts": 1, + "with": 1, + "characters": 1, + "*now*": 1, + "but": 1, + "errors": 1, + "are": 1, + "errors.": 1, + "*/": 1, + "<=>": 8, + "z": 4, + "col1": 6, + "mark": 2, + "start": 2, + "1": 13, + "9": 4, + "col2": 4, + "chars": 21, + "index": 2, + "E_": 1, + "token": 24, + "type": 9, + "this.errors": 1, + "col1..col2": 2, + "toobj": 1, + "float": 4, + "0": 1, + "cc": 1, + "e": 1, + "tofloat": 1, + "toint": 1, + "esc": 1, + "q": 1, + "col1..column": 1, + "plastic.parser_proto": 3, + "@options": 1, + "instance.tokenizer": 1, + "instance.symbols": 1, + "plastic": 1, + "this.plastic": 1, + "symbol": 65, + "plastic.name_proto": 1, + "plastic.literal_proto": 1, + "plastic.operator_proto": 10, + "plastic.prefix_operator_proto": 1, + "plastic.error_catching_operator_proto": 3, + "plastic.assignment_operator_proto": 1, + "plastic.compound_assignment_operator_proto": 5, + "plastic.traditional_ternary_operator_proto": 2, + "plastic.infix_operator_proto": 13, + "plastic.sign_operator_proto": 2, + "plastic.bracket_operator_proto": 1, + "plastic.brace_operator_proto": 1, + "plastic.control_flow_statement_proto": 3, + "plastic.if_statement_proto": 1, + "plastic.for_statement_proto": 1, + "plastic.loop_statement_proto": 2, + "plastic.fork_statement_proto": 1, + "plastic.try_statement_proto": 1, + "plastic.from_statement_proto": 2, + "plastic.verb_selector_operator_proto": 2, + "plastic.property_selector_operator_proto": 2, + "plastic.invocation_operator_proto": 1, + "id": 14, + "bp": 3, + "proto": 4, + "nothing": 1, + "this.plastic.symbol_proto": 2, + "this.symbols": 4, + "clone": 2, + "this.token.type": 1, + "this.token.value": 1, + "this.token.eol": 1, + "operator": 1, + "variable": 1, + "identifier": 1, + "keyword": 1, + "Unexpected": 1, + "end": 2, + "Expected": 1, + "t": 1, + "call": 1, + "nud": 2, + "on": 1, + "@definition": 1, + "new": 4, + "pop": 4, + "delete": 1, + "plastic.utilities": 6, + "suspend_if_necessary": 4, + "parse_map_sequence": 1, + "separator": 6, + "infix": 3, + "terminator": 6, + "symbols": 7, + "ids": 6, + "@ids": 2, + "push": 3, + "@symbol": 2, + ".id": 13, + "key": 7, + "expression": 19, + "@map": 1, + "parse_list_sequence": 2, + "list": 3, + "@list": 1, + "validate_scattering_pattern": 1, + "pattern": 5, + "state": 8, + "element": 1, + "element.type": 3, + "element.id": 2, + "element.first.type": 2, + "children": 4, + "node": 3, + "node.value": 1, + "@children": 1, + "match": 1, + "root": 2, + "keys": 3, + "matches": 3, + "stack": 4, + "next": 2, + "top": 5, + "@stack": 2, + "top.": 1, + "@matches": 1, + "plastic.symbol_proto": 2, + "opts": 2, + "instance.id": 1, + "instance.value": 1, + "instance.bp": 1, + "k": 3, + "instance.": 1, + "parents": 3, + "ancestor": 2, + "ancestors": 1, + "property": 1, + "properties": 1, + "this.type": 8, + "this.first": 8, + "import": 8, + "this.second": 7, + "left": 2, + "this.third": 3, + "sequence": 2, + "led": 4, + "this.bp": 2, + "second.type": 2, + "make_identifier": 4, + "first.id": 1, + "parser.symbols": 2, + "reserve_keyword": 2, + "this.plastic.utilities": 1, + "third": 4, + "third.id": 2, + "second.id": 1, + "std": 1, + "reserve_statement": 1, + "types": 7, + ".type": 1, + "target.type": 3, + "target.value": 3, + "target.id": 4, + "temp": 4, + "temp.id": 1, + "temp.first.id": 1, + "temp.first.type": 2, + "temp.second.type": 1, + "temp.first": 2, + "imports": 5, + "import.type": 2, + "@imports": 2, + "parser.plastic.invocation_operator_proto": 1, + "temp.type": 1, + "parser.plastic.name_proto": 2, + "temp.first.value": 1, + "temp.second": 1, + "first.type": 1, + "parser.imports": 2, + "import.id": 2, + "parser.plastic.assignment_operator_proto": 1, + "result.type": 1, + "result.first": 1, + "result.second": 1 + }, + "Clojure": { + "(": 83, + "defprotocol": 1, + "ISound": 4, + "sound": 5, + "[": 41, + "]": 41, + ")": 84, + "deftype": 2, + "Cat": 1, + "_": 3, + "Dog": 1, + "extend": 1, + "-": 14, + "type": 2, + "default": 1, + ";": 8, + "clj": 1, + "ns": 2, + "c2.svg": 2, + "use": 2, + "c2.core": 2, + "only": 4, + "unify": 2, + "c2.maths": 2, + "Pi": 2, + "Tau": 2, + "radians": 2, + "per": 2, + "degree": 2, + "sin": 2, + "cos": 2, + "mean": 2, + "cljs": 3, + "require": 1, + "c2.dom": 1, + "as": 1, + "dom": 1, + "Stub": 1, + "for": 2, + "float": 2, + "fn": 2, + "which": 1, + "does": 1, + "not": 3, + "exist": 1, + "on": 1, + "runtime": 1, + "def": 1, + "identity": 1, + "defn": 4, + "xy": 1, + "coordinates": 7, + "cond": 1, + "and": 1, + "vector": 1, + "count": 3, + "map": 2, + "x": 6, + "y": 1, + "html": 1, + "head": 1, + "meta": 1, + "{": 8, + "charset": 1, + "}": 8, + "link": 1, + "rel": 1, + "href": 1, + "script": 1, + "src": 1, + "body": 1, + "div.nav": 1, + "p": 1, + "into": 2, + "array": 3, + "aseq": 8, + "nil": 1, + "let": 1, + "n": 9, + "a": 3, + "make": 1, + "loop": 1, + "seq": 1, + "i": 4, + "if": 1, + "<": 1, + "do": 1, + "aset": 1, + "first": 2, + "recur": 1, + "next": 1, + "inc": 1, + "prime": 2, + "any": 1, + "zero": 1, + "#": 1, + "rem": 2, + "%": 1, + "range": 3, + "while": 3, + "stops": 1, + "at": 1, + "the": 1, + "collection": 1, + "element": 1, + "that": 1, + "evaluates": 1, + "to": 1, + "false": 2, + "like": 1, + "take": 1, + "rand": 2, + "scm*": 1, + "random": 1, + "real": 1, + "deftest": 1, + "function": 1, + "tests": 1, + "is": 7, + "true": 2, + "contains": 1, + "foo": 6, + "bar": 4, + "select": 1, + "keys": 2, + "baz": 4, + "vals": 1, + "filter": 1 + }, + "XC": { + "int": 2, + "main": 1, + "(": 1, + ")": 1, + "{": 2, + "x": 3, + ";": 4, + "chan": 1, + "c": 3, + "par": 1, + "<:>": 1, + "0": 1, + "}": 2, + "return": 1 + }, + "Scaml": { + "%": 1, + "p": 1, + "Hello": 1, + "World": 1 + }, + "COBOL": { + "COBOL": 7, + "-": 19, + "TEST": 2, + "RECORD.": 1, + "USAGES.": 1, + "COMP": 5, + "PIC": 5, + "S9": 4, + "(": 5, + ")": 5, + "COMP.": 3, + "COMP2": 2, + "IDENTIFICATION": 2, + "DIVISION.": 4, + "PROGRAM": 2, + "ID.": 2, + "hello.": 3, + "PROCEDURE": 2, + "DISPLAY": 2, + ".": 3, + "STOP": 2, + "RUN.": 2, + "program": 1, + "id.": 1, + "procedure": 1, + "division.": 1, + "display": 1, + "stop": 1, + "run.": 1 + }, + "Tea": { + "<%>": 1, + "template": 1, + "foo": 1 + }, + "Mask": { + "header": 1, + "{": 10, + "img": 1, + ".logo": 1, + "src": 1, + "alt": 1, + "logo": 1, + ";": 3, + "h4": 1, + "if": 1, + "(": 3, + "currentUser": 1, + ")": 3, + ".account": 1, + "a": 1, + "href": 1, + "}": 10, + ".view": 1, + "ul": 1, + "for": 1, + "user": 1, + "index": 1, + "of": 1, + "users": 1, + "li.user": 1, + "data": 1, + "-": 3, + "id": 1, + ".name": 1, + ".count": 1, + ".date": 1, + "countdownComponent": 1, + "input": 1, + "type": 1, + "text": 1, + "dualbind": 1, + "value": 1, + "button": 1, + "x": 2, + "signal": 1, + "h5": 1, + "animation": 1, + "slot": 1, + "@model": 1, + "@next": 1, + "footer": 1, + "bazCompo": 1 + }, + "GAP": { + "#############################################################################": 63, + "##": 766, + "#W": 4, + "vspc.gi": 1, + "GAP": 15, + "library": 2, + "Thomas": 2, + "Breuer": 2, + "#Y": 6, + "Copyright": 6, + "(": 721, + "C": 11, + ")": 722, + "Lehrstuhl": 2, + "D": 36, + "f": 11, + "r": 2, + "Mathematik": 2, + "RWTH": 2, + "Aachen": 2, + "Germany": 2, + "School": 2, + "Math": 2, + "and": 102, + "Comp.": 2, + "Sci.": 2, + "University": 4, + "of": 114, + "St": 2, + "Andrews": 2, + "Scotland": 2, + "The": 21, + "Group": 3, + "This": 10, + "file": 7, + "contains": 7, + "generic": 1, + "methods": 4, + "for": 53, + "vector": 67, + "spaces.": 4, + "#M": 20, + "SetLeftActingDomain": 2, + "": 2, + "": 12, + "check": 5, + "whether": 5, + "the": 136, + "left": 15, + "acting": 8, + "domain": 17, + "external": 1, + "set": 6, + "knows": 1, + "that": 39, + "it": 8, + "is": 72, + "a": 113, + "division": 15, + "ring.": 3, + "used": 10, + "e.g.": 1, + "to": 37, + "tell": 1, + "free": 3, + "module": 2, + "over": 24, + "ring": 14, + "space.": 5, + "InstallOtherMethod": 3, + "[": 145, + "IsAttributeStoringRep": 2, + "IsLeftActedOnByRing": 2, + "IsObject": 1, + "]": 169, + "function": 37, + "extL": 2, + "if": 103, + "HasIsDivisionRing": 1, + "IsDivisionRing": 5, + "then": 128, + "SetIsLeftActedOnByDivisionRing": 1, + "true": 21, + ";": 569, + "fi": 91, + "TryNextMethod": 7, + "end": 34, + "IsLeftActedOnByDivisionRing": 4, + "": 42, + "InstallMethod": 18, + "IsExtLSet": 1, + "M": 7, + "IsIdenticalObj": 5, + "LeftActingDomain": 29, + "else": 25, + "return": 41, + "#F": 17, + "VectorSpace": 13, + "": 10, + "": 5, + "": 2, + "only": 5, + "difference": 1, + "between": 1, + "shall": 1, + "be": 24, + "space": 74, + "must": 6, + "InstallGlobalFunction": 5, + "arg": 16, + "Length": 14, + "or": 13, + "not": 49, + "Error": 7, + "CallFuncList": 1, + "FreeLeftModule": 1, + "AsSubspace": 5, + "": 38, + "": 10, + ".": 257, + "collection": 3, + "IsVectorSpace": 26, + "IsCollection": 3, + "V": 152, + "local": 16, + "newC": 7, + "IsSubset": 4, + "fail": 18, + "AsVectorSpace": 4, + "SetParent": 1, + "UseIsomorphismRelation": 2, + "UseSubsetRelation": 4, + "AsLeftModule": 6, + "View": 1, + "as": 23, + "F": 61, + "W": 32, + "#": 73, + "result": 9, + "base": 5, + "basis": 14, + "vectors": 16, + "field": 12, + "extension": 3, + "gen": 5, + "loop": 2, + "generators": 16, + "b": 8, + "gens": 16, + "newgens": 4, + "extended": 1, + "list": 16, + "Characteristic": 2, + "<": 17, + "elif": 21, + "BasisVectors": 4, + "Basis": 5, + "AsField": 2, + "in": 64, + "GeneratorsOfLeftModule": 9, + "do": 18, + "*": 12, + "od": 15, + "LeftModuleByGenerators": 5, + "Zero": 5, + "IsEmpty": 6, + "Add": 4, + "Intersection": 1, + "ViewObj": 4, + "view": 4, + "print": 1, + "known": 5, + "also": 3, + "dimension": 9, + "no.": 1, + "HasGeneratorsOfLeftModule": 2, + "Print": 24, + "HasDimension": 1, + "override": 1, + "method": 4, + "Dimension": 6, + "PrintObj": 5, + "HasZero": 1, + "/": 12, + "": 2, + "factor": 2, + "by": 14, + "subspace": 7, + "": 1, + "Subspace": 4, + "ImagesSource": 1, + "NaturalHomomorphismBySubspace": 1, + "Intersection2Spaces": 4, + "": 2, + "": 2, + "": 2, + "AsStructure": 3, + "Substructure": 3, + "Structure": 2, + "inters": 17, + "intersection": 5, + "coefficients": 3, + "gensV": 7, + "gensW": 7, + "VW": 3, + "sum": 1, + "B": 16, + "Intersection2": 4, + "IsFiniteDimensional": 2, + "Concatenation": 15, + "List": 6, + "x": 14, + "-": 67, + "Coefficients": 3, + "SumIntersectionMat": 1, + "LinearCombination": 2, + "HasParent": 2, + "Parent": 4, + "SetIsTrivial": 1, + "two": 13, + "spaces": 15, + "SubspaceNC": 2, + "ClosureLeftModule": 2, + "": 1, + "closure": 1, + "IsCollsElms": 1, + "HasBasis": 1, + "IsVector": 1, + "w": 3, + "#T": 6, + "why": 2, + "easily": 1, + "UseBasis": 1, + "Methods": 1, + "collections": 1, + "subspaces": 17, + "#R": 1, + "IsSubspacesVectorSpaceDefaultRep": 7, + "representation": 1, + "domains": 3, + "with": 24, + "components": 1, + "value": 9, + "either": 2, + "string": 6, + "which": 8, + "means": 1, + "all": 18, + "DeclareRepresentation": 1, + "IsComponentObjectRep": 1, + "IsSubspacesVectorSpace": 9, + "IsInt": 3, + ".dimension": 9, + ".structure": 9, + "Size": 5, + "number": 2, + "k": 17, + "dimensional": 5, + "n": 31, + "q": 20, + "elements": 7, + "prod_": 2, + "{": 21, + "i": 25, + "}": 21, + "frac": 3, + "We": 4, + "have": 3, + "recursion": 1, + "+": 9, + "sum_": 1, + "size": 12, + "qn": 10, + "qd": 10, + "ank": 6, + "..": 6, + "Int": 1, + "/2": 4, + "mod": 2, + "Enumerator": 2, + "Use": 1, + "iterator": 3, + "compute": 3, + "list.": 2, + "allowed": 1, + "iter": 17, + "elms": 4, + "Iterator": 5, + "while": 5, + "IsDoneIterator": 3, + "NextIterator": 5, + "necessary": 2, + "uses": 2, + "full": 2, + "row": 17, + "mechanism": 4, + "associated": 3, + "BindGlobal": 7, + ".associatedIterator": 3, + "next": 6, + ".basis": 2, + "rec": 20, + "structure": 4, + "associatedIterator": 2, + "ShallowCopy": 2, + "IteratorByFunctions": 1, + "IsDoneIterator_Subspaces": 1, + "NextIterator_Subspaces": 1, + "ShallowCopy_Subspaces": 1, + "Subspaces": 8, + "FullRowSpace": 5, + "": 1, + "dim": 2, + "IsFinite": 4, + "Objectify": 2, + "NewType": 2, + "CollectionsFamily": 2, + "FamilyObj": 2, + "IsSubspace": 3, + "": 6, + "U": 12, + "IsVectorSpaceHomomorphism": 3, + "": 2, + "IsGeneralMapping": 2, + "map": 4, + "S": 4, + "R": 5, + "Source": 1, + "false": 7, + "Range": 1, + "IsLinearMapping": 1, + "#E": 2, + "example.gd": 2, + "sample": 2, + "declaration": 1, + "file.": 3, + "DeclareProperty": 2, + "IsLeftModule": 6, + "DeclareGlobalFunction": 5, + "#C": 7, + "IsQuuxFrobnicator": 1, + "": 3, + "": 28, + "": 7, + "Name=": 33, + "Arg=": 33, + "Type=": 7, + "": 28, + "Tests": 1, + "quux": 1, + "frobnicator.": 1, + "": 28, + "": 28, + "DeclareSynonym": 17, + "IsField": 1, + "IsGroup": 1, + "PackageInfo.g": 2, + "package": 10, + "cvec": 1, + "s": 4, + "template": 1, + "SetPackageInfo": 1, + "PackageName": 2, + "Subtitle": 1, + "Version": 1, + "Date": 1, + "dd/mm/yyyy": 1, + "format": 2, + "Information": 1, + "about": 3, + "authors": 1, + "maintainers.": 1, + "Persons": 1, + "LastName": 1, + "FirstNames": 1, + "IsAuthor": 1, + "IsMaintainer": 1, + "Email": 1, + "WWWHome": 1, + "PostalAddress": 1, + "Place": 1, + "Institution": 1, + "Status": 2, + "information.": 1, + "Currently": 1, + "following": 4, + "cases": 2, + "are": 14, + "recognized": 1, + "successfully": 2, + "refereed": 2, + "packages": 5, + "developers": 1, + "agreed": 1, + "distribute": 1, + "them": 1, + "core": 1, + "system": 1, + "development": 1, + "versions": 1, + "other": 4, + "You": 1, + "provide": 2, + "entries": 8, + "status": 1, + "because": 2, + "was": 1, + "#CommunicatedBy": 1, + "#AcceptDate": 1, + "PackageWWWHome": 1, + "README_URL": 1, + ".PackageWWWHome": 2, + "PackageInfoURL": 1, + "ArchiveURL": 1, + ".Version": 2, + "ArchiveFormats": 1, + "Here": 2, + "you": 3, + "short": 1, + "abstract": 1, + "explaining": 1, + "content": 1, + "HTML": 1, + "on": 5, + "overview": 1, + "Web": 1, + "page": 1, + "an": 17, + "URL": 1, + "Webpage": 1, + "more": 3, + "detailed": 1, + "information": 1, + "than": 1, + "few": 1, + "lines": 1, + "less": 1, + "ok": 1, + "Please": 1, + "use": 5, + "specifing": 1, + "names.": 1, + "AbstractHTML": 1, + "PackageDoc": 1, + "BookName": 1, + "ArchiveURLSubset": 1, + "HTMLStart": 1, + "PDFFile": 1, + "SixFile": 1, + "LongTitle": 1, + "Dependencies": 1, + "NeededOtherPackages": 1, + "SuggestedOtherPackages": 1, + "ExternalConditions": 1, + "AvailabilityTest": 1, + "SHOW_STAT": 1, + "Filename": 8, + "DirectoriesPackagePrograms": 1, + "#Info": 1, + "InfoWarning": 1, + "*Optional*": 2, + "but": 1, + "recommended": 1, + "path": 1, + "relative": 1, + "root": 1, + "many": 1, + "tests": 1, + "functionality": 1, + "sensible.": 1, + "#TestFile": 1, + "can": 12, + "some": 2, + "keyword": 1, + "related": 1, + "topic": 1, + "package.": 2, + "Keywords": 1, + "implementation": 1, + "SomeOperation": 1, + "": 2, + "performs": 1, + "operation": 1, + "SomeProperty": 1, + "IsFreeLeftModule": 3, + "IsTrivial": 1, + "SomeGlobalFunction": 2, + "A": 9, + "global": 1, + "variadic": 1, + "funfion.": 1, + "SomeFunc": 1, + "y": 8, + "z": 3, + "func": 3, + "tmp": 20, + "j": 3, + "repeat": 1, + "until": 1, + "vspc.gd": 1, + "declares": 1, + "operations": 2, + "bases": 5, + "modules": 1, + "found": 1, + "lib/basis.gd": 1, + "IsLeftOperatorRing": 1, + "IsLeftOperatorAdditiveGroup": 2, + "IsRing": 1, + "IsAssociativeLOpDProd": 2, + "really": 4, + "IsLeftOperatorRingWithOne": 2, + "IsRingWithOne": 1, + "IsLeftVectorSpace": 3, + "<#GAPDoc>": 17, + "Label=": 19, + "": 12, + "": 12, + "&": 37, + "see": 30, + "nbsp": 30, + "": 71, + "Func=": 40, + "Chapter": 3, + "Chap=": 3, + "": 2, + "CDATA": 2, + "ENTITY": 2, + "": 2, + "allows": 1, + "amp": 1, + "your": 1, + "documentation": 2, + "reference": 1, + "another": 1, + "entity": 1, + "desired": 1, + "add": 2, + "instead": 1, + "It": 1, + "please": 1, + "careful.": 1, + "

": 23, + "Whenever": 1, + "we": 3, + "talk": 1, + "": 41, + "": 117, + "": 117, + "additive": 1, + "group": 2, + "acts": 1, + "via": 6, + "multiplication": 1, + "from": 5, + "such": 4, + "this": 15, + "action": 4, + "addition": 1, + "right": 2, + "distributive.": 1, + "accessed": 1, + "attribute": 2, + "Vector": 1, + "always": 1, + "Filt=": 4, + "synonyms.": 1, + "<#/GAPDoc>": 17, + "InstallTrueMethod": 4, + "IsGaussianSpace": 10, + "": 14, + "filter": 3, + "Sect=": 6, + "matrix": 5, + "say": 1, + "indicates": 3, + "matrices": 5, + "respectively": 1, + "contained": 4, + "In": 3, + "case": 2, + "called": 1, + "Gaussian": 19, + "Bases": 1, + "computed": 2, + "using": 2, + "elimination": 5, + "given": 4, + "generators.": 1, + "": 12, + "": 12, + "gap": 41, + "mats": 5, + "Rationals": 13, + "E": 2, + "element": 2, + "Field": 1, + "": 12, + "DeclareFilter": 1, + "IsFullMatrixModule": 1, + "IsFullRowModule": 1, + "nontrivial": 1, + "associative": 1, + "algebra": 2, + "multiplicative": 1, + "inverse": 1, + "each": 2, + "nonzero": 3, + "element.": 1, + "every": 1, + "possibly": 1, + "itself": 1, + "Note": 3, + "being": 2, + "thus": 1, + "property": 2, + "get": 1, + "usually": 1, + "represented": 1, + "stored": 1, + "DeclareSynonymAttr": 4, + "IsMagmaWithInversesIfNonzero": 1, + "IsNonTrivial": 1, + "IsAssociative": 1, + "IsEuclideanRing": 1, + "#A": 7, + "GeneratorsOfLeftVectorSpace": 1, + "GeneratorsOfVectorSpace": 2, + "": 7, + "For": 10, + "Attr=": 10, + "returns": 14, + "generate": 1, + "GeneratorsOfLeftOperatorAdditiveGroup": 2, + "CanonicalBasis": 3, + "If": 11, + "supports": 1, + "canonical": 6, + "otherwise": 2, + "": 3, + "": 3, + "returned.": 4, + "defining": 1, + "its": 2, + "uniquely": 1, + "determined": 1, + "exist": 1, + "same": 6, + "equality": 1, + "these": 5, + "decided": 1, + "comparing": 1, + "bases.": 1, + "exact": 1, + "meaning": 1, + "depends": 1, + "type": 2, + "Canonical": 1, + "defined": 3, + "example": 3, + "one": 11, + "designs": 1, + "new": 2, + "kind": 1, + "defines": 1, + "installs": 1, + "call": 1, + "On": 1, + "hand": 1, + "probably": 2, + "should": 2, + "install": 1, + "simply": 2, + "calls": 1, + "CANONICAL_BASIS_FLAGS": 1, + "": 9, + "vecs": 4, + "": 8, + "3": 5, + "DeclareAttribute": 4, + "IsRowSpace": 2, + "consists": 7, + "IsRowModule": 1, + "IsGaussianRowSpace": 1, + "scalars": 2, + "occur": 2, + "vectors.": 2, + "Thus": 3, + "calculations.": 2, + "Otherwise": 3, + "non": 4, + "Gaussian.": 2, + "will": 5, + "need": 3, + "flag": 2, + "write": 3, + "down": 2, + "delegate": 2, + "ones.": 2, + "IsNonGaussianRowSpace": 1, + "expresses": 2, + "so": 3, + "cannot": 2, + "handled": 3, + "nice": 4, + "way.": 2, + "Let": 4, + "K": 4, + "spanned": 4, + "Then": 1, + "cap": 1, + "v": 5, + "replacing": 1, + "entry": 2, + "forming": 1, + "concatenation.": 1, + "So": 2, + "DeclareHandlingByNiceBasis": 2, + "IsMatrixSpace": 2, + "IsMatrixModule": 1, + "IsGaussianMatrixSpace": 1, + "IsNonGaussianMatrixSpace": 1, + "irrelevant": 1, + "concatenation": 1, + "rows": 1, + "necessarily": 1, + "NormedRowVectors": 2, + "normed": 1, + "finite": 5, + "those": 1, + "first": 1, + "component.": 1, + "yields": 1, + "natural": 1, + "GF": 22, + "*Z": 5, + "Z": 6, + "Action": 1, + "GL": 1, + "OnLines": 1, + "TrivialSubspace": 2, + "zero": 4, + "triv": 2, + "0": 2, + "AsSet": 1, + "TrivialSubmodule": 1, + "optional": 3, + "argument": 1, + "specify": 3, + "empty.": 1, + "linearly": 3, + "independent": 3, + "particular": 1, + "immediately": 2, + "note": 2, + "formed": 1, + "argument.": 1, + "2": 1, + "generated": 1, + "subset": 4, + "empty": 1, + "trivial": 1, + "parent": 3, + "returned": 3, + "does": 1, + "except": 1, + "omits": 1, + "both": 2, + "1": 3, + "Submodule": 1, + "SubmoduleNC": 1, + "#O": 2, + "": 2, + "domain.": 1, + "form": 2, + "Oper=": 6, + "smaller": 1, + "larger": 1, + "9": 1, + "collection.": 1, + "DeclareOperation": 2, + "takes": 1, + "arguments": 1, + "different": 2, + "let": 1, + "their": 1, + "intersection.": 1, + "AsStruct": 2, + "equal": 1, + "Substruct": 1, + "common": 1, + "Struct": 1, + "basis.": 1, + "handle": 1, + "intersections": 1, + "algebras": 2, + "ideals": 2, + "sided": 1, + "ideals.": 1, + "": 2, + "": 2, + "nonnegative": 2, + "integer": 2, + "length": 1, + "An": 2, + "alternative": 2, + "construct": 2, + "above": 2, + "FullRowModule": 2, + "FullMatrixSpace": 2, + "": 1, + "positive": 1, + "integers": 1, + "m": 8, + "fact": 1, + "FullMatrixModule": 3, + "fixed": 1, + "lies": 1, + "category": 1, + "DeclareCategory": 1, + "IsDomain": 1, + "Returns": 1, + "": 1, + "Called": 2, + "Special": 1, + "provided": 1, + "domains.": 1, + "OrthogonalSpaceInFullRowSpace": 1, + "complement": 1, + "#P": 1, + "": 1, + "mapping": 2, + "homomorphism": 1, + "linear": 1, + "source": 2, + "range": 1, + "hold": 1, + "Magic.gd": 1, + "AutoDoc": 4, + "Max": 2, + "Horn": 2, + "JLU": 2, + "Giessen": 2, + "Sebastian": 2, + "Gutsche": 2, + "Kaiserslautern": 2, + "SHEBANG#!#! @Description": 1, + "SHEBANG#!#! This": 1, + "SHEBANG#!#! any": 1, + "SHEBANG#!#! ": 1, + "SHEBANG#!#! ": 5, + "SHEBANG#!#! It": 3, + "SHEBANG#!#! That": 1, + "SHEBANG#!#! of": 1, + "SHEBANG#!#! (with": 1, + "SHEBANG#!#! main": 1, + "SHEBANG#!#! XML": 1, + "SHEBANG#!#! other": 1, + "SHEBANG#!#! as": 1, + "SHEBANG#!#! to": 2, + "SHEBANG#!#! Secondly,": 1, + "SHEBANG#!#! page": 1, + "SHEBANG#!#! (name,": 1, + "SHEBANG#!#! on": 1, + "SHEBANG#!Item>": 25, + "SHEBANG#!#! tags": 1, + "SHEBANG#!#! This": 1, + "SHEBANG#!#! produce": 1, + "SHEBANG#!#! MathJaX": 1, + "SHEBANG#!#! generated": 1, + "SHEBANG#!#! this,": 1, + "SHEBANG#!#! supplementary": 1, + "SHEBANG#!#! (see": 1, + "SHEBANG#!Enum>": 1, + "SHEBANG#!#! For": 1, + "SHEBANG#!>": 11, + "SHEBANG#!#! The": 1, + "SHEBANG#!#! ": 1, + "SHEBANG#!Mark>": 22, + "SHEBANG#!#! The": 2, + "SHEBANG#!A>": 1, + "SHEBANG#!#! ": 1, + "SHEBANG#!#! ": 4, + "SHEBANG#!#! This": 4, + "SHEBANG#!#! Directory()": 1, + "SHEBANG#!#! (i.e.": 1, + "SHEBANG#!#! Default": 1, + "SHEBANG#!#! for": 1, + "SHEBANG#!#! The": 3, + "SHEBANG#!#! record.": 3, + "SHEBANG#!#! equivalent": 3, + "SHEBANG#!#! enabled.": 3, + "SHEBANG#!#! package's": 1, + "SHEBANG#!#! In": 3, + "SHEBANG#!K>),": 3, + "SHEBANG#!#! If": 3, + "####": 34, + "TODO": 3, + "mention": 1, + "merging": 1, + "PackageInfo.AutoDoc": 1, + "SHEBANG#!#! ": 3, + "SHEBANG#!#! ": 13, + "SHEBANG#!#! A": 6, + "SHEBANG#!#! If": 2, + "SHEBANG#!#! your": 1, + "SHEBANG#!#! you": 1, + "SHEBANG#!#! to": 4, + "SHEBANG#!#! is": 1, + "SHEBANG#!#! of": 2, + "SHEBANG#!#! This": 3, + "SHEBANG#!#! i.e.": 1, + "SHEBANG#!#! The": 2, + "SHEBANG#!#! then": 1, + "param": 1, + "bit": 2, + "strange.": 1, + "change": 1, + "general": 1, + "might": 1, + "want": 1, + "define": 2, + "entities...": 1, + "now": 1, + "document": 1, + "leave": 1, + "us": 1, + "choice": 1, + "revising": 1, + "how": 1, + "works.": 1, + "": 2, + "entities": 2, + "": 2, + "": 2, + "names": 1, + "corresponding": 1, + "XML": 4, + "entities.": 1, + "containing": 1, + "": 2, + "SomePackage": 3, + "": 2, + "added": 1, + "preamble": 1, + "

": 2, + "SHEBANG#!#! for": 1, + "SHEBANG#!#! statement": 1, + "SHEBANG#!#! components": 2, + "SHEBANG#!#! example,": 1, + "SHEBANG#!#! acknowledgements": 1, + "SHEBANG#!#! ": 6, + "SHEBANG#!#! by": 1, + "SHEBANG#!#! package": 1, + "SHEBANG#!#! Usually": 2, + "SHEBANG#!#! are": 2, + "SHEBANG#!#! Default": 3, + "SHEBANG#!#! When": 1, + "SHEBANG#!#! they": 1, + "Document": 1, + "section_intros": 2, + "later": 1, + "on.": 1, + "However": 2, + "thanks": 1, + "comment": 1, "syntax": 1, - "on": 1 + "remaining": 1, + "seems": 1, + "ability": 1, + "order": 1, + "chapters": 1, + "sections.": 1, + "TODO.": 1, + "SHEBANG#!#! files": 1, + "strictly": 1, + "speaking": 1, + "scaffold.": 1, + "scaffolding": 2, + "custom": 1, + "name": 2, + "main": 1, + "purpose": 1, + "parameter": 1, + "cater": 1, + "existing": 1, + "wish": 1, + "scaffolding.": 1, + "explain": 1, + "allow": 1, + "specifying": 1, + "gapdoc.main.": 1, + "code": 1, + "still": 1, + "honor": 1, + "though": 1, + "just": 1, + "case.": 1, + "SHEBANG#!#! In": 1, + "maketest": 12, + "part.": 1, + "Still": 1, + "under": 1, + "construction.": 1, + "SHEBANG#!#! ": 1, + "SHEBANG#!#! The": 1, + "SHEBANG#!#! a": 1, + "SHEBANG#!#! which": 1, + "SHEBANG#!#! the": 1, + "SHEBANG#!#! ": 1, + "SHEBANG#!#! ": 2, + "SHEBANG#!#! Sets": 1, + "SHEBANG#!#! A": 1, + "SHEBANG#!#! will": 1, + "SHEBANG#!#! @Returns": 1, + "SHEBANG#!#! @Arguments": 1, + "SHEBANG#!#! @ChapterInfo": 1, + "Magic.gi": 1, + "str": 8, + "suffix": 3, + "d": 16, + "IsDirectoryPath": 1, + "CreateDir": 2, + "currently": 1, + "undocumented": 1, + "LastSystemError": 1, + ".message": 1, + "pkg": 32, + "subdirs": 2, + "extensions": 1, + "d_rel": 6, + "files": 4, + "DirectoriesPackageLibrary": 2, + "continue": 3, + "Directory": 5, + "DirectoryContents": 1, + "Sort": 1, + "AUTODOC_GetSuffix": 2, + "IsReadableFile": 2, + "Make": 1, + "callable": 1, + "package_name": 1, + "AutoDocWorksheet.": 1, + "Which": 1, + "create": 1, + "worksheet": 1, + "package_info": 3, + "opt": 3, + "scaffold": 12, + "gapdoc": 7, + "autodoc": 8, + "pkg_dir": 5, + "doc_dir": 18, + "doc_dir_rel": 3, + "title_page": 7, + "tree": 8, + "is_worksheet": 13, + "position_document_class": 7, + "gapdoc_latex_option_record": 4, + "LowercaseString": 3, + "DirectoryCurrent": 1, + "PackageInfo": 1, + "key": 3, + "val": 4, + "ValueOption": 1, + "opt.": 1, + "IsBound": 39, + "opt.dir": 4, + "IsString": 7, + "IsDirectory": 1, + "AUTODOC_CreateDirIfMissing": 1, + "opt.scaffold": 5, + "package_info.AutoDoc": 3, + "IsRecord": 7, + "IsBool": 4, + "AUTODOC_APPEND_RECORD_WRITEONCE": 3, + "AUTODOC_WriteOnce": 10, + "opt.autodoc": 5, + "package_info.Dependencies.NeededOtherPackages": 1, + "package_info.Dependencies.SuggestedOtherPackages": 1, + "ForAny": 1, + "autodoc.files": 7, + "autodoc.scan_dirs": 5, + "autodoc.level": 3, + "PushOptions": 1, + "level_value": 1, + "Append": 2, + "AUTODOC_FindMatchingFiles": 2, + "opt.gapdoc": 5, + "opt.maketest": 4, + "gapdoc.main": 8, + "package_info.PackageDoc": 3, + ".BookName": 2, + "gapdoc.bookname": 4, + "#Print": 1, + "gapdoc.files": 9, + "gapdoc.scan_dirs": 3, + "Set": 1, + "Number": 1, + "ListWithIdenticalEntries": 1, + "DocumentationTree": 1, + "autodoc.section_intros": 2, + "AUTODOC_PROCESS_INTRO_STRINGS": 1, + "Tree": 2, + "AutoDocScanFiles": 1, + "scaffold.TitlePage": 4, + "scaffold.TitlePage.Title": 2, + ".TitlePage.Title": 2, + "Position": 2, + "Remove": 2, + "JoinStringsWithSeparator": 1, + "ReplacedString": 2, + "Syntax": 1, + "scaffold.document_class": 7, + "PositionSublist": 5, + "GAPDoc2LaTeXProcs.Head": 14, + "scaffold.latex_header_file": 2, + "StringFile": 2, + "scaffold.gapdoc_latex_options": 4, + "RecNames": 1, + "scaffold.gapdoc_latex_options.": 5, + "IsList": 1, + "scaffold.includes": 4, + "scaffold.bib": 7, + "Unbind": 1, + "scaffold.main_xml_file": 2, + ".TitlePage": 1, + "ExtractTitleInfoFromPackageInfo": 1, + "CreateTitlePage": 1, + "scaffold.MainPage": 2, + "scaffold.dir": 1, + "scaffold.book_name": 1, + "CreateMainPage": 1, + "WriteDocumentation": 1, + "SetGapDocLaTeXOptions": 1, + "MakeGAPDocDoc": 1, + "CopyHTMLStyleFiles": 1, + "GAPDocManualLab": 1, + "maketest.folder": 3, + "maketest.scan_dir": 3, + "CreateMakeTest": 1 }, "Visual Basic": { "VERSION": 1, @@ -60363,6 +59559,10 @@ "oReceived": 2, "Boolean": 1, "True": 1, + "Module": 2, + "Module1": 1, + "Main": 1, + "Console.Out.WriteLine": 2, "@Code": 1, "ViewData": 1, "Code": 1, @@ -60492,2255 +59692,3248 @@ "mix": 1, "price": 1, "applications.": 1, - "": 1, - "Module": 2, - "Module1": 1, - "Main": 1, - "Console.Out.WriteLine": 2 + "": 1 }, - "Volt": { - "module": 1, - "main": 2, - ";": 53, - "import": 7, - "core.stdc.stdio": 1, - "core.stdc.stdlib": 1, - "watt.process": 1, - "watt.path": 1, - "results": 1, - "list": 1, - "cmd": 1, - "int": 8, - "(": 37, - ")": 37, - "{": 12, - "auto": 6, - "cmdGroup": 2, - "new": 3, - "CmdGroup": 1, - "bool": 4, - "printOk": 2, - "true": 4, - "printImprovments": 2, - "printFailing": 2, - "printRegressions": 2, - "string": 1, - "compiler": 3, - "getEnv": 1, - "if": 7, - "is": 2, - "null": 3, - "printf": 6, - ".ptr": 14, - "return": 2, - "-": 3, - "}": 12, - "///": 1, - "@todo": 1, - "Scan": 1, - "for": 4, - "files": 1, - "tests": 2, - "testList": 1, - "total": 5, - "passed": 5, - "failed": 5, - "improved": 3, - "regressed": 6, - "rets": 5, - "Result": 2, - "[": 6, - "]": 6, - "tests.length": 3, - "size_t": 3, - "i": 14, - "<": 3, - "+": 14, - ".runTest": 1, - "cmdGroup.waitAll": 1, - "ret": 1, - "ret.ok": 1, - "cast": 5, - "ret.hasPassed": 4, - "&&": 2, - "ret.test.ptr": 4, - "ret.msg.ptr": 4, - "else": 3, - "fflush": 2, - "stdout": 1, - "xml": 8, - "fopen": 1, - "fprintf": 2, - "rets.length": 1, - ".xmlLog": 1, - "fclose": 1, - "rate": 2, - "float": 2, - "/": 1, - "*": 1, - "f": 1, - "double": 1 - }, - "wisp": { - ";": 199, - "#": 2, - "wisp": 6, - "Wisp": 13, - "is": 20, - "homoiconic": 1, - "JS": 17, - "dialect": 1, - "with": 6, - "a": 24, - "clojure": 2, - "syntax": 2, - "s": 7, - "-": 33, - "expressions": 6, - "and": 9, - "macros.": 1, - "code": 3, - "compiles": 1, - "to": 21, - "human": 1, - "readable": 1, - "javascript": 1, - "which": 3, - "one": 3, - "of": 16, - "they": 3, - "key": 3, - "differences": 1, - "from": 2, - "clojurescript.": 1, - "##": 2, - "data": 1, - "structures": 1, - "nil": 4, - "just": 3, - "like": 2, - "js": 1, - "undefined": 1, - "differenc": 1, - "that": 7, - "it": 10, - "shortcut": 1, - "for": 5, - "void": 2, - "(": 77, - ")": 75, - "in": 16, - "JS.": 2, - "Booleans": 1, - "booleans": 2, - "true": 6, - "/": 1, - "false": 2, - "are": 14, - "Numbers": 1, - "numbers": 2, - "Strings": 2, - "strings": 3, - "can": 13, - "be": 15, - "multiline": 1, - "Characters": 2, - "sugar": 1, - "single": 1, - "char": 1, - "Keywords": 3, - "symbolic": 2, - "identifiers": 2, - "evaluate": 2, - "themselves.": 1, - "keyword": 1, - "Since": 1, - "string": 1, - "constats": 1, - "fulfill": 1, - "this": 2, - "purpose": 2, - "keywords": 1, - "compile": 3, - "equivalent": 2, - "strings.": 1, - "window.addEventListener": 1, - "load": 1, - "handler": 1, - "invoked": 2, - "as": 4, - "functions": 8, - "desugars": 1, - "plain": 2, - "associated": 2, - "value": 2, - "access": 1, - "bar": 4, - "foo": 6, + "Lasso": { "[": 22, - "]": 22, - "Vectors": 1, - "vectors": 1, - "arrays.": 1, - "Note": 3, - "Commas": 2, - "white": 1, - "space": 1, - "&": 6, - "used": 1, - "if": 7, - "desired": 1, - "Maps": 2, - "hash": 1, - "maps": 1, - "objects.": 1, - "unlike": 1, - "keys": 1, - "not": 4, - "arbitary": 1, - "types.": 1, - "{": 4, - "beep": 1, - "bop": 1, - "}": 4, - "optional": 2, - "but": 7, - "come": 1, - "handy": 1, - "separating": 1, - "pairs.": 1, - "b": 5, - "In": 5, - "future": 2, - "JSONs": 1, - "may": 1, - "made": 2, - "compatible": 1, - "map": 3, - "syntax.": 1, - "Lists": 1, - "You": 1, - "up": 1, - "lists": 1, - "representing": 1, - "expressions.": 1, - "The": 1, - "first": 4, - "item": 2, - "the": 9, + "]": 23, + "//": 169, + "-": 2248, + "": 6, + "2009": 14, + "09": 10, + "04": 8, + "JS": 126, + "Added": 40, + "content_body": 14, + "tag": 11, + "for": 65, + "compatibility": 4, + "with": 25, + "pre": 4, + "8": 6, + "5": 4, + "05": 4, + "07": 6, + "timestamp": 4, + "to": 98, + "knop_cachestore": 4, + "and": 52, + "maxage": 2, + "parameter": 8, + "knop_cachefetch": 4, + "Corrected": 8, + "construction": 2, + "of": 24, + "cache_name": 2, + "internally": 2, + "in": 46, + "the": 86, + "knop_cache": 2, + "tags": 14, + "so": 16, + "it": 20, + "will": 12, + "work": 6, + "correctly": 2, + "at": 10, + "site": 4, + "root": 2, + "2008": 6, + "11": 8, + "dummy": 2, + "knop_debug": 4, + "ctype": 2, + "be": 38, + "able": 14, + "transparently": 2, + "or": 6, + "without": 4, + "L": 2, + "Debug": 2, + "24": 2, + "knop_stripbackticks": 2, + "01": 4, + "28": 2, + "Cache": 2, + "name": 32, + "is": 35, + "now": 23, + "used": 12, + "also": 5, + "when": 10, + "using": 8, + "session": 4, + "storage": 8, + "2007": 6, + "12": 8, + "knop_cachedelete": 2, + "Created": 4, + "03": 2, + "knop_foundrows": 2, + "condition": 4, + "returning": 2, + "normal": 2, + "found_count": 11, + "For": 2, + "Lasso": 15, + "if": 76, + "lasso_tagexists": 4, + "define_tag": 48, + "namespace=": 12, + "return": 75, + "__html_reply__": 4, + "define_type": 14, + "debug": 2, + "_unknowntag": 6, + "onconvert": 2, + "stripbackticks": 2, + "description=": 2, + "priority=": 2, + "required=": 2, + "local": 116, + "output": 30, + "string": 59, + "input": 2, + "split": 2, + "(": 640, + ")": 639, + "first": 12, + ";": 573, + "@#output": 2, + "/define_tag": 36, + "description": 34, + "namespace": 16, + "priority": 8, + "Johan": 2, + "S": 2, + "lve": 2, + "integer": 30, + "#charlist": 6, + "size": 24, + "start": 5, + "current": 10, + "date": 23, + "time": 8, + "a": 52, + "mixed": 2, + "up": 4, + "format": 7, + "as": 26, + "seed": 6, + "#seed": 36, + "convert": 4, + "this": 14, + "base": 6, + "conversion": 4, + "while": 9, + "#output": 50, + "get": 12, + "%": 14, + "#base": 8, + "+": 146, + "/": 6, + "/while": 7, + "over": 2, + "new": 14, + "chunk": 2, + "millisecond": 2, + "math_random": 2, + "lower": 2, + "upper": 2, + "__lassoservice_ip__": 2, + "response_localpath": 8, + "removetrailing": 8, + "response_filepath": 8, + "http": 6, + "//tagswap.net/found_rows": 2, + "action_statement": 2, + "string_findregexp": 8, + "#sql": 42, + "find": 57, + "ignorecase": 12, + "||": 8, + "<": 7, + "maxrecords_value": 2, + "inaccurate": 2, + "must": 4, + "accurate": 2, + "/if": 53, + "Default": 2, + "method": 7, + "usually": 2, + "fastest.": 2, + "Can": 2, + "not": 10, + "GROUP": 4, + "BY": 6, + "example.": 2, + "First": 4, + "normalize": 4, + "whitespace": 3, + "around": 2, + "FROM": 2, "expression": 6, - "function": 7, - "being": 1, - "rest": 7, - "items": 2, - "arguments.": 2, - "baz": 2, - "Conventions": 1, - "puts": 1, - "lot": 2, - "effort": 1, - "making": 1, - "naming": 1, - "conventions": 3, - "transparent": 1, - "by": 2, - "encouraning": 1, - "lisp": 1, - "then": 1, - "translating": 1, - "them": 1, - "dash": 1, - "delimited": 1, - "dashDelimited": 1, - "predicate": 1, - "isPredicate": 1, - "__privates__": 1, - "list": 2, - "vector": 1, - "listToVector": 1, - "As": 1, - "side": 2, - "effect": 1, - "some": 2, - "names": 1, - "expressed": 3, - "few": 1, - "ways": 1, - "although": 1, - "third": 2, - "expression.": 1, - "<": 1, - "number": 3, - "Else": 1, - "missing": 1, - "conditional": 1, - "evaluates": 2, - "result": 2, - "will": 6, - ".": 6, - "monday": 1, - "today": 1, - "Compbining": 1, - "everything": 1, - "an": 1, - "sometimes": 1, - "might": 1, - "want": 2, - "compbine": 1, - "multiple": 1, - "into": 2, - "usually": 3, - "evaluating": 1, - "have": 2, - "effects": 1, - "do": 4, - "console.log": 2, - "+": 9, - "Also": 1, - "special": 4, - "form": 10, - "many.": 1, - "If": 2, - "evaluation": 1, - "nil.": 1, - "Bindings": 1, - "Let": 1, - "containing": 1, - "lexical": 1, - "context": 1, - "simbols": 1, - "bindings": 1, - "forms": 1, - "bound": 1, - "their": 2, - "respective": 1, - "results.": 1, - "let": 2, - "c": 1, - "Functions": 1, - "fn": 15, - "x": 22, - "named": 1, - "similar": 2, - "increment": 1, - "also": 2, - "contain": 1, - "documentation": 1, - "metadata.": 1, - "Docstring": 1, - "metadata": 1, - "presented": 1, - "compiled": 2, + "string_replaceregexp": 8, + "replace": 8, + "ReplaceOnlyOne": 2, + "substring": 6, + "remove": 6, + "ORDER": 2, + "statement": 4, + "since": 4, + "causes": 4, + "problems": 2, + "field": 26, + "aliases": 2, + "we": 2, + "can": 14, + "simple": 2, + "later": 2, + "else": 32, + "query": 4, + "contains": 2, + "use": 10, + "SQL_CALC_FOUND_ROWS": 2, + "which": 2, + "much": 2, + "slower": 2, + "see": 16, + "//bugs.mysql.com/bug.php": 2, + "id": 7, + "removeleading": 2, + "inline": 4, + "sql": 2, + "exit": 2, + "here": 2, + "normally": 2, + "/inline": 2, + "fallback": 4, + "required": 10, + "optional": 36, + "local_defined": 26, + "knop_seed": 2, + "Local": 7, + "#RandChars": 4, + "Get": 2, + "Math_Random": 2, + "Min": 2, + "Max": 2, + "Size": 2, + "#value": 14, + "join": 5, + "#numericValue": 4, + "&&": 30, + "length": 8, + "#cryptvalue": 10, + "#anyChar": 2, + "Encrypt_Blowfish": 2, + "decrypt_blowfish": 2, + "String_Remove": 2, + "StartPosition": 2, + "EndPosition": 2, + "Seed": 2, + "String_IsAlphaNumeric": 2, + "self": 72, + "_date_msec": 4, + "/define_type": 4, + "type": 63, + "seconds": 4, + "map": 23, + "default": 4, + "store": 4, + "all": 6, + "page": 14, + "vars": 8, + "specified": 8, + "iterate": 12, + "keys": 6, + "var": 38, + "#item": 10, + "isa": 25, + "#type": 26, + "#data": 14, + "insert": 18, + "/iterate": 12, + "//fail_if": 6, + "session_id": 6, + "#session": 10, + "session_addvar": 4, + "#cache_name": 72, + "duration": 4, + "second": 8, + "#expires": 4, + "server_name": 6, + "initiate": 10, + "thread": 6, + "RW": 6, + "lock": 24, + "global": 40, + "Thread_RWLock": 6, + "create": 6, + "reference": 10, + "@": 8, + "writing": 6, + "#lock": 12, + "writelock": 4, + "check": 6, + "cache": 4, + "unlock": 6, + "writeunlock": 4, + "null": 26, + "#maxage": 4, + "cached": 8, + "data": 12, + "too": 4, + "old": 4, + "reading": 2, + "readlock": 2, + "readunlock": 2, + "value": 14, + "true": 12, + "false": 8, + "ignored": 2, + "//##################################################################": 4, + "knoptype": 2, + "All": 4, + "Knop": 6, + "custom": 8, + "types": 10, + "should": 4, + "have": 6, + "parent": 5, + "This": 5, + "identify": 2, + "registered": 2, + "knop": 6, + "isknoptype": 2, + "knop_knoptype": 2, + "prototype": 4, + "version": 4, + "14": 4, + "Base": 2, + "framework": 2, + "Contains": 2, + "common": 4, + "member": 10, + "Used": 2, + "boilerplate": 2, + "creating": 4, + "other": 4, + "instance": 8, + "variables": 2, + "are": 4, + "available": 2, + "well": 2, + "CHANGE": 4, + "NOTES": 4, + "Syntax": 4, + "adjustments": 4, + "9": 2, + "Changed": 6, + "error_msg": 15, + "error": 22, + "numbers": 2, + "added": 10, + "even": 2, + "language": 10, + "already": 2, + "exists.": 2, + "improved": 4, + "reporting": 2, + "messages": 6, + "such": 2, + "from": 6, + "bad": 2, + "database": 14, + "queries": 2, + "error_lang": 2, + "provide": 2, + "knop_lang": 8, + "object": 7, + "add": 12, + "localized": 2, + "any": 14, + "except": 2, + "knop_base": 8, + "html": 4, + "xhtml": 28, + "help": 10, + "nicely": 2, + "formatted": 2, + "output.": 2, + "Centralized": 2, + "error_code": 11, + "knop_base.": 2, + "Moved": 6, + "codes": 2, + "improve": 2, + "documentation.": 2, + "It": 2, + "always": 2, + "an": 8, + "list": 4, + "parameter.": 2, + "trace": 2, + "tagtime": 4, + "was": 6, + "nav": 4, + "earlier": 2, + "varname": 4, + "retreive": 2, + "variable": 8, + "that": 18, + "stored": 2, + "in.": 2, + "automatically": 2, + "sense": 2, + "doctype": 6, + "exists": 2, + "buffer.": 2, + "The": 6, + "result": 6, + "performance.": 2, + "internal": 2, + "html.": 2, + "Introduced": 2, + "_knop_data": 10, + "general": 2, + "level": 2, + "caching": 2, + "between": 2, + "different": 2, + "objects.": 2, + "TODO": 2, + "option": 2, + "Google": 2, + "Code": 2, + "Wiki": 2, + "working": 2, + "properly": 4, + "run": 2, + "by": 12, + "atbegin": 2, + "handler": 2, + "explicitly": 2, + "*/": 2, + "array": 20, + "entire": 4, + "ms": 2, + "defined": 4, + "each": 8, + "instead": 4, + "avoid": 2, + "recursion": 2, + "properties": 4, + "params": 11, + "|": 13, + "#endslash": 10, + "#tags": 2, + "#t": 2, + "doesn": 4, + "t": 8, + "p": 2, + "n": 30, + "Parameters": 4, + "nParameters": 2, + "r": 8, + "Internal.": 2, + "Finds": 2, + "out": 2, + "used.": 2, + "Looks": 2, + "unless": 2, + "array.": 2, + "variable.": 2, + "Looking": 2, + "#params": 5, + "#xhtmlparam": 4, + "boolean": 4, + "plain": 2, + "#doctype": 4, + "copy": 4, + "standard": 2, + "code": 2, + "errors": 12, + "error_data": 12, + "form": 2, + "grid": 2, + "lang": 2, + "user": 4, + "#error_lang": 12, + "addlanguage": 4, + "strings": 6, + "@#errorcodes": 2, + "#error_lang_custom": 2, + "#custom_language": 10, + "once": 4, + "one": 2, + "key": 3, + "#custom_string": 4, + "#errorcodes": 4, + "#error_code": 10, + "message": 6, + "getstring": 2, + "literal": 3, + "test": 2, + "known": 2, + "lasso": 2, + "knop_timer": 2, + "knop_unique": 2, + "look": 2, + "#varname": 6, + "loop_abort": 2, + "tag_name": 2, + "#timer": 2, + "#trace": 4, + "merge": 2, + "#eol": 8, + "2010": 4, + "23": 4, + "Custom": 2, + "interact": 2, + "databases": 2, + "Supports": 4, + "both": 2, + "MySQL": 2, + "FileMaker": 2, + "datasources": 2, + "2012": 4, + "06": 2, + "10": 2, + "SP": 4, + "Fix": 2, + "decimal": 5, + "precision": 2, + "bug": 2, + "6": 2, + "0": 2, + "1": 2, + "renderfooter": 2, + "15": 2, + "Add": 2, + "support": 6, + "host": 6, + "Thanks": 2, + "Ric": 2, + "Lewis": 2, + "settable": 4, + "removed": 2, + "table": 6, + "nextrecord": 12, + "deprecation": 2, + "warning": 2, + "corrected": 2, + "verification": 2, + "index": 4, + "before": 4, + "calling": 2, + "resultset_count": 6, + "break": 2, + "versions": 2, + "fixed": 4, + "incorrect": 2, + "debug_trace": 2, + "addrecord": 4, + "how": 2, + "keyvalue": 10, + "returned": 6, + "adding": 2, + "records": 4, + "inserting": 2, + "generated": 2, + "suppressed": 2, + "specifying": 2, + "saverecord": 8, + "deleterecord": 4, + "case.": 2, + "recorddata": 6, + "no": 2, + "longer": 2, + "touch": 2, + "current_record": 2, + "zero": 2, + "access": 2, + "occurrence": 2, + "same": 4, + "returns": 4, + "knop_databaserows": 2, + "inlinename.": 4, + "next.": 2, + "remains": 2, + "supported": 2, + "backwards": 2, + "compatibility.": 2, + "resets": 2, + "record": 20, + "pointer": 8, + "reaching": 2, + "last": 4, + "honors": 2, + "incremented": 2, + "recordindex": 4, + "specific": 2, + "found.": 2, + "getrecord": 8, + "REALLY": 2, + "works": 4, + "keyvalues": 4, + "double": 2, + "oops": 4, + "I": 4, + "thought": 2, + "but": 2, + "misplaced": 2, + "paren...": 2, + "corresponding": 2, + "resultset": 2, + "...": 3, + "/resultset": 2, + "through": 2, + "handling": 2, + "better": 2, + "knop_user": 4, + "keeplock": 4, + "updates": 2, + "datatype": 2, + "knop_databaserow": 2, + "iterated.": 2, + "When": 2, + "iterating": 2, + "row": 2, + "values.": 2, + "Addedd": 2, + "increments": 2, + "recordpointer": 2, + "called": 2, + "until": 2, + "found": 5, + "set": 10, + "reached.": 2, + "Returns": 2, + "long": 2, + "there": 2, + "more": 2, + "records.": 2, + "Useful": 2, + "loop": 2, + "example": 2, + "below": 2, + "Implemented": 2, + ".": 5, + "reset": 2, + "query.": 2, + "shortcut": 2, + "Removed": 2, + "onassign": 2, + "touble": 2, + "Extended": 2, + "field_names": 2, + "names": 4, + "db": 2, + "objects": 2, + "never": 2, + "been": 2, + "optionally": 2, + "supports": 2, + "sql.": 2, + "Make": 2, + "sure": 2, + "SQL": 2, + "includes": 2, + "relevant": 2, + "keyfield": 4, + "lockfield": 2, + "locking": 4, + "capturesearchvars": 2, + "mysteriously": 2, + "after": 2, + "operations": 2, + "caused": 2, + "errors.": 2, + "flag": 2, + "save": 2, + "locked": 2, + "releasing": 2, + "Adding": 2, + "progress.": 2, + "Done": 2, + "oncreate": 2, + "getrecord.": 2, + "documentation": 2, + "most": 2, + "existing": 2, + "it.": 2, + "Faster": 2, + "than": 2, + "scratch.": 2, + "shown_first": 2, + "again": 2, + "hoping": 2, + "s": 2, + "only": 2, + "captured": 2, + "update": 2, + "uselimit": 2, + "querys": 2, + "LIMIT": 2, + "still": 2, + "gets": 2, + "proper": 2, + "searchresult": 2, + "separate": 2, + "COUNT": 2, + "define": 20, + "trait_json_serialize": 2, + "trait": 1, + "{": 18, + "require": 1, + "asString": 3, + "}": 18, + "json_serialize": 18, + "e": 13, + "bytes": 8, + "#e": 13, + "Replace": 19, + "&": 21, + "json_literal": 1, + "asstring": 4, + "gmt": 1, + "trait_forEach": 1, + "delimit": 7, + "foreach": 1, + "#delimit": 7, + "#1": 3, + "pr": 1, + "eachPair": 1, + "select": 1, + "#pr": 2, + "json_object": 2, + "foreachpair": 1, + "serialize": 1, + "json_consume_string": 3, + "ibytes": 9, + "obytes": 3, + "temp": 12, + "#temp": 19, + "#ibytes": 17, + "export8bits": 6, + "#obytes": 5, + "import8bits": 4, + "Escape": 1, + "unescape": 1, + "//Replace": 1, + "BeginsWith": 1, + "EndsWith": 1, + "Protect": 1, + "serialization_reader": 1, + "xml": 1, + "read": 1, + "/Protect": 1, + "regexp": 1, + "d": 2, + "T": 3, + "Z": 1, + "matches": 1, + "Format": 1, + "yyyyMMdd": 2, + "HHmmssZ": 1, + "HHmmss": 1, + "json_consume_token": 2, + "marker": 4, + "Is": 1, + "end": 2, + "token": 1, + "//............................................................................": 2, + "string_IsNumeric": 1, + "json_consume_array": 3, + "While": 1, + "If": 4, + "Discard": 1, + "Else": 7, + "#key": 12, + "json_consume_object": 2, + "Loop_Abort": 1, + "/If": 3, + "/While": 1, + "Find": 3, + "Return": 7, + "Second": 1, + "json_deserialize": 1, + "removeLeading": 1, + "bom_utf8": 1, + "Reset": 1, + "on": 1, + "provided": 1, + "**/": 1, + "public": 1, + "onCreate": 1, + "..onCreate": 1, + "#rest": 1, + "json_rpccall": 1, + "#id": 2, + "#host": 4, + "Lasso_UniqueID": 1, + "Decode_JSON": 2, + "Include_URL": 1, + "PostParams": 1, + "Encode_JSON": 1, + "Map": 3, + "#method": 1, + "LassoScript": 1, + "JSON": 2, + "Encoding": 1, + "Decoding": 1, + "Copyright": 1, + "LassoSoft": 1, + "Inc.": 1, + "": 1, + "": 1, + "": 1, + "incorporated": 1, + "Lasso_TagExists": 1, + "False": 1, + "Define_Tag": 1, + "Namespace": 1, + "Required": 1, + "Optional": 1, + "f": 2, + "b": 2, + "newoptions": 1, + "options": 2, + "queue": 2, + "priorityqueue": 2, + "stack": 2, + "pair": 1, + "client_ip": 1, + "client_address": 1, + "__jsonclass__": 6, + "deserialize": 2, + "": 3, + "": 3, + "Decode_": 1, + "consume_string": 1, + "unescapes": 1, + "u": 1, + "UTF": 4, + "QT": 4, + "TZ": 2, + "consume_token": 1, + "consume_array": 1, + "consume_object": 1, + "val": 1, + "native": 2, + "comment": 2, + "//www.lassosoft.com/json": 1, + "Literal": 2, + "String": 1, + "Object": 2, + "JSON_RPCCall": 1, + "RPCCall": 1, + "JSON_": 1, + "//localhost/lassoapps.8/rpc/rpc.lasso": 1, + "request": 2, + "JSON_Records": 3, + "KeyField": 1, + "ReturnField": 1, + "ExcludeField": 1, + "Fields": 1, + "_fields": 1, + "fields": 2, + "No": 1, + "_keyfield": 4, + "ID": 1, + "_index": 1, + "_return": 1, + "returnfield": 1, + "_exclude": 1, + "excludefield": 1, + "_records": 1, + "_record": 1, + "_temp": 1, + "_field": 1, + "_output": 1, + "rows": 1, + "#_records": 1, + "@#_output": 1, + "/Define_Tag": 1 + }, + "Ceylon": { + "doc": 2, + "by": 1, + "shared": 5, + "void": 1, + "test": 1, + "(": 4, + ")": 4, + "{": 3, + "print": 1, + ";": 4, + "}": 3, + "class": 1, + "Test": 2, + "name": 4, + "satisfies": 1, + "Comparable": 1, + "": 1, + "String": 2, + "actual": 2, + "string": 1, + "Comparison": 1, + "compare": 1, + "other": 1, + "return": 1, + "<=>": 1, + "other.name": 1 + }, + "Perl": { + "SHEBANG#!perl": 5, + "use": 83, + "strict": 18, + ";": 1193, + "warnings": 18, + "CGI": 6, + "Fast": 3, + "XML": 2, + "Hash": 11, + "XS": 2, + "File": 54, + "Spec": 13, + "FindBin": 1, + "qw": 35, + "(": 925, + "Bin": 3, + ")": 923, + "#use": 1, + "lib": 2, + "-": 868, + "catdir": 3, + "..": 7, + "my": 404, + "_stop": 4, + "request": 11, + "SIG": 3, + "{": 1121, + "}": 1134, + "sub": 225, + "exit": 16, + "unless": 39, + "defined": 54, + "ENV": 40, + "#": 99, + "for": 83, + "nginx": 2, + "external": 2, + "fcgi": 2, + "Ext_Request": 1, + "FCGI": 1, + "Request": 11, + "*STDIN": 2, + "*STDOUT": 6, + "*STDERR": 1, + "%": 78, + "int": 2, + "ARGV": 2, + "[": 159, + "]": 155, + "||": 49, + "conv": 2, + "new": 55, + "use_attr": 1, + "indent": 1, + "output": 36, + "xml_decl": 1, + "tmpl_path": 2, + "|": 28, + "tmpl": 5, + "data": 3, + "name": 44, + "nick": 1, + "tree": 2, + "example": 5, + "parent": 5, + "id": 6, + "third_party": 1, + "results": 8, + "artist_name": 2, + "venue": 2, + "event": 2, + "date": 2, + "while": 31, + "eval": 8, + "return": 157, + "if": 276, + "m": 17, + "/": 69, + "a": 85, + "zA": 1, + "Z0": 1, + "_": 101, + "+": 120, + "exists": 19, + "die": 38, + "e": 20, + "catfile": 4, + "print": 35, + "qq": 18, + "Content": 2, + "type": 69, + "application/xml": 1, + "charset": 2, + "utf": 2, + "r": 14, + "n": 19, + "hash2xml": 1, + "@": 38, + "text/html": 1, + "nError": 1, + "undef": 17, + "last": 17, + "M": 1, + "<": 15, + "system": 1, + ".": 125, + "SHEBANG#!#! perl": 4, + "i": 26, + "o": 17, + "Foo": 11, + "package": 14, + "self": 141, + "ref": 33, + "shift": 165, + "bless": 7, + "Bar": 1, + "@array": 1, + "hash": 11, + "x": 7, + "y": 8, + "pod": 1, + "head1": 36, + "NAME": 6, + "Catalyst": 10, + "PSGI": 10, + "How": 1, + "and": 85, + "work": 3, + "together": 2, + "SYNOPSIS": 6, + "The": 22, + "L": 34, + "": 3, + "specification": 3, + "defines": 2, + "an": 16, + "interface": 1, + "between": 4, + "web": 8, + "servers": 2, + "Perl": 9, + "based": 2, + "applications": 2, + "frameworks.": 1, + "It": 3, + "supports": 1, + "the": 143, + "writing": 1, + "of": 64, + "portable": 1, + "that": 33, + "can": 30, + "be": 36, + "run": 1, + "using": 5, + "various": 2, + "methods": 4, + "as": 37, + "standalone": 1, + "server": 2, + "or": 49, + "mod_perl": 3, + "FastCGI": 2, + "etc.": 3, + "": 3, + "is": 69, + "implementation": 1, + "running": 1, + "applications.": 1, + "used": 12, + "to": 95, + "contain": 3, + "entire": 3, + "set": 12, + "C": 56, + "<<": 10, + "Engine": 1, + "XXXX": 1, + "classes": 2, + "handle": 3, + "environments": 1, + "e.g.": 2, + "This": 27, + "has": 3, + "been": 1, + "changed": 1, + "in": 36, + "so": 4, + "all": 23, + "done": 2, + "by": 16, + "implementing": 1, + "s": 35, + "possible": 2, + "do": 12, + "it": 28, + "manually": 2, + "creating": 3, + "": 1, + "file": 49, + "root": 1, + "your": 20, + "application.": 1, + "head2": 34, + "Why": 3, + "would": 5, + "I": 68, + "want": 7, + "write": 2, + "own": 4, + ".psgi": 7, + "Writing": 2, + "allows": 4, + "you": 44, + "alternate": 1, + "": 1, + "command": 14, + "start": 7, + "application": 15, + "add": 9, + "extensions": 1, + "implement": 2, + "": 1, + "such": 6, + "": 1, + "": 1, + "simplest": 1, + "<.psgi>": 1, + "called": 4, + "": 1, + "TestApp": 5, + "app": 2, + "psgi_app": 3, + "@_": 43, + "Note": 5, + "will": 9, + "apply": 3, + "number": 4, + "middleware": 2, + "components": 2, + "automatically": 2, + "these": 4, + "B": 76, + "": 1, + "not": 54, + "applied": 1, + "create": 3, + "psgi": 2, + "yourself.": 2, + "Details": 1, + "found": 11, + "below.": 1, + "Additional": 1, + "information": 2, + "about": 4, + "files": 42, + "at": 4, + "": 1, + "What": 1, + "generates": 2, + "default": 19, + "which": 7, + "": 1, + "setting": 2, + "on": 25, + "wrapped": 1, + "": 1, + "contains": 2, + "some": 1, + "engine": 1, + "specific": 2, + "fixes": 1, + "uniform": 1, + "behaviour": 2, + "contained": 1, + "over": 2, + "item": 44, + "": 1, + "": 1, + "back": 4, + "If": 15, + "override": 1, + "providing": 2, + "then": 4, + "none": 1, + "things": 2, + "returned": 3, + "when": 18, + "call": 2, + "MyApp": 1, + "Thus": 1, + "need": 5, + "any": 4, + "this": 22, + "functionality": 1, + "ll": 1, + "An": 1, + "apply_default_middlewares": 2, + "method": 8, + "supplied": 1, + "wrap": 1, + "middlewares": 1, + "are": 25, + "file.": 3, + "means": 3, + "auto": 1, + "generated": 1, + "no": 22, + "code": 8, + "looks": 2, + "something": 3, + "like": 13, + "SEE": 4, + "ALSO": 4, + "": 1, + "": 1, + "AUTHORS": 2, + "Contributors": 1, + "see": 5, + "Catalyst.pm": 1, + "COPYRIGHT": 7, + "library": 2, + "free": 4, + "software.": 1, + "You": 4, + "redistribute": 4, + "and/or": 4, + "modify": 4, + "under": 5, + "same": 2, + "terms": 4, + "itself.": 3, + "cut": 28, + "Plack": 25, + "_001": 1, + "our": 34, + "VERSION": 15, + "HTTP": 16, + "Headers": 8, + "Carp": 11, + "MultiValue": 9, + "Body": 2, + "Upload": 2, + "TempBuffer": 2, + "URI": 11, + "Escape": 6, + "_deprecated": 8, + "alt": 1, + "caller": 2, + "carp": 2, + "class": 8, + "env": 76, + "croak": 3, + "q": 5, + "required": 2, + "&&": 83, + "eq": 31, + "address": 2, + "REMOTE_ADDR": 1, + "remote_host": 2, + "REMOTE_HOST": 1, + "protocol": 1, + "SERVER_PROTOCOL": 1, + "REQUEST_METHOD": 1, + "port": 1, + "SERVER_PORT": 2, + "user": 4, + "REMOTE_USER": 1, + "request_uri": 1, + "REQUEST_URI": 2, + "path_info": 4, + "PATH_INFO": 3, + "path": 28, + "script_name": 1, + "SCRIPT_NAME": 2, + "scheme": 3, + "secure": 2, + "body": 30, + "input": 9, + "content_length": 4, + "CONTENT_LENGTH": 3, + "content_type": 5, + "CONTENT_TYPE": 2, + "session": 1, + "session_options": 1, + "logger": 1, + "cookies": 9, + "HTTP_COOKIE": 3, + "@pairs": 2, + "grep": 17, + "split": 13, + "pair": 4, + "s/": 22, + "//": 9, + "key": 20, + "value": 12, + "map": 10, + "uri_unescape": 1, + "query_parameters": 3, + "uri": 11, + "query_form": 2, + "content": 8, + "_parse_request_body": 4, + "fh": 28, + "cl": 10, + "read": 6, + "seek": 4, + "raw_body": 1, + "headers": 56, + "field": 2, + "HTTPS": 1, + "_//": 1, + "CONTENT": 1, + "COOKIE": 1, + "/i": 2, + "keys": 15, + "content_encoding": 5, + "header": 17, + "referer": 3, + "user_agent": 3, + "body_parameters": 3, + "parameters": 8, + "query": 4, + "flatten": 3, + "uploads": 5, + "hostname": 1, + "url_scheme": 1, + "params": 1, + "query_params": 1, + "body_params": 1, + "cookie": 6, + "param": 8, + "wantarray": 3, + "get_all": 2, + "upload": 13, + "raw_uri": 1, + "base": 10, + "path_query": 1, + "_uri_base": 3, + "path_escape_class": 2, + "uri_escape": 3, + "QUERY_STRING": 3, + "ne": 9, + "canonical": 2, + "HTTP_HOST": 1, + "SERVER_NAME": 1, + "new_response": 4, + "require": 12, + "Response": 16, + "ct": 3, + "cleanup": 1, + "buffer": 9, + "else": 53, + "spin": 2, + "chunk": 4, + "length": 1, + "rewind": 1, + "from_mixed": 2, + "@uploads": 3, + "@obj": 3, + "k": 6, + "v": 19, + "splice": 2, + "push": 30, + "_make_upload": 2, + "copy": 4, + "__END__": 2, + "Portable": 2, + "object": 6, + "from": 19, + "app_or_middleware": 1, + "req": 28, + "res": 59, + "finalize": 5, + "DESCRIPTION": 4, + "": 2, + "provides": 1, + "consistent": 1, + "API": 2, + "objects": 2, + "across": 1, + "environments.": 1, + "CAVEAT": 1, + "module": 2, + "intended": 1, + "developers": 3, + "framework": 2, + "rather": 2, + "than": 5, + "end": 9, + "users": 4, + "directly": 1, + "certainly": 2, + "but": 4, + "recommended": 1, + "Apache": 2, "yet": 1, - "comments": 1, - "function.": 1, - "incerement": 1, - "added": 1, - "makes": 1, - "capturing": 1, - "arguments": 7, - "easier": 1, - "than": 1, + "too": 1, + "low": 1, + "level.": 1, + "re": 3, + "encouraged": 1, + "one": 9, + "frameworks": 2, + "support": 2, + "": 1, + "modules": 1, + "": 1, + "provide": 1, + "higher": 1, + "level": 1, + "top": 1, + "PSGI.": 1, + "METHODS": 2, + "Some": 1, + "earlier": 1, + "versions": 1, + "deprecated": 1, + "version": 2, + "Take": 1, + "look": 2, + "": 1, + "Unless": 1, + "otherwise": 2, + "noted": 1, + "attributes": 4, + "": 1, + "passing": 1, + "values": 5, + "accessor": 1, + "doesn": 8, + "debug": 1, + "set.": 1, + "Returns": 10, + "": 2, + "containing": 5, + "current": 5, + "request.": 1, + "reference": 8, + "uploads.": 2, + "": 2, + "": 1, + "objects.": 1, + "Shortcut": 6, + "content_encoding.": 1, + "content_length.": 1, + "content_type.": 1, + "header.": 2, + "referer.": 1, + "user_agent.": 1, + "GET": 1, + "POST": 1, + "with": 26, + "CGI.pm": 2, + "compatible": 1, + "method.": 1, + "alternative": 1, + "accessing": 1, + "parameters.": 3, + "Unlike": 1, + "does": 10, + "": 1, + "allow": 1, + "modifying": 1, + "@values": 1, + "@params": 1, + "A": 2, + "convenient": 1, + "access": 2, + "@fields": 1, + "filename": 68, + "Creates": 2, + "": 3, + "object.": 4, + "Handy": 1, + "remove": 2, + "dependency": 1, + "easy": 1, + "subclassing": 1, + "duck": 1, + "typing": 1, + "well": 2, + "overriding": 1, + "generation": 1, + "middlewares.": 1, + "Parameters": 1, + "take": 5, + "multiple": 5, + "i.e.": 2, + "": 1, + "": 1, + "": 1, + "": 1, + "store": 1, + "plain": 2, + "where": 3, + "": 1, + "scalars": 1, + "": 2, + "array": 7, + "references": 1, + "don": 2, + "ARRAY": 1, + "foo": 6, + "t": 18, + "parse": 1, + "more": 2, + "twice": 1, + "efficiency.": 1, + "DISPATCHING": 1, + "wants": 1, + "dispatch": 1, + "route": 1, + "actions": 1, + "paths": 3, + "sure": 1, + "because": 3, + "": 1, + "gives": 2, + "virtual": 1, + "regardless": 1, + "how": 1, + "mounted.": 1, + "hosted": 1, + "scripts": 1, + "even": 4, + "multiplexed": 1, + "tools": 1, + "": 1, + "good": 2, + "idea": 1, + "subclass": 1, + "define": 1, + "uri_for": 2, + "args": 3, + "So": 1, + "say": 1, + "link": 1, + "signoff": 1, + "": 1, + "empty.": 1, + "older": 1, + "behavior": 3, + "just": 2, + "instead.": 1, + "Cookie": 2, + "handling": 1, + "simplified": 1, + "always": 5, + "string": 5, + "encoding": 2, + "decoding": 1, + "them": 5, + "totally": 1, + "up": 1, + "framework.": 1, + "Also": 1, + "": 1, + "now": 1, + "returns": 4, + "": 1, + "Simple": 1, + "longer": 1, + "have": 2, + "wacky": 1, + "instead": 4, + "simply": 1, + "Tatsuhiko": 2, + "Miyagawa": 2, + "Kazuhiro": 1, + "Osawa": 1, + "Tokuhiro": 2, + "Matsuno": 2, + "": 1, + "": 1, + "LICENSE": 3, + "software": 3, + "examples/benchmarks/fib.pl": 1, + "Fibonacci": 2, + "Benchmark": 1, + "Calculates": 1, + "Number": 1, + "": 1, + "defaults": 16, + "unspecified": 1, + "fib": 4, + "N": 2, + "F": 24, + "": 1, + "Util": 3, + "Accessor": 1, + "status": 17, + "Scalar": 2, + "rc": 11, + "elsif": 10, + "shortcut": 2, + "location": 4, + "redirect": 1, + "url": 2, + "clone": 1, + "_finalize_cookies": 2, + "/chr": 1, + "/ge": 1, + "replace": 3, + "LWS": 1, + "single": 1, + "SP": 1, + "//g": 1, + "CR": 1, + "LF": 1, + "since": 1, + "char": 1, + "invalid": 1, + "here": 2, + "header_field_names": 1, + "_body": 2, + "blessed": 1, + "overload": 1, + "Method": 1, + "val": 26, + "each": 14, + "_bake_cookie": 2, + "push_header": 1, + "@cookie": 7, + "domain": 3, + "_date": 2, + "expires": 7, + "httponly": 1, + "join": 5, + "@MON": 1, + "Jan": 1, + "Feb": 1, + "Mar": 1, + "Apr": 1, + "May": 2, + "Jun": 1, + "Jul": 1, + "Aug": 1, + "Sep": 1, + "Oct": 1, + "Nov": 1, + "Dec": 1, + "@WDAY": 1, + "Sun": 1, + "Mon": 1, + "Tue": 1, + "Wed": 1, + "Thu": 1, + "Fri": 1, + "Sat": 1, + "d": 9, + "sec": 2, + "min": 3, + "hour": 2, + "mday": 2, + "mon": 2, + "year": 3, + "wday": 2, + "gmtime": 1, + "sprintf": 1, + "WDAY": 1, + "MON": 1, + "response": 5, + "psgi_handler": 1, + "way": 2, + "through": 6, + "simple": 2, + "API.": 1, + "Sets": 2, + "gets": 2, + "code.": 2, + "": 1, + "alias.": 2, + "response.": 1, + "Setter": 2, + "either": 2, + "list": 10, + "headers.": 1, + "body_str": 1, + "io": 1, + "Gets": 3, + "sets": 4, + "body.": 1, + "IO": 1, + "Handle": 1, + "": 1, + "X": 2, + "bar": 3, + "text/plain": 1, + "gzip": 1, + "normalize": 1, + "given": 10, + "string.": 1, + "Users": 1, + "responsible": 1, + "properly": 1, + "": 1, + "names": 1, + "their": 1, + "corresponding": 1, + "": 2, + "everything": 1, + "": 1, + "": 2, + "": 1, + "": 1, + "": 1, + "integer": 1, + "epoch": 1, + "time": 3, + "": 1, + "convert": 1, + "formats": 1, + "<+3M>": 1, + "*": 8, + "reference.": 1, + "AUTHOR": 1, + "App": 131, + "Ack": 136, + "Next": 27, + "Plugin": 2, + "Basic": 10, + "container": 1, + "functions": 2, + "ack": 38, + "program": 6, + "Version": 1, + "BEGIN": 7, + "types": 26, + "type_wanted": 20, + "mappings": 29, + "ignore_dirs": 12, + "input_from_pipe": 8, + "output_to_pipe": 12, + "dir_sep_chars": 10, + "is_cygwin": 6, + "is_windows": 12, + "Glob": 4, + "Getopt": 6, + "Long": 6, + "_MTN": 2, + "blib": 2, + "CVS": 5, + "RCS": 2, + "SCCS": 2, + "_darcs": 2, + "_sgbak": 2, + "_build": 2, + "actionscript": 2, + "mxml": 2, + "ada": 4, + "adb": 2, + "ads": 2, + "asm": 4, + "batch": 2, + "bat": 2, + "cmd": 2, + "binary": 3, + "Binary": 2, + "T": 2, + "op": 2, + "off": 4, + "tt": 4, + "tt2": 2, + "ttml": 2, + "vb": 4, + "bas": 2, + "cls": 2, + "frm": 2, + "ctl": 2, + "resx": 2, + "verilog": 2, + "vh": 2, + "sv": 2, + "vhdl": 4, + "vhd": 2, + "vim": 4, + "yaml": 4, + "yml": 2, + "xml": 6, + "dtd": 2, + "xsl": 2, + "xslt": 2, + "ent": 2, + "exts": 6, + "ext": 14, + "mk": 2, + "mak": 2, + "p": 9, + "STDIN": 2, + "O": 4, + "/MSWin32/": 2, + "quotemeta": 5, + "know": 4, + "": 13, + "No": 4, + "serviceable": 1, + "parts": 1, + "inside.": 1, + "should": 6, + "this.": 1, + "FUNCTIONS": 1, + "read_ackrc": 4, + "Reads": 1, + "contents": 2, + ".ackrc": 1, + "arguments.": 1, + "@files": 12, + "ACKRC": 2, + "@dirs": 4, + "HOME": 4, + "USERPROFILE": 2, + "dir": 27, + "bsd_glob": 4, + "GLOB_TILDE": 2, + "open": 7, + "@lines": 21, + "/./": 2, + "s*#/": 2, + "<$fh>": 4, + "chomp": 3, + "close": 19, + "get_command_line_options": 4, + "line": 20, + "arguments": 2, + "tweaking.": 1, + "opt": 291, + "pager": 19, + "ACK_PAGER_COLOR": 7, + "ACK_PAGER": 5, + "getopt_specs": 6, + "after_context": 16, + "before_context": 18, + "break": 14, + "c": 5, + "count": 23, + "color": 38, + "ACK_COLOR_MATCH": 5, + "ACK_COLOR_FILENAME": 5, + "ACK_COLOR_LINENO": 4, + "column": 4, + "ignore": 7, + "option": 7, + "handled": 2, + "beforehand": 2, + "f": 25, + "flush": 8, + "follow": 7, + "G": 11, + "heading": 18, + "h": 6, + "H": 6, + "invert_file_match": 8, + "lines": 19, + "l": 17, + "regex": 28, + "passthru": 9, + "print0": 7, + "Q": 7, + "show_types": 4, + "smart_case": 3, + "sort_files": 11, + "u": 10, + "w": 4, + "remove_dir_sep": 7, + "delete": 10, + "print_version_statement": 2, + "show_help": 3, + "show_help_types": 2, + "Pod": 4, + "Usage": 4, + "pod2usage": 2, + "verbose": 2, + "exitval": 2, + "dummy": 2, + "wanted": 4, + "no//": 2, + "must": 5, + "later": 2, + "Unknown": 2, + "unshift": 4, + "@ARGV": 12, + "ACK_OPTIONS": 5, + "def_types_from_ARGV": 5, + "filetypes_supported": 5, + "parser": 12, + "Parser": 4, + "configure": 4, + "getoptions": 4, + "to_screen": 10, + "Win32": 9, + "Console": 2, + "ANSI": 3, + "@ret": 10, + "warn": 22, + "uniq": 4, + "@uniq": 2, + "sort": 8, + "<=>": 2, + "b": 6, + "numerical": 2, + "occurs": 2, + "only": 11, + "once": 4, + "Go": 1, + "<--type-set>": 1, + "foo=": 1, + "<--type-add>": 1, + "xml=": 1, + "Remove": 1, + "supported": 1, + "filetypes": 8, + "into": 6, + "@typedef": 8, + "td": 6, + "Builtin": 4, + "cannot": 4, + "changed.": 4, + "delete_type": 5, + "Type": 2, + "exist": 4, + "...": 2, + "@exts": 8, + ".//": 2, + "Cannot": 4, + "append": 2, + "Removes": 1, + "internal": 1, + "structures": 1, + "type_wanted.": 1, + "Internal": 2, + "error": 4, + "builtin": 2, + "ignoredir_filter": 5, + "Standard": 1, + "filter": 12, + "pass": 1, + "": 1, + "descend_filter.": 1, + "true": 3, + "directory": 8, + "ones": 1, + "we": 7, + "ignore.": 1, + "removes": 1, + "trailing": 1, + "separator": 4, + "there": 6, + "its": 2, "argument": 1, - "follows": 1, - "simbol": 1, - "capture": 1, - "all": 4, - "args": 1, - "array.": 1, - "rest.reduce": 1, - "sum": 3, - "Overloads": 1, - "overloaded": 1, + "<$filename>": 1, + "could": 2, + "be.": 1, + "For": 5, + "": 1, + "filetype": 1, + "": 1, + "skipped": 2, + "avoid": 1, + "searching": 6, + "a.": 1, + "constant": 2, + "TEXT": 16, + "basename": 9, + ".*": 2, + "is_searchable": 8, + "lc_basename": 8, + "lc": 5, + "SHEBANG#!#!": 2, + "ruby": 3, + "lua": 2, + "erl": 2, + "hp": 2, + "ython": 2, + "d.": 2, + "b/": 4, + "ba": 2, + "z": 2, + "sh": 2, + "search": 11, + "false": 1, + "regular": 3, + "expression": 9, + "found.": 4, + "www": 2, + "U": 2, + "tr/": 2, + "w/": 3, + "nOo_/": 2, + "_thpppt": 3, + "_get_thpppt": 3, + "_bar": 3, + "&": 22, + "*I": 2, + "g": 7, + "#.": 6, + ".#": 4, + "I#": 2, + "#I": 6, + "#7": 4, + "results.": 2, + "interactively": 6, + "Print": 6, + "different": 2, + "files.": 6, + "group": 2, + "Same": 8, + "nogroup": 2, + "noheading": 2, + "nobreak": 2, + "Highlight": 2, + "matching": 15, + "text": 6, + "redirected": 2, + "Windows": 4, + "colour": 2, + "COLOR": 6, + "match": 21, + "lineno": 2, + "Set": 3, + "filenames": 7, + "matches": 7, + "numbers.": 2, + "Flush": 2, + "immediately": 2, + "non": 2, + "goes": 2, + "pipe": 4, + "finding": 2, + "Only": 7, + "without": 3, + "searching.": 2, + "PATTERN": 8, + "specified.": 4, + "REGEX": 2, + "REGEX.": 2, + "Sort": 2, + "lexically.": 3, + "invert": 2, + "Print/search": 2, + "g/": 2, + "G.": 2, + "show": 3, + "Show": 2, + "has.": 2, + "inclusion/exclusion": 2, + "All": 4, + "searched": 5, + "Ignores": 2, + ".svn": 3, + "other": 5, + "ignored": 6, + "directories": 9, + "unrestricted": 2, + "Add/Remove": 2, + "dirs": 2, + "R": 2, + "recurse": 2, + "Recurse": 3, + "subdirectories": 2, + "END_OF_HELP": 2, + "VMS": 2, + "vd": 2, + "Term": 6, + "ANSIColor": 8, + "black": 3, + "on_yellow": 3, + "bold": 5, + "green": 3, + "yellow": 3, + "printing": 2, + "qr/": 13, + "last_output_line": 6, + "any_output": 10, + "keep_context": 8, + "@before": 16, + "before_starts_at_line": 10, + "after": 18, + "still": 4, + "next_text": 8, + "has_lines": 4, + "scalar": 2, + "m/": 4, + "regex/": 9, + "next": 9, + "print_match_or_context": 13, + "max": 12, + "nmatches": 61, + "show_filename": 35, + "context_overall_output_count": 6, + "print_blank_line": 2, + "is_binary": 4, + "search_resource": 7, + "is_match": 7, + "starting_line_no": 1, + "match_start": 5, + "match_end": 3, + "Prints": 4, + "out": 2, + "context": 1, + "around": 5, + "match.": 3, + "opts": 2, + "line_no": 12, + "show_column": 4, + "display_filename": 8, + "colored": 6, + "print_first_filename": 2, + "sep": 8, + "output_func": 8, + "print_separator": 2, + "print_filename": 2, + "display_line_no": 4, + "print_line_no": 2, + "regex/go": 2, + "regex/Term": 2, + "substr": 2, + "/eg": 2, + "z/": 2, + "K/": 2, + "z//": 2, + "print_column_no": 2, + "scope": 4, + "TOTAL_COUNT_SCOPE": 2, + "total_count": 10, + "get_total_count": 4, + "reset_total_count": 4, + "search_and_list": 8, + "Optimized": 1, + "lines.": 3, + "ors": 11, + "record": 3, + "show_total": 6, + "print_count": 4, + "print_count0": 2, + "filetypes_supported_set": 9, + "True/False": 1, + "print_files": 4, + "iter": 23, + "iterator": 3, + "<$regex>": 1, + "<$one>": 1, + "stop": 1, + "first.": 1, + "<$ors>": 1, + "<\"\\n\">": 1, + "what": 14, + "filename.": 1, + "print_files_with_matches": 4, + "was": 2, + "repo": 18, + "Repository": 11, + "next_resource": 6, + "print_matches": 4, + "tarballs_work": 4, + ".tar": 2, + ".gz": 2, + "Tar": 4, + "XXX": 4, + "Error": 2, + "checking": 2, + "needs_line_scan": 14, + "reset": 5, + "filetype_setup": 4, + "Minor": 1, + "housekeeping": 1, + "before": 1, + "go": 1, + "expand_filenames": 7, + "expanded": 3, + "globs": 1, + "EXPAND_FILENAMES_SCOPE": 4, + "argv": 12, + "attr": 6, + "foreach": 4, + "pattern": 10, + "@results": 14, + "didn": 2, + "ve": 2, + "tried": 2, + "load": 2, + "GetAttributes": 2, + "got": 2, + "get_starting_points": 4, + "starting": 2, + "@what": 14, + "reslash": 4, + "Assume": 2, + "start_point": 4, + "_match": 8, + "target": 6, + "invert_flag": 4, + "get_iterator": 4, + "Return": 2, + "starting_point": 10, + "g_regex": 4, + "file_filter": 12, + "g_regex/": 6, + "Maybe": 2, + "is_interesting": 4, + "descend_filter": 11, + "error_handler": 5, + "msg": 4, + "follow_symlinks": 6, + "set_up_pager": 3, + "Unable": 2, + "going": 1, + "pipe.": 1, + "exit_from_ack": 5, + "Exit": 1, + "correct": 1, + "handed": 1, + "argument.": 1, + "Copyright": 2, + "Andy": 2, + "Lester.": 2, + "Artistic": 2, + "License": 2, + "v2.0.": 2, + "End": 3, + "MAIN": 1, + "main": 3, + "env_is_usable": 3, + "th": 1, + "pt": 1, + "@keys": 2, + "ACK_/": 1, + "@ENV": 1, + "load_colors": 1, + "ACK_SWITCHES": 1, + "Unbuffer": 1, + "mode": 1, + "build_regex": 3, + "nargs": 2, + "Resource": 5, + "file_matching": 2, + "check_regex": 2, + "finder": 1, + "options": 7, + "FILE...": 1, + "DIRECTORY...": 1, + "designed": 1, + "replacement": 1, + "uses": 2, + "": 5, + "searches": 1, + "named": 3, + "FILEs": 1, + "standard": 1, + "PATTERN.": 1, + "By": 2, + "prints": 2, + "also": 7, + "actually": 1, + "let": 1, + "advantage": 1, + ".wango": 1, + "won": 1, + "throw": 1, + "away": 1, + "times": 2, + "symlinks": 1, + "whatever": 1, + "were": 1, + "specified": 3, + "line.": 4, + "default.": 2, + "": 11, + "included": 1, + "search.": 1, + "matched": 1, + "against": 1, + "shell": 4, + "glob.": 1, + "<-i>": 5, + "<-w>": 2, + "<-v>": 3, + "<-Q>": 4, + "relative": 1, + "convenience": 1, + "<-f>": 6, + "<--group>": 2, + "<--nogroup>": 2, + "groups": 1, + "with.": 1, + "interactively.": 1, + "result": 1, + "per": 1, + "grep.": 2, + "redirected.": 1, + "<-H>": 1, + "<--with-filename>": 1, + "<-h>": 1, + "<--no-filename>": 1, + "Suppress": 1, + "prefixing": 1, + "searched.": 1, + "<--help>": 1, + "short": 1, + "help": 2, + "statement.": 1, + "<--ignore-case>": 1, + "Ignore": 3, + "case": 3, + "strings.": 1, + "applies": 3, + "regexes": 3, + "<-g>": 5, + "<-G>": 3, + "options.": 4, + "": 2, + "etc": 2, + "directories.": 2, + "mason": 1, + "may": 3, + "wish": 1, + "include": 1, + "<--ignore-dir=data>": 1, + "<--noignore-dir>": 1, + "normally": 1, + "perhaps": 1, + "research": 1, + "<.svn/props>": 1, + "name.": 1, + "Nested": 1, + "": 1, + "NOT": 1, + "supported.": 1, + "specify": 1, + "<--ignore-dir=foo>": 1, + "taken": 1, + "account": 1, + "explicitly": 1, + "": 2, + "Multiple": 1, + "<--line>": 1, + "comma": 1, + "separated": 2, + "<--line=3,5,7>": 1, + "<--line=4-7>": 1, + "works.": 1, + "ascending": 1, + "order": 2, + "matter": 1, + "<-l>": 2, + "<--files-with-matches>": 1, + "text.": 1, + "<-L>": 1, + "<--files-without-matches>": 1, + "equivalent": 2, + "specifying": 1, + "Specify": 1, + "explicitly.": 1, + "helpful": 2, + "": 1, + "via": 1, + "": 4, + "": 4, + "environment": 2, + "variables.": 1, + "Using": 3, + "suppress": 3, + "grouping": 3, + "coloring": 3, + "piping": 3, + "does.": 2, + "<--passthru>": 1, + "whether": 1, + "they": 1, + "expression.": 1, + "Highlighting": 1, + "though": 1, + "highlight": 1, + "seeing": 1, + "tail": 1, + "/access.log": 1, + "<--print0>": 1, + "works": 1, + "conjunction": 1, + "null": 1, + "byte": 1, + "usual": 1, + "newline.": 1, + "dealing": 1, + "whitespace": 1, + "html": 1, + "xargs": 2, + "rm": 1, + "<--literal>": 1, + "Quote": 1, + "metacharacters": 2, + "treated": 1, + "literal.": 1, + "<-r>": 1, + "<-R>": 1, + "<--recurse>": 1, + "compatibility": 2, + "turning": 1, + "<--no-recurse>": 1, + "off.": 1, + "<--smart-case>": 1, + "<--no-smart-case>": 1, + "strings": 1, + "uppercase": 1, + "characters.": 1, + "similar": 1, + "": 1, + "vim.": 1, + "overrides": 2, + "option.": 1, + "<--sort-files>": 1, + "Sorts": 1, + "Use": 6, + "listings": 1, + "deterministic": 1, + "runs": 1, + "<--show-types>": 1, + "Outputs": 1, + "associates": 1, + "Works": 1, + "<--thpppt>": 1, + "Display": 1, + "important": 1, + "Bill": 1, + "Cat": 1, + "logo.": 1, + "exact": 1, + "spelling": 1, + "<--thpppppt>": 1, + "important.": 1, + "make": 3, + "perl": 8, + "php": 2, + "python": 1, + "location.": 1, + "variable": 1, + "specifies": 1, + "placed": 1, + "front": 1, + "explicit": 1, + "Specifies": 4, + "recognized": 1, + "clear": 2, + "dark": 1, + "underline": 1, + "underscore": 2, + "blink": 1, + "reverse": 1, + "concealed": 1, + "red": 1, + "blue": 1, + "magenta": 1, + "on_black": 1, + "on_red": 1, + "on_green": 1, + "on_blue": 1, + "on_magenta": 1, + "on_cyan": 1, + "on_white.": 1, + "Case": 1, + "significant.": 1, + "Underline": 1, + "reset.": 1, + "alone": 1, + "foreground": 1, + "on_color": 1, + "background": 1, + "color.": 2, + "<--color-filename>": 1, + "printed": 1, + "<--color>": 1, + "mode.": 1, + "<--color-lineno>": 1, + "See": 1, + "": 1, + "specifications.": 1, + "": 1, + "": 1, + "": 1, + "send": 1, + "output.": 1, + "except": 1, + "assume": 1, + "both": 1, + "understands": 1, + "sequences.": 1, + "never": 1, + "ACK": 2, + "OTHER": 1, + "TOOLS": 1, + "Vim": 3, + "integration": 3, + "integrates": 1, + "easily": 2, + "editor.": 1, + "<.vimrc>": 1, + "grepprg": 1, + "That": 3, + "examples": 1, + "<-a>": 1, + "flags.": 1, + "Now": 1, + "step": 1, + "Dumper": 1, + "perllib": 1, + "Emacs": 1, + "Phil": 1, + "Jackson": 1, + "put": 1, + "": 1, + "extension": 1, + "": 1, + "TextMate": 2, + "Pedro": 1, + "Melo": 1, + "who": 1, + "writes": 1, + "Shell": 2, + "Code": 1, + "greater": 1, + "normal": 1, + "<$?=256>": 1, + "": 1, + "backticks.": 1, + "errors": 1, + "used.": 1, + "least": 1, + "returned.": 1, + "DEBUGGING": 1, + "PROBLEMS": 1, + "expecting": 1, + "forgotten": 1, + "<--noenv>": 1, + "<.ackrc>": 1, + "remember.": 1, + "Put": 1, + "definitions": 1, + "it.": 1, + "smart": 1, + "too.": 1, + "there.": 1, + "working": 1, + "big": 1, + "codesets": 1, + "ideal": 1, + "sending": 1, + "": 1, + "prefer": 1, + "doubt": 1, + "day": 1, + "find": 1, + "trouble": 1, + "spots": 1, + "website": 1, + "visitor.": 1, + "had": 1, + "problem": 1, + "loading": 1, + "": 1, + "took": 1, + "log": 3, + "scanned": 1, + "twice.": 1, + "aa.bb.cc.dd": 1, + "/path/to/access.log": 1, + "B5": 1, + "troublesome.gif": 1, + "first": 1, + "finds": 2, + "IP.": 1, + "second": 1, + "troublesome": 1, + "GIF": 1, + "shows": 1, + "previous": 1, + "five": 1, + "case.": 1, + "Share": 1, + "knowledge": 1, + "Join": 1, + "mailing": 1, + "list.": 1, + "Send": 1, + "me": 1, + "tips": 1, + "here.": 1, + "FAQ": 1, + "isn": 1, + "driven": 1, + "filetype.": 1, + "": 1, + "kind": 1, + "ignores": 1, + "switch": 1, + "you.": 1, + "source": 2, + "compiled": 1, + "control": 1, + "metadata": 1, + "wastes": 1, + "lot": 1, + "those": 2, + "returning": 1, + "great": 1, + "did": 1, + "only.": 1, + "perfectly": 1, + "<-p>": 1, + "<-n>": 1, + "switches.": 1, + "select": 1, + "update.": 1, + "change": 1, + "PHP": 1, + "Unix": 1, + "Can": 1, + "recognize": 1, + "<.xyz>": 1, + "already": 2, + "program/package": 1, + "ack.": 2, + "Yes": 1, + "know.": 1, + "nothing": 1, + "suggest": 1, + "symlink": 1, + "points": 1, + "": 1, + "crucial": 1, + "benefits": 1, + "having": 1, + "Regan": 1, + "Slaven": 1, + "ReziE": 1, + "<0x107>": 1, + "Mark": 1, + "Stosberg": 1, + "David": 1, + "Alan": 1, + "Pisoni": 1, + "Adriano": 1, + "Ferreira": 1, + "James": 1, + "Keenan": 1, + "Leland": 1, + "Johnson": 1, + "Ricardo": 1, + "Signes": 1, + "Pete": 1, + "Krawczyk.": 1, + "files_defaults": 3, + "skip_dirs": 3, + "CORE": 3, + "curdir": 1, + "updir": 1, + "__PACKAGE__": 1, + "parms": 15, + "@queue": 8, + "_setup": 2, + "fullpath": 12, + "local": 5, + "_candidate_files": 2, + "sort_standard": 2, + "cmp": 2, + "sort_reverse": 1, + "@parts": 3, + "passed_parms": 6, + "parm": 1, + "badkey": 1, + "dh": 4, + "opendir": 1, + "@newfiles": 5, + "sort_sub": 4, + "readdir": 1, + "has_stat": 3, + "closedir": 1, + "": 1, + "updated": 1, + "update": 1, + "message": 1, + "bak": 1, + "core": 1, + "swp": 1, + "js": 1, + "1": 1, + "str": 12, + "regex_is_lc": 2, + "S": 1, + ".*//": 1, + "_my_program": 3, + "Basename": 2, + "FAIL": 12, + "confess": 2, + "@ISA": 2, + "could_be_binary": 4, + "opened": 1, + "size": 5, + "_000": 1, + "sysread": 1, + "regex/m": 1, + "readline": 1, + "nexted": 3 + }, + "TXL": { + "define": 12, + "program": 1, + "[": 38, + "expression": 9, + "]": 38, + "end": 12, + "term": 6, + "|": 3, + "addop": 2, + "primary": 4, + "mulop": 2, + "number": 10, + "(": 2, + ")": 2, + "-": 3, + "/": 3, + "rule": 12, + "main": 1, + "replace": 6, + "E": 3, + "construct": 1, + "NewE": 3, + "resolveAddition": 2, + "resolveSubtraction": 2, + "resolveMultiplication": 2, + "resolveDivision": 2, + "resolveParentheses": 2, + "where": 1, + "not": 1, + "by": 6, + "N1": 8, + "+": 2, + "N2": 8, + "*": 2, + "N": 2 + }, + "IDL": { + "MODULE": 1, + "mg_analysis": 1, + "DESCRIPTION": 1, + "Tools": 1, + "for": 2, + "analysis": 1, + "VERSION": 1, + "SOURCE": 1, + "mgalloy": 1, + "BUILD_DATE": 1, + "January": 1, + "FUNCTION": 2, + "MG_ARRAY_EQUAL": 1, + "KEYWORDS": 1, + "MG_TOTAL": 1, + ";": 59, + "docformat": 3, + "+": 8, + "Inverse": 1, + "hyperbolic": 2, + "cosine.": 1, + "Uses": 1, + "the": 7, + "formula": 1, + "text": 1, + "{": 3, + "acosh": 1, + "}": 3, + "(": 26, + "z": 9, + ")": 26, + "ln": 1, + "sqrt": 4, + "-": 14, + "Examples": 2, + "The": 1, + "arc": 1, + "sine": 1, + "function": 4, + "looks": 1, + "like": 2, + "IDL": 5, + "x": 8, + "*": 2, + "findgen": 1, + "/": 1, + "plot": 1, + "mg_acosh": 2, + "xstyle": 1, + "This": 1, + "should": 1, + "look": 1, + "..": 1, + "image": 1, + "acosh.png": 1, + "Returns": 3, + "float": 1, + "double": 2, + "complex": 2, + "or": 1, "depending": 1, "on": 1, - "take": 2, - "without": 2, - "introspection": 1, - "version": 1, - "y": 6, - "more": 3, - "more.reduce": 1, - "does": 1, - "has": 2, - "variadic": 1, - "overload": 1, - "passed": 1, - "throws": 1, - "exception.": 1, - "Other": 1, - "Special": 1, - "Forms": 1, - "Instantiation": 1, - "type": 2, - "instantiation": 1, - "consice": 1, - "needs": 1, - "suffixed": 1, - "character": 1, - "Type.": 1, - "options": 2, - "More": 1, - "verbose": 1, - "there": 1, - "new": 2, - "Class": 1, - "Method": 1, - "calls": 3, - "method": 2, - "no": 1, - "different": 1, - "Any": 1, - "quoted": 1, - "prevent": 1, - "doesn": 1, - "t": 1, - "unless": 5, - "or": 2, - "macro": 7, - "try": 1, - "implemting": 1, - "understand": 1, - "use": 2, - "case": 1, - "We": 1, - "execute": 1, - "body": 4, - "condition": 4, - "defn": 2, - "Although": 1, - "following": 2, - "log": 1, - "anyway": 1, - "since": 1, - "exectued": 1, - "before": 1, - "called.": 1, - "Macros": 2, - "solve": 1, - "problem": 1, - "because": 1, - "immediately.": 1, - "Instead": 1, - "you": 1, - "get": 2, - "choose": 1, - "when": 1, - "evaluated.": 1, - "return": 1, - "instead.": 1, - "defmacro": 3, - "less": 1, - "how": 1, - "build": 1, - "implemented.": 1, - "define": 4, - "name": 2, - "def": 1, - "@body": 1, - "Now": 1, - "we": 2, - "above": 1, - "defined": 1, - "expanded": 2, - "time": 1, - "resulting": 1, - "diff": 1, - "program": 1, - "output.": 1, - "print": 1, - "message": 2, - ".log": 1, - "console": 1, - "Not": 1, - "macros": 2, - "via": 2, - "templating": 1, - "language": 1, - "available": 1, - "at": 1, - "hand": 1, - "assemble": 1, - "form.": 1, - "For": 2, - "instance": 1, - "ease": 1, - "functional": 1, - "chanining": 1, - "popular": 1, - "chaining.": 1, - "example": 1, - "API": 1, - "pioneered": 1, - "jQuery": 1, - "very": 2, - "common": 1, - "open": 2, - "target": 1, - "keypress": 2, - "filter": 2, - "isEnterKey": 1, - "getInputText": 1, - "reduce": 3, - "render": 2, - "Unfortunately": 1, - "though": 1, - "requires": 1, - "need": 1, - "methods": 1, - "dsl": 1, - "object": 1, - "limited.": 1, - "Making": 1, - "party": 1, - "second": 1, - "class.": 1, - "Via": 1, - "achieve": 1, - "chaining": 1, - "such": 1, - "tradeoffs.": 1, - "operations": 3, - "operation": 3, - "cons": 2, - "tagret": 1, - "enter": 1, - "input": 1, - "text": 1 - }, - "XC": { - "int": 2, - "main": 1, - "(": 1, - ")": 1, - "{": 2, - "x": 3, - ";": 4, - "chan": 1, - "c": 3, - "par": 1, - "<:>": 1, - "0": 1, - "}": 2, - "return": 1 - }, - "XML": { - "": 4, - "version=": 10, - "": 1, - "name=": 227, - "xmlns": 2, - "ea=": 2, - "": 3, - "This": 21, - "easyant": 3, - "module.ant": 1, - "sample": 2, - "file": 3, - "is": 123, - "optionnal": 1, - "and": 44, - "designed": 1, - "to": 164, - "customize": 1, - "your": 8, - "build": 1, - "with": 23, - "own": 2, - "specific": 8, - "target.": 1, - "": 3, - "": 2, - "": 2, - "my": 2, - "awesome": 1, - "additionnal": 1, - "target": 6, - "": 2, - "": 2, - "extensionOf=": 1, - "i": 2, - "would": 2, - "love": 1, - "could": 1, - "easily": 1, - "plug": 1, - "pre": 1, - "compile": 1, - "step": 1, - "": 1, - "": 1, - "": 1, - "organisation=": 3, - "module=": 3, - "revision=": 3, - "status=": 1, - "this": 77, - "a": 128, - "module.ivy": 1, - "for": 60, - "java": 1, - "standard": 1, - "application": 2, - "": 1, - "": 1, - "value=": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 2, - "visibility=": 2, - "description=": 2, - "": 1, - "": 1, - "": 4, - "org=": 1, - "rev=": 1, - "conf=": 1, - "default": 9, - "junit": 2, - "test": 7, - "-": 50, - "/": 6, - "": 1, - "": 1, - "": 1, - "": 1, - "": 2, - "ReactiveUI": 2, - "": 2, - "": 1, - "": 1, - "": 120, - "": 120, - "IObservedChange": 5, - "generic": 3, - "interface": 4, - "that": 94, - "replaces": 1, - "the": 261, - "non": 1, - "PropertyChangedEventArgs.": 1, - "Note": 7, - "it": 16, - "used": 19, - "both": 2, - "Changing": 5, - "(": 53, - "i.e.": 23, - ")": 46, - "Changed": 4, - "Observables.": 2, - "In": 6, - "future": 2, - "will": 65, - "be": 57, - "Covariant": 1, - "which": 12, - "allow": 1, - "simpler": 1, - "casting": 1, - "between": 15, - "changes.": 2, - "": 121, - "": 120, - "The": 75, - "object": 42, - "has": 16, - "raised": 1, - "change.": 12, - "name": 7, - "of": 75, - "property": 74, - "changed": 18, - "on": 35, - "Sender.": 1, - "value": 44, - "changed.": 9, - "IMPORTANT": 1, - "NOTE": 1, - "often": 3, - "not": 9, - "set": 41, - "performance": 1, - "reasons": 1, - "unless": 1, - "you": 20, - "have": 17, - "explicitly": 1, - "requested": 1, - "an": 88, - "Observable": 56, - "via": 8, - "method": 34, - "such": 5, - "as": 25, - "ObservableForProperty.": 1, - "To": 4, - "retrieve": 3, - "use": 5, - "Value": 3, - "extension": 2, - "method.": 2, - "IReactiveNotifyPropertyChanged": 6, - "represents": 4, - "extended": 1, - "version": 3, - "INotifyPropertyChanged": 1, - "also": 17, - "exposes": 1, - "IEnableLogger": 1, - "dummy": 1, - "attaching": 1, - "any": 11, - "class": 11, - "give": 1, - "access": 3, - "Log": 2, - "When": 5, - "called": 5, - "fire": 11, - "change": 26, - "notifications": 22, - "neither": 3, - "traditional": 3, - "nor": 3, - "until": 7, - "return": 11, - "disposed.": 3, - "": 36, - "An": 26, - "when": 38, - "disposed": 4, - "reenables": 3, - "notifications.": 5, - "": 36, - "Represents": 4, - "fires": 6, - "*before*": 2, - "about": 5, - "should": 10, - "duplicate": 2, - "if": 27, - "same": 8, - "multiple": 6, - "times.": 4, - "*after*": 2, - "TSender": 1, - "helper": 5, - "adds": 2, - "typed": 2, - "versions": 2, - "Changed.": 1, - "IReactiveCollection": 3, - "collection": 27, - "can": 11, - "notify": 3, - "its": 4, - "contents": 2, - "are": 13, - "either": 1, - "items": 27, - "added/removed": 1, - "or": 24, - "itself": 2, - "changes": 13, - ".": 20, - "It": 1, - "important": 6, - "implement": 5, - "Changing/Changed": 1, - "from": 12, - "semantically": 3, - "Fires": 14, - "added": 6, - "once": 4, - "per": 2, - "item": 19, - "added.": 4, - "Functions": 2, - "add": 2, - "AddRange": 2, - "provided": 14, - "was": 6, - "before": 8, - "going": 4, - "collection.": 6, - "been": 5, - "removed": 4, - "providing": 20, - "removed.": 4, - "whenever": 18, - "number": 9, - "in": 45, - "new": 10, - "Count.": 4, - "previous": 2, - "Provides": 4, - "Item": 4, - "implements": 8, - "IReactiveNotifyPropertyChanged.": 4, - "only": 18, - "enabled": 8, - "ChangeTrackingEnabled": 2, - "True.": 2, - "Enables": 2, - "ItemChanging": 2, - "ItemChanged": 2, - "properties": 29, - ";": 10, - "implementing": 2, - "rebroadcast": 2, - "through": 3, - "ItemChanging/ItemChanged.": 2, - "T": 1, - "type": 23, - "specified": 7, - "Observables": 4, - "IMessageBus": 1, - "act": 2, - "simple": 2, - "way": 2, - "ViewModels": 3, - "other": 9, - "objects": 4, - "communicate": 2, - "each": 7, - "loosely": 2, - "coupled": 2, - "way.": 2, - "Specifying": 2, - "messages": 22, - "go": 2, - "where": 4, - "done": 2, - "combination": 2, - "Type": 9, - "message": 30, - "well": 2, - "additional": 3, - "parameter": 6, - "unique": 12, - "string": 13, - "distinguish": 12, - "arbitrarily": 2, - "by": 14, - "client.": 2, - "Listen": 4, - "provides": 6, - "Message": 2, - "RegisterMessageSource": 4, - "SendMessage.": 2, - "": 12, - "listen": 6, - "to.": 7, - "": 12, - "": 84, - "A": 19, - "identical": 11, - "types": 10, - "one": 27, - "purpose": 10, - "leave": 10, - "null.": 10, - "": 83, - "Determins": 2, - "particular": 2, - "registered.": 2, - "message.": 1, - "True": 6, - "posted": 3, - "Type.": 2, - "Registers": 3, - "representing": 20, - "stream": 7, - "send.": 4, - "Another": 2, - "part": 2, - "code": 4, - "then": 3, - "call": 5, - "Observable.": 6, - "subscribed": 2, - "sent": 2, - "out": 4, - "provided.": 5, - "Sends": 2, - "single": 2, - "using": 9, - "contract.": 2, - "Consider": 2, - "instead": 2, - "sending": 2, - "response": 2, - "events.": 2, - "actual": 2, - "send": 3, - "returns": 5, - "current": 10, - "logger": 2, - "allows": 15, - "log": 2, - "attached.": 1, - "data": 2, - "structure": 1, - "representation": 1, - "memoizing": 2, - "cache": 14, - "evaluate": 1, - "function": 13, - "but": 7, - "keep": 1, - "recently": 3, - "evaluated": 1, - "parameters.": 1, - "Since": 1, - "mathematical": 2, - "sense": 1, - "key": 12, - "*always*": 1, - "maps": 1, - "corresponding": 2, - "value.": 2, - "calculation": 8, - "function.": 6, - "returned": 2, - "Constructor": 2, - "whose": 7, - "results": 6, - "want": 2, - "Tag": 1, - "user": 2, - "defined": 1, - "size": 1, - "maintain": 1, - "after": 1, - "old": 1, - "start": 1, - "thrown": 1, - "out.": 1, - "result": 3, - "gets": 1, - "evicted": 2, - "because": 2, - "Invalidate": 2, - "full": 1, - "Evaluates": 1, - "returning": 1, - "cached": 2, - "possible": 1, - "pass": 2, - "optional": 2, - "parameter.": 1, - "Ensure": 1, - "next": 1, - "time": 3, - "queried": 1, - "called.": 1, - "all": 4, - "Returns": 5, - "values": 4, - "currently": 2, - "MessageBus": 3, - "bus.": 1, - "scheduler": 11, - "post": 2, - "RxApp.DeferredScheduler": 2, - "default.": 2, - "Current": 1, - "RxApp": 1, - "global": 1, - "object.": 3, - "ViewModel": 8, - "another": 3, - "s": 3, - "Return": 1, - "instance": 2, - "type.": 3, - "registered": 1, - "ObservableAsPropertyHelper": 6, - "help": 1, - "backed": 1, - "read": 3, - "still": 1, - "created": 2, - "directly": 1, - "more": 16, - "ToProperty": 2, - "ObservableToProperty": 1, - "methods.": 2, - "so": 1, - "output": 1, - "chained": 2, - "example": 2, - "property.": 12, - "Constructs": 4, - "base": 3, - "on.": 6, - "action": 2, - "take": 2, - "typically": 1, - "t": 2, - "bindings": 13, - "null": 4, - "OAPH": 2, - "at": 2, - "startup.": 1, - "initial": 28, - "normally": 6, - "Dispatcher": 3, - "based": 9, - "last": 1, - "Exception": 1, - "steps": 1, - "taken": 1, - "ensure": 3, - "never": 3, - "complete": 1, - "fail.": 1, - "Converts": 2, - "automatically": 3, - "onChanged": 2, - "raise": 2, - "notification.": 2, - "equivalent": 2, - "convenient.": 1, - "Expression": 7, - "initialized": 2, - "backing": 9, - "field": 10, - "ReactiveObject": 11, - "ObservableAsyncMRUCache": 2, - "memoization": 2, - "asynchronous": 4, - "expensive": 2, - "compute": 1, - "MRU": 1, - "fixed": 1, - "limit": 5, - "cache.": 5, - "guarantees": 6, - "given": 11, - "flight": 2, - "subsequent": 1, - "requests": 4, - "wait": 3, - "first": 1, - "empty": 1, - "web": 6, - "image": 1, - "receives": 1, - "two": 1, - "concurrent": 5, - "issue": 2, - "WebRequest": 1, - "does": 1, - "mean": 1, - "request": 3, - "Concurrency": 1, - "limited": 1, - "maxConcurrent": 1, - "too": 1, - "many": 1, - "operations": 6, - "progress": 1, - "further": 1, - "queued": 1, - "slot": 1, - "available.": 1, - "performs": 1, - "asyncronous": 1, - "async": 3, - "CPU": 1, - "Observable.Return": 1, - "may": 1, - "result.": 2, - "*must*": 1, - "equivalently": 1, "input": 2, - "being": 1, - "memoized": 1, - "calculationFunc": 2, - "depends": 1, - "varables": 1, - "than": 5, - "unpredictable.": 1, - "reached": 2, - "discarded.": 4, - "maximum": 2, - "regardless": 2, - "caches": 2, - "server.": 2, - "clean": 1, - "up": 25, - "manage": 1, - "disk": 1, - "download": 1, - "save": 2, - "temporary": 1, - "folder": 1, - "onRelease": 1, - "delete": 1, - "file.": 1, - "run": 7, - "defaults": 1, - "TaskpoolScheduler": 2, - "Issues": 1, - "fetch": 1, - "operation.": 1, - "operation": 2, - "finishes.": 1, - "If": 6, - "immediately": 3, - "upon": 1, - "subscribing": 1, - "returned.": 2, - "provide": 2, - "synchronous": 1, - "AsyncGet": 1, - "resulting": 1, - "Works": 2, - "like": 2, - "SelectMany": 2, - "memoizes": 2, - "selector": 5, - "calls.": 2, - "addition": 3, - "no": 4, - "selectors": 2, - "running": 4, - "concurrently": 2, - "queues": 2, - "rest.": 2, - "very": 2, - "services": 2, - "avoid": 2, - "potentially": 2, - "spamming": 2, - "server": 2, - "hundreds": 2, - "requests.": 2, - "similar": 3, - "passed": 1, - "SelectMany.": 1, - "similarly": 1, - "ObservableAsyncMRUCache.AsyncGet": 1, - "must": 2, - "sense.": 1, - "flattened": 2, - "selector.": 2, - "overload": 2, - "useful": 2, - "making": 3, - "service": 1, - "several": 1, - "places": 1, - "paths": 1, - "already": 1, - "configured": 1, - "ObservableAsyncMRUCache.": 1, - "notification": 6, - "Attempts": 1, - "expression": 3, - "false": 2, - "expression.": 1, - "entire": 1, - "able": 1, - "followed": 1, - "otherwise": 1, - "Given": 3, - "fully": 3, - "filled": 1, - "SetValueToProperty": 1, - "apply": 3, - "target.property": 1, - "This.GetValue": 1, - "observed": 1, - "onto": 1, - "convert": 2, - "stream.": 3, - "ValueIfNotDefault": 1, - "filters": 1, - "BindTo": 1, - "takes": 1, - "applies": 1, - "Conceptually": 1, - "child": 2, - "without": 1, - "checks.": 1, - "set.": 3, - "x.Foo.Bar.Baz": 1, - "disconnects": 1, - "binding.": 1, - "ReactiveCollection.": 1, - "ReactiveCollection": 1, - "existing": 3, - "list.": 2, - "list": 1, - "populate": 1, - "anything": 2, - "Change": 2, - "Tracking": 2, - "Creates": 3, - "adding": 2, - "completes": 4, - "optionally": 2, - "ensuring": 2, - "delay.": 2, - "withDelay": 2, - "leak": 2, - "Timer.": 2, - "always": 4, - "UI": 2, - "thread.": 3, - "put": 2, - "into": 2, - "populated": 4, - "faster": 2, - "delay": 2, - "Select": 3, - "item.": 3, - "creating": 2, - "collections": 1, - "updated": 1, - "respective": 1, - "Model": 1, - "updated.": 1, - "Collection.Select": 1, - "mirror": 1, - "ObservableForProperty": 14, - "ReactiveObject.": 1, - "unlike": 13, - "Selector": 1, - "classes": 2, - "INotifyPropertyChanged.": 1, - "monitor": 1, - "RaiseAndSetIfChanged": 2, - "Setter": 2, - "write": 2, - "assumption": 4, - "named": 2, - "RxApp.GetFieldNameForPropertyNameFunc.": 2, - "almost": 2, - "keyword.": 2, - "newly": 2, - "intended": 5, - "Silverlight": 2, - "WP7": 1, - "reflection": 1, - "cannot": 1, - "private": 1, - "field.": 1, - "Reference": 1, - "Use": 13, - "custom": 4, - "raiseAndSetIfChanged": 1, - "doesn": 1, - "x": 1, - "x.SomeProperty": 1, - "suffice.": 1, - "RaisePropertyChanging": 2, - "mock": 4, - "scenarios": 4, - "manually": 4, - "fake": 4, - "invoke": 4, - "raisePropertyChanging": 4, - "faking": 4, - "RaisePropertyChanged": 2, - "helps": 1, - "make": 2, - "them": 1, - "compatible": 1, - "Rx.Net.": 1, - "declare": 1, - "initialize": 1, - "derive": 1, - "properties/methods": 1, - "MakeObjectReactiveHelper.": 1, - "InUnitTestRunner": 1, - "attempts": 1, - "determine": 1, - "heuristically": 1, - "unit": 3, - "framework.": 1, - "we": 1, - "determined": 1, - "framework": 1, - "running.": 1, - "GetFieldNameForProperty": 1, - "convention": 2, - "GetFieldNameForPropertyNameFunc.": 1, - "needs": 1, - "found.": 1, - "name.": 1, - "DeferredScheduler": 1, - "schedule": 2, - "work": 2, - "normal": 2, - "mode": 2, - "DispatcherScheduler": 1, - "Unit": 1, - "Test": 1, - "Immediate": 1, - "simplify": 1, - "writing": 1, - "common": 1, - "tests.": 1, - "background": 1, - "modes": 1, - "TPL": 1, - "Task": 1, - "Pool": 1, - "Threadpool": 1, - "Set": 3, - "provider": 1, - "usually": 1, - "entry": 1, - "MessageBus.Current.": 1, - "override": 1, - "naming": 1, - "one.": 1, - "WhenAny": 12, - "observe": 12, - "constructors": 12, - "need": 12, - "setup.": 12, - "": 1, - "": 1, - "encoding=": 1, - "": 1, - "TS": 1, - "": 1, - "language=": 1, - "": 1, - "MainWindow": 1, - "": 8, - "": 8, - "filename=": 8, - "line=": 8, - "": 8, - "United": 1, - "Kingdom": 1, - "": 8, - "": 8, - "Reino": 1, - "Unido": 1, - "": 8, - "": 8, - "God": 1, - "Queen": 1, - "Deus": 1, - "salve": 1, - "Rainha": 1, - "England": 1, - "Inglaterra": 1, - "Wales": 1, - "Gales": 1, - "Scotland": 1, - "Esc": 1, - "cia": 1, - "Northern": 1, - "Ireland": 1, - "Irlanda": 1, - "Norte": 1, - "Portuguese": 1, - "Portugu": 1, - "English": 1, - "Ingl": 1, - "": 1, - "": 1, - "": 1, - "compatVersion=": 1, - "": 1, - "FreeMedForms": 1, - "": 1, - "": 1, - "C": 1, - "Eric": 1, - "MAEKER": 1, - "MD": 1, - "": 1, - "": 1, - "GPLv3": 1, - "": 1, - "": 1, - "Patient": 1, - "": 1, - "XML": 1, - "form": 1, - "loader/saver": 1, - "FreeMedForms.": 1, - "": 1, - "http": 1, - "//www.freemedforms.com/": 1, - "": 1, - "": 1, - "": 1, - "": 1 - }, - "XProc": { - "": 1, - "version=": 2, - "encoding=": 1, - "": 1, - "xmlns": 2, - "p=": 1, - "c=": 1, - "": 1, - "port=": 2, - "": 1, - "": 1, - "Hello": 1, - "world": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1 - }, - "XQuery": { - "(": 38, - "-": 486, - "xproc.xqm": 1, - "core": 1, - "xqm": 1, - "contains": 1, - "entry": 2, - "points": 1, - "primary": 1, - "eval": 3, - "step": 5, - "function": 3, - "and": 3, - "control": 1, - "functions.": 1, - ")": 38, - "xquery": 1, - "version": 1, - "encoding": 1, - ";": 25, - "module": 6, - "namespace": 8, - "xproc": 17, - "declare": 24, - "namespaces": 5, - "p": 2, - "c": 1, - "err": 1, - "imports": 1, - "import": 4, - "util": 1, - "at": 4, - "const": 1, - "parse": 8, - "u": 2, - "options": 2, - "boundary": 1, - "space": 1, - "preserve": 1, - "option": 1, - "saxon": 1, - "output": 1, - "functions": 1, - "variable": 13, - "run": 2, - "run#6": 1, - "choose": 1, - "try": 1, - "catch": 1, - "group": 1, - "for": 1, - "each": 1, - "viewport": 1, - "library": 1, - "pipeline": 8, - "list": 1, - "all": 1, - "declared": 1, - "enum": 3, - "{": 5, - "": 1, - "name=": 1, - "ns": 1, - "": 1, - "}": 5, - "": 1, - "": 1, - "point": 1, - "stdin": 1, - "dflag": 1, - "tflag": 1, - "bindings": 2, - "STEP": 3, - "I": 1, - "preprocess": 1, - "let": 6, - "validate": 1, - "explicit": 3, - "AST": 2, - "name": 1, - "type": 1, - "ast": 1, - "element": 1, - "parse/@*": 1, - "sort": 1, - "parse/*": 1, - "II": 1, - "eval_result": 1, - "III": 1, - "serialize": 1, - "return": 2, - "results": 1, - "serialized_result": 2 - }, - "XSLT": { - "": 1, - "version=": 2, - "": 1, - "xmlns": 1, - "xsl=": 1, - "": 1, - "match=": 1, - "": 1, - "": 1, - "

": 1, - "My": 1, - "CD": 1, - "Collection": 1, - "

": 1, - "": 1, - "border=": 1, - "": 2, - "bgcolor=": 1, - "": 2, - "Artist": 1, - "": 2, - "": 1, - "select=": 3, - "": 2, - "": 1, - "
": 2, - "Title": 1, - "
": 2, - "": 2, - "
": 1, - "": 1, - "": 1, - "
": 1, - "
": 1 - }, - "Xtend": { - "package": 2, - "example2": 1, - "import": 7, - "org.junit.Test": 2, - "static": 4, - "org.junit.Assert.*": 2, - "class": 4, - "BasicExpressions": 2, - "{": 14, - "@Test": 7, - "def": 7, - "void": 7, - "literals": 5, - "(": 42, - ")": 42, - "//": 11, - "string": 1, - "work": 1, - "with": 2, - "single": 1, - "or": 1, - "double": 2, - "quotes": 1, - "assertEquals": 14, - "number": 1, - "big": 1, - "decimals": 1, - "in": 2, - "this": 1, - "case": 1, - "+": 6, - "*": 1, - "bd": 3, - "boolean": 1, - "true": 1, - "false": 1, - "getClass": 1, - "typeof": 1, - "}": 13, - "collections": 2, - "There": 1, - "are": 1, - "various": 1, - "methods": 2, - "to": 1, - "create": 1, - "and": 1, - "numerous": 1, - "extension": 2, - "which": 1, - "make": 1, - "working": 1, - "them": 1, - "convenient.": 1, - "val": 9, - "list": 1, - "newArrayList": 2, - "list.map": 1, - "[": 9, - "toUpperCase": 1, - "]": 9, - ".head": 1, - "set": 1, - "newHashSet": 1, - "set.filter": 1, - "it": 2, - ".size": 2, - "map": 1, - "newHashMap": 1, - "-": 5, - "map.get": 1, - "controlStructures": 1, - "looks": 1, - "like": 1, - "Java": 1, - "if": 1, - ".length": 1, - "but": 1, - "foo": 1, - "bar": 1, - "Never": 2, - "happens": 3, - "text": 2, - "never": 1, - "s": 1, - "cascades.": 1, - "Object": 1, - "someValue": 2, - "switch": 1, - "Number": 1, - "String": 2, - "loops": 1, - "for": 2, - "loop": 2, - "var": 1, - "counter": 8, - "i": 4, - "..": 1, - "while": 2, - "iterator": 1, - ".iterator": 2, - "iterator.hasNext": 1, - "iterator.next": 1, - "example6": 1, - "java.io.FileReader": 1, - "java.util.Set": 1, - "com.google.common.io.CharStreams.*": 1, - "Movies": 1, - "numberOfActionMovies": 1, - "movies.filter": 2, - "categories.contains": 1, - "yearOfBestMovieFrom80ies": 1, - ".contains": 1, - "year": 2, - ".sortBy": 1, - "rating": 3, - ".last.year": 1, - "sumOfVotesOfTop2": 1, - "long": 2, - "movies": 3, - "movies.sortBy": 1, - ".take": 1, - ".map": 1, - "numberOfVotes": 2, - ".reduce": 1, - "a": 2, - "b": 2, - "|": 2, - "_229": 1, - "new": 2, - "FileReader": 1, - ".readLines.map": 1, - "line": 1, - "segments": 1, - "line.split": 1, - "return": 1, - "Movie": 2, - "segments.next": 4, - "Integer": 1, - "parseInt": 1, - "Double": 1, - "parseDouble": 1, - "Long": 1, - "parseLong": 1, - "segments.toSet": 1, - "@Data": 1, - "title": 1, - "int": 1, - "Set": 1, - "": 1, - "categories": 1 - }, - "YAML": { - "gem": 1, - "-": 25, - "local": 1, - "gen": 1, - "rdoc": 2, - "run": 1, - "tests": 1, - "inline": 1, - "source": 1, - "line": 1, - "numbers": 1, - "gempath": 1, - "/usr/local/rubygems": 1, - "/home/gavin/.rubygems": 1, - "http_interactions": 1, - "request": 1, - "method": 1, - "get": 1, - "uri": 1, - "http": 1, - "//example.com/": 1, - "body": 3, - "headers": 2, - "{": 1, - "}": 1, - "response": 2, - "status": 1, - "code": 1, - "message": 1, - "OK": 1, - "Content": 2, - "Type": 1, - "text/html": 1, - ";": 1, - "charset": 1, - "utf": 1, - "Length": 1, - "This": 1, - "is": 1, - "the": 1, - "http_version": 1, - "recorded_at": 1, - "Tue": 1, - "Nov": 1, - "GMT": 1, - "recorded_with": 1, - "VCR": 1 - }, - "Zephir": { - "%": 10, - "{": 56, - "#define": 1, - "MAX_FACTOR": 3, - "}": 50, - "namespace": 3, - "Test": 2, - ";": 86, - "#include": 1, - "static": 1, - "long": 3, - "fibonacci": 4, - "(": 55, - "n": 5, - ")": 53, - "if": 39, - "<": 1, - "return": 25, - "else": 11, - "-": 25, - "+": 5, - "class": 2, - "Cblock": 1, - "public": 22, - "function": 22, - "testCblock1": 1, - "int": 3, - "a": 6, - "testCblock2": 1, - "Router": 1, - "Route": 1, - "protected": 9, - "_pattern": 3, - "_compiledPattern": 3, - "_paths": 3, - "_methods": 5, - "_hostname": 3, - "_converters": 3, - "_id": 2, - "_name": 3, - "_beforeMatch": 3, - "__construct": 1, - "pattern": 37, - "paths": 7, - "null": 11, - "httpMethods": 6, - "this": 28, - "reConfigure": 2, - "let": 51, - "compilePattern": 2, - "var": 4, - "idPattern": 6, - "memstr": 10, - "str_replace": 6, - ".": 5, - "via": 1, - "extractNamedParams": 2, - "string": 6, - "char": 1, - "ch": 27, - "tmp": 4, - "matches": 5, - "boolean": 1, - "notValid": 5, - "false": 3, - "cursor": 4, - "cursorVar": 5, - "marker": 4, - "bracketCount": 7, - "parenthesesCount": 5, - "foundPattern": 6, - "intermediate": 4, - "numberMatches": 4, - "route": 12, - "item": 7, - "variable": 5, - "regexp": 7, - "strlen": 1, - "<=>": 5, - "0": 9, - "for": 4, + "Params": 3, "in": 4, - "1": 3, - "substr": 3, - "break": 9, - "&&": 6, - "z": 2, - "Z": 2, - "true": 2, - "<='9')>": 1, - "_": 1, - "2": 2, - "continue": 1, - "[": 14, - "]": 14, - "moduleName": 5, - "controllerName": 7, - "actionName": 4, - "parts": 9, - "routePaths": 5, - "realClassName": 1, - "namespaceName": 1, - "pcrePattern": 4, - "compiledPattern": 4, - "extracted": 4, - "typeof": 2, - "throw": 1, - "new": 1, - "Exception": 1, - "explode": 1, - "switch": 1, - "count": 1, - "case": 3, - "controller": 1, - "action": 1, - "array": 1, - "The": 1, - "contains": 1, - "invalid": 1, - "#": 1, - "array_merge": 1, - "//Update": 1, - "the": 1, - "s": 1, - "name": 5, - "*": 2, - "@return": 1, - "*/": 1, - "getName": 1, - "setName": 1, - "beforeMatch": 1, - "callback": 2, - "getBeforeMatch": 1, - "getRouteId": 1, - "getPattern": 1, - "getCompiledPattern": 1, - "getPaths": 1, - "getReversedPaths": 1, - "reversed": 4, - "path": 3, - "position": 3, - "setHttpMethods": 1, - "getHttpMethods": 1, - "setHostname": 1, - "hostname": 2, - "getHostname": 1, - "convert": 1, - "converter": 2, - "getConverters": 1 + "required": 4, + "type": 5, + "numeric": 1, + "compile_opt": 3, + "strictarr": 3, + "return": 5, + "alog": 1, + "end": 5, + "Find": 1, + "greatest": 1, + "common": 1, + "denominator": 1, + "GCD": 1, + "two": 1, + "positive": 2, + "integers.": 1, + "integer": 5, + "a": 4, + "first": 1, + "b": 4, + "second": 1, + "mg_gcd": 2, + "on_error": 1, + "if": 5, + "n_params": 1, + "ne": 1, + "then": 5, + "message": 2, + "mg_isinteger": 2, + "||": 1, + "begin": 2, + "endif": 2, + "_a": 3, + "abs": 2, + "_b": 3, + "minArg": 5, + "<": 1, + "maxArg": 3, + "eq": 2, + "remainder": 3, + "mod": 1, + "Truncate": 1, + "argument": 2, + "towards": 1, + "i.e.": 1, + "takes": 1, + "FLOOR": 1, + "of": 4, + "values": 2, + "and": 1, + "CEIL": 1, + "negative": 1, + "values.": 1, + "Try": 1, + "main": 2, + "level": 2, + "program": 2, + "at": 1, + "this": 1, + "file.": 1, + "It": 1, + "does": 1, + "print": 4, + "mg_trunc": 3, + "[": 6, + "]": 6, + "floor": 2, + "ceil": 2, + "array": 2, + "same": 1, + "as": 1, + "float/double": 1, + "containing": 1, + "to": 1, + "truncate": 1, + "result": 3, + "posInd": 3, + "where": 1, + "gt": 2, + "nposInd": 2, + "L": 1, + "example": 1 } }, "language_tokens": { - "ABAP": 1500, - "Agda": 376, - "Alloy": 1143, - "ApacheConf": 1449, - "Apex": 4408, - "AppleScript": 1862, - "Arduino": 20, - "AsciiDoc": 103, - "AspectJ": 324, - "ATS": 4558, - "AutoHotkey": 3, - "Awk": 544, - "BlitzBasic": 2065, - "Bluespec": 1298, - "Brightscript": 579, - "C": 59053, - "C#": 278, - "C++": 32475, - "Ceylon": 50, - "Cirru": 244, - "Clojure": 510, - "COBOL": 90, - "CoffeeScript": 2951, - "Common Lisp": 2186, - "Coq": 18259, - "Creole": 134, - "Crystal": 1506, - "CSS": 43867, - "Cuda": 290, - "Dart": 74, - "Diff": 16, - "DM": 169, - "Dogescript": 30, - "E": 601, - "Eagle": 30089, - "ECL": 281, - "edn": 227, "Elm": 628, - "Emacs Lisp": 1756, - "Erlang": 2928, - "fish": 636, - "Forth": 1516, - "Frege": 5564, - "Game Maker Language": 13310, - "GAP": 9944, - "GAS": 133, - "GLSL": 3766, - "Gnuplot": 1023, - "Gosu": 410, - "Grammatical Framework": 10607, - "Groovy": 69, - "Groovy Server Pages": 91, - "Haml": 4, - "Handlebars": 69, - "HTML": 413, - "Hy": 155, - "IDL": 418, - "Idris": 148, - "Inform 7": 75, - "INI": 27, - "Ioke": 2, - "Jade": 3, - "Java": 8987, - "JavaScript": 76934, - "JSON": 183, - "JSON5": 57, - "JSONiq": 151, - "JSONLD": 18, - "Julia": 247, - "Kit": 6, - "Kotlin": 155, - "KRL": 25, - "Lasso": 9849, - "Latte": 759, - "Less": 39, - "LFE": 1711, "Liquid": 633, - "Literate Agda": 478, - "Literate CoffeeScript": 275, - "LiveScript": 123, - "Logos": 93, - "Logtalk": 36, - "Lua": 724, - "M": 23615, - "Makefile": 50, - "Markdown": 1, - "Mask": 74, - "Mathematica": 411, - "Matlab": 11942, - "Max": 714, - "MediaWiki": 766, - "Mercury": 31096, - "Monkey": 207, - "Moocode": 5234, - "MoonScript": 1718, - "MTML": 93, - "Nemerle": 17, - "NetLogo": 243, - "Nginx": 179, - "Nimrod": 1, - "NSIS": 725, - "Nu": 116, - "Objective-C": 26518, - "Objective-C++": 6021, - "OCaml": 382, - "Omgrofl": 57, - "Opa": 28, - "OpenCL": 144, - "OpenEdge ABL": 762, - "Org": 358, - "Oxygene": 157, - "Parrot Assembly": 6, - "Parrot Internal Representation": 5, - "Pascal": 30, - "PAWN": 3263, - "Perl": 17979, - "Perl6": 372, - "PHP": 20724, - "Pod": 658, - "PogoScript": 250, - "PostScript": 107, - "PowerShell": 12, - "Processing": 74, - "Prolog": 468, - "Protocol Buffer": 63, - "PureScript": 1652, - "Python": 5715, - "R": 392, "Racket": 331, - "Ragel in Ruby Host": 593, - "RDoc": 279, - "Rebol": 533, - "RMarkdown": 19, + "PogoScript": 250, + "Zephir": 1026, + "HTML": 413, + "Opa": 28, + "NetLogo": 243, "RobotFramework": 483, - "Ruby": 3862, - "Rust": 3566, - "Sass": 56, - "Scala": 750, - "Scaml": 4, - "Scheme": 3515, - "Scilab": 69, - "SCSS": 39, - "Shell": 3744, - "ShellSession": 233, - "Shen": 3472, - "Slash": 187, - "Smalltalk": 423, - "SourcePawn": 2080, - "SQL": 1485, - "Squirrel": 130, - "Standard ML": 6405, - "Stata": 3133, - "Stylus": 76, - "SuperCollider": 133, - "SystemVerilog": 541, - "Tcl": 1133, - "Tea": 3, - "TeX": 2701, - "Turing": 44, - "TXL": 213, - "TypeScript": 109, - "UnrealScript": 2873, + "Awk": 544, + "Parrot Assembly": 6, + "Agda": 376, "Verilog": 3778, - "VHDL": 42, - "VimL": 20, - "Visual Basic": 581, - "Volt": 388, - "wisp": 1363, - "XC": 24, - "XML": 5785, + "Groovy Server Pages": 91, + "Groovy": 69, + "Sass": 56, + "Apex": 4408, + "UnrealScript": 2873, + "LiveScript": 123, + "BlitzBasic": 2065, + "Forth": 1516, + "Erlang": 2928, + "Ruby": 3862, + "PowerShell": 12, + "Game Maker Language": 13310, + "Emacs Lisp": 1756, + "PAWN": 3263, + "Protocol Buffer": 63, + "Parrot Internal Representation": 5, + "Standard ML": 6405, + "MediaWiki": 766, + "Jade": 3, + "Haml": 4, + "JSONiq": 151, + "Logos": 93, + "Julia": 247, "XProc": 22, + "TypeScript": 109, "XQuery": 801, - "XSLT": 44, - "Xtend": 399, + "MTML": 93, + "Shell": 3744, + "Mathematica": 411, + "Shen": 3472, + "Prolog": 468, + "Idris": 148, + "CoffeeScript": 2951, + "Objective-C": 26518, + "ATS": 4558, + "Nimrod": 1, + "Gnuplot": 1023, "YAML": 77, - "Zephir": 1026 + "Dart": 74, + "SourcePawn": 2080, + "Omgrofl": 57, + "Nemerle": 17, + "Nu": 116, + "C++": 32475, + "Cuda": 290, + "Gosu": 410, + "Crystal": 1506, + "RMarkdown": 19, + "E": 601, + "AspectJ": 324, + "Logtalk": 36, + "Frege": 5564, + "Inform 7": 75, + "Tcl": 1133, + "edn": 227, + "Hy": 155, + "DM": 169, + "GLSL": 3766, + "ABAP": 1500, + "CSS": 43867, + "JSON": 183, + "Handlebars": 69, + "Creole": 134, + "JSON5": 57, + "VHDL": 42, + "PHP": 20724, + "OCaml": 382, + "Grammatical Framework": 10607, + "Pod": 658, + "Mercury": 31096, + "Volt": 388, + "Pascal": 30, + "AsciiDoc": 103, + "Kotlin": 155, + "Coq": 18259, + "fish": 636, + "Less": 39, + "INI": 27, + "Smalltalk": 423, + "Perl6": 372, + "Java": 8987, + "Scilab": 69, + "Ioke": 2, + "Org": 358, + "Slash": 187, + "Python": 5715, + "NewLisp": 1240, + "Eagle": 30089, + "PostScript": 107, + "Max": 714, + "KRL": 25, + "Literate Agda": 478, + "JavaScript": 76934, + "ECL": 281, + "Lua": 724, + "AutoHotkey": 3, + "VimL": 20, + "Cirru": 244, + "PureScript": 1652, + "Kit": 6, + "Monkey": 207, + "XML": 5785, + "SuperCollider": 133, + "XSLT": 44, + "ShellSession": 233, + "Matlab": 11942, + "Stata": 3133, + "Common Lisp": 2289, + "RDoc": 279, + "Stylus": 76, + "wisp": 1363, + "Turing": 44, + "Arduino": 20, + "Alloy": 1143, + "OpenCL": 144, + "JSONLD": 18, + "Makefile": 50, + "M": 23615, + "Scheme": 3515, + "SystemVerilog": 541, + "Markdown": 1, + "Ragel in Ruby Host": 593, + "Dogescript": 30, + "Nginx": 179, + "OpenEdge ABL": 762, + "GAS": 133, + "Squirrel": 130, + "SCSS": 39, + "NSIS": 725, + "Brightscript": 579, + "R": 392, + "Rust": 3566, + "Diff": 16, + "C": 59053, + "ApacheConf": 1449, + "Processing": 74, + "Scala": 750, + "Objective-C++": 6021, + "SQL": 1485, + "Bluespec": 1298, + "Literate CoffeeScript": 275, + "Xtend": 399, + "TeX": 2701, + "AppleScript": 1862, + "Oxygene": 157, + "Rebol": 533, + "Latte": 759, + "C#": 278, + "LFE": 1711, + "MoonScript": 1718, + "Moocode": 5234, + "Clojure": 510, + "XC": 24, + "Scaml": 4, + "COBOL": 90, + "Tea": 3, + "Mask": 74, + "GAP": 9944, + "Visual Basic": 581, + "Lasso": 9849, + "Ceylon": 50, + "Perl": 17979, + "TXL": 213, + "IDL": 418 }, "languages": { - "ABAP": 1, - "Agda": 1, - "Alloy": 3, - "ApacheConf": 3, - "Apex": 6, - "AppleScript": 7, - "Arduino": 1, - "AsciiDoc": 3, - "AspectJ": 2, - "ATS": 10, - "AutoHotkey": 1, - "Awk": 1, - "BlitzBasic": 3, - "Bluespec": 2, - "Brightscript": 1, - "C": 29, - "C#": 2, - "C++": 28, - "Ceylon": 1, - "Cirru": 9, - "Clojure": 7, - "COBOL": 4, - "CoffeeScript": 9, - "Common Lisp": 3, - "Coq": 12, - "Creole": 1, - "Crystal": 3, - "CSS": 2, - "Cuda": 2, - "Dart": 1, - "Diff": 1, - "DM": 1, - "Dogescript": 1, - "E": 6, - "Eagle": 2, - "ECL": 1, - "edn": 1, "Elm": 3, - "Emacs Lisp": 2, - "Erlang": 5, - "fish": 3, - "Forth": 7, - "Frege": 4, - "Game Maker Language": 13, - "GAP": 7, - "GAS": 1, - "GLSL": 3, - "Gnuplot": 6, - "Gosu": 4, - "Grammatical Framework": 41, - "Groovy": 2, - "Groovy Server Pages": 4, - "Haml": 1, - "Handlebars": 2, - "HTML": 2, - "Hy": 2, - "IDL": 4, - "Idris": 1, - "Inform 7": 2, - "INI": 2, - "Ioke": 1, - "Jade": 1, - "Java": 6, - "JavaScript": 20, - "JSON": 4, - "JSON5": 2, - "JSONiq": 2, - "JSONLD": 1, - "Julia": 1, - "Kit": 1, - "Kotlin": 1, - "KRL": 1, - "Lasso": 4, - "Latte": 2, - "Less": 1, - "LFE": 4, "Liquid": 2, - "Literate Agda": 1, - "Literate CoffeeScript": 1, - "LiveScript": 1, - "Logos": 1, - "Logtalk": 1, - "Lua": 3, - "M": 29, - "Makefile": 2, - "Markdown": 1, - "Mask": 1, - "Mathematica": 3, - "Matlab": 39, - "Max": 3, - "MediaWiki": 1, - "Mercury": 9, - "Monkey": 1, - "Moocode": 3, - "MoonScript": 1, - "MTML": 1, - "Nemerle": 1, - "NetLogo": 1, - "Nginx": 1, - "Nimrod": 1, - "NSIS": 2, - "Nu": 2, - "Objective-C": 19, - "Objective-C++": 2, - "OCaml": 2, - "Omgrofl": 1, - "Opa": 2, - "OpenCL": 2, - "OpenEdge ABL": 5, - "Org": 1, - "Oxygene": 1, - "Parrot Assembly": 1, - "Parrot Internal Representation": 1, - "Pascal": 1, - "PAWN": 1, - "Perl": 15, - "Perl6": 3, - "PHP": 9, - "Pod": 1, - "PogoScript": 1, - "PostScript": 1, - "PowerShell": 2, - "Processing": 1, - "Prolog": 3, - "Protocol Buffer": 1, - "PureScript": 4, - "Python": 7, - "R": 4, "Racket": 2, - "Ragel in Ruby Host": 3, - "RDoc": 1, - "Rebol": 6, - "RMarkdown": 1, + "PogoScript": 1, + "Zephir": 2, + "HTML": 2, + "Opa": 2, + "NetLogo": 1, "RobotFramework": 3, - "Ruby": 17, - "Rust": 1, - "Sass": 2, - "Scala": 4, - "Scaml": 1, - "Scheme": 2, - "Scilab": 3, - "SCSS": 1, - "Shell": 37, - "ShellSession": 3, - "Shen": 3, - "Slash": 1, - "Smalltalk": 3, - "SourcePawn": 1, - "SQL": 5, - "Squirrel": 1, - "Standard ML": 4, - "Stata": 7, - "Stylus": 1, - "SuperCollider": 1, - "SystemVerilog": 4, - "Tcl": 2, - "Tea": 1, - "TeX": 2, - "Turing": 1, - "TXL": 1, - "TypeScript": 3, - "UnrealScript": 2, + "Awk": 1, + "Parrot Assembly": 1, + "Agda": 1, "Verilog": 13, - "VHDL": 1, - "VimL": 2, - "Visual Basic": 3, - "Volt": 1, - "wisp": 1, - "XC": 1, - "XML": 5, + "Groovy Server Pages": 4, + "Groovy": 2, + "Sass": 2, + "Apex": 6, + "UnrealScript": 2, + "LiveScript": 1, + "BlitzBasic": 3, + "Forth": 7, + "Erlang": 5, + "Ruby": 17, + "PowerShell": 2, + "Game Maker Language": 13, + "Emacs Lisp": 2, + "PAWN": 1, + "Protocol Buffer": 1, + "Parrot Internal Representation": 1, + "Standard ML": 4, + "MediaWiki": 1, + "Jade": 1, + "Haml": 1, + "JSONiq": 2, + "Logos": 1, + "Julia": 1, "XProc": 1, + "TypeScript": 3, "XQuery": 1, - "XSLT": 1, - "Xtend": 2, + "MTML": 1, + "Shell": 37, + "Mathematica": 3, + "Shen": 3, + "Prolog": 3, + "Idris": 1, + "CoffeeScript": 9, + "Objective-C": 19, + "ATS": 10, + "Nimrod": 1, + "Gnuplot": 6, "YAML": 2, - "Zephir": 2 + "Dart": 1, + "SourcePawn": 1, + "Omgrofl": 1, + "Nemerle": 1, + "Nu": 2, + "C++": 28, + "Cuda": 2, + "Gosu": 4, + "Crystal": 3, + "RMarkdown": 1, + "E": 6, + "AspectJ": 2, + "Logtalk": 1, + "Frege": 4, + "Inform 7": 2, + "Tcl": 2, + "edn": 1, + "Hy": 2, + "DM": 1, + "GLSL": 3, + "ABAP": 1, + "CSS": 2, + "JSON": 4, + "Handlebars": 2, + "Creole": 1, + "JSON5": 2, + "VHDL": 1, + "PHP": 9, + "OCaml": 2, + "Grammatical Framework": 41, + "Pod": 1, + "Mercury": 9, + "Volt": 1, + "Pascal": 1, + "AsciiDoc": 3, + "Kotlin": 1, + "Coq": 12, + "fish": 3, + "Less": 1, + "INI": 2, + "Smalltalk": 3, + "Perl6": 3, + "Java": 6, + "Scilab": 3, + "Ioke": 1, + "Org": 1, + "Slash": 1, + "Python": 7, + "NewLisp": 1, + "Eagle": 2, + "PostScript": 1, + "Max": 3, + "KRL": 1, + "Literate Agda": 1, + "JavaScript": 20, + "ECL": 1, + "Lua": 3, + "AutoHotkey": 1, + "VimL": 2, + "Cirru": 9, + "PureScript": 4, + "Kit": 1, + "Monkey": 1, + "XML": 5, + "SuperCollider": 1, + "XSLT": 1, + "ShellSession": 3, + "Matlab": 39, + "Stata": 7, + "Common Lisp": 4, + "RDoc": 1, + "Stylus": 1, + "wisp": 1, + "Turing": 1, + "Arduino": 1, + "Alloy": 3, + "OpenCL": 2, + "JSONLD": 1, + "Makefile": 2, + "M": 29, + "Scheme": 2, + "SystemVerilog": 4, + "Markdown": 1, + "Ragel in Ruby Host": 3, + "Dogescript": 1, + "Nginx": 1, + "OpenEdge ABL": 5, + "GAS": 1, + "Squirrel": 1, + "SCSS": 1, + "NSIS": 2, + "Brightscript": 1, + "R": 4, + "Rust": 1, + "Diff": 1, + "C": 29, + "ApacheConf": 3, + "Processing": 1, + "Scala": 4, + "Objective-C++": 2, + "SQL": 5, + "Bluespec": 2, + "Literate CoffeeScript": 1, + "Xtend": 2, + "TeX": 2, + "AppleScript": 7, + "Oxygene": 1, + "Rebol": 6, + "Latte": 2, + "C#": 2, + "LFE": 4, + "MoonScript": 1, + "Moocode": 3, + "Clojure": 7, + "XC": 1, + "Scaml": 1, + "COBOL": 4, + "Tea": 1, + "Mask": 1, + "GAP": 7, + "Visual Basic": 3, + "Lasso": 4, + "Ceylon": 1, + "Perl": 15, + "TXL": 1, + "IDL": 4 }, - "md5": "0ab9fe87b3d811ca32ad705d2653b98f" + "md5": "c9137504fcdbcecc5b6e601213712fd1" } \ No newline at end of file diff --git a/samples/Common Lisp/sample.lsp b/samples/Common Lisp/sample.lsp new file mode 100644 index 00000000..9bef6781 --- /dev/null +++ b/samples/Common Lisp/sample.lsp @@ -0,0 +1,21 @@ +;;;; -*- lisp -*- + +(in-package :foo) + +;;; Header comment. +(defvar *foo*) + +(eval-when (:execute :compile-toplevel :load-toplevel) + (defun add (x &optional y &key z) + (declare (ignore z)) + ;; Inline comment. + (+ x (or y 1)))) + +#| +Multi-line comment. +|# + +(defmacro foo (x &body b) + (if x + `(1+ ,x) ;After-line comment. + 42)) diff --git a/samples/NewLisp/irc.lsp b/samples/NewLisp/irc.lsp new file mode 100644 index 00000000..0cac4034 --- /dev/null +++ b/samples/NewLisp/irc.lsp @@ -0,0 +1,239 @@ +#!/usr/bin/env newlisp + +;; @module IRC +;; @description a basic irc library +;; @version early alpha! 0.1 2013-01-02 20:11:22 +;; @author cormullion +;; Usage: +;; (IRC:init "newlithper") ; a username/nick (not that one obviously :-) +;; (IRC:connect "irc.freenode.net" 6667) ; irc/server +;; (IRC:join-channel {#newlisp}) ; join a room +;; either (IRC:read-irc-loop) ; loop - monitor only, no input +;; or (IRC:session) ; a command-line session, end with /QUIT + +(context 'IRC) + (define Inickname) + (define Ichannels) + (define Iserver) + (define Iconnected) + (define Icallbacks '()) + (define Idle-time 400) ; seconds + (define Itime-stamp) ; time since last message was processed + +(define (register-callback callback-name callback-function) + (println {registering callback for } callback-name { : } (sym (term callback-function) (prefix callback-function))) + (push (list callback-name (sym (term callback-function) (prefix callback-function))) Icallbacks)) + +(define (deregister-callback callback-name) + (println {deregistering callback for } callback-name) + (setf (assoc "idle-event" Icallbacks) nil) + (println {current callbacks: } Icallbacks)) + +(define (do-callback callback-name data) + (when (set 'func (lookup callback-name Icallbacks)) ; find first callback + (if-not (catch (apply func (list data)) 'error) + (println {error in callback } callback-name {: } error)))) + +(define (do-callbacks callback-name data) + (dolist (rf (ref-all callback-name Icallbacks)) + (set 'callback-entry (Icallbacks (first rf))) + (when (set 'func (last callback-entry)) + (if-not (catch (apply func (list data)) 'error) + (println {error in callback } callback-name {: } error))))) + +(define (init str) + (set 'Inickname str) + (set 'Iconnected nil) + (set 'Ichannels '()) + (set 'Itime-stamp (time-of-day))) + +(define (connect server port) + (set 'Iserver (net-connect server port)) + (net-send Iserver (format "USER %s %s %s :%s\r\n" Inickname Inickname Inickname Inickname)) + (net-send Iserver (format "NICK %s \r\n" Inickname)) + (set 'Iconnected true) + (do-callbacks "connect" (list (list "server" server) (list "port" port)))) + +(define (identify password) + (net-send Iserver (format "PRIVMSG nickserv :identify %s\r\n" password))) + +(define (join-channel channel) + (when (net-send Iserver (format "JOIN %s \r\n" channel)) + (push channel Ichannels) + (do-callbacks "join-channel" (list (list "channel" channel) (list "nickname" Inickname))))) + +(define (part chan) + (if-not (empty? chan) + ; leave specified + (begin + (net-send Iserver (format "PART %s\r\n" chan)) + (replace channel Ichannels) + (do-callbacks "part" (list (list "channel" channel)))) + ; leave all + (begin + (dolist (channel Ichannels) + (net-send Iserver (format "PART %s\r\n" channel)) + (replace channel Ichannels) + (do-callbacks "part" (list (list "channel" channel))))))) + +(define (do-quit message) + (do-callbacks "quit" '()) ; chance to do stuff before quit... + (net-send Iserver (format "QUIT :%s\r\n" message)) + (sleep 1000) + (set 'Ichannels '()) + (close Iserver) + (set 'Iconnected nil)) + +(define (privmsg user message) + (net-send Iserver (format "PRIVMSG %s :%s\r\n" user message))) + +(define (notice user message) + (net-send Iserver (format "NOTICE %s :%s\r\n" user message))) + +(define (send-to-server message (channel nil)) + (cond + ((starts-with message {/}) ; default command character + (set 'the-message (replace "^/" (copy message) {} 0)) ; keep original + (net-send Iserver (format "%s \r\n" the-message)) ; send it + ; do a quit + (if (starts-with (lower-case the-message) "quit") + (do-quit { enough}))) + (true + (if (nil? channel) + ; say to all channels + (dolist (c Ichannels) + (net-send Iserver (format "PRIVMSG %s :%s\r\n" c message))) + ; say to specified channel + (if (find channel Ichannels) + (net-send Iserver (format "PRIVMSG %s :%s\r\n" channel message)))))) + (do-callbacks "send-to-server" (list (list "channel" channel) (list "message" message)))) + +(define (process-command sender command text) + (cond + ((= sender "PING") + (net-send Iserver (format "PONG %s\r\n" command))) + ((or (= command "NOTICE") (= command "PRIVMSG")) + (process-message sender command text)) + ((= command "JOIN") + (set 'username (first (clean empty? (parse sender {!|:} 0)))) + (set 'channel (last (clean empty? (parse sender {!|:} 0)))) + (println {username } username { joined } channel) + (do-callbacks "join" (list (list "channel" channel) (list "username" username)))) + (true + nil))) + +(define (process-message sender command text) + (let ((username {} target {} message {})) + (set 'username (first (clean empty? (parse sender {!|:} 0)))) + (set 'target (trim (first (clean empty? (parse text {!|:} 0))))) + (set 'message (slice text (+ (find {:} text) 1))) + (cond + ((starts-with message "\001") + (process-ctcp username target message)) + ((find target Ichannels) + (cond + ((= command {PRIVMSG}) + (do-callbacks "channel-message" (list (list "channel" target) (list "username" username) (list "message" message)))) + ((= command {NOTICE}) + (do-callbacks "channel-notice" (list (list "channel" target) (list "username" username) (list "message" message)))))) + ((= target Inickname) + (cond + ((= command {PRIVMSG}) + (do-callbacks "private-message" (list (list "username" username) (list "message" message)))) + ((= command {NOTICE}) + (do-callbacks "private-notice" (list (list "username" username) (list "message" message)))))) + (true + nil)))) + +(define (process-ctcp username target message) + (cond + ((starts-with message "\001VERSION\001") + (net-send Iserver (format "NOTICE %s :\001VERSION %s\001\r\n" username message))) + ((starts-with message "\001PING") + (set 'data (first (rest (clean empty? (parse message { } 0))))) + (set 'data (trim data "\001" "\001")) + (net-send Iserver (format "NOTICE %s :\001PING %s\001\r\n" username data))) + ((starts-with message "\001ACTION") +; (set 'data (first (rest (clean empty? (parse message { } 0))))) +; (set 'data (join data { })) +; (set 'data (trim data "\001" "\001")) + (if (find target Ichannels) + (do-callbacks "channel-action" (list (list "username" username) (list "message" message)))) + (if (= target Inickname) + (do-callbacks "private-action" (list (list "username" username) (list "message" message))))) + ((starts-with message "\001TIME\001") + (net-send Iserver (format "NOTICE %s:\001TIME :%s\001\r\n" username (date)))))) + +(define (parse-buffer raw-buffer) + (let ((messages (clean empty? (parse raw-buffer "\r\n" 0))) + (sender {} command {} text {})) + ; check for elapsed time since last activity + (when (> (sub (time-of-day) Itime-stamp) (mul Idle-time 1000)) + (do-callbacks "idle-event") + (set 'Itime-stamp (time-of-day))) + (dolist (message messages) + (set 'message-parts (parse message { })) + (unless (empty? message-parts) + (set 'sender (first message-parts)) + (catch (set 'command (first (rest message-parts))) 'error) + (catch (set 'text (join (rest (rest message-parts)) { })) 'error)) + (process-command sender command text)))) + +(define (read-irc) + (let ((buffer {})) + (when (!= (net-peek Iserver) 0) + (net-receive Iserver buffer 8192 "\n") + (unless (empty? buffer) + (parse-buffer buffer))))) + +(define (read-irc-loop) ; monitoring + (let ((buffer {})) + (while Iconnected + (read-irc) + (sleep 1000)))) + +(define (print-raw-message data) ; example of using a callback + (set 'raw-data (lookup "message" data)) + (set 'channel (lookup "channel" data)) + (set 'message-text raw-data) + (println (date (date-value) 0 {%H:%M:%S }) username {> } message-text)) + +(define (print-outgoing-message data) + (set 'raw-data (lookup "message" data)) + (set 'channel (lookup "channel" data)) + (set 'message-text raw-data) + (println (date (date-value) 0 {%H:%M:%S }) Inickname {> } message-text)) + +(define (session); interactive terminal + ; must add callbacks to display messages + (register-callback "channel-message" 'print-raw-message) + (register-callback "send-to-server" 'print-outgoing-message) + (while Iconnected + (while (zero? (peek 0)) + (read-irc) + (sleep 1000)) + (send-to-server (string (read-line 0)))) + (println {finished session } (date)) + (exit)) + +; end of IRC code + +[text] + +simple bot code: +(load (string (env {HOME}) {/projects/programming/newlisp-projects/irc.lsp})) +(context 'BOT) +(define bot-name "bot") +(define (join-channel data) + (println {in BOT:join-channel with data: } data)) +(define (process-message data) + ????) +(IRC:register-callback "join-channel" 'join-channel) +(IRC:register-callback "channel-message" 'process-message) +(IRC:register-callback "idle-event" 'do-idle-event) +(IRC:register-callback "send-to-server" 'do-send-event) +(IRC:init bot-name) +(IRC:connect "irc.freenode.net" 6667) +(IRC:join-channel {#newlisp}) +(IRC:read-irc-loop) +[/text] \ No newline at end of file From e4975fc47601b1f7eb6c0f25cd7a94d439ef105f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 28 Apr 2014 11:45:24 +0200 Subject: [PATCH 002/875] Heuristics for Common Lisp and NewLisp --- lib/linguist/heuristics.rb | 10 ++++++++++ test/test_heuristics.rb | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index c1116780..c37a17ed 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -25,6 +25,9 @@ module Linguist if languages.all? { |l| ["TypeScript", "XML"].include?(l) } disambiguate_ts(data, languages) end + if languages.all? { |l| ["Common Lisp", "NewLisp"].include?(l) } + disambiguate_lsp(data, languages) + end if languages.all? { |l| ["Common Lisp", "OpenCL"].include?(l) } disambiguate_cl(data, languages) end @@ -69,6 +72,13 @@ module Linguist matches end + def self.disambiguate_lsp(data, languages) + matches = [] + matches << Language["Common Lisp"] if data.include?("(defun") + matches << Language["NewLisp"] if data.include?("true") + matches + end + def self.disambiguate_cl(data, languages) matches = [] matches << Language["Common Lisp"] if data.include?("(defun ") diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 0c1a07ff..2e1ee9bc 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -75,6 +75,18 @@ class TestHeuristcs < Test::Unit::TestCase assert_equal Language["XML"], results.first end + def test_lsp_commonlisp_by_heuristics + languages = ["Common Lisp", "NewLisp"] + results = Heuristics.disambiguate_lsp(fixture("Common Lisp/sample.lsp"), languages) + assert_equal Language["Common Lisp"], results.first + end + + def test_lsp_newlisp_by_heuristics + languages = ["Common Lisp", "NewLisp"] + results = Heuristics.disambiguate_lsp(fixture("NewLisp/irc.lsp"), languages) + assert_equal Language["NewLisp"], results.first + end + def test_cl_by_heuristics languages = ["Common Lisp", "OpenCL"] languages.each do |language| From 29d8e58d69c46feecf172707b8e3bb0e38960a0c Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Sat, 6 Sep 2014 10:58:36 -0700 Subject: [PATCH 003/875] Renamed AGS Script to Adventure Game Studio since the language is unique to the app. --- lib/linguist/languages.yml | 2 +- lib/linguist/samples.json | 726 +++++++++--------- .../GlobalScript.asc | 0 .../GlobalScript.ash | 0 .../KeyboardMovement_102.asc | 0 .../KeyboardMovement_102.ash | 0 6 files changed, 364 insertions(+), 364 deletions(-) rename samples/{AGS Script => Adventure Game Studio}/GlobalScript.asc (100%) rename samples/{AGS Script => Adventure Game Studio}/GlobalScript.ash (100%) rename samples/{AGS Script => Adventure Game Studio}/KeyboardMovement_102.asc (100%) rename samples/{AGS Script => Adventure Game Studio}/KeyboardMovement_102.ash (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a6f0054b..164cd90c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -28,7 +28,7 @@ ABAP: extensions: - .abap -AGS Script: +Adventure Game Studio: type: programming lexer: C++ color: "#B9D9FF" diff --git a/lib/linguist/samples.json b/lib/linguist/samples.json index 559ef894..545d2dbf 100644 --- a/lib/linguist/samples.json +++ b/lib/linguist/samples.json @@ -3,10 +3,6 @@ "ABAP": [ ".abap" ], - "AGS Script": [ - ".asc", - ".ash" - ], "APL": [ ".apl" ], @@ -16,6 +12,10 @@ ".hats", ".sats" ], + "Adventure Game Studio": [ + ".asc", + ".ash" + ], "Agda": [ ".agda" ], @@ -1116,362 +1116,6 @@ "pos": 2, "endclass.": 1 }, - "AGS Script": { - "function": 54, - "initialize_control_panel": 2, - "(": 281, - ")": 282, - "{": 106, - "gPanel.Centre": 1, - ";": 235, - "gRestartYN.Centre": 1, - "if": 96, - "IsSpeechVoxAvailable": 3, - "lblVoice.Visible": 1, - "false": 26, - "btnVoice.Visible": 1, - "sldVoice.Visible": 1, - "}": 107, - "else": 44, - "SetVoiceMode": 6, - "eSpeechVoiceAndText": 4, - "btnVoice.Text": 9, - "System.SupportsGammaControl": 3, - "sldGamma.Visible": 1, - "lblGamma.Visible": 1, - "//And": 1, - "now": 1, - "set": 7, - "all": 2, - "the": 15, - "defaults": 1, - "System.Volume": 5, - "sldAudio.Value": 3, - "SetGameSpeed": 3, - "sldSpeed.Value": 3, - "sldVoice.Value": 3, - "SetSpeechVolume": 3, - "System.Gamma": 3, - "sldGamma.Value": 3, - "game_start": 1, - "KeyboardMovement.SetMode": 1, - "eKeyboardMovement_Tapping": 3, - "repeatedly_execute": 2, - "IsGamePaused": 4, - "return": 8, - "repeatedly_execute_always": 1, - "show_inventory_window": 3, - "gInventory.Visible": 2, - "true": 18, - "mouse.Mode": 13, - "eModeInteract": 3, - "mouse.UseModeGraphic": 8, - "eModePointer": 8, - "show_save_game_dialog": 3, - "gSaveGame.Visible": 3, - "lstSaveGamesList.FillSaveGameList": 2, - "lstSaveGamesList.ItemCount": 3, - "txtNewSaveName.Text": 5, - "lstSaveGamesList.Items": 3, - "[": 6, - "]": 6, - "gIconbar.Visible": 15, - "show_restore_game_dialog": 3, - "gRestoreGame.Visible": 3, - "lstRestoreGamesList.FillSaveGameList": 1, - "close_save_game_dialog": 4, - "mouse.UseDefaultGraphic": 9, - "close_restore_game_dialog": 4, - "on_key_press": 2, - "eKeyCode": 1, - "keycode": 27, - "eKeyEscape": 5, - "&&": 8, - "gRestartYN.Visible": 6, - "//Use": 1, - "ESC": 1, - "to": 14, - "cancel": 1, - "restart.": 1, - "gPanel.Visible": 11, - "eKeyReturn": 1, - "RestartGame": 2, - "||": 12, - "IsInterfaceEnabled": 3, - "eKeyCtrlQ": 1, - "QuitGame": 3, - "//": 66, - "Ctrl": 1, - "-": 217, - "Q": 1, - "eKeyF5": 1, - "F5": 1, - "eKeyF7": 1, - "F7": 1, - "eKeyF9": 1, - "eKeyF12": 1, - "SaveScreenShot": 1, - "F12": 1, - "eKeyTab": 1, - "Tab": 1, - "show": 1, - "inventory": 2, - "eModeWalkto": 2, - "//Notice": 1, - "this": 1, - "alternate": 1, - "way": 1, - "indicate": 1, - "keycodes.": 1, - "eModeLookat": 1, - "//Note": 1, - "that": 1, - "we": 1, - "do": 1, - "here": 1, - "is": 10, - "modes.": 1, - "//If": 1, - "you": 1, - "want": 1, - "something": 1, - "happen": 1, - "such": 1, - "as": 2, - "GUI": 3, - "buttons": 1, - "highlighting": 1, - "eModeTalkto": 2, - "//you": 1, - "I": 1, - "P": 1, - "G": 1, - "t": 1, - "allow": 1, - "mouse": 2, - "click": 1, - "button": 33, - "eMouseLeft": 4, - "ProcessClick": 2, - "mouse.x": 2, - "mouse.y": 2, - "eMouseRight": 1, - "eMouseWheelSouth": 1, - "mouse.SelectNextMode": 1, - "eMouseMiddle": 1, - "eMouseWheelNorth": 1, - "player.ActiveInventory": 2, - "null": 2, - "//...and": 1, - "player": 13, - "has": 1, - "a": 1, - "selected": 1, - "item": 1, - "mode": 10, - "UseInv.": 1, - "eModeUseinv": 2, - "interface_click": 1, - "int": 18, - "interface": 3, - "btnInvUp_Click": 1, - "GUIControl": 31, - "*control": 31, - "MouseButton": 26, - "invCustomInv.ScrollUp": 1, - "btnInvDown_Click": 1, - "invCustomInv.ScrollDown": 1, - "btnInvOK_Click": 1, - "They": 2, - "pressed": 4, - "OK": 1, - "close": 1, - "btnInvSelect_Click": 1, - "SELECT": 1, - "so": 1, - "switch": 1, - "Get": 1, - "cursor": 1, - "But": 1, - "override": 1, - "appearance": 1, - "look": 1, - "like": 1, - "arrow": 9, - "btnIconInv_Click": 1, - "btnIconCurInv_Click": 1, - "btnIconSave_Click": 2, - "btnIconLoad_Click": 2, - "btnIconExit_Click": 1, - "btnIconAbout_Click": 1, - "cEgo_Look": 1, - "Display": 4, - "cEgo_Interact": 1, - "cEgo_Talk": 1, - "//START": 1, - "OF": 2, - "CONTROL": 2, - "PANEL": 2, - "FUNCTIONS": 2, - "btnSave_OnClick": 1, - "Wait": 3, - "btnIconSave": 1, - "gControl_OnClick": 1, - "*theGui": 1, - "btnAbout_OnClick": 1, - "btnQuit_OnClick": 1, - "btnLoad_OnClick": 1, - "btnIconLoad": 1, - "btnResume_OnClick": 1, - "sldAudio_OnChange": 1, - "sldVoice_OnChange": 1, - "btnVoice_OnClick": 1, - "eSpeechVoiceOnly": 1, - "eSpeechTextOnly": 1, - "sldGamma_OnChange": 1, - "btnDefault_OnClick": 1, - "//END": 1, - "dialog_request": 1, - "param": 1, - "sldSpeed_OnChange": 1, - "btnRestart_OnClick": 1, - "btnRestartYes_OnClick": 1, - "btnRestartNo_OnClick": 1, - "btnCancelSave_OnClick": 1, - "btnSaveGame_OnClick": 2, - "gameSlotToSaveInto": 3, - "+": 7, - "i": 5, - "while": 1, - "<": 1, - "lstSaveGamesList.SaveGameSlots": 2, - "SaveGameSlot": 1, - "btnCancelRestore_OnClick": 1, - "btnRestoreGame_OnClick": 1, - "lstRestoreGamesList.SelectedIndex": 2, - "RestoreGameSlot": 1, - "lstRestoreGamesList.SaveGameSlots": 1, - "lstSaveGamesList_OnSelectionCh": 1, - "lstSaveGamesList.SelectedIndex": 3, - "txtNewSaveName_OnActivate": 1, - "control": 2, - "btnDeleteSave_OnClick": 1, - "DeleteSaveSlot": 1, - "//****************************************************************************************************": 8, - "#define": 2, - "DISTANCE": 25, - "distance": 1, - "walks": 1, - "in": 1, - "Tapping": 2, - "before": 1, - "he": 1, - "stops": 1, - "enum": 2, - "KeyboardMovement_Directions": 4, - "eKeyboardMovement_Stop": 9, - "eKeyboardMovement_DownLeft": 5, - "eKeyboardMovement_Down": 5, - "eKeyboardMovement_DownRight": 5, - "eKeyboardMovement_Left": 5, - "eKeyboardMovement_Right": 5, - "eKeyboardMovement_UpLeft": 5, - "eKeyboardMovement_Up": 5, - "eKeyboardMovement_UpRight": 5, - "KeyboardMovement_KeyDown": 5, - "down": 9, - "KeyboardMovement_KeyLeft": 5, - "left": 4, - "KeyboardMovement_KeyRight": 5, - "right": 5, - "KeyboardMovement_KeyUp": 5, - "up": 4, - "KeyboardMovement_KeyDownRight": 3, - "PgDn": 2, - "numpad": 8, - "KeyboardMovement_KeyUpRight": 3, - "PgUp": 2, - "KeyboardMovement_KeyDownLeft": 3, - "End": 2, - "KeyboardMovement_KeyUpLeft": 3, - "Home": 2, - "KeyboardMovement_KeyStop": 3, - "KeyboardMovement_Modes": 4, - "KeyboardMovement_Mode": 4, - "eKeyboardMovement_None": 2, - "stores": 2, - "current": 8, - "keyboard": 1, - "disabled": 5, - "by": 1, - "default": 1, - "KeyboardMovement_CurrentDirection": 7, - "walking": 1, - "direction": 22, - "of": 6, - "character": 11, - "static": 2, - "KeyboardMovement": 2, - "SetMode": 2, - "Pressing": 1, - "eKeyboardMovement_Pressing": 2, - "player.on": 2, - "game": 2, - "paused": 2, - "module": 2, - "or": 8, - "hidden": 2, - "quit": 2, - "newdirection": 43, - "declare": 4, - "variable": 2, - "storing": 4, - "new": 19, - "get": 2, - "IsKeyPressed": 17, - "&": 4, - "arrows": 4, - "numeric": 2, - "pad": 2, - "held": 4, - "Down": 2, - "Right": 2, - "none": 1, - "above": 2, - "it": 1, - "stop": 7, - "regardless": 1, - "whether": 1, - "some": 1, - "are": 1, - "different": 2, - "from": 2, - "player.StopMoving": 3, - "Stop": 4, - "command": 4, - "movement": 2, - "NOT": 2, - "dx": 20, - "dy": 20, - "variables": 2, - "walk": 4, - "coordinates": 4, - "player.WalkStraight": 2, - "player.x": 2, - "player.y": 2, - "eNoBlock": 2, - "update": 3, - "key": 2, - "same": 1, - "on_event": 1, - "EventType": 1, - "event": 2, - "data": 1, - "eEventLeaveRoom": 1, - "KeyboardMovement_VERSION": 1, - "struct": 1, - "import": 1 - }, "APL": { "You": 1, "can": 2, @@ -2057,6 +1701,362 @@ "Yoneda_bool_list0": 3, "myboolist1": 2 }, + "Adventure Game Studio": { + "function": 54, + "initialize_control_panel": 2, + "(": 281, + ")": 282, + "{": 106, + "gPanel.Centre": 1, + ";": 235, + "gRestartYN.Centre": 1, + "if": 96, + "IsSpeechVoxAvailable": 3, + "lblVoice.Visible": 1, + "false": 26, + "btnVoice.Visible": 1, + "sldVoice.Visible": 1, + "}": 107, + "else": 44, + "SetVoiceMode": 6, + "eSpeechVoiceAndText": 4, + "btnVoice.Text": 9, + "System.SupportsGammaControl": 3, + "sldGamma.Visible": 1, + "lblGamma.Visible": 1, + "//And": 1, + "now": 1, + "set": 7, + "all": 2, + "the": 15, + "defaults": 1, + "System.Volume": 5, + "sldAudio.Value": 3, + "SetGameSpeed": 3, + "sldSpeed.Value": 3, + "sldVoice.Value": 3, + "SetSpeechVolume": 3, + "System.Gamma": 3, + "sldGamma.Value": 3, + "game_start": 1, + "KeyboardMovement.SetMode": 1, + "eKeyboardMovement_Tapping": 3, + "repeatedly_execute": 2, + "IsGamePaused": 4, + "return": 8, + "repeatedly_execute_always": 1, + "show_inventory_window": 3, + "gInventory.Visible": 2, + "true": 18, + "mouse.Mode": 13, + "eModeInteract": 3, + "mouse.UseModeGraphic": 8, + "eModePointer": 8, + "show_save_game_dialog": 3, + "gSaveGame.Visible": 3, + "lstSaveGamesList.FillSaveGameList": 2, + "lstSaveGamesList.ItemCount": 3, + "txtNewSaveName.Text": 5, + "lstSaveGamesList.Items": 3, + "[": 6, + "]": 6, + "gIconbar.Visible": 15, + "show_restore_game_dialog": 3, + "gRestoreGame.Visible": 3, + "lstRestoreGamesList.FillSaveGameList": 1, + "close_save_game_dialog": 4, + "mouse.UseDefaultGraphic": 9, + "close_restore_game_dialog": 4, + "on_key_press": 2, + "eKeyCode": 1, + "keycode": 27, + "eKeyEscape": 5, + "&&": 8, + "gRestartYN.Visible": 6, + "//Use": 1, + "ESC": 1, + "to": 14, + "cancel": 1, + "restart.": 1, + "gPanel.Visible": 11, + "eKeyReturn": 1, + "RestartGame": 2, + "||": 12, + "IsInterfaceEnabled": 3, + "eKeyCtrlQ": 1, + "QuitGame": 3, + "//": 66, + "Ctrl": 1, + "-": 217, + "Q": 1, + "eKeyF5": 1, + "F5": 1, + "eKeyF7": 1, + "F7": 1, + "eKeyF9": 1, + "eKeyF12": 1, + "SaveScreenShot": 1, + "F12": 1, + "eKeyTab": 1, + "Tab": 1, + "show": 1, + "inventory": 2, + "eModeWalkto": 2, + "//Notice": 1, + "this": 1, + "alternate": 1, + "way": 1, + "indicate": 1, + "keycodes.": 1, + "eModeLookat": 1, + "//Note": 1, + "that": 1, + "we": 1, + "do": 1, + "here": 1, + "is": 10, + "modes.": 1, + "//If": 1, + "you": 1, + "want": 1, + "something": 1, + "happen": 1, + "such": 1, + "as": 2, + "GUI": 3, + "buttons": 1, + "highlighting": 1, + "eModeTalkto": 2, + "//you": 1, + "I": 1, + "P": 1, + "G": 1, + "t": 1, + "allow": 1, + "mouse": 2, + "click": 1, + "button": 33, + "eMouseLeft": 4, + "ProcessClick": 2, + "mouse.x": 2, + "mouse.y": 2, + "eMouseRight": 1, + "eMouseWheelSouth": 1, + "mouse.SelectNextMode": 1, + "eMouseMiddle": 1, + "eMouseWheelNorth": 1, + "player.ActiveInventory": 2, + "null": 2, + "//...and": 1, + "player": 13, + "has": 1, + "a": 1, + "selected": 1, + "item": 1, + "mode": 10, + "UseInv.": 1, + "eModeUseinv": 2, + "interface_click": 1, + "int": 18, + "interface": 3, + "btnInvUp_Click": 1, + "GUIControl": 31, + "*control": 31, + "MouseButton": 26, + "invCustomInv.ScrollUp": 1, + "btnInvDown_Click": 1, + "invCustomInv.ScrollDown": 1, + "btnInvOK_Click": 1, + "They": 2, + "pressed": 4, + "OK": 1, + "close": 1, + "btnInvSelect_Click": 1, + "SELECT": 1, + "so": 1, + "switch": 1, + "Get": 1, + "cursor": 1, + "But": 1, + "override": 1, + "appearance": 1, + "look": 1, + "like": 1, + "arrow": 9, + "btnIconInv_Click": 1, + "btnIconCurInv_Click": 1, + "btnIconSave_Click": 2, + "btnIconLoad_Click": 2, + "btnIconExit_Click": 1, + "btnIconAbout_Click": 1, + "cEgo_Look": 1, + "Display": 4, + "cEgo_Interact": 1, + "cEgo_Talk": 1, + "//START": 1, + "OF": 2, + "CONTROL": 2, + "PANEL": 2, + "FUNCTIONS": 2, + "btnSave_OnClick": 1, + "Wait": 3, + "btnIconSave": 1, + "gControl_OnClick": 1, + "*theGui": 1, + "btnAbout_OnClick": 1, + "btnQuit_OnClick": 1, + "btnLoad_OnClick": 1, + "btnIconLoad": 1, + "btnResume_OnClick": 1, + "sldAudio_OnChange": 1, + "sldVoice_OnChange": 1, + "btnVoice_OnClick": 1, + "eSpeechVoiceOnly": 1, + "eSpeechTextOnly": 1, + "sldGamma_OnChange": 1, + "btnDefault_OnClick": 1, + "//END": 1, + "dialog_request": 1, + "param": 1, + "sldSpeed_OnChange": 1, + "btnRestart_OnClick": 1, + "btnRestartYes_OnClick": 1, + "btnRestartNo_OnClick": 1, + "btnCancelSave_OnClick": 1, + "btnSaveGame_OnClick": 2, + "gameSlotToSaveInto": 3, + "+": 7, + "i": 5, + "while": 1, + "<": 1, + "lstSaveGamesList.SaveGameSlots": 2, + "SaveGameSlot": 1, + "btnCancelRestore_OnClick": 1, + "btnRestoreGame_OnClick": 1, + "lstRestoreGamesList.SelectedIndex": 2, + "RestoreGameSlot": 1, + "lstRestoreGamesList.SaveGameSlots": 1, + "lstSaveGamesList_OnSelectionCh": 1, + "lstSaveGamesList.SelectedIndex": 3, + "txtNewSaveName_OnActivate": 1, + "control": 2, + "btnDeleteSave_OnClick": 1, + "DeleteSaveSlot": 1, + "//****************************************************************************************************": 8, + "#define": 2, + "DISTANCE": 25, + "distance": 1, + "walks": 1, + "in": 1, + "Tapping": 2, + "before": 1, + "he": 1, + "stops": 1, + "enum": 2, + "KeyboardMovement_Directions": 4, + "eKeyboardMovement_Stop": 9, + "eKeyboardMovement_DownLeft": 5, + "eKeyboardMovement_Down": 5, + "eKeyboardMovement_DownRight": 5, + "eKeyboardMovement_Left": 5, + "eKeyboardMovement_Right": 5, + "eKeyboardMovement_UpLeft": 5, + "eKeyboardMovement_Up": 5, + "eKeyboardMovement_UpRight": 5, + "KeyboardMovement_KeyDown": 5, + "down": 9, + "KeyboardMovement_KeyLeft": 5, + "left": 4, + "KeyboardMovement_KeyRight": 5, + "right": 5, + "KeyboardMovement_KeyUp": 5, + "up": 4, + "KeyboardMovement_KeyDownRight": 3, + "PgDn": 2, + "numpad": 8, + "KeyboardMovement_KeyUpRight": 3, + "PgUp": 2, + "KeyboardMovement_KeyDownLeft": 3, + "End": 2, + "KeyboardMovement_KeyUpLeft": 3, + "Home": 2, + "KeyboardMovement_KeyStop": 3, + "KeyboardMovement_Modes": 4, + "KeyboardMovement_Mode": 4, + "eKeyboardMovement_None": 2, + "stores": 2, + "current": 8, + "keyboard": 1, + "disabled": 5, + "by": 1, + "default": 1, + "KeyboardMovement_CurrentDirection": 7, + "walking": 1, + "direction": 22, + "of": 6, + "character": 11, + "static": 2, + "KeyboardMovement": 2, + "SetMode": 2, + "Pressing": 1, + "eKeyboardMovement_Pressing": 2, + "player.on": 2, + "game": 2, + "paused": 2, + "module": 2, + "or": 8, + "hidden": 2, + "quit": 2, + "newdirection": 43, + "declare": 4, + "variable": 2, + "storing": 4, + "new": 19, + "get": 2, + "IsKeyPressed": 17, + "&": 4, + "arrows": 4, + "numeric": 2, + "pad": 2, + "held": 4, + "Down": 2, + "Right": 2, + "none": 1, + "above": 2, + "it": 1, + "stop": 7, + "regardless": 1, + "whether": 1, + "some": 1, + "are": 1, + "different": 2, + "from": 2, + "player.StopMoving": 3, + "Stop": 4, + "command": 4, + "movement": 2, + "NOT": 2, + "dx": 20, + "dy": 20, + "variables": 2, + "walk": 4, + "coordinates": 4, + "player.WalkStraight": 2, + "player.x": 2, + "player.y": 2, + "eNoBlock": 2, + "update": 3, + "key": 2, + "same": 1, + "on_event": 1, + "EventType": 1, + "event": 2, + "data": 1, + "eEventLeaveRoom": 1, + "KeyboardMovement_VERSION": 1, + "struct": 1, + "import": 1 + }, "Agda": { "module": 3, "NatCat": 1, @@ -73110,9 +73110,9 @@ }, "language_tokens": { "ABAP": 1500, - "AGS Script": 2717, "APL": 42, "ATS": 4558, + "Adventure Game Studio": 2717, "Agda": 376, "Alloy": 1143, "ApacheConf": 1449, @@ -73325,9 +73325,9 @@ }, "languages": { "ABAP": 1, - "AGS Script": 4, "APL": 1, "ATS": 10, + "Adventure Game Studio": 4, "Agda": 1, "Alloy": 3, "ApacheConf": 3, @@ -73538,5 +73538,5 @@ "fish": 3, "wisp": 1 }, - "md5": "1a8591982ec28c592a742122734c142c" + "md5": "2b2212de51ff03f9b167157bf2ac8e4d" } \ No newline at end of file diff --git a/samples/AGS Script/GlobalScript.asc b/samples/Adventure Game Studio/GlobalScript.asc similarity index 100% rename from samples/AGS Script/GlobalScript.asc rename to samples/Adventure Game Studio/GlobalScript.asc diff --git a/samples/AGS Script/GlobalScript.ash b/samples/Adventure Game Studio/GlobalScript.ash similarity index 100% rename from samples/AGS Script/GlobalScript.ash rename to samples/Adventure Game Studio/GlobalScript.ash diff --git a/samples/AGS Script/KeyboardMovement_102.asc b/samples/Adventure Game Studio/KeyboardMovement_102.asc similarity index 100% rename from samples/AGS Script/KeyboardMovement_102.asc rename to samples/Adventure Game Studio/KeyboardMovement_102.asc diff --git a/samples/AGS Script/KeyboardMovement_102.ash b/samples/Adventure Game Studio/KeyboardMovement_102.ash similarity index 100% rename from samples/AGS Script/KeyboardMovement_102.ash rename to samples/Adventure Game Studio/KeyboardMovement_102.ash From af4b64070ff298ff7a5acf71749dad433a1ba2c9 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Sat, 6 Sep 2014 10:59:32 -0700 Subject: [PATCH 004/875] Added heuristics to distinguish between AsciiDoc and Adventure Game Studio --- lib/linguist/heuristics.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b22422c3..c357bb89 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -19,10 +19,23 @@ module Linguist if languages.all? { |l| ["ECL", "Prolog"].include?(l) } result = disambiguate_ecl(data, languages) end + if languages.all? { |l| ["Adventure Game Studio", "AsciiDoc"].include?(l) } + result = disabiguate_asc(data, languages) + end return result end end + def self.disabiguate_asc(data, languages) + matches = [] + if (/^(\/\/\s*|\s*((import|export)?\s*(function|int|float|char)\s*((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(]?))/.match(data)) + matches << Language["Adventure Game Studio"] + elsif (/^\s*([=~\+\-\^]+\s*|\[.*?\]\s*)$|[\+\*\-\=]+/.match(data)) + matches << Language["AsciiDoc"] + end + matches + end + # .h extensions are ambigious between C, C++, and Objective-C. # We want to shortcut look for Objective-C _and_ now C++ too! # From 2c5e8c43088fc52212a22ab7e86f303a38e96d39 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Sun, 14 Sep 2014 12:28:20 -0700 Subject: [PATCH 005/875] Fixed spelling error in disambiguate asc method name. Whoops. --- lib/linguist/heuristics.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index c357bb89..9083e0ca 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -20,13 +20,13 @@ module Linguist result = disambiguate_ecl(data, languages) end if languages.all? { |l| ["Adventure Game Studio", "AsciiDoc"].include?(l) } - result = disabiguate_asc(data, languages) + result = disambiguate_asc(data, languages) end return result end end - def self.disabiguate_asc(data, languages) + def self.disambiguate_asc(data, languages) matches = [] if (/^(\/\/\s*|\s*((import|export)?\s*(function|int|float|char)\s*((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(]?))/.match(data)) matches << Language["Adventure Game Studio"] From 8bb9241e6eec8343a0da351186f2a54f70bb987c Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 19:08:57 +0200 Subject: [PATCH 006/875] add DIGITAL Command Language (DCL) --- lib/linguist/languages.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c85fe463..f5853460 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -545,6 +545,17 @@ D-ObjDump: extensions: - .d-objdump +DIGITAL Command Language: + type: programming + lexer: DCL + search_term: dcl + group: OpenVMS + aliases: + - dcl + extensions: + - .com + - .dcl + DM: type: programming color: "#075ff1" From d7757033ab2736798a654c6f854763ae8285ea91 Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 20:33:28 +0200 Subject: [PATCH 007/875] DCL examples --- .../fis_gtm_kitinstal.com | 443 +++++++++ .../ghostpdl_zlib_make_vms.com | 867 ++++++++++++++++++ .../libxslt_build.com | 342 +++++++ .../vmsbackup_build.com | 10 + 4 files changed, 1662 insertions(+) create mode 100644 samples/DIGITAL Command Language/fis_gtm_kitinstal.com create mode 100644 samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com create mode 100644 samples/DIGITAL Command Language/libxslt_build.com create mode 100644 samples/DIGITAL Command Language/vmsbackup_build.com diff --git a/samples/DIGITAL Command Language/fis_gtm_kitinstal.com b/samples/DIGITAL Command Language/fis_gtm_kitinstal.com new file mode 100644 index 00000000..b4701ff9 --- /dev/null +++ b/samples/DIGITAL Command Language/fis_gtm_kitinstal.com @@ -0,0 +1,443 @@ +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! ! +$! Copyright 2001, 2011 Fidelity Information Services, Inc ! +$! ! +$! This source code contains the intellectual property ! +$! of its copyright holder(s), and is made available ! +$! under a license. If you do not know the terms of ! +$! the license, please stop and do not read further. ! +$! ! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! +$! KITINSTAL.COM PROCEDURE FOR THE GT.M PRODUCT +$! +$ ON CONTROL_Y THEN VMI$CALLBACK CONTROL_Y +$! ON WARNING THEN EXIT $STATUS !! allow warning errors for INSTALL REPLACE +$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL +$ IF P1 .EQS. "VMI$_POSTINSTALL" THEN GOTO POSTINSTALL +$ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP +$ EXIT VMI$_UNSUPPORTED +$! +$INSTALL: +$ TYPE SYS$INPUT + + GT.M (c) COPYRIGHT 1985 - 2000 by Sanchez Computer Associates + ALL RIGHTS RESERVED + +$! the following 2 lines must be maintained +$ GTM$VMS_VERSION :== 072 ! Minimum VMS version required +$ ALPHA = (f$getsyi("arch_name") .eqs. "Alpha") +$ IF ALPHA +$ THEN +$ GTM$DISK_SPACE == 28000 ! Minumum disk space on system disk required +$ ELSE +$ GTM$DISK_SPACE == 16000 ! Minumum disk space on system disk required +$ ENDIF +$ IF F$ELEMENT(0,",",VMI$VMS_VERSION) .EQS. "RELEASED" +$ THEN +$ GTM$VMS_IS == F$ELEMENT(1,",",VMI$VMS_VERSION) +$ IF GTM$VMS_IS .LTS. GTM$VMS_VERSION +$ THEN +$ VMI$CALLBACK MESSAGE E VMSMISMATCH "This GT.M kit requires an existing VMS''GTM$VMS_VERSION' system." +$ EXIT VMI$_FAILURE +$ ENDIF +$ ELSE +$ GTM$VMS_IS :== +$ WRITE SYS$OUTPUT " No VMS version checking performed for field test versions." +$ ENDIF +$ IF (GTM$VMS_IS .GES. "052") THEN T1 = F$VERIFY(VMI$KIT_DEBUG) +$ VMI$CALLBACK CHECK_NET_UTILIZATION GTM$ROOM 'GTM$DISK_SPACE' +$ IF .NOT. GTM$ROOM +$ THEN +$ VMI$CALLBACK MESSAGE E NOSPACE "There is not enough disk space -- GT.M needs ''GTM$DISK_SPACE' blocks." +$ EXIT VMI$_FAILURE +$ ENDIF +$! setup default answers +$ GTM$DOPURGE :== YES +$ GTM$RUN_IVP :== YES +$ GTM$STD_CNF :== YES +$ GTM$DST_OWN :== SYSTEM +$ IF F$IDENTIFIER(GTM$DST_OWN,"NAME_TO_NUMBER") .EQ. 0 THEN GTM$DST_OWN :== 1,4 +$ GTM$SYS_DST :== YES +$ GTM$DST_DIR :== GTM_DIST +$ GTM$DST_CRE == GTM$DST_DIR +$ GTM$DST_DEV :== +$ GTM$STARTDB :== YES +$ GTM$MGR_COM :== YES +$ GTM$HLP_DIR :== NO +$ GTM$DEF_DCL :== YES +$ GTM$DEF_SYS :== YES +$ GTM$LNK_LOG :== YES +$ GTM$INSTALL :== YES +$ GTM$DEF_GLD :== YES +$ GTM$GBL_DIR :== MUMPS.GLD +$ GTM$DEF_RTN :== YES +$ GTM$RTN_DIR :== [],GTM$DIST: +$ GTM$PCT_RTN :== YES +$ VMI$CALLBACK ASK GTM$DOPURGE "Do you want to purge files replaced by this installation" 'GTM$DOPURGE' B - + "@VMI$KWD:GTMKITHLP HELP_PURGE" +$ IF .NOT. GTM$DOPURGE THEN VMI$CALLBACK SET PURGE NO +$ VMI$CALLBACK ASK GTM$STD_CNF "Do you want the standard GT.M configuration (performs INSTALL)" 'GTM$STD_CNF' B - + "@VMI$KWD:GTMKITHLP HELP_STD_CNF" +$ IF GTM$STD_CNF +$ THEN +$ GTM$SYS_DST == 1 +$ GTM$STARTDB == 1 +$ GTM$MGR_COM == 1 +$ GTM$HLP_DIR == 0 +$ GTM$DEF_DCL == 1 +$ GTM$DEF_SYS == 1 +$ GTM$INSTALL == 1 +$ GTM$LNK_LOG == 1 +$ GTM$INSTALL == 1 +$ GTM$DEF_GLD == 1 +$ GTM$DEF_RTN == 1 +$ GTM$PCT_RTN == 1 +$ GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] +$ GTM$DIR_TYPE :== COMMON +$ ELSE ! Not standard configuration +$ VMI$CALLBACK ASK GTM$DST_OWN "What UIC should own the GT.M distribution" 'GTM$DST_OWN' S "@VMI$KWD:GTMKITHLP HELP_DST_OWN" +$ GTM$DST_OWN == GTM$DST_OWN - "[" - "]" +$ VMI$CALLBACK ASK GTM$SYS_DST "Do you want the GT.M distribution to go into a System Directory" 'GTM$SYS_DST' B - + "@VMI$KWD:GTMKITHLP HELP_SYS_DST" +$ IF GTM$SYS_DST +$ THEN +$ VMI$CALLBACK ASK GTM$DST_DIR "In what System Directory do you want to place GT.M" 'GTM$DST_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_SYS_DIR" +$ GTM$DST_DIR == GTM$DST_DIR - "[" - "]" +$ GTM$DST_CRE == GTM$DST_DIR +$ GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] +$ GTM$DIR_TYPE :== COMMON +$ ELSE ! Not system disk +$ VMI$CALLBACK ASK GTM$DST_DEV "On which device do you want to place GT.M" "''GTM$DST_DEV'" S "@VMI$KWD:GTMKITHLP HELP_DST_DEV" +$ VMI$CALLBACK ASK GTM$DST_DIR "In what directory on that device do you want to place GT.M" 'GTM$DST_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_DST_DIR" +$ GTM$DST_DEV == GTM$DST_DEV - ":" +$ GTM$DST_DIR == GTM$DST_DIR - "[" - "]" +$ GTM$DST_LOG :== 'GTM$DST_DEV':['GTM$DST_DIR'] +$ GTM$DST_CRE == GTM$DST_LOG +$ GTM$DIR_TYPE :== USER +$ ENDIF ! system disk +$ VMI$CALLBACK ASK GTM$STARTDB "Do you want GTMSTART.COM in the startup database" 'GTM$STARTDB' B - + "@VMI$KWD:GTMKITHLP HELP_STARTDB" +$ IF .NOT. GTM$STARTDB +$ THEN +$ VMI$CALLBACK ASK GTM$MGR_COM "Do you want the GT.M .COM files in SYS$MANAGER" 'GTM$MGR_COM' B - + "@VMI$KWD:GTMKITHLP HELP_MGR_COM" +$ ENDIF +$ VMI$CALLBACK ASK GTM$HLP_DIR "Do you want the GT.M help files in SYS$HELP" 'GTM$HLP_DIR' B "@VMI$KWD:GTMKITHLP HELP_HLP_DIR" +$ VMI$CALLBACK ASK GTM$DEF_DCL "Do you want to define GT.M commands to the system" 'GTM$DEF_DCL' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_DCL" +$ VMI$CALLBACK ASK GTM$DEF_SYS "Do you want to define GT.M logical names in the System Table" 'GTM$DEF_SYS' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_SYS" +$ VMI$CALLBACK ASK GTM$LNK_LOG "Do you want to define the LNK$LIBRARY logical names" 'GTM$LNK_LOG' B - + "@VMI$KWD:GTMKITHLP HELP_LNK_LOG" +$ VMI$CALLBACK ASK GTM$RUN_IVP "Do you want to run the IVP (performs INSTALL)" 'GTM$RUN_IVP' B - + "@VMI$KWD:GTMKITHLP HELP_RUN_IVP" +$ IF GTM$RUN_IVP +$ THEN +$ GTM$PCT_RTN == 1 +$ ELSE +$ VMI$CALLBACK ASK GTM$PCT_RTN "Do you want to compile the GT.M percent routines (performs INSTALL)" 'GTM$PCT_RTN' B - + "@VMI$KWD:GTMKITHLP HELP_PCT_RTN" +$ ENDIF +$ IF (GTM$RUN_IVP .OR. GTM$PCT_RTN) +$ THEN +$ GTM$INSTALL == 1 +$ ELSE +$ VMI$CALLBACK ASK GTM$INSTALL "Do you want to INSTALL the GT.M shareable images now" 'GTM$INSTALL' B - + "@VMI$KWD:GTMKITHLP HELP_INSTALL" +$ ENDIF +$ VMI$CALLBACK ASK GTM$DEF_RTN "Do you want to have a default definition for GTM$ROUTINES" 'GTM$DEF_RTN' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_RTN" +$ IF GTM$DEF_RTN +$ THEN +$ VMI$CALLBACK ASK GTM$RTN_DIR "What is the search specification for GTM$ROUTINES" 'GTM$RTN_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_RTN_DIR" +$ ENDIF +$ VMI$CALLBACK ASK GTM$DEF_GLD "Do you want to have a default definition for GTM$GBLDIR" 'GTM$DEF_GLD' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_GLD" +$ IF GTM$DEF_GLD +$ THEN +$ VMI$CALLBACK ASK GTM$GBL_DIR "What is the file specification for GTM$GBLDIR" 'GTM$GBL_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_GBL_DIR" +$ ENDIF +$ ENDIF ! standard configuration +$! tell them what's happening +$ IF GTM$MGR_COM +$ THEN +$ WRITE SYS$OUTPUT " The following command files are created and copied to SYS$MANAGER:" +$ ELSE +$ WRITE SYS$OUTPUT " The following command files are created:" +$ ENDIF +$ TYPE SYS$INPUT + + GTMINSTALL.COM + GTMLOGICALS.COM + GTMLOGIN.COM + GTMSTART.COM + GTMSTOP.COM + + Each file contains its own user documentation. + + All the questions have been asked. Installation now proceeds without your + manual intervention for about 10-15 minutes. +$ IF GTM$RUN_IVP THEN WRITE SYS$OUTPUT " Finally the Installation Verification Procedure tests the installation." +$ WRITE SYS$OUTPUT "" +$ VMI$CALLBACK CREATE_DIRECTORY 'GTM$DIR_TYPE' 'GTM$DST_CRE' "/OWNER_UIC=[''GTM$DST_OWN'] /PROTECTION=(WO:RE)" +$ VMI$CALLBACK RESTORE_SAVESET B +$ VMI$CALLBACK RESTORE_SAVESET C +$ WRITE SYS$OUTPUT "" +$ VMI$CALLBACK MESSAGE I CRECOM "Creating command files." +$! Create GTMINSTALL.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMINSTALL.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMINSTALL.COM installs GTMSECSHR and other GT.M images." +$ WRITE OUFILE "$! GTMSECSHR is a small protected image and must be installed." +$ WRITE OUFILE "$! GTMSHR is the run-time library and is installed for performance." +$ WRITE OUFILE "$! GTM$DMOD and MCOMPILE are small images frequently used in development." +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$ INSTALL" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER/PROTECTED GTMSECSHR" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER GTMSHR" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER GTM$DMOD" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER MCOMPILE" +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMLOGICALS.COM +$ GTM$HLP_LOG :== GTM$DIST +$ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== SYS$HELP +$ OPEN /WRITE OUFILE VMI$KWD:GTMLOGICALS.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMLOGICALS.COM defines the logical names required to use GT.M." +$ WRITE OUFILE "$! By default the definitions are placed in the PROCESS table." +$ WRITE OUFILE "$! Parameter 1, if supplied should be the name of a logical name table" +$ WRITE OUFILE "$! and/or the mode of definition." +$ WRITE OUFILE "$! Assignments in a ""permanent"" table reduce GT.M activation time." +$ WRITE OUFILE "$!" +$ IF GTM$LNK_LOG THEN WRITE OUFILE "$! The LNK$LIBRARY names many require adjustment to your environment." +$ IF GTM$DEF_GLD THEN WRITE OUFILE "$! GTM$GBLDIR is defined to provide default access to a global directory." +$ IF GTM$DEF_RTN THEN WRITE OUFILE "$! GTM$ROUTINES is defined to provide access to the GT.M utilities." +$ IF GTM$DEF_RTN THEN WRITE OUFILE "$! You may wish to define a different structure for $ZROUTINES." +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$ IF (P1 .NES. """") .AND. (F$EXTRACT(0,1,P1) .NES. ""/"") THEN P1 := /'P1" +$ WRITE OUFILE "$ DEFINE 'P1' GTM$DIST ''GTM$DST_LOG'" +$ IF GTM$DEF_GLD THEN WRITE OUFILE "$ DEFINE 'P1' GTM$GBLDIR ''GTM$GBL_DIR'" +$ IF GTM$DEF_RTN THEN WRITE OUFILE "$ DEFINE 'P1' GTM$ROUTINES ""''GTM$RTN_DIR'""" +$ WRITE OUFILE "$ DEFINE 'P1' GTM$HELP ''GTM$HLP_LOG'" +$ WRITE OUFILE "$ DEFINE 'P1' GTMSHR GTM$DIST:GTMSHR.EXE" +$ WRITE OUFILE "$ DEFINE 'P1' GTMSECSHR GTM$DIST:GTMSECSHR.EXE" +$ WRITE OUFILE "$ DEFINE 'P1' GTM$DMOD GTM$DIST:GTM$DMOD.EXE" +$ WRITE OUFILE "$ DEFINE 'P1' MCOMPILE GTM$DIST:MCOMPILE.EXE" +$ IF GTM$LNK_LOG +$ THEN +$ N1 = 0 +$ DN = 0 +$ T1 = F$TRNLNM("LNK$LIBRARY") +$ IF (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) +$ THEN +$ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY GTM$DIST:GTMLIB.OLB" +$ DN = 1 +$ ELSE ! lnk$library is in use +$LNK_LOOP: +$ N1 = N1 + 1 +$ T1 = F$TRNLNM("LNK$LIBRARY_''N1'") +$ IF (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) +$ THEN +$ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1' GTM$DIST:GTMLIB.OLB" +$ DN = 1 +$ ENDIF +$ IF (.NOT. DN) .AND. (N1 .LT. 998) THEN GOTO LNK_LOOP +$ ENDIF ! gtmlib handling +$ IF DN ! placed gtmlib +$ THEN +$ N1 = N1 + 1 +$ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1' GTM$DIST:GTMSHR.OLB" +$ ELSE +$ VMI$CALLBACK MESSAGE I NOLNKLOG "No LNK$LIBRARY logical names available" +$ ENDIF +$ ENDIF ! setting up LNK$LIBRARYs +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMLOGIN.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMLOGIN.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMLOGIN.COM performs process specific setup for GT.M." +$ WRITE OUFILE "$! It calls GTMLOGICALS.COM if the logical names are not" +$ WRITE OUFILE "$! in the SYSTEM table." +$ WRITE OUFILE "$! It defines symbols to access GT.M images." +$ WRITE OUFILE "$! It defines GT.M commands locally if they are not defined to the system." +$ WRITE OUFILE "$! When the command and logical names are not defined on a process level," +$ WRITE OUFILE "$! a production user may save start-up time by not using GTMLOGIN." +$ WRITE OUFILE "$! CCE is infrequently used, but may be defined as a foreign command." +$ WRITE OUFILE "$!" +$ IF .NOT. GTM$DEF_SYS +$ THEN +$ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" +$ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" +$ WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" +$ ENDIF +$ IF .NOT. GTM$DEF_DCL THEN WRITE OUFILE "$ SET COMMAND GTM$DIST:GTMCOMMANDS.CLD" +$ WRITE OUFILE "$ DSE :== $GTM$DIST:DSE.EXE ! Database System Editor" +$ WRITE OUFILE "$ GDE :== $GTM$DIST:GDE.EXE ! Global Directory Editor" +$ WRITE OUFILE "$ GTM :== MUMPS/DIRECT ! Direct Mode MUMPS" +$ WRITE OUFILE "$ LKE :== $GTM$DIST:LKE.EXE ! Lock Editor" +$ WRITE OUFILE "$ MUPI*P :== $GTM$DIST:MUPIP.EXE ! MUMPS Peripheral Interchange Program" +$ WRITE OUFILE "$ EXIT" +$ WRITE OUFILE "$ CCE :== $GTM$DIST:CCE.EXE ! GT.CX Operator Interface Program" +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMSTART.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMSTART.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMSTART.COM should be placed in the VMS startup database." +$ WRITE OUFILE "$! It invokes GTMLOGICALS.COM and GTMINSTALL.COM." +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" +$ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" +$ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P1 .EQS. """" .OR. (P1 .EQS. ""FULL"") THEN P1 := SYSTEM/EXEC" +$ WRITE OUFILE "$ @'dir'GTMLOGICALS 'P1'" +$ WRITE OUFILE "$ @'dir'GTMINSTALL" +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMSTOP.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMSTOP.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMSTOP.COM stops all the active GT.M processes and does a RUNDOWN." +$ WRITE OUFILE "$! Place an invocation or copy of this procedure in the site specific" +$ WRITE OUFILE "$! shutdown: SYS$MANAGER:SYSHUTDWN to ensure all GT.M databases are" +$ WRITE OUFILE "$! properly closed before VMS terminates. GTMSTOP should follow" +$ WRITE OUFILE "$! GTCMSTOP and precede GTCXSTOP, if they are used." +$ WRITE OUFILE "$! If GTMSTOP is not intended to disable subsequent use of GT.M," +$ WRITE OUFILE "$! add a comment (!) before the INSTALL REMOVE GTMSECSHR." +$ WRITE OUFILE "$!" +$ IF .NOT. GTM$DEF_SYS +$ THEN +$ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" +$ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" +$ WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" +$ ENDIF +$ WRITE OUFILE "$ MUPIP := $GTM$DIST:MUPIP.EXE" +$ WRITE OUFILE "$ STOP := $GTM$DIST:GTM$STOP" +$ WRITE OUFILE "$ STOP 'P1'" +$ WRITE OUFILE "$ MUPIP RUNDOWN" +$ WRITE OUFILE "$ INSTALL REMOVE GTMSECSHR" +$ WRITE OUFILE "$ EXIT" +$ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P2 .EQS. """" THEN P2 := /SYSTEM/EXEC" +$ WRITE OUFILE "$ DEASSIGN 'P2' GTMSECSHR" +$ CLOSE OUFILE +$ VMI$CALLBACK MESSAGE I PREINS "Preparing files for installation." +$! GTMFILES.KIT must be maintained as kit contents change +$ GTM$HLP_LOG == GTM$DST_LOG +$ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== VMI$ROOT:[SYSHLP] +$ OPEN /WRITE OUFILE VMI$KWD:GTMFILES.KIT +$ IF GTM$MGR_COM +$ THEN +$ WRITE OUFILE "GTM$ GTMINSTALL.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMLOGICALS.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMLOGIN.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMSTART.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMSTOP.COM VMI$ROOT:[SYSMGR] C" +$ ENDIF +$ WRITE OUFILE "GTM$ GTMINSTALL.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMLOGICALS.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMLOGIN.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSTART.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSTOP.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ DSE.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ GDE.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ LKE.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ MUMPS.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ MUPIP.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ GTMLIB.OLB ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSHR.OLB ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMZCALL.MLB ''GTM$DST_LOG'" +$ IF ALPHA +$ THEN +$ WRITE OUFILE "GTM$ GTM$DEFAULTS.M64 ''GTM$DST_LOG'" +$ ELSE +$ WRITE OUFILE "GTM$ GTM$DEFAULTS.MAR ''GTM$DST_LOG'" +$ ENDIF +$ WRITE OUFILE "GTM$ GTM$CE.H ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMCOLLECT.OPT ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMCOMMANDS.CLD ''GTM$DST_LOG' C" +$ WRITE OUFILE "GTM$ *.M ''GTM$DST_LOG'" +$ CLOSE OUFILE +$! GTMIMAGES.KIT must be maintained as kit contents change +$ OPEN /WRITE OUFILE VMI$KWD:GTMIMAGES.KIT +$ WRITE OUFILE "GTM$ GTMSECSHR.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSHR.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ DSE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GDE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTM$DMOD.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ LKE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ MCOMPILE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ MUPIP.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTM$STOP.EXE ''GTM$DST_LOG'" +$ CLOSE OUFILE +$! Provide with file.KITs +$ VMI$CALLBACK PROVIDE_FILE "" VMI$KWD:GTMFILES.KIT "" T +$ VMI$CALLBACK PROVIDE_IMAGE "" VMI$KWD:GTMIMAGES.KIT "" T +$ VMI$CALLBACK MESSAGE I FININS "Finalizing the installation." +$ IF GTM$DEF_DCL THEN VMI$CALLBACK PROVIDE_DCL_COMMAND GTMCOMMANDS.CLD +$ IF GTM$STARTDB THEN VMI$CALLBACK MODIFY_STARTUP_DB ADD GTMSTART.COM LPMAIN +$! GTM$INSTALL is TRUE if GTM$RUN_IVP or GTM$PCT_RTN +$ IF GTM$INSTALL THEN VMI$CALLBACK SET POSTINSTALL YES +$ IF GTM$RUN_IVP THEN VMI$CALLBACK SET IVP YES +$ EXIT VMI$_SUCCESS +$! +$POSTINSTALL: +$ ON CONTROL_Y THEN EXIT VMI$_FAILURE +$! remove MUPIP from command tables for change from V2.4 to V2.5 +$ SET NOON +$ DEFINE /USER_MODE SYS$OUTPUT NL: +$ DEFINE /USER_MODE SYS$ERROR NL: +$ SET COMMAND /TABLE=SYS$COMMON:[SYSLIB]DCLTABLES /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES /DELETE=MUPIP +$ DEFINE /USER_MODE SYS$OUTPUT NL: +$ DEFINE /USER_MODE SYS$ERROR NL: +$ SET COMMAND /DELETE=MUPIP +$ SET ON +$ IF GTM$MGR_COM +$ THEN +$ T1 := SYS$MANAGER: +$ ELSE +$ T1 = GTM$DST_LOG +$ ENDIF +$ @'T1'GTMSTART +$ @'T1'GTMLOGIN +$ ON CONTROL_Y THEN EXIT VMI$_FAILURE +$ SET DEFAULT GTM$DIST +$ T2 = F$ENVIRONMENT("PROTECTION") +$ SET PROTECTION=(S=REWD,O=REWD,G=REWD,W=RE)/DEFAULT +$ MUMPS GTM$DMOD.M +$ IF GTM$LNK_LOG +$ THEN +$ T1 := +$ ELSE +$ T1 :=,GTMLIB.OLB/LIB,GTMSHR.OLB/LIB +$ ENDIF +$ LINK GTM$DMOD.OBJ/NOTRACE'T1 +$ IF GTM$PCT_RTN +$ THEN +$ TYPE SYS$INPUT + + Compiling the GT.M percent (%) routines. +$ MUMPS * +$ IF GTM$DOPURGE THEN PURGE *.* +$ SET DEFAULT VMI$KWD +$ ENDIF ! percent routines +$ SET PROTECTION=('T2')/DEFAULT +$ EXIT VMI$_SUCCESS +$! +$IVP: +$! The real Installation Verification Procedure. +$ TYPE SYS$INPUT + + GT.M Installation Verification Procedure + +$! Extract the IVP .COM file from the text library. +$ LIBRARIAN /EXTRACT=GTM$IVP /OUTPUT=GTM$IVP.COM GTM$IVP.TLB +$ @GTM$IVP +$ EXIT $STATUS +$! diff --git a/samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com b/samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com new file mode 100644 index 00000000..65e9d0cb --- /dev/null +++ b/samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com @@ -0,0 +1,867 @@ +$! make libz under VMS written by +$! Martin P.J. Zinser +$! +$! In case of problems with the install you might contact me at +$! zinser@zinser.no-ip.info(preferred) or +$! martin.zinser@eurexchange.com (work) +$! +$! Make procedure history for Zlib +$! +$!------------------------------------------------------------------------------ +$! Version history +$! 0.01 20060120 First version to receive a number +$! 0.02 20061008 Adapt to new Makefile.in +$! 0.03 20091224 Add support for large file check +$! 0.04 20100110 Add new gzclose, gzlib, gzread, gzwrite +$! 0.05 20100221 Exchange zlibdefs.h by zconf.h.in +$! 0.06 20120111 Fix missing amiss_err, update zconf_h.in, fix new exmples +$! subdir path, update module search in makefile.in +$! 0.07 20120115 Triggered by work done by Alexey Chupahin completly redesigned +$! shared image creation +$! 0.08 20120219 Make it work on VAX again, pre-load missing symbols to shared +$! image +$! 0.09 20120305 SMS. P1 sets builder ("MMK", "MMS", " " (built-in)). +$! "" -> automatic, preference: MMK, MMS, built-in. +$! +$ on error then goto err_exit +$! +$ true = 1 +$ false = 0 +$ tmpnam = "temp_" + f$getjpi("","pid") +$ tt = tmpnam + ".txt" +$ tc = tmpnam + ".c" +$ th = tmpnam + ".h" +$ define/nolog tconfig 'th' +$ its_decc = false +$ its_vaxc = false +$ its_gnuc = false +$ s_case = False +$! +$! Setup variables holding "config" information +$! +$ Make = "''p1'" +$ name = "Zlib" +$ version = "?.?.?" +$ v_string = "ZLIB_VERSION" +$ v_file = "zlib.h" +$ ccopt = "/include = []" +$ lopts = "" +$ dnsrl = "" +$ aconf_in_file = "zconf.h.in#zconf.h_in#zconf_h.in" +$ conf_check_string = "" +$ linkonly = false +$ optfile = name + ".opt" +$ mapfile = name + ".map" +$ libdefs = "" +$ vax = f$getsyi("HW_MODEL").lt.1024 +$ axp = f$getsyi("HW_MODEL").ge.1024 .and. f$getsyi("HW_MODEL").lt.4096 +$ ia64 = f$getsyi("HW_MODEL").ge.4096 +$! +$! 2012-03-05 SMS. +$! Why is this needed? And if it is needed, why not simply ".not. vax"? +$! +$!!! if axp .or. ia64 then set proc/parse=extended +$! +$ whoami = f$parse(f$environment("Procedure"),,,,"NO_CONCEAL") +$ mydef = F$parse(whoami,,,"DEVICE") +$ mydir = f$parse(whoami,,,"DIRECTORY") - "][" +$ myproc = f$parse(whoami,,,"Name") + f$parse(whoami,,,"type") +$! +$! Check for MMK/MMS +$! +$ if (Make .eqs. "") +$ then +$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" +$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" +$ else +$ Make = f$edit( Make, "trim") +$ endif +$! +$ gosub find_version +$! +$ open/write topt tmp.opt +$ open/write optf 'optfile' +$! +$ gosub check_opts +$! +$! Look for the compiler used +$! +$ gosub check_compiler +$ close topt +$ close optf +$! +$ if its_decc +$ then +$ ccopt = "/prefix=all" + ccopt +$ if f$trnlnm("SYS") .eqs. "" +$ then +$ if axp +$ then +$ define sys sys$library: +$ else +$ ccopt = "/decc" + ccopt +$ define sys decc$library_include: +$ endif +$ endif +$! +$! 2012-03-05 SMS. +$! Why /NAMES = AS_IS? Why not simply ".not. vax"? And why not on VAX? +$! +$ if axp .or. ia64 +$ then +$ ccopt = ccopt + "/name=as_is/opt=(inline=speed)" +$ s_case = true +$ endif +$ endif +$ if its_vaxc .or. its_gnuc +$ then +$ if f$trnlnm("SYS").eqs."" then define sys sys$library: +$ endif +$! +$! Build a fake configure input header +$! +$ open/write conf_hin config.hin +$ write conf_hin "#undef _LARGEFILE64_SOURCE" +$ close conf_hin +$! +$! +$ i = 0 +$FIND_ACONF: +$ fname = f$element(i,"#",aconf_in_file) +$ if fname .eqs. "#" then goto AMISS_ERR +$ if f$search(fname) .eqs. "" +$ then +$ i = i + 1 +$ goto find_aconf +$ endif +$ open/read/err=aconf_err aconf_in 'fname' +$ open/write aconf zconf.h +$ACONF_LOOP: +$ read/end_of_file=aconf_exit aconf_in line +$ work = f$edit(line, "compress,trim") +$ if f$extract(0,6,work) .nes. "#undef" +$ then +$ if f$extract(0,12,work) .nes. "#cmakedefine" +$ then +$ write aconf line +$ endif +$ else +$ cdef = f$element(1," ",work) +$ gosub check_config +$ endif +$ goto aconf_loop +$ACONF_EXIT: +$ write aconf "" +$ write aconf "/* VMS specifics added by make_vms.com: */" +$ write aconf "#define VMS 1" +$ write aconf "#include " +$ write aconf "#include " +$ write aconf "#ifdef _LARGEFILE" +$ write aconf "# define off64_t __off64_t" +$ write aconf "# define fopen64 fopen" +$ write aconf "# define fseeko64 fseeko" +$ write aconf "# define lseek64 lseek" +$ write aconf "# define ftello64 ftell" +$ write aconf "#endif" +$ write aconf "#if !defined( __VAX) && (__CRTL_VER >= 70312000)" +$ write aconf "# define HAVE_VSNPRINTF" +$ write aconf "#endif" +$ close aconf_in +$ close aconf +$ if f$search("''th'") .nes. "" then delete 'th';* +$! Build the thing plain or with mms +$! +$ write sys$output "Compiling Zlib sources ..." +$ if make.eqs."" +$ then +$ if (f$search( "example.obj;*") .nes. "") then delete example.obj;* +$ if (f$search( "minigzip.obj;*") .nes. "") then delete minigzip.obj;* +$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" - + adler32.c zlib.h zconf.h +$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" - + compress.c zlib.h zconf.h +$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" - + crc32.c zlib.h zconf.h +$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" - + deflate.c deflate.h zutil.h zlib.h zconf.h +$ CALL MAKE gzclose.OBJ "CC ''CCOPT' gzclose" - + gzclose.c zutil.h zlib.h zconf.h +$ CALL MAKE gzlib.OBJ "CC ''CCOPT' gzlib" - + gzlib.c zutil.h zlib.h zconf.h +$ CALL MAKE gzread.OBJ "CC ''CCOPT' gzread" - + gzread.c zutil.h zlib.h zconf.h +$ CALL MAKE gzwrite.OBJ "CC ''CCOPT' gzwrite" - + gzwrite.c zutil.h zlib.h zconf.h +$ CALL MAKE infback.OBJ "CC ''CCOPT' infback" - + infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h +$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" - + inffast.c zutil.h zlib.h zconf.h inffast.h +$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" - + inflate.c zutil.h zlib.h zconf.h infblock.h +$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" - + inftrees.c zutil.h zlib.h zconf.h inftrees.h +$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" - + trees.c deflate.h zutil.h zlib.h zconf.h +$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" - + uncompr.c zlib.h zconf.h +$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" - + zutil.c zutil.h zlib.h zconf.h +$ write sys$output "Building Zlib ..." +$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ +$ write sys$output "Building example..." +$ CALL MAKE example.OBJ "CC ''CCOPT' [.test]example" - + [.test]example.c zlib.h zconf.h +$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb +$ write sys$output "Building minigzip..." +$ CALL MAKE minigzip.OBJ "CC ''CCOPT' [.test]minigzip" - + [.test]minigzip.c zlib.h zconf.h +$ call make minigzip.exe - + "LINK minigzip,libz.olb/lib" - + minigzip.obj libz.olb +$ else +$ gosub crea_mms +$ write sys$output "Make ''name' ''version' with ''Make' " +$ 'make' +$ endif +$! +$! Create shareable image +$! +$ gosub crea_olist +$ write sys$output "Creating libzshr.exe" +$ call map_2_shopt 'mapfile' 'optfile' +$ LINK_'lopts'/SHARE=libzshr.exe modules.opt/opt,'optfile'/opt +$ write sys$output "Zlib build completed" +$ delete/nolog tmp.opt;* +$ exit +$AMISS_ERR: +$ write sys$output "No source for config.hin found." +$ write sys$output "Tried any of ''aconf_in_file'" +$ goto err_exit +$CC_ERR: +$ write sys$output "C compiler required to build ''name'" +$ goto err_exit +$ERR_EXIT: +$ set message/facil/ident/sever/text +$ close/nolog optf +$ close/nolog topt +$ close/nolog aconf_in +$ close/nolog aconf +$ close/nolog out +$ close/nolog min +$ close/nolog mod +$ close/nolog h_in +$ write sys$output "Exiting..." +$ exit 2 +$! +$! +$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES +$ V = 'F$Verify(0) +$! P1 = What we are trying to make +$! P2 = Command to make it +$! P3 - P8 What it depends on +$ +$ If F$Search(P1) .Eqs. "" Then Goto Makeit +$ Time = F$CvTime(F$File(P1,"RDT")) +$arg=3 +$Loop: +$ Argument = P'arg +$ If Argument .Eqs. "" Then Goto Exit +$ El=0 +$Loop2: +$ File = F$Element(El," ",Argument) +$ If File .Eqs. " " Then Goto Endl +$ AFile = "" +$Loop3: +$ OFile = AFile +$ AFile = F$Search(File) +$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl +$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit +$ Goto Loop3 +$NextEL: +$ El = El + 1 +$ Goto Loop2 +$EndL: +$ arg=arg+1 +$ If arg .Le. 8 Then Goto Loop +$ Goto Exit +$ +$Makeit: +$ VV=F$VERIFY(0) +$ write sys$output P2 +$ 'P2 +$ VV='F$Verify(VV) +$Exit: +$ If V Then Set Verify +$ENDSUBROUTINE +$!------------------------------------------------------------------------------ +$! +$! Check command line options and set symbols accordingly +$! +$!------------------------------------------------------------------------------ +$! Version history +$! 0.01 20041206 First version to receive a number +$! 0.02 20060126 Add new "HELP" target +$ CHECK_OPTS: +$ i = 1 +$ OPT_LOOP: +$ if i .lt. 9 +$ then +$ cparm = f$edit(p'i',"upcase") +$! +$! Check if parameter actually contains something +$! +$ if f$edit(cparm,"trim") .nes. "" +$ then +$ if cparm .eqs. "DEBUG" +$ then +$ ccopt = ccopt + "/noopt/deb" +$ lopts = lopts + "/deb" +$ endif +$ if f$locate("CCOPT=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ ccopt = ccopt + f$extract(start,len,cparm) +$ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) - + then s_case = true +$ endif +$ if cparm .eqs. "LINK" then linkonly = true +$ if f$locate("LOPTS=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ lopts = lopts + f$extract(start,len,cparm) +$ endif +$ if f$locate("CC=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ cc_com = f$extract(start,len,cparm) + if (cc_com .nes. "DECC") .and. - + (cc_com .nes. "VAXC") .and. - + (cc_com .nes. "GNUC") +$ then +$ write sys$output "Unsupported compiler choice ''cc_com' ignored" +$ write sys$output "Use DECC, VAXC, or GNUC instead" +$ else +$ if cc_com .eqs. "DECC" then its_decc = true +$ if cc_com .eqs. "VAXC" then its_vaxc = true +$ if cc_com .eqs. "GNUC" then its_gnuc = true +$ endif +$ endif +$ if f$locate("MAKE=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ mmks = f$extract(start,len,cparm) +$ if (mmks .eqs. "MMK") .or. (mmks .eqs. "MMS") +$ then +$ make = mmks +$ else +$ write sys$output "Unsupported make choice ''mmks' ignored" +$ write sys$output "Use MMK or MMS instead" +$ endif +$ endif +$ if cparm .eqs. "HELP" then gosub bhelp +$ endif +$ i = i + 1 +$ goto opt_loop +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Look for the compiler used +$! +$! Version history +$! 0.01 20040223 First version to receive a number +$! 0.02 20040229 Save/set value of decc$no_rooted_search_lists +$! 0.03 20060202 Extend handling of GNU C +$! 0.04 20090402 Compaq -> hp +$CHECK_COMPILER: +$ if (.not. (its_decc .or. its_vaxc .or. its_gnuc)) +$ then +$ its_decc = (f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "") +$ its_vaxc = .not. its_decc .and. (F$Search("SYS$System:VAXC.Exe") .nes. "") +$ its_gnuc = .not. (its_decc .or. its_vaxc) .and. (f$trnlnm("gnu_cc") .nes. "") +$ endif +$! +$! Exit if no compiler available +$! +$ if (.not. (its_decc .or. its_vaxc .or. its_gnuc)) +$ then goto CC_ERR +$ else +$ if its_decc +$ then +$ write sys$output "CC compiler check ... hp C" +$ if f$trnlnm("decc$no_rooted_search_lists") .nes. "" +$ then +$ dnrsl = f$trnlnm("decc$no_rooted_search_lists") +$ endif +$ define/nolog decc$no_rooted_search_lists 1 +$ else +$ if its_vaxc then write sys$output "CC compiler check ... VAX C" +$ if its_gnuc +$ then +$ write sys$output "CC compiler check ... GNU C" +$ if f$trnlnm(topt) then write topt "gnu_cc:[000000]gcclib.olb/lib" +$ if f$trnlnm(optf) then write optf "gnu_cc:[000000]gcclib.olb/lib" +$ cc = "gcc" +$ endif +$ if f$trnlnm(topt) then write topt "sys$share:vaxcrtl.exe/share" +$ if f$trnlnm(optf) then write optf "sys$share:vaxcrtl.exe/share" +$ endif +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! If MMS/MMK are available dump out the descrip.mms if required +$! +$CREA_MMS: +$ write sys$output "Creating descrip.mms..." +$ create descrip.mms +$ open/append out descrip.mms +$ copy sys$input: out +$ deck +# descrip.mms: MMS description file for building zlib on VMS +# written by Martin P.J. Zinser +# + +OBJS = adler32.obj, compress.obj, crc32.obj, gzclose.obj, gzlib.obj\ + gzread.obj, gzwrite.obj, uncompr.obj, infback.obj\ + deflate.obj, trees.obj, zutil.obj, inflate.obj, \ + inftrees.obj, inffast.obj + +$ eod +$ write out "CFLAGS=", ccopt +$ write out "LOPTS=", lopts +$ write out "all : example.exe minigzip.exe libz.olb" +$ copy sys$input: out +$ deck + @ write sys$output " Example applications available" + +libz.olb : libz.olb($(OBJS)) + @ write sys$output " libz available" + +example.exe : example.obj libz.olb + link $(LOPTS) example,libz.olb/lib + +minigzip.exe : minigzip.obj libz.olb + link $(LOPTS) minigzip,libz.olb/lib + +clean : + delete *.obj;*,libz.olb;*,*.opt;*,*.exe;* + + +# Other dependencies. +adler32.obj : adler32.c zutil.h zlib.h zconf.h +compress.obj : compress.c zlib.h zconf.h +crc32.obj : crc32.c zutil.h zlib.h zconf.h +deflate.obj : deflate.c deflate.h zutil.h zlib.h zconf.h +example.obj : [.test]example.c zlib.h zconf.h +gzclose.obj : gzclose.c zutil.h zlib.h zconf.h +gzlib.obj : gzlib.c zutil.h zlib.h zconf.h +gzread.obj : gzread.c zutil.h zlib.h zconf.h +gzwrite.obj : gzwrite.c zutil.h zlib.h zconf.h +inffast.obj : inffast.c zutil.h zlib.h zconf.h inftrees.h inffast.h +inflate.obj : inflate.c zutil.h zlib.h zconf.h +inftrees.obj : inftrees.c zutil.h zlib.h zconf.h inftrees.h +minigzip.obj : [.test]minigzip.c zlib.h zconf.h +trees.obj : trees.c deflate.h zutil.h zlib.h zconf.h +uncompr.obj : uncompr.c zlib.h zconf.h +zutil.obj : zutil.c zutil.h zlib.h zconf.h +infback.obj : infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h +$ eod +$ close out +$ return +$!------------------------------------------------------------------------------ +$! +$! Read list of core library sources from makefile.in and create options +$! needed to build shareable image +$! +$CREA_OLIST: +$ open/read min makefile.in +$ open/write mod modules.opt +$ src_check_list = "OBJZ =#OBJG =" +$MRLOOP: +$ read/end=mrdone min rec +$ i = 0 +$SRC_CHECK_LOOP: +$ src_check = f$element(i, "#", src_check_list) +$ i = i+1 +$ if src_check .eqs. "#" then goto mrloop +$ if (f$extract(0,6,rec) .nes. src_check) then goto src_check_loop +$ rec = rec - src_check +$ gosub extra_filnam +$ if (f$element(1,"\",rec) .eqs. "\") then goto mrloop +$MRSLOOP: +$ read/end=mrdone min rec +$ gosub extra_filnam +$ if (f$element(1,"\",rec) .nes. "\") then goto mrsloop +$MRDONE: +$ close min +$ close mod +$ return +$!------------------------------------------------------------------------------ +$! +$! Take record extracted in crea_olist and split it into single filenames +$! +$EXTRA_FILNAM: +$ myrec = f$edit(rec - "\", "trim,compress") +$ i = 0 +$FELOOP: +$ srcfil = f$element(i," ", myrec) +$ if (srcfil .nes. " ") +$ then +$ write mod f$parse(srcfil,,,"NAME"), ".obj" +$ i = i + 1 +$ goto feloop +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Find current Zlib version number +$! +$FIND_VERSION: +$ open/read h_in 'v_file' +$hloop: +$ read/end=hdone h_in rec +$ rec = f$edit(rec,"TRIM") +$ if (f$extract(0,1,rec) .nes. "#") then goto hloop +$ rec = f$edit(rec - "#", "TRIM") +$ if f$element(0," ",rec) .nes. "define" then goto hloop +$ if f$element(1," ",rec) .eqs. v_string +$ then +$ version = 'f$element(2," ",rec)' +$ goto hdone +$ endif +$ goto hloop +$hdone: +$ close h_in +$ return +$!------------------------------------------------------------------------------ +$! +$CHECK_CONFIG: +$! +$ in_ldef = f$locate(cdef,libdefs) +$ if (in_ldef .lt. f$length(libdefs)) +$ then +$ write aconf "#define ''cdef' 1" +$ libdefs = f$extract(0,in_ldef,libdefs) + - + f$extract(in_ldef + f$length(cdef) + 1, - + f$length(libdefs) - in_ldef - f$length(cdef) - 1, - + libdefs) +$ else +$ if (f$type('cdef') .eqs. "INTEGER") +$ then +$ write aconf "#define ''cdef' ", 'cdef' +$ else +$ if (f$type('cdef') .eqs. "STRING") +$ then +$ write aconf "#define ''cdef' ", """", '''cdef'', """" +$ else +$ gosub check_cc_def +$ endif +$ endif +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Check if this is a define relating to the properties of the C/C++ +$! compiler +$! +$ CHECK_CC_DEF: +$ if (cdef .eqs. "_LARGEFILE64_SOURCE") +$ then +$ copy sys$input: 'tc' +$ deck +#include "tconfig" +#define _LARGEFILE +#include + +int main(){ +FILE *fp; + fp = fopen("temp.txt","r"); + fseeko(fp,1,SEEK_SET); + fclose(fp); +} + +$ eod +$ test_inv = false +$ comm_h = false +$ gosub cc_prop_check +$ return +$ endif +$ write aconf "/* ", line, " */" +$ return +$!------------------------------------------------------------------------------ +$! +$! Check for properties of C/C++ compiler +$! +$! Version history +$! 0.01 20031020 First version to receive a number +$! 0.02 20031022 Added logic for defines with value +$! 0.03 20040309 Make sure local config file gets not deleted +$! 0.04 20041230 Also write include for configure run +$! 0.05 20050103 Add processing of "comment defines" +$CC_PROP_CHECK: +$ cc_prop = true +$ is_need = false +$ is_need = (f$extract(0,4,cdef) .eqs. "NEED") .or. (test_inv .eq. true) +$ if f$search(th) .eqs. "" then create 'th' +$ set message/nofac/noident/nosever/notext +$ on error then continue +$ cc 'tmpnam' +$ if .not. ($status) then cc_prop = false +$ on error then continue +$! The headers might lie about the capabilities of the RTL +$ link 'tmpnam',tmp.opt/opt +$ if .not. ($status) then cc_prop = false +$ set message/fac/ident/sever/text +$ on error then goto err_exit +$ delete/nolog 'tmpnam'.*;*/exclude='th' +$ if (cc_prop .and. .not. is_need) .or. - + (.not. cc_prop .and. is_need) +$ then +$ write sys$output "Checking for ''cdef'... yes" +$ if f$type('cdef_val'_yes) .nes. "" +$ then +$ if f$type('cdef_val'_yes) .eqs. "INTEGER" - + then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_yes) +$ if f$type('cdef_val'_yes) .eqs. "STRING" - + then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_yes) +$ else +$ call write_config f$fao("#define !AS 1",cdef) +$ endif +$ if (cdef .eqs. "HAVE_FSEEKO") .or. (cdef .eqs. "_LARGE_FILES") .or. - + (cdef .eqs. "_LARGEFILE64_SOURCE") then - + call write_config f$string("#define _LARGEFILE 1") +$ else +$ write sys$output "Checking for ''cdef'... no" +$ if (comm_h) +$ then + call write_config f$fao("/* !AS */",line) +$ else +$ if f$type('cdef_val'_no) .nes. "" +$ then +$ if f$type('cdef_val'_no) .eqs. "INTEGER" - + then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_no) +$ if f$type('cdef_val'_no) .eqs. "STRING" - + then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_no) +$ else +$ call write_config f$fao("#undef !AS",cdef) +$ endif +$ endif +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Check for properties of C/C++ compiler with multiple result values +$! +$! Version history +$! 0.01 20040127 First version +$! 0.02 20050103 Reconcile changes from cc_prop up to version 0.05 +$CC_MPROP_CHECK: +$ cc_prop = true +$ i = 1 +$ idel = 1 +$ MT_LOOP: +$ if f$type(result_'i') .eqs. "STRING" +$ then +$ set message/nofac/noident/nosever/notext +$ on error then continue +$ cc 'tmpnam'_'i' +$ if .not. ($status) then cc_prop = false +$ on error then continue +$! The headers might lie about the capabilities of the RTL +$ link 'tmpnam'_'i',tmp.opt/opt +$ if .not. ($status) then cc_prop = false +$ set message/fac/ident/sever/text +$ on error then goto err_exit +$ delete/nolog 'tmpnam'_'i'.*;* +$ if (cc_prop) +$ then +$ write sys$output "Checking for ''cdef'... ", mdef_'i' +$ if f$type(mdef_'i') .eqs. "INTEGER" - + then call write_config f$fao("#define !AS !UL",cdef,mdef_'i') +$ if f$type('cdef_val'_yes) .eqs. "STRING" - + then call write_config f$fao("#define !AS !AS",cdef,mdef_'i') +$ goto msym_clean +$ else +$ i = i + 1 +$ goto mt_loop +$ endif +$ endif +$ write sys$output "Checking for ''cdef'... no" +$ call write_config f$fao("#undef !AS",cdef) +$ MSYM_CLEAN: +$ if (idel .le. msym_max) +$ then +$ delete/sym mdef_'idel' +$ idel = idel + 1 +$ goto msym_clean +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Write configuration to both permanent and temporary config file +$! +$! Version history +$! 0.01 20031029 First version to receive a number +$! +$WRITE_CONFIG: SUBROUTINE +$ write aconf 'p1' +$ open/append confh 'th' +$ write confh 'p1' +$ close confh +$ENDSUBROUTINE +$!------------------------------------------------------------------------------ +$! +$! Analyze the project map file and create the symbol vector for a shareable +$! image from it +$! +$! Version history +$! 0.01 20120128 First version +$! 0.02 20120226 Add pre-load logic +$! +$ MAP_2_SHOPT: Subroutine +$! +$ SAY := "WRITE_ SYS$OUTPUT" +$! +$ IF F$SEARCH("''P1'") .EQS. "" +$ THEN +$ SAY "MAP_2_SHOPT-E-NOSUCHFILE: Error, inputfile ''p1' not available" +$ goto exit_m2s +$ ENDIF +$ IF "''P2'" .EQS. "" +$ THEN +$ SAY "MAP_2_SHOPT: Error, no output file provided" +$ goto exit_m2s +$ ENDIF +$! +$ module1 = "deflate#deflateEnd#deflateInit_#deflateParams#deflateSetDictionary" +$ module2 = "gzclose#gzerror#gzgetc#gzgets#gzopen#gzprintf#gzputc#gzputs#gzread" +$ module3 = "gzseek#gztell#inflate#inflateEnd#inflateInit_#inflateSetDictionary" +$ module4 = "inflateSync#uncompress#zlibVersion#compress" +$ open/read map 'p1 +$ if axp .or. ia64 +$ then +$ open/write aopt a.opt +$ open/write bopt b.opt +$ write aopt " CASE_SENSITIVE=YES" +$ write bopt "SYMBOL_VECTOR= (-" +$ mod_sym_num = 1 +$ MOD_SYM_LOOP: +$ if f$type(module'mod_sym_num') .nes. "" +$ then +$ mod_in = 0 +$ MOD_SYM_IN: +$ shared_proc = f$element(mod_in, "#", module'mod_sym_num') +$ if shared_proc .nes. "#" +$ then +$ write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",- + f$edit(shared_proc,"upcase"),shared_proc) +$ write bopt f$fao("!AS=PROCEDURE,-",shared_proc) +$ mod_in = mod_in + 1 +$ goto mod_sym_in +$ endif +$ mod_sym_num = mod_sym_num + 1 +$ goto mod_sym_loop +$ endif +$MAP_LOOP: +$ read/end=map_end map line +$ if (f$locate("{",line).lt. f$length(line)) .or. - + (f$locate("global:", line) .lt. f$length(line)) +$ then +$ proc = true +$ goto map_loop +$ endif +$ if f$locate("}",line).lt. f$length(line) then proc = false +$ if f$locate("local:", line) .lt. f$length(line) then proc = false +$ if proc +$ then +$ shared_proc = f$edit(line,"collapse") +$ chop_semi = f$locate(";", shared_proc) +$ if chop_semi .lt. f$length(shared_proc) then - + shared_proc = f$extract(0, chop_semi, shared_proc) +$ write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",- + f$edit(shared_proc,"upcase"),shared_proc) +$ write bopt f$fao("!AS=PROCEDURE,-",shared_proc) +$ endif +$ goto map_loop +$MAP_END: +$ close/nolog aopt +$ close/nolog bopt +$ open/append libopt 'p2' +$ open/read aopt a.opt +$ open/read bopt b.opt +$ALOOP: +$ read/end=aloop_end aopt line +$ write libopt line +$ goto aloop +$ALOOP_END: +$ close/nolog aopt +$ sv = "" +$BLOOP: +$ read/end=bloop_end bopt svn +$ if (svn.nes."") +$ then +$ if (sv.nes."") then write libopt sv +$ sv = svn +$ endif +$ goto bloop +$BLOOP_END: +$ write libopt f$extract(0,f$length(sv)-2,sv), "-" +$ write libopt ")" +$ close/nolog bopt +$ delete/nolog/noconf a.opt;*,b.opt;* +$ else +$ if vax +$ then +$ open/append libopt 'p2' +$ mod_sym_num = 1 +$ VMOD_SYM_LOOP: +$ if f$type(module'mod_sym_num') .nes. "" +$ then +$ mod_in = 0 +$ VMOD_SYM_IN: +$ shared_proc = f$element(mod_in, "#", module'mod_sym_num') +$ if shared_proc .nes. "#" +$ then +$ write libopt f$fao("UNIVERSAL=!AS",- + f$edit(shared_proc,"upcase")) +$ mod_in = mod_in + 1 +$ goto vmod_sym_in +$ endif +$ mod_sym_num = mod_sym_num + 1 +$ goto vmod_sym_loop +$ endif +$VMAP_LOOP: +$ read/end=vmap_end map line +$ if (f$locate("{",line).lt. f$length(line)) .or. - + (f$locate("global:", line) .lt. f$length(line)) +$ then +$ proc = true +$ goto vmap_loop +$ endif +$ if f$locate("}",line).lt. f$length(line) then proc = false +$ if f$locate("local:", line) .lt. f$length(line) then proc = false +$ if proc +$ then +$ shared_proc = f$edit(line,"collapse") +$ chop_semi = f$locate(";", shared_proc) +$ if chop_semi .lt. f$length(shared_proc) then - + shared_proc = f$extract(0, chop_semi, shared_proc) +$ write libopt f$fao("UNIVERSAL=!AS",- + f$edit(shared_proc,"upcase")) +$ endif +$ goto vmap_loop +$VMAP_END: +$ else +$ write sys$output "Unknown Architecture (Not VAX, AXP, or IA64)" +$ write sys$output "No options file created" +$ endif +$ endif +$ EXIT_M2S: +$ close/nolog map +$ close/nolog libopt +$ endsubroutine diff --git a/samples/DIGITAL Command Language/libxslt_build.com b/samples/DIGITAL Command Language/libxslt_build.com new file mode 100644 index 00000000..89371f01 --- /dev/null +++ b/samples/DIGITAL Command Language/libxslt_build.com @@ -0,0 +1,342 @@ +$! BUILD_XSLT.COM +$! +$! Build the XSLT library +$! +$! Arguments: +$! +$! p1 - "DEBUG" is you want to build with debug +$! +$! This package requires libxml to have already been installed. You need +$! to ensure that the logical name LIBXML is defined and points to the +$! directory containing libxml's .h files +$! +$! This procedure creates the object libraries +$! +$! XML_LIBDIR:LIBXSLT.OLB +$! XML_LIBDIR:LIBEXSLT.OLB +$! +$! and the program +$! +$! XSLTPROC +$! +$! After the library is built, you can link these routines into +$! your code with the command +$! +$! LINK your_modules,XML_LIBDIR:LIBEXSLT/LIB,LIBXSLT/LIBRARY,LIBXML/LIB +$! +$! Change History +$! -------------- +$! Command file author : John A Fotheringham (jaf@jafsoft.com) +$! Last update : 2 Nov 2001 +$! +$!- configuration ------------------------------------------------------------- +$! +$!- compile command. +$! +$ cc_opts = "/INCLUDE=([],XML_SRCDIR:,[-.libxslt])/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" +$! +$ if p1.eqs."DEBUG" +$ then +$ debug = "Y" +$ cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" +$ else +$ debug = "N" +$ cc_command = "CC''cc_opts'" +$ endif +$! +$!- configure multiple build passes for each library. ------------------------- +$! +$! For each pass: +$! +$! "libname" is the name of the library or module being created +$! +$! "progname" is the name of the program being created +$! +$! "src" is the list of sources to be built into the library or program +$! - This should be compared to the definition of +$! "_la_SOURCES" in the MAKEFILE.IN file in +$! corresponding directory. +$! +$ num_passes = 3 ! two libraries and a program +$! +$!- pass 1 - library LIBXSLT +$! +$ libname_1 = "LIBXSLT" +$ h_file_1 = "xslt.h" +$ progname_1 = "" +$! +$ ! see "libxslt_la_SOURCES" in [.libxslt]makefile.in +$ src_1 = "xslt.c xsltutils.c pattern.c templates.c variables.c keys.c" +$ src_1 = src_1 + " numbers.c extensions.c extra.c functions.c" +$ src_1 = src_1 + " namespaces.c imports.c attributes.c documents.c" +$ src_1 = src_1 + " preproc.c transform.c security.c" +$! +$!- pass 2 - library LIBEXSLT +$! +$ libname_2 = "LIBEXSLT" +$ h_file_2 = "exslt.h" +$ progname_2 = "" +$! +$ ! see "libexslt_la_SOURCES" in [.libexslt]makefile.in +$ src_2 = "exslt.c common.c math.c sets.c functions.c strings.c date.c saxon.c dynamic.c" +$! +$!- pass 3 - program XSLTPROC +$! +$ libname_3 = "" +$ h_file_3 = "" +$ progname_3 = "XSLTPROC" +$! +$ ! see "xsltproc_SOURCES" in [.xsltproc]makefile.in +$ src_3 = "xsltproc.c" +$! +$!- set up and check logicals ----------------------------------------------- +$! +$! XML_LIBDIR - object library directory +$! XML_SRCDIR - top-level build directory of libxml package -- needed for config.h and trio.h +$! LIBXML - source directory containing .h files for libxml package +$! +$ if f$trnlnm("XML_LIBDIR").eqs."" +$ then +$ on error then continue +$ globfile = f$search("[--...]libxml.olb") +$ if globfile.eqs."" +$ then +$ write sys$output "" +$ write sys$output " You need to define the XML_LIBDIR logical name to" +$ write sys$output " point to the directory containing your object" +$ write sys$output " libraries. This should already contain LIBXML.OLB" +$ write sys$output " from the libxml package, and will be the directory" +$ write sys$output " the new LIBXSLT.OLB library will be placed in" +$ write sys$output "" +$ exit +$ else +$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") +$ define/process XML_LIBDIR "''srcdir'" +$ write sys$output "Defining XML_LIBDIR as ""''srcdir'""" +$ endif +$ endif +$! +$ if f$trnlnm("libxml").eqs."" +$ then +$ ! look for globals.h in a directory installed paralle to this one +$ on error then continue +$ globfile = f$search("[--...]globals.h") +$ if globfile.eqs."" +$ then +$ write sys$output "" +$ write sys$output " You need to define a LIBXML logical directory to" +$ write sys$output " point to the directory containing the .h files" +$ write sys$output " for the libxml package" +$ write sys$output "" +$ exit +$ else +$ srcdir = f$element(0,"]",globfile)+ "]" +$ define/process LIBXML "''srcdir'" +$ write sys$output "Defining LIBXML as ""''srcdir'""" +$ endif +$ endif +$! +$ if f$trnlnm("XML_SRCDIR").eqs."" +$ then +$ globfile = f$search("[--...]globals.c") +$ if globfile.eqs."" +$ then +$ write sys$output "Can't locate globals.c. You need to manually define a XML_SRCDIR logical" +$ exit +$ else +$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") +$ define/process XML_SRCDIR "''srcdir'" +$ write sys$output "Defining XML_SRCDIR as ""''srcdir'""" +$ endif +$ endif +$! +$!- set up some working logicals ------------------- +$! +$ pass_no = 1 +$ set_pass_logical: +$! +$ if pass_no.le.num_passes +$ then +$! +$ Libname = libname_'pass_no' +$ progname = progname_'pass_no' +$ if libname.nes."" +$ then +$ logname = "''libname'_SRCDIR" +$ else +$ logname = "''progname'_SRCDIR" +$ endif +$ findfile = f$element(0," ",src_'pass_no') +$! +$!--- set up a source directory logical +$! +$ if f$trnlnm("''logname'").eqs."" +$ then +$ ! look for the target file in a parallel subdirectory +$ globfile = f$search("[-...]''findfile'") +$ if globfile.eqs."" +$ then +$ write sys$output "Can't locate ''findfile'. You need to manually define a ''logname' logical" +$ exit +$ else +$ srcdir = f$element(0,"]",globfile)+ "]" +$ define/process 'logname' "''srcdir'" +$ write sys$output "Defining ''logname' as ""''srcdir'""" +$ endif +$ endif +$! +$!--- if it's a library, set up a logical pointing to the .h files +$! +$ if libname.nes."" +$ then +$ if f$trnlnm("''libname'").eqs."" +$ then +$ ! look for the target .h file in a parallel subdirectory +$ h_file = h_file_'pass_no' +$ globfile = f$search("[-...]''h_file'") +$ if globfile.eqs."" +$ then +$ write sys$output "Can't locate ''h_file'. You need to manually define a ''libname' logical" +$ exit +$ else +$ includedir = f$element(0,"]",globfile)+ "]" +$ define/process 'libname' "''includedir'" +$ write sys$output "Defining ''libname' as ""''includedir'""" +$ endif +$ endif +$ endif +$! +$ pass_no = pass_no +1 +$ goto set_pass_logical +$! +$ endif ! for each pass +$! +$!- set up error handling (such as it is) ------------------------------------- +$! +$ exit_status = 1 +$ saved_default = f$environment("default") +$ on error then goto ERROR_OUT +$ on control_y then goto ERROR_OUT +$! +$ goto start_here +$ start_here: ! move this line to debug/rerun parts of this command file +$! +$!- compile modules into the library ------------------------------------------ +$! +$! +$ pass_no = 1 ! make three passes, one for each library, one for XSLTPROC +$ pass_loop: +$! +$ if pass_no.le.num_passes +$ then +$ Libname = libname_'pass_no' +$ progname = progname_'pass_no' +$ if libname.nes."" +$ then +$ logname = "''libname'_SRCDIR" +$ pass_description = "the XML_LIBDIR:''libname'.OLB object library" +$ else +$ logname = "''progname'_SRCDIR" +$ pass_description = "the programs in ''progname'" +$ endif +$ src = src_'pass_no' +$! +$!- create the library if need +$! +$ if libname.nes."" +$ then +$ if f$search("XML_LIBDIR:''libname'.OLB").eqs."" +$ then +$ write sys$output "Creating new object library XML_LIBDIR:''libname'.OLB..." +$ library/create XML_LIBDIR:'libname'.OLB +$ endif +$ endif +$! +$!- move to the source directory +$! +$ set def 'logname' +$! +$!- define the library and link commands (link command not used as is) +$! +$ if libname.nes."" +$ then +$ lib_command = "LIBRARY/REPLACE XML_LIBDIR:''libname'.OLB" +$ link_command = "" +$ else +$ lib_command = "" +$ link_command = "LINK" +$ endif +$! +$ write sys$output "" +$ write sys$output "Building ''pass_description' +$ write sys$output "" +$! +$ s_no = 0 +$ src = f$edit(src,"COMPRESS") +$! +$ source_loop: +$! +$ next_source = f$element (S_no," ",src) +$ if next_source.nes."" .and. next_source.nes." " +$ then +$ call build 'next_source' +$ s_no = s_no + 1 +$ goto source_loop +$ endif +$! +$ pass_no = pass_no + 1 +$ goto pass_loop +$! +$ endif ! for each pass +$! +$!- Th-th-th-th-th-that's all folks! ------------------------------------------ +$! +$EXIT_OUT: +$! +$ set def 'saved_default +$ exit 'exit_status +$! +$ +$ERROR_OUT: +$ exit_status = $status +$ write sys$output "''f$message(exit_status)'" +$ goto EXIT_OUT +$! +$!- the BUILD subroutine. Compile then insert into library or link as required +$! +$BUILD: subroutine +$ on warning then goto EXIT_BUILD +$ source_file = p1 +$ name = f$element(0,".",source_file) +$ object_file = f$fao("XML_LIBDIR:!AS.OBJ",name) +$! +$!- compile +$ write sys$output "Compiling ",p1,p2,"..." +$ cc_command /object='object_file 'source_file' 'p2' +$! +$!- insert into library if command defined +$! +$ if lib_command.nes."" +$ then +$ lib_command 'object_file' +$ delete/nolog 'object_file';* +$ endif +$! +$!- link module if command defined +$! +$ if link_command.nes."" +$ then +$ text = f$element(0,".",p1) ! lose the ".c" +$ write sys$output "Linking ",text,"..." +$ dbgopts = "" +$ if debug then dbgopts = "/DEBUG" +$ link_command'dbgopts' 'object_file',- + XML_LIBDIR:libexslt/lib,- + XML_LIBDIR:libxslt/lib,- + XML_LIBDIR:libxml/library +$ endif +$! +$EXIT_BUILD: +$ exit $status +$! +$endsubroutine diff --git a/samples/DIGITAL Command Language/vmsbackup_build.com b/samples/DIGITAL Command Language/vmsbackup_build.com new file mode 100644 index 00000000..c6cb4cab --- /dev/null +++ b/samples/DIGITAL Command Language/vmsbackup_build.com @@ -0,0 +1,10 @@ +$! Compiling with VAXC is said to work, but it requires the usual cruft +$! (vaxcrtl and all), and to avoid hair we don't supply said cruft here. +$ CC/DECC/PREFIX=all VMSBACKUP.C/DEFINE=(HAVE_MT_IOCTLS=0,HAVE_UNIXIO_H=1) +$ CC/DECC/PREFIX=all DCLMAIN.C +$! Probably we don't want match as it probably doesn't implement VMS-style +$! matching, but I haven't looking into the issues yet. +$ CC/DECC/PREFIX=all match +$ LINK/exe=VMSBACKUP.EXE - +vmsbackup.obj,dclmain.obj,match.obj,sys$input/opt +identification="VMSBACKUP4.1.1" From ab3f44cb6e291016e41d88913d3f5e7541d15f3a Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 20:38:46 +0200 Subject: [PATCH 008/875] add DECset Module Management System support --- lib/linguist/languages.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f5853460..ddcd844c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1476,6 +1476,18 @@ Mirah: - .mir - .mirah +Module Management System: + type: programming + lexer: MMS + search_term: mms + group: OpenVMS + extensions: + - .mms + - .mmk + filenames: + - descrip.mms + - descrip.mmk + Monkey: type: programming lexer: Monkey From f4f5ccb3f512db862de6a9994844985277049e92 Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 20:43:39 +0200 Subject: [PATCH 009/875] add MMS/MMK samples --- samples/Module Management System/descrip.mms | 1204 +++++++++++++++++ samples/Module Management System/openvms.mmk | 563 ++++++++ .../Module Management System/simh_descrip.mms | 1204 +++++++++++++++++ .../spline_descrip.mms | 31 + .../Module Management System/xv_makefile.mms | 271 ++++ 5 files changed, 3273 insertions(+) create mode 100644 samples/Module Management System/descrip.mms create mode 100644 samples/Module Management System/openvms.mmk create mode 100755 samples/Module Management System/simh_descrip.mms create mode 100644 samples/Module Management System/spline_descrip.mms create mode 100644 samples/Module Management System/xv_makefile.mms diff --git a/samples/Module Management System/descrip.mms b/samples/Module Management System/descrip.mms new file mode 100644 index 00000000..f6530a56 --- /dev/null +++ b/samples/Module Management System/descrip.mms @@ -0,0 +1,1204 @@ +# DESCRIP.MMS +# Written By: Robert Alan Byer / byer@mail.ourservers.net +# Modified By: Mark Pizzolato / mark@infocomm.com +# Norman Lastovica / norman.lastovica@oracle.com +# +# This MMS/MMK build script is used to compile the various simulators in +# the SIMH package for OpenVMS using DEC C v6.0-001(AXP), v6.5-001(AXP), +# HP C V7.2-001 (IA64) and v6.4-005(VAX). +# +# Notes: On VAX, the PDP-10 and Eclipse simulators will not be built +# due to the fact that INT64 is required for that simulator. +# +# This build script will accept the following build options. +# +# ALL Just Build "Everything". +# ALTAIR Just Build The MITS Altair. +# ALTAIRZ80 Just Build The MITS Altair Z80. +# ECLIPSE Just Build The Data General Eclipse. +# GRI Just Build The GRI Corporation GRI-909. +# LGP Just Build The Royal-McBee LGP-30. +# H316 Just Build The Honewell 316/516. +# HP2100 Just Build The Hewlett-Packard HP-2100. +# I1401 Just Build The IBM 1401. +# I1620 Just Build The IBM 1620. +# IBM1130 Just Build The IBM 1130. +# ID16 Just Build The Interdata 16-bit CPU. +# ID32 Just Build The Interdata 32-bit CPU. +# NOVA Just Build The Data General Nova. +# PDP1 Just Build The DEC PDP-1. +# PDP4 Just Build The DEC PDP-4. +# PDP7 Just Build The DEC PDP-7. +# PDP8 Just Build The DEC PDP-8. +# PDP9 Just Build The DEC PDP-9. +# PDP10 Just Build The DEC PDP-10. +# PDP11 Just Build The DEC PDP-11. +# PDP15 Just Build The DEC PDP-15. +# S3 Just Build The IBM System 3. +# SDS Just Build The SDS 940. +# VAX Just Build The DEC VAX. +# VAX780 Just Build The DEC VAX780. +# CLEAN Will Clean Files Back To Base Kit. +# +# To build with debugging enabled (which will also enable traceback +# information) use.. +# +# MMK/MACRO=(DEBUG=1) +# +# This will produce an executable named {Simulator}-{I64|VAX|AXP}-DBG.EXE +# + +# Let's See If We Are Going To Build With DEBUG Enabled. Always compile +# /DEBUG so that the traceback and debug information is always available +# in the object files. + +CC_DEBUG = /DEBUG + +.IFDEF DEBUG +LINK_DEBUG = /DEBUG/TRACEBACK +CC_OPTIMIZE = /NOOPTIMIZE + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = AXP-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = I64-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX-DBG +CC_DEFS = "__VAX" +.ENDIF + +.ELSE +LINK_DEBUG = /NODEBUG/NOTRACEBACK + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5)/ARCH=HOST +CC_FLAGS = /PREF=ALL +ARCH = AXP +CC_DEFS = "_LARGEFILE" +LINK_SECTION_BINDING = /SECTION_BINDING +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5) +CC_FLAGS = /PREF=ALL +ARCH = I64 +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_OPTIMIZE = /OPTIMIZE +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX +CC_DEFS = "__VAX" +.ENDIF + +.ENDIF + +# Define Our Compiler Flags & Define The Compile Command +OUR_CC_FLAGS = $(CC_FLAGS)$(CC_DEBUG)$(CC_OPTIMIZE) \ + /NEST=PRIMARY/NAME=(AS_IS,SHORT) +CC = CC/DECC$(OUR_CC_FLAGS) + +# Define The BIN Directory Where The Executables Will Go. +# Define Our Library Directory. +# Define The platform specific Build Directory Where The Objects Will Go. +# +BIN_DIR = SYS$DISK:[.BIN] +LIB_DIR = SYS$DISK:[.LIB] +BLD_DIR = SYS$DISK:[.LIB.BLD-$(ARCH)] + +# Check To Make Sure We Have SYS$DISK:[.BIN] & SYS$DISK:[.LIB] Directory. +# +.FIRST + @ IF (F$SEARCH("SYS$DISK:[]BIN.DIR").EQS."") THEN CREATE/DIRECTORY $(BIN_DIR) + @ IF (F$SEARCH("SYS$DISK:[]LIB.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) + @ IF (F$SEARCH("SYS$DISK:[.LIB]BLD-$(ARCH).DIR").EQS."") THEN CREATE/DIRECTORY $(BLD_DIR) + @ IF (F$SEARCH("$(BLD_DIR)*.*").NES."") THEN DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.*;* + @ IF "".NES."''CC'" THEN DELETE/SYMBOL/GLOBAL CC + +# Core SIMH File Definitions. +# +SIMH_DIR = SYS$DISK:[] +SIMH_LIB = $(LIB_DIR)SIMH-$(ARCH).OLB +SIMH_SOURCE = $(SIMH_DIR)SIM_CONSOLE.C,$(SIMH_DIR)SIM_SOCK.C,\ + $(SIMH_DIR)SIM_TMXR.C,$(SIMH_DIR)SIM_ETHER.C,\ + $(SIMH_DIR)SIM_TAPE.C,$(SIMH_DIR)SIM_FIO.C,\ + $(SIMH_DIR)SIM_TIMER.C + +# VMS PCAP File Definitions. +# +PCAP_DIR = SYS$DISK:[.PCAP-VMS.PCAP-VCI] +PCAP_LIB = $(LIB_DIR)PCAP-$(ARCH).OLB +PCAP_SOURCE = \ + $(PCAP_DIR)PCAPVCI.C,$(PCAP_DIR)VCMUTIL.C,\ + $(PCAP_DIR)BPF_DUMP.C,$(PCAP_DIR)BPF_FILTER.C,\ + $(PCAP_DIR)BPF_IMAGE.C,$(PCAP_DIR)ETHERENT.C,\ + $(PCAP_DIR)FAD-GIFC.C,$(PCAP_DIR)GENCODE.C,\ + $(PCAP_DIR)GRAMMAR.C,$(PCAP_DIR)INET.C,\ + $(PCAP_DIR)NAMETOADDR.C,$(PCAP_DIR)OPTIMIZE.C,\ + $(PCAP_DIR)PCAP.C,$(PCAP_DIR)SAVEFILE.C,\ + $(PCAP_DIR)SCANNER.C,$(PCAP_DIR)SNPRINTF.C,\ + $(PCAP_DIR)PCAP-VMS.C +PCAP_VCMDIR = SYS$DISK:[.PCAP-VMS.PCAPVCM] +PCAP_VCM_SOURCES = $(PCAP_VCMDIR)PCAPVCM.C,$(PCAP_VCMDIR)PCAPVCM_INIT.MAR,\ + $(PCAP_VCMDIR)VCI_JACKET.MAR,$(PCAP_VCMDIR)VCMUTIL.C +PCAP_VCI = SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +# PCAP is not available on OpenVMS VAX or IA64 right now +# +.IFDEF MMSALPHA +PCAP_EXECLET = $(PCAP_VCI) +PCAP_INC = ,$(PCAP_DIR) +PCAP_LIBD = $(PCAP_LIB) +PCAP_LIBR = ,$(PCAP_LIB)/LIB/SYSEXE +PCAP_DEFS = ,"USE_NETWORK=1" +PCAP_SIMH_INC = /INCL=($(PCAP_DIR)) +.ENDIF + +# MITS Altair Simulator Definitions. +# +ALTAIR_DIR = SYS$DISK:[.ALTAIR] +ALTAIR_LIB = $(LIB_DIR)ALTAIR-$(ARCH).OLB +ALTAIR_SOURCE = $(ALTAIR_DIR)ALTAIR_SIO.C,$(ALTAIR_DIR)ALTAIR_CPU.C,\ + $(ALTAIR_DIR)ALTAIR_DSK.C,$(ALTAIR_DIR)ALTAIR_SYS.C +ALTAIR_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIR_DIR))/DEF=($(CC_DEFS)) + +# +# MITS Altair Z80 Simulator Definitions. +# +ALTAIRZ80_DIR = SYS$DISK:[.ALTAIRZ80] +ALTAIRZ80_LIB = $(LIB_DIR)ALTAIRZ80-$(ARCH).OLB +ALTAIRZ80_SOURCE = $(ALTAIRZ80_DIR)/ALTAIRZ80_CPU.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_CPU_NOMMU.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_DSK.C,$(ALTAIRZ80_DIR)/DISASM.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_SIO.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_SYS.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_HDSK.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_NET.C,\ + $(ALTAIRZ80_DIR)/FLASHWRITER2.C,$(ALTAIRZ80_DIR)/I86_DECODE.C,\ + $(ALTAIRZ80_DIR)/I86_OPS.C,$(ALTAIRZ80_DIR)/I86_PRIM_OPS.C,\ + $(ALTAIRZ80_DIR)/I8272.C,$(ALTAIRZ80_DIR)/INSNSA.C,$(ALTAIRZ80_DIR)/INSNSD.C,\ + $(ALTAIRZ80_DIR)/MFDC.C,$(ALTAIRZ80_DIR)/N8VEM.C,$(ALTAIRZ80_DIR)/VFDHD.C,\ + $(ALTAIRZ80_DIR)/S100_DISK1A.C,$(ALTAIRZ80_DIR)/S100_DISK2.C,\ + $(ALTAIRZ80_DIR)/S100_FIF.C,$(ALTAIRZ80_DIR)/S100_MDRIVEH.C,\ + $(ALTAIRZ80_DIR)/S100_MDSAD.C,$(ALTAIRZ80_DIR)/S100_SELCHAN.C,\ + $(ALTAIRZ80_DIR)/S100_SS1.C,$(ALTAIRZ80_DIR)/S100_64FDC.C,\ + $(ALTAIRZ80_DIR)/S100_SCP300F.C,$(ALTAIRZ80_DIR)/SIM_IMD.C,\ + $(ALTAIRZ80_DIR)/WD179X.C +ALTAIRZ80_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIRZ80_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Nova Simulator Definitions. +# +NOVA_DIR = SYS$DISK:[.NOVA] +NOVA_LIB = $(LIB_DIR)NOVA-$(ARCH).OLB +NOVA_SOURCE = $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_CPU.C,\ + $(NOVA_DIR)NOVA_DKP.C,$(NOVA_DIR)NOVA_DSK.C,\ + $(NOVA_DIR)NOVA_LP.C,$(NOVA_DIR)NOVA_MTA.C,\ + $(NOVA_DIR)NOVA_PLT.C,$(NOVA_DIR)NOVA_PT.C,\ + $(NOVA_DIR)NOVA_CLK.C,$(NOVA_DIR)NOVA_TT.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +NOVA_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Eclipse Simulator Definitions. +# +ECLIPSE_LIB = $(LIB_DIR)ECLIPSE-$(ARCH).OLB +ECLIPSE_SOURCE = $(NOVA_DIR)ECLIPSE_CPU.C,$(NOVA_DIR)ECLIPSE_TT.C,\ + $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_DKP.C,\ + $(NOVA_DIR)NOVA_DSK.C,$(NOVA_DIR)NOVA_LP.C,\ + $(NOVA_DIR)NOVA_MTA.C,$(NOVA_DIR)NOVA_PLT.C,\ + $(NOVA_DIR)NOVA_PT.C,$(NOVA_DIR)NOVA_CLK.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +ECLIPSE_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","ECLIPSE=1") + +# +# GRI Corporation GRI-909 Simulator Definitions. +# +GRI_DIR = SYS$DISK:[.GRI] +GRI_LIB = $(LIB_DIR)GRI-$(ARCH).OLB +GRI_SOURCE = $(GRI_DIR)GRI_CPU.C,$(GRI_DIR)GRI_STDDEV.C,$(GRI_DIR)GRI_SYS.C +GRI_OPTIONS = /INCL=($(SIMH_DIR),$(GRI_DIR))/DEF=($(CC_DEFS)) + +# +# Royal-McBee LGP-30 Simulator Definitions. +# +LGP_DIR = SYS$DISK:[.LGP] +LGP_LIB = $(LIB_DIR)LGP-$(ARCH).OLB +LGP_SOURCE = $(LGP_DIR)LGP_CPU.C,$(LGP_DIR)LGP_STDDEV.C,$(LGP_DIR)LGP_SYS.C +LGP_OPTIONS = /INCL=($(SIMH_DIR),$(LGP_DIR))/DEF=($(CC_DEFS)) + +# +# Honeywell 316/516 Simulator Definitions. +# +H316_DIR = SYS$DISK:[.H316] +H316_LIB = $(LIB_DIR)H316-$(ARCH).OLB +H316_SOURCE = $(H316_DIR)H316_STDDEV.C,$(H316_DIR)H316_LP.C,\ + $(H316_DIR)H316_CPU.C,$(H316_DIR)H316_SYS.C,\ + $(H316_DIR)H316_FHD.C,$(H316_DIR)H316_MT.C,\ + $(H316_DIR)H316_DP.C +H316_OPTIONS = /INCL=($(SIMH_DIR),$(H316_DIR))/DEF=($(CC_DEFS)) + +# +# Hewlett-Packard HP-2100 Simulator Definitions. +# +HP2100_DIR = SYS$DISK:[.HP2100] +HP2100_LIB = $(LIB_DIR)HP2100-$(ARCH).OLB +HP2100_SOURCE = $(HP2100_DIR)HP2100_STDDEV.C,$(HP2100_DIR)HP2100_DP.C,\ + $(HP2100_DIR)HP2100_DQ.C,$(HP2100_DIR)HP2100_DR.C,\ + $(HP2100_DIR)HP2100_LPS.C,$(HP2100_DIR)HP2100_MS.C,\ + $(HP2100_DIR)HP2100_MT.C,$(HP2100_DIR)HP2100_MUX.C,\ + $(HP2100_DIR)HP2100_CPU.C,$(HP2100_DIR)HP2100_FP.C,\ + $(HP2100_DIR)HP2100_SYS.C,$(HP2100_DIR)HP2100_LPT.C,\ + $(HP2100_DIR)HP2100_IPL.C,$(HP2100_DIR)HP2100_DS.C,\ + $(HP2100_DIR)HP2100_CPU0.C,$(HP2100_DIR)HP2100_CPU1.C,\ + $(HP2100_DIR)HP2100_CPU2.C,$(HP2100_DIR)HP2100_CPU3.C,\ + $(HP2100_DIR)HP2100_CPU4.C,$(HP2100_DIR)HP2100_CPU5.C,\ + $(HP2100_DIR)HP2100_CPU6.C,$(HP2100_DIR)HP2100_CPU7.C,\ + $(HP2100_DIR)HP2100_FP1.C,$(HP2100_DIR)HP2100_BACI.C,\ + $(HP2100_DIR)HP2100_MPX.C,$(HP2100_DIR)HP2100_PIF.C +.IF ALPHA_OR_IA64 +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))\ + /DEF=($(CC_DEFS),"HAVE_INT64=1") +.ELSE +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))/DEF=($(CC_DEFS)) +.ENDIF + +# +# Interdata 16-bit CPU. +# +ID16_DIR = SYS$DISK:[.INTERDATA] +ID16_LIB = $(LIB_DIR)ID16-$(ARCH).OLB +ID16_SOURCE = $(ID16_DIR)ID16_CPU.C,$(ID16_DIR)ID16_SYS.C,$(ID16_DIR)ID_DP.C,\ + $(ID16_DIR)ID_FD.C,$(ID16_DIR)ID_FP.C,$(ID16_DIR)ID_IDC.C,\ + $(ID16_DIR)ID_IO.C,$(ID16_DIR)ID_LP.C,$(ID16_DIR)ID_MT.C,\ + $(ID16_DIR)ID_PAS.C,$(ID16_DIR)ID_PT.C,$(ID16_DIR)ID_TT.C,\ + $(ID16_DIR)ID_UVC.C,$(ID16_DIR)ID16_DBOOT.C,$(ID16_DIR)ID_TTP.C +ID16_OPTIONS = /INCL=($(SIMH_DIR),$(ID16_DIR))/DEF=($(CC_DEFS)) + +# +# Interdata 32-bit CPU. +# +ID32_DIR = SYS$DISK:[.INTERDATA] +ID32_LIB = $(LIB_DIR)ID32-$(ARCH).OLB +ID32_SOURCE = $(ID32_DIR)ID32_CPU.C,$(ID32_DIR)ID32_SYS.C,$(ID32_DIR)ID_DP.C,\ + $(ID32_DIR)ID_FD.C,$(ID32_DIR)ID_FP.C,$(ID32_DIR)ID_IDC.C,\ + $(ID32_DIR)ID_IO.C,$(ID32_DIR)ID_LP.C,$(ID32_DIR)ID_MT.C,\ + $(ID32_DIR)ID_PAS.C,$(ID32_DIR)ID_PT.C,$(ID32_DIR)ID_TT.C,\ + $(ID32_DIR)ID_UVC.C,$(ID32_DIR)ID32_DBOOT.C,$(ID32_DIR)ID_TTP.C +ID32_OPTIONS = /INCL=($(SIMH_DIR),$(ID32_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1130 Simulator Definitions. +# +IBM1130_DIR = SYS$DISK:[.IBM1130] +IBM1130_LIB = $(LIB_DIR)IBM1130-$(ARCH).OLB +IBM1130_SOURCE = $(IBM1130_DIR)IBM1130_CPU.C,$(IBM1130_DIR)IBM1130_CR.C,\ + $(IBM1130_DIR)IBM1130_DISK.C,$(IBM1130_DIR)IBM1130_STDDEV.C,\ + $(IBM1130_DIR)IBM1130_SYS.C,$(IBM1130_DIR)IBM1130_GDU.C,\ + $(IBM1130_DIR)IBM1130_GUI.C,$(IBM1130_DIR)IBM1130_PRT.C,\ + $(IBM1130_DIR)IBM1130_FMT.C,$(IBM1130_DIR)IBM1130_PTRP.C,\ + $(IBM1130_DIR)IBM1130_PLOT.C,$(IBM1130_DIR)IBM1130_SCA.C,\ + $(IBM1130_DIR)IBM1130_T2741.C +IBM1130_OPTIONS = /INCL=($(SIMH_DIR),$(IBM1130_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1401 Simulator Definitions. +# +I1401_DIR = SYS$DISK:[.I1401] +I1401_LIB = $(LIB_DIR)I1401-$(ARCH).OLB +I1401_SOURCE = $(I1401_DIR)I1401_LP.C,$(I1401_DIR)I1401_CPU.C,\ + $(I1401_DIR)I1401_IQ.C,$(I1401_DIR)I1401_CD.C,\ + $(I1401_DIR)I1401_MT.C,$(I1401_DIR)I1401_DP.C,\ + $(I1401_DIR)I1401_SYS.C +I1401_OPTIONS = /INCL=($(SIMH_DIR),$(I1401_DIR))/DEF=($(CC_DEFS)) + + +# +# IBM 1620 Simulators Definitions. +# +I1620_DIR = SYS$DISK:[.I1620] +I1620_LIB = $(LIB_DIR)I1620-$(ARCH).OLB +I1620_SOURCE = $(I1620_DIR)I1620_CD.C,$(I1620_DIR)I1620_DP.C,\ + $(I1620_DIR)I1620_PT.C,$(I1620_DIR)I1620_TTY.C,\ + $(I1620_DIR)I1620_CPU.C,$(I1620_DIR)I1620_LP.C,\ + $(I1620_DIR)I1620_FP.C,$(I1620_DIR)I1620_SYS.C +I1620_OPTIONS = /INCL=($(SIMH_DIR),$(I1620_DIR))/DEF=($(CC_DEFS)) + +# +# PDP-1 Simulator Definitions. +# +PDP1_DIR = SYS$DISK:[.PDP1] +PDP1_LIB = $(LIB_DIR)PDP1-$(ARCH).OLB +PDP1_SOURCE = $(PDP1_DIR)PDP1_LP.C,$(PDP1_DIR)PDP1_CPU.C,\ + $(PDP1_DIR)PDP1_STDDEV.C,$(PDP1_DIR)PDP1_SYS.C,\ + $(PDP1_DIR)PDP1_DT.C,$(PDP1_DIR)PDP1_DRM.C,\ + $(PDP1_DIR)PDP1_CLK.C,$(PDP1_DIR)PDP1_DCS.C +PDP1_OPTIONS = /INCL=($(SIMH_DIR),$(PDP1_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-8 Simulator Definitions. +# +PDP8_DIR = SYS$DISK:[.PDP8] +PDP8_LIB = $(LIB_DIR)PDP8-$(ARCH).OLB +PDP8_SOURCE = $(PDP8_DIR)PDP8_CPU.C,$(PDP8_DIR)PDP8_CLK.C,\ + $(PDP8_DIR)PDP8_DF.C,$(PDP8_DIR)PDP8_DT.C,\ + $(PDP8_DIR)PDP8_LP.C,$(PDP8_DIR)PDP8_MT.C,\ + $(PDP8_DIR)PDP8_PT.C,$(PDP8_DIR)PDP8_RF.C,\ + $(PDP8_DIR)PDP8_RK.C,$(PDP8_DIR)PDP8_RX.C,\ + $(PDP8_DIR)PDP8_SYS.C,$(PDP8_DIR)PDP8_TT.C,\ + $(PDP8_DIR)PDP8_TTX.C,$(PDP8_DIR)PDP8_RL.C,\ + $(PDP8_DIR)PDP8_TSC.C,$(PDP8_DIR)PDP8_TD.C,\ + $(PDP8_DIR)PDP8_CT.C +PDP8_OPTIONS = /INCL=($(SIMH_DIR),$(PDP8_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-4, PDP-7, PDP-9 And PDP-15 Simulator Definitions. +# +PDP18B_DIR = SYS$DISK:[.PDP18B] +PDP4_LIB = $(LIB_DIR)PDP4-$(ARCH).OLB +PDP7_LIB = $(LIB_DIR)PDP7-$(ARCH).OLB +PDP9_LIB = $(LIB_DIR)PDP9-$(ARCH).OLB +PDP15_LIB = $(LIB_DIR)PDP15-$(ARCH).OLB +PDP18B_SOURCE = $(PDP18B_DIR)PDP18B_DT.C,$(PDP18B_DIR)PDP18B_DRM.C,\ + $(PDP18B_DIR)PDP18B_CPU.C,$(PDP18B_DIR)PDP18B_LP.C,\ + $(PDP18B_DIR)PDP18B_MT.C,$(PDP18B_DIR)PDP18B_RF.C,\ + $(PDP18B_DIR)PDP18B_RP.C,$(PDP18B_DIR)PDP18B_STDDEV.C,\ + $(PDP18B_DIR)PDP18B_SYS.C,$(PDP18B_DIR)PDP18B_TT1.C,\ + $(PDP18B_DIR)PDP18B_RB.C,$(PDP18B_DIR)PDP18B_FPP.C +PDP4_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP4=1") +PDP7_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP7=1") +PDP9_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP9=1") +PDP15_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP15=1") + +# +# Digital Equipment PDP-11 Simulator Definitions. +# +PDP11_DIR = SYS$DISK:[.PDP11] +PDP11_LIB1 = $(LIB_DIR)PDP11L1-$(ARCH).OLB +PDP11_SOURCE1 = $(PDP11_DIR)PDP11_FP.C,$(PDP11_DIR)PDP11_CPU.C,\ + $(PDP11_DIR)PDP11_DZ.C,$(PDP11_DIR)PDP11_CIS.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_RK.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_RX.C,$(PDP11_DIR)PDP11_STDDEV.C,\ + $(PDP11_DIR)PDP11_SYS.C,$(PDP11_DIR)PDP11_TC.C, \ + $(PDP11_DIR)PDP11_CPUMOD.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_TA.C,$(PDP11_DIR)PDP11_IO_LIB.C +PDP11_LIB2 = $(LIB_DIR)PDP11L2-$(ARCH).OLB +PDP11_SOURCE2 = $(PDP11_DIR)PDP11_TM.C,$(PDP11_DIR)PDP11_TS.C,\ + $(PDP11_DIR)PDP11_IO.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TQ.C,$(PDP11_DIR)PDP11_PCLK.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_PT.C,\ + $(PDP11_DIR)PDP11_HK.C,$(PDP11_DIR)PDP11_XQ.C,\ + $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_RH.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_TU.C,\ + $(PDP11_DIR)PDP11_DL.C,$(PDP11_DIR)PDP11_RF.C, \ + $(PDP11_DIR)PDP11_RC.C,$(PDP11_DIR)PDP11_KG.C,\ + $(PDP11_DIR)PDP11_KE.C,$(PDP11_DIR)PDP11_DC.C +PDP11_OPTIONS = /INCL=($(SIMH_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_PDP11=1"$(PCAP_DEFS)) + +# +# Digital Equipment PDP-10 Simulator Definitions. +# +PDP10_DIR = SYS$DISK:[.PDP10] +PDP10_LIB = $(LIB_DIR)PDP10-$(ARCH).OLB +PDP10_SOURCE = $(PDP10_DIR)PDP10_FE.C,\ + $(PDP10_DIR)PDP10_CPU.C,$(PDP10_DIR)PDP10_KSIO.C,\ + $(PDP10_DIR)PDP10_LP20.C,$(PDP10_DIR)PDP10_MDFP.C,\ + $(PDP10_DIR)PDP10_PAG.C,$(PDP10_DIR)PDP10_XTND.C,\ + $(PDP10_DIR)PDP10_RP.C,$(PDP10_DIR)PDP10_SYS.C,\ + $(PDP10_DIR)PDP10_TIM.C,$(PDP10_DIR)PDP10_TU.C,\ + $(PDP11_DIR)PDP11_PT.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_XU.C,\ + $(PDP11_DIR)PDP11_CR.C +PDP10_OPTIONS = /INCL=($(SIMH_DIR),$(PDP10_DIR),$(PDP11_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","VM_PDP10=1"$(PCAP_DEFS)) + +# +# IBM System 3 Simulator Definitions. +# +S3_DIR = SYS$DISK:[.S3] +S3_LIB = $(LIB_DIR)S3-$(ARCH).OLB +S3_SOURCE = $(S3_DIR)S3_CD.C,$(S3_DIR)S3_CPU.C,$(S3_DIR)S3_DISK.C,\ + $(S3_DIR)S3_LP.C,$(S3_DIR)S3_PKB.C,$(S3_DIR)S3_SYS.C +S3_OPTIONS = /INCL=($(SIMH_DIR),$(S3_DIR))/DEF=($(CC_DEFS)) + +# +# SDS 940 +# +SDS_DIR = SYS$DISK:[.SDS] +SDS_LIB = $(LIB_DIR)SDS-$(ARCH).OLB +SDS_SOURCE = $(SDS_DIR)SDS_CPU.C,$(SDS_DIR)SDS_DRM.C,$(SDS_DIR)SDS_DSK.C,\ + $(SDS_DIR)SDS_IO.C,$(SDS_DIR)SDS_LP.C,$(SDS_DIR)SDS_MT.C,\ + $(SDS_DIR)SDS_MUX.C,$(SDS_DIR)SDS_RAD.C,$(SDS_DIR)SDS_STDDEV.C,\ + $(SDS_DIR)SDS_SYS.C +SDS_OPTIONS = /INCL=($(SIMH_DIR),$(SDS_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment VAX Simulator Definitions. +# +VAX_DIR = SYS$DISK:[.VAX] +VAX_LIB = $(LIB_DIR)VAX-$(ARCH).OLB +VAX_SOURCE = $(VAX_DIR)VAX_CIS.C,$(VAX_DIR)VAX_CMODE.C,\ + $(VAX_DIR)VAX_CPU.C,$(VAX_DIR)VAX_CPU1.C,\ + $(VAX_DIR)VAX_FPA.C,$(VAX_DIR)VAX_MMU.C,\ + $(VAX_DIR)VAX_OCTA.C,$(VAX_DIR)VAX_SYS.C,\ + $(VAX_DIR)VAX_SYSCM.C,$(VAX_DIR)VAX_SYSDEV.C,\ + $(VAX_DIR)VAX_SYSLIST.C,$(VAX_DIR)VAX_IO.C,\ + $(VAX_DIR)VAX_STDDEV.C,$(PDP11_DIR)PDP11_IO_LIB.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XQ.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C +VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS)) + +# Digital Equipment VAX780 Simulator Definitions. +# +VAX780_DIR = SYS$DISK:[.VAX] +VAX780_LIB1 = $(LIB_DIR)VAX780L1-$(ARCH).OLB +VAX780_SOURCE1 = $(VAX780_DIR)VAX_CPU.C,$(VAX780_DIR)VAX_CPU1.C,\ + $(VAX780_DIR)VAX_FPA.C,$(VAX780_DIR)VAX_CIS.C,\ + $(VAX780_DIR)VAX_OCTA.C,$(VAX780_DIR)VAX_CMODE.C,\ + $(VAX780_DIR)VAX_MMU.C,$(VAX780_DIR)VAX_SYS.C,\ + $(VAX780_DIR)VAX_SYSCM.C,$(VAX780_DIR)VAX780_STDDEV.C,\ + $(VAX780_DIR)VAX780_SBI.C,$(VAX780_DIR)VAX780_MEM.C,\ + $(VAX780_DIR)VAX780_UBA.C,$(VAX780_DIR)VAX780_MBA.C,\ + $(VAX780_DIR)VAX780_FLOAD.C,$(VAX780_DIR)VAX780_SYSLIST.C +VAX780_LIB2 = $(LIB_DIR)VAX780L2-$(ARCH).OLB +VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\ + $(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\ + $(PDP11_DIR)PDP11_IO_LIB.C +VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_780=1") + +# IBM 7094 Simulator Definitions. +# +I7094_DIR = SYS$DISK:[.I7094] +I7094_LIB = $(LIB_DIR)I7094-$(ARCH).OLB +I7094_SOURCE = $(I7094_DIR)I7094_CPU.C,$(I7094_DIR)I7094_CPU1.C,\ + $(I7094_DIR)I7094_IO.C,$(I7094_DIR)I7094_CD.C,\ + $(I7094_DIR)I7094_CLK.C,$(I7094_DIR)I7094_COM.C,\ + $(I7094_DIR)I7094_DRM.C,$(I7094_DIR)I7094_DSK.C,\ + $(I7094_DIR)I7094_SYS.C,$(I7094_DIR)I7094_LP.C,\ + $(I7094_DIR)I7094_MT.C,$(I7094_DIR)I7094_BINLOADER.C +I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS)) + +# If we're not a VAX, Build Everything +# +.IF ALPHA_OR_IA64 +ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ + ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 VAX VAX780 SDS \ + I7094 + @CONTINUE +.ELSE +# +# Else We Are On VAX And Build Everything EXCEPT the 64b simulators +# +ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ + NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 VAX VAX780 SDS + @CONTINUE +.ENDIF + +CLEAN : + $! + $! Clean out all targets and building Remnants + $! + $ IF (F$SEARCH("$(BIN_DIR)*.EXE;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(BIN_DIR)*.EXE;* + $ IF (F$SEARCH("$(LIB_DIR)*.OLB;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(LIB_DIR)*.OLB;* + $ IF (F$SEARCH("SYS$DISK:[...]*.OBJ;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.OBJ;* + $ IF (F$SEARCH("SYS$DISK:[...]*.LIS;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.LIS;* + $ IF (F$SEARCH("SYS$DISK:[...]*.MAP;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.MAP;* + +# +# Build The Libraries. +# +$(SIMH_LIB) : $(SIMH_SOURCE) + $! + $! Building The $(SIMH_LIB) Library. + $! + $ $(CC)/DEF=($(CC_DEFS)$(PCAP_DEFS))$(PCAP_SIMH_INC) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIR_LIB) : $(ALTAIR_SOURCE) + $! + $! Building The $(ALTAIR_LIB) Library. + $! + $ $(CC)$(ALTAIR_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIRZ80_LIB) : $(ALTAIRZ80_SOURCE) + $! + $! Building The $(ALTAIRZ80_LIB) Library. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The Eclipse Library. +# +.IF ALPHA_OR_IA64 +$(ECLIPSE_LIB) : $(ECLIPSE_SOURCE) + $! + $! Building The $(ECLIPSE_LIB) Library. + $! + $ $(CC)$(ECLIPSE_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(ECLIPSE_LIB) : + $! + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)ECLIPSE-$(ARCH).OLB Library On VAX. + $! +.ENDIF + +$(GRI_LIB) : $(GRI_SOURCE) + $! + $! Building The $(GRI_LIB) Library. + $! + $ $(CC)$(GRI_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(LGP_LIB) : $(LGP_SOURCE) + $! + $! Building The $(LGP_LIB) Library. + $! + $ $(CC)$(LGP_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(H316_LIB) : $(H316_SOURCE) + $! + $! Building The $(H316_LIB) Library. + $! + $ $(CC)$(H316_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(HP2100_LIB) : $(HP2100_SOURCE) + $! + $! Building The $(HP2100_LIB) Library. + $! + $ $(CC)$(HP2100_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1401_LIB) : $(I1401_SOURCE) + $! + $! Building The $(I1401_LIB) Library. + $! + $ $(CC)$(I1401_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1620_LIB) : $(I1620_SOURCE) + $! + $! Building The $(I1620_LIB) Library. + $! + $ $(CC)$(I1620_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(IBM1130_LIB) : $(IBM1130_SOURCE) + $! + $! Building The $(IBM1130_LIB) Library. + $! + $ $(CC)$(IBM1130_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID16_LIB) : $(ID16_SOURCE) + $! + $! Building The $(ID16_LIB) Library. + $! + $ $(CC)$(ID16_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID32_LIB) : $(ID32_SOURCE) + $! + $! Building The $(ID32_LIB) Library. + $! + $ $(CC)$(ID32_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(NOVA_LIB) : $(NOVA_SOURCE) + $! + $! Building The $(NOVA_LIB) Library. + $! + $ $(CC)$(NOVA_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP1_LIB) : $(PDP1_SOURCE) + $! + $! Building The $(PDP1_LIB) Library. + $! + $ $(CC)$(PDP1_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP4_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP4_LIB) Library. + $! + $ $(CC)$(PDP4_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP7_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP7_LIB) Library. + $! + $ $(CC)$(PDP7_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP8_LIB) : $(PDP8_SOURCE) + $! + $! Building The $(PDP8_LIB) Library. + $! + $ $(CC)$(PDP8_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP9_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP9_LIB) Library. + $! + $ $(CC)$(PDP9_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Library. +# +.IF ALPHA_OR_IA64 +$(PDP10_LIB) : $(PDP10_SOURCE) + $! + $! Building The $(PDP10_LIB) Library. + $! + $ $(CC)$(PDP10_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(PDP10_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)PDP10-$(ARCH).OLB Library On VAX. +.ENDIF + +$(PDP11_LIB1) : $(PDP11_SOURCE1) + $! + $! Building The $(PDP11_LIB1) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP11_LIB2) : $(PDP11_SOURCE2) + $! + $! Building The $(PDP11_LIB2) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP15_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP15_LIB) Library. + $! + $ $(CC)$(PDP15_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(S3_LIB) : $(S3_SOURCE) + $! + $! Building The $(S3_LIB) Library. + $! + $ $(CC)$(S3_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(SDS_LIB) : $(SDS_SOURCE) + $! + $! Building The $(SDS_LIB) Library. + $! + $ $(CC)$(SDS_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX_LIB) : $(VAX_SOURCE) + $! + $! Building The $(VAX_LIB) Library. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(VAX_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB1) : $(VAX780_SOURCE1) + $! + $! Building The $(VAX780_LIB1) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB2) : $(VAX780_SOURCE2) + $! + $! Building The $(VAX780_LIB2) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PCAP_LIB) : $(PCAP_SOURCE) + $! + $! Building The $(PCAP_LIB) Library. + $! + $ SET DEFAULT $(PCAP_DIR) + $ @VMS_PCAP $(DEBUG) + $ SET DEFAULT [--] + $ IF (F$SEARCH("$(PCAP_LIB)").NES."") THEN - + DELETE $(PCAP_LIB); + $ COPY $(PCAP_DIR)PCAP.OLB $(PCAP_LIB) + $ DELETE/NOLOG/NOCONFIRM $(PCAP_DIR)*.OBJ;*,$(PCAP_DIR)*.OLB;* + +# +# If Not On VAX, Build The IBM 7094 Library. +# +.IF ALPHA_OR_IA64 +$(I7094_LIB) : $(I7094_SOURCE) + $! + $! Building The $(I7094_LIB) Library. + $! + $ $(CC)$(I7094_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(I7094_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)I7094-$(ARCH).OLB Library On VAX. +.ENDIF + +# +# Individual Simulator Builds. +# +ALTAIR : $(SIMH_LIB) $(ALTAIR_LIB) + $! + $! Building The $(BIN_DIR)ALTAIR-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIR_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIR-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIR_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ALTAIRZ80 : $(SIMH_LIB) $(ALTAIRZ80_LIB) + $! + $! Building The $(BIN_DIR)ALTAIRZ80-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIRZ80-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIRZ80_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +ECLIPSE : $(SIMH_LIB) $(ECLIPSE_LIB) + $! + $! Building The $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ECLIPSE_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ECLIPSE-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ECLIPSE_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +ECLIPSE : + $! Sorry, Can't Build $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +GRI : $(SIMH_LIB) $(GRI_LIB) + $! + $! Building The $(BIN_DIR)GRI-$(ARCH).EXE Simulator. + $! + $ $(CC)$(GRI_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)GRI-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(GRI_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +LGP : $(SIMH_LIB) $(LGP_LIB) + $! + $! Building The $(BIN_DIR)LGP-$(ARCH).EXE Simulator. + $! + $ $(CC)$(LGP_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)LGP-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(LGP_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +H316 : $(SIMH_LIB) $(H316_LIB) + $! + $! Building The $(BIN_DIR)H316-$(ARCH).EXE Simulator. + $! + $ $(CC)$(H316_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)H316-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(H316_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +HP2100 : $(SIMH_LIB) $(HP2100_LIB) + $! + $! Building The $(BIN_DIR)HP2100-$(ARCH).EXE Simulator. + $! + $ $(CC)$(HP2100_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)HP2100-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(HP2100_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1401 : $(SIMH_LIB) $(I1401_LIB) + $! + $! Building The $(BIN_DIR)I1401-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1401_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1401-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1401_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1620 : $(SIMH_LIB) $(I1620_LIB) + $! + $! Building The $(BIN_DIR)I1620-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1620_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1620-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1620_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +IBM1130 : $(SIMH_LIB) $(IBM1130_LIB) + $! + $! Building The $(BIN_DIR)IBM1130-$(ARCH).EXE Simulator. + $! + $ $(CC)$(IBM1130_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)IBM1130-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(IBM1130_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID16 : $(SIMH_LIB) $(ID16_LIB) + $! + $! Building The $(BIN_DIR)ID16-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID16_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID16-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID16_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID32 : $(SIMH_LIB) $(ID32_LIB) + $! + $! Building The $(BIN_DIR)ID32-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID32_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID32-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID32_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +NOVA : $(SIMH_LIB) $(NOVA_LIB) + $! + $! Building The $(BIN_DIR)NOVA-$(ARCH).EXE Simulator. + $! + $ $(CC)$(NOVA_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)NOVA-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(NOVA_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP1 : $(SIMH_LIB) $(PDP1_LIB) + $! + $! Building The $(BIN_DIR)PDP1-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP1_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP1-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP1_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP4 : $(SIMH_LIB) $(PDP4_LIB) + $! + $! Building The $(BIN_DIR)PDP4-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP4_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP4-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP4_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP7 : $(SIMH_LIB) $(PDP7_LIB) + $! + $! Building The $(BIN_DIR)PDP7-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP7_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP7-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP7_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP8 : $(SIMH_LIB) $(PDP8_LIB) + $! + $! Building The $(BIN_DIR)PDP8-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP8_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP8-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP8_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP9 : $(SIMH_LIB) $(PDP9_LIB) + $! + $! Building The $(BIN_DIR)PDP9-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP9_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP9-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP9_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +PDP10 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP10_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP10-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP10_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP10-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP10_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +PDP10 : + $! Sorry, Can't Build $(BIN_DIR)PDP10-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +PDP11 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP11-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP11_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP11-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP11_LIB1)/LIBRARY,$(PDP11_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP15 : $(SIMH_LIB) $(PDP15_LIB) + $! + $! Building The $(BIN_DIR)PDP15-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP15_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP15-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP15_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +S3 : $(SIMH_LIB) $(S3_LIB) + $! + $! Building The $(BIN_DIR)S3-$(ARCH).EXE Simulator. + $! + $ $(CC)$(S3_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)S3-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(S3_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +SDS : $(SIMH_LIB) $(SDS_LIB) + $! + $! Building The $(BIN_DIR)SDS-$(ARCH).EXE Simulator. + $! + $ $(CC)$(SDS_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)SDS-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX : $(SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(VAX_LIB)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX780 : $(SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX780-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX780-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,- + $(VAX780_LIB1)/LIBRARY,$(VAX780_LIB2)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The IBM 7094 Simulator. +# +.IF ALPHA_OR_IA64 +I7094 : $(SIMH_LIB) $(I7094_LIB) + $! + $! Building The $(BIN_DIR)I7094-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I7094_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I7094-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I7094_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +I7094 : + $! Sorry, Can't Build $(BIN_DIR)I7094-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +# +# PCAP VCI Components +# +$(PCAP_VCI) : $(PCAP_VCMDIR)PCAPVCM.EXE + $! + $! Installing the PCAP VCI Execlet in SYS$LOADABLE_IMAGES + $! + $ COPY $(PCAP_VCMDIR)PCAPVCM.EXE SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +$(PCAP_VCMDIR)PCAPVCM.EXE : $(PCAP_VCM_SOURCES) + $! + $! Building The PCAP VCI Execlet + $! + $ @SYS$DISK:[.PCAP-VMS.PCAPVCM]BUILD_PCAPVCM + $ DELETE/NOLOG/NOCONFIRM $(PCAP_VCMDIR)*.OBJ;*,$(PCAP_VCMDIR)*.MAP;* diff --git a/samples/Module Management System/openvms.mmk b/samples/Module Management System/openvms.mmk new file mode 100644 index 00000000..4a48d3c1 --- /dev/null +++ b/samples/Module Management System/openvms.mmk @@ -0,0 +1,563 @@ +# Copyright (C) 1997, 2000 Aladdin Enterprises. All rights reserved. +# +# This software is provided AS-IS with no warranty, either express or +# implied. +# +# This software is distributed under license and may not be copied, +# modified or distributed except as expressly authorized under the terms +# of the license contained in the file LICENSE in this distribution. +# +# For more information about licensing, please refer to +# http://www.ghostscript.com/licensing/. For information on +# commercial licensing, go to http://www.artifex.com/licensing/ or +# contact Artifex Software, Inc., 101 Lucas Valley Road #110, +# San Rafael, CA 94903, U.S.A., +1(415)492-9861. + +# $Id: openvms.mmk,v 1.31 2004/12/10 23:48:48 giles Exp $ +# makefile for OpenVMS VAX and Alpha using MMK +# +# Please contact Jim Dunham (dunham@omtool.com) if you have questions. +# Addapted for MMK by Jouk Jansen (joukj@hrem.stm.tudelft.nl) +# Support for VAX C on OpenVMS was removed in release 6.01 by Aladdin: +# DEC C is now used on both VAX and Alpha platforms. +# +# ------------------------------- Options ------------------------------- # + +###### This section is the only part of the file you should need to edit. + +# on the make command line specify: +# mmk/descrip=[.src]openvms.mmk/macro=("DECWINDOWS1_2={0,1}") + +# Define the directory for the final executable, and the +# source, generated intermediate file, and object directories +# for the graphics library (GL) and the PostScript/PDF interpreter (PS). + +BINDIR=[.bin] +GLSRCDIR=[.src] +GLGENDIR=[.obj] +GLOBJDIR=[.obj] +PSSRCDIR=[.src] +PSGENDIR=[.obj] +PSOBJDIR=[.obj] +PSLIBDIR=[.lib] +# Because of OpenVMS syntactic problems, the following redundant definitions +# are necessary. If you are using more than one GENDIR and/or OBJDIR, +# you will have to edit the code below that creates these directories. +BIN_DIR=BIN.DIR +OBJ_DIR=OBJ.DIR + +# create directories +.first + if f$search("$(BIN_DIR)") .eqs. "" then create/directory/log $(BINDIR) + if f$search("$(OBJ_DIR)") .eqs. "" then create/directory/log $(GLOBJDIR) + +# Do not edit the next group of lines. + +#.include $(COMMONDIR)vmscdefs.mak +#.include $(COMMONDIR)vmsdefs.mak +#.include $(COMMONDIR)generic.mak +.include $(GLSRCDIR)version.mak +DD=$(GLGENDIR) +GLD=$(GLGENDIR) +PSD=$(PSGENDIR) + +# ------ Generic options ------ # + +# Define the directory that will hold documentation at runtime. + +GS_DOCDIR=GS_DOC +#GS_DOCDIR=SYS$COMMON:[GS] + +# Define the default directory/ies for the runtime +# initialization and font files. Separate multiple directories with ,. + +GS_LIB_DEFAULT=GS_LIB +#GS_LIB_DEFAULT=SYS$COMMON:[GS],SYS$COMMON:[GS.FONT] + +# Define whether or not searching for initialization files should always +# look in the current directory first. This leads to well-known security +# and confusion problems, but users insist on it. +# NOTE: this also affects searching for files named on the command line: +# see the "File searching" section of Use.htm for full details. +# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended. + +SEARCH_HERE_FIRST=1 + +# Define the name of the interpreter initialization file. +# (There is no reason to change this.) + +GS_INIT=GS_INIT.PS + +# Choose generic configuration options. + +# Setting DEBUG=1 includes debugging features in the code + +DEBUG=0 + +# Setting TDEBUG=1 includes symbol table information for the debugger, +# and also enables stack tracing on failure. + +TDEBUG= + +# Setting CDEBUG=1 enables 'C' compiler debugging and turns off optimization +# Code is substantially slower and larger. + +CDEBUG= + +# Define the name of the executable file. + +GS=GS + +# Define the name of a pre-built executable that can be invoked at build +# time. Currently, this is only needed for compiled fonts. The usual +# alternatives are: +# - the standard name of Ghostscript on your system (typically `gs'): +BUILD_TIME_GS=GS +# - the name of the executable you are building now. If you choose this +# option, then you must build the executable first without compiled fonts, +# and then again with compiled fonts. +#BUILD_TIME_GS=$(BINDIR)$(GS) -I$(PSLIBDIR) + +# Define the directory where the IJG JPEG library sources are stored, +# and the major version of the library that is stored there. +# You may need to change this if the IJG library version changes. +# See jpeg.mak for more information. + +.ifdef SYSLIB +JSRCDIR=sys$library: +.else +JSRCDIR=[--.jpeg-6b] +.endif +JVERSION=6 + +# Define the directory where the PNG library sources are stored, +# and the version of the library that is stored there. +# You may need to change this if the libpng version changes. +# See libpng.mak for more information. + +.ifdef SYSLIB +PSRCDIR=sys$library: +.else +PSRCDIR=[--.libpng-1_2_8] +.endif +PVERSION=10208 + +# Define the directory where the zlib sources are stored. +# See zlib.mak for more information. + +.ifdef SYSLIB +ZSRCDIR=sys$library: +.else +ZSRCDIR=[--.zlib-1_2_1] +.endif + +# Define the directory where the jbig2dec library sources are stored. +# See jbig2.mak for more information +.ifdef SYSLIB +JBIG2SRCDIR=sys$library: +.else +JBIG2SRCDIR=[--.jbig2dec-0_7] +.endif + +# Define the directory where the icclib source are stored. +# See icclib.mak for more information + +ICCSRCDIR=[.icclib] + +# IJS has not been ported to OpenVMS. If you do the port, +# you'll need to set these values. You'll also need to +# include the ijs.mak makefile (right after icclib.mak). +# +# Define the directory where the ijs source is stored, +# and the process forking method to use for the server. +# See ijs.mak for more information. + +#IJSSRCDIR=[.ijs] +#IJSEXECTYPE=unix + +# Note that built-in third-party libraries aren't available. + +SHARE_JPEG=0 +SHARE_LIBPNG=0 +SHARE_ZLIB=0 +SHARE_JBIG2=0 + +# Define the path to X11 include files + +X_INCLUDE=DECW$INCLUDE + +# ------ Platform-specific options ------ # + +# Define the drive, directory, and compiler name for the 'C' compiler. +# COMP is the full compiler path name. + +.ifdef DEBUG +SW_DEBUG=/DEBUG/NOOPTIMIZE +.else +# This should include /OPTIMIZE, but some OpenVMS compilers have an +# optimizer bug that causes them to generate incorrect code for gdevpsfx.c, +# so we must disable optimization. (Eventually we will check for the bug +# in genarch and enable optimization if it is safe.) +#SW_DEBUG=/NODEBUG/OPTIMIZE +SW_DEBUG=/NODEBUG/NOOPTIMIZE +.endif + +SW_PLATFORM=/DECC/PREFIX=ALL/NESTED_INCLUDE=PRIMARY/name=(as_is,short)/nowarn + +# Define any other compilation flags. +# Including defines for A4 paper size + +.ifdef A4_PAPER +SW_PAPER=/DEFINE=("A4","HAVE_MKSTEMP") +.else +SW_PAPER=/DEFINE=("HAVE_MKSTEMP") +.endif + +.ifdef IEEE +SW_IEEE=/float=ieee +.else +SW_IEEE= +.endif + +COMP=CC$(SW_DEBUG)$(SW_PLATFORM)$(SW_PAPER)$(SW_IEEE) + +# LINK is the full linker path name + +.ifdef TDEBUG +LINKER=LINK/DEBUG/TRACEBACK +.else +LINKER=LINK/NODEBUG/NOTRACEBACK +.endif + +# INCDIR contains the include files +INCDIR= + +# LIBDIR contains the library files +LIBDIR= + +# Define the .dev module that implements thread and synchronization +# primitives for this platform. Don't change this unless you really know +# what you're doing. + +SYNC=posync + +# ------ Devices and features ------ # + +# Choose the device(s) to include. See devs.mak for details, +# devs.mak and contrib.mak for the list of available devices. + +DEVICE_DEVS=$(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev +DEVICE_DEVS1= +DEVICE_DEVS2= +DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev $(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev +DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev $(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev +DEVICE_DEVS5=$(DD)uniprint.dev +DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev +DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev +DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev +DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev +DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev +DEVICE_DEVS11=$(DD)tiff12nc.dev $(DD)tiff24nc.dev +DEVICE_DEVS12=$(DD)psmono.dev $(DD)psgray.dev $(DD)psrgb.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev +DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev +DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev +DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev +DEVICE_DEVS16=$(DD)bbox.dev +# Overflow from DEVS9 +DEVICE_DEVS17=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)pkm.dev $(DD)pkmraw.dev $(DD)pksm.dev $(DD)pksmraw.dev +DEVICE_DEVS18= +DEVICE_DEVS19= +DEVICE_DEVS20= +DEVICE_DEVS21= +DEVICE_DEVS21= + +# Choose the language feature(s) to include. See gs.mak for details. + +FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)fapi.dev $(PSD)jbig2.dev + +# Choose whether to compile the .ps initialization files into the executable. +# See gs.mak for details. + +COMPILE_INITS=0 + +# Choose whether to store band lists on files or in memory. +# The choices are 'file' or 'memory'. + +BAND_LIST_STORAGE=file + +# Choose which compression method to use when storing band lists in memory. +# The choices are 'lzw' or 'zlib'. + +BAND_LIST_COMPRESSOR=zlib + +# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'. +# See gs.mak and sfxfd.c for more details. + +FILE_IMPLEMENTATION=stdio + +# Choose the implementation of stdio: '' for file I/O and 'c' for callouts +# See gs.mak and ziodevs.c/ziodevsc.c for more details. + +STDIO_IMPLEMENTATION=c + +# Define the name table capacity size of 2^(16+n). + +EXTEND_NAMES=0 + +# Define whether the system constants are writable. + +SYSTEM_CONSTANTS_ARE_WRITABLE=0 + +# Define the platform name. + +PLATFORM=openvms_ + +# Define the name of the makefile -- used in dependencies. + +MAKEFILE=$(GLSRCDIR)openvms.mmk +TOP_MAKEFILES=$(MAKEFILE) + +# Define the platform options + +PLATOPT= + +# Patch a couple of PC-specific things that aren't relevant to OpenVMS builds, +# but that cause `make' to produce warnings. + +PCFBASM= + +# It is very unlikely that anyone would want to edit the remaining +# symbols, but we describe them here for completeness: + +# Define the suffix for command files (e.g., null or .bat). + +CMD= + +# Define the directory separator character (\ for MS-DOS, / for Unix, +# nothing for OpenVMS). + +D= + +# Define the brackets for passing preprocessor definitions to the C compiler. +NULL= + +D_=/DEFINE=" +_D_=$(NULL)= +_D=" + +# Define the syntax of search paths for the C compiler. +# The OpenVMS compilers uses /INCLUDE=(dir1, dir2, ...dirn), +# and only a single /INCLUDE switch is allowed in the command line. + +I_=/INCLUDE=( +II=, +_I=) + +# Define the string for specifying the output file from the C compiler. + +O_=/OBJECT= + +# Define the quoting string for mixed-case arguments. +# (OpenVMS is the only platform where this isn't an empty string.) + +Q=" + +# Define the extension for executable files (e.g., null or .exe). + +XE=.exe + +# Define the extension for executable files for the auxiliary programs +# (e.g., null or .exe). + +XEAUX=.exe + +# Define the list of files that `make clean' removes. + +BEGINFILES=$(GLSRCDIR)OPENVMS.OPT $(GLSRCDIR)OPENVMS.COM + +# Define the C invocation for auxiliary programs (echogs, genarch). +# We don't need to define this separately. + +CCAUX= + +# Define the C invocation for normal compilation. + +CC=$(COMP) + +# Define the Link invocation. + +LINK=$(LINKER)/EXE=$@ $+,$(GLSRCDIR)OPENVMS.OPT/OPTION + +# Define the auxiliary program dependency. We don't need this. + +AK= + +# Define the syntax for command, object, and executable files. + +OBJ=obj + +# Define the prefix for image invocations. + +EXP=MCR $(NULL) + +# Define the prefix for shell invocations. + +SH= + +# Define generic commands. + +CP_=@$(GLSRCDIR)COPY_ONE + +# Define the command for deleting (a) file(s) (including wild cards) + +RM_=@$(GLSRCDIR)RM_ONE + +# Define the command for deleting multiple files / patterns. + +RMN_=@$(GLSRCDIR)RM_ALL + +# Define the arguments for genconf. + +CONFILES=-p %s +CONFLDTR=-o + +# Define the generic compilation rules. + +.suffixes : .c .obj .exe + +.obj.exe : + $(LINK) + +# ---------------------------- End of options ---------------------------- # + +# Define various incantations of the 'c' compiler. + +CC_=$(COMP) +CC_INT=$(CC_) +CC_NO_WARN=$(CC_) + +# ------------------- Include the generic makefiles ---------------------- # + +all : macro [.lib]Fontmap. $(GS_XE) + +#.include $(COMMONDIR)/ansidefs.mak +#.include $(COMMONDIR)/vmsdefs.mak +#.include $(COMMONDIR)/generic.mak +.include $(GLSRCDIR)gs.mak +.include $(GLSRCDIR)lib.mak +.include $(PSSRCDIR)int.mak +.include $(PSSRCDIR)cfonts.mak +.include $(GLSRCDIR)jpeg.mak +# zlib.mak must precede libpng.mak +.include $(GLSRCDIR)zlib.mak +.include $(GLSRCDIR)libpng.mak +JBIG2_EXTRA_OBJS=$(JBIG2OBJDIR)$(D)snprintf.$(OBJ) +.include $(GLSRCDIR)jbig2.mak +.include $(GLSRCDIR)icclib.mak +.include $(GLSRCDIR)devs.mak +.include $(GLSRCDIR)contrib.mak + + +# ----------------------------- Main program ------------------------------ + +macro : +.ifdef A4_PAPER + @ a4p = 1 +.else + @ a4p = 0 +.endif +.ifdef IEEE + @ i3e = 1 +.else + @ i3e = 0 +.endif +.ifdef SYSLIB + @ dsl = 1 +.else + @ dsl = 0 +.endif + @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes."" + @ decw12 = f$search("SYS$SHARE:DECW$XTLIBSHRR5.EXE").nes."" + @ macro = "" + @ if dsl.or.a4p.or.decc.or.decw12 then macro = "/MACRO=(" + @ if decw12 then macro = macro + "DECWINDOWS1_2=1," + @ if a4p then macro = macro + "A4_PAPER=1," + @ if dsl then macro = macro + "SYSLIB=1," + @ if i3e then macro = macro + "IEEE=1," + @ if macro.nes."" then macro = f$extract(0,f$length(macro)-1,macro)+ ")" + $(MMS)$(MMSQUALIFIERS)'macro' $(GS_XE) + +$(GS_XE) : openvms $(GLGEN)arch.h $(GLOBJDIR)gs.$(OBJ) $(INT_ALL) $(LIB_ALL) + $(LINKER)/EXE=$@ $(GLOBJDIR)gs.$(OBJ),$(ld_tr)/OPTIONS,$(GLSRCDIR)OPENVMS.OPT/OPTION + @ Write Sys$Output "Build of GhostScript is complete!" + +# OpenVMS.dev + +openvms__=$(GLOBJ)gp_getnv.$(OBJ) $(GLOBJ)gp_vms.$(OBJ) $(GLOBJ)gp_stdia.$(OBJ) +$(GLGEN)openvms_.dev : $(openvms__) $(GLGEN)nosync.dev + $(SETMOD) $(GLGEN)openvms_ $(openvms__) -include $(GLGEN)nosync + +$(ECHOGS_XE) : $(GLOBJDIR)echogs.$(OBJ) +$(GENARCH_XE) : $(GLOBJDIR)genarch.$(OBJ) +$(GENCONF_XE) : $(GLOBJDIR)genconf.$(OBJ) +$(GENDEV_XE) : $(GLOBJDIR)gendev.$(OBJ) +$(GENHT_XE) : $(GLOBJDIR)genht.$(OBJ) +$(GENINIT_XE) : $(GLOBJDIR)geninit.$(OBJ) + +$(GLOBJDIR)echogs.$(OBJ) : $(GLSRCDIR)echogs.c +$(GLOBJDIR)genarch.$(OBJ) : $(GLSRCDIR)genarch.c $(GENARCH_DEPS) +$(GLOBJDIR)genconf.$(OBJ) : $(GLSRCDIR)genconf.c $(GENCONF_DEPS) +$(GLOBJDIR)gendev.$(OBJ) : $(GLSRCDIR)gendev.c $(GENDEV_DEPS) +# ****** NEED TO ADD $(GENHT_CFLAGS) HERE ****** +$(GLOBJDIR)genht.$(OBJ) : $(GLSRCDIR)genht.c $(GENHT_DEPS) +$(GLOBJDIR)geninit.$(OBJ) : $(GLSRCDIR)geninit.c $(GENINIT_DEPS) + +$(GLOBJ)gp_vms.$(OBJ) : $(GLSRC)gp_vms.c $(string__h) $(memory__h) $(gx_h) $(gp_h) $(gpmisc_h) $(gsstruct_h) + $(CC_)/include=($(GLGENDIR),$(GLSRCDIR))/obj=$(GLOBJ)gp_vms.$(OBJ) $(GLSRC)gp_vms.c + +$(GLOBJ)gp_stdia.$(OBJ) : $(GLSRC)gp_stdia.c $(AK) $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h) + $(CC_)/incl=$(GLOBJ)/obj=$(GLOBJ)gp_stdia.$(OBJ) $(GLSRC)gp_stdia.c + +# Preliminary definitions + +openvms : $(GLSRCDIR)openvms.com $(GLSRCDIR)openvms.opt + @$(GLSRCDIR)OPENVMS + +$(GLSRCDIR)openvms.com : $(GLSRCDIR)append_l.com + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB X11 $(X_INCLUDE)" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB GS_LIB ''F$ENVIRONMENT(""DEFAULT"")'" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB GS_DOC ''F$ENVIRONMENT(""DEFAULT"")'" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB DECC$USER_INCLUDE ''F$ENVIRONMENT(""DEFAULT"")', DECW$INCLUDE, DECC$LIBRARY_INCLUDE, SYS$LIBRARY" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB DECC$SYSTEM_INCLUDE ''F$ENVIRONMENT(""DEFAULT"")', DECW$INCLUDE, DECC$LIBRARY_INCLUDE, SYS$LIBRARY" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB SYS "DECC$LIBRARY_INCLUDE,SYS$LIBRARY" + +$(GLSRCDIR)openvms.opt : +.ifdef DECWINDOWS1_2 + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XMLIBSHR12.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XTLIBSHRR5.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" +.else + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XMLIBSHR.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XTSHR.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" +.endif + @$(GLSRCDIR)APPEND_L $@ ""Ident="""""GS $(GS_DOT_VERSION)""""" + +# The platform-specific makefiles must also include rules for creating +# certain dynamically generated files: +# gconfig_.h - this indicates the presence or absence of +# certain system header files that are located in different +# places on different systems. (It could be generated by +# the GNU `configure' program.) +# gconfigv.h - this indicates the status of certain machine- +# and configuration-specific features derived from definitions +# in the platform-specific makefile. + +$(gconfig__h) : $(TOP_MAKEFILES) $(ECHOGS_XE) + $(EXP)$(ECHOGS_XE) -w $(gconfig__h) -x 23 define "HAVE_SYS_TIME_H" + +$(gconfigv_h) : $(TOP_MAKEFILES) $(ECHOGS_XE) + $(EXP)$(ECHOGS_XE) -w $(gconfigv_h) -x 23 define "USE_ASM" 0 + $(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "USE_FPU" 1 + $(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "EXTEND_NAMES" 0$(EXTEND_NAMES) + $(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "SYSTEM_CONSTANTS_ARE_WRITABLE" 0$(SYSTEM_CONSTANTS_ARE_WRITABLE) diff --git a/samples/Module Management System/simh_descrip.mms b/samples/Module Management System/simh_descrip.mms new file mode 100755 index 00000000..f6530a56 --- /dev/null +++ b/samples/Module Management System/simh_descrip.mms @@ -0,0 +1,1204 @@ +# DESCRIP.MMS +# Written By: Robert Alan Byer / byer@mail.ourservers.net +# Modified By: Mark Pizzolato / mark@infocomm.com +# Norman Lastovica / norman.lastovica@oracle.com +# +# This MMS/MMK build script is used to compile the various simulators in +# the SIMH package for OpenVMS using DEC C v6.0-001(AXP), v6.5-001(AXP), +# HP C V7.2-001 (IA64) and v6.4-005(VAX). +# +# Notes: On VAX, the PDP-10 and Eclipse simulators will not be built +# due to the fact that INT64 is required for that simulator. +# +# This build script will accept the following build options. +# +# ALL Just Build "Everything". +# ALTAIR Just Build The MITS Altair. +# ALTAIRZ80 Just Build The MITS Altair Z80. +# ECLIPSE Just Build The Data General Eclipse. +# GRI Just Build The GRI Corporation GRI-909. +# LGP Just Build The Royal-McBee LGP-30. +# H316 Just Build The Honewell 316/516. +# HP2100 Just Build The Hewlett-Packard HP-2100. +# I1401 Just Build The IBM 1401. +# I1620 Just Build The IBM 1620. +# IBM1130 Just Build The IBM 1130. +# ID16 Just Build The Interdata 16-bit CPU. +# ID32 Just Build The Interdata 32-bit CPU. +# NOVA Just Build The Data General Nova. +# PDP1 Just Build The DEC PDP-1. +# PDP4 Just Build The DEC PDP-4. +# PDP7 Just Build The DEC PDP-7. +# PDP8 Just Build The DEC PDP-8. +# PDP9 Just Build The DEC PDP-9. +# PDP10 Just Build The DEC PDP-10. +# PDP11 Just Build The DEC PDP-11. +# PDP15 Just Build The DEC PDP-15. +# S3 Just Build The IBM System 3. +# SDS Just Build The SDS 940. +# VAX Just Build The DEC VAX. +# VAX780 Just Build The DEC VAX780. +# CLEAN Will Clean Files Back To Base Kit. +# +# To build with debugging enabled (which will also enable traceback +# information) use.. +# +# MMK/MACRO=(DEBUG=1) +# +# This will produce an executable named {Simulator}-{I64|VAX|AXP}-DBG.EXE +# + +# Let's See If We Are Going To Build With DEBUG Enabled. Always compile +# /DEBUG so that the traceback and debug information is always available +# in the object files. + +CC_DEBUG = /DEBUG + +.IFDEF DEBUG +LINK_DEBUG = /DEBUG/TRACEBACK +CC_OPTIMIZE = /NOOPTIMIZE + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = AXP-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = I64-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX-DBG +CC_DEFS = "__VAX" +.ENDIF + +.ELSE +LINK_DEBUG = /NODEBUG/NOTRACEBACK + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5)/ARCH=HOST +CC_FLAGS = /PREF=ALL +ARCH = AXP +CC_DEFS = "_LARGEFILE" +LINK_SECTION_BINDING = /SECTION_BINDING +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5) +CC_FLAGS = /PREF=ALL +ARCH = I64 +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_OPTIMIZE = /OPTIMIZE +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX +CC_DEFS = "__VAX" +.ENDIF + +.ENDIF + +# Define Our Compiler Flags & Define The Compile Command +OUR_CC_FLAGS = $(CC_FLAGS)$(CC_DEBUG)$(CC_OPTIMIZE) \ + /NEST=PRIMARY/NAME=(AS_IS,SHORT) +CC = CC/DECC$(OUR_CC_FLAGS) + +# Define The BIN Directory Where The Executables Will Go. +# Define Our Library Directory. +# Define The platform specific Build Directory Where The Objects Will Go. +# +BIN_DIR = SYS$DISK:[.BIN] +LIB_DIR = SYS$DISK:[.LIB] +BLD_DIR = SYS$DISK:[.LIB.BLD-$(ARCH)] + +# Check To Make Sure We Have SYS$DISK:[.BIN] & SYS$DISK:[.LIB] Directory. +# +.FIRST + @ IF (F$SEARCH("SYS$DISK:[]BIN.DIR").EQS."") THEN CREATE/DIRECTORY $(BIN_DIR) + @ IF (F$SEARCH("SYS$DISK:[]LIB.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) + @ IF (F$SEARCH("SYS$DISK:[.LIB]BLD-$(ARCH).DIR").EQS."") THEN CREATE/DIRECTORY $(BLD_DIR) + @ IF (F$SEARCH("$(BLD_DIR)*.*").NES."") THEN DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.*;* + @ IF "".NES."''CC'" THEN DELETE/SYMBOL/GLOBAL CC + +# Core SIMH File Definitions. +# +SIMH_DIR = SYS$DISK:[] +SIMH_LIB = $(LIB_DIR)SIMH-$(ARCH).OLB +SIMH_SOURCE = $(SIMH_DIR)SIM_CONSOLE.C,$(SIMH_DIR)SIM_SOCK.C,\ + $(SIMH_DIR)SIM_TMXR.C,$(SIMH_DIR)SIM_ETHER.C,\ + $(SIMH_DIR)SIM_TAPE.C,$(SIMH_DIR)SIM_FIO.C,\ + $(SIMH_DIR)SIM_TIMER.C + +# VMS PCAP File Definitions. +# +PCAP_DIR = SYS$DISK:[.PCAP-VMS.PCAP-VCI] +PCAP_LIB = $(LIB_DIR)PCAP-$(ARCH).OLB +PCAP_SOURCE = \ + $(PCAP_DIR)PCAPVCI.C,$(PCAP_DIR)VCMUTIL.C,\ + $(PCAP_DIR)BPF_DUMP.C,$(PCAP_DIR)BPF_FILTER.C,\ + $(PCAP_DIR)BPF_IMAGE.C,$(PCAP_DIR)ETHERENT.C,\ + $(PCAP_DIR)FAD-GIFC.C,$(PCAP_DIR)GENCODE.C,\ + $(PCAP_DIR)GRAMMAR.C,$(PCAP_DIR)INET.C,\ + $(PCAP_DIR)NAMETOADDR.C,$(PCAP_DIR)OPTIMIZE.C,\ + $(PCAP_DIR)PCAP.C,$(PCAP_DIR)SAVEFILE.C,\ + $(PCAP_DIR)SCANNER.C,$(PCAP_DIR)SNPRINTF.C,\ + $(PCAP_DIR)PCAP-VMS.C +PCAP_VCMDIR = SYS$DISK:[.PCAP-VMS.PCAPVCM] +PCAP_VCM_SOURCES = $(PCAP_VCMDIR)PCAPVCM.C,$(PCAP_VCMDIR)PCAPVCM_INIT.MAR,\ + $(PCAP_VCMDIR)VCI_JACKET.MAR,$(PCAP_VCMDIR)VCMUTIL.C +PCAP_VCI = SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +# PCAP is not available on OpenVMS VAX or IA64 right now +# +.IFDEF MMSALPHA +PCAP_EXECLET = $(PCAP_VCI) +PCAP_INC = ,$(PCAP_DIR) +PCAP_LIBD = $(PCAP_LIB) +PCAP_LIBR = ,$(PCAP_LIB)/LIB/SYSEXE +PCAP_DEFS = ,"USE_NETWORK=1" +PCAP_SIMH_INC = /INCL=($(PCAP_DIR)) +.ENDIF + +# MITS Altair Simulator Definitions. +# +ALTAIR_DIR = SYS$DISK:[.ALTAIR] +ALTAIR_LIB = $(LIB_DIR)ALTAIR-$(ARCH).OLB +ALTAIR_SOURCE = $(ALTAIR_DIR)ALTAIR_SIO.C,$(ALTAIR_DIR)ALTAIR_CPU.C,\ + $(ALTAIR_DIR)ALTAIR_DSK.C,$(ALTAIR_DIR)ALTAIR_SYS.C +ALTAIR_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIR_DIR))/DEF=($(CC_DEFS)) + +# +# MITS Altair Z80 Simulator Definitions. +# +ALTAIRZ80_DIR = SYS$DISK:[.ALTAIRZ80] +ALTAIRZ80_LIB = $(LIB_DIR)ALTAIRZ80-$(ARCH).OLB +ALTAIRZ80_SOURCE = $(ALTAIRZ80_DIR)/ALTAIRZ80_CPU.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_CPU_NOMMU.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_DSK.C,$(ALTAIRZ80_DIR)/DISASM.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_SIO.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_SYS.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_HDSK.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_NET.C,\ + $(ALTAIRZ80_DIR)/FLASHWRITER2.C,$(ALTAIRZ80_DIR)/I86_DECODE.C,\ + $(ALTAIRZ80_DIR)/I86_OPS.C,$(ALTAIRZ80_DIR)/I86_PRIM_OPS.C,\ + $(ALTAIRZ80_DIR)/I8272.C,$(ALTAIRZ80_DIR)/INSNSA.C,$(ALTAIRZ80_DIR)/INSNSD.C,\ + $(ALTAIRZ80_DIR)/MFDC.C,$(ALTAIRZ80_DIR)/N8VEM.C,$(ALTAIRZ80_DIR)/VFDHD.C,\ + $(ALTAIRZ80_DIR)/S100_DISK1A.C,$(ALTAIRZ80_DIR)/S100_DISK2.C,\ + $(ALTAIRZ80_DIR)/S100_FIF.C,$(ALTAIRZ80_DIR)/S100_MDRIVEH.C,\ + $(ALTAIRZ80_DIR)/S100_MDSAD.C,$(ALTAIRZ80_DIR)/S100_SELCHAN.C,\ + $(ALTAIRZ80_DIR)/S100_SS1.C,$(ALTAIRZ80_DIR)/S100_64FDC.C,\ + $(ALTAIRZ80_DIR)/S100_SCP300F.C,$(ALTAIRZ80_DIR)/SIM_IMD.C,\ + $(ALTAIRZ80_DIR)/WD179X.C +ALTAIRZ80_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIRZ80_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Nova Simulator Definitions. +# +NOVA_DIR = SYS$DISK:[.NOVA] +NOVA_LIB = $(LIB_DIR)NOVA-$(ARCH).OLB +NOVA_SOURCE = $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_CPU.C,\ + $(NOVA_DIR)NOVA_DKP.C,$(NOVA_DIR)NOVA_DSK.C,\ + $(NOVA_DIR)NOVA_LP.C,$(NOVA_DIR)NOVA_MTA.C,\ + $(NOVA_DIR)NOVA_PLT.C,$(NOVA_DIR)NOVA_PT.C,\ + $(NOVA_DIR)NOVA_CLK.C,$(NOVA_DIR)NOVA_TT.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +NOVA_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Eclipse Simulator Definitions. +# +ECLIPSE_LIB = $(LIB_DIR)ECLIPSE-$(ARCH).OLB +ECLIPSE_SOURCE = $(NOVA_DIR)ECLIPSE_CPU.C,$(NOVA_DIR)ECLIPSE_TT.C,\ + $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_DKP.C,\ + $(NOVA_DIR)NOVA_DSK.C,$(NOVA_DIR)NOVA_LP.C,\ + $(NOVA_DIR)NOVA_MTA.C,$(NOVA_DIR)NOVA_PLT.C,\ + $(NOVA_DIR)NOVA_PT.C,$(NOVA_DIR)NOVA_CLK.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +ECLIPSE_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","ECLIPSE=1") + +# +# GRI Corporation GRI-909 Simulator Definitions. +# +GRI_DIR = SYS$DISK:[.GRI] +GRI_LIB = $(LIB_DIR)GRI-$(ARCH).OLB +GRI_SOURCE = $(GRI_DIR)GRI_CPU.C,$(GRI_DIR)GRI_STDDEV.C,$(GRI_DIR)GRI_SYS.C +GRI_OPTIONS = /INCL=($(SIMH_DIR),$(GRI_DIR))/DEF=($(CC_DEFS)) + +# +# Royal-McBee LGP-30 Simulator Definitions. +# +LGP_DIR = SYS$DISK:[.LGP] +LGP_LIB = $(LIB_DIR)LGP-$(ARCH).OLB +LGP_SOURCE = $(LGP_DIR)LGP_CPU.C,$(LGP_DIR)LGP_STDDEV.C,$(LGP_DIR)LGP_SYS.C +LGP_OPTIONS = /INCL=($(SIMH_DIR),$(LGP_DIR))/DEF=($(CC_DEFS)) + +# +# Honeywell 316/516 Simulator Definitions. +# +H316_DIR = SYS$DISK:[.H316] +H316_LIB = $(LIB_DIR)H316-$(ARCH).OLB +H316_SOURCE = $(H316_DIR)H316_STDDEV.C,$(H316_DIR)H316_LP.C,\ + $(H316_DIR)H316_CPU.C,$(H316_DIR)H316_SYS.C,\ + $(H316_DIR)H316_FHD.C,$(H316_DIR)H316_MT.C,\ + $(H316_DIR)H316_DP.C +H316_OPTIONS = /INCL=($(SIMH_DIR),$(H316_DIR))/DEF=($(CC_DEFS)) + +# +# Hewlett-Packard HP-2100 Simulator Definitions. +# +HP2100_DIR = SYS$DISK:[.HP2100] +HP2100_LIB = $(LIB_DIR)HP2100-$(ARCH).OLB +HP2100_SOURCE = $(HP2100_DIR)HP2100_STDDEV.C,$(HP2100_DIR)HP2100_DP.C,\ + $(HP2100_DIR)HP2100_DQ.C,$(HP2100_DIR)HP2100_DR.C,\ + $(HP2100_DIR)HP2100_LPS.C,$(HP2100_DIR)HP2100_MS.C,\ + $(HP2100_DIR)HP2100_MT.C,$(HP2100_DIR)HP2100_MUX.C,\ + $(HP2100_DIR)HP2100_CPU.C,$(HP2100_DIR)HP2100_FP.C,\ + $(HP2100_DIR)HP2100_SYS.C,$(HP2100_DIR)HP2100_LPT.C,\ + $(HP2100_DIR)HP2100_IPL.C,$(HP2100_DIR)HP2100_DS.C,\ + $(HP2100_DIR)HP2100_CPU0.C,$(HP2100_DIR)HP2100_CPU1.C,\ + $(HP2100_DIR)HP2100_CPU2.C,$(HP2100_DIR)HP2100_CPU3.C,\ + $(HP2100_DIR)HP2100_CPU4.C,$(HP2100_DIR)HP2100_CPU5.C,\ + $(HP2100_DIR)HP2100_CPU6.C,$(HP2100_DIR)HP2100_CPU7.C,\ + $(HP2100_DIR)HP2100_FP1.C,$(HP2100_DIR)HP2100_BACI.C,\ + $(HP2100_DIR)HP2100_MPX.C,$(HP2100_DIR)HP2100_PIF.C +.IF ALPHA_OR_IA64 +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))\ + /DEF=($(CC_DEFS),"HAVE_INT64=1") +.ELSE +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))/DEF=($(CC_DEFS)) +.ENDIF + +# +# Interdata 16-bit CPU. +# +ID16_DIR = SYS$DISK:[.INTERDATA] +ID16_LIB = $(LIB_DIR)ID16-$(ARCH).OLB +ID16_SOURCE = $(ID16_DIR)ID16_CPU.C,$(ID16_DIR)ID16_SYS.C,$(ID16_DIR)ID_DP.C,\ + $(ID16_DIR)ID_FD.C,$(ID16_DIR)ID_FP.C,$(ID16_DIR)ID_IDC.C,\ + $(ID16_DIR)ID_IO.C,$(ID16_DIR)ID_LP.C,$(ID16_DIR)ID_MT.C,\ + $(ID16_DIR)ID_PAS.C,$(ID16_DIR)ID_PT.C,$(ID16_DIR)ID_TT.C,\ + $(ID16_DIR)ID_UVC.C,$(ID16_DIR)ID16_DBOOT.C,$(ID16_DIR)ID_TTP.C +ID16_OPTIONS = /INCL=($(SIMH_DIR),$(ID16_DIR))/DEF=($(CC_DEFS)) + +# +# Interdata 32-bit CPU. +# +ID32_DIR = SYS$DISK:[.INTERDATA] +ID32_LIB = $(LIB_DIR)ID32-$(ARCH).OLB +ID32_SOURCE = $(ID32_DIR)ID32_CPU.C,$(ID32_DIR)ID32_SYS.C,$(ID32_DIR)ID_DP.C,\ + $(ID32_DIR)ID_FD.C,$(ID32_DIR)ID_FP.C,$(ID32_DIR)ID_IDC.C,\ + $(ID32_DIR)ID_IO.C,$(ID32_DIR)ID_LP.C,$(ID32_DIR)ID_MT.C,\ + $(ID32_DIR)ID_PAS.C,$(ID32_DIR)ID_PT.C,$(ID32_DIR)ID_TT.C,\ + $(ID32_DIR)ID_UVC.C,$(ID32_DIR)ID32_DBOOT.C,$(ID32_DIR)ID_TTP.C +ID32_OPTIONS = /INCL=($(SIMH_DIR),$(ID32_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1130 Simulator Definitions. +# +IBM1130_DIR = SYS$DISK:[.IBM1130] +IBM1130_LIB = $(LIB_DIR)IBM1130-$(ARCH).OLB +IBM1130_SOURCE = $(IBM1130_DIR)IBM1130_CPU.C,$(IBM1130_DIR)IBM1130_CR.C,\ + $(IBM1130_DIR)IBM1130_DISK.C,$(IBM1130_DIR)IBM1130_STDDEV.C,\ + $(IBM1130_DIR)IBM1130_SYS.C,$(IBM1130_DIR)IBM1130_GDU.C,\ + $(IBM1130_DIR)IBM1130_GUI.C,$(IBM1130_DIR)IBM1130_PRT.C,\ + $(IBM1130_DIR)IBM1130_FMT.C,$(IBM1130_DIR)IBM1130_PTRP.C,\ + $(IBM1130_DIR)IBM1130_PLOT.C,$(IBM1130_DIR)IBM1130_SCA.C,\ + $(IBM1130_DIR)IBM1130_T2741.C +IBM1130_OPTIONS = /INCL=($(SIMH_DIR),$(IBM1130_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1401 Simulator Definitions. +# +I1401_DIR = SYS$DISK:[.I1401] +I1401_LIB = $(LIB_DIR)I1401-$(ARCH).OLB +I1401_SOURCE = $(I1401_DIR)I1401_LP.C,$(I1401_DIR)I1401_CPU.C,\ + $(I1401_DIR)I1401_IQ.C,$(I1401_DIR)I1401_CD.C,\ + $(I1401_DIR)I1401_MT.C,$(I1401_DIR)I1401_DP.C,\ + $(I1401_DIR)I1401_SYS.C +I1401_OPTIONS = /INCL=($(SIMH_DIR),$(I1401_DIR))/DEF=($(CC_DEFS)) + + +# +# IBM 1620 Simulators Definitions. +# +I1620_DIR = SYS$DISK:[.I1620] +I1620_LIB = $(LIB_DIR)I1620-$(ARCH).OLB +I1620_SOURCE = $(I1620_DIR)I1620_CD.C,$(I1620_DIR)I1620_DP.C,\ + $(I1620_DIR)I1620_PT.C,$(I1620_DIR)I1620_TTY.C,\ + $(I1620_DIR)I1620_CPU.C,$(I1620_DIR)I1620_LP.C,\ + $(I1620_DIR)I1620_FP.C,$(I1620_DIR)I1620_SYS.C +I1620_OPTIONS = /INCL=($(SIMH_DIR),$(I1620_DIR))/DEF=($(CC_DEFS)) + +# +# PDP-1 Simulator Definitions. +# +PDP1_DIR = SYS$DISK:[.PDP1] +PDP1_LIB = $(LIB_DIR)PDP1-$(ARCH).OLB +PDP1_SOURCE = $(PDP1_DIR)PDP1_LP.C,$(PDP1_DIR)PDP1_CPU.C,\ + $(PDP1_DIR)PDP1_STDDEV.C,$(PDP1_DIR)PDP1_SYS.C,\ + $(PDP1_DIR)PDP1_DT.C,$(PDP1_DIR)PDP1_DRM.C,\ + $(PDP1_DIR)PDP1_CLK.C,$(PDP1_DIR)PDP1_DCS.C +PDP1_OPTIONS = /INCL=($(SIMH_DIR),$(PDP1_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-8 Simulator Definitions. +# +PDP8_DIR = SYS$DISK:[.PDP8] +PDP8_LIB = $(LIB_DIR)PDP8-$(ARCH).OLB +PDP8_SOURCE = $(PDP8_DIR)PDP8_CPU.C,$(PDP8_DIR)PDP8_CLK.C,\ + $(PDP8_DIR)PDP8_DF.C,$(PDP8_DIR)PDP8_DT.C,\ + $(PDP8_DIR)PDP8_LP.C,$(PDP8_DIR)PDP8_MT.C,\ + $(PDP8_DIR)PDP8_PT.C,$(PDP8_DIR)PDP8_RF.C,\ + $(PDP8_DIR)PDP8_RK.C,$(PDP8_DIR)PDP8_RX.C,\ + $(PDP8_DIR)PDP8_SYS.C,$(PDP8_DIR)PDP8_TT.C,\ + $(PDP8_DIR)PDP8_TTX.C,$(PDP8_DIR)PDP8_RL.C,\ + $(PDP8_DIR)PDP8_TSC.C,$(PDP8_DIR)PDP8_TD.C,\ + $(PDP8_DIR)PDP8_CT.C +PDP8_OPTIONS = /INCL=($(SIMH_DIR),$(PDP8_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-4, PDP-7, PDP-9 And PDP-15 Simulator Definitions. +# +PDP18B_DIR = SYS$DISK:[.PDP18B] +PDP4_LIB = $(LIB_DIR)PDP4-$(ARCH).OLB +PDP7_LIB = $(LIB_DIR)PDP7-$(ARCH).OLB +PDP9_LIB = $(LIB_DIR)PDP9-$(ARCH).OLB +PDP15_LIB = $(LIB_DIR)PDP15-$(ARCH).OLB +PDP18B_SOURCE = $(PDP18B_DIR)PDP18B_DT.C,$(PDP18B_DIR)PDP18B_DRM.C,\ + $(PDP18B_DIR)PDP18B_CPU.C,$(PDP18B_DIR)PDP18B_LP.C,\ + $(PDP18B_DIR)PDP18B_MT.C,$(PDP18B_DIR)PDP18B_RF.C,\ + $(PDP18B_DIR)PDP18B_RP.C,$(PDP18B_DIR)PDP18B_STDDEV.C,\ + $(PDP18B_DIR)PDP18B_SYS.C,$(PDP18B_DIR)PDP18B_TT1.C,\ + $(PDP18B_DIR)PDP18B_RB.C,$(PDP18B_DIR)PDP18B_FPP.C +PDP4_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP4=1") +PDP7_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP7=1") +PDP9_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP9=1") +PDP15_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP15=1") + +# +# Digital Equipment PDP-11 Simulator Definitions. +# +PDP11_DIR = SYS$DISK:[.PDP11] +PDP11_LIB1 = $(LIB_DIR)PDP11L1-$(ARCH).OLB +PDP11_SOURCE1 = $(PDP11_DIR)PDP11_FP.C,$(PDP11_DIR)PDP11_CPU.C,\ + $(PDP11_DIR)PDP11_DZ.C,$(PDP11_DIR)PDP11_CIS.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_RK.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_RX.C,$(PDP11_DIR)PDP11_STDDEV.C,\ + $(PDP11_DIR)PDP11_SYS.C,$(PDP11_DIR)PDP11_TC.C, \ + $(PDP11_DIR)PDP11_CPUMOD.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_TA.C,$(PDP11_DIR)PDP11_IO_LIB.C +PDP11_LIB2 = $(LIB_DIR)PDP11L2-$(ARCH).OLB +PDP11_SOURCE2 = $(PDP11_DIR)PDP11_TM.C,$(PDP11_DIR)PDP11_TS.C,\ + $(PDP11_DIR)PDP11_IO.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TQ.C,$(PDP11_DIR)PDP11_PCLK.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_PT.C,\ + $(PDP11_DIR)PDP11_HK.C,$(PDP11_DIR)PDP11_XQ.C,\ + $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_RH.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_TU.C,\ + $(PDP11_DIR)PDP11_DL.C,$(PDP11_DIR)PDP11_RF.C, \ + $(PDP11_DIR)PDP11_RC.C,$(PDP11_DIR)PDP11_KG.C,\ + $(PDP11_DIR)PDP11_KE.C,$(PDP11_DIR)PDP11_DC.C +PDP11_OPTIONS = /INCL=($(SIMH_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_PDP11=1"$(PCAP_DEFS)) + +# +# Digital Equipment PDP-10 Simulator Definitions. +# +PDP10_DIR = SYS$DISK:[.PDP10] +PDP10_LIB = $(LIB_DIR)PDP10-$(ARCH).OLB +PDP10_SOURCE = $(PDP10_DIR)PDP10_FE.C,\ + $(PDP10_DIR)PDP10_CPU.C,$(PDP10_DIR)PDP10_KSIO.C,\ + $(PDP10_DIR)PDP10_LP20.C,$(PDP10_DIR)PDP10_MDFP.C,\ + $(PDP10_DIR)PDP10_PAG.C,$(PDP10_DIR)PDP10_XTND.C,\ + $(PDP10_DIR)PDP10_RP.C,$(PDP10_DIR)PDP10_SYS.C,\ + $(PDP10_DIR)PDP10_TIM.C,$(PDP10_DIR)PDP10_TU.C,\ + $(PDP11_DIR)PDP11_PT.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_XU.C,\ + $(PDP11_DIR)PDP11_CR.C +PDP10_OPTIONS = /INCL=($(SIMH_DIR),$(PDP10_DIR),$(PDP11_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","VM_PDP10=1"$(PCAP_DEFS)) + +# +# IBM System 3 Simulator Definitions. +# +S3_DIR = SYS$DISK:[.S3] +S3_LIB = $(LIB_DIR)S3-$(ARCH).OLB +S3_SOURCE = $(S3_DIR)S3_CD.C,$(S3_DIR)S3_CPU.C,$(S3_DIR)S3_DISK.C,\ + $(S3_DIR)S3_LP.C,$(S3_DIR)S3_PKB.C,$(S3_DIR)S3_SYS.C +S3_OPTIONS = /INCL=($(SIMH_DIR),$(S3_DIR))/DEF=($(CC_DEFS)) + +# +# SDS 940 +# +SDS_DIR = SYS$DISK:[.SDS] +SDS_LIB = $(LIB_DIR)SDS-$(ARCH).OLB +SDS_SOURCE = $(SDS_DIR)SDS_CPU.C,$(SDS_DIR)SDS_DRM.C,$(SDS_DIR)SDS_DSK.C,\ + $(SDS_DIR)SDS_IO.C,$(SDS_DIR)SDS_LP.C,$(SDS_DIR)SDS_MT.C,\ + $(SDS_DIR)SDS_MUX.C,$(SDS_DIR)SDS_RAD.C,$(SDS_DIR)SDS_STDDEV.C,\ + $(SDS_DIR)SDS_SYS.C +SDS_OPTIONS = /INCL=($(SIMH_DIR),$(SDS_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment VAX Simulator Definitions. +# +VAX_DIR = SYS$DISK:[.VAX] +VAX_LIB = $(LIB_DIR)VAX-$(ARCH).OLB +VAX_SOURCE = $(VAX_DIR)VAX_CIS.C,$(VAX_DIR)VAX_CMODE.C,\ + $(VAX_DIR)VAX_CPU.C,$(VAX_DIR)VAX_CPU1.C,\ + $(VAX_DIR)VAX_FPA.C,$(VAX_DIR)VAX_MMU.C,\ + $(VAX_DIR)VAX_OCTA.C,$(VAX_DIR)VAX_SYS.C,\ + $(VAX_DIR)VAX_SYSCM.C,$(VAX_DIR)VAX_SYSDEV.C,\ + $(VAX_DIR)VAX_SYSLIST.C,$(VAX_DIR)VAX_IO.C,\ + $(VAX_DIR)VAX_STDDEV.C,$(PDP11_DIR)PDP11_IO_LIB.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XQ.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C +VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS)) + +# Digital Equipment VAX780 Simulator Definitions. +# +VAX780_DIR = SYS$DISK:[.VAX] +VAX780_LIB1 = $(LIB_DIR)VAX780L1-$(ARCH).OLB +VAX780_SOURCE1 = $(VAX780_DIR)VAX_CPU.C,$(VAX780_DIR)VAX_CPU1.C,\ + $(VAX780_DIR)VAX_FPA.C,$(VAX780_DIR)VAX_CIS.C,\ + $(VAX780_DIR)VAX_OCTA.C,$(VAX780_DIR)VAX_CMODE.C,\ + $(VAX780_DIR)VAX_MMU.C,$(VAX780_DIR)VAX_SYS.C,\ + $(VAX780_DIR)VAX_SYSCM.C,$(VAX780_DIR)VAX780_STDDEV.C,\ + $(VAX780_DIR)VAX780_SBI.C,$(VAX780_DIR)VAX780_MEM.C,\ + $(VAX780_DIR)VAX780_UBA.C,$(VAX780_DIR)VAX780_MBA.C,\ + $(VAX780_DIR)VAX780_FLOAD.C,$(VAX780_DIR)VAX780_SYSLIST.C +VAX780_LIB2 = $(LIB_DIR)VAX780L2-$(ARCH).OLB +VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\ + $(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\ + $(PDP11_DIR)PDP11_IO_LIB.C +VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_780=1") + +# IBM 7094 Simulator Definitions. +# +I7094_DIR = SYS$DISK:[.I7094] +I7094_LIB = $(LIB_DIR)I7094-$(ARCH).OLB +I7094_SOURCE = $(I7094_DIR)I7094_CPU.C,$(I7094_DIR)I7094_CPU1.C,\ + $(I7094_DIR)I7094_IO.C,$(I7094_DIR)I7094_CD.C,\ + $(I7094_DIR)I7094_CLK.C,$(I7094_DIR)I7094_COM.C,\ + $(I7094_DIR)I7094_DRM.C,$(I7094_DIR)I7094_DSK.C,\ + $(I7094_DIR)I7094_SYS.C,$(I7094_DIR)I7094_LP.C,\ + $(I7094_DIR)I7094_MT.C,$(I7094_DIR)I7094_BINLOADER.C +I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS)) + +# If we're not a VAX, Build Everything +# +.IF ALPHA_OR_IA64 +ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ + ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 VAX VAX780 SDS \ + I7094 + @CONTINUE +.ELSE +# +# Else We Are On VAX And Build Everything EXCEPT the 64b simulators +# +ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ + NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 VAX VAX780 SDS + @CONTINUE +.ENDIF + +CLEAN : + $! + $! Clean out all targets and building Remnants + $! + $ IF (F$SEARCH("$(BIN_DIR)*.EXE;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(BIN_DIR)*.EXE;* + $ IF (F$SEARCH("$(LIB_DIR)*.OLB;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(LIB_DIR)*.OLB;* + $ IF (F$SEARCH("SYS$DISK:[...]*.OBJ;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.OBJ;* + $ IF (F$SEARCH("SYS$DISK:[...]*.LIS;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.LIS;* + $ IF (F$SEARCH("SYS$DISK:[...]*.MAP;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.MAP;* + +# +# Build The Libraries. +# +$(SIMH_LIB) : $(SIMH_SOURCE) + $! + $! Building The $(SIMH_LIB) Library. + $! + $ $(CC)/DEF=($(CC_DEFS)$(PCAP_DEFS))$(PCAP_SIMH_INC) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIR_LIB) : $(ALTAIR_SOURCE) + $! + $! Building The $(ALTAIR_LIB) Library. + $! + $ $(CC)$(ALTAIR_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIRZ80_LIB) : $(ALTAIRZ80_SOURCE) + $! + $! Building The $(ALTAIRZ80_LIB) Library. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The Eclipse Library. +# +.IF ALPHA_OR_IA64 +$(ECLIPSE_LIB) : $(ECLIPSE_SOURCE) + $! + $! Building The $(ECLIPSE_LIB) Library. + $! + $ $(CC)$(ECLIPSE_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(ECLIPSE_LIB) : + $! + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)ECLIPSE-$(ARCH).OLB Library On VAX. + $! +.ENDIF + +$(GRI_LIB) : $(GRI_SOURCE) + $! + $! Building The $(GRI_LIB) Library. + $! + $ $(CC)$(GRI_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(LGP_LIB) : $(LGP_SOURCE) + $! + $! Building The $(LGP_LIB) Library. + $! + $ $(CC)$(LGP_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(H316_LIB) : $(H316_SOURCE) + $! + $! Building The $(H316_LIB) Library. + $! + $ $(CC)$(H316_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(HP2100_LIB) : $(HP2100_SOURCE) + $! + $! Building The $(HP2100_LIB) Library. + $! + $ $(CC)$(HP2100_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1401_LIB) : $(I1401_SOURCE) + $! + $! Building The $(I1401_LIB) Library. + $! + $ $(CC)$(I1401_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1620_LIB) : $(I1620_SOURCE) + $! + $! Building The $(I1620_LIB) Library. + $! + $ $(CC)$(I1620_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(IBM1130_LIB) : $(IBM1130_SOURCE) + $! + $! Building The $(IBM1130_LIB) Library. + $! + $ $(CC)$(IBM1130_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID16_LIB) : $(ID16_SOURCE) + $! + $! Building The $(ID16_LIB) Library. + $! + $ $(CC)$(ID16_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID32_LIB) : $(ID32_SOURCE) + $! + $! Building The $(ID32_LIB) Library. + $! + $ $(CC)$(ID32_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(NOVA_LIB) : $(NOVA_SOURCE) + $! + $! Building The $(NOVA_LIB) Library. + $! + $ $(CC)$(NOVA_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP1_LIB) : $(PDP1_SOURCE) + $! + $! Building The $(PDP1_LIB) Library. + $! + $ $(CC)$(PDP1_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP4_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP4_LIB) Library. + $! + $ $(CC)$(PDP4_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP7_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP7_LIB) Library. + $! + $ $(CC)$(PDP7_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP8_LIB) : $(PDP8_SOURCE) + $! + $! Building The $(PDP8_LIB) Library. + $! + $ $(CC)$(PDP8_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP9_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP9_LIB) Library. + $! + $ $(CC)$(PDP9_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Library. +# +.IF ALPHA_OR_IA64 +$(PDP10_LIB) : $(PDP10_SOURCE) + $! + $! Building The $(PDP10_LIB) Library. + $! + $ $(CC)$(PDP10_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(PDP10_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)PDP10-$(ARCH).OLB Library On VAX. +.ENDIF + +$(PDP11_LIB1) : $(PDP11_SOURCE1) + $! + $! Building The $(PDP11_LIB1) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP11_LIB2) : $(PDP11_SOURCE2) + $! + $! Building The $(PDP11_LIB2) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP15_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP15_LIB) Library. + $! + $ $(CC)$(PDP15_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(S3_LIB) : $(S3_SOURCE) + $! + $! Building The $(S3_LIB) Library. + $! + $ $(CC)$(S3_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(SDS_LIB) : $(SDS_SOURCE) + $! + $! Building The $(SDS_LIB) Library. + $! + $ $(CC)$(SDS_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX_LIB) : $(VAX_SOURCE) + $! + $! Building The $(VAX_LIB) Library. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(VAX_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB1) : $(VAX780_SOURCE1) + $! + $! Building The $(VAX780_LIB1) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB2) : $(VAX780_SOURCE2) + $! + $! Building The $(VAX780_LIB2) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PCAP_LIB) : $(PCAP_SOURCE) + $! + $! Building The $(PCAP_LIB) Library. + $! + $ SET DEFAULT $(PCAP_DIR) + $ @VMS_PCAP $(DEBUG) + $ SET DEFAULT [--] + $ IF (F$SEARCH("$(PCAP_LIB)").NES."") THEN - + DELETE $(PCAP_LIB); + $ COPY $(PCAP_DIR)PCAP.OLB $(PCAP_LIB) + $ DELETE/NOLOG/NOCONFIRM $(PCAP_DIR)*.OBJ;*,$(PCAP_DIR)*.OLB;* + +# +# If Not On VAX, Build The IBM 7094 Library. +# +.IF ALPHA_OR_IA64 +$(I7094_LIB) : $(I7094_SOURCE) + $! + $! Building The $(I7094_LIB) Library. + $! + $ $(CC)$(I7094_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(I7094_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)I7094-$(ARCH).OLB Library On VAX. +.ENDIF + +# +# Individual Simulator Builds. +# +ALTAIR : $(SIMH_LIB) $(ALTAIR_LIB) + $! + $! Building The $(BIN_DIR)ALTAIR-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIR_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIR-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIR_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ALTAIRZ80 : $(SIMH_LIB) $(ALTAIRZ80_LIB) + $! + $! Building The $(BIN_DIR)ALTAIRZ80-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIRZ80-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIRZ80_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +ECLIPSE : $(SIMH_LIB) $(ECLIPSE_LIB) + $! + $! Building The $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ECLIPSE_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ECLIPSE-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ECLIPSE_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +ECLIPSE : + $! Sorry, Can't Build $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +GRI : $(SIMH_LIB) $(GRI_LIB) + $! + $! Building The $(BIN_DIR)GRI-$(ARCH).EXE Simulator. + $! + $ $(CC)$(GRI_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)GRI-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(GRI_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +LGP : $(SIMH_LIB) $(LGP_LIB) + $! + $! Building The $(BIN_DIR)LGP-$(ARCH).EXE Simulator. + $! + $ $(CC)$(LGP_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)LGP-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(LGP_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +H316 : $(SIMH_LIB) $(H316_LIB) + $! + $! Building The $(BIN_DIR)H316-$(ARCH).EXE Simulator. + $! + $ $(CC)$(H316_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)H316-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(H316_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +HP2100 : $(SIMH_LIB) $(HP2100_LIB) + $! + $! Building The $(BIN_DIR)HP2100-$(ARCH).EXE Simulator. + $! + $ $(CC)$(HP2100_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)HP2100-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(HP2100_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1401 : $(SIMH_LIB) $(I1401_LIB) + $! + $! Building The $(BIN_DIR)I1401-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1401_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1401-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1401_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1620 : $(SIMH_LIB) $(I1620_LIB) + $! + $! Building The $(BIN_DIR)I1620-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1620_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1620-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1620_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +IBM1130 : $(SIMH_LIB) $(IBM1130_LIB) + $! + $! Building The $(BIN_DIR)IBM1130-$(ARCH).EXE Simulator. + $! + $ $(CC)$(IBM1130_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)IBM1130-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(IBM1130_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID16 : $(SIMH_LIB) $(ID16_LIB) + $! + $! Building The $(BIN_DIR)ID16-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID16_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID16-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID16_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID32 : $(SIMH_LIB) $(ID32_LIB) + $! + $! Building The $(BIN_DIR)ID32-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID32_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID32-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID32_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +NOVA : $(SIMH_LIB) $(NOVA_LIB) + $! + $! Building The $(BIN_DIR)NOVA-$(ARCH).EXE Simulator. + $! + $ $(CC)$(NOVA_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)NOVA-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(NOVA_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP1 : $(SIMH_LIB) $(PDP1_LIB) + $! + $! Building The $(BIN_DIR)PDP1-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP1_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP1-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP1_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP4 : $(SIMH_LIB) $(PDP4_LIB) + $! + $! Building The $(BIN_DIR)PDP4-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP4_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP4-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP4_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP7 : $(SIMH_LIB) $(PDP7_LIB) + $! + $! Building The $(BIN_DIR)PDP7-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP7_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP7-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP7_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP8 : $(SIMH_LIB) $(PDP8_LIB) + $! + $! Building The $(BIN_DIR)PDP8-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP8_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP8-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP8_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP9 : $(SIMH_LIB) $(PDP9_LIB) + $! + $! Building The $(BIN_DIR)PDP9-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP9_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP9-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP9_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +PDP10 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP10_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP10-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP10_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP10-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP10_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +PDP10 : + $! Sorry, Can't Build $(BIN_DIR)PDP10-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +PDP11 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP11-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP11_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP11-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP11_LIB1)/LIBRARY,$(PDP11_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP15 : $(SIMH_LIB) $(PDP15_LIB) + $! + $! Building The $(BIN_DIR)PDP15-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP15_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP15-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP15_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +S3 : $(SIMH_LIB) $(S3_LIB) + $! + $! Building The $(BIN_DIR)S3-$(ARCH).EXE Simulator. + $! + $ $(CC)$(S3_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)S3-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(S3_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +SDS : $(SIMH_LIB) $(SDS_LIB) + $! + $! Building The $(BIN_DIR)SDS-$(ARCH).EXE Simulator. + $! + $ $(CC)$(SDS_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)SDS-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX : $(SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(VAX_LIB)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX780 : $(SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX780-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX780-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,- + $(VAX780_LIB1)/LIBRARY,$(VAX780_LIB2)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The IBM 7094 Simulator. +# +.IF ALPHA_OR_IA64 +I7094 : $(SIMH_LIB) $(I7094_LIB) + $! + $! Building The $(BIN_DIR)I7094-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I7094_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I7094-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I7094_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +I7094 : + $! Sorry, Can't Build $(BIN_DIR)I7094-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +# +# PCAP VCI Components +# +$(PCAP_VCI) : $(PCAP_VCMDIR)PCAPVCM.EXE + $! + $! Installing the PCAP VCI Execlet in SYS$LOADABLE_IMAGES + $! + $ COPY $(PCAP_VCMDIR)PCAPVCM.EXE SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +$(PCAP_VCMDIR)PCAPVCM.EXE : $(PCAP_VCM_SOURCES) + $! + $! Building The PCAP VCI Execlet + $! + $ @SYS$DISK:[.PCAP-VMS.PCAPVCM]BUILD_PCAPVCM + $ DELETE/NOLOG/NOCONFIRM $(PCAP_VCMDIR)*.OBJ;*,$(PCAP_VCMDIR)*.MAP;* diff --git a/samples/Module Management System/spline_descrip.mms b/samples/Module Management System/spline_descrip.mms new file mode 100644 index 00000000..2f81cdb0 --- /dev/null +++ b/samples/Module Management System/spline_descrip.mms @@ -0,0 +1,31 @@ +! +! $Id: descrip.mms 35 2008-01-08 21:37:42Z tmr $ +! +! Project: LISP -- The LISP Interpreter +! Created: 22-DEC-2008 18:35 +! Author: tmr + +cc = cc +cflags = /define="_VMS_=1" - +/WARN=DISABLE=(ZERODIV,FLOATOVERFL,NOMAINUFLO) - +/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE +core = LISP_CORE +main = LISP_MAIN +exec = [.bin]LISP +clib = SYS$LIBRARY:VAXCRTL +head = LISP_CORE +objs = $(core).obj, $(main).obj + +$(exec) : $(objs) + DEFINE/NOLOG LNK$LIBRARY $(clib) + LINK/EXEC=$(exec) $(objs) + DEASSIGN LNK$LIBRARY + +$(core).obj : $(core).c, $(head).h + +$(main).obj : $(main).c, $(head).h + +clean : + del *.obj;* + del *.exe;* + diff --git a/samples/Module Management System/xv_makefile.mms b/samples/Module Management System/xv_makefile.mms new file mode 100644 index 00000000..b419dd80 --- /dev/null +++ b/samples/Module Management System/xv_makefile.mms @@ -0,0 +1,271 @@ +# MMS Description file for xv +# Written by Rick Dyson (dyson@iowasp.physics.uiowa.edu) +# Last Modified: 30-APR-1992 for v2.21 +# 5-OCT-1992 for v2.21 (export.lcs.mit.edu version +# of xv-2.21 seemed to change about +# 25-Sep-1992 without version number +# changing. +# 8-FEB-1993 for v2.21b +# ALPHA support is in ALPHA.MMS +# 2-MAR-1993 for v3.00 +# 15-APR-1993 for v3.00 (DEC C changes) +# 25-MAY-1993 merged ALPHA.MMS and MAKEFILE.MMS +# 27-APR-1994 for v3.01 +# 23-DEC-1994 for v3.10 +# +# Modeled after the original Unix Makefile for xv +# Most of the Unix comments have been left intact to help debug any +# problems. + + +# BE SURE TO SET THIS TO YOUR SITE'S DESTINATION DIRECTORY...!!! +BINDIR = Sys$Disk:[] + +# your C compiler (and options) of choice +# Remember: if you change the C compiler (to gcc, or whatever), be sure to +# do the same thing to the Makefile in the 'jpeg' and 'tiff' subdirectories +# +# For ALPHA/DEC C users, you must add a MACRO qualifier to the +# command line, i.e., +# MMS /Description = Makefile.mms /Macro = ("ALPHA=1") +# +# For VAX/DEC C users, you must add a MACRO qualifier to the +# command line, i.e., +# MMS /Description = Makefile.mms /Macro = ("DECC=1") +# +# Users still using the non-MOTIF DECWindows (i.e., XUI) should also +# add another macro of "DEC_XUI=1" + +CC = cc + + +################ CONFIGURATION OPTIONS ################# + +# if, for whatever reason, you're unable to get the JPEG library to compile +# on your machine, *COMMENT OUT* the following lines. +# +# Also, comment out the JPEGLIB dependancy below. +# +# VMS MMS USERS!!! +# +# if you don't use the JPEG package as supplied with XV, you +# will need fill in the complete directory specifications for JPEGDIR. +# +JPEG = ,HAVE_JPEG +JPEGDIR = [.JPEG] +JPEGLIB = $(JPEGDIR)LIBJPEG.OLB +JPEGINCLUDE = ,$(JPEGDIR) + + +# if, for whatever reason, you're unable to get the TIFF library to compile +# on your machine, *COMMENT OUT* the following lines +# +# Also, comment out the LIBTIFF dependancy at the end of this Makefile +# +# if you don't use the TIFF package as supplied with XV, you +# will need to fill in the complete directory specifications for TIFFDIR. +# +TIFF = ,HAVE_TIFF +TIFFDIR = [.TIFF] +TIFFLIB = $(TIFFDIR)LIBTIFF.OLB +TIFFINCLUDE = ,$(TIFFDIR) + + +# if, for whatever reason, you're unable to get the PDS/VICAR support +# to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, +# and also remove 'vdcomp' from the 'all:' dependancy +PDS = ,HAVE_PDS + + +# If you are still using the DECWindows XUI interface, uncomment the +# next line. This will help stop the "window creep" problem with this +# window mananager +.ifdef DEC_XUI +XUI = ,HAVE_XUI +.endif + +DEFS = /Define = (VMS$(JPEG)$(PDS)$(TIFF)$(TIMERS)$(XUI)) +INCS = /Include = ([]$(JPEGINCLUDE)$(TIFFINCLUDE)) + +.ifdef ALPHA +OPTIMIZE = /Optimize /Standard = VAXC +OPTS = Sys$Disk:[]DECC_OPTIONS.OPT +.else +.ifdef DECC +OPTIMIZE = /Optimize /Standard = VAXC /Warnings = NoInformationals +OPTS = Sys$Disk:[]DECC_OPTIONS.OPT +.else +OPTIMIZE = /Optimize +OPTS = Sys$Disk:[]VAXC_OPTIONS.OPT +.endif +.endif +DEBUG = /NoDebug + +CFLAGS = $(CFLAGS) $(DEFS) $(INCS) $(DEBUG) $(OPTIMIZE) +LINKFLAGS = $(LINKFLAGS) $(DEBUG) + +XVLIB = LIBXV.OLB + +OBJS = xv.obj,xvevent.obj,xvroot.obj,xvmisc.obj,xvimage.obj,xvcolor.obj, \ + xvsmooth.obj,xv24to8.obj,xvgif.obj,xvpm.obj,xvinfo.obj,xvctrl.obj, \ + xvscrl.obj,xvalg.obj,xvgifwr.obj,xvdir.obj,xvbutt.obj,xvpbm.obj, \ + xvxbm.obj,xvgam.obj,xvbmp.obj,xvdial.obj,xvgraf.obj,xvsunras.obj, \ + xvjpeg.obj,xvps.obj,xvpopup.obj,xvdflt.obj,xvtiff.obj,xvtiffwr.obj, \ + xvpds.obj,xvrle.obj,xviris.obj,xvgrab.obj,xvbrowse.obj,xviff.obj, \ + xvtext.obj,xvpcx.obj,xvtarga.obj,xvxpm.obj,xvcut.obj,xvxwd.obj, \ + xvfits.obj,vms.obj + + +BITS = [.Bits]annot.h + +MISC = readme. changelog. ideas. + +.first +.ifdef ALPHA + @- Define /NoLog Sys DECC$Library_Include +.else +.ifdef DECC + @- Define /NoLog Sys DECC$Library_Include +.else + @- Define /NoLog Sys Sys$Library +.endif + @- Define /NoLog X11 DECW$Include + @- XVDIR = F$Environment ("Default") +.endif + +all : $(BITS) $(OPTS) lib xv bggen decompress xcmap xvpictoppm help + ! All Finished with the VMS build of XV (v3.10) + +lib : $(JPEGLIB) $(TIFFLIB) $(XVLIB) + @ Continue + +xv : xv.exe + @ Continue + +bggen : bggen.exe + @ Continue + +xcmap : xcmap.exe + @ Continue + +xvpictoppm : xvpictoppm.exe + @ Continue + +help : xv.hlb + @ Continue + +decompress : decompress.exe vdcomp.exe + @ Continue + +bggen.exe : bggen.obj $(XVLIB) $(OPTS) + $(LINK) $(LINKFLAGS) bggen.obj,$(XVLIB)/Library,$(OPTS)/Option + +xcmap.exe : xcmap.obj + $(LINK) $(LINKFLAGS) xcmap.obj,$(XVLIB)/Library,$(OPTS)/Option + +xvpictoppm.exe : xvpictoppm.obj + $(LINK) $(LINKFLAGS) xvpictoppm.obj,$(XVLIB)/Library,$(OPTS)/Option + +xv.exe : xv.obj $(XVLIB) $(JPEGLIB) $(TIFFLIB) $(OPTS) + $(LINK) $(LINKFLAGS) xv.obj,$(XVLIB)/Library,$(JPEGLIB)/Library,$(TIFFLIB)/Library,$(OPTS)/Option + +$(JPEGLIB) : + Set Default $(JPEGDIR) +.ifdef ALPHA + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBJPEG.OLB +.else + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBJPEG.OLB +.endif + Set Default 'XVDIR' + +$(TIFFLIB) : + Set Default $(TIFFDIR) +.ifdef ALPHA + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB +.else +.ifdef DECC + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB +.else + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBTIFF.OLB +.endif +.endif + Set Default 'XVDIR' + +$(XVLIB) : $(OBJS) + If "''F$Search ("$(XVLIB)")'" .eqs. "" Then Library /Create $(XVLIB) + Library /Replace $(XVLIB) $(OBJS) + +decompress.exe : decompress.obj + $(LINK) $(LINKFLAGS) decompress.obj,$(OPTS)/Option + +vdcomp.exe : vdcomp.obj + $(LINK) $(LINKFLAGS) vdcomp.obj,$(OPTS)/Option + +[.Bits]annot.h : + Set Default [.Bits] + Set Protection = Owner:RWED *. + Rename *. *.H + Set Protection = Owner:RWE *.H + Set Default [-] + +# various dependencies +$(OBJS) : xv.h config.h +xv.hlb : xv.hlp +vms.obj : includes.h dirent.h + +# +# Build the linker options file for OpenVMS VAX and VAX C. +# +Sys$Disk:[]VAXC_Options.opt : + @ Open /Write TMP VAXC_Options.opt + @ Write TMP "! XV (v3.10) Linker Options list for VMS VAX C" + @ Write TMP "!" + @ Write TMP "Sys$Disk:[]LibXV.OLB /Library" + @ Write TMP "Sys$Disk:[.JPEG]LibJPEG.OLB /Library" + @ Write TMP "Sys$Disk:[.TIFF]LibTIFF.OLB /Library" +.ifdef DEC_XUI + @ Write TMP "!" + @ Write TMP "! These were appropriate for VAX C and XUI in the past." + @ Write TMP "Sys$Library:DECW$DWTLibShr.exe /Share + @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share + @ Write TMP "!You may need the next line for VAX C (v3.2-044)" + @ Write TMP "!But you don't for DEC C (v4.0-000)" + @ Write TMP "Sys$Library:VAXCRTL.EXE /Share" +.else + @ Write TMP "!" + @ Write TMP "! Some of the following libraries may not be available on" + @ Write TMP "! older systems, namely XUI or Motif v1.0/1.1" + @ Write TMP "! I know they are available for OpenVMS v6.1/Motif v1.2." + @ Write TMP "! If you get a report that they can't be found," + @ Write TMP "! comment them out and try again..." + @ Write TMP "Sys$Library:DECW$DXMLibShr12.exe /Share + @ Write TMP "Sys$Library:DECW$XMLibShr12.exe /Share + @ Write TMP "Sys$Library:DECW$XTLibShrR5.exe /Share" + @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share +.endif + @ Close TMP + +Sys$Disk:[]DECC_Options.opt : + @ Open /Write TMP DECC_Options.opt + @ Write TMP "! XV (v3.10) Linker Options list for VMS DEC C" + @ Write TMP "!" + @ Write TMP "Sys$Disk:[]LibXV.olb /Library" + @ Write TMP "Sys$Disk:[.JPEG]LibJPEG.olb /Library" + @ Write TMP "Sys$Disk:[.TIFF]LibTIFF.olb /Library" + @ Write TMP "Sys$Library:DECW$XTShr.exe /Share" + @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share" + @ Close TMP + +install : xv.exe vdcomp.exe bggen.exe decompress.exe + Copy *.exe $(BINDIR) + +clean : + @- Set Protection = Owner:RWED *.obj,*.*;-1 + - Delete /NoConfirm /NoLog *.obj;*,*.exe;*,*.log;*,*.olb;*,*.hlb;* + - Purge /NoConfirm /NoLog + Set Default [.JPEG] + $(MMS) /Description = MAKEFILE.MMS clean + - Delete /NoConfirm /NoLog *.olb;* + Set Default [-.TIFF] + $(MMS) /Description = MAKEFILE.MMS clean + Set Default [-] From ae5e1c5a858c8050f3de11f204d0b0fd1d108095 Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 21:43:20 +0200 Subject: [PATCH 010/875] DCL & MMS lexers are not supported, use Text only --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ddcd844c..85920324 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -547,7 +547,7 @@ D-ObjDump: DIGITAL Command Language: type: programming - lexer: DCL + lexer: Text only search_term: dcl group: OpenVMS aliases: @@ -1478,7 +1478,7 @@ Mirah: Module Management System: type: programming - lexer: MMS + lexer: Text only search_term: mms group: OpenVMS extensions: From 42944660bd419716d07ec38a3b8ee3cc03790457 Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 22:02:27 +0200 Subject: [PATCH 011/875] no need to group DCL and MMS/MMK --- lib/linguist/languages.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 85920324..fba61cd4 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -549,7 +549,6 @@ DIGITAL Command Language: type: programming lexer: Text only search_term: dcl - group: OpenVMS aliases: - dcl extensions: @@ -1480,7 +1479,6 @@ Module Management System: type: programming lexer: Text only search_term: mms - group: OpenVMS extensions: - .mms - .mmk From 08290ac49e4aba47b89e13c44ec5bc8f96e42316 Mon Sep 17 00:00:00 2001 From: Tomas Morstein Date: Sat, 4 Oct 2014 22:46:32 +0200 Subject: [PATCH 012/875] remove very rarely used .dcl extension for now ...to avoid collision with Clean language as well as the .dcl extension can be seen only in some special cases -- especially in context of DCL emulation tools for non-OpenVMS systems (probably to avoid potential confusion with MS-DOS .com files). --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index fba61cd4..d90f6a39 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -553,7 +553,6 @@ DIGITAL Command Language: - dcl extensions: - .com - - .dcl DM: type: programming From 5ffc4c0158b6178b94e3f2602e3455d8f18e98fb Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 31 Oct 2014 17:22:32 -0500 Subject: [PATCH 013/875] Starting work on Disambiguate Matlab, Objective-C, Mathematica, M, and Mercury method --- lib/linguist/heuristics.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 4c1bf295..30b4fcdf 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -25,6 +25,9 @@ module Linguist if languages.all? { |l| ["Common Lisp", "OpenCL"].include?(l) } result = disambiguate_cl(data, languages) end + if languages.all? { |l| ["M", "Matlab", "Mathematica", "Mercury", "Objective-C"].include?(l) } + result = disambiguate_m(data, languages) + end return result end end @@ -88,6 +91,15 @@ module Linguist matches end + def self.disambiguate_m(data, languages) + matches = [] + if (/@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data)) + matches << Language["Objective-C"] + end + # TODO add matchers for "M", "Matlab", "Mathematica", "Mercury" + matches + end + def self.active? !!ACTIVE end From edadca9085ba69f907b44e142fa7b45520367f96 Mon Sep 17 00:00:00 2001 From: Geoff Nixon Date: Fri, 17 Oct 2014 04:42:51 -0700 Subject: [PATCH 014/875] Add comment styles, don't choke on `#!/usr/bin/env foo=bar`... --- lib/linguist/languages.yml | 1 + lib/linguist/tokenizer.rb | 6 + samples/Haskell/HsColour.hs | 114 +++ samples/Shell/valid-shebang.tool | 280 ++++++++ samples/VimL/solarized.vim | 1117 ++++++++++++++++++++++++++++++ test/test_tokenizer.rb | 2 + 6 files changed, 1520 insertions(+) create mode 100644 samples/Haskell/HsColour.hs create mode 100755 samples/Shell/valid-shebang.tool create mode 100644 samples/VimL/solarized.vim diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 858a8487..c0fbf08c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2309,6 +2309,7 @@ Shell: - .command - .fcgi - .tmux + - .tool - .zsh interpreters: - bash diff --git a/lib/linguist/tokenizer.rb b/lib/linguist/tokenizer.rb index 4b2ea607..bd9284a3 100644 --- a/lib/linguist/tokenizer.rb +++ b/lib/linguist/tokenizer.rb @@ -22,8 +22,10 @@ module Linguist # Start state on token, ignore anything till the next newline SINGLE_LINE_COMMENTS = [ '//', # C + '--', # Ada, Haskell, AppleScript '#', # Ruby '%', # Tex + '"', # Vim ] # Start state on opening token, ignore anything until the closing @@ -129,6 +131,9 @@ module Linguist # extract_shebang("#!/usr/bin/env node") # # => "node" # + # extract_shebang("#!/usr/bin/env A=B foo=bar awk -f") + # # => "awk" + # # Returns String token or nil it couldn't be parsed. def extract_shebang(data) s = StringScanner.new(data) @@ -137,6 +142,7 @@ module Linguist script = path.split('/').last if script == 'env' s.scan(/\s+/) + s.scan(/.*=[^\s]+\s+/) script = s.scan(/\S+/) end script = script[/[^\d]+/, 0] if script diff --git a/samples/Haskell/HsColour.hs b/samples/Haskell/HsColour.hs new file mode 100644 index 00000000..64588a6d --- /dev/null +++ b/samples/Haskell/HsColour.hs @@ -0,0 +1,114 @@ +-- | This is a library which colourises Haskell code. +-- It currently has six output formats: +-- +-- * ANSI terminal codes +-- +-- * LaTeX macros +-- +-- * HTML 3.2 with font tags +-- +-- * HTML 4.01 with external CSS. +-- +-- * XHTML 1.0 with internal CSS. +-- +-- * mIRC chat client colour codes. +-- +module Language.Haskell.HsColour (Output(..), ColourPrefs(..), + hscolour) where + +import Language.Haskell.HsColour.Colourise (ColourPrefs(..)) +import qualified Language.Haskell.HsColour.TTY as TTY +import qualified Language.Haskell.HsColour.HTML as HTML +import qualified Language.Haskell.HsColour.CSS as CSS +import qualified Language.Haskell.HsColour.ACSS as ACSS +import qualified Language.Haskell.HsColour.InlineCSS as ICSS +import qualified Language.Haskell.HsColour.LaTeX as LaTeX +import qualified Language.Haskell.HsColour.MIRC as MIRC +import Data.List(mapAccumL, isPrefixOf) +import Data.Maybe +import Language.Haskell.HsColour.Output +--import Debug.Trace + +-- | Colourise Haskell source code with the given output format. +hscolour :: Output -- ^ Output format. + -> ColourPrefs -- ^ Colour preferences (for formats that support them). + -> Bool -- ^ Whether to include anchors. + -> Bool -- ^ Whether output document is partial or complete. + -> String -- ^ Title for output. + -> Bool -- ^ Whether input document is literate haskell or not + -> String -- ^ Haskell source code. + -> String -- ^ Coloured Haskell source code. +hscolour output pref anchor partial title False = + (if partial then id else top'n'tail output title) . + hscolour' output pref anchor +hscolour output pref anchor partial title True = + (if partial then id else top'n'tail output title) . + concatMap chunk . joinL . classify . inlines + where + chunk (Code c) = hscolour' output pref anchor c + chunk (Lit c) = c + +-- | The actual colourising worker, despatched on the chosen output format. +hscolour' :: Output -- ^ Output format. + -> ColourPrefs -- ^ Colour preferences (for formats that support them) + -> Bool -- ^ Whether to include anchors. + -> String -- ^ Haskell source code. + -> String -- ^ Coloured Haskell source code. +hscolour' TTY pref _ = TTY.hscolour pref +hscolour' (TTYg tt) pref _ = TTY.hscolourG tt pref +hscolour' MIRC pref _ = MIRC.hscolour pref +hscolour' LaTeX pref _ = LaTeX.hscolour pref +hscolour' HTML pref anchor = HTML.hscolour pref anchor +hscolour' CSS _ anchor = CSS.hscolour anchor +hscolour' ICSS pref anchor = ICSS.hscolour pref anchor +hscolour' ACSS _ anchor = ACSS.hscolour anchor + +-- | Choose the right headers\/footers, depending on the output format. +top'n'tail :: Output -- ^ Output format + -> String -- ^ Title for output + -> (String->String) -- ^ Output transformer +top'n'tail TTY _ = id +top'n'tail (TTYg _) _ = id +top'n'tail MIRC _ = id +top'n'tail LaTeX title = LaTeX.top'n'tail title +top'n'tail HTML title = HTML.top'n'tail title +top'n'tail CSS title = CSS.top'n'tail title +top'n'tail ICSS title = ICSS.top'n'tail title +top'n'tail ACSS title = CSS.top'n'tail title + +-- | Separating literate files into code\/comment chunks. +data Lit = Code {unL :: String} | Lit {unL :: String} deriving (Show) + +-- Re-implementation of 'lines', for better efficiency (but decreased laziness). +-- Also, importantly, accepts non-standard DOS and Mac line ending characters. +-- And retains the trailing '\n' character in each resultant string. +inlines :: String -> [String] +inlines s = lines' s id + where + lines' [] acc = [acc []] + lines' ('\^M':'\n':s) acc = acc ['\n'] : lines' s id -- DOS +--lines' ('\^M':s) acc = acc ['\n'] : lines' s id -- MacOS + lines' ('\n':s) acc = acc ['\n'] : lines' s id -- Unix + lines' (c:s) acc = lines' s (acc . (c:)) + + +-- | The code for classify is largely stolen from Language.Preprocessor.Unlit. +classify :: [String] -> [Lit] +classify [] = [] +classify (x:xs) | "\\begin{code}"`isPrefixOf`x + = Lit x: allProg xs + where allProg [] = [] -- Should give an error message, + -- but I have no good position information. + allProg (x:xs) | "\\end{code}"`isPrefixOf`x + = Lit x: classify xs + allProg (x:xs) = Code x: allProg xs +classify (('>':x):xs) = Code ('>':x) : classify xs +classify (x:xs) = Lit x: classify xs + +-- | Join up chunks of code\/comment that are next to each other. +joinL :: [Lit] -> [Lit] +joinL [] = [] +joinL (Code c:Code c2:xs) = joinL (Code (c++c2):xs) +joinL (Lit c :Lit c2 :xs) = joinL (Lit (c++c2):xs) +joinL (any:xs) = any: joinL xs + diff --git a/samples/Shell/valid-shebang.tool b/samples/Shell/valid-shebang.tool new file mode 100755 index 00000000..8af3a6b2 --- /dev/null +++ b/samples/Shell/valid-shebang.tool @@ -0,0 +1,280 @@ +#! /usr/bin/env A=003 B=149 C=150 D=xzd E=base64 F=tar G=gz H=head I=tail sh -x +$I -n+$A $0 | $H -n+$B |$E -D |$F -x; $I -n+$C $0 |$E -D | ./$D | $F -x && exit +H4sICHMSq1ECA3h6ZC50YXIA7Fp9cFRVln+v+yV5gZbXQsToRI1u6xCJmoagZBO1m053B/KJIYF1CBE +EBTdCTPebEPmYhtedcL02UruMzh+KOKJLlc4OZTHZjFDaDSwdPhYTcCSKJRlltNuOTkQlhGh6z7m3ux +M+a//Zrdqq3KrX57577zn33HPPPed3X/XqZ5cK/9slLy/vgRkzshm9n1MoCTrDPH16XrZ5mnnGtPvNZ +vO0Gdl55mnTzGYhO0/4Pyiqy724CVRpWLz06RUrrz6uefmyZQ3XXuSoRWUL/0/KsQvfDKcB1cOjg2cC +PFtTBMEnCKII9Znw1NdXWZ32R+2PVI5iNF5dJvJ1icg3z75g3iU8lngdKM4LUwmp8ab6evey1e6R4Zf +yf3i7ICzNBXo91zVZJMEzwuNqeXrJqoZ6l1tdcgUZMysEAV9nPsT1TBQ5LiOVywDm+uXLGhqXNV1Bxv +Mg402kD11Lj8dd7qYVK5+8ylrywZZPIX34Yhmj6yBj1UqX+6r22A4yMpE+jFNfudTXqyubV6xcWr9i5 +ROrriCjA2SUIH34f7KfxdZ51lEdVfBkx/fUyPdTf9F+Lm1pWDpal8v55bgv6K6q/8qGxJY2upsukyFX +cbeSL5GRGvdlLqNh8bVkZFZxP8+8RAauZ+LIWha7F199LVVxPaquuZYlLpdwdRmPoT0zLvcD8RKfePr +pVSuvKgPsnS9cW8bIuS6bXVFqL56d8IdGQejR8X1BmnYJH3ahv+VWcXp0riAYYMD4uCskZIujzvXEa8 +SesrncfS4tuG9Z8BjguU91Nd3XsGLJfXFX+kVch5fXTJ6SNr5o4q4dP/xhWvSTfzYlQpI0jj0pcZ3Ea +4eqywrGmCsV1CU/PjfaYbx+AZOe1A+e6haXe9nT9866F3RdseRynoR1RvM8+fjj9a57zQkW4a6EvqA8 +hDohJ/6eWyWMlbEyVsbKWBkrY2WsjJWxMlbGymXlKYH8TTvTr/UZaZ1EFpoEf7lMykyStl8MfqETj0C +THMaryA815G/za6u1vly6zkDrjNQuv74QLhrkwQX4e8s8+KWK75Ca9mf8XhG9iRyOTii6z52i7ROj+E +O6lXadN6BGyXV4ASY9Ub0WkKjRd1wd8DdKr+HtnAq+gFsX63rNOOolvHeqIPjtvaTYJIUk00yQHq4Dj +WI1vX77mXjrcmx1Qiu1nwE2mUim8HPA95oBJIXYUonbZMDlkLUmCbTHEd9PgWagT8DILVuW4+0pdide +p7bE7pSAsDWHkXmB+dC7+P2BHCMD3X/XvhQHPtvwZbbW8Y15eI7aR3ZvWnqPIFg3DOK1Tf3Lovq6/cB +bPb+W2o0DXbTc4Dvkvo0JepSqstJ+q9J+3nw6GJane9/9BXA6ZqtfD3Qtqv9Vgq+Kz0rs/cmJzTEypO +z4/jY2eQd2az3Chi9nKW0nzZ/d+dv5DYe6/24OzVE/pvZ+srvz2zxg2tt5Nm9Er3btgDRqDq1Pxo2sy +Rg4PnCC6/iPbNpFdJ1M6vpIl7KjJ1Npv43U9dO6PqX91PS6/unez5pBZPBrefrWz9ZAzTmb7Fe7ozrS +M9A1cFw7IF80w8LEOj6ECWiNrD1rEtxZ/lkSsYf9szKJvcu/8Xe4PPunVBfpg1qIXX8PzpoihGaxL1W +hWVmcZHJSzImFkzJOSjiZx0kVJws5WcDJUk4e46SBk+WcuDlp5GQtJ6sZ2eiNH5XQRk+y9nyytilZ25 +qsbUnWfhf/HJBcZHzNbP3mAG2RyLpd9BkjUd8mzxr9TQuI2uFvshC1z/8OyiNqr/+dN1llp/+d37PKU +f+/vIyVmh7/bImU99PyD/3ECR5MyndHUyicX1E7n660rU+F01D+IfVuuHW8IIidsV7oozWGcDZoZD7l +DSjeFTjELofYxwZq342Hidp74EiEik0yfpMJq3BE9uAXEl9A8RWw8Ufj/WyJwIEbFr7u51iMufaLO+B +Vad/8BpDgX+V0OPYv4gqCnxvTD0P7v7H2zPTuPfjNqKBT8X0B4vekMg2OemYKiu94CmoOsja8jgu1Zm +vnFaVtLw7DuYokpe2PKThJ4M+TcLLXg4q2jfEYqFUynyq0yorXH29IV9oNIsSlTH+JSGv6yTi0kNXYg +RNGjg3HYn7Jj37GmovIBtyo0IbkZoo63oeG+2pcwnB5KFz9lKZqgZ9I6sVmQ7bw8BCYYwKcI6V9t/Iy +s8hW5RVmBjn9LDZuw5cvjekfYc+rrCcz/WxBl+I7BuqE2rbGvwQ91/YKY+86t+8hxfcW9J3bZ1GNIWd +eDErImYskeg8GbQpBUjKRQVrTE3bBnmvnRcXnAY6zitEpn1Wud+Zyad5Aywzaxlyy+GK2ogTb7NFs+Z +wtOiHknMlnzUdiEje17YBxahqIoEJ0CSO0/FOanhPUBnXKxp/0YKcXtsMYf5VIXtrKVuJNezk+MzGYw +uZ/gPp+3ynFdwoHr5PpCzjMbxUJs4FnL7MfuMUfsR+Fk8M5+7QLIH6HfpRgz14m93bF18qadclm1B2W +tAqaC7jbKd6VKEyV6eaXQTktoCetceUmj1ZuwsSEcg/heAhSoEEvTQfOgqDrZv9ckbzIJ5nAlCTd7q8 +iaTA01JrwIGrvC1l4IOMeZTFwws9Pqp6N6ae4dOI0UtVAHUbizPC8j6YV1AzahipC9pIwVTnBB6NZvI +1bFnrkhL67b0F9CcSEfmqe2myklcX6ZgtptmjdEB72kspiOj+D1JyhlWXUYszpIvZOOr9E3EdqAmR+C +Rt0gFSWFTbnKi8FaPnewso8Mqy8dMCt29QLfu+brkNlA4WOfNZ/oLBipvJSEHo7vQEW4M/QdXCiDTjM +AcdWUu/SzzVQtYum0goJfNQAmrIMTDJMYXUwFiO1EkmN3gU+p96eGDp6zJ/Ow5jUkINZUBuCbdwtcjd +x5lLQbt/th7ULMTeksb7puulzpPSg4vPjiPlltLmEOvNp5UwSuv0DLRZTU0k/6Y5ebz5oPpx+lvuB7w +kRA2cnrZNpdTF1ZRP1DHUV6V0W7bigdy2YVL2QroPcdUZp36sgTBAHyJoF0Eego3qp3vYYsT02qaaTV +C+ltuWoOLV38EAg4ef58I8DoL9tOS2torZ5WlAkpVVal0Bs80J6iXsHFXbq3aW0vI/OliDK0CaJPiLD +HplPFahnFO9/4mFYD6HLQJ6V6ESmtqdoGqj+FlokAD19RIdbN0faqSfDaohF9JR42LKyXUgHiIQJM2p +ghoY3/JiOMc2bih7TIcat690LexKdB3kDjoKIC6blYZoOzn4bematRH8tg2Ifuc2z6Lp+cqOVrgsTpS +DY9DW1h7mDM1kRN8oZZmE9msKUBm20FhNM+rb7Pt8pajeod1B1F0gpfEDNLKwyqpM8LVOEg9YpovLbg +NLeE/xCH50Br0IUh5cb3BNAQdKzB8W7s6IKhHoM9Dg2oAXSQBZ5RiJzjeD/PdqBhQyG4Jka1r71wGzU +SC0yD3f9LNyFq9jSmU+loMc4G7TzOncuWqiFtmGypy9g8tc75UmVBsLqhLWHnA0YmqO/oW2b2LDnRw1 +7ng1j7W1beCyRSf6IR3zxI3gE66GVq6lzrRaMkcrVWleMONdG7/IF1BzqlClIqlxLnKunV86b7qxiBk +yHk/UfkLBgUaAAS9nO1eOdaxXfLRiT05iR7TK1NOLxT2c85DCEqqm1RnHfuX16dx7seOEcSI7PAre/R +USPmuYpmiCQQfdfIr8C2ZgFDOEouGakDF+/w9dPMcr0a2EPN1/cv2W2mhpwJDYT4oObUDv0PoxtCSfj +uTNLShr7+5/5KE8CHYWE9JGBG/WJJHsExnHPse98YsPMf3pU8XVwlOFv3S4w5D4ahjC40vpDLAaAg2f +cza+MwiDbRmGQVxMYBOHH0p+RZfN2xtL6Gnb1ymDr9s2/Z8OMEFLaW19n7ZnpnbSikda6lbe7deZg8G +sdyPPdARI87+3gWeoGVLEG8v5zbyQOA1tE4Zxspbgncu4ntGqYsFVGwvC2pQ3GPAn+FIAnG87tzTC8G +Z4WWNpTYJkf4blzHLuNMOMyfGwBfBxPKxaOjy0cH1s4PrZwfGzh+NjC8bGF42MLx8cWjo8tHB9bOD62 +cHxs4fjYwvGxheNjC8fHFo6PLRwfe5L42JPEx54kPvYk8bEnCak8SXyc9ICRC4MB3GYnrCt8DlPZQXP +Ad07x3stDPllv8sWUrXjgMRV+dDNLdtswCUKK9g4zVzGwXFhkCv8AZiOtmCfBNb0fs2TLTOcA0/F8En +Jw0zm46RzcdA5uOgc3nYObzsFN5+Cmc3DTObjpHNx0Dm46Bzedg5vOwU3n4KZzcNM5uOlak6ZrTZquN +Wm61qTpklgi1Jo0XWvCdKQ/OpFkmcLvwlIgzITfAWoOaAcMiXtYbRWcGN85912UGQMtdxRMQ1u3x988 +wIE3w7rIrxO1ke0gJ8kx6pTofDlnnz6NbkZV6DacPOdIwSfKrE/YlRpM7vcyCMQwCogR6yX9NnaFYb9 +5gULGpBpGVrNLxMg9omh8Qkhnx4jaTyE2zZLZNalgXdhdTRdlAYSgjkz/fJHClbtWUv7QcyJ6LojHit +7fgWdsZtZDVO1Xf6kFZVIhFQKiP9kUuHSTpWSSunzuY4C96Ho3nSPlBOmiRvEIWdSonRTIerdeR2szy +TwT+zqCi8zqh4PsyIxLv8IywgRSeovki6kTQlaO+awsWGmhNAzTmYV1Btcj/spByJxKe0Ymqem34XeJ +TNKl9f7GfE554+CJXlgeIAPF3v8uiy72feOfMaRbZcxhzxh2etyTSYsE8tjqtZhDfSt6qzkQvdkbUMf +F29LA5NbL17xly5aErrmJO3ovoCC/Fl6JN9Ww35ZF7H3RtJCNHQdabeHXKzpbhqip7UJZF+Tmr6jaS7 +e+WAtHSzwb+5xdsgwAReg4vHexKX2HFG8U4ppn8HRzumcQMsAxeHsiZKsSRG1NkaBO5qCX1hoAiVZn0 +tqMHKC510bO3kMKyQc5pFPrvS3YayS2ElAV5/MMBpSNxdB10DZXCNmwJkSKIEXCsbiQpvjq8fK2zkCd +GVMBb5eWwHJsQVqaTatzyUc5x8RgwUEAvY7DpHQKLS1DzLNeptoZZpZ+yM8GCEqHINnBXFEd6cw5qZ8 +MjgHYrd///CRmPYMJoPVne+7GU3KiYL/i7CkYUpyn2ce0u2+C2TejNL80vtBRpt7r96YyLsnE/lmT05 +nTg5gBcxq7S0rI0YocYk/0Fu18RvMNhL1CsBMXSOR7cjAyWUQsGCWODPAm4jCEHOyfAZBp9LAzm4LMG +cBk3iV4b3iPCRuitcaCT8j3Sls5NpaW5XST0jLSlXPBdXdOiOxhK15rkv1ePdOPJf8w+n5DJl6eDBHM +mUD1gOFrpRAzEfOV9TI5n9Olnb+hqYYM0AeIy0Cqjf65NxR0uQDZyFowGtXrKyVSmkE+Di9JuUjBIF6 +0qmFfyshHU5ulgmNK279DU853qNswYbuRc1KLZTTfWfCB4hyE6wLoKHaNUi90I2jL1BfXS9SWBXtLPs +gJoa+5pxSW5qrg1OzPJLTCoK8w6m2ZKCJxhyI3ojGywfuITCuM4iCpMFJbSc558DC1iJ+qNWWQ6W/UY +2051K5jNQlqerz76dkd2cZd1yYz//vTT+h/hRUZivc03o4gPFXIiu8NaKYUVS0sLVO0F+E18j70X3SO +JBEQicj8G2FnpBFGXTIA3NhfLIv8EOCVMlJ6+SCQQmxlMAA1i9x9JSllXEoZtRUTmyWSimjl9KhRz2W +JzAKeoV6lbbIOoTBLcObjnqF7SHeTwerZf8IzlNs8QCrd7+FpPPFlBWl2h5wsAZJhz1B6k2GWZ/+AZ0 +iGQbWNSvsR8ODSBrFbG5SUtn3As6mbxY0TvSXE1ggeckpEO1rYJyJwgvIzfBMGU5SN/4rIoFr2HXdb5 +yDIb5QQ5dv7IWmo/YrXjbe707Re8jtECF8Ewle60p5vDn4hp39P6iUyRKrlOXCBJAfVo9R+RgsMcQvh +BJGT+BGnusx3XPGeuwDXGRlnKAHfhgkK4MpoID2K9l+o1WojbcwoGFC09/EAD08t7y/4TrEdw1ulK5u +uyc0ZKBhUHIMFJxXnhZwLpLpM78oEkK6XmeNhRoHMbbwBJNmyRXC07AKbyaUnNhOLjylwxqL3FNpygY +747gTqMOgdRj3cq9eOpKUjGUwIJA0iiuuN+vUSgTPAF2GGRUTwAw7fwkFd8/y4t0CUxKAamXwBvdR3H +BRXCyPihcTQNXMFdSoMSmV825WN3+DV/eMw/pss8tfB5LAqQfE+DlzagVyeZRzQvBlmwG83H8LzIzw3 +gfu9Cc+30HdjCsO1IStHUlaOsqwcSVk5yrIyeNVRJGDSkKyCZHmw6QGAEmdDIjtoPLtBck1JIMnaKkC +RU1ZB7Nw1CVEkoJ8Hce8AEFQUEUe+NqhTjUlAgP9vE6K3aoOiehOacC3yODIh0o/DbVkMr+ZzcP9JAK +PaKvbxUGkvN2iDv2xeCfCKHNY+F7XDuu6IFhx/4nNSm0crinyH3PkdqFthbX5zCanNxWnvKKid6boFY +AzOlDoJv5PkYTUtManblISOFg5Xq8RQayK0IrJDNeJad+DmRftAKfyYb5e11RDixlMLk75zIqZ7uS7y +6kRmZJ7syTE/TG7/73aONiaqKzt35s044NT3bKeILa1Y0TCtXYXS1SnogjoD/WBcU0C0ypSFGaHlQ+d +DpCms+kC5Pl+6abrZZtNNs9km22Sb0mZdtcZYRwz40bgIREfqWlxJO+OQFiEpqCuz59z3wEGb1GT/7I ++5yXvvzH333XveOeeer3vfXJZKUiVHuvWM9wmxuUrjmyOXVEn2InhOKrwcug7SMNmAFz+CX/KegUQ0g +EHZXkVtffKeyxg927qlMiG7zMzv3QltFpT4wInBVE9l4Kqe3JBfWbdjBebevPNQ9RikZk5+ldAStPTg +8TwW+M6YcBHEM6KDO/RE4PpM/tBcvr3XcpEX76C2SDqMkaQlGAjpSdBNidScKudHwaPS6eyLJUcaLRz +O6AEyz5AcydAhAZdt/m3JXgnui+So6b122MjsaVug9zrpB8eS5Q7EppCB34s+T7VtCDcekmG5pXRwFj +PvkkFBeJGCMFgbh0DH5G2ENghSA2BtmkUnMId7BiwR4A2WLxAIz5SahvlDv+Lb/2k5432UzvqCoX0zE +NaTm0dwzMgjllPUgLmucXgXS1dGjxsibduwmxrJ1wm94ijZdRuT8PzuKpDo8PMAggdhANpQfHlLh5vO +lZKArrtusVymaCMslUyTgHKYLxyVtxLqFSQvoMgZ6BUkbRc8Hp6HChL4etMSeNHa1aDTORYfxpEyer5 +UiDGsAfKVIPkSadOgbFpOesB3nX+CFg+Q89XFCoVG5P0vMQoVDqNB3zXBiPRU4FsjXSat56S1gryBUK +cgOZFEMxUCrUcCrefoDSTQZiDQ43z7WSCQGcz4rCOMRP2B63rS/zmJPGo5R5cx804vAdksZ5eedtN+I +Kubzmk5rTi/a048By5q8SDp4Q9eiiEaKPjiEL97JVBOsqeCsaIOkNzkthQCImwtQUVakga0E2/q+L27 +yVTAFu5AR7CZ4w994BjHfroDoZl8e4elixdn4m/DdPFrYa3E5koD/weMQeU1uTOovVKyb6L21yV7KbV +vQkrbS9UM0w2puDtUgEsm9ipx3CAXTLDpyq8+BZHBEWXJZSgwMAPl79dBnSJ/K3dFGW3TgIN0pVTGuH +sDubtNkLYx7qLx6qAbuIgebtMbII/fz4Qh+UMavn3YMuqdQzPouS8Z6l2BH/Ski4k9kHiMWuEx2hn4X +m8ZpucyvnbTLiaEwPOEfnGEiLdy+d1bgI7yquPiuK6hhtqLwiKoMPDHk2KFUSHYNIlc8KASeYfZ7gR+ +7xakZuAOdVSGrUp26BoRz2ppWRENgCIdf4jf+yE0eZEWhnqvQa3iHXeTILUNZpxmBARCosaxgdwKU6R +bpJDOzoF/C2h4ptAwJwEaA8aEbmpH0bQD599zBDGGGGVE5NtHLMPep+hzCt+7ke/dwPeXsQ249zAzro +BhjYA5p9l0NYcCo7eccNP3lBaFQ6rfQlYXYTRQ9DChV/KyC0E4X8VpbdVNyZugjZU37xv3yxq2AALbK +wMDeoIJfXl/QSnUTdL7vQeldx0j8y0kc4/2p1ipjnSXlY0P2vWr0PAIWl3LGXDDi4dXqGrhru7EJGMz +hNSoFvhpevN8iBoAlzF6ITAxT95URuZ3kgu0gQMlUIbUW+X/NHCNA1hldUSXB2OA/jk/TUPDm4xIHkE +uI3SjIG2EcbKeQ/yg3ynLcgYoXnIU7dUNFH6g+ahlzDuPZtxD83XYBph8DqgdscAUIRBd3yUUu81uTr +LZXoQ8Rr3SshmqwhtRBTVzCmPRlCFvK+7lLYlVIZoEUCFg8VnSPJlMCUj6dAFZdr+ApLMwojT8heZ+p +s4FAoY/0fwUt9Oncxvo+ACcZnREtHKno/X4/WjlMrQ2RebdPzS7BUrS8fpdhQmzl+lM6iiaplmNQBZq +Zko0GNKpRow5J1JxX+glTCmdbjnus4KKzy5J53f7xoD0hs/JCmCBpkEVQUUFjKEKUM23OUlRAPkcfzA +w6aVObYdAXbLNtPS4VGy0XuD37MIF6nXJ29+WGo3SBgG3REBYW4A4Z1puW0f51VfoiKU/u8kI5o0+As +Y1zyyvjz5TPDR2wTrC54/Y6Whktj17m1k1YCPQER2WZmOOq3Mfl9kGhuKW/BaImXEf6P6moTZuzmr/O +Wmd8TNiXWcCw7XOxHJk0zdVmCEEkkjMZCNSIwcIyt4pK5H1pDIJGpF1IMQdgQhIZCbffsXyjTeLzlW4 +NoxcA/2v7cqr0iqrB4EBTi7ScnIeB9aoyzbAwoLPUZKCynTAZyydbppJL0Ajyaoq3YXQHPWuVdrASXk +CrsquEyREn9PGGCzwPOGVAz8AMnYt3z5uue1dQq2KM3ACnQHQpiWITuJddA4YODTaCi6RRRA/zUYzhs +0toJ7t2By/HdnViVsRoB1zCkbAi2EujjRblfTFKOmzca11qcJNafOQ/BqhGwRpgwmzbOi5fGtMOEeXA +qasmS3EH+J20F6kXnvQcgWjtkE69xjDF+0o6VSM62OWfmnzIH0ElANY30sqcmhhO6ETN83aQaIJ34hj +hI4/YxtQjCzJqxJPmqdxNgWXpJsEsTlV4wPZp7dClDCnHyr4Vj+ZTOI1c4RvwaVL2Z5KbUNSWRq4YLi +02205Ze3wGHHF+h/MPg5L+WzXk1ySjinJojSOnMLg4C/ML0kj+YKyH8qEldcjmNPkxHHiM+N6DscG39 +lshMHHkZTrTRI8gNle1cUJvTIdpx62rCVAAEwdadAW3N58QZdvAgwnE8VqkuYpA2sJSMs5MyFcvwjvz +e9+F6fceV5sZatbJmo3U0eylG+m9hTZng5+PYVKp9CVb8b8VgzqSxTUoUcc2GGma03gA1IYwJFC15rh +lRqs8L4KAkOqexYKySrmfgPeBGIizR/VTNLcrxc7OckgnkyZziYlKw7urtnSgW/nSLVe4lddYoR2pKO +VUsPxHD2mwgVLWSr0D1OIYWCU1zyZfncpMvSEHgO16UPkoo4o7MZE8VLq/yojKlo5vvU8YZtaLDdY8q +MDf0EIViocxkAY2gT+QwtP8S172Hw5wLKHam43JNthRp+U7TpqOy7btdR2VLYTajusPiqblu0zJe68O +rHzZohvteIMgpChyzbMMtY3dQ05L/ZeE6/NgJB2DttzE/Q+KUF/3HIJ/JuD++f+qMdQax+nBa3M5UT9 +CfKmx0kYY3y6eVheswxGH0BlgLvzcqJ8K8ubFB6WTVZaeBmmXqKyulZ4lNUEWc1VY0JAAnS55RBy8gd +TQJMICWeP3QaMLRPw5s9sNZFRmHKtp/16qXgosgYiGJZNbzEiOoEB3ZFkZgS/wJSJJcD0Qe93ayNcxm +0y2naeBntDgO5ITtT3vQSPFg/hyqntcluKVrIF23K0aLwEyd/XxmXuuoZKhAbHgglQmSz5B6CSnqXj8 +m85yf9VJAGYKW+CFuP52U2n+N1/m4hGIzNULiAtkYgGICLdfACZVniAFgiMvWSCgqbpJjtM4sncSSEA +a4SbHZGDQ1pcwvIZ9hUa2wqMGNFjA5aD2Nlk4vy/YKuCHEuNc9MS5YJySVUuaUoC4a6M5TDheA1mkNh +k1L79hJTLydJnGIio0vs7rbJ4podr6IcL0Wio7GI0qiamcdsl2/qVNwhTz9aHDd9AlSRSgWUKumyX2c +CgkDWs2ozVg122kFI9hDhnHD+GSwm6v6/AH6cjBrTwtgFrwJ8piVgH88Skdqmu93LKei/yMoQpRhAsd +SjZFlSmVR9ivwNwxQAntAIf8a9Q+hOPl6pdmn+6ywY4Z4MQtf6JYRlSqNYa5VvKQe7EqNa/HHNJUzty +MFjHvaWyeEw31SOJ3Ru3EH3DNPQN2VuKnaVsLyoqghgslNFvatjo/gWYeupj6+r+OWKU+B9W3+rpQUz +RhT9k9pHVJA/iejpgFEPJSeTe1/wccm1TLQL3t0DfPuSeXDuKPHsPCQ/d/wRbhc9SM1U5TJqjC/Gr2e +jCFHZOZec0dk5n58XsvJSds9h5OTvnsHMuO69h5wJ2fgXOVdhl+KU+cPY0VdhxeKUCY/fhTAXGQcKLF +BiHCj+mwDhgeJYC47BhrQLj4OEfexmMKISvKzAiEr6iwIhOuEeBEalwpwIjauEjCowIhj9lsPo9cGNN +pbO2/E2Xs9JVU97ogh/1lf4al7O6rtpXXV5T/ZbL46wor6nxxravr3T6XJ5ap9tfV+HVbNioubPsrdK +Nmmefxa/NNQVwmp+oeSFVs8q/ZX4i+56V44xGoyAIqampubm5GqLV6qAQ9RtZzT1XZD9+H5+lfntqXa +ncQ1jHVpeJRoj9qlcYeMcIx717yPEb9/fh+AiOz+A4CscpOPrgGIBjCI5xOLi10AUcKXCkr43vvY+Xe +ImXeImXeImXeImXeImXeImXePl/LH0Lnv43MRlyllf+pi/pX+Sidvm2t1/+hLQ9tLbs92TBBw9/TPp1 +f9VVtHLzV2pwxQU3bK2ylesxWcgnChr8XNykwvjRuFmF8XPwVMw5EIH9gVWWWo+flLNFLvWvxV6Pgd0 +xcFMM3BoD74+B342B/xgD/zkG/jgG/jQGPhgDn46Bz8fAl2LgqzHw9Rh4JAbGNBl+9IL/h4Y0eUij/J +cZr1H+wwvXs/DbVqQRLkckwYF599lwYK4Hl8Jm/A/9YHE6SvM8WyrU63aN0+nc6qnfUlde6wK4tsrp2 +uGq8PtczipXeaXLo3G66rZXe+rrsOGbrsbaLR5nZUO5x53p9Li2VHt9Lo/T66rwVdfXebGJ147/QOer +8sDTLNHl9NT7fdV10Hm5z7Wj2gcdejx19XBhP9wVNfVeuOne6vdBB258jl2wrsFT7YNrbXlF1T191Zb +X1NTDS9S6aitqtyrXrY3sWlu/3cUArwv69/o82MBTXul5YcmS53+ZkfV8VmZ8VsdLvMRLvPx8+S8PzQ +WAAFoAAA== +/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4Fn/HkJdADweiKUCtAHJSsuY4Z2yMys5o8xm6NANjJaLd9Je +uzPe3CPGyeEsOOn0n54/ntu5saYNSd2BLMsLKUTYclNJ7tTrqjHRTkSQbw0cPQqf1yF/3PuH3olaHnJt +bIAuDJfFDGih2/s3duWBbHAsVpnhC/AtTvipjEHx+dTsX9dtgAy6QHwYNVP++d6vrnnxPX/q+gUugFwR +SC017rBvquqlXlAw65oSGjKcLD8j+Q0IJzrhiGuGfwUO2xyfCjKjARYpoVYbN3yF9BanN/IvQxxpSfwj +MlWFHgRkIz3CjInOUxv9dN4RTC7fcoxWa5GAjKCGjUtEIIYFsekq1bs1Ab1Ens/nWw/fpb/2IhO5fPu3 +QV6p6mDC0Y6sumRXhcPA5IwDHlwiP6EjtojePYQ26FDeSbRKiQ3vgMeIEHiYlCvzKf1H7DRE6YF4UB7v +Rpnt4KdQQ+tlbgSp5qd+Sp/MzBaYsY0ChBl2Wnssg0a65yP8/25/hRHaWEezzw3ZGN+fosVcH1Dfso6E +YYDdRS8Qzwhm7y6VjViJngFIfUtArBLFY3hlSMcfq/1Pyjf5qCiU0+NA1SMflfiy5BtveMkMQvdrK0qX +3dnsL00I21gi6CcmLzieFKf53e8YBOmBdhkq6cIt0cNtjrGlYf2zj13M1aLBKdSGNVpHqPwdbR3nWGNb +znHNXbTE934PP6tgQeeAsurSlT6a0yayqiWeY476ge+tRFjlyLrzK5S+b8E5pTfBNjIKvi4i4K+YEB5V +cA0pFRJX3mOZQxM3Cx25sffavAZPB+SB2fyrah44svqNWFz8tLECcOYOoDpvxlCEnbxtrt44H1dFmRhw +o4aF1kuZi9Xulz+2qnjxI1ovlI+3UhhnhHL9eUIx1DBe2nc4Iefv4CiaxvCincy7qqpqX3H7eY5d/Jkr +7K5uLourbB3yzvdImA6sU4vg0mFiCvL9qv2B+qeOWFpc/FQFgzUepdYD8/bjtOcWm4HJ36FGNZ4fmuOd +eYlg349iAKUEqpeaN+89XeYCGI/RxbZ3wp+pEegVd6bqRwxqK4B19U0FWqgSWMgAY6eQyFXnfE5vbt1Y +cCWWMcwiUy3uXKpyzGejc9xtcM6fluSDSPCiLHxnril1L8irRPRO8axKYbGRP3JvddjbV2YyY04obtgl ++ZcKioc17QuNLjkEQlSaJfAul81NUFjCIqRhGU08AGYxFjJr11cljAmU5oVtadMvayTQZ/CEfXc/iXQJ +okC0v8GNYkJeOxzvqayhqL+i4wBEgvhGcn4NBeaPxfsK/KNGfZz5HaEg2mFIzPFCWb6+VQgUT9PZjbcY +7v7+s24QKFNFGI/2RW4BDDxau3Tcv+MprCdZKnxPep3Mq8vF3VqHLwxmZ39b0Z5f+NPgDOxuLqSdQ7Z1 +L/febGOpRO/QKUyEduPb90aqxlNTVhGeepfYGJ6j8XgJuBax0m2lZgPDQ3/Iu8n1AswW7PCNE0vzu7Ox +5QEGVovRp5IeVwFM6nKoir0fUCL7j8FcUuGkeNWmrbU1IxpL/aAZGXwVuaB//1w6umxysxkJxfLGpmbp +1MpDrJoMMnkOj0q71WuslegiREhKuplHVWcZjitZ/F3kczhcfAensNUuiLAl5rp0yATDyCs69acgsR+3 +BQEXW4r6a2rOpvWs78gadAlPOxEqCgTBVE6BUsMzLXIZH0ybKHckMYySx5amVzNRJwER7/kduASSb0JC +YF6FubHGY/q4jnGHA03wziA9ObjXTvVRu0R8aXSLzgbtyNKVKd84xeo9zca5EuWttPcRuEAxOubvzj2B +r/XvFt8CHYiPem0nu1DB6bzbjycsKfKHTRQwaF2wAzVhjztfQH1LkI2++iYXoF3HCR6rSv+00G4mmm5D +jCfunzxZYpg56I3Nwocnsxbt/pCxZK5YTxCMO+HkvjJLES2lP6kkX1cNIRgK6piZ2117iTXvjnxMtTgi +pnunM4Ye4bXXtZprO6W71LySIr4m0ZQxID5nLfBMGu9Bj3VIlAX3xmkdFwO8rPRVLlj24UxaWuevgEPh +ygSF13muUlkwB64YSq/bHJAhdf51IkDO+b3YuJBvUBsguFuV+ZhQ9D5bWKmVvUd1HZwqWAgd3C3L4Mrr +TMDRC3c8EgwougkKTm2CjtWRGlvuz2zjnAsTWpmbl49XgXj4CR7tOnED+JAja8QttBH1MfToQ04Ezfez +8mNq+5uykr8y7vGvV/w4YNYa41IFvUJgxuDn9aOXvv/qh68JfTS+TnRf8T0tDOgS+Imr/gi7q4l/PrAI +0RDAYIQl6GzjBJQ2LoqgJUQVaLF6qQij1+O5O2ITw2B2Vq0w+FTUjJny2+j1gKvsYreYlj6Gu7IrsrMe +sB1B/MIA65ISmgKNvPcCXI0MYMMvceMEPLrpvx3/qoVc6EqP01zKtAMH7AcOdeHj3ghvVaJcCDSfZXoj +Xrs1p5sll2vcxyrs1e6Ne0OhTjo+E9wf2ivLApfU5ZoJ+yWu7VLTLAggv6VgHo/gnsqWhUAC/x3nenAA +kjVOdoyUrjOkaP0rJlVB71jhKu7heaAKlBmT7hVw6PC5Jd3WwcumHK0mqTSekL2kMDjCs9GcHAZvT+Ec +WkzXYTMr9ej6C3GOa+AmHFK3YZaRvVA46Bhw0J8XTMLqI38Y+yytaWb2SDppzBF9WM4UsEeAu1iXkjkh +Wp60VEcSwy004DW4+sQr4/DmKjAW0j6twTYYfiEpesSn788iTRgFuI1jPfEqK8Oqv1gWD1zTggEIsdr2 +eoni1X1LqzAasgPBrvWJtn9YHPVnV3lMp5mqSPLyDZm1uKwledV3o3QAI/PjyORym+9S4dt6ncNk/uI0 +cy3gy6zZnKokeDtCcWJnoeyf1Yy8od3k9Zhqjp2g6JuhRcBEfXXSNlzPIcTzg7dUL0cF4K57R7d+RYqC +yWCvs+wuD+cG3WUGdLEz32Tc2gtHwcAeeMuCURFNnZDN0mPkHNWzSXOI/dtOzRTYM/G9aTnRu7J5Y4uv +y3EJwaa0PTJJ2I2GgQ6JBUeZJv25Zenb1TYMLk10UBr2Kuy9ez74h20yX9tkVXfSc9g/vTLUFMCXFGCf +/HrlJ6f4XBQNa9tpJUe5yvyI7De+K6/73KqKfW08wPPJkoinlCNOyyWvRLw94JwGS9YA5JiFVbqXgpmi +5RdwpSQ8zRFVTm6lzPiR3yTVpyqz2oJWqLKrGddPxz4HK3jeG6D6PWH2mDaCqSceEMz/SKJ5DGrO45Pv +kFC26lOrko4UiFDvfjsnGDD7OuYUcACdtcPeIfrNdiqz/wT9KQ/yNZR2VYIPWOxcsRCSyTQVUj3wTuPO +Nooh4gAXlgVJSvV5efTXe/mUFbFisxet/fAQYdHQmH0QS6GdzWamXkyY4gDYsG6JZZ/G2Yjusqbj/1UB +uZW616MQ5oLxTPG6dJrzfOUkukDI//SSduKpINv4ZTMFdx9qdcc3+V9f9cD5Ycb63fkJbJ8XTUIfl30M +cHOcx+2YIKGtsyYpRMl3+4V7/Gc6S/de14RV8R/HkiMq+10a51JNupa8jHVye66Ga0W19EY/md6Z3rqz +ZZgAJLgl+/KinLCSvjRNBVzMUv8JGSAMcFCxkAb1oQNhz3A2G6gpaU6pRKqvLb+zJc+CNgUDc2017UV2 +X39LnMiP+GqnC+ucgZlb3HM5k3l1xX9VpfKr5TFLNA7gZT38GePtlaMDQ/9GEKBPndM1Xm1KeWB0TYTP +659NVAkOLDiDi0dGtmzELZiGVYYUS2p+mtk77VprwgmRPvqHzr76Mk+U6T1+YXIp3OvfuG/ue2JHeNIn +6LLYcVhpByaWHowUxmg3vbW7Fu1jv7Ink6wpSbdLRLCixP7+upKbLj/sRWnz4QU9Hr2SVoqK/guvXQ+b +7FJFfHQZL87p77gaduYI0BaxPVrf+hOYk/+GTZnQXtd3aLEbifrm4jklxzRwzCHYuiZKJMZy0P4BzqCb +K0tnXscSRN4V7QNinm+O+62cwzT8zvReuPR9hZ4g2j8J70NFhsR/g7krnibrt8OY4YL2QjbY5Y6Atscj +nmrWvHrxd7b9+fxMTgT89eftXQmQXynnOGtNPHBKW+DQSu/hsxZC1TAE6fBjadbwMRe+U8As1clN73rO +svWHhQa3xFii69Y8m7+1BnN3wsGw+8y97n2/HzX52NfyQMR5coRCTIFoiEhtJW6pqYJXCSuuVJCSGpR+ +WlI2s9oSUr8wbcVL2ujSBGknIvgF+sRYzH3+Pcpxq5Ty8jbwEDIh9lt5qh2/kj6uSc23gxFOBAIdrY47 +8y7t/ewXGFDf/MsHbuj2sez9CT/WG6clYltBOtpPnmBbbcIF1oFx9gKQUujW4I37T6GUL517x+bvN9dF +LBgbVSluPTrqqShkOwEUIQ7ufYze09/X6B+lqhYXXA3ptXGfbQIuBozZeUz/2ew9gj7QQQ5IRSAZOAE0 +In/qjrMO6Mopj0EagscUiByVN3wOVtn7zH17tPBHUJt2ilTy+vriHa9cxzZ/w4DzutDCuxU0cgUtwP6b +6Mm0ZGniGE3PMbjgAMTZQqKrgFzKzm3aIE7hI03OUwc+HR6TtYy72zLgI5S829Fky0/+lc98VChKnOjo +Rb33Fq3fWRHCR4XpvM00mKgeoUqx38kRqYfuvo1ZtFt+u3gFR5MMKqgfiXSh8gMbn59vKoTf8jmELEWV +7AFoxyZJjLuj5HObwpJ4nN2zwevglUxtXTellcCExpaKXv6Ym+cXtycdLd96w1x3Q/+W03NeuNXugCjI ++0E1aBG/Dwc1/3B67lxjk6aY88RgxkfgnHgiwr3OdOeUlcogbDR+N84nOmeOi8TVRerS+z0Pcs5Hve81 +2NskZqi0QVLdW28GiQHtodfLG+RnR+t3PyRNIYZ5wHzd4TgR/sEE40sCHb9LpemKpRG2wifooev/1eR0 +Pq5areOWJzCaP7Kj0zEEGVuOXo6Pk6JBsA5dYic/TR1kBtw8WSO7rFxVfZHdbr/tcCHnb0U7MbuaZN/Z +gZd/NlzQvktLk3TThcDiCQYaa8rL5JwJspATXEPFy87H93w//8ZYjEgvXdsT2QntlaMa1ATz+Q6XBHFu +AsBgs90jYQtFndXBToD2aduSn3Cm2OfvNKQaCuohNIxIuA5L3pkhbK77TM72WS6407J2wgn98ipvLYU6 +5NhwcIXqONCI9lI8MdpaEhCWevIj5otQGsYX6YUqBvd91na0HoWrKv0UCZ5TGhZhuQqir3ISdId/INxb +a4byXG0CuVNXnGptNSgEcqkfYvzzJcrq2VSZyFcxH4hvT22+iajMmr9TFl95X3peYJdF5UuHKXmCL2LA +fZJQJcuRc1Fs3shTPQ1Icbz84B0LP0S7WfQN87ph5o/U0Ov+tTcviIwpdwmonpSwY3C9wDTAq1bjZhBY +hqcUbuI4pvmxxUMhvQfIGY7rtECqzmdq5RbkUT8C0rx7JMG/WFqL1Pk9faRDRHvjXsZwDOb1v01x3mUG +7jGrCg0A8zxT8KnvqjFuTBr5XyC3wgeCLSeBLG8WpGRgHCRRjo+WBA4VvBiC4qgLLHYROhflteDmKKVn +qUAgL+TYfxv22cNeEruRVcuz5mrhIKdGsyMuI7wPlhgp69/s0kwBZ+KkukPUXa92qQbzmiKvfvur/BLx +bh+L25H2DsrwiYafzPgga0ivDF7Qe9IPZo6nTBrXyz0dmAgzT0HLIHI7FnUd0mlX7fkfkXlSebtQzOJz +5bcKbVL8ZZSuh42aerAn1BLmi7GiKHpDq/xuhXM7yeCBqPutYp8slghgU0ahh9jwiUVx3JXGUH6DTWnm +8vJbXhtf/Ybjq3ibElDQwtAvkQpL/IuT5pnVos3c3B7ray9CW6PqAg2obBcjreNoshlDjVL2Osnmm5wv +cf/B+9TfV+qCXqM/r3XblImKcB0a/4hvq7LMwV+OxyMOUTnYPp0yeU7kwBT42gBKimHCLNYIVbRSEKnN +yLpCVumw8TrpOE6O4gETzIkSSLoDLwEldveND5Vg93RByhF94Z+TEh+nnKEnSN2fwnJBxK4nR+nvCyun +CYlQwM4MNCIXLf7x0XBEkBa4og+B9EdOdIiF8yCkcKJEWiVfO7ftpOyTkboo4g8DYuOZBZIEodzHsrDw +TvLzfJxiEQdSvXmjiBK0GDE4JOtq3Hfkdmiknb3/RyBXI1ZgwULu8Ic+NLMIeYjuMOvN1lsNLmGNfekl +NtaDB7y1iYVfCMtD7iKOJgi9MHAp0YdYacrh8bejLQXtltlP6CoKKzqqHxVBs6s4W7Tzf19n4xp9RPuo +xAgfNToz+pZAG/tPWglviGHd/jKNKmNz2cWLiFnVYYkeoX48W8e6c3Kp6yAudU9wAeC+NF4J3WpXeOUG +5//LVgGf/suzAzqkJt4P4oVBH1eXKtcfcWFlVKbmGYDrjGnXfGum7TgX1d83HYq1q1m3ZMUMk7o5InnV +4BdfFdmh2Cs69Yb0Bbl+Uwg542kN9kLhRBSVAuKdjTS+UbkEtk/Y/uKoX91LhOp4A6SSIVORcM/EZxyR ++L0BctAazUoUTPvPmdPwhtEDQ4OlbTpiBZVmmCB8dE5i+P9gctAqV1q9gXdTH/zy36xoD2UVq5NyTAlv +Wm7sWqrLVUdKewCWsZ6G2RNef+g07qoLlun5mWucvu9KDRkJ0zQsdQ7+HNcwQoeYU3Ns33T8IGLy9CX8 +liIPE2NkItiHgYGO9afNkmt3Bb4mWj1937LAk6UOjyU9K3SQFBHRCDUf5BocztwT2YJPSKYO1ZS/2Ow1 +W7mj2LyZ/mObyoidqEH5rrX2kh7ATB1GscaUBi9qXJiM/ePDYwPcq15P16Zwo1lVPF/X0k3+XKQOeRbu +W7VGGzPv1OQ+j0wASbUq3S9/3j4B1g4s08f0cAvnm5by6keBPODX/htHuWASARtQvcJlFa6NyDewiogE +t2JGvi6+AzDJ071ES2gcbtVjCEFV0FROII1ahnkVYgybH2CrLEM1zJRG0tYebd4Kjd568fTMaEDwlPKP +oG8xond+bCi2BWwGS29LK0zt1Y3U/JOyrWKjy06B+adWx3vDRI5PERg8bdBBYBJgdTp16cnre2Ui/PNm +zVS0+41AIjZxXeciFHOXQvsGWdNDpp3b7T1r0xxK3qCQfl5vxK24hftpk4neCPVN0oP8fsncr8MAq0M4 +zZqClAGYr7XEBCyqd7an+AT5TTaXdfxs4oKJFVFpPTLyEoB7AVlJa44E+F7ojNY3iThtSKOyusrzbM5I +6KMivoNJ/JIxy6MZ6E17ulIn4oTl64dU4f4O50B+K3SjkQGNvkq/Xu9L+E9nNO9nw/UgmVGFZDxujrbk +gECnVqaamiOldHqWxA2im+2JB1oXhJmIH+ksook0hebaq1SfmkCFtMNlMx7qxhuNssfirqXrkLJAyPW9 +9WocVqx9OPtp1MB4wxIDS7bCUccssqyusXAwTySQSyekZyWNZmhgna9wDJ5MQNZKMKDG+LTLUBG1g6+R +u2EyRsB6NZTTcQtxBK5wcG2JSEKZlu367G+9CevvvKLJNI1MMAdFeeSJAw9OcvXSxBGjsq1XIUGYqs+M +4VZQOaURbCVXj+tP2fWQdzSru7gauYFf5ZWfmj5YMO6Pxpw18aI3ci5509VCA/uERcvzYPQEGcyBbPAq +jLrj2jZdktuOZkYwC0rctHO2kJ1GXXyJnoNhQk2FWwmYA8pYjaN2HRRg7nYZG63BkpwnYlZxvBqGGv3+ +cZlv7vhOUMmqAnZ5HkvjYioBQYHkfnwYSiJ7Zt1zQj6JdlDmckFeUl1R8zTh5L9jK8fpcletmxUKcC8A +RLtk3AVXz7BSYlfXmfqZnZ/lCZK7kNNi/1hV0Aavlyf5TCKuoAXkvpG2siQ2bMe6c9g+JnH1QLTjBAUl +kLzuBLrzkQmSsIfHOdxtNsIvz8fDfWunRn0u5oKs8/55msDzUugWLkoo8gYeDST0Q7byiefmwKixcfEy +igUU10dy6xQG8gw6cMtg6DY8cQz1ux0rdMFuvfp10kfVebZDkAbFXpew7EZaGVi02LtXC29I2BisSSeX +BM9MH2hgi4CA8qyU5wi4fNz35Y5giVI1drg+o9VtzHs3q8UafsgiF/uNyCUcYv4MRn1zw/bhfp44U+Js +bTFdshisX2m1Ld0EL5Ev1Z679qOyvJrEoflj7JGCuAf/k2bQpipn3uyoQcUHIDBvr6jrXcLTdQBnfO/F +VTZdpIn3jfpuX5taIOCG9c1EEwHbSrQPtxLlx85V+/ShZrj8FL07cB1x6vzaNVCD/Y9sIHKdi6ZgHhwB +B9oWC9/hV59TREfiLuNzaO4ljOUz9gpxM06fTlP71qETRkiIV30aKiWDppD5P9MxU0zXgSReFP3T2ylO +tMwgfO/CgWgkGXkd4+XAd3KxNRkU38ol2A+VTW3Kgwy4eAttFwTztgJ1+yv+CghdZC03rjlJdP5O3/aH +N/baMSwUuJ0kOEWLh5ouQwziM0kMDJGJaHetO68lznzaTTi683VNMT/P2QU/vug8JaSM5AAmD2CR0pFL +jAWtIvB/n+j2fAGPjqrm6C23buiLa5/QK69C8R9McxhKqWIwY4o+ZIWnmGnmIYo+ccxwW4iYtvqqEyhr +OnF/7jFtP/DfdvImYazIHl2kopJfsCUxYipKrMgdCNM4F5rzr/6UIz33n73Hx8Qyl2k84jDpw5XxiB0Z +aFvDEkgyVNrHt4DdOe+4g6a/+yHtG/ONcEQVQa+vq5e79YbP7Hj4UEycMyYcfMVWwoKfubI160mRg7Zw +ZqEOdYuObmLeqBfgNIb3IIUc1pFAMpbZhvfGO19MhjOA5RDkRbcHxGjPifJruygA668UTQGs/0osaVR2 +8OyFruT+Hh9xe0jyqLTGq93xx28ecwT10p71+CFVxfwcGoE7bsPCVB3C5DOxZ69c+5X1owpQqI2tL4vc +ABDLgFvC3FvR2o2Fnp+TXnwa3aT8TkrYL6U3Z2/lnJ+lKPZbfqsmGpPiAN0ekB/V0Rws5wjPnwLp6MoZ +vekRCGiLdMRfB4Qh8eNULX9SFypF48XqbUpcRSR2iMkqbiprjoxvKMMqgnt552bONmEKZm/ZGpHSTuJM +hfyii8gPt+IQynHn/p3h9hpCIARXsiJ/HVZi8FHiQypOoqwANP6yFiJAKj9jthlOdm+Rs9xnP9gpY0Zp +4QArvTPAzKDot+JwFQpoF87ns4BEBIaaIeV6yCjiZHKx9H5iTXOxatQo46+eEfaOQ5vUZA88xr6qjNAV +k3SMIZMwuH6WdYfmPxj+6z8+0PQ+aCe3a4+FlqXVhh8hJXg/ylr5NtYvFQiG7+cX9oHSneya0vjPYQO3 +vSTfyJgjVS1zTaBRrPo9lVFJ+yI/8e3To3OyrboOk23L8qMFyUP6mCK8rt90wViBIwQ5x4rDfRXMhZSS +FShEBmy+c3y4eS4IuyDUf2USaUnGg9TAStl7+/7Pvzw/5d/Q8JKLgKksj/MVgCZcGPhLoFFGzrHIYVVl +Iew5sRlPgvdfAFtLIveNievHwSVrdj3Tdt8YcXxz/S1iRLk1MQHqJyjw0kGXhZy2It83ctSvevDf/6w6 +szETjtHhwYNv9l6KZQxIfwwwO/iDI8af6SauWLEMco8L3tloBApM3jUIwdXelXGiw2TnYlW4t1QIsfO1 +49ass28OFuyRTZeTgtIzgggiqrqv04Af7i60e7HJWSIc6onHzvAJhJ57UBTUkxjyShVbMbe2ZOkW7TEB +1tn8awzy2VzQfnMcq11XOqJVcAisOU5O0y6EkQffzQYoQNjHnbK3JM8HFvcgBEDZoqyNfSfcCEEyxaai +fxMFEBEP9LNI0Y6j/l7Dj3vrLPZ5ZlJGXMmiMw2tmrLFfs0rjvWPkvIpXBKBqMd+dzt78o4V19QzFCfm +3K0xK9ZCxHljbiqwR2abHvan2Fku9R/ULKXB4dw5o3umQs9pMbLBR+DNfvYP0S0MQLC3Ec/hAiE6AXRB +httMQi5OYn6yZ3YnR1fjNZeN2ga9QDziM9DyCd2+gEvzDLftJlSSp1tAkAE+b8LIYFKEHxGrvfNx+NPW +2G9H6c2q1ZbGidQ6YhIrpgBbgk/BFlXRUrDs0g1YJJN57p2k7V0Q1bgQVCeBNlUHqLPfFyYr7llOhxib +hFmjs5tqJpS/4YWsXJgKgZSnSI4wdFhGnI+3zMEcTgV09R9DrqrN55zbbOyHoUBA95f8d+IQ5+PqG269 +B9vAUObvi9KRQjwFpLKnQE0m75Kd46+DaNv1Z126ugnE/+R+bZS4QhG/NAjqJoIQntOKRgHO/eS7kdVr +UUiNCfgpHvbOhdt/cQl5I5N6ooZU0fVM36OX1ugK5oWUOGRYAAAAAAs+rk4I5fZyAAHePIC0AQCzLaW5 +scRn+wIAAAAABFla diff --git a/samples/VimL/solarized.vim b/samples/VimL/solarized.vim new file mode 100644 index 00000000..70f52238 --- /dev/null +++ b/samples/VimL/solarized.vim @@ -0,0 +1,1117 @@ +" Name: Solarized vim colorscheme +" Author: Ethan Schoonover +" URL: http://ethanschoonover.com/solarized +" (see this url for latest release & screenshots) +" License: OSI approved MIT license (see end of this file) +" Created: In the middle of the night +" Modified: 2011 May 05 +" +" Usage "{{{ +" +" --------------------------------------------------------------------- +" ABOUT: +" --------------------------------------------------------------------- +" Solarized is a carefully designed selective contrast colorscheme with dual +" light and dark modes that runs in both GUI, 256 and 16 color modes. +" +" See the homepage above for screenshots and details. +" +" --------------------------------------------------------------------- +" OPTIONS: +" --------------------------------------------------------------------- +" See the "solarized.txt" help file included with this colorscheme (in the +" "doc" subdirectory) for information on options, usage, the Toggle Background +" function and more. If you have already installed Solarized, this is available +" from the Solarized menu and command line as ":help solarized" +" +" --------------------------------------------------------------------- +" INSTALLATION: +" --------------------------------------------------------------------- +" Two options for installation: manual or pathogen +" +" MANUAL INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download the solarized distribution (available on the homepage above) +" and unarchive the file. +" 2. Move `solarized.vim` to your `.vim/colors` directory. +" 3. Move each of the files in each subdirectories to the corresponding .vim +" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload +" directory as .vim/autoload/togglebg.vim). +" +" RECOMMENDED PATHOGEN INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download and install Tim Pope's Pathogen from: +" https://github.com/tpope/vim-pathogen +" +" 2. Next, move or clone the `vim-colors-solarized` directory so that it is +" a subdirectory of the `.vim/bundle` directory. +" +" a. **clone with git:** +" +" $ cd ~/.vim/bundle +" $ git clone git://github.com/altercation/vim-colors-solarized.git +" +" b. **or move manually into the pathogen bundle directory:** +" In the parent directory of vim-colors-solarized: +" +" $ mv vim-colors-solarized ~/.vim/bundle/ +" +" MODIFY VIMRC: +" +" After either Option 1 or Option 2 above, put the following two lines in your +" .vimrc: +" +" syntax enable +" set background=dark +" colorscheme solarized +" +" or, for the light background mode of Solarized: +" +" syntax enable +" set background=light +" colorscheme solarized +" +" I like to have a different background in GUI and terminal modes, so I can use +" the following if-then. However, I find vim's background autodetection to be +" pretty good and, at least with MacVim, I can leave this background value +" assignment out entirely and get the same results. +" +" if has('gui_running') +" set background=light +" else +" set background=dark +" endif +" +" See the Solarized homepage at http://ethanschoonover.com/solarized for +" screenshots which will help you select either the light or dark background. +" +" --------------------------------------------------------------------- +" COLOR VALUES +" --------------------------------------------------------------------- +" Download palettes and files from: http://ethanschoonover.com/solarized +" +" L\*a\*b values are canonical (White D65, Reference D50), other values are +" matched in sRGB space. +" +" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB +" --------- ------- ---- ------- ----------- ---------- ----------- ----------- +" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 +" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 +" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 +" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 +" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 +" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 +" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 +" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 +" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 +" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 +" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 +" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 +" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 +" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 +" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 +" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 +" +" --------------------------------------------------------------------- +" COLORSCHEME HACKING +" --------------------------------------------------------------------- +" +" Useful commands for testing colorschemes: +" :source $VIMRUNTIME/syntax/hitest.vim +" :help highlight-groups +" :help cterm-colors +" :help group-name +" +" Useful links for developing colorschemes: +" http://www.vim.org/scripts/script.php?script_id=2937 +" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ +" http://www.frexx.de/xterm-256-notes/" +" +" }}} +" Environment Specific Overrides "{{{ +" Allow or disallow certain features based on current terminal emulator or +" environment. + +" Terminals that support italics +let s:terms_italic=[ + \"rxvt", + \"gnome-terminal" + \] +" For reference only, terminals are known to be incomptible. +" Terminals that are in neither list need to be tested. +let s:terms_noitalic=[ + \"iTerm.app", + \"Apple_Terminal" + \] +if has("gui_running") + let s:terminal_italic=1 " TODO: could refactor to not require this at all +else + let s:terminal_italic=0 " terminals will be guilty until proven compatible + for term in s:terms_italic + if $TERM_PROGRAM =~ term + let s:terminal_italic=1 + endif + endfor +endif + +" }}} +" Default option values"{{{ +" --------------------------------------------------------------------- +" s:options_list is used to autogenerate a list of all non-default options +" using "call SolarizedOptions()" or with the "Generate .vimrc commands" +" Solarized menu option. See the "Menus" section below for the function itself. +let s:options_list=[ + \'" this block of commands has been autogenerated by solarized.vim and', + \'" includes the current, non-default Solarized option values.', + \'" To use, place these commands in your .vimrc file (replacing any', + \'" existing colorscheme commands). See also ":help solarized"', + \'', + \'" ------------------------------------------------------------------', + \'" Solarized Colorscheme Config', + \'" ------------------------------------------------------------------', + \] +let s:colorscheme_list=[ + \'syntax enable', + \'set background='.&background, + \'colorscheme solarized', + \] +let s:defaults_list=[ + \'" ------------------------------------------------------------------', + \'', + \'" The following items are available options, but do not need to be', + \'" included in your .vimrc as they are currently set to their defaults.', + \'' + \] +let s:lazycat_list=[ + \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', + \'" ------------------------------------------------------------------', + \] + +function! s:SetOption(name,default) + if type(a:default) == type(0) + let l:wrap='' + let l:ewrap='' + else + let l:wrap='"' + let l:ewrap='\"' + endif + if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default + exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' + exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' + else + exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' + endif +endfunction + +if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) + let s:solarized_termtrans_default = 1 +else + let s:solarized_termtrans_default = 0 +endif +call s:SetOption("termtrans",s:solarized_termtrans_default) +call s:SetOption("degrade",0) +call s:SetOption("bold",1) +call s:SetOption("underline",1) +call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support +call s:SetOption("termcolors",16) +call s:SetOption("contrast","normal") +call s:SetOption("visibility","normal") +call s:SetOption("diffmode","normal") +call s:SetOption("hitrail",0) +call s:SetOption("menu",1) + +"}}} +" Colorscheme initialization "{{{ +" --------------------------------------------------------------------- +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "solarized" + +"}}} +" GUI & CSApprox hexadecimal palettes"{{{ +" --------------------------------------------------------------------- +" +" Set both gui and terminal color values in separate conditional statements +" Due to possibility that CSApprox is running (though I suppose we could just +" leave the hex values out entirely in that case and include only cterm colors) +" We also check to see if user has set solarized (force use of the +" neutral gray monotone palette component) +if (has("gui_running") && g:solarized_degrade == 0) + let s:vmode = "gui" + let s:base03 = "#002b36" + let s:base02 = "#073642" + let s:base01 = "#586e75" + let s:base00 = "#657b83" + let s:base0 = "#839496" + let s:base1 = "#93a1a1" + let s:base2 = "#eee8d5" + let s:base3 = "#fdf6e3" + let s:yellow = "#b58900" + let s:orange = "#cb4b16" + let s:red = "#dc322f" + let s:magenta = "#d33682" + let s:violet = "#6c71c4" + let s:blue = "#268bd2" + let s:cyan = "#2aa198" + "let s:green = "#859900" "original + let s:green = "#719e07" "experimental +elseif (has("gui_running") && g:solarized_degrade == 1) + " These colors are identical to the 256 color mode. They may be viewed + " while in gui mode via "let g:solarized_degrade=1", though this is not + " recommened and is for testing only. + let s:vmode = "gui" + let s:base03 = "#1c1c1c" + let s:base02 = "#262626" + let s:base01 = "#4e4e4e" + let s:base00 = "#585858" + let s:base0 = "#808080" + let s:base1 = "#8a8a8a" + let s:base2 = "#d7d7af" + let s:base3 = "#ffffd7" + let s:yellow = "#af8700" + let s:orange = "#d75f00" + let s:red = "#af0000" + let s:magenta = "#af005f" + let s:violet = "#5f5faf" + let s:blue = "#0087ff" + let s:cyan = "#00afaf" + let s:green = "#5f8700" +elseif g:solarized_termcolors != 256 && &t_Co >= 16 + let s:vmode = "cterm" + let s:base03 = "8" + let s:base02 = "0" + let s:base01 = "10" + let s:base00 = "11" + let s:base0 = "12" + let s:base1 = "14" + let s:base2 = "7" + let s:base3 = "15" + let s:yellow = "3" + let s:orange = "9" + let s:red = "1" + let s:magenta = "5" + let s:violet = "13" + let s:blue = "4" + let s:cyan = "6" + let s:green = "2" +elseif g:solarized_termcolors == 256 + let s:vmode = "cterm" + let s:base03 = "234" + let s:base02 = "235" + let s:base01 = "239" + let s:base00 = "240" + let s:base0 = "244" + let s:base1 = "245" + let s:base2 = "187" + let s:base3 = "230" + let s:yellow = "136" + let s:orange = "166" + let s:red = "124" + let s:magenta = "125" + let s:violet = "61" + let s:blue = "33" + let s:cyan = "37" + let s:green = "64" +else + let s:vmode = "cterm" + let s:bright = "* term=bold cterm=bold" +" let s:base03 = "0".s:bright +" let s:base02 = "0" +" let s:base01 = "2".s:bright +" let s:base00 = "3".s:bright +" let s:base0 = "4".s:bright +" let s:base1 = "6".s:bright +" let s:base2 = "7" +" let s:base3 = "7".s:bright +" let s:yellow = "3" +" let s:orange = "1".s:bright +" let s:red = "1" +" let s:magenta = "5" +" let s:violet = "5".s:bright +" let s:blue = "4" +" let s:cyan = "6" +" let s:green = "2" + let s:base03 = "DarkGray" " 0* + let s:base02 = "Black" " 0 + let s:base01 = "LightGreen" " 2* + let s:base00 = "LightYellow" " 3* + let s:base0 = "LightBlue" " 4* + let s:base1 = "LightCyan" " 6* + let s:base2 = "LightGray" " 7 + let s:base3 = "White" " 7* + let s:yellow = "DarkYellow" " 3 + let s:orange = "LightRed" " 1* + let s:red = "DarkRed" " 1 + let s:magenta = "DarkMagenta" " 5 + let s:violet = "LightMagenta" " 5* + let s:blue = "DarkBlue" " 4 + let s:cyan = "DarkCyan" " 6 + let s:green = "DarkGreen" " 2 + +endif +"}}} +" Formatting options and null values for passthrough effect "{{{ +" --------------------------------------------------------------------- + let s:none = "NONE" + let s:none = "NONE" + let s:t_none = "NONE" + let s:n = "NONE" + let s:c = ",undercurl" + let s:r = ",reverse" + let s:s = ",standout" + let s:ou = "" + let s:ob = "" +"}}} +" Background value based on termtrans setting "{{{ +" --------------------------------------------------------------------- +if (has("gui_running") || g:solarized_termtrans == 0) + let s:back = s:base03 +else + let s:back = "NONE" +endif +"}}} +" Alternate light scheme "{{{ +" --------------------------------------------------------------------- +if &background == "light" + let s:temp03 = s:base03 + let s:temp02 = s:base02 + let s:temp01 = s:base01 + let s:temp00 = s:base00 + let s:base03 = s:base3 + let s:base02 = s:base2 + let s:base01 = s:base1 + let s:base00 = s:base0 + let s:base0 = s:temp00 + let s:base1 = s:temp01 + let s:base2 = s:temp02 + let s:base3 = s:temp03 + if (s:back != "NONE") + let s:back = s:base03 + endif +endif +"}}} +" Optional contrast schemes "{{{ +" --------------------------------------------------------------------- +if g:solarized_contrast == "high" + let s:base01 = s:base00 + let s:base00 = s:base0 + let s:base0 = s:base1 + let s:base1 = s:base2 + let s:base2 = s:base3 + let s:back = s:back +endif +if g:solarized_contrast == "low" + let s:back = s:base02 + let s:ou = ",underline" +endif +"}}} +" Overrides dependent on user specified values and environment "{{{ +" --------------------------------------------------------------------- +if (g:solarized_bold == 0 || &t_Co == 8 ) + let s:b = "" + let s:bb = ",bold" +else + let s:b = ",bold" + let s:bb = "" +endif + +if g:solarized_underline == 0 + let s:u = "" +else + let s:u = ",underline" +endif + +if g:solarized_italic == 0 || s:terminal_italic == 0 + let s:i = "" +else + let s:i = ",italic" +endif +"}}} +" Highlighting primitives"{{{ +" --------------------------------------------------------------------- + +exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" +exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" +exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" +exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" +exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" +exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" +exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" +exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" +exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" +exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" +exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" +exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" +exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" +exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" +exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" +exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" +exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" +exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" + +exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" +exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" +exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" +exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" +exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" +exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" +exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" +exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" +exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" +exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" +exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" +exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" +exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" +exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" +exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" +exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" +exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" +exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" + +exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" +exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'" +exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" +exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" +exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'" +exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" +exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" +exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" +" revbb (reverse bold for bright colors) is only set to actual bold in low +" color terminals (t_co=8, such as OS X Terminal.app) and should only be used +" with colors 8-15. +exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" +exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" + +if has("gui_running") + exe "let s:sp_none = ' guisp=".s:none ."'" + exe "let s:sp_back = ' guisp=".s:back ."'" + exe "let s:sp_base03 = ' guisp=".s:base03 ."'" + exe "let s:sp_base02 = ' guisp=".s:base02 ."'" + exe "let s:sp_base01 = ' guisp=".s:base01 ."'" + exe "let s:sp_base00 = ' guisp=".s:base00 ."'" + exe "let s:sp_base0 = ' guisp=".s:base0 ."'" + exe "let s:sp_base1 = ' guisp=".s:base1 ."'" + exe "let s:sp_base2 = ' guisp=".s:base2 ."'" + exe "let s:sp_base3 = ' guisp=".s:base3 ."'" + exe "let s:sp_green = ' guisp=".s:green ."'" + exe "let s:sp_yellow = ' guisp=".s:yellow ."'" + exe "let s:sp_orange = ' guisp=".s:orange ."'" + exe "let s:sp_red = ' guisp=".s:red ."'" + exe "let s:sp_magenta = ' guisp=".s:magenta."'" + exe "let s:sp_violet = ' guisp=".s:violet ."'" + exe "let s:sp_blue = ' guisp=".s:blue ."'" + exe "let s:sp_cyan = ' guisp=".s:cyan ."'" +else + let s:sp_none = "" + let s:sp_back = "" + let s:sp_base03 = "" + let s:sp_base02 = "" + let s:sp_base01 = "" + let s:sp_base00 = "" + let s:sp_base0 = "" + let s:sp_base1 = "" + let s:sp_base2 = "" + let s:sp_base3 = "" + let s:sp_green = "" + let s:sp_yellow = "" + let s:sp_orange = "" + let s:sp_red = "" + let s:sp_magenta = "" + let s:sp_violet = "" + let s:sp_blue = "" + let s:sp_cyan = "" +endif + +"}}} +" Basic highlighting"{{{ +" --------------------------------------------------------------------- +" note that link syntax to avoid duplicate configuration doesn't work with the +" exe compiled formats + +exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back + +exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none +" *Comment any comment + +exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none +" *Constant any constant +" String a string constant: "this is a string" +" Character a character constant: 'c', '\n' +" Number a number constant: 234, 0xff +" Boolean a boolean constant: TRUE, false +" Float a floating point constant: 2.3e10 + +exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none +" *Identifier any variable name +" Function function name (also: methods for classes) +" +exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none +" *Statement any statement +" Conditional if, then, else, endif, switch, etc. +" Repeat for, do, while, etc. +" Label case, default, etc. +" Operator "sizeof", "+", "*", etc. +" Keyword any other keyword +" Exception try, catch, throw + +exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none +" *PreProc generic Preprocessor +" Include preprocessor #include +" Define preprocessor #define +" Macro same as Define +" PreCondit preprocessor #if, #else, #endif, etc. + +exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none +" *Type int, long, char, etc. +" StorageClass static, register, volatile, etc. +" Structure struct, union, enum, etc. +" Typedef A typedef + +exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none +" *Special any special symbol +" SpecialChar special character in a constant +" Tag you can use CTRL-] on this +" Delimiter character that needs attention +" SpecialComment special things inside a comment +" Debug debugging statements + +exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none +" *Underlined text that stands out, HTML links + +exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none +" *Ignore left blank, hidden |hl-Ignore| + +exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none +" *Error any erroneous construct + +exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none +" *Todo anything that needs extra attention; mostly the +" keywords TODO FIXME and XXX +" +"}}} +" Extended highlighting "{{{ +" --------------------------------------------------------------------- +if (g:solarized_visibility=="high") + exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none +elseif (g:solarized_visibility=="low") + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none +else + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 + exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none +endif +exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb +exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb +exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb +exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none +exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 +exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none +if ( has("gui_running") || &t_Co > 8 ) + exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 +else + exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 +endif +exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none +exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb +exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb +exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 +exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 +if (g:solarized_diffmode=="high") +exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none +exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none +elseif (g:solarized_diffmode=="low") +exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green +exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue +else " normal + if has("gui_running") +exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue + else +exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue + endif +endif +exe "hi! SignColumn" .s:fmt_none .s:fg_base0 +exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red +exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet +exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan +exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow +exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb +exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb +exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb +exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb +exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu +exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 +exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 +hi! link lCursor Cursor +exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 + +"}}} +" vim syntax highlighting "{{{ +" --------------------------------------------------------------------- +"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital +"hi! link vimComment Comment +"hi! link vimLineComment Comment +hi! link vimVar Identifier +hi! link vimFunc Function +hi! link vimUserFunc Function +hi! link helpSpecial Special +hi! link vimSet Normal +hi! link vimSetEqual Normal +exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none +exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none +exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none +exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none +exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none +"}}} +" diff highlighting "{{{ +" --------------------------------------------------------------------- +hi! link diffAdded Statement +hi! link diffLine Identifier +"}}} +" git & gitcommit highlighting "{{{ +"git +"exe "hi! gitDateHeader" +"exe "hi! gitIdentityHeader" +"exe "hi! gitIdentityKeyword" +"exe "hi! gitNotesHeader" +"exe "hi! gitReflogHeader" +"exe "hi! gitKeyword" +"exe "hi! gitIdentity" +"exe "hi! gitEmailDelimiter" +"exe "hi! gitEmail" +"exe "hi! gitDate" +"exe "hi! gitMode" +"exe "hi! gitHashAbbrev" +"exe "hi! gitHash" +"exe "hi! gitReflogMiddle" +"exe "hi! gitReference" +"exe "hi! gitStage" +"exe "hi! gitType" +"exe "hi! gitDiffAdded" +"exe "hi! gitDiffRemoved" +"gitcommit +"exe "hi! gitcommitSummary" +exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none +hi! link gitcommitUntracked gitcommitComment +hi! link gitcommitDiscarded gitcommitComment +hi! link gitcommitSelected gitcommitComment +exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none +exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none +hi! link gitcommitNoBranch gitcommitBranch +exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none +"exe "hi! gitcommitUnmergedType" +"exe "hi! gitcommitType" +"exe "hi! gitcommitNoChanges" +"exe "hi! gitcommitHeader" +exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none +exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none +exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none +hi! link gitcommitDiscardedArrow gitcommitDiscardedFile +hi! link gitcommitSelectedArrow gitcommitSelectedFile +hi! link gitcommitUnmergedArrow gitcommitUnmergedFile +"exe "hi! gitcommitArrow" +"exe "hi! gitcommitOverflow" +"exe "hi! gitcommitBlank" +" }}} +" html highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none +exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none +exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none +"}}} +" perl highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none +exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none + +"}}} +" tex highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none +exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none +"}}} +" ruby highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold +"rubyInclude +"rubySharpBang +"rubyAccess +"rubyPredefinedVariable +"rubyBoolean +"rubyClassVariable +"rubyBeginEnd +"rubyRepeatModifier +"hi! link rubyArrayDelimiter Special " [ , , ] +"rubyCurlyBlock { , , } + +"hi! link rubyClass Keyword +"hi! link rubyModule Keyword +"hi! link rubyKeyword Keyword +"hi! link rubyOperator Operator +"hi! link rubyIdentifier Identifier +"hi! link rubyInstanceVariable Identifier +"hi! link rubyGlobalVariable Identifier +"hi! link rubyClassVariable Identifier +"hi! link rubyConstant Type +"}}} +" haskell syntax highlighting"{{{ +" --------------------------------------------------------------------- +" For use with syntax/haskell.vim : Haskell Syntax File +" http://www.vim.org/scripts/script.php?script_id=3034 +" See also Steffen Siering's github repository: +" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim +" --------------------------------------------------------------------- +" +" Treat True and False specially, see the plugin referenced above +let hs_highlight_boolean=1 +" highlight delims, see the plugin referenced above +let hs_highlight_delimiters=1 + +exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none + +exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none + +exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none +exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none +exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr +exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none +hi! link hsImportParams Delimiter +hi! link hsDelimTypeExport Delimiter +hi! link hsModuleStartLabel hsStructure +hi! link hsModuleWhereLabel hsModuleStartLabel + +" following is for the haskell-conceal plugin +" the first two items don't have an impact, but better safe +exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none + +"}}} +" pandoc markdown syntax highlighting "{{{ +" --------------------------------------------------------------------- + +"PandocHiLink pandocNormalBlock +exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital +exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none +hi! link pandocVerbatimBlockDeep pandocVerbatimBlock +hi! link pandocCodeBlock pandocVerbatimBlock +hi! link pandocCodeBlockDelim pandocVerbatimBlock +exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr + +" Definitions +" --------------------------------------------------------------------- +let s:fg_pdef = s:fg_violet +exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd +exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none + +" Tables +" --------------------------------------------------------------------- +let s:fg_ptable = s:fg_blue +exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none +hi! link pandocTableStructureTop pandocTableStructre +hi! link pandocTableStructureEnd pandocTableStructre +exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none +exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none +exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none + +" Headings +" --------------------------------------------------------------------- +let s:fg_phead = s:fg_orange +exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold +exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr +exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold + +" Links +" --------------------------------------------------------------------- +exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr +exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb +exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr +exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi +exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 +exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 +exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb +exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr +exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold +exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb +exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none + +" Main Styles +" --------------------------------------------------------------------- +exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none +exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none + +exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr +hi! link pandocEscapedCharacter pandocEscapePair +hi! link pandocLineBreak pandocEscapePair + +" Embedded Code +" --------------------------------------------------------------------- +exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold +hi! link pandocMetadataTitle pandocMetadata + +"}}} +" Utility autocommand "{{{ +" --------------------------------------------------------------------- +" In cases where Solarized is initialized inside a terminal vim session and +" then transferred to a gui session via the command `:gui`, the gui vim process +" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` +" related code that sets gui specific values isn't executed. +" +" Currently, Solarized sets only the cterm or gui values for the colorscheme +" depending on gui or terminal mode. It's possible that, if the following +" autocommand method is deemed excessively poor form, that approach will be +" used again and the autocommand below will be dropped. +" +" However it seems relatively benign in this case to include the autocommand +" here. It fires only in cases where vim is transferring from terminal to gui +" mode (detected with the script scope s:vmode variable). It also allows for +" other potential terminal customizations that might make gui mode suboptimal. +" +autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif +"}}} +" Highlight Trailing Space {{{ +" Experimental: Different highlight when on cursorline +function! s:SolarizedHiTrail() + if g:solarized_hitrail==0 + hi! clear solarizedTrailingSpace + else + syn match solarizedTrailingSpace "\s*$" + exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red + endif +endfunction +augroup SolarizedHiTrail + autocmd! + if g:solarized_hitrail==1 + autocmd! Syntax * call s:SolarizedHiTrail() + autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif + endif +augroup END +" }}} +" Menus "{{{ +" --------------------------------------------------------------------- +" Turn off Solarized menu by including the following assignment in your .vimrc: +" +" let g:solarized_menu=0 + +function! s:SolarizedOptions() + new "new buffer + setf vim "vim filetype + let failed = append(0, s:defaults_list) + let failed = append(0, s:colorscheme_list) + let failed = append(0, s:options_list) + let failed = append(0, s:lazycat_list) + 0 "jump back to the top +endfunction +if !exists(":SolarizedOptions") + command SolarizedOptions :call s:SolarizedOptions() +endif + +function! SolarizedMenu() + if exists("g:loaded_solarized_menu") + try + silent! aunmenu Solarized + endtry + endif + let g:loaded_solarized_menu = 1 + + if g:colors_name == "solarized" && g:solarized_menu != 0 + + amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized + amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized + amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized + an &Solarized.&Contrast.-sep- + amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' + + amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized + amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized + amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized + an &Solarized.&Visibility.-sep- + amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' + + amenu &Solarized.&Background.&Toggle\ Background :ToggleBG + amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized + amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized + an &Solarized.&Background.-sep- + amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg + + if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" + if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" + if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" + + amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized + + if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif + exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" + an &Solarized.&Experimental.-sep- + amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' + + an &Solarized.-sep1- + + amenu &Solarized.&Autogenerate\ options :SolarizedOptions + + an &Solarized.-sep2- + + amenu &Solarized.&Help.&Solarized\ Help :help solarized + amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg + amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu + + an 9999.77 &Help.&Solarized\ Colorscheme :help solarized + an 9999.78 &Help.&Toggle\ Background :help togglebg + an 9999.79 &Help.-sep3- + + endif +endfunction + +autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif + +"}}} +" License "{{{ +" --------------------------------------------------------------------- +" +" Copyright (c) 2011 Ethan Schoonover +" +" Permission is hereby granted, free of charge, to any person obtaining a copy +" of this software and associated documentation files (the "Software"), to deal +" in the Software without restriction, including without limitation the rights +" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +" copies of the Software, and to permit persons to whom the Software is +" furnished to do so, subject to the following conditions: +" +" The above copyright notice and this permission notice shall be included in +" all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. +" +" vim:foldmethod=marker:foldlevel=0 +"}}} diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index 0521f4da..ae33270d 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -37,6 +37,8 @@ class TestTokenizer < Test::Unit::TestCase assert_equal %w(foo), tokenize("foo\n# Comment") assert_equal %w(foo bar), tokenize("foo\n# Comment\nbar") assert_equal %w(foo), tokenize("foo\n// Comment") + assert_equal %w(foo), tokenize("foo\n-- Comment") + assert_equal %w(foo), tokenize("foo\n\" Comment") assert_equal %w(foo), tokenize("foo /* Comment */") assert_equal %w(foo), tokenize("foo /* \nComment\n */") assert_equal %w(foo), tokenize("foo ") From 7702583314e4fbd2795a58a90c0d68ea59c19089 Mon Sep 17 00:00:00 2001 From: Joseph Hall Date: Sun, 16 Nov 2014 07:19:55 -0700 Subject: [PATCH 015/875] Python also supports triple single-quotes for comments --- lib/linguist/tokenizer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/tokenizer.rb b/lib/linguist/tokenizer.rb index 4b2ea607..05882649 100644 --- a/lib/linguist/tokenizer.rb +++ b/lib/linguist/tokenizer.rb @@ -33,7 +33,8 @@ module Linguist [''], # XML ['{-', '-}'], # Haskell ['(*', '*)'], # Coq - ['"""', '"""'] # Python + ['"""', '"""'], # Python + ["'''", "'''"] # Python ] START_SINGLE_LINE_COMMENT = Regexp.compile(SINGLE_LINE_COMMENTS.map { |c| From 1bd935b2b47db75e89e357ba8e344b4dd3308cf6 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 10 Nov 2014 11:43:30 +0100 Subject: [PATCH 016/875] Set 'lexer: GAP' for GAP My Pygments patch adding support for GAP was merged in April, and I verified that it is live on GitHub. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4d36d8d0..44ce9e64 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -817,6 +817,7 @@ GAMS: GAP: type: programming + lexer: GAP extensions: - .g - .gap From 6072a63f9952f8cada8e538ece4aac83d0692b0c Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 10 Nov 2014 11:43:30 +0100 Subject: [PATCH 017/875] Add GAP .tst extension plus two sample files --- lib/linguist/languages.yml | 1 + samples/GAP/bugfix.tst | 161 +++++++++++++++++++++++++++++++++++++ samples/GAP/factor.tst | 21 +++++ 3 files changed, 183 insertions(+) create mode 100644 samples/GAP/bugfix.tst create mode 100644 samples/GAP/factor.tst diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 44ce9e64..b8192c26 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -823,6 +823,7 @@ GAP: - .gap - .gd - .gi + - .tst GAS: type: programming diff --git a/samples/GAP/bugfix.tst b/samples/GAP/bugfix.tst new file mode 100644 index 00000000..be4bd975 --- /dev/null +++ b/samples/GAP/bugfix.tst @@ -0,0 +1,161 @@ +gap> START_TEST("Test for various former bugs"); + + +gap> # The following used to trigger an error starting with: +gap> # "SolutionMat: matrix and vector incompatible called from" +gap> K:=AbelianPcpGroup([3,3,3]);; +gap> A:=Subgroup(K,[K.1]);; +gap> cr:=CRRecordBySubgroup(K,A);; +gap> ExtensionsCR(cr);; + + +# Comparing homomorphisms used to be broken +gap> K:=AbelianPcpGroup(1,[3]);; +gap> hom1:=GroupHomomorphismByImages(K,K,[K.1],[K.1]);; +gap> hom2:=GroupHomomorphismByImages(K,K,[K.1^2],[K.1^2]);; +gap> hom1=hom2; +true +gap> hom1=IdentityMapping(K); +true +gap> hom2=IdentityMapping(K); +true + + +gap> # The following incorrectly triggered an error at some point +gap> IsTorsionFree(ExamplesOfSomePcpGroups(5)); +true + + +gap> # Verify IsGeneratorsOfMagmaWithInverses warnings are silenced +gap> IsGeneratorsOfMagmaWithInverses(GeneratorsOfGroup(ExamplesOfSomePcpGroups(5))); +true + + +gap> # Check for a bug reported 2012-01-19 by Robert Morse +gap> g := PcGroupToPcpGroup(SmallGroup(48,1)); +Pcp-group with orders [ 2, 2, 2, 2, 3 ] +gap> # The next two commands used to trigger errors +gap> NonAbelianTensorSquare(Centre(g)); +Pcp-group with orders [ 8 ] +gap> NonAbelianExteriorSquare(Centre(g)); +Pcp-group with orders [ ] + + +gap> # Check for a bug reported 2012-01-19 by Robert Morse +gap> F := FreeGroup("x","y"); + +gap> x := F.1;; y := F.2;; +gap> G := F/[x^2/y^24, y^24, y^x/y^23]; + +gap> iso := IsomorphismPcGroup(G); +[ x, y ] -> [ f1, f2*f5 ] +gap> iso1 := IsomorphismPcpGroup(Image(iso)); +[ f1, f2, f3, f4, f5 ] -> [ g1, g2, g3, g4, g5 ] +gap> G := Image(iso*iso1); +Pcp-group with orders [ 2, 2, 2, 2, 3 ] +gap> # The next command used to trigger an error +gap> NonAbelianTensorSquare(Image(iso*iso1)); +Pcp-group with orders [ 2, 2, 3, 2, 2, 2, 2 ] + + +gap> # The problem with the previous example is/was that Igs(G) +gap> # is set to a non-standard value: +gap> Igs(G); +[ g1, g2*g5, g3*g4*g5^2, g4*g5, g5 ] +gap> # Unfortunately, it seems that a lot of code that +gap> # really should be using Ngs or Cgs is using Igs incorrectly. +gap> # For example, direct products could return *invalid* embeddings: +gap> D := DirectProduct(G, G); +Pcp-group with orders [ 2, 2, 2, 2, 3, 2, 2, 2, 2, 3 ] +gap> hom:=Embedding(D,1);; +gap> mapi:=MappingGeneratorsImages(hom);; +gap> GroupHomomorphismByImages(Source(hom),Range(hom),mapi[1],mapi[2]) <> fail; +true +gap> hom:=Projection(D,1);; +gap> mapi:=MappingGeneratorsImages(hom);; +gap> GroupHomomorphismByImages(Source(hom),Range(hom),mapi[1],mapi[2]) <> fail; +true + + +gap> # Check for bug computing Schur extension of infinite cyclic groups, +gap> # found by Max Horn 2012-05-25 +gap> G:=AbelianPcpGroup(1,[0]); +Pcp-group with orders [ 0 ] +gap> # The next command used to trigger an error +gap> SchurExtension(G); +Pcp-group with orders [ 0 ] + + +gap> # Check for bug computing Schur extensions of subgroups, found by MH 2012-05-25. +gap> G:=HeisenbergPcpGroup(2); +Pcp-group with orders [ 0, 0, 0, 0, 0 ] +gap> H:=Subgroup(G,[G.2^3*G.3^2, G.1^9]); +Pcp-group with orders [ 0, 0, 0 ] +gap> # The next command used to trigger an error +gap> SchurExtension(H); +Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ] + + +gap> # Check for bug computing Schur extensions of subgroups, found by MH 2012-05-25. +gap> G:=HeisenbergPcpGroup(2); +Pcp-group with orders [ 0, 0, 0, 0, 0 ] +gap> H:=Subgroup(G,[G.1, G.2]); +Pcp-group with orders [ 0, 0 ] +gap> # The next command used to trigger an error +gap> SchurExtension(H); +Pcp-group with orders [ 0, 0, 0 ] + + +gap> # Check for bug computing normalizer of two subgroups, found by MH 2012-05-30. +gap> # The problem was caused by incorrect resp. overly restrictive use of Parent(). +gap> G:=HeisenbergPcpGroup(2); +Pcp-group with orders [ 0, 0, 0, 0, 0 ] +gap> A:=Subgroup(Subgroup(G,[G.2,G.3,G.4,G.5]), [G.3]); +Pcp-group with orders [ 0 ] +gap> B:=Subgroup(Subgroup(G,[G.1,G.4,G.5]), [G.4]); +Pcp-group with orders [ 0 ] +gap> Normalizer(A,B); +Pcp-group with orders [ 0 ] +gap> # The following used to trigger the error "arguments must have a common parent group" +gap> Normalizer(B,A); +Pcp-group with orders [ 0 ] + + +gap> # In polycyclic 2.9 and 2.10, the code for 2-cohomology computations was broken. +gap> G := UnitriangularPcpGroup(3,0); +Pcp-group with orders [ 0, 0, 0 ] +gap> mats := G!.mats; +[ [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], + [ [ 1, 0, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ], + [ [ 1, 0, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] ] +gap> C := CRRecordByMats(G,mats);; +gap> cc := TwoCohomologyCR(C);; +gap> cc.factor.rels; +[ 2, 0, 0 ] +gap> c := cc.factor.prei[2]; +[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1 ] +gap> cc.gcb; +[ [ 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 ], + [ 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 ], + [ -1, 0, 1, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ], + [ 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1 ] ] +gap> cc.gcc; +[ [ 1, 0, 0, 0, 0, -2, -1, 0, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 ], + [ 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 1, 0, 0, -2, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 0, 1, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1 ], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 ] ] + + +gap> # LowerCentralSeriesOfGroup for non-nilpotent pcp-groups used to trigger +gap> # an infinite recursion +gap> G := PcGroupToPcpGroup(SmallGroup(6,1)); +Pcp-group with orders [ 2, 3 ] +gap> LowerCentralSeriesOfGroup(G); +[ Pcp-group with orders [ 2, 3 ], Pcp-group with orders [ 3 ] ] + + +gap> STOP_TEST( "bugfix.tst", 10000000); diff --git a/samples/GAP/factor.tst b/samples/GAP/factor.tst new file mode 100644 index 00000000..115fe921 --- /dev/null +++ b/samples/GAP/factor.tst @@ -0,0 +1,21 @@ +gap> START_TEST("Test of factor groups and natural homomorphisms"); + +gap> G:=HeisenbergPcpGroup(2); +Pcp-group with orders [ 0, 0, 0, 0, 0 ] + +gap> H:=Subgroup(G,[G.2,G.3,G.4,G.5]); +gap> K:=G/H; +gap> NaturalHomomorphism(K); + +gap> A:=Subgroup(H, [G.3]); +Pcp-group with orders [ 0 ] +gap> B:=Subgroup(Subgroup(G,[G.1,G.4,G.5]), [G.4]); +Pcp-group with orders [ 0 ] +gap> Normalizer(A,B); +Pcp-group with orders [ 0 ] +gap> # The following used to trigger the error "arguments must have a common parent group" +gap> Normalizer(B,A); +Pcp-group with orders [ 0 ] + + +gap> STOP_TEST( "factor.tst", 10000000); From ff6a10698ea5026f92285673c9761311a2d4c449 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 10 Nov 2014 11:43:30 +0100 Subject: [PATCH 018/875] Pass name of file being analyzed to find_by_heuristics Some languages are sensitive to file names in the sense that different kinds of files contain somewhat different data. Example: GAP .tst files contain test cases, which add some extra data compared to regular code, and as a consequence are not directly interchangeable with regular source code. Heuristics may need to take this into account, thus may need to know the name of the file being analyzed. --- lib/linguist/heuristics.rb | 3 ++- lib/linguist/language.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 13f0173f..53bb10a9 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -7,11 +7,12 @@ module Linguist # apply heuristics against the given data and return an array # of matching languages, or nil. # + # name - Name of the file the data is coming from. # data - Array of tokens or String data to analyze. # languages - Array of language name Strings to restrict to. # # Returns an array of Languages or [] - def self.find_by_heuristics(data, languages) + def self.find_by_heuristics(name, data, languages) if active? result = [] diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index f4c7a62e..444c925c 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -120,7 +120,7 @@ module Linguist if possible_languages.length > 1 data = blob.data possible_language_names = possible_languages.map(&:name) - heuristic_languages = Heuristics.find_by_heuristics(data, possible_language_names) + heuristic_languages = Heuristics.find_by_heuristics(name, data, possible_language_names) if heuristic_languages.size > 1 possible_language_names = heuristic_languages.map(&:name) From f9ad5dda568ba2f476008de6f8fb0ba25622e3d5 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 10 Nov 2014 11:43:30 +0100 Subject: [PATCH 019/875] Add heuristic distinguishing GAP and Scilab .tst files --- lib/linguist/heuristics.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 53bb10a9..d6c097ce 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -40,6 +40,9 @@ module Linguist if languages.all? { |l| ["FORTRAN", "Forth"].include?(l) } result = disambiguate_f(data) end + if name.end_with? ".tst" and languages.all? { |l| ["GAP", "Scilab"].include?(l) } + result = disambiguate_tst(data) + end return result end end @@ -98,6 +101,16 @@ module Linguist matches end + def self.disambiguate_tst(data) + matches = [] + if (data.include?("gap> ")) + matches << Language["GAP"] + else + matches << Language["Scilab"] + end + matches + end + def self.disambiguate_cl(data) matches = [] if data.include?("(defun ") From ce928d8b6433ba3c832f61a3f10476f2c05a133a Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Mon, 24 Nov 2014 11:30:25 +0100 Subject: [PATCH 020/875] Add support for the Clarion language --- grammars.yml | 2 ++ lib/linguist/languages.yml | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/grammars.yml b/grammars.yml index fbf087d3..15aeb74c 100644 --- a/grammars.yml +++ b/grammars.yml @@ -135,6 +135,8 @@ https://github.com/euler0/sublime-glsl/raw/master/GLSL.tmLanguage: - source.glsl https://github.com/fancy-lang/fancy-tmbundle: - source.fancy +https://github.com/fushnisoft/SublimeClarion: +- source.clarion https://github.com/gingerbeardman/monkey.tmbundle: - source.monkey https://github.com/guillermooo/dart-sublime-bundle/raw/master/Dart.tmLanguage: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 51200cb5..d1c930e1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -427,6 +427,20 @@ Cirru: extensions: - .cirru +Clarion: + type: programming + color: #f29200 + extensions: + - .clw + - .inc + - .tpl + - .tpw + - .equ + - .int + - .txa + - .txd + tm_scope: source.clarion + Clean: type: programming color: "#3a81ad" From 036b9c4094066ced8019b89fe98b1018ee298651 Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Mon, 24 Nov 2014 11:32:53 +0100 Subject: [PATCH 021/875] Hello world sample --- samples/Clarion/hello.clw | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 samples/Clarion/hello.clw diff --git a/samples/Clarion/hello.clw b/samples/Clarion/hello.clw new file mode 100644 index 00000000..8cad46dc --- /dev/null +++ b/samples/Clarion/hello.clw @@ -0,0 +1,10 @@ + PROGRAM + + MAP + END + + CODE + + MESSAGE('Hello World!') + + RETURN \ No newline at end of file From c5a654e692240557a05a2de76119aad006da87df Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 25 Nov 2014 20:01:24 -0500 Subject: [PATCH 022/875] Tests for Python multiline comments during tokenization --- test/test_tokenizer.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index 0521f4da..a460afc3 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -43,6 +43,8 @@ class TestTokenizer < Test::Unit::TestCase assert_equal %w(foo), tokenize("foo {- Comment -}") assert_equal %w(foo), tokenize("foo (* Comment *)") assert_equal %w(%), tokenize("2 % 10\n% Comment") + assert_equal %w(foo bar), tokenize("foo\n\"\"\"\nComment\n\"\"\"\nbar") + assert_equal %w(foo bar), tokenize("foo\n'''\nComment\n'''\nbar") end def test_sgml_tags From 3445e55744b7059d432516c01fdfdb5ba81909a0 Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Wed, 26 Nov 2014 14:51:47 +0100 Subject: [PATCH 023/875] additional samples and fixed extensions list --- lib/linguist/languages.yml | 2 -- samples/Clarion/Defaults.equ | 29 +++++++++++++++++++++++++++++ samples/Clarion/Hello.inc | 9 +++++++++ samples/Clarion/HelloWorld.clw | 10 ++++++++++ samples/Clarion/SampleTemplate.tpl | 3 +++ samples/Clarion/School.txa | 8 ++++++++ samples/Clarion/Utility.tpw | 16 ++++++++++++++++ samples/Clarion/hello.clw | 12 +++++++----- 8 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 samples/Clarion/Defaults.equ create mode 100644 samples/Clarion/Hello.inc create mode 100644 samples/Clarion/HelloWorld.clw create mode 100644 samples/Clarion/SampleTemplate.tpl create mode 100644 samples/Clarion/School.txa create mode 100644 samples/Clarion/Utility.tpw diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d1c930e1..a01f5433 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -436,9 +436,7 @@ Clarion: - .tpl - .tpw - .equ - - .int - .txa - - .txd tm_scope: source.clarion Clean: diff --git a/samples/Clarion/Defaults.equ b/samples/Clarion/Defaults.equ new file mode 100644 index 00000000..4ec2992e --- /dev/null +++ b/samples/Clarion/Defaults.equ @@ -0,0 +1,29 @@ +! Severity of error +Level:Benign EQUATE(0) +Level:User EQUATE(1) +Level:Program EQUATE(2) +Level:Fatal EQUATE(3) +Level:Cancel EQUATE(4) +Level:Notify EQUATE(5) + +ICON:VCRtop EQUATE ('<0FFH,02H,81H,7FH>') +ICON:VCRrewind EQUATE ('<0FFH,02H,82H,7FH>') +ICON:VCRback EQUATE ('<0FFH,02H,83H,7FH>') +ICON:VCRplay EQUATE ('<0FFH,02H,84H,7FH>') +ICON:VCRfastforward EQUATE ('<0FFH,02H,85H,7FH>') +ICON:VCRbottom EQUATE ('<0FFH,02H,86H,7FH>') +ICON:VCRlocate EQUATE ('<0FFH,02H,87H,7FH>') + + +ff_:queue QUEUE,PRE(ff_),TYPE +name string(13) +date long +time long +size long +attrib byte + END + +UINT64 GROUP,TYPE +lo ULONG +hi ULONG + END \ No newline at end of file diff --git a/samples/Clarion/Hello.inc b/samples/Clarion/Hello.inc new file mode 100644 index 00000000..1dfda5f6 --- /dev/null +++ b/samples/Clarion/Hello.inc @@ -0,0 +1,9 @@ +HelloClass Class(),Type,Module('HelloClass.Clw'),LINK('HelloClass.Clw',1) +! Properties + +! Methods +Construct PROCEDURE +Destruct PROCEDURE () ,VIRTUAL +SayHello PROCEDURE + END +!_EndOfInclude_ diff --git a/samples/Clarion/HelloWorld.clw b/samples/Clarion/HelloWorld.clw new file mode 100644 index 00000000..8cad46dc --- /dev/null +++ b/samples/Clarion/HelloWorld.clw @@ -0,0 +1,10 @@ + PROGRAM + + MAP + END + + CODE + + MESSAGE('Hello World!') + + RETURN \ No newline at end of file diff --git a/samples/Clarion/SampleTemplate.tpl b/samples/Clarion/SampleTemplate.tpl new file mode 100644 index 00000000..7627699a --- /dev/null +++ b/samples/Clarion/SampleTemplate.tpl @@ -0,0 +1,3 @@ +#TEMPLATE(SampleTemplate,'This is a sample Template'),PRIVATE,FAMILY('ABC') +#INCLUDE('FileTwo.TPW') +#INCLUDE('FileThree.TPW') diff --git a/samples/Clarion/School.txa b/samples/Clarion/School.txa new file mode 100644 index 00000000..0aba0bcc --- /dev/null +++ b/samples/Clarion/School.txa @@ -0,0 +1,8 @@ +[PROCEDURE] +NAME SampleProc +[COMMON] +FROM ABC Source +MODIFIED '2014/11/26' '14:48:17' +[PROMPTS] +%GenerateOpenClose LONG (0) +%GenerateSaveRestore LONG (0) diff --git a/samples/Clarion/Utility.tpw b/samples/Clarion/Utility.tpw new file mode 100644 index 00000000..d6d70df2 --- /dev/null +++ b/samples/Clarion/Utility.tpw @@ -0,0 +1,16 @@ +#UTILITY(ProcCallTree, 'Output procedure call tree') + #CREATE(%Application & '.TRE') +Procedure Call Tree: for %Application +#INSERT(%DisplayTree, %FirstProcedure, '', ' ') +#CLOSE +#!*********************************************************** +#GROUP(%DisplayTree, %ThisProc, %Level, %NextIndent) + #FIX(%Procedure, %ThisProc) +%Level+-%ThisProc (%ProcedureTemplate) + #FOR(%ProcedureCalled) + #IF(INSTANCE(%ProcedureCalled) = ITEMS(%ProcedureCalled)) +#INSERT(%DisplayTree, %ProcedureCalled, %Level & %NextIndent, ' ') + #ELSE +#INSERT(%DisplayTree, %ProcedureCalled, %Level & %NextIndent, '| ') + #ENDIF +#ENDFOR diff --git a/samples/Clarion/hello.clw b/samples/Clarion/hello.clw index 8cad46dc..14328c84 100644 --- a/samples/Clarion/hello.clw +++ b/samples/Clarion/hello.clw @@ -1,10 +1,12 @@ - PROGRAM - + MEMBER() + INCLUDE('HelloClass.inc'),ONCE MAP END +HelloClass.Construct PROCEDURE + CODE +HelloClass.Destruct PROCEDURE() !,VIRTUAL + CODE +HelloClass.SayHello PROCEDURE CODE - MESSAGE('Hello World!') - - RETURN \ No newline at end of file From 20204cd9fc72869b4f55db4a9f2164e0a49bcce4 Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Wed, 26 Nov 2014 15:01:25 +0100 Subject: [PATCH 024/875] fix test_pedantic failure --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a01f5433..3dd68b3d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -432,10 +432,10 @@ Clarion: color: #f29200 extensions: - .clw + - .equ - .inc - .tpl - .tpw - - .equ - .txa tm_scope: source.clarion From a145bd92f71f6f8396f9dc04698001a793e1b5fe Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Wed, 26 Nov 2014 15:07:28 +0100 Subject: [PATCH 025/875] remove tpl extension to avoid conflict with smarty language --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 3dd68b3d..e7bce8f8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -434,7 +434,6 @@ Clarion: - .clw - .equ - .inc - - .tpl - .tpw - .txa tm_scope: source.clarion From af9b5f0e9870b31f62e495493594360be10612f5 Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Wed, 26 Nov 2014 15:11:23 +0100 Subject: [PATCH 026/875] remove sample that is no longer used --- samples/Clarion/SampleTemplate.tpl | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 samples/Clarion/SampleTemplate.tpl diff --git a/samples/Clarion/SampleTemplate.tpl b/samples/Clarion/SampleTemplate.tpl deleted file mode 100644 index 7627699a..00000000 --- a/samples/Clarion/SampleTemplate.tpl +++ /dev/null @@ -1,3 +0,0 @@ -#TEMPLATE(SampleTemplate,'This is a sample Template'),PRIVATE,FAMILY('ABC') -#INCLUDE('FileTwo.TPW') -#INCLUDE('FileThree.TPW') From 02db72515f0066218ccb6584f5fcf4df9fb5fc9a Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Thu, 27 Nov 2014 13:41:21 +0100 Subject: [PATCH 027/875] removed less common extensions and better examples --- lib/linguist/languages.yml | 3 - samples/Clarion/CStringClass.clw | 172 +++++++++++++++++++++++++++++ samples/Clarion/CStringClass.inc | 36 ++++++ samples/Clarion/ConsoleSupport.clw | 68 ++++++++++++ samples/Clarion/ConsoleSupport.inc | 48 ++++++++ samples/Clarion/Defaults.equ | 29 ----- samples/Clarion/School.txa | 8 -- samples/Clarion/Utility.tpw | 16 --- 8 files changed, 324 insertions(+), 56 deletions(-) create mode 100644 samples/Clarion/CStringClass.clw create mode 100644 samples/Clarion/CStringClass.inc create mode 100644 samples/Clarion/ConsoleSupport.clw create mode 100644 samples/Clarion/ConsoleSupport.inc delete mode 100644 samples/Clarion/Defaults.equ delete mode 100644 samples/Clarion/School.txa delete mode 100644 samples/Clarion/Utility.tpw diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e7bce8f8..f3a74665 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -432,10 +432,7 @@ Clarion: color: #f29200 extensions: - .clw - - .equ - .inc - - .tpw - - .txa tm_scope: source.clarion Clean: diff --git a/samples/Clarion/CStringClass.clw b/samples/Clarion/CStringClass.clw new file mode 100644 index 00000000..7fa3ba98 --- /dev/null +++ b/samples/Clarion/CStringClass.clw @@ -0,0 +1,172 @@ + Member() + omit('***$***',_VER_C55) +_ABCDllMode_ EQUATE(0) +_ABCLinkMode_ EQUATE(1) + ***$*** + Include('Equates.CLW'),ONCE + Include('Keycodes.CLW'),ONCE + Include('Errors.CLW'),ONCE + Map + End ! map + Include('CStringClass.inc'),ONCE +CStringClass.Construct PROCEDURE ! Declare Procedure + CODE + SELF.bufferSize = DEFAULT_CS_BUFFER_SIZE + SELF.CS &= New(CSTRING(SELF.bufferSize)) +CStringClass.Destruct PROCEDURE ! Declare Procedure + CODE + Dispose(SELF.cs) +CStringClass.Cat PROCEDURE (STRING pStr) !,*CSTRING,PROC ! Declare Procedure +newLen LONG,AUTO +oldCS &CSTRING + CODE + newLen = Len(pStr) + IF (newLen+SELF.strLength+2) > SELF.newStrSize + ! Only grow the internal string if the result of the cat will be larger than the string currently is. + ! The reason for the "+2" is because this is used in the string slicing outside this IF. Without this matching +2 there is potential for an out of bounds slice which would be bad! + + ! Save a temporary copy of the old string so we can us it in the concatination after we have grown it! + oldCS &= New(CSTRING(SELF.strLength+1)) + oldCS = SELF.CS + Dispose(SELF.CS) + + SELF.newStrSize = newLen + SELF.strLength + 1 + SELF.bufferSize + SELF.CS &= New(CSTRING(SELF.newStrSize)) + SELF.CS = oldCS + Dispose(oldCS) + END + + ! Append the new string directly to the end of the old one. + SELF.CS[SELF.strLength+1 : SELF.strLength+newLen] = pStr + ! And terminate the CSTRING manually + SELF.CS[SELF.strLength+newLen+1] = '<0>' + + ! This is the same as doing "SELF.strLength = Len(SELF.CS)" but the Len() is _really_ slow on large strings. This is much faster! + SELF.strLength += newLen + + ! This is what it used to be: + ! SELF.Str(SELF.Str() & s) + ! It is a nice and neat solution but performance, especially on large strings was terrible! + + RETURN SELF.Str() +CStringClass.Str PROCEDURE (STRING pStr) !,*CSTRING, PROC ! Declare Procedure + CODE + IF Len(pStr) > SELF.newStrSize + ! Only Dispose/New the internal string if the new one requires it. + ! This might be slightly innefficient in terms of memory usage when the string gets smaller + ! But it is _vasty_ better for performance when the string gets added to a lot. + Dispose(SELF.CS) + SELF.newStrSize = Len(pStr) + 1 + SELF.bufferSize + SELF.CS &= New(CSTRING(SELF.newStrSize)) + END + + SELF.CS = pStr + SELF.strLength = Len(SELF.CS) + + RETURN SELF.CS +CStringClass.Len PROCEDURE !,LONG ! Declare Procedure + CODE + RETURN SELF.strLength +CStringClass.Replace PROCEDURE (STRING pFind, STRING pReplace) !,*CSTRING,PROC ! Declare Procedure +! FindString , ReplaceWith +locate LONG,AUTO +lastLocate LONG + CODE + LOOP + locate = InString(Upper(pFind), Upper(SELF.Str()), 1, lastLocate+1) + IF ~locate + BREAK + END + + ! So we dont end up having recursive replacement. + lastLocate = locate + Len(pReplace)-1 + + SELF.Str(Sub(SELF.Str(), 1, locate-1) & | + pReplace & | + Sub(SELF.Str(), locate+Len(pFind), SELF.Len()) | + ) + END + + RETURN SELF.Str() +CStringClass.Str PROCEDURE () !,*CSTRING ! Declare Procedure 3 + CODE + RETURN SELF.CS +!------------------------------------------------------------------------------ +CStringClass.Contains PROCEDURE (STRING pFind, BYTE pCaseSensitive=TRUE) !,BYTE ! Declare Procedure +! Returns a value (TRUE) indicating whether the specified String occurs within this string. +! Second parameter defaults to a case sensitive search. + CODE + IF pCaseSensitive = TRUE + IF InString(pFind, SELF.Str(), 1 , 1) > 0 + RETURN TRUE + END + ELSE + IF InString(Lower(pFind), SELF.Lower(), 1 , 1) > 0 + RETURN TRUE + END + END + + RETURN FALSE +CStringClass.Lower PROCEDURE () !,STRING ! Declare Procedure +! Returns a "Lowered" version of the self.cs doesnt change the self.cs + CODE + RETURN Lower(SELF.CS) +CStringClass.SubString PROCEDURE (LONG pPosition, LONG pLength) !,STRING,PROC ! Declare Procedure + CODE + RETURN Sub(SELF.Str(), pPosition, pLength) +CStringClass.ToLower PROCEDURE () !,*CSTRING,PROC ! Declare Procedure +! Converts this string to lowercase and returns the converted string + + CODE + RETURN SELF.Str(SELF.Lower()) +CStringClass.ToUpper PROCEDURE () !,*CSTRING,PROC ! Declare Procedure +! Converts this string to uppercase and returns the converted string + + CODE + RETURN SELF.Str(SELF.Upper()) +CStringClass.Trim PROCEDURE () !,*CSTRING,PROC ! Declare Procedure + CODE + SELF.Str(Left(SELF.Str())) + SELF.Str(Clip(SELF.Str())) + RETURN SELF.Str() +CStringClass.Upper PROCEDURE () !,STRING ! Declare Procedure + CODE + RETURN Upper(SELF.Str()) +CStringClass.IndexOf PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) !,LONG ! Declare Procedure +! Returns the index of the first parameter (pLookIn) is found within the SELF.CS +! zero if it is not found + CODE + IF pCaseSensitive = TRUE + RETURN InString(SELF.Str(), pLookIn, 1 , 1) + ELSE + RETURN InString(SELF.Lower(), Lower(pLookIn), 1 , 1) + END +CStringClass.FoundIn PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) !,BYTE ! Declare Procedure +! Returns TRUE if the first parameter (pLookIn) is found within the SELF.CS +! FALSE if it is no + CODE + IF SELF.IndexOf(pLookIn, pCaseSensitive) > 0 + RETURN TRUE + ELSE + RETURN FALSE + END +CStringClass.SetBuffer PROCEDURE (LONG pNewBuffer) ! Declare Procedure + CODE + SELF.bufferSize = pNewBuffer +CStringClass.EscapeXml PROCEDURE () !,STRING ! Declare Procedure +CS CStringClass + CODE + IF Omitted(pStr)=FALSE + CS.Str(pStr) + ELSE + ! Make a copy so we don't alter the original + CS.Str(SELF.Str()) + END + CS.Replace('&', '&') + CS.Replace('<', '<') + CS.Replace('>', '>') + CS.Replace('"', '"') + CS.Replace('''', ''') + + RETURN CS.Str() + diff --git a/samples/Clarion/CStringClass.inc b/samples/Clarion/CStringClass.inc new file mode 100644 index 00000000..aec351f7 --- /dev/null +++ b/samples/Clarion/CStringClass.inc @@ -0,0 +1,36 @@ +_CStringClass_ EQUATE(1) + +NOT_CASE_SENSITIVE EQUATE(FALSE) +DEFAULT_CS_BUFFER_SIZE EQUATE(1024) +!-------------------------------------------------------------------------------- +!Class CStringClass +! +!-------------------------------------------------------------------------------- +CStringClass Class(),Type,Module('CStringClass.Clw'),LINK('CStringClass.Clw',1) +! Properties +cs &CSTRING, PROTECTED +bufferSize LONG +newStrSize LONG ,PROTECTED +strLength LONG ,PROTECTED +nextPointer LONG +! Methods +Cat PROCEDURE (STRING pStr) ,*CSTRING,PROC ,VIRTUAL +Construct PROCEDURE +Contains PROCEDURE (STRING pFind, BYTE pCaseSensitive=TRUE) ,BYTE ,VIRTUAL +Destruct PROCEDURE () ,VIRTUAL +Len PROCEDURE ,LONG ,VIRTUAL +Lower PROCEDURE () ,STRING ,VIRTUAL +Replace PROCEDURE (STRING pFind, STRING pReplace) ,*CSTRING,PROC ,VIRTUAL +Str PROCEDURE (STRING pStr) ,*CSTRING, PROC ,VIRTUAL +Str PROCEDURE () ,*CSTRING ,VIRTUAL +SubString PROCEDURE (LONG pPosition, LONG pLength) ,STRING,PROC ,VIRTUAL +ToLower PROCEDURE () ,*CSTRING,PROC ,VIRTUAL +ToUpper PROCEDURE () ,*CSTRING,PROC ,VIRTUAL +Trim PROCEDURE () ,*CSTRING,PROC ,VIRTUAL +Upper PROCEDURE () ,STRING ,VIRTUAL +IndexOf PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) ,LONG ,VIRTUAL +FoundIn PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) ,BYTE ,VIRTUAL +SetBuffer PROCEDURE (LONG pNewBuffer) ,VIRTUAL +EscapeXml PROCEDURE () ,STRING ,VIRTUAL + END +!_EndOfInclude_ diff --git a/samples/Clarion/ConsoleSupport.clw b/samples/Clarion/ConsoleSupport.clw new file mode 100644 index 00000000..c7eac1e1 --- /dev/null +++ b/samples/Clarion/ConsoleSupport.clw @@ -0,0 +1,68 @@ + Member() + Include('ConsoleSupport.inc'),ONCE + Map + MODULE('32-bit Windows API') + ! General functions + GetLastError(),DWORD,PASCAL + + ! Console functions + GetStdHandle(DWORD),HANDLE,PASCAL,PROC,RAW + WriteConsole(Handle,Long,Dword,long,long),bool,Raw,Pascal,name('WriteConsoleA') + ReadConsole(Handle,Long,Dword,long,long),bool,Raw,Pascal,name('ReadConsoleA') + SetConsoleTitle(Long),Bool,Raw,Pascal,name('SetConsoleTitleA') + GetConsoleTitle(Long,dword),Bool,Raw,Pascal,name('GetConsoleTitleA') + SetConsoleMode(Handle,dWord),BOOL,RAW,PASCAL + GetConsoleMode(Handle,Long),BOOL,RAW,PASCAL + End + End + +ConsoleSupport.Construct PROCEDURE + + CODE + +ConsoleSupport.Destruct PROCEDURE + + CODE + +ConsoleSupport.Init PROCEDURE () !,BYTE,VIRTUAL + CODE + + SELF.OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE) + If SELF.OutputHandle = INVALID_HANDLE_VALUE + Halt(1,'Unable to get output handle (' & GetLastError() & ')') + RETURN INVALID_HANDLE_VALUE + End + + SELF.InputHandle = GetStdHandle(STD_INPUT_HANDLE) + if SELF.InputHandle = INVALID_HANDLE_VALUE + Halt(2,'Unable to get console input handle (' & GetLastError() & ')') + RETURN INVALID_HANDLE_VALUE + End + + If ~SetConsoleMode(SELF.InputHandle,ENABLE_PROCESSED_INPUT ) + Halt(3,'Unable to set console mode (' & GetLastError() & ')') + RETURN INVALID_OTHER + End + + RETURN FALSE + +ConsoleSupport.WriteLine PROCEDURE (STRING pText) !,BYTE,PROC,VIRTUAL + CODE + SELF.TextBuffer = SELF.Prefix & pText & '<13,10>' + If WriteConsole(SELF.OutputHandle, ADDRESS(SELF.TextBuffer), LEN(SELF.TextBuffer),ADDRESS(SELF.BytesWritten), NULL) = 0 + Halt(4,'WriteConsoleError (' & GetLastError() & ')') + RETURN -1 + End + RETURN FALSE + +Consolesupport.ReadKey PROCEDURE () !,STRING,PROC,VIRTUAL + CODE + SELF.WriteLine('Press any key to continue...') + Clear(SELF.InBuffer) + Loop + IF ReadConsole(SELF.InputHandle,Address(SELF.InBuffer),100,Address(SELF.BytesRead),NULL) = 0 THEN + Halt(5,'Error on read console (' & GetLastError() & ')') + Break + End + Until SELF.BytesRead > 0 + RETURN SELF.InBuffer \ No newline at end of file diff --git a/samples/Clarion/ConsoleSupport.inc b/samples/Clarion/ConsoleSupport.inc new file mode 100644 index 00000000..cd08c463 --- /dev/null +++ b/samples/Clarion/ConsoleSupport.inc @@ -0,0 +1,48 @@ +_ConsoleSupport_ EQUATE(1) + +HANDLE EQUATE(UNSIGNED) +DWORD EQUATE(ULONG) +INVALID_HANDLE_VALUE EQUATE(-1) +INVALID_OTHER EQUATE(-2) +NULL EQUATE(0) + + +!************************************************************************************************************ +! Console-specific EQUATEs +!************************************************************************************************************ +ENABLE_PROCESSED_INPUT EQUATE(1) ! Input Mode flags +ENABLE_LINE_INPUT EQUATE(2) +ENABLE_ECHO_INPUT EQUATE(4) +ENABLE_WINDOW_INPUT EQUATE(8) +ENABLE_MOUSE_INPUT EQUATE(16) + +ENABLE_PROCESSED_OUTPUT EQUATE(1) ! Output Mode flags +ENABLE_WRAP_AT_EOL_OUTPUT EQUATE(2) + +STD_INPUT_HANDLE EQUATE(-10) ! Standard input and output handles +STD_OUTPUT_HANDLE EQUATE(-11) +STD_ERROR_HANDLE EQUATE(-12) + +CONSOLE_TEXTMODE_BUFFER EQUATE(1) ! The type of console screen buffer to create +ATTACH_PARENT_PROCESS EQUATE(-1) + + +ConsoleSupport Class(),Type,Module('ConsoleSupport.Clw'),LINK('ConsoleSupport.Clw',1) +! Properties +InputHandle Handle +OutputHandle Handle +TextBuffer CString(2048) +OutBuffer CString(2048) +InBuffer CString(2048) +BytesWritten Long +BytesRead Long +Prefix CSTRING(21) +! Methods +Construct PROCEDURE +Destruct PROCEDURE () ,VIRTUAL +Init PROCEDURE () ,BYTE,PROC,VIRTUAL +WriteLine PROCEDURE (STRING pText) ,BYTE,PROC,VIRTUAL +ReadKey PROCEDURE () ,STRING,PROC,VIRTUAL + + END +!_EndOfInclude_ diff --git a/samples/Clarion/Defaults.equ b/samples/Clarion/Defaults.equ deleted file mode 100644 index 4ec2992e..00000000 --- a/samples/Clarion/Defaults.equ +++ /dev/null @@ -1,29 +0,0 @@ -! Severity of error -Level:Benign EQUATE(0) -Level:User EQUATE(1) -Level:Program EQUATE(2) -Level:Fatal EQUATE(3) -Level:Cancel EQUATE(4) -Level:Notify EQUATE(5) - -ICON:VCRtop EQUATE ('<0FFH,02H,81H,7FH>') -ICON:VCRrewind EQUATE ('<0FFH,02H,82H,7FH>') -ICON:VCRback EQUATE ('<0FFH,02H,83H,7FH>') -ICON:VCRplay EQUATE ('<0FFH,02H,84H,7FH>') -ICON:VCRfastforward EQUATE ('<0FFH,02H,85H,7FH>') -ICON:VCRbottom EQUATE ('<0FFH,02H,86H,7FH>') -ICON:VCRlocate EQUATE ('<0FFH,02H,87H,7FH>') - - -ff_:queue QUEUE,PRE(ff_),TYPE -name string(13) -date long -time long -size long -attrib byte - END - -UINT64 GROUP,TYPE -lo ULONG -hi ULONG - END \ No newline at end of file diff --git a/samples/Clarion/School.txa b/samples/Clarion/School.txa deleted file mode 100644 index 0aba0bcc..00000000 --- a/samples/Clarion/School.txa +++ /dev/null @@ -1,8 +0,0 @@ -[PROCEDURE] -NAME SampleProc -[COMMON] -FROM ABC Source -MODIFIED '2014/11/26' '14:48:17' -[PROMPTS] -%GenerateOpenClose LONG (0) -%GenerateSaveRestore LONG (0) diff --git a/samples/Clarion/Utility.tpw b/samples/Clarion/Utility.tpw deleted file mode 100644 index d6d70df2..00000000 --- a/samples/Clarion/Utility.tpw +++ /dev/null @@ -1,16 +0,0 @@ -#UTILITY(ProcCallTree, 'Output procedure call tree') - #CREATE(%Application & '.TRE') -Procedure Call Tree: for %Application -#INSERT(%DisplayTree, %FirstProcedure, '', ' ') -#CLOSE -#!*********************************************************** -#GROUP(%DisplayTree, %ThisProc, %Level, %NextIndent) - #FIX(%Procedure, %ThisProc) -%Level+-%ThisProc (%ProcedureTemplate) - #FOR(%ProcedureCalled) - #IF(INSTANCE(%ProcedureCalled) = ITEMS(%ProcedureCalled)) -#INSERT(%DisplayTree, %ProcedureCalled, %Level & %NextIndent, ' ') - #ELSE -#INSERT(%DisplayTree, %ProcedureCalled, %Level & %NextIndent, '| ') - #ENDIF -#ENDFOR From bbd1646ae571dcee60a28cac7e8f42033d44f81f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Dec 2014 19:51:20 -0500 Subject: [PATCH 028/875] Add .lisp as a NewLisp file extension --- lib/linguist/languages.yml | 3 +- lib/linguist/samples.json | 80975 ------------------------- samples/NewLisp/log-to-database.lisp | 195 + 3 files changed, 197 insertions(+), 80976 deletions(-) delete mode 100644 lib/linguist/samples.json create mode 100644 samples/NewLisp/log-to-database.lisp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index cbfaaee9..398c8e49 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1857,8 +1857,9 @@ NewLisp: lexer: NewLisp color: "#eedd66" extensions: - - .lsp - .nl + - .lisp + - .lsp interpreters: - newlisp tm_scope: source.lisp diff --git a/lib/linguist/samples.json b/lib/linguist/samples.json deleted file mode 100644 index f2c2298d..00000000 --- a/lib/linguist/samples.json +++ /dev/null @@ -1,80975 +0,0 @@ -{ - "extnames": { - "ABAP": [ - ".abap" - ], - "AGS Script": [ - ".asc", - ".ash" - ], - "APL": [ - ".apl", - ".dyalog" - ], - "ATS": [ - ".atxt", - ".dats", - ".hats", - ".sats" - ], - "Agda": [ - ".agda" - ], - "Alloy": [ - ".als" - ], - "Apex": [ - ".cls" - ], - "AppleScript": [ - ".applescript" - ], - "Arduino": [ - ".ino" - ], - "AsciiDoc": [ - ".adoc", - ".asc", - ".asciidoc" - ], - "AspectJ": [ - ".aj" - ], - "Assembly": [ - ".a51", - ".asm" - ], - "AutoHotkey": [ - ".ahk" - ], - "Awk": [ - ".awk" - ], - "BlitzBasic": [ - ".bb" - ], - "BlitzMax": [ - ".bmx" - ], - "Bluespec": [ - ".bsv" - ], - "Brightscript": [ - ".brs" - ], - "C": [ - ".C", - ".H", - ".c", - ".cats", - ".h" - ], - "C#": [ - ".cs", - ".cshtml" - ], - "C++": [ - ".cc", - ".cpp", - ".h", - ".hh", - ".hpp", - ".inl", - ".ipp" - ], - "COBOL": [ - ".cbl", - ".ccp", - ".cob", - ".cpy" - ], - "CSS": [ - ".css" - ], - "Ceylon": [ - ".ceylon" - ], - "Chapel": [ - ".chpl" - ], - "Cirru": [ - ".cirru" - ], - "Clean": [ - ".dcl", - ".icl" - ], - "Clojure": [ - ".cl2", - ".clj", - ".cljc", - ".cljs", - ".cljscm", - ".cljx", - ".hic", - ".hl" - ], - "CoffeeScript": [ - ".cjsx", - ".coffee" - ], - "ColdFusion": [ - ".cfm" - ], - "ColdFusion CFC": [ - ".cfc" - ], - "Common Lisp": [ - ".cl", - ".lisp", - ".lsp" - ], - "Component Pascal": [ - ".cp", - ".cps" - ], - "Cool": [ - ".cl" - ], - "Coq": [ - ".v" - ], - "Creole": [ - ".creole" - ], - "Crystal": [ - ".cr" - ], - "Cuda": [ - ".cu", - ".cuh" - ], - "Cycript": [ - ".cy" - ], - "DM": [ - ".dm" - ], - "Dart": [ - ".dart" - ], - "Diff": [ - ".patch" - ], - "Dogescript": [ - ".djs" - ], - "E": [ - ".E" - ], - "ECL": [ - ".ecl" - ], - "Eagle": [ - ".brd", - ".sch" - ], - "Elm": [ - ".elm" - ], - "Emacs Lisp": [ - ".el" - ], - "EmberScript": [ - ".em" - ], - "Erlang": [ - ".erl", - ".escript", - ".script!" - ], - "F#": [ - ".fs" - ], - "FORTRAN": [ - ".F", - ".f", - ".for" - ], - "Forth": [ - ".F", - ".f", - ".for", - ".forth", - ".fr", - ".frt", - ".fs", - ".fth" - ], - "Frege": [ - ".fr" - ], - "G-code": [ - ".g" - ], - "GAMS": [ - ".gms" - ], - "GAP": [ - ".g", - ".gd", - ".gi" - ], - "GAS": [ - ".s" - ], - "GDScript": [ - ".gd" - ], - "GLSL": [ - ".fp", - ".frag", - ".frg", - ".fs", - ".glsl", - ".vrx" - ], - "Game Maker Language": [ - ".gml" - ], - "Gnuplot": [ - ".gnu", - ".gp" - ], - "Golo": [ - ".golo" - ], - "Gosu": [ - ".gs", - ".gst", - ".gsx", - ".vark" - ], - "Grace": [ - ".grace" - ], - "Gradle": [ - ".gradle" - ], - "Grammatical Framework": [ - ".gf" - ], - "Graph Modeling Language": [ - ".gml" - ], - "Graphviz (DOT)": [ - ".DOT", - ".dot" - ], - "Groff": [ - ".4" - ], - "Groovy": [ - ".grt", - ".gtpl", - ".gvy", - ".script!" - ], - "Groovy Server Pages": [ - ".gsp" - ], - "HTML": [ - ".html", - ".st", - ".xht" - ], - "HTML+ERB": [ - ".deface", - ".erb" - ], - "Hack": [ - ".hh", - ".php" - ], - "Haml": [ - ".deface", - ".haml" - ], - "Handlebars": [ - ".handlebars", - ".hbs" - ], - "Haskell": [ - ".hs" - ], - "Hy": [ - ".hy" - ], - "IDL": [ - ".dlm", - ".pro" - ], - "IGOR Pro": [ - ".ipf" - ], - "Idris": [ - ".idr" - ], - "Inform 7": [ - ".i7x", - ".ni" - ], - "Ioke": [ - ".ik" - ], - "Isabelle": [ - ".thy" - ], - "JSON": [ - ".json", - ".lock" - ], - "JSON5": [ - ".json5" - ], - "JSONLD": [ - ".jsonld" - ], - "JSONiq": [ - ".jq" - ], - "Jade": [ - ".jade" - ], - "Java": [ - ".java" - ], - "JavaScript": [ - ".frag", - ".gs", - ".js", - ".jsb", - ".script!", - ".xsjs", - ".xsjslib" - ], - "Julia": [ - ".jl" - ], - "KRL": [ - ".krl" - ], - "Kit": [ - ".kit" - ], - "Kotlin": [ - ".kt" - ], - "LFE": [ - ".lfe" - ], - "LOLCODE": [ - ".lol" - ], - "LSL": [ - ".lsl" - ], - "Lasso": [ - ".las", - ".lasso", - ".lasso9", - ".ldml" - ], - "Latte": [ - ".latte" - ], - "Less": [ - ".less" - ], - "Liquid": [ - ".liquid" - ], - "Literate Agda": [ - ".lagda" - ], - "Literate CoffeeScript": [ - ".litcoffee" - ], - "LiveScript": [ - ".ls" - ], - "Logos": [ - ".xm" - ], - "Logtalk": [ - ".lgt" - ], - "LookML": [ - ".lookml" - ], - "LoomScript": [ - ".ls" - ], - "Lua": [ - ".fcgi", - ".pd_lua" - ], - "M": [ - ".m" - ], - "MTML": [ - ".mtml" - ], - "Makefile": [ - ".script!" - ], - "Markdown": [ - ".md" - ], - "Mask": [ - ".mask" - ], - "Mathematica": [ - ".m", - ".nb" - ], - "Matlab": [ - ".m" - ], - "Max": [ - ".maxhelp", - ".maxpat", - ".mxt" - ], - "MediaWiki": [ - ".mediawiki" - ], - "Mercury": [ - ".m", - ".moo" - ], - "Monkey": [ - ".monkey" - ], - "Moocode": [ - ".moo" - ], - "MoonScript": [ - ".moon" - ], - "NSIS": [ - ".nsh", - ".nsi" - ], - "Nemerle": [ - ".n" - ], - "NetLogo": [ - ".nlogo" - ], - "NewLisp": [ - ".lsp" - ], - "Nimrod": [ - ".nim" - ], - "Nit": [ - ".nit" - ], - "Nix": [ - ".nix" - ], - "Nu": [ - ".nu", - ".script!" - ], - "OCaml": [ - ".eliom", - ".ml" - ], - "Objective-C": [ - ".h", - ".m" - ], - "Objective-C++": [ - ".mm" - ], - "Omgrofl": [ - ".omgrofl" - ], - "Opa": [ - ".opa" - ], - "Opal": [ - ".opal" - ], - "OpenCL": [ - ".cl" - ], - "OpenEdge ABL": [ - ".cls", - ".p" - ], - "OpenSCAD": [ - ".scad" - ], - "Org": [ - ".org" - ], - "Ox": [ - ".ox", - ".oxh", - ".oxo" - ], - "Oxygene": [ - ".oxygene" - ], - "Oz": [ - ".oz" - ], - "PAWN": [ - ".pwn" - ], - "PHP": [ - ".fcgi", - ".php", - ".script!" - ], - "Pan": [ - ".pan" - ], - "Papyrus": [ - ".psc" - ], - "Parrot Assembly": [ - ".pasm" - ], - "Parrot Internal Representation": [ - ".pir" - ], - "Pascal": [ - ".dpr", - ".pp" - ], - "Perl": [ - ".cgi", - ".fcgi", - ".pl", - ".pm", - ".pod", - ".script!", - ".t" - ], - "Perl6": [ - ".p6", - ".pl", - ".pm", - ".pm6", - ".t" - ], - "PigLatin": [ - ".pig" - ], - "Pike": [ - ".pike", - ".pmod" - ], - "Pod": [ - ".pod" - ], - "PogoScript": [ - ".pogo" - ], - "PostScript": [ - ".ps" - ], - "PowerShell": [ - ".ps1", - ".psm1" - ], - "Processing": [ - ".pde" - ], - "Prolog": [ - ".ecl", - ".pl", - ".pro", - ".prolog", - ".script!" - ], - "Propeller Spin": [ - ".spin" - ], - "Protocol Buffer": [ - ".proto" - ], - "Puppet": [ - ".pp" - ], - "PureScript": [ - ".purs" - ], - "Python": [ - ".cgi", - ".fcgi", - ".py", - ".pyde", - ".pyp", - ".script!" - ], - "QMake": [ - ".pri", - ".pro", - ".script!" - ], - "R": [ - ".R", - ".Rd", - ".r", - ".rsx", - ".script!" - ], - "RAML": [ - ".raml" - ], - "RDoc": [ - ".rdoc" - ], - "RMarkdown": [ - ".rmd" - ], - "Racket": [ - ".scrbl" - ], - "Ragel in Ruby Host": [ - ".rl" - ], - "Rebol": [ - ".r", - ".r2", - ".r3", - ".reb", - ".rebol" - ], - "Red": [ - ".red", - ".reds" - ], - "RobotFramework": [ - ".robot" - ], - "Ruby": [ - ".fcgi", - ".pluginspec", - ".rabl", - ".rake", - ".rb", - ".script!" - ], - "Rust": [ - ".rs" - ], - "SAS": [ - ".sas" - ], - "SCSS": [ - ".scss" - ], - "SQF": [ - ".hqf", - ".sqf" - ], - "SQL": [ - ".prc", - ".sql", - ".tab", - ".udf", - ".viw" - ], - "STON": [ - ".ston" - ], - "Sass": [ - ".sass" - ], - "Scala": [ - ".sbt", - ".sc", - ".script!" - ], - "Scaml": [ - ".scaml" - ], - "Scheme": [ - ".sld", - ".sps" - ], - "Scilab": [ - ".sce", - ".sci", - ".tst" - ], - "Shell": [ - ".bash", - ".cgi", - ".command", - ".fcgi", - ".script!", - ".sh", - ".zsh" - ], - "ShellSession": [ - ".sh-session" - ], - "Shen": [ - ".shen" - ], - "Slash": [ - ".sl" - ], - "Slim": [ - ".slim" - ], - "Smalltalk": [ - ".st" - ], - "SourcePawn": [ - ".sp" - ], - "Squirrel": [ - ".nut" - ], - "Standard ML": [ - ".ML", - ".fun", - ".sig", - ".sml" - ], - "Stata": [ - ".ado", - ".do", - ".doh", - ".ihlp", - ".mata", - ".matah", - ".sthlp" - ], - "Stylus": [ - ".styl" - ], - "SuperCollider": [ - ".sc", - ".scd" - ], - "Swift": [ - ".swift" - ], - "SystemVerilog": [ - ".sv", - ".svh", - ".vh" - ], - "TXL": [ - ".txl" - ], - "Tcl": [ - ".tm" - ], - "TeX": [ - ".bbx", - ".cbx", - ".cls", - ".lbx" - ], - "Tea": [ - ".tea" - ], - "Turing": [ - ".t" - ], - "TypeScript": [ - ".ts" - ], - "UnrealScript": [ - ".uc" - ], - "VCL": [ - ".vcl" - ], - "VHDL": [ - ".vhd" - ], - "Verilog": [ - ".v" - ], - "Visual Basic": [ - ".cls", - ".vb", - ".vbhtml" - ], - "Volt": [ - ".volt" - ], - "XC": [ - ".xc" - ], - "XML": [ - ".ant", - ".csproj", - ".filters", - ".fsproj", - ".ivy", - ".mm", - ".nproj", - ".nuspec", - ".pluginspec", - ".targets", - ".vbproj", - ".vcxproj", - ".xml" - ], - "XProc": [ - ".xpl" - ], - "XQuery": [ - ".xqm" - ], - "XSLT": [ - ".xslt" - ], - "Xojo": [ - ".xojo_code", - ".xojo_menu", - ".xojo_report", - ".xojo_script", - ".xojo_toolbar", - ".xojo_window" - ], - "Xtend": [ - ".xtend" - ], - "YAML": [ - ".yml" - ], - "Zephir": [ - ".zep" - ], - "Zimpl": [ - ".zmpl" - ], - "edn": [ - ".edn" - ], - "fish": [ - ".fish" - ], - "text": [ - ".fr", - ".txt" - ], - "wisp": [ - ".wisp" - ] - }, - "interpreters": { - "Awk": [ - "awk" - ], - "Crystal": [ - "crystal" - ], - "Erlang": [ - "escript" - ], - "Gnuplot": [ - "gnuplot" - ], - "Groovy": [ - "groovy" - ], - "Ioke": [ - "ioke" - ], - "JavaScript": [ - "node" - ], - "Lua": [ - "lua" - ], - "Makefile": [ - "make" - ], - "NewLisp": [ - "newlisp" - ], - "Nu": [ - "nush" - ], - "PHP": [ - "php" - ], - "Parrot Assembly": [ - "parrot" - ], - "Parrot Internal Representation": [ - "parrot" - ], - "Perl": [ - "perl" - ], - "Perl6": [ - "perl6" - ], - "Prolog": [ - "swipl" - ], - "Python": [ - "python", - "python2" - ], - "QMake": [ - "qmake" - ], - "R": [ - "Rscript" - ], - "Ruby": [ - "macruby", - "rake", - "ruby" - ], - "Scala": [ - "scala" - ], - "Shell": [ - "bash", - "sh", - "zsh" - ] - }, - "filenames": { - "Ant Build System": [ - "ant.xml", - "build.xml" - ], - "ApacheConf": [ - ".htaccess", - "apache2.conf", - "httpd.conf" - ], - "CMake": [ - "CMakeLists.txt" - ], - "Dockerfile": [ - "Dockerfile" - ], - "INI": [ - ".editorconfig", - ".gitconfig" - ], - "Makefile": [ - "Makefile" - ], - "Maven POM": [ - "pom.xml" - ], - "Nginx": [ - "nginx.conf" - ], - "PHP": [ - ".php" - ], - "Perl": [ - "ack" - ], - "R": [ - "expr-dist" - ], - "Ruby": [ - ".pryrc", - "Appraisals", - "Capfile", - "Gemfile.lock", - "Rakefile" - ], - "Shell": [ - ".bash_logout", - ".bash_profile", - ".bashrc", - ".cshrc", - ".login", - ".profile", - ".zlogin", - ".zlogout", - ".zprofile", - ".zshenv", - ".zshrc", - "PKGBUILD", - "bash_logout", - "bash_profile", - "bashrc", - "cshrc", - "login", - "profile", - "zlogin", - "zlogout", - "zprofile", - "zshenv", - "zshrc" - ], - "Tcl": [ - "owh", - "starfield" - ], - "VimL": [ - ".gvimrc", - ".vimrc", - "_vimrc" - ], - "XML": [ - ".cproject" - ], - "YAML": [ - ".gemrc" - ], - "Zephir": [ - "exception.zep.c", - "exception.zep.h", - "exception.zep.php" - ] - }, - "tokens_total": 710735, - "languages_total": 1079, - "tokens": { - "ABAP": { - "*/**": 1, - "*": 56, - "The": 2, - "MIT": 2, - "License": 1, - "(": 8, - ")": 8, - "Copyright": 1, - "c": 3, - "Ren": 1, - "van": 1, - "Mil": 1, - "Permission": 1, - "is": 2, - "hereby": 1, - "granted": 1, - "free": 1, - "of": 6, - "charge": 1, - "to": 10, - "any": 1, - "person": 1, - "obtaining": 1, - "a": 1, - "copy": 2, - "this": 2, - "software": 1, - "and": 3, - "associated": 1, - "documentation": 1, - "files": 4, - "the": 10, - "deal": 1, - "in": 3, - "Software": 3, - "without": 2, - "restriction": 1, - "including": 1, - "limitation": 1, - "rights": 1, - "use": 1, - "modify": 1, - "merge": 1, - "publish": 1, - "distribute": 1, - "sublicense": 1, - "and/or": 1, - "sell": 1, - "copies": 2, - "permit": 1, - "persons": 1, - "whom": 1, - "furnished": 1, - "do": 4, - "so": 1, - "subject": 1, - "following": 1, - "conditions": 1, - "above": 1, - "copyright": 1, - "notice": 2, - "permission": 1, - "shall": 1, - "be": 1, - "included": 1, - "all": 1, - "or": 1, - "substantial": 1, - "portions": 1, - "Software.": 1, - "THE": 6, - "SOFTWARE": 2, - "IS": 1, - "PROVIDED": 1, - "WITHOUT": 1, - "WARRANTY": 1, - "OF": 4, - "ANY": 2, - "KIND": 1, - "EXPRESS": 1, - "OR": 7, - "IMPLIED": 1, - "INCLUDING": 1, - "BUT": 1, - "NOT": 1, - "LIMITED": 1, - "TO": 2, - "WARRANTIES": 1, - "MERCHANTABILITY": 1, - "FITNESS": 1, - "FOR": 2, - "A": 1, - "PARTICULAR": 1, - "PURPOSE": 1, - "AND": 1, - "NONINFRINGEMENT.": 1, - "IN": 4, - "NO": 1, - "EVENT": 1, - "SHALL": 1, - "AUTHORS": 1, - "COPYRIGHT": 1, - "HOLDERS": 1, - "BE": 1, - "LIABLE": 1, - "CLAIM": 1, - "DAMAGES": 1, - "OTHER": 2, - "LIABILITY": 1, - "WHETHER": 1, - "AN": 1, - "ACTION": 1, - "CONTRACT": 1, - "TORT": 1, - "OTHERWISE": 1, - "ARISING": 1, - "FROM": 1, - "OUT": 1, - "CONNECTION": 1, - "WITH": 1, - "USE": 1, - "DEALINGS": 1, - "SOFTWARE.": 1, - "*/": 1, - "-": 978, - "CLASS": 2, - "CL_CSV_PARSER": 6, - "DEFINITION": 2, - "class": 2, - "cl_csv_parser": 2, - "definition": 1, - "public": 3, - "inheriting": 1, - "from": 1, - "cl_object": 1, - "final": 1, - "create": 1, - ".": 9, - "section.": 3, - "not": 3, - "include": 3, - "other": 3, - "source": 3, - "here": 3, - "type": 11, - "pools": 1, - "abap": 1, - "methods": 2, - "constructor": 2, - "importing": 1, - "delegate": 1, - "ref": 1, - "if_csv_parser_delegate": 1, - "csvstring": 1, - "string": 1, - "separator": 1, - "skip_first_line": 1, - "abap_bool": 2, - "parse": 2, - "raising": 1, - "cx_csv_parse_error": 2, - "protected": 1, - "private": 1, - "constants": 1, - "_textindicator": 1, - "value": 2, - "IMPLEMENTATION": 2, - "implementation.": 1, - "": 2, - "+": 9, - "|": 7, - "Instance": 2, - "Public": 1, - "Method": 2, - "CONSTRUCTOR": 1, - "[": 5, - "]": 5, - "DELEGATE": 1, - "TYPE": 5, - "REF": 1, - "IF_CSV_PARSER_DELEGATE": 1, - "CSVSTRING": 1, - "STRING": 1, - "SEPARATOR": 1, - "C": 1, - "SKIP_FIRST_LINE": 1, - "ABAP_BOOL": 1, - "": 2, - "method": 2, - "constructor.": 1, - "super": 1, - "_delegate": 1, - "delegate.": 1, - "_csvstring": 2, - "csvstring.": 1, - "_separator": 1, - "separator.": 1, - "_skip_first_line": 1, - "skip_first_line.": 1, - "endmethod.": 2, - "Get": 1, - "lines": 4, - "data": 3, - "is_first_line": 1, - "abap_true.": 2, - "standard": 2, - "table": 3, - "string.": 3, - "_lines": 1, - "field": 1, - "symbols": 1, - "": 3, - "loop": 1, - "at": 2, - "assigning": 1, - "Parse": 1, - "line": 1, - "values": 2, - "_parse_line": 2, - "Private": 1, - "_LINES": 1, - "<": 1, - "RETURNING": 1, - "STRINGTAB": 1, - "_lines.": 1, - "split": 1, - "cl_abap_char_utilities": 1, - "cr_lf": 1, - "into": 6, - "returning.": 1, - "Space": 2, - "concatenate": 4, - "csvvalue": 6, - "csvvalue.": 5, - "else.": 4, - "char": 2, - "endif.": 6, - "This": 1, - "indicates": 1, - "an": 1, - "error": 1, - "CSV": 1, - "formatting": 1, - "text_ended": 1, - "message": 2, - "e003": 1, - "csv": 1, - "msg.": 2, - "raise": 1, - "exception": 1, - "exporting": 1, - "endwhile.": 2, - "append": 2, - "csvvalues.": 2, - "clear": 1, - "pos": 2, - "endclass.": 1 - }, - "AGS Script": { - "//****************************************************************************************************": 8, - "#define": 2, - "DISTANCE": 25, - "//": 66, - "distance": 1, - "player": 13, - "walks": 1, - "in": 1, - "Tapping": 2, - "mode": 10, - "before": 1, - "he": 1, - "stops": 1, - "enum": 2, - "KeyboardMovement_Directions": 4, - "{": 106, - "eKeyboardMovement_Stop": 9, - "eKeyboardMovement_DownLeft": 5, - "eKeyboardMovement_Down": 5, - "eKeyboardMovement_DownRight": 5, - "eKeyboardMovement_Left": 5, - "eKeyboardMovement_Right": 5, - "eKeyboardMovement_UpLeft": 5, - "eKeyboardMovement_Up": 5, - "eKeyboardMovement_UpRight": 5, - "}": 107, - ";": 235, - "int": 18, - "KeyboardMovement_KeyDown": 5, - "down": 9, - "arrow": 9, - "KeyboardMovement_KeyLeft": 5, - "left": 4, - "KeyboardMovement_KeyRight": 5, - "right": 5, - "KeyboardMovement_KeyUp": 5, - "up": 4, - "KeyboardMovement_KeyDownRight": 3, - "PgDn": 2, - "(": 281, - "numpad": 8, - ")": 282, - "KeyboardMovement_KeyUpRight": 3, - "PgUp": 2, - "KeyboardMovement_KeyDownLeft": 3, - "End": 2, - "KeyboardMovement_KeyUpLeft": 3, - "Home": 2, - "KeyboardMovement_KeyStop": 3, - "KeyboardMovement_Modes": 4, - "KeyboardMovement_Mode": 4, - "eKeyboardMovement_None": 2, - "stores": 2, - "current": 8, - "keyboard": 1, - "control": 2, - "disabled": 5, - "by": 1, - "default": 1, - "KeyboardMovement_CurrentDirection": 7, - "walking": 1, - "direction": 22, - "of": 6, - "character": 11, - "static": 2, - "function": 54, - "KeyboardMovement": 2, - "SetMode": 2, - "repeatedly_execute": 2, - "-": 217, - "Pressing": 1, - "if": 96, - "IsGamePaused": 4, - "true": 18, - "||": 12, - "eKeyboardMovement_Pressing": 2, - "IsInterfaceEnabled": 3, - "false": 26, - "player.on": 2, - "return": 8, - "game": 2, - "is": 10, - "paused": 2, - "module": 2, - "or": 8, - "interface": 3, - "hidden": 2, - "quit": 2, - "newdirection": 43, - "declare": 4, - "variable": 2, - "storing": 4, - "new": 19, - "get": 2, - "IsKeyPressed": 17, - "&&": 8, - "&": 4, - "arrows": 4, - "numeric": 2, - "pad": 2, - "held": 4, - "set": 7, - "to": 14, - "Down": 2, - "Right": 2, - "else": 44, - "none": 1, - "the": 15, - "above": 2, - "it": 1, - "stop": 7, - "regardless": 1, - "whether": 1, - "some": 1, - "are": 1, - "different": 2, - "from": 2, - "player.StopMoving": 3, - "Stop": 4, - "command": 4, - "movement": 2, - "NOT": 2, - "dx": 20, - "dy": 20, - "variables": 2, - "walk": 4, - "coordinates": 4, - "player.WalkStraight": 2, - "player.x": 2, - "+": 7, - "player.y": 2, - "eNoBlock": 2, - "update": 3, - "on_key_press": 2, - "keycode": 27, - "eKeyboardMovement_Tapping": 3, - "key": 2, - "pressed": 4, - "same": 1, - "as": 2, - "on_event": 1, - "EventType": 1, - "event": 2, - "data": 1, - "eEventLeaveRoom": 1, - "initialize_control_panel": 2, - "gPanel.Centre": 1, - "gRestartYN.Centre": 1, - "IsSpeechVoxAvailable": 3, - "lblVoice.Visible": 1, - "btnVoice.Visible": 1, - "sldVoice.Visible": 1, - "SetVoiceMode": 6, - "eSpeechVoiceAndText": 4, - "btnVoice.Text": 9, - "System.SupportsGammaControl": 3, - "sldGamma.Visible": 1, - "lblGamma.Visible": 1, - "//And": 1, - "now": 1, - "all": 2, - "defaults": 1, - "System.Volume": 5, - "sldAudio.Value": 3, - "SetGameSpeed": 3, - "sldSpeed.Value": 3, - "sldVoice.Value": 3, - "SetSpeechVolume": 3, - "System.Gamma": 3, - "sldGamma.Value": 3, - "game_start": 1, - "KeyboardMovement.SetMode": 1, - "repeatedly_execute_always": 1, - "show_inventory_window": 3, - "gInventory.Visible": 2, - "mouse.Mode": 13, - "eModeInteract": 3, - "mouse.UseModeGraphic": 8, - "eModePointer": 8, - "show_save_game_dialog": 3, - "gSaveGame.Visible": 3, - "lstSaveGamesList.FillSaveGameList": 2, - "lstSaveGamesList.ItemCount": 3, - "txtNewSaveName.Text": 5, - "lstSaveGamesList.Items": 3, - "[": 6, - "]": 6, - "gIconbar.Visible": 15, - "show_restore_game_dialog": 3, - "gRestoreGame.Visible": 3, - "lstRestoreGamesList.FillSaveGameList": 1, - "close_save_game_dialog": 4, - "mouse.UseDefaultGraphic": 9, - "close_restore_game_dialog": 4, - "eKeyCode": 1, - "eKeyEscape": 5, - "gRestartYN.Visible": 6, - "//Use": 1, - "ESC": 1, - "cancel": 1, - "restart.": 1, - "gPanel.Visible": 11, - "eKeyReturn": 1, - "RestartGame": 2, - "eKeyCtrlQ": 1, - "QuitGame": 3, - "Ctrl": 1, - "Q": 1, - "eKeyF5": 1, - "F5": 1, - "eKeyF7": 1, - "F7": 1, - "eKeyF9": 1, - "eKeyF12": 1, - "SaveScreenShot": 1, - "F12": 1, - "eKeyTab": 1, - "Tab": 1, - "show": 1, - "inventory": 2, - "eModeWalkto": 2, - "//Notice": 1, - "this": 1, - "alternate": 1, - "way": 1, - "indicate": 1, - "keycodes.": 1, - "eModeLookat": 1, - "//Note": 1, - "that": 1, - "we": 1, - "do": 1, - "here": 1, - "modes.": 1, - "//If": 1, - "you": 1, - "want": 1, - "something": 1, - "happen": 1, - "such": 1, - "GUI": 3, - "buttons": 1, - "highlighting": 1, - "eModeTalkto": 2, - "//you": 1, - "I": 1, - "P": 1, - "G": 1, - "t": 1, - "allow": 1, - "mouse": 2, - "click": 1, - "button": 33, - "eMouseLeft": 4, - "ProcessClick": 2, - "mouse.x": 2, - "mouse.y": 2, - "eMouseRight": 1, - "eMouseWheelSouth": 1, - "mouse.SelectNextMode": 1, - "eMouseMiddle": 1, - "eMouseWheelNorth": 1, - "player.ActiveInventory": 2, - "null": 2, - "//...and": 1, - "has": 1, - "a": 1, - "selected": 1, - "item": 1, - "UseInv.": 1, - "eModeUseinv": 2, - "interface_click": 1, - "btnInvUp_Click": 1, - "GUIControl": 31, - "*control": 31, - "MouseButton": 26, - "invCustomInv.ScrollUp": 1, - "btnInvDown_Click": 1, - "invCustomInv.ScrollDown": 1, - "btnInvOK_Click": 1, - "They": 2, - "OK": 1, - "close": 1, - "btnInvSelect_Click": 1, - "SELECT": 1, - "so": 1, - "switch": 1, - "Get": 1, - "cursor": 1, - "But": 1, - "override": 1, - "appearance": 1, - "look": 1, - "like": 1, - "btnIconInv_Click": 1, - "btnIconCurInv_Click": 1, - "btnIconSave_Click": 2, - "btnIconLoad_Click": 2, - "btnIconExit_Click": 1, - "btnIconAbout_Click": 1, - "cEgo_Look": 1, - "Display": 4, - "cEgo_Interact": 1, - "cEgo_Talk": 1, - "//START": 1, - "OF": 2, - "CONTROL": 2, - "PANEL": 2, - "FUNCTIONS": 2, - "btnSave_OnClick": 1, - "Wait": 3, - "btnIconSave": 1, - "gControl_OnClick": 1, - "*theGui": 1, - "btnAbout_OnClick": 1, - "btnQuit_OnClick": 1, - "btnLoad_OnClick": 1, - "btnIconLoad": 1, - "btnResume_OnClick": 1, - "sldAudio_OnChange": 1, - "sldVoice_OnChange": 1, - "btnVoice_OnClick": 1, - "eSpeechVoiceOnly": 1, - "eSpeechTextOnly": 1, - "sldGamma_OnChange": 1, - "btnDefault_OnClick": 1, - "//END": 1, - "dialog_request": 1, - "param": 1, - "sldSpeed_OnChange": 1, - "btnRestart_OnClick": 1, - "btnRestartYes_OnClick": 1, - "btnRestartNo_OnClick": 1, - "btnCancelSave_OnClick": 1, - "btnSaveGame_OnClick": 2, - "gameSlotToSaveInto": 3, - "i": 5, - "while": 1, - "<": 1, - "lstSaveGamesList.SaveGameSlots": 2, - "SaveGameSlot": 1, - "btnCancelRestore_OnClick": 1, - "btnRestoreGame_OnClick": 1, - "lstRestoreGamesList.SelectedIndex": 2, - "RestoreGameSlot": 1, - "lstRestoreGamesList.SaveGameSlots": 1, - "lstSaveGamesList_OnSelectionCh": 1, - "lstSaveGamesList.SelectedIndex": 3, - "txtNewSaveName_OnActivate": 1, - "btnDeleteSave_OnClick": 1, - "DeleteSaveSlot": 1, - "KeyboardMovement_VERSION": 1, - "struct": 1, - "import": 1 - }, - "APL": { - "NameSpace": 1, - "UT": 1, - "sac": 1, - "expect_orig": 1, - "expect": 1, - "NS": 2, - "exception": 1, - "nexpect_orig": 1, - "nexpect": 1, - "{": 21, - "Z": 28, - "}": 21, - "Conf": 5, - "run": 1, - "Argument": 12, - ";": 25, - "PRE_test": 4, - "POST_test": 4, - "TEST_step": 6, - "COVER_step": 4, - "FromSpace": 9, - "load_display_if_not_already_loaded": 2, - "load_salt_scripts_into_current_namespace_if_configured": 2, - "RSI": 1, - "If": 10, - "NC": 4, - "has": 3, - "PROFILE": 2, - "EndIf": 10, - "is_function": 1, - "single_function_test_function": 2, - "COVER_file": 4, - "ElseIf": 3, - "is_list_of_functions": 1, - "list_of_functions_test_function": 2, - "is_file": 1, - "file_test_function": 2, - "(": 21, - "get_file_name": 2, - ")": 20, - "is_dir": 1, - "test_files": 2, - "test_files_in_dir": 1, - "test_dir_function": 2, - "generate_coverage_page": 1, - "#.": 1, - "CY": 1, - "#.UT.appdir": 3, - "SE.SALT.Load": 3, - "TestName": 2, - "run_ut": 3, - "ListOfNames": 2, - "t": 11, - "TS": 4, - "-": 50, - "print_passed_crashed_failed": 2, - "FilePath": 3, - "FileNS": 3, - "Functions": 3, - "TestFunctions": 4, - "FileNS.": 1, - "NL": 2, - "is_test": 1, - "/Functions": 1, - "/": 5, - "Else": 2, - "Test_files": 3, - "#.UT.run": 1, - "separator": 2, - "data": 1, - "cover_target": 1, - "clear": 1, - ".": 5, - "Coverage": 1, - "%": 3, - "": 1, - "": 1, - "http": 2, - "equiv=": 1, - "content=": 1, - "": 1, - "
": 1,
-      "
": 1, - "": 1, - "": 2, - "": 2, - "": 1, - "": 1, - "Page": 1, - "generated": 1, - "|": 2, - "cover_out": 1, - "cover_file": 1, - "UTF": 1, - "_TEST": 2, - ".dyalog": 1, - "Linux": 2, - "APLVersion": 2, - "yes": 2, - "test": 1, - "d": 1, - "&&": 1, - "echo": 2, - "||": 1, - "no": 1, - "gfa": 1, - "I": 3, - "kernel32": 1, - "GetFileAttributes*": 1, - "<": 1, - "find": 1, - "name": 1, - "*_tests.dyalog": 2, - "files": 1, - "Passed": 2, - "Crashed": 1, - "Failed": 1, - "Runtime": 1, - "m": 2, - "s": 2, - "ms": 2, - "CRASHED": 1, - "FAILED": 1, - "Expected": 1, - "Got": 1, - "gotterm": 6, - "term_to_text": 1, - "returned": 1, - "align_and_join_message_parts": 2, - "hdr": 5, - "exp": 5, - "expterm": 5, - "got": 5, - "Parts": 2, - "R1": 3, - "C1": 2, - "R2": 3, - "C2": 3, - "W": 7, - "/C1": 1, - "[": 1, - "]": 1, - "confparam": 4, - "in": 1, - "config": 4, - "/config": 1, - "EndNameSpace": 1, - "You": 1, - "can": 2, - "try": 1, - "this": 2, - "at": 1, - "//tryapl.org/": 1, - "not": 1, - "explain": 1, - "how": 1, - "much": 1, - "suddenly": 1, - "love": 1, - "crypto": 1, - "language": 1, - "Starts": 2, - "Middles": 2, - "Qualifiers": 2, - "Finishes": 2, - "rf": 2, - "erf": 2, - "deepak": 2 - }, - "ATS": { - "//": 211, - "#define": 4, - "ATS_PACKNAME": 1, - "ATS_STALOADFLAG": 1, - "no": 2, - "static": 1, - "loading": 1, - "at": 2, - "run": 1, - "-": 49, - "time": 1, - "#include": 16, - "castfn": 1, - "linset2list": 1, - "{": 142, - "a": 200, - "t0p": 31, - "}": 141, - "(": 562, - "xs": 82, - "set": 34, - "INV": 24, - ")": 567, - "<": 14, - "List0_vt": 5, - "staload": 25, - "UN": 3, - "_": 25, - "datavtype": 1, - "fork": 16, - "FORK": 3, - "of": 59, - "nphil": 13, - "assume": 2, - "fork_vtype": 3, - "implement": 55, - "fork_get_num": 4, - "f": 22, - "let": 34, - "val": 95, - "n": 51, - "in": 48, - "end": 73, - "local": 10, - "the_forkarray": 2, - "typedef": 10, - "t": 1, - "channel": 11, - "array_tabulate": 1, - "fopr": 1, - "": 2, - "ch": 7, - "where": 6, - "UN.cast": 2, - "channel_create_exn": 2, - "": 2, - "i2sz": 4, - "channel_insert": 5, - "arrayref_tabulate": 1, - "NPHIL": 6, - "[": 49, - "]": 48, - "fork_changet": 5, - "the_forktray": 2, - "+": 20, - "forktray_changet": 4, - "sortdef": 2, - "ftype": 13, - "type": 30, - "infixr": 2, - "b": 26, - "": 2, - "functor": 12, - "F": 34, - "list0": 9, - "extern": 13, - "functor_list0": 7, - "lam": 20, - "list0_map": 2, - "": 14, - "": 3, - "option0": 3, - "functor_option0": 2, - "opt": 6, - "option0_map": 1, - "functor_homres": 2, - "c": 3, - "r": 25, - "x": 48, - "fun": 56, - "Yoneda_phi": 3, - "Yoneda_psi": 3, - "ftor": 9, - "fx": 8, - "m": 4, - "mf": 4, - "natrans": 3, - "G": 2, - "Yoneda_phi_nat": 2, - "Yoneda_psi_nat": 2, - "*": 2, - "datatype": 4, - "bool": 27, - "True": 7, - "|": 22, - "False": 8, - "boxed": 2, - "boolean": 2, - "bool2string": 4, - "string": 2, - "case": 9, - "fprint_val": 2, - "": 2, - "out": 8, - "fprint": 3, - "myboolist0": 9, - "list_t": 1, - "g0ofg1_list": 1, - "Yoneda_bool_list0": 3, - "myboolist1": 2, - "fprintln": 3, - "stdout_ref": 4, - "main0": 3, - "%": 7, - "#": 7, - "natLt": 2, - "phil_left": 3, - "phil_right": 3, - "phil_loop": 10, - "void": 14, - "cleaner_loop": 6, - "absvtype": 2, - "ptr": 2, - "vtypedef": 2, - "phil_dine": 3, - "lf": 5, - "rf": 5, - "phil_think": 3, - "cleaner_wash": 3, - "cleaner_return": 4, - "nmod": 1, - "randsleep": 6, - "intGte": 1, - "ignoret": 2, - "sleep": 2, - "uInt": 1, - "rand": 1, - "mod": 1, - "println": 9, - "nl": 2, - "nr": 2, - "ch_lfork": 2, - "ch_rfork": 2, - "channel_takeout": 4, - "HX": 1, - "try": 1, - "to": 16, - "actively": 1, - "induce": 1, - "deadlock": 2, - "ch_forktray": 3, - "f0": 3, - "dynload": 3, - "mythread_create_cloptr": 6, - "llam": 6, - "while": 1, - "true": 5, - "CoYoneda": 7, - "CoYoneda_phi": 2, - "CoYoneda_psi": 3, - "int0": 4, - "I": 8, - "int": 2, - "int2bool": 2, - "i": 6, - "if": 7, - "then": 11, - "else": 7, - "myintlist0": 2, - "g0ofg1": 1, - "list": 1, - "set_vtype": 3, - "t@ype": 2, - "compare_elt_elt": 4, - "x1": 1, - "x2": 1, - "linset_nil": 2, - "linset_make_nil": 2, - "linset_sing": 2, - "": 16, - "linset_make_sing": 2, - "linset_make_list": 1, - "List": 1, - "linset_is_nil": 2, - "linset_isnot_nil": 2, - "linset_size": 2, - "size_t": 1, - "linset_is_member": 3, - "x0": 22, - "linset_isnot_member": 1, - "linset_copy": 2, - "linset_free": 2, - "linset_insert": 3, - "&": 17, - "linset_takeout": 1, - "res": 9, - "endfun": 1, - "linset_takeout_opt": 1, - "Option_vt": 4, - "linset_remove": 2, - "linset_choose": 3, - "linset_choose_opt": 1, - "linset_takeoutmax": 1, - "linset_takeoutmax_opt": 1, - "linset_takeoutmin": 1, - "linset_takeoutmin_opt": 1, - "fprint_linset": 3, - "sep": 1, - "FILEref": 2, - "overload": 1, - "with": 1, - "env": 11, - "vt0p": 2, - "linset_foreach": 3, - "fwork": 3, - "linset_foreach_env": 3, - "linset_listize": 2, - "linset_listize1": 2, - "code": 6, - "reuse": 2, - "elt": 2, - "list_vt_nil": 16, - "list_vt_cons": 17, - "list_vt_is_nil": 1, - "list_vt_is_cons": 1, - "list_vt_length": 1, - "aux": 4, - "nat": 4, - ".": 14, - "": 3, - "list_vt": 7, - "sgn": 9, - "false": 6, - "list_vt_copy": 2, - "list_vt_free": 1, - "mynode_cons": 4, - "nx": 22, - "mynode1": 6, - "xs1": 15, - "UN.castvwtp0": 8, - "List1_vt": 5, - "@list_vt_cons": 5, - "xs2": 3, - "prval": 20, - "UN.cast2void": 5, - ";": 4, - "fold@": 8, - "ins": 3, - "tail": 1, - "recursive": 1, - "n1": 4, - "<=>": 1, - "1": 3, - "mynode_make_elt": 4, - "ans": 2, - "is": 26, - "found": 1, - "effmask_all": 3, - "free@": 1, - "xs1_": 3, - "rem": 1, - "opt_some": 1, - "opt_none": 1, - "list_vt_foreach": 1, - "": 3, - "list_vt_foreach_env": 1, - "mynode_null": 5, - "mynode": 3, - "null": 1, - "the_null_ptr": 1, - "mynode_free": 1, - "nx2": 4, - "mynode_get_elt": 1, - "nx1": 7, - "UN.castvwtp1": 2, - "mynode_set_elt": 1, - "l": 3, - "__assert": 2, - "praxi": 1, - "mynode_getfree_elt": 1, - "linset_takeout_ngc": 2, - "takeout": 3, - "mynode0": 1, - "pf_x": 6, - "view@x": 3, - "pf_xs1": 6, - "view@xs1": 3, - "linset_takeoutmax_ngc": 2, - "xs_": 4, - "@list_vt_nil": 1, - "linset_takeoutmin_ngc": 2, - "unsnoc": 4, - "pos": 1, - "and": 10, - "fold@xs": 1, - "": 1, - "html": 1, - "PUBLIC": 1, - "W3C": 1, - "DTD": 2, - "XHTML": 1, - "EN": 1, - "http": 2, - "www": 1, - "w3": 1, - "org": 1, - "TR": 1, - "xhtml11": 2, - "dtd": 1, - "": 1, - "xmlns=": 1, - "": 1, - "": 1, - "equiv=": 1, - "content=": 1, - "": 1, - "EFFECTIVATS": 1, - "DiningPhil2": 1, - "": 1, - "#patscode_style": 1, - "": 1, - "": 1, - "

": 1, - "Effective": 1, - "ATS": 2, - "Dining": 2, - "Philosophers": 2, - "

": 1, - "In": 2, - "this": 2, - "article": 2, - "present": 1, - "an": 6, - "implementation": 3, - "slight": 1, - "variant": 1, - "the": 30, - "famous": 1, - "problem": 1, - "by": 4, - "Dijkstra": 1, - "that": 8, - "makes": 1, - "simple": 1, - "but": 1, - "convincing": 1, - "use": 1, - "linear": 2, - "types.": 1, - "

": 8, - "The": 8, - "Original": 2, - "Problem": 2, - "

": 8, - "There": 3, - "are": 7, - "five": 1, - "philosophers": 1, - "sitting": 1, - "around": 1, - "table": 3, - "there": 3, - "also": 3, - "forks": 7, - "placed": 1, - "on": 8, - "such": 1, - "each": 2, - "located": 2, - "between": 1, - "left": 3, - "hand": 6, - "philosopher": 5, - "right": 3, - "another": 1, - "philosopher.": 1, - "Each": 4, - "does": 1, - "following": 6, - "routine": 1, - "repeatedly": 1, - "thinking": 1, - "dining.": 1, - "order": 1, - "dine": 1, - "needs": 2, - "first": 2, - "acquire": 1, - "two": 3, - "one": 3, - "his": 4, - "side": 2, - "other": 2, - "side.": 2, - "After": 2, - "finishing": 1, - "dining": 1, - "puts": 2, - "acquired": 1, - "onto": 1, - "A": 6, - "Variant": 1, - "twist": 1, - "added": 1, - "original": 1, - "version": 1, - "

": 1, - "used": 1, - "it": 2, - "becomes": 1, - "be": 9, - "put": 1, - "tray": 2, - "for": 15, - "dirty": 2, - "forks.": 1, - "cleaner": 2, - "who": 1, - "cleans": 1, - "them": 2, - "back": 1, - "table.": 1, - "Channels": 1, - "Communication": 1, - "just": 1, - "shared": 1, - "queue": 1, - "fixed": 1, - "capacity.": 1, - "functions": 1, - "inserting": 1, - "element": 5, - "into": 3, - "taking": 1, - "given": 4, - "

": 7,
-      "class=": 6,
-      "#pats2xhtml_sats": 3,
-      "
": 7, - "If": 2, - "called": 2, - "full": 4, - "caller": 2, - "blocked": 3, - "until": 2, - "taken": 1, - "channel.": 2, - "empty": 1, - "inserted": 1, - "Channel": 2, - "Fork": 3, - "Forks": 1, - "resources": 1, - "type.": 1, - "initially": 1, - "stored": 2, - "which": 2, - "can": 4, - "obtained": 2, - "calling": 2, - "function": 3, - "defined": 1, - "natural": 1, - "numbers": 1, - "less": 1, - "than": 1, - "channels": 4, - "storing": 3, - "chosen": 3, - "capacity": 3, - "reason": 1, - "store": 1, - "most": 1, - "guarantee": 1, - "these": 1, - "never": 2, - "so": 2, - "attempt": 1, - "made": 1, - "send": 1, - "signals": 1, - "awake": 1, - "callers": 1, - "supposedly": 1, - "being": 2, - "due": 1, - "Tray": 1, - "instead": 1, - "become": 1, - "as": 4, - "only": 1, - "total": 1, - "Philosopher": 1, - "Loop": 2, - "implemented": 2, - "loop": 2, - "#pats2xhtml_dats": 3, - "It": 2, - "should": 3, - "straighforward": 2, - "follow": 2, - "Cleaner": 1, - "finds": 1, - "number": 2, - "uses": 1, - "locate": 1, - "fork.": 1, - "Its": 1, - "actual": 1, - "follows": 1, - "now": 1, - "Testing": 1, - "entire": 1, - "files": 1, - "DiningPhil2.sats": 1, - "DiningPhil2.dats": 1, - "DiningPhil2_fork.dats": 1, - "DiningPhil2_thread.dats": 1, - "Makefile": 1, - "available": 1, - "compiling": 1, - "source": 1, - "excutable": 1, - "testing.": 1, - "One": 1, - "able": 1, - "encounter": 1, - "after": 1, - "running": 1, - "simulation": 1, - "while.": 1, - "
": 1, - "size=": 1, - "This": 1, - "written": 1, - "href=": 1, - "Hongwei": 1, - "Xi": 1, - "
": 1, - "": 1, - "": 1, - "main": 1, - "fprint_filsub": 1 - }, - "Agda": { - "module": 3, - "NatCat": 1, - "where": 2, - "open": 2, - "import": 2, - "Relation.Binary.PropositionalEquality": 1, - "-": 21, - "If": 1, - "you": 2, - "can": 1, - "show": 1, - "that": 1, - "a": 1, - "relation": 1, - "only": 1, - "ever": 1, - "has": 1, - "one": 1, - "inhabitant": 5, - "get": 1, - "the": 1, - "category": 1, - "laws": 1, - "for": 1, - "free": 1, - "EasyCategory": 3, - "(": 36, - "obj": 4, - "Set": 2, - ")": 36, - "_": 6, - "{": 10, - "x": 34, - "y": 28, - "z": 18, - "}": 10, - "id": 9, - "single": 4, - "r": 26, - "s": 29, - "assoc": 2, - "w": 4, - "t": 6, - "Data.Nat": 1, - "same": 5, - ".0": 2, - "n": 14, - "refl": 6, - ".": 5, - "suc": 6, - "m": 6, - "cong": 1, - "trans": 5, - ".n": 1, - "zero": 1, - "Nat": 1 - }, - "Alloy": { - "module": 3, - "examples/systems/marksweepgc": 1, - "sig": 20, - "Node": 10, - "{": 54, - "}": 60, - "HeapState": 5, - "left": 3, - "right": 1, - "-": 41, - "lone": 6, - "marked": 1, - "set": 10, - "freeList": 1, - "pred": 16, - "clearMarks": 1, - "[": 82, - "hs": 16, - ".marked": 3, - ".right": 4, - "hs.right": 3, - "fun": 1, - "reachable": 1, - "n": 5, - "]": 80, - "+": 14, - "n.": 1, - "(": 12, - "hs.left": 2, - ")": 9, - "mark": 1, - "from": 2, - "hs.reachable": 1, - "setFreeList": 1, - ".freeList.*": 3, - ".left": 5, - "hs.marked": 1, - "GC": 1, - "root": 5, - "assert": 3, - "Soundness1": 2, - "all": 16, - "h": 9, - "live": 3, - "h.reachable": 1, - "|": 19, - "h.right": 1, - "Soundness2": 2, - "no": 8, - ".reachable": 2, - "h.GC": 1, - "in": 19, - ".freeList": 1, - "check": 6, - "for": 7, - "expect": 6, - "Completeness": 1, - "examples/systems/file_system": 1, - "abstract": 2, - "Object": 10, - "Name": 2, - "File": 1, - "extends": 10, - "some": 3, - "d": 3, - "Dir": 8, - "this": 14, - "d.entries.contents": 1, - "entries": 3, - "DirEntry": 2, - "parent": 3, - "this.": 4, - "@contents.": 1, - "@entries": 1, - "e1": 2, - "e2": 2, - "e1.name": 1, - "e2.name": 1, - "@parent": 2, - "Root": 5, - "one": 8, - "Cur": 1, - "name": 1, - "contents": 2, - "OneParent_buggyVersion": 2, - "d.parent": 2, - "OneParent_correctVersion": 2, - "&&": 2, - "contents.d": 1, - "NoDirAliases": 3, - "o": 1, - "o.": 1, - "examples/systems/views": 1, - "open": 2, - "util/ordering": 1, - "State": 16, - "as": 2, - "so": 1, - "util/relation": 1, - "rel": 1, - "Ref": 19, - "t": 16, - "b": 13, - "v": 25, - "views": 2, - "when": 1, - "is": 1, - "view": 2, - "of": 3, - "type": 1, - "backing": 1, - "dirty": 3, - "contains": 1, - "refs": 7, - "that": 1, - "have": 1, - "been": 1, - "invalidated": 1, - "obj": 1, - "ViewType": 8, - "anyviews": 2, - "visualization": 1, - "ViewType.views": 1, - "Map": 2, - "keys": 3, - "map": 2, - "s": 6, - "Ref.map": 1, - "s.refs": 3, - "MapRef": 4, - "fact": 4, - "State.obj": 3, - "Iterator": 2, - "done": 3, - "lastRef": 2, - "IteratorRef": 5, - "Set": 2, - "elts": 2, - "SetRef": 5, - "KeySetView": 6, - "State.views": 1, - "IteratorView": 3, - "s.views": 2, - "handle": 1, - "possibility": 1, - "modifying": 1, - "an": 1, - "object": 1, - "and": 1, - "its": 1, - "at": 1, - "once": 1, - "*": 1, - "should": 1, - "we": 1, - "limit": 1, - "frame": 1, - "conds": 1, - "to": 1, - "non": 1, - "*/": 1, - "modifies": 5, - "pre": 15, - "post": 14, - "rs": 4, - "let": 5, - "vr": 1, - "pre.views": 8, - "mods": 3, - "rs.*vr": 1, - "r": 3, - "pre.refs": 6, - "pre.obj": 10, - "post.obj": 7, - "viewFrame": 4, - "post.dirty": 1, - "pre.dirty": 1, - "allocates": 5, - "&": 3, - "post.refs": 1, - ".map": 3, - ".elts": 3, - "dom": 1, - "<:>": 1, - "setRefs": 1, - "MapRef.put": 1, - "k": 5, - "none": 4, - "post.views": 4, - "SetRef.iterator": 1, - "iterRef": 4, - "i": 7, - "i.left": 3, - "i.done": 1, - "i.lastRef": 1, - "IteratorRef.remove": 1, - ".lastRef": 2, - "IteratorRef.next": 1, - "ref": 3, - "IteratorRef.hasNext": 1, - "s.obj": 1, - "zippishOK": 2, - "ks": 6, - "vs": 6, - "m": 4, - "ki": 2, - "vi": 2, - "s0": 4, - "so/first": 1, - "s1": 4, - "so/next": 7, - "s2": 6, - "s3": 4, - "s4": 4, - "s5": 4, - "s6": 4, - "s7": 2, - "precondition": 2, - "s0.dirty": 1, - "ks.iterator": 1, - "vs.iterator": 1, - "ki.hasNext": 1, - "vi.hasNext": 1, - "ki.this/next": 1, - "vi.this/next": 1, - "m.put": 1, - "ki.remove": 1, - "vi.remove": 1, - "State.dirty": 1, - "ViewType.pre.views": 2, - "but": 1, - "#s.obj": 1, - "<": 1 - }, - "Ant Build System": { - "": 2, - "version=": 2, - "encoding=": 2, - "": 2, - "name=": 64, - "": 2, - "": 32, - "file=": 38, - "": 2, - "property=": 4, - "": 2, - "": 34, - "location=": 32, - "": 30, - "depends=": 30, - "description=": 16, - "": 2, - "": 2, - "": 2 - }, - "ApacheConf": { - "ServerSignature": 1, - "Off": 1, - "RewriteCond": 15, - "%": 48, - "{": 16, - "REQUEST_METHOD": 1, - "}": 16, - "(": 16, - "HEAD": 1, - "|": 80, - "TRACE": 1, - "DELETE": 1, - "TRACK": 1, - ")": 17, - "[": 17, - "NC": 13, - "OR": 14, - "]": 17, - "THE_REQUEST": 1, - "r": 1, - "n": 1, - "A": 6, - "D": 6, - "HTTP_REFERER": 1, - "<|>": 6, - "C": 5, - "E": 5, - "HTTP_COOKIE": 1, - "REQUEST_URI": 1, - "/": 3, - ";": 2, - "<": 1, - ".": 7, - "HTTP_USER_AGENT": 5, - "java": 1, - "curl": 2, - "wget": 2, - "winhttp": 1, - "HTTrack": 1, - "clshttp": 1, - "archiver": 1, - "loader": 1, - "email": 1, - "harvest": 1, - "extract": 1, - "grab": 1, - "miner": 1, - "libwww": 1, - "-": 43, - "perl": 1, - "python": 1, - "nikto": 1, - "scan": 1, - "#Block": 1, - "mySQL": 1, - "injects": 1, - "QUERY_STRING": 5, - ".*": 3, - "*": 1, - "union": 1, - "select": 1, - "insert": 1, - "cast": 1, - "set": 1, - "declare": 1, - "drop": 1, - "update": 1, - "md5": 1, - "benchmark": 1, - "./": 1, - "localhost": 1, - "loopback": 1, - ".0": 2, - ".1": 1, - "a": 1, - "z0": 1, - "RewriteRule": 1, - "index.php": 1, - "F": 1, - "#": 182, - "ServerRoot": 2, - "#Listen": 2, - "Listen": 2, - "LoadModule": 126, - "authn_file_module": 2, - "/usr/lib/apache2/modules/mod_authn_file.so": 1, - "authn_dbm_module": 2, - "/usr/lib/apache2/modules/mod_authn_dbm.so": 1, - "authn_anon_module": 2, - "/usr/lib/apache2/modules/mod_authn_anon.so": 1, - "authn_dbd_module": 2, - "/usr/lib/apache2/modules/mod_authn_dbd.so": 1, - "authn_default_module": 2, - "/usr/lib/apache2/modules/mod_authn_default.so": 1, - "authn_alias_module": 1, - "/usr/lib/apache2/modules/mod_authn_alias.so": 1, - "authz_host_module": 2, - "/usr/lib/apache2/modules/mod_authz_host.so": 1, - "authz_groupfile_module": 2, - "/usr/lib/apache2/modules/mod_authz_groupfile.so": 1, - "authz_user_module": 2, - "/usr/lib/apache2/modules/mod_authz_user.so": 1, - "authz_dbm_module": 2, - "/usr/lib/apache2/modules/mod_authz_dbm.so": 1, - "authz_owner_module": 2, - "/usr/lib/apache2/modules/mod_authz_owner.so": 1, - "authnz_ldap_module": 1, - "/usr/lib/apache2/modules/mod_authnz_ldap.so": 1, - "authz_default_module": 2, - "/usr/lib/apache2/modules/mod_authz_default.so": 1, - "auth_basic_module": 2, - "/usr/lib/apache2/modules/mod_auth_basic.so": 1, - "auth_digest_module": 2, - "/usr/lib/apache2/modules/mod_auth_digest.so": 1, - "file_cache_module": 1, - "/usr/lib/apache2/modules/mod_file_cache.so": 1, - "cache_module": 2, - "/usr/lib/apache2/modules/mod_cache.so": 1, - "disk_cache_module": 2, - "/usr/lib/apache2/modules/mod_disk_cache.so": 1, - "mem_cache_module": 2, - "/usr/lib/apache2/modules/mod_mem_cache.so": 1, - "dbd_module": 2, - "/usr/lib/apache2/modules/mod_dbd.so": 1, - "dumpio_module": 2, - "/usr/lib/apache2/modules/mod_dumpio.so": 1, - "ext_filter_module": 2, - "/usr/lib/apache2/modules/mod_ext_filter.so": 1, - "include_module": 2, - "/usr/lib/apache2/modules/mod_include.so": 1, - "filter_module": 2, - "/usr/lib/apache2/modules/mod_filter.so": 1, - "charset_lite_module": 1, - "/usr/lib/apache2/modules/mod_charset_lite.so": 1, - "deflate_module": 2, - "/usr/lib/apache2/modules/mod_deflate.so": 1, - "ldap_module": 1, - "/usr/lib/apache2/modules/mod_ldap.so": 1, - "log_forensic_module": 2, - "/usr/lib/apache2/modules/mod_log_forensic.so": 1, - "env_module": 2, - "/usr/lib/apache2/modules/mod_env.so": 1, - "mime_magic_module": 2, - "/usr/lib/apache2/modules/mod_mime_magic.so": 1, - "cern_meta_module": 2, - "/usr/lib/apache2/modules/mod_cern_meta.so": 1, - "expires_module": 2, - "/usr/lib/apache2/modules/mod_expires.so": 1, - "headers_module": 2, - "/usr/lib/apache2/modules/mod_headers.so": 1, - "ident_module": 2, - "/usr/lib/apache2/modules/mod_ident.so": 1, - "usertrack_module": 2, - "/usr/lib/apache2/modules/mod_usertrack.so": 1, - "unique_id_module": 2, - "/usr/lib/apache2/modules/mod_unique_id.so": 1, - "setenvif_module": 2, - "/usr/lib/apache2/modules/mod_setenvif.so": 1, - "version_module": 2, - "/usr/lib/apache2/modules/mod_version.so": 1, - "proxy_module": 2, - "/usr/lib/apache2/modules/mod_proxy.so": 1, - "proxy_connect_module": 2, - "/usr/lib/apache2/modules/mod_proxy_connect.so": 1, - "proxy_ftp_module": 2, - "/usr/lib/apache2/modules/mod_proxy_ftp.so": 1, - "proxy_http_module": 2, - "/usr/lib/apache2/modules/mod_proxy_http.so": 1, - "proxy_ajp_module": 2, - "/usr/lib/apache2/modules/mod_proxy_ajp.so": 1, - "proxy_balancer_module": 2, - "/usr/lib/apache2/modules/mod_proxy_balancer.so": 1, - "ssl_module": 4, - "/usr/lib/apache2/modules/mod_ssl.so": 1, - "mime_module": 4, - "/usr/lib/apache2/modules/mod_mime.so": 1, - "dav_module": 2, - "/usr/lib/apache2/modules/mod_dav.so": 1, - "status_module": 2, - "/usr/lib/apache2/modules/mod_status.so": 1, - "autoindex_module": 2, - "/usr/lib/apache2/modules/mod_autoindex.so": 1, - "asis_module": 2, - "/usr/lib/apache2/modules/mod_asis.so": 1, - "info_module": 2, - "/usr/lib/apache2/modules/mod_info.so": 1, - "suexec_module": 1, - "/usr/lib/apache2/modules/mod_suexec.so": 1, - "cgid_module": 3, - "/usr/lib/apache2/modules/mod_cgid.so": 1, - "cgi_module": 2, - "/usr/lib/apache2/modules/mod_cgi.so": 1, - "dav_fs_module": 2, - "/usr/lib/apache2/modules/mod_dav_fs.so": 1, - "dav_lock_module": 1, - "/usr/lib/apache2/modules/mod_dav_lock.so": 1, - "vhost_alias_module": 2, - "/usr/lib/apache2/modules/mod_vhost_alias.so": 1, - "negotiation_module": 2, - "/usr/lib/apache2/modules/mod_negotiation.so": 1, - "dir_module": 4, - "/usr/lib/apache2/modules/mod_dir.so": 1, - "imagemap_module": 2, - "/usr/lib/apache2/modules/mod_imagemap.so": 1, - "actions_module": 2, - "/usr/lib/apache2/modules/mod_actions.so": 1, - "speling_module": 2, - "/usr/lib/apache2/modules/mod_speling.so": 1, - "userdir_module": 2, - "/usr/lib/apache2/modules/mod_userdir.so": 1, - "alias_module": 4, - "/usr/lib/apache2/modules/mod_alias.so": 1, - "rewrite_module": 2, - "/usr/lib/apache2/modules/mod_rewrite.so": 1, - "": 17, - "mpm_netware_module": 2, - "User": 2, - "daemon": 2, - "Group": 2, - "": 17, - "ServerAdmin": 2, - "you@example.com": 2, - "#ServerName": 2, - "www.example.com": 2, - "DocumentRoot": 2, - "": 6, - "Options": 6, - "FollowSymLinks": 4, - "AllowOverride": 6, - "None": 8, - "Order": 10, - "deny": 10, - "allow": 10, - "Deny": 6, - "from": 10, - "all": 10, - "": 6, - "usr": 2, - "share": 1, - "apache2": 1, - "default": 1, - "site": 1, - "htdocs": 1, - "Indexes": 2, - "Allow": 4, - "DirectoryIndex": 2, - "index.html": 2, - "": 2, - "ht": 1, - "Satisfy": 4, - "All": 4, - "": 2, - "ErrorLog": 2, - "/var/log/apache2/error_log": 1, - "LogLevel": 2, - "warn": 2, - "log_config_module": 3, - "LogFormat": 6, - "combined": 4, - "common": 4, - "logio_module": 3, - "combinedio": 2, - "CustomLog": 2, - "/var/log/apache2/access_log": 2, - "#CustomLog": 2, - "ScriptAlias": 1, - "/cgi": 2, - "bin/": 2, - "#Scriptsock": 2, - "/var/run/apache2/cgisock": 1, - "lib": 1, - "cgi": 3, - "bin": 1, - "DefaultType": 2, - "text/plain": 2, - "TypesConfig": 2, - "/etc/apache2/mime.types": 1, - "#AddType": 4, - "application/x": 6, - "gzip": 6, - ".tgz": 6, - "#AddEncoding": 4, - "x": 4, - "compress": 4, - ".Z": 4, - ".gz": 4, - "AddType": 4, - "#AddHandler": 4, - "script": 2, - ".cgi": 2, - "type": 2, - "map": 2, - "var": 2, - "text/html": 2, - ".shtml": 4, - "#AddOutputFilter": 2, - "INCLUDES": 2, - "#MIMEMagicFile": 2, - "/etc/apache2/magic": 1, - "#ErrorDocument": 8, - "/missing.html": 2, - "http": 2, - "//www.example.com/subscription_info.html": 2, - "#EnableMMAP": 2, - "off": 5, - "#EnableSendfile": 2, - "#Include": 17, - "/etc/apache2/extra/httpd": 11, - "mpm.conf": 2, - "multilang": 2, - "errordoc.conf": 2, - "autoindex.conf": 2, - "languages.conf": 2, - "userdir.conf": 2, - "info.conf": 2, - "vhosts.conf": 2, - "manual.conf": 2, - "dav.conf": 2, - "default.conf": 2, - "ssl.conf": 2, - "SSLRandomSeed": 4, - "startup": 2, - "builtin": 4, - "connect": 2, - "libexec/apache2/mod_authn_file.so": 1, - "libexec/apache2/mod_authn_dbm.so": 1, - "libexec/apache2/mod_authn_anon.so": 1, - "libexec/apache2/mod_authn_dbd.so": 1, - "libexec/apache2/mod_authn_default.so": 1, - "libexec/apache2/mod_authz_host.so": 1, - "libexec/apache2/mod_authz_groupfile.so": 1, - "libexec/apache2/mod_authz_user.so": 1, - "libexec/apache2/mod_authz_dbm.so": 1, - "libexec/apache2/mod_authz_owner.so": 1, - "libexec/apache2/mod_authz_default.so": 1, - "libexec/apache2/mod_auth_basic.so": 1, - "libexec/apache2/mod_auth_digest.so": 1, - "libexec/apache2/mod_cache.so": 1, - "libexec/apache2/mod_disk_cache.so": 1, - "libexec/apache2/mod_mem_cache.so": 1, - "libexec/apache2/mod_dbd.so": 1, - "libexec/apache2/mod_dumpio.so": 1, - "reqtimeout_module": 1, - "libexec/apache2/mod_reqtimeout.so": 1, - "libexec/apache2/mod_ext_filter.so": 1, - "libexec/apache2/mod_include.so": 1, - "libexec/apache2/mod_filter.so": 1, - "substitute_module": 1, - "libexec/apache2/mod_substitute.so": 1, - "libexec/apache2/mod_deflate.so": 1, - "libexec/apache2/mod_log_config.so": 1, - "libexec/apache2/mod_log_forensic.so": 1, - "libexec/apache2/mod_logio.so": 1, - "libexec/apache2/mod_env.so": 1, - "libexec/apache2/mod_mime_magic.so": 1, - "libexec/apache2/mod_cern_meta.so": 1, - "libexec/apache2/mod_expires.so": 1, - "libexec/apache2/mod_headers.so": 1, - "libexec/apache2/mod_ident.so": 1, - "libexec/apache2/mod_usertrack.so": 1, - "#LoadModule": 4, - "libexec/apache2/mod_unique_id.so": 1, - "libexec/apache2/mod_setenvif.so": 1, - "libexec/apache2/mod_version.so": 1, - "libexec/apache2/mod_proxy.so": 1, - "libexec/apache2/mod_proxy_connect.so": 1, - "libexec/apache2/mod_proxy_ftp.so": 1, - "libexec/apache2/mod_proxy_http.so": 1, - "proxy_scgi_module": 1, - "libexec/apache2/mod_proxy_scgi.so": 1, - "libexec/apache2/mod_proxy_ajp.so": 1, - "libexec/apache2/mod_proxy_balancer.so": 1, - "libexec/apache2/mod_ssl.so": 1, - "libexec/apache2/mod_mime.so": 1, - "libexec/apache2/mod_dav.so": 1, - "libexec/apache2/mod_status.so": 1, - "libexec/apache2/mod_autoindex.so": 1, - "libexec/apache2/mod_asis.so": 1, - "libexec/apache2/mod_info.so": 1, - "libexec/apache2/mod_cgi.so": 1, - "libexec/apache2/mod_dav_fs.so": 1, - "libexec/apache2/mod_vhost_alias.so": 1, - "libexec/apache2/mod_negotiation.so": 1, - "libexec/apache2/mod_dir.so": 1, - "libexec/apache2/mod_imagemap.so": 1, - "libexec/apache2/mod_actions.so": 1, - "libexec/apache2/mod_speling.so": 1, - "libexec/apache2/mod_userdir.so": 1, - "libexec/apache2/mod_alias.so": 1, - "libexec/apache2/mod_rewrite.so": 1, - "perl_module": 1, - "libexec/apache2/mod_perl.so": 1, - "php5_module": 1, - "libexec/apache2/libphp5.so": 1, - "hfs_apple_module": 1, - "libexec/apache2/mod_hfs_apple.so": 1, - "mpm_winnt_module": 1, - "_www": 2, - "Library": 2, - "WebServer": 2, - "Documents": 1, - "MultiViews": 1, - "Hh": 1, - "Tt": 1, - "Dd": 1, - "Ss": 2, - "_": 1, - "": 1, - "rsrc": 1, - "": 1, - "": 1, - "namedfork": 1, - "": 1, - "ScriptAliasMatch": 1, - "i": 1, - "webobjects": 1, - "/private/var/run/cgisock": 1, - "CGI": 1, - "Executables": 1, - "/private/etc/apache2/mime.types": 1, - "/private/etc/apache2/magic": 1, - "#MaxRanges": 1, - "unlimited": 1, - "TraceEnable": 1, - "Include": 6, - "/private/etc/apache2/extra/httpd": 11, - "/private/etc/apache2/other/*.conf": 1 - }, - "Apex": { - "global": 70, - "class": 7, - "LanguageUtils": 1, - "{": 219, - "static": 83, - "final": 6, - "String": 60, - "HTTP_LANGUAGE_CODE_PARAMETER_KEY": 2, - ";": 308, - "DEFAULT_LANGUAGE_CODE": 3, - "Set": 6, - "": 30, - "SUPPORTED_LANGUAGE_CODES": 2, - "new": 60, - "//Chinese": 2, - "(": 481, - "Simplified": 1, - ")": 481, - "Traditional": 1, - "//Dutch": 1, - "//English": 1, - "//Finnish": 1, - "//French": 1, - "//German": 1, - "//Italian": 1, - "//Japanese": 1, - "//Korean": 1, - "//Polish": 1, - "//Portuguese": 1, - "Brazilian": 1, - "//Russian": 1, - "//Spanish": 1, - "//Swedish": 1, - "//Thai": 1, - "//Czech": 1, - "//Danish": 1, - "//Hungarian": 1, - "//Indonesian": 1, - "//Turkish": 1, - "}": 219, - "private": 10, - "Map": 33, - "": 29, - "DEFAULTS": 1, - "getLangCodeByHttpParam": 4, - "returnValue": 22, - "null": 92, - "LANGUAGE_CODE_SET": 1, - "getSuppLangCodeSet": 2, - "if": 91, - "ApexPages.currentPage": 4, - "&&": 46, - ".getParameters": 2, - "LANGUAGE_HTTP_PARAMETER": 7, - "StringUtils.lowerCase": 3, - "StringUtils.replaceChars": 2, - ".get": 4, - "//underscore": 1, - "//dash": 1, - "DEFAULTS.containsKey": 3, - "DEFAULTS.get": 3, - "StringUtils.isNotBlank": 1, - "SUPPORTED_LANGUAGE_CODES.contains": 2, - "return": 106, - "getLangCodeByBrowser": 4, - "LANGUAGES_FROM_BROWSER_AS_STRING": 2, - ".getHeaders": 1, - "List": 71, - "LANGUAGES_FROM_BROWSER_AS_LIST": 3, - "splitAndFilterAcceptLanguageHeader": 2, - "LANGUAGES_FROM_BROWSER_AS_LIST.size": 1, - "for": 24, - "languageFromBrowser": 6, - "getLangCodeByUser": 3, - "UserInfo.getLanguage": 1, - "getLangCodeByHttpParamOrIfNullThenBrowser": 1, - "StringUtils.defaultString": 4, - "getLangCodeByHttpParamOrIfNullThenUser": 1, - "getLangCodeByBrowserOrIfNullThenHttpParam": 1, - "getLangCodeByBrowserOrIfNullThenUser": 1, - "header": 2, - "returnList": 11, - "[": 102, - "]": 102, - "tokens": 3, - "StringUtils.split": 1, - "token": 7, - "token.contains": 1, - "token.substring": 1, - "token.indexOf": 1, - "returnList.add": 8, - "StringUtils.length": 1, - "StringUtils.substring": 1, - "langCodes": 2, - "langCode": 3, - "langCodes.add": 1, - "getLanguageName": 1, - "displayLanguageCode": 13, - "languageCode": 2, - "translatedLanguageNames.get": 2, - "filterLanguageCode": 4, - "getAllLanguages": 3, - "translatedLanguageNames.containsKey": 1, - "<": 32, - "translatedLanguageNames": 1, - "TwilioAPI": 2, - "MissingTwilioConfigCustomSettingsException": 2, - "extends": 1, - "Exception": 1, - "TwilioRestClient": 5, - "client": 2, - "public": 10, - "getDefaultClient": 2, - "TwilioConfig__c": 5, - "twilioCfg": 7, - "getTwilioConfig": 3, - "TwilioAPI.client": 2, - "twilioCfg.AccountSid__c": 3, - "twilioCfg.AuthToken__c": 3, - "TwilioAccount": 1, - "getDefaultAccount": 1, - ".getAccount": 2, - "TwilioCapability": 2, - "createCapability": 1, - "createClient": 1, - "accountSid": 2, - "authToken": 2, - "Test.isRunningTest": 1, - "//": 11, - "dummy": 2, - "sid": 1, - "else": 25, - "TwilioConfig__c.getOrgDefaults": 1, - "throw": 6, - "@isTest": 1, - "void": 9, - "test_TwilioAPI": 1, - "System.assertEquals": 5, - "TwilioAPI.getTwilioConfig": 2, - ".AccountSid__c": 1, - ".AuthToken__c": 1, - "TwilioAPI.getDefaultClient": 2, - ".getAccountSid": 1, - ".getSid": 2, - "TwilioAPI.getDefaultAccount": 1, - "GeoUtils": 1, - "generate": 1, - "a": 6, - "KML": 1, - "string": 7, - "given": 2, - "page": 1, - "reference": 1, - "call": 1, - "getContent": 1, - "then": 1, - "cleanup": 1, - "the": 4, - "output.": 1, - "generateFromContent": 1, - "PageReference": 2, - "pr": 1, - "ret": 7, - "try": 1, - "pr.getContent": 1, - ".toString": 1, - "ret.replaceAll": 4, - "get": 4, - "content": 1, - "produces": 1, - "quote": 1, - "chars": 1, - "we": 1, - "need": 1, - "to": 4, - "escape": 1, - "these": 2, - "in": 1, - "node": 1, - "value": 10, - "catch": 1, - "exception": 1, - "e": 2, - "system.debug": 2, - "+": 75, - "must": 1, - "use": 1, - "ALL": 1, - "since": 1, - "many": 1, - "line": 1, - "may": 1, - "also": 1, - "": 2, - "geo_response": 1, - "accountAddressString": 2, - "account": 2, - "acct": 1, - "form": 1, - "an": 4, - "address": 1, - "object": 1, - "adr": 9, - "acct.billingstreet": 1, - "acct.billingcity": 1, - "acct.billingstate": 1, - "acct.billingpostalcode": 2, - "acct.billingcountry": 2, - "adr.replaceAll": 4, - "testmethod": 1, - "t1": 1, - "pageRef": 3, - "Page.kmlPreviewTemplate": 1, - "Test.setCurrentPage": 1, - "system.assert": 1, - "GeoUtils.generateFromContent": 1, - "Account": 2, - "name": 2, - "billingstreet": 1, - "billingcity": 1, - "billingstate": 1, - "billingpostalcode": 1, - "billingcountry": 1, - "insert": 1, - "system.assertEquals": 1, - "EmailUtils": 1, - "sendEmailWithStandardAttachments": 3, - "recipients": 11, - "emailSubject": 10, - "body": 8, - "Boolean": 38, - "useHTML": 6, - "": 1, - "attachmentIDs": 2, - "": 2, - "stdAttachments": 4, - "SELECT": 1, - "id": 1, - "FROM": 1, - "Attachment": 2, - "WHERE": 1, - "Id": 1, - "IN": 1, - "": 3, - "fileAttachments": 5, - "attachment": 1, - "Messaging.EmailFileAttachment": 2, - "fileAttachment": 2, - "fileAttachment.setFileName": 1, - "attachment.Name": 1, - "fileAttachment.setBody": 1, - "attachment.Body": 1, - "fileAttachments.add": 1, - "sendEmail": 4, - "sendTextEmail": 1, - "textBody": 2, - "false": 13, - "sendHTMLEmail": 1, - "htmlBody": 2, - "true": 12, - "recipients.size": 1, - "Messaging.SingleEmailMessage": 3, - "mail": 2, - "//the": 2, - "email": 1, - "is": 5, - "not": 3, - "saved": 1, - "as": 1, - "activity.": 1, - "mail.setSaveAsActivity": 1, - "mail.setToAddresses": 1, - "mail.setSubject": 1, - "mail.setBccSender": 1, - "mail.setUseSignature": 1, - "mail.setHtmlBody": 1, - "mail.setPlainTextBody": 1, - "fileAttachments.size": 1, - "mail.setFileAttachments": 1, - "Messaging.sendEmail": 1, - "isValidEmailAddress": 2, - "str": 10, - "str.trim": 3, - ".length": 2, - "split": 5, - "str.split": 1, - "split.size": 2, - ".split": 1, - "isNotValidEmailAddress": 1, - "ArrayUtils": 1, - "EMPTY_STRING_ARRAY": 1, - "Integer": 34, - "MAX_NUMBER_OF_ELEMENTS_IN_LIST": 5, - "objectToString": 1, - "": 22, - "objects": 3, - "strings": 3, - "objects.size": 1, - "Object": 23, - "obj": 3, - "instanceof": 1, - "strings.add": 1, - "reverse": 2, - "anArray": 14, - "i": 55, - "j": 10, - "anArray.size": 2, - "-": 18, - "tmp": 6, - "while": 8, - "SObject": 19, - "lowerCase": 1, - "strs": 9, - "strs.size": 3, - "returnValue.add": 3, - "str.toLowerCase": 1, - "upperCase": 1, - "str.toUpperCase": 1, - "trim": 1, - "mergex": 2, - "array1": 8, - "array2": 9, - "merged": 6, - "array1.size": 4, - "array2.size": 2, - "": 19, - "sObj": 4, - "merged.add": 2, - "isEmpty": 7, - "objectArray": 17, - "objectArray.size": 6, - "isNotEmpty": 4, - "pluck": 1, - "fieldName": 3, - "||": 12, - "fieldName.trim": 2, - "plucked": 3, - "toString": 3, - "assertArraysAreEqual": 2, - "expected": 16, - "actual": 16, - "//check": 2, - "see": 2, - "one": 2, - "param": 2, - "but": 2, - "other": 2, - "System.assert": 6, - "ArrayUtils.toString": 12, - "expected.size": 4, - "actual.size": 2, - "merg": 2, - "list1": 15, - "list2": 9, - "list1.size": 6, - "list2.size": 2, - "IllegalArgumentException": 5, - "elmt": 8, - "subset": 6, - "aList": 4, - "count": 10, - "startIndex": 9, - "<=>": 2, - "size": 2, - "1": 2, - "list1.get": 2, - "//LIST/ARRAY": 1, - "SORTING": 1, - "//FOR": 2, - "FORCE.COM": 1, - "PRIMITIVES": 1, - "Double": 1, - "ID": 1, - "etc.": 1, - "qsort": 18, - "theList": 72, - "PrimitiveComparator": 2, - "sortAsc": 24, - "ObjectComparator": 3, - "comparator": 14, - "theList.size": 2, - "SALESFORCE": 1, - "OBJECTS": 1, - "sObjects": 1, - "ISObjectComparator": 3, - "lo0": 6, - "hi0": 8, - "lo": 42, - "hi": 50, - "comparator.compare": 12, - "prs": 8, - "pivot": 14, - "/": 4, - "BooleanUtils": 1, - "isFalse": 1, - "bool": 32, - "isNotFalse": 1, - "isNotTrue": 1, - "isTrue": 1, - "negate": 1, - "toBooleanDefaultIfNull": 1, - "defaultVal": 2, - "toBoolean": 2, - "strToBoolean": 1, - "StringUtils.equalsIgnoreCase": 1, - "//Converts": 1, - "int": 1, - "boolean": 1, - "specifying": 1, - "conversion": 1, - "values.": 1, - "//Returns": 1, - "//Throws": 1, - "trueValue": 2, - "falseValue": 2, - "toInteger": 1, - "toStringYesNo": 1, - "toStringYN": 1, - "trueString": 2, - "falseString": 2, - "xor": 1, - "boolArray": 4, - "boolArray.size": 1, - "firstItem": 2 - }, - "AppleScript": { - "property": 7, - "type_list": 6, - "{": 32, - "}": 32, - "extension_list": 6, - "-": 57, - "html": 2, - "is": 40, - "not": 5, - "currently": 2, - "handled": 2, - "on": 18, - "run": 4, - "tell": 40, - "application": 16, - "to": 128, - "set": 108, - "FinderSelection": 4, - "the": 56, - "selection": 2, - "as": 27, - "alias": 8, - "list": 9, - "FS": 10, - "Ideally": 2, - "this": 2, - "could": 2, - "be": 2, - "passed": 2, - "open": 8, - "handler": 2, - "SelectionCount": 6, - "number": 6, - "of": 72, - "count": 10, - "if": 50, - "then": 28, - "userPicksFolder": 6, - "(": 89, - ")": 88, - "else": 14, - "MyPath": 4, - "path": 6, - "me": 2, - "item": 13, - "If": 2, - "I": 2, - "m": 2, - "a": 4, - "double": 2, - "clicked": 2, - "droplet": 2, - "end": 67, - "these_items": 18, - "choose": 2, - "file": 6, - "with": 11, - "prompt": 2, - "type": 6, - "thesefiles": 2, - "item_info": 24, - "repeat": 19, - "i": 10, - "from": 9, - "this_item": 14, - "info": 4, - "for": 5, - "folder": 10, - "true": 8, - "processFolder": 8, - "false": 9, - "and": 7, - "in": 13, - "or": 6, - "name": 8, - "extension": 4, - "theFilePath": 8, - "string": 17, - "thePOSIXFilePath": 8, - "POSIX": 4, - "processFile": 8, - "process": 5, - "folders": 2, - "theFolder": 6, - "without": 2, - "invisibles": 2, - "text": 13, - "&": 63, - "need": 1, - "pass": 1, - "URL": 1, - "Terminal": 1, - "thePOSIXFileName": 6, - "try": 10, - "terminalCommand": 6, - "convertCommand": 4, - "newFileName": 4, - "do": 4, - "shell": 2, - "script": 2, - "lowFontSize": 9, - "highFontSize": 6, - "messageText": 4, - "userInput": 4, - "display": 4, - "dialog": 4, - "return": 16, - "default": 4, - "answer": 3, - "buttons": 3, - "button": 4, - "returned": 5, - "minimumFontSize": 4, - "newFontSize": 6, - "result": 2, - "integer": 3, - "greater": 5, - "than": 6, - "equal": 3, - "theText": 3, - "exit": 1, - "fontList": 2, - "activate": 3, - "crazyTextMessage": 2, - "make": 3, - "new": 2, - "outgoing": 2, - "message": 2, - "properties": 2, - "content": 2, - "visible": 2, - "eachCharacter": 4, - "characters": 1, - "font": 2, - "some": 1, - "size": 5, - "random": 4, - "color": 1, - "localMailboxes": 3, - "every": 3, - "mailbox": 2, - "messageCountDisplay": 5, - "my": 3, - "getMessageCountsForMailboxes": 4, - "everyAccount": 2, - "account": 1, - "eachAccount": 3, - "accountMailboxes": 3, - "outputMessage": 2, - "subject": 1, - "theMailboxes": 2, - "mailboxes": 1, - "returns": 2, - "displayString": 4, - "eachMailbox": 4, - "mailboxName": 2, - "messageCount": 2, - "messages": 1, - "unreadCount": 2, - "unread": 1, - "padString": 3, - "theString": 4, - "fieldLength": 5, - "stringLength": 4, - "length": 1, - "paddedString": 5, - "character": 2, - "less": 1, - "paddingLength": 2, - "times": 1, - "space": 1, - "isVoiceOverRunning": 3, - "isRunning": 3, - "processes": 2, - "contains": 1, - "isVoiceOverRunningWithAppleScript": 3, - "isRunningWithAppleScript": 3, - "AppleScript": 2, - "enabled": 2, - "VoiceOver": 1, - "x": 1, - "bounds": 2, - "vo": 1, - "cursor": 1, - "error": 3, - "currentDate": 3, - "current": 3, - "date": 1, - "amPM": 4, - "currentHour": 9, - "s": 3, - "minutes": 2, - "<": 2, - "below": 1, - "sound": 1, - "nice": 1, - "currentMinutes": 4, - "ensure": 1, - "nn": 2, - "gets": 1, - "AM": 1, - "readjust": 1, - "hour": 1, - "time": 1, - "currentTime": 3, - "day": 1, - "output": 1, - "say": 1, - "delay": 3, - "pane": 4, - "UI": 1, - "elements": 1, - "tab": 1, - "group": 1, - "window": 5, - "click": 1, - "radio": 1, - "get": 1, - "value": 1, - "field": 1, - "windowWidth": 3, - "windowHeight": 3, - "delimiters": 1, - "screen_width": 2, - "JavaScript": 2, - "document": 2, - "screen_height": 2, - "myFrontMost": 3, - "first": 1, - "whose": 1, - "frontmost": 1, - "desktopTop": 2, - "desktopLeft": 1, - "desktopRight": 1, - "desktopBottom": 1, - "desktop": 1, - "w": 5, - "h": 4, - "drawer": 2, - "position": 1, - "/": 2 - }, - "Arduino": { - "void": 2, - "setup": 1, - "(": 4, - ")": 4, - "{": 2, - "Serial.begin": 1, - ";": 2, - "}": 2, - "loop": 1, - "Serial.print": 1 - }, - "AsciiDoc": { - "Document": 1, - "Title": 1, - "Doc": 1, - "Writer": 1, - "": 1, - "idprefix": 1, - "id_": 1, - "Preamble": 1, - "paragraph.": 4, - "NOTE": 1, - "This": 1, - "is": 1, - "test": 1, - "only": 1, - "a": 1, - "test.": 1, - "Section": 3, - "A": 2, - "*Section": 3, - "A*": 2, - "Subsection": 1, - "B": 2, - "B*": 1, - ".Section": 1, - "list": 1, - "*": 4, - "Item": 6, - "Gregory": 2, - "Rom": 2, - "has": 2, - "written": 2, - "an": 2, - "AsciiDoc": 3, - "plugin": 2, - "for": 2, - "the": 2, - "Redmine": 2, - "project": 2, - "management": 2, - "application.": 2, - "https": 1, - "//github.com/foo": 1, - "-": 4, - "users/foo": 1, - "vicmd": 1, - "gif": 1, - "tag": 1, - "rom": 2, - "[": 2, - "]": 2, - "end": 1, - "berschrift": 1, - "Codierungen": 1, - "sind": 1, - "verr": 1, - "ckt": 1, - "auf": 1, - "lteren": 1, - "Versionen": 1, - "von": 1, - "Ruby": 1, - "Home": 1, - "Page": 1, - "Example": 1, - "Articles": 1 - }, - "AspectJ": { - "package": 2, - "aspects.caching": 1, - ";": 29, - "import": 5, - "java.util.Map": 2, - "public": 6, - "abstract": 3, - "aspect": 2, - "OptimizeRecursionCache": 2, - "{": 11, - "@SuppressWarnings": 3, - "(": 46, - ")": 46, - "private": 1, - "Map": 3, - "_cache": 2, - "getCache": 2, - "}": 11, - "pointcut": 3, - "operation": 4, - "Object": 15, - "o": 16, - "topLevelOperation": 4, - "&&": 2, - "cflowbelow": 1, - "before": 1, - "System.out.println": 5, - "+": 7, - "around": 2, - "cachedValue": 4, - "_cache.get": 1, - "if": 2, - "null": 1, - "return": 5, - "proceed": 2, - "after": 2, - "returning": 2, - "result": 3, - "_cache.put": 1, - "_cache.size": 1, - "com.blogspot.miguelinlas3.aspectj.cache": 1, - "java.util.WeakHashMap": 1, - "org.aspectj.lang.JoinPoint": 1, - "com.blogspot.miguelinlas3.aspectj.cache.marker.Cachable": 1, - "CacheAspect": 1, - "cache": 3, - "Cachable": 2, - "cachable": 5, - "execution": 1, - "@Cachable": 2, - "*": 2, - "..": 1, - "@annotation": 1, - "String": 3, - "evaluatedKey": 6, - "this.evaluateKey": 1, - "cachable.scriptKey": 1, - "thisJoinPoint": 1, - "cache.containsKey": 1, - "this.cache.get": 1, - "value": 3, - "cache.put": 1, - "protected": 2, - "evaluateKey": 1, - "key": 2, - "JoinPoint": 1, - "joinPoint": 1, - "//": 1, - "TODO": 1, - "add": 1, - "some": 1, - "smart": 1, - "staff": 1, - "to": 1, - "allow": 1, - "simple": 1, - "scripting": 1, - "in": 1, - "annotation": 1, - "": 2, - "new": 1, - "WeakHashMap": 1 - }, - "Assembly": { - ";": 7, - "flat": 1, - "assembler": 2, - "interface": 1, - "for": 1, - "Win32": 1, - "Copyright": 1, - "(": 2, - "c": 1, - ")": 2, - "-": 2, - "Tomasz": 1, - "Grysztar.": 1, - "All": 1, - "rights": 1, - "reserved.": 1, - "format": 1, - "PE": 1, - "console": 1, - "section": 4, - "code": 1, - "readable": 4, - "executable": 1, - "start": 1, - "mov": 28, - "[": 25, - "con_handle": 2, - "]": 25, - "STD_OUTPUT_HANDLE": 1, - "esi": 12, - "_logo": 2, - "call": 25, - "display_string": 7, - "get_params": 2, - "jc": 3, - "information": 2, - "init_memory": 1, - "_memory_prefix": 2, - "eax": 18, - "memory_end": 1, - "sub": 4, - "memory_start": 1, - "add": 2, - "additional_memory_end": 1, - "additional_memory": 1, - "shr": 1, - "display_number": 5, - "_memory_suffix": 2, - "GetTickCount": 3, - "start_time": 3, - "preprocessor": 1, - "parser": 1, - "formatter": 1, - "display_user_messages": 1, - "movzx": 1, - "current_pass": 1, - "inc": 1, - "_passes_suffix": 2, - "xor": 5, - "edx": 15, - "ebx": 4, - "div": 2, - "or": 11, - "jz": 11, - "display_bytes_count": 2, - "push": 1, - "dl": 1, - "display_character": 1, - "pop": 1, - "_seconds_suffix": 2, - "written_size": 1, - "_bytes_suffix": 2, - "al": 48, - "jmp": 12, - "exit_program": 2, - "_usage": 2, - "input_file": 4, - "output_file": 3, - "symbols_file": 2, - "memory_setting": 3, - "passes_limit": 2, - "GetCommandLine": 2, - "edi": 4, - "params": 2, - "find_command_start": 2, - "lodsb": 11, - "cmp": 31, - "h": 23, - "je": 25, - "skip_quoted_name": 3, - "skip_name": 2, - "find_param": 7, - "all_params": 5, - "option_param": 2, - "Dh": 15, - "jne": 3, - "get_output_file": 2, - "process_param": 3, - "bad_params": 11, - "string_param": 3, - "copy_param": 2, - "stosb": 3, - "param_end": 6, - "string_param_end": 2, - "memory_option": 4, - "passes_option": 4, - "symbols_option": 3, - "stc": 2, - "ret": 4, - "get_option_value": 3, - "get_option_digit": 2, - "option_value_ok": 4, - "invalid_option_value": 5, - "ja": 2, - "imul": 1, - "jo": 1, - "dec": 4, - "clc": 2, - "shl": 1, - "jae": 1, - "dx": 1, - "find_symbols_file_name": 2, - "include": 15, - "data": 3, - "writeable": 2, - "_copyright": 1, - "db": 30, - "Ah": 9, - "VERSION_STRING": 1, - "align": 1, - "dd": 22, - "bytes_count": 1, - "displayed_count": 1, - "character": 1, - "last_displayed": 1, - "rb": 4, - "options": 1, - "buffer": 1, - "stack": 1, - "import": 1, - "rva": 16, - "kernel_name": 2, - "kernel_table": 2, - "ExitProcess": 1, - "_ExitProcess": 2, - "CreateFile": 1, - "_CreateFileA": 2, - "ReadFile": 1, - "_ReadFile": 2, - "WriteFile": 1, - "_WriteFile": 2, - "CloseHandle": 1, - "_CloseHandle": 2, - "SetFilePointer": 1, - "_SetFilePointer": 2, - "_GetCommandLineA": 2, - "GetEnvironmentVariable": 1, - "_GetEnvironmentVariable": 2, - "GetStdHandle": 1, - "_GetStdHandle": 2, - "VirtualAlloc": 1, - "_VirtualAlloc": 2, - "VirtualFree": 1, - "_VirtualFree": 2, - "_GetTickCount": 2, - "GetSystemTime": 1, - "_GetSystemTime": 2, - "GlobalMemoryStatus": 1, - "_GlobalMemoryStatus": 2, - "dw": 14, - "fixups": 1, - "discardable": 1, - "ORG": 7, - "SJMP": 3, - "START": 2, - "LCALL": 9, - "INT0_ISR": 2, - "RETI": 5, - "Bh": 2, - "T0_ISR": 2, - "INT1_ISR": 2, - "T1_ISR": 2, - "UART_ISR": 2, - "MOV": 9, - "A": 7, - "#11111110b": 2, - "SETB": 3, - "IT0": 1, - "Set": 1, - "External": 2, - "Interrupt": 2, - "to": 1, - "be": 1, - "falling": 1, - "edge": 1, - "triggered": 1, - "EX0": 1, - "Enable": 2, - "Interrut": 1, - "EA": 1, - "LEFT": 3, - "CJNE": 2, - "#01111111b": 1, - "LOOP1": 2, - "JMP": 2, - "RIGHT": 3, - "P1": 4, - "RL": 1, - "DELAY": 5, - "LOOP2": 2, - "RR": 1, - "R1": 2, - "#3": 1, - "FLASH": 2, - "#00h": 1, - "#0FFh": 1, - "DJNZ": 4, - "RET": 6, - "R5": 2, - "#20": 1, - "R5*20": 1, - "mS": 1, - "D1": 2, - "R6": 2, - "#40": 1, - "D2": 2, - "R7": 2, - "#249": 1, - "END": 1 - }, - "AutoHotkey": { - "MsgBox": 1, - "Hello": 1, - "World": 1 - }, - "Awk": { - "SHEBANG#!awk": 1, - "BEGIN": 1, - "{": 17, - "n": 13, - ";": 55, - "printf": 1, - "network_max_bandwidth_in_byte": 3, - "network_max_packet_per_second": 3, - "last3": 3, - "last4": 3, - "last5": 3, - "last6": 3, - "}": 17, - "if": 14, - "(": 14, - "/Average/": 1, - ")": 14, - "#": 48, - "Skip": 1, - "the": 12, - "Average": 1, - "values": 1, - "next": 1, - "/all/": 1, - "This": 8, - "is": 7, - "cpu": 1, - "info": 7, - "print": 35, - "FILENAME": 35, - "-": 2, - "/eth0/": 1, - "eth0": 1, - "network": 1, - "Total": 9, - "number": 9, - "of": 22, - "packets": 4, - "received": 4, - "per": 14, - "second.": 8, - "else": 4, - "transmitted": 4, - "bytes": 4, - "/proc": 1, - "|": 4, - "cswch": 1, - "tps": 1, - "kbmemfree": 1, - "totsck/": 1, - "/": 2, - "[": 1, - "]": 1, - "proc/s": 1, - "context": 1, - "switches": 1, - "second": 6, - "disk": 1, - "total": 1, - "transfers": 1, - "read": 1, - "requests": 2, - "write": 1, - "block": 2, - "reads": 1, - "writes": 1, - "mem": 1, - "Amount": 7, - "free": 2, - "memory": 6, - "available": 1, - "in": 11, - "kilobytes.": 7, - "used": 8, - "does": 1, - "not": 1, - "take": 1, - "into": 1, - "account": 1, - "by": 4, - "kernel": 3, - "itself.": 1, - "Percentage": 2, - "memory.": 1, - "X": 1, - "shared": 1, - "system": 1, - "Always": 1, - "zero": 1, - "with": 1, - "kernels.": 1, - "as": 1, - "buffers": 1, - "to": 1, - "cache": 1, - "data": 1, - "swap": 3, - "space": 2, - "space.": 1, - "socket": 1, - "sockets.": 1, - "Number": 4, - "TCP": 1, - "sockets": 3, - "currently": 4, - "use.": 4, - "UDP": 1, - "RAW": 1, - "IP": 1, - "fragments": 1, - "END": 1 - }, - "BlitzBasic": { - ";": 57, - "Double": 2, - "-": 24, - "linked": 2, - "list": 32, - "container": 1, - "class": 1, - "with": 3, - "thanks": 1, - "to": 11, - "MusicianKool": 3, - "for": 3, - "concept": 1, - "and": 9, - "issue": 1, - "fixes": 1, - "Type": 8, - "LList": 3, - "Field": 10, - "head_.ListNode": 1, - "tail_.ListNode": 1, - "End": 58, - "ListNode": 8, - "pv_.ListNode": 1, - "nx_.ListNode": 1, - "Value": 37, - "Iterator": 2, - "l_.LList": 1, - "cn_.ListNode": 1, - "cni_": 8, - "Create": 4, - "a": 46, - "new": 4, - "object": 2, - "Function": 101, - "CreateList.LList": 1, - "(": 125, - ")": 126, - "Local": 34, - "l.LList": 20, - "New": 11, - "l": 84, - "head_": 35, - "tail_": 34, - "nx_": 33, - "caps": 1, - "pv_": 27, - "These": 1, - "make": 1, - "it": 1, - "more": 1, - "or": 4, - "less": 1, - "safe": 1, - "iterate": 2, - "freely": 1, - "Return": 36, - "Free": 1, - "all": 3, - "elements": 4, - "not": 4, - "any": 1, - "values": 4, - "FreeList": 1, - "ClearList": 2, - "Delete": 6, - "Remove": 7, - "the": 52, - "from": 15, - "does": 1, - "free": 1, - "n.ListNode": 12, - "While": 7, - "n": 54, - "<": 18, - "nx.ListNode": 1, - "nx": 1, - "Wend": 6, - "Count": 1, - "number": 1, - "of": 16, - "in": 4, - "slow": 3, - "ListLength": 2, - "i.Iterator": 6, - "GetIterator": 3, - "elems": 4, - "EachIn": 5, - "i": 49, - "+": 11, - "True": 4, - "if": 2, - "contains": 1, - "given": 7, - "value": 16, - "ListContains": 1, - "ListFindNode": 2, - "Null": 15, - "intvalues": 1, - "bank": 8, - "ListFromBank.LList": 1, - "CreateList": 2, - "size": 4, - "BankSize": 1, - "p": 7, - "For": 6, - "To": 6, - "Step": 2, - "ListAddLast": 2, - "PeekInt": 4, - "Next": 7, - "containing": 3, - "ListToBank": 1, - "*": 2, - "CreateBank": 5, - "PokeInt": 2, - "Swap": 1, - "contents": 1, - "two": 1, - "objects": 1, - "SwapLists": 1, - "l1.LList": 1, - "l2.LList": 1, - "tempH.ListNode": 1, - "l1": 4, - "tempT.ListNode": 1, - "l2": 4, - "tempH": 1, - "tempT": 1, - "same": 1, - "as": 2, - "first": 5, - "CopyList.LList": 1, - "lo.LList": 1, - "ln.LList": 1, - "lo": 1, - "ln": 2, - "Reverse": 1, - "order": 1, - "ReverseList": 1, - "n1.ListNode": 1, - "n2.ListNode": 1, - "tmp.ListNode": 1, - "n1": 5, - "n2": 6, - "tmp": 4, - "Search": 1, - "retrieve": 1, - "node": 8, - "ListFindNode.ListNode": 1, - "If": 25, - "Then": 18, - "Append": 1, - "end": 5, - "fast": 2, - "return": 7, - "ListAddLast.ListNode": 1, - "Attach": 1, - "start": 13, - "ListAddFirst.ListNode": 1, - "occurence": 1, - "ListRemove": 1, - "RemoveListNode": 6, - "element": 4, - "at": 5, - "position": 4, - "backwards": 2, - "negative": 2, - "index": 13, - "ValueAtIndex": 1, - "ListNodeAtIndex": 3, - "Else": 7, - "invalid": 1, - "ListNodeAtIndex.ListNode": 1, - "e": 4, - "Beyond": 1, - "valid": 2, - "Negative": 1, - "count": 1, - "backward": 1, - "Before": 3, - "EndIf": 7, - "Replace": 1, - "added": 2, - "by": 3, - "ReplaceValueAtIndex": 1, - "RemoveNodeAtIndex": 1, - "tval": 3, - "Retrieve": 2, - "ListFirst": 1, - "last": 2, - "ListLast": 1, - "its": 2, - "ListRemoveFirst": 1, - "val": 6, - "ListRemoveLast": 1, - "Insert": 3, - "into": 2, - "before": 2, - "specified": 2, - "InsertBeforeNode.ListNode": 1, - "bef.ListNode": 1, - "bef": 7, - "after": 1, - "then": 1, - "InsertAfterNode.ListNode": 1, - "aft.ListNode": 1, - "aft": 7, - "Get": 1, - "an": 4, - "iterator": 4, - "use": 1, - "loop": 2, - "This": 1, - "function": 1, - "means": 1, - "that": 1, - "most": 1, - "programs": 1, - "won": 1, - "s": 12, - "available": 1, - "moment": 1, - "l_": 7, - "Exit": 1, - "there": 1, - "wasn": 1, - "t": 1, - "create": 1, - "one": 1, - "cn_": 12, - "No": 1, - "especial": 1, - "reason": 1, - "why": 1, - "this": 2, - "has": 1, - "be": 1, - "anything": 1, - "but": 1, - "meh": 1, - "Use": 1, - "argument": 1, - "over": 1, - "members": 1, - "Still": 1, - "items": 1, - "Disconnect": 1, - "having": 1, - "reached": 1, - "False": 3, - "currently": 1, - "pointed": 1, - "IteratorRemove": 1, - "And": 8, - "temp.ListNode": 1, - "temp": 1, - "Call": 1, - "breaking": 1, - "out": 1, - "disconnect": 1, - "IteratorBreak": 1, - "IDEal": 3, - "Editor": 3, - "Parameters": 3, - "F#5#A#10#18#2A#32#3E#47#4C#58#66#6F#78#8F#9B#A9#B7#BD#C5#CC": 1, - "F#E3#E9#EF#F4#F9#103#10D#11B#12B#13F#152#163": 1, - "C#Blitz3D": 3, - "result": 4, - "s.Sum3Obj": 2, - "Sum3Obj": 6, - "Handle": 2, - "MilliSecs": 4, - "Sum3_": 2, - "MakeSum3Obj": 2, - "Print": 13, - "Sum3": 2, - "WaitKey": 2, - "b": 7, - "c": 7, - "isActive": 4, - "Last": 1, - "Restore": 1, - "label": 1, - "Read": 1, - "foo": 1, - ".label": 1, - "Data": 1, - "a_": 2, - "a.Sum3Obj": 1, - "Object.Sum3Obj": 1, - "return_": 2, - "First": 1, - "bk": 3, - "PokeFloat": 3, - "Bin": 4, - "%": 6, - "Shl": 7, - "f": 5, - "ff": 1, - "Hex": 2, - "FloatToHalf": 3, - "HalfToFloat": 1, - "FToI": 2, - "Half": 1, - "precision": 2, - "bit": 2, - "arithmetic": 2, - "library": 2, - "Global": 2, - "Half_CBank_": 13, - "f#": 3, - "HalfToFloat#": 1, - "h": 4, - "signBit": 6, - "exponent": 22, - "fraction": 9, - "fBits": 8, - "Shr": 3, - "F": 3, - "FF": 2, - "ElseIf": 1, - "Or": 4, - "PeekFloat": 1, - "F800000": 1, - "FFFFF": 1, - "Abs": 1, - "Sgn": 1, - "HalfAdd": 1, - "r": 12, - "HalfSub": 1, - "HalfMul": 1, - "HalfDiv": 1, - "HalfLT": 1, - "HalfGT": 1, - "DoubleOut": 1, - "[": 2, - "]": 2, - "Double_CBank_": 1, - "DoubleToFloat#": 1, - "d": 1, - "FloatToDouble": 1, - "IntToDouble": 1, - "SefToDouble": 1, - "DoubleAdd": 1, - "DoubleSub": 1, - "DoubleMul": 1, - "DoubleDiv": 1, - "DoubleLT": 1, - "DoubleGT": 1, - "F#1A#20#2F": 1 - }, - "BlitzMax": { - "SuperStrict": 1, - "Framework": 1, - "Brl.StandardIO": 1, - "Type": 2, - "TMyType": 3, - "Field": 1, - "property": 1, - "int": 3, - "Function": 1, - "A": 1, - "(": 5, - "param": 1, - ")": 5, - "do": 1, - "nothing": 1, - "End": 2, - "Method": 1, - "Global": 1, - "my": 1, - "new": 1, - "Win32": 1, - "my.A": 2, - "my.B": 2, - "Linux": 1 - }, - "Bluespec": { - "package": 2, - "TL": 6, - ";": 156, - "interface": 2, - "method": 42, - "Action": 17, - "ped_button_push": 4, - "(": 158, - ")": 163, - "set_car_state_N": 2, - "Bool": 32, - "x": 8, - "set_car_state_S": 2, - "set_car_state_E": 2, - "set_car_state_W": 2, - "lampRedNS": 2, - "lampAmberNS": 2, - "lampGreenNS": 2, - "lampRedE": 2, - "lampAmberE": 2, - "lampGreenE": 2, - "lampRedW": 2, - "lampAmberW": 2, - "lampGreenW": 2, - "lampRedPed": 2, - "lampAmberPed": 2, - "lampGreenPed": 2, - "endinterface": 2, - "typedef": 3, - "enum": 1, - "{": 1, - "AllRed": 4, - "GreenNS": 9, - "AmberNS": 5, - "GreenE": 8, - "AmberE": 5, - "GreenW": 8, - "AmberW": 5, - "GreenPed": 4, - "AmberPed": 3, - "}": 1, - "TLstates": 11, - "deriving": 1, - "Eq": 1, - "Bits": 1, - "UInt#": 2, - "Time32": 9, - "CtrSize": 3, - "module": 3, - "sysTL": 3, - "allRedDelay": 2, - "amberDelay": 2, - "nsGreenDelay": 2, - "ewGreenDelay": 3, - "pedGreenDelay": 1, - "pedAmberDelay": 1, - "clocks_per_sec": 2, - "Reg#": 15, - "state": 21, - "<": 44, - "-": 29, - "mkReg": 15, - "next_green": 8, - "secs": 7, - "ped_button_pushed": 4, - "False": 9, - "car_present_N": 3, - "True": 6, - "car_present_S": 3, - "car_present_E": 4, - "car_present_W": 4, - "car_present_NS": 3, - "||": 7, - "cycle_ctr": 6, - "rule": 10, - "dec_cycle_ctr": 1, - "endrule": 10, - "Rules": 5, - "low_priority_rule": 2, - "rules": 4, - "inc_sec": 1, - "+": 7, - "endrules": 4, - "function": 10, - "next_state": 8, - "ns": 4, - "action": 3, - "<=>": 3, - "0": 2, - "endaction": 3, - "endfunction": 7, - "green_seq": 7, - "case": 2, - "return": 9, - "endcase": 2, - "car_present": 4, - "make_from_green_rule": 5, - "green_state": 2, - "delay": 2, - "car_is_present": 2, - "from_green": 1, - "make_from_amber_rule": 5, - "amber_state": 2, - "ng": 2, - "from_amber": 1, - "&&": 3, - "hprs": 10, - "7": 1, - "1": 1, - "2": 1, - "3": 1, - "4": 1, - "5": 1, - "6": 1, - "fromAllRed": 2, - "if": 9, - "else": 4, - "noAction": 1, - "high_priority_rules": 4, - "[": 17, - "]": 17, - "for": 3, - "Integer": 3, - "i": 15, - "rJoin": 1, - "addRules": 1, - "preempts": 1, - "endmethod": 8, - "b": 12, - "endmodule": 3, - "endpackage": 2, - "TbTL": 1, - "import": 1, - "*": 1, - "Lamp": 3, - "changed": 2, - "show_offs": 2, - "show_ons": 2, - "reset": 2, - "mkLamp#": 1, - "String": 1, - "name": 3, - "lamp": 5, - "prev": 5, - "write": 2, - "mkTest": 1, - "let": 1, - "dut": 2, - "Bit#": 1, - "ctr": 8, - "carN": 4, - "carS": 2, - "carE": 2, - "carW": 2, - "lamps": 15, - "mkLamp": 12, - "dut.lampRedNS": 1, - "dut.lampAmberNS": 1, - "dut.lampGreenNS": 1, - "dut.lampRedE": 1, - "dut.lampAmberE": 1, - "dut.lampGreenE": 1, - "dut.lampRedW": 1, - "dut.lampAmberW": 1, - "dut.lampGreenW": 1, - "dut.lampRedPed": 1, - "dut.lampAmberPed": 1, - "dut.lampGreenPed": 1, - "start": 1, - "dumpvars": 1, - "detect_cars": 1, - "dut.set_car_state_N": 1, - "dut.set_car_state_S": 1, - "dut.set_car_state_E": 1, - "dut.set_car_state_W": 1, - "go": 1, - "12_000": 1, - "stop": 1, - "display": 2, - "finish": 1, - "do_offs": 2, - "l": 3, - "l.show_offs": 1, - "do_ons": 2, - "l.show_ons": 1, - "do_reset": 2, - "l.reset": 1, - "do_it": 4, - "f": 2, - "any_changes": 2, - ".changed": 1, - "show": 1, - "time": 1 - }, - "Brightscript": { - "**": 17, - "Simple": 1, - "Grid": 2, - "Screen": 2, - "Demonstration": 1, - "App": 1, - "Copyright": 1, - "(": 32, - "c": 1, - ")": 31, - "Roku": 1, - "Inc.": 1, - "All": 3, - "Rights": 1, - "Reserved.": 1, - "************************************************************": 2, - "Sub": 2, - "Main": 1, - "set": 2, - "to": 10, - "go": 1, - "time": 1, - "get": 1, - "started": 1, - "while": 4, - "gridstyle": 7, - "<": 1, - "print": 7, - ";": 10, - "screen": 5, - "preShowGridScreen": 2, - "showGridScreen": 2, - "end": 2, - "End": 4, - "Set": 1, - "the": 17, - "configurable": 1, - "theme": 3, - "attributes": 2, - "for": 10, - "application": 1, - "Configure": 1, - "custom": 1, - "overhang": 1, - "and": 4, - "Logo": 1, - "are": 2, - "artwork": 2, - "colors": 1, - "offsets": 1, - "specific": 1, - "app": 1, - "******************************************************": 4, - "Screens": 1, - "can": 2, - "make": 1, - "slight": 1, - "adjustments": 1, - "default": 1, - "individual": 1, - "attributes.": 1, - "these": 1, - "greyscales": 1, - "theme.GridScreenBackgroundColor": 1, - "theme.GridScreenMessageColor": 1, - "theme.GridScreenRetrievingColor": 1, - "theme.GridScreenListNameColor": 1, - "used": 1, - "in": 3, - "theme.CounterTextLeft": 1, - "theme.CounterSeparator": 1, - "theme.CounterTextRight": 1, - "theme.GridScreenLogoHD": 1, - "theme.GridScreenLogoOffsetHD_X": 1, - "theme.GridScreenLogoOffsetHD_Y": 1, - "theme.GridScreenOverhangHeightHD": 1, - "theme.GridScreenLogoSD": 1, - "theme.GridScreenOverhangHeightSD": 1, - "theme.GridScreenLogoOffsetSD_X": 1, - "theme.GridScreenLogoOffsetSD_Y": 1, - "theme.GridScreenFocusBorderSD": 1, - "theme.GridScreenFocusBorderHD": 1, - "use": 1, - "your": 1, - "own": 1, - "description": 1, - "background": 1, - "theme.GridScreenDescriptionOffsetSD": 1, - "theme.GridScreenDescriptionOffsetHD": 1, - "return": 5, - "Function": 5, - "Perform": 1, - "any": 1, - "startup/initialization": 1, - "stuff": 1, - "prior": 1, - "style": 6, - "as": 2, - "string": 3, - "As": 3, - "Object": 2, - "m.port": 3, - "CreateObject": 2, - "screen.SetMessagePort": 1, - "screen.": 1, - "The": 1, - "will": 3, - "show": 1, - "retreiving": 1, - "categoryList": 4, - "getCategoryList": 1, - "[": 3, - "]": 4, - "+": 1, - "screen.setupLists": 1, - "categoryList.count": 2, - "screen.SetListNames": 1, - "StyleButtons": 3, - "getGridControlButtons": 1, - "screen.SetContentList": 2, - "i": 3, - "-": 15, - "getShowsForCategoryItem": 1, - "screen.Show": 1, - "true": 1, - "msg": 3, - "wait": 1, - "getmessageport": 1, - "does": 1, - "not": 2, - "work": 1, - "on": 1, - "gridscreen": 1, - "type": 2, - "if": 3, - "then": 3, - "msg.GetMessage": 1, - "msg.GetIndex": 3, - "msg.getData": 2, - "msg.isListItemFocused": 1, - "else": 1, - "msg.isListItemSelected": 1, - "row": 2, - "selection": 3, - "yes": 1, - "so": 2, - "we": 3, - "come": 1, - "back": 1, - "with": 2, - "new": 1, - ".Title": 1, - "endif": 1, - "**********************************************************": 1, - "this": 3, - "function": 1, - "passing": 1, - "an": 1, - "roAssociativeArray": 2, - "be": 2, - "sufficient": 1, - "springboard": 2, - "display": 2, - "add": 1, - "code": 1, - "create": 1, - "now": 1, - "do": 1, - "nothing": 1, - "Return": 1, - "list": 1, - "of": 5, - "categories": 1, - "filter": 1, - "all": 1, - "categories.": 1, - "just": 2, - "static": 1, - "data": 2, - "example.": 1, - "********************************************************************": 1, - "ContentMetaData": 1, - "objects": 1, - "shows": 1, - "category.": 1, - "For": 1, - "example": 1, - "cheat": 1, - "but": 2, - "ideally": 1, - "you": 1, - "dynamically": 1, - "content": 2, - "each": 1, - "category": 1, - "is": 1, - "dynamic": 1, - "s": 1, - "one": 3, - "small": 1, - "step": 1, - "a": 4, - "man": 1, - "giant": 1, - "leap": 1, - "mankind.": 1, - "http": 14, - "//upload.wikimedia.org/wikipedia/commons/1/1e/Apollo_11_first_step.jpg": 2, - "I": 2, - "have": 2, - "Dream": 1, - "PG": 1, - "dream": 1, - "that": 1, - "my": 1, - "four": 1, - "little": 1, - "children": 1, - "day": 1, - "live": 1, - "nation": 1, - "where": 1, - "they": 1, - "judged": 1, - "by": 2, - "color": 1, - "their": 2, - "skin": 1, - "character.": 1, - "//upload.wikimedia.org/wikipedia/commons/8/81/Martin_Luther_King_": 2, - "_March_on_Washington.jpg": 2, - "Flat": 6, - "Movie": 2, - "HD": 6, - "x2": 4, - "SD": 5, - "Netflix": 1, - "//upload.wikimedia.org/wikipedia/commons/4/43/Gold_star_on_blue.gif": 2, - "Landscape": 1, - "x3": 6, - "Channel": 1, - "Store": 1, - "//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Dunkery_Hill.jpg/800px": 2, - "Dunkery_Hill.jpg": 2, - "Portrait": 1, - "x4": 1, - "posters": 3, - "//upload.wikimedia.org/wikipedia/commons/9/9f/Kane_George_Gurnett.jpg": 2, - "Square": 1, - "x1": 1, - "//upload.wikimedia.org/wikipedia/commons/thumb/d/de/SQUARE_SHAPE.svg/536px": 2, - "SQUARE_SHAPE.svg.png": 2, - "x9": 1, - "//upload.wikimedia.org/wikipedia/commons/thumb/2/22/": 2, - "%": 8, - "C3": 4, - "cran_TV_plat.svg/200px": 2, - "cran_TV_plat.svg.png": 2, - "}": 1, - "buttons": 1 - }, - "C": { - "#include": 192, - "": 5, - "": 4, - "": 2, - "": 1, - "": 1, - "": 9, - "": 2, - "#ifdef": 70, - "__APPLE__": 2, - "#endif": 265, - "#if": 105, - "defined": 55, - "(": 6594, - ")": 6604, - "&&": 248, - "TARGET_OS_IPHONE": 1, - "#else": 107, - "extern": 41, - "char": 533, - "**environ": 1, - ";": 5912, - "static": 551, - "void": 324, - "uv__chld": 2, - "EV_P_": 1, - "ev_child*": 1, - "watcher": 4, - "int": 509, - "revents": 2, - "{": 1635, - "status": 57, - "-": 1863, - "rstatus": 1, - "exit_status": 3, - "term_signal": 3, - "uv_process_t": 1, - "*process": 1, - "data": 69, - "assert": 41, - "&": 467, - "process": 19, - "child_watcher": 5, - "EV_CHILD": 1, - "ev_child_stop": 2, - "EV_A_": 1, - "if": 1023, - "WIFEXITED": 1, - "WEXITSTATUS": 2, - "}": 1651, - "WIFSIGNALED": 2, - "WTERMSIG": 2, - "exit_cb": 3, - "uv__make_socketpair": 2, - "fds": 20, - "[": 1381, - "]": 1381, - "flags": 89, - "SOCK_NONBLOCK": 2, - "fl": 8, - "SOCK_CLOEXEC": 1, - "UV__F_NONBLOCK": 5, - "|": 132, - "socketpair": 2, - "AF_UNIX": 2, - "SOCK_STREAM": 2, - "return": 584, - "errno": 20, - "EINVAL": 6, - "uv__cloexec": 4, - "uv__nonblock": 5, - "uv__make_pipe": 2, - "__linux__": 3, - "UV__O_CLOEXEC": 1, - "UV__O_NONBLOCK": 1, - "uv__pipe2": 1, - "ENOSYS": 1, - "pipe": 1, - "uv__process_init_stdio": 2, - "uv_stdio_container_t*": 4, - "container": 17, - "writable": 8, - "fd": 34, - "switch": 47, - "UV_IGNORE": 2, - "UV_CREATE_PIPE": 4, - "UV_INHERIT_FD": 3, - "UV_INHERIT_STREAM": 2, - "case": 273, - "data.stream": 7, - "NULL": 330, - "type": 38, - "UV_NAMED_PIPE": 2, - "data.fd": 1, - "else": 192, - "default": 33, - "uv__process_stdio_flags": 2, - "uv_pipe_t*": 1, - "ipc": 1, - "UV_STREAM_READABLE": 2, - "UV_STREAM_WRITABLE": 2, - "uv__process_open_stream": 2, - "child_fd": 3, - "||": 141, - "<": 231, - "close": 13, - "uv__stream_open": 1, - "uv_stream_t*": 2, - "uv__process_close_stream": 2, - "uv__stream_close": 1, - "uv__process_child_init": 2, - "uv_process_options_t": 2, - "options": 62, - "stdio_count": 7, - "int*": 22, - "pipes": 23, - "i": 457, - "options.flags": 4, - "UV_PROCESS_DETACHED": 2, - "setsid": 2, - "for": 98, - "+": 732, - "close_fd": 2, - "*": 508, - "use_fd": 7, - "open": 4, - "O_RDONLY": 1, - "O_RDWR": 2, - "perror": 5, - "_exit": 6, - "continue": 20, - "dup2": 4, - "options.cwd": 2, - "chdir": 2, - "UV_PROCESS_SETGID": 2, - "setgid": 1, - "options.gid": 1, - "UV_PROCESS_SETUID": 2, - "setuid": 1, - "options.uid": 1, - "environ": 4, - "options.env": 1, - "execvp": 1, - "options.file": 2, - "options.args": 1, - "#ifndef": 94, - "SPAWN_WAIT_EXEC": 5, - "uv_spawn": 1, - "uv_loop_t*": 1, - "loop": 9, - "uv_process_t*": 3, - "char**": 7, - "save_our_env": 3, - "options.stdio_count": 4, - "malloc": 3, - "sizeof": 71, - "signal_pipe": 7, - "struct": 362, - "pollfd": 1, - "pfd": 2, - "pid_t": 2, - "pid": 13, - "ENOMEM": 4, - "goto": 159, - "error": 96, - "UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS": 1, - "uv__handle_init": 1, - "uv_handle_t*": 1, - "UV_PROCESS": 1, - "counters.process_init": 1, - "uv__handle_start": 1, - "options.exit_cb": 1, - "options.stdio": 3, - "fork": 2, - "do": 21, - "pfd.fd": 1, - "pfd.events": 1, - "POLLIN": 1, - "POLLHUP": 1, - "pfd.revents": 1, - "poll": 1, - "while": 70, - "EINTR": 1, - "ev_child_init": 1, - "ev_child_start": 1, - "ev": 7, - "child_watcher.data": 1, - "j": 222, - "free": 62, - "uv__set_sys_error": 2, - "uv_process_kill": 1, - "signum": 4, - "r": 58, - "kill": 4, - "uv_err_t": 1, - "uv_kill": 1, - "uv__new_sys_error": 1, - "uv_ok_": 1, - "uv__process_close": 1, - "handle": 10, - "uv__handle_stop": 1, - "BLOB_H": 2, - "#define": 929, - "const": 369, - "*blob_type": 2, - "blob": 6, - "object": 41, - "*lookup_blob": 2, - "unsigned": 140, - "*sha1": 16, - "parse_blob_buffer": 2, - "*item": 10, - "*buffer": 6, - "long": 105, - "size": 120, - "HELLO_H": 2, - "hello": 1, - "REFU_USTRING_H": 2, - "": 1, - "RF_MODULE_STRINGS//": 1, - "check": 8, - "the": 95, - "strings": 5, - "are": 6, - "included": 2, - "as": 4, - "a": 80, - "module": 3, - "": 2, - "": 1, - "//": 281, - "argument": 1, - "count": 17, - "": 2, - "local": 5, - "memory": 4, - "function": 6, - "wrapping": 1, - "functionality": 1, - "": 1, - "unicode": 2, - "__cplusplus": 22, - "opening": 2, - "bracket": 4, - "calling": 4, - "from": 16, - "C": 14, - "RF_CASE_IGNORE": 2, - "RF_MATCH_WORD": 5, - "RF_STRING_INDEX_OUT_OF_BOUNDS": 2, - "uint32_t": 144, - "xFF0FFFF": 1, - "rfUTF8_IsContinuationByte2": 1, - "b__": 3, - "<=>": 16, - "0xBF": 1, - "pragma": 1, - "pack": 2, - "push": 1, - "1": 2, - "internal": 4, - "author": 1, - "Lefteris": 1, - "date": 5, - "09": 1, - "12": 1, - "2010": 1, - "endinternal": 1, - "brief": 1, - "A": 11, - "String": 11, - "with": 9, - "UTF": 17, - "8": 15, - "representation": 2, - "The": 1, - "Refu": 2, - "is": 17, - "Unicode": 1, - "that": 9, - "has": 2, - "two": 1, - "versions": 1, - "One": 1, - "this": 5, - "and": 15, - "other": 16, - "ref": 1, - "RF_StringX": 2, - "to": 39, - "see": 2, - "what": 1, - "operations": 1, - "can": 2, - "be": 7, - "performed": 1, - "on": 4, - "extended": 3, - "Strings": 2, - "Functions": 1, - "convert": 1, - "all": 2, - "encoding": 14, - "exists": 6, - "but": 1, - "always": 3, - "at": 3, - "Once": 1, - "been": 1, - "created": 1, - "it": 13, - "assumed": 1, - "stream": 3, - "of": 45, - "bytes": 225, - "inside": 2, - "valid": 1, - "since": 5, - "every": 1, - "performs": 1, - "unless": 1, - "otherwise": 1, - "specified": 1, - "All": 1, - "functions": 2, - "which": 1, - "have": 2, - "isinherited": 1, - "StringX": 2, - "their": 1, - "description": 1, - "used": 10, - "safely": 1, - "no": 4, - "specific": 1, - "version": 4, - "or": 1, - "needs": 1, - "exist": 2, - "manipulate": 1, - "Extended": 1, - "To": 1, - "make": 3, - "documentation": 1, - "even": 1, - "clearer": 1, - "should": 2, - "not": 6, - "string": 20, - "marked": 1, - "notinherited": 1, - "cppcode": 1, - "constructor": 1, - "i_StringCHandle": 1, - "rfString_Create": 4, - "**": 6, - "@endcpp": 1, - "@endinternal": 1, - "*/": 1, - "typedef": 191, - "RF_String": 27, - "char*": 167, - "byteLength": 197, - "#pragma": 8, - "pop": 1, - "RF_IAMHERE_FOR_DOXYGEN": 22, - "RF_String*": 222, - "RFS_": 8, - "s": 154, - "...": 127, - "i_rfString_CreateLocal": 2, - "__VA_ARGS__": 66, - "RF_OPTION_DEFAULT_ARGUMENTS": 24, - "i_DECLIMEX_": 121, - "i_rfString_Create": 3, - "i_NVrfString_Create": 3, - "RP_SELECT_FUNC_IF_NARGIS": 5, - "i_SELECT_RF_STRING_CREATE": 1, - "i_SELECT_RF_STRING_CREATE1": 1, - "i_SELECT_RF_STRING_CREATE0": 1, - "///Internal": 1, - "creates": 1, - "temporary": 4, - "i_rfString_CreateLocal1": 3, - "i_NVrfString_CreateLocal": 3, - "i_SELECT_RF_STRING_CREATELOCAL": 1, - "i_SELECT_RF_STRING_CREATELOCAL1": 1, - "i_SELECT_RF_STRING_CREATELOCAL0": 1, - "rfString_Init": 3, - "str": 162, - "i_rfString_Init": 3, - "i_NVrfString_Init": 3, - "i_SELECT_RF_STRING_INIT": 1, - "i_SELECT_RF_STRING_INIT1": 1, - "i_SELECT_RF_STRING_INIT0": 1, - "rfString_Create_cp": 2, - "code": 6, - "rfString_Init_cp": 3, - "rfString_Create_nc": 3, - "i_rfString_Create_nc": 3, - "i_NVrfString_Create_nc": 3, - "i_SELECT_RF_STRING_CREATE_NC": 1, - "i_SELECT_RF_STRING_CREATE_NC1": 1, - "i_SELECT_RF_STRING_CREATE_NC0": 1, - "rfString_Init_nc": 4, - "i_rfString_Init_nc": 3, - "i_NVrfString_Init_nc": 3, - "i_SELECT_RF_STRING_INIT_NC": 1, - "i_SELECT_RF_STRING_INIT_NC1": 1, - "i_SELECT_RF_STRING_INIT_NC0": 1, - "rfString_Create_i": 2, - "int32_t": 112, - "rfString_Init_i": 2, - "rfString_Create_f": 2, - "float": 231, - "f": 287, - "rfString_Init_f": 2, - "rfString_Create_UTF16": 2, - "endianess": 40, - "rfString_Init_UTF16": 3, - "rfString_Create_UTF32": 2, - "rfString_Init_UTF32": 3, - "//@": 1, - "rfString_Assign": 2, - "dest": 7, - "void*": 135, - "source": 8, - "i_rfString_Assign": 3, - "i_DESTINATION_": 2, - "i_SOURCE_": 2, - "i_rfLMS_WRAP2": 5, - "rfString_Assign_char": 2, - "thisstr": 210, - "character": 11, - "rfString_Destroy": 2, - "rfString_Deinit": 3, - "rfString_ToUTF8": 2, - "i_STRING_": 2, - "rfString_ToCstr": 2, - "uint16_t*": 11, - "rfString_ToUTF16": 4, - "uint32_t*": 34, - "length": 58, - "rfString_ToUTF32": 4, - "uint32_t*length": 1, - "iteration": 6, - "/": 28, - "rfString_Iterate_Start": 6, - "string_": 9, - "startCharacterPos_": 4, - "characterUnicodeValue_": 4, - "byteIndex_": 12, - "j_": 6, - "rfUTF8_IsContinuationByte": 12, - "false": 77, - "rfString_BytePosToCodePoint": 7, - "rfString_Iterate_End": 4, - "//Two": 1, - "macros": 1, - "accomplish": 1, - "an": 2, - "any": 3, - "given": 5, - "going": 1, - "backwards.": 1, - "This": 1, - "macro": 2, - "its": 1, - "end": 48, - "pair.": 1, - "rfString_IterateB_Start": 1, - "characterPos_": 5, - "b_index_": 6, - "int64_t": 2, - "c_index_": 3, - "rfString_IterateB_End": 1, - "rfString_Length": 5, - "rfString_GetChar": 2, - "c": 252, - "bytepos": 12, - "rfString_BytePosToCharPos": 4, - "before": 4, - "rfString_Equal": 4, - "s1": 6, - "s2": 6, - "i_rfString_Equal": 3, - "i_STRING1_": 2, - "i_STRING2_": 2, - "i_rfLMSX_WRAP2": 4, - "rfString_Find": 3, - "sstr": 39, - "i_rfString_Find": 5, - "i_THISSTR_": 60, - "i_SEARCHSTR_": 26, - "i_OPTIONS_": 28, - "i_rfLMS_WRAP3": 4, - "i_RFI8_": 54, - "RF_SELECT_FUNC_IF_NARGGT": 10, - "i_NPSELECT_RF_STRING_FIND": 1, - "i_NPSELECT_RF_STRING_FIND1": 1, - "RF_COMPILE_ERROR": 33, - "i_NPSELECT_RF_STRING_FIND0": 1, - "RF_SELECT_FUNC": 10, - "i_SELECT_RF_STRING_FIND": 1, - "i_SELECT_RF_STRING_FIND2": 1, - "i_SELECT_RF_STRING_FIND3": 1, - "i_SELECT_RF_STRING_FIND1": 1, - "i_SELECT_RF_STRING_FIND0": 1, - "rfString_ToInt": 1, - "int32_t*": 1, - "v": 25, - "rfString_ToDouble": 1, - "double*": 1, - "rfString_Copy_OUT": 2, - "src": 16, - "rfString_Copy_IN": 2, - "dst": 16, - "rfString_Copy_chars": 2, - "n": 74, - "rfString_ScanfAfter": 2, - "afterstr": 5, - "format": 4, - "var": 7, - "i_rfString_ScanfAfter": 3, - "i_AFTERSTR_": 8, - "i_FORMAT_": 2, - "i_VAR_": 2, - "i_rfLMSX_WRAP4": 11, - "rfString_Count": 4, - "i_rfString_Count": 5, - "i_NPSELECT_RF_STRING_COUNT": 1, - "i_NPSELECT_RF_STRING_COUNT1": 1, - "i_NPSELECT_RF_STRING_COUNT0": 1, - "i_SELECT_RF_STRING_COUNT": 1, - "i_SELECT_RF_STRING_COUNT2": 1, - "i_rfLMSX_WRAP3": 5, - "i_SELECT_RF_STRING_COUNT3": 1, - "i_SELECT_RF_STRING_COUNT1": 1, - "i_SELECT_RF_STRING_COUNT0": 1, - "rfString_Tokenize": 2, - "sep": 3, - "tokensN": 2, - "RF_String**": 2, - "tokens": 5, - "rfString_Between": 3, - "lstr": 6, - "rstr": 24, - "result": 48, - "i_rfString_Between": 4, - "i_NPSELECT_RF_STRING_BETWEEN": 1, - "i_NPSELECT_RF_STRING_BETWEEN1": 1, - "i_NPSELECT_RF_STRING_BETWEEN0": 1, - "i_SELECT_RF_STRING_BETWEEN": 1, - "i_SELECT_RF_STRING_BETWEEN4": 1, - "i_LEFTSTR_": 6, - "i_RIGHTSTR_": 6, - "i_RESULT_": 12, - "i_rfLMSX_WRAP5": 9, - "i_SELECT_RF_STRING_BETWEEN5": 1, - "i_SELECT_RF_STRING_BETWEEN3": 1, - "i_SELECT_RF_STRING_BETWEEN2": 1, - "i_SELECT_RF_STRING_BETWEEN1": 1, - "i_SELECT_RF_STRING_BETWEEN0": 1, - "rfString_Beforev": 4, - "parN": 10, - "i_rfString_Beforev": 16, - "i_NPSELECT_RF_STRING_BEFOREV": 1, - "i_NPSELECT_RF_STRING_BEFOREV1": 1, - "RF_SELECT_FUNC_IF_NARGGT2": 2, - "i_LIMSELECT_RF_STRING_BEFOREV": 1, - "i_NPSELECT_RF_STRING_BEFOREV0": 1, - "i_LIMSELECT_RF_STRING_BEFOREV1": 1, - "i_LIMSELECT_RF_STRING_BEFOREV0": 1, - "i_SELECT_RF_STRING_BEFOREV": 1, - "i_SELECT_RF_STRING_BEFOREV5": 1, - "i_ARG1_": 56, - "i_ARG2_": 56, - "i_ARG3_": 56, - "i_ARG4_": 56, - "i_RFUI8_": 28, - "i_SELECT_RF_STRING_BEFOREV6": 1, - "i_rfLMSX_WRAP6": 2, - "i_SELECT_RF_STRING_BEFOREV7": 1, - "i_rfLMSX_WRAP7": 2, - "i_SELECT_RF_STRING_BEFOREV8": 1, - "i_rfLMSX_WRAP8": 2, - "i_SELECT_RF_STRING_BEFOREV9": 1, - "i_rfLMSX_WRAP9": 2, - "i_SELECT_RF_STRING_BEFOREV10": 1, - "i_rfLMSX_WRAP10": 2, - "i_SELECT_RF_STRING_BEFOREV11": 1, - "i_rfLMSX_WRAP11": 2, - "i_SELECT_RF_STRING_BEFOREV12": 1, - "i_rfLMSX_WRAP12": 2, - "i_SELECT_RF_STRING_BEFOREV13": 1, - "i_rfLMSX_WRAP13": 2, - "i_SELECT_RF_STRING_BEFOREV14": 1, - "i_rfLMSX_WRAP14": 2, - "i_SELECT_RF_STRING_BEFOREV15": 1, - "i_rfLMSX_WRAP15": 2, - "i_SELECT_RF_STRING_BEFOREV16": 1, - "i_rfLMSX_WRAP16": 2, - "i_SELECT_RF_STRING_BEFOREV17": 1, - "i_rfLMSX_WRAP17": 2, - "i_SELECT_RF_STRING_BEFOREV18": 1, - "i_rfLMSX_WRAP18": 2, - "rfString_Before": 3, - "i_rfString_Before": 5, - "i_NPSELECT_RF_STRING_BEFORE": 1, - "i_NPSELECT_RF_STRING_BEFORE1": 1, - "i_NPSELECT_RF_STRING_BEFORE0": 1, - "i_SELECT_RF_STRING_BEFORE": 1, - "i_SELECT_RF_STRING_BEFORE3": 1, - "i_SELECT_RF_STRING_BEFORE4": 1, - "i_SELECT_RF_STRING_BEFORE2": 1, - "i_SELECT_RF_STRING_BEFORE1": 1, - "i_SELECT_RF_STRING_BEFORE0": 1, - "rfString_After": 4, - "after": 6, - "out": 20, - "i_rfString_After": 5, - "i_NPSELECT_RF_STRING_AFTER": 1, - "i_NPSELECT_RF_STRING_AFTER1": 1, - "i_NPSELECT_RF_STRING_AFTER0": 1, - "i_SELECT_RF_STRING_AFTER": 1, - "i_SELECT_RF_STRING_AFTER3": 1, - "i_OUTSTR_": 6, - "i_SELECT_RF_STRING_AFTER4": 1, - "i_SELECT_RF_STRING_AFTER2": 1, - "i_SELECT_RF_STRING_AFTER1": 1, - "i_SELECT_RF_STRING_AFTER0": 1, - "rfString_Afterv": 4, - "i_rfString_Afterv": 16, - "i_NPSELECT_RF_STRING_AFTERV": 1, - "i_NPSELECT_RF_STRING_AFTERV1": 1, - "i_LIMSELECT_RF_STRING_AFTERV": 1, - "i_NPSELECT_RF_STRING_AFTERV0": 1, - "i_LIMSELECT_RF_STRING_AFTERV1": 1, - "i_LIMSELECT_RF_STRING_AFTERV0": 1, - "i_SELECT_RF_STRING_AFTERV": 1, - "i_SELECT_RF_STRING_AFTERV5": 1, - "i_SELECT_RF_STRING_AFTERV6": 1, - "i_SELECT_RF_STRING_AFTERV7": 1, - "i_SELECT_RF_STRING_AFTERV8": 1, - "i_SELECT_RF_STRING_AFTERV9": 1, - "i_SELECT_RF_STRING_AFTERV10": 1, - "i_SELECT_RF_STRING_AFTERV11": 1, - "i_SELECT_RF_STRING_AFTERV12": 1, - "i_SELECT_RF_STRING_AFTERV13": 1, - "i_SELECT_RF_STRING_AFTERV14": 1, - "i_SELECT_RF_STRING_AFTERV15": 1, - "i_SELECT_RF_STRING_AFTERV16": 1, - "i_SELECT_RF_STRING_AFTERV17": 1, - "i_SELECT_RF_STRING_AFTERV18": 1, - "rfString_Append": 5, - "i_rfString_Append": 3, - "i_OTHERSTR_": 4, - "rfString_Append_i": 2, - "rfString_Append_f": 2, - "rfString_Prepend": 2, - "i_rfString_Prepend": 3, - "rfString_Remove": 3, - "number": 19, - "i_rfString_Remove": 6, - "i_NPSELECT_RF_STRING_REMOVE": 1, - "i_NPSELECT_RF_STRING_REMOVE1": 1, - "i_NPSELECT_RF_STRING_REMOVE0": 1, - "i_SELECT_RF_STRING_REMOVE": 1, - "i_SELECT_RF_STRING_REMOVE2": 1, - "i_REPSTR_": 16, - "i_RFUI32_": 8, - "i_SELECT_RF_STRING_REMOVE3": 1, - "i_NUMBER_": 12, - "i_SELECT_RF_STRING_REMOVE4": 1, - "i_SELECT_RF_STRING_REMOVE1": 1, - "i_SELECT_RF_STRING_REMOVE0": 1, - "rfString_KeepOnly": 2, - "keepstr": 5, - "i_rfString_KeepOnly": 3, - "I_KEEPSTR_": 2, - "rfString_PruneStart": 2, - "rfString_PruneEnd": 2, - "rfString_PruneMiddleB": 2, - "p": 60, - "rfString_PruneMiddleF": 2, - "rfString_Replace": 3, - "i_rfString_Replace": 6, - "i_NPSELECT_RF_STRING_REPLACE": 1, - "i_NPSELECT_RF_STRING_REPLACE1": 1, - "i_NPSELECT_RF_STRING_REPLACE0": 1, - "i_SELECT_RF_STRING_REPLACE": 1, - "i_SELECT_RF_STRING_REPLACE3": 1, - "i_SELECT_RF_STRING_REPLACE4": 1, - "i_SELECT_RF_STRING_REPLACE5": 1, - "i_SELECT_RF_STRING_REPLACE2": 1, - "i_SELECT_RF_STRING_REPLACE1": 1, - "i_SELECT_RF_STRING_REPLACE0": 1, - "rfString_StripStart": 3, - "sub": 12, - "i_rfString_StripStart": 3, - "i_SUBSTR_": 6, - "rfString_StripEnd": 3, - "i_rfString_StripEnd": 3, - "rfString_Strip": 2, - "i_rfString_Strip": 3, - "rfString_Create_fUTF8": 2, - "FILE*": 64, - "eof": 53, - "rfString_Init_fUTF8": 3, - "rfString_Assign_fUTF8": 2, - "rfString_Append_fUTF8": 2, - "rfString_Create_fUTF16": 2, - "rfString_Init_fUTF16": 3, - "rfString_Append_fUTF16": 2, - "rfString_Assign_fUTF16": 2, - "rfString_Create_fUTF32": 2, - "rfString_Init_fUTF32": 3, - "rfString_Assign_fUTF32": 2, - "rfString_Append_fUTF32": 2, - "rfString_Fwrite": 2, - "i_rfString_Fwrite": 5, - "i_NPSELECT_RF_STRING_FWRITE": 1, - "i_NPSELECT_RF_STRING_FWRITE1": 1, - "i_NPSELECT_RF_STRING_FWRITE0": 1, - "i_SELECT_RF_STRING_FWRITE": 1, - "i_SELECT_RF_STRING_FWRITE3": 1, - "i_STR_": 8, - "i_FILE_": 16, - "i_ENCODING_": 4, - "i_SELECT_RF_STRING_FWRITE2": 1, - "RF_UTF8": 8, - "i_SELECT_RF_STRING_FWRITE1": 1, - "i_SELECT_RF_STRING_FWRITE0": 1, - "rfString_Fwrite_fUTF8": 1, - "closing": 1, - "include": 6, - "#error": 4, - "Attempted": 1, - "manipulation": 1, - "flag": 1, - "off.": 1, - "Rebuild": 1, - "library": 3, - "option": 9, - "added": 1, - "you": 1, - "need": 5, - "them": 3, - "#endif//": 1, - "guards": 2, - "READLINE_READLINE_CATS": 3, - "": 1, - "atscntrb_readline_rl_library_version": 1, - "rl_library_version": 1, - "atscntrb_readline_rl_readline_version": 1, - "rl_readline_version": 1, - "atscntrb_readline_readline": 1, - "readline": 1, - "ifndef": 2, - "http_parser_h": 2, - "HTTP_PARSER_VERSION_MAJOR": 1, - "HTTP_PARSER_VERSION_MINOR": 1, - "": 2, - "_WIN32": 3, - "__MINGW32__": 1, - "_MSC_VER": 5, - "__int8": 2, - "int8_t": 3, - "uint8_t": 8, - "__int16": 2, - "int16_t": 1, - "uint16_t": 12, - "__int32": 2, - "__int64": 3, - "uint64_t": 8, - "size_t": 64, - "ssize_t": 1, - "": 1, - "HTTP_PARSER_STRICT": 5, - "HTTP_PARSER_DEBUG": 4, - "HTTP_MAX_HEADER_SIZE": 2, - "*1024": 4, - "http_parser": 13, - "http_parser_settings": 5, - "HTTP_METHOD_MAP": 3, - "XX": 63, - "DELETE": 2, - "GET": 2, - "HEAD": 2, - "POST": 2, - "PUT": 2, - "CONNECT": 2, - "OPTIONS": 2, - "TRACE": 2, - "COPY": 2, - "LOCK": 2, - "MKCOL": 2, - "MOVE": 2, - "PROPFIND": 2, - "PROPPATCH": 2, - "SEARCH": 3, - "UNLOCK": 2, - "REPORT": 2, - "MKACTIVITY": 2, - "CHECKOUT": 2, - "MERGE": 2, - "MSEARCH": 1, - "M": 1, - "NOTIFY": 2, - "SUBSCRIBE": 2, - "UNSUBSCRIBE": 2, - "PATCH": 2, - "PURGE": 2, - "enum": 42, - "http_method": 4, - "num": 24, - "name": 28, - "HTTP_##name": 1, - "#undef": 7, - "http_parser_type": 3, - "HTTP_REQUEST": 7, - "HTTP_RESPONSE": 3, - "HTTP_BOTH": 1, - "F_CHUNKED": 11, - "<<": 56, - "F_CONNECTION_KEEP_ALIVE": 3, - "F_CONNECTION_CLOSE": 3, - "F_TRAILING": 3, - "F_UPGRADE": 3, - "F_SKIPBODY": 4, - "HTTP_ERRNO_MAP": 3, - "OK": 1, - "CB_message_begin": 1, - "CB_url": 1, - "CB_header_field": 1, - "CB_header_value": 1, - "CB_headers_complete": 1, - "CB_body": 1, - "CB_message_complete": 1, - "INVALID_EOF_STATE": 1, - "HEADER_OVERFLOW": 1, - "CLOSED_CONNECTION": 1, - "INVALID_VERSION": 1, - "INVALID_STATUS": 1, - "INVALID_METHOD": 1, - "INVALID_URL": 1, - "INVALID_HOST": 1, - "INVALID_PORT": 1, - "INVALID_PATH": 1, - "INVALID_QUERY_STRING": 1, - "INVALID_FRAGMENT": 1, - "LF_EXPECTED": 1, - "INVALID_HEADER_TOKEN": 1, - "INVALID_CONTENT_LENGTH": 1, - "INVALID_CHUNK_SIZE": 1, - "INVALID_CONSTANT": 1, - "INVALID_INTERNAL_STATE": 1, - "STRICT": 1, - "PAUSED": 1, - "UNKNOWN": 1, - "HTTP_ERRNO_GEN": 3, - "HPE_##n": 1, - "http_errno": 11, - "HTTP_PARSER_ERRNO": 10, - "HTTP_PARSER_ERRNO_LINE": 2, - "error_lineno": 3, - "state": 106, - "header_state": 42, - "index": 58, - "nread": 7, - "content_length": 27, - "short": 7, - "http_major": 11, - "http_minor": 11, - "status_code": 8, - "method": 39, - "upgrade": 3, - "*data": 12, - "http_cb": 3, - "on_message_begin": 1, - "http_data_cb": 4, - "on_url": 1, - "on_header_field": 1, - "on_header_value": 1, - "on_headers_complete": 3, - "on_body": 1, - "on_message_complete": 1, - "http_parser_url_fields": 2, - "UF_SCHEMA": 2, - "UF_HOST": 3, - "UF_PORT": 5, - "UF_PATH": 2, - "UF_QUERY": 2, - "UF_FRAGMENT": 2, - "UF_MAX": 3, - "http_parser_url": 3, - "field_set": 5, - "port": 7, - "off": 8, - "len": 30, - "field_data": 5, - "http_parser_init": 2, - "*parser": 9, - "http_parser_execute": 2, - "*settings": 2, - "http_should_keep_alive": 2, - "*http_method_str": 1, - "m": 84, - "*http_errno_name": 1, - "err": 43, - "*http_errno_description": 1, - "http_parser_parse_url": 2, - "*buf": 10, - "buflen": 3, - "is_connect": 4, - "*u": 2, - "http_parser_pause": 2, - "paused": 3, - "BOOTSTRAP_H": 2, - "__GNUC__": 9, - "*true": 1, - "*false": 1, - "*eof": 1, - "*empty_list": 1, - "*global_enviroment": 1, - "obj_type": 1, - "scm_bool": 1, - "scm_empty_list": 1, - "scm_eof": 1, - "scm_char": 1, - "scm_int": 1, - "scm_pair": 1, - "scm_symbol": 1, - "scm_prim_fun": 1, - "scm_lambda": 1, - "scm_str": 1, - "scm_file": 1, - "*eval_proc": 1, - "*maybe_add_begin": 1, - "*code": 2, - "init_enviroment": 1, - "*env": 4, - "eval_err": 1, - "*msg": 8, - "__attribute__": 2, - "noreturn": 1, - "define_var": 1, - "*var": 4, - "*val": 6, - "set_var": 1, - "*get_var": 1, - "*cond2nested_if": 1, - "*cond": 1, - "*let2lambda": 1, - "*let": 1, - "*and2nested_if": 1, - "*and": 1, - "*or2nested_if": 1, - "*or": 1, - "": 1, - "": 1, - "": 3, - "": 1, - "": 1, - "": 1, - "": 1, - "": 2, - "": 1, - "": 2, - "": 1, - "": 6, - "": 1, - "sharedObjectsStruct": 1, - "shared": 1, - "double": 126, - "R_Zero": 2, - "R_PosInf": 2, - "R_NegInf": 2, - "R_Nan": 2, - "redisServer": 1, - "server": 1, - "redisCommand": 6, - "*commandTable": 1, - "redisCommandTable": 5, - "getCommand": 1, - "setCommand": 1, - "noPreloadGetKeys": 6, - "setnxCommand": 1, - "setexCommand": 1, - "psetexCommand": 1, - "appendCommand": 1, - "strlenCommand": 1, - "delCommand": 1, - "existsCommand": 1, - "setbitCommand": 1, - "getbitCommand": 1, - "setrangeCommand": 1, - "getrangeCommand": 2, - "incrCommand": 1, - "decrCommand": 1, - "mgetCommand": 1, - "rpushCommand": 1, - "lpushCommand": 1, - "rpushxCommand": 1, - "lpushxCommand": 1, - "linsertCommand": 1, - "rpopCommand": 1, - "lpopCommand": 1, - "brpopCommand": 1, - "brpoplpushCommand": 1, - "blpopCommand": 1, - "llenCommand": 1, - "lindexCommand": 1, - "lsetCommand": 1, - "lrangeCommand": 1, - "ltrimCommand": 1, - "lremCommand": 1, - "rpoplpushCommand": 1, - "saddCommand": 1, - "sremCommand": 1, - "smoveCommand": 1, - "sismemberCommand": 1, - "scardCommand": 1, - "spopCommand": 1, - "srandmemberCommand": 1, - "sinterCommand": 2, - "sinterstoreCommand": 1, - "sunionCommand": 1, - "sunionstoreCommand": 1, - "sdiffCommand": 1, - "sdiffstoreCommand": 1, - "zaddCommand": 1, - "zincrbyCommand": 1, - "zremCommand": 1, - "zremrangebyscoreCommand": 1, - "zremrangebyrankCommand": 1, - "zunionstoreCommand": 1, - "zunionInterGetKeys": 4, - "zinterstoreCommand": 1, - "zrangeCommand": 1, - "zrangebyscoreCommand": 1, - "zrevrangebyscoreCommand": 1, - "zcountCommand": 1, - "zrevrangeCommand": 1, - "zcardCommand": 1, - "zscoreCommand": 1, - "zrankCommand": 1, - "zrevrankCommand": 1, - "hsetCommand": 1, - "hsetnxCommand": 1, - "hgetCommand": 1, - "hmsetCommand": 1, - "hmgetCommand": 1, - "hincrbyCommand": 1, - "hincrbyfloatCommand": 1, - "hdelCommand": 1, - "hlenCommand": 1, - "hkeysCommand": 1, - "hvalsCommand": 1, - "hgetallCommand": 1, - "hexistsCommand": 1, - "incrbyCommand": 1, - "decrbyCommand": 1, - "incrbyfloatCommand": 1, - "getsetCommand": 1, - "msetCommand": 1, - "msetnxCommand": 1, - "randomkeyCommand": 1, - "selectCommand": 1, - "moveCommand": 1, - "renameCommand": 1, - "renameGetKeys": 2, - "renamenxCommand": 1, - "expireCommand": 1, - "expireatCommand": 1, - "pexpireCommand": 1, - "pexpireatCommand": 1, - "keysCommand": 1, - "dbsizeCommand": 1, - "authCommand": 3, - "pingCommand": 2, - "echoCommand": 2, - "saveCommand": 1, - "bgsaveCommand": 1, - "bgrewriteaofCommand": 1, - "shutdownCommand": 2, - "lastsaveCommand": 1, - "typeCommand": 1, - "multiCommand": 2, - "execCommand": 2, - "discardCommand": 2, - "syncCommand": 1, - "flushdbCommand": 1, - "flushallCommand": 1, - "sortCommand": 1, - "infoCommand": 4, - "monitorCommand": 2, - "ttlCommand": 1, - "pttlCommand": 1, - "persistCommand": 1, - "slaveofCommand": 2, - "debugCommand": 1, - "configCommand": 1, - "subscribeCommand": 2, - "unsubscribeCommand": 2, - "psubscribeCommand": 2, - "punsubscribeCommand": 2, - "publishCommand": 1, - "watchCommand": 2, - "unwatchCommand": 1, - "clusterCommand": 1, - "restoreCommand": 1, - "migrateCommand": 1, - "askingCommand": 1, - "dumpCommand": 1, - "objectCommand": 1, - "clientCommand": 1, - "evalCommand": 1, - "evalShaCommand": 1, - "slowlogCommand": 1, - "scriptCommand": 2, - "timeCommand": 2, - "bitopCommand": 1, - "bitcountCommand": 1, - "redisLogRaw": 3, - "level": 12, - "syslogLevelMap": 2, - "LOG_DEBUG": 1, - "LOG_INFO": 1, - "LOG_NOTICE": 1, - "LOG_WARNING": 1, - "*c": 69, - "FILE": 3, - "*fp": 3, - "buf": 57, - "rawmode": 2, - "REDIS_LOG_RAW": 2, - "xff": 3, - "server.verbosity": 4, - "fp": 13, - "server.logfile": 8, - "stdout": 5, - "fopen": 3, - "fprintf": 18, - "msg": 10, - "timeval": 4, - "tv": 8, - "gettimeofday": 4, - "strftime": 1, - "localtime": 1, - "tv.tv_sec": 4, - "snprintf": 2, - "tv.tv_usec/1000": 1, - "getpid": 7, - "fflush": 2, - "fclose": 5, - "server.syslog_enabled": 3, - "syslog": 1, - "redisLog": 33, - "*fmt": 2, - "va_list": 3, - "ap": 4, - "REDIS_MAX_LOGMSG_LEN": 1, - "va_start": 3, - "fmt": 4, - "vsnprintf": 1, - "va_end": 3, - "redisLogFromHandler": 2, - "server.daemonize": 5, - "O_APPEND": 2, - "O_CREAT": 2, - "O_WRONLY": 2, - "STDOUT_FILENO": 2, - "ll2string": 3, - "write": 7, - "strlen": 17, - "time": 10, - "oom": 3, - "REDIS_WARNING": 19, - "sleep": 2, - "abort": 1, - "ustime": 7, - "ust": 7, - "*1000000": 1, - "tv.tv_usec": 3, - "mstime": 5, - "/1000": 1, - "exitFromChild": 1, - "retcode": 3, - "COVERAGE_TEST": 1, - "exit": 20, - "dictVanillaFree": 1, - "*privdata": 8, - "DICT_NOTUSED": 6, - "privdata": 8, - "zfree": 2, - "val": 20, - "dictListDestructor": 2, - "listRelease": 1, - "list*": 1, - "dictSdsKeyCompare": 6, - "*key1": 4, - "*key2": 4, - "l1": 4, - "l2": 3, - "sdslen": 14, - "sds": 13, - "key1": 5, - "key2": 5, - "memcmp": 6, - "dictSdsKeyCaseCompare": 2, - "strcasecmp": 13, - "dictRedisObjectDestructor": 7, - "decrRefCount": 6, - "dictSdsDestructor": 4, - "sdsfree": 2, - "dictObjKeyCompare": 2, - "robj": 7, - "*o1": 2, - "*o2": 2, - "o1": 7, - "ptr": 18, - "o2": 7, - "dictObjHash": 2, - "*key": 5, - "*o": 8, - "key": 10, - "dictGenHashFunction": 5, - "o": 80, - "dictSdsHash": 4, - "dictSdsCaseHash": 2, - "dictGenCaseHashFunction": 1, - "dictEncObjKeyCompare": 4, - "robj*": 3, - "cmp": 9, - "REDIS_ENCODING_INT": 4, - "getDecodedObject": 3, - "dictEncObjHash": 4, - "REDIS_ENCODING_RAW": 1, - "hash": 12, - "dictType": 8, - "setDictType": 1, - "zsetDictType": 1, - "dbDictType": 2, - "keyptrDictType": 2, - "commandTableDictType": 2, - "hashDictType": 1, - "keylistDictType": 4, - "clusterNodesDictType": 1, - "htNeedsResize": 3, - "dict": 11, - "*dict": 5, - "dictSlots": 3, - "dictSize": 10, - "DICT_HT_INITIAL_SIZE": 2, - "used*100/size": 1, - "REDIS_HT_MINFILL": 1, - "tryResizeHashTables": 2, - "server.dbnum": 8, - "server.db": 23, - ".dict": 9, - "dictResize": 2, - ".expires": 8, - "incrementallyRehash": 2, - "dictIsRehashing": 2, - "dictRehashMilliseconds": 2, - "break": 244, - "updateDictResizePolicy": 2, - "server.rdb_child_pid": 12, - "server.aof_child_pid": 10, - "dictEnableResize": 1, - "dictDisableResize": 1, - "activeExpireCycle": 2, - "start": 10, - "timelimit": 5, - "*REDIS_EXPIRELOOKUPS_TIME_PERC/REDIS_HZ/100": 1, - "expired": 4, - "redisDb": 3, - "*db": 3, - "db": 10, - "expires": 3, - "slots": 2, - "now": 5, - "num*100/slots": 1, - "REDIS_EXPIRELOOKUPS_PER_CRON": 2, - "dictEntry": 2, - "*de": 2, - "t": 32, - "de": 12, - "dictGetRandomKey": 4, - "dictGetSignedIntegerVal": 1, - "dictGetKey": 4, - "*keyobj": 2, - "createStringObject": 11, - "propagateExpire": 2, - "keyobj": 6, - "dbDelete": 2, - "server.stat_expiredkeys": 3, - "xf": 1, - "REDIS_EXPIRELOOKUPS_PER_CRON/4": 1, - "updateLRUClock": 3, - "server.lruclock": 2, - "server.unixtime/REDIS_LRU_CLOCK_RESOLUTION": 1, - "REDIS_LRU_CLOCK_MAX": 1, - "trackOperationsPerSecond": 2, - "server.ops_sec_last_sample_time": 3, - "ops": 1, - "server.stat_numcommands": 4, - "server.ops_sec_last_sample_ops": 3, - "ops_sec": 3, - "ops*1000/t": 1, - "server.ops_sec_samples": 4, - "server.ops_sec_idx": 4, - "%": 2, - "REDIS_OPS_SEC_SAMPLES": 3, - "getOperationsPerSecond": 2, - "sum": 3, - "clientsCronHandleTimeout": 2, - "redisClient": 12, - "time_t": 4, - "server.unixtime": 10, - "server.maxidletime": 3, - "REDIS_SLAVE": 3, - "REDIS_MASTER": 2, - "REDIS_BLOCKED": 2, - "pubsub_channels": 2, - "listLength": 14, - "pubsub_patterns": 2, - "lastinteraction": 3, - "REDIS_VERBOSE": 3, - "freeClient": 1, - "bpop.timeout": 2, - "addReply": 13, - "shared.nullmultibulk": 2, - "unblockClientWaitingData": 1, - "clientsCronResizeQueryBuffer": 2, - "querybuf_size": 3, - "sdsAllocSize": 1, - "querybuf": 6, - "idletime": 2, - "REDIS_MBULK_BIG_ARG": 1, - "querybuf_size/": 1, - "querybuf_peak": 2, - "sdsavail": 1, - "sdsRemoveFreeSpace": 1, - "clientsCron": 2, - "numclients": 3, - "server.clients": 7, - "iterations": 4, - "numclients/": 1, - "REDIS_HZ*10": 1, - "listNode": 4, - "*head": 1, - "listRotate": 1, - "head": 3, - "listFirst": 2, - "listNodeValue": 3, - "run_with_period": 6, - "_ms_": 2, - "loops": 2, - "/REDIS_HZ": 2, - "serverCron": 2, - "aeEventLoop": 2, - "*eventLoop": 2, - "id": 14, - "*clientData": 1, - "server.cronloops": 3, - "REDIS_NOTUSED": 5, - "eventLoop": 2, - "clientData": 1, - "server.watchdog_period": 3, - "watchdogScheduleSignal": 1, - "zmalloc_used_memory": 8, - "server.stat_peak_memory": 5, - "server.shutdown_asap": 3, - "prepareForShutdown": 2, - "REDIS_OK": 23, - "vkeys": 8, - "server.activerehashing": 2, - "server.slaves": 9, - "server.aof_rewrite_scheduled": 4, - "rewriteAppendOnlyFileBackground": 2, - "statloc": 5, - "wait3": 1, - "WNOHANG": 1, - "exitcode": 3, - "bysignal": 4, - "backgroundSaveDoneHandler": 1, - "backgroundRewriteDoneHandler": 1, - "server.saveparamslen": 3, - "saveparam": 1, - "*sp": 1, - "server.saveparams": 2, - "server.dirty": 3, - "sp": 4, - "changes": 2, - "server.lastsave": 3, - "seconds": 2, - "REDIS_NOTICE": 13, - "rdbSaveBackground": 1, - "server.rdb_filename": 4, - "server.aof_rewrite_perc": 3, - "server.aof_current_size": 2, - "server.aof_rewrite_min_size": 2, - "base": 1, - "server.aof_rewrite_base_size": 4, - "growth": 3, - "server.aof_current_size*100/base": 1, - "server.aof_flush_postponed_start": 2, - "flushAppendOnlyFile": 2, - "server.masterhost": 7, - "freeClientsInAsyncFreeQueue": 1, - "replicationCron": 1, - "server.cluster_enabled": 6, - "clusterCron": 1, - "beforeSleep": 2, - "*ln": 3, - "server.unblocked_clients": 4, - "ln": 8, - "redisAssert": 1, - "value": 9, - "listDelNode": 1, - "REDIS_UNBLOCKED": 1, - "server.current_client": 3, - "processInputBuffer": 1, - "createSharedObjects": 2, - "shared.crlf": 2, - "createObject": 31, - "REDIS_STRING": 31, - "sdsnew": 27, - "shared.ok": 3, - "shared.err": 1, - "shared.emptybulk": 1, - "shared.czero": 1, - "shared.cone": 1, - "shared.cnegone": 1, - "shared.nullbulk": 1, - "shared.emptymultibulk": 1, - "shared.pong": 2, - "shared.queued": 2, - "shared.wrongtypeerr": 1, - "shared.nokeyerr": 1, - "shared.syntaxerr": 2, - "shared.sameobjecterr": 1, - "shared.outofrangeerr": 1, - "shared.noscripterr": 1, - "shared.loadingerr": 2, - "shared.slowscripterr": 2, - "shared.masterdownerr": 2, - "shared.bgsaveerr": 2, - "shared.roslaveerr": 2, - "shared.oomerr": 2, - "shared.space": 1, - "shared.colon": 1, - "shared.plus": 1, - "REDIS_SHARED_SELECT_CMDS": 1, - "shared.select": 1, - "sdscatprintf": 24, - "sdsempty": 8, - "shared.messagebulk": 1, - "shared.pmessagebulk": 1, - "shared.subscribebulk": 1, - "shared.unsubscribebulk": 1, - "shared.psubscribebulk": 1, - "shared.punsubscribebulk": 1, - "shared.del": 1, - "shared.rpop": 1, - "shared.lpop": 1, - "REDIS_SHARED_INTEGERS": 1, - "shared.integers": 2, - "REDIS_SHARED_BULKHDR_LEN": 1, - "shared.mbulkhdr": 1, - "shared.bulkhdr": 1, - "initServerConfig": 2, - "getRandomHexChars": 1, - "server.runid": 3, - "REDIS_RUN_ID_SIZE": 2, - "server.arch_bits": 3, - "server.port": 7, - "REDIS_SERVERPORT": 1, - "server.bindaddr": 2, - "server.unixsocket": 7, - "server.unixsocketperm": 2, - "server.ipfd": 9, - "server.sofd": 9, - "REDIS_DEFAULT_DBNUM": 1, - "REDIS_MAXIDLETIME": 1, - "server.client_max_querybuf_len": 1, - "REDIS_MAX_QUERYBUF_LEN": 1, - "server.loading": 4, - "server.syslog_ident": 2, - "zstrdup": 5, - "server.syslog_facility": 2, - "LOG_LOCAL0": 1, - "server.aof_state": 7, - "REDIS_AOF_OFF": 5, - "server.aof_fsync": 1, - "AOF_FSYNC_EVERYSEC": 1, - "server.aof_no_fsync_on_rewrite": 1, - "REDIS_AOF_REWRITE_PERC": 1, - "REDIS_AOF_REWRITE_MIN_SIZE": 1, - "server.aof_last_fsync": 1, - "server.aof_rewrite_time_last": 2, - "server.aof_rewrite_time_start": 2, - "server.aof_delayed_fsync": 2, - "server.aof_fd": 4, - "server.aof_selected_db": 1, - "server.pidfile": 3, - "server.aof_filename": 3, - "server.requirepass": 4, - "server.rdb_compression": 1, - "server.rdb_checksum": 1, - "server.maxclients": 6, - "REDIS_MAX_CLIENTS": 1, - "server.bpop_blocked_clients": 2, - "server.maxmemory": 6, - "server.maxmemory_policy": 11, - "REDIS_MAXMEMORY_VOLATILE_LRU": 3, - "server.maxmemory_samples": 3, - "server.hash_max_ziplist_entries": 1, - "REDIS_HASH_MAX_ZIPLIST_ENTRIES": 1, - "server.hash_max_ziplist_value": 1, - "REDIS_HASH_MAX_ZIPLIST_VALUE": 1, - "server.list_max_ziplist_entries": 1, - "REDIS_LIST_MAX_ZIPLIST_ENTRIES": 1, - "server.list_max_ziplist_value": 1, - "REDIS_LIST_MAX_ZIPLIST_VALUE": 1, - "server.set_max_intset_entries": 1, - "REDIS_SET_MAX_INTSET_ENTRIES": 1, - "server.zset_max_ziplist_entries": 1, - "REDIS_ZSET_MAX_ZIPLIST_ENTRIES": 1, - "server.zset_max_ziplist_value": 1, - "REDIS_ZSET_MAX_ZIPLIST_VALUE": 1, - "server.repl_ping_slave_period": 1, - "REDIS_REPL_PING_SLAVE_PERIOD": 1, - "server.repl_timeout": 1, - "REDIS_REPL_TIMEOUT": 1, - "server.cluster.configfile": 1, - "server.lua_caller": 1, - "server.lua_time_limit": 1, - "REDIS_LUA_TIME_LIMIT": 1, - "server.lua_client": 1, - "server.lua_timedout": 2, - "resetServerSaveParams": 2, - "appendServerSaveParams": 3, - "*60": 1, - "server.masterauth": 1, - "server.masterport": 2, - "server.master": 3, - "server.repl_state": 6, - "REDIS_REPL_NONE": 1, - "server.repl_syncio_timeout": 1, - "REDIS_REPL_SYNCIO_TIMEOUT": 1, - "server.repl_serve_stale_data": 2, - "server.repl_slave_ro": 2, - "server.repl_down_since": 2, - "server.client_obuf_limits": 9, - "REDIS_CLIENT_LIMIT_CLASS_NORMAL": 3, - ".hard_limit_bytes": 3, - ".soft_limit_bytes": 3, - ".soft_limit_seconds": 3, - "REDIS_CLIENT_LIMIT_CLASS_SLAVE": 3, - "*1024*256": 1, - "*1024*64": 1, - "REDIS_CLIENT_LIMIT_CLASS_PUBSUB": 3, - "*1024*32": 1, - "*1024*8": 1, - "/R_Zero": 2, - "R_Zero/R_Zero": 1, - "server.commands": 1, - "dictCreate": 6, - "populateCommandTable": 2, - "server.delCommand": 1, - "lookupCommandByCString": 3, - "server.multiCommand": 1, - "server.lpushCommand": 1, - "server.slowlog_log_slower_than": 1, - "REDIS_SLOWLOG_LOG_SLOWER_THAN": 1, - "server.slowlog_max_len": 1, - "REDIS_SLOWLOG_MAX_LEN": 1, - "server.assert_failed": 1, - "server.assert_file": 1, - "server.assert_line": 1, - "server.bug_report_start": 1, - "adjustOpenFilesLimit": 2, - "rlim_t": 3, - "maxfiles": 6, - "rlimit": 1, - "limit": 3, - "getrlimit": 1, - "RLIMIT_NOFILE": 2, - "strerror": 4, - "oldlimit": 5, - "limit.rlim_cur": 2, - "limit.rlim_max": 1, - "setrlimit": 1, - "initServer": 2, - "signal": 2, - "SIGHUP": 1, - "SIG_IGN": 2, - "SIGPIPE": 1, - "setupSignalHandlers": 2, - "openlog": 1, - "LOG_PID": 1, - "LOG_NDELAY": 1, - "LOG_NOWAIT": 1, - "listCreate": 6, - "server.clients_to_close": 1, - "server.monitors": 2, - "server.el": 7, - "aeCreateEventLoop": 1, - "zmalloc": 2, - "*server.dbnum": 1, - "anetTcpServer": 1, - "server.neterr": 4, - "ANET_ERR": 2, - "unlink": 3, - "anetUnixServer": 1, - ".blocking_keys": 1, - ".watched_keys": 1, - ".id": 1, - "server.pubsub_channels": 2, - "server.pubsub_patterns": 4, - "listSetFreeMethod": 1, - "freePubsubPattern": 1, - "listSetMatchMethod": 1, - "listMatchPubsubPattern": 1, - "aofRewriteBufferReset": 1, - "server.aof_buf": 3, - "server.rdb_save_time_last": 2, - "server.rdb_save_time_start": 2, - "server.stat_numconnections": 2, - "server.stat_evictedkeys": 3, - "server.stat_starttime": 2, - "server.stat_keyspace_misses": 2, - "server.stat_keyspace_hits": 2, - "server.stat_fork_time": 2, - "server.stat_rejected_conn": 2, - "memset": 4, - "server.lastbgsave_status": 3, - "server.stop_writes_on_bgsave_err": 2, - "aeCreateTimeEvent": 1, - "aeCreateFileEvent": 2, - "AE_READABLE": 2, - "acceptTcpHandler": 1, - "AE_ERR": 2, - "acceptUnixHandler": 1, - "REDIS_AOF_ON": 2, - "LL*": 1, - "REDIS_MAXMEMORY_NO_EVICTION": 2, - "clusterInit": 1, - "scriptingInit": 1, - "slowlogInit": 1, - "bioInit": 1, - "numcommands": 5, - "/sizeof": 4, - "*f": 2, - "sflags": 1, - "retval": 3, - "argv": 54, - "cmd": 46, - "arity": 3, - "argc": 26, - "addReplyErrorFormat": 1, - "authenticated": 3, - "proc": 14, - "addReplyError": 6, - "getkeys_proc": 1, - "firstkey": 1, - "hashslot": 3, - "server.cluster.state": 1, - "REDIS_CLUSTER_OK": 1, - "ask": 3, - "clusterNode": 1, - "*n": 1, - "getNodeByQuery": 1, - "server.cluster.myself": 1, - "addReplySds": 3, - "ip": 4, - "freeMemoryIfNeeded": 2, - "REDIS_CMD_DENYOOM": 1, - "REDIS_ERR": 5, - "REDIS_CMD_WRITE": 2, - "REDIS_REPL_CONNECTED": 3, - "tolower": 2, - "REDIS_MULTI": 1, - "queueMultiCommand": 1, - "call": 1, - "REDIS_CALL_FULL": 1, - "save": 2, - "REDIS_SHUTDOWN_SAVE": 1, - "nosave": 2, - "REDIS_SHUTDOWN_NOSAVE": 1, - "SIGKILL": 2, - "rdbRemoveTempFile": 1, - "aof_fsync": 1, - "rdbSave": 1, - "strcmp": 20, - "addReplyBulk": 1, - "addReplyMultiBulkLen": 1, - "addReplyBulkLongLong": 2, - "bytesToHuman": 3, - "*s": 3, - "d": 16, - "sprintf": 10, - "n/": 3, - "LL*1024*1024": 2, - "LL*1024*1024*1024": 1, - "genRedisInfoString": 2, - "*section": 2, - "info": 64, - "uptime": 2, - "rusage": 1, - "self_ru": 2, - "c_ru": 2, - "lol": 3, - "bib": 3, - "allsections": 12, - "defsections": 11, - "sections": 11, - "section": 14, - "getrusage": 2, - "RUSAGE_SELF": 1, - "RUSAGE_CHILDREN": 1, - "getClientsMaxBuffers": 1, - "utsname": 1, - "sdscat": 14, - "uname": 1, - "REDIS_VERSION": 4, - "redisGitSHA1": 3, - "strtol": 2, - "redisGitDirty": 3, - "name.sysname": 1, - "name.release": 1, - "name.machine": 1, - "aeGetApiName": 1, - "__GNUC_MINOR__": 2, - "__GNUC_PATCHLEVEL__": 1, - "uptime/": 1, - "*24": 1, - "hmem": 3, - "peak_hmem": 3, - "zmalloc_get_rss": 1, - "lua_gc": 1, - "server.lua": 1, - "LUA_GCCOUNT": 1, - "*1024LL": 1, - "zmalloc_get_fragmentation_ratio": 1, - "ZMALLOC_LIB": 2, - "aofRewriteBufferSize": 2, - "bioPendingJobsOfType": 1, - "REDIS_BIO_AOF_FSYNC": 1, - "perc": 3, - "eta": 4, - "elapsed": 3, - "off_t": 1, - "remaining_bytes": 1, - "server.loading_total_bytes": 3, - "server.loading_loaded_bytes": 3, - "server.loading_start_time": 2, - "elapsed*remaining_bytes": 1, - "/server.loading_loaded_bytes": 1, - "REDIS_REPL_TRANSFER": 2, - "server.repl_transfer_left": 1, - "server.repl_transfer_lastio": 1, - "slaveid": 3, - "listIter": 2, - "li": 6, - "listRewind": 2, - "listNext": 2, - "*slave": 2, - "*state": 1, - "anetPeerToString": 1, - "slave": 3, - "replstate": 1, - "REDIS_REPL_WAIT_BGSAVE_START": 1, - "REDIS_REPL_WAIT_BGSAVE_END": 1, - "REDIS_REPL_SEND_BULK": 1, - "REDIS_REPL_ONLINE": 1, - "self_ru.ru_stime.tv_sec": 1, - "self_ru.ru_stime.tv_usec/1000000": 1, - "self_ru.ru_utime.tv_sec": 1, - "self_ru.ru_utime.tv_usec/1000000": 1, - "c_ru.ru_stime.tv_sec": 1, - "c_ru.ru_stime.tv_usec/1000000": 1, - "c_ru.ru_utime.tv_sec": 1, - "c_ru.ru_utime.tv_usec/1000000": 1, - "calls": 4, - "microseconds": 1, - "microseconds/c": 1, - "keys": 4, - "REDIS_MONITOR": 1, - "slaveseldb": 1, - "listAddNodeTail": 1, - "mem_used": 9, - "mem_tofree": 3, - "mem_freed": 4, - "slaves": 3, - "obuf_bytes": 3, - "getClientOutputBufferMemoryUsage": 1, - "k": 15, - "keys_freed": 3, - "bestval": 5, - "bestkey": 9, - "REDIS_MAXMEMORY_ALLKEYS_LRU": 2, - "REDIS_MAXMEMORY_ALLKEYS_RANDOM": 2, - "REDIS_MAXMEMORY_VOLATILE_RANDOM": 1, - "thiskey": 7, - "thisval": 8, - "dictFind": 1, - "dictGetVal": 2, - "estimateObjectIdleTime": 1, - "REDIS_MAXMEMORY_VOLATILE_TTL": 1, - "delta": 54, - "flushSlavesOutputBuffers": 1, - "linuxOvercommitMemoryValue": 2, - "fgets": 1, - "atoi": 3, - "linuxOvercommitMemoryWarning": 2, - "createPidFile": 2, - "daemonize": 2, - "STDIN_FILENO": 1, - "STDERR_FILENO": 2, - "printf": 4, - "usage": 2, - "stderr": 15, - "redisAsciiArt": 2, - "*16": 2, - "ascii_logo": 1, - "sigtermHandler": 2, - "sig": 2, - "sigaction": 6, - "act": 6, - "sigemptyset": 2, - "act.sa_mask": 2, - "act.sa_flags": 2, - "act.sa_handler": 1, - "SIGTERM": 1, - "HAVE_BACKTRACE": 1, - "SA_NODEFER": 1, - "SA_RESETHAND": 1, - "SA_SIGINFO": 1, - "act.sa_sigaction": 1, - "sigsegvHandler": 1, - "SIGSEGV": 1, - "SIGBUS": 1, - "SIGFPE": 1, - "SIGILL": 1, - "memtest": 2, - "megabytes": 1, - "passes": 1, - "main": 3, - "**argv": 6, - "zmalloc_enable_thread_safeness": 1, - "srand": 1, - "dictSetHashFunctionSeed": 1, - "*configfile": 1, - "configfile": 2, - "sdscatrepr": 1, - "loadServerConfig": 1, - "loadAppendOnlyFile": 1, - "/1000000": 2, - "rdbLoad": 1, - "ENOENT": 3, - "aeSetBeforeSleepProc": 1, - "aeMain": 1, - "aeDeleteEventLoop": 1, - "ATSHOME_LIBATS_DYNARRAY_CATS": 3, - "": 5, - "atslib_dynarray_memcpy": 1, - "memcpy": 35, - "atslib_dynarray_memmove": 1, - "memmove": 2, - "VALUE": 13, - "rb_cRDiscount": 4, - "rb_rdiscount_to_html": 2, - "*argv": 6, - "self": 9, - "*res": 2, - "szres": 8, - "text": 22, - "rb_funcall": 14, - "rb_intern": 15, - "rb_str_buf_new": 2, - "Check_Type": 2, - "T_STRING": 2, - "rb_rdiscount__get_flags": 3, - "MMIOT": 2, - "*doc": 2, - "mkd_string": 2, - "RSTRING_PTR": 2, - "RSTRING_LEN": 2, - "mkd_compile": 2, - "doc": 6, - "mkd_document": 1, - "res": 4, - "EOF": 26, - "rb_str_cat": 4, - "mkd_cleanup": 2, - "rb_respond_to": 1, - "rb_rdiscount_toc_content": 2, - "mkd_toc": 1, - "ruby_obj": 11, - "MKD_TABSTOP": 1, - "MKD_NOHEADER": 1, - "Qtrue": 10, - "MKD_NOPANTS": 1, - "MKD_NOHTML": 1, - "MKD_TOC": 1, - "MKD_NOIMAGE": 1, - "MKD_NOLINKS": 1, - "MKD_NOTABLES": 1, - "MKD_STRICT": 1, - "MKD_AUTOLINK": 1, - "MKD_SAFELINK": 1, - "MKD_NO_EXT": 1, - "Init_rdiscount": 1, - "rb_define_class": 1, - "rb_cObject": 1, - "rb_define_method": 2, - "strncasecmp": 2, - "_strnicmp": 1, - "REF_TABLE_SIZE": 1, - "BUFFER_BLOCK": 5, - "BUFFER_SPAN": 9, - "MKD_LI_END": 1, - "gperf_case_strncmp": 1, - "GPERF_DOWNCASE": 1, - "GPERF_CASE_STRNCMP": 1, - "link_ref": 2, - "*link": 1, - "*title": 1, - "*next": 6, - "sd_markdown": 6, - "tag": 1, - "tag_len": 3, - "w": 21, - "is_empty": 4, - "htmlblock_end": 3, - "*curtag": 2, - "*rndr": 4, - "start_of_line": 2, - "tag_size": 3, - "curtag": 8, - "end_tag": 4, - "block_lines": 3, - "htmlblock_end_tag": 1, - "rndr": 25, - "parse_htmlblock": 1, - "*ob": 3, - "do_render": 4, - "tag_end": 7, - "work": 4, - "find_block_tag": 1, - "work.size": 5, - "cb.blockhtml": 6, - "ob": 14, - "opaque": 8, - "parse_table_row": 1, - "columns": 3, - "*col_data": 1, - "header_flag": 3, - "col": 28, - "*row_work": 1, - "cb.table_cell": 3, - "cb.table_row": 2, - "row_work": 4, - "rndr_newbuf": 2, - "cell_start": 5, - "cell_end": 6, - "*cell_work": 1, - "cell_work": 3, - "_isspace": 3, - "parse_inline": 1, - "col_data": 2, - "rndr_popbuf": 2, - "empty_cell": 2, - "parse_table_header": 1, - "*columns": 2, - "**column_data": 1, - "header_end": 7, - "under_end": 1, - "*column_data": 1, - "calloc": 1, - "beg": 10, - "doc_size": 6, - "document": 9, - "UTF8_BOM": 1, - "is_ref": 1, - "md": 18, - "refs": 2, - "expand_tabs": 1, - "bufputc": 2, - "bufgrow": 1, - "MARKDOWN_GROW": 1, - "cb.doc_header": 2, - "parse_block": 1, - "cb.doc_footer": 2, - "bufrelease": 3, - "free_link_refs": 1, - "work_bufs": 8, - ".size": 2, - "sd_markdown_free": 1, - "*md": 1, - ".asize": 2, - ".item": 2, - "stack_free": 2, - "sd_version": 1, - "*ver_major": 2, - "*ver_minor": 2, - "*ver_revision": 2, - "SUNDOWN_VER_MAJOR": 1, - "SUNDOWN_VER_MINOR": 1, - "SUNDOWN_VER_REVISION": 1, - "__2DGFX": 2, - "": 1, - "": 1, - "VGAPIX": 1, - "x": 95, - "y": 55, - "vgabasemem": 3, - "DPMI_REGS": 1, - "regs": 2, - "//void": 1, - "setvgabasemem": 1, - "drw_chdis": 4, - "mode": 15, - "draw_func_change_display": 1, - "drw_pix": 2, - "COLORS": 12, - "drw_line": 6, - "x0": 10, - "y0": 10, - "x1": 10, - "y1": 9, - "drw_rectl": 2, - "h": 12, - "drw_rectf": 2, - "drw_cirl": 1, - "rad": 3, - "drw_tex": 2, - "tex": 3, - "D_init": 2, - "D_exit": 2, - "save_commit_buffer": 3, - "*commit_type": 2, - "commit": 59, - "*check_commit": 1, - "*obj": 9, - "quiet": 5, - "obj": 48, - "OBJ_COMMIT": 5, - "sha1_to_hex": 8, - "sha1": 20, - "typename": 2, - "*lookup_commit_reference_gently": 2, - "deref_tag": 1, - "parse_object": 1, - "check_commit": 2, - "*lookup_commit_reference": 2, - "lookup_commit_reference_gently": 1, - "*lookup_commit_or_die": 2, - "*ref_name": 2, - "lookup_commit_reference": 2, - "die": 5, - "_": 3, - "ref_name": 2, - "hashcmp": 2, - "object.sha1": 8, - "warning": 1, - "*lookup_commit": 2, - "lookup_object": 2, - "create_object": 2, - "alloc_commit_node": 1, - "*lookup_commit_reference_by_name": 2, - "*name": 12, - "*commit": 10, - "get_sha1": 1, - "parse_commit": 3, - "parse_commit_date": 2, - "*tail": 2, - "*dateptr": 1, - "tail": 12, - "dateptr": 2, - "strtoul": 2, - "commit_graft": 13, - "**commit_graft": 1, - "commit_graft_alloc": 4, - "commit_graft_nr": 5, - "commit_graft_pos": 2, - "lo": 6, - "hi": 5, - "mi": 5, - "*graft": 3, - "graft": 10, - "register_commit_graft": 2, - "ignore_dups": 2, - "pos": 7, - "alloc_nr": 1, - "xrealloc": 2, - "parse_commit_buffer": 3, - "buffer": 10, - "*bufptr": 1, - "parent": 7, - "commit_list": 35, - "**pptr": 1, - "item": 24, - "object.parsed": 4, - "bufptr": 12, - "46": 1, - "tree": 3, - "5": 1, - "45": 1, - "bogus": 1, - "get_sha1_hex": 2, - "lookup_tree": 1, - "pptr": 5, - "parents": 4, - "lookup_commit_graft": 1, - "*new_parent": 2, - "48": 1, - "7": 1, - "47": 1, - "bad": 1, - "in": 11, - "nr_parent": 3, - "grafts_replace_parents": 1, - "new_parent": 6, - "lookup_commit": 2, - "commit_list_insert": 2, - "next": 8, - "object_type": 1, - "ret": 142, - "read_sha1_file": 1, - "find_commit_subject": 2, - "*commit_buffer": 2, - "**subject": 2, - "*eol": 1, - "*p": 9, - "commit_buffer": 1, - "b_date": 3, - "b": 66, - "a_date": 2, - "*commit_list_get_next": 1, - "*a": 9, - "commit_list_set_next": 1, - "commit_list_sort_by_date": 2, - "**list": 5, - "*list": 2, - "llist_mergesort": 1, - "peel_to_type": 1, - "util": 3, - "merge_remote_desc": 3, - "*desc": 1, - "desc": 5, - "xmalloc": 2, - "strdup": 1, - "**commit_list_append": 2, - "**next": 2, - "*new": 1, - "new": 4, - "": 3, - "": 3, - "ULLONG_MAX": 10, - "MIN": 3, - "SET_ERRNO": 47, - "e": 4, - "parser": 334, - "__LINE__": 50, - "CALLBACK_NOTIFY_": 3, - "FOR": 11, - "ER": 4, - "HPE_OK": 10, - "settings": 6, - "on_##FOR": 4, - "HPE_CB_##FOR": 2, - "CALLBACK_NOTIFY": 10, - "CALLBACK_NOTIFY_NOADVANCE": 2, - "CALLBACK_DATA_": 4, - "LEN": 2, - "FOR##_mark": 7, - "CALLBACK_DATA": 10, - "CALLBACK_DATA_NOADVANCE": 6, - "MARK": 7, - "PROXY_CONNECTION": 4, - "CONNECTION": 4, - "CONTENT_LENGTH": 4, - "TRANSFER_ENCODING": 4, - "UPGRADE": 4, - "CHUNKED": 4, - "KEEP_ALIVE": 4, - "CLOSE": 4, - "*method_strings": 1, - "#string": 1, - "unhex": 3, - "normal_url_char": 3, - "T": 3, - "s_dead": 10, - "s_start_req_or_res": 4, - "s_res_or_resp_H": 3, - "s_start_res": 5, - "s_res_H": 3, - "s_res_HT": 4, - "s_res_HTT": 3, - "s_res_HTTP": 3, - "s_res_first_http_major": 3, - "s_res_http_major": 3, - "s_res_first_http_minor": 3, - "s_res_http_minor": 3, - "s_res_first_status_code": 3, - "s_res_status_code": 3, - "s_res_status": 3, - "s_res_line_almost_done": 4, - "s_start_req": 6, - "s_req_method": 4, - "s_req_spaces_before_url": 5, - "s_req_schema": 6, - "s_req_schema_slash": 6, - "s_req_schema_slash_slash": 6, - "s_req_host_start": 8, - "s_req_host_v6_start": 7, - "s_req_host_v6": 7, - "s_req_host_v6_end": 7, - "s_req_host": 8, - "s_req_port_start": 7, - "s_req_port": 6, - "s_req_path": 8, - "s_req_query_string_start": 8, - "s_req_query_string": 7, - "s_req_fragment_start": 7, - "s_req_fragment": 7, - "s_req_http_start": 3, - "s_req_http_H": 3, - "s_req_http_HT": 3, - "s_req_http_HTT": 3, - "s_req_http_HTTP": 3, - "s_req_first_http_major": 3, - "s_req_http_major": 3, - "s_req_first_http_minor": 3, - "s_req_http_minor": 3, - "s_req_line_almost_done": 4, - "s_header_field_start": 12, - "s_header_field": 4, - "s_header_value_start": 4, - "s_header_value": 5, - "s_header_value_lws": 3, - "s_header_almost_done": 6, - "s_chunk_size_start": 4, - "s_chunk_size": 3, - "s_chunk_parameters": 3, - "s_chunk_size_almost_done": 4, - "s_headers_almost_done": 4, - "s_headers_done": 4, - "s_chunk_data": 3, - "s_chunk_data_almost_done": 3, - "s_chunk_data_done": 3, - "s_body_identity": 3, - "s_body_identity_eof": 4, - "s_message_done": 3, - "PARSING_HEADER": 2, - "header_states": 1, - "h_general": 23, - "0": 11, - "h_C": 3, - "h_CO": 3, - "h_CON": 3, - "h_matching_connection": 3, - "h_matching_proxy_connection": 3, - "h_matching_content_length": 3, - "h_matching_transfer_encoding": 3, - "h_matching_upgrade": 3, - "h_connection": 6, - "h_content_length": 5, - "h_transfer_encoding": 5, - "h_upgrade": 4, - "h_matching_transfer_encoding_chunked": 3, - "h_matching_connection_keep_alive": 3, - "h_matching_connection_close": 3, - "h_transfer_encoding_chunked": 4, - "h_connection_keep_alive": 4, - "h_connection_close": 4, - "Macros": 1, - "classes": 1, - "depends": 1, - "strict": 2, - "define": 14, - "CR": 18, - "LF": 21, - "LOWER": 7, - "0x20": 1, - "IS_ALPHA": 5, - "z": 64, - "IS_NUM": 14, - "9": 1, - "IS_ALPHANUM": 3, - "IS_HEX": 2, - "TOKEN": 4, - "IS_URL_CHAR": 6, - "IS_HOST_CHAR": 4, - "0x80": 1, - "endif": 6, - "start_state": 1, - "cond": 1, - "HPE_STRICT": 1, - "HTTP_STRERROR_GEN": 3, - "#n": 1, - "*description": 1, - "http_strerror_tab": 7, - "http_message_needs_eof": 4, - "parse_url_char": 5, - "ch": 145, - "unhex_val": 7, - "*header_field_mark": 1, - "*header_value_mark": 1, - "*url_mark": 1, - "*body_mark": 1, - "message_complete": 7, - "HPE_INVALID_EOF_STATE": 1, - "header_field_mark": 2, - "header_value_mark": 2, - "url_mark": 2, - "HPE_HEADER_OVERFLOW": 1, - "reexecute_byte": 7, - "HPE_CLOSED_CONNECTION": 1, - "message_begin": 3, - "HPE_INVALID_CONSTANT": 3, - "HTTP_HEAD": 2, - "STRICT_CHECK": 15, - "HPE_INVALID_VERSION": 12, - "HPE_INVALID_STATUS": 3, - "HPE_INVALID_METHOD": 4, - "HTTP_CONNECT": 4, - "HTTP_DELETE": 1, - "HTTP_GET": 1, - "HTTP_LOCK": 1, - "HTTP_MKCOL": 2, - "HTTP_NOTIFY": 1, - "HTTP_OPTIONS": 1, - "HTTP_POST": 2, - "HTTP_REPORT": 1, - "HTTP_SUBSCRIBE": 2, - "HTTP_TRACE": 1, - "HTTP_UNLOCK": 2, - "*matcher": 1, - "matcher": 3, - "method_strings": 2, - "HTTP_CHECKOUT": 1, - "HTTP_COPY": 1, - "HTTP_MOVE": 1, - "HTTP_MERGE": 1, - "HTTP_MSEARCH": 1, - "HTTP_MKACTIVITY": 1, - "HTTP_SEARCH": 1, - "HTTP_PROPFIND": 2, - "HTTP_PUT": 2, - "HTTP_PATCH": 1, - "HTTP_PURGE": 1, - "HTTP_UNSUBSCRIBE": 1, - "HTTP_PROPPATCH": 1, - "url": 4, - "HPE_INVALID_URL": 4, - "HPE_LF_EXPECTED": 1, - "HPE_INVALID_HEADER_TOKEN": 2, - "header_field": 5, - "header_value": 6, - "HPE_INVALID_CONTENT_LENGTH": 4, - "NEW_MESSAGE": 6, - "HPE_CB_headers_complete": 1, - "to_read": 6, - "body": 6, - "body_mark": 2, - "HPE_INVALID_CHUNK_SIZE": 2, - "HPE_INVALID_INTERNAL_STATE": 1, - "HPE_UNKNOWN": 1, - "Does": 1, - "find": 1, - "message": 3, - "http_method_str": 1, - "http_errno_name": 1, - ".name": 1, - "http_errno_description": 1, - ".description": 1, - "uf": 14, - "old_uf": 4, - "u": 21, - ".len": 3, - ".off": 2, - "xffff": 1, - "HPE_PAUSED": 2, - "PY_SSIZE_T_CLEAN": 1, - "Py_PYTHON_H": 1, - "Python": 2, - "headers": 1, - "needed": 10, - "compile": 1, - "extensions": 1, - "please": 1, - "install": 1, - "development": 1, - "Python.": 1, - "#elif": 14, - "PY_VERSION_HEX": 11, - "Cython": 1, - "requires": 1, - ".": 1, - "offsetof": 2, - "member": 2, - "type*": 1, - "WIN32": 2, - "MS_WINDOWS": 2, - "__stdcall": 2, - "__cdecl": 2, - "__fastcall": 2, - "DL_IMPORT": 2, - "DL_EXPORT": 2, - "PY_LONG_LONG": 5, - "LONG_LONG": 1, - "Py_HUGE_VAL": 2, - "HUGE_VAL": 1, - "PYPY_VERSION": 1, - "CYTHON_COMPILING_IN_PYPY": 3, - "CYTHON_COMPILING_IN_CPYTHON": 6, - "Py_ssize_t": 35, - "PY_SSIZE_T_MAX": 1, - "INT_MAX": 1, - "PY_SSIZE_T_MIN": 1, - "INT_MIN": 1, - "PY_FORMAT_SIZE_T": 1, - "CYTHON_FORMAT_SSIZE_T": 2, - "PyInt_FromSsize_t": 6, - "PyInt_FromLong": 3, - "PyInt_AsSsize_t": 3, - "__Pyx_PyInt_AsInt": 2, - "PyNumber_Index": 1, - "PyNumber_Check": 2, - "PyFloat_Check": 2, - "PyNumber_Int": 1, - "PyErr_Format": 4, - "PyExc_TypeError": 4, - "Py_TYPE": 7, - "tp_name": 4, - "PyObject*": 24, - "__Pyx_PyIndex_Check": 3, - "PyComplex_Check": 1, - "PyIndex_Check": 2, - "PyErr_WarnEx": 1, - "category": 2, - "stacklevel": 1, - "PyErr_Warn": 1, - "__PYX_BUILD_PY_SSIZE_T": 2, - "Py_REFCNT": 1, - "ob_refcnt": 1, - "ob_type": 7, - "Py_SIZE": 1, - "PyVarObject*": 1, - "ob_size": 1, - "PyVarObject_HEAD_INIT": 1, - "PyObject_HEAD_INIT": 1, - "PyType_Modified": 1, - "PyObject": 276, - "itemsize": 1, - "readonly": 1, - "ndim": 2, - "*format": 2, - "*shape": 1, - "*strides": 1, - "*suboffsets": 1, - "*internal": 1, - "Py_buffer": 6, - "PyBUF_SIMPLE": 1, - "PyBUF_WRITABLE": 3, - "PyBUF_FORMAT": 3, - "PyBUF_ND": 2, - "PyBUF_STRIDES": 6, - "PyBUF_C_CONTIGUOUS": 1, - "PyBUF_F_CONTIGUOUS": 1, - "PyBUF_ANY_CONTIGUOUS": 1, - "PyBUF_INDIRECT": 2, - "PyBUF_RECORDS": 1, - "PyBUF_FULL": 1, - "PY_MAJOR_VERSION": 13, - "__Pyx_BUILTIN_MODULE_NAME": 2, - "__Pyx_PyCode_New": 2, - "l": 7, - "fv": 4, - "cell": 4, - "fn": 5, - "fline": 4, - "lnos": 4, - "PyCode_New": 2, - "PY_MINOR_VERSION": 1, - "PyUnicode_FromString": 2, - "PyUnicode_Decode": 1, - "Py_TPFLAGS_CHECKTYPES": 1, - "Py_TPFLAGS_HAVE_INDEX": 1, - "Py_TPFLAGS_HAVE_NEWBUFFER": 1, - "PyUnicode_KIND": 1, - "CYTHON_PEP393_ENABLED": 2, - "__Pyx_PyUnicode_READY": 2, - "op": 8, - "likely": 22, - "PyUnicode_IS_READY": 1, - "_PyUnicode_Ready": 1, - "__Pyx_PyUnicode_GET_LENGTH": 2, - "PyUnicode_GET_LENGTH": 1, - "__Pyx_PyUnicode_READ_CHAR": 2, - "PyUnicode_READ_CHAR": 1, - "__Pyx_PyUnicode_READ": 2, - "PyUnicode_READ": 1, - "PyUnicode_GET_SIZE": 1, - "Py_UCS4": 2, - "PyUnicode_AS_UNICODE": 1, - "Py_UNICODE*": 1, - "PyBaseString_Type": 1, - "PyUnicode_Type": 2, - "PyStringObject": 2, - "PyUnicodeObject": 1, - "PyString_Type": 2, - "PyString_Check": 2, - "PyUnicode_Check": 1, - "PyString_CheckExact": 2, - "PyUnicode_CheckExact": 1, - "PyBytesObject": 1, - "PyBytes_Type": 1, - "PyBytes_Check": 1, - "PyBytes_CheckExact": 1, - "PyBytes_FromString": 2, - "PyString_FromString": 2, - "PyBytes_FromStringAndSize": 1, - "PyString_FromStringAndSize": 1, - "PyBytes_FromFormat": 1, - "PyString_FromFormat": 1, - "PyBytes_DecodeEscape": 1, - "PyString_DecodeEscape": 1, - "PyBytes_AsString": 2, - "PyString_AsString": 1, - "PyBytes_AsStringAndSize": 1, - "PyString_AsStringAndSize": 1, - "PyBytes_Size": 1, - "PyString_Size": 1, - "PyBytes_AS_STRING": 1, - "PyString_AS_STRING": 1, - "PyBytes_GET_SIZE": 1, - "PyString_GET_SIZE": 1, - "PyBytes_Repr": 1, - "PyString_Repr": 1, - "PyBytes_Concat": 1, - "PyString_Concat": 1, - "PyBytes_ConcatAndDel": 1, - "PyString_ConcatAndDel": 1, - "PySet_Check": 1, - "PyObject_TypeCheck": 3, - "PySet_Type": 2, - "PyFrozenSet_Check": 1, - "PyFrozenSet_Type": 1, - "PySet_CheckExact": 2, - "__Pyx_TypeCheck": 1, - "PyTypeObject": 25, - "PyIntObject": 1, - "PyLongObject": 2, - "PyInt_Type": 1, - "PyLong_Type": 1, - "PyInt_Check": 1, - "PyLong_Check": 1, - "PyInt_CheckExact": 1, - "PyLong_CheckExact": 1, - "PyInt_FromString": 1, - "PyLong_FromString": 1, - "PyInt_FromUnicode": 1, - "PyLong_FromUnicode": 1, - "PyLong_FromLong": 1, - "PyInt_FromSize_t": 1, - "PyLong_FromSize_t": 1, - "PyLong_FromSsize_t": 1, - "PyInt_AsLong": 2, - "PyLong_AsLong": 1, - "PyInt_AS_LONG": 1, - "PyLong_AS_LONG": 1, - "PyLong_AsSsize_t": 1, - "PyInt_AsUnsignedLongMask": 1, - "PyLong_AsUnsignedLongMask": 1, - "PyInt_AsUnsignedLongLongMask": 1, - "PyLong_AsUnsignedLongLongMask": 1, - "PyBoolObject": 1, - "Py_hash_t": 1, - "__Pyx_PyInt_FromHash_t": 2, - "__Pyx_PyInt_AsHash_t": 2, - "__Pyx_PySequence_GetSlice": 2, - "PySequence_GetSlice": 2, - "__Pyx_PySequence_SetSlice": 2, - "PySequence_SetSlice": 2, - "__Pyx_PySequence_DelSlice": 2, - "PySequence_DelSlice": 2, - "unlikely": 54, - "PyErr_SetString": 3, - "PyExc_SystemError": 3, - "tp_as_mapping": 3, - "PyMethod_New": 2, - "func": 3, - "klass": 1, - "PyInstanceMethod_New": 1, - "__Pyx_GetAttrString": 2, - "PyObject_GetAttrString": 2, - "__Pyx_SetAttrString": 2, - "PyObject_SetAttrString": 2, - "__Pyx_DelAttrString": 2, - "PyObject_DelAttrString": 2, - "__Pyx_NAMESTR": 2, - "__Pyx_DOCSTR": 2, - "__Pyx_PyNumber_Divide": 2, - "PyNumber_TrueDivide": 1, - "__Pyx_PyNumber_InPlaceDivide": 2, - "PyNumber_InPlaceTrueDivide": 1, - "PyNumber_Divide": 1, - "PyNumber_InPlaceDivide": 1, - "__PYX_EXTERN_C": 3, - "_USE_MATH_DEFINES": 1, - "__PYX_HAVE__sklearn__linear_model__sgd_fast": 1, - "__PYX_HAVE_API__sklearn__linear_model__sgd_fast": 1, - "_OPENMP": 1, - "": 1, - "PYREX_WITHOUT_ASSERTIONS": 1, - "CYTHON_WITHOUT_ASSERTIONS": 1, - "CYTHON_INLINE": 65, - "__inline__": 95, - "__inline": 1, - "__STDC_VERSION__": 2, - "L": 1, - "inline": 3, - "CYTHON_UNUSED": 14, - "**p": 1, - "is_unicode": 1, - "is_str": 1, - "intern": 1, - "__Pyx_StringTabEntry": 2, - "__Pyx_PyBytes_FromUString": 1, - "__Pyx_PyBytes_AsUString": 1, - "__Pyx_Owned_Py_None": 1, - "Py_INCREF": 10, - "Py_None": 8, - "__Pyx_PyBool_FromLong": 1, - "Py_True": 2, - "Py_False": 2, - "__Pyx_PyObject_IsTrue": 1, - "__Pyx_PyNumber_Int": 1, - "__Pyx_PyIndex_AsSsize_t": 1, - "__Pyx_PyInt_FromSize_t": 1, - "__Pyx_PyInt_AsSize_t": 1, - "__pyx_PyFloat_AsDouble": 12, - "PyFloat_CheckExact": 1, - "PyFloat_AS_DOUBLE": 1, - "PyFloat_AsDouble": 2, - "__pyx_PyFloat_AsFloat": 1, - "__builtin_expect": 2, - "*__pyx_m": 1, - "*__pyx_b": 1, - "*__pyx_empty_tuple": 1, - "*__pyx_empty_bytes": 1, - "__pyx_lineno": 58, - "__pyx_clineno": 58, - "__pyx_cfilenm": 1, - "__FILE__": 4, - "*__pyx_filename": 7, - "CYTHON_CCOMPLEX": 12, - "_Complex_I": 3, - "": 1, - "": 1, - "__sun__": 1, - "fj": 1, - "*__pyx_f": 1, - "IS_UNSIGNED": 1, - "__Pyx_StructField_": 2, - "__PYX_BUF_FLAGS_PACKED_STRUCT": 1, - "__Pyx_StructField_*": 1, - "fields": 1, - "arraysize": 1, - "typegroup": 1, - "is_unsigned": 1, - "__Pyx_TypeInfo": 2, - "__Pyx_TypeInfo*": 2, - "offset": 1, - "__Pyx_StructField": 2, - "__Pyx_StructField*": 1, - "field": 1, - "parent_offset": 1, - "__Pyx_BufFmt_StackElem": 1, - "root": 1, - "__Pyx_BufFmt_StackElem*": 2, - "fmt_offset": 1, - "new_count": 1, - "enc_count": 1, - "struct_alignment": 1, - "is_complex": 1, - "enc_type": 1, - "new_packmode": 1, - "enc_packmode": 1, - "is_valid_array": 1, - "__Pyx_BufFmt_Context": 1, - "npy_int8": 1, - "__pyx_t_5numpy_int8_t": 1, - "npy_int16": 1, - "__pyx_t_5numpy_int16_t": 1, - "npy_int32": 1, - "__pyx_t_5numpy_int32_t": 4, - "npy_int64": 1, - "__pyx_t_5numpy_int64_t": 1, - "npy_uint8": 1, - "__pyx_t_5numpy_uint8_t": 1, - "npy_uint16": 1, - "__pyx_t_5numpy_uint16_t": 1, - "npy_uint32": 1, - "__pyx_t_5numpy_uint32_t": 1, - "npy_uint64": 1, - "__pyx_t_5numpy_uint64_t": 1, - "npy_float32": 1, - "__pyx_t_5numpy_float32_t": 1, - "npy_float64": 1, - "__pyx_t_5numpy_float64_t": 4, - "npy_long": 1, - "__pyx_t_5numpy_int_t": 1, - "npy_longlong": 2, - "__pyx_t_5numpy_long_t": 1, - "__pyx_t_5numpy_longlong_t": 1, - "npy_ulong": 1, - "__pyx_t_5numpy_uint_t": 1, - "npy_ulonglong": 2, - "__pyx_t_5numpy_ulong_t": 1, - "__pyx_t_5numpy_ulonglong_t": 1, - "npy_intp": 1, - "__pyx_t_5numpy_intp_t": 1, - "npy_uintp": 1, - "__pyx_t_5numpy_uintp_t": 1, - "npy_double": 2, - "__pyx_t_5numpy_float_t": 1, - "__pyx_t_5numpy_double_t": 1, - "npy_longdouble": 1, - "__pyx_t_5numpy_longdouble_t": 1, - "__pyx_t_7sklearn_5utils_13weight_vector_DOUBLE": 2, - "__pyx_t_7sklearn_5utils_13weight_vector_INTEGER": 1, - "__pyx_t_7sklearn_5utils_11seq_dataset_DOUBLE": 7, - "__pyx_t_7sklearn_5utils_11seq_dataset_INTEGER": 7, - "__pyx_t_7sklearn_12linear_model_8sgd_fast_DOUBLE": 4, - "__pyx_t_7sklearn_12linear_model_8sgd_fast_INTEGER": 3, - "std": 8, - "complex": 2, - "__pyx_t_float_complex": 27, - "_Complex": 2, - "real": 2, - "imag": 2, - "__pyx_t_double_complex": 27, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction": 15, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression": 11, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber": 6, - "__pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset": 5, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 6, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification": 7, - "__pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset": 2, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Log": 5, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge": 6, - "__pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset": 2, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 6, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber": 5, - "__pyx_obj_7sklearn_5utils_13weight_vector_WeightVector": 3, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss": 5, - "__pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive": 6, - "npy_cfloat": 1, - "__pyx_t_5numpy_cfloat_t": 1, - "npy_cdouble": 2, - "__pyx_t_5numpy_cdouble_t": 1, - "npy_clongdouble": 1, - "__pyx_t_5numpy_clongdouble_t": 1, - "__pyx_t_5numpy_complex_t": 1, - "PyObject_HEAD": 3, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction": 5, - "*__pyx_vtab": 3, - "__pyx_base": 18, - "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset": 4, - "n_samples": 1, - "epsilon": 2, - "current_index": 2, - "stride": 2, - "*X_data_ptr": 2, - "*X_indptr_ptr": 1, - "*X_indices_ptr": 1, - "*Y_data_ptr": 2, - "PyArrayObject": 8, - "*feature_indices": 2, - "*feature_indices_ptr": 2, - "*index": 2, - "*index_data_ptr": 2, - "*sample_weight_data": 2, - "threshold": 2, - "n_features": 2, - "__pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector": 3, - "*w": 2, - "*w_data_ptr": 1, - "wscale": 1, - "sq_norm": 1, - "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_SequentialDataset": 1, - "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset": 2, - "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_ArrayDataset": 1, - "__pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset": 2, - "*__pyx_vtabptr_7sklearn_5utils_11seq_dataset_CSRDataset": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 2, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression": 3, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 2, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber": 2, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Huber": 1, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge": 2, - "__pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification": 1, - "*__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Hinge": 1, - "*__pyx_vtabptr_7sklearn_5utils_13weight_vector_WeightVector": 1, - "CYTHON_REFNANNY": 3, - "__Pyx_RefNannyAPIStruct": 3, - "*__Pyx_RefNanny": 1, - "*__Pyx_RefNannyImportAPI": 1, - "*modname": 1, - "__Pyx_RefNannyDeclarations": 11, - "*__pyx_refnanny": 1, - "WITH_THREAD": 1, - "__Pyx_RefNannySetupContext": 12, - "acquire_gil": 4, - "PyGILState_STATE": 1, - "__pyx_gilstate_save": 2, - "PyGILState_Ensure": 1, - "__pyx_refnanny": 8, - "__Pyx_RefNanny": 8, - "SetupContext": 3, - "PyGILState_Release": 1, - "__Pyx_RefNannyFinishContext": 14, - "FinishContext": 1, - "__Pyx_INCREF": 6, - "INCREF": 1, - "__Pyx_DECREF": 20, - "DECREF": 1, - "__Pyx_GOTREF": 24, - "GOTREF": 1, - "__Pyx_GIVEREF": 9, - "GIVEREF": 1, - "__Pyx_XINCREF": 2, - "__Pyx_XDECREF": 20, - "__Pyx_XGOTREF": 2, - "__Pyx_XGIVEREF": 5, - "Py_DECREF": 2, - "Py_XINCREF": 1, - "Py_XDECREF": 1, - "__Pyx_CLEAR": 1, - "tmp": 18, - "__Pyx_XCLEAR": 1, - "*__Pyx_GetName": 1, - "__Pyx_ErrRestore": 1, - "*type": 4, - "*value": 5, - "*tb": 2, - "__Pyx_ErrFetch": 1, - "**type": 1, - "**value": 1, - "**tb": 1, - "__Pyx_Raise": 4, - "*cause": 1, - "__Pyx_RaiseArgtupleInvalid": 7, - "func_name": 2, - "exact": 6, - "num_min": 1, - "num_max": 1, - "num_found": 1, - "__Pyx_RaiseDoubleKeywordsError": 1, - "kw_name": 1, - "__Pyx_ParseOptionalKeywords": 4, - "*kwds": 1, - "**argnames": 1, - "*kwds2": 1, - "*values": 1, - "num_pos_args": 1, - "function_name": 1, - "__Pyx_ArgTypeTest": 1, - "none_allowed": 1, - "__Pyx_GetBufferAndValidate": 1, - "Py_buffer*": 2, - "dtype": 1, - "nd": 1, - "cast": 1, - "stack": 8, - "__Pyx_SafeReleaseBuffer": 1, - "__Pyx_TypeTest": 1, - "__Pyx_RaiseBufferFallbackError": 1, - "*__Pyx_GetItemInt_Generic": 1, - "*r": 7, - "PyObject_GetItem": 1, - "__Pyx_GetItemInt_List": 1, - "to_py_func": 6, - "__Pyx_GetItemInt_List_Fast": 1, - "__Pyx_GetItemInt_Generic": 6, - "*__Pyx_GetItemInt_List_Fast": 1, - "PyList_GET_SIZE": 5, - "PyList_GET_ITEM": 3, - "PySequence_GetItem": 3, - "__Pyx_GetItemInt_Tuple": 1, - "__Pyx_GetItemInt_Tuple_Fast": 1, - "*__Pyx_GetItemInt_Tuple_Fast": 1, - "PyTuple_GET_SIZE": 14, - "PyTuple_GET_ITEM": 15, - "__Pyx_GetItemInt": 1, - "__Pyx_GetItemInt_Fast": 2, - "PyList_CheckExact": 1, - "PyTuple_CheckExact": 1, - "PySequenceMethods": 1, - "*m": 1, - "tp_as_sequence": 1, - "sq_item": 2, - "sq_length": 2, - "PySequence_Check": 1, - "__Pyx_RaiseTooManyValuesError": 1, - "expected": 2, - "__Pyx_RaiseNeedMoreValuesError": 1, - "__Pyx_RaiseNoneNotIterableError": 1, - "__Pyx_IterFinish": 1, - "__Pyx_IternextUnpackEndCheck": 1, - "*retval": 1, - "shape": 1, - "strides": 1, - "suboffsets": 1, - "__Pyx_Buf_DimInfo": 2, - "refcount": 2, - "pybuffer": 1, - "__Pyx_Buffer": 2, - "*rcbuffer": 1, - "diminfo": 1, - "__Pyx_LocalBuf_ND": 1, - "__Pyx_GetBuffer": 2, - "*view": 2, - "__Pyx_ReleaseBuffer": 2, - "PyObject_GetBuffer": 1, - "PyBuffer_Release": 1, - "__Pyx_zeros": 1, - "__Pyx_minusones": 1, - "*__Pyx_Import": 1, - "*from_list": 1, - "__Pyx_RaiseImportError": 1, - "__Pyx_Print": 1, - "__pyx_print": 1, - "__pyx_print_kwargs": 1, - "__Pyx_PrintOne": 1, - "__Pyx_CREAL": 4, - ".real": 3, - "__Pyx_CIMAG": 4, - ".imag": 3, - "__real__": 1, - "__imag__": 1, - "__Pyx_SET_CREAL": 2, - "__Pyx_SET_CIMAG": 2, - "__pyx_t_float_complex_from_parts": 1, - "__Pyx_c_eqf": 2, - "__Pyx_c_sumf": 2, - "__Pyx_c_difff": 2, - "__Pyx_c_prodf": 2, - "__Pyx_c_quotf": 2, - "__Pyx_c_negf": 2, - "__Pyx_c_is_zerof": 3, - "__Pyx_c_conjf": 3, - "conj": 3, - "__Pyx_c_absf": 3, - "abs": 5, - "__Pyx_c_powf": 3, - "pow": 2, - "conjf": 1, - "cabsf": 1, - "cpowf": 1, - "__pyx_t_double_complex_from_parts": 1, - "__Pyx_c_eq": 2, - "__Pyx_c_sum": 2, - "__Pyx_c_diff": 2, - "__Pyx_c_prod": 2, - "__Pyx_c_quot": 2, - "__Pyx_c_neg": 2, - "__Pyx_c_is_zero": 3, - "__Pyx_c_conj": 3, - "__Pyx_c_abs": 3, - "__Pyx_c_pow": 3, - "cabs": 1, - "cpow": 1, - "__Pyx_PyInt_AsUnsignedChar": 1, - "__Pyx_PyInt_AsUnsignedShort": 1, - "__Pyx_PyInt_AsUnsignedInt": 1, - "__Pyx_PyInt_AsChar": 1, - "__Pyx_PyInt_AsShort": 1, - "signed": 6, - "__Pyx_PyInt_AsSignedChar": 1, - "__Pyx_PyInt_AsSignedShort": 1, - "__Pyx_PyInt_AsSignedInt": 1, - "__Pyx_PyInt_AsLongDouble": 1, - "__Pyx_PyInt_AsUnsignedLong": 1, - "__Pyx_PyInt_AsUnsignedLongLong": 1, - "__Pyx_PyInt_AsLong": 1, - "__Pyx_PyInt_AsLongLong": 1, - "__Pyx_PyInt_AsSignedLong": 1, - "__Pyx_PyInt_AsSignedLongLong": 1, - "__Pyx_WriteUnraisable": 4, - "clineno": 1, - "lineno": 1, - "*filename": 2, - "__Pyx_check_binary_version": 1, - "__Pyx_SetVtable": 1, - "*vtable": 1, - "__Pyx_PyIdentifier_FromString": 3, - "*__Pyx_ImportModule": 1, - "*__Pyx_ImportType": 1, - "*module_name": 1, - "*class_name": 1, - "__Pyx_GetVtable": 1, - "code_line": 4, - "PyCodeObject*": 2, - "code_object": 2, - "__Pyx_CodeObjectCacheEntry": 1, - "__Pyx_CodeObjectCache": 2, - "max_count": 1, - "__Pyx_CodeObjectCacheEntry*": 2, - "entries": 2, - "__pyx_code_cache": 1, - "__pyx_bisect_code_objects": 1, - "PyCodeObject": 1, - "*__pyx_find_code_object": 1, - "__pyx_insert_code_object": 1, - "__Pyx_AddTraceback": 7, - "*funcname": 1, - "c_line": 1, - "py_line": 1, - "__Pyx_InitStrings": 1, - "*t": 2, - "*__pyx_ptype_7cpython_4type_type": 1, - "*__pyx_ptype_5numpy_dtype": 1, - "*__pyx_ptype_5numpy_flatiter": 1, - "*__pyx_ptype_5numpy_broadcast": 1, - "*__pyx_ptype_5numpy_ndarray": 1, - "*__pyx_ptype_5numpy_ufunc": 1, - "*__pyx_f_5numpy__util_dtypestring": 1, - "PyArray_Descr": 1, - "*__pyx_ptype_7sklearn_5utils_13weight_vector_WeightVector": 1, - "*__pyx_ptype_7sklearn_5utils_11seq_dataset_SequentialDataset": 1, - "*__pyx_ptype_7sklearn_5utils_11seq_dataset_ArrayDataset": 1, - "*__pyx_ptype_7sklearn_5utils_11seq_dataset_CSRDataset": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_LossFunction": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Regression": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Classification": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_ModifiedHuber": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Hinge": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredHinge": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Log": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredLoss": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Huber": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive": 1, - "*__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_max": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_min": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_sqnorm": 1, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty": 1, - "__Pyx_TypeInfo_nn___pyx_t_7sklearn_12linear_model_8sgd_fast_DOUBLE": 1, - "__Pyx_MODULE_NAME": 1, - "__pyx_module_is_main_sklearn__linear_model__sgd_fast": 1, - "*__pyx_builtin_NotImplementedError": 1, - "*__pyx_builtin_range": 1, - "*__pyx_builtin_ValueError": 1, - "*__pyx_builtin_RuntimeError": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 2, - "*__pyx_v_self": 52, - "__pyx_v_p": 46, - "__pyx_v_y": 46, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_4__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge___init__": 1, - "__pyx_v_threshold": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_6__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge___init__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_6__reduce__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_4__reduce__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_2dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_4__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber___init__": 1, - "__pyx_v_c": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_6__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive___init__": 1, - "__pyx_v_epsilon": 2, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_6__reduce__": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive___init__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_2loss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_4dloss": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_6__reduce__": 1, - "*__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd": 1, - "*__pyx_self": 1, - "*__pyx_v_weights": 1, - "__pyx_v_intercept": 1, - "*__pyx_v_loss": 1, - "__pyx_v_penalty_type": 1, - "__pyx_v_alpha": 1, - "__pyx_v_C": 1, - "__pyx_v_rho": 1, - "*__pyx_v_dataset": 1, - "__pyx_v_n_iter": 1, - "__pyx_v_fit_intercept": 1, - "__pyx_v_verbose": 1, - "__pyx_v_shuffle": 1, - "*__pyx_v_seed": 1, - "__pyx_v_weight_pos": 1, - "__pyx_v_weight_neg": 1, - "__pyx_v_learning_rate": 1, - "__pyx_v_eta0": 1, - "__pyx_v_power_t": 1, - "__pyx_v_t": 1, - "__pyx_v_intercept_decay": 1, - "__pyx_pf_5numpy_7ndarray___getbuffer__": 1, - "*__pyx_v_info": 2, - "__pyx_v_flags": 1, - "__pyx_pf_5numpy_7ndarray_2__releasebuffer__": 1, - "__pyx_k_1": 1, - "__pyx_k_2": 1, - "__pyx_k_3": 1, - "__pyx_k_4": 1, - "__pyx_k_6": 1, - "__pyx_k_8": 1, - "__pyx_k_10": 1, - "__pyx_k_12": 1, - "__pyx_k_13": 1, - "__pyx_k_16": 1, - "__pyx_k_20": 1, - "__pyx_k_21": 1, - "__pyx_k__B": 1, - "__pyx_k__C": 1, - "__pyx_k__H": 1, - "__pyx_k__I": 1, - "__pyx_k__L": 1, - "__pyx_k__O": 1, - "__pyx_k__Q": 1, - "__pyx_k__b": 1, - "__pyx_k__c": 1, - "__pyx_k__d": 1, - "__pyx_k__f": 1, - "__pyx_k__g": 1, - "__pyx_k__h": 1, - "__pyx_k__i": 1, - "__pyx_k__l": 1, - "__pyx_k__p": 1, - "__pyx_k__q": 1, - "__pyx_k__t": 1, - "__pyx_k__u": 1, - "__pyx_k__w": 1, - "__pyx_k__y": 1, - "__pyx_k__Zd": 1, - "__pyx_k__Zf": 1, - "__pyx_k__Zg": 1, - "__pyx_k__np": 1, - "__pyx_k__any": 1, - "__pyx_k__eta": 1, - "__pyx_k__rho": 1, - "__pyx_k__sys": 1, - "__pyx_k__eta0": 1, - "__pyx_k__loss": 1, - "__pyx_k__seed": 1, - "__pyx_k__time": 1, - "__pyx_k__xnnz": 1, - "__pyx_k__alpha": 1, - "__pyx_k__count": 1, - "__pyx_k__dloss": 1, - "__pyx_k__dtype": 1, - "__pyx_k__epoch": 1, - "__pyx_k__isinf": 1, - "__pyx_k__isnan": 1, - "__pyx_k__numpy": 1, - "__pyx_k__order": 1, - "__pyx_k__range": 1, - "__pyx_k__shape": 1, - "__pyx_k__zeros": 1, - "__pyx_k__n_iter": 1, - "__pyx_k__update": 1, - "__pyx_k__dataset": 1, - "__pyx_k__epsilon": 1, - "__pyx_k__float64": 1, - "__pyx_k__nonzero": 1, - "__pyx_k__power_t": 1, - "__pyx_k__shuffle": 1, - "__pyx_k__sumloss": 1, - "__pyx_k__t_start": 1, - "__pyx_k__verbose": 1, - "__pyx_k__weights": 1, - "__pyx_k____main__": 1, - "__pyx_k____test__": 1, - "__pyx_k__is_hinge": 1, - "__pyx_k__intercept": 1, - "__pyx_k__n_samples": 1, - "__pyx_k__plain_sgd": 1, - "__pyx_k__threshold": 1, - "__pyx_k__x_ind_ptr": 1, - "__pyx_k__ValueError": 1, - "__pyx_k__n_features": 1, - "__pyx_k__q_data_ptr": 1, - "__pyx_k__weight_neg": 1, - "__pyx_k__weight_pos": 1, - "__pyx_k__x_data_ptr": 1, - "__pyx_k__RuntimeError": 1, - "__pyx_k__class_weight": 1, - "__pyx_k__penalty_type": 1, - "__pyx_k__fit_intercept": 1, - "__pyx_k__learning_rate": 1, - "__pyx_k__sample_weight": 1, - "__pyx_k__intercept_decay": 1, - "__pyx_k__NotImplementedError": 1, - "*__pyx_kp_s_1": 1, - "*__pyx_kp_u_10": 1, - "*__pyx_kp_u_12": 1, - "*__pyx_kp_u_13": 1, - "*__pyx_kp_u_16": 1, - "*__pyx_kp_s_2": 1, - "*__pyx_kp_s_20": 1, - "*__pyx_n_s_21": 1, - "*__pyx_kp_s_3": 1, - "*__pyx_kp_s_4": 1, - "*__pyx_kp_u_6": 1, - "*__pyx_kp_u_8": 1, - "*__pyx_n_s__C": 1, - "*__pyx_n_s__NotImplementedError": 1, - "*__pyx_n_s__RuntimeError": 1, - "*__pyx_n_s__ValueError": 1, - "*__pyx_n_s____main__": 1, - "*__pyx_n_s____test__": 1, - "*__pyx_n_s__alpha": 1, - "*__pyx_n_s__any": 1, - "*__pyx_n_s__c": 1, - "*__pyx_n_s__class_weight": 1, - "*__pyx_n_s__count": 1, - "*__pyx_n_s__dataset": 1, - "*__pyx_n_s__dloss": 1, - "*__pyx_n_s__dtype": 1, - "*__pyx_n_s__epoch": 1, - "*__pyx_n_s__epsilon": 1, - "*__pyx_n_s__eta": 1, - "*__pyx_n_s__eta0": 1, - "*__pyx_n_s__fit_intercept": 1, - "*__pyx_n_s__float64": 1, - "*__pyx_n_s__i": 1, - "*__pyx_n_s__intercept": 1, - "*__pyx_n_s__intercept_decay": 1, - "*__pyx_n_s__is_hinge": 1, - "*__pyx_n_s__isinf": 1, - "*__pyx_n_s__isnan": 1, - "*__pyx_n_s__learning_rate": 1, - "*__pyx_n_s__loss": 1, - "*__pyx_n_s__n_features": 1, - "*__pyx_n_s__n_iter": 1, - "*__pyx_n_s__n_samples": 1, - "*__pyx_n_s__nonzero": 1, - "*__pyx_n_s__np": 1, - "*__pyx_n_s__numpy": 1, - "*__pyx_n_s__order": 1, - "*__pyx_n_s__p": 1, - "*__pyx_n_s__penalty_type": 1, - "*__pyx_n_s__plain_sgd": 1, - "*__pyx_n_s__power_t": 1, - "*__pyx_n_s__q": 1, - "*__pyx_n_s__q_data_ptr": 1, - "*__pyx_n_s__range": 1, - "*__pyx_n_s__rho": 1, - "*__pyx_n_s__sample_weight": 1, - "*__pyx_n_s__seed": 1, - "*__pyx_n_s__shape": 1, - "*__pyx_n_s__shuffle": 1, - "*__pyx_n_s__sumloss": 1, - "*__pyx_n_s__sys": 1, - "*__pyx_n_s__t": 1, - "*__pyx_n_s__t_start": 1, - "*__pyx_n_s__threshold": 1, - "*__pyx_n_s__time": 1, - "*__pyx_n_s__u": 1, - "*__pyx_n_s__update": 1, - "*__pyx_n_s__verbose": 1, - "*__pyx_n_s__w": 1, - "*__pyx_n_s__weight_neg": 1, - "*__pyx_n_s__weight_pos": 1, - "*__pyx_n_s__weights": 1, - "*__pyx_n_s__x_data_ptr": 1, - "*__pyx_n_s__x_ind_ptr": 1, - "*__pyx_n_s__xnnz": 1, - "*__pyx_n_s__y": 1, - "*__pyx_n_s__zeros": 1, - "*__pyx_int_15": 1, - "*__pyx_k_tuple_5": 1, - "*__pyx_k_tuple_7": 1, - "*__pyx_k_tuple_9": 1, - "*__pyx_k_tuple_11": 1, - "*__pyx_k_tuple_14": 1, - "*__pyx_k_tuple_15": 1, - "*__pyx_k_tuple_17": 1, - "*__pyx_k_tuple_18": 1, - "*__pyx_k_codeobj_19": 1, - "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_1loss": 3, - "*__pyx_args": 9, - "*__pyx_kwds": 9, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, - "__pyx_skip_dispatch": 6, - "__pyx_r": 39, - "*__pyx_t_1": 6, - "*__pyx_t_2": 3, - "*__pyx_t_3": 3, - "*__pyx_t_4": 3, - "__pyx_t_5": 12, - "__pyx_v_self": 15, - "tp_dictoffset": 3, - "__pyx_t_1": 69, - "PyObject_GetAttr": 3, - "__pyx_n_s__loss": 2, - "__pyx_filename": 51, - "__pyx_f": 42, - "__pyx_L1_error": 33, - "PyCFunction_Check": 3, - "PyCFunction_GET_FUNCTION": 3, - "PyCFunction": 3, - "__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_1loss": 1, - "__pyx_t_2": 21, - "PyFloat_FromDouble": 9, - "__pyx_t_3": 39, - "__pyx_t_4": 27, - "PyTuple_New": 3, - "PyTuple_SET_ITEM": 6, - "PyObject_Call": 6, - "PyErr_Occurred": 9, - "__pyx_L0": 18, - "__pyx_builtin_NotImplementedError": 3, - "__pyx_empty_tuple": 3, - "__pyx_doc_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, - "*__pyx_r": 6, - "**__pyx_pyargnames": 3, - "__pyx_n_s__p": 6, - "__pyx_n_s__y": 6, - "values": 67, - "__pyx_kwds": 15, - "kw_args": 15, - "pos_args": 12, - "__pyx_args": 21, - "__pyx_L5_argtuple_error": 12, - "PyDict_Size": 3, - "PyDict_GetItem": 6, - "__pyx_L3_error": 18, - "__pyx_pyargnames": 3, - "__pyx_L4_argument_unpacking_done": 6, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss": 1, - "__pyx_vtab": 2, - "loss": 1, - "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_3dloss": 3, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss": 1, - "__pyx_n_s__dloss": 1, - "__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFunction_3dloss": 1, - "__pyx_doc_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_2dloss": 1, - "dloss": 1, - "*__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression_1loss": 3, - "__pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 1, - "__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression_1loss": 1, - "__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss": 1, - "__pyx_base.__pyx_vtab": 1, - "__pyx_base.loss": 1, - "PPC_SHA1": 1, - "git_hash_ctx": 7, - "SHA_CTX": 3, - "*git_hash_new_ctx": 1, - "*ctx": 5, - "git__malloc": 3, - "ctx": 16, - "SHA1_Init": 4, - "git_hash_free_ctx": 1, - "git__free": 15, - "git_hash_init": 1, - "git_hash_update": 1, - "SHA1_Update": 3, - "git_hash_final": 1, - "git_oid": 7, - "*out": 3, - "SHA1_Final": 3, - "git_hash_buf": 1, - "git_hash_vec": 1, - "git_buf_vec": 1, - "*vec": 1, - "vec": 2, - ".data": 1, - "_NME_WMAN_H": 2, - "START_HEAD": 2, - "NTS": 1, - "NWMan_event": 3, - "NSTRUCT": 2, - "NWMan": 2, - "bool": 19, - "init": 1, - "destroy": 1, - "create_window": 1, - "destroy_window": 1, - "swap_buffers": 1, - "next_event": 1, - "NWMan_event*": 1, - "event": 1, - "uint": 2, - "get_millis": 1, - "millis": 1, - "rshift_key": 1, - "lshift_key": 1, - "left_key": 1, - "right_key": 1, - "NENUM": 1, - "NWMan_event_type": 3, - "N_WMAN_MOUSE_MOVE": 1, - "N_WMAN_MOUSE_BUTTON": 1, - "N_WMAN_MOUSE_WHEEL": 1, - "N_WMAN_KEYBOARD": 1, - "N_WMAN_QUIT": 1, - "N_WMAN_RESIZE": 1, - "N_WMAN_FOCUS": 1, - "N_WMAN_MOUSE_LEFT": 1, - "N_WMAN_MOUSE_RIGHT": 1, - "N_WMAN_MOUSE_MIDDLE": 1, - "union": 1, - "NPos2i": 2, - "mouse_pos": 1, - "mouse_button": 1, - "mouse_wheel": 1, - "up": 1, - "down": 1, - "keyboard": 1, - "window_quit": 1, - "Will": 1, - "true": 74, - "WM_QUIT": 1, - "window_size": 1, - "window_focus": 1, - "NWMan_event_new": 1, - "NWMan_init": 1, - "NWMan_destroy": 1, - "N_WMan": 1, - "END_HEAD": 2, - "COMMIT_H": 2, - "*util": 1, - "indegree": 1, - "*parents": 4, - "*tree": 3, - "decoration": 1, - "name_decoration": 3, - "*commit_list_insert": 1, - "commit_list_count": 1, - "*l": 1, - "*commit_list_insert_by_date": 1, - "free_commit_list": 1, - "cmit_fmt": 3, - "CMIT_FMT_RAW": 1, - "CMIT_FMT_MEDIUM": 2, - "CMIT_FMT_DEFAULT": 1, - "CMIT_FMT_SHORT": 1, - "CMIT_FMT_FULL": 1, - "CMIT_FMT_FULLER": 1, - "CMIT_FMT_ONELINE": 1, - "CMIT_FMT_EMAIL": 1, - "CMIT_FMT_USERFORMAT": 1, - "CMIT_FMT_UNSPECIFIED": 1, - "pretty_print_context": 6, - "abbrev": 1, - "*subject": 1, - "*after_subject": 1, - "preserve_subject": 1, - "date_mode": 2, - "date_mode_explicit": 1, - "need_8bit_cte": 2, - "show_notes": 1, - "reflog_walk_info": 1, - "*reflog_info": 1, - "*output_encoding": 2, - "userformat_want": 2, - "notes": 1, - "has_non_ascii": 1, - "*text": 1, - "rev_info": 2, - "*logmsg_reencode": 1, - "*reencode_commit_message": 1, - "**encoding_p": 1, - "get_commit_format": 1, - "*arg": 1, - "*format_subject": 1, - "strbuf": 12, - "*sb": 7, - "*line_separator": 1, - "userformat_find_requirements": 1, - "format_commit_message": 1, - "*context": 1, - "pretty_print_commit": 1, - "*pp": 4, - "pp_commit_easy": 1, - "pp_user_info": 1, - "*what": 1, - "*line": 1, - "*encoding": 2, - "pp_title_line": 1, - "**msg_p": 2, - "pp_remainder": 1, - "indent": 1, - "*pop_most_recent_commit": 1, - "mark": 9, - "*pop_commit": 1, - "**stack": 1, - "clear_commit_marks": 1, - "clear_commit_marks_for_object_array": 1, - "object_array": 2, - "sort_in_topological_order": 1, - "list": 1, - "lifo": 1, - "FLEX_ARRAY": 1, - "*read_graft_line": 1, - "*lookup_commit_graft": 1, - "*get_merge_bases": 1, - "*rev1": 1, - "*rev2": 1, - "cleanup": 12, - "*get_merge_bases_many": 1, - "*one": 1, - "**twos": 1, - "*get_octopus_merge_bases": 1, - "*in": 1, - "register_shallow": 1, - "unregister_shallow": 1, - "for_each_commit_graft": 1, - "each_commit_graft_fn": 1, - "is_repository_shallow": 1, - "*get_shallow_commits": 1, - "*heads": 2, - "depth": 2, - "shallow_flag": 1, - "not_shallow_flag": 1, - "is_descendant_of": 1, - "in_merge_bases": 1, - "interactive_add": 1, - "*prefix": 7, - "patch": 1, - "run_add_interactive": 1, - "*revision": 1, - "*patch_mode": 1, - "**pathspec": 1, - "single_parent": 1, - "*reduce_heads": 1, - "commit_extra_header": 7, - "append_merge_tag_headers": 1, - "***tail": 1, - "commit_tree": 1, - "*ret": 20, - "*author": 2, - "*sign_commit": 2, - "commit_tree_extended": 1, - "*read_commit_extra_headers": 1, - "*read_commit_extra_header_lines": 1, - "free_commit_extra_headers": 1, - "*extra": 1, - "merge_remote_util": 1, - "*get_merge_parent": 1, - "parse_signed_commit": 1, - "*message": 1, - "*signature": 1, - "_NMEX_NIGHTMARE_H": 2, - "//#define": 1, - "NMEX": 1, - "*diff_prefix_from_pathspec": 1, - "git_strarray": 2, - "*pathspec": 2, - "git_buf": 3, - "prefix": 34, - "GIT_BUF_INIT": 3, - "*scan": 2, - "git_buf_common_prefix": 1, - "pathspec": 15, - "scan": 4, - "prefix.ptr": 2, - "git__iswildcard": 1, - "git_buf_truncate": 1, - "prefix.size": 1, - "git_buf_detach": 1, - "git_buf_free": 4, - "diff_pathspec_is_interesting": 2, - "*str": 1, - "diff_path_matches_pathspec": 3, - "git_diff_list": 17, - "*diff": 8, - "*path": 2, - "git_attr_fnmatch": 4, - "*match": 3, - "diff": 93, - "pathspec.length": 1, - "git_vector_foreach": 4, - "match": 16, - "p_fnmatch": 1, - "pattern": 3, - "path": 20, - "FNM_NOMATCH": 1, - "GIT_ATTR_FNMATCH_HASWILD": 1, - "strncmp": 1, - "GIT_ATTR_FNMATCH_NEGATIVE": 1, - "git_diff_delta": 19, - "*diff_delta__alloc": 1, - "git_delta_t": 5, - "*delta": 6, - "git__calloc": 3, - "old_file.path": 12, - "git_pool_strdup": 3, - "pool": 12, - "new_file.path": 6, - "opts.flags": 8, - "GIT_DIFF_REVERSE": 3, - "GIT_DELTA_ADDED": 4, - "GIT_DELTA_DELETED": 7, - "*diff_delta__dup": 1, - "*d": 1, - "git_pool": 4, - "*pool": 3, - "fail": 19, - "*diff_delta__merge_like_cgit": 1, - "*b": 6, - "*dup": 1, - "diff_delta__dup": 3, - "dup": 15, - "git_oid_cmp": 6, - "new_file.oid": 7, - "git_oid_cpy": 5, - "new_file.mode": 4, - "new_file.size": 3, - "new_file.flags": 4, - "old_file.oid": 3, - "GIT_DELTA_UNTRACKED": 5, - "GIT_DELTA_IGNORED": 5, - "GIT_DELTA_UNMODIFIED": 11, - "diff_delta__from_one": 5, - "git_index_entry": 8, - "*entry": 2, - "GIT_DIFF_INCLUDE_IGNORED": 1, - "GIT_DIFF_INCLUDE_UNTRACKED": 1, - "entry": 17, - "diff_delta__alloc": 2, - "GITERR_CHECK_ALLOC": 3, - "GIT_DELTA_MODIFIED": 3, - "old_file.mode": 2, - "old_file.size": 1, - "file_size": 6, - "oid": 17, - "old_file.flags": 2, - "GIT_DIFF_FILE_VALID_OID": 4, - "git_vector_insert": 4, - "deltas": 8, - "diff_delta__from_two": 2, - "*old_entry": 1, - "*new_entry": 1, - "*new_oid": 1, - "GIT_DIFF_INCLUDE_UNMODIFIED": 1, - "*temp": 1, - "old_entry": 5, - "new_entry": 5, - "temp": 11, - "new_oid": 3, - "git_oid_iszero": 2, - "*diff_strdup_prefix": 1, - "git_pool_strcat": 1, - "git_pool_strndup": 1, - "diff_delta__cmp": 3, - "*da": 1, - "da": 2, - "config_bool": 5, - "git_config": 3, - "*cfg": 2, - "defvalue": 2, - "git_config_get_bool": 1, - "cfg": 6, - "giterr_clear": 1, - "*git_diff_list_alloc": 1, - "git_repository": 7, - "*repo": 7, - "git_diff_options": 7, - "*opts": 6, - "repo": 23, - "git_vector_init": 3, - "git_pool_init": 2, - "git_repository_config__weakptr": 1, - "diffcaps": 13, - "GIT_DIFFCAPS_HAS_SYMLINKS": 2, - "GIT_DIFFCAPS_ASSUME_UNCHANGED": 2, - "GIT_DIFFCAPS_TRUST_EXEC_BIT": 2, - "GIT_DIFFCAPS_TRUST_CTIME": 2, - "opts": 24, - "opts.pathspec": 2, - "opts.old_prefix": 4, - "diff_strdup_prefix": 2, - "old_prefix": 2, - "DIFF_OLD_PREFIX_DEFAULT": 1, - "opts.new_prefix": 4, - "new_prefix": 2, - "DIFF_NEW_PREFIX_DEFAULT": 1, - "*swap": 1, - "swap": 9, - "pathspec.count": 2, - "*pattern": 1, - "pathspec.strings": 1, - "GIT_ATTR_FNMATCH_ALLOWSPACE": 1, - "git_attr_fnmatch__parse": 1, - "GIT_ENOTFOUND": 1, - "git_diff_list_free": 3, - "deltas.contents": 1, - "git_vector_free": 3, - "pathspec.contents": 1, - "git_pool_clear": 2, - "oid_for_workdir_item": 2, - "*oid": 2, - "full_path": 3, - "git_buf_joinpath": 1, - "git_repository_workdir": 1, - "S_ISLNK": 2, - "git_odb__hashlink": 1, - "full_path.ptr": 2, - "git__is_sizet": 1, - "giterr_set": 1, - "GITERR_OS": 1, - "git_futils_open_ro": 1, - "git_odb__hashfd": 1, - "GIT_OBJ_BLOB": 1, - "p_close": 1, - "EXEC_BIT_MASK": 3, - "maybe_modified": 2, - "git_iterator": 8, - "*old_iter": 2, - "*oitem": 2, - "*new_iter": 2, - "*nitem": 2, - "noid": 4, - "*use_noid": 1, - "omode": 8, - "oitem": 29, - "nmode": 10, - "nitem": 32, - "GIT_UNUSED": 1, - "old_iter": 8, - "S_ISREG": 1, - "GIT_MODE_TYPE": 3, - "GIT_MODE_PERMS_MASK": 1, - "flags_extended": 2, - "GIT_IDXENTRY_INTENT_TO_ADD": 1, - "GIT_IDXENTRY_SKIP_WORKTREE": 1, - "new_iter": 13, - "GIT_ITERATOR_WORKDIR": 2, - "ctime.seconds": 2, - "mtime.seconds": 2, - "GIT_DIFFCAPS_USE_DEV": 1, - "dev": 2, - "ino": 2, - "uid": 2, - "gid": 2, - "S_ISGITLINK": 1, - "git_submodule": 1, - "*sub": 1, - "GIT_DIFF_IGNORE_SUBMODULES": 1, - "git_submodule_lookup": 1, - "ignore": 1, - "GIT_SUBMODULE_IGNORE_ALL": 1, - "use_noid": 2, - "diff_from_iterators": 5, - "**diff_ptr": 1, - "ignore_prefix": 6, - "git_diff_list_alloc": 1, - "old_src": 1, - "new_src": 3, - "git_iterator_current": 2, - "git_iterator_advance": 5, - "delta_type": 8, - "git_buf_len": 1, - "git__prefixcmp": 2, - "git_buf_cstr": 1, - "S_ISDIR": 1, - "GIT_DIFF_RECURSE_UNTRACKED_DIRS": 1, - "git_iterator_current_is_ignored": 2, - "git_buf_sets": 1, - "git_iterator_advance_into_directory": 1, - "git_iterator_free": 4, - "*diff_ptr": 2, - "git_diff_tree_to_tree": 1, - "git_tree": 4, - "*old_tree": 3, - "*new_tree": 1, - "**diff": 4, - "diff_prefix_from_pathspec": 4, - "old_tree": 5, - "new_tree": 2, - "git_iterator_for_tree_range": 4, - "git_diff_index_to_tree": 1, - "git_iterator_for_index_range": 2, - "git_diff_workdir_to_index": 1, - "git_iterator_for_workdir_range": 2, - "git_diff_workdir_to_tree": 1, - "git_diff_merge": 1, - "*onto": 1, - "*from": 1, - "onto_pool": 7, - "git_vector": 1, - "onto_new": 6, - "onto": 7, - "deltas.length": 4, - "GIT_VECTOR_GET": 2, - "diff_delta__merge_like_cgit": 1, - "git_vector_swap": 1, - "git_pool_swap": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "CONFIG_SMP": 1, - "DEFINE_MUTEX": 1, - "cpu_add_remove_lock": 3, - "cpu_maps_update_begin": 9, - "mutex_lock": 5, - "cpu_maps_update_done": 9, - "mutex_unlock": 6, - "RAW_NOTIFIER_HEAD": 1, - "cpu_chain": 4, - "cpu_hotplug_disabled": 7, - "CONFIG_HOTPLUG_CPU": 2, - "task_struct": 5, - "*active_writer": 1, - "mutex": 1, - "lock": 6, - "cpu_hotplug": 1, - ".active_writer": 1, - ".lock": 1, - "__MUTEX_INITIALIZER": 1, - "cpu_hotplug.lock": 8, - ".refcount": 1, - "get_online_cpus": 2, - "might_sleep": 1, - "cpu_hotplug.active_writer": 6, - "current": 5, - "cpu_hotplug.refcount": 3, - "EXPORT_SYMBOL_GPL": 4, - "put_online_cpus": 2, - "wake_up_process": 1, - "cpu_hotplug_begin": 4, - "__set_current_state": 1, - "TASK_UNINTERRUPTIBLE": 1, - "schedule": 1, - "cpu_hotplug_done": 4, - "__ref": 6, - "register_cpu_notifier": 2, - "notifier_block": 3, - "*nb": 3, - "raw_notifier_chain_register": 1, - "nb": 2, - "__cpu_notify": 6, - "*v": 3, - "nr_to_call": 2, - "*nr_calls": 1, - "__raw_notifier_call_chain": 1, - "nr_calls": 9, - "notifier_to_errno": 1, - "cpu_notify": 5, - "cpu_notify_nofail": 4, - "BUG_ON": 4, - "EXPORT_SYMBOL": 8, - "unregister_cpu_notifier": 2, - "raw_notifier_chain_unregister": 1, - "clear_tasks_mm_cpumask": 1, - "cpu": 57, - "WARN_ON": 1, - "cpu_online": 5, - "rcu_read_lock": 1, - "for_each_process": 2, - "find_lock_task_mm": 1, - "cpumask_clear_cpu": 5, - "mm_cpumask": 1, - "mm": 1, - "task_unlock": 1, - "rcu_read_unlock": 1, - "check_for_tasks": 2, - "write_lock_irq": 1, - "tasklist_lock": 2, - "task_cpu": 1, - "TASK_RUNNING": 1, - "utime": 1, - "stime": 1, - "printk": 12, - "KERN_WARNING": 3, - "comm": 1, - "task_pid_nr": 1, - "write_unlock_irq": 1, - "take_cpu_down_param": 3, - "mod": 13, - "*hcpu": 3, - "take_cpu_down": 2, - "*_param": 1, - "*param": 1, - "_param": 1, - "__cpu_disable": 1, - "CPU_DYING": 1, - "param": 2, - "hcpu": 10, - "_cpu_down": 3, - "tasks_frozen": 4, - "CPU_TASKS_FROZEN": 2, - "tcd_param": 2, - ".mod": 1, - ".hcpu": 1, - "num_online_cpus": 2, - "EBUSY": 3, - "CPU_DOWN_PREPARE": 1, - "CPU_DOWN_FAILED": 2, - "__func__": 2, - "out_release": 3, - "__stop_machine": 1, - "cpumask_of": 1, - "idle_cpu": 1, - "cpu_relax": 1, - "__cpu_die": 1, - "CPU_DEAD": 1, - "CPU_POST_DEAD": 1, - "cpu_down": 2, - "__cpuinit": 3, - "_cpu_up": 3, - "*idle": 1, - "cpu_present": 1, - "idle": 4, - "idle_thread_get": 1, - "IS_ERR": 1, - "PTR_ERR": 1, - "CPU_UP_PREPARE": 1, - "out_notify": 3, - "__cpu_up": 1, - "CPU_ONLINE": 1, - "CPU_UP_CANCELED": 1, - "cpu_up": 2, - "CONFIG_MEMORY_HOTPLUG": 2, - "nid": 5, - "pg_data_t": 1, - "*pgdat": 1, - "cpu_possible": 1, - "KERN_ERR": 5, - "CONFIG_IA64": 1, - "cpu_to_node": 1, - "node_online": 1, - "mem_online_node": 1, - "pgdat": 3, - "NODE_DATA": 1, - "node_zonelists": 1, - "_zonerefs": 1, - "zone": 1, - "zonelists_mutex": 2, - "build_all_zonelists": 1, - "CONFIG_PM_SLEEP_SMP": 2, - "cpumask_var_t": 1, - "frozen_cpus": 9, - "__weak": 4, - "arch_disable_nonboot_cpus_begin": 2, - "arch_disable_nonboot_cpus_end": 2, - "disable_nonboot_cpus": 1, - "first_cpu": 3, - "cpumask_first": 1, - "cpu_online_mask": 3, - "cpumask_clear": 2, - "for_each_online_cpu": 1, - "cpumask_set_cpu": 5, - "arch_enable_nonboot_cpus_begin": 2, - "arch_enable_nonboot_cpus_end": 2, - "enable_nonboot_cpus": 1, - "cpumask_empty": 1, - "KERN_INFO": 2, - "for_each_cpu": 1, - "__init": 2, - "alloc_frozen_cpus": 2, - "alloc_cpumask_var": 1, - "GFP_KERNEL": 1, - "__GFP_ZERO": 1, - "core_initcall": 2, - "cpu_hotplug_disable_before_freeze": 2, - "cpu_hotplug_enable_after_thaw": 2, - "cpu_hotplug_pm_callback": 2, - "action": 2, - "*ptr": 1, - "PM_SUSPEND_PREPARE": 1, - "PM_HIBERNATION_PREPARE": 1, - "PM_POST_SUSPEND": 1, - "PM_POST_HIBERNATION": 1, - "NOTIFY_DONE": 1, - "NOTIFY_OK": 1, - "cpu_hotplug_pm_sync_init": 2, - "pm_notifier": 1, - "notify_cpu_starting": 1, - "CPU_STARTING": 1, - "cpumask_test_cpu": 1, - "CPU_STARTING_FROZEN": 1, - "MASK_DECLARE_1": 3, - "UL": 1, - "MASK_DECLARE_2": 3, - "MASK_DECLARE_4": 3, - "MASK_DECLARE_8": 9, - "cpu_bit_bitmap": 2, - "BITS_PER_LONG": 2, - "BITS_TO_LONGS": 1, - "NR_CPUS": 2, - "DECLARE_BITMAP": 6, - "cpu_all_bits": 2, - "CPU_BITS_ALL": 2, - "CONFIG_INIT_ALL_POSSIBLE": 1, - "cpu_possible_bits": 6, - "CONFIG_NR_CPUS": 5, - "__read_mostly": 5, - "cpumask": 7, - "*const": 4, - "cpu_possible_mask": 2, - "to_cpumask": 15, - "cpu_online_bits": 5, - "cpu_present_bits": 5, - "cpu_present_mask": 2, - "cpu_active_bits": 4, - "cpu_active_mask": 2, - "set_cpu_possible": 1, - "possible": 2, - "set_cpu_present": 1, - "present": 2, - "set_cpu_online": 1, - "online": 2, - "set_cpu_active": 1, - "active": 2, - "init_cpu_present": 1, - "*src": 3, - "cpumask_copy": 3, - "init_cpu_possible": 1, - "init_cpu_online": 1, - "": 2, - "": 2, - "": 1, - "READ_VSNPRINTF_ARGS": 5, - "rfUTF8_VerifySequence": 7, - "buff": 95, - "RF_FAILURE": 24, - "LOG_ERROR": 64, - "RE_STRING_INIT_FAILURE": 8, - "buffAllocated": 11, - "RF_MALLOC": 47, - "RF_OPTION_SOURCE_ENCODING": 30, - "characterLength": 16, - "*codepoints": 2, - "rfLMS_MacroEvalPtr": 2, - "RF_LMS": 6, - "RF_UTF16_LE": 9, - "RF_UTF16_BE": 7, - "codepoints": 44, - "i/2": 2, - "RF_UTF32_LE": 3, - "RF_UTF32_BE": 3, - "decode": 6, - "UTF16": 4, - "rfUTILS_Endianess": 24, - "RF_LITTLE_ENDIAN": 23, - "rfUTF16_Decode": 5, - "rfUTF16_Decode_swap": 5, - "RF_UTF16_BE//": 2, - "RF_UTF32_LE//": 2, - "copy": 4, - "UTF32": 4, - "into": 8, - "codepoint": 47, - "rfUTILS_SwapEndianUI": 11, - "RF_UTF32_BE//": 2, - "RF_BIG_ENDIAN": 10, - "": 2, - "than": 5, - "encode": 2, - "rfUTF8_Encode": 4, - "While": 2, - "attempting": 2, - "create": 2, - "byte": 6, - "sequence": 6, - "could": 2, - "properly": 2, - "encoded": 2, - "RE_UTF8_ENCODING": 2, - "End": 2, - "Non": 2, - "code=": 2, - "normally": 1, - "here": 5, - "we": 10, - "validity": 2, - "get": 4, - "Error": 2, - "Allocation": 2, - "due": 2, - "invalid": 2, - "rfLMS_Push": 4, - "Memory": 4, - "allocation": 3, - "Local": 2, - "Stack": 2, - "failed": 2, - "Insufficient": 2, - "space": 4, - "Consider": 2, - "compiling": 2, - "bigger": 3, - "Quitting": 2, - "proccess": 2, - "RE_LOCALMEMSTACK_INSUFFICIENT": 8, - "RE_UTF16_INVALID_SEQUENCE": 20, - "during": 1, - "RF_HEXLE_UI": 8, - "RF_HEXGE_UI": 6, - "ff": 10, - "F": 38, - "C0": 3, - "ffff": 4, - "xFC0": 4, - "xF000": 2, - "xE": 2, - "F000": 2, - "C0000": 2, - "E": 11, - "RE_UTF8_INVALID_CODE_POINT": 2, - "numLen": 8, - "max": 5, - "most": 3, - "environment": 3, - "so": 4, - "chars": 3, - "will": 3, - "certainly": 3, - "fit": 3, - "strcpy": 4, - "utf8ByteLength": 34, - "utf8": 36, - "last": 1, - "utf": 1, - "null": 4, - "termination": 3, - "byteLength*2": 1, - "allocate": 1, - "same": 1, - "else//": 14, - "different": 1, - "RE_INPUT": 1, - "ends": 3, - "swapE": 21, - "codeBuffer": 9, - "RF_HEXEQ_UI": 7, - "xFEFF": 1, - "big": 14, - "endian": 20, - "xFFFE0000": 1, - "little": 7, - "according": 1, - "standard": 1, - "BOM": 1, - "means": 1, - "rfUTF32_Length": 1, - "sourceP": 2, - "RF_REALLOC": 9, - "<5)>": 1, - "bytesWritten": 2, - "charsN": 5, - "rfUTF8_Decode": 2, - "rfUTF16_Encode": 1, - "RF_STRING_ITERATE_START": 9, - "RF_STRING_ITERATE_END": 9, - "codePoint": 18, - "RF_HEXEQ_C": 9, - "xC0": 3, - "xE0": 2, - "xF": 5, - "xF0": 2, - "thisstrP": 32, - "charPos": 8, - "byteI": 7, - "s1P": 2, - "s2P": 2, - "sstrP": 6, - "optionsP": 11, - "*optionsP": 8, - "found": 20, - "RF_BITFLAG_ON": 5, - "strstr": 2, - "": 1, - "0x5a": 1, - "0x7a": 1, - "substring": 5, - "search": 1, - "zero": 2, - "equals": 1, - "then": 1, - "okay": 1, - "RF_SUCCESS": 14, - "ERANGE": 1, - "RE_STRING_TOFLOAT_UNDERFLOW": 1, - "RE_STRING_TOFLOAT": 1, - "srcP": 6, - "bytePos": 23, - "terminate": 1, - "afterstrP": 2, - "sscanf": 1, - "<=0)>": 1, - "Counts": 1, - "how": 1, - "many": 1, - "times": 1, - "occurs": 1, - "sstr2": 2, - "move": 12, - "rfString_FindBytePos": 10, - "*tokensN": 1, - "lstrP": 1, - "rstrP": 5, - "parNP": 6, - "*parNP": 2, - "minPos": 17, - "thisPos": 8, - "argList": 8, - "va_arg": 2, - "afterP": 2, - "minPosLength": 3, - "go": 8, - "otherP": 4, - "strncat": 1, - "goes": 1, - "numberP": 1, - "*numberP": 1, - "occurences": 5, - "done": 1, - "<=thisstr->": 1, - "keepstrP": 2, - "keepLength": 2, - "charValue": 12, - "*keepChars": 1, - "charBLength": 5, - "keepChars": 4, - "*keepLength": 1, - "": 1, - "does": 1, - "back": 1, - "cover": 1, - "effectively": 1, - "gets": 1, - "deleted": 1, - "rfUTF8_FromCodepoint": 1, - "kind": 1, - "non": 1, - "clean": 1, - "way": 1, - "internally": 1, - "uses": 1, - "variable": 1, - "use": 1, - "determine": 1, - "backs": 1, - "by": 1, - "contiuing": 1, - "sure": 2, - "position": 1, - "won": 1, - "array": 1, - "nBytePos": 23, - "RF_STRING_ITERATEB_START": 2, - "RF_STRING_ITERATEB_END": 2, - "pBytePos": 15, - "indexing": 1, - "works": 1, - "pbytePos": 2, - "pth": 2, - "got": 1, - "numP": 1, - "*numP": 1, - "just": 1, - "finding": 1, - "foundN": 10, - "bSize": 4, - "bytePositions": 17, - "bSize*sizeof": 1, - "rfStringX_FromString_IN": 1, - "temp.bIndex": 2, - "temp.bytes": 1, - "temp.byteLength": 1, - "rfStringX_Deinit": 1, - "replace": 3, - "removed": 2, - "one": 2, - "orSize": 5, - "nSize": 4, - "number*diff": 1, - "strncpy": 3, - "smaller": 1, - "diff*number": 1, - "remove": 1, - "equal": 1, - "subP": 7, - "RF_String*sub": 2, - "noMatch": 8, - "*subValues": 2, - "subLength": 6, - "subValues": 8, - "*subLength": 2, - "lastBytePos": 4, - "testity": 2, - "res1": 2, - "res2": 2, - "bytesN": 98, - "bufferSize": 6, - "unused": 3, - "rfFReadLine_UTF8": 5, - "FILE*f": 2, - "utf8BufferSize": 4, - "rfFReadLine_UTF16LE": 4, - "rfFReadLine_UTF16BE": 6, - "char*utf8": 3, - "rfFReadLine_UTF32LE": 4, - "<0)>": 1, - "Failure": 1, - "initialize": 1, - "reading": 1, - "Little": 1, - "Endian": 1, - "32": 1, - "file": 6, - "bytesN=": 1, - "sP": 2, - "encodingP": 1, - "*utf32": 1, - "utf16": 11, - "*encodingP": 1, - "fwrite": 5, - "logging": 5, - "rfUTILS_SwapEndianUS": 10, - "utf32": 10, - "i_WRITE_CHECK": 1, - "RE_FILE_WRITE": 1, - "": 1, - "_Included_jni_JniLayer": 2, - "JNIEXPORT": 6, - "jlong": 6, - "JNICALL": 6, - "Java_jni_JniLayer_jni_1layer_1initialize": 1, - "JNIEnv": 6, - "jobject": 6, - "jintArray": 1, - "jint": 7, - "Java_jni_JniLayer_jni_1layer_1mainloop": 1, - "Java_jni_JniLayer_jni_1layer_1set_1button": 1, - "Java_jni_JniLayer_jni_1layer_1set_1analog": 1, - "jfloat": 1, - "Java_jni_JniLayer_jni_1layer_1report_1analog_1chg": 1, - "Java_jni_JniLayer_jni_1layer_1kill": 1, - "PQC_ENCRYPT_H": 2, - "": 1, - "": 1, - "ntru_encrypt_poly": 1, - "fmpz_poly_t": 6, - "msg_tern": 1, - "pub_key": 2, - "rnd": 2, - "ntru_params": 2, - "*params": 2, - "ntru_encrypt_string": 1, - "": 1, - "rfUTF8_IsContinuationbyte": 1, - "e.t.c.": 1, - "bIndex": 5, - "RF_NEWLINE_CRLF": 1, - "newLineFound": 1, - "*bufferSize": 1, - "RF_OPTION_FGETS_READBYTESN": 5, - "tempBuff": 6, - "RF_LF": 10, - "RE_FILE_EOF": 22, - "*eofReached": 14, - "rfFgetc_UTF32BE": 3, - "undo": 5, - "peek": 5, - "ahead": 5, - "pointer": 5, - "fseek": 19, - "SEEK_CUR": 19, - "rfFgets_UTF32LE": 2, - "eofReached": 4, - "rfFgetc_UTF32LE": 4, - "rfFgets_UTF16BE": 2, - "rfFgetc_UTF16BE": 4, - "rfFgets_UTF16LE": 2, - "rfFgetc_UTF16LE": 4, - "rfFgets_UTF8": 2, - "rfFgetc_UTF8": 3, - "fgetc": 9, - "ferror": 2, - "RE_FILE_READ": 2, - "cp": 12, - "c2": 13, - "c3": 9, - "c4": 5, - "i_READ_CHECK": 20, - "///": 4, - "success": 4, - "cc": 24, - "more": 2, - "xC1": 1, - "RE_UTF8_INVALID_SEQUENCE_INVALID_BYTE": 6, - "RE_UTF8_INVALID_SEQUENCE_END": 6, - "RE_UTF8_INVALID_SEQUENCE_CONBYTE": 6, - "decoded": 3, - "RF_HEXGE_C": 1, - "xBF": 2, - "//invalid": 1, - "xFF": 1, - "//if": 1, - "needing": 1, - "v1": 38, - "v2": 26, - "fread": 12, - "RF_HEXGE_US": 4, - "xD800": 8, - "RF_HEXLE_US": 4, - "xDFFF": 8, - "RF_HEXL_US": 8, - "RF_HEXG_US": 8, - "xDBFF": 4, - "RE_UTF16_NO_SURRPAIR": 2, - "xDC00": 4, - "user": 2, - "wants": 2, - "surrogate": 4, - "pair": 4, - "existence": 2, - "rfFback_UTF32BE": 2, - "i_FSEEK_CHECK": 14, - "rfFback_UTF32LE": 2, - "rfFback_UTF16BE": 2, - "rfFback_UTF16LE": 2, - "rfFback_UTF8": 2, - "depending": 1, - "read": 1, - "backwards": 1, - "RE_UTF8_INVALID_SEQUENCE": 2, - "__SUNPRO_C": 1, - "align": 1, - "ArrowLeft": 3, - "__aligned__": 1, - "__wglew_h__": 2, - "__WGLEW_H__": 1, - "__wglext_h_": 2, - "wglext.h": 1, - "wglew.h": 1, - "WINAPI": 119, - "": 1, - "GLEW_STATIC": 1, - "WGL_3DFX_multisample": 2, - "WGL_SAMPLE_BUFFERS_3DFX": 1, - "WGL_SAMPLES_3DFX": 1, - "WGLEW_3DFX_multisample": 1, - "WGLEW_GET_VAR": 49, - "__WGLEW_3DFX_multisample": 2, - "WGL_3DL_stereo_control": 2, - "WGL_STEREO_EMITTER_ENABLE_3DL": 1, - "WGL_STEREO_EMITTER_DISABLE_3DL": 1, - "WGL_STEREO_POLARITY_NORMAL_3DL": 1, - "WGL_STEREO_POLARITY_INVERT_3DL": 1, - "BOOL": 84, - "PFNWGLSETSTEREOEMITTERSTATE3DLPROC": 2, - "HDC": 65, - "hDC": 33, - "UINT": 30, - "uState": 1, - "wglSetStereoEmitterState3DL": 1, - "WGLEW_GET_FUN": 120, - "__wglewSetStereoEmitterState3DL": 2, - "WGLEW_3DL_stereo_control": 1, - "__WGLEW_3DL_stereo_control": 2, - "WGL_AMD_gpu_association": 2, - "WGL_GPU_VENDOR_AMD": 1, - "F00": 1, - "WGL_GPU_RENDERER_STRING_AMD": 1, - "F01": 1, - "WGL_GPU_OPENGL_VERSION_STRING_AMD": 1, - "F02": 1, - "WGL_GPU_FASTEST_TARGET_GPUS_AMD": 1, - "A2": 2, - "WGL_GPU_RAM_AMD": 1, - "A3": 2, - "WGL_GPU_CLOCK_AMD": 1, - "A4": 2, - "WGL_GPU_NUM_PIPES_AMD": 1, - "A5": 3, - "WGL_GPU_NUM_SIMD_AMD": 1, - "A6": 2, - "WGL_GPU_NUM_RB_AMD": 1, - "A7": 2, - "WGL_GPU_NUM_SPI_AMD": 1, - "A8": 2, - "VOID": 6, - "PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC": 2, - "HGLRC": 14, - "dstCtx": 1, - "GLint": 18, - "srcX0": 1, - "srcY0": 1, - "srcX1": 1, - "srcY1": 1, - "dstX0": 1, - "dstY0": 1, - "dstX1": 1, - "dstY1": 1, - "GLbitfield": 1, - "mask": 1, - "GLenum": 8, - "filter": 1, - "PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC": 2, - "PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC": 2, - "hShareContext": 2, - "attribList": 2, - "PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC": 2, - "hglrc": 5, - "PFNWGLGETCONTEXTGPUIDAMDPROC": 2, - "PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC": 2, - "PFNWGLGETGPUIDSAMDPROC": 2, - "maxCount": 1, - "UINT*": 6, - "ids": 1, - "INT": 3, - "PFNWGLGETGPUINFOAMDPROC": 2, - "property": 1, - "dataType": 1, - "PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC": 2, - "wglBlitContextFramebufferAMD": 1, - "__wglewBlitContextFramebufferAMD": 2, - "wglCreateAssociatedContextAMD": 1, - "__wglewCreateAssociatedContextAMD": 2, - "wglCreateAssociatedContextAttribsAMD": 1, - "__wglewCreateAssociatedContextAttribsAMD": 2, - "wglDeleteAssociatedContextAMD": 1, - "__wglewDeleteAssociatedContextAMD": 2, - "wglGetContextGPUIDAMD": 1, - "__wglewGetContextGPUIDAMD": 2, - "wglGetCurrentAssociatedContextAMD": 1, - "__wglewGetCurrentAssociatedContextAMD": 2, - "wglGetGPUIDsAMD": 1, - "__wglewGetGPUIDsAMD": 2, - "wglGetGPUInfoAMD": 1, - "__wglewGetGPUInfoAMD": 2, - "wglMakeAssociatedContextCurrentAMD": 1, - "__wglewMakeAssociatedContextCurrentAMD": 2, - "WGLEW_AMD_gpu_association": 1, - "__WGLEW_AMD_gpu_association": 2, - "WGL_ARB_buffer_region": 2, - "WGL_FRONT_COLOR_BUFFER_BIT_ARB": 1, - "WGL_BACK_COLOR_BUFFER_BIT_ARB": 1, - "WGL_DEPTH_BUFFER_BIT_ARB": 1, - "WGL_STENCIL_BUFFER_BIT_ARB": 1, - "HANDLE": 14, - "PFNWGLCREATEBUFFERREGIONARBPROC": 2, - "iLayerPlane": 5, - "uType": 1, - "PFNWGLDELETEBUFFERREGIONARBPROC": 2, - "hRegion": 3, - "PFNWGLRESTOREBUFFERREGIONARBPROC": 2, - "width": 3, - "height": 3, - "xSrc": 1, - "ySrc": 1, - "PFNWGLSAVEBUFFERREGIONARBPROC": 2, - "wglCreateBufferRegionARB": 1, - "__wglewCreateBufferRegionARB": 2, - "wglDeleteBufferRegionARB": 1, - "__wglewDeleteBufferRegionARB": 2, - "wglRestoreBufferRegionARB": 1, - "__wglewRestoreBufferRegionARB": 2, - "wglSaveBufferRegionARB": 1, - "__wglewSaveBufferRegionARB": 2, - "WGLEW_ARB_buffer_region": 1, - "__WGLEW_ARB_buffer_region": 2, - "WGL_ARB_create_context": 2, - "WGL_CONTEXT_DEBUG_BIT_ARB": 1, - "WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB": 1, - "WGL_CONTEXT_MAJOR_VERSION_ARB": 1, - "WGL_CONTEXT_MINOR_VERSION_ARB": 1, - "WGL_CONTEXT_LAYER_PLANE_ARB": 1, - "WGL_CONTEXT_FLAGS_ARB": 1, - "ERROR_INVALID_VERSION_ARB": 1, - "ERROR_INVALID_PROFILE_ARB": 1, - "PFNWGLCREATECONTEXTATTRIBSARBPROC": 2, - "wglCreateContextAttribsARB": 1, - "__wglewCreateContextAttribsARB": 2, - "WGLEW_ARB_create_context": 1, - "__WGLEW_ARB_create_context": 2, - "WGL_ARB_create_context_profile": 2, - "WGL_CONTEXT_CORE_PROFILE_BIT_ARB": 1, - "WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB": 1, - "WGL_CONTEXT_PROFILE_MASK_ARB": 1, - "WGLEW_ARB_create_context_profile": 1, - "__WGLEW_ARB_create_context_profile": 2, - "WGL_ARB_create_context_robustness": 2, - "WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB": 1, - "WGL_LOSE_CONTEXT_ON_RESET_ARB": 1, - "WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB": 1, - "WGL_NO_RESET_NOTIFICATION_ARB": 1, - "WGLEW_ARB_create_context_robustness": 1, - "__WGLEW_ARB_create_context_robustness": 2, - "WGL_ARB_extensions_string": 2, - "PFNWGLGETEXTENSIONSSTRINGARBPROC": 2, - "hdc": 16, - "wglGetExtensionsStringARB": 1, - "__wglewGetExtensionsStringARB": 2, - "WGLEW_ARB_extensions_string": 1, - "__WGLEW_ARB_extensions_string": 2, - "WGL_ARB_framebuffer_sRGB": 2, - "WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB": 1, - "A9": 2, - "WGLEW_ARB_framebuffer_sRGB": 1, - "__WGLEW_ARB_framebuffer_sRGB": 2, - "WGL_ARB_make_current_read": 2, - "ERROR_INVALID_PIXEL_TYPE_ARB": 1, - "ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB": 1, - "PFNWGLGETCURRENTREADDCARBPROC": 2, - "PFNWGLMAKECONTEXTCURRENTARBPROC": 2, - "hDrawDC": 2, - "hReadDC": 2, - "wglGetCurrentReadDCARB": 1, - "__wglewGetCurrentReadDCARB": 2, - "wglMakeContextCurrentARB": 1, - "__wglewMakeContextCurrentARB": 2, - "WGLEW_ARB_make_current_read": 1, - "__WGLEW_ARB_make_current_read": 2, - "WGL_ARB_multisample": 2, - "WGL_SAMPLE_BUFFERS_ARB": 1, - "WGL_SAMPLES_ARB": 1, - "WGLEW_ARB_multisample": 1, - "__WGLEW_ARB_multisample": 2, - "WGL_ARB_pbuffer": 2, - "WGL_DRAW_TO_PBUFFER_ARB": 1, - "D": 9, - "WGL_MAX_PBUFFER_PIXELS_ARB": 1, - "WGL_MAX_PBUFFER_WIDTH_ARB": 1, - "WGL_MAX_PBUFFER_HEIGHT_ARB": 1, - "WGL_PBUFFER_LARGEST_ARB": 1, - "WGL_PBUFFER_WIDTH_ARB": 1, - "WGL_PBUFFER_HEIGHT_ARB": 1, - "WGL_PBUFFER_LOST_ARB": 1, - "DECLARE_HANDLE": 6, - "HPBUFFERARB": 12, - "PFNWGLCREATEPBUFFERARBPROC": 2, - "iPixelFormat": 6, - "iWidth": 2, - "iHeight": 2, - "piAttribList": 4, - "PFNWGLDESTROYPBUFFERARBPROC": 2, - "hPbuffer": 14, - "PFNWGLGETPBUFFERDCARBPROC": 2, - "PFNWGLQUERYPBUFFERARBPROC": 2, - "iAttribute": 8, - "piValue": 8, - "PFNWGLRELEASEPBUFFERDCARBPROC": 2, - "wglCreatePbufferARB": 1, - "__wglewCreatePbufferARB": 2, - "wglDestroyPbufferARB": 1, - "__wglewDestroyPbufferARB": 2, - "wglGetPbufferDCARB": 1, - "__wglewGetPbufferDCARB": 2, - "wglQueryPbufferARB": 1, - "__wglewQueryPbufferARB": 2, - "wglReleasePbufferDCARB": 1, - "__wglewReleasePbufferDCARB": 2, - "WGLEW_ARB_pbuffer": 1, - "__WGLEW_ARB_pbuffer": 2, - "WGL_ARB_pixel_format": 2, - "WGL_NUMBER_PIXEL_FORMATS_ARB": 1, - "WGL_DRAW_TO_WINDOW_ARB": 1, - "WGL_DRAW_TO_BITMAP_ARB": 1, - "WGL_ACCELERATION_ARB": 1, - "WGL_NEED_PALETTE_ARB": 1, - "WGL_NEED_SYSTEM_PALETTE_ARB": 1, - "WGL_SWAP_LAYER_BUFFERS_ARB": 1, - "WGL_SWAP_METHOD_ARB": 1, - "WGL_NUMBER_OVERLAYS_ARB": 1, - "WGL_NUMBER_UNDERLAYS_ARB": 1, - "WGL_TRANSPARENT_ARB": 1, - "WGL_SHARE_DEPTH_ARB": 1, - "WGL_SHARE_STENCIL_ARB": 1, - "WGL_SHARE_ACCUM_ARB": 1, - "WGL_SUPPORT_GDI_ARB": 1, - "WGL_SUPPORT_OPENGL_ARB": 1, - "WGL_DOUBLE_BUFFER_ARB": 1, - "WGL_STEREO_ARB": 1, - "WGL_PIXEL_TYPE_ARB": 1, - "WGL_COLOR_BITS_ARB": 1, - "WGL_RED_BITS_ARB": 1, - "WGL_RED_SHIFT_ARB": 1, - "WGL_GREEN_BITS_ARB": 1, - "WGL_GREEN_SHIFT_ARB": 1, - "WGL_BLUE_BITS_ARB": 1, - "WGL_BLUE_SHIFT_ARB": 1, - "WGL_ALPHA_BITS_ARB": 1, - "B": 9, - "WGL_ALPHA_SHIFT_ARB": 1, - "WGL_ACCUM_BITS_ARB": 1, - "WGL_ACCUM_RED_BITS_ARB": 1, - "WGL_ACCUM_GREEN_BITS_ARB": 1, - "WGL_ACCUM_BLUE_BITS_ARB": 1, - "WGL_ACCUM_ALPHA_BITS_ARB": 1, - "WGL_DEPTH_BITS_ARB": 1, - "WGL_STENCIL_BITS_ARB": 1, - "WGL_AUX_BUFFERS_ARB": 1, - "WGL_NO_ACCELERATION_ARB": 1, - "WGL_GENERIC_ACCELERATION_ARB": 1, - "WGL_FULL_ACCELERATION_ARB": 1, - "WGL_SWAP_EXCHANGE_ARB": 1, - "WGL_SWAP_COPY_ARB": 1, - "WGL_SWAP_UNDEFINED_ARB": 1, - "WGL_TYPE_RGBA_ARB": 1, - "WGL_TYPE_COLORINDEX_ARB": 1, - "WGL_TRANSPARENT_RED_VALUE_ARB": 1, - "WGL_TRANSPARENT_GREEN_VALUE_ARB": 1, - "WGL_TRANSPARENT_BLUE_VALUE_ARB": 1, - "WGL_TRANSPARENT_ALPHA_VALUE_ARB": 1, - "WGL_TRANSPARENT_INDEX_VALUE_ARB": 1, - "PFNWGLCHOOSEPIXELFORMATARBPROC": 2, - "piAttribIList": 2, - "FLOAT": 4, - "*pfAttribFList": 2, - "nMaxFormats": 2, - "*piFormats": 2, - "*nNumFormats": 2, - "PFNWGLGETPIXELFORMATATTRIBFVARBPROC": 2, - "nAttributes": 4, - "piAttributes": 4, - "*pfValues": 2, - "PFNWGLGETPIXELFORMATATTRIBIVARBPROC": 2, - "*piValues": 2, - "wglChoosePixelFormatARB": 1, - "__wglewChoosePixelFormatARB": 2, - "wglGetPixelFormatAttribfvARB": 1, - "__wglewGetPixelFormatAttribfvARB": 2, - "wglGetPixelFormatAttribivARB": 1, - "__wglewGetPixelFormatAttribivARB": 2, - "WGLEW_ARB_pixel_format": 1, - "__WGLEW_ARB_pixel_format": 2, - "WGL_ARB_pixel_format_float": 2, - "WGL_TYPE_RGBA_FLOAT_ARB": 1, - "A0": 3, - "WGLEW_ARB_pixel_format_float": 1, - "__WGLEW_ARB_pixel_format_float": 2, - "WGL_ARB_render_texture": 2, - "WGL_BIND_TO_TEXTURE_RGB_ARB": 1, - "WGL_BIND_TO_TEXTURE_RGBA_ARB": 1, - "WGL_TEXTURE_FORMAT_ARB": 1, - "WGL_TEXTURE_TARGET_ARB": 1, - "WGL_MIPMAP_TEXTURE_ARB": 1, - "WGL_TEXTURE_RGB_ARB": 1, - "WGL_TEXTURE_RGBA_ARB": 1, - "WGL_NO_TEXTURE_ARB": 2, - "WGL_TEXTURE_CUBE_MAP_ARB": 1, - "WGL_TEXTURE_1D_ARB": 1, - "WGL_TEXTURE_2D_ARB": 1, - "WGL_MIPMAP_LEVEL_ARB": 1, - "WGL_CUBE_MAP_FACE_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB": 1, - "WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB": 1, - "WGL_FRONT_LEFT_ARB": 1, - "WGL_FRONT_RIGHT_ARB": 1, - "WGL_BACK_LEFT_ARB": 1, - "WGL_BACK_RIGHT_ARB": 1, - "WGL_AUX0_ARB": 1, - "WGL_AUX1_ARB": 1, - "WGL_AUX2_ARB": 1, - "WGL_AUX3_ARB": 1, - "WGL_AUX4_ARB": 1, - "WGL_AUX5_ARB": 1, - "WGL_AUX6_ARB": 1, - "WGL_AUX7_ARB": 1, - "WGL_AUX8_ARB": 1, - "WGL_AUX9_ARB": 1, - "PFNWGLBINDTEXIMAGEARBPROC": 2, - "iBuffer": 2, - "PFNWGLRELEASETEXIMAGEARBPROC": 2, - "PFNWGLSETPBUFFERATTRIBARBPROC": 2, - "wglBindTexImageARB": 1, - "__wglewBindTexImageARB": 2, - "wglReleaseTexImageARB": 1, - "__wglewReleaseTexImageARB": 2, - "wglSetPbufferAttribARB": 1, - "__wglewSetPbufferAttribARB": 2, - "WGLEW_ARB_render_texture": 1, - "__WGLEW_ARB_render_texture": 2, - "WGL_ATI_pixel_format_float": 2, - "WGL_TYPE_RGBA_FLOAT_ATI": 1, - "GL_RGBA_FLOAT_MODE_ATI": 1, - "GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI": 1, - "WGLEW_ATI_pixel_format_float": 1, - "__WGLEW_ATI_pixel_format_float": 2, - "WGL_ATI_render_texture_rectangle": 2, - "WGL_TEXTURE_RECTANGLE_ATI": 1, - "WGLEW_ATI_render_texture_rectangle": 1, - "__WGLEW_ATI_render_texture_rectangle": 2, - "WGL_EXT_create_context_es2_profile": 2, - "WGL_CONTEXT_ES2_PROFILE_BIT_EXT": 1, - "WGLEW_EXT_create_context_es2_profile": 1, - "__WGLEW_EXT_create_context_es2_profile": 2, - "WGL_EXT_depth_float": 2, - "WGL_DEPTH_FLOAT_EXT": 1, - "WGLEW_EXT_depth_float": 1, - "__WGLEW_EXT_depth_float": 2, - "WGL_EXT_display_color_table": 2, - "GLboolean": 53, - "PFNWGLBINDDISPLAYCOLORTABLEEXTPROC": 2, - "GLushort": 3, - "PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC": 2, - "PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC": 2, - "PFNWGLLOADDISPLAYCOLORTABLEEXTPROC": 2, - "GLushort*": 1, - "table": 1, - "GLuint": 9, - "wglBindDisplayColorTableEXT": 1, - "__wglewBindDisplayColorTableEXT": 2, - "wglCreateDisplayColorTableEXT": 1, - "__wglewCreateDisplayColorTableEXT": 2, - "wglDestroyDisplayColorTableEXT": 1, - "__wglewDestroyDisplayColorTableEXT": 2, - "wglLoadDisplayColorTableEXT": 1, - "__wglewLoadDisplayColorTableEXT": 2, - "WGLEW_EXT_display_color_table": 1, - "__WGLEW_EXT_display_color_table": 2, - "WGL_EXT_extensions_string": 2, - "PFNWGLGETEXTENSIONSSTRINGEXTPROC": 2, - "wglGetExtensionsStringEXT": 1, - "__wglewGetExtensionsStringEXT": 2, - "WGLEW_EXT_extensions_string": 1, - "__WGLEW_EXT_extensions_string": 2, - "WGL_EXT_framebuffer_sRGB": 2, - "WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT": 1, - "WGLEW_EXT_framebuffer_sRGB": 1, - "__WGLEW_EXT_framebuffer_sRGB": 2, - "WGL_EXT_make_current_read": 2, - "ERROR_INVALID_PIXEL_TYPE_EXT": 1, - "PFNWGLGETCURRENTREADDCEXTPROC": 2, - "PFNWGLMAKECONTEXTCURRENTEXTPROC": 2, - "wglGetCurrentReadDCEXT": 1, - "__wglewGetCurrentReadDCEXT": 2, - "wglMakeContextCurrentEXT": 1, - "__wglewMakeContextCurrentEXT": 2, - "WGLEW_EXT_make_current_read": 1, - "__WGLEW_EXT_make_current_read": 2, - "WGL_EXT_multisample": 2, - "WGL_SAMPLE_BUFFERS_EXT": 1, - "WGL_SAMPLES_EXT": 1, - "WGLEW_EXT_multisample": 1, - "__WGLEW_EXT_multisample": 2, - "WGL_EXT_pbuffer": 2, - "WGL_DRAW_TO_PBUFFER_EXT": 1, - "WGL_MAX_PBUFFER_PIXELS_EXT": 1, - "WGL_MAX_PBUFFER_WIDTH_EXT": 1, - "WGL_MAX_PBUFFER_HEIGHT_EXT": 1, - "WGL_OPTIMAL_PBUFFER_WIDTH_EXT": 1, - "WGL_OPTIMAL_PBUFFER_HEIGHT_EXT": 1, - "WGL_PBUFFER_LARGEST_EXT": 1, - "WGL_PBUFFER_WIDTH_EXT": 1, - "WGL_PBUFFER_HEIGHT_EXT": 1, - "HPBUFFEREXT": 6, - "PFNWGLCREATEPBUFFEREXTPROC": 2, - "PFNWGLDESTROYPBUFFEREXTPROC": 2, - "PFNWGLGETPBUFFERDCEXTPROC": 2, - "PFNWGLQUERYPBUFFEREXTPROC": 2, - "PFNWGLRELEASEPBUFFERDCEXTPROC": 2, - "wglCreatePbufferEXT": 1, - "__wglewCreatePbufferEXT": 2, - "wglDestroyPbufferEXT": 1, - "__wglewDestroyPbufferEXT": 2, - "wglGetPbufferDCEXT": 1, - "__wglewGetPbufferDCEXT": 2, - "wglQueryPbufferEXT": 1, - "__wglewQueryPbufferEXT": 2, - "wglReleasePbufferDCEXT": 1, - "__wglewReleasePbufferDCEXT": 2, - "WGLEW_EXT_pbuffer": 1, - "__WGLEW_EXT_pbuffer": 2, - "WGL_EXT_pixel_format": 2, - "WGL_NUMBER_PIXEL_FORMATS_EXT": 1, - "WGL_DRAW_TO_WINDOW_EXT": 1, - "WGL_DRAW_TO_BITMAP_EXT": 1, - "WGL_ACCELERATION_EXT": 1, - "WGL_NEED_PALETTE_EXT": 1, - "WGL_NEED_SYSTEM_PALETTE_EXT": 1, - "WGL_SWAP_LAYER_BUFFERS_EXT": 1, - "WGL_SWAP_METHOD_EXT": 1, - "WGL_NUMBER_OVERLAYS_EXT": 1, - "WGL_NUMBER_UNDERLAYS_EXT": 1, - "WGL_TRANSPARENT_EXT": 1, - "WGL_TRANSPARENT_VALUE_EXT": 1, - "WGL_SHARE_DEPTH_EXT": 1, - "WGL_SHARE_STENCIL_EXT": 1, - "WGL_SHARE_ACCUM_EXT": 1, - "WGL_SUPPORT_GDI_EXT": 1, - "WGL_SUPPORT_OPENGL_EXT": 1, - "WGL_DOUBLE_BUFFER_EXT": 1, - "WGL_STEREO_EXT": 1, - "WGL_PIXEL_TYPE_EXT": 1, - "WGL_COLOR_BITS_EXT": 1, - "WGL_RED_BITS_EXT": 1, - "WGL_RED_SHIFT_EXT": 1, - "WGL_GREEN_BITS_EXT": 1, - "WGL_GREEN_SHIFT_EXT": 1, - "WGL_BLUE_BITS_EXT": 1, - "WGL_BLUE_SHIFT_EXT": 1, - "WGL_ALPHA_BITS_EXT": 1, - "WGL_ALPHA_SHIFT_EXT": 1, - "WGL_ACCUM_BITS_EXT": 1, - "WGL_ACCUM_RED_BITS_EXT": 1, - "WGL_ACCUM_GREEN_BITS_EXT": 1, - "WGL_ACCUM_BLUE_BITS_EXT": 1, - "WGL_ACCUM_ALPHA_BITS_EXT": 1, - "WGL_DEPTH_BITS_EXT": 1, - "WGL_STENCIL_BITS_EXT": 1, - "WGL_AUX_BUFFERS_EXT": 1, - "WGL_NO_ACCELERATION_EXT": 1, - "WGL_GENERIC_ACCELERATION_EXT": 1, - "WGL_FULL_ACCELERATION_EXT": 1, - "WGL_SWAP_EXCHANGE_EXT": 1, - "WGL_SWAP_COPY_EXT": 1, - "WGL_SWAP_UNDEFINED_EXT": 1, - "WGL_TYPE_RGBA_EXT": 1, - "WGL_TYPE_COLORINDEX_EXT": 1, - "PFNWGLCHOOSEPIXELFORMATEXTPROC": 2, - "PFNWGLGETPIXELFORMATATTRIBFVEXTPROC": 2, - "PFNWGLGETPIXELFORMATATTRIBIVEXTPROC": 2, - "wglChoosePixelFormatEXT": 1, - "__wglewChoosePixelFormatEXT": 2, - "wglGetPixelFormatAttribfvEXT": 1, - "__wglewGetPixelFormatAttribfvEXT": 2, - "wglGetPixelFormatAttribivEXT": 1, - "__wglewGetPixelFormatAttribivEXT": 2, - "WGLEW_EXT_pixel_format": 1, - "__WGLEW_EXT_pixel_format": 2, - "WGL_EXT_pixel_format_packed_float": 2, - "WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT": 1, - "WGLEW_EXT_pixel_format_packed_float": 1, - "__WGLEW_EXT_pixel_format_packed_float": 2, - "WGL_EXT_swap_control": 2, - "PFNWGLGETSWAPINTERVALEXTPROC": 2, - "PFNWGLSWAPINTERVALEXTPROC": 2, - "interval": 1, - "wglGetSwapIntervalEXT": 1, - "__wglewGetSwapIntervalEXT": 2, - "wglSwapIntervalEXT": 1, - "__wglewSwapIntervalEXT": 2, - "WGLEW_EXT_swap_control": 1, - "__WGLEW_EXT_swap_control": 2, - "WGL_I3D_digital_video_control": 2, - "WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D": 1, - "WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D": 1, - "WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D": 1, - "WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D": 1, - "PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC": 2, - "PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC": 2, - "wglGetDigitalVideoParametersI3D": 1, - "__wglewGetDigitalVideoParametersI3D": 2, - "wglSetDigitalVideoParametersI3D": 1, - "__wglewSetDigitalVideoParametersI3D": 2, - "WGLEW_I3D_digital_video_control": 1, - "__WGLEW_I3D_digital_video_control": 2, - "WGL_I3D_gamma": 2, - "WGL_GAMMA_TABLE_SIZE_I3D": 1, - "WGL_GAMMA_EXCLUDE_DESKTOP_I3D": 1, - "PFNWGLGETGAMMATABLEI3DPROC": 2, - "iEntries": 2, - "USHORT*": 2, - "puRed": 2, - "USHORT": 4, - "*puGreen": 2, - "*puBlue": 2, - "PFNWGLGETGAMMATABLEPARAMETERSI3DPROC": 2, - "PFNWGLSETGAMMATABLEI3DPROC": 2, - "PFNWGLSETGAMMATABLEPARAMETERSI3DPROC": 2, - "wglGetGammaTableI3D": 1, - "__wglewGetGammaTableI3D": 2, - "wglGetGammaTableParametersI3D": 1, - "__wglewGetGammaTableParametersI3D": 2, - "wglSetGammaTableI3D": 1, - "__wglewSetGammaTableI3D": 2, - "wglSetGammaTableParametersI3D": 1, - "__wglewSetGammaTableParametersI3D": 2, - "WGLEW_I3D_gamma": 1, - "__WGLEW_I3D_gamma": 2, - "WGL_I3D_genlock": 2, - "WGL_GENLOCK_SOURCE_MULTIVIEW_I3D": 1, - "WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D": 1, - "WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D": 1, - "WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D": 1, - "WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D": 1, - "WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D": 1, - "WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D": 1, - "WGL_GENLOCK_SOURCE_EDGE_RISING_I3D": 1, - "WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D": 1, - "PFNWGLDISABLEGENLOCKI3DPROC": 2, - "PFNWGLENABLEGENLOCKI3DPROC": 2, - "PFNWGLGENLOCKSAMPLERATEI3DPROC": 2, - "uRate": 2, - "PFNWGLGENLOCKSOURCEDELAYI3DPROC": 2, - "uDelay": 2, - "PFNWGLGENLOCKSOURCEEDGEI3DPROC": 2, - "uEdge": 2, - "PFNWGLGENLOCKSOURCEI3DPROC": 2, - "uSource": 2, - "PFNWGLGETGENLOCKSAMPLERATEI3DPROC": 2, - "PFNWGLGETGENLOCKSOURCEDELAYI3DPROC": 2, - "PFNWGLGETGENLOCKSOURCEEDGEI3DPROC": 2, - "PFNWGLGETGENLOCKSOURCEI3DPROC": 2, - "PFNWGLISENABLEDGENLOCKI3DPROC": 2, - "BOOL*": 3, - "pFlag": 3, - "PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC": 2, - "uMaxLineDelay": 1, - "*uMaxPixelDelay": 1, - "wglDisableGenlockI3D": 1, - "__wglewDisableGenlockI3D": 2, - "wglEnableGenlockI3D": 1, - "__wglewEnableGenlockI3D": 2, - "wglGenlockSampleRateI3D": 1, - "__wglewGenlockSampleRateI3D": 2, - "wglGenlockSourceDelayI3D": 1, - "__wglewGenlockSourceDelayI3D": 2, - "wglGenlockSourceEdgeI3D": 1, - "__wglewGenlockSourceEdgeI3D": 2, - "wglGenlockSourceI3D": 1, - "__wglewGenlockSourceI3D": 2, - "wglGetGenlockSampleRateI3D": 1, - "__wglewGetGenlockSampleRateI3D": 2, - "wglGetGenlockSourceDelayI3D": 1, - "__wglewGetGenlockSourceDelayI3D": 2, - "wglGetGenlockSourceEdgeI3D": 1, - "__wglewGetGenlockSourceEdgeI3D": 2, - "wglGetGenlockSourceI3D": 1, - "__wglewGetGenlockSourceI3D": 2, - "wglIsEnabledGenlockI3D": 1, - "__wglewIsEnabledGenlockI3D": 2, - "wglQueryGenlockMaxSourceDelayI3D": 1, - "__wglewQueryGenlockMaxSourceDelayI3D": 2, - "WGLEW_I3D_genlock": 1, - "__WGLEW_I3D_genlock": 2, - "WGL_I3D_image_buffer": 2, - "WGL_IMAGE_BUFFER_MIN_ACCESS_I3D": 1, - "WGL_IMAGE_BUFFER_LOCK_I3D": 1, - "PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC": 2, - "HANDLE*": 3, - "pEvent": 1, - "LPVOID": 3, - "*pAddress": 1, - "DWORD": 5, - "*pSize": 1, - "PFNWGLCREATEIMAGEBUFFERI3DPROC": 2, - "dwSize": 1, - "uFlags": 1, - "PFNWGLDESTROYIMAGEBUFFERI3DPROC": 2, - "pAddress": 2, - "PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC": 2, - "LPVOID*": 1, - "wglAssociateImageBufferEventsI3D": 1, - "__wglewAssociateImageBufferEventsI3D": 2, - "wglCreateImageBufferI3D": 1, - "__wglewCreateImageBufferI3D": 2, - "wglDestroyImageBufferI3D": 1, - "__wglewDestroyImageBufferI3D": 2, - "wglReleaseImageBufferEventsI3D": 1, - "__wglewReleaseImageBufferEventsI3D": 2, - "WGLEW_I3D_image_buffer": 1, - "__WGLEW_I3D_image_buffer": 2, - "WGL_I3D_swap_frame_lock": 2, - "PFNWGLDISABLEFRAMELOCKI3DPROC": 2, - "PFNWGLENABLEFRAMELOCKI3DPROC": 2, - "PFNWGLISENABLEDFRAMELOCKI3DPROC": 2, - "PFNWGLQUERYFRAMELOCKMASTERI3DPROC": 2, - "wglDisableFrameLockI3D": 1, - "__wglewDisableFrameLockI3D": 2, - "wglEnableFrameLockI3D": 1, - "__wglewEnableFrameLockI3D": 2, - "wglIsEnabledFrameLockI3D": 1, - "__wglewIsEnabledFrameLockI3D": 2, - "wglQueryFrameLockMasterI3D": 1, - "__wglewQueryFrameLockMasterI3D": 2, - "WGLEW_I3D_swap_frame_lock": 1, - "__WGLEW_I3D_swap_frame_lock": 2, - "WGL_I3D_swap_frame_usage": 2, - "PFNWGLBEGINFRAMETRACKINGI3DPROC": 2, - "PFNWGLENDFRAMETRACKINGI3DPROC": 2, - "PFNWGLGETFRAMEUSAGEI3DPROC": 2, - "float*": 1, - "pUsage": 1, - "PFNWGLQUERYFRAMETRACKINGI3DPROC": 2, - "DWORD*": 1, - "pFrameCount": 1, - "*pMissedFrames": 1, - "*pLastMissedUsage": 1, - "wglBeginFrameTrackingI3D": 1, - "__wglewBeginFrameTrackingI3D": 2, - "wglEndFrameTrackingI3D": 1, - "__wglewEndFrameTrackingI3D": 2, - "wglGetFrameUsageI3D": 1, - "__wglewGetFrameUsageI3D": 2, - "wglQueryFrameTrackingI3D": 1, - "__wglewQueryFrameTrackingI3D": 2, - "WGLEW_I3D_swap_frame_usage": 1, - "__WGLEW_I3D_swap_frame_usage": 2, - "WGL_NV_DX_interop": 2, - "WGL_ACCESS_READ_ONLY_NV": 1, - "WGL_ACCESS_READ_WRITE_NV": 1, - "WGL_ACCESS_WRITE_DISCARD_NV": 1, - "PFNWGLDXCLOSEDEVICENVPROC": 2, - "hDevice": 9, - "PFNWGLDXLOCKOBJECTSNVPROC": 2, - "hObjects": 2, - "PFNWGLDXOBJECTACCESSNVPROC": 2, - "hObject": 2, - "access": 2, - "PFNWGLDXOPENDEVICENVPROC": 2, - "dxDevice": 1, - "PFNWGLDXREGISTEROBJECTNVPROC": 2, - "dxObject": 2, - "PFNWGLDXSETRESOURCESHAREHANDLENVPROC": 2, - "shareHandle": 1, - "PFNWGLDXUNLOCKOBJECTSNVPROC": 2, - "PFNWGLDXUNREGISTEROBJECTNVPROC": 2, - "wglDXCloseDeviceNV": 1, - "__wglewDXCloseDeviceNV": 2, - "wglDXLockObjectsNV": 1, - "__wglewDXLockObjectsNV": 2, - "wglDXObjectAccessNV": 1, - "__wglewDXObjectAccessNV": 2, - "wglDXOpenDeviceNV": 1, - "__wglewDXOpenDeviceNV": 2, - "wglDXRegisterObjectNV": 1, - "__wglewDXRegisterObjectNV": 2, - "wglDXSetResourceShareHandleNV": 1, - "__wglewDXSetResourceShareHandleNV": 2, - "wglDXUnlockObjectsNV": 1, - "__wglewDXUnlockObjectsNV": 2, - "wglDXUnregisterObjectNV": 1, - "__wglewDXUnregisterObjectNV": 2, - "WGLEW_NV_DX_interop": 1, - "__WGLEW_NV_DX_interop": 2, - "WGL_NV_copy_image": 2, - "PFNWGLCOPYIMAGESUBDATANVPROC": 2, - "hSrcRC": 1, - "srcName": 1, - "srcTarget": 1, - "srcLevel": 1, - "srcX": 1, - "srcY": 1, - "srcZ": 1, - "hDstRC": 1, - "dstName": 1, - "dstTarget": 1, - "dstLevel": 1, - "dstX": 1, - "dstY": 1, - "dstZ": 1, - "GLsizei": 4, - "wglCopyImageSubDataNV": 1, - "__wglewCopyImageSubDataNV": 2, - "WGLEW_NV_copy_image": 1, - "__WGLEW_NV_copy_image": 2, - "WGL_NV_float_buffer": 2, - "WGL_FLOAT_COMPONENTS_NV": 1, - "B0": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV": 1, - "B1": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV": 1, - "B2": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV": 1, - "B3": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV": 1, - "B4": 1, - "WGL_TEXTURE_FLOAT_R_NV": 1, - "B5": 1, - "WGL_TEXTURE_FLOAT_RG_NV": 1, - "B6": 1, - "WGL_TEXTURE_FLOAT_RGB_NV": 1, - "B7": 1, - "WGL_TEXTURE_FLOAT_RGBA_NV": 1, - "B8": 1, - "WGLEW_NV_float_buffer": 1, - "__WGLEW_NV_float_buffer": 2, - "WGL_NV_gpu_affinity": 2, - "WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV": 1, - "D0": 1, - "WGL_ERROR_MISSING_AFFINITY_MASK_NV": 1, - "D1": 1, - "HGPUNV": 5, - "_GPU_DEVICE": 1, - "cb": 1, - "CHAR": 2, - "DeviceName": 1, - "DeviceString": 1, - "Flags": 1, - "RECT": 1, - "rcVirtualScreen": 1, - "GPU_DEVICE": 1, - "*PGPU_DEVICE": 1, - "PFNWGLCREATEAFFINITYDCNVPROC": 2, - "*phGpuList": 1, - "PFNWGLDELETEDCNVPROC": 2, - "PFNWGLENUMGPUDEVICESNVPROC": 2, - "hGpu": 1, - "iDeviceIndex": 1, - "PGPU_DEVICE": 1, - "lpGpuDevice": 1, - "PFNWGLENUMGPUSFROMAFFINITYDCNVPROC": 2, - "hAffinityDC": 1, - "iGpuIndex": 2, - "*hGpu": 1, - "PFNWGLENUMGPUSNVPROC": 2, - "*phGpu": 1, - "wglCreateAffinityDCNV": 1, - "__wglewCreateAffinityDCNV": 2, - "wglDeleteDCNV": 1, - "__wglewDeleteDCNV": 2, - "wglEnumGpuDevicesNV": 1, - "__wglewEnumGpuDevicesNV": 2, - "wglEnumGpusFromAffinityDCNV": 1, - "__wglewEnumGpusFromAffinityDCNV": 2, - "wglEnumGpusNV": 1, - "__wglewEnumGpusNV": 2, - "WGLEW_NV_gpu_affinity": 1, - "__WGLEW_NV_gpu_affinity": 2, - "WGL_NV_multisample_coverage": 2, - "WGL_COVERAGE_SAMPLES_NV": 1, - "WGL_COLOR_SAMPLES_NV": 1, - "B9": 1, - "WGLEW_NV_multisample_coverage": 1, - "__WGLEW_NV_multisample_coverage": 2, - "WGL_NV_present_video": 2, - "WGL_NUM_VIDEO_SLOTS_NV": 1, - "F0": 1, - "HVIDEOOUTPUTDEVICENV": 2, - "PFNWGLBINDVIDEODEVICENVPROC": 2, - "hDc": 6, - "uVideoSlot": 2, - "hVideoDevice": 4, - "PFNWGLENUMERATEVIDEODEVICESNVPROC": 2, - "HVIDEOOUTPUTDEVICENV*": 1, - "phDeviceList": 2, - "PFNWGLQUERYCURRENTCONTEXTNVPROC": 2, - "wglBindVideoDeviceNV": 1, - "__wglewBindVideoDeviceNV": 2, - "wglEnumerateVideoDevicesNV": 1, - "__wglewEnumerateVideoDevicesNV": 2, - "wglQueryCurrentContextNV": 1, - "__wglewQueryCurrentContextNV": 2, - "WGLEW_NV_present_video": 1, - "__WGLEW_NV_present_video": 2, - "WGL_NV_render_depth_texture": 2, - "WGL_BIND_TO_TEXTURE_DEPTH_NV": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV": 1, - "WGL_DEPTH_TEXTURE_FORMAT_NV": 1, - "WGL_TEXTURE_DEPTH_COMPONENT_NV": 1, - "WGL_DEPTH_COMPONENT_NV": 1, - "WGLEW_NV_render_depth_texture": 1, - "__WGLEW_NV_render_depth_texture": 2, - "WGL_NV_render_texture_rectangle": 2, - "WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV": 1, - "WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV": 1, - "A1": 1, - "WGL_TEXTURE_RECTANGLE_NV": 1, - "WGLEW_NV_render_texture_rectangle": 1, - "__WGLEW_NV_render_texture_rectangle": 2, - "WGL_NV_swap_group": 2, - "PFNWGLBINDSWAPBARRIERNVPROC": 2, - "group": 3, - "barrier": 1, - "PFNWGLJOINSWAPGROUPNVPROC": 2, - "PFNWGLQUERYFRAMECOUNTNVPROC": 2, - "GLuint*": 3, - "PFNWGLQUERYMAXSWAPGROUPSNVPROC": 2, - "maxGroups": 1, - "*maxBarriers": 1, - "PFNWGLQUERYSWAPGROUPNVPROC": 2, - "*barrier": 1, - "PFNWGLRESETFRAMECOUNTNVPROC": 2, - "wglBindSwapBarrierNV": 1, - "__wglewBindSwapBarrierNV": 2, - "wglJoinSwapGroupNV": 1, - "__wglewJoinSwapGroupNV": 2, - "wglQueryFrameCountNV": 1, - "__wglewQueryFrameCountNV": 2, - "wglQueryMaxSwapGroupsNV": 1, - "__wglewQueryMaxSwapGroupsNV": 2, - "wglQuerySwapGroupNV": 1, - "__wglewQuerySwapGroupNV": 2, - "wglResetFrameCountNV": 1, - "__wglewResetFrameCountNV": 2, - "WGLEW_NV_swap_group": 1, - "__WGLEW_NV_swap_group": 2, - "WGL_NV_vertex_array_range": 2, - "PFNWGLALLOCATEMEMORYNVPROC": 2, - "GLfloat": 3, - "readFrequency": 1, - "writeFrequency": 1, - "priority": 1, - "PFNWGLFREEMEMORYNVPROC": 2, - "*pointer": 1, - "wglAllocateMemoryNV": 1, - "__wglewAllocateMemoryNV": 2, - "wglFreeMemoryNV": 1, - "__wglewFreeMemoryNV": 2, - "WGLEW_NV_vertex_array_range": 1, - "__WGLEW_NV_vertex_array_range": 2, - "WGL_NV_video_capture": 2, - "WGL_UNIQUE_ID_NV": 1, - "CE": 1, - "WGL_NUM_VIDEO_CAPTURE_SLOTS_NV": 1, - "CF": 1, - "HVIDEOINPUTDEVICENV": 5, - "PFNWGLBINDVIDEOCAPTUREDEVICENVPROC": 2, - "PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC": 2, - "HVIDEOINPUTDEVICENV*": 1, - "PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC": 2, - "PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC": 2, - "PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC": 2, - "wglBindVideoCaptureDeviceNV": 1, - "__wglewBindVideoCaptureDeviceNV": 2, - "wglEnumerateVideoCaptureDevicesNV": 1, - "__wglewEnumerateVideoCaptureDevicesNV": 2, - "wglLockVideoCaptureDeviceNV": 1, - "__wglewLockVideoCaptureDeviceNV": 2, - "wglQueryVideoCaptureDeviceNV": 1, - "__wglewQueryVideoCaptureDeviceNV": 2, - "wglReleaseVideoCaptureDeviceNV": 1, - "__wglewReleaseVideoCaptureDeviceNV": 2, - "WGLEW_NV_video_capture": 1, - "__WGLEW_NV_video_capture": 2, - "WGL_NV_video_output": 2, - "WGL_BIND_TO_VIDEO_RGB_NV": 1, - "WGL_BIND_TO_VIDEO_RGBA_NV": 1, - "C1": 1, - "WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV": 1, - "C2": 1, - "WGL_VIDEO_OUT_COLOR_NV": 1, - "C3": 1, - "WGL_VIDEO_OUT_ALPHA_NV": 1, - "C4": 1, - "WGL_VIDEO_OUT_DEPTH_NV": 1, - "C5": 1, - "WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV": 1, - "C6": 1, - "WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV": 1, - "C7": 1, - "WGL_VIDEO_OUT_FRAME": 1, - "C8": 1, - "WGL_VIDEO_OUT_FIELD_1": 1, - "C9": 1, - "WGL_VIDEO_OUT_FIELD_2": 1, - "CA": 1, - "WGL_VIDEO_OUT_STACKED_FIELDS_1_2": 1, - "CB": 1, - "WGL_VIDEO_OUT_STACKED_FIELDS_2_1": 1, - "CC": 1, - "HPVIDEODEV": 4, - "PFNWGLBINDVIDEOIMAGENVPROC": 2, - "iVideoBuffer": 2, - "PFNWGLGETVIDEODEVICENVPROC": 2, - "numDevices": 1, - "HPVIDEODEV*": 1, - "PFNWGLGETVIDEOINFONVPROC": 2, - "hpVideoDevice": 1, - "long*": 2, - "pulCounterOutputPbuffer": 1, - "*pulCounterOutputVideo": 1, - "PFNWGLRELEASEVIDEODEVICENVPROC": 2, - "PFNWGLRELEASEVIDEOIMAGENVPROC": 2, - "PFNWGLSENDPBUFFERTOVIDEONVPROC": 2, - "iBufferType": 1, - "pulCounterPbuffer": 1, - "bBlock": 1, - "wglBindVideoImageNV": 1, - "__wglewBindVideoImageNV": 2, - "wglGetVideoDeviceNV": 1, - "__wglewGetVideoDeviceNV": 2, - "wglGetVideoInfoNV": 1, - "__wglewGetVideoInfoNV": 2, - "wglReleaseVideoDeviceNV": 1, - "__wglewReleaseVideoDeviceNV": 2, - "wglReleaseVideoImageNV": 1, - "__wglewReleaseVideoImageNV": 2, - "wglSendPbufferToVideoNV": 1, - "__wglewSendPbufferToVideoNV": 2, - "WGLEW_NV_video_output": 1, - "__WGLEW_NV_video_output": 2, - "WGL_OML_sync_control": 2, - "PFNWGLGETMSCRATEOMLPROC": 2, - "INT32*": 1, - "numerator": 1, - "INT32": 1, - "*denominator": 1, - "PFNWGLGETSYNCVALUESOMLPROC": 2, - "INT64*": 3, - "INT64": 18, - "*msc": 3, - "*sbc": 3, - "PFNWGLSWAPBUFFERSMSCOMLPROC": 2, - "target_msc": 3, - "divisor": 3, - "remainder": 3, - "PFNWGLSWAPLAYERBUFFERSMSCOMLPROC": 2, - "fuPlanes": 1, - "PFNWGLWAITFORMSCOMLPROC": 2, - "PFNWGLWAITFORSBCOMLPROC": 2, - "target_sbc": 1, - "wglGetMscRateOML": 1, - "__wglewGetMscRateOML": 2, - "wglGetSyncValuesOML": 1, - "__wglewGetSyncValuesOML": 2, - "wglSwapBuffersMscOML": 1, - "__wglewSwapBuffersMscOML": 2, - "wglSwapLayerBuffersMscOML": 1, - "__wglewSwapLayerBuffersMscOML": 2, - "wglWaitForMscOML": 1, - "__wglewWaitForMscOML": 2, - "wglWaitForSbcOML": 1, - "__wglewWaitForSbcOML": 2, - "WGLEW_OML_sync_control": 1, - "__WGLEW_OML_sync_control": 2, - "GLEW_MX": 4, - "WGLEW_EXPORT": 167, - "GLEWAPI": 6, - "WGLEWContextStruct": 2, - "WGLEWContext": 1, - "wglewContextInit": 2, - "WGLEWContext*": 2, - "wglewContextIsSupported": 2, - "wglewInit": 1, - "wglewGetContext": 4, - "wglewIsSupported": 2, - "wglewGetExtension": 1, - "set_vgabasemem": 2, - "ULONG": 1, - "vgabase": 3, - "SELECTOR": 1, - "asm": 1, - "mov": 1, - "ds": 1, - "dpmi_get_sel_base": 1, - "xa0000": 1, - "change": 2, - "display": 2, - "regs.b.ah": 1, - "seet": 1, - "theh": 1, - "moode": 1, - "regs.b.al": 1, - "like": 1, - "innit": 1, - "regs.h.flags": 1, - "Set": 2, - "dingoes": 1, - "kidneys": 1, - "FLAGS": 1, - "eh": 1, - "regs.h.ss": 1, - "Like": 1, - "totally": 1, - "set": 1, - "segment": 1, - "regs.h.sp": 1, - "tha": 1, - "pointaaaaahhhhh": 1, - "dpmi_simulate_real_interrupt": 1, - "*VGAPIX": 6, - "stp": 3, - "dx": 4, - "dy": 3, - "yi": 5, - "excrement": 1, - "drw_circl": 1, - "mang": 3, - "angle": 1, - "haha": 1, - "px": 4, - "py": 4, - "Yeah": 1, - "yeah": 1, - "I": 1, - "ll": 1, - "later": 1, - "cos": 15, - "*rad": 2, - "causes": 1, - "some": 1, - "really": 1, - "cools": 1, - "effects": 1, - "sin": 17, - "i*w": 1, - "j*w": 1, - "__GLK_MATRIX_4_H": 2, - "": 1, - "__ARM_NEON__": 13, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Prototypes": 1, - "GLKMatrix4": 183, - "GLKMatrix4Identity": 3, - "GLKMatrix4Make": 2, - "m00": 6, - "m01": 6, - "m02": 6, - "m03": 6, - "m10": 6, - "m11": 6, - "m12": 6, - "m13": 6, - "m20": 6, - "m21": 6, - "m22": 6, - "m23": 6, - "m30": 6, - "m31": 6, - "m32": 6, - "m33": 6, - "GLKMatrix4MakeAndTranspose": 2, - "GLKMatrix4MakeWithArray": 2, - "GLKMatrix4MakeWithArrayAndTranspose": 2, - "GLKMatrix4MakeWithRows": 2, - "GLKVector4": 44, - "row0": 2, - "row1": 2, - "row2": 2, - "row3": 2, - "GLKMatrix4MakeWithColumns": 2, - "column0": 2, - "column1": 2, - "column2": 2, - "column3": 2, - "GLKMatrix4MakeWithQuaternion": 2, - "GLKQuaternion": 2, - "quaternion": 4, - "GLKMatrix4MakeTranslation": 2, - "tx": 8, - "ty": 8, - "tz": 8, - "GLKMatrix4MakeScale": 2, - "sx": 10, - "sy": 10, - "sz": 10, - "GLKMatrix4MakeRotation": 5, - "radians": 34, - "GLKMatrix4MakeXRotation": 3, - "GLKMatrix4MakeYRotation": 3, - "GLKMatrix4MakeZRotation": 3, - "GLKMatrix4MakePerspective": 2, - "fovyRadians": 3, - "aspect": 3, - "nearZ": 17, - "farZ": 15, - "GLKMatrix4MakeFrustum": 2, - "left": 8, - "right": 8, - "bottom": 8, - "top": 8, - "GLKMatrix4MakeOrtho": 2, - "GLKMatrix4MakeLookAt": 2, - "eyeX": 3, - "eyeY": 3, - "eyeZ": 3, - "centerX": 3, - "centerY": 3, - "centerZ": 3, - "upX": 3, - "upY": 3, - "upZ": 3, - "GLKMatrix3": 3, - "GLKMatrix4GetMatrix3": 2, - "matrix": 64, - "GLKMatrix2": 3, - "GLKMatrix4GetMatrix2": 2, - "GLKMatrix4GetRow": 2, - "row": 12, - "GLKMatrix4GetColumn": 2, - "column": 14, - "GLKMatrix4SetRow": 2, - "vector": 4, - "GLKMatrix4SetColumn": 2, - "GLKMatrix4Transpose": 2, - "GLKMatrix4Invert": 1, - "*isInvertible": 2, - "GLKMatrix4InvertAndTranspose": 1, - "GLKMatrix4Multiply": 8, - "matrixLeft": 21, - "matrixRight": 9, - "GLKMatrix4Add": 2, - "GLKMatrix4Subtract": 2, - "GLKMatrix4Translate": 2, - "GLKMatrix4TranslateWithVector3": 2, - "GLKVector3": 31, - "translationVector": 4, - "GLKMatrix4TranslateWithVector4": 2, - "GLKMatrix4Scale": 2, - "GLKMatrix4ScaleWithVector3": 2, - "scaleVector": 4, - "GLKMatrix4ScaleWithVector4": 2, - "GLKMatrix4Rotate": 2, - "GLKMatrix4RotateWithVector3": 2, - "axisVector": 4, - "GLKMatrix4RotateWithVector4": 2, - "GLKMatrix4RotateX": 2, - "GLKMatrix4RotateY": 2, - "GLKMatrix4RotateZ": 2, - "GLKMatrix4MultiplyVector3": 3, - "vectorRight": 8, - "GLKMatrix4MultiplyVector3WithTranslation": 3, - "GLKMatrix4MultiplyAndProjectVector3": 3, - "GLKMatrix4MultiplyVector3Array": 2, - "*vectors": 8, - "vectorCount": 12, - "GLKMatrix4MultiplyVector3ArrayWithTranslation": 2, - "GLKMatrix4MultiplyAndProjectVector3Array": 2, - "GLKMatrix4MultiplyVector4": 6, - "GLKMatrix4MultiplyVector4Array": 2, - "Implementations": 1, - "float32x4x4_t": 29, - "vld4q_f32": 2, - "row0.v": 4, - "row1.v": 4, - "row2.v": 4, - "row3.v": 4, - "m.val": 52, - "vld1q_f32": 6, - "column0.v": 5, - "column1.v": 5, - "column2.v": 5, - "column3.v": 5, - "GLKQuaternionNormalize": 1, - "quaternion.q": 4, - "_2x": 7, - "_2y": 5, - "_2z": 3, - "_2w": 7, - "m.m": 54, - "GLKVector3Normalize": 3, - "GLKVector3Make": 4, - "cosf": 4, - "cosp": 10, - "sinf": 4, - "v.v": 27, - "cotan": 3, - "tanf": 1, - "ral": 4, - "rsl": 6, - "tsb": 6, - "tab": 4, - "fan": 4, - "fsn": 6, - "cv": 2, - "uv": 2, - "GLKVector3Add": 1, - "GLKVector3Negate": 4, - "GLKVector3CrossProduct": 2, - "u.v": 3, - "n.v": 3, - "GLKVector3DotProduct": 3, - "matrix.m": 171, - "float32x4_t": 2, - "vector.v": 9, - "*dst": 1, - "vst1q_f32": 1, - "iMatrixLeft": 3, - "iMatrixRight": 3, - "vmulq_n_f32": 17, - "iMatrixLeft.val": 24, - "vgetq_lane_f32": 16, - "iMatrixRight.val": 24, - "vmlaq_n_f32": 12, - "matrixLeft.m": 112, - "matrixRight.m": 96, - "vaddq_f32": 7, - "vsubq_f32": 4, - "translationVector.v": 18, - "iMatrix": 4, - "iMatrix.val": 28, - "float32_t": 13, - "scaleVector.v": 30, - "rm": 12, - "axisVector.v": 6, - "v4": 3, - "GLKVector4Make": 3, - "vectorRight.v": 29, - "v4.v": 10, - "GLKVector3MultiplyScalar": 1, - "vectors": 8, - "REFU_IO_H": 2, - "xA": 1, - "RF_CR": 1, - "xD": 1, - "REFU_WIN32_VERSION": 1, - "i_PLUSB_WIN32": 2, - "foff_rft": 2, - "off64_t": 1, - "///Fseek": 1, - "Ftelll": 1, - "definitions": 1, - "rfFseek": 2, - "i_OFFSET_": 4, - "i_WHENCE_": 4, - "_fseeki64": 1, - "rfFtell": 2, - "_ftelli64": 1, - "fseeko64": 1, - "ftello64": 1, - "rfFReadLine_UTF32BE": 1, - "rfFgets_UTF32BE": 1, - "rfPopen": 2, - "command": 2, - "i_rfPopen": 2, - "i_CMD_": 2, - "i_MODE_": 2, - "rfPclose": 1, - "///closing": 1, - "#endif//include": 1, - "syscalldef": 1, - "syscalldefs": 1, - "SYSCALL_OR_NUM": 3, - "SYS_restart_syscall": 1, - "MAKE_UINT16": 3, - "SYS_exit": 1, - "SYS_fork": 1, - "git_usage_string": 2, - "git_more_info_string": 2, - "N_": 1, - "startup_info": 3, - "git_startup_info": 2, - "use_pager": 8, - "pager_config": 3, - "*cmd": 5, - "want": 3, - "pager_command_config": 2, - "prefixcmp": 3, - "git_config_maybe_bool": 1, - "xstrdup": 2, - "check_pager_config": 3, - "c.cmd": 1, - "c.want": 2, - "c.value": 3, - "pager_program": 1, - "commit_pager_choice": 4, - "setenv": 1, - "setup_pager": 1, - "handle_options": 2, - "***argv": 2, - "*argc": 1, - "*envchanged": 1, - "**orig_argv": 1, - "new_argv": 7, - "option_count": 1, - "alias_command": 4, - "trace_argv_printf": 3, - "*argcp": 4, - "subdir": 3, - "die_errno": 3, - "saved_errno": 1, - "git_version_string": 1, - "GIT_VERSION": 1, - "RUN_SETUP": 81, - "RUN_SETUP_GENTLY": 16, - "USE_PAGER": 3, - "NEED_WORK_TREE": 18, - "cmd_struct": 4, - "run_builtin": 2, - "help": 4, - "stat": 3, - "st": 2, - "setup_git_directory": 1, - "nongit_ok": 2, - "setup_git_directory_gently": 1, - "have_repository": 1, - "trace_repo_setup": 1, - "setup_work_tree": 1, - "fstat": 1, - "fileno": 1, - "S_ISFIFO": 1, - "st.st_mode": 2, - "S_ISSOCK": 1, - "handle_internal_command": 3, - "commands": 3, - "cmd_add": 2, - "cmd_annotate": 1, - "cmd_apply": 1, - "cmd_archive": 1, - "cmd_bisect__helper": 1, - "cmd_blame": 2, - "cmd_branch": 1, - "cmd_bundle": 1, - "cmd_cat_file": 1, - "cmd_check_attr": 1, - "cmd_check_ref_format": 1, - "cmd_checkout": 1, - "cmd_checkout_index": 1, - "cmd_cherry": 1, - "cmd_cherry_pick": 1, - "cmd_clean": 1, - "cmd_clone": 1, - "cmd_column": 1, - "cmd_commit": 1, - "cmd_commit_tree": 1, - "cmd_config": 1, - "cmd_count_objects": 1, - "cmd_describe": 1, - "cmd_diff": 1, - "cmd_diff_files": 1, - "cmd_diff_index": 1, - "cmd_diff_tree": 1, - "cmd_fast_export": 1, - "cmd_fetch": 1, - "cmd_fetch_pack": 1, - "cmd_fmt_merge_msg": 1, - "cmd_for_each_ref": 1, - "cmd_format_patch": 1, - "cmd_fsck": 2, - "cmd_gc": 1, - "cmd_get_tar_commit_id": 1, - "cmd_grep": 1, - "cmd_hash_object": 1, - "cmd_help": 1, - "cmd_index_pack": 1, - "cmd_init_db": 2, - "cmd_log": 1, - "cmd_ls_files": 1, - "cmd_ls_remote": 2, - "cmd_ls_tree": 1, - "cmd_mailinfo": 1, - "cmd_mailsplit": 1, - "cmd_merge": 1, - "cmd_merge_base": 1, - "cmd_merge_file": 1, - "cmd_merge_index": 1, - "cmd_merge_ours": 1, - "cmd_merge_recursive": 4, - "cmd_merge_tree": 1, - "cmd_mktag": 1, - "cmd_mktree": 1, - "cmd_mv": 1, - "cmd_name_rev": 1, - "cmd_notes": 1, - "cmd_pack_objects": 1, - "cmd_pack_redundant": 1, - "cmd_pack_refs": 1, - "cmd_patch_id": 1, - "cmd_prune": 1, - "cmd_prune_packed": 1, - "cmd_push": 1, - "cmd_read_tree": 1, - "cmd_receive_pack": 1, - "cmd_reflog": 1, - "cmd_remote": 1, - "cmd_remote_ext": 1, - "cmd_remote_fd": 1, - "cmd_replace": 1, - "cmd_repo_config": 1, - "cmd_rerere": 1, - "cmd_reset": 1, - "cmd_rev_list": 1, - "cmd_rev_parse": 1, - "cmd_revert": 1, - "cmd_rm": 1, - "cmd_send_pack": 1, - "cmd_shortlog": 1, - "cmd_show": 1, - "cmd_show_branch": 1, - "cmd_show_ref": 1, - "cmd_status": 1, - "cmd_stripspace": 1, - "cmd_symbolic_ref": 1, - "cmd_tag": 1, - "cmd_tar_tree": 1, - "cmd_unpack_file": 1, - "cmd_unpack_objects": 1, - "cmd_update_index": 1, - "cmd_update_ref": 1, - "cmd_update_server_info": 1, - "cmd_upload_archive": 1, - "cmd_upload_archive_writer": 1, - "cmd_var": 1, - "cmd_verify_pack": 1, - "cmd_verify_tag": 1, - "cmd_version": 1, - "cmd_whatchanged": 1, - "cmd_write_tree": 1, - "ext": 4, - "STRIP_EXTENSION": 1, - "*argv0": 1, - "argv0": 2, - "ARRAY_SIZE": 1, - "execv_dashed_external": 2, - "STRBUF_INIT": 1, - "*tmp": 1, - "strbuf_addf": 1, - "cmd.buf": 1, - "run_command_v_opt": 1, - "RUN_SILENT_EXEC_FAILURE": 1, - "RUN_CLEAN_ON_EXIT": 1, - "strbuf_release": 1, - "run_argv": 2, - "done_alias": 4, - "argcp": 2, - "handle_alias": 1, - "git_extract_argv0_path": 1, - "git_setup_gettext": 1, - "list_common_cmds_help": 1, - "setup_path": 1, - "done_help": 3, - "was_alias": 3, - "help_unknown_cmd": 1, - "OBJ_BLOB": 3, - "alloc_blob_node": 1, - "git_cache_init": 1, - "git_cache": 4, - "*cache": 4, - "git_cached_obj_freeptr": 1, - "free_ptr": 2, - "git__size_t_powerof2": 1, - "cache": 26, - "size_mask": 6, - "lru_count": 1, - "free_obj": 4, - "git_mutex_init": 1, - "nodes": 10, - "git_cached_obj": 5, - "git_cache_free": 1, - "git_cached_obj_decref": 3, - "*git_cache_get": 1, - "*node": 2, - "*result": 1, - "git_mutex_lock": 2, - "node": 9, - "git_cached_obj_incref": 3, - "git_mutex_unlock": 2, - "*git_cache_try_store": 1, - "*_entry": 1, - "_entry": 1, - "yajl_status_to_string": 1, - "yajl_status": 4, - "statStr": 6, - "yajl_status_ok": 1, - "yajl_status_client_canceled": 1, - "yajl_status_insufficient_data": 1, - "yajl_status_error": 1, - "yajl_handle": 10, - "yajl_alloc": 1, - "yajl_callbacks": 1, - "callbacks": 3, - "yajl_parser_config": 1, - "config": 4, - "yajl_alloc_funcs": 3, - "afs": 8, - "allowComments": 4, - "validateUTF8": 3, - "hand": 28, - "afsBuffer": 3, - "realloc": 1, - "yajl_set_default_alloc_funcs": 1, - "YA_MALLOC": 1, - "yajl_handle_t": 1, - "alloc": 6, - "checkUTF8": 1, - "lexer": 4, - "yajl_lex_alloc": 1, - "bytesConsumed": 2, - "decodeBuf": 2, - "yajl_buf_alloc": 1, - "yajl_bs_init": 1, - "stateStack": 3, - "yajl_bs_push": 1, - "yajl_state_start": 1, - "yajl_reset_parser": 1, - "yajl_lex_realloc": 1, - "yajl_free": 1, - "yajl_bs_free": 1, - "yajl_buf_free": 1, - "yajl_lex_free": 1, - "YA_FREE": 2, - "yajl_parse": 2, - "jsonText": 4, - "jsonTextLen": 4, - "yajl_do_parse": 1, - "yajl_parse_complete": 1, - "yajl_get_error": 1, - "verbose": 2, - "yajl_render_error_string": 1, - "yajl_get_bytes_consumed": 1, - "yajl_free_error": 1 - }, - "C#": { - "@": 1, - "{": 5, - "ViewBag.Title": 1, - ";": 8, - "}": 5, - "@section": 1, - "featured": 1, - "
": 1, - "class=": 7, - "
": 1, - "
": 1, - "

": 1, - "@ViewBag.Title.": 1, - "

": 1, - "

": 1, - "@ViewBag.Message": 1, - "

": 1, - "
": 1, - "

": 1, - "To": 1, - "learn": 1, - "more": 4, - "about": 2, - "ASP.NET": 5, - "MVC": 4, - "visit": 2, - "": 5, - "href=": 5, - "title=": 2, - "http": 1, - "//asp.net/mvc": 1, - "": 5, - ".": 2, - "The": 1, - "page": 1, - "features": 3, - "": 1, - "videos": 1, - "tutorials": 1, - "and": 6, - "samples": 1, - "": 1, - "to": 4, - "help": 1, - "you": 4, - "get": 1, - "the": 5, - "most": 1, - "from": 1, - "MVC.": 1, - "If": 1, - "have": 1, - "any": 1, - "questions": 1, - "our": 1, - "forums": 1, - "

": 1, - "
": 1, - "
": 1, - "

": 1, - "We": 1, - "suggest": 1, - "following": 1, - "

": 1, - "
    ": 1, - "
  1. ": 3, - "
    ": 3, - "Getting": 1, - "Started": 1, - "
    ": 3, - "gives": 2, - "a": 3, - "powerful": 1, - "patterns": 1, - "-": 3, - "based": 1, - "way": 1, - "build": 1, - "dynamic": 1, - "websites": 1, - "that": 5, - "enables": 1, - "clean": 1, - "separation": 1, - "of": 2, - "concerns": 1, - "full": 1, - "control": 1, - "over": 1, - "markup": 1, - "for": 4, - "enjoyable": 1, - "agile": 1, - "development.": 1, - "includes": 1, - "many": 1, - "enable": 1, - "fast": 1, - "TDD": 1, - "friendly": 1, - "development": 1, - "creating": 1, - "sophisticated": 1, - "applications": 1, - "use": 1, - "latest": 1, - "web": 2, - "standards.": 1, - "Learn": 3, - "
  2. ": 3, - "Add": 1, - "NuGet": 2, - "packages": 1, - "jump": 1, - "start": 1, - "your": 2, - "coding": 1, - "makes": 1, - "it": 2, - "easy": 1, - "install": 1, - "update": 1, - "free": 1, - "libraries": 1, - "tools.": 1, - "Find": 1, - "Web": 1, - "Hosting": 1, - "You": 1, - "can": 1, - "easily": 1, - "find": 1, - "hosting": 1, - "company": 1, - "offers": 1, - "right": 1, - "mix": 1, - "price": 1, - "applications.": 1, - "
": 1, - "using": 5, - "System": 1, - "System.Collections.Generic": 1, - "System.Linq": 1, - "System.Text": 1, - "System.Threading.Tasks": 1, - "namespace": 1, - "LittleSampleApp": 1, - "///": 4, - "": 1, - "Just": 1, - "what": 1, - "says": 1, - "on": 1, - "tin.": 1, - "A": 1, - "little": 1, - "sample": 1, - "application": 1, - "Linguist": 1, - "try": 1, - "out.": 1, - "": 1, - "class": 1, - "Program": 1, - "static": 1, - "void": 1, - "Main": 1, - "(": 3, - "string": 1, - "[": 1, - "]": 1, - "args": 1, - ")": 3, - "Console.WriteLine": 2 - }, - "C++": { - "//": 315, - "#include": 132, - "namespace": 38, - "v8": 9, - "{": 736, - "internal": 47, - "V8_DECLARE_ONCE": 1, - "(": 3141, - "init_once": 2, - ")": 3144, - ";": 2837, - "bool": 114, - "V8": 21, - "is_running_": 6, - "false": 48, - "has_been_set_up_": 4, - "has_been_disposed_": 6, - "has_fatal_error_": 5, - "use_crankshaft_": 6, - "true": 49, - "List": 3, - "": 3, - "*": 183, - "call_completed_callbacks_": 16, - "NULL": 109, - "static": 263, - "LazyMutex": 1, - "entropy_mutex": 1, - "LAZY_MUTEX_INITIALIZER": 1, - "EntropySource": 3, - "entropy_source": 4, - "Initialize": 4, - "Deserializer*": 2, - "des": 3, - "FlagList": 1, - "EnforceFlagImplications": 1, - "InitializeOncePerProcess": 4, - "if": 359, - "i": 106, - "Isolate": 9, - "CurrentPerIsolateThreadData": 4, - "EnterDefaultIsolate": 1, - "}": 736, - "ASSERT": 17, - "-": 438, - "thread_id": 1, - ".Equals": 1, - "ThreadId": 1, - "Current": 5, - "isolate": 15, - "IsDead": 2, - "return": 240, - "Isolate*": 6, - "IsInitialized": 3, - "Init": 3, - "void": 251, - "SetFatalError": 2, - "TearDown": 5, - "IsDefaultIsolate": 1, - "||": 19, - "ElementsAccessor": 2, - "LOperand": 2, - "TearDownCaches": 1, - "RegisteredExtension": 1, - "UnregisterAll": 1, - "delete": 6, - "OS": 3, - "seed_random": 2, - "uint32_t*": 7, - "state": 33, - "for": 105, - "int": 218, - "<": 256, - "+": 80, - "FLAG_random_seed": 2, - "[": 295, - "]": 294, - "else": 58, - "uint32_t": 40, - "val": 4, - "ScopedLock": 1, - "lock": 5, - "entropy_mutex.Pointer": 1, - "reinterpret_cast": 8, - "": 19, - "char": 128, - "&": 222, - "sizeof": 15, - "random": 1, - "random_base": 3, - "xFFFF": 2, - "<<": 29, - "FFFF": 1, - "SetEntropySource": 2, - "source": 12, - "SetReturnAddressLocationResolver": 3, - "ReturnAddressLocationResolver": 2, - "resolver": 3, - "StackFrame": 1, - "Random": 3, - "Context*": 4, - "context": 8, - "IsGlobalContext": 1, - "ByteArray*": 1, - "seed": 2, - "random_seed": 1, - "": 1, - "GetDataStartAddress": 1, - "RandomPrivate": 2, - "private_random_seed": 1, - "IdleNotification": 3, - "hint": 3, - "FLAG_use_idle_notification": 1, - "HEAP": 1, - "AddCallCompletedCallback": 2, - "CallCompletedCallback": 4, - "callback": 7, - "Lazy": 1, - "init.": 1, - "new": 13, - "length": 10, - "at": 20, - "Add": 1, - "RemoveCallCompletedCallback": 2, - "Remove": 1, - "FireCallCompletedCallback": 2, - "HandleScopeImplementer*": 1, - "handle_scope_implementer": 5, - "CallDepthIsZero": 1, - "IncrementCallDepth": 1, - "DecrementCallDepth": 1, - "typedef": 50, - "union": 1, - "double": 25, - "double_value": 1, - "uint64_t": 8, - "uint64_t_value": 1, - "double_int_union": 2, - "Object*": 4, - "FillHeapNumberWithRandom": 2, - "heap_number": 4, - "r": 38, - "random_bits": 2, - "const": 172, - "binary_million": 3, - "r.double_value": 3, - "r.uint64_t_value": 1, - "|": 40, - "HeapNumber": 1, - "cast": 7, - "set_value": 1, - "InitializeOncePerProcessImpl": 3, - "SetUp": 4, - "FLAG_crankshaft": 1, - "Serializer": 1, - "enabled": 4, - "CPU": 5, - "SupportsCrankshaft": 1, - "PostSetUp": 1, - "RuntimeProfiler": 1, - "GlobalSetUp": 1, - "FLAG_stress_compaction": 1, - "FLAG_force_marking_deque_overflows": 1, - "FLAG_gc_global": 1, - "FLAG_max_new_space_size": 1, - "kPageSizeBits": 1, - "SetUpCaches": 1, - "SetUpJSCallerSavedCodeData": 1, - "SamplerRegistry": 1, - "ExternalReference": 1, - "CallOnce": 1, - "#ifndef": 30, - "LIBCANIH": 2, - "#define": 344, - "": 2, - "": 2, - "": 1, - "": 1, - "int64": 1, - "unsigned": 22, - "long": 15, - "//#define": 1, - "DEBUG": 5, - "#ifdef": 19, - "dout": 2, - "cout": 2, - "#else": 35, - "cerr": 1, - "#endif": 111, - "using": 11, - "std": 56, - "libcanister": 2, - "//the": 8, - "canmem": 22, - "object": 3, - "is": 102, - "a": 157, - "generic": 1, - "memory": 15, - "container": 2, - "used": 17, - "commonly": 1, - "//throughout": 1, - "the": 541, - "canister": 14, - "framework": 1, - "to": 254, - "hold": 1, - "of": 215, - "uncertain": 1, - "//length": 1, - "which": 14, - "may": 9, - "or": 44, - "not": 29, - "contain": 1, - "null": 3, - "bytes.": 1, - "class": 44, - "public": 39, - "char*": 24, - "data": 26, - "raw": 2, - "block": 7, - "size": 13, - "absolute": 1, - "//creates": 3, - "an": 23, - "unallocated": 1, - "allocsize": 1, - "allocated": 2, - "blank": 1, - "strdata": 1, - "//automates": 1, - "creation": 1, - "zero": 5, - "limited": 2, - "canmems": 1, - "//cleans": 1, - "up": 18, - "zeromem": 1, - "//overwrites": 2, - "this": 57, - "fragmem": 1, - "with": 33, - "fragment": 2, - "notation": 1, - "countlen": 1, - "//counts": 1, - "strings": 1, - "and": 118, - "stores": 3, - "it": 19, - "in": 165, - "trim": 2, - "//removes": 1, - "any": 23, - "nulls": 1, - "from": 91, - "end": 23, - "string": 24, - "//returns": 2, - "singleton": 2, - "//contains": 2, - "information": 3, - "about": 6, - "caninfo": 2, - "path": 8, - "//physical": 1, - "internalname": 1, - "//a": 1, - "name": 25, - "numfiles": 1, - "number": 52, - "files": 6, - "//necessary": 1, - "use": 37, - "as": 28, - "type": 7, - "canfile": 7, - "//this": 1, - "holds": 2, - "definition": 3, - "within": 4, - "//canister": 1, - "canister*": 1, - "parent": 1, - "that": 36, - "file": 31, - "//internal": 1, - "id": 4, - "s": 26, - "//use": 1, - "their": 6, - "own.": 1, - "newline": 2, - "delimited": 2, - "list": 3, - "container.": 1, - "TOC": 1, - "info": 2, - "general": 1, - "canfiles": 1, - "recommended": 1, - "programs": 4, - "do": 13, - "modify": 1, - "//these": 1, - "directly": 2, - "but": 5, - "enforced.": 1, - "canfile*": 1, - "readonly": 3, - "//if": 1, - "then": 15, - "no": 7, - "write": 8, - "routines": 1, - "will": 15, - "anything": 1, - "//maximum": 1, - "have": 4, - "given": 16, - "//time": 1, - "change": 3, - "whatever": 1, - "suits": 1, - "your": 12, - "application.": 1, - "cachemax": 2, - "cachecnt": 1, - "//number": 1, - "cache": 2, - "should": 10, - "be": 35, - "modified": 3, - "//both": 1, - "initialize": 1, - "physical": 4, - "location": 6, - "fspath": 3, - "//destroys": 1, - "after": 18, - "flushing": 1, - "modded": 1, - "buffers": 3, - "course": 2, - "//open": 1, - "//does": 1, - "exist": 2, - "open": 6, - "//close": 1, - "flush": 1, - "all": 11, - "clean": 2, - "close": 7, - "//deletes": 1, - "inside": 1, - "delFile": 1, - "//pulls": 1, - "contents": 3, - "disk": 2, - "returns": 4, - "getFile": 1, - "does": 4, - "otherwise": 1, - "overwrites": 1, - "whether": 4, - "operation": 2, - "succeeded": 2, - "writeFile": 2, - "//get": 1, - "containing": 2, - "//list": 1, - "paths": 1, - "getTOC": 1, - "//brings": 1, - "back": 1, - "limit": 1, - "//important": 1, - "sCFID": 2, - "safe": 4, - "CFID": 2, - "we": 10, - "want": 5, - "avoid": 1, - "uncaching": 1, - "//really": 1, - "just": 2, - "internally": 1, - "can": 21, - "t": 15, - "harm.": 1, - "cacheclean": 1, - "dFlush": 1, - "enum": 18, - "PIC16F88Instruction": 2, - "ADDWF": 1, - "ANDWF": 1, - "CLRF": 1, - "CLRW": 1, - "COMF": 1, - "DECF": 1, - "DECFSZ": 1, - "INCF": 1, - "INCFSZ": 1, - "IORWF": 1, - "MOVF": 1, - "MOVWF": 1, - "NOP": 1, - "RLF": 1, - "RRF": 1, - "SUBWF": 1, - "SWAPF": 1, - "XORWF": 1, - "BCF": 1, - "BSF": 1, - "BTFSC": 1, - "BTFSS": 1, - "ADDLW": 1, - "ANDLW": 1, - "CALL": 1, - "CLRWDT": 1, - "GOTO": 1, - "IORLW": 1, - "MOVLW": 1, - "RETFIE": 1, - "RETLW": 1, - "RETURN": 1, - "SLEEP": 1, - "SUBLW": 1, - "XORLW": 1, - "PIC16F88": 2, - "ROM": 2, - "*ProgramMemory": 1, - "Step": 1, - "private": 20, - "uint8_t": 60, - "q": 1, - "nextIsNop": 1, - "trapped": 1, - "Memory": 2, - "*memory": 1, - "*program": 1, - "Stack": 1, - "": 1, - "8": 1, - "*CallStack": 1, - "Register": 3, - "": 1, - "*PC": 1, - "*WREG": 1, - "*PCL": 1, - "*STATUS": 1, - "*PCLATCH": 1, - "inst": 1, - "uint16_t": 4, - "instrWord": 1, - "DecodeInstruction": 1, - "ProcessInstruction": 1, - "GetBank": 1, - "GetMemoryContents": 1, - "partialAddress": 4, - "SetMemoryContents": 1, - "newVal": 1, - "CheckZero": 1, - "value": 52, - "StoreValue": 1, - "updateZero": 1, - "SetCarry": 1, - "GetPCHFinalBits": 1, - "": 1, - "": 1, - "": 1, - "EC_KEY_regenerate_key": 1, - "EC_KEY": 3, - "*eckey": 2, - "BIGNUM": 9, - "*priv_key": 1, - "ok": 3, - "BN_CTX": 2, - "*ctx": 2, - "EC_POINT": 4, - "*pub_key": 1, - "eckey": 7, - "EC_GROUP": 2, - "*group": 2, - "EC_KEY_get0_group": 2, - "ctx": 26, - "BN_CTX_new": 2, - "goto": 156, - "err": 26, - "pub_key": 6, - "EC_POINT_new": 4, - "group": 23, - "EC_POINT_mul": 3, - "priv_key": 2, - "EC_KEY_set_private_key": 1, - "EC_KEY_set_public_key": 2, - "EC_POINT_free": 4, - "BN_CTX_free": 2, - "ECDSA_SIG_recover_key_GFp": 3, - "ECDSA_SIG": 3, - "*ecsig": 1, - "*msg": 2, - "msglen": 2, - "recid": 3, - "check": 4, - "ret": 24, - "*x": 1, - "*e": 1, - "*order": 1, - "*sor": 1, - "*eor": 1, - "*field": 1, - "*R": 1, - "*O": 1, - "*Q": 1, - "*rr": 1, - "*zero": 1, - "n": 28, - "/": 16, - "BN_CTX_start": 1, - "order": 14, - "BN_CTX_get": 8, - "EC_GROUP_get_order": 1, - "x": 86, - "BN_copy": 1, - "BN_mul_word": 1, - "BN_add": 1, - "ecsig": 3, - "field": 5, - "EC_GROUP_get_curve_GFp": 1, - "BN_cmp": 1, - "R": 6, - "EC_POINT_set_compressed_coordinates_GFp": 1, - "%": 7, - "O": 5, - "EC_POINT_is_at_infinity": 1, - "Q": 5, - "EC_GROUP_get_degree": 1, - "e": 15, - "BN_bin2bn": 3, - "msg": 1, - "*msglen": 1, - "BN_rshift": 1, - "BN_zero": 1, - "BN_mod_sub": 1, - "rr": 4, - "BN_mod_inverse": 1, - "sor": 3, - "BN_mod_mul": 2, - "eor": 3, - "BN_CTX_end": 1, - "CKey": 26, - "SetCompressedPubKey": 4, - "EC_KEY_set_conv_form": 1, - "pkey": 14, - "POINT_CONVERSION_COMPRESSED": 1, - "fCompressedPubKey": 5, - "Reset": 5, - "EC_KEY_new_by_curve_name": 2, - "NID_secp256k1": 2, - "throw": 4, - "key_error": 6, - "fSet": 7, - "b": 57, - "EC_KEY_dup": 1, - "b.pkey": 2, - "b.fSet": 2, - "operator": 10, - "EC_KEY_copy": 1, - "hash": 20, - "vchSig": 18, - "nSize": 2, - "vchSig.clear": 2, - "vchSig.resize": 2, - "Shrink": 1, - "fit": 1, - "actual": 1, - "SignCompact": 2, - "uint256": 10, - "vector": 16, - "fOk": 3, - "*sig": 2, - "ECDSA_do_sign": 1, - "sig": 11, - "nBitsR": 3, - "BN_num_bits": 2, - "nBitsS": 3, - "&&": 29, - "nRecId": 4, - "<4;>": 1, - "keyRec": 5, - "1": 4, - "GetPubKey": 5, - "break": 35, - "BN_bn2bin": 2, - "/8": 2, - "ECDSA_SIG_free": 2, - "SetCompactSignature": 2, - "vchSig.size": 2, - "nV": 6, - "<27>": 1, - "ECDSA_SIG_new": 1, - "EC_KEY_free": 1, - "Verify": 2, - "ECDSA_verify": 1, - "VerifyCompact": 2, - "key": 23, - "key.SetCompactSignature": 1, - "key.GetPubKey": 1, - "IsValid": 4, - "fCompr": 3, - "CSecret": 4, - "secret": 2, - "GetSecret": 2, - "key2": 1, - "key2.SetSecret": 1, - "key2.GetPubKey": 1, - "PROTOBUF_protocol_2dbuffer_2eproto__INCLUDED": 3, - "": 4, - "": 2, - "#if": 63, - "GOOGLE_PROTOBUF_VERSION": 1, - "#error": 9, - "This": 19, - "was": 6, - "generated": 2, - "by": 53, - "newer": 2, - "version": 38, - "protoc": 2, - "incompatible": 2, - "Protocol": 2, - "Buffer": 10, - "headers.": 3, - "Please": 4, - "update": 1, - "GOOGLE_PROTOBUF_MIN_PROTOC_VERSION": 1, - "older": 1, - "regenerate": 1, - "protoc.": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "persons": 4, - "protobuf_AddDesc_protocol_2dbuffer_2eproto": 6, - "protobuf_AssignDesc_protocol_2dbuffer_2eproto": 4, - "protobuf_ShutdownFile_protocol_2dbuffer_2eproto": 4, - "Person": 65, - "google": 72, - "protobuf": 72, - "Message": 7, - "virtual": 10, - "inline": 39, - "CopyFrom": 5, - "*this": 1, - "UnknownFieldSet": 2, - "unknown_fields": 7, - "_unknown_fields_": 5, - "UnknownFieldSet*": 1, - "mutable_unknown_fields": 4, - "Descriptor*": 3, - "descriptor": 15, - "default_instance": 3, - "Swap": 2, - "Person*": 7, - "other": 17, - "New": 6, - "MergeFrom": 9, - "Clear": 18, - "ByteSize": 2, - "MergePartialFromCodedStream": 2, - "io": 4, - "CodedInputStream*": 2, - "input": 12, - "SerializeWithCachedSizes": 2, - "CodedOutputStream*": 2, - "output": 21, - "uint8*": 4, - "SerializeWithCachedSizesToArray": 2, - "GetCachedSize": 1, - "_cached_size_": 7, - "SharedCtor": 4, - "SharedDtor": 3, - "SetCachedSize": 2, - "Metadata": 3, - "GetMetadata": 2, - "has_name": 6, - "clear_name": 2, - "kNameFieldNumber": 2, - "set_name": 7, - "size_t": 6, - "string*": 11, - "mutable_name": 3, - "release_name": 2, - "set_allocated_name": 2, - "set_has_name": 7, - "clear_has_name": 5, - "name_": 30, - "mutable": 1, - "uint32": 2, - "_has_bits_": 14, - "friend": 10, - "InitAsDefaultInstance": 3, - "default_instance_": 8, - "u": 9, - "kEmptyString": 12, - "clear": 3, - "*name_": 1, - "assign": 3, - "": 12, - "temp": 2, - "const_cast": 3, - "SWIG": 2, - "Bar": 3, - "protected": 5, - "*name": 7, - "hello": 3, - "V8_SCANNER_H_": 3, - "ParsingFlags": 1, - "kNoParsingFlags": 1, - "kLanguageModeMask": 4, - "kAllowLazy": 1, - "kAllowNativesSyntax": 1, - "kAllowModules": 1, - "STATIC_ASSERT": 5, - "CLASSIC_MODE": 2, - "STRICT_MODE": 2, - "EXTENDED_MODE": 2, - "HexValue": 2, - "uc32": 19, - "c": 72, - "static_cast": 14, - "detect": 3, - "x16": 1, - "x36.": 1, - "Utf16CharacterStream": 3, - "pos_": 6, - "Advance": 44, - "buffer_cursor_": 5, - "buffer_end_": 3, - "ReadBlock": 2, - "": 1, - "kEndOfInput": 2, - "pos": 12, - "SeekForward": 4, - "code_unit_count": 7, - "buffered_chars": 2, - "SlowSeekForward": 2, - "PushBack": 8, - "int32_t": 1, - "code_unit": 6, - "uc16*": 3, - "UnicodeCache": 3, - "unibrow": 11, - "Utf8InputBuffer": 2, - "<1024>": 2, - "Utf8Decoder": 2, - "StaticResource": 2, - "": 2, - "utf8_decoder": 1, - "utf8_decoder_": 2, - "IsIdentifierStart": 2, - "uchar": 4, - "kIsIdentifierStart.get": 1, - "IsIdentifierPart": 1, - "kIsIdentifierPart.get": 1, - "IsLineTerminator": 6, - "kIsLineTerminator.get": 1, - "IsWhiteSpace": 2, - "kIsWhiteSpace.get": 1, - "Predicate": 4, - "": 1, - "128": 4, - "kIsIdentifierStart": 1, - "": 1, - "kIsIdentifierPart": 1, - "": 1, - "kIsLineTerminator": 1, - "": 1, - "kIsWhiteSpace": 1, - "DISALLOW_COPY_AND_ASSIGN": 2, - "LiteralBuffer": 6, - "is_ascii_": 10, - "position_": 17, - "backing_store_": 7, - "backing_store_.length": 4, - "backing_store_.Dispose": 3, - "INLINE": 2, - "AddChar": 2, - "ExpandBuffer": 2, - "kMaxAsciiCharCodeU": 1, - "": 6, - "kASCIISize": 1, - "ConvertToUtf16": 2, - "*reinterpret_cast": 3, - "": 2, - "kUC16Size": 2, - "is_ascii": 3, - "Vector": 13, - "uc16": 5, - "utf16_literal": 3, - "backing_store_.start": 5, - "ascii_literal": 3, - "kInitialCapacity": 2, - "kGrowthFactory": 2, - "kMinConversionSlack": 1, - "kMaxGrowth": 2, - "MB": 1, - "NewCapacity": 3, - "min_capacity": 2, - "capacity": 3, - "Max": 1, - "new_capacity": 2, - "Min": 1, - "new_store": 6, - "memcpy": 1, - "new_store.start": 3, - "new_content_size": 4, - "src": 2, - "": 1, - "dst": 2, - "Scanner": 16, - "LiteralScope": 4, - "explicit": 5, - "Scanner*": 2, - "self": 5, - "scanner_": 5, - "complete_": 4, - "StartLiteral": 2, - "DropLiteral": 2, - "Complete": 1, - "TerminateLiteral": 2, - "struct": 13, - "Location": 14, - "beg_pos": 5, - "end_pos": 4, - "invalid": 5, - "kNoOctalLocation": 1, - "UnicodeCache*": 4, - "scanner_contants": 1, - "Utf16CharacterStream*": 3, - "Token": 212, - "Value": 24, - "Next": 3, - "current_token": 1, - "current_.token": 4, - "current_.location": 2, - "literal_ascii_string": 1, - "ASSERT_NOT_NULL": 9, - "current_.literal_chars": 11, - "literal_utf16_string": 1, - "is_literal_ascii": 1, - "literal_length": 1, - "literal_contains_escapes": 1, - "source_length": 3, - "location.end_pos": 1, - "location.beg_pos": 1, - "STRING": 1, - "peek": 1, - "next_.token": 3, - "peek_location": 1, - "next_.location": 1, - "next_literal_ascii_string": 1, - "next_.literal_chars": 13, - "next_literal_utf16_string": 1, - "is_next_literal_ascii": 1, - "next_literal_length": 1, - "unicode_cache": 3, - "unicode_cache_": 10, - "kCharacterLookaheadBufferSize": 3, - "ScanOctalEscape": 1, - "octal_position": 1, - "octal_pos_": 5, - "clear_octal_position": 1, - "HarmonyScoping": 1, - "harmony_scoping_": 4, - "SetHarmonyScoping": 1, - "scoping": 2, - "HarmonyModules": 1, - "harmony_modules_": 4, - "SetHarmonyModules": 1, - "modules": 2, - "HasAnyLineTerminatorBeforeNext": 1, - "has_line_terminator_before_next_": 9, - "has_multiline_comment_before_next_": 5, - "ScanRegExpPattern": 1, - "seen_equal": 1, - "ScanRegExpFlags": 1, - "IsIdentifier": 1, - "CharacterStream*": 1, - "buffer": 9, - "TokenDesc": 3, - "token": 64, - "LiteralBuffer*": 2, - "literal_chars": 1, - "free_buffer": 3, - "literal_buffer1_": 3, - "literal_buffer2_": 2, - "AddLiteralChar": 2, - "AddLiteralCharAdvance": 3, - "c0_": 64, - "source_": 7, - "ch": 5, - "Select": 49, - "tok": 2, - "next": 9, - "else_": 2, - "ScanHexNumber": 2, - "expected_length": 4, - "Scan": 5, - "SkipWhiteSpace": 4, - "SkipSingleLineComment": 6, - "SkipMultiLineComment": 3, - "ScanHtmlComment": 3, - "ScanDecimalDigits": 1, - "ScanNumber": 3, - "seen_period": 1, - "ScanIdentifierOrKeyword": 2, - "ScanIdentifierSuffix": 1, - "LiteralScope*": 1, - "literal": 2, - "ScanString": 3, - "ScanEscape": 2, - "ScanIdentifierUnicodeEscape": 1, - "ScanLiteralUnicodeEscape": 3, - "source_pos": 10, - "current_": 2, - "desc": 2, - "current": 26, - "returned": 5, - "next_": 3, - "one": 73, - "look": 1, - "ahead": 1, - "__THREADED_QUEUE_H__": 2, - "": 1, - "": 1, - "template": 1, - "": 1, - "T": 2, - "ThreadedQueue": 3, - "queue": 6, - "": 2, - "pthread_mutex_t": 1, - "queueMutex": 8, - "pthread_cond_t": 1, - "queueCond": 5, - "pthread_mutexattr_t": 1, - "mutexAttrs": 5, - "pthread_condattr_t": 1, - "condAttrs": 5, - "pthread_mutexattr_init": 1, - "pthread_mutexattr_settype": 1, - "PTHREAD_MUTEX_ERRORCHECK": 1, - "pthread_mutex_init": 1, - "pthread_mutexattr_destroy": 1, - "pthread_condattr_init": 1, - "pthread_condattr_setpshared": 1, - "PTHREAD_PROCESS_PRIVATE": 1, - "pthread_cond_init": 1, - "pthread_condattr_destroy": 1, - "pthread_cond_destroy": 1, - "pthread_mutex_destroy": 1, - "waitItems": 1, - "pthread_mutex_lock": 2, - "pthread_cond_wait": 1, - "pthread_mutex_unlock": 2, - "signalItems": 2, - "pthread_cond_broadcast": 1, - "push": 2, - "item": 2, - "": 2, - "Gui": 1, - "BITCOIN_KEY_H": 2, - "": 1, - "": 4, - "": 1, - "runtime_error": 2, - "str": 2, - "CKeyID": 5, - "uint160": 8, - "CScriptID": 3, - "CPubKey": 11, - "vchPubKey": 6, - "vchPubKeyIn": 2, - "a.vchPubKey": 3, - "b.vchPubKey": 3, - "IMPLEMENT_SERIALIZE": 1, - "READWRITE": 1, - "GetID": 1, - "Hash160": 1, - "GetHash": 1, - "Hash": 1, - "vchPubKey.begin": 1, - "vchPubKey.end": 1, - "vchPubKey.size": 3, - "IsCompressed": 2, - "Raw": 1, - "secure_allocator": 2, - "CPrivKey": 3, - "EC_KEY*": 1, - "IsNull": 1, - "MakeNewKey": 1, - "fCompressed": 3, - "SetPrivKey": 1, - "vchPrivKey": 1, - "SetSecret": 1, - "vchSecret": 1, - "GetPrivKey": 1, - "SetPubKey": 1, - "Sign": 2, - "main": 2, - "endl": 1, - "GDSDBREADER_H": 3, - "": 1, - "GDS_DIR": 1, - "level": 10, - "LEVEL_ONE": 1, - "LEVEL_TWO": 1, - "LEVEL_THREE": 1, - "dbDataStructure": 2, - "QString": 20, - "label": 1, - "quint32": 3, - "depth": 1, - "userIndex": 1, - "QByteArray": 1, - "COMPRESSED": 1, - "optimize": 1, - "ram": 1, - "space": 2, - "decompressed": 1, - "quint64": 1, - "uniqueID": 1, - "QVector": 2, - "": 1, - "nextItems": 1, - "": 1, - "nextItemsIndices": 1, - "dbDataStructure*": 1, - "father": 1, - "fatherIndex": 1, - "noFatherRoot": 1, - "Used": 2, - "tell": 1, - "node": 1, - "root": 1, - "so": 2, - "hasn": 1, - "argument": 1, - "overload.": 1, - "A": 7, - "stream": 6, - "myclass.label": 2, - "myclass.depth": 2, - "myclass.userIndex": 2, - "qCompress": 2, - "myclass.data": 4, - "myclass.uniqueID": 2, - "myclass.nextItemsIndices": 2, - "myclass.fatherIndex": 2, - "myclass.noFatherRoot": 2, - "myclass.fileName": 2, - "myclass.firstLineData": 4, - "myclass.linesNumbers": 2, - "QDataStream": 2, - "myclass": 1, - "//Don": 1, - "read": 21, - "either": 4, - "qUncompress": 2, - "__OG_MATH_INL__": 2, - "og": 1, - "OG_INLINE": 41, - "Math": 41, - "Abs": 1, - "MASK_SIGNED": 2, - "y": 16, - "float": 74, - "Fabs": 1, - "f": 104, - "uInt": 1, - "*pf": 1, - "": 1, - "pf": 1, - "fabsf": 1, - "Round": 1, - "floorf": 2, - "Floor": 1, - "Ceil": 1, - "ceilf": 1, - "Ftoi": 1, - "@todo": 1, - "needs": 4, - "testing": 2, - "note": 1, - "sse": 1, - "function": 19, - "cvttss2si": 2, - "OG_ASM_MSVC": 4, - "defined": 49, - "OG_FTOI_USE_SSE": 2, - "SysInfo": 2, - "cpu.general.SSE": 2, - "__asm": 8, - "eax": 5, - "mov": 6, - "fld": 4, - "fistp": 3, - "//__asm": 3, - "need": 6, - "O_o": 3, - "#elif": 7, - "OG_ASM_GNU": 4, - "__asm__": 4, - "__volatile__": 4, - "instead": 4, - "sure": 6, - "why": 3, - "did": 3, - "": 3, - "FtoiFast": 2, - "Ftol": 1, - "": 1, - "Fmod": 1, - "numerator": 2, - "denominator": 2, - "fmodf": 1, - "Modf": 2, - "modff": 2, - "Sqrt": 2, - "sqrtf": 2, - "InvSqrt": 1, - "OG_ASSERT": 4, - "RSqrt": 1, - "g": 2, - "guess": 1, - "f375a86": 1, - "": 1, - "Newtons": 1, - "calculation": 1, - "Log": 1, - "logf": 3, - "Log2": 1, - "INV_LN_2": 1, - "Log10": 1, - "INV_LN_10": 1, - "Pow": 1, - "base": 8, - "exp": 2, - "powf": 1, - "Exp": 1, - "expf": 1, - "IsPowerOfTwo": 4, - "faster": 3, - "two": 2, - "known": 1, - "methods": 2, - "moved": 1, - "beginning": 1, - "HigherPowerOfTwo": 4, - "LowerPowerOfTwo": 2, - "FloorPowerOfTwo": 1, - "CeilPowerOfTwo": 1, - "ClosestPowerOfTwo": 1, - "high": 5, - "low": 5, - "Digits": 1, - "digits": 6, - "step": 3, - "while": 17, - "Sin": 2, - "sinf": 1, - "ASin": 1, - "<=>": 2, - "0f": 2, - "HALF_PI": 2, - "asinf": 1, - "Cos": 2, - "cosf": 1, - "ACos": 1, - "PI": 1, - "acosf": 1, - "Tan": 1, - "tanf": 1, - "ATan": 2, - "atanf": 1, - "f1": 2, - "f2": 2, - "atan2f": 1, - "SinCos": 1, - "sometimes": 1, - "assembler": 1, - "waaayy": 1, - "_asm": 1, - "fsincos": 1, - "ecx": 2, - "edx": 2, - "fstp": 2, - "dword": 2, - "ptr": 6, - "asm": 1, - "than": 6, - "calling": 9, - "Deg2Rad": 1, - "DEG_TO_RAD": 1, - "Rad2Deg": 1, - "RAD_TO_DEG": 1, - "Square": 1, - "v": 10, - "Cube": 1, - "Sec2Ms": 1, - "sec": 2, - "Ms2Sec": 1, - "ms": 2, - "": 1, - "": 1, - "": 2, - "Env": 13, - "*env_instance": 1, - "*Env": 1, - "instance": 4, - "env_instance": 3, - "QObject": 2, - "QCoreApplication": 1, - "parse": 3, - "**envp": 1, - "**env": 1, - "**": 2, - "envvar": 2, - "indexOfEquals": 5, - "env": 3, - "envp": 4, - "*env": 1, - "envvar.indexOf": 1, - "continue": 2, - "envvar.left": 1, - "envvar.mid": 1, - "m_map.insert": 1, - "QVariantMap": 3, - "asVariantMap": 2, - "m_map": 2, - "Memory16F88": 2, - "map": 4, - "": 1, - "MemoryLocation": 1, - "memoryMap": 1, - "Dereference": 1, - "bank": 2, - "*Reference": 1, - "*operator": 1, - "ref": 33, - "///": 843, - "mainpage": 1, - "C": 6, - "library": 14, - "Broadcom": 3, - "BCM": 14, - "Raspberry": 6, - "Pi": 5, - "RPi": 17, - ".": 16, - "It": 7, - "provides": 3, - "access": 17, - "GPIO": 87, - "IO": 2, - "functions": 19, - "on": 55, - "chip": 9, - "allowing": 3, - "pins": 40, - "pin": 90, - "IDE": 4, - "plug": 3, - "board": 2, - "you": 29, - "control": 17, - "interface": 9, - "various": 4, - "external": 3, - "devices.": 1, - "reading": 3, - "digital": 2, - "inputs": 2, - "setting": 2, - "outputs": 1, - "SPI": 44, - "I2C": 29, - "accessing": 2, - "system": 13, - "timers.": 1, - "Pin": 65, - "event": 3, - "detection": 2, - "supported": 3, - "polling": 1, - "interrupts": 1, - "are": 36, - "compatible": 1, - "installs": 1, - "header": 7, - "non": 2, - "shared": 2, - "Linux": 2, - "based": 4, - "distro": 1, - "clearly": 1, - "except": 2, - "another": 1, - "The": 50, - "package": 1, - "documentation": 3, - "refers": 1, - "downloaded": 1, - "http": 11, - "//www.airspayce.com/mikem/bcm2835/bcm2835": 1, - "tar.gz": 1, - "You": 9, - "find": 2, - "latest": 2, - "//www.airspayce.com/mikem/bcm2835": 1, - "Several": 1, - "example": 3, - "provided.": 1, - "Based": 1, - "//elinux.org/RPi_Low": 1, - "level_peripherals": 1, - "//www.raspberrypi.org/wp": 1, - "content/uploads/2012/02/BCM2835": 1, - "ARM": 5, - "Peripherals.pdf": 1, - "//www.scribd.com/doc/101830961/GPIO": 2, - "Pads": 3, - "Control2": 2, - "also": 3, - "online": 1, - "help": 1, - "discussion": 1, - "//groups.google.com/group/bcm2835": 1, - "questions": 1, - "discussions": 1, - "topic.": 1, - "Do": 1, - "contact": 1, - "author": 3, - "unless": 1, - "discuss": 1, - "commercial": 1, - "licensing.": 1, - "Tested": 1, - "debian6": 1, - "wheezy": 3, - "raspbian": 3, - "Occidentalisv01": 2, - "CAUTION": 1, - "has": 29, - "been": 14, - "observed": 1, - "when": 22, - "enables": 3, - "such": 4, - "bcm2835_gpio_len": 5, - "pulled": 1, - "LOW": 8, - "cause": 1, - "temporary": 1, - "hangs": 1, - "Occidentalisv01.": 1, - "Reason": 1, - "yet": 1, - "determined": 1, - "suspect": 1, - "interrupt": 3, - "handler": 1, - "hitting": 1, - "hard": 1, - "loop": 2, - "those": 3, - "OSs.": 1, - "If": 11, - "must": 6, - "friends": 2, - "make": 6, - "disable": 2, - "bcm2835_gpio_cler_len": 1, - "use.": 1, - "par": 9, - "Installation": 1, - "consists": 1, - "single": 2, - "installed": 1, - "usual": 3, - "places": 1, - "install": 3, - "code": 12, - "#": 1, - "download": 2, - "say": 1, - "bcm2835": 7, - "xx.tar.gz": 2, - "tar": 1, - "zxvf": 1, - "cd": 1, - "xx": 2, - "./configure": 1, - "sudo": 2, - "endcode": 2, - "Physical": 21, - "Addresses": 6, - "bcm2835_peri_read": 3, - "bcm2835_peri_write": 3, - "bcm2835_peri_set_bits": 2, - "peripheral": 14, - "register": 17, - "functions.": 4, - "They": 1, - "designed": 3, - "addresses": 4, - "described": 1, - "section": 6, - "BCM2835": 2, - "Peripherals": 1, - "manual.": 1, - "range": 3, - "FFFFFF": 1, - "peripherals.": 1, - "bus": 4, - "peripherals": 2, - "set": 18, - "onto": 1, - "address": 13, - "starting": 1, - "E000000.": 1, - "Thus": 1, - "advertised": 1, - "manual": 8, - "Ennnnnn": 1, - "available": 6, - "nnnnnn.": 1, - "registers": 12, - "following": 2, - "externals": 1, - "bcm2835_gpio": 2, - "bcm2835_pwm": 2, - "bcm2835_clk": 2, - "bcm2835_pads": 2, - "bcm2835_spio0": 1, - "bcm2835_st": 1, - "bcm2835_bsc0": 1, - "bcm2835_bsc1": 1, - "Numbering": 1, - "numbering": 1, - "different": 5, - "inconsistent": 1, - "underlying": 4, - "numbering.": 1, - "//elinux.org/RPi_BCM2835_GPIOs": 1, - "some": 4, - "well": 1, - "power": 1, - "ground": 1, - "pins.": 1, - "Not": 4, - "header.": 1, - "Version": 40, - "P5": 6, - "connector": 1, - "V": 2, - "Gnd.": 1, - "passed": 4, - "_not_": 1, - "number.": 1, - "There": 1, - "symbolic": 1, - "definitions": 3, - "each": 7, - "convenience.": 1, - "See": 7, - "RPiGPIOPin.": 22, - "Pins": 2, - "bcm2835_spi_*": 1, - "allow": 5, - "SPI0": 17, - "send": 3, - "received": 3, - "Serial": 3, - "Peripheral": 6, - "Interface": 2, - "For": 6, - "more": 4, - "see": 14, - "//en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus": 1, - "When": 12, - "bcm2835_spi_begin": 3, - "called": 13, - "changes": 2, - "bahaviour": 1, - "default": 14, - "behaviour": 1, - "support": 4, - "SPI.": 1, - "While": 1, - "able": 2, - "through": 4, - "bcm2835_spi_gpio_write": 1, - "bcm2835_spi_end": 4, - "revert": 1, - "configured": 1, - "controled": 1, - "bcm2835_gpio_*": 1, - "calls.": 1, - "P1": 56, - "MOSI": 8, - "MISO": 6, - "CLK": 6, - "CE0": 5, - "CE1": 6, - "bcm2835_i2c_*": 2, - "BSC": 10, - "generically": 1, - "referred": 1, - "I": 4, - "//en.wikipedia.org/wiki/I": 1, - "C2": 1, - "B2C": 1, - "V2": 2, - "SDA": 3, - "SLC": 1, - "Real": 1, - "Time": 1, - "performance": 2, - "constraints": 2, - "user": 3, - "i.e.": 1, - "they": 2, - "run": 2, - "Such": 1, - "part": 1, - "kernel": 4, - "usually": 2, - "subject": 1, - "paging": 1, - "swapping": 2, - "things": 1, - "besides": 1, - "running": 1, - "program.": 1, - "means": 8, - "expect": 2, - "get": 5, - "real": 4, - "time": 10, - "timing": 3, - "programs.": 1, - "In": 2, - "particular": 1, - "there": 4, - "guarantee": 1, - "bcm2835_delay": 5, - "bcm2835_delayMicroseconds": 6, - "exactly": 2, - "requested.": 1, - "fact": 2, - "depending": 1, - "activity": 1, - "host": 1, - "etc": 1, - "might": 1, - "significantly": 1, - "longer": 1, - "delay": 9, - "times": 2, - "asked": 1, - "for.": 1, - "So": 1, - "please": 2, - "dont": 1, - "request.": 1, - "Arjan": 2, - "reports": 1, - "prevent": 4, - "sched_param": 1, - "sp": 4, - "memset": 3, - "sp.sched_priority": 1, - "sched_get_priority_max": 1, - "SCHED_FIFO": 2, - "sched_setscheduler": 1, - "mlockall": 1, - "MCL_CURRENT": 1, - "MCL_FUTURE": 1, - "Open": 2, - "Source": 2, - "Licensing": 2, - "GPL": 2, - "appropriate": 7, - "option": 1, - "share": 2, - "application": 2, - "everyone": 1, - "distribute": 1, - "give": 2, - "them": 1, - "right": 9, - "who": 1, - "uses": 4, - "it.": 3, - "wish": 2, - "software": 1, - "under": 2, - "contribute": 1, - "community": 1, - "accordance": 1, - "distributed.": 1, - "//www.gnu.org/copyleft/gpl.html": 1, - "COPYING": 1, - "Acknowledgements": 1, - "Some": 1, - "inspired": 2, - "Dom": 1, - "Gert.": 1, - "Alan": 1, - "Barr.": 1, - "Revision": 1, - "History": 1, - "Initial": 1, - "release": 1, - "Minor": 1, - "bug": 1, - "fixes": 1, - "Added": 11, - "bcm2835_spi_transfern": 3, - "Fixed": 4, - "problem": 2, - "prevented": 1, - "being": 4, - "used.": 2, - "Reported": 5, - "David": 1, - "Robinson.": 1, - "bcm2835_close": 4, - "deinit": 1, - "library.": 3, - "Suggested": 1, - "sar": 1, - "Ortiz": 1, - "Document": 1, - "Functions": 1, - "bcm2835_gpio_ren": 3, - "bcm2835_gpio_fen": 3, - "bcm2835_gpio_hen": 3, - "bcm2835_gpio_aren": 3, - "bcm2835_gpio_afen": 3, - "now": 4, - "only": 6, - "specified.": 1, - "Other": 1, - "were": 1, - "already": 1, - "previously": 10, - "stay": 1, - "enabled.": 1, - "bcm2835_gpio_clr_ren": 2, - "bcm2835_gpio_clr_fen": 2, - "bcm2835_gpio_clr_hen": 2, - "bcm2835_gpio_clr_len": 2, - "bcm2835_gpio_clr_aren": 2, - "bcm2835_gpio_clr_afen": 2, - "enable": 3, - "individual": 1, - "suggested": 3, - "Andreas": 1, - "Sundstrom.": 1, - "bcm2835_spi_transfernb": 2, - "write.": 1, - "Improvements": 3, - "barrier": 3, - "maddin.": 1, - "contributed": 1, - "mikew": 1, - "noticed": 1, - "mallocing": 1, - "mmaps": 1, - "/dev/mem.": 1, - "ve": 4, - "removed": 1, - "mallocs": 1, - "frees": 1, - "found": 1, - "nanosleep": 7, - "takes": 1, - "least": 2, - "us.": 1, - "link": 3, - "version.": 1, - "doc": 1, - "Also": 1, - "added": 2, - "define": 2, - "passwrd": 1, - "Gert": 1, - "says": 1, - "needed": 3, - "pad": 4, - "settings.": 1, - "Changed": 1, - "names": 3, - "collisions": 1, - "wiringPi.": 1, - "Macros": 2, - "delayMicroseconds": 3, - "disabled": 2, - "defining": 1, - "BCM2835_NO_DELAY_COMPATIBILITY": 2, - "incorrect": 2, - "mapping": 3, - "Hardware": 1, - "pointers": 2, - "initialisation": 2, - "externally": 1, - "bcm2835_spi0.": 1, - "Now": 4, - "compiles": 1, - "even": 2, - "CLOCK_MONOTONIC_RAW": 1, - "CLOCK_MONOTONIC": 3, - "instead.": 1, - "errors": 1, - "divider": 15, - "frequencies": 2, - "MHz": 14, - "clock.": 6, - "Ben": 1, - "Simpson.": 1, - "examples": 1, - "Mark": 5, - "Wolfe.": 1, - "bcm2835_gpio_set_multi": 2, - "bcm2835_gpio_clr_multi": 2, - "bcm2835_gpio_write_multi": 4, - "mask": 20, - "once.": 1, - "Requested": 2, - "Sebastian": 2, - "Loncar.": 2, - "bcm2835_gpio_write_mask.": 1, - "Changes": 1, - "timer": 2, - "counter": 1, - "clock_gettime": 1, - "improved": 1, - "accuracy.": 1, - "No": 2, - "lrt": 1, - "now.": 1, - "Contributed": 1, - "van": 1, - "Vught.": 1, - "Removed": 1, - "inlines": 1, - "previous": 6, - "patch": 1, - "since": 3, - "don": 1, - "seem": 1, - "work": 1, - "everywhere.": 1, - "olly.": 1, - "Patch": 2, - "Dootson": 2, - "/dev/mem": 4, - "granted.": 1, - "susceptible": 1, - "bit": 19, - "overruns.": 1, - "courtesy": 1, - "Jeremy": 1, - "Mortis.": 1, - "BCM2835_GPFEN0": 2, - "broke": 1, - "ability": 1, - "falling": 4, - "edge": 8, - "events.": 1, - "Dootson.": 2, - "bcm2835_i2c_set_baudrate": 2, - "bcm2835_i2c_read_register_rs.": 1, - "bcm2835_i2c_read": 4, - "bcm2835_i2c_write": 4, - "fix": 1, - "ocasional": 1, - "reads": 2, - "completing.": 1, - "Patched": 1, - "p": 6, - "atched": 1, - "his": 1, - "submitted": 1, - "load": 1, - "processes.": 1, - "Updated": 1, - "distribution": 1, - "details": 1, - "airspayce.com": 1, - "missing": 1, - "unmapmem": 1, - "pads": 7, - "leak.": 1, - "Hartmut": 1, - "Henkel.": 1, - "Mike": 1, - "McCauley": 1, - "mikem@airspayce.com": 1, - "DO": 1, - "NOT": 3, - "CONTACT": 1, - "THE": 2, - "AUTHOR": 1, - "DIRECTLY": 1, - "USE": 1, - "LISTS": 1, - "BCM2835_H": 3, - "": 2, - "defgroup": 7, - "constants": 1, - "Constants": 1, - "passing": 1, - "values": 3, - "here": 1, - "@": 14, - "HIGH": 12, - "volts": 2, - "pin.": 21, - "Speed": 1, - "core": 1, - "clock": 21, - "core_clk": 1, - "BCM2835_CORE_CLK_HZ": 1, - "Base": 17, - "Address": 10, - "BCM2835_PERI_BASE": 9, - "System": 10, - "Timer": 9, - "BCM2835_ST_BASE": 1, - "BCM2835_GPIO_PADS": 2, - "Clock/timer": 1, - "BCM2835_CLOCK_BASE": 1, - "BCM2835_GPIO_BASE": 6, - "BCM2835_SPI0_BASE": 1, - "BSC0": 2, - "BCM2835_BSC0_BASE": 1, - "PWM": 2, - "BCM2835_GPIO_PWM": 1, - "C000": 1, - "BSC1": 2, - "BCM2835_BSC1_BASE": 1, - "ST": 1, - "registers.": 10, - "Available": 8, - "bcm2835_init": 11, - "extern": 72, - "volatile": 13, - "*bcm2835_st": 1, - "*bcm2835_gpio": 1, - "*bcm2835_pwm": 1, - "*bcm2835_clk": 1, - "PADS": 1, - "*bcm2835_pads": 1, - "*bcm2835_spi0": 1, - "*bcm2835_bsc0": 1, - "*bcm2835_bsc1": 1, - "Size": 2, - "page": 5, - "BCM2835_PAGE_SIZE": 1, - "*1024": 2, - "BCM2835_BLOCK_SIZE": 1, - "offsets": 2, - "BCM2835_GPIO_BASE.": 1, - "Offsets": 1, - "into": 6, - "bytes": 29, - "per": 3, - "View": 1, - "BCM2835_GPFSEL0": 1, - "Function": 8, - "BCM2835_GPFSEL1": 1, - "BCM2835_GPFSEL2": 1, - "BCM2835_GPFSEL3": 1, - "BCM2835_GPFSEL4": 1, - "BCM2835_GPFSEL5": 1, - "BCM2835_GPSET0": 1, - "Output": 6, - "Set": 2, - "BCM2835_GPSET1": 1, - "BCM2835_GPCLR0": 1, - "BCM2835_GPCLR1": 1, - "BCM2835_GPLEV0": 1, - "Level": 2, - "BCM2835_GPLEV1": 1, - "BCM2835_GPEDS0": 1, - "Event": 11, - "Detect": 35, - "Status": 6, - "BCM2835_GPEDS1": 1, - "BCM2835_GPREN0": 1, - "Rising": 8, - "Edge": 16, - "Enable": 38, - "BCM2835_GPREN1": 1, - "Falling": 8, - "BCM2835_GPFEN1": 1, - "BCM2835_GPHEN0": 1, - "High": 4, - "BCM2835_GPHEN1": 1, - "BCM2835_GPLEN0": 1, - "Low": 5, - "BCM2835_GPLEN1": 1, - "BCM2835_GPAREN0": 1, - "Async.": 4, - "BCM2835_GPAREN1": 1, - "BCM2835_GPAFEN0": 1, - "BCM2835_GPAFEN1": 1, - "BCM2835_GPPUD": 1, - "Pull": 11, - "up/down": 10, - "BCM2835_GPPUDCLK0": 1, - "Clock": 11, - "BCM2835_GPPUDCLK1": 1, - "brief": 12, - "bcm2835PortFunction": 1, - "Port": 1, - "select": 9, - "modes": 1, - "bcm2835_gpio_fsel": 2, - "BCM2835_GPIO_FSEL_INPT": 1, - "b000": 1, - "Input": 2, - "BCM2835_GPIO_FSEL_OUTP": 1, - "b001": 1, - "BCM2835_GPIO_FSEL_ALT0": 1, - "b100": 1, - "Alternate": 6, - "BCM2835_GPIO_FSEL_ALT1": 1, - "b101": 1, - "BCM2835_GPIO_FSEL_ALT2": 1, - "b110": 1, - "BCM2835_GPIO_FSEL_ALT3": 1, - "b111": 2, - "BCM2835_GPIO_FSEL_ALT4": 1, - "b011": 1, - "BCM2835_GPIO_FSEL_ALT5": 1, - "b010": 1, - "BCM2835_GPIO_FSEL_MASK": 1, - "bits": 11, - "bcm2835FunctionSelect": 2, - "bcm2835PUDControl": 4, - "Pullup/Pulldown": 1, - "defines": 3, - "bcm2835_gpio_pud": 5, - "BCM2835_GPIO_PUD_OFF": 1, - "b00": 1, - "Off": 3, - "pull": 1, - "BCM2835_GPIO_PUD_DOWN": 1, - "b01": 1, - "Down": 1, - "BCM2835_GPIO_PUD_UP": 1, - "b10": 1, - "Up": 1, - "Pad": 11, - "BCM2835_PADS_GPIO_0_27": 1, - "BCM2835_PADS_GPIO_28_45": 1, - "BCM2835_PADS_GPIO_46_53": 1, - "Control": 6, - "masks": 1, - "BCM2835_PAD_PASSWRD": 1, - "Password": 1, - "BCM2835_PAD_SLEW_RATE_UNLIMITED": 1, - "Slew": 1, - "rate": 3, - "unlimited": 1, - "BCM2835_PAD_HYSTERESIS_ENABLED": 1, - "Hysteresis": 1, - "BCM2835_PAD_DRIVE_2mA": 1, - "mA": 8, - "drive": 8, - "BCM2835_PAD_DRIVE_4mA": 1, - "BCM2835_PAD_DRIVE_6mA": 1, - "BCM2835_PAD_DRIVE_8mA": 1, - "BCM2835_PAD_DRIVE_10mA": 1, - "BCM2835_PAD_DRIVE_12mA": 1, - "BCM2835_PAD_DRIVE_14mA": 1, - "BCM2835_PAD_DRIVE_16mA": 1, - "bcm2835PadGroup": 4, - "specification": 1, - "bcm2835_gpio_pad": 2, - "BCM2835_PAD_GROUP_GPIO_0_27": 1, - "BCM2835_PAD_GROUP_GPIO_28_45": 1, - "BCM2835_PAD_GROUP_GPIO_46_53": 1, - "Numbers": 1, - "Here": 1, - "terms": 4, - "numbers.": 1, - "These": 6, - "requiring": 1, - "bin": 1, - "connected": 1, - "adopt": 1, - "alternate": 7, - "function.": 3, - "slightly": 1, - "pinouts": 1, - "these": 1, - "RPI_V2_*.": 1, - "At": 1, - "bootup": 1, - "UART0_TXD": 3, - "UART0_RXD": 3, - "ie": 3, - "alt0": 1, - "respectively": 1, - "dedicated": 1, - "cant": 1, - "controlled": 1, - "independently": 1, - "RPI_GPIO_P1_03": 6, - "RPI_GPIO_P1_05": 6, - "RPI_GPIO_P1_07": 1, - "RPI_GPIO_P1_08": 1, - "defaults": 4, - "alt": 4, - "RPI_GPIO_P1_10": 1, - "RPI_GPIO_P1_11": 1, - "RPI_GPIO_P1_12": 1, - "RPI_GPIO_P1_13": 1, - "RPI_GPIO_P1_15": 1, - "RPI_GPIO_P1_16": 1, - "RPI_GPIO_P1_18": 1, - "RPI_GPIO_P1_19": 1, - "RPI_GPIO_P1_21": 1, - "RPI_GPIO_P1_22": 1, - "RPI_GPIO_P1_23": 1, - "RPI_GPIO_P1_24": 1, - "RPI_GPIO_P1_26": 1, - "RPI_V2_GPIO_P1_03": 1, - "RPI_V2_GPIO_P1_05": 1, - "RPI_V2_GPIO_P1_07": 1, - "RPI_V2_GPIO_P1_08": 1, - "RPI_V2_GPIO_P1_10": 1, - "RPI_V2_GPIO_P1_11": 1, - "RPI_V2_GPIO_P1_12": 1, - "RPI_V2_GPIO_P1_13": 1, - "RPI_V2_GPIO_P1_15": 1, - "RPI_V2_GPIO_P1_16": 1, - "RPI_V2_GPIO_P1_18": 1, - "RPI_V2_GPIO_P1_19": 1, - "RPI_V2_GPIO_P1_21": 1, - "RPI_V2_GPIO_P1_22": 1, - "RPI_V2_GPIO_P1_23": 1, - "RPI_V2_GPIO_P1_24": 1, - "RPI_V2_GPIO_P1_26": 1, - "RPI_V2_GPIO_P5_03": 1, - "RPI_V2_GPIO_P5_04": 1, - "RPI_V2_GPIO_P5_05": 1, - "RPI_V2_GPIO_P5_06": 1, - "RPiGPIOPin": 1, - "BCM2835_SPI0_CS": 1, - "Master": 12, - "BCM2835_SPI0_FIFO": 1, - "TX": 5, - "RX": 7, - "FIFOs": 1, - "BCM2835_SPI0_CLK": 1, - "Divider": 2, - "BCM2835_SPI0_DLEN": 1, - "Data": 9, - "Length": 2, - "BCM2835_SPI0_LTOH": 1, - "LOSSI": 1, - "mode": 24, - "TOH": 1, - "BCM2835_SPI0_DC": 1, - "DMA": 3, - "DREQ": 1, - "Controls": 1, - "BCM2835_SPI0_CS_LEN_LONG": 1, - "Long": 1, - "word": 7, - "Lossi": 2, - "DMA_LEN": 1, - "BCM2835_SPI0_CS_DMA_LEN": 1, - "BCM2835_SPI0_CS_CSPOL2": 1, - "Chip": 9, - "Polarity": 5, - "BCM2835_SPI0_CS_CSPOL1": 1, - "BCM2835_SPI0_CS_CSPOL0": 1, - "BCM2835_SPI0_CS_RXF": 1, - "RXF": 2, - "FIFO": 25, - "Full": 1, - "BCM2835_SPI0_CS_RXR": 1, - "RXR": 3, - "Reading": 1, - "full": 9, - "BCM2835_SPI0_CS_TXD": 1, - "TXD": 2, - "accept": 2, - "BCM2835_SPI0_CS_RXD": 1, - "RXD": 2, - "contains": 2, - "BCM2835_SPI0_CS_DONE": 1, - "Done": 3, - "transfer": 8, - "BCM2835_SPI0_CS_TE_EN": 1, - "Unused": 2, - "BCM2835_SPI0_CS_LMONO": 1, - "BCM2835_SPI0_CS_LEN": 1, - "LEN": 1, - "LoSSI": 1, - "BCM2835_SPI0_CS_REN": 1, - "REN": 1, - "Read": 3, - "BCM2835_SPI0_CS_ADCS": 1, - "ADCS": 1, - "Automatically": 1, - "Deassert": 1, - "BCM2835_SPI0_CS_INTR": 1, - "INTR": 1, - "Interrupt": 5, - "BCM2835_SPI0_CS_INTD": 1, - "INTD": 1, - "BCM2835_SPI0_CS_DMAEN": 1, - "DMAEN": 1, - "BCM2835_SPI0_CS_TA": 1, - "Transfer": 3, - "Active": 2, - "BCM2835_SPI0_CS_CSPOL": 1, - "BCM2835_SPI0_CS_CLEAR": 1, - "BCM2835_SPI0_CS_CLEAR_RX": 1, - "BCM2835_SPI0_CS_CLEAR_TX": 1, - "BCM2835_SPI0_CS_CPOL": 1, - "BCM2835_SPI0_CS_CPHA": 1, - "Phase": 1, - "BCM2835_SPI0_CS_CS": 1, - "bcm2835SPIBitOrder": 3, - "Bit": 1, - "Specifies": 5, - "ordering": 4, - "bcm2835_spi_setBitOrder": 2, - "BCM2835_SPI_BIT_ORDER_LSBFIRST": 1, - "LSB": 1, - "First": 2, - "BCM2835_SPI_BIT_ORDER_MSBFIRST": 1, - "MSB": 1, - "Specify": 2, - "bcm2835_spi_setDataMode": 2, - "BCM2835_SPI_MODE0": 1, - "CPOL": 4, - "CPHA": 4, - "BCM2835_SPI_MODE1": 1, - "BCM2835_SPI_MODE2": 1, - "BCM2835_SPI_MODE3": 1, - "bcm2835SPIMode": 2, - "bcm2835SPIChipSelect": 3, - "BCM2835_SPI_CS0": 1, - "BCM2835_SPI_CS1": 1, - "BCM2835_SPI_CS2": 1, - "CS1": 1, - "CS2": 1, - "asserted": 3, - "BCM2835_SPI_CS_NONE": 1, - "CS": 5, - "yourself": 1, - "bcm2835SPIClockDivider": 3, - "generate": 2, - "Figures": 1, - "below": 1, - "period": 1, - "frequency.": 1, - "divided": 2, - "nominal": 2, - "reported": 2, - "contrary": 1, - "shown": 1, - "confirmed": 1, - "measurement": 2, - "BCM2835_SPI_CLOCK_DIVIDER_65536": 1, - "us": 12, - "kHz": 10, - "BCM2835_SPI_CLOCK_DIVIDER_32768": 1, - "BCM2835_SPI_CLOCK_DIVIDER_16384": 1, - "BCM2835_SPI_CLOCK_DIVIDER_8192": 1, - "/51757813kHz": 1, - "BCM2835_SPI_CLOCK_DIVIDER_4096": 1, - "BCM2835_SPI_CLOCK_DIVIDER_2048": 1, - "BCM2835_SPI_CLOCK_DIVIDER_1024": 1, - "BCM2835_SPI_CLOCK_DIVIDER_512": 1, - "BCM2835_SPI_CLOCK_DIVIDER_256": 1, - "BCM2835_SPI_CLOCK_DIVIDER_128": 1, - "ns": 9, - "BCM2835_SPI_CLOCK_DIVIDER_64": 1, - "BCM2835_SPI_CLOCK_DIVIDER_32": 1, - "BCM2835_SPI_CLOCK_DIVIDER_16": 1, - "BCM2835_SPI_CLOCK_DIVIDER_8": 1, - "BCM2835_SPI_CLOCK_DIVIDER_4": 1, - "BCM2835_SPI_CLOCK_DIVIDER_2": 1, - "fastest": 1, - "BCM2835_SPI_CLOCK_DIVIDER_1": 1, - "same": 3, - "/65536": 1, - "BCM2835_BSC_C": 1, - "BCM2835_BSC_S": 1, - "BCM2835_BSC_DLEN": 1, - "BCM2835_BSC_A": 1, - "Slave": 1, - "BCM2835_BSC_FIFO": 1, - "BCM2835_BSC_DIV": 1, - "BCM2835_BSC_DEL": 1, - "Delay": 4, - "BCM2835_BSC_CLKT": 1, - "Stretch": 2, - "Timeout": 2, - "BCM2835_BSC_C_I2CEN": 1, - "BCM2835_BSC_C_INTR": 1, - "BCM2835_BSC_C_INTT": 1, - "BCM2835_BSC_C_INTD": 1, - "DONE": 2, - "BCM2835_BSC_C_ST": 1, - "Start": 4, - "BCM2835_BSC_C_CLEAR_1": 1, - "BCM2835_BSC_C_CLEAR_2": 1, - "BCM2835_BSC_C_READ": 1, - "BCM2835_BSC_S_CLKT": 1, - "stretch": 1, - "timeout": 5, - "BCM2835_BSC_S_ERR": 1, - "ACK": 1, - "error": 8, - "BCM2835_BSC_S_RXF": 1, - "BCM2835_BSC_S_TXE": 1, - "TXE": 1, - "BCM2835_BSC_S_RXD": 1, - "BCM2835_BSC_S_TXD": 1, - "BCM2835_BSC_S_RXR": 1, - "BCM2835_BSC_S_TXW": 1, - "TXW": 1, - "writing": 2, - "BCM2835_BSC_S_DONE": 1, - "BCM2835_BSC_S_TA": 1, - "BCM2835_BSC_FIFO_SIZE": 1, - "bcm2835I2CClockDivider": 3, - "BCM2835_I2C_CLOCK_DIVIDER_2500": 1, - "BCM2835_I2C_CLOCK_DIVIDER_626": 1, - "BCM2835_I2C_CLOCK_DIVIDER_150": 1, - "reset": 1, - "BCM2835_I2C_CLOCK_DIVIDER_148": 1, - "bcm2835I2CReasonCodes": 5, - "reason": 4, - "codes": 1, - "BCM2835_I2C_REASON_OK": 1, - "Success": 1, - "BCM2835_I2C_REASON_ERROR_NACK": 1, - "Received": 4, - "NACK": 1, - "BCM2835_I2C_REASON_ERROR_CLKT": 1, - "BCM2835_I2C_REASON_ERROR_DATA": 1, - "sent": 1, - "BCM2835_ST_CS": 1, - "Control/Status": 1, - "BCM2835_ST_CLO": 1, - "Counter": 4, - "Lower": 2, - "BCM2835_ST_CHI": 1, - "Upper": 1, - "BCM2835_PWM_CONTROL": 1, - "BCM2835_PWM_STATUS": 1, - "BCM2835_PWM0_RANGE": 1, - "BCM2835_PWM0_DATA": 1, - "BCM2835_PWM1_RANGE": 1, - "BCM2835_PWM1_DATA": 1, - "BCM2835_PWMCLK_CNTL": 1, - "BCM2835_PWMCLK_DIV": 1, - "BCM2835_PWM1_MS_MODE": 1, - "Run": 4, - "MS": 2, - "BCM2835_PWM1_USEFIFO": 1, - "BCM2835_PWM1_REVPOLAR": 1, - "Reverse": 2, - "polarity": 3, - "BCM2835_PWM1_OFFSTATE": 1, - "Ouput": 2, - "BCM2835_PWM1_REPEATFF": 1, - "Repeat": 2, - "last": 6, - "empty": 2, - "BCM2835_PWM1_SERIAL": 1, - "serial": 2, - "BCM2835_PWM1_ENABLE": 1, - "Channel": 2, - "BCM2835_PWM0_MS_MODE": 1, - "BCM2835_PWM0_USEFIFO": 1, - "BCM2835_PWM0_REVPOLAR": 1, - "BCM2835_PWM0_OFFSTATE": 1, - "BCM2835_PWM0_REPEATFF": 1, - "BCM2835_PWM0_SERIAL": 1, - "BCM2835_PWM0_ENABLE": 1, - "__cplusplus": 12, - "init": 2, - "Library": 1, - "management": 1, - "intialise": 1, - "Initialise": 1, - "opening": 1, - "getting": 1, - "device": 7, - "call": 4, - "successfully": 1, - "before": 7, - "bcm2835_set_debug": 2, - "fails": 1, - "returning": 1, - "result": 8, - "crashes": 1, - "failures.": 1, - "Prints": 1, - "messages": 1, - "stderr": 1, - "case": 34, - "errors.": 1, - "successful": 2, - "Close": 1, - "deallocating": 1, - "closing": 3, - "Sets": 24, - "debug": 6, - "prevents": 1, - "makes": 1, - "print": 5, - "out": 5, - "what": 2, - "would": 2, - "rather": 2, - "causes": 1, - "normal": 1, - "operation.": 2, - "Call": 2, - "param": 72, - "level.": 3, - "lowlevel": 2, - "provide": 1, - "generally": 1, - "Reads": 5, - "done": 3, - "twice": 3, - "therefore": 6, - "always": 3, - "precautions": 3, - "correct": 3, - "paddr": 10, - "from.": 6, - "etc.": 5, - "sa": 30, - "without": 3, - "occurred": 2, - "since.": 2, - "bcm2835_peri_read_nb": 1, - "Writes": 2, - "bcm2835_peri_write_nb": 1, - "Alters": 1, - "regsiter.": 1, - "valu": 1, - "alters": 1, - "deines": 1, - "according": 1, - "value.": 2, - "All": 1, - "unaffected.": 1, - "Use": 8, - "alter": 2, - "subset": 1, - "register.": 3, - "masked": 2, - "mask.": 1, - "Bitmask": 1, - "altered": 1, - "gpio": 1, - "interface.": 3, - "state.": 1, - "configures": 1, - "RPI_GPIO_P1_*": 21, - "Mode": 1, - "BCM2835_GPIO_FSEL_*": 1, - "specified": 27, - "HIGH.": 2, - "bcm2835_gpio_write": 3, - "bcm2835_gpio_set": 1, - "LOW.": 5, - "bcm2835_gpio_clr": 1, - "first": 13, - "Mask": 6, - "affect.": 4, - "eg": 5, - "Works": 1, - "output.": 1, - "bcm2835_gpio_lev": 1, - "Status.": 7, - "Tests": 1, - "detected": 7, - "requested": 1, - "flag": 3, - "bcm2835_gpio_set_eds": 2, - "status": 1, - "th": 1, - "true.": 2, - "bcm2835_gpio_eds": 1, - "effect": 3, - "clearing": 1, - "flag.": 1, - "afer": 1, - "seeing": 1, - "rising": 3, - "sets": 8, - "GPRENn": 2, - "synchronous": 2, - "detection.": 2, - "signal": 4, - "sampled": 6, - "looking": 2, - "pattern": 2, - "signal.": 2, - "suppressing": 2, - "glitches.": 2, - "Disable": 6, - "Asynchronous": 6, - "incoming": 2, - "As": 2, - "edges": 2, - "very": 2, - "short": 5, - "duration": 2, - "detected.": 2, - "bcm2835_gpio_pudclk": 3, - "resistor": 1, - "However": 3, - "convenient": 2, - "bcm2835_gpio_set_pud": 4, - "pud": 4, - "desired": 7, - "mode.": 4, - "One": 3, - "BCM2835_GPIO_PUD_*": 2, - "Clocks": 3, - "earlier": 1, - "remove": 2, - "group.": 2, - "BCM2835_PAD_GROUP_GPIO_*": 2, - "BCM2835_PAD_*": 2, - "bcm2835_gpio_set_pad": 1, - "Delays": 3, - "milliseconds.": 1, - "Uses": 4, - "until": 1, - "up.": 1, - "mercy": 2, - "From": 2, - "interval": 4, - "req": 2, - "exact": 2, - "multiple": 2, - "granularity": 2, - "rounded": 2, - "multiple.": 2, - "Furthermore": 2, - "sleep": 2, - "completes": 2, - "still": 3, - "becomes": 2, - "free": 4, - "once": 5, - "again": 2, - "execute": 3, - "thread.": 2, - "millis": 2, - "milliseconds": 1, - "microseconds.": 2, - "combination": 2, - "busy": 2, - "wait": 2, - "timers": 1, - "less": 1, - "microseconds": 6, - "Timer.": 1, - "RaspberryPi": 1, - "Your": 1, - "mileage": 1, - "vary.": 1, - "micros": 5, - "required": 2, - "bcm2835_gpio_write_mask": 1, - "clocking": 1, - "spi": 1, - "let": 2, - "device.": 2, - "operations.": 4, - "Forces": 2, - "ALT0": 2, - "funcitons": 1, - "complete": 3, - "End": 2, - "INPUT": 2, - "behaviour.": 2, - "NOTE": 1, - "effect.": 1, - "SPI0.": 1, - "Defaults": 1, - "BCM2835_SPI_BIT_ORDER_*": 1, - "speed.": 2, - "BCM2835_SPI_CLOCK_DIVIDER_*": 1, - "bcm2835_spi_setClockDivider": 1, - "polariy": 1, - "phase": 1, - "BCM2835_SPI_MODE*": 1, - "bcm2835_spi_transfer": 5, - "made": 1, - "selected": 13, - "during": 4, - "transfer.": 4, - "cs": 4, - "activate": 1, - "slave.": 7, - "BCM2835_SPI_CS*": 1, - "bcm2835_spi_chipSelect": 4, - "occurs": 1, - "currently": 12, - "active.": 1, - "transfers": 1, - "happening": 1, - "complement": 1, - "inactive": 1, - "affect": 1, - "active": 3, - "Whether": 1, - "bcm2835_spi_setChipSelectPolarity": 1, - "Transfers": 6, - "byte": 6, - "Asserts": 3, - "simultaneously": 3, - "clocks": 2, - "MISO.": 2, - "Returns": 2, - "polled": 2, - "Peripherls": 2, - "len": 15, - "slave": 8, - "placed": 1, - "rbuf.": 1, - "rbuf": 3, - "tbuf": 4, - "send.": 5, - "put": 1, - "Number": 8, - "send/received": 2, - "bcm2835_spi_transfernb.": 1, - "replaces": 1, - "transmitted": 1, - "buffer.": 1, - "buf": 14, - "replace": 1, - "eh": 2, - "bcm2835_spi_writenb": 1, - "i2c": 1, - "Philips": 1, - "bus/interface": 1, - "January": 1, - "SCL": 2, - "bcm2835_i2c_end": 3, - "bcm2835_i2c_begin": 1, - "address.": 2, - "addr": 2, - "bcm2835_i2c_setSlaveAddress": 4, - "BCM2835_I2C_CLOCK_DIVIDER_*": 1, - "bcm2835_i2c_setClockDivider": 2, - "converting": 1, - "baudrate": 4, - "parameter": 1, - "equivalent": 1, - "divider.": 1, - "standard": 2, - "khz": 1, - "corresponds": 1, - "its": 1, - "driver.": 1, - "Of": 1, - "nothing": 1, - "driver": 1, - "receive.": 2, - "received.": 2, - "Allows": 2, - "slaves": 1, - "require": 3, - "repeated": 1, - "start": 12, - "prior": 1, - "stop": 1, - "set.": 1, - "popular": 1, - "MPL3115A2": 1, - "pressure": 1, - "temperature": 1, - "sensor.": 1, - "Note": 1, - "combined": 1, - "better": 1, - "choice.": 1, - "Will": 1, - "regaddr": 2, - "bcm2835_i2c_read_register_rs": 1, - "st": 1, - "delays": 1, - "Counter.": 1, - "bcm2835_st_read": 1, - "offset.": 1, - "offset_micros": 2, - "Offset": 1, - "bcm2835_st_delay": 1, - "@example": 5, - "blink.c": 1, - "Blinks": 1, - "off": 1, - "input.c": 1, - "event.c": 1, - "Shows": 3, - "how": 3, - "spi.c": 1, - "spin.c": 1, - "ENV_H": 3, - "": 1, - "Q_OBJECT": 1, - "*instance": 1, - "#pragma": 3, - "Field": 2, - "Free": 1, - "Black": 1, - "White": 1, - "Illegal": 1, - "Player": 1, - "BOOST_ASIO_DETAIL_IMPL_EPOLL_REACTOR_IPP": 3, - "_MSC_VER": 7, - "": 1, - "BOOST_ASIO_HAS_EPOLL": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "BOOST_ASIO_HAS_TIMERFD": 19, - "": 1, - "boost": 18, - "asio": 14, - "detail": 5, - "epoll_reactor": 40, - "io_service": 6, - "service_base": 1, - "": 1, - "io_service_": 1, - "use_service": 1, - "": 1, - "mutex_": 13, - "interrupter_": 5, - "epoll_fd_": 20, - "do_epoll_create": 3, - "timer_fd_": 21, - "do_timerfd_create": 3, - "shutdown_": 10, - "epoll_event": 10, - "ev": 21, - "ev.events": 13, - "EPOLLIN": 8, - "EPOLLERR": 8, - "EPOLLET": 5, - "ev.data.ptr": 10, - "epoll_ctl": 12, - "EPOLL_CTL_ADD": 7, - "interrupter_.read_descriptor": 3, - "interrupter_.interrupt": 2, - "shutdown_service": 1, - "mutex": 16, - "scoped_lock": 16, - "lock.unlock": 1, - "op_queue": 6, - "": 6, - "ops": 10, - "descriptor_state*": 6, - "registered_descriptors_.first": 2, - "max_ops": 6, - "ops.push": 5, - "op_queue_": 12, - "registered_descriptors_.free": 2, - "timer_queues_.get_all_timers": 1, - "io_service_.abandon_operations": 1, - "fork_service": 1, - "fork_event": 1, - "fork_ev": 2, - "fork_child": 1, - "interrupter_.recreate": 1, - "update_timeout": 2, - "descriptors_lock": 3, - "registered_descriptors_mutex_": 3, - "registered_events_": 8, - "descriptor_": 5, - "error_code": 4, - "ec": 6, - "errno": 10, - "get_system_category": 3, - "throw_error": 2, - "init_task": 1, - "io_service_.init_task": 1, - "register_descriptor": 1, - "socket_type": 7, - "per_descriptor_data": 8, - "descriptor_data": 60, - "allocate_descriptor_state": 3, - "descriptor_lock": 7, - "reactor_": 7, - "EPOLLHUP": 3, - "EPOLLPRI": 3, - "register_internal_descriptor": 1, - "op_type": 8, - "reactor_op*": 5, - "op": 28, - ".push": 2, - "move_descriptor": 1, - "target_descriptor_data": 2, - "source_descriptor_data": 3, - "start_op": 1, - "is_continuation": 5, - "allow_speculative": 2, - "ec_": 4, - "bad_descriptor": 1, - "post_immediate_completion": 2, - ".empty": 5, - "read_op": 1, - "except_op": 1, - "perform": 2, - "descriptor_lock.unlock": 4, - "io_service_.post_immediate_completion": 2, - "write_op": 2, - "EPOLLOUT": 4, - "EPOLL_CTL_MOD": 3, - "io_service_.work_started": 2, - "cancel_ops": 1, - ".front": 3, - "operation_aborted": 2, - ".pop": 3, - "io_service_.post_deferred_completions": 3, - "deregister_descriptor": 1, - "EPOLL_CTL_DEL": 2, - "free_descriptor_state": 3, - "deregister_internal_descriptor": 1, - "get_timeout": 5, - "events": 8, - "num_events": 2, - "epoll_wait": 1, - "check_timers": 6, - "void*": 2, - ".data.ptr": 1, - "": 2, - "set_ready_events": 1, - ".events": 1, - "common_lock": 1, - "timer_queues_.get_ready_timers": 1, - "itimerspec": 5, - "new_timeout": 6, - "old_timeout": 4, - "flags": 4, - "timerfd_settime": 2, - "EPOLL_CLOEXEC": 4, - "fd": 15, - "epoll_create1": 1, - "EINVAL": 4, - "ENOSYS": 1, - "epoll_create": 1, - "epoll_size": 1, - "fcntl": 2, - "F_SETFD": 2, - "FD_CLOEXEC": 2, - "timerfd_create": 2, - "TFD_CLOEXEC": 1, - "registered_descriptors_.alloc": 1, - "do_add_timer_queue": 1, - "timer_queue_base": 2, - "timer_queues_.insert": 1, - "do_remove_timer_queue": 1, - "timer_queues_.erase": 1, - "timer_queues_.wait_duration_msec": 1, - "ts": 1, - "ts.it_interval.tv_sec": 1, - "ts.it_interval.tv_nsec": 1, - "usec": 5, - "timer_queues_.wait_duration_usec": 1, - "ts.it_value.tv_sec": 1, - "ts.it_value.tv_nsec": 1, - "TFD_TIMER_ABSTIME": 1, - "perform_io_cleanup_on_block_exit": 4, - "epoll_reactor*": 2, - "first_op_": 3, - "ops_.empty": 1, - "ops_": 2, - "operation*": 4, - "descriptor_state": 5, - "do_complete": 2, - "perform_io": 2, - "mutex_.lock": 1, - "io_cleanup": 1, - "adopt_lock": 1, - "j": 10, - "io_cleanup.ops_.push": 1, - "io_cleanup.first_op_": 2, - "io_cleanup.ops_.front": 1, - "io_cleanup.ops_.pop": 1, - "io_service_impl*": 1, - "owner": 3, - "bytes_transferred": 2, - "": 1, - "": 1, - "DEFAULT_DELIMITER": 1, - "CsvStreamer": 5, - "ofstream": 1, - "File": 1, - "row_buffer": 1, - "row": 12, - "flushed/written": 1, - "fields": 4, - "columns": 2, - "rows": 3, - "records": 2, - "including": 2, - "delimiter": 2, - "Delimiter": 1, - "character": 10, - "comma": 2, - "sanitize": 1, - "ready": 1, - "Empty": 1, - "CSV": 4, - "streamer...": 1, - "Same": 1, - "...": 1, - "Opens": 3, - "path/name": 3, - "Ensures": 1, - "closed": 1, - "saved": 1, - "delimiting": 1, - "add_field": 1, - "line": 11, - "adds": 1, - "save_fields": 1, - "save": 1, - "writes": 2, - "append": 8, - "Appends": 5, - "quoted": 1, - "leading/trailing": 1, - "spaces": 3, - "trimmed": 1, - "Like": 1, - "specify": 1, - "keep": 1, - "writeln": 1, - "Flushes": 1, - "Saves": 1, - "closes": 1, - "field_count": 1, - "Gets": 2, - "row_count": 1, - "QSCIPRINTER_H": 2, - "__APPLE__": 4, - "": 1, - "": 2, - "": 1, - "QT_BEGIN_NAMESPACE": 1, - "QRect": 2, - "QPainter": 2, - "QT_END_NAMESPACE": 1, - "QsciScintillaBase": 100, - "QsciPrinter": 9, - "sub": 2, - "Qt": 1, - "QPrinter": 3, - "text": 5, - "Scintilla": 2, - "document.": 8, - "further": 1, - "classed": 1, - "layout": 1, - "adding": 2, - "headers": 3, - "footers": 2, - "example.": 1, - "QSCINTILLA_EXPORT": 2, - "Constructs": 1, - "printer": 1, - "paint": 1, - "PrinterMode": 1, - "ScreenResolution": 1, - "Destroys": 1, - "instance.": 2, - "Format": 1, - "document": 16, - "drawn": 2, - "painter": 4, - "add": 3, - "customised": 2, - "graphics.": 2, - "drawing": 4, - "actually": 1, - "sized.": 1, - "area": 5, - "draw": 1, - "text.": 3, - "necessary": 1, - "reserve": 1, - "By": 1, - "relative": 2, - "printable": 1, - "page.": 13, - "setFullPage": 1, - "because": 2, - "printRange": 2, - "try": 1, - "over": 1, - "whole": 2, - "pagenr": 2, - "numbered": 1, - "formatPage": 1, - "Return": 3, - "points": 2, - "font": 2, - "printing.": 2, - "setMagnification": 2, - "magnification": 3, - "mag": 2, - "printing": 2, - "magnification.": 1, - "Print": 2, - "lines": 3, - "qsb.": 1, - "negative": 2, - "signifies": 2, - "error.": 1, - "*qsb": 1, - "wrap": 4, - "QsciScintilla": 7, - "WrapWord.": 1, - "setWrapMode": 2, - "WrapMode": 3, - "wrapMode": 2, - "wmode.": 1, - "wmode": 1, - "V8_V8_H_": 3, - "GOOGLE3": 2, - "NDEBUG": 4, - "#undef": 3, - "both": 1, - "Deserializer": 1, - "AllStatic": 1, - "IsRunning": 1, - "UseCrankshaft": 1, - "FatalProcessOutOfMemory": 1, - "take_snapshot": 1, - "NilValue": 1, - "kNullValue": 1, - "kUndefinedValue": 1, - "EqualityKind": 1, - "kStrictEquality": 1, - "kNonStrictEquality": 1, - "rpc_init": 1, - "rpc_server_loop": 1, - "Q_OS_LINUX": 2, - "": 1, - "QT_VERSION": 1, - "QT_VERSION_CHECK": 1, - "Something": 1, - "wrong": 1, - "setup.": 1, - "report": 3, - "mailing": 1, - "argc": 2, - "char**": 2, - "argv": 2, - "google_breakpad": 1, - "ExceptionHandler": 1, - "Utils": 4, - "exceptionHandler": 2, - "qInstallMsgHandler": 1, - "messageHandler": 2, - "QApplication": 1, - "app": 1, - "STATIC_BUILD": 1, - "Q_INIT_RESOURCE": 2, - "WebKit": 1, - "InspectorBackendStub": 1, - "app.setWindowIcon": 1, - "QIcon": 1, - "app.setApplicationName": 1, - "app.setOrganizationName": 1, - "app.setOrganizationDomain": 1, - "app.setApplicationVersion": 1, - "PHANTOMJS_VERSION_STRING": 1, - "Phantom": 1, - "phantom": 1, - "phantom.execute": 1, - "app.exec": 1, - "phantom.returnValue": 1, - "NINJA_METRICS_H_": 3, - "int64_t.": 1, - "Metrics": 2, - "module": 1, - "dumps": 1, - "stats": 2, - "actions.": 1, - "To": 1, - "METRIC_RECORD": 4, - "below.": 1, - "metrics": 2, - "hit": 1, - "path.": 2, - "count": 1, - "Total": 1, - "spent": 1, - "int64_t": 3, - "sum": 1, - "scoped": 1, - "recording": 1, - "metric": 2, - "across": 1, - "body": 1, - "macro.": 1, - "ScopedMetric": 4, - "Metric*": 4, - "metric_": 1, - "Timestamp": 1, - "started.": 1, - "platform": 2, - "dependent.": 1, - "start_": 1, - "prints": 1, - "report.": 1, - "NewMetric": 2, - "summary": 1, - "stdout.": 1, - "Report": 1, - "": 1, - "metrics_": 1, - "Get": 1, - "epoch.": 1, - "Epoch": 1, - "varies": 1, - "between": 1, - "platforms": 1, - "useful": 1, - "measuring": 1, - "elapsed": 1, - "time.": 1, - "GetTimeMillis": 1, - "simple": 1, - "stopwatch": 1, - "seconds": 1, - "Restart": 3, - "called.": 1, - "Stopwatch": 2, - "started_": 4, - "Seconds": 1, - "call.": 1, - "Elapsed": 1, - "": 1, - "primary": 1, - "metrics.": 1, - "top": 1, - "recorded": 1, - "metrics_h_metric": 2, - "g_metrics": 3, - "metrics_h_scoped": 1, - "Metrics*": 1, - "QSCICOMMAND_H": 2, - "": 1, - "": 1, - "QsciCommand": 7, - "represents": 1, - "editor": 1, - "command": 9, - "keys": 3, - "bound": 4, - "Methods": 1, - "provided": 1, - "binding.": 1, - "Each": 1, - "friendly": 2, - "description": 3, - "dialogs.": 1, - "commands": 1, - "assigned": 1, - "key.": 1, - "Command": 4, - "Move": 26, - "down": 12, - "line.": 33, - "LineDown": 1, - "SCI_LINEDOWN": 1, - "Extend": 33, - "selection": 39, - "LineDownExtend": 1, - "SCI_LINEDOWNEXTEND": 1, - "rectangular": 9, - "LineDownRectExtend": 1, - "SCI_LINEDOWNRECTEXTEND": 1, - "Scroll": 5, - "view": 2, - "LineScrollDown": 1, - "SCI_LINESCROLLDOWN": 1, - "LineUp": 1, - "SCI_LINEUP": 1, - "LineUpExtend": 1, - "SCI_LINEUPEXTEND": 1, - "LineUpRectExtend": 1, - "SCI_LINEUPRECTEXTEND": 1, - "LineScrollUp": 1, - "SCI_LINESCROLLUP": 1, - "ScrollToStart": 1, - "SCI_SCROLLTOSTART": 1, - "ScrollToEnd": 1, - "SCI_SCROLLTOEND": 1, - "vertically": 1, - "centre": 1, - "VerticalCentreCaret": 1, - "SCI_VERTICALCENTRECARET": 1, - "paragraph.": 4, - "ParaDown": 1, - "SCI_PARADOWN": 1, - "ParaDownExtend": 1, - "SCI_PARADOWNEXTEND": 1, - "ParaUp": 1, - "SCI_PARAUP": 1, - "ParaUpExtend": 1, - "SCI_PARAUPEXTEND": 1, - "left": 7, - "character.": 9, - "CharLeft": 1, - "SCI_CHARLEFT": 1, - "CharLeftExtend": 1, - "SCI_CHARLEFTEXTEND": 1, - "CharLeftRectExtend": 1, - "SCI_CHARLEFTRECTEXTEND": 1, - "CharRight": 1, - "SCI_CHARRIGHT": 1, - "CharRightExtend": 1, - "SCI_CHARRIGHTEXTEND": 1, - "CharRightRectExtend": 1, - "SCI_CHARRIGHTRECTEXTEND": 1, - "word.": 9, - "WordLeft": 1, - "SCI_WORDLEFT": 1, - "WordLeftExtend": 1, - "SCI_WORDLEFTEXTEND": 1, - "WordRight": 1, - "SCI_WORDRIGHT": 1, - "WordRightExtend": 1, - "SCI_WORDRIGHTEXTEND": 1, - "WordLeftEnd": 1, - "SCI_WORDLEFTEND": 1, - "WordLeftEndExtend": 1, - "SCI_WORDLEFTENDEXTEND": 1, - "WordRightEnd": 1, - "SCI_WORDRIGHTEND": 1, - "WordRightEndExtend": 1, - "SCI_WORDRIGHTENDEXTEND": 1, - "part.": 4, - "WordPartLeft": 1, - "SCI_WORDPARTLEFT": 1, - "WordPartLeftExtend": 1, - "SCI_WORDPARTLEFTEXTEND": 1, - "WordPartRight": 1, - "SCI_WORDPARTRIGHT": 1, - "WordPartRightExtend": 1, - "SCI_WORDPARTRIGHTEXTEND": 1, - "Home": 1, - "SCI_HOME": 1, - "HomeExtend": 1, - "SCI_HOMEEXTEND": 1, - "HomeRectExtend": 1, - "SCI_HOMERECTEXTEND": 1, - "displayed": 10, - "HomeDisplay": 1, - "SCI_HOMEDISPLAY": 1, - "HomeDisplayExtend": 1, - "SCI_HOMEDISPLAYEXTEND": 1, - "HomeWrap": 1, - "SCI_HOMEWRAP": 1, - "HomeWrapExtend": 1, - "SCI_HOMEWRAPEXTEND": 1, - "visible": 6, - "VCHome": 1, - "SCI_VCHOME": 1, - "VCHomeExtend": 1, - "SCI_VCHOMEEXTEND": 1, - "VCHomeRectExtend": 1, - "SCI_VCHOMERECTEXTEND": 1, - "VCHomeWrap": 1, - "SCI_VCHOMEWRAP": 1, - "VCHomeWrapExtend": 1, - "SCI_VCHOMEWRAPEXTEND": 1, - "LineEnd": 1, - "SCI_LINEEND": 1, - "LineEndExtend": 1, - "SCI_LINEENDEXTEND": 1, - "LineEndRectExtend": 1, - "SCI_LINEENDRECTEXTEND": 1, - "LineEndDisplay": 1, - "SCI_LINEENDDISPLAY": 1, - "LineEndDisplayExtend": 1, - "SCI_LINEENDDISPLAYEXTEND": 1, - "LineEndWrap": 1, - "SCI_LINEENDWRAP": 1, - "LineEndWrapExtend": 1, - "SCI_LINEENDWRAPEXTEND": 1, - "DocumentStart": 1, - "SCI_DOCUMENTSTART": 1, - "DocumentStartExtend": 1, - "SCI_DOCUMENTSTARTEXTEND": 1, - "DocumentEnd": 1, - "SCI_DOCUMENTEND": 1, - "DocumentEndExtend": 1, - "SCI_DOCUMENTENDEXTEND": 1, - "PageUp": 1, - "SCI_PAGEUP": 1, - "PageUpExtend": 1, - "SCI_PAGEUPEXTEND": 1, - "PageUpRectExtend": 1, - "SCI_PAGEUPRECTEXTEND": 1, - "PageDown": 1, - "SCI_PAGEDOWN": 1, - "PageDownExtend": 1, - "SCI_PAGEDOWNEXTEND": 1, - "PageDownRectExtend": 1, - "SCI_PAGEDOWNRECTEXTEND": 1, - "Stuttered": 4, - "move": 2, - "StutteredPageUp": 1, - "SCI_STUTTEREDPAGEUP": 1, - "extend": 2, - "StutteredPageUpExtend": 1, - "SCI_STUTTEREDPAGEUPEXTEND": 1, - "StutteredPageDown": 1, - "SCI_STUTTEREDPAGEDOWN": 1, - "StutteredPageDownExtend": 1, - "SCI_STUTTEREDPAGEDOWNEXTEND": 1, - "Delete": 10, - "SCI_CLEAR": 1, - "DeleteBack": 1, - "SCI_DELETEBACK": 1, - "DeleteBackNotLine": 1, - "SCI_DELETEBACKNOTLINE": 1, - "left.": 2, - "DeleteWordLeft": 1, - "SCI_DELWORDLEFT": 1, - "right.": 2, - "DeleteWordRight": 1, - "SCI_DELWORDRIGHT": 1, - "DeleteWordRightEnd": 1, - "SCI_DELWORDRIGHTEND": 1, - "DeleteLineLeft": 1, - "SCI_DELLINELEFT": 1, - "DeleteLineRight": 1, - "SCI_DELLINERIGHT": 1, - "LineDelete": 1, - "SCI_LINEDELETE": 1, - "Cut": 2, - "clipboard.": 5, - "LineCut": 1, - "SCI_LINECUT": 1, - "Copy": 2, - "LineCopy": 1, - "SCI_LINECOPY": 1, - "Transpose": 1, - "lines.": 1, - "LineTranspose": 1, - "SCI_LINETRANSPOSE": 1, - "Duplicate": 2, - "LineDuplicate": 1, - "SCI_LINEDUPLICATE": 1, - "SelectAll": 1, - "SCI_SELECTALL": 1, - "MoveSelectedLinesUp": 1, - "SCI_MOVESELECTEDLINESUP": 1, - "MoveSelectedLinesDown": 1, - "SCI_MOVESELECTEDLINESDOWN": 1, - "selection.": 1, - "SelectionDuplicate": 1, - "SCI_SELECTIONDUPLICATE": 1, - "Convert": 2, - "lower": 1, - "case.": 2, - "SelectionLowerCase": 1, - "SCI_LOWERCASE": 1, - "upper": 1, - "SelectionUpperCase": 1, - "SCI_UPPERCASE": 1, - "SelectionCut": 1, - "SCI_CUT": 1, - "SelectionCopy": 1, - "SCI_COPY": 1, - "Paste": 2, - "SCI_PASTE": 1, - "Toggle": 1, - "insert/overtype.": 1, - "EditToggleOvertype": 1, - "SCI_EDITTOGGLEOVERTYPE": 1, - "Insert": 2, - "dependent": 1, - "newline.": 1, - "Newline": 1, - "SCI_NEWLINE": 1, - "formfeed.": 1, - "Formfeed": 1, - "SCI_FORMFEED": 1, - "Indent": 1, - "Tab": 1, - "SCI_TAB": 1, - "De": 1, - "indent": 1, - "Backtab": 1, - "SCI_BACKTAB": 1, - "Cancel": 2, - "SCI_CANCEL": 1, - "Undo": 2, - "command.": 5, - "SCI_UNDO": 1, - "Redo": 2, - "SCI_REDO": 1, - "Zoom": 2, - "in.": 1, - "ZoomIn": 1, - "SCI_ZOOMIN": 1, - "out.": 1, - "ZoomOut": 1, - "SCI_ZOOMOUT": 1, - "executed": 1, - "scicmd": 2, - "Execute": 1, - "Binds": 2, - "binding": 3, - "removed.": 2, - "unchanged.": 1, - "Valid": 1, - "Key_Down": 1, - "Key_Up": 1, - "Key_Left": 1, - "Key_Right": 1, - "Key_Home": 1, - "Key_End": 1, - "Key_PageUp": 1, - "Key_PageDown": 1, - "Key_Delete": 1, - "Key_Insert": 1, - "Key_Escape": 1, - "Key_Backspace": 1, - "Key_Tab": 1, - "Key_Return.": 1, - "Keys": 1, - "SHIFT": 1, - "CTRL": 1, - "ALT": 1, - "META.": 1, - "setAlternateKey": 3, - "validKey": 3, - "setKey": 3, - "altkey": 3, - "alternateKey": 3, - "returned.": 4, - "qkey": 2, - "qaltkey": 2, - "valid": 2, - "QsciCommandSet": 1, - "*qs": 1, - "cmd": 1, - "*desc": 1, - "bindKey": 1, - "qk": 1, - "scik": 1, - "*qsCmd": 1, - "scikey": 1, - "scialtkey": 1, - "*descCmd": 1, - "INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Person_descriptor_": 6, - "GeneratedMessageReflection*": 1, - "Person_reflection_": 4, - "FileDescriptor*": 1, - "DescriptorPool": 3, - "generated_pool": 2, - "FindFileByName": 1, - "GOOGLE_CHECK": 1, - "message_type": 1, - "Person_offsets_": 2, - "GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET": 3, - "GeneratedMessageReflection": 1, - "MessageFactory": 3, - "generated_factory": 1, - "GOOGLE_PROTOBUF_DECLARE_ONCE": 1, - "protobuf_AssignDescriptors_once_": 2, - "protobuf_AssignDescriptorsOnce": 4, - "GoogleOnceInit": 1, - "protobuf_RegisterTypes": 2, - "InternalRegisterGeneratedMessage": 1, - "already_here": 3, - "GOOGLE_PROTOBUF_VERIFY_VERSION": 1, - "InternalAddGeneratedFile": 1, - "InternalRegisterGeneratedFile": 1, - "OnShutdown": 1, - "StaticDescriptorInitializer_protocol_2dbuffer_2eproto": 2, - "static_descriptor_initializer_protocol_2dbuffer_2eproto_": 1, - "GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN": 2, - "GOOGLE_SAFE_CONCURRENT_WRITES_END": 2, - "*default_instance_": 1, - "xffu": 3, - "DO_": 4, - "EXPRESSION": 2, - "tag": 6, - "ReadTag": 1, - "switch": 3, - "WireFormatLite": 9, - "GetTagFieldNumber": 1, - "GetTagWireType": 2, - "WIRETYPE_LENGTH_DELIMITED": 1, - "ReadString": 1, - "WireFormat": 10, - "VerifyUTF8String": 3, - ".data": 3, - ".length": 3, - "PARSE": 1, - "handle_uninterpreted": 2, - "ExpectAtEnd": 1, - "WIRETYPE_END_GROUP": 1, - "SkipField": 1, - "SERIALIZE": 2, - "WriteString": 1, - "SerializeUnknownFields": 1, - "target": 6, - "WriteStringToArray": 1, - "SerializeUnknownFieldsToArray": 1, - "total_size": 5, - "StringSize": 1, - "ComputeUnknownFieldsSize": 1, - "GOOGLE_CHECK_NE": 2, - "dynamic_cast_if_available": 1, - "ReflectionOps": 1, - "Merge": 1, - "from._has_bits_": 1, - "from.has_name": 1, - "from.name": 1, - "from.unknown_fields": 1, - "swap": 3, - "_unknown_fields_.Swap": 1, - "metadata": 2, - "metadata.descriptor": 1, - "metadata.reflection": 1, - "PY_SSIZE_T_CLEAN": 1, - "Py_PYTHON_H": 1, - "Python": 1, - "compile": 1, - "extensions": 1, - "development": 1, - "Python.": 1, - "": 1, - "offsetof": 2, - "member": 2, - "type*": 1, - "WIN32": 2, - "MS_WINDOWS": 2, - "__stdcall": 2, - "__cdecl": 2, - "__fastcall": 2, - "DL_IMPORT": 2, - "DL_EXPORT": 2, - "PY_LONG_LONG": 5, - "LONG_LONG": 1, - "PY_VERSION_HEX": 9, - "METH_COEXIST": 1, - "PyDict_CheckExact": 1, - "Py_TYPE": 4, - "PyDict_Type": 1, - "PyDict_Contains": 1, - "d": 8, - "o": 20, - "PySequence_Contains": 1, - "Py_ssize_t": 17, - "PY_SSIZE_T_MAX": 1, - "INT_MAX": 1, - "PY_SSIZE_T_MIN": 1, - "INT_MIN": 1, - "PY_FORMAT_SIZE_T": 1, - "PyInt_FromSsize_t": 2, - "z": 46, - "PyInt_FromLong": 13, - "PyInt_AsSsize_t": 2, - "PyInt_AsLong": 2, - "PyNumber_Index": 1, - "PyNumber_Int": 1, - "PyIndex_Check": 1, - "PyNumber_Check": 1, - "PyErr_WarnEx": 1, - "category": 2, - "message": 2, - "stacklevel": 1, - "PyErr_Warn": 1, - "Py_REFCNT": 1, - "ob": 6, - "PyObject*": 16, - "ob_refcnt": 1, - "ob_type": 7, - "Py_SIZE": 1, - "PyVarObject*": 1, - "ob_size": 1, - "PyVarObject_HEAD_INIT": 1, - "PyObject_HEAD_INIT": 1, - "PyType_Modified": 1, - "*buf": 1, - "PyObject": 221, - "*obj": 2, - "itemsize": 2, - "ndim": 2, - "*format": 1, - "*shape": 1, - "*strides": 1, - "*suboffsets": 1, - "*internal": 1, - "Py_buffer": 5, - "PyBUF_SIMPLE": 1, - "PyBUF_WRITABLE": 1, - "PyBUF_FORMAT": 1, - "PyBUF_ND": 2, - "PyBUF_STRIDES": 5, - "PyBUF_C_CONTIGUOUS": 3, - "PyBUF_F_CONTIGUOUS": 3, - "PyBUF_ANY_CONTIGUOUS": 1, - "PyBUF_INDIRECT": 1, - "PY_MAJOR_VERSION": 10, - "__Pyx_BUILTIN_MODULE_NAME": 2, - "Py_TPFLAGS_CHECKTYPES": 1, - "Py_TPFLAGS_HAVE_INDEX": 1, - "Py_TPFLAGS_HAVE_NEWBUFFER": 1, - "PyBaseString_Type": 1, - "PyUnicode_Type": 2, - "PyStringObject": 2, - "PyUnicodeObject": 1, - "PyString_Type": 2, - "PyString_Check": 2, - "PyUnicode_Check": 1, - "PyString_CheckExact": 2, - "PyUnicode_CheckExact": 1, - "PyBytesObject": 1, - "PyBytes_Type": 1, - "PyBytes_Check": 1, - "PyBytes_CheckExact": 1, - "PyBytes_FromString": 2, - "PyString_FromString": 1, - "PyBytes_FromStringAndSize": 1, - "PyString_FromStringAndSize": 1, - "PyBytes_FromFormat": 1, - "PyString_FromFormat": 1, - "PyBytes_DecodeEscape": 1, - "PyString_DecodeEscape": 1, - "PyBytes_AsString": 2, - "PyString_AsString": 1, - "PyBytes_AsStringAndSize": 1, - "PyString_AsStringAndSize": 1, - "PyBytes_Size": 1, - "PyString_Size": 1, - "PyBytes_AS_STRING": 1, - "PyString_AS_STRING": 1, - "PyBytes_GET_SIZE": 1, - "PyString_GET_SIZE": 1, - "PyBytes_Repr": 1, - "PyString_Repr": 1, - "PyBytes_Concat": 1, - "PyString_Concat": 1, - "PyBytes_ConcatAndDel": 1, - "PyString_ConcatAndDel": 1, - "PySet_Check": 1, - "obj": 42, - "PyObject_TypeCheck": 3, - "PySet_Type": 2, - "PyFrozenSet_Check": 1, - "PyFrozenSet_Type": 1, - "PySet_CheckExact": 2, - "__Pyx_TypeCheck": 1, - "PyTypeObject": 2, - "PyIntObject": 1, - "PyLongObject": 2, - "PyInt_Type": 1, - "PyLong_Type": 1, - "PyInt_Check": 1, - "PyLong_Check": 1, - "PyInt_CheckExact": 1, - "PyLong_CheckExact": 1, - "PyInt_FromString": 1, - "PyLong_FromString": 1, - "PyInt_FromUnicode": 1, - "PyLong_FromUnicode": 1, - "PyLong_FromLong": 1, - "PyInt_FromSize_t": 1, - "PyLong_FromSize_t": 1, - "PyLong_FromSsize_t": 1, - "PyLong_AsLong": 1, - "PyInt_AS_LONG": 1, - "PyLong_AS_LONG": 1, - "PyLong_AsSsize_t": 1, - "PyInt_AsUnsignedLongMask": 1, - "PyLong_AsUnsignedLongMask": 1, - "PyInt_AsUnsignedLongLongMask": 1, - "PyLong_AsUnsignedLongLongMask": 1, - "PyBoolObject": 1, - "__Pyx_PyNumber_Divide": 2, - "PyNumber_TrueDivide": 1, - "__Pyx_PyNumber_InPlaceDivide": 2, - "PyNumber_InPlaceTrueDivide": 1, - "PyNumber_Divide": 1, - "PyNumber_InPlaceDivide": 1, - "__Pyx_PySequence_GetSlice": 2, - "PySequence_GetSlice": 2, - "__Pyx_PySequence_SetSlice": 2, - "PySequence_SetSlice": 2, - "__Pyx_PySequence_DelSlice": 2, - "PySequence_DelSlice": 2, - "unlikely": 69, - "PyErr_SetString": 4, - "PyExc_SystemError": 3, - "likely": 15, - "tp_as_mapping": 3, - "PyErr_Format": 4, - "PyExc_TypeError": 5, - "tp_name": 4, - "PyMethod_New": 2, - "func": 3, - "klass": 1, - "PyInstanceMethod_New": 1, - "__Pyx_GetAttrString": 2, - "PyObject_GetAttrString": 3, - "__Pyx_SetAttrString": 2, - "PyObject_SetAttrString": 2, - "__Pyx_DelAttrString": 2, - "PyObject_DelAttrString": 2, - "__Pyx_NAMESTR": 3, - "__Pyx_DOCSTR": 3, - "__PYX_EXTERN_C": 2, - "_USE_MATH_DEFINES": 1, - "": 1, - "__PYX_HAVE_API__wrapper_inner": 1, - "PYREX_WITHOUT_ASSERTIONS": 1, - "CYTHON_WITHOUT_ASSERTIONS": 1, - "CYTHON_INLINE": 68, - "__GNUC__": 5, - "__inline__": 1, - "__inline": 1, - "__STDC_VERSION__": 2, - "L": 1, - "CYTHON_UNUSED": 7, - "**p": 1, - "*s": 1, - "encoding": 1, - "is_unicode": 1, - "is_str": 1, - "intern": 1, - "__Pyx_StringTabEntry": 1, - "__Pyx_PyBytes_FromUString": 1, - "__Pyx_PyBytes_AsUString": 1, - "__Pyx_PyBool_FromLong": 1, - "Py_INCREF": 3, - "Py_True": 2, - "Py_False": 2, - "__Pyx_PyObject_IsTrue": 8, - "__Pyx_PyNumber_Int": 1, - "__Pyx_PyIndex_AsSsize_t": 1, - "__Pyx_PyInt_FromSize_t": 1, - "__Pyx_PyInt_AsSize_t": 1, - "__pyx_PyFloat_AsDouble": 3, - "PyFloat_CheckExact": 1, - "PyFloat_AS_DOUBLE": 1, - "PyFloat_AsDouble": 1, - "__GNUC_MINOR__": 1, - "__builtin_expect": 2, - "*__pyx_m": 1, - "*__pyx_b": 1, - "*__pyx_empty_tuple": 1, - "*__pyx_empty_bytes": 1, - "__pyx_lineno": 80, - "__pyx_clineno": 80, - "__pyx_cfilenm": 1, - "__FILE__": 2, - "*__pyx_filename": 1, - "CYTHON_CCOMPLEX": 12, - "_Complex_I": 3, - "": 1, - "": 1, - "__sun__": 1, - "fj": 1, - "*__pyx_f": 1, - "npy_int8": 1, - "__pyx_t_5numpy_int8_t": 1, - "npy_int16": 1, - "__pyx_t_5numpy_int16_t": 1, - "npy_int32": 1, - "__pyx_t_5numpy_int32_t": 1, - "npy_int64": 1, - "__pyx_t_5numpy_int64_t": 1, - "npy_uint8": 1, - "__pyx_t_5numpy_uint8_t": 1, - "npy_uint16": 1, - "__pyx_t_5numpy_uint16_t": 1, - "npy_uint32": 1, - "__pyx_t_5numpy_uint32_t": 1, - "npy_uint64": 1, - "__pyx_t_5numpy_uint64_t": 1, - "npy_float32": 1, - "__pyx_t_5numpy_float32_t": 1, - "npy_float64": 1, - "__pyx_t_5numpy_float64_t": 1, - "npy_long": 1, - "__pyx_t_5numpy_int_t": 1, - "npy_longlong": 1, - "__pyx_t_5numpy_long_t": 1, - "npy_intp": 10, - "__pyx_t_5numpy_intp_t": 1, - "npy_uintp": 1, - "__pyx_t_5numpy_uintp_t": 1, - "npy_ulong": 1, - "__pyx_t_5numpy_uint_t": 1, - "npy_ulonglong": 1, - "__pyx_t_5numpy_ulong_t": 1, - "npy_double": 2, - "__pyx_t_5numpy_float_t": 1, - "__pyx_t_5numpy_double_t": 1, - "npy_longdouble": 1, - "__pyx_t_5numpy_longdouble_t": 1, - "complex": 2, - "__pyx_t_float_complex": 27, - "_Complex": 2, - "imag": 2, - "__pyx_t_double_complex": 27, - "npy_cfloat": 1, - "__pyx_t_5numpy_cfloat_t": 1, - "npy_cdouble": 2, - "__pyx_t_5numpy_cdouble_t": 1, - "npy_clongdouble": 1, - "__pyx_t_5numpy_clongdouble_t": 1, - "__pyx_t_5numpy_complex_t": 1, - "CYTHON_REFNANNY": 3, - "__Pyx_RefNannyAPIStruct": 4, - "*__Pyx_RefNanny": 1, - "__Pyx_RefNannyImportAPI": 1, - "*modname": 1, - "*m": 1, - "*p": 1, - "*r": 1, - "m": 4, - "PyImport_ImportModule": 1, - "modname": 1, - "PyLong_AsVoidPtr": 1, - "Py_XDECREF": 3, - "__Pyx_RefNannySetupContext": 13, - "*__pyx_refnanny": 1, - "__Pyx_RefNanny": 6, - "SetupContext": 1, - "__LINE__": 84, - "__Pyx_RefNannyFinishContext": 12, - "FinishContext": 1, - "__pyx_refnanny": 5, - "__Pyx_INCREF": 36, - "INCREF": 1, - "__Pyx_DECREF": 66, - "DECREF": 1, - "__Pyx_GOTREF": 60, - "GOTREF": 1, - "__Pyx_GIVEREF": 10, - "GIVEREF": 1, - "__Pyx_XDECREF": 26, - "Py_DECREF": 1, - "__Pyx_XGIVEREF": 7, - "__Pyx_XGOTREF": 1, - "__Pyx_TypeTest": 4, - "*type": 3, - "*__Pyx_GetName": 1, - "*dict": 1, - "__Pyx_ErrRestore": 1, - "*value": 2, - "*tb": 2, - "__Pyx_ErrFetch": 1, - "**type": 1, - "**value": 1, - "**tb": 1, - "__Pyx_Raise": 8, - "__Pyx_RaiseNoneNotIterableError": 1, - "__Pyx_RaiseNeedMoreValuesError": 1, - "index": 2, - "__Pyx_RaiseTooManyValuesError": 1, - "expected": 1, - "__Pyx_UnpackTupleError": 2, - "*__Pyx_Import": 1, - "*from_list": 1, - "__Pyx_Print": 1, - "__pyx_print": 1, - "__pyx_print_kwargs": 1, - "__Pyx_PrintOne": 4, - "*o": 1, - "*__Pyx_PyInt_to_py_Py_intptr_t": 1, - "Py_intptr_t": 1, - "__Pyx_CREAL": 4, - ".real": 3, - "__Pyx_CIMAG": 4, - ".imag": 3, - "__real__": 1, - "__imag__": 1, - "_WIN32": 1, - "__Pyx_SET_CREAL": 2, - "__Pyx_SET_CIMAG": 2, - "__pyx_t_float_complex_from_parts": 1, - "__Pyx_c_eqf": 2, - "__Pyx_c_sumf": 2, - "__Pyx_c_difff": 2, - "__Pyx_c_prodf": 2, - "__Pyx_c_quotf": 2, - "__Pyx_c_negf": 2, - "__Pyx_c_is_zerof": 3, - "__Pyx_c_conjf": 3, - "conj": 3, - "__Pyx_c_absf": 3, - "abs": 2, - "__Pyx_c_powf": 3, - "pow": 2, - "conjf": 1, - "cabsf": 1, - "cpowf": 1, - "__pyx_t_double_complex_from_parts": 1, - "__Pyx_c_eq": 2, - "__Pyx_c_sum": 2, - "__Pyx_c_diff": 2, - "__Pyx_c_prod": 2, - "__Pyx_c_quot": 2, - "__Pyx_c_neg": 2, - "__Pyx_c_is_zero": 3, - "__Pyx_c_conj": 3, - "__Pyx_c_abs": 3, - "__Pyx_c_pow": 3, - "cabs": 1, - "cpow": 1, - "__Pyx_PyInt_AsUnsignedChar": 1, - "__Pyx_PyInt_AsUnsignedShort": 1, - "__Pyx_PyInt_AsUnsignedInt": 1, - "__Pyx_PyInt_AsChar": 1, - "__Pyx_PyInt_AsShort": 1, - "__Pyx_PyInt_AsInt": 1, - "signed": 5, - "__Pyx_PyInt_AsSignedChar": 1, - "__Pyx_PyInt_AsSignedShort": 1, - "__Pyx_PyInt_AsSignedInt": 1, - "__Pyx_PyInt_AsLongDouble": 1, - "__Pyx_PyInt_AsUnsignedLong": 1, - "__Pyx_PyInt_AsUnsignedLongLong": 1, - "__Pyx_PyInt_AsLong": 1, - "__Pyx_PyInt_AsLongLong": 1, - "__Pyx_PyInt_AsSignedLong": 1, - "__Pyx_PyInt_AsSignedLongLong": 1, - "__Pyx_WriteUnraisable": 3, - "__Pyx_ExportFunction": 1, - "*__pyx_f_5numpy_PyArray_MultiIterNew2": 2, - "*__pyx_f_5numpy_PyArray_MultiIterNew3": 2, - "*__pyx_f_5numpy_PyArray_MultiIterNew4": 2, - "*__pyx_f_5numpy_PyArray_MultiIterNew5": 2, - "*__pyx_f_5numpy__util_dtypestring": 2, - "PyArray_Descr": 6, - "__pyx_f_5numpy_set_array_base": 1, - "PyArrayObject": 19, - "*__pyx_f_5numpy_get_array_base": 1, - "inner_work_1d": 2, - "inner_work_2d": 2, - "__Pyx_MODULE_NAME": 1, - "__pyx_module_is_main_wrapper_inner": 1, - "*__pyx_builtin_ValueError": 1, - "*__pyx_builtin_range": 1, - "*__pyx_builtin_RuntimeError": 1, - "__pyx_k_1": 1, - "__pyx_k_2": 1, - "__pyx_k_3": 1, - "__pyx_k_5": 1, - "__pyx_k_7": 1, - "__pyx_k_9": 1, - "__pyx_k_11": 1, - "__pyx_k_12": 1, - "__pyx_k_15": 1, - "__pyx_k__B": 2, - "__pyx_k__H": 2, - "__pyx_k__I": 2, - "__pyx_k__L": 2, - "__pyx_k__O": 2, - "__pyx_k__Q": 2, - "__pyx_k__b": 2, - "__pyx_k__d": 2, - "__pyx_k__f": 2, - "__pyx_k__g": 2, - "__pyx_k__h": 2, - "__pyx_k__i": 2, - "__pyx_k__l": 2, - "__pyx_k__q": 2, - "__pyx_k__Zd": 2, - "__pyx_k__Zf": 2, - "__pyx_k__Zg": 2, - "__pyx_k__np": 1, - "__pyx_k__buf": 1, - "__pyx_k__obj": 1, - "__pyx_k__base": 1, - "__pyx_k__ndim": 1, - "__pyx_k__ones": 1, - "__pyx_k__descr": 1, - "__pyx_k__names": 1, - "__pyx_k__numpy": 1, - "__pyx_k__range": 1, - "__pyx_k__shape": 1, - "__pyx_k__fields": 1, - "__pyx_k__format": 1, - "__pyx_k__strides": 1, - "__pyx_k____main__": 1, - "__pyx_k____test__": 1, - "__pyx_k__itemsize": 1, - "__pyx_k__readonly": 1, - "__pyx_k__type_num": 1, - "__pyx_k__byteorder": 1, - "__pyx_k__ValueError": 1, - "__pyx_k__suboffsets": 1, - "__pyx_k__work_module": 1, - "__pyx_k__RuntimeError": 1, - "__pyx_k__pure_py_test": 1, - "__pyx_k__wrapper_inner": 1, - "__pyx_k__do_awesome_work": 1, - "*__pyx_kp_s_1": 1, - "*__pyx_kp_u_11": 1, - "*__pyx_kp_u_12": 1, - "*__pyx_kp_u_15": 1, - "*__pyx_kp_s_2": 1, - "*__pyx_kp_s_3": 1, - "*__pyx_kp_u_5": 1, - "*__pyx_kp_u_7": 1, - "*__pyx_kp_u_9": 1, - "*__pyx_n_s__RuntimeError": 1, - "*__pyx_n_s__ValueError": 1, - "*__pyx_n_s____main__": 1, - "*__pyx_n_s____test__": 1, - "*__pyx_n_s__base": 1, - "*__pyx_n_s__buf": 1, - "*__pyx_n_s__byteorder": 1, - "*__pyx_n_s__descr": 1, - "*__pyx_n_s__do_awesome_work": 1, - "*__pyx_n_s__fields": 1, - "*__pyx_n_s__format": 1, - "*__pyx_n_s__itemsize": 1, - "*__pyx_n_s__names": 1, - "*__pyx_n_s__ndim": 1, - "*__pyx_n_s__np": 1, - "*__pyx_n_s__numpy": 1, - "*__pyx_n_s__obj": 1, - "*__pyx_n_s__ones": 1, - "*__pyx_n_s__pure_py_test": 1, - "*__pyx_n_s__range": 1, - "*__pyx_n_s__readonly": 1, - "*__pyx_n_s__shape": 1, - "*__pyx_n_s__strides": 1, - "*__pyx_n_s__suboffsets": 1, - "*__pyx_n_s__type_num": 1, - "*__pyx_n_s__work_module": 1, - "*__pyx_n_s__wrapper_inner": 1, - "*__pyx_int_5": 1, - "*__pyx_int_15": 1, - "*__pyx_k_tuple_4": 1, - "*__pyx_k_tuple_6": 1, - "*__pyx_k_tuple_8": 1, - "*__pyx_k_tuple_10": 1, - "*__pyx_k_tuple_13": 1, - "*__pyx_k_tuple_14": 1, - "*__pyx_k_tuple_16": 1, - "__pyx_v_num_x": 4, - "*__pyx_v_data_ptr": 2, - "*__pyx_v_answer_ptr": 2, - "__pyx_v_nd": 6, - "*__pyx_v_dims": 2, - "__pyx_v_typenum": 6, - "*__pyx_v_data_np": 2, - "__pyx_v_sum": 6, - "__pyx_t_1": 154, - "*__pyx_t_2": 4, - "*__pyx_t_3": 4, - "*__pyx_t_4": 3, - "__pyx_t_5": 75, - "__pyx_kp_s_1": 1, - "__pyx_filename": 79, - "__pyx_f": 79, - "__pyx_L1_error": 88, - "__pyx_v_dims": 4, - "NPY_DOUBLE": 3, - "__pyx_t_2": 120, - "PyArray_SimpleNewFromData": 2, - "__pyx_v_data_ptr": 2, - "Py_None": 38, - "__pyx_ptype_5numpy_ndarray": 2, - "__pyx_v_data_np": 10, - "__Pyx_GetName": 4, - "__pyx_m": 4, - "__pyx_n_s__work_module": 3, - "__pyx_t_3": 113, - "PyObject_GetAttr": 4, - "__pyx_n_s__do_awesome_work": 3, - "PyTuple_New": 4, - "PyTuple_SET_ITEM": 4, - "__pyx_t_4": 35, - "PyObject_Call": 11, - "PyErr_Occurred": 2, - "__pyx_v_answer_ptr": 2, - "__pyx_L0": 24, - "__pyx_v_num_y": 2, - "__pyx_kp_s_2": 1, - "*__pyx_pf_13wrapper_inner_pure_py_test": 2, - "*__pyx_self": 2, - "*unused": 2, - "PyMethodDef": 1, - "__pyx_mdef_13wrapper_inner_pure_py_test": 1, - "PyCFunction": 1, - "__pyx_pf_13wrapper_inner_pure_py_test": 1, - "METH_NOARGS": 1, - "*__pyx_v_data": 1, - "*__pyx_r": 7, - "*__pyx_t_1": 8, - "__pyx_self": 2, - "__pyx_v_data": 7, - "__pyx_kp_s_3": 1, - "__pyx_n_s__np": 1, - "__pyx_n_s__ones": 1, - "__pyx_k_tuple_4": 1, - "__pyx_r": 39, - "__Pyx_AddTraceback": 7, - "__pyx_pf_5numpy_7ndarray___getbuffer__": 2, - "*__pyx_v_self": 4, - "*__pyx_v_info": 4, - "__pyx_v_flags": 4, - "__pyx_v_copy_shape": 5, - "__pyx_v_i": 6, - "__pyx_v_ndim": 6, - "__pyx_v_endian_detector": 6, - "__pyx_v_little_endian": 8, - "__pyx_v_t": 29, - "*__pyx_v_f": 2, - "*__pyx_v_descr": 2, - "__pyx_v_offset": 9, - "__pyx_v_hasfields": 4, - "__pyx_t_6": 40, - "__pyx_t_7": 9, - "*__pyx_t_8": 1, - "*__pyx_t_9": 1, - "__pyx_v_info": 33, - "__pyx_v_self": 16, - "PyArray_NDIM": 1, - "__pyx_L5": 6, - "PyArray_CHKFLAGS": 2, - "NPY_C_CONTIGUOUS": 1, - "__pyx_builtin_ValueError": 5, - "__pyx_k_tuple_6": 1, - "__pyx_L6": 6, - "NPY_F_CONTIGUOUS": 1, - "__pyx_k_tuple_8": 1, - "__pyx_L7": 2, - "PyArray_DATA": 1, - "strides": 5, - "malloc": 2, - "shape": 3, - "PyArray_STRIDES": 2, - "PyArray_DIMS": 2, - "__pyx_L8": 2, - "suboffsets": 1, - "PyArray_ITEMSIZE": 1, - "PyArray_ISWRITEABLE": 1, - "__pyx_v_f": 31, - "descr": 2, - "__pyx_v_descr": 10, - "PyDataType_HASFIELDS": 2, - "__pyx_L11": 7, - "type_num": 2, - "byteorder": 4, - "__pyx_k_tuple_10": 1, - "__pyx_L13": 2, - "NPY_BYTE": 2, - "__pyx_L14": 18, - "NPY_UBYTE": 2, - "NPY_SHORT": 2, - "NPY_USHORT": 2, - "NPY_INT": 2, - "NPY_UINT": 2, - "NPY_LONG": 1, - "NPY_ULONG": 1, - "NPY_LONGLONG": 1, - "NPY_ULONGLONG": 1, - "NPY_FLOAT": 1, - "NPY_LONGDOUBLE": 1, - "NPY_CFLOAT": 1, - "NPY_CDOUBLE": 1, - "NPY_CLONGDOUBLE": 1, - "NPY_OBJECT": 1, - "__pyx_t_8": 16, - "PyNumber_Remainder": 1, - "__pyx_kp_u_11": 1, - "format": 6, - "__pyx_L12": 2, - "__pyx_t_9": 7, - "__pyx_f_5numpy__util_dtypestring": 1, - "__pyx_L2": 2, - "__pyx_pf_5numpy_7ndarray_1__releasebuffer__": 2, - "PyArray_HASFIELDS": 1, - "*__pyx_f_5numpy_PyArray_MultiIterNew1": 1, - "*__pyx_v_a": 5, - "PyArray_MultiIterNew": 5, - "__pyx_v_a": 5, - "*__pyx_v_b": 4, - "__pyx_v_b": 4, - "*__pyx_v_c": 3, - "__pyx_v_c": 3, - "*__pyx_v_d": 2, - "__pyx_v_d": 2, - "*__pyx_v_e": 1, - "__pyx_v_e": 1, - "*__pyx_v_end": 1, - "*__pyx_v_offset": 1, - "*__pyx_v_child": 1, - "*__pyx_v_fields": 1, - "*__pyx_v_childname": 1, - "*__pyx_v_new_offset": 1, - "*__pyx_v_t": 1, - "*__pyx_t_5": 1, - "__pyx_t_10": 7, - "*__pyx_t_11": 1, - "__pyx_v_child": 8, - "__pyx_v_fields": 7, - "__pyx_v_childname": 4, - "__pyx_v_new_offset": 5, - "PyTuple_GET_SIZE": 2, - "PyTuple_GET_ITEM": 3, - "PyObject_GetItem": 1, - "PyTuple_CheckExact": 1, - "tuple": 3, - "__pyx_ptype_5numpy_dtype": 1, - "__pyx_v_end": 2, - "PyNumber_Subtract": 2, - "PyObject_RichCompare": 8, - "__pyx_int_15": 1, - "Py_LT": 2, - "__pyx_builtin_RuntimeError": 2, - "__pyx_k_tuple_13": 1, - "__pyx_k_tuple_14": 1, - "elsize": 1, - "__pyx_k_tuple_16": 1, - "__pyx_L10": 2, - "Py_EQ": 6, - "UTILS_H": 3, - "": 1, - "": 1, - "": 1, - "QTemporaryFile": 1, - "showUsage": 1, - "QtMsgType": 1, - "dump_path": 1, - "minidump_id": 1, - "QVariant": 1, - "coffee2js": 1, - "script": 1, - "injectJsInFrame": 2, - "jsFilePath": 5, - "libraryPath": 5, - "QWebFrame": 4, - "*targetFrame": 4, - "startingScript": 2, - "Encoding": 3, - "jsFileEnc": 2, - "readResourceFileUtf8": 1, - "resourceFilePath": 1, - "loadJSForDebug": 2, - "autorun": 2, - "cleanupFromDebug": 1, - "findScript": 1, - "jsFromScriptFile": 1, - "scriptPath": 1, - "enc": 1, - "shouldn": 1, - "instantiated": 1, - "QTemporaryFile*": 2, - "m_tempHarness": 1, - "We": 1, - "ourselves": 1, - "m_tempWrapper": 1, - "smallPrime_t": 1, - "overflow": 1, - "NUM_TOKENS": 1, - "one_char_tokens": 2, - "ILLEGAL": 120, - "LPAREN": 2, - "RPAREN": 2, - "COMMA": 2, - "COLON": 2, - "SEMICOLON": 2, - "CONDITIONAL": 2, - "LBRACK": 2, - "RBRACK": 2, - "LBRACE": 2, - "RBRACE": 2, - "BIT_NOT": 2, - "": 1, - "next_.location.beg_pos": 3, - "next_.location.end_pos": 4, - "IsByteOrderMark": 2, - "xFEFF": 1, - "xFFFE": 1, - "start_position": 2, - "undo": 4, - "WHITESPACE": 6, - "LT": 2, - "LTE": 1, - "ASSIGN_SHL": 1, - "SHL": 1, - "GTE": 1, - "ASSIGN_SAR": 1, - "ASSIGN_SHR": 1, - "SHR": 1, - "SAR": 1, - "GT": 1, - "EQ_STRICT": 1, - "EQ": 1, - "ASSIGN": 1, - "NE_STRICT": 1, - "NE": 1, - "INC": 1, - "ASSIGN_ADD": 1, - "ADD": 1, - "DEC": 1, - "ASSIGN_SUB": 1, - "SUB": 1, - "ASSIGN_MUL": 1, - "MUL": 1, - "ASSIGN_MOD": 1, - "MOD": 1, - "ASSIGN_DIV": 1, - "DIV": 1, - "AND": 1, - "ASSIGN_BIT_AND": 1, - "BIT_AND": 1, - "OR": 1, - "ASSIGN_BIT_OR": 1, - "BIT_OR": 1, - "ASSIGN_BIT_XOR": 1, - "BIT_XOR": 1, - "IsDecimalDigit": 2, - "PERIOD": 1, - "EOS": 1, - "current_pos": 4, - "ASSERT_EQ": 1, - "IsCarriageReturn": 2, - "IsLineFeed": 2, - "fall": 2, - "xxx": 1, - "immediately": 1, - "octal": 1, - "escape": 1, - "quote": 3, - "consume": 2, - "X": 2, - "E": 3, - "l": 1, - "w": 1, - "keyword": 1, - "Unescaped": 1, - "in_character_class": 2, - "literal.Complete": 2 - }, - "CMake": { - "cmake_minimum_required": 1, - "(": 8, - "VERSION": 1, - ")": 8, - "project": 1, - "Foo": 1, - "set": 2, - "CMAKE_SKIP_RPATH": 1, - "TRUE": 1, - "CMAKE_INSTALL_PREFIX": 1, - "add_subdirectory": 1, - "bar": 1, - "add_executable": 1, - "foo": 3, - "foo.c": 1, - "target_link_libraries": 1, - "pthread": 1, - "install": 1, - "TARGETS": 1, - "DESTINATION": 1, - "bin": 1 - }, - "COBOL": { - "program": 1, - "-": 19, - "id.": 1, - "hello.": 3, - "procedure": 1, - "division.": 1, - "display": 1, - ".": 3, - "stop": 1, - "run.": 1, - "COBOL": 7, - "TEST": 2, - "RECORD.": 1, - "USAGES.": 1, - "COMP": 5, - "PIC": 5, - "S9": 4, - "(": 5, - ")": 5, - "COMP.": 3, - "COMP2": 2, - "IDENTIFICATION": 2, - "DIVISION.": 4, - "PROGRAM": 2, - "ID.": 2, - "PROCEDURE": 2, - "DISPLAY": 2, - "STOP": 2, - "RUN.": 2 - }, - "CSS": { - ".clearfix": 8, - "{": 1661, - "*zoom": 48, - ";": 4219, - "}": 1705, - "before": 48, - "after": 96, - "display": 135, - "table": 44, - "content": 66, - "line": 97, - "-": 8839, - "height": 141, - "clear": 32, - "both": 30, - ".hide": 12, - "text": 129, - "font": 142, - "/0": 2, - "a": 268, - "color": 711, - "transparent": 148, - "shadow": 254, - "none": 128, - "background": 770, - "border": 912, - ".input": 216, - "block": 133, - "level": 2, - "width": 215, - "%": 366, - "min": 14, - "px": 2535, - "webkit": 364, - "box": 264, - "sizing": 27, - "moz": 316, - "article": 2, - "aside": 2, - "details": 2, - "figcaption": 2, - "figure": 2, - "footer": 2, - "header": 12, - "hgroup": 2, - "nav": 2, - "section": 2, - "audio": 4, - "canvas": 2, - "video": 4, - "inline": 116, - "*display": 20, - "not": 6, - "(": 748, - "[": 384, - "controls": 2, - "]": 384, - ")": 748, - "html": 4, - "size": 104, - "adjust": 6, - "ms": 13, - "focus": 232, - "outline": 30, - "thin": 8, - "dotted": 10, - "#333": 6, - "auto": 50, - "ring": 6, - "offset": 6, - "hover": 144, - "active": 46, - "sub": 4, - "sup": 4, - "position": 342, - "relative": 18, - "vertical": 56, - "align": 72, - "baseline": 4, - "top": 376, - "em": 6, - "bottom": 309, - "img": 14, - "max": 18, - "middle": 20, - "interpolation": 2, - "mode": 2, - "bicubic": 2, - "#map_canvas": 2, - ".google": 2, - "maps": 2, - "button": 18, - "input": 336, - "select": 90, - "textarea": 76, - "margin": 424, - "*overflow": 3, - "visible": 8, - "normal": 18, - "inner": 37, - "padding": 174, - "type": 174, - "appearance": 6, - "cursor": 30, - "pointer": 12, - "label": 20, - "textfield": 2, - "search": 66, - "decoration": 33, - "cancel": 2, - "overflow": 21, - "@media": 2, - "print": 4, - "*": 2, - "important": 18, - "#000": 2, - "visited": 2, - "underline": 6, - "href": 28, - "attr": 4, - "abbr": 6, - "title": 10, - ".ir": 2, - "pre": 16, - "blockquote": 14, - "solid": 93, - "#999": 6, - "page": 6, - "break": 12, - "inside": 4, - "avoid": 6, - "thead": 38, - "group": 120, - "tr": 92, - "@page": 2, - "cm": 2, - "p": 14, - "h2": 14, - "h3": 14, - "orphans": 2, - "widows": 2, - "body": 3, - "family": 10, - "Helvetica": 6, - "Arial": 6, - "sans": 6, - "serif": 6, - "#333333": 26, - "#ffffff": 136, - "#0088cc": 24, - "#005580": 8, - ".img": 6, - "rounded": 2, - "radius": 534, - "polaroid": 2, - "#fff": 10, - "#ccc": 13, - "rgba": 409, - "circle": 18, - ".row": 126, - "left": 489, - "class*": 100, - "float": 84, - ".container": 32, - ".navbar": 332, - "static": 14, - "fixed": 36, - ".span12": 4, - ".span11": 4, - ".span10": 4, - ".span9": 4, - ".span8": 4, - ".span7": 4, - ".span6": 4, - ".span5": 4, - ".span4": 4, - ".span3": 4, - ".span2": 4, - ".span1": 4, - ".offset12": 6, - ".offset11": 6, - ".offset10": 6, - ".offset9": 6, - ".offset8": 6, - ".offset7": 6, - ".offset6": 6, - ".offset5": 6, - ".offset4": 6, - ".offset3": 6, - ".offset2": 6, - ".offset1": 6, - "fluid": 126, - "*margin": 70, - "first": 179, - "child": 301, - ".controls": 28, - "row": 20, - "+": 105, - "*width": 26, - ".pull": 16, - "right": 258, - ".lead": 2, - "weight": 28, - "small": 66, - "strong": 2, - "bold": 14, - "style": 21, - "italic": 4, - "cite": 2, - ".muted": 2, - "#999999": 50, - "a.muted": 4, - "#808080": 2, - ".text": 14, - "warning": 33, - "#c09853": 14, - "a.text": 16, - "#a47e3c": 4, - "error": 10, - "#b94a48": 20, - "#953b39": 6, - "info": 37, - "#3a87ad": 18, - "#2d6987": 6, - "success": 35, - "#468847": 18, - "#356635": 6, - "center": 17, - "h1": 11, - "h4": 20, - "h5": 6, - "h6": 6, - "inherit": 8, - "rendering": 2, - "optimizelegibility": 2, - ".page": 2, - "#eeeeee": 31, - "ul": 84, - "ol": 10, - "li": 205, - "ul.unstyled": 2, - "ol.unstyled": 2, - "list": 44, - "ul.inline": 4, - "ol.inline": 4, - "dl": 2, - "dt": 6, - "dd": 6, - ".dl": 12, - "horizontal": 60, - "hidden": 9, - "ellipsis": 2, - "white": 25, - "space": 23, - "nowrap": 14, - "hr": 2, - "data": 2, - "original": 2, - "help": 2, - "abbr.initialism": 2, - "transform": 4, - "uppercase": 4, - "blockquote.pull": 10, - "q": 4, - "address": 2, - "code": 6, - "Monaco": 2, - "Menlo": 2, - "Consolas": 2, - "monospace": 2, - "#d14": 2, - "#f7f7f9": 2, - "#e1e1e8": 2, - "word": 6, - "all": 10, - "wrap": 6, - "#f5f5f5": 26, - "pre.prettyprint": 2, - ".pre": 2, - "scrollable": 2, - "y": 2, - "scroll": 2, - ".label": 30, - ".badge": 30, - "empty": 7, - "a.label": 4, - "a.badge": 4, - "#f89406": 27, - "#c67605": 4, - "inverse": 110, - "#1a1a1a": 2, - ".btn": 506, - "mini": 34, - "collapse": 12, - "spacing": 3, - ".table": 180, - "th": 70, - "td": 66, - "#dddddd": 16, - "caption": 18, - "colgroup": 18, - "tbody": 68, - "condensed": 4, - "bordered": 76, - "separate": 4, - "*border": 8, - "topleft": 16, - "last": 118, - "topright": 16, - "tfoot": 12, - "bottomleft": 16, - "bottomright": 16, - "striped": 13, - "nth": 4, - "odd": 4, - "#f9f9f9": 12, - "cell": 2, - "td.span1": 2, - "th.span1": 2, - "td.span2": 2, - "th.span2": 2, - "td.span3": 2, - "th.span3": 2, - "td.span4": 2, - "th.span4": 2, - "td.span5": 2, - "th.span5": 2, - "td.span6": 2, - "th.span6": 2, - "td.span7": 2, - "th.span7": 2, - "td.span8": 2, - "th.span8": 2, - "td.span9": 2, - "th.span9": 2, - "td.span10": 2, - "th.span10": 2, - "td.span11": 2, - "th.span11": 2, - "td.span12": 2, - "th.span12": 2, - "tr.success": 4, - "#dff0d8": 6, - "tr.error": 4, - "#f2dede": 6, - "tr.warning": 4, - "#fcf8e3": 6, - "tr.info": 4, - "#d9edf7": 6, - "#d0e9c6": 2, - "#ebcccc": 2, - "#faf2cc": 2, - "#c4e3f3": 2, - "form": 38, - "fieldset": 2, - "legend": 6, - "#e5e5e5": 28, - ".uneditable": 80, - "#555555": 18, - "#cccccc": 18, - "inset": 132, - "transition": 36, - "linear": 204, - ".2s": 16, - "o": 48, - ".075": 12, - ".6": 6, - "multiple": 2, - "#fcfcfc": 2, - "allowed": 4, - "placeholder": 18, - ".radio": 26, - ".checkbox": 26, - ".radio.inline": 6, - ".checkbox.inline": 6, - "medium": 2, - "large": 40, - "xlarge": 2, - "xxlarge": 2, - "append": 120, - "prepend": 82, - "input.span12": 4, - "textarea.span12": 2, - "input.span11": 4, - "textarea.span11": 2, - "input.span10": 4, - "textarea.span10": 2, - "input.span9": 4, - "textarea.span9": 2, - "input.span8": 4, - "textarea.span8": 2, - "input.span7": 4, - "textarea.span7": 2, - "input.span6": 4, - "textarea.span6": 2, - "input.span5": 4, - "textarea.span5": 2, - "input.span4": 4, - "textarea.span4": 2, - "input.span3": 4, - "textarea.span3": 2, - "input.span2": 4, - "textarea.span2": 2, - "input.span1": 4, - "textarea.span1": 2, - "disabled": 36, - "readonly": 10, - ".control": 150, - "group.warning": 32, - ".help": 44, - "#dbc59e": 6, - ".add": 36, - "on": 36, - "group.error": 32, - "#d59392": 6, - "group.success": 32, - "#7aba7b": 6, - "group.info": 32, - "#7ab5d3": 6, - "invalid": 12, - "#ee5f5b": 18, - "#e9322d": 2, - "#f8b9b7": 6, - ".form": 132, - "actions": 10, - "#595959": 2, - ".dropdown": 126, - "menu": 42, - ".popover": 14, - "z": 12, - "index": 14, - "toggle": 84, - ".active": 86, - "#a9dba9": 2, - "#46a546": 2, - "prepend.input": 22, - "input.search": 2, - "query": 22, - ".search": 22, - "*padding": 36, - "image": 187, - "gradient": 175, - "#e6e6e6": 20, - "from": 40, - "to": 75, - "repeat": 66, - "x": 30, - "filter": 57, - "progid": 48, - "DXImageTransform.Microsoft.gradient": 48, - "startColorstr": 30, - "endColorstr": 30, - "GradientType": 30, - "#bfbfbf": 4, - "*background": 36, - "enabled": 18, - "false": 18, - "#b3b3b3": 2, - ".3em": 6, - ".2": 12, - ".05": 24, - ".btn.active": 8, - ".btn.disabled": 4, - "#d9d9d9": 4, - "s": 25, - ".15": 24, - "default": 12, - "opacity": 15, - "alpha": 7, - "class": 26, - "primary.active": 6, - "warning.active": 6, - "danger.active": 6, - "success.active": 6, - "info.active": 6, - "inverse.active": 6, - "primary": 14, - "#006dcc": 2, - "#0044cc": 20, - "#002a80": 2, - "primary.disabled": 2, - "#003bb3": 2, - "#003399": 2, - "#faa732": 3, - "#fbb450": 16, - "#ad6704": 2, - "warning.disabled": 2, - "#df8505": 2, - "danger": 21, - "#da4f49": 2, - "#bd362f": 20, - "#802420": 2, - "danger.disabled": 2, - "#a9302a": 2, - "#942a25": 2, - "#5bb75b": 2, - "#62c462": 16, - "#51a351": 20, - "#387038": 2, - "success.disabled": 2, - "#499249": 2, - "#408140": 2, - "#49afcd": 2, - "#5bc0de": 16, - "#2f96b4": 20, - "#1f6377": 2, - "info.disabled": 2, - "#2a85a0": 2, - "#24748c": 2, - "#363636": 2, - "#444444": 10, - "#222222": 32, - "#000000": 14, - "inverse.disabled": 2, - "#151515": 12, - "#080808": 2, - "button.btn": 4, - "button.btn.btn": 6, - ".btn.btn": 6, - "link": 28, - "url": 4, - "no": 2, - ".icon": 288, - ".nav": 308, - "pills": 28, - "submenu": 8, - "glass": 2, - "music": 2, - "envelope": 2, - "heart": 2, - "star": 4, - "user": 2, - "film": 2, - "ok": 6, - "remove": 6, - "zoom": 5, - "in": 10, - "out": 10, - "off": 4, - "signal": 2, - "cog": 2, - "trash": 2, - "home": 2, - "file": 2, - "time": 2, - "road": 2, - "download": 4, - "alt": 6, - "upload": 2, - "inbox": 2, - "play": 4, - "refresh": 2, - "lock": 2, - "flag": 2, - "headphones": 2, - "volume": 6, - "down": 12, - "up": 12, - "qrcode": 2, - "barcode": 2, - "tag": 2, - "tags": 2, - "book": 2, - "bookmark": 2, - "camera": 2, - "justify": 2, - "indent": 4, - "facetime": 2, - "picture": 2, - "pencil": 2, - "map": 2, - "marker": 2, - "tint": 2, - "edit": 2, - "share": 4, - "check": 2, - "move": 2, - "step": 4, - "backward": 6, - "fast": 4, - "pause": 2, - "stop": 32, - "forward": 6, - "eject": 2, - "chevron": 8, - "plus": 4, - "sign": 16, - "minus": 4, - "question": 2, - "screenshot": 2, - "ban": 2, - "arrow": 21, - "resize": 8, - "full": 2, - "asterisk": 2, - "exclamation": 2, - "gift": 2, - "leaf": 2, - "fire": 2, - "eye": 4, - "open": 4, - "close": 4, - "plane": 2, - "calendar": 2, - "random": 2, - "comment": 2, - "magnet": 2, - "retweet": 2, - "shopping": 2, - "cart": 2, - "folder": 4, - "hdd": 2, - "bullhorn": 2, - "bell": 2, - "certificate": 2, - "thumbs": 4, - "hand": 8, - "globe": 2, - "wrench": 2, - "tasks": 2, - "briefcase": 2, - "fullscreen": 2, - "toolbar": 8, - ".btn.large": 4, - ".large.dropdown": 2, - "group.open": 18, - ".125": 6, - ".btn.dropdown": 2, - "primary.dropdown": 2, - "warning.dropdown": 2, - "danger.dropdown": 2, - "success.dropdown": 2, - "info.dropdown": 2, - "inverse.dropdown": 2, - ".caret": 70, - ".dropup": 2, - ".divider": 8, - "tabs": 94, - "#ddd": 38, - "stacked": 24, - "tabs.nav": 12, - "pills.nav": 4, - ".dropdown.active": 4, - ".open": 8, - "li.dropdown.open.active": 14, - "li.dropdown.open": 14, - ".tabs": 62, - ".tabbable": 8, - ".tab": 8, - "below": 18, - "pane": 4, - ".pill": 6, - ".disabled": 22, - "*position": 2, - "*z": 2, - "#fafafa": 2, - "#f2f2f2": 22, - "#d4d4d4": 2, - "collapse.collapse": 2, - ".brand": 14, - "#777777": 12, - ".1": 24, - ".nav.pull": 2, - "navbar": 28, - "#ededed": 2, - "navbar.active": 8, - "navbar.disabled": 4, - "bar": 21, - "absolute": 8, - "li.dropdown": 12, - "li.dropdown.active": 8, - "menu.pull": 8, - "#1b1b1b": 2, - "#111111": 18, - "#252525": 2, - "#515151": 2, - "query.focused": 2, - "#0e0e0e": 2, - "#040404": 18, - ".breadcrumb": 8, - ".pagination": 78, - "span": 38, - "centered": 2, - ".pager": 34, - ".next": 4, - ".previous": 4, - ".thumbnails": 12, - ".thumbnail": 6, - "ease": 12, - "a.thumbnail": 4, - ".caption": 2, - ".alert": 34, - "#fbeed5": 2, - ".close": 2, - "#d6e9c6": 2, - "#eed3d7": 2, - "#bce8f1": 2, - "@": 8, - "keyframes": 8, - "progress": 15, - "stripes": 15, - "@keyframes": 2, - ".progress": 22, - "#f7f7f7": 3, - ".bar": 22, - "#0e90d2": 2, - "#149bdf": 11, - "#0480be": 10, - "deg": 20, - ".progress.active": 1, - "animation": 5, - "infinite": 5, - "#dd514c": 1, - "#c43c35": 5, - "danger.progress": 1, - "#5eb95e": 1, - "#57a957": 5, - "success.progress": 1, - "#4bb1cf": 1, - "#339bb9": 5, - "info.progress": 1, - "warning.progress": 1, - ".hero": 3, - "unit": 3, - "letter": 1, - ".media": 11, - "object": 1, - "heading": 1, - ".tooltip": 7, - "visibility": 1, - ".tooltip.in": 1, - ".tooltip.top": 2, - ".tooltip.right": 2, - ".tooltip.bottom": 2, - ".tooltip.left": 2, - "clip": 3, - ".popover.top": 3, - ".popover.right": 3, - ".popover.bottom": 3, - ".popover.left": 3, - "#ebebeb": 1, - ".arrow": 12, - ".modal": 5, - "backdrop": 2, - "backdrop.fade": 1, - "backdrop.fade.in": 1 - }, - "Ceylon": { - "by": 1, - "(": 5, - ")": 5, - "shared": 5, - "void": 1, - "test": 1, - "{": 3, - "print": 1, - ";": 4, - "}": 3, - "class": 1, - "Test": 2, - "name": 3, - "satisfies": 1, - "Comparable": 1, - "": 1, - "String": 2, - "actual": 2, - "string": 1, - "Comparison": 1, - "compare": 1, - "other": 1, - "return": 1, - "<=>": 1, - "other.name": 1 - }, - "Chapel": { - "//": 150, - "config": 10, - "const": 59, - "n": 16, - ";": 516, - "pi": 1, - "solarMass": 7, - "*": 260, - "pi**2": 1, - "daysPerYear": 13, - "record": 1, - "body": 6, - "{": 122, - "var": 72, - "pos": 5, - "*real": 40, - "v": 9, - "mass": 12, - "real": 60, - "does": 1, - "not": 1, - "change": 2, - "after": 1, - "it": 1, - "is": 1, - "set": 4, - "up": 1, - "}": 120, - "bodies": 8, - "[": 920, - "new": 7, - "(": 626, - ")": 626, - "e": 84, - "+": 334, - "-": 345, - "]": 920, - "numbodies": 5, - "bodies.numElements": 1, - "proc": 44, - "main": 3, - "initSun": 2, - "writef": 2, - "energy": 5, - "for": 36, - "do": 62, - "advance": 2, - "p": 10, - "reduce": 2, - "b": 4, - "in": 76, - "b.v": 2, - "b.mass": 1, - ".v": 1, - "/": 26, - "dt": 14, - "i": 250, - "j": 25, - "updateVelocities": 2, - "inline": 5, - "ref": 19, - "b1": 2, - "b2": 2, - "dpos": 4, - "b1.pos": 2, - "b2.pos": 2, - "mag": 3, - "sqrt": 10, - "sumOfSquares": 4, - "**3": 1, - "b1.v": 2, - "b2.mass": 2, - "b2.v": 1, - "b1.mass": 3, - "b.pos": 1, - "return": 15, - "x": 111, - "**2": 6, - "use": 5, - "BlockDist": 2, - "CyclicDist": 1, - "BlockCycDist": 1, - "ReplicatedDist": 2, - "DimensionalDist2D": 2, - "ReplicatedDim": 2, - "BlockCycDim": 1, - "Space": 12, - "BlockSpace": 2, - "dmapped": 8, - "Block": 4, - "boundingBox": 2, - "BA": 3, - "int": 21, - "forall": 43, - "ba": 4, - "here.id": 7, - "writeln": 53, - "MyLocaleView": 5, - "#numLocales": 1, - "MyLocales": 5, - "locale": 1, - "reshape": 2, - "Locales": 6, - "BlockSpace2": 2, - "targetLocales": 1, - "BA2": 3, - "CyclicSpace": 2, - "Cyclic": 1, - "startIdx": 2, - "Space.low": 5, - "CA": 3, - "ca": 2, - "BlkCycSpace": 2, - "BlockCyclic": 1, - "blocksize": 1, - "BCA": 3, - "bca": 2, - "ReplicatedSpace": 2, - "RA": 11, - "ra": 4, - "RA.numElements": 1, - "A": 13, - "i*100": 1, - "on": 7, - "here": 3, - "LocaleSpace.high": 3, - "nl1": 2, - "nl2": 2, - "if": 98, - "numLocales": 5, - "then": 80, - "else": 16, - "numLocales/2": 1, - "#nl1": 2, - "#nl2": 1, - "#nl1*nl2": 1, - "DimReplicatedBlockcyclicSpace": 2, - "BlockCyclicDim": 1, - "lowIdx": 1, - "blockSize": 1, - "DRBA": 3, - "locId1": 2, - "drba": 2, - "Helper": 2, - "print": 5, - "to": 9, - "the": 10, - "console": 1, - "Random": 1, - "Time": 2, - "random": 1, - "number": 1, - "generation": 1, - "and": 4, - "Timer": 2, - "class": 1, - "timer": 2, - "time": 9, - "sort": 1, - "**15": 1, - "size": 1, - "of": 3, - "array": 4, - "be": 2, - "sorted": 1, - "thresh": 6, - "recursive": 1, - "depth": 1, - "serialize": 1, - "verbose": 7, - "out": 1, - "this": 2, - "many": 1, - "elements": 3, - "timing": 6, - "bool": 1, - "true": 5, - "false": 4, - "disable": 1, - "numbers": 1, - "fillRandom": 1, - "timer.start": 1, - "pqsort": 4, - "timer.stop": 1, - "timer.elapsed": 1, - "<": 42, - "halt": 5, - "arr": 32, - "low": 12, - "arr.domain.low": 1, - "high": 14, - "arr.domain.high": 1, - "where": 2, - "arr.rank": 2, - "bubbleSort": 2, - "pivotVal": 9, - "findPivot": 2, - "pivotLoc": 3, - "partition": 2, - "serial": 1, - "cobegin": 1, - "mid": 7, - "<=>": 7, - "ilo": 9, - "ihi": 6, - "while": 4, - "low..high": 2, - "get": 3, - "routines": 1, - "benchmarking": 1, - "block": 1, - "distributed": 1, - "arrays": 6, - "luleshInit": 1, - "initialization": 1, - "code": 1, - "data": 1, - "param": 25, - "useBlockDist": 5, - "CHPL_COMM": 1, - "use3DRepresentation": 4, - "useSparseMaterials": 3, - "printWarnings": 3, - "&&": 9, - "luleshInit.filename": 1, - "initialEnergy": 2, - "initial": 1, - "value": 1, - "showProgress": 3, - "values": 1, - "each": 1, - "step": 1, - "debug": 8, - "various": 1, - "info": 1, - "doTiming": 4, - "timestep": 1, - "loop": 2, - "printCoords": 2, - "final": 1, - "computed": 1, - "coordinates": 2, - "XI_M": 2, - "XI_M_SYMM": 4, - "XI_M_FREE": 3, - "XI_P": 2, - "c": 7, - "XI_P_SYMM": 3, - "XI_P_FREE": 3, - "ETA_M": 2, - "ETA_M_SYMM": 4, - "ETA_M_FREE": 3, - "ETA_P": 2, - "c0": 1, - "ETA_P_SYMM": 3, - "ETA_P_FREE": 3, - "ZETA_M": 2, - "ZETA_M_SYMM": 4, - "ZETA_M_FREE": 3, - "ZETA_P": 2, - "xc00": 1, - "ZETA_P_SYMM": 3, - "ZETA_P_FREE": 3, - "numElems": 2, - "numNodes": 1, - "initProblemSize": 1, - "ElemSpace": 4, - "#elemsPerEdge": 3, - "#numElems": 1, - "NodeSpace": 4, - "#nodesPerEdge": 3, - "#numNodes": 1, - "Elems": 45, - "Nodes": 16, - "y": 107, - "z": 107, - "nodesPerElem": 6, - "elemToNode": 7, - "nodesPerElem*index": 1, - "lxim": 3, - "lxip": 3, - "letam": 3, - "letap": 3, - "lzetam": 3, - "lzetap": 3, - "index": 4, - "XSym": 4, - "YSym": 4, - "ZSym": 4, - "sparse": 3, - "subdomain": 3, - "u_cut": 5, - "hgcoef": 1, - "qstop": 2, - "monoq_max_slope": 7, - "monoq_limiter_mult": 7, - "e_cut": 3, - "p_cut": 6, - "ss4o3": 1, - "/3.0": 2, - "q_cut": 2, - "v_cut": 2, - "qlc_monoq": 2, - "qqc_monoq": 2, - "qqc": 1, - "qqc2": 1, - "qqc**2": 1, - "eosvmax": 14, - "eosvmin": 9, - "pmin": 7, - "emin": 7, - "dvovmax": 1, - "refdens": 3, - "deltatimemultlb": 1, - "deltatimemultub": 1, - "dtmax": 1, - "stoptime": 3, - "maxcycles": 3, - "max": 2, - "dtfixed": 2, - "MatElems": 9, - "MatElemsType": 2, - "enumerateMatElems": 2, - "type": 1, - "Elems.type": 1, - "iter": 3, - "yield": 3, - "elemBC": 16, - "pressure": 1, - "q": 13, - "ql": 3, - "linear": 1, - "term": 2, - "qq": 3, - "quadratic": 1, - "//relative": 1, - "volume": 21, - "vnew": 9, - "volo": 5, - "reference": 1, - "delv": 3, - "m_vnew": 1, - "m_v": 1, - "vdov": 4, - "derivative": 1, - "over": 2, - "arealg": 2, - "elem": 3, - "characteristic": 2, - "length": 2, - "ss": 2, - "elemMass": 4, - "xd": 8, - "yd": 8, - "zd": 8, - "velocities": 2, - "xdd": 3, - "ydd": 3, - "zdd": 3, - "acceleration": 1, - "fx": 8, - "fy": 8, - "fz": 8, - "atomic": 2, - "forces": 1, - "nodalMass": 3, - "current": 1, - "deltatime": 3, - "variable": 1, - "increment": 1, - "dtcourant": 1, - "e20": 2, - "courant": 1, - "constraint": 2, - "dthydro": 1, - "cycle": 5, - "iteration": 1, - "count": 1, - "simulation": 1, - "initLulesh": 2, - "st": 4, - "getCurrentTime": 4, - "iterTime": 2, - "TimeIncrement": 2, - "LagrangeLeapFrog": 1, - "deprint": 3, - "format": 9, - "et": 3, - "/cycle": 1, - "outfile": 1, - "open": 1, - "iomode.cw": 1, - "writer": 1, - "outfile.writer": 1, - "fmtstr": 4, - "writer.writeln": 1, - "writer.close": 1, - "outfile.close": 1, - "initCoordinates": 1, - "initElemToNodeMapping": 1, - "initGreekVars": 1, - "initXSyms": 1, - "initYSyms": 1, - "initZSyms": 1, - "//calculated": 1, - "fly": 1, - "using": 1, - "elemToNodes": 3, - "initMasses": 2, - "octantCorner": 2, - "initBoundaryConditions": 2, - "massAccum": 3, - "eli": 18, - "x_local": 11, - "y_local": 11, - "z_local": 11, - "localizeNeighborNodes": 6, - "CalcElemVolume": 3, - "neighbor": 2, - ".add": 1, - ".read": 1, - "surfaceNode": 8, - "mask": 16, - "<<": 2, - "&": 18, - "f": 4, - "|": 14, - "xf0": 4, - "xcc": 4, - "check": 3, - "loc": 4, - "maxloc": 1, - "zip": 1, - "freeSurface": 3, - "initFreeSurface": 1, - "noi": 4, - "TripleProduct": 4, - "x1": 1, - "y1": 1, - "z1": 1, - "x2": 1, - "y2": 1, - "z2": 1, - "x3": 1, - "y3": 1, - "z3": 1, - "x1*": 1, - "y2*z3": 1, - "z2*y3": 1, - "x2*": 1, - "z1*y3": 1, - "y1*z3": 1, - "x3*": 1, - "y1*z2": 1, - "z1*y2": 1, - "dx61": 2, - "dy61": 2, - "dz61": 2, - "dx70": 2, - "dy70": 2, - "dz70": 2, - "dx63": 2, - "dy63": 2, - "dz63": 2, - "dx20": 2, - "dy20": 2, - "dz20": 2, - "dx50": 2, - "dy50": 2, - "dz50": 2, - "dx64": 2, - "dy64": 2, - "dz64": 2, - "dx31": 2, - "dy31": 2, - "dz31": 2, - "dx72": 2, - "dy72": 2, - "dz72": 2, - "dx43": 2, - "dy43": 2, - "dz43": 2, - "dx57": 2, - "dy57": 2, - "dz57": 2, - "dx14": 2, - "dy14": 2, - "dz14": 2, - "dx25": 2, - "dy25": 2, - "dz25": 2, - "InitStressTermsForElems": 1, - "sigxx": 2, - "sigyy": 2, - "sigzz": 2, - "D": 9, - "CalcElemShapeFunctionDerivatives": 2, - "b_x": 18, - "b_y": 18, - "b_z": 18, - "fjxxi": 5, - ".125": 9, - "fjxet": 6, - "fjxze": 5, - "fjyxi": 5, - "fjyet": 6, - "fjyze": 5, - "fjzxi": 5, - "fjzet": 6, - "fjzze": 5, - "cjxxi": 5, - "cjxet": 6, - "cjxze": 5, - "cjyxi": 5, - "cjyet": 6, - "cjyze": 5, - "cjzxi": 5, - "cjzet": 6, - "cjzze": 5, - "CalcElemNodeNormals": 1, - "pfx": 15, - "pfy": 15, - "pfz": 15, - "ElemFaceNormal": 7, - "n1": 23, - "n2": 23, - "n3": 23, - "n4": 23, - "bisectX0": 3, - "bisectY0": 3, - "bisectZ0": 3, - "bisectX1": 3, - "bisectY1": 3, - "bisectZ1": 3, - "areaX": 5, - "areaY": 5, - "areaZ": 5, - "rx": 6, - "ry": 6, - "rz": 6, - "//results": 1, - "SumElemStressesToNodeForces": 1, - "stress_xx": 2, - "stress_yy": 2, - "stress_zz": 2, - "CalcElemVolumeDerivative": 1, - "VoluDer": 9, - "n0": 13, - "n5": 13, - "ox": 1, - "oy": 1, - "oz": 1, - "ox/12.0": 1, - "oy/12.0": 1, - "oz/12.0": 1, - "dvdx": 10, - "dvdy": 10, - "dvdz": 10, - "CalcElemFBHourglassForce": 1, - "hourgam": 7, - "coefficient": 4, - "hgfx": 2, - "hgfy": 2, - "hgfz": 2, - "hx": 3, - "hy": 3, - "hz": 3, - "shx": 3, - "shy": 3, - "shz": 3, - "CalcElemCharacteristicLength": 2, - "AreaFace": 7, - "p0": 7, - "p1": 7, - "p2": 7, - "p3": 7, - "gx": 5, - "gy": 5, - "gz": 5, - "area": 2, - "charLength": 2, - "CalcElemVelocityGradient": 2, - "xvel": 25, - "yvel": 25, - "zvel": 25, - "detJ": 5, - "d": 12, - "inv_detJ": 10, - "dyddx": 2, - "dxddy": 2, - "dzddx": 2, - "dxddz": 2, - "dzddy": 2, - "dyddz": 2, - "CalcPressureForElems": 4, - "p_new": 17, - "bvc": 15, - "pbvc": 14, - "e_old": 7, - "compression": 10, - "vnewc": 22, - "c1s": 3, - "abs": 8, - "//impossible": 1, - "targetdt": 1, - "//don": 1, - "t": 3, - "have": 2, - "negative": 2, - "determ": 1, - "can": 2, - "we": 1, - "able": 1, - "write": 1, - "these": 1, - "as": 1, - "follows": 1, - "CalcVelocityForNodes": 1, - "local": 8, - "xdtmp": 4, - "ydtmp": 4, - "zdtmp": 4, - "CalcPositionForNodes": 1, - "ijk": 7, - "CalcLagrangeElements": 1, - "dxx": 6, - "dyy": 6, - "dzz": 6, - "CalcKinematicsForElems": 2, - "k": 20, - "vdovthird": 4, - "0": 5, - "all": 1, - "8": 4, - "6": 1, - "nodal": 2, - "from": 2, - "global": 3, - "copy": 2, - "into": 3, - "xd_local": 4, - "yd_local": 4, - "zd_local": 4, - "dt2": 4, - "5": 1, - "wish": 1, - "was": 1, - "too": 1, - "calculations": 1, - "relativeVolume": 3, - "1": 2, - "put": 1, - "velocity": 3, - "gradient": 3, - "quantities": 1, - "their": 1, - "2": 1, - "3": 1, - "sungeun": 1, - "Temporary": 1, - "reused": 1, - "throughout": 1, - "delv_xi": 12, - "delv_eta": 12, - "delv_zeta": 12, - "position": 1, - "delx_xi": 7, - "delx_eta": 7, - "delx_zeta": 7, - "CalcQForElems": 1, - "MONOTONIC": 1, - "Q": 1, - "option": 1, - "Calculate": 1, - "gradients": 2, - "CalcMonotonicQGradientsForElems": 2, - "Transfer": 2, - "veloctiy": 1, - "first": 1, - "order": 1, - "problem": 1, - "commElements": 1, - "CommElements": 1, - "monoQ": 1, - "*/": 1, - "CalcMonotonicQForElems": 2, - "ApplyMaterialPropertiesForElems": 1, - "matelm": 2, - "vc": 6, - "exit": 1, - "EvalEOSForElems": 2, - "UpdateVolumesForElems": 1, - "tmpV": 4, - "ptiny": 9, - "xl": 26, - "yl": 26, - "zl": 26, - "xvl": 26, - "yvl": 26, - "zvl": 26, - "vol": 5, - "norm": 20, - "ax": 7, - "ay": 7, - "az": 7, - "dxv": 4, - "dyv": 4, - "dzv": 4, - "dxj": 1, - "dyj": 1, - "dzj": 1, - "dxi": 1, - "dyi": 1, - "dzi": 1, - "dxk": 1, - "dyk": 1, - "dzk": 1, - "dyi*dzj": 1, - "dzi*dyj": 1, - "dzi*dxj": 1, - "dxi*dzj": 1, - "dxi*dyj": 1, - "dyi*dxj": 1, - "ax*ax": 3, - "ay*ay": 3, - "az*az": 3, - "ax*dxv": 3, - "ay*dyv": 3, - "az*dzv": 3, - "dyj*dzk": 1, - "dzj*dyk": 1, - "dzj*dxk": 1, - "dxj*dzk": 1, - "dxj*dyk": 1, - "dyj*dxk": 1, - "dyk*dzi": 1, - "dzk*dyi": 1, - "dzk*dxi": 1, - "dxk*dzi": 1, - "dxk*dyi": 1, - "dyk*dxi": 1, - "//got": 1, - "rid": 1, - "call": 1, - "through": 1, - "bcMask": 7, - "delvm": 27, - "delvp": 27, - "select": 6, - "when": 18, - "phixi": 10, - "phieta": 10, - "phizeta": 10, - "qlin": 4, - "qquad": 4, - "delvxxi": 4, - "delvxeta": 4, - "delvxzeta": 4, - "rho": 3, - "delvxxi**2": 1, - "phixi**2": 1, - "delvxeta**2": 1, - "phieta**2": 1, - "delvxzeta**2": 1, - "phizeta**2": 1, - "rho0": 8, - "delvc": 11, - "p_old": 8, - "q_old": 7, - "compHalfStep": 8, - "qq_old": 7, - "ql_old": 7, - "work": 5, - "e_new": 25, - "q_new": 11, - "vchalf": 2, - "CalcEnergyForElems": 2, - "CalcSoundSpeedForElems": 2, - "sixth": 2, - "pHalfStep": 5, - "vhalf": 1, - "ssc": 18, - "vhalf**2": 1, - "q_tilde": 4, - "enewc": 2, - "pnewc": 2, - "ssTmp": 4, - "elemToNodesTuple": 1, - "title": 2, - "string": 1 - }, - "Cirru": { - "set": 12, - "a": 22, - "(": 20, - "int": 36, - ")": 20, - "print": 38, - "self": 2, - "c": 9, - "child": 1, - "under": 2, - "parent": 1, - "get": 4, - "x": 2, - "just": 4, - "-": 4, - "code": 4, - "eval": 2, - "array": 14, - "string": 7, - "require": 1, - "./stdio.cr": 1, - "f": 3, - "block": 1, - "b": 7, - "call": 1, - "nothing": 1, - "map": 8, - "container": 3, - "m": 3, - "float": 1, - "bool": 6, - "true": 1, - "false": 1, - "yes": 1, - "no": 1 - }, - "Clean": { - "definition": 4, - "module": 9, - "GenMap": 4, - "import": 10, - "StdGeneric": 4, - "generic": 2, - "gMap": 19, - "a": 55, - "b": 7, - ".a": 11, - "-": 66, - ".b": 4, - "derive": 4, - "c": 2, - "UNIT": 2, - "PAIR": 4, - "EITHER": 3, - "CONS": 4, - "FIELD": 4, - "OBJECT": 4, - "{": 17, - "}": 17, - "[": 93, - "]": 92, - "(": 132, - ")": 134, - "monadicSemantics": 1, - "StdEnv": 4, - "GenHylo": 2, - "Op": 6, - "Plus": 2, - "|": 48, - "Minus": 2, - "Times": 2, - "Rem": 3, - "Equal": 2, - "LessThan": 3, - "Var": 9, - "String": 1, - "ExpP": 3, - "Int": 33, - "Exp": 5, - "Fix": 9, - "StmP": 3, - "Assign": 3, - "If": 3, - "While": 3, - "Seq": 3, - "Cont": 4, - "Stm": 2, - "Env": 3, - "Sem": 11, - "empty": 2, - "v": 12, - ".": 6, - "rtn": 4, - "i": 14, - "e.": 4, - "e": 16, - "infixl": 4, - "x": 36, - "y": 11, - "e2": 2, - ".y": 1, - "_.": 1, - "read": 4, - "write": 3, - "w.": 1, - "if": 5, - "w": 4, - "class": 1, - "sem": 9, - "operator": 8, - "+": 14, - "rem": 2, - "<": 3, - "instance": 14, - "where": 12, - "cata": 4, - "phi": 12, - "n": 8, - "op": 5, - "v1.": 1, - "return": 1, - "o": 6, - "v1": 1, - "s1": 4, - "s2": 4, - "stm": 2, - "s": 49, - "//": 4, - "Here": 1, - "the": 3, - "*finally*": 1, - "pays": 1, - "off": 1, - "D": 1, - "int": 2, - "In": 9, - "var": 6, - "o2": 7, - "assign": 4, - "ifte": 1, - "while": 2, - "seq": 3, - "cont": 1, - "pEuclides": 2, - "Start": 3, - "fst": 1, - "program": 2, - "start": 4, - "_": 5, - "infixr": 1, - "f": 26, - "g": 10, - "implementation": 3, - "streams": 2, - "zero": 4, - "Real": 28, - "//Infinite": 1, - "row": 1, - "of": 3, - "zeroes": 1, - "represented": 1, - "as": 1, - "list": 3, - "to": 2, - "ease": 1, - "computation": 1, - "one": 5, - "t": 23, - "*": 13, - "/": 3, - "invert": 5, - "X": 3, - "/s": 2, - "pow": 5, - "shuffle": 6, - "s*t": 1, - "stack": 2, - "Stack": 28, - "newStack": 3, - "push": 3, - "pushes": 3, - "pop": 4, - "popn": 3, - "top": 4, - "topn": 3, - "elements": 3, - "count": 3, - "fsieve": 1, - "StdClass": 2, - ";": 1, - "RWS": 1, - "StdInt": 2, - "StdReal": 1, - "NrOfPrimes": 3, - "The": 1, - "sieve": 1, - "algorithm": 1, - "generate": 1, - "an": 1, - "infinite": 1, - "all": 1, - "primes.": 1, - "Primes": 3, - "pr": 6, - "Sieve": 8, - "prs": 6, - "IsPrime": 4, - "toInt": 1, - "sqrt": 1, - "toReal": 1, - "Bool": 1, - "r": 2, - "bd": 3, - "True": 1, - "False": 1, - "Select": 2, - "is": 1, - "used": 1, - "get": 1, - "th": 1, - "prime": 1, - "from": 1, - "primes": 1, - "generated": 1, - "by": 1, - "Primes.": 1, - "*/": 1, - "Out": 1, - "u": 6, - "<=>": 1, - "hylo": 1, - ".f": 1, - "ana": 1, - "StdArray": 1, - "StdFunc": 1, - "_Array": 1, - "fx": 2, - "fy": 2, - "fl": 3, - "fr": 3, - "LEFT": 2, - "RIGHT": 2, - "xs": 4, - "mapArray": 2, - "abort": 2, - "drop": 1, - "take": 1, - "length": 1 - }, - "Clojure": { - "(": 258, - "defn": 14, - "rand": 2, - "[": 67, - "]": 67, - "scm*": 1, - "n": 9, - "random": 1, - "-": 70, - "real": 1, - ")": 259, - "clj": 1, - "ns": 2, - "c2.svg": 2, - "use": 3, - "c2.core": 2, - "only": 4, - "unify": 2, - "c2.maths": 2, - "Pi": 2, - "Tau": 2, - "radians": 2, - "per": 2, - "degree": 2, - "sin": 2, - "cos": 2, - "mean": 2, - "cljs": 3, - "require": 2, - "c2.dom": 1, - "as": 1, - "dom": 1, - ";": 353, - "Stub": 1, - "for": 4, - "float": 2, - "fn": 3, - "which": 2, - "does": 1, - "not": 9, - "exist": 1, - "on": 11, - "runtime": 1, - "def": 4, - "identity": 1, - "xy": 1, - "coordinates": 7, - "cond": 2, - "and": 8, - "vector": 1, - "count": 5, - "map": 3, - "x": 8, - "y": 1, - "prime": 2, - "any": 3, - "zero": 2, - "#": 14, - "rem": 2, - "%": 6, - "range": 3, - "while": 3, - "stops": 1, - "at": 2, - "the": 5, - "first": 2, - "collection": 1, - "element": 1, - "that": 1, - "evaluates": 1, - "to": 2, - "false": 6, - "like": 1, - "take": 1, - "defprotocol": 1, - "ISound": 4, - "sound": 5, - "deftype": 2, - "Cat": 1, - "_": 4, - "Dog": 1, - "extend": 1, - "type": 8, - "default": 1, - "into": 3, - "array": 3, - "aseq": 8, - "nil": 3, - "let": 3, - "a": 7, - "make": 1, - "loop": 2, - "seq": 1, - "i": 20, - "if": 3, - "<": 1, - "do": 15, - "aset": 1, - "recur": 1, - "next": 1, - "inc": 2, - "html": 2, - "head": 2, - "meta": 3, - "{": 17, - "charset": 2, - "}": 17, - "link": 2, - "rel": 2, - "href": 6, - "script": 1, - "src": 1, - "body": 2, - "div.nav": 1, - "p": 4, - "deftest": 1, - "function": 1, - "tests": 1, - "is": 7, - "true": 5, - "contains": 1, - "foo": 6, - "bar": 4, - "select": 1, - "keys": 2, - "baz": 4, - "vals": 1, - "filter": 2, - "Copyright": 1, - "c": 1, - "Alan": 1, - "Dipert": 1, - "Micha": 1, - "Niskin.": 1, - "All": 1, - "rights": 1, - "reserved.": 1, - "The": 1, - "distribution": 1, - "terms": 2, - "this": 6, - "software": 2, - "are": 2, - "covered": 1, - "by": 4, - "Eclipse": 1, - "Public": 1, - "License": 1, - "http": 2, - "//opensource.org/licenses/eclipse": 1, - "php": 1, - "can": 1, - "be": 2, - "found": 1, - "in": 4, - "file": 1, - "epl": 1, - "v10.html": 1, - "root": 1, - "of": 2, - "distribution.": 1, - "By": 1, - "using": 1, - "fashion": 1, - "you": 1, - "agreeing": 1, - "bound": 1, - "license.": 1, - "You": 1, - "must": 1, - "remove": 3, - "notice": 1, - "or": 2, - "other": 1, - "from": 1, - "software.": 1, - "page": 2, - "refer": 4, - "clojure": 1, - "exclude": 1, - "nth": 2, - "tailrecursion.hoplon.reload": 1, - "reload": 2, - "all": 5, - "tailrecursion.hoplon.util": 1, - "name": 1, - "pluralize": 2, - "tailrecursion.hoplon.storage": 1, - "atom": 1, - "local": 3, - "storage": 2, - "utility": 1, - "functions": 2, - "declare": 1, - "route": 11, - "state": 15, - "editing": 13, - "mapvi": 2, - "comp": 1, - "vec": 2, - "indexed": 1, - "dissocv": 2, - "v": 15, - "z": 4, - "dec": 1, - "neg": 1, - "pop": 1, - "pos": 1, - "subvec": 2, - "decorate": 2, - "todo": 10, - "done": 12, - "completed": 12, - "text": 14, - "assoc": 4, - "visible": 2, - "empty": 8, - "persisted": 1, - "cell": 12, - "AKA": 1, - "stem": 1, - "store": 1, - "cells": 2, - "defc": 6, - "loaded": 1, - "formula": 1, - "computed": 1, - "active": 5, - "plural": 1, - "item": 1, - "todos": 2, - "list": 1, - "transition": 1, - "t": 5, - "destroy": 3, - "swap": 6, - "clear": 2, - "&": 1, - "new": 5, - "when": 3, - "conj": 1, - "mapv": 1, - "reset": 1, - "lang": 1, - "equiv": 1, - "content": 1, - "title": 1, - "noscript": 1, - "div": 3, - "id": 20, - "section": 2, - "header": 1, - "h1": 1, - "form": 2, - "submit": 2, - "val": 4, - "value": 3, - "input": 4, - "autofocus": 1, - "placeholder": 1, - "blur": 2, - "toggle": 4, - "attr": 2, - "checked": 2, - "click": 4, - "label": 2, - "ul": 2, - "tpl": 1, - "reverse": 1, - "bind": 1, - "ids": 1, - "done#": 3, - "edit#": 3, - "bindings": 1, - "edit": 3, - "show": 2, - "li": 4, - "class": 8, - "dblclick": 1, - "@i": 6, - "button": 2, - "focus": 1, - "@edit": 2, - "change": 1, - "footer": 2, - "span": 2, - "strong": 1, - "selected": 3 - }, - "CoffeeScript": { - "#": 35, - "{": 32, - "Rewriter": 2, - "INVERSES": 2, - "}": 35, - "require": 21, - "count": 5, - "starts": 1, - "compact": 1, - "last": 3, - "exports.Lexer": 1, - "class": 11, - "Lexer": 3, - "tokenize": 1, - "(": 200, - "code": 20, - "opts": 1, - ")": 203, - "-": 114, - "if": 103, - "WHITESPACE.test": 1, - "code.replace": 1, - "/": 44, - "r/g": 1, - ".replace": 3, - "TRAILING_SPACES": 2, - "@code": 1, - "The": 7, - "remainder": 1, - "of": 7, - "the": 4, - "source": 5, - "code.": 1, - "@line": 4, - "opts.line": 1, - "or": 22, - "current": 5, - "line.": 1, - "@indent": 3, - "indentation": 3, - "level.": 3, - "@indebt": 1, - "over": 1, - "at": 2, - "@outdebt": 1, - "under": 1, - "outdentation": 1, - "@indents": 1, - "[": 136, - "]": 136, - "stack": 4, - "all": 1, - "levels.": 1, - "@ends": 1, - "for": 14, - "pairing": 1, - "up": 1, - "tokens.": 1, - "@tokens": 7, - "Stream": 1, - "parsed": 1, - "tokens": 5, - "in": 32, - "form": 1, - "value": 25, - "line": 6, - ".": 13, - "i": 8, - "while": 4, - "@chunk": 9, - "i..": 1, - "+": 31, - "@identifierToken": 1, - "@commentToken": 1, - "@whitespaceToken": 1, - "@lineToken": 1, - "@heredocToken": 1, - "@stringToken": 1, - "@numberToken": 1, - "@regexToken": 1, - "@jsToken": 1, - "@literalToken": 1, - "@closeIndentation": 1, - "@error": 10, - "tag": 33, - "@ends.pop": 1, - "return": 29, - "opts.rewrite": 1, - "is": 36, - "off": 1, - "new": 12, - ".rewrite": 1, - "identifierToken": 1, - "unless": 19, - "match": 23, - "IDENTIFIER.exec": 1, - "input": 1, - "id": 16, - "colon": 3, - "and": 20, - "@tag": 3, - "@token": 12, - "id.length": 1, - "forcedIdentifier": 4, - "prev": 17, - "not": 4, - "prev.spaced": 3, - "JS_KEYWORDS": 1, - "COFFEE_KEYWORDS": 1, - "id.toUpperCase": 1, - "LINE_BREAK": 2, - "else": 53, - "@seenFor": 4, - "yes": 5, - "UNARY": 4, - "RELATION": 3, - "isnt": 7, - "no": 3, - "@value": 1, - "@tokens.pop": 1, - "JS_FORBIDDEN": 1, - "String": 1, - "id.reserved": 1, - "RESERVED": 3, - "COFFEE_ALIAS_MAP": 1, - "COFFEE_ALIASES": 1, - "switch": 7, - "when": 16, - "then": 24, - "input.length": 1, - "numberToken": 1, - "NUMBER.exec": 1, - "number": 13, - "BOX": 1, - "/.test": 4, - "/E/.test": 1, - "x/.test": 1, - "d*": 1, - "d": 2, - "lexedLength": 2, - "number.length": 1, - "octalLiteral": 2, - "o": 4, - "/.exec": 2, - "parseInt": 5, - ".toString": 3, - "binaryLiteral": 2, - "b": 1, - "stringToken": 1, - "@chunk.charAt": 3, - "SIMPLESTR.exec": 1, - "string": 9, - "MULTILINER": 2, - "@balancedString": 1, - "<": 6, - "string.indexOf": 1, - "@interpolateString": 2, - "@escapeLines": 1, - "octalEsc": 1, - "|": 21, - "*": 21, - "string.length": 1, - "heredocToken": 1, - "HEREDOC.exec": 1, - "heredoc": 4, - "quote": 5, - "heredoc.charAt": 1, - "doc": 11, - "@sanitizeHeredoc": 2, - "indent": 7, - "null": 15, - "<=>": 1, - "indexOf": 1, - "interpolateString": 1, - "token": 1, - "STRING": 2, - "makeString": 1, - "n": 16, - "length": 4, - "Matches": 1, - "consumes": 1, - "comments": 1, - "commentToken": 1, - "@chunk.match": 1, - "COMMENT": 2, - "comment": 2, - "here": 3, - "herecomment": 4, - "true": 8, - "Array": 1, - ".join": 2, - "comment.length": 1, - "jsToken": 1, - "JSTOKEN.exec": 1, - "script": 7, - "script.length": 1, - "regexToken": 1, - "HEREGEX.exec": 1, - "@heregexToken": 1, - "NOT_REGEX": 2, - "NOT_SPACED_REGEX": 2, - "REGEX.exec": 1, - "regex": 5, - "flags": 2, - "..1": 1, - "match.length": 1, - "heregexToken": 1, - "heregex": 1, - "body": 2, - "body.indexOf": 1, - "re": 1, - "body.replace": 1, - "HEREGEX_OMIT": 3, - "//g": 1, - "re.match": 1, - "*/": 2, - "heregex.length": 1, - "@tokens.push": 1, - "tokens.push": 1, - "value...": 1, - "continue": 3, - "value.replace": 2, - "/g": 3, - "spaced": 1, - "reserved": 1, - "word": 1, - "value.length": 2, - "MATH": 3, - "COMPARE": 3, - "COMPOUND_ASSIGN": 2, - "SHIFT": 3, - "LOGIC": 3, - ".spaced": 1, - "CALLABLE": 2, - "INDEXABLE": 2, - "@ends.push": 1, - "@pair": 1, - "sanitizeHeredoc": 1, - "options": 16, - "HEREDOC_ILLEGAL.test": 1, - "doc.indexOf": 1, - "HEREDOC_INDENT.exec": 1, - "attempt": 2, - "attempt.length": 1, - "indent.length": 1, - "doc.replace": 2, - "///": 12, - "///g": 1, - "n/": 1, - "tagParameters": 1, - "this": 6, - "tokens.length": 1, - "tok": 5, - "stack.push": 1, - "stack.length": 1, - "stack.pop": 2, - "closeIndentation": 1, - "@outdentToken": 1, - "balancedString": 1, - "str": 1, - "end": 2, - "continueCount": 3, - "str.length": 1, - "letter": 1, - "str.charAt": 1, - "missing": 1, - "starting": 1, - "Hello": 1, - "name.capitalize": 1, - "OUTDENT": 1, - "THROW": 1, - "EXTENDS": 1, - "&": 4, - "false": 4, - "delete": 1, - "typeof": 2, - "instanceof": 2, - "throw": 3, - "break": 1, - "debugger": 1, - "do": 2, - "try": 3, - "catch": 2, - "finally": 2, - "extends": 6, - "super": 4, - "undefined": 1, - "until": 1, - "loop": 1, - "by": 1, - "&&": 1, - "||": 3, - "case": 1, - "default": 1, - "function": 2, - "var": 1, - "void": 1, - "with": 1, - "const": 1, - "let": 2, - "enum": 1, - "export": 1, - "import": 1, - "native": 1, - "__hasProp": 1, - "__extends": 1, - "__slice": 1, - "__bind": 1, - "__indexOf": 1, - "implements": 1, - "interface": 1, - "package": 1, - "private": 1, - "protected": 1, - "public": 1, - "static": 1, - "yield": 1, - "arguments": 1, - "eval": 2, - "s": 10, - "S": 10, - "OPERATOR": 1, - "%": 1, - "compound": 1, - "assign": 1, - "compare": 1, - "zero": 1, - "fill": 1, - "right": 1, - "shift": 2, - "doubles": 1, - "logic": 1, - "soak": 1, - "access": 1, - "range": 1, - "splat": 1, - "WHITESPACE": 1, - "###": 4, - "s*#": 1, - "##": 1, - ".*": 1, - "CODE": 1, - "MULTI_DENT": 1, - "SIMPLESTR": 1, - "JSTOKEN": 1, - "REGEX": 1, - "disallow": 1, - "leading": 1, - "whitespace": 1, - "equals": 1, - "signs": 1, - "every": 1, - "other": 1, - "thing": 1, - "anything": 1, - "escaped": 1, - "character": 1, - "imgy": 2, - "w": 2, - "HEREGEX": 1, - "#.*": 1, - "n/g": 1, - "HEREDOC_INDENT": 1, - "HEREDOC_ILLEGAL": 1, - "//": 1, - "LINE_CONTINUER": 1, - "s*": 1, - "BOOL": 1, - "NOT_REGEX.concat": 1, - "CALLABLE.concat": 1, - "opposite": 2, - "square": 4, - "x": 6, - "list": 2, - "math": 1, - "root": 1, - "Math.sqrt": 1, - "cube": 1, - "race": 1, - "winner": 2, - "runners...": 1, - "print": 1, - "runners": 1, - "alert": 4, - "elvis": 1, - "cubes": 1, - "math.cube": 1, - "num": 2, - "###*": 1, - "@cjsx": 1, - "React.DOM": 1, - "define": 1, - "React": 1, - "ExampleStore": 3, - "ExampleActions": 1, - "ReactExampleTable": 1, - "ReactExampleComponent": 1, - "React.createClass": 1, - "mixins": 1, - "ListenMixin": 1, - "getInitialState": 1, - "rows": 3, - "ExampleStore.getRows": 2, - "meta": 3, - "ExampleStore.getMeta": 2, - "componentWillMount": 1, - "@listenTo": 1, - "componentDidMount": 1, - "ExampleActions.getExampleData": 1, - "onStoreChange": 1, - "this.isMounted": 1, - "@setState": 1, - "componentWillUnmount": 1, - "@stopListening": 1, - "render": 1, - "
": 1, - "className=": 1, - "
": 2, - "": 1, - "@state.title": 1, - "": 1, - "": 1, - "rows=": 1, - "meta=": 1, - "
": 1, - "async": 1, - "fs": 2, - "nack": 1, - "bufferLines": 3, - "pause": 2, - "sourceScriptEnv": 3, - "join": 8, - "exists": 5, - "basename": 2, - "resolve": 2, - "module.exports": 1, - "RackApplication": 1, - "constructor": 6, - "@configuration": 1, - "@root": 8, - "@firstHost": 1, - "@logger": 1, - "@configuration.getLogger": 1, - "@readyCallbacks": 3, - "@quitCallbacks": 3, - "@statCallbacks": 3, - "ready": 1, - "callback": 35, - "@state": 11, - "@readyCallbacks.push": 1, - "@initialize": 2, - "quit": 1, - "@quitCallbacks.push": 1, - "@terminate": 2, - "queryRestartFile": 1, - "fs.stat": 1, - "err": 20, - "stats": 1, - "@mtime": 5, - "lastMtime": 2, - "stats.mtime.getTime": 1, - "setPoolRunOnceFlag": 1, - "@statCallbacks.length": 1, - "alwaysRestart": 2, - "@pool.runOnce": 1, - "statCallback": 2, - "@statCallbacks.push": 1, - "loadScriptEnvironment": 1, - "env": 18, - "async.reduce": 1, - "filename": 6, - "scriptExists": 2, - "loadRvmEnvironment": 1, - "rvmrcExists": 2, - "rvm": 1, - "@configuration.rvmPath": 1, - "rvmExists": 2, - "libexecPath": 1, - "before": 2, - ".trim": 1, - "loadEnvironment": 1, - "@queryRestartFile": 2, - "@loadScriptEnvironment": 1, - "@configuration.env": 1, - "@loadRvmEnvironment": 1, - "initialize": 1, - "@quit": 3, - "@loadEnvironment": 1, - "@logger.error": 3, - "err.message": 2, - "@pool": 2, - "nack.createPool": 1, - "size": 1, - ".POW_WORKERS": 1, - "@configuration.workers": 1, - "idle": 1, - ".POW_TIMEOUT": 1, - "@configuration.timeout": 1, - "@pool.stdout": 1, - "@logger.info": 1, - "@pool.stderr": 1, - "@logger.warning": 1, - "@pool.on": 2, - "process": 2, - "@logger.debug": 2, - "readyCallback": 2, - "terminate": 1, - "@ready": 3, - "@pool.quit": 1, - "quitCallback": 2, - "handle": 1, - "req": 4, - "res": 3, - "next": 3, - "resume": 2, - "@setPoolRunOnceFlag": 1, - "@restartIfNecessary": 1, - "req.proxyMetaVariables": 1, - "SERVER_PORT": 1, - "@configuration.dstPort.toString": 1, - "@pool.proxy": 1, - "restart": 1, - "restartIfNecessary": 1, - "mtimeChanged": 2, - "@restart": 1, - "writeRvmBoilerplate": 1, - "powrc": 3, - "boilerplate": 2, - "@constructor.rvmBoilerplate": 1, - "fs.readFile": 1, - "contents": 2, - "contents.indexOf": 1, - "fs.writeFile": 1, - "@rvmBoilerplate": 1, - "path": 3, - "parser": 1, - "vm": 1, - "require.extensions": 3, - "module": 1, - "content": 4, - "compile": 5, - "fs.readFileSync": 1, - "module._compile": 1, - "require.registerExtension": 2, - "exports.VERSION": 1, - "exports.RESERVED": 1, - "exports.helpers": 2, - "exports.compile": 1, - "merge": 1, - "js": 5, - "parser.parse": 3, - "lexer.tokenize": 3, - ".compile": 1, - "options.header": 1, - "options.filename": 5, - "header": 1, - "exports.tokens": 1, - "exports.nodes": 1, - "exports.run": 1, - "mainModule": 1, - "require.main": 1, - "mainModule.filename": 4, - "process.argv": 1, - "fs.realpathSync": 2, - "mainModule.moduleCache": 1, - "mainModule.paths": 1, - "._nodeModulePaths": 1, - "path.dirname": 2, - "path.extname": 1, - "mainModule._compile": 2, - "exports.eval": 1, - "code.trim": 1, - "Script": 2, - "vm.Script": 1, - "options.sandbox": 4, - "Script.createContext": 2, - ".constructor": 1, - "sandbox": 8, - "k": 4, - "v": 4, - "own": 2, - "sandbox.global": 1, - "sandbox.root": 1, - "sandbox.GLOBAL": 1, - "global": 3, - "sandbox.__filename": 3, - "sandbox.__dirname": 1, - "sandbox.module": 2, - "sandbox.require": 2, - "Module": 2, - "_module": 3, - "options.modulename": 1, - "_require": 2, - "Module._load": 1, - "_module.filename": 1, - "r": 4, - "Object.getOwnPropertyNames": 1, - "_require.paths": 1, - "_module.paths": 1, - "Module._nodeModulePaths": 1, - "process.cwd": 1, - "_require.resolve": 1, - "request": 2, - "Module._resolveFilename": 1, - "o.bare": 1, - "on": 3, - "ensure": 1, - "vm.runInThisContext": 1, - "vm.runInContext": 1, - "lexer": 1, - "parser.lexer": 1, - "lex": 1, - "@yytext": 1, - "@yylineno": 1, - "@pos": 2, - "setInput": 1, - "upcomingInput": 1, - "parser.yy": 1, - "console.log": 1, - "Animal": 3, - "@name": 2, - "move": 3, - "meters": 2, - "Snake": 2, - "Horse": 2, - "sam": 1, - "tom": 1, - "sam.move": 1, - "tom.move": 1, - "dnsserver": 1, - "exports.Server": 1, - "Server": 2, - "dnsserver.Server": 1, - "NS_T_A": 3, - "NS_T_NS": 2, - "NS_T_CNAME": 1, - "NS_T_SOA": 2, - "NS_C_IN": 5, - "NS_RCODE_NXDOMAIN": 2, - "domain": 6, - "@rootAddress": 2, - "@domain": 3, - "domain.toLowerCase": 1, - "@soa": 2, - "createSOA": 2, - "@on": 1, - "@handleRequest": 1, - "handleRequest": 1, - "question": 5, - "req.question": 1, - "subdomain": 10, - "@extractSubdomain": 1, - "question.name": 3, - "isARequest": 2, - "res.addRR": 2, - "subdomain.getAddress": 1, - ".isEmpty": 1, - "isNSRequest": 2, - "res.header.rcode": 1, - "res.send": 1, - "extractSubdomain": 1, - "name": 5, - "Subdomain.extract": 1, - "question.type": 2, - "question.class": 2, - "mname": 2, - "rname": 2, - "serial": 2, - "Date": 1, - ".getTime": 1, - "refresh": 2, - "retry": 2, - "expire": 2, - "minimum": 2, - "dnsserver.createSOA": 1, - "exports.createServer": 1, - "address": 4, - "exports.Subdomain": 1, - "Subdomain": 4, - "@extract": 1, - "name.toLowerCase": 1, - "offset": 4, - "name.length": 1, - "domain.length": 1, - "name.slice": 2, - "@for": 2, - "IPAddressSubdomain.pattern.test": 1, - "IPAddressSubdomain": 2, - "EncodedSubdomain.pattern.test": 1, - "EncodedSubdomain": 2, - "@subdomain": 1, - "@address": 2, - "@labels": 2, - ".split": 1, - "@length": 3, - "@labels.length": 1, - "isEmpty": 1, - "getAddress": 3, - "@pattern": 2, - "@labels.slice": 1, - "a": 2, - "z0": 2, - "decode": 2, - "exports.encode": 1, - "encode": 1, - "ip": 2, - "byte": 2, - "index": 4, - "ip.split": 1, - "<<": 1, - "PATTERN": 1, - "exports.decode": 1, - "PATTERN.test": 1, - "ip.push": 1, - "xFF": 1, - "ip.join": 1, - "CoffeeScript": 1, - "CoffeeScript.require": 1, - "CoffeeScript.eval": 1, - "options.bare": 2, - "CoffeeScript.compile": 2, - "CoffeeScript.run": 3, - "Function": 1, - "window": 1, - "CoffeeScript.load": 2, - "url": 2, - "xhr": 2, - "window.ActiveXObject": 1, - "XMLHttpRequest": 1, - "xhr.open": 1, - "xhr.overrideMimeType": 1, - "xhr.onreadystatechange": 1, - "xhr.readyState": 1, - "xhr.status": 1, - "xhr.responseText": 1, - "Error": 1, - "xhr.send": 1, - "runScripts": 3, - "scripts": 2, - "document.getElementsByTagName": 1, - "coffees": 2, - "s.type": 1, - "coffees.length": 1, - "execute": 3, - ".type": 1, - "script.src": 2, - "script.innerHTML": 1, - "window.addEventListener": 1, - "addEventListener": 1, - "attachEvent": 1 - }, - "ColdFusion": { - "-": 12, - "": 1, - "": 1, - "": 1, - "Date": 1, - "Functions": 1, - "": 1, - "": 1, - "": 1, - "": 15, - "RightNow": 7, - "Now": 1, - "": 3, - "#RightNow#": 1, - "
": 8, - "#DateFormat": 2, - "(": 8, - ")": 8, - "#": 8, - "#TimeFormat": 2, - "#IsDate": 3, - "#DaysInMonth": 1, - "
": 3, - "x=": 1, - "y=": 1, - "z=": 1, - "group=": 1, - "#x#": 1, - "#y#": 1, - "#z#": 1, - "": 1, - "": 1, - "person": 2, - "Paul": 1, - "greeting": 2, - "Hello": 2, - "world": 1, - "a": 7, - "5": 1, - "b": 7, - "10": 1, - "c": 6, - "MOD": 1, - "comment": 1 - }, - "ColdFusion CFC": { - "component": 1, - "extends": 1, - "singleton": 1, - "{": 22, - "//": 16, - "DI": 1, - "property": 10, - "name": 10, - "inject": 10, - ";": 55, - "ContentService": 1, - "function": 12, - "init": 2, - "(": 58, - "entityName": 2, - ")": 58, - "it": 1, - "super.init": 1, - "arguments.entityName": 1, - "useQueryCaching": 1, - "true": 12, - "Test": 1, - "scope": 1, - "coloring": 1, - "in": 1, - "pygments": 1, - "this.colorTestVar": 1, - "cookie.colorTestVar": 1, - "client.colorTestVar": 1, - "session.colorTestVar": 1, - "application.colorTestVar": 1, - "return": 11, - "this": 10, - "}": 22, - "clearAllCaches": 1, - "boolean": 6, - "async": 7, - "false": 7, - "var": 15, - "settings": 6, - "settingService.getAllSettings": 6, - "asStruct": 6, - "Get": 6, - "appropriate": 6, - "cache": 12, - "provider": 6, - "cacheBox.getCache": 6, - "settings.cb_content_cacheName": 6, - "cache.clearByKeySnippet": 3, - "keySnippet": 3, - "arguments.async": 3, - "clearAllPageWrapperCaches": 1, - "clearPageWrapperCaches": 1, - "required": 5, - "any": 5, - "slug": 2, - "clearPageWrapper": 1, - "cache.clear": 3, - "searchContent": 1, - "searchTerm": 1, - "numeric": 2, - "max": 2, - "offset": 2, - "asQuery": 2, - "sortOrder": 2, - "isPublished": 1, - "searchActiveContent": 1, - "results": 2, - "c": 1, - "newCriteria": 1, - "only": 1, - "published": 1, - "content": 2, - "if": 4, - "isBoolean": 1, - "arguments.isPublished": 3, - "Published": 2, - "bit": 1, - "c.isEq": 1, - "javaCast": 1, - "eq": 1, - "evaluate": 1, - "other": 1, - "params": 1, - "c.isLt": 1, - "now": 2, - ".": 1, - "or": 3, - "c.restrictions.isNull": 1, - "c.restrictions.isGT": 1, - ".isEq": 1, - "Search": 1, - "Criteria": 1, - "len": 1, - "arguments.searchTerm": 1, - "like": 1, - "disjunctions": 1, - "c.createAlias": 1, - "Do": 1, - "we": 1, - "search": 1, - "title": 2, - "and": 2, - "active": 1, - "just": 1, - "arguments.searchActiveContent": 1, - "c.": 1, - "c.restrictions.like": 2, - "else": 1, - "c.like": 1, - "run": 1, - "criteria": 1, - "query": 1, - "projections": 1, - "count": 1, - "results.count": 1, - "c.count": 1, - "results.content": 1, - "c.resultTransformer": 1, - "c.DISTINCT_ROOT_ENTITY": 1, - ".list": 1, - "arguments.offset": 1, - "arguments.max": 1, - "arguments.sortOrder": 1, - "arguments.asQuery": 1, - "private": 4, - "syncUpdateHits": 1, - "contentID": 1, - "q": 1, - "new": 1, - "Query": 1, - "sql": 1, - ".execute": 1, - "closureTest": 1, - "methodCall": 1, - "param1": 2, - "arg1": 4, - "arg2": 2, - "StructliteralTest": 1, - "foo": 3, - "bar": 1, - "brad": 3, - "func": 1, - "array": 1, - "[": 2, - "wood": 2, - "null": 2, - "]": 2, - "last": 1, - "arrayliteralTest": 1, - "": 1, - "": 2, - "name=": 4, - "access=": 2, - "returntype=": 2, - "": 2, - "type=": 2, - "required=": 2, - "": 2, - "myVariable": 1, - "arguments": 2, - "": 1, - "": 2, - "": 1, - "structKeyExists": 1, - "writeoutput": 1, - "Argument": 1, - "exists": 1, - "": 1, - "": 1 - }, - "Common Lisp": { - ";": 162, - "-": 171, - "*": 4, - "lisp": 2, - "(": 379, - "in": 24, - "package": 2, - "foo": 4, - ")": 386, - "Header": 2, - "comment.": 8, - "defvar": 5, - "*foo*": 2, - "eval": 7, - "when": 5, - "execute": 2, - "compile": 2, - "toplevel": 4, - "load": 2, - "defun": 24, - "add": 2, - "x": 52, - "&": 11, - "optional": 3, - "y": 4, - "key": 2, - "z": 4, - "declare": 2, - "ignore": 2, - "Inline": 2, - "+": 37, - "or": 5, - "#": 17, - "|": 11, - "Multi": 2, - "line": 4, - "defmacro": 6, - "body": 9, - "b": 7, - "if": 15, - "After": 2, - "@file": 1, - "macros": 2, - "advanced.cl": 1, - "@breif": 1, - "Advanced": 1, - "macro": 5, - "practices": 1, - "defining": 1, - "your": 1, - "own": 1, - "Macro": 1, - "definition": 1, - "skeleton": 1, - "name": 6, - "parameter*": 1, - "form*": 1, - "Note": 2, - "that": 5, - "backquote": 1, - "expression": 2, - "is": 6, - "most": 2, - "often": 1, - "used": 2, - "the": 35, - "form": 1, - "primep": 4, - "test": 1, - "a": 7, - "number": 2, - "for": 3, - "prime": 12, - "n": 8, - "<": 1, - "return": 3, - "from": 8, - "do": 9, - "i": 8, - "p": 10, - "t": 7, - "not": 6, - "zerop": 1, - "mod": 1, - "sqrt": 1, - "next": 11, - "bigger": 1, - "than": 1, - "specified": 2, - "The": 2, - "recommended": 1, - "procedures": 1, - "to": 4, - "writting": 1, - "new": 6, - "are": 2, - "as": 1, - "follows": 1, - "Write": 2, - "sample": 2, - "call": 2, - "and": 12, - "code": 2, - "it": 2, - "should": 1, - "expand": 1, - "into": 2, - "primes": 3, - "format": 3, - "Expected": 1, - "expanded": 1, - "codes": 1, - "generate": 1, - "hardwritten": 1, - "expansion": 2, - "arguments": 1, - "var": 49, - "range": 4, - "rest": 5, - "let": 6, - "first": 5, - "start": 5, - "second": 3, - "end": 8, - "third": 2, - "@body": 4, - "More": 1, - "concise": 1, - "implementations": 1, - "with": 7, - "synonym": 1, - "also": 1, - "emits": 1, - "more": 1, - "friendly": 1, - "messages": 1, - "on": 1, - "incorrent": 1, - "input.": 1, - "Test": 1, - "result": 1, - "of": 3, - "macroexpand": 2, - "function": 2, - "gensyms": 4, - "value": 8, - "Define": 1, - "note": 1, - "how": 1, - "comma": 1, - "interpolate": 1, - "loop": 2, - "names": 2, - "collect": 1, - "gensym": 1, - "ESCUELA": 1, - "POLITECNICA": 1, - "SUPERIOR": 1, - "UNIVERSIDAD": 1, - "AUTONOMA": 1, - "DE": 1, - "MADRID": 1, - "INTELIGENCIA": 1, - "ARTIFICIAL": 1, - "Motor": 1, - "de": 2, - "inferencia": 1, - "Basado": 1, - "en": 2, - "parte": 1, - "Peter": 1, - "Norvig": 1, - "Global": 1, - "variables": 6, - "*hypothesis": 1, - "list*": 7, - "*rule": 4, - "*fact": 2, - "Constants": 1, - "defconstant": 2, - "fail": 10, - "nil": 3, - "no": 6, - "bindings": 45, - "lambda": 4, - "mapcar": 2, - "man": 3, - "luis": 1, - "pedro": 1, - "woman": 2, - "mart": 1, - "daniel": 1, - "laura": 1, - "facts": 1, - "aux": 3, - "unify": 12, - "hypothesis": 10, - "list": 9, - "____________________________________________________________________________": 5, - "FUNCTION": 3, - "FIND": 1, - "RULES": 2, - "COMMENTS": 3, - "Returns": 2, - "rules": 5, - "whose": 1, - "THENs": 1, - "term": 1, - "given": 3, - "": 2, - "satisfy": 1, - "this": 1, - "requirement": 1, - "renamed.": 1, - "EXAMPLES": 2, - "setq": 1, - "renamed": 3, - "rule": 17, - "rename": 1, - "then": 7, - "unless": 3, - "null": 1, - "equal": 4, - "VALUE": 1, - "FROM": 1, - "all": 2, - "solutions": 1, - "found": 5, - "using": 1, - "": 1, - ".": 10, - "single": 1, - "can": 4, - "have": 1, - "multiple": 1, - "solutions.": 1, - "mapcan": 1, - "R1": 2, - "pertenece": 3, - "E": 4, - "_": 8, - "R2": 2, - "Xs": 2, - "Then": 1, - "EVAL": 2, - "RULE": 2, - "PERTENECE": 6, - "E.42": 2, - "returns": 4, - "NIL": 3, - "That": 2, - "query": 4, - "be": 2, - "proven": 2, - "binding": 17, - "necessary": 2, - "fact": 4, - "has": 1, - "On": 1, - "other": 1, - "hand": 1, - "E.49": 2, - "XS.50": 2, - "R2.": 1, - "ifs": 1, - "NOT": 2, - "question": 1, - "T": 1, - "equality": 2, - "UNIFY": 1, - "Finds": 1, - "general": 1, - "unifier": 1, - "two": 2, - "input": 2, - "expressions": 2, - "taking": 1, - "account": 1, - "": 1, - "In": 1, - "case": 1, - "total": 1, - "unification.": 1, - "Otherwise": 1, - "which": 1, - "constant": 1, - "anonymous": 4, - "make": 4, - "variable": 6, - "Auxiliary": 1, - "Functions": 1, - "cond": 3, - "get": 5, - "lookup": 5, - "occurs": 5, - "extend": 2, - "symbolp": 2, - "eql": 2, - "char": 2, - "symbol": 2, - "assoc": 1, - "car": 2, - "val": 6, - "cdr": 2, - "cons": 2, - "append": 1, - "eq": 7, - "consp": 2, - "subst": 3, - "listp": 1, - "exp": 1, - "unique": 3, - "find": 6, - "anywhere": 6, - "predicate": 8, - "tree": 11, - "so": 4, - "far": 4, - "atom": 3, - "funcall": 2, - "pushnew": 1, - "gentemp": 2, - "quote": 3, - "s/reuse": 1, - "cons/cons": 1, - "expresion": 2, - "some": 1, - "EOF": 1 - }, - "Component Pascal": { - "MODULE": 2, - "ObxFact": 1, - ";": 123, - "IMPORT": 2, - "Stores": 1, - "Models": 1, - "TextModels": 1, - "TextControllers": 1, - "Integers": 1, - "PROCEDURE": 12, - "Read": 3, - "(": 91, - "r": 7, - "TextModels.Reader": 2, - "VAR": 9, - "x": 15, - "Integers.Integer": 3, - ")": 94, - "i": 17, - "len": 5, - "beg": 11, - "INTEGER": 10, - "ch": 14, - "CHAR": 3, - "buf": 5, - "POINTER": 2, - "TO": 2, - "ARRAY": 2, - "OF": 2, - "BEGIN": 13, - "r.ReadChar": 5, - "WHILE": 3, - "r.eot": 4, - "&": 8, - "<=>": 1, - "DO": 4, - "ReadChar": 1, - "END": 31, - "ASSERT": 1, - "eot": 1, - "<": 8, - "OR": 4, - "r.Pos": 2, - "-": 1, - "REPEAT": 3, - "INC": 4, - "UNTIL": 3, - "NEW": 2, - "+": 1, - "r.SetPos": 2, - "[": 13, - "]": 13, - "X": 1, - "Integers.ConvertFromString": 1, - "Write": 3, - "w": 4, - "TextModels.Writer": 2, - "IF": 11, - "Integers.Sign": 2, - "THEN": 12, - "w.WriteChar": 3, - "Integers.Digits10Of": 1, - "#": 3, - "DEC": 1, - "Integers.ThisDigit10": 1, - "ELSE": 3, - "Compute*": 1, - "end": 6, - "n": 3, - "s": 3, - "Stores.Operation": 1, - "attr": 3, - "TextModels.Attributes": 1, - "c": 3, - "TextControllers.Controller": 1, - "TextControllers.Focus": 1, - "NIL": 3, - "c.HasSelection": 1, - "c.GetSelection": 1, - "c.text.NewReader": 1, - "r.ReadPrev": 2, - "r.attr": 1, - "Integers.Compare": 1, - "Integers.Long": 3, - "MAX": 1, - "LONGINT": 1, - "SHORT": 1, - "Integers.Short": 1, - "Integers.Product": 1, - "Models.BeginScript": 1, - "c.text": 2, - "c.text.Delete": 1, - "c.text.NewWriter": 1, - "w.SetPos": 1, - "w.SetAttr": 1, - "Models.EndScript": 1, - "Compute": 1, - "ObxFact.": 1, - "ObxControls": 1, - "Dialog": 1, - "Ports": 1, - "Properties": 1, - "Views": 1, - "CONST": 1, - "beginner": 5, - "advanced": 3, - "expert": 1, - "guru": 2, - "TYPE": 1, - "View": 6, - "RECORD": 2, - "Views.View": 2, - "size": 1, - "data*": 1, - "class*": 1, - "list*": 1, - "Dialog.List": 1, - "width*": 1, - "predef": 12, - "SetList": 4, - "data.class": 5, - "data.list.SetLen": 3, - "data.list.SetItem": 11, - "ELSIF": 1, - "v": 6, - "CopyFromSimpleView": 2, - "source": 2, - "v.size": 10, - ".size": 1, - "Restore": 2, - "f": 1, - "Views.Frame": 1, - "l": 1, - "t": 1, - "b": 1, - "f.DrawRect": 1, - "Ports.fill": 1, - "Ports.red": 1, - "HandlePropMsg": 2, - "msg": 2, - "Views.PropMessage": 1, - "WITH": 1, - "Properties.SizePref": 1, - "msg.w": 1, - "msg.h": 1, - "ClassNotify*": 1, - "op": 4, - "from": 2, - "to": 5, - "Dialog.changed": 2, - "data.list.index": 3, - "data.width": 4, - "Dialog.Update": 2, - "data": 2, - "Dialog.UpdateList": 1, - "data.list": 1, - "ClassNotify": 1, - "ListNotify*": 1, - "ListNotify": 1, - "ListGuard*": 1, - "par": 2, - "Dialog.Par": 2, - "par.disabled": 1, - "ListGuard": 1, - "WidthGuard*": 1, - "par.readOnly": 1, - "WidthGuard": 1, - "Open*": 1, - "*": 1, - "Ports.mm": 1, - "Views.OpenAux": 1, - "Open": 1, - "ObxControls.": 1 - }, - "Cool": { - "class": 7, - "List": 8, - "{": 27, - "isNil": 2, - "(": 30, - ")": 30, - "Bool": 5, - "true": 2, - "}": 27, - ";": 40, - "head": 2, - "Int": 15, - "abort": 2, - "tail": 2, - "self": 3, - "cons": 1, - "i": 7, - "new": 3, - "Cons": 2, - ".init": 1, - "inherits": 4, - "car": 3, - "-": 19, - "The": 2, - "element": 1, - "in": 3, - "this": 1, - "list": 2, - "cell": 1, - "cdr": 3, - "rest": 3, - "of": 2, - "the": 1, - "false": 3, - "init": 1, - "<": 9, - "Exhibit": 1, - "various": 1, - "language": 1, - "constructs": 1, - "Sample": 5, - "testCondition": 1, - "x": 3, - "if": 3, - "then": 3, - "else": 3, - "+": 1, - "*": 3, - "fi": 2, - "testLoop": 1, - "y": 7, - "while": 1, - "loop": 1, - "not": 1, - "condition": 1, - "/": 2, - "pool": 1, - "testAssign": 1, - "z": 2, - "testCase": 1, - "var": 2, - "SELF_TYPE": 2, - "io": 1, - "IO": 3, - "<->": 1, - "case": 1, - "a": 4, - "A": 3, - "io.out_string": 4, - "b": 3, - "B": 2, - "s": 1, - "o": 1, - "Object": 1, - "esac": 1, - "testLet": 1, - "let": 2, - "c": 2, - "Used": 1, - "to": 1, - "test": 1, - "subclasses": 1, - "C": 1, - "main": 2, - ".testLet": 1, - "example": 1, - "Main": 1, - "out_string": 1 - }, - "Coq": { - "Require": 17, - "Export": 10, - "Sorted.": 1, - "Mergesort.": 1, - "Basics.": 2, - "Module": 11, - "NatList.": 2, - "Import": 11, - "Playground1.": 5, - "Inductive": 41, - "natprod": 5, - "Type": 86, - "pair": 7, - "nat": 108, - "-": 508, - "natprod.": 1, - "Definition": 46, - "fst": 3, - "(": 1248, - "p": 81, - ")": 1249, - "match": 70, - "with": 223, - "|": 457, - "x": 266, - "y": 116, - "end.": 52, - "snd": 3, - "Notation": 39, - ".": 433, - "swap_pair": 1, - "Theorem": 115, - "surjective_pairing": 1, - "n": 369, - "repeat": 11, - "count": 7, - "r": 11, - "beq_nat": 24, - "v": 28, - "remove_one": 3, - "end": 16, - "Example": 37, - "test_remove_one1": 1, - "S": 186, - "O": 98, - "[": 170, - "]": 173, - "O.": 5, - "Proof.": 208, - "reflexivity.": 199, - "Qed.": 194, - "Fixpoint": 36, - "remove_all": 2, - "s": 13, - "bag": 3, - "nil": 46, - "true": 68, - "false": 48, - "Case": 51, - "app_ass": 1, - "forall": 248, - "l1": 89, - "l2": 73, - "l3": 12, - "natlist": 7, - "+": 227, - "intros": 258, - "l3.": 1, - "induction": 81, - "as": 77, - "cons": 26, - "l": 379, - "remove_decreases_count": 1, - "ble_nat": 6, - "true.": 16, - "s.": 4, - "simpl.": 70, - "n.": 44, - "SCase": 24, - "rewrite": 241, - "ble_n_Sn.": 1, - "IHs.": 2, - "natoption": 5, - "Some": 21, - "None": 9, - "natoption.": 1, - "index": 3, - "a": 207, - "option_elim": 2, - "o": 25, - "d": 6, - "hd_opt": 8, - "test_hd_opt1": 2, - "None.": 2, - "test_hd_opt2": 2, - "option_elim_hd": 1, - "head": 1, - "l.": 26, - "destruct": 94, - "beq_natlist": 5, - "bool": 38, - "_": 67, - "v1": 7, - "r1": 2, - "v2": 2, - "r2": 2, - "if": 10, - "then": 9, - "else": 9, - "test_beq_natlist1": 1, - "test_beq_natlist2": 1, - "beq_natlist_refl": 1, - "<->": 31, - "beq_nat_refl": 3, - "IHl.": 7, - "silly1": 1, - "m": 201, - "eq1": 6, - "eq2.": 9, - "apply": 340, - "eq2": 1, - "Qed": 23, - "silly2a": 1, - "q": 15, - "eq1.": 5, - "silly_ex": 1, - "evenb": 5, - "oddb": 5, - "silly3": 1, - "H.": 100, - "symmetry.": 2, - "rev_exercise": 1, - "rev_involutive.": 1, - "beq_nat_sym": 2, - "b": 89, - "b.": 14, - "IHn": 12, - "l1.": 5, - "End": 15, - "SfLib.": 2, - "STLC.": 1, - "ty": 7, - "ty_Bool": 10, - "ty_arrow": 7, - "ty.": 2, - "tm": 43, - "tm_var": 6, - "id": 7, - "tm_app": 7, - "tm_abs": 9, - "tm_true": 8, - "tm_false": 5, - "tm_if": 10, - "tm.": 3, - "Tactic": 9, - "tactic": 9, - "first": 18, - "ident": 9, - "c": 70, - ";": 375, - "Case_aux": 38, - "Id": 7, - "idB": 2, - "idBB": 2, - "idBBBB": 2, - "k": 7, - "value": 25, - "Prop": 17, - "v_abs": 1, - "T": 49, - "t": 93, - "t_true": 1, - "t_false": 1, - "tm_false.": 3, - "Hint": 9, - "Constructors": 3, - "value.": 1, - "subst": 7, - "beq_id": 14, - "t2": 51, - "t1": 48, - "ST_App2": 1, - "t3": 6, - "where": 6, - "step": 9, - "stepmany": 4, - "refl_step_closure": 11, - "at": 17, - "level": 11, - "step.": 3, - "Lemma": 51, - "step_example3": 1, - "*": 59, - "idB.": 1, - "eapply": 8, - "rsc_step.": 2, - "ST_App1.": 2, - "ST_AppAbs.": 3, - "v_abs.": 2, - "rsc_refl.": 4, - "context": 1, - "partial_map": 4, - "Context.": 1, - "A": 113, - "option": 6, - "A.": 6, - "empty": 3, - "{": 39, - "}": 35, - "fun": 17, - "extend": 1, - "Gamma": 10, - "has_type": 4, - "appears_free_in": 1, - "S.": 1, - "Proof": 12, - "auto.": 47, - "intros.": 27, - "generalize": 13, - "dependent": 6, - "HT": 1, - "T_Var.": 1, - "extend_neq": 1, - "in": 221, - "H2.": 20, - "assumption.": 61, - "Heqe.": 3, - "rename": 2, - "i": 11, - "into": 2, - "y.": 15, - "T_Abs.": 1, - "remember": 12, - "e.": 15, - "context_invariance...": 2, - "beq_id_eq": 4, - "subst.": 43, - "Hafi.": 2, - "unfold": 58, - "extend.": 2, - "IHt.": 1, - "x0": 14, - "Coiso1.": 2, - "Coiso2.": 3, - "eauto": 10, - "HeqCoiso1.": 1, - "HeqCoiso2.": 1, - "assert": 68, - "<": 76, - "beq_id_false_not_eq.": 1, - "ex_falso_quodlibet.": 1, - "H0.": 24, - "preservation": 1, - "HT.": 1, - "H1.": 31, - "inversion": 104, - "substitution_preserves_typing": 1, - "T11.": 4, - "HT1.": 1, - "T_App": 2, - "IHHT1.": 1, - "IHHT2.": 1, - "/": 41, - "exists": 60, - "t.": 4, - "tm_cases": 1, - "Ht": 1, - "Ht.": 3, - "right.": 9, - "IHt1": 2, - "T11": 2, - "IHt2": 3, - "H3.": 5, - "T0": 2, - "ST_App2.": 1, - "ty_Bool.": 1, - "T.": 9, - "IHt3": 1, - "t2.": 4, - "ST_IfTrue.": 1, - "t3.": 2, - "ST_IfFalse.": 1, - "ST_If.": 2, - "types_unique": 1, - "T1": 25, - "T12": 2, - "IHhas_type.": 1, - "IHhas_type1.": 1, - "IHhas_type2.": 1, - "List": 2, - "Multiset": 2, - "PermutSetoid": 1, - "Relations": 2, - "Sorting.": 1, - "Section": 4, - "defs.": 2, - "Variable": 7, - "Type.": 3, - "leA": 25, - "relation": 19, - "eqA": 29, - "Let": 8, - "gtA": 1, - "Hypothesis": 7, - "leA_dec": 4, - "eqA_dec": 26, - "leA_refl": 1, - "leA_trans": 2, - "z": 14, - "z.": 6, - "leA_antisym": 1, - "Resolve": 5, - "leA_refl.": 1, - "Immediate": 1, - "leA_antisym.": 1, - "emptyBag": 4, - "EmptyBag": 2, - "singletonBag": 10, - "SingletonBag": 2, - "eqA_dec.": 2, - "Tree": 24, - "Tree_Leaf": 9, - "Tree_Node": 11, - "Tree.": 1, - "leA_Tree": 16, - "True": 1, - "T2": 20, - "leA_Tree_Leaf": 5, - "Tree_Leaf.": 1, - "simpl": 116, - "auto": 73, - "datatypes.": 47, - "leA_Tree_Node": 1, - "G": 6, - "D": 9, - "is_heap": 18, - "nil_is_heap": 5, - "node_is_heap": 7, - "invert_heap": 3, - "T2.": 1, - "H": 76, - "is_heap_rect": 1, - "P": 32, - "simple": 7, - "PG": 2, - "PD": 2, - "PN.": 2, - "elim": 21, - "H1": 18, - "H2": 12, - "H3": 4, - "H4": 7, - "X0": 2, - "is_heap_rec": 1, - "Set": 4, - "X": 191, - "low_trans": 3, - "merge_lem": 3, - "list": 78, - "merge_exist": 5, - "Sorted": 5, - "meq": 15, - "list_contents": 30, - "munion": 18, - "HdRel": 4, - "l2.": 8, - "Morphisms.": 2, - "Instance": 7, - "Equivalence": 2, - "@meq": 4, - "constructor": 6, - "red.": 1, - "meq_trans.": 1, - "Defined.": 1, - "Proper": 5, - "@munion": 1, - "now": 24, - "meq_congr.": 1, - "merge": 5, - "fix": 2, - "revert": 5, - "a0": 15, - "l0": 7, - "Sorted_inv": 2, - "H0": 16, - "clear": 7, - "merge0.": 2, - "using": 18, - "cons_sort": 2, - "cons_leA": 2, - "m.": 21, - "munion_ass.": 2, - "cons_leA.": 2, - "@HdRel_inv": 2, - "trivial": 15, - "merge0": 1, - "setoid_rewrite": 2, - "munion_ass": 1, - "munion_comm.": 2, - "munion_comm": 1, - "contents": 12, - "multiset": 2, - "equiv_Tree": 1, - "insert_spec": 3, - "insert_exist": 4, - "insert": 2, - "treesort_twist1": 1, - "T3": 2, - "HeapT3": 1, - "ConT3": 1, - "LeA.": 1, - "LeA": 1, - "treesort_twist2": 1, - "build_heap": 3, - "heap_exist": 3, - "list_to_heap": 2, - "exact": 4, - "nil_is_heap.": 1, - "meq_trans": 10, - "meq_right": 2, - "meq_sym": 2, - "flat_spec": 3, - "flat_exist": 3, - "heap_to_list": 2, - "h": 14, - "s1": 20, - "i1": 15, - "m1": 1, - "s2": 2, - "i2": 10, - "m2.": 1, - "meq_congr": 1, - "munion_rotate.": 1, - "treesort": 1, - "&": 21, - "permutation": 43, - "intro": 27, - "permutation.": 1, - "AExp.": 2, - "aexp": 30, - "ANum": 18, - "APlus": 14, - "AMinus": 9, - "AMult": 9, - "aexp.": 1, - "bexp": 22, - "BTrue": 10, - "BFalse": 11, - "BEq": 9, - "BLe": 9, - "BNot": 9, - "BAnd": 10, - "bexp.": 1, - "aeval": 46, - "e": 53, - "a1": 56, - "a2": 62, - "test_aeval1": 1, - "beval": 16, - "b1": 35, - "negb": 10, - "b2": 23, - "andb": 8, - "optimize_0plus": 15, - "e2": 54, - "e1": 58, - "test_optimize_0plus": 1, - "optimize_0plus_sound": 4, - "e1.": 1, - "SSCase": 3, - "IHe2.": 10, - "IHe1.": 11, - "aexp_cases": 3, - "try": 17, - "IHe1": 6, - "IHe2": 6, - "reflexivity": 16, - "optimize_0plus_all": 2, - "optimize_0plus_all_sound": 1, - "bexp_cases": 4, - "optimize_and": 5, - "optimize_and_sound": 1, - "IHe": 2, - "aevalR_first_try.": 2, - "aevalR": 18, - "E_Anum": 1, - "E_APlus": 2, - "n1": 45, - "n2": 41, - "E_AMinus": 2, - "E_AMult": 2, - "Reserved": 4, - "E_ANum": 1, - "bevalR": 11, - "E_BTrue": 1, - "E_BFalse": 1, - "E_BEq": 1, - "E_BLe": 1, - "E_BNot": 1, - "E_BAnd": 1, - "aeval_iff_aevalR": 9, - "split.": 17, - "IHa1": 1, - "IHa2": 1, - "beval_iff_bevalR": 1, - "*.": 110, - "IHbevalR": 1, - "IHbevalR1": 1, - "IHbevalR2": 1, - "a.": 6, - "constructor.": 16, - "IHa.": 1, - "IHa1.": 1, - "IHa2.": 1, - "silly_presburger_formula": 1, - "<=>": 12, - "3": 2, - "omega": 7, - "id.": 1, - "id1": 2, - "id2": 2, - "beq_id_refl": 1, - "i.": 2, - "beq_nat_refl.": 1, - "i2.": 8, - "i1.": 3, - "beq_nat_eq": 2, - "beq_id_false_not_eq": 1, - "C.": 3, - "n0": 5, - "beq_false_not_eq": 1, - "not_eq_beq_id_false": 1, - "false.": 12, - "not_eq_beq_false.": 1, - "AId": 4, - "com_cases": 1, - "SKIP": 5, - "IFB": 4, - "WHILE": 5, - "c1": 14, - "c2": 9, - "e3": 1, - "cl": 1, - "st": 113, - "E_IfTrue": 2, - "THEN": 3, - "ELSE": 3, - "FI": 3, - "E_WhileEnd": 2, - "DO": 4, - "END": 4, - "E_WhileLoop": 2, - "ceval_cases": 1, - "E_Skip": 1, - "E_Ass": 1, - "E_Seq": 1, - "E_IfFalse": 1, - "assignment": 1, - "command": 2, - "st1": 2, - "o.": 4, - "IHi1": 3, - "Heqst1": 1, - "Hceval.": 4, - "Hceval": 2, - "bval": 2, - "ceval_step": 3, - "ceval_step_more": 7, - "x1.": 3, - "omega.": 7, - "x2.": 2, - "IHHce.": 2, - "%": 3, - "nat.": 4, - "IHHce1.": 1, - "IHHce2.": 1, - "plus2": 1, - "nx": 3, - "Y": 38, - "ny": 2, - "XtimesYinZ": 1, - "Z": 11, - "ny.": 1, - "loop": 2, - "contra.": 19, - "loopdef.": 1, - "Heqloopdef.": 8, - "contra1.": 1, - "IHcontra2.": 1, - "no_whiles": 15, - "com": 5, - "ct": 2, - "cf": 2, - "no_Whiles": 10, - "noWhilesSKIP": 1, - "noWhilesAss": 1, - "noWhilesSeq": 1, - "noWhilesIf": 1, - "no_whiles_eqv": 1, - "c.": 5, - "noWhilesSKIP.": 1, - "noWhilesAss.": 1, - "noWhilesSeq.": 1, - "IHc1.": 2, - "andb_true_elim1": 4, - "IHc2.": 2, - "andb_true_elim2": 4, - "noWhilesIf.": 1, - "andb_true_intro.": 2, - "no_whiles_terminate": 1, - "state": 6, - "st.": 7, - "update": 2, - "IHc1": 2, - "IHc2": 2, - "H5.": 1, - "x1": 11, - "r.": 3, - "symmetry": 4, - "Heqr.": 1, - "H4.": 2, - "Heqr": 3, - "H8.": 1, - "H10": 1, - "assumption": 10, - "beval_short_circuit": 5, - "beval_short_circuit_eqv": 1, - "sinstr": 8, - "SPush": 8, - "SLoad": 6, - "SPlus": 10, - "SMinus": 11, - "SMult": 11, - "sinstr.": 1, - "s_execute": 21, - "stack": 7, - "prog": 2, - "al": 3, - "bl": 3, - "s_execute1": 1, - "empty_state": 2, - "s_execute2": 1, - "s_compile": 36, - "s_compile1": 1, - "execute_theorem": 1, - "other": 20, - "other.": 4, - "app_ass.": 6, - "plus_comm": 3, - "mult_comm": 2, - "s_compile_correct": 1, - "app_nil_end.": 1, - "execute_theorem.": 1, - "Eqdep_dec.": 1, - "Arith.": 2, - "eq_rect_eq_nat": 2, - "Q": 3, - "eq_rect": 3, - "h.": 1, - "K_dec_set": 1, - "eq_nat_dec.": 1, - "Scheme": 1, - "le_ind": 1, - "q.": 2, - "replace": 4, - "le_n": 4, - "refl_equal": 4, - "pattern": 2, - "case": 2, - "trivial.": 14, - "contradiction": 8, - "le_Sn_n": 5, - "le_S": 6, - "Heq": 8, - "m0": 1, - "HeqS": 3, - "injection": 4, - "HeqS.": 2, - "eq_rect_eq_nat.": 1, - "IHp": 2, - "dep_pair_intro": 2, - "Hx": 20, - "Hy": 14, - "<=n),>": 1, - "x=": 1, - "exist": 7, - "Hy.": 3, - "Heq.": 6, - "le_uniqueness_proof": 1, - "Hy0": 1, - "card": 2, - "f": 108, - "card_interval": 1, - "<=n}>": 1, - "proj1_sig": 1, - "proj2_sig": 1, - "Hp": 5, - "Hq": 3, - "Hpq.": 1, - "Hmn.": 1, - "Hmn": 1, - "interval_dec": 1, - "left.": 3, - "dep_pair_intro.": 3, - "discriminate": 3, - "le_Sn_le": 2, - "eq_S.": 1, - "Hneq.": 2, - "card_inj_aux": 1, - "g": 6, - "0": 5, - "False.": 1, - "Hfbound": 1, - "Hfinj": 1, - "Hgsurj.": 1, - "Hgsurj": 3, - "Hfx": 2, - "le_n_O_eq.": 2, - "Hfbound.": 2, - "Hx.": 5, - "le_lt_dec": 9, - "xSn": 21, - "pred": 3, - "is": 4, - "bounded": 1, - "injective": 6, - "Hlefx": 1, - "Hgefx": 1, - "Hlefy": 1, - "Hgefy": 1, - "Hfinj.": 3, - "sym_not_eq.": 2, - "Heqf.": 2, - "Hneqy.": 2, - "le_lt_trans": 2, - "le_O_n.": 2, - "le_neq_lt": 2, - "Hneqx.": 2, - "pred_inj.": 1, - "lt_O_neq": 2, - "neq_dep_intro": 2, - "inj_restrict": 1, - "Heqf": 1, - "surjective": 1, - "Hlep.": 3, - "Hle": 1, - "Hlt": 3, - "Hfsurj": 2, - "le_n_S": 1, - "Hlep": 4, - "Hneq": 7, - "Heqx.": 2, - "Heqx": 4, - "Hle.": 1, - "le_not_lt": 1, - "lt_trans": 4, - "lt_n_Sn.": 1, - "Hlt.": 1, - "lt_irrefl": 2, - "lt_le_trans": 1, - "pose": 2, - "let": 3, - "Hneqx": 1, - "Hneqy": 1, - "Heqg": 1, - "Hdec": 3, - "Heqy": 1, - "Hginj": 1, - "HSnx.": 1, - "HSnx": 1, - "interval_discr": 1, - "<=m}>": 1, - "card_inj": 1, - "interval_dec.": 1, - "card_interval.": 2, - "Imp.": 1, - "Relations.": 1, - "tm_const": 45, - "tm_plus": 30, - "SimpleArith0.": 2, - "eval": 8, - "SimpleArith1.": 2, - "left": 6, - "associativity": 7, - "E_Const": 2, - "E_Plus": 2, - "plus": 10, - "test_step_1": 1, - "ST_Plus1.": 2, - "ST_PlusConstConst.": 3, - "test_step_2": 1, - "ST_Plus2.": 2, - "step_deterministic": 1, - "partial_function": 6, - "partial_function.": 5, - "y1": 6, - "y2": 5, - "Hy1": 2, - "Hy2.": 2, - "y2.": 3, - "step_cases": 4, - "Hy2": 3, - "SCase.": 3, - "Hy1.": 5, - "IHHy1": 2, - "SimpleArith2.": 1, - "v_const": 4, - "ST_PlusConstConst": 3, - "ST_Plus1": 2, - "strong_progress": 2, - "R": 54, - "value_not_same_as_normal_form": 2, - "normal_form": 3, - "normal_form.": 2, - "v_funny.": 1, - "not.": 3, - "Temp1.": 1, - "Temp2.": 1, - "ST_Funny": 1, - "Temp3.": 1, - "Temp4.": 2, - "v_true": 1, - "v_false": 1, - "ST_IfTrue": 1, - "ST_IfFalse": 1, - "ST_If": 1, - "bool_step_prop4": 1, - "bool_step_prop4_holds": 1, - "bool_step_prop4.": 2, - "ST_ShortCut.": 1, - "IHt1.": 1, - "Temp5.": 1, - "normalizing": 1, - "H11": 2, - "H12": 2, - "H21": 3, - "H22": 2, - "nf_same_as_value": 3, - "H12.": 1, - "H22.": 1, - "H11.": 1, - "split": 14, - "rsc_trans": 4, - "stepmany_congr_1": 1, - "stepmany_congr2": 1, - "rsc_R": 2, - "eval__value": 1, - "HE.": 1, - "eval_cases": 1, - "HE": 1, - "v_const.": 1, - "Lists.": 1, - "X.": 4, - "length": 21, - "app": 5, - "snoc": 9, - "rev": 7, - "Implicit": 15, - "Arguments": 11, - "list123": 1, - "right": 2, - "nil.": 2, - "..": 4, - "test_repeat1": 1, - "nil_app": 1, - "rev_snoc": 1, - "snoc_with_append": 1, - "v.": 1, - "IHl1.": 1, - "prod": 3, - "Y.": 1, - "type_scope.": 1, - "combine": 3, - "lx": 4, - "ly": 4, - "tx": 2, - "tp": 2, - "xs": 7, - "plus3": 2, - "prod_curry": 3, - "prod_uncurry": 3, - "uncurry_uncurry": 1, - "curry_uncurry": 1, - "p.": 9, - "filter": 3, - "test": 4, - "countoddmembers": 1, - "fmostlytrue": 5, - "override": 5, - "ftrue": 1, - "override_example1": 1, - "override_example2": 1, - "override_example3": 1, - "override_example4": 1, - "override_example": 1, - "constfun": 1, - "unfold_example_bad": 1, - "plus3.": 1, - "override_eq": 1, - "x.": 3, - "f.": 1, - "override.": 2, - "override_neq": 1, - "x2": 3, - "k1": 5, - "k2": 4, - "eq_add_S": 2, - "eq.": 11, - "silly4": 1, - "silly5": 1, - "sillyex1": 1, - "j": 6, - "j.": 1, - "silly6": 1, - "silly7": 1, - "sillyex2": 1, - "of": 4, - "assertion": 3, - "Hl.": 1, - "IHm": 2, - "eq": 4, - "IHl": 8, - "beq_nat_O_l": 1, - "beq_nat_O_r": 1, - "double_injective": 1, - "double": 2, - "fold_map": 2, - "fold": 1, - "total": 2, - "fold_map_correct": 1, - "map": 4, - "fold_map.": 1, - "forallb": 4, - "existsb": 3, - "orb": 8, - "existsb2": 2, - "existsb_correct": 1, - "existsb2.": 1, - "index_okx": 1, - "mumble": 5, - "mumble.": 1, - "grumble": 3, - "day": 9, - "monday": 5, - "tuesday": 3, - "wednesday": 3, - "thursday": 3, - "friday": 3, - "saturday": 3, - "sunday": 2, - "day.": 1, - "next_weekday": 3, - "test_next_weekday": 1, - "tuesday.": 1, - "bool.": 1, - "test_orb1": 1, - "test_orb2": 1, - "test_orb3": 1, - "test_orb4": 1, - "nandb": 5, - "test_nandb1": 1, - "test_nandb2": 1, - "test_nandb3": 1, - "test_nandb4": 1, - "andb3": 5, - "b3": 2, - "test_andb31": 1, - "test_andb32": 1, - "test_andb33": 1, - "test_andb34": 1, - "minustwo": 1, - "test_oddb1": 1, - "test_oddb2": 1, - "mult": 3, - "minus": 3, - "exp": 2, - "base": 3, - "power": 2, - "factorial": 2, - "test_factorial1": 1, - "nat_scope.": 3, - "plus_O_n": 1, - "plus_1_1": 1, - "mult_0_1": 1, - "plus_id_example": 1, - "plus_id_exercise": 1, - "mult_0_plus": 1, - "plus_O_n.": 1, - "mult_1_plus": 1, - "plus_1_1.": 1, - "mult_1": 1, - "plus_1_neq_0": 1, - "plus_distr.": 1, - "plus_rearrange": 1, - "plus_comm.": 3, - "plus_swap": 2, - "plus_assoc.": 4, - "plus_swap.": 2, - "mult_0_r.": 4, - "mult_distr": 1, - "mult_1_distr.": 1, - "mult_1.": 1, - "bad": 1, - "zero_nbeq_S": 1, - "andb_false_r": 1, - "plus_ble_compat_1": 1, - "IHp.": 2, - "S_nbeq_0": 1, - "mult_1_1": 1, - "plus_0_r.": 1, - "all3_spec": 1, - "mult_plus_1": 1, - "IHm.": 1, - "mult_mult": 1, - "IHn.": 3, - "mult_plus_1.": 1, - "mult_plus_distr_r": 1, - "mult_mult.": 3, - "plus_assoc": 1, - "mult_assoc": 1, - "mult_plus_distr_r.": 1, - "bin": 9, - "BO": 4, - "M": 4, - "bin.": 1, - "incbin": 2, - "bin2un": 3, - "bin_comm": 1, - "Logic.": 1, - "Prop.": 1, - "next_nat_partial_function": 1, - "next_nat.": 1, - "Q.": 2, - "P.": 5, - "le_not_a_partial_function": 1, - "le": 1, - "Nonsense.": 4, - "le_n.": 6, - "le_S.": 4, - "total_relation_not_partial_function": 1, - "total_relation": 1, - "total_relation1.": 2, - "empty_relation_not_partial_funcion": 1, - "empty_relation.": 1, - "reflexive": 5, - "le_reflexive": 1, - "le.": 4, - "reflexive.": 1, - "transitive": 8, - "le_trans": 4, - "Hnm": 3, - "Hmo.": 4, - "Hnm.": 3, - "IHHmo.": 1, - "lt.": 2, - "transitive.": 1, - "Hm": 1, - "le_S_n": 2, - "Sn_le_Sm__n_le_m.": 1, - "not": 1, - "TODO": 1, - "lt": 3, - "Hmo": 1, - "symmetric": 2, - "antisymmetric": 3, - "le_antisymmetric": 1, - "Sn_le_Sm__n_le_m": 2, - "IHb": 1, - "equivalence": 1, - "order": 2, - "preorder": 1, - "le_order": 1, - "order.": 1, - "le_reflexive.": 1, - "le_antisymmetric.": 1, - "le_trans.": 1, - "clos_refl_trans": 8, - "rt_step": 1, - "rt_refl": 1, - "rt_trans": 3, - "next_nat_closure_is_le": 1, - "next_nat": 1, - "rt_refl.": 2, - "IHle.": 1, - "rt_step.": 2, - "nn.": 1, - "IHclos_refl_trans1.": 2, - "IHclos_refl_trans2.": 2, - "rsc_refl": 1, - "rsc_step": 4, - "IHrefl_step_closure": 1, - "rtc_rsc_coincide": 1, - "IHrefl_step_closure.": 1, - "Setoid": 1, - "Compare_dec": 1, - "ListNotations.": 1, - "Arguments.": 2, - "Permutation.": 2, - "Permutation": 38, - "perm_nil": 1, - "perm_skip": 1, - "Local": 7, - "Permutation_nil": 2, - "HF.": 3, - "@nil": 1, - "HF": 2, - "||": 1, - "Permutation_nil_cons": 1, - "discriminate.": 2, - "Permutation_refl": 1, - "Permutation_sym": 1, - "Hperm": 7, - "perm_trans": 1, - "Permutation_trans": 4, - "Logic.eq": 2, - "@Permutation": 5, - "iff": 1, - "@In": 1, - "red": 6, - "Permutation_in.": 2, - "Permutation_app_tail": 2, - "tl": 8, - "Permutation_app_head": 2, - "app_comm_cons": 5, - "Permutation_app": 3, - "Hpermmm": 1, - "idtac": 1, - "Global": 5, - "@app": 1, - "Permutation_app.": 1, - "Permutation_add_inside": 1, - "Permutation_cons_append": 1, - "Permutation_cons_append.": 3, - "Permutation_app_comm": 3, - "app_nil_r": 1, - "app_assoc": 2, - "Permutation_cons_app": 3, - "Permutation_middle": 2, - "Permutation_rev": 3, - "1": 1, - "@rev": 1, - "2": 1, - "Permutation_length": 2, - "transitivity": 4, - "@length": 1, - "Permutation_length.": 1, - "Permutation_ind_bis": 2, - "Hnil": 1, - "Hskip": 3, - "Hswap": 2, - "Htrans.": 1, - "Htrans": 1, - "eauto.": 7, - "Ltac": 1, - "break_list": 5, - "Permutation_nil_app_cons": 1, - "l4": 3, - "IH": 3, - "Permutation_middle.": 3, - "perm_swap.": 2, - "perm_swap": 1, - "eq_refl": 2, - "In_split": 1, - "Permutation_app_inv": 1, - "NoDup": 4, - "incl": 3, - "N.": 1, - "E": 7, - "Ha": 6, - "In": 6, - "N": 1, - "Hal": 1, - "Hl": 1, - "exfalso.": 1, - "NoDup_Permutation_bis": 2, - "inversion_clear": 6, - "intuition.": 2, - "Permutation_NoDup": 1, - "Permutation_map": 1, - "Hf": 15, - "injective_bounded_surjective": 1, - "set": 1, - "seq": 2, - "in_map_iff.": 2, - "in_seq": 4, - "arith": 4, - "NoDup_cardinal_incl": 1, - "injective_map_NoDup": 2, - "seq_NoDup": 1, - "map_length": 1, - "by": 7, - "in_map_iff": 1, - "nat_bijection_Permutation": 1, - "BD.": 1, - "seq_NoDup.": 1, - "map_length.": 1, - "Injection": 1, - "Permutation_alt": 1, - "Alternative": 1, - "characterization": 1, - "via": 1, - "nth_error": 7, - "and": 1, - "nth": 2, - "adapt": 4, - "adapt_injective": 1, - "adapt.": 2, - "EQ.": 2, - "LE": 11, - "LT": 14, - "Hf.": 1, - "Lt.le_lt_or_eq": 3, - "LE.": 3, - "EQ": 8, - "LT.": 5, - "Lt.S_pred": 3, - "Lt.lt_not_le": 2, - "adapt_ok": 2, - "nth_error_app1": 1, - "nth_error_app2": 1, - "arith.": 8, - "Minus.minus_Sn_m": 1, - "Permutation_nth_error": 2, - "IHP": 2, - "IHP2": 1, - "Hg": 2, - "E.": 2, - "L12": 2, - "app_length.": 2, - "plus_n_Sm.": 1, - "adapt_injective.": 1, - "nth_error_None": 4, - "Hn": 1, - "Hf2": 1, - "Hf3": 2, - "Lt.le_or_lt": 1, - "Lt.lt_irrefl": 2, - "Lt.lt_le_trans": 2, - "Hf1": 1, - "do": 4, - "congruence.": 1, - "Permutation_alt.": 1, - "Permutation_app_swap": 1, - "only": 3, - "parsing": 3, - "Omega": 1, - "SetoidList.": 1, - "Permut.": 1, - "eqA_equiv": 1, - "eqA.": 1, - "list_contents_app": 5, - "permut_refl": 1, - "permut_sym": 4, - "permut_trans": 5, - "permut_cons_eq": 3, - "meq_left": 1, - "meq_singleton": 1, - "permut_cons": 5, - "permut_app": 1, - "specialize": 6, - "a0.": 1, - "decide": 1, - "permut_add_inside_eq": 1, - "permut_add_cons_inside": 3, - "permut_add_inside": 1, - "permut_middle": 1, - "permut_refl.": 5, - "permut_sym_app": 1, - "permut_rev": 1, - "permut_add_cons_inside.": 1, - "app_nil_end": 1, - "results": 1, - "permut_conv_inv": 1, - "plus_reg_l.": 1, - "permut_app_inv1": 1, - "list_contents_app.": 1, - "plus_reg_l": 1, - "multiplicity": 6, - "Fact": 3, - "if_eqA_then": 1, - "B": 6, - "if_eqA_refl": 3, - "decide_left": 1, - "if_eqA": 1, - "contradict": 3, - "A1": 2, - "if_eqA_rewrite_r": 1, - "A2": 4, - "Hxx": 1, - "multiplicity_InA": 4, - "InA": 8, - "multiplicity_InA_O": 2, - "multiplicity_InA_S": 1, - "multiplicity_NoDupA": 1, - "NoDupA": 3, - "NEQ": 1, - "compatible": 1, - "permut_InA_InA": 3, - "multiplicity_InA.": 1, - "meq.": 2, - "permut_cons_InA": 3, - "permut_nil": 3, - "Abs": 2, - "permut_length_1": 1, - "permut_length_2": 1, - "permut_length_1.": 2, - "@if_eqA_rewrite_l": 2, - "permut_length": 1, - "InA_split": 1, - "h2": 1, - "plus_n_Sm": 1, - "f_equal.": 1, - "app_length": 1, - "IHl1": 1, - "permut_remove_hd": 1, - "f_equal": 1, - "if_eqA_rewrite_l": 1, - "NoDupA_equivlistA_permut": 1, - "Equivalence_Reflexive.": 1, - "change": 1, - "Equivalence_Reflexive": 1, - "Forall2": 2, - "permutation_Permutation": 1, - "Forall2.": 1, - "proof": 1, - "IHA": 2, - "Forall2_app_inv_r": 1, - "Hl1": 1, - "Hl2": 1, - "Forall2_app": 1, - "Forall2_cons": 1, - "Permutation_impl_permutation": 1, - "permut_eqA": 1, - "Permut_permut.": 1, - "permut_right": 1, - "permut_tran": 1 - }, - "Creole": { - "Creole": 6, - "is": 3, - "a": 2, - "-": 5, - "to": 2, - "HTML": 1, - "converter": 2, - "for": 1, - "the": 5, - "lightweight": 1, - "markup": 1, - "language": 1, - "(": 5, - "http": 4, - "//wikicreole.org/": 1, - ")": 5, - ".": 1, - "Github": 1, - "uses": 1, - "this": 1, - "render": 1, - "*.creole": 1, - "files.": 1, - "Project": 1, - "page": 1, - "on": 2, - "github": 1, - "*": 5, - "//github.com/minad/creole": 1, - "Travis": 1, - "CI": 1, - "https": 1, - "//travis": 1, - "ci.org/minad/creole": 1, - "RDOC": 1, - "//rdoc.info/projects/minad/creole": 1, - "INSTALLATION": 1, - "{": 6, - "gem": 1, - "install": 1, - "creole": 1, - "}": 6, - "SYNOPSIS": 1, - "require": 1, - "html": 1, - "Creole.creolize": 1, - "BUGS": 1, - "If": 1, - "you": 1, - "found": 1, - "bug": 1, - "please": 1, - "report": 1, - "it": 1, - "at": 1, - "project": 1, - "s": 1, - "tracker": 1, - "GitHub": 1, - "//github.com/minad/creole/issues": 1, - "AUTHORS": 1, - "Lars": 2, - "Christensen": 2, - "larsch": 1, - "Daniel": 2, - "Mendler": 1, - "minad": 1, - "LICENSE": 1, - "Copyright": 1, - "c": 1, - "Mendler.": 1, - "It": 1, - "free": 1, - "software": 1, - "and": 1, - "may": 1, - "be": 1, - "redistributed": 1, - "under": 1, - "terms": 1, - "specified": 1, - "in": 1, - "README": 1, - "file": 1, - "of": 1, - "Ruby": 1, - "distribution.": 1 - }, - "Crystal": { - "SHEBANG#!bin/crystal": 2, - "require": 2, - "describe": 2, - "do": 26, - "it": 21, - "run": 14, - "(": 201, - ")": 201, - ".to_i.should": 11, - "eq": 16, - "end": 135, - ".to_f32.should": 2, - ".to_b.should": 1, - "be_true": 1, - "module": 1, - "Crystal": 1, - "class": 2, - "ASTNode": 4, - "def": 84, - "transform": 81, - "transformer": 1, - "transformer.before_transform": 1, - "self": 77, - "node": 164, - "transformer.transform": 1, - "transformer.after_transform": 1, - "Transformer": 1, - "before_transform": 1, - "after_transform": 1, - "Expressions": 2, - "exps": 6, - "[": 9, - "]": 9, - "of": 3, - "node.expressions.each": 1, - "|": 8, - "exp": 3, - "new_exp": 3, - "exp.transform": 3, - "if": 23, - "new_exp.is_a": 1, - "exps.concat": 1, - "new_exp.expressions": 1, - "else": 2, - "<<": 1, - "exps.length": 1, - "node.expressions": 3, - "Call": 1, - "node_obj": 1, - "node.obj": 9, - "node_obj.transform": 1, - "transform_many": 23, - "node.args": 3, - "node_block": 1, - "node.block": 2, - "node_block.transform": 1, - "node_block_arg": 1, - "node.block_arg": 6, - "node_block_arg.transform": 1, - "And": 1, - "node.left": 3, - "node.left.transform": 3, - "node.right": 3, - "node.right.transform": 3, - "Or": 1, - "StringInterpolation": 1, - "ArrayLiteral": 1, - "node.elements": 1, - "node_of": 1, - "node.of": 2, - "node_of.transform": 1, - "HashLiteral": 1, - "node.keys": 1, - "node.values": 2, - "of_key": 1, - "node.of_key": 2, - "of_key.transform": 1, - "of_value": 1, - "node.of_value": 2, - "of_value.transform": 1, - "If": 1, - "node.cond": 5, - "node.cond.transform": 5, - "node.then": 3, - "node.then.transform": 3, - "node.else": 5, - "node.else.transform": 3, - "Unless": 1, - "IfDef": 1, - "MultiAssign": 1, - "node.targets": 1, - "SimpleOr": 1, - "Def": 1, - "node.body": 12, - "node.body.transform": 10, - "receiver": 2, - "node.receiver": 4, - "receiver.transform": 2, - "block_arg": 2, - "block_arg.transform": 2, - "Macro": 1, - "PointerOf": 1, - "node.exp": 3, - "node.exp.transform": 3, - "SizeOf": 1, - "InstanceSizeOf": 1, - "IsA": 1, - "node.obj.transform": 5, - "node.const": 1, - "node.const.transform": 1, - "RespondsTo": 1, - "Case": 1, - "node.whens": 1, - "node_else": 1, - "node_else.transform": 1, - "When": 1, - "node.conds": 1, - "ImplicitObj": 1, - "ClassDef": 1, - "superclass": 1, - "node.superclass": 2, - "superclass.transform": 1, - "ModuleDef": 1, - "While": 1, - "Generic": 1, - "node.name": 5, - "node.name.transform": 5, - "node.type_vars": 1, - "ExceptionHandler": 1, - "node.rescues": 1, - "node_ensure": 1, - "node.ensure": 2, - "node_ensure.transform": 1, - "Rescue": 1, - "node.types": 2, - "Union": 1, - "Hierarchy": 1, - "Metaclass": 1, - "Arg": 1, - "default_value": 1, - "node.default_value": 2, - "default_value.transform": 1, - "restriction": 1, - "node.restriction": 2, - "restriction.transform": 1, - "BlockArg": 1, - "node.fun": 1, - "node.fun.transform": 1, - "Fun": 1, - "node.inputs": 1, - "output": 1, - "node.output": 2, - "output.transform": 1, - "Block": 1, - "node.args.map": 1, - "{": 7, - "as": 4, - "Var": 2, - "}": 7, - "FunLiteral": 1, - "node.def.body": 1, - "node.def.body.transform": 1, - "FunPointer": 1, - "obj": 1, - "obj.transform": 1, - "Return": 1, - "node.exps": 5, - "Break": 1, - "Next": 1, - "Yield": 1, - "scope": 1, - "node.scope": 2, - "scope.transform": 1, - "Include": 1, - "Extend": 1, - "RangeLiteral": 1, - "node.from": 1, - "node.from.transform": 1, - "node.to": 2, - "node.to.transform": 2, - "Assign": 1, - "node.target": 1, - "node.target.transform": 1, - "node.value": 3, - "node.value.transform": 3, - "Nop": 1, - "NilLiteral": 1, - "BoolLiteral": 1, - "NumberLiteral": 1, - "CharLiteral": 1, - "StringLiteral": 1, - "SymbolLiteral": 1, - "RegexLiteral": 1, - "MetaVar": 1, - "InstanceVar": 1, - "ClassVar": 1, - "Global": 1, - "Require": 1, - "Path": 1, - "Self": 1, - "LibDef": 1, - "FunDef": 1, - "body": 1, - "body.transform": 1, - "TypeDef": 1, - "StructDef": 1, - "UnionDef": 1, - "EnumDef": 1, - "ExternalVar": 1, - "IndirectRead": 1, - "IndirectWrite": 1, - "TypeOf": 1, - "Primitive": 1, - "Not": 1, - "TypeFilteredNode": 1, - "TupleLiteral": 1, - "Cast": 1, - "DeclareVar": 1, - "node.var": 1, - "node.var.transform": 1, - "node.declared_type": 1, - "node.declared_type.transform": 1, - "Alias": 1, - "TupleIndexer": 1, - "Attribute": 1, - "exps.map": 1, - "assert_type": 7, - "int32": 8, - "union_of": 1, - "char": 1, - "result": 3, - "types": 3, - "mod": 1, - "result.program": 1, - "foo": 3, - "mod.types": 1, - "NonGenericClassType": 1, - "foo.instance_vars": 1, - ".type.should": 3, - "mod.int32": 1, - "GenericClassType": 2, - "foo_i32": 4, - "foo.instantiate": 2, - "Type": 2, - "foo_i32.lookup_instance_var": 2 - }, - "Cuda": { - "#include": 2, - "": 1, - "": 1, - "__global__": 2, - "void": 3, - "vectorAdd": 2, - "(": 20, - "const": 2, - "float": 8, - "*A": 1, - "*B": 1, - "*C": 1, - "int": 14, - "numElements": 4, - ")": 20, - "{": 8, - "i": 5, - "blockDim.x": 3, - "*": 2, - "blockIdx.x": 2, - "+": 12, - "threadIdx.x": 4, - ";": 30, - "if": 3, - "<": 5, - "C": 1, - "[": 11, - "]": 11, - "A": 1, - "B": 1, - "}": 8, - "main": 1, - "cudaError_t": 1, - "err": 5, - "cudaSuccess": 2, - "threadsPerBlock": 4, - "blocksPerGrid": 1, - "-": 1, - "/": 2, - "<<": 1, - "": 1, - "d_A": 2, - "d_B": 2, - "d_C": 2, - "cudaGetLastError": 1, - "fprintf": 1, - "stderr": 1, - "cudaGetErrorString": 1, - "exit": 1, - "EXIT_FAILURE": 1, - "cudaDeviceReset": 1, - "return": 1, - "scalarProdGPU": 1, - "*d_C": 1, - "*d_A": 1, - "*d_B": 1, - "vectorN": 2, - "elementN": 3, - "//Accumulators": 1, - "cache": 1, - "__shared__": 1, - "accumResult": 5, - "ACCUM_N": 4, - "////////////////////////////////////////////////////////////////////////////": 2, - "for": 5, - "vec": 5, - "gridDim.x": 1, - "vectorBase": 3, - "IMUL": 1, - "vectorEnd": 2, - "////////////////////////////////////////////////////////////////////////": 4, - "iAccum": 10, - "sum": 3, - "pos": 5, - "stride": 5, - "__syncthreads": 1 - }, - "Cycript": { - "(": 12, - "function": 2, - "utils": 2, - ")": 12, - "{": 8, - "//": 4, - "Load": 1, - "C": 2, - "functions": 3, - "declared": 1, - "in": 2, - "utils.loadFuncs": 1, - "var": 6, - "shouldLoadCFuncs": 2, - "true": 2, - ";": 21, - "Expose": 2, - "the": 1, - "to": 4, - "cycript": 2, - "s": 2, - "global": 1, - "scope": 1, - "shouldExposeConsts": 2, - "defined": 1, - "here": 1, - "t": 1, - "be": 2, - "found": 2, - "with": 1, - "dlsym": 1, - "Failed": 1, - "load": 1, - "mach_vm_address_t": 1, - "string": 4, - "@encode": 2, - "infinite": 1, - "*": 1, - "length": 1, - "[": 8, - "object": 1, - "Struct": 1, - "]": 8, - "%": 8, - "@": 3, - "<%@:>": 1, - "0x": 1, - "+": 3, - "-": 2, - "printf": 1, - ".3s": 1, - "d": 2, - "c": 5, - "float": 1, - "f": 1, - "n": 1, - "foo": 2, - "barrrr": 1, - "Args": 1, - "needs": 1, - "an": 1, - "array": 1, - "number": 1, - "Function": 1, - "not": 1, - "foobar": 2, - "strdup": 2, - "pipe": 1, - "write": 1, - "close": 2, - "int": 1, - "a": 1, - "short": 1, - "b": 1, - "char": 1, - "uint64_t": 1, - "double": 1, - "e": 1, - "struct": 1, - "}": 9, - "return": 1, - "new": 1, - "Type": 1, - "typeStr": 1, - "Various": 1, - "constants": 1, - "utils.constants": 2, - "VM_PROT_NONE": 1, - "VM_PROT_READ": 1, - "VM_PROT_WRITE": 1, - "VM_PROT_EXECUTE": 1, - "VM_PROT_NO_CHANGE": 1, - "VM_PROT_COPY": 1, - "VM_PROT_WANTS_COPY": 1, - "VM_PROT_IS_MASK": 1, - "c.VM_PROT_DEFAULT": 1, - "c.VM_PROT_READ": 2, - "|": 3, - "c.VM_PROT_WRITE": 2, - "c.VM_PROT_ALL": 1, - "c.VM_PROT_EXECUTE": 1, - "if": 3, - "for": 2, - "k": 3, - "Cycript.all": 2, - "shouldExposeFuncs": 1, - "i": 4, - "<": 1, - "funcsToExpose.length": 1, - "name": 3, - "funcsToExpose": 1, - "utils.loadfuncs": 1, - "shouldExposeCFuncs": 1, - "exports": 1 - }, - "DM": { - "#define": 4, - "PI": 6, - "#if": 1, - "G": 1, - "#elif": 1, - "I": 1, - "#else": 1, - "K": 1, - "#endif": 1, - "var/GlobalCounter": 1, - "var/const/CONST_VARIABLE": 1, - "var/list/MyList": 1, - "list": 3, - "(": 17, - "new": 1, - "/datum/entity": 2, - ")": 17, - "var/list/EmptyList": 1, - "[": 2, - "]": 2, - "//": 6, - "creates": 1, - "a": 1, - "of": 1, - "null": 2, - "entries": 1, - "var/list/NullList": 1, - "var/name": 1, - "var/number": 1, - "/datum/entity/proc/myFunction": 1, - "world.log": 5, - "<<": 5, - "/datum/entity/New": 1, - "number": 2, - "GlobalCounter": 1, - "+": 3, - "/datum/entity/unit": 1, - "name": 1, - "/datum/entity/unit/New": 1, - "..": 1, - "calls": 1, - "the": 2, - "parent": 1, - "s": 1, - "proc": 1, - ";": 3, - "equal": 1, - "to": 1, - "super": 1, - "and": 1, - "base": 1, - "in": 1, - "other": 1, - "languages": 1, - "rand": 1, - "/datum/entity/unit/myFunction": 1, - "/proc/ReverseList": 1, - "var/list/input": 1, - "var/list/output": 1, - "for": 1, - "var/i": 1, - "input.len": 1, - "i": 3, - "-": 2, - "IMPORTANT": 1, - "List": 1, - "Arrays": 1, - "count": 1, - "from": 1, - "output": 2, - "input": 1, - "is": 2, - "return": 3, - "/proc/DoStuff": 1, - "var/bitflag": 2, - "bitflag": 4, - "|": 1, - "/proc/DoOtherStuff": 1, - "bits": 1, - "maximum": 1, - "amount": 1, - "&": 1, - "/proc/DoNothing": 1, - "var/pi": 1, - "if": 2, - "pi": 2, - "else": 2, - "CONST_VARIABLE": 1, - "#undef": 1, - "Undefine": 1 - }, - "Dart": { - "import": 1, - "as": 1, - "math": 1, - ";": 9, - "class": 1, - "Point": 5, - "{": 3, - "num": 2, - "x": 2, - "y": 2, - "(": 7, - "this.x": 1, - "this.y": 1, - ")": 7, - "distanceTo": 1, - "other": 1, - "var": 4, - "dx": 3, - "-": 2, - "other.x": 1, - "dy": 3, - "other.y": 1, - "return": 1, - "math.sqrt": 1, - "*": 2, - "+": 1, - "}": 3, - "void": 1, - "main": 1, - "p": 1, - "new": 2, - "q": 1, - "print": 1 - }, - "Diff": { - "diff": 1, - "-": 5, - "git": 1, - "a/lib/linguist.rb": 2, - "b/lib/linguist.rb": 2, - "index": 1, - "d472341..8ad9ffb": 1, - "+": 3 - }, - "Dockerfile": { - "docker": 1, - "-": 27, - "version": 1, - "from": 1, - "ubuntu": 1, - "maintainer": 1, - "Solomon": 1, - "Hykes": 1, - "": 1, - "run": 13, - "apt": 6, - "get": 6, - "install": 6, - "y": 5, - "q": 2, - "curl": 2, - "git": 7, - "s": 1, - "https": 1, - "//go.googlecode.com/files/go1.1.1.linux": 1, - "amd64.tar.gz": 1, - "|": 1, - "tar": 1, - "v": 2, - "C": 1, - "/usr/local": 1, - "xz": 1, - "env": 4, - "PATH": 2, - "/usr/local/go/bin": 2, - "/usr/local/bin": 2, - "/usr/local/sbin": 2, - "/usr/bin": 2, - "/usr/sbin": 2, - "/bin": 2, - "/sbin": 2, - "GOPATH": 1, - "/go": 1, - "CGO_ENABLED": 1, - "cd": 5, - "/tmp": 1, - "&&": 9, - "echo": 2, - "t.go": 1, - "go": 2, - "test": 1, - "a": 1, - "i": 1, - "PKG": 12, - "github.com/kr/pty": 1, - "REV": 6, - "c699": 1, - ";": 3, - "clone": 3, - "http": 3, - "//": 3, - "/go/src/": 6, - "checkout": 3, - "f": 3, - "github.com/gorilla/context/": 1, - "d61e5": 1, - "github.com/gorilla/mux/": 1, - "b36453141c": 1, - "iptables": 1, - "/etc/apt/sources.list": 1, - "update": 1, - "lxc": 1, - "aufs": 1, - "tools": 1, - "add": 1, - ".": 1, - "/go/src/github.com/dotcloud/docker": 1, - "/go/src/github.com/dotcloud/docker/docker": 1, - "ldflags": 1, - "/go/bin": 1, - "cmd": 1, - "[": 1, - "]": 1 - }, - "Dogescript": { - "quiet": 1, - "wow": 4, - "such": 2, - "language": 3, - "very": 1, - "syntax": 1, - "github": 1, - "recognized": 1, - "loud": 1, - "much": 1, - "friendly": 2, - "rly": 1, - "is": 2, - "true": 1, - "plz": 2, - "console.loge": 2, - "with": 2, - "but": 1, - "module.exports": 1 - }, - "E": { - "pragma.syntax": 1, - "(": 65, - ")": 64, - "to": 27, - "send": 1, - "message": 4, - "{": 57, - "when": 2, - "friend": 4, - "<-receive(message))>": 1, - "chatUI.showMessage": 4, - "}": 57, - "catch": 2, - "prob": 2, - "receive": 1, - "receiveFriend": 2, - "friendRcvr": 2, - "bind": 2, - "save": 1, - "file": 3, - "file.setText": 1, - "makeURIFromObject": 1, - "chatController": 2, - "load": 1, - "getObjectFromURI": 1, - "file.getText": 1, - "<": 1, - "-": 2, - "#File": 1, - "objects": 1, - "for": 3, - "hardwired": 1, - "files": 1, - "def": 24, - "file1": 1, - "": 1, - "file2": 1, - "": 1, - "#Using": 2, - "a": 4, - "variable": 1, - "name": 4, - "filePath": 2, - "file3": 1, - "": 1, - "[": 10, - "]": 10, - "single": 1, - "character": 1, - "specify": 1, - "Windows": 1, - "drive": 1, - "file4": 1, - "": 1, - "file5": 1, - "": 1, - "file6": 1, - "": 1, - "makeVehicle": 3, - "self": 1, - "vehicle": 2, - "milesTillEmpty": 1, - "return": 19, - "self.milesPerGallon": 1, - "*": 1, - "self.getFuelRemaining": 1, - "makeCar": 4, - "var": 6, - "fuelRemaining": 4, - "car": 8, - "extends": 2, - "milesPerGallon": 2, - "getFuelRemaining": 2, - "makeJet": 1, - "jet": 3, - "println": 2, - "The": 2, - "can": 1, - "go": 1, - "car.milesTillEmpty": 1, - "miles.": 1, - "makeVOCPair": 1, - "brandName": 3, - "String": 1, - "near": 6, - "myTempContents": 6, - "none": 2, - "brand": 5, - "__printOn": 4, - "out": 4, - "TextWriter": 4, - "void": 5, - "out.print": 4, - "ProveAuth": 2, - "<$brandName>": 3, - "prover": 1, - "getBrand": 4, - "coerce": 2, - "specimen": 2, - "optEjector": 3, - "sealedBox": 2, - "offerContent": 1, - "CheckAuth": 2, - "checker": 3, - "template": 1, - "match": 4, - "get": 2, - "authList": 2, - "any": 2, - "specimenBox": 2, - "null": 1, - "if": 2, - "specimenBox.__respondsTo": 1, - "specimenBox.offerContent": 1, - "else": 1, - "auth": 3, - "in": 1, - "throw.eject": 1, - "Unmatched": 1, - "authorization": 1, - "__respondsTo": 2, - "_": 3, - "true": 1, - "false": 1, - "__getAllegedType": 1, - "null.__getAllegedType": 1, - "tempVow": 2, - "#...use": 1, - "#....": 1, - "report": 1, - "problem": 1, - "finally": 1, - "#....log": 1, - "event": 1, - "x": 3, - "y": 3, - "moveTo": 1, - "newX": 2, - "newY": 2, - "getX": 1, - "getY": 1, - "setName": 1, - "newName": 2, - "getName": 1, - "sportsCar": 1, - "sportsCar.moveTo": 1, - "sportsCar.getName": 1, - "is": 1, - "at": 1, - "X": 1, - "location": 1, - "sportsCar.getX": 1 - }, - "ECL": { - "#option": 1, - "(": 32, - "true": 1, - ")": 32, - ";": 23, - "namesRecord": 4, - "RECORD": 1, - "string20": 1, - "surname": 1, - "string10": 2, - "forename": 1, - "integer2": 5, - "age": 2, - "dadAge": 1, - "mumAge": 1, - "END": 1, - "namesRecord2": 3, - "record": 1, - "extra": 1, - "end": 1, - "namesTable": 11, - "dataset": 2, - "FLAT": 2, - "namesTable2": 9, - "aveAgeL": 3, - "l": 1, - "l.dadAge": 1, - "+": 16, - "l.mumAge": 1, - "/2": 2, - "aveAgeR": 4, - "r": 1, - "r.dadAge": 1, - "r.mumAge": 1, - "output": 9, - "join": 11, - "left": 2, - "right": 3, - "//Several": 1, - "simple": 1, - "examples": 1, - "of": 1, - "sliding": 2, - "syntax": 1, - "left.age": 8, - "right.age": 12, - "-": 5, - "and": 10, - "<": 1, - "between": 7, - "//Same": 1, - "but": 1, - "on": 1, - "strings.": 1, - "Also": 1, - "includes": 1, - "to": 1, - "ensure": 1, - "sort": 1, - "is": 1, - "done": 1, - "by": 1, - "non": 1, - "before": 1, - "sliding.": 1, - "left.surname": 2, - "right.surname": 4, - "[": 4, - "]": 4, - "all": 1, - "//This": 1, - "should": 1, - "not": 1, - "generate": 1, - "a": 1, - "self": 1 - }, - "Eagle": { - "": 2, - "version=": 4, - "encoding=": 2, - "": 2, - "eagle": 4, - "SYSTEM": 2, - "dtd": 2, - "": 2, - "": 2, - "": 2, - "": 4, - "alwaysvectorfont=": 2, - "verticaltext=": 2, - "": 2, - "": 2, - "distance=": 2, - "unitdist=": 2, - "unit=": 2, - "style=": 2, - "multiple=": 2, - "display=": 2, - "altdistance=": 2, - "altunitdist=": 2, - "altunit=": 2, - "": 2, - "": 118, - "number=": 119, - "name=": 447, - "color=": 118, - "fill=": 118, - "visible=": 118, - "active=": 125, - "": 2, - "": 1, - "xreflabel=": 1, - "xrefpart=": 1, - "": 2, - "": 4, - "": 60, - "&": 5501, - "lt": 2665, - ";": 5567, - "b": 64, - "gt": 2770, - "Frames": 1, - "for": 5, - "Sheet": 2, - "and": 5, - "Layout": 1, - "/b": 64, - "": 60, - "": 4, - "": 3, - "": 1, - "": 1, - "": 497, - "x1=": 630, - "y1=": 630, - "x2=": 630, - "y2=": 630, - "width=": 512, - "layer=": 822, - "": 108, - "x=": 240, - "y=": 242, - "size=": 114, - "font=": 4, - "DRAWING_NAME": 1, - "": 108, - "LAST_DATE_TIME": 1, - "SHEET": 1, - "": 1, - "columns=": 1, - "rows=": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "prefix=": 1, - "uservalue=": 1, - "FRAME": 1, - "p": 65, - "DIN": 1, - "A4": 1, - "landscape": 1, - "with": 1, - "location": 1, - "doc.": 1, - "field": 1, - "": 1, - "": 1, - "symbol=": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 3, - "Resistors": 2, - "Capacitors": 4, - "Inductors": 2, - "Based": 2, - "on": 2, - "the": 5, - "previous": 2, - "libraries": 2, - "ul": 2, - "li": 12, - "r.lbr": 2, - "cap.lbr": 2, - "cap": 2, - "-": 768, - "fe.lbr": 2, - "captant.lbr": 2, - "polcap.lbr": 2, - "ipc": 2, - "smd.lbr": 2, - "/ul": 2, - "All": 2, - "SMD": 4, - "packages": 2, - "are": 2, - "defined": 2, - "according": 2, - "to": 3, - "IPC": 2, - "specifications": 2, - "CECC": 2, - "author": 3, - "Created": 3, - "by": 3, - "librarian@cadsoft.de": 3, - "/author": 3, - "Electrolyt": 2, - "see": 4, - "also": 2, - "www.bccomponents.com": 2, - "www.panasonic.com": 2, - "www.kemet.com": 2, - "http": 4, - "//www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf": 2, - "(": 4, - "SANYO": 2, - ")": 4, - "trimmer": 2, - "refence": 2, - "u": 2, - "www.electrospec": 2, - "inc.com/cross_references/trimpotcrossref.asp": 2, - "/u": 2, - "table": 2, - "border": 2, - "cellspacing": 2, - "cellpadding": 2, - "width": 6, - "cellpaddding": 2, - "tr": 2, - "valign": 2, - "td": 4, - "amp": 66, - "nbsp": 66, - "/td": 4, - "font": 2, - "color": 20, - "size": 2, - "TRIM": 4, - "POT": 4, - "CROSS": 4, - "REFERENCE": 4, - "/font": 2, - "P": 128, - "TABLE": 4, - "BORDER": 4, - "CELLSPACING": 4, - "CELLPADDING": 4, - "TR": 36, - "TD": 170, - "COLSPAN": 16, - "FONT": 166, - "SIZE": 166, - "FACE": 166, - "ARIAL": 166, - "B": 106, - "RECTANGULAR": 2, - "MULTI": 6, - "TURN": 10, - "/B": 90, - "/FONT": 166, - "/TD": 170, - "/TR": 36, - "ALIGN": 124, - "CENTER": 124, - "BOURNS": 6, - "BI": 10, - "TECH": 10, - "DALE": 10, - "VISHAY": 10, - "PHILIPS/MEPCO": 10, - "MURATA": 6, - "PANASONIC": 10, - "SPECTROL": 6, - "MILSPEC": 6, - "BGCOLOR": 76, - "BR": 1478, - "W": 92, - "Y": 36, - "J": 12, - "L": 18, - "X": 82, - "PH": 2, - "XH": 2, - "SLT": 2, - "ALT": 42, - "T8S": 2, - "T18/784": 2, - "/1897": 2, - "/1880": 2, - "EKP/CT20/RJ": 2, - "RJ": 14, - "EKQ": 4, - "EKR": 4, - "EKJ": 2, - "EKL": 2, - "S": 18, - "EVMCOG": 2, - "T602": 2, - "RT/RTR12": 6, - "RJ/RJR12": 6, - "SQUARE": 2, - "BOURN": 4, - "H": 24, - "Z": 16, - "T63YB": 2, - "T63XB": 2, - "T93Z": 2, - "T93YA": 2, - "T93XA": 2, - "T93YB": 2, - "T93XB": 2, - "EKP": 8, - "EKW": 6, - "EKM": 4, - "EKB": 2, - "EKN": 2, - "P/CT9P": 2, - "P/3106P": 2, - "W/3106W": 2, - "X/3106X": 2, - "Y/3106Y": 2, - "Z/3105Z": 2, - "EVMCBG": 2, - "EVMCCG": 2, - "RT/RTR22": 8, - "RJ/RJR22": 6, - "RT/RTR26": 6, - "RJ/RJR26": 12, - "RT/RTR24": 6, - "RJ/RJR24": 12, - "SINGLE": 4, - "E": 6, - "K": 4, - "T": 10, - "V": 10, - "M": 10, - "R": 6, - "U": 4, - "C": 6, - "F": 4, - "RX": 6, - "PA": 2, - "A": 16, - "XW": 2, - "XL": 2, - "PM": 2, - "PX": 2, - "RXW": 2, - "RXL": 2, - "T7YB": 2, - "T7YA": 2, - "TXD": 2, - "TYA": 2, - "TYP": 2, - "TYD": 2, - "TX": 4, - "SX": 6, - "ET6P": 2, - "ET6S": 2, - "ET6X": 2, - "W/8014EMW": 2, - "P/8014EMP": 2, - "X/8014EMX": 2, - "TM7W": 2, - "TM7P": 2, - "TM7X": 2, - "SMS": 2, - "SMB": 2, - "SMA": 2, - "CT": 12, - "EKV": 2, - "EKX": 2, - "EKZ": 2, - "N": 2, - "RVA0911V304A": 2, - "RVA0911H413A": 2, - "RVG0707V100A": 2, - "RVA0607V": 2, - "RVA1214H213A": 2, - "EVMQ0G": 4, - "EVMQIG": 2, - "EVMQ3G": 2, - "EVMS0G": 2, - "EVMG0G": 2, - "EVMK4GA00B": 2, - "EVM30GA00B": 2, - "EVMK0GA00B": 2, - "EVM38GA00B": 2, - "EVMB6": 2, - "EVLQ0": 2, - "EVMMSG": 2, - "EVMMBG": 2, - "EVMMAG": 2, - "EVMMCS": 2, - "EVMM1": 2, - "EVMM0": 2, - "EVMM3": 2, - "RJ/RJR50": 6, - "/TABLE": 4, - "TOCOS": 4, - "AUX/KYOCERA": 4, - "G": 10, - "ST63Z": 2, - "ST63Y": 2, - "ST5P": 2, - "ST5W": 2, - "ST5X": 2, - "A/B": 2, - "C/D": 2, - "W/X": 2, - "ST5YL/ST53YL": 2, - "ST5YJ/5T53YJ": 2, - "ST": 14, - "EVM": 8, - "YS": 2, - "D": 2, - "G4B": 2, - "G4A": 2, - "TR04": 2, - "S1": 4, - "TRG04": 2, - "DVR": 2, - "CVR": 4, - "A/C": 2, - "ALTERNATE": 2, - "/tr": 2, - "/table": 2, - "": 53, - "RESISTOR": 52, - "": 64, - "dx=": 64, - "dy=": 64, - "NAME": 52, - "VALUE": 52, - "": 132, - "": 52, - "wave": 10, - "soldering": 10, - "Source": 2, - "//download.siliconexpert.com/pdfs/2005/02/24/Semi_Ap/2/VSH/Resistor/dcrcwfre.pdf": 2, - "MELF": 8, - "type": 20, - "grid": 20, - "mm": 20, - "curve=": 56, - "": 39, - "drill=": 41, - "shape=": 39, - "ratio=": 41, - "": 12, - "radius=": 12, - "": 1, - "": 1, - "": 1, - "Pin": 1, - "Header": 1, - "Connectors": 1, - "PIN": 1, - "HEADER": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "language=": 2, - "EAGLE": 2, - "Design": 5, - "Rules": 5, - "Die": 1, - "Standard": 1, - "sind": 1, - "so": 2, - "gew": 1, - "hlt": 1, - "dass": 1, - "sie": 1, - "f": 1, - "r": 1, - "die": 3, - "meisten": 1, - "Anwendungen": 1, - "passen.": 1, - "Sollte": 1, - "ihre": 1, - "Platine": 1, - "besondere": 1, - "Anforderungen": 1, - "haben": 1, - "treffen": 1, - "Sie": 1, - "erforderlichen": 1, - "Einstellungen": 1, - "hier": 1, - "und": 1, - "speichern": 1, - "unter": 1, - "einem": 1, - "neuen": 1, - "Namen": 1, - "ab.": 1, - "The": 1, - "default": 1, - "have": 2, - "been": 1, - "set": 1, - "cover": 1, - "a": 2, - "wide": 1, - "range": 1, - "of": 1, - "applications.": 1, - "Your": 1, - "particular": 1, - "design": 2, - "may": 1, - "different": 1, - "requirements": 1, - "please": 1, - "make": 1, - "necessary": 1, - "adjustments": 1, - "save": 1, - "your": 1, - "customized": 1, - "rules": 1, - "under": 1, - "new": 1, - "name.": 1, - "": 142, - "value=": 145, - "": 1, - "": 1, - "": 8, - "": 8, - "refer=": 7, - "": 1, - "": 1, - "": 3, - "library=": 3, - "package=": 3, - "smashed=": 3, - "": 6, - "": 3, - "1": 1, - "778": 1, - "16": 1, - "002": 1, - "": 1, - "": 1, - "": 3, - "": 4, - "element=": 4, - "pad=": 4, - "": 1, - "extent=": 1, - "": 3, - "": 2, - "": 8, - "": 2, - "": 1, - "": 1, - "": 1, - "": 1 - }, - "Elm": { - "data": 1, - "Tree": 3, - "a": 5, - "Node": 8, - "(": 119, - ")": 116, - "|": 3, - "Empty": 8, - "empty": 2, - "singleton": 2, - "v": 8, - "insert": 4, - "x": 13, - "tree": 7, - "case": 5, - "of": 7, - "-": 11, - "y": 7, - "left": 7, - "right": 8, - "if": 2, - "then": 2, - "else": 2, - "<": 1, - "fromList": 3, - "xs": 9, - "foldl": 1, - "depth": 5, - "+": 14, - "max": 1, - "map": 11, - "f": 8, - "t1": 2, - "[": 31, - "]": 31, - "t2": 3, - "main": 3, - "flow": 4, - "down": 3, - "display": 4, - "name": 6, - "text": 4, - ".": 9, - "monospace": 1, - "toText": 6, - "concat": 1, - "show": 2, - "asText": 1, - "qsort": 4, - "lst": 6, - "filter": 2, - "<)x)>": 1, - "import": 3, - "List": 1, - "intercalate": 2, - "intersperse": 3, - "Website.Skeleton": 1, - "Website.ColorScheme": 1, - "addFolder": 4, - "folder": 2, - "let": 2, - "add": 2, - "in": 2, - "n": 2, - "elements": 2, - "functional": 2, - "reactive": 2, - "example": 3, - "loc": 2, - "Text.link": 1, - "toLinks": 2, - "title": 2, - "links": 2, - "width": 3, - "italic": 1, - "bold": 2, - "Text.color": 1, - "accent4": 1, - "insertSpace": 2, - "{": 1, - "spacer": 2, - ";": 1, - "}": 1, - "subsection": 2, - "w": 7, - "info": 2, - "words": 2, - "markdown": 1, - "###": 1, - "Basic": 1, - "Examples": 1, - "Each": 1, - "listed": 1, - "below": 1, - "focuses": 1, - "on": 1, - "single": 1, - "function": 1, - "or": 1, - "concept.": 1, - "These": 1, - "examples": 1, - "demonstrate": 1, - "all": 1, - "the": 1, - "basic": 1, - "building": 1, - "blocks": 1, - "Elm.": 1, - "content": 2, - "exampleSets": 2, - "plainText": 1, - "lift": 1, - "skeleton": 1, - "Window.width": 1 - }, - "Emacs Lisp": { - ";": 333, - "ess": 48, - "-": 294, - "julia.el": 2, - "ESS": 5, - "julia": 39, - "mode": 12, - "and": 3, - "inferior": 13, - "interaction": 1, - "Copyright": 1, - "(": 156, - "C": 2, - ")": 144, - "Vitalie": 3, - "Spinu.": 1, - "Filename": 1, - "Author": 1, - "Spinu": 2, - "based": 1, - "on": 2, - "mode.el": 1, - "from": 3, - "lang": 1, - "project": 1, - "Maintainer": 1, - "Created": 1, - "Keywords": 1, - "This": 4, - "file": 10, - "is": 5, - "*NOT*": 1, - "part": 2, - "of": 8, - "GNU": 4, - "Emacs.": 1, - "program": 6, - "free": 1, - "software": 1, - "you": 1, - "can": 1, - "redistribute": 1, - "it": 3, - "and/or": 1, - "modify": 5, - "under": 1, - "the": 10, - "terms": 1, - "General": 3, - "Public": 3, - "License": 3, - "as": 1, - "published": 1, - "by": 1, - "Free": 2, - "Software": 2, - "Foundation": 2, - "either": 1, - "version": 2, - "any": 1, - "later": 1, - "version.": 1, - "distributed": 1, - "in": 3, - "hope": 1, - "that": 2, - "will": 1, - "be": 2, - "useful": 1, - "but": 2, - "WITHOUT": 1, - "ANY": 1, - "WARRANTY": 1, - "without": 1, - "even": 1, - "implied": 1, - "warranty": 1, - "MERCHANTABILITY": 1, - "or": 3, - "FITNESS": 1, - "FOR": 1, - "A": 1, - "PARTICULAR": 1, - "PURPOSE.": 1, - "See": 1, - "for": 8, - "more": 1, - "details.": 1, - "You": 1, - "should": 2, - "have": 1, - "received": 1, - "a": 4, - "copy": 2, - "along": 1, - "with": 4, - "this": 1, - "see": 2, - "COPYING.": 1, - "If": 1, - "not": 1, - "write": 2, - "to": 4, - "Inc.": 1, - "Franklin": 1, - "Street": 1, - "Fifth": 1, - "Floor": 1, - "Boston": 1, - "MA": 1, - "USA.": 1, - "Commentary": 1, - "customise": 1, - "name": 8, - "point": 6, - "your": 1, - "release": 1, - "basic": 1, - "start": 13, - "M": 2, - "x": 2, - "julia.": 2, - "require": 2, - "auto": 1, - "alist": 9, - "table": 9, - "character": 1, - "quote": 2, - "transpose": 1, - "syntax": 7, - "entry": 4, - ".": 40, - "Syntax": 3, - "inside": 1, - "char": 6, - "defvar": 5, - "let": 3, - "make": 4, - "defconst": 5, - "regex": 5, - "unquote": 1, - "forloop": 1, - "subset": 2, - "regexp": 6, - "font": 6, - "lock": 6, - "defaults": 2, - "list": 3, - "identity": 1, - "keyword": 2, - "face": 4, - "constant": 1, - "cons": 1, - "function": 7, - "keep": 2, - "string": 8, - "paragraph": 3, - "concat": 7, - "page": 2, - "delimiter": 2, - "separate": 1, - "ignore": 2, - "fill": 1, - "prefix": 2, - "t": 6, - "final": 1, - "newline": 1, - "comment": 6, - "add": 4, - "skip": 1, - "column": 1, - "indent": 8, - "S": 2, - "line": 5, - "calculate": 1, - "parse": 1, - "sexp": 1, - "comments": 1, - "style": 2, - "default": 1, - "ignored": 1, - "local": 6, - "process": 5, - "nil": 12, - "dump": 2, - "files": 1, - "_": 1, - "autoload": 1, - "defun": 5, - "send": 3, - "visibly": 1, - "temporary": 1, - "directory": 2, - "temp": 2, - "insert": 1, - "format": 3, - "load": 1, - "command": 5, - "get": 3, - "help": 3, - "topics": 1, - "&": 3, - "optional": 3, - "proc": 3, - "words": 1, - "vector": 1, - "com": 1, - "error": 6, - "s": 5, - "*in": 1, - "[": 3, - "n": 1, - "]": 3, - "*": 1, - "at": 5, - ".*": 2, - "+": 5, - "w*": 1, - "http": 1, - "//docs.julialang.org/en/latest/search/": 1, - "q": 1, - "%": 1, - "include": 1, - "funargs": 1, - "re": 2, - "args": 10, - "language": 1, - "STERM": 1, - "editor": 2, - "R": 2, - "pager": 2, - "versions": 1, - "Julia": 1, - "made": 1, - "available.": 1, - "String": 1, - "arguments": 2, - "used": 1, - "when": 2, - "starting": 1, - "group": 1, - "###autoload": 2, - "interactive": 2, - "setq": 2, - "customize": 5, - "emacs": 1, - "<": 1, - "hook": 4, - "complete": 1, - "object": 2, - "completion": 4, - "functions": 2, - "first": 1, - "if": 4, - "fboundp": 1, - "end": 1, - "workaround": 1, - "set": 3, - "variable": 3, - "post": 1, - "run": 2, - "settings": 1, - "notably": 1, - "null": 1, - "dribble": 1, - "buffer": 3, - "debugging": 1, - "only": 1, - "dialect": 1, - "current": 2, - "arg": 1, - "let*": 2, - "jl": 2, - "space": 1, - "just": 1, - "case": 1, - "read": 1, - "..": 3, - "multi": 1, - "...": 1, - "tb": 1, - "logo": 1, - "goto": 2, - "min": 1, - "while": 1, - "search": 1, - "forward": 1, - "replace": 1, - "match": 1, - "max": 1, - "inject": 1, - "code": 1, - "etc": 1, - "hooks": 1, - "busy": 1, - "funname": 5, - "eldoc": 1, - "show": 1, - "symbol": 2, - "aggressive": 1, - "car": 1, - "funname.start": 1, - "sequence": 1, - "nth": 1, - "W": 1, - "window": 2, - "width": 1, - "minibuffer": 1, - "length": 1, - "doc": 1, - "propertize": 1, - "use": 1, - "classes": 1, - "screws": 1, - "egrep": 1, - "print": 1 - }, - "EmberScript": { - "class": 1, - "App.FromNowView": 2, - "extends": 1, - "Ember.View": 1, - "tagName": 1, - "template": 1, - "Ember.Handlebars.compile": 1, - "output": 1, - "return": 1, - "moment": 1, - "(": 5, - "@value": 1, - ")": 5, - ".fromNow": 1, - "didInsertElement": 1, - "-": 4, - "@tick": 2, - "tick": 1, - "f": 2, - "@notifyPropertyChange": 1, - "nextTick": 4, - "Ember.run.later": 1, - "this": 1, - "@set": 1, - "willDestroyElement": 1, - "@nextTick": 1, - "Ember.run.cancel": 1, - "Ember.Handlebars.helper": 1 - }, - "Erlang": { - "%": 134, - "For": 1, - "each": 1, - "header": 1, - "file": 6, - "it": 2, - "scans": 1, - "thru": 1, - "all": 1, - "records": 1, - "and": 8, - "create": 1, - "helper": 1, - "functions": 2, - "Helper": 1, - "are": 3, - "setters": 1, - "getters": 1, - "fields": 4, - "fields_atom": 4, - "type": 6, - "-": 262, - "module": 2, - "(": 236, - "record_helper": 1, - ")": 230, - ".": 37, - "export": 2, - "[": 66, - "make/1": 1, - "make/2": 1, - "]": 61, - "make": 3, - "HeaderFiles": 5, - "atom_to_list": 18, - "X": 12, - "||": 6, - "<->": 5, - "hrl": 1, - "relative": 1, - "to": 2, - "current": 1, - "dir": 1, - "OutDir": 4, - "ModuleName": 3, - "HeaderComment": 2, - "ModuleDeclaration": 2, - "+": 214, - "<": 1, - "Src": 10, - "format_src": 8, - "lists": 11, - "sort": 1, - "flatten": 6, - "read": 2, - "generate_type_default_function": 2, - "write_file": 1, - "erl": 1, - "list_to_binary": 1, - "HeaderFile": 4, - "try": 2, - "epp": 1, - "parse_file": 1, - "of": 9, - "{": 109, - "ok": 34, - "Tree": 4, - "}": 109, - "parse": 2, - ";": 56, - "error": 4, - "Error": 4, - "catch": 2, - "_": 52, - "catched_error": 1, - "end.": 3, - "|": 25, - "T": 24, - "when": 29, - "length": 6, - "Type": 3, - "A": 5, - "B": 4, - "NSrc": 4, - "_Type": 1, - "Type1": 2, - "parse_record": 3, - "attribute": 1, - "record": 4, - "RecordInfo": 2, - "RecordName": 41, - "RecordFields": 10, - "if": 1, - "generate_setter_getter_function": 5, - "generate_type_function": 3, - "true": 3, - "generate_fields_function": 2, - "generate_fields_atom_function": 2, - "end": 3, - "parse_field_name": 5, - "record_field": 9, - "atom": 9, - "FieldName": 26, - "field": 4, - "_FieldName": 2, - "ParentRecordName": 8, - "parent_field": 2, - "parse_field_name_atom": 5, - "concat": 5, - "_S": 3, - "F": 16, - "S": 6, - "concat_ext": 4, - "parse_field": 6, - "AccFields": 6, - "AccParentFields": 6, - "case": 3, - "Field": 2, - "PField": 2, - "parse_field_atom": 4, - "zzz": 1, - "Fields": 4, - "field_atom": 1, - "to_setter_getter_function": 5, - "setter": 2, - "getter": 2, - "SHEBANG#!escript": 3, - "*": 9, - "erlang": 5, - "smp": 1, - "enable": 1, - "sname": 1, - "factorial": 1, - "mnesia": 1, - "debug": 1, - "verbose": 1, - "main": 4, - "String": 2, - "N": 6, - "list_to_integer": 1, - "fac": 4, - "io": 5, - "format": 7, - "usage": 3, - "halt": 2, - "Mode": 1, - "coding": 1, - "utf": 1, - "tab": 1, - "width": 1, - "c": 2, - "basic": 1, - "offset": 1, - "indent": 1, - "tabs": 1, - "mode": 2, - "BSD": 1, - "LICENSE": 1, - "Copyright": 1, - "Michael": 2, - "Truog": 2, - "": 1, - "at": 1, - "gmail": 1, - "dot": 1, - "com": 1, - "All": 2, - "rights": 1, - "reserved.": 1, - "Redistribution": 1, - "use": 2, - "in": 3, - "source": 2, - "binary": 2, - "forms": 1, - "with": 2, - "or": 3, - "without": 2, - "modification": 1, - "permitted": 1, - "provided": 2, - "that": 1, - "the": 9, - "following": 4, - "conditions": 3, - "met": 1, - "Redistributions": 2, - "code": 2, - "must": 3, - "retain": 1, - "above": 2, - "copyright": 2, - "notice": 2, - "this": 4, - "list": 2, - "disclaimer.": 1, - "form": 1, - "reproduce": 1, - "disclaimer": 1, - "documentation": 1, - "and/or": 1, - "other": 1, - "materials": 2, - "distribution.": 1, - "advertising": 1, - "mentioning": 1, - "features": 1, - "software": 3, - "display": 1, - "acknowledgment": 1, - "This": 2, - "product": 1, - "includes": 1, - "developed": 1, - "by": 1, - "The": 1, - "name": 1, - "author": 2, - "may": 1, - "not": 1, - "be": 1, - "used": 1, - "endorse": 1, - "promote": 1, - "products": 1, - "derived": 1, - "from": 1, - "specific": 1, - "prior": 1, - "written": 1, - "permission": 1, - "THIS": 2, - "SOFTWARE": 2, - "IS": 1, - "PROVIDED": 1, - "BY": 1, - "THE": 5, - "COPYRIGHT": 2, - "HOLDERS": 1, - "AND": 4, - "CONTRIBUTORS": 2, - "ANY": 4, - "EXPRESS": 1, - "OR": 8, - "IMPLIED": 2, - "WARRANTIES": 2, - "INCLUDING": 3, - "BUT": 2, - "NOT": 2, - "LIMITED": 2, - "TO": 2, - "OF": 8, - "MERCHANTABILITY": 1, - "FITNESS": 1, - "FOR": 2, - "PARTICULAR": 1, - "PURPOSE": 1, - "ARE": 1, - "DISCLAIMED.": 1, - "IN": 3, - "NO": 1, - "EVENT": 1, - "SHALL": 1, - "OWNER": 1, - "BE": 1, - "LIABLE": 1, - "DIRECT": 1, - "INDIRECT": 1, - "INCIDENTAL": 1, - "SPECIAL": 1, - "EXEMPLARY": 1, - "CONSEQUENTIAL": 1, - "DAMAGES": 1, - "PROCUREMENT": 1, - "SUBSTITUTE": 1, - "GOODS": 1, - "SERVICES": 1, - "LOSS": 1, - "USE": 2, - "DATA": 1, - "PROFITS": 1, - "BUSINESS": 1, - "INTERRUPTION": 1, - "HOWEVER": 1, - "CAUSED": 1, - "ON": 1, - "THEORY": 1, - "LIABILITY": 2, - "WHETHER": 1, - "CONTRACT": 1, - "STRICT": 1, - "TORT": 1, - "NEGLIGENCE": 1, - "OTHERWISE": 1, - "ARISING": 1, - "WAY": 1, - "OUT": 1, - "EVEN": 1, - "IF": 1, - "ADVISED": 1, - "POSSIBILITY": 1, - "SUCH": 1, - "DAMAGE.": 1, - "compile": 2, - "sys": 2, - "RelToolConfig": 5, - "target_dir": 2, - "TargetDir": 14, - "overlay": 2, - "OverlayConfig": 4, - "consult": 1, - "Spec": 2, - "reltool": 2, - "get_target_spec": 1, - "make_dir": 1, - "eexist": 1, - "exit_code": 3, - "eval_target_spec": 1, - "root_dir": 1, - "process_overlay": 2, - "shell": 3, - "Command": 3, - "Arguments": 3, - "CommandSuffix": 2, - "reverse": 4, - "os": 1, - "cmd": 1, - "io_lib": 2, - "boot_rel_vsn": 2, - "Config": 2, - "_RelToolConfig": 1, - "rel": 2, - "_Name": 1, - "Ver": 1, - "proplists": 1, - "lookup": 1, - "Ver.": 1, - "minimal": 2, - "parsing": 1, - "for": 1, - "handling": 1, - "mustache": 11, - "syntax": 1, - "Body": 2, - "Context": 11, - "Result": 10, - "_Context": 1, - "KeyStr": 6, - "mustache_key": 4, - "C": 4, - "Rest": 10, - "Key": 2, - "list_to_existing_atom": 1, - "Value": 35, - "dict": 2, - "find": 1, - "support": 1, - "based": 1, - "on": 1, - "rebar": 1, - "overlays": 1, - "BootRelVsn": 2, - "OverlayVars": 2, - "from_list": 1, - "erts_vsn": 1, - "system_info": 1, - "version": 1, - "rel_vsn": 1, - "hostname": 1, - "net_adm": 1, - "localhost": 1, - "BaseDir": 7, - "get_cwd": 1, - "execute_overlay": 6, - "_Vars": 1, - "_BaseDir": 1, - "_TargetDir": 1, - "mkdir": 1, - "Out": 4, - "Vars": 7, - "filename": 3, - "join": 3, - "copy": 1, - "In": 2, - "InFile": 3, - "OutFile": 2, - "filelib": 1, - "is_file": 1, - "ExitCode": 2, - "flush": 1, - "main/1": 1, - "is": 1, - "auto": 1, - "generated": 1, - "file.": 1, - "Please": 1, - "don": 1, - "t": 1, - "edit": 1, - "record_utils": 1, - "export_all": 1, - "include": 1, - "abstract_message": 21, - "async_message": 12, - "clientId": 5, - "destination": 5, - "messageId": 5, - "timestamp": 5, - "timeToLive": 5, - "headers": 5, - "body": 5, - "correlationId": 5, - "correlationIdBytes": 5, - "get": 12, - "Obj": 49, - "is_record": 25, - "Obj#abstract_message.body": 1, - "Obj#abstract_message.clientId": 1, - "Obj#abstract_message.destination": 1, - "Obj#abstract_message.headers": 1, - "Obj#abstract_message.messageId": 1, - "Obj#abstract_message.timeToLive": 1, - "Obj#abstract_message.timestamp": 1, - "Obj#async_message.correlationId": 1, - "Obj#async_message.correlationIdBytes": 1, - "parent": 5, - "Obj#async_message.parent": 3, - "ParentProperty": 6, - "is_atom": 2, - "set": 13, - "NewObj": 20, - "Obj#abstract_message": 7, - "Obj#async_message": 3, - "NewParentObject": 2, - "undefined.": 1 - }, - "F#": { - "namespace": 7, - "Nessos.FsPickler.Json": 6, - "open": 34, - "System": 6, - "System.IO": 3, - "System.Text": 2, - "Newtonsoft.Json": 3, - "Nessos.FsPickler": 7, - "///": 50, - "": 13, - "Factory": 1, - "methods": 2, - "for": 9, - "the": 2, - "Json": 16, - "serialization": 1, - "format.": 2, - "": 13, - "type": 18, - "JsonPickleFormatProvider": 3, - "internal": 5, - "(": 254, - "indent": 11, - "omitHeader": 19, - ")": 256, - "as": 2, - "self": 1, - "let": 131, - "isCustomSeq": 5, - "isTopLevelSequence": 19, - "&&": 9, - "self.OmitHeader": 1, - "self.UseCustomTopLevelSequenceSeparator": 1, - "mutable": 5, - "sequenceSeparator": 5, - "member": 77, - "val": 4, - "Indent": 2, - "with": 18, - "get": 8, - "set": 9, - "OmitHeader": 3, - "UseCustomTopLevelSequenceSeparator": 1, - "false": 22, - "__.SequenceSeparator": 1, - "and": 5, - "sep": 6, - "if": 36, - "<": 32, - "null": 5, - "String.IsNullOrWhiteSpace": 1, - "then": 38, - "<->": 9, - "else": 24, - "invalidArg": 2, - "SequenceSeparator": 1, - "should": 4, - "be": 4, - "non": 2, - "whitespace": 2, - "interface": 4, - "ITextPickleFormatProvider": 1, - "__": 8, - "Name": 1, - "see": 1, - "discussion": 1, - "https": 1, - "github": 1, - "com": 1, - "nessos": 1, - "FsPickler": 8, - "issues": 1, - "17": 1, - "DefaultEncoding": 1, - "new": 52, - "UTF8Encoding": 1, - "Encoding": 1, - "__.CreateWriter": 2, - "stream": 6, - "encoding": 6, - "leaveOpen": 18, - "#if": 2, - "NET40": 2, - "raise": 11, - "<|>": 11, - "NotSupportedException": 3, - "not": 14, - "supported": 2, - "in": 15, - "NET": 2, - "40": 2, - "sw": 3, - "StreamWriter": 2, - "1024": 2, - "endif": 2, - "jw": 4, - "JsonTextWriter": 2, - "JsonPickleWriter": 3, - "_": 18, - "__.CreateReader": 2, - "sr": 3, - "StreamReader": 2, - "true": 15, - "jr": 4, - "JsonTextReader": 2, - "JsonPickleReader": 3, - "textWriter": 2, - "__.OmitHeader": 2, - "__.Indent": 1, - "textReader": 2, - "Nessos.FsPickler.Tests": 2, - "PerfUtil": 2, - "PerfUtil.NUnit": 1, - "NUnit.Framework": 1, - "[": 71, - "": 1, - "]": 71, - "PerfTester": 4, - "inherit": 7, - "NUnitPerf": 1, - "": 2, - "tests": 2, - "PerfTest.OfModuleMarker": 1, - "": 1, - "override": 4, - "__.PerfTests": 1, - "Serializer": 8, - "Comparison": 3, - "fsp": 4, - "FsPickler.initBinary": 3, - "bfs": 2, - "BinaryFormatterSerializer": 1, - "ndc": 2, - "NetDataContractSerializer": 1, - "jdn": 2, - "JsonDotNetSerializer": 1, - "bdn": 2, - "JsonDotNetBsonSerializer": 1, - "pbn": 2, - "ProtoBufSerializer": 1, - "ssj": 2, - "ServiceStackJsonSerializer": 1, - "sst": 2, - "ServiceStackTypeSerializer": 1, - "comparer": 6, - "WeightedComparer": 2, - "spaceFactor": 2, - "leastAcceptableImprovementFactor": 2, - "tester": 6, - "ImplementationComparer": 2, - "<_>": 4, - ";": 17, - "throwOnError": 3, - "warmup": 3, - "__.PerfTester": 3, - "Formats": 1, - "binary": 2, - "json": 5, - "FsPickler.initJson": 1, - "bson": 2, - "FsPickler.initBson": 1, - "xml": 2, - "FsPickler.initXml": 1, - "Past": 1, - "Versions": 1, - "persistResults": 2, - "persistenceFile": 2, - "version": 6, - "typeof": 2, - "": 1, - ".Assembly.GetName": 1, - ".Version": 1, - "PastImplementationComparer": 1, - "historyFile": 1, - "": 1, - "__.Persist": 1, - "tester.PersistCurrentResults": 1, - "System.Collections.Generic": 3, - "format": 4, - "serializer.": 1, - "jsonWriter": 26, - "JsonWriter": 1, - "indented": 2, - "separator": 2, - "do": 7, - "jsonWriter.Formatting": 1, - "-": 50, - "Formatting.Indented": 1, - "Formatting.None": 1, - "jsonWriter.CloseOutput": 1, - "isBsonWriter": 2, - "match": 7, - "Bson": 3, - "BsonWriter": 1, - "|": 56, - "depth": 35, - "isTopLevelSequenceHead": 4, - "currentValueIsNull": 4, - "arrayStack": 5, - "Stack": 4, - "": 4, - "arrayStack.Push": 5, - "Int32.MinValue": 2, - "omitTag": 45, - "||": 2, - "arrayStack.Peek": 2, - "IPickleFormatWriter": 1, - "__.BeginWriteRoot": 1, - "tag": 88, - "string": 44, - "jsonWriter.WriteStartObject": 2, - "writePrimitive": 23, - "jsonFormatVersion": 2, - "__.EndWriteRoot": 1, - "jsonWriter.WriteEnd": 1, - "__.BeginWriteObject": 1, - "flags": 3, - "ObjectFlags": 3, - "jsonWriter.WritePropertyName": 2, - "flags.HasFlag": 2, - "ObjectFlags.IsNull": 2, - "jsonWriter.WriteNull": 2, - "elif": 2, - "ObjectFlags.IsSequenceHeader": 1, - "jsonWriter.WriteStartArray": 1, - "+": 7, - "ObjectFlags.None": 2, - "flagCsv": 2, - "mkFlagCsv": 1, - "__.EndWriteObject": 1, - "1": 7, - "Peek": 1, - "0": 2, - "WriteEndArray": 1, - "Pop": 2, - "ignore": 11, - "jsonWriter.WriteEndObject": 1, - "__.SerializeUnionCaseNames": 2, - "__.PreferLengthPrefixInSequences": 2, - "__.WriteNextSequenceElement": 1, - "hasNext": 1, - "jsonWriter.WriteWhitespace": 1, - "__.WriteCachedObjectId": 1, - "id": 3, - "__.WriteBoolean": 1, - "value": 47, - "__.WriteByte": 1, - "__.WriteSByte": 1, - "__.WriteInt16": 1, - "__.WriteInt32": 1, - "__.WriteInt64": 1, - "__.WriteUInt16": 1, - "__.WriteUInt32": 1, - "__.WriteUInt64": 1, - "__.WriteSingle": 1, - "__.WriteDouble": 1, - "__.WriteDecimal": 1, - "__.WriteChar": 1, - "__.WriteString": 1, - "__.WriteBigInteger": 1, - "__.WriteGuid": 1, - "__.WriteTimeSpan": 1, - "__.WriteDate": 1, - "value.Ticks": 1, - "__.WriteBytes": 1, - "byte": 3, - "obj.ReferenceEquals": 1, - "jsonWriter.WriteValue": 1, - "__.IsPrimitiveArraySerializationSupported": 2, - "__.WritePrimitiveArray": 1, - "__.Dispose": 1, - "jsonWriter.Flush": 1, - "OAttribute": 1, - "System.Runtime.InteropServices.OptionalAttribute": 1, - "DAttribute": 1, - "System.Runtime.InteropServices.DefaultParameterValueAttribute": 1, - "pickler": 7, - "instance.": 5, - "JsonSerializer": 2, - "FsPicklerTextSerializer": 2, - "private": 2, - "Initializes": 3, - "a": 11, - "": 9, - "name=": 9, - "out": 2, - "pickles.": 4, - "": 9, - "omit": 2, - "header": 2, - "specify": 3, - "custom": 5, - "name": 3, - "converter.": 3, - "": 8, - "typeConverter": 12, - "defaultArg": 2, - "{": 5, - "}": 5, - "Gets": 4, - "or": 4, - "sets": 4, - "whether": 3, - "output": 1, - "indented.": 1, - "x.Indent": 1, - "x.format.Indent": 2, - "b": 4, - "headers": 1, - "ignored": 1, - "pickle": 5, - "x.OmitHeader": 1, - "x.format.OmitHeader": 2, - "that": 1, - "serves": 1, - "top": 2, - "level": 2, - "sequence": 1, - "separator.": 2, - "x.SequenceSeparator": 1, - "x.format.SequenceSeparator": 2, - "sequences": 1, - "serialized": 1, - "using": 1, - "x.UseCustomTopLevelSequenceSeparator": 1, - "x.format.UseCustomTopLevelSequenceSeparator": 2, - "e": 2, - "BSON": 1, - "BsonSerializer": 2, - "FsPicklerSerializer": 1, - "BsonPickleFormatProvider": 1, - "static": 3, - "methods.": 1, - "CreateJson": 1, - "CreateBson": 1, - "Nessos.FsPickler.Combinators": 1, - "pickling": 1, - "": 1, - "module": 3, - "jsonSerializer": 1, - "lazy": 1, - "FsPickler.CreateJson": 1, - "Pickles": 1, - "to": 1, - "Json.": 1, - "utilized": 1, - "pickler.": 1, - "input": 1, - "value.": 2, - "Pickler": 1, - "<'T>": 1, - "T": 4, - "bsonPickler.Value.UnPickle": 1, - "Sample": 1, - "Foo": 1, - "Bar": 1, - "Baz": 1, - "end": 3, - "Sample1": 1, - "xs": 2, - "int": 4, - "list": 1, - "List.map": 2, - "fun": 7, - "x": 4, - "String.concat": 1, - "System.Globalization": 1, - "System.Numerics": 1, - "deserializer": 1, - "jsonReader": 17, - "JsonReader": 1, - "jsonReader.CloseInput": 1, - "jsonReader.SupportMultipleContent": 1, - "isBsonReader": 4, - "BsonReader": 1, - "IPickleFormatReader": 1, - "__.BeginReadRoot": 1, - "jsonReader.Read": 2, - "jsonReader.TokenType": 5, - "JsonToken.StartObject": 1, - "FormatException": 6, - "jsonReader.MoveNext": 6, - "jsonReader.ReadPrimitiveAs": 21, - "": 15, - "v": 1, - "Version": 1, - "sprintf": 3, - "sTag": 3, - "InvalidPickleTypeException": 1, - "EndReadRoot": 1, - "Read": 6, - "__.BeginReadObject": 1, - "jsonReader.ReadProperty": 1, - "IsSequenceHeader": 2, - "TokenType": 3, - "JsonToken": 5, - "Null": 1, - "JsonToken.StartArray": 1, - "StartObject": 1, - "jsonReader.ValueAs": 8, - "csvFlags": 2, - "parseFlagCsv": 1, - "token": 4, - "expected": 2, - "start": 1, - "of": 2, - "object": 2, - "but": 2, - "was": 2, - "O": 2, - "EndReadObject": 1, - "JsonToken.Null": 2, - "JsonToken.EndObject": 1, - "EndArray": 1, - "arrayStack.Pop": 1, - "__.ReadNextSequenceElement": 1, - "JsonToken.None": 1, - "JsonToken.EndArray": 1, - "__.ReadCachedObjectId": 1, - "": 10, - "__.ReadBoolean": 1, - "": 1, - "__.ReadByte": 1, - "__.ReadSByte": 1, - "sbyte": 1, - "__.ReadInt16": 1, - "int16": 1, - "__.ReadInt32": 1, - "__.ReadInt64": 1, - "__.ReadUInt16": 1, - "uint16": 1, - "__.ReadUInt32": 1, - "uint32": 1, - "__.ReadUInt64": 1, - "uint64": 1, - "__.ReadSingle": 1, - "ReadProperty": 3, - "MoveNext": 2, - "Float": 4, - "": 2, - "single": 1, - "JsonToken.String": 2, - "Single.Parse": 1, - "CultureInfo.InvariantCulture": 2, - "float": 4, - "__.ReadDouble": 1, - "Double.Parse": 1, - "__.ReadChar": 1, - "__.ReadString": 1, - "__.ReadBigInteger": 1, - "BigInteger.Parse": 1, - "__.ReadGuid": 1, - "": 1, - "Guid.Parse": 1, - "__.ReadTimeSpan": 1, - "TimeSpan.Parse": 1, - "__.ReadDecimal": 1, - "decimal": 1, - "__.ReadDate": 1, - "ticks": 2, - "DateTime": 2, - "": 1, - "__.ReadBytes": 1, - "bytes": 2, - "": 1, - "base64": 2, - "Convert.FromBase64String": 1, - "__.ReadPrimitiveArray": 1, - "NotImplementedException": 1, - "Dispose": 1, - "IDisposable": 1, - ".Dispose": 1, - "Nessos.FsPickler.Tests.Serializer": 1, - "Nessos.FsPickler.Tests.TestTypes": 1, - "PerformanceTests": 1, - "Marker": 1, - "class": 1, - "guid": 2, - "Guid.NewGuid": 1, - "": 13, - "Value": 5, - "Guid": 1, - "s": 68, - "roundtrip": 34, - "date": 2, - "DateTime.Now": 2, - "": 9, - "String": 4, - "stringValue": 12, - "boxed": 2, - "box": 11, - "..": 9, - "Boxed": 1, - "Object": 1, - "fsClass": 2, - "Class": 5, - "Simple": 1, - "F#": 1, - "serializableClass": 2, - "SerializableClass": 2, - "ISerializable": 1, - "boxedClass": 2, - "Some": 6, - "Subtype": 1, - "Resolution": 1, - "floatArray": 2, - "Array.init": 3, - "i": 29, - "": 3, - "Array": 7, - "intArray": 2, - "Int": 3, - "stringArray": 2, - "": 9, - "kvarr": 2, - "Array.map": 1, - "Key": 2, - "Pairs": 1, - "duArray": 2, - "Something": 1, - "Discriminated": 1, - "Unions": 1, - "objArray": 2, - "option": 3, - "Objects": 1, - "array3D": 2, - "Array3D.init": 1, - "j": 2, - "k": 2, - "*": 3, - "Rank": 1, - "bclDict": 2, - "dict": 1, - ".NET": 4, - "Dictionary": 1, - "bclStack": 2, - "bclList": 2, - "List": 6, - "bclSet": 2, - "SortedSet": 1, - "Set": 2, - "smallTuple": 2, - "FSharp": 15, - "Tuple": 3, - "Small": 2, - "largeTuple": 2, - "Large": 2, - "intList": 2, - "stringList": 2, - "pairList": 2, - "nestedLst": 2, - "n": 10, - "Nested": 1, - "union": 2, - "SomethingElse": 1, - "Union": 1, - "record": 2, - "Record": 1, - "peano": 2, - "int2Peano": 1, - "Peano": 1, - "Rectype": 1, - "closure": 2, - "@": 4, - "Set.ofList": 1, - "Curried": 1, - "Function": 1, - "binTree": 2, - "mkTree": 1, - "Binary": 1, - "Tree": 1, - "intSet": 2, - "fsMap": 2, - "Seq.map": 2, - "Map.ofSeq": 1, - "Map": 2, - "testType": 2, - "ref": 1, - "Reflection": 1, - "Type": 1, - "quotationSmall": 2, - "<@>": 1, - "pown": 1, - "quotationLarge": 2, - "async": 2, - "rec": 1, - "fibAsync": 4, - "when": 2, - "return": 4, - "fn": 2, - "fnn": 2, - "values": 2, - "Async.Parallel": 1, - "Seq.sum": 1, - "Quotation": 2 - }, - "FORTRAN": { - "c": 3, - "comment": 8, - "*": 4, - "program": 3, - "main": 3, - "end": 12, - "subroutine": 3, - "foo": 4, - "(": 20, - "i": 12, - "x": 8, - "b": 8, - ")": 20, - "INTEGER": 4, - "REAL": 4, - "LOGICAL": 4, - "if": 6, - "i.ne.0": 3, - "then": 3, - "call": 3, - "bar": 4, - "-": 4, - "return": 6, - "double": 3, - "complex": 3, - "function": 3, - "baz": 8, - "d0": 8, - "PROGRAM": 1, - "MAIN": 1, - "END": 4, - "C": 1, - "SUBROUTINE": 1, - "IF": 2, - "i.NE.0": 1, - "THEN": 1, - "CALL": 1, - "RETURN": 2, - "DOUBLE": 1, - "COMPLEX": 1, - "FUNCTION": 1 - }, - "Forth": { - "immediate": 103, - "lastxt": 16, - "@": 50, - "dup": 35, - "c@": 13, - "negate": 5, - "swap": 41, - "c": 20, - ";": 237, - "source": 17, - "nip": 6, - "in": 9, - "Copyright": 8, - "Lars": 8, - "Brinkhoff": 8, - "char": 42, - "(": 238, - "-": 769, - ")": 233, - "bl": 17, - "word": 33, - "here": 38, - "+": 46, - "ahead": 10, - "resolve": 20, - "literal": 20, - "postpone": 68, - "nonimmediate": 5, - "caddr": 5, - "drop": 20, - "C": 45, - "find": 6, - "cells": 5, - "postponers": 5, - "execute": 6, - "unresolved": 20, - "orig": 25, - "chars": 5, - "n1": 6, - "n2": 6, - "else": 22, - "orig1": 5, - "orig2": 5, - "branch": 25, - "if": 25, - "flag": 8, - "then": 18, - "[": 49, - "]": 48, - "does": 26, - "dodoes_code": 5, - "over": 21, - "code": 15, - "r": 40, - "begin": 11, - "dest": 25, - "while": 10, - "x": 23, - "repeat": 10, - "until": 5, - "recurse": 5, - "compile": 6, - "pad": 15, - "addr": 41, - "parse": 18, - "n": 39, - "<": 24, - "r@": 6, - "TODO": 16, - "If": 5, - "necessary": 5, - "refill": 6, - "and": 14, - "keep": 5, - "parsing.": 5, - "string": 15, - "allot": 7, - "align": 6, - "cmove": 6, - "s": 20, - "state": 6, - "...": 12, - "R": 17, - "cr": 11, - "type": 7, - "abort": 15, - "": 5, - "Undefined": 5, - "ok": 5, - "Implements": 2, - "ENUM.": 1, - "Double": 1, - "DOES": 1, - "enum": 2, - "create": 8, - "rot": 5, - "But": 1, - "this": 1, - "is": 11, - "simpler.": 1, - "constant": 1, - "HELLO": 4, - ".": 8, - "Assembler": 1, - "for": 2, - "x86.": 1, - "Adds": 1, - "to": 5, - "FORTH": 1, - "vocabulary": 3, - "ASSEMBLER": 2, - "CODE": 3, - "CODE.": 2, - "Creates": 1, - "with": 4, - "END": 1, - "x86": 1, - "opcodes.": 1, - "Conventional": 1, - "prefix": 1, - "syntax": 2, - "Addressing": 2, - "modes": 2, - "direct": 2, - "register": 2, - "": 1, - "indirect": 4, - "displacement": 1, - "indexed": 2, - "not": 3, - "supported": 1, - "yet": 1, - "require": 2, - "lib/common.fth": 1, - "search.fth": 1, - "assembler": 5, - "also": 2, - "definitions": 2, - "Access": 1, - "the": 9, - "target": 1, - "image.": 1, - "cell": 5, - "defer": 3, - "nop": 3, - "mrrm": 16, - "mod": 1, - "c0": 1, - "bits": 9, - "reg@": 1, - "@bits": 2, - "reg": 24, - "rm@": 4, - "rm": 10, - "lshift": 4, - "opcode": 17, - "rshift": 5, - "Write": 1, - "parts": 1, - "of": 4, - "instruction": 3, - "memory.": 1, - "ds": 12, - "d": 7, - "twobyte": 2, - "FF": 5, - "sib": 5, - "imm8": 6, - "imm": 13, - "imm16": 2, - "h": 1, - "imm32": 2, - "disp8": 2, - "disp": 5, - "disp32": 2, - "Set": 2, - "operand": 1, - "size.": 1, - "opsize": 6, - "op32": 2, - "SIB": 1, - "byte.": 1, - "addressing": 1, - "direct.": 1, - "reg1": 1, - "reg2": 2, - "off": 5, - "alu#": 9, - "sign": 1, - "extend": 1, - "mov#": 2, - "B0": 1, - "push#": 2, - "test#": 2, - "F6": 1, - "op": 53, - "Process": 1, - "one": 1, - "operand.": 1, - "All": 1, - "operands": 1, - "except": 1, - "a": 7, - "address": 1, - "have": 2, - "stack": 4, - "picture": 1, - "n*x": 1, - "xt": 1, - "Define": 1, - "formats.": 2, - "asm": 2, - "mnemonic": 1, - "u": 6, - "latestxt": 1, - "body": 2, - "Instruction": 2, - "format": 8, - "relative": 1, - "op8": 2, - "mnemonics.": 1, - "add": 1, - "or": 3, - "F44": 1, - "Todo": 1, - "other": 1, - "condition": 1, - "codes.": 1, - "FB6": 1, - "movzx": 1, - "FBE": 1, - "movsx": 1, - "adc": 1, - "sbb": 1, - "es": 1, - "sub": 1, - "E": 2, - "cs": 3, - "xor": 1, - "ss": 1, - "cmp": 1, - "push": 2, - "pop": 2, - "fs": 1, - "gs": 1, - "jcc": 1, - "test": 2, - "xchg": 1, - "mov": 3, - "D": 1, - "lea": 1, - "F/0": 1, - "C3": 1, - "ret": 1, - "C6/0": 1, - "r/m": 2, - "C7/0": 1, - "CD": 1, - "int": 1, - "E8": 1, - "call": 2, - "E9": 1, - "jmp": 3, - "EB": 1, - "rel8": 1, - "F0": 1, - "lock": 1, - "F2": 1, - "rep": 1, - "F3": 1, - "repz": 1, - "F4": 1, - "hlt": 1, - "F5": 1, - "cmc": 1, - "F610": 1, - "F618": 1, - "neg": 1, - "F8": 1, - "clc": 1, - "F9": 1, - "stc": 1, - "FA": 1, - "cli": 1, - "FB": 1, - "sti": 1, - "FC": 1, - "cld": 1, - "FD": 1, - "std": 1, - "FE": 1, - "inc": 1, - "dec": 1, - "sp": 2, - "mode": 1, - "displaced": 1, - "indirect.": 1, - "#": 1, - "idx": 1, - "idx#": 1, - "reg16": 2, - "reg8": 1, - "reg32": 1, - "Register": 1, - "names.": 1, - "al": 1, - "ax": 1, - "eax": 1, - "cl": 1, - "cx": 1, - "ecx": 1, - "dl": 1, - "dx": 1, - "edx": 1, - "bx": 1, - "ebx": 1, - "ah": 1, - "esp": 1, - "ch": 1, - "bp": 1, - "ebp": 1, - "dh": 1, - "si": 1, - "esi": 1, - "bh": 1, - "di": 1, - "edi": 1, - "Runtime": 1, - "defined": 2, - "elsewhere.": 1, - "base": 1, - "only": 1, - "forth": 3, - "Standard": 1, - "entry": 1, - "points.": 1, - "name": 2, - "header": 1, - "start": 2, - "reveal": 2, - "csp": 1, - "previous": 1, - "*": 10, - "Tools": 2, - "words.": 7, - ".s": 1, - "emit": 2, - "depth": 1, - "traverse": 1, - "dictionary": 1, - "extension": 4, - "kernel": 1, - "bye": 1, - "pick": 1, - "roll": 1, - "editor": 1, - "forget": 1, - "Kernel": 4, - "Forth2012": 2, - "tools": 1, - "nr": 1, - "synonym": 1, - "undefined": 2, - "invert": 2, - "/cell": 2, - "tuck": 2, - "Simplifies": 1, - "compiling": 1, - "Usage": 1, - "foo": 2, - "bar": 1, - "KataDiversion": 1, - "Forth": 1, - "utils": 1, - "empty": 2, - "EMPTY": 1, - "DEPTH": 2, - "IF": 10, - "BEGIN": 3, - "DROP": 5, - "UNTIL": 3, - "THEN": 10, - "power": 2, - "**": 2, - "n1_pow_n2": 1, - "SWAP": 8, - "DUP": 14, - "DO": 2, - "OVER": 2, - "LOOP": 2, - "NIP": 4, - "compute": 1, - "highest": 1, - "below": 1, - "N.": 1, - "e.g.": 2, - "MAXPOW2": 2, - "log2_n": 1, - "ABORT": 1, - "ELSE": 7, - "|": 4, - "i": 5, - "I": 5, - "i*2": 1, - "/": 3, - "kata": 1, - "given": 3, - "N": 6, - "has": 1, - "two": 2, - "adjacent": 2, - "NOT": 3, - "TWO": 3, - "ADJACENT": 3, - "BITS": 3, - "bool": 1, - "uses": 1, - "following": 1, - "algorithm": 1, - "return": 5, - "A": 5, - "X": 5, - "LOG2": 1, - "loop": 4, - "end": 1, - "OR": 1, - "INVERT": 1, - "maximum": 1, - "number": 4, - "which": 3, - "can": 2, - "be": 2, - "made": 2, - "MAX": 2, - "NB": 3, - "m": 2, - "**n": 1, - "numbers": 1, - "less": 1, - "bits.": 1, - "see": 1, - "http": 1, - "//www.codekata.com/2007/01/code_kata_fifte.html": 1, - "HOW": 1, - "MANY": 1, - "#tib": 2, - ".r": 1, - "x1": 5, - "x2": 5, - "noname": 1, - "SP": 1, - "query": 1, - "tib": 1, - "#source": 2, - "true": 1, - "y": 5, - "u.r": 1, - "false": 1, - "unused": 1, - "value": 1, - "within": 1, - "core": 1, - "action": 1, - "buffer": 2, - "Block": 2, - "variable": 3, - "blk": 3, - "current": 5, - "block": 8, - "evaluate": 1, - "extended": 3, - "semantics": 3, - "flush": 1, - "load": 2, - "save": 2, - "input": 2, - "interpret": 1, - "restore": 1, - "buffers": 2, - "update": 1, - "scr": 2, - "list": 1, - "bounds": 1, - "do": 2, - "thru": 1, - "Bit": 1, - "arrays.": 1, - "u1": 1, - "u2": 1, - "bitmap": 1, - "erase": 1, - "bit@": 1, - "f": 2, - "bit": 5 - }, - "Frege": { - "module": 2, - "examples.Concurrent": 1, - "where": 39, - "import": 7, - "System.Random": 1, - "Java.Net": 1, - "(": 339, - "URL": 2, - ")": 345, - "Control.Concurrent": 1, - "as": 33, - "C": 6, - "main2": 1, - "args": 2, - "do": 38, - "m": 2, - "<": 84, - "-": 730, - "newEmptyMVar": 1, - "forkIO": 11, - "m.put": 3, - "replicateM_": 3, - "c": 33, - "m.take": 1, - "print": 25, - "println": 25, - "example1": 1, - "putChar": 2, - "example2": 2, - "s": 21, - "<->": 35, - "getLine": 2, - "case": 6, - "long": 4, - "of": 32, - "Right": 6, - "n": 38, - "setReminder": 3, - "Left": 5, - "_": 60, - "Long": 3, - "IO": 13, - "+": 200, - "show": 24, - "Thread.sleep": 4, - "L*n": 1, - "table": 1, - "mainPhil": 2, - "[": 120, - "fork1": 3, - "fork2": 3, - "fork3": 3, - "fork4": 3, - "fork5": 3, - "]": 116, - "mapM": 3, - "MVar": 3, - "new": 9, - "1": 2, - "5": 1, - "philosopher": 7, - "Kant": 1, - "Locke": 1, - "Wittgenstein": 1, - "Nozick": 1, - "Mises": 1, - "return": 17, - "String": 9, - "Int": 6, - "me": 13, - "left": 4, - "right": 4, - "g": 4, - "Random.newStdGen": 1, - "let": 8, - "phil": 4, - "tT": 2, - "g1": 2, - "Random.randomR": 2, - "L": 6, - "eT": 2, - "g2": 3, - "thinkTime": 3, - "*": 5, - "eatTime": 3, - "fl": 4, - "left.take": 1, - "rFork": 2, - "poll": 1, - "Just": 2, - "fr": 3, - "right.put": 1, - "left.put": 2, - "table.notifyAll": 2, - "Nothing": 2, - "table.wait": 1, - "inter": 3, - "InterruptedException": 4, - "catch": 2, - "getURL": 4, - "xx": 2, - "url": 1, - "URL.new": 1, - "con": 3, - "url.openConnection": 1, - "con.connect": 1, - "is": 24, - "con.getInputStream": 1, - "typ": 5, - "con.getContentType": 1, - "stderr.println": 3, - "ir": 2, - "InputStreamReader.new": 2, - "fromMaybe": 1, - "charset": 2, - "unsupportedEncoding": 3, - "br": 4, - "BufferedReader": 1, - "getLines": 1, - "InputStream": 1, - "UnsupportedEncodingException": 1, - "InputStreamReader": 1, - "x": 45, - "x.catched": 1, - "ctyp": 2, - "charset=": 1, - "m.group": 1, - "type": 8, - "SomeException": 2, - "Throwable": 1, - "main": 11, - "m1": 1, - "MVar.newEmpty": 3, - "m2": 1, - "m3": 2, - "r": 7, - "catchAll": 3, - ".": 41, - "m1.put": 1, - "m2.put": 1, - "m3.put": 1, - "r1": 2, - "m1.take": 1, - "r2": 3, - "m2.take": 1, - "r3": 3, - "take": 13, - "result": 11, - "ss": 8, - "mapM_": 5, - "putStrLn": 2, - "|": 62, - "x.getClass.getName": 1, - "y": 15, - "sum": 2, - "map": 49, - "length": 20, - "examples.CommandLineClock": 1, - "data": 3, - "Date": 5, - "native": 4, - "java.util.Date": 1, - "MutableIO": 1, - "toString": 2, - "Mutable": 1, - "ST": 1, - "d.toString": 1, - "action": 2, - "to": 13, - "give": 2, - "us": 1, - "the": 20, - "current": 4, - "time": 1, - "d": 3, - "java": 5, - "lang": 2, - "Thread": 2, - "sleep": 4, - "takes": 1, - "a": 99, - "and": 14, - "returns": 2, - "nothing": 2, - "but": 2, - "may": 1, - "throw": 1, - "an": 6, - "This": 2, - "without": 1, - "doubt": 1, - "public": 1, - "static": 1, - "void": 2, - "millis": 1, - "throws": 4, - "Encoded": 1, - "in": 22, - "Frege": 1, - "argument": 1, - "does": 2, - "defined": 1, - "frege": 1, - "Lang": 1, - "forever": 1, - "stdout.flush": 1, - "package": 2, - "examples.Sudoku": 1, - "Data.TreeMap": 1, - "Tree": 4, - "keys": 2, - "Data.List": 1, - "DL": 1, - "hiding": 1, - "find": 20, - "union": 10, - "Element": 6, - "Zelle": 8, - "set": 4, - "candidates": 18, - "Position": 22, - "Feld": 3, - "Brett": 13, - "for": 25, - "assumptions": 10, - "conclusions": 2, - "Assumption": 21, - "ISNOT": 14, - "IS": 16, - "derive": 2, - "Eq": 1, - "Ord": 1, - "instance": 1, - "Show": 1, - "p": 72, - "e": 15, - "pname": 10, - "e.show": 2, - "showcs": 5, - "cs": 27, - "joined": 4, - "Assumption.show": 1, - "elements": 12, - "all": 22, - "possible": 2, - "..": 1, - "positions": 16, - "rowstarts": 4, - "row": 20, - "starting": 3, - "colstarts": 3, - "column": 2, - "boxstarts": 3, - "box": 15, - "boxmuster": 3, - "pattern": 1, - "by": 3, - "adding": 1, - "upper": 2, - "position": 9, - "results": 1, - "real": 1, - "extract": 2, - "field": 9, - "getf": 16, - "f": 19, - "fs": 22, - "fst": 9, - "otherwise": 8, - "cell": 24, - "getc": 12, - "b": 113, - "snd": 20, - "compute": 5, - "list": 7, - "that": 18, - "belong": 3, - "same": 8, - "given": 3, - "z..": 1, - "z": 12, - "quot": 1, - "col": 17, - "mod": 3, - "ri": 2, - "div": 3, - "or": 15, - "depending": 1, - "on": 4, - "ci": 3, - "index": 3, - "middle": 2, - "check": 2, - "if": 5, - "candidate": 10, - "has": 2, - "exactly": 2, - "one": 2, - "member": 1, - "i.e.": 1, - "been": 1, - "solved": 1, - "single": 9, - "Bool": 2, - "true": 16, - "false": 13, - "unsolved": 10, - "rows": 4, - "cols": 6, - "boxes": 1, - "allrows": 8, - "allcols": 5, - "allboxs": 5, - "allrcb": 5, - "zip": 7, - "repeat": 3, - "containers": 6, - "PRINTING": 1, - "printable": 1, - "coordinate": 1, - "a1": 3, - "lower": 1, - "i9": 1, - "packed": 1, - "chr": 2, - "ord": 6, - "board": 41, - "printb": 4, - "p1line": 2, - "pfld": 4, - "line": 2, - "brief": 1, - "no": 4, - "some": 2, - "zs": 1, - "initial/final": 1, - "msg": 6, - "res012": 2, - "concatMap": 1, - "a*100": 1, - "b*10": 1, - "BOARD": 1, - "ALTERATION": 1, - "ACTIONS": 1, - "message": 1, - "about": 1, - "what": 1, - "done": 1, - "turnoff1": 3, - "i": 16, - "off": 11, - "nc": 7, - "head": 19, - "newb": 7, - "filter": 26, - "notElem": 7, - "turnoff": 11, - "turnoffh": 1, - "ps": 8, - "foldM": 2, - "toh": 2, - "setto": 3, - "cname": 4, - "nf": 2, - "SOLVING": 1, - "STRATEGIES": 1, - "reduce": 3, - "sets": 2, - "contains": 1, - "numbers": 1, - "already": 1, - "finds": 1, - "logs": 1, - "NAKED": 5, - "SINGLEs": 1, - "passing.": 1, - "sss": 3, - "each": 2, - "with": 15, - "more": 2, - "than": 2, - "fields": 6, - "are": 6, - "rcb": 16, - "elem": 16, - "collect": 1, - "remove": 3, - "from": 7, - "look": 10, - "number": 4, - "appears": 1, - "container": 9, - "this": 2, - "can": 9, - "go": 1, - "other": 2, - "place": 1, - "HIDDEN": 6, - "SINGLE": 1, - "hiddenSingle": 2, - "select": 1, - "containername": 1, - "FOR": 11, - "IN": 9, - "occurs": 5, - "PAIRS": 8, - "TRIPLES": 8, - "QUADS": 2, - "nakedPair": 4, - "t": 14, - "nm": 6, - "SELECT": 3, - "pos": 5, - "tuple": 2, - "name": 2, - "//": 8, - "u": 6, - "fold": 7, - "non": 2, - "outof": 6, - "tuples": 2, - "hit": 7, - "subset": 3, - "any": 3, - "hiddenPair": 4, - "minus": 2, - "uniq": 4, - "sort": 4, - "common": 4, - "bs": 7, - "undefined": 1, - "cannot": 1, - "happen": 1, - "because": 1, - "either": 1, - "empty": 4, - "not": 5, - "intersectionlist": 2, - "intersections": 2, - "reason": 8, - "reson": 1, - "cpos": 7, - "WHERE": 2, - "tail": 2, - "intersection": 1, - "we": 5, - "occurences": 1, - "XY": 2, - "Wing": 2, - "there": 6, - "exists": 6, - "A": 7, - "X": 5, - "Y": 4, - "B": 5, - "Z": 6, - "shares": 2, - "reasoning": 1, - "will": 4, - "be": 9, - "since": 1, - "indeed": 1, - "thus": 1, - "see": 1, - "xyWing": 2, - "rcba": 4, - "share": 1, - "b1": 11, - "b2": 10, - "&&": 9, - "||": 2, - "then": 1, - "else": 1, - "c1": 4, - "c2": 3, - "N": 5, - "Fish": 1, - "Swordfish": 1, - "Jellyfish": 1, - "When": 2, - "particular": 1, - "digit": 1, - "located": 2, - "only": 1, - "columns": 2, - "eliminate": 1, - "those": 2, - "which": 2, - "fish": 7, - "fishname": 5, - "rset": 4, - "certain": 1, - "rflds": 2, - "rowset": 1, - "colss": 3, - "must": 4, - "appear": 1, - "at": 3, - "least": 3, - "cstart": 2, - "immediate": 1, - "consequences": 6, - "assumption": 8, - "form": 1, - "conseq": 3, - "cp": 3, - "two": 1, - "contradict": 2, - "contradicts": 7, - "get": 3, - "aPos": 5, - "List": 1, - "turned": 1, - "when": 2, - "true/false": 1, - "toClear": 7, - "whose": 1, - "implications": 5, - "themself": 1, - "chain": 2, - "paths": 12, - "solution": 6, - "reverse": 4, - "css": 7, - "yields": 1, - "contradictory": 1, - "chainContra": 2, - "pro": 7, - "contra": 4, - "ALL": 2, - "conlusions": 1, - "uniqBy": 2, - "using": 2, - "sortBy": 2, - "comparing": 2, - "conslusion": 1, - "chains": 4, - "LET": 1, - "BE": 1, - "final": 2, - "conclusion": 4, - "THE": 1, - "FIRST": 1, - "implication": 2, - "ai": 2, - "so": 1, - "a0": 1, - "OR": 7, - "a2": 2, - "...": 2, - "IMPLIES": 1, - "For": 2, - "cells": 1, - "pi": 2, - "have": 1, - "construct": 2, - "p0": 1, - "p1": 1, - "c0": 1, - "cellRegionChain": 2, - "os": 3, - "cellas": 2, - "regionas": 2, - "iss": 3, - "ass": 2, - "first": 2, - "candidates@": 1, - "region": 2, - "oss": 2, - "Liste": 1, - "aller": 1, - "Annahmen": 1, - "ein": 1, - "bestimmtes": 1, - "acstree": 3, - "Tree.fromList": 1, - "bypass": 1, - "maybe": 1, - "tree": 1, - "lookup": 2, - "error": 1, - "performance": 1, - "resons": 1, - "confine": 1, - "ourselves": 1, - "20": 1, - "per": 1, - "mkPaths": 3, - "acst": 3, - "impl": 2, - "{": 1, - "a3": 1, - "ordered": 1, - "impls": 2, - "ns": 2, - "concat": 1, - "takeUntil": 1, - "null": 1, - "iterate": 1, - "expandchain": 3, - "avoid": 1, - "loops": 1, - "uni": 3, - "SOLVE": 1, - "SUDOKU": 1, - "Apply": 1, - "available": 1, - "strategies": 1, - "until": 1, - "changes": 1, - "anymore": 1, - "Strategy": 1, - "functions": 2, - "supposed": 1, - "applied": 1, - "changed": 1, - "board.": 1, - "strategy": 2, - "anything": 1, - "alter": 1, - "it": 2, - "next": 1, - "tried.": 1, - "solve": 19, - "res@": 16, - "apply": 17, - "res": 16, - "smallest": 1, - "comment": 16, - "SINGLES": 1, - "locked": 1, - "2": 3, - "QUADRUPELS": 6, - "3": 3, - "4": 3, - "WINGS": 1, - "FISH": 3, - "pcomment": 2, - "9": 5, - "forcing": 1, - "allow": 1, - "infer": 1, - "both": 1, - "brd": 2, - "com": 5, - "stderr": 3, - "<<": 4, - "log": 1, - "turn": 1, - "string": 3, - "into": 1, - "mkrow": 2, - "mkrow1": 2, - "xs": 4, - "make": 1, - "sure": 1, - "unpacked": 2, - "<=>": 1, - "0": 2, - "ignored": 1, - "h": 1, - "help": 1, - "usage": 1, - "Sudoku": 2, - "file": 4, - "81": 3, - "char": 1, - "consisting": 1, - "digits": 2, - "One": 1, - "such": 1, - "going": 1, - "http": 3, - "www": 1, - "sudokuoftheday": 1, - "pages": 1, - "o": 1, - "php": 1, - "click": 1, - "puzzle": 1, - "open": 1, - "tab": 1, - "Copy": 1, - "address": 1, - "your": 1, - "browser": 1, - "There": 1, - "also": 1, - "hard": 1, - "sudokus": 1, - "examples": 1, - "top95": 1, - "txt": 1, - "W": 1, - "felder": 2, - "decode": 4, - "files": 2, - "forM_": 1, - "sudoku": 2, - "openReader": 1, - "lines": 2, - "BufferedReader.getLines": 1, - "process": 5, - "candi": 2, - "consider": 3, - "acht": 4, - "neun": 2, - "examples.SwingExamples": 1, - "Java.Awt": 1, - "ActionListener": 2, - "Java.Swing": 1, - "rs": 2, - "Runnable.new": 1, - "helloWorldGUI": 2, - "buttonDemoGUI": 2, - "celsiusConverterGUI": 2, - "invokeLater": 1, - "tempTextField": 2, - "JTextField.new": 1, - "celsiusLabel": 1, - "JLabel.new": 3, - "convertButton": 1, - "JButton.new": 3, - "fahrenheitLabel": 1, - "frame": 3, - "JFrame.new": 3, - "frame.setDefaultCloseOperation": 3, - "JFrame.dispose_on_close": 3, - "frame.setTitle": 1, - "celsiusLabel.setText": 1, - "convertButton.setText": 1, - "convertButtonActionPerformed": 2, - "celsius": 3, - "getText": 1, - "double": 1, - "fahrenheitLabel.setText": 3, - "c*1.8": 1, - ".long": 1, - "ActionListener.new": 2, - "convertButton.addActionListener": 1, - "contentPane": 2, - "frame.getContentPane": 2, - "layout": 2, - "GroupLayout.new": 1, - "contentPane.setLayout": 1, - "TODO": 1, - "continue": 1, - "//docs.oracle.com/javase/tutorial/displayCode.html": 1, - "code": 1, - "//docs.oracle.com/javase/tutorial/uiswing/examples/learn/CelsiusConverterProject/src/learn/CelsiusConverterGUI.java": 1, - "frame.pack": 3, - "frame.setVisible": 3, - "label": 2, - "cp.add": 1, - "newContentPane": 2, - "JPanel.new": 1, - "JButton": 4, - "b1.setVerticalTextPosition": 1, - "SwingConstants.center": 2, - "b1.setHorizontalTextPosition": 1, - "SwingConstants.leading": 2, - "b2.setVerticalTextPosition": 1, - "b2.setHorizontalTextPosition": 1, - "b3": 7, - "Enable": 1, - "button": 1, - "setVerticalTextPosition": 1, - "SwingConstants": 2, - "center": 1, - "setHorizontalTextPosition": 1, - "leading": 1, - "setEnabled": 7, - "action1": 2, - "action3": 2, - "b1.addActionListener": 1, - "b3.addActionListener": 1, - "newContentPane.add": 3, - "newContentPane.setOpaque": 1, - "frame.setContentPane": 1 - }, - "G-code": { - "e": 145, - "-": 146, - "G28": 1, - "X0": 2, - "Y0": 2, - "G1": 17, - "X55": 3, - "Y5": 3, - "F2000": 1, - "Y180": 2, - "X180": 2, - "M0": 2, - ";": 8, - "RepRapPro": 1, - "Ormerod": 1, - "Board": 1, - "test": 1, - "GCodes": 1, - "M111": 1, - "S1": 1, - "Debug": 1, - "on": 1, - "G21": 1, - "mm": 1, - "G90": 1, - "Absolute": 1, - "positioning": 1, - "M83": 1, - "Extrusion": 1, - "relative": 1, - "M906": 1, - "X800": 1, - "Y800": 1, - "Z800": 1, - "E800": 1, - "Motor": 1, - "currents": 1, - "(": 1, - "mA": 1, - ")": 1, - "T0": 2, - "Extruder": 1, - "X50": 1, - "F500": 2, - "G4": 18, - "P500": 6, - "Y50": 1, - "Z20": 1, - "F200": 2, - "Z0": 1, - "E20": 1, - "E": 1, - "M106": 2, - "S255": 1, - "S0": 1, - "M105": 13, - "G10": 1, - "P0": 1, - "S100": 2, - "M140": 1, - "P5000": 12 - }, - "GAMS": { - "*Basic": 1, - "example": 2, - "of": 7, - "transport": 5, - "model": 6, - "from": 2, - "GAMS": 5, - "library": 3, - "Title": 1, - "A": 3, - "Transportation": 1, - "Problem": 1, - "(": 22, - "TRNSPORT": 1, - "SEQ": 1, - ")": 22, - "Ontext": 1, - "This": 2, - "problem": 1, - "finds": 1, - "a": 3, - "least": 1, - "cost": 4, - "shipping": 1, - "schedule": 1, - "that": 1, - "meets": 1, - "requirements": 1, - "at": 5, - "markets": 2, - "and": 2, - "supplies": 1, - "factories.": 1, - "Dantzig": 1, - "G": 1, - "B": 1, - "Chapter": 2, - "In": 2, - "Linear": 1, - "Programming": 1, - "Extensions.": 1, - "Princeton": 2, - "University": 1, - "Press": 2, - "New": 1, - "Jersey": 1, - "formulation": 1, - "is": 1, - "described": 1, - "in": 10, - "detail": 1, - "Rosenthal": 1, - "R": 1, - "E": 1, - "Tutorial.": 1, - "User": 1, - "s": 1, - "Guide.": 1, - "The": 2, - "Scientific": 1, - "Redwood": 1, - "City": 1, - "California": 1, - "line": 1, - "numbers": 1, - "will": 1, - "not": 1, - "match": 1, - "those": 1, - "the": 1, - "book": 1, - "because": 1, - "these": 1, - "comments.": 1, - "Offtext": 1, - "Sets": 1, - "i": 18, - "canning": 1, - "plants": 1, - "/": 9, - "seattle": 3, - "san": 3, - "-": 6, - "diego": 3, - "j": 18, - "new": 3, - "york": 3, - "chicago": 3, - "topeka": 3, - ";": 15, - "Parameters": 1, - "capacity": 1, - "plant": 2, - "cases": 3, - "b": 2, - "demand": 4, - "market": 2, - "Table": 1, - "d": 2, - "distance": 1, - "thousands": 3, - "miles": 2, - "Scalar": 1, - "f": 2, - "freight": 1, - "dollars": 3, - "per": 3, - "case": 2, - "thousand": 1, - "/90/": 1, - "Parameter": 1, - "c": 3, - "*": 1, - "Variables": 1, - "x": 4, - "shipment": 1, - "quantities": 1, - "z": 3, - "total": 1, - "transportation": 1, - "costs": 1, - "Positive": 1, - "Variable": 1, - "Equations": 1, - "define": 1, - "objective": 1, - "function": 1, - "supply": 3, - "observe": 1, - "limit": 1, - "satisfy": 1, - "..": 3, - "e": 1, - "sum": 3, - "*x": 1, - "l": 1, - "g": 1, - "Model": 1, - "/all/": 1, - "Solve": 1, - "using": 1, - "lp": 1, - "minimizing": 1, - "Display": 1, - "x.l": 1, - "x.m": 1, - "ontext": 1, - "#user": 1, - "stuff": 1, - "Main": 1, - "topic": 1, - "Basic": 2, - "Featured": 4, - "item": 4, - "Trnsport": 1, - "Description": 1, - "offtext": 1 - }, - "GAP": { - "#############################################################################": 63, - "##": 766, - "#W": 4, - "vspc.gi": 1, - "GAP": 15, - "library": 2, - "Thomas": 2, - "Breuer": 2, - "#Y": 6, - "Copyright": 6, - "(": 721, - "C": 11, - ")": 722, - "Lehrstuhl": 2, - "D": 36, - "f": 11, - "r": 2, - "Mathematik": 2, - "RWTH": 2, - "Aachen": 2, - "Germany": 2, - "School": 2, - "Math": 2, - "and": 102, - "Comp.": 2, - "Sci.": 2, - "University": 4, - "of": 114, - "St": 2, - "Andrews": 2, - "Scotland": 2, - "The": 21, - "Group": 3, - "This": 10, - "file": 7, - "contains": 7, - "generic": 1, - "methods": 4, - "for": 53, - "vector": 67, - "spaces.": 4, - "#M": 20, - "SetLeftActingDomain": 2, - "": 2, - "": 12, - "check": 5, - "whether": 5, - "the": 136, - "left": 15, - "acting": 8, - "domain": 17, - "external": 1, - "set": 6, - "knows": 1, - "that": 39, - "it": 8, - "is": 72, - "a": 113, - "division": 15, - "ring.": 3, - "used": 10, - "e.g.": 1, - "to": 37, - "tell": 1, - "free": 3, - "module": 2, - "over": 24, - "ring": 14, - "space.": 5, - "InstallOtherMethod": 3, - "[": 145, - "IsAttributeStoringRep": 2, - "IsLeftActedOnByRing": 2, - "IsObject": 1, - "]": 169, - "function": 37, - "extL": 2, - "if": 103, - "HasIsDivisionRing": 1, - "IsDivisionRing": 5, - "then": 128, - "SetIsLeftActedOnByDivisionRing": 1, - "true": 21, - ";": 569, - "fi": 91, - "TryNextMethod": 7, - "end": 34, - "IsLeftActedOnByDivisionRing": 4, - "": 42, - "InstallMethod": 18, - "IsExtLSet": 1, - "M": 7, - "IsIdenticalObj": 5, - "LeftActingDomain": 29, - "else": 25, - "return": 41, - "#F": 17, - "VectorSpace": 13, - "": 10, - "": 5, - "": 2, - "only": 5, - "difference": 1, - "between": 1, - "shall": 1, - "be": 24, - "space": 74, - "must": 6, - "InstallGlobalFunction": 5, - "arg": 16, - "Length": 14, - "or": 13, - "not": 49, - "Error": 7, - "CallFuncList": 1, - "FreeLeftModule": 1, - "AsSubspace": 5, - "": 38, - "": 10, - ".": 257, - "collection": 3, - "IsVectorSpace": 26, - "IsCollection": 3, - "V": 152, - "local": 16, - "newC": 7, - "IsSubset": 4, - "fail": 18, - "AsVectorSpace": 4, - "SetParent": 1, - "UseIsomorphismRelation": 2, - "UseSubsetRelation": 4, - "AsLeftModule": 6, - "View": 1, - "as": 23, - "F": 61, - "W": 32, - "#": 73, - "result": 9, - "base": 5, - "basis": 14, - "vectors": 16, - "field": 12, - "extension": 3, - "gen": 5, - "loop": 2, - "generators": 16, - "b": 8, - "gens": 16, - "newgens": 4, - "extended": 1, - "list": 16, - "Characteristic": 2, - "<": 17, - "elif": 21, - "BasisVectors": 4, - "Basis": 5, - "AsField": 2, - "in": 64, - "GeneratorsOfLeftModule": 9, - "do": 18, - "*": 12, - "od": 15, - "LeftModuleByGenerators": 5, - "Zero": 5, - "IsEmpty": 6, - "Add": 4, - "Intersection": 1, - "ViewObj": 4, - "view": 4, - "print": 1, - "known": 5, - "also": 3, - "dimension": 9, - "no.": 1, - "HasGeneratorsOfLeftModule": 2, - "Print": 24, - "HasDimension": 1, - "override": 1, - "method": 4, - "Dimension": 6, - "PrintObj": 5, - "HasZero": 1, - "/": 12, - "": 2, - "factor": 2, - "by": 14, - "subspace": 7, - "": 1, - "Subspace": 4, - "ImagesSource": 1, - "NaturalHomomorphismBySubspace": 1, - "Intersection2Spaces": 4, - "": 2, - "": 2, - "": 2, - "AsStructure": 3, - "Substructure": 3, - "Structure": 2, - "inters": 17, - "intersection": 5, - "coefficients": 3, - "gensV": 7, - "gensW": 7, - "VW": 3, - "sum": 1, - "B": 16, - "Intersection2": 4, - "IsFiniteDimensional": 2, - "Concatenation": 15, - "List": 6, - "x": 14, - "-": 67, - "Coefficients": 3, - "SumIntersectionMat": 1, - "LinearCombination": 2, - "HasParent": 2, - "Parent": 4, - "SetIsTrivial": 1, - "two": 13, - "spaces": 15, - "SubspaceNC": 2, - "ClosureLeftModule": 2, - "": 1, - "closure": 1, - "IsCollsElms": 1, - "HasBasis": 1, - "IsVector": 1, - "w": 3, - "#T": 6, - "why": 2, - "easily": 1, - "UseBasis": 1, - "Methods": 1, - "collections": 1, - "subspaces": 17, - "#R": 1, - "IsSubspacesVectorSpaceDefaultRep": 7, - "representation": 1, - "domains": 3, - "with": 24, - "components": 1, - "value": 9, - "either": 2, - "string": 6, - "which": 8, - "means": 1, - "all": 18, - "DeclareRepresentation": 1, - "IsComponentObjectRep": 1, - "IsSubspacesVectorSpace": 9, - "IsInt": 3, - ".dimension": 9, - ".structure": 9, - "Size": 5, - "number": 2, - "k": 17, - "dimensional": 5, - "n": 31, - "q": 20, - "elements": 7, - "prod_": 2, - "{": 21, - "i": 25, - "}": 21, - "frac": 3, - "We": 4, - "have": 3, - "recursion": 1, - "+": 9, - "sum_": 1, - "size": 12, - "qn": 10, - "qd": 10, - "ank": 6, - "..": 6, - "Int": 1, - "/2": 4, - "mod": 2, - "Enumerator": 2, - "Use": 1, - "iterator": 3, - "compute": 3, - "list.": 2, - "allowed": 1, - "iter": 17, - "elms": 4, - "Iterator": 5, - "while": 5, - "IsDoneIterator": 3, - "NextIterator": 5, - "necessary": 2, - "uses": 2, - "full": 2, - "row": 17, - "mechanism": 4, - "associated": 3, - "BindGlobal": 7, - ".associatedIterator": 3, - "next": 6, - ".basis": 2, - "rec": 20, - "structure": 4, - "associatedIterator": 2, - "ShallowCopy": 2, - "IteratorByFunctions": 1, - "IsDoneIterator_Subspaces": 1, - "NextIterator_Subspaces": 1, - "ShallowCopy_Subspaces": 1, - "Subspaces": 8, - "FullRowSpace": 5, - "": 1, - "dim": 2, - "IsFinite": 4, - "Objectify": 2, - "NewType": 2, - "CollectionsFamily": 2, - "FamilyObj": 2, - "IsSubspace": 3, - "": 6, - "U": 12, - "IsVectorSpaceHomomorphism": 3, - "": 2, - "IsGeneralMapping": 2, - "map": 4, - "S": 4, - "R": 5, - "Source": 1, - "false": 7, - "Range": 1, - "IsLinearMapping": 1, - "#E": 2, - "example.gd": 2, - "sample": 2, - "implementation": 1, - "file.": 3, - "SomeOperation": 1, - "": 2, - "performs": 1, - "some": 2, - "operation": 1, - "on": 5, - "SomeProperty": 1, - "IsLeftModule": 6, - "IsFreeLeftModule": 3, - "IsTrivial": 1, - "SomeGlobalFunction": 2, - "A": 9, - "global": 1, - "variadic": 1, - "funfion.": 1, - "SomeFunc": 1, - "y": 8, - "z": 3, - "func": 3, - "tmp": 20, - "j": 3, - "repeat": 1, - "until": 1, - "PackageInfo.g": 2, - "package": 10, - "cvec": 1, - "s": 4, - "template": 1, - "SetPackageInfo": 1, - "PackageName": 2, - "Subtitle": 1, - "Version": 1, - "Date": 1, - "dd/mm/yyyy": 1, - "format": 2, - "Information": 1, - "about": 3, - "authors": 1, - "maintainers.": 1, - "Persons": 1, - "LastName": 1, - "FirstNames": 1, - "IsAuthor": 1, - "IsMaintainer": 1, - "Email": 1, - "WWWHome": 1, - "PostalAddress": 1, - "Place": 1, - "Institution": 1, - "Status": 2, - "information.": 1, - "Currently": 1, - "following": 4, - "cases": 2, - "are": 14, - "recognized": 1, - "successfully": 2, - "refereed": 2, - "packages": 5, - "developers": 1, - "agreed": 1, - "distribute": 1, - "them": 1, - "core": 1, - "system": 1, - "development": 1, - "versions": 1, - "other": 4, - "You": 1, - "provide": 2, - "entries": 8, - "status": 1, - "because": 2, - "was": 1, - "#CommunicatedBy": 1, - "#AcceptDate": 1, - "PackageWWWHome": 1, - "README_URL": 1, - ".PackageWWWHome": 2, - "PackageInfoURL": 1, - "ArchiveURL": 1, - ".Version": 2, - "ArchiveFormats": 1, - "Here": 2, - "you": 3, - "short": 1, - "abstract": 1, - "explaining": 1, - "content": 1, - "HTML": 1, - "overview": 1, - "Web": 1, - "page": 1, - "an": 17, - "URL": 1, - "Webpage": 1, - "more": 3, - "detailed": 1, - "information": 1, - "than": 1, - "few": 1, - "lines": 1, - "less": 1, - "ok": 1, - "Please": 1, - "use": 5, - "specifing": 1, - "names.": 1, - "AbstractHTML": 1, - "PackageDoc": 1, - "BookName": 1, - "ArchiveURLSubset": 1, - "HTMLStart": 1, - "PDFFile": 1, - "SixFile": 1, - "LongTitle": 1, - "Dependencies": 1, - "NeededOtherPackages": 1, - "SuggestedOtherPackages": 1, - "ExternalConditions": 1, - "AvailabilityTest": 1, - "SHOW_STAT": 1, - "Filename": 8, - "DirectoriesPackagePrograms": 1, - "#Info": 1, - "InfoWarning": 1, - "*Optional*": 2, - "but": 1, - "recommended": 1, - "path": 1, - "relative": 1, - "root": 1, - "many": 1, - "tests": 1, - "functionality": 1, - "sensible.": 1, - "#TestFile": 1, - "can": 12, - "keyword": 1, - "related": 1, - "topic": 1, - "package.": 2, - "Keywords": 1, - "vspc.gd": 1, - "declares": 1, - "operations": 2, - "bases": 5, - "modules": 1, - "found": 1, - "lib/basis.gd": 1, - "#C": 7, - "IsLeftOperatorRing": 1, - "": 3, - "": 28, - "": 7, - "Name=": 33, - "Arg=": 33, - "Type=": 7, - "": 28, - "": 28, - "": 28, - "DeclareSynonym": 17, - "IsLeftOperatorAdditiveGroup": 2, - "IsRing": 1, - "IsAssociativeLOpDProd": 2, - "really": 4, - "IsLeftOperatorRingWithOne": 2, - "IsRingWithOne": 1, - "IsLeftVectorSpace": 3, - "<#GAPDoc>": 17, - "Label=": 19, - "": 12, - "": 12, - "&": 37, - "see": 30, - "nbsp": 30, - "": 71, - "Func=": 40, - "Chapter": 3, - "Chap=": 3, - "": 2, - "CDATA": 2, - "ENTITY": 2, - "": 2, - "allows": 1, - "amp": 1, - "your": 1, - "documentation": 2, - "reference": 1, - "another": 1, - "entity": 1, - "desired": 1, - "add": 2, - "instead": 1, - "It": 1, - "please": 1, - "careful.": 1, - "": 2, - "SHEBANG#!#! for": 1, - "SHEBANG#!#! statement": 1, - "SHEBANG#!#! components": 2, - "SHEBANG#!#! example,": 1, - "SHEBANG#!#! acknowledgements": 1, - "SHEBANG#!#! ": 6, - "SHEBANG#!#! by": 1, - "SHEBANG#!#! package": 1, - "SHEBANG#!#! Usually": 2, - "SHEBANG#!#! are": 2, - "SHEBANG#!#! Default": 3, - "SHEBANG#!#! When": 1, - "SHEBANG#!#! they": 1, - "Document": 1, - "section_intros": 2, - "later": 1, - "on.": 1, - "However": 2, - "thanks": 1, - "comment": 1, - "syntax": 1, - "remaining": 1, - "seems": 1, - "ability": 1, - "order": 1, - "chapters": 1, - "sections.": 1, - "TODO.": 1, - "SHEBANG#!#! files": 1, - "strictly": 1, - "speaking": 1, - "scaffold.": 1, - "scaffolding": 2, - "custom": 1, - "name": 2, - "main": 1, - "purpose": 1, - "parameter": 1, - "cater": 1, - "existing": 1, - "wish": 1, - "scaffolding.": 1, - "explain": 1, - "allow": 1, - "specifying": 1, - "gapdoc.main.": 1, - "code": 1, - "still": 1, - "honor": 1, - "though": 1, - "just": 1, - "case.": 1, - "SHEBANG#!#! In": 1, - "part.": 1, - "Still": 1, - "under": 1, - "construction.": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! The": 1, - "SHEBANG#!#! a": 1, - "SHEBANG#!#! which": 1, - "SHEBANG#!#! the": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! ": 2, - "SHEBANG#!#! Sets": 1, - "SHEBANG#!#! A": 1, - "SHEBANG#!#! will": 1, - "SHEBANG#!#! @Returns": 1, - "SHEBANG#!#! @Arguments": 1, - "SHEBANG#!#! @ChapterInfo": 1, - "declaration": 1, - "IsQuuxFrobnicator": 1, - "Tests": 1, - "quux": 1, - "frobnicator.": 1, - "IsField": 1, - "IsGroup": 1 - }, - "GAS": { - ".cstring": 1, - "LC0": 2, - ".ascii": 2, - ".text": 1, - ".globl": 2, - "_main": 2, - "LFB3": 4, - "pushq": 1, - "%": 6, - "rbp": 2, - "LCFI0": 3, - "movq": 1, - "rsp": 1, - "LCFI1": 2, - "leaq": 1, - "(": 1, - "rip": 1, - ")": 1, - "rdi": 1, - "call": 1, - "_puts": 1, - "movl": 1, - "eax": 1, - "leave": 1, - "ret": 1, - "LFE3": 2, - ".section": 1, - "__TEXT": 1, - "__eh_frame": 1, - "coalesced": 1, - "no_toc": 1, - "+": 2, - "strip_static_syms": 1, - "live_support": 1, - "EH_frame1": 2, - ".set": 5, - "L": 10, - "set": 10, - "LECIE1": 2, - "-": 7, - "LSCIE1": 2, - ".long": 6, - ".byte": 20, - "xc": 1, - ".align": 2, - "_main.eh": 2, - "LSFDE1": 1, - "LEFDE1": 2, - "LASFDE1": 3, - ".quad": 2, - ".": 1, - "xe": 1, - "xd": 1, - ".subsections_via_symbols": 1 - }, - "GDScript": { - "extends": 4, - "Control": 1, - "var": 86, - "score": 4, - "score_label": 2, - "null": 1, - "const": 11, - "MAX_SHAPES": 2, - "block": 3, - "preload": 2, - "(": 314, - ")": 313, - "block_colors": 3, - "[": 22, - "Color": 7, - "]": 22, - "block_shapes": 4, - "Vector2": 61, - "-": 31, - "#": 18, - "I": 1, - "O": 1, - "S": 1, - "Z": 1, - "L": 1, - "J": 1, - "T": 1, - "block_rotations": 2, - "Matrix32": 4, - "width": 5, - "height": 6, - "cells": 8, - "{": 2, - "}": 2, - "piece_active": 7, - "false": 16, - "piece_shape": 8, - "piece_pos": 3, - "piece_rot": 5, - "func": 19, - "piece_cell_xform": 4, - "p": 2, - "er": 4, - "r": 2, - "+": 24, - "%": 3, - "return": 14, - ".xform": 1, - "_draw": 1, - "sb": 2, - "get_stylebox": 1, - "use": 1, - "line": 1, - "edit": 1, - "bg": 1, - "draw_style_box": 1, - "Rect2": 5, - "get_size": 1, - ".grow": 1, - "bs": 3, - "block.get_size": 1, - "for": 9, - "y": 12, - "in": 12, - "range": 6, - "x": 12, - "if": 56, - "draw_texture_rect": 2, - "*bs": 2, - "c": 6, - "piece_check_fit": 6, - "ofs": 2, - "pos": 4, - "pos.x": 2, - "<": 14, - "pos.y": 2, - "true": 11, - "new_piece": 3, - "randi": 1, - "width/2": 1, - "piece_pos.y": 2, - "not": 5, - "#game": 1, - "over": 1, - "#print": 1, - "game_over": 2, - "update": 7, - "test_collapse_rows": 2, - "accum_down": 6, - "i": 7, - "collapse": 3, - "else": 11, - "cells.erase": 1, - "accum_down*100": 1, - "score_label.set_text": 2, - "str": 1, - "get_node": 24, - ".set_text": 2, - "restart_pressed": 1, - "cells.clear": 1, - "piece_move_down": 2, - "piece_rotate": 2, - "adv": 2, - "_input": 1, - "ie": 1, - "ie.is_pressed": 1, - "ie.is_action": 4, - "piece_pos.x": 2, - "elif": 4, - "setup": 2, - "w": 3, - "h": 3, - "set_size": 1, - "*block.get_size": 1, - ".start": 1, - "_ready": 3, - "Initalization": 2, - "here": 2, - "set_process_input": 1, - "Node2D": 1, - "INITIAL_BALL_SPEED": 3, - "ball_speed": 2, - "screen_size": 2, - "#default": 1, - "ball": 3, - "direction": 6, - "pad_size": 4, - "PAD_SPEED": 1, - "_process": 1, - "delta": 8, - "get": 2, - "positio": 1, - "and": 16, - "pad": 3, - "rectangles": 1, - "ball_pos": 8, - ".get_pos": 5, - "left_rect": 1, - "pad_size*0.5": 2, - "right_rect": 1, - "#integrate": 1, - "new": 1, - "postion": 1, - "direction*ball_speed*delta": 1, - "#flip": 2, - "when": 2, - "touching": 2, - "roof": 1, - "or": 4, - "floor": 1, - "ball_pos.y": 1, - "direction.y": 5, - "<0)>": 1, - "screen_size.y": 3, - "change": 1, - "increase": 1, - "speed": 2, - "pads": 1, - "left_rect.has_point": 1, - "direction.x": 4, - "right_rect.has_point": 1, - "ball_speed*": 1, - "randf": 1, - "*2.0": 1, - "direction.normalized": 1, - "#check": 1, - "gameover": 1, - "ball_pos.x": 1, - "<0>": 1, - "screen_size.x": 1, - "screen_size*0.5": 1, - ".set_pos": 3, - "#move": 2, - "left": 1, - "left_pos": 2, - "left_pos.y": 4, - "Input.is_action_pressed": 4, - "PAD_SPEED*delta": 4, - "right": 1, - "right_pos": 2, - "right_pos.y": 4, - "get_viewport_rect": 1, - ".size": 1, - "actual": 1, - "size": 1, - ".get_texture": 1, - ".get_size": 1, - "set_process": 1, - "RigidBody": 1, - "#var": 1, - "dir": 8, - "Vector3": 9, - "ANIM_FLOOR": 2, - "ANIM_AIR_UP": 2, - "ANIM_AIR_DOWN": 2, - "SHOOT_TIME": 2, - "SHOOT_SCALE": 2, - "CHAR_SCALE": 2, - "facing_dir": 2, - "movement_dir": 3, - "jumping": 5, - "turn_speed": 2, - "keep_jump_inertia": 2, - "air_idle_deaccel": 2, - "accel": 2, - "deaccel": 2, - "sharp_turn_threshhold": 2, - "max_speed": 5, - "on_floor": 3, - "prev_shoot": 3, - "last_floor_velocity": 5, - "shoot_blend": 7, - "adjust_facing": 3, - "p_facing": 4, - "p_target": 2, - "p_step": 2, - "p_adjust_rate": 2, - "current_gn": 2, - "n": 2, - "normal": 1, - "t": 2, - "n.cross": 1, - ".normalized": 2, - "n.dot": 1, - "t.dot": 1, - "ang": 12, - "atan2": 1, - "abs": 1, - "too": 1, - "small": 1, - "s": 4, - "sign": 1, - "*": 15, - "turn": 3, - "a": 6, - "cos": 2, - "sin": 1, - "p_facing.length": 1, - "_integrate_forces": 1, - "state": 5, - "lv": 10, - "state.get_linear_velocity": 1, - "linear": 1, - "velocity": 3, - "g": 3, - "state.get_total_gravity": 1, - "state.get_step": 1, - "d": 2, - "delta*state.get_total_density": 1, - "<0):>": 2, - "d=": 1, - "apply": 1, - "gravity": 2, - "anim": 4, - "up": 12, - "normalized": 6, - "is": 1, - "against": 1, - "vv": 5, - "dot": 3, - "vertical": 1, - "hv": 8, - "horizontal": 3, - "hdir": 7, - "hspeed": 14, - "length": 1, - "floor_velocity": 5, - "onfloor": 6, - "get_contact_count": 2, - "0": 6, - "get_contact_local_shape": 1, - "1": 2, - "continue": 1, - "get_contact_collider_velocity_at_pos": 1, - "break": 1, - "where": 1, - "does": 1, - "the": 1, - "player": 1, - "intend": 1, - "to": 3, - "walk": 1, - "cam_xform": 5, - "target": 1, - "camera": 1, - "get_global_transform": 1, - "Input": 6, - "is_action_pressed": 6, - "move_forward": 1, - "basis": 5, - "2": 2, - "move_backwards": 1, - "move_left": 1, - "move_right": 1, - "jump_attempt": 2, - "jump": 2, - "shoot_attempt": 3, - "shoot": 1, - "target_dir": 5, - "sharp_turn": 2, - "rad2deg": 1, - "acos": 1, - "target_dir.dot": 1, - "dir.length": 2, - "#linear_dir": 1, - "linear_h_velocity/linear_vel": 1, - "#if": 2, - "linear_vel": 1, - "brake_velocity_limit": 1, - "linear_dir.dot": 1, - "ctarget_dir": 1, - "Math": 1, - "deg2rad": 1, - "brake_angular_limit": 1, - "brake": 1, - "#else": 1, - "/hspeed*turn_speed": 1, - "accel*delta": 1, - "deaccel*delta": 1, - "hspeed=": 1, - "mesh_xform": 2, - "Armature": 2, - "get_transform": 1, - "facing_mesh=": 1, - "facing_mesh": 7, - "m3": 2, - "Matrix3": 1, - "cross": 1, - "scaled": 1, - "set_transform": 1, - "Transform": 1, - "origin": 1, - "7": 1, - "sfx": 1, - "play": 1, - "hs": 1, - "hv.length": 1, - "hv.normalized": 1, - "hdir*hspeed": 1, - "up*vv": 1, - "#lv": 1, - "pass": 2, - "state.set_linear_velocity": 1, - "bullet": 3, - ".instance": 1, - "bullet.set_transform": 1, - ".get_global_transform": 2, - ".orthonormalized": 1, - "get_parent": 1, - ".add_child": 1, - "bullet.set_linear_velocity": 1, - ".basis": 1, - "PS.body_add_collision_exception": 1, - "bullet.get_rid": 1, - "get_rid": 1, - "#add": 1, - "it": 1, - ".play": 1, - ".blend2_node_set_amount": 2, - "/": 1, - ".transition_node_set_current": 1, - "min": 1, - "state.set_angular_velocity": 1, - ".set_active": 1, - "BaseClass": 1, - "arr": 1, - "dict": 1, - "answer": 1, - "thename": 1, - "v2": 1, - "v3": 1, - "some_function": 1, - "param1": 4, - "param2": 5, - "local_var": 2, - "print": 6, - "while": 1, - "local_var2": 2, - "class": 1, - "Something": 1, - "_init": 1, - "Something.new": 1, - "lv.a": 1 - }, - "GLSL": { - "#version": 3, - "uniform": 8, - "float": 107, - "kCoeff": 2, - "kCube": 2, - "uShift": 3, - "vShift": 3, - ";": 418, - "chroma_red": 2, - "chroma_green": 2, - "chroma_blue": 2, - "bool": 1, - "apply_disto": 4, - "sampler2D": 1, - "input1": 4, - "adsk_input1_w": 4, - "adsk_input1_h": 3, - "adsk_input1_aspect": 1, - "adsk_input1_frameratio": 5, - "adsk_result_w": 3, - "adsk_result_h": 2, - "distortion_f": 3, - "(": 484, - "r": 14, - ")": 484, - "{": 104, - "f": 17, - "+": 108, - "r*r": 1, - "*": 116, - "return": 47, - "}": 104, - "inverse_f": 2, - "vec3": 165, - "[": 29, - "]": 29, - "lut": 9, - "max_r": 2, - "sqrt": 6, - "incr": 2, - "/": 24, - "lut_r": 5, - "for": 7, - "int": 9, - "i": 38, - "<": 23, - "t": 44, - "if": 29, - ".z": 5, - "&&": 10, - "-": 108, - "mix": 2, - ".y": 2, - "aberrate": 4, - "chroma": 2, - "chromaticize_and_invert": 2, - "rgb_f": 5, - "void": 57, - "main": 8, - "vec2": 26, - "px": 4, - "uv": 12, - "gl_FragCoord.xy": 7, - "px.x": 2, - "px.y": 2, - "uv.x": 11, - "uv.y": 7, - "*2": 2, - "uv.x*uv.x": 1, - "uv.y*uv.y": 1, - "else": 1, - "rgb_uvs": 12, - "rgb_f.rr": 1, - "rgb_f.gg": 1, - "rgb_f.bb": 1, - "vec4": 77, - "sampled": 1, - "sampled.r": 1, - "texture2D": 6, - ".r": 3, - "sampled.g": 1, - ".g": 1, - "sampled.b": 1, - ".b": 1, - "gl_FragColor.rgba": 1, - "sampled.rgb": 1, - "mat4": 1, - "u_MVPMatrix": 2, - "attribute": 2, - "a_position": 1, - "a_color": 2, - "varying": 6, - "v_color": 4, - "gl_Position": 1, - "pos": 43, - "const": 19, - "NUM_LIGHTS": 4, - "AMBIENT": 2, - "MAX_DIST": 3, - "MAX_DIST_SQUARED": 3, - "lightColor": 3, - "fragmentNormal": 2, - "cameraVector": 2, - "lightVector": 4, - "//": 40, - "initialize": 1, - "diffuse/specular": 1, - "lighting": 1, - "diffuse": 4, - "specular": 4, - "normalize": 14, - "the": 1, - "fragment": 1, - "normal": 7, - "and": 2, - "camera": 8, - "direction": 1, - "cameraDir": 2, - "loop": 1, - "through": 1, - "each": 1, - "light": 5, - "calculate": 1, - "distance": 1, - "between": 1, - "dist": 7, - "min": 11, - "dot": 30, - "distFactor": 3, - "lightDir": 3, - "diffuseDot": 2, - "clamp": 4, - "halfAngle": 2, - "specularColor": 2, - "specularDot": 2, - "pow": 3, - "sample": 2, - "gl_FragColor": 4, - "sample.rgb": 1, - "sample.a": 1, - "static": 1, - "char*": 1, - "SimpleFragmentShader": 1, - "STRINGIFY": 1, - "FrontColor": 2, - "core": 2, - "cbar": 4, - "cfoo": 2, - "CB": 4, - "CD": 4, - "CA": 2, - "CC": 2, - "CBT": 10, - "CDT": 6, - "CAT": 2, - "CCT": 2, - "norA": 8, - "norB": 6, - "norC": 2, - "norD": 2, - "norE": 8, - "norF": 2, - "norG": 2, - "norH": 2, - "norI": 2, - "norcA": 4, - "norcB": 6, - "norcC": 4, - "norcD": 4, - "head": 2, - "of": 2, - "cycle": 4, - "norcE": 2, - "lead": 2, - "into": 2, - "////": 4, - "High": 1, - "quality": 2, - "Some": 1, - "browsers": 1, - "may": 1, - "freeze": 1, - "or": 1, - "crash": 1, - "//#define": 10, - "HIGHQUALITY": 2, - "Medium": 1, - "Should": 1, - "be": 1, - "fine": 1, - "on": 3, - "all": 1, - "systems": 1, - "works": 1, - "Intel": 1, - "HD2000": 1, - "Win7": 1, - "but": 1, - "quite": 1, - "slow": 1, - "MEDIUMQUALITY": 2, - "Defaults": 1, - "REFLECTIONS": 3, - "#define": 13, - "SHADOWS": 5, - "GRASS": 3, - "SMALL_WAVES": 4, - "RAGGED_LEAVES": 5, - "DETAILED_NOISE": 3, - "LIGHT_AA": 3, - "SSAA": 2, - "HEAVY_AA": 2, - "x2": 5, - "RG": 1, - "TONEMAP": 5, - "Configurations": 1, - "#ifdef": 14, - "#endif": 14, - "eps": 5, - "e": 4, - "PI": 3, - "sunDir": 5, - "skyCol": 4, - "sandCol": 2, - "treeCol": 2, - "grassCol": 2, - "leavesCol": 4, - "leavesPos": 4, - "sunCol": 5, - "#else": 5, - "exposure": 1, - "Only": 1, - "used": 1, - "when": 1, - "tonemapping": 1, - "mod289": 4, - "x": 11, - "floor": 8, - "permute": 4, - "x*34.0": 1, - "*x": 3, - "taylorInvSqrt": 2, - "snoise": 7, - "v": 8, - "C": 1, - "/6.0": 1, - "/3.0": 1, - "D": 1, - "C.yyy": 2, - "x0": 7, - "C.xxx": 2, - "g": 2, - "step": 2, - "x0.yzx": 1, - "x0.xyz": 1, - "l": 1, - "i1": 2, - "g.xyz": 2, - "l.zxy": 2, - "i2": 2, - "max": 9, - "x1": 4, - "*C.x": 2, - "/3": 1, - "C.y": 1, - "x3": 4, - "D.yyy": 1, - "D.y": 1, - "p": 26, - "i.z": 1, - "i1.z": 1, - "i2.z": 1, - "i.y": 1, - "i1.y": 1, - "i2.y": 1, - "i.x": 1, - "i1.x": 1, - "i2.x": 1, - "n_": 2, - "/7.0": 1, - "ns": 4, - "D.wyz": 1, - "D.xzx": 1, - "j": 4, - "ns.z": 3, - "mod": 2, - "*7": 1, - "x_": 3, - "y_": 2, - "N": 1, - "*ns.x": 2, - "ns.yyyy": 2, - "y": 2, - "h": 21, - "abs": 2, - "b0": 3, - "x.xy": 1, - "y.xy": 1, - "b1": 3, - "x.zw": 1, - "y.zw": 1, - "//vec4": 3, - "s0": 2, - "lessThan": 2, - "*2.0": 4, - "s1": 2, - "sh": 1, - "a0": 1, - "b0.xzyw": 1, - "s0.xzyw*sh.xxyy": 1, - "a1": 1, - "b1.xzyw": 1, - "s1.xzyw*sh.zzww": 1, - "p0": 5, - "a0.xy": 1, - "h.x": 1, - "p1": 5, - "a0.zw": 1, - "h.y": 1, - "p2": 5, - "a1.xy": 1, - "h.z": 1, - "p3": 5, - "a1.zw": 1, - "h.w": 1, - "//Normalise": 1, - "gradients": 1, - "norm": 1, - "norm.x": 1, - "norm.y": 1, - "norm.z": 1, - "norm.w": 1, - "m": 8, - "m*m": 1, - "fbm": 2, - "final": 5, - "waterHeight": 4, - "d": 10, - "length": 7, - "p.xz": 2, - "sin": 8, - "iGlobalTime": 7, - "Island": 1, - "waves": 3, - "p*0.5": 1, - "Other": 1, - "bump": 2, - "rayDir": 43, - "s": 23, - "Fade": 1, - "out": 1, - "to": 1, - "reduce": 1, - "aliasing": 1, - "Calculate": 1, - "from": 2, - "heightmap": 1, - "pos.x": 1, - "iGlobalTime*0.5": 1, - "pos.z": 2, - "*0.7": 1, - "*s": 4, - "e.xyy": 1, - "e.yxy": 1, - "intersectSphere": 2, - "rpos": 5, - "rdir": 3, - "rad": 2, - "op": 5, - "b": 5, - "det": 11, - "b*b": 2, - "rad*rad": 2, - "rdir*t": 1, - "intersectCylinder": 1, - "rdir2": 2, - "rdir.yz": 1, - "op.yz": 3, - "rpos.yz": 2, - "rdir2*t": 2, - "pos.yz": 2, - "intersectPlane": 3, - "rayPos": 38, - "n": 18, - "sign": 1, - "rotate": 5, - "theta": 6, - "c": 6, - "cos": 4, - "p.x": 2, - "p.z": 2, - "p.y": 1, - "impulse": 2, - "k": 8, - "by": 1, - "iq": 2, - "k*x": 1, - "exp": 2, - "grass": 2, - "Optimization": 1, - "Avoid": 1, - "noise": 1, - "too": 1, - "far": 1, - "away": 1, - "pos.y": 8, - "tree": 2, - "pos.y*0.03": 2, - "mat2": 2, - "m*pos.xy": 1, - "width": 2, - "scene": 7, - "vtree": 4, - "vgrass": 2, - ".x": 4, - "eps.xyy": 1, - "eps.yxy": 1, - "eps.yyx": 1, - "plantsShadow": 2, - "Soft": 1, - "shadow": 4, - "taken": 1, - "rayDir*t": 2, - "res": 6, - "res.x": 3, - "k*res.x/t": 1, - "s*s*": 1, - "intersectWater": 2, - "rayPos.y": 1, - "rayDir.y": 1, - "intersectSand": 3, - "intersectTreasure": 2, - "intersectLeaf": 2, - "openAmount": 4, - "dir": 2, - "offset": 5, - "rayDir*res.w": 1, - "pos*0.8": 2, - "||": 3, - "res.w": 6, - "res2": 2, - "dir.xy": 1, - "dir.z": 1, - "rayDir*res2.w": 1, - "res2.w": 3, - "leaves": 7, - "e20": 3, - "sway": 5, - "fract": 1, - "upDownSway": 2, - "angleOffset": 3, - "Left": 1, - "right": 1, - "alpha": 3, - "Up": 1, - "down": 1, - "k*10.0": 1, - "p.xzy": 1, - ".xzy": 2, - "d.xzy": 1, - "Shift": 1, - "Intersect": 11, - "individual": 1, - "leaf": 1, - "res.xyz": 1, - "sand": 2, - "resSand": 2, - "//if": 1, - "resSand.w": 4, - "plants": 6, - "resLeaves": 3, - "resLeaves.w": 10, - "e7": 3, - "sunDir*0.01": 2, - "col": 32, - "n.y": 3, - "lightLeaves": 3, - "ao": 5, - "sky": 5, - "res.y": 2, - "uvFact": 2, - "n.x": 1, - "tex": 6, - "iChannel0": 3, - ".rgb": 2, - "e8": 1, - "traceReflection": 2, - "resPlants": 2, - "resPlants.w": 6, - "resPlants.xyz": 2, - "pos.xz": 2, - "leavesPos.xz": 2, - "resLeaves.xyz": 2, - "trace": 2, - "resSand.xyz": 1, - "treasure": 1, - "chest": 1, - "resTreasure": 1, - "resTreasure.w": 4, - "resTreasure.xyz": 1, - "water": 1, - "resWater": 1, - "resWater.w": 4, - "ct": 2, - "fresnel": 2, - "trans": 2, - "reflDir": 3, - "reflect": 1, - "refl": 3, - "resWater.t": 1, - "rd": 1, - "iResolution.yy": 1, - "iResolution.x/iResolution.y*0.5": 1, - "rd.x": 1, - "rd.y": 1, - "*0.25": 4, - "*0.5": 1, - "Optimized": 1, - "Haarm": 1, - "Peter": 1, - "Duiker": 1, - "curve": 1, - "col*exposure": 1, - "x*": 2, - ".5": 1 - }, - "Game Maker Language": { - "#define": 26, - "__http_init": 3, - "global.__HttpClient": 4, - "object_add": 1, - "(": 1501, - ")": 1502, - ";": 1282, - "object_set_persistent": 1, - "true": 73, - "__http_split": 3, - "var": 79, - "text": 19, - "delimeter": 7, - "limit": 5, - "argument0": 28, - "argument1": 10, - "argument2": 3, - "list": 36, - "count": 4, - "ds_list_create": 5, - "while": 15, - "string_pos": 20, - "{": 300, - "ds_list_add": 23, - "string_copy": 32, - "-": 212, - "+": 206, - "string_length": 25, - "if": 397, - "and": 155, - "break": 58, - "}": 307, - "return": 56, - "__http_parse_url": 4, - "url": 62, - "map": 47, - "ds_map_create": 4, - "ds_map_add": 15, - "colonPos": 22, - "string_char_at": 13, - "slashPos": 13, - "else": 151, - "real": 14, - "queryPos": 12, - "ds_map_destroy": 6, - "__http_resolve_url": 2, - "baseUrl": 3, - "refUrl": 18, - "urlParts": 15, - "refUrlParts": 5, - "canParseRefUrl": 3, - "result": 11, - "ds_map_find_value": 22, - "or": 78, - "__http_resolve_path": 3, - "ds_map_replace": 3, - "ds_map_exists": 11, - "ds_map_delete": 1, - "path": 10, - "query": 4, - "relUrl": 1, - "__http_construct_url": 2, - "basePath": 4, - "refPath": 7, - "parts": 29, - "refParts": 5, - "lastPart": 3, - "ds_list_find_value": 9, - "ds_list_size": 11, - "ds_list_delete": 5, - "i": 95, - "for": 26, - "<": 39, - "ds_list_destroy": 4, - "part": 6, - "ds_list_replace": 3, - "continue": 4, - "__http_parse_hex": 2, - "hexString": 4, - "hexValues": 3, - "*": 18, - "digit": 4, - "string": 13, - "__http_prepare_request": 4, - "client": 33, - "headers": 11, - "parsed": 18, - "show_error": 2, - "with": 47, - "destroyed": 3, - "false": 85, - "CR": 10, - "chr": 3, - "LF": 5, - "CRLF": 17, - "socket": 40, - "tcp_connect": 1, - "state": 50, - "errored": 19, - "error": 18, - "linebuf": 33, - "line": 19, - "statusCode": 6, - "reasonPhrase": 2, - "responseBody": 19, - "buffer_create": 7, - "responseBodySize": 5, - "responseBodyProgress": 5, - "responseHeaders": 9, - "requestUrl": 2, - "requestHeaders": 2, - "write_string": 9, - "key": 17, - "ds_map_find_first": 1, - "is_string": 2, - "ds_map_find_next": 1, - "socket_send": 1, - "__http_parse_header": 3, - "ord": 16, - "headerValue": 9, - "string_lower": 3, - "headerName": 4, - "__http_client_step": 2, - "exit": 10, - "socket_has_error": 1, - "socket_error": 1, - "__http_client_destroy": 20, - "available": 7, - "tcp_receive_available": 1, - "switch": 9, - "case": 50, - "&&": 6, - "tcp_eof": 3, - "bytesRead": 6, - "c": 20, - "<=>": 3, - "1": 32, - "read_string": 9, - "Reached": 2, - "end": 11, - "of": 25, - "HTTP": 1, - "defines": 1, - "the": 62, - "sequence": 2, - "as": 1, - "marker": 1, - "all": 3, - "protocol": 3, - "elements": 1, - "except": 2, - "entity": 1, - "body": 2, - "see": 1, - "appendix": 1, - "19": 1, - "3": 1, - "tolerant": 1, - "applications": 1, - "Strip": 1, - "trailing": 1, - "First": 1, - "status": 2, - "code": 2, - "0": 21, - "The": 6, - "first": 3, - "a": 55, - "Response": 1, - "message": 1, - "is": 9, - "Status": 1, - "Line": 1, - "consisting": 1, - "version": 4, - "followed": 1, - "by": 5, - "numeric": 1, - "its": 1, - "associated": 1, - "textual": 1, - "phrase": 1, - "each": 18, - "element": 8, - "separated": 1, - "SP": 1, - "characters": 3, - "No": 3, - "allowed": 1, - "in": 21, - "final": 1, - "httpVer": 2, - "spacePos": 11, - "space": 4, - "response": 5, - "second": 2, - "Other": 1, - "Blank": 1, - "write": 1, - "remainder": 1, - "write_buffer_part": 3, - "Header": 1, - "Receiving": 1, - "write_buffer": 2, - "transfer": 6, - "encoding": 2, - "chunked": 4, - "Chunked": 1, - "let": 1, - "s": 6, - "decode": 36, - "it": 6, - "actualResponseBody": 8, - "actualResponseSize": 1, - "actualResponseBodySize": 3, - "Parse": 1, - "chunks": 1, - "chunk": 12, - "size": 7, - "extension": 3, - "data": 4, - "HEX": 1, - "buffer_bytes_left": 6, - "chunkSize": 11, - "Read": 1, - "byte": 2, - "We": 1, - "found": 21, - "semicolon": 1, - "beginning": 1, - "skip": 1, - "stuff": 2, - "header": 2, - "Doesn": 1, - "t": 23, - "did": 1, - "not": 63, - "buffer_destroy": 8, - "empty": 13, - "something": 1, - "up": 6, - "Parsing": 1, - "failed": 56, - "hex": 2, - "was": 1, - "hexadecimal": 1, - "Is": 1, - "bigger": 2, - "than": 1, - "remaining": 1, - "2": 2, - "responseHaders": 1, - "location": 4, - "resolved": 5, - "socket_destroy": 4, - "http_new_get": 1, - "variable_global_exists": 2, - "instance_create": 20, - "http_new_get_ex": 1, - "http_step": 1, - "client.errored": 3, - "||": 16, - "client.state": 3, - "http_status_code": 1, - "client.statusCode": 1, - "http_reason_phrase": 1, - "client.error": 1, - "client.reasonPhrase": 1, - "http_response_body": 1, - "client.responseBody": 1, - "http_response_body_size": 1, - "client.responseBodySize": 1, - "http_response_body_progress": 1, - "client.responseBodyProgress": 1, - "http_response_headers": 1, - "client.responseHeaders": 1, - "http_destroy": 1, - "instance_destroy": 7, - "hashList": 5, - "pluginname": 9, - "pluginhash": 4, - "realhash": 1, - "handle": 1, - "filesize": 1, - "progress": 1, - "tempfile": 1, - "tempdir": 1, - "lastContact": 2, - "isCached": 2, - "isDebug": 2, - "split": 1, - "checkpluginname": 1, - "show_message": 7, - "ds_list_find_index": 1, - "file_exists": 5, - "working_directory": 6, - ".zip": 3, - "ServerPluginsCache": 6, - "@": 5, - ".zip.tmp": 1, - ".tmp": 2, - "ServerPluginsDebug": 1, - "Warning": 2, - "server": 10, - "sent": 7, - "plugin": 6, - "being": 2, - "loaded": 2, - "from": 5, - "ServerPluginsDebug.": 2, - "Make": 2, - "sure": 2, - "clients": 1, - "have": 2, - "same": 6, - "they": 1, - "may": 2, - "be": 4, - "unable": 2, - "to": 62, - "connect.": 2, - "has": 2, - "you": 1, - "Downloading": 1, - "/": 5, - "last_plugin.log": 2, - "plugin.gml": 1, - "assert_true": 1, - "_assert_error_popup": 2, - "string_repeat": 2, - "_assert_newline": 2, - "assert_false": 1, - "assert_equal": 1, - "//Safe": 1, - "equality": 1, - "check": 1, - "won": 1, - "support": 1, - "use": 4, - "instead": 1, - "_assert_debug_value": 1, - "//String": 1, - "os_browser": 1, - "browser_not_a_browser": 1, - "string_replace_all": 1, - "//Numeric": 1, - "GMTuple": 1, - "jso_encode_string": 1, - "encode": 8, - "escape": 2, - "character": 20, - "jso_encode_map": 4, - "value": 13, - "one": 42, - "key1": 3, - "key2": 3, - "multi": 7, - "[": 99, - "]": 103, - "jso_encode_list": 3, - "nested": 27, - "three": 36, - "_jso_decode_string": 5, - "an": 24, - "small": 1, - "quick": 2, - "brown": 2, - "fox": 2, - "jumps": 3, - "over": 2, - "lazy": 2, - "dog.": 2, - "simple": 1, - "Waahoo": 1, - "negg": 1, - "mixed": 1, - "_jso_decode_boolean": 2, - "_jso_decode_real": 11, - "standard": 1, - "zero": 4, - "signed": 2, - "decimal": 1, - "digits": 1, - "positive": 7, - "number": 7, - "negative": 7, - "exponent": 4, - "integer": 6, - "_jso_decode_integer": 3, - "_jso_decode_map": 14, - "didn": 14, - "include": 14, - "right": 14, - "prefix": 14, - "#1": 14, - "#2": 14, - "entry": 29, - "pi": 2, - "bool": 2, - "waahoo": 10, - "woohah": 8, - "lists": 6, - "mix": 4, - "_jso_decode_list": 14, - "woo": 2, - "maps": 37, - "Empty": 4, - "should": 25, - "equal": 20, - "other.": 12, - "junk": 2, - "info": 1, - "taxi": 1, - "An": 4, - "filled": 4, - "map.": 2, - "A": 24, - "B": 18, - "C": 8, - "Maps": 9, - "content": 4, - "entered": 4, - "different": 12, - "orders": 4, - "D": 1, - "keys": 2, - "values": 4, - "six": 1, - "corresponding": 4, - "types": 4, - "other": 4, - "crash.": 4, - "list.": 2, - "Lists": 4, - "two": 16, - "entries": 2, - "also": 2, - "jso_map_check": 9, - "find": 10, - "existing": 9, - "single": 11, - "argument": 10, - "jso_map_lookup": 3, - "wrong": 10, - "trap": 2, - "jso_map_lookup_type": 3, - "type": 8, - "four": 21, - "inexistent": 11, - "multiple": 20, - "arguments": 26, - "index": 11, - "overflow": 4, - "jso_list_check": 8, - "jso_list_lookup": 3, - "jso_list_lookup_type": 3, - "inner": 1, - "indexing": 1, - "on": 4, - "bad": 1, - "boolean": 3, - "jso_cleanup_map": 1, - "one_map": 1, - "xoffset": 5, - "view_xview": 3, - "yoffset": 5, - "view_yview": 3, - "xsize": 3, - "view_wview": 2, - "ysize": 3, - "view_hview": 2, - "distance_to_point": 3, - "xsize/2": 2, - "ysize/2": 2, - "xr": 19, - "yr": 19, - "round": 6, - "x": 76, - "y": 85, - "image_alpha": 10, - "cloakAlpha": 1, - "global.myself.team": 3, - "team": 13, - "canCloak": 1, - "cloakAlpha/2": 1, - "invisible": 1, - "stabbing": 2, - "power": 1, - "currentWeapon.stab.alpha": 1, - "player": 36, - "global.myself": 4, - "global.showHealthBar": 3, - "draw_set_alpha": 3, - "draw_healthbar": 1, - "hp*100/maxHp": 1, - "c_black": 1, - "c_red": 3, - "c_green": 1, - "mouse_x": 1, - "mouse_y": 1, - "<25)>": 1, - "cloak": 2, - "global": 8, - "myself": 2, - "draw_set_halign": 1, - "fa_center": 1, - "draw_set_valign": 1, - "fa_bottom": 1, - "team=": 1, - "draw_set_color": 2, - "c_blue": 2, - "draw_text": 4, - "35": 1, - "name": 9, - "showTeammateStats": 1, - "weapons": 3, - "Medigun": 2, - "50": 3, - "Superburst": 1, - "currentWeapon": 2, - "uberCharge": 1, - "20": 1, - "Shotgun": 1, - "Nuts": 1, - "N": 1, - "Bolts": 1, - "nutsNBolts": 1, - "Minegun": 1, - "Lobbed": 1, - "Mines": 1, - "lobbed": 1, - "TEAM_RED": 8, - "ubercolour": 6, - "TEAM_BLUE": 6, - "sprite": 12, - "overlaySprite": 6, - "zoomed": 1, - "SniperCrouchRedS": 1, - "SniperCrouchBlueS": 1, - "sniperCrouchOverlay": 1, - "sprite_index": 14, - "overlay": 1, - "omnomnomnom": 2, - "draw_sprite_ext_overlay": 7, - "omnomnomnomSprite": 2, - "omnomnomnomOverlay": 2, - "omnomnomnomindex": 4, - "image_xscale": 17, - "image_yscale": 14, - "image_angle": 14, - "c_white": 13, - "ubered": 7, - "7": 4, - "taunting": 2, - "tauntsprite": 2, - "tauntOverlay": 2, - "tauntindex": 2, - "humiliated": 1, - "draw_sprite_ext": 10, - "humiliationPoses": 1, - "floor": 11, - "animationImage": 9, - "humiliationOffset": 1, - "animationOffset": 6, - "burnDuration": 2, - "burnIntensity": 2, - "numFlames": 1, - "maxIntensity": 1, - "FlameS": 1, - "alarm": 13, - "random": 21, - "flameArray_x": 1, - "flameArray_y": 1, - "maxDuration": 1, - "demon": 4, - "demonX": 5, - "median": 2, - "demonY": 4, - "demonOffset": 4, - "demonDir": 2, - "abs": 9, - "dir": 3, - "demonFrame": 5, - "sprite_get_number": 1, - "*player.team": 2, - "dir*1": 2, - "downloadHandle": 3, - "tmpfile": 3, - "window_oldshowborder": 2, - "window_oldfullscreen": 2, - "timeLeft": 1, - "counter": 1, - "AudioControlPlaySong": 1, - "window_get_showborder": 1, - "window_get_fullscreen": 1, - "window_set_fullscreen": 2, - "window_set_showborder": 1, - "global.updaterBetaChannel": 3, - "UPDATE_SOURCE_BETA": 1, - "UPDATE_SOURCE": 1, - "temp_directory": 1, - "httpGet": 1, - "httpRequestStatus": 1, - "//": 11, - "download": 1, - "isn": 1, - "extract": 1, - "downloaded": 1, - "file": 2, - "now.": 1, - "extractzip": 1, - "execute_program": 1, - "game_end": 1, - "//draws": 1, - "draw": 3, - "facing": 17, - "RIGHT": 10, - "blinkToggle": 1, - "CLIMBING": 5, - "sPExit": 1, - "sDamselExit": 1, - "sTunnelExit": 1, - "global.hasJetpack": 4, - "whipping": 5, - "image_blend": 2, - "//draw_sprite": 1, - "draw_sprite": 9, - "sJetpackBack": 1, - "sJetpackRight": 1, - "sJetpackLeft": 1, - "redColor": 2, - "make_color_rgb": 1, - "holdArrow": 4, - "ARROW_NORM": 2, - "sArrowRight": 1, - "ARROW_BOMB": 2, - "holdArrowToggle": 2, - "sBombArrowRight": 2, - "LEFT": 7, - "sArrowLeft": 1, - "sBombArrowLeft": 2, - "playerId": 11, - "commandLimitRemaining": 4, - "variable_local_exists": 4, - "commandReceiveState": 1, - "commandReceiveExpectedBytes": 1, - "commandReceiveCommand": 1, - "player.socket": 12, - "tcp_receive": 3, - "player.commandReceiveExpectedBytes": 7, - "player.commandReceiveState": 7, - "player.commandReceiveCommand": 4, - "read_ubyte": 10, - "commandBytes": 2, - "commandBytesInvalidCommand": 1, - "commandBytesPrefixLength1": 1, - "commandBytesPrefixLength2": 1, - "default": 1, - "read_ushort": 2, - "PLAYER_LEAVE": 1, - "PLAYER_CHANGECLASS": 1, - "class": 8, - "getCharacterObject": 2, - "player.team": 8, - "player.object": 12, - "collision_point": 30, - "SpawnRoom": 2, - "instance_exists": 8, - "lastDamageDealer": 8, - "sendEventPlayerDeath": 4, - "noone": 7, - "BID_FAREWELL": 4, - "doEventPlayerDeath": 4, - "assistant": 16, - "secondToLastDamageDealer": 2, - "lastDamageDealer.object": 2, - "lastDamageDealer.object.healer": 4, - "FINISHED_OFF": 5, - "player.alarm": 4, - "<=0)>": 1, - "5": 5, - "checkClasslimits": 2, - "ServerPlayerChangeclass": 2, - "sendBuffer": 1, - "PLAYER_CHANGETEAM": 1, - "newTeam": 7, - "balance": 5, - "redSuperiority": 6, - "calculate": 1, - "which": 1, - "Player": 1, - "player.class": 15, - "TEAM_SPECTATOR": 1, - "global.Server_Respawntime": 3, - "newClass": 4, - "global.sendBuffer": 19, - "ServerPlayerChangeteam": 1, - "ServerBalanceTeams": 1, - "CHAT_BUBBLE": 2, - "bubbleImage": 5, - "global.aFirst": 1, - "write_ubyte": 20, - "setChatBubble": 1, - "BUILD_SENTRY": 2, - "CLASS_ENGINEER": 3, - "collision_circle": 1, - "player.object.x": 3, - "player.object.y": 3, - "Sentry": 1, - "player.object.nutsNBolts": 1, - "player.sentry": 2, - "player.object.onCabinet": 1, - "write_ushort": 2, - "global.serializeBuffer": 3, - "player.object.x*5": 1, - "player.object.y*5": 1, - "write_byte": 1, - "player.object.image_xscale": 2, - "buildSentry": 1, - "DESTROY_SENTRY": 1, - "DROP_INTEL": 1, - "player.object.intel": 1, - "sendEventDropIntel": 1, - "doEventDropIntel": 1, - "OMNOMNOMNOM": 2, - "player.humiliated": 1, - "player.object.taunting": 1, - "player.object.omnomnomnom": 1, - "player.object.canEat": 1, - "CLASS_HEAVY": 2, - "omnomnomnomend": 2, - "xscale": 1, - "TOGGLE_ZOOM": 2, - "CLASS_SNIPER": 3, - "toggleZoom": 1, - "PLAYER_CHANGENAME": 2, - "nameLength": 4, - "socket_receivebuffer_size": 3, - "MAX_PLAYERNAME_LENGTH": 2, - "KICK": 2, - "KICK_NAME": 1, - "current_time": 2, - "lastNamechange": 2, - "string_count": 2, - "INPUTSTATE": 1, - "keyState": 1, - "netAimDirection": 1, - "aimDirection": 1, - "netAimDirection*360/65536": 1, - "event_user": 1, - "REWARD_REQUEST": 1, - "player.rewardId": 1, - "player.challenge": 2, - "rewardCreateChallenge": 1, - "REWARD_CHALLENGE_CODE": 1, - "write_binstring": 1, - "REWARD_CHALLENGE_RESPONSE": 1, - "answer": 3, - "authbuffer": 1, - "read_binstring": 1, - "rewardAuthStart": 1, - "challenge": 1, - "rewardId": 1, - "PLUGIN_PACKET": 1, - "packetID": 3, - "buf": 5, - "success": 3, - "_PluginPacketPush": 1, - "KICK_BAD_PLUGIN_PACKET": 1, - "CLIENT_SETTINGS": 2, - "mirror": 4, - "player.queueJump": 1, - "playerObject": 1, - "playerID": 1, - "otherPlayerID": 1, - "otherPlayer": 1, - "sameVersion": 1, - "buffer": 1, - "plugins": 4, - "pluginsRequired": 2, - "usePlugins": 1, - "global.serverSocket": 10, - "gotServerHello": 2, - "room": 1, - "DownloadRoom": 1, - "keyboard_check": 1, - "vk_escape": 1, - "downloadingMap": 2, - "min": 4, - "downloadMapBytes": 2, - "buffer_size": 2, - "downloadMapBuffer": 6, - "write_buffer_to_file": 1, - "downloadMapName": 3, - "roomchange": 2, - "do": 1, - "HELLO": 1, - "global.joinedServerName": 2, - "receivestring": 4, - "advertisedMapMd5": 1, - "receiveCompleteMessage": 1, - "global.tempBuffer": 3, - "Server": 3, - "illegal": 2, - "This": 2, - "requires": 1, - "following": 2, - "play": 2, - "#": 3, - "suggests": 1, - "optional": 1, - "Error": 2, - "ocurred": 1, - "loading": 1, - "plugins.": 1, - "Maps/": 2, - ".png": 2, - "Enter": 1, - "Password": 1, - "Incorrect": 1, - "Password.": 1, - "Incompatible": 1, - "version.": 1, - "Name": 1, - "Exploit": 1, - "Invalid": 2, - "packet": 3, - "ID": 2, - "There": 1, - "are": 1, - "too": 2, - "many": 1, - "connections": 1, - "your": 1, - "IP": 1, - "You": 1, - "been": 1, - "kicked": 1, - "server.": 1, - ".": 12, - "#Server": 1, - "went": 1, - "invalid": 1, - "internal": 1, - "#Exiting.": 1, - "full.": 1, - "ERROR": 1, - "when": 1, - "reading": 1, - "no": 1, - "such": 1, - "unexpected": 1, - "data.": 1, - "until": 1, - "RoomChangeObserver": 1, - "set_little_endian_global": 1, - "file_delete": 3, - "backupFilename": 5, - "file_find_first": 1, - "file_find_next": 1, - "file_find_close": 1, - "customMapRotationFile": 7, - "restart": 4, - "//import": 1, - "wav": 1, - "files": 1, - "music": 1, - "global.MenuMusic": 3, - "sound_add": 3, - "choose": 8, - "global.IngameMusic": 3, - "global.FaucetMusic": 3, - "sound_volume": 3, - "global.HudCheck": 1, - "global.map_rotation": 19, - "global.CustomMapCollisionSprite": 1, - "window_set_region_scale": 1, - "ini_open": 2, - "global.playerName": 7, - "ini_read_string": 12, - "global.fullscreen": 3, - "ini_read_real": 65, - "global.useLobbyServer": 2, - "global.hostingPort": 2, - "global.music": 2, - "MUSIC_BOTH": 1, - "global.playerLimit": 4, - "//thy": 1, - "playerlimit": 1, - "shalt": 1, - "exceed": 1, - "global.dedicatedMode": 7, - "ini_write_real": 60, - "global.multiClientLimit": 2, - "global.particles": 2, - "PARTICLES_NORMAL": 1, - "global.gibLevel": 14, - "global.killCam": 3, - "global.monitorSync": 3, - "set_synchronization": 2, - "global.medicRadar": 2, - "global.showHealer": 2, - "global.showHealing": 2, - "global.showTeammateStats": 2, - "global.serverPluginsPrompt": 2, - "global.restartPrompt": 2, - "//user": 1, - "HUD": 1, - "settings": 1, - "global.timerPos": 2, - "global.killLogPos": 2, - "global.kothHudPos": 2, - "global.clientPassword": 1, - "global.shuffleRotation": 2, - "global.timeLimitMins": 2, - "max": 2, - "global.serverPassword": 2, - "global.mapRotationFile": 1, - "global.serverName": 2, - "global.welcomeMessage": 2, - "global.caplimit": 3, - "global.caplimitBkup": 1, - "global.autobalance": 2, - "global.Server_RespawntimeSec": 4, - "global.rewardKey": 1, - "unhex": 1, - "global.rewardId": 1, - "global.mapdownloadLimitBps": 2, - "isBetaVersion": 1, - "global.attemptPortForward": 2, - "global.serverPluginList": 3, - "global.serverPluginsRequired": 2, - "CrosshairFilename": 5, - "CrosshairRemoveBG": 4, - "global.queueJumping": 2, - "global.backgroundHash": 2, - "global.backgroundTitle": 2, - "global.backgroundURL": 2, - "global.backgroundShowVersion": 2, - "readClasslimitsFromIni": 1, - "global.currentMapArea": 1, - "global.totalMapAreas": 1, - "global.setupTimer": 1, - "global.serverPluginsInUse": 1, - "global.pluginPacketBuffers": 1, - "global.pluginPacketPlayers": 1, - "ini_write_string": 10, - "ini_key_delete": 1, - "global.classlimits": 10, - "CLASS_SCOUT": 1, - "CLASS_PYRO": 2, - "CLASS_SOLDIER": 2, - "CLASS_DEMOMAN": 1, - "CLASS_MEDIC": 2, - "CLASS_SPY": 1, - "CLASS_QUOTE": 3, - "//screw": 1, - "we": 5, - "will": 1, - "start": 1, - "//map_truefort": 1, - "//map_2dfort": 1, - "//map_conflict": 1, - "//map_classicwell": 1, - "//map_waterway": 1, - "//map_orange": 1, - "//map_dirtbowl": 1, - "//map_egypt": 1, - "//arena_montane": 1, - "//arena_lumberyard": 1, - "//gen_destroy": 1, - "//koth_valley": 1, - "//koth_corinth": 1, - "//koth_harvest": 1, - "//dkoth_atalia": 1, - "//dkoth_sixties": 1, - "//Server": 1, - "respawn": 1, - "time": 1, - "calculator.": 1, - "Converts": 1, - "frame.": 1, - "read": 1, - "multiply": 1, - "hehe": 1, - "global.mapchanging": 1, - "ini_close": 2, - "global.protocolUuid": 2, - "parseUuid": 2, - "PROTOCOL_UUID": 1, - "global.gg2lobbyId": 2, - "GG2_LOBBY_UUID": 1, - "initRewards": 1, - "IPRaw": 3, - "portRaw": 3, - "doubleCheck": 8, - "global.launchMap": 5, - "parameter_count": 1, - "parameter_string": 8, - "global.serverPort": 1, - "global.serverIP": 1, - "global.isHost": 1, - "Client": 1, - "global.customMapdesginated": 2, - "fileHandle": 6, - "mapname": 9, - "file_text_open_read": 1, - "file_text_eof": 1, - "file_text_read_string": 1, - "starts": 1, - "tab": 2, - "string_delete": 1, - "delete": 1, - "that": 2, - "comment": 1, - "starting": 1, - "file_text_readln": 1, - "file_text_close": 1, - "load": 1, - "ini": 1, - "section": 1, - "//Set": 1, - "rotation": 1, - "sort_list": 7, - "*maps": 1, - "ds_list_sort": 1, - "mod": 1, - "global.gg2Font": 2, - "font_add_sprite": 2, - "gg2FontS": 1, - "global.countFont": 1, - "countFontS": 1, - "draw_set_font": 1, - "cursor_sprite": 1, - "CrosshairS": 5, - "directory_exists": 2, - "directory_create": 2, - "AudioControl": 1, - "SSControl": 1, - "message_background": 1, - "popupBackgroundB": 1, - "message_button": 1, - "popupButtonS": 1, - "message_text_font": 1, - "message_button_font": 1, - "message_input_font": 1, - "//Key": 1, - "Mapping": 1, - "global.jump": 1, - "global.down": 1, - "global.left": 1, - "global.right": 1, - "global.attack": 1, - "MOUSE_LEFT": 1, - "global.special": 1, - "MOUSE_RIGHT": 1, - "global.taunt": 1, - "global.chat1": 1, - "global.chat2": 1, - "global.chat3": 1, - "global.medic": 1, - "global.drop": 1, - "global.changeTeam": 1, - "global.changeClass": 1, - "global.showScores": 1, - "vk_shift": 1, - "calculateMonthAndDay": 1, - "loadplugins": 1, - "registry_set_root": 1, - "HKLM": 1, - "global.NTKernelVersion": 1, - "registry_read_string_ext": 1, - "CurrentVersion": 1, - "SIC": 1, - "sprite_replace": 1, - "sprite_set_offset": 1, - "sprite_get_width": 1, - "/2": 2, - "sprite_get_height": 1, - "AudioControlToggleMute": 1, - "room_goto_fix": 2, - "Menu": 2, - "global.levelType": 22, - "//global.currLevel": 1, - "global.currLevel": 22, - "global.hadDarkLevel": 4, - "global.startRoomX": 1, - "global.startRoomY": 1, - "global.endRoomX": 1, - "global.endRoomY": 1, - "oGame.levelGen": 2, - "j": 14, - "global.roomPath": 1, - "k": 5, - "global.lake": 3, - "isLevel": 1, - "999": 2, - "levelType": 2, - "16": 14, - "656": 3, - "obj": 14, - "oDark": 2, - "invincible": 2, - "sDark": 1, - "4": 2, - "oTemple": 2, - "cityOfGold": 1, - "sTemple": 2, - "lake": 1, - "i*16": 8, - "j*16": 6, - "oLush": 2, - "obj.sprite_index": 4, - "sLush": 2, - "obj.invincible": 3, - "oBrick": 1, - "sBrick": 1, - "global.cityOfGold": 2, - "*16": 2, - "//instance_create": 2, - "oSpikes": 1, - "background_index": 1, - "bgTemple": 1, - "global.temp1": 1, - "global.gameStart": 3, - "scrLevelGen": 1, - "global.cemetary": 3, - "rand": 10, - "global.probCemetary": 1, - "oRoom": 1, - "scrRoomGen": 1, - "global.blackMarket": 3, - "scrRoomGenMarket": 1, - "scrRoomGen2": 1, - "global.yetiLair": 2, - "scrRoomGenYeti": 1, - "scrRoomGen3": 1, - "scrRoomGen4": 1, - "scrRoomGen5": 1, - "global.darkLevel": 4, - "//if": 5, - "global.noDarkLevel": 1, - "global.probDarkLevel": 1, - "oPlayer1.x": 2, - "oPlayer1.y": 2, - "oFlare": 1, - "global.genUdjatEye": 4, - "global.madeUdjatEye": 1, - "global.genMarketEntrance": 4, - "global.madeMarketEntrance": 1, - "////////////////////////////": 2, - "global.temp2": 1, - "isRoom": 3, - "scrEntityGen": 1, - "oEntrance": 1, - "global.customLevel": 1, - "oEntrance.x": 1, - "oEntrance.y": 1, - "global.snakePit": 1, - "global.alienCraft": 1, - "global.sacrificePit": 1, - "oPlayer1": 1, - "scrSetupWalls": 3, - "global.graphicsHigh": 1, - "repeat": 7, - "tile_add": 4, - "bgExtrasLush": 1, - "*rand": 12, - "bgExtrasIce": 1, - "bgExtrasTemple": 1, - "bgExtras": 1, - "global.murderer": 1, - "global.thiefLevel": 1, - "isRealLevel": 1, - "oExit": 1, - "oShopkeeper": 1, - "obj.status": 1, - "oTreasure": 1, - "oSolid": 14, - "instance_place": 3, - "oWater": 1, - "sWaterTop": 1, - "sLavaTop": 1, - "scrCheckWaterTop": 1, - "global.temp3": 1, - "victim": 10, - "killer": 11, - "damageSource": 18, - "argument3": 1, - "//*************************************": 6, - "//*": 3, - "Scoring": 1, - "Kill": 1, - "log": 1, - "recordKillInLog": 1, - "victim.stats": 1, - "DEATHS": 1, - "WEAPON_KNIFE": 1, - "WEAPON_BACKSTAB": 1, - "killer.stats": 8, - "STABS": 2, - "killer.roundStats": 8, - "POINTS": 10, - "victim.object.currentWeapon.object_index": 1, - "victim.object.currentWeapon.uberReady": 1, - "BONUS": 2, - "KILLS": 2, - "victim.object.intel": 1, - "DEFENSES": 2, - "recordEventInLog": 1, - "killer.team": 1, - "killer.name": 2, - "assistant.stats": 2, - "ASSISTS": 2, - "assistant.roundStats": 2, - ".5": 2, - "//SPEC": 1, - "victim.object.x": 3, - "victim.object.y": 3, - "Spectator": 1, - "Gibbing": 2, - "randomize": 1, - "victim.object": 2, - "WEAPON_ROCKETLAUNCHER": 1, - "WEAPON_MINEGUN": 1, - "FRAG_BOX": 2, - "WEAPON_REFLECTED_STICKY": 1, - "WEAPON_REFLECTED_ROCKET": 1, - "FINISHED_OFF_GIB": 2, - "GENERATOR_EXPLOSION": 2, - "hasReward": 4, - "createGib": 14, - "PumpkinGib": 1, - "hspeed": 14, - "vspeed": 13, - "Gib": 1, - "BlueClump": 1, - "RedClump": 1, - "blood": 2, - "BloodDrop": 1, - "blood.hspeed": 1, - "blood.vspeed": 1, - "blood.sprite_index": 1, - "PumpkinJuiceS": 1, - "//All": 1, - "Classes": 1, - "gib": 1, - "head": 1, - "hands": 2, - "feet": 1, - "Headgib": 1, - "//Medic": 1, - "specially": 1, - "colored": 1, - "Hand": 3, - "Feet": 1, - "//Class": 1, - "specific": 1, - "gibs": 1, - "Accesory": 5, - "playsound": 2, - "deadbody": 2, - "DeathSnd1": 1, - "DeathSnd2": 1, - "DeadGuy": 1, - "deadbody.sprite_index": 2, - "haxxyStatue": 1, - "deadbody.image_index": 2, - "CHARACTER_ANIMATION_DEAD": 1, - "deadbody.hspeed": 1, - "deadbody.vspeed": 1, - "deadbody.image_xscale": 1, - "global.gg_birthday": 1, - "myHat": 2, - "PartyHat": 1, - "myHat.image_index": 2, - "victim.team": 2, - "global.xmas": 1, - "XmasHat": 1, - "Deathcam": 1, - "KILL_BOX": 1, - "DeathCam": 1, - "DeathCam.killedby": 1, - "DeathCam.name": 1, - "DeathCam.oldxview": 1, - "DeathCam.oldyview": 1, - "DeathCam.lastDamageSource": 1, - "DeathCam.team": 1, - "__jso_gmt_tuple": 1, - "//Position": 1, - "address": 1, - "table": 1, - "pos": 2, - "addr_table": 2, - "*argument_count": 1, - "//Build": 1, - "tuple": 1, - "ca": 1, - "isstr": 1, - "datastr": 1, - "argument_count": 1, - "//Check": 1, - "Unexpected": 18, - "at": 23, - "position": 16, - "f": 5, - "JSON": 5, - "string.": 5, - "Cannot": 5, - "parse": 3, - "expecting": 9, - "digit.": 9, - "e": 4, - "E": 4, - "dot": 1, - "Expected": 6, - "least": 6, - "got": 6, - "lookup.": 4, - "indices": 1, - "Index": 1, - "Recursive": 1, - "abcdef": 1, - "num": 1, - "hangCountMax": 2, - "//////////////////////////////////////": 2, - "kLeft": 12, - "checkLeft": 1, - "kLeftPushedSteps": 3, - "kLeftPressed": 2, - "checkLeftPressed": 1, - "kLeftReleased": 3, - "checkLeftReleased": 1, - "kRight": 12, - "checkRight": 1, - "kRightPushedSteps": 3, - "kRightPressed": 2, - "checkRightPressed": 1, - "kRightReleased": 3, - "checkRightReleased": 1, - "kUp": 5, - "checkUp": 1, - "kDown": 5, - "checkDown": 1, - "//key": 1, - "canRun": 1, - "kRun": 2, - "kJump": 6, - "checkJump": 1, - "kJumpPressed": 11, - "checkJumpPressed": 1, - "kJumpReleased": 5, - "checkJumpReleased": 1, - "cantJump": 3, - "global.isTunnelMan": 1, - "sTunnelAttackL": 1, - "holdItem": 1, - "kAttack": 2, - "checkAttack": 2, - "kAttackPressed": 2, - "checkAttackPressed": 1, - "kAttackReleased": 2, - "checkAttackReleased": 1, - "kItemPressed": 2, - "checkItemPressed": 1, - "xPrev": 1, - "yPrev": 1, - "stunned": 3, - "dead": 3, - "//////////////////////////////////////////": 2, - "colSolidLeft": 4, - "colSolidRight": 3, - "colLeft": 6, - "colRight": 6, - "colTop": 4, - "colBot": 11, - "colLadder": 3, - "colPlatBot": 6, - "colPlat": 5, - "colWaterTop": 3, - "colIceBot": 2, - "runKey": 4, - "isCollisionMoveableSolidLeft": 1, - "isCollisionMoveableSolidRight": 1, - "isCollisionLeft": 2, - "isCollisionRight": 2, - "isCollisionTop": 1, - "isCollisionBottom": 1, - "isCollisionLadder": 1, - "isCollisionPlatformBottom": 1, - "isCollisionPlatform": 1, - "isCollisionWaterTop": 1, - "oIce": 1, - "checkRun": 1, - "runHeld": 3, - "HANGING": 10, - "approximatelyZero": 4, - "xVel": 24, - "xAcc": 12, - "platformCharacterIs": 23, - "ON_GROUND": 18, - "DUCKING": 4, - "pushTimer": 3, - "SS_IsSoundPlaying": 2, - "global.sndPush": 4, - "playSound": 3, - "runAcc": 2, - "/xVel": 1, - "oCape": 2, - "oCape.open": 6, - "kJumped": 7, - "ladderTimer": 4, - "ladder": 5, - "oLadder": 4, - "ladder.x": 3, - "oLadderTop": 2, - "yAcc": 26, - "climbAcc": 2, - "FALLING": 8, - "STANDING": 2, - "departLadderXVel": 2, - "departLadderYVel": 1, - "JUMPING": 6, - "jumpButtonReleased": 7, - "jumpTime": 8, - "IN_AIR": 5, - "gravityIntensity": 2, - "yVel": 20, - "RUNNING": 3, - "//playSound": 1, - "global.sndLand": 1, - "grav": 22, - "global.hasGloves": 3, - "hangCount": 14, - "yVel*0.3": 1, - "oWeb": 2, - "obj.life": 1, - "initialJumpAcc": 6, - "xVel/2": 3, - "gravNorm": 7, - "global.hasCape": 1, - "jetpackFuel": 2, - "fallTimer": 2, - "global.hasJordans": 1, - "yAccLimit": 2, - "global.hasSpringShoes": 1, - "global.sndJump": 1, - "jumpTimeTotal": 2, - "//let": 1, - "jump": 1, - "jumpTime/jumpTimeTotal": 1, - "looking": 2, - "UP": 1, - "LOOKING_UP": 4, - "move_snap": 6, - "oTree": 4, - "oArrow": 5, - "instance_nearest": 1, - "obj.stuck": 1, - "//the": 2, - "can": 1, - "want": 1, - "because": 2, - "high": 1, - "yPrevHigh": 1, - "ll": 1, - "move": 2, - "correct": 1, - "distance": 1, - "but": 2, - "need": 1, - "shorten": 1, - "out": 4, - "little": 1, - "ratio": 1, - "xVelInteger": 2, - "/dist*0.9": 1, - "//can": 1, - "changed": 1, - "moveTo": 2, - "xVelInteger*ratio": 1, - "yVelInteger*ratio": 1, - "slopeChangeInY": 1, - "maxDownSlope": 1, - "floating": 1, - "just": 1, - "above": 1, - "slope": 1, - "so": 2, - "down": 1, - "upYPrev": 1, - "<=upYPrev+maxDownSlope;y+=1)>": 1, - "hit": 1, - "solid": 1, - "below": 1, - "upYPrev=": 1, - "I": 1, - "know": 1, - "this": 2, - "doesn": 1, - "seem": 1, - "make": 1, - "sense": 1, - "variable": 1, - "works": 1, - "correctly": 1, - "after": 1, - "loop": 1, - "y=": 1, - "figures": 1, - "what": 1, - "characterSprite": 1, - "sets": 1, - "previous": 2, - "previously": 1, - "statePrevPrev": 1, - "statePrev": 2, - "calculates": 1, - "image_speed": 9, - "based": 1, - "velocity": 1, - "runAnimSpeed": 1, - "sqrt": 1, - "sqr": 2, - "climbAnimSpeed": 1, - "setCollisionBounds": 3, - "8": 9, - "DUCKTOHANG": 1, - "image_index": 1, - "animation": 1, - "always": 1, - "looks": 1, - "good": 1 - }, - "Gnuplot": { - "set": 98, - "label": 14, - "at": 14, - "-": 102, - "left": 15, - "norotate": 18, - "back": 23, - "textcolor": 13, - "rgb": 8, - "nopoint": 14, - "offset": 25, - "character": 22, - "lt": 15, - "style": 7, - "line": 4, - "linetype": 11, - "linecolor": 4, - "linewidth": 11, - "pointtype": 4, - "pointsize": 4, - "default": 4, - "pointinterval": 4, - "noxtics": 2, - "noytics": 2, - "title": 13, - "xlabel": 6, - "xrange": 3, - "[": 18, - "]": 18, - "noreverse": 13, - "nowriteback": 12, - "yrange": 4, - "bmargin": 1, - "unset": 2, - "colorbox": 3, - "plot": 3, - "cos": 9, - "(": 52, - "x": 7, - ")": 52, - "ls": 4, - ".2": 1, - ".4": 1, - ".6": 1, - ".8": 1, - "lc": 3, - "border": 3, - "dummy": 3, - "u": 25, - "v": 31, - "angles": 1, - "degrees": 1, - "parametric": 3, - "view": 3, - "samples": 3, - "isosamples": 3, - "mapping": 1, - "spherical": 1, - "noztics": 1, - "urange": 1, - "vrange": 1, - "cblabel": 1, - "cbrange": 1, - "user": 1, - "vertical": 2, - "origin": 1, - "screen": 2, - "size": 1, - "front": 1, - "bdefault": 1, - "splot": 3, - "*cos": 1, - "*sin": 1, - "sin": 3, - "notitle": 15, - "with": 3, - "lines": 2, - "using": 2, - "labels": 1, - "point": 1, - "pt": 2, - "lw": 1, - ".1": 1, - "font": 8, - "tc": 1, - "pal": 1, - "arrow": 7, - "from": 7, - "to": 7, - "head": 7, - "nofilled": 7, - "hidden3d": 2, - "trianglepattern": 2, - "undefined": 2, - "altdiagonal": 2, - "bentover": 2, - "ztics": 2, - "norangelimit": 3, - "ylabel": 5, - "rotate": 3, - "by": 3, - "zlabel": 4, - "zrange": 2, - "sinc": 13, - "sqrt": 4, - "u**2": 4, - "+": 6, - "v**2": 4, - "/": 2, - "GPFUN_sinc": 2, - "xx": 2, - "dx": 2, - "x0": 4, - "x1": 4, - "x2": 4, - "x3": 4, - "x4": 4, - "x5": 4, - "x6": 4, - "x7": 4, - "x8": 4, - "x9": 4, - "xmin": 3, - "xmax": 1, - "n": 1, - "zbase": 2, - ".5": 2, - "*n": 1, - "floor": 3, - "u/3": 1, - "*dx": 1, - "%": 2, - "u/3.*dx": 1, - "/0": 1, - "<": 10, - "SHEBANG#!gnuplot": 1, - "reset": 1, - "terminal": 1, - "png": 1, - "output": 1, - "#set": 2, - "xr": 1, - "yr": 1, - "boxwidth": 1, - "absolute": 1, - "fill": 1, - "solid": 1, - "key": 1, - "inside": 1, - "right": 1, - "top": 1, - "Right": 1, - "noenhanced": 1, - "autotitles": 1, - "nobox": 1, - "histogram": 1, - "clustered": 1, - "gap": 1, - "datafile": 1, - "missing": 1, - "data": 1, - "histograms": 1, - "xtics": 3, - "in": 1, - "scale": 1, - "nomirror": 1, - "autojustify": 1, - "i": 1, - "xtic": 1, - "ti": 4, - "col": 4 - }, - "Golo": { - "module": 27, - "samples.Decorators": 1, - "import": 32, - "java.util.LinkedList": 5, - "function": 87, - "simple_decorator": 1, - "|": 228, - "func": 12, - "{": 151, - "return": 28, - "a": 22, - "b": 14, - "-": 58, - "(": 642, - "+": 114, - ")": 644, - "}": 150, - "@simple_decorator": 1, - "simple_adder": 2, - "x": 19, - "y": 16, - "decorator_with_params": 1, - "param1": 2, - "param2": 2, - "@decorator_with_params": 1, - "parametrized_adder": 2, - "generic_decorator": 1, - "args...": 3, - "println": 170, - "args": 44, - "length": 8, - "invokeWithArguments": 6, - "@generic_decorator": 4, - "generic_adder0": 2, - "generic_adder1": 2, - "generic_adder2": 2, - "generic_adder3": 2, - "z": 2, - "list_sum_decorator": 1, - "this": 29, - "augment": 4, - "java.util.List": 2, - "@list_sum_decorator": 1, - "sum": 2, - "var": 5, - "acc": 6, - "foreach": 11, - "elem": 2, - "in": 11, - "main": 27, - "let": 91, - "list": 27, - "LinkedList": 4, - "add": 22, - "#": 18, - "samples.SwingActionListener": 1, - "java.awt.event": 1, - "javax.swing": 2, - "javax.swing.WindowConstants": 2, - "local": 27, - "listener": 2, - "handler": 2, - "asInterfaceInstance": 1, - "ActionListener.class": 2, - "frame": 10, - "JFrame": 2, - "setDefaultCloseOperation": 2, - "EXIT_ON_CLOSE": 2, - "button": 7, - "JButton": 1, - "setFont": 2, - "getFont": 2, - "deriveFont": 2, - "_F": 3, - "addActionListener": 3, - "event": 3, - "to": 3, - "getContentPane": 2, - "pack": 2, - "setVisible": 2, - "true": 4, - "CoinChange": 1, - "change": 9, - "money": 5, - "coins": 13, - "match": 2, - "when": 5, - "then": 5, - "<": 3, - "or": 1, - "isEmpty": 1, - "otherwise": 2, - "head": 1, - "tail": 1, - "append": 7, - "samples.Adapters": 1, - "list_sample": 2, - "fabric": 7, - "carbonCopy": 5, - "[": 33, - "]": 33, - "conf": 4, - "map": 10, - "super": 2, - "name": 9, - "if": 7, - "get": 16, - "else": 5, - "maker": 2, - "newInstance": 2, - "getClass": 3, - "runnable_sample": 2, - "result": 13, - "array": 2, - "for": 2, - "i": 20, - "set": 13, - "runner": 4, - "run": 7, - "toString": 5, - "oftype": 2, - "java.io.Serializable.class": 1, - "java.lang.Runnable.class": 1, - "AdapterFabric": 1, - "samples.DynamicEvaluation": 1, - "gololang.EvaluationEnvironment": 1, - "test_asModule": 2, - "env": 25, - "code": 12, - "mod": 6, - "asModule": 1, - "fun": 6, - "test_anonymousModule": 2, - "anonymousModule": 1, - "test_asFunction": 2, - "f": 9, - "asFunction": 1, - "test_def": 2, - "def": 1, - "test_run": 2, - "test_run_map": 2, - "values": 3, - "java.util.TreeMap": 1, - "EvaluationEnvironment": 1, - "samples.MaxInt": 1, - "max_int": 2, - "java.lang.Integer.MAX_VALUE": 1, - "EchoArgs": 1, - "arg": 2, - "range": 4, - "samples.CollectionLiterals": 1, - "play_with_tuples": 2, - "hello": 6, - "str": 2, - "print": 1, - "join": 3, - "play_with_literals": 2, - "data": 4, - "tuple": 1, - "vector": 1, - "each": 1, - "element": 8, - "samples.WebServer": 1, - "java.lang": 2, - "java.net.InetSocketAddress": 2, - "com.sun.net.httpserver": 2, - "com.sun.net.httpserver.HttpServer": 2, - "server": 8, - "HttpServer.create": 2, - "InetSocketAddress": 2, - "createContext": 3, - "exchange": 27, - "headers": 2, - "getResponseHeaders": 4, - "response": 6, - "StringBuilder": 1, - "getRequestURI": 1, - "java.util.Date": 1, - "sendResponseHeaders": 4, - "getResponseBody": 3, - "write": 3, - "getBytes": 3, - "close": 5, - "stop": 1, - "start": 10, - "samples.AsyncHelpers": 1, - "gololang.Async": 1, - "java.util.concurrent.TimeUnit": 1, - "java.util.concurrent.Executors": 1, - "fib": 15, - "n": 17, - "<=>": 3, - "1": 6, - "2": 3, - "executor": 11, - "newCachedThreadPool": 1, - "Let": 1, - "s": 1, - "do": 1, - "some": 1, - "useless": 1, - "asynchronous": 1, - "operations": 1, - "enqueue": 2, - "Thread": 5, - "sleep": 1, - "1000_L": 1, - "666": 1, - "onSet": 5, - "v": 22, - "onFail": 2, - "e": 42, - "cancel": 1, - "Thread.sleep": 4, - "_L": 6, - "fib_10": 3, - "promise": 5, - "fib_20": 3, - "fib_30": 3, - "fib_40": 3, - "futures": 2, - "future": 5, - "submit": 6, - "all": 1, - "results": 2, - "truth": 3, - "shutdown": 2, - "awaitTermination": 2, - "SECONDS": 1, - "hello.World": 1, - "MoreCoolContainers": 1, - "dyn": 7, - "DynamicVariable": 1, - "value": 8, - "t1": 3, - "withValue": 2, - "t2": 3, - "foo": 17, - "Observable": 1, - "onChange": 2, - "mapped": 2, - "samples.DynamicObjectPerson": 1, - "mrbean": 5, - "DynamicObject": 1, - "email": 3, - "define": 5, - "bean": 4, - "Closures": 1, - "sayHello": 3, - "who": 2, - "adder": 5, - "addToTen": 3, - "bindTo": 5, - "adding": 3, - "addingTen": 2, - "pump_it": 2, - "samples.Augmentations": 1, - "with": 4, - "java.util.Collection": 1, - "doToEach": 2, - "samples.ContextDecorator": 1, - "gololang.Decorators": 3, - "myContext": 3, - "defaultContext": 1, - "count": 4, - "require": 1, - "throw": 1, - "@withContext": 1, - "withContext": 1, - "*a": 2, - "try": 19, - "catch": 19, - "samples.PrepostDecorator": 1, - "isInteger": 4, - "isOfType": 1, - "Integer.class": 1, - "@checkResult": 1, - "isString": 2, - "andThen": 4, - "lengthIs": 1, - "@checkArguments": 4, - "isPositive": 3, - "myCheck": 1, - "checkArguments": 1, - "@myCheck": 1, - "inv": 3, - "/": 1, - "isPositiveInt": 2, - "mul": 3, - "*": 1, - "isNumber": 1, - "num": 7, - "isNotNull": 1, - "notnull": 3, - "null": 2, - "samples.MemoizeDecorator": 1, - "java.lang.System": 2, - "memo": 2, - "memoizer": 1, - "@memo": 1, - "System.currentTimeMillis": 4, - "duration": 5, - "run2": 2, - "sample.EnumsThreadState": 1, - "java.lang.Thread": 2, - "State": 1, - "new": 3, - "State.NEW": 1, - "ordinal": 2, - "State.values": 1, - "Matching": 1, - "what_it_could_be": 2, - "item": 10, - "contains": 1, - "startsWith": 3, - "samples.SwingHelloWorld": 1, - "label": 4, - "JLabel": 1, - "samples.LogDeco": 1, - "log1": 2, - "msg": 2, - "@log1": 2, - "bar": 2, - "@sayHello": 1, - "baz": 2, - "log2": 4, - "msgBefore": 2, - "msgAfter": 2, - "res": 2, - "@log2": 1, - "spam": 2, - "logEnterExit": 1, - "@logEnterExit": 1, - "egg": 2, - "strange_use": 2, - "StructDemo": 1, - "struct": 1, - "Point": 4, - "StructDemo.types.Point": 1, - "move": 2, - "offsetX": 4, - "offsetY": 4, - "relative": 2, - "p1": 15, - "p2": 3, - "p3": 4, - "frozenCopy": 2, - "p4": 3, - "hashCode": 4, - "members": 1, - "p5": 3, - "ImmutablePoint": 1, - "expected": 2, - "getMessage": 1, - "samples.Fibonacci": 1, - "System": 2, - "currentTimeMillis": 2, - "40": 1, - "took": 1, - "ms": 1, - "while": 2, - "DealingWithNull": 1, - "java.util": 1, - "contacts": 3, - "larry": 2, - "orIfNull": 3, - "street": 1, - "number": 1, - "samples.TemplatesChatWebapp": 1, - "java.io": 1, - "redirect": 2, - "respond": 2, - "body": 3, - "extract_post": 2, - "posts": 7, - "reader": 4, - "BufferedReader": 1, - "InputStreamReader": 1, - "getRequestBody": 1, - "line": 5, - "readLine": 2, - "isnt": 1, - "java.net.URLDecoder.decode": 1, - "substring": 1, - "index": 2, - "template": 2, - "getRequestMethod": 1, - "index_template": 2, - "index_tpl": 2, - "gololang.TemplateEngine": 1, - "compile": 1, - "java.util.concurrent.ConcurrentLinkedDeque": 1, - "Workers": 1, - "java.util.concurrent": 1, - "gololang.concurrent.workers.WorkerEnvironment": 1, - "pusher": 2, - "queue": 5, - "message": 4, - "offer": 1, - "generator": 2, - "port": 2, - "send": 3, - "WorkerEnvironment.builder": 1, - "withFixedThreadPool": 1, - "ConcurrentLinkedQueue": 1, - "pusherPort": 2, - "spawn": 3, - "generatorPort": 2, - "finishPort": 2, - "any": 1, - "reduce": 1, - "next": 2 - }, - "Gosu": { - "<%!-->": 1, - "defined": 1, - "in": 3, - "Hello": 2, - "gst": 1, - "<": 2, - "%": 2, - "@": 1, - "params": 1, - "(": 122, - "users": 2, - "Collection": 1, - "": 1, - ")": 123, - "<%>": 2, - "for": 2, - "user": 1, - "{": 72, - "user.LastName": 1, - "}": 72, - "user.FirstName": 1, - "user.Department": 1, - "function": 16, - "hello": 1, - "print": 3, - "package": 3, - "example": 2, - "uses": 8, - "java.util.*": 1, - "java.io.File": 1, - "class": 2, - "Person": 7, - "extends": 1, - "Contact": 1, - "implements": 1, - "IEmailable": 2, - "var": 17, - "_name": 4, - "String": 14, - "_age": 3, - "Integer": 3, - "as": 7, - "Age": 1, - "_relationship": 2, - "Relationship": 3, - "readonly": 1, - "RelationshipOfPerson": 1, - "delegate": 1, - "_emailHelper": 2, - "represents": 1, - "enum": 2, - "FRIEND": 1, - "FAMILY": 1, - "BUSINESS_CONTACT": 1, - "static": 26, - "ALL_PEOPLE": 2, - "new": 8, - "HashMap": 1, - "": 1, - "construct": 2, - "name": 12, - "age": 4, - "relationship": 2, - "EmailHelper": 1, - "this": 1, - "property": 13, - "get": 11, - "Name": 3, - "return": 17, - "set": 2, - "override": 1, - "getEmailName": 1, - "incrementAge": 1, - "+": 2, - "@Deprecated": 1, - "printPersonInfo": 1, - "addPerson": 4, - "p": 5, - "if": 19, - "ALL_PEOPLE.containsKey": 2, - ".Name": 1, - "throw": 5, - "IllegalArgumentException": 1, - "[": 4, - "p.Name": 2, - "]": 4, - "addAllPeople": 1, - "contacts": 2, - "List": 1, - "": 1, - "contact": 3, - "typeis": 2, - "and": 1, - "not": 1, - "contact.Name": 1, - "getAllPeopleOlderThanNOrderedByName": 1, - "int": 2, - "allPeople": 1, - "ALL_PEOPLE.Values": 3, - "allPeople.where": 1, - "-": 3, - "p.Age": 1, - ".orderBy": 1, - "loadPersonFromDB": 1, - "id": 1, - "using": 2, - "conn": 1, - "DBConnectionManager.getConnection": 1, - "stmt": 1, - "conn.prepareStatement": 1, - "stmt.setInt": 1, - "result": 1, - "stmt.executeQuery": 1, - "result.next": 1, - "result.getString": 2, - "result.getInt": 1, - "Relationship.valueOf": 2, - "loadFromFile": 1, - "file": 3, - "File": 3, - "file.eachLine": 1, - "line": 1, - "line.HasContent": 1, - "line.toPerson": 1, - "saveToFile": 1, - "writer": 2, - "FileWriter": 1, - "PersonCSVTemplate.renderToString": 1, - "PersonCSVTemplate.render": 1, - "ronin": 1, - "gw.util.concurrent.LockingLazyVar": 1, - "gw.lang.reflect.*": 1, - "java.lang.*": 1, - "java.io.*": 1, - "ronin.config.*": 1, - "org.slf4j.*": 1, - "Ronin": 1, - "_CONFIG": 13, - "IRoninConfig": 2, - "Config": 1, - "_CURRENT_REQUEST": 1, - "ThreadLocal": 1, - "": 1, - ";": 1, - "private": 1, - "internal": 2, - "init": 1, - "servlet": 3, - "RoninServlet": 3, - "m": 3, - "ApplicationMode": 2, - "src": 2, - "null": 15, - "cfg": 2, - "TypeSystem.getByFullNameIfValid": 2, - "defaultWarning": 3, - "false": 1, - "ctor": 2, - "cfg.TypeInfo.getConstructor": 1, - "ronin.config.ApplicationMode": 1, - "ronin.RoninServlet": 1, - "ctor.Constructor.newInstance": 1, - "else": 9, - "DefaultRoninConfig": 1, - "true": 2, - "roninLogger": 2, - "roninLogger.TypeInfo.getMethod": 1, - "ronin.config.LogLevel": 1, - ".CallHandler.handleCall": 1, - "LogLevel": 5, - "log": 2, - "level": 7, - "WARN": 2, - "Quartz.maybeStart": 1, - "ReloadManager.setSourceRoot": 1, - "CurrentRequest": 3, - "req": 2, - "RoninRequest": 2, - "_CURRENT_REQUEST.set": 1, - "//": 2, - "CurrentTrace": 1, - "Trace": 1, - ".Trace": 1, - "_CURRENT_REQUEST.get": 1, - "Mode": 1, - ".Mode": 1, - "TESTING": 1, - ".LogLevel": 1, - "DEBUG": 2, - "TraceEnabled": 1, - "boolean": 1, - "_CONFIG.TraceEnabled": 1, - "DefaultAction": 1, - ".DefaultAction": 1, - "DefaultController": 1, - "Type": 1, - ".DefaultController": 1, - ".RoninServlet": 1, - "ErrorHandler": 1, - "IErrorHandler": 1, - ".ErrorHandler": 1, - "LogHandler": 1, - "ILogHandler": 1, - ".LogHandler": 2, - "msg": 4, - "Object": 1, - "component": 7, - "exception": 7, - "java.lang.Throwable": 1, - "INFO": 2, - "msgStr": 9, - "block": 3, - "_CONFIG.LogHandler.log": 1, - "switch": 1, - "case": 6, - "TRACE": 1, - "LoggerFactory.getLogger": 5, - "Logger.ROOT_LOGGER_NAME": 5, - ".trace": 1, - "break": 5, - ".debug": 1, - ".info": 1, - ".warn": 1, - "ERROR": 1, - "FATAL": 1, - ".error": 1, - "CacheStore": 3, - "REQUEST": 3, - "SESSION": 3, - "APPLICATION": 3, - "cache": 1, - "": 2, - "value": 4, - "T": 2, - "store": 10, - "or": 2, - "_CONFIG.RequestCache.getValue": 1, - "_CONFIG.SessionCache.getValue": 1, - "_CONFIG.ApplicationCache.getValue": 1, - "invalidate": 1, - "_CONFIG.RequestCache.invalidate": 1, - "_CONFIG.SessionCache.invalidate": 1, - "_CONFIG.ApplicationCache.invalidate": 1, - "loadChanges": 1, - "ReloadManager.detectAndReloadChangedResources": 1, - "enhancement": 1, - "toPerson": 1, - "vals": 4, - "this.split": 1 - }, - "Grace": { - "import": 7, - "as": 7, - "gtk": 1, - "io": 1, - "collections": 1, - "button_factory": 1, - "dialog_factory": 1, - "highlighter": 1, - "aComp": 1, - "//TODO": 1, - "def": 56, - "window": 2, - "gtk.window": 3, - "(": 215, - "gtk.GTK_WINDOW_TOPLEVEL": 3, - ")": 215, - "window.title": 1, - "window.set_default_size": 1, - "var": 33, - "popped": 3, - "mBox": 2, - "gtk.box": 6, - "gtk.GTK_ORIENTATION_VERTICAL": 4, - "buttonBox": 2, - "gtk.GTK_ORIENTATION_HORIZONTAL": 5, - "consoleButtons": 2, - "consoleBox": 2, - "editorBox": 2, - "splitPane": 4, - "gtk.paned": 1, - "menuBox": 2, - "runButton": 2, - "button_factory.make": 10, - "clearButton": 2, - "outButton": 2, - "errorButton": 2, - "popButton": 2, - "newButton": 2, - "openButton": 2, - "saveButton": 2, - "saveAsButton": 2, - "closeButton": 2, - "tEdit": 3, - "gtk.text_view": 5, - "tEdit.set_size_request": 1, - "scrolled_main": 4, - "gtk.scrolled_window": 5, - "scrolled_main.set_size_request": 1, - "scrolled_main.add": 1, - "notebook": 8, - "gtk.notebook": 1, - "notebook.scrollable": 1, - "true": 8, - "editor_map": 8, - "collections.map.new": 4, - "editor_map.put": 1, - "scrolled_map": 6, - "scrolled_map.put": 1, - "lighter": 3, - "highlighter.Syntax_Highlighter.new": 1, - "tEdit.buffer.on": 1, - "do": 14, - "{": 61, - "lighter.highlightLine": 1, - "}": 61, - "completer": 1, - "aComp.Auto_Completer.new": 1, - "method": 10, - "deleteCompileFiles": 3, - "page_num": 7, - "Number": 4, - "cur_scrolled": 9, - "scrolled_map.get": 8, - "filename": 6, - "notebook.get_tab_label_text": 3, - "filename.substringFrom": 1, - "to": 1, - "filename.size": 1, - "-": 16, - "//Removes": 1, - ".grace": 1, - "extension": 1, - "io.system": 13, - "+": 29, - "currentConsole": 17, - "//": 3, - "Which": 1, - "console": 1, - "is": 1, - "being": 1, - "shown": 1, - "out": 9, - "false": 9, - "outText": 4, - "errorText": 4, - "runButton.on": 1, - "clearConsoles": 4, - "cur_page_num": 15, - "notebook.current_page": 6, - "cur_page": 5, - "editor_map.get": 7, - "cur_page_label": 6, - "sIter": 9, - "gtk.text_iter": 6, - "eIter": 9, - "cur_page.buffer.get_iter_at_offset": 4, - "text": 4, - "cur_page.buffer.get_text": 2, - "file": 2, - "io.open": 4, - "file.write": 2, - "file.close": 2, - "outputFile": 1, - "errorFile": 1, - "outputFile.read": 1, - "errorFile.read": 1, - "switched": 4, - "if": 23, - "outText.size": 2, - "&&": 4, - "then": 24, - "switch_to_output": 3, - "errorText.size": 2, - "switch_to_errors": 3, - "populateConsoles": 4, - "clearButton.on": 1, - "outButton.on": 1, - "errorButton.on": 1, - "popButton.on": 1, - "popIn": 2, - "else": 7, - "popOut": 2, - "newButton.on": 1, - "new_window_class": 1, - "dialog_factory.new.new": 1, - "new_window": 1, - "new_window_class.window": 1, - "new_window.show_all": 1, - "openButton.on": 1, - "open_window_class": 1, - "dialog_factory.open.new": 1, - "open_window": 1, - "open_window_class.window": 1, - "open_window.show_all": 1, - "saveButton.on": 1, - "saveAs_window_class": 2, - "dialog_factory.save.new": 2, - "saveAs_window": 2, - "saveAs_window_class.window": 2, - "saveAs_window.show_all": 2, - "saveAsButton.on": 1, - "closeButton.on": 1, - "num_pages": 3, - "notebook.n_pages": 2, - "e_map": 2, - "s_map": 2, - "x": 21, - "while": 3, - "<": 5, - "eValue": 4, - "sValue": 4, - "e_map.put": 2, - "s_map.put": 2, - "notebook.remove_page": 1, - "notebook.show_all": 1, - "outConsole": 4, - "outScroll": 5, - "errorConsole": 4, - "errorScroll": 4, - "errorTag": 3, - "errorConsole.buffer.create_tag": 2, - "createOut": 3, - "outScroll.add": 1, - "outConsole.set_size_request": 5, - "outScroll.set_size_request": 5, - "outConsole.editable": 1, - "outConsole.buffer.set_text": 3, - "createError": 3, - "errorScroll.add": 1, - "errorConsole.set_size_request": 5, - "errorScroll.set_size_request": 5, - "errorConsole.editable": 1, - "errorConsole.buffer.set_text": 3, - "consoleBox.remove": 2, - "This": 2, - "destroys": 2, - "the": 2, - "consoleBox.add": 5, - "popped.show_all": 3, - "window.show_all": 3, - "errorConsole.buffer.get_iter_at_offset": 2, - "errorConsole.buffer.apply_tag": 1, - "popInBlock": 2, - "consoleBox.reparent": 3, - "popButton.label": 3, - "cur_page.set_size_request": 3, - "cur_scrolled.set_size_request": 3, - "popped.visible": 3, - "popped.connect": 1, - "hSeparator1": 2, - "gtk.separator": 2, - "hSeparator2": 2, - "menuBox.add": 4, - "buttonBox.add": 2, - "consoleButtons.add": 4, - "editorBox.add": 2, - "notebook.add": 1, - "notebook.set_tab_label_text": 1, - "splitPane.add1": 1, - "splitPane.add2": 1, - "mBox.add": 3, - "window.add": 1, - "exit": 2, - "print": 2, - "gtk.main_quit": 1, - "window.connect": 1, - "gtk.main": 1, - "ack": 4, - "m": 5, - "n": 4, - "elseif": 1 - }, - "Gradle": { - "apply": 4, - "plugin": 2, - "GreetingPlugin": 4, - "greeting.message": 1, - "class": 4, - "implements": 2, - "Plugin": 2, - "": 2, - "{": 9, - "void": 2, - "(": 6, - "Project": 2, - "project": 2, - ")": 6, - "project.extensions.create": 2, - "GreetingPluginExtension": 4, - "project.task": 2, - "<<": 2, - "println": 2, - "project.greeting.message": 1, - "}": 9, - "def": 1, - "String": 3, - "message": 3, - "greeting": 1, - "greeter": 2 - }, - "Grammatical Framework": { - "-": 594, - "(": 256, - "c": 73, - ")": 256, - "Rami": 1, - "Shashati": 1, - "under": 33, - "LGPL": 33, - "concrete": 33, - "FoodsPor": 1, - "of": 89, - "Foods": 34, - "open": 23, - "Prelude": 11, - "in": 32, - "{": 579, - "flags": 32, - "coding": 29, - "utf8": 29, - ";": 1399, - "lincat": 28, - "Comment": 31, - "s": 365, - "Str": 394, - "}": 580, - "Quality": 34, - "Gender": 94, - "Number": 207, - "Kind": 33, - "g": 132, - "Item": 31, - "n": 206, - "lin": 28, - "Pred": 30, - "item": 36, - "quality": 90, - "item.s": 24, - "+": 480, - "copula": 33, - "item.n": 29, - "quality.s": 50, - "item.g": 12, - "This": 29, - "det": 86, - "Sg": 184, - "table": 148, - "Masc": 67, - "Fem": 65, - "That": 29, - "These": 28, - "Pl": 182, - "Those": 28, - "Mod": 29, - "kind": 115, - "kind.s": 46, - "kind.g": 38, - "Wine": 29, - "regNoun": 38, - "Cheese": 29, - "Fish": 29, - "Pizza": 28, - "Very": 29, - "a": 57, - "a.s": 8, - "Fresh": 29, - "mkAdjReg": 7, - "Warm": 29, - "Italian": 29, - "Expensive": 29, - "Delicious": 29, - "Boring": 29, - "param": 22, - "|": 122, - "oper": 29, - "QualityT": 5, - "Type": 9, - "mkAdj": 27, - "_": 68, - "bonito": 2, - "bonita": 2, - "bonitos": 2, - "bonitas": 2, - "regular": 2, - "pattern": 1, - "adjSozinho": 2, - "sozinho": 3, - "let": 8, - "sozinh": 4, - "Predef.tk": 2, - "for": 6, - "gender": 2, - "independent": 1, - "adjectives": 2, - "adjUtil": 2, - "util": 3, - "uteis": 3, - "smart": 1, - "paradigm": 1, - "adjcetives": 1, - "case": 44, - "last": 3, - "ItemT": 2, - "KindT": 4, - "num": 6, - "noun": 51, - "noun.g": 3, - "noun.s": 7, - "animal": 2, - "animais": 2, - "gen": 4, - "carro": 3, - "#": 14, - "path": 14, - ".": 13, - "present": 7, - "Aarne": 13, - "Ranta": 13, - "FoodsIta": 1, - "FoodsI": 6, - "with": 5, - "Syntax": 7, - "SyntaxIta": 2, - "LexFoods": 12, - "LexFoodsIta": 2, - "FoodsFin": 1, - "SyntaxFin": 2, - "LexFoodsFin": 2, - "Jordi": 2, - "Saludes": 2, - "FoodsCat": 1, - "SyntaxCat": 2, - "LexFoodsCat": 2, - "FoodsHin": 2, - "regN": 15, - "regAdj": 61, - "mkN": 46, - "p": 11, - "lark": 8, - "ms": 4, - "mp": 4, - "f": 16, - "acch": 6, - "../lib/src/prelude": 1, - "Zofia": 1, - "Stankiewicz": 1, - "FoodsJpn": 1, - "Style": 3, - "AdjUse": 4, - "t": 28, - "AdjType": 4, - "quality.t": 3, - "IAdj": 4, - "Plain": 3, - "APred": 8, - "Polite": 4, - "NaAdj": 4, - "Attr": 9, - "adj": 38, - "na": 1, - "have": 2, - "different": 1, - "forms": 2, - "as": 2, - "attributes": 1, - "and": 4, - "predicates": 2, - "phrase": 1, - "types": 1, - "can": 1, - "form": 4, - "without": 1, - "the": 7, - "cannot": 1, - "d": 6, - "cn": 11, - "cn.s": 8, - "sakana": 6, - "chosenna": 2, - "chosen": 2, - "akai": 2, - "FoodsEng": 1, - "language": 2, - "en_US": 1, - "man": 10, - "men": 10, - "car": 6, - "cold": 4, - "Dinesh": 1, - "Simkhada": 1, - "FoodsNep": 1, - "adjPl": 2, - "bor": 2, - "prelude": 2, - "Inese": 1, - "Bernsone": 1, - "FoodsLav": 1, - "SS": 6, - "Q": 5, - "Defin": 9, - "ss": 13, - "Q1": 5, - "Ind": 14, - "Def": 21, - "qual": 8, - "q": 10, - "spec": 2, - "qual.s": 8, - "Q2": 3, - "adjective": 22, - "specAdj": 2, - "m": 9, - "cn.g": 10, - "skaists": 5, - "skaista": 2, - "skaisti": 2, - "skaistas": 2, - "skaistais": 2, - "skaistaa": 2, - "skaistie": 2, - "skaistaas": 2, - "skaist": 8, - "init": 4, - "Adjective": 9, - "abstract": 1, - "startcat": 1, - "cat": 1, - "fun": 1, - "FoodsGer": 1, - "SyntaxGer": 2, - "LexFoodsGer": 2, - "John": 1, - "J.": 1, - "Camilleri": 1, - "FoodsMlt": 1, - "uniAdj": 2, - "Create": 6, - "an": 2, - "full": 1, - "function": 1, - "Params": 4, - "Sing": 4, - "Plural": 2, - "iswed": 2, - "sewda": 2, - "suwed": 3, - "Param": 2, - "frisk": 4, - "eg": 1, - "tal": 1, - "buzz": 1, - "uni": 4, - "Singular": 1, - "inherent": 1, - "ktieb": 2, - "kotba": 2, - "Copula": 1, - "is": 6, - "linking": 1, - "verb": 1, - "article": 3, - "taking": 1, - "into": 1, - "account": 1, - "first": 1, - "letter": 1, - "next": 1, - "word": 3, - "pre": 1, - "cons@": 1, - "cons": 1, - "determinant": 1, - "Sg/Pl": 1, - "string": 1, - "default": 1, - "to": 6, - "masc": 3, - "number": 2, - "instance": 5, - "LexFoodsSwe": 2, - "SyntaxSwe": 2, - "ParadigmsSwe": 1, - "wine_N": 7, - "pizza_N": 7, - "cheese_N": 7, - "fish_N": 8, - "fresh_A": 7, - "mkA": 47, - "warm_A": 8, - "italian_A": 7, - "expensive_A": 7, - "delicious_A": 7, - "boring_A": 7, - "Martha": 1, - "Dis": 1, - "Brandt": 1, - "FoodsIce": 1, - "Neutr": 21, - "more": 1, - "commonly": 1, - "used": 2, - "Iceland": 1, - "but": 1, - "Icelandic": 1, - "it": 2, - "defOrInd": 2, - "order": 1, - "given": 1, - "mSg": 1, - "fSg": 1, - "nSg": 1, - "mPl": 1, - "fPl": 1, - "nPl": 1, - "mSgDef": 1, - "f/nSgDef": 1, - "_PlDef": 1, - "fem": 2, - "neutr": 2, - "x1": 3, - "x9": 1, - "ferskur": 5, - "fersk": 11, - "ferskt": 2, - "ferskir": 2, - "ferskar": 2, - "fersk_pl": 2, - "ferski": 2, - "ferska": 2, - "fersku": 2, - "": 1, - "<": 10, - "alltenses": 3, - "Dana": 1, - "Dannells": 1, - "Licensed": 1, - "FoodsHeb": 2, - "Species": 8, - "mod": 7, - "Modified": 5, - "sp": 11, - "Indef": 6, - "T": 2, - "regAdj2": 3, - "F": 2, - "Noun": 9, - "Adj": 4, - "cn.mod": 2, - "gvina": 6, - "hagvina": 3, - "gvinot": 6, - "hagvinot": 3, - "defH": 7, - "replaceLastLetter": 7, - "tov": 6, - "tova": 3, - "tovim": 3, - "tovot": 3, - "c@": 3, - "italki": 3, - "italk": 4, - "Laurette": 2, - "Pretorius": 2, - "Sr": 2, - "&": 2, - "Jr": 2, - "Ansu": 2, - "Berg": 2, - "FoodsAfr": 1, - "Predef": 3, - "AdjAP": 10, - "Predic": 3, - "declNoun_e": 2, - "declNoun_aa": 2, - "declNoun_ss": 2, - "declNoun_s": 2, - "veryAdj": 2, - "smartAdj_e": 4, - "operations": 2, - "wyn": 1, - "kaas": 1, - "vis": 1, - "pizza": 1, - "x": 74, - "v": 6, - "tk": 1, - "y": 3, - "declAdj_e": 2, - "declAdj_g": 2, - "w": 15, - "declAdj_oog": 2, - "i": 2, - "x.s": 8, - "Katerina": 2, - "Bohmova": 2, - "FoodsCze": 1, - "ResCze": 2, - "NounPhrase": 3, - "regnfAdj": 2, - "ParadigmsGer": 1, - "feminine": 2, - "masculine": 4, - "ParadigmsCat": 1, - "M": 1, - "MorphoCat": 1, - "M.Masc": 2, - "FoodsPes": 1, - "optimize": 1, - "noexpand": 1, - "Add": 8, - "prep": 11, - "Indep": 4, - "kind.prep": 1, - "quality.prep": 1, - "at": 3, - "a.prep": 1, - "must": 1, - "be": 1, - "written": 1, - "x4": 2, - "pytzA": 3, - "pytzAy": 1, - "pytzAhA": 3, - "pr": 4, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "mrd": 8, - "tAzh": 8, - "tAzhy": 2, - "FoodsAmh": 1, - "Julia": 1, - "Hammar": 1, - "FoodsEpo": 1, - "vino": 3, - "nova": 3, - "Shafqat": 1, - "Virk": 1, - "FoodsUrd": 1, - "coupla": 2, - "FoodsSpa": 1, - "SyntaxSpa": 1, - "StructuralSpa": 1, - "ParadigmsSpa": 1, - "Utt": 4, - "NP": 4, - "CN": 4, - "AP": 4, - "mkUtt": 4, - "mkCl": 4, - "mkNP": 16, - "this_QuantSg": 2, - "that_QuantSg": 2, - "these_QuantPl": 2, - "those_QuantPl": 2, - "mkCN": 20, - "mkAP": 28, - "very_AdA": 4, - "/GF/lib/src/prelude": 1, - "Nyamsuren": 1, - "Erdenebadrakh": 1, - "FoodsMon": 1, - "prefixSS": 1, - "incomplete": 1, - "this_Det": 2, - "that_Det": 2, - "these_Det": 2, - "those_Det": 2, - "FoodsTur": 1, - "Case": 10, - "softness": 4, - "Softness": 5, - "h": 4, - "Harmony": 5, - "Reason": 1, - "excluding": 1, - "plural": 3, - "In": 1, - "Turkish": 1, - "if": 1, - "subject": 1, - "not": 2, - "human": 2, - "being": 1, - "then": 1, - "singular": 1, - "regardless": 1, - "subject.": 1, - "Since": 1, - "all": 1, - "possible": 1, - "subjects": 1, - "are": 1, - "non": 1, - "do": 1, - "need": 1, - "form.": 1, - "quality.softness": 1, - "quality.h": 1, - "quality.c": 1, - "Nom": 9, - "Gen": 5, - "a.c": 1, - "a.softness": 1, - "a.h": 1, - "I_Har": 4, - "Ih_Har": 4, - "U_Har": 4, - "Uh_Har": 4, - "Ih": 1, - "Uh": 1, - "Soft": 3, - "Hard": 3, - "overload": 1, - "mkn": 1, - "peynir": 2, - "peynirler": 2, - "[": 2, - "]": 2, - "sarap": 2, - "saraplar": 2, - "sarabi": 2, - "saraplari": 2, - "italyan": 4, - "ca": 2, - "getSoftness": 2, - "getHarmony": 2, - "See": 1, - "comment": 1, - "lines": 1, - "excluded": 1, - "copula.": 1, - "base": 4, - "*": 1, - "FoodsChi": 1, - "quality.p": 2, - "kind.c": 11, - "geKind": 5, - "longQuality": 8, - "mkKind": 2, - "Ramona": 1, - "Enache": 1, - "FoodsRon": 1, - "NGender": 6, - "NMasc": 2, - "NFem": 3, - "NNeut": 2, - "mkTab": 5, - "mkNoun": 5, - "getAgrGender": 3, - "acesta": 2, - "aceasta": 2, - "gg": 3, - "det.s": 1, - "peste": 2, - "pesti": 2, - "scump": 2, - "scumpa": 2, - "scumpi": 2, - "scumpe": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "ng": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Krasimir": 1, - "Angelov": 1, - "FoodsBul": 1, - "Agr": 3, - "ASg": 23, - "APl": 11, - "item.a": 2, - "ParadigmsIta": 1, - "FoodsSwe": 1, - "**": 1, - "sv_SE": 1, - "FoodsTha": 1, - "SyntaxTha": 1, - "LexiconTha": 1, - "ParadigmsTha": 1, - "R": 4, - "ResTha": 1, - "R.thword": 4, - "resource": 1, - "ne": 2, - "muz": 2, - "muzi": 2, - "msg": 3, - "fsg": 3, - "nsg": 3, - "mpl": 3, - "fpl": 3, - "npl": 3, - "mlad": 7, - "vynikajici": 7, - "ParadigmsFin": 1, - "Vikash": 1, - "Rauniyar": 1, - "FoodsTsn": 1, - "NounClass": 28, - "r": 9, - "b": 9, - "Bool": 5, - "p_form": 18, - "TType": 16, - "mkPredDescrCop": 2, - "item.c": 1, - "quality.p_form": 1, - "kind.w": 4, - "mkDemPron1": 3, - "kind.q": 4, - "mkDemPron2": 3, - "mkMod": 2, - "Lexicon": 1, - "mkNounNC14_6": 2, - "mkNounNC9_10": 4, - "smartVery": 2, - "mkVarAdj": 2, - "mkOrdAdj": 4, - "mkPerAdj": 2, - "mkVerbRel": 2, - "NC9_10": 14, - "NC14_6": 14, - "P": 4, - "V": 4, - "ModV": 4, - "y.b": 1, - "True": 3, - "y.w": 2, - "y.r": 2, - "y.c": 14, - "y.q": 4, - "smartQualRelPart": 5, - "x.t": 10, - "smartDescrCop": 5, - "False": 3, - "mkVeryAdj": 2, - "x.p_form": 2, - "mkVeryVerb": 3, - "mkQualRelPart_PName": 2, - "mkQualRelPart": 2, - "mkDescrCop_PName": 2, - "mkDescrCop": 2, - "FoodsOri": 1, - "Femke": 1, - "Johansson": 1, - "FoodsDut": 1, - "AForm": 4, - "AAttr": 3, - "regadj": 6, - "wijn": 3, - "koud": 3, - "duur": 2, - "dure": 2, - "../foods": 1, - "FoodsFre": 1, - "SyntaxFre": 1, - "ParadigmsFre": 1, - "interface": 1, - "N": 4, - "A": 6 - }, - "Graph Modeling Language": { - "graph": 1, - "[": 4, - "directed": 1, - "node": 2, - "id": 2, - "label": 2, - "value": 2, - "]": 4, - "edge": 1, - "source": 1, - "target": 1 - }, - "Graphviz (DOT)": { - "digraph": 2, - "G": 6, - "{": 2, - "edge": 2, - "[": 78, - "label": 75, - "]": 78, - ";": 100, - "graph": 2, - "ranksep": 2, - "T": 4, - "shape": 17, - "record": 17, - "S": 4, - "SPACE": 4, - "A": 4, - "H": 4, - "U": 4, - "L": 4, - "N": 4, - "I": 4, - "O": 4, - "F": 4, - "GF": 3, - "W": 4, - "Y": 4, - "B": 2, - "D": 4, - "BD": 3, - "WYBD": 3, - "GFWYBD": 3, - "-": 82, - "}": 2, - "node": 1, - "K": 2, - "_3": 2, - "_9": 2, - "_39": 3, - "X": 2, - "YX": 3, - "J": 2, - "JW": 3, - "YXJW": 3, - "M": 2, - "E": 2, - "DOT": 2, - "_1": 2, - "DOT1": 3, - "_7": 2, - "R": 2, - "C": 2 - }, - "Groff": { - ".TH": 1, - "FOO": 1, - ".SH": 3, - "NAME": 1, - "foo": 2, - "-": 1, - "bar": 4, - "SYNOPSIS": 1, - ".B": 2, - ".I": 1, - "DESCRIPTION": 1, - "Foo": 2, - ".BR": 1, - "baz": 1, - "quux.": 1, - ".PP": 1, - "baz.": 1 - }, - "Groovy": { - "html": 3, - "{": 9, - "head": 2, - "title": 2, - "}": 9, - "body": 1, - "p": 1, - "component": 1, - "SHEBANG#!groovy": 2, - "println": 3, - "task": 1, - "echoDirListViaAntBuilder": 1, - "(": 7, - ")": 7, - "description": 1, - "//Docs": 1, - "http": 1, - "//ant.apache.org/manual/Types/fileset.html": 1, - "//Echo": 1, - "the": 3, - "Gradle": 1, - "project": 1, - "name": 1, - "via": 1, - "ant": 1, - "echo": 1, - "plugin": 1, - "ant.echo": 3, - "message": 1, - "project.name": 1, - "path": 2, - "//Gather": 1, - "list": 1, - "of": 1, - "files": 1, - "in": 1, - "a": 1, - "subdirectory": 1, - "ant.fileScanner": 1, - "fileset": 1, - "dir": 1, - ".each": 1, - "//Print": 1, - "each": 1, - "file": 1, - "to": 1, - "screen": 1, - "with": 1, - "CWD": 1, - "projectDir": 1, - "removed.": 1, - "it.toString": 1, - "-": 1 - }, - "Groovy Server Pages": { - "": 4, - "": 4, - "": 4, - "http": 3, - "equiv=": 3, - "content=": 4, - "": 4, - "Testing": 3, - "with": 3, - "SiteMesh": 2, - "and": 2, - "{": 1, - "example": 1, - "}": 1, - "": 4, - "": 4, - "": 4, - "": 4, - "": 4, - "Resources": 2, - "": 2, - "module=": 2, - "name=": 1, - "<%@>": 1, - "page": 2, - "contentType=": 1, - "Using": 1, - "directive": 1, - "tag": 1, - "": 2, - "Print": 1 - }, - "HTML": { - "": 3, - "HTML": 2, - "PUBLIC": 3, - "W3C": 3, - "DTD": 5, - "4": 1, - "0": 3, - "Frameset": 1, - "EN": 3, - "http": 4, - "www": 3, - "w3": 3, - "org": 3, - "TR": 3, - "REC": 1, - "html40": 1, - "frameset": 1, - "dtd": 3, - "": 3, - "": 3, - "Common_meta": 1, - "(": 14, - ")": 14, - "": 3, - "Android": 5, - "API": 7, - "Differences": 2, - "Report": 2, - "": 3, - "": 3, - "
": 11, - "class=": 22, - "Header": 1, - "

": 1, - "

": 1, - "

": 3, - "This": 2, - "document": 1, - "details": 1, - "the": 11, - "changes": 2, - "in": 4, - "framework": 2, - "API.": 3, - "It": 2, - "shows": 1, - "additions": 1, - "modifications": 1, - "and": 5, - "removals": 2, - "for": 2, - "packages": 1, - "classes": 1, - "methods": 1, - "fields.": 1, - "Each": 1, - "reference": 1, - "to": 3, - "an": 3, - "change": 2, - "includes": 1, - "a": 6, - "brief": 1, - "description": 1, - "of": 5, - "explanation": 1, - "suggested": 1, - "workaround": 1, - "where": 1, - "available.": 1, - "

": 3, - "The": 2, - "differences": 2, - "described": 1, - "this": 2, - "report": 1, - "are": 3, - "based": 1, - "comparison": 1, - "APIs": 1, - "whose": 1, - "versions": 1, - "specified": 1, - "upper": 1, - "-": 1, - "right": 1, - "corner": 1, - "page.": 2, - "compares": 1, - "newer": 1, - "older": 2, - "version": 1, - "noting": 1, - "any": 1, - "relative": 1, - "So": 1, - "example": 2, - "indicated": 1, - "no": 1, - "longer": 1, - "present": 1, - "For": 1, - "more": 1, - "information": 1, - "about": 1, - "SDK": 1, - "see": 1, - "": 8, - "href=": 9, - "target=": 3, - "product": 1, - "site": 1, - "": 8, - ".": 1, - "if": 4, - "no_delta": 1, - "

": 1, - "Congratulation": 1, - "

": 1, - "No": 1, - "were": 1, - "detected": 1, - "between": 1, - "two": 1, - "provided": 1, - "APIs.": 1, - "endif": 4, - "removed_packages": 2, - "Table": 3, - "name": 3, - "rows": 3, - "{": 3, - "it.from": 1, - "ModelElementRow": 1, - "}": 3, - "
": 3, - "added_packages": 2, - "it.to": 2, - "PackageAddedLink": 1, - "SimpleTableRow": 2, - "changed_packages": 2, - "PackageChangedLink": 1, - "
": 12, - "": 3, - "": 3, - "html": 2, - "XHTML": 4, - "1": 2, - "Strict": 1, - "xhtml1": 4, - "strict": 1, - "xmlns=": 2, - "is": 2, - "sample": 1, - "file": 1, - "": 1, - "": 2, - "id=": 3, - "Just": 1, - "simple": 1, - "": 1, - "": 1, - "test": 1, - "Transitional": 1, - "transitional": 1, - "": 1, - "equiv=": 1, - "content=": 1, - "Related": 2, - "Pages": 2, - "": 1, - "rel=": 1, - "Main": 1, - "Page": 1, - "&": 3, - "middot": 3, - ";": 3, - "Class": 2, - "Overview": 2, - "Hierarchy": 1, - "All": 1, - "Classes": 1, - "Here": 1, - "list": 1, - "all": 1, - "related": 1, - "documentation": 1, - "pages": 1, - "": 1, - "": 2, - "": 4, - "": 2, - "16": 1, - "Layout": 1, - "System": 1, - "
": 4, - "": 2, - "src=": 2, - "alt=": 2, - "width=": 1, - "height=": 2, - "
": 1, - "Generated": 1, - "with": 1, - "Doxygen": 1 - }, - "HTML+ERB": { - "<%>": 12, - "provide": 1, - "title": 1, - "header": 2, - "present": 1, - "users": 3, - "do": 2, - "user_presenter": 1, - "
": 23, - "class=": 24, - "

": 1, - "<%=>": 12, - "

": 1, - "
": 23, - "will_paginate": 2, - "Name": 1, - "Email": 1, - "Chords": 1, - "Keys": 1, - "Tunings": 1, - "Credits": 1, - "Prem": 1, - "Since": 1, - "if": 3, - "No": 1, - "Users": 1, - "else": 1, - "render": 1, - "end": 5, - "Spree": 4, - "Config": 4, - "enable_fishbowl": 1, - "id=": 1, - "
": 1, - "": 1, - "align=": 1, - "t": 4, - "fishbowl_settings": 1, - "": 1, - "fishbowl_options": 1, - "each": 1, - "key": 5, - "label_tag": 2, - "to_s": 2, - "gsub": 1, - "fishbowl_": 1, - "to_sym": 1, - "tag": 2, - "br": 2, - "text_field_tag": 1, - "preferences": 4, - "size": 1, - "class": 2, - "}": 3, - ")": 4, - "%": 2, - "hidden_field_tag": 1, - "fishbowl_always_fetch_current_inventory": 3, - "0": 1, - "check_box_tag": 1, - "1": 1, - "always_fetch_current_inventory": 1, - "location_groups": 2, - "empty": 1, - "fishbowl_location_group": 3, - "location_group": 1, - "select": 1, - "selected": 1, - "[": 2, - "]": 2, - "{": 1, - "
": 1, - "": 1 - }, - "Hack": { - "<": 25, - "hh": 23, - "//": 18, - "strict": 23, - "require_once": 24, - "_SERVER": 19, - "[": 28, - "]": 28, - ".": 28, - ";": 203, - "abstract": 13, - "class": 27, - "Controller": 3, - "{": 176, - "protected": 44, - "function": 106, - "__construct": 5, - "(": 290, - ")": 295, - "startup": 2, - "}": 182, - "getCSS": 3, - "Set": 10, - "": 12, - "getJS": 3, - "getTitle": 4, - "string": 65, - "render": 5, - "xhp": 19, - "final": 21, - "getHead": 2, - "css": 3, - "this": 32, - "-": 59, - "toVector": 2, - "map": 5, - "": 1, - "rel=": 1, - "type=": 5, - "href=": 16, - "js": 3, - "": 3, - "block": 3, - "#head": 1, - "/block": 3, - "": 1, - "": 1, - "class=": 12, - "document.documentElement.className": 1, - "+": 3, - "#navbar": 1, - "include": 3, - "_navbar.latte": 1, - "
": 6, - "inner": 1, - "foreach=": 3, - "_flash.latte": 1, - "
": 7, - "#content": 1, - "
": 1, - "
": 1, - "src=": 1, - "#scripts": 1, - "": 1, - "": 1, - "var": 3, - "define": 1, - "author": 7, - "": 2, - "Author": 2, - "authorId": 2, - "-": 71, - "id": 3, - "black": 2, - "avatar": 2, - "img": 2, - "rounded": 2, - "class": 2, - "tooltip": 4, - "Total": 1, - "time": 4, - "shortName": 1, - "translated": 4, - "on": 5, - "all": 1, - "videos.": 1, - "amaraCallbackLink": 1, - "row": 2, - "col": 3, - "md": 2, - "outOf": 5, - "done": 7, - "threshold": 4, - "alert": 2, - "warning": 2, - "<=>": 2, - "Seems": 1, - "complete": 1, - "|": 6, - "out": 1, - "

": 2, - "elseif": 2, - "<": 1, - "p": 1, - "if": 7, - "Although": 1, - "is": 1, - "there": 1, - "are": 1, - "no": 1, - "English": 1, - "subtitles": 1, - "for": 1, - "comparison.": 1, - "/if": 8, - "/cache": 1, - "editor": 1, - "ksid": 2, - "new": 5, - "video": 2, - "siteId": 1, - "Video": 1, - "khanovaskola.cz": 1, - "revision": 18, - "rev": 4, - "this": 3, - "older": 1, - "#": 2, - "else": 2, - "newer": 1, - "
": 1, - "

": 1, - "diffs": 3, - "noescape": 2, - "

": 1, - "description": 1, - "text": 4, - "as": 2, - "line": 3, - "context": 1, - "splitter": 1, - "template": 1, - "bottom": 1, - "Expand": 1, - "fa": 16, - "sort": 1, - "ellipsis": 1, - "h": 1, - "success": 1, - "amaraEdit": 1, - "amaraId": 2, - "editButton": 1, - "btn": 17, - "default": 6, - "edit": 1, - "khanAcademy": 1, - "kaButton": 1, - "link": 1, - "info": 1, - "group": 4, - "approve": 1, - "thumbs": 3, - "up": 1, - "markIncomplete": 2, - "down": 2, - "redirectToAdd": 1, - "plus": 1, - "square": 1, - "table": 2, - "condensed": 1, - "revisions": 1, - "revId": 1, - "secondary": 2, - "Percent": 1, - "lines": 1, - "&": 1, - "thinsp": 1, - "%": 1, - "": 3, - "": 3, - "": 2, - "incomplete": 3, - "approved": 2, - "": 1, - "user": 1, - "loggedIn": 1, - "&&": 1, - "comments": 2, - "count": 1, - "": 2, - "": 2, - "colspan=": 1, - "": 1, - "comment": 4, - "left": 1, - "createdAt": 1, - "timeAgo": 1, - "noborder": 1, - "input": 3, - "form": 1, - "control": 1, - "Comment": 1, - "only": 1, - "visible": 1, - "other": 1, - "editors": 1, - "save": 1, - "share": 1, - "": 1, - "": 1, - "/form": 1, - "/foreach": 1, - "
": 1 - }, - "Less": { - "@blue": 4, - "#3bbfce": 1, - ";": 7, - "@margin": 3, - "px": 1, - ".content": 1, - "-": 3, - "navigation": 1, - "{": 2, - "border": 2, - "color": 3, - "darken": 1, - "(": 1, - "%": 1, - ")": 1, - "}": 2, - ".border": 1, - "padding": 1, - "/": 2, - "margin": 1 - }, - "Liquid": { - "": 1, - "html": 1, - "PUBLIC": 1, - "W3C": 1, - "DTD": 2, - "XHTML": 1, - "1": 1, - "0": 1, - "Transitional": 1, - "EN": 1, - "http": 2, - "www": 1, - "w3": 1, - "org": 1, - "TR": 1, - "xhtml1": 2, - "transitional": 1, - "dtd": 1, - "": 1, - "xmlns=": 1, - "xml": 1, - "lang=": 2, - "": 1, - "": 1, - "equiv=": 1, - "content=": 1, - "": 1, - "{": 89, - "shop.name": 2, - "}": 89, - "-": 4, - "page_title": 1, - "": 1, - "|": 31, - "global_asset_url": 5, - "stylesheet_tag": 3, - "script_tag": 5, - "shopify_asset_url": 1, - "asset_url": 2, - "content_for_header": 1, - "": 1, - "": 1, - "id=": 28, - "

": 1, - "class=": 14, - "": 9, - "href=": 9, - "Skip": 1, - "to": 1, - "navigation.": 1, - "": 9, - "

": 1, - "%": 46, - "if": 5, - "cart.item_count": 7, - "
": 23, - "style=": 5, - "

": 3, - "There": 1, - "pluralize": 3, - "in": 8, - "title=": 3, - "your": 1, - "cart": 1, - "

": 3, - "

": 1, - "Your": 1, - "subtotal": 1, - "is": 1, - "cart.total_price": 2, - "money": 5, - ".": 3, - "

": 1, - "for": 6, - "item": 1, - "cart.items": 1, - "onMouseover=": 2, - "onMouseout=": 2, - "": 4, - "src=": 5, - "
": 23, - "endfor": 6, - "
": 2, - "endif": 5, - "

": 1, - "

": 1, - "onclick=": 1, - "View": 1, - "Mini": 1, - "Cart": 1, - "(": 1, - ")": 1, - "
": 3, - "content_for_layout": 1, - "
    ": 5, - "link": 2, - "linklists.main": 1, - "menu.links": 1, - "
  • ": 5, - "link.title": 2, - "link_to": 2, - "link.url": 2, - "
  • ": 5, - "
": 5, - "tags": 1, - "tag": 4, - "collection.tags": 1, - "": 1, - "link_to_add_tag": 1, - "": 1, - "highlight_active_tag": 1, - "link_to_tag": 1, - "linklists.footer.links": 1, - "All": 1, - "prices": 1, - "are": 1, - "shop.currency": 1, - "Powered": 1, - "by": 1, - "Shopify": 1, - "": 1, - "": 1, - "

": 1, - "We": 1, - "have": 1, - "wonderful": 1, - "products": 1, - "

": 1, - "image": 1, - "product.images": 1, - "forloop.first": 1, - "rel=": 2, - "alt=": 2, - "else": 1, - "product.title": 1, - "Vendor": 1, - "product.vendor": 1, - "link_to_vendor": 1, - "Type": 1, - "product.type": 1, - "link_to_type": 1, - "": 1, - "product.price_min": 1, - "product.price_varies": 1, - "product.price_max": 1, - "": 1, - "
": 1, - "action=": 1, - "method=": 1, - "": 1, - "": 1, - "type=": 2, - "
": 1, - "product.description": 1, - "": 1 - }, - "Literate Agda": { - "documentclass": 1, - "{": 35, - "article": 1, - "}": 35, - "usepackage": 7, - "amssymb": 1, - "bbm": 1, - "[": 2, - "greek": 1, - "english": 1, - "]": 2, - "babel": 1, - "ucs": 1, - "utf8x": 1, - "inputenc": 1, - "autofe": 1, - "DeclareUnicodeCharacter": 3, - "ensuremath": 3, - "ulcorner": 1, - "urcorner": 1, - "overline": 1, - "equiv": 1, - "fancyvrb": 1, - "DefineVerbatimEnvironment": 1, - "code": 3, - "Verbatim": 1, - "%": 1, - "Add": 1, - "fancy": 1, - "options": 1, - "here": 1, - "if": 1, - "you": 3, - "like.": 1, - "begin": 2, - "document": 2, - "module": 3, - "NatCat": 1, - "where": 2, - "open": 2, - "import": 2, - "Relation.Binary.PropositionalEquality": 1, - "-": 21, - "If": 1, - "can": 1, - "show": 1, - "that": 1, - "a": 1, - "relation": 1, - "only": 1, - "ever": 1, - "has": 1, - "one": 1, - "inhabitant": 5, - "get": 1, - "the": 1, - "category": 1, - "laws": 1, - "for": 1, - "free": 1, - "EasyCategory": 3, - "(": 36, - "obj": 4, - "Set": 2, - ")": 36, - "_": 6, - "x": 34, - "y": 28, - "z": 18, - "id": 9, - "single": 4, - "r": 26, - "s": 29, - "assoc": 2, - "w": 4, - "t": 6, - "Data.Nat": 1, - "same": 5, - ".0": 2, - "n": 14, - "refl": 6, - ".": 5, - "suc": 6, - "m": 6, - "cong": 1, - "trans": 5, - ".n": 1, - "zero": 1, - "Nat": 1, - "end": 2 - }, - "Literate CoffeeScript": { - "The": 2, - "**Scope**": 2, - "class": 2, - "regulates": 1, - "lexical": 1, - "scoping": 1, - "within": 2, - "CoffeeScript.": 1, - "As": 1, - "you": 2, - "generate": 1, - "code": 1, - "create": 1, - "a": 8, - "tree": 1, - "of": 4, - "scopes": 1, - "in": 2, - "the": 12, - "same": 1, - "shape": 1, - "as": 3, - "nested": 1, - "function": 2, - "bodies.": 1, - "Each": 1, - "scope": 2, - "knows": 1, - "about": 1, - "variables": 3, - "declared": 2, - "it": 4, - "and": 5, - "has": 1, - "reference": 3, - "to": 8, - "its": 3, - "parent": 2, - "enclosing": 1, - "scope.": 2, - "In": 1, - "this": 3, - "way": 1, - "we": 4, - "know": 1, - "which": 3, - "are": 3, - "new": 2, - "need": 2, - "be": 2, - "with": 3, - "var": 4, - "shared": 1, - "external": 1, - "scopes.": 1, - "Import": 1, - "helpers": 1, - "plan": 1, - "use.": 1, - "{": 4, - "extend": 1, - "last": 1, - "}": 4, - "require": 1, - "exports.Scope": 1, - "Scope": 1, - "root": 1, - "is": 3, - "top": 2, - "-": 5, - "level": 1, - "object": 1, - "for": 3, - "given": 1, - "file.": 1, - "@root": 1, - "null": 1, - "Initialize": 1, - "lookups": 1, - "up": 1, - "chain": 1, - "well": 1, - "**Block**": 1, - "node": 1, - "belongs": 2, - "where": 1, - "should": 1, - "declare": 1, - "that": 2, - "to.": 1, - "constructor": 1, - "(": 5, - "@parent": 2, - "@expressions": 1, - "@method": 1, - ")": 6, - "@variables": 3, - "[": 4, - "name": 8, - "type": 5, - "]": 4, - "@positions": 4, - "Scope.root": 1, - "unless": 1, - "Adds": 1, - "variable": 1, - "or": 1, - "overrides": 1, - "an": 1, - "existing": 1, - "one.": 1, - "add": 1, - "immediate": 3, - "return": 1, - "@parent.add": 1, - "if": 2, - "@shared": 1, - "not": 1, - "Object": 1, - "hasOwnProperty.call": 1, - ".type": 1, - "else": 2, - "@variables.push": 1, - "When": 1, - "super": 1, - "called": 1, - "find": 1, - "current": 1, - "method": 1, - "param": 1, - "_": 3, - "then": 1, - "tempVars": 1, - "realVars": 1, - ".push": 1, - "v.name": 1, - "realVars.sort": 1, - ".concat": 1, - "tempVars.sort": 1, - "Return": 1, - "list": 1, - "assignments": 1, - "supposed": 1, - "made": 1, - "at": 1, - "assignedVariables": 1, - "v": 1, - "when": 1, - "v.type.assigned": 1 - }, - "LiveScript": { - "a": 8, - "-": 25, - "const": 1, - "b": 3, - "var": 1, - "c": 3, - "d": 3, - "_000_000km": 1, - "*": 1, - "ms": 1, - "e": 2, - "(": 9, - ")": 10, - "dashes": 1, - "identifiers": 1, - "underscores_i": 1, - "/regexp1/": 1, - "and": 3, - "//regexp2//g": 1, - "strings": 1, - "[": 2, - "til": 1, - "]": 2, - "or": 2, - "to": 2, - "|": 3, - "map": 1, - "filter": 1, - "fold": 1, - "+": 1, - "class": 1, - "Class": 1, - "extends": 1, - "Anc": 1, - "est": 1, - "args": 1, - "copy": 1, - "from": 1, - "callback": 4, - "error": 6, - "data": 2, - "<": 1, - "read": 1, - "file": 2, - "return": 2, - "if": 2, - "<~>": 1, - "write": 1 - }, - "Logos": { - "%": 15, - "hook": 2, - "ABC": 2, - "-": 3, - "(": 8, - "id": 2, - ")": 8, - "a": 1, - "B": 1, - "b": 1, - "{": 4, - "log": 1, - ";": 8, - "return": 2, - "orig": 2, - "nil": 2, - "}": 4, - "end": 4, - "subclass": 1, - "DEF": 1, - "NSObject": 1, - "init": 3, - "[": 2, - "c": 1, - "RuntimeAccessibleClass": 1, - "alloc": 1, - "]": 2, - "group": 1, - "OptionalHooks": 2, - "void": 1, - "release": 1, - "self": 1, - "retain": 1, - "ctor": 1, - "if": 1, - "OptionalCondition": 1 - }, - "Logtalk": { - "-": 3, - "object": 2, - "(": 4, - "hello_world": 1, - ")": 4, - ".": 2, - "%": 2, - "the": 2, - "initialization/1": 1, - "directive": 1, - "argument": 1, - "is": 2, - "automatically": 1, - "executed": 1, - "when": 1, - "loaded": 1, - "into": 1, - "memory": 1, - "initialization": 1, - "nl": 2, - "write": 1, - "end_object.": 1 - }, - "LookML": { - "-": 12, - "view": 1, - "comments": 1, - "fields": 1, - "dimension": 4, - "id": 2, - "primary_key": 1, - "true": 3, - "type": 6, - "int": 3, - "sql": 6, - "{": 6, - "TABLE": 6, - "}": 6, - ".id": 1, - "body": 1, - ".body": 1, - "dimension_group": 2, - "created": 1, - "time": 4, - "timeframes": 2, - "[": 2, - "date": 2, - "week": 2, - "month": 2, - "]": 2, - ".created_at": 1, - "headline_id": 1, - "hidden": 2, - ".headline_id": 1, - "updated": 1, - ".updated_at": 1, - "user_id": 1, - ".user_id": 1, - "measure": 1, - "count": 2, - "detail": 2, - "detail*": 1, - "sets": 1, - "headlines.id": 1, - "headlines.name": 1, - "users.id": 1 - }, - "LoomScript": { - "package": 2, - "{": 26, - "import": 4, - "loom.Application": 2, - ";": 78, - "loom2d.display.StageScaleMode": 1, - "loom2d.ui.SimpleLabel": 1, - "public": 15, - "class": 5, - "HelloWorld": 1, - "extends": 4, - "Application": 2, - "override": 2, - "function": 11, - "run": 2, - "(": 56, - ")": 56, - "void": 7, - "stage.scaleMode": 1, - "StageScaleMode.LETTERBOX": 1, - "centeredMessage": 2, - "simpleLabel": 2, - "this.getFullTypeName": 1, - "trace": 13, - "}": 26, - "private": 8, - "get": 2, - "SimpleLabel": 4, - "return": 4, - "stage.addChild": 1, - "new": 2, - "as": 2, - "label": 1, - "msg": 2, - "String": 12, - "label.text": 1, - "label.center": 1, - "label.x": 1, - "stage.stageWidth": 1, - "/": 5, - "label.y": 1, - "stage.stageHeight": 1, - "-": 8, - "label.height": 1, - "interface": 1, - "I": 2, - "C": 2, - "B": 5, - "implements": 1, - "final": 1, - "A": 6, - "delegate": 1, - "ToCompute": 2, - "s": 3, - "o": 1, - "Object": 3, - "Number": 11, - "enum": 1, - "Enumeration": 1, - "foo": 1, - "baz": 1, - "cat": 1, - "struct": 1, - "P": 4, - "var": 32, - "x": 1, - "y": 1, - "static": 2, - "operator": 1, - "a": 13, - "b": 5, - "a.x": 1, - "b.x": 1, - "a.y": 1, - "b.y": 1, - "SyntaxExercise": 1, - "classVar": 1, - "const": 1, - "CONST": 1, - "_a": 4, - "_d": 3, - "set": 1, - "value": 2, - "variousTypes": 1, - "defaultValue": 1, - "nil": 1, - "null": 2, - "b1": 1, - "Boolean": 5, - "true": 2, - "b2": 1, - "false": 1, - "n1": 1, - "n2": 1, - "n3": 1, - "xfed": 1, - "s1": 1, - "s2": 1, - "f1": 3, - "Function": 1, - "life": 1, - "universe": 1, - "...everything": 1, - "v1": 1, - "Vector.": 2, - "": 1, - "[": 2, - "]": 2, - "d1": 1, - "Dictionary.": 2, - "": 2, - "+": 10, - "variousOps": 1, - "%": 2, - "*": 3, - "d": 3, - "&&": 1, - "e": 1, - "|": 1, - "castable1": 1, - "is": 1, - "castable2": 1, - "cast": 1, - ".toString": 1, - "instanced": 1, - "instanceof": 1, - "variousFlow": 1, - "n": 3, - "Math.random": 3, - "if": 3, - "else": 2, - "flip": 1, - "for": 4, - "i": 10, - "<": 2, - "v": 3, - "": 1, - "each": 1, - "in": 3, - "key1": 2, - "key2": 2, - "while": 2, - "continue": 1, - "do": 1, - "switch": 1, - "Math.floor": 1, - "case": 2, - "break": 3, - "default": 1 - }, - "Lua": { - "-": 84, - "A": 1, - "simple": 1, - "counting": 1, - "object": 1, - "that": 1, - "increments": 1, - "an": 2, - "internal": 1, - "counter": 1, - "whenever": 1, - "it": 2, - "receives": 2, - "a": 6, - "bang": 3, - "at": 2, - "its": 4, - "first": 1, - "inlet": 2, - "or": 2, - "changes": 1, - "to": 14, - "whatever": 1, - "number": 3, - "second": 1, - "inlet.": 1, - "local": 16, - "HelloCounter": 4, - "pd.Class": 3, - "new": 3, - "(": 59, - ")": 59, - "register": 3, - "function": 16, - "initialize": 3, - "sel": 3, - "atoms": 3, - "self.inlets": 3, - "self.outlets": 3, - "self.num": 5, - "return": 3, - "true": 4, - "end": 26, - "in_1_bang": 2, - "self": 10, - "outlet": 10, - "{": 18, - "}": 18, - "+": 3, - "in_2_float": 2, - "f": 12, - "SHEBANG#!lua": 1, - "Generic": 1, - "WSAPI": 1, - "FastCGI": 1, - "launcher": 2, - "extracts": 1, - "application": 4, - "launch": 2, - "from": 4, - "SCRIPT_FILENAME/PATH_TRANSLATED": 1, - "each": 2, - "defined": 1, - "by": 1, - "script": 5, - "entry": 1, - "point": 3, - "gets": 1, - "isolated": 2, - "Lua": 4, - "VM": 2, - ";": 1, - "sequential": 1, - "requests": 1, - "the": 14, - "same": 2, - "go": 1, - "pcall": 1, - "require": 3, - "common": 1, - "fastcgi": 1, - "ONE_HOUR": 3, - "*": 2, - "ONE_DAY": 2, - "wsapi_loader": 2, - "common.make_loader": 1, - "isolate": 1, - "in": 8, - "own": 1, - "state": 2, - "filename": 3, - "nil": 1, - "if": 4, - "you": 2, - "want": 2, - "force": 1, - "of": 14, - "single": 2, - "name": 1, - "this": 1, - "reload": 2, - "false": 1, - "on": 2, - "every": 1, - "request": 1, - "period": 1, - "frequency": 1, - "staleness": 1, - "checks": 1, - "ttl": 1, - "time": 1, - "live": 1, - "for": 11, - "states": 1, - "vars": 1, - "order": 1, - "checking": 1, - "path": 1, - "fastcgi.run": 1, - "FileModder": 10, - "Object": 1, - "triggering": 1, - "Incoming": 1, - "data": 2, - "bytes": 3, - "[": 17, - "binfile": 3, - "]": 17, - "Total": 1, - "file": 8, - "route": 1, - "buflength": 1, - "Glitch": 3, - "type": 2, - "Number": 4, - "times": 2, - "glitch": 2, - "Toggle": 1, - "randomized": 1, - "glitches": 3, - "within": 2, - "bounds": 2, - "Active": 1, - "To": 3, - "get": 1, - "next": 1, - "byte": 2, - "clear": 2, - "buffer": 2, - "FLOAT": 1, - "write": 3, - "Currently": 1, - "active": 2, - "s": 5, - "namedata": 1, - "self.filedata": 4, - "pattern": 1, - "random": 3, - "splice": 1, - "self.glitchtype": 5, - "Minimum": 1, - "image": 1, - "self.glitchpoint": 6, - "repeat": 1, - "given": 1, - "self.randrepeat": 5, - "Toggles": 1, - "whether": 1, - "repeating": 1, - "should": 1, - "be": 1, - "self.randtoggle": 3, - "Hold": 1, - "all": 1, - "which": 1, - "are": 1, - "converted": 1, - "ints": 1, - "range": 1, - "self.bytebuffer": 8, - "Buffer": 1, - "length": 1, - "currently": 1, - "self.buflength": 7, - "i": 10, - "do": 8, - "then": 4, - "plen": 2, - "math.random": 8, - "patbuffer": 3, - "table.insert": 4, - "%": 1, - "#patbuffer": 1, - "elseif": 2, - "randlimit": 4, - "else": 1, - "sloc": 3, - "schunksize": 2, - "splicebuffer": 3, - "table.remove": 1, - "insertpoint": 2, - "#self.bytebuffer": 1, - "_": 2, - "v": 4, - "ipairs": 2, - "outname": 3, - "..": 7, - "pd.post": 1, - "in_3_list": 1, - "Shift": 1, - "indexed": 2, - "in_4_list": 1, - "d": 9, - "in_5_float": 1, - "in_6_float": 1, - "in_7_list": 1, - "in_8_list": 1, - "FileListParser": 5, - "Base": 1, - "File": 2, - "extension": 2, - "files": 1, - "batch": 2, - "list": 1, - "trim": 1, - "vidya": 1, - "modder": 1, - "mechanisms": 1, - "self.extension": 3, - "last": 1, - "self.batchlimit": 3, - "in_1_symbol": 1, - "in_2_list": 1, - "in_3_float": 1 - }, - "M": { - "start": 26, - ";": 1309, - "exercise": 1, - "set": 98, - "car": 14, - "(": 2144, - ")": 2152, - "write": 59, - "@": 8, - "MD5": 6, - "Implementation": 1, - "in": 80, - "M": 24, - "Copyright": 12, - "C": 9, - "Piotr": 7, - "Koper": 7, - "": 7, - "This": 26, - "program": 19, - "is": 88, - "free": 15, - "software": 12, - "you": 17, - "can": 20, - "redistribute": 11, - "it": 45, - "and/or": 11, - "modify": 11, - "under": 14, - "the": 223, - "terms": 11, - "of": 84, - "GNU": 33, - "Affero": 33, - "General": 33, - "Public": 33, - "License": 48, - "as": 23, - "published": 11, - "by": 35, - "Free": 11, - "Software": 11, - "Foundation": 11, - "either": 13, - "version": 16, - "or": 50, - "at": 21, - "your": 16, - "option": 12, - "any": 16, - "later": 11, - "version.": 11, - "distributed": 13, - "hope": 11, - "that": 19, - "will": 23, - "be": 35, - "useful": 11, - "but": 19, - "WITHOUT": 12, - "ANY": 12, - "WARRANTY": 11, - "without": 11, - "even": 12, - "implied": 11, - "warranty": 11, - "MERCHANTABILITY": 11, - "FITNESS": 11, - "FOR": 15, - "A": 12, - "PARTICULAR": 11, - "PURPOSE.": 11, - "See": 15, - "for": 77, - "more": 13, - "details.": 12, - "You": 13, - "should": 16, - "have": 21, - "received": 11, - "a": 130, - "copy": 13, - "along": 11, - "with": 45, - "this": 39, - "program.": 9, - "If": 14, - "not": 39, - "see": 26, - "": 11, - ".": 815, - "It": 2, - "works": 1, - "GT.M": 30, - "ZCHSET": 2, - "please": 1, - "don": 1, - "s": 775, - "only": 9, - "joke.": 1, - "Serves": 1, - "well": 2, - "reverse": 1, - "engineering": 1, - "example": 5, - "on": 17, - "obtaining": 1, - "boolean": 2, - "functions": 4, - "from": 16, - "integer": 1, - "addition": 1, - "modulo": 1, - "and": 59, - "division.": 1, - "md5": 2, - "msg": 6, - "http": 13, - "//en.wikipedia.org/wiki/MD5": 1, - "n": 197, - "m": 37, - "r": 88, - "k": 122, - "h": 39, - "i": 465, - "j": 67, - "b": 64, - "c": 113, - "d": 381, - "f": 93, - "g": 228, - "w": 127, - "t": 12, - "p": 84, - "q": 244, - "-": 1605, - "l": 84, - "#64": 1, - "+": 189, - "msg_": 1, - "_m_": 1, - "n64": 2, - "*8": 2, - "read": 2, - ".m": 11, - ".p": 1, - "<": 20, - "..": 28, - "...": 6, - "e": 210, - "*i": 3, - "#16": 3, - "xor": 4, - "rotate": 5, - "#4294967296": 6, - "n32h": 5, - "_": 127, - "bit": 5, - "x": 96, - "#2": 1, - "*2147483648": 2, - "a#2": 1, - "b#2": 1, - ".a": 1, - ".b": 1, - "rol": 1, - "a*": 1, - "**n": 1, - "c#4294967296": 1, - "*n": 1, - "n#256": 1, - "n#16": 2, - "ZDIOUT1": 1, - "Experimental": 1, - "FileMan": 1, - "file": 10, - "output": 49, - "to": 74, - "host": 2, - "The": 11, - "Open": 1, - "Source": 1, - "Electronic": 1, - "Health": 1, - "Record": 1, - "Agent": 1, - "Licensed": 1, - "Apache": 1, - "Version": 1, - "may": 3, - "use": 5, - "except": 1, - "compliance": 1, - "License.": 2, - "obtain": 2, - "//www.apache.org/licenses/LICENSE": 1, - "Unless": 1, - "required": 4, - "applicable": 1, - "law": 1, - "agreed": 1, - "writing": 4, - "an": 14, - "BASIS": 1, - "WARRANTIES": 1, - "OR": 2, - "CONDITIONS": 1, - "OF": 2, - "KIND": 1, - "express": 1, - "implied.": 1, - "specific": 3, - "language": 6, - "governing": 1, - "permissions": 2, - "limitations": 1, - "N": 19, - "W": 4, - "D": 64, - "ASKFILE": 1, - "Q": 58, - "FILE": 5, - "[": 54, - "ASKDIR": 1, - "DIR": 3, - "SAVEFILE": 2, - "Save": 1, - "given": 1, - "directory": 1, - "I": 43, - "CHECK": 1, - "FGR": 4, - "_FILE": 1, - "S": 99, - "IO": 4, - "DIR_": 1, - "P": 68, - "E": 12, - "L": 1, - "FILENAME": 1, - "O": 24, - "U": 14, - "_IO_": 1, - "_P_": 1, - "NM": 1, - "contains": 2, - "non": 1, - "printing": 1, - "characters": 8, - "then": 2, - "must": 8, - "escaped": 1, - "evaluation": 1, - "RHS": 1, - "SET.": 1, - "TODO": 1, - "Caller": 1, - "define": 2, - "indentation": 1, - "level": 5, - "comment": 4, - "if": 44, - "first": 10, - "character": 5, - "value": 72, - "tab": 1, - "space.": 1, - "V": 2, - "part": 3, - "DataBallet.": 4, - "Laurent": 2, - "Parenteau": 2, - "": 2, - "DataBallet": 4, - "encode": 1, - "message": 8, - "Return": 1, - "base64": 6, - "URL": 2, - "Filename": 1, - "safe": 3, - "alphabet": 2, - "RFC": 1, - "new": 15, - "todrop": 2, - "Populate": 1, - "values": 4, - "only.": 1, - "zextract": 3, - "zlength": 3, - "quit": 30, - "MDB": 60, - "M/DB": 2, - "Mumps": 1, - "Emulation": 1, - "Amazon": 1, - "SimpleDB": 1, - "|": 171, - "M/Gateway": 4, - "Developments": 4, - "Ltd": 4, - "Reigate": 4, - "Surrey": 4, - "UK.": 4, - "All": 4, - "rights": 4, - "reserved.": 4, - "//www.mgateway.com": 4, - "Email": 4, - "rtweed@mgateway.com": 4, - "QUIT": 251, - "buildDate": 1, - "indexLength": 10, - "Note": 2, - "keyId": 108, - "been": 4, - "tested": 1, - "valid": 2, - "time": 9, - "these": 1, - "methods": 2, - "are": 14, - "called": 8, - "To": 2, - "Initialise": 2, - "service": 1, - "//192.168.1.xxx/mdb/test.mgwsi": 1, - "Action": 2, - "addUser": 2, - "userKeyId": 6, - "userSecretKey": 6, - "requestId": 17, - "boxUsage": 11, - "startTime": 21, - "stop": 20, - "init": 6, - ".startTime": 5, - "MDBUAF": 2, - "end": 33, - ".boxUsage": 22, - "createDomain": 1, - "domainName": 38, - "dn": 4, - "dnx": 3, - "id": 33, - "noOfDomains": 12, - "token": 21, - "tr": 13, - "MDBConfig": 1, - "getDomainId": 3, - "name": 121, - "found": 7, - "namex": 8, - "o": 51, - "buildItemNameIndex": 2, - "domainId": 53, - "itemId": 41, - "itemValue": 7, - "itemValuex": 3, - "countDomains": 2, - "key": 22, - "no": 54, - "deleteDomain": 2, - "listDomains": 1, - "maxNoOfDomains": 2, - "nextToken": 7, - "domainList": 3, - "fullName": 3, - "decodeBase64": 1, - "encodeBase64": 1, - "itemExists": 1, - "getItemId": 2, - "getAttributeValueId": 3, - "attribId": 36, - "valuex": 13, - "putAttributes": 2, - "itemName": 16, - "attributes": 32, - "replace": 27, - "valueId": 16, - "xvalue": 4, - "add": 5, - "Item": 1, - "Domain": 1, - "itemNamex": 4, - "increment": 11, - "error": 62, - "parseJSON": 1, - "zmwire": 53, - "attributesJSON": 1, - ".attributes": 5, - "attribute": 14, - "getAttributeId": 2, - "domain": 1, - "Not": 1, - "allowed": 18, - "than": 4, - "one": 5, - "same": 2, - "remove": 6, - "existing": 2, - "now": 1, - "name/value": 2, - "pair": 1, - "getAttributes": 2, - "suppressBoxUsage": 1, - "attrNo": 9, - "valueNo": 6, - "delete": 2, - "all": 8, - "item": 2, - "associated": 1, - "queryIndex": 1, - "records": 2, - "specified": 4, - "pairs": 2, - "vno": 2, - "left": 5, - "completely": 3, - "references": 1, - "pos": 33, - "maxNoOfItems": 3, - "itemList": 12, - "session": 1, - "identifier": 1, - "stored": 1, - "queryExpression": 16, - "%": 207, - "zewd": 17, - "ok": 14, - "relink": 1, - "zewdGTMRuntime": 1, - "CGIEVAR": 1, - "cgi": 1, - "data": 43, - "unescName": 5, - "urlDecode": 2, - "KEY": 36, - "response": 29, - "WebLink": 1, - "access": 21, - "entry": 5, - "point": 2, - "here": 4, - "action": 15, - "AWSAcessKeyId": 1, - "db": 9, - "hash": 1, - "itemsAndAttrs": 2, - "secretKey": 1, - "signatureMethod": 2, - "signatureVersion": 3, - "stringToSign": 2, - "rltKey": 2, - "trace": 24, - "_action_": 2, - "h_": 3, - "mdbKey": 2, - "errorResponse": 9, - "initialise": 3, - ".requestId": 7, - "createResponse": 4, - "installMDBM": 1, - "authenticate": 1, - "MDBSession": 1, - "createResponseStringToSign": 1, - "Security": 1, - "OK": 6, - "_db": 1, - "MDBAPI": 1, - "lineNo": 19, - "CacheTempEWD": 16, - "_db_": 1, - "db_": 1, - "_action": 1, - "resp": 5, - "metaData": 1, - "domainMetadata": 1, - ".metaData": 1, - "paramName": 8, - "paramValue": 5, - "_i_": 5, - "Query": 1, - "DomainName": 2, - "QueryExpression": 2, - "MaxNumberOfItems": 2, - "NextToken": 3, - "QueryWithAttributes": 1, - "AttributeName.": 2, - "Select": 2, - "SelectExpression": 1, - "entering": 1, - "runSelect.": 1, - "selectExpression": 3, - "finished": 1, - "runSelect": 3, - "count": 18, - "select": 3, - "*": 6, - "where": 6, - "order": 11, - "limit": 14, - "asc": 1, - "inValue": 6, - "str": 15, - "expr": 18, - "rel": 2, - "itemStack": 3, - "between": 2, - "<=\">": 1, - "lastWord=": 7, - "inAttr=": 5, - "expr=": 10, - "thisWord=": 7, - "inAttr": 2, - "c=": 28, - "1": 74, - "queryExpression=": 4, - "_queryExpression": 2, - "4": 5, - "null": 6, - "3": 6, - "isNull": 1, - "5": 1, - "8": 1, - "isNotNull": 1, - "9": 1, - "np": 17, - "offset": 6, - "prevName": 1, - "term": 10, - "np=": 1, - "diffNames": 6, - "_term": 3, - "expr_": 1, - "_orderBy": 1, - "runQuery": 2, - ".itemList": 4, - "escVals": 1, - "str_c": 2, - "invalid": 4, - "_x_": 1, - "query": 4, - "orderBy": 1, - "_query": 1, - "parseSelect": 1, - ".domainName": 2, - ".queryExpression": 1, - ".orderBy": 1, - ".limit": 1, - "replaceAll": 11, - "executeSelect": 1, - ".itemStack": 1, - "***": 2, - "listCopy": 3, - "numeric": 8, - "N.N": 12, - "N.N1": 4, - "escape": 7, - "externalSelect": 2, - "json": 9, - "_keyId_": 1, - "_selectExpression": 1, - "FromStr": 6, - "ToStr": 4, - "InText": 4, - "old": 3, - "string": 50, - "p1": 5, - "p2": 10, - "stripTrailingSpaces": 2, - "spaces": 3, - "makeString": 3, - "string_spaces": 1, - "char": 9, - "len": 8, - "create": 6, - "test": 6, - "M/Wire": 4, - "Protocol": 2, - "Systems": 1, - "eg": 3, - "Cache": 3, - "By": 1, - "default": 6, - "server": 1, - "code": 29, - "runs": 2, - "port": 4, - "For": 3, - "systems": 3, - "invoked": 2, - "via": 2, - "xinetd": 2, - "Edit": 1, - "/etc/services": 1, - "line": 14, - "mwire": 2, - "/tcp": 1, - "#": 1, - "Service": 1, - "Copy": 2, - "/etc/xinetd.d/mwire": 1, - "/usr/local/gtm/zmwire": 1, - "change": 6, - "its": 1, - "executable": 1, - "These": 2, - "files": 4, - "edited": 1, - "paths": 2, - "number": 5, - "Restart": 1, - "using": 4, - "sudo": 1, - "/etc/init.d/xinetd": 1, - "restart": 3, - "On": 1, - "also": 4, - "installed": 1, - "MGWSI": 1, - "m_apache": 3, - "provide": 1, - "hashing": 1, - "function": 6, - "passwords": 1, - "Alternatively": 1, - "substitute": 1, - "callout": 1, - "choice": 1, - "Daemon": 2, - "routine": 6, - "which": 4, - "running": 1, - "jobbed": 1, - "process": 3, - "job": 1, - "zmwireDaemon": 2, - "simply": 1, - "editing": 2, - "Stop": 1, - "RESJOB": 1, - "it.": 2, - "mwireVersion": 4, - "Build": 6, - "mwireDate": 2, - "July": 1, - "_crlf": 22, - "build": 2, - "crlf": 6, - "_response_": 4, - "_crlf_response_crlf": 4, - "zv": 6, - "command": 11, - "authNeeded": 6, - "input": 41, - "cleardown": 2, - "zint": 1, - "role": 3, - "loop": 7, - "log": 1, - "halt": 3, - "auth": 2, - "ignore": 12, - "pid": 36, - "monitor": 1, - "input_crlf": 1, - "zsy": 2, - "_pid_": 1, - "_pid": 1, - "monitoroutput": 1, - "logger": 17, - "tot": 2, - "mwireLogger": 3, - "info": 1, - "response_": 1, - "_count": 1, - "pass": 24, - "setpassword": 1, - "SETPASSWORD": 2, - "secret": 2, - "": 1, - "role=": 1, - "admin": 1, - "newrole": 4, - "getGloRef": 3, - "gloName": 1, - "gloRef": 15, - "nb": 2, - "subs": 8, - "nsp": 1, - "subs_": 2, - "quot": 2, - "_data_": 3, - "subscripts": 8, - "_value_": 1, - "_error_": 1, - "kill": 3, - "xx": 16, - "yy": 19, - "No": 17, - "global": 26, - "method": 2, - "Missing": 5, - "JSON": 7, - "transaction": 6, - "document": 6, - "step": 8, - "setJSON": 4, - "globalName": 7, - "GlobalName": 3, - "Global": 8, - "setGlobal": 1, - "zmwire_null_value": 1, - "]": 15, - "Invalid": 1, - "props": 1, - "arr": 2, - "getJSON": 2, - "incr": 1, - "incrbr": 1, - "class": 1, - "##": 2, - "decr": 1, - "decrby": 1, - "subscript": 7, - "direction": 1, - "{": 5, - "subscriptValue": 1, - "dataStatus": 1, - "dataValue": 1, - "}": 5, - "nextsubscript": 2, - "reverseorder": 1, - "*2": 1, - "queryget": 1, - "xxyy": 2, - "zz": 2, - "exists": 6, - "getallsubscripts": 1, - "orderall": 1, - "": 3, - "note": 2, - "escaping": 1, - "world": 4, - "foo": 2, - "_gloRef": 1, - "zt": 20, - "@x": 4, - "i*2": 3, - "_crlf_": 1, - "j_": 1, - "params": 10, - "_crlf_resp_crlf": 2, - "_crlf_data_crlf": 2, - "mergeto": 1, - "dataLength": 4, - "keyLength": 6, - "noOfRecs": 6, - "MERGETO": 1, - "myglobal": 1, - "*6": 1, - "hello": 1, - "": 2, - "length": 7, - "means": 2, - "put": 1, - "top": 1, - "noOfRecs#2": 1, - "noOfRecs/2": 1, - "gloRef1": 2, - "gloRef1_": 2, - "_gloRef1_key_": 1, - "sub": 2, - "literal": 2, - "true": 2, - "false": 5, - "variable": 8, - "valquot_value_valquot": 1, - "json_value_": 1, - "subscripts1": 2, - "dd": 4, - "subx": 3, - "subNo": 1, - "numsub": 1, - "json_": 2, - "removeControlChars": 2, - "zobj1": 1, - "buff": 10, - "parseJSONObject": 2, - ".buff": 2, - "subs2": 6, - "_name_": 1, - "subs2_": 2, - "value_c": 1, - "lc": 3, - "newString": 4, - "newString_c": 1, - "utfConvert": 1, - "Unescape": 1, - "UTF": 17, - "buf": 4, - "c1": 4, - "buf_c1_": 1, - "compute": 2, - "Fibonacci": 1, - "series": 2, - "do": 15, - "Mumtris": 3, - "tetris": 1, - "game": 1, - "MUMPS": 1, - "fun.": 1, - "Resize": 1, - "terminal": 2, - "e.g.": 2, - "maximize": 1, - "PuTTY": 1, - "window": 1, - "so": 4, - "report": 1, - "size": 3, - "mumtris.": 1, - "Try": 2, - "setting": 3, - "ansi": 2, - "compatible": 1, - "cursor": 1, - "positioning.": 1, - "NOTICE": 1, - "uses": 1, - "making": 1, - "delays": 1, - "lower": 1, - "s.": 1, - "That": 1, - "CPU": 1, - "used": 6, - "fall": 5, - "lock": 2, - "clear": 6, - "preview": 3, - "over": 2, - "exit": 3, - "short": 1, - "circuit": 1, - "redraw": 3, - "timeout": 1, - "harddrop": 1, - "other": 1, - "ex": 5, - "hd": 3, - "*c": 1, - "<0&'d>": 1, - "i=": 14, - "st": 6, - "t10m": 1, - "0": 23, - "<0>": 2, - "q=": 6, - "d=": 1, - "zb": 2, - "right": 3, - "fl=": 1, - "gr=": 1, - "hl": 2, - "help": 2, - "drop": 2, - "hd=": 1, - "2": 14, - "matrix": 2, - "stack": 8, - "draw": 3, - "y": 33, - "ticks": 2, - "h=": 2, - "1000000000": 1, - "b=": 4, - "e=": 1, - "t10m=": 1, - "100": 2, - "n=": 1, - "ne=": 1, - "x=": 5, - "y=": 3, - "r=": 3, - "collision": 6, - "score": 5, - "k=": 1, - "j=": 4, - "<1))))>": 1, - "800": 1, - "200": 1, - "lv": 5, - "lc=": 1, - "10": 1, - "mt_": 2, - "cls": 6, - ".s": 5, - "dh/2": 6, - "dw/2": 6, - "*s": 4, - "u": 6, - "echo": 1, - "intro": 1, - "workaround": 1, - "ANSI": 1, - "driver": 1, - "NL": 1, - "some": 1, - "place": 9, - "clearscreen": 1, - "h/2": 3, - "*w/2": 3, - "fill": 3, - "fl": 2, - "*x": 1, - "mx": 4, - "my": 5, - "**lv*sb": 1, - "*lv": 1, - "sc": 3, - "ne": 2, - "gr": 1, - "w*3": 1, - "dev": 1, - "zsh": 1, - "dw": 1, - "dh": 1, - "elements": 3, - "elemId": 3, - "rotateVersions": 1, - "rotateVersion": 2, - "bottom": 1, - "coordinate": 1, - "____": 1, - "__": 2, - "||": 1, - "WVBRNOT": 1, - "HCIOFO/FT": 1, - "JR": 1, - "IHS/ANMC/MWR": 1, - "BROWSE": 1, - "NOTIFICATIONS": 1, - "/30/98": 1, - "WOMEN": 1, - "WVDATE": 8, - "WVENDDT1": 2, - "..S": 7, - "WVIEN": 13, - "..F": 2, - "WV": 8, - "WVXREF": 1, - "...S": 5, - "Y": 26, - "WVDFN": 6, - "IF": 9, - "SELECTING": 1, - "ONE": 2, - "CASE": 1, - "MANAGER": 1, - "AND": 3, - "THIS": 3, - "DOESN": 1, - "WVE": 2, - "": 2, - "STORE": 3, - "WVA": 2, - "PATIENT": 5, - "F": 10, - "WVBEGDT1": 1, - "NOTIFICATION": 1, - "IS": 3, - "NOT": 2, - "QUEUED.": 1, - ".I": 4, - "WVB": 4, - "OPEN": 1, - "ONLY": 1, - "ENTRY": 2, - "CLOSED.": 1, - ".Q": 1, - "&": 28, - "EP": 4, - "ALREADY": 1, - "SET": 3, - "FROM": 5, - "LL": 1, - "SORT": 3, - "ABOVE.": 1, - "DATE": 1, - "WVCHRT": 1, - "SSN": 1, - "WVUTL1": 2, - "SSN#": 1, - "WVNAME": 4, - "NAME": 3, - "WVACC": 4, - "ACCESSION#": 1, - "WVSTAT": 1, - "STATUS": 2, - "WVUTL4": 1, - "WVPRIO": 5, - "PRIORITY": 1, - "X": 19, - "WVCHRT_U_WVNAME_U_WVDATE_U_WVACC_U_WVSTAT_U_WVPRIO_U_WVIEN": 1, - "WVC": 4, - "TMP": 26, - "J": 38, - "COPYGBL": 3, - "COPY": 1, - "TO": 6, - "MAKE": 1, - "IT": 1, - "FLAT.": 1, - ".S": 6, - ".F": 2, - "...F": 1, - "....S": 1, - "DEQUEUE": 1, - "TASKMAN": 1, - "QUEUE": 1, - "PRINTOUT.": 1, - "SETVARS": 2, - "WVUTL5": 2, - "WVBRNOT1": 2, - "EXIT": 1, - "FOLLOW": 1, - "CALLED": 1, - "PROCEDURE": 1, - "FOLLOWUP": 1, - "MENU.": 1, - "WVBEGDT": 1, - "DT": 2, - "WVENDDT": 1, - "DEVICE": 1, - "WVBRNOT2": 1, - "WVPOP": 1, - "WVLOOP": 1, - "label1": 1, - "label": 5, - "start1": 2, - "sum": 15, - "start2": 1, - "student": 14, - "zwrite": 1, - "zewdDemo": 1, - "Tutorial": 1, - "page": 12, - "Product": 2, - "Enterprise": 5, - "Web": 5, - "Developer": 5, - "Date": 2, - "Wed": 1, - "Apr": 1, - "getLanguage": 1, - "sessid": 146, - "getRequestValue": 1, - "zewdAPI": 52, - "setSessionValue": 6, - "login": 1, - "username": 8, - "password": 8, - "getTextValue": 4, - "getPasswordValue": 2, - "_username_": 1, - "_password": 1, - "logine": 1, - "textid": 1, - "errorMessage": 1, - "ewdDemo": 8, - "clearList": 2, - "appendToList": 4, - "user": 27, - "addUsername": 1, - "newUsername": 5, - "newUsername_": 1, - "setTextValue": 4, - "testValue": 1, - "getSelectValue": 3, - "_user": 1, - "getPassword": 1, - "setPassword": 1, - "getObjDetails": 1, - "_user_": 1, - "_data": 2, - "setRadioOn": 2, - "initialiseCheckbox": 2, - "setCheckboxOn": 3, - "createLanguageList": 1, - "setMultipleSelectOn": 2, - "clearTextArea": 2, - "textarea": 2, - "createTextArea": 1, - ".textarea": 1, - "userType": 4, - "selected": 4, - "setMultipleSelectValues": 1, - ".selected": 1, - "testField3": 3, - ".value": 1, - "testField2": 1, - "field3": 1, - "dateTime": 1, - "if1": 2, - "simple": 2, - "statement": 3, - "if2": 2, - "statements": 1, - "contrasted": 1, - "": 3, - "a=": 3, - "smaller": 3, - "if3": 1, - "else": 7, - "clause": 2, - "if4": 1, - "bodies": 1, - "computes": 1, - "factorial": 3, - "f*n": 1, - "main": 1, - "run": 2, - "APIs": 1, - "Fri": 1, - "Nov": 1, - "getVersion": 1, - "zewdCompiler": 6, - "date": 1, - "getDate": 1, - "compilePage": 2, - "app": 13, - "mode": 12, - "technology": 9, - "outputPath": 4, - "multilingual": 4, - "maxLines": 4, - "compileAll": 2, - "templatePageName": 2, - "autoTranslate": 2, - "verbose": 2, - "zewdMgr": 1, - "startSession": 2, - "requestArray": 2, - "serverArray": 1, - "sessionArray": 5, - "filesArray": 1, - "zewdPHP": 8, - ".requestArray": 2, - ".serverArray": 1, - ".sessionArray": 3, - ".filesArray": 1, - "closeSession": 2, - "saveSession": 2, - "endOfPage": 2, - "prePageScript": 2, - "releaseLock": 2, - "tokeniseURL": 2, - "url": 2, - "zewdCompiler16": 5, - "getSessid": 1, - "isTokenExpired": 2, - "zewdSession": 39, - "initialiseSession": 1, - "deleteSession": 2, - "changeApp": 1, - "appName": 4, - "setRedirect": 1, - "toPage": 1, - "path": 4, - "getRootURL": 1, - "_sessid_": 3, - "_token_": 1, - "_nextPage": 1, - "zcvt": 11, - "nextPage": 1, - "isNextPageTokenValid": 2, - "zewdCompiler13": 10, - "isCSP": 1, - "normaliseTextValue": 1, - "text": 6, - "writeLine": 2, - "CacheTempBuffer": 2, - "displayOptions": 2, - "fieldName": 5, - "listName": 6, - "codeValue": 7, - "nnvp": 1, - "nvp": 1, - "textValue": 6, - "getSessionValue": 3, - "codeValueEsc": 7, - "textValueEsc": 7, - "htmlOutputEncode": 2, - "zewdAPI2": 5, - "_codeValueEsc_": 1, - "translationMode": 1, - "_appName": 1, - "typex": 1, - "type": 2, - "avoid": 1, - "bug": 2, - "getPhraseIndex": 1, - "zewdCompiler5": 1, - "licensed": 1, - "setWarning": 2, - "isTemp": 11, - "setWLDSymbol": 1, - "Duplicate": 1, - "performance": 1, - "wldAppName": 1, - "wldName": 1, - "wldSessid": 1, - "zzname": 1, - "extcErr": 1, - "mess": 3, - "namespace": 1, - "valueErr": 1, - "exportCustomTags": 2, - "tagList": 1, - "filepath": 10, - ".tagList": 1, - "exportAllCustomTags": 2, - "importCustomTags": 2, - "filePath": 2, - "zewdForm": 1, - "stripSpaces": 6, - "obj": 6, - "prop": 6, - "setSessionObject": 3, - "allowJSONAccess": 1, - "sessionName": 30, - "disallowJSONAccess": 1, - "JSONAccess": 1, - "existsInSession": 2, - "existsInSessionArray": 2, - "p3": 3, - "p4": 2, - "p5": 2, - "p6": 2, - "p7": 2, - "p8": 2, - "p9": 2, - "p10": 2, - "p11": 2, - "clearSessionArray": 1, - "arrayName": 35, - "setSessionArray": 1, - "getSessionArray": 1, - "array": 22, - "clearArray": 2, - "getSessionArrayErr": 1, - "Come": 1, - "occurred": 2, - "addToSession": 2, - "@name": 4, - "mergeToSession": 1, - "mergeGlobalToSession": 2, - "mergeGlobalFromSession": 2, - "mergeArrayToSession": 1, - "mergeArrayToSessionObject": 2, - ".array": 1, - "mergeArrayFromSession": 1, - "mergeFromSession": 1, - "deleteFromSession": 1, - "deleteFromSessionObject": 1, - "sessionNameExists": 1, - "getSessionArrayValue": 2, - ".exists": 1, - "sessionArrayValueExists": 2, - "deleteSessionArrayValue": 2, - "Objects": 1, - "objectName": 13, - "propertyName": 3, - "propertyValue": 5, - "comma": 3, - "objectName_": 2, - "_propertyName": 2, - "_propertyName_": 2, - "_propertyValue_": 1, - "_p": 1, - "quoted": 1, - "removeDocument": 1, - "zewdDOM": 3, - "instanceName": 2, - "clearXMLIndex": 1, - "zewdSchemaForm": 1, - "closeDOM": 1, - "makeTokenString": 1, - "token_": 1, - "convertDateToSeconds": 1, - "hdate": 7, - "hdate*86400": 1, - "convertSecondsToDate": 1, - "secs": 2, - "secs#86400": 1, - "getTokenExpiry": 2, - "h*86400": 1, - "randChar": 1, - "R": 2, - "lowerCase": 2, - "stripLeadingSpaces": 2, - "d1": 7, - "zd": 1, - "<10>": 1, - "dd=": 2, - "mm=": 3, - "d1=": 1, - "p1=": 1, - "mm": 7, - "p2=": 1, - "yy=": 1, - "dd_": 1, - "mm_": 1, - "inetTime": 1, - "Decode": 1, - "Internet": 1, - "Format": 1, - "Time": 1, - "H": 1, - "format": 2, - "Offset": 1, - "relative": 1, - "GMT": 1, - "hh": 4, - "ss": 4, - "_hh": 1, - "time#3600": 1, - "_mm": 1, - "time#60": 1, - "_ss": 2, - "hh_": 1, - "_mm_": 1, - "openNewFile": 2, - "openFile": 2, - "openDOM": 2, - "#39": 1, - "<\",\"<\")>": 1, - "string=": 1, - "gt": 1, - "amp": 1, - "HTML": 1, - "no2": 1, - "p1_c_p2": 1, - "getIP": 2, - "Get": 2, - "own": 2, - "IP": 1, - "address": 1, - "ajaxErrorRedirect": 2, - "classExport": 2, - "className": 2, - ".methods": 1, - "strx": 2, - "disableEwdMgr": 1, - "enableEwdMgr": 1, - "enableWLDAccess": 1, - "disableWLDAccess": 1, - "isSSOValid": 2, - "sso": 2, - "zewdMgrAjax2": 1, - "uniqueId": 1, - "nodeOID": 2, - "filename": 2, - "linkToParentSession": 2, - "zewdCompiler20": 1, - "exportToGTM": 1, - "decode": 1, - "val": 5, - "Decoded": 1, - "Encoded": 1, - "decoded": 3, - "decoded_": 1, - "safechar": 3, - "zchar": 1, - "encoded": 8, - "encoded_c": 1, - "encoded_": 2, - "FUNC": 1, - "DH": 1, - "zascii": 1, - "miles": 4, - "gallons": 4, - "miles/gallons": 1, - "computepesimist": 1, - "miles/": 1, - "computeoptimist": 1, - "/gallons": 1, - "PCRE": 23, - "Extension": 9, - "trademark": 2, - "Fidelity": 2, - "Information": 2, - "Services": 2, - "Inc.": 2, - "//sourceforge.net/projects/fis": 2, - "gtm/": 2, - "extension": 3, - "tries": 1, - "deliver": 1, - "best": 2, - "possible": 5, - "interface": 1, - "providing": 1, - "support": 3, - "arrays": 1, - "stringified": 2, - "parameter": 1, - "names": 3, - "simplified": 1, - "API": 7, - "locales": 2, - "exceptions": 1, - "Perl5": 1, - "Match.": 1, - "pcreexamples.m": 2, - "comprehensive": 1, - "examples": 4, - "pcre": 59, - "routines": 6, - "usage": 3, - "beginner": 1, - "tips": 1, - "match": 41, - "limits": 6, - "exception": 12, - "handling": 2, - "GT.M.": 1, - "out": 2, - "known": 2, - "book": 1, - "regular": 1, - "expressions": 1, - "//regex.info/": 1, - "information": 1, - "//pcre.org/": 1, - "Please": 2, - "feel": 2, - "contact": 2, - "me": 2, - "questions": 2, - "comments": 5, - "Initial": 2, - "release": 2, - "pkoper": 2, - "pcre.version": 1, - "config": 3, - "case": 7, - "insensitive": 7, - "protect": 11, - "erropt": 6, - "isstring": 5, - "pcre.config": 1, - ".name": 1, - ".erropt": 3, - ".isstring": 1, - ".n": 20, - "ec": 10, - "compile": 14, - "pattern": 21, - "options": 45, - "locale": 24, - "mlimit": 20, - "reclimit": 19, - "optional": 16, - "joined": 3, - "Unix": 1, - "pcre_maketables": 2, - "cases": 1, - "undefined": 1, - "environment": 7, - "defined": 2, - "variables": 3, - "LANG": 4, - "LC_*": 1, - "Debian": 2, - "tip": 1, - "dpkg": 1, - "reconfigure": 1, - "enable": 1, - "system": 1, - "wide": 1, - "internal": 3, - "matching": 4, - "calls": 1, - "pcre_exec": 4, - "execution": 2, - "manual": 2, - "details": 5, - "depth": 1, - "recursion": 1, - "when": 11, - "calling": 2, - "ref": 41, - "err": 4, - "erroffset": 3, - "pcre.compile": 1, - ".pattern": 3, - ".ref": 13, - ".err": 1, - ".erroffset": 1, - "exec": 4, - "subject": 24, - "startoffset": 3, - "octets": 2, - "starts": 1, - "like": 4, - "chars": 3, - "pcre.exec": 2, - ".subject": 3, - "zl": 7, - "ec=": 7, - "ovector": 25, - "return": 7, - "element": 1, - "code=": 4, - "ovecsize": 5, - "fullinfo": 3, - "OPTIONS": 2, - "SIZE": 1, - "CAPTURECOUNT": 1, - "BACKREFMAX": 1, - "FIRSTBYTE": 1, - "FIRSTTABLE": 1, - "LASTLITERAL": 1, - "NAMEENTRYSIZE": 1, - "NAMECOUNT": 1, - "STUDYSIZE": 1, - "OKPARTIAL": 1, - "JCHANGED": 1, - "HASCRORLF": 1, - "MINLENGTH": 1, - "JIT": 1, - "JITSIZE": 1, - "nametable": 4, - "returns": 7, - "index": 1, - "indexed": 4, - "substring": 1, - "begin": 18, - "begin=": 3, - "end=": 4, - "octet": 4, - "UNICODE": 1, - "ze": 8, - "begin_": 1, - "_end": 1, - "store": 6, - "above": 3, - "stores": 1, - "captured": 6, - "key=": 2, - "gstore": 3, - "round": 12, - "byref": 5, - "ref=": 3, - "l=": 2, - "capture": 10, - "indexes": 1, - "extended": 1, - "NAMED_ONLY": 2, - "named": 12, - "groups": 5, - "OVECTOR": 2, - "additional": 5, - "namedonly": 9, - "options=": 4, - "o=": 12, - "namedonly=": 2, - "ovector=": 2, - "NO_AUTO_CAPTURE": 2, - "_capture_": 2, - "matches": 10, - "s=": 4, - "_s_": 1, - "GROUPED": 1, - "group": 4, - "result": 3, - "patterns": 3, - "pcredemo": 1, - "pcreccp": 1, - "cc": 1, - "procedure": 2, - "Perl": 1, - "utf8": 2, - "empty": 7, - "skip": 6, - "determine": 1, - "them": 1, - "before": 2, - "byref=": 2, - "check": 2, - "UTF8": 2, - "double": 1, - "utf8=": 1, - "crlf=": 3, - "NL_CRLF": 1, - "NL_ANY": 1, - "NL_ANYCRLF": 1, - "none": 1, - "NEWLINE": 1, - ".start": 1, - "unwind": 1, - "call": 1, - "optimize": 1, - "leave": 1, - "advance": 1, - "LF": 1, - "CR": 1, - "was": 5, - "CRLF": 1, - "middle": 1, - ".i": 2, - ".match": 2, - ".round": 2, - ".byref": 2, - ".ovector": 2, - "subst": 3, - "last": 4, - "occurrences": 1, - "matched": 1, - "back": 4, - "th": 3, - "replaced": 1, - "substitution": 2, - "begins": 1, - "substituted": 2, - "defaults": 3, - "ends": 1, - "backref": 1, - "boffset": 1, - "prepare": 1, - "reference": 2, - ".subst": 1, - ".backref": 1, - "silently": 1, - "zco": 1, - "": 1, - "s/": 6, - "b*": 7, - "/Xy/g": 6, - "print": 8, - "aa": 9, - "et": 4, - "direct": 3, - "take": 1, - "handler": 9, - "setup": 3, - "trap": 10, - "source": 3, - "location": 5, - "argument": 1, - "@ref": 2, - "COMPILE": 2, - "has": 7, - "meaning": 1, - "zs": 2, - "re": 2, - "raise": 3, - "XC": 1, - "U16384": 1, - "U16385": 1, - "U16386": 1, - "U16387": 1, - "U16388": 2, - "U16389": 1, - "U16390": 1, - "U16391": 1, - "U16392": 2, - "U16393": 1, - "NOTES": 1, - "U16401": 2, - "never": 4, - "raised": 2, - "i.e.": 3, - "NOMATCH": 2, - "ever": 1, - "uncommon": 1, - "situation": 1, - "too": 1, - "small": 1, - "considering": 1, - "controlled": 1, - "U16402": 1, - "U16403": 1, - "U16404": 1, - "U16405": 1, - "U16406": 1, - "U16407": 1, - "U16408": 1, - "U16409": 1, - "U16410": 1, - "U16411": 1, - "U16412": 1, - "U16414": 1, - "U16415": 1, - "U16416": 1, - "U16417": 1, - "U16418": 1, - "U16419": 1, - "U16420": 1, - "U16421": 1, - "U16423": 1, - "U16424": 1, - "U16425": 1, - "U16426": 1, - "U16427": 1, - "Comment": 1, - "block": 1, - "always": 2, - "semicolon": 1, - "next": 1, - "while": 4, - "legal": 1, - "blank": 1, - "whitespace": 2, - "alone": 1, - "**": 4, - "Comments": 1, - "graphic": 3, - "such": 1, - "@#": 1, - "/": 3, - "space": 1, - "considered": 1, - "though": 1, - "ASCII": 2, - "whose": 1, - "below": 1, - "routine.": 1, - "multiple": 1, - "semicolons": 1, - "okay": 1, - "tag": 2, - "after": 3, - "does": 1, - "Tag1": 1, - "Tags": 2, - "uppercase": 2, - "lowercase": 1, - "alphabetic": 2, - "HELO": 1, - "most": 1, - "common": 1, - "LABEL": 1, - "followed": 1, - "directly": 1, - "open": 1, - "parenthesis": 2, - "formal": 1, - "list": 1, - "close": 1, - "ANOTHER": 1, - "Normally": 1, - "subroutine": 1, - "would": 2, - "ended": 1, - "we": 1, - "taking": 1, - "advantage": 1, - "rule": 1, - "END": 1, - "implicit": 1, - "Examples": 4, - "pcre.m": 1, - "parameters": 1, - "pcreexamples": 32, - "shining": 1, - "Test": 1, - "Simple": 2, - "zwr": 17, - "Match": 4, - "grouped": 2, - "Just": 1, - "Change": 2, - "word": 3, - "Escape": 1, - "sequence": 1, - "More": 1, - "Low": 1, - "api": 1, - "Setup": 1, - "myexception2": 2, - "st_": 1, - "zl_": 2, - "Compile": 2, - ".options": 1, - "Run": 1, - ".offset": 1, - "used.": 2, - "strings": 1, - "submitted": 1, - "exact": 1, - "usable": 1, - "integers": 1, - "way": 1, - "what": 2, - "/mg": 2, - "aaa": 1, - "nbb": 1, - ".*": 1, - "discover": 1, - "stackusage": 3, - "Locale": 5, - "Support": 1, - "Polish": 1, - "I18N": 2, - "PCRE.": 1, - "Polish.": 1, - "second": 1, - "letter": 1, - "": 1, - "ISO8859": 1, - "//en.wikipedia.org/wiki/Polish_code_pages": 1, - "complete": 1, - "listing": 1, - "CHAR": 1, - "different": 3, - "modes": 1, - "In": 1, - "two": 2, - "probably": 1, - "expected": 1, - "working": 1, - "single": 2, - "ISO": 3, - "chars.": 1, - "Use": 1, - "zch": 7, - "prepared": 1, - "GTM": 8, - "BADCHAR": 1, - "errors.": 1, - "Also": 1, - "others": 1, - "might": 1, - "expected.": 1, - "POSIX": 1, - "localization": 1, - "nolocale": 2, - "zchset": 2, - "isolocale": 2, - "utflocale": 2, - "LC_CTYPE": 1, - "Set": 2, - "results.": 1, - "envlocale": 2, - "ztrnlnm": 2, - "Notes": 1, - "Enabling": 1, - "native": 1, - "requires": 1, - "libicu": 2, - "gtm_chset": 1, - "gtm_icu_version": 1, - "recompiled": 1, - "object": 4, - "Instructions": 1, - "Install": 1, - "libicu48": 2, - "apt": 1, - "get": 2, - "install": 1, - "append": 1, - "chown": 1, - "gtm": 1, - "/opt/gtm": 1, - "Startup": 1, - "errors": 6, - "INVOBJ": 1, - "Cannot": 1, - "ZLINK": 1, - "due": 1, - "unexpected": 1, - "TEXT": 5, - "Object": 1, - "compiled": 1, - "CHSET": 1, - "written": 3, - "startup": 1, - "correct": 1, - "above.": 1, - "Limits": 1, - "built": 1, - "recursion.": 1, - "Those": 1, - "prevent": 1, - "engine": 1, - "very": 2, - "long": 2, - "especially": 1, - "there": 2, - "tree": 1, - "checked.": 1, - "Functions": 1, - "itself": 1, - "allows": 1, - "MATCH_LIMIT": 1, - "MATCH_LIMIT_RECURSION": 1, - "arguments": 1, - "library": 1, - "compilation": 2, - "Example": 1, - "longrun": 3, - "Equal": 1, - "corrected": 1, - "shortrun": 2, - "Enforced": 1, - "enforcedlimit": 2, - "Exception": 2, - "Handling": 1, - "Error": 1, - "conditions": 1, - "handled": 1, - "zc": 1, - "codes": 1, - "labels": 1, - "file.": 1, - "When": 2, - "neither": 1, - "nor": 1, - "within": 1, - "mechanism.": 1, - "depending": 1, - "caller": 1, - "exception.": 1, - "lead": 1, - "prompt": 1, - "terminating": 1, - "image.": 1, - "handlers.": 1, - "Handler": 1, - "nohandler": 4, - "Pattern": 1, - "failed": 1, - "unmatched": 1, - "parentheses": 1, - "<-->": 1, - "HERE": 1, - "RTSLOC": 2, - "At": 2, - "SETECODE": 1, - "Non": 1, - "assigned": 1, - "ECODE": 1, - "32": 1, - "GT": 1, - "image": 1, - "terminated": 1, - "myexception1": 3, - "zt=": 1, - "mytrap1": 2, - "zg": 2, - "mytrap3": 1, - "DETAILS": 1, - "executed": 1, - "frame": 1, - "called.": 1, - "deeper": 1, - "frames": 1, - "already": 1, - "dropped": 1, - "local": 1, - "available": 1, - "context.": 1, - "Thats": 1, - "why": 1, - "doesn": 1, - "unless": 1, - "cleared.": 1, - "Always": 1, - "done.": 2, - "Execute": 1, - "p5global": 1, - "p5replace": 1, - "p5lf": 1, - "p5nl": 1, - "newline": 1, - "utf8support": 1, - "myexception3": 1, - "ax": 2, - "bx": 2, - "cx": 2, - "ay": 2, - "cy": 2, - "sumx": 3, - "sqrx": 3, - "sumxy": 5, - "x*x": 1, - "x*y": 1, - "Keith": 1, - "Lynch": 1, - "p#f": 1, - "GMRGPNB0": 1, - "CISC/JH/RM": 1, - "NARRATIVE": 1, - "BUILDER": 1, - "GENERATOR": 1, - "cont.": 1, - "/20/91": 1, - "Text": 1, - "Generator": 1, - "Jan": 1, - "WITH": 1, - "GMRGA": 1, - "POINT": 1, - "AT": 1, - "WHICH": 1, - "WANT": 1, - "START": 1, - "BUILDING": 1, - "GMRGE0": 11, - "GMRGADD": 4, - "GMR": 6, - "GMRGA0": 11, - "GMRGPDA": 9, - "GMRGCSW": 2, - "NOW": 1, - "DTC": 1, - "GMRGB0": 9, - "GMRGST": 6, - "GMRGPDT": 2, - "STAT": 8, - "GMRGRUT0": 3, - "GMRGF0": 3, - "GMRGSTAT": 8, - "_GMRGB0_": 2, - "GMRD": 6, - "GMRGSSW": 3, - "SNT": 1, - "GMRGPNB1": 1, - "GMRGNAR": 8, - "GMRGPAR_": 2, - "_GMRGSPC_": 3, - "_GMRGRM": 2, - "_GMRGE0": 1, - "STORETXT": 1, - "GMRGRUT1": 1, - "GMRGSPC": 3, - "GMRGD0": 7, - "ALIST": 1, - "G": 40, - "GMRGPLVL": 6, - "GMRGA0_": 1, - "_GMRGD0_": 1, - "_GMRGSSW_": 1, - "_GMRGADD": 1, - "GMRGI0": 6, - "PXAI": 1, - "ISL/JVS": 1, - "ISA/KWP": 1, - "ESW": 1, - "PCE": 2, - "DRIVING": 1, - "RTN": 1, - "/20/03": 1, - "am": 1, - "CARE": 1, - "ENCOUNTER": 2, - "**15": 1, - "Aug": 1, - "DATA2PCE": 1, - "PXADATA": 7, - "PXAPKG": 9, - "PXASOURC": 10, - "PXAVISIT": 8, - "PXAUSER": 6, - "PXANOT": 3, - "ERRRET": 2, - "PXAPREDT": 2, - "PXAPROB": 15, - "PXACCNT": 2, - "add/edit/delete": 1, - "PCE.": 1, - "pointer": 4, - "visit": 3, - "related.": 1, - "nodes": 1, - "needed": 1, - "lookup/create": 1, - "visit.": 1, - "adding": 1, - "data.": 1, - "displayed": 1, - "screen": 1, - "debugging": 1, - "initial": 1, - "code.": 1, - "passed": 4, - "reference.": 2, - "present": 1, - "PXKERROR": 2, - "caller.": 1, - "want": 1, - "edit": 1, - "Primary": 3, - "Provider": 1, - "moment": 1, - "being": 1, - "dangerous": 1, - "dotted": 1, - "name.": 1, - "warnings": 1, - "occur": 1, - "They": 1, - "form": 1, - "general": 1, - "description": 1, - "problem.": 1, - "ERROR1": 1, - "GENERAL": 2, - "ERRORS": 4, - "SUBSCRIPT": 5, - "PASSED": 4, - "IN": 4, - "FIELD": 2, - "WARNING2": 1, - "WARNINGS": 2, - "WARNING3": 1, - "SERVICE": 1, - "CONNECTION": 1, - "REASON": 9, - "ERROR4": 1, - "PROBLEM": 1, - "LIST": 1, - "Returns": 2, - "PFSS": 2, - "Account": 2, - "Reference": 2, - "known.": 1, - "Returned": 1, - "located": 1, - "Order": 1, - "#100": 1, - "processed": 1, - "could": 1, - "incorrectly": 1, - "NEW": 3, - "VARIABLES": 1, - "NOVSIT": 1, - "PXAK": 20, - "DFN": 1, - "PXAERRF": 3, - "PXADEC": 1, - "PXELAP": 1, - "PXASUB": 2, - "VALQUIET": 2, - "PRIMFND": 7, - "K": 5, - "PXAERROR": 1, - "PXAERR": 7, - "PRVDR": 1, - "needs": 1, - "look": 1, - "up": 1, - "passed.": 1, - "@PXADATA@": 8, - "DUZ": 3, - "SOR": 1, - "SOURCE": 2, - "PKG2IEN": 1, - "VSIT": 1, - "PXAPIUTL": 2, - "TMPSOURC": 1, - "SAVES": 1, - "CREATES": 1, - "VST": 2, - "VISIT": 3, - "KILL": 1, - "VPTR": 1, - "PXAIVSTV": 1, - "ERR": 2, - "PXAIVST": 1, - "PRV": 1, - "PROVIDER": 1, - "AUPNVSIT": 1, - "status": 2, - "Secondary": 2, - "..I": 2, - "PXADI": 4, - "NODE": 5, - "SCREEN": 2, - "VA": 1, - "EXTERNAL": 2, - "INTERNAL": 2, - "ARRAY": 2, - "PXAICPTV": 1, - "SEND": 1, - "BLD": 2, - "DIALOG": 4, - ".PXAERR": 3, - "MSG": 2, - "GLOBAL": 1, - "NA": 1, - "PROVDRST": 1, - "Check": 1, - "provider": 1, - "PRVIEN": 14, - "DETS": 7, - "DIC": 6, - "DR": 4, - "DA": 4, - "DIQ": 3, - "PRI": 3, - "PRVPRIM": 2, - "AUPNVPRV": 2, - ".04": 1, - "EN": 2, - "DIQ1": 1, - "POVPRM": 1, - "POVARR": 1, - "STOP": 1, - "LPXAK": 4, - "ORDX": 14, - "NDX": 7, - "ORDXP": 3, - "DX": 2, - "ICD9": 2, - "AUPNVPOV": 2, - "@POVARR@": 6, - "force": 1, - "originally": 1, - "primary": 1, - "diagnosis": 1, - "flag": 1, - "..E": 1, - "Digest": 2, - "OpenSSL": 3, - "based": 1, - "digest": 19, - "rewrite": 1, - "EVP_DigestInit": 1, - "wrapper.": 1, - "//www.openssl.org/docs/crypto/EVP_DigestInit.html": 1, - "digest.init": 3, - "usually": 1, - "algorithm": 1, - "specification.": 1, - "Anyway": 1, - "properly": 1, - "fail.": 1, - "HEX": 1, - "digest.update": 2, - ".c": 2, - "digest.final": 2, - ".d": 1, - "alg": 3, - "context": 1, - "try": 1, - "etc": 1, - "returned": 1, - "occurs": 1, - "unknown": 1, - "update": 1, - "ctx": 4, - "updates": 1, - ".ctx": 2, - ".msg": 1, - "final": 1, - "hex": 1, - "frees": 1, - "memory": 1, - "allocated": 1, - ".digest": 1, - "algorithms": 1, - "availability": 1, - "depends": 1, - "libcrypto": 1, - "configuration": 1, - "md4": 1, - "sha": 1, - "sha1": 1, - "sha224": 1, - "sha256": 1, - "sha512": 1, - "dss1": 1, - "ripemd160": 1, - "contrasting": 1, - "postconditionals": 1, - "commands": 1, - "post1": 1, - "postconditional": 3, - "purposely": 4, - "TEST": 16, - "post2": 1, - "special": 2, - "post": 1, - "condition": 1, - "illustrate": 1, - "dynamic": 1, - "scope": 1, - "triangle1": 1, - "main2": 1, - "triangle2": 1, - "PRCAAPR": 1, - "WASH": 1, - "ISC@ALTOONA": 1, - "PA/RGY": 1, - "ACCOUNT": 1, - "PROFILE": 1, - "CONT": 1, - "/9/94": 1, - "AM": 1, - "Accounts": 1, - "Receivable": 1, - "**198": 1, - "Mar": 1, - "Per": 1, - "VHA": 1, - "Directive": 1, - "modified.": 1, - "PRCATY": 2, - "DEBT": 10, - "PRCADB": 5, - "PRCA": 14, - "COUNT": 2, - "OUT": 2, - "SEL": 1, - "BILL": 11, - "BAT": 8, - "TRAN": 5, - "DXS": 1, - "DTOUT": 2, - "DIROUT": 1, - "DIRUT": 1, - "DUOUT": 1, - "ASK": 3, - "DPTNOFZY": 2, - "DPTNOFZK": 2, - "DTIME": 1, - "UPPER": 1, - "VALM1": 1, - "RCD": 1, - "DISV": 2, - "NAM": 1, - "RCFN01": 1, - "COMP": 2, - "EN1": 1, - "PRCAATR": 1, - "Y_": 3, - "PRCADB_": 1, - "HDR": 1, - "PRCAAPR1": 3, - "HDR2": 1, - "DIS": 1, - "STAT1": 2, - "_PRCATY_": 1, - "COMP1": 2, - "RCY": 5, - "COMP2": 2, - "_STAT_": 1, - "_STAT": 1, - "payments": 1, - "_TRAN": 1 - }, - "MTML": { - "<$mt:Var>": 15, - "name=": 19, - "value=": 9, - "": 1, - "op=": 8, - "setvar=": 9, - "": 1, - "<": 2, - "a": 1, - "href": 1, - "<$mt:CategoryLabel>": 1, - "remove_html=": 1, - "": 1, - "": 1, - "": 1, - "function=": 1, - "": 1, - "gt=": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 2, - "from=": 2, - "to=": 2, - "div": 1, - "class": 1, - "col_num": 1, - "": 2, - "": 1 - }, - "Makefile": { - "all": 1, - "hello": 4, - "main.o": 3, - "factorial.o": 3, - "hello.o": 3, - "g": 4, - "+": 8, - "-": 6, - "o": 1, - "main.cpp": 2, - "c": 3, - "factorial.cpp": 2, - "hello.cpp": 2, - "clean": 1, - "rm": 1, - "rf": 1, - "*o": 1, - "SHEBANG#!make": 1, - "%": 1, - "ls": 1, - "l": 1 - }, - "Markdown": { - "Tender": 1 - }, - "Mask": { - "header": 1, - "{": 10, - "img": 1, - ".logo": 1, - "src": 1, - "alt": 1, - "logo": 1, - ";": 3, - "h4": 1, - "if": 1, - "(": 3, - "currentUser": 1, - ")": 3, - ".account": 1, - "a": 1, - "href": 1, - "}": 10, - ".view": 1, - "ul": 1, - "for": 1, - "user": 1, - "index": 1, - "of": 1, - "users": 1, - "li.user": 1, - "data": 1, - "-": 3, - "id": 1, - ".name": 1, - ".count": 1, - ".date": 1, - "countdownComponent": 1, - "input": 1, - "type": 1, - "text": 1, - "dualbind": 1, - "value": 1, - "button": 1, - "x": 2, - "signal": 1, - "h5": 1, - "animation": 1, - "slot": 1, - "@model": 1, - "@next": 1, - "footer": 1, - "bazCompo": 1 - }, - "Mathematica": { - "Get": 1, - "[": 307, - "]": 286, - "Notebook": 2, - "{": 227, - "Cell": 28, - "CellGroupData": 8, - "BoxData": 19, - "RowBox": 34, - "}": 222, - "CellChangeTimes": 13, - "-": 134, - "*": 19, - "SuperscriptBox": 1, - "MultilineFunction": 1, - "None": 8, - "Open": 7, - "NumberMarks": 3, - "False": 19, - "GraphicsBox": 2, - "Hue": 5, - "LineBox": 5, - "CompressedData": 9, - "AspectRatio": 1, - "NCache": 1, - "GoldenRatio": 1, - "(": 2, - ")": 1, - "Axes": 1, - "True": 7, - "AxesLabel": 1, - "AxesOrigin": 1, - "Method": 2, - "PlotRange": 1, - "PlotRangeClipping": 1, - "PlotRangePadding": 1, - "Scaled": 10, - "WindowSize": 1, - "WindowMargins": 1, - "Automatic": 9, - "FrontEndVersion": 1, - "StyleDefinitions": 1, - "BeginPackage": 1, - ";": 42, - "PossiblyTrueQ": 3, - "usage": 22, - "PossiblyFalseQ": 2, - "PossiblyNonzeroQ": 3, - "Begin": 2, - "expr_": 4, - "Not": 6, - "TrueQ": 4, - "expr": 4, - "End": 2, - "AnyQ": 3, - "AnyElementQ": 4, - "AllQ": 2, - "AllElementQ": 2, - "AnyNonzeroQ": 2, - "AnyPossiblyNonzeroQ": 2, - "RealQ": 3, - "PositiveQ": 3, - "NonnegativeQ": 3, - "PositiveIntegerQ": 3, - "NonnegativeIntegerQ": 4, - "IntegerListQ": 5, - "PositiveIntegerListQ": 3, - "NonnegativeIntegerListQ": 3, - "IntegerOrListQ": 2, - "PositiveIntegerOrListQ": 2, - "NonnegativeIntegerOrListQ": 2, - "SymbolQ": 2, - "SymbolOrNumberQ": 2, - "cond_": 4, - "L_": 5, - "Fold": 3, - "Or": 1, - "cond": 4, - "/@": 3, - "L": 4, - "Flatten": 1, - "And": 4, - "SHEBANG#!#!=": 1, - "n_": 5, - "Im": 1, - "n": 8, - "Positive": 2, - "IntegerQ": 3, - "&&": 4, - "input_": 6, - "ListQ": 1, - "input": 11, - "MemberQ": 3, - "IntegerQ/@input": 1, - "||": 4, - "a_": 2, - "Head": 2, - "a": 3, - "Symbol": 2, - "NumericQ": 1, - "EndPackage": 1, - "NamespaceBox": 1, - "DynamicModuleBox": 1, - "Typeset": 7, - "q": 1, - "opts": 1, - "AppearanceElements": 1, - "Asynchronous": 1, - "All": 1, - "TimeConstraint": 1, - "elements": 1, - "pod1": 1, - "XMLElement": 13, - "FormBox": 4, - "TagBox": 9, - "GridBox": 2, - "PaneBox": 1, - "StyleBox": 4, - "CellContext": 5, - "TagBoxWrapper": 4, - "AstronomicalData": 1, - "Identity": 2, - "LineIndent": 4, - "LineSpacing": 2, - "GridBoxBackground": 1, - "GrayLevel": 17, - "GridBoxItemSize": 2, - "ColumnsEqual": 2, - "RowsEqual": 2, - "GridBoxDividers": 1, - "GridBoxSpacings": 2, - "GridBoxAlignment": 1, - "Left": 1, - "Baseline": 1, - "AllowScriptLevelChange": 2, - "BaselinePosition": 2, - "Center": 1, - "AbsoluteThickness": 3, - "TraditionalForm": 3, - "PolynomialForm": 1, - "#": 2, - "TraditionalOrder": 1, - "&": 2, - "pod2": 1, - "LinebreakAdjustments": 2, - "FontFamily": 1, - "UnitFontFamily": 1, - "FontSize": 1, - "Smaller": 1, - "StripOnInput": 1, - "SyntaxForm": 2, - "Dot": 2, - "ZeroWidthTimes": 1, - "pod3": 1, - "TemplateBox": 1, - "GraphicsComplexBox": 1, - "EdgeForm": 2, - "Directive": 5, - "Opacity": 2, - "GraphicsGroupBox": 2, - "PolygonBox": 3, - "RGBColor": 3, - "Dashing": 1, - "Small": 1, - "GridLines": 1, - "Dynamic": 1, - "Join": 1, - "Replace": 1, - "MousePosition": 1, - "Graphics": 1, - "Pattern": 2, - "CalculateUtilities": 5, - "GraphicsUtilities": 5, - "Private": 5, - "x": 2, - "Blank": 2, - "y": 2, - "Epilog": 1, - "CapForm": 1, - "Offset": 8, - "DynamicBox": 1, - "ToBoxes": 1, - "DynamicModule": 1, - "pt": 1, - "NearestFunction": 1, - "Do": 1, - "If": 1, - "Length": 1, - "Divisors": 1, - "Binomial": 2, - "i": 3, - "+": 2, - "Print": 1, - "Break": 1, - "Paclet": 1, - "Name": 1, - "Version": 1, - "MathematicaVersion": 1, - "Description": 1, - "Creator": 1, - "Extensions": 1, - "Language": 1, - "MainPage": 1 - }, - "Matlab": { - "function": 34, - "bicycle": 7, - "bicycle_state_space": 1, - "(": 1379, - "speed": 20, - "varargin": 25, - ")": 1380, - "%": 554, - "S": 5, - "dbstack": 1, - ";": 909, - "[": 311, - "CURRENT_DIRECTORY": 2, - "]": 311, - "fileparts": 1, - ".file": 1, - "par": 7, - "par_text_to_struct": 4, - "filesep": 14, - "...": 162, - "A": 11, - "B": 9, - "C": 13, - "D": 7, - "whipple_pull_force_abcd": 2, - "states": 7, - "{": 157, - "}": 157, - "outputs": 10, - "inputs": 14, - "defaultSettings.states": 1, - "defaultSettings.inputs": 1, - "defaultSettings.outputs": 1, - "if": 52, - "size": 11, - "userSettings": 3, - "varargin_to_structure": 2, - "else": 23, - "struct": 1, - "end": 150, - "settings": 3, - "overwrite_settings": 2, - "defaultSettings": 3, - "minStates": 2, - "sum": 2, - "ismember": 15, - "settings.states": 3, - "<": 9, - "error": 16, - "keepStates": 2, - "find": 24, - "removeStates": 1, - "for": 78, - "row": 6, - "abs": 12, - "col": 5, - "e": 14, - "-": 673, - "s": 13, - "sprintf": 11, - "removeInputs": 2, - "settings.inputs": 1, - "keepOutputs": 2, - "settings.outputs": 1, - "It": 1, - "is": 7, - "not": 3, - "possible": 1, - "to": 9, - "keep": 1, - "output": 7, - "because": 1, - "it": 1, - "depends": 1, - "on": 13, - "input": 14, - "StateName": 1, - "OutputName": 1, - "InputName": 1, - "data": 27, - "load_data": 4, - "filename": 21, - "parser": 1, - "inputParser": 1, - "parser.addRequired": 1, - "parser.addParamValue": 3, - "true": 2, - "parser.parse": 1, - "args": 1, - "parser.Results": 1, - "raw": 1, - "load": 1, - "args.directory": 1, - "iddata": 1, - "raw.theta": 1, - "raw.theta_c": 1, - "args.sampleTime": 1, - "args.detrend": 1, - "detrend": 1, - "overrideSettings": 3, - "overrideNames": 2, - "fieldnames": 5, - "defaultNames": 2, - "notGiven": 5, - "setxor": 1, - "length": 49, - "i": 338, - "settings.": 1, - "defaultSettings.": 1, - "x_T": 25, - "y_T": 17, - "vx_T": 22, - "e_T": 7, - "filter": 14, - "Integrate_FILE": 1, - "x_0": 45, - "y_0": 29, - "vx_0": 37, - "e_0": 7, - "T": 22, - "N": 9, - "mu": 73, - "options": 14, - "Integrate": 6, - "nx": 32, - "ny": 29, - "nvx": 32, - "ne": 29, - "vy_0": 22, - "zeros": 61, - "vy_T": 12, - "Look": 2, - "phisically": 2, - "meaningful": 6, - "points": 11, - "meaningless": 2, - "point": 14, - "only": 7, - "h": 19, - "waitbar": 6, - "i/nx": 2, - "j": 242, - "parfor": 5, - "k": 75, - "l": 64, - "sqrt": 14, - "*Potential": 5, - "+": 169, - "*e_0": 3, - "isreal": 8, - "ci": 9, - "t": 32, - "Y": 19, - "te": 2, - "ye": 9, - "ie": 2, - "ode45": 6, - "@f": 6, - "*": 46, - "Potential": 1, - "close": 4, - "tic": 7, - "clear": 13, - "all": 15, - "Elements": 1, - "grid": 1, - "definition": 2, - "n": 102, - "Dimensionless": 1, - "integrating": 1, - "time": 21, - "Choice": 2, - "of": 35, - "the": 14, - "mass": 2, - "parameter": 2, - "Computation": 9, - "Lagrangian": 3, - "Points": 2, - "xl1": 13, - "yl1": 12, - "xl2": 9, - "yl2": 8, - "xl3": 8, - "yl3": 8, - "xl4": 10, - "yl4": 9, - "xl5": 8, - "yl5": 8, - "Lagr": 6, - "initial": 5, - "total": 6, - "energy": 8, - "E_L1": 4, - "Omega": 7, - "C_L1": 3, - "*E_L1": 1, - "from": 2, - "Szebehely": 1, - "E": 8, - "Offset": 2, - "as": 4, - "in": 8, - "figure": 17, - "Initial": 3, - "conditions": 3, - "range": 2, - "x_0_min": 8, - "x_0_max": 8, - "vx_0_min": 8, - "vx_0_max": 8, - "ndgrid": 2, - "linspace": 14, - "*E": 2, - "*Omega": 5, - "vx_0.": 2, - "E_cin": 4, - "filtro": 15, - "ones": 6, - "E_T": 11, - "delta_E": 7, - "a": 17, - "matrix": 3, - "numbers": 2, - "integration": 9, - "steps": 2, - "each": 2, - "np": 8, - "number": 2, - "integrated": 5, - "fprintf": 18, - "Energy": 4, - "tolerance": 2, - "setting": 4, - "energy_tol": 6, - "Setting": 1, - "integrator": 2, - "RelTol": 2, - "AbsTol": 2, - "From": 1, - "Short": 1, - "odeset": 4, - "Parallel": 2, - "equations": 2, - "motion": 2, - "r1": 3, - "r2": 3, - "g": 5, - "i/n": 1, - ".": 13, - "y_0.": 2, - "./": 1, - "mu./": 1, - "&&": 13, - "Check": 6, - "real": 3, - "velocity": 2, - "and": 7, - "positive": 2, - "Kinetic": 2, - "*T": 3, - "@f_reg": 1, - "Saving": 4, - "solutions": 2, - "final": 2, - "difference": 2, - "with": 2, - "one": 3, - "conservation": 2, - "position": 2, - "interesting": 4, - "non": 2, - "sense": 2, - "bad": 4, - "t_integrazione": 3, - "toc": 5, - "filtro_1": 12, - "||": 3, - "FTLE": 14, - "dphi": 12, - "ftle": 10, - "ftle_norm": 1, - "ds_x": 1, - "/": 59, - "ds_vx": 1, - "La": 1, - "direzione": 1, - "dello": 1, - "spostamento": 1, - "la": 2, - "decide": 1, - "il": 1, - "denominatore": 1, - "TODO": 1, - "spiegarsi": 1, - "teoricamente": 1, - "come": 1, - "mai": 1, - "matrice": 1, - "pu": 1, - "essere": 1, - "ridotta": 1, - "x2": 1, - "*ds_x": 2, - "*ds_vx": 2, - "Manual": 2, - "visualize": 2, - "/abs": 3, - "*log": 2, - "max": 9, - "eig": 6, - "dphi*dphi": 1, - "tempo": 4, - "per": 5, - "integrare": 2, - ".2f": 5, - "calcolare": 2, - "var_": 2, - "_": 2, - "var_xvx_": 2, - "ode00": 2, - "_n": 2, - "num2str": 10, - "save": 2, - "nome": 2, - "y": 25, - "average": 1, - "x": 46, - "m": 44, - "|": 2, - "&": 4, - "/length": 1, - "d": 12, - "d_mean": 3, - "d_std": 3, - "normalize": 1, - "mean": 2, - "repmat": 2, - "std": 1, - "d./": 1, - "load_bikes": 2, - "bikes": 24, - "speeds": 21, - "speedNames": 12, - "gains.Benchmark.Slow": 1, - "place": 2, - "holder": 2, - "gains.Browserins.Slow": 1, - "gains.Browser.Slow": 1, - "gains.Pista.Slow": 1, - "gains.Fisher.Slow": 1, - "gains.Yellow.Slow": 1, - "gains.Yellowrev.Slow": 1, - "gains.Benchmark.Medium": 1, - "gains.Browserins.Medium": 1, - "gains.Browser.Medium": 1, - "gains.Pista.Medium": 1, - "gains.Fisher.Medium": 1, - "gains.Yellow.Medium": 1, - "gains.Yellowrev.Medium": 1, - "gains.Benchmark.Fast": 1, - "gains.Browserins.Fast": 1, - "gains.Browser.Fast": 1, - "gains.Pista.Fast": 1, - "gains.Fisher.Fast": 1, - "gains.Yellow.Fast": 1, - "gains.Yellowrev.Fast": 1, - "data.": 6, - "generate_data": 5, - "gains.": 1, - "Range": 1, - "E_0": 4, - "C_L1/2": 1, - "Y_0": 4, - "dx": 6, - "dvx": 3, - "dy": 5, - "/2": 3, - "de": 4, - "Definition": 1, - "arrays": 1, - "In": 1, - "this": 2, - "approach": 1, - "useful": 9, - "pints": 1, - "are": 1, - "stored": 1, - "v_y": 3, - "vx": 2, - "vy": 2, - "Selection": 1, - "Data": 2, - "transfer": 1, - "GPU": 3, - "x_gpu": 3, - "gpuArray": 4, - "y_gpu": 3, - "vx_gpu": 3, - "vy_gpu": 3, - "Integration": 2, - "t0": 6, - "x_f": 3, - "y_f": 3, - "vx_f": 3, - "vy_f": 3, - "arrayfun": 2, - "@RKF45_FILE_gpu": 1, - "back": 1, - "CPU": 1, - "memory": 1, - "cleaning": 1, - "gather": 4, - "Construction": 1, - "computation": 2, - "X_T": 4, - "Y_T": 4, - "VX_T": 4, - "VY_T": 3, - "Compute": 3, - "filter_ftle": 11, - "Compute_FILE_gpu": 1, - "Plot": 1, - "results": 1, - "squeeze": 1, - "pcolor": 2, - "shading": 3, - "flat": 3, - "cross_validation": 1, - "hyper_parameter": 3, - "num_data": 2, - "K": 4, - "indices": 2, - "crossvalind": 1, - "errors": 4, - "test_idx": 4, - "train_idx": 3, - "x_train": 2, - "y_train": 2, - "w": 6, - "train": 1, - "x_test": 3, - "y_test": 3, - "calc_cost": 1, - "calc_error": 2, - "delta_e": 3, - "Integrate_FTLE_Gawlick_ell": 1, - "ecc": 2, - "nu": 2, - "ecc*cos": 1, - "@f_ell": 1, - "Consider": 1, - "also": 1, - "negative": 1, - "goodness": 1, - "x_min": 3, - "x_max": 3, - "y_min": 3, - "y_max": 3, - "how": 1, - "many": 1, - "measure": 1, - "unit": 1, - "both": 1, - "ds": 1, - "x_res": 7, - "*n": 2, - "y_res": 7, - "grid_x": 3, - "grid_y": 3, - "advected_x": 12, - "advected_y": 12, - "X": 6, - "@dg": 1, - "store": 4, - "advected": 2, - "positions": 2, - "they": 2, - "would": 2, - "appear": 2, - "coords": 2, - "sigma": 6, - "compute": 2, - "Jacobian": 3, - "phi": 13, - "*ds": 4, - "eigenvalue": 2, - "*phi": 2, - "log": 2, - "lambda_max": 2, - "plot": 26, - "field": 2, - "contourf": 2, - "location": 1, - "EastOutside": 1, - "axis": 5, - "equal": 2, - "f_x_t": 2, - "inline": 1, - "grid_min": 3, - "grid_max": 3, - "grid_width": 1, - "grid_spacing": 5, - "grid_width/": 1, - "*grid_width/": 4, - "colorbar": 1, - "Yc": 5, - "plant": 4, - "parallel": 2, - "choose_plant": 4, - "p": 7, - "num": 24, - "tf": 18, - "elseif": 14, - "display": 10, - "filtfcn": 2, - "statefcn": 2, - "makeFilter": 1, - "b": 12, - "v": 12, - "@iirFilter": 1, - "@getState": 1, - "yn": 2, - "iirFilter": 1, - "xn": 4, - "vOut": 2, - "getState": 1, - "Call": 2, - "matlab_function": 5, - "which": 2, - "resides": 2, - "same": 2, - "directory": 2, - "value1": 4, - "semicolon": 2, - "at": 3, - "line": 15, - "mandatory": 2, - "suppresses": 2, - "command": 2, - "line.": 2, - "value2": 4, - "result": 5, - "disp": 8, - "Conditions": 1, - "@cross_y": 1, - "ode113": 2, - "t1": 6, - "t2": 6, - "t3": 1, - "dataPlantOne": 3, - "data.Ts": 6, - "dataAdapting": 3, - "dataPlantTwo": 3, - "guessPlantOne": 4, - "resultPlantOne": 1, - "find_structural_gains": 2, - "yh": 2, - "fit": 6, - "x0": 4, - "compare": 3, - "resultPlantOne.fit": 1, - "guessPlantTwo": 3, - "resultPlantTwo": 1, - "resultPlantTwo.fit": 1, - "kP1": 4, - "resultPlantOne.fit.par": 1, - "kP2": 3, - "resultPlantTwo.fit.par": 1, - "gainSlopeOffset": 6, - "eye": 9, - "aux.pars": 3, - "uses": 1, - "tau": 1, - "through": 1, - "wfs": 1, - "aux.timeDelay": 2, - "aux.plantFirst": 2, - "aux.plantSecond": 2, - "plantOneSlopeOffset": 3, - "plantTwoSlopeOffset": 3, - "aux.m": 3, - "aux.b": 3, - "adapting_structural_model": 2, - "aux": 3, - "mod": 3, - "idnlgrey": 1, - "pem": 1, - "create_ieee_paper_plots": 2, - "rollData": 8, - "global": 6, - "goldenRatio": 12, - "exist": 1, - "mkdir": 1, - "linestyles": 15, - "colors": 13, - "loop_shape_example": 3, - "data.Benchmark.Medium": 2, - "plot_io_roll": 3, - "open_loop_all_bikes": 1, - "handling_all_bikes": 1, - "path_plots": 1, - "var": 3, - "io": 7, - "typ": 3, - "plot_io": 1, - "phase_portraits": 2, - "eigenvalues": 2, - "bikeData": 2, - "figWidth": 24, - "figHeight": 19, - "set": 43, - "gcf": 17, - "freq": 12, - "hold": 23, - "closedLoops": 1, - "bikeData.closedLoops": 1, - "bops": 7, - "bodeoptions": 1, - "bops.FreqUnits": 1, - "strcmp": 24, - "gray": 7, - "deltaNum": 2, - "closedLoops.Delta.num": 1, - "deltaDen": 2, - "closedLoops.Delta.den": 1, - "bodeplot": 6, - "neuroNum": 2, - "neuroDen": 2, - "whichLines": 3, - "phiDotNum": 2, - "closedLoops.PhiDot.num": 1, - "phiDotDen": 2, - "closedLoops.PhiDot.den": 1, - "closedBode": 3, - "off": 10, - "opts": 4, - "getoptions": 2, - "opts.YLim": 3, - "opts.PhaseMatching": 2, - "opts.PhaseMatchingValue": 2, - "opts.Title.String": 2, - "setoptions": 2, - "lines": 17, - "findobj": 5, - "raise": 19, - "plotAxes": 22, - "curPos1": 4, - "get": 11, - "curPos2": 4, - "xLab": 8, - "legWords": 3, - "closeLeg": 2, - "legend": 7, - "axes": 9, - "db1": 4, - "text": 11, - "db2": 2, - "dArrow1": 2, - "annotation": 13, - "dArrow2": 2, - "dArrow": 2, - "pathToFile": 11, - "print": 6, - "fix_ps_linestyle": 6, - "openLoops": 1, - "bikeData.openLoops": 1, - "openLoops.Phi.num": 1, - "den": 15, - "openLoops.Phi.den": 1, - "openLoops.Psi.num": 1, - "openLoops.Psi.den": 1, - "openLoops.Y.num": 1, - "openLoops.Y.den": 1, - "openBode": 3, - "wc": 14, - "wShift": 5, - "bikeData.handlingMetric.num": 1, - "bikeData.handlingMetric.den": 1, - "mag": 4, - "phase": 2, - "bode": 5, - "metricLine": 1, - "Linewidth": 7, - "Color": 13, - "Linestyle": 6, - "Handling": 2, - "Quality": 2, - "Metric": 2, - "Frequency": 2, - "rad/s": 4, - "Level": 6, - "benchmark": 1, - "Handling.eps": 1, - "plots": 4, - "deps2": 1, - "loose": 4, - "PaperOrientation": 3, - "portrait": 3, - "PaperUnits": 3, - "inches": 3, - "PaperPositionMode": 3, - "manual": 3, - "PaperPosition": 3, - "PaperSize": 3, - "rad/sec": 1, - "Open": 1, - "Loop": 1, - "Bode": 1, - "Diagrams": 1, - "m/s": 6, - "Latex": 1, - "type": 4, - "LineStyle": 2, - "LineWidth": 2, - "Location": 2, - "Southwest": 1, - "Fontsize": 4, - "YColor": 2, - "XColor": 1, - "Position": 6, - "Xlabel": 1, - "Units": 1, - "normalized": 1, - "openBode.eps": 1, - "deps2c": 3, - "maxMag": 2, - "magnitudes": 1, - "area": 1, - "fillColors": 1, - "gca": 8, - "metricLines": 2, - ".handlingMetric.num": 1, - ".handlingMetric.den": 1, - "chil": 2, - "legLines": 1, - "Hands": 1, - "free": 1, - "@": 1, - "handling.eps": 1, - "f": 13, - "YTick": 1, - "YTickLabel": 1, - "Path": 1, - "Southeast": 1, - "Distance": 1, - "Lateral": 1, - "Deviation": 1, - "paths.eps": 1, - "like": 1, - "plot.": 1, - "names": 6, - "prettyNames": 3, - "units": 3, - "index": 6, - "variable": 10, - "data.Browser": 1, - "maxValue": 4, - "oneSpeed": 3, - "history": 7, - "oneSpeed.": 3, - "round": 1, - "pad": 10, - "yShift": 16, - "xShift": 3, - "oneSpeed.time": 2, - "oneSpeed.speed": 2, - "distance": 6, - "xAxis": 12, - "xData": 3, - "textX": 3, - "ylim": 2, - "ticks": 4, - "xlabel": 8, - "xLimits": 6, - "xlim": 8, - "loc": 3, - "l1": 2, - "l2": 2, - "first": 3, - "ylabel": 4, - "box": 4, - "x_r": 6, - "y_r": 6, - "w_r": 5, - "h_r": 5, - "rectangle": 2, - "w_r/2": 4, - "h_r/2": 4, - "x_a": 10, - "y_a": 10, - "w_a": 7, - "h_a": 5, - "ax": 15, - "rollData.speed": 1, - "rollData.time": 1, - "path": 3, - "rollData.path": 1, - "frontWheel": 3, - "rollData.outputs": 3, - "rollAngle": 4, - "steerAngle": 4, - "rollTorque": 4, - "rollData.inputs": 1, - "subplot": 3, - "h1": 5, - "h2": 5, - "plotyy": 3, - "inset": 3, - "gainChanges": 2, - "loopNames": 4, - "xy": 7, - "xySource": 7, - "xlabels": 2, - "ylabels": 2, - "legends": 3, - "floatSpec": 3, - "twentyPercent": 1, - "nominalData": 1, - "nominalData.": 2, - "bikeData.": 2, - "twentyPercent.": 2, - "leg1": 2, - "bikeData.modelPar.": 1, - "leg2": 2, - "twentyPercent.modelPar.": 1, - "eVals": 5, - "pathToParFile": 2, - "str": 2, - "eigenValues": 1, - "zeroIndices": 3, - "maxEvals": 4, - "maxLine": 7, - "minLine": 4, - "min": 1, - "speedInd": 12, - "write_gains": 1, - "gains": 12, - "contents": 1, - "importdata": 1, - "speedsInFile": 5, - "contents.data": 2, - "gainsInFile": 3, - "sameSpeedIndices": 5, - "allGains": 4, - "allSpeeds": 4, - "order": 11, - "sort": 1, - "fid": 7, - "fopen": 2, - "contents.colheaders": 1, - "fclose": 2, - "wnm": 11, - "zetanm": 5, - "ss": 3, - "data.modelPar.A": 1, - "data.modelPar.B": 1, - "data.modelPar.C": 1, - "data.modelPar.D": 1, - "bicycle.StateName": 2, - "bicycle.OutputName": 4, - "bicycle.InputName": 2, - "analytic": 3, - "system_state_space": 2, - "numeric": 2, - "data.system.A": 1, - "data.system.B": 1, - "data.system.C": 1, - "data.system.D": 1, - "numeric.StateName": 1, - "data.bicycle.states": 1, - "numeric.InputName": 1, - "data.bicycle.inputs": 1, - "numeric.OutputName": 1, - "data.bicycle.outputs": 1, - "pzplot": 1, - "ss2tf": 2, - "analytic.A": 3, - "analytic.B": 1, - "analytic.C": 1, - "analytic.D": 1, - "mine": 1, - "data.forceTF.PhiDot.num": 1, - "data.forceTF.PhiDot.den": 1, - "numeric.A": 2, - "numeric.B": 1, - "numeric.C": 1, - "numeric.D": 1, - "whipple_pull_force_ABCD": 1, - "bottomRow": 1, - "prod": 3, - "value": 2, - "isterminal": 2, - "direction": 2, - "FIXME": 1, - "largest": 1, - "primary": 1, - "guess.plantOne": 3, - "guess.plantTwo": 2, - "plantNum.plantOne": 2, - "plantNum.plantTwo": 2, - "sections": 13, - "secData.": 1, - "guess.": 2, - "result.": 2, - ".fit.par": 1, - "currentGuess": 2, - ".*": 2, - "warning": 1, - "randomGuess": 1, - "The": 6, - "self": 2, - "validation": 2, - "VAF": 2, - "f.": 2, - "data/": 1, - "results.mat": 1, - "guess": 1, - "plantNum": 1, - "plots/": 1, - ".png": 1, - "task": 1, - "closed": 1, - "loop": 1, - "system": 2, - "u.": 1, - "gain": 1, - "guesses": 1, - "k1": 4, - "k2": 3, - "k3": 3, - "k4": 4, - "identified": 1, - ".vaf": 1, - "name": 4, - "convert_variable": 1, - "coordinates": 6, - "get_variables": 2, - "columns": 4, - "arguments": 7, - "ischar": 1, - "options.": 1, - "clc": 1, - "textscan": 1, - "strtrim": 2, - "vals": 2, - "regexp": 1, - "par.": 1, - "str2num": 1, - "lane_change": 1, - "start": 4, - "width": 3, - "slope": 3, - "pathLength": 3, - "single": 1, - "double": 1, - "Double": 1, - "lane": 4, - "change": 1, - "needs": 1, - "lane.": 1, - "laneLength": 4, - "startOfSlope": 3, - "endOfSlope": 1, - "<=>": 1, - "1": 1, - "downSlope": 3, - "c1": 5, - "roots": 3, - "*mu": 6, - "c2": 5, - "c3": 3, - "Earth": 2, - "Moon": 2, - "C_star": 1, - "C/2": 1, - "orbit": 1, - "Y0": 6, - "y0": 2, - "vx0": 2, - "vy0": 2, - "l0": 1, - "delta_E0": 1, - "Hill": 1, - "Edgecolor": 1, - "none": 1, - "ok": 2, - "sg": 1, - "sr": 1, - "tspan": 7, - "arg1": 1, - "arg": 2, - "RK4_par": 1, - "RK4": 3, - "z": 3, - "*vx_0": 1, - "u": 3, - "Yp": 2, - "human": 1, - "Ys": 1, - "feedback": 1, - "tf2ss": 1, - "Ys.num": 1, - "Ys.den": 1, - "classdef": 1, - "matlab_class": 2, - "properties": 1, - "R": 1, - "G": 1, - "methods": 1, - "obj": 2, - "r": 2, - "obj.R": 2, - "obj.G": 2, - "obj.B": 2, - "enumeration": 1, - "red": 1, - "green": 1, - "blue": 1, - "cyan": 1, - "magenta": 1, - "yellow": 1, - "black": 1, - "white": 1, - "fun": 5, - "th": 1, - "Runge": 1, - "Kutta": 1, - "dim": 2, - "while": 1, - "h/2": 2, - "k1*h/2": 1, - "k2*h/2": 1, - "h*k3": 1, - "h/6*": 1, - "*k2": 1, - "*k3": 1, - "ret": 3, - "Transforming": 1, - "into": 1, - "Hamiltonian": 1, - "variables": 2, - "px_0": 2, - "py_0": 2, - "px_T": 4, - "py_T": 4, - "inf": 1, - "@cr3bp_jac": 1, - "@fH": 1, - "EnergyH": 1, - "t_integr": 1, - "Back": 1, - "Inf": 1, - "_e": 1, - "_H": 1 - }, - "Maven POM": { - "": 1, - "version=": 1, - "encoding=": 1, - "": 1, - "xmlns=": 1, - "xmlns": 1, - "xsi=": 1, - "xsi": 1, - "schemaLocation=": 1, - "": 1, - "": 1, - "": 28, - "renpengben": 1, - "": 28, - "": 28, - "spring4mvc": 3, - "-": 36, - "jpa": 4, - "": 28, - "": 1, - "war": 1, - "": 1, - "": 26, - "SNAPSHOT": 1, - "": 26, - "": 1, - "Maven": 1, - "Webapp": 1, - "": 1, - "": 1, - "https": 1, - "//renpengben.github.io": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "UTF": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "RELEASE": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "_3": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Final": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 24, - "junit": 4, - "{": 24, - "junit.version": 1, - "}": 24, - "": 4, - "test": 3, - "": 4, - "": 24, - "org.slf4j": 2, - "slf4j": 2, - "api": 1, - "slf4j.version": 2, - "log4j12": 1, - "log4j": 2, - "log4j.version": 1, - "org.springframework": 13, - "spring": 14, - "core": 2, - "spring.version": 13, - "": 2, - "": 2, - "commons": 2, - "logging": 2, - "": 2, - "": 2, - "beans": 1, - "context": 2, - "aop": 1, - "expression": 1, - "tx": 1, - "aspects": 1, - "support": 1, - "jdbc": 1, - "orm": 1, - "web": 1, - "webmvc": 1, - "org.springframework.data": 1, - "data": 1, - "spring.data.jpa.version": 1, - "dep": 1, - "cglib": 2, - "nodep": 1, - "cglib.version": 1, - "org.hibernate": 3, - "hibernate": 4, - "hibernate.version": 2, - "entitymanager": 1, - "validator": 1, - "validator.version": 1, - "compile": 1, - "mysql": 2, - "connector": 1, - "java": 1, - "mysql.version": 1, - "runtime": 1, - "com.alibaba": 1, - "druid": 2, - "version": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "org.apache.maven.plugins": 1, - "maven": 1, - "compiler": 1, - "plugin": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1 - }, - "Max": { - "max": 1, - "v2": 1, - ";": 39, - "#N": 2, - "vpatcher": 1, - "#P": 33, - "toggle": 1, - "button": 4, - "window": 2, - "setfont": 1, - "Verdana": 1, - "linecount": 1, - "newex": 8, - "r": 1, - "jojo": 2, - "#B": 2, - "color": 2, - "s": 1, - "route": 1, - "append": 1, - "toto": 1, - "%": 1, - "counter": 2, - "#X": 1, - "flags": 1, - "newobj": 1, - "metro": 1, - "t": 2, - "message": 2, - "Goodbye": 1, - "World": 2, - "Hello": 1, - "connect": 13, - "fasten": 1, - "pop": 1, - "{": 126, - "}": 126, - "[": 163, - "]": 163 - }, - "MediaWiki": { - "Overview": 1, - "The": 17, - "GDB": 15, - "Tracepoint": 4, - "Analysis": 1, - "feature": 3, - "is": 9, - "an": 3, - "extension": 1, - "to": 12, - "the": 72, - "Tracing": 3, - "and": 20, - "Monitoring": 1, - "Framework": 1, - "that": 4, - "allows": 2, - "visualization": 1, - "analysis": 1, - "of": 8, - "C/C": 10, - "+": 20, - "tracepoint": 5, - "data": 5, - "collected": 2, - "by": 10, - "stored": 1, - "a": 12, - "log": 1, - "file.": 1, - "Getting": 1, - "Started": 1, - "can": 9, - "be": 18, - "installed": 2, - "from": 8, - "Eclipse": 1, - "update": 2, - "site": 1, - "selecting": 1, - ".": 8, - "requires": 1, - "version": 1, - "or": 8, - "later": 1, - "on": 3, - "local": 1, - "host.": 1, - "executable": 3, - "program": 1, - "must": 3, - "found": 1, - "in": 15, - "path.": 1, - "Trace": 9, - "Perspective": 1, - "To": 1, - "open": 1, - "perspective": 2, - "select": 5, - "includes": 1, - "following": 1, - "views": 2, - "default": 2, - "*": 6, - "This": 7, - "view": 7, - "shows": 7, - "projects": 1, - "workspace": 2, - "used": 1, - "create": 1, - "manage": 1, - "projects.": 1, - "running": 1, - "Postmortem": 5, - "Debugger": 4, - "instances": 1, - "displays": 2, - "thread": 1, - "stack": 2, - "trace": 17, - "associated": 1, - "with": 4, - "tracepoint.": 3, - "status": 1, - "debugger": 1, - "navigation": 1, - "records.": 1, - "console": 1, - "output": 1, - "Debugger.": 1, - "editor": 7, - "area": 2, - "contains": 1, - "editors": 1, - "when": 1, - "opened.": 1, - "[": 11, - "Image": 2, - "images/GDBTracePerspective.png": 1, - "]": 11, - "Collecting": 2, - "Data": 4, - "outside": 2, - "scope": 1, - "this": 5, - "feature.": 1, - "It": 1, - "done": 2, - "command": 1, - "line": 2, - "using": 3, - "CDT": 3, - "debug": 1, - "component": 1, - "within": 1, - "Eclipse.": 1, - "See": 1, - "FAQ": 2, - "entry": 2, - "#References": 2, - "|": 2, - "References": 3, - "section.": 2, - "Importing": 2, - "Some": 1, - "information": 1, - "section": 1, - "redundant": 1, - "LTTng": 3, - "User": 3, - "Guide.": 1, - "For": 1, - "further": 1, - "details": 1, - "see": 1, - "Guide": 2, - "Creating": 1, - "Project": 1, - "In": 5, - "right": 3, - "-": 8, - "click": 8, - "context": 4, - "menu.": 4, - "dialog": 1, - "name": 2, - "your": 2, - "project": 2, - "tracing": 1, - "folder": 5, - "Browse": 2, - "enter": 2, - "source": 2, - "directory.": 1, - "Select": 1, - "file": 6, - "tree.": 1, - "Optionally": 1, - "set": 1, - "type": 2, - "Click": 1, - "Alternatively": 1, - "drag": 1, - "&": 1, - "dropped": 1, - "any": 2, - "external": 1, - "manager.": 1, - "Selecting": 2, - "Type": 1, - "Right": 2, - "imported": 1, - "choose": 2, - "step": 1, - "omitted": 1, - "if": 1, - "was": 2, - "selected": 3, - "at": 3, - "import.": 1, - "will": 6, - "updated": 2, - "icon": 1, - "images/gdb_icon16.png": 1, - "Executable": 1, - "created": 1, - "identified": 1, - "so": 2, - "launched": 1, - "properly.": 1, - "path": 1, - "press": 1, - "recognized": 1, - "as": 1, - "executable.": 1, - "Visualizing": 1, - "Opening": 1, - "double": 1, - "it": 3, - "opened": 2, - "Events": 5, - "instance": 1, - "launched.": 1, - "If": 2, - "available": 1, - "code": 1, - "corresponding": 1, - "first": 1, - "record": 2, - "also": 2, - "editor.": 2, - "At": 1, - "point": 1, - "recommended": 1, - "relocate": 1, - "not": 1, - "hidden": 1, - "Viewing": 1, - "table": 1, - "shown": 1, - "one": 1, - "row": 1, - "for": 2, - "each": 1, - "record.": 2, - "column": 6, - "sequential": 1, - "number.": 1, - "number": 2, - "assigned": 1, - "collection": 1, - "time": 2, - "method": 1, - "where": 1, - "set.": 1, - "run": 1, - "Searching": 1, - "filtering": 1, - "entering": 1, - "regular": 1, - "expression": 1, - "header.": 1, - "Navigating": 1, - "records": 1, - "keyboard": 1, - "mouse.": 1, - "show": 1, - "current": 1, - "navigated": 1, - "clicking": 1, - "buttons.": 1, - "updated.": 1, - "http": 4, - "//wiki.eclipse.org/index.php/Linux_Tools_Project/LTTng2/User_Guide": 1, - "//wiki.eclipse.org/CDT/User/FAQ#How_can_I_trace_my_application_using_C.2FC.2B.2B_Tracepoints.3F": 1, - "How": 1, - "I": 1, - "my": 1, - "application": 1, - "Tracepoints": 1, - "Updating": 1, - "Document": 1, - "document": 2, - "maintained": 1, - "collaborative": 1, - "wiki.": 1, - "you": 1, - "wish": 1, - "modify": 1, - "please": 1, - "visit": 1, - "//wiki.eclipse.org/index.php/Linux_Tools_Project/GDB_Tracepoint_Analysis/User_Guide": 1, - "//wiki.eclipse.org/Linux_Tools_Project/GDB_Tracepoint_Analysis/User_Guide": 1 - }, - "Mercury": { - "%": 416, - "-": 6967, - "module": 46, - "rot13_ralph.": 1, - "interface.": 13, - "import_module": 126, - "io.": 8, - "pred": 255, - "main": 15, - "(": 3351, - "io__state": 4, - "di": 54, - "uo": 58, - ")": 3351, - "is": 246, - "det.": 184, - "implementation.": 12, - "int": 129, - "require.": 6, - "io__read_byte": 1, - "Result": 4, - "{": 27, - "ok": 3, - "X": 9, - "}": 28, - "io__write_byte": 1, - "rot13": 11, - ";": 913, - "eof": 6, - "error": 7, - "ErrNo": 2, - "io__error_message": 2, - ".": 610, - "func": 24, - "int.": 4, - "if": 15, - "z": 1, - "then": 3, - "Rot13": 2, - "A": 14, - "<": 14, - "else": 8, - "C": 34, - "+": 127, - "rem": 1, - "libs.options.": 3, - "char.": 1, - "getopt_io.": 1, - "set.": 4, - "short_option": 36, - "char": 10, - "in": 510, - "option": 9, - "out": 337, - "semidet.": 10, - "long_option": 241, - "string": 115, - "option_defaults": 2, - "option_data": 2, - "nondet.": 1, - "special_handler": 1, - "special_data": 1, - "option_table": 5, - "maybe_option_table": 3, - "inconsequential_options": 1, - "set": 16, - "options_help": 1, - "io": 6, - "type": 57, - "option_table_add_mercury_library_directory": 1, - "option_table.": 2, - "option_table_add_search_library_files_directory": 1, - "quote_arg": 1, - "string.": 7, - "inhibit_warnings": 4, - "inhibit_accumulator_warnings": 3, - "halt_at_warn": 3, - "halt_at_syntax_errors": 3, - "halt_at_auto_parallel_failure": 3, - "warn_singleton_vars": 3, - "warn_overlapping_scopes": 3, - "warn_det_decls_too_lax": 3, - "warn_inferred_erroneous": 3, - "warn_nothing_exported": 3, - "warn_unused_args": 3, - "warn_interface_imports": 3, - "warn_missing_opt_files": 3, - "warn_missing_trans_opt_files": 3, - "warn_missing_trans_opt_deps": 3, - "warn_non_contiguous_clauses": 3, - "warn_non_contiguous_foreign_procs": 3, - "warn_non_stratification": 3, - "warn_unification_cannot_succeed": 3, - "warn_simple_code": 3, - "warn_duplicate_calls": 3, - "warn_missing_module_name": 3, - "warn_wrong_module_name": 3, - "warn_smart_recompilation": 3, - "warn_undefined_options_variables": 3, - "warn_non_tail_recursion": 3, - "warn_target_code": 3, - "warn_up_to_date": 3, - "warn_stubs": 3, - "warn_dead_procs": 3, - "warn_table_with_inline": 3, - "warn_non_term_special_preds": 3, - "warn_known_bad_format_calls": 3, - "warn_unknown_format_calls": 3, - "warn_obsolete": 3, - "warn_insts_without_matching_type": 3, - "warn_unused_imports": 3, - "inform_ite_instead_of_switch": 3, - "warn_unresolved_polymorphism": 3, - "warn_suspicious_foreign_procs": 3, - "warn_state_var_shadowing": 3, - "inform_inferred": 3, - "inform_inferred_types": 3, - "inform_inferred_modes": 3, - "verbose": 4, - "very_verbose": 4, - "verbose_errors": 4, - "verbose_recompilation": 3, - "find_all_recompilation_reasons": 3, - "verbose_make": 3, - "verbose_commands": 3, - "output_compile_error_lines": 3, - "report_cmd_line_args": 3, - "report_cmd_line_args_in_doterr": 3, - "statistics": 4, - "detailed_statistics": 3, - "proc_size_statistics": 3, - "debug_types": 4, - "debug_modes": 4, - "debug_modes_statistics": 3, - "debug_modes_minimal": 3, - "debug_modes_verbose": 3, - "debug_modes_pred_id": 3, - "debug_dep_par_conj": 3, - "debug_det": 4, - "debug_code_gen_pred_id": 3, - "debug_opt": 3, - "debug_term": 4, - "term": 10, - "constraint": 2, - "termination": 3, - "analysis": 1, - "debug_opt_pred_id": 3, - "debug_opt_pred_name": 3, - "debug_pd": 3, - "pd": 1, - "partial": 1, - "deduction/deforestation": 1, - "debug_il_asm": 3, - "il_asm": 1, - "IL": 2, - "generation": 1, - "via": 1, - "asm": 1, - "debug_liveness": 3, - "debug_stack_opt": 3, - "debug_make": 3, - "debug_closure": 3, - "debug_trail_usage": 3, - "debug_mode_constraints": 3, - "debug_intermodule_analysis": 3, - "debug_mm_tabling_analysis": 3, - "debug_indirect_reuse": 3, - "debug_type_rep": 3, - "make_short_interface": 4, - "make_interface": 5, - "make_private_interface": 4, - "make_optimization_interface": 5, - "make_transitive_opt_interface": 5, - "make_analysis_registry": 3, - "make_xml_documentation": 5, - "generate_source_file_mapping": 4, - "generate_dependency_file": 3, - "generate_dependencies": 4, - "generate_module_order": 3, - "generate_standalone_interface": 3, - "convert_to_mercury": 6, - "typecheck_only": 4, - "errorcheck_only": 4, - "target_code_only": 10, - "compile_only": 4, - "compile_to_shared_lib": 3, - "output_grade_string": 3, - "output_link_command": 3, - "output_shared_lib_link_command": 3, - "output_libgrades": 3, - "output_cc": 3, - "output_c_compiler_type": 4, - "output_csharp_compiler_type": 3, - "output_cflags": 3, - "output_library_link_flags": 3, - "output_grade_defines": 3, - "output_c_include_directory_flags": 4, - "smart_recompilation": 3, - "generate_item_version_numbers": 2, - "generate_mmc_make_module_dependencies": 4, - "assume_gmake": 3, - "trace_level": 4, - "trace_optimized": 4, - "trace_prof": 3, - "trace_table_io": 3, - "trace_table_io_only_retry": 3, - "trace_table_io_states": 3, - "trace_table_io_require": 3, - "trace_table_io_all": 3, - "trace_goal_flags": 3, - "prof_optimized": 4, - "exec_trace_tail_rec": 3, - "suppress_trace": 3, - "force_disable_tracing": 3, - "delay_death": 3, - "delay_death_max_vars": 3, - "stack_trace_higher_order": 3, - "force_disable_ssdebug": 3, - "generate_bytecode": 3, - "line_numbers": 4, - "auto_comments": 4, - "frameopt_comments": 3, - "max_error_line_width": 3, - "show_dependency_graph": 3, - "imports_graph": 3, - "dump_trace_counts": 3, - "dump_hlds": 5, - "dump_hlds_pred_id": 3, - "dump_hlds_pred_name": 3, - "dump_hlds_alias": 4, - "dump_hlds_options": 3, - "dump_hlds_inst_limit": 3, - "dump_hlds_file_suffix": 3, - "dump_same_hlds": 3, - "dump_mlds": 4, - "verbose_dump_mlds": 4, - "mode_constraints": 3, - "simple_mode_constraints": 3, - "prop_mode_constraints": 4, - "benchmark_modes": 3, - "benchmark_modes_repeat": 3, - "sign_assembly": 3, - "separate_assemblies": 3, - "reorder_conj": 3, - "reorder_disj": 3, - "fully_strict": 3, - "strict_sequential": 3, - "allow_stubs": 3, - "infer_types": 3, - "infer_modes": 3, - "infer_det": 4, - "infer_all": 3, - "type_inference_iteration_limit": 3, - "mode_inference_iteration_limit": 3, - "event_set_file_name": 3, - "grade": 4, - "target": 14, - "il": 5, - "il_only": 4, - "compile_to_c": 4, - "c": 1, - "java": 35, - "java_only": 4, - "csharp": 6, - "csharp_only": 4, - "x86_64": 6, - "x86_64_only": 4, - "erlang": 6, - "erlang_only": 4, - "exec_trace": 3, - "decl_debug": 3, - "profiling": 5, - "profile_time": 5, - "profile_calls": 6, - "time_profiling": 3, - "memory_profiling": 3, - "profile_mem": 1, - "deep_profiling": 3, - "profile_deep": 4, - "profile_memory": 3, - "use_activation_counts": 3, - "pre_prof_transforms_simplify": 3, - "pre_implicit_parallelism_simplify": 3, - "coverage_profiling": 3, - "coverage_profiling_via_calls": 3, - "coverage_profiling_static": 3, - "profile_deep_coverage_after_goal": 3, - "profile_deep_coverage_branch_ite": 3, - "profile_deep_coverage_branch_switch": 3, - "profile_deep_coverage_branch_disj": 3, - "profile_deep_coverage_use_portcounts": 3, - "profile_deep_coverage_use_trivial": 2, - "profile_for_feedback": 2, - "use_zeroing_for_ho_cycles": 2, - "use_lots_of_ho_specialization": 2, - "deep_profile_tail_recursion": 2, - "record_term_sizes_as_words": 2, - "record_term_sizes_as_cells": 2, - "experimental_complexity": 2, - "gc": 2, - "parallel": 3, - "threadscope": 2, - "use_trail": 3, - "trail_segments": 2, - "use_minimal_model_stack_copy": 2, - "use_minimal_model_own_stacks": 2, - "minimal_model_debug": 2, - "single_prec_float": 2, - "type_layout": 2, - "maybe_thread_safe_opt": 2, - "extend_stacks_when_needed": 2, - "stack_segments": 2, - "use_regions": 2, - "use_alloc_regions": 2, - "use_regions_debug": 2, - "use_regions_profiling": 2, - "source_to_source_debug": 5, - "ssdb_trace_level": 3, - "link_ssdb_libs": 4, - "tags": 2, - "num_tag_bits": 2, - "num_reserved_addresses": 2, - "num_reserved_objects": 2, - "bits_per_word": 2, - "bytes_per_word": 2, - "conf_low_tag_bits": 2, - "unboxed_float": 3, - "unboxed_enums": 2, - "unboxed_no_tag_types": 2, - "sync_term_size": 2, - "words": 1, - "gcc_non_local_gotos": 3, - "gcc_global_registers": 2, - "asm_labels": 3, - "pic_reg": 2, - "use_float_registers": 5, - "highlevel_code": 3, - "highlevel_data": 2, - "gcc_nested_functions": 2, - "det_copy_out": 2, - "nondet_copy_out": 2, - "put_commit_in_own_func": 2, - "put_nondet_env_on_heap": 2, - "verifiable_code": 2, - "il_refany_fields": 2, - "il_funcptr_types": 2, - "il_byref_tailcalls": 2, - "backend_foreign_languages": 2, - "stack_trace": 2, - "basic_stack_layout": 2, - "agc_stack_layout": 2, - "procid_stack_layout": 2, - "trace_stack_layout": 2, - "body_typeinfo_liveness": 4, - "can_compare_constants_as_ints": 2, - "pretest_equality_cast_pointers": 2, - "can_compare_compound_values": 2, - "lexically_order_constructors": 2, - "mutable_always_boxed": 2, - "delay_partial_instantiations": 2, - "allow_defn_of_builtins": 2, - "special_preds": 2, - "type_ctor_info": 2, - "type_ctor_layout": 2, - "type_ctor_functors": 2, - "new_type_class_rtti": 2, - "rtti_line_numbers": 2, - "disable_minimal_model_stack_copy_pneg": 2, - "disable_minimal_model_stack_copy_cut": 2, - "use_minimal_model_stack_copy_pneg": 2, - "use_minimal_model_stack_copy_cut": 3, - "disable_trail_ops": 3, - "size_region_ite_fixed": 2, - "size_region_disj_fixed": 2, - "size_region_semi_disj_fixed": 1, - "size_region_commit_fixed": 2, - "size_region_ite_protect": 2, - "size_region_ite_snapshot": 2, - "size_region_semi_disj_protect": 2, - "size_region_disj_snapshot": 2, - "size_region_commit_entry": 2, - "solver_type_auto_init": 2, - "allow_multi_arm_switches": 2, - "type_check_constraints": 2, - "allow_argument_packing": 2, - "low_level_debug": 2, - "table_debug": 2, - "trad_passes": 2, - "parallel_liveness": 2, - "parallel_code_gen": 2, - "polymorphism": 2, - "reclaim_heap_on_failure": 2, - "reclaim_heap_on_semidet_failure": 2, - "reclaim_heap_on_nondet_failure": 2, - "have_delay_slot": 2, - "num_real_r_regs": 2, - "num_real_f_regs": 2, - "num_real_r_temps": 2, - "num_real_f_temps": 2, - "max_jump_table_size": 2, - "max_specialized_do_call_closure": 2, - "max_specialized_do_call_class_method": 2, - "compare_specialization": 2, - "should_pretest_equality": 2, - "fact_table_max_array_size": 2, - "fact_table_hash_percent_full": 2, - "gcc_local_labels": 2, - "prefer_switch": 2, - "opt_no_return_calls": 3, - "opt_level": 3, - "opt_level_number": 2, - "opt_space": 2, - "Default": 3, - "to": 16, - "optimize": 3, - "time.": 1, - "intermodule_optimization": 2, - "read_opt_files_transitively": 2, - "use_opt_files": 2, - "use_trans_opt_files": 2, - "transitive_optimization": 2, - "intermodule_analysis": 2, - "analysis_repeat": 2, - "analysis_file_cache": 2, - "allow_inlining": 2, - "inlining": 2, - "inline_simple": 2, - "inline_builtins": 2, - "inline_single_use": 2, - "inline_call_cost": 2, - "inline_compound_threshold": 2, - "inline_simple_threshold": 2, - "inline_vars_threshold": 2, - "intermod_inline_simple_threshold": 2, - "from_ground_term_threshold": 2, - "enable_const_struct": 2, - "common_struct": 2, - "common_struct_preds": 2, - "common_goal": 2, - "constraint_propagation": 2, - "local_constraint_propagation": 2, - "optimize_unused_args": 2, - "intermod_unused_args": 2, - "optimize_higher_order": 2, - "higher_order_size_limit": 2, - "higher_order_arg_limit": 2, - "unneeded_code": 2, - "unneeded_code_copy_limit": 2, - "unneeded_code_debug": 2, - "unneeded_code_debug_pred_name": 2, - "type_specialization": 2, - "user_guided_type_specialization": 2, - "introduce_accumulators": 2, - "optimize_constructor_last_call_accumulator": 2, - "optimize_constructor_last_call_null": 3, - "optimize_constructor_last_call": 2, - "optimize_duplicate_calls": 2, - "constant_propagation": 2, - "excess_assign": 2, - "optimize_format_calls": 2, - "optimize_saved_vars_const": 2, - "optimize_saved_vars_cell": 2, - "optimize_saved_vars_cell_loop": 2, - "optimize_saved_vars_cell_full_path": 2, - "optimize_saved_vars_cell_on_stack": 2, - "optimize_saved_vars_cell_candidate_headvars": 2, - "optimize_saved_vars_cell_cv_store_cost": 2, - "optimize_saved_vars_cell_cv_load_cost": 2, - "optimize_saved_vars_cell_fv_store_cost": 2, - "optimize_saved_vars_cell_fv_load_cost": 2, - "optimize_saved_vars_cell_op_ratio": 2, - "optimize_saved_vars_cell_node_ratio": 2, - "optimize_saved_vars_cell_all_path_node_ratio": 2, - "optimize_saved_vars_cell_include_all_candidates": 2, - "optimize_saved_vars": 2, - "loop_invariants": 2, - "delay_construct": 2, - "follow_code": 2, - "optimize_dead_procs": 2, - "deforestation": 2, - "deforestation_depth_limit": 2, - "deforestation_cost_factor": 2, - "deforestation_vars_threshold": 2, - "deforestation_size_threshold": 2, - "analyse_trail_usage": 2, - "optimize_trail_usage": 3, - "optimize_region_ops": 3, - "analyse_mm_tabling": 2, - "untuple": 2, - "tuple": 2, - "tuple_trace_counts_file": 2, - "tuple_costs_ratio": 2, - "tuple_min_args": 2, - "inline_par_builtins": 2, - "always_specialize_in_dep_par_conjs": 2, - "allow_some_paths_only_waits": 2, - "region_analysis": 3, - "structure_sharing_analysis": 2, - "structure_sharing_widening": 2, - "structure_reuse_analysis": 2, - "structure_reuse_constraint": 2, - "structure_reuse_constraint_arg": 2, - "structure_reuse_max_conditions": 2, - "structure_reuse_repeat": 2, - "structure_reuse_free_cells": 2, - "termination_check": 2, - "verbose_check_termination": 2, - "termination_single_args": 2, - "termination_norm": 2, - "termination_error_limit": 2, - "termination_path_limit": 2, - "termination2": 2, - "check_termination2": 2, - "verbose_check_termination2": 2, - "termination2_norm": 2, - "widening_limit": 2, - "arg_size_analysis_only": 2, - "propagate_failure_constrs": 2, - "term2_maximum_matrix_size": 2, - "analyse_exceptions": 2, - "analyse_closures": 2, - "smart_indexing": 2, - "dense_switch_req_density": 2, - "lookup_switch_req_density": 2, - "dense_switch_size": 2, - "lookup_switch_size": 2, - "string_hash_switch_size": 2, - "string_binary_switch_size": 2, - "tag_switch_size": 2, - "try_switch_size": 2, - "binary_switch_size": 2, - "switch_single_rec_base_first": 2, - "switch_multi_rec_base_first": 2, - "static_ground_cells": 3, - "static_ground_floats": 3, - "static_code_addresses": 3, - "use_atomic_cells": 2, - "middle_rec": 2, - "simple_neg": 2, - "allow_hijacks": 3, - "optimize_tailcalls": 2, - "optimize_initializations": 2, - "eliminate_local_vars": 2, - "generate_trail_ops_inline": 2, - "common_data": 2, - "common_layout_data": 2, - "Also": 1, - "used": 2, - "for": 8, - "MLDS": 2, - "optimizations.": 1, - "optimize_peep": 2, - "optimize_peep_mkword": 2, - "optimize_jumps": 2, - "optimize_fulljumps": 2, - "pessimize_tailcalls": 2, - "checked_nondet_tailcalls": 2, - "use_local_vars": 2, - "local_var_access_threshold": 2, - "standardize_labels": 2, - "optimize_labels": 2, - "optimize_dups": 2, - "optimize_proc_dups": 2, - "optimize_frames": 2, - "optimize_delay_slot": 2, - "optimize_reassign": 2, - "optimize_repeat": 2, - "layout_compression_limit": 2, - "use_macro_for_redo_fail": 2, - "emit_c_loops": 2, - "procs_per_c_function": 3, - "everything_in_one_c_function": 2, - "local_thread_engine_base": 2, - "erlang_switch_on_strings_as_atoms": 2, - "target_debug": 2, - "cc": 2, - "cflags": 2, - "quoted_cflag": 2, - "c_include_directory": 2, - "c_optimize": 2, - "ansi_c": 2, - "inline_alloc": 2, - "gcc_flags": 2, - "quoted_gcc_flag": 2, - "clang_flags": 2, - "quoted_clang_flag": 2, - "msvc_flags": 2, - "quoted_msvc_flag": 2, - "cflags_for_warnings": 2, - "cflags_for_optimization": 2, - "cflags_for_ansi": 2, - "cflags_for_regs": 2, - "cflags_for_gotos": 2, - "cflags_for_threads": 2, - "cflags_for_debug": 2, - "cflags_for_pic": 2, - "c_flag_to_name_object_file": 2, - "object_file_extension": 2, - "pic_object_file_extension": 2, - "link_with_pic_object_file_extension": 2, - "c_compiler_type": 2, - "csharp_compiler_type": 2, - "java_compiler": 2, - "java_interpreter": 2, - "java_flags": 2, - "quoted_java_flag": 2, - "java_classpath": 2, - "java_object_file_extension": 2, - "il_assembler": 2, - "ilasm_flags": 2, - "quoted_ilasm_flag": 2, - "dotnet_library_version": 2, - "support_ms_clr": 2, - "support_rotor_clr": 2, - "csharp_compiler": 2, - "csharp_flags": 2, - "quoted_csharp_flag": 2, - "cli_interpreter": 2, - "erlang_compiler": 2, - "erlang_interpreter": 2, - "erlang_flags": 2, - "quoted_erlang_flag": 2, - "erlang_include_directory": 2, - "erlang_object_file_extension": 2, - "erlang_native_code": 2, - "erlang_inhibit_trivial_warnings": 2, - "output_file_name": 3, - "ld_flags": 2, - "quoted_ld_flag": 2, - "ld_libflags": 2, - "quoted_ld_libflag": 2, - "link_library_directories": 3, - "runtime_link_library_directories": 3, - "link_libraries": 3, - "link_objects": 2, - "mercury_library_directories": 2, - "mercury_library_directory_special": 2, - "search_library_files_directories": 2, - "search_library_files_directory_special": 2, - "mercury_libraries": 2, - "mercury_library_special": 2, - "mercury_standard_library_directory": 2, - "mercury_standard_library_directory_special": 2, - "init_file_directories": 2, - "init_files": 2, - "trace_init_files": 2, - "linkage": 2, - "linkage_special": 2, - "mercury_linkage": 2, - "mercury_linkage_special": 2, - "strip": 2, - "demangle": 2, - "allow_undefined": 2, - "use_readline": 2, - "runtime_flags": 2, - "extra_initialization_functions": 2, - "frameworks": 2, - "framework_directories": 3, - "shared_library_extension": 2, - "library_extension": 2, - "executable_file_extension": 2, - "link_executable_command": 2, - "link_shared_lib_command": 2, - "create_archive_command": 2, - "create_archive_command_output_flag": 2, - "create_archive_command_flags": 2, - "ranlib_command": 2, - "ranlib_flags": 2, - "mkinit_command": 2, - "mkinit_erl_command": 2, - "demangle_command": 2, - "filtercc_command": 2, - "trace_libs": 2, - "thread_libs": 2, - "hwloc_libs": 2, - "hwloc_static_libs": 2, - "shared_libs": 2, - "math_lib": 2, - "readline_libs": 2, - "linker_opt_separator": 2, - "linker_thread_flags": 2, - "shlib_linker_thread_flags": 2, - "linker_static_flags": 2, - "linker_strip_flag": 2, - "linker_link_lib_flag": 2, - "linker_link_lib_suffix": 2, - "shlib_linker_link_lib_flag": 2, - "shlib_linker_link_lib_suffix": 2, - "linker_debug_flags": 2, - "shlib_linker_debug_flags": 2, - "linker_trace_flags": 2, - "shlib_linker_trace_flags": 2, - "linker_path_flag": 2, - "linker_rpath_flag": 2, - "linker_rpath_separator": 2, - "shlib_linker_rpath_flag": 2, - "shlib_linker_rpath_separator": 2, - "linker_allow_undefined_flag": 2, - "linker_error_undefined_flag": 2, - "shlib_linker_use_install_name": 2, - "shlib_linker_install_name_flag": 2, - "shlib_linker_install_name_path": 2, - "java_archive_command": 2, - "make": 3, - "keep_going": 3, - "rebuild": 3, - "jobs": 3, - "track_flags": 2, - "invoked_by_mmc_make": 2, - "extra_init_command": 2, - "pre_link_command": 2, - "install_prefix": 2, - "use_symlinks": 2, - "mercury_configuration_directory": 2, - "mercury_configuration_directory_special": 2, - "install_command": 2, - "install_command_dir_option": 2, - "libgrades": 2, - "libgrades_include_components": 2, - "libgrades_exclude_components": 2, - "lib_linkages": 2, - "flags_file": 2, - "options_files": 2, - "config_file": 2, - "options_search_directories": 2, - "use_subdirs": 2, - "use_grade_subdirs": 2, - "search_directories": 3, - "intermod_directories": 2, - "use_search_directories_for_intermod": 2, - "libgrade_install_check": 2, - "order_make_by_timestamp": 2, - "show_make_times": 2, - "extra_library_header": 2, - "restricted_command_line": 2, - "env_type": 2, - "host_env_type": 2, - "target_env_type": 2, - "filenames_from_stdin": 2, - "typecheck_ambiguity_warn_limit": 2, - "typecheck_ambiguity_error_limit": 2, - "help": 4, - "version": 3, - "fullarch": 2, - "cross_compiling": 2, - "local_module_id": 2, - "analysis_file_cache_dir": 2, - "compiler_sufficiently_recent": 2, - "experiment": 2, - "ignore_par_conjunctions": 2, - "control_granularity": 2, - "distance_granularity": 2, - "implicit_parallelism": 2, - "feedback_file": 2, - "par_loop_control": 2, - "par_loop_control_preserve_tail_recursion.": 1, - "libs.handle_options.": 1, - "assoc_list.": 3, - "bool.": 4, - "dir.": 1, - "list.": 4, - "map.": 3, - "maybe.": 3, - "pair.": 3, - "option_category": 2, - "warning_option": 2, - "verbosity_option": 2, - "output_option": 2, - "aux_output_option": 2, - "language_semantics_option": 2, - "compilation_model_option": 2, - "internal_use_option": 2, - "code_gen_option": 2, - "special_optimization_option": 2, - "optimization_option": 2, - "target_code_compilation_option": 2, - "link_option": 2, - "build_system_option": 2, - "miscellaneous_option.": 1, - "Option": 2, - "option_defaults_2": 18, - "_Category": 1, - "OptionsList": 2, - "list.member": 2, - "list": 82, - "pair": 7, - "mode": 8, - "multi.": 1, - "[": 203, - "bool_special": 7, - "bool": 406, - "no": 365, - "yes": 144, - "XXX": 3, - "should": 1, - "be": 1, - "]": 203, - "accumulating": 49, - "maybe_string": 6, - "special": 17, - "string_special": 18, - "int_special": 1, - "maybe_string_special": 1, - "file_special": 1, - "miscellaneous_option": 1, - "par_loop_control_preserve_tail_recursion": 1, - "expr.": 1, - "token": 5, - "num": 11, - "parse": 1, - "exprn/1": 1, - "xx": 1, - "scan": 16, - "rule": 3, - "exprn": 7, - "Num": 18, - "B": 8, - "*": 20, - "factor": 6, - "/": 1, - "//": 2, - "Chars": 2, - "Toks": 13, - "Toks0": 11, - "list__reverse": 1, - "|": 38, - "Cs": 9, - "char__is_whitespace": 1, - "char__is_digit": 2, - "takewhile": 1, - "Digits": 2, - "Rest": 2, - "string__from_char_list": 1, - "NumStr": 2, - "string__det_to_int": 1, - "store.": 1, - "typeclass": 1, - "store": 52, - "T": 52, - "where": 8, - "S": 133, - "instance": 4, - "io.state": 3, - "some": 4, - "store.init": 2, - "generic_mutvar": 15, - "io_mutvar": 1, - "store_mutvar": 1, - "store.new_mutvar": 1, - "det": 21, - "store.copy_mutvar": 1, - "store.get_mutvar": 1, - "store.set_mutvar": 1, - "<=>": 5, - "new_cyclic_mutvar": 2, - "Func": 4, - "Mutvar": 23, - "Create": 1, - "a": 10, - "new": 25, - "mutable": 3, - "variable": 1, - "whose": 2, - "value": 16, - "initialized": 2, - "with": 5, - "the": 27, - "returned": 1, - "from": 1, - "specified": 1, - "function": 3, - "The": 2, - "argument": 6, - "passed": 2, - "mutvar": 6, - "itself": 4, - "has": 4, - "not": 7, - "yet": 1, - "been": 1, - "this": 4, - "safe": 2, - "because": 1, - "does": 3, - "get": 2, - "so": 3, - "it": 1, - "can": 1, - "t": 5, - "examine": 1, - "uninitialized": 1, - "This": 2, - "predicate": 1, - "useful": 1, - "creating": 1, - "self": 1, - "referential": 1, - "values": 1, - "such": 2, - "as": 5, - "circular": 1, - "linked": 1, - "lists": 1, - "For": 1, - "example": 1, - "clist": 2, - "node": 1, - "store.new_cyclic_mutvar": 1, - "generic_ref": 20, - "io_ref": 1, - "store_ref": 1, - "store.new_ref": 1, - "store.ref_functor": 1, - "store.arg_ref": 1, - "ArgT": 4, - "store.new_arg_ref": 3, - "store.set_ref": 1, - "store.set_ref_value": 1, - "store.copy_ref_value": 1, - "store.extract_ref_value": 1, - "Nasty": 1, - "performance": 2, - "hacks": 1, - "WARNING": 1, - "use": 1, - "of": 10, - "these": 1, - "procedures": 2, - "dangerous": 1, - "Use": 1, - "them": 1, - "only": 4, - "last": 1, - "resort": 1, - "critical": 1, - "and": 6, - "shows": 1, - "that": 2, - "using": 1, - "versions": 1, - "bottleneck": 1, - "These": 1, - "may": 1, - "vanish": 1, - "future": 1, - "Mercury": 1, - "unsafe_arg_ref": 1, - "same": 2, - "arg_ref": 12, - "unsafe_new_arg_ref": 1, - "new_arg_ref": 1, - "except": 1, - "they": 4, - "doesn": 1, - "check": 1, - "errors": 1, - "don": 3, - "work": 3, - "no_tag": 1, - "types": 3, - "exactly": 2, - "one": 2, - "functor": 2, - "which": 2, - "arguments": 2, - "occupy": 1, - "word": 2, - "other": 1, - "functors.": 1, - "store.unsafe_arg_ref": 1, - "store.unsafe_new_arg_ref": 1, - "implementation": 1, - "deconstruct": 2, - "require": 1, - "state": 3, - "just": 1, - "dummy": 2, - "real": 1, - "representation": 1, - "pragma": 41, - "foreign_type": 10, - "MR_Word": 24, - "can_pass_as_mercury_type": 5, - "equality": 5, - "store_equal": 7, - "comparison": 5, - "store_compare": 7, - "int32": 1, - "Java": 12, - "Erlang": 3, - "semidet": 2, - "_": 149, - "attempt": 2, - "unify": 21, - "two": 2, - "stores": 2, - "comparison_result": 1, - "compare": 1, - "Mutvars": 1, - "references": 1, - "are": 1, - "each": 1, - "represented": 1, - "pointer": 1, - "single": 1, - "on": 1, - "heap": 1, - "private_builtin.ref": 2, - "ref": 2, - "store.do_init": 6, - "foreign_proc": 28, - "_S0": 16, - "will_not_call_mercury": 28, - "promise_pure": 30, - "will_not_modify_trail": 7, - "new_mutvar": 5, - "Val": 45, - "S0": 23, - "get_mutvar": 5, - "set_mutvar": 5, - "_S": 12, - "copy_mutvar": 1, - "Copy": 2, - "Value": 4, - "store.unsafe_new_uninitialized_mutvar": 1, - "unsafe_new_uninitialized_mutvar": 4, - "MR_offset_incr_hp_msg": 5, - "MR_SIZE_SLOT_SIZE": 10, - "1": 5, - "MR_ALLOC_ID": 5, - "2": 2, - "MR_define_size_slot": 5, - "0": 2, - "object": 21, - "MutVar": 4, - "Store": 5, - "apply": 1, - "Ref": 41, - "foreign_code": 2, - "public": 17, - "class": 4, - "Object": 9, - "referenced": 4, - "obj": 7, - "Specific": 2, - "field": 20, - "or": 2, - "null": 8, - "specify": 2, - "GetFields": 2, - "return": 6, - "fields": 3, - "any": 2, - "particular": 2, - "order": 2, - "really": 2, - "usable": 2, - "System": 1, - "Reflection": 1, - "FieldInfo": 1, - "Constructors": 2, - "init": 8, - "setField": 4, - "Set": 2, - "according": 2, - "given": 2, - "index": 2, - "void": 4, - "GetType": 1, - "Return": 6, - "reference": 4, - "getValue": 4, - "GetValue": 1, - "Update": 2, - "setValue": 2, - "SetValue": 1, - "static": 1, - "lang": 28, - "getDeclaredFields": 2, - "reflect": 1, - "Field": 5, - "try": 3, - "getClass": 1, - "catch": 11, - "SecurityException": 1, - "se": 1, - "throw": 11, - "RuntimeException": 11, - "Security": 1, - "manager": 1, - "denied": 1, - "access": 3, - "ArrayIndexOutOfBoundsException": 1, - "e": 13, - "No": 1, - "Exception": 3, - "Unable": 3, - "getMessage": 3, - "IllegalAccessException": 2, - "inaccessible": 2, - "IllegalArgumentException": 2, - "mismatch": 2, - "NullPointerException": 2, - "new_ref": 4, - "ets": 3, - "insert": 1, - "copy_ref_value": 1, - "unsafe_ref_value": 6, - "store.unsafe_ref_value": 1, - "lookup": 1, - "ref_functor": 1, - "Functor": 6, - "Arity": 5, - "canonicalize": 1, - "foreign_decl": 1, - "include": 4, - "mercury_type_info": 1, - "h": 4, - "mercury_heap": 1, - "mercury_misc": 1, - "MR_fatal_error": 5, - "mercury_deconstruct": 1, - "MR_arg": 3, - "ArgNum": 7, - "ArgRef": 22, - "may_not_duplicate": 1, - "MR_TypeInfo": 10, - "type_info": 8, - "arg_type_info": 6, - "exp_arg_type_info": 6, - "const": 10, - "MR_DuArgLocn": 2, - "arg_locn": 9, - "TypeInfo_for_T": 2, - "TypeInfo_for_ArgT": 2, - "MR_save_transient_registers": 2, - "MR_NONCANON_ABORT": 2, - "number": 2, - "range": 2, - "MR_compare_type_info": 2, - "MR_COMPARE_EQUAL": 2, - "wrong": 2, - "MR_restore_transient_registers": 2, - "NULL": 2, - "MR_arg_bits": 2, - "store.ref/2": 3, - "MR_arg_value": 2, - "C#": 6, - "store.Ref": 8, - "Ref.getValue": 6, - "*arg_ref": 1, - "*arg_locn": 1, - "&": 7, - "&&": 1, - "ValRef": 1, - "Ref.setValue": 3, - "ValRef.getValue": 2, - "*Ptr": 2, - "Ptr": 4, - "MR_strip_tag": 2, - "Arg": 6, - "rot13_verbose.": 1, - "rot13a/2": 1, - "table": 1, - "map": 7, - "alphabetic": 2, - "characters": 1, - "their": 1, - "equivalents": 1, - "fails": 1, - "input": 1, - "rot13a": 55, - "rot13/2": 1, - "Applies": 1, - "algorithm": 1, - "character.": 1, - "Char": 12, - "RotChar": 8, - "TmpChar": 2, - "io__read_char": 1, - "Res": 8, - "io__write_char": 1, - "ErrorCode": 4, - "ErrorMessage": 4, - "io__stderr_stream": 1, - "StdErr": 8, - "io__write_string": 2, - "io__nl": 1, - "hello.": 1, - "IO": 4, - "io.write_string": 1, - "rot13_concise.": 1, - "alphabet": 3, - "cycle": 4, - "rot_n": 2, - "N": 6, - "char_to_string": 1, - "CharString": 2, - "sub_string_search": 1, - "Index": 3, - "NewIndex": 2, - "mod": 1, - "index_det": 1, - "read_char": 1, - "print": 3, - "error_message": 1, - "stderr_stream": 1, - "nl": 1, - "ll_backend.code_info.": 1, - "check_hlds.type_util.": 2, - "hlds.code_model.": 1, - "hlds.hlds_data.": 2, - "hlds.hlds_goal.": 2, - "hlds.hlds_llds.": 1, - "hlds.hlds_module.": 2, - "hlds.hlds_pred.": 2, - "hlds.instmap.": 2, - "libs.globals.": 2, - "ll_backend.continuation_info.": 1, - "ll_backend.global_data.": 1, - "ll_backend.layout.": 1, - "ll_backend.llds.": 1, - "ll_backend.trace_gen.": 1, - "mdbcomp.prim_data.": 3, - "mdbcomp.goal_path.": 2, - "parse_tree.prog_data.": 2, - "parse_tree.set_of_var.": 2, - "counter.": 1, - "set_tree234.": 1, - "term.": 3, - "backend_libs.builtin_ops.": 1, - "backend_libs.proc_label.": 1, - "hlds.arg_info.": 1, - "hlds.hlds_desc.": 1, - "hlds.hlds_rtti.": 2, - "libs.trace_params.": 1, - "ll_backend.code_util.": 1, - "ll_backend.opt_debug.": 1, - "ll_backend.var_locn.": 1, - "parse_tree.builtin_lib_types.": 2, - "parse_tree.prog_type.": 2, - "parse_tree.mercury_to_mercury.": 1, - "cord.": 1, - "stack.": 1, - "varset.": 2, - "code_info.": 1, - "code_info_init": 2, - "globals": 5, - "pred_id": 15, - "proc_id": 12, - "pred_info": 20, - "proc_info": 11, - "abs_follow_vars": 3, - "module_info": 26, - "static_cell_info": 4, - "const_struct_map": 3, - "resume_point_info": 11, - "trace_slot_info": 3, - "maybe": 20, - "containing_goal_map": 4, - "code_info": 208, - "get_globals": 5, - "get_exprn_opts": 2, - "exprn_opts": 3, - "get_module_info": 7, - "get_pred_id": 6, - "get_proc_id": 5, - "get_pred_info": 2, - "get_proc_info": 4, - "get_varset": 3, - "prog_varset": 14, - "get_var_types": 3, - "vartypes.": 1, - "get_maybe_trace_info": 2, - "trace_info": 3, - "get_emit_trail_ops": 2, - "add_trail_ops": 5, - "get_emit_region_ops": 2, - "add_region_ops": 6, - "get_forward_live_vars": 2, - "set_of_progvar": 10, - "set_forward_live_vars": 2, - "get_instmap": 4, - "instmap": 3, - "set_instmap": 3, - "get_par_conj_depth": 2, - "set_par_conj_depth": 2, - "get_label_counter": 3, - "counter": 6, - "get_succip_used": 2, - "get_layout_info": 4, - "proc_label_layout_info": 3, - "get_proc_trace_events": 2, - "set_proc_trace_events": 2, - "get_closure_layouts": 3, - "closure_proc_id_data": 4, - "get_max_reg_in_use_at_trace": 2, - "set_max_reg_in_use_at_trace": 2, - "get_created_temp_frame": 2, - "get_static_cell_info": 5, - "set_static_cell_info": 5, - "get_alloc_sites": 3, - "set_tree234": 3, - "alloc_site_info": 4, - "set_alloc_sites": 3, - "get_used_env_vars": 2, - "set_used_env_vars": 2, - "get_opt_trail_ops": 2, - "get_opt_region_ops": 2, - "get_auto_comments": 2, - "get_lcmc_null": 2, - "get_containing_goal_map": 3, - "get_containing_goal_map_det": 2, - "get_const_struct_map": 2, - "add_out_of_line_code": 2, - "llds_code": 21, - "get_out_of_line_code": 2, - "get_var_slot_count": 2, - "set_maybe_trace_info": 3, - "get_opt_no_return_calls": 2, - "get_zombies": 2, - "set_zombies": 2, - "get_var_locn_info": 7, - "var_locn_info": 3, - "set_var_locn_info": 4, - "get_temps_in_use": 6, - "lval": 114, - "set_temps_in_use": 4, - "get_fail_info": 13, - "fail_info": 24, - "set_fail_info": 9, - "set_label_counter": 3, - "set_succip_used": 3, - "set_layout_info": 4, - "get_max_temp_slot_count": 2, - "set_max_temp_slot_count": 2, - "get_temp_content_map": 3, - "slot_contents": 4, - "set_temp_content_map": 2, - "get_persistent_temps": 3, - "set_persistent_temps": 2, - "set_closure_layouts": 3, - "get_closure_seq_counter": 3, - "set_closure_seq_counter": 3, - "set_created_temp_frame": 2, - "code_info_static": 26, - "code_info_loc_dep": 22, - "code_info_persistent": 44, - "cis_globals": 2, - "cis_exprn_opts": 2, - "cis_module_info": 2, - "cis_pred_id": 2, - "cis_proc_id": 2, - "cis_pred_info": 2, - "cis_proc_info": 2, - "cis_proc_label": 1, - "proc_label": 2, - "cis_varset": 2, - "cis_var_slot_count": 2, - "cis_maybe_trace_info": 3, - "cis_opt_no_resume_calls": 2, - "cis_emit_trail_ops": 2, - "cis_opt_trail_ops": 2, - "cis_emit_region_ops": 2, - "cis_opt_region_ops": 2, - "cis_auto_comments": 2, - "cis_lcmc_null": 2, - "cis_containing_goal_map": 2, - "cis_const_struct_map": 2, - "cild_forward_live_vars": 3, - "cild_instmap": 3, - "cild_zombies": 3, - "cild_var_locn_info": 3, - "cild_temps_in_use": 3, - "cild_fail_info": 3, - "cild_par_conj_depth": 3, - "cip_label_num_src": 3, - "cip_store_succip": 3, - "cip_label_info": 3, - "cip_proc_trace_events": 3, - "cip_stackslot_max": 3, - "cip_temp_contents": 3, - "cip_persistent_temps": 3, - "cip_closure_layout_seq": 3, - "cip_closure_layouts": 3, - "cip_max_reg_r_used": 3, - "cip_max_reg_f_used": 2, - "cip_created_temp_frame": 3, - "cip_static_cell_info": 3, - "cip_alloc_sites": 3, - "cip_used_env_vars": 3, - "cip_ts_string_table_size": 3, - "cip_ts_rev_string_table": 4, - "cip_out_of_line_code": 4, - "SaveSuccip": 2, - "Globals": 32, - "PredId": 50, - "ProcId": 31, - "PredInfo": 64, - "ProcInfo": 43, - "FollowVars": 6, - "ModuleInfo": 49, - "StaticCellInfo": 8, - "ConstStructMap": 2, - "ResumePoint": 13, - "TraceSlotInfo": 5, - "MaybeContainingGoalMap": 5, - "TSRevStringTable": 2, - "TSStringTableSize": 2, - "CodeInfo": 2, - "ProcLabel": 8, - "make_proc_label": 1, - "proc_info_get_initial_instmap": 1, - "InstMap": 6, - "proc_info_get_liveness_info": 1, - "Liveness": 4, - "CodeModel": 8, - "proc_info_interface_code_model": 2, - "build_input_arg_list": 1, - "ArgList": 2, - "proc_info_get_varset": 1, - "VarSet": 15, - "proc_info_get_vartypes": 2, - "VarTypes": 22, - "proc_info_get_stack_slots": 1, - "StackSlots": 5, - "ExprnOpts": 4, - "init_exprn_opts": 3, - "globals.lookup_bool_option": 18, - "UseFloatRegs": 6, - "FloatRegType": 3, - "reg_f": 1, - "reg_r": 2, - "globals.get_trace_level": 1, - "TraceLevel": 5, - "eff_trace_level_is_none": 2, - "trace_fail_vars": 1, - "FailVars": 3, - "MaybeFailVars": 3, - "set_of_var.union": 3, - "EffLiveness": 3, - "init_var_locn_state": 1, - "VarLocnInfo": 12, - "stack.init": 1, - "ResumePoints": 14, - "AllowHijack": 3, - "Hijack": 6, - "allowed": 6, - "not_allowed": 5, - "DummyFailInfo": 2, - "resume_point_unknown": 9, - "may_be_different": 7, - "not_inside_non_condition": 2, - "map.init": 7, - "TempContentMap": 4, - "set.init": 7, - "PersistentTemps": 4, - "TempsInUse": 8, - "Zombies": 2, - "set_of_var.init": 1, - "LayoutMap": 2, - "max_var_slot": 1, - "VarSlotMax": 2, - "trace_reserved_slots": 1, - "FixedSlots": 2, - "int.max": 1, - "SlotMax": 2, - "OptNoReturnCalls": 2, - "UseTrail": 2, - "DisableTrailOps": 2, - "EmitTrailOps": 3, - "do_not_add_trail_ops": 1, - "OptTrailOps": 2, - "OptRegionOps": 2, - "UseRegions": 3, - "EmitRegionOps": 3, - "do_not_add_region_ops": 1, - "AutoComments": 2, - "LCMCNull": 2, - "CodeInfo0": 2, - "init_fail_info": 2, - "will": 1, - "override": 1, - "nested": 1, - "conjunction": 1, - "depth": 1, - "counter.init": 2, - "set_tree234.init": 1, - "cord.empty": 1, - "init_maybe_trace_info": 3, - "CodeInfo1": 2, - "exprn_opts.": 1, - "OptNLG": 3, - "NLG": 3, - "have_non_local_gotos": 1, - "do_not_have_non_local_gotos": 1, - "OptASM": 3, - "ASM": 3, - "have_asm_labels": 1, - "do_not_have_asm_labels": 1, - "OptSGCell": 3, - "SGCell": 3, - "have_static_ground_cells": 1, - "do_not_have_static_ground_cells": 1, - "OptUBF": 3, - "UBF": 3, - "have_unboxed_floats": 1, - "do_not_have_unboxed_floats": 1, - "OptFloatRegs": 3, - "do_not_use_float_registers": 1, - "OptSGFloat": 3, - "SGFloat": 3, - "have_static_ground_floats": 1, - "do_not_have_static_ground_floats": 1, - "OptStaticCodeAddr": 3, - "StaticCodeAddrs": 3, - "have_static_code_addresses": 1, - "do_not_have_static_code_addresses": 1, - "CI": 294, - "proc_info_get_has_tail_call_events": 1, - "HasTailCallEvents": 3, - "tail_call_events": 1, - "get_next_label": 5, - "TailRecLabel": 2, - "MaybeTailRecLabel": 3, - "no_tail_call_events": 1, - "trace_setup": 1, - "TraceInfo": 2, - "MaxRegR": 4, - "MaxRegF": 4, - "cip_max_reg_f_used.": 1, - "TI": 4, - "LV": 2, - "IM": 2, - "Zs": 2, - "EI": 2, - "FI": 2, - "LC": 2, - "SU": 2, - "LI": 2, - "PTE": 2, - "TM": 2, - "CM": 2, - "PT": 2, - "CLS": 2, - "CG": 2, - "MR": 4, - "MF": 1, - "MF.": 1, - "SCI": 2, - "ASI": 2, - "UEV": 2, - "ContainingGoalMap": 2, - "unexpected": 21, - "NewCode": 2, - "Code0": 2, - ".CI": 29, - "Code": 36, - "Code.": 1, - "get_stack_slots": 2, - "stack_slots": 1, - "get_follow_var_map": 2, - "abs_follow_vars_map": 1, - "get_next_non_reserved": 2, - "reg_type": 1, - "set_follow_vars": 4, - "pre_goal_update": 3, - "hlds_goal_info": 22, - "has_subgoals": 2, - "post_goal_update": 3, - "variable_type": 3, - "prog_var": 58, - "mer_type.": 1, - "variable_is_of_dummy_type": 2, - "is_dummy_type.": 1, - "search_type_defn": 4, - "mer_type": 21, - "hlds_type_defn": 1, - "lookup_type_defn": 2, - "hlds_type_defn.": 1, - "lookup_cheaper_tag_test": 2, - "maybe_cheaper_tag_test.": 1, - "filter_region_vars": 2, - "set_of_progvar.": 2, - "get_proc_model": 2, - "code_model.": 1, - "get_headvars": 2, - "get_arginfo": 2, - "arg_info": 2, - "get_pred_proc_arginfo": 3, - "current_resume_point_vars": 2, - "variable_name": 2, - "make_proc_entry_label": 2, - "code_addr.": 1, - "label": 5, - "succip_is_used": 2, - "add_trace_layout_for_label": 2, - "term.context": 3, - "trace_port": 1, - "forward_goal_path": 1, - "user_event_info": 1, - "layout_label_info": 2, - "get_cur_proc_label": 4, - "get_next_closure_seq_no": 2, - "add_closure_layout": 2, - "add_threadscope_string": 2, - "get_threadscope_rev_string_table": 2, - "add_scalar_static_cell": 2, - "typed_rval": 1, - "data_id": 3, - "add_scalar_static_cell_natural_types": 2, - "rval": 3, - "add_vector_static_cell": 2, - "llds_type": 1, - "add_alloc_site_info": 2, - "prog_context": 1, - "alloc_site_id": 2, - "add_resume_layout_for_label": 2, - "var_locn_get_stack_slots": 1, - "FollowVarMap": 2, - "var_locn_get_follow_var_map": 1, - "RegType": 2, - "NextNonReserved": 2, - "var_locn_get_next_non_reserved": 1, - "VarLocnInfo0": 4, - "var_locn_set_follow_vars": 1, - "GoalInfo": 44, - "HasSubGoals": 3, - "goal_info_get_resume_point": 1, - "no_resume_point": 1, - "resume_point": 1, - "goal_info_get_follow_vars": 1, - "MaybeFollowVars": 3, - "goal_info_get_pre_deaths": 1, - "PreDeaths": 3, - "rem_forward_live_vars": 3, - "maybe_make_vars_forward_dead": 2, - "goal_info_get_pre_births": 1, - "PreBirths": 2, - "add_forward_live_vars": 2, - "does_not_have_subgoals": 2, - "goal_info_get_post_deaths": 2, - "PostDeaths": 5, - "goal_info_get_post_births": 1, - "PostBirths": 3, - "make_vars_forward_live": 1, - "InstMapDelta": 2, - "goal_info_get_instmap_delta": 1, - "InstMap0": 2, - "instmap.apply_instmap_delta": 1, - "TypeInfoLiveness": 2, - "module_info_pred_info": 6, - "body_should_use_typeinfo_liveness": 1, - "Var": 13, - "Type": 18, - "lookup_var_type": 3, - "IsDummy": 2, - "VarType": 2, - "check_dummy_type": 1, - "TypeDefn": 6, - "type_to_ctor_det": 1, - "TypeCtor": 2, - "module_info_get_type_table": 1, - "TypeTable": 2, - "search_type_ctor_defn": 1, - "TypeDefnPrime": 2, - "CheaperTagTest": 3, - "get_type_defn_body": 1, - "TypeBody": 2, - "hlds_du_type": 1, - "CheaperTagTestPrime": 2, - "no_cheaper_tag_test": 1, - "ForwardLiveVarsBeforeGoal": 6, - "RegionVars": 2, - "code_info.get_var_types": 1, - "set_of_var.filter": 1, - "is_region_var": 1, - "HeadVars": 20, - "module_info_pred_proc_info": 4, - "proc_info_get_headvars": 2, - "ArgInfo": 4, - "proc_info_arg_info": 1, - "ResumeVars": 4, - "FailInfo": 19, - "ResumePointStack": 2, - "stack.det_top": 5, - "ResumePointInfo": 2, - "pick_first_resume_point": 1, - "ResumeMap": 8, - "map.keys": 3, - "ResumeMapVarList": 2, - "set_of_var.list_to_set": 3, - "Name": 4, - "Varset": 2, - "varset.lookup_name": 2, - "Immed0": 3, - "CodeAddr": 2, - "Immed": 3, - "globals.lookup_int_option": 1, - "ProcsPerFunc": 2, - "CurPredId": 2, - "CurProcId": 2, - "proc": 2, - "make_entry_label": 1, - "Label": 8, - "C0": 4, - "counter.allocate": 2, - "internal_label": 3, - "Context": 20, - "Port": 2, - "IsHidden": 2, - "GoalPath": 2, - "MaybeSolverEventInfo": 2, - "Layout": 2, - "Internals0": 8, - "Exec": 5, - "trace_port_layout_info": 1, - "LabelNum": 8, - "entry_label": 2, - "map.search": 2, - "Internal0": 4, - "internal_layout_info": 6, - "Exec0": 3, - "Resume": 5, - "Internal": 8, - "map.det_update": 4, - "Internals": 6, - "map.det_insert": 3, - "LayoutInfo": 2, - "Resume0": 3, - "get_active_temps_data": 2, - "assoc_list": 1, - "Temps": 2, - "map.select": 1, - "TempsInUseContentMap": 2, - "map.to_assoc_list": 3, - "cis_proc_label.": 1, - "SeqNo": 2, - "ClosureLayout": 2, - "ClosureLayouts": 2, - "String": 2, - "SlotNum": 2, - "Size0": 3, - "RevTable0": 2, - "Size": 4, - "RevTable": 3, - "RevTable.": 1, - "TableSize": 2, - "cip_ts_string_table_size.": 1, - "RvalsTypes": 2, - "DataAddr": 6, - "StaticCellInfo0": 6, - "global_data.add_scalar_static_cell": 1, - "Rvals": 2, - "global_data.add_scalar_static_cell_natural_types": 1, - "Types": 6, - "Vector": 2, - "global_data.add_vector_static_cell": 1, - "AllocId": 2, - "AllocSite": 3, - "AllocSites0": 2, - "set_tree234.insert": 1, - "AllocSites": 2, - "position_info.": 1, - "branch_end_info.": 1, - "branch_end": 4, - "branch_end_info": 7, - "remember_position": 3, - "position_info": 14, - "reset_to_position": 4, - "reset_resume_known": 2, - "generate_branch_end": 2, - "abs_store_map": 3, - "after_all_branches": 2, - "save_hp_in_branch": 2, - "pos_get_fail_info": 3, - "fail_info.": 2, - "LocDep": 6, - "cild_fail_info.": 1, - "CurCI": 2, - "NextCI": 2, - "Static": 2, - "Persistent": 2, - "NextCI0": 4, - "TempsInUse0": 4, - "set.union": 2, - "BranchStart": 2, - "BranchStartFailInfo": 2, - "BSResumeKnown": 2, - "CurFailInfo": 2, - "CurFailStack": 2, - "CurCurfMaxfr": 2, - "CurCondEnv": 2, - "CurHijack": 2, - "NewFailInfo": 2, - "StoreMap": 8, - "MaybeEnd0": 3, - "MaybeEnd": 6, - "AbsVarLocs": 3, - "assoc_list.values": 1, - "AbsLocs": 2, - "code_util.max_mentioned_abs_regs": 1, - "instmap_is_reachable": 1, - "VarLocs": 2, - "assoc_list.map_values_only": 2, - "abs_locn_to_lval": 2, - "place_vars": 1, - "remake_with_store_map": 4, - "empty": 9, - "EndCodeInfo1": 5, - "EndCodeInfo0": 3, - "FailInfo0": 13, - "FailInfo1": 2, - "ResumeKnown0": 5, - "CurfrMaxfr0": 2, - "CondEnv0": 3, - "Hijack0": 2, - "R": 2, - "ResumeKnown1": 2, - "CurfrMaxfr1": 2, - "CondEnv1": 2, - "Hijack1": 2, - "resume_point_known": 15, - "Redoip0": 3, - "Redoip1": 2, - "ResumeKnown": 21, - "expect": 15, - "must_be_equal": 11, - "CurfrMaxfr": 24, - "EndCodeInfoA": 2, - "TempsInUse1": 2, - "EndCodeInfo": 2, - "BranchEnd": 2, - "BranchEndCodeInfo": 2, - "BranchEndLocDep": 2, - "VarLocns": 2, - "VarLvals": 2, - "reinit_var_locn_state": 1, - "Slot": 2, - "Pos0": 2, - "Pos": 2, - "CI0": 2, - "CIStatic0": 2, - "CILocDep0": 2, - "CIPersistent0": 2, - "LocDep0": 2, - "CI1": 2, - "save_hp": 1, - "CI2": 2, - "CIStatic": 2, - "CIPersistent": 2, - "resume_map.": 1, - "resume_point_info.": 1, - "disj_hijack_info.": 1, - "prepare_for_disj_hijack": 2, - "code_model": 3, - "disj_hijack_info": 3, - "undo_disj_hijack": 2, - "ite_hijack_info.": 1, - "prepare_for_ite_hijack": 2, - "embedded_stack_frame_id": 3, - "ite_hijack_info": 3, - "ite_enter_then": 2, - "simple_neg_info.": 1, - "enter_simple_neg": 2, - "simple_neg_info": 3, - "leave_simple_neg": 2, - "det_commit_info.": 1, - "prepare_for_det_commit": 2, - "det_commit_info": 6, - "generate_det_commit": 2, - "semi_commit_info.": 1, - "prepare_for_semi_commit": 2, - "semi_commit_info": 6, - "generate_semi_commit": 2, - "effect_resume_point": 2, - "pop_resume_point": 1, - "top_resume_point": 1, - "set_resume_point_to_unknown": 1, - "set_resume_point_and_frame_to_unknown": 1, - "generate_failure": 2, - "fail_if_rval_is_false": 1, - "failure_is_direct_branch": 1, - "code_addr": 8, - "may_use_nondet_tailcall": 1, - "nondet_tail_call": 1, - "produce_vars": 1, - "resume_map": 9, - "flush_resume_vars_to_stack": 1, - "make_resume_point": 1, - "resume_locs": 1, - "generate_resume_point": 2, - "resume_point_vars": 1, - "resume_point_stack_addr": 2, - "stack": 1, - "curfr_vs_maxfr": 2, - "condition_env": 3, - "hijack_allowed": 2, - "orig_only": 2, - "stack_only": 2, - "orig_and_stack": 1, - "stack_and_orig": 1, - "redoip_update": 2, - "has_been_done": 5, - "wont_be_done.": 1, - "resume_point_unknown.": 1, - "may_be_different.": 1, - "inside_non_condition": 6, - "not_inside_non_condition.": 1, - "not_allowed.": 1, - "disj_no_hijack": 4, - "disj_temp_frame": 4, - "disj_quarter_hijack": 4, - "disj_half_hijack": 3, - "disj_full_hijack": 3, - "HijackInfo": 29, - "CondEnv": 12, - "Allow": 12, - "model_det": 2, - "model_semi": 3, - "singleton": 28, - "llds_instr": 64, - "comment": 5, - "model_non": 2, - "create_temp_frame": 4, - "do_fail": 6, - "stack.pop": 1, - "TopResumePoint": 6, - "RestResumePoints": 2, - "stack.is_empty": 1, - "wont_be_done": 2, - "acquire_temp_slot": 15, - "slot_lval": 14, - "redoip_slot": 30, - "curfr": 18, - "non_persistent_temp_slot": 15, - "RedoipSlot": 33, - "assign": 46, - "maxfr": 42, - "redofr_slot": 14, - "RedofrSlot": 17, - "from_list": 13, - "prevfr_slot": 3, - "pick_stack_resume_point": 3, - "StackLabel": 9, - "LabelConst": 4, - "llconst_code_addr": 6, - "true": 3, - "ite_region_info": 5, - "ite_info": 3, - "ite_hijack_type": 2, - "ite_no_hijack": 3, - "ite_temp_frame": 3, - "ite_quarter_hijack": 3, - "ite_half_hijack": 3, - "ite_full_hijack": 3, - "CondCodeModel": 4, - "MaybeEmbeddedFrameId": 5, - "HijackType": 12, - "MaybeRegionInfo": 12, - "MaxfrSlot": 30, - "TempFrameCode": 4, - "MaxfrCode": 7, - "EmbeddedFrameId": 2, - "slot_success_record": 1, - "persistent_temp_slot": 1, - "SuccessRecordSlot": 6, - "InitSuccessCode": 3, - "llconst_false": 1, - "ITEResumePoint": 2, - "ThenCode": 10, - "ElseCode": 7, - "ResumePoints0": 5, - "stack.det_pop": 1, - "HijackResumeKnown": 2, - "OldCondEnv": 2, - "RegionInfo": 2, - "EmbeddedStackFrameId": 2, - "ITEStackResumeCodeAddr": 2, - "llconst_true": 1, - "AfterRegionOp": 3, - "if_val": 1, - "unop": 1, - "logical_not": 1, - "code_label": 2, - "use_and_maybe_pop_region_frame": 1, - "region_ite_nondet_cond_fail": 1, - "goto": 2, - "maybe_pick_stack_resume_point": 1, - "ResumeMap0": 2, - "make_fake_resume_map": 5, - "do_redo": 1, - "is_empty": 1, - "Vars": 10, - "Locns": 2, - "set.make_singleton_set": 1, - "reg": 1, - "region_commit_stack_frame": 5, - "AddTrailOps": 4, - "AddRegionOps": 5, - "CommitGoalInfo": 4, - "DetCommitInfo": 4, - "SaveMaxfrCode": 3, - "save_maxfr": 3, - "MaybeMaxfrSlot": 6, - "maybe_save_trail_info": 2, - "MaybeTrailSlots": 8, - "SaveTrailCode": 4, - "maybe_save_region_commit_frame": 4, - "MaybeRegionCommitFrameInfo": 8, - "SaveRegionCommitFrameCode": 2, - "SaveRegionCommitFrameCode.": 2, - "RestoreMaxfrCode": 3, - "restore_maxfr": 3, - "release_temp_slot": 1, - "maybe_restore_trail_info": 2, - "CommitTrailCode": 4, - "maybe_restore_region_commit_frame": 2, - "SuccessRegionCode": 3, - "_FailureRegionCode": 1, - "SuccessRegionCode.": 1, - "commit_hijack_info": 2, - "commit_temp_frame": 3, - "commit_quarter_hijack": 3, - "commit_half_hijack": 3, - "commit_full_hijack": 3, - "SemiCommitInfo": 4, - "clone_resume_point": 1, - "NewResumePoint": 4, - "stack.push": 1, - "StackLabelConst": 7, - "UseMinimalModelStackCopyCut": 4, - "Components": 4, - "foreign_proc_raw_code": 4, - "cannot_branch_away": 4, - "proc_affects_liveness": 2, - "live_lvals_info": 4, - "proc_does_not_affect_liveness": 2, - "MD": 4, - "proc_may_duplicate": 2, - "MarkCode": 3, - "foreign_proc_code": 2, - "proc_will_not_call_mercury": 2, - "HijackCode": 5, - "UseMinimalModel": 3, - "CutCode": 4, - "SuccessUndoCode": 5, - "FailureUndoCode": 5, - "AfterCommit": 2, - "ResumePointCode": 2, - "FailCode": 2, - "RestoreTrailCode": 2, - "FailureRegionCode": 2, - "SuccLabel": 3, - "GotoSuccLabel": 2, - "SuccLabelCode": 1, - "SuccessCode": 2, - "FailureCode": 2, - "SuccLabelCode.": 1, - "_ForwardLiveVarsBeforeGoal": 1, - "check_hlds.polymorphism.": 1, - "hlds.": 1, - "mdbcomp.": 1, - "parse_tree.": 1, - "polymorphism_process_module": 2, - "polymorphism_process_generated_pred": 2, - "unification_typeinfos_rtti_varmaps": 2, - "rtti_varmaps": 9, - "unification": 8, - "polymorphism_process_new_call": 2, - "builtin_state": 1, - "call_unify_context": 2, - "sym_name": 3, - "hlds_goal": 45, - "poly_info": 45, - "polymorphism_make_type_info_vars": 1, - "polymorphism_make_type_info_var": 1, - "int_or_var": 2, - "iov_int": 1, - "iov_var": 1, - "gen_extract_type_info": 1, - "tvar": 10, - "kind": 1, - "vartypes": 12, - "poly_info.": 1, - "create_poly_info": 1, - "poly_info_extract": 1, - "build_typeclass_info_type": 3, - "prog_constraint": 4, - "type_is_typeclass_info": 1, - "type_is_type_info_or_ctor_type": 1, - "build_type_info_type": 1, - "get_special_proc": 1, - "special_pred_id": 2, - "get_special_proc_det": 1, - "convert_pred_to_lambda_goal": 3, - "purity": 1, - "lambda_eval_method": 1, - "unify_context": 3, - "context": 1, - "unify_rhs": 4, - "fix_undetermined_mode_lambda_goal": 2, - "rhs_lambda_goal": 7, - "init_type_info_var": 1, - "init_const_type_ctor_info_var": 1, - "type_ctor": 1, - "cons_id": 2, - "type_info_kind": 2, - "type_ctor_info.": 1, - "new_type_info_var_raw": 1, - "check_hlds.clause_to_proc.": 1, - "check_hlds.mode_util.": 1, - "hlds.from_ground_term_util.": 1, - "hlds.const_struct.": 1, - "hlds.goal_util.": 1, - "hlds.hlds_args.": 1, - "hlds.hlds_clauses.": 1, - "hlds.hlds_code_util.": 1, - "hlds.passes_aux.": 1, - "hlds.pred_table.": 1, - "hlds.quantification.": 1, - "hlds.special_pred.": 1, - "libs.": 1, - "mdbcomp.program_representation.": 1, - "parse_tree.prog_mode.": 1, - "parse_tree.prog_type_subst.": 1, - "solutions.": 1, - "module_info_get_preds": 3, - ".ModuleInfo": 8, - "Preds0": 2, - "PredIds0": 2, - "list.foldl": 6, - "maybe_polymorphism_process_pred": 3, - "Preds1": 2, - "PredIds1": 2, - "fixup_pred_polymorphism": 4, - "expand_class_method_bodies": 1, - "PredModule": 8, - "pred_info_module": 4, - "PredName": 8, - "pred_info_name": 4, - "PredArity": 6, - "pred_info_orig_arity": 3, - "no_type_info_builtin": 3, - "copy_module_clauses_to_procs": 1, - "polymorphism_process_pred_msg": 3, - "PredTable0": 3, - "map.lookup": 2, - "PredInfo0": 16, - "pred_info_get_clauses_info": 2, - "ClausesInfo0": 5, - "clauses_info_get_vartypes": 2, - "VarTypes0": 12, - "clauses_info_get_headvars": 2, - "pred_info_get_arg_types": 7, - "TypeVarSet": 15, - "ExistQVars": 13, - "ArgTypes0": 3, - "proc_arg_vector_partition_poly_args": 1, - "ExtraHeadVarList": 2, - "OldHeadVarList": 2, - "lookup_var_types": 6, - "ExtraArgTypes": 2, - "ArgTypes": 6, - "pred_info_set_arg_types": 1, - "PredInfo1": 5, - "OldHeadVarTypes": 2, - "type_list_subsumes": 2, - "Subn": 3, - "map.is_empty": 1, - "pred_info_set_existq_tvar_binding": 1, - "PredInfo2": 7, - "polymorphism_introduce_exists_casts_pred": 3, - "PredTable": 2, - "module_info_set_preds": 1, - "pred_info_get_procedures": 2, - ".PredInfo": 2, - "Procs0": 4, - "map.map_values_only": 1, - ".ProcInfo": 2, - "introduce_exists_casts_proc": 1, - "Procs": 4, - "pred_info_set_procedures": 2, - "trace": 4, - "compiletime": 4, - "flag": 4, - "write_pred_progress_message": 1, - "polymorphism_process_pred": 4, - "selected_pred": 1, - "ground": 9, - "untrailed": 2, - "level": 1, - "pred_id_to_int": 1, - "impure": 2, - "set_selected_pred": 2, - "polymorphism_process_clause_info": 3, - "ClausesInfo": 13, - "Info": 134, - "ExtraArgModes": 20, - "poly_info_get_module_info": 4, - "poly_info_get_const_struct_db": 1, - "ConstStructDb": 2, - "module_info_set_const_struct_db": 1, - "poly_info_get_typevarset": 4, - "pred_info_set_typevarset": 1, - "pred_info_set_clauses_info": 1, - "ProcIds": 5, - "pred_info_procids": 2, - "polymorphism_process_proc_in_table": 3, - "module_info_set_pred_info": 1, - "clauses_info": 6, - "poly_arg_vector": 9, - "mer_mode": 14, - "ModuleInfo0": 8, - "init_poly_info": 1, - ".ClausesInfo": 2, - "_VarSet": 1, - "ExplicitVarTypes": 2, - "_TVarNameMap": 1, - "_VarTypes": 1, - "HeadVars0": 5, - "ClausesRep0": 2, - "ItemNumbers": 2, - "_RttiVarMaps": 1, - "HaveForeignClauses": 2, - "setup_headvars": 3, - "UnconstrainedTVars": 15, - "ExtraTypeInfoHeadVars": 4, - "ExistTypeClassInfoHeadVars": 6, - "get_clause_list": 1, - "Clauses0": 2, - "list.map_foldl": 2, - "polymorphism_process_clause": 3, - "Clauses": 2, - "poly_info_get_varset": 4, - ".Info": 25, - "poly_info_get_var_types": 6, - "poly_info_get_rtti_varmaps": 4, - "RttiVarMaps": 16, - "set_clause_list": 1, - "ClausesRep": 2, - "TVarNameMap": 2, - "while": 1, - "adding": 1, - "clauses.": 1, - "proc_arg_vector": 9, - "clause": 2, - "OldHeadVars": 2, - "NewHeadVars": 2, - "Clause": 2, - "pred_info_is_imported": 2, - "Goal0": 21, - ".Clause": 1, - "clause_body": 2, - "empty_cache_maps": 4, - "poly_info_set_num_reuses": 1, - "polymorphism_process_goal": 20, - "Goal1": 2, - "produce_existq_tvars": 3, - "Goal2": 2, - "pred_info_get_exist_quant_tvars": 1, - "fixup_quantification": 1, - "Goal": 40, - "proc_table": 2, - "ProcTable": 2, - ".ProcTable": 1, - "ProcInfo0": 2, - "polymorphism_process_proc": 3, - "pred_info_is_pseudo_imported": 1, - "hlds_pred.in_in_unification_proc_id": 1, - "HeadVarList": 4, - "proc_arg_vector_to_list": 2, - "clauses_info_get_rtti_varmaps": 1, - "clauses_info_get_varset": 1, - "proc_info_set_headvars": 1, - "proc_info_set_rtti_varmaps": 1, - "proc_info_set_varset": 1, - "proc_info_set_vartypes": 1, - "copy_clauses_to_proc": 1, - "proc_info_get_argmodes": 2, - "ArgModes1": 2, - "ExtraArgModesList": 2, - "poly_arg_vector_to_list": 1, - "ArgModes": 5, - "proc_info_set_argmodes": 1, - "ExtraHeadTypeInfoVars": 7, - "ExistHeadTypeClassInfoVars": 9, - "pred_info_get_origin": 1, - "Origin": 8, - "ExtraArgModes0": 3, - "poly_arg_vector_init": 1, - "origin_instance_method": 1, - "InstanceMethodConstraints": 4, - "setup_headvars_instance_method": 3, - "origin_special_pred": 1, - "origin_transformed": 1, - "origin_created": 1, - "origin_assertion": 1, - "origin_lambda": 1, - "origin_user": 1, - "pred_info_get_class_context": 4, - "ClassContext": 6, - "InstanceTVars": 7, - "InstanceUnconstrainedTVars": 2, - "InstanceUnconstrainedTypeInfoVars": 2, - "setup_headvars_2": 4, - "instance_method_constraints": 2, - "InstanceTypes": 2, - "InstanceConstraints": 3, - "type_vars_list": 5, - "get_unconstrained_tvars": 1, - "UnconstrainedInstanceTVars": 6, - "ArgTypeVarSet": 5, - "make_head_vars": 3, - "UnconstrainedInstanceTypeInfoVars": 7, - "make_typeclass_info_head_vars": 3, - "do_record_type_info_locns": 3, - "InstanceHeadTypeClassInfoVars": 4, - "proc_arg_vector_set_instance_type_infos": 1, - "proc_arg_vector_set_instance_typeclass_infos": 1, - "RttiVarMaps0": 4, - "rtti_reuse_typeclass_info_var": 3, - "poly_info_set_rtti_varmaps": 3, - "in_mode": 3, - "InMode": 3, - "list.duplicate": 6, - "list.length": 16, - "UnconstrainedInstanceTypeInfoModes": 2, - "InstanceHeadTypeClassInfoModes": 2, - "poly_arg_vector_set_instance_type_infos": 1, - "poly_arg_vector_set_instance_typeclass_infos": 1, - "prog_constraints": 1, - "AllUnconstrainedTVars": 2, - "AllExtraHeadTypeInfoVars": 2, - "constraints": 4, - "UnivConstraints": 3, - "ExistConstraints": 6, - "prog_type.constraint_list_get_tvars": 2, - "UnivConstrainedTVars": 2, - "ExistConstrainedTVars": 2, - "poly_info_get_constraint_map": 4, - "ConstraintMap": 12, - "get_improved_exists_head_constraints": 4, - "ActualExistConstraints": 9, - "pred_info_get_markers": 1, - "PredMarkers": 2, - "check_marker": 1, - "marker_class_method": 1, - "RecordExistQLocns": 3, - "do_not_record_type_info_locns": 1, - "UnivHeadTypeClassInfoVars": 4, - "HeadTypeVars": 2, - "list.delete_elems": 12, - "UnconstrainedTVars0": 2, - "UnconstrainedTVars1": 2, - "UnconstrainedTVars2": 2, - "list.remove_dups": 4, - "UnconstrainedUnivTVars": 7, - "UnconstrainedExistTVars": 6, - "ExistHeadTypeInfoVars": 5, - "UnivHeadTypeInfoVars": 4, - "list.condense": 4, - "proc_arg_vector_set_univ_type_infos": 1, - "HeadVars1": 2, - "proc_arg_vector_set_exist_type_infos": 1, - "HeadVars2": 2, - "proc_arg_vector_set_univ_typeclass_infos": 1, - "HeadVars3": 2, - "proc_arg_vector_set_exist_typeclass_infos": 1, - "In": 6, - "out_mode": 2, - "Out": 6, - "NumUnconstrainedUnivTVars": 2, - "NumUnconstrainedExistTVars": 2, - "NumUnivClassInfoVars": 2, - "NumExistClassInfoVars": 2, - "UnivTypeInfoModes": 2, - "ExistTypeInfoModes": 2, - "UnivTypeClassInfoModes": 2, - "ExistTypeClassInfoModes": 2, - "poly_arg_vector_set_univ_type_infos": 1, - "poly_arg_vector_set_exist_type_infos": 1, - "poly_arg_vector_set_univ_typeclass_infos": 1, - "poly_arg_vector_set_exist_typeclass_infos": 1, - "ToLocn": 4, - "TheVar": 2, - "TheLocn": 2, - "list.map": 17, - "UnivTypeLocns": 2, - "list.foldl_corresponding": 3, - "rtti_det_insert_type_info_locn": 3, - "ExistTypeLocns": 2, - "UnconstrainedInstanceTypeLocns": 2, - ".RttiVarMaps": 1, - "TypeInfoHeadVars": 2, - "pred_info_get_tvar_kinds": 2, - "KindMap": 2, - "PredClassContext": 5, - "PredExistConstraints": 2, - "exist_constraints": 1, - "ExistQVarsForCall": 2, - "goal_info_get_context": 4, - "make_typeclass_info_vars": 3, - "ExistTypeClassVarsMCAs": 2, - "ExtraTypeClassGoals": 5, - "assoc_list.keys": 8, - "ExistTypeClassVars": 3, - "assign_var_list": 8, - "ExtraTypeClassUnifyGoals": 2, - "vartypes_is_empty": 1, - "PredToActualTypeSubst": 4, - "ActualArgTypes": 8, - "ArgTypeSubst": 2, - "apply_subst_to_tvar_list": 1, - "ActualTypes": 2, - "polymorphism_do_make_type_info_vars": 5, - "TypeInfoVarsMCAs": 2, - "ExtraTypeInfoGoals": 4, - "TypeInfoVars": 5, - "ExtraTypeInfoUnifyGoals": 2, - "GoalList": 8, - "conj_list_to_goal": 6, - "Var1": 5, - "Vars1": 2, - "Var2": 5, - "Vars2": 2, - "Goals": 13, - "assign_var": 3, - "true_goal": 1, - "term.context_init": 2, - "create_pure_atomic_complicated_unification": 1, - "rhs_var": 2, - "umc_explicit": 1, - "constraint_map": 1, - "NumExistConstraints": 4, - "search_hlds_constraint_list": 1, - "unproven": 3, - "goal_id": 1, - "ActualExistConstraints0": 2, - "GoalExpr0": 18, - "GoalInfo0": 41, - "generic_call": 1, - "plain_call": 5, - "ArgVars0": 23, - "polymorphism_process_call": 4, - "ExtraVars": 13, - "ExtraGoals": 13, - "ArgVars": 6, - "CallExpr": 4, - "call_args": 1, - "Call": 4, - "call_foreign_proc": 4, - "polymorphism_process_foreign_proc": 3, - "XVar": 11, - "Y": 9, - "Mode": 12, - "Unification": 16, - "UnifyContext": 15, - "polymorphism_process_unify": 4, - "conj": 5, - "ConjType": 4, - "Goals0": 13, - "plain_conj": 4, - "polymorphism_process_plain_conj": 5, - "parallel_conj": 1, - "get_cache_maps_snapshot": 11, - "InitialSnapshot": 36, - "polymorphism_process_par_conj": 5, - "GoalExpr": 19, - "disj": 2, - "polymorphism_process_disj": 6, - "set_cache_maps_snapshot": 15, - "if_then_else": 2, - "Cond0": 2, - "Then0": 2, - "Else0": 2, - "Cond": 2, - "Then": 2, - "Else": 2, - "negation": 2, - "SubGoal0": 14, - "SubGoal": 16, - "switch": 2, - "CanFail": 4, - "Cases0": 4, - "polymorphism_process_cases": 5, - "Cases": 4, - "scope": 7, - "Reason0": 16, - "from_ground_term": 2, - "TermVar": 4, - "Kind": 5, - "from_ground_term_initial": 2, - "polymorphism_process_from_ground_term_initial": 3, - "from_ground_term_construct": 1, - "from_ground_term_deconstruct": 1, - "from_ground_term_other": 1, - "promise_solutions": 1, - "promise_purity": 1, - "require_detism": 1, - "require_complete_switch": 1, - "commit": 1, - "barrier": 1, - "loop_control": 1, - "exist_quant": 1, - "trace_goal": 1, - "shorthand": 2, - "ShortHand0": 4, - "atomic_goal": 2, - "GoalType": 2, - "Outer": 2, - "Inner": 2, - "MainGoal0": 2, - "OrElseGoals0": 2, - "OrElseInners": 2, - "MainGoal": 2, - "OrElseGoals": 2, - "ShortHand": 3, - "try_goal": 2, - "MaybeIO": 2, - "ResultVar": 2, - "SubGoalExpr0": 4, - "SubGoalInfo": 2, - "Conjuncts0": 2, - "ConjunctA0": 2, - "ConjunctB0": 2, - "ConjunctA": 2, - "ConjunctB": 2, - "Conjuncts": 2, - "SubGoalExpr": 2, - "bi_implication": 1, - "hlds_goal_expr": 2, - "SubGoalInfo0": 2, - "SubGoals0Prime": 2, - "SubGoals0": 2, - "polymorphism_process_fgti_goals": 5, - "RevMarkedSubGoals": 2, - "fgt_invariants_kept": 2, - "InvariantsStatus": 7, - "Reason": 2, - "fgt_invariants_broken": 2, - "introduce_partial_fgt_scopes": 1, - "deconstruct_top_down": 1, - "fgt_marked_goal": 2, - "fgt_invariants_status": 2, - "RevMarkedGoals": 4, - "OldInfo": 3, - "XVarPrime": 2, - "ModePrime": 2, - "UnificationPrime": 2, - "UnifyContextPrime": 2, - "rhs_functor": 5, - "ConsIdPrime": 2, - "YVarsPrime": 2, - "ConsId": 10, - "YVars": 4, - "polymorphism_process_unify_functor": 4, - "Changed": 10, - "VarSetBefore": 2, - "MaxVarBefore": 2, - "varset.max_var": 2, - "poly_info_get_num_reuses": 2, - "NumReusesBefore": 2, - "VarSetAfter": 2, - "MaxVarAfter": 2, - "NumReusesAfter": 2, - "MarkedGoal": 3, - "fgt_kept_goal": 1, - "fgt_broken_goal": 1, - ".RevMarkedGoals": 1, - "unify_mode": 2, - "Unification0": 8, - "_YVar": 1, - "unification_typeinfos": 5, - "_Changed": 3, - "Args": 11, - "Purity": 9, - "Groundness": 6, - "PredOrFunc": 6, - "EvalMethod": 8, - "LambdaVars": 13, - "Modes": 4, - "Det": 4, - "LambdaGoal0": 5, - "LambdaGoal1": 2, - "fixup_lambda_quantification": 1, - "LambdaGoal": 6, - "NonLocalTypeInfos": 3, - "set_of_var.to_sorted_list": 1, - "NonLocalTypeInfosList": 2, - "Y1": 2, - "NonLocals0": 10, - "goal_info_get_nonlocals": 6, - "NonLocals": 12, - "goal_info_set_nonlocals": 6, - "type_vars": 2, - "TypeVars": 8, - "get_type_info_locn": 1, - "TypeInfoLocns": 6, - "add_unification_typeinfos": 4, - "rtti_lookup_type_info_locn": 1, - "type_info_locn": 1, - "type_info_locn_var": 1, - "TypeInfoVars0": 2, - ".GoalInfo": 1, - "set_of_var.insert_list": 4, - ".Unification": 5, - "complicated_unify": 2, - "construct": 1, - "simple_test": 1, - "X0": 8, - "ConsId0": 5, - "Mode0": 4, - "TypeOfX": 6, - "closure_cons": 1, - "ShroudedPredProcId": 2, - "ProcId0": 3, - "unshroud_pred_proc_id": 1, - "type_is_higher_order_details": 1, - "_PredOrFunc": 1, - "CalleeArgTypes": 2, - "invalid_proc_id": 1, - "goal_info_add_feature": 1, - "feature_lambda_undetermined_mode": 1, - "GoalInfo1": 6, - "VarSet0": 2, - "Functor0": 6, - "poly_info_set_varset_and_types": 1, - "cons": 3, - "ConsTypeCtor": 2, - "remove_new_prefix": 1, - "OrigFunctor": 2, - "IsConstruction": 7, - "type_util.get_existq_cons_defn": 1, - "ConsDefn": 2, - "polymorphism_process_existq_unify_functor": 3, - "UnifyExpr": 2, - "Unify": 2, - "PredArgTypes": 10, - "create_fresh_vars": 5, - "QualifiedPName": 5, - "qualified": 1, - "cons_id_dummy_type_ctor": 1, - "RHS": 2, - "CallUnifyContext": 2, - "LambdaGoalExpr": 2, - "not_builtin": 3, - "OutsideVars": 2, - "InsideVars": 2, - "set_of_var.intersect": 1, - "LambdaNonLocals": 2, - "GoalId": 8, - "goal_info_get_goal_id": 3, - "goal_info_init": 1, - "LambdaGoalInfo0": 2, - "goal_info_set_context": 1, - "LambdaGoalInfo1": 2, - "LambdaGoalInfo2": 2, - "goal_info_set_purity": 1, - "LambdaGoalInfo3": 2, - "goal_info_set_goal_id": 1, - "LambdaGoalInfo": 4, - "lambda_modes_and_det": 4, - "LambdaModes": 6, - "LambdaDet": 6, - "pred_info_is_pred_or_func": 1, - "ho_ground": 1, - "_LambdaModes0": 1, - "_LambdaDet0": 1, - "goal_to_conj_list": 1, - "LambdaGoalList0": 2, - "list.split_last": 1, - "LambdaGoalButLast0": 2, - "LastGoal0": 2, - "LastGoalExpr0": 2, - "LastGoalInfo0": 2, - "PredId0": 2, - "_DummyProcId": 1, - "Args0": 5, - "MaybeCallUnifyContext0": 2, - "QualifiedPName0": 2, - "LambdaGoalButLast": 2, - "LastGoalInfo": 2, - "MaybeCallUnifyContext": 4, - "LastGoalExpr": 2, - "LastGoal": 2, - "prog_vars": 1, - "determinism": 1, - "NumArgModes": 2, - "NumLambdaVars": 2, - "list.drop": 2, - "LambdaModesPrime": 2, - "proc_info_get_declared_determinism": 1, - "MaybeDet": 3, - "sorry": 1, - "varset.new_var": 1, - "add_var_type": 1, - "ctor_defn": 2, - "CtorDefn": 2, - "ActualRetType": 2, - "CtorTypeVarSet": 2, - "CtorExistQVars": 2, - "CtorKindMap": 2, - "CtorExistentialConstraints": 2, - "CtorArgTypes": 2, - "CtorRetType": 2, - "TypeVarSet0": 5, - "tvarset_merge_renaming": 3, - "CtorToParentRenaming": 6, - "apply_variable_renaming_to_tvar_list": 2, - "ParentExistQVars": 6, - "apply_variable_renaming_to_tvar_kind_map": 2, - "ParentKindMap": 7, - "apply_variable_renaming_to_prog_constraint_list": 1, - "ParentExistentialConstraints": 3, - "apply_variable_renaming_to_type_list": 4, - "ParentArgTypes": 6, - "apply_variable_renaming_to_type": 1, - "ParentRetType": 2, - "poly_info_set_typevarset": 3, - "type_list_subsumes_det": 3, - "ParentToActualTypeSubst": 6, - "NumExistentialConstraints": 3, - "lookup_hlds_constraint_list": 4, - "ActualExistentialConstraints": 4, - "ExtraTypeClassVarsMCAs": 2, - "ExtraTypeClassVars": 2, - "assumed": 2, - "make_existq_typeclass_info_vars": 2, - "constraint_list_get_tvars": 3, - "ParentExistConstrainedTVars": 4, - "ParentUnconstrainedExistQVars": 2, - "apply_rec_subst_to_tvar_list": 4, - "ActualExistentialTypes": 2, - "ExtraTypeInfoVarsMCAs": 2, - "ExtraTypeInfoVars": 2, - "ExtraTypeClassVars.": 1, - "bound": 1, - "Attributes": 2, - "ProcExtraArgs": 2, - "MaybeTraceRuntimeCond": 2, - "Impl": 14, - "foreign_arg_var": 1, - "CanOptAwayUnnamed": 11, - "polymorphism_process_foreign_proc_args": 3, - "ExtraArgs": 5, - "pragma_foreign_code_impl": 4, - "foreign_arg": 1, - "PredTypeVarSet": 8, - "UnivCs": 4, - "ExistCs": 4, - "UnivVars0": 2, - "get_constrained_vars": 2, - "UnivConstrainedVars": 2, - "ExistVars0": 2, - "ExistConstrainedVars": 2, - "PredTypeVars0": 2, - "PredTypeVars1": 2, - "PredTypeVars2": 2, - "PredTypeVars": 3, - "foreign_proc_add_typeclass_info": 4, - "ExistTypeClassArgInfos": 2, - "UnivTypeClassArgInfos": 2, - "TypeClassArgInfos": 2, - "list.filter": 1, - "ExistUnconstrainedVars": 2, - "UnivUnconstrainedVars": 2, - "foreign_proc_add_typeinfo": 4, - "ExistTypeArgInfos": 2, - "UnivTypeArgInfos": 2, - "TypeInfoArgInfos": 2, - "ArgInfos": 2, - "TypeInfoTypes": 2, - "type_info_type": 1, - "UnivTypes": 2, - "ExistTypes": 2, - "OrigArgTypes": 2, - "make_foreign_args": 1, - "tvarset": 3, - "box_policy": 2, - "Constraint": 2, - "MaybeArgName": 7, - "native_if_possible": 2, - "SymName": 4, - "sym_name_to_string_sep": 1, - "TypeVarNames": 2, - "underscore_and_tvar_name": 3, - "string.append_list": 1, - "ConstraintVarName": 3, - "foreign_code_does_not_use_variable": 4, - "TVar": 4, - "varset.search_name": 1, - "TypeVarName": 2, - "C_VarName": 3, - "VarName": 2, - "foreign_code_uses_variable": 1, - "TVarName": 2, - "TVarName0": 1, - "TVarName0.": 1, - "cache_maps": 3, - "case": 4, - "Case0": 2, - "Case": 2, - "MainConsId": 2, - "OtherConsIds": 2, - "PredExistQVars": 2, - "PredKindMap": 3, - "varset.is_empty": 1, - "PredToParentTypeRenaming": 6, - "ParentTVars": 4, - "apply_variable_renaming_to_prog_constraints": 1, - "ParentClassContext": 2, - "ParentUnivConstraints": 3, - "ParentExistConstraints": 3, - "ParentUnivConstrainedTVars": 2, - "ParentUnconstrainedTVars0": 2, - "ParentUnconstrainedTVars1": 2, - "ParentUnconstrainedTVars": 3, - "ParentUnconstrainedUnivTVars": 3, - "ParentUnconstrainedExistTVars": 2, - "NumUnivConstraints": 2, - "ActualUnivConstraints": 2, - "ActualExistQVarTypes": 2, - "prog_type.type_list_to_var_list": 1, - "ActualExistQVars0": 2, - "ActualExistQVars": 2, - "ExtraUnivClassVarsMCAs": 2, - "ExtraUnivClassGoals": 2, - "ExtraUnivClassVars": 2, - "ExtraExistClassVars": 2, - "ExtraExistClassGoals": 2, - "ActualUnconstrainedUnivTypes": 2, - "ExtraUnivTypeInfoVarsMCAs": 2, - "ExtraUnivTypeInfoGoals": 2, - "ExtraUnivTypeInfoVars": 2, - "ActualUnconstrainedExistTypes": 2, - "ExtraExistTypeInfoVarsMCAs": 2, - "ExtraExistTypeInfoGoals": 2, - "ExtraExistTypeInfoVars": 2, - "CalleePredInfo": 2, - "CalleeProcInfo": 3, - "CallArgs0": 3, - "BuiltinState": 2, - "TVarSet0": 2, - "ActualArgTypes0": 3, - "PredTVarSet": 2, - "_PredExistQVars": 1, - "CalleeHeadVars": 2, - "proc_info_get_rtti_varmaps": 1, - "CalleeRttiVarMaps": 2, - "NCallArgs0": 2, - "NPredArgs": 2, - "NExtraArgs": 3, - "OrigPredArgTypes0": 2, - "list.take": 1, - "CalleeExtraHeadVars0": 2, - "OrigPredArgTypes": 2, - "CalleeExtraHeadVars": 2, - "TVarSet": 2, - "PredToParentRenaming": 3, - "OrigParentArgTypes": 2, - "ParentToActualTSubst": 2, - "GetTypeInfoTypes": 2, - "ProgVar": 2, - "TypeInfoType": 2, - "rtti_varmaps_var_info": 1, - "VarInfo": 4, - "type_info_var": 1, - "typeclass_info_var": 1, - "non_rtti_var": 1, - "PredTypeInfoTypes": 2, - "ParentTypeInfoTypes": 2, - "apply_rec_subst_to_type_list": 1, - "ActualTypeInfoTypes": 2, - "Ctxt": 2, - "ExtraArgsConstArgs": 2, - "CallArgs": 2, - "NonLocals1": 2, - "CallGoalExpr": 2, - "CallGoal": 2 - }, - "Monkey": { - "Strict": 1, - "sample": 1, - "class": 1, - "from": 1, - "the": 1, - "documentation": 1, - "Class": 3, - "Game": 1, - "Extends": 2, - "App": 1, - "Function": 2, - "New": 1, - "(": 12, - ")": 12, - "End": 8, - "DrawSpiral": 3, - "clock": 3, - "Local": 3, - "w": 3, - "DeviceWidth/2": 1, - "For": 1, - "i#": 1, - "Until": 1, - "w*1.5": 1, - "Step": 1, - ".2": 1, - "x#": 1, - "y#": 1, - "x": 2, - "+": 5, - "i*Sin": 1, - "i*3": 1, - "y": 2, - "i*Cos": 1, - "i*2": 1, - "DrawRect": 1, - "Next": 1, - "hitbox.Collide": 1, - "event.pos": 1, - "Field": 2, - "updateCount": 3, - "Method": 4, - "OnCreate": 1, - "Print": 2, - "SetUpdateRate": 1, - "OnUpdate": 1, - "OnRender": 1, - "Cls": 1, - "updateCount*1.1": 1, - "Enemy": 1, - "Die": 1, - "Abstract": 1, - "field": 1, - "testField": 1, - "Bool": 2, - "True": 2, - "oss": 1, - "he": 2, - "-": 2, - "killed": 1, - "me": 1, - "b": 6, - "extending": 1, - "with": 1, - "generics": 1, - "VectorNode": 1, - "Node": 1, - "": 1, - "array": 1, - "syntax": 1, - "Global": 14, - "listOfStuff": 3, - "String": 4, - "[": 6, - "]": 6, - "lessStuff": 1, - "oneStuff": 1, - "a": 3, - "comma": 1, - "separated": 1, - "sequence": 1, - "text": 1, - "worstCase": 1, - "worst.List": 1, - "": 1, - "escape": 1, - "characers": 1, - "in": 1, - "strings": 1, - "string3": 1, - "string4": 1, - "string5": 1, - "string6": 1, - "prints": 1, - ".ToUpper": 1, - "Boolean": 1, - "shorttype": 1, - "boolVariable1": 1, - "boolVariable2": 1, - "False": 1, - "preprocessor": 1, - "keywords": 1, - "#If": 1, - "TARGET": 2, - "DoStuff": 1, - "#ElseIf": 1, - "DoOtherStuff": 1, - "#End": 1, - "operators": 1, - "|": 2, - "&": 1, - "c": 1 - }, - "Moocode": { - ";": 505, - "while": 15, - "(": 600, - "read": 1, - "player": 2, - ")": 593, - "endwhile": 14, - "I": 1, - "M": 1, - "P": 1, - "O": 1, - "R": 1, - "T": 2, - "A": 1, - "N": 1, - "The": 2, - "following": 2, - "code": 43, - "cannot": 1, - "be": 1, - "used": 1, - "as": 28, - "is.": 1, - "You": 1, - "will": 1, - "need": 1, - "to": 1, - "rewrite": 1, - "functionality": 1, - "that": 3, - "is": 6, - "not": 2, - "present": 1, - "in": 43, - "your": 1, - "server/core.": 1, - "most": 1, - "straight": 1, - "-": 98, - "forward": 1, - "target": 7, - "other": 1, - "than": 1, - "Stunt/Improvise": 1, - "a": 12, - "server/core": 1, - "provides": 1, - "map": 5, - "datatype": 1, - "and": 1, - "anonymous": 1, - "objects.": 1, - "Installation": 1, - "my": 1, - "server": 1, - "uses": 1, - "the": 4, - "object": 1, - "numbers": 1, - "#36819": 1, - "MOOcode": 4, - "Experimental": 2, - "Language": 2, - "Package": 2, - "#36820": 1, - "Changelog": 1, - "#36821": 1, - "Dictionary": 1, - "#36822": 1, - "Compiler": 2, - "#38128": 1, - "Syntax": 4, - "Tree": 1, - "Pretty": 1, - "Printer": 1, - "#37644": 1, - "Tokenizer": 2, - "Prototype": 25, - "#37645": 1, - "Parser": 2, - "#37648": 1, - "Symbol": 2, - "#37649": 1, - "Literal": 1, - "#37650": 1, - "Statement": 8, - "#37651": 1, - "Operator": 11, - "#37652": 1, - "Control": 1, - "Flow": 1, - "#37653": 1, - "Assignment": 2, - "#38140": 1, - "Compound": 1, - "#38123": 1, - "Prefix": 1, - "#37654": 1, - "Infix": 1, - "#37655": 1, - "Name": 1, - "#37656": 1, - "Bracket": 1, - "#37657": 1, - "Brace": 1, - "#37658": 1, - "If": 1, - "#38119": 1, - "For": 1, - "#38120": 1, - "Loop": 1, - "#38126": 1, - "Fork": 1, - "#38127": 1, - "Try": 1, - "#37659": 1, - "Invocation": 1, - "#37660": 1, - "Verb": 1, - "Selector": 2, - "#37661": 1, - "Property": 1, - "#38124": 1, - "Error": 1, - "Catching": 1, - "#38122": 1, - "Positional": 1, - "#38141": 1, - "From": 1, - "#37662": 1, - "Utilities": 1, - "#36823": 1, - "Tests": 4, - "#36824": 1, - "#37646": 1, - "#37647": 1, - ".": 30, - "parent": 1, - "plastic.tokenizer_proto": 4, - "@program": 29, - "_": 4, - "_ensure_prototype": 4, - "application/x": 27, - "moocode": 27, - "typeof": 11, - "this": 114, - "OBJ": 3, - "||": 19, - "raise": 23, - "E_INVARG": 3, - "_ensure_instance": 7, - "ANON": 2, - "plastic.compiler": 3, - "_lookup": 2, - "private": 1, - "{": 112, - "name": 9, - "}": 112, - "args": 26, - "if": 90, - "value": 73, - "this.variable_map": 3, - "[": 99, - "]": 102, - "E_RANGE": 17, - "return": 61, - "else": 45, - "tostr": 51, - "random": 3, - "this.reserved_names": 1, - "endif": 93, - "compile": 1, - "source": 32, - "options": 3, - "tokenizer": 6, - "this.plastic.tokenizer_proto": 2, - "create": 16, - "parser": 89, - "this.plastic.parser_proto": 2, - "compiler": 2, - "try": 2, - "statements": 13, - "except": 2, - "ex": 4, - "ANY": 3, - ".tokenizer.row": 1, - "endtry": 2, - "for": 31, - "statement": 29, - "statement.type": 10, - "@source": 3, - "p": 82, - "@compiler": 1, - "endfor": 31, - "ticks_left": 4, - "<": 13, - "seconds_left": 4, - "&&": 39, - "suspend": 4, - "statement.value": 20, - "elseif": 41, - "_generate": 1, - "isa": 21, - "this.plastic.sign_operator_proto": 1, - "|": 9, - "statement.first": 18, - "statement.second": 13, - "this.plastic.control_flow_statement_proto": 1, - "first": 22, - "statement.id": 3, - "this.plastic.if_statement_proto": 1, - "s": 47, - "respond_to": 9, - "@code": 28, - "@this": 13, - "+": 39, - "i": 29, - "length": 11, - "LIST": 6, - "this.plastic.for_statement_proto": 1, - "statement.subtype": 2, - "this.plastic.loop_statement_proto": 1, - "prefix": 4, - "this.plastic.fork_statement_proto": 1, - "this.plastic.try_statement_proto": 1, - "x": 9, - "@x": 3, - "join": 6, - "this.plastic.assignment_operator_proto": 1, - "statement.first.type": 1, - "res": 19, - "rest": 3, - "v": 17, - "statement.first.value": 1, - "v.type": 2, - "v.first": 2, - "v.second": 1, - "this.plastic.bracket_operator_proto": 1, - "statement.third": 4, - "this.plastic.brace_operator_proto": 1, - "this.plastic.invocation_operator_proto": 1, - "@a": 2, - "statement.second.type": 2, - "this.plastic.property_selector_operator_proto": 1, - "this.plastic.error_catching_operator_proto": 1, - "second": 18, - "this.plastic.literal_proto": 1, - "toliteral": 1, - "this.plastic.positional_symbol_proto": 1, - "this.plastic.prefix_operator_proto": 3, - "this.plastic.infix_operator_proto": 1, - "this.plastic.traditional_ternary_operator_proto": 1, - "this.plastic.name_proto": 1, - "plastic.printer": 2, - "_print": 4, - "indent": 4, - "result": 7, - "item": 2, - "@result": 2, - "E_PROPNF": 1, - "print": 1, - "instance": 59, - "instance.row": 1, - "instance.column": 1, - "instance.source": 1, - "advance": 16, - "this.token": 21, - "this.source": 3, - "row": 23, - "this.row": 2, - "column": 63, - "this.column": 2, - "eol": 5, - "block_comment": 6, - "inline_comment": 4, - "loop": 14, - "len": 3, - "continue": 16, - "next_two": 4, - "column..column": 1, - "c": 44, - "break": 6, - "re": 1, - "not.": 1, - "Worse": 1, - "*": 4, - "valid": 2, - "error": 6, - "like": 4, - "E_PERM": 4, - "treated": 2, - "literal": 2, - "an": 2, - "invalid": 2, - "E_FOO": 1, - "variable.": 1, - "Any": 1, - "starts": 1, - "with": 1, - "characters": 1, - "*now*": 1, - "but": 1, - "errors": 1, - "are": 1, - "errors.": 1, - "*/": 1, - "<=>": 8, - "z": 4, - "col1": 6, - "mark": 2, - "start": 2, - "1": 13, - "9": 4, - "col2": 4, - "chars": 21, - "index": 2, - "E_": 1, - "token": 24, - "type": 9, - "this.errors": 1, - "col1..col2": 2, - "toobj": 1, - "float": 4, - "0": 1, - "cc": 1, - "e": 1, - "tofloat": 1, - "toint": 1, - "esc": 1, - "q": 1, - "col1..column": 1, - "plastic.parser_proto": 3, - "@options": 1, - "instance.tokenizer": 1, - "instance.symbols": 1, - "plastic": 1, - "this.plastic": 1, - "symbol": 65, - "plastic.name_proto": 1, - "plastic.literal_proto": 1, - "plastic.operator_proto": 10, - "plastic.prefix_operator_proto": 1, - "plastic.error_catching_operator_proto": 3, - "plastic.assignment_operator_proto": 1, - "plastic.compound_assignment_operator_proto": 5, - "plastic.traditional_ternary_operator_proto": 2, - "plastic.infix_operator_proto": 13, - "plastic.sign_operator_proto": 2, - "plastic.bracket_operator_proto": 1, - "plastic.brace_operator_proto": 1, - "plastic.control_flow_statement_proto": 3, - "plastic.if_statement_proto": 1, - "plastic.for_statement_proto": 1, - "plastic.loop_statement_proto": 2, - "plastic.fork_statement_proto": 1, - "plastic.try_statement_proto": 1, - "plastic.from_statement_proto": 2, - "plastic.verb_selector_operator_proto": 2, - "plastic.property_selector_operator_proto": 2, - "plastic.invocation_operator_proto": 1, - "id": 14, - "bp": 3, - "proto": 4, - "nothing": 1, - "this.plastic.symbol_proto": 2, - "this.symbols": 4, - "clone": 2, - "this.token.type": 1, - "this.token.value": 1, - "this.token.eol": 1, - "operator": 1, - "variable": 1, - "identifier": 1, - "keyword": 1, - "Unexpected": 1, - "end": 2, - "Expected": 1, - "t": 1, - "call": 1, - "nud": 2, - "on": 1, - "@definition": 1, - "new": 4, - "pop": 4, - "delete": 1, - "plastic.utilities": 6, - "suspend_if_necessary": 4, - "parse_map_sequence": 1, - "separator": 6, - "infix": 3, - "terminator": 6, - "symbols": 7, - "ids": 6, - "@ids": 2, - "push": 3, - "@symbol": 2, - ".id": 13, - "key": 7, - "expression": 19, - "@map": 1, - "parse_list_sequence": 2, - "list": 3, - "@list": 1, - "validate_scattering_pattern": 1, - "pattern": 5, - "state": 8, - "element": 1, - "element.type": 3, - "element.id": 2, - "element.first.type": 2, - "children": 4, - "node": 3, - "node.value": 1, - "@children": 1, - "match": 1, - "root": 2, - "keys": 3, - "matches": 3, - "stack": 4, - "next": 2, - "top": 5, - "@stack": 2, - "top.": 1, - "@matches": 1, - "plastic.symbol_proto": 2, - "opts": 2, - "instance.id": 1, - "instance.value": 1, - "instance.bp": 1, - "k": 3, - "instance.": 1, - "parents": 3, - "ancestor": 2, - "ancestors": 1, - "property": 1, - "properties": 1, - "this.type": 8, - "this.first": 8, - "import": 8, - "this.second": 7, - "left": 2, - "this.third": 3, - "sequence": 2, - "led": 4, - "this.bp": 2, - "second.type": 2, - "make_identifier": 4, - "first.id": 1, - "parser.symbols": 2, - "reserve_keyword": 2, - "this.plastic.utilities": 1, - "third": 4, - "third.id": 2, - "second.id": 1, - "std": 1, - "reserve_statement": 1, - "types": 7, - ".type": 1, - "target.type": 3, - "target.value": 3, - "target.id": 4, - "temp": 4, - "temp.id": 1, - "temp.first.id": 1, - "temp.first.type": 2, - "temp.second.type": 1, - "temp.first": 2, - "imports": 5, - "import.type": 2, - "@imports": 2, - "parser.plastic.invocation_operator_proto": 1, - "temp.type": 1, - "parser.plastic.name_proto": 2, - "temp.first.value": 1, - "temp.second": 1, - "first.type": 1, - "parser.imports": 2, - "import.id": 2, - "parser.plastic.assignment_operator_proto": 1, - "result.type": 1, - "result.first": 1, - "result.second": 1, - "toy": 3, - "wind": 1, - "this.wound": 8, - "tell": 1, - "this.name": 4, - "player.location": 1, - "announce": 1, - "player.name": 1, - "@verb": 1, - "do_the_work": 3, - "none": 1, - "object_utils": 1, - "this.location": 3, - "room": 1, - "announce_all": 2, - "continue_msg": 1, - "fork": 1, - "endfork": 1, - "wind_down_msg": 1 - }, - "MoonScript": { - "types": 2, - "require": 5, - "util": 2, - "data": 1, - "import": 5, - "reversed": 2, - "unpack": 22, - "from": 4, - "ntype": 16, - "mtype": 3, - "build": 7, - "smart_node": 7, - "is_slice": 2, - "value_is_singular": 3, - "insert": 18, - "table": 2, - "NameProxy": 14, - "LocalName": 2, - "destructure": 1, - "local": 1, - "implicitly_return": 2, - "class": 4, - "Run": 8, - "new": 2, - "(": 54, - "@fn": 1, - ")": 54, - "self": 2, - "[": 79, - "]": 79, - "call": 3, - "state": 2, - "self.fn": 1, - "-": 51, - "transform": 2, - "the": 4, - "last": 6, - "stm": 16, - "is": 2, - "a": 4, - "list": 6, - "of": 1, - "stms": 4, - "will": 1, - "puke": 1, - "on": 1, - "group": 1, - "apply_to_last": 6, - "fn": 3, - "find": 2, - "real": 1, - "exp": 17, - "last_exp_id": 3, - "for": 20, - "i": 15, - "#stms": 1, - "if": 43, - "and": 8, - "break": 1, - "return": 11, - "in": 18, - "ipairs": 3, - "else": 22, - "body": 26, - "sindle": 1, - "expression/statement": 1, - "is_singular": 2, - "false": 2, - "#body": 1, - "true": 4, - "find_assigns": 2, - "out": 9, - "{": 135, - "}": 136, - "thing": 4, - "*body": 2, - "switch": 7, - "when": 12, - "table.insert": 3, - "extract": 1, - "names": 16, - "hoist_declarations": 1, - "assigns": 5, - "hoist": 1, - "plain": 1, - "old": 1, - "*find_assigns": 1, - "name": 31, - "*names": 3, - "type": 5, - "after": 1, - "runs": 1, - "idx": 4, - "while": 3, - "do": 2, - "+": 2, - "expand_elseif_assign": 2, - "ifstm": 5, - "#ifstm": 1, - "case": 13, - "split": 4, - "constructor_name": 2, - "with_continue_listener": 4, - "continue_name": 13, - "nil": 8, - "@listen": 1, - "unless": 6, - "@put_name": 2, - "build.group": 14, - "@splice": 1, - "lines": 2, - "Transformer": 2, - "@transformers": 3, - "@seen_nodes": 3, - "setmetatable": 1, - "__mode": 1, - "scope": 4, - "node": 68, - "...": 10, - "transformer": 3, - "res": 3, - "or": 6, - "bind": 1, - "@transform": 2, - "__call": 1, - "can_transform": 1, - "construct_comprehension": 2, - "inner": 2, - "clauses": 4, - "current_stms": 7, - "_": 10, - "clause": 4, - "t": 10, - "iter": 2, - "elseif": 1, - "cond": 11, - "error": 4, - "..t": 1, - "Statement": 2, - "root_stms": 1, - "@": 1, - "assign": 9, - "values": 10, - "bubble": 1, - "cascading": 2, - "transformed": 2, - "#values": 1, - "value": 7, - "@transform.statement": 2, - "types.cascading": 1, - "ret": 16, - "types.is_value": 1, - "destructure.has_destructure": 2, - "destructure.split_assign": 1, - "continue": 1, - "@send": 1, - "build.assign_one": 11, - "export": 1, - "they": 1, - "are": 1, - "included": 1, - "#node": 3, - "cls": 5, - "cls.name": 1, - "build.assign": 3, - "update": 1, - "op": 2, - "op_final": 3, - "match": 1, - "..op": 1, - "not": 2, - "source": 7, - "stubs": 1, - "real_names": 4, - "build.chain": 7, - "base": 8, - "stub": 4, - "*stubs": 2, - "source_name": 3, - "comprehension": 1, - "action": 4, - "decorated": 1, - "dec": 6, - "wrapped": 4, - "fail": 5, - "..": 1, - "build.declare": 1, - "*stm": 1, - "expand": 1, - "destructure.build_assign": 2, - "build.do": 2, - "apply": 1, - "decorator": 1, - "mutate": 1, - "all": 1, - "bodies": 1, - "body_idx": 3, - "with": 3, - "block": 2, - "scope_name": 5, - "named_assign": 2, - "assign_name": 1, - "@set": 1, - "foreach": 1, - "node.iter": 1, - "destructures": 5, - "node.names": 3, - "proxy": 2, - "next": 1, - "node.body": 9, - "index_name": 3, - "list_name": 6, - "slice_var": 3, - "bounds": 3, - "slice": 7, - "#list": 1, - "table.remove": 2, - "max_tmp_name": 5, - "index": 2, - "conds": 3, - "exp_name": 3, - "convert": 1, - "into": 1, - "statment": 1, - "convert_cond": 2, - "case_exps": 3, - "cond_exp": 5, - "first": 3, - "if_stm": 5, - "*conds": 1, - "if_cond": 4, - "parent_assign": 3, - "parent_val": 1, - "apart": 1, - "properties": 4, - "statements": 4, - "item": 3, - "tuple": 8, - "*item": 1, - "constructor": 7, - "*properties": 1, - "key": 3, - "parent_cls_name": 5, - "base_name": 4, - "self_name": 4, - "cls_name": 1, - "build.fndef": 3, - "args": 3, - "arrow": 1, - "then": 2, - "constructor.arrow": 1, - "real_name": 6, - "#real_name": 1, - "build.table": 2, - "look": 1, - "up": 1, - "object": 1, - "class_lookup": 3, - "cls_mt": 2, - "out_body": 1, - "make": 1, - "sure": 1, - "we": 1, - "don": 1, - "string": 1, - "parens": 2, - "colon_stub": 1, - "super": 1, - "dot": 1, - "varargs": 2, - "arg_list": 1, - "Value": 1 - }, - "NSIS": { - ";": 39, - "bigtest.nsi": 1, - "This": 2, - "script": 1, - "attempts": 1, - "to": 6, - "test": 1, - "most": 1, - "of": 3, - "the": 4, - "functionality": 1, - "NSIS": 3, - "exehead.": 1, - "-": 205, - "ifdef": 2, - "HAVE_UPX": 1, - "packhdr": 1, - "tmp.dat": 1, - "endif": 4, - "NOCOMPRESS": 1, - "SetCompress": 1, - "off": 1, - "Name": 1, - "Caption": 1, - "Icon": 1, - "OutFile": 1, - "SetDateSave": 1, - "on": 6, - "SetDatablockOptimize": 1, - "CRCCheck": 1, - "SilentInstall": 1, - "normal": 1, - "BGGradient": 1, - "FFFFFF": 1, - "InstallColors": 1, - "FF8080": 1, - "XPStyle": 1, - "InstallDir": 1, - "InstallDirRegKey": 1, - "HKLM": 9, - "CheckBitmap": 1, - "LicenseText": 1, - "LicenseData": 1, - "RequestExecutionLevel": 1, - "admin": 1, - "Page": 4, - "license": 1, - "components": 1, - "directory": 3, - "instfiles": 2, - "UninstPage": 2, - "uninstConfirm": 1, - "ifndef": 2, - "NOINSTTYPES": 1, - "only": 1, - "if": 4, - "not": 2, - "defined": 1, - "InstType": 6, - "/NOCUSTOM": 1, - "/COMPONENTSONLYONCUSTOM": 1, - "AutoCloseWindow": 1, - "false": 1, - "ShowInstDetails": 1, - "show": 1, - "Section": 5, - "empty": 1, - "string": 1, - "makes": 1, - "it": 3, - "hidden": 1, - "so": 1, - "would": 1, - "starting": 1, - "with": 1, - "write": 2, - "reg": 1, - "info": 1, - "StrCpy": 2, - "DetailPrint": 1, - "WriteRegStr": 4, - "SOFTWARE": 7, - "NSISTest": 7, - "BigNSISTest": 8, - "uninstall": 2, - "strings": 1, - "SetOutPath": 3, - "INSTDIR": 15, - "File": 3, - "/a": 1, - "CreateDirectory": 1, - "recursively": 1, - "create": 1, - "a": 2, - "for": 2, - "fun.": 1, - "WriteUninstaller": 1, - "Nop": 1, - "fun": 1, - "SectionEnd": 5, - "SectionIn": 4, - "Start": 2, - "MessageBox": 11, - "MB_OK": 8, - "MB_YESNO": 3, - "IDYES": 2, - "MyLabel": 2, - "SectionGroup": 2, - "/e": 1, - "SectionGroup1": 1, - "WriteRegDword": 3, - "xdeadbeef": 1, - "WriteRegBin": 1, - "WriteINIStr": 5, - "Call": 6, - "MyFunctionTest": 1, - "DeleteINIStr": 1, - "DeleteINISec": 1, - "ReadINIStr": 1, - "StrCmp": 1, - "INIDelSuccess": 2, - "ClearErrors": 1, - "ReadRegStr": 1, - "HKCR": 1, - "xyz_cc_does_not_exist": 1, - "IfErrors": 1, - "NoError": 2, - "Goto": 1, - "ErrorYay": 2, - "CSCTest": 1, - "Group2": 1, - "BeginTestSection": 1, - "IfFileExists": 1, - "BranchTest69": 1, - "|": 3, - "MB_ICONQUESTION": 1, - "IDNO": 1, - "NoOverwrite": 1, - "skipped": 2, - "file": 4, - "doesn": 2, - "s": 1, - "icon": 1, - "start": 1, - "minimized": 1, - "and": 1, - "give": 1, - "hotkey": 1, - "(": 5, - "Ctrl": 1, - "+": 2, - "Shift": 1, - "Q": 2, - ")": 5, - "CreateShortCut": 2, - "SW_SHOWMINIMIZED": 1, - "CONTROL": 1, - "SHIFT": 1, - "MyTestVar": 1, - "myfunc": 1, - "test.ini": 2, - "MySectionIni": 1, - "Value1": 1, - "failed": 1, - "TextInSection": 1, - "will": 1, - "example2.": 1, - "Hit": 1, - "next": 1, - "continue.": 1, - "{": 8, - "NSISDIR": 1, - "}": 8, - "Contrib": 1, - "Graphics": 1, - "Icons": 1, - "nsis1": 1, - "uninstall.ico": 1, - "Uninstall": 2, - "Software": 1, - "Microsoft": 1, - "Windows": 3, - "CurrentVersion": 1, - "silent.nsi": 1, - "LogicLib.nsi": 1, - "bt": 1, - "uninst.exe": 1, - "SMPROGRAMS": 2, - "Big": 1, - "Test": 2, - "*.*": 2, - "BiG": 1, - "Would": 1, - "you": 1, - "like": 1, - "remove": 1, - "cpdest": 3, - "MyProjectFamily": 2, - "MyProject": 1, - "Note": 1, - "could": 1, - "be": 1, - "removed": 1, - "IDOK": 1, - "t": 1, - "exist": 1, - "NoErrorMsg": 1, - "x64.nsh": 1, - "A": 1, - "few": 1, - "simple": 1, - "macros": 1, - "handle": 1, - "installations": 1, - "x64": 1, - "machines.": 1, - "RunningX64": 4, - "checks": 1, - "installer": 1, - "is": 2, - "running": 1, - "x64.": 1, - "If": 1, - "EndIf": 1, - "DisableX64FSRedirection": 4, - "disables": 1, - "system": 2, - "redirection.": 2, - "EnableX64FSRedirection": 4, - "enables": 1, - "SYSDIR": 1, - "some.dll": 2, - "#": 3, - "extracts": 2, - "C": 2, - "System32": 1, - "SysWOW64": 1, - "___X64__NSH___": 3, - "define": 4, - "include": 1, - "LogicLib.nsh": 1, - "macro": 3, - "_RunningX64": 1, - "_a": 1, - "_b": 1, - "_t": 2, - "_f": 2, - "insertmacro": 2, - "_LOGICLIB_TEMP": 3, - "System": 4, - "kernel32": 4, - "GetCurrentProcess": 1, - "i.s": 1, - "IsWow64Process": 1, - "*i.s": 1, - "Pop": 1, - "_": 1, - "macroend": 3, - "Wow64EnableWow64FsRedirection": 2, - "i0": 1, - "i1": 1 - }, - "Nemerle": { - "using": 1, - "System.Console": 1, - ";": 2, - "module": 1, - "Program": 1, - "{": 2, - "Main": 1, - "(": 2, - ")": 2, - "void": 1, - "WriteLine": 1, - "}": 2 - }, - "NetLogo": { - "patches": 7, - "-": 28, - "own": 1, - "[": 17, - "living": 6, - ";": 12, - "indicates": 1, - "if": 2, - "the": 6, - "cell": 10, - "is": 1, - "live": 4, - "neighbors": 5, - "counts": 1, - "how": 1, - "many": 1, - "neighboring": 1, - "cells": 2, - "are": 1, - "alive": 1, - "]": 17, - "to": 6, - "setup": 2, - "blank": 1, - "clear": 2, - "all": 5, - "ask": 6, - "death": 5, - "reset": 2, - "ticks": 2, - "end": 6, - "random": 2, - "ifelse": 3, - "float": 1, - "<": 1, - "initial": 1, - "density": 1, - "birth": 4, - "set": 5, - "true": 1, - "pcolor": 2, - "fgcolor": 1, - "false": 1, - "bgcolor": 1, - "go": 1, - "count": 1, - "with": 2, - "Starting": 1, - "a": 1, - "new": 1, - "here": 1, - "ensures": 1, - "that": 1, - "finish": 1, - "executing": 2, - "first": 1, - "before": 1, - "any": 1, - "of": 2, - "them": 1, - "start": 1, - "second": 1, - "ask.": 1, - "This": 1, - "keeps": 1, - "in": 2, - "synch": 1, - "each": 2, - "other": 1, - "so": 1, - "births": 1, - "and": 1, - "deaths": 1, - "at": 1, - "generation": 1, - "happen": 1, - "lockstep.": 1, - "tick": 1, - "draw": 1, - "let": 1, - "erasing": 2, - "patch": 2, - "mouse": 5, - "xcor": 2, - "ycor": 2, - "while": 1, - "down": 1, - "display": 1 - }, - "NewLisp": { - "SHEBANG#!newlisp": 1, - ";": 37, - "@module": 1, - "IRC": 13, - "@description": 1, - "a": 5, - "basic": 1, - "irc": 7, - "library": 1, - "@version": 1, - "early": 1, - "alpha": 1, - "-": 101, - "@author": 1, - "cormullion": 1, - "Usage": 1, - "(": 235, - "init": 2, - ")": 232, - "username/nick": 1, - "not": 3, - "that": 1, - "one": 1, - "obviously": 1, - "connect": 3, - "irc/server": 1, - "join": 6, - "channel": 16, - "{": 24, - "#newlisp": 2, - "}": 24, - "room": 1, - "either": 1, - "read": 7, - "loop": 4, - "monitor": 1, - "only": 1, - "no": 1, - "input": 1, - "or": 1, - "session": 4, - "command": 8, - "line": 2, - "end": 2, - "with": 6, - "/QUIT": 1, - "context": 2, - "define": 19, - "Idle": 1, - "time": 4, - "seconds": 1, - "Itime": 3, - "stamp": 3, - "since": 1, - "last": 2, - "message": 26, - "was": 1, - "processed": 1, - "register": 4, - "callback": 25, - "name": 10, - "function": 5, - "println": 6, - "registering": 1, - "for": 2, - "sym": 2, - "term": 2, - "prefix": 2, - "push": 2, - "list": 26, - "Icallbacks": 4, - "deregister": 1, - "deregistering": 1, - "setf": 1, - "assoc": 1, - "nil": 4, - "current": 1, - "callbacks": 12, - "do": 14, - "data": 13, - "when": 3, - "set": 16, - "error": 5, - "in": 1, - "dolist": 3, - "rf": 1, - "ref": 1, - "all": 2, - "func": 2, - "entry": 1, - "if": 2, - "catch": 3, - "apply": 1, - "Inickname": 4, - "str": 1, - "Ichannels": 7, - "of": 4, - "day": 2, - "server": 4, - "port": 2, - "Iconnected": 4, - "true": 2, - "identify": 1, - "password": 2, - "net": 10, - "send": 11, - "Iserver": 10, - "format": 8, - "part": 1, - "chan": 3, - "empty": 4, - "leave": 2, - "specified": 1, - "begin": 2, - "replace": 2, - "quit": 1, - "privmsg": 1, - "user": 4, - "notice": 1, - "to": 3, - "cond": 5, - "starts": 5, - "/": 1, - "default": 1, - "character": 1, - "username": 10, - "first": 3, - "clean": 2, - "parse": 3, - "sender": 4, - "|": 2, - "slice": 1, - "text": 6, - "+": 1, - "find": 2, - "process": 3, - "ctcp": 2, - "target": 6, - "PRIVMSG": 2, - "NOTICE": 2, - "trim": 1, - "messages": 2, - "parts": 1, - "let": 2, - "buffer": 6, - "peek": 2, - "receive": 1, - "unless": 1, - "monitoring": 1, - "while": 3, - "sleep": 2, - "print": 2, - "raw": 3, - "example": 1, - "using": 1, - "lookup": 2, - "date": 3, - "value": 1, - "%": 3, - "H": 1, - "M": 1, - "S": 1, - "interactive": 1, - "terminal": 1, - "must": 1, - "add": 1, - "display": 1, - "outgoing": 1, - "zero": 1, - "string": 2, - "finished": 1, - "exit": 1, - "code": 2, - "[": 2, - "]": 2, - "simple": 1, - "bot": 2, - "load": 1, - "env": 1, - "HOME": 1, - "/projects/programming/newlisp": 1, - "projects/irc.lsp": 1, - "idle": 1, - "event": 2, - "/text": 1 - }, - "Nginx": { - "user": 1, - "www": 2, - ";": 35, - "worker_processes": 1, - "error_log": 1, - "logs/error.log": 1, - "pid": 1, - "logs/nginx.pid": 1, - "worker_rlimit_nofile": 1, - "events": 1, - "{": 10, - "worker_connections": 1, - "}": 10, - "http": 3, - "include": 3, - "conf/mime.types": 1, - "/etc/nginx/proxy.conf": 1, - "/etc/nginx/fastcgi.conf": 1, - "index": 1, - "index.html": 1, - "index.htm": 1, - "index.php": 1, - "default_type": 1, - "application/octet": 1, - "-": 2, - "stream": 1, - "log_format": 1, - "main": 5, - "access_log": 4, - "logs/access.log": 1, - "sendfile": 1, - "on": 2, - "tcp_nopush": 1, - "server_names_hash_bucket_size": 1, - "#": 4, - "this": 1, - "seems": 1, - "to": 1, - "be": 1, - "required": 1, - "for": 1, - "some": 1, - "vhosts": 1, - "server": 7, - "php/fastcgi": 1, - "listen": 3, - "server_name": 3, - "domain1.com": 1, - "www.domain1.com": 1, - "logs/domain1.access.log": 1, - "root": 2, - "html": 1, - "location": 4, - ".php": 1, - "fastcgi_pass": 1, - "simple": 2, - "reverse": 1, - "proxy": 1, - "domain2.com": 1, - "www.domain2.com": 1, - "logs/domain2.access.log": 1, - "/": 4, - "(": 1, - "images": 1, - "|": 6, - "javascript": 1, - "js": 1, - "css": 1, - "flash": 1, - "media": 1, - "static": 1, - ")": 1, - "/var/www/virtual/big.server.com/htdocs": 1, - "expires": 1, - "d": 1, - "proxy_pass": 2, - "//127.0.0.1": 1, - "upstream": 1, - "big_server_com": 1, - "weight": 2, - "load": 1, - "balancing": 1, - "big.server.com": 1, - "logs/big.server.access.log": 1, - "//big_server_com": 1 - }, - "Nimrod": { - "echo": 1 - }, - "Nit": { - "#": 196, - "module": 18, - "print_arguments": 1, - "for": 27, - "a": 40, - "in": 39, - "args": 9, - "do": 83, - "print": 135, - "end": 117, - "socket_server": 1, - "import": 18, - "socket": 6, - "if": 89, - "args.is_empty": 1, - "then": 81, - "return": 54, - "var": 157, - "new": 164, - "Socket.server": 1, - "(": 448, - "[": 106, - "]": 80, - ".to_i": 2, - ")": 448, - "clients": 2, - "Array": 12, - "Socket": 1, - "max": 2, - "loop": 2, - "fs": 1, - "SocketObserver": 1, - "true": 6, - "fs.readset.set": 2, - "c": 17, - "fs.select": 1, - "break": 2, - "fs.readset.is_set": 1, - "ns": 1, - "socket.accept": 1, - "ns.write": 1, - "ns.close": 1, - "int_stack": 1, - "class": 20, - "IntStack": 2, - "The": 11, - "head": 5, - "node": 10, - "of": 31, - "the": 57, - "list.": 4, - "Null": 1, - "means": 1, - "that": 2, - "stack": 3, - "is": 25, - "empty.": 4, - "private": 5, - "nullable": 11, - "ISNode": 4, - "null": 39, - "Add": 2, - "integer": 2, - "stack.": 2, - "fun": 57, - "push": 3, - "val": 5, - "Int": 47, - "self.head": 5, - "Remove": 1, - "and": 10, - "last": 2, - "pushed": 1, - "integer.": 1, - "Return": 4, - "pop": 2, - "Note": 7, - "followings": 2, - "are": 4, - "statically": 3, - "safe": 4, - "because": 4, - "previous": 4, - ".": 6, - "head.val": 1, - "head.next": 1, - "sum": 12, - "all": 3, - "integers": 1, - "sumall": 1, - "cur": 3, - "while": 4, - "condition": 1, - "+": 39, - "cur.val": 1, - "cur.next": 1, - "Because": 2, - "attributes": 1, - "have": 1, - "default": 2, - "value": 2, - "free": 2, - "constructor": 2, - "implicitly": 2, - "defined.": 2, - "stored": 1, - "node.": 1, - "next": 9, - "any.": 1, - "A": 1, - "l": 4, - "l.push": 4, - "l.sumall": 1, - "i": 20, - "l.pop": 5, - "following": 1, - "*": 14, - "or": 9, - "else": 63, - "gives": 2, - "so": 4, - "alternative": 1, - "gtk": 1, - "CalculatorContext": 7, - "result": 16, - "Float": 3, - "last_op": 4, - "Char": 7, - "current": 26, - "after_point": 12, - "push_op": 2, - "op": 11, - "apply_last_op_if_any": 2, - "self.result": 2, - "store": 1, - "prepare": 1, - "push_digit": 1, - "digit": 1, - "digit.to_f": 2, - "pow": 1, - "after_point.to_f": 1, - "self.after_point": 1, - "-": 70, - "self.current": 3, - "switch_to_decimals": 1, - "/": 4, - "CalculatorGui": 2, - "super": 10, - "GtkCallable": 1, - "win": 2, - "GtkWindow": 2, - "container": 3, - "GtkGrid": 2, - "lbl_disp": 3, - "GtkLabel": 2, - "but_eq": 3, - "GtkButton": 2, - "but_dot": 3, - "context": 9, - "redef": 30, - "signal": 1, - "sender": 3, - "user_data": 5, - "context.after_point": 1, - "after_point.abs": 1, - "isa": 12, - "an": 4, - "operation": 1, - "but_dot.sensitive": 2, - "false": 8, - "context.switch_to_decimals": 4, - "lbl_disp.text": 3, - "context.push_op": 15, - "s": 68, - "context.result.to_precision_native": 1, - "index": 7, - "s.length.times": 1, - "chiffre": 3, - "s.chars": 2, - "s.substring": 2, - "s.length": 2, - "number": 7, - "n": 16, - "context.push_digit": 25, - "context.current.to_precision_native": 1, - "init": 6, - "init_gtk": 1, - "win.add": 1, - "container.attach": 7, - "digits": 1, - "but": 6, - "GtkButton.with_label": 5, - "n.to_s": 1, - "but.request_size": 2, - "but.signal_connect": 2, - "self": 41, - "%": 3, - "/3": 1, - "operators": 2, - "r": 21, - "op.to_s": 1, - "but_eq.request_size": 1, - "but_eq.signal_connect": 1, - "but_dot.request_size": 1, - "but_dot.signal_connect": 1, - "#C": 1, - "but_c": 2, - "but_c.request_size": 1, - "but_c.signal_connect": 1, - "win.show_all": 1, - "context.result.to_precision": 6, - "assert": 24, - "#test": 2, - "multiple": 1, - "decimals": 1, - "button": 1, - ".environ": 3, - "app": 1, - "run_gtk": 1, - "opengles2_hello_triangle": 1, - "glesv2": 1, - "egl": 1, - "mnit_linux": 1, - "sdl": 1, - "x11": 1, - "exit": 3, - "window_width": 2, - "window_height": 2, - "##": 6, - "SDL": 2, - "sdl_display": 1, - "SDLDisplay": 1, - "sdl_wm_info": 1, - "SDLSystemWindowManagerInfo": 1, - "x11_window_handle": 2, - "sdl_wm_info.x11_window_handle": 1, - "X11": 1, - "x_display": 3, - "x_open_default_display": 1, - "EGL": 2, - "egl_display": 6, - "EGLDisplay": 1, - "egl_display.is_valid": 2, - "egl_display.initialize": 1, - "egl_display.error": 3, - "config_chooser": 1, - "EGLConfigChooser": 1, - "#config_chooser.surface_type_egl": 1, - "config_chooser.blue_size": 1, - "config_chooser.green_size": 1, - "config_chooser.red_size": 1, - "#config_chooser.alpha_size": 1, - "#config_chooser.depth_size": 1, - "#config_chooser.stencil_size": 1, - "#config_chooser.sample_buffers": 1, - "config_chooser.close": 1, - "configs": 3, - "config_chooser.choose": 1, - "not": 12, - "configs.is_empty": 1, - "config": 4, - "attribs": 1, - "config.attribs": 2, - "configs.first": 1, - "format": 1, - ".native_visual_id": 1, - "surface": 5, - "egl_display.create_window_surface": 1, - "surface.is_ok": 1, - "egl_display.create_context": 1, - "context.is_ok": 1, - "make_current_res": 2, - "egl_display.make_current": 2, - "width": 2, - "surface.attribs": 2, - ".width": 1, - "height": 2, - ".height": 1, - "egl_bind_opengl_es_api": 1, - "GLESv2": 1, - "assert_no_gl_error": 6, - "gl_shader_compiler": 1, - "gl_error.to_s": 1, - "program": 1, - "GLProgram": 1, - "program.is_ok": 1, - "program.info_log": 1, - "abort": 2, - "vertex_shader": 2, - "GLVertexShader": 1, - "vertex_shader.is_ok": 1, - "vertex_shader.source": 1, - "vertex_shader.compile": 1, - "vertex_shader.is_compiled": 1, - "fragment_shader": 2, - "GLFragmentShader": 1, - "fragment_shader.is_ok": 1, - "fragment_shader.source": 1, - "fragment_shader.compile": 1, - "fragment_shader.is_compiled": 1, - "program.attach_shader": 2, - "program.bind_attrib_location": 1, - "program.link": 1, - "program.is_linked": 1, - "vertices": 2, - "vertex_array": 1, - "VertexArray": 1, - "vertex_array.attrib_pointer": 1, - "gl_clear_color": 1, - "printn": 10, - "gl_viewport": 1, - "gl_clear_color_buffer": 1, - "program.use": 1, - "vertex_array.enable": 1, - "vertex_array.draw_arrays_triangles": 1, - "egl_display.swap_buffers": 1, - "program.delete": 1, - "vertex_shader.delete": 1, - "fragment_shader.delete": 1, - "EGLSurface.none": 2, - "EGLContext.none": 1, - "egl_display.destroy_context": 1, - "egl_display.destroy_surface": 1, - "sdl_display.destroy": 1, - "curl_mail": 1, - "curl": 11, - "Curl": 4, - "mail_request": 1, - "CurlMailRequest": 1, - "response": 5, - "mail_request.set_outgoing_server": 1, - "CurlResponseFailed": 5, - "mail_request.from": 1, - "mail_request.to": 1, - "mail_request.cc": 1, - "mail_request.bcc": 1, - "headers_body": 4, - "HeaderMap": 3, - "mail_request.headers_body": 1, - "mail_request.body": 1, - "mail_request.subject": 1, - "mail_request.verbose": 1, - "mail_request.execute": 1, - "CurlMailResponseSuccess": 1, - "socket_client": 1, - "args.length": 3, - "<": 11, - "Socket.client": 1, - "s.connected": 1, - "s.write": 1, - "s.close": 1, - "circular_list": 1, - "CircularList": 6, - "E": 15, - "Like": 1, - "standard": 1, - "LinkedList": 1, - "Sequence.": 1, - "Sequence": 1, - "first": 7, - "list": 10, - "any": 1, - "special": 1, - "case": 1, - "empty": 1, - "handled": 1, - "by": 5, - "CLNode": 6, - "iterator": 1, - "CircularListIterator": 2, - "self.node.item": 2, - "e": 4, - "new_node": 4, - "self.node": 13, - "one": 3, - "attach": 1, - "nodes": 3, - "correctly.": 2, - "old_last_node": 2, - "n.prev": 4, - "new_node.next": 1, - "new_node.prev": 1, - "old_last_node.next": 1, - "prev": 3, - "only": 6, - "n.item": 1, - "detach": 1, - "prev_prev": 2, - "prev.prev": 1, - "prev_prev.next": 1, - "prev.item": 1, - "unshift": 1, - "Circularity": 2, - "has": 3, - "benefits.": 2, - "self.node.prev": 1, - "shift": 1, - "self.node.next": 2, - "self.pop": 1, - "Move": 1, - "at": 2, - "position": 2, - "second": 1, - "etc.": 1, - "rotate": 1, - "n.next": 1, - "Sort": 1, - "using": 1, - "Josephus": 1, - "algorithm.": 1, - "josephus": 1, - "step": 2, - "res": 1, - "self.is_empty": 1, - "count": 2, - "self.rotate": 1, - "kill": 1, - "x": 16, - "self.shift": 1, - "res.add": 1, - "res.node": 1, - "item": 5, - "circular": 3, - "circularity": 1, - "there": 2, - "always": 1, - ";": 34, - "let": 1, - "it": 1, - "be": 9, - "Coherence": 1, - "between": 1, - "to": 18, - "maintained": 1, - "IndexedIterator": 1, - "pointed.": 1, - "Is": 1, - "iterated.": 1, - "is_ok": 1, - "Empty": 1, - "lists": 2, - "OK.": 2, - "Pointing": 1, - "again": 1, - "self.index": 3, - "self.list.node": 1, - "list.node": 1, - "self.list": 1, - "i.add_all": 1, - "i.first": 1, - "i.join": 3, - "i.push": 1, - "i.shift": 1, - "i.pop": 1, - "i.unshift": 1, - "i.josephus": 1, - "draw_operation": 1, - "enum": 3, - "n_chars": 1, - "{": 14, - "int": 4, - "abs": 2, - "recv": 12, - "log10f": 1, - "float": 1, - "}": 14, - "as_operator": 1, - "b": 10, - "override_dispc": 1, - "Bool": 2, - "lines": 7, - "Line": 53, - "P": 51, - "s/2": 23, - "y": 9, - "lines.add": 1, - "q4": 4, - "s/4": 1, - "lines.append": 1, - "tl": 2, - "tr": 2, - "String": 14, - "hack": 3, - "support": 1, - "bug": 1, - "evaluation": 1, - "software": 1, - "draw": 1, - "dispc": 2, - "size": 8, - "gap": 1, - "w": 3, - "length": 2, - "*gap": 1, - "h": 7, - "map": 8, - ".filled_with": 1, - "ci": 2, - "self.chars": 1, - "local_dispc": 4, - "c.override_dispc": 1, - "c.lines": 1, - "line": 3, - "line.o.x": 1, - "ci*size": 1, - "ci*gap": 1, - "line.o.y": 1, - "line.len": 1, - "map.length": 3, - ".length": 1, - "line.step_x": 1, - "line.step_y": 1, - "o": 5, - "step_x": 1, - "step_y": 1, - "len": 1, - "op_char": 3, - "disp_char": 6, - "disp_size": 6, - "disp_gap": 6, - "gets.to_i": 4, - "gets.chars": 2, - "op_char.as_operator": 1, - "len_a": 2, - "a.n_chars": 1, - "len_b": 2, - "b.n_chars": 1, - "len_res": 3, - "result.n_chars": 1, - "max_len": 5, - "len_a.max": 1, - "len_b.max": 1, - "d": 6, - "line_a": 3, - "a.to_s": 1, - "line_a.draw": 1, - "line_b": 3, - "op_char.to_s": 1, - "b.to_s": 1, - "line_b.draw": 1, - "disp_size*max_len": 1, - "*disp_gap": 1, - "line_res": 3, - "result.to_s": 1, - "line_res.draw": 1, - "extern_methods": 1, - "Returns": 1, - "th": 2, - "fibonnaci": 1, - "implemented": 1, - "here": 1, - "C": 4, - "optimization": 1, - "purposes": 2, - "fib": 5, - "Int_fib": 3, - "System": 1, - "call": 3, - "sleep": 5, - "seconds": 1, - "atan2l": 1, - "from": 8, - "libmath": 1, - "atan_with": 2, - "atan2": 1, - "This": 1, - "method": 17, - "callback": 11, - "Nit": 2, - "methods": 2, - "code": 3, - "It": 1, - "will": 8, - "use": 1, - "local": 1, - "operator": 1, - "to_s": 3, - "objects": 1, - "String.to_cstring": 2, - "equivalent": 1, - "char*": 1, - "foo": 3, - "long": 2, - "recv_fib": 2, - "recv_plus_fib": 2, - "Int__plus": 1, - "nit_string": 2, - "Int_to_s": 1, - "char": 1, - "*c_string": 1, - "String_to_cstring": 1, - "printf": 1, - "c_string": 1, - "Equivalent": 1, - "written": 2, - "pure": 1, - "bar": 2, - "websocket_server": 1, - "websocket": 1, - "sock": 1, - "WebSocket": 1, - "msg": 8, - "sock.listener.eof": 2, - "sys.errno.strerror": 1, - "sock.accept": 2, - "sock.connected": 1, - "sys.stdin.poll_in": 1, - "gets": 1, - "sock.close": 1, - "sock.disconnect_client": 1, - "sock.write": 1, - "sock.can_read": 1, - "sock.read_line": 1, - "fibonacci": 3, - "Calculate": 1, - "element": 1, - "sequence.": 1, - ".fibonacci": 2, - "usage": 3, - "args.first.to_i.fibonacci": 1, - "clock_more": 1, - "clock": 4, - "Clock": 10, - "now": 1, - "comparable": 1, - "Comparable": 1, - "Comparaison": 1, - "make": 1, - "sense": 1, - "with": 2, - "other": 2, - "type": 2, - "OTHER": 1, - "abstract": 2, - "Comparable.": 1, - "All": 1, - "rely": 1, - "on": 1, - "self.total_minutes": 8, - "o.total_minutes": 2, - "c1": 1, - "c2": 2, - "c3": 1, - "c1.minutes": 1, - "callback_monkey": 2, - "#include": 2, - "": 1, - "": 1, - "typedef": 2, - "struct": 2, - "id": 2, - "age": 2, - "CMonkey": 6, - "MonkeyActionCallable": 7, - "toCall": 6, - "Object": 7, - "message": 9, - "MonkeyAction": 5, - "//": 13, - "Method": 1, - "which": 4, - "reproduce": 3, - "answer": 1, - "Please": 1, - "note": 1, - "function": 2, - "pointer": 2, - "used": 1, - "void": 3, - "cbMonkey": 2, - "*mkey": 2, - "callbackFunc": 2, - "CMonkey*": 1, - "MonkeyAction*": 1, - "*data": 3, - "mkey": 2, - "data": 6, - "Back": 2, - "background": 1, - "treatment": 1, - "redirected": 1, - "nit_monkey_callback_func": 2, - "To": 1, - "your": 1, - "signature": 1, - "must": 1, - "like": 1, - "this": 2, - "": 1, - "Name": 1, - "_": 1, - "": 1, - "...": 1, - "MonkeyActionCallable_wokeUp": 1, - "interface": 3, - "wokeUp": 4, - "Monkey": 4, - "extern": 2, - "*monkey": 1, - "malloc": 2, - "sizeof": 2, - "monkey": 4, - "get": 1, - "defined": 4, - "Must": 1, - "as": 1, - "Nit/C": 1, - "inside": 1, - "wokeUpAction": 2, - "MonkeyActionCallable.wokeUp": 1, - "Allocating": 1, - "memory": 1, - "keep": 2, - "reference": 2, - "received": 1, - "parameters": 1, - "receiver": 1, - "Message": 1, - "Incrementing": 1, - "counter": 1, - "prevent": 1, - "releasing": 1, - "MonkeyActionCallable_incr_ref": 1, - "Object_incr_ref": 1, - "Calling": 1, - "passing": 1, - "Receiver": 1, - "Function": 1, - "object": 2, - "Datas": 1, - "&": 1, - "total": 1, - "minutes": 12, - "total_minutes": 2, - "read": 1, - "acces": 1, - "public": 1, - "write": 1, - "access": 1, - "private.": 1, - "hour": 3, - "set": 2, - "hour.": 1, - "m": 5, - "changed": 1, - "accordinlgy": 1, - "self.hours": 1, - "hours": 9, - "updated": 1, - "arrow": 2, - "interval": 1, - "hour_pos": 2, - "replace": 1, - "updated.": 1, - "reset": 1, - "hours*60": 1, - "self.reset": 1, - "test": 1, - "required": 1, - "Thanks": 1, - "adaptive": 1, - "typing": 1, - "no": 1, - "downcast": 1, - "i.e.": 1, - "c.minutes": 1, - "c.hours": 1, - "c2.minutes": 1, - "curl_http": 1, - "MyHttpFetcher": 2, - "CurlCallbacks": 1, - "our_body": 1, - "self.curl": 1, - "Release": 1, - "destroy": 1, - "self.curl.destroy": 1, - "Header": 1, - "header_callback": 1, - "We": 1, - "silent": 1, - "testing": 1, - "#if": 1, - "line.has_prefix": 1, - "Body": 1, - "body_callback": 1, - "self.our_body": 1, - "Stream": 1, - "Cf": 1, - "No": 1, - "registered": 1, - "stream_callback": 1, - "buffer": 1, - "url": 2, - "request": 1, - "CurlHTTPRequest": 1, - "HTTP": 3, - "Get": 2, - "Request": 3, - "request.verbose": 3, - "getResponse": 3, - "request.execute": 2, - "CurlResponseSuccess": 2, - "Post": 1, - "myHttpFetcher": 2, - "request.delegate": 1, - "postDatas": 5, - "request.datas": 1, - "postResponse": 3, - "file": 1, - "headers": 3, - "request.headers": 1, - "downloadResponse": 3, - "request.download_to_file": 1, - "CurlFileResponseSuccess": 1, - "Program": 1, - "logic": 1, - "procedural_array": 1, - "array_sum": 2, - "array_sum_alt": 2, - "a.length": 1, - "html": 1, - "NitHomepage": 2, - "HTMLPage": 1, - "add": 35, - ".attr": 17, - ".text": 27, - "body": 1, - "open": 14, - ".add_class": 4, - "add_html": 7, - "close": 14, - "page": 1, - "page.write_to": 1, - "stdout": 2, - "page.write_to_file": 1, - "template": 1, - "###": 2, - "Here": 2, - "definition": 1, - "specific": 1, - "templates": 2, - "TmplComposers": 2, - "Template": 3, - "Short": 2, - "composers": 4, - "TmplComposer": 3, - "Detailled": 1, - "composer_details": 2, - "TmplComposerDetail": 3, - "composer": 1, - "both": 1, - "add_composer": 1, - "firstname": 5, - "lastname": 6, - "birth": 5, - "death": 5, - "composers.add": 1, - "composer_details.add": 1, - "rendering": 3, - "add_all": 2, - "name": 4, - "self.name": 1, - "self.firstname": 1, - "self.lastname": 1, - "self.birth": 1, - "self.death": 1, - "simple": 1, - "f": 1, - "f.add_composer": 3, - "f.write_to": 1, - "callback_chimpanze": 1, - "Chimpanze": 2, - "create": 1, - "Invoking": 1, - "take": 1, - "some": 1, - "time": 1, - "compute": 1, - "back": 1, - "information.": 1, - "Callback": 1, - "Interface": 1, - "monkey.wokeUpAction": 1, - "Inherit": 1, - "m.create": 1, - "drop_privileges": 1, - "privileges": 1, - "opts": 1, - "OptionContext": 1, - "opt_ug": 2, - "OptionUserAndGroup.for_dropping_privileges": 1, - "opt_ug.mandatory": 1, - "opts.add_option": 1, - "opts.parse": 1, - "opts.errors.is_empty": 1, - "opts.errors": 1, - "opts.usage": 1, - "user_group": 2, - "opt_ug.value": 1, - "user_group.drop_privileges": 1 - }, - "Nix": { - "{": 8, - "stdenv": 1, - "fetchurl": 2, - "fetchgit": 5, - "openssl": 2, - "zlib": 2, - "pcre": 2, - "libxml2": 2, - "libxslt": 2, - "expat": 2, - "rtmp": 4, - "false": 4, - "fullWebDAV": 3, - "syslog": 4, - "moreheaders": 3, - "...": 1, - "}": 8, - "let": 1, - "version": 2, - ";": 32, - "mainSrc": 2, - "url": 5, - "sha256": 5, - "-": 12, - "ext": 5, - "git": 2, - "//github.com/arut/nginx": 2, - "module.git": 3, - "rev": 4, - "dav": 2, - "https": 2, - "//github.com/yaoweibin/nginx_syslog_patch.git": 1, - "//github.com/agentzh/headers": 1, - "more": 1, - "nginx": 1, - "in": 1, - "stdenv.mkDerivation": 1, - "rec": 1, - "name": 1, - "src": 1, - "buildInputs": 1, - "[": 5, - "]": 5, - "+": 10, - "stdenv.lib.optional": 5, - "patches": 1, - "if": 1, - "then": 1, - "else": 1, - "configureFlags": 1, - "preConfigure": 1, - "export": 1, - "NIX_CFLAGS_COMPILE": 1, - "postInstall": 1, - "mv": 1, - "out/sbin": 1, - "out/bin": 1, - "meta": 1, - "description": 1, - "maintainers": 1, - "stdenv.lib.maintainers.raskin": 1, - "platforms": 1, - "stdenv.lib.platforms.all": 1, - "inherit": 1 - }, - "Nu": { - "SHEBANG#!nush": 1, - "(": 14, - "puts": 1, - ")": 14, - ";": 22, - "main.nu": 1, - "Entry": 1, - "point": 1, - "for": 1, - "a": 1, - "Nu": 1, - "program.": 1, - "Copyright": 1, - "c": 1, - "Tim": 1, - "Burks": 1, - "Neon": 1, - "Design": 1, - "Technology": 1, - "Inc.": 1, - "load": 4, - "basics": 1, - "cocoa": 1, - "definitions": 1, - "menu": 1, - "generation": 1, - "Aaron": 1, - "Hillegass": 1, - "t": 1, - "retain": 1, - "it.": 1, - "NSApplication": 2, - "sharedApplication": 2, - "setDelegate": 1, - "set": 1, - "delegate": 1, - "ApplicationDelegate": 1, - "alloc": 1, - "init": 1, - "this": 1, - "makes": 1, - "the": 3, - "application": 1, - "window": 1, - "take": 1, - "focus": 1, - "when": 1, - "we": 1, - "ve": 1, - "started": 1, - "it": 1, - "from": 1, - "terminal": 1, - "activateIgnoringOtherApps": 1, - "YES": 1, - "run": 1, - "main": 1, - "Cocoa": 1, - "event": 1, - "loop": 1, - "NSApplicationMain": 1, - "nil": 1 - }, - "OCaml": { - "{": 11, - "shared": 1, - "open": 4, - "Eliom_content": 1, - "Html5.D": 1, - "Eliom_parameter": 1, - "}": 13, - "server": 2, - "module": 5, - "Example": 1, - "Eliom_registration.App": 1, - "(": 21, - "struct": 5, - "let": 13, - "application_name": 1, - "end": 5, - ")": 23, - "main": 2, - "Eliom_service.service": 1, - "path": 1, - "[": 13, - "]": 13, - "get_params": 1, - "unit": 5, - "client": 1, - "hello_popup": 2, - "Dom_html.window##alert": 1, - "Js.string": 1, - "_": 2, - "Example.register": 1, - "service": 1, - "fun": 9, - "-": 22, - "Lwt.return": 1, - "html": 1, - "head": 1, - "title": 1, - "pcdata": 4, - "body": 1, - "h1": 1, - ";": 14, - "p": 1, - "h2": 1, - "a": 4, - "a_onclick": 1, - "type": 2, - "Ops": 2, - "@": 6, - "f": 10, - "k": 21, - "|": 15, - "x": 14, - "List": 1, - "rec": 3, - "map": 3, - "l": 8, - "match": 4, - "with": 4, - "hd": 6, - "tl": 6, - "fold": 2, - "acc": 5, - "Option": 1, - "opt": 2, - "None": 5, - "Some": 5, - "Lazy": 1, - "option": 1, - "mutable": 1, - "waiters": 5, - "make": 1, - "push": 4, - "cps": 7, - "value": 3, - "force": 1, - "l.value": 2, - "when": 1, - "l.waiters": 5, - "<->": 3, - "function": 1, - "Base.List.iter": 1, - "l.push": 1, - "<": 1, - "get_state": 1, - "lazy_from_val": 1 - }, - "Objective-C": { - "#import": 53, - "@implementation": 13, - "SBJsonParser": 2, - "@synthesize": 7, - "maxDepth": 2, - ";": 2003, - "error": 75, - "-": 595, - "(": 2109, - "id": 170, - ")": 2106, - "init": 34, - "{": 541, - "self": 500, - "[": 1227, - "super": 25, - "]": 1227, - "if": 297, - "self.maxDepth": 2, - "u": 4, - "return": 165, - "}": 532, - "#pragma": 44, - "mark": 42, - "Methods": 1, - "objectWithData": 7, - "NSData": 28, - "*": 311, - "data": 27, - "self.error": 3, - "@": 258, - "nil": 131, - "SBJsonStreamParserAccumulator": 2, - "*accumulator": 1, - "alloc": 47, - "SBJsonStreamParserAdapter": 2, - "*adapter": 1, - "adapter.delegate": 1, - "accumulator": 1, - "SBJsonStreamParser": 2, - "*parser": 1, - "parser.maxDepth": 1, - "parser.delegate": 1, - "adapter": 1, - "switch": 3, - "parser": 3, - "parse": 1, - "case": 8, - "SBJsonStreamParserComplete": 1, - "accumulator.value": 1, - "break": 13, - "SBJsonStreamParserWaitingForData": 1, - "SBJsonStreamParserError": 1, - "parser.error": 1, - "objectWithString": 5, - "NSString": 127, - "repr": 5, - "dataUsingEncoding": 2, - "NSUTF8StringEncoding": 2, - "NSString*": 13, - "NSError**": 2, - "error_": 2, - "tmp": 3, - "NSDictionary": 37, - "*ui": 1, - "dictionaryWithObjectsAndKeys": 10, - "NSLocalizedDescriptionKey": 10, - "*error_": 1, - "NSError": 51, - "errorWithDomain": 6, - "code": 16, - "userInfo": 15, - "ui": 1, - "@end": 37, - "Foo": 2, - "//": 317, - "@interface": 23, - "MainMenuViewController": 2, - "TTTableViewController": 1, - "#define": 65, - "HEADER_Z_POSITION": 2, - "typedef": 47, - "struct": 20, - "CGFloat": 44, - "offset": 23, - "from": 18, - "beginning": 1, - "of": 34, - "section": 60, - "height": 19, - "TUITableViewRowInfo": 3, - "TUITableViewSection": 16, - "NSObject": 5, - "__unsafe_unretained": 2, - "TUITableView": 25, - "*_tableView": 1, - "weak": 2, - "TUIView": 17, - "*_headerView": 1, - "Not": 2, - "reusable": 1, - "similar": 1, - "to": 115, - "UITableView": 1, - "NSInteger": 56, - "sectionIndex": 23, - "NSUInteger": 93, - "numberOfRows": 13, - "sectionHeight": 9, - "sectionOffset": 8, - "*rowInfo": 1, - "@property": 150, - "strong": 4, - "readonly": 19, - "*headerView": 6, - "nonatomic": 40, - "assign": 84, - "initWithNumberOfRows": 2, - "n": 7, - "s": 35, - "tableView": 45, - "t": 15, - "_tableView": 3, - "rowInfo": 7, - "calloc": 5, - "sizeof": 13, - "void": 253, - "dealloc": 13, - "free": 4, - "_setupRowHeights": 2, - "*header": 1, - "header": 20, - "self.headerView": 2, - "+": 195, - "roundf": 2, - "header.frame.size.height": 1, - "for": 99, - "int": 55, - "i": 41, - "<": 56, - "h": 3, - "_tableView.delegate": 1, - "heightForRowAtIndexPath": 2, - "TUIFastIndexPath": 89, - "indexPathForRow": 11, - "inSection": 11, - ".offset": 2, - ".height": 4, - "rowHeight": 2, - "&&": 123, - "sectionRowOffset": 2, - "tableRowOffset": 2, - "headerHeight": 4, - "self.headerView.frame.size.height": 1, - "headerView": 14, - "_headerView": 8, - "_tableView.dataSource": 3, - "respondsToSelector": 8, - "@selector": 28, - "headerViewForSection": 6, - "_headerView.autoresizingMask": 1, - "TUIViewAutoresizingFlexibleWidth": 1, - "_headerView.layer.zPosition": 1, - "Private": 1, - "_updateSectionInfo": 2, - "_updateDerepeaterViews": 2, - "pullDownView": 1, - "_pullDownView": 4, - "initWithFrame": 12, - "CGRect": 41, - "frame": 38, - "style": 29, - "TUITableViewStyle": 4, - "_style": 8, - "_reusableTableCells": 5, - "NSMutableDictionary": 18, - "_visibleSectionHeaders": 6, - "NSMutableIndexSet": 6, - "_visibleItems": 14, - "_tableFlags.animateSelectionChanges": 3, - "TUITableViewStylePlain": 2, - "": 4, - "delegate": 29, - "setDelegate": 4, - "d": 11, - "_tableFlags.delegateTableViewWillDisplayCellForRowAtIndexPath": 1, - "willDisplayCell": 2, - "forRowAtIndexPath": 2, - "must": 6, - "call": 8, - "": 4, - "dataSource": 2, - "_dataSource": 6, - "setDataSource": 1, - "_tableFlags.dataSourceNumberOfSectionsInTableView": 2, - "numberOfSectionsInTableView": 3, - "BOOL": 137, - "animateSelectionChanges": 3, - "setAnimateSelectionChanges": 1, - "a": 78, - "numberOfSections": 10, - "_sectionInfo": 27, - "count": 99, - "numberOfRowsInSection": 9, - "objectAtIndex": 8, - "rectForHeaderOfSection": 4, - "*s": 3, - "y": 12, - "_contentHeight": 7, - "CGRectMake": 8, - "self.bounds.size.width": 4, - "CGRectZero": 5, - "rectForSection": 3, - "rectForRowAtIndexPath": 7, - "indexPath": 47, - "indexPath.section": 3, - "row": 36, - "indexPath.row": 1, - "*section": 8, - "in": 42, - "removeFromSuperview": 4, - "removeAllIndexes": 2, - "NSMutableArray": 31, - "*sections": 1, - "initWithCapacity": 2, - "bounds": 2, - ".size.height": 1, - "self.contentInset.top*2": 1, - "section.sectionOffset": 1, - "sections": 4, - "addObject": 16, - "self.contentInset.bottom": 1, - "_enqueueReusableCell": 2, - "TUITableViewCell": 23, - "cell": 21, - "*identifier": 1, - "cell.reuseIdentifier": 1, - "identifier": 7, - "*array": 9, - "objectForKey": 29, - "array": 84, - "setObject": 9, - "forKey": 9, - "dequeueReusableCellWithIdentifier": 2, - "*c": 1, - "lastObject": 1, - "c": 7, - "removeLastObject": 1, - "prepareForReuse": 1, - "else": 35, - "cellForRowAtIndexPath": 9, - "returns": 4, - "is": 77, - "not": 29, - "visible": 16, - "or": 18, - "index": 11, - "path": 11, - "out": 7, - "range": 8, - "NSArray": 27, - "visibleCells": 3, - "allValues": 1, - "static": 102, - "SortCells": 1, - "*a": 2, - "*b": 2, - "*ctx": 1, - "a.frame.origin.y": 2, - "b.frame.origin.y": 2, - "NSOrderedAscending": 4, - "NSOrderedDescending": 4, - "sortedVisibleCells": 2, - "*v": 2, - "v": 4, - "sortedArrayUsingComparator": 1, - "NSComparator": 1, - "NSComparisonResult": 1, - "INDEX_PATHS_FOR_VISIBLE_ROWS": 4, - "allKeys": 1, - "indexPathsForVisibleRows": 2, - "indexPathForCell": 2, - "*i": 4, - "*cell": 7, - "NSIndexSet": 4, - "indexesOfSectionsInRect": 2, - "rect": 10, - "*indexes": 2, - "CGRectIntersectsRect": 5, - "indexes": 4, - "addIndex": 3, - "indexesOfSectionHeadersInRect": 2, - "indexPathsForRowsInRect": 3, - "*indexPaths": 1, - "arrayWithCapacity": 2, - "*indexPath": 11, - "cellRect": 7, - "indexPaths": 2, - "indexPathForRowAtPoint": 2, - "CGPoint": 7, - "point": 11, - "CGRectContainsPoint": 1, - "indexPathForRowAtVerticalOffset": 2, - "cellRect.origin.y": 1, - "<=>": 15, - "origin": 1, - "size": 12, - "brief": 1, - "Obtain": 1, - "the": 197, - "whose": 2, - "at": 10, - "specified": 1, - "If": 30, - "valid": 5, - "no": 7, - "exists": 1, - "that": 23, - "negative": 1, - "value": 21, - "returned": 1, - "param": 1, - "location": 3, - "table": 7, - "view": 11, - "p": 3, - "indexOfSectionWithHeaderAtPoint": 2, - "0": 2, - "width": 1, - "frame.origin.y": 16, - "point.y": 1, - "frame.size.height": 15, - "indexOfSectionWithHeaderAtVerticalOffset": 2, - "section.headerView": 9, - "enumerateIndexPathsUsingBlock": 2, - "*stop": 7, - "block": 18, - "enumerateIndexPathsFromIndexPath": 4, - "toIndexPath": 12, - "withOptions": 4, - "usingBlock": 6, - "enumerateIndexPathsWithOptions": 2, - "NSEnumerationOptions": 4, - "options": 6, - "fromIndexPath": 6, - "sectionLowerBound": 2, - "fromIndexPath.section": 1, - "sectionUpperBound": 3, - "toIndexPath.section": 1, - "rowLowerBound": 2, - "fromIndexPath.row": 1, - "rowUpperBound": 3, - "toIndexPath.row": 1, - "irow": 3, - "start": 3, - "lower": 1, - "bound": 1, - "first": 9, - "iteration...": 1, - "rowCount": 3, - "j": 5, - "||": 42, - "stop": 4, - "FALSE": 2, - "&": 36, - "...then": 1, - "use": 26, - "zero": 1, - "subsequent": 2, - "iterations": 1, - "_topVisibleIndexPath": 1, - "*topVisibleIndex": 1, - "sortedArrayUsingSelector": 1, - "compare": 4, - "topVisibleIndex": 2, - "setFrame": 2, - "f": 8, - "_tableFlags.forceSaveScrollPosition": 1, - "setContentOffset": 2, - "_tableFlags.didFirstLayout": 1, - "prevent": 2, - "auto": 2, - "scroll": 3, - "top": 8, - "during": 4, - "layout": 3, - "we": 73, - "pinned": 5, - "state": 35, - "isKindOfClass": 2, - "TUITableViewSectionHeader": 5, - "class": 30, - ".pinnedToViewport": 2, - "TRUE": 1, - "pinnedHeader": 1, - "CGRectGetMaxY": 2, - "headerFrame": 4, - "pinnedHeader.frame.origin.y": 1, - "this": 50, - "intersecting": 1, - "with": 19, - "so": 15, - "push": 1, - "upwards.": 1, - "pinnedHeaderFrame": 2, - "pinnedHeader.frame": 2, - "pinnedHeaderFrame.origin.y": 1, - "notify": 3, - "it": 28, - "section.headerView.frame": 1, - "setNeedsLayout": 3, - "section.headerView.superview": 1, - "addSubview": 8, - "remove": 4, - "offscreen": 2, - "headers": 11, - "toRemove": 1, - "enumerateIndexesUsingBlock": 1, - "removeIndex": 1, - "_layoutCells": 3, - "visibleCellsNeedRelayout": 5, - "update": 6, - "remaining": 1, - "cells": 7, - "needed": 3, - "cell.frame": 1, - "cell.layer.zPosition": 1, - "visibleRect": 3, - "Example": 1, - "old": 5, - "new": 10, - "add": 5, - "*oldVisibleIndexPaths": 1, - "*newVisibleIndexPaths": 1, - "*indexPathsToRemove": 1, - "oldVisibleIndexPaths": 2, - "mutableCopy": 2, - "indexPathsToRemove": 2, - "removeObjectsInArray": 2, - "newVisibleIndexPaths": 2, - "*indexPathsToAdd": 1, - "indexPathsToAdd": 2, - "don": 2, - "on": 26, - "newly": 1, - "added": 5, - "_dragToReorderCell": 5, - "superview": 1, - "bringSubviewToFront": 1, - "CGSize": 5, - "self.contentSize": 3, - "headerViewRect": 3, - "s.height": 3, - "_headerView.frame.size.height": 2, - "visible.size.width": 3, - "_headerView.frame": 1, - "_headerView.hidden": 4, - "show": 2, - "NO": 30, - "YES": 62, - "pullDownRect": 4, - "_pullDownView.frame.size.height": 2, - "pullDownViewIsVisible": 3, - "_pullDownView.hidden": 4, - "_pullDownView.frame": 1, - "reloadDataMaintainingVisibleIndexPath": 2, - "relativeOffset": 5, - "_keepVisibleIndexPathForReload": 2, - "_relativeOffsetForReload": 2, - "reloadData": 3, - "self.delegate": 10, - "tableViewWillReloadData": 3, - "_selectedIndexPath": 9, - "need": 10, - "recycle": 1, - "all": 3, - "have": 15, - "them": 10, - "be": 49, - "regenerated": 3, - "layoutSubviews": 5, - "because": 1, - "same": 6, - "might": 4, - "different": 4, - "content": 5, - "dragged": 1, - "clear": 3, - "removeAllObjects": 1, - "any": 3, - "they": 6, - "should": 8, - "re": 9, - "when": 46, - "laid": 1, - "will": 57, - "next": 2, - "tableViewDidReloadData": 3, - "_tableFlags.layoutSubviewsReentrancyGuard": 3, - "setAnimationsEnabled": 1, - "CATransaction": 3, - "begin": 1, - "setDisableActions": 1, - "_preLayoutCells": 2, - "munge": 2, - "contentOffset": 2, - "_layoutSectionHeaders": 2, - "_tableFlags.derepeaterEnabled": 1, - "commit": 1, - "NSLog": 4, - "reloadLayout": 2, - "scrollToRowAtIndexPath": 3, - "atScrollPosition": 3, - "TUITableViewScrollPosition": 5, - "scrollPosition": 9, - "animated": 27, - "r": 6, - "target": 5, - "has": 6, - "its": 9, - "our": 6, - "selected": 2, - "being": 4, - "overlapped": 1, - "by": 12, - "r.size.height": 4, - "headerFrame.size.height": 1, - "TUITableViewScrollPositionNone": 2, - "do": 5, - "nothing": 2, - "TUITableViewScrollPositionTop": 2, - "r.origin.y": 1, - "v.size.height": 2, - "scrollRectToVisible": 2, - "TUITableViewScrollPositionToVisible": 3, - "default": 8, - "indexPathForSelectedRow": 4, - "indexPathForFirstRow": 2, - "indexPathForLastRow": 2, - "sec": 3, - "_makeRowAtIndexPathFirstResponder": 2, - "only": 12, - "accept": 2, - "responder": 2, - "made": 1, - "acceptsFirstResponder": 1, - "self.nsWindow": 3, - "makeFirstResponderIfNotAlreadyInResponderChain": 1, - "_indexPathShouldBeFirstResponder": 2, - "_futureMakeFirstResponderToken": 2, - "futureMakeFirstResponderRequestToken": 1, - "selectRowAtIndexPath": 3, - "*oldIndexPath": 1, - "isEqual": 4, - "oldIndexPath": 2, - "just": 4, - "deselectRowAtIndexPath": 3, - "may": 8, - "setSelected": 2, - "already": 4, - "setNeedsDisplay": 2, - "selection": 3, - "actually": 2, - "changes": 4, - "didSelectRowAtIndexPath": 3, - "NSResponder": 1, - "*firstResponder": 1, - "firstResponder": 3, - "didDeselectRowAtIndexPath": 3, - "indexPathForFirstVisibleRow": 2, - "*firstIndexPath": 1, - "firstIndexPath": 4, - "indexPathForLastVisibleRow": 2, - "*lastIndexPath": 5, - "lastIndexPath": 8, - "performKeyAction": 2, - "NSEvent": 3, - "event": 8, - "and": 44, - "repeative": 1, - "key": 32, - "press": 1, - "noCurrentSelection": 2, - "isARepeat": 1, - "TUITableViewCalculateNextIndexPathBlock": 3, - "selectValidIndexPath": 3, - "*startForNoSelection": 2, - "calculateNextIndexPath": 4, - "NSParameterAssert": 15, - "foundValidNextRow": 4, - "while": 11, - "*newIndexPath": 1, - "newIndexPath": 6, - "startForNoSelection": 1, - "_delegate": 2, - "shouldSelectRowAtIndexPath": 3, - "forEvent": 3, - "self.animateSelectionChanges": 1, - "charactersIgnoringModifiers": 1, - "characterAtIndex": 1, - "NSUpArrowFunctionKey": 1, - "lastIndexPath.section": 2, - "lastIndexPath.row": 2, - "rowsInSection": 7, - "NSDownArrowFunctionKey": 1, - "maintainContentOffsetAfterReload": 3, - "_tableFlags.maintainContentOffsetAfterReload": 2, - "setMaintainContentOffsetAfterReload": 1, - "newValue": 2, - "NSIndexPath": 5, - "indexPathWithIndexes": 1, - "length": 32, - "indexAtPosition": 2, - "FooAppDelegate": 2, - "window": 1, - "applicationDidFinishLaunching": 1, - "NSNotification": 2, - "aNotification": 1, - "#include": 18, - "": 1, - "": 2, - "": 2, - "": 1, - "": 1, - "#ifdef": 10, - "__OBJC__": 4, - "": 2, - "": 2, - "": 2, - "": 1, - "": 2, - "": 1, - "#endif": 59, - "__cplusplus": 2, - "extern": 6, - "#ifndef": 9, - "NSINTEGER_DEFINED": 3, - "#if": 41, - "defined": 16, - "__LP64__": 4, - "NS_BUILD_32_LIKE_64": 3, - "long": 71, - "unsigned": 62, - "NSIntegerMin": 3, - "LONG_MIN": 3, - "NSIntegerMax": 4, - "LONG_MAX": 3, - "NSUIntegerMax": 7, - "ULONG_MAX": 3, - "#else": 8, - "INT_MIN": 3, - "INT_MAX": 2, - "UINT_MAX": 3, - "_JSONKIT_H_": 3, - "__GNUC__": 14, - "__APPLE_CC__": 2, - "JK_DEPRECATED_ATTRIBUTE": 6, - "__attribute__": 3, - "deprecated": 1, - "JSONKIT_VERSION_MAJOR": 1, - "JSONKIT_VERSION_MINOR": 1, - "JKFlags": 5, - "enum": 17, - "JKParseOptionNone": 1, - "JKParseOptionStrict": 1, - "JKParseOptionComments": 2, - "<<": 16, - "JKParseOptionUnicodeNewlines": 2, - "JKParseOptionLooseUnicode": 2, - "JKParseOptionPermitTextAfterValidJSON": 2, - "JKParseOptionValidFlags": 1, - "|": 13, - "JKParseOptionFlags": 12, - "JKSerializeOptionNone": 3, - "JKSerializeOptionPretty": 2, - "JKSerializeOptionEscapeUnicode": 2, - "JKSerializeOptionEscapeForwardSlashes": 2, - "JKSerializeOptionValidFlags": 1, - "JKSerializeOptionFlags": 16, - "JKParseState": 18, - "Opaque": 1, - "internal": 2, - "private": 1, - "type.": 3, - "JSONDecoder": 2, - "*parseState": 16, - "decoder": 1, - "decoderWithParseOptions": 1, - "parseOptionFlags": 11, - "initWithParseOptions": 1, - "clearCache": 1, - "parseUTF8String": 2, - "const": 28, - "char": 19, - "string": 9, - "size_t": 23, - "Deprecated": 4, - "JSONKit": 11, - "v1.4.": 4, - "Use": 6, - "objectWithUTF8String": 4, - "instead.": 4, - "**": 27, - "parseJSONData": 2, - "jsonData": 6, - "mutableObjectWithUTF8String": 2, - "mutableObjectWithData": 2, - "////////////": 4, - "Deserializing": 1, - "methods": 2, - "JSONKitDeserializing": 2, - "objectFromJSONString": 1, - "objectFromJSONStringWithParseOptions": 2, - "mutableObjectFromJSONString": 1, - "mutableObjectFromJSONStringWithParseOptions": 2, - "objectFromJSONData": 1, - "objectFromJSONDataWithParseOptions": 2, - "mutableObjectFromJSONData": 1, - "mutableObjectFromJSONDataWithParseOptions": 2, - "Serializing": 1, - "JSONKitSerializing": 3, - "JSONData": 3, - "Invokes": 2, - "JSONDataWithOptions": 8, - "includeQuotes": 6, - "serializeOptions": 14, - "JSONString": 3, - "JSONStringWithOptions": 8, - "serializeUnsupportedClassesUsingDelegate": 4, - "selector": 12, - "SEL": 19, - "__BLOCKS__": 1, - "JSONKitSerializingBlockAdditions": 2, - "serializeUnsupportedClassesUsingBlock": 4, - "object": 36, - "///////////////////////////////////////////////////////////////////////////////////////////////////": 24, - "initWithNibName": 3, - "nibNameOrNil": 1, - "bundle": 3, - "NSBundle": 1, - "nibBundleOrNil": 1, - "self.title": 2, - "//self.variableHeightRows": 1, - "self.tableViewStyle": 1, - "UITableViewStyleGrouped": 1, - "self.dataSource": 1, - "TTSectionedDataSource": 1, - "dataSourceWithObjects": 1, - "TTTableTextItem": 48, - "itemWithText": 48, - "URL": 48, - "": 2, - "": 1, - "@private": 2, - "NSWindow": 2, - "*window": 2, - "IBOutlet": 1, - "StyleViewController": 2, - "TTViewController": 1, - "TTStyle*": 7, - "_styleHighlight": 6, - "_styleDisabled": 6, - "_styleSelected": 6, - "_styleType": 6, - "main": 8, - "argc": 1, - "*argv": 1, - "": 1, - "kFramePadding": 7, - "kElementSpacing": 3, - "kGroupSpacing": 5, - "PlaygroundViewController": 2, - "addHeader": 5, - "text": 12, - "yOffset": 42, - "UILabel*": 2, - "label": 6, - "UILabel": 2, - "label.text": 2, - "label.font": 3, - "UIFont": 3, - "systemFontOfSize": 2, - "label.numberOfLines": 2, - "label.frame": 4, - "frame.origin.x": 3, - "frame.size.width": 4, - "sizeWithFont": 2, - "constrainedToSize": 2, - "CGSizeMake": 3, - "_scrollView": 9, - "label.frame.size.height": 2, - "TT_RELEASE_SAFELY": 12, - "addText": 5, - "loadView": 4, - "UIScrollView": 1, - "self.view.bounds": 2, - "_scrollView.autoresizingMask": 1, - "UIViewAutoresizingFlexibleWidth": 4, - "UIViewAutoresizingFlexibleHeight": 1, - "self.view": 4, - "NSLocalizedString": 9, - "UIButton*": 1, - "button": 5, - "UIButton": 1, - "buttonWithType": 1, - "UIButtonTypeRoundedRect": 1, - "setTitle": 1, - "forState": 4, - "UIControlStateNormal": 1, - "addTarget": 1, - "action": 1, - "debugTestAction": 2, - "forControlEvents": 1, - "UIControlEventTouchUpInside": 1, - "sizeToFit": 1, - "button.frame": 2, - "stringWithFormat": 6, - "TTCurrentLocale": 2, - "displayNameForKey": 1, - "NSLocaleIdentifier": 1, - "localeIdentifier": 1, - "TTPathForBundleResource": 1, - "TTPathForDocumentsResource": 1, - "md5Hash": 1, - "setContentSize": 1, - "viewDidUnload": 2, - "viewDidAppear": 2, - "flashScrollIndicators": 1, - "DEBUG": 1, - "TTDPRINTMETHODNAME": 1, - "TTDPRINT": 9, - "TTMAXLOGLEVEL": 1, - "TTDERROR": 1, - "TTLOGLEVEL_ERROR": 1, - "TTDWARNING": 1, - "TTLOGLEVEL_WARNING": 1, - "TTDINFO": 1, - "TTLOGLEVEL_INFO": 1, - "TTDCONDITIONLOG": 3, - "true": 9, - "false": 3, - "rand": 1, - "%": 30, - "TTDASSERT": 2, - "TARGET_OS_IPHONE": 11, - "": 1, - "": 1, - "*ASIHTTPRequestVersion": 2, - "*defaultUserAgent": 1, - "NetworkRequestErrorDomain": 12, - "*ASIHTTPRequestRunLoopMode": 1, - "CFOptionFlags": 1, - "kNetworkEvents": 1, - "kCFStreamEventHasBytesAvailable": 1, - "kCFStreamEventEndEncountered": 1, - "kCFStreamEventErrorOccurred": 1, - "*sessionCredentialsStore": 1, - "*sessionProxyCredentialsStore": 1, - "NSRecursiveLock": 13, - "*sessionCredentialsLock": 1, - "*sessionCookies": 1, - "RedirectionLimit": 1, - "NSTimeInterval": 10, - "defaultTimeOutSeconds": 3, - "ReadStreamClientCallBack": 1, - "CFReadStreamRef": 5, - "readStream": 5, - "CFStreamEventType": 2, - "type": 5, - "*clientCallBackInfo": 1, - "ASIHTTPRequest*": 1, - "clientCallBackInfo": 1, - "handleNetworkEvent": 2, - "*progressLock": 1, - "*ASIRequestCancelledError": 1, - "*ASIRequestTimedOutError": 1, - "*ASIAuthenticationError": 1, - "*ASIUnableToCreateRequestError": 1, - "*ASITooMuchRedirectionError": 1, - "*bandwidthUsageTracker": 1, - "averageBandwidthUsedPerSecond": 2, - "nextConnectionNumberToCreate": 1, - "*persistentConnectionsPool": 1, - "*connectionsLock": 1, - "nextRequestID": 1, - "bandwidthUsedInLastSecond": 1, - "NSDate": 9, - "*bandwidthMeasurementDate": 1, - "NSLock": 2, - "*bandwidthThrottlingLock": 1, - "maxBandwidthPerSecond": 2, - "ASIWWANBandwidthThrottleAmount": 2, - "isBandwidthThrottled": 2, - "shouldThrottleBandwidthForWWANOnly": 1, - "*sessionCookiesLock": 1, - "*delegateAuthenticationLock": 1, - "*throttleWakeUpTime": 1, - "": 9, - "defaultCache": 3, - "runningRequestCount": 1, - "shouldUpdateNetworkActivityIndicator": 1, - "NSThread": 4, - "*networkThread": 1, - "NSOperationQueue": 4, - "*sharedQueue": 1, - "ASIHTTPRequest": 31, - "cancelLoad": 3, - "destroyReadStream": 3, - "scheduleReadStream": 1, - "unscheduleReadStream": 1, - "willAskDelegateForCredentials": 1, - "willAskDelegateForProxyCredentials": 1, - "askDelegateForProxyCredentials": 1, - "askDelegateForCredentials": 1, - "failAuthentication": 1, - "measureBandwidthUsage": 1, - "recordBandwidthUsage": 1, - "startRequest": 3, - "updateStatus": 2, - "NSTimer": 5, - "timer": 5, - "checkRequestStatus": 2, - "reportFailure": 3, - "reportFinished": 1, - "markAsFinished": 4, - "performRedirect": 1, - "shouldTimeOut": 2, - "willRedirect": 1, - "willAskDelegateToConfirmRedirect": 1, - "performInvocation": 2, - "NSInvocation": 4, - "invocation": 4, - "onTarget": 7, - "releasingObject": 2, - "objectToRelease": 1, - "hideNetworkActivityIndicatorAfterDelay": 1, - "hideNetworkActivityIndicatorIfNeeeded": 1, - "runRequests": 1, - "configureProxies": 2, - "fetchPACFile": 1, - "finishedDownloadingPACFile": 1, - "theRequest": 1, - "runPACScript": 1, - "script": 1, - "timeOutPACRead": 1, - "useDataFromCache": 2, - "updatePartialDownloadSize": 1, - "registerForNetworkReachabilityNotifications": 1, - "unsubscribeFromNetworkReachabilityNotifications": 1, - "reachabilityChanged": 1, - "note": 1, - "NS_BLOCKS_AVAILABLE": 8, - "performBlockOnMainThread": 2, - "ASIBasicBlock": 15, - "releaseBlocksOnMainThread": 4, - "releaseBlocks": 3, - "blocks": 16, - "callBlock": 1, - "complete": 12, - "retain": 73, - "*responseCookies": 3, - "responseStatusCode": 3, - "*lastActivityTime": 2, - "partialDownloadSize": 8, - "uploadBufferSize": 6, - "NSOutputStream": 6, - "*postBodyWriteStream": 1, - "NSInputStream": 7, - "*postBodyReadStream": 1, - "lastBytesRead": 3, - "lastBytesSent": 3, - "*cancelledLock": 2, - "*fileDownloadOutputStream": 2, - "*inflatedFileDownloadOutputStream": 2, - "authenticationRetryCount": 2, - "proxyAuthenticationRetryCount": 4, - "updatedProgress": 3, - "needsRedirect": 3, - "redirectCount": 2, - "*compressedPostBody": 1, - "*compressedPostBodyFilePath": 1, - "*authenticationRealm": 2, - "*proxyAuthenticationRealm": 3, - "*responseStatusMessage": 3, - "inProgress": 4, - "retryCount": 3, - "willRetryRequest": 1, - "connectionCanBeReused": 4, - "*connectionInfo": 2, - "*readStream": 1, - "ASIAuthenticationState": 5, - "authenticationNeeded": 3, - "readStreamIsScheduled": 1, - "downloadComplete": 2, - "NSNumber": 11, - "*requestID": 3, - "*runLoopMode": 2, - "*statusTimer": 2, - "didUseCachedResponse": 3, - "NSURL": 21, - "*redirectURL": 2, - "isPACFileRequest": 3, - "*PACFileRequest": 2, - "*PACFileReadStream": 2, - "NSMutableData": 5, - "*PACFileData": 2, - "setter": 2, - "setSynchronous": 2, - "isSynchronous": 2, - "/": 18, - "initialize": 1, - "persistentConnectionsPool": 3, - "connectionsLock": 3, - "progressLock": 1, - "bandwidthThrottlingLock": 1, - "sessionCookiesLock": 1, - "sessionCredentialsLock": 1, - "delegateAuthenticationLock": 1, - "bandwidthUsageTracker": 1, - "ASIRequestTimedOutError": 1, - "initWithDomain": 5, - "ASIRequestTimedOutErrorType": 2, - "ASIAuthenticationError": 1, - "ASIAuthenticationErrorType": 3, - "ASIRequestCancelledError": 2, - "ASIRequestCancelledErrorType": 2, - "ASIUnableToCreateRequestError": 3, - "ASIUnableToCreateRequestErrorType": 2, - "ASITooMuchRedirectionError": 1, - "ASITooMuchRedirectionErrorType": 3, - "sharedQueue": 4, - "setMaxConcurrentOperationCount": 1, - "initWithURL": 4, - "newURL": 16, - "setRequestMethod": 3, - "setRunLoopMode": 2, - "NSDefaultRunLoopMode": 2, - "setShouldAttemptPersistentConnection": 2, - "setPersistentConnectionTimeoutSeconds": 2, - "setShouldPresentCredentialsBeforeChallenge": 1, - "setShouldRedirect": 1, - "setShowAccurateProgress": 1, - "setShouldResetDownloadProgress": 1, - "setShouldResetUploadProgress": 1, - "setAllowCompressedResponse": 1, - "setShouldWaitToInflateCompressedResponses": 1, - "setDefaultResponseEncoding": 1, - "NSISOLatin1StringEncoding": 2, - "setShouldPresentProxyAuthenticationDialog": 1, - "setTimeOutSeconds": 1, - "setUseSessionPersistence": 1, - "setUseCookiePersistence": 1, - "setValidatesSecureCertificate": 1, - "setRequestCookies": 2, - "autorelease": 21, - "setDidStartSelector": 1, - "requestStarted": 3, - "setDidReceiveResponseHeadersSelector": 1, - "request": 113, - "didReceiveResponseHeaders": 2, - "setWillRedirectSelector": 1, - "willRedirectToURL": 1, - "setDidFinishSelector": 1, - "requestFinished": 4, - "setDidFailSelector": 1, - "requestFailed": 2, - "setDidReceiveDataSelector": 1, - "didReceiveData": 2, - "setURL": 3, - "setCancelledLock": 1, - "setDownloadCache": 3, - "requestWithURL": 7, - "usingCache": 5, - "cache": 17, - "andCachePolicy": 3, - "ASIUseDefaultCachePolicy": 1, - "ASICachePolicy": 4, - "policy": 7, - "*request": 1, - "setCachePolicy": 1, - "setAuthenticationNeeded": 2, - "ASINoAuthenticationNeededYet": 3, - "requestAuthentication": 7, - "CFRelease": 19, - "proxyAuthentication": 7, - "clientCertificateIdentity": 5, - "redirectURL": 1, - "release": 66, - "statusTimer": 3, - "invalidate": 2, - "queue": 12, - "postBody": 11, - "compressedPostBody": 4, - "requestHeaders": 6, - "requestCookies": 1, - "downloadDestinationPath": 11, - "temporaryFileDownloadPath": 2, - "temporaryUncompressedDataDownloadPath": 3, - "fileDownloadOutputStream": 1, - "inflatedFileDownloadOutputStream": 1, - "username": 8, - "password": 11, - "domain": 2, - "authenticationRealm": 4, - "authenticationScheme": 4, - "requestCredentials": 1, - "proxyHost": 2, - "proxyType": 1, - "proxyUsername": 3, - "proxyPassword": 3, - "proxyDomain": 1, - "proxyAuthenticationRealm": 2, - "proxyAuthenticationScheme": 2, - "proxyCredentials": 1, - "url": 24, - "originalURL": 1, - "lastActivityTime": 1, - "responseCookies": 1, - "rawResponseData": 4, - "responseHeaders": 5, - "requestMethod": 13, - "cancelledLock": 37, - "postBodyFilePath": 7, - "compressedPostBodyFilePath": 4, - "postBodyWriteStream": 7, - "postBodyReadStream": 2, - "PACurl": 1, - "clientCertificates": 2, - "responseStatusMessage": 1, - "connectionInfo": 13, - "requestID": 2, - "dataDecompressor": 1, - "userAgentString": 1, - "*blocks": 1, - "completionBlock": 5, - "failureBlock": 5, - "startedBlock": 5, - "headersReceivedBlock": 5, - "bytesReceivedBlock": 8, - "bytesSentBlock": 5, - "downloadSizeIncrementedBlock": 5, - "uploadSizeIncrementedBlock": 5, - "dataReceivedBlock": 5, - "proxyAuthenticationNeededBlock": 5, - "authenticationNeededBlock": 5, - "requestRedirectedBlock": 5, - "performSelectorOnMainThread": 2, - "withObject": 10, - "waitUntilDone": 4, - "isMainThread": 2, - "Blocks": 1, - "released": 2, - "method": 5, - "exits": 1, - "setup": 2, - "addRequestHeader": 5, - "setRequestHeaders": 2, - "dictionaryWithCapacity": 2, - "buildPostBody": 3, - "haveBuiltPostBody": 3, - "Are": 1, - "submitting": 1, - "body": 8, - "file": 14, - "disk": 1, - "were": 5, - "writing": 2, - "post": 2, - "via": 5, - "appendPostData": 3, - "appendPostDataFromFile": 3, - "close": 5, - "write": 4, - "stream": 13, - "setPostBodyWriteStream": 2, - "*path": 1, - "shouldCompressRequestBody": 6, - "setCompressedPostBodyFilePath": 1, - "NSTemporaryDirectory": 2, - "stringByAppendingPathComponent": 2, - "NSProcessInfo": 2, - "processInfo": 2, - "globallyUniqueString": 2, - "*err": 3, - "ASIDataCompressor": 2, - "compressDataFromFile": 1, - "toFile": 1, - "err": 8, - "failWithError": 11, - "setPostLength": 3, - "NSFileManager": 1, - "attributesOfItemAtPath": 1, - "fileSize": 1, - "ASIFileManagementError": 2, - "NSUnderlyingErrorKey": 3, - "Otherwise": 2, - "an": 20, - "memory": 3, - "*compressedBody": 1, - "compressData": 1, - "setCompressedPostBody": 1, - "compressedBody": 1, - "postLength": 6, - "isEqualToString": 13, - "setHaveBuiltPostBody": 1, - "setupPostBody": 3, - "shouldStreamPostDataFromDisk": 4, - "setPostBodyFilePath": 1, - "setDidCreateTemporaryPostDataFile": 1, - "initToFileAtPath": 1, - "append": 1, - "open": 2, - "setPostBody": 1, - "bytes": 8, - "maxLength": 3, - "appendData": 2, - "*stream": 1, - "initWithFileAtPath": 1, - "bytesRead": 5, - "hasBytesAvailable": 1, - "buffer": 7, - "*256": 1, - "read": 3, - "dataWithBytes": 1, - "lock": 19, - "*m": 1, - "unlock": 20, - "m": 1, - "newRequestMethod": 3, - "*u": 1, - "NULL": 152, - "setRedirectURL": 2, - "newDelegate": 6, - "q": 2, - "setQueue": 2, - "newQueue": 3, - "get": 4, - "information": 5, - "about": 4, - "cancelOnRequestThread": 2, - "DEBUG_REQUEST_STATUS": 4, - "ASI_DEBUG_LOG": 11, - "isCancelled": 6, - "setComplete": 3, - "CFRetain": 4, - "willChangeValueForKey": 1, - "cancelled": 5, - "didChangeValueForKey": 1, - "cancel": 5, - "performSelector": 7, - "onThread": 2, - "threadForRequest": 3, - "clearDelegatesAndCancel": 2, - "Clear": 3, - "delegates": 2, - "setDownloadProgressDelegate": 2, - "setUploadProgressDelegate": 2, - "result": 4, - "responseString": 3, - "*data": 2, - "responseData": 5, - "initWithBytes": 1, - "encoding": 7, - "responseEncoding": 3, - "isResponseCompressed": 3, - "*encoding": 1, - "rangeOfString": 1, - ".location": 1, - "NSNotFound": 1, - "shouldWaitToInflateCompressedResponses": 4, - "ASIDataDecompressor": 4, - "uncompressData": 1, - "running": 4, - "startSynchronous": 2, - "DEBUG_THROTTLING": 2, - "ASIHTTPRequestRunLoopMode": 2, - "setInProgress": 3, - "NSRunLoop": 2, - "currentRunLoop": 2, - "runMode": 1, - "runLoopMode": 2, - "beforeDate": 1, - "distantFuture": 1, - "startAsynchronous": 2, - "addOperation": 1, - "concurrency": 1, - "isConcurrent": 1, - "isFinished": 1, - "finished": 3, - "isExecuting": 1, - "logic": 1, - "@try": 1, - "__IPHONE_OS_VERSION_MAX_ALLOWED": 4, - "__IPHONE_4_0": 6, - "isMultitaskingSupported": 2, - "shouldContinueWhenAppEntersBackground": 3, - "backgroundTask": 7, - "UIBackgroundTaskInvalid": 3, - "UIApplication": 2, - "sharedApplication": 2, - "beginBackgroundTaskWithExpirationHandler": 1, - "dispatch_async": 1, - "dispatch_get_main_queue": 1, - "endBackgroundTask": 1, - "A": 4, - "HEAD": 10, - "generated": 3, - "ASINetworkQueue": 4, - "set": 24, - "already.": 1, - "proceed.": 1, - "setDidUseCachedResponse": 1, - "Must": 1, - "before": 6, - "create": 1, - "can": 20, - "needs": 1, - "mainRequest": 9, - "ll": 6, - "CFHTTPMessageRef": 3, - "Create": 1, - "HTTP": 9, - "request.": 1, - "CFHTTPMessageCreateRequest": 1, - "kCFAllocatorDefault": 3, - "CFStringRef": 1, - "CFURLRef": 1, - "useHTTPVersionOne": 3, - "kCFHTTPVersion1_0": 1, - "kCFHTTPVersion1_1": 1, - "//If": 2, - "let": 8, - "generate": 1, - "buildRequestHeaders": 3, - "Even": 1, - "still": 2, - "give": 2, - "subclasses": 2, - "chance": 2, - "their": 3, - "own": 3, - "requests": 21, - "ASIS3Request": 1, - "does": 3, - "downloadCache": 5, - "download": 9, - "downloading": 5, - "proxy": 11, - "PAC": 7, - "once": 3, - "process": 1, - "@catch": 1, - "NSException": 19, - "*exception": 1, - "*underlyingError": 1, - "ASIUnhandledExceptionError": 3, - "exception": 3, - "name": 7, - "reason": 1, - "NSLocalizedFailureReasonErrorKey": 1, - "underlyingError": 1, - "@finally": 1, - "applyAuthorizationHeader": 2, - "Do": 3, - "want": 5, - "send": 2, - "credentials": 35, - "are": 15, - "asked": 3, - "shouldPresentCredentialsBeforeChallenge": 4, - "DEBUG_HTTP_AUTHENTICATION": 4, - "*credentials": 1, - "auth": 2, - "basic": 3, - "authentication": 18, - "explicitly": 2, - "kCFHTTPAuthenticationSchemeBasic": 2, - "addBasicAuthenticationHeaderWithUsername": 2, - "andPassword": 2, - "See": 5, - "cached": 2, - "session": 5, - "store": 4, - "useSessionPersistence": 6, - "findSessionAuthenticationCredentials": 2, - "When": 15, - "Authentication": 3, - "stored": 9, - "after": 5, - "challenge": 1, - "CFNetwork": 3, - "apply": 2, - "Digest": 2, - "NTLM": 6, - "always": 2, - "like": 1, - "CFHTTPMessageApplyCredentialDictionary": 2, - "CFHTTPAuthenticationRef": 2, - "CFDictionaryRef": 1, - "setAuthenticationScheme": 1, - "removeAuthenticationCredentialsFromSessionStore": 3, - "these": 3, - "previous": 2, - "passed": 2, - "happens": 4, - "retrying": 1, - "using": 8, - "custom": 2, - "measure": 1, - "bandwidth": 3, - "throttled": 1, - "necessary": 2, - "setPostBodyReadStream": 2, - "ASIInputStream": 2, - "inputStreamWithData": 2, - "setReadStream": 2, - "NSMakeCollectable": 3, - "CFReadStreamCreateForStreamedHTTPRequest": 1, - "CFReadStreamCreateForHTTPRequest": 1, - "ASIInternalErrorWhileBuildingRequestType": 3, - "scheme": 5, - "lowercaseString": 1, - "validatesSecureCertificate": 3, - "*sslProperties": 2, - "initWithObjectsAndKeys": 1, - "numberWithBool": 3, - "kCFStreamSSLAllowsExpiredCertificates": 1, - "kCFStreamSSLAllowsAnyRoot": 1, - "kCFStreamSSLValidatesCertificateChain": 1, - "kCFNull": 1, - "kCFStreamSSLPeerName": 1, - "CFReadStreamSetProperty": 1, - "kCFStreamPropertySSLSettings": 1, - "CFTypeRef": 1, - "sslProperties": 2, - "*certificates": 1, - "The": 15, - "SecIdentityRef": 3, - "certificates": 2, - "ve": 7, - "opened": 3, - "*oldStream": 1, - "persistent": 5, - "connection": 17, - "possible": 3, - "shouldAttemptPersistentConnection": 2, - "redirecting": 2, - "current": 2, - "connecting": 2, - "server": 8, - "host": 9, - "intValue": 4, - "port": 17, - "setConnectionInfo": 2, - "Check": 1, - "expired": 1, - "timeIntervalSinceNow": 1, - "DEBUG_PERSISTENT_CONNECTIONS": 3, - "removeObject": 2, - "//Some": 1, - "other": 3, - "reused": 2, - "was": 4, - "previously": 1, - "there": 1, - "one": 1, - "We": 7, - "make": 3, - "http": 4, - "//lists.apple.com/archives/Macnetworkprog/2006/Mar/msg00119.html": 1, - "oldStream": 4, - "streamSuccessfullyOpened": 1, - "setConnectionCanBeReused": 2, - "shouldResetUploadProgress": 3, - "showAccurateProgress": 7, - "incrementUploadSizeBy": 3, - "updateProgressIndicator": 4, - "uploadProgressDelegate": 8, - "withProgress": 4, - "ofTotal": 4, - "shouldResetDownloadProgress": 3, - "downloadProgressDelegate": 10, - "Record": 1, - "started": 1, - "timeout": 6, - "setLastActivityTime": 1, - "date": 3, - "setStatusTimer": 2, - "timerWithTimeInterval": 1, - "repeats": 1, - "addTimer": 1, - "forMode": 1, - "here": 2, - "sent": 6, - "more": 5, - "than": 9, - "upload": 4, - "safely": 1, - "time": 9, - "totalBytesSent": 5, - "***Black": 1, - "magic": 1, - "warning***": 1, - "but": 5, - "reliable": 1, - "way": 1, - "track": 1, - "progress": 13, - "KB": 4, - "iPhone": 3, - "Mac": 2, - "very": 2, - "slow.": 1, - "secondsSinceLastActivity": 1, - "timeOutSeconds": 3, - "*1.5": 1, - "won": 3, - "updating": 1, - "checking": 1, - "told": 1, - "us": 2, - "performThrottling": 2, - "retry": 3, - "numberOfTimesToRetryOnTimeout": 2, - "resuming": 1, - "Range": 1, - "take": 1, - "account": 1, - "currently": 4, - "perhaps": 1, - "uploaded": 2, - "far": 2, - "setTotalBytesSent": 1, - "CFReadStreamCopyProperty": 2, - "kCFStreamPropertyHTTPRequestBytesWrittenCount": 1, - "unsignedLongLongValue": 1, - "middle": 1, - "said": 1, - "resume": 2, - "used": 16, - "preset": 2, - "updateUploadProgress": 3, - "updateDownloadProgress": 3, - "NSProgressIndicator": 4, - "MaxValue": 2, - "as": 17, - "UIProgressView": 2, - "double": 3, - "max": 7, - "setMaxValue": 2, - "amount": 12, - "callerToRetain": 7, - "examined": 1, - "since": 1, - "authenticate": 1, - "contentLength": 6, - "bytesReadSoFar": 3, - "totalBytesRead": 4, - "setUpdatedProgress": 1, - "didReceiveBytes": 2, - "totalSize": 2, - "setLastBytesRead": 1, - "pass": 5, - "pointer": 2, - "directly": 1, - "number": 2, - "itself": 1, - "rather": 4, - "setArgument": 4, - "atIndex": 6, - "argumentNumber": 1, - "callback": 3, - "NSMethodSignature": 1, - "*cbSignature": 1, - "methodSignatureForSelector": 1, - "*cbInvocation": 1, - "invocationWithMethodSignature": 1, - "cbSignature": 1, - "cbInvocation": 5, - "setSelector": 1, - "setTarget": 1, - "Used": 13, - "until": 2, - "forget": 2, - "know": 3, - "attempt": 3, - "reuse": 3, - "theError": 6, - "removeObjectForKey": 1, - "dateWithTimeIntervalSinceNow": 1, - "persistentConnectionTimeoutSeconds": 4, - "ignore": 1, - "ASIFallbackToCacheIfLoadFailsCachePolicy": 2, - "cachePolicy": 3, - "canUseCachedDataForRequest": 1, - "setError": 2, - "*failedRequest": 1, - "created": 3, - "compatible": 1, - "fail": 1, - "failedRequest": 4, - "parsing": 2, - "response": 17, - "readResponseHeaders": 2, - "message": 2, - "kCFStreamPropertyHTTPResponseHeader": 1, - "Make": 1, - "sure": 1, - "didn": 3, - "tells": 1, - "keepAliveHeader": 2, - "NSScanner": 2, - "*scanner": 1, - "scannerWithString": 1, - "scanner": 5, - "scanString": 2, - "intoString": 3, - "scanInt": 2, - "scanUpToString": 1, - "probably": 4, - "what": 3, - "you": 10, - "hard": 1, - "keep": 2, - "throw": 1, - "away.": 1, - "*userAgentHeader": 1, - "*acceptHeader": 1, - "userAgentHeader": 2, - "acceptHeader": 2, - "setHaveBuiltRequestHeaders": 1, - "Force": 2, - "rebuild": 2, - "cookie": 1, - "incase": 1, - "got": 1, - "some": 1, - "cookies": 5, - "All": 2, - "remain": 1, - "redirects": 2, - "applyCookieHeader": 2, - "redirected": 2, - "ones": 3, - "URLWithString": 1, - "valueForKey": 2, - "relativeToURL": 1, - "absoluteURL": 1, - "setNeedsRedirect": 1, - "This": 7, - "means": 1, - "manually": 1, - "redirect": 4, - "those": 1, - "global": 1, - "But": 1, - "safest": 1, - "option": 1, - "responseCode": 1, - "parseStringEncodingFromHeaders": 2, - "Handle": 1, - "NSStringEncoding": 6, - "charset": 5, - "*mimeType": 1, - "parseMimeType": 2, - "mimeType": 2, - "andResponseEncoding": 2, - "fromContentType": 2, - "setResponseEncoding": 2, - "defaultResponseEncoding": 4, - "saveProxyCredentialsToKeychain": 1, - "newCredentials": 16, - "NSURLCredential": 8, - "*authenticationCredentials": 2, - "credentialWithUser": 2, - "kCFHTTPAuthenticationUsername": 2, - "kCFHTTPAuthenticationPassword": 2, - "persistence": 2, - "NSURLCredentialPersistencePermanent": 2, - "authenticationCredentials": 4, - "saveCredentials": 4, - "forProxy": 2, - "proxyPort": 2, - "realm": 14, - "saveCredentialsToKeychain": 3, - "forHost": 2, - "protocol": 10, - "applyProxyCredentials": 2, - "setProxyAuthenticationRetryCount": 1, - "Apply": 1, - "whatever": 1, - "ok": 1, - "built": 2, - "up": 4, - "CFMutableDictionaryRef": 1, - "save": 3, - "keychain": 7, - "useKeychainPersistence": 4, - "*sessionCredentials": 1, - "dictionary": 64, - "sessionCredentials": 6, - "storeAuthenticationCredentialsInSessionStore": 2, - "setRequestCredentials": 1, - "findProxyCredentials": 2, - "*newCredentials": 1, - "*user": 1, - "*pass": 1, - "*theRequest": 1, - "try": 3, - "user": 6, - "connect": 1, - "website": 1, - "kCFHTTPAuthenticationSchemeNTLM": 1, - "Ok": 1, - "For": 2, - "authenticating": 2, - "proxies": 3, - "extract": 1, - "NSArray*": 1, - "ntlmComponents": 1, - "componentsSeparatedByString": 1, - "AUTH": 6, - "Request": 6, - "parent": 1, - "properties": 1, - "received": 5, - "ASIAuthenticationDialog": 2, - "had": 1, - "UIViewController": 2, - "UIScrollView*": 1, - "": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "//#include": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "//#import": 1, - "": 4, - "": 1, - "": 1, - "": 1, - "__has_feature": 3, - "x": 10, - "JK_ENABLE_CF_TRANSFER_OWNERSHIP_CALLBACKS": 2, - "#warning": 1, - "As": 1, - "v1.4": 1, - "longer": 2, - "required.": 1, - "It": 2, - "option.": 1, - "__OBJC_GC__": 1, - "#error": 6, - "support": 4, - "Objective": 2, - "C": 6, - "Garbage": 1, - "Collection": 1, - "objc_arc": 1, - "Automatic": 1, - "Reference": 1, - "Counting": 1, - "ARC": 1, - "xffffffffU": 1, - "fffffff": 1, - "ULLONG_MAX": 1, - "xffffffffffffffffULL": 1, - "LLONG_MIN": 1, - "fffffffffffffffLL": 1, - "LL": 1, - "requires": 4, - "types": 2, - "bits": 1, - "respectively.": 1, - "WORD_BIT": 1, - "LONG_BIT": 1, - "bit": 1, - "architectures.": 1, - "SIZE_MAX": 1, - "SSIZE_MAX": 1, - "JK_HASH_INIT": 1, - "UL": 138, - "JK_FAST_TRAILING_BYTES": 2, - "JK_CACHE_SLOTS_BITS": 2, - "JK_CACHE_SLOTS": 1, - "JK_CACHE_PROBES": 1, - "JK_INIT_CACHE_AGE": 1, - "JK_TOKENBUFFER_SIZE": 1, - "JK_STACK_OBJS": 1, - "JK_JSONBUFFER_SIZE": 1, - "JK_UTF8BUFFER_SIZE": 1, - "JK_ENCODE_CACHE_SLOTS": 1, - "JK_ATTRIBUTES": 15, - "attr": 3, - "...": 11, - "##__VA_ARGS__": 7, - "JK_EXPECTED": 4, - "cond": 12, - "expect": 3, - "__builtin_expect": 1, - "JK_EXPECT_T": 22, - "U": 2, - "JK_EXPECT_F": 14, - "JK_PREFETCH": 2, - "ptr": 3, - "__builtin_prefetch": 1, - "JK_STATIC_INLINE": 10, - "__inline__": 1, - "always_inline": 1, - "JK_ALIGNED": 1, - "arg": 11, - "aligned": 1, - "JK_UNUSED_ARG": 2, - "unused": 3, - "JK_WARN_UNUSED": 1, - "warn_unused_result": 9, - "JK_WARN_UNUSED_CONST": 1, - "JK_WARN_UNUSED_PURE": 1, - "pure": 2, - "JK_WARN_UNUSED_SENTINEL": 1, - "sentinel": 1, - "JK_NONNULL_ARGS": 1, - "nonnull": 6, - "JK_WARN_UNUSED_NONNULL_ARGS": 1, - "JK_WARN_UNUSED_CONST_NONNULL_ARGS": 1, - "JK_WARN_UNUSED_PURE_NONNULL_ARGS": 1, - "__GNUC_MINOR__": 3, - "JK_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED": 2, - "nn": 4, - "alloc_size": 1, - "@class": 4, - "JKArray": 14, - "JKDictionaryEnumerator": 4, - "JKDictionary": 22, - "JSONNumberStateStart": 1, - "JSONNumberStateFinished": 1, - "JSONNumberStateError": 1, - "JSONNumberStateWholeNumberStart": 1, - "JSONNumberStateWholeNumberMinus": 1, - "JSONNumberStateWholeNumberZero": 1, - "JSONNumberStateWholeNumber": 1, - "JSONNumberStatePeriod": 1, - "JSONNumberStateFractionalNumberStart": 1, - "JSONNumberStateFractionalNumber": 1, - "JSONNumberStateExponentStart": 1, - "JSONNumberStateExponentPlusMinus": 1, - "JSONNumberStateExponent": 1, - "JSONStringStateStart": 1, - "JSONStringStateParsing": 1, - "JSONStringStateFinished": 1, - "JSONStringStateError": 1, - "JSONStringStateEscape": 1, - "JSONStringStateEscapedUnicode1": 1, - "JSONStringStateEscapedUnicode2": 1, - "JSONStringStateEscapedUnicode3": 1, - "JSONStringStateEscapedUnicode4": 1, - "JSONStringStateEscapedUnicodeSurrogate1": 1, - "JSONStringStateEscapedUnicodeSurrogate2": 1, - "JSONStringStateEscapedUnicodeSurrogate3": 1, - "JSONStringStateEscapedUnicodeSurrogate4": 1, - "JSONStringStateEscapedNeedEscapeForSurrogate": 1, - "JSONStringStateEscapedNeedEscapedUForSurrogate": 1, - "JKParseAcceptValue": 2, - "JKParseAcceptComma": 2, - "JKParseAcceptEnd": 3, - "JKParseAcceptValueOrEnd": 1, - "JKParseAcceptCommaOrEnd": 1, - "JKClassUnknown": 1, - "JKClassString": 1, - "JKClassNumber": 1, - "JKClassArray": 1, - "JKClassDictionary": 1, - "JKClassNull": 1, - "JKManagedBufferOnStack": 1, - "JKManagedBufferOnHeap": 1, - "JKManagedBufferLocationMask": 1, - "JKManagedBufferLocationShift": 1, - "JKManagedBufferMustFree": 1, - "JKManagedBufferFlags": 1, - "JKObjectStackOnStack": 1, - "JKObjectStackOnHeap": 1, - "JKObjectStackLocationMask": 1, - "JKObjectStackLocationShift": 1, - "JKObjectStackMustFree": 1, - "JKObjectStackFlags": 1, - "JKTokenTypeInvalid": 1, - "JKTokenTypeNumber": 1, - "JKTokenTypeString": 1, - "JKTokenTypeObjectBegin": 1, - "JKTokenTypeObjectEnd": 1, - "JKTokenTypeArrayBegin": 1, - "JKTokenTypeArrayEnd": 1, - "JKTokenTypeSeparator": 1, - "JKTokenTypeComma": 1, - "JKTokenTypeTrue": 1, - "JKTokenTypeFalse": 1, - "JKTokenTypeNull": 1, - "JKTokenTypeWhiteSpace": 1, - "JKTokenType": 2, - "JKValueTypeNone": 1, - "JKValueTypeString": 1, - "JKValueTypeLongLong": 1, - "JKValueTypeUnsignedLongLong": 1, - "JKValueTypeDouble": 1, - "JKValueType": 1, - "JKEncodeOptionAsData": 1, - "JKEncodeOptionAsString": 1, - "JKEncodeOptionAsTypeMask": 1, - "JKEncodeOptionCollectionObj": 1, - "JKEncodeOptionStringObj": 1, - "JKEncodeOptionStringObjTrimQuotes": 1, - "JKEncodeOptionType": 2, - "JKHash": 4, - "JKTokenCacheItem": 2, - "JKTokenCache": 2, - "JKTokenValue": 2, - "JKParseToken": 2, - "JKPtrRange": 2, - "JKObjectStack": 5, - "JKBuffer": 2, - "JKConstBuffer": 2, - "JKConstPtrRange": 2, - "JKRange": 2, - "JKManagedBuffer": 5, - "JKFastClassLookup": 2, - "JKEncodeCache": 6, - "JKEncodeState": 11, - "JKObjCImpCache": 2, - "JKHashTableEntry": 21, - "serializeObject": 1, - "optionFlags": 1, - "encodeOption": 2, - "JKSERIALIZER_BLOCKS_PROTO": 1, - "releaseState": 1, - "keyHash": 21, - "uint32_t": 1, - "UTF32": 11, - "uint16_t": 1, - "UTF16": 1, - "uint8_t": 1, - "UTF8": 2, - "conversionOK": 1, - "sourceExhausted": 1, - "targetExhausted": 1, - "sourceIllegal": 1, - "ConversionResult": 1, - "UNI_REPLACEMENT_CHAR": 1, - "FFFD": 1, - "UNI_MAX_BMP": 1, - "FFFF": 3, - "UNI_MAX_UTF16": 1, - "UNI_MAX_UTF32": 1, - "FFFFFFF": 1, - "UNI_MAX_LEGAL_UTF32": 1, - "UNI_SUR_HIGH_START": 1, - "xD800": 1, - "UNI_SUR_HIGH_END": 1, - "xDBFF": 1, - "UNI_SUR_LOW_START": 1, - "xDC00": 1, - "UNI_SUR_LOW_END": 1, - "xDFFF": 1, - "trailingBytesForUTF8": 1, - "offsetsFromUTF8": 1, - "E2080UL": 1, - "C82080UL": 1, - "xFA082080UL": 1, - "firstByteMark": 1, - "xC0": 1, - "xE0": 1, - "xF0": 1, - "xF8": 1, - "xFC": 1, - "JK_AT_STRING_PTR": 1, - "stringBuffer.bytes.ptr": 2, - "JK_END_STRING_PTR": 1, - "stringBuffer.bytes.length": 1, - "*_JKArrayCreate": 2, - "*objects": 5, - "mutableCollection": 7, - "_JKArrayInsertObjectAtIndex": 3, - "newObject": 12, - "objectIndex": 48, - "_JKArrayReplaceObjectAtIndexWithObject": 3, - "_JKArrayRemoveObjectAtIndex": 3, - "_JKDictionaryCapacityForCount": 4, - "*_JKDictionaryCreate": 2, - "*keys": 2, - "*keyHashes": 2, - "*_JKDictionaryHashEntry": 2, - "*dictionary": 13, - "_JKDictionaryCapacity": 3, - "_JKDictionaryResizeIfNeccessary": 3, - "_JKDictionaryRemoveObjectWithEntry": 3, - "*entry": 4, - "_JKDictionaryAddObject": 4, - "*_JKDictionaryHashTableEntryForKey": 2, - "aKey": 13, - "_JSONDecoderCleanup": 1, - "*decoder": 1, - "_NSStringObjectFromJSONString": 1, - "*jsonString": 1, - "**error": 1, - "jk_managedBuffer_release": 1, - "*managedBuffer": 3, - "jk_managedBuffer_setToStackBuffer": 1, - "*ptr": 2, - "*jk_managedBuffer_resize": 1, - "newSize": 1, - "jk_objectStack_release": 1, - "*objectStack": 3, - "jk_objectStack_setToStackBuffer": 1, - "**objects": 1, - "**keys": 1, - "CFHashCode": 1, - "*cfHashes": 1, - "jk_objectStack_resize": 1, - "newCount": 1, - "jk_error": 1, - "*format": 7, - "jk_parse_string": 1, - "jk_parse_number": 1, - "jk_parse_is_newline": 1, - "*atCharacterPtr": 1, - "jk_parse_skip_newline": 1, - "jk_parse_skip_whitespace": 1, - "jk_parse_next_token": 1, - "jk_error_parse_accept_or3": 1, - "*or1String": 1, - "*or2String": 1, - "*or3String": 1, - "*jk_create_dictionary": 1, - "startingObjectIndex": 1, - "*jk_parse_dictionary": 1, - "*jk_parse_array": 1, - "*jk_object_for_token": 1, - "*jk_cachedObjects": 1, - "jk_cache_age": 1, - "jk_set_parsed_token": 1, - "advanceBy": 1, - "jk_encode_error": 1, - "*encodeState": 9, - "jk_encode_printf": 1, - "*cacheSlot": 4, - "startingAtIndex": 4, - "jk_encode_write": 1, - "jk_encode_writePrettyPrintWhiteSpace": 1, - "jk_encode_write1slow": 2, - "ssize_t": 2, - "depthChange": 2, - "jk_encode_write1fast": 2, - "jk_encode_writen": 1, - "jk_encode_object_hash": 1, - "*objectPtr": 2, - "jk_encode_updateCache": 1, - "jk_encode_add_atom_to_buffer": 1, - "jk_encode_write1": 1, - "es": 3, - "dc": 3, - "_jk_encode_prettyPrint": 1, - "jk_min": 1, - "b": 4, - "jk_max": 3, - "jk_calculateHash": 1, - "currentHash": 1, - "Class": 3, - "_JKArrayClass": 5, - "_JKArrayInstanceSize": 4, - "_JKDictionaryClass": 5, - "_JKDictionaryInstanceSize": 4, - "_jk_NSNumberClass": 2, - "NSNumberAllocImp": 2, - "_jk_NSNumberAllocImp": 2, - "NSNumberInitWithUnsignedLongLongImp": 2, - "_jk_NSNumberInitWithUnsignedLongLongImp": 2, - "jk_collectionClassLoadTimeInitialization": 2, - "constructor": 1, - "NSAutoreleasePool": 2, - "*pool": 1, - "Though": 1, - "technically": 1, - "required": 2, - "run": 1, - "environment": 1, - "load": 1, - "initialization": 1, - "less": 1, - "ideal.": 1, - "objc_getClass": 2, - "class_getInstanceSize": 2, - "methodForSelector": 2, - "temp_NSNumber": 4, - "initWithUnsignedLongLong": 1, - "pool": 2, - "": 2, - "NSMutableCopying": 2, - "NSFastEnumeration": 2, - "capacity": 51, - "mutations": 20, - "allocWithZone": 4, - "NSZone": 4, - "zone": 8, - "raise": 18, - "NSInvalidArgumentException": 6, - "format": 18, - "NSStringFromClass": 18, - "NSStringFromSelector": 16, - "_cmd": 16, - "NSCParameterAssert": 19, - "objects": 58, - "Directly": 2, - "allocate": 2, - "instance": 2, - "calloc.": 2, - "isa": 2, - "malloc": 1, - "memcpy": 2, - "*newObjects": 1, - "newObjects": 2, - "realloc": 1, - "NSMallocException": 2, - "memset": 1, - "memmove": 2, - "atObject": 12, - "getObjects": 2, - "objectsPtr": 3, - "NSRange": 1, - "NSMaxRange": 4, - "NSRangeException": 6, - "range.location": 2, - "range.length": 1, - "countByEnumeratingWithState": 2, - "NSFastEnumerationState": 2, - "stackbuf": 8, - "len": 6, - "mutationsPtr": 2, - "itemsPtr": 2, - "enumeratedCount": 8, - "insertObject": 1, - "anObject": 16, - "NSInternalInconsistencyException": 4, - "__clang_analyzer__": 3, - "Stupid": 2, - "clang": 3, - "analyzer...": 2, - "Issue": 2, - "#19.": 2, - "removeObjectAtIndex": 1, - "replaceObjectAtIndex": 1, - "copyWithZone": 1, - "initWithObjects": 2, - "mutableCopyWithZone": 1, - "NSEnumerator": 2, - "collection": 11, - "nextObject": 6, - "initWithJKDictionary": 3, - "initDictionary": 4, - "allObjects": 2, - "arrayWithObjects": 1, - "_JKDictionaryHashEntry": 2, - "returnObject": 3, - "entry": 41, - ".key": 11, - "jk_dictionaryCapacities": 4, - "bottom": 6, - "mid": 5, - "tableSize": 2, - "lround": 1, - "floor": 1, - "capacityForCount": 4, - "resize": 3, - "oldCapacity": 2, - "NS_BLOCK_ASSERTIONS": 1, - "oldCount": 2, - "*oldEntry": 1, - "idx": 33, - "oldEntry": 9, - ".keyHash": 2, - ".object": 7, - "keys": 5, - "keyHashes": 2, - "atEntry": 45, - "removeIdx": 3, - "entryIdx": 4, - "*atEntry": 3, - "addKeyEntry": 2, - "addIdx": 5, - "*atAddEntry": 1, - "atAddEntry": 6, - "keyEntry": 4, - "CFEqual": 2, - "CFHash": 1, - "would": 2, - "found": 4, - "now.": 1, - "entryForKey": 3, - "_JKDictionaryHashTableEntryForKey": 1, - "andKeys": 1, - "arrayIdx": 5, - "keyEnumerator": 1, - "copy": 4, - "Why": 1, - "earth": 1, - "complain": 1, - "doesn": 1, - "Internal": 2, - "Unable": 2, - "temporary": 2, - "buffer.": 2, - "line": 2, - "#": 2, - "ld": 2, - "Invalid": 1, - "character": 1, - "x.": 1, - "F": 1, - ".": 2, - "e": 1, - "Unexpected": 1, - "token": 1, - "wanted": 1, - "Expected": 3, - "*error": 3, - "NSData*": 1, - "jsonText": 1, - "kTextStyleType": 2, - "kViewStyleType": 2, - "kImageStyleType": 2, - "initWithStyleName": 1, - "styleType": 3, - "TTStyleSheet": 4, - "globalStyleSheet": 4, - "styleWithSelector": 4, - "UIControlStateHighlighted": 1, - "UIControlStateDisabled": 1, - "UIControlStateSelected": 1, - "addTextView": 5, - "title": 2, - "textFrame": 3, - "TTRectInset": 3, - "UIEdgeInsetsMake": 3, - "StyleView*": 2, - "StyleView": 2, - "text.text": 1, - "TTStyleContext*": 1, - "context": 4, - "TTStyleContext": 1, - "context.frame": 1, - "context.delegate": 1, - "context.font": 1, - "systemFontSize": 1, - "addToSize": 1, - "CGSizeZero": 1, - "size.width": 1, - "size.height": 1, - "textFrame.size": 1, - "text.frame": 1, - "text.style": 1, - "text.backgroundColor": 1, - "UIColor": 3, - "colorWithRed": 3, - "green": 3, - "blue": 3, - "alpha": 3, - "text.autoresizingMask": 1, - "UIViewAutoresizingFlexibleBottomMargin": 3, - "addView": 5, - "viewFrame": 4, - "view.style": 2, - "view.backgroundColor": 2, - "view.autoresizingMask": 2, - "addImageView": 5, - "TTImageView*": 1, - "TTImageView": 1, - "view.urlPath": 1, - "imageFrame": 2, - "view.frame": 2, - "imageFrame.size": 1, - "view.image.size": 1, - "": 1, - "": 1, - "Necessary": 1, - "background": 1, - "task": 1, - "__IPHONE_3_2": 2, - "__MAC_10_5": 2, - "__MAC_10_6": 2, - "_ASIAuthenticationState": 1, - "ASIHTTPAuthenticationNeeded": 1, - "ASIProxyAuthenticationNeeded": 1, - "_ASINetworkErrorType": 1, - "ASIConnectionFailureErrorType": 2, - "ASIInternalErrorWhileApplyingCredentialsType": 1, - "ASICompressionError": 1, - "ASINetworkErrorType": 1, - "ASIHeadersBlock": 3, - "*responseHeaders": 2, - "ASISizeBlock": 5, - "ASIProgressBlock": 5, - "total": 4, - "ASIDataBlock": 3, - "NSOperation": 1, - "": 1, - "operation": 2, - "include": 1, - "GET": 1, - "params": 1, - "query": 1, - "where": 1, - "appropriate": 4, - "*url": 2, - "Will": 7, - "contain": 4, - "original": 2, - "making": 1, - "change": 2, - "*originalURL": 2, - "Temporarily": 1, - "stores": 1, - "to.": 2, - "again": 1, - "notified": 2, - "various": 1, - "ASIHTTPRequestDelegate": 1, - "": 1, - "Another": 1, - "also": 1, - "status": 4, - "updates": 2, - "Generally": 1, - "likely": 1, - "sessionCookies": 2, - "*requestCookies": 2, - "populated": 1, - "useCookiePersistence": 3, - "network": 4, - "present": 3, - "successfully": 4, - "presented": 2, - "duration": 1, - "clearSession": 2, - "called": 3, - "allowCompressedResponse": 3, - "inform": 1, - "compressed": 2, - "automatically": 2, - "decompress": 1, - "gzipped": 7, - "responses.": 1, - "Default": 10, - "true.": 1, - "gzipped.": 1, - "false.": 1, - "You": 1, - "enable": 1, - "feature": 1, - "your": 2, - "webserver": 1, - "work.": 1, - "Tested": 1, - "apache": 1, - "only.": 1, - "downloaded": 6, - "*downloadDestinationPath": 2, - "files": 5, - "Once": 2, - "decompressed": 3, - "moved": 2, - "*temporaryFileDownloadPath": 2, - "containing": 1, - "inflated": 6, - "comes": 3, - "*temporaryUncompressedDataDownloadPath": 2, - "fails": 2, - "completes": 6, - "occurs": 1, - "Connection": 1, - "failure": 1, - "occurred": 1, - "inspect": 1, - "Username": 2, - "*username": 2, - "*password": 2, - "User": 1, - "Agent": 1, - "*userAgentString": 2, - "Domain": 2, - "*domain": 2, - "*proxyUsername": 2, - "*proxyPassword": 2, - "*proxyDomain": 2, - "Delegate": 2, - "displaying": 2, - "usually": 2, - "supply": 2, - "handle": 4, - "yourself": 4, - "": 2, - "Whether": 1, - "hassle": 1, - "adding": 1, - "apps": 1, - "shouldPresentProxyAuthenticationDialog": 2, - "*proxyCredentials": 2, - "Basic": 2, - "*proxyAuthenticationScheme": 2, - "Realm": 1, - "eg": 2, - "OK": 1, - "etc": 1, - "Description": 1, - "Size": 3, - "partially": 1, - "POST": 2, - "payload": 1, - "Last": 2, - "incrementing": 2, - "prevents": 1, - "inopportune": 1, - "moment": 1, - "Called": 6, - "implemented": 7, - "starts.": 1, - "didStartSelector": 2, - "receives": 3, - "headers.": 1, - "didReceiveResponseHeadersSelector": 2, - "Location": 1, - "shouldRedirect": 3, - "then": 1, - "restart": 1, - "calling": 1, - "redirectToURL": 2, - "simply": 1, - "willRedirectSelector": 2, - "successfully.": 1, - "didFinishSelector": 2, - "fails.": 1, - "didFailSelector": 2, - "data.": 1, - "implement": 1, - "populate": 1, - "didReceiveDataSelector": 2, - "recording": 1, - "something": 1, - "last": 1, - "happened": 1, - "Number": 1, - "seconds": 2, - "wait": 1, - "timing": 1, - "starts": 2, - "*mainRequest": 2, - "indicator": 4, - "according": 2, - "how": 2, - "much": 2, - "Also": 1, - "see": 1, - "comments": 1, - "ASINetworkQueue.h": 1, - "ensure": 1, - "incremented": 4, - "Prevents": 1, - "largely": 1, - "internally": 3, - "reflect": 1, - "PUT": 1, - "operations": 1, - "sizes": 1, - "greater": 1, - "unless": 2, - "been": 1, - "Likely": 1, - "OS": 1, - "X": 1, - "Leopard": 1, - "Text": 1, - "responses": 5, - "Content": 1, - "Type": 1, - "value.": 1, - "Defaults": 2, - "set.": 1, - "Tells": 1, - "delete": 1, - "partial": 2, - "downloads": 1, - "allows": 1, - "existing": 1, - "download.": 1, - "NO.": 1, - "allowResumeForFileDownloads": 2, - "Custom": 1, - "associated": 1, - "*userInfo": 2, - "tag": 2, - "defaults": 2, - "tell": 2, - "loop": 1, - "Incremented": 1, - "every": 3, - "redirects.": 1, - "reaches": 1, - "check": 1, - "secure": 1, - "certificate": 2, - "signed": 1, - "development": 1, - "DO": 1, - "NOT": 1, - "USE": 1, - "IN": 1, - "PRODUCTION": 1, - "*clientCertificates": 2, - "Details": 1, - "could": 1, - "best": 1, - "local": 1, - "*PACurl": 2, - "values": 3, - "above.": 1, - "No": 1, - "yet": 1, - "ASIHTTPRequests": 1, - "avoids": 1, - "extra": 1, - "round": 1, - "trip": 1, - "succeeded": 1, - "which": 1, - "efficient": 1, - "authenticated": 1, - "large": 1, - "bodies": 1, - "slower": 1, - "connections": 3, - "Set": 4, - "affects": 1, - "YES.": 1, - "Credentials": 1, - "never": 1, - "asks": 1, - "hasn": 1, - "doing": 1, - "anything": 1, - "expires": 1, - "yes": 1, - "alive": 1, - "Stores": 1, - "use.": 1, - "particular": 2, - "specify": 2, - "expire": 2, - "connection.": 2, - "These": 1, - "determine": 1, - "whether": 1, - "match": 1, - "An": 2, - "determining": 1, - "available": 1, - "reference": 1, - "one.": 1, - "closed": 1, - "either": 1, - "another": 1, - "fires": 1, - "automatic": 1, - "standard": 1, - "follow": 1, - "behaviour": 2, - "most": 1, - "browsers": 1, - "shouldUseRFC2616RedirectBehaviour": 2, - "record": 1, - "ID": 1, - "uniquely": 1, - "identifies": 1, - "primarily": 1, - "debugging": 1, - "synchronous": 1, - "checks": 1, - "setDefaultCache": 2, - "configure": 2, - "ASICacheDelegate.h": 2, - "storage": 2, - "ASICacheStoragePolicy": 2, - "cacheStoragePolicy": 2, - "pulled": 1, - "secondsToCache": 3, - "interval": 1, - "expiring": 1, - "UIBackgroundTaskIdentifier": 1, - "helper": 1, - "inflate": 2, - "*dataDecompressor": 2, - "Controls": 1, - "without": 1, - "raw": 3, - "discarded": 1, - "normal": 1, - "contents": 1, - "into": 1, - "Setting": 1, - "especially": 1, - "useful": 1, - "users": 1, - "conjunction": 1, - "streaming": 1, - "allow": 1, - "behind": 1, - "scenes": 1, - "https": 1, - "webservers": 1, - "asynchronously": 1, - "reading": 1, - "URLs": 2, - "storing": 1, - "startSynchronous.": 1, - "Currently": 1, - "detection": 2, - "synchronously": 1, - "//block": 12, - "execute": 4, - "handling": 4, - "redirections": 1, - "setStartedBlock": 1, - "aStartedBlock": 1, - "setHeadersReceivedBlock": 1, - "aReceivedBlock": 2, - "setCompletionBlock": 1, - "aCompletionBlock": 1, - "setFailedBlock": 1, - "aFailedBlock": 1, - "setBytesReceivedBlock": 1, - "aBytesReceivedBlock": 1, - "setBytesSentBlock": 1, - "aBytesSentBlock": 1, - "setDownloadSizeIncrementedBlock": 1, - "aDownloadSizeIncrementedBlock": 1, - "setUploadSizeIncrementedBlock": 1, - "anUploadSizeIncrementedBlock": 1, - "setDataReceivedBlock": 1, - "setAuthenticationNeededBlock": 1, - "anAuthenticationBlock": 1, - "setProxyAuthenticationNeededBlock": 1, - "aProxyAuthenticationBlock": 1, - "setRequestRedirectedBlock": 1, - "aRedirectBlock": 1, - "HEADRequest": 1, - "upload/download": 1, - "updateProgressIndicators": 1, - "removeUploadProgressSoFar": 1, - "incrementDownloadSizeBy": 1, - "caller": 1, - "talking": 1, - "requestReceivedResponseHeaders": 1, - "newHeaders": 1, - "retryUsingNewConnection": 1, - "stringEncoding": 1, - "contentType": 1, - "stuff": 1, - "applyCredentials": 1, - "findCredentials": 1, - "retryUsingSuppliedCredentials": 1, - "cancelAuthentication": 1, - "attemptToApplyCredentialsAndResume": 1, - "attemptToApplyProxyCredentialsAndResume": 1, - "showProxyAuthenticationDialog": 1, - "showAuthenticationDialog": 1, - "theUsername": 1, - "thePassword": 1, - "handlers": 1, - "handleBytesAvailable": 1, - "handleStreamComplete": 1, - "handleStreamError": 1, - "cleanup": 1, - "removeTemporaryDownloadFile": 1, - "removeTemporaryUncompressedDownloadFile": 1, - "removeTemporaryUploadFile": 1, - "removeTemporaryCompressedUploadFile": 1, - "removeFileAtPath": 1, - "connectionID": 1, - "expirePersistentConnections": 1, - "setDefaultTimeOutSeconds": 1, - "newTimeOutSeconds": 1, - "client": 1, - "setClientCertificateIdentity": 1, - "anIdentity": 1, - "sessionProxyCredentialsStore": 1, - "sessionCredentialsStore": 1, - "storeProxyAuthenticationCredentialsInSessionStore": 1, - "removeProxyAuthenticationCredentialsFromSessionStore": 1, - "findSessionProxyAuthenticationCredentials": 1, - "savedCredentialsForHost": 1, - "savedCredentialsForProxy": 1, - "removeCredentialsForHost": 1, - "removeCredentialsForProxy": 1, - "setSessionCookies": 1, - "newSessionCookies": 1, - "addSessionCookie": 1, - "NSHTTPCookie": 1, - "newCookie": 1, - "agent": 2, - "defaultUserAgentString": 1, - "setDefaultUserAgentString": 1, - "mime": 1, - "mimeTypeForFileAtPath": 1, - "measurement": 1, - "throttling": 1, - "setMaxBandwidthPerSecond": 1, - "incrementBandwidthUsedInLastSecond": 1, - "setShouldThrottleBandwidthForWWAN": 1, - "throttle": 1, - "throttleBandwidthForWWANUsingLimit": 1, - "limit": 1, - "reachability": 1, - "isNetworkReachableViaWWAN": 1, - "maxUploadReadLength": 1, - "activity": 1, - "isNetworkInUse": 1, - "setShouldUpdateNetworkActivityIndicator": 1, - "shouldUpdate": 1, - "showNetworkActivityIndicator": 1, - "hideNetworkActivityIndicator": 1, - "miscellany": 1, - "base64forData": 1, - "theData": 1, - "expiryDateForRequest": 1, - "maxAge": 2, - "dateFromRFC1123String": 1, - "threading": 1, - "*proxyHost": 1, - "*proxyType": 1, - "*requestHeaders": 1, - "*requestCredentials": 1, - "*rawResponseData": 1, - "*requestMethod": 1, - "*postBody": 1, - "*postBodyFilePath": 1, - "didCreateTemporaryPostDataFile": 1, - "*authenticationScheme": 1, - "shouldPresentAuthenticationDialog": 1, - "haveBuiltRequestHeaders": 1, - "regular": 1, - "TUITableViewStyleGrouped": 1, - "grouped": 1, - "stick": 1, - "TUITableViewScrollPositionMiddle": 1, - "TUITableViewScrollPositionBottom": 1, - "supported": 1, - "TUITableViewInsertionMethodBeforeIndex": 1, - "TUITableViewInsertionMethodAtIndex": 1, - "NSOrderedSame": 1, - "TUITableViewInsertionMethodAfterIndex": 1, - "TUITableViewInsertionMethod": 3, - "@protocol": 3, - "TUITableViewDataSource": 2, - "TUITableViewDelegate": 1, - "": 1, - "TUIScrollViewDelegate": 1, - "@optional": 2, - "subview": 1, - "left/right": 2, - "mouse": 2, - "down": 1, - "up/down": 1, - "didClickRowAtIndexPath": 1, - "withEvent": 2, - "look": 1, - "clickCount": 1, - "TUITableView*": 1, - "TUIFastIndexPath*": 1, - "NSEvent*": 1, - "NSMenu": 1, - "menuForRowAtIndexPath": 1, - "targetIndexPathForMoveFromRowAtIndexPath": 1, - "fromPath": 1, - "toProposedIndexPath": 1, - "proposedPath": 1, - "TUIScrollView": 1, - "_lastSize": 1, - "drag": 1, - "reorder": 1, - "_currentDragToReorderLocation": 1, - "_currentDragToReorderMouseOffset": 1, - "_currentDragToReorderIndexPath": 1, - "_currentDragToReorderInsertionMethod": 1, - "_previousDragToReorderIndexPath": 1, - "_previousDragToReorderInsertionMethod": 1, - "forceSaveScrollPosition": 1, - "derepeaterEnabled": 1, - "layoutSubviewsReentrancyGuard": 1, - "didFirstLayout": 1, - "dataSourceNumberOfSectionsInTableView": 1, - "delegateTableViewWillDisplayCellForRowAtIndexPath": 1, - "_tableFlags": 1, - "creation.": 1, - "calls": 1, - "UITableViewStylePlain": 1, - "unsafe_unretained": 2, - "readwrite": 1, - "order": 1, - "representing": 1, - "selection.": 1, - "*pullDownView": 1, - "": 1, - "@required": 1, - "canMoveRowAtIndexPath": 2, - "moveRowAtIndexPath": 2 - }, - "Objective-C++": { - "#import": 3, - "": 1, - "": 1, - "#if": 10, - "#ifdef": 6, - "OODEBUG": 1, - "#define": 1, - "OODEBUG_SQL": 4, - "#endif": 19, - "OOOODatabase": 1, - "OODB": 1, - ";": 494, - "static": 16, - "NSString": 25, - "*kOOObject": 1, - "@": 28, - "*kOOInsert": 1, - "*kOOUpdate": 1, - "*kOOExecSQL": 1, - "#pragma": 5, - "mark": 5, - "OORecord": 3, - "abstract": 1, - "superclass": 1, - "for": 14, - "records": 1, - "@implementation": 7, - "+": 55, - "(": 612, - "id": 19, - ")": 610, - "record": 18, - "OO_AUTORETURNS": 2, - "{": 151, - "return": 149, - "OO_AUTORELEASE": 3, - "[": 268, - "self": 70, - "alloc": 11, - "]": 266, - "init": 4, - "}": 148, - "insert": 7, - "*record": 4, - "insertWithParent": 1, - "parent": 10, - "OODatabase": 26, - "sharedInstance": 37, - "copyJoinKeysFrom": 1, - "to": 6, - "-": 175, - "delete": 4, - "void": 18, - "update": 4, - "indate": 4, - "upsert": 4, - "int": 36, - "commit": 6, - "rollback": 5, - "setNilValueForKey": 1, - "*": 34, - "key": 2, - "OOReference": 2, - "": 1, - "zeroForNull": 4, - "if": 104, - "NSNumber": 4, - "numberWithInt": 1, - "setValue": 1, - "forKey": 1, - "OOArray": 16, - "": 14, - "select": 21, - "nil": 25, - "intoClass": 11, - "joinFrom": 10, - "cOOString": 15, - "sql": 21, - "selectRecordsRelatedTo": 1, - "class": 14, - "importFrom": 1, - "OOFile": 4, - "&": 21, - "file": 2, - "delimiter": 4, - "delim": 4, - "rows": 2, - "OOMetaData": 21, - "import": 1, - "file.string": 1, - "insertArray": 3, - "BOOL": 11, - "exportTo": 1, - "file.save": 1, - "export": 1, - "bindToView": 1, - "OOView": 2, - "view": 28, - "delegate": 4, - "bindRecord": 1, - "toView": 1, - "updateFromView": 1, - "updateRecord": 1, - "fromView": 3, - "description": 6, - "*metaData": 14, - "metaDataForClass": 3, - "//": 7, - "hack": 1, - "required": 2, - "where": 1, - "contains": 1, - "a": 9, - "field": 1, - "avoid": 1, - "recursion": 1, - "OOStringArray": 6, - "ivars": 5, - "<<": 2, - "metaData": 26, - "encode": 3, - "dictionaryWithValuesForKeys": 3, - "@end": 14, - "OOAdaptor": 6, - "all": 3, - "methods": 1, - "by": 1, - "objsql": 1, - "access": 2, - "database": 12, - "@interface": 6, - "NSObject": 1, - "sqlite3": 1, - "*db": 1, - "sqlite3_stmt": 1, - "*stmt": 1, - "struct": 5, - "_str_link": 5, - "*next": 2, - "char": 9, - "str": 7, - "*strs": 1, - "OO_UNSAFE": 1, - "*owner": 3, - "initPath": 5, - "path": 9, - "prepare": 4, - "bindCols": 5, - "cOOStringArray": 3, - "columns": 7, - "values": 29, - "cOOValueDictionary": 2, - "startingAt": 5, - "pno": 13, - "bindNulls": 8, - "bindResultsIntoInstancesOfClass": 4, - "Class": 9, - "recordClass": 16, - "sqlite_int64": 2, - "lastInsertRowID": 2, - "NSData": 3, - "OOExtras": 9, - "initWithDescription": 1, - "is": 2, - "the": 5, - "low": 1, - "level": 1, - "interface": 1, - "particular": 2, - "": 1, - "sharedInstanceForPath": 2, - "OODocument": 1, - ".path": 1, - "OONil": 1, - "OO_RELEASE": 6, - "exec": 10, - "fmt": 9, - "...": 3, - "va_list": 3, - "argp": 12, - "va_start": 3, - "*sql": 5, - "initWithFormat": 3, - "arguments": 3, - "va_end": 3, - "const": 16, - "objects": 4, - "deleteArray": 2, - "object": 13, - "commitTransaction": 3, - "super": 3, - "adaptor": 1, - "registerSubclassesOf": 1, - "recordSuperClass": 2, - "numClasses": 5, - "objc_getClassList": 2, - "NULL": 4, - "*classes": 2, - "malloc": 2, - "sizeof": 2, - "": 1, - "viewClasses": 4, - "classNames": 4, - "scan": 1, - "registered": 2, - "classes": 12, - "relevant": 1, - "subclasses": 1, - "c": 14, - "<": 5, - "superClass": 5, - "class_getName": 4, - "while": 4, - "class_getSuperclass": 1, - "respondsToSelector": 2, - "@selector": 4, - "ooTableSql": 1, - "else": 11, - "tableMetaDataForClass": 8, - "break": 6, - "delay": 1, - "creation": 1, - "views": 1, - "until": 1, - "after": 1, - "tables": 1, - "": 1, - "in": 9, - "order": 1, - "free": 3, - "Register": 1, - "list": 1, - "of": 2, - "before": 1, - "using": 2, - "them": 2, - "so": 2, - "can": 1, - "determine": 1, - "relationships": 1, - "between": 1, - "registerTableClassesNamed": 1, - "tableClass": 2, - "NSBundle": 1, - "mainBundle": 1, - "classNamed": 1, - "Send": 1, - "any": 2, - "SQL": 1, - "Sql": 1, - "format": 1, - "string": 1, - "escape": 1, - "characters": 3, - "Any": 1, - "results": 3, - "returned": 1, - "are": 1, - "placed": 1, - "as": 1, - "an": 1, - "array": 2, - "dictionary": 1, - "results.": 1, - "*/": 1, - "errcode": 12, - "OOString": 6, - "stringForSql": 2, - "&&": 12, - "*aColumnName": 1, - "**results": 1, - "allKeys": 1, - "objectAtIndex": 1, - "OOValueDictionary": 5, - "joinValues": 4, - "sharedColumns": 5, - "*parentMetaData": 1, - "parentMetaData": 2, - "naturalJoinTo": 1, - "joinableColumns": 1, - "whereClauseFor": 2, - "qualifyNulls": 2, - "NO": 3, - "ooOrderBy": 2, - "OOFormat": 5, - "NSLog": 4, - "*joinValues": 1, - "*adaptor": 7, - "||": 18, - "": 1, - "tablesRelatedByNaturalJoinFrom": 1, - "tablesWithNaturalJoin": 5, - "i": 29, - "**tablesWithNaturalJoin": 1, - "*childMetaData": 1, - "tableMetaDataByClassName": 3, - "prepareSql": 1, - "toTable": 1, - "childMetaData": 1, - "OODictionary": 2, - "": 1, - "tmpResults": 1, - "kOOExecSQL": 1, - "*exec": 2, - "OOWarn": 9, - "errmsg": 5, - "continue": 3, - "OORef": 2, - "": 1, - "*values": 3, - "kOOObject": 3, - "isInsert": 4, - "kOOInsert": 1, - "isUpdate": 5, - "kOOUpdate": 2, - "newValues": 3, - "changedCols": 4, - "*name": 4, - "*newValues": 1, - "name": 9, - "isEqual": 1, - "tableName": 4, - "columns/": 1, - "nchanged": 4, - "*object": 1, - "lastSQL": 4, - "**changedCols": 1, - "quote": 2, - "commaQuote": 2, - "": 1, - "YES": 6, - "commited": 2, - "updateCount": 2, - "transaction": 2, - "updated": 2, - "NSMutableDictionary": 1, - "*d": 1, - "*transaction": 1, - "d": 2, - "": 1, - "#ifndef": 3, - "OO_ARC": 1, - "boxed": 1, - "valueForKey": 1, - "pointerValue": 1, - "setValuesForKeysWithDictionary": 2, - "decode": 2, - "count": 1, - "className": 3, - "createTableSQL": 2, - "*idx": 1, - "indexes": 1, - "idx": 2, - "implements": 1, - "owner": 15, - ".directory": 1, - ".mkdir": 1, - "sqlite3_open": 1, - "db": 8, - "SQLITE_OK": 6, - "*path": 1, - "sqlite3_prepare_v2": 1, - "stmt": 20, - "sqlite3_errmsg": 3, - "bindValue": 2, - "value": 26, - "asParameter": 2, - "OODEBUG_BIND": 1, - "OONull": 3, - "sqlite3_bind_null": 1, - "OOSQL_THREAD_SAFE_BUT_USES_MORE_MEMORY": 1, - "isKindOfClass": 3, - "sqlite3_bind_text": 2, - "UTF8String": 1, - "SQLITE_STATIC": 3, - "#else": 1, - "len": 4, - "lengthOfBytesUsingEncoding": 1, - "NSUTF8StringEncoding": 3, - "*str": 2, - "next": 3, - "strs": 6, - "getCString": 1, - "maxLength": 1, - "encoding": 2, - "sqlite3_bind_blob": 1, - "bytes": 5, - "length": 4, - "*type": 1, - "objCType": 1, - "type": 10, - "switch": 4, - "case": 25, - "sqlite3_bind_int": 1, - "intValue": 3, - "sqlite3_bind_int64": 1, - "longLongValue": 1, - "sqlite3_bind_double": 1, - "doubleValue": 1, - "*columns": 1, - "valuesForNextRow": 2, - "ncols": 2, - "sqlite3_column_count": 1, - "sqlite3_column_name": 1, - "sqlite3_column_type": 2, - "SQLITE_NULL": 1, - "SQLITE_INTEGER": 1, - "initWithLongLong": 1, - "sqlite3_column_int64": 1, - "SQLITE_FLOAT": 1, - "initWithDouble": 1, - "sqlite3_column_double": 1, - "SQLITE_TEXT": 1, - "unsigned": 2, - "*bytes": 2, - "sqlite3_column_text": 1, - "NSMutableString": 1, - "initWithBytes": 2, - "sqlite3_column_bytes": 2, - "SQLITE_BLOB": 1, - "sqlite3_column_blob": 1, - "default": 3, - "out": 4, - "awakeFromDB": 4, - "instancesRespondToSelector": 1, - "sqlite3_step": 1, - "SQLITE_ROW": 1, - "SQLITE_DONE": 1, - "out.alloc": 1, - "sqlite3_changes": 1, - "sqlite3_finalize": 1, - "sqlite3_last_insert_rowid": 1, - "dealloc": 1, - "sqlite3_close": 1, - "OO_DEALLOC": 1, - "instances": 1, - "represent": 1, - "table": 1, - "and": 2, - "it": 2, - "s": 2, - "l": 1, - "C": 1, - "S": 1, - "I": 1, - "L": 1, - "q": 1, - "Q": 1, - "f": 1, - "%": 2, - "_": 2, - "tag": 1, - "A": 2, - "<'>": 1, - "iptr": 4, - "*optr": 1, - "unhex": 2, - "*iptr": 1, - "*16": 1, - "hex": 1, - "initWithBytesNoCopy": 1, - "optr": 1, - "freeWhenDone": 1, - "stringValue": 4, - "charValue": 1, - "shortValue": 1, - "NSArray": 3, - "OOReplace": 2, - "reformat": 4, - "|": 3, - "NSDictionary": 2, - "__IPHONE_OS_VERSION_MIN_REQUIRED": 1, - "UISwitch": 2, - "text": 1, - "self.on": 1, - "#include": 26, - "": 1, - "": 1, - "defined": 1, - "OBJC_API_VERSION": 2, - "inline": 3, - "IMP": 4, - "method_setImplementation": 2, - "Method": 2, - "m": 3, - "oi": 2, - "method_imp": 2, - "namespace": 1, - "WebCore": 1, - "ENABLE": 10, - "DRAG_SUPPORT": 7, - "double": 1, - "EventHandler": 30, - "TextDragDelay": 1, - "RetainPtr": 4, - "": 4, - "currentNSEventSlot": 6, - "DEFINE_STATIC_LOCAL": 1, - "event": 30, - "NSEvent": 21, - "*EventHandler": 2, - "currentNSEvent": 13, - ".get": 1, - "CurrentEventScope": 14, - "WTF_MAKE_NONCOPYABLE": 1, - "public": 1, - "private": 1, - "m_savedCurrentEvent": 3, - "NDEBUG": 2, - "m_event": 3, - "*event": 11, - "ASSERT": 13, - "bool": 26, - "wheelEvent": 5, - "Page*": 7, - "page": 33, - "m_frame": 24, - "false": 40, - "scope": 6, - "PlatformWheelEvent": 2, - "chrome": 8, - "platformPageClient": 4, - "handleWheelEvent": 2, - "wheelEvent.isAccepted": 1, - "PassRefPtr": 2, - "": 1, - "currentKeyboardEvent": 1, - "NSApp": 5, - "currentEvent": 2, - "NSKeyDown": 4, - "PlatformKeyboardEvent": 6, - "platformEvent": 2, - "platformEvent.disambiguateKeyDownEvent": 1, - "RawKeyDown": 1, - "KeyboardEvent": 2, - "create": 3, - "document": 6, - "defaultView": 2, - "NSKeyUp": 3, - "keyEvent": 2, - "BEGIN_BLOCK_OBJC_EXCEPTIONS": 13, - "END_BLOCK_OBJC_EXCEPTIONS": 13, - "focusDocumentView": 1, - "FrameView*": 7, - "frameView": 4, - "NSView": 14, - "*documentView": 1, - "documentView": 2, - "focusNSView": 1, - "focusController": 1, - "setFocusedFrame": 1, - "passWidgetMouseDownEventToWidget": 3, - "MouseEventWithHitTestResults": 7, - "RenderObject*": 2, - "target": 6, - "targetNode": 3, - "renderer": 7, - "isWidget": 2, - "passMouseDownEventToWidget": 3, - "toRenderWidget": 3, - "widget": 18, - "RenderWidget*": 1, - "renderWidget": 2, - "lastEventIsMouseUp": 2, - "*currentEventAfterHandlingMouseDown": 1, - "currentEventAfterHandlingMouseDown": 3, - "NSLeftMouseUp": 3, - "timestamp": 8, - "Widget*": 3, - "pWidget": 2, - "RefPtr": 1, - "": 1, - "LOG_ERROR": 1, - "true": 29, - "platformWidget": 6, - "*nodeView": 1, - "nodeView": 9, - "superview": 5, - "*view": 4, - "hitTest": 2, - "convertPoint": 2, - "locationInWindow": 4, - "client": 3, - "firstResponder": 1, - "clickCount": 8, - "<=>": 1, - "1": 1, - "acceptsFirstResponder": 1, - "needsPanelToBecomeKey": 1, - "makeFirstResponder": 1, - "wasDeferringLoading": 3, - "defersLoading": 1, - "setDefersLoading": 2, - "m_sendingEventToSubview": 24, - "*outerView": 1, - "getOuterView": 1, - "beforeMouseDown": 1, - "outerView": 2, - "widget.get": 2, - "mouseDown": 2, - "afterMouseDown": 1, - "m_mouseDownView": 5, - "m_mouseDownWasInSubframe": 7, - "m_mousePressed": 2, - "findViewInSubviews": 3, - "*superview": 1, - "*target": 1, - "NSEnumerator": 1, - "*e": 1, - "subviews": 1, - "objectEnumerator": 1, - "*subview": 1, - "subview": 3, - "e": 1, - "nextObject": 1, - "mouseDownViewIfStillGood": 3, - "*mouseDownView": 1, - "mouseDownView": 3, - "topFrameView": 3, - "*topView": 1, - "topView": 2, - "eventLoopHandleMouseDragged": 1, - "mouseDragged": 2, - "eventLoopHandleMouseUp": 1, - "mouseUp": 2, - "passSubframeEventToSubframe": 4, - "Frame*": 5, - "subframe": 13, - "HitTestResult*": 2, - "hoveredNode": 5, - "NSLeftMouseDragged": 1, - "NSOtherMouseDragged": 1, - "NSRightMouseDragged": 1, - "dragController": 1, - "didInitiateDrag": 1, - "NSMouseMoved": 2, - "eventHandler": 6, - "handleMouseMoveEvent": 3, - "currentPlatformMouseEvent": 8, - "NSLeftMouseDown": 3, - "Node*": 1, - "node": 3, - "isFrameView": 2, - "handleMouseReleaseEvent": 3, - "originalNSScrollViewScrollWheel": 4, - "_nsScrollViewScrollWheelShouldRetainSelf": 3, - "selfRetainingNSScrollViewScrollWheel": 3, - "NSScrollView": 2, - "SEL": 2, - "nsScrollViewScrollWheelShouldRetainSelf": 2, - "isMainThread": 3, - "setNSScrollViewScrollWheelShouldRetainSelf": 3, - "shouldRetain": 2, - "method": 2, - "class_getInstanceMethod": 1, - "objc_getRequiredClass": 1, - "scrollWheel": 2, - "reinterpret_cast": 1, - "": 1, - "*self": 1, - "selector": 2, - "shouldRetainSelf": 3, - "retain": 1, - "release": 1, - "passWheelEventToWidget": 1, - "NSView*": 1, - "static_cast": 1, - "": 1, - "frame": 3, - "NSScrollWheel": 1, - "v": 6, - "loader": 1, - "resetMultipleFormSubmissionProtection": 1, - "handleMousePressEvent": 2, - "handleMouseDoubleClickEvent": 1, - "sendFakeEventsAfterWidgetTracking": 1, - "*initiatingEvent": 1, - "eventType": 5, - "initiatingEvent": 22, - "*fakeEvent": 1, - "fakeEvent": 6, - "mouseEventWithType": 2, - "location": 3, - "modifierFlags": 6, - "windowNumber": 6, - "context": 6, - "eventNumber": 3, - "pressure": 3, - "postEvent": 3, - "atStart": 3, - "keyEventWithType": 1, - "charactersIgnoringModifiers": 2, - "isARepeat": 2, - "keyCode": 2, - "window": 1, - "convertScreenToBase": 1, - "mouseLocation": 1, - "mouseMoved": 2, - "frameHasPlatformWidget": 4, - "passMousePressEventToSubframe": 1, - "mev": 6, - "mev.event": 3, - "passMouseMoveEventToSubframe": 1, - "m_mouseDownMayStartDrag": 1, - "passMouseReleaseEventToSubframe": 1, - "PlatformMouseEvent": 5, - "*windowView": 1, - "windowView": 2, - "CONTEXT_MENUS": 2, - "sendContextMenuEvent": 2, - "eventMayStartDrag": 2, - "eventActivatedView": 1, - "m_activationEventNumber": 1, - "event.eventNumber": 1, - "": 1, - "createDraggingClipboard": 1, - "NSPasteboard": 2, - "*pasteboard": 1, - "pasteboardWithName": 1, - "NSDragPboard": 1, - "pasteboard": 2, - "declareTypes": 1, - "ClipboardMac": 1, - "Clipboard": 1, - "DragAndDrop": 1, - "ClipboardWritable": 1, - "tabsToAllFormControls": 1, - "KeyboardEvent*": 1, - "KeyboardUIMode": 1, - "keyboardUIMode": 5, - "handlingOptionTab": 4, - "isKeyboardOptionTab": 1, - "KeyboardAccessTabsToLinks": 2, - "KeyboardAccessFull": 1, - "needsKeyboardEventDisambiguationQuirks": 2, - "Document*": 1, - "applicationIsSafari": 1, - "url": 2, - ".protocolIs": 2, - "Settings*": 1, - "settings": 5, - "DASHBOARD_SUPPORT": 1, - "usesDashboardBackwardCompatibilityMode": 1, - "accessKeyModifiers": 1, - "AXObjectCache": 1, - "accessibilityEnhancedUserInterfaceEnabled": 1, - "CtrlKey": 2, - "AltKey": 1 - }, - "Omgrofl": { - "lol": 14, - "iz": 11, - "wtf": 1, - "liek": 1, - "lmao": 1, - "brb": 1, - "w00t": 1, - "Hello": 1, - "World": 1, - "rofl": 13, - "lool": 5, - "loool": 6, - "stfu": 1 - }, - "Opa": { - "Server.start": 1, - "(": 4, - "Server.http": 1, - "{": 2, - "page": 1, - "function": 1, - ")": 4, - "

": 2, - "Hello": 2, - "world": 2, - "

": 2, - "}": 2, - "title": 1, - "server": 1, - "Server.one_page_server": 1, - "-": 1 - }, - "Opal": { - "-": 4, - "Deepak": 1, - "Chopra": 1, - "nonsense": 1, - "text": 1, - "generator": 1, - "see": 1, - "https": 1, - "//github.com/StoneCypher/DeepakChopra_Opal/": 1, - "starts": 1, - "[": 4, - "]": 4, - "middles": 1, - "qualifiers": 1, - "finishes": 1, - "alert": 1, - "starts.sample": 1, - "+": 3, - "middles.sample": 1, - "qualifiers.sample": 1, - "finishes.sample": 1 - }, - "OpenCL": { - "double": 3, - "run_fftw": 1, - "(": 18, - "int": 3, - "n": 4, - "const": 4, - "float": 3, - "*": 5, - "x": 5, - "y": 4, - ")": 18, - "{": 4, - "fftwf_plan": 1, - "p1": 3, - "fftwf_plan_dft_1d": 1, - "fftwf_complex": 2, - "FFTW_FORWARD": 1, - "FFTW_ESTIMATE": 1, - ";": 12, - "nops": 3, - "t": 4, - "cl": 2, - "realTime": 2, - "for": 1, - "op": 3, - "<": 1, - "+": 4, - "fftwf_execute": 1, - "}": 4, - "-": 1, - "/": 1, - "fftwf_destroy_plan": 1, - "return": 1, - "typedef": 1, - "foo_t": 3, - "#ifndef": 1, - "ZERO": 3, - "#define": 2, - "#endif": 1, - "FOO": 1, - "__kernel": 1, - "void": 1, - "foo": 1, - "__global": 1, - "__local": 1, - "uint": 1, - "barrier": 1, - "CLK_LOCAL_MEM_FENCE": 1, - "if": 1, - "*x": 1 - }, - "OpenEdge ABL": { - "USING": 3, - "Progress.Lang.*.": 3, - "CLASS": 2, - "email.Email": 2, - "USE": 2, - "-": 73, - "WIDGET": 2, - "POOL": 2, - "&": 3, - "SCOPED": 1, - "DEFINE": 16, - "QUOTES": 1, - "@#": 1, - "%": 2, - "*": 2, - "+": 21, - "._MIME_BOUNDARY_.": 1, - "#@": 1, - "WIN": 1, - "From": 4, - "To": 8, - "CC": 2, - "BCC": 2, - "Personal": 1, - "Private": 1, - "Company": 2, - "confidential": 2, - "normal": 1, - "urgent": 2, - "non": 1, - "Cannot": 3, - "locate": 3, - "file": 6, - "in": 3, - "the": 3, - "filesystem": 3, - "R": 3, - "File": 3, - "exists": 3, - "but": 3, - "is": 3, - "not": 3, - "readable": 3, - "Error": 3, - "copying": 3, - "from": 3, - "<\">": 8, - "ttSenders": 2, - "cEmailAddress": 8, - "n": 13, - "ttToRecipients": 1, - "Reply": 3, - "ttReplyToRecipients": 1, - "Cc": 2, - "ttCCRecipients": 1, - "Bcc": 2, - "ttBCCRecipients": 1, - "Return": 1, - "Receipt": 1, - "ttDeliveryReceiptRecipients": 1, - "Disposition": 3, - "Notification": 1, - "ttReadReceiptRecipients": 1, - "Subject": 2, - "Importance": 3, - "H": 1, - "High": 1, - "L": 1, - "Low": 1, - "Sensitivity": 2, - "Priority": 2, - "Date": 4, - "By": 1, - "Expiry": 2, - "Mime": 1, - "Version": 1, - "Content": 10, - "Type": 4, - "multipart/mixed": 1, - ";": 5, - "boundary": 1, - "text/plain": 2, - "charset": 2, - "Transfer": 4, - "Encoding": 4, - "base64": 2, - "bit": 2, - "application/octet": 1, - "stream": 1, - "attachment": 2, - "filename": 2, - "ttAttachments.cFileName": 2, - "cNewLine.": 1, - "RETURN": 7, - "lcReturnData.": 1, - "END": 12, - "METHOD.": 6, - "METHOD": 6, - "PUBLIC": 6, - "CHARACTER": 9, - "send": 1, - "(": 44, - ")": 44, - "objSendEmailAlgorithm": 1, - "sendEmail": 2, - "INPUT": 11, - "THIS": 1, - "OBJECT": 2, - ".": 14, - "CLASS.": 2, - "INTERFACE": 1, - "email.SendEmailAlgorithm": 1, - "ipobjEmail": 1, - "AS": 21, - "INTERFACE.": 1, - "email.Util": 1, - "FINAL": 1, - "PRIVATE": 1, - "STATIC": 5, - "VARIABLE": 12, - "cMonthMap": 2, - "EXTENT": 1, - "INITIAL": 1, - "[": 2, - "]": 2, - "ABLDateTimeToEmail": 3, - "ipdttzDateTime": 6, - "DATETIME": 3, - "TZ": 2, - "STRING": 7, - "DAY": 1, - "MONTH": 1, - "YEAR": 1, - "INTEGER": 6, - "TRUNCATE": 2, - "MTIME": 1, - "/": 2, - "ABLTimeZoneToString": 2, - "TIMEZONE": 1, - "ipdtDateTime": 2, - "ipiTimeZone": 3, - "ABSOLUTE": 1, - "MODULO": 1, - "LONGCHAR": 4, - "ConvertDataToBase64": 1, - "iplcNonEncodedData": 2, - "lcPreBase64Data": 4, - "NO": 13, - "UNDO.": 12, - "lcPostBase64Data": 3, - "mptrPostBase64Data": 3, - "MEMPTR": 2, - "i": 3, - "COPY": 1, - "LOB": 1, - "FROM": 1, - "TO": 2, - "mptrPostBase64Data.": 1, - "BASE64": 1, - "ENCODE": 1, - "SET": 5, - "SIZE": 5, - "DO": 2, - "LENGTH": 3, - "BY": 1, - "ASSIGN": 2, - "SUBSTRING": 1, - "CHR": 2, - "END.": 2, - "lcPostBase64Data.": 1, - "PARAMETER": 3, - "objSendEmailAlg": 2, - "email.SendEmailSocket": 1, - "vbuffer": 9, - "vstatus": 1, - "LOGICAL": 1, - "vState": 2, - "vstate": 1, - "FUNCTION": 1, - "getHostname": 1, - "RETURNS": 1, - "cHostname": 1, - "THROUGH": 1, - "hostname": 1, - "ECHO.": 1, - "IMPORT": 1, - "UNFORMATTED": 1, - "cHostname.": 2, - "CLOSE.": 1, - "FUNCTION.": 1, - "PROCEDURE": 2, - "newState": 2, - "INTEGER.": 1, - "pstring": 4, - "CHARACTER.": 1, - "newState.": 1, - "IF": 2, - "THEN": 2, - "RETURN.": 1, - "PUT": 1, - "pstring.": 1, - "SELF": 4, - "WRITE": 1, - "PROCEDURE.": 2, - "ReadSocketResponse": 1, - "vlength": 5, - "str": 3, - "v": 1, - "MESSAGE": 2, - "GET": 3, - "BYTES": 2, - "AVAILABLE": 2, - "VIEW": 1, - "ALERT": 1, - "BOX.": 1, - "READ": 1, - "handleResponse": 1 - }, - "OpenSCAD": { - "fn": 1, - ";": 6, - "difference": 1, - "(": 11, - ")": 11, - "{": 2, - "union": 1, - "translate": 4, - "[": 5, - "]": 5, - "cube": 1, - "center": 3, - "true": 3, - "cylinder": 2, - "h": 2, - "r1": 1, - "r2": 1, - "sphere": 2, - "r": 3, - "}": 2 - }, - "Org": { - "#": 13, - "+": 13, - "OPTIONS": 1, - "H": 1, - "num": 1, - "nil": 4, - "toc": 2, - "n": 1, - "@": 1, - "t": 10, - "|": 4, - "-": 30, - "f": 2, - "*": 3, - "TeX": 1, - "LaTeX": 1, - "skip": 1, - "d": 2, - "(": 11, - "HIDE": 1, - ")": 11, - "tags": 2, - "not": 1, - "in": 2, - "STARTUP": 1, - "align": 1, - "fold": 1, - "nodlcheck": 1, - "hidestars": 1, - "oddeven": 1, - "lognotestate": 1, - "SEQ_TODO": 1, - "TODO": 1, - "INPROGRESS": 1, - "i": 1, - "WAITING": 1, - "w@": 1, - "DONE": 1, - "CANCELED": 1, - "c@": 1, - "TAGS": 1, - "Write": 1, - "w": 1, - "Update": 1, - "u": 1, - "Fix": 1, - "Check": 1, - "c": 1, - "TITLE": 1, - "org": 10, - "ruby": 6, - "AUTHOR": 1, - "Brian": 1, - "Dewey": 1, - "EMAIL": 1, - "bdewey@gmail.com": 1, - "LANGUAGE": 1, - "en": 1, - "PRIORITIES": 1, - "A": 1, - "C": 1, - "B": 1, - "CATEGORY": 1, - "worg": 1, - "{": 1, - "Back": 1, - "to": 8, - "Worg": 1, - "rubygems": 2, - "ve": 1, - "already": 1, - "created": 1, - "a": 4, - "site.": 1, - "Make": 1, - "sure": 1, - "you": 2, - "have": 1, - "installed": 1, - "sudo": 1, - "gem": 1, - "install": 1, - ".": 1, - "You": 1, - "need": 1, - "register": 1, - "new": 2, - "Webby": 3, - "filter": 3, - "handle": 1, - "mode": 2, - "content.": 2, - "makes": 1, - "this": 2, - "easy.": 1, - "In": 1, - "the": 6, - "lib/": 1, - "folder": 1, - "of": 2, - "your": 2, - "site": 1, - "create": 1, - "file": 1, - "orgmode.rb": 1, - "BEGIN_EXAMPLE": 2, - "require": 1, - "Filters.register": 1, - "do": 2, - "input": 3, - "Orgmode": 2, - "Parser.new": 1, - ".to_html": 1, - "end": 1, - "END_EXAMPLE": 1, - "This": 2, - "code": 1, - "creates": 1, - "that": 1, - "will": 1, - "use": 1, - "parser": 1, - "translate": 1, - "into": 1, - "HTML.": 1, - "Create": 1, - "For": 1, - "example": 1, - "title": 2, - "Parser": 1, - "created_at": 1, - "status": 2, - "Under": 1, - "development": 1, - "erb": 1, - "orgmode": 3, - "<%=>": 2, - "page": 2, - "Status": 1, - "Description": 1, - "Helpful": 1, - "Ruby": 1, - "routines": 1, - "for": 3, - "parsing": 1, - "files.": 1, - "The": 3, - "most": 1, - "significant": 1, - "thing": 2, - "library": 1, - "does": 1, - "today": 1, - "is": 5, - "convert": 1, - "files": 1, - "textile.": 1, - "Currently": 1, - "cannot": 1, - "much": 1, - "customize": 1, - "conversion.": 1, - "supplied": 1, - "textile": 1, - "conversion": 1, - "optimized": 1, - "extracting": 1, - "from": 1, - "orgfile": 1, - "as": 1, - "opposed": 1, - "History": 1, - "**": 1, - "Version": 1, - "first": 1, - "output": 2, - "HTML": 2, - "gets": 1, - "class": 1, - "now": 1, - "indented": 1, - "Proper": 1, - "support": 1, - "multi": 1, - "paragraph": 2, - "list": 1, - "items.": 1, - "See": 1, - "part": 1, - "last": 1, - "bullet.": 1, - "Fixed": 1, - "bugs": 1, - "wouldn": 1, - "s": 1, - "all": 1, - "there": 1, - "it": 1 - }, - "Ox": { - "nldge": 1, - "ParticleLogLikeli": 1, - "(": 119, - ")": 119, - "{": 22, - "decl": 3, - "it": 5, - "ip": 1, - "mss": 3, - "mbas": 1, - "ms": 8, - "my": 4, - "mx": 7, - "vw": 7, - "vwi": 4, - "dws": 3, - "mhi": 3, - "mhdet": 2, - "loglikeli": 4, - "mData": 4, - "vxm": 1, - "vxs": 1, - "mxm": 1, - "<": 4, - "mxsu": 1, - "mxsl": 1, - "time": 2, - "timeall": 1, - "timeran": 1, - "timelik": 1, - "timefun": 1, - "timeint": 1, - "timeres": 1, - ";": 91, - "GetData": 1, - "m_asY": 1, - "sqrt": 1, - "*M_PI": 1, - "m_cY": 1, - "*": 5, - "determinant": 2, - "m_mMSbE.": 2, - "//": 17, - "covariance": 2, - "invert": 2, - "of": 2, - "measurement": 1, - "shocks": 1, - "m_vSss": 1, - "+": 14, - "zeros": 4, - "m_cPar": 4, - "m_cS": 1, - "start": 1, - "particles": 2, - "m_vXss": 1, - "m_cX": 1, - "steady": 1, - "state": 3, - "and": 1, - "policy": 2, - "init": 1, - "likelihood": 1, - "//timeall": 1, - "timer": 3, - "for": 2, - "sizer": 1, - "rann": 1, - "m_cSS": 1, - "m_mSSbE": 1, - "noise": 1, - "fg": 1, - "&": 2, - "transition": 1, - "prior": 1, - "as": 1, - "proposal": 1, - "m_oApprox.FastInterpolate": 1, - "interpolate": 1, - "fy": 1, - "m_cMS": 1, - "evaluate": 1, - "importance": 1, - "weights": 2, - "-": 31, - "[": 25, - "]": 25, - "observation": 1, - "error": 1, - "exp": 2, - "outer": 1, - "/mhdet": 2, - "sumr": 1, - "my*mhi": 1, - ".*my": 1, - ".": 3, - ".NaN": 1, - "no": 2, - "can": 1, - "happen": 1, - "extrem": 1, - "sumc": 1, - "if": 5, - "return": 10, - ".Inf": 2, - "or": 1, - "extremely": 1, - "wrong": 1, - "parameters": 1, - "log": 2, - "dws/m_cPar": 1, - "loglikelihood": 1, - "contribution": 1, - "//timelik": 1, - "/100": 1, - "//time": 1, - "resample": 1, - "vw/dws": 1, - "selection": 1, - "step": 1, - "in": 1, - "c": 1, - "on": 1, - "normalized": 1, - "}": 22, - "#include": 2, - "ParallelObjective": 1, - "obj": 18, - "DONOTUSECLIENT": 2, - "isclass": 1, - "obj.p2p": 2, - "oxwarning": 1, - "obj.L": 1, - "new": 19, - "P2P": 2, - "ObjClient": 4, - "ObjServer": 7, - "this.obj": 2, - "Execute": 4, - "basetag": 2, - "STOP_TAG": 1, - "iml": 1, - "obj.NvfuncTerms": 2, - "Nparams": 6, - "obj.nstruct": 2, - "Loop": 2, - "nxtmsgsz": 2, - "//free": 1, - "param": 1, - "length": 1, - "is": 1, - "greater": 1, - "than": 1, - "Volume": 3, - "QUIET": 2, - "println": 2, - "ID": 2, - "Server": 1, - "Recv": 1, - "ANY_TAG": 1, - "//receive": 1, - "the": 1, - "ending": 1, - "parameter": 1, - "vector": 1, - "Encode": 3, - "Buffer": 8, - "//encode": 1, - "it.": 1, - "Decode": 1, - "obj.nfree": 1, - "obj.cur.V": 1, - "vfunc": 2, - "CstrServer": 3, - "SepServer": 3, - "Lagrangian": 1, - "rows": 1, - "obj.cur": 1, - "Vec": 1, - "obj.Kvar.v": 1, - "imod": 1, - "Tag": 1, - "obj.K": 1, - "TRUE": 1, - "obj.Kvar": 1, - "PDF": 1, - "Kapital": 4, - "L": 2, - "const": 4, - "N": 5, - "entrant": 8, - "exit": 2, - "KP": 14, - "StateVariable": 1, - "this.entrant": 1, - "this.exit": 1, - "this.KP": 1, - "actual": 2, - "Kbar*vals/": 1, - "upper": 3, - "Transit": 1, - "FeasA": 2, - "ent": 5, - "CV": 7, - "stayout": 3, - "exit.pos": 1, - "tprob": 5, - "sigu": 2, - "SigU": 2, - "v": 2, - "&&": 1, - "<0>": 1, - "ones": 1, - "probn": 2, - "Kbe": 2, - "/sigu": 1, - "Kb0": 2, - "Kb2": 2, - "*upper": 1, - "/": 1, - "vals": 1, - "tprob.*": 1, - ".*stayout": 1, - "FirmEntry": 6, - "Run": 1, - "Initialize": 3, - "GenerateSample": 2, - "BDP": 2, - "BayesianDP": 1, - "Rust": 1, - "Reachable": 2, - "sige": 2, - "StDeviations": 1, - "<0.3,0.3>": 1, - "LaggedAction": 1, - "d": 2, - "array": 1, - "Kparams": 1, - "Positive": 4, - "Free": 1, - "Kb1": 1, - "Determined": 1, - "EndogenousStates": 1, - "K": 3, - "KN": 1, - "SetDelta": 1, - "Probability": 1, - "kcoef": 3, - "ecost": 3, - "Negative": 1, - "CreateSpaces": 1, - "LOUD": 1, - "EM": 4, - "ValueIteration": 1, - "Solve": 1, - "data": 4, - "DataSet": 1, - "Simulate": 1, - "DataN": 1, - "DataT": 1, - "FALSE": 1, - "Print": 1, - "ImaiJainChing": 1, - "delta": 1, - "*CV": 2, - "Utility": 1, - "u": 2, - "ent*CV": 1, - "*AV": 1, - "|": 1 - }, - "Oxygene": { - "": 1, - "DefaultTargets=": 1, - "xmlns=": 1, - "": 3, - "": 1, - "Loops": 2, - "": 1, - "": 1, - "exe": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "False": 4, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Properties": 1, - "App.ico": 1, - "": 1, - "": 1, - "Condition=": 3, - "Release": 2, - "": 1, - "": 1, - "{": 1, - "BD89C": 1, - "-": 4, - "B610": 1, - "CEE": 1, - "CAF": 1, - "C515D88E2C94": 1, - "}": 1, - "": 1, - "": 3, - "": 1, - "DEBUG": 1, - ";": 2, - "TRACE": 1, - "": 1, - "": 2, - ".": 2, - "bin": 2, - "Debug": 1, - "": 2, - "": 1, - "True": 3, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "Project=": 1, - "": 2, - "": 5, - "Include=": 12, - "": 5, - "(": 5, - "Framework": 5, - ")": 5, - "mscorlib.dll": 1, - "": 5, - "": 5, - "System.dll": 1, - "ProgramFiles": 1, - "Reference": 1, - "Assemblies": 1, - "Microsoft": 1, - "v3.5": 1, - "System.Core.dll": 1, - "": 1, - "": 1, - "System.Data.dll": 1, - "System.Xml.dll": 1, - "": 2, - "": 4, - "": 1, - "": 1, - "": 2, - "ResXFileCodeGenerator": 1, - "": 2, - "": 1, - "": 1, - "SettingsSingleFileGenerator": 1, - "": 1, - "": 1 - }, - "Oz": { - "%": 1, - "declare": 1, - "fun": 5, - "{": 10, - "Sum": 2, - "N": 12, - "}": 10, - "local": 3, - "SumAux": 3, - "in": 4, - "Acc": 7, - "if": 3, - "then": 4, - "else": 3, - "-": 2, - "end": 12, - "Prime": 1, - "PrimeAcc": 4, - "(": 4, - ")": 4, - "false": 2, - "elseif": 1, - "true": 1, - "mod": 1, - "div": 1, - "Reverse": 1, - "L": 2, - "RevList": 3, - "NewCell": 1, - "nil": 1, - "for": 1, - "E": 2, - "do": 1, - "|": 1, - "@RevList": 2 - }, - "PAWN": { - "//": 22, - "-": 1551, - "#include": 5, - "": 1, - "": 1, - "": 1, - "#pragma": 1, - "tabsize": 1, - "#define": 5, - "COLOR_WHITE": 2, - "xFFFFFFFF": 2, - "COLOR_NORMAL_PLAYER": 3, - "xFFBB7777": 1, - "CITY_LOS_SANTOS": 7, - "CITY_SAN_FIERRO": 4, - "CITY_LAS_VENTURAS": 6, - "new": 13, - "total_vehicles_from_files": 19, - ";": 257, - "gPlayerCitySelection": 21, - "[": 56, - "MAX_PLAYERS": 3, - "]": 56, - "gPlayerHasCitySelected": 6, - "gPlayerLastCitySelectionTick": 5, - "Text": 5, - "txtClassSelHelper": 14, - "txtLosSantos": 7, - "txtSanFierro": 7, - "txtLasVenturas": 7, - "thisanimid": 1, - "lastanimid": 1, - "main": 1, - "(": 273, - ")": 273, - "{": 39, - "print": 3, - "}": 39, - "public": 6, - "OnPlayerConnect": 1, - "playerid": 132, - "GameTextForPlayer": 1, - "SendClientMessage": 1, - "GetTickCount": 4, - "//SetPlayerColor": 2, - "//Kick": 1, - "return": 17, - "OnPlayerSpawn": 1, - "if": 28, - "IsPlayerNPC": 3, - "randSpawn": 16, - "SetPlayerInterior": 7, - "TogglePlayerClock": 2, - "ResetPlayerMoney": 3, - "GivePlayerMoney": 2, - "random": 3, - "sizeof": 3, - "gRandomSpawns_LosSantos": 5, - "SetPlayerPos": 6, - "SetPlayerFacingAngle": 6, - "else": 9, - "gRandomSpawns_SanFierro": 5, - "gRandomSpawns_LasVenturas": 5, - "SetPlayerSkillLevel": 11, - "WEAPONSKILL_PISTOL": 1, - "WEAPONSKILL_PISTOL_SILENCED": 1, - "WEAPONSKILL_DESERT_EAGLE": 1, - "WEAPONSKILL_SHOTGUN": 1, - "WEAPONSKILL_SAWNOFF_SHOTGUN": 1, - "WEAPONSKILL_SPAS12_SHOTGUN": 1, - "WEAPONSKILL_MICRO_UZI": 1, - "WEAPONSKILL_MP5": 1, - "WEAPONSKILL_AK47": 1, - "WEAPONSKILL_M4": 1, - "WEAPONSKILL_SNIPERRIFLE": 1, - "GivePlayerWeapon": 1, - "WEAPON_COLT45": 1, - "//GivePlayerWeapon": 1, - "WEAPON_MP5": 1, - "OnPlayerDeath": 1, - "killerid": 3, - "reason": 1, - "playercash": 4, - "INVALID_PLAYER_ID": 1, - "GetPlayerMoney": 1, - "ClassSel_SetupCharSelection": 2, - "SetPlayerCameraPos": 6, - "SetPlayerCameraLookAt": 6, - "ClassSel_InitCityNameText": 4, - "txtInit": 7, - "TextDrawUseBox": 2, - "TextDrawLetterSize": 2, - "TextDrawFont": 2, - "TextDrawSetShadow": 2, - "TextDrawSetOutline": 2, - "TextDrawColor": 2, - "xEEEEEEFF": 1, - "TextDrawBackgroundColor": 2, - "FF": 2, - "ClassSel_InitTextDraws": 2, - "TextDrawCreate": 4, - "TextDrawBoxColor": 1, - "BB": 1, - "TextDrawTextSize": 1, - "ClassSel_SetupSelectedCity": 3, - "TextDrawShowForPlayer": 4, - "TextDrawHideForPlayer": 10, - "ClassSel_SwitchToNextCity": 3, - "+": 19, - "PlayerPlaySound": 2, - "ClassSel_SwitchToPreviousCity": 2, - "<": 3, - "ClassSel_HandleCitySelection": 2, - "Keys": 3, - "ud": 2, - "lr": 4, - "GetPlayerKeys": 1, - "&": 1, - "KEY_FIRE": 1, - "TogglePlayerSpectating": 2, - "OnPlayerRequestClass": 1, - "classid": 1, - "GetPlayerState": 2, - "PLAYER_STATE_SPECTATING": 2, - "OnGameModeInit": 1, - "SetGameModeText": 1, - "ShowPlayerMarkers": 1, - "PLAYER_MARKERS_MODE_GLOBAL": 1, - "ShowNameTags": 1, - "SetNameTagDrawDistance": 1, - "EnableStuntBonusForAll": 1, - "DisableInteriorEnterExits": 1, - "SetWeather": 1, - "SetWorldTime": 1, - "//UsePlayerPedAnims": 1, - "//ManualVehicleEngineAndLights": 1, - "//LimitGlobalChatRadius": 1, - "AddPlayerClass": 69, - "//AddPlayerClass": 1, - "LoadStaticVehiclesFromFile": 17, - "printf": 1, - "OnPlayerUpdate": 1, - "IsPlayerConnected": 1, - "&&": 2, - "GetPlayerInterior": 1, - "GetPlayerWeapon": 2, - "SetPlayerArmedWeapon": 1, - "fists": 1, - "no": 1, - "syncing": 1, - "until": 1, - "they": 1, - "change": 1, - "their": 1, - "weapon": 1, - "WEAPON_MINIGUN": 1, - "Kick": 1 - }, - "PHP": { - "": 4, - "echo": 3, - "_SERVER": 1, - "_GET": 1, - "var": 1, - "SHEBANG#!php": 4, - "": 1, - "aMenuLinks": 1, - "Array": 13, - "Blog": 1, - "SITE_DIR": 4, - "Photos": 1, - "photo": 1, - "About": 1, - "me": 1, - "about": 1, - "php": 14, - "Contact": 1, - "contacts": 1, - "<": 11, - ";": 1383, - "namespace": 28, - "Symfony": 24, - "Component": 24, - "DomCrawler": 5, - "use": 23, - "Field": 9, - "FormField": 3, - "class": 21, - "Form": 4, - "extends": 3, - "Link": 3, - "implements": 3, - "ArrayAccess": 1, - "{": 974, - "private": 24, - "button": 6, - "fields": 60, - "public": 202, - "function": 205, - "__construct": 8, - "(": 2416, - "DOMNode": 3, - "node": 42, - "currentUri": 7, - "method": 31, - "null": 164, - ")": 2417, - "parent": 14, - "this": 928, - "-": 1271, - "initialize": 2, - "}": 972, - "getFormNode": 1, - "return": 305, - "setValues": 2, - "array": 296, - "values": 53, - "foreach": 94, - "as": 96, - "name": 181, - "value": 53, - "set": 26, - "getValues": 3, - "all": 11, - "field": 88, - "if": 450, - "isDisabled": 2, - "continue": 7, - "instanceof": 8, - "FileFormField": 3, - "&&": 119, - "hasValue": 1, - "[": 672, - "]": 672, - "getValue": 2, - "getFiles": 3, - "in_array": 26, - "getMethod": 6, - "files": 7, - "getPhpValues": 2, - "qs": 4, - "http_build_query": 3, - "parse_str": 2, - "getPhpFiles": 2, - "getUri": 8, - "uri": 23, - "queryString": 2, - "sep": 1, - "false": 154, - "strpos": 15, - ".": 169, - "sep.": 1, - "protected": 59, - "getRawUri": 1, - "getAttribute": 10, - "strtoupper": 3, - "has": 7, - "remove": 4, - "get": 12, - "add": 7, - "offsetExists": 1, - "offsetGet": 1, - "offsetSet": 1, - "offsetUnset": 1, - "setNode": 1, - "nodeName": 13, - "||": 52, - "do": 2, - "parentNode": 1, - "throw": 19, - "new": 74, - "LogicException": 4, - "while": 6, - "elseif": 31, - "sprintf": 27, - "FormFieldRegistry": 2, - "document": 6, - "DOMDocument": 2, - "importNode": 3, - "true": 133, - "root": 4, - "appendChild": 10, - "createElement": 6, - "xpath": 2, - "DOMXPath": 1, - "query": 102, - "hasAttribute": 1, - "InputFormField": 2, - "ChoiceFormField": 2, - "addChoice": 1, - "else": 70, - "TextareaFormField": 1, - "base": 8, - "segments": 13, - "getSegments": 4, - "getName": 14, - "target": 20, - "&": 19, - "is_array": 37, - "path": 20, - "array_shift": 5, - "count": 32, - "array_key_exists": 11, - "unset": 22, - "InvalidArgumentException": 9, - "try": 3, - "catch": 3, - "e": 18, - "self": 1, - "create": 13, - "k": 7, - "v": 17, - "setValue": 1, - "walk": 3, - "static": 6, - "registry": 4, - "output": 60, - "empty": 96, - "preg_match": 6, - "m": 5, - "Console": 17, - "Input": 6, - "InputInterface": 4, - "ArgvInput": 2, - "ArrayInput": 3, - "InputDefinition": 2, - "InputOption": 15, - "InputArgument": 3, - "Output": 5, - "OutputInterface": 6, - "ConsoleOutput": 2, - "ConsoleOutputInterface": 2, - "Command": 6, - "HelpCommand": 2, - "ListCommand": 2, - "Helper": 3, - "HelperSet": 3, - "FormatterHelper": 2, - "DialogHelper": 2, - "Application": 3, - "commands": 39, - "wantHelps": 4, - "runningCommand": 5, - "version": 8, - "catchExceptions": 4, - "autoExit": 4, - "definition": 3, - "helperSet": 6, - "getDefaultHelperSet": 2, - "getDefaultInputDefinition": 2, - "getDefaultCommands": 2, - "command": 41, - "run": 4, - "input": 20, - "statusCode": 14, - "doRun": 2, - "Exception": 1, - "renderException": 3, - "getErrorOutput": 2, - "getCode": 1, - "is_numeric": 7, - "exit": 7, - "getCommandName": 2, - "hasParameterOption": 7, - "setDecorated": 2, - "setInteractive": 2, - "function_exists": 4, - "getHelperSet": 3, - "inputStream": 2, - "getInputStream": 1, - "posix_isatty": 1, - "setVerbosity": 2, - "VERBOSITY_QUIET": 1, - "VERBOSITY_VERBOSE": 2, - "writeln": 13, - "getLongVersion": 3, - "find": 17, - "setHelperSet": 1, - "getDefinition": 2, - "getHelp": 2, - "messages": 16, - "getOptions": 1, - "option": 5, - "getShortcut": 2, - "getDescription": 3, - "implode": 8, - "PHP_EOL": 3, - "setCatchExceptions": 1, - "boolean": 4, - "Boolean": 4, - "setAutoExit": 1, - "setName": 1, - "getVersion": 3, - "setVersion": 1, - "register": 1, - "addCommands": 1, - "setApplication": 2, - "isEnabled": 1, - "getAliases": 3, - "alias": 87, - "isset": 101, - "helpCommand": 3, - "setCommand": 1, - "getNamespaces": 3, - "namespaces": 4, - "extractNamespace": 7, - "array_values": 5, - "array_unique": 4, - "array_filter": 2, - "findNamespace": 4, - "allNamespaces": 3, - "n": 12, - "explode": 9, - "found": 4, - "i": 36, - "part": 10, - "abbrevs": 31, - "getAbbreviations": 4, - "array_map": 2, - "p": 3, - "message": 12, - "<=>": 3, - "alternatives": 10, - "findAlternativeNamespace": 2, - "getAbbreviationSuggestions": 4, - "searchName": 13, - "pos": 3, - "strrpos": 2, - "substr": 6, - "namespace.substr": 1, - "suggestions": 2, - "aliases": 8, - "findAlternativeCommands": 2, - "substr_count": 1, - "+": 12, - "names": 3, - "for": 8, - "len": 11, - "strlen": 14, - "abbrev": 4, - "asText": 1, - "raw": 2, - "width": 7, - "sortCommands": 4, - "space": 5, - "space.": 1, - "asXml": 2, - "asDom": 2, - "dom": 12, - "formatOutput": 1, - "xml": 5, - "commandsXML": 3, - "setAttribute": 2, - "namespacesXML": 3, - "namespaceArrayXML": 4, - "commandXML": 3, - "createTextNode": 1, - "getElementsByTagName": 1, - "item": 9, - "saveXml": 1, - "string": 5, - "encoding": 2, - "mb_detect_encoding": 1, - "mb_strlen": 1, - "title": 3, - "get_class": 4, - "getTerminalWidth": 3, - "PHP_INT_MAX": 1, - "lines": 3, - "preg_split": 1, - "getMessage": 1, - "line": 10, - "str_split": 1, - "max": 2, - "str_repeat": 2, - "title.str_repeat": 1, - "line.str_repeat": 1, - "message.": 1, - "getVerbosity": 1, - "trace": 12, - "getTrace": 1, - "array_unshift": 2, - "getFile": 2, - "getLine": 2, - "type": 62, - "file": 3, - "getPrevious": 1, - "getSynopsis": 1, - "defined": 5, - "ansicon": 4, - "getenv": 2, - "preg_replace": 4, - "getSttyColumns": 3, - "match": 4, - "getTerminalHeight": 1, - "trim": 3, - "getFirstArgument": 1, - "REQUIRED": 1, - "VALUE_NONE": 7, - "descriptorspec": 2, - "process": 10, - "proc_open": 1, - "pipes": 4, - "is_resource": 1, - "info": 5, - "stream_get_contents": 1, - "fclose": 2, - "proc_close": 1, - "namespacedCommands": 5, - "key": 64, - "ksort": 2, - "limit": 3, - "parts": 4, - "array_pop": 1, - "array_slice": 1, - "callback": 5, - "findAlternatives": 3, - "collection": 3, - "call_user_func": 2, - "lev": 6, - "levenshtein": 2, - "3": 1, - "/": 1, - "asort": 1, - "array_keys": 7, - "php_help": 1, - "arg": 1, - "switch": 6, - "case": 31, - "t": 26, - "url": 18, - "php_permission": 1, - "TRUE": 1, - "php_eval": 1, - "code": 4, - "global": 2, - "theme_path": 5, - "theme_info": 3, - "conf": 2, - "old_theme_path": 2, - "drupal_get_path": 1, - "dirname": 1, - "filename": 1, - "ob_start": 1, - "print": 1, - "eval": 1, - "ob_get_contents": 1, - "ob_end_clean": 1, - "_php_filter_tips": 1, - "filter": 1, - "format": 3, - "long": 2, - "FALSE": 2, - "base_url": 1, - "php_filter_info": 1, - "filters": 2, - "BrowserKit": 1, - "Crawler": 2, - "Process": 1, - "PhpProcess": 2, - "abstract": 2, - "Client": 1, - "history": 15, - "cookieJar": 9, - "server": 20, - "request": 76, - "response": 33, - "crawler": 7, - "insulated": 7, - "redirect": 6, - "followRedirects": 5, - "History": 2, - "CookieJar": 2, - "setServerParameters": 2, - "followRedirect": 4, - "insulate": 1, - "class_exists": 2, - "RuntimeException": 2, - "array_merge": 32, - "setServerParameter": 1, - "getServerParameter": 1, - "default": 9, - "getHistory": 1, - "getCookieJar": 1, - "getCrawler": 1, - "getResponse": 1, - "getRequest": 1, - "click": 1, - "link": 10, - "submit": 2, - "form": 7, - "parameters": 4, - "content": 4, - "changeHistory": 4, - "getAbsoluteUri": 2, - "isEmpty": 2, - "current": 4, - "parse_url": 3, - "PHP_URL_HOST": 1, - "PHP_URL_SCHEME": 1, - "Request": 3, - "allValues": 1, - "filterRequest": 2, - "doRequestInProcess": 2, - "doRequest": 2, - "filterResponse": 2, - "updateFromResponse": 1, - "getHeader": 2, - "createCrawlerFromContent": 2, - "getContent": 2, - "getScript": 2, - "sys_get_temp_dir": 2, - "isSuccessful": 1, - "getOutput": 3, - "unserialize": 1, - "addContent": 1, - "back": 2, - "requestFromRequest": 4, - "forward": 2, - "reload": 1, - "restart": 1, - "clear": 2, - "PHP_URL_PATH": 1, - "path.": 1, - "getParameters": 1, - "getServer": 1, - "Yii": 3, - "console": 3, - "bootstrap": 1, - "http": 14, - "www": 4, - "yiiframework": 2, - "com": 2, - "copyright": 5, - "Copyright": 5, - "c": 1, - "2008": 1, - "Software": 5, - "LLC": 1, - "license": 6, - "YII_DEBUG": 2, - "or": 9, - "define": 2, - "fcgi": 1, - "doesn": 1, - "have": 2, - "STDIN": 3, - "by": 2, - "fopen": 1, - "stdin": 1, - "r": 1, - "require": 3, - "__DIR__": 3, - "vendor": 2, - "yiisoft": 1, - "yii2": 1, - "yii": 2, - "autoload": 1, - "config": 3, - "application": 2, - "Object": 4, - "relational": 2, - "mapper": 2, - "DBO": 2, - "backed": 2, - "object": 14, - "data": 187, - "model": 34, - "mapping": 1, - "database": 2, - "tables": 5, - "to": 6, - "Cake": 7, - "objects": 5, - "PHP": 1, - "versions": 1, - "5": 1, - "CakePHP": 6, - "tm": 6, - "Rapid": 2, - "Development": 2, - "Framework": 2, - "cakephp": 4, - "org": 10, - "2005": 4, - "2012": 4, - "Foundation": 4, - "Inc": 4, - "cakefoundation": 4, - "Licensed": 2, - "under": 2, - "The": 4, - "MIT": 4, - "License": 4, - "Redistributions": 2, - "of": 10, - "must": 2, - "retain": 2, - "the": 11, - "above": 2, - "notice": 2, - "Project": 2, - "package": 2, - "Model": 5, - "since": 2, - "0": 4, - "10": 1, - "opensource": 2, - "licenses": 2, - "mit": 2, - "App": 20, - "uses": 46, - "ClassRegistry": 9, - "Utility": 6, - "Validation": 1, - "String": 5, - "Set": 9, - "BehaviorCollection": 2, - "ModelBehavior": 1, - "ConnectionManager": 2, - "Xml": 2, - "CakeEvent": 13, - "Event": 6, - "CakeEventListener": 4, - "CakeEventManager": 5, - "Automatically": 1, - "selects": 1, - "a": 11, - "table": 21, - "based": 2, - "on": 4, - "pluralized": 1, - "lowercase": 1, - "User": 1, - "*": 25, - "is": 1, - "required": 2, - "at": 1, - "least": 1, - "primary": 3, - "key.": 1, - "@package": 2, - "Cake.Model": 1, - "@link": 2, - "//book.cakephp.org/2.0/en/models.html": 1, - "*/": 2, - "useDbConfig": 7, - "useTable": 12, - "displayField": 4, - "id": 82, - "schemaName": 1, - "primaryKey": 38, - "_schema": 11, - "validate": 9, - "validationErrors": 50, - "validationDomain": 1, - "tablePrefix": 8, - "tableToModel": 4, - "cacheQueries": 1, - "belongsTo": 7, - "hasOne": 2, - "hasMany": 2, - "hasAndBelongsToMany": 24, - "actsAs": 2, - "Behaviors": 6, - "whitelist": 14, - "cacheSources": 7, - "findQueryType": 3, - "recursive": 9, - "order": 4, - "virtualFields": 8, - "_associationKeys": 2, - "_associations": 5, - "__backAssociation": 22, - "__backInnerAssociation": 1, - "__backOriginalAssociation": 1, - "__backContainableAssociation": 1, - "_insertID": 1, - "_sourceConfigured": 1, - "findMethods": 3, - "_eventManager": 12, - "ds": 3, - "extract": 9, - "addObject": 2, - "is_subclass_of": 3, - "merge": 12, - "parentClass": 3, - "get_parent_class": 1, - "_mergeVars": 5, - "Inflector": 12, - "tableize": 2, - "_createLinks": 3, - "init": 4, - "implementedEvents": 2, - "getEventManager": 13, - "attach": 4, - "__call": 1, - "params": 34, - "result": 21, - "dispatchMethod": 1, - "getDataSource": 15, - "__isset": 2, - "className": 27, - "break": 19, - "relation": 7, - "list": 29, - "plugin": 31, - "pluginSplit": 12, - "assocKey": 13, - "dynamic": 2, - "isKeySet": 1, - "AppModel": 1, - "_constructLinkedModel": 2, - "schema": 11, - "2": 2, - "__get": 2, - "hasField": 7, - "setDataSource": 2, - "property_exists": 3, - "bindModel": 1, - "reset": 6, - "assoc": 75, - "assocName": 6, - "unbindModel": 1, - "models": 6, - "_generateAssociation": 2, - "dynamicWith": 3, - "underscore": 3, - "singularize": 4, - "camelize": 3, - "sort": 1, - "setSource": 1, - "tableName": 4, - "db": 45, - "method_exists": 5, - "sources": 3, - "listSources": 1, - "strtolower": 1, - "MissingTableException": 1, - "one": 19, - "two": 6, - "is_object": 2, - "SimpleXMLElement": 1, - "_normalizeXmlData": 3, - "toArray": 1, - "reverse": 1, - "_setAliasData": 2, - "modelName": 3, - "fieldSet": 3, - "fieldName": 6, - "fieldValue": 7, - "deconstruct": 2, - "getAssociated": 4, - "getColumnType": 4, - "useNewDate": 2, - "dateFields": 5, - "timeFields": 2, - "date": 9, - "val": 27, - "columns": 5, - "index": 5, - "str_replace": 3, - "describe": 1, - "is_string": 7, - "getColumnTypes": 1, - "trigger_error": 1, - "__d": 1, - "E_USER_WARNING": 1, - "cols": 7, - "column": 10, - "startQuote": 4, - "endQuote": 4, - "checkVirtual": 3, - "isVirtualField": 3, - "hasMethod": 2, - "getVirtualField": 1, - "filterKey": 2, - "defaults": 6, - "properties": 4, - "read": 2, - "conditions": 41, - "compact": 8, - "saveField": 1, - "options": 85, - "save": 9, - "fieldList": 1, - "_whitelist": 4, - "keyPresentAndEmpty": 2, - "exists": 6, - "validates": 60, - "updateCol": 6, - "colType": 4, - "time": 3, - "strtotime": 1, - "event": 35, - "breakOn": 4, - "dispatch": 11, - "joined": 5, - "x": 4, - "y": 2, - "success": 10, - "created": 8, - "cache": 2, - "_prepareUpdateFields": 2, - "array_combine": 2, - "bool": 5, - "update": 2, - "fInfo": 4, - "isUUID": 5, - "j": 2, - "array_search": 1, - "uuid": 3, - "updateCounterCache": 6, - "_saveMulti": 2, - "_clearCache": 2, - "join": 22, - "joinModel": 8, - "keyInfo": 4, - "with": 5, - "withModel": 4, - "pluginName": 1, - "dbMulti": 6, - "newData": 5, - "newValues": 8, - "newJoins": 7, - "primaryAdded": 3, - "idField": 3, - "row": 17, - "keepExisting": 3, - "associationForeignKey": 5, - "links": 4, - "oldLinks": 4, - "array_diff": 3, - "delete": 9, - "oldJoin": 4, - "insertMulti": 1, - "keys": 19, - "foreignKey": 11, - "fkQuoted": 3, - "escapeField": 6, - "intval": 4, - "updateAll": 3, - "foreignKeys": 3, - "included": 3, - "array_intersect": 1, - "old": 2, - "saveAll": 1, - "numeric": 1, - "validateMany": 4, - "saveMany": 3, - "validateAssociated": 5, - "saveAssociated": 5, - "transactionBegun": 4, - "begin": 2, - "record": 10, - "saved": 18, - "commit": 2, - "rollback": 2, - "associations": 9, - "association": 47, - "notEmpty": 4, - "_return": 3, - "recordData": 2, - "cascade": 10, - "isStopped": 4, - "_deleteDependent": 3, - "_deleteLinks": 3, - "_collectForeignKeys": 2, - "savedAssociatons": 3, - "deleteAll": 2, - "records": 6, - "callbacks": 4, - "ids": 8, - "_id": 2, - "getID": 2, - "hasAny": 1, - "buildQuery": 2, - "is_null": 1, - "results": 22, - "resetAssociations": 3, - "_filterResults": 2, - "ucfirst": 2, - "modParams": 2, - "_findFirst": 1, - "state": 15, - "_findCount": 1, - "calculate": 2, - "expression": 1, - "_findList": 1, - "tokenize": 1, - "lst": 4, - "combine": 1, - "_findNeighbors": 1, - "prevVal": 2, - "return2": 6, - "_findThreaded": 1, - "nest": 1, - "isUnique": 1, - "func_get_args": 5, - "is_bool": 1, - "sql": 1, - "call_user_func_array": 3, - "errors": 9, - "invalidFields": 2, - "Controller": 4, - "9": 1, - "CakeResponse": 2, - "Network": 1, - "ComponentCollection": 2, - "View": 9, - "controller": 3, - "organization": 1, - "business": 1, - "logic": 1, - "Provides": 1, - "basic": 1, - "functionality": 1, - "such": 1, - "rendering": 1, - "views": 1, - "inside": 1, - "layouts": 1, - "automatic": 1, - "availability": 1, - "redirection": 2, - "and": 5, - "more": 1, - "Controllers": 2, - "should": 1, - "provide": 1, - "number": 1, - "action": 7, - "methods": 5, - "These": 1, - "are": 5, - "that": 2, - "not": 2, - "prefixed": 1, - "_": 1, - "Each": 1, - "serves": 1, - "an": 1, - "endpoint": 1, - "performing": 2, - "specific": 1, - "resource": 1, - "resources": 1, - "For": 2, - "example": 2, - "adding": 1, - "editing": 1, - "listing": 1, - "You": 2, - "can": 2, - "access": 1, - "using": 2, - "contains": 1, - "POST": 1, - "GET": 1, - "FILES": 1, - "were": 1, - "request.": 1, - "After": 1, - "actions": 2, - "controllers": 2, - "responsible": 1, - "creating": 1, - "response.": 2, - "This": 1, - "usually": 1, - "takes": 1, - "generated": 1, - "possibly": 1, - "another": 1, - "action.": 1, - "In": 1, - "either": 1, - "allows": 1, - "you": 1, - "manipulate": 1, - "aspects": 1, - "Dispatcher": 1, - "routing.": 1, - "By": 1, - "conventional": 1, - "names.": 1, - "/posts/index": 1, - "maps": 1, - "PostsController": 1, - "re": 1, - "map": 1, - "urls": 1, - "Router": 5, - "connect": 1, - "Cake.Controller": 1, - "@property": 8, - "AclComponent": 1, - "Acl": 1, - "AuthComponent": 1, - "Auth": 1, - "CookieComponent": 1, - "Cookie": 1, - "EmailComponent": 1, - "Email": 1, - "PaginatorComponent": 1, - "Paginator": 1, - "RequestHandlerComponent": 1, - "RequestHandler": 1, - "SecurityComponent": 1, - "Security": 1, - "SessionComponent": 1, - "Session": 1, - "//book.cakephp.org/2.0/en/controllers.html": 1, - "helpers": 1, - "_responseClass": 1, - "viewPath": 3, - "layoutPath": 1, - "viewVars": 3, - "view": 5, - "layout": 5, - "autoRender": 6, - "autoLayout": 2, - "Components": 7, - "components": 1, - "viewClass": 10, - "ext": 1, - "cacheAction": 1, - "passedArgs": 2, - "scaffold": 2, - "modelClass": 25, - "modelKey": 2, - "_mergeParent": 4, - "childMethods": 2, - "get_class_methods": 2, - "parentMethods": 2, - "CakeRequest": 5, - "setRequest": 2, - "loadModel": 3, - "load": 3, - "settings": 2, - "__set": 1, - "invokeAction": 1, - "ReflectionMethod": 2, - "_isPrivateAction": 2, - "PrivateActionException": 1, - "invokeArgs": 1, - "ReflectionException": 1, - "_getScaffold": 2, - "MissingActionException": 1, - "privateAction": 4, - "isPublic": 1, - "prefixes": 4, - "prefix": 2, - "Scaffold": 1, - "_mergeControllerVars": 2, - "pluginController": 9, - "pluginDot": 4, - "mergeParent": 2, - "pluginVars": 3, - "appVars": 6, - "get_class_vars": 2, - "_mergeUses": 3, - "constructClasses": 1, - "startupProcess": 1, - "shutdownProcess": 1, - "httpCodes": 3, - "MissingModelException": 1, - "status": 15, - "EXTR_OVERWRITE": 3, - "//TODO": 1, - "Remove": 1, - "following": 1, - "when": 1, - "events": 1, - "fully": 1, - "migrated": 1, - "collectReturn": 1, - "_parseBeforeRedirect": 2, - "session_write_close": 1, - "header": 3, - "codes": 3, - "array_flip": 1, - "send": 1, - "_stop": 1, - "resp": 6, - "setAction": 1, - "args": 5, - "validateErrors": 1, - "render": 3, - "currentModel": 2, - "currentObject": 6, - "getObject": 1, - "is_a": 1, - "location": 1, - "body": 1, - "referer": 5, - "local": 2, - "disableCache": 2, - "flash": 1, - "pause": 2, - "postConditions": 1, - "op": 9, - "exclusive": 2, - "cond": 5, - "arrayOp": 2, - "fieldOp": 11, - "paginate": 3, - "scope": 2, - "beforeFilter": 1, - "beforeRender": 1, - "beforeRedirect": 1, - "afterFilter": 1, - "beforeScaffold": 2, - "_beforeScaffold": 1, - "afterScaffoldSave": 2, - "_afterScaffoldSave": 1, - "afterScaffoldSaveError": 2, - "_afterScaffoldSaveError": 1, - "scaffoldError": 2, - "_scaffoldError": 1 - }, - "Pan": { - "object": 1, - "template": 1, - "pantest": 1, - ";": 32, - "xFF": 1, - "e": 2, - "-": 2, - "E10": 1, - "variable": 4, - "TEST": 2, - "to_string": 1, - "(": 8, - ")": 8, - "+": 2, - "value": 1, - "undef": 1, - "null": 1, - "error": 1, - "include": 1, - "{": 5, - "}": 5, - "pkg_repl": 2, - "PKG_ARCH_DEFAULT": 1, - "function": 1, - "show_things_view_for_stuff": 1, - "thing": 2, - "ARGV": 1, - "[": 2, - "]": 2, - "foreach": 1, - "i": 1, - "mything": 2, - "STUFF": 1, - "if": 1, - "return": 2, - "true": 2, - "else": 1, - "SELF": 1, - "false": 2, - "HERE": 1, - "<<": 1, - "EOF": 2, - "This": 1, - "example": 1, - "demonstrates": 1, - "an": 1, - "in": 1, - "line": 1, - "heredoc": 1, - "style": 1, - "config": 1, - "file": 1, - "main": 1, - "awesome": 1, - "small": 1, - "#This": 1, - "should": 1, - "be": 1, - "highlighted": 1, - "normally": 1, - "again.": 1 - }, - "Papyrus": { - "Scriptname": 3, - "vMFX_FXPlugin": 1, - "extends": 3, - "Quest": 2, - "vSCM_MetaQuestScript": 1, - "{": 2, - "Do": 1, - "initialization": 1, - "and": 1, - "track": 1, - "variables": 1, - "for": 1, - "scripts": 1, - "}": 2, - ";": 13, - "-": 42, - "Imports": 2, - "Import": 4, - "Utility": 2, - "Game": 2, - "Properties": 2, - "Actor": 9, - "Property": 7, - "PlayerRef": 3, - "Auto": 7, - "Float": 11, - "ModVersion": 10, - "Hidden": 2, - "String": 4, - "ModName": 3, - "Message": 2, - "vSCM_ModLoadedMSG": 1, - "vSCM_ModUpdatedMSG": 1, - "Variables": 2, - "_CurrentVersion": 10, - "_sCurrentVersion": 3, - "Bool": 2, - "_Running": 4, - "_ScriptLatency": 1, - "_StartTime": 1, - "_EndTime": 1, - "Events": 2, - "Event": 7, - "OnInit": 2, - "(": 74, - ")": 74, - "If": 7, - "DoUpkeep": 2, - "True": 7, - "EndIf": 7, - "EndEvent": 7, - "OnReset": 1, - "Debug.Trace": 18, - "OnGameReloaded": 1, - "Functions": 2, - "Function": 6, - "DelayedStart": 2, - "FIXME": 1, - "CHANGE": 1, - "THIS": 1, - "WHEN": 1, - "UPDATING": 1, - "GetVersionString": 3, - "sErrorMessage": 1, - "Wait": 4, - "RandomFloat": 1, - "+": 18, - "DoInit": 2, - "Else": 3, - "ElseIf": 1, - "<": 3, - "DoUpgrade": 2, - "Debug.MessageBox": 1, - "vSCM_ModUpdatedMSG.Show": 1, - "CheckForOrphans": 1, - "CheckForExtras": 2, - "UpdateConfig": 2, - "EndFunction": 6, - "vSCM_ModLoadedMSG.Show": 1, - "False": 8, - "fVersion": 3, - "Int": 4, - "Major": 4, - "Math.Floor": 1, - "as": 3, - "Minor": 4, - "*": 1, - "Return": 2, - "CAMTEST_OverShoulderME": 1, - "activemagiceffect": 1, - "Play": 1, - "with": 1, - "camera": 1, - "effects": 1, - "ActorBase": 1, - "CAMTEST_CameraActor": 2, - "Player": 6, - "Camera": 3, - "Target": 1, - "PosX": 1, - "PosY": 1, - "PosZ": 1, - "SpeedMult": 1, - "ObjectReference": 2, - "Mist": 1, - "Fog": 1, - "onEffectStart": 1, - "akTarget": 2, - "akCaster": 2, - "Player.PlaceActorAtMe": 1, - "Camera.EnableAI": 1, - "Camera.SetScale": 1, - "Camera.TranslateTo": 1, - "Player.X": 3, - "Player.Y": 3, - "Player.Z": 3, - "DisablePlayerControls": 1, - "abMovement": 1, - "true": 7, - "abFighting": 1, - "abCamSwitch": 1, - "abLooking": 1, - "abSneaking": 1, - "abMenu": 1, - "abActivate": 1, - "abJournalTabs": 1, - "false": 1, - "SetPlayerAIDriven": 2, - "ForceThirdPerson": 1, - "SetHUDCartMode": 2, - "SetInChargen": 2, - "SetCameraTarget": 2, - "ForceFirstPerson": 1, - "Camera.SplineTranslateTo": 2, - "Camera.GetHeadingAngle": 2, - "Camera.GetAngleZ": 2, - "Camera.SetLookAt": 1, - "EnablePlayerControls": 1, - "onUpdate": 1, - "onEffectFinish": 1 - }, - "Parrot Assembly": { - "SHEBANG#!parrot": 1, - ".pcc_sub": 1, - "main": 2, - "say": 1, - "end": 1 - }, - "Parrot Internal Representation": { - "SHEBANG#!parrot": 1, - ".sub": 1, - "main": 1, - "say": 1, - ".end": 1 - }, - "Pascal": { - "program": 1, - "gmail": 1, - ";": 122, - "uses": 3, - "Forms": 2, - "Unit2": 1, - "in": 2, - "{": 25, - "Form2": 2, - "}": 25, - "R": 1, - "*.res": 1, - "begin": 15, - "Application.Initialize": 1, - "Application.MainFormOnTaskbar": 1, - "True": 2, - "Application.CreateForm": 1, - "(": 39, - "TForm2": 1, - ")": 39, - "Application.Run": 1, - "end.": 3, - "Id": 1, - "-": 230, - "gtkextra.pp": 1, - "GTK": 1, - "widgetset": 1, - "additional": 1, - "gdk/gtk": 2, - "functions": 2, - "This": 2, - "unit": 3, - "contains": 1, - "missing": 1, - "and": 1, - "defines": 1, - "for": 2, - "certain": 1, - "versions": 1, - "of": 2, - "gtk": 1, - "or": 1, - "fpc.": 1, - "@created": 1, - "Sun": 1, - "Jan": 1, - "th": 1, - "WET": 1, - "@lastmod": 1, - "Date": 1, - "@author": 1, - "Marc": 1, - "Weustink": 1, - "": 1, - "*****************************************************************************": 2, - "file": 2, - "is": 1, - "part": 1, - "the": 3, - "Lazarus": 1, - "Component": 1, - "Library": 1, - "LCL": 1, - "See": 1, - "COPYING.modifiedLGPL.txt": 1, - "included": 1, - "this": 1, - "distribution": 1, - "details": 1, - "about": 1, - "license.": 1, - "GtkExtra": 1, - "mode": 2, - "objfpc": 2, - "H": 2, - "+": 7, - "interface": 2, - "I": 9, - "gtkdefines.inc": 1, - "ifdef": 4, - "gtk1": 2, - "gtk1extrah.inc": 1, - "endif": 4, - "gtk2": 2, - "gtk2extrah.inc": 1, - "implementation": 2, - "gtk1extra.inc": 1, - "gtk2extra.inc": 1, - "custforms": 1, - "Classes": 1, - "SysUtils": 1, - "Type": 2, - "TCustomFormDescr": 13, - "Class": 2, - "private": 2, - "FAuthor": 3, - "String": 23, - "FCaption": 4, - "FCategory": 4, - "FDescription": 4, - "FFormClass": 4, - "TFormClass": 10, - "FLazPackage": 4, - "FUnitName": 4, - "public": 1, - "Constructor": 3, - "Create": 5, - "AFormClass": 12, - "const": 5, - "APackage": 12, - "string": 4, - "Const": 4, - "ACaption": 3, - "ADescription": 3, - "AUnit": 3, - "Property": 8, - "FormClass": 1, - "Read": 8, - "Write": 7, - "Caption": 1, - "Description": 1, - "UnitName": 1, - "Category": 1, - "Author": 1, - "LazPackage": 1, - "end": 17, - "Procedure": 10, - "RegisterCustomForm": 8, - "Descr": 3, - "AUnitName": 3, - "Register": 2, - "ProjectIntf": 1, - "NewItemIntf": 1, - "contnrs": 1, - "SAppFrameWork": 2, - "SInstanceOf": 2, - "constructor": 3, - "TCustomFormDescr.Create": 4, - "Var": 4, - "N": 5, - "U": 5, - "AFormClass.ClassName": 1, - "If": 2, - "Upcase": 1, - "[": 5, - "]": 5, - "then": 2, - "Delete": 1, - "Format": 1, - "TCustomFormFileDescriptor": 3, - "TFileDescPascalUnitWithResource": 1, - "FFormDescr": 3, - "Public": 1, - "ADescr": 3, - "FormDescr": 1, - "Function": 3, - "GetLocalizedName": 1, - "override": 3, - "GetLocalizedDescription": 1, - "GetInterfaceUsesSection": 2, - "TCustomFormFileDescriptor.Create": 2, - "Inherited": 1, - "ResourceClass": 1, - "FFormDescr.FFormClass": 1, - "Name": 1, - "FFormDescr.Caption": 2, - "RequiredPackages": 2, - "ADescr.LazPackage": 1, - "//Writeln": 1, - "function": 3, - "TCustomFormFileDescriptor.GetLocalizedName": 1, - "Result": 7, - "TCustomFormFileDescriptor.GetLocalizedDescription": 1, - "FFormDescr.Description": 1, - "FFormDescr.Author": 2, - "<": 1, - "LineEnding": 1, - "TCustomFormFileDescriptor.GetInterfaceUsesSection": 1, - "inherited": 1, - "FFormDescr.UnitName": 1, - "CustomFormList": 5, - "TObjectList": 1, - "CustomFormList.Add": 1, - "D": 6, - "D.UnitName": 1, - "L": 3, - "TStringList": 1, - "Integer": 1, - "TStringList.Create": 1, - "Try": 1, - "L.Sorted": 1, - "L.Duplicates": 1, - "dupIgnore": 1, - "For": 3, - "to": 3, - "CustomFormList.Count": 2, - "do": 3, - "L.Add": 1, - "i": 3, - ".Category": 1, - "L.Count": 1, - "RegisterNewItemCategory": 1, - "TNewIDEItemCategory.Create": 1, - "Finally": 1, - "L.Free": 1, - "RegisterProjectFileDescriptor": 1, - "D.Category": 1, - "InitCustomForms": 2, - "TObjectList.Create": 1, - "DoneCustomForms": 2, - "FreeAndNil": 1, - "Initialization": 1, - "Finalization": 1 - }, - "Perl": { - "package": 14, - "Plack": 25, - "Response": 16, - ";": 1376, - "use": 88, - "strict": 22, - "warnings": 19, - "our": 34, - "VERSION": 15, - "eval": 8, - "Util": 3, - "Accessor": 1, - "qw": 35, - "(": 1137, - "body": 30, - "status": 17, - ")": 1136, - "Carp": 11, - "Scalar": 2, - "HTTP": 16, - "Headers": 8, - "URI": 11, - "Escape": 6, - "sub": 232, - "code": 10, - "{": 1394, - "shift": 170, - "-": 1075, - "@_": 45, - "}": 1407, - "content": 8, - "new": 56, - "my": 458, - "class": 8, - "rc": 11, - "headers": 56, - "self": 141, - "bless": 7, - "if": 322, - "defined": 54, - "ref": 33, - "eq": 62, - "carp": 2, - "@": 54, - "%": 82, - "elsif": 26, - "return": 168, - "else": 71, - "||": 52, - "cookies": 9, - "+": 126, - "header": 17, - "#": 106, - "shortcut": 2, - "content_length": 4, - "content_type": 5, - "content_encoding": 5, - "location": 5, - "redirect": 1, - "url": 2, - "finalize": 5, - "croak": 3, - "unless": 39, - "clone": 1, - "_finalize_cookies": 2, - "[": 200, - "map": 10, - "k": 6, - "_": 104, - "v": 19, - "s/": 28, - "|": 31, - "]": 196, - "/chr": 1, - "/ge": 1, - "replace": 3, - "LWS": 1, - "with": 28, - "a": 88, - "single": 1, - "SP": 1, - "//g": 1, - "remove": 2, - "CR": 1, - "and": 92, - "LF": 1, - "since": 2, - "the": 153, - "char": 1, - "is": 74, - "invalid": 1, - "here": 2, - "header_field_names": 1, - "_body": 2, - "or": 51, - "blessed": 1, - "&&": 84, - "overload": 1, - "Method": 1, - "q": 5, - "can": 30, - "while": 33, - "name": 60, - "val": 26, - "each": 14, - "cookie": 6, - "_bake_cookie": 2, - "push_header": 1, - "value": 14, - "@cookie": 7, - "uri_escape": 3, - ".": 166, - "push": 37, - "domain": 3, - "path": 29, - "_date": 2, - "expires": 7, - "secure": 2, - "httponly": 1, - "join": 7, - "@MON": 1, - "Jan": 1, - "Feb": 1, - "Mar": 1, - "Apr": 1, - "May": 2, - "Jun": 1, - "Jul": 1, - "Aug": 1, - "Sep": 1, - "Oct": 1, - "Nov": 1, - "Dec": 1, - "@WDAY": 1, - "Sun": 1, - "Mon": 1, - "Tue": 1, - "Wed": 1, - "Thu": 1, - "Fri": 1, - "Sat": 1, - "/": 82, - "d": 9, - "sec": 2, - "min": 3, - "hour": 2, - "mday": 2, - "mon": 2, - "year": 3, - "wday": 2, - "gmtime": 1, - "sprintf": 1, - "WDAY": 1, - "MON": 1, - "__END__": 2, - "head1": 36, - "NAME": 6, - "Portable": 2, - "object": 6, - "for": 88, - "PSGI": 10, - "response": 5, - "SYNOPSIS": 6, - "psgi_handler": 1, - "env": 76, - "res": 59, - "DESCRIPTION": 4, - "allows": 4, - "you": 44, - "way": 3, - "to": 101, - "create": 4, - "array": 7, - "through": 10, - "simple": 2, - "API.": 1, - "METHODS": 2, - "over": 2, - "item": 44, - "Creates": 2, - "object.": 4, - "Sets": 2, - "gets": 2, - "code.": 2, - "C": 56, - "": 1, - "an": 17, - "alias.": 2, - "of": 67, - "response.": 1, - "Setter": 2, - "take": 5, - "either": 2, - "hash": 11, - "L": 34, - "": 2, - "containing": 5, - "list": 10, - "headers.": 1, - "body_str": 1, - "io": 1, - "Gets": 3, - "sets": 4, - "body.": 1, - "string": 6, - "IO": 1, - "Handle": 1, - "like": 14, - "": 1, - "Note": 5, - "that": 35, - "this": 22, - "method": 8, - "doesn": 8, - "X": 2, - "Foo": 11, - "bar": 3, - "text/plain": 1, - "gzip": 1, - "t": 21, - "normalize": 1, - "given": 10, - "string.": 1, - "Users": 1, - "module": 2, - "have": 2, - "be": 39, - "responsible": 1, - "about": 4, - "properly": 1, - "encoding": 2, - "paths": 3, - "parameters.": 3, - "": 1, - "header.": 2, - "names": 3, - "their": 1, - "corresponding": 1, - "values": 7, - "are": 26, - "plain": 2, - "": 2, - "everything": 1, - "defaults": 16, - "reference": 8, - "contain": 3, - "keys": 19, - "such": 6, - "as": 40, - "": 1, - "": 2, - "": 1, - "": 1, - "": 1, - "integer": 1, - "epoch": 1, - "time": 6, - "B": 76, - "": 1, - "not": 56, - "convert": 1, - "formats": 1, - "<+3M>": 1, - "foo": 6, - "*": 8, - "Returns": 10, - "reference.": 1, - "back": 4, - "AUTHOR": 1, - "Tokuhiro": 2, - "Matsuno": 2, - "Tatsuhiko": 2, - "Miyagawa": 2, - "SEE": 4, - "ALSO": 4, - "": 2, - "cut": 28, - "SHEBANG#!perl": 6, - "print": 46, - "Request": 11, - "_001": 1, - "Hash": 11, - "MultiValue": 9, - "Body": 2, - "Upload": 2, - "TempBuffer": 2, - "_deprecated": 8, - "alt": 1, - "caller": 2, - "required": 2, - "address": 2, - "REMOTE_ADDR": 1, - "remote_host": 2, - "REMOTE_HOST": 1, - "protocol": 1, - "SERVER_PROTOCOL": 1, - "REQUEST_METHOD": 1, - "port": 1, - "SERVER_PORT": 2, - "user": 5, - "REMOTE_USER": 1, - "request_uri": 1, - "REQUEST_URI": 2, - "path_info": 4, - "PATH_INFO": 3, - "script_name": 1, - "SCRIPT_NAME": 2, - "scheme": 3, - "input": 9, - "CONTENT_LENGTH": 3, - "CONTENT_TYPE": 2, - "session": 1, - "session_options": 1, - "logger": 1, - "HTTP_COOKIE": 3, - "results": 8, - "@pairs": 2, - "grep": 17, - "split": 15, - "pair": 4, - "s": 35, - "//": 9, - "key": 20, - "uri_unescape": 1, - "exists": 31, - "query_parameters": 3, - "uri": 11, - "query_form": 2, - "_parse_request_body": 4, - "fh": 28, - "cl": 10, - "read": 6, - "seek": 4, - "raw_body": 1, - "field": 2, - "HTTPS": 1, - "_//": 1, - "CONTENT": 1, - "COOKIE": 1, - "/i": 2, - "referer": 3, - "user_agent": 3, - "body_parameters": 3, - "parameters": 8, - "do": 16, - "query": 4, - "flatten": 3, - "uploads": 5, - "hostname": 2, - "url_scheme": 1, - "params": 1, - "query_params": 1, - "body_params": 1, - "param": 10, - "wantarray": 3, - "get_all": 2, - "upload": 13, - "raw_uri": 1, - "base": 10, - "path_query": 1, - "_uri_base": 3, - "path_escape_class": 2, - "QUERY_STRING": 3, - "ne": 11, - "m": 17, - "canonical": 2, - "HTTP_HOST": 1, - "SERVER_NAME": 1, - "new_response": 4, - "require": 13, - "ct": 3, - "cleanup": 1, - "buffer": 9, - "spin": 2, - "chunk": 4, - "<": 15, - "length": 1, - "add": 9, - "rewind": 1, - "from_mixed": 2, - "@uploads": 3, - "@obj": 3, - "splice": 2, - "_make_upload": 2, - "copy": 4, - "request": 11, - "from": 20, - "app_or_middleware": 1, - "req": 28, - "provides": 1, - "consistent": 1, - "API": 2, - "objects": 2, - "across": 1, - "web": 9, - "server": 2, - "environments.": 1, - "CAVEAT": 1, - "intended": 1, - "used": 13, - "by": 19, - "middleware": 2, - "developers": 3, - "application": 15, - "framework": 2, - "rather": 2, - "than": 5, - "end": 10, - "users": 4, - "Writing": 2, - "your": 20, - "directly": 1, - "using": 5, - "certainly": 2, - "possible": 2, - "but": 4, - "recommended": 1, - "it": 30, - "Apache": 2, - "yet": 1, - "too": 1, - "low": 1, - "level.": 1, - "If": 15, - "re": 3, - "encouraged": 1, - "one": 9, - "frameworks": 2, - "support": 2, - "": 1, - "see": 5, - "modules": 1, - "": 1, - "provide": 1, - "higher": 1, - "level": 3, - "on": 27, - "top": 1, - "PSGI.": 1, - "Some": 1, - "methods": 4, - "in": 40, - "earlier": 1, - "versions": 1, - "deprecated": 1, - "version": 2, - "Take": 1, - "look": 2, - "at": 4, - "": 1, - "Unless": 1, - "otherwise": 2, - "noted": 1, - "all": 28, - "attributes": 4, - "": 1, - "passing": 1, - "accessor": 1, - "debug": 39, - "set.": 1, - "current": 6, - "request.": 1, - "uploads.": 2, - "The": 22, - "": 2, - "": 1, - "objects.": 1, - "Shortcut": 6, - "content_encoding.": 1, - "content_length.": 1, - "content_type.": 1, - "referer.": 1, - "user_agent.": 1, - "GET": 1, - "POST": 1, - "CGI.pm": 2, - "compatible": 1, - "method.": 1, - "This": 27, - "alternative": 1, - "accessing": 1, - "Unlike": 1, - "does": 11, - "I": 68, - "": 1, - "allow": 1, - "setting": 2, - "modifying": 1, - "@values": 1, - "@params": 7, - "A": 2, - "convenient": 1, - "access": 2, - "@fields": 1, - "filename": 72, - "": 3, - "Handy": 1, - "dependency": 1, - "easy": 1, - "subclassing": 1, - "duck": 1, - "typing": 1, - "well": 2, - "overriding": 1, - "generation": 1, - "middlewares.": 1, - "head2": 34, - "Parameters": 1, - "multiple": 5, - "i.e.": 2, - "": 1, - "": 1, - "": 1, - "": 1, - "store": 1, - "means": 3, - "where": 4, - "": 1, - "scalars": 1, - "": 2, - "references": 1, - "so": 4, - "don": 2, - "ARRAY": 1, - "parse": 3, - "more": 3, - "twice": 1, - "efficiency.": 1, - "DISPATCHING": 1, - "wants": 1, - "dispatch": 1, - "route": 1, - "actions": 1, - "based": 2, - "sure": 1, - "<<": 10, - "because": 3, - "": 1, - "gives": 2, - "virtual": 1, - "regardless": 1, - "how": 2, - "mounted.": 1, - "hosted": 1, - "mod_perl": 3, - "CGI": 10, - "scripts": 1, - "even": 4, - "multiplexed": 1, - "tools": 1, - "": 1, - "good": 2, - "idea": 1, - "subclass": 1, - "define": 1, - "uri_for": 2, - "args": 37, - "So": 1, - "say": 1, - "link": 1, - "signoff": 1, - "": 1, - "empty.": 1, - "need": 5, - "older": 1, - "behavior": 3, - "just": 2, - "call": 4, - "instead.": 1, - "Cookie": 2, - "handling": 1, - "simplified": 1, - "always": 5, - "set": 12, - "decoding": 1, - "them": 5, - "totally": 1, - "up": 1, - "framework.": 1, - "Also": 1, - "": 1, - "now": 1, - "returns": 4, - "": 1, - "Simple": 1, - "which": 7, - "no": 22, - "longer": 1, - "write": 5, - "wacky": 1, - "undef": 17, - "instead": 4, - "simply": 1, - "AUTHORS": 2, - "Kazuhiro": 1, - "Osawa": 1, - "": 1, - "": 1, - "LICENSE": 3, - "library": 2, - "free": 4, - "software": 3, - "redistribute": 4, - "and/or": 4, - "modify": 4, - "under": 5, - "same": 4, - "terms": 4, - "Perl": 9, - "itself.": 3, - "pod": 1, - "Catalyst": 10, - "How": 1, - "work": 3, - "together": 2, - "": 3, - "specification": 3, - "defines": 2, - "interface": 1, - "between": 4, - "servers": 2, - "applications": 2, - "frameworks.": 1, - "It": 3, - "supports": 1, - "writing": 1, - "portable": 1, - "run": 3, - "various": 2, - "standalone": 1, - "FastCGI": 2, - "etc.": 3, - "": 3, - "implementation": 1, - "running": 1, - "applications.": 1, - "entire": 3, - "Engine": 1, - "XXXX": 1, - "classes": 2, - "handle": 3, - "environments": 1, - "e.g.": 2, - "has": 3, - "been": 1, - "changed": 1, - "done": 2, - "implementing": 1, - "manually": 2, - "creating": 3, - "": 1, - "file": 57, - "root": 1, - "application.": 1, - "Why": 3, - "would": 6, - "want": 7, - "own": 4, - ".psgi": 7, - "alternate": 1, - "": 1, - "command": 16, - "start": 7, - "extensions": 1, - "implement": 2, - "": 1, - "": 1, - "": 1, - "simplest": 1, - "<.psgi>": 1, - "called": 5, - "": 1, - "TestApp": 5, - "app": 2, - "psgi_app": 3, - "will": 9, - "apply": 3, - "number": 4, - "components": 2, - "automatically": 2, - "these": 4, - "": 1, - "applied": 1, - "psgi": 2, - "yourself.": 2, - "Details": 1, - "found": 11, - "below.": 1, - "Additional": 1, - "information": 2, - "files": 42, - "": 1, - "What": 1, - "generates": 2, - "default": 19, - "": 1, - "wrapped": 1, - "": 1, - "contains": 2, - "some": 2, - "engine": 1, - "specific": 2, - "fixes": 1, - "uniform": 1, - "behaviour": 2, - "contained": 1, - "": 1, - "": 1, - "override": 1, - "providing": 2, - "then": 4, - "none": 1, - "things": 2, - "returned": 3, - "when": 19, - "MyApp": 1, - "Thus": 1, - "any": 4, - "functionality": 1, - "ll": 1, - "An": 1, - "apply_default_middlewares": 2, - "supplied": 1, - "wrap": 1, - "middlewares": 1, - "file.": 3, - "auto": 1, - "generated": 1, - "looks": 2, - "something": 3, - "": 1, - "": 1, - "Contributors": 1, - "Catalyst.pm": 1, - "COPYRIGHT": 7, - "software.": 1, - "You": 4, - "MAIN": 1, - "App": 131, - "Ack": 136, - "main": 3, - "die": 38, - "env_is_usable": 3, - "@ARGV": 12, - "last": 17, - "th": 1, - "pt": 1, - "_thpppt": 3, - "_bar": 3, - "unshift": 4, - "read_ackrc": 4, - "@keys": 2, - "ACK_/": 1, - "ENV": 41, - "delete": 10, - "@ENV": 1, - "load_colors": 1, - "ACK_SWITCHES": 1, - "warn": 22, - "show_help": 3, - "exit": 19, - "opt": 291, - "get_command_line_options": 4, - "flush": 8, - "Unbuffer": 1, - "output": 40, - "mode": 1, - "input_from_pipe": 8, - "f": 25, - "g": 7, - "l": 17, - "show_filename": 35, - "regex": 42, - "build_regex": 3, - "nargs": 2, - "Resource": 5, - "Basic": 11, - "nmatches": 61, - "count": 23, - "search_and_list": 8, - "search_resource": 7, - "close": 22, - "exit_from_ack": 5, - "file_matching": 2, - "lines": 20, - "check_regex": 2, - "G": 11, - "what": 15, - "get_starting_points": 4, - "iter": 23, - "get_iterator": 4, - "filetype_setup": 4, - "set_up_pager": 3, - "pager": 19, - "print_files": 4, - "print_files_with_matches": 4, - "print_matches": 4, - "ack": 38, - "text": 6, - "finder": 1, - "options": 8, - "PATTERN": 8, - "FILE...": 1, - "DIRECTORY...": 1, - "designed": 1, - "replacement": 1, - "uses": 2, - "F": 24, - "": 5, - "searches": 1, - "named": 3, - "FILEs": 1, - "standard": 1, - "match": 24, - "PATTERN.": 1, - "By": 2, - "prints": 2, - "matching": 15, - "lines.": 3, - "also": 7, - "searched": 5, - "without": 3, - "actually": 1, - "searching": 6, - "let": 1, - "advantage": 1, - "know": 4, - ".wango": 1, - "": 13, - "won": 1, - "throw": 1, - "away": 1, - "there": 6, - "times": 2, - "follow": 7, - "symlinks": 1, - "other": 6, - "whatever": 1, - "starting": 2, - "directories": 9, - "were": 2, - "specified": 3, - "line.": 4, - "off": 4, - "default.": 2, - "": 11, - "Only": 7, - "included": 1, - "search.": 1, - "matched": 1, - "against": 1, - "regular": 3, - "expression": 9, - "shell": 4, - "glob.": 1, - "<-i>": 5, - "<-w>": 2, - "<-v>": 3, - "<-Q>": 4, - "Print": 6, - "relative": 1, - "matches": 7, - "option": 7, - "convenience": 1, - "<-f>": 6, - "<--group>": 2, - "<--nogroup>": 2, - "groups": 1, - "with.": 1, - "interactively.": 1, - "result": 3, - "per": 1, - "line": 21, - "grep.": 2, - "redirected.": 1, - "<-H>": 1, - "<--with-filename>": 1, - "match.": 3, - "<-h>": 1, - "<--no-filename>": 1, - "Suppress": 1, - "prefixing": 1, - "filenames": 7, - "searched.": 1, - "<--help>": 1, - "short": 1, - "help": 3, - "statement.": 1, - "<--ignore-case>": 1, - "Ignore": 3, - "case": 3, - "search": 11, - "strings.": 1, - "applies": 3, - "only": 11, - "regexes": 4, - "<-g>": 5, - "<-G>": 3, - "options.": 4, - "ignore": 7, - "dir": 27, - "": 2, - "directory": 8, - "CVS": 5, - ".svn": 3, - "etc": 2, - "ignored": 6, - "directories.": 2, - "For": 5, - "example": 5, - "mason": 1, - "may": 4, - "wish": 1, - "include": 1, - "<--ignore-dir=data>": 1, - "<--noignore-dir>": 1, - "normally": 1, - "perhaps": 1, - "research": 1, - "contents": 2, - "<.svn/props>": 1, - "must": 7, - "name.": 1, - "Nested": 1, - "": 1, - "NOT": 1, - "supported.": 1, - "specify": 1, - "<--ignore-dir=foo>": 1, - "taken": 1, - "into": 8, - "account": 1, - "explicitly": 1, - "": 2, - "Multiple": 1, - "<--line>": 1, - "comma": 1, - "separated": 2, - "<--line=3,5,7>": 1, - "<--line=4-7>": 1, - "works.": 1, - "ascending": 1, - "order": 2, - "matter": 1, - "<-l>": 2, - "<--files-with-matches>": 1, - "text.": 1, - "<-L>": 1, - "<--files-without-matches>": 1, - "equivalent": 2, - "specifying": 1, - "Specify": 2, - "explicitly.": 1, - "helpful": 2, - "": 1, - "via": 1, - "": 4, - "": 4, - "environment": 2, - "variables.": 1, - "Using": 3, - "suppress": 3, - "grouping": 3, - "coloring": 3, - "piping": 3, - "does.": 2, - "<--passthru>": 1, - "Prints": 4, - "whether": 1, - "they": 1, - "expression.": 1, - "Highlighting": 1, - "still": 4, - "though": 1, - "highlight": 1, - "seeing": 1, - "tail": 1, - "/access.log": 1, - "passthru": 9, - "<--print0>": 1, - "works": 1, - "conjunction": 1, - "c": 6, - "null": 1, - "byte": 1, - "usual": 1, - "newline.": 1, - "dealing": 1, - "whitespace": 1, - "html": 1, - "print0": 7, - "xargs": 2, - "rm": 1, - "<--literal>": 1, - "Quote": 1, - "metacharacters": 2, - "treated": 1, - "literal.": 1, - "<-r>": 1, - "<-R>": 1, - "<--recurse>": 1, - "Recurse": 3, - "compatibility": 2, - "turning": 1, - "<--no-recurse>": 1, - "off.": 1, - "<--smart-case>": 1, - "<--no-smart-case>": 1, - "strings": 1, - "uppercase": 1, - "characters.": 1, - "similar": 1, - "": 1, - "vim.": 1, - "overrides": 2, - "option.": 1, - "<--sort-files>": 1, - "Sorts": 1, - "lexically.": 3, - "Use": 6, - "listings": 1, - "deterministic": 1, - "runs": 1, - "<--show-types>": 1, - "Outputs": 1, - "filetypes": 8, - "associates": 1, - "Works": 1, - "<--thpppt>": 1, - "Display": 3, - "important": 1, - "Bill": 1, - "Cat": 1, - "logo.": 1, - "exact": 1, - "spelling": 1, - "<--thpppppt>": 1, - "important.": 1, - "skipped": 2, - "make": 3, - "binary": 3, - "perl": 9, - "ruby": 3, - "php": 2, - "python": 1, - "xml": 6, - "exist": 5, - "location.": 1, - "ACK_OPTIONS": 5, - "variable": 3, - "specifies": 1, - "placed": 1, - "front": 1, - "explicit": 1, - "ACK_COLOR_FILENAME": 5, - "Specifies": 4, - "color": 38, - "recognized": 1, - "clear": 2, - "reset": 5, - "dark": 1, - "bold": 5, - "underline": 1, - "underscore": 2, - "blink": 1, - "reverse": 1, - "concealed": 1, - "black": 3, - "red": 1, - "green": 3, - "yellow": 3, - "blue": 1, - "magenta": 1, - "on_black": 1, - "on_red": 1, - "on_green": 1, - "on_yellow": 3, - "on_blue": 1, - "on_magenta": 1, - "on_cyan": 1, - "on_white.": 1, - "Case": 1, - "significant.": 1, - "Underline": 1, - "reset.": 1, - "alone": 1, - "foreground": 1, - "on_color": 1, - "background": 1, - "color.": 2, - "<--color-filename>": 1, - "ACK_COLOR_MATCH": 5, - "printed": 1, - "<--color>": 1, - "mode.": 1, - "<--color-lineno>": 1, - "See": 1, - "": 1, - "specifications.": 1, - "ACK_PAGER": 5, - "program": 7, - "": 1, - "": 1, - "": 1, - "send": 1, - "its": 2, - "output.": 1, - "except": 1, - "Windows": 4, - "assume": 1, - "both": 1, - "specified.": 4, - "ACK_PAGER_COLOR": 7, - "understands": 1, - "ANSI": 3, - "sequences.": 1, - "never": 2, - "ACK": 2, - "&": 27, - "OTHER": 1, - "TOOLS": 1, - "Vim": 3, - "integration": 3, - "integrates": 1, - "easily": 2, - "editor.": 1, - "Set": 3, - "<.vimrc>": 1, - "grepprg": 1, - "That": 3, - "examples": 1, - "<-a>": 1, - "flags.": 1, - "Now": 1, - "step": 1, - "Dumper": 1, - "perllib": 1, - "Emacs": 1, - "Phil": 1, - "Jackson": 1, - "put": 1, - "": 1, - "extension": 1, - "": 1, - "TextMate": 2, - "Pedro": 1, - "Melo": 1, - "who": 1, - "writes": 1, - "Shell": 2, - "Return": 2, - "Code": 1, - "greater": 1, - "normal": 1, - "found.": 4, - "<$?=256>": 1, - "": 1, - "backticks.": 1, - "errors": 4, - "used.": 1, - "least": 1, - "returned.": 1, - "DEBUGGING": 1, - "PROBLEMS": 1, - "expecting": 1, - "forgotten": 1, - "<--noenv>": 1, - "<.ackrc>": 1, - "remember.": 1, - "Put": 1, - "type": 69, - "definitions": 1, - "it.": 1, - "smart": 1, - "too.": 1, - "sort": 9, - "there.": 1, - "working": 1, - "big": 2, - "codesets": 1, - "files.": 6, - "tree": 2, - "ideal": 1, - "sending": 1, - "": 1, - "p": 10, - "i": 27, - "e": 21, - "prefer": 1, - "doubt": 1, - "day": 1, - "find": 1, - "trouble": 1, - "spots": 1, - "website": 1, - "visitor.": 1, - "had": 1, - "problem": 1, - "loading": 1, - "": 1, - "took": 1, - "log": 4, - "scanned": 1, - "twice.": 1, - "Q": 7, - "aa.bb.cc.dd": 1, - "/path/to/access.log": 1, - "B5": 1, - "troublesome.gif": 1, - "first": 1, - "finds": 2, - "IP.": 1, - "second": 1, - "troublesome": 1, - "GIF": 1, - "shows": 1, - "previous": 1, - "five": 1, - "case.": 1, - "Share": 1, - "knowledge": 1, - "Join": 1, - "mailing": 1, - "list.": 1, - "Send": 1, - "me": 1, - "tips": 1, - "here.": 1, - "FAQ": 1, - "isn": 1, - "driven": 1, - "filetype.": 1, - "": 1, - "kind": 1, - "ignores": 1, - "switch": 1, - "you.": 1, - "source": 2, - "compiled": 1, - "control": 1, - "metadata": 1, - "wastes": 1, - "lot": 1, - "those": 2, - "returning": 1, - "great": 1, - "did": 1, - "No": 4, - "only.": 1, - "perfectly": 1, - "<-p>": 1, - "<-n>": 1, - "switches.": 1, - "select": 1, - "update.": 1, - "change": 1, - "PHP": 1, - "Unix": 1, - "Can": 1, - "recognize": 1, - "<.xyz>": 1, - "already": 2, - "program/package": 1, - "ack.": 2, - "Yes": 1, - "know.": 1, - "out": 3, - "nothing": 1, - "suggest": 1, - "symlink": 1, - "points": 1, - "": 1, - "crucial": 1, - "benefits": 1, - "having": 1, - "Regan": 1, - "Slaven": 1, - "ReziE": 1, - "<0x107>": 1, - "Mark": 1, - "Stosberg": 1, - "David": 1, - "Alan": 1, - "Pisoni": 1, - "Adriano": 1, - "Ferreira": 1, - "James": 1, - "Keenan": 1, - "Leland": 1, - "Johnson": 1, - "Ricardo": 1, - "Signes": 1, - "Pete": 1, - "Krawczyk.": 1, - "Copyright": 2, - "Andy": 2, - "Lester.": 2, - "Artistic": 2, - "License": 2, - "v2.0.": 2, - "File": 54, - "Next": 27, - "Spec": 13, - "files_defaults": 3, - "skip_dirs": 3, - "BEGIN": 7, - "file_filter": 12, - "descend_filter": 11, - "error_handler": 5, - "CORE": 3, - "sort_files": 11, - "follow_symlinks": 6, - "curdir": 1, - "updir": 1, - "__PACKAGE__": 1, - "parms": 15, - "@queue": 8, - "_setup": 2, - "filter": 12, - "fullpath": 12, - "local": 5, - "next": 9, - "_candidate_files": 2, - "iterator": 3, - "sort_standard": 2, - "cmp": 2, - "sort_reverse": 1, - "reslash": 4, - "@parts": 3, - "catfile": 4, - "passed_parms": 6, - "parm": 1, - "badkey": 1, - "dh": 4, - "opendir": 1, - "@newfiles": 5, - "sort_sub": 4, - "readdir": 1, - "has_stat": 3, - "catdir": 3, - "closedir": 1, - "End": 3, - "*STDOUT": 6, - "types": 26, - "type_wanted": 20, - "mappings": 29, - "ignore_dirs": 12, - "output_to_pipe": 12, - "dir_sep_chars": 10, - "is_cygwin": 6, - "is_windows": 12, - "Glob": 4, - "Getopt": 6, - "Long": 6, - "_MTN": 2, - "blib": 2, - "RCS": 2, - "SCCS": 2, - "_darcs": 2, - "_sgbak": 2, - "_build": 2, - "actionscript": 2, - "mxml": 2, - "ada": 4, - "adb": 2, - "ads": 2, - "asm": 4, - "batch": 2, - "bat": 2, - "cmd": 2, - "Binary": 2, - "T": 2, - "op": 2, - "tt": 4, - "tt2": 2, - "ttml": 2, - "vb": 4, - "bas": 2, - "cls": 2, - "frm": 2, - "ctl": 2, - "resx": 2, - "verilog": 2, - "vh": 2, - "sv": 2, - "vhdl": 4, - "vhd": 2, - "vim": 4, - "yaml": 4, - "yml": 2, - "dtd": 2, - "xsl": 2, - "xslt": 2, - "ent": 2, - "exts": 6, - "ext": 14, - "mk": 2, - "mak": 2, - "STDIN": 2, - "O": 4, - "/MSWin32/": 2, - "quotemeta": 5, - "@files": 12, - "ACKRC": 2, - "@dirs": 4, - "HOME": 4, - "USERPROFILE": 2, - "bsd_glob": 4, - "GLOB_TILDE": 2, - "open": 10, - "@lines": 21, - "/./": 2, - "s*#/": 2, - "<$fh>": 4, - "chomp": 4, - "getopt_specs": 6, - "after_context": 16, - "before_context": 18, - "break": 14, - "ACK_COLOR_LINENO": 4, - "column": 4, - "handled": 2, - "beforehand": 2, - "heading": 18, - "h": 6, - "H": 6, - "invert_file_match": 8, - "n": 19, - "o": 17, - "show_types": 4, - "smart_case": 3, - "u": 10, - "w": 7, - "remove_dir_sep": 7, - "print_version_statement": 2, - "show_help_types": 2, - "Pod": 4, - "Usage": 4, - "pod2usage": 2, - "verbose": 2, - "exitval": 2, - "dummy": 2, - "wanted": 4, - "no//": 2, - "later": 2, - "qq": 18, - "Unknown": 2, - "def_types_from_ARGV": 5, - "filetypes_supported": 5, - "parser": 12, - "Parser": 4, - "configure": 4, - "getoptions": 4, - "to_screen": 10, - "Win32": 9, - "Console": 2, - "@ret": 10, - "..": 7, - "uniq": 4, - "@uniq": 2, - "<=>": 2, - "b": 6, - "numerical": 2, - "occurs": 2, - "once": 4, - "@typedef": 8, - "td": 6, - "Builtin": 4, - "cannot": 4, - "changed.": 4, - "delete_type": 5, - "Type": 2, - "...": 2, - "@exts": 8, - ".//": 2, - "Cannot": 4, - "append": 2, - "Internal": 2, - "error": 4, - "builtin": 2, - "ignoredir_filter": 5, - "constant": 2, - "TEXT": 16, - "basename": 9, - ".*": 5, - "is_searchable": 8, - "lc_basename": 8, - "lc": 5, - "r": 18, - "SHEBANG#!#!": 2, - "lua": 2, - "erl": 2, - "hp": 2, - "ython": 2, - "d.": 2, - "b/": 4, - "ba": 2, - "z": 2, - "sh": 2, - "": 1, - "updated": 1, - "update": 1, - "message": 1, - "bak": 1, - "core": 1, - "swp": 1, - "js": 1, - "1": 1, - "str": 12, - "w/": 3, - "regex_is_lc": 2, - "qr/": 13, - "regex/": 9, - "S": 1, - ".*//": 1, - "_my_program": 3, - "Basename": 2, - "_get_thpppt": 3, - "y": 8, - "www": 2, - "U": 2, - "tr/": 2, - "x": 12, - "nOo_/": 2, - "*I": 2, - "#.": 6, - ".#": 4, - "I#": 2, - "#I": 6, - "#7": 4, - "results.": 2, - "interactively": 6, - "different": 3, - "group": 2, - "Same": 8, - "nogroup": 2, - "noheading": 2, - "nobreak": 2, - "Highlight": 2, - "redirected": 2, - "colour": 2, - "COLOR": 6, - "lineno": 2, - "numbers.": 2, - "Flush": 2, - "immediately": 2, - "non": 2, - "goes": 2, - "pipe": 4, - "finding": 2, - "searching.": 2, - "REGEX": 2, - "REGEX.": 2, - "Sort": 2, - "invert": 2, - "Print/search": 2, - "g/": 2, - "G.": 2, - "show": 3, - "Show": 2, - "has.": 2, - "inclusion/exclusion": 2, - "All": 5, - "Ignores": 2, - "unrestricted": 2, - "Add/Remove": 2, - "dirs": 2, - "R": 2, - "recurse": 2, - "subdirectories": 2, - "END_OF_HELP": 2, - "VMS": 2, - "vd": 2, - "Term": 6, - "ANSIColor": 8, - "printing": 2, - "last_output_line": 6, - "any_output": 10, - "keep_context": 8, - "@before": 16, - "before_starts_at_line": 10, - "after": 18, - "next_text": 8, - "has_lines": 4, - "should": 8, - "scalar": 3, - "m/": 12, - "print_match_or_context": 13, - "max": 12, - "context_overall_output_count": 6, - "print_blank_line": 2, - "is_binary": 4, - "opts": 2, - "is_match": 7, - "line_no": 12, - "match_start": 5, - "match_end": 3, - "show_column": 4, - "display_filename": 8, - "colored": 6, - "print_first_filename": 2, - "sep": 8, - "output_func": 8, - "print_separator": 2, - "print_filename": 2, - "display_line_no": 4, - "print_line_no": 2, - "regex/go": 2, - "regex/Term": 2, - "substr": 2, - "/eg": 2, - "z/": 2, - "K/": 2, - "z//": 2, - "print_column_no": 2, - "scope": 4, - "around": 5, - "TOTAL_COUNT_SCOPE": 2, - "total_count": 10, - "get_total_count": 4, - "reset_total_count": 4, - "ors": 11, - "record": 3, - "separator": 4, - "show_total": 6, - "print_count": 4, - "print_count0": 2, - "filetypes_supported_set": 9, - "repo": 18, - "Repository": 11, - "next_resource": 6, - "tarballs_work": 4, - ".tar": 2, - ".gz": 2, - "Tar": 4, - "XXX": 4, - "Error": 2, - "checking": 2, - "needs_line_scan": 14, - "EXPAND_FILENAMES_SCOPE": 4, - "expand_filenames": 7, - "argv": 12, - "attr": 6, - "foreach": 13, - "pattern": 10, - "@results": 14, - "didn": 2, - "ve": 2, - "tried": 2, - "load": 2, - "GetAttributes": 2, - "we": 9, - "got": 2, - "expanded": 3, - "@what": 14, - "Assume": 2, - "start_point": 4, - "_match": 8, - "target": 6, - "invert_flag": 4, - "starting_point": 10, - "g_regex": 4, - "g_regex/": 6, - "Maybe": 2, - "is_interesting": 4, - "msg": 5, - "Unable": 2, - "FAIL": 12, - "confess": 2, - "Plugin": 2, - "@ISA": 2, - "could_be_binary": 4, - "opened": 1, - "id": 6, - "*STDIN": 2, - "size": 5, - "_000": 1, - "sysread": 1, - "regex/m": 1, - "readline": 1, - "nexted": 3, - "##": 79, - "configuration": 3, - "BASE_DIR": 1, - "CONFIG_FILE": 2, - "Config": 1, - "DEBUG_LOG_FILE": 2, - "writable": 2, - "nagios": 3, - "DEBUGLEVEL": 3, - "Nothing": 1, - "Errors": 1, - "Warnings": 1, - "Debug": 1, - "DEBUGOUTPUT": 8, - "STDERR": 5, - "STDOUT": 1, - "cgi": 4, - "Global": 1, - "vars": 1, - "DEBUG_TIMESTAMP": 5, - "Find": 1, - "ARGV": 5, - "test": 1, - "console": 1, - "read_config": 4, - "abort": 23, - "performance": 2, - "data": 5, - "started": 1, - "parse_perfdata": 2, - "script": 1, - "browser": 1, - "run_as_cgi": 2, - "info": 1, - "logfile": 1, - "blank": 2, - "wrote": 1, - "anything...": 1, - "Program": 1, - "graph_name": 18, - "graph_iteration": 6, - "config": 67, - "display": 2, - "index": 2, - "graphs": 3, - "display_htmltemplate": 3, - "graph": 4, - "HTML": 6, - "page": 1, - "generate": 1, - "rrdtool_cmdline": 11, - ".join": 5, - "expand": 1, - "variables": 1, - "rrdarchive": 1, - "f/": 1, - "rrdarchive/g": 1, - "t_start": 4, - "t_start/g": 1, - "t_end": 4, - "e/": 1, - "t_end/g": 1, - "t_descr": 3, - "d/": 1, - "t_descr/g": 1, - "Call": 1, - "rrdtool": 3, - "probably": 1, - "fixed": 1, - "better": 1, - "exec": 1, - "template": 3, - "substitution": 1, - "stuff": 1, - "": 1, - "regex..": 1, - "/my": 1, - "varname": 8, - "date": 3, - "localtime": 2, - "return_html": 4, - "gn": 2, - "return_html.": 2, - "escape": 1, - "slash": 1, - "inside": 1, - "displaying": 1, - "actual": 1, - "images": 1, - "iteration_id": 2, - "unknown": 1, - "/eig": 1, - "thought": 1, - "Process": 1, - "incoming": 1, - "check": 3, - "plugin": 1, - "insert": 1, - "rrd": 3, - "archives": 2, - "rrd_updates": 13, - "Provide": 1, - "symbolic": 1, - "macros": 1, - "LASTCHECK": 1, - "HOSTNAME": 2, - "SERVICEDESCR": 2, - "SERVICESTATE": 1, - "OUTPUT": 2, - "PERFDATA": 2, - "host_and_descr_found": 3, - "Loop": 4, - "host_regexes": 1, - "host_regex": 5, - "service_description_regexes": 1, - "service_regex": 4, - "host_regex/i": 1, - "service_regex/i": 1, - "InsertValue": 1, - "host": 1, - "service_description": 1, - "insert_value": 10, - "output/perfdata": 1, - "regex_string": 1, - "regex_string/": 2, - "Insert": 1, - "RRD": 3, - "calling": 1, - "several": 1, - "archive": 9, - "rrdarchive_filename": 3, - "Create": 1, - "Archive": 1, - "according": 1, - "rrdarchive_filename.": 3, - "rrdtool_cmdline.": 1, - "Check": 1, - "wheter": 1, - "Assemle": 1, - "Read": 1, - "CONFIG": 2, - "line_counter": 2, - "": 1, - "@args": 11, - "shellwords": 1, - "orig_confline": 1, - "uc": 1, - "INSERTVALUE": 1, - "rrd_filename": 2, - "rrdcreatetemplate": 4, - "hostname_regex": 4, - "servicedescr_regex": 4, - "regex_template": 3, - "verify": 3, - "service": 1, - "description": 2, - "s*": 1, - "#/": 1, - "comment": 1, - "row": 1, - "nuthin": 1, - "RRDToolPath": 1, - "PlotTemplate": 1, - "htmltemplate": 2, - "parameters..": 2, - "GraphTimeTemplate": 1, - "time_template": 2, - "@t_descr": 2, - "workaround": 1, - "RRDCreateTemplate": 1, - "ValueRegexTemplate": 1, - "template_name": 3, - "@regexes": 2, - "perfdata": 1, - "regex_what": 2, - "dsa_name": 2, - "RRDARCHIVEPATH": 1, - "HTMLTemplatePath": 1, - "GraphIndexTemplate": 1, - "GRAPH": 1, - "rrdfilename": 1, - "graphtimetemplate": 1, - "plottemplate": 1, - "Write": 1, - "output/logging": 1, - "timestamp": 1, - "msg.": 2, - "SHEBANG#!#! perl": 4, - "examples/benchmarks/fib.pl": 1, - "Fibonacci": 2, - "Benchmark": 1, - "Calculates": 1, - "Number": 1, - "": 1, - "unspecified": 1, - "fib": 4, - "N": 2, - "": 1, - "Test": 2, - "Base": 1, - "__DATA__": 1, - "Strict": 1, - "container": 1, - "functions": 2, - "Version": 1, - "serviceable": 1, - "parts": 1, - "inside.": 1, - "this.": 1, - "FUNCTIONS": 1, - "Reads": 1, - ".ackrc": 1, - "arguments.": 1, - "arguments": 2, - "tweaking.": 1, - "Go": 1, - "<--type-set>": 1, - "foo=": 1, - "<--type-add>": 1, - "xml=": 1, - "Remove": 1, - "supported": 1, - "Removes": 1, - "internal": 1, - "structures": 1, - "type_wanted.": 1, - "Standard": 1, - "pass": 1, - "": 1, - "descend_filter.": 1, - "true": 3, - "ones": 1, - "ignore.": 1, - "removes": 1, - "trailing": 1, - "argument": 1, - "<$filename>": 1, - "could": 2, - "be.": 1, - "": 1, - "filetype": 1, - "": 1, - "avoid": 1, - "a.": 1, - "false": 1, - "starting_line_no": 1, - "context": 1, - "Optimized": 1, - "True/False": 1, - "<$regex>": 1, - "<$one>": 1, - "stop": 1, - "first.": 1, - "<$ors>": 1, - "<\"\\n\">": 1, - "filename.": 1, - "was": 2, - "Minor": 1, - "housekeeping": 1, - "before": 1, - "go": 1, - "globs": 1, - "going": 1, - "pipe.": 1, - "Exit": 1, - "correct": 1, - "handed": 1, - "argument.": 1, - "Fast": 3, - "XML": 2, - "XS": 2, - "FindBin": 1, - "Bin": 3, - "#use": 1, - "lib": 2, - "_stop": 4, - "SIG": 3, - "nginx": 2, - "external": 2, - "fcgi": 2, - "Ext_Request": 1, - "FCGI": 1, - "*STDERR": 1, - "int": 2, - "conv": 2, - "use_attr": 1, - "indent": 1, - "xml_decl": 1, - "tmpl_path": 2, - "tmpl": 5, - "nick": 1, - "parent": 5, - "third_party": 1, - "artist_name": 2, - "venue": 2, - "event": 2, - "zA": 1, - "Z0": 1, - "Content": 2, - "application/xml": 1, - "charset": 2, - "utf": 2, - "hash2xml": 1, - "text/html": 1, - "nError": 1, - "M": 1, - "system": 1, - "Bar": 1, - "@array": 1 - }, - "Perl6": { - "my": 310, - "class": 32, - "Failure": 1, - "{": 623, - "...": 5, - "}": 617, - "role": 12, - "X": 47, - "Comp": 12, - "ControlFlow": 2, - "Exception": 13, - "has": 49, - "ex": 16, - ";": 1063, - "method": 61, - "backtrace": 1, - "(": 852, - ")": 871, - "Backtrace.new": 1, - "self": 19, - "multi": 6, - "Str": 29, - "D": 4, - "self.": 3, - "message.Str": 1, - "//": 6, - "gist": 5, - "str": 25, - "try": 12, - "message": 24, - "return": 71, - "if": 95, - "self.backtrace": 1, - "throw": 2, - "is": 271, - "hidden_from_backtrace": 10, - "nqp": 28, - "bindattr": 2, - "newexception": 1, - "unless": 18, - "isconcrete": 1, - "setpayload": 2, - "decont": 2, - "msg": 5, - "setmessage": 1, - "unbox_s": 1, - "msg.Str": 1, - "msg.defined": 1, - "rethrow": 2, - "resumable": 1, - "p6bool": 2, - "istrue": 1, - "atkey": 2, - "resume": 5, - "Mu": 7, - "else": 22, - "die": 12, - "fail": 5, - "self.throw": 1, - "Failure.new": 1, - "getlexcaller": 1, - "isnull": 1, - "-": 558, - "compile": 2, - "time": 11, - "False": 6, - "AdHoc": 1, - ".payload": 1, - ".payload.Str": 1, - "Numeric": 1, - ".payload.Numeric": 1, - "Method": 4, - "NotFound": 1, - ".method": 4, - ".typename": 2, - "Bool": 4, - ".private": 2, - "InvalidQualifier": 1, - ".invocant": 1, - ".qualifier": 1, - "type": 31, - "sub": 97, - "EXCEPTION": 1, - "|": 28, - "vm_ex": 5, - "shift": 3, - "p6argvmarray": 1, - "payload": 6, - "getpayload": 1, - "istype": 1, - "int": 1, - "getextype": 1, - "#": 57, - "parrot": 2, - "pir": 1, - "const": 1, - "EXCEPTION_METHOD_NOT_FOUND": 1, - "&&": 13, - "endif": 2, - "p6box_s": 1, - "getmessage": 1, - "/": 54, - ".*": 2, - ".": 27, - "+": 98, - "do": 2, - "NQPRoutine": 1, - "eval": 2, - "@END_PHASERS": 1, - "last": 8, - "loop": 3, - "construct": 4, - "next": 11, - "redo": 1, - "proceed": 1, - "when": 17, - "clause": 2, - "succeed": 1, - "take": 4, - "gather": 7, - "perl6": 1, - "handle": 3, - "exception": 1, - "control": 1, - ".from": 2, - ".to": 2, - ".name": 20, - ".target": 4, - ".path": 7, - "o": 10, - ".mode.fmt": 2, - "MSWin32": 4, - "t": 21, - "use": 55, - "unknown": 1, - "trait": 1, - "in": 24, - "a": 64, - ".declaring": 1, - "declaration.": 1, - "Can": 6, - ".type": 2, - ".subtype": 1, - "Argument": 2, - "": 2, - ".directive": 1, - ".char": 1, - "A": 15, - ".placeholder": 1, - "Variable": 2, - ".symbol": 4, - "@.suggestions": 3, - "[": 93, - "]": 92, - "used": 7, - "at": 4, - "line": 8, - "s": 10, - "@s.join": 1, - "symbol": 5, - "call": 7, - "it": 9, - ".new": 1, - "collides": 1, - "with": 30, - "constructor": 1, - ".when": 1, - "Parameter": 6, - "Default": 1, - "does": 23, - ".how": 1, - ".parameter": 7, - "Placeholder": 1, - ".right": 2, - "Twigil": 1, - ".twigil": 2, - "MultipleTypeConstraints": 1, - "WrongOrder": 1, - ".misplaced": 1, - ".after": 1, - "InvalidType": 1, - "@.suggestions.join": 1, - "Signature": 1, - "NameClash": 1, - "Private": 2, - "Permission": 1, - ".source": 2, - "package": 5, - ".calling": 1, - "Unqualified": 1, - "Bind": 5, - ".target.defined": 1, - "NativeType": 1, - "Slice": 2, - "ZenSlice": 1, - "Value": 1, - "Dynamic": 1, - ".what": 6, - "Syntax": 8, - "Name": 1, - "Null": 2, - "UnlessElse": 1, - "KeywordAsFunction": 1, - ".word": 1, - ".needparens": 2, - "Malformed": 2, - "Elsif": 1, - "qq": 11, - "In": 2, - "Perl": 3, - "please": 2, - "The": 7, - ".reserved": 1, - "reserved": 1, - ".instead": 1, - "not": 14, - "allowed": 5, - "on": 12, - "negated": 1, - "pair": 1, - "key": 7, - "Cannot": 14, - "declare": 3, - "numeric": 1, - "twigil": 1, - ".scope": 3, - "variable": 4, - "augment": 2, - "without": 2, - ".package": 2, - "because": 3, - "closed": 1, - "give": 1, - "arguments": 3, - "to": 45, - ".macro": 1, - "operator": 9, - "object.": 2, - "only": 3, - "supply": 1, - "an": 8, - "initialization": 1, - "value": 13, - "for": 111, - "single": 5, - "public": 1, - "attribute": 3, - "but": 6, - "this": 3, - "the": 33, - "case": 1, - "Opening": 1, - "bracket": 1, - "required": 1, - "comment": 3, - "begin": 6, - "pod": 106, - "Missing": 1, - ".join": 3, - "*PID": 1, - "*GID": 1, - "*EGID": 1, - "<'>": 1, - ".ors": 1, - "Unsupported": 2, - "of": 94, - "v": 10, - "%": 127, - "m": 4, - "where": 3, - "no": 4, - "object": 4, - "available": 5, - "Virtual": 1, - ".call": 1, - "may": 1, - "be": 10, - "partially": 1, - "constructed": 1, - "objects": 1, - ".variable": 1, - "Radix": 1, - ".radix": 1, - "out": 5, - "range": 3, - "Operators": 1, - "and": 21, - "are": 12, - "non": 3, - "associative": 1, - "require": 1, - "parenthesis": 1, - "Adverb": 1, - ".adverb": 1, - ".construct": 1, - "Unrecognized": 1, - "regex": 8, - "metacharacter": 1, - ".metachar": 1, - "must": 2, - "quoted": 2, - "match": 6, - "literally": 1, - "as": 8, - "invocant": 1, - "marker": 1, - "signature": 1, - "after": 3, - "first": 8, - "parameter": 2, - "add": 2, - "tokens": 1, - "category": 1, - "Preceding": 1, - "context": 1, - "expects": 1, - "term": 1, - "found": 1, - "infix": 2, - ".infix": 1, - "instead": 2, - "kind": 13, - "cannot": 4, - "have": 2, - "attributes": 1, - "you": 4, - "tried": 1, - "You": 1, - "here": 1, - "maybe": 2, - "routine": 8, - "PRE": 2, - "Precondition": 1, - "Postcondition": 1, - ".condition.trim": 1, - "Unable": 1, - "deduce": 1, - "sequence": 2, - ".sequence": 1, - "Routine": 2, - "Attempt": 1, - "outside": 1, - "any": 3, - ".expected.": 5, - "name": 42, - ".got.": 5, - "binding": 1, - "returning": 1, - "assignment": 1, - "Calling": 1, - "requires": 1, - "n": 13, - "will": 4, - "never": 1, - "work": 3, - "argument": 1, - "types": 3, - "Type": 1, - "check": 1, - "failed": 1, - ".action": 2, - "expected": 7, - "got": 19, - "modify": 1, - "immutable": 2, - ".redispatcher": 1, - "dynamic": 2, - "scope": 1, - "dispatcher": 5, - "container": 1, - "mix": 1, - "composable": 1, - ".rolish.": 1, - "into": 1, - ".target.": 2, - "inherit": 2, - "from": 16, - "unknown.": 1, - "nDid": 2, - "mean": 2, - "one": 4, - "these": 3, - "itself.": 1, - "already": 2, - "been": 1, - "exported": 1, - "Lists": 1, - "both": 1, - "side": 1, - "dwimmy": 1, - "hyperop": 1, - "&": 24, - ".operator.name": 1, - "same": 1, - "length": 2, - "left": 2, - ".left": 1, - "elems": 2, - "elements": 2, - "right": 2, - "coerce": 1, - ".thing.": 1, - "Set.": 1, - "To": 2, - "create": 2, - "element": 1, - "set": 1, - "pass": 5, - "function": 1, - "Invalid": 1, - "string": 14, - ".format": 1, - "Cannnot": 1, - "unit": 1, - ".unit": 1, - "Date.delta": 1, - "No": 3, - "compiler": 1, - "language": 5, - "Trying": 1, - "import": 2, - "following": 4, - "symbols": 1, - "missing": 2, - "convert": 1, - ".reason": 1, - "Divide": 1, - "by": 26, - "zero": 1, - "using": 3, - ".using": 1, - "pseudo": 1, - ".pseudo": 1, - "such": 2, - "index": 3, - ".aggregate.": 1, - ".index": 1, - "Ambiguous": 1, - "signatures": 2, - "all": 6, - "none": 1, - "access": 1, - "through": 1, - "CALLER": 1, - "declared": 1, - "c_ex": 10, - "TypeCheck": 3, - "Binding.new": 1, - ".throw": 7, - "": 1, - "Assignment.new": 1, - "Return.new": 2, - "": 1, - "Assignment": 1, - "RO.new.throw": 1, - "redispatcher": 2, - "NoDispatcher.new": 1, - "@ambiguous": 2, - "Multi": 2, - "Ambiguous.new": 1, - "NoMatch.new": 1, - "parrot_c_ex": 2, - "getattr": 1, - "EnumMap": 1, - "bindcurhllsym": 1, - "Test": 11, - "@results": 3, - "plan": 7, - "k": 9, - "copy": 2, - "x1": 4, - "x2": 4, - "x3": 4, - "x4": 5, - "x5": 4, - "B": 7, - "@": 17, - "<=>": 4, - "0": 2, - "results": 6, - "1": 3, - "i": 12, - "v6": 13, - "MIME": 2, - "Base64": 2, - "URI": 3, - "LWP": 1, - "Simple": 1, - "auth": 6, - "": 1, - "ver": 1, - "<0.085>": 1, - "our": 4, - "VERSION": 1, - "enum": 1, - "RequestType": 6, - "": 1, - "POST": 3, - ".default_encoding": 2, - ".class_default_encoding": 2, - "Buf": 4, - "crlf": 2, - "Buf.new": 2, - "http_header_end_marker": 2, - "Int": 6, - "constant": 1, - "default_stream_read_len": 3, - "*": 15, - "base64encode": 1, - "user": 5, - "mime": 1, - "new": 9, - "encoded": 2, - "mime.encode_base64": 1, - "get": 2, - "url": 21, - "self.request_shell": 3, - "GET": 1, - "post": 3, - "headers": 16, - "Any": 5, - "content": 25, - "request_shell": 1, - "rt": 5, - "scheme": 1, - "hostname": 4, - "port": 5, - "path": 17, - "self.parse_url": 1, - "": 1, - "": 1, - "": 1, - "base64enc": 1, - "self.base64encode": 1, - "": 1, - "": 1, - "content.defined": 2, - "content.encode.bytes": 1, - "status": 6, - "resp_headers": 12, - "resp_content": 9, - "self.make_request": 1, - "given": 8, - "<[12]>": 1, - "resp_headers.hash": 1, - "new_url": 3, - "": 1, - "#if": 1, - "redirects": 1, - "/200/": 1, - "": 4, - "": 3, - "<-[/;]>": 1, - "<[/]>": 1, - "": 2, - "<-[;]>": 2, - "eq": 17, - "||": 7, - "ecma": 1, - "java": 1, - "script": 1, - "json/": 1, - "charset": 4, - "/charset": 1, - "charset.Str": 1, - "resp_content.decode": 1, - "default": 5, - "parse_chunks": 1, - "Blob": 6, - "b": 39, - "rw": 10, - "IO": 4, - "Socket": 2, - "INET": 2, - "sock": 4, - "line_end_pos": 13, - "chunk_len": 8, - "chunk_start": 4, - "xx": 1, - "Blob.new": 1, - "while": 7, - "<": 15, - "b.bytes": 3, - "b.subbuf": 2, - "ne": 6, - ".decode": 2, - "<.xdigit>": 1, - ".Str": 1, - "True": 2, - "bytes": 2, - "say": 47, - "inner": 1, - "chunk": 13, - "subbuf": 2, - "2": 12, - "4": 9, - "remaining": 1, - "part": 1, - "len": 1, - "CRLF": 1, - "minus": 1, - "piece": 1, - "end": 6, - "buffer": 1, - "last_chunk_end_len": 4, - "sock.read": 7, - "min": 3, - "make_request": 1, - "host": 3, - "self.stringify_headers": 1, - "req_str": 3, - "rt.Stringy": 1, - "sock.send": 1, - "resp": 5, - "self.parse_response": 1, - "": 1, - "is_last_chunk": 4, - "resp_content_chunk": 3, - "self.parse_chunks": 2, - "next_chunk_start": 1, - "elsif": 6, - "": 3, - "resp_content.bytes": 2, - "bit": 1, - "hacky": 1, - "now": 4, - "should": 6, - "ok": 14, - "resp.bytes": 3, - "sock.close": 1, - "parse_response": 1, - "header": 3, - "header_end_pos": 7, - "resp.subbuf": 3, - "@header_lines": 2, - ".split": 2, - "r": 20, - "n/": 3, - "status_line": 2, - "@header_lines.shift": 1, - "header.item": 1, - ".item": 1, - "getprint": 1, - "self.get": 2, - "*OUT.write": 1, - "getstore": 1, - "filename": 4, - "defined": 5, - "fh": 6, - "open": 5, - "bin": 1, - "w": 4, - "fh.write": 1, - "fh.print": 1, - "fh.close": 1, - "parse_url": 1, - "u": 1, - "u.path_query": 1, - "user_info": 5, - "u.grammar.parse_result": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "u.scheme": 1, - "u.host": 2, - "u.port": 1, - "": 2, - "password": 1, - "Nil": 1, - "stringify_headers": 1, - "sort": 5, - "headers.keys": 1, - "_": 71, - "Bailador": 7, - "App": 1, - "Request": 2, - "Response": 1, - "Context": 1, - "HTTP": 2, - "Easy": 2, - "PSGI": 1, - "module": 4, - "app": 1, - "App.current": 1, - "file": 18, - "callframe": 1, - ".file": 1, - "slash": 4, - "file.rindex": 2, - "app.location": 2, - "file.substr": 1, - "route_to_regex": 2, - "route": 5, - "route.split": 1, - ".map": 9, - "_.substr": 1, - "q": 8, - "<-[\\/\\.]>": 1, - "parse_route": 4, - ".eval": 1, - "Pair": 2, - "x": 32, - "export": 21, - "p": 15, - "x.key": 2, - "x.value": 2, - "app.add_route": 2, - "request": 1, - "app.context.request": 1, - "content_type": 1, - "app.response.headers": 2, - "Cool": 1, - "code": 4, - "app.response.code": 1, - "template": 2, - "tmpl": 2, - "*@params": 1, - "app.template": 1, - "@params": 1, - "dispatch_request": 1, - "dispatch": 5, - "r.env": 1, - "env": 5, - "app.context.env": 1, - "app.find_route": 1, - "app.response.content": 2, - "r.value.": 2, - "match.list": 1, - "app.response": 1, - "psgi": 2, - ".psgi": 1, - "baile": 1, - "PSGI.new": 1, - ".app": 1, - ".run": 1, - "pugs": 25, - "emit": 5, - "MONKEY_TYPING": 1, - "description": 2, - "Tests": 2, - "statement": 2, - "This": 3, - "attempts": 1, - "test": 2, - "many": 1, - "variations": 1, - "possible": 1, - "##": 6, - "foreach": 1, - "times_run": 2, - "eval_dies_ok": 8, - "plain": 2, - "old": 1, - "w/out": 2, - "parens": 4, - "..": 20, - "todo": 15, - "niecza": 6, - "skip": 12, - "@a": 38, - "@b": 4, - "zip": 1, - "y": 10, - "d": 17, - ".sign": 1, - "around": 2, - "e": 17, - "f": 13, - ".lc": 2, - "variables": 1, - "topic": 4, - "j": 4, - "@array": 9, - "@array_k": 2, - "@array_l": 2, - "l": 9, - "@array_o": 2, - "@array_p": 2, - "@elems": 6, - "": 6, - "c": 52, - "push": 6, - "@e": 6, - "<1>": 9, - "3": 10, - "<->": 2, - "elem": 8, - "<2>": 3, - "5": 8, - "second": 4, - "<3>": 1, - "6": 3, - "@array_s": 3, - "@s": 4, - "@array_t": 3, - "@t": 5, - "val": 13, - "@array_v": 2, - "@v": 2, - "@array_v.values": 1, - "@array_kv": 2, - "@kv": 2, - "@array_kv.kv": 1, - "hash_v": 2, - "hash_v.values": 1, - "hash_kv": 2, - "kv": 2, - "hash_kv.kv": 1, - "TestClass": 1, - ".key": 5, - "@array1": 6, - "TestClass.new": 6, - "sum1": 6, - "@array1.map": 3, - "_.key": 4, - "#L": 1, - "S04/The": 1, - "C": 22, - "": 1, - "statement/implicit": 1, - "block": 20, - "read/write": 1, - "_.WHAT.gist": 3, - "Int.gist": 1, - "Array.gist": 2, - "h": 4, - "output": 13, - "grep": 5, - "@array.sort": 2, - "#my": 1, - "#is": 1, - "#diag": 1, - "rakudo": 3, - "x*": 2, - "<4>": 1, - "res": 5, - "Z": 7, - "q*": 1, - "w*": 1, - "e*": 1, - "r*": 1, - "Inf": 2, - "EVAL": 8, - "/C": 1, - "style/": 1, - "/for/": 1, - "/loop/": 1, - "parsed": 10, - "rt71268": 3, - "lives_ok": 2, - "diag": 3, - "foo": 6, - "#OK": 1, - "**": 3, - "@rt113026": 3, - "iter": 4, - "@rt113026.push": 1, - "7": 2, - "8": 1, - "9": 3, - "10": 1, - "dies_ok": 2, - "fmt": 1, - "Foo": 1, - "@.items": 3, - "check_items": 1, - "item": 11, - "self.check_items": 1, - ".say": 1, - "Foo.new": 1, - "items": 3, - ".foo": 1, - "BEGIN": 3, - "@*INC.push": 2, - "SHEBANG#!perl": 2, - "http": 1, - "verb": 1, - "I": 3, - "there": 2, - "even": 1, - "specialer": 1, - "nesting": 1, - "trying": 1, - "mixed": 1, - "delimiters": 1, - "": 1, - "arbitrary": 2, - "delimiter": 2, - "Hooray": 1, - "": 1, - "whitespace": 6, - "<<": 30, - "more": 1, - "strings": 2, - "hash": 4, - "Hash.new": 1, - "Here": 2, - "highlighted": 1, - "table": 1, - "Of": 2, - "things": 1, - "declarator": 7, - "keyword": 7, - "like": 10, - "Another": 2, - "brace": 1, - "More": 2, - "blocks": 2, - "don": 2, - "Rob": 1, - "food": 1, - "something": 1, - "some": 2, - "stuff": 1, - "chars": 1, - "": 1, - "": 1, - "roleq": 1, - "weather": 4, - "probability": 4, - "fib": 4, - "Card": 2, - "bend": 1, - "fold": 1, - "mutilate": 1, - "punch": 2, - "card": 2, - "actions": 5, - ".bend": 1, - ".fold": 1, - ".mutilate": 1, - "@list": 5, - "castle": 2, - "full": 2, - "vowels": 2, - "<[aeiou]>": 1, - "/phantom/": 1, - "#Test": 1, - "DNA": 1, - "liner": 1, - "result": 5, - "": 1, - "CG": 1, - ".pick.comb.pick": 1, - "map": 5, - "*sin": 1, - "_/2": 1, - "sprintf": 1, - "done": 2, - "kwid": 2, - "DESCRIPTION": 2, - "that": 3, - "List": 1, - "quoting": 1, - "parser": 1, - "properly": 2, - "ignores": 1, - "lists.": 1, - "becomes": 1, - "important": 1, - "your": 1, - "endings": 1, - "x0d": 1, - "x0a.": 1, - "Characters": 1, - "ignored": 1, - "x20": 1, - "Most": 1, - "likely": 1, - "more.": 1, - "James": 1, - "tells": 1, - "me": 1, - "maximum": 1, - "Unicode": 1, - "char": 1, - "x10FFFF": 1, - "so": 3, - "we": 1, - "simply": 1, - "re": 1, - "list": 4, - "via": 1, - "IsSpace": 1, - "or": 4, - "fly.": 1, - "course": 1, - "contain": 1, - "whitespace.": 1, - "<\\xA0>": 1, - "specifically": 1, - "": 1, - "character": 1, - "thus": 1, - "": 1, - "break": 1, - "list.": 1, - "PUGS_BACKEND": 1, - "skip_rest": 2, - "exit": 2, - "@separators": 1, - "@nonseparators": 1, - "xa0": 3, - "<$sep\">": 1, - "join": 5, - "sep": 3, - "<\">": 1, - "split": 2, - "really": 1, - "empty": 1, - "handling": 1, - "I.": 1, - "Multiple": 1, - "<-I>": 1, - "switches": 1, - "supposed": 1, - "prepend": 1, - "Ifoo": 1, - "Ibar": 1, - "make": 1, - "<@*INC>": 3, - "look": 1, - "bar": 1, - "Duplication": 1, - "directories": 1, - "command": 9, - "mirrored": 1, - "": 1, - "Ilib": 2, - "": 1, - "entries": 1, - "": 1, - "fragment": 1, - "@tests": 2, - "@tests*2": 1, - "redir": 2, - "*EXECUTABLE_NAME": 1, - "*OS": 1, - "": 1, - "mingw": 1, - "msys": 1, - "cygwin": 1, - "nonce": 2, - ".pick": 1, - "run_pugs": 3, - "tempfile": 3, - "run": 1, - "slurp": 3, - "unlink": 1, - "@dirs": 9, - "chomp": 2, - "substr": 4, - "@got": 8, - "@expected": 4, - "Pod": 18, - "HTML": 1, - "Escape": 1, - "lib": 1, - "Perl6": 7, - "TypeGraph": 4, - "Viz": 1, - "Documentable": 2, - "Registry": 1, - "*DEBUG": 5, - "tg": 3, - "methods": 8, - "footer": 4, - "html": 7, - "head": 2, - "": 2, - "rel=": 2, - "href=": 3, - "type=": 2, - "media=": 1, - "title=": 1, - "munge": 2, - "<[a..z]>": 2, - "m/": 6, - "<[A..Z]>": 3, - "<[[\\w'-]>": 1, - "p2h": 9, - "pod2html": 1, - "Block": 10, - "level": 11, - "leading": 2, - "confs": 3, - "@chunks": 5, - "": 1, - "caption": 1, - "thing": 3, - "pod.": 2, - "Iterable": 1, - "thing.perl": 1, - "thing.Str": 1, - "confs.perl": 1, - "pod.content.list": 1, - "@chunks.push": 3, - "c.indent": 1, - "Positional": 1, - "c.map": 1, - "*.": 1, - "@chunks.join": 1, - "recursive": 2, - "dir": 6, - "@todo": 2, - "@todo.shift": 1, - "f.f": 1, - "@todo.push": 1, - "f.path": 1, - "@pod": 3, - "Code": 1, - ".content.grep": 1, - "MAIN": 2, - "debug": 3, - "typegraph": 2, - "": 2, - "images": 3, - "op": 10, - "prefix": 1, - "postfix": 1, - "circumfix": 1, - "postcircumfix": 1, - "listop": 2, - "mkdir": 1, - ".IO": 1, - "@source": 5, - ".grep": 5, - ".f": 1, - "rx": 2, - ".pod": 2, - ".path.subst": 1, - ".subst": 2, - "g": 3, - "TypeGraph.new": 1, - "tg.sorted.kv.flat.reverse": 1, - "dr": 17, - "Registry.new": 1, - "num": 2, - "podname": 12, - ".value": 1, - "what": 13, - "printf": 1, - "file.path": 2, - "write": 20, - "dr.compose": 1, - "disambiguation": 4, - "files": 6, - "graph": 2, - "force": 3, - "search": 2, - "seen": 9, - "dr.lookup": 11, - "": 10, - ".list": 5, - "d.name": 2, - "print": 3, - "spurt": 10, - "chunks": 4, - "pod.content": 2, - "Heading": 4, - ".level": 2, - "b.level": 2, - "heading": 10, - ".content": 4, - "pre": 1, - "circum": 1, - "postcircum": 1, - "fix": 2, - "heading.split": 1, - "dr.add": 4, - "": 1, - "subkind": 6, - "complete": 4, - "": 1, - "pod.content.push": 11, - "Named.new": 3, - "link": 24, - "@mro": 2, - "t.mro": 1, - "@mro.shift": 1, - "current": 13, - "taken": 1, - "care": 1, - "t.roles": 1, - "r.name": 2, - "c.name": 2, - "c.roles": 1, - "s/": 2, - ".push": 4, - "counter": 4, - ".lines": 1, - "ms/": 1, - "counter.keys": 1, - "": 1, - "qualified": 2, - "": 1, - "origin": 1, - "*@elems": 1, - "@current": 8, - "@current.push": 2, - "title": 14, - "*@blocks": 1, - "Array.new": 1, - "Para.new": 3, - "@blocks.flat": 1, - "@content": 4, - "text": 5, - "FormattingCode.new": 1, - "Item.new": 1, - "Heading.new": 1, - "dest": 1, - "dest.e": 1, - "dest.modified": 1, - ".path.modified": 1, - "tg.sorted": 1, - "viz": 6, - "Viz.new": 2, - "viz.to": 4, - "format": 4, - "size": 3, - "group": 9, - "tg.sorted.classify": 1, - "": 1, - "tg.types": 2, - "": 1, - "group.kv": 1, - "@types": 2, - "dot": 1, - "hints": 3, - "rank": 1, - "type.name": 2, - "@items": 1, - "raw": 1, - "raw.substr": 1, - "@items.push": 4, - ".sort": 6, - "escape": 5, - "s.trans": 1, - "": 1, - "<\\\\/>": 1, - "label": 1, - "@items.join": 1, - "template.subst": 1, - "operator_disambiguation_file_written": 3, - "dr.grouped": 1, - ".kv": 2, - "p.elems": 1, - "p.": 1, - "Array": 1, - "p.origin": 2, - "p.url": 4, - "o.human": 4, - "o.name": 4, - "o.url": 4, - "p.map": 1, - ".origin": 2, - ".human": 4, - ".url": 7, - ".kind": 2, - ".classify": 1, - "@ops": 3, - "@ops.map": 1, - "doc": 1, - "doc.subkind": 1, - "doc.name": 1, - "doc.pod": 1, - "@docs": 2, - "": 1, - "@subkinds": 4, - ".subkind": 1, - ".defined": 1, - "@docs.map": 1, - ".origin.name": 2, - ".origin.url": 1, - ".pod.list": 1, - "state": 1, - "dt": 3, - "DateTime.now": 1, - "
": 1, - "id=": 1, - "

": 2, - "Generated": 1, - "sources": 1, - "perl6/doc": 1, - "github": 1, - "": 1, - "

": 2, - "progress": 1, - "document": 1, - "known": 1, - "incomplete.": 1, - "Your": 1, - "contribution": 1, - "appreciated.": 1, - "
": 1, - "ContainsUnicode": 1, - "uc": 1, - "@things": 2, - "separator": 2, - ".uc.join": 1, - "date": 95, - "year": 36, - "month": 27, - "day": 4, - "Date.new": 1, - "dtim": 36, - "DateTime.new": 2, - "hour": 2, - "minute": 1, - ".truncated": 15, - "week": 50, - "truncated": 1, - "dt.truncated": 1, - "truncated.gist": 1, - ".day": 56, - ".week.join": 18, - ".week": 12, - "number": 6, - ".weekday": 13, - ".days": 6, - "nok": 6, - ".is": 9, - "leap": 9, - "Spec": 2, - "Win32": 1, - "Unix": 1, - "<[\\/>": 1, - "notslash": 1, - "<-[\\/>": 1, - "driveletter": 1, - "<[A..Z>": 1, - "z": 1, - "UNCpath": 1, - "<$slash>": 8, - "<$notslash>": 3, - "volume_rx": 1, - "<$driveletter>": 4, - "<$UNCpath>": 2, - "canonpath": 1, - "parent": 3, - "canon": 2, - "cat": 2, - "catdir": 1, - "volume": 9, - "directory": 5, - "basename": 2, - "": 1, - "relative": 1, - "foo.txt": 1, - "volume.chars": 1, - "directory.chars": 1, - "vol": 4, - "self.splitpath": 5, - "base": 11, - "base.defined": 1, - "*CWD": 3, - "self.canonpath": 3, - "Cwd": 2, - "getdcwd": 2, - "self.is": 1, - "absolute": 1, - "self.rel2abs": 1, - "path_directories": 2, - "path_file": 2, - "base_volume": 2, - "base_directories": 2, - "nofile": 1, - "self.catpath": 1, - "self.catdir": 1, - "*@rest": 1, - "volume.": 1, - "subst": 3, - "JSON": 4, - "Tiny": 3, - "Grammar": 1, - "Q": 29, - "true": 5, - "false": 3, - "null": 1, - "E": 1, - "E66": 1, - "controls": 1, - "alpha": 1, - "abcdefghijklmnopqrstuvwyz": 1, - "ALPHA": 1, - "ABCDEFGHIJKLMNOPQRSTUVWYZ": 1, - "digit": 2, - "special": 1, - "@#": 1, - "./": 1, - "can": 2, - "rosebud": 1, - "Not": 1, - "too": 1, - "deep": 1, - "Pattern": 1, - "pass3": 1, - "outermost": 1, - "array.": 1, - "It": 2, - "glossary": 2, - "example": 1, - "GlossDiv": 1, - "S": 1, - "GlossList": 1, - "GlossEntry": 1, - "ID": 1, - "SGML": 3, - "SortAs": 1, - "GlossTerm": 1, - "Standard": 1, - "Generalized": 1, - "Markup": 1, - "Language": 1, - "Acronym": 1, - "Abbrev": 1, - "ISO": 1, - "GlossDef": 1, - "para": 1, - "meta": 1, - "markup": 3, - "languages": 1, - "DocBook.": 1, - "GlossSeeAlso": 1, - "GML": 1, - "XML": 1, - "GlossSee": 1, - "menu": 1, - "id": 1, - "File": 1, - "popup": 1, - "menuitem": 1, - "New": 1, - "onclick": 3, - "CreateNewDoc": 1, - "Open": 1, - "OpenDoc": 1, - "Close": 1, - "CloseDoc": 1, - "widget": 1, - "window": 1, - "Sample": 1, - "Konfabulator": 1, - "Widget": 1, - "main_window": 1, - "width": 3, - "height": 3, - "image": 1, - "src": 1, - "Images/Sun.png": 1, - "sun1": 1, - "hOffset": 2, - "vOffset": 2, - "alignment": 2, - "center": 2, - "data": 1, - "Click": 1, - "style": 1, - "bold": 3, - "text1": 1, - "onMouseUp": 1, - "sun1.opacity": 2, - "implement": 1, - "stinkin": 1, - "quote": 2, - "<[\"\\ttab\\tcharacter>": 1, - "unquoted_key": 1, - "@n": 2, - "desc": 6, - "n.*": 2, - "Grammar.parse": 2, - "test_lines": 3, - "@lines": 8, - "SHEBANG#!#!rakudo": 1, - "@lines.elems": 1, - "count": 3, - "fh.eof": 1, - "fh.get": 1, - "x.defined": 1, - "fh.lines": 2, - "token": 6, - "stopper": 2, - "backslash": 3, - "sym": 3, - "<\\\\>": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "tweak_q": 1, - "self.panic": 2, - "tweak_qq": 1, - "b1": 1, - "c1": 1, - "s1": 1, - "a1": 1, - "h1": 1, - "f1": 1, - "Too": 2, - "late": 2, - "Math": 2, - "Model": 1, - "RungeKutta": 1, - "SVG": 3, - "Plot": 1, - ".derivatives": 2, - ".variables": 4, - ".initials": 4, - "@.captures": 3, - "inv": 2, - "derivatives.invert": 1, - "deriv": 7, - "names": 11, - "inv.keys": 1, - "keying": 1, - "values": 12, - ".results": 1, - "@.time": 1, - ".numeric": 2, - "error": 2, - "param": 3, - "c.signature.params": 1, - ".substr": 1, - "params": 3, - ".hash": 1, - "topo": 6, - "@vars": 4, - "@order": 2, - "inv.exists": 2, - ".variables.exists": 2, - "@order.push": 1, - "integrate": 2, - "resolution": 2, - "verbose": 2, - "d.key": 2, - ".initials.exists": 1, - "d.value": 1, - "
": 1, - "": 1, - "compatVersion=": 1, - "": 1, - "FreeMedForms": 1, - "": 1, - "": 1, - "C": 1, - "by": 14, - "Eric": 1, - "MAEKER": 1, - "MD": 1, - "": 1, - "": 1, - "GPLv3": 1, - "": 1, - "": 1, - "Patient": 1, - "data": 2, - "": 1, - "The": 75, - "XML": 1, - "form": 1, - "loader/saver": 1, - "FreeMedForms.": 1, - "": 1, - "//www.freemedforms.com/": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "ReactiveUI": 2, - "": 1, - "": 1, - "": 120, - "IObservedChange": 5, - "generic": 3, - "interface": 4, - "that": 94, - "replaces": 1, - "non": 1, - "PropertyChangedEventArgs.": 1, - "Note": 7, - "it": 16, - "used": 19, - "both": 2, - "Changing": 5, - "i.e.": 23, - "Changed": 4, - "Observables.": 2, - "In": 6, - "future": 2, - "will": 65, - "be": 57, - "Covariant": 1, - "which": 12, - "allow": 1, - "simpler": 1, - "casting": 1, - "between": 15, - "changes.": 2, - "": 120, - "object": 42, - "has": 16, - "raised": 1, - "change.": 12, - "name": 7, - "property": 74, - "changed": 18, - "on": 35, - "Sender.": 1, - "value": 44, - "changed.": 9, - "IMPORTANT": 1, - "NOTE": 1, - "often": 3, - "not": 9, - "set": 41, - "performance": 1, - "reasons": 1, - "unless": 1, - "you": 20, - "have": 17, - "explicitly": 1, - "requested": 1, - "an": 88, - "Observable": 56, - "via": 8, - "method": 34, - "such": 5, - "as": 25, - "ObservableForProperty.": 1, - "To": 4, - "retrieve": 3, - "use": 5, - "Value": 3, - "extension": 2, - "method.": 2, - "IReactiveNotifyPropertyChanged": 6, - "represents": 4, - "extended": 1, - "version": 3, - "INotifyPropertyChanged": 1, - "also": 17, - "exposes": 1, - "IEnableLogger": 1, - "dummy": 1, - "attaching": 1, - "any": 11, - "class": 11, - "give": 1, - "access": 3, - "Log": 2, - "When": 5, - "called": 5, - "fire": 11, - "change": 26, - "notifications": 22, - "neither": 3, - "traditional": 3, - "nor": 3, - "until": 7, - "return": 11, - "disposed.": 3, - "": 36, - "An": 26, - "when": 38, - "disposed": 4, - "reenables": 3, - "notifications.": 5, - "": 36, - "Represents": 4, - "fires": 6, - "*before*": 2, - "about": 5, - "should": 10, - "duplicate": 2, - "if": 27, - "same": 8, - "multiple": 6, - "times.": 4, - "*after*": 2, - "TSender": 1, - "helper": 5, - "adds": 2, - "typed": 2, - "versions": 2, - "Changed.": 1, - "IReactiveCollection": 3, - "collection": 27, - "can": 11, - "notify": 3, - "its": 4, - "contents": 2, - "are": 13, - "either": 1, - "items": 27, - "added/removed": 1, - "or": 24, - "itself": 2, - "changes": 13, - ".": 20, - "important": 6, - "implement": 5, - "Changing/Changed": 1, - "from": 12, - "semantically": 3, - "Fires": 14, - "added": 6, - "once": 4, - "per": 2, - "item": 19, - "added.": 4, - "Functions": 2, - "add": 2, - "AddRange": 2, - "provided": 14, - "was": 6, - "before": 8, - "going": 4, - "collection.": 6, - "been": 5, - "removed": 4, - "providing": 20, - "removed.": 4, - "whenever": 18, - "number": 9, - "in": 45, - "new": 10, - "Count.": 4, - "previous": 2, - "Provides": 4, - "Item": 4, - "implements": 8, - "IReactiveNotifyPropertyChanged.": 4, - "only": 18, - "enabled": 8, - "ChangeTrackingEnabled": 2, - "True.": 2, - "Enables": 2, - "ItemChanging": 2, - "ItemChanged": 2, - "properties": 29, - "implementing": 2, - "rebroadcast": 2, - "through": 3, - "ItemChanging/ItemChanged.": 2, - "T": 1, - "type": 23, - "specified": 7, - "Observables": 4, - "IMessageBus": 1, - "act": 2, - "simple": 2, - "way": 2, - "ViewModels": 3, - "other": 9, - "objects": 4, - "communicate": 2, - "each": 7, - "loosely": 2, - "coupled": 2, - "way.": 2, - "Specifying": 2, - "messages": 22, - "go": 2, - "where": 4, - "done": 2, - "combination": 2, - "Type": 9, - "message": 30, - "well": 2, - "additional": 3, - "parameter": 6, - "unique": 12, - "string": 13, - "distinguish": 12, - "arbitrarily": 2, - "client.": 2, - "Listen": 4, - "provides": 6, - "Message": 2, - "RegisterMessageSource": 4, - "SendMessage.": 2, - "": 12, - "listen": 6, - "to.": 7, - "": 12, - "": 84, - "identical": 11, - "types": 10, - "one": 27, - "purpose": 10, - "leave": 10, - "null.": 10, - "": 83, - "Determins": 2, - "particular": 2, - "registered.": 2, - "message.": 1, - "posted": 3, - "Type.": 2, - "Registers": 3, - "representing": 20, - "stream": 7, - "send.": 4, - "Another": 2, - "part": 2, - "code": 4, - "then": 3, - "call": 5, - "Observable.": 6, - "subscribed": 2, - "sent": 2, - "out": 4, - "provided.": 5, - "Sends": 2, - "single": 2, - "using": 9, - "contract.": 2, - "Consider": 2, - "instead": 2, - "sending": 2, - "response": 2, - "events.": 2, - "actual": 2, - "send": 3, - "returns": 5, - "current": 10, - "logger": 2, - "allows": 15, - "log": 2, - "attached.": 1, - "structure": 1, - "representation": 1, - "memoizing": 2, - "cache": 14, - "evaluate": 1, - "function": 13, - "but": 7, - "keep": 1, - "recently": 3, - "evaluated": 1, - "parameters.": 1, - "Since": 1, - "mathematical": 2, - "sense": 1, - "key": 12, - "*always*": 1, - "maps": 1, - "corresponding": 2, - "value.": 2, - "calculation": 8, - "function.": 6, - "returned": 2, - "Constructor": 2, - "whose": 7, - "results": 6, - "want": 2, - "Tag": 1, - "user": 2, - "defined": 1, - "size": 1, - "maintain": 1, - "after": 1, - "old": 1, - "start": 1, - "thrown": 1, - "out.": 1, - "result": 3, - "gets": 1, - "evicted": 2, - "because": 2, - "Invalidate": 2, - "Evaluates": 1, - "returning": 1, - "cached": 2, - "possible": 1, - "pass": 2, - "optional": 2, - "parameter.": 1, - "Ensure": 1, - "next": 1, - "time": 3, - "queried": 1, - "called.": 1, - "all": 4, - "Returns": 5, - "values": 4, - "currently": 2, - "MessageBus": 3, - "bus.": 1, - "scheduler": 11, - "post": 2, - "RxApp.DeferredScheduler": 2, - "default.": 2, - "Current": 1, - "RxApp": 1, - "global": 1, - "object.": 3, - "ViewModel": 8, - "another": 3, - "Return": 1, - "instance": 2, - "type.": 3, - "registered": 1, - "ObservableAsPropertyHelper": 6, - "help": 1, - "backed": 1, - "read": 3, - "still": 1, - "created": 2, - "directly": 1, - "more": 16, - "ToProperty": 2, - "ObservableToProperty": 1, - "methods.": 2, - "so": 1, - "output": 1, - "chained": 2, - "example": 2, - "property.": 12, - "Constructs": 4, - "base": 3, - "on.": 6, - "action": 2, - "take": 2, - "typically": 1, - "t": 2, - "bindings": 13, - "null": 4, - "OAPH": 2, - "at": 2, - "startup.": 1, - "initial": 28, - "normally": 6, - "Dispatcher": 3, - "based": 9, - "last": 1, - "Exception": 1, - "steps": 1, - "taken": 1, - "ensure": 3, - "never": 3, - "complete": 1, - "fail.": 1, - "Converts": 2, - "automatically": 3, - "onChanged": 2, - "raise": 2, - "notification.": 2, - "equivalent": 2, - "convenient.": 1, - "Expression": 7, - "initialized": 2, - "backing": 9, - "field": 10, - "ReactiveObject": 11, - "ObservableAsyncMRUCache": 2, - "memoization": 2, - "asynchronous": 4, - "expensive": 2, - "compute": 1, - "MRU": 1, - "fixed": 1, - "limit": 5, - "cache.": 5, - "guarantees": 6, - "given": 11, - "flight": 2, - "subsequent": 1, - "requests": 4, - "wait": 3, - "first": 1, - "empty": 1, - "web": 6, - "image": 1, - "receives": 1, - "two": 1, - "concurrent": 5, - "issue": 2, - "WebRequest": 1, - "does": 1, - "mean": 1, - "request": 3, - "Concurrency": 1, - "limited": 1, - "maxConcurrent": 1, - "too": 1, - "many": 1, - "operations": 6, - "progress": 1, - "further": 1, - "queued": 1, - "slot": 1, - "available.": 1, - "performs": 1, - "asyncronous": 1, - "async": 3, - "CPU": 1, - "Observable.Return": 1, - "may": 1, - "result.": 2, - "*must*": 1, - "equivalently": 1, - "input": 2, - "being": 1, - "memoized": 1, - "calculationFunc": 2, - "depends": 1, - "varables": 1, - "than": 5, - "unpredictable.": 1, - "reached": 2, - "discarded.": 4, - "maximum": 2, - "regardless": 2, - "caches": 2, - "server.": 2, - "clean": 1, - "up": 25, - "manage": 1, - "disk": 1, - "download": 1, - "temporary": 1, - "folder": 1, - "onRelease": 1, - "delete": 1, - "file.": 1, - "run": 7, - "defaults": 1, - "TaskpoolScheduler": 2, - "Issues": 1, - "fetch": 1, - "operation.": 1, - "operation": 2, - "finishes.": 1, - "If": 6, - "immediately": 3, - "upon": 1, - "subscribing": 1, - "returned.": 2, - "provide": 2, - "synchronous": 1, - "AsyncGet": 1, - "resulting": 1, - "Works": 2, - "like": 2, - "SelectMany": 2, - "memoizes": 2, - "selector": 5, - "calls.": 2, - "addition": 3, - "no": 4, - "selectors": 2, - "running": 4, - "concurrently": 2, - "queues": 2, - "rest.": 2, - "very": 2, - "services": 2, - "avoid": 2, - "potentially": 2, - "spamming": 2, - "server": 2, - "hundreds": 2, - "requests.": 2, - "similar": 3, - "passed": 1, - "SelectMany.": 1, - "similarly": 1, - "ObservableAsyncMRUCache.AsyncGet": 1, - "must": 2, - "sense.": 1, - "flattened": 2, - "selector.": 2, - "overload": 2, - "useful": 2, - "making": 3, - "service": 1, - "several": 1, - "places": 1, - "paths": 1, - "already": 1, - "configured": 1, - "ObservableAsyncMRUCache.": 1, - "notification": 6, - "Attempts": 1, - "expression": 3, - "expression.": 1, - "entire": 1, - "able": 1, - "followed": 1, - "otherwise": 1, - "Given": 3, - "fully": 3, - "filled": 1, - "SetValueToProperty": 1, - "apply": 3, - "target.property": 1, - "This.GetValue": 1, - "observed": 1, - "onto": 1, - "convert": 2, - "stream.": 3, - "ValueIfNotDefault": 1, - "filters": 1, - "BindTo": 1, - "takes": 1, - "applies": 1, - "Conceptually": 1, - "child": 2, - "without": 1, - "checks.": 1, - "set.": 3, - "x.Foo.Bar.Baz": 1, - "disconnects": 1, - "binding.": 1, - "ReactiveCollection.": 1, - "ReactiveCollection": 1, - "existing": 3, - "list.": 2, - "list": 1, - "populate": 1, - "anything": 2, - "Change": 2, - "Tracking": 2, - "Creates": 3, - "adding": 2, - "completes": 4, - "optionally": 2, - "ensuring": 2, - "delay.": 2, - "withDelay": 2, - "leak": 2, - "Timer.": 2, - "always": 4, - "UI": 2, - "thread.": 3, - "put": 2, - "into": 2, - "populated": 4, - "faster": 2, - "delay": 2, - "Select": 3, - "item.": 3, - "creating": 2, - "collections": 1, - "updated": 1, - "respective": 1, - "Model": 1, - "updated.": 1, - "Collection.Select": 1, - "mirror": 1, - "ObservableForProperty": 14, - "ReactiveObject.": 1, - "unlike": 13, - "Selector": 1, - "classes": 2, - "INotifyPropertyChanged.": 1, - "monitor": 1, - "RaiseAndSetIfChanged": 2, - "Setter": 2, - "write": 2, - "assumption": 4, - "named": 2, - "RxApp.GetFieldNameForPropertyNameFunc.": 2, - "almost": 2, - "keyword.": 2, - "newly": 2, - "intended": 5, - "Silverlight": 2, - "WP7": 1, - "reflection": 1, - "cannot": 1, - "private": 1, - "field.": 1, - "Reference": 1, - "custom": 4, - "raiseAndSetIfChanged": 1, - "doesn": 1, - "x": 1, - "x.SomeProperty": 1, - "suffice.": 1, - "RaisePropertyChanging": 2, - "mock": 4, - "scenarios": 4, - "manually": 4, - "fake": 4, - "invoke": 4, - "raisePropertyChanging": 4, - "faking": 4, - "RaisePropertyChanged": 2, - "helps": 1, - "make": 2, - "them": 1, - "compatible": 1, - "Rx.Net.": 1, - "declare": 1, - "initialize": 1, - "derive": 1, - "properties/methods": 1, - "MakeObjectReactiveHelper.": 1, - "InUnitTestRunner": 1, - "attempts": 1, - "determine": 1, - "heuristically": 1, - "unit": 3, - "framework.": 1, - "we": 1, - "determined": 1, - "framework": 1, - "running.": 1, - "GetFieldNameForProperty": 1, - "convention": 2, - "GetFieldNameForPropertyNameFunc.": 1, - "needs": 1, - "found.": 1, - "name.": 1, - "DeferredScheduler": 1, - "schedule": 2, - "work": 2, - "normal": 2, - "mode": 2, - "DispatcherScheduler": 1, - "Unit": 1, - "Test": 1, - "Immediate": 1, - "simplify": 1, - "writing": 1, - "common": 1, - "tests.": 1, - "background": 1, - "modes": 1, - "TPL": 1, - "Task": 1, - "Pool": 1, - "Threadpool": 1, - "Set": 3, - "provider": 1, - "usually": 1, - "entry": 1, - "MessageBus.Current.": 1, - "override": 1, - "naming": 1, - "one.": 1, - "WhenAny": 12, - "observe": 12, - "constructors": 12, - "need": 12, - "setup.": 12, - "": 1, - "": 1 - }, - "XProc": { - "": 1, - "version=": 2, - "encoding=": 1, - "": 1, - "xmlns": 2, - "p=": 1, - "c=": 1, - "": 1, - "port=": 2, - "": 1, - "": 1, - "Hello": 1, - "world": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "": 1 - }, - "XQuery": { - "(": 38, - "-": 486, - "xproc.xqm": 1, - "core": 1, - "xqm": 1, - "contains": 1, - "entry": 2, - "points": 1, - "primary": 1, - "eval": 3, - "step": 5, - "function": 3, - "and": 3, - "control": 1, - "functions.": 1, - ")": 38, - "xquery": 1, - "version": 1, - "encoding": 1, - ";": 25, - "module": 6, - "namespace": 8, - "xproc": 17, - "declare": 24, - "namespaces": 5, - "p": 2, - "c": 1, - "err": 1, - "imports": 1, - "import": 4, - "util": 1, - "at": 4, - "const": 1, - "parse": 8, - "u": 2, - "options": 2, - "boundary": 1, - "space": 1, - "preserve": 1, - "option": 1, - "saxon": 1, - "output": 1, - "functions": 1, - "variable": 13, - "run": 2, - "run#6": 1, - "choose": 1, - "try": 1, - "catch": 1, - "group": 1, - "for": 1, - "each": 1, - "viewport": 1, - "library": 1, - "pipeline": 8, - "list": 1, - "all": 1, - "declared": 1, - "enum": 3, - "{": 5, - "": 1, - "name=": 1, - "ns": 1, - "": 1, - "}": 5, - "": 1, - "": 1, - "point": 1, - "stdin": 1, - "dflag": 1, - "tflag": 1, - "bindings": 2, - "STEP": 3, - "I": 1, - "preprocess": 1, - "let": 6, - "validate": 1, - "explicit": 3, - "AST": 2, - "name": 1, - "type": 1, - "ast": 1, - "element": 1, - "parse/@*": 1, - "sort": 1, - "parse/*": 1, - "II": 1, - "eval_result": 1, - "III": 1, - "serialize": 1, - "return": 2, - "results": 1, - "serialized_result": 2 - }, - "XSLT": { - "": 1, - "version=": 2, - "": 1, - "xmlns": 1, - "xsl=": 1, - "": 1, - "match=": 1, - "": 1, - "": 1, - "

": 1, - "My": 1, - "CD": 1, - "Collection": 1, - "

": 1, - "": 1, - "border=": 1, - "": 2, - "bgcolor=": 1, - "": 2, - "Artist": 1, - "": 2, - "": 1, - "select=": 3, - "": 2, - "": 1, - "
": 2, - "Title": 1, - "
": 2, - "": 2, - "
": 1, - "": 1, - "": 1, - "
": 1, - "
": 1 - }, - "Xojo": { - "#tag": 88, - "Report": 2, - "Begin": 23, - "BillingReport": 1, - "Compatibility": 2, - "Units": 1, - "Width": 3, - "PageHeader": 1, - "Type": 34, - "Height": 5, - "End": 27, - "Body": 1, - "PageFooter": 1, - "EndReport": 1, - "ReportCode": 1, - "EndReportCode": 1, - "Menu": 2, - "MainMenuBar": 1, - "MenuItem": 11, - "FileMenu": 1, - "SpecialMenu": 13, - "Text": 13, - "Index": 14, - "-": 14, - "AutoEnable": 13, - "True": 46, - "Visible": 41, - "QuitMenuItem": 1, - "FileQuit": 1, - "ShortcutKey": 6, - "Shortcut": 6, - "EditMenu": 1, - "EditUndo": 1, - "MenuModifier": 5, - "EditSeparator1": 1, - "EditCut": 1, - "EditCopy": 1, - "EditPaste": 1, - "EditClear": 1, - "EditSeparator2": 1, - "EditSelectAll": 1, - "UntitledSeparator": 1, - "AppleMenuItem": 1, - "AboutItem": 1, - "EndMenu": 1, - "Window": 2, - "Window1": 1, - "BackColor": 1, - "&": 1, - "cFFFFFF00": 1, - "Backdrop": 1, - "CloseButton": 1, - "Composite": 1, - "False": 14, - "Frame": 1, - "FullScreen": 1, - "FullScreenButton": 1, - "HasBackColor": 1, - "ImplicitInstance": 1, - "LiveResize": 1, - "MacProcID": 1, - "MaxHeight": 1, - "MaximizeButton": 1, - "MaxWidth": 1, - "MenuBar": 1, - "MenuBarVisible": 1, - "MinHeight": 1, - "MinimizeButton": 1, - "MinWidth": 1, - "Placement": 1, - "Resizeable": 1, - "Title": 1, - "PushButton": 1, - "HelloWorldButton": 2, - "AutoDeactivate": 1, - "Bold": 1, - "ButtonStyle": 1, - "Cancel": 1, - "Caption": 3, - "Default": 9, - "Enabled": 1, - "HelpTag": 3, - "InitialParent": 1, - "Italic": 1, - "Left": 1, - "LockBottom": 1, - "LockedInPosition": 1, - "LockLeft": 1, - "LockRight": 1, - "LockTop": 1, - "Scope": 4, - "TabIndex": 1, - "TabPanelIndex": 1, - "TabStop": 1, - "TextFont": 1, - "TextSize": 1, - "TextUnit": 1, - "Top": 1, - "Underline": 1, - "EndWindow": 1, - "WindowCode": 1, - "EndWindowCode": 1, - "Events": 1, - "Event": 1, - "Sub": 2, - "Action": 1, - "(": 7, - ")": 7, - "Dim": 3, - "total": 4, - "As": 4, - "Integer": 2, - "For": 1, - "i": 2, - "To": 1, - "+": 5, - "Next": 1, - "MsgBox": 3, - "Str": 1, - "EndEvent": 1, - "EndEvents": 1, - "ViewBehavior": 2, - "ViewProperty": 28, - "Name": 31, - "true": 26, - "Group": 28, - "InitialValue": 23, - "EndViewProperty": 28, - "EditorType": 14, - "EnumValues": 2, - "EndEnumValues": 2, - "EndViewBehavior": 2, - "dbFile": 3, - "FolderItem": 1, - "db": 1, - "New": 1, - "SQLiteDatabase": 1, - "GetFolderItem": 1, - "db.DatabaseFile": 1, - "If": 4, - "db.Connect": 1, - "Then": 1, - "db.SQLExecute": 2, - "_": 1, - "db.Error": 1, - "then": 1, - "db.ErrorMessage": 2, - "db.Rollback": 1, - "Else": 2, - "db.Commit": 1, - "Class": 3, - "Protected": 1, - "App": 1, - "Inherits": 1, - "Application": 1, - "Constant": 3, - "kEditClear": 1, - "String": 3, - "Dynamic": 3, - "Public": 3, - "#Tag": 5, - "Instance": 5, - "Platform": 5, - "Windows": 2, - "Language": 5, - "Definition": 5, - "Linux": 2, - "EndConstant": 3, - "kFileQuit": 1, - "kFileQuitShortcut": 1, - "Mac": 1, - "OS": 1, - "EndClass": 1, - "Toolbar": 2, - "MyToolbar": 1, - "ToolButton": 2, - "FirstItem": 1, - "Style": 2, - "SecondItem": 1, - "EndToolbar": 1 - }, - "Xtend": { - "package": 2, - "example2": 1, - "import": 7, - "org.junit.Test": 2, - "static": 4, - "org.junit.Assert.*": 2, - "class": 4, - "BasicExpressions": 2, - "{": 14, - "@Test": 7, - "def": 7, - "void": 7, - "literals": 5, - "(": 42, - ")": 42, - "//": 11, - "string": 1, - "work": 1, - "with": 2, - "single": 1, - "or": 1, - "double": 2, - "quotes": 1, - "assertEquals": 14, - "number": 1, - "big": 1, - "decimals": 1, - "in": 2, - "this": 1, - "case": 1, - "+": 6, - "*": 1, - "bd": 3, - "boolean": 1, - "true": 1, - "false": 1, - "getClass": 1, - "typeof": 1, - "}": 13, - "collections": 2, - "There": 1, - "are": 1, - "various": 1, - "methods": 2, - "to": 1, - "create": 1, - "and": 1, - "numerous": 1, - "extension": 2, - "which": 1, - "make": 1, - "working": 1, - "them": 1, - "convenient.": 1, - "val": 9, - "list": 1, - "newArrayList": 2, - "list.map": 1, - "[": 9, - "toUpperCase": 1, - "]": 9, - ".head": 1, - "set": 1, - "newHashSet": 1, - "set.filter": 1, - "it": 2, - ".size": 2, - "map": 1, - "newHashMap": 1, - "-": 5, - "map.get": 1, - "controlStructures": 1, - "looks": 1, - "like": 1, - "Java": 1, - "if": 1, - ".length": 1, - "but": 1, - "foo": 1, - "bar": 1, - "Never": 2, - "happens": 3, - "text": 2, - "never": 1, - "s": 1, - "cascades.": 1, - "Object": 1, - "someValue": 2, - "switch": 1, - "Number": 1, - "String": 2, - "loops": 1, - "for": 2, - "loop": 2, - "var": 1, - "counter": 8, - "i": 4, - "..": 1, - "while": 2, - "iterator": 1, - ".iterator": 2, - "iterator.hasNext": 1, - "iterator.next": 1, - "example6": 1, - "java.io.FileReader": 1, - "java.util.Set": 1, - "com.google.common.io.CharStreams.*": 1, - "Movies": 1, - "numberOfActionMovies": 1, - "movies.filter": 2, - "categories.contains": 1, - "yearOfBestMovieFrom80ies": 1, - ".contains": 1, - "year": 2, - ".sortBy": 1, - "rating": 3, - ".last.year": 1, - "sumOfVotesOfTop2": 1, - "long": 2, - "movies": 3, - "movies.sortBy": 1, - ".take": 1, - ".map": 1, - "numberOfVotes": 2, - ".reduce": 1, - "a": 2, - "b": 2, - "|": 2, - "_229": 1, - "new": 2, - "FileReader": 1, - ".readLines.map": 1, - "line": 1, - "segments": 1, - "line.split": 1, - "return": 1, - "Movie": 2, - "segments.next": 4, - "Integer": 1, - "parseInt": 1, - "Double": 1, - "parseDouble": 1, - "Long": 1, - "parseLong": 1, - "segments.toSet": 1, - "@Data": 1, - "title": 1, - "int": 1, - "Set": 1, - "": 1, - "categories": 1 - }, - "YAML": { - "gem": 1, - "-": 25, - "local": 1, - "gen": 1, - "rdoc": 2, - "run": 1, - "tests": 1, - "inline": 1, - "source": 1, - "line": 1, - "numbers": 1, - "gempath": 1, - "/usr/local/rubygems": 1, - "/home/gavin/.rubygems": 1, - "http_interactions": 1, - "request": 1, - "method": 1, - "get": 1, - "uri": 1, - "http": 1, - "//example.com/": 1, - "body": 3, - "headers": 2, - "{": 1, - "}": 1, - "response": 2, - "status": 1, - "code": 1, - "message": 1, - "OK": 1, - "Content": 2, - "Type": 1, - "text/html": 1, - ";": 1, - "charset": 1, - "utf": 1, - "Length": 1, - "This": 1, - "is": 1, - "the": 1, - "http_version": 1, - "recorded_at": 1, - "Tue": 1, - "Nov": 1, - "GMT": 1, - "recorded_with": 1, - "VCR": 1 - }, - "Zephir": { - "extern": 1, - "zend_class_entry": 1, - "*test_router_exception_ce": 1, - ";": 91, - "ZEPHIR_INIT_CLASS": 2, - "(": 59, - "Test_Router_Exception": 2, - ")": 57, - "<": 2, - "php": 1, - "namespace": 4, - "Test": 4, - "Router": 3, - "class": 3, - "Exception": 4, - "extends": 1, - "{": 58, - "}": 52, - "#ifdef": 1, - "HAVE_CONFIG_H": 1, - "#include": 9, - "#endif": 1, - "": 1, - "": 1, - "": 1, - "": 1, - "ZEPHIR_REGISTER_CLASS_EX": 1, - "test": 1, - "router_exception": 1, - "zend_exception_get_default": 1, - "TSRMLS_C": 1, - "NULL": 1, - "return": 26, - "SUCCESS": 1, - "%": 10, - "#define": 1, - "MAX_FACTOR": 3, - "static": 1, - "long": 3, - "fibonacci": 4, - "n": 5, - "if": 39, - "else": 11, - "-": 25, - "+": 5, - "Cblock": 1, - "public": 22, - "function": 22, - "testCblock1": 1, - "int": 3, - "a": 6, - "testCblock2": 1, - "Route": 1, - "protected": 9, - "_pattern": 3, - "_compiledPattern": 3, - "_paths": 3, - "_methods": 5, - "_hostname": 3, - "_converters": 3, - "_id": 2, - "_name": 3, - "_beforeMatch": 3, - "__construct": 1, - "pattern": 37, - "paths": 7, - "null": 11, - "httpMethods": 6, - "this": 28, - "reConfigure": 2, - "let": 51, - "compilePattern": 2, - "var": 4, - "idPattern": 6, - "memstr": 10, - "str_replace": 6, - ".": 5, - "via": 1, - "extractNamedParams": 2, - "string": 6, - "char": 1, - "ch": 27, - "tmp": 4, - "matches": 5, - "boolean": 1, - "notValid": 5, - "false": 3, - "cursor": 4, - "cursorVar": 5, - "marker": 4, - "bracketCount": 7, - "parenthesesCount": 5, - "foundPattern": 6, - "intermediate": 4, - "numberMatches": 4, - "route": 12, - "item": 7, - "variable": 5, - "regexp": 7, - "strlen": 1, - "<=>": 5, - "0": 9, - "for": 4, - "in": 4, - "1": 3, - "substr": 3, - "break": 9, - "&&": 6, - "z": 2, - "Z": 2, - "true": 2, - "<='9')>": 1, - "_": 1, - "2": 2, - "continue": 1, - "[": 14, - "]": 14, - "moduleName": 5, - "controllerName": 7, - "actionName": 4, - "parts": 9, - "routePaths": 5, - "realClassName": 1, - "namespaceName": 1, - "pcrePattern": 4, - "compiledPattern": 4, - "extracted": 4, - "typeof": 2, - "throw": 1, - "new": 1, - "explode": 1, - "switch": 1, - "count": 1, - "case": 3, - "controller": 1, - "action": 1, - "array": 1, - "The": 1, - "contains": 1, - "invalid": 1, - "#": 1, - "array_merge": 1, - "//Update": 1, - "the": 1, - "s": 1, - "name": 5, - "*": 2, - "@return": 1, - "*/": 1, - "getName": 1, - "setName": 1, - "beforeMatch": 1, - "callback": 2, - "getBeforeMatch": 1, - "getRouteId": 1, - "getPattern": 1, - "getCompiledPattern": 1, - "getPaths": 1, - "getReversedPaths": 1, - "reversed": 4, - "path": 3, - "position": 3, - "setHttpMethods": 1, - "getHttpMethods": 1, - "setHostname": 1, - "hostname": 2, - "getHostname": 1, - "convert": 1, - "converter": 2, - "getConverters": 1 - }, - "Zimpl": { - "#": 2, - "param": 1, - "columns": 2, - ";": 7, - "set": 3, - "I": 3, - "{": 2, - "..": 1, - "}": 2, - "IxI": 6, - "*": 2, - "TABU": 4, - "[": 8, - "": 3, - "in": 5, - "]": 8, - "": 2, - "with": 1, - "(": 6, - "m": 4, - "i": 8, - "or": 3, - "n": 4, - "j": 8, - ")": 6, - "and": 1, - "abs": 2, - "-": 3, - "var": 1, - "x": 4, - "binary": 1, - "maximize": 1, - "queens": 1, - "sum": 2, - "subto": 1, - "c1": 1, - "forall": 1, - "do": 1, - "card": 2 - }, - "edn": { - "[": 24, - "{": 22, - "db/id": 22, - "#db/id": 22, - "db.part/db": 6, - "]": 24, - "db/ident": 3, - "object/name": 18, - "db/doc": 4, - "db/valueType": 3, - "db.type/string": 2, - "db/index": 3, - "true": 3, - "db/cardinality": 3, - "db.cardinality/one": 3, - "db.install/_attribute": 3, - "}": 22, - "object/meanRadius": 18, - "db.type/double": 1, - "data/source": 2, - "db.part/tx": 2, - "db.part/user": 17 - }, - "fish": { - "function": 6, - "eval": 5, - "-": 102, - "S": 1, - "d": 3, - "#": 18, - "If": 2, - "we": 2, - "are": 1, - "in": 2, - "an": 1, - "interactive": 8, - "shell": 1, - "should": 2, - "enable": 1, - "full": 4, - "job": 5, - "control": 5, - "since": 1, - "it": 1, - "behave": 1, - "like": 2, - "the": 1, - "real": 1, - "code": 1, - "was": 1, - "executed.": 1, - "don": 1, - "t": 2, - "do": 1, - "this": 1, - "commands": 1, - "that": 1, - "expect": 1, - "to": 1, - "be": 1, - "used": 1, - "interactively": 1, - "less": 1, - "wont": 1, - "work": 1, - "using": 1, - "eval.": 1, - "set": 49, - "l": 15, - "mode": 5, - "if": 21, - "status": 7, - "is": 3, - "else": 3, - "none": 1, - "end": 33, - "echo": 3, - "|": 3, - ".": 2, - "<": 1, - "&": 1, - "res": 2, - "return": 6, - "funced": 3, - "description": 2, - "editor": 7, - "EDITOR": 1, - "funcname": 14, - "while": 2, - "q": 9, - "argv": 9, - "[": 13, - "]": 13, - "switch": 3, - "case": 9, - "h": 1, - "help": 1, - "__fish_print_help": 1, - "e": 6, - "i": 5, - "set_color": 4, - "red": 2, - "printf": 3, - "(": 7, - "_": 3, - ")": 7, - "normal": 2, - "begin": 2, - ";": 7, - "or": 3, - "not": 8, - "test": 7, - "init": 5, - "n": 5, - "nend": 2, - "editor_cmd": 2, - "type": 1, - "f": 3, - "/dev/null": 2, - "fish": 3, - "z": 1, - "IFS": 4, - "functions": 5, - "fish_indent": 2, - "no": 2, - "indent": 1, - "prompt": 2, - "read": 1, - "p": 1, - "c": 1, - "s": 1, - "cmd": 2, - "TMPDIR": 2, - "/tmp": 1, - "tmpname": 8, - "%": 2, - "self": 2, - "random": 2, - "stat": 2, - "rm": 1, - "g": 1, - "configdir": 2, - "/.config": 1, - "XDG_CONFIG_HOME": 2, - "fish_function_path": 4, - "configdir/fish/functions": 1, - "__fish_sysconfdir/functions": 1, - "__fish_datadir/functions": 3, - "contains": 4, - "fish_complete_path": 4, - "configdir/fish/completions": 1, - "__fish_sysconfdir/completions": 1, - "__fish_datadir/completions": 3, - "/usr/xpg4/bin": 3, - "PATH": 6, - "path_list": 4, - "/bin": 1, - "/usr/bin": 1, - "/usr/X11R6/bin": 1, - "/usr/local/bin": 1, - "__fish_bin_dir": 1, - "USER": 1, - "root": 1, - "/sbin": 1, - "/usr/sbin": 1, - "/usr/local/sbin": 1, - "for": 1, - "fish_sigtrap_handler": 1, - "on": 2, - "signal": 1, - "TRAP": 1, - "scope": 1, - "shadowing": 1, - "breakpoint": 1, - "__fish_on_interactive": 2, - "event": 1, - "fish_prompt": 1, - "__fish_config_interactive": 1 - }, - "text": { - "Read": 1, - "me": 1, - "now": 1, - "the": 1, - "green": 1, - "potato": 1, - "la": 1, - "pomme": 1, - "de": 1, - "terre": 1, - "verte": 1 - }, - "wisp": { - ";": 199, - "#": 2, - "wisp": 6, - "Wisp": 13, - "is": 20, - "homoiconic": 1, - "JS": 17, - "dialect": 1, - "with": 6, - "a": 24, - "clojure": 2, - "syntax": 2, - "s": 7, - "-": 33, - "expressions": 6, - "and": 9, - "macros.": 1, - "code": 3, - "compiles": 1, - "to": 21, - "human": 1, - "readable": 1, - "javascript": 1, - "which": 3, - "one": 3, - "of": 16, - "they": 3, - "key": 3, - "differences": 1, - "from": 2, - "clojurescript.": 1, - "##": 2, - "data": 1, - "structures": 1, - "nil": 4, - "just": 3, - "like": 2, - "js": 1, - "undefined": 1, - "differenc": 1, - "that": 7, - "it": 10, - "shortcut": 1, - "for": 5, - "void": 2, - "(": 77, - ")": 75, - "in": 16, - "JS.": 2, - "Booleans": 1, - "booleans": 2, - "true": 6, - "/": 1, - "false": 2, - "are": 14, - "Numbers": 1, - "numbers": 2, - "Strings": 2, - "strings": 3, - "can": 13, - "be": 15, - "multiline": 1, - "Characters": 2, - "sugar": 1, - "single": 1, - "char": 1, - "Keywords": 3, - "symbolic": 2, - "identifiers": 2, - "evaluate": 2, - "themselves.": 1, - "keyword": 1, - "Since": 1, - "string": 1, - "constats": 1, - "fulfill": 1, - "this": 2, - "purpose": 2, - "keywords": 1, - "compile": 3, - "equivalent": 2, - "strings.": 1, - "window.addEventListener": 1, - "load": 1, - "handler": 1, - "invoked": 2, - "as": 4, - "functions": 8, - "desugars": 1, - "plain": 2, - "associated": 2, - "value": 2, - "access": 1, - "bar": 4, - "foo": 6, - "[": 22, - "]": 22, - "Vectors": 1, - "vectors": 1, - "arrays.": 1, - "Note": 3, - "Commas": 2, - "white": 1, - "space": 1, - "&": 6, - "used": 1, - "if": 7, - "desired": 1, - "Maps": 2, - "hash": 1, - "maps": 1, - "objects.": 1, - "unlike": 1, - "keys": 1, - "not": 4, - "arbitary": 1, - "types.": 1, - "{": 4, - "beep": 1, - "bop": 1, - "}": 4, - "optional": 2, - "but": 7, - "come": 1, - "handy": 1, - "separating": 1, - "pairs.": 1, - "b": 5, - "In": 5, - "future": 2, - "JSONs": 1, - "may": 1, - "made": 2, - "compatible": 1, - "map": 3, - "syntax.": 1, - "Lists": 1, - "You": 1, - "up": 1, - "lists": 1, - "representing": 1, - "expressions.": 1, - "The": 1, - "first": 4, - "item": 2, - "the": 9, - "expression": 6, - "function": 7, - "being": 1, - "rest": 7, - "items": 2, - "arguments.": 2, - "baz": 2, - "Conventions": 1, - "puts": 1, - "lot": 2, - "effort": 1, - "making": 1, - "naming": 1, - "conventions": 3, - "transparent": 1, - "by": 2, - "encouraning": 1, - "lisp": 1, - "then": 1, - "translating": 1, - "them": 1, - "dash": 1, - "delimited": 1, - "dashDelimited": 1, - "predicate": 1, - "isPredicate": 1, - "__privates__": 1, - "list": 2, - "vector": 1, - "listToVector": 1, - "As": 1, - "side": 2, - "effect": 1, - "some": 2, - "names": 1, - "expressed": 3, - "few": 1, - "ways": 1, - "although": 1, - "third": 2, - "expression.": 1, - "<": 1, - "number": 3, - "Else": 1, - "missing": 1, - "conditional": 1, - "evaluates": 2, - "result": 2, - "will": 6, - ".": 6, - "monday": 1, - "today": 1, - "Compbining": 1, - "everything": 1, - "an": 1, - "sometimes": 1, - "might": 1, - "want": 2, - "compbine": 1, - "multiple": 1, - "into": 2, - "usually": 3, - "evaluating": 1, - "have": 2, - "effects": 1, - "do": 4, - "console.log": 2, - "+": 9, - "Also": 1, - "special": 4, - "form": 10, - "many.": 1, - "If": 2, - "evaluation": 1, - "nil.": 1, - "Bindings": 1, - "Let": 1, - "containing": 1, - "lexical": 1, - "context": 1, - "simbols": 1, - "bindings": 1, - "forms": 1, - "bound": 1, - "their": 2, - "respective": 1, - "results.": 1, - "let": 2, - "c": 1, - "Functions": 1, - "fn": 15, - "x": 22, - "named": 1, - "similar": 2, - "increment": 1, - "also": 2, - "contain": 1, - "documentation": 1, - "metadata.": 1, - "Docstring": 1, - "metadata": 1, - "presented": 1, - "compiled": 2, - "yet": 1, - "comments": 1, - "function.": 1, - "incerement": 1, - "added": 1, - "makes": 1, - "capturing": 1, - "arguments": 7, - "easier": 1, - "than": 1, - "argument": 1, - "follows": 1, - "simbol": 1, - "capture": 1, - "all": 4, - "args": 1, - "array.": 1, - "rest.reduce": 1, - "sum": 3, - "Overloads": 1, - "overloaded": 1, - "depending": 1, - "on": 1, - "take": 2, - "without": 2, - "introspection": 1, - "version": 1, - "y": 6, - "more": 3, - "more.reduce": 1, - "does": 1, - "has": 2, - "variadic": 1, - "overload": 1, - "passed": 1, - "throws": 1, - "exception.": 1, - "Other": 1, - "Special": 1, - "Forms": 1, - "Instantiation": 1, - "type": 2, - "instantiation": 1, - "consice": 1, - "needs": 1, - "suffixed": 1, - "character": 1, - "Type.": 1, - "options": 2, - "More": 1, - "verbose": 1, - "there": 1, - "new": 2, - "Class": 1, - "Method": 1, - "calls": 3, - "method": 2, - "no": 1, - "different": 1, - "Any": 1, - "quoted": 1, - "prevent": 1, - "doesn": 1, - "t": 1, - "unless": 5, - "or": 2, - "macro": 7, - "try": 1, - "implemting": 1, - "understand": 1, - "use": 2, - "case": 1, - "We": 1, - "execute": 1, - "body": 4, - "condition": 4, - "defn": 2, - "Although": 1, - "following": 2, - "log": 1, - "anyway": 1, - "since": 1, - "exectued": 1, - "before": 1, - "called.": 1, - "Macros": 2, - "solve": 1, - "problem": 1, - "because": 1, - "immediately.": 1, - "Instead": 1, - "you": 1, - "get": 2, - "choose": 1, - "when": 1, - "evaluated.": 1, - "return": 1, - "instead.": 1, - "defmacro": 3, - "less": 1, - "how": 1, - "build": 1, - "implemented.": 1, - "define": 4, - "name": 2, - "def": 1, - "@body": 1, - "Now": 1, - "we": 2, - "above": 1, - "defined": 1, - "expanded": 2, - "time": 1, - "resulting": 1, - "diff": 1, - "program": 1, - "output.": 1, - "print": 1, - "message": 2, - ".log": 1, - "console": 1, - "Not": 1, - "macros": 2, - "via": 2, - "templating": 1, - "language": 1, - "available": 1, - "at": 1, - "hand": 1, - "assemble": 1, - "form.": 1, - "For": 2, - "instance": 1, - "ease": 1, - "functional": 1, - "chanining": 1, - "popular": 1, - "chaining.": 1, - "example": 1, - "API": 1, - "pioneered": 1, - "jQuery": 1, - "very": 2, - "common": 1, - "open": 2, - "target": 1, - "keypress": 2, - "filter": 2, - "isEnterKey": 1, - "getInputText": 1, - "reduce": 3, - "render": 2, - "Unfortunately": 1, - "though": 1, - "requires": 1, - "need": 1, - "methods": 1, - "dsl": 1, - "object": 1, - "limited.": 1, - "Making": 1, - "party": 1, - "second": 1, - "class.": 1, - "Via": 1, - "achieve": 1, - "chaining": 1, - "such": 1, - "tradeoffs.": 1, - "operations": 3, - "operation": 3, - "cons": 2, - "tagret": 1, - "enter": 1, - "input": 1, - "text": 1 - } - }, - "language_tokens": { - "ABAP": 1500, - "AGS Script": 2717, - "APL": 552, - "ATS": 4558, - "Agda": 376, - "Alloy": 1143, - "Ant Build System": 300, - "ApacheConf": 1449, - "Apex": 4408, - "AppleScript": 1862, - "Arduino": 20, - "AsciiDoc": 103, - "AspectJ": 324, - "Assembly": 886, - "AutoHotkey": 3, - "Awk": 544, - "BlitzBasic": 2065, - "BlitzMax": 40, - "Bluespec": 1298, - "Brightscript": 579, - "C": 65970, - "C#": 278, - "C++": 35139, - "CMake": 38, - "COBOL": 90, - "CSS": 43867, - "Ceylon": 49, - "Chapel": 9607, - "Cirru": 244, - "Clean": 1554, - "Clojure": 1899, - "CoffeeScript": 3026, - "ColdFusion": 131, - "ColdFusion CFC": 611, - "Common Lisp": 2289, - "Component Pascal": 825, - "Cool": 367, - "Coq": 18259, - "Creole": 134, - "Crystal": 1506, - "Cuda": 290, - "Cycript": 251, - "DM": 169, - "Dart": 74, - "Diff": 16, - "Dockerfile": 202, - "Dogescript": 30, - "E": 601, - "ECL": 281, - "Eagle": 30089, - "Elm": 628, - "Emacs Lisp": 1756, - "EmberScript": 45, - "Erlang": 2928, - "F#": 3281, - "FORTRAN": 192, - "Forth": 3956, - "Frege": 5564, - "G-code": 432, - "GAMS": 363, - "GAP": 9944, - "GAS": 133, - "GDScript": 1958, - "GLSL": 4321, - "Game Maker Language": 13310, - "Gnuplot": 1023, - "Golo": 4006, - "Gosu": 1008, - "Grace": 1381, - "Gradle": 80, - "Grammatical Framework": 10607, - "Graph Modeling Language": 21, - "Graphviz (DOT)": 575, - "Groff": 25, - "Groovy": 93, - "Groovy Server Pages": 91, - "HTML": 467, - "HTML+ERB": 213, - "Hack": 3249, - "Haml": 121, - "Handlebars": 69, - "Haskell": 302, - "Hy": 155, - "IDL": 418, - "IGOR Pro": 97, - "INI": 27, - "Idris": 148, - "Inform 7": 75, - "Ioke": 2, - "Isabelle": 136, - "JSON": 183, - "JSON5": 57, - "JSONLD": 18, - "JSONiq": 151, - "Jade": 3, - "Java": 8987, - "JavaScript": 78019, - "Julia": 247, - "KRL": 25, - "Kit": 6, - "Kotlin": 155, - "LFE": 1711, - "LOLCODE": 2786, - "LSL": 198, - "Lasso": 9849, - "Latte": 759, - "Less": 39, - "Liquid": 633, - "Literate Agda": 478, - "Literate CoffeeScript": 275, - "LiveScript": 123, - "Logos": 93, - "Logtalk": 36, - "LookML": 99, - "LoomScript": 624, - "Lua": 881, - "M": 23615, - "MTML": 93, - "Makefile": 50, - "Markdown": 1, - "Mask": 74, - "Mathematica": 1857, - "Matlab": 11942, - "Maven POM": 504, - "Max": 714, - "MediaWiki": 766, - "Mercury": 31096, - "Monkey": 207, - "Moocode": 5234, - "MoonScript": 1718, - "NSIS": 725, - "Nemerle": 17, - "NetLogo": 243, - "NewLisp": 1240, - "Nginx": 179, - "Nimrod": 1, - "Nit": 5282, - "Nix": 188, - "Nu": 116, - "OCaml": 382, - "Objective-C": 26518, - "Objective-C++": 6021, - "Omgrofl": 57, - "Opa": 28, - "Opal": 32, - "OpenCL": 144, - "OpenEdge ABL": 762, - "OpenSCAD": 67, - "Org": 358, - "Ox": 1006, - "Oxygene": 157, - "Oz": 116, - "PAWN": 3263, - "PHP": 20759, - "Pan": 130, - "Papyrus": 560, - "Parrot Assembly": 6, - "Parrot Internal Representation": 5, - "Pascal": 987, - "Perl": 20690, - "Perl6": 12283, - "PigLatin": 30, - "Pike": 1835, - "Pod": 658, - "PogoScript": 250, - "PostScript": 107, - "PowerShell": 12, - "Processing": 74, - "Prolog": 7254, - "Propeller Spin": 13519, - "Protocol Buffer": 63, - "Puppet": 103, - "PureScript": 1652, - "Python": 7222, - "QMake": 119, - "R": 1790, - "RAML": 83, - "RDoc": 279, - "RMarkdown": 19, - "Racket": 331, - "Ragel in Ruby Host": 593, - "Rebol": 533, - "Red": 816, - "RobotFramework": 483, - "Ruby": 4214, - "Rust": 3566, - "SAS": 93, - "SCSS": 39, - "SQF": 196, - "SQL": 1485, - "STON": 100, - "Sass": 28, - "Scala": 750, - "Scaml": 4, - "Scheme": 3515, - "Scilab": 69, - "Shell": 3651, - "ShellSession": 233, - "Shen": 3472, - "Slash": 187, - "Slim": 77, - "Smalltalk": 423, - "SourcePawn": 2080, - "Squirrel": 130, - "Standard ML": 6567, - "Stata": 3133, - "Stylus": 76, - "SuperCollider": 1987, - "Swift": 1128, - "SystemVerilog": 541, - "TXL": 213, - "Tcl": 1424, - "TeX": 8549, - "Tea": 3, - "Turing": 44, - "TypeScript": 109, - "UnrealScript": 2873, - "VCL": 545, - "VHDL": 42, - "Verilog": 3778, - "VimL": 34, - "Visual Basic": 581, - "Volt": 388, - "XC": 24, - "XML": 8523, - "XProc": 22, - "XQuery": 801, - "XSLT": 44, - "Xojo": 807, - "Xtend": 399, - "YAML": 77, - "Zephir": 1085, - "Zimpl": 123, - "edn": 227, - "fish": 636, - "text": 11, - "wisp": 1363 - }, - "languages": { - "ABAP": 1, - "AGS Script": 4, - "APL": 2, - "ATS": 10, - "Agda": 1, - "Alloy": 3, - "Ant Build System": 2, - "ApacheConf": 3, - "Apex": 6, - "AppleScript": 7, - "Arduino": 1, - "AsciiDoc": 3, - "AspectJ": 2, - "Assembly": 2, - "AutoHotkey": 1, - "Awk": 1, - "BlitzBasic": 3, - "BlitzMax": 1, - "Bluespec": 2, - "Brightscript": 1, - "C": 36, - "C#": 2, - "C++": 33, - "CMake": 1, - "COBOL": 4, - "CSS": 2, - "Ceylon": 1, - "Chapel": 5, - "Cirru": 9, - "Clean": 9, - "Clojure": 8, - "CoffeeScript": 9, - "ColdFusion": 1, - "ColdFusion CFC": 2, - "Common Lisp": 4, - "Component Pascal": 2, - "Cool": 2, - "Coq": 12, - "Creole": 1, - "Crystal": 3, - "Cuda": 2, - "Cycript": 1, - "DM": 1, - "Dart": 1, - "Diff": 1, - "Dockerfile": 1, - "Dogescript": 1, - "E": 6, - "ECL": 1, - "Eagle": 2, - "Elm": 3, - "Emacs Lisp": 2, - "EmberScript": 1, - "Erlang": 5, - "F#": 8, - "FORTRAN": 4, - "Forth": 15, - "Frege": 4, - "G-code": 4, - "GAMS": 1, - "GAP": 7, - "GAS": 1, - "GDScript": 4, - "GLSL": 8, - "Game Maker Language": 13, - "Gnuplot": 6, - "Golo": 27, - "Gosu": 5, - "Grace": 2, - "Gradle": 2, - "Grammatical Framework": 41, - "Graph Modeling Language": 1, - "Graphviz (DOT)": 2, - "Groff": 1, - "Groovy": 5, - "Groovy Server Pages": 4, - "HTML": 3, - "HTML+ERB": 2, - "Hack": 28, - "Haml": 2, - "Handlebars": 2, - "Haskell": 3, - "Hy": 2, - "IDL": 4, - "IGOR Pro": 2, - "INI": 2, - "Idris": 1, - "Inform 7": 2, - "Ioke": 1, - "Isabelle": 1, - "JSON": 4, - "JSON5": 2, - "JSONLD": 1, - "JSONiq": 2, - "Jade": 1, - "Java": 6, - "JavaScript": 27, - "Julia": 1, - "KRL": 1, - "Kit": 1, - "Kotlin": 1, - "LFE": 4, - "LOLCODE": 1, - "LSL": 1, - "Lasso": 4, - "Latte": 2, - "Less": 1, - "Liquid": 2, - "Literate Agda": 1, - "Literate CoffeeScript": 1, - "LiveScript": 1, - "Logos": 1, - "Logtalk": 1, - "LookML": 1, - "LoomScript": 2, - "Lua": 4, - "M": 29, - "MTML": 1, - "Makefile": 2, - "Markdown": 1, - "Mask": 1, - "Mathematica": 6, - "Matlab": 39, - "Maven POM": 1, - "Max": 3, - "MediaWiki": 1, - "Mercury": 9, - "Monkey": 1, - "Moocode": 3, - "MoonScript": 1, - "NSIS": 2, - "Nemerle": 1, - "NetLogo": 1, - "NewLisp": 1, - "Nginx": 1, - "Nimrod": 1, - "Nit": 22, - "Nix": 1, - "Nu": 2, - "OCaml": 2, - "Objective-C": 19, - "Objective-C++": 2, - "Omgrofl": 1, - "Opa": 2, - "Opal": 1, - "OpenCL": 2, - "OpenEdge ABL": 5, - "OpenSCAD": 2, - "Org": 1, - "Ox": 3, - "Oxygene": 1, - "Oz": 1, - "PAWN": 1, - "PHP": 11, - "Pan": 1, - "Papyrus": 3, - "Parrot Assembly": 1, - "Parrot Internal Representation": 1, - "Pascal": 3, - "Perl": 17, - "Perl6": 21, - "PigLatin": 1, - "Pike": 2, - "Pod": 1, - "PogoScript": 1, - "PostScript": 1, - "PowerShell": 2, - "Processing": 1, - "Prolog": 9, - "Propeller Spin": 10, - "Protocol Buffer": 1, - "Puppet": 3, - "PureScript": 4, - "Python": 12, - "QMake": 4, - "R": 7, - "RAML": 1, - "RDoc": 1, - "RMarkdown": 1, - "Racket": 2, - "Ragel in Ruby Host": 3, - "Rebol": 6, - "Red": 2, - "RobotFramework": 3, - "Ruby": 19, - "Rust": 1, - "SAS": 2, - "SCSS": 1, - "SQF": 2, - "SQL": 5, - "STON": 7, - "Sass": 1, - "Scala": 4, - "Scaml": 1, - "Scheme": 2, - "Scilab": 3, - "Shell": 39, - "ShellSession": 3, - "Shen": 3, - "Slash": 1, - "Slim": 1, - "Smalltalk": 3, - "SourcePawn": 1, - "Squirrel": 1, - "Standard ML": 5, - "Stata": 7, - "Stylus": 1, - "SuperCollider": 5, - "Swift": 43, - "SystemVerilog": 4, - "TXL": 1, - "Tcl": 4, - "TeX": 5, - "Tea": 1, - "Turing": 1, - "TypeScript": 2, - "UnrealScript": 2, - "VCL": 2, - "VHDL": 1, - "Verilog": 13, - "VimL": 3, - "Visual Basic": 3, - "Volt": 1, - "XC": 1, - "XML": 15, - "XProc": 1, - "XQuery": 1, - "XSLT": 1, - "Xojo": 6, - "Xtend": 2, - "YAML": 2, - "Zephir": 5, - "Zimpl": 1, - "edn": 1, - "fish": 3, - "text": 2, - "wisp": 1 - }, - "md5": "77ffb174794b1a9c0e7ff53b355a5b8f" -} \ No newline at end of file diff --git a/samples/NewLisp/log-to-database.lisp b/samples/NewLisp/log-to-database.lisp new file mode 100644 index 00000000..60af8406 --- /dev/null +++ b/samples/NewLisp/log-to-database.lisp @@ -0,0 +1,195 @@ +(module "sqlite3.lsp") ; loads the SQLite3 database module + +; FUNCTIONS------------------------------------------------- + +(define (displayln str-to-display) + (println str-to-display) +) + +(define (open-database sql-db-to-open) + (if (sql3:open (string sql-db-to-open ".db")) + (displayln "") + (displayln "There was a problem opening the database " sql-db-to-open ": " (sql3:error)))) + +(define (close-database) + (if (sql3:close) + (displayln "") + (displayln "There was a problem closing the database: " (sql3:error)))) + +;====== SAFE-FOR-SQL =============================================================== +; this function makes strings safe for inserting into SQL statements +; to avoid SQL injection issues +; it's simple right now but will add to it later +;=================================================================================== +(define (safe-for-sql str-sql-query) + (if (string? str-sql-query) (begin + (replace "&" str-sql-query "&") + (replace "'" str-sql-query "'") + (replace "\"" str-sql-query """) + )) + (set 'result str-sql-query)) + +(define (query sql-text) + (set 'sqlarray (sql3:sql sql-text)) ; results of query + (if sqlarray + (setq query-return sqlarray) + (if (sql3:error) + (displayln (sql3:error) " query problem ") + (setq query-return nil)))) + +(define-macro (create-record) + ; first save the values + (set 'temp-record-values nil) + (set 'temp-table-name (first (args))) + ;(displayln "
Arguments: " (args)) + (dolist (s (rest (args))) (push (eval s) temp-record-values -1)) + ; now save the arguments as symbols under the context "DB" + (dolist (s (rest (args))) + (set 'temp-index-num (string $idx)) ; we need to number the symbols to keep them in the correct order + (if (= (length temp-index-num) 1) (set 'temp-index-num (string "0" temp-index-num))) ; leading 0 keeps the max at 100. + (sym (string temp-index-num s) 'DB)) + ; now create the sql query + (set 'temp-sql-query (string "INSERT INTO " temp-table-name " (")) + ;(displayln "

TABLE NAME: " temp-table-name) + ;(displayln "

SYMBOLS: " (symbols DB)) + ;(displayln "
VALUES: " temp-record-values) + (dolist (d (symbols DB)) (extend temp-sql-query (rest (rest (rest (rest (rest (string d)))))) ", ")) + (set 'temp-sql-query (chop (chop temp-sql-query))) + (extend temp-sql-query ") VALUES (") + (dolist (q temp-record-values) + (if (string? q) (extend temp-sql-query "'")) ; only quote if value is non-numeric + (extend temp-sql-query (string (safe-for-sql q))) + (if (string? q) (extend temp-sql-query "'")) ; close quote if value is non-numeric + (extend temp-sql-query ", ")) ; all values are sanitized to avoid SQL injection + (set 'temp-sql-query (chop (chop temp-sql-query))) + (extend temp-sql-query ");") + ;(displayln "

***** SQL QUERY: " temp-sql-query) + (displayln (query temp-sql-query)) ; actually run the query against the database + (delete 'DB) ; we're done, so delete all symbols in the DB context. +) + +(define-macro (update-record) + ; first save the values + (set 'temp-record-values nil) + (set 'temp-table-name (first (args))) + (set 'continue true) ; debugging + (dolist (s (rest (args))) (push (eval s) temp-record-values -1)) + ; now save the arguments as symbols under the context "D2" + (dolist (st (rest (args))) + (set 'temp-index-num (string $idx)) ; we need to number the symbols to keep them in the correct order + (if (= (length temp-index-num) 1) (set 'temp-index-num (string "0" temp-index-num))) ; leading 0 keeps the max at 100. + ;(displayln "
SYMBOL>>>>" (string temp-index-num st) "<<<") ; debugging + (sym (string temp-index-num st) 'D2) + ) + (if continue (begin ; --- temporary debugging + ; now create the sql query + (set 'temp-sql-query (string "UPDATE " temp-table-name " SET ")) + ;(displayln "

TABLE NAME: " temp-table-name) + ;(displayln "

SYMBOLS: " (symbols D2)) + ;(displayln "
VALUES: " temp-record-values) + (dolist (d (rest (symbols D2))) ; ignore the first argument, as it will be the ConditionColumn for later + (extend temp-sql-query (rest (rest (rest (rest (rest (string d)))))) "=") + (set 'q (temp-record-values (+ $idx 1))) + (if (string? q) (extend temp-sql-query "'")) ; only quote if value is non-numeric + (extend temp-sql-query (string (safe-for-sql q))) + (if (string? q) (extend temp-sql-query "'")) ; close quote if value is non-numeric + (extend temp-sql-query ", ") ; all values are sanitized to avoid SQL injection + ) + (set 'temp-sql-query (chop (chop temp-sql-query))) + ; okay now add the ConditionColumn value + (extend temp-sql-query (string " WHERE " (rest (rest (rest (rest (rest (string (first (symbols D2)))))))) "=")) + (if (string? (first temp-record-values)) (extend temp-sql-query "'")) + (extend temp-sql-query (string (safe-for-sql (first temp-record-values)))) + (if (string? (first temp-record-values)) (extend temp-sql-query "'")) + (extend temp-sql-query ";") + ;(displayln "

***** SQL QUERY: " temp-sql-query) + (query temp-sql-query) ; actually run the query against the database + (delete 'D2) ; we're done, so delete all symbols in the DB context. + )) ; --- end temporary debugging +) + +(define-macro (delete-record) + (set 'temp-table-name (first (args))) + (set 'temp-record-values nil) + (dolist (s (rest (args))) (push (eval s) temp-record-values -1)) ; only one value for NOW... + (sym (first (rest (args))) 'DB) ; put the second argument (for now) into a symbol in the DB context + ; this will have to be in a dolist loop of (rest (args)) when I add more + (set 'temp-sql-query (string "DELETE FROM " temp-table-name " WHERE ")) + (dolist (d (symbols DB)) (extend temp-sql-query (rest (rest (rest (string d)))))) + (extend temp-sql-query "=") + ; why am I doing a loop here? There should be only one value, right? But maybe for future extension... + (dolist (q temp-record-values) + (if (string? q) (extend temp-sql-query "'")) ; only quote if value is non-numeric + (extend temp-sql-query (string (safe-for-sql q))) + (if (string? q) (extend temp-sql-query "'"))) ; close quote if value is non-numeric + (extend temp-sql-query ";") + ;(displayln "TEMP-DELETE-QUERY: " temp-sql-query) + (query temp-sql-query) + (delete 'DB) ; we're done, so delete all symbols in the DB context. +) + +(define-macro (get-record) + (set 'temp-table-name (first (args))) + ; if you have more arguments than just the table name, they become the elements of the WHERE clause + (if (> (length (args)) 1) (begin + (set 'temp-record-values nil) + (dolist (s (rest (args))) (push (eval s) temp-record-values -1)) ; only one value for NOW... + (sym (first (rest (args))) 'DB) ; put the second argument (for now) into a symbol in the DB context + ; this will have to be in a dolist loop of (rest (args)) when I add more + (set 'temp-sql-query (string "SELECT * FROM " temp-table-name " WHERE ")) + (dolist (d (symbols DB)) (extend temp-sql-query (rest (rest (rest (string d)))))) + (extend temp-sql-query "=") + ; why am I doing a loop here? There should be only one value, right? But maybe for future extension... + (dolist (q temp-record-values) + (if (string? q) (extend temp-sql-query "'")) ; only quote if value is non-numeric + (extend temp-sql-query (string (safe-for-sql q))) + (if (string? q) (extend temp-sql-query "'"))) ; close quote if value is non-numeric + (extend temp-sql-query ";") + ) + ; otherwise, just get everything in that table + (set 'temp-sql-query (string "SELECT * FROM " temp-table-name ";")) + ) + ;(displayln "TEMP-GET-QUERY: " temp-sql-query) + (delete 'DB) ; we're done, so delete all symbols in the DB context. + (set 'return-value (query temp-sql-query)) ; this returns a list of everything in the record +) + +; END FUNCTIONS =================== + + +(open-database "SERVER-LOGS") +(query "CREATE TABLE Logs (Id INTEGER PRIMARY KEY, IP TEXT, UserId TEXT, UserName TEXT, Date DATE, Request TEXT, Result TEXT, Size INTEGER, Referrer TEXT, UserAgent TEXT)") +;(print (query "SELECT * from SQLITE_MASTER;")) +(set 'access-log (read-file "/var/log/apache2/access.log")) +(set 'access-list (parse access-log "\n")) +(set 'max-items (integer (first (first (query "select count(*) from Logs"))))) +(println "Number of items in database: " max-items) +(println "Number of lines in log: " (length access-list)) +(dolist (line access-list) + (set 'line-list (parse line)) + ;(println "Line# " $idx " - " line-list) + ;(println "Length of line: " (length line-list)) + (if (> (length line-list) 0) (begin + (++ max-items) + (set 'Id max-items) (print $idx "/" (length access-list)) + (set 'IP (string (line-list 0) (line-list 1) (line-list 2))) + (set 'UserId (line-list 3)) + (set 'UserName (line-list 4)) + (set 'Date (line-list 5)) + (set 'Date (trim Date "[")) + (set 'Date (trim Date "]")) + ;(println "DATE: " Date) + (set 'date-parsed (date-parse Date "%d/%b/%Y:%H:%M:%S -0700")) + ;(println "DATE-PARSED: " date-parsed) + (set 'Date (date date-parsed 0 "%Y-%m-%dT%H:%M:%S")) + (println " " Date) + (set 'Request (line-list 6)) + (set 'Result (line-list 7)) + (set 'Size (line-list 8)) + (set 'Referrer (line-list 9)) + (set 'UserAgent (line-list 10)) + (create-record "Logs" Id IP UserId UserName Date Request Result Size Referrer UserAgent) + )) +) +(close-database) +(exit) \ No newline at end of file From 0b02b68538e2036851fda15cd8ccc32bbd5d3145 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Dec 2014 19:51:45 -0500 Subject: [PATCH 029/875] Heuristic for .lsp and .lisp (Common Lisp, NewLisp) --- lib/linguist/heuristics.rb | 8 ++++++++ test/test_heuristics.rb | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 0d0b8338..48b64d0c 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -165,5 +165,13 @@ module Linguist Language["text"] end end + + disambiguate "Common Lisp", "NewLisp" do |data| + if /^\s*\((defun|defactor|in-package|defpackage) /.match(data) + Language["Common Lisp"] + elsif /^\s*\(define /.match(data) + Language["NewLisp"] + end + end end end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 4b208770..195fb7c8 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -126,6 +126,13 @@ class TestHeuristcs < Test::Unit::TestCase }) end + def test_lsp_by_heuristics + assert_heuristics({ + "Common Lisp" => all_fixtures("Common Lisp"), + "NewLisp" => all_fixtures("NewLisp") + }) + end + def assert_heuristics(hash) candidates = hash.keys.map { |l| Language[l] } From 1363af0317ba63f50b2b2861d15fa0bfd035be11 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 16 Dec 2014 11:02:23 -0500 Subject: [PATCH 030/875] Remove defactor keyword for .lsp heuristic --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 757b50bb..58847559 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -165,7 +165,7 @@ module Linguist end disambiguate "Common Lisp", "NewLisp" do |data| - if /^\s*\((defun|defactor|in-package|defpackage) /.match(data) + if /^\s*\((defun|in-package|defpackage) /.match(data) Language["Common Lisp"] elsif /^\s*\(define /.match(data) Language["NewLisp"] From 97cd1e38860f229b55ddd04120be46df025e2cc3 Mon Sep 17 00:00:00 2001 From: MattDMo Date: Wed, 17 Dec 2014 11:49:54 -0500 Subject: [PATCH 031/875] Reorganized Sublime files, added more extensions. Moved those in JSON to JavaScript, as comments are allowed, and added several. Added 2 to XML. --- lib/linguist/languages.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9db36b22..a56f53d9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1372,13 +1372,6 @@ JSON: extensions: - .json - .lock - - .sublime-keymap - - .sublime-mousemap - - .sublime-project - - .sublime-settings - - .sublime-workspace - - .sublime_metrics - - .sublime_session filenames: - .jshintrc - composer.lock @@ -1462,6 +1455,19 @@ JavaScript: - .pac - .sjs - .ssjs + - .sublime-build + - .sublime-commands + - .sublime-completions + - .sublime-keymap + - .sublime-macro + - .sublime-menu + - .sublime_metrics + - .sublime-mousemap + - .sublime-project + - .sublime_session + - .sublime-settings + - .sublime-theme + - .sublime-workspace - .xsjs - .xsjslib filenames: @@ -3099,6 +3105,8 @@ XML: - .rss - .scxml - .srdf + - .stTheme + - .sublime-snippet - .svg - .targets - .tmCommand From a97fd74399bd7a358f3bcd0badaa4ed3c4b4345d Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Thu, 18 Dec 2014 17:46:26 -0500 Subject: [PATCH 032/875] Add HCL to languages.yml More information on HCL: https://github.com/hashicorp/hcl --- lib/linguist/languages.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d69b072a..a9f8b858 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1239,6 +1239,14 @@ Harbour: tm_scope: none ace_mode: text +HCL: + type: programming + extensions: + - .hcl + - .tf + ace_mode: javascript + tm_scope: source.json + Haskell: type: programming color: "#29b544" From 296d170ba9644013dba241b2853bd1d653e72853 Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Thu, 18 Dec 2014 17:52:30 -0500 Subject: [PATCH 033/875] Add sample for HCL --- samples/HCL/example.hcl | 6 ++++++ samples/HCL/example.tf | 13 +++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 samples/HCL/example.hcl create mode 100644 samples/HCL/example.tf diff --git a/samples/HCL/example.hcl b/samples/HCL/example.hcl new file mode 100644 index 00000000..276b171e --- /dev/null +++ b/samples/HCL/example.hcl @@ -0,0 +1,6 @@ +consul = "1.2.3.4" + +// This is a comment +template "foo" { + bar = "zip" +} diff --git a/samples/HCL/example.tf b/samples/HCL/example.tf new file mode 100644 index 00000000..976c2e07 --- /dev/null +++ b/samples/HCL/example.tf @@ -0,0 +1,13 @@ +resource "aws_instance" "web" { + // Copies the myapp.conf file to /etc/myapp.conf + provisioner "file" { + source = "conf/myapp.conf" + destination = "/etc/myapp.conf" + } + + // Copies the configs.d folder to /etc/configs.d + provisioner "file" { + source = "conf/configs.d" + destination = "/etc" + } +} From 5217f19faa8bb1030ce97b6ebe49031bd6fc725d Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Thu, 18 Dec 2014 17:53:53 -0500 Subject: [PATCH 034/875] Alphabetize order --- lib/linguist/languages.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a9f8b858..b7df08fa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1153,6 +1153,14 @@ Groovy Server Pages: tm_scope: text.html.jsp ace_mode: jsp +HCL: + type: programming + extensions: + - .hcl + - .tf + ace_mode: javascript + tm_scope: source.json + HTML: type: markup tm_scope: text.html.basic @@ -1239,14 +1247,6 @@ Harbour: tm_scope: none ace_mode: text -HCL: - type: programming - extensions: - - .hcl - - .tf - ace_mode: javascript - tm_scope: source.json - Haskell: type: programming color: "#29b544" From 034137f533550019da8a2127770b3a26d1223d00 Mon Sep 17 00:00:00 2001 From: Dale Henrichs Date: Thu, 18 Dec 2014 21:19:38 -0800 Subject: [PATCH 035/875] Use source.smalltalk to hightlight STON files. While not perfect, source.smalltalk is a better fit for highlighting STON files than source.json. When STON departs from pure JSON (often) the hightlighting is pretty bad. --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d69b072a..b4f76ed5 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2621,8 +2621,8 @@ STON: group: Smalltalk extensions: - .ston - tm_scope: source.json - ace_mode: lisp + tm_scope: source.smalltalk + ace_mode: text Sage: type: programming From f4208cb27d545aabb2b815ba833bc2f06195b6d0 Mon Sep 17 00:00:00 2001 From: Joaquin Casares Date: Fri, 19 Dec 2014 17:51:59 -0600 Subject: [PATCH 036/875] Add support for cql and ddl files --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d69b072a..4b0049b1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2615,6 +2615,8 @@ SQL: - .tab - .udf - .viw + - .cql + - .ddl STON: type: data From 0bbccc1bc1f989271dd9f951d87a90b19b0196f0 Mon Sep 17 00:00:00 2001 From: Joaquin Casares Date: Mon, 22 Dec 2014 16:48:22 -0600 Subject: [PATCH 037/875] Properly order extensions --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4b0049b1..4aaa1c21 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2611,12 +2611,12 @@ SQL: ace_mode: sql extensions: - .sql + - .cql + - .ddl - .prc - .tab - .udf - .viw - - .cql - - .ddl STON: type: data From 542cf9c52baa7d0cfce9a69308794f9049e34b5b Mon Sep 17 00:00:00 2001 From: archy Date: Fri, 26 Dec 2014 04:14:18 +0800 Subject: [PATCH 038/875] vendor.yml: added custom bootstrap --- lib/linguist/vendor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 4b8299f4..0728264e 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -42,6 +42,7 @@ # Bootstrap css and js - (^|/)bootstrap([^.]*)\.(js|css)$ +- (^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|)$ # Font Awesome - font-awesome.css From 64f83eee07a67ad4b658bcaba88b8fdb7d458afc Mon Sep 17 00:00:00 2001 From: archy Date: Fri, 26 Dec 2014 04:28:34 +0800 Subject: [PATCH 039/875] vendor.yml: added styl --- lib/linguist/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 0728264e..3fb5ffa8 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -42,7 +42,7 @@ # Bootstrap css and js - (^|/)bootstrap([^.]*)\.(js|css)$ -- (^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|)$ +- (^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$ # Font Awesome - font-awesome.css From 2c5d720146c5f6212b8d6d2ddf4803b1d4f336aa Mon Sep 17 00:00:00 2001 From: archy Date: Fri, 26 Dec 2014 04:30:33 +0800 Subject: [PATCH 040/875] vendor.yml: added imported bootstrap files --- lib/linguist/vendor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 3fb5ffa8..3b667371 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -43,6 +43,7 @@ # Bootstrap css and js - (^|/)bootstrap([^.]*)\.(js|css)$ - (^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$ +- (^|/)bootstrap/([^\s]*)import\.(css|less|scss|styl)$ # Font Awesome - font-awesome.css From 356b94211459594091b060fac50cdf99358228af Mon Sep 17 00:00:00 2001 From: archy Date: Fri, 26 Dec 2014 04:35:37 +0800 Subject: [PATCH 041/875] vendor.yml: added less, scss, styl suffixes for popular stylesheets --- lib/linguist/vendor.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 3b667371..57db0dcc 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -41,25 +41,24 @@ - (\.|-)min\.(js|css)$ # Bootstrap css and js -- (^|/)bootstrap([^.]*)\.(js|css)$ +- (^|/)bootstrap([^.]*)\.(js|css|less|scss|styl)$ - (^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$ - (^|/)bootstrap/([^\s]*)import\.(css|less|scss|styl)$ # Font Awesome -- font-awesome.css +- (^|/)font-awesome\.(css|less|scss|styl)$ # Foundation css -- foundation.css +- (^|/)foundation\.(css|less|scss|styl)$ # Normalize.css -- normalize.css +- (^|/)normalize\.(css|less|scss|styl)$ # Bourbon SCSS -- (^|/)[Bb]ourbon/.*\.css$ -- (^|/)[Bb]ourbon/.*\.scss$ +- (^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$ # Animate.css -- animate.css +- (^|/)animate\.(css|less|scss|styl)$ # Vendored dependencies - third[-_]?party/ From 084a9ab97639fcd8aa422dc7aefcf491914f85a4 Mon Sep 17 00:00:00 2001 From: archy Date: Fri, 26 Dec 2014 04:43:04 +0800 Subject: [PATCH 042/875] vendor.yml: added stylesheets imported from packages --- lib/linguist/vendor.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 57db0dcc..4ba241ca 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -40,10 +40,12 @@ # Minified JavaScript and CSS - (\.|-)min\.(js|css)$ +#Stylesheets imported from packages +- ([^\s]*)import\.(css|less|scss|styl)$ + # Bootstrap css and js - (^|/)bootstrap([^.]*)\.(js|css|less|scss|styl)$ - (^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$ -- (^|/)bootstrap/([^\s]*)import\.(css|less|scss|styl)$ # Font Awesome - (^|/)font-awesome\.(css|less|scss|styl)$ @@ -54,7 +56,7 @@ # Normalize.css - (^|/)normalize\.(css|less|scss|styl)$ -# Bourbon SCSS +# Bourbon css - (^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$ # Animate.css From f18ae4f99f27a6721ad5297b15aedc278e322ce8 Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Thu, 4 Dec 2014 19:02:55 +1100 Subject: [PATCH 043/875] add support for Isabelle ROOT file syntax --- lib/linguist/languages.yml | 8 + samples/Isabelle ROOT/filenames/ROOT | 1104 ++++++++++++++++++++++++++ 2 files changed, 1112 insertions(+) create mode 100644 samples/Isabelle ROOT/filenames/ROOT diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d69b072a..000dc0a2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1356,6 +1356,14 @@ Isabelle: tm_scope: source.isabelle.theory ace_mode: text +Isabelle ROOT: + type: programming + group: Isabelle + filenames: + - ROOT + tm_scope: source.isabelle.root + ace_mode: text + J: type: programming extensions: diff --git a/samples/Isabelle ROOT/filenames/ROOT b/samples/Isabelle ROOT/filenames/ROOT new file mode 100644 index 00000000..508fde01 --- /dev/null +++ b/samples/Isabelle ROOT/filenames/ROOT @@ -0,0 +1,1104 @@ +chapter HOL + +session HOL (main) = Pure + + description {* + Classical Higher-order Logic. + *} + options [document_graph] + global_theories + Main + Complex_Main + files + "Tools/Quickcheck/Narrowing_Engine.hs" + "Tools/Quickcheck/PNF_Narrowing_Engine.hs" + document_files + "root.bib" + "root.tex" + +session "HOL-Proofs" = Pure + + description {* + HOL-Main with explicit proof terms. + *} + options [document = false, quick_and_dirty = false] + theories Proofs (*sequential change of global flag!*) + theories "~~/src/HOL/Library/Old_Datatype" + files + "Tools/Quickcheck/Narrowing_Engine.hs" + "Tools/Quickcheck/PNF_Narrowing_Engine.hs" + +session "HOL-Library" (main) in Library = HOL + + description {* + Classical Higher-order Logic -- batteries included. + *} + theories + Library + (*conflicting type class instantiations*) + List_lexord + Sublist_Order + Product_Lexorder + Product_Order + Finite_Lattice + (*data refinements and dependent applications*) + AList_Mapping + Code_Binary_Nat + Code_Char + Code_Prolog + Code_Real_Approx_By_Float + Code_Target_Numeral + DAList + DAList_Multiset + RBT_Mapping + RBT_Set + (*legacy tools*) + Refute + Old_Datatype + Old_Recdef + Old_SMT + document_files "root.bib" "root.tex" + +session "HOL-Hahn_Banach" in Hahn_Banach = HOL + + description {* + Author: Gertrud Bauer, TU Munich + + The Hahn-Banach theorem for real vector spaces. + + This is the proof of the Hahn-Banach theorem for real vectorspaces, + following H. Heuser, Funktionalanalysis, p. 228 -232. The Hahn-Banach + theorem is one of the fundamental theorems of functional analysis. It is a + conclusion of Zorn's lemma. + + Two different formaulations of the theorem are presented, one for general + real vectorspaces and its application to normed vectorspaces. + + The theorem says, that every continous linearform, defined on arbitrary + subspaces (not only one-dimensional subspaces), can be extended to a + continous linearform on the whole vectorspace. + *} + options [document_graph] + theories Hahn_Banach + document_files "root.bib" "root.tex" + +session "HOL-Induct" in Induct = HOL + + description {* + Examples of (Co)Inductive Definitions. + + Comb proves the Church-Rosser theorem for combinators (see + http://www.cl.cam.ac.uk/ftp/papers/reports/TR396-lcp-generic-automatic-proof-tools.ps.gz). + + Mutil is the famous Mutilated Chess Board problem (see + http://www.cl.cam.ac.uk/ftp/papers/reports/TR394-lcp-mutilated-chess-board.dvi.gz). + + PropLog proves the completeness of a formalization of propositional logic + (see + http://www.cl.cam.ac.uk/Research/Reports/TR312-lcp-set-II.ps.gz). + + Exp demonstrates the use of iterated inductive definitions to reason about + mutually recursive relations. + *} + theories [document = false] + "~~/src/HOL/Library/Old_Datatype" + theories [quick_and_dirty] + Common_Patterns + theories + QuoDataType + QuoNestedDataType + Term + SList + ABexp + Tree + Ordinals + Sigma_Algebra + Comb + PropLog + Com + document_files "root.tex" + +session "HOL-IMP" in IMP = HOL + + options [document_graph, document_variants=document] + theories [document = false] + "~~/src/Tools/Permanent_Interpretation" + "~~/src/HOL/Library/While_Combinator" + "~~/src/HOL/Library/Char_ord" + "~~/src/HOL/Library/List_lexord" + "~~/src/HOL/Library/Quotient_List" + "~~/src/HOL/Library/Extended" + theories + BExp + ASM + Finite_Reachable + Denotational + Compiler2 + Poly_Types + Sec_Typing + Sec_TypingT + Def_Init_Big + Def_Init_Small + Fold + Live + Live_True + Hoare_Examples + VCG + Hoare_Total + Collecting1 + Collecting_Examples + Abs_Int_Tests + Abs_Int1_parity + Abs_Int1_const + Abs_Int3 + "Abs_Int_ITP/Abs_Int1_parity_ITP" + "Abs_Int_ITP/Abs_Int1_const_ITP" + "Abs_Int_ITP/Abs_Int3_ITP" + "Abs_Int_Den/Abs_Int_den2" + Procs_Dyn_Vars_Dyn + Procs_Stat_Vars_Dyn + Procs_Stat_Vars_Stat + C_like + OO + document_files "root.bib" "root.tex" + +session "HOL-IMPP" in IMPP = HOL + + description {* + Author: David von Oheimb + Copyright 1999 TUM + + IMPP -- An imperative language with procedures. + + This is an extension of IMP with local variables and mutually recursive + procedures. For documentation see "Hoare Logic for Mutual Recursion and + Local Variables" (http://isabelle.in.tum.de/Bali/papers/FSTTCS99.html). + *} + options [document = false] + theories EvenOdd + +session "HOL-Import" in Import = HOL + + options [document_graph] + theories HOL_Light_Maps + theories [condition = HOL_LIGHT_BUNDLE] HOL_Light_Import + +session "HOL-Number_Theory" in Number_Theory = HOL + + description {* + Fundamental Theorem of Arithmetic, Chinese Remainder Theorem, Fermat/Euler + Theorem, Wilson's Theorem, some lemmas for Quadratic Reciprocity. + *} + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/FuncSet" + "~~/src/HOL/Library/Multiset" + "~~/src/HOL/Algebra/Ring" + "~~/src/HOL/Algebra/FiniteProduct" + theories + Pocklington + Gauss + Number_Theory + Euclidean_Algorithm + document_files + "root.tex" + +session "HOL-Old_Number_Theory" in Old_Number_Theory = HOL + + description {* + Fundamental Theorem of Arithmetic, Chinese Remainder Theorem, Fermat/Euler + Theorem, Wilson's Theorem, Quadratic Reciprocity. + *} + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/Infinite_Set" + "~~/src/HOL/Library/Permutation" + theories + Fib + Factorization + Chinese + WilsonRuss + WilsonBij + Quadratic_Reciprocity + Primes + Pocklington + document_files + "root.bib" + "root.tex" + +session "HOL-Hoare" in Hoare = HOL + + description {* + Verification of imperative programs (verification conditions are generated + automatically from pre/post conditions and loop invariants). + *} + theories Hoare + document_files "root.bib" "root.tex" + +session "HOL-Hoare_Parallel" in Hoare_Parallel = HOL + + description {* + Verification of shared-variable imperative programs a la Owicki-Gries. + (verification conditions are generated automatically). + *} + options [document_graph] + theories Hoare_Parallel + document_files "root.bib" "root.tex" + +session "HOL-Codegenerator_Test" in Codegenerator_Test = "HOL-Library" + + options [document = false, document_graph = false, browser_info = false] + theories + Generate + Generate_Binary_Nat + Generate_Target_Nat + Generate_Efficient_Datastructures + Generate_Pretty_Char + theories [condition = ISABELLE_GHC] + Code_Test_GHC + theories [condition = ISABELLE_MLTON] + Code_Test_MLton + theories [condition = ISABELLE_OCAMLC] + Code_Test_OCaml + theories [condition = ISABELLE_POLYML] + Code_Test_PolyML + theories [condition = ISABELLE_SCALA] + Code_Test_Scala + theories [condition = ISABELLE_SMLNJ] + Code_Test_SMLNJ + +session "HOL-Metis_Examples" in Metis_Examples = HOL + + description {* + Author: Lawrence C Paulson, Cambridge University Computer Laboratory + Author: Jasmin Blanchette, TU Muenchen + + Testing Metis and Sledgehammer. + *} + options [document = false] + theories + Abstraction + Big_O + Binary_Tree + Clausification + Message + Proxies + Tarski + Trans_Closure + Sets + +session "HOL-Nitpick_Examples" in Nitpick_Examples = HOL + + description {* + Author: Jasmin Blanchette, TU Muenchen + Copyright 2009 + *} + options [document = false] + theories [quick_and_dirty] Nitpick_Examples + +session "HOL-Algebra" (main) in Algebra = HOL + + description {* + Author: Clemens Ballarin, started 24 September 1999 + + The Isabelle Algebraic Library. + *} + options [document_graph] + theories [document = false] + (* Preliminaries from set and number theory *) + "~~/src/HOL/Library/FuncSet" + "~~/src/HOL/Number_Theory/Primes" + "~~/src/HOL/Number_Theory/Binomial" + "~~/src/HOL/Library/Permutation" + theories + (*** New development, based on explicit structures ***) + (* Groups *) + FiniteProduct (* Product operator for commutative groups *) + Sylow (* Sylow's theorem *) + Bij (* Automorphism Groups *) + + (* Rings *) + Divisibility (* Rings *) + IntRing (* Ideals and residue classes *) + UnivPoly (* Polynomials *) + document_files "root.bib" "root.tex" + +session "HOL-Auth" in Auth = HOL + + description {* + A new approach to verifying authentication protocols. + *} + options [document_graph] + theories + Auth_Shared + Auth_Public + "Smartcard/Auth_Smartcard" + "Guard/Auth_Guard_Shared" + "Guard/Auth_Guard_Public" + document_files "root.tex" + +session "HOL-UNITY" in UNITY = "HOL-Auth" + + description {* + Author: Lawrence C Paulson, Cambridge University Computer Laboratory + Copyright 1998 University of Cambridge + + Verifying security protocols using Chandy and Misra's UNITY formalism. + *} + options [document_graph] + theories + (*Basic meta-theory*) + "UNITY_Main" + + (*Simple examples: no composition*) + "Simple/Deadlock" + "Simple/Common" + "Simple/Network" + "Simple/Token" + "Simple/Channel" + "Simple/Lift" + "Simple/Mutex" + "Simple/Reach" + "Simple/Reachability" + + (*Verifying security protocols using UNITY*) + "Simple/NSP_Bad" + + (*Example of composition*) + "Comp/Handshake" + + (*Universal properties examples*) + "Comp/Counter" + "Comp/Counterc" + "Comp/Priority" + + "Comp/TimerArray" + "Comp/Progress" + + "Comp/Alloc" + "Comp/AllocImpl" + "Comp/Client" + + (*obsolete*) + "ELT" + document_files "root.tex" + +session "HOL-Unix" in Unix = HOL + + options [print_mode = "no_brackets,no_type_brackets"] + theories Unix + document_files "root.bib" "root.tex" + +session "HOL-ZF" in ZF = HOL + + theories MainZF Games + document_files "root.tex" + +session "HOL-Imperative_HOL" in Imperative_HOL = HOL + + options [document_graph, print_mode = "iff,no_brackets"] + theories [document = false] + "~~/src/HOL/Library/Countable" + "~~/src/HOL/Library/Monad_Syntax" + "~~/src/HOL/Library/LaTeXsugar" + theories Imperative_HOL_ex + document_files "root.bib" "root.tex" + +session "HOL-Decision_Procs" in Decision_Procs = HOL + + description {* + Various decision procedures, typically involving reflection. + *} + options [condition = ML_SYSTEM_POLYML, document = false] + theories Decision_Procs + +session "HOL-Proofs-ex" in "Proofs/ex" = "HOL-Proofs" + + options [document = false, parallel_proofs = 0] + theories + Hilbert_Classical + XML_Data + +session "HOL-Proofs-Extraction" in "Proofs/Extraction" = "HOL-Proofs" + + description {* + Examples for program extraction in Higher-Order Logic. + *} + options [condition = ML_SYSTEM_POLYML, parallel_proofs = 0, quick_and_dirty = false] + theories [document = false] + "~~/src/HOL/Library/Code_Target_Numeral" + "~~/src/HOL/Library/Monad_Syntax" + "~~/src/HOL/Number_Theory/Primes" + "~~/src/HOL/Number_Theory/UniqueFactorization" + "~~/src/HOL/Library/State_Monad" + theories + Greatest_Common_Divisor + Warshall + Higman_Extraction + Pigeonhole + Euclid + document_files "root.bib" "root.tex" + +session "HOL-Proofs-Lambda" in "Proofs/Lambda" = "HOL-Proofs" + + description {* + Lambda Calculus in de Bruijn's Notation. + + This session defines lambda-calculus terms with de Bruijn indixes and + proves confluence of beta, eta and beta+eta. + + The paper "More Church-Rosser Proofs (in Isabelle/HOL)" describes the whole + theory (see http://www.in.tum.de/~nipkow/pubs/jar2001.html). + *} + options [document_graph, print_mode = "no_brackets", parallel_proofs = 0, + quick_and_dirty = false] + theories [document = false] + "~~/src/HOL/Library/Code_Target_Int" + theories + Eta + StrongNorm + Standardization + WeakNorm + document_files "root.bib" "root.tex" + +session "HOL-Prolog" in Prolog = HOL + + description {* + Author: David von Oheimb (based on a lecture on Lambda Prolog by Nadathur) + + A bare-bones implementation of Lambda-Prolog. + + This is a simple exploratory implementation of Lambda-Prolog in HOL, + including some minimal examples (in Test.thy) and a more typical example of + a little functional language and its type system. + *} + options [document = false] + theories Test Type + +session "HOL-MicroJava" in MicroJava = HOL + + description {* + Formalization of a fragment of Java, together with a corresponding virtual + machine and a specification of its bytecode verifier and a lightweight + bytecode verifier, including proofs of type-safety. + *} + options [document_graph] + theories [document = false] "~~/src/HOL/Library/While_Combinator" + theories MicroJava + document_files + "introduction.tex" + "root.bib" + "root.tex" + +session "HOL-NanoJava" in NanoJava = HOL + + description {* + Hoare Logic for a tiny fragment of Java. + *} + options [document_graph] + theories Example + document_files "root.bib" "root.tex" + +session "HOL-Bali" in Bali = HOL + + options [document_graph] + theories + AxExample + AxSound + AxCompl + Trans + document_files "root.tex" + +session "HOL-IOA" in IOA = HOL + + description {* + Author: Tobias Nipkow and Konrad Slind and Olaf Müller + Copyright 1994--1996 TU Muenchen + + The meta-theory of I/O-Automata in HOL. This formalization has been + significantly changed and extended, see HOLCF/IOA. There are also the + proofs of two communication protocols which formerly have been here. + + @inproceedings{Nipkow-Slind-IOA, + author={Tobias Nipkow and Konrad Slind}, + title={{I/O} Automata in {Isabelle/HOL}}, + booktitle={Proc.\ TYPES Workshop 1994}, + publisher=Springer, + series=LNCS, + note={To appear}} + ftp://ftp.informatik.tu-muenchen.de/local/lehrstuhl/nipkow/ioa.ps.gz + + and + + @inproceedings{Mueller-Nipkow, + author={Olaf M\"uller and Tobias Nipkow}, + title={Combining Model Checking and Deduction for {I/O}-Automata}, + booktitle={Proc.\ TACAS Workshop}, + organization={Aarhus University, BRICS report}, + year=1995} + ftp://ftp.informatik.tu-muenchen.de/local/lehrstuhl/nipkow/tacas.dvi.gz + *} + options [document = false] + theories Solve + +session "HOL-Lattice" in Lattice = HOL + + description {* + Author: Markus Wenzel, TU Muenchen + + Basic theory of lattices and orders. + *} + theories CompleteLattice + document_files "root.tex" + +session "HOL-ex" in ex = HOL + + description {* + Miscellaneous examples for Higher-Order Logic. + *} + options [condition = ML_SYSTEM_POLYML] + theories [document = false] + "~~/src/HOL/Library/State_Monad" + Code_Binary_Nat_examples + "~~/src/HOL/Library/FuncSet" + Eval_Examples + Normalization_by_Evaluation + Hebrew + Chinese + Serbian + "~~/src/HOL/Library/FinFun_Syntax" + "~~/src/HOL/Library/Refute" + "~~/src/HOL/Library/Transitive_Closure_Table" + Cartouche_Examples + theories + Adhoc_Overloading_Examples + Iff_Oracle + Coercion_Examples + Higher_Order_Logic + Abstract_NAT + Guess + Fundefs + Induction_Schema + LocaleTest2 + Records + While_Combinator_Example + MonoidGroup + BinEx + Hex_Bin_Examples + Antiquote + Multiquote + PER + NatSum + ThreeDivides + Intuitionistic + CTL + Arith_Examples + BT + Tree23 + Bubblesort + MergeSort + Lagrange + Groebner_Examples + MT + Unification + Primrec + Tarski + Classical + Set_Theory + Termination + Coherent + PresburgerEx + Reflection_Examples + Sqrt + Sqrt_Script + Transfer_Ex + Transfer_Int_Nat + Transitive_Closure_Table_Ex + HarmonicSeries + Refute_Examples + Execute_Choice + Gauge_Integration + Dedekind_Real + Quicksort + Birthday_Paradox + List_to_Set_Comprehension_Examples + Seq + Simproc_Tests + Executable_Relation + FinFunPred + Set_Comprehension_Pointfree_Examples + Parallel_Example + IArray_Examples + SVC_Oracle + Simps_Case_Conv_Examples + ML + SAT_Examples + SOS + SOS_Cert + theories [skip_proofs = false] + Meson_Test + theories [condition = SVC_HOME] + svc_test + theories [condition = ISABELLE_FULL_TEST] + Sudoku + document_files "root.bib" "root.tex" + +session "HOL-Isar_Examples" in Isar_Examples = HOL + + description {* + Miscellaneous Isabelle/Isar examples for Higher-Order Logic. + *} + theories [document = false] + "~~/src/HOL/Library/Lattice_Syntax" + "../Number_Theory/Primes" + theories + Basic_Logic + Cantor + Drinker + Expr_Compiler + Fibonacci + Group + Group_Context + Group_Notepad + Hoare_Ex + Knaster_Tarski + Mutilated_Checkerboard + Nested_Datatype + Peirce + Puzzle + Summation + document_files + "root.bib" + "root.tex" + "style.tex" + +session "HOL-SET_Protocol" in SET_Protocol = HOL + + description {* + Verification of the SET Protocol. + *} + options [document_graph] + theories [document = false] "~~/src/HOL/Library/Nat_Bijection" + theories SET_Protocol + document_files "root.tex" + +session "HOL-Matrix_LP" in Matrix_LP = HOL + + description {* + Two-dimensional matrices and linear programming. + *} + options [document_graph] + theories Cplex + document_files "root.tex" + +session "HOL-TLA" in TLA = HOL + + description {* + Lamport's Temporal Logic of Actions. + *} + options [document = false] + theories TLA + +session "HOL-TLA-Inc" in "TLA/Inc" = "HOL-TLA" + + options [document = false] + theories Inc + +session "HOL-TLA-Buffer" in "TLA/Buffer" = "HOL-TLA" + + options [document = false] + theories DBuffer + +session "HOL-TLA-Memory" in "TLA/Memory" = "HOL-TLA" + + options [document = false] + theories MemoryImplementation + +session "HOL-TPTP" in TPTP = HOL + + description {* + Author: Jasmin Blanchette, TU Muenchen + Author: Nik Sultana, University of Cambridge + Copyright 2011 + + TPTP-related extensions. + *} + options [document = false] + theories + ATP_Theory_Export + MaSh_Eval + TPTP_Interpret + THF_Arith + TPTP_Proof_Reconstruction + theories + ATP_Problem_Import + +session "HOL-Multivariate_Analysis" (main) in Multivariate_Analysis = HOL + + options [document_graph] + theories + Multivariate_Analysis + Determinants + PolyRoots + Complex_Analysis_Basics + document_files + "root.tex" + +session "HOL-Probability" in "Probability" = "HOL-Multivariate_Analysis" + + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/Countable" + "~~/src/HOL/Library/Permutation" + "~~/src/HOL/Library/Order_Continuity" + "~~/src/HOL/Library/Diagonal_Subsequence" + theories + Probability + "ex/Dining_Cryptographers" + "ex/Koepf_Duermuth_Countermeasure" + document_files "root.tex" + +session "HOL-Nominal" (main) in Nominal = HOL + + options [document = false] + theories Nominal + +session "HOL-Nominal-Examples" in "Nominal/Examples" = "HOL-Nominal" + + options [condition = ML_SYSTEM_POLYML, document = false] + theories + Nominal_Examples_Base + theories [condition = ISABELLE_FULL_TEST] + Nominal_Examples + theories [quick_and_dirty] + VC_Condition + +session "HOL-Cardinals" in Cardinals = HOL + + description {* + Ordinals and Cardinals, Full Theories. + *} + options [document = false] + theories Cardinals + document_files + "intro.tex" + "root.tex" + "root.bib" + +session "HOL-Datatype_Examples" in Datatype_Examples = HOL + + description {* + (Co)datatype Examples, including large ones from John Harrison. + *} + options [document = false] + theories + "~~/src/HOL/Library/Old_Datatype" + Compat + Lambda_Term + Process + TreeFsetI + "Derivation_Trees/Gram_Lang" + "Derivation_Trees/Parallel" + Koenig + Stream_Processor + Misc_Codatatype + Misc_Datatype + Misc_Primcorec + Misc_Primrec + theories [condition = ISABELLE_FULL_TEST] + Brackin + IsaFoR + Misc_N2M + +session "HOL-Word" (main) in Word = HOL + + options [document_graph] + theories Word + document_files "root.bib" "root.tex" + +session "HOL-Word-Examples" in "Word/Examples" = "HOL-Word" + + options [document = false] + theories WordExamples + +session "HOL-Statespace" in Statespace = HOL + + theories [skip_proofs = false] + StateSpaceEx + document_files "root.tex" + +session "HOL-NSA" in NSA = HOL + + description {* + Nonstandard analysis. + *} + options [document_graph] + theories Hypercomplex + document_files "root.tex" + +session "HOL-NSA-Examples" in "NSA/Examples" = "HOL-NSA" + + options [document = false] + theories NSPrimes + +session "HOL-Mirabelle" in Mirabelle = HOL + + options [document = false] + theories Mirabelle_Test + +session "HOL-Mirabelle-ex" in "Mirabelle/ex" = "HOL-Mirabelle" + + options [document = false, timeout = 60] + theories Ex + +session "HOL-Word-SMT_Examples" in SMT_Examples = "HOL-Word" + + options [document = false, quick_and_dirty] + theories + Boogie + SMT_Examples + SMT_Word_Examples + theories [condition = ISABELLE_FULL_TEST] + SMT_Tests + files + "Boogie_Dijkstra.certs" + "Boogie_Max.certs" + "SMT_Examples.certs" + "SMT_Word_Examples.certs" + "VCC_Max.certs" + +session "HOL-SPARK" (main) in "SPARK" = "HOL-Word" + + options [document = false] + theories SPARK + +session "HOL-SPARK-Examples" in "SPARK/Examples" = "HOL-SPARK" + + options [document = false] + theories + "Gcd/Greatest_Common_Divisor" + + "Liseq/Longest_Increasing_Subsequence" + + "RIPEMD-160/F" + "RIPEMD-160/Hash" + "RIPEMD-160/K_L" + "RIPEMD-160/K_R" + "RIPEMD-160/R_L" + "RIPEMD-160/Round" + "RIPEMD-160/R_R" + "RIPEMD-160/S_L" + "RIPEMD-160/S_R" + + "Sqrt/Sqrt" + files + "Gcd/greatest_common_divisor/g_c_d.fdl" + "Gcd/greatest_common_divisor/g_c_d.rls" + "Gcd/greatest_common_divisor/g_c_d.siv" + "Liseq/liseq/liseq_length.fdl" + "Liseq/liseq/liseq_length.rls" + "Liseq/liseq/liseq_length.siv" + "RIPEMD-160/rmd/f.fdl" + "RIPEMD-160/rmd/f.rls" + "RIPEMD-160/rmd/f.siv" + "RIPEMD-160/rmd/hash.fdl" + "RIPEMD-160/rmd/hash.rls" + "RIPEMD-160/rmd/hash.siv" + "RIPEMD-160/rmd/k_l.fdl" + "RIPEMD-160/rmd/k_l.rls" + "RIPEMD-160/rmd/k_l.siv" + "RIPEMD-160/rmd/k_r.fdl" + "RIPEMD-160/rmd/k_r.rls" + "RIPEMD-160/rmd/k_r.siv" + "RIPEMD-160/rmd/r_l.fdl" + "RIPEMD-160/rmd/r_l.rls" + "RIPEMD-160/rmd/r_l.siv" + "RIPEMD-160/rmd/round.fdl" + "RIPEMD-160/rmd/round.rls" + "RIPEMD-160/rmd/round.siv" + "RIPEMD-160/rmd/r_r.fdl" + "RIPEMD-160/rmd/r_r.rls" + "RIPEMD-160/rmd/r_r.siv" + "RIPEMD-160/rmd/s_l.fdl" + "RIPEMD-160/rmd/s_l.rls" + "RIPEMD-160/rmd/s_l.siv" + "RIPEMD-160/rmd/s_r.fdl" + "RIPEMD-160/rmd/s_r.rls" + "RIPEMD-160/rmd/s_r.siv" + +session "HOL-SPARK-Manual" in "SPARK/Manual" = "HOL-SPARK" + + options [show_question_marks = false] + theories + Example_Verification + VC_Principles + Reference + Complex_Types + files + "complex_types_app/initialize.fdl" + "complex_types_app/initialize.rls" + "complex_types_app/initialize.siv" + "loop_invariant/proc1.fdl" + "loop_invariant/proc1.rls" + "loop_invariant/proc1.siv" + "loop_invariant/proc2.fdl" + "loop_invariant/proc2.rls" + "loop_invariant/proc2.siv" + "simple_greatest_common_divisor/g_c_d.fdl" + "simple_greatest_common_divisor/g_c_d.rls" + "simple_greatest_common_divisor/g_c_d.siv" + document_files + "complex_types.ads" + "complex_types_app.adb" + "complex_types_app.ads" + "Gcd.adb" + "Gcd.ads" + "intro.tex" + "loop_invariant.adb" + "loop_invariant.ads" + "root.bib" + "root.tex" + "Simple_Gcd.adb" + "Simple_Gcd.ads" + +session "HOL-Mutabelle" in Mutabelle = HOL + + options [document = false] + theories MutabelleExtra + +session "HOL-Quickcheck_Examples" in Quickcheck_Examples = HOL + + options [document = false] + theories + Quickcheck_Examples + Quickcheck_Lattice_Examples + Completeness + Quickcheck_Interfaces + theories [condition = ISABELLE_GHC] + Hotel_Example + Quickcheck_Narrowing_Examples + +session "HOL-Quickcheck_Benchmark" in Quickcheck_Benchmark = HOL + + theories [condition = ISABELLE_FULL_TEST, quick_and_dirty] + Find_Unused_Assms_Examples + Needham_Schroeder_No_Attacker_Example + Needham_Schroeder_Guided_Attacker_Example + Needham_Schroeder_Unguided_Attacker_Example + +session "HOL-Quotient_Examples" in Quotient_Examples = HOL + + description {* + Author: Cezary Kaliszyk and Christian Urban + *} + options [document = false] + theories + DList + FSet + Quotient_Int + Quotient_Message + Lift_FSet + Lift_Set + Lift_Fun + Quotient_Rat + Lift_DList + Int_Pow + +session "HOL-Predicate_Compile_Examples" in Predicate_Compile_Examples = HOL + + options [document = false] + theories + Examples + Predicate_Compile_Tests + (* FIXME + Predicate_Compile_Quickcheck_Examples -- should be added again soon (since 21-Oct-2010) *) + Specialisation_Examples + IMP_1 + IMP_2 + (* FIXME since 21-Jul-2011 + Hotel_Example_Small_Generator + IMP_3 + IMP_4 *) + theories [condition = "ISABELLE_SWIPL"] + Code_Prolog_Examples + Context_Free_Grammar_Example + Hotel_Example_Prolog + Lambda_Example + List_Examples + theories [condition = "ISABELLE_SWIPL", quick_and_dirty] + Reg_Exp_Example + +session HOLCF (main) in HOLCF = HOL + + description {* + Author: Franz Regensburger + Author: Brian Huffman + + HOLCF -- a semantic extension of HOL by the LCF logic. + *} + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/Nat_Bijection" + "~~/src/HOL/Library/Countable" + theories + Plain_HOLCF + Fixrec + HOLCF + document_files "root.tex" + +session "HOLCF-Tutorial" in "HOLCF/Tutorial" = HOLCF + + theories + Domain_ex + Fixrec_ex + New_Domain + document_files "root.tex" + +session "HOLCF-Library" in "HOLCF/Library" = HOLCF + + options [document = false] + theories HOLCF_Library + +session "HOLCF-IMP" in "HOLCF/IMP" = HOLCF + + description {* + IMP -- A WHILE-language and its Semantics. + + This is the HOLCF-based denotational semantics of a simple WHILE-language. + *} + options [document = false] + theories HoareEx + document_files "root.tex" + +session "HOLCF-ex" in "HOLCF/ex" = HOLCF + + description {* + Miscellaneous examples for HOLCF. + *} + options [document = false] + theories + Dnat + Dagstuhl + Focus_ex + Fix2 + Hoare + Concurrency_Monad + Loop + Powerdomain_ex + Domain_Proofs + Letrec + Pattern_Match + +session "HOLCF-FOCUS" in "HOLCF/FOCUS" = HOLCF + + description {* + FOCUS: a theory of stream-processing functions Isabelle/HOLCF. + + For introductions to FOCUS, see + + "The Design of Distributed Systems - An Introduction to FOCUS" + http://www4.in.tum.de/publ/html.php?e=2 + + "Specification and Refinement of a Buffer of Length One" + http://www4.in.tum.de/publ/html.php?e=15 + + "Specification and Development of Interactive Systems: Focus on Streams, + Interfaces, and Refinement" http://www4.in.tum.de/publ/html.php?e=321 + *} + options [document = false] + theories + Fstreams + FOCUS + Buffer_adm + +session IOA in "HOLCF/IOA" = HOLCF + + description {* + Author: Olaf Mueller + Copyright 1997 TU München + + A formalization of I/O automata in HOLCF. + + The distribution contains simulation relations, temporal logic, and an + abstraction theory. Everything is based upon a domain-theoretic model of + finite and infinite sequences. + *} + options [document = false] + theories "meta_theory/Abstraction" + +session "IOA-ABP" in "HOLCF/IOA/ABP" = IOA + + description {* + Author: Olaf Mueller + + The Alternating Bit Protocol performed in I/O-Automata. + *} + options [document = false] + theories Correctness + +session "IOA-NTP" in "HOLCF/IOA/NTP" = IOA + + description {* + Author: Tobias Nipkow & Konrad Slind + + A network transmission protocol, performed in the + I/O automata formalization by Olaf Mueller. + *} + options [document = false] + theories Correctness + +session "IOA-Storage" in "HOLCF/IOA/Storage" = IOA + + description {* + Author: Olaf Mueller + + Memory storage case study. + *} + options [document = false] + theories Correctness + +session "IOA-ex" in "HOLCF/IOA/ex" = IOA + + description {* + Author: Olaf Mueller + *} + options [document = false] + theories + TrivEx + TrivEx2 + +session "HOL-Record_Benchmark" in Record_Benchmark = HOL + + description {* + Some benchmark on large record. + *} + options [document = false] + theories [condition = ISABELLE_FULL_TEST] + Record_Benchmark + From 401067f63741d6c4d61ac9d2e9bcd613415ac184 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 2 Jan 2015 22:57:20 +0100 Subject: [PATCH 044/875] Revert #1438: add file extensions with multiple segments --- lib/linguist/languages.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 921c7ed2..aeb44f97 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -419,7 +419,7 @@ CLIPS: CMake: extensions: - .cmake - - .in + - .cmake.in filenames: - CMakeLists.txt ace_mode: text @@ -503,10 +503,10 @@ Clojure: - .cl2 - .cljc - .cljs + - .cljs.hl - .cljscm - .cljx - .hic - - .hl filenames: - riemann.config @@ -1171,6 +1171,7 @@ HTML: extensions: - .html - .htm + - .html.hl - .st - .xht - .xhtml @@ -1196,7 +1197,8 @@ HTML+ERB: - erb extensions: - .erb - - .deface + - .erb.deface + - .html.erb.deface ace_mode: html_ruby HTML+PHP: @@ -1227,7 +1229,8 @@ Haml: type: markup extensions: - .haml - - .deface + - .haml.deface + - .html.haml.deface ace_mode: haml Handlebars: From 546d4163a90dd100d997a82c59bca24fbfff749c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 3 Jan 2015 09:27:43 +0100 Subject: [PATCH 045/875] Remove unnecessary file extensions --- lib/linguist/languages.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index aeb44f97..d639ad8d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1198,7 +1198,6 @@ HTML+ERB: extensions: - .erb - .erb.deface - - .html.erb.deface ace_mode: html_ruby HTML+PHP: @@ -1230,7 +1229,6 @@ Haml: extensions: - .haml - .haml.deface - - .html.haml.deface ace_mode: haml Handlebars: From fbe43b61d48f5a3207206631fbcf788d860b21d9 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 3 Jan 2015 09:37:40 +0100 Subject: [PATCH 046/875] Sample file for .cmake.in --- samples/CMake/uninstall.cmake.in | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 samples/CMake/uninstall.cmake.in diff --git a/samples/CMake/uninstall.cmake.in b/samples/CMake/uninstall.cmake.in new file mode 100644 index 00000000..a5b7436f --- /dev/null +++ b/samples/CMake/uninstall.cmake.in @@ -0,0 +1,22 @@ +IF (NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt") + MESSAGE (FATAL_ERROR "Cannot find install manifest: \"@PROJECT_BINARY_DIR@/install_manifest.txt\"") +ENDIF (NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt") + +FILE (READ "@PROJECT_BINARY_DIR@/install_manifest.txt" files) +STRING (REGEX REPLACE "\n" ";" files "${files}") +FOREACH (file ${files}) + MESSAGE (STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") + IF (EXISTS "$ENV{DESTDIR}${file}") + EXEC_PROGRAM ( + "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + IF (NOT "${rm_retval}" STREQUAL 0) + MESSAGE (FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") + ENDIF (NOT "${rm_retval}" STREQUAL 0) + ELSE (EXISTS "$ENV{DESTDIR}${file}") + MESSAGE (STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") + ENDIF (EXISTS "$ENV{DESTDIR}${file}") +ENDFOREACH (file) + From 2f86bd8bda1aaaf7dc587439686589bb30267299 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 3 Jan 2015 09:37:50 +0100 Subject: [PATCH 047/875] Sample file for .html.hl --- samples/HTML/index.html.hl | 328 +++++++++++++++++++++++++++++++++++++ 1 file changed, 328 insertions(+) create mode 100644 samples/HTML/index.html.hl diff --git a/samples/HTML/index.html.hl b/samples/HTML/index.html.hl new file mode 100644 index 00000000..65491957 --- /dev/null +++ b/samples/HTML/index.html.hl @@ -0,0 +1,328 @@ + + + + + + + + +

+

Example 1

+ + + + + +
+ + +
+ +

~{x}

+
+
+
+
+ + +
+

Example 2

+ + + + + +
+ + +
+ +

~{x}

+
+
+
+
+ + +
+

Example 3

+ + + + + +
+ + + +
+ +

~{x}

+
+
+
+
+ + +
+

Example 4

+ + + + + +
+ + +
+
+
+ + +
+

Example 5

+ + + + + +
+ + +
+
+
+ + +
+

Example 6

+ + + + + +
+ + +
+
+ +

~{x}

+
+
+
+
+
+ + +
+

Example 7

+ + + + + +
+ + +
+
+ +

~{x}

+
+
+
+
+
+ + +
+

Example 8

+ + + + + +
+ + +
+
+ +

~{x}

+
+
+
+
+
+ + +
+

Example 9

+ + + + + +
+ + +
+
+ + +
+

Example 10

+ + + + + +
+ + + +
+
+ + From dc96f62f9e1a3f53c2602b1c41b73bad388061d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Fri, 26 Dec 2014 12:18:17 +0100 Subject: [PATCH 048/875] add support for Linux .desktop files --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 8 ++++++++ samples/desktop/example.desktop | 21 +++++++++++++++++++++ vendor/grammars/desktop.tmbundle | 1 + 5 files changed, 35 insertions(+) create mode 100644 samples/desktop/example.desktop create mode 160000 vendor/grammars/desktop.tmbundle diff --git a/.gitmodules b/.gitmodules index e35c1366..5e3ddc4b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -343,6 +343,9 @@ [submodule "vendor/grammars/ini.tmbundle"] path = vendor/grammars/ini.tmbundle url = https://github.com/textmate/ini.tmbundle +[submodule "vendor/grammars/desktop.tmbundle"] + path = vendor/grammars/desktop.tmbundle + url = https://github.com/Mailaender/desktop.tmbundle.git [submodule "vendor/grammars/io.tmbundle"] path = vendor/grammars/io.tmbundle url = https://github.com/textmate/io.tmbundle diff --git a/grammars.yml b/grammars.yml index ebbea52c..ca9988b0 100644 --- a/grammars.yml +++ b/grammars.yml @@ -160,6 +160,8 @@ vendor/grammars/dart-sublime-bundle: - source.dart - source.pubspec - text.dart-doccomments +vendor/grammars/desktop.tmbundle: +- source.desktop vendor/grammars/diff.tmbundle: - source.diff vendor/grammars/dylan.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7890be55..aa37e7d5 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3249,6 +3249,14 @@ Zimpl: tm_scope: none ace_mode: text +desktop: + type: data + extensions: + - .desktop + - .desktop.in + tm_scope: source.desktop + ace_mode: text + eC: type: programming search_term: ec diff --git a/samples/desktop/example.desktop b/samples/desktop/example.desktop new file mode 100644 index 00000000..81221d99 --- /dev/null +++ b/samples/desktop/example.desktop @@ -0,0 +1,21 @@ +# http://standards.freedesktop.org/desktop-entry-spec/latest/apa.html + +[Desktop Entry] +Version=1.0 +Type=Application +Name=Foo Viewer +Comment=The best viewer for Foo objects available! +TryExec=fooview +Exec=fooview %F +Icon=fooview +MimeType=image/x-foo; +Actions=Gallery;Create; + +[Desktop Action Gallery] +Exec=fooview --gallery +Name=Browse Gallery + +[Desktop Action Create] +Exec=fooview --create-new +Name=Create a new Foo! +Icon=fooview-new \ No newline at end of file diff --git a/vendor/grammars/desktop.tmbundle b/vendor/grammars/desktop.tmbundle new file mode 160000 index 00000000..34f9b8ab --- /dev/null +++ b/vendor/grammars/desktop.tmbundle @@ -0,0 +1 @@ +Subproject commit 34f9b8ab985ff7d981661f632eeff6d6c080cea8 From 68f04a50aa2556326e0e887d159895588add9313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 3 Jan 2015 14:01:40 +0100 Subject: [PATCH 049/875] add support for Emacs desktop files --- lib/linguist/languages.yml | 2 ++ samples/Emacs Lisp/.emacs.desktop | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 samples/Emacs Lisp/.emacs.desktop diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index aa37e7d5..a8b559df 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -810,9 +810,11 @@ Emacs Lisp: - emacs filenames: - .emacs + - .emacs.desktop extensions: - .el - .emacs + - .emacs.desktop ace_mode: lisp EmberScript: diff --git a/samples/Emacs Lisp/.emacs.desktop b/samples/Emacs Lisp/.emacs.desktop new file mode 100644 index 00000000..499e44bb --- /dev/null +++ b/samples/Emacs Lisp/.emacs.desktop @@ -0,0 +1,29 @@ +;; -*- mode: emacs-lisp; coding: emacs-mule; -*- +;; -------------------------------------------------------------------------- +;; Desktop File for Emacs +;; -------------------------------------------------------------------------- +;; Created Sat Jan 3 12:46:35 2015 +;; Desktop file format version 206 +;; Emacs version 24.3.1 + +;; Global section: +(setq desktop-missing-file-warning nil) +(setq tags-file-name nil) +(setq tags-table-list nil) +(setq search-ring nil) +(setq regexp-search-ring nil) +(setq register-alist nil) +(setq file-name-history nil) + +;; Buffer section -- buffers listed in same order as in buffer list: +(desktop-create-buffer 206 + "/home/foo/bar" + "bar" + 'fundamental-mode + nil + 11572 + '(11554 nil) + nil + nil + '((buffer-file-coding-system . undecided-unix))) + From 3c6218f20eba8eec014160ec90a04adfa01f985f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 4 Jan 2015 22:07:29 +0100 Subject: [PATCH 050/875] Heuristics for .cs files: Smalltalk and C# --- lib/linguist/heuristics.rb | 8 ++++++++ test/test_heuristics.rb | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 97c1015a..33df8958 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -69,6 +69,14 @@ module Linguist end end + disambiguate "C#", "Smalltalk" do |data| + if /![\w\s]+methodsFor: /.match(data) + Language["Smalltalk"] + elsif /^\s*namespace\s*[\w\.]+\s*{/.match(data) || /^\s*using\s*[\w\.]+\s*;/.match(data) + Language["C#"] + end + end + disambiguate "Objective-C", "C++", "C" do |data| if (/^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data)) Language["Objective-C"] diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 7520e828..785fe58e 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -133,6 +133,13 @@ class TestHeuristcs < Minitest::Test }) end + def test_cs_by_heuristics + assert_heuristics({ + "C#" => all_fixtures("C#", "*.cs"), + "Smalltalk" => all_fixtures("Smalltalk", "*.cs") + }) + end + def assert_heuristics(hash) candidates = hash.keys.map { |l| Language[l] } From 3149d1232b331e580c36d57918aa1059cf044706 Mon Sep 17 00:00:00 2001 From: MattDMo Date: Mon, 5 Jan 2015 13:36:57 -0500 Subject: [PATCH 051/875] Moved .sublime_metrics after .sublime-mousemap due to failing Travis test --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a56f53d9..a4a7e960 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1461,8 +1461,8 @@ JavaScript: - .sublime-keymap - .sublime-macro - .sublime-menu - - .sublime_metrics - .sublime-mousemap + - .sublime_metrics - .sublime-project - .sublime_session - .sublime-settings From e99f6edb56239373b88ac4a1c282ef72c224a118 Mon Sep 17 00:00:00 2001 From: MattDMo Date: Mon, 5 Jan 2015 13:41:58 -0500 Subject: [PATCH 052/875] Put .sublime_* after .sublime-* --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a4a7e960..2d470f20 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1462,12 +1462,12 @@ JavaScript: - .sublime-macro - .sublime-menu - .sublime-mousemap - - .sublime_metrics - .sublime-project - - .sublime_session - .sublime-settings - .sublime-theme - .sublime-workspace + - .sublime_metrics + - .sublime_session - .xsjs - .xsjslib filenames: From 5ad9deb19942af766040e69de248c1e9bb58fbb6 Mon Sep 17 00:00:00 2001 From: Joaquin Casares Date: Mon, 5 Jan 2015 13:50:54 -0600 Subject: [PATCH 053/875] Added sample files --- samples/SQL/videodb.cql | 85 +++++++++++++++++++++++++++++++++++++++++ samples/SQL/videodb.ddl | 85 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 samples/SQL/videodb.cql create mode 100644 samples/SQL/videodb.ddl diff --git a/samples/SQL/videodb.cql b/samples/SQL/videodb.cql new file mode 100644 index 00000000..ffa3170e --- /dev/null +++ b/samples/SQL/videodb.cql @@ -0,0 +1,85 @@ +CREATE KEYSPACE videodb WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; + +use videodb; + +// Basic entity table +// Object mapping ? +CREATE TABLE users ( + username varchar, + firstname varchar, + lastname varchar, + email varchar, + password varchar, + created_date timestamp, + total_credits int, + credit_change_date timeuuid, + PRIMARY KEY (username) +); + +// One-to-many entity table +CREATE TABLE videos ( + videoid uuid, + videoname varchar, + username varchar, + description varchar, + tags list, + upload_date timestamp, + PRIMARY KEY (videoid) +); + +// One-to-many from the user point of view +// Also know as a lookup table +CREATE TABLE username_video_index ( + username varchar, + videoid uuid, + upload_date timestamp, + videoname varchar, + PRIMARY KEY (username, videoid) +); + +// Counter table +CREATE TABLE video_rating ( + videoid uuid, + rating_counter counter, + rating_total counter, + PRIMARY KEY (videoid) +); + +// Creating index tables for tab keywords +CREATE TABLE tag_index ( + tag varchar, + videoid uuid, + timestamp timestamp, + PRIMARY KEY (tag, videoid) +); + +// Comments as a many-to-many +// Looking from the video side to many users +CREATE TABLE comments_by_video ( + videoid uuid, + username varchar, + comment_ts timestamp, + comment varchar, + PRIMARY KEY (videoid,comment_ts,username) +) WITH CLUSTERING ORDER BY (comment_ts DESC, username ASC); + +// looking from the user side to many videos +CREATE TABLE comments_by_user ( + username varchar, + videoid uuid, + comment_ts timestamp, + comment varchar, + PRIMARY KEY (username,comment_ts,videoid) +) WITH CLUSTERING ORDER BY (comment_ts DESC, videoid ASC); + + +// Time series wide row with reverse comparator +CREATE TABLE video_event ( + videoid uuid, + username varchar, + event varchar, + event_timestamp timeuuid, + video_timestamp bigint, + PRIMARY KEY ((videoid,username), event_timestamp,event) +) WITH CLUSTERING ORDER BY (event_timestamp DESC,event ASC); + diff --git a/samples/SQL/videodb.ddl b/samples/SQL/videodb.ddl new file mode 100644 index 00000000..ffa3170e --- /dev/null +++ b/samples/SQL/videodb.ddl @@ -0,0 +1,85 @@ +CREATE KEYSPACE videodb WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; + +use videodb; + +// Basic entity table +// Object mapping ? +CREATE TABLE users ( + username varchar, + firstname varchar, + lastname varchar, + email varchar, + password varchar, + created_date timestamp, + total_credits int, + credit_change_date timeuuid, + PRIMARY KEY (username) +); + +// One-to-many entity table +CREATE TABLE videos ( + videoid uuid, + videoname varchar, + username varchar, + description varchar, + tags list, + upload_date timestamp, + PRIMARY KEY (videoid) +); + +// One-to-many from the user point of view +// Also know as a lookup table +CREATE TABLE username_video_index ( + username varchar, + videoid uuid, + upload_date timestamp, + videoname varchar, + PRIMARY KEY (username, videoid) +); + +// Counter table +CREATE TABLE video_rating ( + videoid uuid, + rating_counter counter, + rating_total counter, + PRIMARY KEY (videoid) +); + +// Creating index tables for tab keywords +CREATE TABLE tag_index ( + tag varchar, + videoid uuid, + timestamp timestamp, + PRIMARY KEY (tag, videoid) +); + +// Comments as a many-to-many +// Looking from the video side to many users +CREATE TABLE comments_by_video ( + videoid uuid, + username varchar, + comment_ts timestamp, + comment varchar, + PRIMARY KEY (videoid,comment_ts,username) +) WITH CLUSTERING ORDER BY (comment_ts DESC, username ASC); + +// looking from the user side to many videos +CREATE TABLE comments_by_user ( + username varchar, + videoid uuid, + comment_ts timestamp, + comment varchar, + PRIMARY KEY (username,comment_ts,videoid) +) WITH CLUSTERING ORDER BY (comment_ts DESC, videoid ASC); + + +// Time series wide row with reverse comparator +CREATE TABLE video_event ( + videoid uuid, + username varchar, + event varchar, + event_timestamp timeuuid, + video_timestamp bigint, + PRIMARY KEY ((videoid,username), event_timestamp,event) +) WITH CLUSTERING ORDER BY (event_timestamp DESC,event ASC); + From b357257f4dafe59944f75bec57eb157e3cef588c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 6 Jan 2015 09:51:51 +0100 Subject: [PATCH 054/875] Grammar for AutoHotkey --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/AutoHotkey | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/AutoHotkey diff --git a/.gitmodules b/.gitmodules index a4ef61fa..0e127f7d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -532,3 +532,6 @@ [submodule "vendor/grammars/sublime-bsv"] path = vendor/grammars/sublime-bsv url = https://github.com/thotypous/sublime-bsv +[submodule "vendor/grammars/AutoHotkey"] + path = vendor/grammars/AutoHotkey + url = https://github.com/robertcollier4/AutoHotkey diff --git a/grammars.yml b/grammars.yml index ebbea52c..1c11db3d 100644 --- a/grammars.yml +++ b/grammars.yml @@ -24,6 +24,8 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy +vendor/grammars/AutoHotkey: +- source.ahk vendor/grammars/ColdFusion: - source.cfscript - source.cfscript.cfc diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7890be55..f10b2f30 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -224,7 +224,7 @@ AutoHotkey: extensions: - .ahk - .ahkl - tm_scope: none + tm_scope: source.ahk ace_mode: autohotkey AutoIt: diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey new file mode 160000 index 00000000..82a64672 --- /dev/null +++ b/vendor/grammars/AutoHotkey @@ -0,0 +1 @@ +Subproject commit 82a646722c78cff47fae9673cb628f222b032988 From 14740e8a89ef13f8fbf6ee9689518ec23fe1023f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 6 Jan 2015 11:57:28 +0100 Subject: [PATCH 055/875] Grammar for HTTP --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Sublime-HTTP | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Sublime-HTTP diff --git a/.gitmodules b/.gitmodules index a4ef61fa..eb5b0c01 100644 --- a/.gitmodules +++ b/.gitmodules @@ -532,3 +532,6 @@ [submodule "vendor/grammars/sublime-bsv"] path = vendor/grammars/sublime-bsv url = https://github.com/thotypous/sublime-bsv +[submodule "vendor/grammars/Sublime-HTTP"] + path = vendor/grammars/Sublime-HTTP + url = https://github.com/httpspec/sublime-highlighting diff --git a/grammars.yml b/grammars.yml index ebbea52c..a8305007 100644 --- a/grammars.yml +++ b/grammars.yml @@ -66,6 +66,8 @@ vendor/grammars/Stata.tmbundle: - source.stata vendor/grammars/Sublime-Coq: - source.coq +vendor/grammars/Sublime-HTTP: +- source.httpspec vendor/grammars/Sublime-Inform: - source.Inform7 vendor/grammars/Sublime-Lasso: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7890be55..e2c6df86 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1211,7 +1211,7 @@ HTTP: type: data extensions: - .http - tm_scope: none + tm_scope: source.httpspec ace_mode: text Hack: diff --git a/vendor/grammars/Sublime-HTTP b/vendor/grammars/Sublime-HTTP new file mode 160000 index 00000000..f5a4c381 --- /dev/null +++ b/vendor/grammars/Sublime-HTTP @@ -0,0 +1 @@ +Subproject commit f5a4c3819d2b1d7bb9376c255ac78f94b6564b54 From 96e6b3f53e283d501915c8837a868ecd037c278b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 6 Jan 2015 17:00:16 +0100 Subject: [PATCH 056/875] Reclassify samples generated from Zephir code --- samples/{Zephir/filenames => C}/exception.zep.c | 0 samples/{Zephir/filenames => C}/exception.zep.h | 0 samples/{Zephir/filenames => PHP}/exception.zep.php | 0 test/test_generated.rb | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) rename samples/{Zephir/filenames => C}/exception.zep.c (100%) rename samples/{Zephir/filenames => C}/exception.zep.h (100%) rename samples/{Zephir/filenames => PHP}/exception.zep.php (100%) diff --git a/samples/Zephir/filenames/exception.zep.c b/samples/C/exception.zep.c similarity index 100% rename from samples/Zephir/filenames/exception.zep.c rename to samples/C/exception.zep.c diff --git a/samples/Zephir/filenames/exception.zep.h b/samples/C/exception.zep.h similarity index 100% rename from samples/Zephir/filenames/exception.zep.h rename to samples/C/exception.zep.h diff --git a/samples/Zephir/filenames/exception.zep.php b/samples/PHP/exception.zep.php similarity index 100% rename from samples/Zephir/filenames/exception.zep.php rename to samples/PHP/exception.zep.php diff --git a/test/test_generated.rb b/test/test_generated.rb index 8fe57245..1c3f8d90 100644 --- a/test/test_generated.rb +++ b/test/test_generated.rb @@ -45,9 +45,9 @@ class TestGenerated < Minitest::Test generated_without_loading_data("Godeps/_workspace/src/github.com/kr/s3/sign.go") # Generated by Zephir - generated_without_loading_data("Zephir/filenames/exception.zep.c") - generated_without_loading_data("Zephir/filenames/exception.zep.h") - generated_without_loading_data("Zephir/filenames/exception.zep.php") + generated_without_loading_data("C/exception.zep.c") + generated_without_loading_data("C/exception.zep.h") + generated_without_loading_data("PHP/exception.zep.php") # Minified files generated_loading_data("JavaScript/jquery-1.6.1.min.js") From 6e9dfdff304e895193795c53ac2a7591d9657df6 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Wed, 7 Jan 2015 14:16:23 -0500 Subject: [PATCH 057/875] Recommend updating grammars when releasing This will help ensure we keep pulling in fixes from the grammar repos. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c2c803a8..220b9564 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,7 @@ If you are the current maintainer of this gem: 0. Create a branch for the release: `git checkout -b cut-release-vxx.xx.xx` 0. Make sure your local dependencies are up to date: `script/bootstrap` + 0. If grammar submodules have not been updated recently, update them: `git submodule update --remote` 0. Ensure that samples are updated: `bundle exec rake samples` 0. Ensure that tests are green: `bundle exec rake test` 0. Bump gem version in `lib/linguist/version.rb`. For example, [like this](https://github.com/github/linguist/commit/8d2ea90a5ba3b2fe6e1508b7155aa4632eea2985). From 59a6963a89e245dae9afbc62c8315da7ca9340eb Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Wed, 7 Jan 2015 14:26:23 -0500 Subject: [PATCH 058/875] Say that you should commit the submodule update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 220b9564..2bebfafe 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,7 @@ If you are the current maintainer of this gem: 0. Create a branch for the release: `git checkout -b cut-release-vxx.xx.xx` 0. Make sure your local dependencies are up to date: `script/bootstrap` - 0. If grammar submodules have not been updated recently, update them: `git submodule update --remote` + 0. If grammar submodules have not been updated recently, update them: `git submodule update --remote && git commit -a` 0. Ensure that samples are updated: `bundle exec rake samples` 0. Ensure that tests are green: `bundle exec rake test` 0. Bump gem version in `lib/linguist/version.rb`. For example, [like this](https://github.com/github/linguist/commit/8d2ea90a5ba3b2fe6e1508b7155aa4632eea2985). From 71885b8a79fc3662ebebb80ec3107f05fb329b22 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 8 Jan 2015 13:00:29 +0100 Subject: [PATCH 059/875] Add missing ^ in Frege heuristic regexp. --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 97c1015a..5e603f23 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -175,7 +175,7 @@ module Linguist disambiguate "Frege", "Forth", "Text" do |data| if /^(: |also |new-device|previous )/.match(data) Language["Forth"] - elsif /\s*(import|module|package|data|type) /.match(data) + elsif /^\s*(import|module|package|data|type) /.match(data) Language["Frege"] else Language["Text"] From 6fef6b578af789646e038482fac9cdb042a81e08 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Thu, 8 Jan 2015 10:49:01 -0500 Subject: [PATCH 060/875] Fix script/convert-grammars --add --- script/convert-grammars | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/script/convert-grammars b/script/convert-grammars index 4b16dff4..7c45a7c8 100755 --- a/script/convert-grammars +++ b/script/convert-grammars @@ -250,9 +250,10 @@ def main(sources) all_scopes = {} - if $options[:add] + if source = $options[:add] Dir.mktmpdir do |tmpdir| - install_grammar(tmpdir, ARGV[0], all_scopes) + grammars = load_grammars(tmpdir, source, all_scopes) + install_grammars(grammars, source) if $options[:install] end generate_yaml(all_scopes, sources) else From e95314f07247fd91e644645a08c5864574572a81 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Thu, 8 Jan 2015 10:49:54 -0500 Subject: [PATCH 061/875] Recognize WTFPL-licensed grammars --- test/test_grammars.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 0bfb642c..f010b79b 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -129,6 +129,8 @@ class TestGrammars < Minitest::Test "MIT" elsif content.include?("unlicense.org") "unlicense" + elsif content.include?("http://www.wtfpl.net/txt/copying/") + "WTFPL" end end end From 9be941acc8eb80c9bbff4cb32cf8ce0d99d808fa Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Thu, 8 Jan 2015 10:50:48 -0500 Subject: [PATCH 062/875] Added support for the nit language in grammars.yml, updated languages.yml for .nit source files highlighting Signed-off-by: Lucas Bajolet --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Sublime-Nit | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Sublime-Nit diff --git a/.gitmodules b/.gitmodules index fe68f3d7..f5f88347 100644 --- a/.gitmodules +++ b/.gitmodules @@ -534,3 +534,6 @@ [submodule "vendor/grammars/carto-atom"] path = vendor/grammars/carto-atom url = https://github.com/yohanboniface/carto-atom +[submodule "vendor/grammars/Sublime-Nit"] + path = vendor/grammars/Sublime-Nit + url = https://github.com/R4PaSs/Sublime-Nit diff --git a/grammars.yml b/grammars.yml index 222859f1..aa547ead 100644 --- a/grammars.yml +++ b/grammars.yml @@ -74,6 +74,8 @@ vendor/grammars/Sublime-Logos: - source.logos vendor/grammars/Sublime-Loom: - source.loomscript +vendor/grammars/Sublime-Nit: +- source.nit vendor/grammars/Sublime-QML: - source.qml vendor/grammars/Sublime-REBOL: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 46d77f0a..fff416c7 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1912,7 +1912,7 @@ Nit: color: "#0d8921" extensions: - .nit - tm_scope: none + tm_scope: source.nit ace_mode: text Nix: diff --git a/vendor/grammars/Sublime-Nit b/vendor/grammars/Sublime-Nit new file mode 160000 index 00000000..7d8b3503 --- /dev/null +++ b/vendor/grammars/Sublime-Nit @@ -0,0 +1 @@ +Subproject commit 7d8b3503923edb3dd0fa0f8e0684dd33e7897446 From 163ea9ecdd403ad4b798ee4ddf84464ae0c6ab35 Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Tue, 2 Dec 2014 10:32:05 -0500 Subject: [PATCH 063/875] Added a few samples for the Nit language Signed-off-by: Lucas Bajolet --- samples/Nit/file.nit | 798 +++++++++++++++++++++++++++++++++++++++++ samples/Nit/meetup.nit | 376 +++++++++++++++++++ 2 files changed, 1174 insertions(+) create mode 100644 samples/Nit/file.nit create mode 100644 samples/Nit/meetup.nit diff --git a/samples/Nit/file.nit b/samples/Nit/file.nit new file mode 100644 index 00000000..889526fc --- /dev/null +++ b/samples/Nit/file.nit @@ -0,0 +1,798 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Copyright 2004-2008 Jean Privat +# Copyright 2008 Floréal Morandat +# Copyright 2008 Jean-Sébastien Gélinas +# +# This file is free software, which comes along with NIT. This software 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. You can modify it is you want, provided this header +# is kept unaltered, and a notification of the changes is added. +# You are allowed to redistribute it and sell it, alone or is a part of +# another product. + +# File manipulations (create, read, write, etc.) +module file + +intrude import stream +intrude import ropes +import string_search +import time + +in "C Header" `{ + #include + #include + #include + #include + #include + #include + #include + #include +`} + +# File Abstract Stream +abstract class FStream + super IOS + # The path of the file. + var path: nullable String = null + + # The FILE *. + private var file: nullable NativeFile = null + + fun file_stat: FileStat do return _file.file_stat + + # File descriptor of this file + fun fd: Int do return _file.fileno +end + +# File input stream +class IFStream + super FStream + super BufferedIStream + super PollableIStream + # Misc + + # Open the same file again. + # The original path is reused, therefore the reopened file can be a different file. + fun reopen + do + if not eof and not _file.address_is_null then close + _file = new NativeFile.io_open_read(path.to_cstring) + if _file.address_is_null then + last_error = new IOError("Error: Opening file at '{path.as(not null)}' failed with '{sys.errno.strerror}'") + end_reached = true + return + end + end_reached = false + _buffer_pos = 0 + _buffer.clear + end + + redef fun close + do + if _file.address_is_null then return + var i = _file.io_close + _buffer.clear + end_reached = true + end + + redef fun fill_buffer + do + var nb = _file.io_read(_buffer.items, _buffer.capacity) + if nb <= 0 then + end_reached = true + nb = 0 + end + _buffer.length = nb + _buffer_pos = 0 + end + # End of file? + redef var end_reached: Bool = false + + # Open the file at `path` for reading. + init open(path: String) + do + self.path = path + prepare_buffer(10) + _file = new NativeFile.io_open_read(path.to_cstring) + if _file.address_is_null then + last_error = new IOError("Error: Opening file at '{path}' failed with '{sys.errno.strerror}'") + end_reached = true + end + end + + init from_fd(fd: Int) do + self.path = "" + prepare_buffer(10) + _file = fd_to_stream(fd, read_only) + if _file.address_is_null then + last_error = new IOError("Error: Converting fd {fd} to stream failed with '{sys.errno.strerror}'") + end_reached = true + end + end +end + +# File output stream +class OFStream + super FStream + super OStream + + redef fun write(s) + do + if last_error != null then return + if not _is_writable then + last_error = new IOError("Cannot write to non-writable stream") + return + end + if s isa FlatText then + write_native(s.to_cstring, s.length) + else + for i in s.substrings do write_native(i.to_cstring, i.length) + end + end + + redef fun close + do + if _file.address_is_null then + last_error = new IOError("Cannot close non-existing write stream") + _is_writable = false + return + end + var i = _file.io_close + _is_writable = false + end + redef var is_writable = false + + # Write `len` bytes from `native`. + private fun write_native(native: NativeString, len: Int) + do + if last_error != null then return + if not _is_writable then + last_error = new IOError("Cannot write to non-writable stream") + return + end + if _file.address_is_null then + last_error = new IOError("Writing on a null stream") + _is_writable = false + return + end + var err = _file.io_write(native, len) + if err != len then + # Big problem + last_error = new IOError("Problem in writing : {err} {len} \n") + end + end + + # Open the file at `path` for writing. + init open(path: String) + do + _file = new NativeFile.io_open_write(path.to_cstring) + if _file.address_is_null then + last_error = new IOError("Error: Opening file at '{path}' failed with '{sys.errno.strerror}'") + self.path = path + is_writable = false + end + self.path = path + _is_writable = true + end + + # Creates a new File stream from a file descriptor + init from_fd(fd: Int) do + self.path = "" + _file = fd_to_stream(fd, wipe_write) + _is_writable = true + if _file.address_is_null then + last_error = new IOError("Error: Opening stream from file descriptor {fd} failed with '{sys.errno.strerror}'") + _is_writable = false + end + end +end + +redef interface Object + + private fun read_only: NativeString do return "r".to_cstring + + private fun wipe_write: NativeString do return "w".to_cstring + + private fun fd_to_stream(fd: Int, mode: NativeString): NativeFile `{ + return fdopen(fd, mode); + `} + + # returns first available stream to read or write to + # return null on interruption (possibly a signal) + protected fun poll( streams : Sequence[FStream] ) : nullable FStream + do + var in_fds = new Array[Int] + var out_fds = new Array[Int] + var fd_to_stream = new HashMap[Int,FStream] + for s in streams do + var fd = s.fd + if s isa IFStream then in_fds.add( fd ) + if s isa OFStream then out_fds.add( fd ) + + fd_to_stream[fd] = s + end + + var polled_fd = intern_poll( in_fds, out_fds ) + + if polled_fd == null then + return null + else + return fd_to_stream[polled_fd] + end + end + + private fun intern_poll(in_fds: Array[Int], out_fds: Array[Int]) : nullable Int is extern import Array[Int].length, Array[Int].[], Int.as(nullable Int) `{ + int in_len, out_len, total_len; + struct pollfd *c_fds; + sigset_t sigmask; + int i; + int first_polled_fd = -1; + int result; + + in_len = Array_of_Int_length( in_fds ); + out_len = Array_of_Int_length( out_fds ); + total_len = in_len + out_len; + c_fds = malloc( sizeof(struct pollfd) * total_len ); + + /* input streams */ + for ( i=0; i 0 ) { + /* analyse results */ + for ( i=0; i 0 and self.chars[l] == '/' do l -= 1 # remove all trailing `/` + if l == 0 then return "/" + var pos = chars.last_index_of_from('/', l) + var n = self + if pos >= 0 then + n = substring(pos+1, l-pos) + end + return n.strip_extension(ext) + end + + # Extract the dirname of a path + # + # assert "/path/to/a_file.ext".dirname == "/path/to" + # assert "path/to/a_file.ext".dirname == "path/to" + # assert "path/to".dirname == "path" + # assert "path/to/".dirname == "path" + # assert "path".dirname == "." + # assert "/path".dirname == "/" + # assert "/".dirname == "/" + # assert "".dirname == "." + fun dirname: String + do + var l = length - 1 # Index of the last char + while l > 0 and self.chars[l] == '/' do l -= 1 # remove all trailing `/` + var pos = chars.last_index_of_from('/', l) + if pos > 0 then + return substring(0, pos) + else if pos == 0 then + return "/" + else + return "." + end + end + + # Return the canonicalized absolute pathname (see POSIX function `realpath`) + fun realpath: String do + var cs = to_cstring.file_realpath + var res = cs.to_s_with_copy + # cs.free_malloc # FIXME memory leak + return res + end + + # Simplify a file path by remove useless ".", removing "//", and resolving ".." + # ".." are not resolved if they start the path + # starting "/" is not removed + # trainling "/" is removed + # + # Note that the method only wonrk on the string: + # * no I/O access is performed + # * the validity of the path is not checked + # + # assert "some/./complex/../../path/from/../to/a////file//".simplify_path == "path/to/a/file" + # assert "../dir/file".simplify_path == "../dir/file" + # assert "dir/../../".simplify_path == ".." + # assert "dir/..".simplify_path == "." + # assert "//absolute//path/".simplify_path == "/absolute/path" + # assert "//absolute//../".simplify_path == "/" + fun simplify_path: String + do + var a = self.split_with("/") + var a2 = new Array[String] + for x in a do + if x == "." then continue + if x == "" and not a2.is_empty then continue + if x == ".." and not a2.is_empty and a2.last != ".." then + a2.pop + continue + end + a2.push(x) + end + if a2.is_empty then return "." + if a2.length == 1 and a2.first == "" then return "/" + return a2.join("/") + end + + # Correctly join two path using the directory separator. + # + # Using a standard "{self}/{path}" does not work in the following cases: + # + # * `self` is empty. + # * `path` ends with `'/'`. + # * `path` starts with `'/'`. + # + # This method ensures that the join is valid. + # + # assert "hello".join_path("world") == "hello/world" + # assert "hel/lo".join_path("wor/ld") == "hel/lo/wor/ld" + # assert "".join_path("world") == "world" + # assert "hello".join_path("/world") == "/world" + # assert "hello/".join_path("world") == "hello/world" + # assert "hello/".join_path("/world") == "/world" + # + # Note: You may want to use `simplify_path` on the result. + # + # Note: This method works only with POSIX paths. + fun join_path(path: String): String + do + if path.is_empty then return self + if self.is_empty then return path + if path.chars[0] == '/' then return path + if self.last == '/' then return "{self}{path}" + return "{self}/{path}" + end + + # Convert the path (`self`) to a program name. + # + # Ensure the path (`self`) will be treated as-is by POSIX shells when it is + # used as a program name. In order to do that, prepend `./` if needed. + # + # assert "foo".to_program_name == "./foo" + # assert "/foo".to_program_name == "/foo" + # assert "".to_program_name == "./" # At least, your shell will detect the error. + fun to_program_name: String do + if self.has_prefix("/") then + return self + else + return "./{self}" + end + end + + # Alias for `join_path` + # + # assert "hello" / "world" == "hello/world" + # assert "hel/lo" / "wor/ld" == "hel/lo/wor/ld" + # assert "" / "world" == "world" + # assert "/hello" / "/world" == "/world" + # + # This operator is quite useful for chaining changes of path. + # The next one being relative to the previous one. + # + # var a = "foo" + # var b = "/bar" + # var c = "baz/foobar" + # assert a/b/c == "/bar/baz/foobar" + fun /(path: String): String do return join_path(path) + + # Returns the relative path needed to go from `self` to `dest`. + # + # assert "/foo/bar".relpath("/foo/baz") == "../baz" + # assert "/foo/bar".relpath("/baz/bar") == "../../baz/bar" + # + # If `self` or `dest` is relative, they are considered relatively to `getcwd`. + # + # In some cases, the result is still independent of the current directory: + # + # assert "foo/bar".relpath("..") == "../../.." + # + # In other cases, parts of the current directory may be exhibited: + # + # var p = "../foo/bar".relpath("baz") + # var c = getcwd.basename("") + # assert p == "../../{c}/baz" + # + # For path resolution independent of the current directory (eg. for paths in URL), + # or to use an other starting directory than the current directory, + # just force absolute paths: + # + # var start = "/a/b/c/d" + # var p2 = (start/"../foo/bar").relpath(start/"baz") + # assert p2 == "../../d/baz" + # + # + # Neither `self` or `dest` has to be real paths or to exist in directories since + # the resolution is only done with string manipulations and without any access to + # the underlying file system. + # + # If `self` and `dest` are the same directory, the empty string is returned: + # + # assert "foo".relpath("foo") == "" + # assert "foo/../bar".relpath("bar") == "" + # + # The empty string and "." designate both the current directory: + # + # assert "".relpath("foo/bar") == "foo/bar" + # assert ".".relpath("foo/bar") == "foo/bar" + # assert "foo/bar".relpath("") == "../.." + # assert "/" + "/".relpath(".") == getcwd + fun relpath(dest: String): String + do + var cwd = getcwd + var from = (cwd/self).simplify_path.split("/") + if from.last.is_empty then from.pop # case for the root directory + var to = (cwd/dest).simplify_path.split("/") + if to.last.is_empty then to.pop # case for the root directory + + # Remove common prefixes + while not from.is_empty and not to.is_empty and from.first == to.first do + from.shift + to.shift + end + + # Result is going up in `from` with ".." then going down following `to` + var from_len = from.length + if from_len == 0 then return to.join("/") + var up = "../"*(from_len-1) + ".." + if to.is_empty then return up + var res = up + "/" + to.join("/") + return res + end + + # Create a directory (and all intermediate directories if needed) + fun mkdir + do + var dirs = self.split_with("/") + var path = new FlatBuffer + if dirs.is_empty then return + if dirs[0].is_empty then + # it was a starting / + path.add('/') + end + for d in dirs do + if d.is_empty then continue + path.append(d) + path.add('/') + path.to_s.to_cstring.file_mkdir + end + end + + # Delete a directory and all of its content, return `true` on success + # + # Does not go through symbolic links and may get stuck in a cycle if there + # is a cycle in the filesystem. + fun rmdir: Bool + do + var ok = true + for file in self.files do + var file_path = self.join_path(file) + var stat = file_path.file_lstat + if stat.is_dir then + ok = file_path.rmdir and ok + else + ok = file_path.file_delete and ok + end + stat.free + end + + # Delete the directory itself + if ok then to_cstring.rmdir + + return ok + end + + # Change the current working directory + # + # "/etc".chdir + # assert getcwd == "/etc" + # "..".chdir + # assert getcwd == "/" + # + # TODO: errno + fun chdir do to_cstring.file_chdir + + # Return right-most extension (without the dot) + # + # Only the last extension is returned. + # There is no special case for combined extensions. + # + # assert "file.txt".file_extension == "txt" + # assert "file.tar.gz".file_extension == "gz" + # + # For file without extension, `null` is returned. + # Hoever, for trailing dot, `""` is returned. + # + # assert "file".file_extension == null + # assert "file.".file_extension == "" + # + # The starting dot of hidden files is never considered. + # + # assert ".file.txt".file_extension == "txt" + # assert ".file".file_extension == null + fun file_extension: nullable String + do + var last_slash = chars.last_index_of('.') + if last_slash > 0 then + return substring( last_slash+1, length ) + else + return null + end + end + + # returns files contained within the directory represented by self + fun files : Set[ String ] is extern import HashSet[String], HashSet[String].add, NativeString.to_s, String.to_cstring, HashSet[String].as(Set[String]) `{ + char *dir_path; + DIR *dir; + + dir_path = String_to_cstring( recv ); + if ((dir = opendir(dir_path)) == NULL) + { + perror( dir_path ); + exit( 1 ); + } + else + { + HashSet_of_String results; + String file_name; + struct dirent *de; + + results = new_HashSet_of_String(); + + while ( ( de = readdir( dir ) ) != NULL ) + if ( strcmp( de->d_name, ".." ) != 0 && + strcmp( de->d_name, "." ) != 0 ) + { + file_name = NativeString_to_s( strdup( de->d_name ) ); + HashSet_of_String_add( results, file_name ); + } + + closedir( dir ); + return HashSet_of_String_as_Set_of_String( results ); + } + `} +end + +redef class NativeString + private fun file_exists: Bool is extern "string_NativeString_NativeString_file_exists_0" + private fun file_stat: FileStat is extern "string_NativeString_NativeString_file_stat_0" + private fun file_lstat: FileStat `{ + struct stat* stat_element; + int res; + stat_element = malloc(sizeof(struct stat)); + res = lstat(recv, stat_element); + if (res == -1) return NULL; + return stat_element; + `} + private fun file_mkdir: Bool is extern "string_NativeString_NativeString_file_mkdir_0" + private fun rmdir: Bool `{ return rmdir(recv); `} + private fun file_delete: Bool is extern "string_NativeString_NativeString_file_delete_0" + private fun file_chdir is extern "string_NativeString_NativeString_file_chdir_0" + private fun file_realpath: NativeString is extern "file_NativeString_realpath" +end + +# This class is system dependent ... must reify the vfs +extern class FileStat `{ struct stat * `} + # Returns the permission bits of file + fun mode: Int is extern "file_FileStat_FileStat_mode_0" + # Returns the last access time + fun atime: Int is extern "file_FileStat_FileStat_atime_0" + # Returns the last status change time + fun ctime: Int is extern "file_FileStat_FileStat_ctime_0" + # Returns the last modification time + fun mtime: Int is extern "file_FileStat_FileStat_mtime_0" + # Returns the size + fun size: Int is extern "file_FileStat_FileStat_size_0" + + # Returns true if it is a regular file (not a device file, pipe, sockect, ...) + fun is_reg: Bool `{ return S_ISREG(recv->st_mode); `} + # Returns true if it is a directory + fun is_dir: Bool `{ return S_ISDIR(recv->st_mode); `} + # Returns true if it is a character device + fun is_chr: Bool `{ return S_ISCHR(recv->st_mode); `} + # Returns true if it is a block device + fun is_blk: Bool `{ return S_ISBLK(recv->st_mode); `} + # Returns true if the type is fifo + fun is_fifo: Bool `{ return S_ISFIFO(recv->st_mode); `} + # Returns true if the type is a link + fun is_lnk: Bool `{ return S_ISLNK(recv->st_mode); `} + # Returns true if the type is a socket + fun is_sock: Bool `{ return S_ISSOCK(recv->st_mode); `} +end + +# Instance of this class are standard FILE * pointers +private extern class NativeFile `{ FILE* `} + fun io_read(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_read_2" + fun io_write(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_write_2" + fun io_close: Int is extern "file_NativeFile_NativeFile_io_close_0" + fun file_stat: FileStat is extern "file_NativeFile_NativeFile_file_stat_0" + fun fileno: Int `{ return fileno(recv); `} + + new io_open_read(path: NativeString) is extern "file_NativeFileCapable_NativeFileCapable_io_open_read_1" + new io_open_write(path: NativeString) is extern "file_NativeFileCapable_NativeFileCapable_io_open_write_1" + new native_stdin is extern "file_NativeFileCapable_NativeFileCapable_native_stdin_0" + new native_stdout is extern "file_NativeFileCapable_NativeFileCapable_native_stdout_0" + new native_stderr is extern "file_NativeFileCapable_NativeFileCapable_native_stderr_0" +end + +redef class Sys + + # Standard input + var stdin: PollableIStream = new Stdin is protected writable + + # Standard output + var stdout: OStream = new Stdout is protected writable + + # Standard output for errors + var stderr: OStream = new Stderr is protected writable + +end + +# Print `objects` on the standard output (`stdout`). +protected fun printn(objects: Object...) +do + sys.stdout.write(objects.to_s) +end + +# Print an `object` on the standard output (`stdout`) and add a newline. +protected fun print(object: Object) +do + sys.stdout.write(object.to_s) + sys.stdout.write("\n") +end + +# Read a character from the standard input (`stdin`). +protected fun getc: Char +do + return sys.stdin.read_char.ascii +end + +# Read a line from the standard input (`stdin`). +protected fun gets: String +do + return sys.stdin.read_line +end + +# Return the working (current) directory +protected fun getcwd: String do return file_getcwd.to_s +private fun file_getcwd: NativeString is extern "string_NativeString_NativeString_file_getcwd_0" diff --git a/samples/Nit/meetup.nit b/samples/Nit/meetup.nit new file mode 100644 index 00000000..e5d1f561 --- /dev/null +++ b/samples/Nit/meetup.nit @@ -0,0 +1,376 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License + +# Shows a meetup and allows to modify its participants +module meetup + +import opportunity_model +import boilerplate +import welcome +import template + +# Shows a meetup and allows to modify its participants +class OpportunityMeetupPage + super OpportunityPage + + # Meetup the page is supposed to show + var meetup: nullable Meetup = null + # Answer mode for the meetup + var mode = 0 + + init from_id(id: String) do + var db = new OpportunityDB.open("opportunity") + meetup = db.find_meetup_by_id(id) + db.close + if meetup != null then mode = meetup.answer_mode + init + end + + init do + header.page_js = "mode = {mode};\n" + header.page_js += """ + function update_scores(){ + var anss = $('.answer'); + var count = {}; + var scores = {}; + var answers = []; + var maxscore = 0; + for(i=0; i < anss.length; i++){ + var incscore = 0; + var inccount = 0; + var idparts = anss[i].id.split("_"); + var ansid = idparts[1]; + var html = anss[i].innerHTML; + if(html === "
"){ + inccount = 1; + incscore = 2; + }else if(html === "
"){ + incscore = 1; + } + var intansid = parseInt(ansid) + if(answers.indexOf(intansid) == -1){ + answers.push(intansid); + } + if(ansid in count){ + count[ansid] += inccount; + }else{ + count[ansid] = inccount; + } + if(ansid in scores){ + scores[ansid] += incscore; + }else{ + scores[ansid] = incscore; + } + if(scores[ansid] > maxscore){ + maxscore = scores[ansid]; + } + } + for(i=0; i < answers.length; i++){ + var ansid = answers[i].toString(); + var el = $('#total'+ansid)[0]; + var ins = "
"+count[ansid]; + if(scores[ansid] >= maxscore){ + ins += "
"; + } + ins += "
"; + el.innerHTML = ins; + } + } + function change_answer(ele, id){ + // modify only the currently selected entry + if (in_modification_id != id) return; + + var e = document.getElementById(ele.id); + var i = e.innerHTML; + var ans = true;""" + if mode == 0 then + header.page_js += """ + if(i === "
"){ + ans = 0; + e.innerHTML = "
" + e.style.color = "red"; + }else{ + ans = 1; + e.innerHTML = "
"; + e.style.color = "green"; + }""" + + else + header.page_js += """ + if(i === "
"){ + ans = 1; + e.innerHTML = "
" + e.style.color = "#B8860B"; + }else if(i === "
"){ + ans = 0; + e.innerHTML = "
" + e.style.color = "red"; + }else{ + ans = 2; + e.innerHTML = "
"; + e.style.color = "green"; + }""" + end + header.page_js += """ + var a = ele.id.split('_') + var pid = a[1] + var aid = a[2] + update_scores(); + $.ajax({ + type: "POST", + url: "./rest/answer", + data: { + answer_id: aid, + pers_id: pid, + answer: ans + } + }); + } + function change_temp_answer(ele){ + var e = document.getElementById(ele.id); + var i = e.innerHTML;""" + if mode == 0 then + header.page_js += """ + if(i === "
"){ + e.innerHTML = "
" + e.style.color = "red"; + }else{ + e.innerHTML = "
"; + e.style.color = "green"; + } + """ + else + header.page_js += """ + if(i === "
"){ + e.innerHTML = "
"; + e.style.color = "#B8860B"; + }else if(i === "
"){ + e.innerHTML = "
" + e.style.color = "red"; + }else{ + e.innerHTML = "
"; + e.style.color = "green"; + } + """ + end + header.page_js += """ + update_scores(); + } + function add_part(ele){ + var e = document.getElementById(ele.id); + var pname = document.getElementById("new_name").value; + var arr = e.id.split("_"); + var mid = arr[1]; + var ans = $('#' + ele.id).parent().parent().parent().children(".answer"); + ansmap = {}; + for(i=0;i✔"){ + ansmap[curr.attr('id')] = 1 + }else{ + ansmap[curr.attr('id')] = 0 + }""" + else + header.page_js += """ + if(curr[0].innerHTML === "
"){ + ansmap[curr.attr('id')] = 2 + }else if(curr[0].innerHTML === "
"){ + ansmap[curr.attr('id')] = 1 + }else{ + ansmap[curr.attr('id')] = 0 + }""" + end + header.page_js += """ + } + $.ajax({ + type: "POST", + url: "./rest/meetup/new_pers", + data: { + meetup_id: mid, + persname: pname, + answers: $.param(ansmap) + } + }) + .done(function(data){ + location.reload(); + }) + .fail(function(data){ + //TODO: Notify of failure + }); + } + function remove_people(ele){ + var arr = ele.id.split("_") + var pid = arr[1] + $('#' + ele.id).parent().parent().parent().remove(); + update_scores(); + $.ajax({ + type: "POST", + url: "./rest/people", + data: { + method: "DELETE", + p_id: pid + } + }); + } + // ID of line currently open for modification + var in_modification_id = null; + function modify_people(ele, id){ + if (in_modification_id != null) { + // reset to normal values + $('#modify_'+in_modification_id).text("Modify or delete"); + $('#modify_'+in_modification_id).attr("class", "btn btn-xs btn-warning"); + $('#line_'+in_modification_id).css("background-color", ""); + $('#delete_'+in_modification_id).css("display", "none"); + } + if (in_modification_id != id) { + // activate modifiable mode + $('#modify_'+id).text("Done"); + $('#modify_'+id).attr("class", "btn btn-xs btn-success"); + $('#line_'+id).css("background-color", "LightYellow"); + $('#delete_'+id).show(); + + in_modification_id = id; + } else { + in_modification_id = null; + } + } + """ + end + + redef fun rendering do + if meetup == null then + add((new OpportunityHomePage).write_to_string) + return + end + add header + var db = new OpportunityDB.open("opportunity") + add meetup.to_html(db) + db.close + add footer + end +end + +redef class Meetup + # Build the HTML for `self` + fun to_html(db: OpportunityDB): Streamable do + var t = new Template + t.add """ +
+ + +""" + t.add "" + for i in answers(db) do + t.add "" + end + t.add "" + t.add "" + for i in participants(db) do + i.load_answers(db, self) + t.add "" + t.add "" + for j, k in i.answers do + var color + if answer_mode == 0 then + if k == 1 then + color = "green" + else + color = "red" + end + else + if k == 2 then + color = "green" + else if k == 1 then + color = "#B8860B" + else + color = "red" + end + end + t.add """" + end + t.add """""" + t.add "" + end + t.add """ + + + """ + for i in answers(db) do + t.add "" + end + t.add """ + """ + t.add "" + # Compute score for each answer + var scores = new HashMap[Int, Int] + var maxsc = 0 + for i in answers(db) do + scores[i.id] = i.score(db) + if scores[i.id] > maxsc then maxsc = scores[i.id] + end + t.add """ + + + """ + for i in answers(db) do + t.add """" + end + t.add "" + t.add """ + +""" + t.add "
Participant name" + t.add i.to_s + t.add "
" + t.add i.to_s + t.add """" + t.add "
" + if answer_mode == 0 then + if k == 1 then + t.add "✔" + else + t.add "✘" + end + else + if k == 2 then + t.add "✔" + else if k == 1 then + t.add "❓" + else + t.add "✘" + end + end + t.add "
 """ + t.add """
Total
{{{i.count(db)}}}""" + if scores.has_key(i.id) and scores[i.id] >= maxsc then + t.add """
""" + end + t.add "
" + t.add "
" + return t + end +end From 5f70776cf3ef7bc9c63354705dda2378c4452c56 Mon Sep 17 00:00:00 2001 From: Bob Tolbert Date: Sat, 27 Dec 2014 15:22:53 -0700 Subject: [PATCH 064/875] Update Hy support by adding a reference to an Atom grammar. --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 4 ++-- vendor/grammars/language-hy | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) create mode 160000 vendor/grammars/language-hy diff --git a/.gitmodules b/.gitmodules index f5f88347..f329e786 100644 --- a/.gitmodules +++ b/.gitmodules @@ -537,3 +537,6 @@ [submodule "vendor/grammars/Sublime-Nit"] path = vendor/grammars/Sublime-Nit url = https://github.com/R4PaSs/Sublime-Nit +[submodule "vendor/grammars/language-hy"] + path = vendor/grammars/language-hy + url = https://github.com/rwtolbert/language-hy diff --git a/grammars.yml b/grammars.yml index aa547ead..1b35a4a3 100644 --- a/grammars.yml +++ b/grammars.yml @@ -257,6 +257,8 @@ vendor/grammars/language-csharp: - source.nant-build vendor/grammars/language-gfm: - source.gfm +vendor/grammars/language-hy: +- source.hy vendor/grammars/language-javascript: - source.js - source.js.regexp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index fff416c7..462b13c5 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1268,13 +1268,13 @@ Haxe: Hy: type: programming - ace_mode: clojure + ace_mode: text color: "#7891b1" extensions: - .hy aliases: - hylang - tm_scope: none + tm_scope: source.hy IDL: type: programming diff --git a/vendor/grammars/language-hy b/vendor/grammars/language-hy new file mode 160000 index 00000000..f9750744 --- /dev/null +++ b/vendor/grammars/language-hy @@ -0,0 +1 @@ +Subproject commit f9750744ae4b8519314dff7d57abc527b91a0ef2 From 3957a11f25d2ea0ea84554a2d3651e1941e6ad18 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 8 Jan 2015 19:35:02 +0100 Subject: [PATCH 065/875] Add to sample to show that a false positive goes away. --- samples/Text/messages.fr | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/Text/messages.fr b/samples/Text/messages.fr index da0269bb..c8108873 100644 --- a/samples/Text/messages.fr +++ b/samples/Text/messages.fr @@ -1 +1,2 @@ the green potato=la pomme de terre verte +le nouveau type de musique=the new type of music From ec28ea299f0801bdb788e91ddf357c52558b75d6 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 8 Jan 2015 14:03:35 -0600 Subject: [PATCH 066/875] Use path for Generated? --- lib/linguist/blob_helper.rb | 2 +- lib/linguist/file_blob.rb | 11 +++++++++++ lib/linguist/lazy_blob.rb | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index c368b4d0..8be8a8a4 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -301,7 +301,7 @@ module Linguist # # Return true or false def generated? - @_generated ||= Generated.generated?(name, lambda { data }) + @_generated ||= Generated.generated?(path, lambda { data }) end # Public: Detects the Language of the blob. diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 04441935..19bb46ba 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -32,6 +32,17 @@ module Linguist # Returns a String attr_reader :name + # Public: Filename with Path + # + # Examples + # + # FileBlob.new("/path/to/linguist/lib/linguist.rb").path + # # => "/path/to/linguist/lib/linguist.rb" + # + # Returns a String + attr_reader :path + + # Public: Read file permissions # # Returns a String like '100644' diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 9691bca5..34cd7f45 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -24,6 +24,10 @@ module Linguist @mode = mode end + def path + name + end + def git_attributes @git_attributes ||= repository.fetch_attributes( name, GIT_ATTR, GIT_ATTR_FLAGS) From 1f429fb4887ee4e05de55f115085bed51cc49129 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 8 Jan 2015 14:06:00 -0600 Subject: [PATCH 067/875] Whitespace --- lib/linguist/file_blob.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 19bb46ba..916bbec3 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -42,7 +42,6 @@ module Linguist # Returns a String attr_reader :path - # Public: Read file permissions # # Returns a String like '100644' From c0fbc9ef8c3ae649d80f4c9215d5e80f14ab2d0e Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 8 Jan 2015 14:11:04 -0600 Subject: [PATCH 068/875] Updating Sublime-HTTP reference --- vendor/grammars/Sublime-HTTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/Sublime-HTTP b/vendor/grammars/Sublime-HTTP index f5a4c381..00999986 160000 --- a/vendor/grammars/Sublime-HTTP +++ b/vendor/grammars/Sublime-HTTP @@ -1 +1 @@ -Subproject commit f5a4c3819d2b1d7bb9376c255ac78f94b6564b54 +Subproject commit 0099998617eb784fa27d8a47e289058d9a6307ab From efd25ec4d2468ff5fed6280bf493c070bba9f641 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 8 Jan 2015 15:08:28 -0600 Subject: [PATCH 069/875] Start using path with LazyBlob --- lib/linguist/lazy_blob.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 34cd7f45..14477241 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -1,6 +1,7 @@ require 'linguist/blob_helper' require 'linguist/language' require 'rugged' +require 'pry' module Linguist class LazyBlob @@ -14,20 +15,18 @@ module Linguist attr_reader :repository attr_reader :oid - attr_reader :name + attr_reader :path attr_reader :mode - def initialize(repo, oid, name, mode = nil) + alias :name :path + + def initialize(repo, oid, path, mode = nil) @repository = repo @oid = oid - @name = name + @path = path @mode = mode end - def path - name - end - def git_attributes @git_attributes ||= repository.fetch_attributes( name, GIT_ATTR, GIT_ATTR_FLAGS) From 846cff572120f475324684c4c89a67c5b7b3fbb1 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 8 Jan 2015 15:10:05 -0600 Subject: [PATCH 070/875] Remove pry --- lib/linguist/lazy_blob.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 14477241..ab6c4bee 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -1,7 +1,6 @@ require 'linguist/blob_helper' require 'linguist/language' require 'rugged' -require 'pry' module Linguist class LazyBlob From 6e2b4f7514c2eadd80e6e2f2791e5f6e5752da5c Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 8 Jan 2015 16:59:43 -0600 Subject: [PATCH 071/875] Updating ref to include license --- vendor/grammars/AutoHotkey | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey index 82a64672..a2207359 160000 --- a/vendor/grammars/AutoHotkey +++ b/vendor/grammars/AutoHotkey @@ -1 +1 @@ -Subproject commit 82a646722c78cff47fae9673cb628f222b032988 +Subproject commit a2207359782c564a9a3bfe5142d7b5a250d9b18b From 24eb1d3fe2539a139545f13c9bb01b4a008c1711 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 9 Jan 2015 11:43:34 -0600 Subject: [PATCH 072/875] Updating file regex to support unlicense.txt --- test/test_grammars.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index f010b79b..188bc187 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -60,7 +60,7 @@ class TestGrammars < Minitest::Test def test_submodules_have_licenses categories = submodule_paths.group_by do |submodule| files = Dir[File.join(ROOT, submodule, "*")] - license = files.find { |path| File.basename(path) =~ /\blicen[cs]e\b/i } || files.find { |path| File.basename(path) =~ /\bcopying\b/i } + license = files.find { |path| File.basename(path) =~ /\b(un)?licen[cs]e\b/i } || files.find { |path| File.basename(path) =~ /\bcopying\b/i } if license.nil? if readme = files.find { |path| File.basename(path) =~ /\Areadme\b/i } license = readme if File.read(readme) =~ /\blicen[cs]e\b/i From 94f7dd223834e21156cd9ea7b8ab034d7b4b384b Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 9 Jan 2015 14:54:44 +0100 Subject: [PATCH 073/875] More CMake samples. --- samples/CMake/sample1.cmake | 15 +++++++ samples/CMake/sample2.cmake | 25 +++++++++++ samples/CMake/sample3.cmake | 33 ++++++++++++++ samples/CMake/sample4.cmake | 33 ++++++++++++++ samples/CMake/sample5.cmake | 89 +++++++++++++++++++++++++++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 samples/CMake/sample1.cmake create mode 100644 samples/CMake/sample2.cmake create mode 100644 samples/CMake/sample3.cmake create mode 100644 samples/CMake/sample4.cmake create mode 100644 samples/CMake/sample5.cmake diff --git a/samples/CMake/sample1.cmake b/samples/CMake/sample1.cmake new file mode 100644 index 00000000..c4b23485 --- /dev/null +++ b/samples/CMake/sample1.cmake @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.6) + +enable_testing() + +set(CMAKE_BUILD_TYPE debug) + +include_directories("/usr/local/include") + +find_library(ssl_LIBRARY NAMES ssl PATHS "/usr/local/lib") + +add_custom_command(OUTPUT "ver.c" "ver.h" COMMAND ./ver.sh) + +add_executable(foo foo.c bar.c baz.c ver.c) + +target_link_libraries(foo ${ssl_LIBRARY}) diff --git a/samples/CMake/sample2.cmake b/samples/CMake/sample2.cmake new file mode 100644 index 00000000..7411b5d6 --- /dev/null +++ b/samples/CMake/sample2.cmake @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 2.8 FATAL_ERROR) + +project(PCLVisualizer) +target_link_libraries (PCLVisualizer ${PCL_LIBRARIES}) + +#it seems it's needed only on OS X 10.9 +find_package(GLEW REQUIRED) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include -v") + +find_package(PCL 1.7 REQUIRED) + +include_directories(${PCL_INCLUDE_DIRS}) +link_directories(${PCL_LIBRARY_DIRS}) +add_definitions(${PCL_DEFINITIONS}) + +set(PCL_BUILD_TYPE Release) + +file(GLOB PCL_openni_viewer_SRC + "src/*.h" + "src/*.cpp" +) +add_executable(PCLVisualizer ${PCL_openni_viewer_SRC}) + +#add this line to solve probem in mac os x 10.9 +target_link_libraries(PCLVisualizer ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES} ${PCL_VISUALIZATION_LIBRARIES} ${PCL_FEATURES_LIBRARIES}) \ No newline at end of file diff --git a/samples/CMake/sample3.cmake b/samples/CMake/sample3.cmake new file mode 100644 index 00000000..7bd9ea77 --- /dev/null +++ b/samples/CMake/sample3.cmake @@ -0,0 +1,33 @@ +# Specifications for building user and development documentation. +# +# ==================================================================== +# Copyright (c) 2009 Ian Blumel. All rights reserved. +# +# This software is licensed as described in the file LICENSE, which +# you should have received as part of this distribution. +# ==================================================================== + +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +FIND_FILE( SPHINX sphinx-build.exe) + +# If we are windows call to the make.bat file, otherwise rely on the Makefile +# to handle the processing. +IF(WIN32) + SET(SPHINX_MAKE make.bat) +ELSE(WIN32) + SET(SPHINX_MAKE make) +ENDIF(WIN32) + +ADD_CUSTOM_TARGET( + doc_usr + COMMAND ${SPHINX_MAKE} html + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/usr +) + +ADD_CUSTOM_TARGET( + doc_dev + COMMAND ${SPHINX_MAKE} html + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dev +) + diff --git a/samples/CMake/sample4.cmake b/samples/CMake/sample4.cmake new file mode 100644 index 00000000..e3c123a0 --- /dev/null +++ b/samples/CMake/sample4.cmake @@ -0,0 +1,33 @@ +cmake_minimum_required (VERSION 2.6) + +set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin") + +list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/vala) +find_package(Vala REQUIRED) +include(ValaPrecompile) +include(ValaVersion) +ensure_vala_version("0.11.0" MINIMUM) + +project (template C) + +find_package(PkgConfig) + +pkg_check_modules(GOBJECT REQUIRED gobject-2.0) +add_definitions(${GOBJECT_CFLAGS} ${GOBJECT_CFLAGS_OTHER}) +link_libraries(${GOBJECT_LIBRARIES}) +link_directories(${GOBJECT_LIBRARY_DIRS}) + + +vala_precompile(VALA_C + src/template.vala +PACKAGES +OPTIONS + --thread +CUSTOM_VAPIS +GENERATE_VAPI +GENERATE_HEADER +DIRECTORY + gen +) + +add_executable("template" ${VALA_C}) diff --git a/samples/CMake/sample5.cmake b/samples/CMake/sample5.cmake new file mode 100644 index 00000000..f87136e7 --- /dev/null +++ b/samples/CMake/sample5.cmake @@ -0,0 +1,89 @@ +# - Check if the STDCALL function exists. +# This works for non-cdecl functions (kernel32 functions, for example) +# CHECK_STDCALL_FUNCTION_EXISTS(FUNCTION FUNCTION_DUMMY_ARGS VARIABLE) +# - macro which checks if the stdcall function exists +# FUNCTION_DECLARATION - the definition of the function ( e.g.: Sleep(500) ) +# VARIABLE - variable to store the result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link +# CMAKE_EXTRA_INCLUDE_FILES = list of extra includes to check in + +MACRO(CHECK_STDCALL_FUNCTION_EXISTS FUNCTION_DECLARATION VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + #get includes + SET(CHECK_STDCALL_FUNCTION_PREMAIN) + FOREACH(def ${CMAKE_EXTRA_INCLUDE_FILES}) + SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"${def}\"\n") + ENDFOREACH(def) + + #add some default includes + IF ( HAVE_WINDOWS_H ) + SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"windows.h\"\n") + ENDIF ( HAVE_WINDOWS_H ) + IF ( HAVE_UNISTD_H ) + SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"unistd.h\"\n") + ENDIF ( HAVE_UNISTD_H ) + IF ( HAVE_DIRECT_H ) + SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"direct.h\"\n") + ENDIF ( HAVE_DIRECT_H ) + IF ( HAVE_IO_H ) + SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"io.h\"\n") + ENDIF ( HAVE_IO_H ) + IF ( HAVE_SYS_TIMEB_H ) + SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"sys/timeb.h\"\n") + ENDIF ( HAVE_SYS_TIMEB_H ) + + STRING(REGEX REPLACE "(\\(.*\\))" "" CHECK_STDCALL_FUNCTION_EXISTS_FUNCTION ${FUNCTION_DECLARATION} ) + + SET(MACRO_CHECK_STDCALL_FUNCTION_DEFINITIONS "${CMAKE_REQUIRED_FLAGS}") + MESSAGE(STATUS "Looking for ${CHECK_STDCALL_FUNCTION_EXISTS_FUNCTION}") + + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + + SET(CHECK_STDCALL_FUNCTION_DECLARATION ${FUNCTION_DECLARATION}) + CONFIGURE_FILE("${clucene-shared_SOURCE_DIR}/cmake/CheckStdCallFunctionExists.cpp.in" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckStdCallFunctionExists.cpp" IMMEDIATE @ONLY) + FILE(READ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckStdCallFunctionExists.cpp" + CHECK_STDCALL_FUNCTION_CONTENT) + + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckStdCallFunctionExists.cpp" + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_STDCALL_FUNCTION_DEFINITIONS} + "${CHECK_STDCALL_FUNCTION_EXISTS_ADD_LIBRARIES}" + "${CHECK_STDCALL_FUNCTION_EXISTS_ADD_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + SET(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION_DECLARATION}") + MESSAGE(STATUS "Looking for ${FUNCTION_DECLARATION} - found") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the stdcall function ${FUNCTION_DECLARATION} exists passed with the following output:\n" + "${OUTPUT}\nCheckStdCallFunctionExists.cpp:\n${CHECK_STDCALL_FUNCTION_CONTENT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${FUNCTION_DECLARATION} - not found") + SET(${VARIABLE} "" CACHE INTERNAL "Have function ${FUNCTION_DECLARATION}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the stdcall function ${FUNCTION_DECLARATION} exists failed with the following output:\n" + "${OUTPUT}\nCheckStdCallFunctionExists.cpp:\n${CHECK_STDCALL_FUNCTION_CONTENT}\n\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_STDCALL_FUNCTION_EXISTS) From 1f0c88a934b28a607c4fc87b66a48299a5c900a4 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 9 Jan 2015 14:54:31 +0100 Subject: [PATCH 074/875] Restore the .cmake.in extension. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7bd8072d..77da5506 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -419,7 +419,7 @@ CLIPS: CMake: extensions: - .cmake - - .in + - .cmake.in filenames: - CMakeLists.txt ace_mode: text From 986235dce75e935b619b618ea4bb7d8a0acae224 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 3 Jan 2015 09:37:40 +0100 Subject: [PATCH 075/875] Sample file for .cmake.in --- samples/CMake/uninstall.cmake.in | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 samples/CMake/uninstall.cmake.in diff --git a/samples/CMake/uninstall.cmake.in b/samples/CMake/uninstall.cmake.in new file mode 100644 index 00000000..a5b7436f --- /dev/null +++ b/samples/CMake/uninstall.cmake.in @@ -0,0 +1,22 @@ +IF (NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt") + MESSAGE (FATAL_ERROR "Cannot find install manifest: \"@PROJECT_BINARY_DIR@/install_manifest.txt\"") +ENDIF (NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt") + +FILE (READ "@PROJECT_BINARY_DIR@/install_manifest.txt" files) +STRING (REGEX REPLACE "\n" ";" files "${files}") +FOREACH (file ${files}) + MESSAGE (STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") + IF (EXISTS "$ENV{DESTDIR}${file}") + EXEC_PROGRAM ( + "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + IF (NOT "${rm_retval}" STREQUAL 0) + MESSAGE (FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") + ENDIF (NOT "${rm_retval}" STREQUAL 0) + ELSE (EXISTS "$ENV{DESTDIR}${file}") + MESSAGE (STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") + ENDIF (EXISTS "$ENV{DESTDIR}${file}") +ENDFOREACH (file) + From f4c1cc576b1bf0a057213ca0bb333fa6de3afdf0 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 9 Jan 2015 15:15:34 -0600 Subject: [PATCH 076/875] Modifying BlobHelper and FileBlob to use path --- lib/linguist/blob_helper.rb | 4 +-- lib/linguist/file_blob.rb | 28 +++++++++----------- test/test_blob.rb | 52 +++++++++++++++++++++++++------------ 3 files changed, 49 insertions(+), 35 deletions(-) diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index 8be8a8a4..07e1ee52 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -99,7 +99,7 @@ module Linguist elsif name.nil? "attachment" else - "attachment; filename=#{EscapeUtils.escape_url(File.basename(name))}" + "attachment; filename=#{EscapeUtils.escape_url(name)}" end end @@ -233,7 +233,7 @@ module Linguist # # Return true or false def vendored? - name =~ VendoredRegexp ? true : false + path =~ VendoredRegexp ? true : false end # Public: Get each line of data diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 916bbec3..55a420ef 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -3,7 +3,7 @@ require 'linguist/blob_helper' module Linguist # A FileBlob is a wrapper around a File object to make it quack # like a Grit::Blob. It provides the basic interface: `name`, - # `data`, and `size`. + # `data`, `path` and `size`. class FileBlob include BlobHelper @@ -14,32 +14,21 @@ module Linguist # # Returns a FileBlob. def initialize(path, base_path = nil) - @path = path - @name = base_path ? path.sub("#{base_path}/", '') : path + @path = base_path ? path.sub("#{base_path}/", '') : path end # Public: Filename # # Examples # - # FileBlob.new("/path/to/linguist/lib/linguist.rb").name + # FileBlob.new("/path/to/linguist/lib/linguist.rb").path # # => "/path/to/linguist/lib/linguist.rb" # # FileBlob.new("/path/to/linguist/lib/linguist.rb", - # "/path/to/linguist").name + # "/path/to/linguist").path # # => "lib/linguist.rb" # # Returns a String - attr_reader :name - - # Public: Filename with Path - # - # Examples - # - # FileBlob.new("/path/to/linguist/lib/linguist.rb").path - # # => "/path/to/linguist/lib/linguist.rb" - # - # Returns a String attr_reader :path # Public: Read file permissions @@ -49,6 +38,13 @@ module Linguist File.stat(@path).mode.to_s(8) end + # Public: File name + # + # Returns a String + def name + File.basename(path) + end + # Public: Read file contents. # # Returns a String. @@ -77,7 +73,7 @@ module Linguist # # Returns an Array def extensions - basename, *segments = File.basename(name).split(".") + basename, *segments = File.basename(path).split(".") segments.map.with_index do |segment, index| "." + segments[index..-1].join(".") diff --git a/test/test_blob.rb b/test/test_blob.rb index 372ff13f..b70a60b2 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -22,14 +22,22 @@ class TestBlob < Minitest::Test File.expand_path("../fixtures", __FILE__) end - def sample_blob(name) + def sample_blob(name, enforce_relative = false) name = File.join(samples_path, name) unless name =~ /^\// - FileBlob.new(name, samples_path) + if enforce_relative + FileBlob.new(name, samples_path) + else + FileBlob.new(name) + end end - def fixture_blob(name) + def fixture_blob(name, enforce_relative = false) name = File.join(fixtures_path, name) unless name =~ /^\// - FileBlob.new(name, fixtures_path) + if enforce_relative + FileBlob.new(name, fixtures_path) + else + FileBlob.new(name) + end end def script_blob(name) @@ -251,8 +259,7 @@ class TestBlob < Minitest::Test assert sample_blob("Zephir/filenames/exception.zep.php").generated? assert !sample_blob("Zephir/Router.zep").generated? - - assert Linguist::Generated.generated?("node_modules/grunt/lib/grunt.js", nil) + assert sample_blob("node_modules/grunt/lib/grunt.js").generated? # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? @@ -264,7 +271,7 @@ class TestBlob < Minitest::Test assert !sample_blob("ext/extconf.rb").vendored? # Dependencies - assert sample_blob("dependencies/windows/headers/GL/glext.h").vendored? + assert sample_blob("dependencies/windows/headers/GL/glext.h", true).vendored? # Node dependencies assert sample_blob("node_modules/coffee-script/lib/coffee-script.js").vendored? @@ -289,8 +296,10 @@ class TestBlob < Minitest::Test assert sample_blob("external/jquery.min.js").vendored? # C deps - assert sample_blob("deps/http_parser/http_parser.c").vendored? - assert sample_blob("deps/v8/src/v8.h").vendored? + assert sample_blob("deps/http_parser/http_parser.c", true).vendored? + assert sample_blob("deps/v8/src/v8.h", true).vendored? + + assert sample_blob("tools/something/else.c", true).vendored? # Chart.js assert sample_blob("some/vendored/path/Chart.js").vendored? @@ -300,7 +309,10 @@ class TestBlob < Minitest::Test assert sample_blob("codemirror/mode/blah.js").vendored? # Debian packaging - assert sample_blob("debian/cron.d").vendored? + assert sample_blob("debian/cron.d", true).vendored? + + # Erlang + assert sample_blob("rebar", true).vendored? # Minified JavaScript and CSS assert sample_blob("foo.min.js").vendored? @@ -310,6 +322,9 @@ class TestBlob < Minitest::Test assert !sample_blob("foomin.css").vendored? assert !sample_blob("foo.min.txt").vendored? + #.osx + assert sample_blob(".osx", true).vendored? + # Prototype assert !sample_blob("public/javascripts/application.js").vendored? assert sample_blob("public/javascripts/prototype.js").vendored? @@ -317,6 +332,9 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/controls.js").vendored? assert sample_blob("public/javascripts/dragdrop.js").vendored? + # Samples + assert sample_blob("Samples/Ruby/foo.rb", true).vendored? + # jQuery assert sample_blob("jquery.js").vendored? assert sample_blob("public/javascripts/jquery.js").vendored? @@ -380,10 +398,10 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/modernizr.custom.01009.js").vendored? # Fabric - assert sample_blob("fabfile.py").vendored? + assert sample_blob("fabfile.py", true).vendored? # WAF - assert sample_blob("waf").vendored? + assert sample_blob("waf", true).vendored? # Visual Studio IntelliSense assert sample_blob("Scripts/jquery-1.7-vsdoc.js").vendored? @@ -405,7 +423,7 @@ class TestBlob < Minitest::Test assert sample_blob("Scripts/jquery.unobtrusive-ajax.min.js").vendored? # NuGet Packages - assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js").vendored? + assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js", true).vendored? # Font Awesome assert sample_blob("some/asset/path/font-awesome.min.css").vendored? @@ -415,15 +433,15 @@ class TestBlob < Minitest::Test assert sample_blob("some/asset/path/normalize.css").vendored? # Cocoapods - assert sample_blob('Pods/blah').vendored? + assert sample_blob('Pods/blah', true).vendored? # Html5shiv assert sample_blob("Scripts/html5shiv.js").vendored? assert sample_blob("Scripts/html5shiv.min.js").vendored? # Test fixtures - assert sample_blob("test/fixtures/random.rkt").vendored? - assert sample_blob("Test/fixtures/random.rkt").vendored? + assert sample_blob("test/fixtures/random.rkt", true).vendored? + assert sample_blob("Test/fixtures/random.rkt", true).vendored? # Cordova/PhoneGap assert sample_blob("cordova.js").vendored? @@ -437,7 +455,7 @@ class TestBlob < Minitest::Test assert sample_blob("foundation.abide.js").vendored? # Vagrant - assert sample_blob("Vagrantfile").vendored? + assert sample_blob("Vagrantfile", true).vendored? # Gradle assert sample_blob("gradlew").vendored? From d638edbeae46c09e7ece5c7ec63d0385bfec2858 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 10 Jan 2015 13:10:04 +0100 Subject: [PATCH 077/875] Remove grammar for Racket --- .gitmodules | 3 --- grammars.yml | 2 -- lib/linguist/languages.yml | 2 +- vendor/grammars/racket-tmbundle | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) delete mode 160000 vendor/grammars/racket-tmbundle diff --git a/.gitmodules b/.gitmodules index 7f4d7440..93d0e355 100644 --- a/.gitmodules +++ b/.gitmodules @@ -112,9 +112,6 @@ [submodule "vendor/grammars/nesC.tmbundle"] path = vendor/grammars/nesC.tmbundle url = https://github.com/cdwilson/nesC.tmbundle -[submodule "vendor/grammars/racket-tmbundle"] - path = vendor/grammars/racket-tmbundle - url = https://github.com/christophevg/racket-tmbundle [submodule "vendor/grammars/haxe-sublime-bundle"] path = vendor/grammars/haxe-sublime-bundle url = https://github.com/clemos/haxe-sublime-bundle diff --git a/grammars.yml b/grammars.yml index 46f1bdb1..5ad733b6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -362,8 +362,6 @@ vendor/grammars/python-django.tmbundle: vendor/grammars/r.tmbundle: - source.r - text.tex.latex.rd -vendor/grammars/racket-tmbundle: -- source.racket vendor/grammars/restructuredtext.tmbundle: - text.restructuredtext vendor/grammars/ruby-haml.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 77da5506..fb4e5ec6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2475,7 +2475,7 @@ Racket: - .rktd - .rktl - .scrbl - tm_scope: source.racket + tm_scope: none ace_mode: lisp Ragel in Ruby Host: diff --git a/vendor/grammars/racket-tmbundle b/vendor/grammars/racket-tmbundle deleted file mode 160000 index a6b66624..00000000 --- a/vendor/grammars/racket-tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a6b66624d075745d89c3221bb088c8a1925175da From ecaad7979fb4e5028c66d4ab1d8a712a23bff1b1 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 10 Jan 2015 14:40:58 +0100 Subject: [PATCH 078/875] New grammar for Racket --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Racket | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Racket diff --git a/.gitmodules b/.gitmodules index 93d0e355..af8c2d11 100644 --- a/.gitmodules +++ b/.gitmodules @@ -543,3 +543,6 @@ [submodule "vendor/grammars/language-hy"] path = vendor/grammars/language-hy url = https://github.com/rwtolbert/language-hy +[submodule "vendor/grammars/Racket"] + path = vendor/grammars/Racket + url = https://github.com/soegaard/racket-highlight-for-github diff --git a/grammars.yml b/grammars.yml index 5ad733b6..bb06d939 100644 --- a/grammars.yml +++ b/grammars.yml @@ -56,6 +56,8 @@ vendor/grammars/PHP-Twig.tmbundle: - text.html.twig vendor/grammars/RDoc.tmbundle: - text.rdoc +vendor/grammars/Racket: +- source.racket vendor/grammars/SCSS.tmbundle: - source.scss vendor/grammars/Scalate.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index fb4e5ec6..77da5506 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2475,7 +2475,7 @@ Racket: - .rktd - .rktl - .scrbl - tm_scope: none + tm_scope: source.racket ace_mode: lisp Ragel in Ruby Host: diff --git a/vendor/grammars/Racket b/vendor/grammars/Racket new file mode 160000 index 00000000..02739c25 --- /dev/null +++ b/vendor/grammars/Racket @@ -0,0 +1 @@ +Subproject commit 02739c25aefb484a031e58ff7a628adf4c97225f From 5d0e9484ce9a3c1ae22637cfc61bda088a74c315 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 11 Jan 2015 10:02:52 +0100 Subject: [PATCH 079/875] Remove last mentions of lexer --- lib/linguist/language.rb | 24 ++++-------------------- lib/linguist/languages.yml | 1 - 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 5f1808ce..365beb06 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -155,7 +155,7 @@ module Linguist # Language.find_by_alias('cpp') # # => # # - # Returns the Lexer or nil if none was found. + # Returns the Language or nil if none was found. def self.find_by_alias(name) name && @alias_index[name.downcase] end @@ -219,7 +219,7 @@ module Linguist end - # Public: Look up Language by its name or lexer. + # Public: Look up Language by its name. # # name - The String name of the Language # @@ -243,7 +243,7 @@ module Linguist # # This list is configured in "popular.yml". # - # Returns an Array of Lexers. + # Returns an Array of Languages. def self.popular @popular ||= all.select(&:popular?).sort_by { |lang| lang.name.downcase } end @@ -255,7 +255,7 @@ module Linguist # # This list is created from all the languages not listed in "popular.yml". # - # Returns an Array of Lexers. + # Returns an Array of Languages. def self.unpopular @unpopular ||= all.select(&:unpopular?).sort_by { |lang| lang.name.downcase } end @@ -375,11 +375,6 @@ module Linguist # Returns the name String attr_reader :search_term - # Public: Get Lexer - # - # Returns the Lexer - attr_reader :lexer - # Public: Get the name of a TextMate-compatible scope # # Returns the scope @@ -495,16 +490,6 @@ module Linguist @searchable end - # Public: Highlight syntax of text - # - # text - String of code to be highlighted - # options - A Hash of options (defaults to {}) - # - # Returns html String - def colorize(text, options = {}) - lexer.highlight(text, options) - end - # Public: Return name as String representation def to_s name @@ -580,7 +565,6 @@ module Linguist :color => options['color'], :type => options['type'], :aliases => options['aliases'], - :lexer => options['lexer'], :tm_scope => options['tm_scope'], :ace_mode => options['ace_mode'], :wrap => options['wrap'], diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 77da5506..be4de69d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2421,7 +2421,6 @@ R: RAML: type: data - lexer: YAML ace_mode: yaml tm_scope: source.yaml color: "#77d9fb" From fbc99cf7e662bc91e65dd18eb5af5960e5f60dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Abi=C3=A1n?= Date: Sun, 11 Jan 2015 19:43:20 +0100 Subject: [PATCH 080/875] Update languages.yml with *.sagews --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 77da5506..e1b57dc9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2648,6 +2648,7 @@ Sage: group: Python extensions: - .sage + - .sagews tm_scope: source.python ace_mode: python From ef4b25591b1a0a3060835b5cac885d4f14520932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Abi=C3=A1n?= Date: Sun, 11 Jan 2015 22:08:56 +0100 Subject: [PATCH 081/875] Sample sagews file, as requested --- samples/Sage/polinomios.sagews | 136 +++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 samples/Sage/polinomios.sagews diff --git a/samples/Sage/polinomios.sagews b/samples/Sage/polinomios.sagews new file mode 100644 index 00000000..4edb2234 --- /dev/null +++ b/samples/Sage/polinomios.sagews @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# +# Funciones en Python/Sage para el trabajo con polinomios con una +# incógnita (x). +# +# Copyright (C) 2014-2015, David Abián +# +# This program 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, either version 3 of the License, or (at your option) +# any later version. +# +# This program 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 +# this program. If not, see . + +def pols (grado=-1, K=GF(2), mostrar=False): + """Devuelve la lista de polinomios constantes y no constantes de + coeficientes mónicos y grado igual o menor que el especificado. + Si el grado indicado no es válido, devuelve una lista vacía. + """ + lpols = [] + if not grado.is_integer(): + grado = grado.round() + if grado >= 0: + var('x') + xs = vector([(x^i) for i in range(grado+1)]) + V = VectorSpace(K,grado+1) + lpols = [cs*xs for cs in V] + if mostrar: + for pol in lpols: + print pol + return lpols + +def polsNoCtes (grado=-1, K=GF(2), mostrar=False): + """Devuelve la lista de polinomios no constantes de coeficientes mónicos y + grado igual o menor que el especificado. + Si el grado indicado no es válido, devuelve una lista vacía. + """ + lpols = [] + if not grado.is_integer(): + grado = grado.round() + if grado >= 0: + var('x') + xs = vector([(x^i) for i in range(grado+1)]) + for cs in K^(grado+1): + if cs[:grado] != vector(grado*[0]): # no constantes + lpols += [cs*xs] + if mostrar: + for pol in lpols: + print pol + return lpols + +def polsMismoGrado (grado=-1, K=GF(2), mostrar=False): + """Devuelve la lista de polinomios de coeficientes mónicos del grado + especificado. + Si el grado indicado no es válido, devuelve una lista vacía. + """ + lpols = [] + if not grado.is_integer(): + grado = grado.round() + if grado >= 0: + var('x') + xs = vector([(x^(grado-i)) for i in [0..grado]]) + for cs in K^(grado+1): + if cs[0] != 0: # polinomios del mismo grado + lpols += [cs*xs] + if mostrar: + for pol in lpols: + print pol + return lpols + +def excluirReducibles (lpols=[], mostrar=False): + """Filtra una lista dada de polinomios de coeficientes mónicos y devuelve + aquellos irreducibles. + """ + var('x') + irreds = [] + for p in lpols: + fp = (p.factor_list()) + if len(fp) == 1 and fp[0][1] == 1: + irreds += [p] + if mostrar: + for pol in irreds: + print pol + return irreds + +def vecPol (vec=random_vector(GF(2),0)): + """Transforma los coeficientes dados en forma de vector en el polinomio + que representan. + + Por ejemplo, con vecPol(vector([1,0,3,1])) se obtiene x³ + 3*x + 1. + + Para la función opuesta, véase polVec(). + """ + var('x') + xs = vector([x^(len(vec)-1-i) for i in range(len(vec))]) + return vec*xs + +def polVec (p=None): + """Devuelve el vector de coeficientes del polinomio dado que acompañan a la + incógnita x, de mayor a menor grado. + + Por ejemplo, con polVec(x^3 + 3*x + 1) se obtiene el vector (1, 0, 3, 1). + + Para la función opuesta, véase vecPol(). + """ + cs = [] + if p != None: + var('x') + p(x) = p + for i in [0..p(x).degree(x)]: + cs.append(p(x).coefficient(x,i)) + cs = list(reversed(cs)) + return vector(cs) + +def completar2 (p=0): + """Aplica el método de completar cuadrados en parábolas al polinomio dado de + grado 2 y lo devuelve en su nueva forma. + + Si el polinomio dado no es válido, devuelve 0. + + Por ejemplo, con complCuad(3*x^2 + 12*x + 5) se obtiene 3*(x + 2)^2 - 7. + """ + var('x') + p(x) = p.expand() + if p(x).degree(x) != 2: + p(x) = 0 + else: + cs = polVec(p(x)) + p(x) = cs[0]*(x+(cs[1]/(2*cs[0])))^2+(4*cs[0]*cs[2]-cs[1]^2)/(4*cs[0]) + return p(x) From 0328b1cb3c7c5540617fd30479f11f3e5c46afff Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Wed, 14 Jan 2015 08:54:49 -0500 Subject: [PATCH 082/875] Use the original FileBlob path for filesystem access FileBlob now remembers the full path that was passed to its constructor, and uses that for performing filesystem access. FileBlob#path continues to return a relative path as before. This ensures that you can call methods like #size and #mode on FileBlobs with relative paths, regardless of the current working directory. --- lib/linguist/file_blob.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 55a420ef..2ca74c2d 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -14,6 +14,7 @@ module Linguist # # Returns a FileBlob. def initialize(path, base_path = nil) + @fullpath = path @path = base_path ? path.sub("#{base_path}/", '') : path end @@ -35,28 +36,28 @@ module Linguist # # Returns a String like '100644' def mode - File.stat(@path).mode.to_s(8) + File.stat(@fullpath).mode.to_s(8) end # Public: File name # # Returns a String def name - File.basename(path) + File.basename(@fullpath) end # Public: Read file contents. # # Returns a String. def data - File.read(@path) + File.read(@fullpath) end # Public: Get byte size # # Returns an Integer. def size - File.size(@path) + File.size(@fullpath) end # Public: Get file extension. @@ -73,7 +74,7 @@ module Linguist # # Returns an Array def extensions - basename, *segments = File.basename(path).split(".") + basename, *segments = name.split(".") segments.map.with_index do |segment, index| "." + segments[index..-1].join(".") From 96c7bc30d86d99af5f29c23dc84f3ecc0d5e7841 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Wed, 14 Jan 2015 08:57:14 -0500 Subject: [PATCH 083/875] Simplify blob tests Now that FileBlobs with relative paths can still access their files on disk, we can use relative paths for all FileBlobs in the test. This more closely matches the behavior in github.com's codebase, where all blobs use relative paths. --- test/test_blob.rb | 46 +++++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/test/test_blob.rb b/test/test_blob.rb index b70a60b2..4c4f7978 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -22,22 +22,14 @@ class TestBlob < Minitest::Test File.expand_path("../fixtures", __FILE__) end - def sample_blob(name, enforce_relative = false) + def sample_blob(name) name = File.join(samples_path, name) unless name =~ /^\// - if enforce_relative - FileBlob.new(name, samples_path) - else - FileBlob.new(name) - end + FileBlob.new(name, samples_path) end - def fixture_blob(name, enforce_relative = false) + def fixture_blob(name) name = File.join(fixtures_path, name) unless name =~ /^\// - if enforce_relative - FileBlob.new(name, fixtures_path) - else - FileBlob.new(name) - end + FileBlob.new(name, fixtures_path) end def script_blob(name) @@ -271,7 +263,7 @@ class TestBlob < Minitest::Test assert !sample_blob("ext/extconf.rb").vendored? # Dependencies - assert sample_blob("dependencies/windows/headers/GL/glext.h", true).vendored? + assert sample_blob("dependencies/windows/headers/GL/glext.h").vendored? # Node dependencies assert sample_blob("node_modules/coffee-script/lib/coffee-script.js").vendored? @@ -296,10 +288,10 @@ class TestBlob < Minitest::Test assert sample_blob("external/jquery.min.js").vendored? # C deps - assert sample_blob("deps/http_parser/http_parser.c", true).vendored? - assert sample_blob("deps/v8/src/v8.h", true).vendored? + assert sample_blob("deps/http_parser/http_parser.c").vendored? + assert sample_blob("deps/v8/src/v8.h").vendored? - assert sample_blob("tools/something/else.c", true).vendored? + assert sample_blob("tools/something/else.c").vendored? # Chart.js assert sample_blob("some/vendored/path/Chart.js").vendored? @@ -309,10 +301,10 @@ class TestBlob < Minitest::Test assert sample_blob("codemirror/mode/blah.js").vendored? # Debian packaging - assert sample_blob("debian/cron.d", true).vendored? + assert sample_blob("debian/cron.d").vendored? # Erlang - assert sample_blob("rebar", true).vendored? + assert sample_blob("rebar").vendored? # Minified JavaScript and CSS assert sample_blob("foo.min.js").vendored? @@ -323,7 +315,7 @@ class TestBlob < Minitest::Test assert !sample_blob("foo.min.txt").vendored? #.osx - assert sample_blob(".osx", true).vendored? + assert sample_blob(".osx").vendored? # Prototype assert !sample_blob("public/javascripts/application.js").vendored? @@ -333,7 +325,7 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/dragdrop.js").vendored? # Samples - assert sample_blob("Samples/Ruby/foo.rb", true).vendored? + assert sample_blob("Samples/Ruby/foo.rb").vendored? # jQuery assert sample_blob("jquery.js").vendored? @@ -398,10 +390,10 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/modernizr.custom.01009.js").vendored? # Fabric - assert sample_blob("fabfile.py", true).vendored? + assert sample_blob("fabfile.py").vendored? # WAF - assert sample_blob("waf", true).vendored? + assert sample_blob("waf").vendored? # Visual Studio IntelliSense assert sample_blob("Scripts/jquery-1.7-vsdoc.js").vendored? @@ -423,7 +415,7 @@ class TestBlob < Minitest::Test assert sample_blob("Scripts/jquery.unobtrusive-ajax.min.js").vendored? # NuGet Packages - assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js", true).vendored? + assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js").vendored? # Font Awesome assert sample_blob("some/asset/path/font-awesome.min.css").vendored? @@ -433,15 +425,15 @@ class TestBlob < Minitest::Test assert sample_blob("some/asset/path/normalize.css").vendored? # Cocoapods - assert sample_blob('Pods/blah', true).vendored? + assert sample_blob('Pods/blah').vendored? # Html5shiv assert sample_blob("Scripts/html5shiv.js").vendored? assert sample_blob("Scripts/html5shiv.min.js").vendored? # Test fixtures - assert sample_blob("test/fixtures/random.rkt", true).vendored? - assert sample_blob("Test/fixtures/random.rkt", true).vendored? + assert sample_blob("test/fixtures/random.rkt").vendored? + assert sample_blob("Test/fixtures/random.rkt").vendored? # Cordova/PhoneGap assert sample_blob("cordova.js").vendored? @@ -455,7 +447,7 @@ class TestBlob < Minitest::Test assert sample_blob("foundation.abide.js").vendored? # Vagrant - assert sample_blob("Vagrantfile", true).vendored? + assert sample_blob("Vagrantfile").vendored? # Gradle assert sample_blob("gradlew").vendored? From 1a1e21f34407e758fca0c92d488c6caa5254f6e5 Mon Sep 17 00:00:00 2001 From: phuicy Date: Wed, 14 Jan 2015 18:11:33 +0000 Subject: [PATCH 084/875] Added Web Ontology Language Support As syntax is only xml, it is a very simple fix. --- lib/linguist/languages.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e1b57dc9..ec614526 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3090,6 +3090,12 @@ WebIDL: - .webidl tm_scope: source.webidl ace_mode: text + +Web Ontology Language: + type: markup + extensions: + - .owl + ace_mode: xml XC: type: programming From d39f5eedf1f3dd28a48c1eaa1a05aee4bac52934 Mon Sep 17 00:00:00 2001 From: Guy Burroughes Date: Wed, 14 Jan 2015 19:14:16 +0000 Subject: [PATCH 085/875] Fixed issues for web ontology to pass tests --- lib/linguist/languages.yml | 14 +- samples/Web Ontology Language/sample.owl | 6858 ++++++++++++++++++++++ 2 files changed, 6866 insertions(+), 6 deletions(-) create mode 100644 samples/Web Ontology Language/sample.owl diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ec614526..fd5241a7 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3084,18 +3084,20 @@ Volt: tm_scope: source.d ace_mode: d +Web Ontology Language: + type: markup + color: "#3994bc" + extensions: + - .owl + tm_scope: text.xml + ace_mode: xml + WebIDL: type: programming extensions: - .webidl tm_scope: source.webidl ace_mode: text - -Web Ontology Language: - type: markup - extensions: - - .owl - ace_mode: xml XC: type: programming diff --git a/samples/Web Ontology Language/sample.owl b/samples/Web Ontology Language/sample.owl new file mode 100644 index 00000000..612186db --- /dev/null +++ b/samples/Web Ontology Language/sample.owl @@ -0,0 +1,6858 @@ + + + + + + + +]> + + + + + v.1.4. Added Food class (used in domain/range of hasIngredient), Added several hasCountryOfOrigin restrictions on pizzas, Made hasTopping invers functional + version 1.5 + v.1.5. Removed protege.owl import and references. Made ontology URI date-independent + An example ontology that contains all constructs required for the various versions of the Pizza Tutorial run by Manchester University (see http://www.co-ode.org/resources/tutorials/) + + + + + + + + + + + + + Americana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AmericanaPicante + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeAnchovies + + + + + + + + + + + CoberturaDeArtichoke + + + + + + + + + + + + + + + + + CoberturaDeAspargos + + + + + + + + + + + + + + + + + Cajun + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeCajun + + + + + + + + + + + + + + + + + CoberturaDeCaper + + + + + + + + + + + + + + + + + Capricciosa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Caprina + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeQueijo + + + + + + + + + + + Any pizza that has at least 1 cheese topping. + PizzaComQueijo + + + + + + + + + + + + + + + + + + + CoberturaDeQueijoComVegetais + This class will be inconsistent. This is because we have given it 2 disjoint parents, which means it could never have any members (as nothing can simultaneously be a CheeseTopping and a VegetableTopping). NB Called ProbeInconsistentTopping in the ProtegeOWL Tutorial. + + + + + + + + + + + + + + CoberturaDeFrango + + + + + + + + + + + + + + + + + Pais + A class that is equivalent to the set of individuals that are described in the enumeration - ie Countries can only be either America, England, France, Germany or Italy and nothing else. Note that these individuals have been asserted to be allDifferent from each other. + + + + + + + + + + + + + + + + + + + + + + + + BaseEspessa + + + + + + + + + + + + + + + + + Fiorentina + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDePeixe + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaQuatroQueijos + + + + + + + + + + + + + + + + + QuatroQueijos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeFrutas + + + + + + + + + + + FrutosDoMar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeAlho + + + + + + + + + + + + + + + + + Giardiniera + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeQueijoDeCabra + + + + + + + + + + + + + + + + + CoberturaDeGorgonzola + + + + + + + + + + + + + + + + + CoberturaDePimentaoVerde + + + + + + + + + + + CoberturaDePresunto + + + + + + + + + + + CoberturaDeErvas + + + + + + + + + + + Picante + + + + + + + + + + + CoberturaDePimentaoVerdePicante + + + + + + + + + + + + + + + + + CoberturaDeBifePicante + + + + + + + + + + + + + + + + + A class to demonstrate mistakes made with setting a property domain. The property hasTopping has a domain of Pizza. This means that the reasoner can infer that all individuals using the hasTopping property must be of type Pizza. Because of the restriction on this class, all members of IceCream must use the hasTopping property, and therefore must also be members of Pizza. However, Pizza and IceCream are disjoint, so this causes an inconsistency. If they were not disjoint, IceCream would be inferred to be a subclass of Pizza. + Sorvete + + + + + + + + + + + + + + + + + PizzaInteressante + Any pizza that has at least 3 toppings. Note that this is a cardinality constraint on the hasTopping property and NOT a qualified cardinality constraint (QCR). A QCR would specify from which class the members in this relationship must be. eg has at least 3 toppings from PizzaTopping. This is currently not supported in OWL. + + + + + + 3 + + + + + + + + + + + + + CoberturaDeJalapeno + + + + + + + + + + + + + + + + + LaReine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeLeek + + + + + + + + + + + + + + + + + Margherita + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeCarne + + + + + + + + + + + Any pizza that has at least one meat topping + PizzaDeCarne + + + + + + + + + + + + + + + + + + + Media + + + + + + + + + + + NaoPicante + + + + + + + + + + + CoberturaDeFrutosDoMarMistos + + + + + + + + + + + CoberturaDeMozzarella + + + + + + + + + + + + + + + + + + + + + + + Cogumelo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeCogumelo + + + + + + + + + + + + + + + + + A pizza that can be found on a pizza menu + PizzaComUmNome + + + + + + + + + + + Napoletana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Any Pizza that is not a VegetarianPizza + PizzaNaoVegetariana + + + + + + + + + + + + + + + + + + + + CoberturaDeCastanha + + + + + + + + + + + + + + + + + CoberturaDeAzeitona + + + + + + + + + + + + + + + + + CoberturaDeCebola + + + + + + + + + + + + + + + + + CoberturaDePrezuntoParma + + + + + + + + + + + + + + + + + Parmense + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeParmesao + + + + + + + + + + + + + + + + + CoberturaPeperonata + + + + + + + + + + + + + + + + + CoberturaDeCalabreza + + + + + + + + + + + + + + + + + CoberturaDePimentao + + + + + + + + + + + CoberturaPetitPois + + + + + + + + + + + + + + + + + CoberturaPineKernels + + + + + + + + + + + Pizza + + + + + + + + + + + + + + + + + BaseDaPizza + + + + + + + + + + + CoberturaDaPizza + + + + + + + + + + + PolloAdAstra + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeCamarao + + + + + + + + + + + CoberturaPrinceCarlo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + QuatroQueijos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This defined class has conditions that are part of the definition: ie any Pizza that has the country of origin, Italy is a RealItalianPizza. It also has conditions that merely describe the members - that all RealItalianPizzas must only have ThinAndCrispy bases. In essence, all pizzas from Italy must have ThinAndCrispy bases. + PizzaItalianaReal + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeCebolaVermelha + + + + + + + + + + + CoberturaRocket + + + + + + + + + + + + + + + + + Rosa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaRosemary + + + + + + + + + + + + + + + + + CoberturaEmMolho + + + + + + + + + + + Siciliana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoberturaDeTomateFatiado + + + + + + + + + + + + + + + + + SloppyGiuseppe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Soho + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A ValuePartition that describes only values from Hot, Medium or Mild. NB Subclasses can themselves be divided up into further partitions. + Tempero + + + + + + + + + + + + + + + + + + + + Any pizza that has a spicy topping is a SpicyPizza + PizzaTemperada + + + + + + + + + + + + + + + + + + + An alternative definition for the SpicyPizza which does away with needing a definition of SpicyTopping and uses a slightly more complicated restriction: Pizzas that have at least one topping that is both a PizzaTopping and has spiciness hot are members of this class. + PizzaTemperadaEquivalente + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Any pizza topping that has spiciness Hot + CoberturaTemperada + + + + + + + + + + + + + + + + + + + CoberturaDeEspinafre + + + + + + + + + + + + + + + + + CoberturaSultana + + + + + + + + + + + + + + + + + CoberturaDeTomateRessecadoAoSol + + + + + + + + + + + + + + + + + CoberturaDePimentaoDoce + + + + + + + + + + + + + + + + + BaseFinaEQuebradica + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MolhoTobascoPepper + + + + + + + + + + + + + + + + + CoberturaDeTomate + + + + + + + + + + + + + + + + + PizzaAberta + An unclosed Pizza cannot be inferred to be either a VegetarianPizza or a NonVegetarianPizza, because it might have other toppings. + + + + + + + + + + + + + + + + + ValorDaParticao + A ValuePartition is a pattern that describes a restricted set of classes from which a property can be associated. The parent class is used in restrictions, and the covering axiom means that only members of the subclasses may be used as values. The possible subclasses cannot be extended without updating the ValuePartition class. + + + + + + + + CoberturaDeVegetais + + + + + + + + + + + PizzaVegetariana + Any pizza that does not have fish topping and does not have meat topping is a VegetarianPizza. Members of this class do not need to have any toppings at all. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Any pizza that only has vegetarian toppings or no toppings is a VegetarianPizzaEquiv1. Should be inferred to be equivalent to VegetarianPizzaEquiv2. Not equivalent to VegetarianPizza because PizzaTopping is not covering + PizzaVegetarianaEquivalente1 + + + + + + + + + + + + + + + + + + + An alternative to VegetarianPizzaEquiv1 that does not require a definition of VegetarianTopping. Perhaps more difficult to maintain. Not equivalent to VegetarianPizza + PizzaVegetarianaEquivalente2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An example of a covering axiom. VegetarianTopping is equivalent to the union of all toppings in the given axiom. VegetarianToppings can only be Cheese or Vegetable or....etc. + CoberturaVegetariana + + + + + + + + + + + + + + + + + + + + + + + + + Veneziana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NB Transitive - the ingredients of ingredients are ingredients of the whole + + + + + + + + + + + + + + + + + + A property created to be used with the ValuePartition - Spiciness. + + + + + + + + + + + + Note that hasTopping is inverse functional because isToppingOf is functional + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The inverse property tree to hasIngredient - all subproperties and attributes of the properties should reflect those under hasIngredient. + + + + + + + + + + + + + + + + + + Any given instance of topping should only be added to a single pizza (no cheap half-measures on our pizzas) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 774d18ed8f651155c3554b9b3851960030f0352f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Michael=20O=2E=20Hegg=C3=B8?= Date: Sat, 6 Dec 2014 21:39:32 +0100 Subject: [PATCH 086/875] Add support for Turtle and SPARQL --- .gitmodules | 3 + grammars.yml | 3 + lib/linguist/languages.yml | 15 +++ samples/SPARQL/foaf.sparql | 7 + samples/SPARQL/string-matching.sparql | 40 ++++++ samples/Turtle/gnd-record.ttl | 183 ++++++++++++++++++++++++++ samples/Turtle/rdf-syntax-grammar.ttl | 10 ++ vendor/grammars/turtle.tmbundle | 1 + 8 files changed, 262 insertions(+) create mode 100644 samples/SPARQL/foaf.sparql create mode 100644 samples/SPARQL/string-matching.sparql create mode 100644 samples/Turtle/gnd-record.ttl create mode 100644 samples/Turtle/rdf-syntax-grammar.ttl create mode 160000 vendor/grammars/turtle.tmbundle diff --git a/.gitmodules b/.gitmodules index af8c2d11..79209740 100644 --- a/.gitmodules +++ b/.gitmodules @@ -546,3 +546,6 @@ [submodule "vendor/grammars/Racket"] path = vendor/grammars/Racket url = https://github.com/soegaard/racket-highlight-for-github +[submodule "vendor/grammars/turtle.tmbundle"] + path = vendor/grammars/turtle.tmbundle + url = https://github.com/peta/turtle.tmbundle diff --git a/grammars.yml b/grammars.yml index bb06d939..c85b2de6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -452,6 +452,9 @@ vendor/grammars/thrift.tmbundle: - source.thrift vendor/grammars/toml.tmbundle: - source.toml +vendor/grammars/turtle.tmbundle: +- source.sparql +- source.turtle vendor/grammars/verilog.tmbundle: - source.verilog vendor/grammars/x86-assembly-textmate-bundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e1b57dc9..9f178663 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2613,6 +2613,14 @@ SCSS: extensions: - .scss +SPARQL: + type: data + tm_scope: source.sparql + ace_mode: text + extensions: + - .sparql + - .rq + SQF: type: programming color: "#FFCB1F" @@ -2970,6 +2978,13 @@ Turing: tm_scope: none ace_mode: text +Turtle: + type: data + extensions: + - .ttl + tm_scope: source.turtle + ace_mode: text + Twig: type: markup group: PHP diff --git a/samples/SPARQL/foaf.sparql b/samples/SPARQL/foaf.sparql new file mode 100644 index 00000000..699360c7 --- /dev/null +++ b/samples/SPARQL/foaf.sparql @@ -0,0 +1,7 @@ +PREFIX foaf: +SELECT ?name ?email +WHERE { + ?person a foaf:Person. + ?person foaf:name ?name. + ?person foaf:mbox ?email. +} diff --git a/samples/SPARQL/string-matching.sparql b/samples/SPARQL/string-matching.sparql new file mode 100644 index 00000000..424ca987 --- /dev/null +++ b/samples/SPARQL/string-matching.sparql @@ -0,0 +1,40 @@ +PREFIX owl: +PREFIX rdf: +PREFIX skos: + +SELECT DISTINCT ?s ?label +WHERE { + SERVICE + { + SELECT DISTINCT ?s ?label ?plabel ?alabel ?hlabel (GROUP_CONCAT(DISTINCT STR(?type)) as ?types) + WHERE { + GRAPH + { + ?s rdf:type + { + ?s rdf:type ?type . + ?s ?prop ?match . + FILTER ( + strstarts(lcase(str(?match)), "test") && !(?match != ?label && strstarts(lcase(str(?label)), "test")) + ) + OPTIONAL { + ?s skos:prefLabel ?label . + FILTER (langMatches(lang(?label), "en")) + } + OPTIONAL { # in case previous OPTIONAL block gives no labels + ?s ?prop ?match . + ?s skos:prefLabel ?label . + FILTER (langMatches(lang(?label), lang(?match))) } + } + FILTER NOT EXISTS { ?s owl:deprecated true } + } + BIND(IF(?prop = skos:prefLabel && ?match != ?label, ?match, "") as ?plabel) + BIND(IF(?prop = skos:altLabel, ?match, "") as ?alabel) + BIND(IF(?prop = skos:hiddenLabel, ?match, "") as ?hlabel) + VALUES (?prop) { (skos:prefLabel) (skos:altLabel) (skos:hiddenLabel) } + } + GROUP BY ?match ?s ?label ?plabel ?alabel ?hlabel ?prop + ORDER BY lcase(str(?match)) lang(?match) + LIMIT 10 + } +} diff --git a/samples/Turtle/gnd-record.ttl b/samples/Turtle/gnd-record.ttl new file mode 100644 index 00000000..ef1d2c35 --- /dev/null +++ b/samples/Turtle/gnd-record.ttl @@ -0,0 +1,183 @@ +@prefix foaf: . +@prefix owl: . +@prefix gndo: . +@prefix xsd: . + + + a ; + foaf:page ; + owl:sameAs , , ; + gndo:gndIdentifier "118514768" ; + gndo:oldAuthorityNumber "(DE-588)1022091077", "(DE-588a)118514768", "(DE-588a)141399074", "(DE-588a)139089691", "(DE-588a)141300248", "(DE-588a)136949541", "(DE-588a)134336232", "(DE-588a)12794544X", "(DE-588a)12736630X", "(DE-588a)12722811X", "(DE-588a)127228098", "(DE-588a)127228101" ; + gndo:variantNameForThePerson "Brêcht, Becton", "Brecht, Bert", "Brecht, Bertolʹ", "Brecht, Berthold", "Brecht, Bertholt", "Brecht, Bertold", "Brecht, B.", "Brecht, Eugen Berthold Friedrich", "Brecht, ...", "Brecht-Eisler, ...", "Becht, Bertolt", "Beituo'erte-Bulaixite", "Berchito, B.", "Brechtas, B.", "Brechts, Bertolts", "Brehd, Berd", "Breht, Bertolt", "Brehts, Bertolts", "Breḳhṭ, Bārṭolṭ", "Brekt, Berṭolṭ", "Brekṭ, Berṭōlṭ", "Breḳṭ, Berṭôlṭ", "Breśṭ, Berṭalṭa", "Breṣṭa, Barṭolṭa", "Brišt, Bartūlt", "Brišt, Birtūld", "Brišt, Birtult", "Buchito, Berutorutu", "Bulaixite, Beituo'erte", "Bulaixite, ...", "Burehito, Berutoruto", "Burehito, ...", "B. B.", "Larsen, Berthold", "Mprecht, Mpertolt", "Mprecht, ...", "Pulaihsit'ê, Peit'oĉrht'ê", "Pulaihsit'ê, ...", "Pŭrehit'ŭ, Peŏt'olt'ŭ", "Bŭrehit'ŭ, Beŏt'olt'ŭ", "برشت، برتولد", "브레히트, 베르톨트", "ברכט, ברטולט", "贝·布莱希特", "布莱希特, 贝", "ブレヒト, ベルトルト" ; + gndo:variantNameEntityForThePerson [ + gndo:forename "Becton" ; + gndo:surname "Brêcht" + ], [ + gndo:forename "Bert" ; + gndo:surname "Brecht" + ], [ + gndo:forename "Bertolʹ" ; + gndo:surname "Brecht" + ], [ + gndo:forename "Berthold" ; + gndo:surname "Brecht" + ], [ + gndo:forename "Bertholt" ; + gndo:surname "Brecht" + ], [ + gndo:forename "Bertold" ; + gndo:surname "Brecht" + ], [ + gndo:forename "B." ; + gndo:surname "Brecht" + ], [ + gndo:forename "Eugen Berthold Friedrich" ; + gndo:surname "Brecht" + ], [ + gndo:forename "..." ; + gndo:surname "Brecht" + ], [ + gndo:forename "..." ; + gndo:surname "Brecht-Eisler" + ], [ + gndo:forename "Bertolt" ; + gndo:surname "Becht" + ], [ gndo:personalName "Beituo'erte-Bulaixite" ], [ + gndo:forename "B." ; + gndo:surname "Berchito" + ], [ + gndo:forename "B." ; + gndo:surname "Brechtas" + ], [ + gndo:forename "Bertolts" ; + gndo:surname "Brechts" + ], [ + gndo:forename "Berd" ; + gndo:surname "Brehd" + ], [ + gndo:forename "Bertolt" ; + gndo:surname "Breht" + ], [ + gndo:forename "Bertolts" ; + gndo:surname "Brehts" + ], [ + gndo:forename "Bārṭolṭ" ; + gndo:surname "Breḳhṭ" + ], [ + gndo:forename "Berṭolṭ" ; + gndo:surname "Brekt" + ], [ + gndo:forename "Berṭōlṭ" ; + gndo:surname "Brekṭ" + ], [ + gndo:forename "Berṭôlṭ" ; + gndo:surname "Breḳṭ" + ], [ + gndo:forename "Berṭalṭa" ; + gndo:surname "Breśṭ" + ], [ + gndo:forename "Barṭolṭa" ; + gndo:surname "Breṣṭa" + ], [ + gndo:forename "Bartūlt" ; + gndo:surname "Brišt" + ], [ + gndo:forename "Birtūld" ; + gndo:surname "Brišt" + ], [ + gndo:forename "Birtult" ; + gndo:surname "Brišt" + ], [ + gndo:forename "Berutorutu" ; + gndo:surname "Buchito" + ], [ + gndo:forename "Beituo'erte" ; + gndo:surname "Bulaixite" + ], [ + gndo:forename "..." ; + gndo:surname "Bulaixite" + ], [ + gndo:forename "Berutoruto" ; + gndo:surname "Burehito" + ], [ + gndo:forename "..." ; + gndo:surname "Burehito" + ], [ gndo:personalName "B. B." ], [ + gndo:forename "Berthold" ; + gndo:surname "Larsen" + ], [ + gndo:forename "Mpertolt" ; + gndo:surname "Mprecht" + ], [ + gndo:forename "..." ; + gndo:surname "Mprecht" + ], [ + gndo:forename "Peit'oĉrht'ê" ; + gndo:surname "Pulaihsit'ê" + ], [ + gndo:forename "..." ; + gndo:surname "Pulaihsit'ê" + ], [ + gndo:forename "Peŏt'olt'ŭ" ; + gndo:surname "Pŭrehit'ŭ" + ], [ + gndo:forename "Beŏt'olt'ŭ" ; + gndo:surname "Bŭrehit'ŭ" + ], [ gndo:personalName "برشت، برتولد" ], [ + gndo:forename "베르톨트" ; + gndo:surname "브레히트" + ], [ + gndo:forename "ברטולט" ; + gndo:surname "ברכט" + ], [ gndo:personalName "贝·布莱希特" ], [ + gndo:forename "贝" ; + gndo:surname "布莱希特" + ], [ + gndo:forename "ベルトルト" ; + gndo:surname "ブレヒト" + ] ; + gndo:preferredNameForThePerson "Brecht, Bertolt" ; + gndo:preferredNameEntityForThePerson [ + gndo:forename "Bertolt" ; + gndo:surname "Brecht" + ] ; + gndo:familialRelationship , , , , , , , , , , , , , , ; + gndo:professionOrOccupation , , , , , , ; + gndo:playedInstrument ; + gndo:gndSubjectCategory , , ; + gndo:geographicAreaCode ; + gndo:languageCode ; + gndo:placeOfBirth ; + gndo:placeOfDeath ; + gndo:placeOfExile , ; + gndo:gender ; + gndo:dateOfBirth "1898-02-10"^^xsd:date ; + gndo:dateOfDeath "1956-08-14"^^xsd:date . + + gndo:preferredNameForThePerson "Brecht, Berthold Friedrich" . + gndo:preferredNameForThePerson "Banholzer, Paula" . + gndo:preferredNameForThePerson "Neher, Carola" . + gndo:preferredNameForThePerson "Banholzer, Frank" . + gndo:preferredNameForThePerson "Berlau, Ruth" . + gndo:preferredNameForThePerson "Steffin, Margarete" . + gndo:preferredNameForThePerson "Zoff, Marianne" . + gndo:preferredNameForThePerson "Weigel, Helene" . + gndo:preferredNameForThePerson "Reichel, Käthe" . + gndo:preferredNameForThePerson "Hiob, Hanne" . + gndo:preferredNameForThePerson "Brecht, Stefan" . + gndo:preferredNameForThePerson "Brecht-Schall, Barbara" . + gndo:preferredNameForThePerson "Schall, Ekkehard" . + gndo:preferredNameForThePerson "Brezing, Joseph Friedrich" . + gndo:preferredNameForThePerson "Brezing, Friederike" . + gndo:preferredNameForTheSubjectHeading "Theaterregisseur" . + gndo:preferredNameForTheSubjectHeading "Dramatiker" . + gndo:preferredNameForTheSubjectHeading "Schauspieler" . + gndo:preferredNameForTheSubjectHeading "Lyriker" . + gndo:preferredNameForTheSubjectHeading "Schriftsteller" . + gndo:preferredNameForTheSubjectHeading "Regisseur" . + gndo:preferredNameForTheSubjectHeading "Drehbuchautor" . + gndo:preferredNameForThePlaceOrGeographicName "Augsburg" . + gndo:preferredNameForThePlaceOrGeographicName "Berlin" . + gndo:preferredNameForThePlaceOrGeographicName "Dänemark" . + gndo:preferredNameForThePlaceOrGeographicName "Schweden" . \ No newline at end of file diff --git a/samples/Turtle/rdf-syntax-grammar.ttl b/samples/Turtle/rdf-syntax-grammar.ttl new file mode 100644 index 00000000..edcd4db2 --- /dev/null +++ b/samples/Turtle/rdf-syntax-grammar.ttl @@ -0,0 +1,10 @@ +@prefix rdf: . +@prefix dc: . +@prefix ex: . + + + dc:title "RDF/XML Syntax Specification (Revised)" ; + ex:editor [ + ex:fullname "Dave Beckett"; + ex:homePage + ] . \ No newline at end of file diff --git a/vendor/grammars/turtle.tmbundle b/vendor/grammars/turtle.tmbundle new file mode 160000 index 00000000..0782b476 --- /dev/null +++ b/vendor/grammars/turtle.tmbundle @@ -0,0 +1 @@ +Subproject commit 0782b476573a317917fb9b3bbe7e6a68abefa7a5 From d030f9be9907304fee5f80ced69284c33917c31d Mon Sep 17 00:00:00 2001 From: AOE Takashi Date: Thu, 15 Jan 2015 17:42:47 +0900 Subject: [PATCH 087/875] Add support for FXML files. --- lib/linguist/languages.yml | 1 + samples/XML/FXMLSample.fxml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 samples/XML/FXMLSample.fxml diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e1b57dc9..13750006 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3120,6 +3120,7 @@ XML: - .dll.config - .filters - .fsproj + - .fxml - .glade - .grxml - .ivy diff --git a/samples/XML/FXMLSample.fxml b/samples/XML/FXMLSample.fxml new file mode 100644 index 00000000..30b56b04 --- /dev/null +++ b/samples/XML/FXMLSample.fxml @@ -0,0 +1,30 @@ + + + + + + + + + +
+ + + + + + + +
+ + + + + + + +
From 3bc1b97a68910a712e859327375c95e0829c1ef7 Mon Sep 17 00:00:00 2001 From: Pontus Rodling Date: Fri, 16 Jan 2015 09:18:55 +1300 Subject: [PATCH 088/875] Added interpreter "pike" for Pike. --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5a77b721..719ac0de 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2230,6 +2230,8 @@ Pike: extensions: - .pike - .pmod + interpreters: + - pike ace_mode: text Pod: From f8603705a8e367acf56bfafbf878083f92dbb96a Mon Sep 17 00:00:00 2001 From: Pontus Rodling Date: Fri, 16 Jan 2015 09:56:13 +1300 Subject: [PATCH 089/875] Added shebang sample for Pike. --- samples/Pike/shebang.pike | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 samples/Pike/shebang.pike diff --git a/samples/Pike/shebang.pike b/samples/Pike/shebang.pike new file mode 100644 index 00000000..31bf7e96 --- /dev/null +++ b/samples/Pike/shebang.pike @@ -0,0 +1,6 @@ +#!/usr/bin/env pike + +int main(int argc, array argv) { + return 0; +} + From a5b915d57197222484e710b40fe3334808d62eb7 Mon Sep 17 00:00:00 2001 From: Jay Phelps Date: Thu, 15 Jan 2015 22:13:06 -0800 Subject: [PATCH 090/875] Added `htmlbars` as an alias for Handlebars See tildeio/htmlbars --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e1b494a6..f9e118a6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1235,6 +1235,7 @@ Handlebars: type: markup aliases: - hbs + - htmlbars extensions: - .handlebars - .hbs From 7abcc39c8ca7e39fe96fe28990d3243f28f5af60 Mon Sep 17 00:00:00 2001 From: hartsantler Date: Fri, 16 Jan 2015 04:32:52 -0800 Subject: [PATCH 091/875] added Rusthon to languages list for syntax highlighting in md. --- lib/linguist/languages.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e1b494a6..36e2cf18 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2386,6 +2386,11 @@ Python traceback: tm_scope: text.python.traceback ace_mode: text +Rusthon: + type: programming + ace_mode: python + color: "#3581ba" + QML: type: markup color: "#44a51c" From 4b3b1a80f663851e625a7ddbf142a972c9370e76 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 16 Jan 2015 09:02:51 -0500 Subject: [PATCH 092/875] Rearrange docs --- CONTRIBUTING.md | 75 ++++++++++++++------ README.md | 184 ++++-------------------------------------------- 2 files changed, 68 insertions(+), 191 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 697f2b2f..4afdd473 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,33 +1,68 @@ -## Contributing +# Contributing -The majority of contributions won't need to touch any Ruby code at all. The [master language list][languages] is just a YAML configuration file. +The majority of contributions won't need to touch any Ruby code at all. Linguist defines a list of all languages known to GitHub in [lib/linguist/languages.yml](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). -Almost all bug fixes or new language additions should come with some additional code samples. Just drop them under [`samples/`][samples] in the correct subdirectory and our test suite will automatically test them. In most cases you shouldn't need to add any new assertions. +Most languages are detected by their file extension. For disambiguating between files with common extensions, we first apply some common-sense heuristics to pick out obvious languages. After that, we use a [statistical classifier](https://github.com/github/linguist/blob/master/lib/linguist/classifier.rb). This process can help us tell the difference between, for example, `.h` files which could be either C, C++, or Obj-C. -### My code is detected as the wrong language +## Adding a language -This can usually be solved either by adding a new filename or file name extension to the language's entry in [`languages.yml`][languages] or adding more [samples][samples] for your language to the repository to make Linguist's classifier smarter. +We try only to add languages once they have some usage on GitHub. In most cases we prefer that languages be in use in hundreds of repositories before supporting them in Linguist. -### Syntax highlighting looks wrong - -Assuming your code is being detected as the right language (see above), in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. - -You can also try to fix the bug yourself and submit a Pull Request. [This piece from TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://lightshow.githubapp.com). - -Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub. - -### I want to add support for the `X` programming language - -Great! You'll need to: +To add support for a new language: 0. Add an entry for your language to [`languages.yml`][languages]. 0. Add a grammar for your language. Please only add grammars that have a license that permits redistribution. - 0. Add your grammar as a submodule: `git submodule add https://github.com/JaneSmith/MyGrammar vendor/grammars/MyGrammar`. - 0. Add your grammar to [`grammars.yml`][grammars] by running `script/download-grammars --add vendor/grammars/MyGrammar`. -0. Add samples for your language to the [samples directory][samples]. + 0. Add your grammar as a submodule: `git submodule add https://github.com/JaneSmith/MyGrammar vendor/grammars/MyGrammar`. + 0. Add your grammar to [`grammars.yml`][grammars] by running `script/download-grammars --add vendor/grammars/MyGrammar`. +0. Add samples for your language to the [samples directory][samples] in the correct subdirectory. +0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage. -We try only to add languages once they have some usage on GitHub, so please note in-the-wild usage examples in your pull request. In most cases we prefer that languages already be in use in hundreds of repositories before supporting them in Linguist. +## Fixing syntax highlighting + +Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in `languages.yml` is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. + +Assuming your code is being detected as the right language (see [Language Detection](#language-detection) above), in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. + +You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://lightshow.githubapp.com). + +Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub. + +## Testing + +For development you are going to want to checkout out the source. To get it, clone the repo and run [Bundler](http://gembundler.com/) to install its dependencies. + + git clone https://github.com/github/linguist.git + cd linguist/ + script/bootstrap + +To run the tests: + + bundle exec rake test + +Sometimes getting the tests running can be too much work, especially if you don't have much Ruby experience. It's okay: be lazy and let our build bot [Travis](http://travis-ci.org/#!/github/linguist) run the tests for you. Just open a pull request and the bot will start cranking away. + +Here's our current build status: [![Build Status](https://secure.travis-ci.org/github/linguist.png?branch=master)](http://travis-ci.org/github/linguist) + +## Releasing + +If you are the current maintainer of this gem: + +0. Create a branch for the release: `git checkout -b cut-release-vxx.xx.xx` +0. Make sure your local dependencies are up to date: `script/bootstrap` +0. Ensure that samples are updated: `bundle exec rake samples` +0. Ensure that tests are green: `bundle exec rake test` +0. Bump gem version in `lib/linguist/version.rb`, [like this](https://github.com/github/linguist/commit/8d2ea90a5ba3b2fe6e1508b7155aa4632eea2985). +0. Make a PR to github/linguist, [like this](https://github.com/github/linguist/pull/1238). +0. Build a local gem: `bundle exec rake build_gem` +0. Test the gem: + 0. Bump the Gemfile and Gemfile.lock versions for an app which relies on this gem + 0. Install the new gem locally + 0. Test behavior locally, branch deploy, whatever needs to happen +0. Merge github/linguist PR +0. Tag and push: `git tag vx.xx.xx; git push --tags` +0. Push to rubygems.org -- `gem push github-linguist-3.0.0.gem` [grammars]: /grammars.yml [languages]: /lib/linguist/languages.yml [samples]: /samples +[new-issue]: https://github.com/github/linguist/issues/new diff --git a/README.md b/README.md index c2c803a8..9fded07d 100644 --- a/README.md +++ b/README.md @@ -1,196 +1,38 @@ # Linguist -We use this library at GitHub to detect blob languages, ignore binary files, suppress generated files in diffs, and generate language breakdown graphs. +This library is used on GitHub.com to detect blob languages, ignore binary or vendored files, suppress generated files in diffs, and generate language breakdown graphs. -Tips for filing issues and creating pull requests can be found in [`CONTRIBUTING.md`](/CONTRIBUTING.md). +See [Troubleshooting](#troubleshooting) and [`CONTRIBUTING.md`](/CONTRIBUTING.md) before filing an issue or creating a pull request. -## Features +## Troubleshooting -### Language detection +### My repository is detected as the wrong language -Linguist defines a list of all languages known to GitHub in a [yaml file](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). +![language stats bar](https://cloud.githubusercontent.com/assets/173/5562290/48e24654-8ddf-11e4-8fe7-735b0ce3a0d3.png) -Most languages are detected by their file extension. For disambiguating between files with common extensions, we first apply some common-sense heuristics to pick out obvious languages. After that, we use a -[statistical -classifier](https://github.com/github/linguist/blob/master/lib/linguist/classifier.rb). -This process can help us tell the difference between, for example, `.h` files which could be either C, C++, or Obj-C. +The Language stats bar is built by aggregating the languages of each file in that repository. If it is reporting a language that you don't expect, click on the name of the language and to see a list of the files that are identified as that language. If there are files in your repository -```ruby +consider moving the files into one of the -Linguist::FileBlob.new("lib/linguist.rb").language.name #=> "Ruby" - -Linguist::FileBlob.new("bin/linguist").language.name #=> "Ruby" -``` - -See [lib/linguist/language.rb](https://github.com/github/linguist/blob/master/lib/linguist/language.rb) and [lib/linguist/languages.yml](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). - -### Syntax Highlighting - -Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. - -Every language in `languages.yml` is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. **When adding a new language to Linguist, please add its corresponding scope too (assuming there's an existing TextMate bundle, Sublime Text package, or Atom package) so syntax highlighting works for it**. - -### Stats - -The Language stats bar that you see on every repository is built by aggregating the languages of each file in that repository. The top language in the graph determines the project's primary language. - -The repository stats API, accessed through `#languages`, can be used on a directory: - -***API UPDATE*** - -Since [Version 3.0.0](https://github.com/github/linguist/releases/tag/v3.0.0) Linguist expects a git repository (in the form of a [Rugged::Repository](https://github.com/libgit2/rugged#repositories)) to be passed when initializing `Linguist::Repository`. - - -```ruby -require 'rugged' -require 'linguist' - -repo = Rugged::Repository.new('.') -project = Linguist::Repository.new(repo, repo.head.target_id) -project.language #=> "Ruby" -project.languages #=> { "Ruby" => 119387 } -``` - -These stats are also printed out by the `linguist` binary. You can use the -`--breakdown` flag, and the binary will also output the breakdown of files by language. - -You can try running `linguist` on the root directory in this repository itself: - - $ bundle exec linguist --breakdown - - 100.00% Ruby - - Ruby: - Gemfile - Rakefile - bin/linguist - github-linguist.gemspec - lib/linguist.rb - lib/linguist/blob_helper.rb - lib/linguist/classifier.rb - lib/linguist/file_blob.rb - lib/linguist/generated.rb - lib/linguist/heuristics.rb - lib/linguist/language.rb - lib/linguist/lazy_blob.rb - lib/linguist/md5.rb - lib/linguist/repository.rb - lib/linguist/samples.rb - lib/linguist/tokenizer.rb - lib/linguist/version.rb - test/test_blob.rb - test/test_classifier.rb - test/test_heuristics.rb - test/test_language.rb - test/test_md5.rb - test/test_pedantic.rb - test/test_repository.rb - test/test_samples.rb - test/test_tokenizer.rb - -#### Ignore vendored files - -Checking other code into your git repo is a common practice. But this often inflates your project's language stats and may even cause your project to be labeled as another language. We are able to identify some of these files and directories and exclude them. - -```ruby -Linguist::FileBlob.new("vendor/plugins/foo.rb").vendored? # => true -``` - -See [Linguist::BlobHelper#vendored?](https://github.com/github/linguist/blob/master/lib/linguist/blob_helper.rb) and [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml). - -#### Generated file detection - -Not all plain text files are true source files. Generated files like minified js and compiled CoffeeScript can be detected and excluded from language stats. As an extra bonus, these files are suppressed in diffs. - -```ruby -Linguist::FileBlob.new("underscore.min.js").generated? # => true -``` - -See [Linguist::Generated#generated?](https://github.com/github/linguist/blob/master/lib/linguist/generated.rb). +See [Overrides](#overrides) ## Overrides -Linguist supports custom overrides for language definitions and vendored paths. Add a `.gitattributes` file to your project using the keys `linguist-language` and `linguist-vendored` with the standard git-style path matchers for the files you want to override. +Linguist supports custom overrides for language definitions and vendored paths. Please note that the overrides currently only affect the language statistics for a repository and not the syntax-highlighting of files. -Please note that the overrides currently only affect the language statistics for a repository and not the syntax-highlighting of files. +Commit a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-language` and `linguist-vendored`. ``` $ cat .gitattributes *.rb linguist-language=Java - -$ linguist --breakdown -100.00% Java - -Java: -ruby_file.rb ``` -By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. Use the `linguist-vendored` attribute to vendor or un-vendor paths. +Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. + +Use the `linguist-vendored` attribute to vendor or un-vendor paths. ``` $ cat .gitattributes special-vendored-path/* linguist-vendored jquery.js linguist-vendored=false ``` - -## Installation - -Github.com is usually running the latest version of the `github-linguist` gem that is released on [RubyGems.org](http://rubygems.org/gems/github-linguist). - -But for development you are going to want to checkout out the source. To get it, clone the repo and run [Bundler](http://gembundler.com/) to install its dependencies. - - git clone https://github.com/github/linguist.git - cd linguist/ - script/bootstrap - -To run the tests: - - bundle exec rake test - -### A note on language extensions - -Linguist has a number of methods available to it for identifying the language of a particular file. The initial lookup is based upon the extension of the file, possible file extensions are defined in an array called `extensions`. Take a look at this example for example for `Perl`: - -``` -Perl: - type: programming - ace_mode: perl - color: "#0298c3" - extensions: - - .pl - - .PL - - .perl - - .ph - - .plx - - .pm - - .pod - - .psgi - interpreters: - - perl -``` -Any of the extensions defined are valid but the first in this array should be the most popular. - -### Testing - -Sometimes getting the tests running can be too much work, especially if you don't have much Ruby experience. It's okay: be lazy and let our build bot [Travis](http://travis-ci.org/#!/github/linguist) run the tests for you. Just open a pull request and the bot will start cranking away. - -Here's our current build status, which is hopefully green: [![Build Status](https://secure.travis-ci.org/github/linguist.png?branch=master)](http://travis-ci.org/github/linguist) - -### Releasing - -If you are the current maintainer of this gem: - - 0. Create a branch for the release: `git checkout -b cut-release-vxx.xx.xx` - 0. Make sure your local dependencies are up to date: `script/bootstrap` - 0. Ensure that samples are updated: `bundle exec rake samples` - 0. Ensure that tests are green: `bundle exec rake test` - 0. Bump gem version in `lib/linguist/version.rb`. For example, [like this](https://github.com/github/linguist/commit/8d2ea90a5ba3b2fe6e1508b7155aa4632eea2985). - 0. Make a PR to github/linguist. For example, [#1238](https://github.com/github/linguist/pull/1238). - 0. Build a local gem: `bundle exec rake build_gem` - 0. Testing: - 0. Bump the Gemfile and Gemfile.lock versions for an app which relies on this gem - 0. Install the new gem locally - 0. Test behavior locally, branch deploy, whatever needs to happen - 0. Merge github/linguist PR - 0. Tag and push: `git tag vx.xx.xx; git push --tags` - 0. Push to rubygems.org -- `gem push github-linguist-3.0.0.gem` From b56671c20dc194d7544d3dc6d8c26125eadc93e1 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 16 Jan 2015 10:15:47 -0500 Subject: [PATCH 093/875] Lists are easier to follow than walls of text --- README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9fded07d..e711c659 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Linguist +[issues]: https://github.com/github/linguist/issues +[new-issue]: https://github.com/github/linguist/issues/new + This library is used on GitHub.com to detect blob languages, ignore binary or vendored files, suppress generated files in diffs, and generate language breakdown graphs. See [Troubleshooting](#troubleshooting) and [`CONTRIBUTING.md`](/CONTRIBUTING.md) before filing an issue or creating a pull request. @@ -10,11 +13,12 @@ See [Troubleshooting](#troubleshooting) and [`CONTRIBUTING.md`](/CONTRIBUTING.md ![language stats bar](https://cloud.githubusercontent.com/assets/173/5562290/48e24654-8ddf-11e4-8fe7-735b0ce3a0d3.png) -The Language stats bar is built by aggregating the languages of each file in that repository. If it is reporting a language that you don't expect, click on the name of the language and to see a list of the files that are identified as that language. If there are files in your repository +The Language stats bar is built by aggregating the languages of each file in that repository. If it is reporting a language that you don't expect: -consider moving the files into one of the - -See [Overrides](#overrides) +0. Click on the name of the language in the stats bar to see a list of the files that are identified as that language. +0. If you see files that you didn't write, consider moving the files into one of the [paths for vendored code](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml), or use the [manual overrides](#overrides) feature to ignore them. +0. If the files are being misclassified, search for [open issues][issues] to see if anyone else has already reported the issue. Any information you an add, especially links to public repositories, is helpful. +0. If there are no reported issues of this misclassification, [open an issue][new-issue] and include a link to the repository or a sample of the code that is being misclassified. ## Overrides @@ -27,7 +31,7 @@ $ cat .gitattributes *.rb linguist-language=Java ``` -Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. +Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. Use the `linguist-vendored` attribute to vendor or un-vendor paths. From 3886c406abe7eaf56e451c3eca1f8358bb9b2cc9 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 16 Jan 2015 10:28:09 -0500 Subject: [PATCH 094/875] Add section on fixing misclassifications --- CONTRIBUTING.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e7256579..ade8bffd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,6 @@ # Contributing -The majority of contributions won't need to touch any Ruby code at all. Linguist defines a list of all languages known to GitHub in [lib/linguist/languages.yml](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). - -Most languages are detected by their file extension. For disambiguating between files with common extensions, we first apply some common-sense heuristics to pick out obvious languages. After that, we use a [statistical classifier](https://github.com/github/linguist/blob/master/lib/linguist/classifier.rb). This process can help us tell the difference between, for example, `.h` files which could be either C, C++, or Obj-C. +The majority of contributions won't need to touch any Ruby code at all. ## Adding a language @@ -25,9 +23,15 @@ In addition, if your new language defines an extension that's already listed in Remember, the goal here is to try and avoid false positives! +## Fixing a misclassified language + +Most languages are detected by their file extension defined in [languages.yml][languages]. For disambiguating between files with common extensions, linguist applies some [heuristics](/lib/linguist/heuristics.rb) and a [statistical classifier](lib/linguist/classifier.rb). This process can help differentiate between, for example, `.h` files which could be either C, C++, or Obj-C. + +Misclassifications can often be solved by either adding a new filename or extension for the language or adding more [samples][samples] to make the classifier smarter. + ## Fixing syntax highlighting -Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in `languages.yml` is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. +Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in [languages.yml][languages] is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. Assuming your code is being detected as the right language (see [Language Detection](#language-detection) above), in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. From 8cd17698fefaaf4c354d32cf52a57a39e488f29f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 17 Jan 2015 13:34:06 +0100 Subject: [PATCH 095/875] Slightly improve heuristic for C# --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 33df8958..42ff2241 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -72,7 +72,7 @@ module Linguist disambiguate "C#", "Smalltalk" do |data| if /![\w\s]+methodsFor: /.match(data) Language["Smalltalk"] - elsif /^\s*namespace\s*[\w\.]+\s*{/.match(data) || /^\s*using\s*[\w\.]+\s*;/.match(data) + elsif /^\s*namespace\s*[\w\.]+\s*{/.match(data) || /^\s*\/\//.match(data) Language["C#"] end end From b178268cbc660c4fc8323e7fc0120f02f4a282a1 Mon Sep 17 00:00:00 2001 From: hartsantler Date: Sat, 17 Jan 2015 13:34:12 -0800 Subject: [PATCH 096/875] changed to make `rusthon` a `python` alias. https://github.com/github/linguist/pull/2001 --- lib/linguist/languages.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 36e2cf18..87cf494c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2376,6 +2376,8 @@ Python: - python - python2 - python3 + aliases: + - rusthon Python traceback: type: data @@ -2386,11 +2388,6 @@ Python traceback: tm_scope: text.python.traceback ace_mode: text -Rusthon: - type: programming - ace_mode: python - color: "#3581ba" - QML: type: markup color: "#44a51c" From b319731a2d2b1e3341a17e3f805468bf0c7c9e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Juli=C3=A1n=20Merelo=20Guerv=C3=B3s?= Date: Sun, 18 Jan 2015 13:16:33 +0100 Subject: [PATCH 097/875] Adds Rexfile That's a Vagrantfile-like file for the Rex provisioning tool. --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d3dcb9e9..af0472c8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2212,6 +2212,8 @@ Perl6: - .pm - .pm6 - .t + filenames: + - Rexfile interpreters: - perl6 tm_scope: none From 56c3b8c3fe3f973bd80377c419442791fb608024 Mon Sep 17 00:00:00 2001 From: Maximo Dominguez Date: Sun, 18 Jan 2015 19:31:47 -0400 Subject: [PATCH 098/875] Added generated rule for SpecFlow's *.feature.cs More info about specFlow here http://www.specflow.org/ --- lib/linguist/generated.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 50dbc58d..d7c5a8ed 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -53,6 +53,7 @@ module Linguist def generated? xcode_file? || generated_net_designer_file? || + generated_net_specflow_feature_file? || composer_lock? || node_modules? || godeps? || @@ -161,6 +162,17 @@ module Linguist def generated_net_designer_file? name.downcase =~ /\.designer\.cs$/ end + + # Internal: Is this a codegen file for Specflow feature file? + # + # Visual Studio's SpecFlow extension generates *.feature.cs files + # from *.feature files, they are not meant to be consumed by humans. + # Let's hide them. + # + # Returns true or false + def generated_net_specflow_feature_file? + name.downcase =~ /\.feature\.cs$/ + end # Internal: Is the blob of JS a parser generated by PEG.js? # From 36120a912270696f4624c20607a96c66fa2a9096 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 20 Jan 2015 08:58:11 -0600 Subject: [PATCH 099/875] Revert "Use path for Generated?" --- lib/linguist/blob_helper.rb | 6 +++--- lib/linguist/file_blob.rb | 27 ++++++++++----------------- lib/linguist/lazy_blob.rb | 8 +++----- test/test_blob.rb | 14 ++------------ 4 files changed, 18 insertions(+), 37 deletions(-) diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index 07e1ee52..c368b4d0 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -99,7 +99,7 @@ module Linguist elsif name.nil? "attachment" else - "attachment; filename=#{EscapeUtils.escape_url(name)}" + "attachment; filename=#{EscapeUtils.escape_url(File.basename(name))}" end end @@ -233,7 +233,7 @@ module Linguist # # Return true or false def vendored? - path =~ VendoredRegexp ? true : false + name =~ VendoredRegexp ? true : false end # Public: Get each line of data @@ -301,7 +301,7 @@ module Linguist # # Return true or false def generated? - @_generated ||= Generated.generated?(path, lambda { data }) + @_generated ||= Generated.generated?(name, lambda { data }) end # Public: Detects the Language of the blob. diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 2ca74c2d..04441935 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -3,7 +3,7 @@ require 'linguist/blob_helper' module Linguist # A FileBlob is a wrapper around a File object to make it quack # like a Grit::Blob. It provides the basic interface: `name`, - # `data`, `path` and `size`. + # `data`, and `size`. class FileBlob include BlobHelper @@ -14,50 +14,43 @@ module Linguist # # Returns a FileBlob. def initialize(path, base_path = nil) - @fullpath = path - @path = base_path ? path.sub("#{base_path}/", '') : path + @path = path + @name = base_path ? path.sub("#{base_path}/", '') : path end # Public: Filename # # Examples # - # FileBlob.new("/path/to/linguist/lib/linguist.rb").path + # FileBlob.new("/path/to/linguist/lib/linguist.rb").name # # => "/path/to/linguist/lib/linguist.rb" # # FileBlob.new("/path/to/linguist/lib/linguist.rb", - # "/path/to/linguist").path + # "/path/to/linguist").name # # => "lib/linguist.rb" # # Returns a String - attr_reader :path + attr_reader :name # Public: Read file permissions # # Returns a String like '100644' def mode - File.stat(@fullpath).mode.to_s(8) - end - - # Public: File name - # - # Returns a String - def name - File.basename(@fullpath) + File.stat(@path).mode.to_s(8) end # Public: Read file contents. # # Returns a String. def data - File.read(@fullpath) + File.read(@path) end # Public: Get byte size # # Returns an Integer. def size - File.size(@fullpath) + File.size(@path) end # Public: Get file extension. @@ -74,7 +67,7 @@ module Linguist # # Returns an Array def extensions - basename, *segments = name.split(".") + basename, *segments = File.basename(name).split(".") segments.map.with_index do |segment, index| "." + segments[index..-1].join(".") diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index ab6c4bee..9691bca5 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -14,15 +14,13 @@ module Linguist attr_reader :repository attr_reader :oid - attr_reader :path + attr_reader :name attr_reader :mode - alias :name :path - - def initialize(repo, oid, path, mode = nil) + def initialize(repo, oid, name, mode = nil) @repository = repo @oid = oid - @path = path + @name = name @mode = mode end diff --git a/test/test_blob.rb b/test/test_blob.rb index 4c4f7978..372ff13f 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -251,7 +251,8 @@ class TestBlob < Minitest::Test assert sample_blob("Zephir/filenames/exception.zep.php").generated? assert !sample_blob("Zephir/Router.zep").generated? - assert sample_blob("node_modules/grunt/lib/grunt.js").generated? + + assert Linguist::Generated.generated?("node_modules/grunt/lib/grunt.js", nil) # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? @@ -291,8 +292,6 @@ class TestBlob < Minitest::Test assert sample_blob("deps/http_parser/http_parser.c").vendored? assert sample_blob("deps/v8/src/v8.h").vendored? - assert sample_blob("tools/something/else.c").vendored? - # Chart.js assert sample_blob("some/vendored/path/Chart.js").vendored? assert !sample_blob("some/vendored/path/chart.js").vendored? @@ -303,9 +302,6 @@ class TestBlob < Minitest::Test # Debian packaging assert sample_blob("debian/cron.d").vendored? - # Erlang - assert sample_blob("rebar").vendored? - # Minified JavaScript and CSS assert sample_blob("foo.min.js").vendored? assert sample_blob("foo.min.css").vendored? @@ -314,9 +310,6 @@ class TestBlob < Minitest::Test assert !sample_blob("foomin.css").vendored? assert !sample_blob("foo.min.txt").vendored? - #.osx - assert sample_blob(".osx").vendored? - # Prototype assert !sample_blob("public/javascripts/application.js").vendored? assert sample_blob("public/javascripts/prototype.js").vendored? @@ -324,9 +317,6 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/controls.js").vendored? assert sample_blob("public/javascripts/dragdrop.js").vendored? - # Samples - assert sample_blob("Samples/Ruby/foo.rb").vendored? - # jQuery assert sample_blob("jquery.js").vendored? assert sample_blob("public/javascripts/jquery.js").vendored? From 72b268b25343f5e6c88f77048845d2d51a720ace Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 20 Jan 2015 09:17:46 -0600 Subject: [PATCH 100/875] Updating grammars --- vendor/grammars/NimLime | 2 +- vendor/grammars/SCSS.tmbundle | 2 +- vendor/grammars/Sublime-Inform | 2 +- vendor/grammars/Sublime-Text-2-OpenEdge-ABL | 2 +- vendor/grammars/carto-atom | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/nesC.tmbundle | 2 +- vendor/grammars/standard-ml.tmbundle | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/sublimetext-cuda-cpp | 2 +- vendor/grammars/swift.tmbundle | 2 +- vendor/grammars/text.tmbundle | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index a7067c60..3aab3b38 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit a7067c605b893585c056d32a20a1b953f100e138 +Subproject commit 3aab3b3841707e2c1ebac7fad758ec2ca0c7d936 diff --git a/vendor/grammars/SCSS.tmbundle b/vendor/grammars/SCSS.tmbundle index 41475020..8ef6283d 160000 --- a/vendor/grammars/SCSS.tmbundle +++ b/vendor/grammars/SCSS.tmbundle @@ -1 +1 @@ -Subproject commit 41475020634fc07b5c03ff0dfaee64c2491fa32b +Subproject commit 8ef6283dcbd59795b818b646f20a7ff1cd23985f diff --git a/vendor/grammars/Sublime-Inform b/vendor/grammars/Sublime-Inform index c52a11e5..8db129b8 160000 --- a/vendor/grammars/Sublime-Inform +++ b/vendor/grammars/Sublime-Inform @@ -1 +1 @@ -Subproject commit c52a11e50697897469c9ad7c7a59dfdb683db654 +Subproject commit 8db129b8389044a6660ca232566651c8fe3ab646 diff --git a/vendor/grammars/Sublime-Text-2-OpenEdge-ABL b/vendor/grammars/Sublime-Text-2-OpenEdge-ABL index 7b02e1e2..6e8231cc 160000 --- a/vendor/grammars/Sublime-Text-2-OpenEdge-ABL +++ b/vendor/grammars/Sublime-Text-2-OpenEdge-ABL @@ -1 +1 @@ -Subproject commit 7b02e1e2444febb7c6b2179d52de0d2a7cdf5d58 +Subproject commit 6e8231cca124750b413ee50e8a4ee20e36636a03 diff --git a/vendor/grammars/carto-atom b/vendor/grammars/carto-atom index 8086625a..c00fb6c4 160000 --- a/vendor/grammars/carto-atom +++ b/vendor/grammars/carto-atom @@ -1 +1 @@ -Subproject commit 8086625aa5deac4ccd7374644b89e715deec2f7f +Subproject commit c00fb6c461e17de53e9efaf5b495e5b7d877b9d6 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index d14f6469..3b97e169 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit d14f64690cbde6d0bece2670ab385daf89533aea +Subproject commit 3b97e1691ed6aaae24fb8396478c697748fae51a diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 2453a785..208f0141 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 2453a785f73429786583684cf729625c7cf7b04b +Subproject commit 208f01416deb340dbac19013b23d398fe4c8d71b diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index 99d2e9a5..9ea14cbe 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit 99d2e9a53924ae5ba850985f3df1dc8c11cb6731 +Subproject commit 9ea14cbe3cdcb55215d11863fc4e21fdfa962211 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index e2613bb1..6359431d 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit e2613bb12598d4ae2de5ba57af890ce910195fce +Subproject commit 6359431d8837ea90f245b29def9e2827ff3f040b diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 6af44a08..18400b22 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 6af44a08718668035f45270898389ae4fc8eeb8b +Subproject commit 18400b22cd7968afee982b4e0aa57ef7813ce991 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 51575193..b47a7fe0 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 515751937df1d397b495e4a92fec5a0933994cdb +Subproject commit b47a7fe0cbed2d2553cdb7c6d32e812f9881c21f diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 46072e32..0141d449 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 46072e32e3060eb8e2fea98a106a86db89acc842 +Subproject commit 0141d44946d55ae06ce4dba90b1b0e08db1e437e diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 52b2251a..e413297f 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 52b2251aab30577f4b3b3cc8997fb3c7d0e798ce +Subproject commit e413297f3af499f2c87c5fb92c6d3199f25fa586 diff --git a/vendor/grammars/nesC.tmbundle b/vendor/grammars/nesC.tmbundle index 5958c490..d0d322ce 160000 --- a/vendor/grammars/nesC.tmbundle +++ b/vendor/grammars/nesC.tmbundle @@ -1 +1 @@ -Subproject commit 5958c490262e4a5a7803d97c9ec770bd40307153 +Subproject commit d0d322ceafe3c4d8affc0e8b767fb6ad65c52704 diff --git a/vendor/grammars/standard-ml.tmbundle b/vendor/grammars/standard-ml.tmbundle index af5395b6..791c8b20 160000 --- a/vendor/grammars/standard-ml.tmbundle +++ b/vendor/grammars/standard-ml.tmbundle @@ -1 +1 @@ -Subproject commit af5395b606273b53e7dd3550270cff7f886d3cc3 +Subproject commit 791c8b2054b4c12edcee29d73945c0db53e447e9 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index 9609ab44..40df3591 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit 9609ab4418ed6667e06edea83d7fa157827a2923 +Subproject commit 40df35916158b680eb3d9acb9080a03f7799144c diff --git a/vendor/grammars/sublimetext-cuda-cpp b/vendor/grammars/sublimetext-cuda-cpp index 3ed68f99..e51269fc 160000 --- a/vendor/grammars/sublimetext-cuda-cpp +++ b/vendor/grammars/sublimetext-cuda-cpp @@ -1 +1 @@ -Subproject commit 3ed68f996137ad684d822463bcda1bfd1de00232 +Subproject commit e51269fc22602d3f7aaac0266fc189c4ed4a3901 diff --git a/vendor/grammars/swift.tmbundle b/vendor/grammars/swift.tmbundle index 3c7eac54..0cd27c70 160000 --- a/vendor/grammars/swift.tmbundle +++ b/vendor/grammars/swift.tmbundle @@ -1 +1 @@ -Subproject commit 3c7eac54457aa8f953fa5263cb34ec4dc9555217 +Subproject commit 0cd27c708953230e10571ccb88a4b24eedf762bb diff --git a/vendor/grammars/text.tmbundle b/vendor/grammars/text.tmbundle index c536e814..961652ad 160000 --- a/vendor/grammars/text.tmbundle +++ b/vendor/grammars/text.tmbundle @@ -1 +1 @@ -Subproject commit c536e81409d1fa1fc24f388f70b0513c3a8bfc59 +Subproject commit 961652ad957678e75b533406de1be5bd7f489063 From 3ce527b0b92e2813e2c04db3f0574ba711db12c2 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 20 Jan 2015 09:29:26 -0600 Subject: [PATCH 101/875] Updating version.rb --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 3f330f79..73b6c63a 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.2.6" + VERSION = "4.2.7" end From 01be9e68ee7fa8169aab805f0b6db5840549c106 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 20 Jan 2015 14:34:36 -0600 Subject: [PATCH 102/875] Revert "Revert "Use path for Generated?"" --- lib/linguist/blob_helper.rb | 6 +++--- lib/linguist/file_blob.rb | 27 +++++++++++++++++---------- lib/linguist/lazy_blob.rb | 8 +++++--- test/test_blob.rb | 14 ++++++++++++-- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index c368b4d0..07e1ee52 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -99,7 +99,7 @@ module Linguist elsif name.nil? "attachment" else - "attachment; filename=#{EscapeUtils.escape_url(File.basename(name))}" + "attachment; filename=#{EscapeUtils.escape_url(name)}" end end @@ -233,7 +233,7 @@ module Linguist # # Return true or false def vendored? - name =~ VendoredRegexp ? true : false + path =~ VendoredRegexp ? true : false end # Public: Get each line of data @@ -301,7 +301,7 @@ module Linguist # # Return true or false def generated? - @_generated ||= Generated.generated?(name, lambda { data }) + @_generated ||= Generated.generated?(path, lambda { data }) end # Public: Detects the Language of the blob. diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 04441935..2ca74c2d 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -3,7 +3,7 @@ require 'linguist/blob_helper' module Linguist # A FileBlob is a wrapper around a File object to make it quack # like a Grit::Blob. It provides the basic interface: `name`, - # `data`, and `size`. + # `data`, `path` and `size`. class FileBlob include BlobHelper @@ -14,43 +14,50 @@ module Linguist # # Returns a FileBlob. def initialize(path, base_path = nil) - @path = path - @name = base_path ? path.sub("#{base_path}/", '') : path + @fullpath = path + @path = base_path ? path.sub("#{base_path}/", '') : path end # Public: Filename # # Examples # - # FileBlob.new("/path/to/linguist/lib/linguist.rb").name + # FileBlob.new("/path/to/linguist/lib/linguist.rb").path # # => "/path/to/linguist/lib/linguist.rb" # # FileBlob.new("/path/to/linguist/lib/linguist.rb", - # "/path/to/linguist").name + # "/path/to/linguist").path # # => "lib/linguist.rb" # # Returns a String - attr_reader :name + attr_reader :path # Public: Read file permissions # # Returns a String like '100644' def mode - File.stat(@path).mode.to_s(8) + File.stat(@fullpath).mode.to_s(8) + end + + # Public: File name + # + # Returns a String + def name + File.basename(@fullpath) end # Public: Read file contents. # # Returns a String. def data - File.read(@path) + File.read(@fullpath) end # Public: Get byte size # # Returns an Integer. def size - File.size(@path) + File.size(@fullpath) end # Public: Get file extension. @@ -67,7 +74,7 @@ module Linguist # # Returns an Array def extensions - basename, *segments = File.basename(name).split(".") + basename, *segments = name.split(".") segments.map.with_index do |segment, index| "." + segments[index..-1].join(".") diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 9691bca5..ab6c4bee 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -14,13 +14,15 @@ module Linguist attr_reader :repository attr_reader :oid - attr_reader :name + attr_reader :path attr_reader :mode - def initialize(repo, oid, name, mode = nil) + alias :name :path + + def initialize(repo, oid, path, mode = nil) @repository = repo @oid = oid - @name = name + @path = path @mode = mode end diff --git a/test/test_blob.rb b/test/test_blob.rb index 372ff13f..4c4f7978 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -251,8 +251,7 @@ class TestBlob < Minitest::Test assert sample_blob("Zephir/filenames/exception.zep.php").generated? assert !sample_blob("Zephir/Router.zep").generated? - - assert Linguist::Generated.generated?("node_modules/grunt/lib/grunt.js", nil) + assert sample_blob("node_modules/grunt/lib/grunt.js").generated? # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? @@ -292,6 +291,8 @@ class TestBlob < Minitest::Test assert sample_blob("deps/http_parser/http_parser.c").vendored? assert sample_blob("deps/v8/src/v8.h").vendored? + assert sample_blob("tools/something/else.c").vendored? + # Chart.js assert sample_blob("some/vendored/path/Chart.js").vendored? assert !sample_blob("some/vendored/path/chart.js").vendored? @@ -302,6 +303,9 @@ class TestBlob < Minitest::Test # Debian packaging assert sample_blob("debian/cron.d").vendored? + # Erlang + assert sample_blob("rebar").vendored? + # Minified JavaScript and CSS assert sample_blob("foo.min.js").vendored? assert sample_blob("foo.min.css").vendored? @@ -310,6 +314,9 @@ class TestBlob < Minitest::Test assert !sample_blob("foomin.css").vendored? assert !sample_blob("foo.min.txt").vendored? + #.osx + assert sample_blob(".osx").vendored? + # Prototype assert !sample_blob("public/javascripts/application.js").vendored? assert sample_blob("public/javascripts/prototype.js").vendored? @@ -317,6 +324,9 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/controls.js").vendored? assert sample_blob("public/javascripts/dragdrop.js").vendored? + # Samples + assert sample_blob("Samples/Ruby/foo.rb").vendored? + # jQuery assert sample_blob("jquery.js").vendored? assert sample_blob("public/javascripts/jquery.js").vendored? From 496b3e5a781b56862b381befc0027edfa94bde8f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 20 Jan 2015 14:48:12 -0600 Subject: [PATCH 103/875] Bumping to 4.3.0 beta --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 73b6c63a..d0b2ad38 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.2.7" + VERSION = "4.3.0b1" end From c6e891562754dc29c95f3ce9f060f60b3b9b42b2 Mon Sep 17 00:00:00 2001 From: halirutan Date: Fri, 23 Jan 2015 04:40:47 +0100 Subject: [PATCH 104/875] Added Wolfram Language extensions to the Mathematica section. I checked whether other languages have the same extensions I indroduced which is not the case. Added a sample .wlt file for a Wolfram Unit Test --- lib/linguist/languages.yml | 3 +++ samples/Mathematica/UnitTest.wlt | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 samples/Mathematica/UnitTest.wlt diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index af0472c8..e8b5b195 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1761,6 +1761,9 @@ Mathematica: - .ma - .nb - .nbp + - .wl + - .mt + - .wlt aliases: - mma ace_mode: text diff --git a/samples/Mathematica/UnitTest.wlt b/samples/Mathematica/UnitTest.wlt new file mode 100644 index 00000000..21e67951 --- /dev/null +++ b/samples/Mathematica/UnitTest.wlt @@ -0,0 +1,17 @@ +BeginTestSection["Untitled-5"] + +VerificationTest[(* 1 *) + RotationMatrix[phi] + , + List[List[Cos[phi], Times[-1, Sin[phi]]], List[Sin[phi], Cos[phi]]] +] + +VerificationTest[(* 2 *) + Times[1, Power[Plus[a, Times[-1, a]], -1]] + , + ComplexInfinity + , + {Power::infy} +] + +EndTestSection[] From 97d48a204ab68e44e66591e3dd771cbc319675ff Mon Sep 17 00:00:00 2001 From: Chow Loong Jin Date: Fri, 23 Jan 2015 14:14:15 +0800 Subject: [PATCH 105/875] Specify ace_mode for OpenSCAD --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index af0472c8..5f2d806b 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2055,7 +2055,7 @@ OpenSCAD: extensions: - .scad tm_scope: none - ace_mode: text + ace_mode: scad Org: type: prose From 4d2b6ee99e3f3e0ecef623c92342d04c05704035 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 23 Jan 2015 13:22:45 -0600 Subject: [PATCH 106/875] Updating heuristic order --- lib/linguist/heuristics.rb | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 544ce023..c9c685a4 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -160,11 +160,17 @@ module Linguist end end - disambiguate "M", "Matlab", "Mathematica", "Mercury", "Objective-C" do |data| - if (/^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data)) + disambiguate "M", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| + if /^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data) Language["Objective-C"] - - # TODO add matchers for "M", "Matlab", "Mathematica", "Mercury" + elsif data.include?(":- module") + Language["Mercury"] + elsif /^\s*;/.match(data) + Language["M"] + elsif /^\s*\(\*/.match(data) + Language["Mathematica"] + elsif /^\s*%/.match(data) + Language["Matlab"] end end From dd09f02f53be621f8a3f48e20c6e2ab9563efc98 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 23 Jan 2015 15:25:36 -0600 Subject: [PATCH 107/875] Adding some samples to verify new heuristics --- samples/Mathematica/HeyexImport.m | 344 +++++++++++++++++++++++++ samples/Mercury/switch_detection_bug.m | 46 ++++ 2 files changed, 390 insertions(+) create mode 100644 samples/Mathematica/HeyexImport.m create mode 100644 samples/Mercury/switch_detection_bug.m diff --git a/samples/Mathematica/HeyexImport.m b/samples/Mathematica/HeyexImport.m new file mode 100644 index 00000000..457a7e92 --- /dev/null +++ b/samples/Mathematica/HeyexImport.m @@ -0,0 +1,344 @@ +(* Mathematica Package *) +(* Created with IntelliJ IDEA and the Mathematica Language plugin *) + +(* :Title: Importer for the RAW data-format of the Heidelberg Eye Explorer (known as HEYEX) *) + +(* :Context: HeyexImport` *) + +(* :Author: Patrick Scheibe pscheibe@trm.uni-leipzig.de *) + +(* :Package Version: 1.0 *) + +(* :Mathematica Version: 8.0 *) + +(* :Copyright: Patrick Scheibe, 2013-2015 *) + +(* :Discussion: This package registers a new importer which can load the RAW data-format exported by a + Heidelberg Spectralis OCT. The import-functionality can access different information contained + in a file: + 1. The file header which contains meta data like when the patient was scanned etc + 2. The scanned volume data + 3. Images which represent slices of the scanned volume + 4. The Scanning laser ophthalmoscopy (SLO) image which is taken with every scanned patient + 5. The segmentation data for different retina layers provided by the software + +*) + +(* :Keywords: Import, Heyex, OCT, Spectralis, Heidelberg Engineering *) + +BeginPackage[ "HeyexImport`" ] + +HeyexEyePosition::usage = "HeyexEyePosition[file] tries to extract which eye was scanned, left or right."; + +HeyexImport::wrongHdr = "Error importing OCT data. Broken/Wrong file?"; + + +Begin[ "`Private`" ]; + +(* + Registration of all import possibilities for the Heidelberg OCT. +*) + +ImportExport`RegisterImport[ + "Heyex" , + { + "FileHeader" :> importHeader, + { "Data" , n_Integer} :> (importData[n][##]&), + "Data" :> importData, + { "Images" , n_Integer} :> (importImages[n][##]&), + "Images" :> importImages, + "SLOImage" :> importSLOImage, + "SegmentationData" :> importSegmentation, + { "SegmentationData" , n_Integer} :> (importSegmentation[n][##]&), + "DataSize" :> importDataSize, + importData + }, + + { + "Image3D" :> (Image3D["Data" /. #1]&) + }, + + "AvailableElements" -> {"FileHeader", "Data", "DataSize", "Images", "SLOImage", "SegmentationData", "Image3D"} +]; + + +If[Quiet[Check[TrueQ[Compile[{}, 0, CompilationTarget -> "C"][] == 0], False]], + $compileTarget = CompilationTarget -> "C", + $compileTarget = CompilationTarget -> "MVM" +]; + + +(* + Helper function which reads data from a stream. This is + only a unification so I can map the read function over a + list. +*) +read[{id_String, type_String}, str_] := +id -> BinaryRead[str, type]; +read[{type_String, n_Integer}, str_] := BinaryReadList[str, type, n]; +read[{id_String, {type_String, n_Integer}}, str_] := id -> BinaryReadList[str, type, n]; +(* + Note that when reading bytes explicitly I convert them to + a string and remove any zeroes at the end. +*) +read[{id_String, { "Byte" , n_Integer}}, str_] := +id -> StringJoin[ + FromCharacterCode /@ (Rest[ + NestList[BinaryRead[str, "Byte" ] &, Null, + n]] /. {chars___Integer, Longest[0 ...]} :> {chars})]; + +(* + The layout of a file exported with "Raw Export" + + ***************** + * File Header * + ***************** + * SLO Image * + ***************** + * B-Scan #0 * + ***************** + * ..... * + ***************** + * B-Scan #n-1 * + ***************** +*) + +With[{i = "Integer32", f = "Real32", d = "Real64", b = "Byte"}, + + $fileHeaderInfo = Transpose[{ + { + "Version" , "SizeX" , "NumBScans" , "SizeZ" , "ScaleX" , "Distance" , + "ScaleZ" , "SizeXSlo" , "SizeYSlo" , "ScaleXSlo" , "ScaleYSlo" , + "FieldSizeSlo" , "ScanFocus" , "ScanPosition" , "ExamTime" , + "ScanPattern" , "BScanHdrSize" , "ID" , "ReferenceID" , "PID" , + "PatientID" , "Padding" , "DOB" , "VID" , "VisitID" , "VisitDate" , + "Spare" + }, + { + {b, 12}, i, i, i, d, d, d, i, i, d, d, i, d, {b, 4}, {i, 2}, i, i, + {b, 16}, {b, 16}, i, {b, 21}, {b, 3}, d, i, {b, 24}, d, {b, 1840} + } + }]; + + $bScanHeaderInfo = Transpose[{ + { + "Version" , "BScanHdrSize" , "StartX" , "StartY" , "EndX" , "EndY" , + "NumSeg" , "OffSeg" , "Quality" , "Spare" + }, + {{b, 12}, i, d, d, d, d, i, i, f, {b, 196}} + }]; +]; + + +isHeyexRawFormat[{"Version" -> version_String, "SizeX" -> _Integer, "NumBScans" -> _Integer, _Rule..}] /; StringMatchQ[version, "HSF-OCT" ~~__] := True ; +isHeyexRawFormat[___] := False; + +readFileHeader[str_InputStream] := With[{hdr = Quiet[read[#, str]] & /@ $fileHeaderInfo}, + hdr /; TrueQ[isHeyexRawFormat[hdr]] +]; +readFileHeader[___] := (Message[HeyexImport::wrongHdr]; Throw[$Failed]); + + +(* Reads the camera image of the retina. Note that you must have the + information from the fileheader and you must be at the right position + of the file stream for this.*) +readSLOImage[str_InputStream, fileHdr : {(_String -> _) ..}] := + Image[Partition[ + BinaryReadList[str, "Byte" , "SizeXSlo" * "SizeYSlo" /. fileHdr], + "SizeXSlo" /. fileHdr], "Byte" ]; + +skipSLOImage[str_InputStream, fileHdr : {(_String -> _) ..}] := + Skip[str, "Byte" , "SizeXSlo" * "SizeYSlo" /. fileHdr]; + + +(* One single BScan consists itself again of a header and a data part *) +readBScanHeader[str_InputStream, fileHdr : {(_String -> _) ..}] := + Module[{i = "Integer32", f = "Real32", d = "Real64", b = "Byte", + bScanHdr}, + bScanHdr = read[#, str] & /@ Transpose[{ + { "Version" , "BScanHdrSize" , "StartX" , "StartY" , "EndX" , "EndY" , + "NumSeg" , "OffSeg" , "Quality" , "Spare" }, + {{b, 12}, i, d, d, d, d, i, i, f, {b, 196}}} + ]; + AppendTo[bScanHdr, + read[{ "SegArray" , { "Real32" , + "NumSeg" * "SizeX" /. bScanHdr /. fileHdr}}, str] + ]; + (* + This is horrible slow, therefore I just skip the fillbytes + + AppendTo[bScanHdr, + read[{"Fillbytes", {"Byte", + "BScanHdrSize" - 256 - "NumSeg"*"SizeX"*4 /. bScanHdr /. + fileHdr}}, str] + ] + *) + Skip[str, "Byte" , "BScanHdrSize" - 256 - "NumSeg" * "SizeX" * 4 /. bScanHdr /. fileHdr]; + AppendTo[bScanHdr, "FillBytes" -> None] + ] + +skipBScanHeader[str_InputStream, fileHdr : {(_String -> _) ..}] := + Skip[str, "Byte" , "BScanHdrSize" /. fileHdr]; + +readBScanData[str_InputStream, fileHdr : {(_String -> _) ..}] := + Module[{}, + Developer`ToPackedArray[ + Partition[read[{ "Real32" , "SizeX" * "SizeZ" /. fileHdr}, str], + "SizeX" /. fileHdr]] + ]; + +skipBScanData[str_InputStream, fileHdr : {(_String -> _) ..}] := + Skip[str, "Byte" , "SizeX" * "SizeZ" * 4 /. fileHdr]; + +skipBScanBlocks[str_InputStream, fileHdr : {(_String -> _) ..}, n_Integer] := + Skip[str, "Byte" , n * ("BScanHdrSize" + "SizeX" * "SizeZ" * 4) /. fileHdr]; + + +importHeader[filename_String, ___] := Module[ + {str, header}, + str = OpenRead[filename, BinaryFormat -> True]; + header = readFileHeader[str]; + Close[str]; + "FileHeader" -> header +]; + + +(* Imports the dimension of the scanned volume. *) +importDataSize[filename_String, r___] := Module[{header = importHeader[filename]}, + "DataSize" -> ({"NumBScans", "SizeZ", "SizeXSlo"} /. ("FileHeader" /. header)) +] + +importSLOImage[filename_String, ___] := Module[ + {str, header, slo}, + str = OpenRead[filename, BinaryFormat -> True]; + header = readFileHeader[str]; + slo = readSLOImage[str, header]; + Close[str]; + "SLOImage" -> slo +] + +importData[filename_String, ___] := Module[ + {str, header, nx, n, data}, + str = OpenRead[filename, BinaryFormat -> True]; + header = readFileHeader[str]; + {nx, n} = { "SizeX" , "SizeX" * "SizeZ"} /. header; + skipSLOImage[str, header]; + data = Table[ + skipBScanHeader[str, header]; + Partition[read[{ "Real32" , n}, str], nx], + {"NumBScans" /. header} + ]; + Close[str]; + "Data" -> Developer`ToPackedArray[data] +]; + +importData[num_Integer][filename_String, ___] := Module[ + {str, header, nx, n, data}, + str = OpenRead[filename, BinaryFormat -> True]; + header = readFileHeader[str]; + {nx, n} = { "SizeX" , "SizeX" * "SizeZ"} /. header; + skipSLOImage[str, header]; + skipBScanBlocks[str, header, Max[Min["NumBScans" /. header, num - 1], 0] ]; + skipBScanHeader[str, header]; + data = Partition[read[{ "Real32" , n}, str], nx]; + Close[str]; + {"Data" -> {num -> Developer`ToPackedArray[data]}} +]; + +(* + As suggested in the Heidelberg OCT Manual the importer will adjust + the graylevels when importing images. Since this is very time-consuming + for the whole scanned volume, I use an optimized version of this function. +*) +With[{$compileTarget = $compileTarget}, $adjustGraylevelFunc := ($adjustGraylevelFunc = Compile[{{values, _Real, 2}}, + Map[Floor[255.0 * Min[Max[0.0, #], 1.0]^(0.25) + 0.5] &, values, {2}], + RuntimeAttributes -> {Listable}, + Parallelization -> True, + RuntimeOptions -> "Speed", + $compileTarget +])]; + +importImages[filename_String, ___] := Module[ + {data}, + data = "Data" /. importData[filename]; + "Images" -> (Image[#, "Byte" ]& /@ $adjustGraylevelFunc[data]) +] + +importImages[imageNumber_Integer][filename_String, ___] := Module[ + {data}, + data = {imageNumber /. ("Data" /. importData[imageNumber][filename])}; + {"Images" -> {imageNumber -> (Image[#, "Byte" ]& @@ $adjustGraylevelFunc[data])}} +]; + +importSegmentation[filename_String, ___] := Module[ + {str, header, data}, + str = OpenRead[filename, BinaryFormat -> True]; + header = readFileHeader[str]; + skipSLOImage[str, header]; + data = Table[ + Module[{bScanHeader, t}, + {t, bScanHeader} = Timing@readBScanHeader[str, header]; + skipBScanData[str, header]; + bScanHeader + ], {"NumBScans" /. header} + ]; + Close[str]; + (* + The BScanHeaderData contain the segmentation vectors as a single list + of numbers. Before returning the result, I check how many segmentations + there are inside the BScan an I transform the segmentation value list + into separate vectors and call them "ILM", "RPE" and "NFL" like described + in the manual + *) + "SegmentationData" -> Function[{bhdr}, + Block[{numVecs = "NumSeg" /. bhdr, vecNames, nx = "SizeX" /. header}, + If[numVecs > 0, + vecNames = Take[{ "ILM" , "RPE" , "NFL" }, numVecs]; + bhdr /. ("SegArray" -> vec_) :> Sequence @@ (Rule @@@ Transpose[{vecNames, Partition[vec, nx]} ]), + bhdr + ] + ]] /@ data +] + +importSegmentation[num_Integer][filename_String, ___] := Module[ + {str, header, bhdr}, + str = OpenRead[filename, BinaryFormat -> True]; + header = readFileHeader[str]; + skipSLOImage[str, header]; + skipBScanBlocks[str, header, Max[Min["NumBScans" /. header, num - 1], 0] ]; + bhdr = readBScanHeader[str, header]; + Close[str]; + (* See doc above *) + {"SegmentationData" -> {num -> Block[ + {numVecs = "NumSeg" /. bhdr, vecNames, nx = "SizeX" /. header}, + If[ numVecs > 0, + vecNames = Take[{ "ILM" , "RPE" , "NFL" }, numVecs]; + bhdr /. ("SegArray" -> vec_) :> Sequence @@ (Rule @@@ Transpose[{vecNames, Partition[vec, nx]} ]), + bhdr + ] + ] + }} +] + +(* Extracts which eye was scanned. This is stored in the header of the file *) +(* OD stands for oculus dexter which is latin for "right eye" and OS stands + for oculus sinister which is latin for "left eye" *) +HeyexEyePosition[file_String /; FileExistsQ[file]] := Module[{position}, + Check[ + position = "ScanPosition" /. Import[file, { "Heyex" , "FileHeader" }]; + Switch[ + position, + "OD" , + Right, + "OS" , + Left, + _, + $Failed + ], + $Failed + ] +]; + +End[] + +EndPackage[] \ No newline at end of file diff --git a/samples/Mercury/switch_detection_bug.m b/samples/Mercury/switch_detection_bug.m new file mode 100644 index 00000000..f96542c3 --- /dev/null +++ b/samples/Mercury/switch_detection_bug.m @@ -0,0 +1,46 @@ +% This is a regression test for a bug in switch detection +% where it was preferring incomplete switches to complete +% one-case switches, and hence inferring the wrong determinism. + +%------------------------------------------------------------------------------% + +:- module switch_detection_bug. + +:- interface. + +:- type note ---> note(rank, modifier, octave). + +:- type rank ---> c ; d ; e ; f ; g ; a ; b . + +:- type modifier ---> natural ; sharp ; flat . + +:- type octave == int. + +:- type qualifier ---> maj ; min . + +:- pred next_topnote(note, qualifier, note). +:- mode next_topnote(in, in, out) is multi. + +%------------------------------------------------------------------------------% + +:- implementation. + +next_topnote(note(c, _, Oct), _, note(d, natural, Oct)). +next_topnote(note(d, _, Oct), _, note(c, natural, Oct)). +next_topnote(note(d, _, Oct), maj, note(e, natural, Oct)). +next_topnote(note(d, _, Oct), min, note(e, flat, Oct)). +next_topnote(note(e, _, Oct), _, note(d, natural, Oct)). +next_topnote(note(e, _, Oct), _, note(f, natural, Oct)). +next_topnote(note(f, _, Oct), maj, note(e, natural, Oct)). +next_topnote(note(f, _, Oct), min, note(e, flat, Oct)). +next_topnote(note(g, _, Oct), _, note(f, natural, Oct)). +next_topnote(note(g, _, Oct), min, note(a, flat, Oct)). +next_topnote(note(g, _, Oct), maj, note(a, natural, Oct)). +next_topnote(note(a, _, Oct), _, note(g, natural, Oct)). +next_topnote(note(a, _, Oct), min, note(b, flat, Oct)). +next_topnote(note(a, _, Oct), maj, note(b, natural, Oct)). +next_topnote(note(b, _, Oct), maj, note(a, natural, Oct)). +next_topnote(note(b, _, Oct), min, note(a, flat, Oct)). + +%------------------------------------------------------------------------------% + From e468723abc78d7aa00f6422e78ffa550701ab9e2 Mon Sep 17 00:00:00 2001 From: halirutan Date: Sat, 24 Jan 2015 01:00:41 +0100 Subject: [PATCH 108/875] Reordered the extensions entries for Mathematica Added examples for newly introduces file extensions --- lib/linguist/languages.yml | 2 +- samples/Mathematica/Predicates.wl | 150 ++++++++++++++++++++++++++++++ samples/Mathematica/UnitTest.mt | 17 ++++ 3 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 samples/Mathematica/Predicates.wl create mode 100644 samples/Mathematica/UnitTest.mt diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 653c4d0d..93d35b00 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1761,10 +1761,10 @@ Mathematica: - .cdf - .m - .ma + - .mt - .nb - .nbp - .wl - - .mt - .wlt aliases: - mma diff --git a/samples/Mathematica/Predicates.wl b/samples/Mathematica/Predicates.wl new file mode 100644 index 00000000..3c569691 --- /dev/null +++ b/samples/Mathematica/Predicates.wl @@ -0,0 +1,150 @@ +(* ::Package:: *) + +BeginPackage["Predicates`"]; + + +(* ::Title:: *) +(*Predicates*) + + +(* ::Section::Closed:: *) +(*Fuzzy Logic*) + + +(* ::Subsection:: *) +(*Documentation*) + + +PossiblyTrueQ::usage="Returns True if the argument is not definitely False."; +PossiblyFalseQ::usage="Returns True if the argument is not definitely True."; +PossiblyNonzeroQ::usage="Returns True if and only if its argument is not definitely zero."; + + +(* ::Subsection:: *) +(*Implimentation*) + + +Begin["`Private`"]; + + +PossiblyTrueQ[expr_]:=\[Not]TrueQ[\[Not]expr] + + +PossiblyFalseQ[expr_]:=\[Not]TrueQ[expr] + + +End[]; + + +(* ::Section::Closed:: *) +(*Numbers and Lists*) + + +(* ::Subsection:: *) +(*Documentation*) + + +AnyQ::usage="Given a predicate and a list, retuns True if and only if that predicate is True for at least one element of the list."; +AnyElementQ::usage="Returns True if cond matches any element of L."; +AllQ::usage="Given a predicate and a list, retuns True if and only if that predicate is True for all elements of the list."; +AllElementQ::usage="Returns True if cond matches any element of L."; + + +AnyNonzeroQ::usage="Returns True if L is a list such that at least one element is definitely not zero."; +AnyPossiblyNonzeroQ::usage="Returns True if expr is a list such that at least one element is not definitely zero."; + + +RealQ::usage="Returns True if and only if the argument is a real number"; +PositiveQ::usage="Returns True if and only if the argument is a positive real number"; +NonnegativeQ::usage="Returns True if and only if the argument is a non-negative real number"; +PositiveIntegerQ::usage="Returns True if and only if the argument is a positive integer"; +NonnegativeIntegerQ::usage="Returns True if and only if the argument is a non-negative integer"; + + +IntegerListQ::usage="Returns True if and only if the input is a list of integers."; +PositiveIntegerListQ::usage="Returns True if and only if the input is a list of positive integers."; +NonnegativeIntegerListQ::usage="Returns True if and only if the input is a list of non-negative integers."; +IntegerOrListQ::usage="Returns True if and only if the input is a list of integers or an integer."; +PositiveIntegerOrListQ::usage="Returns True if and only if the input is a list of positive integers or a positive integer."; +NonnegativeIntegerOrListQ::usage="Returns True if and only if the input is a list of positive integers or a positive integer."; + + +SymbolQ::usage="Returns True if argument is an unassigned symbol."; +SymbolOrNumberQ::usage="Returns True if argument is a number of has head 'Symbol'"; + + +(* ::Subsection:: *) +(*Implimentation*) + + +Begin["`Private`"]; + + +AnyQ[cond_, L_] := Fold[Or, False, cond /@ L] + + +AnyElementQ[cond_,L_]:=AnyQ[cond,Flatten[L]] + + +AllQ[cond_, L_] := Fold[And, True, cond /@ L] + + +AllElementQ[cond_, L_] := Fold[And, True, cond /@ L] + + +AnyNonzeroQ[L_]:=AnyElementQ[#!=0&,L] + + +PossiblyNonzeroQ[expr_]:=PossiblyTrueQ[expr!=0] + + +AnyPossiblyNonzeroQ[expr_]:=AnyElementQ[PossiblyNonzeroQ,expr] + + +RealQ[n_]:=TrueQ[Im[n]==0]; + + +PositiveQ[n_]:=Positive[n]; + + +PositiveIntegerQ[n_]:=PositiveQ[n]\[And]IntegerQ[n]; + + +NonnegativeQ[n_]:=TrueQ[RealQ[n]&&n>=0]; + + +NonnegativeIntegerQ[n_]:=NonnegativeQ[n]\[And]IntegerQ[n]; + + +IntegerListQ[input_]:=ListQ[input]&&Not[MemberQ[IntegerQ/@input,False]]; + + +IntegerOrListQ[input_]:=IntegerListQ[input]||IntegerQ[input]; + + +PositiveIntegerListQ[input_]:=IntegerListQ[input]&&Not[MemberQ[Positive[input],False]]; + + +PositiveIntegerOrListQ[input_]:=PositiveIntegerListQ[input]||PositiveIntegerQ[input]; + + +NonnegativeIntegerListQ[input_]:=IntegerListQ[input]&&Not[MemberQ[NonnegativeIntegerQ[input],False]]; + + +NonnegativeIntegerOrListQ[input_]:=NonnegativeIntegerListQ[input]||NonnegativeIntegerQ[input]; + + +SymbolQ[a_]:=Head[a]===Symbol; + + +SymbolOrNumberQ[a_]:=NumericQ[a]||Head[a]===Symbol; + + +End[]; + + +(* ::Section:: *) +(*Epilogue*) + + +EndPackage[]; diff --git a/samples/Mathematica/UnitTest.mt b/samples/Mathematica/UnitTest.mt new file mode 100644 index 00000000..21e67951 --- /dev/null +++ b/samples/Mathematica/UnitTest.mt @@ -0,0 +1,17 @@ +BeginTestSection["Untitled-5"] + +VerificationTest[(* 1 *) + RotationMatrix[phi] + , + List[List[Cos[phi], Times[-1, Sin[phi]]], List[Sin[phi], Cos[phi]]] +] + +VerificationTest[(* 2 *) + Times[1, Power[Plus[a, Times[-1, a]], -1]] + , + ComplexInfinity + , + {Power::infy} +] + +EndTestSection[] From 4f37563be149308cec0315848e61443644b87c9b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 24 Jan 2015 01:02:58 +0100 Subject: [PATCH 109/875] Remove mention of lexer for GAP in languages.yml --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4a011e87..63578295 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -951,7 +951,6 @@ GAMS: GAP: type: programming - lexer: GAP extensions: - .g - .gap From c7668ad88269c475fe1634b13a26d8d840179dbf Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 24 Jan 2015 01:32:56 +0100 Subject: [PATCH 110/875] Better samples for Pascal --- samples/Pascal/cwindirs.pp | 121 +++++++++++++++++++++++++++++++++++++ samples/Pascal/gtkextra.pp | 51 ---------------- samples/Pascal/large.pp | 22 +++++++ samples/Pascal/tw27294.pp | 26 ++++++++ 4 files changed, 169 insertions(+), 51 deletions(-) create mode 100644 samples/Pascal/cwindirs.pp delete mode 100644 samples/Pascal/gtkextra.pp create mode 100644 samples/Pascal/large.pp create mode 100644 samples/Pascal/tw27294.pp diff --git a/samples/Pascal/cwindirs.pp b/samples/Pascal/cwindirs.pp new file mode 100644 index 00000000..d97895e3 --- /dev/null +++ b/samples/Pascal/cwindirs.pp @@ -0,0 +1,121 @@ + +unit cwindirs; + + + + +interface + +uses + windows, + strings; + +Const + CSIDL_PROGRAMS = $0002; + CSIDL_PERSONAL = $0005; + CSIDL_FAVORITES = $0006; + CSIDL_STARTUP = $0007; + CSIDL_RECENT = $0008; + CSIDL_SENDTO = $0009; + CSIDL_STARTMENU = $000B; + CSIDL_MYMUSIC = $000D; + CSIDL_MYVIDEO = $000E; + CSIDL_DESKTOPDIRECTORY = $0010; + CSIDL_NETHOOD = $0013; + CSIDL_TEMPLATES = $0015; + CSIDL_COMMON_STARTMENU = $0016; + CSIDL_COMMON_PROGRAMS = $0017; + CSIDL_COMMON_STARTUP = $0018; + CSIDL_COMMON_DESKTOPDIRECTORY = $0019; + CSIDL_APPDATA = $001A; + CSIDL_PRINTHOOD = $001B; + CSIDL_LOCAL_APPDATA = $001C; + CSIDL_COMMON_FAVORITES = $001F; + CSIDL_INTERNET_CACHE = $0020; + CSIDL_COOKIES = $0021; + CSIDL_HISTORY = $0022; + CSIDL_COMMON_APPDATA = $0023; + CSIDL_WINDOWS = $0024; + CSIDL_SYSTEM = $0025; + CSIDL_PROGRAM_FILES = $0026; + CSIDL_MYPICTURES = $0027; + CSIDL_PROFILE = $0028; + CSIDL_PROGRAM_FILES_COMMON = $002B; + CSIDL_COMMON_TEMPLATES = $002D; + CSIDL_COMMON_DOCUMENTS = $002E; + CSIDL_COMMON_ADMINTOOLS = $002F; + CSIDL_ADMINTOOLS = $0030; + CSIDL_COMMON_MUSIC = $0035; + CSIDL_COMMON_PICTURES = $0036; + CSIDL_COMMON_VIDEO = $0037; + CSIDL_CDBURN_AREA = $003B; + CSIDL_PROFILES = $003E; + + CSIDL_FLAG_CREATE = $8000; + +Function GetWindowsSpecialDir(ID : Integer) : String; + +implementation + +uses + sysutils; + +Type + PFNSHGetFolderPath = Function(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; + + +var + SHGetFolderPath : PFNSHGetFolderPath = Nil; + CFGDLLHandle : THandle = 0; + +Procedure InitDLL; + +Var + pathBuf: array[0..MAX_PATH-1] of char; + pathLength: Integer; +begin + { Load shfolder.dll using a full path, in order to prevent spoofing (Mantis #18185) + Don't bother loading shell32.dll because shfolder.dll itself redirects SHGetFolderPath + to shell32.dll whenever possible. } + pathLength:=GetSystemDirectory(pathBuf, MAX_PATH); + if (pathLength>0) and (pathLength0) then + begin + Pointer(ShGetFolderPath):=GetProcAddress(CFGDLLHandle,'SHGetFolderPathA'); + If @ShGetFolderPath=nil then + begin + FreeLibrary(CFGDLLHandle); + CFGDllHandle:=0; + end; + end; + end; + If (@ShGetFolderPath=Nil) then + Raise Exception.Create('Could not determine SHGetFolderPath Function'); +end; + +Function GetWindowsSpecialDir(ID : Integer) : String; + +Var + APath : Array[0..MAX_PATH] of char; + +begin + Result:=''; + if (CFGDLLHandle=0) then + InitDLL; + If (SHGetFolderPath<>Nil) then + begin + if SHGetFolderPath(0,ID or CSIDL_FLAG_CREATE,0,0,@APATH[0])=S_OK then + Result:=IncludeTrailingPathDelimiter(StrPas(@APath[0])); + end; +end; + +Initialization +Finalization + if CFGDLLHandle<>0 then + FreeLibrary(CFGDllHandle); +end. + diff --git a/samples/Pascal/gtkextra.pp b/samples/Pascal/gtkextra.pp deleted file mode 100644 index 9f2ebf8c..00000000 --- a/samples/Pascal/gtkextra.pp +++ /dev/null @@ -1,51 +0,0 @@ -{ $Id$ } -{ - --------------------------------------------------------------------------- - gtkextra.pp - GTK(2) widgetset - additional gdk/gtk functions - --------------------------------------------------------------------------- - - This unit contains missing gdk/gtk functions and defines for certain - versions of gtk or fpc. - - --------------------------------------------------------------------------- - - @created(Sun Jan 28th WET 2006) - @lastmod($Date$) - @author(Marc Weustink ) - - ***************************************************************************** - This file is part of the Lazarus Component Library (LCL) - - See the file COPYING.modifiedLGPL.txt, included in this distribution, - for details about the license. - ***************************************************************************** - } - -unit GtkExtra; - -{$mode objfpc}{$H+} - -interface - -{$I gtkdefines.inc} - -{$ifdef gtk1} -{$I gtk1extrah.inc} -{$endif} - -{$ifdef gtk2} -{$I gtk2extrah.inc} -{$endif} - - -implementation - -{$ifdef gtk1} -{$I gtk1extra.inc} -{$endif} - -{$ifdef gtk2} -{$I gtk2extra.inc} -{$endif} - -end. diff --git a/samples/Pascal/large.pp b/samples/Pascal/large.pp new file mode 100644 index 00000000..9e0f4867 --- /dev/null +++ b/samples/Pascal/large.pp @@ -0,0 +1,22 @@ +program large; + + const + max = 100000000; + + type + tlist = array[1..max] of longint; + + var + data : tlist; + i : integer; + +begin + + i := 0; + while(i < max) + do + begin + data[i] := 0; + Writeln(data[i]) + end +end. diff --git a/samples/Pascal/tw27294.pp b/samples/Pascal/tw27294.pp new file mode 100644 index 00000000..34d14f5d --- /dev/null +++ b/samples/Pascal/tw27294.pp @@ -0,0 +1,26 @@ +uses + uw27294; + +var + p : procedure; + +procedure test; + +begin + p:=@test; + writeln('OK'); +end; + +procedure global; +begin + p:=nil; + test; + p(); +end; + +begin + global; + uw27294.global; +end. + + From 7421b2e5532c194756d7a9dcccc0604a10f6b77f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 25 Jan 2015 19:04:00 +0100 Subject: [PATCH 111/875] Change TextMate scope for ASP --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f90d472d..888a6487 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -61,6 +61,7 @@ ASP: type: programming color: "#6a40fd" search_term: aspx-vb + tm_scope: text.html.asp aliases: - aspx - aspx-vb From aa8eb955e9ded79f402d881402e219188433a38b Mon Sep 17 00:00:00 2001 From: halirutan Date: Mon, 26 Jan 2015 01:44:45 +0100 Subject: [PATCH 112/875] Removed .mt file extension and example since there are more languages that use this. --- lib/linguist/languages.yml | 1 - samples/Mathematica/UnitTest.mt | 17 ----------------- 2 files changed, 18 deletions(-) delete mode 100644 samples/Mathematica/UnitTest.mt diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 32568987..c610c220 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1761,7 +1761,6 @@ Mathematica: - .cdf - .m - .ma - - .mt - .nb - .nbp - .wl diff --git a/samples/Mathematica/UnitTest.mt b/samples/Mathematica/UnitTest.mt deleted file mode 100644 index 21e67951..00000000 --- a/samples/Mathematica/UnitTest.mt +++ /dev/null @@ -1,17 +0,0 @@ -BeginTestSection["Untitled-5"] - -VerificationTest[(* 1 *) - RotationMatrix[phi] - , - List[List[Cos[phi], Times[-1, Sin[phi]]], List[Sin[phi], Cos[phi]]] -] - -VerificationTest[(* 2 *) - Times[1, Power[Plus[a, Times[-1, a]], -1]] - , - ComplexInfinity - , - {Power::infy} -] - -EndTestSection[] From e536eea5b6396df3bd641520c23ec6b02fddf677 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 14:22:09 -0600 Subject: [PATCH 113/875] Basic Vim modeline detection strategy --- lib/linguist/language.rb | 2 ++ lib/linguist/strategy/modeline.rb | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 lib/linguist/strategy/modeline.rb diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 365beb06..43076a2b 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -11,6 +11,7 @@ require 'linguist/samples' require 'linguist/file_blob' require 'linguist/blob_helper' require 'linguist/strategy/filename' +require 'linguist/strategy/modeline' require 'linguist/shebang' module Linguist @@ -95,6 +96,7 @@ module Linguist STRATEGIES = [ Linguist::Strategy::Filename, + Linguist::Strategy::Modeline, Linguist::Shebang, Linguist::Heuristics, Linguist::Classifier diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb new file mode 100644 index 00000000..569f6581 --- /dev/null +++ b/lib/linguist/strategy/modeline.rb @@ -0,0 +1,31 @@ +module Linguist + module Strategy + class Modeline + # Public: Detects language based on Vim and Emacs modelines + # + # blob - An object that quacks like a blob. + # + # Examples + # + # Modeline.call(FileBlob.new("path/to/file")) + # + # Returns an Array with one Language if the blob has a shebang with a valid + # interpreter, or empty if there is no shebang. + def self.call(blob, _ = nil) + if language = Language.find_by_alias(modeline(blob.data)) + return [language] + else + return [] + end + end + + # Public: Get the modeline from the first n-lines of the file + # + # Returns a String or nil + def self.modeline(data) + data.lines.first(5).any? { |l| l.match(/\W(?:filetype|ft)=\s*(\w+)/) } + lang = $1 + end + end + end +end From 429c791377be0615fcc7cb7d79ae0ebe2e9ae694 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 14:39:07 -0600 Subject: [PATCH 114/875] Testing Vim modeline support --- test/fixtures/Data/Modelines/not_perl.pl | 3 +++ test/fixtures/Data/Modelines/ruby | 3 +++ test/fixtures/Data/Modelines/seeplusplus | 3 +++ test/test_modelines.rb | 20 ++++++++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 test/fixtures/Data/Modelines/not_perl.pl create mode 100644 test/fixtures/Data/Modelines/ruby create mode 100644 test/fixtures/Data/Modelines/seeplusplus create mode 100644 test/test_modelines.rb diff --git a/test/fixtures/Data/Modelines/not_perl.pl b/test/fixtures/Data/Modelines/not_perl.pl new file mode 100644 index 00000000..df8e9fc5 --- /dev/null +++ b/test/fixtures/Data/Modelines/not_perl.pl @@ -0,0 +1,3 @@ +/* vim: set filetype=prolog: */ + +# I am Prolog diff --git a/test/fixtures/Data/Modelines/ruby b/test/fixtures/Data/Modelines/ruby new file mode 100644 index 00000000..9dee00eb --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby @@ -0,0 +1,3 @@ +/* vim: set filetype=ruby: */ + +# I am Ruby diff --git a/test/fixtures/Data/Modelines/seeplusplus b/test/fixtures/Data/Modelines/seeplusplus new file mode 100644 index 00000000..a5cdd9d3 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplus @@ -0,0 +1,3 @@ +/* vim: set ft=cpp: */ + +I would like to be C++ please. diff --git a/test/test_modelines.rb b/test/test_modelines.rb new file mode 100644 index 00000000..8ef2ef6c --- /dev/null +++ b/test/test_modelines.rb @@ -0,0 +1,20 @@ +require_relative "./helper" + +class TestModelines < Minitest::Test + include Linguist + + def fixtures_path + File.expand_path("../fixtures", __FILE__) + end + + def fixture_blob(name) + name = File.join(fixtures_path, name) unless name =~ /^\// + FileBlob.new(name, fixtures_path) + end + + def test_modelines + assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplus").language + assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language + end +end From e8e95f113c25da0b6683be16a025d7086e0fde61 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 15:03:22 -0600 Subject: [PATCH 115/875] Modeline should come first (as it's an override) --- lib/linguist/language.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 43076a2b..7fbf8a96 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -95,8 +95,8 @@ module Linguist end STRATEGIES = [ - Linguist::Strategy::Filename, Linguist::Strategy::Modeline, + Linguist::Strategy::Filename, Linguist::Shebang, Linguist::Heuristics, Linguist::Classifier From 7929e7ab9c332faadc604ede6e33c8aa96a232b9 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 15:11:55 -0600 Subject: [PATCH 116/875] Adding Emacs modes --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 569f6581..1aecb8ec 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -23,7 +23,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - data.lines.first(5).any? { |l| l.match(/\W(?:filetype|ft)=\s*(\w+)/) } + data.lines.first(5).any? { |l| l.match(/\W(?:filetype=|ft=|mode:|-*-)\s*(\w+)/) } lang = $1 end end From d773c2e90dce1c0a890b186bd13ccdb819db06b3 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 15:18:40 -0600 Subject: [PATCH 117/875] Escape the * --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 1aecb8ec..cc65ec00 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -23,7 +23,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - data.lines.first(5).any? { |l| l.match(/\W(?:filetype=|ft=|mode:|-*-)\s*(\w+)/) } + data.lines.first(5).any? { |l| l.match(/\W(?:filetype=|ft=|mode:|-\*-)\s*(\w+)/) } lang = $1 end end From 98fc4d78aa4e09e8478517228c047fe0e036e26d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 15:37:45 -0600 Subject: [PATCH 118/875] Slightly reworked regex. --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index cc65ec00..69fe0d79 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -23,7 +23,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - data.lines.first(5).any? { |l| l.match(/\W(?:filetype=|ft=|mode:|-\*-)\s*(\w+)/) } + data.lines.first(5).any? { |l| l.match(/\W(?:filetype=|ft=|-\*- mode:|-\*-)\s*(\w+)/) } lang = $1 end end From 8094b1bd92f7b316509b3259dc4c276bd089ee1b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 15:38:07 -0600 Subject: [PATCH 119/875] Test strategy and language --- test/test_modelines.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 8ef2ef6c..717dadf9 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -12,9 +12,23 @@ class TestModelines < Minitest::Test FileBlob.new(name, fixtures_path) end - def test_modelines + def assert_modeline(language, blob) + assert_equal language, Linguist::Strategy::Modeline.call(blob).first + end + + def test_modeline_strategy + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") + assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl") + assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md") + assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc") + end + + def test_modeline_languages assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplus").language assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language + assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language + assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language end end From 119a8fff1edf35bc9ca09b79214cdb66a4fa585d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 15:38:19 -0600 Subject: [PATCH 120/875] Emacs modeline fixtures --- test/fixtures/Data/Modelines/example_smalltalk.md | 1 + test/fixtures/Data/Modelines/iamphp.inc | 1 + 2 files changed, 2 insertions(+) create mode 100644 test/fixtures/Data/Modelines/example_smalltalk.md create mode 100644 test/fixtures/Data/Modelines/iamphp.inc diff --git a/test/fixtures/Data/Modelines/example_smalltalk.md b/test/fixtures/Data/Modelines/example_smalltalk.md new file mode 100644 index 00000000..6a927e40 --- /dev/null +++ b/test/fixtures/Data/Modelines/example_smalltalk.md @@ -0,0 +1 @@ +; -*-Smalltalk-*- diff --git a/test/fixtures/Data/Modelines/iamphp.inc b/test/fixtures/Data/Modelines/iamphp.inc new file mode 100644 index 00000000..14370309 --- /dev/null +++ b/test/fixtures/Data/Modelines/iamphp.inc @@ -0,0 +1 @@ +; -*- mode: php;-*- From 20a3e7e4b8de8efab6be18b6d89e43ed84f6c4e7 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 16:12:20 -0600 Subject: [PATCH 121/875] Update docs --- lib/linguist/strategy/modeline.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 69fe0d79..8e13c829 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -9,8 +9,8 @@ module Linguist # # Modeline.call(FileBlob.new("path/to/file")) # - # Returns an Array with one Language if the blob has a shebang with a valid - # interpreter, or empty if there is no shebang. + # Returns an Array with one Language if the blob has a Vim or Emacs modeline + # that matches a Language name or alias. Returns an empty array if no match. def self.call(blob, _ = nil) if language = Language.find_by_alias(modeline(blob.data)) return [language] From 69b68f3a447a14aec64feb78eaca7274cb6cbc1d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 26 Jan 2015 16:22:55 -0600 Subject: [PATCH 122/875] Extracting common methods into helper. --- test/helper.rb | 18 ++++++++++++++++++ test/test_blob.rb | 18 ------------------ test/test_classifier.rb | 4 ---- test/test_generated.rb | 4 ---- test/test_heuristics.rb | 4 ---- test/test_modelines.rb | 9 --------- test/test_tokenizer.rb | 4 ---- 7 files changed, 18 insertions(+), 43 deletions(-) diff --git a/test/helper.rb b/test/helper.rb index ebfeefc7..a6a03672 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -2,3 +2,21 @@ require "bundler/setup" require "minitest/autorun" require "mocha/setup" require "linguist" + +def fixtures_path + File.expand_path("../fixtures", __FILE__) +end + +def fixture_blob(name) + name = File.join(fixtures_path, name) unless name =~ /^\// + Linguist::FileBlob.new(name, fixtures_path) +end + +def samples_path + File.expand_path("../../samples", __FILE__) +end + +def sample_blob(name) + name = File.join(samples_path, name) unless name =~ /^\// + Linguist::FileBlob.new(name, samples_path) +end diff --git a/test/test_blob.rb b/test/test_blob.rb index 372ff13f..ceb54bb3 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -14,24 +14,6 @@ class TestBlob < Minitest::Test Encoding.default_external = @original_external end - def samples_path - File.expand_path("../../samples", __FILE__) - end - - def fixtures_path - File.expand_path("../fixtures", __FILE__) - end - - def sample_blob(name) - name = File.join(samples_path, name) unless name =~ /^\// - FileBlob.new(name, samples_path) - end - - def fixture_blob(name) - name = File.join(fixtures_path, name) unless name =~ /^\// - FileBlob.new(name, fixtures_path) - end - def script_blob(name) blob = sample_blob(name) blob.instance_variable_set(:@name, 'script') diff --git a/test/test_classifier.rb b/test/test_classifier.rb index 1d10d512..2ae2f45e 100644 --- a/test/test_classifier.rb +++ b/test/test_classifier.rb @@ -3,10 +3,6 @@ require_relative "./helper" class TestClassifier < Minitest::Test include Linguist - def samples_path - File.expand_path("../../samples", __FILE__) - end - def fixture(name) File.read(File.join(samples_path, name)) end diff --git a/test/test_generated.rb b/test/test_generated.rb index 1c3f8d90..b714e19e 100644 --- a/test/test_generated.rb +++ b/test/test_generated.rb @@ -3,10 +3,6 @@ require_relative "./helper" class TestGenerated < Minitest::Test include Linguist - def samples_path - File.expand_path("../../samples", __FILE__) - end - class DataLoadedError < StandardError; end def generated_without_loading_data(name) diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index b88d0fda..3ea4af78 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -3,10 +3,6 @@ require_relative "./helper" class TestHeuristcs < Minitest::Test include Linguist - def samples_path - File.expand_path("../../samples", __FILE__) - end - def fixture(name) File.read(File.join(samples_path, name)) end diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 717dadf9..6c68cc87 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -3,15 +3,6 @@ require_relative "./helper" class TestModelines < Minitest::Test include Linguist - def fixtures_path - File.expand_path("../fixtures", __FILE__) - end - - def fixture_blob(name) - name = File.join(fixtures_path, name) unless name =~ /^\// - FileBlob.new(name, fixtures_path) - end - def assert_modeline(language, blob) assert_equal language, Linguist::Strategy::Modeline.call(blob).first end diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index 339d5485..780db019 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -3,10 +3,6 @@ require_relative "./helper" class TestTokenizer < Minitest::Test include Linguist - def samples_path - File.expand_path("../../samples", __FILE__) - end - def tokenize(data) data = File.read(File.join(samples_path, data.to_s)) if data.is_a?(Symbol) Tokenizer.tokenize(data) From cae17b91b80ba874ecf4951f8acf289308d2c239 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 27 Jan 2015 13:02:13 +0100 Subject: [PATCH 123/875] Grammar (TextMate bundle) for Liquid --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/liquid.tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/liquid.tmbundle diff --git a/.gitmodules b/.gitmodules index 79209740..77feab12 100644 --- a/.gitmodules +++ b/.gitmodules @@ -549,3 +549,6 @@ [submodule "vendor/grammars/turtle.tmbundle"] path = vendor/grammars/turtle.tmbundle url = https://github.com/peta/turtle.tmbundle +[submodule "vendor/grammars/liquid.tmbundle"] + path = vendor/grammars/liquid.tmbundle + url = https://github.com/bastilian/validcode-textmate-bundles diff --git a/grammars.yml b/grammars.yml index c85b2de6..6dbcb647 100644 --- a/grammars.yml +++ b/grammars.yml @@ -289,6 +289,8 @@ vendor/grammars/less.tmbundle: - source.css.less vendor/grammars/lilypond.tmbundle: - source.lilypond +vendor/grammars/liquid.tmbundle: +- text.html.liquid vendor/grammars/lisp.tmbundle: - source.lisp vendor/grammars/llvm.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 788b0e87..8b5c1525 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1598,7 +1598,7 @@ Liquid: type: markup extensions: - .liquid - tm_scope: none + tm_scope: text.html.liquid ace_mode: liquid Literate Agda: diff --git a/vendor/grammars/liquid.tmbundle b/vendor/grammars/liquid.tmbundle new file mode 160000 index 00000000..c65939f1 --- /dev/null +++ b/vendor/grammars/liquid.tmbundle @@ -0,0 +1 @@ +Subproject commit c65939f11ad9a91b8c4660a357c36660e9a09e6c From 6f07b62a3fe07edd10d00b042ca42f099b55a8b5 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 27 Jan 2015 08:18:34 -0600 Subject: [PATCH 124/875] New year. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index f09a7d0a..c0a52444 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2011-2014 GitHub, Inc. +Copyright (c) 2011-2015 GitHub, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation From 96154627d3a405f45098fb3f9cdb3a9306d5f3cc Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 27 Jan 2015 09:42:24 -0600 Subject: [PATCH 125/875] Clearer regex --- lib/linguist/strategy/modeline.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 8e13c829..24108c6f 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -23,8 +23,20 @@ module Linguist # # Returns a String or nil def self.modeline(data) - data.lines.first(5).any? { |l| l.match(/\W(?:filetype=|ft=|-\*- mode:|-\*-)\s*(\w+)/) } - lang = $1 + pattern = %q{(?: + (-\*- \s* (?:mode:)? \s*) | # $1: Emacs + (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim + ) + (\w+) # $3: language + (?: + (?(1) # If $1 matched... + ;?\s* -\*- | # then close Emacs syntax + : \s* \*\/ # otherwise close Vim syntax + ) + )} + + data.lines.first(5).any? { |l| l.match(/#{pattern}/x) } + lang = $3 end end end From 160c0b4ac0a0c588788167162e504ed8e048dbaf Mon Sep 17 00:00:00 2001 From: Sergei Vorobev Date: Tue, 27 Jan 2015 18:31:17 -0800 Subject: [PATCH 126/875] Replace vendor powershell.tmBundle by SublimeText powershell. Improve samples for PS. --- .gitmodules | 6 +- grammars.yml | 2 +- samples/PowerShell/ZLocation.psd1 | 116 ++++++++++++++++++++++++++++ samples/PowerShell/ZLocation.psm1 | 91 ++++++++++++++++++++++ samples/PowerShell/hello.ps1 | 2 - samples/PowerShell/hello.psm1 | 5 -- samples/PowerShell/history.ps1 | 65 ++++++++++++++++ vendor/grammars/powershell | 1 + vendor/grammars/powershell.tmbundle | 1 - 9 files changed, 277 insertions(+), 12 deletions(-) create mode 100644 samples/PowerShell/ZLocation.psd1 create mode 100644 samples/PowerShell/ZLocation.psm1 delete mode 100644 samples/PowerShell/hello.ps1 delete mode 100644 samples/PowerShell/hello.psm1 create mode 100644 samples/PowerShell/history.ps1 create mode 160000 vendor/grammars/powershell delete mode 160000 vendor/grammars/powershell.tmbundle diff --git a/.gitmodules b/.gitmodules index 77feab12..19fb9472 100644 --- a/.gitmodules +++ b/.gitmodules @@ -121,9 +121,9 @@ [submodule "vendor/grammars/Handlebars"] path = vendor/grammars/Handlebars url = https://github.com/daaain/Handlebars -[submodule "vendor/grammars/powershell.tmbundle"] - path = vendor/grammars/powershell.tmbundle - url = https://github.com/davidpeckham/powershell.tmbundle +[submodule "vendor/grammars/powershell"] + path = vendor/grammars/powershell + url = https://github.com/SublimeText/PowerShell [submodule "vendor/grammars/jade-tmbundle"] path = vendor/grammars/jade-tmbundle url = https://github.com/davidrios/jade-tmbundle diff --git a/grammars.yml b/grammars.yml index 6dbcb647..e446a8fa 100644 --- a/grammars.yml +++ b/grammars.yml @@ -350,7 +350,7 @@ vendor/grammars/pike-textmate: - source.pike vendor/grammars/postscript.tmbundle: - source.postscript -vendor/grammars/powershell.tmbundle: +vendor/grammars/powershell: - source.powershell vendor/grammars/processing.tmbundle: - source.processing diff --git a/samples/PowerShell/ZLocation.psd1 b/samples/PowerShell/ZLocation.psd1 new file mode 100644 index 00000000..fcf90ef9 --- /dev/null +++ b/samples/PowerShell/ZLocation.psd1 @@ -0,0 +1,116 @@ +# +# Module manifest for module 'ZLocation' +# +# Generated by: sevoroby +# +# Generated on: 12/10/2014 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'ZLocation.psm1' + +# Version number of this module. +ModuleVersion = '0.1' + +# ID used to uniquely identify this module +GUID = '18e8ca17-7f67-4f1c-85ff-159373bf66f5' + +# Author of this module +Author = 'Sergei Vorobev' + +# Company or vendor of this module +CompanyName = 'Microsoft' + +# Copyright statement for this module +Copyright = '(c) 2014 Sergei Vorobev. All rights reserved.' + +# Description of the functionality provided by this module +# Description = '' + +# Minimum version of the Windows PowerShell engine required by this module +# PowerShellVersion = '' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module +# DotNetFrameworkVersion = '' + +# Minimum version of the common language runtime (CLR) required by this module +# CLRVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +# FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @("ZLocation.Storage.psm1", "ZLocation.Search.psm1") + +# Functions to export from this module +FunctionsToExport = '*' + +# Cmdlets to export from this module +CmdletsToExport = '*' + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module +AliasesToExport = '*' + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + # Tags = @() + + # A URL to the license for this module. + # LicenseUri = '' + + # A URL to the main website for this project. + # ProjectUri = '' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + # ReleaseNotes = '' + + } # End of PSData hashtable + +} # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} diff --git a/samples/PowerShell/ZLocation.psm1 b/samples/PowerShell/ZLocation.psm1 new file mode 100644 index 00000000..5ab91146 --- /dev/null +++ b/samples/PowerShell/ZLocation.psm1 @@ -0,0 +1,91 @@ +# +# Weight function. +# +function Update-ZLocation([string]$path) +{ + $now = [datetime]::Now + if (Test-Path variable:global:__zlocation_current) + { + $prev = $global:__zlocation_current + $weight = $now.Subtract($prev.Time).TotalSeconds + Add-ZWeight ($prev.Location) $weight + } + + $global:__zlocation_current = @{ + Location = $path + Time = [datetime]::Now + } + + # populate folder immidiatly after the first cd + Add-ZWeight $path 0 +} + +# this approach hurts `cd` performance (0.0008 sec vs 0.025 sec). +# Consider replace it with OnIdle Event. +(Get-Variable pwd).attributes.Add((new-object ValidateScript { Update-ZLocation $_.Path; return $true })) +# +# End of weight function. +# + + +# +# Tab complention. +# +if (Test-Path Function:\TabExpansion) { + Rename-Item Function:\TabExpansion PreZTabExpansion +} + +function Get-EscapedPath +{ + param( + [Parameter( + Position=0, + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true) + ] + [string]$path + ) + + process { + if ($path.Contains(' ')) + { + return '"' + $path + '"' + } + return $path + } +} + +function global:TabExpansion($line, $lastWord) { + switch -regex ($line) { + "^(Set-ZLocation|z) .*" { + $arguments = $line -split ' ' | Where { $_.length -gt 0 } | select -Skip 1 + Find-Matches (Get-ZLocation) $arguments | Get-EscapedPath + } + default { + if (Test-Path Function:\PreZTabExpansion) { + PreZTabExpansion $line $lastWord + } + } + } +} +# +# End of tab completion. +# + +function Set-ZLocation() +{ + if (-not $args) { + $args = @() + } + $matches = Find-Matches (Get-ZLocation) $args + if ($matches) { + Push-Location ($matches | Select-Object -First 1) + } else { + Write-Warning "Cannot find matching location" + } +} + + +Set-Alias -Name z -Value Set-ZLocation +Export-ModuleMember -Function Set-ZLocation, Get-ZLocation -Alias z \ No newline at end of file diff --git a/samples/PowerShell/hello.ps1 b/samples/PowerShell/hello.ps1 deleted file mode 100644 index eca1e76c..00000000 --- a/samples/PowerShell/hello.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -# Hello world in powershell -Write-Host 'Hello World' \ No newline at end of file diff --git a/samples/PowerShell/hello.psm1 b/samples/PowerShell/hello.psm1 deleted file mode 100644 index 3db82f01..00000000 --- a/samples/PowerShell/hello.psm1 +++ /dev/null @@ -1,5 +0,0 @@ -# Hello World powershell module - -function hello() { - Write-Host 'Hello World' -} \ No newline at end of file diff --git a/samples/PowerShell/history.ps1 b/samples/PowerShell/history.ps1 new file mode 100644 index 00000000..3161a3cb --- /dev/null +++ b/samples/PowerShell/history.ps1 @@ -0,0 +1,65 @@ +function Save-HistoryAll() { + $history = Get-History -Count $MaximumHistoryCount + [array]::Reverse($history) + $history = $history | Group CommandLine | Foreach {$_.Group[0]} + [array]::Reverse($history) + $history | Export-Csv $historyPath +} + +function Save-HistoryIncremental() { +# Get-History -Count $MaximumHistoryCount | Group CommandLine | Foreach {$_.Group[0]} | Export-Csv $historyPath + Get-History -Count 1 | Export-Csv -Append $historyPath +} + +# hook powershell's exiting event & hide the registration with -supportevent. +#Register-EngineEvent -SourceIdentifier powershell.exiting -SupportEvent -Action { Save-History } + +$oldPrompt = Get-Content function:\prompt + +if( $oldPrompt -notlike '*Save-HistoryIncremental*' ) +{ + $newPrompt = @' +Save-HistoryIncremental + +'@ + $newPrompt += $oldPrompt + $function:prompt = [ScriptBlock]::Create($newPrompt) +} + +# load previous history, if it exists +if ((Test-Path $historyPath)) { + $loadTime = + ( + Measure-Command { + Import-Csv $historyPath | Add-History + Save-HistoryAll + Clear-History + Import-Csv $historyPath | ? {$count++;$true} | Add-History + } + ).totalseconds + Write-Host -Fore Green "`nLoaded $count history item(s) in $loadTime seconds.`n" +} + + +function Search-History() +{ + <# + .SYNOPSIS + Retrive and filter history based on query + .DESCRIPTION + .PARAMETER Name + .EXAMPLE + .LINK + #> + + param( + [string[]] $query + ) + + $history = Get-History -Count $MaximumHistoryCount + foreach ($item in $query){ + $item = $item.ToLower() + $history = $history | where {$_.CommandLine.ToLower().Contains($item)} + } + $history +} \ No newline at end of file diff --git a/vendor/grammars/powershell b/vendor/grammars/powershell new file mode 160000 index 00000000..84fd9726 --- /dev/null +++ b/vendor/grammars/powershell @@ -0,0 +1 @@ +Subproject commit 84fd97265c93abcd52de5915b4cf1179cc508373 diff --git a/vendor/grammars/powershell.tmbundle b/vendor/grammars/powershell.tmbundle deleted file mode 160000 index f8716b43..00000000 --- a/vendor/grammars/powershell.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f8716b432eb0a1a6cbc93ee42451a443db844c0f From 3e1570a716db8bbb628052527cbbcb94192f8d5d Mon Sep 17 00:00:00 2001 From: Michael Sheets Date: Wed, 28 Jan 2015 04:12:05 -0600 Subject: [PATCH 127/875] Update Swift grammar --- vendor/grammars/swift.tmbundle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/swift.tmbundle b/vendor/grammars/swift.tmbundle index 0cd27c70..4b3af145 160000 --- a/vendor/grammars/swift.tmbundle +++ b/vendor/grammars/swift.tmbundle @@ -1 +1 @@ -Subproject commit 0cd27c708953230e10571ccb88a4b24eedf762bb +Subproject commit 4b3af145fedd1df488e28e6ae6249530d6a4389c From bf6bd246fd6b55180dab16b19aa18ab63854d4bd Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 28 Jan 2015 16:52:26 -0600 Subject: [PATCH 128/875] Syntax tweak --- lib/linguist/strategy/modeline.rb | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 24108c6f..9dbd2dba 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -23,19 +23,21 @@ module Linguist # # Returns a String or nil def self.modeline(data) - pattern = %q{(?: - (-\*- \s* (?:mode:)? \s*) | # $1: Emacs - (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim - ) - (\w+) # $3: language - (?: - (?(1) # If $1 matched... - ;?\s* -\*- | # then close Emacs syntax - : \s* \*\/ # otherwise close Vim syntax - ) - )} + regex = <<-EOF + /(?: + (-\*- \s* (?:mode:)? \s*) | # $1: Emacs + (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim + ) + (\w+) # $3: language + (?: + (?(1) # If $1 matched... + ;?\s* -\*- | # then close Emacs syntax + : \s* \*\/ # otherwise close Vim syntax + ) + )/x + EOF - data.lines.first(5).any? { |l| l.match(/#{pattern}/x) } + data.lines.first(5).any? { |l| l.match(regex) } lang = $3 end end From 7a601b196eb92953f5b54e2e932d987889ee7b63 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 29 Jan 2015 13:07:18 -0600 Subject: [PATCH 129/875] Fix regex syntax --- lib/linguist/strategy/modeline.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 9dbd2dba..7e4fda84 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -23,7 +23,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - regex = <<-EOF + regex = /(?: (-\*- \s* (?:mode:)? \s*) | # $1: Emacs (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim @@ -35,7 +35,6 @@ module Linguist : \s* \*\/ # otherwise close Vim syntax ) )/x - EOF data.lines.first(5).any? { |l| l.match(regex) } lang = $3 From fadca563bc1a60f56ea5939a2f171f763902218e Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 29 Jan 2015 13:09:12 -0600 Subject: [PATCH 130/875] Move regex to a constant --- lib/linguist/strategy/modeline.rb | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 7e4fda84..96a73ff8 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,6 +1,20 @@ module Linguist module Strategy class Modeline + Regex = / + (?: + (-\*- \s* (?:mode:)? \s*) | # $1: Emacs + (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim + ) + (\w+) # $3: language + (?: + (?(1) # If $1 matched... + ;?\s* -\*- | # then close Emacs syntax + : \s* \*\/ # otherwise close Vim syntax + ) + ) + /x + # Public: Detects language based on Vim and Emacs modelines # # blob - An object that quacks like a blob. @@ -23,20 +37,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - regex = - /(?: - (-\*- \s* (?:mode:)? \s*) | # $1: Emacs - (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim - ) - (\w+) # $3: language - (?: - (?(1) # If $1 matched... - ;?\s* -\*- | # then close Emacs syntax - : \s* \*\/ # otherwise close Vim syntax - ) - )/x - - data.lines.first(5).any? { |l| l.match(regex) } + data.lines.first(5).any? { |l| l.match(Regex) } lang = $3 end end From 437ba70b9ee006fd24d894155bfba43499e443f6 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 29 Jan 2015 13:14:06 -0600 Subject: [PATCH 131/875] Find modeline anywhere in the data --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 96a73ff8..b23fe08e 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -37,7 +37,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - data.lines.first(5).any? { |l| l.match(Regex) } + data.match(Regex) lang = $3 end end From 512cfc48589f573a8ee5157b490d53e6b730f929 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 29 Jan 2015 15:45:07 -0600 Subject: [PATCH 132/875] Dropping 1.9.3 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4d0c2351..89b5e027 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ sudo: false before_install: script/travis/before_install rvm: - - 1.9.3 - 2.0.0 - 2.1 - 2.2 From e7f57796595f11117b53ca37502056ce83aac85b Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 29 Jan 2015 16:16:41 -0600 Subject: [PATCH 133/875] Break modelines into two regular expressions This makes them easier to read and maintains Ruby 1.9 compatibility --- lib/linguist/strategy/modeline.rb | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index b23fe08e..176bd292 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,19 +1,8 @@ module Linguist module Strategy class Modeline - Regex = / - (?: - (-\*- \s* (?:mode:)? \s*) | # $1: Emacs - (\/\* \s* vim: \s* set \s* (?:ft|filetype)=) # $2: Vim - ) - (\w+) # $3: language - (?: - (?(1) # If $1 matched... - ;?\s* -\*- | # then close Emacs syntax - : \s* \*\/ # otherwise close Vim syntax - ) - ) - /x + EmacsModeline = /-\*-\s*(?:mode:)?\s*(\w+);?\s*-\*-/ + VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\// # Public: Detects language based on Vim and Emacs modelines # @@ -37,8 +26,8 @@ module Linguist # # Returns a String or nil def self.modeline(data) - data.match(Regex) - lang = $3 + match = data.match(EmacsModeline) || data.match(VimModeline) + match[1] if match end end end From 4f92d620eb215ed82f49a70108253b3fd9446e02 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 29 Jan 2015 16:28:20 -0600 Subject: [PATCH 134/875] Simplify detect --- lib/linguist/strategy/modeline.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 176bd292..6a07fe3f 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -15,11 +15,7 @@ module Linguist # Returns an Array with one Language if the blob has a Vim or Emacs modeline # that matches a Language name or alias. Returns an empty array if no match. def self.call(blob, _ = nil) - if language = Language.find_by_alias(modeline(blob.data)) - return [language] - else - return [] - end + Array(Language.find_by_alias(modeline(blob.data))) end # Public: Get the modeline from the first n-lines of the file From 5ff1b02e49f36fda9fc502335b969a6ac24be591 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 29 Jan 2015 16:47:45 -0600 Subject: [PATCH 135/875] 1.9.3 reprieve --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 89b5e027..4d0c2351 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ sudo: false before_install: script/travis/before_install rvm: + - 1.9.3 - 2.0.0 - 2.1 - 2.2 From 339370a7032c7a0b374c546b1f1d1cbafb4f501f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 30 Jan 2015 08:48:26 -0600 Subject: [PATCH 136/875] Extracting ObjectiveC regex into a constant --- lib/linguist/heuristics.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 72484ba6..ee1a3625 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -61,6 +61,9 @@ module Linguist @heuristic.call(data) end + # Common heuristics + ObjectiveCRegex = /^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/ + disambiguate "BitBake", "BlitzBasic" do |data| if /^\s*; /.match(data) || data.include?("End Function") Language["BlitzBasic"] @@ -78,7 +81,7 @@ module Linguist end disambiguate "Objective-C", "C++", "C" do |data| - if (/^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data)) + if ObjectiveCRegex.match(data) Language["Objective-C"] elsif (/^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>/.match(data) || /^\s*template\s* Date: Fri, 30 Jan 2015 10:56:06 -0600 Subject: [PATCH 137/875] Adding cp as a C++ extension --- lib/linguist/languages.yml | 1 + samples/C++/qsciprinter.cp | 116 +++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 samples/C++/qsciprinter.cp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f02c0c3c..8cd05682 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -382,6 +382,7 @@ C++: - .cpp - .c++ - .cc + - .cp - .cxx - .h - .h++ diff --git a/samples/C++/qsciprinter.cp b/samples/C++/qsciprinter.cp new file mode 100644 index 00000000..f30d6454 --- /dev/null +++ b/samples/C++/qsciprinter.cp @@ -0,0 +1,116 @@ +// This module defines interface to the QsciPrinter class. +// +// Copyright (c) 2011 Riverbank Computing Limited +// +// This file is part of QScintilla. +// +// This file may be used under the terms of the GNU General Public +// License versions 2.0 or 3.0 as published by the Free Software +// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 +// included in the packaging of this file. Alternatively you may (at +// your option) use any later version of the GNU General Public +// License if such license has been publicly approved by Riverbank +// Computing Limited (or its successors, if any) and the KDE Free Qt +// Foundation. In addition, as a special exception, Riverbank gives you +// certain additional rights. These rights are described in the Riverbank +// GPL Exception version 1.1, which can be found in the file +// GPL_EXCEPTION.txt in this package. +// +// If you are unsure which license is appropriate for your use, please +// contact the sales department at sales@riverbankcomputing.com. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +#ifndef QSCIPRINTER_H +#define QSCIPRINTER_H + +#ifdef __APPLE__ +extern "C++" { +#endif + +#include + +#include +#include + + +QT_BEGIN_NAMESPACE +class QRect; +class QPainter; +QT_END_NAMESPACE + +class QsciScintillaBase; + + +//! \brief The QsciPrinter class is a sub-class of the Qt QPrinter class that +//! is able to print the text of a Scintilla document. +//! +//! The class can be further sub-classed to alter to layout of the text, adding +//! headers and footers for example. +class QSCINTILLA_EXPORT QsciPrinter : public QPrinter +{ +public: + //! Constructs a printer paint device with mode \a mode. + QsciPrinter(PrinterMode mode = ScreenResolution); + + //! Destroys the QsciPrinter instance. + virtual ~QsciPrinter(); + + //! Format a page, by adding headers and footers for example, before the + //! document text is drawn on it. \a painter is the painter to be used to + //! add customised text and graphics. \a drawing is true if the page is + //! actually being drawn rather than being sized. \a painter drawing + //! methods must only be called when \a drawing is true. \a area is the + //! area of the page that will be used to draw the text. This should be + //! modified if it is necessary to reserve space for any customised text or + //! graphics. By default the area is relative to the printable area of the + //! page. Use QPrinter::setFullPage() because calling printRange() if you + //! want to try and print over the whole page. \a pagenr is the number of + //! the page. The first page is numbered 1. + virtual void formatPage(QPainter &painter, bool drawing, QRect &area, + int pagenr); + + //! Return the number of points to add to each font when printing. + //! + //! \sa setMagnification() + int magnification() const {return mag;} + + //! Sets the number of points to add to each font when printing to \a + //! magnification. + //! + //! \sa magnification() + virtual void setMagnification(int magnification); + + //! Print a range of lines from the Scintilla instance \a qsb. \a from is + //! the first line to print and a negative value signifies the first line + //! of text. \a to is the last line to print and a negative value + //! signifies the last line of text. true is returned if there was no + //! error. + virtual int printRange(QsciScintillaBase *qsb, int from = -1, int to = -1); + + //! Return the line wrap mode used when printing. The default is + //! QsciScintilla::WrapWord. + //! + //! \sa setWrapMode() + QsciScintilla::WrapMode wrapMode() const {return wrap;} + + //! Sets the line wrap mode used when printing to \a wmode. + //! + //! \sa wrapMode() + virtual void setWrapMode(QsciScintilla::WrapMode wmode); + +private: + int mag; + QsciScintilla::WrapMode wrap; + + QsciPrinter(const QsciPrinter &); + QsciPrinter &operator=(const QsciPrinter &); +}; + +#ifdef __APPLE__ +} +#endif + +#endif From 25aa6669bed3456326c8b1a15a9de767d09ff54e Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 30 Jan 2015 11:17:13 -0600 Subject: [PATCH 138/875] Updating grammars --- vendor/grammars/AutoHotkey | 2 +- vendor/grammars/Handlebars | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SCSS.tmbundle | 2 +- vendor/grammars/asp.tmbundle | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/objective-c.tmbundle | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/php.tmbundle | 2 +- vendor/grammars/ruby-slim.tmbundle | 2 +- vendor/grammars/sas.tmbundle | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey index a2207359..371f9b23 160000 --- a/vendor/grammars/AutoHotkey +++ b/vendor/grammars/AutoHotkey @@ -1 +1 @@ -Subproject commit a2207359782c564a9a3bfe5142d7b5a250d9b18b +Subproject commit 371f9b23071bf4f8df74bf162b5f4441ec6f0bb0 diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 87669eb0..7bbedb02 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 87669eb08dc58f6237f0c884774dc387a9e5e9da +Subproject commit 7bbedb02585912c6e89bec59621aaf2950c28a09 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 3aab3b38..1be33dac 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 3aab3b3841707e2c1ebac7fad758ec2ca0c7d936 +Subproject commit 1be33dac08c34595584bb60115d9b31402e3a843 diff --git a/vendor/grammars/SCSS.tmbundle b/vendor/grammars/SCSS.tmbundle index 8ef6283d..49a74571 160000 --- a/vendor/grammars/SCSS.tmbundle +++ b/vendor/grammars/SCSS.tmbundle @@ -1 +1 @@ -Subproject commit 8ef6283dcbd59795b818b646f20a7ff1cd23985f +Subproject commit 49a74571e7346b082016168fd702d41d1d319727 diff --git a/vendor/grammars/asp.tmbundle b/vendor/grammars/asp.tmbundle index e2c72903..144b2108 160000 --- a/vendor/grammars/asp.tmbundle +++ b/vendor/grammars/asp.tmbundle @@ -1 +1 @@ -Subproject commit e2c72903175d4211e4c698a5fa635cc443405892 +Subproject commit 144b21081aa53b8856f839aea68a724312f6001d diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 3b97e169..fecdbc5f 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 3b97e1691ed6aaae24fb8396478c697748fae51a +Subproject commit fecdbc5f246571025bf3d22feb9fd9a260719e02 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 208f0141..14b3261b 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 208f01416deb340dbac19013b23d398fe4c8d71b +Subproject commit 14b3261befc8a2b98fda8bd3203af7845d4cdcb1 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index 9ea14cbe..f8dd50c3 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit 9ea14cbe3cdcb55215d11863fc4e21fdfa962211 +Subproject commit f8dd50c35cb775cf2db0bf10b77c54093004eec2 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index b47a7fe0..ac37d2a8 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit b47a7fe0cbed2d2553cdb7c6d32e812f9881c21f +Subproject commit ac37d2a87c14271a23ba754d85b7746594c0d3c8 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index e413297f..2e8d7c93 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit e413297f3af499f2c87c5fb92c6d3199f25fa586 +Subproject commit 2e8d7c939700548144a2e6f6ef299aa0e3215f76 diff --git a/vendor/grammars/objective-c.tmbundle b/vendor/grammars/objective-c.tmbundle index d66de9b4..33c6be40 160000 --- a/vendor/grammars/objective-c.tmbundle +++ b/vendor/grammars/objective-c.tmbundle @@ -1 +1 @@ -Subproject commit d66de9b4fcfcaf53e64cc05fed0cf66c6980c9b2 +Subproject commit 33c6be4028e8c52191d84b23773021c17db3de99 diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index 8f62f3c4..3396190b 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit 8f62f3c458cacba3152bfedcc971735a0a5d61b1 +Subproject commit 3396190be167310600d00da6ff9af7807cea4b12 diff --git a/vendor/grammars/php.tmbundle b/vendor/grammars/php.tmbundle index d24593d7..1ae104d8 160000 --- a/vendor/grammars/php.tmbundle +++ b/vendor/grammars/php.tmbundle @@ -1 +1 @@ -Subproject commit d24593d75c3c5f01b4b0705a9e6db132c0cfd55b +Subproject commit 1ae104d86b303a7cf8460a4abca2125331b7bab6 diff --git a/vendor/grammars/ruby-slim.tmbundle b/vendor/grammars/ruby-slim.tmbundle index 07d55270..741ccd56 160000 --- a/vendor/grammars/ruby-slim.tmbundle +++ b/vendor/grammars/ruby-slim.tmbundle @@ -1 +1 @@ -Subproject commit 07d552705b812e6666014c0061bc511736183a86 +Subproject commit 741ccd5620a73dfb35d0d199ab63ee28f63ed70b diff --git a/vendor/grammars/sas.tmbundle b/vendor/grammars/sas.tmbundle index 0d864a6b..aefac510 160000 --- a/vendor/grammars/sas.tmbundle +++ b/vendor/grammars/sas.tmbundle @@ -1 +1 @@ -Subproject commit 0d864a6bc89ca418e9516249774fc9ab7c792a79 +Subproject commit aefac51088df579fec4df0e3d8459f31b461d60f From 2b7a488d646bed5d5f976ffa47dbb80da0c24831 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 30 Jan 2015 11:25:50 -0600 Subject: [PATCH 139/875] Bumping version to 4.3.0 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 73b6c63a..cffac61e 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.2.7" + VERSION = "4.3.0" end From 98518e5c8c952d4e601b0a5d19abb98e7e4cd7af Mon Sep 17 00:00:00 2001 From: Steinway Wu Date: Fri, 30 Jan 2015 12:52:38 -0500 Subject: [PATCH 140/875] add ats mode from sublime package --- .gitmodules | 6 ++++++ grammars.yml | 2 ++ lib/linguist/languages.yml | 3 +-- vendor/grammars/ats.sublime | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) create mode 160000 vendor/grammars/ats.sublime diff --git a/.gitmodules b/.gitmodules index 1816e097..3c729ffa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -555,3 +555,9 @@ [submodule "vendor/grammars/liquid.tmbundle"] path = vendor/grammars/liquid.tmbundle url = https://github.com/bastilian/validcode-textmate-bundles +[submodule "ats-mode-sublimetext"] + path = ats-mode-sublimetext + url = https://github.com/steinwaywhw/ats-mode-sublimetext +[submodule "vendor/grammars/ats.sublime"] + path = vendor/grammars/ats.sublime + url = https://github.com/steinwaywhw/ats-mode-sublimetext diff --git a/grammars.yml b/grammars.yml index 9c9d7e35..e06ddde6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -128,6 +128,8 @@ vendor/grammars/assembly.tmbundle: vendor/grammars/atom-salt: - source.python.salt - source.yaml.salt +vendor/grammars/ats.sublime: +- source.ats vendor/grammars/autoitv3-tmbundle: - source.autoit.3 vendor/grammars/awk-sublime: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f02c0c3c..050b9a26 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -82,10 +82,9 @@ ATS: - ats2 extensions: - .dats - - .atxt - .hats - .sats - tm_scope: source.ocaml + tm_scope: source.ats ace_mode: ocaml ActionScript: diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime new file mode 160000 index 00000000..64f1abc7 --- /dev/null +++ b/vendor/grammars/ats.sublime @@ -0,0 +1 @@ +Subproject commit 64f1abc71df139b1050ed68f2487dde7fe69829d From c80d085e335d711faa632ab4a3c35b2cae43fc5a Mon Sep 17 00:00:00 2001 From: Steinway Wu Date: Fri, 30 Jan 2015 12:56:17 -0500 Subject: [PATCH 141/875] revise git module --- .gitmodules | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 3c729ffa..5905dd62 100644 --- a/.gitmodules +++ b/.gitmodules @@ -555,9 +555,6 @@ [submodule "vendor/grammars/liquid.tmbundle"] path = vendor/grammars/liquid.tmbundle url = https://github.com/bastilian/validcode-textmate-bundles -[submodule "ats-mode-sublimetext"] - path = ats-mode-sublimetext - url = https://github.com/steinwaywhw/ats-mode-sublimetext [submodule "vendor/grammars/ats.sublime"] path = vendor/grammars/ats.sublime url = https://github.com/steinwaywhw/ats-mode-sublimetext From 7d9a47b7c3bad2478f87e7556d2e5f64a92b7799 Mon Sep 17 00:00:00 2001 From: Steinway Wu Date: Fri, 30 Jan 2015 13:02:37 -0500 Subject: [PATCH 142/875] remove atxt support --- samples/ATS/main.atxt | 215 ------------------------------------------ 1 file changed, 215 deletions(-) delete mode 100644 samples/ATS/main.atxt diff --git a/samples/ATS/main.atxt b/samples/ATS/main.atxt deleted file mode 100644 index 3bba35f0..00000000 --- a/samples/ATS/main.atxt +++ /dev/null @@ -1,215 +0,0 @@ -%{ -#include "./../ATEXT/atextfun.hats" -%} - - - - - - -EFFECTIVATS-DiningPhil2 -#patscode_style() - - - - -

-Effective ATS: Dining Philosophers -

- -In this article, I present an implementation of a slight variant of the -famous problem of 5-Dining-Philosophers by Dijkstra that makes simple but -convincing use of linear types. - -

-The Original Problem -

- -There are five philosophers sitting around a table and there are also 5 -forks placed on the table such that each fork is located between the left -hand of a philosopher and the right hand of another philosopher. Each -philosopher does the following routine repeatedly: thinking and dining. In -order to dine, a philosopher needs to first acquire two forks: one located -on his left-hand side and the other on his right-hand side. After -finishing dining, a philosopher puts the two acquired forks onto the table: -one on his left-hand side and the other on his right-hand side. - -

-A Variant of the Original Problem -

- -The following twist is added to the original version: - -

- -After a fork is used, it becomes a "dirty" fork and needs to be put in a -tray for dirty forks. There is a cleaner who cleans dirty forks and then -puts them back on the table. - -

-Channels for Communication -

- -A channel is just a shared queue of fixed capacity. The following two -functions are for inserting an element into and taking an element out of a -given channel: - -
-#pats2xhtml_sats("\
-fun{a:vt0p} channel_insert (channel (a), a): void
-fun{a:vt0p} channel_takeout (chan: channel (a)): (a) 
-")
- -If [channel_insert] is called on a channel that is full, then the caller is -blocked until an element is taken out of the channel. If [channel_takeout] -is called on a channel that is empty, then the caller is blocked until an -element is inserted into the channel. - -

-A Channel for Each Fork -

- -Forks are resources given a linear type. Each fork is initially stored in a -channel, which can be obtained by calling the following function: - -
-#pats2xhtml_sats("\
-fun fork_changet (n: nphil): channel(fork)
-")
- -where the type [nphil] is defined to be [natLt(5)] (for natural numbers -less than 5). The channels for storing forks are chosen to be of capacity -2. The reason that channels of capacity 2 are chosen to store at most one -element (in each of them) is to guarantee that these channels can never be -full (so that there is no attempt made to send signals to awake callers -supposedly being blocked due to channels being full). - - -

-A Channel for the Fork Tray -

- -A tray for storing "dirty" forks is also a channel, which can be obtained -by calling the following function: - -
-#pats2xhtml_sats("\
-fun forktray_changet ((*void*)): channel(fork)
-")
- -The capacity chosen for the channel is 6 (instead of 5) so that it can -never become full (as there are only 5 forks in total). - -

-Philosopher Loop -

- -Each philosopher is implemented as a loop: - -
-#pats2xhtml_dats('\
-implement
-phil_loop (n) = let
-//
-val () = phil_think (n)
-//
-val nl = phil_left (n) // = n
-val nr = phil_right (n) // = (n+1) % 5
-//
-val ch_lfork = fork_changet (nl)
-val ch_rfork = fork_changet (nr)
-//
-val lf = channel_takeout (ch_lfork)
-val () = println! ("phil_loop(", n, ") picks left fork")
-//
-val () = randsleep (2) // sleep up to 2 seconds
-//
-val rf = channel_takeout (ch_rfork)
-val () = println! ("phil_loop(", n, ") picks right fork")
-//
-val () = phil_dine (n, lf, rf)
-//
-val ch_forktray = forktray_changet ()
-val () = channel_insert (ch_forktray, lf) // left fork to dirty tray
-val () = channel_insert (ch_forktray, rf) // right fork to dirty tray
-//
-in
-  phil_loop (n)
-end // end of [phil_loop]
-')
- -It should be straighforward to follow the code for [phil_loop]. - -

-Fork Cleaner Loop -

- -A cleaner is implemented as a loop: - -
-#pats2xhtml_dats('\
-implement
-cleaner_loop () = let
-//
-val ch = forktray_changet ()
-val f0 = channel_takeout (ch) // [f0] is dirty
-//
-val () = cleaner_wash (f0) // washes dirty [f0]
-val () = cleaner_return (f0) // puts back cleaned [f0]
-//
-in
-  cleaner_loop ()
-end // end of [cleaner_loop]
-')
- -The function [cleaner_return] first finds out the number of a given fork -and then uses the number to locate the channel for storing the fork. Its -actual implementation is given as follows: - -
-#pats2xhtml_dats('\
-implement
-cleaner_return (f) =
-{
-  val n = fork_get_num (f)
-  val ch = fork_changet (n)
-  val () = channel_insert (ch, f)
-}
-')
- -It should now be straighforward to follow the code for [cleaner_loop]. - -

-Testing -

- -The entire code of this implementation is stored in the following files: - -
-DiningPhil2.sats
-DiningPhil2.dats
-DiningPhil2_fork.dats
-DiningPhil2_thread.dats
-
- -There is also a Makefile available for compiling the ATS source code into -an excutable for testing. One should be able to encounter a deadlock after -running the simulation for a while. - -
- -This article is written by Hongwei Xi. - - - - -%{ -implement main () = fprint_filsub (stdout_ref, "main_atxt.txt") -%} From 513347911e17908e8b670584f00b7e9cae68bddc Mon Sep 17 00:00:00 2001 From: Steinway Wu Date: Fri, 30 Jan 2015 13:25:22 -0500 Subject: [PATCH 143/875] update ats grammar to the latest commits --- vendor/grammars/ats.sublime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime index 64f1abc7..e42cbf65 160000 --- a/vendor/grammars/ats.sublime +++ b/vendor/grammars/ats.sublime @@ -1 +1 @@ -Subproject commit 64f1abc71df139b1050ed68f2487dde7fe69829d +Subproject commit e42cbf651152f4f3ada7502cf8002aa8729e147f From 20b82e4bc998a65231223ffde914ba4a52e9c8f2 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 31 Jan 2015 12:14:36 +0100 Subject: [PATCH 144/875] Remove grammar for AutoHotkey --- .gitmodules | 3 --- grammars.yml | 2 -- vendor/grammars/AutoHotkey | 1 - 3 files changed, 6 deletions(-) delete mode 160000 vendor/grammars/AutoHotkey diff --git a/.gitmodules b/.gitmodules index 1816e097..626438d3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -528,9 +528,6 @@ [submodule "vendor/grammars/sublime-bsv"] path = vendor/grammars/sublime-bsv url = https://github.com/thotypous/sublime-bsv -[submodule "vendor/grammars/AutoHotkey"] - path = vendor/grammars/AutoHotkey - url = https://github.com/robertcollier4/AutoHotkey [submodule "vendor/grammars/Sublime-HTTP"] path = vendor/grammars/Sublime-HTTP url = https://github.com/httpspec/sublime-highlighting diff --git a/grammars.yml b/grammars.yml index 9c9d7e35..0f8a66d6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -24,8 +24,6 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy -vendor/grammars/AutoHotkey: -- source.ahk vendor/grammars/ColdFusion: - source.cfscript - source.cfscript.cfc diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey deleted file mode 160000 index 371f9b23..00000000 --- a/vendor/grammars/AutoHotkey +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 371f9b23071bf4f8df74bf162b5f4441ec6f0bb0 From fb40ee986f32d47455a1dd4c587e61c9cf0ba546 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 31 Jan 2015 12:16:41 +0100 Subject: [PATCH 145/875] Update URL for AutoHotkey grammar --- .gitmodules | 3 +++ grammars.yml | 2 ++ vendor/grammars/AutoHotkey | 1 + 3 files changed, 6 insertions(+) create mode 160000 vendor/grammars/AutoHotkey diff --git a/.gitmodules b/.gitmodules index 626438d3..9339b217 100644 --- a/.gitmodules +++ b/.gitmodules @@ -552,3 +552,6 @@ [submodule "vendor/grammars/liquid.tmbundle"] path = vendor/grammars/liquid.tmbundle url = https://github.com/bastilian/validcode-textmate-bundles +[submodule "vendor/grammars/AutoHotkey"] + path = vendor/grammars/AutoHotkey + url = https://github.com/ahkscript/AutoHotkey diff --git a/grammars.yml b/grammars.yml index 0f8a66d6..a8fb6a45 100644 --- a/grammars.yml +++ b/grammars.yml @@ -24,6 +24,8 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy +vendor/grammars/AutoHotkey/: +- source.ahk vendor/grammars/ColdFusion: - source.cfscript - source.cfscript.cfc diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey new file mode 160000 index 00000000..371f9b23 --- /dev/null +++ b/vendor/grammars/AutoHotkey @@ -0,0 +1 @@ +Subproject commit 371f9b23071bf4f8df74bf162b5f4441ec6f0bb0 From 896270e61728ddb9624d2e574d6149b83c9ee305 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 31 Jan 2015 13:37:42 +0100 Subject: [PATCH 146/875] Support for Modelica --- lib/linguist/languages.yml | 7 + samples/Modelica/Translational.mo | 5281 +++++++++++++++++++++++++++++ samples/Modelica/modelica.mo | 285 ++ 3 files changed, 5573 insertions(+) create mode 100644 samples/Modelica/Translational.mo create mode 100644 samples/Modelica/modelica.mo diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8cd05682..4d183306 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1840,6 +1840,13 @@ Mirah: tm_scope: source.ruby ace_mode: ruby +Modelica: + type: programming + extensions: + - .mo + tm_scope: none + ace_mode: text + Monkey: type: programming extensions: diff --git a/samples/Modelica/Translational.mo b/samples/Modelica/Translational.mo new file mode 100644 index 00000000..62735f6a --- /dev/null +++ b/samples/Modelica/Translational.mo @@ -0,0 +1,5281 @@ +within Modelica.Mechanics; +package Translational + "Library to model 1-dimensional, translational mechanical systems" + extends Modelica.Icons.Package; + import SI = Modelica.SIunits; + + package Examples "Demonstration examples of the components of this package" + + extends Modelica.Icons.ExamplesPackage; + + model SignConvention "Examples for the used sign conventions." + extends Modelica.Icons.Example; + Translational.Components.Mass mass1(L=1, + s(fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{40,60},{60,80}}, rotation=0))); + Translational.Sources.Force force1 + annotation (Placement(transformation(extent={{ + -4,60},{16,80}}, rotation=0))); + Modelica.Blocks.Sources.Constant constant1(k=1) + annotation (Placement(transformation(extent={{ + -44,60},{-24,80}}, rotation=0))); + Translational.Components.Mass mass2(L=1, + s(fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{40,0},{60,20}}, rotation=0))); + Translational.Sources.Force force2 + annotation (Placement(transformation(extent={{ + -4,20},{16,40}}, rotation=0))); + Modelica.Blocks.Sources.Constant constant2(k=1) + annotation (Placement(transformation(extent={{ + -44,20},{-24,40}}, rotation=0))); + Translational.Components.Mass mass3(L=1, + s(fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{-40,-40},{-20,-20}}, rotation=0))); + Translational.Sources.Force force3(useSupport=true) + annotation (Placement(transformation(extent={{ + 20,-40},{0,-20}}, rotation=0))); + Modelica.Blocks.Sources.Constant constant3(k=1) + annotation (Placement(transformation(extent={{ + 60,-40},{40,-20}}, rotation=0))); + Translational.Components.Fixed fixed + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + equation + connect(constant1.y,force1. f) annotation (Line(points={{-23,70},{-6,70}}, + color={0,0,127})); + connect(constant2.y,force2. f) annotation (Line(points={{-23,30},{-6,30}}, + color={0,0,127})); + connect(constant3.y,force3. f) annotation (Line(points={{39,-30},{22,-30}}, + color={0,0,127})); + connect(force1.flange, mass1.flange_a) annotation (Line( + points={{16,70},{40,70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(force2.flange, mass2.flange_b) annotation (Line( + points={{16,30},{70,30},{70,10},{60,10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass3.flange_b, force3.flange) annotation (Line( + points={{-20,-30},{0,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed.flange, force3.support) annotation (Line( + points={{10,-50},{10,-40}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation (Documentation(info=" +

+If all arrows point in the same direction a positive force +results in a positive acceleration a, velocity v and position s. +

+

+For a force of 1 N and a mass of 1 Kg this leads to +

+
+        a = 1 m/s2
+        v = 1 m/s after 1 s (SlidingMass1.v)
+        s = 0.5 m after 1 s (SlidingMass1.s)
+
+

+The acceleration is not available for plotting. +

+

+System 1) and 2) are equivalent. It doesn't matter whether the +force pushes at flange_a in system 1 or pulls at flange_b in system 2. +

+It is of course possible to ignore the arrows and connect the models +in an arbitrary way. But then it is hard see in what direction the +force acts. +

+In the third system the two arrows are opposed which means that the +force acts in the opposite direction (in the same direction as in +the two other examples). +

+"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Text( + extent={{-100,80},{-82,60}}, + textString="1)", + lineColor={0,0,255}), + Text( + extent={{-100,40},{-82,20}}, + textString="2)", + lineColor={0,0,255}), + Text( + extent={{-100,-20},{-82,-40}}, + textString="3)", + lineColor={0,0,255})}), + experiment(StopTime=1.0, Interval=0.001)); + end SignConvention; + + model InitialConditions "Setting of initial conditions" + + extends Modelica.Icons.Example; + + Translational.Components.Fixed fixed2( s0=1) + annotation (Placement(transformation( + extent={{-100,60},{-80,80}}, rotation=0))); + Translational.Components.Spring s2( s_rel0=2, c=1e3) + annotation (Placement( + transformation(extent={{-60,60},{-40,80}}, rotation=0))); + Translational.Components.Mass m3( L=3, s(start=4.5, fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{-20,60},{0,80}}, rotation=0))); + Translational.Components.SpringDamper sd2( s_rel0=4, c=111, + d=1) annotation (Placement( + transformation(extent={{20,60},{40,80}}, rotation=0))); + Translational.Components.Mass m4( L=5, s(start=12.5, fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{60,60},{80,80}}, rotation=0))); + + Translational.Components.Fixed fixed1( s0=-1) + annotation (Placement(transformation( + extent={{-100,-20},{-80,0}}, rotation=0))); + Translational.Components.Spring s1( + s_rel0=1, + c=1e3, + s_rel(start=1, fixed=true)) + annotation (Placement(transformation(extent={{-58,-20}, + {-38,0}}, rotation=0))); + Translational.Components.Mass m1( L=1, v(fixed=true), + m=1) annotation (Placement(transformation( + extent={{-20,-20},{0,0}}, rotation=0))); + Translational.Components.SpringDamper sd1( + s_rel0=1, + c=111, + s_rel(start=1, fixed=true), + v_rel(fixed=true), + d=1) annotation (Placement(transformation(extent={{20,-20},{ + 40,0}}, rotation=0))); + Translational.Components.Mass m2( L=2, m=1) + annotation (Placement(transformation( + extent={{60,-20},{80,0}}, rotation=0))); + equation + connect(s2.flange_a, fixed2.flange) annotation (Line( + points={{-60,70},{-90,70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(s1.flange_a, fixed1.flange) annotation (Line( + points={{-58,-10},{-90,-10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(m1.flange_a, s1.flange_b) annotation (Line( + points={{-20,-10},{-38,-10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(sd1.flange_a, m1.flange_b) annotation (Line( + points={{20,-10},{0,-10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(m2.flange_a, sd1.flange_b) annotation (Line( + points={{60,-10},{40,-10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(m4.flange_a, sd2.flange_b) annotation (Line( + points={{60,70},{40,70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(sd2.flange_a, m3.flange_b) annotation (Line( + points={{20,70},{0,70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(m3.flange_a, s2.flange_b) annotation (Line( + points={{-20,70},{-40,70}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+There are several ways to set initial conditions. +In the first system the position of the mass m3 was defined +by using the modifier s(start=4.5), the position of m4 by s(start=12.5). +These positions were chosen such that the system is a rest. To calculate +these values start at the left (Fixed1) with a value of 1 m. The spring +has an unstretched length of 2 m and m3 an length of 3 m, which leads to +

+ +
+        1   m (fixed1)
+      + 2   m (spring s2)
+      + 3/2 m (half of the length of mass m3)
+      -------
+        4,5 m = s(start = 4.5) for m3
+      + 3/2 m (half of the length of mass m3)
+      + 4   m (springDamper 2)
+      + 5/2 m (half of length of mass m4)
+      -------
+       12,5 m = s(start = 12.5) for m4
+
+ +

+This selection of initial conditions has the effect that Dymola selects +those variables (m3.s and m4.s) as state variables. +In the second example the length of the springs are given as start values +but they cannot be used as state for pure springs (only for the spring/damper +combination). In this case the system is not at rest. +

+ +

+ +

+ +"), + experiment(StopTime=5.0, Interval=0.001)); + end InitialConditions; + + model WhyArrows "Use of arrows in Mechanics.Translational" + + extends Modelica.Icons.Example; + + Translational.Components.Fixed fixed + annotation (Placement(transformation(extent={{ + -20,20},{0,40}}, rotation=0))); + Translational.Components.Rod rod1( L=1) + annotation (Placement(transformation(extent={ + {-48,20},{-28,40}}, rotation=0))); + Translational.Components.Rod rod2( L=1) + annotation (Placement(transformation(extent={ + {20,20},{40,40}}, rotation=0))); + Translational.Components.Rod rod3( L=1) + annotation (Placement(transformation(extent={ + {-30,58},{-50,78}}, rotation=0))); + Translational.Sensors.PositionSensor positionSensor2 annotation (Placement( + transformation(extent={{60,20},{80,40}}, rotation=0))); + Translational.Sensors.PositionSensor positionSensor1 annotation (Placement( + transformation(extent={{-60,20},{-80,40}}, rotation=0))); + Translational.Sensors.PositionSensor positionSensor3 annotation (Placement( + transformation(extent={{-60,58},{-80,78}}, rotation=0))); + Translational.Components.Fixed fixed1( s0=-1.9) + annotation (Placement(transformation( + extent={{-100,-60},{-80,-40}}, rotation=0))); + Translational.Components.Spring spring1( s_rel0=2, c=11) + annotation (Placement( + transformation(extent={{-80,-60},{-60,-40}}, rotation=0))); + Translational.Components.Mass mass1( + L=2, + s(fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{-50,-60},{-30,-40}}, rotation=0))); + Translational.Components.Fixed fixed2( s0=-1.9) + annotation (Placement(transformation( + extent={{0,-60},{20,-40}}, rotation=0))); + Translational.Components.Spring spring2( s_rel0=2, c=11) + annotation (Placement( + transformation(extent={{30,-60},{50,-40}}, rotation=0))); + Translational.Components.Mass inertia2( L=2, + m=1, + s(fixed=true), + v(fixed=true)) annotation (Placement( + transformation(extent={{80,-60},{60,-40}}, rotation=0))); + equation + connect(spring1.flange_b, mass1.flange_b) annotation (Line(points={{-60,-50}, + {-60,-72},{-30,-72},{-30,-50}}, color={0,191,0})); + connect(spring2.flange_b, inertia2.flange_b) annotation (Line(points={{50,-50}, + {60,-50}}, color={0,191,0})); + connect(rod3.flange_b,positionSensor3. flange) annotation (Line( + points={{-50,68},{-60,68}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(rod1.flange_a,positionSensor1. flange) annotation (Line( + points={{-48,30},{-60,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(rod1.flange_b, fixed.flange) annotation (Line( + points={{-28,30},{-10,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(rod3.flange_a, fixed.flange) annotation (Line( + points={{-30,68},{-10,68},{-10,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed.flange, rod2.flange_a) annotation (Line( + points={{-10,30},{20,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(rod2.flange_b,positionSensor2. flange) annotation (Line( + points={{40,30},{60,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed1.flange,spring1. flange_a) annotation (Line( + points={{-90,-50},{-80,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed2.flange,spring2. flange_a) annotation (Line( + points={{10,-50},{30,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+When using the models of the translational sublibrary +it is recommended to make sure that all arrows point in +the same direction because then all component have the +same reference system. +In the example the distance from flange_a of Rod1 to flange_b +of Rod2 is 2 m. The distance from flange_a of Rod1 to flange_b +of Rod3 is also 2 m though it is difficult to see that. Without +the arrows it would be almost impossible to notice. +That all arrows point in the same direction is a sufficient +condition for an easy use of the library. There are cases +where horizontally flipped models can be used without +problems. +

+"), Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-84,10},{88,2}}, + lineColor={0,0,255}, + textString="positionSensor2.s = positionSensor3.s"), + Text( + extent={{-78,-4},{86,-12}}, + lineColor={0,0,255}, + textString="positionSensor3.s <>positionSensor1.s"), + Text( + extent={{-82,-80},{92,-88}}, + textString="Both systems are equivalent", + lineColor={0,0,255}), + Line( + points={{-90,-28},{90,-28}}, + thickness=0.5, + color={0,0,255})}), + experiment(StopTime=1.0, Interval=0.001)); + end WhyArrows; + + model Accelerate "Use of model accelerate." + + extends Modelica.Icons.Example; + Translational.Sources.Accelerate accelerate + annotation (Placement(transformation( + extent={{-40,20},{-20,40}}, rotation=0))); + Translational.Components.Mass mass(L=1, m=1) + annotation (Placement( + transformation(extent={{0,20},{20,40}}, rotation=0))); + Modelica.Blocks.Sources.Constant constantAcc(k=1) + annotation (Placement(transformation(extent={{-80,20}, + {-60,40}}, rotation=0))); + equation + connect(accelerate.flange, mass.flange_a) annotation (Line( + points={{-20,30},{0,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(constantAcc.y, accelerate.a_ref) annotation (Line( + points={{-59,30},{-42,30}}, + color={0,0,127}, + smooth=Smooth.None)); + annotation (Documentation(info=" +

+Demonstrate usage of component Sources.Accelerate by moving a massing +with a predefined acceleration. +

+"), experiment(StopTime=1.0, Interval=0.001)); + end Accelerate; + + model Damper "Use of damper models." + + extends Modelica.Icons.Example; + + Translational.Components.Mass mass1( + L=1, + s(start=3, fixed=true), + v(start=10, fixed=true), + m=1) annotation (Placement(transformation(extent={{-80,60},{-60, + 80}}, rotation=0))); + Translational.Components.Damper damper1( d=25) + annotation (Placement(transformation( + extent={{-20,60},{0,80}}, rotation=0))); + Translational.Components.Fixed fixed1( s0=4.5) + annotation (Placement(transformation( + extent={{22,60},{42,80}}, rotation=0))); + Translational.Components.Mass mass2( + L=1, + s(start=3, fixed=true), + v(start=10, fixed=true), + m=1) annotation (Placement(transformation(extent={{-80,0},{-60, + 20}}, rotation=0))); + Translational.Components.Damper damper2( d=25) + annotation (Placement(transformation( + extent={{-20,0},{0,20}}, rotation=0))); + Translational.Components.Fixed fixed2( s0=4.5) + annotation (Placement(transformation( + extent={{20,0},{40,20}}, rotation=0))); + Translational.Components.Mass mass3( + L=1, + s(start=3, fixed=true), + v(start=10, fixed=true), + m=1) annotation (Placement(transformation(extent={{-80,-60},{-60, + -40}}, rotation=0))); + Translational.Components.Fixed fixed3( s0=4.5) + annotation (Placement(transformation( + extent={{20,-60},{40,-40}}, rotation=0))); + Translational.Components.Spring spring2( s_rel0=1, c=1) + annotation (Placement( + transformation(extent={{-20,-20},{0,0}}, rotation=0))); + Translational.Components.SpringDamper springDamper3( s_rel0=1, d=25, + c=1) annotation (Placement( + transformation(extent={{-20,-60},{0,-40}}, rotation=0))); + equation + connect(mass1.flange_b, damper1.flange_a) annotation (Line(points= + {{-60,70},{-20,70}}, color={0,191,0})); + connect(mass2.flange_b, damper2.flange_a) annotation (Line(points={{-60,10}, + {-20,10}}, color={0,191,0})); + connect(damper2.flange_b,spring2. flange_b) annotation (Line(points={{0, + 10},{0,-10}}, color={0,191,0})); + connect(damper2.flange_a,spring2. flange_a) annotation (Line(points={{-20, + 10},{-20,-10}}, color={0,191,0})); + connect(mass3.flange_b, springDamper3.flange_a) annotation (Line( + points={{-60,-50},{-20,-50}}, color={0,191,0})); + connect(damper1.flange_b, fixed1.flange) annotation (Line( + points={{0,70},{32,70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(damper2.flange_b, fixed2.flange) annotation (Line( + points={{0,10},{30,10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper3.flange_b, fixed3.flange) annotation (Line( + points={{0,-50},{30,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation (Documentation(info=" +

+Demonstrate usage of damper components in different variants. +

+"), + experiment(StopTime=1.0, Interval=0.001)); + end Damper; + + model Oscillator "Oscillator demonstrates the use of initial conditions." + + extends Modelica.Icons.Example; + + Translational.Components.Mass mass1( + L=1, + s(start=-0.5, fixed=true), + v(start=0, fixed=true), + m=1) annotation (Placement(transformation(extent={{-20,40},{0, + 60}}, rotation=0))); + Translational.Components.Spring spring1( s_rel0=1, c=10000) + annotation (Placement( + transformation(extent={{20,40},{40,60}}, rotation=0))); + Translational.Components.Fixed fixed1( s0=1) + annotation (Placement(transformation( + extent={{60,40},{80,60}}, rotation=0))); + Translational.Sources.Force force1 + annotation (Placement(transformation(extent={{ + -60,40},{-40,60}}, rotation=0))); + Modelica.Blocks.Sources.Sine sine1(freqHz=15.9155) annotation (Placement(transformation( + extent={{-100,40},{-80,60}}, rotation=0))); + Translational.Components.Mass mass2( + L=1, + s(start=-0.5, fixed=true), + v(start=0, fixed=true), + m=1) annotation (Placement(transformation(extent={{-20,-60},{0, + -40}}, rotation=0))); + Translational.Components.Spring spring2( s_rel0=1, c=10000) + annotation (Placement( + transformation(extent={{20,-60},{40,-40}}, rotation=0))); + Translational.Components.Fixed fixed2( s0=1) + annotation (Placement(transformation( + extent={{60,-60},{80,-40}}, rotation=0))); + Translational.Sources.Force force2 + annotation (Placement(transformation(extent={{ + -60,-60},{-40,-40}}, rotation=0))); + Modelica.Blocks.Sources.Sine sine2(freqHz=15.9155) annotation (Placement(transformation( + extent={{-100,-60},{-80,-40}}, rotation=0))); + Translational.Components.Damper damper1( d=10) + annotation (Placement(transformation( + extent={{20,-36},{40,-16}}, rotation=0))); + equation + connect(mass1.flange_b, spring1.flange_a) annotation (Line(points= + {{0,50},{20,50}}, color={0,191,0})); + connect(spring2.flange_a,damper1. flange_a) annotation (Line(points={{20, + -50},{20,-26}}, color={0,191,0})); + connect(mass2.flange_b, spring2.flange_a) annotation (Line(points= + {{0,-50},{20,-50}}, color={0,191,0})); + connect(damper1.flange_b,spring2. flange_b) annotation (Line(points={{40, + -26},{40,-50}}, color={0,191,0})); + connect(sine1.y,force1. f) annotation (Line(points={{-79,50},{-62,50}}, + color={0,0,127})); + connect(sine2.y,force2. f) annotation (Line(points={{-79,-50},{-62,-50}}, + color={0,0,127})); + connect(spring1.flange_b, fixed1.flange) annotation (Line( + points={{40,50},{70,50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(force2.flange, mass2.flange_a) annotation (Line( + points={{-40,-50},{-20,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(force1.flange, mass1.flange_a) annotation (Line( + points={{-40,50},{-20,50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(spring2.flange_b, fixed2.flange) annotation (Line( + points={{40,-50},{70,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+A spring - mass system is a mechanical oscillator. If no +damping is included and the system is excited at resonance +frequency infinite amplitudes will result. +The resonant frequency is given by +omega_res = sqrt(c / m) +with: +

+ +
+      c spring stiffness
+      m mass
+
+ +

+To make sure that the system is initially at rest the initial +conditions s(start=0) and v(start=0) for the SlidingMass +are set. +If damping is added the amplitudes are bounded. +

+"), + experiment(StopTime=1.0, Interval=0.001)); + end Oscillator; + + model Sensors "Sensors for translational systems." + import Modelica; + + extends Modelica.Icons.Example; + + Translational.Sensors.ForceSensor forceSensor annotation (Placement( + transformation(extent={{-34,40},{-14,60}}, + rotation=0))); + Translational.Sensors.SpeedSensor speedSensor1 annotation (Placement( + transformation(extent={{40,-40},{60,-20}}, rotation=0))); + Translational.Sensors.PositionSensor positionSensor1 annotation (Placement( + transformation(extent={{40,0},{60,20}}, rotation=0))); + Translational.Sensors.AccSensor accSensor1 annotation (Placement( + transformation(extent={{40,-80},{60,-60}}, rotation=0))); + Translational.Components.Mass mass(L=1, + s(fixed=true), + v(fixed=true), + m=1) annotation (Placement( + transformation(extent={{20,40},{40,60}}, rotation=0))); + Translational.Sources.Force force + annotation (Placement(transformation(extent={{-64,40}, + {-44,60}}, rotation=0))); + Modelica.Blocks.Sources.Sine sineForce(amplitude=10, freqHz=4) + annotation (Placement( + transformation(extent={{-100,40},{-80,60}}, rotation=0))); + Translational.Sensors.PositionSensor positionSensor2 annotation (Placement( + transformation(extent={{60,40},{80,60}}, rotation=0))); + Modelica.Mechanics.Translational.Sensors.MultiSensor multiSensor + annotation (Placement(transformation(extent={{-8,40},{12,60}}))); + equation + connect(sineForce.y, force.f) + annotation (Line(points={{-79,50},{-66,50}}, + color={0,0,127})); + connect(forceSensor.flange_a, force.flange) annotation (Line( + points={{-34,50},{-44,50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass.flange_a, positionSensor1.flange) annotation (Line( + points={{20,50},{20,10},{40,10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass.flange_a, speedSensor1.flange) annotation (Line( + points={{20,50},{20,-30},{40,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass.flange_a, accSensor1.flange) annotation (Line( + points={{20,50},{20,-70},{40,-70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass.flange_b, positionSensor2.flange) annotation (Line( + points={{40,50},{60,50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(forceSensor.flange_b, multiSensor.flange_a) annotation (Line( + points={{-14,50},{-8,50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(multiSensor.flange_b, mass.flange_a) annotation (Line( + points={{12,50},{20,50}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+These sensors measure +

+ +
+   force f in N
+   position s in m
+   velocity v in m/s
+   acceleration a in m/s2
+
+ +

+The measured velocity and acceleration is independent on +the flange the sensor is connected to. The position +depends on the flange (flange_a or flange_b) and the +length L of the component. +Plot PositionSensor1.s, PositionSensor2.s and SlidingMass1.s +to see the difference. +

+"), + experiment(StopTime=1.0, Interval=0.001)); + end Sensors; + + model Friction "Use of model Stop" + extends Modelica.Icons.Example; + Modelica.Mechanics.Translational.Components.MassWithStopAndFriction stop1( + L=1, + s(fixed=true), + v(fixed=true), + smax=25, + smin=-25, + m=1, + F_prop=1, + F_Coulomb=5, + F_Stribeck=10, + fexp=2) annotation (Placement(transformation(extent={{20,60}, + {40,80}}, rotation=0))); + Translational.Sources.Force force + annotation (Placement(transformation(extent={{-20,60}, + {0,80}}, rotation=0))); + Modelica.Blocks.Sources.Sine sineForce(amplitude=25, freqHz=0.25) + annotation (Placement( + transformation(extent={{-60,60},{-40,80}}, + rotation=0))); + Modelica.Mechanics.Translational.Components.MassWithStopAndFriction stop2( + L=1, + smax=0.9, + smin=-0.9, + F_Coulomb=3, + F_Stribeck=5, + s(start=0, fixed=true), + m=1, + F_prop=1, + fexp=2, + v(start=-5, fixed=true)) + annotation (Placement(transformation(extent={{42,-60},{62, + -40}}, + rotation=0))); + Translational.Components.Spring spring(s_rel0=1, c=500) + annotation (Placement( + transformation(extent={{2,-60},{22,-40}}, + rotation=0))); + Translational.Components.Fixed fixed2(s0=-1.75) + annotation (Placement(transformation( + extent={{-40,-60},{-20,-40}}, + rotation=0))); + Translational.Sources.Force force2 + annotation (Placement(transformation(extent={{-22,0}, + {-2,20}}, rotation=0))); + Components.Mass mass( + m=1, + L=1, + s(fixed=true), + v(fixed=true)) + annotation (Placement(transformation(extent={{10,0},{30,20}}))); + Components.SupportFriction supportFriction(f_pos= + Examples.Utilities.GenerateStribeckFrictionTable( + F_prop=1, + F_Coulomb=5, + F_Stribeck=10, + fexp=2, + v_max=12, + nTable=50)) + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + equation + connect(spring.flange_b, stop2.flange_a) annotation (Line(points={{22,-50}, + {42,-50}},color={0,191,0})); + connect(sineForce.y, force.f) + annotation (Line(points={{-39,70},{-22,70}}, + color={0,0,127})); + connect(spring.flange_a, fixed2.flange) annotation (Line( + points={{2,-50},{-30,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(force.flange, stop1.flange_a) annotation (Line( + points={{0,70},{20,70}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(force2.flange, mass.flange_a) annotation (Line( + points={{-2,10},{10,10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass.flange_b, supportFriction.flange_a) annotation (Line( + points={{30,10},{40,10}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(sineForce.y, force2.f) annotation (Line( + points={{-39,70},{-30,70},{-30,10},{-24,10}}, + color={0,0,127}, + smooth=Smooth.None)); + annotation ( + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-100,80},{-80,60}}, + textString="1)", + lineColor={0,0,255}), + Text( + extent={{-100,20},{-80,0}}, + textString="2)", + lineColor={0,0,255}), + Text( + extent={{-100,-40},{-80,-60}}, + lineColor={0,0,255}, + textString="3)")}), + Documentation(info=" +
    +
  1. Simulate and then plot stop1.f as a function of stop1.v + This gives the Stribeck curve.
  2. +
  3. The same model is also available by modeling the system with a Mass and + a SupportFriction model. The SupportFriction model defines the friction characteristic + with a table. The table is constructed with function + Examples.Utilities.GenerateStribeckFrictionTable(..) to generate the + same friction characteristic as with stop1. + The simulation results of stop1 and of model mass are therefore identical.
  4. +
  5. Model stop2 gives an example for a hard stop. However there + can arise some problems with the used modeling approach (use of + reinit(..), convergence problems). In this case use the ElastoGap + to model a stop (see example Preload).
  6. +
+"), + experiment(StopTime=5.0, Interval=0.001)); + end Friction; + + model PreLoad "Preload of a spool using ElastoGap models." + + extends Modelica.Icons.Example; + + Translational.Components.ElastoGap innerContactA( + c=1000e3, + d=250, + s_rel0=0.001) + annotation (Placement(transformation(extent={{-70,20},{-50,40}}, + rotation=0))); + Translational.Components.ElastoGap innerContactB( + c=1000e3, + d=250, + s_rel0=0.001) + annotation ( Placement( + transformation(extent={{50,20},{70,40}}, rotation=0))); + Translational.Components.Mass spool( + L=0.19, + m=0.150, + s(start=0.01475, fixed=true), + v(fixed=true)) annotation (Placement(transformation(extent={{0,-40}, + {40,0}}, rotation=0))); + Translational.Components.Fixed fixedLe( s0=-0.0955) + annotation (Placement( + transformation(extent={{-10,-10},{10,10}}, rotation=270, + origin={-80,90}))); + Translational.Components.Mass springPlateA( + m=10e-3, + L=0.002, + s(start=-0.093, fixed=true), + v(fixed=true)) annotation (Placement(transformation(extent={{-38,60}, + {-18,80}}, rotation=0))); + Translational.Components.Mass springPlateB( + m=10e-3, + s(start=-0.06925, fixed=true), + L=0.002, + v(fixed=true)) annotation ( + Placement(transformation(extent={{20,60},{40,80}}, rotation=0))); + Translational.Components.Spring spring( c=20e3, s_rel0=0.025) + annotation (Placement(transformation(extent={{-10,60},{10,80}},rotation= + 0))); + Translational.Components.ElastoGap outerContactA( + c=1000e3, + d=250, + s_rel0=0.0015) + annotation (Placement(transformation(extent={{-70,60},{-50,80}}, + rotation=0))); + Translational.Components.ElastoGap outerContactB( + c=1000e3, + d=250, + s_rel0=0.0015) annotation (Placement(transformation(extent={{50,60},{70, + 80}}, rotation=0))); + Translational.Components.Rod rod1( L=0.007) + annotation (Placement(transformation( + extent={{-40,30},{-20,50}}, rotation=0))); + Translational.Components.Damper friction( d=2500) + annotation (Placement( + transformation( + origin={-80,50}, + extent={{-10,-10},{10,10}}, + rotation=270))); + Translational.Sources.Force force + annotation (Placement(transformation(extent={{-38,-30}, + {-18,-10}}, rotation=0))); + Translational.Components.Rod housing( L=0.0305) + annotation (Placement(transformation( + extent={{-10,80},{10,100}}, + rotation=0))); + Translational.Components.Rod rod3( L=0.00575) + annotation (Placement(transformation( + extent={{-40,-2},{-20,18}}, rotation=0))); + Translational.Components.Rod rod4( L=0.00575) + annotation (Placement(transformation( + extent={{20,-2},{40,18}}, rotation=0))); + Translational.Components.Rod rod2( L=0.007) + annotation (Placement(transformation( + extent={{20,30},{40,50}}, rotation=0))); + Modelica.Blocks.Sources.Sine sineForce(amplitude=150, freqHz=0.01) + annotation (Placement(transformation(extent={{-78,-30},{-58,-10}}, + rotation=0))); + equation + connect(outerContactA.flange_b,springPlateA. flange_a) annotation (Line( + points={{-50,70},{-38,70}}, color={0,191,0})); + connect(springPlateA.flange_b,spring. flange_a) annotation (Line(points={{-18,70}, + {-18,70},{-10,70}},color={0,191,0})); + connect(spring.flange_b,springPlateB. flange_a) annotation (Line(points={{10,70}, + {20,70}}, color={0,191,0})); + connect(springPlateB.flange_b,outerContactB. flange_a) annotation (Line( + points={{40,70},{40,70},{50,70}}, + color={0,191,0})); + connect(outerContactB.flange_b,housing. flange_b) annotation (Line(points={{70,70}, + {70,90},{10,90}}, color={0,191,0})); + connect(springPlateA.flange_b,rod1. flange_a) annotation (Line(points={{-18,70}, + {-18,52},{-40,52},{-40,40}}, color={0,191,0})); + connect(innerContactA.flange_a,rod3. flange_a) annotation (Line(points={{-70,30}, + {-80,30},{-80,8},{-40,8}}, color={0,191,0})); + connect(innerContactA.flange_b,rod1. flange_b) annotation (Line(points={{-50,30}, + {-20,30},{-20,40}}, color={0,191,0})); + connect(rod2.flange_a,innerContactB. flange_a) annotation (Line(points={{20,40}, + {20,30},{50,30}}, color={0,191,0})); + connect(rod4.flange_b,innerContactB. flange_b) annotation (Line(points={{40,8},{ + 70,8},{70,30}}, color={0,191,0})); + connect(friction.flange_b,rod3. flange_a) annotation (Line(points={{-80,40}, + {-80,8},{-40,8}}, color={0,191,0})); + connect(rod3.flange_b,rod4. flange_a) annotation (Line(points={{-20,8},{ + 20,8}}, color={0,191,0})); + connect(rod2.flange_b,springPlateB. flange_a) annotation (Line(points={{40,40}, + {40,52},{20,52},{20,70}}, color={0,191,0})); + connect(spool.flange_a,rod4. flange_a) annotation (Line(points={{0,-20},{ + 0,8},{20,8}}, color={0,191,0})); + connect(sineForce.y, force.f) + annotation (Line(points={{-57,-20},{-46,-20},{ + -40,-20}}, + color={0,0,127})); + connect(force.flange, spool.flange_a) annotation (Line( + points={{-18,-20},{0,-20}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(outerContactA.flange_a, fixedLe.flange) annotation (Line( + points={{-70,70},{-80,70},{-80,90}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(housing.flange_a, fixedLe.flange) annotation (Line( + points={{-10,90},{-80,90}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(friction.flange_a, fixedLe.flange) annotation (Line( + points={{-80,60},{-80,90}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-92,-72},{90,-80}}, + textString="positive force => spool moves in positive direction ", + lineColor={0,0,255}), + Text( + extent={{-48,-52},{42,-60}}, + textString="Simulate for 100 s", + lineColor={0,0,255}), + Text( + extent={{-100,-62},{88,-70}}, + lineColor={0,0,255}, + textString="plot spool.s as a function of force.f")}), + Documentation(info=" +

+When designing hydraulic valves it is often necessary to hold the spool in +a certain position as long as an external force is below a threshold value. +If this force exceeds the threshold value a linear relation between force +and position is desired. +There are designs that need only one spring to accomplish this task. Using +the ElastoGap elements this design can be modelled easily. +Drawing of spool. +

+ +

+
+
+
+

+ +

+Spool position s as a function of working force f. +

+ +

+ +

+"), + experiment(StopTime=100, Interval=0.1)); + end PreLoad; + + model ElastoGap "Demonstrate usage of ElastoGap" + extends Modelica.Icons.Example; + Components.Fixed fixed + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + Components.Rod rod1(L=2) + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + Components.Rod rod2(L=2) + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + Components.SpringDamper springDamper1( + c=10, + s_rel0=1, + s_rel(fixed=false, start=1), + d=1.5) + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + Components.SpringDamper springDamper2( + c=10, + s_rel0=1, + s_rel(fixed=false, start=1), + d=1.5) + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + Components.Mass mass1( + s(fixed=true, start=2), + L=0, + m=1, + v(fixed=true)) + annotation (Placement(transformation(extent={{-10,20},{10,40}}))); + Components.ElastoGap elastoGap1( + c=10, + s_rel(fixed=false, start=1.5), + s_rel0=1.5, + d=1.5) + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + Components.ElastoGap elastoGap2( + c=10, + s_rel(fixed=false, start=1.5), + s_rel0=1.5, + d=1.5) + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + Components.Mass mass2( + s(fixed=true, start=2), + L=0, + m=1, + v(fixed=true)) + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + parameter SI.TranslationalDampingConstant d=1.5 "Damping constant"; + equation + + connect(rod1.flange_b, fixed.flange) annotation (Line( + points={{-20,0},{0,0}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed.flange, rod2.flange_a) annotation (Line( + points={{0,0},{20,0}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper1.flange_a, rod1.flange_a) annotation (Line( + points={{-40,30},{-48,30},{-48,0},{-40,0}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper2.flange_b, rod2.flange_b) annotation (Line( + points={{40,30},{50,30},{50,0},{40,0}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper1.flange_b, mass1.flange_a) annotation (Line( + points={{-20,30},{-10,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass1.flange_b, springDamper2.flange_a) annotation (Line( + points={{10,30},{20,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(rod1.flange_a, elastoGap1.flange_a) annotation (Line( + points={{-40,0},{-48,0},{-48,-30},{-40,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(rod2.flange_b, elastoGap2.flange_b) annotation (Line( + points={{40,0},{50,0},{50,-30},{40,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(elastoGap1.flange_b, mass2.flange_a) annotation (Line( + points={{-20,-30},{-10,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass2.flange_b, elastoGap2.flange_a) annotation (Line( + points={{10,-30},{20,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+This model demonstrates the effect of ElastoGaps on eigenfrequency:
+Plot mass1.s and mass2.s as well as mass1.v and mass2.v

+mass1 is moved by both spring forces all the time.
+Since elastoGap1 lifts off at s > -0.5 m and elastoGap2 lifts off s < +0.5 m, +mass2 moves freely as long as -0.5 m < s < +0.5 m. +

+"), + experiment(StopTime=1.0, Interval=0.01)); + end ElastoGap; + + model Brake "Demonstrate braking of a translational moving mass" + extends Modelica.Icons.Example; + + Modelica.Mechanics.Translational.Components.Brake brake(fn_max=1, useSupport= + false) + annotation (Placement(transformation(extent={{6,40},{26,20}}))); + Modelica.Mechanics.Translational.Components.Mass mass1(m=1, + s(fixed=true), + v(start=1, fixed=true)) + annotation (Placement(transformation(extent={{-34,20},{-14,40}}))); + Modelica.Blocks.Sources.Step step(startTime=0.1, height=2) + annotation (Placement(transformation(extent={{-10,-10},{10,10}}, + rotation=0, + origin={-24,-10}))); + Modelica.Mechanics.Translational.Components.Brake brake1( + fn_max=1, useSupport= + true) + annotation (Placement(transformation(extent={{6,-60},{26,-40}}))); + Modelica.Mechanics.Translational.Components.Mass mass2(m=1, + s(fixed=true), + v(start=1, fixed=true)) + annotation (Placement(transformation(extent={{-34,-60},{-14,-40}}))); + Modelica.Mechanics.Translational.Components.Fixed fixed + annotation (Placement(transformation(extent={{6,-80},{26,-60}}))); + equation + connect(mass1.flange_b, brake.flange_a) + annotation (Line( + points={{-14,30},{6,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(step.y, brake.f_normalized) annotation (Line( + points={{-13,-10},{16,-10},{16,19}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(mass2.flange_b, brake1.flange_a) + annotation (Line( + points={{-14,-50},{6,-50}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(step.y, brake1.f_normalized) annotation (Line( + points={{-13,-10},{16,-10},{16,-39}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(fixed.flange, brake1.support) annotation (Line( + points={{16,-70},{16,-60}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( Documentation(info=" +

+This model consists of a mass with an initial velocity of 1 m/s. +After 0.1 s, a brake is activated and it is shown that the mass decelerates until +it arrives at rest and remains at rest. Two versions of this system are present, +one where the brake is implicitly grounded and one where it is explicitly grounded. +

+"), + experiment(StopTime=2.0, Interval=0.001)); + end Brake; + + model HeatLosses "Demonstrate the modeling of heat losses" + extends Modelica.Icons.Example; + Components.Mass mass1( + m=1, + s(fixed=true), + L=0.1, + v(fixed=true)) + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + Components.SpringDamper springDamper( + s_rel(fixed=true), + v_rel(fixed=true), + c=100, + d=10, + useHeatPort=true) + annotation (Placement(transformation(extent={{-30,20},{-10,40}}))); + Components.Damper damper(d=10, useHeatPort=true) + annotation (Placement(transformation(extent={{-10,10},{10,-10}}, + rotation=-90, + origin={-60,-10}))); + Components.ElastoGap elastoGap( + c=100, + d=20, + s_rel0=-0.02, + useHeatPort=true) + annotation (Placement(transformation(extent={{-90,-10},{-70,10}}))); + Components.Fixed fixed1 + annotation (Placement(transformation(extent={{-70,-40},{-50,-20}}))); + Sources.Force force + annotation (Placement(transformation(extent={{-90,20},{-70,40}}))); + Blocks.Sources.Sine sine1(freqHz=1, amplitude=20) + annotation (Placement(transformation(extent={{-120,20},{-100,40}}))); + Components.Mass mass2( + m=1, + L=0.1, + s(fixed=false), + v(fixed=false)) + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + Components.SupportFriction supportFriction(useHeatPort=true) + annotation (Placement(transformation(extent={{30,20},{50,40}}))); + Components.Spring spring(c=100, s_rel(fixed=true)) + annotation (Placement(transformation(extent={{60,20},{80,40}}))); + Components.Mass mass3( + m=1, + L=0.1, + s(fixed=false), + v(fixed=true)) + annotation (Placement(transformation(extent={{90,20},{110,40}}))); + Components.Brake brake(fn_max=10, useHeatPort=true) + annotation (Placement(transformation(extent={{120,20},{140,40}}))); + Blocks.Sources.Sine sine2(amplitude=10, freqHz=2) + annotation (Placement(transformation(extent={{100,50},{120,70}}))); + Components.MassWithStopAndFriction massWithStopAndFriction( + L=0.1, + m=1, + F_prop=0.5, + F_Coulomb=1, + F_Stribeck=2, + fexp=2, + smin=0, + smax=0.4, + v(fixed=true), + useHeatPort=true) + annotation (Placement(transformation(extent={{180,20},{200,40}}))); + Thermal.HeatTransfer.Components.Convection convection + annotation (Placement(transformation(extent={{-10,-40},{10,-60}}))); + Blocks.Sources.Constant const(k=20) + annotation (Placement(transformation(extent={{-30,-90},{-10,-70}}))); + Thermal.HeatTransfer.Celsius.FixedTemperature TAmbient(T=25) + "Ambient temperature" + annotation (Placement(transformation(extent={{40,-60},{20,-40}}))); + Components.Fixed fixed2 + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + Components.SpringDamper springDamper1( + c=10000, + d=1000, + useHeatPort=true, + s_rel(fixed=true)) + annotation (Placement(transformation(extent={{150,20},{170,40}}))); + equation + + connect(mass1.flange_b, springDamper.flange_a) + annotation (Line( + points={{-40,30},{-30,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(sine1.y, force.f) annotation (Line( + points={{-99,30},{-92,30}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(force.flange, mass1.flange_a) annotation (Line( + points={{-70,30},{-60,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass1.flange_a, damper.flange_a) annotation (Line( + points={{-60,30},{-60,0}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(damper.flange_b, fixed1.flange) annotation (Line( + points={{-60,-20},{-60,-30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper.flange_b, mass2.flange_a) annotation (Line( + points={{-10,30},{0,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass2.flange_b, supportFriction.flange_a) annotation (Line( + points={{20,30},{30,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(supportFriction.flange_b, spring.flange_a) annotation (Line( + points={{50,30},{60,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(spring.flange_b, mass3.flange_a) annotation (Line( + points={{80,30},{90,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(mass3.flange_b, brake.flange_a) annotation (Line( + points={{110,30},{120,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(sine2.y, brake.f_normalized) annotation (Line( + points={{121,60},{130,60},{130,41}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(elastoGap.flange_b, mass1.flange_a) annotation (Line( + points={{-70,0},{-60,0},{-60,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(const.y,convection. Gc) annotation (Line( + points={{-9,-80},{0,-80},{0,-60}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(TAmbient.port,convection. fluid) annotation (Line( + points={{20,-50},{10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(elastoGap.flange_a, fixed2.flange) annotation (Line( + points={{-90,0},{-110,0}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(elastoGap.heatPort, convection.solid) annotation (Line( + points={{-90,-10},{-90,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(damper.heatPort, convection.solid) annotation (Line( + points={{-50,0},{-50,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(springDamper.heatPort, convection.solid) annotation (Line( + points={{-30,20},{-30,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(supportFriction.heatPort, convection.solid) annotation (Line( + points={{30,20},{30,0},{-30,0},{-30,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(brake.heatPort, convection.solid) annotation (Line( + points={{120,20},{120,0},{-30,0},{-30,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(massWithStopAndFriction.heatPort, convection.solid) annotation ( + Line( + points={{180,20},{180,0},{-30,0},{-30,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(brake.flange_b, springDamper1.flange_a) annotation (Line( + points={{140,30},{150,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper1.flange_b, massWithStopAndFriction.flange_a) + annotation (Line( + points={{170,30},{180,30}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(springDamper1.heatPort, convection.solid) annotation (Line( + points={{150,20},{150,0},{-30,0},{-30,-50},{-10,-50}}, + color={191,0,0}, + smooth=Smooth.None)); + annotation ( Documentation(info=" +

+This model demonstrates how to model the dissipated power of a Translational model, +by enabling the heatPort of all components and connecting these heatPorts via +a convection element to the environment. The total heat flow generated by the +elements and transported to the environment +is present in variable convection.fluid. +

+"), + experiment(StopTime=2.0, Interval=0.001), + Diagram(coordinateSystem(extent={{-120,-100},{200,100}}, + preserveAspectRatio=false))); + end HeatLosses; + + package Utilities "Utility classes used by the Example models" + extends Modelica.Icons.UtilitiesPackage; + function GenerateStribeckFrictionTable + "Generate Stribeck friction table for example Friction for the SupportFriction" + extends Modelica.Icons.Function; + input Real F_prop(final unit="N.s/m", final min=0) + "Velocity dependent friction coefficient"; + input Modelica.SIunits.Force F_Coulomb + "Constant friction: Coulomb force"; + input Modelica.SIunits.Force F_Stribeck "Stribeck effect"; + input Real fexp(final unit="s/m", final min=0) "Exponential decay"; + input Real v_max "Generate table from v=0 ... v_max"; + input Integer nTable(min=2)=100 "Number of table points"; + output Real table[nTable,2] "Friction table"; + algorithm + for i in 1:nTable loop + table[i,1] :=v_max*(i - 1)/(nTable - 1); + table[i,2] :=F_Coulomb + F_prop*table[i, 1] + + F_Stribeck*exp(-fexp*table[i, 1]); + end for; + annotation (Documentation(info=" +

+Returns a table with the friction characteristic table[nTable,2] = [0, f1; ....; v_max, fn], where the first +column is the velocity v in the range 0..v_max and the second column is the friction force +according to the Stribeck curve: +

+
+  F_Coulomb + F_prop*v + F_Stribeck*exp(-fexp*v);
+
+ +")); + end GenerateStribeckFrictionTable; + annotation (Documentation(info=" +

Utility models and functions used in the Examples

+")); + end Utilities; + annotation ( + Documentation(info=" +

+This package contains example models to demonstrate the usage of the +Translational package. Open the models and +simulate them according to the provided description in the models. +

+ +")); + end Examples; + + package Components "Components for 1D translational mechanical drive trains" + extends Modelica.Icons.Package; + + model Fixed "Fixed flange" + parameter SI.Position s0=0 "Fixed offset position of housing"; + + Interfaces.Flange_b flange annotation (Placement(transformation( + origin={0,0}, + extent={{-10,10},{10,-10}}, + rotation=180))); + equation + flange.s = s0; + annotation ( + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-80,-40},{80,-40}}, color={0,0,0}), + Line(points={{80,-40},{40,-80}}, color={0,0,0}), + Line(points={{40,-40},{0,-80}}, color={0,0,0}), + Line(points={{0,-40},{-40,-80}}, color={0,0,0}), + Line(points={{-40,-40},{-80,-80}}, color={0,0,0}), + Line(points={{0,-40},{0,-10}}, color={0,0,0}), + Text( + extent={{-150,-90},{150,-130}}, + textString="%name", + lineColor={0,0,255})}), + Documentation(info=" +

+The flange of a 1D translational mechanical system fixed +at an position s0 in the housing. May be used: +

+
    +
  • to connect a compliant element, such as a spring or a damper, + between a sliding mass and the housing. +
  • to fix a rigid element, such as a sliding mass, at a specific + position. +
+ +")); + end Fixed; + + model Mass "Sliding mass with inertia" + parameter SI.Mass m(min=0, start=1) "Mass of the sliding mass"; + parameter StateSelect stateSelect=StateSelect.default + "Priority to use s and v as states" annotation(Dialog(tab="Advanced")); + extends Translational.Interfaces.PartialRigid(L=0,s(start=0, stateSelect=stateSelect)); + SI.Velocity v(start=0, stateSelect=stateSelect) + "Absolute velocity of component"; + SI.Acceleration a(start=0) "Absolute acceleration of component"; + + equation + v = der(s); + a = der(v); + m*a = flange_a.f + flange_b.f; + annotation ( + Documentation(info=" +

+Sliding mass with inertia, without friction and two rigidly connected flanges. +

+

+The sliding mass has the length L, the position coordinate s is in the middle. +Sign convention: A positive force at flange flange_a moves the sliding mass in the positive direction. +A negative force at flange flange_a moves the sliding mass to the negative direction. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,0},{-55,0}}, color={0,127,0}), + Line(points={{55,0},{100,0}}, color={0,127,0}), + Rectangle( + extent={{-55,-30},{56,30}}, + lineColor={0,0,0}, + fillPattern=FillPattern.Sphere, + fillColor={255,255,255}), + Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-60,-90},{20,-90}}, color={0,0,0}), + Text( + extent={{-150,85},{150,45}}, + textString="%name", + lineColor={0,0,255}), + Text( + extent={{-150,-45},{150,-75}}, + lineColor={0,0,0}, + textString="m=%m")}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,0},{-55,0}}, color={0,127,0}), + Line(points={{55,0},{100,0}}, color={0,127,0}), + Rectangle( + extent={{-55,-30},{55,30}}, + lineColor={0,0,0}, + fillPattern=FillPattern.Sphere, + fillColor={255,255,255}), + Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-60,-90},{20,-90}}, color={0,0,0}), + Line(points={{-100,-29},{-100,-61}}, color={0,0,0}), + Line(points={{100,-61},{100,-28}}, color={0,0,0}), + Line(points={{-98,-60},{98,-60}}, color={0,0,0}), + Polygon( + points={{-101,-60},{-96,-59},{-96,-61},{-101,-60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{100,-60},{95,-61},{95,-59},{100,-60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-44,-41},{51,-57}}, + textString="Length L", + lineColor={0,0,255}), + Line(points={{0,30},{0,53}}, color={0,0,0}), + Line(points={{-72,40},{1,40}}, color={0,0,0}), + Polygon( + points={{-7,42},{-7,38},{-1,40},{-7,42}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-61,53},{-9,42}}, + textString="Position s", + lineColor={0,0,255})})); + end Mass; + + model Rod "Rod without inertia" + extends Translational.Interfaces.PartialRigid; + + equation + 0 = flange_a.f + flange_b.f; + annotation ( + Documentation(info=" +

+Rod without inertia and two rigidly connected flanges. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,0},{-55,0}}, color={0,127,0}), + Line(points={{53,0},{99,0}}, color={0,127,0}), + Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-60,-90},{20,-90}}, color={0,0,0}), + Rectangle( + extent={{-55,10},{53,-10}}, + lineColor={160,160,164}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,80},{150,40}}, + textString="%name", + lineColor={0,0,255}), + Text( + extent={{-150,-30},{150,-60}}, + lineColor={0,0,0}, + textString="L=%L")}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,0},{-55,0}}, color={0,127,0}), + Line(points={{54,0},{100,0}}, color={0,127,0}), + Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-60,-90},{20,-90}}, color={0,0,0}), + Rectangle( + extent={{-55,3},{53,-4}}, + lineColor={160,160,164}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{-100,-29},{-100,-61}}, color={0,0,0}), + Line(points={{100,-61},{100,-28}}, color={0,0,0}), + Line(points={{-98,-60},{98,-60}}, color={0,0,0}), + Polygon( + points={{-101,-60},{-96,-59},{-96,-61},{-101,-60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{100,-60},{95,-61},{95,-59},{100,-60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-44,-41},{51,-57}}, + textString="Length L", + lineColor={0,0,255})})); + end Rod; + + model Spring "Linear 1D translational spring" + extends Translational.Interfaces.PartialCompliant; + parameter SI.TranslationalSpringConstant c(final min=0, start = 1) + "Spring constant"; + parameter SI.Distance s_rel0=0 "Unstretched spring length"; + + equation + f = c*(s_rel - s_rel0); + annotation ( + Documentation(info=" +

+A linear 1D translational spring. The component can be connected either +between two sliding masses, or between +a sliding mass and the housing (model Fixed), to describe +a coupling of the sliding mass with the housing via a spring. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-60,-90},{20,-90}}, color={0,0,0}), + Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,90},{150,50}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{-98,0},{-60,0},{-44,-30},{-16,30},{14,-30},{44,30},{ + 60,0},{100,0}},color={0,0,0}), + Text( + extent={{-150,-45},{150,-75}}, + lineColor={0,0,0}, + textString="c=%c")}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,0},{-100,65}}, color={128,128,128}), + Line(points={{100,0},{100,65}}, color={128,128,128}), + Line(points={{-100,60},{100,60}}, color={128,128,128}), + Polygon( + points={{90,63},{100,60},{90,57},{90,63}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Text( + extent={{-56,66},{36,81}}, + lineColor={0,0,255}, + textString="s_rel"), + Line(points={{-86,0},{-60,0},{-44,-30},{-16,30},{14,-30},{44,30},{ + 60,0},{84,0}}, color={0,0,0})})); + end Spring; + + model Damper "Linear 1D translational damper" + extends Translational.Interfaces.PartialCompliantWithRelativeStates; + parameter SI.TranslationalDampingConstant d(final min=0, start = 0) + "Damping constant"; + extends + Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT; + equation + f = d*v_rel; + lossPower = f*v_rel; + annotation ( + Documentation(info=" +

+Linear, velocity dependent damper element. It can be either connected +between a sliding mass and the housing (model Fixed), or +between two sliding masses. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-90,0},{-60,0}}, color={0,0,0}), + Line(points={{-60,-30},{-60,30}}, color={0,0,0}), + Line(points={{-60,-30},{60,-30}}, color={0,0,0}), + Line(points={{-60,30},{60,30}}, color={0,0,0}), + Rectangle( + extent={{-60,30},{30,-30}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{30,0},{90,0}}, color={0,0,0}), + Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-60,-90},{20,-90}}, color={0,0,0}), + Text( + extent={{-150,90},{150,50}}, + textString="%name", + lineColor={0,0,255}), + Text( + extent={{-150,-45},{150,-75}}, + lineColor={0,0,0}, + textString="d=%d"), + Line(visible=useHeatPort, + points={{-100,-100},{-100,-20},{-14,-20}}, + color={191,0,0}, + pattern=LinePattern.Dot, + smooth=Smooth.None)}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-90,0},{-60,0}}, color={0,0,0}), + Line(points={{-60,-30},{-60,30}}, color={0,0,0}), + Line(points={{-60,-30},{60,-30}}, color={0,0,0}), + Line(points={{-60,30},{60,30}}, color={0,0,0}), + Rectangle( + extent={{-60,30},{30,-30}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{30,0},{90,0}}, color={0,0,0}), + Line(points={{-50,60},{50,60}}, color={128,128,128}), + Polygon( + points={{50,63},{60,60},{50,57},{50,63}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Text( + extent={{-58,68},{42,78}}, + lineColor={128,128,128}, + textString="der(s_rel)")})); + end Damper; + + model SpringDamper "Linear 1D translational spring and damper in parallel" + extends Translational.Interfaces.PartialCompliantWithRelativeStates; + parameter SI.TranslationalSpringConstant c(final min=0, start = 1) + "Spring constant"; + parameter SI.TranslationalDampingConstant d(final min=0, start = 1) + "Damping constant"; + parameter SI.Position s_rel0=0 "Unstretched spring length"; + extends + Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT; + protected + Modelica.SIunits.Force f_c "Spring force"; + Modelica.SIunits.Force f_d "Damping force"; + equation + f_c = c*(s_rel - s_rel0); + f_d = d*v_rel; + f = f_c + f_d; + lossPower = f_d*v_rel; + annotation ( + Documentation(info=" +

+A spring and damper element connected in parallel. +The component can be +connected either between two sliding masses to describe the elasticity +and damping, or between a sliding mass and the housing (model Fixed), +to describe a coupling of the sliding mass with the housing via a spring/damper. +

+"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-80,40},{-60,40},{-45,10},{-15,70},{15,10},{45,70},{ + 60,40},{80,40}}, color={0,0,0}), + Line(points={{-80,40},{-80,-70}}, color={0,0,0}), + Line(points={{-80,-70},{-52,-70}}, color={0,0,0}), + Rectangle( + extent={{-52,-49},{38,-91}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{-52,-49},{68,-49}}, color={0,0,0}), + Line(points={{-51,-91},{69,-91}}, color={0,0,0}), + Line(points={{38,-70},{80,-70}}, color={0,0,0}), + Line(points={{80,40},{80,-70}}, color={0,0,0}), + Line(points={{-90,0},{-80,0}}, color={0,0,0}), + Line(points={{80,0},{90,0}}, color={0,0,0}), + Polygon( + points={{53,-18},{23,-8},{23,-28},{53,-18}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-57,-18},{23,-18}}, color={0,0,0}), + Text( + extent={{-150,120},{150,80}}, + textString="%name", + lineColor={0,0,255}), + Text( + extent={{-150,-135},{150,-165}}, + lineColor={0,0,0}, + textString="d=%d"), + Text( + extent={{-150,-100},{150,-130}}, + lineColor={0,0,0}, + textString="c=%c"), + Line(visible=useHeatPort, + points={{-100,-100},{-100,-80},{-5,-80}}, + color={191,0,0}, + pattern=LinePattern.Dot, + smooth=Smooth.None)}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line( + points={{-80,32},{-58,32},{-43,2},{-13,62},{17,2},{47,62},{62,32}, + {80,32}}, + color={0,0,0}, + thickness=0.5), + Line(points={{-100,31},{-100,96}}, color={128,128,128}), + Line(points={{100,29},{100,94}}, color={128,128,128}), + Line(points={{-98,82},{100,82}}, color={128,128,128}), + Polygon( + points={{90,85},{100,82},{90,79},{90,85}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Text( + extent={{-63,83},{46,103}}, + lineColor={0,0,255}, + textString="s_rel"), + Rectangle( + extent={{-52,-28},{38,-72}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{-51,-72},{69,-72}}, color={0,0,0}), + Line(points={{-52,-28},{68,-28}}, color={0,0,0}), + Line(points={{38,-50},{80,-50}}, color={0,0,0}), + Line(points={{-80,-50},{-52,-50}}, color={0,0,0}), + Line(points={{-80,32},{-80,-50}}, color={0,0,0}), + Line(points={{80,32},{80,-50}}, color={0,0,0}), + Line(points={{-90,0},{-80,0}}, color={0,0,0}), + Line(points={{90,0},{80,0}}, color={0,0,0})})); + end SpringDamper; + + model ElastoGap "1D translational spring damper combination with gap" + extends + Modelica.Mechanics.Translational.Interfaces.PartialCompliantWithRelativeStates; + parameter SI.TranslationalSpringConstant c(final min=0, start=1) + "Spring constant"; + parameter SI.TranslationalDampingConstant d(final min=0, start=1) + "Damping constant"; + parameter SI.Position s_rel0=0 "Unstretched spring length"; + parameter Real n(final min=1) = 1 + "Exponent of spring force ( f_c = -c*|s_rel-s_rel0|^n )"; + extends + Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT; + + /* +Please note that initialization might fail due to the nonlinear spring characteristic +(spring force is zero for s_rel > s_rel0) +if a positive force is acting on the element and no other force balances this force +(e.g., when setting both initial velocity and acceleration to 0) +*/ + Boolean contact "=true, if contact, otherwise no contact"; + protected + Modelica.SIunits.Force f_c "Spring force"; + Modelica.SIunits.Force f_d2 "Linear damping force"; + Modelica.SIunits.Force f_d + "Linear damping force which is limited by spring force (|f_d| <= |f_c|)"; + equation + // Modify contact force, so that it is only "pushing" and not + // "pulling/sticking" and that it is continuous + contact = s_rel < s_rel0; + f_c = smooth(1, noEvent( if contact then -c*abs(s_rel - s_rel0)^n else 0)); + f_d2 = if contact then d*v_rel else 0; + f_d = smooth(0, noEvent( if contact then (if f_d2 < f_c then f_c else + if f_d2 > -f_c then -f_c else f_d2) else 0)); + f = f_c + f_d; + lossPower = f_d*v_rel; + annotation ( + Documentation(info=" +

+This component models a spring damper combination that can lift off. +It can be connected between a sliding mass and the housing (model +Fixed), +to describe the contact of a sliding mass with the housing. +

+ +

+As long as s_rel > s_rel0, no force is exerted (s_rel = flange_b.s - flange_a.s). +If s_rel ≤ s_rel0, the contact force is basically computed with a linear +spring/damper characteristic. With parameter n≥1 (exponent of spring force), +a nonlinear spring force can be modeled: +

+ +
+   desiredContactForce = c*|s_rel - s_rel0|^n + d*der(s_rel)
+
+ +

+Note, Hertzian contact is described by: +

+
    +
  • Contact between two metallic spheres: n=1.5
  • +
  • Contact between two metallic plates: n=1
  • +
+ +

+The above force law leads to the following difficulties: +

+ +
    +
  1. If the damper force becomes larger as the spring force and with opposite sign, + the contact force would be \"pulling/sticking\" which is unphysical, since during + contact only pushing forces can occur.
  2. + +
  3. When contact occurs with a non-zero relative speed (which is the usual + situation), the damping force has a non-zero value and therefore the contact + force changes discontinuously at s_rel = s_rel0. Again, this is not physical + because the force can only change continuously. (Note, this component is not an + idealized model where a steep characteristic is approximated by a discontinuity, + but it shall model the steep characteristic.)
  4. +
+ +

+In the literature there are several proposals to fix problem (2). Especially, often +the following model is used (see, e.g., +Lankarani, Nikravesh: Continuous Contact Force Models for Impact +Analysis in Multibody Systems, Nonlinear Dynamics 5, pp. 193-207, 1994, +pdf-download): +

+ +
+   f = c*s_rel^n + (d*s_rel^n)*der(s_rel)
+
+ +

+However, this and other models proposed in literature violate +issue (1), i.e., unphysical pulling forces can occur (if d*der(s_rel) +becomes large enough). Note, if the force law is of the form \"f = f_c + f_d\", then a +necessary condition is that |f_d| ≤ |f_c|, otherwise (1) and (2) are violated. +For this reason, the most simplest approach is used in the ElastoGap model +to fix both problems by using this necessary condition in the force law directly. +If s_rel0 = 0, the equations are: +

+ +
+    if s_rel ≥ 0 then
+       f = 0;    // contact force
+    else
+       f_c  = -c*|s_rel|^n;          // contact spring force (Hertzian contact force)
+       f_d2 = d*der(s_rel);         // linear contact damper force
+       f_d  = if f_d2 <  f_c then  f_c else
+              if f_d2 > -f_c then -f_c else f_d2;  // bounded damper force
+       f    = f_c + f_d;            // contact force
+    end if;
+
+ +

+Note, since |f_d| ≤ |f_c|, pulling forces cannot occur and the contact force +is always continuous, especially around the start of the penetration at s_rel = s_rel0. +

+ +

+In the next figure, a typical simulation with the ElastoGap model is shown +(Examples.ElastoGap) +where the different effects are visualized: +

+ +
    +
  1. Curve 1 (elastoGap1.f) is the unmodified contact force, i.e., the linear spring/damper + characteristic. A pulling/sticking force is present at the end of the contact.
  2. +
  3. Curve 2 (elastoGap2.f) is the contact force, where the force is explicitly set to + zero when pulling/sticking occurs. The contact force is discontinuous when contact starts.
  4. +
  5. Curve 3 (elastoGap3.f) is the ElastoGap model of this library. No discontinuity and no + pulling/sticking occurs.
  6. +
+ +

+ +

+"), Diagram(coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,0},{-50,0}}, color={0,127,0}), + Line( + points={{-48,34},{-48,-46}}, + color={0,0,0}, + thickness=1), + Line(points={{8,40},{8,2}}, color={0,0,0}), + Line(points={{-2,0},{38,0},{38,44},{-2,44}}, color={0,0,0}), + Line(points={{38,22},{72,22}}, color={0,0,0}), + Line( + points={{-12,-38},{-12,20}}, + color={0,0,0}, + thickness=1), + Line(points={{-12,22},{8,22}}, color={0,0,0}), + Line(points={{-12,-38},{-2,-38}}, color={0,0,0}), + Line(points={{72,0},{100,0}}, color={0,127,0}), + Line(points={{72,22},{72,-42}}, color={0,0,0}), + Line(points={{-2,-38},{10,-28},{22,-48},{38,-28},{50,-48},{64,-28}, + {72,-40}}, color={0,0,0}), + Rectangle( + extent={{8,44},{38,0}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-64,-80},{64,-64}}, + lineColor={0,0,255}, + textString="s_rel"), + Line(points={{-100,-29},{-100,-61}}, color={0,0,0}), + Line(points={{100,-61},{100,-28}}, color={0,0,0}), + Line(points={{-98,-60},{98,-60}}, color={0,0,0}), + Polygon( + points={{-101,-60},{-96,-59},{-96,-61},{-101,-60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{100,-60},{95,-61},{95,-59},{100,-60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid)}), + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-98,0},{-48,0}}, color={0,127,0}), + Line( + points={{-48,38},{-48,-38}}, + color={0,0,0}, + thickness=1), + Line(points={{8,-10},{8,-48}}, + color={0,0,0}), + Line(points={{-2,-50},{38,-50},{38,-6},{-2,-6}}, + color={0,0,0}), + Line(points={{38,-28},{72,-28}}, + color={0,0,0}), + Line( + points={{-12,-38},{-12,36}}, + color={0,0,0}, + thickness=1), + Line(points={{-12,-28},{8,-28}}, + color={0,0,0}), + Line(points={{-12,24},{-6,24}}, color={0,0,0}), + Line(points={{72,0},{98,0}}, color={0,127,0}), + Line(points={{72,22},{72,-42}}, color={0,0,0}), + Line(points={{-6,24},{6,34},{18,14},{34,34},{46,14},{60,34},{68,22}}, + color={0,0,0}), + Rectangle( + extent={{8,-6},{38,-50}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{-52,-70},{28,-70}}, color={0,0,0}), + Polygon( + points={{58,-70},{28,-60},{28,-80},{58,-70}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,100},{150,60}}, + textString="%name", + lineColor={0,0,255}, + pattern=LinePattern.Dot), + Text( + extent={{-150,-125},{150,-95}}, + lineColor={0,0,0}, + textString="c=%c"), + Text( + extent={{-150,-160},{150,-130}}, + lineColor={0,0,0}, + textString="d=%d"), + Line(points={{68,22},{72,22}}, color={0,0,0}), + Line(visible=useHeatPort, + points={{-100,-100},{-100,-44},{22,-44},{22,-28}}, + color={191,0,0}, + pattern=LinePattern.Dot, + smooth=Smooth.None)})); + end ElastoGap; + + model SupportFriction "Coulomb friction in support" + + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryTwoFlangesAndSupport2; + extends + Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT; + + parameter Real f_pos[:, 2]=[0, 1] + "[v, f] Positive sliding friction characteristic (v>=0)"; + parameter Real peak(final min=1) = 1 + "peak*f_pos[1,2] = Maximum friction force for v==0"; + extends Translational.Interfaces.PartialFriction; + + SI.Position s; + SI.Force f "Friction force"; + SI.Velocity v "Absolute velocity of flange_a and flange_b"; + SI.Acceleration a "Absolute acceleration of flange_a and flange_b"; + equation + // Constant auxiliary variables + f0 = Modelica.Math.tempInterpol1(0, f_pos, 2); + f0_max = peak*f0; + free = false; + + s = flange_a.s - s_support; + flange_a.s = flange_b.s; + + // velocity and acceleration of flanges + v = der(s); + a = der(v); + v_relfric = v; + a_relfric = a; + + // Friction force + flange_a.f + flange_b.f - f = 0; + + // Friction force + f = if locked then sa*unitForce else + (if startForward then Modelica.Math.tempInterpol1( v, f_pos, 2) else + if startBackward then -Modelica.Math.tempInterpol1(-v, f_pos, 2) else + if pre(mode) == Forward then Modelica.Math.tempInterpol1( v, f_pos, 2) else + -Modelica.Math.tempInterpol1(-v, f_pos, 2)); + + lossPower = f*v_relfric; + annotation ( + Documentation(info=" +

+This element describes Coulomb friction in support, +i.e., a frictional force acting between a flange and the housing. +The positive sliding friction force \"f\" has to be defined +by table \"f_pos\" as function of the absolute velocity \"v\". +E.g. +

+
+       v |   f
+      ---+-----
+       0 |   0
+       1 |   2
+       2 |   5
+       3 |   8
+
+

+gives the following table: +

+
+   f_pos = [0, 0; 1, 2; 2, 5; 3, 8];
+
+

+Currently, only linear interpolation in the table is supported. +Outside of the table, extrapolation through the last +two table entries is used. It is assumed that the negative +sliding friction force has the same characteristic with negative +values. Friction is modelled in the following way: +

+

+When the absolute velocity \"v\" is not zero, the friction force +is a function of v and of a constant normal force. This dependency +is defined via table f_pos and can be determined by measurements, +e.g., by driving the gear with constant velocity and measuring the +needed driving force (= friction force). +

+

+When the absolute velocity becomes zero, the elements +connected by the friction element become stuck, i.e., the absolute +position remains constant. In this phase the friction force is +calculated from a force balance due to the requirement, that +the absolute acceleration shall be zero. The elements begin +to slide when the friction force exceeds a threshold value, +called the maximum static friction force, computed via: +

+
+   maximum_static_friction = peak * sliding_friction(v=0)  (peak >= 1)
+
+

+This procedure is implemented in a \"clean\" way by state events and +leads to continuous/discrete systems of equations if friction elements +are dynamically coupled which have to be solved by appropriate +numerical methods. The method is described in: +

+
+
Otter M., Elmqvist H., and Mattsson S.E. (1999): +
Hybrid Modeling in Modelica based on the Synchronous + Data Flow Principle. CACSD'99, Aug. 22.-26, Hawaii. +
+

+More precise friction models take into account the elasticity of the +material when the two elements are \"stuck\", as well as other effects, +like hysteresis. This has the advantage that the friction element can +be completely described by a differential equation without events. The +drawback is that the system becomes stiff (about 10-20 times slower +simulation) and that more material constants have to be supplied which +requires more sophisticated identification. For more details, see the +following references, especially (Armstrong and Canudas de Witt 1996): +

+
+
Armstrong B. (1991): +
Control of Machines with Friction. Kluwer Academic + Press, Boston MA.

+
Armstrong B., and Canudas de Wit C. (1996): +
Friction Modeling and Compensation. + The Control Handbook, edited by W.S.Levine, CRC Press, + pp. 1369-1382.

+
Canudas de Wit C., Olsson H., Astroem K.J., and Lischinsky P. (1995): +
A new model for control of systems with friction. + IEEE Transactions on Automatic Control, Vol. 40, No. 3, pp. 419-425.

+
+ +"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-90,10},{90,-10}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-48,-10},{-28,-30}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Sphere, + fillColor={175,175,175}), + Ellipse( + extent={{-10,-10},{10,-30}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Sphere, + fillColor={175,175,175}), + Ellipse( + extent={{30,-10},{50,-30}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Sphere, + fillColor={175,175,175}), + Polygon( + points={{-60,-30},{60,-30},{60,-12},{80,-12},{80,-50},{-80,-50},{ + -80,-12},{-60,-12},{-60,-30}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Solid, + smooth=Smooth.None, + fillColor={175,175,175}), + Text( + extent={{-150,100},{150,60}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{-10,-85},{-5,-80}}, color={0,0,0}), + Line(points={{-5,-90},{5,-80}}, color={0,0,0}), + Line(points={{-10,-90},{0,-80}}, color={0,0,0}), + Line(points={{0,-90},{10,-80}}, color={0,0,0}), + Polygon( + points={{-60,-50},{-20,-80},{20,-80},{60,-50},{-60,-50}}, + lineColor={95,95,95}, + smooth=Smooth.None, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-50,30},{-30,10}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Sphere, + fillColor={175,175,175}), + Ellipse( + extent={{-10,30},{10,10}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Sphere, + fillColor={175,175,175}), + Ellipse( + extent={{30,30},{50,10}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Sphere, + fillColor={175,175,175}), + Polygon( + points={{-60,30},{60,30},{60,12},{80,12},{80,50},{-80,50},{-80,12}, + {-60,12},{-60,30}}, + lineColor={95,95,95}, + fillPattern=FillPattern.Solid, + smooth=Smooth.None, + fillColor={175,175,175}), + Line(visible=useHeatPort, + points={{-100,-100},{-100,-20},{0,-20}}, + color={191,0,0}, + pattern=LinePattern.Dot, + smooth=Smooth.None)})); + end SupportFriction; + + model Brake "Brake based on Coulomb friction" + + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryTwoFlangesAndSupport2; + extends + Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT; + parameter Real mue_pos[:, 2]=[0, 0.5] + "[v, f] Positive sliding friction characteristic (v>=0)"; + parameter Real peak(final min=1) = 1 + "peak*mue_pos[1,2] = Maximum friction force for v==0"; + parameter Real cgeo(final min=0) = 1 + "Geometry constant containing friction distribution assumption"; + parameter SI.Force fn_max(final min=0, start=1) "Maximum normal force"; + extends Translational.Interfaces.PartialFriction; + + SI.Position s; + SI.Force f "Brake friction force"; + SI.Velocity v "Absolute velocity of flange_a and flange_b"; + SI.Acceleration a "Absolute acceleration of flange_a and flange_b"; + + Real mue0 "Friction coefficient for v=0 and forward sliding"; + SI.Force fn "Normal force (=fn_max*f_normalized)"; + + // Constant auxiliary variable + Modelica.Blocks.Interfaces.RealInput f_normalized + "Normalized force signal 0..1 (normal force = fn_max*f_normalized; brake is active if > 0)" + annotation (Placement(transformation( + origin={0,110}, + extent={{20,-20},{-20,20}}, + rotation=90))); + equation + mue0 = Modelica.Math.tempInterpol1(0, mue_pos, 2); + + s = s_a; + s = s_b; + + // velocity and acceleration of flanges flange_a and flange_b + v = der(s); + a = der(v); + v_relfric = v; + a_relfric = a; + + // Friction force, normal force and friction force for v_rel=0 + flange_a.f + flange_b.f - f = 0; + fn = fn_max*f_normalized; + f0 = mue0*cgeo*fn; + f0_max = peak*f0; + free = fn <= 0; + + // Friction force + f = if locked then sa*unitForce else + if free then 0 else + cgeo*fn*(if startForward then Modelica.Math.tempInterpol1( v, mue_pos, 2) else + if startBackward then -Modelica.Math.tempInterpol1(-v, mue_pos, 2) else + if pre(mode) == Forward then Modelica.Math.tempInterpol1( v, mue_pos, 2) else + -Modelica.Math.tempInterpol1(-v, mue_pos, 2)); + + lossPower = f*v_relfric; + annotation ( + Documentation(info=" +

+This component models a brake, i.e., a component where a frictional +force is acting between the housing and a flange and a controlled normal +force presses the flange to the housing in order to increase friction. +The normal force fn has to be provided as input signal f_normalized in a normalized form +(0 ≤ f_normalized ≤ 1), +fn = fn_max*f_normalized, where fn_max has to be provided as parameter. +Friction in the brake is modelled in the following way: +

+

+When the absolute velocity \"v\" is not zero, the friction force +is a function of the velocity dependent friction coefficient mue(v) , of +the normal force \"fn\", and of a geometry constant \"cgeo\" which takes into +account the geometry of the device and the assumptions on the friction +distributions: +

+
+        frictional_force = cgeo * mue(v) * fn
+
+

+ Typical values of coefficients of friction: +

+
+      dry operation   :  mue = 0.2 .. 0.4
+      operating in oil:  mue = 0.05 .. 0.1
+
+

+ The positive part of the friction characteristic mue(v), + v >= 0, is defined via table mue_pos (first column = v, + second column = mue). Currently, only linear interpolation in + the table is supported. +

+

+ When the absolute velocity becomes zero, the elements + connected by the friction element become stuck, i.e., the absolute + position remains constant. In this phase the friction force is + calculated from a force balance due to the requirement, that + the absolute acceleration shall be zero. The elements begin + to slide when the friction force exceeds a threshold value, + called the maximum static friction force, computed via: +

+
+       frictional_force = peak * cgeo * mue(w=0) * fn   (peak >= 1)
+
+

+This procedure is implemented in a \"clean\" way by state events and +leads to continuous/discrete systems of equations if friction elements +are dynamically coupled. The method is described in: +

+
+
Otter M., Elmqvist H., and Mattsson S.E. (1999): +
Hybrid Modeling in Modelica based on the Synchronous + Data Flow Principle. CACSD'99, Aug. 22.-26, Hawaii. +
+

+More precise friction models take into account the elasticity of the +material when the two elements are \"stuck\", as well as other effects, +like hysteresis. This has the advantage that the friction element can +be completely described by a differential equation without events. The +drawback is that the system becomes stiff (about 10-20 times slower +simulation) and that more material constants have to be supplied which +requires more sophisticated identification. For more details, see the +following references, especially (Armstrong and Canudas de Witt 1996): +

+
+
Armstrong B. (1991): +
Control of Machines with Friction. Kluwer Academic + Press, Boston MA.

+
Armstrong B., and Canudas de Wit C. (1996): +
Friction Modeling and Compensation. + The Control Handbook, edited by W.S.Levine, CRC Press, + pp. 1369-1382.

+
Canudas de Wit C., Olsson H., Astroem K.J., and Lischinsky P. (1995): +
A new model for control of systems with friction. + IEEE Transactions on Automatic Control, Vol. 40, No. 3, pp. 419-425.

+
+"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-90,10},{90,-10}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-20,30},{20,20}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-20,-20},{20,-30}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{0,-30},{10,-50},{-10,-50},{0,-30}}, + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Polygon( + points={{10,50},{-10,50},{0,30},{10,50}}, + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Line( + points={{0,90},{0,50}}, + color={0,0,0}, + smooth=Smooth.None), + Rectangle( + extent={{20,28},{30,22}}, + lineColor={175,175,175}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{20,-22},{30,-28}}, + lineColor={175,175,175}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{30,28},{36,-102}}, + lineColor={175,175,175}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{14,-96},{30,-102}}, + lineColor={175,175,175}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid), + Line( + points={{0,-50},{0,-60},{-40,-50},{-40,48},{0,60},{0,90}}, + color={0,0,0}, + smooth=Smooth.None), + Text( + extent={{-150,-120},{150,-160}}, + textString="%name", + lineColor={0,0,255}), + Line(visible=useHeatPort, + points={{-100,-102},{-100,-16},{0,-16}}, + color={191,0,0}, + pattern=LinePattern.Dot, + smooth=Smooth.None)})); + end Brake; + + model IdealGearR2T + "Gearbox transforming rotational into translational motion" + extends Modelica.Mechanics.Rotational.Components.IdealGearR2T; + annotation (Documentation(info=" +

Couples rotational and translational motion, like a toothed wheel with a toothed rack, specifying the ratio of rotational / translational motion.

+")); + end IdealGearR2T; + + model IdealRollingWheel + "Simple 1-dim. model of an ideal rolling wheel without inertia" + extends Modelica.Mechanics.Rotational.Components.IdealRollingWheel; + annotation (Documentation(info=" +

Couples rotational and translational motion, like an ideal rolling wheel, specifying the wheel radius.

+")); + end IdealRollingWheel; + + model InitializeFlange + "Initializes a flange with pre-defined position, speed and acceleration (usually, this is reference data from a control bus)" + extends Modelica.Blocks.Icons.Block; + parameter Boolean use_s_start = true + "= true, if initial position is defined by input s_start, otherwise not initialized"; + parameter Boolean use_v_start = true + "= true, if initial speed is defined by input v_start, otherwise not initialized"; + parameter Boolean use_a_start = true + "= true, if initial acceleration is defined by input a_start, otherwise not initialized"; + + parameter StateSelect stateSelect=StateSelect.default + "Priority to use flange angle and speed as states"; + + Modelica.Blocks.Interfaces.RealInput s_start(unit="m") if use_s_start + "Initial position of flange" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}, + rotation=0))); + Modelica.Blocks.Interfaces.RealInput v_start(unit="m/s") if use_v_start + "Initial speed of flange" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}, + rotation=0))); + Modelica.Blocks.Interfaces.RealInput a_start(unit="m/s2") if use_a_start + "Initial angular acceleration of flange" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}, + rotation=0))); + Interfaces.Flange_b flange "Flange that is initialized" annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + + Modelica.SIunits.Position s_flange(stateSelect=stateSelect)=flange.s + "Flange position"; + Modelica.SIunits.Velocity v_flange(stateSelect=stateSelect)= der(s_flange) + "= der(s_flange)"; + + protected + encapsulated model Set_s_start "Set s_start" + import Modelica; + extends Modelica.Blocks.Icons.Block; + Modelica.Blocks.Interfaces.RealInput s_start(unit="m") "Start position" + annotation (HideResult=true, Placement(transformation(extent={{-140,-20},{ + -100,20}}, rotation=0))); + + Modelica.Mechanics.Translational.Interfaces.Flange_b flange + annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + initial equation + flange.s = s_start; + equation + flange.f = 0; + + end Set_s_start; + + encapsulated model Set_v_start "Set v_start" + import Modelica; + extends Modelica.Blocks.Icons.Block; + Modelica.Blocks.Interfaces.RealInput v_start(unit="m/s") "Start velocity" + annotation (HideResult=true, Placement(transformation(extent={{-140,-20},{ + -100,20}}, rotation=0))); + + Modelica.Mechanics.Translational.Interfaces.Flange_b flange + annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + initial equation + der(flange.s) = v_start; + equation + flange.f = 0; + + end Set_v_start; + + encapsulated model Set_a_start "Set a_start" + import Modelica; + extends Modelica.Blocks.Icons.Block; + Modelica.Blocks.Interfaces.RealInput a_start(unit="m/s2") "Start acceleration" + annotation (HideResult=true, Placement(transformation(extent={{-140,-20},{ + -100,20}}, rotation=0))); + + Modelica.Mechanics.Translational.Interfaces.Flange_b flange(s(stateSelect=StateSelect.avoid)) + annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + Modelica.SIunits.Velocity v = der(flange.s) annotation(HideResult=true); + initial equation + der(v) = a_start; + equation + flange.f = 0; + + end Set_a_start; + + encapsulated model Set_flange_f "Set flange_f to zero" + import Modelica; + extends Modelica.Blocks.Icons.Block; + Modelica.Mechanics.Translational.Interfaces.Flange_b flange + annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + equation + flange.f = 0; + end Set_flange_f; + protected + Set_s_start set_s_start if use_s_start annotation (Placement( + transformation(extent={{-20,50},{0,70}}, rotation=0))); + Set_v_start set_v_start if use_v_start + annotation (Placement(transformation(extent={{-20, + -10},{0,10}}, rotation=0))); + Set_a_start set_a_start if use_a_start + annotation (Placement(transformation(extent={{-20, + -70},{0,-50}}, rotation=0))); + Set_flange_f set_flange_f annotation (Placement(transformation(extent={ + {20,-100},{40,-80}}, rotation=0))); + equation + connect(set_s_start.flange, flange) annotation (Line( + points={{0,60},{60,60},{60,0},{100,0}}, + color={0,0,0}, + smooth=Smooth.None)); + connect(set_v_start.flange, flange) annotation (Line( + points={{0,0},{100,0}}, + color={0,0,0}, + smooth=Smooth.None)); + connect(set_a_start.flange, flange) annotation (Line( + points={{0,-60},{60,-60},{60,0},{100,0}}, + color={0,0,0}, + smooth=Smooth.None)); + connect(set_flange_f.flange, flange) annotation (Line( + points={{40,-90},{60,-90},{60,0},{100,0}}, + color={0,0,0}, + smooth=Smooth.None)); + connect(s_start, set_s_start.s_start) annotation (Line( + points={{-120,60},{-22,60}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(v_start, set_v_start.v_start) annotation (Line( + points={{-120,0},{-22,0}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(a_start, set_a_start.a_start) annotation (Line( + points={{-120,-60},{-22,-60}}, + color={0,0,127}, + smooth=Smooth.None)); + annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100, + -100},{100,100}}), graphics={ + Text( + extent={{-94,74},{68,46}}, + lineColor={0,0,0}, + textString="s_start"), + Text( + extent={{-94,16},{70,-14}}, + lineColor={0,0,0}, + textString="v_start"), + Text( + extent={{-94,-46},{66,-74}}, + lineColor={0,0,0}, + textString="a_start")}), + Documentation(info=" +

+This component is used to optionally initialize the position, speed, +and/or acceleration of the flange to which this component +is connected. Via parameters use_s_start, use_v_start, use_a_start +the corresponding input signals s_start, v_start, a_start are conditionally +activated. If an input is activated, the corresponding flange property +is initialized with the input value at start time. +

+ +

+For example, if \"use_s_start = true\", then flange.s is initialized +with the value of the input signal \"s_start\" at the start time. +

+ +

+Additionally, it is optionally possible to define the \"StateSelect\" +attribute of the flange position and the flange speed via parameter +\"stateSelection\". +

+ +

+This component is especially useful when the initial values of a flange +shall be set according to reference signals of a controller that are +provided via a signal bus. +

+ +")); + end InitializeFlange; + + model MassWithStopAndFriction + "Sliding mass with hard stop and Stribeck friction" + extends PartialFrictionWithStop; + SI.Velocity v(start=0, stateSelect = StateSelect.always) + "Absolute velocity of flange_a and flange_b"; + SI.Acceleration a(start=0) + "Absolute acceleration of flange_a and flange_b"; + parameter Modelica.SIunits.Mass m(start=1) "Mass"; + parameter Real F_prop(final unit="N.s/m", final min=0, start = 1) + "Velocity dependent friction"; + parameter Modelica.SIunits.Force F_Coulomb(start=5) + "Constant friction: Coulomb force"; + parameter Modelica.SIunits.Force F_Stribeck(start=10) "Stribeck effect"; + parameter Real fexp(final unit="s/m", final min=0, start = 2) + "Exponential decay"; + extends + Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT; + Integer stopped; + encapsulated partial model PartialFrictionWithStop + "Base model of Coulomb friction elements with stop" + + import SI = Modelica.SIunits; + import Modelica.Mechanics.Translational.Interfaces.PartialRigid; + parameter SI.Position smax(start= 25) + "Right stop for (right end of) sliding mass"; + parameter SI.Position smin(start=-25) + "Left stop for (left end of) sliding mass"; + parameter SI.Velocity v_small=1e-3 + "Relative velocity near to zero (see model info text)" + annotation(Dialog(tab="Advanced")); + // Equations to define the following variables have to be defined in subclasses + SI.Velocity v_relfric "Relative velocity between frictional surfaces"; + SI.Acceleration a_relfric + "Relative acceleration between frictional surfaces"; + SI.Force f + "Friction force (positive, if directed in opposite direction of v_rel)"; + SI.Force f0 "Friction force for v=0 and forward sliding"; + SI.Force f0_max "Maximum friction force for v=0 and locked"; + Boolean free "true, if frictional element is not active"; + // Equations to define the following variables are given in this class + Real sa(unit="1") + "Path parameter of friction characteristic f = f(a_relfric)"; + Boolean startForward(start=false, fixed=true) + "= true, if v_rel=0 and start of forward sliding or v_rel > v_small"; + Boolean startBackward(start=false, fixed=true) + "= true, if v_rel=0 and start of backward sliding or v_rel < -v_small"; + Boolean locked(start=false) "true, if v_rel=0 and not sliding"; + extends PartialRigid(s(start=0, stateSelect = StateSelect.always)); + constant Integer Unknown=3 "Value of mode is not known"; + constant Integer Free=2 "Element is not active"; + constant Integer Forward=1 "v_rel > 0 (forward sliding)"; + constant Integer Stuck=0 + "v_rel = 0 (forward sliding, locked or backward sliding)"; + constant Integer Backward=-1 "v_rel < 0 (backward sliding)"; + Integer mode( + final min=Backward, + final max=Unknown, + start=Unknown, fixed=true); + protected + constant SI.Acceleration unitAcceleration = 1 annotation(HideResult=true); + constant SI.Force unitForce = 1 annotation(HideResult=true); + equation + /* Friction characteristic + (locked is introduced to help the Modelica translator determining + the different structural configurations, + if for each configuration special code shall be generated) +*/ + startForward = pre(mode) == Stuck and (sa > f0_max/unitForce and s < (smax - L/2) or + pre(startForward) and sa > f0/unitForce and s < (smax - L/2)) or pre(mode) + == Backward and v_relfric > v_small or initial() and (v_relfric > 0); + startBackward = pre(mode) == Stuck and (sa < -f0_max/unitForce and s > (smin + L/2) or + pre(startBackward) and sa < -f0/unitForce and s > (smin + L/2)) or pre(mode) + == Forward and v_relfric < -v_small or initial() and (v_relfric < 0); + locked = not free and + not (pre(mode) == Forward or startForward or pre(mode) == Backward or startBackward); + + a_relfric/unitAcceleration = if locked then 0 else + if free then sa else + if startForward then sa - f0_max/unitForce else + if startBackward then sa + f0_max/unitForce else + if pre(mode) == Forward then sa - f0_max/unitForce else + sa + f0_max/unitForce; + + /* Friction torque has to be defined in a subclass. Example for a clutch: + f = if locked then sa else + if free then 0 else + cgeo*fn*(if startForward then Math.tempInterpol1( v_relfric, mue_pos, 2) else + if startBackward then -Math.tempInterpol1(-v_relfric, mue_pos, 2) else + if pre(mode) == Forward then Math.tempInterpol1( v_relfric, mue_pos, 2) else + -Math.tempInterpol1(-v_relfric, mue_pos, 2)); +*/ + // finite state machine to determine configuration + mode = if free then Free else + (if (pre(mode) == Forward or pre(mode) == Free or startForward) and v_relfric > 0 and s < (smax - L/2) then + Forward else + if (pre(mode) == Backward or pre(mode) == Free or startBackward) and v_relfric < 0 and s > (smin + L/2) then + Backward else + Stuck); + annotation (Documentation(info=" +

+Basic model for Coulomb friction that models the stuck phase in a reliable way.
+Additionally, a left and right stop are handled. +

+")); + end PartialFrictionWithStop; + equation + // Constant auxiliary variables + f0 = (F_Coulomb + F_Stribeck); + f0_max = f0*1.001; + free = f0 <= 0 and F_prop <= 0 and s > smin + L/2 and s < smax - L/2; + // Velocity and acceleration of flanges + v = der(s); + a = der(v); + v_relfric = v; + a_relfric = a; + // Equilibrium of forces + 0 = flange_a.f + flange_b.f - f - m*der(v); + // Friction force + f = if locked then sa*unitForce else + if free then 0 else + (if startForward then F_prop*v + F_Coulomb + F_Stribeck else + if startBackward then F_prop*v - F_Coulomb - F_Stribeck else + if pre(mode) == Forward then F_prop*v + F_Coulomb + F_Stribeck*exp(-fexp*abs(v)) else + F_prop*v - F_Coulomb - F_Stribeck*exp(-fexp*abs(v))); + lossPower = f*v_relfric; + equation + when (initial()) then + assert(s > smin + L/2 or s >= smin + L/2 and v >= 0, + "Error in initialization of hard stop. (s - L/2) must be >= smin\n"+ + "(s=" + String(s) + ", L=" + String(L) + ", smin=" + String(smin) + ")"); + assert(s < smax - L/2 or s <= smax - L/2 and v <= 0, + "Error in initialization of hard stop. (s + L/2) must be <= smax\n"+ + "(s=" + String(s) + ", L=" + String(L) + ", smax=" + String(smax) + ")"); + end when; + + // Define events for hard stops and reinitialize the state variables velocity v and position s + stopped = if s <= smin + L/2 then -1 else if s >= smax - L/2 then +1 else 0; + when stopped <> 0 then + reinit(s, if stopped < 0 then smin + L/2 else smax - L/2); + reinit(v, 0); + end when; + /* +Version 1: + + when not (s < smax - L/2) then + reinit(s, smax - L/2); + if (not initial() or v>0) then + reinit(v, 0); + end if; + end when; + + when not (s > smin + L/2) then + reinit(s, smin + L/2); + if (not initial() or v<0) then + reinit(v, 0); + end if; + end when; + +Version 2: + stopped := if s <= smin + L/2 then -1 else if s >= smax - L/2 then +1 else 0; + when (initial()) then + assert(s > smin + L/2 or s >= smin + L/2 and v >= 0, + "Error in initialization of hard stop. (s - L/2) must be >= smin\n"+ + "(s=" + String(s) + ", L=" + String(L) + ", smin=" + String(smin) + ")"); + assert(s < smax - L/2 or s <= smax - L/2 and v <= 0, + "Error in initialization of hard stop. (s + L/2) must be <= smax\n"+ + "(s=" + String(s) + ", L=" + String(L) + ", smax=" + String(smax) + ")"); + end when; + when stopped <> 0 then + reinit(s, if stopped < 0 then smin + L/2 else smax - L/2); + if (not initial() or stopped*v>0) then + reinit(v, 0); + end if; + end when; +*/ + annotation ( + Documentation(info=" +

This element describes the Stribeck friction characteristics of a sliding mass, +i. e. the frictional force acting between the sliding mass and the support. Included is a +hard stop for the position.

+

+The surface is fixed and there is friction between sliding mass and surface. +The frictional force f is given for positive velocity v by: +

+
+f = F_Coulomb + F_prop * v + F_Stribeck * exp (-fexp * v)
+
+ +

+ +

+ +

+The distance between the left and the right connector is given by parameter L. +The position of the center of gravity, coordinate s, is in the middle between +the two flanges.

+

+There are hard stops at smax and smin, i. e. if +flange_a.s >= smin and flange_b.s <= xmax the sliding mass can move freely.

+

When the absolute velocity becomes zero, the sliding mass becomes stuck, i.e., the absolute position remains constant. In this phase the +friction force is calculated from a force balance due to the requirement that the +absolute acceleration shall be zero. The elements begin to slide when the friction +force exceeds a threshold value, called the maximum static friction force, computed via:

+
+   maximum_static_friction =  F_Coulomb + F_Stribeck
+
+

+ This requires the states Stop.s and Stop.v . If these states are eliminated during the index reduction +the model will not work. To avoid this any inertias should be connected via springs +to the Stop element, other sliding masses, dampers or hydraulic chambers must be avoided.

+

For more details of the used friction model see the following reference:

+ +
+
Beater P. (1999):
+
+Entwurf hydraulischer Maschinen. Springer Verlag Berlin Heidelberg New York.
+
+ +

The friction model is implemented in a \"clean\" way by state events and leads to +continuous/discrete systems of equations which have to be solved by appropriate +numerical methods. The method is described in:

+ +
+
Otter M., Elmqvist H., and Mattsson S.E. (1999):
+
Hybrid Modeling in Modelica based on the Synchronous Data Flow Principle. + CACSD'99, Aug. 22.-26, Hawaii.
+
+ +

More precise friction models take into account the elasticity of the material when +the two elements are \"stuck\", as well as other effects, like hysteresis. This has +the advantage that the friction element can be completely described by a differential +equation without events. The drawback is that the system becomes stiff (about 10-20 times +slower simulation) and that more material constants have to be supplied which requires more +sophisticated identification. For more details, see the following references, especially +(Armstrong and Canudas de Witt 1996):

+
+
+Armstrong B. (1991):
+
Control of Machines with Friction. Kluwer Academic Press, Boston MA.
+
+
Armstrong B., and Canudas de Wit C. (1996):
+
Friction Modeling and Compensation. The Control Handbook, edited by W.S.Levine, CRC Press, pp. 1369-1382.
+
+
Canudas de Wit C., Olsson H., Astroem K.J., and Lischinsky P. (1995):
+
A new model for control of systems with friction. IEEE Transactions on Automatic Control, Vol. 40, No. 3, pp. 419-425.
+
+
+ +

Optional heatPort

+

+The dissipated energy is transported in form of heat to the optional heatPort connector +that can be enabled via parameter \"useHeatPort\". Independently whether the heatPort is +or is not enabled, the dissipated power is defined with variable \"lossPower\". +If contact occurs at the hard stops, the lossPower is not correctly modelled +at this time instant, because the hard stop would introduce a Dirac impulse +in the lossPower due to the discontinuously changing kinetic energy of the mass +(lossPower is the derivative of the kinetic energy at the time instant of the impact). +

+ +", revisions=" +

Release Notes:

+
    +
  • First Version from December 7, 1999 by P. Beater (based on Rotational.BearingFriction)
  • +
  • July 14, 2001 by P. Beater, assert on initialization added, diagram modified
  • +
  • October 11, 2001, by Hans Olsson, Dassault Systèmes AB, modified assert to handle start at stops, +modified event logic such if you have friction parameters equal to zero you do not get events +between the stops.
  • +
  • June 10, 2002 by P. Beater, StateSelect.always for variables s and v (instead of fixed=true).
  • +
+"), + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Polygon( + points={{80,-100},{50,-90},{50,-110},{80,-100}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-30,-100},{50,-100}}, color={0,0,0}), + Rectangle( + extent={{-30,30},{35,-35}}, + lineColor={0,0,0}, + fillPattern=FillPattern.Sphere, + fillColor={255,255,255}), + Line(points={{-90,0},{-30,0}}, color={0,127,0}), + Rectangle( + extent={{-70,-45},{74,-60}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-63,-15},{-55,-45}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{60,-16},{69,-45}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line(points={{35,0},{90,0}}, color={0,127,0}), + Text( + extent={{-150,80},{150,40}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{-50,-90},{-30,-70}}, color={0,0,0}), + Line(points={{-30,-70},{30,-70}}, color={0,0,0}), + Line(points={{-30,-90},{-10,-70}}, color={0,0,0}), + Line(points={{-10,-90},{10,-70}}, color={0,0,0}), + Line(points={{10,-90},{30,-70}}, color={0,0,0}), + Text( + extent={{-150,-110},{150,-140}}, + lineColor={0,0,0}, + textString="m=%m"), + Line(visible=useHeatPort, + points={{-100,-100},{-100,-40},{3,-40}}, + color={191,0,0}, + pattern=LinePattern.Dot, + smooth=Smooth.None)}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Polygon( + points={{50,-75},{20,-65},{20,-85},{50,-75}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-60,-75},{20,-75}}, color={0,0,0}), + Rectangle( + extent={{-30,26},{35,-9}}, + lineColor={0,0,0}, + fillPattern=FillPattern.Sphere, + fillColor={255,255,255}), + Line(points={{-90,0},{-30,0}}, color={0,127,0}), + Line(points={{35,0},{90,0}}, color={0,127,0}), + Rectangle( + extent={{-68,-14},{76,-29}}, + lineColor={0,0,0}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-119,43},{-111,17}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line( + points={{-111,43},{-111,50}}, + color={0,0,0}, + pattern=LinePattern.Solid, + thickness=0.25, + arrow={Arrow.None,Arrow.None}), + Line( + points={{-151,49},{-113,49}}, + color={0,0,0}, + pattern=LinePattern.Solid, + thickness=0.25, + arrow={Arrow.None,Arrow.None}), + Text( + extent={{-149,51},{-126,60}}, + textString="s min", + lineColor={0,0,255}), + Polygon( + points={{-121,52},{-111,49},{-121,46},{-121,52}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{124,42},{132,17}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line( + points={{124,39},{124,87}}, + color={0,0,0}, + pattern=LinePattern.Solid, + thickness=0.25, + arrow={Arrow.None,Arrow.None}), + Line( + points={{-19,78},{121,78}}, + color={0,0,0}, + pattern=LinePattern.Solid, + thickness=0.25, + arrow={Arrow.None,Arrow.None}), + Text( + extent={{-17,83},{6,92}}, + textString="s max", + lineColor={0,0,255}), + Polygon( + points={{114,81},{124,78},{114,75},{114,81}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line( + points={{5,26},{5,63}}, + color={0,0,0}, + pattern=LinePattern.Solid, + thickness=0.25, + arrow={Arrow.None,Arrow.None}), + Line( + points={{-77,58},{-1,58}}, + color={0,0,0}, + pattern=LinePattern.Solid, + thickness=0.25, + arrow={Arrow.None,Arrow.None}), + Text( + extent={{-75,60},{-38,71}}, + textString="Position s", + lineColor={0,0,255}), + Polygon( + points={{-5,61},{5,58},{-5,55},{-5,61}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line(points={{-100,-10},{-100,-60}}, color={0,0,0}), + Line(points={{100,-10},{100,-60}}, color={0,0,0}), + Polygon( + points={{90,-47},{100,-50},{90,-53},{90,-47}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-90,-47},{-90,-53},{-100,-50},{-90,-47}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line(points={{-90,-50},{92,-50}}, color={0,0,0}), + Text( + extent={{-11,-46},{26,-36}}, + textString="Length L", + lineColor={0,0,255})})); + end MassWithStopAndFriction; + + model RelativeStates "Definition of relative state variables" + extends Translational.Interfaces.PartialTwoFlanges; + parameter StateSelect stateSelect=StateSelect.prefer + "Priority to use the relative angle and relative speed as states"; + SI.Position s_rel(start=0, stateSelect=StateSelect.prefer) + "Relative position used as state variable"; + SI.Velocity v_rel(start=0, stateSelect=StateSelect.prefer) + "Relative velocity used as state variable"; + SI.Acceleration a_rel(start=0) "Relative angular acceleration"; + + equation + s_rel = flange_b.s - flange_a.s; + v_rel = der(s_rel); + a_rel = der(v_rel); + flange_a.f = 0; + flange_b.f = 0; + annotation ( + Documentation(info=" +

+Usually, the absolute position and the absolute velocity of +Modelica.Mechanics.Translational.Inertia models are used as state variables. +In some circumstances, relative quantities are better suited, e.g., +because it may be easier to supply initial values. +In such cases, model RelativeStates allows the definition of state variables +in the following way: +

+
    +
  • Connect an instance of this model between two flange connectors.
  • +
  • The relative position and the relative velocity + between the two connectors are used as state variables. +
+

+An example is given in the next figure +

+ +

+\"relativeStates2\" +

+ +

+Here, the relative position and the relative velocity between +the two masses are used as state variables. Additionally, the +simulator selects either the absolute position and absolute +velocity of model mass1 or of model mass2 as state variables. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Ellipse( + extent={{-40,40},{40,-40}}, + lineColor={0,255,255}, + fillColor={0,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-40,40},{40,-40}}, + textString="S", + lineColor={0,0,255}), + Line( + points={{-92,0},{-42,0}}, + color={0,0,0}, + pattern=LinePattern.Dot), + Line( + points={{40,0},{90,0}}, + color={0,0,0}, + pattern=LinePattern.Dot), + Text( + extent={{-150,90},{150,50}}, + textString="%name", + lineColor={0,0,255})}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Ellipse( + extent={{-40,40},{40,-40}}, + lineColor={0,255,255}, + fillColor={0,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-40,40},{40,-40}}, + textString="S", + lineColor={0,0,255}), + Line( + points={{40,0},{90,0}}, + color={0,0,0}, + pattern=LinePattern.Dash), + Line(points={{-100,-10},{-100,-80}}, color={160,160,164}), + Line(points={{100,-10},{100,-80}}, color={160,160,164}), + Polygon( + points={{80,-65},{80,-55},{100,-60},{80,-65}}, + lineColor={160,160,164}, + fillColor={160,160,164}, + fillPattern=FillPattern.Solid), + Line(points={{-100,-60},{80,-60}}, color={160,160,164}), + Text( + extent={{-30,-70},{30,-90}}, + textString="w_rel", + lineColor={0,0,255}), + Line(points={{-76,80},{-5,80}}, color={128,128,128}), + Polygon( + points={{14,80},{-6,85},{-6,75},{14,80}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Text( + extent={{18,87},{86,74}}, + lineColor={128,128,128}, + textString="moving direction"), + Line( + points={{-90,0},{-40,0}}, + color={0,0,0}, + pattern=LinePattern.Dash)})); + end RelativeStates; + annotation (Icon(coordinateSystem(preserveAspectRatio = true, extent = {{-100,-100},{100,100}}), graphics = { + Rectangle( + origin = {11.5,31.183}, + lineColor = {64,64,64}, + fillColor = {255,255,255}, + fillPattern = FillPattern.Sphere, + extent = {{-67,-66},{44,-6}})}), Documentation(info=" +

+This package contains basic components 1D mechanical translational drive trains. +

+")); + end Components; + + package Sensors "Sensors for 1-dim. translational mechanical quantities" + + extends Modelica.Icons.SensorsPackage; + + model PositionSensor "Ideal sensor to measure the absolute position" + extends Translational.Interfaces.PartialAbsoluteSensor; + Modelica.Blocks.Interfaces.RealOutput s(unit="m") + "Absolute position of flange as output signal" + annotation (Placement(transformation(extent={{100,-11}, + {120,9}}, rotation=0), iconTransformation(extent={{100, + -10},{120,10}}))); + + equation + s = flange.s; + annotation ( + Documentation(info=" +

+Measures the absolute position s of a flange in an ideal way and provides the result as +output signals (to be further processed with blocks of the +Modelica.Blocks library). +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Text( + extent={{80,-28},{114,-62}}, + lineColor={0,0,0}, + textString="s")})); + end PositionSensor; + + model SpeedSensor "Ideal sensor to measure the absolute velocity" + extends Translational.Interfaces.PartialAbsoluteSensor; + Modelica.Blocks.Interfaces.RealOutput v(unit="m/s") + "Absolute velocity of flange as output signal" + annotation (Placement(transformation(extent={{100,-10},{120,10}}, + rotation=0))); + + equation + v = der(flange.s); + annotation ( + Documentation(info=" +

+Measures the absolute velocity v of a flange in an ideal way and provides the result as +output signals (to be further processed with blocks of the +Modelica.Blocks library). +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Text( + extent={{80,-28},{111,-61}}, + lineColor={0,0,0}, + textString="v")})); + end SpeedSensor; + + model AccSensor "Ideal sensor to measure the absolute acceleration" + extends Translational.Interfaces.PartialAbsoluteSensor; + SI.Velocity v "Absolute velocity of flange"; + Modelica.Blocks.Interfaces.RealOutput a(unit="m/s2") + "Absolute acceleration of flange as output signal" + annotation (Placement(transformation(extent={{100,-10},{120,10}}, + rotation=0))); + + equation + v = der(flange.s); + a = der(v); + annotation ( + Documentation(info=" +

+Measures the absolute acceleration a +of a flange in an ideal way and provides the result as +output signals (to be further processed with blocks of the +Modelica.Blocks library). +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Text( + extent={{80,-28},{115,-60}}, + lineColor={0,0,0}, + textString="a")})); + end AccSensor; + + model RelPositionSensor "Ideal sensor to measure the relative position" + extends Translational.Interfaces.PartialRelativeSensor; + Modelica.Blocks.Interfaces.RealOutput s_rel(unit="m") + "Distance between two flanges (= flange_b.s - flange_a.s) as output signal" + annotation (Placement(transformation(extent={{-10,-10}, + {10,10}}, rotation=270, + origin={0,-110}))); + + equation + s_rel = flange_b.s - flange_a.s; + 0 = flange_a.f; + annotation ( + Documentation(info=" +

+Measures the relative position s of a flange in an ideal way and provides the result as +output signals (to be further processed with blocks of the +Modelica.Blocks library). +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70.4,0},{100,0}}, color={0,0,127}), + Text( + extent={{8,-68},{42,-102}}, + lineColor={0,0,0}, + textString="s"), + Line(points={{0,-99},{0,-60}}, color={0,0,127})})); + end RelPositionSensor; + + model RelSpeedSensor "Ideal sensor to measure the relative speed" + extends Translational.Interfaces.PartialRelativeSensor; + SI.Position s_rel + "Distance between the two flanges (flange_b.s - flange_a.s)"; + Modelica.Blocks.Interfaces.RealOutput v_rel(unit="m/s") + "Relative velocity between two flanges (= der(flange_b.s) - der(flange_a.s)) as output signal" + annotation (Placement(transformation(extent={{-10,-10}, + {10,10}}, rotation=270, + origin={0,-110}))); + + equation + s_rel = flange_b.s - flange_a.s; + v_rel = der(s_rel); + 0 = flange_a.f; + annotation ( + Documentation(info=" +

+Measures the relative speed v of a flange in an ideal way and provides the result as +output signals (to be further processed with blocks of the +Modelica.Blocks library). +

+ +", revisions= + " +

Release Notes:

+
    +
  • First Version from August 26, 1999 by P. Beater
  • +
+"), + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70.4,0},{100,0}}, color={0,0,127}), + Text( + extent={{8,-68},{42,-102}}, + lineColor={0,0,0}, + textString="v"), + Line(points={{0,-100},{0,-61}}, color={0,0,127})})); + end RelSpeedSensor; + + model RelAccSensor "Ideal sensor to measure the relative acceleration" + extends Translational.Interfaces.PartialRelativeSensor; + SI.Position s_rel + "Distance between the two flanges (flange_b.s - flange_a.s)"; + SI.Velocity v_rel + "Relative velocity between the two flanges (der(flange_b.s) - der(flange_a.s))"; + Modelica.Blocks.Interfaces.RealOutput a_rel(unit="m/s2") + "Relative acceleration between two flanges (= der(v_rel)) as output signal" + annotation (Placement(transformation(extent={{-10,-10}, + {10,10}}, rotation=270, + origin={0,-110}))); + + equation + s_rel = flange_b.s - flange_a.s; + v_rel = der(s_rel); + a_rel = der(v_rel); + 0 = flange_a.f; + annotation ( + Documentation(info=" +

+Measures the relative acceleration a of a flange in an ideal way and provides the result as +output signals (to be further processed with blocks of the +Modelica.Blocks library). +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70.4,0},{100,0}}, color={0,0,127}), + Text( + extent={{7,-68},{41,-102}}, + lineColor={0,0,0}, + textString="a"), + Line(points={{0,-99},{0,-60}}, color={0,0,127})})); + end RelAccSensor; + + model ForceSensor "Ideal sensor to measure the force between two flanges" + extends Translational.Interfaces.PartialRelativeSensor; + Modelica.Blocks.Interfaces.RealOutput f(unit="N") + "Force in flange_a and flange_b (f = flange_a.f = -flange_b.f) as output signal" + annotation (Placement(transformation( + origin={-80,-110}, + extent={{10,-10},{-10,10}}, + rotation=90))); + equation + flange_a.s = flange_b.s; + flange_a.f = f; + annotation ( + Documentation(info=" +

+Measures the cut-force between two flanges in an ideal way +and provides the result as output signal (to be further processed +with blocks of the Modelica.Blocks library). +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-40,-70},{40,-120}}, + lineColor={0,0,0}, + textString="f"), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70,0},{90,0}}, color={0,0,0}), + Line(points={{-80,-100},{-80,0}}, color={0,0,127})})); + end ForceSensor; + + model PowerSensor + "Ideal sensor to measure the power between two flanges (= flange_a.f*der(flange_a.s))" + extends Translational.Interfaces.PartialRelativeSensor; + Modelica.Blocks.Interfaces.RealOutput power(unit="W") + "Power in flange flange_a as output signal" + annotation (Placement(transformation( + origin={-80,-110}, + extent={{10,-10},{-10,10}}, + rotation=90))); + equation + flange_a.s = flange_b.s; + power = flange_a.f*der(flange_a.s); + annotation ( + Documentation(info=" +

+Measures the power between two flanges in an ideal way +and provides the result as output signal power +(to be further processed with blocks of the Modelica.Blocks library). +

+"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-75,-79},{67,-119}}, + lineColor={0,0,0}, + textString="power"), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70,0},{90,0}}, color={0,0,0}), + Line(points={{-80,-100},{-80,0}}, color={0,0,127})})); + end PowerSensor; + + model MultiSensor + "Ideal sensor to measure the absolute velocity, force and power between two flanges" + extends Translational.Interfaces.PartialRelativeSensor; + Modelica.Blocks.Interfaces.RealOutput power(unit="W") + "Power in flange flange_a as output signal" + annotation (Placement(transformation( + origin={-60,-110}, + extent={{10,-10},{-10,10}}, + rotation=90))); + Modelica.Blocks.Interfaces.RealOutput f(unit="N") + "Force in flange_a and flange_b (f = flange_a.f = -flange_b.f) as output signal" + annotation (Placement(transformation( + extent={{10,-10},{-10,10}}, + rotation=90, + origin={0,-110}))); + Modelica.Blocks.Interfaces.RealOutput v(unit="m/s") + "Absolute velocity of flange as output signal as output signal" + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=-90, + origin={60,-110}))); + equation + flange_a.s = flange_b.s; + f = flange_a.f; + v = der(flange_a.s); + power = f*v; + + annotation ( + Documentation(info=" +

+Measures the absolute velocity of a flange_a, the cut-force and power between two flanges in an +ideal way and provides the results as output signals v, f and power, respectively.

+"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-146,-70},{-56,-100}}, + lineColor={0,0,0}, + textString="power"), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70,0},{90,0}}, color={0,0,0}), + Line(points={{-60,-100},{-60,-60}}, + color={0,0,127}), + Text( + extent={{-28,-71},{52,-101}}, + lineColor={0,0,0}, + textString="f"), + Line(points={{0,-100},{0,-60}}, color={0,0,127}), + Line(points={{60,-100},{60,-60}}, color={0,0,127}), + Text( + extent={{60,-70},{114,-101}}, + lineColor={0,0,0}, + textString="v")})); + end MultiSensor; + annotation ( + Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100, + 100}}), graphics={ + Line(points={{-56,-61},{-56,-81}}, color={0,0,0}), + Line(points={{-36,-61},{-36,-81}}, color={0,0,0}), + Line(points={{-16,-61},{-16,-81}}, color={0,0,0}), + Line(points={{4,-61},{4,-81}}, color={0,0,0}), + Line(points={{24,-61},{24,-81}}, color={0,0,0}), + Line(points={{44,-61},{44,-81}}, color={0,0,0})}), + Documentation(info=" +

+This package contains ideal sensor components that provide +the connector variables as signals for further processing with the +Modelica.Blocks library. +

+")); + end Sensors; + + package Sources "Sources to drive 1D translational mechanical components" + extends Modelica.Icons.SourcesPackage; + + model Position + "Forced movement of a flange according to a reference position" + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryOneFlangeAndSupport2 + ( s(stateSelect=if exact then StateSelect.default else StateSelect.prefer)); + parameter Boolean exact=false + "true/false exact treatment/filtering the input signal"; + parameter SI.Frequency f_crit=50 + "if exact=false, critical frequency of filter to filter input signal" annotation(Dialog(enable=not exact)); + SI.Velocity v(start=0, stateSelect=if exact then StateSelect.default else StateSelect.prefer) + "If exact=false, absolute velocity of flange_b else dummy"; + SI.Acceleration a(start=0) + "If exact=false, absolute acceleration of flange_b else dummy"; + Modelica.Blocks.Interfaces.RealInput s_ref(unit="m") + "Reference position of flange as input signal" annotation (Placement( + transformation(extent={{-140,-20},{-100,20}}, rotation=0))); + protected + parameter Modelica.SIunits.AngularFrequency w_crit=2*Modelica.Constants.pi*f_crit + "Critical frequency"; + constant Real af=1.3617 "s coefficient of Bessel filter"; + constant Real bf=0.6180 "s*s coefficient of Bessel filter"; + + initial equation + if not exact then + s = s_ref; + end if; + equation + if exact then + s = s_ref; + v = 0; + a = 0; + else + // Filter: a = s_ref*S^2/(1 + (af/w_crit)*S + (bf/w_crit^2)*S^2) + v = der(s); + a = der(v); + a = ((s_ref - s)*w_crit - af*v)*(w_crit/bf); + end if; + annotation ( + Documentation(info=" +

+The input signal s_ref defines the reference +position in [m]. Flange flange_b is forced +to move relative to the support connector according to this reference motion. According to parameter +exact (default = false), this is done in the following way: +

    +
  1. exact=true
    + The reference position is treated exactly. This is only possible, if + the input signal is defined by an analytical function which can be + differentiated at least twice. If this prerequisite is fulfilled, + the Modelica translator will differentiate the input signal twice + in order to compute the reference acceleration of the flange.
  2. +
  3. exact=false
    + The reference position is filtered and the second derivative + of the filtered curve is used to compute the reference acceleration + of the flange. This second derivative is not computed by + numerical differentiation but by an appropriate realization of the + filter. For filtering, a second order Bessel filter is used. + The critical frequency (also called cut-off frequency) of the + filter is defined via parameter f_crit in [Hz]. This value + should be selected in such a way that it is higher as the essential + low frequencies in the signal.
  4. +
+

+The input signal can be provided from one of the signal generator +blocks of the block library Modelica.Blocks.Sources. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-56,-36},{-178,-66}}, + lineColor={0,0,0}, + textString="s_ref"), + Rectangle( + extent={{-100,20},{100,-20}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Text( + extent={{150,60},{-150,100}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{0,52},{0,32}}, color={0,0,0}), + Line(points={{-29,32},{30,32}}, color={0,0,0}), + Line(points={{-30,-32},{30,-32}}, color={0,0,0}), + Line(points={{0,-32},{0,-100}}, color={0,0,0}), + Line(points={{30,-42},{20,-52}}, color={0,0,0}), + Line(points={{30,-32},{10,-52}}, color={0,0,0}), + Line(points={{20,-32},{0,-52}}, color={0,0,0}), + Line(points={{10,-32},{-10,-52}}, color={0,0,0}), + Line(points={{0,-32},{-20,-52}}, color={0,0,0}), + Line(points={{-10,-32},{-30,-52}}, color={0,0,0}), + Line(points={{-20,-32},{-30,-42}}, color={0,0,0}), + Text( + extent={{144,-30},{30,-60}}, + lineColor={0,0,0}, + textString="exact="), + Text( + extent={{134,-68},{22,-96}}, + lineColor={0,0,0}, + textString="%exact")})); + end Position; + + model Speed "Forced movement of a flange according to a reference speed" + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryOneFlangeAndSupport2 + ( s(start=0, fixed=true, stateSelect=StateSelect.prefer)); + parameter Boolean exact=false + "true/false exact treatment/filtering the input signal"; + parameter SI.Frequency f_crit=50 + "if exact=false, critical frequency of filter to filter input signal" annotation(Dialog(enable=not exact)); + SI.Velocity v(stateSelect=if exact then StateSelect.default else StateSelect.prefer) + "Absolute velocity of flange_b"; + SI.Acceleration a + "If exact=false, absolute acceleration of flange_b else dummy"; + Modelica.Blocks.Interfaces.RealInput v_ref(unit="m/s") + "Reference speed of flange as input signal" annotation (Placement( + transformation(extent={{-140,-20},{-100,20}}, rotation=0))); + + protected + parameter Modelica.SIunits.AngularFrequency w_crit=2*Modelica.Constants.pi*f_crit + "Critical frequency"; + initial equation + if not exact then + v = v_ref; + end if; + equation + v = der(s); + if exact then + v = v_ref; + a = 0; + else + // Filter: a = v_ref/(1 + (1/w_crit)*s) + a = der(v); + a = (v_ref - v)*w_crit; + end if; + annotation ( + Documentation(info=" +

+The input signal v_ref defines the reference +speed in [m/s]. Flange flange_b is forced +to move relative to the support connector according to this reference motion. According to parameter +exact (default = false), this is done in the following way: +

    +
  1. exact=true
    + The reference speed is treated exactly. This is only possible, if + the input signal is defined by an analytical function which can be + differentiated at least once. If this prerequisite is fulfilled, + the Modelica translator will differentiate the input signal once + in order to compute the reference acceleration of the flange.
  2. +
  3. exact=false
    + The reference speed is filtered and the first derivative + of the filtered curve is used to compute the reference acceleration + of the flange. This first derivative is not computed by + numerical differentiation but by an appropriate realization of the + filter. For filtering, a first order filter is used. + The critical frequency (also called cut-off frequency) of the + filter is defined via parameter f_crit in [Hz]. This value + should be selected in such a way that it is higher as the essential + low frequencies in the signal.
  4. +
+

+The input signal can be provided from one of the signal generator +blocks of the block library Modelica.Blocks.Sources. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-54,-36},{-174,-68}}, + lineColor={0,0,0}, + textString="v_ref"), + Line(points={{-30,-32},{30,-32}}, color={0,0,0}), + Line(points={{0,-32},{0,-100}}, color={0,0,0}), + Line(points={{30,-42},{20,-52}}, color={0,0,0}), + Line(points={{30,-32},{10,-52}}, color={0,0,0}), + Line(points={{20,-32},{0,-52}}, color={0,0,0}), + Line(points={{10,-32},{-10,-52}}, color={0,0,0}), + Line(points={{0,-32},{-20,-52}}, color={0,0,0}), + Line(points={{-10,-32},{-30,-52}}, color={0,0,0}), + Line(points={{-20,-32},{-30,-42}}, color={0,0,0}), + Rectangle( + extent={{-100,20},{100,-20}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Line(points={{-29,32},{30,32}}, color={0,0,0}), + Line(points={{0,52},{0,32}}, color={0,0,0}), + Text( + extent={{150,60},{-150,100}}, + textString="%name", + lineColor={0,0,255}), + Text( + extent={{146,-38},{32,-64}}, + lineColor={0,0,0}, + textString="exact="), + Text( + extent={{140,-76},{22,-102}}, + lineColor={0,0,0}, + textString="%exact")})); + end Speed; + + model Accelerate + "Forced movement of a flange according to an acceleration signal" + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryOneFlangeAndSupport2 + (s(start=0, fixed=true, stateSelect=StateSelect.prefer)); + SI.Velocity v(start=0, fixed=true, stateSelect=StateSelect.prefer) + "Absolute velocity of flange_b"; + SI.Acceleration a "Absolute acceleration of flange_b"; + + Modelica.Blocks.Interfaces.RealInput a_ref(unit="m/s2") + "Absolute acceleration of flange as input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}, + rotation=0))); + + equation + v = der(s); + a = der(v); + a = a_ref; + annotation ( + Documentation(info=" +

+The input signal a in [m/s2] moves the 1D translational flange +connector flange_b with a predefined acceleration, i.e., the flange +is forced to move relative to the support connector with this acceleration. The velocity and the +position of the flange are also predefined and are determined by +integration of the acceleration. +

+

+The acceleration \"a(t)\" can be provided from one of the signal generator +blocks of the block library Modelica.Blocks.Source. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-56,-40},{-166,-68}}, + lineColor={0,0,0}, + textString="a_ref"), + Line(points={{-30,-32},{30,-32}}, color={0,0,0}), + Line(points={{0,-32},{0,-100}}, color={0,0,0}), + Line(points={{30,-42},{20,-52}}, color={0,0,0}), + Line(points={{30,-32},{10,-52}}, color={0,0,0}), + Line(points={{20,-32},{0,-52}}, color={0,0,0}), + Line(points={{10,-32},{-10,-52}}, color={0,0,0}), + Line(points={{0,-32},{-20,-52}}, color={0,0,0}), + Line(points={{-10,-32},{-30,-52}}, color={0,0,0}), + Line(points={{-20,-32},{-30,-42}}, color={0,0,0}), + Rectangle( + extent={{-100,20},{100,-20}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Line(points={{-29,32},{30,32}}, color={0,0,0}), + Line(points={{0,52},{0,32}}, color={0,0,0}), + Text( + extent={{150,60},{-150,100}}, + textString="%name", + lineColor={0,0,255})})); + end Accelerate; + + model Move + "Forced movement of a flange according to a position, velocity and acceleration signal" + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryOneFlangeAndSupport2; + Modelica.Blocks.Interfaces.RealInput u[3] + "Position, velocity and acceleration of flange as input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}, + rotation=0))); + protected + function position + extends Modelica.Icons.Function; + input Real q_qd_qdd[3] + "Required values for position, speed, acceleration"; + input Real dummy + "Just to have one input signal that should be differentiated to avoid possible problems in the Modelica tool (is not used)"; + output Real q; + algorithm + q :=q_qd_qdd[1]; + annotation (derivative(noDerivative=q_qd_qdd) = position_der, + InlineAfterIndexReduction=true); + end position; + + function position_der + extends Modelica.Icons.Function; + input Real q_qd_qdd[3] + "Required values for position, speed, acceleration"; + input Real dummy + "Just to have one input signal that should be differentiated to avoid possible problems in the Modelica tool (is not used)"; + input Real dummy_der; + output Real qd; + algorithm + qd :=q_qd_qdd[2]; + annotation (derivative(noDerivative=q_qd_qdd, order=2) = position_der2, + InlineAfterIndexReduction=true); + end position_der; + + function position_der2 + extends Modelica.Icons.Function; + input Real q_qd_qdd[3] + "Required values for position, speed, acceleration"; + input Real dummy + "Just to have one input signal that should be differentiated to avoid possible problems in the Modelica tool (is not used)"; + input Real dummy_der; + input Real dummy_der2; + output Real qdd; + algorithm + qdd :=q_qd_qdd[3]; + end position_der2; + equation + s = position(u,time); + annotation ( + Documentation(info=" +

+Flange flange_b is forced to move relative to the support connector with a predefined motion +according to the input signals: +

+
+    u[1]: position of flange
+    u[2]: velocity of flange
+    u[3]: acceleration of flange
+
+

+The user has to guarantee that the input signals are consistent to each other, +i.e., that u[2] is the derivative of u[1] and that +u[3] is the derivative of u. There are, however, +also applications where by purpose these conditions do not hold. For example, +if only the position dependent terms of a mechanical system shall be +calculated, one may provide position = position(t) and set the velocity +and the acceleration to zero. +

+

+The input signals can be provided from one of the signal generator +blocks of the block library Modelica.Blocks.Sources. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-192,-38},{-32,-70}}, + lineColor={0,0,0}, + textString="s,v,a"), + Line(points={{-30,-32},{30,-32}}, color={0,0,0}), + Line(points={{0,-32},{0,-100}}, color={0,0,0}), + Line(points={{30,-42},{20,-52}}, color={0,0,0}), + Line(points={{30,-32},{10,-52}}, color={0,0,0}), + Line(points={{20,-32},{0,-52}}, color={0,0,0}), + Line(points={{10,-32},{-10,-52}}, color={0,0,0}), + Line(points={{0,-32},{-20,-52}}, color={0,0,0}), + Line(points={{-10,-32},{-30,-52}}, color={0,0,0}), + Line(points={{-20,-32},{-30,-42}}, color={0,0,0}), + Rectangle( + extent={{-100,20},{100,-20}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Line(points={{0,52},{0,32}}, color={0,0,0}), + Line(points={{-29,32},{30,32}}, color={0,0,0}), + Text( + extent={{150,60},{-150,100}}, + textString="%name", + lineColor={0,0,255})})); + end Move; + + model Force + "External force acting on a drive train element as input signal" + extends + Modelica.Mechanics.Translational.Interfaces.PartialElementaryOneFlangeAndSupport2; + Modelica.Blocks.Interfaces.RealInput f(unit="N") "Driving force as input signal" + annotation (Placement(transformation( + extent={{-140,-20},{-100,20}}, rotation=0))); + + equation + flange.f = -f; + annotation ( + Documentation(info=" +

+The input signal \"f\" in [N] characterizes an external +force which acts (with positive sign) at a flange, +i.e., the component connected to the flange is driven by force f. +

+

+Input signal f can be provided from one of the signal generator +blocks of Modelica.Blocks.Source. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Polygon( + points={{-100,10},{20,10},{20,41},{90,0},{20,-41},{20,-10},{-100, + -10},{-100,10}}, + lineColor={0,127,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,-32},{-80,-62}}, + lineColor={0,0,0}, + textString="f"), + Text( + extent={{-150,90},{150,50}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{-30,-60},{30,-60}}, color={0,0,0}), + Line(points={{0,-60},{0,-101}}, color={0,0,0}), + Line(points={{-30,-80},{-10,-60}}, color={0,0,0}), + Line(points={{-10,-80},{10,-60}}, color={0,0,0}), + Line(points={{10,-80},{30,-60}}, color={0,0,0}), + Polygon( + points={{-61,-50},{-30,-40},{-30,-60},{-61,-50}}, + lineColor={0,0,0}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-31,-50},{50,-50}}, color={0,0,0}), + Line(points={{-50,-80},{-30,-60}}, color={0,0,0})})); + end Force; + + model Force2 "Input signal acting as torque on two flanges" + extends Translational.Interfaces.PartialTwoFlanges; + Modelica.Blocks.Interfaces.RealInput f(unit="N") "Driving force as input signal" + annotation (Placement(transformation( + extent={{-20,-20},{20,20}}, rotation=270, + origin={0,60}), iconTransformation( + extent={{-20,-20},{20,20}}, + rotation=270, + origin={0,40}))); + + equation + flange_a.f = f; + flange_b.f = -f; + annotation ( + Documentation(info=" +

+The input signal \"f\" in [N] characterizes an external +force which acts (with positive sign) at both flanges, +i.e., the components connected to these flanges are driven by force f. +

+

+Input signal s can be provided from one of the signal generator +blocks of Modelica.Blocks.Source. +

+ +"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Text( + extent={{-150,-40},{150,-80}}, + textString="%name", + lineColor={0,0,255}), + Polygon( + points={{90,0},{60,-30},{60,-10},{10,-10},{10,10},{60,10},{60,31}, + {90,0}}, + lineColor={0,127,0}, + smooth=Smooth.None, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-90,0},{-60,30},{-60,10},{-10,10},{-10,-10},{-60,-10},{-60, + -30},{-90,0}}, + lineColor={0,127,0}, + smooth=Smooth.None, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid)})); + end Force2; + + model LinearSpeedDependentForce "Linear dependency of force versus speed" + extends Modelica.Mechanics.Translational.Interfaces.PartialForce; + parameter Modelica.SIunits.Force f_nominal + "Nominal force (if negative, force is acting as load)"; + parameter Boolean ForceDirection=true + "Same direction of force in both directions of movement"; + parameter Modelica.SIunits.Velocity v_nominal(min=Modelica.Constants.eps) + "Nominal speed"; + Modelica.SIunits.Velocity v + "Velocity of flange with respect to support (= der(s))"; + + equation + v = der(s); + if ForceDirection then + f = -f_nominal*abs(v/v_nominal); + else + f = -f_nominal*(v/v_nominal); + end if; + annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100, + -100},{100,100}}), graphics={Line(points={{-100,-100},{100,100}}, + color={0,0,255})}), Documentation(info=" +

+Model of force, linearly dependent on velocity of flange.
+Parameter ForceDirection chooses whether direction of force is the same in both directions of movement or not. +

+")); + end LinearSpeedDependentForce; + + model QuadraticSpeedDependentForce + "Quadratic dependency of force versus speed" + extends Modelica.Mechanics.Translational.Interfaces.PartialForce; + parameter Modelica.SIunits.Force f_nominal + "Nominal force (if negative, force is acting as load)"; + parameter Boolean ForceDirection=true + "Same direction of force in both directions of movement"; + parameter Modelica.SIunits.Velocity v_nominal(min=Modelica.Constants.eps) + "Nominal speed"; + Modelica.SIunits.Velocity v + "Velocity of flange with respect to support (= der(s))"; + equation + v = der(s); + if ForceDirection then + f = -f_nominal*(v/v_nominal)^2; + else + f = -f_nominal*smooth(1, if v >= 0 then (v/v_nominal)^2 else -(v/v_nominal)^2); + end if; + annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,-100},{-80,-98},{-60,-92},{-40,-82},{-20,-68},{0,-50},{20,-28},{40,-2},{60,28},{80,62},{100,100}}, + color={0,0,127}, + smooth=Smooth.Bezier)}),Documentation(info=" +

+Model of force, quadratic dependent on velocity of flange.
+Parameter ForceDirection chooses whether direction of force is the same in both directions of movement or not. +

+")); + end QuadraticSpeedDependentForce; + + model ConstantForce "Constant force, not dependent on speed" + extends Modelica.Mechanics.Translational.Interfaces.PartialForce; + parameter Modelica.SIunits.Force f_constant + "Nominal force (if negative, force is acting as load)"; + equation + f = -f_constant; + annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100, + -100},{100,100}}), graphics={Line(points={{-100,0},{98,0}}, + color={0,0,255}), Text( + extent={{-118,58},{126,34}}, + lineColor={0,0,0}, + textString="%f_constant")}), + Documentation(info=" +

+Model of constant force, not dependent on velocity of flange.
+Positive force acts accelerating. +

+")); + end ConstantForce; + + model ConstantSpeed "Constant speed, not dependent on force" + extends Modelica.Mechanics.Translational.Interfaces.PartialForce; + parameter Modelica.SIunits.Velocity v_fixed + "Fixed speed (if negative, force is acting as load)"; + Modelica.SIunits.Velocity v + "Velocity of flange with respect to support (= der(s))"; + equation + v = der(s); + v = v_fixed; + annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100, + -100},{100,100}}), graphics={Line(points={{0,-100},{0,100}}, + color={0,0,255}), Text( + extent={{-120,60},{124,36}}, + lineColor={0,0,0}, + textString="%v_fixed")}), + Documentation(info=" +

+Model of fixed velocity of flange, not dependent on force. +

+")); + end ConstantSpeed; + + model ForceStep "Constant force, not dependent on speed" + extends Modelica.Mechanics.Translational.Interfaces.PartialForce; + parameter Modelica.SIunits.Force stepForce(start=1) + "Height of force step (if negative, force is acting as load)"; + parameter Modelica.SIunits.Force offsetForce(start=0) "Offset of force"; + parameter Modelica.SIunits.Time startTime=0 + "Force = offset for time < startTime"; + equation + f = -offsetForce - (if time < startTime then 0 else stepForce); + annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100, + -100},{100,100}}), graphics={Line(points={{-80,-60},{0,-60},{0, + 60},{80,60}}, color={0,0,255}), Text( + extent={{0,-40},{100,-60}}, + lineColor={0,0,0}, + textString="time")}), Documentation(info=" +

+Model of a force step at time .
+Positive force acts accelerating. +

+")); + end ForceStep; + + annotation ( Documentation(info=" +

+This package contains ideal sources to drive 1D mechanical translational drive trains. +

+")); + end Sources; + + package Interfaces + "Interfaces for 1-dim. translational mechanical components" + extends Modelica.Icons.InterfacesPackage; + + connector Flange_a + "(left) 1D translational flange (flange axis directed INTO cut plane, e. g. from left to right)" + + SI.Position s "Absolute position of flange"; + flow SI.Force f "Cut force directed into flange"; + annotation(defaultComponentName = "flange_a", + Documentation(info=" +

+This is a flange for 1D translational mechanical systems. In the cut plane of +the flange a unit vector n, called flange axis, is defined which is directed +INTO the cut plane, i. e. from left to right. All vectors in the cut plane are +resolved with respect to +this unit vector. E.g. force f characterizes a vector which is directed in +the direction of n with value equal to f. When this flange is connected to +other 1D translational flanges, this means that the axes vectors of the connected +flanges are identical. +

+

+The following variables are transported through this connector: +

+
+  s: Absolute position of the flange in [m]. A positive translation
+     means that the flange is translated along the flange axis.
+  f: Cut-force in direction of the flange axis in [N].
+
+"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,127,0}, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), + Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100}, + {100,100}}), graphics={Rectangle( + extent={{-40,-40},{40,40}}, + lineColor={0,127,0}, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), Text( + extent={{-160,110},{40,50}}, + lineColor={0,127,0}, + textString="%name")})); + end Flange_a; + + connector Flange_b + "(right) 1D translational flange (flange axis directed OUT OF cut plane)" + + SI.Position s "Absolute position of flange"; + flow SI.Force f "Cut force directed into flange"; + annotation(defaultComponentName = "flange_b", + Documentation(info=" +

+This is a flange for 1D translational mechanical systems. In the cut plane of +the flange a unit vector n, called flange axis, is defined which is directed +OUT OF the cut plane. All vectors in the cut plane are resolved with respect to +this unit vector. E.g. force f characterizes a vector which is directed in +the direction of n with value equal to f. When this flange is connected to +other 1D translational flanges, this means that the axes vectors of the connected +flanges are identical. +

+

+The following variables are transported through this connector: +

+  s: Absolute position of the flange in [m]. A positive translation
+     means that the flange is translated along the flange axis.
+  f: Cut-force in direction of the flange axis in [N].
+
+"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,100}}), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid)}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Rectangle( + extent={{-40,-40},{40,40}}, + lineColor={0,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), Text( + extent={{-40,110},{160,50}}, + lineColor={0,127,0}, + textString="%name")})); + end Flange_b; + + connector Support "Support/housing 1D translational flange" + + SI.Position s "Absolute position of flange"; + flow SI.Force f "Cut force directed into flange"; + annotation (Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100, + -100},{100,100}}), graphics={ + Rectangle( + extent={{-60,60},{60,-60}}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Text( + extent={{-160,110},{40,50}}, + lineColor={0,127,0}, + textString="%name"), + Rectangle( + extent={{-40,-40},{40,40}}, + lineColor={0,127,0}, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), Icon(coordinateSystem( + preserveAspectRatio=true, extent={{-100,-100},{100,100}}), + graphics={Rectangle( + extent={{-150,150},{150,-150}}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), Rectangle( + extent={{-90,-90},{90,90}}, + lineColor={0,127,0}, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), + Documentation(info=" +

This is a connector for 1-dim. rotational mechanical systems and models the support or housing of a shaft. The following variables are defined in this connector:

+ + + + + + + + +

s

Absolute position of the support/housing in [m]

f

Reaction force in the support/housing in [N]

+


The support connector is usually defined as conditional connector. It is most convenient to utilize it

+ +")); + end Support; + + model InternalSupport + "Adapter model to utilize conditional support connector" + input SI.Force f + "External support force (must be computed via force balance in model where InternalSupport is used; = flange.f)"; + SI.Position s "External support position (= flange.s)"; + Flange_a flange + "Internal support flange (must be connected to the conditional support connector for useSupport=true and to conditional fixed model for useSupport=false)" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + equation + flange.f = f; + flange.s = s; + annotation ( Icon(coordinateSystem( + preserveAspectRatio=true, extent={{-100,-100},{100,100}}), + graphics={Text( + extent={{-200,80},{200,40}}, + lineColor={0,0,255}, + textString="%name"), Rectangle( + extent={{-20,20},{20,-20}}, + lineColor={0,127,0}, + fillColor={175,175,175}, + fillPattern=FillPattern.Solid)}), + Documentation(info=" +

+This is an adapter model to utilize a conditional support connector +in an elementary component, i.e., where the component equations are +defined textually: +

+ +
    +
  • If useSupport = true, the flange has to be connected to the conditional + support connector.
  • +
  • If useSupport = false, the flange has to be connected to the conditional + fixed model.
  • +
+ +

+Variable f is defined as input and must be provided when using +this component as a modifier (computed via a force balance in +the model where InternalSupport is used). Usually, model InternalSupport is +utilized via the partial models: +

+ +
+ +PartialElementaryOneFlangeAndSupport,
+ +PartialElementaryTwoFlangesAndSupport,
+ +PartialElementaryRotationalToTranslational. +
+ +

+Note, the support position can always be accessed as internalSupport.s, and +the support force can always be accessed as internalSupport.f. +

+")); + end InternalSupport; + + partial model PartialTwoFlanges + "Component with two translational 1D flanges" + + Flange_a flange_a + "(left) driving flange (flange axis directed in to cut plane, e. g. from left to right)" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, + rotation=0))); + Flange_b flange_b + "(right) driven flange (flange axis directed out of cut plane)" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + annotation ( + Documentation(info=" +

+This is a 1D translational component with two flanges. +It is used e.g., to built up parts of a drive train consisting +of several base components. +

+")); + end PartialTwoFlanges; + + partial model PartialOneFlangeAndSupport + "Partial model for a component with one translational 1-dim. shaft flange and a support used for graphical modeling, i.e., the model is build up by drag-and-drop from elementary components" + parameter Boolean useSupport=false + "= true, if support flange enabled, otherwise implicitly grounded" + annotation(Evaluate=true, HideResult=true, choices(checkBox=true)); + Flange_b flange "Flange of component" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, rotation=0))); + Support support if useSupport "Support/housing of component" + annotation (Placement(transformation(extent={{-10,-110},{10,-90}}))); + protected + Support internalSupport + "Internal support/housing of component (either connected to support, if useSupport=true, or connected to fixed, if useSupport=false)" + annotation (Placement(transformation(extent={{-3,-83},{3,-77}}))); + Components.Fixed fixed if not useSupport + "Fixed support/housing, if not useSupport" + annotation (Placement(transformation(extent={{10,-94},{30,-74}}))); + equation + connect(fixed.flange, internalSupport) annotation (Line( + points={{20,-84},{20,-80},{0,-80}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(internalSupport, support) annotation (Line( + points={{0,-80},{0,-100}}, + pattern=LinePattern.None, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+This is a 1-dim. translational component with one flange and a support/housing. +It is used e.g., to build up parts of a drive train graphically consisting +of several components. +

+ +

+If useSupport=true, the support connector is conditionally enabled +and needs to be connected.
+If useSupport=false, the support connector is conditionally disabled +and instead the component is internally fixed to ground. +

+ +"), Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Text( + extent={{-38,-98},{-6,-96}}, + lineColor={95,95,95}, + textString="(if useSupport)"), Text( + extent={{21,-95},{61,-96}}, + lineColor={95,95,95}, + textString="(if not useSupport)")}), + Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})})); + end PartialOneFlangeAndSupport; + + partial model PartialTwoFlangesAndSupport + "Partial model for a component with two translational 1-dim. shaft flanges and a support used for graphical modeling, i.e., the model is build up by drag-and-drop from elementary components" + parameter Boolean useSupport=false + "= true, if support flange enabled, otherwise implicitly grounded" + annotation(Evaluate=true, HideResult=true, choices(checkBox=true)); + Flange_a flange_a "Flange of left end" + annotation (Placement(transformation(extent={{-110,-10}, {-90,10}}, rotation=0))); + Flange_b flange_b "Flange of right end" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, rotation=0))); + Support support if useSupport "Support/housing of component" + annotation (Placement(transformation(extent={{-10,-110},{10,-90}}))); + protected + Support internalSupport + "Internal support/housing of component (either connected to support, if useSupport=true, or connected to fixed, if useSupport=false)" + annotation (Placement(transformation(extent={{-3,-83},{3,-77}}))); + Components.Fixed fixed if not useSupport + "Fixed support/housing, if not useSupport" + annotation (Placement(transformation(extent={{10,-97},{30,-77}}))); + equation + connect(fixed.flange, internalSupport) annotation (Line( + points={{20,-87},{20,-80},{0,-80}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(internalSupport, support) annotation (Line( + points={{0,-80},{0,-100}}, + pattern=LinePattern.None, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+This is a 1-dim. translational component with two flanges and a support/housing. +It is used e.g., to build up parts of a drive train graphically consisting +of several components. +

+ +

+If useSupport=true, the support connector is conditionally enabled +and needs to be connected.
+If useSupport=false, the support connector is conditionally disabled +and instead the component is internally fixed to ground. +

+ +"), Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Text( + extent={{-38,-98},{-6,-96}}, + lineColor={95,95,95}, + textString="(if useSupport)"), Text( + extent={{24,-97},{64,-98}}, + lineColor={95,95,95}, + textString="(if not useSupport)")}), + Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})})); + end PartialTwoFlangesAndSupport; + + partial model PartialRigid + "Rigid connection of two translational 1D flanges" + SI.Position s + "Absolute position of center of component (s = flange_a.s + L/2 = flange_b.s - L/2)"; + parameter SI.Length L(start=0) + "Length of component, from left flange to right flange (= flange_b.s - flange_a.s)"; + Flange_a flange_a "Left flange of translational component" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, + rotation=0))); + Flange_b flange_b "Right flange of translational component" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + equation + flange_a.s = s - L/2; + flange_b.s = s + L/2; + annotation ( + Documentation(info=" +

+This is a 1-dim. translational component with two rigidly connected flanges. +The fixed distance between the left and the right flange is defined by parameter \"L\". +The forces at the right and left flange can be different. +It is used e.g., to built up sliding masses. +

+")); + end PartialRigid; + + partial model PartialCompliant + "Compliant connection of two translational 1D flanges" + + Flange_a flange_a + "Left flange of compliant 1-dim. translational component" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, + rotation=0))); + Flange_b flange_b + "Right flange of compliant 1-dim. translational component" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + SI.Position s_rel(start=0) + "Relative distance (= flange_b.s - flange_a.s)"; + SI.Force f + "Force between flanges (positive in direction of flange axis R)"; + + equation + s_rel = flange_b.s - flange_a.s; + flange_b.f = f; + flange_a.f = -f; + annotation ( + Documentation(info=" +

+This is a 1D translational component with a compliant connection of two +translational 1D flanges where inertial effects between the two +flanges are not included. The absolute value of the force at the left and the right +flange is the same. It is used to built up springs, dampers etc. +

+ +"), Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Polygon( + points={{50,-90},{20,-80},{20,-100},{50,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), Line(points={{-60,-90},{20,-90}}, + color={0,0,0})})); + end PartialCompliant; + + partial model PartialCompliantWithRelativeStates + "Base model for the compliant connection of two translational 1-dim. shaft flanges where the relative position and relative velocities are used as states" + + parameter StateSelect stateSelect=StateSelect.prefer + "Priority to use phi_rel and w_rel as states" + annotation(HideResult=true, Dialog(tab="Advanced")); + parameter SI.Distance s_nominal=1e-4 + "Nominal value of s_rel (used for scaling)" annotation(Dialog(tab="Advanced")); + + SI.Position s_rel(start=0, stateSelect=stateSelect, nominal=s_nominal) + "Relative distance (= flange_b.s - flange_a.s)"; + SI.Velocity v_rel(start=0, stateSelect=stateSelect) + "Relative velocity (= der(s_rel))"; + + SI.Force f "Forces between flanges (= flange_b.f)"; + Translational.Interfaces.Flange_a flange_a + "Left flange of compliant 1-dim. translational component" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, + rotation=0))); + Translational.Interfaces.Flange_b flange_b + "Right flange of compliant 1-dim. translational component" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + + equation + s_rel = flange_b.s - flange_a.s; + v_rel = der(s_rel); + flange_b.f = f; + flange_a.f = -f; + annotation ( + Documentation(info=" +

+This is a 1-dim. translational component with a compliant connection of two +translational 1-dim. flanges where inertial effects between the two +flanges are neglected. The basic assumption is that the cut-forces +of the two flanges sum-up to zero, i.e., they have the same absolute value +but opposite sign: flange_a.f + flange_b.f = 0. This base class +is used to built up force elements such as springs, dampers, friction. +

+ +

+The difference to base class \"PartialCompliant\" is that the relative +distance and the relative velocity are defined as preferred states. +The reason is that for a large class of drive trains, +the absolute position is quickly increasing during operation. +Numerically, it is better to use relative distances between drive train components +because they remain in a limited size. For this reason, StateSelect.prefer +is set for the relative distance of this component. +

+ +

+In order to improve the numerics, a nominal value for the relative distance +should be set, since drive train distances are in a small order and +then step size control of the integrator is practically switched off for +such a variable. A default nominal value of s_nominal = 1e-4 is defined. +This nominal value might also be computed from other values, such +as \"s_nominal = f_nominal / c\" for a spring, if f_nominal +and c have more meaningful values for the user. +

+ +")); + end PartialCompliantWithRelativeStates; + + partial model PartialElementaryOneFlangeAndSupport + "Obsolete partial model. Use PartialElementaryOneFlangeAndSupport2." + extends Modelica.Icons.ObsoleteModel; + + parameter Boolean useSupport=false + "= true, if support flange enabled, otherwise implicitly grounded" + annotation(Evaluate=true, HideResult=true, choices(checkBox=true)); + Modelica.SIunits.Length s + "Distance between flange and support (= flange.s - support.s)"; + Flange_b flange "Flange of component" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + + protected + InternalSupport internalSupport(f=-flange.f) + "Internal support/housing of component as a model with connector flange (flange is either connected to support, if useSupport=true, or connected to fixed, if useSupport=false)" + annotation (Placement(transformation(extent={{-10,-90},{10,-70}}))); + Components.Fixed fixed if not useSupport + "Fixed support/housing, if not useSupport" + annotation (Placement(transformation(extent={{10,-97},{30,-77}}))); + public + Support support if useSupport "Support/housing of component" + annotation (Placement(transformation(extent={{-10,-110},{10,-90}}))); + equation + s = flange.s - internalSupport.s; + connect(internalSupport.flange, support) annotation (Line( + points={{0,-80},{0,-100}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed.flange, internalSupport.flange) annotation (Line( + points={{20,-87},{20,-80},{0,-80}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation ( + Documentation(info=" +

+This is a 1-dim. translational component with one flange and a support/housing. +It is used to build up elementary components of a drive train with +equations in the text layer. +

+ +

+If useSupport=true, the support connector is conditionally enabled +and needs to be connected.
+If useSupport=false, the support connector is conditionally disabled +and instead the component is internally fixed to ground. +

+ +"), Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={Text( + extent={{-38,-98},{-6,-96}}, + lineColor={95,95,95}, + textString="(if useSupport)"), Text( + extent={{24,-97},{64,-98}}, + lineColor={95,95,95}, + textString="(if not useSupport)")}), + Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})})); + end PartialElementaryOneFlangeAndSupport; + + partial model PartialElementaryOneFlangeAndSupport2 + "Partial model for a component with one translational 1-dim. shaft flange and a support used for textual modeling, i.e., for elementary models" + parameter Boolean useSupport=false + "= true, if support flange enabled, otherwise implicitly grounded" + annotation(Evaluate=true, HideResult=true, choices(checkBox=true)); + Modelica.SIunits.Length s + "Distance between flange and support (= flange.s - support.s)"; + Flange_b flange "Flange of component" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + Support support(s=s_support, f=-flange.f) if useSupport + "Support/housing of component" + annotation (Placement(transformation(extent={{-10,-110},{10,-90}}))); + protected + Modelica.SIunits.Length s_support "Absolute position of support flange"; + equation + s = flange.s - s_support; + if not useSupport then + s_support = 0; + end if; + annotation ( + Documentation(info=" +

+This is a 1-dim. translational component with one flange and a support/housing. +It is used to build up elementary components of a drive train with +equations in the text layer. +

+ +

+If useSupport=true, the support connector is conditionally enabled +and needs to be connected.
+If useSupport=false, the support connector is conditionally disabled +and instead the component is internally fixed to ground. +

+ +"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})})); + end PartialElementaryOneFlangeAndSupport2; + + partial model PartialElementaryTwoFlangesAndSupport + "Obsolete partial model. Use PartialElementaryTwoFlangesAndSupport2." + extends Modelica.Icons.ObsoleteModel; + parameter Boolean useSupport=false + "= true, if support flange enabled, otherwise implicitly grounded" + annotation(Evaluate=true, HideResult=true, choices(checkBox=true)); + Flange_a flange_a "Flange of left shaft" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, rotation=0))); + Flange_b flange_b "Flange of right shaft" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, rotation=0))); + Modelica.SIunits.Length s_a "Distance between left flange and support"; + Modelica.SIunits.Length s_b "Distance between right flange and support"; + protected + InternalSupport internalSupport(f=-flange_a.f - flange_b.f) + "Internal support/housing of component as a model with connector flange (flange is either connected to support, if useSupport=true, or connected to fixed, if useSupport=false)" + annotation (Placement(transformation(extent={{-10,-90},{10,-70}}))); + Components.Fixed fixed if not useSupport + "Fixed support/housing, if not useSupport" + annotation (Placement(transformation(extent={{10,-97},{30,-77}}))); + public + Support support if useSupport "Support/housing of component" + annotation (Placement(transformation(extent={{-10,-110},{10,-90}}))); + equation + s_a = flange_a.s - internalSupport.s; + s_b = flange_b.s - internalSupport.s; + connect(internalSupport.flange, support) annotation (Line( + points={{0,-80},{0,-100}}, + color={0,127,0}, + smooth=Smooth.None)); + connect(fixed.flange, internalSupport.flange) annotation (Line( + points={{20,-87},{20,-80},{0,-80}}, + color={0,127,0}, + smooth=Smooth.None)); + annotation (Documentation(info=" +

+This is a 1-dim. translational component with two flanges and an additional support. +It is used e.g., to build up elementary ideal gear components. The component +contains the force balance, i.e., the sum of the forces of the connectors +is zero (therefore, components that are based on PartialGear cannot have +a mass). The support connector needs to be connected +to avoid the unphysical behavior that the +support force is required to be zero (= the default value, if the +connector is not connected). +

+ +"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100}, + {100,100}}), graphics={Text( + extent={{-38,-98},{-6,-96}}, + lineColor={95,95,95}, + textString="(if useSupport)"), Text( + extent={{24,-97},{64,-98}}, + lineColor={95,95,95}, + textString="(if not useSupport)")}), + Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})})); + end PartialElementaryTwoFlangesAndSupport; + + partial model PartialElementaryTwoFlangesAndSupport2 + "Partial model for a component with one translational 1-dim. shaft flange and a support used for textual modeling, i.e., for elementary models" + parameter Boolean useSupport=false + "= true, if support flange enabled, otherwise implicitly grounded" + annotation(Evaluate=true, HideResult=true, choices(checkBox=true)); + Flange_a flange_a "Flange of left shaft" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, rotation=0))); + Flange_b flange_b "Flange of right shaft" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, rotation=0))); + Support support(s=s_support, f = -flange_a.f - flange_b.f) if useSupport + "Support/housing of component" + annotation (Placement(transformation(extent={{-10,-110},{10,-90}}))); + Modelica.SIunits.Length s_a "Distance between left flange and support"; + Modelica.SIunits.Length s_b "Distance between right flange and support"; + protected + Modelica.SIunits.Length s_support "Absolute position of support flange"; + equation + s_a = flange_a.s - s_support; + s_b = flange_b.s - s_support; + if not useSupport then + s_support = 0; + end if; + + annotation (Documentation(info=" +

+This is a 1-dim. translational component with two flanges and an additional support. +It is used e.g., to build up elementary ideal gear components. The component +contains the force balance, i.e., the sum of the forces of the connectors +is zero (therefore, components that are based on PartialGear cannot have +a mass). The support connector needs to be connected +to avoid the unphysical behavior that the +support force is required to be zero (= the default value, if the +connector is not connected). +

+ +"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ + 100,100}}), graphics={ + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})})); + end PartialElementaryTwoFlangesAndSupport2; + + partial model PartialElementaryRotationalToTranslational + "Partial model to transform rotational into translational motion" + extends + Modelica.Mechanics.Rotational.Interfaces.PartialElementaryRotationalToTranslational; + annotation (Documentation(info=" +

This is a 1-dim. rotational component with

+
    +
  • one rotational flange,
  • +
  • one rotational support/housing,
  • +
  • one translational flange, and
  • +
  • one translational support/housing
  • +
+

This model is used to build up elementary components of a drive train transforming rotational into translational motion with equations in the text layer.

+

If useSupportR=true, the rotational support connector is conditionally enabled and needs to be connected.

+

If useSupportR=false, the rotational support connector is conditionally disabled and instead the rotational part is internally fixed to ground.

+

If useSupportT=true, the translational support connector is conditionally enabled and needs to be connected.

+

If useSupportT=false, the translational support connector is conditionally disabled and instead the translational part is internally fixed to ground.

+")); + end PartialElementaryRotationalToTranslational; + + partial model PartialForce + "Partial model of a force acting at the flange (accelerates the flange)" + extends PartialElementaryOneFlangeAndSupport2; + Modelica.SIunits.Force f "Accelerating force acting at flange (= flange.f)"; + equation + f = flange.f; + annotation ( + Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100, + 100}}), graphics={ + Rectangle( + extent={{-96,96},{96,-96}}, + lineColor={255,255,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line(points={{0,-60},{0,-100}}, color={0,0,0}), + Text( + extent={{-150,140},{150,100}}, + lineColor={0,0,255}, + textString="%name"), + Line(points={{-78,80},{51,80}}, color={0,0,0}), + Polygon( + points={{81,80},{51,90},{51,70},{81,80}}, + lineColor={0,0,0}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-52,-60},{77,-60}}, color={0,0,0}), + Polygon( + points={{-82,-60},{-51,-50},{-51,-70},{-82,-60}}, + lineColor={0,0,0}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line( + visible=not useSupport, + points={{-50,-120},{-30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-120},{-10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-10,-120},{10,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{10,-120},{30,-100}}, + color={0,0,0}), + Line( + visible=not useSupport, + points={{-30,-100},{30,-100}}, + color={0,0,0})}), + Documentation(info=" +

+Partial model of force that accelerates the flange. +

+ +

+If useSupport=true, the support connector is conditionally enabled +and needs to be connected.
+If useSupport=false, the support connector is conditionally disabled +and instead the component is internally fixed to ground. +

+")); + end PartialForce; + + partial model PartialAbsoluteSensor + "Device to measure a single absolute flange variable" + + extends Modelica.Icons.TranslationalSensor; + + Interfaces.Flange_a flange + "Flange to be measured (flange axis directed in to cut plane, e. g. from left to right)" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, + rotation=0))); + + equation + 0 = flange.f; + annotation ( + Documentation(info=" +

+This is the superclass of a 1D translational component with one flange and one +output signal in order to measure an absolute kinematic quantity in the flange +and to provide the measured signal as output signal for further processing +with the Modelica.Blocks blocks. +

+"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-100,-90},{-20,-90}}, color={0,0,0}), + Polygon( + points={{10,-90},{-20,-80},{-20,-100},{10,-90}}, + lineColor={128,128,128}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70,0},{100,0}}, color={0,0,127}), + Text( + extent={{-150,80},{150,40}}, + textString="%name", + lineColor={0,0,255})})); + end PartialAbsoluteSensor; + + partial model PartialRelativeSensor + "Device to measure a single relative variable between two flanges" + + extends Modelica.Icons.TranslationalSensor; + + Interfaces.Flange_a flange_a + "(left) driving flange (flange axis directed in to cut plane, e. g. from left to right)" + annotation (Placement(transformation(extent={{-110,-10},{-90,10}}, + rotation=0))); + Interfaces.Flange_b flange_b + "(right) driven flange (flange axis directed out of cut plane)" + annotation (Placement(transformation(extent={{90,-10},{110,10}}, + rotation=0))); + + equation + 0 = flange_a.f + flange_b.f; + annotation ( + Documentation(info=" +

+This is a superclass for 1D translational components with two rigidly connected +flanges and one output signal in order to measure relative kinematic quantities +between the two flanges or the cut-force in the flange and +to provide the measured signal as output signal for further processing +with the Modelica.Blocks blocks. +

+"), Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), graphics={ + Line(points={{-51,34},{29,34}}, color={0,0,0}), + Polygon( + points={{59,34},{29,44},{29,24},{59,34}}, + lineColor={0,0,0}, + fillColor={128,128,128}, + fillPattern=FillPattern.Solid), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70,0},{90,0}}, color={0,0,0}), + Text( + extent={{-150,100},{150,60}}, + textString="%name", + lineColor={0,0,255})})); + end PartialRelativeSensor; + + partial model PartialFriction "Base model of Coulomb friction elements" + + //extends Translational.Interfaces.PartialRigid; + parameter SI.Velocity v_small=1e-3 + "Relative velocity near to zero (see model info text)" + annotation(Dialog(tab="Advanced")); + // Equations to define the following variables have to be defined in subclasses + SI.Velocity v_relfric "Relative velocity between frictional surfaces"; + SI.Acceleration a_relfric + "Relative acceleration between frictional surfaces"; + //SI.Force f "Friction force (positive, if directed in opposite direction of v_rel)"; + SI.Force f0 "Friction force for v=0 and forward sliding"; + SI.Force f0_max "Maximum friction force for v=0 and locked"; + Boolean free "true, if frictional element is not active"; + // Equations to define the following variables are given in this class + Real sa(unit="1") + "Path parameter of friction characteristic f = f(a_relfric)"; + Boolean startForward(start=false, fixed=true) + "true, if v_rel=0 and start of forward sliding"; + Boolean startBackward(start=false, fixed=true) + "true, if v_rel=0 and start of backward sliding"; + Boolean locked(start=false) "true, if v_rel=0 and not sliding"; + constant Integer Unknown=3 "Value of mode is not known"; + constant Integer Free=2 "Element is not active"; + constant Integer Forward=1 "v_rel > 0 (forward sliding)"; + constant Integer Stuck=0 + "v_rel = 0 (forward sliding, locked or backward sliding)"; + constant Integer Backward=-1 "v_rel < 0 (backward sliding)"; + Integer mode( + final min=Backward, + final max=Unknown, + start=Unknown, fixed=true); + protected + constant SI.Acceleration unitAcceleration = 1 annotation(HideResult=true); + constant SI.Force unitForce = 1 annotation(HideResult=true); + equation + /* Friction characteristic + (locked is introduced to help the Modelica translator determining + the different structural configurations, + if for each configuration special code shall be generated) +*/ + startForward = pre(mode) == Stuck and (sa > f0_max/unitForce or pre(startForward) + and sa > f0/unitForce) or pre(mode) == Backward and v_relfric > v_small or + initial() and (v_relfric > 0); + startBackward = pre(mode) == Stuck and (sa < -f0_max/unitForce or pre( + startBackward) and sa < -f0/unitForce) or pre(mode) == Forward and v_relfric < + -v_small or initial() and (v_relfric < 0); + locked = not free and not (pre(mode) == Forward or startForward or pre( + mode) == Backward or startBackward); + + a_relfric/unitAcceleration = if locked then 0 else + if free then sa else + if startForward then sa - f0_max/unitForce else + if startBackward then sa + f0_max/unitForce else + if pre(mode) == Forward then sa - f0_max/unitForce else + sa + f0_max/unitForce; + + /* Friction torque has to be defined in a subclass. Example for a clutch: + f = if locked then sa else + if free then 0 else + cgeo*fn*(if startForward then Math.tempInterpol1( v_relfric, mue_pos, 2) else + if startBackward then -Math.tempInterpol1(-v_relfric, mue_pos, 2) else + if pre(mode) == Forward then Math.tempInterpol1( v_relfric, mue_pos, 2) else + -Math.tempInterpol1(-v_relfric, mue_pos, 2)); +*/ + // finite state machine to determine configuration + mode = if free then Free else + (if (pre(mode) == Forward or pre(mode) == Free or startForward) and v_relfric > 0 then + Forward else + if (pre(mode) == Backward or pre(mode) == Free or startBackward) and v_relfric < 0 then + Backward else + Stuck); + annotation (Documentation(info=" +

+Basic model for Coulomb friction that models the stuck phase in a reliable way. +

+")); + end PartialFriction; + + annotation (Documentation(info=" +

+This package contains connectors and partial models for 1-dim. +translational mechanical components. The components of this package can +only be used as basic building elements for models. +

+ +")); + end Interfaces; + + annotation ( + Icon(coordinateSystem(preserveAspectRatio = true, extent = {{-100,-100},{100,100}}), graphics = { + Line( + origin = {14,53}, + points = {{-84,-73},{66,-73}}), + Rectangle( + origin = {14,53}, + lineColor = {64,64,64}, + fillColor = {192,192,192}, + fillPattern = FillPattern.Sphere, + extent = {{-81,-65},{-8,-22}}),Line(visible = true, + origin = {14,53}, + points = {{-8,-43},{-1,-43},{6,-64},{17,-23},{29,-65},{40,-23},{50,-44},{61,-44}}), + Line( + origin = {14,53}, + points = {{-59,-73},{-84,-93}}), + Line( + origin = {14,53}, + points = {{-11,-73},{-36,-93}}), + Line( + origin = {14,53}, + points = {{-34,-73},{-59,-93}}), + Line( + origin = {14,53}, + points = {{14,-73},{-11,-93}}), + Line( + origin = {14,53}, + points = {{39,-73},{14,-93}}), + Line( + origin = {14,53}, + points = {{63,-73},{38,-93}})}), + Documentation(info=" +

+This package contains components to model 1-dimensional translational +mechanical systems. +

+

+The filled and non-filled green squares at the left and +right side of a component represent mechanical flanges. +Drawing a line between such squares means that the corresponding +flanges are rigidly attached to each other. The components of this +library can be usually connected together in an arbitrary way. E.g. it is +possible to connect two springs or two sliding masses with inertia directly +together. +

The only connection restriction is that the Coulomb friction +elements (e.g., MassWithStopAndFriction) should be only connected +together provided a compliant element, such as a spring, is in between. +The reason is that otherwise the frictional force is not uniquely +defined if the elements are stuck at the same time instant (i.e., there +does not exist a unique solution) and some simulation systems may not be +able to handle this situation, since this leads to a singularity during +simulation. It can only be resolved in a \"clean way\" by combining the +two connected friction elements into +one component and resolving the ambiguity of the frictional force in the +stuck mode. +

+

Another restriction arises if the hard stops in model MassWithStopAndFriction are used, i. e. +the movement of the mass is limited by a stop at smax or smin. + This requires the states Stop.s and Stop.v . If these states are eliminated during the index reduction +the model will not work. To avoid this any inertias should be connected via springs +to the Stop element, other sliding masses, dampers or hydraulic chambers must be avoided.

+

+In the icon of every component an arrow is displayed in grey +color. This arrow characterizes the coordinate system in which the vectors +of the component are resolved. It is directed into the positive +translational direction (in the mathematical sense). +In the flanges of a component, a coordinate system is rigidly attached +to the flange. It is called flange frame and is directed in parallel +to the component coordinate system. As a result, e.g., the positive +cut-force of a \"left\" flange (flange_a) is directed into the flange, whereas +the positive cut-force of a \"right\" flange (flange_b) is directed out of the +flange. A flange is described by a Modelica connector containing +the following variables: +

+
+   Modelica.SIunits.Position s    \"Absolute position of flange\";
+   flow Modelica.SIunits.Force f  \"Cut-force in the flange\";
+
+ +

+This library is designed in a fully object oriented way in order that +components can be connected together in every meaningful combination +(e.g., direct connection of two springs or two shafts with inertia). +As a consequence, most models lead to a system of +differential-algebraic equations of index 3 (= constraint +equations have to be differentiated twice in order to arrive at +a state space representation) and the Modelica translator or +the simulator has to cope with this system representation. +According to our present knowledge, this requires that the +Modelica translator is able to symbolically differentiate equations +(otherwise it is e.g., not possible to provide consistent initial +conditions; even if consistent initial conditions are present, most +numerical DAE integrators can cope at most with index 2 DAEs). +

+ +

+In version 3.2 of the Modelica Standard Library, all dissipative components +of the Translational library got an optional heatPort connector to which the +dissipated energy is transported in form of heat. This connector is enabled +via parameter \"useHeatPort\". If the heatPort connector is enabled, +it must be connected, and if it is not enabled, it must not be connected. +Independently, whether the heatPort is enabled or not, +the dissipated power is available from the new variable \"lossPower\" (which is +positive if heat is flowing out of the heatPort). For an example, see +Examples.HeatLosses. +

+ +
+
Library Officer +
Martin Otter
+ Deutsches Zentrum für Luft und Raumfahrt e.V. (DLR)
+ Institut für Robotik und Mechatronik (DLR-RM)
+ Abteilung Systemdynamik und Regelungstechnik
+ Postfach 1116
+ D-82230 Wessling
+ Germany
+ email: Martin.Otter@dlr.de

+
+ +

+Contributors to this library: +

+ +
    +
  • Main author until 2006:
    + Peter Beater
    + Universität Paderborn, Abteilung Soest
    + Fachbereich Maschinenbau/Automatisierungstechnik
    + Lübecker Ring 2
    + D 59494 Soest
    + Germany
    + email: info@beater.de

    +
  • + +
  • Anton Haumer
    + Technical Consulting & Electrical Engineering
    + A-3423 St.Andrae-Woerdern, Austria
    + email: a.haumer@haumer.at

  • + +
  • Martin Otter (DLR-RM)
  • +
+ +

+Copyright © 1998-2013, Modelica Association, Anton Haumer and Universität Paderborn, FB 12. +

+

+This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2. For license conditions (including the disclaimer of warranty) see Modelica.UsersGuide.ModelicaLicense2 or visit https://www.modelica.org/licenses/ModelicaLicense2. +

+", revisions=" +
    +
  • Version 1.2.0 2010-07-22 + by Anton Haumer and Martin Otter
    + heatPort introduced for all dissipative elements, and + text in icons improved. +
  • + +
  • Version 1.1.0 2007-11-16 + by Anton Haumer
    + Redesign for Modelica 3.0-compliance
    + Added new components according to Mechanics.Rotational library +
  • + +
  • Version 1.01 (July 18, 2001) + by Peter Beater
    + Assert statement added to \"Stop\", small bug fixes in examples. +
  • + +
  • Version 1.0 (January 5, 2000) + by Peter Beater
    + Realized a first version based on Modelica library Mechanics.Rotational + by Martin Otter and an existing Dymola library onedof.lib by Peter Beater.
  • +
+")); +end Translational; diff --git a/samples/Modelica/modelica.mo b/samples/Modelica/modelica.mo new file mode 100644 index 00000000..5462de87 --- /dev/null +++ b/samples/Modelica/modelica.mo @@ -0,0 +1,285 @@ +within Modelica.Electrical.Analog; +package Sensors "Potential, voltage, current, and power sensors" + + extends Modelica.Icons.SensorsPackage; + + model PotentialSensor "Sensor to measure the potential" + extends Modelica.Icons.RotationalSensor; + + Interfaces.PositivePin p "pin to be measured" annotation (Placement( + transformation(extent={{-110,-10},{-90,10}}, rotation=0))); + Modelica.Blocks.Interfaces.RealOutput phi + "Absolute voltage potential as output signal" + annotation (Placement(transformation(extent={{100,-10},{120,10}}, + rotation=0))); + equation + p.i = 0; + phi = p.v; + annotation ( + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), graphics={ + Text( + extent={{-29,-11},{30,-70}}, + lineColor={0,0,0}, + textString="V"), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{100,0},{70,0}}, color={0,0,255}), + Text( + extent={{-150,80},{150,120}}, + textString="%name", + lineColor={0,0,255})}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), graphics={Line(points={{-70,0},{-96,0}}, color={0,0,0}), + Line(points={{100,0},{70,0}}, color={0,0,255})}), + Documentation(revisions=" +
    +
  • 1998 + by Christoph Clauss
    initially implemented
    +
  • +
+", info=" +

The potential sensor converts the voltage of a node (with respect to the ground node) into a real valued signal. It does not influence the current sum at the node which voltage is measured, therefore, the electrical behavior is not influenced by the sensor.

+")); + end PotentialSensor; + + model VoltageSensor "Sensor to measure the voltage between two pins" + extends Modelica.Icons.RotationalSensor; + + Interfaces.PositivePin p "positive pin" annotation (Placement( + transformation(extent={{-110,-10},{-90,10}}, rotation=0))); + Interfaces.NegativePin n "negative pin" annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + Modelica.Blocks.Interfaces.RealOutput v + "Voltage between pin p and n (= p.v - n.v) as output signal" + annotation (Placement(transformation( + origin={0,-100}, + extent={{10,-10},{-10,10}}, + rotation=90))); + + equation + p.i = 0; + n.i = 0; + v = p.v - n.v; + annotation ( + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), graphics={ + Text( + extent={{-29,-11},{30,-70}}, + lineColor={0,0,0}, + textString="V"), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Line(points={{70,0},{90,0}}, color={0,0,0}), + Line(points={{0,-90},{0,-70}}, color={0,0,255}), + Text( + extent={{-150,80},{150,120}}, + textString="%name", + lineColor={0,0,255})}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), graphics={ + Line(points={{-70,0},{-96,0}}, color={0,0,0}), + Line(points={{70,0},{96,0}}, color={0,0,0}), + Line(points={{0,-90},{0,-70}}, color={0,0,255})}), + Documentation(revisions=" +
    +
  • 1998 + by Christoph Clauss
    initially implemented
    +
  • +
+", info=" +

The voltage sensor converts the voltage between the two connectors into a real valued signal. It does not influence the current sum at the nodes in between the voltage is measured, therefore, the electrical behavior is not influenced by the sensor.

+")); + end VoltageSensor; + + model CurrentSensor "Sensor to measure the current in a branch" + extends Modelica.Icons.RotationalSensor; + + Interfaces.PositivePin p "positive pin" annotation (Placement( + transformation(extent={{-110,-10},{-90,10}}, rotation=0))); + Interfaces.NegativePin n "negative pin" annotation (Placement( + transformation(extent={{90,-10},{110,10}}, rotation=0))); + Modelica.Blocks.Interfaces.RealOutput i + "current in the branch from p to n as output signal" + annotation (Placement(transformation( + origin={0,-100}, + extent={{10,-10},{-10,10}}, + rotation=90))); + + equation + p.v = n.v; + p.i = i; + n.i = -i; + annotation ( + Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), graphics={ + Text( + extent={{-29,-11},{30,-70}}, + lineColor={0,0,0}, + textString="A"), + Line(points={{-70,0},{-90,0}}, color={0,0,0}), + Text( + extent={{-150,80},{150,120}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{70,0},{90,0}}, color={0,0,0}), + Line(points={{0,-90},{0,-70}}, color={0,0,255})}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), graphics={ + Text( + extent={{-153,79},{147,119}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{-70,0},{-96,0}}, color={0,0,0}), + Line(points={{70,0},{96,0}}, color={0,0,0}), + Line(points={{0,-90},{0,-70}}, color={0,0,255})}), + Documentation(revisions=" +
    +
  • 1998 + by Christoph Clauss
    initially implemented
    +
  • +
+", info=" +

The current sensor converts the current flowing between the two connectors into a real valued signal. The two connectors are in the sensor connected like a short cut. The sensor has to be placed within an electrical connection in series. It does not influence the current sum at the connected nodes. Therefore, the electrical behavior is not influenced by the sensor.

+")); + end CurrentSensor; + +model PowerSensor "Sensor to measure the power" + + Modelica.Electrical.Analog.Interfaces.PositivePin pc + "Positive pin, current path" + annotation (Placement(transformation(extent={{-90,-10},{-110,10}}, rotation= + 0))); + Modelica.Electrical.Analog.Interfaces.NegativePin nc + "Negative pin, current path" + annotation (Placement(transformation(extent={{110,-10},{90,10}}, rotation=0))); + Modelica.Electrical.Analog.Interfaces.PositivePin pv + "Positive pin, voltage path" + annotation (Placement(transformation(extent={{-10,110},{10,90}}, rotation=0))); + Modelica.Electrical.Analog.Interfaces.NegativePin nv + "Negative pin, voltage path" + annotation (Placement(transformation(extent={{10,-110},{-10,-90}}, rotation= + 0))); + Modelica.Blocks.Interfaces.RealOutput power + annotation (Placement(transformation( + origin={-80,-110}, + extent={{-10,10},{10,-10}}, + rotation=270))); + Modelica.Electrical.Analog.Sensors.VoltageSensor voltageSensor + annotation (Placement(transformation( + origin={0,-30}, + extent={{10,-10},{-10,10}}, + rotation=90))); + Modelica.Electrical.Analog.Sensors.CurrentSensor currentSensor + annotation (Placement(transformation(extent={{-50,-10},{-30,10}}, rotation= + 0))); + Modelica.Blocks.Math.Product product + annotation (Placement(transformation( + origin={-30,-50}, + extent={{-10,-10},{10,10}}, + rotation=270))); + +equation + connect(pv, voltageSensor.p) annotation (Line(points={{0,100},{0,-20},{ + 6.12323e-016,-20}}, color={0,0,255})); + connect(voltageSensor.n, nv) annotation (Line(points={{-6.12323e-016,-40},{ + -6.12323e-016,-63},{0,-63},{0,-100}}, color={0,0,255})); + connect(pc, currentSensor.p) + annotation (Line(points={{-100,0},{-50,0}}, color={0,0,255})); + connect(currentSensor.n, nc) + annotation (Line(points={{-30,0},{100,0}}, color={0,0,255})); + connect(currentSensor.i, product.u2) annotation (Line(points={{-40,-10},{-40, + -30},{-36,-30},{-36,-38}}, color={0,0,127})); + connect(voltageSensor.v, product.u1) annotation (Line(points={{10,-30},{-24, + -30},{-24,-38}}, color={0,0,127})); + connect(product.y, power) annotation (Line(points={{-30,-61},{-30,-80},{-80, + -80},{-80,-110}}, color={0,0,127})); + annotation (Icon(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={2,2}), graphics={ + Ellipse( + extent={{-70,70},{70,-70}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line(points={{0,100},{0,70}}, color={0,0,255}), + Line(points={{0,-70},{0,-100}}, color={0,0,255}), + Line(points={{-80,-100},{-80,0}}, color={0,0,255}), + Line(points={{-100,0},{100,0}}, color={0,0,255}), + Text( + extent={{150,120},{-150,160}}, + textString="%name", + lineColor={0,0,255}), + Line(points={{0,70},{0,40}}, color={0,0,0}), + Line(points={{22.9,32.8},{40.2,57.3}}, color={0,0,0}), + Line(points={{-22.9,32.8},{-40.2,57.3}}, color={0,0,0}), + Line(points={{37.6,13.7},{65.8,23.9}}, color={0,0,0}), + Line(points={{-37.6,13.7},{-65.8,23.9}}, color={0,0,0}), + Line(points={{0,0},{9.02,28.6}}, color={0,0,0}), + Polygon( + points={{-0.48,31.6},{18,26},{18,57.2},{-0.48,31.6}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-5,5},{5,-5}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-29,-11},{30,-70}}, + lineColor={0,0,0}, + textString="P")}), + Diagram(coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={2,2}), graphics), + Documentation(info=" +

This power sensor measures instantaneous electrical power of a singlephase system and has a separated voltage and current path. The pins of the voltage path are pv and nv, the pins of the current path are pc and nc. The internal resistance of the current path is zero, the internal resistance of the voltage path is infinite.

+", revisions=" +
    +
  • January 12, 2006 by Anton Haumer implemented
  • +
+")); +end PowerSensor; + annotation ( + Documentation(info=" +

This package contains potential, voltage, and current sensors. The sensors can be used to convert voltages or currents into real signal values o be connected to components of the Blocks package. The sensors are designed in such a way that they do not influence the electrical behavior.

+", + revisions=" +
+
+Main Authors: +
+Christoph Clauß + <Christoph.Clauss@eas.iis.fraunhofer.de>
+ André Schneider + <Andre.Schneider@eas.iis.fraunhofer.de>
+ Fraunhofer Institute for Integrated Circuits
+ Design Automation Department
+ Zeunerstraße 38
+ D-01069 Dresden
+

+

+Copyright: +
+Copyright © 1998-2010, Modelica Association and Fraunhofer-Gesellschaft.
+The Modelica package is free software; it can be redistributed and/or modified +under the terms of the Modelica license, see the license conditions +and the accompanying disclaimer in the documentation of package +Modelica in file \"Modelica/package.mo\".
+

+

+")); +end Sensors; From 08790f2f0abae6c0e327b191b9f680f2f40c5e87 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 31 Jan 2015 13:44:11 +0100 Subject: [PATCH 147/875] Grammar for Modelica --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Modelica | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Modelica diff --git a/.gitmodules b/.gitmodules index 1816e097..54e90487 100644 --- a/.gitmodules +++ b/.gitmodules @@ -555,3 +555,6 @@ [submodule "vendor/grammars/liquid.tmbundle"] path = vendor/grammars/liquid.tmbundle url = https://github.com/bastilian/validcode-textmate-bundles +[submodule "vendor/grammars/Modelica"] + path = vendor/grammars/Modelica + url = https://github.com/BorisChumichev/modelicaSublimeTextPackage diff --git a/grammars.yml b/grammars.yml index 9c9d7e35..8d9e1d18 100644 --- a/grammars.yml +++ b/grammars.yml @@ -46,6 +46,8 @@ vendor/grammars/Julia.tmbundle: - source.julia vendor/grammars/LiveScript.tmbundle: - source.livescript +vendor/grammars/Modelica/: +- source.modelica vendor/grammars/NSIS: - source.nsis vendor/grammars/NimLime: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4d183306..41aa3765 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1844,7 +1844,7 @@ Modelica: type: programming extensions: - .mo - tm_scope: none + tm_scope: source.modelica ace_mode: text Monkey: diff --git a/vendor/grammars/Modelica b/vendor/grammars/Modelica new file mode 160000 index 00000000..d7e50e39 --- /dev/null +++ b/vendor/grammars/Modelica @@ -0,0 +1 @@ +Subproject commit d7e50e39c14a49153d3c17dfbd623258cf1a5d69 From da7b3182e8d5cb26d0a382b9cb32f219da65c9ad Mon Sep 17 00:00:00 2001 From: Steinway Wu Date: Sat, 31 Jan 2015 16:00:00 -0500 Subject: [PATCH 148/875] update to newer ats-mode-sublime --- vendor/grammars/ats.sublime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime index e42cbf65..1e49e0b7 160000 --- a/vendor/grammars/ats.sublime +++ b/vendor/grammars/ats.sublime @@ -1 +1 @@ -Subproject commit e42cbf651152f4f3ada7502cf8002aa8729e147f +Subproject commit 1e49e0b7e00b7be2b971c4ac3b247d7255e09603 From 2f65462ce0b73bb13f20ea0197b1f93724dbdcbe Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sun, 1 Feb 2015 11:39:59 -0800 Subject: [PATCH 149/875] Trailing slash fix. --- grammars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammars.yml b/grammars.yml index dff21de3..85d06129 100644 --- a/grammars.yml +++ b/grammars.yml @@ -24,7 +24,7 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy -vendor/grammars/AutoHotkey/: +vendor/grammars/AutoHotkey: - source.ahk vendor/grammars/ColdFusion: - source.cfscript From 0c60078d277caaa44d7b2a7f92f366539309c85d Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:16:45 +0100 Subject: [PATCH 150/875] Grammar for APL from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-apl | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-apl diff --git a/.gitmodules b/.gitmodules index e10defdf..86a2329d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -561,3 +561,6 @@ [submodule "vendor/grammars/Modelica"] path = vendor/grammars/Modelica url = https://github.com/BorisChumichev/modelicaSublimeTextPackage +[submodule "vendor/grammars/sublime-apl"] + path = vendor/grammars/sublime-apl + url = https://github.com/StoneCypher/sublime-apl diff --git a/grammars.yml b/grammars.yml index 85d06129..d6b95b6e 100644 --- a/grammars.yml +++ b/grammars.yml @@ -408,6 +408,8 @@ vendor/grammars/standard-ml.tmbundle: - source.ml vendor/grammars/sublime-MuPAD: - source.mupad +vendor/grammars/sublime-apl/: +- source.apl vendor/grammars/sublime-befunge: - source.befunge vendor/grammars/sublime-better-typescript: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4cbad8e8..14ee70a6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -54,7 +54,7 @@ APL: extensions: - .apl - .dyalog - tm_scope: none + tm_scope: source.apl ace_mode: text ASP: diff --git a/vendor/grammars/sublime-apl b/vendor/grammars/sublime-apl new file mode 160000 index 00000000..a8c36775 --- /dev/null +++ b/vendor/grammars/sublime-apl @@ -0,0 +1 @@ +Subproject commit a8c36775d58c9a80f3b7f572cb4fac5976a6af99 From bef473a48b939cc91cedc08a41543e72c74b5166 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:27:14 +0100 Subject: [PATCH 151/875] Samples for CLIPS --- samples/CLIPS/demo.clp | 343 +++++++++++++++++++++++++++++++++++++++ samples/CLIPS/sudoku.clp | 281 ++++++++++++++++++++++++++++++++ 2 files changed, 624 insertions(+) create mode 100644 samples/CLIPS/demo.clp create mode 100644 samples/CLIPS/sudoku.clp diff --git a/samples/CLIPS/demo.clp b/samples/CLIPS/demo.clp new file mode 100644 index 00000000..45cb4828 --- /dev/null +++ b/samples/CLIPS/demo.clp @@ -0,0 +1,343 @@ +;;;*************************** +;;;* DEFFACTS KNOWLEDGE BASE * +;;;*************************** + +(deffacts MAIN::knowledge-base + (welcome (message WelcomeMessage)) + (goal (variable type.animal)) + (legalanswers (values yes no)) + (displayanswers (values "Yes" "No")) + (rule (if backbone is yes) + (then superphylum is backbone)) + (rule (if backbone is no) + (then superphylum is jellyback)) + (question (variable backbone) + (query backbone.query)) + (rule (if superphylum is backbone and + warm.blooded is yes) + (then phylum is warm)) + (rule (if superphylum is backbone and + warm.blooded is no) + (then phylum is cold)) + (question (variable warm.blooded) + (query warm.blooded.query)) + (rule (if superphylum is jellyback and + live.prime.in.soil is yes) + (then phylum is soil)) + (rule (if superphylum is jellyback and + live.prime.in.soil is no) + (then phylum is elsewhere)) + (question (variable live.prime.in.soil) + (query live.prime.in.soil.query)) + (rule (if phylum is warm and + has.breasts is yes) + (then class is breasts)) + (rule (if phylum is warm and + has.breasts is no) + (then type.animal is bird)) + (question (variable has.breasts) + (query has.breasts.query)) + (rule (if phylum is cold and + always.in.water is yes) + (then class is water)) + (rule (if phylum is cold and + always.in.water is no) + (then class is dry)) + (question (variable always.in.water) + (query always.in.water.query)) + (rule (if phylum is soil and + flat.bodied is yes) + (then type.animal is flatworm)) + (rule (if phylum is soil and + flat.bodied is no) + (then type.animal is worm.leech)) + (question (variable flat.bodied) + (query flat.bodied.query)) + (rule (if phylum is elsewhere and + body.in.segments is yes) + (then class is segments)) + (rule (if phylum is elsewhere and + body.in.segments is no) + (then class is unified)) + (question (variable body.in.segments) + (query body.in.segments.query)) + (rule (if class is breasts and + can.eat.meat is yes) + (then order is meat)) + (rule (if class is breasts and + can.eat.meat is no) + (then order is vegy)) + (question (variable can.eat.meat) + (query can.eat.meat.query)) + (rule (if class is water and + boney is yes) + (then type.animal is fish)) + (rule (if class is water and + boney is no) + (then type.animal is shark.ray)) + (question (variable boney) + (query boney.query)) + (rule (if class is dry and + scaly is yes) + (then order is scales)) + (rule (if class is dry and + scaly is no) + (then order is soft)) + (question (variable scaly) + (query scaly.query)) + (rule (if class is segments and + shell is yes) + (then order is shell)) + (rule (if class is segments and + shell is no) + (then type.animal is centipede.millipede.insect)) + (question (variable shell) + (query shell.query)) + (rule (if class is unified and + digest.cells is yes) + (then order is cells)) + (rule (if class is unified and + digest.cells is no) + (then order is stomach)) + (question (variable digest.cells) + (query digest.cells.query)) + (rule (if order is meat and + fly is yes) + (then type.animal is bat)) + (rule (if order is meat and + fly is no) + (then family is nowings)) + (question (variable fly) + (query fly.query)) + (rule (if order is vegy and + hooves is yes) + (then family is hooves)) + (rule (if order is vegy and + hooves is no) + (then family is feet)) + (question (variable hooves) + (query hooves.query)) + (rule (if order is scales and + rounded.shell is yes) + (then type.animal is turtle)) + (rule (if order is scales and + rounded.shell is no) + (then family is noshell)) + (question (variable rounded.shell) + (query rounded.shell.query)) + (rule (if order is soft and + jump is yes) + (then type.animal is frog)) + (rule (if order is soft and + jump is no) + (then type.animal is salamander)) + (question (variable jump) + (query jump.query)) + (rule (if order is shell and + tail is yes) + (then type.animal is lobster)) + (rule (if order is shell and + tail is no) + (then type.animal is crab)) + (question (variable tail) + (query tail.query)) + (rule (if order is cells and + stationary is yes) + (then family is stationary)) + (rule (if order is cells and + stationary is no) + (then type.animal is jellyfish)) + (question (variable stationary) + (query stationary.query)) + (rule (if order is stomach and + multicelled is yes) + (then family is multicelled)) + (rule (if order is stomach and + multicelled is no) + (then type.animal is protozoa)) + (question (variable multicelled) + (query multicelled.query)) + (rule (if family is nowings and + opposing.thumb is yes) + (then genus is thumb)) + (rule (if family is nowings and + opposing.thumb is no) + (then genus is nothumb)) + (question (variable opposing.thumb) + (query opposing.thumb.query)) + (rule (if family is hooves and + two.toes is yes) + (then genus is twotoes)) + (rule (if family is hooves and + two.toes is no) + (then genus is onetoe)) + (question (variable two.toes) + (query two.toes.query)) + (rule (if family is feet and + live.in.water is yes) + (then genus is water)) + (rule (if family is feet and + live.in.water is no) + (then genus is dry)) + (question (variable live.in.water) + (query live.in.water.query)) + (rule (if family is noshell and + limbs is yes) + (then type.animal is crocodile.alligator)) + (rule (if family is noshell and + limbs is no) + (then type.animal is snake)) + (question (variable limbs) + (query limbs.query)) + (rule (if family is stationary and + spikes is yes) + (then type.animal is sea.anemone)) + (rule (if family is stationary and + spikes is no) + (then type.animal is coral.sponge)) + (question (variable spikes) + (query spikes.query)) + (rule (if family is multicelled and + spiral.shell is yes) + (then type.animal is snail)) + (rule (if family is multicelled and + spiral.shell is no) + (then genus is noshell)) + (question (variable spiral.shell) + (query spiral.shell.query)) + (rule (if genus is thumb and + prehensile.tail is yes) + (then type.animal is monkey)) + (rule (if genus is thumb and + prehensile.tail is no) + (then species is notail)) + (question (variable prehensile.tail) + (query prehensile.tail.query)) + (rule (if genus is nothumb and + over.400 is yes) + (then species is 400)) + (rule (if genus is nothumb and + over.400 is no) + (then species is under400)) + (question (variable over.400) + (query over.400.query)) + (rule (if genus is twotoes and + horns is yes) + (then species is horns)) + (rule (if genus is twotoes and + horns is no) + (then species is nohorns)) + (question (variable horns) + (query horns.query)) + (rule (if genus is onetoe and + plating is yes) + (then type.animal is rhinoceros)) + (rule (if genus is onetoe and + plating is no) + (then type.animal is horse.zebra)) + (question (variable plating) + (query plating.query)) + (rule (if genus is water and + hunted is yes) + (then type.animal is whale)) + (rule (if genus is water and + hunted is no) + (then type.animal is dolphin.porpoise)) + (question (variable hunted) + (query hunted.query)) + (rule (if genus is dry and + front.teeth is yes) + (then species is teeth)) + (rule (if genus is dry and + front.teeth is no) + (then species is noteeth)) + (question (variable front.teeth) + (query front.teeth.query)) + (rule (if genus is noshell and + bivalve is yes) + (then type.animal is clam.oyster)) + (rule (if genus is noshell and + bivalve is no) + (then type.animal is squid.octopus)) + (question (variable bivalve) + (query bivalve.query)) + (rule (if species is notail and + nearly.hairless is yes) + (then type.animal is man)) + (rule (if species is notail and + nearly.hairless is no) + (then subspecies is hair)) + (question (variable nearly.hairless) + (query nearly.hairless.query)) + (rule (if species is 400 and + land.based is yes) + (then type.animal is bear.tiger.lion)) + (rule (if species is 400 and + land.based is no) + (then type.animal is walrus)) + (question (variable land.based) + (query land.based.query)) + (rule (if species is under400 and + thintail is yes) + (then type.animal is cat)) + (rule (if species is under400 and + thintail is no) + (then type.animal is coyote.wolf.fox.dog)) + (question (variable thintail) + (query thintail.query)) + (rule (if species is nohorns and + lives.in.desert is yes) + (then type.animal is camel)) + (rule (if species is nohorns and + lives.in.desert is no and + semi.aquatic is no) + (then type.animal is giraffe)) + (rule (if species is nohorns and + lives.in.desert is no and + semi.aquatic is yes) + (then type.animal is hippopotamus)) + (question (variable lives.in.desert) + (query lives.in.desert.query)) + (question (variable semi.aquatic) + (query semi.aquatic.query)) + (rule (if species is teeth and + large.ears is yes) + (then type.animal is rabbit)) + (rule (if species is teeth and + large.ears is no) + (then type.animal is rat.mouse.squirrel.beaver.porcupine)) + (question (variable large.ears) + (query large.ears.query)) + (rule (if species is noteeth and + pouch is yes) + (then type.animal is kangaroo.koala.bear)) + (rule (if species is noteeth and + pouch is no) + (then type.animal is mole.shrew.elephant)) + (question (variable pouch) + (query pouch.query)) + (rule (if subspecies is hair and + long.powerful.arms is yes) + (then type.animal is orangutan.gorilla.chimpanzee)) + (rule (if subspecies is hair and + long.powerful.arms is no) + (then type.animal is baboon)) + (question (variable long.powerful.arms) + (query long.powerful.arms.query)) + (rule (if species is horns and + fleece is yes) + (then type.animal is sheep.goat)) + (rule (if species is horns and + fleece is no) + (then subsubspecies is nofleece)) + (question (variable fleece) + (query fleece.query)) + (rule (if subsubspecies is nofleece and + domesticated is yes) + (then type.animal is cow)) + (rule (if subsubspecies is nofleece and + domesticated is no) + (then type.animal is deer.moose.antelope)) + (question (variable domesticated) + (query domesticated.query)) + (answer (prefix "I think your animal is a ") (variable type.animal) (postfix "."))) diff --git a/samples/CLIPS/sudoku.clp b/samples/CLIPS/sudoku.clp new file mode 100644 index 00000000..cbdbb92d --- /dev/null +++ b/samples/CLIPS/sudoku.clp @@ -0,0 +1,281 @@ +;;; http://www.angusj.com/sudoku/hints +;;; http://www.scanraid.com/BasicStrategies.htm +;;; http://www.sudokuoftheday.com/pages/techniques-overview +;;; http://www.sudokuonline.us/sudoku_solving_techniques +;;; http://www.sadmansoftware.com/sudoku/techniques.htm +;;; http://www.krazydad.com/blog/2005/09/29/an-index-of-sudoku-strategies/ + +;;; ####################### +;;; DEFTEMPLATES & DEFFACTS +;;; ####################### + +(deftemplate possible + (slot row) + (slot column) + (slot value) + (slot group) + (slot id)) + +(deftemplate impossible + (slot id) + (slot value) + (slot priority) + (slot reason)) + +(deftemplate technique-employed + (slot reason) + (slot priority)) + +(deftemplate technique + (slot name) + (slot priority)) + +(deffacts startup + (phase grid-values)) + +(deftemplate size-value + (slot size) + (slot value)) + +(deffacts values + (size-value (size 1) (value 1)) + (size-value (size 2) (value 2)) + (size-value (size 2) (value 3)) + (size-value (size 2) (value 4)) + (size-value (size 3) (value 5)) + (size-value (size 3) (value 6)) + (size-value (size 3) (value 7)) + (size-value (size 3) (value 8)) + (size-value (size 3) (value 9)) + (size-value (size 4) (value 10)) + (size-value (size 4) (value 11)) + (size-value (size 4) (value 12)) + (size-value (size 4) (value 13)) + (size-value (size 4) (value 14)) + (size-value (size 4) (value 15)) + (size-value (size 4) (value 16)) + (size-value (size 5) (value 17)) + (size-value (size 5) (value 18)) + (size-value (size 5) (value 19)) + (size-value (size 5) (value 20)) + (size-value (size 5) (value 21)) + (size-value (size 5) (value 22)) + (size-value (size 5) (value 23)) + (size-value (size 5) (value 24)) + (size-value (size 5) (value 25))) + +;;; ########### +;;; SETUP RULES +;;; ########### + +;;; *********** +;;; stress-test +;;; *********** + +(defrule stress-test + + (declare (salience 10)) + + (phase match) + + (stress-test) + + (priority ?last) + + (not (priority ?p&:(> ?p ?last))) + + (technique (priority ?next&:(> ?next ?last))) + + (not (technique (priority ?p&:(> ?p ?last)&:(< ?p ?next)))) + + => + + (assert (priority ?next))) + +;;; ***************** +;;; enable-techniques +;;; ***************** + +(defrule enable-techniques + + (declare (salience 10)) + + (phase match) + + (size ?) + + (not (possible (value any))) + + => + + (assert (priority 1))) + +;;; ********** +;;; expand-any +;;; ********** + +(defrule expand-any + + (declare (salience 10)) + + (phase expand-any) + + ?f <- (possible (row ?r) (column ?c) (value any) (group ?g) (id ?id)) + + (not (possible (value any) (id ?id2&:(< ?id2 ?id)))) + + (size ?s) + + (size-value (size ?as&:(<= ?as ?s)) (value ?v)) + + (not (possible (row ?r) (column ?c) (value ?v))) + + (not (and (size-value (value ?v2&:(< ?v2 ?v))) + + (not (possible (row ?r) (column ?c) (value ?v2))))) + + => + + (assert (possible (row ?r) (column ?c) (value ?v) (group ?g) (id ?id)))) + +;;; ***************** +;;; position-expanded +;;; ***************** + +(defrule position-expanded + + (declare (salience 10)) + + (phase expand-any) + + ?f <- (possible (row ?r) (column ?c) (value any) (group ?g) (id ?id)) + + (size ?s) + + (not (and (size-value (size ?as&:(<= ?as ?s)) (value ?v)) + + (not (possible (row ?r) (column ?c) (value ?v))))) + + => + + (retract ?f)) + +;;; ########### +;;; PHASE RULES +;;; ########### + +;;; *************** +;;; expand-any-done +;;; *************** + +(defrule expand-any-done + + (declare (salience 10)) + + ?f <- (phase expand-any) + + (not (possible (value any))) + + => + + (retract ?f) + + (assert (phase initial-output)) + (assert (print-position 1 1))) + +;;; *********** +;;; begin-match +;;; *********** + +(defrule begin-match + + (declare (salience -20)) + + ?f <- (phase initial-output) + + => + + (retract ?f) + + (assert (phase match))) + +;;; ***************** +;;; begin-elimination +;;; ***************** + +(defrule begin-elimination + + (declare (salience -20)) + + ?f <- (phase match) + + (not (not (impossible))) + + => + + (retract ?f) + + (assert (phase elimination))) + +;;; ************* +;;; next-priority +;;; ************* + +(defrule next-priority + + (declare (salience -20)) + + (phase match) + + (not (impossible)) + + (priority ?last) + + (not (priority ?p&:(> ?p ?last))) + + (technique (priority ?next&:(> ?next ?last))) + + (not (technique (priority ?p&:(> ?p ?last)&:(< ?p ?next)))) + + => + + (assert (priority ?next))) + +;;; ************ +;;; begin-output +;;; ************ + +(defrule begin-output + + (declare (salience -20)) + + ?f <- (phase match) + + (not (impossible)) + + (priority ?last) + + (not (priority ?p&:(> ?p ?last))) + + (not (technique (priority ?next&:(> ?next ?last)))) + + => + + (retract ?f) + + (assert (phase final-output)) + (assert (print-position 1 1))) + + + + + + + + + + + + + + From 1b0fd752d3c2956b082cfb512a68e5779ebb8b7d Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:29:03 +0100 Subject: [PATCH 152/875] Grammar for CLIPS from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/CLIPS-sublime | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/CLIPS-sublime diff --git a/.gitmodules b/.gitmodules index 86a2329d..de7d78eb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -564,3 +564,6 @@ [submodule "vendor/grammars/sublime-apl"] path = vendor/grammars/sublime-apl url = https://github.com/StoneCypher/sublime-apl +[submodule "vendor/grammars/CLIPS-sublime"] + path = vendor/grammars/CLIPS-sublime + url = https://github.com/psicomante/CLIPS-sublime diff --git a/grammars.yml b/grammars.yml index d6b95b6e..d92ef1f1 100644 --- a/grammars.yml +++ b/grammars.yml @@ -26,6 +26,8 @@ vendor/grammars/Alloy.tmbundle: - source.alloy vendor/grammars/AutoHotkey: - source.ahk +vendor/grammars/CLIPS-sublime: +- source.clips vendor/grammars/ColdFusion: - source.cfscript - source.cfscript.cfc diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 14ee70a6..9b2942fa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -414,7 +414,7 @@ CLIPS: type: programming extensions: - .clp - tm_scope: none + tm_scope: source.clips ace_mode: text CMake: diff --git a/vendor/grammars/CLIPS-sublime b/vendor/grammars/CLIPS-sublime new file mode 160000 index 00000000..f6904baa --- /dev/null +++ b/vendor/grammars/CLIPS-sublime @@ -0,0 +1 @@ +Subproject commit f6904baa78b8b918a7815f4f467fe0ab51c38972 From 8376f1e4a451b47dcb6dec6cc2c4e8b9218b3601 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:34:10 +0100 Subject: [PATCH 153/875] Grammar for Creole from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Creole | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Creole diff --git a/.gitmodules b/.gitmodules index de7d78eb..b6e35f16 100644 --- a/.gitmodules +++ b/.gitmodules @@ -567,3 +567,6 @@ [submodule "vendor/grammars/CLIPS-sublime"] path = vendor/grammars/CLIPS-sublime url = https://github.com/psicomante/CLIPS-sublime +[submodule "vendor/grammars/Creole"] + path = vendor/grammars/Creole + url = https://github.com/Siddley/Creole diff --git a/grammars.yml b/grammars.yml index d92ef1f1..841bb5f4 100644 --- a/grammars.yml +++ b/grammars.yml @@ -33,6 +33,8 @@ vendor/grammars/ColdFusion: - source.cfscript.cfc - text.cfml.basic - text.html.cfm +vendor/grammars/Creole: +- text.html.creole vendor/grammars/Docker.tmbundle: - source.dockerfile vendor/grammars/Elm.tmLanguage: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9b2942fa..5ea7d8e2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -623,7 +623,7 @@ Creole: wrap: true extensions: - .creole - tm_scope: none + tm_scope: text.html.creole ace_mode: text Crystal: diff --git a/vendor/grammars/Creole b/vendor/grammars/Creole new file mode 160000 index 00000000..bac4656c --- /dev/null +++ b/vendor/grammars/Creole @@ -0,0 +1 @@ +Subproject commit bac4656c8d2a000d6c5940a3d3798a856e44396f From 3864e712ef5e5224dd9a6d39d24b26a5bda47077 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:37:07 +0100 Subject: [PATCH 154/875] Grammar for GDScript from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/GDScript-sublime | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/GDScript-sublime diff --git a/.gitmodules b/.gitmodules index b6e35f16..600bc8b3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -570,3 +570,6 @@ [submodule "vendor/grammars/Creole"] path = vendor/grammars/Creole url = https://github.com/Siddley/Creole +[submodule "vendor/grammars/GDScript-sublime"] + path = vendor/grammars/GDScript-sublime + url = https://github.com/beefsack/GDScript-sublime diff --git a/grammars.yml b/grammars.yml index 841bb5f4..682e276d 100644 --- a/grammars.yml +++ b/grammars.yml @@ -39,6 +39,8 @@ vendor/grammars/Docker.tmbundle: - source.dockerfile vendor/grammars/Elm.tmLanguage: - source.elm +vendor/grammars/GDScript-sublime/: +- source.gdscript vendor/grammars/Handlebars: - text.html.handlebars vendor/grammars/IDL-Syntax: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5ea7d8e2..15fcd490 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -976,7 +976,7 @@ GDScript: type: programming extensions: - .gd - tm_scope: none + tm_scope: source.gdscript ace_mode: text GLSL: diff --git a/vendor/grammars/GDScript-sublime b/vendor/grammars/GDScript-sublime new file mode 160000 index 00000000..99a0d512 --- /dev/null +++ b/vendor/grammars/GDScript-sublime @@ -0,0 +1 @@ +Subproject commit 99a0d512248fb85741b00d9d702cf97797de9a4c From 6e9dc2339dac6e0299e648b177cfe970312da7c0 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:41:22 +0100 Subject: [PATCH 155/875] Grammar for Golo from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-golo | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-golo diff --git a/.gitmodules b/.gitmodules index 600bc8b3..a94d0223 100644 --- a/.gitmodules +++ b/.gitmodules @@ -573,3 +573,6 @@ [submodule "vendor/grammars/GDScript-sublime"] path = vendor/grammars/GDScript-sublime url = https://github.com/beefsack/GDScript-sublime +[submodule "vendor/grammars/sublime-golo"] + path = vendor/grammars/sublime-golo + url = https://github.com/TypeUnsafe/sublime-golo diff --git a/grammars.yml b/grammars.yml index 682e276d..3167874d 100644 --- a/grammars.yml +++ b/grammars.yml @@ -427,6 +427,8 @@ vendor/grammars/sublime-cirru: vendor/grammars/sublime-glsl: - source.essl - source.glsl +vendor/grammars/sublime-golo/: +- source.golo vendor/grammars/sublime-idris: - source.idris vendor/grammars/sublime-mask: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 15fcd490..43da697d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1074,7 +1074,7 @@ Golo: color: "#f6a51f" extensions: - .golo - tm_scope: none + tm_scope: source.golo ace_mode: text Gosu: diff --git a/vendor/grammars/sublime-golo b/vendor/grammars/sublime-golo new file mode 160000 index 00000000..2c0707bd --- /dev/null +++ b/vendor/grammars/sublime-golo @@ -0,0 +1 @@ +Subproject commit 2c0707bd4fb11ec354d552bfbc6c8c5febdfd1ad From a901e85c3c995bbb4365fa9cb2ffca8ca9320b51 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:50:34 +0100 Subject: [PATCH 156/875] Sample for J --- samples/J/stwij.ijs | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 samples/J/stwij.ijs diff --git a/samples/J/stwij.ijs b/samples/J/stwij.ijs new file mode 100644 index 00000000..453af90b --- /dev/null +++ b/samples/J/stwij.ijs @@ -0,0 +1,73 @@ +NB. From "Continuing to write in J". +NB. See http://www.jsoftware.com/help/jforc/continuing_to_write_in_j.htm + +empno=: 316 317 319 320 +payrate=: 60 42 44 54 +billrate=: 120 90 90 108 +clientlist=: 10011 10012 10025 +emp_client=: 10012 10025 10012 10025 +hoursworked=: 4 31 $ 8 0 3 10 9 8 8 9 4 0 8 7 10 10 12 9 0 6 8 9 9 9 0 0 10 11 9 7 10 2 0 8 0 0 9 9 8 9 10 0 0 8 8 10 7 10 0 0 7 8 9 8 9 0 4 9 8 9 8 9 0 0 5 0 0 8 9 9 9 9 0 0 8 7 0 0 9 0 2 10 10 9 11 8 0 0 8 9 10 8 9 0 0 9 0 0 9 10 8 6 6 8 0 9 8 10 6 9 7 0 6 8 8 8 9 0 5 8 9 8 8 12 0 0 + +NB. Finds the number of hours each employee worked in the given month. +emphours=: 3 : '+/"1 hoursworked' + +NB. Determines the wages earned by each employee in the given month. +empearnings=: 3 : 'payrate * +/"1 hoursworked' + +NB. Determines the profit brought in by each employee. +empprofit=: 3 : 0 +(billrate - payrate) * +/"1 hoursworked +) + +NB. Returns the amount to bill a given client. +billclient=: 3 : 0 +mask=. emp_client = y ++/ (mask # billrate) * +/"1 mask # hoursworked +) + +NB. Finds for each day of the month the employee who billed the most hours. +dailydrudge=: 3 : 0 +((|: hoursworked) i."1 0 >./ hoursworked) { empno +) + +NB. Returns the employees, in descending order of the profit brought in by each. +producers=: 3 : 'empno \: empprofit 0' + +NB. Returns the clients, in descending order of the profit generated by each. +custbyprofit=: 3 : 0 +clientlist \: +/ (clientlist ="1 0 emp_client) * empprofit 0 +) + +NB. Calculates withholding tax on each employee's earnings. +renderuntocaesar=: 3 : 0 +bktmin=. 0 6000 10000 20000 NB. Four brackets, 0..6000..10000..20000.._ +bktrate=. 0.05 0.10 0.20 0.30 +bktearns=. 0 >. ((1 |.!._ bktmin) <."1 0 empearnings'') -"1 bktmin ++/"1 bktrate *"1 bktearns +) + +NB. Main + +echo 'Problem 1' +echo emphours'' + +echo 'Problem 2' +echo empearnings'' + +echo 'Problem 3' +echo empprofit'' + +echo 'Problem 4' +echo billclient 10025 + +echo 'Problem 5' +echo dailydrudge'' + +echo 'Problem 6' +echo producers'' + +echo 'Problem 7' +echo custbyprofit'' + +echo 'Problem 8' +echo 0j2 ": renderuntocaesar'' From 36a0d760e92efa94ab1dcda738122f94c9c39328 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Feb 2015 21:52:24 +0100 Subject: [PATCH 157/875] Grammar for J from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/JSyntax | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/JSyntax diff --git a/.gitmodules b/.gitmodules index a94d0223..08eff18b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -576,3 +576,6 @@ [submodule "vendor/grammars/sublime-golo"] path = vendor/grammars/sublime-golo url = https://github.com/TypeUnsafe/sublime-golo +[submodule "vendor/grammars/JSyntax"] + path = vendor/grammars/JSyntax + url = https://github.com/bcj/JSyntax diff --git a/grammars.yml b/grammars.yml index 3167874d..e9eddd79 100644 --- a/grammars.yml +++ b/grammars.yml @@ -48,6 +48,8 @@ vendor/grammars/IDL-Syntax: vendor/grammars/Isabelle.tmbundle: - source.isabelle.root - source.isabelle.theory +vendor/grammars/JSyntax/: +- source.j vendor/grammars/Julia.tmbundle: - source.julia vendor/grammars/LiveScript.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 43da697d..c492ed36 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1376,7 +1376,7 @@ J: type: programming extensions: - .ijs - tm_scope: none + tm_scope: source.j ace_mode: text JSON: diff --git a/vendor/grammars/JSyntax b/vendor/grammars/JSyntax new file mode 160000 index 00000000..74971149 --- /dev/null +++ b/vendor/grammars/JSyntax @@ -0,0 +1 @@ +Subproject commit 74971149b5926f800b8eb157925a1670a57846b4 From 034e510ba520050b92ef63a68bcd8ffe93189646 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Feb 2015 21:24:22 +0100 Subject: [PATCH 158/875] Grammar for TXL from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/TXL | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/TXL diff --git a/.gitmodules b/.gitmodules index ee7dad93..77fd2474 100644 --- a/.gitmodules +++ b/.gitmodules @@ -579,3 +579,6 @@ [submodule "vendor/grammars/JSyntax"] path = vendor/grammars/JSyntax url = https://github.com/bcj/JSyntax +[submodule "vendor/grammars/TXL"] + path = vendor/grammars/TXL + url = https://github.com/MikeHoffert/Sublime-Text-TXL-syntax diff --git a/grammars.yml b/grammars.yml index e9eddd79..0e8b5e01 100644 --- a/grammars.yml +++ b/grammars.yml @@ -106,6 +106,8 @@ vendor/grammars/SublimeBrainfuck: - source.bf vendor/grammars/SublimeXtend: - source.xtend +vendor/grammars/TXL/: +- source.txl vendor/grammars/Textmate-Gosu-Bundle: - source.gosu.2 vendor/grammars/VBDotNetSyntax: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c492ed36..6598563e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2921,7 +2921,7 @@ TXL: type: programming extensions: - .txl - tm_scope: none + tm_scope: source.txl ace_mode: text Tcl: diff --git a/vendor/grammars/TXL b/vendor/grammars/TXL new file mode 160000 index 00000000..c1c98dfa --- /dev/null +++ b/vendor/grammars/TXL @@ -0,0 +1 @@ +Subproject commit c1c98dfa86a8510532aee3df99181f9e0487fee8 From 8fe9ec05213ac177ef3e7a4e81ba2f80497cefa5 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Feb 2015 21:37:24 +0100 Subject: [PATCH 159/875] Grammar for G-Code from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 6 ++++++ lib/linguist/languages.yml | 2 +- vendor/grammars/G-Code | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/G-Code diff --git a/.gitmodules b/.gitmodules index 77fd2474..6857325f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -582,3 +582,6 @@ [submodule "vendor/grammars/TXL"] path = vendor/grammars/TXL url = https://github.com/MikeHoffert/Sublime-Text-TXL-syntax +[submodule "vendor/grammars/G-Code"] + path = vendor/grammars/G-Code + url = https://github.com/robotmaster/sublime-text-syntax-highlighting diff --git a/grammars.yml b/grammars.yml index 0e8b5e01..2b1d2c72 100644 --- a/grammars.yml +++ b/grammars.yml @@ -39,6 +39,12 @@ vendor/grammars/Docker.tmbundle: - source.dockerfile vendor/grammars/Elm.tmLanguage: - source.elm +vendor/grammars/G-Code/: +- source.LS +- source.MCPOST +- source.MOD +- source.apt +- source.gcode vendor/grammars/GDScript-sublime/: - source.gdscript vendor/grammars/Handlebars: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 6598563e..2be249ba 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -942,7 +942,7 @@ G-code: - .g - .gco - .gcode - tm_scope: none + tm_scope: source.gcode ace_mode: gcode GAMS: diff --git a/vendor/grammars/G-Code b/vendor/grammars/G-Code new file mode 160000 index 00000000..81e8b03e --- /dev/null +++ b/vendor/grammars/G-Code @@ -0,0 +1 @@ +Subproject commit 81e8b03e3dc71f2c8eddfb389dbda21a320f45c1 From 2044e191a2f42edbf3848a4f069b4d913a8f4b32 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Feb 2015 21:48:27 +0100 Subject: [PATCH 160/875] Grammar for Grace from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/grace-tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/grace-tmbundle diff --git a/.gitmodules b/.gitmodules index 6857325f..5980861a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -585,3 +585,6 @@ [submodule "vendor/grammars/G-Code"] path = vendor/grammars/G-Code url = https://github.com/robotmaster/sublime-text-syntax-highlighting +[submodule "vendor/grammars/grace-tmbundle"] + path = vendor/grammars/grace-tmbundle + url = https://github.com/zmthy/grace-tmbundle diff --git a/grammars.yml b/grammars.yml index 2b1d2c72..ee83c6b0 100644 --- a/grammars.yml +++ b/grammars.yml @@ -227,6 +227,8 @@ vendor/grammars/gnuplot-tmbundle: - source.gnuplot vendor/grammars/go-tmbundle: - source.go +vendor/grammars/grace-tmbundle/: +- source.grace vendor/grammars/gradle.tmbundle: - source.groovy.gradle vendor/grammars/graphviz.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2be249ba..dddded97 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1092,7 +1092,7 @@ Grace: type: programming extensions: - .grace - tm_scope: none + tm_scope: source.grace ace_mode: text Gradle: diff --git a/vendor/grammars/grace-tmbundle b/vendor/grammars/grace-tmbundle new file mode 160000 index 00000000..c342d35c --- /dev/null +++ b/vendor/grammars/grace-tmbundle @@ -0,0 +1 @@ +Subproject commit c342d35c76d6a7dd5cd91157ca5b39481ef59e96 From 8f70604466c9fd8890ddc23e5bf0b6958df78e03 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Feb 2015 21:50:49 +0100 Subject: [PATCH 161/875] Grammar for Ox from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-text-ox | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-text-ox diff --git a/.gitmodules b/.gitmodules index 5980861a..6aa15594 100644 --- a/.gitmodules +++ b/.gitmodules @@ -588,3 +588,6 @@ [submodule "vendor/grammars/grace-tmbundle"] path = vendor/grammars/grace-tmbundle url = https://github.com/zmthy/grace-tmbundle +[submodule "vendor/grammars/sublime-text-ox"] + path = vendor/grammars/sublime-text-ox + url = https://github.com/andreashetland/sublime-text-ox diff --git a/grammars.yml b/grammars.yml index ee83c6b0..d4b76122 100644 --- a/grammars.yml +++ b/grammars.yml @@ -457,6 +457,8 @@ vendor/grammars/sublime-sourcepawn: - source.sp vendor/grammars/sublime-tea: - source.tea +vendor/grammars/sublime-text-ox/: +- source.ox vendor/grammars/sublime_cobol: - source.acucobol - source.cobol diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index dddded97..8f15c38f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2096,7 +2096,7 @@ Ox: - .ox - .oxh - .oxo - tm_scope: none + tm_scope: source.ox ace_mode: text Oxygene: diff --git a/vendor/grammars/sublime-text-ox b/vendor/grammars/sublime-text-ox new file mode 160000 index 00000000..bdd03e09 --- /dev/null +++ b/vendor/grammars/sublime-text-ox @@ -0,0 +1 @@ +Subproject commit bdd03e09fabc0b54567136709cdd33d7641b0e19 From a716d3ad49af20b29246743dabc6dde835a79501 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Mon, 2 Feb 2015 21:48:36 -0800 Subject: [PATCH 162/875] Reverted name Adventure Game Studio back to AGS Script. --- lib/linguist/languages.yml | 2 +- lib/linguist/samples.json | 726 +++++++++--------- .../GlobalScript.asc | 0 .../GlobalScript.ash | 0 .../KeyboardMovement_102.asc | 0 .../KeyboardMovement_102.ash | 0 6 files changed, 364 insertions(+), 364 deletions(-) rename samples/{Adventure Game Studio => AGS Script}/GlobalScript.asc (100%) rename samples/{Adventure Game Studio => AGS Script}/GlobalScript.ash (100%) rename samples/{Adventure Game Studio => AGS Script}/KeyboardMovement_102.asc (100%) rename samples/{Adventure Game Studio => AGS Script}/KeyboardMovement_102.ash (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 164cd90c..a6f0054b 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -28,7 +28,7 @@ ABAP: extensions: - .abap -Adventure Game Studio: +AGS Script: type: programming lexer: C++ color: "#B9D9FF" diff --git a/lib/linguist/samples.json b/lib/linguist/samples.json index 545d2dbf..559ef894 100644 --- a/lib/linguist/samples.json +++ b/lib/linguist/samples.json @@ -3,6 +3,10 @@ "ABAP": [ ".abap" ], + "AGS Script": [ + ".asc", + ".ash" + ], "APL": [ ".apl" ], @@ -12,10 +16,6 @@ ".hats", ".sats" ], - "Adventure Game Studio": [ - ".asc", - ".ash" - ], "Agda": [ ".agda" ], @@ -1116,6 +1116,362 @@ "pos": 2, "endclass.": 1 }, + "AGS Script": { + "function": 54, + "initialize_control_panel": 2, + "(": 281, + ")": 282, + "{": 106, + "gPanel.Centre": 1, + ";": 235, + "gRestartYN.Centre": 1, + "if": 96, + "IsSpeechVoxAvailable": 3, + "lblVoice.Visible": 1, + "false": 26, + "btnVoice.Visible": 1, + "sldVoice.Visible": 1, + "}": 107, + "else": 44, + "SetVoiceMode": 6, + "eSpeechVoiceAndText": 4, + "btnVoice.Text": 9, + "System.SupportsGammaControl": 3, + "sldGamma.Visible": 1, + "lblGamma.Visible": 1, + "//And": 1, + "now": 1, + "set": 7, + "all": 2, + "the": 15, + "defaults": 1, + "System.Volume": 5, + "sldAudio.Value": 3, + "SetGameSpeed": 3, + "sldSpeed.Value": 3, + "sldVoice.Value": 3, + "SetSpeechVolume": 3, + "System.Gamma": 3, + "sldGamma.Value": 3, + "game_start": 1, + "KeyboardMovement.SetMode": 1, + "eKeyboardMovement_Tapping": 3, + "repeatedly_execute": 2, + "IsGamePaused": 4, + "return": 8, + "repeatedly_execute_always": 1, + "show_inventory_window": 3, + "gInventory.Visible": 2, + "true": 18, + "mouse.Mode": 13, + "eModeInteract": 3, + "mouse.UseModeGraphic": 8, + "eModePointer": 8, + "show_save_game_dialog": 3, + "gSaveGame.Visible": 3, + "lstSaveGamesList.FillSaveGameList": 2, + "lstSaveGamesList.ItemCount": 3, + "txtNewSaveName.Text": 5, + "lstSaveGamesList.Items": 3, + "[": 6, + "]": 6, + "gIconbar.Visible": 15, + "show_restore_game_dialog": 3, + "gRestoreGame.Visible": 3, + "lstRestoreGamesList.FillSaveGameList": 1, + "close_save_game_dialog": 4, + "mouse.UseDefaultGraphic": 9, + "close_restore_game_dialog": 4, + "on_key_press": 2, + "eKeyCode": 1, + "keycode": 27, + "eKeyEscape": 5, + "&&": 8, + "gRestartYN.Visible": 6, + "//Use": 1, + "ESC": 1, + "to": 14, + "cancel": 1, + "restart.": 1, + "gPanel.Visible": 11, + "eKeyReturn": 1, + "RestartGame": 2, + "||": 12, + "IsInterfaceEnabled": 3, + "eKeyCtrlQ": 1, + "QuitGame": 3, + "//": 66, + "Ctrl": 1, + "-": 217, + "Q": 1, + "eKeyF5": 1, + "F5": 1, + "eKeyF7": 1, + "F7": 1, + "eKeyF9": 1, + "eKeyF12": 1, + "SaveScreenShot": 1, + "F12": 1, + "eKeyTab": 1, + "Tab": 1, + "show": 1, + "inventory": 2, + "eModeWalkto": 2, + "//Notice": 1, + "this": 1, + "alternate": 1, + "way": 1, + "indicate": 1, + "keycodes.": 1, + "eModeLookat": 1, + "//Note": 1, + "that": 1, + "we": 1, + "do": 1, + "here": 1, + "is": 10, + "modes.": 1, + "//If": 1, + "you": 1, + "want": 1, + "something": 1, + "happen": 1, + "such": 1, + "as": 2, + "GUI": 3, + "buttons": 1, + "highlighting": 1, + "eModeTalkto": 2, + "//you": 1, + "I": 1, + "P": 1, + "G": 1, + "t": 1, + "allow": 1, + "mouse": 2, + "click": 1, + "button": 33, + "eMouseLeft": 4, + "ProcessClick": 2, + "mouse.x": 2, + "mouse.y": 2, + "eMouseRight": 1, + "eMouseWheelSouth": 1, + "mouse.SelectNextMode": 1, + "eMouseMiddle": 1, + "eMouseWheelNorth": 1, + "player.ActiveInventory": 2, + "null": 2, + "//...and": 1, + "player": 13, + "has": 1, + "a": 1, + "selected": 1, + "item": 1, + "mode": 10, + "UseInv.": 1, + "eModeUseinv": 2, + "interface_click": 1, + "int": 18, + "interface": 3, + "btnInvUp_Click": 1, + "GUIControl": 31, + "*control": 31, + "MouseButton": 26, + "invCustomInv.ScrollUp": 1, + "btnInvDown_Click": 1, + "invCustomInv.ScrollDown": 1, + "btnInvOK_Click": 1, + "They": 2, + "pressed": 4, + "OK": 1, + "close": 1, + "btnInvSelect_Click": 1, + "SELECT": 1, + "so": 1, + "switch": 1, + "Get": 1, + "cursor": 1, + "But": 1, + "override": 1, + "appearance": 1, + "look": 1, + "like": 1, + "arrow": 9, + "btnIconInv_Click": 1, + "btnIconCurInv_Click": 1, + "btnIconSave_Click": 2, + "btnIconLoad_Click": 2, + "btnIconExit_Click": 1, + "btnIconAbout_Click": 1, + "cEgo_Look": 1, + "Display": 4, + "cEgo_Interact": 1, + "cEgo_Talk": 1, + "//START": 1, + "OF": 2, + "CONTROL": 2, + "PANEL": 2, + "FUNCTIONS": 2, + "btnSave_OnClick": 1, + "Wait": 3, + "btnIconSave": 1, + "gControl_OnClick": 1, + "*theGui": 1, + "btnAbout_OnClick": 1, + "btnQuit_OnClick": 1, + "btnLoad_OnClick": 1, + "btnIconLoad": 1, + "btnResume_OnClick": 1, + "sldAudio_OnChange": 1, + "sldVoice_OnChange": 1, + "btnVoice_OnClick": 1, + "eSpeechVoiceOnly": 1, + "eSpeechTextOnly": 1, + "sldGamma_OnChange": 1, + "btnDefault_OnClick": 1, + "//END": 1, + "dialog_request": 1, + "param": 1, + "sldSpeed_OnChange": 1, + "btnRestart_OnClick": 1, + "btnRestartYes_OnClick": 1, + "btnRestartNo_OnClick": 1, + "btnCancelSave_OnClick": 1, + "btnSaveGame_OnClick": 2, + "gameSlotToSaveInto": 3, + "+": 7, + "i": 5, + "while": 1, + "<": 1, + "lstSaveGamesList.SaveGameSlots": 2, + "SaveGameSlot": 1, + "btnCancelRestore_OnClick": 1, + "btnRestoreGame_OnClick": 1, + "lstRestoreGamesList.SelectedIndex": 2, + "RestoreGameSlot": 1, + "lstRestoreGamesList.SaveGameSlots": 1, + "lstSaveGamesList_OnSelectionCh": 1, + "lstSaveGamesList.SelectedIndex": 3, + "txtNewSaveName_OnActivate": 1, + "control": 2, + "btnDeleteSave_OnClick": 1, + "DeleteSaveSlot": 1, + "//****************************************************************************************************": 8, + "#define": 2, + "DISTANCE": 25, + "distance": 1, + "walks": 1, + "in": 1, + "Tapping": 2, + "before": 1, + "he": 1, + "stops": 1, + "enum": 2, + "KeyboardMovement_Directions": 4, + "eKeyboardMovement_Stop": 9, + "eKeyboardMovement_DownLeft": 5, + "eKeyboardMovement_Down": 5, + "eKeyboardMovement_DownRight": 5, + "eKeyboardMovement_Left": 5, + "eKeyboardMovement_Right": 5, + "eKeyboardMovement_UpLeft": 5, + "eKeyboardMovement_Up": 5, + "eKeyboardMovement_UpRight": 5, + "KeyboardMovement_KeyDown": 5, + "down": 9, + "KeyboardMovement_KeyLeft": 5, + "left": 4, + "KeyboardMovement_KeyRight": 5, + "right": 5, + "KeyboardMovement_KeyUp": 5, + "up": 4, + "KeyboardMovement_KeyDownRight": 3, + "PgDn": 2, + "numpad": 8, + "KeyboardMovement_KeyUpRight": 3, + "PgUp": 2, + "KeyboardMovement_KeyDownLeft": 3, + "End": 2, + "KeyboardMovement_KeyUpLeft": 3, + "Home": 2, + "KeyboardMovement_KeyStop": 3, + "KeyboardMovement_Modes": 4, + "KeyboardMovement_Mode": 4, + "eKeyboardMovement_None": 2, + "stores": 2, + "current": 8, + "keyboard": 1, + "disabled": 5, + "by": 1, + "default": 1, + "KeyboardMovement_CurrentDirection": 7, + "walking": 1, + "direction": 22, + "of": 6, + "character": 11, + "static": 2, + "KeyboardMovement": 2, + "SetMode": 2, + "Pressing": 1, + "eKeyboardMovement_Pressing": 2, + "player.on": 2, + "game": 2, + "paused": 2, + "module": 2, + "or": 8, + "hidden": 2, + "quit": 2, + "newdirection": 43, + "declare": 4, + "variable": 2, + "storing": 4, + "new": 19, + "get": 2, + "IsKeyPressed": 17, + "&": 4, + "arrows": 4, + "numeric": 2, + "pad": 2, + "held": 4, + "Down": 2, + "Right": 2, + "none": 1, + "above": 2, + "it": 1, + "stop": 7, + "regardless": 1, + "whether": 1, + "some": 1, + "are": 1, + "different": 2, + "from": 2, + "player.StopMoving": 3, + "Stop": 4, + "command": 4, + "movement": 2, + "NOT": 2, + "dx": 20, + "dy": 20, + "variables": 2, + "walk": 4, + "coordinates": 4, + "player.WalkStraight": 2, + "player.x": 2, + "player.y": 2, + "eNoBlock": 2, + "update": 3, + "key": 2, + "same": 1, + "on_event": 1, + "EventType": 1, + "event": 2, + "data": 1, + "eEventLeaveRoom": 1, + "KeyboardMovement_VERSION": 1, + "struct": 1, + "import": 1 + }, "APL": { "You": 1, "can": 2, @@ -1701,362 +2057,6 @@ "Yoneda_bool_list0": 3, "myboolist1": 2 }, - "Adventure Game Studio": { - "function": 54, - "initialize_control_panel": 2, - "(": 281, - ")": 282, - "{": 106, - "gPanel.Centre": 1, - ";": 235, - "gRestartYN.Centre": 1, - "if": 96, - "IsSpeechVoxAvailable": 3, - "lblVoice.Visible": 1, - "false": 26, - "btnVoice.Visible": 1, - "sldVoice.Visible": 1, - "}": 107, - "else": 44, - "SetVoiceMode": 6, - "eSpeechVoiceAndText": 4, - "btnVoice.Text": 9, - "System.SupportsGammaControl": 3, - "sldGamma.Visible": 1, - "lblGamma.Visible": 1, - "//And": 1, - "now": 1, - "set": 7, - "all": 2, - "the": 15, - "defaults": 1, - "System.Volume": 5, - "sldAudio.Value": 3, - "SetGameSpeed": 3, - "sldSpeed.Value": 3, - "sldVoice.Value": 3, - "SetSpeechVolume": 3, - "System.Gamma": 3, - "sldGamma.Value": 3, - "game_start": 1, - "KeyboardMovement.SetMode": 1, - "eKeyboardMovement_Tapping": 3, - "repeatedly_execute": 2, - "IsGamePaused": 4, - "return": 8, - "repeatedly_execute_always": 1, - "show_inventory_window": 3, - "gInventory.Visible": 2, - "true": 18, - "mouse.Mode": 13, - "eModeInteract": 3, - "mouse.UseModeGraphic": 8, - "eModePointer": 8, - "show_save_game_dialog": 3, - "gSaveGame.Visible": 3, - "lstSaveGamesList.FillSaveGameList": 2, - "lstSaveGamesList.ItemCount": 3, - "txtNewSaveName.Text": 5, - "lstSaveGamesList.Items": 3, - "[": 6, - "]": 6, - "gIconbar.Visible": 15, - "show_restore_game_dialog": 3, - "gRestoreGame.Visible": 3, - "lstRestoreGamesList.FillSaveGameList": 1, - "close_save_game_dialog": 4, - "mouse.UseDefaultGraphic": 9, - "close_restore_game_dialog": 4, - "on_key_press": 2, - "eKeyCode": 1, - "keycode": 27, - "eKeyEscape": 5, - "&&": 8, - "gRestartYN.Visible": 6, - "//Use": 1, - "ESC": 1, - "to": 14, - "cancel": 1, - "restart.": 1, - "gPanel.Visible": 11, - "eKeyReturn": 1, - "RestartGame": 2, - "||": 12, - "IsInterfaceEnabled": 3, - "eKeyCtrlQ": 1, - "QuitGame": 3, - "//": 66, - "Ctrl": 1, - "-": 217, - "Q": 1, - "eKeyF5": 1, - "F5": 1, - "eKeyF7": 1, - "F7": 1, - "eKeyF9": 1, - "eKeyF12": 1, - "SaveScreenShot": 1, - "F12": 1, - "eKeyTab": 1, - "Tab": 1, - "show": 1, - "inventory": 2, - "eModeWalkto": 2, - "//Notice": 1, - "this": 1, - "alternate": 1, - "way": 1, - "indicate": 1, - "keycodes.": 1, - "eModeLookat": 1, - "//Note": 1, - "that": 1, - "we": 1, - "do": 1, - "here": 1, - "is": 10, - "modes.": 1, - "//If": 1, - "you": 1, - "want": 1, - "something": 1, - "happen": 1, - "such": 1, - "as": 2, - "GUI": 3, - "buttons": 1, - "highlighting": 1, - "eModeTalkto": 2, - "//you": 1, - "I": 1, - "P": 1, - "G": 1, - "t": 1, - "allow": 1, - "mouse": 2, - "click": 1, - "button": 33, - "eMouseLeft": 4, - "ProcessClick": 2, - "mouse.x": 2, - "mouse.y": 2, - "eMouseRight": 1, - "eMouseWheelSouth": 1, - "mouse.SelectNextMode": 1, - "eMouseMiddle": 1, - "eMouseWheelNorth": 1, - "player.ActiveInventory": 2, - "null": 2, - "//...and": 1, - "player": 13, - "has": 1, - "a": 1, - "selected": 1, - "item": 1, - "mode": 10, - "UseInv.": 1, - "eModeUseinv": 2, - "interface_click": 1, - "int": 18, - "interface": 3, - "btnInvUp_Click": 1, - "GUIControl": 31, - "*control": 31, - "MouseButton": 26, - "invCustomInv.ScrollUp": 1, - "btnInvDown_Click": 1, - "invCustomInv.ScrollDown": 1, - "btnInvOK_Click": 1, - "They": 2, - "pressed": 4, - "OK": 1, - "close": 1, - "btnInvSelect_Click": 1, - "SELECT": 1, - "so": 1, - "switch": 1, - "Get": 1, - "cursor": 1, - "But": 1, - "override": 1, - "appearance": 1, - "look": 1, - "like": 1, - "arrow": 9, - "btnIconInv_Click": 1, - "btnIconCurInv_Click": 1, - "btnIconSave_Click": 2, - "btnIconLoad_Click": 2, - "btnIconExit_Click": 1, - "btnIconAbout_Click": 1, - "cEgo_Look": 1, - "Display": 4, - "cEgo_Interact": 1, - "cEgo_Talk": 1, - "//START": 1, - "OF": 2, - "CONTROL": 2, - "PANEL": 2, - "FUNCTIONS": 2, - "btnSave_OnClick": 1, - "Wait": 3, - "btnIconSave": 1, - "gControl_OnClick": 1, - "*theGui": 1, - "btnAbout_OnClick": 1, - "btnQuit_OnClick": 1, - "btnLoad_OnClick": 1, - "btnIconLoad": 1, - "btnResume_OnClick": 1, - "sldAudio_OnChange": 1, - "sldVoice_OnChange": 1, - "btnVoice_OnClick": 1, - "eSpeechVoiceOnly": 1, - "eSpeechTextOnly": 1, - "sldGamma_OnChange": 1, - "btnDefault_OnClick": 1, - "//END": 1, - "dialog_request": 1, - "param": 1, - "sldSpeed_OnChange": 1, - "btnRestart_OnClick": 1, - "btnRestartYes_OnClick": 1, - "btnRestartNo_OnClick": 1, - "btnCancelSave_OnClick": 1, - "btnSaveGame_OnClick": 2, - "gameSlotToSaveInto": 3, - "+": 7, - "i": 5, - "while": 1, - "<": 1, - "lstSaveGamesList.SaveGameSlots": 2, - "SaveGameSlot": 1, - "btnCancelRestore_OnClick": 1, - "btnRestoreGame_OnClick": 1, - "lstRestoreGamesList.SelectedIndex": 2, - "RestoreGameSlot": 1, - "lstRestoreGamesList.SaveGameSlots": 1, - "lstSaveGamesList_OnSelectionCh": 1, - "lstSaveGamesList.SelectedIndex": 3, - "txtNewSaveName_OnActivate": 1, - "control": 2, - "btnDeleteSave_OnClick": 1, - "DeleteSaveSlot": 1, - "//****************************************************************************************************": 8, - "#define": 2, - "DISTANCE": 25, - "distance": 1, - "walks": 1, - "in": 1, - "Tapping": 2, - "before": 1, - "he": 1, - "stops": 1, - "enum": 2, - "KeyboardMovement_Directions": 4, - "eKeyboardMovement_Stop": 9, - "eKeyboardMovement_DownLeft": 5, - "eKeyboardMovement_Down": 5, - "eKeyboardMovement_DownRight": 5, - "eKeyboardMovement_Left": 5, - "eKeyboardMovement_Right": 5, - "eKeyboardMovement_UpLeft": 5, - "eKeyboardMovement_Up": 5, - "eKeyboardMovement_UpRight": 5, - "KeyboardMovement_KeyDown": 5, - "down": 9, - "KeyboardMovement_KeyLeft": 5, - "left": 4, - "KeyboardMovement_KeyRight": 5, - "right": 5, - "KeyboardMovement_KeyUp": 5, - "up": 4, - "KeyboardMovement_KeyDownRight": 3, - "PgDn": 2, - "numpad": 8, - "KeyboardMovement_KeyUpRight": 3, - "PgUp": 2, - "KeyboardMovement_KeyDownLeft": 3, - "End": 2, - "KeyboardMovement_KeyUpLeft": 3, - "Home": 2, - "KeyboardMovement_KeyStop": 3, - "KeyboardMovement_Modes": 4, - "KeyboardMovement_Mode": 4, - "eKeyboardMovement_None": 2, - "stores": 2, - "current": 8, - "keyboard": 1, - "disabled": 5, - "by": 1, - "default": 1, - "KeyboardMovement_CurrentDirection": 7, - "walking": 1, - "direction": 22, - "of": 6, - "character": 11, - "static": 2, - "KeyboardMovement": 2, - "SetMode": 2, - "Pressing": 1, - "eKeyboardMovement_Pressing": 2, - "player.on": 2, - "game": 2, - "paused": 2, - "module": 2, - "or": 8, - "hidden": 2, - "quit": 2, - "newdirection": 43, - "declare": 4, - "variable": 2, - "storing": 4, - "new": 19, - "get": 2, - "IsKeyPressed": 17, - "&": 4, - "arrows": 4, - "numeric": 2, - "pad": 2, - "held": 4, - "Down": 2, - "Right": 2, - "none": 1, - "above": 2, - "it": 1, - "stop": 7, - "regardless": 1, - "whether": 1, - "some": 1, - "are": 1, - "different": 2, - "from": 2, - "player.StopMoving": 3, - "Stop": 4, - "command": 4, - "movement": 2, - "NOT": 2, - "dx": 20, - "dy": 20, - "variables": 2, - "walk": 4, - "coordinates": 4, - "player.WalkStraight": 2, - "player.x": 2, - "player.y": 2, - "eNoBlock": 2, - "update": 3, - "key": 2, - "same": 1, - "on_event": 1, - "EventType": 1, - "event": 2, - "data": 1, - "eEventLeaveRoom": 1, - "KeyboardMovement_VERSION": 1, - "struct": 1, - "import": 1 - }, "Agda": { "module": 3, "NatCat": 1, @@ -73110,9 +73110,9 @@ }, "language_tokens": { "ABAP": 1500, + "AGS Script": 2717, "APL": 42, "ATS": 4558, - "Adventure Game Studio": 2717, "Agda": 376, "Alloy": 1143, "ApacheConf": 1449, @@ -73325,9 +73325,9 @@ }, "languages": { "ABAP": 1, + "AGS Script": 4, "APL": 1, "ATS": 10, - "Adventure Game Studio": 4, "Agda": 1, "Alloy": 3, "ApacheConf": 3, @@ -73538,5 +73538,5 @@ "fish": 3, "wisp": 1 }, - "md5": "2b2212de51ff03f9b167157bf2ac8e4d" + "md5": "1a8591982ec28c592a742122734c142c" } \ No newline at end of file diff --git a/samples/Adventure Game Studio/GlobalScript.asc b/samples/AGS Script/GlobalScript.asc similarity index 100% rename from samples/Adventure Game Studio/GlobalScript.asc rename to samples/AGS Script/GlobalScript.asc diff --git a/samples/Adventure Game Studio/GlobalScript.ash b/samples/AGS Script/GlobalScript.ash similarity index 100% rename from samples/Adventure Game Studio/GlobalScript.ash rename to samples/AGS Script/GlobalScript.ash diff --git a/samples/Adventure Game Studio/KeyboardMovement_102.asc b/samples/AGS Script/KeyboardMovement_102.asc similarity index 100% rename from samples/Adventure Game Studio/KeyboardMovement_102.asc rename to samples/AGS Script/KeyboardMovement_102.asc diff --git a/samples/Adventure Game Studio/KeyboardMovement_102.ash b/samples/AGS Script/KeyboardMovement_102.ash similarity index 100% rename from samples/Adventure Game Studio/KeyboardMovement_102.ash rename to samples/AGS Script/KeyboardMovement_102.ash From 9fa7adaa61efe51a4f8b2c8bce9c9ba10931d0cc Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Tue, 3 Feb 2015 00:43:53 -0800 Subject: [PATCH 163/875] #1638 New heuristics to distinguish between AsciiDoc, AGS Script, and Public Key. --- lib/linguist/heuristics.rb | 10 ++++++++-- test/test_heuristics.rb | 7 ++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ee1a3625..578dc872 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -150,8 +150,14 @@ module Linguist end end - disambiguate "AsciiDoc", "AGS Script" do |data| - Language["AsciiDoc"] if /^=+(\s|\n)/.match(data) + disambiguate "AsciiDoc", "AGS Script", "Public Key" do |data| + if /^=+(\s|\n)/.match(data) + Language["AsciiDoc"] + elsif /^((\/\/)|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+))\s*[;\(]?/.match(data) + Language["AGS Script"] + else /^-----BEGIN/.match(data) + Language["Public Key"] + end end disambiguate "FORTRAN", "Forth" do |data| diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 3ea4af78..b6890761 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -68,11 +68,12 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["AGS Script", "AsciiDoc"] - def test_asc_asciidoc_by_heuristics + # Candidate languages = ["AGS Script", "AsciiDoc", "Public Key"] + def test_asc_by_heuristics assert_heuristics({ "AsciiDoc" => "AsciiDoc/list.asc", - "AGS Script" => nil + "AGS Script" => "AGS Script/GlobalScript.asc", + "Public Key" => "Public Key/sunCert.asc" }) end From 3c34da8bd39466b77268cebbb57ca13cd467d768 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 3 Feb 2015 12:52:06 +0100 Subject: [PATCH 164/875] Sample for eC --- samples/eC/Designer.ec | 337 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 samples/eC/Designer.ec diff --git a/samples/eC/Designer.ec b/samples/eC/Designer.ec new file mode 100644 index 00000000..38ca035f --- /dev/null +++ b/samples/eC/Designer.ec @@ -0,0 +1,337 @@ +import "ide" + +class Designer : DesignerBase +{ + ~Designer() + { + if(GetActiveDesigner() == this) + { + SetActiveDesigner(null); + } + if(classDesigner) + delete classDesigner; + } + + // *** DesignerBase Implementation *** + + void ModifyCode() + { + codeEditor.ModifyCode(); + } + + void UpdateProperties() + { + codeEditor.DesignerModifiedObject(); + } + + void CodeAddObject(Instance instance, ObjectInfo * object) + { + codeEditor.AddObject(instance, object); + } + + void SheetAddObject(ObjectInfo object) + { + codeEditor.sheet.AddObject(object, object.name, typeData, true); //className, true); + } + + void AddToolBoxClass(Class _class) + { + ((IDEWorkSpace)master).toolBox.AddControl(_class); + } + + void AddDefaultMethod(Instance instance, Instance classInstance) + { + Class _class = instance._class; + Method defaultMethod = null; + + for( ; _class; _class = _class.base) + { + Method method; + int minID = MAXINT; + for(method = (Method)_class.methods.first; method; method = (Method)((BTNode)method).next) + { + if(method.type == virtualMethod) + { + if(!method.dataType) + method.dataType = ProcessTypeString(method.dataTypeString, false); + if(method.vid < minID && (instance == classInstance || (method.dataType.thisClass && eClass_IsDerived(classInstance._class, method.dataType.thisClass.registered)))) + { + defaultMethod = method; + minID = method.vid; + } + } + } + if(defaultMethod) + break; + } + codeEditor.AddMethod(defaultMethod); + } + + bool ObjectContainsCode(ObjectInfo object) + { + // Confirmation if control contains code + if(object.instCode) + { + MembersInit members; + if(object.instCode.members) + { + for(members = object.instCode.members->first; members; members = members.next) + { + if(members.type == methodMembersInit) + { + //if(!Code_IsFunctionEmpty(members.function)) + { + return true; + } + } + } + } + } + return false; + } + + void DeleteObject(ObjectInfo object) + { + if(codeEditor) + codeEditor.DeleteObject(object); + } + + void RenameObject(ObjectInfo object, const char * name) + { + if(object && (name || !object.classDefinition)) + codeEditor.RenameObject(object, name); + } + + bool FindObject(Instance * object, const char * string) + { + ObjectInfo classObject; + for(classObject = codeEditor.classes.first; classObject; classObject = classObject.next) + { + ObjectInfo check; + if(classObject.name && !strcmp(string, classObject.name)) + { + *object = classObject.instance; + break; + } + for(check = classObject.instances.first; check; check = check.next) + { + if(check.name && !strcmp(string, check.name)) + { + *object = check.instance; + break; + } + } + if(check) + return true; + } + return false; + } + + void SelectObjectFromDesigner(ObjectInfo object) + { + codeEditor.SelectObjectFromDesigner(object); + } + + borderStyle = sizable; + isActiveClient = true; + hasVertScroll = true; + hasHorzScroll = true; + hasClose = true; + hasMaximize = true; + hasMinimize = true; + text = $"Designer"; + menu = Menu { }; + anchor = Anchor { left = 300, right = 150, top = 0, bottom = 0 }; + + ToolBox toolBox; + CodeEditor codeEditor; + + Menu fileMenu { menu, $"File", f }; + MenuItem fileSaveItem + { + fileMenu, $"Save", s, ctrlS; + bool NotifySelect(MenuItem selection, Modifiers mods) + { + return codeEditor.MenuFileSave(selection, mods); + } + }; + MenuItem fileSaveAsItem + { + fileMenu, $"Save As...", a; + bool NotifySelect(MenuItem selection, Modifiers mods) + { + return codeEditor.MenuFileSaveAs(selection, mods); + } + }; + bool debugClosing; + + bool OnClose(bool parentClosing) + { + if(!parentClosing) + { + if(codeEditor && codeEditor.inUseDebug && !debugClosing) + { + debugClosing = true; + closing = false; + if(CloseConfirmation(false)) + { + visible = false; + if(modifiedDocument) + OnFileModified({ modified = true }, null); + } + debugClosing = false; + return false; + } + if(codeEditor && !codeEditor.closing && !debugClosing) + { + if(!codeEditor.visible) + { + if(!codeEditor.Destroy(0)) + return false; + else + codeEditor = null; + } + else + { + visible = false; + return false; + } + } + } + return true; + } + + bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct) + { + if(active) + { + codeEditor.EnsureUpToDate(); + codeEditor.fixCaret = true; + /* + if(classDesigner) + classDesigner.Activate(); + */ + } + return true; + } + + bool OnKeyHit(Key key, unichar ch) + { + return codeEditor.sheet.OnKeyHit(key, ch); + } + + watch(modifiedDocument) + { + fileSaveItem.disabled = !modifiedDocument && codeEditor.fileName; + }; + + // *** METHODS ACCESSED FROM PROPERTY SHEET/TOOLBOX/CODE EDITOR *** + void Reset() + { + if(classDesigner) + { + classDesigner.Reset(); + classDesigner.SelectObject(null, null); + classDesigner.Destroy(0); + delete classDesigner; + } + } + + void FillToolBox() + { + if(this && classDesigner) + classDesigner.ListToolBoxClasses(this); + } + + void SelectObject(ObjectInfo object, Instance instance) + { + ClassDesignerBase classDesigner = this.classDesigner; +#ifdef _DEBUG + if(instance && instance._class.module.application != codeEditor.privateModule) + printf("warning: SelectObject: instance._class.module.application != codeEditor.privateModule\n"); +#endif + if(!classDesigner || !instance || classDesigner._class != (Class)eInstance_GetDesigner(instance)) + { + if(classDesigner) + { + classDesigner.SelectObject(null, null); + classDesigner.Destroy(0); + classDesigner = null; + delete this.classDesigner; + } + if(instance) + { + this.classDesigner = classDesigner = eInstance_New(eInstance_GetDesigner(instance)); + incref classDesigner; + //if(!classDesigner.parent) + { + classDesigner.parent = this; + classDesigner.anchor = Anchor { left = 0, right = 0, top = 0, bottom = 0 }; + } + classDesigner.Create(); + } + } + // Call class editor SelectObject + if(classDesigner) + classDesigner.SelectObject(object, instance); + } + + void AddObject() + { + // Call class editor AddObject + if(classDesigner) + classDesigner.AddObject(); + if(visible) + Activate(); + else + codeEditor.Activate(); + } + + void CreateObject(Instance instance, ObjectInfo object, bool isClass, Instance iclass) + { + subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance); + + // Call class editor CreateObject + if(designerClass) + designerClass.CreateObject(this, instance, object, isClass, iclass); + } + + void ::PostCreateObject(Instance instance, ObjectInfo object, bool isClass, Instance iclass) + { + subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance); + + // Call class editor PostCreateObject + if(designerClass) + designerClass.PostCreateObject(instance, object, isClass, iclass); + } + + void ::DroppedObject(Instance instance, ObjectInfo object, bool isClass, Instance iclass) + { + subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance); + + // Call class editor PostCreateObject + if(designerClass) + designerClass.DroppedObject(instance, object, isClass, iclass); + } + + void PrepareTestObject(Instance instance) + { + subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance); + if(designerClass) + designerClass.PrepareTestObject(this, instance); + } + + void ::DestroyObject(Instance instance) + { + subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance); + if(designerClass) + designerClass.DestroyObject(instance); + } + + void ::FixProperty(Property prop, Instance instance) + { + subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance); + if(designerClass) + designerClass.FixProperty(prop, instance); + } +} From 9fe9bf617f162eb2b40e67b6de00c3c28bb6d620 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 3 Feb 2015 12:52:35 +0100 Subject: [PATCH 165/875] Grammar for eC from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/ec.tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/ec.tmbundle diff --git a/.gitmodules b/.gitmodules index 6aa15594..37489aa1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -591,3 +591,6 @@ [submodule "vendor/grammars/sublime-text-ox"] path = vendor/grammars/sublime-text-ox url = https://github.com/andreashetland/sublime-text-ox +[submodule "vendor/grammars/ec.tmbundle"] + path = vendor/grammars/ec.tmbundle + url = https://github.com/ecere/ec.tmbundle diff --git a/grammars.yml b/grammars.yml index d4b76122..9b757868 100644 --- a/grammars.yml +++ b/grammars.yml @@ -200,6 +200,8 @@ vendor/grammars/dylan.tmbundle: - source.makegen vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle: - source.dosbatch +vendor/grammars/ec.tmbundle/: +- source.c.ec vendor/grammars/eiffel.tmbundle: - source.eiffel vendor/grammars/elixir-tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8f15c38f..c5af5967 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3331,7 +3331,7 @@ eC: extensions: - .ec - .eh - tm_scope: none + tm_scope: source.c.ec ace_mode: text edn: diff --git a/vendor/grammars/ec.tmbundle b/vendor/grammars/ec.tmbundle new file mode 160000 index 00000000..b8ec2d32 --- /dev/null +++ b/vendor/grammars/ec.tmbundle @@ -0,0 +1 @@ +Subproject commit b8ec2d32afcaaef5ed7471d80aa4e0cd8717944d From 3a1b17f1f9a652b2d318ecc35260a5e16caf3bbd Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 3 Feb 2015 13:04:06 +0100 Subject: [PATCH 166/875] Add .4TH Forth extension. --- lib/linguist/languages.yml | 1 + samples/Forth/tools.4TH | 133 +++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 samples/Forth/tools.4TH diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c492ed36..660fe5bc 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -918,6 +918,7 @@ Forth: color: "#341708" extensions: - .fth + - .4TH - .4th - .F - .f diff --git a/samples/Forth/tools.4TH b/samples/Forth/tools.4TH new file mode 100644 index 00000000..b08a29fe --- /dev/null +++ b/samples/Forth/tools.4TH @@ -0,0 +1,133 @@ +\ -*- forth -*- Copyright 2004, 2013 Lars Brinkhoff + +( Tools words. ) + +: .s ( -- ) + [char] < emit depth (.) ." > " + 'SP @ >r r@ depth 1- cells + + begin + dup r@ <> + while + dup @ . + /cell - + repeat r> 2drop ; + +: ? @ . ; + +: c? c@ . ; + +: dump bounds do i ? /cell +loop cr ; + +: cdump bounds do i c? loop cr ; + +: again postpone branch , ; immediate + +: see-find ( caddr -- end xt ) + >r here lastxt @ + begin + dup 0= abort" Undefined word" + dup r@ word= if r> drop exit then + nip dup >nextxt + again ; + +: cabs ( char -- |char| ) dup 127 > if 256 swap - then ; + +: xt. ( xt -- ) + ( >name ) count cabs type ; + +: xt? ( xt -- flag ) + >r lastxt @ begin + ?dup + while + dup r@ = if r> 2drop -1 exit then + >nextxt + repeat r> drop 0 ; + +: disassemble ( x -- ) + dup xt? if + ( >name ) count + dup 127 > if ." postpone " then + cabs type + else + . + then ; + +: .addr dup . ; + +: see-line ( addr -- ) + cr ." ( " .addr ." ) " @ disassemble ; + +: see-word ( end xt -- ) + >r ." : " r@ xt. + r@ >body do i see-line /cell +loop + ." ;" r> c@ 127 > if ." immediate" then ; + +: see bl word see-find see-word cr ; + +: #body bl word see-find >body - ; + +: type-word ( end xt -- flag ) + xt. space drop 0 ; + +: traverse-dictionary ( in.. xt -- out.. ) + \ xt execution: ( in.. end xt2 -- in.. 0 | in.. end xt2 -- out.. true ) + >r here lastxt @ begin + ?dup + while + r> 2dup >r >r execute + if r> r> 2drop exit then + r> dup >nextxt + repeat r> 2drop ; + +: words ( -- ) + ['] type-word traverse-dictionary cr ; + +\ ---------------------------------------------------------------------- + +( Tools extension words. ) + +\ ;code + +\ assembler + +\ in kernel: bye + +\ code + +\ cs-pick + +\ cs-roll + +\ editor + +: forget ' dup >nextxt lastxt ! 'here ! reveal ; + +\ Kernel: state + +\ [else] + +\ [if] + +\ [then] + +\ ---------------------------------------------------------------------- + +( Forth2012 tools extension words. ) + +\ TODO: n>r + +\ TODO: nr> + +\ TODO: synonym + +: [undefined] bl-word find nip 0= ; immediate + +: [defined] postpone [undefined] invert ; immediate + +\ ---------------------------------------------------------------------- + +: @+ ( addr -- addr+/cell x ) dup cell+ swap @ ; + +: !+ ( x addr -- addr+/cell ) tuck ! cell+ ; + +: -rot swap >r swap r> ; From eaa03e15ed81bc962812f069ccf92f60ca7d33d4 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Tue, 3 Feb 2015 21:09:32 -0800 Subject: [PATCH 167/875] Improved Heuristics for .asc files. --- lib/linguist/heuristics.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 578dc872..0986e2f0 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -151,12 +151,15 @@ module Linguist end disambiguate "AsciiDoc", "AGS Script", "Public Key" do |data| - if /^=+(\s|\n)/.match(data) + if /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) Language["AsciiDoc"] - elsif /^((\/\/)|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+))\s*[;\(]?/.match(data) + elsif /^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])/.match(data) Language["AGS Script"] - else /^-----BEGIN/.match(data) + elsif /^-----BEGIN/.match(data) Language["Public Key"] + else + # Plain text can also be AsciiDoc. + Language["AsciiDoc"] end end From 96c2f86613e5bd2708bd2fb9e9f23e28f5d7dee4 Mon Sep 17 00:00:00 2001 From: Felipe Oliveira Carvalho Date: Wed, 4 Feb 2015 02:22:08 -0300 Subject: [PATCH 168/875] Add cpplint.py to vendor.yml `cpplint.py` is Google's Python script used for linting C++ files. I have a small C++ project with `cpplint.py` included mistakenly making Python the main language of my project. --- lib/linguist/vendor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 4ba241ca..7394d687 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -24,6 +24,9 @@ - (^|/)config.guess$ - (^|/)config.sub$ +# Linters +- cpplint.py + # Node dependencies - node_modules/ From 2077fa3837b040c943b2e738a234b61931a1292f Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sun, 1 Feb 2015 13:10:39 +0100 Subject: [PATCH 169/875] 'Text' doesn't qualify as a valid modeline language. --- lib/linguist/strategy/modeline.rb | 2 +- test/fixtures/Data/Modelines/example_smalltalk.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 6a07fe3f..f8d8d52a 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,7 +1,7 @@ module Linguist module Strategy class Modeline - EmacsModeline = /-\*-\s*(?:mode:)?\s*(\w+);?\s*-\*-/ + EmacsModeline = /-\*-\s*mode:\s*(\w+);?\s*-\*-/ VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\// # Public: Detects language based on Vim and Emacs modelines diff --git a/test/fixtures/Data/Modelines/example_smalltalk.md b/test/fixtures/Data/Modelines/example_smalltalk.md index 6a927e40..edf4bc13 100644 --- a/test/fixtures/Data/Modelines/example_smalltalk.md +++ b/test/fixtures/Data/Modelines/example_smalltalk.md @@ -1 +1 @@ -; -*-Smalltalk-*- +; -*-mode:Smalltalk-*- From d496aaae5587ec58b2f27e2b68108410de95f905 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 4 Feb 2015 08:28:55 -0600 Subject: [PATCH 170/875] Grammar update --- vendor/grammars/AutoHotkey | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/ats.sublime | 2 +- vendor/grammars/ceylon-sublimetext | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/mercury-tmlanguage | 2 +- vendor/grammars/objective-c.tmbundle | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey index 371f9b23..9b42c86e 160000 --- a/vendor/grammars/AutoHotkey +++ b/vendor/grammars/AutoHotkey @@ -1 +1 @@ -Subproject commit 371f9b23071bf4f8df74bf162b5f4441ec6f0bb0 +Subproject commit 9b42c86e75a78e0f3c37d87476c1d943803fa76e diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 1be33dac..75811539 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 1be33dac08c34595584bb60115d9b31402e3a843 +Subproject commit 75811539ec1a32e72821a540e1ef73fce0febd43 diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime index 1e49e0b7..d954ef6b 160000 --- a/vendor/grammars/ats.sublime +++ b/vendor/grammars/ats.sublime @@ -1 +1 @@ -Subproject commit 1e49e0b7e00b7be2b971c4ac3b247d7255e09603 +Subproject commit d954ef6b27dbdbed6276c7b9b63d3a39d9f69a2c diff --git a/vendor/grammars/ceylon-sublimetext b/vendor/grammars/ceylon-sublimetext index a81ad702..07029801 160000 --- a/vendor/grammars/ceylon-sublimetext +++ b/vendor/grammars/ceylon-sublimetext @@ -1 +1 @@ -Subproject commit a81ad702b450a440c9d366fd2e128ea6a895dabd +Subproject commit 070298013e732cc7233c5169181a4a65c0ad6ef9 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 14b3261b..4ada3288 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 14b3261befc8a2b98fda8bd3203af7845d4cdcb1 +Subproject commit 4ada3288806d32beaf68e84c079653106e366d5f diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index f8dd50c3..92d969b1 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit f8dd50c35cb775cf2db0bf10b77c54093004eec2 +Subproject commit 92d969b19715192928d0c865c87a1aac3ba98dac diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 6359431d..50c5aa0e 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 6359431d8837ea90f245b29def9e2827ff3f040b +Subproject commit 50c5aa0e10f277f83dfe3d0e269a1043271be4df diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 2e8d7c93..16154cef 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 2e8d7c939700548144a2e6f6ef299aa0e3215f76 +Subproject commit 16154cef75708eabc5ebd83c61ad49e8830d835d diff --git a/vendor/grammars/mercury-tmlanguage b/vendor/grammars/mercury-tmlanguage index eaef0b06..1cb8e949 160000 --- a/vendor/grammars/mercury-tmlanguage +++ b/vendor/grammars/mercury-tmlanguage @@ -1 +1 @@ -Subproject commit eaef0b0643b2cea0d7d26056f2dd264c5a652be9 +Subproject commit 1cb8e94922803658040bc29aa732c1671e2afe5b diff --git a/vendor/grammars/objective-c.tmbundle b/vendor/grammars/objective-c.tmbundle index 33c6be40..8387be89 160000 --- a/vendor/grammars/objective-c.tmbundle +++ b/vendor/grammars/objective-c.tmbundle @@ -1 +1 @@ -Subproject commit 33c6be4028e8c52191d84b23773021c17db3de99 +Subproject commit 8387be8975e47cd8e4314cb197e4fc2834159807 From b8f3078966e599f98a469f4c4b401e8db5be2305 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 4 Feb 2015 08:31:36 -0600 Subject: [PATCH 171/875] Bumping version to v4.3.1 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index cffac61e..e8c4f98b 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.3.0" + VERSION = "4.3.1" end From d7b97915145d01f73cacf3d9527e84ccc00c23e8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 4 Feb 2015 19:47:23 +0100 Subject: [PATCH 172/875] Remove grammar for AutoHotkey --- .gitmodules | 3 --- grammars.yml | 2 -- vendor/grammars/AutoHotkey | 1 - 3 files changed, 6 deletions(-) delete mode 160000 vendor/grammars/AutoHotkey diff --git a/.gitmodules b/.gitmodules index 6aa15594..425a486e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -552,9 +552,6 @@ [submodule "vendor/grammars/liquid.tmbundle"] path = vendor/grammars/liquid.tmbundle url = https://github.com/bastilian/validcode-textmate-bundles -[submodule "vendor/grammars/AutoHotkey"] - path = vendor/grammars/AutoHotkey - url = https://github.com/ahkscript/AutoHotkey [submodule "vendor/grammars/ats.sublime"] path = vendor/grammars/ats.sublime url = https://github.com/steinwaywhw/ats-mode-sublimetext diff --git a/grammars.yml b/grammars.yml index d4b76122..2f539728 100644 --- a/grammars.yml +++ b/grammars.yml @@ -24,8 +24,6 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy -vendor/grammars/AutoHotkey: -- source.ahk vendor/grammars/CLIPS-sublime: - source.clips vendor/grammars/ColdFusion: diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey deleted file mode 160000 index 371f9b23..00000000 --- a/vendor/grammars/AutoHotkey +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 371f9b23071bf4f8df74bf162b5f4441ec6f0bb0 From 0479a8998226a7d30db43803b3a6a76b9155cbe6 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 4 Feb 2015 19:57:48 +0100 Subject: [PATCH 173/875] Update URL for AutoHotkey grammar --- .gitmodules | 3 +++ grammars.yml | 2 ++ vendor/grammars/AutoHotkey | 1 + 3 files changed, 6 insertions(+) create mode 160000 vendor/grammars/AutoHotkey diff --git a/.gitmodules b/.gitmodules index 425a486e..d0afdd65 100644 --- a/.gitmodules +++ b/.gitmodules @@ -588,3 +588,6 @@ [submodule "vendor/grammars/sublime-text-ox"] path = vendor/grammars/sublime-text-ox url = https://github.com/andreashetland/sublime-text-ox +[submodule "vendor/grammars/AutoHotkey"] + path = vendor/grammars/AutoHotkey + url = https://github.com/ahkscript/SublimeAutoHotkey diff --git a/grammars.yml b/grammars.yml index 2f539728..1c82a254 100644 --- a/grammars.yml +++ b/grammars.yml @@ -24,6 +24,8 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy +vendor/grammars/AutoHotkey/: +- source.ahk vendor/grammars/CLIPS-sublime: - source.clips vendor/grammars/ColdFusion: diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey new file mode 160000 index 00000000..9b42c86e --- /dev/null +++ b/vendor/grammars/AutoHotkey @@ -0,0 +1 @@ +Subproject commit 9b42c86e75a78e0f3c37d87476c1d943803fa76e From bb9f6ff082409cd44d434873edb89aedca4da8ae Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 4 Feb 2015 13:51:25 -0600 Subject: [PATCH 174/875] Update README.md --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2bebfafe..0234e2f3 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,11 @@ See [Linguist::Generated#generated?](https://github.com/github/linguist/blob/mas ## Overrides -Linguist supports custom overrides for language definitions and vendored paths. Add a `.gitattributes` file to your project using the keys `linguist-language` and `linguist-vendored` with the standard git-style path matchers for the files you want to override. +Linguist supports a number of different custom overrides strategies for language definitions and vendored paths. + +### Using gitattributes + +Add a `.gitattributes` file to your project using the keys `linguist-language` and `linguist-vendored` with the standard git-style path matchers for the files you want to override. Please note that the overrides currently only affect the language statistics for a repository and not the syntax-highlighting of files. @@ -133,6 +137,20 @@ special-vendored-path/* linguist-vendored jquery.js linguist-vendored=false ``` +### Using Emacs and Vim modelines + +Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com + +``` +Vim-style +vim: set filetype=prolog: +vim: set ft=cpp: + +Emacs-style +-*- mode: php;-*- +``` + + ## Installation Github.com is usually running the latest version of the `github-linguist` gem that is released on [RubyGems.org](http://rubygems.org/gems/github-linguist). From 67fae52b32f7e57749dceea1d039324b8425ddfc Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 4 Feb 2015 13:52:08 -0600 Subject: [PATCH 175/875] Vim and Emacs modelines --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0234e2f3..cdc71098 100644 --- a/README.md +++ b/README.md @@ -142,11 +142,11 @@ jquery.js linguist-vendored=false Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com ``` -Vim-style +Vim vim: set filetype=prolog: vim: set ft=cpp: -Emacs-style +Emacs -*- mode: php;-*- ``` From a664b9dd0cb2980e2545c11e5ab428bb7ffb13b6 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 4 Feb 2015 21:26:42 +0100 Subject: [PATCH 176/875] Sample for Inno Setup --- samples/Inno Setup/expat.iss | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 samples/Inno Setup/expat.iss diff --git a/samples/Inno Setup/expat.iss b/samples/Inno Setup/expat.iss new file mode 100644 index 00000000..4ccdbf2c --- /dev/null +++ b/samples/Inno Setup/expat.iss @@ -0,0 +1,69 @@ +; Basic setup script for the Inno Setup installer builder. For more +; information on the free installer builder, see www.jrsoftware.org. +; +; This script was contributed by Tim Peters. +; It was designed for Inno Setup 2.0.19 but works with later versions as well. + +[Setup] +AppName=Expat +AppId=expat +AppVersion=2.1.0 +AppVerName=Expat 2.1.0 +AppCopyright=Copyright 1998-2012 Thai Open Source Software Center, Clark Cooper, and the Expat maintainers +AppPublisher=The Expat Developers +AppPublisherURL=http://www.libexpat.org/ +AppSupportURL=http://www.libexpat.org/ +AppUpdatesURL=http://www.libexpat.org/ +UninstallDisplayName=Expat XML Parser 2.1.0 +VersionInfoVersion=2.1.0 + +DefaultDirName={pf}\Expat 2.1.0 +UninstallFilesDir={app}\Uninstall + +Compression=lzma +SolidCompression=yes +SourceDir=.. +OutputDir=win32 +DisableStartupPrompt=yes +AllowNoIcons=yes +DisableProgramGroupPage=yes +DisableReadyPage=yes + +[Files] +Flags: ignoreversion; Source: win32\bin\Release\xmlwf.exe; DestDir: "{app}\Bin" +Flags: ignoreversion; Source: win32\MANIFEST.txt; DestDir: "{app}" +Flags: ignoreversion; Source: Changes; DestDir: "{app}"; DestName: Changes.txt +Flags: ignoreversion; Source: COPYING; DestDir: "{app}"; DestName: COPYING.txt +Flags: ignoreversion; Source: README; DestDir: "{app}"; DestName: README.txt +Flags: ignoreversion; Source: doc\*.html; DestDir: "{app}\Doc" +Flags: ignoreversion; Source: doc\*.css; DestDir: "{app}\Doc" +Flags: ignoreversion; Source: doc\*.png; DestDir: "{app}\Doc" +Flags: ignoreversion; Source: win32\bin\Release\*.dll; DestDir: "{app}\Bin" +Flags: ignoreversion; Source: win32\bin\Release\*.lib; DestDir: "{app}\Bin" +Flags: ignoreversion; Source: expat.dsw; DestDir: "{app}\Source" +Flags: ignoreversion; Source: win32\README.txt; DestDir: "{app}\Source" +Flags: ignoreversion; Source: bcb5\*.bp*; DestDir: "{app}\Source\bcb5" +Flags: ignoreversion; Source: bcb5\*.mak; DestDir: "{app}\Source\bcb5" +Flags: ignoreversion; Source: bcb5\*.def; DestDir: "{app}\Source\bcb5" +Flags: ignoreversion; Source: bcb5\*.txt; DestDir: "{app}\Source\bcb5" +Flags: ignoreversion; Source: bcb5\*.bat; DestDir: "{app}\Source\bcb5" +Flags: ignoreversion; Source: lib\*.c; DestDir: "{app}\Source\lib" +Flags: ignoreversion; Source: lib\*.h; DestDir: "{app}\Source\lib" +Flags: ignoreversion; Source: lib\*.def; DestDir: "{app}\Source\lib" +Flags: ignoreversion; Source: lib\*.dsp; DestDir: "{app}\Source\lib" +Flags: ignoreversion; Source: examples\*.c; DestDir: "{app}\Source\examples" +Flags: ignoreversion; Source: examples\*.dsp; DestDir: "{app}\Source\examples" +Flags: ignoreversion; Source: tests\*.c; DestDir: "{app}\Source\tests" +Flags: ignoreversion; Source: tests\*.cpp; DestDir: "{app}\Source\tests" +Flags: ignoreversion; Source: tests\*.h; DestDir: "{app}\Source\tests" +Flags: ignoreversion; Source: tests\README.txt; DestDir: "{app}\Source\tests" +Flags: ignoreversion; Source: tests\benchmark\*.c; DestDir: "{app}\Source\tests\benchmark" +Flags: ignoreversion; Source: tests\benchmark\*.ds*; DestDir: "{app}\Source\tests\benchmark" +Flags: ignoreversion; Source: tests\benchmark\README.txt; DestDir: "{app}\Source\tests\benchmark" +Flags: ignoreversion; Source: xmlwf\*.c*; DestDir: "{app}\Source\xmlwf" +Flags: ignoreversion; Source: xmlwf\*.h; DestDir: "{app}\Source\xmlwf" +Flags: ignoreversion; Source: xmlwf\*.dsp; DestDir: "{app}\Source\xmlwf" + +[Messages] +WelcomeLabel1=Welcome to the Expat XML Parser Setup Wizard +WelcomeLabel2=This will install [name/ver] on your computer.%n%nExpat is an XML parser with a C-language API, and is primarily made available to allow developers to build applications which use XML using a portable API and fast implementation.%n%nIt is strongly recommended that you close all other applications you have running before continuing. This will help prevent any conflicts during the installation process. From 2e76ce740e7d64be7d19b07fbc23b35bbaa155c5 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 4 Feb 2015 21:28:36 +0100 Subject: [PATCH 177/875] Grammar for Inno Setup from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/InnoSetup | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/InnoSetup diff --git a/.gitmodules b/.gitmodules index 4e72920d..bb4871bd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -594,3 +594,6 @@ [submodule "vendor/grammars/ec.tmbundle"] path = vendor/grammars/ec.tmbundle url = https://github.com/ecere/ec.tmbundle +[submodule "vendor/grammars/InnoSetup"] + path = vendor/grammars/InnoSetup + url = https://github.com/idleberg/InnoSetup-Sublime-Text diff --git a/grammars.yml b/grammars.yml index 00f2c9b1..d7dd24de 100644 --- a/grammars.yml +++ b/grammars.yml @@ -51,6 +51,8 @@ vendor/grammars/Handlebars: - text.html.handlebars vendor/grammars/IDL-Syntax: - source.webidl +vendor/grammars/InnoSetup/: +- source.inno vendor/grammars/Isabelle.tmbundle: - source.isabelle.root - source.isabelle.theory diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e899046e..28fdae5a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1346,7 +1346,7 @@ Inform 7: Inno Setup: extensions: - .iss - tm_scope: none + tm_scope: source.inno ace_mode: text Io: diff --git a/vendor/grammars/InnoSetup b/vendor/grammars/InnoSetup new file mode 160000 index 00000000..875ba96c --- /dev/null +++ b/vendor/grammars/InnoSetup @@ -0,0 +1 @@ +Subproject commit 875ba96c32df269f5be92bd366d20260f811d844 From 6ca149de1ddebab4eb64939bfd073d840fd523c4 Mon Sep 17 00:00:00 2001 From: Park Hyunwoo Date: Thu, 5 Feb 2015 10:27:14 +0900 Subject: [PATCH 178/875] Missing whitespace --- lib/linguist/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 4ba241ca..9f6b401b 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -40,7 +40,7 @@ # Minified JavaScript and CSS - (\.|-)min\.(js|css)$ -#Stylesheets imported from packages +# Stylesheets imported from packages - ([^\s]*)import\.(css|less|scss|styl)$ # Bootstrap css and js From 3e54d6651caab999f8827c46d60889c27f02af93 Mon Sep 17 00:00:00 2001 From: David Pyke Le Brun Date: Fri, 6 Feb 2015 13:36:40 +0000 Subject: [PATCH 179/875] update of old PL/SQL PLpgSQL and SQLPL patch based on current version see [linguist] add support for oracle PLSQL (#1003) --- .gitmodules | 3 + grammars.yml | 2 + lib/linguist/heuristics.rb | 25 ++++ lib/linguist/languages.yml | 29 +++++ samples/PLSQL/myobject.sql | 15 +++ samples/PLSQL/packagebody.pkb | 58 +++++++++ samples/PLSQL/packageheader.pks | 28 +++++ samples/PLSQL/who_called_me.sql | 65 ++++++++++ samples/PLpgSQL/plpgsql_lint-8.4.sql | 165 ++++++++++++++++++++++++ samples/PLpgSQL/plpgsql_lint-9.0.sql | 165 ++++++++++++++++++++++++ samples/PLpgSQL/plpgsql_lint-9.1.sql | 179 +++++++++++++++++++++++++++ samples/PLpgSQL/plpgsql_lint-9.2.sql | 166 +++++++++++++++++++++++++ samples/PLpgSQL/plpgsql_lint-9.3.sql | 166 +++++++++++++++++++++++++ samples/SQL/create_stuff.sql | 21 ++++ samples/SQL/drop_stuff.sql | 13 ++ samples/SQL/dual.sql | 3 + samples/SQLPL/check_reorg.sql | 39 ++++++ samples/SQLPL/comm_amount.db2 | 30 +++++ samples/SQLPL/drop_table.db2 | 13 ++ samples/SQLPL/runstats.sql | 18 +++ samples/SQLPL/trigger.sql | 9 ++ vendor/grammars/Oracle | 1 + 22 files changed, 1213 insertions(+) create mode 100644 samples/PLSQL/myobject.sql create mode 100644 samples/PLSQL/packagebody.pkb create mode 100644 samples/PLSQL/packageheader.pks create mode 100644 samples/PLSQL/who_called_me.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-8.4.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.0.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.1.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.2.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.3.sql create mode 100644 samples/SQL/create_stuff.sql create mode 100644 samples/SQL/drop_stuff.sql create mode 100644 samples/SQL/dual.sql create mode 100644 samples/SQLPL/check_reorg.sql create mode 100644 samples/SQLPL/comm_amount.db2 create mode 100644 samples/SQLPL/drop_table.db2 create mode 100644 samples/SQLPL/runstats.sql create mode 100644 samples/SQLPL/trigger.sql create mode 160000 vendor/grammars/Oracle diff --git a/.gitmodules b/.gitmodules index 4e72920d..aefae11d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -594,3 +594,6 @@ [submodule "vendor/grammars/ec.tmbundle"] path = vendor/grammars/ec.tmbundle url = https://github.com/ecere/ec.tmbundle +[submodule "vendor/grammars/Oracle"] + path = vendor/grammars/Oracle + url = git@github.com:mulander/oracle.tmbundle.git diff --git a/grammars.yml b/grammars.yml index 00f2c9b1..398c2a35 100644 --- a/grammars.yml +++ b/grammars.yml @@ -68,6 +68,8 @@ vendor/grammars/NimLime: - source.nim - source.nim_filter - source.nimcfg +vendor/grammars/Oracle/: +- source.plsql.oracle vendor/grammars/PHP-Twig.tmbundle: - text.html.twig vendor/grammars/RDoc.tmbundle: diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ee1a3625..3d1899ec 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -223,5 +223,30 @@ module Linguist Language["Text"] end end + disambiguate "PLSQL", "SQLPL", "PLpgSQL", "SQL" do |data| + match = nil + #unique keywords for each language + plpgsqlkeywords = [/^\\i\b/i, /begin ?(work|transaction)?;/i , /AS \$\$/i, /RAISE EXCEPTION/i, /LANGUAGE plpgsql\b/i ] + plsqlkeywords = [ /pragma\b/i , /constructor\W+function\b/i] + #sqlplkeywords = [ ] + + #common keywords that are not SQL + plkeywords = [/begin\b/i,/boolean\b/i, /package\b/i,/exception\b/i, /^end;\b/i ] + + re = Regexp.union(plpgsqlkeywords) + if data.match(re) + match = Language["PLpgSQL"] + else + re = Regexp.union(plsqlkeywords) + if data.match(re) + match= Language["PLSQL"] + else + re = Regexp.union(plkeywords) + match= Language["SQL"] if ! data.match(re) + end + end + + match + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e899046e..d2133a5c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2145,6 +2145,26 @@ PHP: aliases: - inc +#Oracle +PLSQL: + type: programming + ace_mode: sql + tm_scope: Oracle + extensions: + - .pls + - .pkb + - .pks + - .plb + - .sql + +#Postgres +PLpgSQL: + type: programming + ace_mode: pgsql + tm_scope: source.sql + extensions: + - .sql + Pan: type: programming color: '#cc0000' @@ -2675,6 +2695,15 @@ SQL: - .udf - .viw +#IBM DB2 +#SQLPL: + #type: programming + #ace_mode: sql + #tm_scope: source.sql + #extensions: + #- .sql + #- .db2 + STON: type: data group: Smalltalk diff --git a/samples/PLSQL/myobject.sql b/samples/PLSQL/myobject.sql new file mode 100644 index 00000000..dd2a68aa --- /dev/null +++ b/samples/PLSQL/myobject.sql @@ -0,0 +1,15 @@ +create or replace type myobject +AUTHID DEFINER +AS OBJECT +( + m_name varchar2(200), + member function toString RETURN VARCHAR2, + map member function Compare return varchar2 + +) +not instantiable not final; +/ + +prompt create type myarray +create or replace type myarray as table of myobject; +/ diff --git a/samples/PLSQL/packagebody.pkb b/samples/PLSQL/packagebody.pkb new file mode 100644 index 00000000..e5e80d99 --- /dev/null +++ b/samples/PLSQL/packagebody.pkb @@ -0,0 +1,58 @@ +CREATE OR REPLACE PACKAGE BODY linguistpackage +AS + /* + * Package: linguist pacakage body + * Purpose: a sample PLSQL file for linguist to work with + * + * Date: 03/03/2014 + * Author: david pyke le brun + * Comments: initial version + */ + +PROCEDURE proc_1 +IS +BEGIN +NULL; +END; + +-- functions with 1 arg +FUNCTION function1( param1 VARCHAR2 ) RETURN VARCHAR2 +IS +CURSOR c IS +select * from dual; +v c%ROWTYPE; +BEGIN + open c; + fetch c into v; + close c; + + return v; +end; + +FUNCTION function2( param1 NUMBER ) RETURN DATE +IS +BEGIN + return SYSDATE; +end; + +--a few more to use all basic SQL types +FUNCTION function3( param1 TIMESTAMP ) RETURN CHAR +IS +BEGIN +IF 1 = 2 THEN +return 'Y'; +ELSE +return 'N'; +END IF; +return NULL; +END; + + +FUNCTION function4( param1 CLOB ) RETURN BLOB +IS +BEGIN + return null; +END; + +END linguistpackage; +/ diff --git a/samples/PLSQL/packageheader.pks b/samples/PLSQL/packageheader.pks new file mode 100644 index 00000000..408cdca3 --- /dev/null +++ b/samples/PLSQL/packageheader.pks @@ -0,0 +1,28 @@ +CREATE OR REPLACE PACKAGE linguistpackage +AUTHID DEFINER +AS + /* + * Package: linguist pacakage + * Purpose: a sample PLSQL file for linguist to work with + * + * Date: 03/03/2014 + * Author: david pyke le brun + * Comments: initial version + */ + +k_constant CONSTANT NUMBER(10,2) := 3.14; + +--basic procedure +PROCEDURE proc_1; + +-- functions with 1 arg +FUNCTION function1( param1 VARCHAR2 ) RETURN VARCHAR2; +FUNCTION function2( param1 NUMBER ) RETURN DATE; + +--a few more to use all basic SQL types +FUNCTION function3( param1 TIMESTAMP ) RETURN CHAR; +FUNCTION function4( param1 CLOB ) RETURN BLOB; + +END linguistpackage; +/ + diff --git a/samples/PLSQL/who_called_me.sql b/samples/PLSQL/who_called_me.sql new file mode 100644 index 00000000..fee4ed9b --- /dev/null +++ b/samples/PLSQL/who_called_me.sql @@ -0,0 +1,65 @@ +CREATE OR REPLACE PROCEDURE who_called_me +( owner OUT VARCHAR2, + name OUT VARCHAR2, + lineno OUT NUMBER, + caller_t OUT VARCHAR2 , + depth NUMBER DEFAULT 1 +) +AUTHID DEFINER +AS +--depth based version of who_called_me from asktom + call_stack VARCHAR2(4096) default dbms_utility.format_call_stack; + n NUMBER; + found_stack BOOLEAN DEFAULT FALSE; + line VARCHAR2(255); + cnt NUMBER := 0; +BEGIN + LOOP + n := instr( call_stack, chr(10) ); + exit when ( n is NULL or n = 0 ); +-- + line := substr( call_stack, 1, n-1 ); + call_stack := substr( call_stack, n+1 ); +-- + if ( NOT found_stack ) then + if ( line like '%handle%number%name%' ) then + found_stack := TRUE; + end if; + else + cnt := cnt + 1; + -- cnt = 1 is ME + -- cnt = 2 is MY Caller + -- cnt = 3 is Their Caller + if ( cnt = (2+depth) ) then + lineno := to_number(substr( line, 13, 8 )); + line := substr( line, 23 ); --set to rest of line .. change from 21 to 23 + if ( line like 'pr%' ) then + n := length( 'procedure ' ); + elsif ( line like 'fun%' ) then + n := length( 'function ' ); + elsif ( line like 'package body%' ) then + n := length( 'package body ' ); + elsif ( line like 'pack%' ) then + n := length( 'package ' ); + elsif ( line like 'anonymous%' ) then + n := length( 'anonymous block ' ); + else + n := null; + end if; + if ( n is not null ) then + caller_t := ltrim(rtrim(upper(substr( line, 1, n-1 )))); + else + caller_t := 'TRIGGER'; + end if; + + line := substr( line, nvl(n,1) ); + n := instr( line, '.' ); + owner := ltrim(rtrim(substr( line, 1, n-1 ))); + name := LTRIM(RTRIM(SUBSTR( LINE, N+1 ))); + exit; + END IF; + END IF; + END LOOP; +END; +/ + diff --git a/samples/PLpgSQL/plpgsql_lint-8.4.sql b/samples/PLpgSQL/plpgsql_lint-8.4.sql new file mode 100644 index 00000000..72c84469 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-8.4.sql @@ -0,0 +1,165 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type diagnostic_info_type as ( + status text, + message text, + detail text, + row_count int); + +create or replace function f1() +returns void as $$ +declare + dg record; +begin + dg := NULL::diagnostic_info_type; + if false then + dg.status := '00000'; + dg.mistake := 'hello'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/PLpgSQL/plpgsql_lint-9.0.sql b/samples/PLpgSQL/plpgsql_lint-9.0.sql new file mode 100644 index 00000000..72c84469 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.0.sql @@ -0,0 +1,165 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type diagnostic_info_type as ( + status text, + message text, + detail text, + row_count int); + +create or replace function f1() +returns void as $$ +declare + dg record; +begin + dg := NULL::diagnostic_info_type; + if false then + dg.status := '00000'; + dg.mistake := 'hello'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/PLpgSQL/plpgsql_lint-9.1.sql b/samples/PLpgSQL/plpgsql_lint-9.1.sql new file mode 100644 index 00000000..2cc532a1 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.1.sql @@ -0,0 +1,179 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type diagnostic_info_type as ( + status text, + message text, + detail text, + row_count int); + +create or replace function f1() +returns void as $$ +declare dg record; +begin + dg := NULL::diagnostic_info_type; + if false then + dg.status := '00000'; + dg.mistake := 'hello'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare dg record; +begin + if false then + dg := 10,20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + diff --git a/samples/PLpgSQL/plpgsql_lint-9.2.sql b/samples/PLpgSQL/plpgsql_lint-9.2.sql new file mode 100644 index 00000000..73da6e67 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.2.sql @@ -0,0 +1,166 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type _exception_type as ( + state text, + message text, + detail text); + +create or replace function f1() +returns void as $$ +declare + _exception record; +begin + _exception := NULL::_exception_type; +exception when others then + get stacked diagnostics + _exception.state = RETURNED_SQLSTATE, + _exception.message = MESSAGE_TEXT, + _exception.detail = PG_EXCEPTION_DETAIL, + _exception.hint = PG_EXCEPTION_HINT; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/PLpgSQL/plpgsql_lint-9.3.sql b/samples/PLpgSQL/plpgsql_lint-9.3.sql new file mode 100644 index 00000000..73da6e67 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.3.sql @@ -0,0 +1,166 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type _exception_type as ( + state text, + message text, + detail text); + +create or replace function f1() +returns void as $$ +declare + _exception record; +begin + _exception := NULL::_exception_type; +exception when others then + get stacked diagnostics + _exception.state = RETURNED_SQLSTATE, + _exception.message = MESSAGE_TEXT, + _exception.detail = PG_EXCEPTION_DETAIL, + _exception.hint = PG_EXCEPTION_HINT; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/SQL/create_stuff.sql b/samples/SQL/create_stuff.sql new file mode 100644 index 00000000..edfb569c --- /dev/null +++ b/samples/SQL/create_stuff.sql @@ -0,0 +1,21 @@ + +CREATE TABLE x AS SELECT * FROM DUAL; + +CREATE TABLE y ( +col1 NUMBER NOT NULL , +col2 VARCHAR2(200), +col3 DATE, +col4 TIMESTAMP WITH TIME ZONE NOT NULL +); + + +CREATE USER username IDENTIFIED BY password; + +GRANT CONNECT, RESOURCE TO username; + + +GRANT CREATE TYPE TO username; +GRANT CREATE PROCEDURE TO username; +GRANT CREATE TABLE TO username; +GRANT CREATE VIEW TO username; + diff --git a/samples/SQL/drop_stuff.sql b/samples/SQL/drop_stuff.sql new file mode 100644 index 00000000..7d638eed --- /dev/null +++ b/samples/SQL/drop_stuff.sql @@ -0,0 +1,13 @@ +drop procedure who_called_me; +drop package body linguist_package; +drop package linguist_package; +drop function functionname1; + +drop table x; +drop table y cascade; + +drop type typename1; +drop type typename2; + +drop view viewname1; +drop view viewname2; diff --git a/samples/SQL/dual.sql b/samples/SQL/dual.sql new file mode 100644 index 00000000..8ef5c624 --- /dev/null +++ b/samples/SQL/dual.sql @@ -0,0 +1,3 @@ +--this is the most basic oracle sql command +select * from dual; + diff --git a/samples/SQLPL/check_reorg.sql b/samples/SQLPL/check_reorg.sql new file mode 100644 index 00000000..f8906465 --- /dev/null +++ b/samples/SQLPL/check_reorg.sql @@ -0,0 +1,39 @@ +create procedure check_reorg_tables (in v_schema varchar(128), out v_reorg_counter integer) +begin + + declare loc result_set_locator varying; + + declare schema_out varchar(128); + declare table_out varchar(128); + declare card_out integer; + declare overflow_out integer; + declare npages_out integer; + declare fpages_out integer; + declare active_blocks_out integer; + declare tsize_out integer; + declare f1_out integer; + declare f2_out integer; + declare f3_out integer; + declare reorg_out varchar(3); + declare cursor_end smallint default 0; + + declare continue handler for NOT FOUND + + set cursor_end = 1; + set v_reorg_counter = 0; + + call reorgchk_tb_stats('S', v_schema); + associate result set locator(loc) with procedure reorgchk_tb_stats; + allocate mycursor cursor for result set loc; + + open mycursor; + repeat + fetch from mycursor into schema_out, table_out, card_out, overflow_out, npages_out, fpages_out, active_blocks_out, tsize_out, f1_out, f2_out, f3_out, reorg_out; + if reorg_out <> '---' then + set v_reorg_counter = v_reorg_counter + 1; + end if; + until cursor_end = 1 + end repeat; + close mycursor; + +end! diff --git a/samples/SQLPL/comm_amount.db2 b/samples/SQLPL/comm_amount.db2 new file mode 100644 index 00000000..66efc97c --- /dev/null +++ b/samples/SQLPL/comm_amount.db2 @@ -0,0 +1,30 @@ +DROP FUNCTION COMM_AMOUNT; +CREATE FUNCTION COMM_AMOUNT(SALARY DEC(9,2)) + RETURNS DEC(9,2) + LANGUAGE SQL READS SQL DATA + BEGIN ATOMIC + DECLARE REMAINDER DEC(9,2) DEFAULT 0.0;-- + DECLARE COMM_PAID DEC(9,2) DEFAULT 0.0;-- + DECLARE COMM_INCR INT DEFAULT 1;-- + DECLARE MAX_COMM DEC(9,2) DEFAULT 0.0;-- + + IF (SALARY <= 0) THEN + SIGNAL SQLSTATE '75000' + SET MESSAGE_TEXT = 'Bad Salary';-- + END IF;-- + + SET REMAINDER = SALARY;-- + +L1: WHILE REMAINDER > 0.0 DO + SET COMM_PAID = COMM_PAID + (COMM_INCR * 500.00);-- + SET REMAINDER = REMAINDER-(COMM_INCR * 5000.00);-- + SET COMM_INCR = COMM_INCR + 1;-- + END WHILE L1;-- + + SET MAX_COMM = + (SELECT SUM(SALARY)/100.00 FROM EMPLOYEE);-- + IF (COMM_PAID > MAX_COMM) THEN + SET COMM_PAID = MAX_COMM;-- + END IF;-- + RETURN COMM_PAID;-- +END; diff --git a/samples/SQLPL/drop_table.db2 b/samples/SQLPL/drop_table.db2 new file mode 100644 index 00000000..60e34d8e --- /dev/null +++ b/samples/SQLPL/drop_table.db2 @@ -0,0 +1,13 @@ +DROP TABLE TDEPT; +CREATE TABLE TDEPT (DEPTNO CHAR(4)); + +--#SET TERMINATOR @ +BEGIN ATOMIC + DECLARE COUNT INT DEFAULT 5; + + WHILE COUNT > 0 DO + INSERT INTO TDEPT VALUES 'F'|| + RTRIM(CHAR(COUNT)); + SET COUNT = COUNT - 1; + END WHILE; +END@ diff --git a/samples/SQLPL/runstats.sql b/samples/SQLPL/runstats.sql new file mode 100644 index 00000000..fcd8a46d --- /dev/null +++ b/samples/SQLPL/runstats.sql @@ -0,0 +1,18 @@ +create procedure runstats (out nr_tables integer, out nr_ok integer) +begin + declare SQLCODE integer; + declare stmt varchar(100); + + set nr_tables = 0; + set nr_ok = 0; + + for line as select tabschema, tabname from syscat.tables where type='T' and tabschema='SPODEN' + do + set nr_tables = nr_tables + 1; + set stmt = 'CALL SYSPROC.ADMIN_CMD (RUNSTATS ON TABLE ' concat rtrim(line.tabschema) concat '.' concat line.tabname concat ')'; + execute immediate stmt; + if SQLCODE = 0 then + set nr_ok = nr_ok + 1; + end if; + end for; +end! diff --git a/samples/SQLPL/trigger.sql b/samples/SQLPL/trigger.sql new file mode 100644 index 00000000..5002fa80 --- /dev/null +++ b/samples/SQLPL/trigger.sql @@ -0,0 +1,9 @@ +create trigger CHECK_HIREDATE +no cascade before insert on EMPLOYEE +referencing new as N +for each row mode db2sql +if n.hiredate > current date +then + signal SQLSTATE '75000' + set MESSAGE_TEXT = 'Hire date must be in the past'; +end if! diff --git a/vendor/grammars/Oracle b/vendor/grammars/Oracle new file mode 160000 index 00000000..f5308c9a --- /dev/null +++ b/vendor/grammars/Oracle @@ -0,0 +1 @@ +Subproject commit f5308c9abe377210145ffe606bd8b3ac0088608a From 201b0ba53c2f7744c12ffc8e9bc78c9a41716ced Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 6 Feb 2015 08:41:37 -0600 Subject: [PATCH 180/875] Making modelines case-insensitive --- lib/linguist/strategy/modeline.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index f8d8d52a..e77597f4 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,8 +1,8 @@ module Linguist module Strategy class Modeline - EmacsModeline = /-\*-\s*mode:\s*(\w+);?\s*-\*-/ - VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\// + EmacsModeline = /-\*-\s*mode:\s*(\w+);?\s*-\*-/i + VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i # Public: Detects language based on Vim and Emacs modelines # From 0db1d1c8ca2267f0e30c26ae31af773044056897 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 6 Feb 2015 08:48:59 -0600 Subject: [PATCH 181/875] Modifying some modeline fixtures to test case InSeNsItivitY --- test/fixtures/Data/Modelines/iamphp.inc | 2 +- test/fixtures/Data/Modelines/not_perl.pl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/Data/Modelines/iamphp.inc b/test/fixtures/Data/Modelines/iamphp.inc index 14370309..9e67098e 100644 --- a/test/fixtures/Data/Modelines/iamphp.inc +++ b/test/fixtures/Data/Modelines/iamphp.inc @@ -1 +1 @@ -; -*- mode: php;-*- +; -*- MoDe: PhP;-*- diff --git a/test/fixtures/Data/Modelines/not_perl.pl b/test/fixtures/Data/Modelines/not_perl.pl index df8e9fc5..39e38958 100644 --- a/test/fixtures/Data/Modelines/not_perl.pl +++ b/test/fixtures/Data/Modelines/not_perl.pl @@ -1,3 +1,3 @@ -/* vim: set filetype=prolog: */ +/* vim: set filEtype=pRoloG: */ # I am Prolog From 462a570d3c683557b12e3473e93be3fda072ab76 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 6 Feb 2015 16:04:32 -0500 Subject: [PATCH 182/875] Friendly welcome --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ade8bffd..31021753 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -The majority of contributions won't need to touch any Ruby code at all. +Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. The majority of contributions won't need to touch any Ruby code at all. ## Adding a language From 41e1b7bd4e68261aa33ab425b30ee815e6247259 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 6 Feb 2015 22:14:22 +0100 Subject: [PATCH 183/875] Detection by extension made case-insensitive --- lib/linguist/file_blob.rb | 2 +- lib/linguist/language.rb | 8 +-- lib/linguist/languages.yml | 23 +------- samples/Eiffel/application.e | 44 ++++++++++++++ samples/Eiffel/book_collection.e | 82 +++++++++++++++++++++++++++ samples/Eiffel/git_checkout_command.e | 41 ++++++++++++++ test/test_pedantic.rb | 2 +- test/test_samples.rb | 4 +- 8 files changed, 176 insertions(+), 30 deletions(-) create mode 100644 samples/Eiffel/application.e create mode 100644 samples/Eiffel/book_collection.e create mode 100644 samples/Eiffel/git_checkout_command.e diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 04441935..cf142ef5 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -67,7 +67,7 @@ module Linguist # # Returns an Array def extensions - basename, *segments = File.basename(name).split(".") + basename, *segments = File.basename(name).downcase.split(".") segments.map.with_index do |segment, index| "." + segments[index..-1].join(".") diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 7fbf8a96..21cfc6ff 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -80,7 +80,7 @@ module Linguist raise ArgumentError, "Extension is missing a '.': #{extension.inspect}" end - @extension_index[extension] << language + @extension_index[extension.downcase] << language end language.interpreters.each do |interpreter| @@ -198,7 +198,7 @@ module Linguist # Returns all matching Languages or [] if none were found. def self.find_by_extension(extname) extname = ".#{extname}" unless extname.start_with?(".") - @extension_index[extname] + @extension_index[extname.downcase] end # DEPRECATED @@ -535,8 +535,8 @@ module Linguist if extnames = extensions[name] extnames.each do |extname| - if !options['extensions'].index { |x| x.end_with? extname } - warn "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" unless extname == '.script!' + if !options['extensions'].index { |x| x.downcase.end_with? extname.downcase } + warn "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" unless extname == '.script!' options['extensions'] << extname end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e899046e..bf4b6660 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -204,7 +204,6 @@ Assembly: - nasm extensions: - .asm - - .ASM - .a51 tm_scope: source.asm.x86 ace_mode: assembly_x86 @@ -349,8 +348,6 @@ C: color: "#555" extensions: - .c - - .C - - .H - .cats - .h - .idc @@ -429,8 +426,6 @@ COBOL: type: programming extensions: - .cob - - .COB - - .CPY - .cbl - .ccp - .cobol @@ -867,14 +862,6 @@ FORTRAN: color: "#4d41b1" extensions: - .f90 - - .F - - .F03 - - .F08 - - .F77 - - .F90 - - .F95 - - .FOR - - .FPP - .f - .f03 - .f08 @@ -918,9 +905,7 @@ Forth: color: "#341708" extensions: - .fth - - .4TH - .4th - - .F - .f - .for - .forth @@ -969,7 +954,6 @@ GAS: group: Assembly extensions: - .s - - .S tm_scope: source.asm.x86 ace_mode: assembly_x86 @@ -1127,7 +1111,6 @@ Graphviz (DOT): tm_scope: source.dot extensions: - .dot - - .DOT - .gv ace_mode: text @@ -2210,7 +2193,6 @@ Perl: color: "#0298c3" extensions: - .pl - - .PL - .cgi - .fcgi - .perl @@ -2442,8 +2424,6 @@ R: - splus extensions: - .r - - .R - - .Rd - .rd - .rsx filenames: @@ -2496,7 +2476,6 @@ RMarkdown: ace_mode: markdown extensions: - .rmd - - .Rmd tm_scope: none Racket: @@ -3201,11 +3180,11 @@ XML: - .svg - .targets - .tmCommand + - .tml - .tmLanguage - .tmPreferences - .tmSnippet - .tmTheme - - .tml - .ts - .ui - .urdf diff --git a/samples/Eiffel/application.e b/samples/Eiffel/application.e new file mode 100644 index 00000000..16426905 --- /dev/null +++ b/samples/Eiffel/application.e @@ -0,0 +1,44 @@ +note + description : "nino application root class" + date : "$Date$" + revision : "$Revision$" + +class + APPLICATION + +inherit + ARGUMENTS + + HTTP_SERVER_SHARED_CONFIGURATION + +create + make + +feature {NONE} -- Initialization + + make + -- Run application. + local + l_server : HTTP_SERVER + l_cfg: HTTP_SERVER_CONFIGURATION + l_http_handler : HTTP_HANDLER + do + create l_cfg.make + l_cfg.http_server_port := 9_000 + l_cfg.document_root := default_document_root + set_server_configuration (l_cfg) + debug ("nino") + l_cfg.set_is_verbose (True) + end + + create l_server.make (l_cfg) + create {APPLICATION_CONNECTION_HANDLER} l_http_handler.make (l_server) + l_server.setup (l_http_handler) + end + +feature -- Access + + default_document_root: STRING = "webroot" + +end + diff --git a/samples/Eiffel/book_collection.e b/samples/Eiffel/book_collection.e new file mode 100644 index 00000000..8959455a --- /dev/null +++ b/samples/Eiffel/book_collection.e @@ -0,0 +1,82 @@ +class + BOOK_COLLECTION + +create + make + +feature {NONE} -- Initialization + + make (a_name: STRING_32) + -- Create a book collection with `a_name' as `name'. + do + set_name (a_name) + create book_index.make (10) + ensure + name_set: name = a_name + end + +feature -- Access + + name: STRING_32 + -- Name. + + books: LIST [BOOK] + -- collection of book. + do + create {LINKED_LIST [BOOK]} Result.make + across + book_index as it + loop + Result.append (it.item) + end + end + + books_by_author (a_author: STRING_32): LIST [BOOK] + -- Books wrote by `a_author' in this collection. + do + if attached book_index [a_author] as l_result then + Result := l_result + else + create {LINKED_LIST [BOOK]} Result.make + end + end + +feature -- Change + + set_name (a_name: STRING_32) + -- Set `name' with `a_name'. + do + name := a_name + ensure + name_set: name = a_name + end + + add_book (a_book: BOOK) + -- Extend collection with `a_book'. + local + l: detachable LIST [BOOK] + do + l := book_index.at (a_book.author.name) + if l = Void then + create {LINKED_LIST [BOOK]} l.make + book_index.put (l, a_book.author.name) + end + l.force (a_book) + end + + add_books (book_list: like books) + -- Append collection with `book_list'. + do + across + book_list as it + loop + add_book (it.item) + end + end + +feature {NONE} -- Implementation + + book_index: HASH_TABLE [LIST [BOOK], STRING_32] + -- Association of author name and its books. + +end -- class BOOK_COLLECTION diff --git a/samples/Eiffel/git_checkout_command.e b/samples/Eiffel/git_checkout_command.e new file mode 100644 index 00000000..f78747d2 --- /dev/null +++ b/samples/Eiffel/git_checkout_command.e @@ -0,0 +1,41 @@ +note + description: "Git checkout command." + author: "Olivier Ligot" + +class + GIT_CHECKOUT_COMMAND + +inherit + GIT_COMMAND + +create + make, + make_master + +feature {NONE} -- Initialization + + make (a_branch: STRING) + -- Checkout the branch `a_branch'. + do + initialize + arguments.force_last (a_branch) + branch := a_branch + ensure + branch_set: branch = a_branch + end + + make_master + -- Checkout the master branch. + do + make ("master") + end + +feature -- Access + + branch: STRING + -- Branch to checkout + + name: STRING = "checkout" + -- Git subcommand name + +end diff --git a/test/test_pedantic.rb b/test/test_pedantic.rb index 0861b8d8..29b673ab 100644 --- a/test/test_pedantic.rb +++ b/test/test_pedantic.rb @@ -12,7 +12,7 @@ class TestPedantic < Minitest::Test def test_extensions_are_sorted LANGUAGES.each do |name, language| extensions = language['extensions'] - assert_sorted extensions[1..-1] if extensions && extensions.size > 1 + assert_sorted extensions[1..-1].map(&:downcase) if extensions && extensions.size > 1 end end diff --git a/test/test_samples.rb b/test/test_samples.rb index 0b0722dc..6de1c7e9 100644 --- a/test/test_samples.rb +++ b/test/test_samples.rb @@ -43,7 +43,7 @@ class TestSamples < Minitest::Test if extnames = Samples.cache['extnames'][name] extnames.each do |extname| next if extname == '.script!' - assert options['extensions'].index { |x| x.end_with? extname }, "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" + assert options['extensions'].index { |x| x.downcase.end_with? extname.downcase }, "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" end end @@ -67,7 +67,7 @@ class TestSamples < Minitest::Test if language_matches.length > 1 language_matches.each do |match| samples = "samples/#{match.name}/*#{extension}" - assert Dir.glob(samples).any?, "Missing samples in #{samples.inspect}. See https://github.com/github/linguist/blob/master/CONTRIBUTING.md" + assert Dir.glob(samples, File::FNM_CASEFOLD).any?, "Missing samples in #{samples.inspect}. See https://github.com/github/linguist/blob/master/CONTRIBUTING.md" end end end From 5c29ce06959695ceeda3597b51ed5e7fd12583b2 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 6 Feb 2015 16:26:55 -0500 Subject: [PATCH 184/875] Add usage and link to contributing --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 215aaf52..84b53b62 100644 --- a/README.md +++ b/README.md @@ -55,3 +55,44 @@ vim: set ft=cpp: Emacs -*- mode: php;-*- ``` + +## Usage + +Install the gem: + +``` +$ gem install github-linguist +``` + +Then use it in your application: + +```ruby +require 'rugged' +require 'linguist' + +repo = Rugged::Repository.new('.') +project = Linguist::Repository.new(repo, repo.head.target_id) +project.language #=> "Ruby" +project.languages #=> { "Ruby" => 119387 } +``` + +These stats are also printed out by the `linguist` executable. You can use the +`--breakdown` flag, and the binary will also output the breakdown of files by language. + +You can try running `linguist` on the root directory in this repository itself: + +$ bundle exec linguist --breakdown + +100.00% Ruby + +Ruby: +Gemfile +Rakefile +bin/linguist +github-linguist.gemspec +lib/linguist.rb +… + +## Contributing + +Please check out our [contributing guidelines](CONTRIBUTING.md). From 107a27aa2560f5a8114b19e9fd3ec0d88553aef4 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 6 Feb 2015 16:41:57 -0500 Subject: [PATCH 185/875] Fix formatting of example --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 84b53b62..4a7ea415 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ These stats are also printed out by the `linguist` executable. You can use the You can try running `linguist` on the root directory in this repository itself: +``` $ bundle exec linguist --breakdown 100.00% Ruby @@ -92,7 +93,10 @@ bin/linguist github-linguist.gemspec lib/linguist.rb … +``` ## Contributing Please check out our [contributing guidelines](CONTRIBUTING.md). + +## From 4543c7a0b307a648c7342e23cb970f56c48f3e80 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 7 Feb 2015 08:47:17 -0600 Subject: [PATCH 186/875] Use the shebang strategy first --- lib/linguist/language.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 7fbf8a96..2b6e597f 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -96,8 +96,8 @@ module Linguist STRATEGIES = [ Linguist::Strategy::Modeline, - Linguist::Strategy::Filename, Linguist::Shebang, + Linguist::Strategy::Filename, Linguist::Heuristics, Linguist::Classifier ] From 88e79cd3a8bc7749783693a35ea4409a4709303a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 7 Feb 2015 10:24:03 -0600 Subject: [PATCH 187/875] Adding fixtures to test shebang strategy ordering --- test/fixtures/Shell/crossbuild_liblua5.1 | 57 +++++++++++++ test/fixtures/Shell/graylog2-server.init.d | 99 ++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 test/fixtures/Shell/crossbuild_liblua5.1 create mode 100755 test/fixtures/Shell/graylog2-server.init.d diff --git a/test/fixtures/Shell/crossbuild_liblua5.1 b/test/fixtures/Shell/crossbuild_liblua5.1 new file mode 100644 index 00000000..d4d14462 --- /dev/null +++ b/test/fixtures/Shell/crossbuild_liblua5.1 @@ -0,0 +1,57 @@ +#! /bin/sh +# +# Builds and installs liblua5.1 for the cross toolchain. +# Executed by build-uqm-dependencies.chroot + +# Include our common functions +. /usr/lib/crossbuild/crossbuild.subr + +# envvar LIBLUA51_URL +# +# Specifies the URL of the liblua5.1 source tarball you want to use. +export LIBLUA51_URL="http://www.lua.org/ftp/lua-5.1.5.tar.gz" + +# envvar INSTALL_TOP +# +# This determines where lua's makefiles install everything (we don't want to use +# /usr/local!). +export INSTALL_TOP="/usr/${HOST_TRIPLET}" + +# envvar TO_BIN +# +# Names of the binary files to install (that's right, lua's makefiles don't +# determine this automatically, and since we end up with files named according +# to Windows conventions the install chokes without these) +export TO_BIN="lua.exe luac.exe" + +# envvar TO_LIB +# +# Names of the libraries to install, see TO_BIN +export TO_LIB="liblua.a lua51.dll" + + +# liblua5.1 uses custom makefiles and does not natively support cross-building. +# However, with our cross toolchain in its PATH it successfully builds the mingw +# target. +export PATH=/usr/${HOST_TRIPLET}/bin:${PATH} + +echo "*************************************************************************" +echo "--- BEGIN: crossbuild_liblua5.1 ---" + +get_tarball "liblua5.1" "${LIBLUA51_URL}" gz + +cd ${SRC_ROOT_DIR}/liblua5.1/* + +if [ -f Makefile ]; then + make clean + make --environment-overrides mingw install + + +else + echo "crossbuild_liblua5.1 failed: Could not find Makefile" + echo "(is the liblua5.1 source tarball sane?)" + exit 1 +fi + +echo "--- END: crossbuild_liblua5.1 ---" +echo "*************************************************************************" diff --git a/test/fixtures/Shell/graylog2-server.init.d b/test/fixtures/Shell/graylog2-server.init.d new file mode 100755 index 00000000..29e513ad --- /dev/null +++ b/test/fixtures/Shell/graylog2-server.init.d @@ -0,0 +1,99 @@ +#!/bin/bash + +### BEGIN INIT INFO +# Provides: graylog2-server +# Required-Start: $network +# Required-Stop: $network +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# Short-Description: Start Graylog2 server +### END INIT INFO + +# Written by Lital Natan + +PREFIX=/usr +SHAREDIR=$PREFIX/share/graylog2-server +SERVER_JAR=$SHAREDIR/graylog2-server.jar +SYSLOG4J_JAR=$SHAREDIR/syslog4j-0.9.46-bin.jar +SVCNAME="graylog2-server" + +CONFIG="/etc/graylog2.conf" +LOGFILE="/var/log/graylog2.log" +PIDFILE="/var/run/graylog2.pid" + +start() { + if [ ! -e $CONFIG ]; then + echo "Config file $CONFIG does not exist" + return 1 + fi + + echo "Starting ${SVCNAME}" + nohup `which java` -cp $SERVER_JAR:$SYSLOG4J_JAR org.graylog2.Main \ + -p ${PIDFILE} -f ${CONFIG} > $LOGFILE 2>&1 & + + # Sleep before testing the service + sleep 2 + + graylog2_test || return 1 +} + +stop() { + pid=`< $PIDFILE` + kill $pid + rm -f ${PIDFILE} # just in case +} + +graylog2_test() { + # Graylog2 only deletes its PID file if it hits a config error + if [ ! -e ${PIDFILE} ]; then + echo "Configuration error, check ${CONFIG}" + return 1 + fi + + local pid=`cat ${PIDFILE}` + + # Graylog2 isn't running, so that means there was a problem + if [ ! -e /proc/$pid ]; then + echo "Something went wrong, check ${LOGFILE}" + rm -f ${PIDFILE} + return 1 + else + return 0 + fi +} + + +status() { + graylog2_test > /dev/null 2>&1 + if [ "$?" == "0" ]; then + echo "Graylog2 server is up" + return 0 + else + echo "Graylog2 server is down" + return 1 + fi +} + + +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status + ;; + restart) + restart + ;; + *) + echo "Usage $0 {start|stop|restart|status}" + RETVAL=1 +esac From a08f0da30d4147e1625130fe02ab9ad813704328 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 7 Feb 2015 19:58:49 +0100 Subject: [PATCH 188/875] Grammar for Mediawiki from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/mediawiki.tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/mediawiki.tmbundle diff --git a/.gitmodules b/.gitmodules index bb4871bd..73029e34 100644 --- a/.gitmodules +++ b/.gitmodules @@ -597,3 +597,6 @@ [submodule "vendor/grammars/InnoSetup"] path = vendor/grammars/InnoSetup url = https://github.com/idleberg/InnoSetup-Sublime-Text +[submodule "vendor/grammars/mediawiki.tmbundle"] + path = vendor/grammars/mediawiki.tmbundle + url = https://github.com/textmate/mediawiki.tmbundle diff --git a/grammars.yml b/grammars.yml index d7dd24de..b4a9c6e7 100644 --- a/grammars.yml +++ b/grammars.yml @@ -338,6 +338,8 @@ vendor/grammars/matlab.tmbundle: - source.octave vendor/grammars/maven.tmbundle: - text.xml.pom +vendor/grammars/mediawiki.tmbundle/: +- text.html.mediawiki vendor/grammars/mercury-tmlanguage: - source.mercury vendor/grammars/monkey.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 28fdae5a..9b197fd3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1807,7 +1807,7 @@ MediaWiki: wrap: true extensions: - .mediawiki - tm_scope: none + tm_scope: text.html.mediawiki ace_mode: text Mercury: diff --git a/vendor/grammars/mediawiki.tmbundle b/vendor/grammars/mediawiki.tmbundle new file mode 160000 index 00000000..f8dead50 --- /dev/null +++ b/vendor/grammars/mediawiki.tmbundle @@ -0,0 +1 @@ +Subproject commit f8dead507a1aed539376b9fcfde877a855842e8e From 4c037c644f26bb22152edb09b72b9cd145e6e47c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 8 Feb 2015 10:43:45 +0100 Subject: [PATCH 189/875] Grammar for GAP from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/gap-tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/gap-tmbundle diff --git a/.gitmodules b/.gitmodules index bb4871bd..a4462410 100644 --- a/.gitmodules +++ b/.gitmodules @@ -597,3 +597,6 @@ [submodule "vendor/grammars/InnoSetup"] path = vendor/grammars/InnoSetup url = https://github.com/idleberg/InnoSetup-Sublime-Text +[submodule "vendor/grammars/gap-tmbundle"] + path = vendor/grammars/gap-tmbundle + url = https://github.com/dhowden/gap-tmbundle diff --git a/grammars.yml b/grammars.yml index d7dd24de..fc6a808e 100644 --- a/grammars.yml +++ b/grammars.yml @@ -225,6 +225,8 @@ vendor/grammars/fortran.tmbundle: - source.fortran.modern vendor/grammars/fsharpbinding: - source.fsharp +vendor/grammars/gap-tmbundle/: +- source.gap vendor/grammars/gettext.tmbundle: - source.po vendor/grammars/gnuplot-tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 28fdae5a..c8938202 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -961,7 +961,7 @@ GAP: - .gd - .gi - .tst - tm_scope: none + tm_scope: source.gap ace_mode: text GAS: diff --git a/vendor/grammars/gap-tmbundle b/vendor/grammars/gap-tmbundle new file mode 160000 index 00000000..291a0469 --- /dev/null +++ b/vendor/grammars/gap-tmbundle @@ -0,0 +1 @@ +Subproject commit 291a0469dd4eb7082b08e828edc8bf0cfbb9b599 From d17f5dfd9e82e189dc56477eef24e63102eae31a Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 8 Feb 2015 11:14:18 +0100 Subject: [PATCH 190/875] Papyrus grammar from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 4 ++++ lib/linguist/languages.yml | 2 +- vendor/grammars/SublimePapyrus | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/SublimePapyrus diff --git a/.gitmodules b/.gitmodules index a4462410..01ef7c5f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -600,3 +600,6 @@ [submodule "vendor/grammars/gap-tmbundle"] path = vendor/grammars/gap-tmbundle url = https://github.com/dhowden/gap-tmbundle +[submodule "vendor/grammars/SublimePapyrus"] + path = vendor/grammars/SublimePapyrus + url = https://github.com/Kapiainen/SublimePapyrus diff --git a/grammars.yml b/grammars.yml index fc6a808e..66ae4138 100644 --- a/grammars.yml +++ b/grammars.yml @@ -112,6 +112,10 @@ vendor/grammars/Sublime-VimL: - source.viml vendor/grammars/SublimeBrainfuck: - source.bf +vendor/grammars/SublimePapyrus/: +- source.compiled-papyrus +- source.papyrus +- source.papyrus-assembly vendor/grammars/SublimeXtend: - source.xtend vendor/grammars/TXL/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c8938202..ac54b94a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2158,7 +2158,7 @@ Papyrus: color: "#6600cc" extensions: - .psc - tm_scope: none + tm_scope: source.papyrus ace_mode: text Parrot: diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus new file mode 160000 index 00000000..5a7b3e7b --- /dev/null +++ b/vendor/grammars/SublimePapyrus @@ -0,0 +1 @@ +Subproject commit 5a7b3e7b29fdee835d0198d1f20e21c0ff874154 From cc5881dca22f914a186be3d23a7eecaae55f4a7e Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 8 Feb 2015 11:20:40 +0100 Subject: [PATCH 191/875] Grammar for Propeller Spin from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-spintools | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-spintools diff --git a/.gitmodules b/.gitmodules index 01ef7c5f..e7bcdac5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -603,3 +603,6 @@ [submodule "vendor/grammars/SublimePapyrus"] path = vendor/grammars/SublimePapyrus url = https://github.com/Kapiainen/SublimePapyrus +[submodule "vendor/grammars/sublime-spintools"] + path = vendor/grammars/sublime-spintools + url = https://github.com/bitbased/sublime-spintools diff --git a/grammars.yml b/grammars.yml index 66ae4138..ded5e7cb 100644 --- a/grammars.yml +++ b/grammars.yml @@ -465,6 +465,9 @@ vendor/grammars/sublime-rust: - source.rust vendor/grammars/sublime-sourcepawn: - source.sp +vendor/grammars/sublime-spintools/: +- source.regexp.spin +- source.spin vendor/grammars/sublime-tea: - source.tea vendor/grammars/sublime-text-ox/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ac54b94a..b02b4148 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2323,7 +2323,7 @@ Propeller Spin: color: "#2b446d" extensions: - .spin - tm_scope: none + tm_scope: source.spin ace_mode: text Protocol Buffer: diff --git a/vendor/grammars/sublime-spintools b/vendor/grammars/sublime-spintools new file mode 160000 index 00000000..56d326a4 --- /dev/null +++ b/vendor/grammars/sublime-spintools @@ -0,0 +1 @@ +Subproject commit 56d326a44ec0be0f301d5fb1d9e1ada9944554bb From 30d2883436cba5733031536200b148ae6361833a Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 8 Feb 2015 11:44:11 +0100 Subject: [PATCH 192/875] Grammar for PogoScript from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/PogoScript.tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/PogoScript.tmbundle diff --git a/.gitmodules b/.gitmodules index e7bcdac5..016d28e9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -606,3 +606,6 @@ [submodule "vendor/grammars/sublime-spintools"] path = vendor/grammars/sublime-spintools url = https://github.com/bitbased/sublime-spintools +[submodule "vendor/grammars/PogoScript.tmbundle"] + path = vendor/grammars/PogoScript.tmbundle + url = https://github.com/featurist/PogoScript.tmbundle diff --git a/grammars.yml b/grammars.yml index ded5e7cb..cfaa8bfc 100644 --- a/grammars.yml +++ b/grammars.yml @@ -72,6 +72,8 @@ vendor/grammars/NimLime: - source.nimcfg vendor/grammars/PHP-Twig.tmbundle: - text.html.twig +vendor/grammars/PogoScript.tmbundle/: +- source.pogoscript vendor/grammars/RDoc.tmbundle: - text.rdoc vendor/grammars/Racket: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b02b4148..cb274d59 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2276,7 +2276,7 @@ PogoScript: color: "#d80074" extensions: - .pogo - tm_scope: none + tm_scope: source.pogoscript ace_mode: text PostScript: diff --git a/vendor/grammars/PogoScript.tmbundle b/vendor/grammars/PogoScript.tmbundle new file mode 160000 index 00000000..2255586f --- /dev/null +++ b/vendor/grammars/PogoScript.tmbundle @@ -0,0 +1 @@ +Subproject commit 2255586f9ec69bab052b2250615db9b824774178 From 0019abe5e7f8f63fb9e23a1d499adc119b8b6dcc Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 8 Feb 2015 11:45:54 +0100 Subject: [PATCH 193/875] Opal grammar from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-opal | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-opal diff --git a/.gitmodules b/.gitmodules index 016d28e9..65e6843d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -609,3 +609,6 @@ [submodule "vendor/grammars/PogoScript.tmbundle"] path = vendor/grammars/PogoScript.tmbundle url = https://github.com/featurist/PogoScript.tmbundle +[submodule "vendor/grammars/sublime-opal"] + path = vendor/grammars/sublime-opal + url = https://github.com/artifactz/sublime-opal diff --git a/grammars.yml b/grammars.yml index cfaa8bfc..8774c5ea 100644 --- a/grammars.yml +++ b/grammars.yml @@ -461,6 +461,9 @@ vendor/grammars/sublime-nginx: - source.nginx vendor/grammars/sublime-nix: - source.nix +vendor/grammars/sublime-opal/: +- source.opal +- source.opalsysdefs vendor/grammars/sublime-robot-plugin: - text.robot vendor/grammars/sublime-rust: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index cb274d59..5321c940 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2052,7 +2052,7 @@ Opal: color: "#f7ede0" extensions: - .opal - tm_scope: none + tm_scope: source.opal ace_mode: text OpenCL: diff --git a/vendor/grammars/sublime-opal b/vendor/grammars/sublime-opal new file mode 160000 index 00000000..55ae90b9 --- /dev/null +++ b/vendor/grammars/sublime-opal @@ -0,0 +1 @@ +Subproject commit 55ae90b910933889d01c55766424db5b3e10332e From fb6ec8aaa76f58cd047de44dcf8f6389638b9a24 Mon Sep 17 00:00:00 2001 From: David Pyke Le Brun Date: Mon, 9 Feb 2015 11:46:14 +0000 Subject: [PATCH 194/875] remove oracle grammer. (to be readded) --- .gitmodules | 3 --- vendor/grammars/Oracle | 1 - 2 files changed, 4 deletions(-) delete mode 160000 vendor/grammars/Oracle diff --git a/.gitmodules b/.gitmodules index aefae11d..4e72920d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -594,6 +594,3 @@ [submodule "vendor/grammars/ec.tmbundle"] path = vendor/grammars/ec.tmbundle url = https://github.com/ecere/ec.tmbundle -[submodule "vendor/grammars/Oracle"] - path = vendor/grammars/Oracle - url = git@github.com:mulander/oracle.tmbundle.git diff --git a/vendor/grammars/Oracle b/vendor/grammars/Oracle deleted file mode 160000 index f5308c9a..00000000 --- a/vendor/grammars/Oracle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f5308c9abe377210145ffe606bd8b3ac0088608a From 7ecf65551e6f112bae5119dbd3eb62055f02ca82 Mon Sep 17 00:00:00 2001 From: David Pyke Le Brun Date: Mon, 9 Feb 2015 11:58:50 +0000 Subject: [PATCH 195/875] re-add oracle grammer module using https --- .gitmodules | 3 +++ grammars.yml | 4 ++-- lib/linguist/languages.yml | 2 +- vendor/grammars/oracle.tmbundle | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) create mode 160000 vendor/grammars/oracle.tmbundle diff --git a/.gitmodules b/.gitmodules index 4e72920d..d1bee979 100644 --- a/.gitmodules +++ b/.gitmodules @@ -594,3 +594,6 @@ [submodule "vendor/grammars/ec.tmbundle"] path = vendor/grammars/ec.tmbundle url = https://github.com/ecere/ec.tmbundle +[submodule "vendor/grammars/oracle.tmbundle"] + path = vendor/grammars/oracle.tmbundle + url = https://github.com/mulander/oracle.tmbundle.git diff --git a/grammars.yml b/grammars.yml index 398c2a35..696f27ff 100644 --- a/grammars.yml +++ b/grammars.yml @@ -68,8 +68,6 @@ vendor/grammars/NimLime: - source.nim - source.nim_filter - source.nimcfg -vendor/grammars/Oracle/: -- source.plsql.oracle vendor/grammars/PHP-Twig.tmbundle: - text.html.twig vendor/grammars/RDoc.tmbundle: @@ -364,6 +362,8 @@ vendor/grammars/ooc.tmbundle: - source.ooc vendor/grammars/opa.tmbundle: - source.opa +vendor/grammars/oracle.tmbundle: +- source.plsql.oracle vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: - source.oz vendor/grammars/pascal.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d2133a5c..534b2fdc 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2149,7 +2149,7 @@ PHP: PLSQL: type: programming ace_mode: sql - tm_scope: Oracle + tm_scope: source.plsql.oracle extensions: - .pls - .pkb diff --git a/vendor/grammars/oracle.tmbundle b/vendor/grammars/oracle.tmbundle new file mode 160000 index 00000000..f5308c9a --- /dev/null +++ b/vendor/grammars/oracle.tmbundle @@ -0,0 +1 @@ +Subproject commit f5308c9abe377210145ffe606bd8b3ac0088608a From e9691725430bf553b452c6f8892c235e3d4f157a Mon Sep 17 00:00:00 2001 From: David Pyke Le Brun Date: Mon, 9 Feb 2015 14:16:25 +0000 Subject: [PATCH 196/875] recode heuristic to use existing style. add additional sample --- lib/linguist/heuristics.rb | 33 +++++++++++++-------------------- lib/linguist/languages.yml | 14 +++++++------- samples/SQLPL/sleep.sql | 9 +++++++++ 3 files changed, 29 insertions(+), 27 deletions(-) create mode 100644 samples/SQLPL/sleep.sql diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 3d1899ec..85b013eb 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -224,29 +224,22 @@ module Linguist end end disambiguate "PLSQL", "SQLPL", "PLpgSQL", "SQL" do |data| - match = nil - #unique keywords for each language - plpgsqlkeywords = [/^\\i\b/i, /begin ?(work|transaction)?;/i , /AS \$\$/i, /RAISE EXCEPTION/i, /LANGUAGE plpgsql\b/i ] - plsqlkeywords = [ /pragma\b/i , /constructor\W+function\b/i] - #sqlplkeywords = [ ] + #only return value if a definite positive - #common keywords that are not SQL - plkeywords = [/begin\b/i,/boolean\b/i, /package\b/i,/exception\b/i, /^end;\b/i ] - - re = Regexp.union(plpgsqlkeywords) - if data.match(re) - match = Language["PLpgSQL"] - else - re = Regexp.union(plsqlkeywords) - if data.match(re) - match= Language["PLSQL"] - else - re = Regexp.union(plkeywords) - match= Language["SQL"] if ! data.match(re) - end + if /^\\i\b|AS \$\$|LANGUAGE '+plpgsql'+/i.match(data) || /SECURITY (DEFINER|INVOKER)/i.match(data) || /BEGIN (WORK|TRANSACTION)+;/i.match(data) + #postgres + Language["PLpgSQL"] + elsif /(alter module)|(language sql)|(begin( NOT)+ atomic)/i.match(data) || /signal SQLSTATE '[0-9]+'/i.match(data) + #ibm db2 + Language["SQLPL"] + elsif /pragma|\$\$PLSQL_|XMLTYPE|sysdate|systimestamp|\.nextval|connect by|AUTHID (DEFINER|CURRENT_USER)/i.match(data) || /constructor\W+function/i.match(data) + #oraclestuff + Language["PLSQL"] + elsif ! /begin|boolean|package|exception/i.match(data) + #generic sql + Language["SQL"] end - match end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2ea132d5..c26884b4 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2696,13 +2696,13 @@ SQL: - .viw #IBM DB2 -#SQLPL: - #type: programming - #ace_mode: sql - #tm_scope: source.sql - #extensions: - #- .sql - #- .db2 +SQLPL: + type: programming + ace_mode: sql + tm_scope: source.sql + extensions: + - .sql + - .db2 STON: type: data diff --git a/samples/SQLPL/sleep.sql b/samples/SQLPL/sleep.sql new file mode 100644 index 00000000..18f72055 --- /dev/null +++ b/samples/SQLPL/sleep.sql @@ -0,0 +1,9 @@ +create procedure sleep (in sleeptime integer) +begin + declare wait_until timestamp; + + set wait_until = (current timestamp + sleeptime seconds); + while (wait_until > current timestamp) + do + end while; +end! From 5e9bb67d10f0670ba1278c130fe66d44b682b90b Mon Sep 17 00:00:00 2001 From: David Pyke Le Brun Date: Mon, 9 Feb 2015 14:27:14 +0000 Subject: [PATCH 197/875] temporary add grammer to whitelist until license gets added --- lib/linguist/heuristics.rb | 2 +- test/test_grammars.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 85b013eb..a4d31626 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -226,7 +226,7 @@ module Linguist disambiguate "PLSQL", "SQLPL", "PLpgSQL", "SQL" do |data| #only return value if a definite positive - if /^\\i\b|AS \$\$|LANGUAGE '+plpgsql'+/i.match(data) || /SECURITY (DEFINER|INVOKER)/i.match(data) || /BEGIN (WORK|TRANSACTION)+;/i.match(data) + if /^\\i\b|AS \$\$|LANGUAGE '+plpgsql'+/i.match(data) || /SECURITY (DEFINER|INVOKER)/i.match(data) || /BEGIN( WORK| TRANSACTION)?;/i.match(data) #postgres Language["PLpgSQL"] elsif /(alter module)|(language sql)|(begin( NOT)+ atomic)/i.match(data) || /signal SQLSTATE '[0-9]+'/i.match(data) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 188bc187..48f6d83c 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -9,6 +9,7 @@ class TestGrammars < Minitest::Test vendor/grammars/Sublime-Lasso vendor/grammars/Sublime-REBOL vendor/grammars/x86-assembly-textmate-bundle + vendor/grammars/oracle.tmbundle ].freeze def setup From 74cd03de0b4a0abd0b6a0d544f35b6b1a2c3dfe0 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Mon, 9 Feb 2015 09:57:24 -0500 Subject: [PATCH 198/875] Remove old link in docs --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 31021753..026de664 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ Misclassifications can often be solved by either adding a new filename or extens Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in [languages.yml][languages] is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. -Assuming your code is being detected as the right language (see [Language Detection](#language-detection) above), in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. +Assuming your code is being detected as the right language, in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://lightshow.githubapp.com). From bdc724d5485ea71ab81309f8732fca1416fe37b9 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Mon, 9 Feb 2015 10:19:36 -0500 Subject: [PATCH 199/875] Detect "use 5.xxx" as Perl --- lib/linguist/heuristics.rb | 2 +- samples/Perl/use5.pl | 3 +++ test/test_heuristics.rb | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 samples/Perl/use5.pl diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ee1a3625..a28b054a 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -92,7 +92,7 @@ module Linguist disambiguate "Perl", "Perl6", "Prolog" do |data| if data.include?("use v6") Language["Perl6"] - elsif data.include?("use strict") + elsif data.match(/use strict|use\s+v?5\./) Language["Perl"] elsif data.include?(":-") Language["Prolog"] diff --git a/samples/Perl/use5.pl b/samples/Perl/use5.pl new file mode 100644 index 00000000..de7d248c --- /dev/null +++ b/samples/Perl/use5.pl @@ -0,0 +1,3 @@ +use Mojolicious::Lite; +use 5.20.0; +use experimental 'signatures'; diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 3ea4af78..02671b78 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -48,7 +48,7 @@ class TestHeuristcs < Minitest::Test def test_pl_prolog_perl_by_heuristics assert_heuristics({ "Prolog" => "Prolog/turing.pl", - "Perl" => "Perl/perl-test.t", + "Perl" => ["Perl/perl-test.t", "Perl/use5.pl"] }) end From 72acbc567bc2fc09b03efaa6240e16a8f95bc540 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Mon, 9 Feb 2015 13:37:54 -0500 Subject: [PATCH 200/875] Update Lightshow's URL This is the public URL going forward. The old URL will redirect to the new one. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 026de664..b1c8a09c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,7 +35,7 @@ Syntax highlighting in GitHub is performed using TextMate-compatible grammars. T Assuming your code is being detected as the right language, in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. -You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://lightshow.githubapp.com). +You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub. From 11f7e6e1b4e53e4bdd47580353384d6eb6bbec3a Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 9 Feb 2015 21:29:53 +0100 Subject: [PATCH 201/875] Add Papyrus and GAP grammars to whitelist --- test/test_grammars.rb | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 188bc187..f30289a6 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -3,12 +3,16 @@ require_relative "./helper" class TestGrammars < Minitest::Test ROOT = File.expand_path("../..", __FILE__) - # These grammars have no license but have been grandfathered in. New grammars - # must have a license that allows redistribution. - UNLICENSED_GRAMMARS_WHITELIST = %w[ - vendor/grammars/Sublime-Lasso - vendor/grammars/Sublime-REBOL - vendor/grammars/x86-assembly-textmate-bundle + LICENSE_WHITELIST = [ + # This grammar's MIT license is inside a subdirectory. + "vendor/grammars/SublimePapyrus", + "vendor/grammars/gap-tmbundle", + + # These grammars have no license but have been grandfathered in. New grammars + # must have a license that allows redistribution. + "vendor/grammars/Sublime-Lasso", + "vendor/grammars/Sublime-REBOL", + "vendor/grammars/x86-assembly-textmate-bundle", ].freeze def setup @@ -77,9 +81,9 @@ class TestGrammars < Minitest::Test unlicensed = categories[:unlicensed] || [] unrecognized = categories[:unrecognized] || [] - disallowed_unlicensed = unlicensed - UNLICENSED_GRAMMARS_WHITELIST - disallowed_unrecognized = unrecognized - UNLICENSED_GRAMMARS_WHITELIST - extra_whitelist_entries = UNLICENSED_GRAMMARS_WHITELIST - (unlicensed | unrecognized) + disallowed_unlicensed = unlicensed - LICENSE_WHITELIST + disallowed_unrecognized = unrecognized - LICENSE_WHITELIST + extra_whitelist_entries = LICENSE_WHITELIST - (unlicensed | unrecognized) message = "" if disallowed_unlicensed.any? @@ -93,7 +97,7 @@ class TestGrammars < Minitest::Test end if extra_whitelist_entries.any? message << "\n\n" unless message.empty? - message << "The following grammar submodules are listed in UNLICENSED_GRAMMARS_WHITELIST but either have a license (yay!)\n" + message << "The following grammar submodules are listed in LICENSE_WHITELIST but either have a license (yay!)\n" message << "or have been removed from the repository. Please remove them from the whitelist.\n" message << extra_whitelist_entries.sort.join("\n") end From d11b2f05bb1bc106d5617f6d3fbd2b391a95c005 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 9 Feb 2015 22:57:19 +0100 Subject: [PATCH 202/875] Detection of zlib license --- test/test_grammars.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index f30289a6..f71446d8 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -135,6 +135,8 @@ class TestGrammars < Minitest::Test "unlicense" elsif content.include?("http://www.wtfpl.net/txt/copying/") "WTFPL" + elsif content.include?("zlib") && content.include?("license") && content.include?("2. Altered source versions must be plainly marked as such") + "zlib" end end end From 4eb8903bed2c509eaedf80aee4840072179d41db Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 9 Feb 2015 23:01:24 +0100 Subject: [PATCH 203/875] Comment for GAP grammar in whitelist --- test/test_grammars.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index f71446d8..18cbce28 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -6,6 +6,8 @@ class TestGrammars < Minitest::Test LICENSE_WHITELIST = [ # This grammar's MIT license is inside a subdirectory. "vendor/grammars/SublimePapyrus", + + # This grammar has a nonstandard but acceptable license. "vendor/grammars/gap-tmbundle", # These grammars have no license but have been grandfathered in. New grammars From b2ee2cc7b8b72953025fe27116e370ab8df30265 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Tue, 10 Feb 2015 13:31:11 -0500 Subject: [PATCH 204/875] Detect all markup languages when computing language statistics Originally, only "programming" languages were included in repository language statistics. In 33ebee0f6a1e097550df0c7a69c5ffe57223f558 we started detecting a few selected "markup" languages as well. We didn't include all "markup" languages because at the time formats like Markdown and AsciiDoc were labeled as "markup" languages, and we thought that including those prose (i.e., non-code) languages in repository statistics on github.com was misleading for repositories that are largely about code but also contain a lot of documentation (e.g., rails/rails). This hand-picked set of whitelisted "markup" languages can cause strange categorization for some repositories. For example, it includes CSS (and some variants) but not HTML. This results in repositories that contain the source code for a static website being classified as either a JavaScript (programming) or CSS (markup) repository, with no mention of HTML anywhere. Fast-forward to today, and prose languages are no longer "markup" languages; they're now "prose" languages. So now we can include all "markup" languages in repository language statistics without worrying about undesirable effects for documentation-heavy repositories. --- lib/linguist/language.rb | 7 ------- lib/linguist/repository.rb | 5 +++-- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 7fbf8a96..35c58c30 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -32,13 +32,6 @@ module Linguist # Valid Languages types TYPES = [:data, :markup, :programming, :prose] - # Names of non-programming languages that we will still detect - # - # Returns an array - def self.detectable_markup - ["CSS", "Less", "Sass", "SCSS", "Stylus", "TeX"] - end - # Detect languages by a specific type # # type - A symbol that exists within TYPES diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 41e829c5..3c197fad 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -8,6 +8,8 @@ module Linguist # Its primary purpose is for gathering language statistics across # the entire project. class Repository + DETECTABLE_TYPES = [:programming, :markup].freeze + attr_reader :repository # Public: Create a new Repository based on the stats of @@ -159,8 +161,7 @@ module Linguist # Skip vendored or generated blobs next if blob.vendored? || blob.generated? || blob.language.nil? - # Only include programming languages and acceptable markup languages - if blob.language.type == :programming || Language.detectable_markup.include?(blob.language.name) + if DETECTABLE_TYPES.include?(blob.language.type) file_map[new] = [blob.language.group.name, blob.size] end end From 9a2f2c1fb24ce9aa3eb7fb770d16218544a9d962 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 10 Feb 2015 20:06:00 +0100 Subject: [PATCH 205/875] Tweak heuristic for free-form Fortran. --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index a28b054a..d4b99f4e 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -157,7 +157,7 @@ module Linguist disambiguate "FORTRAN", "Forth" do |data| if /^: /.match(data) Language["Forth"] - elsif /^([c*][^a-z]| (subroutine|program)\s|!)/i.match(data) + elsif /^([c*][^a-z]| (subroutine|program)\s|\s*!)/i.match(data) Language["FORTRAN"] end end From 4e4a18c71a56e0a45dcca3673a49fe0c1190b3d9 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Tue, 10 Feb 2015 14:08:58 -0500 Subject: [PATCH 206/875] Classify CSS as a markup language It was the only language in Language.detectable_markup that wasn't actually classified as "markup". --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c02ebfea..75d30673 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -438,6 +438,7 @@ COBOL: ace_mode: cobol CSS: + type: markup ace_mode: css color: "#563d7c" extensions: From 3475aefd042e97240b0cff509fc6a1db20e3fc24 Mon Sep 17 00:00:00 2001 From: Jan Brecka Date: Tue, 10 Feb 2015 21:15:45 +0100 Subject: [PATCH 207/875] change submodule url --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index d4ae5db2..82559a75 100644 --- a/.gitmodules +++ b/.gitmodules @@ -249,7 +249,7 @@ url = https://github.com/shellderp/sublime-robot-plugin [submodule "vendor/grammars/actionscript3-tmbundle"] path = vendor/grammars/actionscript3-tmbundle - url = https://github.com/simongregory/actionscript3-tmbundle + url = https://github.com/honzabrecka/actionscript3-tmbundle [submodule "vendor/grammars/Sublime-QML"] path = vendor/grammars/Sublime-QML url = https://github.com/skozlovf/Sublime-QML From e0c1107a253405c41763a9064dbf06ce0c8863fb Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Tue, 10 Feb 2015 15:33:13 -0500 Subject: [PATCH 208/875] Classify SVG files as data This keeps SVG files (which are really just images, even though they happen to be represented as text) out of repository language statistics. --- lib/linguist/languages.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 75d30673..972a9b67 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2684,6 +2684,13 @@ STON: tm_scope: source.smalltalk ace_mode: text +SVG: + type: data + extensions: + - .svg + tm_scope: source.xml + ace_mode: xml + Sage: type: programming group: Python @@ -3199,7 +3206,6 @@ XML: - .srdf - .stTheme - .sublime-snippet - - .svg - .targets - .tmCommand - .tmLanguage From dc852b63987b6abaed20f4e478ee5979e92e3f6c Mon Sep 17 00:00:00 2001 From: Phillip Berndt Date: Wed, 11 Feb 2015 12:58:07 +0100 Subject: [PATCH 209/875] Added a sample of a C header file that is currently recognized as C++ See https://github.com/github/linguist/issues/1626#issuecomment-73870081 Taken from https://github.com/phillipberndt/pqiv/blob/469fe63df4b27463f8accf8a45ae515a17c202e7/pqiv.h --- samples/C/pqiv.h | 166 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 samples/C/pqiv.h diff --git a/samples/C/pqiv.h b/samples/C/pqiv.h new file mode 100644 index 00000000..ea535125 --- /dev/null +++ b/samples/C/pqiv.h @@ -0,0 +1,166 @@ +/** + * pqiv + * + * Copyright (c) 2013-2014, Phillip Berndt + * + * This program 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, either version 3 of the License, or + * (at your option) any later version. + * This program 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 this program. If not, see . + * + */ + +// This file contains the definition of files, image types and +// the plugin infrastructure. It should be included in file type +// handlers. + +#ifndef _PQIV_H_INCLUDED +#define _PQIV_H_INCLUDED + +#include +#include +#include +#include "lib/bostree.h" + +#ifndef PQIV_VERSION +#define PQIV_VERSION "2.3" +#endif + +#define FILE_FLAGS_ANIMATION (guint)(1) +#define FILE_FLAGS_MEMORY_IMAGE (guint)(1<<1) + +// The structure for images {{{ +typedef struct file_type_handler_struct_t file_type_handler_t; +typedef struct { + // File type + const file_type_handler_t *file_type; + + // Special flags + // FILE_FLAGS_ANIMATION -> Animation functions are invoked + // Set by file type handlers + // FILE_FLAGS_MEMORY_IMAGE -> File lives in memory + guint file_flags; + + // The file name to display and to sort by + gchar *display_name; + + // The URI or file name of the file + gchar *file_name; + + // If the file is a memory image, the actual image data + GBytes *file_data; + + // The file monitor structure is used for inotify-watching of + // the files + GFileMonitor *file_monitor; + + // This flag stores whether this image is currently loaded + // and valid. i.e. if it is set, you can assume that + // private_data contains a representation of the image; + // if not, you can NOT assume that it does not. + gboolean is_loaded; + + // Cached image size + guint width; + guint height; + + // File-type specific data, allocated and freed by the file type handlers + void *private; +} file_t; +// }}} +// Definition of the built-in file types {{{ + +// If you want to implement your own file type, you'll have to implement the +// following functions and a non-static initialization function named +// file_type_NAME_initializer that fills a file_type_handler_t with pointers to +// the functions. Store the file in backends/NAME.c and adjust the Makefile to +// add the required libraries if your backend is listed in the $(BACKENDS) +// variable. + +typedef enum { PARAMETER, RECURSION, INOTIFY, BROWSE_ORIGINAL_PARAMETER, FILTER_OUTPUT } load_images_state_t; +// Allocation function: Allocate the ->private structure within a file and add the +// image(s) to the list of available images via load_images_handle_parameter_add_file() +// If an image is not to be loaded for any reason, the file structure should be +// deallocated using file_free() +// Returns a pointer to the first added image +// Optional, you can also set the pointer to this function to NULL. +typedef BOSNode *(*file_type_alloc_fn_t)(load_images_state_t state, file_t *file); + +// Deallocation, if a file is removed from the images list. Free the ->private structure. +// Only called if ->private is non-NULL. +typedef void (*file_type_free_fn_t)(file_t *file); + +// Actually load a file into memory +typedef void (*file_type_load_fn_t)(file_t *file, GInputStream *data, GError **error_pointer); + +// Unload a file +typedef void (*file_type_unload_fn_t)(file_t *file); + +// Animation support: Initialize memory for animations, return ms until first frame +// Optional, you can also set the pointer to this function to NULL. +typedef double (*file_type_animation_initialize_fn_t)(file_t *file); + +// Animation support: Advance to the next frame, return ms until next frame +// Optional, you can also set the pointer to this function to NULL. +typedef double (*file_type_animation_next_frame_fn_t)(file_t *file); + +// Draw the current view to a cairo context +typedef void (*file_type_draw_fn_t)(file_t *file, cairo_t *cr); + +struct file_type_handler_struct_t { + // All files will be filtered with this filter. If it lets it pass, + // a handler is assigned to a file. If none do, the file is + // discarded if it was found during directory traversal or + // loaded using the first image backend if it was an explicit + // parameter. + GtkFileFilter *file_types_handled; + + // Pointers to the functions defined above + file_type_alloc_fn_t alloc_fn; + file_type_free_fn_t free_fn; + file_type_load_fn_t load_fn; + file_type_unload_fn_t unload_fn; + file_type_animation_initialize_fn_t animation_initialize_fn; + file_type_animation_next_frame_fn_t animation_next_frame_fn; + file_type_draw_fn_t draw_fn; +}; + +// Initialization function: Tell pqiv about a backend +typedef void (*file_type_initializer_fn_t)(file_type_handler_t *info); + +// pqiv symbols available to plugins {{{ + +// Global cancellable that should be used for every i/o operation +extern GCancellable *image_loader_cancellable; + +// Current scale level. For backends that don't support cairo natively. +extern gdouble current_scale_level; + +// Load a file from disc/memory/network +GInputStream *image_loader_stream_file(file_t *file, GError **error_pointer); + +// Add a file to the list of loaded files +// Should be called at least once in a file_type_alloc_fn_t, with the state being +// forwarded unaltered. +BOSNode *load_images_handle_parameter_add_file(load_images_state_t state, file_t *file); + +// Load all data from an input stream into memory, conveinience function +GBytes *g_input_stream_read_completely(GInputStream *input_stream, GCancellable *cancellable, GError **error_pointer); + +// Free a file +void file_free(file_t *file); + +// }}} + +// File type handlers, used in the initializer and file type guessing +extern file_type_handler_t file_type_handlers[]; + +/* }}} */ + +#endif From d673010420066179e21fd9501a512b46e268f22e Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 4 Feb 2015 08:04:51 +0100 Subject: [PATCH 210/875] Add .nasm extension for Assembly files. Sample file by Chris Hinsley. --- lib/linguist/languages.yml | 1 + samples/Assembly/forth.nasm | 2841 +++++++++++++++++++++++++++++++++++ 2 files changed, 2842 insertions(+) create mode 100644 samples/Assembly/forth.nasm diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c02ebfea..33a22975 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -206,6 +206,7 @@ Assembly: - .asm - .ASM - .a51 + - .nasm tm_scope: source.asm.x86 ace_mode: assembly_x86 diff --git a/samples/Assembly/forth.nasm b/samples/Assembly/forth.nasm new file mode 100644 index 00000000..c411c7ff --- /dev/null +++ b/samples/Assembly/forth.nasm @@ -0,0 +1,2841 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; A Forth by Chris Hinsley +;; nasm -f macho forth.nasm +;; ld -o forth -e _main forth.o +;; ./forth +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + %define VERSION_NUM 30 + + ; various buffer area sizes + %define DATA_STACK_SIZE 1024 + %define USER_DEFS_SIZE (64*1024) + %define NUM_HASH_CHAINS 64 + %define MAX_LINE_SIZE 128 + + %define SYS_exit 1 + %define SYS_read 3 + %define SYS_write 4 + %define SYS_open 5 + %define SYS_close 6 + %define SYS_unlink 10 + %define SYS_mprotect 74 + %define SYS_fsync 95 + %define SYS_rename 128 + %define SYS_stat 188 + %define SYS_lseek 199 + %define SYS_fstat 189 + %define SYS_ftruncate 201 + + %define PROT_READ 0x01 ;pages can be read + %define PROT_WRITE 0x02 ;pages can be written + %define PROT_EXEC 0x04 ;pages can be executed + %define PROT_ALL (PROT_READ | PROT_WRITE | PROT_EXEC) + %define PAGE_SIZE 4096 + +;;;;;;;;;;;;;;;;;;;;;;;;;; +; some NASM codeing macros +;;;;;;;;;;;;;;;;;;;;;;;;;; + + %macro loopstart 0 + %push loopstart + %$loop_start: + %endmacro + + %macro break 0 + jmp %$loop_exit + %endmacro + + %macro breakif 1 + j%+1 %$loop_exit + %endmacro + + %macro loopend 0 + jmp %$loop_start + %$loop_exit: + %pop + %endmacro + + %macro repeat 0 + %push repeat + %$loop_start: + %endmacro + + %macro until 1 + j%-1 %$loop_start + %$loop_exit: + %pop + %endmacro + + %macro if 1 + %push if + j%-1 %$ifnot + %endmacro + + %macro else 0 + %ifctx if + %repl else + jmp %$ifend + %$ifnot: + %else + %error "expected `if' before `else'" + %endif + %endmacro + + %macro endif 0 + %ifctx if + %$ifnot: + %pop + %elifctx else + %$ifend: + %pop + %else + %error "expected `if' or `else' before `endif'" + %endif + %endmacro + +;;;;;;;;;;;;;;;; +; base VM macros +;;;;;;;;;;;;;;;; + + ; eip Forths IP + ; esp Forths R + ; ebp Forths S + ; ebx Forths TOS + + ; push on to return stack + %macro PUSHRSP 1 + push %1 + %endm + + ; pop top of return stack + %macro POPRSP 1 + pop %1 + %endm + + ; save into return stack + %macro PUTRSP 2 + %if (%2 = 0) + mov [esp], %1 + %elif ((%2 >= -128) && (%2 < 128)) + mov [byte esp + %2], %1 + %else + mov [long esp + %2], %1 + %endif + %endm + + ; load from return stack + %macro PICKRSP 2 + %if (%2 = 0) + mov %1, [esp] + %elif ((%2 >= -128) && (%2 < 128)) + mov %1, [byte esp + %2] + %else + mov %1, [long esp + %2] + %endif + %endm + + ; set return stack + %macro SETRSP 1 + mov esp, %1 + %endm + + ; get return stack + %macro GETRSP 1 + mov %1, esp + %endm + + ; adjust return stack + %macro ADDRSP 1 + %if ((%1 >= -128) && (%1 < 128)) + add esp, byte %1 + %else + add esp, %1 + %endif + %endm + + ; push on to data stack + %macro PUSHDSP 1 + sub ebp, byte 4 + mov [ebp], %1 + %endm + + ; pop top of data stack + %macro POPDSP 1 + mov %1, [ebp] + add ebp, byte 4 + %endm + + ; save into data stack + %macro PUTDSP 2 + %if (%2 = 0) + mov [ebp], %1 + %elif ((%2 >= -128) && (%2 < 128)) + mov [byte ebp + %2], %1 + %else + mov [long ebp + %2], %1 + %endif + %endm + + ; load from data stack + %macro PICKDSP 2 + %if (%2 = 0) + mov %1, [ebp] + %elif ((%2 >= -128) && (%2 < 128)) + mov %1, [byte ebp + %2] + %else + mov %1, [long ebp + %2] + %endif + %endm + + ; set data stack + %macro SETDSP 1 + mov ebp, %1 + %endm + + ; get data stack + %macro GETDSP 1 + mov %1, ebp + %endm + + ; adjust data stack + %macro ADDDSP 1 + %if ((%1 >= -128) && (%1 < 128)) + add ebp, byte %1 + %else + add ebp, %1 + %endif + %endm + + ; load value onto data stack + %macro LOADTOS 1 + PUSHDSP ebx + mov ebx, %1 + %endm + + ; move from data to return stack + %macro TORSP 0 + PUSHRSP ebx + POPDSP ebx + %endm + + ; move from return to data stack + %macro FROMRSP 0 + PUSHDSP ebx + POPRSP ebx + %endm + + ; copy from return to data stack + %macro FETCHRSP 0 + PUSHDSP ebx + PICKRSP ebx, 0 + %endm + + ; align reg + %define DP_ALIGN 3 + %macro ALIGNREG 1 + add %1, byte DP_ALIGN + and %1, byte ~DP_ALIGN + %endm + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; dictionary building macros +;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + ; format of dictionary entry flag byte + %define F_IMMED 0x80 + %define F_HIDDEN 0x20 + %define F_LENMASK 0x1f + + %define NULL 0 + %define H_LLINK 0 + %define H_HLINK 4 + %define H_NSIZE 8 + %define H_NAME 9 + + %define XT_BODY -12 + %define XT_LENGTH -8 + %define XT_COMPILE -4 + %define XT_SIZE 12 + + %macro defword 4 + %push newword + %strlen len %1 + align 4 + dic_%3: + dd NULL ; LATEST list link + dd NULL ; hash chain link + db len + %2 ; flags + length byte + db %1 ; the name + dd %3 ; body pointer + dd %$code_end - %3 ; code length + dd %4 ; compile action word + %3: + %endm ; assembler code follows + + %macro defword_end 0 + %$code_end: + %pop + %endm + + %macro defvar 4 + defword %1, %2, %3, WORD_INLINE_COMMA + LOADTOS var_%3 + ret + defword_end + align 4 + var_%3: + dd %4 + %endm + + %macro defvar2 5 + defword %1, %2, %3, WORD_INLINE_COMMA + LOADTOS var_%3 + ret + defword_end + align 4 + var_%3: + dd %4 + dd %5 + %endm + + %macro defconst 4 + defword %1, %2, %3, WORD_INLINE_COMMA + LOADTOS %4 + ret + defword_end + %endm + +;;;;;;;;;;;;;;;;;;;;;;;;;; +; entry point +;;;;;;;;;;;;;;;;;;;;;;;;;; + + SECTION .text + global _main +_main: + ; use mprotect to allow read/write/execute of the data section + mov edx, forth_start + and edx, -PAGE_SIZE ;start address + mov ecx, forth_end + sub ecx, edx ;length + mov ebx, PROT_ALL ;flags + push ebx + push ecx + push edx + push 0 ;padding + mov eax, SYS_mprotect + int 0x80 + add esp, 16 + jmp forth_start + + SECTION .data +forth_start: + ; init data and return stacks, saving initial positions + ; in Forth vars R0 and S0 + cld + GETRSP [var_WORD_SZ] + SETDSP [var_WORD_SZ] + ADDRSP -DATA_STACK_SIZE + GETRSP [var_WORD_RZ] + + ; link built in dictionary + mov esi, dictionary_start + xor edi, edi + repeat + lodsd + mov [eax + H_LLINK], edi + mov edi, eax + push esi + mov cl, [eax + H_NSIZE] + and ecx, F_LENMASK + lea esi, [eax + H_NAME] + call strhashi + and ebx, NUM_HASH_CHAINS-1 + mov esi, hash_buckets + mov eax, [esi + (ebx * 4)] + mov [esi + (ebx * 4)], edi + mov [edi + H_HLINK], eax + pop esi + cmp esi, dictionary_end + until z + mov [var_WORD_LATEST], edi + + ; run temp interpreter loop till we can get into the real QUIT word + call WORD_LBRAC ; interpret state + LOADTOS 666q ; octal ! + TORSP + LOADTOS 0 + TORSP + LOADTOS bootfile + TORSP + call WORD_SYS_OPEN + call WORD_SYSCALL + ADDRSP 12 + TORSP ; ( fd ) of "forth.f" + loopstart + LOADTOS tib_buffer + LOADTOS MAX_LINE_SIZE + FETCHRSP ; ( c-addr len fd ) + call WORD_READLINE ; ( num flag flag ) + call WORD_DROP2 + LOADTOS tib_buffer + call WORD_SWAP + call WORD_INHASH + call WORD_STORE2 + LOADTOS 0 + call WORD_TOIN + call WORD_STORE + call WORD_INTERPRET + loopend ; and loop till QUIT takes over + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; a few case insensative string operations +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + %macro to_lower 1 + ; lower case check + cmp %1, 'A' + if ge + cmp %1, 'Z' + if le + ; make it lower case + add %1, byte 'a' - 'A' + endif + endif + %endm + +strcpyi: + test ecx, ecx + if nz + strcpyi_l1: + lodsb + to_lower al + stosb + loop strcpyi_l1 + endif + ret + +strcmpi: + test ecx, ecx + if nz + strcmpi_l1: + lodsb + mov bl, [edi] + lea edi, [edi + 1] + to_lower al + to_lower bl + cmp bl, al + if z + loop strcmpi_l1 + endif + endif + ret + +;;;;;;;;;;;;;;; +; hash function +;;;;;;;;;;;;;;; + +strhashi: + mov ebx, 5381 + test ecx, ecx + if nz + mov edx, 33 + strhashi_l1: + lodsb + movzx eax, al + to_lower eax + imul ebx, edx + add ebx, eax + loop strhashi_l1 + endif + ret + +;;;;;;;;;;;;;;;;;;; +; syscall functions +;;;;;;;;;;;;;;;;;;; + +_syscall: + int 0x80 + if c + neg eax + endif + ret + +_lsyscall: + int 0x80 + if c + not eax + not edx + add eax, 1 + adc edx, 0 + endif + ret + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; built in variables +; STATE Is the interpreter executing code (0) or compiling a word (non-zero)? +; LATEST Points to the latest (most recently defined) word in the dictionary. +; DP Points to the next free byte of memory. When compiling, compiled words go here. +; S0 Stores the address of the top of the parameter stack. +; R0 The address of the top of the return stack. +; BASE The current base for printing and reading numbers. +; #IN The current input buffer descriptor. +; >IN The current input offset. +; SOURCEFD The current input source file descriptor. +; BLK The current block number. +; CHARBUF Single char buffer. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defvar "state", 0, WORD_STATE, 0 + defvar "dp", 0, WORD_DP, dictionary_start + defvar "latest", 0, WORD_LATEST, 0 + defvar "s0", 0, WORD_SZ, 0 + defvar "r0", 0, WORD_RZ, 0 + defvar "base", 0, WORD_BASE, 10 + defvar2 "#IN", 0, WORD_INHASH, 0, 0 + defvar ">in", 0, WORD_TOIN, 0 + defvar "sourcefd", 0, WORD_SOURCEFD, 0 + defvar "blk", 0, WORD_BLK, 0 + defvar "charbuf", 0, WORD_CHARBUF, 0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; built in constants +; VERSION The current version of this FORTH. +; WORDBUF The address of the buffer WORD uses. +; LINESIZE The line buffer size. +; F_IMMED The IMMEDIATE flag's actual value. +; F_HIDDEN The HIDDEN flag's actual value. +; F_LENMASK The length mask in the flags/len byte. +; H_NSIZE The flags/len field offset. +; H_NAME The name field offset. +; XT_BODY The xt body pointer. +; XT_LENGTH The xt length field offset. +; XT_COMPILE The xt compile field offset. +; XT_SIZE The xt size offset. +; SYS_* The numeric codes of various syscalls. +; O_* Various sycall flags/modes. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defconst "version", 0, WORD_VERSION, VERSION_NUM + defconst "wordbuf", 0, WORD_WORDBUF, word_buf + defconst "linesize", 0, WORD_LINESIZE, MAX_LINE_SIZE + defconst "f_immed", 0, WORD__F_IMMED, F_IMMED + defconst "f_hidden", 0, WORD__F_HIDDEN, F_HIDDEN + defconst "f_lenmask", 0, WORD__F_LENMASK, F_LENMASK + defconst "h_nsize", 0, WORD__H_NSIZE, H_NSIZE + defconst "h_name", 0, WORD__H_NAME, H_NAME + defconst "xt_body", 0, WORD__XT_BODY, XT_BODY + defconst "xt_length", 0, WORD__XT_LENGTH, XT_LENGTH + defconst "xt_compile", 0, WORD__XT_COMPILE, XT_COMPILE + defconst "xt_size", 0, WORD__XT_SIZE, XT_SIZE + + defconst "sys_exit", 0, WORD_SYS_EXIT, SYS_exit + defconst "sys_open", 0, WORD_SYS_OPEN, SYS_open + defconst "sys_close", 0, WORD_SYS_CLOSE, SYS_close + defconst "sys_read", 0, WORD_SYS_READ, SYS_read + defconst "sys_write", 0, WORD_SYS_WRITE, SYS_write + defconst "sys_unlink", 0, WORD_SYS_UNLINK, SYS_unlink + defconst "sys_rename", 0, WORD_SYS_RENAME, SYS_rename + defconst "sys_ftruncate", 0, WORD_SYS_FTRUNCATE, SYS_ftruncate + defconst "sys_fsync", 0, WORD_SYS_FSYNC, SYS_fsync + defconst "sys_lseek", 0, WORD_SYS_LSEEK, SYS_lseek + defconst "sys_fstat", 0, WORD_SYS_FSTAT, SYS_fstat + defconst "sys_stat", 0, WORD_SYS_STAT, SYS_stat + + defconst "o_rdonly", 0, WORD_O_RDONLY, 0x0 + defconst "o_wronly", 0, WORD_O_WRONLY, 0x1 + defconst "o_rdwr", 0, WORD_O_RDWR, 0x2 + defconst "o_creat", 0, WORD_O_CREAT, 0x100 + defconst "o_excl", 0, WORD_O_EXCL, 0x200 + defconst "o_trunc", 0, WORD_O_TRUNC, 0x1000 + defconst "o_append", 0, WORD_O_APPEND, 0x2000 + defconst "o_nonblock", 0, WORD_O_NONBLOCK, 0x4000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;; +; data stack ordering words +;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "dsp@", 0, WORD_DSPFETCH, WORD_INLINE_COMMA + PUSHDSP ebx + GETDSP ebx + ret + defword_end + + defword "dsp!", 0, WORD_DSPSTORE, WORD_INLINE_COMMA + SETDSP ebx + POPDSP ebx + ret + defword_end + + defword "drop", 0, WORD_DROP, WORD_INLINE_COMMA + POPDSP ebx + ret + defword_end + + defword "swap", 0, WORD_SWAP, WORD_INLINE_COMMA + xchg ebx, [ebp] + ret + defword_end + + defword "dup", 0, WORD_DUP, WORD_INLINE_COMMA + PUSHDSP ebx + ret + defword_end + + defword "over", 0, WORD_OVER, WORD_INLINE_COMMA + PUSHDSP ebx + PICKDSP ebx, 4 + ret + defword_end + + defword "rot", 0, WORD_ROT, WORD_INLINE_COMMA + mov eax, ebx + PICKDSP ecx, 0 + PICKDSP ebx, 4 + PUTDSP eax, 0 + PUTDSP ecx, 4 + ret + defword_end + + defword "-rot", 0, WORD_NROT, WORD_INLINE_COMMA + mov eax, ebx + PICKDSP ebx, 0 + PICKDSP ecx, 4 + PUTDSP ecx, 0 + PUTDSP eax, 4 + ret + defword_end + + defword "2drop", 0, WORD_DROP2, WORD_INLINE_COMMA + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "2dup", 0, WORD_DUP2, WORD_INLINE_COMMA + PICKDSP eax, 0 + ADDDSP -8 + PUTDSP eax, 0 + PUTDSP ebx, 4 + ret + defword_end + + defword "2swap", 0, WORD_SWAP2, WORD_INLINE_COMMA + mov eax, ebx + PICKDSP ecx, 0 + PICKDSP ebx, 4 + PICKDSP edx, 8 + PUTDSP edx, 0 + PUTDSP eax, 4 + PUTDSP ecx, 8 + ret + defword_end + + defword "2rot", 0, WORD_ROT2, WORD_INLINE_COMMA + mov eax, ebx + PICKDSP ecx, 16 + PICKDSP ebx, 12 + PICKDSP edx, 8 + PICKDSP edi, 4 + PICKDSP esi, 0 + PUTDSP edx, 16 + PUTDSP edi, 12 + PUTDSP esi, 8 + PUTDSP eax, 4 + PUTDSP ecx, 0 + ret + defword_end + + defword "?dup", 0, WORD_QDUP, WORD_INLINE_COMMA + test ebx, ebx + if nz + PUSHDSP ebx + endif + ret + defword_end + + defword "!?dup", 0, WORD_NQDUP, WORD_INLINE_COMMA + test ebx, ebx + if z + PUSHDSP ebx + endif + ret + defword_end + + defword "nip", 0, WORD_NIP, WORD_INLINE_COMMA + ADDDSP 4 + ret + defword_end + + defword "tuck", 0, WORD_TUCK, WORD_INLINE_COMMA + PICKDSP eax, 0 + PUTDSP ebx, 0 + PUSHDSP eax + ret + defword_end + + defword "pick", 0, WORD_PICK, WORD_INLINE_COMMA + mov ebx, [ebp + (ebx * 4)] + ret + defword_end + + defword "2tuck", 0, WORD_TUCK2, WORD_INLINE_COMMA + PICKDSP eax, 0 + PICKDSP ecx, 4 + PICKDSP edx, 8 + ADDDSP -8 + PUTDSP eax, 0 + PUTDSP ecx, 4 + PUTDSP edx, 8 + PUTDSP ebx, 12 + PUTDSP eax, 16 + ret + defword_end + + defword "2nip", 0, WORD_NIP2, WORD_INLINE_COMMA + PICKDSP eax, 0 + ADDDSP 8 + PUTDSP eax, 0 + ret + defword_end + + defword "2over", 0, WORD_OVER2, WORD_INLINE_COMMA + ADDDSP -8 + PUTDSP ebx, 4 + PICKDSP ebx, 16 + PUTDSP ebx, 0 + PICKDSP ebx, 12 + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; return stack ordering words +;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword ">r", 0, WORD_TOR, WORD_INLINE_COMMA + TORSP + ret + defword_end + + defword "r>", 0, WORD_FROMR, WORD_INLINE_COMMA + FROMRSP + ret + defword_end + + defword "2>r", 0, WORD_TOR2, WORD_INLINE_COMMA + ADDRSP -8 + PICKDSP ecx, 0 + PUTRSP ebx, 0 + PUTRSP ecx, 4 + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "2r>", 0, WORD_FROMR2, WORD_INLINE_COMMA + ADDDSP -8 + PUTDSP ebx, 4 + PICKRSP ebx, 0 + PICKRSP ecx, 4 + PUTDSP ecx, 0 + ADDRSP 8 + ret + defword_end + + defword "rsp@", 0, WORD_RSPFETCH, WORD_INLINE_COMMA + PUSHDSP ebx + GETRSP ebx + ret + defword_end + + defword "r@", 0, WORD_RFETCH, WORD_INLINE_COMMA + PUSHDSP ebx + PICKRSP ebx, 0 + ret + defword_end + + defword "r!", 0, WORD_RSTORE, WORD_INLINE_COMMA + PUTRSP ebx, 0 + POPDSP ebx + ret + defword_end + + defword "2r@", 0, WORD_RFETCH2, WORD_INLINE_COMMA + ADDDSP -8 + PUTDSP ebx, 4 + PICKRSP ebx, 4 + PICKRSP ecx, 0 + PUTDSP ecx, 0 + ret + defword_end + + defword "rsp!", 0, WORD_RSPSTORE, WORD_INLINE_COMMA + SETRSP ebx + POPDSP ebx + ret + defword_end + + defword "rdrop", 0, WORD_RDROP, WORD_INLINE_COMMA + ADDRSP 4 + ret + defword_end + + defword "2rdrop", 0, WORD_RDROP2, WORD_INLINE_COMMA + ADDRSP 8 + ret + defword_end + + defword "n>r", 0, WORD_NTOR, WORD_CALL_COMMA + PUSHDSP ebx + PICKRSP eax, 0 + mov ecx, ebx + inc ecx + neg ebx + lea esp, [esp + (ebx * 4)] + mov esi, ebp + mov edi, esp + rep movsd + mov ebp, esi + POPDSP ebx + jmp eax + defword_end + + defword "nr>", 0, WORD_NFROMR, WORD_CALL_COMMA + PUSHDSP ebx + POPRSP eax + PICKRSP ebx, 0 + inc ebx + mov ecx, ebx + neg ebx + lea ebp, [ebp + (ebx * 4)] + mov esi, esp + mov edi, ebp + rep movsd + mov esp, esi + POPDSP ebx + jmp eax + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; memory fetch and store words +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "!", 0, WORD_STORE, WORD_INLINE_COMMA + PICKDSP eax, 0 + mov [ebx], eax + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "@", 0, WORD_FETCH, WORD_INLINE_COMMA + mov ebx, [ebx] + ret + defword_end + + defword "+!", 0, WORD_ADDSTORE, WORD_INLINE_COMMA + PICKDSP eax, 0 + add [ebx], eax + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "-!", 0, WORD_SUBSTORE, WORD_INLINE_COMMA + PICKDSP eax, 0 + sub [ebx], eax + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "c!", 0, WORD_STOREBYTE, WORD_INLINE_COMMA + PICKDSP eax, 0 + mov [ebx], al + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "c+!", 0, WORD_ADDBYTE, WORD_INLINE_COMMA + PICKDSP eax, 0 + add [ebx], al + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "c@", 0, WORD_FETCHBYTE, WORD_INLINE_COMMA + mov eax, ebx + xor ebx, ebx + mov bl, [eax] + ret + defword_end + + defword "w!", 0, WORD_STORESHORT, WORD_INLINE_COMMA + PICKDSP eax, 0 + mov [ebx], ax + PICKDSP ebx, 4 + ADDDSP 8 + ret + defword_end + + defword "w@", 0, WORD_FETCHSHORT, WORD_INLINE_COMMA + mov eax, ebx + xor ebx, ebx + mov bx, [eax] + ret + defword_end + + defword "2!", 0, WORD_STORE2, WORD_INLINE_COMMA + PICKDSP ecx, 4 + PICKDSP edx, 0 + mov [ebx + 4], ecx + mov [ebx], edx + PICKDSP ebx, 8 + ADDDSP 12 + ret + defword_end + + defword "2@", 0, WORD_FETCH2, WORD_INLINE_COMMA + ADDDSP -4 + mov ecx, [ebx +4] + mov ebx, [ebx] + PUTDSP ecx, 0 + ret + defword_end + + defword "blank", 0, WORD_BLANK, WORD_CALL_COMMA + mov ecx, ebx + PICKDSP ebx, 4 + PICKDSP edi, 0 + ADDDSP 8 + mov eax, 0x20 + rep stosb + ret + defword_end + + defword "erase", 0, WORD_ERASE, WORD_CALL_COMMA + mov ecx, ebx + PICKDSP ebx, 4 + PICKDSP edi, 0 + ADDDSP 8 + xor eax, eax + rep stosb + ret + defword_end + + defword "fill", 0, WORD_FILL, WORD_CALL_COMMA + mov eax, ebx + PICKDSP ebx, 8 + PICKDSP edi, 4 + PICKDSP ecx, 0 + ADDDSP 12 + rep stosb + ret + defword_end + + defword "cmove>", 0, WORD_CMOVEB, WORD_CALL_COMMA + mov ecx, ebx + PICKDSP ebx, 8 + PICKDSP esi, 4 + PICKDSP edi, 0 + ADDDSP 12 + lea esi, [esi + ecx - 1] + lea edi, [edi + ecx - 1] + std + rep movsb + cld + ret + defword_end + + defword "cmove", 0, WORD_CMOVE, WORD_CALL_COMMA + mov ecx, ebx + PICKDSP ebx, 8 + PICKDSP esi, 4 + PICKDSP edi, 0 + ADDDSP 12 + rep movsb + ret + defword_end + + defword "move", 0, WORD_MOVE, WORD_CALL_COMMA + mov ecx, ebx + PICKDSP ebx, 8 + PICKDSP esi, 4 + PICKDSP edi, 0 + ADDDSP 12 + cmp esi, edi + if a + rep movsb + else + lea esi, [esi + ecx -1] + lea edi, [edi + ecx -1] + std + rep movsb + cld + endif + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; single precision alu words +;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "+", 0, WORD_ADD, WORD_INLINE_COMMA + add ebx, [ebp] + ADDDSP 4 + ret + defword_end + + defword "-", 0, WORD_SUB, WORD_INLINE_COMMA + mov eax, ebx + POPDSP ebx + sub ebx, eax + ret + defword_end + + defword "*", 0, WORD_MULL, WORD_INLINE_COMMA + imul ebx, [ebp] + ADDDSP 4 + ret + defword_end + + defword "/", 0, WORD_DIV, WORD_INLINE_COMMA + POPDSP eax + cdq + idiv ebx + mov ebx, eax + ret + defword_end + + defword "mod", 0, WORD_MOD, WORD_INLINE_COMMA + POPDSP eax + cdq + idiv ebx + mov ebx, edx + ret + defword_end + + defword "1+", 0, WORD_INCR, WORD_INLINE_COMMA + add ebx, byte 1 + ret + defword_end + + defword "1-", 0, WORD_DECR, WORD_INLINE_COMMA + sub ebx, byte 1 + ret + defword_end + + defword "4+", 0, WORD_INCR4, WORD_INLINE_COMMA + add ebx, byte 4 + ret + defword_end + + defword "4-", 0, WORD_DECR4, WORD_INLINE_COMMA + sub ebx, byte 4 + ret + defword_end + + defword "2+", 0, WORD_INCR2, WORD_INLINE_COMMA + add ebx, byte 2 + ret + defword_end + + defword "2-", 0, WORD_DECR2, WORD_INLINE_COMMA + sub ebx, byte 2 + ret + defword_end + + defword "2*", 0, WORD_TWOMUL, WORD_INLINE_COMMA + shl ebx, byte 1 + ret + defword_end + + defword "2/", 0, WORD_TWODIV, WORD_INLINE_COMMA + sar ebx, byte 1 + ret + defword_end + + defword "abs", 0, WORD_ABS, WORD_INLINE_COMMA + mov eax, ebx + sar eax, byte 31 + add ebx, eax + xor ebx, eax + ret + defword_end + + defword "min", 0, WORD_MIN, WORD_INLINE_COMMA + POPDSP eax + cmp ebx, eax + if g + mov ebx, eax + endif + ret + defword_end + + defword "max", 0, WORD_MAX, WORD_INLINE_COMMA + POPDSP eax + cmp ebx, eax + if l + mov ebx, eax + endif + ret + defword_end + + defword "lshift", 0, WORD_LSHIFT, WORD_INLINE_COMMA + mov ecx, ebx + POPDSP ebx + shl ebx, cl + ret + defword_end + + defword "rshift", 0, WORD_RSHIFT, WORD_INLINE_COMMA + mov ecx, ebx + POPDSP ebx + shr ebx, cl + ret + defword_end + + defword "and", 0, WORD_AND, WORD_INLINE_COMMA + and ebx, [ebp] + ADDDSP 4 + ret + defword_end + + defword "or", 0, WORD_OR, WORD_INLINE_COMMA + or ebx, [ebp] + ADDDSP 4 + ret + defword_end + + defword "xor", 0, WORD_XOR, WORD_INLINE_COMMA + xor ebx, [ebp] + ADDDSP 4 + ret + defword_end + + defword "negate", 0, WORD_NEGATE, WORD_INLINE_COMMA + neg ebx + ret + defword_end + + defword "invert", 0, WORD_INVERT, WORD_INLINE_COMMA + not ebx + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; single precision comparision words +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "=", 0, WORD_EQ, WORD_INLINE_COMMA + cmp [ebp], ebx + sete bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "<>", 0, WORD_NE, WORD_INLINE_COMMA + cmp [ebp], ebx + setne bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "<", 0, WORD_LT, WORD_INLINE_COMMA + cmp [ebp], ebx + setl bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword ">", 0, WORD_GT, WORD_INLINE_COMMA + cmp [ebp], ebx + setg bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "u<", 0, WORD_ULT, WORD_INLINE_COMMA + cmp [ebp], ebx + setb bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "u>", 0, WORD_UGT, WORD_INLINE_COMMA + cmp [ebp], ebx + seta bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "u<=", 0, WORD_ULTEQ, WORD_INLINE_COMMA + cmp [ebp], ebx + setbe bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "u>=", 0, WORD_UGTEQ, WORD_INLINE_COMMA + cmp [ebp], ebx + setae bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "<=", 0, WORD_LTEQ, WORD_INLINE_COMMA + cmp [ebp], ebx + setle bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword ">=", 0, WORD_GTEQ, WORD_INLINE_COMMA + cmp [ebp], ebx + setge bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "0=", 0, WORD_ZEQ, WORD_INLINE_COMMA + test ebx, ebx + setz bl + movzx ebx, bl + neg ebx + ret + defword_end + + defword "0<>", 0, WORD_ZNE, WORD_INLINE_COMMA + test ebx, ebx + setnz bl + movzx ebx, bl + neg ebx + ret + defword_end + + defword "0<", 0, WORD_ZLT, WORD_INLINE_COMMA + test ebx, ebx + setl bl + movzx ebx, bl + neg ebx + ret + defword_end + + defword "0>", 0, WORD_ZGT, WORD_INLINE_COMMA + test ebx, ebx + setg bl + movzx ebx, bl + neg ebx + ret + defword_end + + defword "0<=", 0, WORD_ZLTEQ, WORD_INLINE_COMMA + test ebx, ebx + setle bl + movzx ebx, bl + neg ebx + ret + defword_end + + defword "0>=", 0, WORD_ZGTEQ, WORD_INLINE_COMMA + test ebx, ebx + setge bl + movzx ebx, bl + neg ebx + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; double precision ALU words +;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "s>d", 0, WORD_STOD, WORD_INLINE_COMMA + mov eax, ebx + cdq + PUSHDSP eax + mov ebx, edx + ret + defword_end + + defword "d>s", 0, WORD_DTOS, WORD_INLINE_COMMA + POPDSP ebx + ret + defword_end + + defword "d+", 0, WORD_DPLUS, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP edx, 4 + PICKDSP eax, 0 + add eax, ecx + adc ebx, edx + PUTDSP eax, 8 + ADDDSP 8 + ret + defword_end + + defword "d-", 0, WORD_DMINUS, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP edx, 4 + PICKDSP eax, 0 + sub ecx, eax + sbb edx, ebx + PUTDSP ecx, 8 + mov ebx, edx + ADDDSP 8 + ret + defword_end + + defword "d2*", 0, WORD_D2STAR, WORD_INLINE_COMMA + PICKDSP eax, 0 + shl eax, 1 + rcl ebx, 1 + PUTDSP eax, 0 + ret + defword_end + + defword "d2/", 0, WORD_D2SLASH, WORD_INLINE_COMMA + PICKDSP eax, 0 + sar ebx, 1 + rcr eax, 1 + PUTDSP eax, 0 + ret + defword_end + + defword "*/", 0, WORD_MULDIV, WORD_INLINE_COMMA + PICKDSP edx, 4 + PICKDSP eax, 0 + imul edx + idiv ebx + mov ebx, eax + ADDDSP 8 + ret + defword_end + + defword "*/mod", 0, WORD_STARSMOD, WORD_INLINE_COMMA + PICKDSP edx, 4 + PICKDSP eax, 0 + imul edx + idiv ebx + PUTDSP edx, 4 + ADDDSP 4 + mov ebx, eax + ret + defword_end + + defword "/mod", 0, WORD_DIVMOD, WORD_INLINE_COMMA + PICKDSP eax, 0 + cdq + idiv ebx + PUTDSP edx, 0 + mov ebx, eax + ret + defword_end + + defword "dnegate", 0, WORD_DNEGATE, WORD_INLINE_COMMA + PICKDSP eax, 0 + not eax + not ebx + add eax, 1 + adc ebx, 0 + PUTDSP eax, 0 + ret + defword_end + + defword "dabs", 0, WORD_DABS, WORD_INLINE_COMMA + test ebx, ebx + if l + PICKDSP eax, 0 + not eax + not ebx + add eax, 1 + adc ebx, 0 + PUTDSP eax, 0 + endif + ret + defword_end + + defword "dmax", 0, WORD_DMAX, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP edx, 4 + PICKDSP eax, 0 + ADDDSP 8 + mov esi, ecx + mov edi, edx + sub esi, eax + sbb edi, ebx + if l + PUTDSP eax, 0 + else + mov ebx, edx + endif + ret + defword_end + + defword "dmin", 0, WORD_DMIN, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP edx, 4 + PICKDSP eax, 0 + ADDDSP 8 + mov esi, ecx + mov edi, edx + sub esi, eax + sbb edi, ebx + if ge + PUTDSP eax, 0 + else + mov ebx, edx + endif + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; double precision comparision words +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "d0=", 0, WORD_DZEQ, WORD_INLINE_COMMA + or ebx, [ebp] + setz bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "d0<>", 0, WORD_DZNEQ, WORD_INLINE_COMMA + or ebx, [ebp] + setnz bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "d0<", 0, WORD_DZLT, WORD_INLINE_COMMA + test ebx, ebx + setl bl + ADDDSP 4 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "d=", 0, WORD_DEQ, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP eax, 4 + sub ecx, [ebp] + sbb eax, ebx + setz bl + ADDDSP 12 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "d<>", 0, WORD_DNEQ, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP eax, 4 + sub ecx, [ebp] + sbb eax, ebx + setnz bl + ADDDSP 12 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "d<", 0, WORD_DLT, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP eax, 4 + sub ecx, [ebp] + sbb eax, ebx + setl bl + ADDDSP 12 + movzx ebx, bl + neg ebx + ret + defword_end + + defword "du<", 0, WORD_DULT, WORD_INLINE_COMMA + PICKDSP ecx, 8 + PICKDSP eax, 4 + sub ecx, [ebp] + sbb eax, ebx + setb bl + ADDDSP 12 + movzx ebx, bl + neg ebx + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;; +; mixed precision words +;;;;;;;;;;;;;;;;;;;;;;; + + defword "m+", 0, WORD_MPLUS, WORD_INLINE_COMMA + PICKDSP eax, 4 + PICKDSP edx, 0 + add eax, ebx + adc edx, 0 + PUTDSP eax, 4 + mov ebx, edx + ADDDSP 4 + ret + defword_end + + defword "m-", 0, WORD_MMINUS, WORD_INLINE_COMMA + PICKDSP eax, 4 + PICKDSP edx, 0 + sub eax, ebx + sbb edx, 0 + PUTDSP eax, 4 + mov ebx, edx + ADDDSP 4 + ret + defword_end + + defword "m*", 0, WORD_MULSTAR, WORD_INLINE_COMMA + PICKDSP eax, 0 + imul ebx + PUTDSP eax, 0 + mov ebx, edx + ret + defword_end + + defword "m/", 0, WORD_MSLASH, WORD_INLINE_COMMA + PICKDSP eax, 4 + PICKDSP edx, 0 + idiv ebx + mov ebx, eax + ADDDSP 8 + ret + defword_end + + defword "um*", 0, WORD_UMULSTAR, WORD_INLINE_COMMA + PICKDSP eax, 0 + mul ebx + PUTDSP eax, 0 + mov ebx, edx + ret + defword_end + + defword "um/mod", 0, WORD_UMDIVMOD, WORD_INLINE_COMMA + PICKDSP eax, 4 + PICKDSP edx, 0 + div ebx + PUTDSP edx, 4 + mov ebx, eax + ADDDSP 4 + ret + defword_end + + defword "fm/mod", 0, WORD_FMDIVMOD, WORD_INLINE_COMMA + PICKDSP edx, 0 + PICKDSP eax, 4 + mov ecx, ebx + ADDDSP 4 + xor ecx, edx + idiv ebx + test ecx, ecx + if s + test edx, edx + if nz + dec eax + add edx, ebx + endif + endif + PUTDSP edx, 0 + mov ebx, eax + ret + defword_end + + defword "sm/rem", 0, WORD_SMDIVREM, WORD_INLINE_COMMA + PICKDSP eax, 4 + PICKDSP edx, 0 + idiv ebx + PUTDSP edx, 4 + mov ebx, eax + ADDDSP 4 + ret + defword_end + + defword "u/mod", 0, WORD_UDIVMOD, WORD_INLINE_COMMA + xor edx, edx + PICKDSP eax, 0 + div ebx + PUTDSP edx, 0 + mov ebx, eax + ret + defword_end + + defword "dm*", 0, WORD_DMULSTAR, WORD_CALL_COMMA + call WORD_TUCK + call WORD_MULL + TORSP + call WORD_UMULSTAR + FROMRSP + call WORD_ADD + ret + defword_end + +;;;;;;;;;;;;;;;;;;;; +; control flow words +;;;;;;;;;;;;;;;;;;;; + + defword "branch", 0, WORD_BRANCH, WORD_INLINE_COMMA +i_jmp: + jmp strict near i_ret + ret + defword_end + + defword "0branch", 0, WORD_ZBRANCH, WORD_INLINE_COMMA + mov eax, ebx + POPDSP ebx + test eax, eax + jz strict near i_jmp + ret + defword_end + + defword "exit", 0, WORD_EXIT, WORD_EXIT_COMMA +i_ret: + ret + defword_end + + defword "exit,", 0, WORD_EXIT_COMMA, WORD_CALL_COMMA + mov edi, [var_WORD_DP] + sub edi, 5 + cmp edi, [lastcall] ; are we just after a call instruction ? + if z + mov al, [i_jmp] + mov [edi], al ; change it to a jmp + endif + mov edi, [var_WORD_DP] + mov al, [i_ret] + stosb + mov [var_WORD_DP], edi + POPDSP ebx + ret + defword_end + + defword "execute", 0, WORD_EXECUTE, WORD_CALL_COMMA + mov eax, ebx ; Get xt into eax + POPDSP ebx ; After xt runs its ret will continue executing the current word. + jmp eax ; and jump to it. + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;; +; terminal input words +;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "read-char", 0, WORD_READCHAR, WORD_CALL_COMMA + mov ecx, var_WORD_CHARBUF ; 2nd param: buffer + mov edx, 1 ; 3rd param: max length + push edx + push ecx + push ebx + mov eax, SYS_read ; syscall: read + call _syscall + add esp, 12 + xor ebx, ebx + test eax, eax + if be + mov ebx, -1 + endif + ret + defword_end + + defword "read-line", 0, WORD_READLINE, WORD_CALL_COMMA + call WORD_NROT + call WORD_OVER + call WORD_ADD + call WORD_OVER ; ( fd start end cur ) +readline_l1: + PICKDSP eax, 0 + cmp ebx, eax + jz readline_l4 + PUSHDSP ebx + PICKDSP ebx, 12 + call WORD_READCHAR + test ebx, ebx + jz readline_l2 + call WORD_DROP + call WORD_DROP2 + call WORD_DROP2 + LOADTOS 0 + LOADTOS 0 + LOADTOS -1 + jmp readline_l5 +readline_l2: + mov ebx, [var_WORD_CHARBUF] + cmp ebx, 10 ; LF + jz readline_l3 + call WORD_OVER + call WORD_STOREBYTE + call WORD_INCR + jmp readline_l1 +readline_l3: + call WORD_DROP +readline_l4: + call WORD_NIP + call WORD_SWAP + call WORD_SUB + call WORD_NIP + LOADTOS -1 + LOADTOS 0 +readline_l5: + ret + defword_end + + defword "key", 0, WORD_KEY, WORD_CALL_COMMA + PUSHDSP ebx + xor ebx, ebx ; stdin + call WORD_READCHAR + mov ebx, [var_WORD_CHARBUF] + ret + defword_end + + defword "accept", 0, WORD_ACCEPT, WORD_CALL_COMMA + call WORD_OVER + call WORD_ADD + call WORD_OVER ; ( start end cur ) +accept_l1: + call WORD_KEY + cmp ebx, 127 ; BS + jz accept_l2 + cmp ebx, 10 ; LF + jz accept_l3 + call WORD_OVER ; ( start end cur key cur ) + call WORD_STOREBYTE + call WORD_INCR ; ( start end cur' ) + PICKDSP eax, 0 + cmp ebx, eax + jz accept_l4 + jmp accept_l1 +accept_l2: + PICKDSP eax, 4 ; ( start end cur' ) + cmp ebx, eax + jz accept_l1 + call WORD_DECR + jmp accept_l1 +accept_l3: + call WORD_DROP ; ( start end cur' ) +accept_l4: + call WORD_NIP + call WORD_SWAP + call WORD_SUB + ret + defword_end + + defword "tabs>spaces", 0, WORD_TABSTOSPACES, WORD_CALL_COMMA + mov ecx, ebx + POPDSP esi + test ecx, ecx + if nz + repeat + lodsb + cmp al, 9 ;TAB + if z + mov byte [esi - 1], ' ' + endif + dec ecx + until z + endif + POPDSP ebx + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;; +; terminal output words +;;;;;;;;;;;;;;;;;;;;;;; + + defword "type-fd", 0, WORD_TYPE_FD, WORD_CALL_COMMA + PICKDSP edx, 0 ; 3rd param: length of string + PICKDSP ecx, 4 ; 2nd param: address of string + ADDDSP 8 ; 1st param: FD in ebx + mov eax, SYS_write ; write syscall + push edx + push ecx + push ebx + call _syscall + add esp, 12 + POPDSP ebx + ret + defword_end + + defword "type", 0, WORD_TYPE, WORD_CALL_COMMA + LOADTOS 1 ; stdout + call WORD_TYPE_FD + ret + defword_end + + defword "emit", 0, WORD_EMIT, WORD_CALL_COMMA + mov [emit_scratch], bl ; write needs the address of the byte to write + mov ebx, emit_scratch + LOADTOS 1 + call WORD_TYPE + ret + defword_end + +;;;;;;;;;;;;;;;;;;; +; system call words +;;;;;;;;;;;;;;;;;;; + + defword "syscall", 0, WORD_SYSCALL, WORD_CALL_COMMA + pop eax + mov [syscallret], eax ; save return address + mov eax, ebx ; System call number (see ) + call _syscall + mov ebx, eax ; Result (negative for -errno) + jmp [syscallret] ; return to caller + defword_end + + defword "lsyscall", 0, WORD_LSYSCALL, WORD_CALL_COMMA + pop eax + mov [syscallret], eax ; save return address + mov eax, ebx ; System call number (see ) + call _lsyscall + PUSHDSP eax + mov ebx, edx ; Result (negative for -errno) + jmp [syscallret] ; return to caller + defword_end + +;;;;;;;;;;;;;; +; string words +;;;;;;;;;;;;;; + + defword "count", 0, WORD_COUNT, WORD_CALL_COMMA + xor eax, eax + mov al, [ebx] + inc ebx + LOADTOS eax + ret + defword_end + + defword "-trailing", 0, WORD_TRAILING, WORD_CALL_COMMA + test ebx, ebx + if nz + PICKDSP esi, 0 + mov ecx, ebx + add esi, ebx + dec esi + std + trailing_l1: + lodsb + cmp al, ' ' + if be + loop trailing_l1 + endif + mov ebx, ecx + cld + endif + ret + defword_end + + defword "/string", 0, WORD_SSTRING, WORD_CALL_COMMA + mov eax, ebx + POPDSP ebx + PICKDSP ecx, 0 + sub ebx, eax + add ecx, eax + PUTDSP ecx, 0 + ret + defword_end + + defword "compare", 0, WORD_COMPARE, WORD_CALL_COMMA + PICKDSP esi, 8 + PICKDSP edx, 4 + PICKDSP edi, 0 + ADDDSP 12 + mov ecx, ebx + cmp edx, ebx + if be + mov ecx, edx + endif + test ecx, ecx ; ecx lowest length + jnz compare_l2 + cmp edx, ebx + jz compare_l3 ; both are 0 length + jmp compare_l4 ; otherwise the longest wins +compare_l2: + cmpsb + jnz compare_l4 ; chars not same + loop compare_l2 + cmp edx, ebx ; all chars same + jnz compare_l4 ; strings not same size +compare_l3: + xor ebx, ebx ; same + jmp compare_l7 +compare_l4: + ja compare_l6 +compare_l5: + mov ebx, -1 + jmp compare_l7 +compare_l6: + mov ebx, 1 +compare_l7: + ret + defword_end + + defword "icompare", 0, WORD_COMPAREI, WORD_CALL_COMMA + PICKDSP esi, 8 + PICKDSP edx, 4 + PICKDSP edi, 0 + ADDDSP 12 + mov ecx, ebx + cmp edx, ebx + if be + mov ecx, edx + endif + test ecx, ecx ; ecx lowest length + jnz comparei_l2 + cmp edx, ebx + jz comparei_l3 ; both are 0 length + jmp comparei_l4 ; otherwise the longest wins +comparei_l2: + mov al, [esi] + mov ah, [edi] + to_lower al + to_lower ah + cmp ah, al + jnz comparei_l4 ; chars not same + inc edi + inc esi + loop comparei_l2 + cmp edx, ebx ; all chars same + jnz comparei_l4 ; strings not same size +comparei_l3: + xor ebx, ebx ; same + jmp comparei_l7 +comparei_l4: + ja comparei_l6 +comparei_l5: + mov ebx, -1 + jmp comparei_l7 +comparei_l6: + mov ebx, 1 +comparei_l7: + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; dictionary searching words +;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "find", 0, WORD_FIND, WORD_CALL_COMMA + call WORD_DUP + call WORD_COUNT + call WORD_FIND_DICT + test ebx, ebx + if nz + mov dl, [ebx + H_NSIZE] + call WORD_TCFA + LOADTOS 1 + and edx, F_IMMED + if z + neg ebx + endif + call WORD_ROT + call WORD_DROP + endif + ret + defword_end + + defword "(find)", 0, WORD_FIND_DICT, WORD_CALL_COMMA + mov ecx, ebx ; ecx = length + POPDSP edi ; edi = address + PUSHRSP ecx + mov esi, edi + call strhashi + and ebx, NUM_HASH_CHAINS-1 + mov esi, hash_buckets + mov edx, [esi + (ebx * 4)] + POPRSP ecx ; edx can now scan back through this hash chain +findd_l1: + test edx, edx ; NULL pointer? (end of the linked list) + je findd_l4 + xor eax, eax + mov al, [edx + H_NSIZE] ; al = flags+length field + and al, (F_HIDDEN|F_LENMASK) ; al = name length + cmp al, cl ; Length is the same? + jne findd_l2 + PUSHRSP ecx ; Save the length + PUSHRSP edi ; Save the address (repe cmpsb will move this pointer) + lea esi, [edx + H_NAME] ; Dictionary string we are checking against. + call strcmpi + POPRSP edi + POPRSP ecx + jne findd_l2 ; Not the same. + mov ebx, edx + ret +findd_l2: + mov edx, [edx + H_HLINK] ; Move back through the link field to the previous word + jmp findd_l1 ; .. and loop. +findd_l4: + xor ebx, ebx ; Return zero to indicate not found. + ret + defword_end + + defword ">cfa", 0, WORD_TCFA, WORD_CALL_COMMA + add ebx, H_NSIZE + mov al, [ebx] ; Load flags+len into al. + inc ebx ; skip flags+len byte. + and eax, F_LENMASK ; Just the length, not the flags. + add ebx, eax ; skip the name + add ebx, XT_SIZE ; skip to the xt + ret + defword_end + + defword "(bucket)", 0, WORD_BUCKET, WORD_CALL_COMMA + mov ecx, ebx ; ecx = length + POPDSP ebx ; ebx = address of name + PUSHRSP esi + mov esi, ebx + call strhashi + and ebx, NUM_HASH_CHAINS-1 + mov esi, hash_buckets + lea ebx, [esi + (ebx * 4)] + POPRSP esi + ret + defword_end + + defword "unused", 0, WORD_UNUSED, WORD_CALL_COMMA + LOADTOS forth_end + LOADTOS [var_WORD_DP] + call WORD_SUB + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;;;;;;; +; dictionary building words +;;;;;;;;;;;;;;;;;;;;;;;;;;; + + defword "align", 0, WORD_ALIGNDP, WORD_CALL_COMMA + mov eax, [var_WORD_DP] + ALIGNREG eax + mov [var_WORD_DP], eax + ret + defword_end + + defword "header,", 0, WORD_HEADER_COMMA, WORD_CALL_COMMA + mov ecx, ebx ; ecx = length + POPDSP ebx ; ebx = address of name + call WORD_ALIGNDP ; align header + mov edi, [var_WORD_DP] ; edi is the address of the header + mov eax, [var_WORD_LATEST] ; Get link pointer + mov [edi + H_LLINK], eax ; and store it in the header. + mov [var_WORD_LATEST], edi + PUSHRSP ebx ; hash chain + PUSHRSP ecx + mov esi, ebx + call strhashi + and ebx, NUM_HASH_CHAINS-1 + mov esi, hash_buckets + mov eax, [esi + (ebx * 4)] + mov [esi + (ebx * 4)], edi + mov [edi + H_HLINK], eax ; and store it in the header. + POPRSP ecx + POPRSP esi + mov [edi + H_NSIZE], cl ; Store the length/flags byte. + add edi, H_NAME + call strcpyi + mov ecx, XT_SIZE + xor eax, eax + rep stosb ; clear the gap till the xt + mov [var_WORD_DP], edi + mov long [edi + XT_COMPILE], WORD_CALL_COMMA ;compile action + POPDSP ebx + ret + defword_end + + defword "lit,", 0, WORD_LIT_COMMA, WORD_CALL_COMMA + mov esi, litc_l1 + mov edi, [var_WORD_DP] + mov ecx, litc_l2 - litc_l1 - 4 + rep movsb + mov [var_WORD_DP], edi + ret + defword_end +litc_l1: + LOADTOS 0xBAADF00D +litc_l2: + + defword "slits", 0, WORD_SLITS, WORD_CALL_COMMA + PUSHDSP ebx + POPRSP esi + xor eax, eax + lodsb ; get the length of the string + PUSHDSP esi ; push the address of the start of the string + mov ebx, eax ; push length on the stack + add esi, eax ; skip past the string + jmp esi + defword_end + + defword "clits", 0, WORD_CLITS, WORD_CALL_COMMA + FROMRSP + xor eax, eax + mov al, [ebx] + lea eax, [ebx + eax + 1] + jmp eax + defword_end + + defword ",", 0, WORD_COMMA, WORD_CALL_COMMA + mov edi, [var_WORD_DP] ; DP + mov eax, ebx + stosd ; Store it. + mov [var_WORD_DP], edi ; Update DP (incremented) + POPDSP ebx + ret + defword_end + + defword "c,", 0, WORD_CHAR_COMMA, WORD_CALL_COMMA + mov eax, ebx + mov edi, [var_WORD_DP] ; DP + stosb ; Store it. + mov [var_WORD_DP], edi ; Update DP (incremented) + POPDSP ebx + ret + defword_end + + defword ":", 0, WORD_COLON, WORD_CALL_COMMA + call WORD_PARSENAME + call WORD_HEADER_COMMA ; Create the dictionary entry / header + mov eax, [var_WORD_DP] + mov [eax + XT_BODY], eax + call WORD_LATEST + call WORD_FETCH + call WORD_HIDDEN ; Make the word hidden + call WORD_RBRAC ; Go into compile mode. + ret + defword_end + + defword "create", 0, WORD_CREATE, WORD_CALL_COMMA + call WORD_PARSENAME + call WORD_HEADER_COMMA + mov esi, create_l1 + mov edi, [var_WORD_DP] + PUSHRSP edi + mov ecx, create_l4 - create_l1 + rep movsb + mov [var_WORD_DP], edi + mov edx, edi + call WORD_ALIGNDP + POPRSP eax + mov edi, [var_WORD_DP] + sub edx, eax + mov [eax + create_l2 - create_l1 - 4], edi + mov [eax + XT_BODY], edi + mov [eax + XT_LENGTH], edx + ret + defword_end +create_l1: + LOADTOS 0xBAADF00D +create_l2: + call strict near create_l3 +create_l3: + ret +create_l4: + + defword "dodoes", 0, WORD_DODOES, WORD_CALL_COMMA + call WORD_LATEST + call WORD_FETCH + call WORD_TCFA + add ebx, create_l3 - create_l1 - 4 + POPDSP eax + sub eax, ebx + sub eax, 4 + mov [ebx], eax + POPDSP ebx + ret + defword_end + + defword "does>", F_IMMED, WORD_DOES, WORD_CALL_COMMA + call WORD_LIT_COMMA + LOADTOS [var_WORD_DP] + add ebx, 10 + call WORD_COMMA + LOADTOS WORD_DODOES + call WORD_COMPILE_COMMA + LOADTOS 0 + mov bl, [does_l1] + call WORD_CHAR_COMMA +does_l1: + ret + defword_end + + defword "postpone", F_IMMED, WORD_POSTPONE, WORD_CALL_COMMA + call WORD_PARSENAME + call WORD_FIND_DICT + mov dl, [ebx + H_NSIZE] + call WORD_TCFA + and edx, F_IMMED + if z + call WORD_LIT_COMMA + call WORD_COMMA + LOADTOS WORD_COMPILE_COMMA + endif + jmp WORD_COMPILE_COMMA + ret + defword_end + + defword "call,", 0, WORD_CALL_COMMA, WORD_CALL_COMMA + mov edi, [var_WORD_DP] + mov [lastcall], edi ; record last location of last call + mov esi, i_call + movsb + mov eax, ebx + sub eax, 4 + sub eax, edi + stosd + mov [var_WORD_DP], edi + POPDSP ebx + ret + defword_end + + defword "inline,", 0, WORD_INLINE_COMMA, WORD_CALL_COMMA + mov ecx, [ebx + XT_LENGTH] + dec ecx ; actual code length minus ret + mov esi, ebx + mov edi, [var_WORD_DP] + rep movsb ; inline copy the code + mov [var_WORD_DP], edi ; update DP + POPDSP ebx + ret + defword_end + + defword "compile,", 0, WORD_COMPILE_COMMA, WORD_INLINE_COMMA + call [ebx + XT_COMPILE] + ret + defword_end + + defword ";", F_IMMED, WORD_SEMICOLON, WORD_CALL_COMMA + LOADTOS WORD_EXIT +i_call: + call strict near WORD_COMPILE_COMMA + call WORD_LATEST + call WORD_FETCH + call WORD_HIDDEN ; toggle hidden flag -- unhide the word (see below for definition). + call WORD_LBRAC ; go back to IMMEDIATE mode. + mov edx, ebx + mov ebx, [var_WORD_LATEST] + call WORD_TCFA + mov ecx, [var_WORD_DP] + sub ecx, ebx + mov [ebx + XT_LENGTH], ecx ; set code size of word + mov ebx, edx + ret + defword_end + + defword "immediate", 0, WORD_IMMEDIATE, WORD_CALL_COMMA + mov edi, [var_WORD_LATEST] ; LATEST word. + add edi, H_NSIZE ; Point to name/flags byte. + xor byte [edi], F_IMMED ; Toggle the IMMED bit. + ret + defword_end + + defword "hidden", 0, WORD_HIDDEN, WORD_CALL_COMMA + add ebx, H_NSIZE ; Point to name/flags byte. + xor byte [ebx], F_HIDDEN ; Toggle the HIDDEN bit. + POPDSP ebx + ret + defword_end + + defword "[", F_IMMED, WORD_LBRAC, WORD_CALL_COMMA + mov long [var_WORD_STATE], 0 ; Set STATE to 0. + ret + defword_end + + defword "]", 0, WORD_RBRAC, WORD_CALL_COMMA + mov long [var_WORD_STATE], 1 ; Set STATE to 1. + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;; +; source buffer words +;;;;;;;;;;;;;;;;;;;;; + + defword "source", 0, WORD_SOURCE, WORD_CALL_COMMA + call WORD_INHASH + call WORD_FETCH2 + ret + defword_end + + defword "refill", 0, WORD_REFILL, WORD_CALL_COMMA + LOADTOS tib_buffer + call WORD_LINESIZE ; ( tib len ) + call WORD_OVER + call WORD_SWAP ; ( tib tib len ) + call WORD_ACCEPT ; read line into TIB + call WORD_DUP2 + call WORD_TABSTOSPACES + call WORD_INHASH + call WORD_STORE2 ; set as current WORD_SOURCE + LOADTOS 0 + call WORD_TOIN + call WORD_STORE ; set to start of buffer + LOADTOS -1 + ret + defword_end + + defword "isspace?", 0, WORD_ISSPACE, WORD_CALL_COMMA + LOADTOS ' ' + call WORD_ULTEQ + ret + defword_end + + defword "isnotspace?", 0, WORD_ISNOTSPACE, WORD_CALL_COMMA + call WORD_ISSPACE + call WORD_ZEQ + ret + defword_end + + defword "xt-skip", 0, WORD_XTSKIP, WORD_CALL_COMMA + TORSP +xtskip_l1: + test ebx, ebx + jz xtskip_l3 + call WORD_OVER + call WORD_FETCHBYTE + FETCHRSP + call WORD_EXECUTE + test ebx, ebx + jz xtskip_l2 + mov ebx, 1 + call WORD_SSTRING + jmp xtskip_l1 +xtskip_l2: + call WORD_DROP +xtskip_l3: + ADDRSP 4 + ret + defword_end + +;;;;;;;;;;;;;;;;;;;;;; +; input parseing words +;;;;;;;;;;;;;;;;;;;;;; + + defword "parse-name", 0, WORD_PARSENAME, WORD_CALL_COMMA + call WORD_SOURCE + call WORD_TOIN + call WORD_FETCH + call WORD_SSTRING + LOADTOS WORD_ISSPACE + call WORD_XTSKIP + call WORD_OVER + TORSP + LOADTOS WORD_ISNOTSPACE + call WORD_XTSKIP + call WORD_DUP2 + LOADTOS 1 + call WORD_MIN + call WORD_ADD + call WORD_SOURCE + call WORD_DROP + call WORD_SUB + call WORD_TOIN + call WORD_STORE + call WORD_DROP + FROMRSP + call WORD_TUCK + call WORD_SUB +; code to print out "P CR" +;LOADTOS 80 +;call WORD_EMIT +;LOADTOS 32 +;call WORD_EMIT +;call WORD_DUP2 +;call WORD_TYPE +;LOADTOS 10 +;call WORD_EMIT + ret + defword_end + + defword "word-name", 0, WORD_WORDNAME, WORD_CALL_COMMA + call WORD_PARSENAME ; ( start len ) + LOADTOS word_buf ; ( string size buf ) + call WORD_DUP2 ; ( string size buf size buf ) + call WORD_STOREBYTE ; ( string size buf ) + call WORD_INCR ; ( string size buf+1 ) + call WORD_SWAP ; ( string buf+1 size ) + call WORD_CMOVE + LOADTOS word_buf ; ( cstring ) +; debug code to print out "N CR" +;LOADTOS 78 +;call WORD_EMIT +;LOADTOS 32 +;call WORD_EMIT +;call WORD_DUP2 +;call WORD_TYPE +;LOADTOS 10 +;call WORD_EMIT + ret + defword_end + + defword "interp-name", 0, WORD_INTERPNAME, WORD_CALL_COMMA + call WORD_PARSENAME ; ( start len ) + LOADTOS intep_name_buf ; ( string size buf ) + call WORD_DUP2 ; ( string size buf size buf ) + call WORD_STOREBYTE ; ( string size buf ) + call WORD_INCR ; ( string size buf+1 ) + call WORD_SWAP ; ( string buf+1 size ) + call WORD_CMOVE + LOADTOS intep_name_buf ;( cstring ) + ret + defword_end + + defword "interpret", 0, WORD_INTERPRET, WORD_CALL_COMMA + loopstart + call WORD_INTERPNAME + mov al, [ebx] + test al, al + breakif z + ; debug code to print out "I CR" + ;LOADTOS 73 + ;call WORD_EMIT + ;LOADTOS 32 + ;call WORD_EMIT + ;call WORD_DUP + ;call WORD_COUNT + ;call WORD_TYPE + ;LOADTOS 10 + ;call WORD_EMIT + call WORD_INTERP + loopend + call WORD_DROP + ret + defword_end + + defword "interp", 0, WORD_INTERP, WORD_CALL_COMMA + call WORD_FIND ; ( cstring 0 | xt 1 | xt | -1 ) + mov eax, ebx + POPDSP ebx + test eax, eax + jz tryasnumber + jle nonimediate +executeword: + mov eax, ebx + POPDSP ebx + jmp eax +nonimediate: + mov eax, [var_WORD_STATE] + test eax, eax ; are we in imedeate mode ? + jz executeword + jmp WORD_COMPILE_COMMA ; compile xt +tryasnumber: + call WORD_COUNT ; ( adr len ) + LOADTOS 0 + LOADTOS 0 + call WORD_SWAP2 ; ( 0d addr len ) + call WORD_TOSNUMBER ; ( d addr len ) + test ebx, ebx + jnz parseproblem + call WORD_DROP2 + call WORD_DROP ; ( num ) + mov eax, [var_WORD_STATE] + test eax, eax + if nz + call WORD_LIT_COMMA ; compile LIT + call WORD_COMMA ; compile value + endif + ret +parseproblem: + LOADTOS errmsg + LOADTOS errmsgend - errmsg + LOADTOS 2 + call WORD_TYPE_FD + LOADTOS errmsgnl + LOADTOS 1 + LOADTOS 2 + call WORD_TYPE_FD + LOADTOS tib_buffer + LOADTOS [var_WORD_TOIN] + LOADTOS 2 + call WORD_TYPE_FD + LOADTOS errmsgnl + LOADTOS 1 + LOADTOS 2 + call WORD_TYPE_FD + call WORD_DROP2 + call WORD_DROP2 + ret + defword_end + + defword ">number", 0, WORD_TONUMBER, WORD_CALL_COMMA + call WORD_OVER + call WORD_ADD + call WORD_SWAP ; ( ud end cur ) +tonumber_l1: + PICKDSP eax, 0 + cmp ebx, eax + jz near tonumber_l4 + call WORD_DUP + call WORD_FETCHBYTE ; ( ud end cur char ) + to_lower ebx + sub ebx, byte '0' + jb tonumber_l3 ; < '0'? + cmp ebx, byte 10 + jb tonumber_l2 ; <= '9' ? + sub ebx, byte 'a' - '0' + jb tonumber_l3 ; < 'a' ? + add ebx, byte 10 +tonumber_l2: + cmp ebx, [var_WORD_BASE] + jge tonumber_l3 ; >= WORD_BASE ? + TORSP + call WORD_SWAP2 ; ( end cur ud ) + LOADTOS [var_WORD_BASE] + call WORD_DMULSTAR + FROMRSP + call WORD_MPLUS ; ( end cur ud' ) + call WORD_SWAP2 + call WORD_INCR ; ( ud' end cur' ) + jmp tonumber_l1 +tonumber_l3: + call WORD_DROP +tonumber_l4: + call WORD_SWAP + call WORD_OVER + call WORD_SUB ; ( ud' c-addr u2 ) + ret + defword_end + + defword ">snumber", 0, WORD_TOSNUMBER, WORD_CALL_COMMA + test ebx, ebx + if nz + PICKDSP eax, 0 + mov cl, [eax] + cmp cl, '-' + jnz WORD_TONUMBER ; not '-' + inc eax + PUTDSP eax, 0 + dec ebx + call WORD_TONUMBER + call WORD_SWAP2 + call WORD_DNEGATE + call WORD_SWAP2 + endif + ret + defword_end + +;;;;;;;;;;; +; tick word +;;;;;;;;;;; + + defword "ticks", 0, WORD_TICKS, WORD_CALL_COMMA + sub ebp, byte 8 + rdtsc + mov [byte ebp -4], ebx + mov [ebp], eax + mov ebx, edx + ret + defword_end + +;;;;;;;;;;; +; test word +;;;;;;;;;;; + + defword "test", 0, WORD_TEST, WORD_CALL_COMMA + ret + defword_end + +;;;;;;;;;;;;;;;;; +; read/write data +;;;;;;;;;;;;;;;;; + + align 4 +syscallret: + ; return address saved by syscall + dd 0 +lastcall: + ; last call layed down by compiler + dd 0 + +tib_buffer: + ; keyboard input buffer + times MAX_LINE_SIZE db 0 +word_buf: + ; static buffer where WORD returns. Subsequent calls + ; overwrite this buffer. + times MAX_LINE_SIZE db 0 +intep_name_buf: + ; static buffer where INTERPNAME returns. Subsequent calls + ; overwrite this buffer. + times MAX_LINE_SIZE db 0 +emit_scratch: + ; scratch used by EMIT + db 0 +errmsg: + db "PARSE ERROR:" +errmsgend: +errmsgnl: + db 10 +bootfile: + db "forth.f" + db 0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; dictionary hash table (64) +;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + align 4 +hash_buckets: + dd 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + dd 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + dd 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + dd 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; addresses of all built in dictionary words. +; this ends up as part of the user space after booting ! +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + align 4 +dictionary_start: + dd dic_WORD_ABS + dd dic_WORD_ACCEPT + dd dic_WORD_ADD + dd dic_WORD_ADDBYTE + dd dic_WORD_ADDSTORE + dd dic_WORD_ALIGNDP + dd dic_WORD_AND + dd dic_WORD_BASE + dd dic_WORD_BLANK + dd dic_WORD_BLK + dd dic_WORD_BRANCH + dd dic_WORD_BUCKET + dd dic_WORD_CALL_COMMA + dd dic_WORD_CHARBUF + dd dic_WORD_CHAR_COMMA + dd dic_WORD_CLITS + dd dic_WORD_CMOVE + dd dic_WORD_CMOVEB + dd dic_WORD_COLON + dd dic_WORD_COMMA + dd dic_WORD_COMPARE + dd dic_WORD_COMPAREI + dd dic_WORD_COMPILE_COMMA + dd dic_WORD_COUNT + dd dic_WORD_CREATE + dd dic_WORD_D2SLASH + dd dic_WORD_D2STAR + dd dic_WORD_DABS + dd dic_WORD_DECR + dd dic_WORD_DECR2 + dd dic_WORD_DECR4 + dd dic_WORD_DEQ + dd dic_WORD_DIV + dd dic_WORD_DIVMOD + dd dic_WORD_DLT + dd dic_WORD_DMAX + dd dic_WORD_DMIN + dd dic_WORD_DMINUS + dd dic_WORD_DMULSTAR + dd dic_WORD_DNEGATE + dd dic_WORD_DNEQ + dd dic_WORD_DODOES + dd dic_WORD_DOES + dd dic_WORD_DP + dd dic_WORD_DPLUS + dd dic_WORD_DROP + dd dic_WORD_DROP2 + dd dic_WORD_DSPFETCH + dd dic_WORD_DSPSTORE + dd dic_WORD_DTOS + dd dic_WORD_DULT + dd dic_WORD_DUP + dd dic_WORD_DUP2 + dd dic_WORD_DZEQ + dd dic_WORD_DZLT + dd dic_WORD_DZNEQ + dd dic_WORD_EMIT + dd dic_WORD_EQ + dd dic_WORD_ERASE + dd dic_WORD_EXECUTE + dd dic_WORD_EXIT + dd dic_WORD_FETCH + dd dic_WORD_FETCH2 + dd dic_WORD_FETCHBYTE + dd dic_WORD_FETCHSHORT + dd dic_WORD_FILL + dd dic_WORD_FIND + dd dic_WORD_FIND_DICT + dd dic_WORD_FMDIVMOD + dd dic_WORD_FROMR + dd dic_WORD_FROMR2 + dd dic_WORD_GT + dd dic_WORD_GTEQ + dd dic_WORD_HEADER_COMMA + dd dic_WORD_HIDDEN + dd dic_WORD_IMMEDIATE + dd dic_WORD_INCR + dd dic_WORD_INCR2 + dd dic_WORD_INCR4 + dd dic_WORD_INHASH + dd dic_WORD_INLINE_COMMA + dd dic_WORD_INTERP + dd dic_WORD_INTERPNAME + dd dic_WORD_INTERPRET + dd dic_WORD_INVERT + dd dic_WORD_ISNOTSPACE + dd dic_WORD_ISSPACE + dd dic_WORD_KEY + dd dic_WORD_LATEST + dd dic_WORD_LBRAC + dd dic_WORD_LINESIZE + dd dic_WORD_LIT_COMMA + dd dic_WORD_LSHIFT + dd dic_WORD_LSYSCALL + dd dic_WORD_LT + dd dic_WORD_LTEQ + dd dic_WORD_MAX + dd dic_WORD_MIN + dd dic_WORD_MMINUS + dd dic_WORD_MOD + dd dic_WORD_MOVE + dd dic_WORD_MPLUS + dd dic_WORD_MSLASH + dd dic_WORD_MULDIV + dd dic_WORD_MULL + dd dic_WORD_MULSTAR + dd dic_WORD_NE + dd dic_WORD_NEGATE + dd dic_WORD_NFROMR + dd dic_WORD_NIP + dd dic_WORD_NIP2 + dd dic_WORD_NQDUP + dd dic_WORD_NROT + dd dic_WORD_NTOR + dd dic_WORD_OR + dd dic_WORD_OVER + dd dic_WORD_OVER2 + dd dic_WORD_O_APPEND + dd dic_WORD_O_CREAT + dd dic_WORD_O_EXCL + dd dic_WORD_O_NONBLOCK + dd dic_WORD_O_RDONLY + dd dic_WORD_O_RDWR + dd dic_WORD_O_TRUNC + dd dic_WORD_O_WRONLY + dd dic_WORD_PARSENAME + dd dic_WORD_PICK + dd dic_WORD_POSTPONE + dd dic_WORD_QDUP + dd dic_WORD_RBRAC + dd dic_WORD_RDROP + dd dic_WORD_RDROP2 + dd dic_WORD_READCHAR + dd dic_WORD_READLINE + dd dic_WORD_REFILL + dd dic_WORD_RFETCH + dd dic_WORD_RFETCH2 + dd dic_WORD_ROT + dd dic_WORD_ROT2 + dd dic_WORD_RSHIFT + dd dic_WORD_RSPFETCH + dd dic_WORD_RSPSTORE + dd dic_WORD_RSTORE + dd dic_WORD_RZ + dd dic_WORD_SEMICOLON + dd dic_WORD_SLITS + dd dic_WORD_SMDIVREM + dd dic_WORD_SOURCE + dd dic_WORD_SOURCEFD + dd dic_WORD_SSTRING + dd dic_WORD_STARSMOD + dd dic_WORD_STATE + dd dic_WORD_STOD + dd dic_WORD_STORE + dd dic_WORD_STORE2 + dd dic_WORD_STOREBYTE + dd dic_WORD_STORESHORT + dd dic_WORD_SUB + dd dic_WORD_SUBSTORE + dd dic_WORD_SWAP + dd dic_WORD_SWAP2 + dd dic_WORD_SYSCALL + dd dic_WORD_SYS_CLOSE + dd dic_WORD_SYS_EXIT + dd dic_WORD_SYS_FSTAT + dd dic_WORD_SYS_FSYNC + dd dic_WORD_SYS_FTRUNCATE + dd dic_WORD_SYS_LSEEK + dd dic_WORD_SYS_OPEN + dd dic_WORD_SYS_READ + dd dic_WORD_SYS_RENAME + dd dic_WORD_SYS_STAT + dd dic_WORD_SYS_UNLINK + dd dic_WORD_SYS_WRITE + dd dic_WORD_SZ + dd dic_WORD_TABSTOSPACES + dd dic_WORD_TCFA + dd dic_WORD_TICKS + dd dic_WORD_TOIN + dd dic_WORD_TONUMBER + dd dic_WORD_TOR + dd dic_WORD_TOR2 + dd dic_WORD_TOSNUMBER + dd dic_WORD_TRAILING + dd dic_WORD_TUCK + dd dic_WORD_TUCK2 + dd dic_WORD_TWODIV + dd dic_WORD_TWOMUL + dd dic_WORD_TYPE + dd dic_WORD_TYPE_FD + dd dic_WORD_UDIVMOD + dd dic_WORD_UGT + dd dic_WORD_UGTEQ + dd dic_WORD_ULT + dd dic_WORD_ULTEQ + dd dic_WORD_UMDIVMOD + dd dic_WORD_UMULSTAR + dd dic_WORD_UNUSED + dd dic_WORD_VERSION + dd dic_WORD_WORDBUF + dd dic_WORD_WORDNAME + dd dic_WORD_XOR + dd dic_WORD_XTSKIP + dd dic_WORD_ZBRANCH + dd dic_WORD_ZEQ + dd dic_WORD_ZGT + dd dic_WORD_ZGTEQ + dd dic_WORD_ZLT + dd dic_WORD_ZLTEQ + dd dic_WORD_ZNE + dd dic_WORD__F_HIDDEN + dd dic_WORD__F_IMMED + dd dic_WORD__F_LENMASK + dd dic_WORD__H_NAME + dd dic_WORD__H_NSIZE + dd dic_WORD__XT_BODY + dd dic_WORD__XT_COMPILE + dd dic_WORD__XT_LENGTH + dd dic_WORD__XT_SIZE + dd dic_WORD_TEST +dictionary_end: + +;;;;;;;;;;;;;;;;;;;;;;;;;; +; room for user dictionary +;;;;;;;;;;;;;;;;;;;;;;;;;; + + times USER_DEFS_SIZE db 0 +forth_end: From 066052ddd20e00ac7133761173898e5155f83255 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Thu, 12 Feb 2015 10:04:44 -0500 Subject: [PATCH 211/875] Exclude documentation files from language statistics Documentation is an important part of a software project but is not generally thought of as part of the code for that project. Repository language statistics are used to quantify the project's code, so it makes sense to exclude documentation from those computations. Documentation files are recognized similarly to vendored files. lib/linguist/documentation.yml contains regular expressions to match common names for documentation files. A new linguist-documentation Git attribute can be used to override those conventions. --- README.md | 12 +++++++++++- lib/linguist/blob_helper.rb | 15 +++++++++++++++ lib/linguist/documentation.yml | 18 ++++++++++++++++++ lib/linguist/lazy_blob.rb | 10 +++++++++- lib/linguist/repository.rb | 2 +- test/test_blob.rb | 32 ++++++++++++++++++++++++++++++++ test/test_repository.rb | 12 ++++++++++++ 7 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 lib/linguist/documentation.yml diff --git a/README.md b/README.md index 4a7ea415..6f8a3993 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linguist supports a number of different custom overrides strategies for language ### Using gitattributes -Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-language` and `linguist-vendored`. +Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. ``` $ cat .gitattributes @@ -43,6 +43,16 @@ special-vendored-path/* linguist-vendored jquery.js linguist-vendored=false ``` +Similar to vendored files, Linguist excludes documentation files from your project's language stats. [lib/linguist/documentation.yml](lib/linguist/documentation.yml) lists common documentation paths and excludes them from the language statistics for your repository. + +Use the `linguist-documentation` attribute to mark or unmark paths as documentation. + +``` +$ cat .gitattributes +project-docs/* linguist-documentation +docs/formatter.rb linguist-documentation=false +``` + ### Using Emacs and Vim modelines Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index c368b4d0..ff11aefd 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -236,6 +236,21 @@ module Linguist name =~ VendoredRegexp ? true : false end + documentation_paths = YAML.load_file(File.expand_path("../documentation.yml", __FILE__)) + DocumentationRegexp = Regexp.new(documentation_paths.join('|')) + + # Public: Is the blob in a documentation directory? + # + # Documentation files are ignored by language statistics. + # + # See "documentation.yml" for a list of documentation conventions that match + # this pattern. + # + # Return true or false + def documentation? + name =~ DocumentationRegexp ? true : false + end + # Public: Get each line of data # # Requires Blob#data diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml new file mode 100644 index 00000000..57fc6151 --- /dev/null +++ b/lib/linguist/documentation.yml @@ -0,0 +1,18 @@ +# Documentation files and directories are excluded from language +# statistics. +# +# Lines in this file are Regexps that are matched against the file +# pathname. +# +# Please add additional test coverage to +# `test/test_blob.rb#test_documentation` if you make any changes. + +## Documentation Conventions ## + +- ^docs?/ +- ^Documentation/ + +- (^|/)CONTRIBUTING(\.|$) +- (^|/)COPYING(\.|$) +- (^|/)LICEN[CS]E(\.|$) +- (^|/)README(\.|$) diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 9691bca5..5465a71f 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -4,7 +4,7 @@ require 'rugged' module Linguist class LazyBlob - GIT_ATTR = ['linguist-language', 'linguist-vendored'] + GIT_ATTR = ['linguist-documentation', 'linguist-language', 'linguist-vendored'] GIT_ATTR_OPTS = { :priority => [:index], :skip_system => true } GIT_ATTR_FLAGS = Rugged::Repository::Attributes.parse_opts(GIT_ATTR_OPTS) @@ -37,6 +37,14 @@ module Linguist end end + def documentation? + if attr = git_attributes['linguist-documentation'] + boolean_attribute(attr) + else + super + end + end + def language return @language if defined?(@language) diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 3c197fad..3837977f 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -159,7 +159,7 @@ module Linguist blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8)) # Skip vendored or generated blobs - next if blob.vendored? || blob.generated? || blob.language.nil? + next if blob.vendored? || blob.documentation? || blob.generated? || blob.language.nil? if DETECTABLE_TYPES.include?(blob.language.type) file_map[new] = [blob.language.group.name, blob.size] diff --git a/test/test_blob.rb b/test/test_blob.rb index ceb54bb3..fabd5a74 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -441,6 +441,38 @@ class TestBlob < Minitest::Test assert sample_blob("subproject/activator.bat").vendored? end + def test_documentation + assert_predicate fixture_blob("doc/foo.md"), :documentation? + assert_predicate fixture_blob("docs/foo.md"), :documentation? + refute_predicate fixture_blob("project/doc/foo.md"), :documentation? + refute_predicate fixture_blob("project/docs/foo.md"), :documentation? + + assert_predicate fixture_blob("Documentation/foo.md"), :documentation? + refute_predicate fixture_blob("project/Documentation/foo.md"), :documentation? + + assert_predicate fixture_blob("README"), :documentation? + assert_predicate fixture_blob("README.md"), :documentation? + assert_predicate fixture_blob("README.txt"), :documentation? + assert_predicate fixture_blob("foo/README"), :documentation? + + assert_predicate fixture_blob("CONTRIBUTING"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING.md"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING.txt"), :documentation? + assert_predicate fixture_blob("foo/CONTRIBUTING"), :documentation? + + assert_predicate fixture_blob("LICENSE"), :documentation? + assert_predicate fixture_blob("LICENCE.md"), :documentation? + assert_predicate fixture_blob("LICENSE.txt"), :documentation? + assert_predicate fixture_blob("foo/LICENSE"), :documentation? + + assert_predicate fixture_blob("COPYING"), :documentation? + assert_predicate fixture_blob("COPYING.md"), :documentation? + assert_predicate fixture_blob("COPYING.txt"), :documentation? + assert_predicate fixture_blob("foo/COPYING"), :documentation? + + refute_predicate fixture_blob("foo.md"), :documentation? + end + def test_language Samples.each do |sample| blob = sample_blob(sample[:path]) diff --git a/test/test_repository.rb b/test/test_repository.rb index b661668d..fcdd4f0c 100644 --- a/test/test_repository.rb +++ b/test/test_repository.rb @@ -99,4 +99,16 @@ class TestRepository < Minitest::Test # overridden .gitattributes assert !override_unvendored.vendored? end + + def test_linguist_override_documentation? + attr_commit = "d4c8fb8a28e91f97a7e53428a365c0abbac36d3d" + repo = linguist_repo(attr_commit).read_index + + readme = Linguist::LazyBlob.new(rugged_repository, attr_commit, "README.md") + arduino = Linguist::LazyBlob.new(rugged_repository, attr_commit, "samples/Arduino/hello.ino") + + # overridden by .gitattributes + refute_predicate readme, :documentation? + assert_predicate arduino, :documentation? + end end From 7cdb5ccba865da5053673a090db6097ebe076b66 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 13 Feb 2015 15:37:39 +0100 Subject: [PATCH 212/875] Mark XS files as "type: programming" I'd actually prefer to treat Perl XS files as C code, but this fix shouldn't be controversial. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 33a22975..099f1ab1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3257,6 +3257,7 @@ XQuery: ace_mode: xquery XS: + type: programming extensions: - .xs tm_scope: source.c From a817d95d6cd9b148be1b6e2b34f8cc20fbd20769 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 11:57:21 -0500 Subject: [PATCH 213/875] Fix CSS/SVG grammar names --- lib/linguist/languages.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 972a9b67..4df91c25 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -439,6 +439,7 @@ COBOL: CSS: type: markup + tm_scope: source.css ace_mode: css color: "#563d7c" extensions: @@ -2688,7 +2689,7 @@ SVG: type: data extensions: - .svg - tm_scope: source.xml + tm_scope: text.xml ace_mode: xml Sage: From 6a86e8ea97a25c90f2a994efd1eab45b3edc9330 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 14:26:36 -0500 Subject: [PATCH 214/875] Add BlobHelper#include_in_language_stats? This just extracts some logic from Repository#compute_stats and makes it testable. --- lib/linguist/blob_helper.rb | 10 ++++++++++ lib/linguist/repository.rb | 10 ++-------- test/test_blob.rb | 25 +++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index ff11aefd..56c15f02 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -332,5 +332,15 @@ module Linguist def tm_scope language && language.tm_scope end + + DETECTABLE_TYPES = [:programming, :markup].freeze + + # Internal: Should this blob be included in repository language statistics? + def include_in_language_stats? + !vendored? && + !documentation? && + !generated? && + language && DETECTABLE_TYPES.include?(language.type) + end end end diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 3837977f..895a3754 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -8,8 +8,6 @@ module Linguist # Its primary purpose is for gathering language statistics across # the entire project. class Repository - DETECTABLE_TYPES = [:programming, :markup].freeze - attr_reader :repository # Public: Create a new Repository based on the stats of @@ -158,12 +156,8 @@ module Linguist blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8)) - # Skip vendored or generated blobs - next if blob.vendored? || blob.documentation? || blob.generated? || blob.language.nil? - - if DETECTABLE_TYPES.include?(blob.language.type) - file_map[new] = [blob.language.group.name, blob.size] - end + next unless blob.include_in_language_stats? + file_map[new] = [blob.language.group.name, blob.size] end end diff --git a/test/test_blob.rb b/test/test_blob.rb index fabd5a74..24eaff83 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -517,4 +517,29 @@ class TestBlob < Minitest::Test refute blob.new(" ").empty? refute blob.new("nope").empty? end + + def test_include_in_language_stats + vendored = sample_blob("bower_components/custom/custom.js") + assert_predicate vendored, :vendored? + refute_predicate vendored, :include_in_language_stats? + + documentation = fixture_blob("README") + assert_predicate documentation, :documentation? + refute_predicate documentation, :include_in_language_stats? + + generated = sample_blob("CSS/bootstrap.min.css") + assert_predicate generated, :generated? + refute_predicate generated, :include_in_language_stats? + + data = sample_blob("Ant Build System/filenames/ant.xml") + assert_equal :data, data.language.type + refute_predicate data, :include_in_language_stats? + + prose = sample_blob("Markdown/tender.md") + assert_equal :prose, prose.language.type + refute_predicate prose, :include_in_language_stats? + + included = sample_blob("HTML/pages.html") + assert_predicate included, :include_in_language_stats? + end end From 8d2dd55c9469e912b046a27a9bd4414285a1bf07 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 14:30:44 -0500 Subject: [PATCH 215/875] Categorize INSTALL files as documentation too --- lib/linguist/documentation.yml | 1 + test/test_blob.rb | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index 57fc6151..b884cd35 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -14,5 +14,6 @@ - (^|/)CONTRIBUTING(\.|$) - (^|/)COPYING(\.|$) +- (^|/)INSTALL(\.|$) - (^|/)LICEN[CS]E(\.|$) - (^|/)README(\.|$) diff --git a/test/test_blob.rb b/test/test_blob.rb index 24eaff83..149588e9 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -470,6 +470,11 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("COPYING.txt"), :documentation? assert_predicate fixture_blob("foo/COPYING"), :documentation? + assert_predicate fixture_blob("INSTALL"), :documentation? + assert_predicate fixture_blob("INSTALL.md"), :documentation? + assert_predicate fixture_blob("INSTALL.txt"), :documentation? + assert_predicate fixture_blob("foo/INSTALL"), :documentation? + refute_predicate fixture_blob("foo.md"), :documentation? end From 1bf91d4281932030bcbbe9ace852fe71d2821cd9 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 14:31:40 -0500 Subject: [PATCH 216/875] Use .html files in some #documentation? tests This is what we were trying to classify in the twbs/bootstrap repository, for example. --- test/test_blob.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_blob.rb b/test/test_blob.rb index 149588e9..d59e6794 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -442,10 +442,10 @@ class TestBlob < Minitest::Test end def test_documentation - assert_predicate fixture_blob("doc/foo.md"), :documentation? - assert_predicate fixture_blob("docs/foo.md"), :documentation? - refute_predicate fixture_blob("project/doc/foo.md"), :documentation? - refute_predicate fixture_blob("project/docs/foo.md"), :documentation? + assert_predicate fixture_blob("doc/foo.html"), :documentation? + assert_predicate fixture_blob("docs/foo.html"), :documentation? + refute_predicate fixture_blob("project/doc/foo.html"), :documentation? + refute_predicate fixture_blob("project/docs/foo.html"), :documentation? assert_predicate fixture_blob("Documentation/foo.md"), :documentation? refute_predicate fixture_blob("project/Documentation/foo.md"), :documentation? From 6f5c935837e1ea206295444f9f94e7985725a523 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 14:52:30 -0500 Subject: [PATCH 217/875] Clarify the difference between vendored and documentation files --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6f8a3993..6a2447a9 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ $ cat .gitattributes *.rb linguist-language=Java ``` -Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. +Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. Vendored files are also hidden by default in diffs on github.com. Use the `linguist-vendored` attribute to vendor or un-vendor paths. @@ -43,7 +43,7 @@ special-vendored-path/* linguist-vendored jquery.js linguist-vendored=false ``` -Similar to vendored files, Linguist excludes documentation files from your project's language stats. [lib/linguist/documentation.yml](lib/linguist/documentation.yml) lists common documentation paths and excludes them from the language statistics for your repository. +Similar to vendored files, Linguist excludes documentation files from your project's language stats. (Unlike vendored files, documentation files are displayed in diffs on github.com.) [lib/linguist/documentation.yml](lib/linguist/documentation.yml) lists common documentation paths and excludes them from the language statistics for your repository. Use the `linguist-documentation` attribute to mark or unmark paths as documentation. From 353479fe7251391222e017c4be82b820e1069969 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 16:20:14 -0500 Subject: [PATCH 218/875] Add a color for HTML Courtesy of @fabianperez and the HTML5 logo. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4df91c25..48160604 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1174,6 +1174,7 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html + color: "#e44b23" aliases: - xhtml extensions: From 5ad6add91e16139477aec0ce10bf8cb1da025e96 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 13 Feb 2015 16:44:10 -0500 Subject: [PATCH 219/875] Bump version to 4.4.0 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index e8c4f98b..674a61b9 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.3.1" + VERSION = "4.4.0" end From 013cfdcdaf363a2498e454767a8e4c2deb78eced Mon Sep 17 00:00:00 2001 From: xbony2 Date: Sun, 15 Feb 2015 11:12:40 -0500 Subject: [PATCH 220/875] Made assembly color more noticeable --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9d8ee228..ba7c7cea 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -198,7 +198,7 @@ AspectJ: Assembly: type: programming - color: "#a67219" + color: "#6E4C13" search_term: nasm aliases: - nasm From 71002dfb650d57dce103b13a640a4f90f8c997da Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 15 Feb 2015 17:16:10 +0100 Subject: [PATCH 221/875] Grammar for BrightScript from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 2 +- vendor/grammars/BrightScript.tmbundle | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/BrightScript.tmbundle diff --git a/.gitmodules b/.gitmodules index 82559a75..99ed6465 100644 --- a/.gitmodules +++ b/.gitmodules @@ -615,3 +615,6 @@ [submodule "vendor/grammars/mediawiki.tmbundle"] path = vendor/grammars/mediawiki.tmbundle url = https://github.com/textmate/mediawiki.tmbundle +[submodule "vendor/grammars/BrightScript.tmbundle"] + path = vendor/grammars/BrightScript.tmbundle + url = https://github.com/cmink/BrightScript.tmbundle diff --git a/grammars.yml b/grammars.yml index e1a1ce90..540c36c8 100644 --- a/grammars.yml +++ b/grammars.yml @@ -26,6 +26,9 @@ vendor/grammars/Alloy.tmbundle: - source.alloy vendor/grammars/AutoHotkey/: - source.ahk +vendor/grammars/BrightScript.tmbundle/: +- source.brightauthorproject +- source.brightscript vendor/grammars/CLIPS-sublime: - source.clips vendor/grammars/ColdFusion: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9d8ee228..b2dc3698 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -336,7 +336,7 @@ Brightscript: type: programming extensions: - .brs - tm_scope: none + tm_scope: source.brightscript ace_mode: text Bro: diff --git a/vendor/grammars/BrightScript.tmbundle b/vendor/grammars/BrightScript.tmbundle new file mode 160000 index 00000000..905791b0 --- /dev/null +++ b/vendor/grammars/BrightScript.tmbundle @@ -0,0 +1 @@ +Subproject commit 905791b02bfc7256604bbc874f8c259713d62b12 From 7660714a9eab129e87147ccf8f936f22f9a50e57 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 15 Feb 2015 17:24:56 +0100 Subject: [PATCH 222/875] Stylus grammar from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Stylus | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Stylus diff --git a/.gitmodules b/.gitmodules index 99ed6465..6293880d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -618,3 +618,6 @@ [submodule "vendor/grammars/BrightScript.tmbundle"] path = vendor/grammars/BrightScript.tmbundle url = https://github.com/cmink/BrightScript.tmbundle +[submodule "vendor/grammars/Stylus"] + path = vendor/grammars/Stylus + url = https://github.com/billymoon/Stylus diff --git a/grammars.yml b/grammars.yml index 540c36c8..7e74865f 100644 --- a/grammars.yml +++ b/grammars.yml @@ -91,6 +91,8 @@ vendor/grammars/Slash.tmbundle: vendor/grammars/Stata.tmbundle: - source.mata - source.stata +vendor/grammars/Stylus/: +- source.stylus vendor/grammars/Sublime-Coq: - source.coq vendor/grammars/Sublime-HTTP: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b2dc3698..6d36fa44 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2894,7 +2894,7 @@ Stylus: group: CSS extensions: - .styl - tm_scope: none + tm_scope: source.stylus ace_mode: stylus SuperCollider: diff --git a/vendor/grammars/Stylus b/vendor/grammars/Stylus new file mode 160000 index 00000000..b9214d1f --- /dev/null +++ b/vendor/grammars/Stylus @@ -0,0 +1 @@ +Subproject commit b9214d1ffd5031b60d77d07a6f315a934d4a473e From a3c595a4a932d522fbb7c93072c4c9c8d064edc3 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 15 Feb 2015 17:30:19 +0100 Subject: [PATCH 223/875] Grammar for AsciiDoc from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/asciidoc.tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/asciidoc.tmbundle diff --git a/.gitmodules b/.gitmodules index 6293880d..8f72e84d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -621,3 +621,6 @@ [submodule "vendor/grammars/Stylus"] path = vendor/grammars/Stylus url = https://github.com/billymoon/Stylus +[submodule "vendor/grammars/asciidoc.tmbundle"] + path = vendor/grammars/asciidoc.tmbundle + url = https://github.com/zuckschwerdt/asciidoc.tmbundle diff --git a/grammars.yml b/grammars.yml index 7e74865f..2c8913b0 100644 --- a/grammars.yml +++ b/grammars.yml @@ -150,6 +150,8 @@ vendor/grammars/apache.tmbundle: - source.apache-config.mod_perl vendor/grammars/applescript.tmbundle: - source.applescript +vendor/grammars/asciidoc.tmbundle/: +- text.html.asciidoc vendor/grammars/asp.tmbundle: - source.asp - text.html.asp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 6d36fa44..1c3b4034 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -186,7 +186,7 @@ AsciiDoc: - .asciidoc - .adoc - .asc - tm_scope: none + tm_scope: text.html.asciidoc AspectJ: type: programming diff --git a/vendor/grammars/asciidoc.tmbundle b/vendor/grammars/asciidoc.tmbundle new file mode 160000 index 00000000..28063ea4 --- /dev/null +++ b/vendor/grammars/asciidoc.tmbundle @@ -0,0 +1 @@ +Subproject commit 28063ea46c1b47d7aec7da39801679763ab00825 From 651d8630698443e08dff9d77297c91dde4efb5a9 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 15 Feb 2015 17:45:25 +0100 Subject: [PATCH 224/875] Grammar for PigLatin from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-text-pig-latin | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-text-pig-latin diff --git a/.gitmodules b/.gitmodules index 8f72e84d..9fefaa4c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -624,3 +624,6 @@ [submodule "vendor/grammars/asciidoc.tmbundle"] path = vendor/grammars/asciidoc.tmbundle url = https://github.com/zuckschwerdt/asciidoc.tmbundle +[submodule "vendor/grammars/sublime-text-pig-latin"] + path = vendor/grammars/sublime-text-pig-latin + url = https://github.com/goblindegook/sublime-text-pig-latin diff --git a/grammars.yml b/grammars.yml index 2c8913b0..109f61cf 100644 --- a/grammars.yml +++ b/grammars.yml @@ -486,6 +486,8 @@ vendor/grammars/sublime-tea: - source.tea vendor/grammars/sublime-text-ox/: - source.ox +vendor/grammars/sublime-text-pig-latin/: +- source.pig_latin vendor/grammars/sublime_cobol: - source.acucobol - source.cobol diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1c3b4034..57ce2286 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2254,7 +2254,7 @@ PigLatin: color: "#fcd7de" extensions: - .pig - tm_scope: none + tm_scope: source.pig_latin ace_mode: text Pike: diff --git a/vendor/grammars/sublime-text-pig-latin b/vendor/grammars/sublime-text-pig-latin new file mode 160000 index 00000000..54ed2918 --- /dev/null +++ b/vendor/grammars/sublime-text-pig-latin @@ -0,0 +1 @@ +Subproject commit 54ed29189f6586f3200c09867e3c8c72bedec34e From 3a4ab156b0597755f9644749748642d0417ad11b Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Mon, 16 Feb 2015 09:45:24 -0500 Subject: [PATCH 225/875] Update all grammars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * vendor/grammars/GDScript-sublime 99a0d51...44ac5c4 (3): > Merge pull request #7 from erbridge/null-keyword > Merge pull request #6 from erbridge/assert-keyword > Merge pull request #5 from erbridge/update-yaml * vendor/grammars/Modelica d7e50e3...f2b1242 (8): > Update README.md > Update README.md > Update README.md > Update README.md > Update README.md > Update README.md > Delete .gitattributes > Create .gitattributes * vendor/grammars/NimLime 7581153...58a1e0c (5): > Merge pull request #13 from fenekku/master > Refactored a bit nimsuggest service hosting a bit more robust > Print error if nimsuggest does not respond > Close test sock Turn off autoreload > Merge pull request #14 from Varriount/update-to-sockets * vendor/grammars/Sublime-SQF-Language 708c78a...0313fbe (1): > Merge pull request #12 from DenVdmj/master * vendor/grammars/SublimePapyrus 5a7b3e7...152c7b7 (1): > Added setting * vendor/grammars/ats.sublime d954ef6...2565468 (2): > fix record/tuple/then/else with { > fix bugs for single quote char * vendor/grammars/c.tmbundle f825425...f6048af (1): > Add syntax highlight for CoreGraphics types * vendor/grammars/dart-sublime-bundle fecdbc5...c1afc62 (4): > Merge pull request #450 from guillermooo-forks/prep-release > Merge pull request #449 from guillermooo-forks/fix-analysis-server-init > Merge pull request #448 from guillermooo-forks/prep-release > Merge pull request #446 from guillermooo-forks/new-analysis-server-integration-linting * vendor/grammars/elixir-tmbundle dcf1fc1...9c63ff0 (1): > Merge pull request #34 from bharendt/master * vendor/grammars/factor 4ada328...ec896cd (17): > images.tiff: Fix partial refactor rollback and offeset typo. > images.tiff: Fix infinite loop bug exposed by AFL test suite. IDFs are found at certain offsets, then the next offset is after the IDF. If a next-offset is its own previous offset, then it would loop. Now we record the offset and stop if it would loop. > alien.libraries: Cannot include alien.libraries.finder here for docs. > Explicitly reference find-library in alien docs > Fix typo in hash-set documentation > opencl: remove (use size_t instead). > forestdb.ffi: Update ffi. > forestdb: Embrace the forestdb handle vs kvs handle idiom. Update tests. > stack-checker.state: Fix error in docs. Tweak doc grammar. > bootstrap.image.upload: Use pscp on Windows for uploading boot images since c:\ paths are treated as hostnames and the command fails. > stack-checker: minor help-lint fixes. > compiler.tree.*: more compiler tree docs > stack-checker.*: misc doc additions > stack-checker.known-words: docs and tests > stack-checker.values: docs and tests > stack-checker.state: docs and tests > stack-checker.backend: docs and tests * vendor/grammars/fsharpbinding 92d969b...0cd6439 (2): > revert typo, typo is actually upstream in monodevelop > bump version number * vendor/grammars/java.tmbundle a74cb83...ccdebdf (1): > Highlight volatile like synchronized * vendor/grammars/javadoc.tmbundle 484d468...5276d7a (1): > Grammar: Be strict on what can start an HTML tag * vendor/grammars/language-clojure bae6eee...cfc8a5c (6): > Prepare 0.12.0 release > Merge pull request #14 from joelash/master > Prepare 0.11.0 release > Merge pull request #13 from hanjos/proposed > Add initial spec > Add initial Travis CI config * vendor/grammars/language-csharp fba368a...d07ba8f (4): > Prepare 0.5.0 release > Merge pull request #19 from atom/ks-remove-deprecations > Prepare 0.4.0 release > Merge pull request #16 from damieng/master * vendor/grammars/language-gfm 18400b2...5f5df30 (3): > Prepare 0.64.0 release > Add heading spec with no space > Merge pull request #77 from jonathandelgado/master * vendor/grammars/language-python 0141d44...8daa100 (4): > Prepare 0.32.0 release > Merge pull request #54 from nicktimko/binary-literals > Prepare 0.31.0 release > Merge pull request #53 from nicktimko/python-3-octals * vendor/grammars/latex.tmbundle 16154ce...0441781 (16): > Remove unnecessary code from tests > Try to read tex file using different encodings > Recognize errors in files containing spaces > Prepend `lib` to path in Python scripts > Fix minor style issues reported by `flake8` > Tell `flake8` to ignore “relative” imports > Use `format` instead of `sprintf` > Use encoding `latin_1` to open log files > Add “LaTeX Tidy” to the bundle again > Add `YAML::Tiny` library to the bundle > Use `texdoc` to show documentation for single word > Determine `TEXMFMAIN` only once in `texdoc` > Autoupdate cache for “Documentation for Package” > Update “Documentation for Package” > Use direct imports in `texdoc` > Add folding markers for sections * vendor/grammars/objective-c.tmbundle 8387be8...1bade8a (1): > Add syntax highlight for the typedefs in NSObjCRuntime.h * vendor/grammars/php.tmbundle 1ae104d...7178a10 (4): > Doc Snippet: Allow for static keyword in declarations > Further work on escapes in single-quoted regular expressions > Grammar: Correct improper '\' escaping > Improve/simplify escaping rules for single-quoted regexps * vendor/grammars/sublime-nix 412f7e1...217ffe5 (1): > Fix comma-first --- vendor/grammars/GDScript-sublime | 2 +- vendor/grammars/Modelica | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/Sublime-SQF-Language | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/ats.sublime | 2 +- vendor/grammars/c.tmbundle | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/java.tmbundle | 2 +- vendor/grammars/javadoc.tmbundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-csharp | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/objective-c.tmbundle | 2 +- vendor/grammars/php.tmbundle | 2 +- vendor/grammars/sublime-nix | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/vendor/grammars/GDScript-sublime b/vendor/grammars/GDScript-sublime index 99a0d512..44ac5c4a 160000 --- a/vendor/grammars/GDScript-sublime +++ b/vendor/grammars/GDScript-sublime @@ -1 +1 @@ -Subproject commit 99a0d512248fb85741b00d9d702cf97797de9a4c +Subproject commit 44ac5c4af2e7b28a7abe0a5c56855b22d6ef3b19 diff --git a/vendor/grammars/Modelica b/vendor/grammars/Modelica index d7e50e39..f2b1242b 160000 --- a/vendor/grammars/Modelica +++ b/vendor/grammars/Modelica @@ -1 +1 @@ -Subproject commit d7e50e39c14a49153d3c17dfbd623258cf1a5d69 +Subproject commit f2b1242b93c9958aec0dbee2e02b35b12753e506 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 75811539..58a1e0c0 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 75811539ec1a32e72821a540e1ef73fce0febd43 +Subproject commit 58a1e0c0c12b34f4a57af66e119f6c09bfce4a73 diff --git a/vendor/grammars/Sublime-SQF-Language b/vendor/grammars/Sublime-SQF-Language index 708c78a0..0313fbe6 160000 --- a/vendor/grammars/Sublime-SQF-Language +++ b/vendor/grammars/Sublime-SQF-Language @@ -1 +1 @@ -Subproject commit 708c78a0ba5e9449c3a913243ce9dfdeb458e68c +Subproject commit 0313fbe6fb962a21c337a327dcb72235af913536 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 5a7b3e7b..152c7b79 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 5a7b3e7b29fdee835d0198d1f20e21c0ff874154 +Subproject commit 152c7b79ffe3bfcef877f82d845fda0bc2608b08 diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime index d954ef6b..2565468f 160000 --- a/vendor/grammars/ats.sublime +++ b/vendor/grammars/ats.sublime @@ -1 +1 @@ -Subproject commit d954ef6b27dbdbed6276c7b9b63d3a39d9f69a2c +Subproject commit 2565468fd437fbe436bc21509a72ba8bad35fc7c diff --git a/vendor/grammars/c.tmbundle b/vendor/grammars/c.tmbundle index f8254252..f6048afe 160000 --- a/vendor/grammars/c.tmbundle +++ b/vendor/grammars/c.tmbundle @@ -1 +1 @@ -Subproject commit f8254252620b24c50d23ec804344915d498ecd7f +Subproject commit f6048afe693e50adf47d46aba791f95c9138823e diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index fecdbc5f..c1afc623 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit fecdbc5f246571025bf3d22feb9fd9a260719e02 +Subproject commit c1afc623bcff9325edc7a50583575f6a9024dd65 diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index dcf1fc12..9c63ff09 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit dcf1fc125c81c904fae8dc91d483905bdb5d5f5d +Subproject commit 9c63ff09bd411d3e5c5a737145fc33d288804c9c diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 4ada3288..ec896cd5 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 4ada3288806d32beaf68e84c079653106e366d5f +Subproject commit ec896cd5ad05d4ae9b837fa5a64cd9431d2a14d6 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index 92d969b1..0cd6439b 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit 92d969b19715192928d0c865c87a1aac3ba98dac +Subproject commit 0cd6439b513631c469d69b0e02a26804b068674b diff --git a/vendor/grammars/java.tmbundle b/vendor/grammars/java.tmbundle index a74cb835..ccdebdf8 160000 --- a/vendor/grammars/java.tmbundle +++ b/vendor/grammars/java.tmbundle @@ -1 +1 @@ -Subproject commit a74cb835b821e9a3498d1810d546cb49881df73e +Subproject commit ccdebdf888400c492ea55884e03a8f9d1b61de8b diff --git a/vendor/grammars/javadoc.tmbundle b/vendor/grammars/javadoc.tmbundle index 484d468f..5276d7a9 160000 --- a/vendor/grammars/javadoc.tmbundle +++ b/vendor/grammars/javadoc.tmbundle @@ -1 +1 @@ -Subproject commit 484d468f47f6a17c98f73b369fa00a6bbc2a22fd +Subproject commit 5276d7a93f0cf53b7d425c39c6968b09ea9f2d40 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index bae6eee8..cfc8a5ce 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit bae6eee8557c2158592ac485a7168ccd10fc6dfb +Subproject commit cfc8a5ce603efdeb4018dd7f04846815cc3de9b1 diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index fba368a8..d07ba8f1 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit fba368a8397e298fa78679b4ee0a542b2474c150 +Subproject commit d07ba8f16818d95ff663929f8104f7c101cc3ae6 diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 18400b22..5f5df306 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 18400b22cd7968afee982b4e0aa57ef7813ce991 +Subproject commit 5f5df3064c9dccbfd8dac8d260b0d4a843ac88a5 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 0141d449..8daa1008 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 0141d44946d55ae06ce4dba90b1b0e08db1e437e +Subproject commit 8daa10089a14bacf2346bb16f31d1189489696e0 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 16154cef..04417819 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 16154cef75708eabc5ebd83c61ad49e8830d835d +Subproject commit 04417819498f3a8965e49b86cee3bdd1ad475b19 diff --git a/vendor/grammars/objective-c.tmbundle b/vendor/grammars/objective-c.tmbundle index 8387be89..1bade8a1 160000 --- a/vendor/grammars/objective-c.tmbundle +++ b/vendor/grammars/objective-c.tmbundle @@ -1 +1 @@ -Subproject commit 8387be8975e47cd8e4314cb197e4fc2834159807 +Subproject commit 1bade8a1c919c358fc4a6d83ba93e98e419ffede diff --git a/vendor/grammars/php.tmbundle b/vendor/grammars/php.tmbundle index 1ae104d8..7178a102 160000 --- a/vendor/grammars/php.tmbundle +++ b/vendor/grammars/php.tmbundle @@ -1 +1 @@ -Subproject commit 1ae104d86b303a7cf8460a4abca2125331b7bab6 +Subproject commit 7178a102ce62352d3512301f62ddec8157cd0d8a diff --git a/vendor/grammars/sublime-nix b/vendor/grammars/sublime-nix index 412f7e1d..217ffe59 160000 --- a/vendor/grammars/sublime-nix +++ b/vendor/grammars/sublime-nix @@ -1 +1 @@ -Subproject commit 412f7e1da57bd1be9ce185f27c0f36a95639ca25 +Subproject commit 217ffe591fca71624f63099d8fb64b1e3001939a From 10ffd870e2ea21d4d73048bb0e07410bd56e5bec Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Mon, 16 Feb 2015 09:50:04 -0500 Subject: [PATCH 226/875] Update to latest version of season This is needed to parse the Clojure grammar. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index acd7cd9e..025b6c1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "repository": "https://github.com/github/linguist", "dependencies": { - "season": "~>3.0" + "season": "~>5.0" } } From e10558e4445478e2384f7189b7ec7763630d7db3 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 16 Feb 2015 11:14:40 -0800 Subject: [PATCH 227/875] Fall back to classifier --- lib/linguist/heuristics.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 0986e2f0..c26632c3 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -157,9 +157,6 @@ module Linguist Language["AGS Script"] elsif /^-----BEGIN/.match(data) Language["Public Key"] - else - # Plain text can also be AsciiDoc. - Language["AsciiDoc"] end end From b609f24bbccbb3c3ebbf69ea4262b75d2ead72fb Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Tue, 17 Feb 2015 13:09:00 +0100 Subject: [PATCH 228/875] added ace_mode --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4673d3e2..80bc55c5 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -493,6 +493,7 @@ Cirru: Clarion: type: programming color: #f29200 + ace_mode: text extensions: - .clw - .inc From ef22eee4d951ff8ecedc452da76e9e3f8a7b124a Mon Sep 17 00:00:00 2001 From: Brahn Partridge Date: Tue, 17 Feb 2015 13:18:19 +0100 Subject: [PATCH 229/875] updating submodule to latest with license --- vendor/grammars/SublimeClarion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/SublimeClarion b/vendor/grammars/SublimeClarion index 6f0121fa..f070aadd 160000 --- a/vendor/grammars/SublimeClarion +++ b/vendor/grammars/SublimeClarion @@ -1 +1 @@ -Subproject commit 6f0121fa296995c19a052e006331bab0f76ac1da +Subproject commit f070aadd26c5376be522bd0c9a135ff85bb76f13 From d2d22e849e7c36e52fbf5f49e47eaa610587b2f0 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Thu, 19 Feb 2015 10:50:00 -0500 Subject: [PATCH 230/875] Update grammar submodules * vendor/grammars/Modelica f2b1242...e1fd853 (1): > Some string improvements * vendor/grammars/NimLime 58a1e0c...fac6b18 (2): > Added support for ST3 > Merge pull request #15 from fenekku/master * vendor/grammars/SublimePapyrus 152c7b7...2731300 (1): > Updated INI path setting behavior * vendor/grammars/actionscript3-tmbundle d69fcc8...d24ad7d (1): > all contexts * vendor/grammars/dart-sublime-bundle c1afc62...d55b1d4 (4): > Merge pull request #458 from guillermooo-forks/prep-release > Merge pull request #457 from guillermooo-forks/refactor > Merge pull request #455 from guillermooo-forks/fix-stagehand-unavailable > Merge pull request #452 from guillermooo-forks/improve-syntax-def * vendor/grammars/grace-tmbundle c342d35...acbf9a2 (9): > Add simple block parameter highlighting > Track open braces for better interpolation > Add highlighting for full import syntax > Check for extra word characters after var keyword > Remove built-ins and change storage to support > Highlight untyped block parameters > Highlight interpolation braces as keywords > Highlight only capitalised words with generic args > Include comment highlighting in every construct * vendor/grammars/language-javascript ac37d2a...d58edec (2): > Prepare 0.57.0 release > Merge pull request #101 from postcasio/iojs-shebang * vendor/grammars/latex.tmbundle 0441781...669040b (1): > Fix doctest for `run_biber` in `texmate` * vendor/grammars/mako-tmbundle e039636...da79638 (1): > Merge pull request #7 from seedofjoy/patch-1 * vendor/grammars/sublime-text-ox bdd03e0...10ca883 (5): > Update README.md > Update README.md > Moved license to separate md-file. > Ctrl+B executes on a single core instaed of two. > Added patterns for 'foreach' and 'delete'. --- vendor/grammars/Modelica | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/actionscript3-tmbundle | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/grace-tmbundle | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/mako-tmbundle | 2 +- vendor/grammars/sublime-text-ox | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vendor/grammars/Modelica b/vendor/grammars/Modelica index f2b1242b..e1fd8532 160000 --- a/vendor/grammars/Modelica +++ b/vendor/grammars/Modelica @@ -1 +1 @@ -Subproject commit f2b1242b93c9958aec0dbee2e02b35b12753e506 +Subproject commit e1fd853290e4a560f20383103c786334da505772 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 58a1e0c0..fac6b182 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 58a1e0c0c12b34f4a57af66e119f6c09bfce4a73 +Subproject commit fac6b182e8a92a65c9e144c578948d7b51048f26 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 152c7b79..27313007 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 152c7b79ffe3bfcef877f82d845fda0bc2608b08 +Subproject commit 27313007d94fd4ae802702e5ca6b454e8a5e9468 diff --git a/vendor/grammars/actionscript3-tmbundle b/vendor/grammars/actionscript3-tmbundle index d69fcc88..d24ad7de 160000 --- a/vendor/grammars/actionscript3-tmbundle +++ b/vendor/grammars/actionscript3-tmbundle @@ -1 +1 @@ -Subproject commit d69fcc8884432874248fe0e05fcc35c46870caa5 +Subproject commit d24ad7dec924b68fda32bf8170d12ff1e5a13e06 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index c1afc623..d55b1d42 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit c1afc623bcff9325edc7a50583575f6a9024dd65 +Subproject commit d55b1d427845aa4c2f2fe5947121616b7f1160fa diff --git a/vendor/grammars/grace-tmbundle b/vendor/grammars/grace-tmbundle index c342d35c..acbf9a24 160000 --- a/vendor/grammars/grace-tmbundle +++ b/vendor/grammars/grace-tmbundle @@ -1 +1 @@ -Subproject commit c342d35c76d6a7dd5cd91157ca5b39481ef59e96 +Subproject commit acbf9a247c6fae57d0e51c712669933b93ca4251 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index ac37d2a8..d58edec6 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit ac37d2a87c14271a23ba754d85b7746594c0d3c8 +Subproject commit d58edec65539e014fa13579461df6bebc24250c0 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 04417819..669040b8 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 04417819498f3a8965e49b86cee3bdd1ad475b19 +Subproject commit 669040b8936375e54fb208dfb56e2ed4a3945d76 diff --git a/vendor/grammars/mako-tmbundle b/vendor/grammars/mako-tmbundle index e039636f..da796386 160000 --- a/vendor/grammars/mako-tmbundle +++ b/vendor/grammars/mako-tmbundle @@ -1 +1 @@ -Subproject commit e039636f3d67d96f4b6b763b31153f857e199e5d +Subproject commit da79638669a49d0a6103d55224de0fd8609126b2 diff --git a/vendor/grammars/sublime-text-ox b/vendor/grammars/sublime-text-ox index bdd03e09..10ca8836 160000 --- a/vendor/grammars/sublime-text-ox +++ b/vendor/grammars/sublime-text-ox @@ -1 +1 @@ -Subproject commit bdd03e09fabc0b54567136709cdd33d7641b0e19 +Subproject commit 10ca88362c6e4853744fc6b17ed06cc45dc033fa From 471fabfff590439c522c4ac7dd71cb977e83fa7f Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Thu, 19 Feb 2015 16:49:00 -0500 Subject: [PATCH 231/875] Roll back to language-clojure v0.10.0 v0.11.0 seems to have introduced deeply nested meta.expression.clojure scopes. * vendor/grammars/language-clojure cfc8a5c...bae6eee (6): < Prepare 0.12.0 release < Merge pull request #14 from joelash/master < Prepare 0.11.0 release < Merge pull request #13 from hanjos/proposed < Add initial spec < Add initial Travis CI config --- vendor/grammars/language-clojure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index cfc8a5ce..bae6eee8 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit cfc8a5ce603efdeb4018dd7f04846815cc3de9b1 +Subproject commit bae6eee8557c2158592ac485a7168ccd10fc6dfb From 12c22d0311b79a4b693036bab282eae6c268d0f7 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Thu, 19 Feb 2015 16:56:20 -0500 Subject: [PATCH 232/875] Bump version to 4.4.1 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 674a61b9..c2a43a61 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.4.0" + VERSION = "4.4.1" end From 885b5aab413d6710f871f8abc809bbf2a3594780 Mon Sep 17 00:00:00 2001 From: Stefan Johnson Date: Fri, 20 Feb 2015 14:08:39 +1100 Subject: [PATCH 233/875] Changed tokenizer number literals to be more encompassing Number literals now skips hexadecimal, and C style literals. --- lib/linguist/tokenizer.rb | 2 +- test/test_tokenizer.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/linguist/tokenizer.rb b/lib/linguist/tokenizer.rb index 05882649..dc9fc9da 100644 --- a/lib/linguist/tokenizer.rb +++ b/lib/linguist/tokenizer.rb @@ -94,7 +94,7 @@ module Linguist end # Skip number literals - elsif s.scan(/(0x)?\d(\d|\.)*/) + elsif s.scan(/(0x\h(\h|\.)*|\d(\d|\.)*)([uU][lL]{0,2}|([eE][-+]\d*)?[fFlL]*)/) # SGML style brackets elsif token = s.scan(/<[^\s<>][^<>]*>/) diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index 780db019..140e03b5 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -25,6 +25,10 @@ class TestTokenizer < Minitest::Test assert_equal %w(add \( \)), tokenize('add(123, 456)') assert_equal %w(|), tokenize('0x01 | 0x10') assert_equal %w(*), tokenize('500.42 * 1.0') + assert_equal %w(), tokenize('1.23e-04') + assert_equal %w(), tokenize('1.0f') + assert_equal %w(), tokenize('1234ULL') + assert_equal %w(G1 X55 Y5 F2000), tokenize('G1 X55 Y5 F2000') end def test_skip_comments From 60deead669acb9381379f21aac724f482ea6def0 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 20 Feb 2015 09:53:07 -0500 Subject: [PATCH 234/875] Add a couple more documentation patterns These are used in repositories like jashkenas/coffeescript and tj/git-extras. --- lib/linguist/documentation.yml | 3 ++- test/test_blob.rb | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index b884cd35..a2578040 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -10,7 +10,8 @@ ## Documentation Conventions ## - ^docs?/ -- ^Documentation/ +- ^[Dd]ocumentation/ +- ^man/ - (^|/)CONTRIBUTING(\.|$) - (^|/)COPYING(\.|$) diff --git a/test/test_blob.rb b/test/test_blob.rb index d59e6794..6c071420 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -448,7 +448,12 @@ class TestBlob < Minitest::Test refute_predicate fixture_blob("project/docs/foo.html"), :documentation? assert_predicate fixture_blob("Documentation/foo.md"), :documentation? + assert_predicate fixture_blob("documentation/foo.md"), :documentation? refute_predicate fixture_blob("project/Documentation/foo.md"), :documentation? + refute_predicate fixture_blob("project/documentation/foo.md"), :documentation? + + assert_predicate fixture_blob("man/foo.html"), :documentation? + refute_predicate fixture_blob("project/man/foo.html"), :documentation? assert_predicate fixture_blob("README"), :documentation? assert_predicate fixture_blob("README.md"), :documentation? From c7c0c30ecfd873500c3e8c475fd9162f03f3ec58 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 20 Feb 2015 10:24:38 -0500 Subject: [PATCH 235/875] Classify javadoc/ directories as documentation --- lib/linguist/documentation.yml | 5 ++++- test/test_blob.rb | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index a2578040..a29a3d2f 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -7,12 +7,15 @@ # Please add additional test coverage to # `test/test_blob.rb#test_documentation` if you make any changes. -## Documentation Conventions ## +## Documentation directories ## - ^docs?/ - ^[Dd]ocumentation/ +- (^|/)javadoc/ - ^man/ +## Documentation files ## + - (^|/)CONTRIBUTING(\.|$) - (^|/)COPYING(\.|$) - (^|/)INSTALL(\.|$) diff --git a/test/test_blob.rb b/test/test_blob.rb index 6c071420..ec1d6ea3 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -452,6 +452,9 @@ class TestBlob < Minitest::Test refute_predicate fixture_blob("project/Documentation/foo.md"), :documentation? refute_predicate fixture_blob("project/documentation/foo.md"), :documentation? + assert_predicate fixture_blob("javadoc/foo.html"), :documentation? + assert_predicate fixture_blob("project/javadoc/foo.html"), :documentation? + assert_predicate fixture_blob("man/foo.html"), :documentation? refute_predicate fixture_blob("project/man/foo.html"), :documentation? From 9e020dd15da47b19c59ccfbba98212b14874ebbf Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 20 Feb 2015 10:24:59 -0500 Subject: [PATCH 236/875] Classify "documentation/" directories (lowercase) as documentation This is used in repositories like jashkenas/coffeescript. --- lib/linguist/documentation.yml | 2 +- test/test_blob.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index a29a3d2f..6e06329f 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -10,7 +10,7 @@ ## Documentation directories ## - ^docs?/ -- ^[Dd]ocumentation/ +- (^|/)[Dd]ocumentation/ - (^|/)javadoc/ - ^man/ diff --git a/test/test_blob.rb b/test/test_blob.rb index ec1d6ea3..ce6cde92 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -449,8 +449,8 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("Documentation/foo.md"), :documentation? assert_predicate fixture_blob("documentation/foo.md"), :documentation? - refute_predicate fixture_blob("project/Documentation/foo.md"), :documentation? - refute_predicate fixture_blob("project/documentation/foo.md"), :documentation? + assert_predicate fixture_blob("project/Documentation/foo.md"), :documentation? + assert_predicate fixture_blob("project/documentation/foo.md"), :documentation? assert_predicate fixture_blob("javadoc/foo.html"), :documentation? assert_predicate fixture_blob("project/javadoc/foo.html"), :documentation? From df552c241e5a3ab4c80c3664aea16b38e3f06989 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 20 Feb 2015 10:30:44 -0500 Subject: [PATCH 237/875] Classify XML as a data language While XML is technically a markup language, in the majority of cases it is just a serialization format for a tool (e.g., project files for IDEs) rather than hand-authored markup. As such it isn't really useful to include it in repository language statistics. A C# project doesn't really care whether Visual Studio uses XML, JSON, or some other format to serialize its project files, for example. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index bca601eb..0ac757f6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3165,7 +3165,7 @@ XC: ace_mode: c_cpp XML: - type: markup + type: data ace_mode: xml aliases: - rss From 80f72a5093c0ec343e6904b8b90dec6bdb45699b Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 20 Feb 2015 10:36:47 -0500 Subject: [PATCH 238/875] Classify the .google_apis/ directory as vendored This is used in Android projects that use certain Google SDKs to store the SDKs locally. --- lib/linguist/vendor.yml | 3 +++ test/test_blob.rb | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 9f6b401b..0384a7db 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -251,3 +251,6 @@ # ProGuard - proguard.pro - proguard-rules.pro + +# Android Google APIs +- (^|/)\.google_apis/ diff --git a/test/test_blob.rb b/test/test_blob.rb index ce6cde92..022eb20b 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -439,6 +439,9 @@ class TestBlob < Minitest::Test assert sample_blob("activator.bat").vendored? assert sample_blob("subproject/activator").vendored? assert sample_blob("subproject/activator.bat").vendored? + + assert_predicate fixture_blob(".google_apis/bar.jar"), :vendored? + assert_predicate fixture_blob("foo/.google_apis/bar.jar"), :vendored? end def test_documentation From 7bbb3da010ce19d6bacd0ae0e587b5d1d85ebd8d Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 20 Feb 2015 15:00:42 -0500 Subject: [PATCH 239/875] Bump version to 4.4.2 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index c2a43a61..86dd6961 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.4.1" + VERSION = "4.4.2" end From 53d020f7b07842dbde0e38bc38ec3acff0f595e8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 21 Feb 2015 17:10:43 +0100 Subject: [PATCH 240/875] tcc interpreter for C --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0ac757f6..076010b4 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -356,6 +356,8 @@ C: - .h - .idc - .w + interpreters: + - tcc ace_mode: c_cpp C#: From 6d8559eccb5dc5ca6bcc37edfbe32209c63a8a1c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 21 Feb 2015 17:16:33 +0100 Subject: [PATCH 241/875] Add test file for C interpreter tcc --- samples/C/filenames/script | 2310 ++++++++++++++++++++++++++++++++++++ 1 file changed, 2310 insertions(+) create mode 100755 samples/C/filenames/script diff --git a/samples/C/filenames/script b/samples/C/filenames/script new file mode 100755 index 00000000..53006397 --- /dev/null +++ b/samples/C/filenames/script @@ -0,0 +1,2310 @@ +#!/usr/bin/tcc -run -lm +// +// ZyklonB scripting plugin, using a custom stack-based language +// +// Copyright 2014 Přemysl Janouch. All rights reserved. +// See the file LICENSE for licensing information. +// +// Just compile this file as usual (sans #!) if you don't feel like using TCC. +// It is a very basic and portable C99 application. It's not supposed to be +// very sophisticated, for it'd get extremely big. +// +// The main influences of the language were Factor and Joy, stripped of all +// even barely complex stuff. In its current state, it's only really useful as +// a calculator but it's got great potential for extending. +// +// If you don't like something, just change it; this is just an experiment. +// +// NOTE: it is relatively easy to abuse. Be careful. +// + +#define _XOPEN_SOURCE 500 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ADDRESS_SPACE_LIMIT (100 * 1024 * 1024) +#include + +#if defined __GNUC__ +#define ATTRIBUTE_PRINTF(x, y) __attribute__ ((format (printf, x, y))) +#else // ! __GNUC__ +#define ATTRIBUTE_PRINTF(x, y) +#endif // ! __GNUC__ + +#define N_ELEMENTS(a) (sizeof (a) / sizeof ((a)[0])) + +// --- Utilities --------------------------------------------------------------- + +static char *strdup_printf (const char *format, ...) ATTRIBUTE_PRINTF (1, 2); + +static char * +strdup_vprintf (const char *format, va_list ap) +{ + va_list aq; + va_copy (aq, ap); + int size = vsnprintf (NULL, 0, format, aq); + va_end (aq); + if (size < 0) + return NULL; + + char buf[size + 1]; + size = vsnprintf (buf, sizeof buf, format, ap); + if (size < 0) + return NULL; + + return strdup (buf); +} + +static char * +strdup_printf (const char *format, ...) +{ + va_list ap; + va_start (ap, format); + char *result = strdup_vprintf (format, ap); + va_end (ap); + return result; +} + +// --- Generic buffer ---------------------------------------------------------- + +struct buffer +{ + char *s; ///< Buffer data + size_t alloc; ///< Number of bytes allocated + size_t len; ///< Number of bytes used + bool memory_failure; ///< Memory allocation failed +}; + +#define BUFFER_INITIALIZER { NULL, 0, 0, false } + +static bool +buffer_append (struct buffer *self, const void *s, size_t n) +{ + if (self->memory_failure) + return false; + + if (!self->s) + self->s = malloc (self->alloc = 8); + while (self->len + n > self->alloc) + self->s = realloc (self->s, self->alloc <<= 1); + + if (!self->s) + { + self->memory_failure = true; + return false; + } + + memcpy (self->s + self->len, s, n); + self->len += n; + return true; +} + +inline static bool +buffer_append_c (struct buffer *self, char c) +{ + return buffer_append (self, &c, 1); +} + +// --- Data types -------------------------------------------------------------- + +enum item_type +{ + ITEM_STRING, + ITEM_WORD, + ITEM_INTEGER, + ITEM_FLOAT, + ITEM_LIST +}; + +struct item +{ +#define ITEM_HEADER \ + enum item_type type; /**< The type of this object */ \ + struct item *next; /**< Next item on the list/stack */ + + ITEM_HEADER +}; + +struct item_string +{ + ITEM_HEADER + size_t len; ///< Length of the string (sans '\0') + char value[]; ///< The null-terminated string value +}; + +#define get_string(item) \ + (assert ((item)->type == ITEM_STRING), \ + ((struct item_string *)(item))->value) + +/// It looks like a string but it doesn't quack like a string +#define item_word item_string + +#define get_word(item) \ + (assert ((item)->type == ITEM_WORD), \ + ((struct item_word *)(item))->value) + +struct item_integer +{ + ITEM_HEADER + long long value; ///< The integer value +}; + +#define get_integer(item) \ + (assert ((item)->type == ITEM_INTEGER), \ + ((struct item_integer *)(item))->value) + +struct item_float +{ + ITEM_HEADER + long double value; ///< The floating point value +}; + +#define get_float(item) \ + (assert ((item)->type == ITEM_FLOAT), \ + ((struct item_float *)(item))->value) + +struct item_list +{ + ITEM_HEADER + struct item *head; ///< The head of the list +}; + +#define get_list(item) \ + (assert ((item)->type == ITEM_LIST), \ + ((struct item_list *)(item))->head) + +#define set_list(item, head_) \ + (assert ((item)->type == ITEM_LIST), \ + item_free_list (((struct item_list *)(item))->head), \ + ((struct item_list *)(item))->head = (head_)) + +const char * +item_type_to_str (enum item_type type) +{ + switch (type) + { + case ITEM_STRING: return "string"; + case ITEM_WORD: return "word"; + case ITEM_INTEGER: return "integer"; + case ITEM_FLOAT: return "float"; + case ITEM_LIST: return "list"; + } + abort (); +} + +// --- Item management --------------------------------------------------------- + +static void item_free_list (struct item *); +static struct item *new_clone_list (const struct item *); + +static void +item_free (struct item *item) +{ + if (item->type == ITEM_LIST) + item_free_list (get_list (item)); + free (item); +} + +static void +item_free_list (struct item *item) +{ + while (item) + { + struct item *link = item; + item = item->next; + item_free (link); + } +} + +static struct item * +new_clone (const struct item *item) +{ + size_t size; + switch (item->type) + { + case ITEM_STRING: + case ITEM_WORD: + { + const struct item_string *x = (const struct item_string *) item; + size = sizeof *x + x->len + 1; + break; + } + case ITEM_INTEGER: size = sizeof (struct item_integer); break; + case ITEM_FLOAT: size = sizeof (struct item_float); break; + case ITEM_LIST: size = sizeof (struct item_list); break; + } + + struct item *clone = malloc (size); + if (!clone) + return NULL; + + memcpy (clone, item, size); + if (item->type == ITEM_LIST) + { + struct item_list *x = (struct item_list *) clone; + if (x->head && !(x->head = new_clone_list (x->head))) + { + free (clone); + return NULL; + } + } + clone->next = NULL; + return clone; +} + +static struct item * +new_clone_list (const struct item *item) +{ + struct item *head = NULL, *clone; + for (struct item **out = &head; item; item = item->next) + { + if (!(clone = *out = new_clone (item))) + { + item_free_list (head); + return NULL; + } + clone->next = NULL; + out = &clone->next; + } + return head; +} + +static struct item * +new_string (const char *s, ssize_t len) +{ + if (len < 0) + len = strlen (s); + + struct item_string *item = calloc (1, sizeof *item + len + 1); + if (!item) + return NULL; + + item->type = ITEM_STRING; + item->len = len; + memcpy (item->value, s, len); + item->value[len] = '\0'; + return (struct item *) item; +} + +static struct item * +new_word (const char *s, ssize_t len) +{ + struct item *item = new_string (s, len); + if (!item) + return NULL; + + item->type = ITEM_WORD; + return item; +} + +static struct item * +new_integer (long long value) +{ + struct item_integer *item = calloc (1, sizeof *item); + if (!item) + return NULL; + + item->type = ITEM_INTEGER; + item->value = value; + return (struct item *) item; +} + +static struct item * +new_float (long double value) +{ + struct item_float *item = calloc (1, sizeof *item); + if (!item) + return NULL; + + item->type = ITEM_FLOAT; + item->value = value; + return (struct item *) item; +} + +static struct item * +new_list (struct item *head) +{ + struct item_list *item = calloc (1, sizeof *item); + if (!item) + return NULL; + + item->type = ITEM_LIST; + item->head = head; + return (struct item *) item; +} + +// --- Parsing ----------------------------------------------------------------- + +#define PARSE_ERROR_TABLE(XX) \ + XX( OK, NULL ) \ + XX( EOF, "unexpected end of input" ) \ + XX( INVALID_HEXA_ESCAPE, "invalid hexadecimal escape sequence" ) \ + XX( INVALID_ESCAPE, "unrecognized escape sequence" ) \ + XX( MEMORY, "memory allocation failure" ) \ + XX( FLOAT_RANGE, "floating point value out of range" ) \ + XX( INTEGER_RANGE, "integer out of range" ) \ + XX( INVALID_INPUT, "invalid input" ) \ + XX( UNEXPECTED_INPUT, "unexpected input" ) + +enum tokenizer_error +{ +#define XX(x, y) PARSE_ERROR_ ## x, + PARSE_ERROR_TABLE (XX) +#undef XX + PARSE_ERROR_COUNT +}; + +struct tokenizer +{ + const char *cursor; + enum tokenizer_error error; +}; + +static bool +decode_hexa_escape (struct tokenizer *self, struct buffer *buf) +{ + int i; + char c, code = 0; + + for (i = 0; i < 2; i++) + { + c = tolower (*self->cursor); + if (c >= '0' && c <= '9') + code = (code << 4) | (c - '0'); + else if (c >= 'a' && c <= 'f') + code = (code << 4) | (c - 'a' + 10); + else + break; + + self->cursor++; + } + + if (!i) + return false; + + buffer_append_c (buf, code); + return true; +} + +static bool +decode_octal_escape (struct tokenizer *self, struct buffer *buf) +{ + int i; + char c, code = 0; + + for (i = 0; i < 3; i++) + { + c = *self->cursor; + if (c < '0' || c > '7') + break; + + code = (code << 3) | (c - '0'); + self->cursor++; + } + + if (!i) + return false; + + buffer_append_c (buf, code); + return true; +} + +static bool +decode_escape_sequence (struct tokenizer *self, struct buffer *buf) +{ + // Support some basic escape sequences from the C language + char c; + switch ((c = *self->cursor)) + { + case '\0': + self->error = PARSE_ERROR_EOF; + return false; + case 'x': + case 'X': + self->cursor++; + if (decode_hexa_escape (self, buf)) + return true; + + self->error = PARSE_ERROR_INVALID_HEXA_ESCAPE; + return false; + default: + if (decode_octal_escape (self, buf)) + return true; + + self->cursor++; + const char *from = "abfnrtv\"\\", *to = "\a\b\f\n\r\t\v\"\\", *x; + if ((x = strchr (from, c))) + { + buffer_append_c (buf, to[x - from]); + return true; + } + + self->error = PARSE_ERROR_INVALID_ESCAPE; + return false; + } +} + +static struct item * +parse_string (struct tokenizer *self) +{ + struct buffer buf = BUFFER_INITIALIZER; + struct item *item = NULL; + char c; + + while (true) + switch ((c = *self->cursor++)) + { + case '\0': + self->cursor--; + self->error = PARSE_ERROR_EOF; + goto end; + case '"': + if (buf.memory_failure + || !(item = new_string (buf.s, buf.len))) + self->error = PARSE_ERROR_MEMORY; + goto end; + case '\\': + if (decode_escape_sequence (self, &buf)) + break; + goto end; + default: + buffer_append_c (&buf, c); + } + +end: + free (buf.s); + return item; +} + +static struct item * +try_parse_number (struct tokenizer *self) +{ + // These two standard library functions can digest a lot of various inputs, + // including NaN and +/- infinity. That may get a bit confusing. + char *float_end; + errno = 0; + long double float_value = strtold (self->cursor, &float_end); + int float_errno = errno; + + char *int_end; + errno = 0; + long long int_value = strtoll (self->cursor, &int_end, 10); + int int_errno = errno; + + // If they both fail, then this is most probably not a number. + if (float_end == int_end && float_end == self->cursor) + return NULL; + + // Only use the floating point result if it parses more characters: + struct item *item; + if (float_end > int_end) + { + if (float_errno == ERANGE) + { + self->error = PARSE_ERROR_FLOAT_RANGE; + return NULL; + } + self->cursor = float_end; + if (!(item = new_float (float_value))) + self->error = PARSE_ERROR_MEMORY; + return item; + } + else + { + if (int_errno == ERANGE) + { + self->error = PARSE_ERROR_INTEGER_RANGE; + return NULL; + } + self->cursor = int_end; + if (!(item = new_integer (int_value))) + self->error = PARSE_ERROR_MEMORY; + return item; + } +} + +static struct item * +parse_word (struct tokenizer *self) +{ + struct buffer buf = BUFFER_INITIALIZER; + struct item *item = NULL; + char c; + + // Here we accept almost anything that doesn't break the grammar + while (!strchr (" []\"", (c = *self->cursor++)) && (unsigned char) c > ' ') + buffer_append_c (&buf, c); + self->cursor--; + + if (buf.memory_failure) + self->error = PARSE_ERROR_MEMORY; + else if (!buf.len) + self->error = PARSE_ERROR_INVALID_INPUT; + else if (!(item = new_word (buf.s, buf.len))) + self->error = PARSE_ERROR_MEMORY; + + free (buf.s); + return item; +} + +static struct item *parse_item_list (struct tokenizer *); + +static struct item * +parse_list (struct tokenizer *self) +{ + struct item *list = parse_item_list (self); + if (self->error) + { + assert (list == NULL); + return NULL; + } + if (!*self->cursor) + { + self->error = PARSE_ERROR_EOF; + item_free_list (list); + return NULL; + } + assert (*self->cursor == ']'); + self->cursor++; + return new_list (list); +} + +static struct item * +parse_item (struct tokenizer *self) +{ + char c; + switch ((c = *self->cursor++)) + { + case '[': return parse_list (self); + case '"': return parse_string (self); + default:; + } + + self->cursor--; + struct item *item = try_parse_number (self); + if (!item && !self->error) + item = parse_word (self); + return item; +} + +static struct item * +parse_item_list (struct tokenizer *self) +{ + struct item *head = NULL; + struct item **tail = &head; + + char c; + bool expected = true; + while ((c = *self->cursor) && c != ']') + { + if (isspace (c)) + { + self->cursor++; + expected = true; + continue; + } + else if (!expected) + { + self->error = PARSE_ERROR_UNEXPECTED_INPUT; + goto fail; + } + + if (!(*tail = parse_item (self))) + goto fail; + tail = &(*tail)->next; + expected = false; + } + return head; + +fail: + item_free_list (head); + return NULL; +} + +static struct item * +parse (const char *s, const char **error) +{ + struct tokenizer self = { .cursor = s, .error = PARSE_ERROR_OK }; + struct item *list = parse_item_list (&self); + if (!self.error && *self.cursor != '\0') + { + self.error = PARSE_ERROR_UNEXPECTED_INPUT; + item_free_list (list); + list = NULL; + } + +#define XX(x, y) y, + static const char *strings[PARSE_ERROR_COUNT] = + { PARSE_ERROR_TABLE (XX) }; +#undef XX + + static char error_buf[128]; + if (self.error && error) + { + snprintf (error_buf, sizeof error_buf, "at character %d: %s", + (int) (self.cursor - s) + 1, strings[self.error]); + *error = error_buf; + } + return list; +} + +// --- Runtime ----------------------------------------------------------------- + +// TODO: try to think of a _simple_ way to do preemptive multitasking + +struct context +{ + struct item *stack; ///< The current top of the stack + size_t stack_size; ///< Number of items on the stack + + size_t reduction_count; ///< # of function calls so far + size_t reduction_limit; ///< The hard limit on function calls + + char *error; ///< Error information + bool error_is_fatal; ///< Whether the error can be catched + bool memory_failure; ///< Memory allocation failure + + void *user_data; ///< User data +}; + +/// Internal handler for a function +typedef bool (*handler_fn) (struct context *); + +struct fn +{ + struct fn *next; ///< The next link in the chain + + handler_fn handler; ///< Internal C handler, or NULL + struct item *script; ///< Alternatively runtime code + char name[]; ///< The name of the function +}; + +struct fn *g_functions; ///< Maps words to functions + +static void +context_init (struct context *ctx) +{ + ctx->stack = NULL; + ctx->stack_size = 0; + + ctx->reduction_count = 0; + ctx->reduction_limit = 2000; + + ctx->error = NULL; + ctx->error_is_fatal = false; + ctx->memory_failure = false; + + ctx->user_data = NULL; +} + +static void +context_free (struct context *ctx) +{ + item_free_list (ctx->stack); + ctx->stack = NULL; + + free (ctx->error); + ctx->error = NULL; +} + +static bool +set_error (struct context *ctx, const char *format, ...) +{ + free (ctx->error); + + va_list ap; + va_start (ap, format); + ctx->error = strdup_vprintf (format, ap); + va_end (ap); + + if (!ctx->error) + ctx->memory_failure = true; + return false; +} + +static bool +push (struct context *ctx, struct item *item) +{ + // The `item' is typically a result from new_(), thus when it is null, + // that function must have failed. This is a shortcut for convenience. + if (!item) + { + ctx->memory_failure = true; + return false; + } + + assert (item->next == NULL); + item->next = ctx->stack; + ctx->stack = item; + ctx->stack_size++; + return true; +} + +static bool +bump_reductions (struct context *ctx) +{ + if (++ctx->reduction_count >= ctx->reduction_limit) + { + ctx->error_is_fatal = true; + return set_error (ctx, "reduction limit reached"); + } + return true; +} + +static bool execute (struct context *, struct item *); + +static bool +call_function (struct context *ctx, const char *name) +{ + struct fn *iter; + for (iter = g_functions; iter; iter = iter->next) + if (!strcmp (name, iter->name)) + goto found; + return set_error (ctx, "unknown function: %s", name); + +found: + if (!bump_reductions (ctx)) + return false; + + if (iter->handler + ? iter->handler (ctx) + : execute (ctx, iter->script)) + return true; + + // In this case, `error' is NULL + if (ctx->memory_failure) + return false; + + // This creates some form of a stack trace + char *tmp = ctx->error; + ctx->error = NULL; + set_error (ctx, "%s -> %s", name, tmp); + free (tmp); + return false; +} + +static void +free_function (struct fn *fn) +{ + item_free_list (fn->script); + free (fn); +} + +static void +unregister_function (const char *name) +{ + for (struct fn **iter = &g_functions; *iter; iter = &(*iter)->next) + if (!strcmp ((*iter)->name, name)) + { + struct fn *tmp = *iter; + *iter = tmp->next; + free_function (tmp); + break; + } +} + +static struct fn * +prepend_new_fn (const char *name) +{ + struct fn *fn = calloc (1, sizeof *fn + strlen (name) + 1); + if (!fn) + return NULL; + + strcpy (fn->name, name); + fn->next = g_functions; + return g_functions = fn; +} + +static bool +register_handler (const char *name, handler_fn handler) +{ + unregister_function (name); + struct fn *fn = prepend_new_fn (name); + if (!fn) + return false; + fn->handler = handler; + return true; +} + +static bool +register_script (const char *name, struct item *script) +{ + unregister_function (name); + struct fn *fn = prepend_new_fn (name); + if (!fn) + return false; + fn->script = script; + return true; +} + +static bool +execute (struct context *ctx, struct item *script) +{ + for (; script; script = script->next) + { + if (script->type != ITEM_WORD) + { + if (!bump_reductions (ctx) + || !push (ctx, new_clone (script))) + return false; + } + else if (!call_function (ctx, get_word (script))) + return false; + } + return true; +} + +// --- Runtime library --------------------------------------------------------- + +#define defn(name) static bool name (struct context *ctx) + +#define check_stack(n) \ + if (ctx->stack_size < n) { \ + set_error (ctx, "stack underflow"); \ + return 0; \ + } + +inline static bool +check_stack_safe (struct context *ctx, size_t n) +{ + check_stack (n); + return true; +} + +static bool +check_type (struct context *ctx, const void *item_, enum item_type type) +{ + const struct item *item = item_; + if (item->type == type) + return true; + + return set_error (ctx, "invalid type: expected `%s', got `%s'", + item_type_to_str (type), item_type_to_str (item->type)); +} + +static struct item * +pop (struct context *ctx) +{ + check_stack (1); + struct item *top = ctx->stack; + ctx->stack = top->next; + top->next = NULL; + ctx->stack_size--; + return top; +} + +// - - Types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +#define defn_is_type(name, item_type) \ + defn (fn_is_##name) { \ + check_stack (1); \ + struct item *top = pop (ctx); \ + push (ctx, new_integer (top->type == (item_type))); \ + item_free (top); \ + return true; \ + } + +defn_is_type (string, ITEM_STRING) +defn_is_type (word, ITEM_WORD) +defn_is_type (integer, ITEM_INTEGER) +defn_is_type (float, ITEM_FLOAT) +defn_is_type (list, ITEM_LIST) + +defn (fn_to_string) +{ + check_stack (1); + struct item *item = pop (ctx); + char *value; + + switch (item->type) + { + case ITEM_WORD: + item->type = ITEM_STRING; + case ITEM_STRING: + return push (ctx, item); + + case ITEM_FLOAT: + value = strdup_printf ("%Lf", get_float (item)); + break; + case ITEM_INTEGER: + value = strdup_printf ("%lld", get_integer (item)); + break; + + default: + set_error (ctx, "cannot convert `%s' to `%s'", + item_type_to_str (item->type), item_type_to_str (ITEM_STRING)); + item_free (item); + return false; + } + + item_free (item); + if (!value) + { + ctx->memory_failure = true; + return false; + } + + item = new_string (value, -1); + free (value); + return push (ctx, item); +} + +defn (fn_to_integer) +{ + check_stack (1); + struct item *item = pop (ctx); + long long value; + + switch (item->type) + { + case ITEM_INTEGER: + return push (ctx, item); + case ITEM_FLOAT: + value = get_float (item); + break; + + case ITEM_STRING: + { + char *end; + const char *s = get_string (item); + value = strtoll (s, &end, 10); + if (end != s && *s == '\0') + break; + + item_free (item); + return set_error (ctx, "integer conversion error"); + } + + default: + set_error (ctx, "cannot convert `%s' to `%s'", + item_type_to_str (item->type), item_type_to_str (ITEM_INTEGER)); + item_free (item); + return false; + } + + item_free (item); + return push (ctx, new_integer (value)); +} + +defn (fn_to_float) +{ + check_stack (1); + struct item *item = pop (ctx); + long double value; + + switch (item->type) + { + case ITEM_FLOAT: + return push (ctx, item); + case ITEM_INTEGER: + value = get_integer (item); + break; + + case ITEM_STRING: + { + char *end; + const char *s = get_string (item); + value = strtold (s, &end); + if (end != s && *s == '\0') + break; + + item_free (item); + return set_error (ctx, "float conversion error"); + } + + default: + set_error (ctx, "cannot convert `%s' to `%s'", + item_type_to_str (item->type), item_type_to_str (ITEM_FLOAT)); + item_free (item); + return false; + } + + item_free (item); + return push (ctx, new_float (value)); +} + +// - - Miscellaneous - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_length) +{ + check_stack (1); + struct item *item = pop (ctx); + bool success = true; + switch (item->type) + { + case ITEM_STRING: + success = push (ctx, new_integer (((struct item_string *) item)->len)); + break; + case ITEM_LIST: + { + long long length = 0; + struct item *iter; + for (iter = get_list (item); iter; iter = iter->next) + length++; + success = push (ctx, new_integer (length)); + break; + } + default: + success = set_error (ctx, "invalid type"); + } + item_free (item); + return success; +} + +// - - Stack operations - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_dup) +{ + check_stack (1); + return push (ctx, new_clone (ctx->stack)); +} + +defn (fn_drop) +{ + check_stack (1); + item_free (pop (ctx)); + return true; +} + +defn (fn_swap) +{ + check_stack (2); + struct item *second = pop (ctx), *first = pop (ctx); + return push (ctx, second) && push (ctx, first); +} + +defn (fn_call) +{ + check_stack (1); + struct item *script = pop (ctx); + bool success = check_type (ctx, script, ITEM_LIST) + && execute (ctx, get_list (script)); + item_free (script); + return success; +} + +defn (fn_dip) +{ + check_stack (2); + struct item *script = pop (ctx); + struct item *item = pop (ctx); + bool success = check_type (ctx, script, ITEM_LIST) + && execute (ctx, get_list (script)); + item_free (script); + if (!success) + { + item_free (item); + return false; + } + return push (ctx, item); +} + +defn (fn_unit) +{ + check_stack (1); + struct item *item = pop (ctx); + return push (ctx, new_list (item)); +} + +defn (fn_cons) +{ + check_stack (2); + struct item *list = pop (ctx); + struct item *item = pop (ctx); + if (!check_type (ctx, list, ITEM_LIST)) + { + item_free (list); + item_free (item); + return false; + } + item->next = get_list (list); + ((struct item_list *) list)->head = item; + return push (ctx, list); +} + +defn (fn_cat) +{ + check_stack (2); + struct item *scnd = pop (ctx); + struct item *frst = pop (ctx); + if (!check_type (ctx, frst, ITEM_LIST) + || !check_type (ctx, scnd, ITEM_LIST)) + { + item_free (frst); + item_free (scnd); + return false; + } + + // XXX: we shouldn't have to do this in O(n) + struct item **tail = &((struct item_list *) frst)->head; + while (*tail) + tail = &(*tail)->next; + *tail = get_list (scnd); + + ((struct item_list *) scnd)->head = NULL; + item_free (scnd); + return push (ctx, frst); +} + +defn (fn_uncons) +{ + check_stack (1); + struct item *list = pop (ctx); + if (!check_type (ctx, list, ITEM_LIST)) + goto fail; + struct item *first = get_list (list); + if (!first) + { + set_error (ctx, "list is empty"); + goto fail; + } + ((struct item_list *) list)->head = first->next; + first->next = NULL; + return push (ctx, first) && push (ctx, list); +fail: + item_free (list); + return false; +} + +// - - Logical - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static bool +to_boolean (struct context *ctx, struct item *item, bool *ok) +{ + switch (item->type) + { + case ITEM_STRING: + return *get_string (item) != '\0'; + case ITEM_INTEGER: + return get_integer (item) != 0; + case ITEM_FLOAT: + return get_float (item) != 0.; + default: + return (*ok = set_error (ctx, "cannot convert `%s' to boolean", + item_type_to_str (item->type))); + } +} + +defn (fn_not) +{ + check_stack (1); + struct item *item = pop (ctx); + bool ok = true; + bool result = !to_boolean (ctx, item, &ok); + item_free (item); + return ok && push (ctx, new_integer (result)); +} + +defn (fn_and) +{ + check_stack (2); + struct item *op1 = pop (ctx); + struct item *op2 = pop (ctx); + bool ok = true; + bool result = to_boolean (ctx, op1, &ok) && to_boolean (ctx, op2, &ok); + item_free (op1); + item_free (op2); + return ok && push (ctx, new_integer (result)); +} + +defn (fn_or) +{ + check_stack (2); + struct item *op1 = pop (ctx); + struct item *op2 = pop (ctx); + bool ok = true; + bool result = to_boolean (ctx, op1, &ok) + || !ok || to_boolean (ctx, op2, &ok); + item_free (op1); + item_free (op2); + return ok && push (ctx, new_integer (result)); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_if) +{ + check_stack (3); + struct item *else_ = pop (ctx); + struct item *then_ = pop (ctx); + struct item *cond_ = pop (ctx); + + bool ok = true; + bool condition = to_boolean (ctx, cond_, &ok); + item_free (cond_); + + bool success = false; + if (ok + && check_type (ctx, then_, ITEM_LIST) + && check_type (ctx, else_, ITEM_LIST)) + success = execute (ctx, condition + ? get_list (then_) + : get_list (else_)); + + item_free (then_); + item_free (else_); + return success; +} + +defn (fn_try) +{ + check_stack (2); + struct item *catch = pop (ctx); + struct item *try = pop (ctx); + bool success = false; + if (!check_type (ctx, try, ITEM_LIST) + || !check_type (ctx, catch, ITEM_LIST)) + goto fail; + + if (!execute (ctx, get_list (try))) + { + if (ctx->memory_failure || ctx->error_is_fatal) + goto fail; + + success = push (ctx, new_string (ctx->error, -1)); + free (ctx->error); + ctx->error = NULL; + + if (success) + success = execute (ctx, get_list (catch)); + } + +fail: + item_free (try); + item_free (catch); + return success; +} + +defn (fn_map) +{ + check_stack (2); + struct item *fn = pop (ctx); + struct item *list = pop (ctx); + if (!check_type (ctx, fn, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + { + item_free (fn); + item_free (list); + return false; + } + + bool success = false; + struct item *result = NULL, **tail = &result; + for (struct item *iter = get_list (list); iter; iter = iter->next) + { + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (fn)) + || !check_stack_safe (ctx, 1)) + goto fail; + + struct item *item = pop (ctx); + *tail = item; + tail = &item->next; + } + success = true; + +fail: + set_list (list, result); + item_free (fn); + if (!success) + { + item_free (list); + return false; + } + return push (ctx, list); +} + +defn (fn_filter) +{ + check_stack (2); + struct item *fn = pop (ctx); + struct item *list = pop (ctx); + if (!check_type (ctx, fn, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + { + item_free (fn); + item_free (list); + return false; + } + + bool success = false; + bool ok = true; + struct item *result = NULL, **tail = &result; + for (struct item *iter = get_list (list); iter; iter = iter->next) + { + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (fn)) + || !check_stack_safe (ctx, 1)) + goto fail; + + struct item *item = pop (ctx); + bool survived = to_boolean (ctx, item, &ok); + item_free (item); + if (!ok) + goto fail; + if (!survived) + continue; + + if (!(item = new_clone (iter))) + goto fail; + *tail = item; + tail = &item->next; + } + success = true; + +fail: + set_list (list, result); + item_free (fn); + if (!success) + { + item_free (list); + return false; + } + return push (ctx, list); +} + +defn (fn_fold) +{ + check_stack (3); + struct item *op = pop (ctx); + struct item *null = pop (ctx); + struct item *list = pop (ctx); + bool success = false; + if (!check_type (ctx, op, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + { + item_free (null); + goto fail; + } + + push (ctx, null); + for (struct item *iter = get_list (list); iter; iter = iter->next) + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (op))) + goto fail; + success = true; + +fail: + item_free (op); + item_free (list); + return success; +} + +defn (fn_each) +{ + check_stack (2); + struct item *op = pop (ctx); + struct item *list = pop (ctx); + bool success = false; + if (!check_type (ctx, op, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + goto fail; + + for (struct item *iter = get_list (list); iter; iter = iter->next) + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (op))) + goto fail; + success = true; + +fail: + item_free (op); + item_free (list); + return success; +} + +// - - Arithmetic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// XXX: why not a `struct item_string *` argument? +static bool +push_repeated_string (struct context *ctx, struct item *op1, struct item *op2) +{ + struct item_string *string = (struct item_string *) op1; + struct item_integer *repeat = (struct item_integer *) op2; + assert (string->type == ITEM_STRING); + assert (repeat->type == ITEM_INTEGER); + + if (repeat->value < 0) + return set_error (ctx, "cannot multiply a string by a negative value"); + + char *buf = NULL; + size_t len = string->len * repeat->value; + if (len < string->len && repeat->value != 0) + goto allocation_fail; + + buf = malloc (len); + if (!buf) + goto allocation_fail; + + for (size_t i = 0; i < len; i += string->len) + memcpy (buf + i, string->value, string->len); + struct item *item = new_string (buf, len); + free (buf); + return push (ctx, item); + +allocation_fail: + ctx->memory_failure = true; + return false; +} + +defn (fn_times) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) * get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) * get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) * get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) * get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_STRING) + ok = push_repeated_string (ctx, op2, op1); + else if (op1->type == ITEM_STRING && op2->type == ITEM_INTEGER) + ok = push_repeated_string (ctx, op1, op2); + else + ok = set_error (ctx, "cannot multiply `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_pow) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + // TODO: implement this properly, outputting an integer + ok = push (ctx, new_float (powl (get_integer (op1), get_integer (op2)))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (powl (get_integer (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (powl (get_float (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (powl (get_float (op1), get_integer (op2)))); + else + ok = set_error (ctx, "cannot exponentiate `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_div) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + { + if (get_integer (op2) == 0) + ok = set_error (ctx, "division by zero"); + else + ok = push (ctx, new_integer (get_integer (op1) / get_integer (op2))); + } + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) / get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) / get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) / get_integer (op2))); + else + ok = set_error (ctx, "cannot divide `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_mod) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + { + if (get_integer (op2) == 0) + ok = set_error (ctx, "division by zero"); + else + ok = push (ctx, new_integer (get_integer (op1) % get_integer (op2))); + } + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (fmodl (get_integer (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (fmodl (get_float (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (fmodl (get_float (op1), get_integer (op2)))); + else + ok = set_error (ctx, "cannot divide `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +static bool +push_concatenated_string (struct context *ctx, + struct item *op1, struct item *op2) +{ + struct item_string *s1 = (struct item_string *) op1; + struct item_string *s2 = (struct item_string *) op2; + assert (s1->type == ITEM_STRING); + assert (s2->type == ITEM_STRING); + + char *buf = NULL; + size_t len = s1->len + s2->len; + if (len < s1->len || len < s2->len) + goto allocation_fail; + + buf = malloc (len); + if (!buf) + goto allocation_fail; + + memcpy (buf, s1->value, s1->len); + memcpy (buf + s1->len, s2->value, s2->len); + struct item *item = new_string (buf, len); + free (buf); + return push (ctx, item); + +allocation_fail: + ctx->memory_failure = true; + return false; + +} + +defn (fn_plus) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) + get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) + get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) + get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) + get_integer (op2))); + else if (op1->type == ITEM_STRING && op2->type == ITEM_STRING) + ok = push_concatenated_string (ctx, op1, op2); + else + ok = set_error (ctx, "cannot add `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_minus) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) - get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) - get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) - get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) - get_integer (op2))); + else + ok = set_error (ctx, "cannot subtract `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +// - - Comparison - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static int +compare_strings (struct item_string *s1, struct item_string *s2) +{ + // XXX: not entirely correct wrt. null bytes + size_t len = (s1->len < s2->len ? s1->len : s2->len) + 1; + return memcmp (s1->value, s2->value, len); +} + +static bool compare_lists (struct item *, struct item *); + +static bool +compare_list_items (struct item *op1, struct item *op2) +{ + if (op1->type != op2->type) + return false; + + switch (op1->type) + { + case ITEM_STRING: + case ITEM_WORD: + return !compare_strings ((struct item_string *) op1, + (struct item_string *) op2); + case ITEM_FLOAT: + return get_float (op1) == get_float (op2); + case ITEM_INTEGER: + return get_integer (op1) == get_integer (op2); + case ITEM_LIST: + return compare_lists (get_list (op1), get_list (op2)); + } + abort (); +} + +static bool +compare_lists (struct item *op1, struct item *op2) +{ + while (op1 && op2) + { + if (!compare_list_items (op1, op2)) + return false; + + op1 = op1->next; + op2 = op2->next; + } + return !op1 && !op2; +} + +defn (fn_eq) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) == get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_integer (op1) == get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_float (op1) == get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_float (op1) == get_integer (op2))); + else if (op1->type == ITEM_LIST && op2->type == ITEM_LIST) + ok = push (ctx, new_integer (compare_lists + (get_list (op1), get_list (op2)))); + else if (op1->type == ITEM_STRING && op2->type == ITEM_STRING) + ok = push (ctx, new_integer (compare_strings + ((struct item_string *)(op1), (struct item_string *)(op2)) == 0)); + else + ok = set_error (ctx, "cannot compare `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_lt) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) < get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_integer (op1) < get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_float (op1) < get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_float (op1) < get_integer (op2))); + else if (op1->type == ITEM_STRING && op2->type == ITEM_STRING) + ok = push (ctx, new_integer (compare_strings + ((struct item_string *)(op1), (struct item_string *)(op2)) < 0)); + else + ok = set_error (ctx, "cannot compare `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +// - - Utilities - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_rand) +{ + return push (ctx, new_float ((long double) rand () + / ((long double) RAND_MAX + 1))); +} + +defn (fn_time) +{ + return push (ctx, new_integer (time (NULL))); +} + +// XXX: this is a bit too constrained; combines strftime() with gmtime() +defn (fn_strftime) +{ + check_stack (2); + struct item *format = pop (ctx); + struct item *time_ = pop (ctx); + bool success = false; + if (!check_type (ctx, time_, ITEM_INTEGER) + || !check_type (ctx, format, ITEM_STRING)) + goto fail; + + if (get_integer (time_) < 0) + { + set_error (ctx, "invalid time value"); + goto fail; + } + + char buf[128]; + time_t time__ = get_integer (time_); + struct tm tm; + gmtime_r (&time__, &tm); + buf[strftime (buf, sizeof buf, get_string (format), &tm)] = '\0'; + success = push (ctx, new_string (buf, -1)); + +fail: + item_free (time_); + item_free (format); + return success; +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static void item_list_to_str (const struct item *, struct buffer *); + +static void +string_to_str (const struct item_string *string, struct buffer *buf) +{ + buffer_append_c (buf, '"'); + for (size_t i = 0; i < string->len; i++) + { + char c = string->value[i]; + if (c == '\n') buffer_append (buf, "\\n", 2); + else if (c == '\r') buffer_append (buf, "\\r", 2); + else if (c == '\t') buffer_append (buf, "\\t", 2); + else if (!isprint (c)) + { + char tmp[8]; + snprintf (tmp, sizeof tmp, "\\x%02x", (unsigned char) c); + buffer_append (buf, tmp, strlen (tmp)); + } + else if (c == '\\') buffer_append (buf, "\\\\", 2); + else if (c == '"') buffer_append (buf, "\\\"", 2); + else buffer_append_c (buf, c); + } + buffer_append_c (buf, '"'); +} + +static void +item_to_str (const struct item *item, struct buffer *buf) +{ + switch (item->type) + { + char *x; + case ITEM_STRING: + string_to_str ((struct item_string *) item, buf); + break; + case ITEM_WORD: + { + struct item_word *word = (struct item_word *) item; + buffer_append (buf, word->value, word->len); + break; + } + case ITEM_INTEGER: + if (!(x = strdup_printf ("%lld", get_integer (item)))) + goto alloc_failure; + buffer_append (buf, x, strlen (x)); + free (x); + break; + case ITEM_FLOAT: + if (!(x = strdup_printf ("%Lf", get_float (item)))) + goto alloc_failure; + buffer_append (buf, x, strlen (x)); + free (x); + break; + case ITEM_LIST: + buffer_append_c (buf, '['); + item_list_to_str (get_list (item), buf); + buffer_append_c (buf, ']'); + break; + } + return; + +alloc_failure: + // This is a bit hackish but it simplifies stuff + buf->memory_failure = true; + free (buf->s); + buf->s = NULL; +} + +static void +item_list_to_str (const struct item *script, struct buffer *buf) +{ + if (!script) + return; + + item_to_str (script, buf); + while ((script = script->next)) + { + buffer_append_c (buf, ' '); + item_to_str (script, buf); + } +} + +// --- IRC protocol ------------------------------------------------------------ + +struct message +{ + char *prefix; ///< Message prefix + char *command; ///< IRC command + char *params[16]; ///< Command parameters (0-terminated) + size_t n_params; ///< Number of parameters present +}; + +inline static char * +cut_word (char **s) +{ + char *start = *s, *end = *s + strcspn (*s, " "); + *s = end + strspn (end, " "); + *end = '\0'; + return start; +} + +static bool +parse_message (char *s, struct message *msg) +{ + memset (msg, 0, sizeof *msg); + + // Ignore IRC 3.2 message tags, if present + if (*s == '@') + { + s += strcspn (s, " "); + s += strspn (s, " "); + } + + // Prefix + if (*s == ':') + msg->prefix = cut_word (&s) + 1; + + // Command + if (!*(msg->command = cut_word (&s))) + return false; + + // Parameters + while (*s) + { + size_t n = msg->n_params++; + if (msg->n_params >= N_ELEMENTS (msg->params)) + return false; + if (*s == ':') + { + msg->params[n] = ++s; + break; + } + msg->params[n] = cut_word (&s); + } + return true; +} + +static struct message * +read_message (void) +{ + static bool discard = false; + static char buf[1025]; + static struct message msg; + + bool discard_this; + do + { + if (!fgets (buf, sizeof buf, stdin)) + return NULL; + size_t len = strlen (buf); + + // Just to be on the safe side, if the line overflows our buffer, + // ignore everything up until the next line. + discard_this = discard; + if (len >= 2 && !strcmp (buf + len - 2, "\r\n")) + { + buf[len -= 2] = '\0'; + discard = false; + } + else + discard = true; + } + // Invalid messages are silently ignored + while (discard_this || !parse_message (buf, &msg)); + return &msg; +} + +// --- Interfacing with the bot ------------------------------------------------ + +#define BOT_PRINT "ZYKLONB print :script: " + +static const char * +get_config (const char *key) +{ + printf ("ZYKLONB get_config :%s\r\n", key); + struct message *msg = read_message (); + if (!msg || msg->n_params <= 0) + exit (EXIT_FAILURE); + return msg->params[0]; +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// TODO: implement more functions; try to avoid writing them in C + +static bool +init_runtime_library_scripts (void) +{ + bool ok = true; + + // It's much cheaper (and more fun) to define functions in terms of other + // ones. The "unit tests" serve a secondary purpose of showing the usage. + struct script + { + const char *name; ///< Name of the function + const char *definition; ///< The defining script + const char *unit_test; ///< Trivial unit test, must return 1 + } + scripts[] = + { + { "nip", "swap drop", "1 2 nip 2 =" }, + { "over", "[dup] dip swap", "1 2 over nip nip 1 =" }, + { "swons", "swap cons", "[2] 1 swons [1 2] =" }, + { "first", "uncons drop", "[1 2 3] first 1 =" }, + { "rest", "uncons swap drop", "[1 2 3] rest [2 3] =" }, + { "reverse", "[] swap [swap cons] each", "[1 2] reverse [2 1] =" }, + { "curry", "cons", "1 2 [+] curry call 3 =" }, + + { "xor", "not swap not + 1 =", "1 1 xor 0 =" }, + { "min", "over over < [drop] [nip] if", "1 2 min 1 =" }, + { "max", "over over > [drop] [nip] if", "1 2 max 2 =" }, + + { "all?", "[and] cat 1 swap fold", "[3 4 5] [> 3] all? 0 =" }, + { "any?", "[or] cat 0 swap fold", "[3 4 5] [> 3] any? 1 =" }, + + { ">", "swap <", "1 2 > 0 =" }, + { "!=", "= not", "1 2 != 1 =" }, + { "<=", "> not", "1 2 <= 1 =" }, + { ">=", "< not", "1 2 >= 0 =" }, + + // XXX: this is a bit crazy and does not work with an empty list + { "join", "[uncons] dip swap [[dup] dip swap [+ +] dip] each drop", + "[1 2 3] [>string] map \" -> \" join \"1 -> 2 -> 3\" =" }, + }; + + for (size_t i = 0; i < N_ELEMENTS (scripts); i++) + { + const char *error = NULL; + struct item *script = parse (scripts[i].definition, &error); + if (error) + { + printf (BOT_PRINT "error parsing internal script `%s': %s\r\n", + scripts[i].definition, error); + ok = false; + } + else + ok &= register_script (scripts[i].name, script); + } + + struct context ctx; + for (size_t i = 0; i < N_ELEMENTS (scripts); i++) + { + const char *error = NULL; + struct item *script = parse (scripts[i].unit_test, &error); + if (error) + { + printf (BOT_PRINT "error parsing unit test for `%s': %s\r\n", + scripts[i].name, error); + ok = false; + continue; + } + context_init (&ctx); + execute (&ctx, script); + item_free_list (script); + + const char *failure = NULL; + if (ctx.memory_failure) + failure = "memory allocation failure"; + else if (ctx.error) + failure = ctx.error; + else if (ctx.stack_size != 1) + failure = "too many results on the stack"; + else if (ctx.stack->type != ITEM_INTEGER) + failure = "result is not an integer"; + else if (get_integer (ctx.stack) != 1) + failure = "wrong test result"; + if (failure) + { + printf (BOT_PRINT "error executing unit test for `%s': %s\r\n", + scripts[i].name, failure); + ok = false; + } + context_free (&ctx); + } + return ok; +} + +static bool +init_runtime_library (void) +{ + bool ok = true; + + // Type detection + ok &= register_handler ("string?", fn_is_string); + ok &= register_handler ("word?", fn_is_word); + ok &= register_handler ("integer?", fn_is_integer); + ok &= register_handler ("float?", fn_is_float); + ok &= register_handler ("list?", fn_is_list); + + // Type conversion + ok &= register_handler (">string", fn_to_string); + ok &= register_handler (">integer", fn_to_integer); + ok &= register_handler (">float", fn_to_float); + + // Miscellaneous + ok &= register_handler ("length", fn_length); + + // Basic stack manipulation + ok &= register_handler ("dup", fn_dup); + ok &= register_handler ("drop", fn_drop); + ok &= register_handler ("swap", fn_swap); + + // Calling stuff + ok &= register_handler ("call", fn_call); + ok &= register_handler ("dip", fn_dip); + + // Control flow + ok &= register_handler ("if", fn_if); + ok &= register_handler ("try", fn_try); + + // List processing + ok &= register_handler ("map", fn_map); + ok &= register_handler ("filter", fn_filter); + ok &= register_handler ("fold", fn_fold); + ok &= register_handler ("each", fn_each); + + // List manipulation + ok &= register_handler ("unit", fn_unit); + ok &= register_handler ("cons", fn_cons); + ok &= register_handler ("cat", fn_cat); + ok &= register_handler ("uncons", fn_uncons); + + // Arithmetic operations + ok &= register_handler ("+", fn_plus); + ok &= register_handler ("-", fn_minus); + ok &= register_handler ("*", fn_times); + ok &= register_handler ("^", fn_pow); + ok &= register_handler ("/", fn_div); + ok &= register_handler ("%", fn_mod); + + // Comparison + ok &= register_handler ("=", fn_eq); + ok &= register_handler ("<", fn_lt); + + // Logical operations + ok &= register_handler ("not", fn_not); + ok &= register_handler ("and", fn_and); + ok &= register_handler ("or", fn_or); + + // Utilities + ok &= register_handler ("rand", fn_rand); + ok &= register_handler ("time", fn_time); + ok &= register_handler ("strftime", fn_strftime); + + ok &= init_runtime_library_scripts (); + return ok; +} + +static void +free_runtime_library (void) +{ + struct fn *next, *iter; + for (iter = g_functions; iter; iter = next) + { + next = iter->next; + free_function (iter); + } +} + +// --- Function database ------------------------------------------------------- + +// TODO: a global variable storing the various procedures (db) +// XXX: defining procedures would ideally need some kind of an ACL + +static void +read_db (void) +{ + // TODO +} + +static void +write_db (void) +{ + // TODO +} + +// --- Main -------------------------------------------------------------------- + +static char *g_prefix; + +struct user_info +{ + char *ctx; ///< Context: channel or user + char *ctx_quote; ///< Reply quotation +}; + +defn (fn_dot) +{ + check_stack (1); + struct item *item = pop (ctx); + struct user_info *info = ctx->user_data; + + struct buffer buf = BUFFER_INITIALIZER; + item_to_str (item, &buf); + item_free (item); + buffer_append_c (&buf, '\0'); + if (buf.memory_failure) + { + ctx->memory_failure = true; + return false; + } + + if (buf.len > 255) + buf.s[255] = '\0'; + + printf ("PRIVMSG %s :%s%s\r\n", info->ctx, info->ctx_quote, buf.s); + free (buf.s); + return true; +} + +static void +process_message (struct message *msg) +{ + if (!msg->prefix + || strcasecmp (msg->command, "PRIVMSG") + || msg->n_params < 2) + return; + char *line = msg->params[1]; + + // Filter out only our commands + size_t prefix_len = strlen (g_prefix); + if (strncmp (line, g_prefix, prefix_len)) + return; + line += prefix_len; + + char *command = cut_word (&line); + if (strcasecmp (command, "script")) + return; + + // Retrieve information on how to respond back + char *msg_ctx = msg->prefix, *x; + if ((x = strchr (msg_ctx, '!'))) + *x = '\0'; + + char *msg_ctx_quote; + if (strchr ("#+&!", *msg->params[0])) + { + msg_ctx_quote = strdup_printf ("%s: ", msg_ctx); + msg_ctx = msg->params[0]; + } + else + msg_ctx_quote = strdup (""); + + if (!msg_ctx_quote) + { + printf (BOT_PRINT "%s\r\n", "memory allocation failure"); + return; + } + + struct user_info info; + info.ctx = msg_ctx; + info.ctx_quote = msg_ctx_quote; + + // Finally parse and execute the macro + const char *error = NULL; + struct item *script = parse (line, &error); + if (error) + { + printf ("PRIVMSG %s :%s%s: %s\r\n", + msg_ctx, msg_ctx_quote, "parse error", error); + goto end; + } + + struct context ctx; + context_init (&ctx); + ctx.user_data = &info; + execute (&ctx, script); + item_free_list (script); + + const char *failure = NULL; + if (ctx.memory_failure) + failure = "memory allocation failure"; + else if (ctx.error) + failure = ctx.error; + if (failure) + printf ("PRIVMSG %s :%s%s: %s\r\n", + msg_ctx, msg_ctx_quote, "runtime error", failure); + context_free (&ctx); +end: + free (msg_ctx_quote); +} + +int +main (int argc, char *argv[]) +{ + freopen (NULL, "rb", stdin); setvbuf (stdin, NULL, _IOLBF, BUFSIZ); + freopen (NULL, "wb", stdout); setvbuf (stdout, NULL, _IOLBF, BUFSIZ); + + struct rlimit limit = + { + .rlim_cur = ADDRESS_SPACE_LIMIT, + .rlim_max = ADDRESS_SPACE_LIMIT + }; + + // Lower the memory limits to something sensible to prevent abuse + (void) setrlimit (RLIMIT_AS, &limit); + + read_db (); + if (!init_runtime_library () + || !register_handler (".", fn_dot)) + printf (BOT_PRINT "%s\r\n", "runtime library initialization failed"); + + g_prefix = strdup (get_config ("prefix")); + printf ("ZYKLONB register\r\n"); + struct message *msg; + while ((msg = read_message ())) + process_message (msg); + + free_runtime_library (); + free (g_prefix); + return 0; +} + From 2ca586861025caa2887b6b7dd8ef2f0b83805343 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 22 Feb 2015 10:50:47 +0100 Subject: [PATCH 242/875] Detect Go files generated by Protocol Buffers --- lib/linguist/generated.rb | 8 + samples/Go/api.pb.go | 1157 +++++++++++++++++++++++++++++++++++++ test/test_blob.rb | 1 + 3 files changed, 1166 insertions(+) create mode 100644 samples/Go/api.pb.go diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 50dbc58d..b93f7ea6 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -62,6 +62,7 @@ module Linguist generated_parser? || generated_net_docfile? || generated_postscript? || + generated_protocol_buffer_go? || generated_protocol_buffer? || generated_jni_header? || vcr_cassette? @@ -202,6 +203,13 @@ module Linguist creator.include?("ImageMagick") end + def generated_protocol_buffer_go? + return false unless extname == '.go' + return false unless lines.count > 1 + + return lines[0].include?("Code generated by protoc-gen-go") + end + # Internal: Is the blob a C++, Java or Python source file generated by the # Protocol Buffer compiler? # diff --git a/samples/Go/api.pb.go b/samples/Go/api.pb.go new file mode 100644 index 00000000..a4fe4921 --- /dev/null +++ b/samples/Go/api.pb.go @@ -0,0 +1,1157 @@ +// Code generated by protoc-gen-gogo. +// source: api.proto +// DO NOT EDIT! + +/* + Package proto is a generated protocol buffer package. + + It is generated from these files: + api.proto + config.proto + data.proto + errors.proto + gossip.proto + heartbeat.proto + internal.proto + + It has these top-level messages: + ClientCmdID + RequestHeader + ResponseHeader + ContainsRequest + ContainsResponse + GetRequest + GetResponse + PutRequest + PutResponse + ConditionalPutRequest + ConditionalPutResponse + IncrementRequest + IncrementResponse + DeleteRequest + DeleteResponse + DeleteRangeRequest + DeleteRangeResponse + ScanRequest + ScanResponse + EndTransactionRequest + EndTransactionResponse + ReapQueueRequest + ReapQueueResponse + EnqueueUpdateRequest + EnqueueUpdateResponse + EnqueueMessageRequest + EnqueueMessageResponse + RequestUnion + ResponseUnion + BatchRequest + BatchResponse + AdminSplitRequest + AdminSplitResponse + AdminMergeRequest + AdminMergeResponse +*/ +package proto + +import proto1 "github.com/gogo/protobuf/proto" +import math "math" + +// discarding unused import gogoproto "github.com/gogo/protobuf/gogoproto/gogo.pb" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto1.Marshal +var _ = math.Inf + +// ClientCmdID provides a unique ID for client commands. Clients which +// provide ClientCmdID gain operation idempotence. In other words, +// clients can submit the same command multiple times and always +// receive the same response. This is common on retries over flaky +// networks. However, the system imposes a limit on how long +// idempotence is provided. Retries over an hour old are not +// guaranteed idempotence and may be executed more than once with +// potentially different results. +// +// ClientCmdID contains the client's timestamp and a client-generated +// random number. The client Timestamp is specified in unix +// nanoseconds and is used for some uniqueness but also to provide a +// rough ordering of requests, useful for data locality on the +// server. The Random is specified for additional uniqueness. +// NOTE: An accurate time signal IS NOT required for correctness. +type ClientCmdID struct { + // Nanoseconds since Unix epoch. + WallTime int64 `protobuf:"varint,1,opt,name=wall_time" json:"wall_time"` + Random int64 `protobuf:"varint,2,opt,name=random" json:"random"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ClientCmdID) Reset() { *m = ClientCmdID{} } +func (m *ClientCmdID) String() string { return proto1.CompactTextString(m) } +func (*ClientCmdID) ProtoMessage() {} + +func (m *ClientCmdID) GetWallTime() int64 { + if m != nil { + return m.WallTime + } + return 0 +} + +func (m *ClientCmdID) GetRandom() int64 { + if m != nil { + return m.Random + } + return 0 +} + +// RequestHeader is supplied with every storage node request. +type RequestHeader struct { + // Timestamp specifies time at which read or writes should be + // performed. If the timestamp is set to zero value, its value + // is initialized to the wall time of the receiving node. + Timestamp Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp"` + // CmdID is optionally specified for request idempotence + // (i.e. replay protection). + CmdID ClientCmdID `protobuf:"bytes,2,opt,name=cmd_id" json:"cmd_id"` + // The key for request. If the request operates on a range, this + // represents the starting key for the range. + Key Key `protobuf:"bytes,3,opt,name=key,customtype=Key" json:"key"` + // End key is empty if request spans only a single key. + EndKey Key `protobuf:"bytes,4,opt,name=end_key,customtype=Key" json:"end_key"` + // User is the originating user. Used to lookup priority when + // scheduling queued operations at target node. + User string `protobuf:"bytes,5,opt,name=user" json:"user"` + // Replica specifies the destination for the request. This is a specific + // instance of the available replicas belonging to RangeID. + Replica Replica `protobuf:"bytes,6,opt,name=replica" json:"replica"` + // RaftID specifies the ID of the Raft consensus group which the key + // range belongs to. This is used by the receiving node to route the + // request to the correct range. + RaftID int64 `protobuf:"varint,7,opt,name=raft_id" json:"raft_id"` + // UserPriority specifies priority multiple for non-transactional + // commands. This value should be a positive integer [1, 2^31-1). + // It's properly viewed as a multiple for how likely this + // transaction will be to prevail if a write conflict occurs. + // Commands with UserPriority=100 will be 100x less likely to be + // aborted as conflicting transactions or non-transactional commands + // with UserPriority=1. This value is ignored if Txn is + // specified. If neither this value nor Txn is specified, the value + // defaults to 1. + UserPriority *int32 `protobuf:"varint,8,opt,name=user_priority,def=1" json:"user_priority,omitempty"` + // Txn is set non-nil if a transaction is underway. To start a txn, + // the first request should set this field to non-nil with name and + // isolation level set as desired. The response will contain the + // fully-initialized transaction with txn ID, priority, initial + // timestamp, and maximum timestamp. + Txn *Transaction `protobuf:"bytes,9,opt,name=txn" json:"txn,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RequestHeader) Reset() { *m = RequestHeader{} } +func (m *RequestHeader) String() string { return proto1.CompactTextString(m) } +func (*RequestHeader) ProtoMessage() {} + +const Default_RequestHeader_UserPriority int32 = 1 + +func (m *RequestHeader) GetTimestamp() Timestamp { + if m != nil { + return m.Timestamp + } + return Timestamp{} +} + +func (m *RequestHeader) GetCmdID() ClientCmdID { + if m != nil { + return m.CmdID + } + return ClientCmdID{} +} + +func (m *RequestHeader) GetUser() string { + if m != nil { + return m.User + } + return "" +} + +func (m *RequestHeader) GetReplica() Replica { + if m != nil { + return m.Replica + } + return Replica{} +} + +func (m *RequestHeader) GetRaftID() int64 { + if m != nil { + return m.RaftID + } + return 0 +} + +func (m *RequestHeader) GetUserPriority() int32 { + if m != nil && m.UserPriority != nil { + return *m.UserPriority + } + return Default_RequestHeader_UserPriority +} + +func (m *RequestHeader) GetTxn() *Transaction { + if m != nil { + return m.Txn + } + return nil +} + +// ResponseHeader is returned with every storage node response. +type ResponseHeader struct { + // Error is non-nil if an error occurred. + Error *Error `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` + // Timestamp specifies time at which read or write actually was + // performed. In the case of both reads and writes, if the timestamp + // supplied to the request was 0, the wall time of the node + // servicing the request will be set here. Additionally, in the case + // of writes, this value may be increased from the timestamp passed + // with the RequestHeader if the key being written was either read + // or written more recently. + Timestamp Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp"` + // Transaction is non-nil if the request specified a non-nil + // transaction. The transaction timestamp and/or priority may have + // been updated, depending on the outcome of the request. + Txn *Transaction `protobuf:"bytes,3,opt,name=txn" json:"txn,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } +func (m *ResponseHeader) String() string { return proto1.CompactTextString(m) } +func (*ResponseHeader) ProtoMessage() {} + +func (m *ResponseHeader) GetError() *Error { + if m != nil { + return m.Error + } + return nil +} + +func (m *ResponseHeader) GetTimestamp() Timestamp { + if m != nil { + return m.Timestamp + } + return Timestamp{} +} + +func (m *ResponseHeader) GetTxn() *Transaction { + if m != nil { + return m.Txn + } + return nil +} + +// A ContainsRequest is arguments to the Contains() method. +type ContainsRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ContainsRequest) Reset() { *m = ContainsRequest{} } +func (m *ContainsRequest) String() string { return proto1.CompactTextString(m) } +func (*ContainsRequest) ProtoMessage() {} + +// A ContainsResponse is the return value of the Contains() method. +type ContainsResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Exists bool `protobuf:"varint,2,opt,name=exists" json:"exists"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ContainsResponse) Reset() { *m = ContainsResponse{} } +func (m *ContainsResponse) String() string { return proto1.CompactTextString(m) } +func (*ContainsResponse) ProtoMessage() {} + +func (m *ContainsResponse) GetExists() bool { + if m != nil { + return m.Exists + } + return false +} + +// A GetRequest is arguments to the Get() method. +type GetRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GetRequest) Reset() { *m = GetRequest{} } +func (m *GetRequest) String() string { return proto1.CompactTextString(m) } +func (*GetRequest) ProtoMessage() {} + +// A GetResponse is the return value from the Get() method. +// If the key doesn't exist, returns nil for Value.Bytes. +type GetResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Value *Value `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GetResponse) Reset() { *m = GetResponse{} } +func (m *GetResponse) String() string { return proto1.CompactTextString(m) } +func (*GetResponse) ProtoMessage() {} + +func (m *GetResponse) GetValue() *Value { + if m != nil { + return m.Value + } + return nil +} + +// A PutRequest is arguments to the Put() method. Note that to write +// an empty value, the value parameter is still specified, but both +// Bytes and Integer are set to nil. +type PutRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Value Value `protobuf:"bytes,2,opt,name=value" json:"value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *PutRequest) Reset() { *m = PutRequest{} } +func (m *PutRequest) String() string { return proto1.CompactTextString(m) } +func (*PutRequest) ProtoMessage() {} + +func (m *PutRequest) GetValue() Value { + if m != nil { + return m.Value + } + return Value{} +} + +// A PutResponse is the return value from the Put() method. +type PutResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *PutResponse) Reset() { *m = PutResponse{} } +func (m *PutResponse) String() string { return proto1.CompactTextString(m) } +func (*PutResponse) ProtoMessage() {} + +// A ConditionalPutRequest is arguments to the ConditionalPut() method. +// +// - Returns true and sets value if ExpValue equals existing value. +// - If key doesn't exist and ExpValue is nil, sets value. +// - If key exists, but value is empty and ExpValue is not nil but empty, sets value. +// - Otherwise, returns error and the actual value of the key in the response. +type ConditionalPutRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // The value to put. + Value Value `protobuf:"bytes,2,opt,name=value" json:"value"` + // ExpValue.Bytes empty to test for non-existence. Specify as nil + // to indicate there should be no existing entry. This is different + // from the expectation that the value exists but is empty. + ExpValue *Value `protobuf:"bytes,3,opt,name=exp_value" json:"exp_value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ConditionalPutRequest) Reset() { *m = ConditionalPutRequest{} } +func (m *ConditionalPutRequest) String() string { return proto1.CompactTextString(m) } +func (*ConditionalPutRequest) ProtoMessage() {} + +func (m *ConditionalPutRequest) GetValue() Value { + if m != nil { + return m.Value + } + return Value{} +} + +func (m *ConditionalPutRequest) GetExpValue() *Value { + if m != nil { + return m.ExpValue + } + return nil +} + +// A ConditionalPutResponse is the return value from the +// ConditionalPut() method. +type ConditionalPutResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ConditionalPutResponse) Reset() { *m = ConditionalPutResponse{} } +func (m *ConditionalPutResponse) String() string { return proto1.CompactTextString(m) } +func (*ConditionalPutResponse) ProtoMessage() {} + +// An IncrementRequest is arguments to the Increment() method. It +// increments the value for key, and returns the new value. If no +// value exists for a key, incrementing by 0 is not a noop, but will +// create a zero value. IncrementRequest cannot be called on a key set +// by Put() or ConditionalPut(). Similarly, Get(), Put() and +// ConditionalPut() cannot be invoked on an incremented key. +type IncrementRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Increment int64 `protobuf:"varint,2,opt,name=increment" json:"increment"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *IncrementRequest) Reset() { *m = IncrementRequest{} } +func (m *IncrementRequest) String() string { return proto1.CompactTextString(m) } +func (*IncrementRequest) ProtoMessage() {} + +func (m *IncrementRequest) GetIncrement() int64 { + if m != nil { + return m.Increment + } + return 0 +} + +// An IncrementResponse is the return value from the Increment +// method. The new value after increment is specified in NewValue. If +// the value could not be decoded as specified, Error will be set. +type IncrementResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + NewValue int64 `protobuf:"varint,2,opt,name=new_value" json:"new_value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *IncrementResponse) Reset() { *m = IncrementResponse{} } +func (m *IncrementResponse) String() string { return proto1.CompactTextString(m) } +func (*IncrementResponse) ProtoMessage() {} + +func (m *IncrementResponse) GetNewValue() int64 { + if m != nil { + return m.NewValue + } + return 0 +} + +// A DeleteRequest is arguments to the Delete() method. +type DeleteRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } +func (m *DeleteRequest) String() string { return proto1.CompactTextString(m) } +func (*DeleteRequest) ProtoMessage() {} + +// A DeleteResponse is the return value from the Delete() method. +type DeleteResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } +func (m *DeleteResponse) String() string { return proto1.CompactTextString(m) } +func (*DeleteResponse) ProtoMessage() {} + +// A DeleteRangeRequest is arguments to the DeleteRange method. It +// specifies the range of keys to delete. +type DeleteRangeRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // If 0, *all* entries between Key (inclusive) and EndKey + // (exclusive) are deleted. Must be >= 0 + MaxEntriesToDelete int64 `protobuf:"varint,2,opt,name=max_entries_to_delete" json:"max_entries_to_delete"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteRangeRequest) Reset() { *m = DeleteRangeRequest{} } +func (m *DeleteRangeRequest) String() string { return proto1.CompactTextString(m) } +func (*DeleteRangeRequest) ProtoMessage() {} + +func (m *DeleteRangeRequest) GetMaxEntriesToDelete() int64 { + if m != nil { + return m.MaxEntriesToDelete + } + return 0 +} + +// A DeleteRangeResponse is the return value from the DeleteRange() +// method. +type DeleteRangeResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Number of entries removed. + NumDeleted int64 `protobuf:"varint,2,opt,name=num_deleted" json:"num_deleted"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteRangeResponse) Reset() { *m = DeleteRangeResponse{} } +func (m *DeleteRangeResponse) String() string { return proto1.CompactTextString(m) } +func (*DeleteRangeResponse) ProtoMessage() {} + +func (m *DeleteRangeResponse) GetNumDeleted() int64 { + if m != nil { + return m.NumDeleted + } + return 0 +} + +// A ScanRequest is arguments to the Scan() method. It specifies the +// start and end keys for the scan and the maximum number of results. +type ScanRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Must be > 0. + MaxResults int64 `protobuf:"varint,2,opt,name=max_results" json:"max_results"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ScanRequest) Reset() { *m = ScanRequest{} } +func (m *ScanRequest) String() string { return proto1.CompactTextString(m) } +func (*ScanRequest) ProtoMessage() {} + +func (m *ScanRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + +// A ScanResponse is the return value from the Scan() method. +type ScanResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Empty if no rows were scanned. + Rows []KeyValue `protobuf:"bytes,2,rep,name=rows" json:"rows"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ScanResponse) Reset() { *m = ScanResponse{} } +func (m *ScanResponse) String() string { return proto1.CompactTextString(m) } +func (*ScanResponse) ProtoMessage() {} + +func (m *ScanResponse) GetRows() []KeyValue { + if m != nil { + return m.Rows + } + return nil +} + +// An EndTransactionRequest is arguments to the EndTransaction() method. +// It specifies whether to commit or roll back an extant transaction. +type EndTransactionRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // False to abort and rollback. + Commit bool `protobuf:"varint,2,opt,name=commit" json:"commit"` + // Optional commit triggers. Note that commit triggers are for + // internal use only and will be ignored if requested through the + // public-facing KV API. + SplitTrigger *SplitTrigger `protobuf:"bytes,3,opt,name=split_trigger" json:"split_trigger,omitempty"` + MergeTrigger *MergeTrigger `protobuf:"bytes,4,opt,name=merge_trigger" json:"merge_trigger,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EndTransactionRequest) Reset() { *m = EndTransactionRequest{} } +func (m *EndTransactionRequest) String() string { return proto1.CompactTextString(m) } +func (*EndTransactionRequest) ProtoMessage() {} + +func (m *EndTransactionRequest) GetCommit() bool { + if m != nil { + return m.Commit + } + return false +} + +func (m *EndTransactionRequest) GetSplitTrigger() *SplitTrigger { + if m != nil { + return m.SplitTrigger + } + return nil +} + +func (m *EndTransactionRequest) GetMergeTrigger() *MergeTrigger { + if m != nil { + return m.MergeTrigger + } + return nil +} + +// An EndTransactionResponse is the return value from the +// EndTransaction() method. The final transaction record is returned +// as part of the response header. In particular, transaction status +// and timestamp will be updated to reflect final committed +// values. Clients may propagate the transaction timestamp as the +// final txn commit timestamp in order to preserve causal ordering +// between subsequent transactions. CommitWait specifies the commit +// wait, which is the remaining time the client MUST wait before +// signalling completion of the transaction to another distributed +// node to maintain consistency. +type EndTransactionResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Remaining time (ns). + CommitWait int64 `protobuf:"varint,2,opt,name=commit_wait" json:"commit_wait"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EndTransactionResponse) Reset() { *m = EndTransactionResponse{} } +func (m *EndTransactionResponse) String() string { return proto1.CompactTextString(m) } +func (*EndTransactionResponse) ProtoMessage() {} + +func (m *EndTransactionResponse) GetCommitWait() int64 { + if m != nil { + return m.CommitWait + } + return 0 +} + +// A ReapQueueRequest is arguments to the ReapQueue() method. It +// specifies the recipient inbox key to which messages are waiting +// to be reapted and also the maximum number of results to return. +type ReapQueueRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Maximum results to return; must be > 0. + MaxResults int64 `protobuf:"varint,2,opt,name=max_results" json:"max_results"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ReapQueueRequest) Reset() { *m = ReapQueueRequest{} } +func (m *ReapQueueRequest) String() string { return proto1.CompactTextString(m) } +func (*ReapQueueRequest) ProtoMessage() {} + +func (m *ReapQueueRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + +// A ReapQueueResponse is the return value from the ReapQueue() method. +type ReapQueueResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Messages []Value `protobuf:"bytes,2,rep,name=messages" json:"messages"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ReapQueueResponse) Reset() { *m = ReapQueueResponse{} } +func (m *ReapQueueResponse) String() string { return proto1.CompactTextString(m) } +func (*ReapQueueResponse) ProtoMessage() {} + +func (m *ReapQueueResponse) GetMessages() []Value { + if m != nil { + return m.Messages + } + return nil +} + +// An EnqueueUpdateRequest is arguments to the EnqueueUpdate() method. +// It specifies the update to enqueue for asynchronous execution. +// Update is an instance of one of the following messages: PutRequest, +// IncrementRequest, DeleteRequest, DeleteRangeRequest, or +// AccountingRequest. +type EnqueueUpdateRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueUpdateRequest) Reset() { *m = EnqueueUpdateRequest{} } +func (m *EnqueueUpdateRequest) String() string { return proto1.CompactTextString(m) } +func (*EnqueueUpdateRequest) ProtoMessage() {} + +// An EnqueueUpdateResponse is the return value from the +// EnqueueUpdate() method. +type EnqueueUpdateResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueUpdateResponse) Reset() { *m = EnqueueUpdateResponse{} } +func (m *EnqueueUpdateResponse) String() string { return proto1.CompactTextString(m) } +func (*EnqueueUpdateResponse) ProtoMessage() {} + +// An EnqueueMessageRequest is arguments to the EnqueueMessage() method. +// It specifies the recipient inbox key and the message (an arbitrary +// byte slice value). +type EnqueueMessageRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Message value to delivery to inbox. + Msg Value `protobuf:"bytes,2,opt,name=msg" json:"msg"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueMessageRequest) Reset() { *m = EnqueueMessageRequest{} } +func (m *EnqueueMessageRequest) String() string { return proto1.CompactTextString(m) } +func (*EnqueueMessageRequest) ProtoMessage() {} + +func (m *EnqueueMessageRequest) GetMsg() Value { + if m != nil { + return m.Msg + } + return Value{} +} + +// An EnqueueMessageResponse is the return value from the +// EnqueueMessage() method. +type EnqueueMessageResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueMessageResponse) Reset() { *m = EnqueueMessageResponse{} } +func (m *EnqueueMessageResponse) String() string { return proto1.CompactTextString(m) } +func (*EnqueueMessageResponse) ProtoMessage() {} + +// A RequestUnion contains exactly one of the optional requests. +type RequestUnion struct { + Contains *ContainsRequest `protobuf:"bytes,1,opt,name=contains" json:"contains,omitempty"` + Get *GetRequest `protobuf:"bytes,2,opt,name=get" json:"get,omitempty"` + Put *PutRequest `protobuf:"bytes,3,opt,name=put" json:"put,omitempty"` + ConditionalPut *ConditionalPutRequest `protobuf:"bytes,4,opt,name=conditional_put" json:"conditional_put,omitempty"` + Increment *IncrementRequest `protobuf:"bytes,5,opt,name=increment" json:"increment,omitempty"` + Delete *DeleteRequest `protobuf:"bytes,6,opt,name=delete" json:"delete,omitempty"` + DeleteRange *DeleteRangeRequest `protobuf:"bytes,7,opt,name=delete_range" json:"delete_range,omitempty"` + Scan *ScanRequest `protobuf:"bytes,8,opt,name=scan" json:"scan,omitempty"` + EndTransaction *EndTransactionRequest `protobuf:"bytes,9,opt,name=end_transaction" json:"end_transaction,omitempty"` + ReapQueue *ReapQueueRequest `protobuf:"bytes,10,opt,name=reap_queue" json:"reap_queue,omitempty"` + EnqueueUpdate *EnqueueUpdateRequest `protobuf:"bytes,11,opt,name=enqueue_update" json:"enqueue_update,omitempty"` + EnqueueMessage *EnqueueMessageRequest `protobuf:"bytes,12,opt,name=enqueue_message" json:"enqueue_message,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RequestUnion) Reset() { *m = RequestUnion{} } +func (m *RequestUnion) String() string { return proto1.CompactTextString(m) } +func (*RequestUnion) ProtoMessage() {} + +func (m *RequestUnion) GetContains() *ContainsRequest { + if m != nil { + return m.Contains + } + return nil +} + +func (m *RequestUnion) GetGet() *GetRequest { + if m != nil { + return m.Get + } + return nil +} + +func (m *RequestUnion) GetPut() *PutRequest { + if m != nil { + return m.Put + } + return nil +} + +func (m *RequestUnion) GetConditionalPut() *ConditionalPutRequest { + if m != nil { + return m.ConditionalPut + } + return nil +} + +func (m *RequestUnion) GetIncrement() *IncrementRequest { + if m != nil { + return m.Increment + } + return nil +} + +func (m *RequestUnion) GetDelete() *DeleteRequest { + if m != nil { + return m.Delete + } + return nil +} + +func (m *RequestUnion) GetDeleteRange() *DeleteRangeRequest { + if m != nil { + return m.DeleteRange + } + return nil +} + +func (m *RequestUnion) GetScan() *ScanRequest { + if m != nil { + return m.Scan + } + return nil +} + +func (m *RequestUnion) GetEndTransaction() *EndTransactionRequest { + if m != nil { + return m.EndTransaction + } + return nil +} + +func (m *RequestUnion) GetReapQueue() *ReapQueueRequest { + if m != nil { + return m.ReapQueue + } + return nil +} + +func (m *RequestUnion) GetEnqueueUpdate() *EnqueueUpdateRequest { + if m != nil { + return m.EnqueueUpdate + } + return nil +} + +func (m *RequestUnion) GetEnqueueMessage() *EnqueueMessageRequest { + if m != nil { + return m.EnqueueMessage + } + return nil +} + +// A ResponseUnion contains exactly one of the optional responses. +type ResponseUnion struct { + Contains *ContainsResponse `protobuf:"bytes,1,opt,name=contains" json:"contains,omitempty"` + Get *GetResponse `protobuf:"bytes,2,opt,name=get" json:"get,omitempty"` + Put *PutResponse `protobuf:"bytes,3,opt,name=put" json:"put,omitempty"` + ConditionalPut *ConditionalPutResponse `protobuf:"bytes,4,opt,name=conditional_put" json:"conditional_put,omitempty"` + Increment *IncrementResponse `protobuf:"bytes,5,opt,name=increment" json:"increment,omitempty"` + Delete *DeleteResponse `protobuf:"bytes,6,opt,name=delete" json:"delete,omitempty"` + DeleteRange *DeleteRangeResponse `protobuf:"bytes,7,opt,name=delete_range" json:"delete_range,omitempty"` + Scan *ScanResponse `protobuf:"bytes,8,opt,name=scan" json:"scan,omitempty"` + EndTransaction *EndTransactionResponse `protobuf:"bytes,9,opt,name=end_transaction" json:"end_transaction,omitempty"` + ReapQueue *ReapQueueResponse `protobuf:"bytes,10,opt,name=reap_queue" json:"reap_queue,omitempty"` + EnqueueUpdate *EnqueueUpdateResponse `protobuf:"bytes,11,opt,name=enqueue_update" json:"enqueue_update,omitempty"` + EnqueueMessage *EnqueueMessageResponse `protobuf:"bytes,12,opt,name=enqueue_message" json:"enqueue_message,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ResponseUnion) Reset() { *m = ResponseUnion{} } +func (m *ResponseUnion) String() string { return proto1.CompactTextString(m) } +func (*ResponseUnion) ProtoMessage() {} + +func (m *ResponseUnion) GetContains() *ContainsResponse { + if m != nil { + return m.Contains + } + return nil +} + +func (m *ResponseUnion) GetGet() *GetResponse { + if m != nil { + return m.Get + } + return nil +} + +func (m *ResponseUnion) GetPut() *PutResponse { + if m != nil { + return m.Put + } + return nil +} + +func (m *ResponseUnion) GetConditionalPut() *ConditionalPutResponse { + if m != nil { + return m.ConditionalPut + } + return nil +} + +func (m *ResponseUnion) GetIncrement() *IncrementResponse { + if m != nil { + return m.Increment + } + return nil +} + +func (m *ResponseUnion) GetDelete() *DeleteResponse { + if m != nil { + return m.Delete + } + return nil +} + +func (m *ResponseUnion) GetDeleteRange() *DeleteRangeResponse { + if m != nil { + return m.DeleteRange + } + return nil +} + +func (m *ResponseUnion) GetScan() *ScanResponse { + if m != nil { + return m.Scan + } + return nil +} + +func (m *ResponseUnion) GetEndTransaction() *EndTransactionResponse { + if m != nil { + return m.EndTransaction + } + return nil +} + +func (m *ResponseUnion) GetReapQueue() *ReapQueueResponse { + if m != nil { + return m.ReapQueue + } + return nil +} + +func (m *ResponseUnion) GetEnqueueUpdate() *EnqueueUpdateResponse { + if m != nil { + return m.EnqueueUpdate + } + return nil +} + +func (m *ResponseUnion) GetEnqueueMessage() *EnqueueMessageResponse { + if m != nil { + return m.EnqueueMessage + } + return nil +} + +// A BatchRequest contains one or more requests to be executed in +// parallel, or if applicable (based on write-only commands and +// range-locality), as a single update. +type BatchRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Requests []RequestUnion `protobuf:"bytes,2,rep,name=requests" json:"requests"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *BatchRequest) Reset() { *m = BatchRequest{} } +func (m *BatchRequest) String() string { return proto1.CompactTextString(m) } +func (*BatchRequest) ProtoMessage() {} + +func (m *BatchRequest) GetRequests() []RequestUnion { + if m != nil { + return m.Requests + } + return nil +} + +// A BatchResponse contains one or more responses, one per request +// corresponding to the requests in the matching BatchRequest. The +// error in the response header is set to the first error from the +// slice of responses, if applicable. +type BatchResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Responses []ResponseUnion `protobuf:"bytes,2,rep,name=responses" json:"responses"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *BatchResponse) Reset() { *m = BatchResponse{} } +func (m *BatchResponse) String() string { return proto1.CompactTextString(m) } +func (*BatchResponse) ProtoMessage() {} + +func (m *BatchResponse) GetResponses() []ResponseUnion { + if m != nil { + return m.Responses + } + return nil +} + +// An AdminSplitRequest is arguments to the AdminSplit() method. The +// existing range which contains RequestHeader.Key is split by +// split_key. If split_key is not specified, then this method will +// determine a split key that is roughly halfway through the +// range. The existing range is resized to cover only its start key to +// the split key. The new range created by the split starts at the +// split key and extends to the original range's end key. If split_key +// is known, header.key should also be set to split_key. +// +// New range IDs for each of the split range's replica and a new Raft +// ID are generated by the operation. Split requests are done in the +// context of a distributed transaction which updates range addressing +// records, range metadata and finally, provides a commit trigger to +// update bookkeeping and instantiate the new range on commit. +// +// The new range contains range replicas located on the same stores; +// no range data is moved during this operation. The split can be +// thought of as a mostly logical operation, though some other +// metadata (e.g. response cache and range stats must be copied or +// recomputed). +type AdminSplitRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + SplitKey Key `protobuf:"bytes,2,opt,name=split_key,customtype=Key" json:"split_key"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminSplitRequest) Reset() { *m = AdminSplitRequest{} } +func (m *AdminSplitRequest) String() string { return proto1.CompactTextString(m) } +func (*AdminSplitRequest) ProtoMessage() {} + +// An AdminSplitResponse is the return value from the AdminSplit() +// method. +type AdminSplitResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminSplitResponse) Reset() { *m = AdminSplitResponse{} } +func (m *AdminSplitResponse) String() string { return proto1.CompactTextString(m) } +func (*AdminSplitResponse) ProtoMessage() {} + +// An AdminMergeRequest is arguments to the AdminMerge() method. A +// merge is always performed by calling AdminMerge on the range +// that is subsuming the passed in subsumed_range. The ranges must +// be consecutive in the key space, such that the end_key of the +// subsuming range must match the start_key of the range being subsumed. +// After the merge operation, the subsumed_range will no longer exist and +// the subsuming range will now encompass all keys from its original +// start_key to the end_key of the subsumed_range. +type AdminMergeRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + SubsumedRange RangeDescriptor `protobuf:"bytes,2,opt,name=subsumed_range" json:"subsumed_range"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminMergeRequest) Reset() { *m = AdminMergeRequest{} } +func (m *AdminMergeRequest) String() string { return proto1.CompactTextString(m) } +func (*AdminMergeRequest) ProtoMessage() {} + +func (m *AdminMergeRequest) GetSubsumedRange() RangeDescriptor { + if m != nil { + return m.SubsumedRange + } + return RangeDescriptor{} +} + +// An AdminMergeResponse is the return value from the AdminMerge() +// method. +type AdminMergeResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminMergeResponse) Reset() { *m = AdminMergeResponse{} } +func (m *AdminMergeResponse) String() string { return proto1.CompactTextString(m) } +func (*AdminMergeResponse) ProtoMessage() {} + +func init() { +} +func (this *RequestUnion) GetValue() interface{} { + if this.Contains != nil { + return this.Contains + } + if this.Get != nil { + return this.Get + } + if this.Put != nil { + return this.Put + } + if this.ConditionalPut != nil { + return this.ConditionalPut + } + if this.Increment != nil { + return this.Increment + } + if this.Delete != nil { + return this.Delete + } + if this.DeleteRange != nil { + return this.DeleteRange + } + if this.Scan != nil { + return this.Scan + } + if this.EndTransaction != nil { + return this.EndTransaction + } + if this.ReapQueue != nil { + return this.ReapQueue + } + if this.EnqueueUpdate != nil { + return this.EnqueueUpdate + } + if this.EnqueueMessage != nil { + return this.EnqueueMessage + } + return nil +} + +func (this *RequestUnion) SetValue(value interface{}) bool { + switch vt := value.(type) { + case *ContainsRequest: + this.Contains = vt + case *GetRequest: + this.Get = vt + case *PutRequest: + this.Put = vt + case *ConditionalPutRequest: + this.ConditionalPut = vt + case *IncrementRequest: + this.Increment = vt + case *DeleteRequest: + this.Delete = vt + case *DeleteRangeRequest: + this.DeleteRange = vt + case *ScanRequest: + this.Scan = vt + case *EndTransactionRequest: + this.EndTransaction = vt + case *ReapQueueRequest: + this.ReapQueue = vt + case *EnqueueUpdateRequest: + this.EnqueueUpdate = vt + case *EnqueueMessageRequest: + this.EnqueueMessage = vt + default: + return false + } + return true +} +func (this *ResponseUnion) GetValue() interface{} { + if this.Contains != nil { + return this.Contains + } + if this.Get != nil { + return this.Get + } + if this.Put != nil { + return this.Put + } + if this.ConditionalPut != nil { + return this.ConditionalPut + } + if this.Increment != nil { + return this.Increment + } + if this.Delete != nil { + return this.Delete + } + if this.DeleteRange != nil { + return this.DeleteRange + } + if this.Scan != nil { + return this.Scan + } + if this.EndTransaction != nil { + return this.EndTransaction + } + if this.ReapQueue != nil { + return this.ReapQueue + } + if this.EnqueueUpdate != nil { + return this.EnqueueUpdate + } + if this.EnqueueMessage != nil { + return this.EnqueueMessage + } + return nil +} + +func (this *ResponseUnion) SetValue(value interface{}) bool { + switch vt := value.(type) { + case *ContainsResponse: + this.Contains = vt + case *GetResponse: + this.Get = vt + case *PutResponse: + this.Put = vt + case *ConditionalPutResponse: + this.ConditionalPut = vt + case *IncrementResponse: + this.Increment = vt + case *DeleteResponse: + this.Delete = vt + case *DeleteRangeResponse: + this.DeleteRange = vt + case *ScanResponse: + this.Scan = vt + case *EndTransactionResponse: + this.EndTransaction = vt + case *ReapQueueResponse: + this.ReapQueue = vt + case *EnqueueUpdateResponse: + this.EnqueueUpdate = vt + case *EnqueueMessageResponse: + this.EnqueueMessage = vt + default: + return false + } + return true +} diff --git a/test/test_blob.rb b/test/test_blob.rb index 022eb20b..7c8fddc1 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -216,6 +216,7 @@ class TestBlob < Minitest::Test assert sample_blob("C++/protocol-buffer.pb.cc").generated? assert sample_blob("Java/ProtocolBuffer.java").generated? assert sample_blob("Python/protocol_buffer_pb2.py").generated? + assert sample_blob("Go/api.pb.go").generated? # Generated JNI assert sample_blob("C/jni_layer.h").generated? From 8420e4b04467a3e85139bbcb07721c593ea4a3f8 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Sun, 22 Feb 2015 10:23:48 -0800 Subject: [PATCH 243/875] Test that languages have a type --- test/test_language.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/test_language.rb b/test/test_language.rb index 1a39744e..e12b16b8 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -358,6 +358,15 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_all_languages_have_type + missing = Language.all.select { |language| language.type.nil? } + message = "The following languages' types are not listed in grammars.yml. Please add types for all new languages.\n" + + width = missing.map { |language| language.name.length }.max + message << missing.map { |language| sprintf("%-#{width}s %s", language.name, language.tm_scope) }.sort.join("\n") + assert missing.empty?, message + end + def test_all_languages_have_a_valid_ace_mode ace_fixture_path = File.join('test', 'fixtures', 'ace_modes.json') skip("No ace_modes.json file") unless File.exist?(ace_fixture_path) From 507d191d7d2b8d3ae65d2e135d715e627db1537f Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Sun, 22 Feb 2015 10:27:24 -0800 Subject: [PATCH 244/875] Add missing types --- lib/linguist/languages.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0ac757f6..0c09026a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -271,6 +271,7 @@ Batchfile: ace_mode: batchfile Befunge: + type: programming extensions: - .befunge ace_mode: text @@ -326,6 +327,7 @@ Boo: ace_mode: text Brainfuck: + type: programming extensions: - .b - .bf @@ -419,6 +421,7 @@ CLIPS: ace_mode: text CMake: + type: programming extensions: - .cmake - .cmake.in @@ -478,6 +481,7 @@ Chapel: ace_mode: text ChucK: + type: programming extensions: - .ck tm_scope: source.java @@ -639,6 +643,7 @@ Crystal: - crystal Cucumber: + type: programming extensions: - .feature tm_scope: text.gherkin.feature @@ -698,6 +703,7 @@ DM: ace_mode: c_cpp Darcs Patch: + type: programming search_term: dpatch aliases: - dpatch @@ -715,6 +721,7 @@ Dart: ace_mode: dart Diff: + type: programming extensions: - .diff - .patch @@ -1012,6 +1019,7 @@ Game Maker Language: ace_mode: c_cpp Genshi: + type: programming extensions: - .kid tm_scope: text.xml.genshi @@ -1021,6 +1029,7 @@ Genshi: ace_mode: xml Gentoo Ebuild: + type: programming group: Shell extensions: - .ebuild @@ -1028,6 +1037,7 @@ Gentoo Ebuild: ace_mode: sh Gentoo Eclass: + type: programming group: Shell extensions: - .eclass @@ -1035,6 +1045,7 @@ Gentoo Eclass: ace_mode: sh Gettext Catalog: + type: programming search_term: pot searchable: false aliases: @@ -1135,6 +1146,7 @@ Graphviz (DOT): ace_mode: text Groff: + type: programming extensions: - .man - '.1' @@ -1162,6 +1174,7 @@ Groovy: - groovy Groovy Server Pages: + type: programming group: Groovy aliases: - gsp @@ -1318,6 +1331,7 @@ INI: ace_mode: ini IRC log: + type: data search_term: irc aliases: - irc @@ -1348,6 +1362,7 @@ Inform 7: ace_mode: text Inno Setup: + type: programming extensions: - .iss tm_scope: source.inno @@ -1442,6 +1457,7 @@ Java: - .java Java Server Pages: + type: programming group: Java search_term: jsp aliases: @@ -1537,6 +1553,7 @@ LFE: ace_mode: lisp LLVM: + type: programming extensions: - .ll ace_mode: text @@ -1597,6 +1614,7 @@ Less: ace_mode: less LilyPond: + type: programming extensions: - .ly - .ily @@ -1735,6 +1753,7 @@ Makefile: ace_mode: makefile Mako: + type: programming extensions: - .mako - .mao @@ -1827,6 +1846,7 @@ Mercury: ace_mode: prolog MiniD: # Legacy + type: programming searchable: false extensions: - .minid # Dummy extension @@ -1874,12 +1894,14 @@ MoonScript: ace_mode: text Myghty: + type: programming extensions: - .myt tm_scope: none ace_mode: text NSIS: + type: programming extensions: - .nsi - .nsh @@ -1971,6 +1993,7 @@ Nu: - nush NumPy: + type: programming group: Python extensions: - .numpy @@ -2430,6 +2453,7 @@ QML: ace_mode: text QMake: + type: programming extensions: - .pro - .pri @@ -2526,6 +2550,7 @@ Ragel in Ruby Host: ace_mode: text Raw token data: + type: data search_term: raw aliases: - raw @@ -2557,6 +2582,7 @@ Red: ace_mode: text Redcode: + type: programming extensions: - .cw tm_scope: none @@ -2843,6 +2869,7 @@ Smalltalk: ace_mode: text Smarty: + type: programming extensions: - .tpl ace_mode: smarty @@ -3266,6 +3293,7 @@ XQuery: ace_mode: xquery XS: + type: programming extensions: - .xs tm_scope: source.c @@ -3362,6 +3390,7 @@ fish: ace_mode: text mupad: + type: programming extensions: - .mu ace_mode: text From fecf0cc137c1e180d4318749cf1c267f84179792 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Sun, 22 Feb 2015 10:32:01 -0800 Subject: [PATCH 245/875] There is no "other" --- test/test_language.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/test_language.rb b/test/test_language.rb index e12b16b8..d347bb69 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -155,10 +155,6 @@ class TestLanguage < Minitest::Test assert_equal :prose, Language['Org'].type end - def test_other - assert_nil Language['Brainfuck'].type - end - def test_searchable assert Language['Ruby'].searchable? assert !Language['Gettext Catalog'].searchable? From e592381a5476825157fb9629d245e76f70140a7e Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 22 Feb 2015 19:33:06 +0100 Subject: [PATCH 246/875] Support for .pro INI files (KiCad project files) Update the heuristic for .pro to include both INI and QMake files Fixes #2116 --- lib/linguist/heuristics.rb | 8 +++- lib/linguist/languages.yml | 1 + samples/INI/MouseKeyboard.pro | 71 +++++++++++++++++++++++++++++++++++ test/test_heuristics.rb | 10 +++-- 4 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 samples/INI/MouseKeyboard.pro diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b82a5de4..b2a61bfa 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -107,10 +107,14 @@ module Linguist end end - disambiguate "IDL", "Prolog" do |data| + disambiguate "IDL", "Prolog", "INI", "QMake" do |data| if data.include?(":-") Language["Prolog"] - else + elsif data.include?("last_client=") + Language["INI"] + elsif data.include?("HEADERS") && data.include?("SOURCES") + Language["QMake"] + elsif /^\s*function[ \w,]+$/.match(data) Language["IDL"] end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0ac757f6..26cbe2c3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1311,6 +1311,7 @@ INI: - .ini - .cfg - .prefs + - .pro - .properties tm_scope: source.ini aliases: diff --git a/samples/INI/MouseKeyboard.pro b/samples/INI/MouseKeyboard.pro new file mode 100644 index 00000000..0bc4ff8f --- /dev/null +++ b/samples/INI/MouseKeyboard.pro @@ -0,0 +1,71 @@ +update=Sun 15 Feb 2015 01:10:10 PM EST +last_client=eeschema +[pcbnew] +version=1 +PageLayoutDescrFile= +LastNetListRead= +UseCmpFile=1 +PadDrill=0.6 +PadDrillOvalY=0.6 +PadSizeH=1.5 +PadSizeV=1.5 +PcbTextSizeV=1.5 +PcbTextSizeH=1.5 +PcbTextThickness=0.3 +ModuleTextSizeV=1 +ModuleTextSizeH=1 +ModuleTextSizeThickness=0.15 +SolderMaskClearance=0 +SolderMaskMinWidth=0 +DrawSegmentWidth=0.2 +BoardOutlineThickness=0.09999999999999999 +ModuleOutlineThickness=0.15 +[pcbnew/libraries] +LibDir= +[general] +version=1 +[eeschema] +version=1 +PageLayoutDescrFile= +SubpartIdSeparator=0 +SubpartFirstId=65 +LibDir=/home/hschmale/KiCad/LibMods-3rdParty +NetFmtName= +RptD_X=0 +RptD_Y=100 +RptLab=1 +LabSize=60 +[eeschema/libraries] +LibName1=power +LibName2=device +LibName3=transistors +LibName4=conn +LibName5=linear +LibName6=regul +LibName7=74xx +LibName8=cmos4000 +LibName9=adc-dac +LibName10=memory +LibName11=xilinx +LibName12=special +LibName13=microcontrollers +LibName14=dsp +LibName15=microchip +LibName16=analog_switches +LibName17=motorola +LibName18=texas +LibName19=intel +LibName20=audio +LibName21=interface +LibName22=digital-audio +LibName23=philips +LibName24=display +LibName25=cypress +LibName26=siliconi +LibName27=opto +LibName28=atmel +LibName29=contrib +LibName30=valves +LibName31=arduino_shieldsNCL +LibName32=con-usb-2 +LibName33=2axispotwselect diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index cadb35f6..dcdf3328 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -60,11 +60,13 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["IDL", "Prolog"] - def test_pro_prolog_idl_by_heuristics + # Candidate languages = ["IDL", "Prolog", "QMake", "INI"] + def test_pro_by_heuristics assert_heuristics({ - "Prolog" => "Prolog/logic-problem.pro", - "IDL" => "IDL/mg_acosh.pro" + "Prolog" => all_fixtures("Prolog", "*.pro"), + "IDL" => all_fixtures("IDL", "*.pro"), + "INI" => all_fixtures("INI", "*.pro"), + "QMake" => all_fixtures("QMake", "*.pro") }) end From 05f73df064080a20630a33576766329c4f5999c3 Mon Sep 17 00:00:00 2001 From: CodingAnarchy Date: Fri, 20 Feb 2015 21:19:07 -0700 Subject: [PATCH 247/875] Brainfuck samples --- samples/Brainfuck/fib100.bf | 11 +++++++++++ samples/Brainfuck/hello.bf | 4 ++++ samples/Brainfuck/helloworld.bf | 3 +++ samples/Brainfuck/rot13.bf | 30 ++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 samples/Brainfuck/fib100.bf create mode 100644 samples/Brainfuck/hello.bf create mode 100644 samples/Brainfuck/helloworld.bf create mode 100644 samples/Brainfuck/rot13.bf diff --git a/samples/Brainfuck/fib100.bf b/samples/Brainfuck/fib100.bf new file mode 100644 index 00000000..fe3f3ce5 --- /dev/null +++ b/samples/Brainfuck/fib100.bf @@ -0,0 +1,11 @@ ++++++++++++ +>+>>>>++++++++++++++++++++++++++++++++++++++++++++ +>++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+> ++<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[- +<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<< +-]>>[-]]<<]>>>[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]] +>[<<+>>[-]]<<<<<<<]>>>>>[+++++++++++++++++++++++++ ++++++++++++++++++++++++.[-]]++++++++++<[->-<]>++++ +++++++++++++++++++++++++++++++++++++++++++++.[-]<< +<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<< +[-]]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+>-]>[<+>-]<<<-] \ No newline at end of file diff --git a/samples/Brainfuck/hello.bf b/samples/Brainfuck/hello.bf new file mode 100644 index 00000000..6a93a155 --- /dev/null +++ b/samples/Brainfuck/hello.bf @@ -0,0 +1,4 @@ +// More complex version of hello world + +>++++++++[<+++++++++>-]<.>>+>+>++>[-]+<[>[->+<<++++>]<<]>.+++++++..+++.> +>+++++++.<<<[[-]<[-]>]<+++++++++++++++.>>.+++.------.--------.>>+.>++++. \ No newline at end of file diff --git a/samples/Brainfuck/helloworld.bf b/samples/Brainfuck/helloworld.bf new file mode 100644 index 00000000..c7bde23a --- /dev/null +++ b/samples/Brainfuck/helloworld.bf @@ -0,0 +1,3 @@ +// Hello World + +++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. \ No newline at end of file diff --git a/samples/Brainfuck/rot13.bf b/samples/Brainfuck/rot13.bf new file mode 100644 index 00000000..3b9d8e7f --- /dev/null +++ b/samples/Brainfuck/rot13.bf @@ -0,0 +1,30 @@ +# ROT13 cipher + +-,+[ Read first character and start outer character reading loop + -[ Skip forward if character is 0 + >>++++[>++++++++<-] Set up divisor (32) for division loop + (MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) + <+<-[ Set up dividend (x minus 1) and enter division loop + >+>+>-[>>>] Increase copy and remainder / reduce divisor / Normal case: skip forward + <[[>+<-]>>+>] Special case: move remainder back to divisor and increase quotient + <<<<<- Decrement dividend + ] End division loop + ]>>>[-]+ End skip loop; zero former divisor and reuse space for a flag + >--[-[<->+++[-]]]<[ Zero that flag unless quotient was 2 or 3; zero quotient; check flag + ++++++++++++<[ If flag then set up divisor (13) for second division loop + (MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero) + >-[>+>>] Reduce divisor; Normal case: increase remainder + >[+[<+>-]>+>>] Special case: increase remainder / move it back to divisor / increase quotient + <<<<<- Decrease dividend + ] End division loop + >>[<+>-] Add remainder back to divisor to get a useful 13 + >[ Skip forward if quotient was 0 + -[ Decrement quotient and skip forward if quotient was 1 + -<<[-]>> Zero quotient and divisor if quotient was 2 + ]<<[<<->>-]>> Zero divisor and subtract 13 from copy if quotient was 1 + ]<<[<<+>>-] Zero divisor and add 13 to copy if quotient was 0 + ] End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) + <[-] Clear remainder from first division if second division was skipped + <.[-] Output ROT13ed character from copy and clear it + <-,+ Read next character +] End character reading loop \ No newline at end of file From 525e886d79674bf58e21d8cf37219d95434ffa9e Mon Sep 17 00:00:00 2001 From: CodingAnarchy Date: Fri, 20 Feb 2015 21:19:54 -0700 Subject: [PATCH 248/875] Comments added to one sample --- samples/Brainfuck/fib100.bf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/Brainfuck/fib100.bf b/samples/Brainfuck/fib100.bf index fe3f3ce5..3359588a 100644 --- a/samples/Brainfuck/fib100.bf +++ b/samples/Brainfuck/fib100.bf @@ -1,3 +1,5 @@ +# Calculate and output all fibonacci numbers under 100 + +++++++++++ >+>>>>++++++++++++++++++++++++++++++++++++++++++++ >++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+> From 6b26386a817cd758acf9d50373f49456266e799c Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Sun, 22 Feb 2015 20:21:02 -0800 Subject: [PATCH 249/875] Improve "no type found" error message --- test/test_language.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_language.rb b/test/test_language.rb index d347bb69..31be9a82 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -356,10 +356,10 @@ class TestLanguage < Minitest::Test def test_all_languages_have_type missing = Language.all.select { |language| language.type.nil? } - message = "The following languages' types are not listed in grammars.yml. Please add types for all new languages.\n" + message = "The following languages do not have a type listed in grammars.yml. Please add types for all new languages.\n" width = missing.map { |language| language.name.length }.max - message << missing.map { |language| sprintf("%-#{width}s %s", language.name, language.tm_scope) }.sort.join("\n") + message << missing.map { |language| sprintf("%-#{width}s", language.name) }.sort.join("\n") assert missing.empty?, message end From 2d15ea54cb61e98a6cc51e74690f5620b1ebe93b Mon Sep 17 00:00:00 2001 From: Soonho Kong Date: Sun, 22 Feb 2015 02:58:57 -0500 Subject: [PATCH 250/875] add support for Lean Theorem Prover --- .gitmodules | 3 ++ grammars.yml | 2 + lib/linguist/languages.yml | 7 ++++ samples/Lean/binary.lean | 75 +++++++++++++++++++++++++++++++++++ samples/Lean/set.hlean | 70 ++++++++++++++++++++++++++++++++ vendor/grammars/Lean.tmbundle | 1 + 6 files changed, 158 insertions(+) create mode 100644 samples/Lean/binary.lean create mode 100644 samples/Lean/set.hlean create mode 160000 vendor/grammars/Lean.tmbundle diff --git a/.gitmodules b/.gitmodules index 9fefaa4c..136013b2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -627,3 +627,6 @@ [submodule "vendor/grammars/sublime-text-pig-latin"] path = vendor/grammars/sublime-text-pig-latin url = https://github.com/goblindegook/sublime-text-pig-latin +[submodule "vendor/grammars/Lean.tmbundle"] + path = vendor/grammars/Lean.tmbundle + url = https://github.com/leanprover/Lean.tmbundle diff --git a/grammars.yml b/grammars.yml index 109f61cf..6d933a09 100644 --- a/grammars.yml +++ b/grammars.yml @@ -63,6 +63,8 @@ vendor/grammars/JSyntax/: - source.j vendor/grammars/Julia.tmbundle: - source.julia +vendor/grammars/Lean.tmbundle: +- source.lean vendor/grammars/LiveScript.tmbundle: - source.livescript vendor/grammars/Modelica/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0ac757f6..c269bf93 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1588,6 +1588,13 @@ Latte: tm_scope: source.smarty ace_mode: smarty +Lean: + type: programming + extensions: + - .lean + - .hlean + ace_mode: text + Less: type: markup group: CSS diff --git a/samples/Lean/binary.lean b/samples/Lean/binary.lean new file mode 100644 index 00000000..060a8cb0 --- /dev/null +++ b/samples/Lean/binary.lean @@ -0,0 +1,75 @@ +/- +Copyright (c) 2014 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. + +Module: algebra.binary +Authors: Leonardo de Moura, Jeremy Avigad + +General properties of binary operations. +-/ + +import logic.eq +open eq.ops + +namespace binary + section + variable {A : Type} + variables (op₁ : A → A → A) (inv : A → A) (one : A) + + local notation a * b := op₁ a b + local notation a ⁻¹ := inv a + local notation 1 := one + + definition commutative := ∀a b, a * b = b * a + definition associative := ∀a b c, (a * b) * c = a * (b * c) + definition left_identity := ∀a, 1 * a = a + definition right_identity := ∀a, a * 1 = a + definition left_inverse := ∀a, a⁻¹ * a = 1 + definition right_inverse := ∀a, a * a⁻¹ = 1 + definition left_cancelative := ∀a b c, a * b = a * c → b = c + definition right_cancelative := ∀a b c, a * b = c * b → a = c + + definition inv_op_cancel_left := ∀a b, a⁻¹ * (a * b) = b + definition op_inv_cancel_left := ∀a b, a * (a⁻¹ * b) = b + definition inv_op_cancel_right := ∀a b, a * b⁻¹ * b = a + definition op_inv_cancel_right := ∀a b, a * b * b⁻¹ = a + + variable (op₂ : A → A → A) + + local notation a + b := op₂ a b + + definition left_distributive := ∀a b c, a * (b + c) = a * b + a * c + definition right_distributive := ∀a b c, (a + b) * c = a * c + b * c + end + + context + variable {A : Type} + variable {f : A → A → A} + variable H_comm : commutative f + variable H_assoc : associative f + infixl `*` := f + theorem left_comm : ∀a b c, a*(b*c) = b*(a*c) := + take a b c, calc + a*(b*c) = (a*b)*c : H_assoc + ... = (b*a)*c : H_comm + ... = b*(a*c) : H_assoc + + theorem right_comm : ∀a b c, (a*b)*c = (a*c)*b := + take a b c, calc + (a*b)*c = a*(b*c) : H_assoc + ... = a*(c*b) : H_comm + ... = (a*c)*b : H_assoc + end + + context + variable {A : Type} + variable {f : A → A → A} + variable H_assoc : associative f + infixl `*` := f + theorem assoc4helper (a b c d) : (a*b)*(c*d) = a*((b*c)*d) := + calc + (a*b)*(c*d) = a*(b*(c*d)) : H_assoc + ... = a*((b*c)*d) : H_assoc + end + +end binary diff --git a/samples/Lean/set.hlean b/samples/Lean/set.hlean new file mode 100644 index 00000000..761cd67d --- /dev/null +++ b/samples/Lean/set.hlean @@ -0,0 +1,70 @@ +-- Copyright (c) 2015 Jakob von Raumer. All rights reserved. +-- Released under Apache 2.0 license as described in the file LICENSE. +-- Authors: Jakob von Raumer +-- Category of sets + +import .basic types.pi trunc + +open truncation sigma sigma.ops pi function eq morphism precategory +open equiv + +namespace precategory + + universe variable l + + definition set_precategory : precategory.{l+1 l} (Σ (A : Type.{l}), is_hset A) := + begin + fapply precategory.mk.{l+1 l}, + intros, apply (a.1 → a_1.1), + intros, apply trunc_pi, intros, apply b.2, + intros, intro x, exact (a_1 (a_2 x)), + intros, exact (λ (x : a.1), x), + intros, apply funext.path_pi, intro x, apply idp, + intros, apply funext.path_pi, intro x, apply idp, + intros, apply funext.path_pi, intro x, apply idp, + end + +end precategory + +namespace category + + universe variable l + local attribute precategory.set_precategory.{l+1 l} [instance] + + definition set_category_equiv_iso (a b : (Σ (A : Type.{l}), is_hset A)) + : (a ≅ b) = (a.1 ≃ b.1) := + /-begin + apply ua, fapply equiv.mk, + intro H, + apply (isomorphic.rec_on H), intros (H1, H2), + apply (is_iso.rec_on H2), intros (H3, H4, H5), + fapply equiv.mk, + apply (isomorphic.rec_on H), intros (H1, H2), + exact H1, + fapply is_equiv.adjointify, exact H3, + exact sorry, + exact sorry, + end-/ sorry + + definition set_category : category.{l+1 l} (Σ (A : Type.{l}), is_hset A) := + /-begin + assert (C : precategory.{l+1 l} (Σ (A : Type.{l}), is_hset A)), + apply precategory.set_precategory, + apply category.mk, + assert (p : (λ A B p, (set_category_equiv_iso A B) ▹ iso_of_path p) = (λ A B p, @equiv_path A.1 B.1 p)), + apply is_equiv.adjointify, + intros, + apply (isomorphic.rec_on a_1), intros (iso', is_iso'), + apply (is_iso.rec_on is_iso'), intros (f', f'sect, f'retr), + fapply sigma.path, + apply ua, fapply equiv.mk, exact iso', + fapply is_equiv.adjointify, + exact f', + intros, apply (f'retr ▹ _), + intros, apply (f'sect ▹ _), + apply (@is_hprop.elim), + apply is_trunc_is_hprop, + intros, + end -/ sorry + +end category diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle new file mode 160000 index 00000000..dc33b945 --- /dev/null +++ b/vendor/grammars/Lean.tmbundle @@ -0,0 +1 @@ +Subproject commit dc33b9450f71cb1cfb5b9b1ad53d5afd6f62fbef From 2cc6e5bfe6a178a91218428d76e49314cdf93c55 Mon Sep 17 00:00:00 2001 From: Alex Shroyer Date: Tue, 24 Feb 2015 10:58:33 -0500 Subject: [PATCH 251/875] Update languages.yml Add a color for J language. This color is the average of the colors of the [J wiki icon](http://www.jsoftware.com/jwiki/moin_static194/common/jwlogo.png). --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0ac757f6..e4843847 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1379,6 +1379,7 @@ Isabelle: J: type: programming + color: "#2d8abd" extensions: - .ijs tm_scope: source.j From c2e894c48c0f222e30b6a9e75520abfe153c65ec Mon Sep 17 00:00:00 2001 From: Soonho Kong Date: Tue, 24 Feb 2015 14:45:15 -0500 Subject: [PATCH 252/875] add ace-mode support for Lean --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c269bf93..28c9a5a4 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1593,7 +1593,7 @@ Lean: extensions: - .lean - .hlean - ace_mode: text + ace_mode: lean Less: type: markup From 29192e8d5f43cbf26b7938851561ae8227252e03 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 24 Feb 2015 14:10:41 -0600 Subject: [PATCH 253/875] Finding by alias too. --- lib/linguist/lazy_blob.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 5465a71f..6dc2e73a 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -49,7 +49,7 @@ module Linguist return @language if defined?(@language) @language = if lang = git_attributes['linguist-language'] - Language.find_by_name(lang) + Language.find_by_alias(lang) else super end From 94be1ab2774ca68c841c4747495d8df7c4bfe8cf Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 24 Feb 2015 15:20:58 -0600 Subject: [PATCH 254/875] documentation? should use path too --- lib/linguist/blob_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index a959d398..01a567e0 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -248,7 +248,7 @@ module Linguist # # Return true or false def documentation? - name =~ DocumentationRegexp ? true : false + path =~ DocumentationRegexp ? true : false end # Public: Get each line of data From fd7633518f1aff15eee5338fd6715fa2717341fe Mon Sep 17 00:00:00 2001 From: Charlie Somerville Date: Wed, 25 Feb 2015 12:34:07 +1100 Subject: [PATCH 255/875] add instrumentation to detection and classification --- lib/linguist.rb | 12 ++++++++++++ lib/linguist/classifier.rb | 8 +++++--- lib/linguist/language.rb | 28 +++++++++++++++------------- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/lib/linguist.rb b/lib/linguist.rb index ff9fc3a2..4419ff5b 100644 --- a/lib/linguist.rb +++ b/lib/linguist.rb @@ -6,3 +6,15 @@ require 'linguist/repository' require 'linguist/samples' require 'linguist/shebang' require 'linguist/version' + +class << Linguist + attr_accessor :instrumenter + + def instrument(*args, &bk) + if instrumenter + instrumenter.instrument(*args, &bk) + else + yield + end + end +end diff --git a/lib/linguist/classifier.rb b/lib/linguist/classifier.rb index 89a0df2f..208467e4 100644 --- a/lib/linguist/classifier.rb +++ b/lib/linguist/classifier.rb @@ -16,9 +16,11 @@ module Linguist # # Returns an Array of Language objects, most probable first. def self.call(blob, possible_languages) - language_names = possible_languages.map(&:name) - classify(Samples.cache, blob.data, language_names).map do |name, _| - Language[name] # Return the actual Language objects + Linguist.instrument("linguist.bayesian_classification") do + language_names = possible_languages.map(&:name) + classify(Samples.cache, blob.data, language_names).map do |name, _| + Language[name] # Return the actual Language objects + end end end diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 2490a9f6..68b4c4fc 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -105,19 +105,21 @@ module Linguist # Bail early if the blob is binary or empty. return nil if blob.likely_binary? || blob.binary? || blob.empty? - # Call each strategy until one candidate is returned. - STRATEGIES.reduce([]) do |languages, strategy| - candidates = strategy.call(blob, languages) - if candidates.size == 1 - return candidates.first - elsif candidates.size > 1 - # More than one candidate was found, pass them to the next strategy. - candidates - else - # No candiates were found, pass on languages from the previous strategy. - languages - end - end.first + Linguist.instrument("linguist.detection") do + # Call each strategy until one candidate is returned. + STRATEGIES.reduce([]) do |languages, strategy| + candidates = strategy.call(blob, languages) + if candidates.size == 1 + return candidates.first + elsif candidates.size > 1 + # More than one candidate was found, pass them to the next strategy. + candidates + else + # No candiates were found, pass on languages from the previous strategy. + languages + end + end.first + end end # Public: Get all Languages From 71e0e2bc8e4c3f026823ac6699a34778ae1f0f23 Mon Sep 17 00:00:00 2001 From: Brandon Wamboldt Date: Tue, 24 Feb 2015 16:49:59 -0800 Subject: [PATCH 256/875] Use actual VCL syntax highlighting --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 4 ++-- vendor/grammars/sublime-varnish | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) create mode 160000 vendor/grammars/sublime-varnish diff --git a/.gitmodules b/.gitmodules index 136013b2..25cb0da8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -630,3 +630,6 @@ [submodule "vendor/grammars/Lean.tmbundle"] path = vendor/grammars/Lean.tmbundle url = https://github.com/leanprover/Lean.tmbundle +[submodule "vendor/grammars/sublime-varnish"] + path = vendor/grammars/sublime-varnish + url = https://github.com/brandonwamboldt/sublime-varnish diff --git a/grammars.yml b/grammars.yml index 6d933a09..72ae874c 100644 --- a/grammars.yml +++ b/grammars.yml @@ -490,6 +490,8 @@ vendor/grammars/sublime-text-ox/: - source.ox vendor/grammars/sublime-text-pig-latin/: - source.pig_latin +vendor/grammars/sublime-varnish: +- source.varnish.vcl vendor/grammars/sublime_cobol: - source.acucobol - source.cobol diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 413683e5..124ea9f6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3102,11 +3102,11 @@ UnrealScript: VCL: type: programming - ace_mode: perl color: "#0298c3" extensions: - .vcl - tm_scope: source.perl + tm_scope: source.varnish.vcl + ace_mode: text VHDL: type: programming diff --git a/vendor/grammars/sublime-varnish b/vendor/grammars/sublime-varnish new file mode 160000 index 00000000..9f0710bc --- /dev/null +++ b/vendor/grammars/sublime-varnish @@ -0,0 +1 @@ +Subproject commit 9f0710bc4ea5f2915a2ff9c34977a57904a4a0c6 From 649a5987e73fe0e87f03df1fd1eb20156a10cf27 Mon Sep 17 00:00:00 2001 From: Andrew Berry Date: Wed, 25 Feb 2015 08:49:07 -0500 Subject: [PATCH 257/875] Issue #2140: Note that only modelines control syntax highlighting. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a2447a9..8e3781ad 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linguist supports a number of different custom overrides strategies for language ### Using gitattributes -Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. +Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language stats, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-and-vim-modelines). ``` $ cat .gitattributes From 2e1161e061e03111e9167fb6c037463846d34f5a Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Wed, 25 Feb 2015 15:14:34 +0100 Subject: [PATCH 258/875] Add sample XS file --- samples/XS/CommonMark.xs | 466 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) create mode 100644 samples/XS/CommonMark.xs diff --git a/samples/XS/CommonMark.xs b/samples/XS/CommonMark.xs new file mode 100644 index 00000000..6a0e321e --- /dev/null +++ b/samples/XS/CommonMark.xs @@ -0,0 +1,466 @@ +/* + * This software is copyright (C) by Nick Wellnhofer . + * + * This is free software; you can redistribute it and/or modify it under + * the same terms as the Perl 5 programming language system itself. + * + * Terms of the Perl programming language system itself + * + * a) the GNU General Public License as published by the Free + * Software Foundation; either version 1, or (at your option) any + * later version, or + * b) the "Artistic License" + */ + +/* + * Notes on memory management + * + * - A pointer to the Perl SV representing a node is stored in the + * user data slot of `struct cmark_node`, so there's a 1:1 mapping + * between Perl and C objects. + * - Every node SV keeps a reference to the parent SV. This is done + * indirectly by looking up the parent SV and increasing its refcount. + * - This makes sure that a document isn't freed if the last reference + * from Perl to the root node is dropped, as references to child nodes + * might still exist. + * - As a consequence, as long as a node is referenced from Perl, all its + * ancestor nodes will also be associated with a Perl object. + */ + +#define PERL_NO_GET_CONTEXT + +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + +#include +#include + +#if CMARK_VERSION < 0x001000 + #error libcmark 0.16.0 is required. +#endif + +/* Fix prefixes of render functions. */ +#define cmark_node_render_html cmark_render_html +#define cmark_node_render_xml cmark_render_xml +#define cmark_node_render_man cmark_render_man + +static SV* +S_create_or_incref_node_sv(pTHX_ cmark_node *node) { + SV *new_obj = NULL; + + while (node) { + SV *obj; + HV *stash; + + /* Look for existing object. */ + obj = (SV*)cmark_node_get_user_data(node); + + if (obj) { + /* Incref if found. */ + SvREFCNT_inc_simple_void_NN(obj); + if (!new_obj) { + new_obj = obj; + } + break; + } + + /* Create a new SV. */ + obj = newSViv(PTR2IV(node)); + cmark_node_set_user_data(node, obj); + if (!new_obj) { + new_obj = obj; + } + + /* + * Unfortunately, Perl doesn't offer an API function to bless an SV + * without a reference. The following code is mostly copied from + * sv_bless. + */ + SvOBJECT_on(obj); +#if (PERL_VERSION <= 16) + PL_sv_objcount++; +#endif + SvUPGRADE(obj, SVt_PVMG); + stash = gv_stashpvn("CommonMark::Node", 16, GV_ADD); + SvSTASH_set(obj, (HV*)SvREFCNT_inc(stash)); + + /* Recurse into parent. */ + node = cmark_node_parent(node); + } + + return new_obj; +} + +static void +S_decref_node_sv(pTHX_ cmark_node *node) { + SV *obj; + + if (!node) { + return; + } + + obj = (SV*)cmark_node_get_user_data(node); + if (!obj) { + /* Should never happen. */ + croak("Internal error: node SV not found"); + } + + SvREFCNT_dec_NN(obj); +} + +/* Find or create an SV for a cmark_node. */ +static SV* +S_node2sv(pTHX_ cmark_node *node) { + SV *obj; + + if (!node) { + return &PL_sv_undef; + } + + obj = S_create_or_incref_node_sv(aTHX_ node); + + return newRV_noinc(obj); +} + +/* Transfer refcount from a node to another. */ +static void +S_transfer_refcount(pTHX_ cmark_node *from, cmark_node *to) { + if (from != to) { + S_create_or_incref_node_sv(aTHX_ to); + S_decref_node_sv(aTHX_ from); + } +} + +/* Get C struct pointer from an SV argument. */ +static void* +S_sv2c(pTHX_ SV *sv, const char *class_name, STRLEN len, CV *cv, + const char *var_name) { + if (!SvROK(sv) || !sv_derived_from_pvn(sv, class_name, len, 0)) { + const char *sub_name = GvNAME(CvGV(cv)); + croak("%s: %s is not of type %s", sub_name, var_name, class_name); + } + return INT2PTR(void*, SvIV(SvRV(sv))); +} + + +MODULE = CommonMark PACKAGE = CommonMark PREFIX = cmark_ + +PROTOTYPES: DISABLE + +BOOT: + if (cmark_version != CMARK_VERSION) { + warn("Compiled against libcmark %s, but runtime version is %s", + CMARK_VERSION_STRING, cmark_version_string); + } + +char* +cmark_markdown_to_html(package, string) + SV *package = NO_INIT + SV *string +PREINIT: + STRLEN len; + const char *buffer; +CODE: + (void)package; + buffer = SvPVutf8(string, len); + RETVAL = cmark_markdown_to_html(buffer, len); +OUTPUT: + RETVAL + +cmark_node* +cmark_parse_document(package, string) + SV *package = NO_INIT + SV *string +PREINIT: + STRLEN len; + const char *buffer; +CODE: + (void)package; + buffer = SvPVutf8(string, len); + RETVAL = cmark_parse_document(buffer, len); +OUTPUT: + RETVAL + +cmark_node* +cmark_parse_file(package, file) + SV *package = NO_INIT + SV *file +PREINIT: + PerlIO *perl_io; + FILE *stream = NULL; +CODE: + (void)package; + perl_io = IoIFP(sv_2io(file)); + if (perl_io) { + stream = PerlIO_findFILE(perl_io); + } + if (!stream) { + croak("parse_file: file is not a file handle"); + } + RETVAL = cmark_parse_file(stream); +OUTPUT: + RETVAL + +int +cmark_version(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = cmark_version; +OUTPUT: + RETVAL + +const char* +cmark_version_string(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = cmark_version_string; +OUTPUT: + RETVAL + +int +cmark_compile_time_version(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = CMARK_VERSION; +OUTPUT: + RETVAL + +const char* +cmark_compile_time_version_string(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = CMARK_VERSION_STRING; +OUTPUT: + RETVAL + + +MODULE = CommonMark PACKAGE = CommonMark::Node PREFIX = cmark_node_ + +cmark_node* +new(package, type) + SV *package = NO_INIT + cmark_node_type type +CODE: + (void)package; + RETVAL = cmark_node_new(type); +OUTPUT: + RETVAL + +void +DESTROY(cmark_node *node) +CODE: + cmark_node *parent = cmark_node_parent(node); + if (parent) { + cmark_node_set_user_data(node, NULL); + S_decref_node_sv(aTHX_ parent); + } + else { + cmark_node_free(node); + } + +cmark_iter* +iterator(cmark_node *node) +CODE: + S_create_or_incref_node_sv(aTHX_ node); + RETVAL = cmark_iter_new(node); +OUTPUT: + RETVAL + +cmark_node* +interface_get_node(cmark_node *node) +INTERFACE: + cmark_node_next + cmark_node_previous + cmark_node_parent + cmark_node_first_child + cmark_node_last_child + +int +interface_get_int(cmark_node *node) +INTERFACE: + cmark_node_get_type + cmark_node_get_header_level + cmark_node_get_list_type + cmark_node_get_list_delim + cmark_node_get_list_start + cmark_node_get_list_tight + cmark_node_get_start_line + cmark_node_get_start_column + cmark_node_get_end_line + cmark_node_get_end_column + +NO_OUTPUT int +interface_set_int(cmark_node *node, int value) +INTERFACE: + cmark_node_set_header_level + cmark_node_set_list_type + cmark_node_set_list_delim + cmark_node_set_list_start + cmark_node_set_list_tight +POSTCALL: + if (!RETVAL) { + croak("%s: invalid operation", GvNAME(CvGV(cv))); + } + +const char* +interface_get_utf8(cmark_node *node) +INTERFACE: + cmark_node_get_type_string + cmark_node_get_literal + cmark_node_get_title + cmark_node_get_url + cmark_node_get_fence_info + +NO_OUTPUT int +interface_set_utf8(cmark_node *node, const char *value) +INTERFACE: + cmark_node_set_literal + cmark_node_set_title + cmark_node_set_url + cmark_node_set_fence_info +POSTCALL: + if (!RETVAL) { + croak("%s: invalid operation", GvNAME(CvGV(cv))); + } + +void +cmark_node_unlink(cmark_node *node) +PREINIT: + cmark_node *old_parent; +INIT: + old_parent = cmark_node_parent(node); +POSTCALL: + S_decref_node_sv(aTHX_ old_parent); + +NO_OUTPUT int +interface_move_node(cmark_node *node, cmark_node *other) +PREINIT: + cmark_node *old_parent; + cmark_node *new_parent; +INIT: + old_parent = cmark_node_parent(other); +INTERFACE: + cmark_node_insert_before + cmark_node_insert_after + cmark_node_prepend_child + cmark_node_append_child +POSTCALL: + if (!RETVAL) { + croak("%s: invalid operation", GvNAME(CvGV(cv))); + } + new_parent = cmark_node_parent(other); + S_transfer_refcount(aTHX_ old_parent, new_parent); + +char* +interface_render(cmark_node *root, long options = 0) +INTERFACE: + cmark_node_render_html + cmark_node_render_xml + cmark_node_render_man + + +MODULE = CommonMark PACKAGE = CommonMark::Iterator PREFIX = cmark_iter_ + +void +DESTROY(cmark_iter *iter) +CODE: + S_decref_node_sv(aTHX_ cmark_iter_get_node(iter)); + S_decref_node_sv(aTHX_ cmark_iter_get_root(iter)); + cmark_iter_free(iter); + +void +cmark_iter_next(cmark_iter *iter) +PREINIT: + I32 gimme; + cmark_node *old_node; + cmark_event_type ev_type; +PPCODE: + gimme = GIMME_V; + old_node = cmark_iter_get_node(iter); + ev_type = cmark_iter_next(iter); + + if (ev_type != CMARK_EVENT_DONE) { + cmark_node *node = cmark_iter_get_node(iter); + + ST(0) = sv_2mortal(newSViv((IV)ev_type)); + + if (gimme == G_ARRAY) { + SV *obj = S_create_or_incref_node_sv(aTHX_ node); + + /* A bit more efficient than S_transfer_refcount. */ + if (old_node != node) { + S_decref_node_sv(aTHX_ old_node); + SvREFCNT_inc_simple_void_NN(obj); + } + + ST(1) = sv_2mortal(newRV_noinc(obj)); + XSRETURN(2); + } + else { + S_transfer_refcount(aTHX_ old_node, node); + XSRETURN(1); + } + } + else { + S_decref_node_sv(aTHX_ old_node); + + if (gimme == G_ARRAY) { + XSRETURN_EMPTY; + } + else { + ST(0) = sv_2mortal(newSViv((IV)ev_type)); + XSRETURN(1); + } + } + +cmark_node* +cmark_iter_get_node(cmark_iter *iter) + +cmark_event_type +cmark_iter_get_event_type(cmark_iter *iter) + +void +cmark_iter_reset(iter, node, event_type) + cmark_iter *iter + cmark_node *node + cmark_event_type event_type +PREINIT: + cmark_node *old_node; +INIT: + old_node = cmark_iter_get_node(iter); + S_transfer_refcount(aTHX_ old_node, node); + + +MODULE = CommonMark PACKAGE = CommonMark::Parser PREFIX = cmark_parser_ + +cmark_parser* +cmark_parser_new(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = cmark_parser_new(); +OUTPUT: + RETVAL + +void +DESTROY(cmark_parser *parser) +CODE: + cmark_parser_free(parser); + +void +cmark_parser_feed(cmark_parser *parser, SV *string) +PREINIT: + STRLEN len; + const char *buffer; +CODE: + buffer = SvPVutf8(string, len); + cmark_parser_feed(parser, buffer, len); + +cmark_node* +cmark_parser_finish(cmark_parser *parser) + From 739b512ceef87f1255a2acb20e850e80f6d5f602 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 25 Feb 2015 08:18:45 -0600 Subject: [PATCH 259/875] Prefer 'statistics' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e3781ad..9df9f6fe 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linguist supports a number of different custom overrides strategies for language ### Using gitattributes -Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language stats, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-and-vim-modelines). +Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language statistics, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-and-vim-modelines). ``` $ cat .gitattributes From e791a7156686e5567c22543366918616b3f7f6c0 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 16 Feb 2015 19:20:06 +0100 Subject: [PATCH 260/875] Add DTrace and Makefile dependency includes. Sample file mpq.d by Georg Lukas; license GPL 2. Sample file counts.d by Kate Turner; public domain. Sample file javascript-race.d by unknown; license MPL 1.1/GPL 2.0/LGPL 2.1. Sample file probes.d by momjian; license TBD. --- lib/linguist/heuristics.rb | 10 + lib/linguist/languages.yml | 10 + samples/D/mpq.d | 318 ++++++++++++++++++++++++++++++ samples/DTrace/counts.d | 23 +++ samples/DTrace/javascript-trace.d | 73 +++++++ samples/DTrace/probes.d | 93 +++++++++ samples/Makefile/foo.o.d | 5 + 7 files changed, 532 insertions(+) create mode 100644 samples/D/mpq.d create mode 100644 samples/DTrace/counts.d create mode 100644 samples/DTrace/javascript-trace.d create mode 100644 samples/DTrace/probes.d create mode 100644 samples/Makefile/foo.o.d diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b82a5de4..58766ecc 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -229,5 +229,15 @@ module Linguist Language["Text"] end end + + disambiguate "D", "DTrace", "Makefile" do |data| + if /^module /.match(data) + Language["D"] + elsif /^((dtrace:::)?BEGIN|provider |#pragma (D (option|attributes)|ident)\s)/.match(data) + Language["DTrace"] + elsif /(\/.*:( .* \\)$| : \\$|^ : |: \\$)/.match(data) + Language["Makefile"] + end + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 413683e5..47df1cde 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -704,6 +704,15 @@ DM: tm_scope: source.c++ ace_mode: c_cpp +DTrace: + type: programming + extensions: + - .d + interpreters: + - dtrace + tm_scope: source.c + ace_mode: c_cpp + Darcs Patch: type: programming search_term: dpatch @@ -1753,6 +1762,7 @@ Makefile: - mf extensions: - .mak + - .d - .mk filenames: - GNUmakefile diff --git a/samples/D/mpq.d b/samples/D/mpq.d new file mode 100644 index 00000000..d72c2d2a --- /dev/null +++ b/samples/D/mpq.d @@ -0,0 +1,318 @@ +/* + * mpq.d -- D programming language module for libmpq + * + * Copyright (c) 2008 Georg Lukas + * + * This program 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; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * This module is written to support Phobos. Patches to allow binding to + * Tango are welcome. + */ + +module mpq; + +/* the following pragma does not work on DMD/Linux, generates a warning on + * GDC/Linux and has not been tested on Windows. Commented out for now. */ +// pragma(lib, "libmpq"); + +import std.string; // for format() and toStringz() +import std.traits; // for ParameterTypeTuple!() + +/* XXX: this assumes that libmpq is compiled with Large File Support on */ +alias long off_t; + +/* libmpq error return values */ +const LIBMPQ_ERROR_OPEN = -1; /* open error on file. */ +const LIBMPQ_ERROR_CLOSE = -2; /* close error on file. */ +const LIBMPQ_ERROR_SEEK = -3; /* lseek error on file. */ +const LIBMPQ_ERROR_READ = -4; /* read error on file. */ +const LIBMPQ_ERROR_WRITE = -5; /* write error on file. */ +const LIBMPQ_ERROR_MALLOC = -6; /* memory allocation error. */ +const LIBMPQ_ERROR_FORMAT = -7; /* format errror. */ +const LIBMPQ_ERROR_NOT_INITIALIZED = -8; /* init() wasn't called. */ +const LIBMPQ_ERROR_SIZE = -9; /* buffer size is to small. */ +const LIBMPQ_ERROR_EXIST = -10; /* file or block does not exist in archive. */ +const LIBMPQ_ERROR_DECRYPT = -11; /* we don't know the decryption seed. */ +const LIBMPQ_ERROR_UNPACK = -12; /* error on unpacking file. */ + +/** libmpq internal meta-data for an archive */ +extern struct mpq_archive_s; + +extern(C) { + +/* libmpq__generic information about library. */ +char *libmpq__version(); + +/* libmpq__generic mpq archive information. */ +int libmpq__archive_open(mpq_archive_s **mpq_archive, char *mpq_filename, off_t archive_offset); +int libmpq__archive_close(mpq_archive_s *mpq_archive); +int libmpq__archive_packed_size(mpq_archive_s *mpq_archive, off_t *packed_size); +int libmpq__archive_unpacked_size(mpq_archive_s *mpq_archive, off_t *unpacked_size); +int libmpq__archive_offset(mpq_archive_s *mpq_archive, off_t *offset); +int libmpq__archive_version(mpq_archive_s *mpq_archive, uint *version_); +int libmpq__archive_files(mpq_archive_s *mpq_archive, uint *files); + +/* libmpq__generic file processing functions. */ +int libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint file_number, off_t *packed_size); +int libmpq__file_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, off_t *unpacked_size); +int libmpq__file_offset(mpq_archive_s *mpq_archive, uint file_number, off_t *offset); +int libmpq__file_blocks(mpq_archive_s *mpq_archive, uint file_number, uint *blocks); +int libmpq__file_encrypted(mpq_archive_s *mpq_archive, uint file_number, uint *encrypted); +int libmpq__file_compressed(mpq_archive_s *mpq_archive, uint file_number, uint *compressed); +int libmpq__file_imploded(mpq_archive_s *mpq_archive, uint file_number, uint *imploded); +int libmpq__file_number(mpq_archive_s *mpq_archive, char *filename, uint *number); +int libmpq__file_read(mpq_archive_s *mpq_archive, uint file_number, ubyte *out_buf, off_t out_size, off_t *transferred); + +/* libmpq__generic block processing functions. */ +int libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint file_number); +int libmpq__block_close_offset(mpq_archive_s *mpq_archive, uint file_number); +int libmpq__block_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, uint block_number, off_t *unpacked_size); +int libmpq__block_read(mpq_archive_s *mpq_archive, uint file_number, uint block_number, ubyte *out_buf, off_t out_size, off_t *transferred); + +} + + +/** exception class for failed libmpq calls */ +class MPQException : Exception { + const string[] Errors = [ + "unknown error", + "open error on file", + "close error on file", + "lseek error on file", + "read error on file", + "write error on file", + "memory allocation error", + "format errror", + "init() wasn't called", + "buffer size is to small", + "file or block does not exist in archive", + "we don't know the decryption seed", + "error on unpacking file"]; + + public int errno; + this(char[] fnname = "unknown_function", int errno = 0) { + + this.errno = errno; + if (-errno >= Errors.length) + errno = 0; + super(std.string.format("Error in %s(): %s (%d)", + fnname, Errors[-errno], errno)); + } +} + + +/** template to wrap function calls and throw exceptions in case of error + * + * thanks for the idea to while(nan) blog, + * http://while-nan.blogspot.com/2007/06/wrapping-functions-for-fun-and-profit.html + * + * use: MPQ_CHECKERR(libmpq__archive_open)(&m, "foo.mpq", -1); + * returns the retval of archive_open on success; + * throws an MPQException on failure. + * + * @param Fn libmpq__function reference + * @param args libmpq__function parameters + * @return return value of libmpq__function on success + * @throw MPQException on error + */ +int MPQ_CHECKERR(alias Fn)(ParameterTypeTuple!(Fn) args) +{ + int result = Fn(args); + if (result < 0) { + /* XXX: relying on non-specified stringof() behaviour */ + throw new MPQException((&Fn).stringof[2..$], result); + } + return result; +} + + +/** mixin alias to wrap library functions into MPQ_CHECKERR. + * + * alias mpq.func_name(...) to MPQ_CHECKERR(libmpq__func_name)(...) + * @param func_name name of the function to be wrapped + */ +template MPQ_FUNC(char[] func_name) { + const char[] MPQ_FUNC = "alias MPQ_CHECKERR!(libmpq__" ~ func_name ~ ") " ~ func_name ~ ";"; +} + +alias libmpq__version libversion; /* must be direct alias because it returns char*, not error int */ +mixin(MPQ_FUNC!("archive_open")); +mixin(MPQ_FUNC!("archive_close")); +mixin(MPQ_FUNC!("archive_packed_size")); +mixin(MPQ_FUNC!("archive_unpacked_size")); +mixin(MPQ_FUNC!("archive_offset")); +mixin(MPQ_FUNC!("archive_version")); +mixin(MPQ_FUNC!("archive_files")); +mixin(MPQ_FUNC!("file_packed_size")); +mixin(MPQ_FUNC!("file_unpacked_size")); +mixin(MPQ_FUNC!("file_offset")); +mixin(MPQ_FUNC!("file_blocks")); +mixin(MPQ_FUNC!("file_encrypted")); +mixin(MPQ_FUNC!("file_compressed")); +mixin(MPQ_FUNC!("file_imploded")); +mixin(MPQ_FUNC!("file_number")); +mixin(MPQ_FUNC!("file_read")); +mixin(MPQ_FUNC!("block_open_offset")); +mixin(MPQ_FUNC!("block_close_offset")); +mixin(MPQ_FUNC!("block_unpacked_size")); +mixin(MPQ_FUNC!("block_read")); + +/** getter function named name for returning archive_* single values: + * + * Archive.() { return libmpq__archive_() } + * + * @param type return type for the original function reference + * @param name name of the original function + * @param name2 name for the prototype (defaults to name, used for "version") + * @return getter function mixin + */ +template MPQ_A_GET(char[] type, char[] name, char[] name2 = name) { + const char[] MPQ_A_GET = type ~ " " ~ name2 ~ "() { " ~ + type ~ " ret; " ~ + "archive_" ~ name ~ "(m, &ret); return ret;" ~ + "}"; +} + +/** wrapper class for an MPQ Archive + * + * syntax: auto a = new mpq.Archive("somefile.mpq"); + */ +class Archive { + mpq_archive_s *m; + File listfile; + char[][] listfiledata; + + this(char[] archivename, off_t offset = -1) { + archive_open(&m, toStringz(archivename), offset); + } + + mixin(MPQ_A_GET!("off_t", "packed_size")); + mixin(MPQ_A_GET!("off_t", "unpacked_size")); + mixin(MPQ_A_GET!("off_t", "offset")); + mixin(MPQ_A_GET!("uint", "version", "version_")); + mixin(MPQ_A_GET!("uint", "files")); + + ~this() { + archive_close(m); + } + + mpq_archive_s* archive() { + return m; + } + + File opIndex(char[] fname) { + return new File(this, fname); + } + File opIndex(int fno) { + return new File(this, fno); + } + + char[][] filelist() { + try { + if (!listfile) { + listfile = this["(listfile)"]; + listfiledata = (cast(char[])listfile.read()).splitlines(); + } + return listfiledata; + } catch (MPQException e) { + return []; + } + } + + /+uint filenumber(char[] filename) { + try { + if (!listfile) { + listfile = this["(listfile)"]; + listfiledata = (cast(char[])listfile.read()).splitlines(); + } + return listfiledata; + } catch (MPQException e) { + return []; + } + }+/ + +} + + +/** getter function named name for returning file_* single values: + * + * File.() { return libmpq__file_() } + * + * @param type return type for the original function reference + * @param name name of the original function + * @param name2 name for the prototype (defaults to name, used for "version") + * @return getter function mixin + */ +template MPQ_F_GET(char[] type, char[] name, char[] name2 = name) { + const char[] MPQ_F_GET = type ~ " " ~ name2 ~ "() { " ~ + type ~ " ret; " ~ + "file_" ~ name ~ "(am, fileno, &ret); " ~ + "return ret;" ~ + "}"; +} + +/** wrapper class for a single file in an MPQ Archive + * + * syntax: + * auto a = new mpq.Archive("somefile.mpq"); + * auto f = a["(listfile)"]; + * auto f2 = a[0]; + * auto f3 = new File(a, "(listfile)"); + */ +class File { + Archive a; + mpq_archive_s* am; + char[] filename; + uint fileno; + + this(Archive a, int fileno) { + this.a = a; + this.am = a.archive(); + if (fileno >= a.files) { + throw new MPQException(format("File(%d)", fileno), + LIBMPQ_ERROR_EXIST); + } + this.filename = format("file%04d.xxx", fileno); + this.fileno = fileno; + } + + this(Archive a, char[] filename) { + this.a = a; + this.am = a.archive(); + this.filename = filename; + /* this line will throw an exception when the file is not there */ + mpq.file_number(am, toStringz(filename), &this.fileno); + } + + mixin(MPQ_F_GET!("off_t", "packed_size")); + mixin(MPQ_F_GET!("off_t", "unpacked_size")); + mixin(MPQ_F_GET!("off_t", "offset")); + mixin(MPQ_F_GET!("uint", "blocks")); + mixin(MPQ_F_GET!("uint", "encrypted")); + mixin(MPQ_F_GET!("uint", "compressed")); + mixin(MPQ_F_GET!("uint", "imploded")); + + uint no() { return fileno; } + char[] name() { return filename; } + + ubyte[] read() { + ubyte[] content; + content.length = this.unpacked_size(); + off_t trans; + mpq.file_read(am, fileno, content.ptr, content.length, &trans); + content.length = trans; + return content; + } +} diff --git a/samples/DTrace/counts.d b/samples/DTrace/counts.d new file mode 100644 index 00000000..13725d99 --- /dev/null +++ b/samples/DTrace/counts.d @@ -0,0 +1,23 @@ +/* + * This software is in the public domain. + * + * $Id: counts.d 10510 2005-08-15 01:46:19Z kateturner $ + */ + +#pragma D option quiet + +self int tottime; +BEGIN { + tottime = timestamp; +} + +php$target:::function-entry + @counts[copyinstr(arg0)] = count(); +} + +END { + printf("Total time: %dus\n", (timestamp - tottime) / 1000); + printf("# calls by function:\n"); + printa("%-40s %@d\n", @counts); +} + diff --git a/samples/DTrace/javascript-trace.d b/samples/DTrace/javascript-trace.d new file mode 100644 index 00000000..258c6cd2 --- /dev/null +++ b/samples/DTrace/javascript-trace.d @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Copyright (C) 2007 Sun Microsystems, Inc. All Rights Reserved. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * javascript provider probes + * + * function-entry (filename, classname, funcname) + * function-info (filename, classname, funcname, lineno, + * runfilename, runlineno) + * function-args (filename, classname, funcname, argc, argv, argv0, + * argv1, argv2, argv3, argv4) + * function-rval (filename, classname, funcname, lineno, rval, rval0) + * function-return (filename, classname, funcname) + * object-create-start (filename, classname) + * object-create (filename, classname, *object, rlineno) + * object-create-done (filename, classname) + * object-finalize (NULL, classname, *object) + * execute-start (filename, lineno) + * execute-done (filename, lineno) + */ + +provider javascript { + probe function__entry(char *, char *, char *); + probe function__info(char *, char *, char *, int, char *, int); + probe function__args(char *, char *, char *, int, void *, void *, void *, + void *, void *, void *); + probe function__rval(char *, char *, char *, int, void *, void *); + probe function__return(char *, char *, char *); + probe object__create__start(char *, char *); + probe object__create__done(char *, char *); + /* XXX must use unsigned longs here instead of uintptr_t for OS X + (Apple radar: 5194316 & 5565198) */ + probe object__create(char *, char *, unsigned long, int); + probe object__finalize(char *, char *, unsigned long); + probe execute__start(char *, int); + probe execute__done(char *, int); +}; + +/* +#pragma D attributes Unstable/Unstable/Common provider mozilla provider +#pragma D attributes Private/Private/Unknown provider mozilla module +#pragma D attributes Private/Private/Unknown provider mozilla function +#pragma D attributes Unstable/Unstable/Common provider mozilla name +#pragma D attributes Unstable/Unstable/Common provider mozilla args +*/ + diff --git a/samples/DTrace/probes.d b/samples/DTrace/probes.d new file mode 100644 index 00000000..483f174d --- /dev/null +++ b/samples/DTrace/probes.d @@ -0,0 +1,93 @@ +/* ---------- + * DTrace probes for PostgreSQL backend + * + * Copyright (c) 2006-2009, PostgreSQL Global Development Group + * + * $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.11 2009/04/02 20:59:10 momjian Exp $ + * ---------- + */ + + +/* + * Typedefs used in PostgreSQL. + * + * NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc) + * in probe definitions, as they cause compilation errors on Mac OS X 10.5. + */ +#define LocalTransactionId unsigned int +#define LWLockId int +#define LWLockMode int +#define LOCKMODE int +#define BlockNumber unsigned int +#define Oid unsigned int +#define ForkNumber int +#define bool char + +provider postgresql { + + probe transaction__start(LocalTransactionId); + probe transaction__commit(LocalTransactionId); + probe transaction__abort(LocalTransactionId); + + probe lwlock__acquire(LWLockId, LWLockMode); + probe lwlock__release(LWLockId); + probe lwlock__wait__start(LWLockId, LWLockMode); + probe lwlock__wait__done(LWLockId, LWLockMode); + probe lwlock__condacquire(LWLockId, LWLockMode); + probe lwlock__condacquire__fail(LWLockId, LWLockMode); + + probe lock__wait__start(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE); + probe lock__wait__done(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE); + + probe query__parse__start(const char *); + probe query__parse__done(const char *); + probe query__rewrite__start(const char *); + probe query__rewrite__done(const char *); + probe query__plan__start(); + probe query__plan__done(); + probe query__execute__start(); + probe query__execute__done(); + probe query__start(const char *); + probe query__done(const char *); + probe statement__status(const char *); + + probe sort__start(int, bool, int, int, bool); + probe sort__done(bool, long); + + probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool); + probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool, bool); + probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid); + + probe buffer__checkpoint__start(int); + probe buffer__checkpoint__sync__start(); + probe buffer__checkpoint__done(); + probe buffer__sync__start(int, int); + probe buffer__sync__written(int); + probe buffer__sync__done(int, int, int); + probe buffer__write__dirty__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__write__dirty__done(ForkNumber, BlockNumber, Oid, Oid, Oid); + + probe deadlock__found(); + + probe checkpoint__start(int); + probe checkpoint__done(int, int, int, int, int); + probe clog__checkpoint__start(bool); + probe clog__checkpoint__done(bool); + probe subtrans__checkpoint__start(bool); + probe subtrans__checkpoint__done(bool); + probe multixact__checkpoint__start(bool); + probe multixact__checkpoint__done(bool); + probe twophase__checkpoint__start(); + probe twophase__checkpoint__done(); + + probe smgr__md__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int); + probe smgr__md__write__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int); + + probe xlog__insert(unsigned char, unsigned char); + probe xlog__switch(); + probe wal__buffer__write__dirty__start(); + probe wal__buffer__write__dirty__done(); +}; diff --git a/samples/Makefile/foo.o.d b/samples/Makefile/foo.o.d new file mode 100644 index 00000000..cf0ba55c --- /dev/null +++ b/samples/Makefile/foo.o.d @@ -0,0 +1,5 @@ +bar/foo.o: \ + bar/foo.c \ + bar/baz.h + +bar/baz.h: From 2b25bb6d1cdaa2e9133712cff4ae50d007c11e6a Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 20 Feb 2015 20:44:54 +0100 Subject: [PATCH 261/875] Add MUF language - Multi-user Forth. --- lib/linguist/heuristics.rb | 4 +++- lib/linguist/languages.yml | 9 +++++++++ test/test_language.rb | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b82a5de4..bc9a0f53 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -178,11 +178,13 @@ module Linguist end end - disambiguate "M", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| + disambiguate "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| if ObjectiveCRegex.match(data) Language["Objective-C"] elsif data.include?(":- module") Language["Mercury"] + elsif /^: /.match(data) + Language["MUF"] elsif /^\s*;/.match(data) Language["M"] elsif /^\s*\(\*/.match(data) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 413683e5..2f96958c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1745,6 +1745,15 @@ MTML: tm_scope: text.html.basic ace_mode: html +MUF: + type: programming + group: Forth + extensions: + - .muf + - .m + tm_scope: none + ace_mode: forth + Makefile: type: programming aliases: diff --git a/test/test_language.rb b/test/test_language.rb index 31be9a82..f3847a77 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -188,7 +188,7 @@ class TestLanguage < Minitest::Test assert_equal [], Language.find_by_extension('foo.rb') assert_equal [Language['Ruby']], Language.find_by_extension('rb') assert_equal [Language['Ruby']], Language.find_by_extension('.rb') - assert_equal [Language['M'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') + assert_equal [Language['M'], Language['MUF'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') end def test_find_all_by_extension From c6e16ee6bd3525d8cf90f5e8ce27d84cc3dc5121 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sat, 21 Feb 2015 12:49:52 +0100 Subject: [PATCH 262/875] MUF sample files. 39.m by Revar; license GPL v2. cmd-say.muf by Natasha Snunkemeox; license MIT. --- samples/MUF/39.m | 278 ++++++++++++++++++++++++++++++++++++++++ samples/MUF/cmd-say.muf | 275 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 553 insertions(+) create mode 100644 samples/MUF/39.m create mode 100644 samples/MUF/cmd-say.muf diff --git a/samples/MUF/39.m b/samples/MUF/39.m new file mode 100644 index 00000000..16dd9970 --- /dev/null +++ b/samples/MUF/39.m @@ -0,0 +1,278 @@ +$include $lib/strings +$include $lib/match +lvar check-obj-addr + +: check-next-loop (d -- ) + dup not if pop exit then + dup exit? over thing? or + me @ 3 pick .controls and if + dup check-obj-addr @ execute + then + next check-next-loop +; + +: check-contents (d -- ) + contents check-next-loop +; + +: check-exits (d -- ) + exits check-next-loop +; + +: exec-err (d mtypestr warnstr -- ) + "On " 4 rotate unparseobj strcat + ", in it's " strcat rot strcat + ", " strcat swap strcat .tell +; + +: can-linkto? (player object -- i) + dup "link_ok" flag? if pop pop 1 exit then + .controls +; + +: check-exec (d mtype execstr -- ) + dup "@" 1 strncmp if pop pop pop exit then + 1 strcut swap pop + " " .split pop + dup "$" 1 strncmp not if + dup match ok? not if + " is not a known registered program." strcat + exec-err exit + then + dup match program? not if + " is not a program." strcat + exec-err exit + then + 3 pick owner over match can-linkto? not if + " is not Link_OK." strcat + exec-err exit + then + else + dup number? not if + " is not a program dbref." strcat + "@" swap strcat exec-err exit + then + dup atoi dbref ok? not if + " is not a valid program reference." strcat + "@" swap strcat exec-err exit + then + dup atoi dbref program? not if + " is not a valid program reference." strcat + "@" swap strcat exec-err exit + then + 3 pick owner over atoi dbref can-linkto? not if + " is not Link_OK." strcat + "@" swap strcat exec-err exit + then + then + pop pop pop +; + + +: missing-err ( d s -- ) + swap unparseobj + " is missing an " + strcat swap strcat + " message." strcat .tell +; + +: colon-err ( d s -- ) + swap unparseobj + " has an unnecesary ':' at the start of its " + strcat swap strcat + " message." strcat .tell +; + +: check-desc (d -- ) + dup desc not if + "@description" missing-err + else + "@description" over + desc check-exec + then +; + +: check-succ (d -- ) + dup succ not if + "@success" missing-err + else + "@success" over + succ check-exec + then +; + +: check-fail (d -- ) + dup fail not if + "@fail" missing-err + else + "@fail" over + fail check-exec + then +; + +: check-drop (d -- ) + dup drop not if + "@drop" missing-err + else + "@drop" over + drop check-exec + then +; + +: check-osucc (d -- ) + dup osucc not if + "@osuccess" missing-err + else + dup osucc ":" 1 strncmp not if + "@osuccess" colon-err + else pop + then + then +; + +: check-ofail (d -- ) + dup ofail not if + "@ofail" missing-err + else + dup ofail ":" 1 strncmp not if + "@ofail" colon-err + else pop + then + then +; + +: check-odrop (d -- ) + dup odrop not if + "@odrop" missing-err + else + dup odrop ":" 1 strncmp not if + "@odrop" colon-err + else pop + then + then +; + + +$define islocked? (d -- i) getlockstr "*UNLOCKED*" stringcmp $enddef + +: islocked_always? (d -- i) + getlockstr dup "#0" stringcmp not if pop 1 exit then + dup "#" STRsplit swap pop atoi + "#" swap intostr strcat + (lockstr "#dbref") + dup "&!" over strcat strcat + 3 pick stringcmp not if pop pop 1 exit then + "&" over strcat strcat "!" swap strcat + stringcmp not if 1 exit then + 0 +; + +: check-link ( d -- ) + dup getlink not if + dup unparseobj " is unlinked." strcat .tell + else + dup getlink over location dbcmp if + dup islocked? not if + dup unparseobj + " is linked to it's location, but is unlocked." + strcat .tell + then + else (is not linked to it's location) + dup getlink program? if + dup dup owner swap getlink can-linkto? not if + dup unparseobj + " is linked to a program which is not Link_OK." + strcat .tell + then + then + then + then + pop +; + +: check-room (d -- ) + dup check-desc + dup islocked? if + dup islocked_always? not if + dup check-succ + then + dup check-fail + then + dup getlink if + dup check-drop + dup check-odrop + then + dup check-contents + check-exits +; + +: check-exit ( d -- ) + dup check-link + dup check-desc + dup getlink dup ok? if + program? not if + dup islocked_always? not if + dup check-succ + dup check-osucc + dup check-odrop + then + dup islocked? if + dup check-fail + dup check-ofail + then + then + else pop + then + pop +; + +: check-thing ( d -- ) + dup check-desc + dup islocked_always? not if + dup check-succ + dup check-osucc + then + dup islocked? if + dup check-fail + dup check-ofail + then + dup check-drop + dup check-odrop + check-exits +; + +: check-player ( d -- ) + dup check-desc + dup islocked_always? not if + dup check-succ + dup check-osucc + then + dup islocked? if + dup check-fail + dup check-ofail + then + dup check-contents + check-exits +; + +: check-program ( d -- ) + check-desc +; + +: check-obj (d -- ) + dup room? if check-room exit then + dup exit? if check-exit exit then + dup thing? if check-thing exit then + dup player? if check-player exit then + check-program +; + +: main + 'check-obj check-obj-addr ! + .strip dup not if pop "here" then + .match_controlled + dup #-3 dbcmp if pop me @ getlink then + dup ok? not if pop exit then + check-obj + me @ "Check done." notify +; diff --git a/samples/MUF/cmd-say.muf b/samples/MUF/cmd-say.muf new file mode 100644 index 00000000..6d27c65e --- /dev/null +++ b/samples/MUF/cmd-say.muf @@ -0,0 +1,275 @@ +@program cmd-say.muf +1 1000 d +i +( cmd-say.muf by Natasha@HLM + + Copyright 2002-2004 Natasha Snunkmeox. Copyright 2002-2004 Here Lie Monsters. + "@view $box/mit" for license information. +) +$author Natasha Snunkmeox +$note Say for Fuzzball 6. +$version 1.0 + +$include $lib/ignore +$include $lib/strings +$include $lib/match + +$def str_program "saypose" +$def prop_third "_prefs/say/third" +$def prop_quotes "_say/def/quotes" +$def prop_overb "_say/def/osay" +$def prop_verb "_say/def/say" +$def prop_split "_prefs/say/split" +$def prop_color "_prefs/say/color" +$def prop_meow "_prefs/say/meow" + +lvar randomWord + +lvar verb +lvar overb +lvar lquo +lvar rquo +lvar splitsay + +: rtn-getThirdVerb[ var:overb -- ] + ( Get the third-person verb. ) + me @ prop_overb getpropstr dup if ( str strOverb ) + strip dup dup "," instr not and if "," strcat then + else pop "says," then ( str strOverb ) + me @ "%D %s" fmtstring overb @ ! ( str ) +; + +: rtn-getFirstVerb[ var:verb var:overb -- ] + me @ prop_third getpropstr .yes? not if ( str ) + ( Get the first-person verb. ) + me @ prop_verb getpropstr dup if ( str strVerb ) + strip dup dup "," instr not and if "," strcat then + else pop "say," then ( str strVerb ) + splitsay @ if "you %s" else "You %s" then fmtstring ( str strVerb ) + else overb @ @ then verb @ ! ( str ) +; + +: rtn-getQuotes[ var:lquo var:rquo -- ] + me @ prop_quotes getpropstr dup "%m" instr if ( strQuotes ) + "%m" split ( strLquo strRquo ) + else pop "\"" dup then ( strLquo strRquo ) + rquo @ ! lquo @ ! ( ) +; + +: do-say ( str -- ) + "" randomWord ! + + var who + var exclude + + ( Ignoring? Get 'em outta here. ) + loc @ contents_array ( str arrHere ) + dup me @ str_program array_get_ignorers ( str arrHere arrIgnorers ) + dup exclude ! + swap array_diff who ! + + + ( Anyone #meowing this player? Go ahead and notify before special formatting. ) + who @ prop_meow me @ owner "*{%d}*" fmtstring array_filter_prop ( str arrMeow ) + dup if ( str arrMeow ) + dup who @ array_diff who ! ( str arrMeow ) + dup exclude @ array_union exclude ! ( str arrMeow ) + + over ansi_strip ( str arrMeow str ) + "\\b[A-Z0-9_]+\\b" "MEOW" REG_ALL regsub ( str arrMeow str' ) + "\\b[A-Z0-9_][A-Za-z0-9_]*[a-z][A-Za-z0-9_]*\\b" "Meow" REG_ALL regsub ( str arrMeow str' ) + "\\b[a-z_][A-Za-z0-9_]*\\b" "meow" REG_ALL regsub ( str arrMeow str' ) + me @ "%D meows, \"%s\"" fmtstring ( str arrMeow str" ) + 1 array_make swap array_notify ( str ) + else pop then ( str ) + + + var msg + + dup ",," instr ( str boolCommas ) + me @ prop_split getpropstr .no? not ( str boolCommas boolSplitOK ) + and if ( str ) + ",," split ( str- -str ) + + ( User-supplied verb? ) + dup ",," instr if + ",," split ( str- strVerb -str ) + swap dup if ( str- -str strVerb ) + strip ( str- -str strVerb ) + dup me @ name instr over tolower "%n" instr or if ( str- -str strVerb ) + "%n" "%N" subst me @ name "%n" subst ( str- -str strVerb ) + else + me @ swap "%s %D," fmtstring ( str- -str -str- ) + then ( str- -str -str- ) + dup "*[-!.,:;]" smatch not if "," strcat then ( str- -str -str- ) + dup verb ! overb ! ( str- -str ) + else pop then ( str- -str ) + then ( str- -str ) + + 2 array_make ( arrMsg ) + 1 + else 0 then splitsay ! msg ! + + + verb @ string? not if + overb rtn-getThirdVerb + verb overb rtn-getFirstVerb + then + lquo rquo rtn-getQuotes ( str ) + + + ( Say. ) + msg @ string? if + rquo @ msg @ lquo @ ( strRquo strMsg strLquo ) + "%s %s%s%s" ( strRquo strMsg strLquo strFormat ) + + 4 dupn + verb @ swap fmtstring .tell ( strRquo strMsg strLquo strFormat ) + overb @ swap fmtstring ( strOsay ) + else + rquo @ msg @ array_vals pop ( strRquo strMsg strMsg2 ) + swap dup "*[-!.,:;]" smatch not if "," strcat then swap ( strRquo strMsg strMsg2 ) + ( Only handle strMsg if there's no strMsg2. ) + dup if ( strRquo strMsg strMsg2 ) + swap ( strRquo strMsg2 strMsg ) + lquo @ swap rquo @ swap lquo @ ( strRquo strMsg2 strLquo strRquo strMsg' strLquo ) + "%s%s%s %s %s%s%s" ( strRquo strMsg2 strLquo strRquo strMsg' strLquo strFormat ) + + 7 + else ( strRquo strMsg strMsg2 ) + pop lquo @ ( strRquo strMsg' strLquo ) + "%s%s%s %s" ( strRquo strMsg' strLquo strFormat ) + + verb @ ",$" "." 0 regsub verb ! + overb @ ",$" "." 0 regsub overb ! + + 4 + then ( ... strRquo strMsg strLquo strFormat intDepth ) + + dupn + verb @ -5 rotate fmtstring .tell ( ... strRquo strMsg strLquo strFormat ) + overb @ -5 rotate fmtstring ( strOsay ) + then ( strOsay ) + + + ( Is there color to avoid? ) + dup "\[[" instr if + who @ prop_color "{n*|0}" array_filter_prop ( strOsay arrGreyed ) + dup if ( strOsay arrGreyed ) + over ansi_strip 1 array_make ( strOsay arrGreyed arrMsg ) + over array_notify ( strOsay arrGreyed ) + + exclude @ array_union exclude ! ( strOsay ) + else pop then ( strOsay ) + then ( strOsay ) + + loc @ ( strOsay db ) + exclude @ array_vals ( strOsay db dbExcludeN..dbExclude1 intN ) + me @ swap ++ ( strOsay db dbGreyedN..dbGreyed1' intN' ) + dup 3 + rotate ( db dbGreyedN..dbGreyed1 intN strOsay ) + notify_exclude ( ) +; + +: do-help pop pop .showhelp ; +: do-ignore pop str_program cmd-ignore-add ; +: do-unignore pop str_program cmd-ignore-del ; + +: do-third ( strY strZ -- ) + pop pop ( ) + me @ prop_third "yes" setprop + me @ "You will see your own says in the third person (\"%D says\")." fmtstring .tellgood +; +: do-unthird ( strY strZ -- ) + pop pop ( ) + me @ prop_third remove_prop + "You will see your own says in the second person (\"You say\")." .tellgood +; + +: do-grey ( strY strZ -- ) + pop pop ( ) + me @ prop_color "no" setprop + me @ "You will not see color in any says. Note you will see color in your own says." fmtstring .tellgood +; +: do-ungrey ( strY strZ -- ) + pop pop ( ) + me @ prop_color remove_prop + "You will see color in says." .tellgood +; + +: do-meow ( strY strZ -- ) + pop ( strY ) + dup if + .noisy_pmatch dup ok? not if pop exit then ( db ) + me @ prop_meow 3 pick reflist_find if ( db ) + "%D is already in your #meow list." fmtstring .tellbad exit ( ) + then ( db ) + me @ prop_meow 3 pick reflist_add ( db ) + "%D added." fmtstring .tellgood + else + me @ prop_meow array_get_reflist ( arr ) + "" swap foreach swap pop "%D %s" fmtstring repeat + "Your meowlist: " swap strcat .tellgood + then +; +: do-unmeow ( strY strZ -- ) + pop ( strY ) + .noisy_pmatch dup ok? not if pop exit then ( db ) + me @ prop_meow 3 pick reflist_find not if ( db ) + "%D is not in your #meow list." fmtstring .tellbad exit ( ) + then ( db ) + me @ prop_meow 3 pick reflist_del ( db ) + "%D removed." fmtstring .tellgood +; + +$define dict_commands { + "help" 'do-help + "ignore" 'do-ignore + "!ignore" 'do-unignore + "meow" 'do-meow + "!meow" 'do-unmeow + "third" 'do-third + "!third" 'do-unthird + "grey" 'do-grey + "gray" 'do-grey + "!grey" 'do-ungrey + "!gray" 'do-ungrey +}dict $enddef + +: main ( str -- ) + dup STRparse ( str strX strY strZ ) + 3 pick string? if 3 pick "#" stringpfx if ( str strX strY strZ ) + pop pop pop ( str ) + "#" split strcat ( str' ) + do-say exit ( ) + then then + 3 pick int? if pop pop pop do-say exit then + 4 rotate pop ( strX strY strZ ) + + rot dict_commands over array_getitem ( strY strZ strX ? ) + dup address? if ( strY strZ strX adr ) + swap pop ( strY strZ adr ) + execute ( ) + else pop ( strY strZ strX ) + "I don't recognize the command '#%s'. Try 'say #help' for help, or using '##' to say something starting with '#'." fmtstring .tellbad ( strY strZ ) + pop pop ( ) + then ( ) +; +. +c +q + +lsedit #257=_help +.del 1 $ +say +." +say #[!]ignore +say #[!]third +say #[!]grey +say #[!]meow + +Speaks to the room. Use #ignore to not see 's says, poses, and spoofs; use #meow to see 's says with all the words replaced with "meow." Use #third to see your own says in the third person (that is, "Puck says" instead of the normal "You say"). Use #grey to turn off color in others' says and poses. + +Say supports a "split" say if you put two consecutive commas in your message. For example, if CobaltBlue typed '"Hello,,how are you?' everyone would see '"Hello," says CobaltBlue, "how are you?"' You can also specify an "ad-hoc" verb by putting a message with your name or '%N' between pairs of commas: '"Hello,,%N welcomes Weiran,,how are you?' would display '"Hello," CobaltBlue welcomes Weiran, "how are you?"' +.format 10=78 +.format 8=78 +.end From 0bccf97d16241a2044288623114c17a97a6f54a7 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Tue, 3 Feb 2015 08:56:30 -0800 Subject: [PATCH 263/875] Add support for the AMPL modeling and script language --- lib/linguist/languages.yml | 10 ++++++++++ samples/AMPL/diet.dat | 32 ++++++++++++++++++++++++++++++++ samples/AMPL/diet.mod | 27 +++++++++++++++++++++++++++ samples/AMPL/diet.run | 25 +++++++++++++++++++++++++ samples/AMPL/toy.ampl | 25 +++++++++++++++++++++++++ 5 files changed, 119 insertions(+) create mode 100644 samples/AMPL/diet.dat create mode 100644 samples/AMPL/diet.mod create mode 100644 samples/AMPL/diet.run create mode 100644 samples/AMPL/toy.ampl diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 413683e5..b5062fd9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -41,6 +41,16 @@ AGS Script: tm_scope: source.c++ ace_mode: c_cpp +AMPL: + type: programming + color: "#00008B" + extensions: + - .ampl + - .dat + - .mod + - .run + ace_mode: text + ANTLR: type: programming color: "#9DC3FF" diff --git a/samples/AMPL/diet.dat b/samples/AMPL/diet.dat new file mode 100644 index 00000000..c263803c --- /dev/null +++ b/samples/AMPL/diet.dat @@ -0,0 +1,32 @@ + +param: FOOD: cost f_min f_max := + "Quarter Pounder w/ Cheese" 1.84 . . + "McLean Deluxe w/ Cheese" 2.19 . . + "Big Mac" 1.84 . . + "Filet-O-Fish" 1.44 . . + "McGrilled Chicken" 2.29 . . + "Fries, small" .77 . . + "Sausage McMuffin" 1.29 . . + "1% Lowfat Milk" .60 . . + "Orange Juice" .72 . . ; + +param: NUTR: n_min n_max := + Cal 2000 . + Carbo 350 375 + Protein 55 . + VitA 100 . + VitC 100 . + Calc 100 . + Iron 100 . ; + +param amt (tr): + Cal Carbo Protein VitA VitC Calc Iron := + "Quarter Pounder w/ Cheese" 510 34 28 15 6 30 20 + "McLean Deluxe w/ Cheese" 370 35 24 15 10 20 20 + "Big Mac" 500 42 25 6 2 25 20 + "Filet-O-Fish" 370 38 14 2 0 15 10 + "McGrilled Chicken" 400 42 31 8 15 15 8 + "Fries, small" 220 26 3 0 15 0 2 + "Sausage McMuffin" 345 27 15 4 0 20 15 + "1% Lowfat Milk" 110 12 9 10 4 30 0 + "Orange Juice" 80 20 1 2 120 2 2 ; diff --git a/samples/AMPL/diet.mod b/samples/AMPL/diet.mod new file mode 100644 index 00000000..c831a6c6 --- /dev/null +++ b/samples/AMPL/diet.mod @@ -0,0 +1,27 @@ + +set NUTR ordered; +set FOOD ordered; + +param cost {FOOD} >= 0; +param f_min {FOOD} >= 0, default 0; +param f_max {j in FOOD} >= f_min[j], default Infinity; + +param n_min {NUTR} >= 0, default 0; +param n_max {i in NUTR} >= n_min[i], default Infinity; + +param amt {NUTR,FOOD} >= 0; + +# -------------------------------------------------------- + +var Buy {j in FOOD} integer >= f_min[j], <= f_max[j]; + +# -------------------------------------------------------- + +minimize Total_Cost: sum {j in FOOD} cost[j] * Buy[j]; + +minimize Nutr_Amt {i in NUTR}: sum {j in FOOD} amt[i,j] * Buy[j]; + +# -------------------------------------------------------- + +subject to Diet {i in NUTR}: + n_min[i] <= sum {j in FOOD} amt[i,j] * Buy[j] <= n_max[i]; diff --git a/samples/AMPL/diet.run b/samples/AMPL/diet.run new file mode 100644 index 00000000..ded2786d --- /dev/null +++ b/samples/AMPL/diet.run @@ -0,0 +1,25 @@ +model diet.mod; +data diet2.dat; + +param N symbolic in NUTR; +param nstart > 0; +param nstep > 0; +read N, nstart, nstep <- ; # read data interactively + +set N_MAX default {}; +param N_obj {N_MAX}; +param N_dual {N_MAX}; +option solver_msg 0; + +for {i in nstart .. 0 by -nstep} { + let n_max[N] := i; + solve; + if solve_result = "infeasible" then { + printf "--- infeasible at %d ---\n\n", i; + break; + } + let N_MAX := N_MAX union {i}; + let N_obj[i] := Total_Cost; + let N_dual[i] := Diet[N].dual; +} +display N_obj, N_dual; diff --git a/samples/AMPL/toy.ampl b/samples/AMPL/toy.ampl new file mode 100644 index 00000000..0ca0c7cf --- /dev/null +++ b/samples/AMPL/toy.ampl @@ -0,0 +1,25 @@ +# A toy knapsack problem from the LocalSolver docs written in AMPL. + +set I; +param Value{I}; +param Weight{I}; +param KnapsackBound; +var Take{I} binary; + +maximize TotalValue: sum{i in I} Take[i] * Value[i]; +s.t. WeightLimit: sum{i in I} Take[i] * Weight[i] <= KnapsackBound; + +data; + +param: +I: Weight Value := +0 10 1 +1 60 10 +2 30 15 +3 40 40 +4 30 60 +5 20 90 +6 20 100 +7 2 15; + +param KnapsackBound := 102; From 407dbbb7fb7ed7a91f26896466fdf6e1fbc9bf98 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Tue, 3 Feb 2015 09:52:06 -0800 Subject: [PATCH 264/875] Mark AMPL with `tm_scope: none` because it doesn't have grammar info --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b5062fd9..feaa1280 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -49,6 +49,7 @@ AMPL: - .dat - .mod - .run + tm_scope: none ace_mode: text ANTLR: From 1cdd3c55aba439733ab1df7e3acc4b70bf6523c0 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Wed, 25 Feb 2015 11:37:40 -0800 Subject: [PATCH 265/875] Add AMPL grammar --- .gitmodules | 3 +++ grammars.yml | 2 ++ vendor/grammars/ampl | 1 + 3 files changed, 6 insertions(+) create mode 160000 vendor/grammars/ampl diff --git a/.gitmodules b/.gitmodules index 136013b2..134004a4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -630,3 +630,6 @@ [submodule "vendor/grammars/Lean.tmbundle"] path = vendor/grammars/Lean.tmbundle url = https://github.com/leanprover/Lean.tmbundle +[submodule "vendor/grammars/ampl"] + path = vendor/grammars/ampl + url = https://github.com/ampl/sublime-ampl diff --git a/grammars.yml b/grammars.yml index 6d933a09..3b40a3b9 100644 --- a/grammars.yml +++ b/grammars.yml @@ -143,6 +143,8 @@ vendor/grammars/actionscript3-tmbundle: - text.xml.flex-config vendor/grammars/ada.tmbundle: - source.ada +vendor/grammars/ampl: +- source.ampl vendor/grammars/ant.tmbundle: - text.xml.ant vendor/grammars/antlr.tmbundle: diff --git a/vendor/grammars/ampl b/vendor/grammars/ampl new file mode 160000 index 00000000..2e399ebf --- /dev/null +++ b/vendor/grammars/ampl @@ -0,0 +1 @@ +Subproject commit 2e399ebf4aec6b5b81f01d4cbee965f77852ce86 From 13eb7c796ed965f49df0d8a58f05b615a4815669 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Wed, 25 Feb 2015 12:59:23 -0800 Subject: [PATCH 266/875] Remove .dat, .mod and .run AMPL extensions as they are ambiguous As discussed in #2073 adding these extensions will require more work to avoid incorrect language detection. --- lib/linguist/languages.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index feaa1280..57777f64 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -46,9 +46,6 @@ AMPL: color: "#00008B" extensions: - .ampl - - .dat - - .mod - - .run tm_scope: none ace_mode: text From e093ac843f92b698340d1953b9bdc9f77701cd3d Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Wed, 25 Feb 2015 14:22:45 -0800 Subject: [PATCH 267/875] Remove AMPL samples using .mod, .dat and .run extensions --- samples/AMPL/diet.dat | 32 -------------------------------- samples/AMPL/diet.mod | 27 --------------------------- samples/AMPL/diet.run | 25 ------------------------- 3 files changed, 84 deletions(-) delete mode 100644 samples/AMPL/diet.dat delete mode 100644 samples/AMPL/diet.mod delete mode 100644 samples/AMPL/diet.run diff --git a/samples/AMPL/diet.dat b/samples/AMPL/diet.dat deleted file mode 100644 index c263803c..00000000 --- a/samples/AMPL/diet.dat +++ /dev/null @@ -1,32 +0,0 @@ - -param: FOOD: cost f_min f_max := - "Quarter Pounder w/ Cheese" 1.84 . . - "McLean Deluxe w/ Cheese" 2.19 . . - "Big Mac" 1.84 . . - "Filet-O-Fish" 1.44 . . - "McGrilled Chicken" 2.29 . . - "Fries, small" .77 . . - "Sausage McMuffin" 1.29 . . - "1% Lowfat Milk" .60 . . - "Orange Juice" .72 . . ; - -param: NUTR: n_min n_max := - Cal 2000 . - Carbo 350 375 - Protein 55 . - VitA 100 . - VitC 100 . - Calc 100 . - Iron 100 . ; - -param amt (tr): - Cal Carbo Protein VitA VitC Calc Iron := - "Quarter Pounder w/ Cheese" 510 34 28 15 6 30 20 - "McLean Deluxe w/ Cheese" 370 35 24 15 10 20 20 - "Big Mac" 500 42 25 6 2 25 20 - "Filet-O-Fish" 370 38 14 2 0 15 10 - "McGrilled Chicken" 400 42 31 8 15 15 8 - "Fries, small" 220 26 3 0 15 0 2 - "Sausage McMuffin" 345 27 15 4 0 20 15 - "1% Lowfat Milk" 110 12 9 10 4 30 0 - "Orange Juice" 80 20 1 2 120 2 2 ; diff --git a/samples/AMPL/diet.mod b/samples/AMPL/diet.mod deleted file mode 100644 index c831a6c6..00000000 --- a/samples/AMPL/diet.mod +++ /dev/null @@ -1,27 +0,0 @@ - -set NUTR ordered; -set FOOD ordered; - -param cost {FOOD} >= 0; -param f_min {FOOD} >= 0, default 0; -param f_max {j in FOOD} >= f_min[j], default Infinity; - -param n_min {NUTR} >= 0, default 0; -param n_max {i in NUTR} >= n_min[i], default Infinity; - -param amt {NUTR,FOOD} >= 0; - -# -------------------------------------------------------- - -var Buy {j in FOOD} integer >= f_min[j], <= f_max[j]; - -# -------------------------------------------------------- - -minimize Total_Cost: sum {j in FOOD} cost[j] * Buy[j]; - -minimize Nutr_Amt {i in NUTR}: sum {j in FOOD} amt[i,j] * Buy[j]; - -# -------------------------------------------------------- - -subject to Diet {i in NUTR}: - n_min[i] <= sum {j in FOOD} amt[i,j] * Buy[j] <= n_max[i]; diff --git a/samples/AMPL/diet.run b/samples/AMPL/diet.run deleted file mode 100644 index ded2786d..00000000 --- a/samples/AMPL/diet.run +++ /dev/null @@ -1,25 +0,0 @@ -model diet.mod; -data diet2.dat; - -param N symbolic in NUTR; -param nstart > 0; -param nstep > 0; -read N, nstart, nstep <- ; # read data interactively - -set N_MAX default {}; -param N_obj {N_MAX}; -param N_dual {N_MAX}; -option solver_msg 0; - -for {i in nstart .. 0 by -nstep} { - let n_max[N] := i; - solve; - if solve_result = "infeasible" then { - printf "--- infeasible at %d ---\n\n", i; - break; - } - let N_MAX := N_MAX union {i}; - let N_obj[i] := Total_Cost; - let N_dual[i] := Diet[N].dual; -} -display N_obj, N_dual; From 51af1bd162eccaddf3f5d224dd4cbbbb3385d28e Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 26 Feb 2015 10:40:56 -0800 Subject: [PATCH 268/875] Use AMPL grammar --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 57777f64..d1348dc0 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -46,7 +46,7 @@ AMPL: color: "#00008B" extensions: - .ampl - tm_scope: none + tm_scope: source.ampl ace_mode: text ANTLR: From 65260e3aaa536d7e68ef42248e29f3ed705b6224 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Thu, 26 Feb 2015 21:59:03 +0100 Subject: [PATCH 269/875] Grammar for OpenScad from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/openscad.tmbundle | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/openscad.tmbundle diff --git a/.gitmodules b/.gitmodules index 136013b2..985b81d3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -630,3 +630,6 @@ [submodule "vendor/grammars/Lean.tmbundle"] path = vendor/grammars/Lean.tmbundle url = https://github.com/leanprover/Lean.tmbundle +[submodule "vendor/grammars/openscad.tmbundle"] + path = vendor/grammars/openscad.tmbundle + url = https://github.com/tbuser/openscad.tmbundle diff --git a/grammars.yml b/grammars.yml index 6d933a09..7f4f89ee 100644 --- a/grammars.yml +++ b/grammars.yml @@ -383,6 +383,8 @@ vendor/grammars/ooc.tmbundle: - source.ooc vendor/grammars/opa.tmbundle: - source.opa +vendor/grammars/openscad.tmbundle/: +- source.scad vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: - source.oz vendor/grammars/pascal.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 413683e5..73abc785 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2117,7 +2117,7 @@ OpenSCAD: type: programming extensions: - .scad - tm_scope: none + tm_scope: source.scad ace_mode: scad Org: diff --git a/vendor/grammars/openscad.tmbundle b/vendor/grammars/openscad.tmbundle new file mode 160000 index 00000000..4b2bc0a8 --- /dev/null +++ b/vendor/grammars/openscad.tmbundle @@ -0,0 +1 @@ +Subproject commit 4b2bc0a8e100d8f0350fd74f6c40dd956c118355 From 9a86b9ad753c6073825dff543cdf38496243a59b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 26 Feb 2015 15:27:33 -0600 Subject: [PATCH 270/875] Instrument all calls and pass the blob, strategy and language candidates in the payload. --- lib/linguist/classifier.rb | 8 +++----- lib/linguist/language.rb | 23 ++++++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/linguist/classifier.rb b/lib/linguist/classifier.rb index 208467e4..89a0df2f 100644 --- a/lib/linguist/classifier.rb +++ b/lib/linguist/classifier.rb @@ -16,11 +16,9 @@ module Linguist # # Returns an Array of Language objects, most probable first. def self.call(blob, possible_languages) - Linguist.instrument("linguist.bayesian_classification") do - language_names = possible_languages.map(&:name) - classify(Samples.cache, blob.data, language_names).map do |name, _| - Language[name] # Return the actual Language objects - end + language_names = possible_languages.map(&:name) + classify(Samples.cache, blob.data, language_names).map do |name, _| + Language[name] # Return the actual Language objects end end diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 68b4c4fc..bf0dfc33 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -107,18 +107,27 @@ module Linguist Linguist.instrument("linguist.detection") do # Call each strategy until one candidate is returned. - STRATEGIES.reduce([]) do |languages, strategy| - candidates = strategy.call(blob, languages) + languages = [] + strategy = nil + + STRATEGIES.each do |strategy| + candidates = Linguist.instrument("linguist.strategy", :blob => blob, :strategy => strategy, :candidates => languages) do + strategy.call(blob, languages) + end if candidates.size == 1 - return candidates.first + languages = candidates + break elsif candidates.size > 1 # More than one candidate was found, pass them to the next strategy. - candidates + languages = candidates else - # No candiates were found, pass on languages from the previous strategy. - languages + # No candidates, try the next strategy end - end.first + end + + Linguist.instrument("linguist.detected", :blob => blob, :strategy => strategy, :language => languages.first) do + languages.first + end end end From e24a9ba602604ae55ac982e0ef797e4f72ac3eab Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 27 Feb 2015 13:36:12 -0600 Subject: [PATCH 271/875] Ordering --- grammars.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grammars.yml b/grammars.yml index 827e61cf..311bb226 100644 --- a/grammars.yml +++ b/grammars.yml @@ -383,10 +383,10 @@ vendor/grammars/ooc.tmbundle: - source.ooc vendor/grammars/opa.tmbundle: - source.opa -vendor/grammars/oracle.tmbundle: -- source.plsql.oracle vendor/grammars/openscad.tmbundle/: - source.scad +vendor/grammars/oracle.tmbundle: +- source.plsql.oracle vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: - source.oz vendor/grammars/pascal.tmbundle: From b350f1572be21c4b8f2fc156f769abd5fb0b3cb4 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 27 Feb 2015 13:36:20 -0600 Subject: [PATCH 272/875] Reformatting --- lib/linguist/heuristics.rb | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 885d578c..2ff8d9fb 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -237,20 +237,18 @@ module Linguist end disambiguate "PLSQL", "SQLPL", "PLpgSQL", "SQL" do |data| - #only return value if a definite positive - if /^\\i\b|AS \$\$|LANGUAGE '+plpgsql'+/i.match(data) || /SECURITY (DEFINER|INVOKER)/i.match(data) || /BEGIN( WORK| TRANSACTION)?;/i.match(data) - #postgres - Language["PLpgSQL"] + #Postgres + Language["PLpgSQL"] elsif /(alter module)|(language sql)|(begin( NOT)+ atomic)/i.match(data) || /signal SQLSTATE '[0-9]+'/i.match(data) - #ibm db2 - Language["SQLPL"] + #IBM db2 + Language["SQLPL"] elsif /pragma|\$\$PLSQL_|XMLTYPE|sysdate|systimestamp|\.nextval|connect by|AUTHID (DEFINER|CURRENT_USER)/i.match(data) || /constructor\W+function/i.match(data) - #oraclestuff - Language["PLSQL"] + #Oracle + Language["PLSQL"] elsif ! /begin|boolean|package|exception/i.match(data) - #generic sql - Language["SQL"] + #Generic SQL + Language["SQL"] end end From 63fc9dd6a5d0a551e73b5ce1c4c0861d3e88c624 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 27 Feb 2015 13:50:29 -0600 Subject: [PATCH 273/875] Updating grammars --- vendor/grammars/Stylus | 2 +- vendor/grammars/Sublime-VimL | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/grace-tmbundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/oracle.tmbundle | 2 +- vendor/grammars/powershell | 2 +- vendor/grammars/sublime-nginx | 2 +- vendor/grammars/toml.tmbundle | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/vendor/grammars/Stylus b/vendor/grammars/Stylus index b9214d1f..c060554e 160000 --- a/vendor/grammars/Stylus +++ b/vendor/grammars/Stylus @@ -1 +1 @@ -Subproject commit b9214d1ffd5031b60d77d07a6f315a934d4a473e +Subproject commit c060554eb82ed253969457b2609d9eb5c7739c6e diff --git a/vendor/grammars/Sublime-VimL b/vendor/grammars/Sublime-VimL index 366fdc64..4b23352c 160000 --- a/vendor/grammars/Sublime-VimL +++ b/vendor/grammars/Sublime-VimL @@ -1 +1 @@ -Subproject commit 366fdc64e3655207a0b2672f630d7167e6aac2c3 +Subproject commit 4b23352ce5e48a191d55d61883a9478211df91fd diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 27313007..e1b78aac 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 27313007d94fd4ae802702e5ca6b454e8a5e9468 +Subproject commit e1b78aacb6b0ab8b4c26ea897b128335f8ed939c diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index d55b1d42..21096f24 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit d55b1d427845aa4c2f2fe5947121616b7f1160fa +Subproject commit 21096f24d8a34668d54ad31b8902ab5c709c1c07 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index ec896cd5..fe2c2d23 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit ec896cd5ad05d4ae9b837fa5a64cd9431d2a14d6 +Subproject commit fe2c2d23de9e300d7cd1b04e139dfbdd2069d00a diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index 0cd6439b..a008fe9c 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit 0cd6439b513631c469d69b0e02a26804b068674b +Subproject commit a008fe9c64d454132941eb72334c52e4ad93266e diff --git a/vendor/grammars/grace-tmbundle b/vendor/grammars/grace-tmbundle index acbf9a24..6bea212a 160000 --- a/vendor/grammars/grace-tmbundle +++ b/vendor/grammars/grace-tmbundle @@ -1 +1 @@ -Subproject commit acbf9a247c6fae57d0e51c712669933b93ca4251 +Subproject commit 6bea212a5843e152cd605ec6075eb7352cbeaf0d diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index bae6eee8..51978f7d 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit bae6eee8557c2158592ac485a7168ccd10fc6dfb +Subproject commit 51978f7d1b1a7b92f77ccf02b042b768946844bd diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index d58edec6..da1fdb69 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit d58edec65539e014fa13579461df6bebc24250c0 +Subproject commit da1fdb6949eea5d107c8f30063437d14a3c3a677 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 669040b8..610ee6ef 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 669040b8936375e54fb208dfb56e2ed4a3945d76 +Subproject commit 610ee6ef0d6162249374a480c1209c1ddd46a955 diff --git a/vendor/grammars/oracle.tmbundle b/vendor/grammars/oracle.tmbundle index f5308c9a..b41e6d33 160000 --- a/vendor/grammars/oracle.tmbundle +++ b/vendor/grammars/oracle.tmbundle @@ -1 +1 @@ -Subproject commit f5308c9abe377210145ffe606bd8b3ac0088608a +Subproject commit b41e6d33d6a71649d97e497fb1504aa01e7ceb41 diff --git a/vendor/grammars/powershell b/vendor/grammars/powershell index 84fd9726..0d9478d1 160000 --- a/vendor/grammars/powershell +++ b/vendor/grammars/powershell @@ -1 +1 @@ -Subproject commit 84fd97265c93abcd52de5915b4cf1179cc508373 +Subproject commit 0d9478d1175969291741ee46a85445dd34f38d04 diff --git a/vendor/grammars/sublime-nginx b/vendor/grammars/sublime-nginx index eee371d7..872afddd 160000 --- a/vendor/grammars/sublime-nginx +++ b/vendor/grammars/sublime-nginx @@ -1 +1 @@ -Subproject commit eee371d7f4d688c6ccac0322c63506080e873131 +Subproject commit 872afddd2d61acae85560fa009658257f4030244 diff --git a/vendor/grammars/toml.tmbundle b/vendor/grammars/toml.tmbundle index cda2b74d..d261ef63 160000 --- a/vendor/grammars/toml.tmbundle +++ b/vendor/grammars/toml.tmbundle @@ -1 +1 @@ -Subproject commit cda2b74d0d40c841c573eae9c5e9edd7621d8d90 +Subproject commit d261ef630a6025c6ee518762715086bc22209c41 From 7ba4f0c57131de5b9ab4e3f8ae98431465575661 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 27 Feb 2015 13:51:23 -0600 Subject: [PATCH 274/875] Oracle grammar now has a license --- test/test_grammars.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 9026b7ce..c5fbee4e 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -14,8 +14,7 @@ class TestGrammars < Minitest::Test # must have a license that allows redistribution. "vendor/grammars/Sublime-Lasso", "vendor/grammars/Sublime-REBOL", - "vendor/grammars/x86-assembly-textmate-bundle", - "vendor/grammars/oracle.tmbundle" + "vendor/grammars/x86-assembly-textmate-bundle" ].freeze def setup From b358a22d320190d5724797e3a7fc85a39181b894 Mon Sep 17 00:00:00 2001 From: Zach Munro-Cape Date: Fri, 27 Feb 2015 23:02:13 -0400 Subject: [PATCH 275/875] Standardized color hexcode length to 6 C was the only language to have a hex code length of 3. #555555 == #555 == rgb(85, 85, 85) --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4bd9f71c..f93bdbc3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -356,7 +356,7 @@ Bro: C: type: programming - color: "#555" + color: "#555555" extensions: - .c - .cats From 730be65514cac409073ad41faf3599889a3d7ca7 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 28 Feb 2015 16:08:16 +0100 Subject: [PATCH 276/875] Ignore symlinks in repository statistics --- lib/linguist/repository.rb | 4 +- test/fixtures/SVG/alg_schema.link.svg | 1 + test/fixtures/SVG/alg_schema.svg | 269 ++++++++++++++++++++++++++ 3 files changed, 272 insertions(+), 2 deletions(-) create mode 120000 test/fixtures/SVG/alg_schema.link.svg create mode 100644 test/fixtures/SVG/alg_schema.svg diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 895a3754..b45b825d 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -150,9 +150,9 @@ module Linguist next if delta.binary if [:added, :modified].include? delta.status - # Skip submodules + # Skip submodules and symlinks mode = delta.new_file[:mode] - next if (mode & 040000) != 0 + next if (mode & 0040000) != 0 || (mode & 0120000) != 0 blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8)) diff --git a/test/fixtures/SVG/alg_schema.link.svg b/test/fixtures/SVG/alg_schema.link.svg new file mode 120000 index 00000000..2f2cb2e4 --- /dev/null +++ b/test/fixtures/SVG/alg_schema.link.svg @@ -0,0 +1 @@ +alg_schema.svg \ No newline at end of file diff --git a/test/fixtures/SVG/alg_schema.svg b/test/fixtures/SVG/alg_schema.svg new file mode 100644 index 00000000..cd709914 --- /dev/null +++ b/test/fixtures/SVG/alg_schema.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Sequence KEY256 bits + + + + + Salt96 bits Counter32 bits + + + + + AES Cipher + + + + + + + Secure random data128 bits + + + Division by alphabet lengthrepeated passcode-length times. + + + + Passcode2-16 characters + + + + From 7c593899e7a596d283c4ce81faf0b7205a5c287d Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 1 Mar 2015 12:43:35 +0100 Subject: [PATCH 277/875] Make heuristic for Prolog more specific --- lib/linguist/heuristics.rb | 8 +- samples/Perl/exception_handler.pl | 117 ++++++++++++++++++++++++++++++ test/test_heuristics.rb | 6 +- 3 files changed, 125 insertions(+), 6 deletions(-) create mode 100644 samples/Perl/exception_handler.pl diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 2ff8d9fb..eb39a925 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -33,7 +33,7 @@ module Linguist # disambiguate "Perl", "Prolog" do |data| # if data.include?("use strict") # Language["Perl"] - # elsif data.include?(":-") + # elsif /^[^#]+:-/.match(data) # Language["Prolog"] # end # end @@ -94,13 +94,13 @@ module Linguist Language["Perl6"] elsif data.match(/use strict|use\s+v?5\./) Language["Perl"] - elsif data.include?(":-") + elsif /^[^#]+:-/.match(data) Language["Prolog"] end end disambiguate "ECL", "Prolog" do |data| - if data.include?(":-") + if /^[^#]+:-/.match(data) Language["Prolog"] elsif data.include?(":=") Language["ECL"] @@ -108,7 +108,7 @@ module Linguist end disambiguate "IDL", "Prolog", "INI", "QMake" do |data| - if data.include?(":-") + if /^[^#]+:-/.match(data) Language["Prolog"] elsif data.include?("last_client=") Language["INI"] diff --git a/samples/Perl/exception_handler.pl b/samples/Perl/exception_handler.pl new file mode 100644 index 00000000..14807ced --- /dev/null +++ b/samples/Perl/exception_handler.pl @@ -0,0 +1,117 @@ +package exception_handler; +use sigtrap qw(die normal-signals); +use IO::Handle; +use Carp; +use File::Spec; +use File::Basename; +use Data::Dumper; + +use sigtrap 'handler', \&tm_die; + +$Carp::CarpLevel = 1; # How many extra package levels to skip on carp. + +BEGIN { + *CORE::GLOBAL::die = \&tm_die; + $main::SIG{__DIE__} = \&tm_die; + my $error_fd = $ENV{"TM_ERROR_FD"}; + open (TM_ERROR_FD, ">&=$error_fd"); + TM_ERROR_FD->autoflush(1); +} + +sub realwarn { CORE::warn(@_); } +sub realdie { CORE::die(@_); } + +sub longmess { + my ($arg, @rest) = shift; + { + local $@; + # XXX fix require to not clear $@? + # don't use require unless we need to (for Safe compartments) + require Carp::Heavy unless $INC{"Carp/Heavy.pm"}; + } + # Icky backwards compatibility wrapper. :-( + my $call_pack = caller(); + if ($Internal{$call_pack} or $Carp::CarpInternal{$call_pack}) { + return longmess_heavy($arg, @rest); + } + else { + local $Carp::CarpLevel = $Carp::CarpLevel + 1; + return longmess_heavy($arg, @rest); + } +} + +sub longmess_heavy { + return @_ if ref($_[0]); # don't break references as exceptions + my $i = Carp::long_error_loc(); + my ($arg, @rest) = @_; + return ret_backtrace($i, $arg, @rest); +} + +sub quote { + my $str = shift; + $str =~ s/([^A-Za-z0-9\/_.-])/sprintf("%%%02X", ord($1))/seg; + return $str; +} + +sub url_and_display_name { + my $file = shift; + my $url = ""; + my $display_name = ""; + $display_name = basename($file); + $url = 'url=file://' . quote($file); + return ($url, $display_name); +} + +# Returns a full stack backtrace starting from where it is +# told. +sub ret_backtrace { + my ($i, $arg, @rest) = @_; + my $mess; + $i++; + + my $tid_msg = ''; + if (defined &Thread::tid) { + my $tid = Thread->self->tid; + $tid_msg = " thread $tid" if $tid; + } + + my %i = Carp::caller_info($i); + $arg =~ s/\n/\/g; + $i{sub} =~ s/tm_die/die/g; + $mess .= "
\n"; + $mess .= "

$arg

\n"; + $mess .= "
\n"; + my ($url, $display_name) = url_and_display_name($i{file}); + $mess .= "\n"; + while (my %i = Carp::caller_info(++$i)) { + ($url, $display_name) = url_and_display_name($i{file}); + $mess .= "\n"; + } + $mess .= "
$i{sub} in $display_name at line $i{line}$tid_msg
$i{sub} in $display_name at line $i{line}$tid_msg
"; + return $mess; +} + +sub ineval { + (exists $ENV{MOD_PERL} ? 0 : $^S) || Carp::longmess() =~ /eval [\{\']/m +} + +sub htmlize { + my $l = shift; + $l =~ s/&/&/g; + $l =~ s//>/g; + return $l; +} + +sub tm_die { + my ($arg,@rest) = @_; + if (ineval()) { + realdie ($arg,@rest) if ineval(); + } + if (!ref($arg)) { + print TM_ERROR_FD longmess($arg,@rest); + } + exit($!); +} + +1; diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index dcdf3328..b3197c69 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -47,8 +47,10 @@ class TestHeuristcs < Minitest::Test # Candidate languages = ["Perl", "Prolog"] def test_pl_prolog_perl_by_heuristics assert_heuristics({ - "Prolog" => "Prolog/turing.pl", - "Perl" => ["Perl/perl-test.t", "Perl/use5.pl"] + "Prolog" => all_fixtures("Prolog/*.pl"), + "Perl" => all_fixtures("Perl/*.pl"), + "Perl" => ["Perl/perl-test.t"], + "Perl6" => all_fixtures("Perl6/*.pl") }) end From 08945923e651ad36c8896939fdf2e7a506c87759 Mon Sep 17 00:00:00 2001 From: Rejean Loyer Date: Mon, 23 Feb 2015 10:01:13 -0500 Subject: [PATCH 278/875] Add designated color of eC language in lib/linguist/languages.yml for display in repository page's language bar. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0848c24e..bf381d45 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3414,6 +3414,7 @@ desktop: eC: type: programming + color: "#4A4773" search_term: ec extensions: - .ec From c22a6563d953b04e3ae591ad027038aa486c045d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sun, 1 Mar 2015 22:13:26 -0600 Subject: [PATCH 279/875] Writing some (failing) tests for instrumentation --- test/test_instrumentation.rb | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/test_instrumentation.rb diff --git a/test/test_instrumentation.rb b/test/test_instrumentation.rb new file mode 100644 index 00000000..9078680c --- /dev/null +++ b/test/test_instrumentation.rb @@ -0,0 +1,43 @@ +require_relative "./helper" + +class TestInstrumentation < Minitest::Test + include Linguist + + class LocalInstrumenter + Event = Struct.new(:name, :args) + + attr_reader :events + + def initialize + @events = [] + end + + def instrument(name, *args) + @events << Event.new(name, args) + end + end + + def setup + Linguist.instrumenter = LocalInstrumenter.new + end + + def teardown + Linguist.instrumenter = nil + end + + def test_detection_instrumentation_with_binary_blob + binary_blob = fixture_blob("Binary/octocat.ai") + Language.detect(binary_blob) + + # Shouldn't instrument this (as it's binary) + assert_equal 0, Linguist.instrumenter.events.size + end + + def test_modeline_instrumentation + blob = fixture_blob("Data/Modelines/ruby") + Language.detect(blob) + + assert_equal 3, Linguist.instrumenter.events.size + assert_equal "linguist.detected", Linguist.instrumenter.events.last.name + end +end From 4efc3ff822139868c36afeefbbe3c1e92898d1de Mon Sep 17 00:00:00 2001 From: Simon Cooksey Date: Mon, 2 Mar 2015 17:04:18 +0000 Subject: [PATCH 280/875] Add colour for XMOS XC in linguist Adds a colour matching the XMOS colour scheme for .xc files. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index bf381d45..70d52869 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3234,6 +3234,7 @@ WebIDL: XC: type: programming + color: "#99DA07" extensions: - .xc tm_scope: source.c From eaea6ac837203a4ef4fd79239d17a752d8cd2371 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Mar 2015 18:09:09 +0100 Subject: [PATCH 281/875] QML as a programming language --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0848c24e..c4c24539 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2487,7 +2487,7 @@ Python traceback: ace_mode: text QML: - type: markup + type: programming color: "#44a51c" extensions: - .qml From e5ce286c632ede86640da881bad93e9f7d490e07 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Mar 2015 21:55:41 +0100 Subject: [PATCH 282/875] NL file format with .nl extension --- lib/linguist/languages.yml | 7 ++++ samples/NL/assign0.nl | 84 ++++++++++++++++++++++++++++++++++++++ samples/NewLisp/queens.nl | 49 ++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 samples/NL/assign0.nl create mode 100644 samples/NewLisp/queens.nl diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 70d52869..65f012c3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1923,6 +1923,13 @@ Myghty: tm_scope: none ace_mode: text +NL: + type: data + extensions: + - .nl + tm_scope: none + ace_mode: text + NSIS: type: programming extensions: diff --git a/samples/NL/assign0.nl b/samples/NL/assign0.nl new file mode 100644 index 00000000..9f1c58cf --- /dev/null +++ b/samples/NL/assign0.nl @@ -0,0 +1,84 @@ +g3 0 1 0 # problem assign0 + 9 6 1 0 6 # vars, constraints, objectives, ranges, eqns + 0 0 # nonlinear constraints, objectives + 0 0 # network constraints: nonlinear, linear + 0 0 0 # nonlinear vars in constraints, objectives, both + 0 0 0 1 # linear network variables; functions; arith, flags + 9 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o) + 18 9 # nonzeros in Jacobian, gradients + 0 0 # max name lengths: constraints, variables + 0 0 0 0 0 # common exprs: b,c,o,c1,o1 +C0 +n0 +C1 +n0 +C2 +n0 +C3 +n0 +C4 +n0 +C5 +n0 +O0 0 +n0 +r +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +b +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +k8 +2 +4 +6 +8 +10 +12 +14 +16 +J0 3 +0 1 +1 1 +2 1 +J1 3 +3 1 +4 1 +5 1 +J2 3 +6 1 +7 1 +8 1 +J3 3 +0 1 +3 1 +6 1 +J4 3 +1 1 +4 1 +7 1 +J5 3 +2 1 +5 1 +8 1 +G0 9 +0 1 +1 3 +2 3 +3 2 +4 3 +5 3 +6 3 +7 3 +8 2 diff --git a/samples/NewLisp/queens.nl b/samples/NewLisp/queens.nl new file mode 100644 index 00000000..61c04992 --- /dev/null +++ b/samples/NewLisp/queens.nl @@ -0,0 +1,49 @@ +#!/usr/bin/env newlisp + +(constant 'NUM 8) + +(define (intersects? q1 q2) + (or + (= (q1 0) (q2 0)) + (= (q1 1) (q2 1)) + (= (abs (- (q1 0) (q2 0))) (abs (- (q1 1) (q2 1)))))) + +(define (variant? alist) + (set 'logic nil) + (cond + ((= (length alist) 1) true) + ((> (length alist) 1) + (while (> (length alist) 1) + (set 'q (pop alist -1)) + (dolist (el alist) + (push + (intersects? + (list q (inc (length alist))) + (list el (+ 1 $idx))) + logic -1))) + (not (apply or logic))))) + +(define (fork-by-line alist) + (let (res '()) + (dolist (i (sequence 1 NUM)) + (set 'tmp alist) + (push i tmp -1) + (setf res (push tmp res -1))) + res)) + +(define (find-variants num) + (let (res '()) + (cond + ((< num 1) + (begin (println "num < 1") (exit))) + ((= num 1) + (dolist (i (sequence 1 NUM)) (push (list i) res -1))) + ((> num 1) + (dolist (v (find-variants (dec num))) + (set 'passed (filter variant? (fork-by-line v))) + (if (not (empty? passed)) (extend res passed))))) + res)) + +(set 'solutions (find-variants NUM)) +(println (length solutions)) +;;(exit) \ No newline at end of file From cc0c71b2776d0ec7d962cffc6e6e3cebfb2cc295 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 2 Mar 2015 22:13:17 +0100 Subject: [PATCH 283/875] New sample for NL --- samples/NL/balassign0.nl | 2284 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 2284 insertions(+) create mode 100644 samples/NL/balassign0.nl diff --git a/samples/NL/balassign0.nl b/samples/NL/balassign0.nl new file mode 100644 index 00000000..59d5690b --- /dev/null +++ b/samples/NL/balassign0.nl @@ -0,0 +1,2284 @@ +g3 2 1 0 # problem balassign0 + 160 121 1 0 26 # vars, constraints, objectives, ranges, eqns + 0 0 # nonlinear constraints, objectives + 0 0 # network constraints: nonlinear, linear + 0 0 0 # nonlinear vars in constraints, objectives, both + 0 0 0 1 # linear network variables; functions; arith, flags + 130 30 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o) + 1435 30 # nonzeros in Jacobian, gradients + 0 0 # max name lengths: constraints, variables + 0 0 0 0 0 # common exprs: b,c,o,c1,o1 +C0 +n0 +C1 +n0 +C2 +n0 +C3 +n0 +C4 +n0 +C5 +n0 +C6 +n0 +C7 +n0 +C8 +n0 +C9 +n0 +C10 +n0 +C11 +n0 +C12 +n0 +C13 +n0 +C14 +n0 +C15 +n0 +C16 +n0 +C17 +n0 +C18 +n0 +C19 +n0 +C20 +n0 +C21 +n0 +C22 +n0 +C23 +n0 +C24 +n0 +C25 +n0 +C26 +n0 +C27 +n0 +C28 +n0 +C29 +n0 +C30 +n0 +C31 +n0 +C32 +n0 +C33 +n0 +C34 +n0 +C35 +n0 +C36 +n0 +C37 +n0 +C38 +n0 +C39 +n0 +C40 +n0 +C41 +n0 +C42 +n0 +C43 +n0 +C44 +n0 +C45 +n0 +C46 +n0 +C47 +n0 +C48 +n0 +C49 +n0 +C50 +n0 +C51 +n0 +C52 +n0 +C53 +n0 +C54 +n0 +C55 +n0 +C56 +n0 +C57 +n0 +C58 +n0 +C59 +n0 +C60 +n0 +C61 +n0 +C62 +n0 +C63 +n0 +C64 +n0 +C65 +n0 +C66 +n0 +C67 +n0 +C68 +n0 +C69 +n0 +C70 +n0 +C71 +n0 +C72 +n0 +C73 +n0 +C74 +n0 +C75 +n0 +C76 +n0 +C77 +n0 +C78 +n0 +C79 +n0 +C80 +n0 +C81 +n0 +C82 +n0 +C83 +n0 +C84 +n0 +C85 +n0 +C86 +n0 +C87 +n0 +C88 +n0 +C89 +n0 +C90 +n0 +C91 +n0 +C92 +n0 +C93 +n0 +C94 +n0 +C95 +n0 +C96 +n0 +C97 +n0 +C98 +n0 +C99 +n0 +C100 +n0 +C101 +n0 +C102 +n0 +C103 +n0 +C104 +n0 +C105 +n0 +C106 +n0 +C107 +n0 +C108 +n0 +C109 +n0 +C110 +n0 +C111 +n0 +C112 +n0 +C113 +n0 +C114 +n0 +C115 +n0 +C116 +n0 +C117 +n0 +C118 +n0 +C119 +n0 +C120 +n0 +O0 0 +n0 +r +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +1 0 +1 0 +1 0 +1 0 +1 0 +2 0 +2 0 +2 0 +2 0 +2 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +b +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +1 5 +2 6 +1 4 +1 0 +1 0 +1 0 +1 1 +1 0 +1 2 +1 0 +1 0 +1 4 +1 0 +1 2 +1 2 +1 0 +2 4 +2 1 +2 1 +2 1 +2 2 +2 1 +2 3 +2 1 +2 1 +2 5 +2 1 +2 3 +2 3 +2 1 +k159 +11 +22 +33 +44 +55 +64 +73 +82 +91 +100 +111 +122 +133 +144 +155 +166 +177 +188 +199 +210 +220 +230 +240 +250 +260 +270 +280 +290 +300 +310 +321 +332 +343 +354 +365 +375 +385 +395 +405 +415 +425 +435 +445 +455 +465 +476 +487 +498 +509 +520 +531 +542 +553 +564 +575 +586 +597 +608 +619 +630 +641 +652 +663 +674 +685 +696 +707 +718 +729 +740 +749 +758 +767 +776 +785 +796 +807 +818 +829 +840 +850 +860 +870 +880 +890 +899 +908 +917 +926 +935 +945 +955 +965 +975 +985 +995 +1005 +1015 +1025 +1035 +1046 +1057 +1068 +1079 +1090 +1099 +1108 +1117 +1126 +1135 +1146 +1157 +1168 +1179 +1190 +1201 +1212 +1223 +1234 +1245 +1255 +1265 +1275 +1285 +1295 +1304 +1313 +1322 +1331 +1340 +1345 +1350 +1355 +1355 +1355 +1355 +1360 +1360 +1365 +1365 +1365 +1370 +1370 +1375 +1380 +1380 +1385 +1390 +1390 +1395 +1400 +1400 +1405 +1410 +1410 +1415 +1420 +1425 +1430 +J0 5 +0 1 +1 1 +2 1 +3 1 +4 1 +J1 5 +5 1 +6 1 +7 1 +8 1 +9 1 +J2 5 +10 1 +11 1 +12 1 +13 1 +14 1 +J3 5 +15 1 +16 1 +17 1 +18 1 +19 1 +J4 5 +20 1 +21 1 +22 1 +23 1 +24 1 +J5 5 +25 1 +26 1 +27 1 +28 1 +29 1 +J6 5 +30 1 +31 1 +32 1 +33 1 +34 1 +J7 5 +35 1 +36 1 +37 1 +38 1 +39 1 +J8 5 +40 1 +41 1 +42 1 +43 1 +44 1 +J9 5 +45 1 +46 1 +47 1 +48 1 +49 1 +J10 5 +50 1 +51 1 +52 1 +53 1 +54 1 +J11 5 +55 1 +56 1 +57 1 +58 1 +59 1 +J12 5 +60 1 +61 1 +62 1 +63 1 +64 1 +J13 5 +65 1 +66 1 +67 1 +68 1 +69 1 +J14 5 +70 1 +71 1 +72 1 +73 1 +74 1 +J15 5 +75 1 +76 1 +77 1 +78 1 +79 1 +J16 5 +80 1 +81 1 +82 1 +83 1 +84 1 +J17 5 +85 1 +86 1 +87 1 +88 1 +89 1 +J18 5 +90 1 +91 1 +92 1 +93 1 +94 1 +J19 5 +95 1 +96 1 +97 1 +98 1 +99 1 +J20 5 +100 1 +101 1 +102 1 +103 1 +104 1 +J21 5 +105 1 +106 1 +107 1 +108 1 +109 1 +J22 5 +110 1 +111 1 +112 1 +113 1 +114 1 +J23 5 +115 1 +116 1 +117 1 +118 1 +119 1 +J24 5 +120 1 +121 1 +122 1 +123 1 +124 1 +J25 5 +125 1 +126 1 +127 1 +128 1 +129 1 +J26 27 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +130 1 +J27 27 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +130 1 +J28 27 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +130 1 +J29 27 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +130 1 +J30 27 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +130 1 +J31 27 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +131 1 +J32 27 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +131 1 +J33 27 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +131 1 +J34 27 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +131 1 +J35 27 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +131 1 +J36 21 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +75 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +132 1 +J37 9 +0 -1 +10 -1 +45 -1 +70 -1 +75 -1 +90 -1 +95 -1 +100 -1 +136 1 +J38 15 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +110 -1 +115 -1 +120 -1 +138 1 +J39 25 +0 -1 +5 -1 +10 -1 +15 -1 +25 -1 +30 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +141 1 +J40 13 +0 -1 +10 -1 +20 -1 +30 -1 +35 -1 +40 -1 +45 -1 +70 -1 +75 -1 +85 -1 +100 -1 +125 -1 +143 1 +J41 12 +5 -1 +15 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +90 -1 +95 -1 +110 -1 +115 -1 +144 1 +J42 21 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +76 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +132 1 +J43 9 +1 -1 +11 -1 +46 -1 +71 -1 +76 -1 +91 -1 +96 -1 +101 -1 +136 1 +J44 15 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +111 -1 +116 -1 +121 -1 +138 1 +J45 25 +1 -1 +6 -1 +11 -1 +16 -1 +26 -1 +31 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +141 1 +J46 13 +1 -1 +11 -1 +21 -1 +31 -1 +36 -1 +41 -1 +46 -1 +71 -1 +76 -1 +86 -1 +101 -1 +126 -1 +143 1 +J47 12 +6 -1 +16 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +91 -1 +96 -1 +111 -1 +116 -1 +144 1 +J48 21 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +77 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +132 1 +J49 9 +2 -1 +12 -1 +47 -1 +72 -1 +77 -1 +92 -1 +97 -1 +102 -1 +136 1 +J50 15 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +112 -1 +117 -1 +122 -1 +138 1 +J51 25 +2 -1 +7 -1 +12 -1 +17 -1 +27 -1 +32 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +141 1 +J52 13 +2 -1 +12 -1 +22 -1 +32 -1 +37 -1 +42 -1 +47 -1 +72 -1 +77 -1 +87 -1 +102 -1 +127 -1 +143 1 +J53 12 +7 -1 +17 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +92 -1 +97 -1 +112 -1 +117 -1 +144 1 +J54 21 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +78 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +132 1 +J55 9 +3 -1 +13 -1 +48 -1 +73 -1 +78 -1 +93 -1 +98 -1 +103 -1 +136 1 +J56 15 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +113 -1 +118 -1 +123 -1 +138 1 +J57 25 +3 -1 +8 -1 +13 -1 +18 -1 +28 -1 +33 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +141 1 +J58 13 +3 -1 +13 -1 +23 -1 +33 -1 +38 -1 +43 -1 +48 -1 +73 -1 +78 -1 +88 -1 +103 -1 +128 -1 +143 1 +J59 12 +8 -1 +18 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +93 -1 +98 -1 +113 -1 +118 -1 +144 1 +J60 21 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +79 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +132 1 +J61 9 +4 -1 +14 -1 +49 -1 +74 -1 +79 -1 +94 -1 +99 -1 +104 -1 +136 1 +J62 15 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +114 -1 +119 -1 +124 -1 +138 1 +J63 25 +4 -1 +9 -1 +14 -1 +19 -1 +29 -1 +34 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +141 1 +J64 13 +4 -1 +14 -1 +24 -1 +34 -1 +39 -1 +44 -1 +49 -1 +74 -1 +79 -1 +89 -1 +104 -1 +129 -1 +143 1 +J65 12 +9 -1 +19 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +94 -1 +99 -1 +114 -1 +119 -1 +144 1 +J66 21 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +75 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +146 1 +J67 4 +40 -1 +85 -1 +90 -1 +147 1 +J68 3 +80 -1 +95 -1 +149 1 +J69 9 +0 -1 +10 -1 +45 -1 +70 -1 +75 -1 +90 -1 +95 -1 +100 -1 +150 1 +J70 15 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +110 -1 +115 -1 +120 -1 +152 1 +J71 3 +85 -1 +105 -1 +153 1 +J72 25 +0 -1 +5 -1 +10 -1 +15 -1 +25 -1 +30 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +155 1 +J73 3 +20 -1 +35 -1 +156 1 +J74 13 +0 -1 +10 -1 +20 -1 +30 -1 +35 -1 +40 -1 +45 -1 +70 -1 +75 -1 +85 -1 +100 -1 +125 -1 +157 1 +J75 12 +5 -1 +15 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +90 -1 +95 -1 +110 -1 +115 -1 +158 1 +J76 4 +25 -1 +105 -1 +120 -1 +159 1 +J77 21 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +76 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +146 1 +J78 4 +41 -1 +86 -1 +91 -1 +147 1 +J79 3 +81 -1 +96 -1 +149 1 +J80 9 +1 -1 +11 -1 +46 -1 +71 -1 +76 -1 +91 -1 +96 -1 +101 -1 +150 1 +J81 15 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +111 -1 +116 -1 +121 -1 +152 1 +J82 3 +86 -1 +106 -1 +153 1 +J83 25 +1 -1 +6 -1 +11 -1 +16 -1 +26 -1 +31 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +155 1 +J84 3 +21 -1 +36 -1 +156 1 +J85 13 +1 -1 +11 -1 +21 -1 +31 -1 +36 -1 +41 -1 +46 -1 +71 -1 +76 -1 +86 -1 +101 -1 +126 -1 +157 1 +J86 12 +6 -1 +16 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +91 -1 +96 -1 +111 -1 +116 -1 +158 1 +J87 4 +26 -1 +106 -1 +121 -1 +159 1 +J88 21 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +77 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +146 1 +J89 4 +42 -1 +87 -1 +92 -1 +147 1 +J90 3 +82 -1 +97 -1 +149 1 +J91 9 +2 -1 +12 -1 +47 -1 +72 -1 +77 -1 +92 -1 +97 -1 +102 -1 +150 1 +J92 15 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +112 -1 +117 -1 +122 -1 +152 1 +J93 3 +87 -1 +107 -1 +153 1 +J94 25 +2 -1 +7 -1 +12 -1 +17 -1 +27 -1 +32 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +155 1 +J95 3 +22 -1 +37 -1 +156 1 +J96 13 +2 -1 +12 -1 +22 -1 +32 -1 +37 -1 +42 -1 +47 -1 +72 -1 +77 -1 +87 -1 +102 -1 +127 -1 +157 1 +J97 12 +7 -1 +17 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +92 -1 +97 -1 +112 -1 +117 -1 +158 1 +J98 4 +27 -1 +107 -1 +122 -1 +159 1 +J99 21 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +78 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +146 1 +J100 4 +43 -1 +88 -1 +93 -1 +147 1 +J101 3 +83 -1 +98 -1 +149 1 +J102 9 +3 -1 +13 -1 +48 -1 +73 -1 +78 -1 +93 -1 +98 -1 +103 -1 +150 1 +J103 15 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +113 -1 +118 -1 +123 -1 +152 1 +J104 3 +88 -1 +108 -1 +153 1 +J105 25 +3 -1 +8 -1 +13 -1 +18 -1 +28 -1 +33 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +155 1 +J106 3 +23 -1 +38 -1 +156 1 +J107 13 +3 -1 +13 -1 +23 -1 +33 -1 +38 -1 +43 -1 +48 -1 +73 -1 +78 -1 +88 -1 +103 -1 +128 -1 +157 1 +J108 12 +8 -1 +18 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +93 -1 +98 -1 +113 -1 +118 -1 +158 1 +J109 4 +28 -1 +108 -1 +123 -1 +159 1 +J110 21 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +79 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +146 1 +J111 4 +44 -1 +89 -1 +94 -1 +147 1 +J112 3 +84 -1 +99 -1 +149 1 +J113 9 +4 -1 +14 -1 +49 -1 +74 -1 +79 -1 +94 -1 +99 -1 +104 -1 +150 1 +J114 15 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +114 -1 +119 -1 +124 -1 +152 1 +J115 3 +89 -1 +109 -1 +153 1 +J116 25 +4 -1 +9 -1 +14 -1 +19 -1 +29 -1 +34 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +155 1 +J117 3 +24 -1 +39 -1 +156 1 +J118 13 +4 -1 +14 -1 +24 -1 +34 -1 +39 -1 +44 -1 +49 -1 +74 -1 +79 -1 +89 -1 +104 -1 +129 -1 +157 1 +J119 12 +9 -1 +19 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +94 -1 +99 -1 +114 -1 +119 -1 +158 1 +J120 4 +29 -1 +109 -1 +124 -1 +159 1 +G0 30 +130 -1 +131 1 +132 -1 +133 -1 +134 -1 +135 -1 +136 -1 +137 -1 +138 -1 +139 -1 +140 -1 +141 -1 +142 -1 +143 -1 +144 -1 +145 -1 +146 1 +147 1 +148 1 +149 1 +150 1 +151 1 +152 1 +153 1 +154 1 +155 1 +156 1 +157 1 +158 1 +159 1 From 7f3f0327c2e497921d3fd5ad1cf5554ced932e89 Mon Sep 17 00:00:00 2001 From: Simon Cooksey Date: Tue, 3 Mar 2015 12:45:08 +0000 Subject: [PATCH 284/875] Added XC syntax --- .gitmodules | 3 +++ grammars.yml | 4 ++++ lib/linguist/languages.yml | 2 +- vendor/grammars/xc.tmbundle | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/xc.tmbundle diff --git a/.gitmodules b/.gitmodules index 59844ad5..6990a425 100644 --- a/.gitmodules +++ b/.gitmodules @@ -642,3 +642,6 @@ [submodule "vendor/grammars/sublime-varnish"] path = vendor/grammars/sublime-varnish url = https://github.com/brandonwamboldt/sublime-varnish +[submodule "vendor/grammars/xc.tmbundle"] + path = vendor/grammars/xc.tmbundle + url = https://github.com/graymalkin/xc.tmbundle diff --git a/grammars.yml b/grammars.yml index 9edb205c..695dbd44 100644 --- a/grammars.yml +++ b/grammars.yml @@ -530,6 +530,10 @@ vendor/grammars/verilog.tmbundle: - source.verilog vendor/grammars/x86-assembly-textmate-bundle: - source.asm.x86 +vendor/grammars/xc.tmbundle/: +- source.c +- source.c.platform +- source.xc vendor/grammars/xml.tmbundle: - text.xml - text.xml.xsl diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 70d52869..6c6f0a65 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3237,7 +3237,7 @@ XC: color: "#99DA07" extensions: - .xc - tm_scope: source.c + tm_scope: source.xc ace_mode: c_cpp XML: diff --git a/vendor/grammars/xc.tmbundle b/vendor/grammars/xc.tmbundle new file mode 160000 index 00000000..83a61a26 --- /dev/null +++ b/vendor/grammars/xc.tmbundle @@ -0,0 +1 @@ +Subproject commit 83a61a26308208ee95354965fe023954c11b6e30 From 3a56d632e1456301424d6955842b8f5a22229f52 Mon Sep 17 00:00:00 2001 From: Simon Cooksey Date: Tue, 3 Mar 2015 13:02:58 +0000 Subject: [PATCH 285/875] Fixed build by removing duplicate C syntax definition --- grammars.yml | 2 -- vendor/grammars/xc.tmbundle | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/grammars.yml b/grammars.yml index 695dbd44..048f7da8 100644 --- a/grammars.yml +++ b/grammars.yml @@ -531,8 +531,6 @@ vendor/grammars/verilog.tmbundle: vendor/grammars/x86-assembly-textmate-bundle: - source.asm.x86 vendor/grammars/xc.tmbundle/: -- source.c -- source.c.platform - source.xc vendor/grammars/xml.tmbundle: - text.xml diff --git a/vendor/grammars/xc.tmbundle b/vendor/grammars/xc.tmbundle index 83a61a26..7239c92b 160000 --- a/vendor/grammars/xc.tmbundle +++ b/vendor/grammars/xc.tmbundle @@ -1 +1 @@ -Subproject commit 83a61a26308208ee95354965fe023954c11b6e30 +Subproject commit 7239c92bd612b01fc5bfea36056d530db78d6c64 From c7b4cf636f821955354a4958e943c018cdf7b816 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 4 Mar 2015 21:25:12 +0100 Subject: [PATCH 286/875] GLSL should not be in the C group. --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 52bbaa36..9f2a742a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -994,7 +994,6 @@ GDScript: ace_mode: text GLSL: - group: C type: programming extensions: - .glsl From 781133d0d3bf33da1d2c156706cf99315d15d6b9 Mon Sep 17 00:00:00 2001 From: Mark Tareshawty Date: Wed, 4 Mar 2015 19:42:32 -0500 Subject: [PATCH 287/875] assign handlebars a color --- lib/linguist/languages.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 52bbaa36..2803553b 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1258,6 +1258,7 @@ Haml: Handlebars: type: markup + color: "#fe5629" aliases: - hbs - htmlbars @@ -2202,7 +2203,7 @@ PHP: aliases: - inc -#Oracle +#Oracle PLSQL: type: programming ace_mode: sql @@ -2214,7 +2215,7 @@ PLSQL: - .plb - .sql -#Postgres +#Postgres PLpgSQL: type: programming ace_mode: pgsql From 2d5476f6c844fcae21858c39c8a120e2d3fdf632 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 5 Mar 2015 10:01:28 -0800 Subject: [PATCH 288/875] Yield the block in LocalInstrumenter --- test/test_instrumentation.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/test/test_instrumentation.rb b/test/test_instrumentation.rb index 9078680c..b9e5c3e9 100644 --- a/test/test_instrumentation.rb +++ b/test/test_instrumentation.rb @@ -14,6 +14,7 @@ class TestInstrumentation < Minitest::Test def instrument(name, *args) @events << Event.new(name, args) + yield end end From e8326529b5121f80c80b58216c554f5de4982cd6 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 5 Mar 2015 10:03:01 -0800 Subject: [PATCH 289/875] Pass blob to instrumentation --- lib/linguist/language.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index bf0dfc33..e0e35602 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -105,7 +105,7 @@ module Linguist # Bail early if the blob is binary or empty. return nil if blob.likely_binary? || blob.binary? || blob.empty? - Linguist.instrument("linguist.detection") do + Linguist.instrument("linguist.detection", :blob => blob) do # Call each strategy until one candidate is returned. languages = [] strategy = nil From 3dcdc11c1b6cf28c2b78d2dba83de4cfce58d132 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 5 Mar 2015 10:03:51 -0800 Subject: [PATCH 290/875] Avoid passing block to detected instrumenter --- lib/linguist/language.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index e0e35602..6c551bf7 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -125,9 +125,9 @@ module Linguist end end - Linguist.instrument("linguist.detected", :blob => blob, :strategy => strategy, :language => languages.first) do - languages.first - end + Linguist.instrument("linguist.detected", :blob => blob, :strategy => strategy, :language => languages.first) + + languages.first end end From 7fdead01009570298d4d6777192880b2d1422a90 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 5 Mar 2015 10:11:08 -0800 Subject: [PATCH 291/875] Only yield if block given --- test/test_instrumentation.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_instrumentation.rb b/test/test_instrumentation.rb index b9e5c3e9..9fd5dc66 100644 --- a/test/test_instrumentation.rb +++ b/test/test_instrumentation.rb @@ -14,7 +14,7 @@ class TestInstrumentation < Minitest::Test def instrument(name, *args) @events << Event.new(name, args) - yield + yield if block_given? end end From 1bc1803628e5b74d813d2db46ffd0756d6c582f3 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 5 Mar 2015 12:50:12 -0600 Subject: [PATCH 292/875] Check for block here too --- lib/linguist.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist.rb b/lib/linguist.rb index 4419ff5b..3929efb9 100644 --- a/lib/linguist.rb +++ b/lib/linguist.rb @@ -14,7 +14,7 @@ class << Linguist if instrumenter instrumenter.instrument(*args, &bk) else - yield + yield if block_given? end end end From 19a300a4ba214816f5047e9aed9821a04cb130b4 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Thu, 5 Mar 2015 20:14:15 +0100 Subject: [PATCH 293/875] Description of group attribute --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 52bbaa36..36b5adcd 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -18,6 +18,8 @@ # language. This should match one of the scopes listed in # the grammars.yml file. Use "none" if there is no grammar # for this language. +# group - Name of the parent language. Languages in a group are counted +# in the statistics as the parent language. # # Any additions or modifications (even trivial) should have corresponding # test change in `test/test_blob.rb`. From a1010b8cf810f09a066937011928d2d4ebc00415 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 5 Mar 2015 13:21:07 -0600 Subject: [PATCH 294/875] Actually return the strategy --- lib/linguist/language.rb | 5 +++-- test/test_instrumentation.rb | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 6c551bf7..a1ff3318 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -108,9 +108,10 @@ module Linguist Linguist.instrument("linguist.detection", :blob => blob) do # Call each strategy until one candidate is returned. languages = [] - strategy = nil + returning_strategy = nil STRATEGIES.each do |strategy| + returning_strategy = strategy candidates = Linguist.instrument("linguist.strategy", :blob => blob, :strategy => strategy, :candidates => languages) do strategy.call(blob, languages) end @@ -125,7 +126,7 @@ module Linguist end end - Linguist.instrument("linguist.detected", :blob => blob, :strategy => strategy, :language => languages.first) + Linguist.instrument("linguist.detected", :blob => blob, :strategy => returning_strategy, :language => languages.first) languages.first end diff --git a/test/test_instrumentation.rb b/test/test_instrumentation.rb index 9fd5dc66..ab0615e5 100644 --- a/test/test_instrumentation.rb +++ b/test/test_instrumentation.rb @@ -38,7 +38,13 @@ class TestInstrumentation < Minitest::Test blob = fixture_blob("Data/Modelines/ruby") Language.detect(blob) + detect_event = Linguist.instrumenter.events.last + detect_event_payload = detect_event[:args].first + assert_equal 3, Linguist.instrumenter.events.size - assert_equal "linguist.detected", Linguist.instrumenter.events.last.name + assert_equal "linguist.detected", detect_event.name + assert_equal Language['Ruby'], detect_event_payload[:language] + assert_equal blob, detect_event_payload[:blob] + assert_equal Linguist::Strategy::Modeline, detect_event_payload[:strategy] end end From 44f505e687f06981fe02a660aafddf476ba3180e Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 5 Mar 2015 15:08:05 -0600 Subject: [PATCH 295/875] Grammars update --- vendor/grammars/NimLime | 2 +- vendor/grammars/PHP-Twig.tmbundle | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/grace-tmbundle | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/mercury-tmlanguage | 2 +- vendor/grammars/restructuredtext.tmbundle | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index fac6b182..ae0b75d9 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit fac6b182e8a92a65c9e144c578948d7b51048f26 +Subproject commit ae0b75d99a60f555e1b5cbab53eaed2ca9ca9101 diff --git a/vendor/grammars/PHP-Twig.tmbundle b/vendor/grammars/PHP-Twig.tmbundle index ad0f5147..f4f7529a 160000 --- a/vendor/grammars/PHP-Twig.tmbundle +++ b/vendor/grammars/PHP-Twig.tmbundle @@ -1 +1 @@ -Subproject commit ad0f5147e6d7ae70469084659cffcfd22575869e +Subproject commit f4f7529ac2a07527caa7c9154b87c96d17e18aa1 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index e1b78aac..6f4e954f 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit e1b78aacb6b0ab8b4c26ea897b128335f8ed939c +Subproject commit 6f4e954f35976f72f2a620af68aa0ba73e48478b diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 21096f24..65c9cd9a 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 21096f24d8a34668d54ad31b8902ab5c709c1c07 +Subproject commit 65c9cd9a6540f6e47e5770314e13de7df05b2d2b diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index 9c63ff09..99910870 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit 9c63ff09bd411d3e5c5a737145fc33d288804c9c +Subproject commit 99910870bb1cd095fc0af9010f018f1ae9e95b4e diff --git a/vendor/grammars/factor b/vendor/grammars/factor index fe2c2d23..e237b49f 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit fe2c2d23de9e300d7cd1b04e139dfbdd2069d00a +Subproject commit e237b49f83c12aff3070c570404ef6bb19d1cc95 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index a008fe9c..513db1c4 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit a008fe9c64d454132941eb72334c52e4ad93266e +Subproject commit 513db1c44390c4967afe4dd220b9ec4f6a52cc3e diff --git a/vendor/grammars/grace-tmbundle b/vendor/grammars/grace-tmbundle index 6bea212a..2fba162c 160000 --- a/vendor/grammars/grace-tmbundle +++ b/vendor/grammars/grace-tmbundle @@ -1 +1 @@ -Subproject commit 6bea212a5843e152cd605ec6075eb7352cbeaf0d +Subproject commit 2fba162ce7cfb37421acb097be6aa31aaf414155 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 50c5aa0e..84a4fab1 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 50c5aa0e10f277f83dfe3d0e269a1043271be4df +Subproject commit 84a4fab144c185f4430f68cf10de35a7dfc79cb7 diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 5f5df306..6ca2ea2a 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 5f5df3064c9dccbfd8dac8d260b0d4a843ac88a5 +Subproject commit 6ca2ea2ac50fe02cde1bcec114c66101129daab6 diff --git a/vendor/grammars/mercury-tmlanguage b/vendor/grammars/mercury-tmlanguage index 1cb8e949..cb57d42d 160000 --- a/vendor/grammars/mercury-tmlanguage +++ b/vendor/grammars/mercury-tmlanguage @@ -1 +1 @@ -Subproject commit 1cb8e94922803658040bc29aa732c1671e2afe5b +Subproject commit cb57d42dbe343d3809c3dd7946f28f6354a2687e diff --git a/vendor/grammars/restructuredtext.tmbundle b/vendor/grammars/restructuredtext.tmbundle index 43fc7b1f..608d8bcd 160000 --- a/vendor/grammars/restructuredtext.tmbundle +++ b/vendor/grammars/restructuredtext.tmbundle @@ -1 +1 @@ -Subproject commit 43fc7b1ff351d6733f7ce136aafe3091e77b4347 +Subproject commit 608d8bcdea179d4bf3def6244e0d9cf7705f2fea From bdb2a221a5ca81b8a75028a0aa5efbb33d26e2a8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 5 Mar 2015 15:13:54 -0600 Subject: [PATCH 296/875] Bumping version to 4.4.3 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 86dd6961..9a84798b 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.4.2" + VERSION = "4.4.3" end From 0d848b342fac474e754b3d969cbef821f9157510 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 6 Mar 2015 07:07:41 +0100 Subject: [PATCH 297/875] .jbuilder as a Ruby extension --- lib/linguist/languages.yml | 1 + samples/Ruby/index.json.jbuilder | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 samples/Ruby/index.json.jbuilder diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9f2a742a..1cc8f347 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2666,6 +2666,7 @@ Ruby: - .gemspec - .god - .irbrc + - .jbuilder - .mspec - .pluginspec - .podspec diff --git a/samples/Ruby/index.json.jbuilder b/samples/Ruby/index.json.jbuilder new file mode 100644 index 00000000..26c7bc67 --- /dev/null +++ b/samples/Ruby/index.json.jbuilder @@ -0,0 +1,4 @@ +json.array!(@courts) do |court| + json.extract! court, :id, :name_r, :region, :region_r, :email, :website + json.url court_url(court, format: :json) +end From 0157b9eb3762d4f27f63c48187c5faf334777cd2 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 6 Mar 2015 07:38:54 +0100 Subject: [PATCH 298/875] .vhost as a Nginx extension --- lib/linguist/languages.yml | 3 + samples/Nginx/example.com.vhost | 242 ++++++++++++++++++++++++++++++++ 2 files changed, 245 insertions(+) create mode 100644 samples/Nginx/example.com.vhost diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9f2a742a..5a841087 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1968,6 +1968,9 @@ Nginx: type: markup extensions: - .nginxconf + - .vhost + filenames: + - nginx.conf tm_scope: source.nginx aliases: - nginx configuration file diff --git a/samples/Nginx/example.com.vhost b/samples/Nginx/example.com.vhost new file mode 100644 index 00000000..ed0c40d9 --- /dev/null +++ b/samples/Nginx/example.com.vhost @@ -0,0 +1,242 @@ +# Move the www people to no-www +server { + listen 80; + server_name www.example.com; + return 301 $scheme://example.com$request_uri; +} + +server { + listen 80; + listen 443 ssl; + server_name example.com; + + # Certs sent to the client in SERVER HELLO are concatenated in ssl_certificate + ssl_certificate /srv/www/example.com/ssl/example.com.crt; + ssl_certificate_key /srv/www/example.com/ssl/example.com.key; + + # Allow multiple connections to use the same key data + ssl_session_timeout 5m; + ssl_session_cache shared:SSL:50m; + + # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits + ssl_dhparam /etc/ssl/certs/dhparam.pem; + + # Intermediate configuration. tweak to your needs + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + include snippets/ssl_ciphers_intermediate.conf; + ssl_prefer_server_ciphers on; + + # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) + #add_header Strict-Transport-Security max-age=15768000; + + # OCSP Stapling - fetch OCSP records from URL in ssl_certificate and cache them + ssl_stapling on; + ssl_stapling_verify on; + + # Verify chain of trust of OCSP response using Root CA and Intermediate certs + ssl_trusted_certificate /srv/www/example.com/ssl/unified-ssl.crt; + resolver 8.8.8.8 8.8.4.4; + resolver_timeout 10s; + + root /srv/www/example.com/htdocs; + index index.php index.html index.htm; + charset UTF-8; + autoindex off; + + # Deny access based on HTTP method (set in HTTP level) + if ($bad_method = 1) { + return 444; + } + + # Show "Not Found" 404 errors in place of "Forbidden" 403 errors, because + # forbidden errors allow attackers potential insight into your server's + # layout and contents + error_page 403 = 404; + + # It's always good to set logs, note however you cannot turn off the error log + # setting error_log off; will simply create a file called 'off'. + access_log /var/log/nginx/example.com.access.log; + error_log /var/log/nginx/example.com.error.log; + + # Add trailing slash to */wp-admin requests. + rewrite /wp-admin$ $scheme://$host$uri/ permanent; + + location / { + # This try_files directive is used to enable pretty, SEO-friendly URLs + # and permalinks for Wordpress. Leave it *off* to start with, and then + # turn it on once you've gotten Wordpress configured! + try_files $uri $uri/ /index.php?$args; + } + + # Option to create password protected directory + # http://www.howtoforge.com/basic-http-authentication-with-nginx + # location /admin { + # auth_basic "Administrator Login"; + # auth_basic_user_file /var/www/domain.com/admin/.htpasswd; + # } + + # Do not log access to these to keep the logs cleaner + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /apple-touch-icon.png { + log_not_found off; + access_log off; + } + + location = /apple-touch-icon-precomposed.png { + log_not_found off; + access_log off; + } + + # This block will catch static file requests, such as images, css, js + # The ?: prefix is a 'non-capturing' mark, meaning we do not require + # the pattern to be captured into $1 which should help improve performance + location ~* \.(?:3gp|gif|jpg|jpe?g|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt|js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff)$ { + # Some basic cache-control for static files to be sent to the browser + expires max; + add_header Pragma public; + add_header Cache-Control "public, must-revalidate, proxy-revalidate"; + } + + # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). + # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) + location ~ /\. { + access_log off; + log_not_found off; + deny all; + } + + location ~ ~$ { + access_log off; + log_not_found off; + deny all; + } + + # Common deny or internal locations, to help prevent access to areas of + # the site that should not be public + location ~* wp-admin/includes { + deny all; + } + + location ~* wp-includes/theme-compat/ { + deny all; + } + + location ~* wp-includes/js/tinymce/langs/.*\.php { + deny all; + } + + location /wp-content/ { + internal; + } + + # Deny access to any files with a .php extension in the uploads directory + # Works in sub-directory installs and also in multisite network + # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) + location ~* /(?:uploads|files)/.*\.php$ { + deny all; + } + + # Make sure these get through, esp with dynamic WP sitmap plugin + location = /robots.txt { + try_files $uri /index.php; + } + + location = /sitemap.xml { + try_files $uri /index.php; + } + + location = /sitemap.xml.gz { + try_files $uri /index.php; + } + + # Fix for Firefox issue with cross site font icons + location ~* \.(eot|otf|ttf|woff)$ { + add_header Access-Control-Allow-Origin *; + } + + # Redirect server error pages to the static page /50x.html + # Make sure 50x.html exists at that location + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + # Cache everything by default + set $skip_cache 0; + + # POST requests and urls with a query string should always go to PHP + if ($request_method = POST) { + set $skip_cache 1; + } + if ($query_string != "") { + set $skip_cache 1; + } + + # Don't cache uris containing the following segments + if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") { + set $skip_cache 1; + } + + # Don't use the cache for logged in users or recent commenters + if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { + set $skip_cache 1; + } + + # Pass all .php files onto a php-fpm/php-fcgi server. + location ~ [^/]\.php(/|$) { + # regex to split $uri to $fastcgi_script_name and $fastcgi_path + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + # Check that the PHP script exists before passing it + try_files $fastcgi_script_name =404; + + # Bypass the fact that try_files resets $fastcgi_path_info + # see: http://trac.nginx.org/nginx/ticket/321 + set $path_info $fastcgi_path_info; + fastcgi_param PATH_INFO $path_info; + + fastcgi_pass unix:/var/run/example.com.sock; + fastcgi_index index.php; + # Uncomment if site is HTTPS + #fastcgi_param HTTPS on; + include fastcgi.conf; + + fastcgi_cache_bypass $skip_cache; + fastcgi_no_cache $skip_cache; + + fastcgi_cache WORDPRESS; + fastcgi_cache_valid 60m; + } + + location ~ /purge(/.*) { + fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; + } + + # Use this block if PHPMyAdmin is enabled for this domain + location /phpmyadmin { + root /usr/share/; + index index.php index.html index.htm; + + location ~ ^/phpmyadmin/(.+\.php)$ { + try_files $uri =404; + root /usr/share/; + fastcgi_pass unix:/var/run/example.com.sock; + fastcgi_index index.php; + include fastcgi.conf; + } + + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } + } + + location /phpMyAdmin { + rewrite ^/* /phpmyadmin last; + } + # End PHPMyAdmin block + +} # End of server block. From 2d03eae413a27c478a8f5686be01d1640b464cd2 Mon Sep 17 00:00:00 2001 From: aquileia Date: Fri, 6 Mar 2015 13:34:19 +0100 Subject: [PATCH 299/875] Exclude gettext catalogues from statistics Gettext catalogues are used for translations and are thus essentially prose, but were classified as "programming" in 507d191d7d. In large projects like e.g. wesnoth/wesnoth, gettext can dominate the language statistics with about 95% although the actual code is C++. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9f2a742a..2dfb611e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1047,7 +1047,7 @@ Gentoo Eclass: ace_mode: sh Gettext Catalog: - type: programming + type: prose search_term: pot searchable: false aliases: From 866466852479fc11fe6bacc3b7460f51eb6ce271 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Fri, 6 Mar 2015 14:26:09 -0500 Subject: [PATCH 300/875] Update popular languages I took all non-fork repositories on github.com, grouped them by their primary language, and took the 25 most popular. --- lib/linguist/popular.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/linguist/popular.yml b/lib/linguist/popular.yml index 1a5cb750..afb68021 100644 --- a/lib/linguist/popular.yml +++ b/lib/linguist/popular.yml @@ -9,21 +9,21 @@ - CSS - Clojure - CoffeeScript -- Common Lisp -- Diff -- Emacs Lisp -- Erlang +- Go - HTML - Haskell - Java - JavaScript - Lua +- Matlab - Objective-C - PHP - Perl - Python +- R - Ruby -- SQL - Scala -- Scheme - Shell +- Swift +- TeX +- VimL From 17f75e64baa9e446182627f94a0debda872b6b49 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 6 Mar 2015 21:19:28 +0100 Subject: [PATCH 301/875] .vhost as an Apache extension --- lib/linguist/languages.yml | 1 + samples/ApacheConf/apache.vhost | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 samples/ApacheConf/apache.vhost diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5a841087..01c98820 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -149,6 +149,7 @@ ApacheConf: extensions: - .apacheconf - .conf + - .vhost tm_scope: source.apache-config ace_mode: apache_conf diff --git a/samples/ApacheConf/apache.vhost b/samples/ApacheConf/apache.vhost new file mode 100644 index 00000000..eb602121 --- /dev/null +++ b/samples/ApacheConf/apache.vhost @@ -0,0 +1,17 @@ +####################### +# HOSTNAME +###################### + + + ServerAdmin patrick@heysparkbox.com + DocumentRoot "/var/www/HOSTNAME" + ServerName HOSTNAME + + + Options Indexes MultiViews FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all + DirectoryIndex index.php + + From c9a1159a2ef57ef5adb12c70ee3c9e157e4111a9 Mon Sep 17 00:00:00 2001 From: Chris Zwicker Date: Sat, 7 Mar 2015 08:51:16 +0000 Subject: [PATCH 302/875] Add .plsql as extension for PL/SQL --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 691c62c8..2a766fd6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2212,6 +2212,7 @@ PLSQL: - .pks - .plb - .sql + - .plsql #Postgres PLpgSQL: From b009c85b6450a119fb3182c38e6ec074078b48a4 Mon Sep 17 00:00:00 2001 From: Mark Tareshawty Date: Sun, 8 Mar 2015 15:31:52 -0400 Subject: [PATCH 303/875] inverted color --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2803553b..6fe05055 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1258,7 +1258,7 @@ Haml: Handlebars: type: markup - color: "#fe5629" + color: "#01a9d6" aliases: - hbs - htmlbars From 8da458e1a85ba72dcb1a36a4d51d0b7a05693328 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Sun, 8 Mar 2015 16:22:41 -0700 Subject: [PATCH 304/875] apt-get update before downloading deps --- .travis.yml | 1 - script/travis/before_install | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4d0c2351..52540b57 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,3 @@ -sudo: false before_install: script/travis/before_install rvm: - 1.9.3 diff --git a/script/travis/before_install b/script/travis/before_install index 442f6718..93ef383c 100755 --- a/script/travis/before_install +++ b/script/travis/before_install @@ -5,6 +5,8 @@ set -ex # Fetch all commits/refs needed to run our tests. git fetch origin master:master v2.0.0:v2.0.0 test/attributes:test/attributes test/master:test/master +sudo apt-get update + script/vendor-deb libicu48 libicu-dev if ruby -e 'exit RUBY_VERSION >= "2.0" && RUBY_VERSION < "2.1"'; then # Workaround for https://bugs.ruby-lang.org/issues/8074. We can't use this From 5ef944e8b81f39c21de755f66947602620604689 Mon Sep 17 00:00:00 2001 From: Pavel Date: Tue, 10 Mar 2015 11:16:17 +0200 Subject: [PATCH 305/875] Detect *.sma files as SourcePawn --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 62dfe0f3..ada5149f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2936,6 +2936,7 @@ SourcePawn: - sourcemod extensions: - .sp + - .sma tm_scope: source.sp ace_mode: text From 8b9ad131d1a3f9b9a3d9634fc2326b327088e1ed Mon Sep 17 00:00:00 2001 From: Pavel Date: Tue, 10 Mar 2015 16:20:59 +0200 Subject: [PATCH 306/875] Create foo.sma --- samples/SourcePawn/foo.sma | 272 +++++++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 samples/SourcePawn/foo.sma diff --git a/samples/SourcePawn/foo.sma b/samples/SourcePawn/foo.sma new file mode 100644 index 00000000..e03b77a2 --- /dev/null +++ b/samples/SourcePawn/foo.sma @@ -0,0 +1,272 @@ +// vim: set ts=4 sw=4 tw=99 noet: +// +// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO"). +// Copyright (C) The AMX Mod X Development Team. +// +// This software is licensed under the GNU General Public License, version 3 or higher. +// Additional exceptions apply. For full license details, see LICENSE.txt or visit: +// https://alliedmods.net/amxmodx-license + +// +// TimeLeft Plugin +// + +#include + +const TASK_TIMEREMAIN_SHORT = 8648458 // 0.8s repeat task +const TASK_TIMEREMAIN_LARGE = 34543 // 1.0s repeat task + +// time display flags +const TD_BOTTOM_WHITE_TEXT = 1 // a - display white text on bottom +const TD_USE_VOICE = 2 // b - use voice +const TD_NO_REMAINING_VOICE = 4 // c - don't add "remaining" (only in voice) +const TD_NO_HOURS_MINS_SECS_VOICE = 8 // d - don't add "hours/minutes/seconds" (only in voice) +const TD_SHOW_SPEAK_VALUES_BELOW = 16 // e - show/speak if current time is less than this set in parameter + +new g_TimeSet[32][2] +new g_LastTime +new g_CountDown +new g_Switch + +// pcvars +new g_amx_time_voice, g_amx_timeleft +new g_mp_timelimit + +public plugin_init() +{ + register_plugin("TimeLeft", AMXX_VERSION_STR, "AMXX Dev Team") + register_dictionary("timeleft.txt") + g_amx_time_voice = register_cvar("amx_time_voice", "1") + register_srvcmd("amx_time_display", "setDisplaying") + g_amx_timeleft = register_cvar("amx_timeleft", "00:00", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY) + register_clcmd("say timeleft", "sayTimeLeft", 0, "- displays timeleft") + register_clcmd("say thetime", "sayTheTime", 0, "- displays current time") + + set_task(0.8, "timeRemain", TASK_TIMEREMAIN_SHORT, "", 0, "b") + + g_mp_timelimit = get_cvar_pointer("mp_timelimit") +} + +public sayTheTime(id) +{ + if (get_pcvar_num(g_amx_time_voice)) + { + new mhours[6], mmins[6], whours[32], wmins[32], wpm[6] + + get_time("%H", mhours, charsmax(mhours)) + get_time("%M", mmins, charsmax(mmins)) + + new mins = str_to_num(mmins) + new hrs = str_to_num(mhours) + + if (mins) + num_to_word(mins, wmins, charsmax(wmins)) + else + wmins[0] = EOS + + if (hrs < 12) + wpm = "am " + else + { + if (hrs > 12) hrs -= 12 + wpm = "pm " + } + + if (hrs) + num_to_word(hrs, whours, charsmax(whours)) + else + whours = "twelve " + + client_cmd(id, "spk ^"fvox/time_is_now %s_period %s%s^"", whours, wmins, wpm) + } + + new ctime[64] + + get_time("%m/%d/%Y - %H:%M:%S", ctime, charsmax(ctime)) + client_print(0, print_chat, "%L: %s", LANG_PLAYER, "THE_TIME", ctime) + + return PLUGIN_CONTINUE +} + +public sayTimeLeft(id) +{ + if (get_pcvar_float(g_mp_timelimit)) + { + new a = get_timeleft() + + if (get_pcvar_num(g_amx_time_voice)) + { + new svoice[128] + setTimeVoice(svoice, charsmax(svoice), 0, a) + client_cmd(id, "%s", svoice) + } + client_print(0, print_chat, "%L: %d:%02d", LANG_PLAYER, "TIME_LEFT", (a / 60), (a % 60)) + } + else + client_print(0, print_chat, "%L", LANG_PLAYER, "NO_T_LIMIT") + + return PLUGIN_CONTINUE +} + +setTimeText(text[], len, tmlf, id) +{ + new secs = tmlf % 60 + new mins = tmlf / 60 + + if (secs == 0) + formatex(text, len, "%d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE") + else if (mins == 0) + formatex(text, len, "%d %L", secs, id, (secs > 1) ? "SECONDS" : "SECOND") + else + formatex(text, len, "%d %L %d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE", secs, id, (secs > 1) ? "SECONDS" : "SECOND") +} + +setTimeVoice(text[], len, flags, tmlf) +{ + new temp[7][32] + new secs = tmlf % 60 + new mins = tmlf / 60 + + // for (new a = 0;a < 7;++a) // we just created it, already null + // temp[a][0] = 0 + + if (secs > 0) + { + num_to_word(secs, temp[4], charsmax(temp[])) + + if ( ~flags & TD_NO_HOURS_MINS_SECS_VOICE ) + temp[5] = "seconds " /* there is no "second" in default hl */ + } + + if (mins > 59) + { + new hours = mins / 60 + + num_to_word(hours, temp[0], charsmax(temp[])) + + if ( ~flags & TD_NO_HOURS_MINS_SECS_VOICE ) + temp[1] = "hours " + + mins = mins % 60 + } + + if (mins > 0) + { + num_to_word(mins, temp[2], charsmax(temp[])) + + if ( ~flags & TD_NO_HOURS_MINS_SECS_VOICE ) + temp[3] = "minutes " + } + + if ( ~flags & TD_NO_REMAINING_VOICE ) + temp[6] = "remaining " + + return formatex(text, len, "spk ^"vox/%s%s%s%s%s%s%s^"", temp[0], temp[1], temp[2], temp[3], temp[4], temp[5], temp[6]) +} + +findDispFormat(_time) +{ + // it is important to check i _time) + { + if (!g_Switch) + { + g_CountDown = g_Switch = _time + remove_task(TASK_TIMEREMAIN_SHORT) + set_task(1.0, "timeRemain", TASK_TIMEREMAIN_LARGE, "", 0, "b") + } + + return i + } + } + else if (g_TimeSet[i][0] == _time) + { + return i + } + } + + return -1 +} + +public setDisplaying() +{ + new arg[32], flags[32], num[32] + new argc = read_argc() - 1 + new i = 0 + + while (i < argc && i < sizeof(g_TimeSet)) + { + read_argv(i + 1, arg, charsmax(arg)) + parse(arg, flags, charsmax(flags), num, charsmax(num)) + + g_TimeSet[i][0] = str_to_num(num) + g_TimeSet[i][1] = read_flags(flags) + + i++ + } + + if( i < sizeof(g_TimeSet) ) + g_TimeSet[i][0] = 0 // has to be zeroed in case command is sent twice + + return PLUGIN_HANDLED +} + +public timeRemain(param[]) +{ + new gmtm = get_timeleft() + new tmlf = g_Switch ? --g_CountDown : gmtm + new stimel[12] + + formatex(stimel, charsmax(stimel), "%02d:%02d", gmtm / 60, gmtm % 60) + set_pcvar_string(g_amx_timeleft, stimel) + + if (g_Switch && gmtm > g_Switch) + { + remove_task(TASK_TIMEREMAIN_LARGE) + g_Switch = 0 + set_task(0.8, "timeRemain", TASK_TIMEREMAIN_SHORT, "", 0, "b") + + return + } + + if (tmlf > 0 && g_LastTime != tmlf) + { + g_LastTime = tmlf + new tm_set = findDispFormat(tmlf) + + if (tm_set != -1) + { + new flags = g_TimeSet[tm_set][1] + new arg[128] + + if (flags & TD_BOTTOM_WHITE_TEXT) + { + new players[MAX_PLAYERS], pnum, plr + + get_players(players, pnum, "c") + + if (flags & TD_SHOW_SPEAK_VALUES_BELOW) // yes this is correct flag, just because message should be shorter if it is shown every seconds + set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, -1) + else + set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, -1) + + for (new i = 0; i < pnum; i++) + { + plr = players[i] + setTimeText(arg, charsmax(arg), tmlf, plr) + show_hudmessage(plr, "%s", arg) + } + } + + if (flags & TD_USE_VOICE) + { + setTimeVoice(arg, charsmax(arg), flags, tmlf) + client_cmd(0, "%s", arg) + } + } + } +} From 02ced247510eb32aed07f467601b97567265aff3 Mon Sep 17 00:00:00 2001 From: Chris Kuehl Date: Tue, 10 Mar 2015 22:19:22 -0700 Subject: [PATCH 307/875] languages.yml: don't assume .conf is Apache The assumption that `.conf` files are Apache is causing many projects to be detected incorrectly as being primarily "ApacheConf". The `.conf` extension is widely used by software; Apache accounts for only a very tiny proportion of its overall use. The addition of `.conf` for ApacheConf has resulted in projects which contain none (or almost no) Apache config being marked as primarily containing it. The problem was introduced by 18a3ef9e5e80889d3daf88dab9338a65c97a7310 --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 62dfe0f3..b4527e11 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -148,7 +148,6 @@ ApacheConf: - apache extensions: - .apacheconf - - .conf tm_scope: source.apache-config ace_mode: apache_conf From 464d6e9ec484de537e42730eb2b8c119707462a0 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 12 Mar 2015 10:41:34 -0700 Subject: [PATCH 308/875] Simplifying requires --- bin/linguist | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bin/linguist b/bin/linguist index 6ac8f0a7..d1d9c306 100755 --- a/bin/linguist +++ b/bin/linguist @@ -2,10 +2,8 @@ # linguist — detect language type for a file, or, given a directory, determine language breakdown # usage: linguist [<--breakdown>] - -require 'linguist/file_blob' -require 'linguist/language' -require 'linguist/repository' +# +require 'linguist' require 'rugged' path = ARGV[0] || Dir.pwd From d263f0c91a2a43d5b9120ef20a8810628947c043 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 14 Mar 2015 11:42:30 +0100 Subject: [PATCH 309/875] Remove submodule for Perl grammar --- .gitmodules | 3 --- grammars.yml | 2 -- vendor/grammars/perl.tmbundle | 1 - 3 files changed, 6 deletions(-) delete mode 160000 vendor/grammars/perl.tmbundle diff --git a/.gitmodules b/.gitmodules index 6990a425..b87f416b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -397,9 +397,6 @@ [submodule "vendor/grammars/pascal.tmbundle"] path = vendor/grammars/pascal.tmbundle url = https://github.com/textmate/pascal.tmbundle -[submodule "vendor/grammars/perl.tmbundle"] - path = vendor/grammars/perl.tmbundle - url = https://github.com/textmate/perl.tmbundle [submodule "vendor/grammars/php-smarty.tmbundle"] path = vendor/grammars/php-smarty.tmbundle url = https://github.com/textmate/php-smarty.tmbundle diff --git a/grammars.yml b/grammars.yml index 048f7da8..e2a0440d 100644 --- a/grammars.yml +++ b/grammars.yml @@ -393,8 +393,6 @@ vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: - source.oz vendor/grammars/pascal.tmbundle: - source.pascal -vendor/grammars/perl.tmbundle: -- source.perl vendor/grammars/php-smarty.tmbundle: - source.smarty vendor/grammars/php.tmbundle: diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle deleted file mode 160000 index 3396190b..00000000 --- a/vendor/grammars/perl.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3396190be167310600d00da6ff9af7807cea4b12 From e61be66d4faad041c32985df5778dc6e8a207fea Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 14 Mar 2015 11:47:44 +0100 Subject: [PATCH 310/875] Grammar for Perl and Perl6 from TextMate bundle --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 3 ++- vendor/grammars/perl.tmbundle | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/perl.tmbundle diff --git a/.gitmodules b/.gitmodules index b87f416b..29240331 100644 --- a/.gitmodules +++ b/.gitmodules @@ -642,3 +642,6 @@ [submodule "vendor/grammars/xc.tmbundle"] path = vendor/grammars/xc.tmbundle url = https://github.com/graymalkin/xc.tmbundle +[submodule "vendor/grammars/perl.tmbundle"] + path = vendor/grammars/perl.tmbundle + url = https://github.com/textmate/perl.tmbundle diff --git a/grammars.yml b/grammars.yml index e2a0440d..97bacc4e 100644 --- a/grammars.yml +++ b/grammars.yml @@ -393,6 +393,9 @@ vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: - source.oz vendor/grammars/pascal.tmbundle: - source.pascal +vendor/grammars/perl.tmbundle/: +- source.perl +- source.perl.6 vendor/grammars/php-smarty.tmbundle: - source.smarty vendor/grammars/php.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ada5149f..bf04dbb8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2282,6 +2282,7 @@ Pascal: Perl: type: programming + tm_scope: source.perl ace_mode: perl color: "#0298c3" extensions: @@ -2317,7 +2318,7 @@ Perl6: - Rexfile interpreters: - perl6 - tm_scope: none + tm_scope: source.perl.6 ace_mode: perl PigLatin: diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle new file mode 160000 index 00000000..907eff87 --- /dev/null +++ b/vendor/grammars/perl.tmbundle @@ -0,0 +1 @@ +Subproject commit 907eff8769f88e146609d60f9185de2b605e8968 From 068c8a341d40b6b8c18e5f8cf7ee1fa08fc0c165 Mon Sep 17 00:00:00 2001 From: Michael Tesch Date: Sat, 14 Mar 2015 18:35:57 +0100 Subject: [PATCH 311/875] better regex for matching emacs modeline the emacs modeline is actually a per-file variable setting mechanism, which means it can have other flags in it. this regex extracts the part that corresponds to the file's language ("mode:" - ie emacs major mode) http://ergoemacs.org/emacs_manual/emacs/Specifying-File-Variables.html --- lib/linguist/strategy/modeline.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index e77597f4..ded1102c 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,7 +1,7 @@ module Linguist module Strategy class Modeline - EmacsModeline = /-\*-\s*mode:\s*(\w+);?\s*-\*-/i + EmacsModeline = /-\*-\s*((?!mode)[\w-]+\s*:\s*([\w+-]+)\s*;?\s*)?(mode\s*:)?\s*([\w+-]+)\s*;?\s*((?!mode)[\w-]+\s*:\s*([\w+-]+)\s*;?\s*)?-\*-/i VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i # Public: Detects language based on Vim and Emacs modelines @@ -22,8 +22,13 @@ module Linguist # # Returns a String or nil def self.modeline(data) - match = data.match(EmacsModeline) || data.match(VimModeline) - match[1] if match + match = data.match(EmacsModeline) + if match + match[4] + else + match = data.match(VimModeline) + match[1] if match + end end end end From 5ed0da7b08ce5ab0b3ef41c2c0c713bdc5f59972 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 14 Mar 2015 13:06:55 -0500 Subject: [PATCH 312/875] v4.5.0 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 37ffbe58..eff270d7 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.0b2" + VERSION = "4.5.0" end From ad7e231f39fbeaa884952b8f5beb3910c23b40c0 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 14 Mar 2015 13:12:37 -0500 Subject: [PATCH 313/875] Updating grammars --- vendor/grammars/CLIPS-sublime | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/Stylus | 2 +- vendor/grammars/Sublime-Logos | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/oracle.tmbundle | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/sublime_cobol | 2 +- vendor/grammars/xc.tmbundle | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/vendor/grammars/CLIPS-sublime b/vendor/grammars/CLIPS-sublime index f6904baa..7ded830d 160000 --- a/vendor/grammars/CLIPS-sublime +++ b/vendor/grammars/CLIPS-sublime @@ -1 +1 @@ -Subproject commit f6904baa78b8b918a7815f4f467fe0ab51c38972 +Subproject commit 7ded830d5ea79214aaecf07006db1eba394d3e2a diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index ae0b75d9..e31e1f53 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit ae0b75d99a60f555e1b5cbab53eaed2ca9ca9101 +Subproject commit e31e1f5329b420879c50f230118cc81972710c71 diff --git a/vendor/grammars/Stylus b/vendor/grammars/Stylus index c060554e..c4897b0f 160000 --- a/vendor/grammars/Stylus +++ b/vendor/grammars/Stylus @@ -1 +1 @@ -Subproject commit c060554eb82ed253969457b2609d9eb5c7739c6e +Subproject commit c4897b0f97e69e367b20971f9fd019b4c6e9d283 diff --git a/vendor/grammars/Sublime-Logos b/vendor/grammars/Sublime-Logos index 9a7aa2fb..5375dc53 160000 --- a/vendor/grammars/Sublime-Logos +++ b/vendor/grammars/Sublime-Logos @@ -1 +1 @@ -Subproject commit 9a7aa2fb92b52f0e422f50b60fd5608d935ef69b +Subproject commit 5375dc5394d72c36088d6eb1304f632bea232d83 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 6f4e954f..9ae03977 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 6f4e954f35976f72f2a620af68aa0ba73e48478b +Subproject commit 9ae03977b68314597cc585ffada1998b3b1ef3be diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 65c9cd9a..d3162539 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 65c9cd9a6540f6e47e5770314e13de7df05b2d2b +Subproject commit d31625391fb6ff6bd805074b3bdea4f1c4d10979 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index e237b49f..e164fcf4 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit e237b49f83c12aff3070c570404ef6bb19d1cc95 +Subproject commit e164fcf431d7ba53c2ce1d0cd81a78021ea8cebe diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 84a4fab1..78505393 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 84a4fab144c185f4430f68cf10de35a7dfc79cb7 +Subproject commit 78505393cb1cb03396b06c75788802a077b3a2ff diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index da1fdb69..15dd527d 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit da1fdb6949eea5d107c8f30063437d14a3c3a677 +Subproject commit 15dd527dae9807e9e69e3709f5025fcc830a09b8 diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index 98397197..2163c458 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit 9839719721e3fb67c2df8461b2b296e6ff027e7f +Subproject commit 2163c45828d825b6142d6d5785b9333965bea98d diff --git a/vendor/grammars/oracle.tmbundle b/vendor/grammars/oracle.tmbundle index b41e6d33..1da31563 160000 --- a/vendor/grammars/oracle.tmbundle +++ b/vendor/grammars/oracle.tmbundle @@ -1 +1 @@ -Subproject commit b41e6d33d6a71649d97e497fb1504aa01e7ceb41 +Subproject commit 1da315635f75d1af57056c5c13221d4a95264e6f diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index 3396190b..907eff87 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit 3396190be167310600d00da6ff9af7807cea4b12 +Subproject commit 907eff8769f88e146609d60f9185de2b605e8968 diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index 4be198de..28bd2b27 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit 4be198de811d856e3f67ea04d7626ce82aff3dcb +Subproject commit 28bd2b27fc1105efb926cabd8f20fb61b6eeed3b diff --git a/vendor/grammars/xc.tmbundle b/vendor/grammars/xc.tmbundle index 7239c92b..309d1f66 160000 --- a/vendor/grammars/xc.tmbundle +++ b/vendor/grammars/xc.tmbundle @@ -1 +1 @@ -Subproject commit 7239c92bd612b01fc5bfea36056d530db78d6c64 +Subproject commit 309d1f662ca32513d3eed19f44ce4ef1d6f5f611 From 0db133ffb2b9841ba737329ce1a169954fe283b1 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 14 Mar 2015 19:43:17 +0100 Subject: [PATCH 314/875] Detect Cython generated files --- lib/linguist/generated.rb | 13 +++++++++++++ test/test_blob.rb | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index b93f7ea6..4a67fabd 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -62,6 +62,7 @@ module Linguist generated_parser? || generated_net_docfile? || generated_postscript? || + compiled_cython_file? || generated_protocol_buffer_go? || generated_protocol_buffer? || generated_jni_header? || @@ -270,5 +271,17 @@ module Linguist # VCR Cassettes have "recorded_with: VCR" in the second last line. return lines[-2].include?("recorded_with: VCR") end + + # Internal: Is this a compiled C/C++ file from Cython? + # + # Cython-compiled C/C++ files typically contain: + # /* Generated by Cython x.x.x on ... */ + # on the first line. + # + # Return true or false + def compiled_cython_file? + return false unless ['.c', '.cpp'].include? extname + return lines[0].include?("Generated by Cython") + end end end diff --git a/test/test_blob.rb b/test/test_blob.rb index 7c8fddc1..cc4243ea 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -240,6 +240,10 @@ class TestBlob < Minitest::Test # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? + + # Cython-generated C/C++ + assert sample_blob("C/sgd_fast.c").generated? + assert sample_blob("C++/wrapper_inner.cpp").generated? end def test_vendored From fb709e2e1090534f2d5e5020e61f12a7786141dd Mon Sep 17 00:00:00 2001 From: Chris Zwicker Date: Sat, 14 Mar 2015 19:59:25 +0000 Subject: [PATCH 315/875] Add sample file for .plsql extension --- samples/PLSQL/prime#.plsql | 93 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 samples/PLSQL/prime#.plsql diff --git a/samples/PLSQL/prime#.plsql b/samples/PLSQL/prime#.plsql new file mode 100644 index 00000000..1a4785a1 --- /dev/null +++ b/samples/PLSQL/prime#.plsql @@ -0,0 +1,93 @@ +create or replace package prime# +is + invalid_argument_error exception; + + function nth ( + i_num pls_integer + ) return number; +end prime#; +/ + +create or replace package body prime# +is + type t_primes is table of number index by pls_integer; + b_primes t_primes; + + function is_prime( + i_candidate number + ) return boolean + is + l_num number := 1; + l_prime number; + l_result number; + begin + if i_candidate < 2 then + return false; + end if; + + loop + l_prime := nth(l_num); + if l_prime = i_candidate then + return true; + end if; + + l_result := i_candidate / l_prime; + if l_result = ceil(l_result) then + return false; + end if; + + l_num := l_num + 1; + exit when l_result <= l_prime; + end loop; + + return true; + end is_prime; + + function next ( + i_prime pls_integer + ) return number + is + l_next number; + begin + l_next := i_prime + case mod(i_prime, 2) when 0 then 1 else 2 end; + + while not is_prime(l_next) loop + l_next := l_next + 2; + end loop; + return l_next; + end next; + + function nth ( + i_num pls_integer + ) return number + is + l_index number := 2; + l_prime number := 3; + begin + if i_num < 1 + or ceil(i_num) != i_num + then + raise invalid_argument_error; + end if; + + case i_num + when 1 then return 2; + else + if b_primes.exists(i_num) then + return b_primes(i_num); + end if; + while l_index < i_num loop + l_index := l_index + 1; + if b_primes.exists(l_index) then + l_prime := b_primes(l_index); + else + l_prime := next(l_prime); + b_primes(l_index) := l_prime; + end if; + end loop; + return l_prime; + end case; + end nth; + +end prime#; +/ \ No newline at end of file From 03b43a85c8c1ed4f7a3418f38a27657c2409c414 Mon Sep 17 00:00:00 2001 From: Chris Zwicker Date: Sat, 14 Mar 2015 20:16:31 +0000 Subject: [PATCH 316/875] Change sorting of extensions to fix failing test --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b7da258f..4d6404f7 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2213,8 +2213,8 @@ PLSQL: - .pkb - .pks - .plb - - .sql - .plsql + - .sql #Postgres PLpgSQL: From 1bb639617c017d389708daf4c28231ff97c5c233 Mon Sep 17 00:00:00 2001 From: Michael Tesch Date: Sat, 14 Mar 2015 22:44:02 +0100 Subject: [PATCH 317/875] Create seeplusplusEmacs1 one type of emacs modeline --- test/fixtures/Data/Modelines/seeplusplusEmacs1 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs1 diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs1 b/test/fixtures/Data/Modelines/seeplusplusEmacs1 new file mode 100644 index 00000000..6c1b6e80 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs1 @@ -0,0 +1,2 @@ +// -*-c++-*- +template class { X i; }; From dd2d2389c849e64ddf2ea46af6be939427f17b65 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 14 Mar 2015 17:11:44 -0500 Subject: [PATCH 318/875] Cobol grammars fix. --- grammars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/grammars.yml b/grammars.yml index 97bacc4e..de69172a 100644 --- a/grammars.yml +++ b/grammars.yml @@ -502,6 +502,7 @@ vendor/grammars/sublime-varnish: vendor/grammars/sublime_cobol: - source.acucobol - source.cobol +- source.jcl - source.opencobol vendor/grammars/sublime_man_page_support: - source.man From a364e4a2dcf71eb5f5d972a9b2c57d67f5c63da0 Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sat, 14 Mar 2015 23:13:59 +0100 Subject: [PATCH 319/875] tests for emacs modeline regex --- test/fixtures/Data/Modelines/seeplusplusEmacs2 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs3 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs4 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs5 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs6 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs7 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs8 | 2 ++ test/fixtures/Data/Modelines/seeplusplusEmacs9 | 2 ++ test/test_modelines.rb | 18 ++++++++++++++++++ 9 files changed, 34 insertions(+) create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs2 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs3 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs4 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs5 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs6 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs7 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs8 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs9 diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs2 b/test/fixtures/Data/Modelines/seeplusplusEmacs2 new file mode 100644 index 00000000..3756149c --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs2 @@ -0,0 +1,2 @@ +// -*- c++ -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs3 b/test/fixtures/Data/Modelines/seeplusplusEmacs3 new file mode 100644 index 00000000..7a871e6a --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs3 @@ -0,0 +1,2 @@ +// -*- mode:C++ -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs4 b/test/fixtures/Data/Modelines/seeplusplusEmacs4 new file mode 100644 index 00000000..f020eb5a --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs4 @@ -0,0 +1,2 @@ +// -*- font:bar;mode:c++ -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs5 b/test/fixtures/Data/Modelines/seeplusplusEmacs5 new file mode 100644 index 00000000..49e9a7d6 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs5 @@ -0,0 +1,2 @@ +// -*-foo:bar;mode:c++;bar:foo-*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs6 b/test/fixtures/Data/Modelines/seeplusplusEmacs6 new file mode 100644 index 00000000..305f7f77 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs6 @@ -0,0 +1,2 @@ +// -*- foo : bar ; mode : c++ ; bar : foo -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs7 b/test/fixtures/Data/Modelines/seeplusplusEmacs7 new file mode 100644 index 00000000..236c3b8e --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs7 @@ -0,0 +1,2 @@ +// -*- mode : c++ ; bar : foo -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs8 b/test/fixtures/Data/Modelines/seeplusplusEmacs8 new file mode 100644 index 00000000..3efc2c57 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs8 @@ -0,0 +1,2 @@ +// -*- font:x;foo : bar ; mode : C++ ; bar : foo -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs9 b/test/fixtures/Data/Modelines/seeplusplusEmacs9 new file mode 100644 index 00000000..953ca220 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs9 @@ -0,0 +1,2 @@ +// -*-foo:bar;mode:c++;bar:foo;tyrell:corp-*- +template class { X i; }; diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 6c68cc87..cd8fbaad 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -10,6 +10,15 @@ class TestModelines < Minitest::Test def test_modeline_strategy assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs3") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs4") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs5") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs6") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9") assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl") assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md") assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc") @@ -18,6 +27,15 @@ class TestModelines < Minitest::Test def test_modeline_languages assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplus").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs3").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs4").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs5").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs6").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9").language assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language From 6aab682728c6b00057c16d4672240d8a01cae510 Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sat, 14 Mar 2015 23:24:41 +0100 Subject: [PATCH 320/875] fixed case with multiple other file vars before and after mode: --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index ded1102c..58f75b63 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,7 +1,7 @@ module Linguist module Strategy class Modeline - EmacsModeline = /-\*-\s*((?!mode)[\w-]+\s*:\s*([\w+-]+)\s*;?\s*)?(mode\s*:)?\s*([\w+-]+)\s*;?\s*((?!mode)[\w-]+\s*:\s*([\w+-]+)\s*;?\s*)?-\*-/i + EmacsModeline = /-\*-\s*((?!mode)[\w-]+\s*:\s*([\w+-]+)\s*;?\s*)*(mode\s*:)?\s*([\w+-]+)\s*(;\s*(?!mode)[\w-]+\s*:\s*([\w+-]+)\s*)*;?\s*-\*-/i VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i # Public: Detects language based on Vim and Emacs modelines From 6af4ab6db125428090efbe317a64af1bafc39ddb Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sat, 14 Mar 2015 23:26:08 +0100 Subject: [PATCH 321/875] harder test --- test/fixtures/Data/Modelines/seeplusplusEmacs8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs8 b/test/fixtures/Data/Modelines/seeplusplusEmacs8 index 3efc2c57..f502058a 100644 --- a/test/fixtures/Data/Modelines/seeplusplusEmacs8 +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs8 @@ -1,2 +1,2 @@ -// -*- font:x;foo : bar ; mode : C++ ; bar : foo -*- +// -*- font:x;foo : bar ; mode : C++ ; bar : foo ; foooooo:baaaaar;fo:ba-*- template class { X i; }; From fda0f2a0423e7211ae64fd4d980167a687a5311e Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sat, 14 Mar 2015 23:53:17 +0100 Subject: [PATCH 322/875] detect emacs modeline for fundamental as Text --- lib/linguist/languages.yml | 2 ++ test/fixtures/Data/Modelines/fundamentalEmacs.c | 6 ++++++ test/test_modelines.rb | 2 ++ 3 files changed, 10 insertions(+) create mode 100644 test/fixtures/Data/Modelines/fundamentalEmacs.c diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ada5149f..2bde4702 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3074,6 +3074,8 @@ Tea: Text: type: prose wrap: true + aliases: + - fundamental extensions: - .txt - .fr diff --git a/test/fixtures/Data/Modelines/fundamentalEmacs.c b/test/fixtures/Data/Modelines/fundamentalEmacs.c new file mode 100644 index 00000000..b384bc79 --- /dev/null +++ b/test/fixtures/Data/Modelines/fundamentalEmacs.c @@ -0,0 +1,6 @@ +// -*- fundamental -*- + +int main(int argc, char * argc[]) +{ + this should not be syntax highlighted, even though it looks like c. +} diff --git a/test/test_modelines.rb b/test/test_modelines.rb index cd8fbaad..a2be5d3b 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -19,6 +19,7 @@ class TestModelines < Minitest::Test assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9") + assert_modeline Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c") assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl") assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md") assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc") @@ -36,6 +37,7 @@ class TestModelines < Minitest::Test assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9").language + assert_equal Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c").language assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language From 01deb07ae9334253a55147591e804047b7782d19 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 14 Mar 2015 20:19:11 -0500 Subject: [PATCH 323/875] Return false for empty file. --- lib/linguist/generated.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 4a67fabd..a87bbc90 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -281,6 +281,7 @@ module Linguist # Return true or false def compiled_cython_file? return false unless ['.c', '.cpp'].include? extname + return false unless lines.count > 1 return lines[0].include?("Generated by Cython") end end From 840bdf95e328e4070bc415f9030e93d881f8a7a2 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 14 Mar 2015 20:32:18 -0500 Subject: [PATCH 324/875] v4.5.1 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index eff270d7..55ba47e1 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.0" + VERSION = "4.5.1" end From 5fd7992f9829b55f0473f4f6d1d049fe16645c56 Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sun, 15 Mar 2015 12:40:31 +0100 Subject: [PATCH 325/875] dont save useless matches, thanks to pchaigno --- lib/linguist/strategy/modeline.rb | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 58f75b63..f8b58ecf 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,7 +1,7 @@ module Linguist module Strategy class Modeline - EmacsModeline = /-\*-\s*((?!mode)[\w-]+\s*:\s*([\w+-]+)\s*;?\s*)*(mode\s*:)?\s*([\w+-]+)\s*(;\s*(?!mode)[\w-]+\s*:\s*([\w+-]+)\s*)*;?\s*-\*-/i + EmacsModeline = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i # Public: Detects language based on Vim and Emacs modelines @@ -22,13 +22,8 @@ module Linguist # # Returns a String or nil def self.modeline(data) - match = data.match(EmacsModeline) - if match - match[4] - else - match = data.match(VimModeline) - match[1] if match - end + match = data.match(EmacsModeline) | data.match(VimModeline) + match[1] if match end end end From ce1f51a34f060f9bbbb96f1ba1084438bd6e804f Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sun, 15 Mar 2015 12:51:14 +0100 Subject: [PATCH 326/875] forgot a | --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index f8b58ecf..55a8f355 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -22,7 +22,7 @@ module Linguist # # Returns a String or nil def self.modeline(data) - match = data.match(EmacsModeline) | data.match(VimModeline) + match = data.match(EmacsModeline) || data.match(VimModeline) match[1] if match end end From 419cfe54e0a7879457c130ffb460957fc9e43ac0 Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sun, 15 Mar 2015 13:05:43 +0100 Subject: [PATCH 327/875] disable modelines strategy match for dtrace sample --- samples/DTrace/javascript-trace.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/DTrace/javascript-trace.d b/samples/DTrace/javascript-trace.d index 258c6cd2..a9c4471e 100644 --- a/samples/DTrace/javascript-trace.d +++ b/samples/DTrace/javascript-trace.d @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: linguist-disable-modelines-strategy-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * From dcb14d0fc7157eac434ca03284f41717edadabd3 Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sun, 15 Mar 2015 20:06:41 +0100 Subject: [PATCH 328/875] disable modelines strategy for webidl sample --- samples/WebIDL/Fetch.webidl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/WebIDL/Fetch.webidl b/samples/WebIDL/Fetch.webidl index fb022126..87a4e957 100644 --- a/samples/WebIDL/Fetch.webidl +++ b/samples/WebIDL/Fetch.webidl @@ -1,4 +1,4 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: linguist-disable-strategy-modeline-IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. From 50db5c012eeab69ac8ef07d05d760de908b5715a Mon Sep 17 00:00:00 2001 From: michael tesch Date: Sun, 15 Mar 2015 20:18:57 +0100 Subject: [PATCH 329/875] disable modelines strategy for webidl sample --- samples/WebIDL/AnimationEvent.webidl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/WebIDL/AnimationEvent.webidl b/samples/WebIDL/AnimationEvent.webidl index e48ed571..5dbc2752 100644 --- a/samples/WebIDL/AnimationEvent.webidl +++ b/samples/WebIDL/AnimationEvent.webidl @@ -1,4 +1,4 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: linguist-disable-strategy-modeline-IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. From 5f647f2236ef87a9dc0bbbeec11269e33f3eb4c3 Mon Sep 17 00:00:00 2001 From: michael tesch Date: Mon, 16 Mar 2015 19:56:06 +0100 Subject: [PATCH 330/875] more realistic emacs modeline for dtrace sample --- samples/DTrace/javascript-trace.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/DTrace/javascript-trace.d b/samples/DTrace/javascript-trace.d index a9c4471e..0acbaa97 100644 --- a/samples/DTrace/javascript-trace.d +++ b/samples/DTrace/javascript-trace.d @@ -1,4 +1,4 @@ -/* -*- Mode: linguist-disable-modelines-strategy-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: dtrace-script; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * From 3cf7bfbee2d8823d44e3157b92871c41fd3bd6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=CE=B1don=20Fowler?= Date: Mon, 16 Mar 2015 23:44:08 -0700 Subject: [PATCH 331/875] Give Diff a color --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 19881c43..3a540f70 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -738,6 +738,7 @@ Dart: Diff: type: programming + color: "#88dddd" extensions: - .diff - .patch From 013188dcd980538e8f8c0aa80ef5bb029a8f7735 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sat, 14 Feb 2015 19:23:26 +0100 Subject: [PATCH 332/875] Add new language Formatted for .for. Sample file wksst8110.for is from the Climate Prediction Center at the National Weather Service of the USA, and is in the public domain. --- lib/linguist/heuristics.rb | 2 +- lib/linguist/languages.yml | 7 + samples/Formatted/wksst8110.for | 1317 +++++++++++++++++++++++++++++++ 3 files changed, 1325 insertions(+), 1 deletion(-) create mode 100644 samples/Formatted/wksst8110.for diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index eb39a925..52ead64e 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -164,7 +164,7 @@ module Linguist end end - disambiguate "FORTRAN", "Forth" do |data| + disambiguate "FORTRAN", "Forth", "Formatted" do |data| if /^: /.match(data) Language["Forth"] elsif /^([c*][^a-z]| (subroutine|program)\s|\s*!)/i.match(data) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 19881c43..6688e108 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -931,6 +931,13 @@ Fantom: tm_scope: source.fan ace_mode: text +Formatted: + type: data + extensions: + - .for + tm_scope: none + ace_mode: text + Forth: type: programming color: "#341708" diff --git a/samples/Formatted/wksst8110.for b/samples/Formatted/wksst8110.for new file mode 100644 index 00000000..1ee1a489 --- /dev/null +++ b/samples/Formatted/wksst8110.for @@ -0,0 +1,1317 @@ + Weekly SST data starts week centered on 3Jan1990 + + Nino1+2 Nino3 Nino34 Nino4 + Week SST SSTA SST SSTA SST SSTA SST SSTA + 03JAN1990 23.4-0.4 25.1-0.3 26.6 0.0 28.6 0.3 + 10JAN1990 23.4-0.8 25.2-0.3 26.6 0.1 28.6 0.3 + 17JAN1990 24.2-0.3 25.3-0.3 26.5-0.1 28.6 0.3 + 24JAN1990 24.4-0.5 25.5-0.4 26.5-0.1 28.4 0.2 + 31JAN1990 25.1-0.2 25.8-0.2 26.7 0.1 28.4 0.2 + 07FEB1990 25.8 0.2 26.1-0.1 26.8 0.1 28.4 0.3 + 14FEB1990 25.9-0.1 26.4 0.0 26.9 0.2 28.5 0.4 + 21FEB1990 26.1-0.1 26.7 0.2 27.1 0.3 28.9 0.8 + 28FEB1990 26.1-0.2 26.7-0.1 27.2 0.3 29.0 0.8 + 07MAR1990 26.7 0.3 26.7-0.2 27.3 0.2 28.9 0.7 + 14MAR1990 26.1-0.4 26.9-0.2 27.3 0.1 28.6 0.4 + 21MAR1990 26.1-0.2 27.2 0.0 27.6 0.3 28.7 0.5 + 28MAR1990 25.7-0.4 27.5 0.2 27.8 0.3 28.8 0.5 + 04APR1990 25.6-0.3 27.6 0.3 27.9 0.4 28.8 0.4 + 11APR1990 25.1-0.6 27.6 0.2 27.9 0.2 28.8 0.3 + 18APR1990 25.3 0.0 27.7 0.2 28.0 0.2 28.9 0.4 + 25APR1990 25.1 0.0 27.7 0.4 28.2 0.4 29.2 0.6 + 02MAY1990 24.6-0.2 27.6 0.3 28.1 0.3 29.0 0.4 + 09MAY1990 24.2-0.2 27.5 0.3 28.1 0.3 28.9 0.2 + 16MAY1990 24.3 0.1 27.4 0.3 28.0 0.2 28.8 0.1 + 23MAY1990 23.7-0.2 27.2 0.2 28.1 0.3 29.0 0.2 + 30MAY1990 23.4-0.1 27.1 0.3 27.9 0.2 28.9 0.1 + 06JUN1990 23.2 0.0 26.7 0.1 27.7 0.0 28.9 0.1 + 13JUN1990 22.8-0.2 26.6 0.1 27.7 0.0 29.0 0.1 + 20JUN1990 22.5-0.1 26.4 0.0 27.5-0.1 29.0 0.1 + 27JUN1990 22.1-0.3 26.0-0.1 27.3-0.2 28.9 0.1 + 04JUL1990 21.7-0.4 25.8-0.2 27.3-0.1 28.9 0.1 + 11JUL1990 21.3-0.5 25.4-0.3 27.2-0.1 28.8 0.0 + 18JUL1990 21.0-0.5 25.7 0.1 27.4 0.2 29.1 0.3 + 25JUL1990 20.2-1.1 25.1-0.4 27.3 0.1 29.1 0.3 + 01AUG1990 20.6-0.6 25.1-0.2 27.1 0.1 29.0 0.3 + 08AUG1990 20.4-0.5 25.2 0.1 27.2 0.3 29.3 0.6 + 15AUG1990 20.4-0.3 25.1 0.1 27.0 0.2 29.2 0.5 + 22AUG1990 19.8-0.7 24.9 0.0 27.0 0.2 29.2 0.5 + 29AUG1990 20.2-0.3 25.0 0.1 26.9 0.2 29.0 0.4 + 05SEP1990 19.7-0.8 24.9 0.0 26.7 0.0 28.9 0.3 + 12SEP1990 20.1-0.3 24.7-0.2 26.7 0.0 29.1 0.4 + 19SEP1990 20.3-0.1 24.9 0.1 26.8 0.0 29.1 0.4 + 26SEP1990 20.3-0.2 24.8-0.1 26.7 0.0 29.0 0.3 + 03OCT1990 20.8 0.1 25.1 0.2 26.9 0.2 29.2 0.5 + 10OCT1990 20.1-0.6 24.9 0.0 27.0 0.3 29.1 0.5 + 17OCT1990 20.3-0.6 24.9 0.0 27.0 0.3 29.3 0.6 + 24OCT1990 20.1-0.9 24.9-0.1 27.0 0.4 29.3 0.6 + 31OCT1990 20.2-1.0 24.7-0.2 26.9 0.2 29.2 0.6 + 07NOV1990 20.5-0.8 25.0 0.1 26.9 0.3 29.1 0.5 + 14NOV1990 20.8-0.8 24.8-0.1 26.7 0.0 29.0 0.4 + 21NOV1990 20.9-0.9 24.6-0.4 26.6 0.0 29.0 0.4 + 28NOV1990 21.5-0.6 24.8-0.3 26.5-0.1 28.9 0.4 + 05DEC1990 22.2-0.2 25.2 0.1 26.9 0.3 29.2 0.7 + 12DEC1990 22.1-0.5 25.0-0.1 26.8 0.3 29.3 0.8 + 19DEC1990 22.2-0.8 24.9-0.3 26.9 0.4 29.2 0.7 + 26DEC1990 23.3 0.0 25.3 0.0 27.0 0.4 29.0 0.6 + 02JAN1991 23.2-0.5 25.3-0.1 26.9 0.4 28.9 0.5 + 09JAN1991 23.5-0.6 25.4-0.1 27.0 0.4 29.1 0.8 + 16JAN1991 23.7-0.7 25.7 0.1 27.0 0.5 29.0 0.8 + 23JAN1991 24.2-0.6 25.8 0.0 27.1 0.5 29.0 0.8 + 30JAN1991 24.7-0.5 26.0 0.0 27.0 0.3 28.9 0.7 + 06FEB1991 25.4-0.2 26.1 0.0 27.0 0.3 28.8 0.6 + 13FEB1991 26.0 0.0 26.3 0.0 27.0 0.3 28.8 0.7 + 20FEB1991 26.5 0.3 26.3-0.2 26.9 0.1 28.7 0.6 + 27FEB1991 26.5 0.2 26.5-0.2 26.8-0.1 28.5 0.4 + 06MAR1991 26.5 0.2 26.6-0.3 26.8-0.2 28.5 0.3 + 13MAR1991 26.8 0.4 27.0-0.1 27.1-0.1 28.5 0.3 + 20MAR1991 26.6 0.2 27.1-0.1 27.4 0.1 28.6 0.4 + 27MAR1991 26.2 0.1 27.4 0.1 27.7 0.3 28.9 0.6 + 03APR1991 25.8-0.1 27.3 0.0 27.8 0.2 28.9 0.5 + 10APR1991 25.2-0.5 27.0-0.4 27.8 0.1 29.1 0.7 + 17APR1991 24.9-0.5 27.5 0.0 28.2 0.4 29.2 0.7 + 24APR1991 24.3-0.8 27.4 0.0 28.1 0.3 29.2 0.6 + 01MAY1991 24.6-0.2 27.6 0.4 28.1 0.3 29.1 0.4 + 08MAY1991 24.4-0.2 27.5 0.3 28.3 0.5 29.3 0.6 + 15MAY1991 24.5 0.2 27.5 0.4 28.4 0.5 29.5 0.7 + 22MAY1991 24.3 0.4 27.7 0.7 28.5 0.7 29.5 0.7 + 29MAY1991 24.2 0.5 27.6 0.8 28.5 0.7 29.5 0.7 + 05JUN1991 23.7 0.4 27.5 0.8 28.3 0.6 29.3 0.5 + 12JUN1991 23.2 0.2 27.4 0.9 28.3 0.6 29.3 0.5 + 19JUN1991 23.0 0.3 27.2 0.9 28.4 0.8 29.4 0.5 + 26JUN1991 22.2-0.2 27.3 1.1 28.4 0.9 29.4 0.6 + 03JUL1991 22.8 0.7 27.0 1.0 28.1 0.7 29.2 0.4 + 10JUL1991 22.3 0.4 26.8 1.0 28.1 0.8 29.2 0.4 + 17JUL1991 21.9 0.3 26.6 1.0 27.9 0.7 29.3 0.5 + 24JUL1991 21.6 0.3 26.2 0.7 27.7 0.5 29.2 0.5 + 31JUL1991 21.6 0.5 26.1 0.8 27.9 0.9 29.5 0.7 + 07AUG1991 21.2 0.3 25.6 0.4 27.5 0.6 29.3 0.6 + 14AUG1991 21.3 0.5 25.4 0.4 27.6 0.7 29.3 0.6 + 21AUG1991 20.9 0.3 25.4 0.5 27.4 0.6 29.3 0.6 + 28AUG1991 20.7 0.2 25.2 0.3 27.0 0.3 29.0 0.3 + 04SEP1991 20.9 0.4 25.1 0.2 27.1 0.3 29.1 0.5 + 11SEP1991 20.7 0.3 24.7-0.1 26.9 0.1 29.0 0.4 + 18SEP1991 20.7 0.3 25.1 0.2 27.2 0.5 29.4 0.7 + 25SEP1991 20.8 0.3 25.2 0.3 27.1 0.4 29.2 0.5 + 02OCT1991 20.8 0.2 25.3 0.4 27.2 0.5 29.3 0.6 + 09OCT1991 21.1 0.4 25.6 0.7 27.7 1.0 29.5 0.8 + 16OCT1991 20.7-0.1 25.5 0.6 27.8 1.1 29.6 1.0 + 23OCT1991 21.2 0.2 25.7 0.8 27.6 0.9 29.4 0.7 + 30OCT1991 21.9 0.7 25.9 1.0 27.8 1.1 29.4 0.8 + 06NOV1991 22.0 0.7 25.8 0.9 27.8 1.1 29.5 0.8 + 13NOV1991 21.9 0.4 25.9 1.0 27.8 1.1 29.5 0.9 + 20NOV1991 22.5 0.7 26.1 1.1 27.9 1.3 29.4 0.8 + 27NOV1991 22.3 0.3 26.1 1.1 28.0 1.4 29.4 0.9 + 04DEC1991 22.8 0.5 26.2 1.1 28.1 1.5 29.4 0.9 + 11DEC1991 23.4 0.8 26.5 1.4 28.3 1.7 29.4 0.9 + 18DEC1991 23.7 0.8 26.6 1.5 28.5 2.0 29.5 1.0 + 25DEC1991 23.6 0.3 26.7 1.4 28.5 1.9 29.6 1.2 + 01JAN1992 24.0 0.3 26.7 1.3 28.5 1.9 29.3 1.0 + 08JAN1992 24.2 0.2 26.8 1.3 28.5 1.9 29.2 0.9 + 15JAN1992 24.6 0.2 26.9 1.3 28.4 1.9 29.1 0.8 + 22JAN1992 25.3 0.5 27.1 1.3 28.4 1.8 29.0 0.7 + 29JAN1992 25.9 0.7 27.4 1.4 28.3 1.7 28.7 0.6 + 05FEB1992 26.3 0.8 27.5 1.3 28.4 1.7 28.8 0.7 + 12FEB1992 26.4 0.5 27.6 1.3 28.6 1.9 29.0 0.9 + 19FEB1992 26.8 0.6 27.8 1.3 28.8 2.0 29.2 1.1 + 26FEB1992 27.3 1.1 27.9 1.2 28.8 1.9 29.1 1.0 + 04MAR1992 27.3 1.0 27.9 1.1 28.6 1.6 29.1 0.9 + 11MAR1992 27.7 1.2 28.1 1.0 28.7 1.6 29.2 1.0 + 18MAR1992 27.9 1.4 28.5 1.3 28.8 1.6 28.9 0.7 + 25MAR1992 28.1 1.9 28.7 1.4 29.0 1.6 29.1 0.8 + 01APR1992 27.9 1.9 28.7 1.3 29.1 1.6 29.4 1.0 + 08APR1992 28.3 2.6 28.8 1.4 29.3 1.6 29.6 1.2 + 15APR1992 28.0 2.5 28.8 1.3 29.2 1.4 29.5 1.0 + 22APR1992 27.1 1.9 28.6 1.2 29.0 1.2 29.3 0.8 + 29APR1992 27.0 2.1 28.8 1.5 29.1 1.2 29.2 0.6 + 06MAY1992 27.0 2.4 28.8 1.6 29.2 1.3 29.4 0.7 + 13MAY1992 26.6 2.3 28.6 1.5 29.1 1.2 29.5 0.8 + 20MAY1992 25.8 1.8 28.2 1.2 29.0 1.1 29.5 0.8 + 27MAY1992 25.9 2.2 28.1 1.3 28.8 1.1 29.5 0.7 + 03JUN1992 24.2 0.9 27.5 0.8 28.6 0.9 29.4 0.6 + 10JUN1992 24.2 1.2 26.8 0.3 28.3 0.6 29.4 0.6 + 17JUN1992 23.9 1.1 26.6 0.2 27.8 0.2 29.2 0.4 + 24JUN1992 23.5 1.0 26.2 0.0 27.6 0.1 29.2 0.4 + 01JUL1992 22.3 0.1 25.8-0.2 27.6 0.1 29.2 0.4 + 08JUL1992 23.0 1.1 26.2 0.4 28.0 0.7 29.5 0.7 + 15JUL1992 21.4-0.3 25.7 0.0 27.7 0.5 29.5 0.7 + 22JUL1992 21.6 0.2 25.1-0.4 27.2 0.0 29.2 0.5 + 29JUL1992 21.5 0.3 24.9-0.5 27.1 0.1 29.2 0.5 + 05AUG1992 20.8-0.2 24.6-0.6 26.7-0.2 29.1 0.4 + 12AUG1992 20.8 0.0 24.9-0.2 26.6-0.3 28.8 0.1 + 19AUG1992 20.3-0.4 24.6-0.4 26.6-0.3 28.8 0.2 + 26AUG1992 20.3-0.3 24.8-0.2 26.7-0.1 28.9 0.3 + 02SEP1992 20.3-0.2 24.4-0.5 26.3-0.4 28.6 0.0 + 09SEP1992 19.7-0.8 24.4-0.5 26.4-0.3 28.7 0.1 + 16SEP1992 20.1-0.2 24.5-0.3 26.5-0.2 28.9 0.2 + 23SEP1992 20.1-0.3 24.6-0.3 26.5-0.2 28.9 0.2 + 30SEP1992 20.2-0.4 24.7-0.2 26.6-0.1 28.7 0.0 + 07OCT1992 20.5-0.2 24.5-0.4 26.4-0.3 28.8 0.1 + 14OCT1992 20.7 0.0 24.6-0.3 26.4-0.3 28.6-0.1 + 21OCT1992 20.9 0.0 24.6-0.4 26.2-0.5 28.8 0.1 + 28OCT1992 21.5 0.4 24.8-0.1 26.2-0.4 28.5-0.1 + 04NOV1992 21.2-0.1 24.7-0.2 26.3-0.4 28.6 0.0 + 11NOV1992 21.2-0.3 24.8-0.1 26.6-0.1 28.8 0.2 + 18NOV1992 21.2-0.5 24.7-0.3 26.4-0.2 28.5-0.1 + 25NOV1992 22.1 0.2 24.9-0.2 26.7 0.0 28.8 0.2 + 02DEC1992 22.2 0.0 24.9-0.2 26.7 0.1 28.9 0.4 + 09DEC1992 22.2-0.3 25.1 0.0 26.8 0.2 28.7 0.2 + 16DEC1992 22.3-0.5 24.9-0.3 26.7 0.1 28.7 0.3 + 23DEC1992 22.5-0.7 25.1-0.2 26.8 0.2 28.9 0.4 + 30DEC1992 23.3-0.2 25.1-0.3 26.6 0.0 28.6 0.2 + 06JAN1993 23.6-0.3 25.4-0.1 26.7 0.1 28.5 0.2 + 13JAN1993 24.4 0.1 25.6 0.0 26.8 0.2 28.7 0.4 + 20JAN1993 24.5-0.2 25.5-0.2 26.6 0.0 28.6 0.3 + 27JAN1993 25.2 0.1 25.8-0.2 26.7 0.0 28.6 0.4 + 03FEB1993 26.2 0.8 26.3 0.2 26.9 0.3 28.5 0.3 + 10FEB1993 26.6 0.7 26.4 0.2 26.8 0.1 28.3 0.2 + 17FEB1993 26.6 0.4 26.9 0.5 27.0 0.2 28.3 0.2 + 24FEB1993 26.6 0.4 26.7 0.1 27.1 0.2 28.5 0.4 + 03MAR1993 26.9 0.6 26.9 0.1 27.2 0.2 28.4 0.3 + 10MAR1993 27.2 0.7 27.3 0.3 27.4 0.3 28.4 0.3 + 17MAR1993 27.1 0.6 27.5 0.3 27.7 0.4 28.6 0.4 + 24MAR1993 27.2 1.0 28.0 0.7 28.0 0.7 28.8 0.5 + 31MAR1993 27.7 1.7 28.3 1.0 28.2 0.7 28.9 0.6 + 07APR1993 26.6 0.9 28.4 1.0 28.3 0.6 28.7 0.3 + 14APR1993 26.3 0.7 28.5 1.0 28.8 1.1 29.0 0.5 + 21APR1993 26.3 1.0 28.4 1.0 28.7 0.9 29.0 0.5 + 28APR1993 26.0 1.1 28.5 1.2 28.8 1.0 29.0 0.4 + 05MAY1993 25.9 1.2 28.5 1.2 28.8 1.0 28.9 0.3 + 12MAY1993 25.6 1.2 28.3 1.2 28.9 1.0 29.1 0.4 + 19MAY1993 24.9 0.8 28.1 1.1 28.8 1.0 29.2 0.4 + 26MAY1993 24.3 0.6 27.9 1.0 28.9 1.1 29.2 0.4 + 02JUN1993 24.5 1.1 27.7 0.9 28.6 0.9 29.2 0.4 + 09JUN1993 23.9 0.7 27.2 0.6 28.3 0.6 29.1 0.2 + 16JUN1993 23.6 0.8 27.1 0.6 28.2 0.6 29.1 0.2 + 23JUN1993 23.8 1.3 26.9 0.7 28.2 0.7 29.3 0.5 + 30JUN1993 23.0 0.7 26.7 0.6 28.1 0.6 29.3 0.5 + 07JUL1993 22.4 0.4 26.1 0.3 27.9 0.6 29.3 0.5 + 14JUL1993 22.2 0.5 25.8 0.1 27.4 0.2 29.2 0.4 + 21JUL1993 22.0 0.6 25.6 0.1 27.5 0.4 29.2 0.4 + 28JUL1993 21.3 0.0 25.3-0.1 27.2 0.1 29.1 0.4 + 04AUG1993 21.2 0.2 25.0-0.3 26.8-0.2 28.9 0.2 + 11AUG1993 20.8 0.0 25.0-0.1 26.9 0.0 29.0 0.3 + 18AUG1993 21.1 0.5 24.8-0.1 26.8 0.0 28.7 0.1 + 25AUG1993 21.2 0.6 24.9 0.0 26.9 0.1 29.1 0.4 + 01SEP1993 20.9 0.4 24.9 0.0 26.9 0.2 29.1 0.4 + 08SEP1993 20.8 0.3 25.0 0.1 26.8 0.1 29.0 0.4 + 15SEP1993 20.8 0.4 24.9 0.0 26.9 0.2 29.1 0.5 + 22SEP1993 21.0 0.5 25.0 0.2 27.0 0.3 29.1 0.4 + 29SEP1993 20.7 0.2 25.1 0.2 27.0 0.3 29.0 0.3 + 06OCT1993 20.6-0.1 25.2 0.3 26.9 0.2 28.8 0.1 + 13OCT1993 20.8 0.0 25.3 0.4 27.0 0.3 29.0 0.3 + 20OCT1993 21.2 0.3 25.0 0.1 26.6 0.0 28.9 0.2 + 27OCT1993 21.3 0.2 25.3 0.4 27.1 0.4 29.0 0.3 + 03NOV1993 22.0 0.8 25.4 0.4 27.2 0.5 29.0 0.3 + 10NOV1993 21.4 0.0 25.1 0.1 26.9 0.2 28.8 0.2 + 17NOV1993 21.7 0.0 25.1 0.2 26.9 0.2 28.9 0.3 + 24NOV1993 21.4-0.5 25.1 0.0 26.7 0.1 29.0 0.5 + 01DEC1993 21.8-0.4 25.3 0.2 26.9 0.3 29.2 0.6 + 08DEC1993 22.1-0.3 25.3 0.2 26.9 0.4 29.0 0.5 + 15DEC1993 23.1 0.4 25.3 0.2 26.8 0.3 28.9 0.4 + 22DEC1993 23.0-0.2 25.3 0.1 26.6 0.1 28.9 0.4 + 29DEC1993 23.3-0.2 25.4 0.0 26.5-0.1 28.6 0.2 + 05JAN1994 23.8 0.0 25.7 0.2 26.7 0.1 28.7 0.3 + 12JAN1994 23.9-0.3 25.7 0.1 26.7 0.2 28.5 0.2 + 19JAN1994 24.6 0.0 25.7-0.1 26.5-0.1 28.5 0.2 + 26JAN1994 24.8-0.2 25.8-0.1 26.5-0.2 28.2 0.0 + 02FEB1994 25.4 0.0 25.9-0.1 26.6 0.0 28.2 0.0 + 09FEB1994 25.9 0.1 26.2 0.0 26.7 0.0 28.1 0.0 + 16FEB1994 25.6-0.5 26.1-0.3 26.6-0.1 28.0 0.0 + 23FEB1994 26.1-0.1 25.9-0.7 26.4-0.5 27.9-0.2 + 02MAR1994 26.2-0.1 26.6-0.2 26.6-0.3 27.9-0.2 + 09MAR1994 25.5-0.9 27.0 0.1 27.2 0.1 28.2 0.1 + 16MAR1994 25.7-0.9 27.0-0.1 27.4 0.2 28.4 0.2 + 23MAR1994 25.0-1.2 26.8-0.4 27.3-0.1 28.3 0.0 + 30MAR1994 24.8-1.3 27.0-0.3 27.7 0.2 28.3 0.0 + 06APR1994 24.9-0.9 27.0-0.4 27.6 0.0 28.5 0.1 + 13APR1994 24.7-0.9 27.2-0.3 28.0 0.2 28.6 0.2 + 20APR1994 24.2-1.1 27.0-0.4 28.0 0.2 28.6 0.1 + 27APR1994 23.4-1.6 27.1-0.2 28.1 0.3 28.7 0.2 + 04MAY1994 23.4-1.3 27.0-0.3 27.9 0.1 28.8 0.1 + 11MAY1994 23.6-0.8 26.8-0.3 27.8 0.0 28.9 0.2 + 18MAY1994 23.0-1.1 27.2 0.1 28.2 0.4 29.0 0.2 + 25MAY1994 23.0-0.8 26.9 0.0 28.1 0.3 29.1 0.3 + 01JUN1994 22.8-0.7 26.9 0.1 28.3 0.5 29.3 0.5 + 08JUN1994 22.7-0.5 26.7 0.1 28.0 0.3 29.1 0.3 + 15JUN1994 22.7-0.1 26.8 0.4 28.2 0.6 29.1 0.3 + 22JUN1994 22.2-0.4 26.2-0.1 27.9 0.3 29.2 0.4 + 29JUN1994 21.7-0.6 25.9-0.2 27.6 0.1 29.2 0.4 + 06JUL1994 21.9-0.1 25.6-0.3 27.4 0.1 29.3 0.5 + 13JUL1994 21.3-0.4 25.2-0.5 27.3 0.1 29.4 0.6 + 20JUL1994 20.9-0.6 25.1-0.4 27.4 0.2 29.5 0.8 + 27JUL1994 20.8-0.5 24.8-0.6 27.2 0.1 29.4 0.6 + 03AUG1994 20.1-1.0 24.5-0.8 27.3 0.3 29.4 0.7 + 10AUG1994 19.2-1.6 24.8-0.3 27.6 0.7 29.5 0.8 + 17AUG1994 19.6-1.1 24.8-0.2 27.4 0.6 29.5 0.9 + 24AUG1994 20.0-0.5 24.8-0.2 27.3 0.5 29.5 0.8 + 31AUG1994 19.6-0.9 24.7-0.2 27.1 0.3 29.4 0.7 + 07SEP1994 20.1-0.4 24.6-0.3 26.9 0.2 29.3 0.6 + 14SEP1994 20.0-0.3 24.6-0.2 26.9 0.1 29.2 0.5 + 21SEP1994 20.5 0.1 24.9 0.0 27.0 0.2 29.2 0.5 + 28SEP1994 20.2-0.3 25.2 0.3 27.2 0.5 29.2 0.6 + 05OCT1994 21.0 0.3 25.4 0.5 27.3 0.6 29.4 0.8 + 12OCT1994 21.7 0.9 25.6 0.7 27.5 0.8 29.4 0.8 + 19OCT1994 21.8 0.9 25.6 0.6 27.5 0.8 29.4 0.8 + 26OCT1994 21.7 0.7 25.6 0.6 27.6 1.0 29.5 0.9 + 02NOV1994 22.1 0.9 25.7 0.7 27.8 1.1 29.6 1.0 + 09NOV1994 22.1 0.7 26.0 1.0 27.9 1.3 29.5 0.9 + 16NOV1994 22.3 0.7 25.8 0.8 27.8 1.1 29.6 1.0 + 23NOV1994 22.8 0.9 25.9 0.9 27.9 1.2 29.7 1.1 + 30NOV1994 22.9 0.7 26.0 0.9 28.0 1.4 29.8 1.3 + 07DEC1994 23.3 0.9 26.0 0.9 27.9 1.3 29.6 1.1 + 14DEC1994 23.4 0.7 25.9 0.8 27.9 1.3 29.5 1.1 + 21DEC1994 23.7 0.6 26.2 1.0 27.9 1.3 29.3 0.9 + 28DEC1994 24.3 0.9 26.3 0.9 27.8 1.3 29.3 0.9 + 04JAN1995 24.7 0.8 26.1 0.7 27.6 1.1 29.3 0.9 + 11JAN1995 25.1 0.9 26.2 0.7 27.6 1.0 29.2 0.9 + 18JAN1995 25.3 0.8 26.4 0.7 27.6 1.0 29.3 1.0 + 25JAN1995 25.9 0.9 26.5 0.6 27.5 0.8 29.1 0.8 + 01FEB1995 26.2 0.9 26.7 0.7 27.4 0.8 29.0 0.9 + 08FEB1995 26.7 0.9 26.9 0.7 27.4 0.7 29.1 1.0 + 15FEB1995 26.5 0.4 26.8 0.4 27.3 0.5 28.9 0.8 + 22FEB1995 26.4 0.2 26.9 0.3 27.5 0.7 29.0 0.9 + 01MAR1995 26.0-0.2 26.9 0.2 27.7 0.7 29.0 0.9 + 08MAR1995 26.0-0.4 26.7-0.2 27.4 0.4 28.9 0.7 + 15MAR1995 26.6 0.1 27.1 0.0 27.7 0.5 29.0 0.9 + 22MAR1995 26.4 0.1 27.2-0.1 27.7 0.3 29.0 0.8 + 29MAR1995 25.4-0.6 27.4 0.1 27.7 0.2 28.8 0.5 + 05APR1995 24.9-1.0 27.2-0.2 27.9 0.3 28.8 0.5 + 12APR1995 24.9-0.7 27.3-0.2 27.8 0.1 28.8 0.4 + 19APR1995 24.6-0.7 27.3-0.2 28.2 0.4 28.9 0.3 + 26APR1995 23.5-1.5 26.6-0.7 27.9 0.1 28.9 0.3 + 03MAY1995 23.3-1.4 26.6-0.6 28.0 0.2 29.2 0.6 + 10MAY1995 23.0-1.4 26.3-0.8 27.7-0.1 29.1 0.4 + 17MAY1995 23.0-1.2 26.2-0.8 27.7-0.2 29.2 0.4 + 24MAY1995 23.2-0.6 26.4-0.5 27.6-0.2 29.1 0.3 + 31MAY1995 22.8-0.7 26.4-0.3 27.7 0.0 29.0 0.2 + 07JUN1995 22.9-0.3 26.4-0.2 27.7 0.0 29.1 0.3 + 14JUN1995 22.9 0.0 26.4-0.1 27.7 0.1 29.1 0.3 + 21JUN1995 21.9-0.7 26.0-0.3 27.5 0.0 28.9 0.1 + 28JUN1995 21.8-0.5 25.8-0.3 27.3-0.1 28.8 0.0 + 05JUL1995 22.0 0.0 25.7-0.2 27.3-0.1 29.0 0.2 + 12JUL1995 21.2-0.5 25.6-0.1 27.1-0.2 28.8 0.0 + 19JUL1995 21.0-0.5 25.3-0.2 26.9-0.3 28.7-0.1 + 26JUL1995 20.8-0.5 25.1-0.3 26.8-0.3 28.6-0.1 + 02AUG1995 20.3-0.8 24.8-0.5 26.7-0.3 28.5-0.2 + 09AUG1995 19.9-1.0 24.3-0.8 26.3-0.6 28.3-0.4 + 16AUG1995 20.0-0.7 24.3-0.7 26.4-0.4 28.5-0.2 + 23AUG1995 19.9-0.7 24.3-0.7 26.3-0.5 28.4-0.2 + 30AUG1995 20.1-0.5 24.0-0.9 25.9-0.8 28.2-0.5 + 06SEP1995 20.4 0.0 24.1-0.8 26.0-0.8 28.2-0.5 + 13SEP1995 19.9-0.5 24.1-0.8 26.0-0.7 28.0-0.6 + 20SEP1995 20.2-0.2 24.0-0.9 26.1-0.7 28.4-0.3 + 27SEP1995 20.2-0.3 23.9-1.0 25.9-0.8 28.4-0.3 + 04OCT1995 19.6-1.0 23.9-1.0 25.6-1.1 28.1-0.5 + 11OCT1995 20.2-0.5 24.1-0.8 25.6-1.1 28.0-0.6 + 18OCT1995 20.0-0.8 24.1-0.9 25.8-0.9 28.2-0.5 + 25OCT1995 20.3-0.7 24.0-0.9 25.6-1.1 27.9-0.8 + 01NOV1995 21.0-0.2 24.1-0.8 25.6-1.0 28.0-0.7 + 08NOV1995 20.6-0.8 23.9-1.1 25.8-0.9 28.1-0.5 + 15NOV1995 21.3-0.2 24.1-0.9 25.7-1.0 27.8-0.8 + 22NOV1995 21.4-0.4 24.1-0.9 25.5-1.1 27.7-0.9 + 29NOV1995 21.6-0.5 24.1-1.0 25.7-0.9 28.1-0.5 + 06DEC1995 21.5-0.9 24.1-1.0 25.6-1.0 27.9-0.6 + 13DEC1995 21.7-1.0 24.0-1.1 25.4-1.2 27.9-0.5 + 20DEC1995 22.0-1.0 24.1-1.1 25.6-1.0 28.1-0.3 + 27DEC1995 22.8-0.6 24.5-0.8 25.7-0.9 28.1-0.3 + 03JAN1996 23.4-0.4 24.6-0.8 25.6-1.0 28.1-0.3 + 10JAN1996 23.6-0.6 24.9-0.6 25.6-1.0 27.9-0.4 + 17JAN1996 24.0-0.5 25.2-0.5 25.9-0.7 27.8-0.5 + 24JAN1996 23.9-1.0 25.0-0.8 25.9-0.7 27.9-0.4 + 31JAN1996 24.6-0.7 25.2-0.8 25.8-0.9 27.8-0.4 + 07FEB1996 25.4-0.3 25.4-0.8 25.6-1.1 27.5-0.6 + 14FEB1996 25.9-0.1 25.7-0.6 25.8-0.9 27.5-0.5 + 21FEB1996 26.0-0.2 25.9-0.6 25.8-1.0 27.4-0.7 + 28FEB1996 26.1-0.2 26.3-0.5 26.3-0.6 27.5-0.6 + 06MAR1996 26.6 0.2 26.5-0.4 26.2-0.8 27.5-0.6 + 13MAR1996 26.1-0.3 26.9-0.2 26.6-0.6 27.7-0.5 + 20MAR1996 26.3-0.1 27.0-0.2 26.8-0.5 27.7-0.5 + 27MAR1996 25.7-0.4 26.7-0.6 26.8-0.6 27.8-0.4 + 03APR1996 24.4-1.5 26.5-0.9 27.0-0.6 27.9-0.5 + 10APR1996 23.9-1.7 27.0-0.4 27.4-0.3 27.9-0.5 + 17APR1996 23.8-1.6 26.8-0.7 27.3-0.4 28.0-0.5 + 24APR1996 23.6-1.5 26.7-0.7 27.6-0.1 28.2-0.3 + 01MAY1996 23.0-1.9 26.4-0.9 27.4-0.4 28.2-0.4 + 08MAY1996 23.0-1.6 26.5-0.7 27.6-0.2 28.4-0.3 + 15MAY1996 23.0-1.3 26.3-0.8 27.3-0.5 28.3-0.4 + 22MAY1996 23.0-0.9 26.2-0.7 27.2-0.6 28.5-0.3 + 29MAY1996 22.6-1.1 26.2-0.6 27.3-0.4 28.6-0.2 + 05JUN1996 22.3-1.0 26.0-0.6 27.3-0.4 28.6-0.3 + 12JUN1996 21.9-1.0 26.0-0.5 27.3-0.4 28.5-0.4 + 19JUN1996 21.4-1.3 25.8-0.6 27.3-0.3 28.4-0.4 + 26JUN1996 20.6-1.8 25.7-0.5 27.3-0.2 28.6-0.2 + 03JUL1996 20.4-1.7 25.9 0.0 27.6 0.2 28.6-0.2 + 10JUL1996 20.1-1.8 25.4-0.3 27.1-0.2 28.5-0.3 + 17JUL1996 20.0-1.6 25.4-0.2 27.1-0.1 28.3-0.5 + 24JUL1996 20.2-1.2 25.1-0.4 26.9-0.2 28.5-0.3 + 31JUL1996 19.2-1.9 24.7-0.6 26.6-0.4 28.4-0.3 + 07AUG1996 19.2-1.7 24.8-0.4 26.7-0.3 28.5-0.2 + 14AUG1996 20.0-0.8 24.6-0.5 26.5-0.4 28.6 0.0 + 21AUG1996 20.1-0.5 24.6-0.3 26.5-0.3 28.6-0.1 + 28AUG1996 18.9-1.6 24.4-0.6 26.5-0.2 28.4-0.3 + 04SEP1996 19.1-1.3 24.3-0.6 26.4-0.4 28.5-0.2 + 11SEP1996 19.4-1.0 24.4-0.5 26.2-0.5 28.3-0.4 + 18SEP1996 19.1-1.3 24.3-0.5 26.4-0.3 28.5-0.2 + 25SEP1996 19.3-1.2 24.4-0.4 26.3-0.4 28.4-0.3 + 02OCT1996 19.5-1.2 24.5-0.4 26.2-0.5 28.3-0.4 + 09OCT1996 19.5-1.3 24.3-0.6 26.2-0.5 28.5-0.2 + 16OCT1996 20.2-0.6 24.4-0.5 26.3-0.3 28.5-0.1 + 23OCT1996 20.5-0.5 24.4-0.6 26.2-0.5 28.3-0.3 + 30OCT1996 20.0-1.1 24.3-0.7 26.1-0.5 28.3-0.3 + 06NOV1996 20.2-1.2 24.4-0.6 26.1-0.5 28.1-0.5 + 13NOV1996 20.1-1.4 24.4-0.6 26.2-0.5 28.3-0.3 + 20NOV1996 20.3-1.5 24.4-0.6 26.3-0.3 28.4-0.1 + 27NOV1996 20.4-1.6 24.3-0.7 26.2-0.4 28.3-0.2 + 04DEC1996 20.8-1.5 24.4-0.7 26.3-0.3 28.5 0.0 + 11DEC1996 21.6-1.0 24.1-1.0 26.1-0.5 28.6 0.1 + 18DEC1996 21.6-1.3 24.2-1.0 25.9-0.6 28.3-0.1 + 25DEC1996 22.1-1.1 24.1-1.1 25.9-0.7 28.3-0.1 + 01JAN1997 22.5-1.2 24.3-1.1 25.8-0.8 28.2-0.2 + 08JAN1997 23.0-1.0 24.5-1.0 25.9-0.6 28.4 0.1 + 15JAN1997 23.6-0.8 24.6-1.0 25.8-0.7 28.4 0.1 + 22JAN1997 24.3-0.5 24.8-1.0 25.9-0.7 28.4 0.2 + 29JAN1997 24.6-0.6 25.1-0.8 26.3-0.4 28.4 0.2 + 05FEB1997 25.3-0.2 25.2-0.9 26.2-0.5 28.4 0.2 + 12FEB1997 25.4-0.6 25.8-0.5 26.4-0.3 28.3 0.2 + 19FEB1997 26.3 0.1 25.9-0.6 26.4-0.4 28.2 0.1 + 26FEB1997 26.2-0.1 26.2-0.4 26.5-0.4 28.2 0.1 + 05MAR1997 26.8 0.5 26.6-0.3 26.6-0.4 28.1 0.0 + 12MAR1997 26.9 0.5 26.8-0.3 26.8-0.4 28.3 0.1 + 19MAR1997 27.0 0.6 27.3 0.1 27.4 0.1 28.5 0.3 + 26MAR1997 27.2 1.0 27.4 0.1 27.3-0.1 28.9 0.7 + 02APR1997 27.0 1.1 27.3-0.1 27.5 0.0 29.2 0.8 + 09APR1997 26.4 0.7 27.3-0.1 27.8 0.2 29.2 0.8 + 16APR1997 26.5 1.1 27.6 0.1 28.0 0.3 29.3 0.8 + 23APR1997 26.6 1.4 27.8 0.4 28.4 0.6 29.5 0.9 + 30APR1997 26.8 1.9 28.0 0.7 28.4 0.6 29.5 0.8 + 07MAY1997 26.8 2.2 28.2 1.0 28.6 0.8 29.4 0.8 + 14MAY1997 26.7 2.4 28.0 0.9 28.5 0.6 29.3 0.6 + 21MAY1997 26.6 2.6 27.9 1.0 28.6 0.8 29.5 0.7 + 28MAY1997 26.8 3.1 28.1 1.3 28.8 1.0 29.5 0.7 + 04JUN1997 26.4 3.1 28.0 1.3 28.8 1.1 29.4 0.6 + 11JUN1997 26.5 3.5 28.1 1.6 28.9 1.2 29.3 0.5 + 18JUN1997 26.0 3.3 28.2 1.8 29.0 1.4 29.4 0.6 + 25JUN1997 26.2 3.7 28.2 2.0 29.1 1.6 29.5 0.7 + 02JUL1997 25.9 3.7 28.1 2.1 29.0 1.5 29.4 0.6 + 09JUL1997 25.7 3.8 28.0 2.2 28.9 1.6 29.5 0.7 + 16JUL1997 25.7 4.1 28.1 2.5 29.0 1.8 29.5 0.7 + 23JUL1997 25.5 4.1 27.9 2.4 28.8 1.7 29.5 0.8 + 30JUL1997 25.2 4.0 27.9 2.6 28.9 1.9 29.5 0.8 + 06AUG1997 25.3 4.3 27.8 2.6 28.8 1.8 29.4 0.7 + 13AUG1997 25.4 4.6 27.9 2.9 28.9 2.0 29.3 0.6 + 20AUG1997 24.2 3.6 27.9 2.9 28.9 2.1 29.2 0.5 + 27AUG1997 24.3 3.7 27.7 2.7 28.8 2.0 29.2 0.5 + 03SEP1997 24.6 4.2 27.8 2.9 28.9 2.1 29.2 0.6 + 10SEP1997 24.6 4.2 27.8 2.9 28.9 2.2 29.3 0.6 + 17SEP1997 24.2 3.8 27.8 2.9 28.9 2.2 29.3 0.6 + 24SEP1997 24.4 3.9 27.9 3.0 28.9 2.2 29.5 0.8 + 01OCT1997 24.1 3.5 28.0 3.1 29.1 2.4 29.4 0.7 + 08OCT1997 24.5 3.8 28.1 3.2 29.2 2.6 29.3 0.6 + 15OCT1997 24.5 3.7 28.1 3.2 29.2 2.5 29.3 0.7 + 22OCT1997 24.9 3.9 28.2 3.3 29.3 2.6 29.5 0.8 + 29OCT1997 24.7 3.6 28.3 3.4 29.2 2.6 29.2 0.6 + 05NOV1997 25.0 3.7 28.4 3.4 29.2 2.6 29.2 0.6 + 12NOV1997 25.8 4.3 28.5 3.6 29.3 2.7 29.5 0.8 + 19NOV1997 25.8 4.1 28.6 3.6 29.3 2.7 29.7 1.1 + 26NOV1997 25.9 3.9 28.7 3.7 29.4 2.8 29.7 1.1 + 03DEC1997 26.2 3.9 28.6 3.6 29.2 2.6 29.4 0.9 + 10DEC1997 26.7 4.2 28.7 3.6 29.2 2.7 29.4 0.9 + 17DEC1997 27.0 4.1 28.8 3.6 29.3 2.7 29.3 0.8 + 24DEC1997 27.2 4.0 28.8 3.5 29.3 2.7 29.3 0.9 + 31DEC1997 27.7 4.1 28.9 3.5 29.2 2.7 29.2 0.8 + 07JAN1998 28.0 4.0 28.9 3.4 29.2 2.6 29.1 0.8 + 14JAN1998 28.4 4.0 28.9 3.3 29.1 2.5 29.0 0.7 + 21JAN1998 28.4 3.7 28.9 3.2 29.0 2.4 28.9 0.7 + 28JAN1998 28.3 3.2 29.1 3.1 29.1 2.4 28.9 0.7 + 04FEB1998 28.9 3.4 29.1 3.0 29.2 2.5 29.0 0.9 + 11FEB1998 28.9 3.0 29.0 2.7 29.0 2.3 29.0 0.9 + 18FEB1998 29.1 3.0 28.8 2.3 28.7 1.9 28.8 0.7 + 25FEB1998 29.1 2.9 28.9 2.2 28.6 1.7 28.8 0.7 + 04MAR1998 29.2 2.8 29.0 2.2 28.5 1.5 28.6 0.4 + 11MAR1998 29.2 2.8 29.1 2.1 28.7 1.6 28.8 0.7 + 18MAR1998 29.2 2.7 29.1 2.0 28.6 1.4 28.6 0.4 + 25MAR1998 29.1 2.8 29.2 2.0 28.8 1.5 28.6 0.4 + 01APR1998 29.1 3.1 29.3 1.9 28.7 1.2 28.6 0.2 + 08APR1998 28.8 3.0 29.2 1.8 28.6 1.0 28.5 0.0 + 15APR1998 28.6 3.1 29.1 1.6 28.4 0.6 28.5 0.0 + 22APR1998 28.4 3.2 29.0 1.6 28.5 0.7 28.5-0.1 + 29APR1998 28.3 3.4 28.9 1.6 28.7 0.8 28.7 0.1 + 06MAY1998 27.8 3.2 29.4 2.1 29.1 1.3 28.7 0.1 + 13MAY1998 28.1 3.8 28.7 1.6 28.8 0.9 28.7-0.1 + 20MAY1998 27.9 3.9 27.6 0.7 28.3 0.5 28.6-0.2 + 27MAY1998 27.0 3.3 27.1 0.2 27.9 0.1 28.8 0.0 + 03JUN1998 26.2 2.8 26.1-0.6 27.1-0.6 28.7-0.1 + 10JUN1998 26.1 3.0 26.2-0.3 26.9-0.8 28.6-0.2 + 17JUN1998 24.6 1.8 25.8-0.6 26.7-1.0 28.7-0.1 + 24JUN1998 24.5 2.0 26.0-0.2 26.4-1.1 28.5-0.3 + 01JUL1998 24.1 1.9 25.7-0.3 26.4-1.1 28.3-0.5 + 08JUL1998 23.6 1.7 25.6-0.2 26.2-1.2 28.2-0.6 + 15JUL1998 23.6 2.0 25.3-0.4 25.9-1.4 28.1-0.7 + 22JUL1998 23.0 1.5 24.9-0.6 25.7-1.4 28.0-0.8 + 29JUL1998 23.2 2.0 24.9-0.5 25.7-1.4 27.8-1.0 + 05AUG1998 22.6 1.7 24.8-0.4 25.6-1.4 27.9-0.8 + 12AUG1998 21.8 1.1 24.6-0.5 25.5-1.4 27.8-0.9 + 19AUG1998 21.3 0.7 24.4-0.6 25.2-1.6 27.6-1.0 + 26AUG1998 21.2 0.7 24.7-0.3 25.6-1.2 27.6-1.0 + 02SEP1998 21.1 0.6 24.5-0.4 25.6-1.2 27.8-0.8 + 09SEP1998 20.9 0.5 24.3-0.6 25.9-0.8 28.3-0.4 + 16SEP1998 21.0 0.7 24.2-0.7 25.7-1.0 28.0-0.7 + 23SEP1998 20.5 0.1 24.1-0.7 25.5-1.2 27.6-1.1 + 30SEP1998 20.9 0.3 23.7-1.2 25.1-1.6 27.2-1.4 + 07OCT1998 20.9 0.2 23.9-1.0 25.3-1.4 27.5-1.2 + 14OCT1998 21.2 0.4 24.1-0.8 25.4-1.3 27.3-1.4 + 21OCT1998 21.1 0.1 24.1-0.8 25.3-1.4 27.2-1.5 + 28OCT1998 21.6 0.5 24.2-0.7 25.5-1.2 27.3-1.3 + 04NOV1998 21.4 0.1 24.4-0.6 25.2-1.5 27.2-1.4 + 11NOV1998 21.0-0.4 24.0-0.9 25.2-1.5 27.2-1.4 + 18NOV1998 21.7 0.0 24.1-0.9 25.2-1.4 27.1-1.5 + 25NOV1998 21.5-0.5 24.0-1.0 25.1-1.5 27.2-1.4 + 02DEC1998 21.7-0.5 23.9-1.2 25.1-1.5 27.3-1.2 + 09DEC1998 22.0-0.5 23.8-1.3 24.8-1.8 27.2-1.2 + 16DEC1998 22.5-0.3 23.9-1.3 24.7-1.8 27.1-1.4 + 23DEC1998 23.3 0.2 23.8-1.4 24.6-1.9 27.0-1.4 + 30DEC1998 23.2-0.4 23.9-1.5 24.7-1.9 26.7-1.7 + 06JAN1999 23.4-0.5 24.1-1.4 24.7-1.9 26.7-1.7 + 13JAN1999 23.7-0.6 24.2-1.4 25.0-1.6 26.8-1.5 + 20JAN1999 23.3-1.4 24.5-1.3 25.0-1.6 26.4-1.8 + 27JAN1999 24.5-0.6 24.9-1.0 25.0-1.6 26.2-2.0 + 03FEB1999 24.8-0.6 25.1-1.0 25.2-1.5 26.6-1.6 + 10FEB1999 25.1-0.7 25.0-1.2 25.2-1.5 26.5-1.6 + 17FEB1999 25.5-0.6 25.5-0.9 25.5-1.3 26.3-1.7 + 24FEB1999 26.8 0.6 26.4-0.2 25.7-1.2 26.4-1.7 + 03MAR1999 27.4 1.1 26.7-0.1 26.1-0.9 26.8-1.3 + 10MAR1999 27.0 0.6 26.6-0.4 26.1-1.0 26.7-1.5 + 17MAR1999 26.4 0.0 26.7-0.4 26.2-1.0 26.9-1.2 + 24MAR1999 26.3 0.0 26.7-0.6 26.5-0.9 27.0-1.2 + 31MAR1999 25.8-0.3 26.6-0.7 26.5-1.0 27.0-1.3 + 07APR1999 24.4-1.3 26.7-0.7 26.7-0.9 27.1-1.3 + 14APR1999 24.6-0.9 26.5-0.9 26.8-0.9 27.3-1.1 + 21APR1999 23.8-1.4 26.7-0.7 27.0-0.8 27.4-1.1 + 28APR1999 23.7-1.3 26.8-0.6 27.0-0.8 27.5-1.1 + 05MAY1999 23.6-1.1 26.6-0.6 27.0-0.8 27.8-0.9 + 12MAY1999 23.7-0.7 26.7-0.4 27.1-0.7 27.9-0.8 + 19MAY1999 23.7-0.4 26.5-0.5 26.9-0.9 27.8-0.9 + 26MAY1999 23.2-0.6 26.1-0.8 26.9-0.9 27.9-0.9 + 02JUN1999 22.5-0.9 25.8-0.9 26.7-1.1 28.0-0.8 + 09JUN1999 22.4-0.8 25.8-0.7 26.6-1.1 27.9-0.9 + 16JUN1999 21.6-1.2 25.6-0.9 26.6-1.1 28.0-0.9 + 23JUN1999 21.3-1.2 25.4-0.8 26.5-1.0 28.0-0.8 + 30JUN1999 21.3-1.0 25.3-0.8 26.6-0.8 28.1-0.7 + 07JUL1999 20.4-1.5 25.2-0.7 26.6-0.7 28.1-0.7 + 14JUL1999 20.4-1.3 24.9-0.7 26.4-0.8 27.8-1.0 + 21JUL1999 20.3-1.1 24.8-0.7 26.2-0.9 27.8-1.0 + 28JUL1999 20.2-1.0 24.4-1.0 26.0-1.0 27.8-0.9 + 04AUG1999 20.2-0.8 24.3-0.9 26.0-1.0 27.8-0.9 + 11AUG1999 19.7-1.1 24.1-1.0 25.6-1.3 27.7-1.0 + 18AUG1999 19.5-1.1 23.9-1.1 25.4-1.4 27.8-0.9 + 25AUG1999 19.7-0.9 24.0-1.0 25.5-1.3 27.6-1.1 + 01SEP1999 19.5-1.0 23.6-1.3 25.4-1.4 27.6-1.0 + 08SEP1999 19.2-1.2 23.7-1.2 25.7-1.1 27.7-0.9 + 15SEP1999 18.9-1.5 23.6-1.3 25.7-1.0 27.7-0.9 + 22SEP1999 19.3-1.2 23.8-1.1 25.8-0.9 27.9-0.7 + 29SEP1999 19.5-1.1 24.0-0.8 25.9-0.8 27.8-0.8 + 06OCT1999 19.7-0.9 23.6-1.3 25.7-1.0 27.9-0.8 + 13OCT1999 20.1-0.7 23.7-1.2 25.8-0.9 28.0-0.6 + 20OCT1999 20.0-1.0 23.7-1.2 25.6-1.0 27.8-0.9 + 27OCT1999 20.6-0.5 23.8-1.1 25.4-1.3 27.7-1.0 + 03NOV1999 20.1-1.2 23.6-1.3 25.4-1.3 27.6-1.0 + 10NOV1999 20.1-1.3 23.7-1.2 25.4-1.3 27.5-1.1 + 17NOV1999 20.6-1.0 23.5-1.5 25.2-1.5 27.6-1.0 + 24NOV1999 20.9-1.1 23.1-1.9 24.7-1.9 27.4-1.1 + 01DEC1999 21.0-1.2 23.1-1.9 24.9-1.7 27.3-1.2 + 08DEC1999 21.1-1.4 23.6-1.5 25.1-1.4 27.3-1.2 + 15DEC1999 21.3-1.4 23.4-1.7 24.9-1.7 27.1-1.4 + 22DEC1999 22.0-1.1 23.8-1.4 24.9-1.6 27.1-1.3 + 29DEC1999 23.0-0.5 23.6-1.8 24.6-1.9 27.2-1.2 + 05JAN2000 23.2-0.6 23.4-2.1 24.5-2.0 27.0-1.3 + 12JAN2000 23.8-0.4 23.9-1.7 24.7-1.9 26.9-1.4 + 19JAN2000 23.7-0.9 24.0-1.7 24.8-1.8 26.9-1.4 + 26JAN2000 24.0-1.0 24.0-1.8 24.6-2.0 26.9-1.3 + 02FEB2000 25.0-0.4 24.7-1.3 24.8-1.9 26.7-1.5 + 09FEB2000 25.1-0.7 25.3-0.9 25.1-1.6 26.6-1.5 + 16FEB2000 25.6-0.5 25.5-0.9 25.4-1.4 26.7-1.4 + 23FEB2000 26.2 0.0 25.4-1.2 25.2-1.6 26.6-1.5 + 01MAR2000 26.4 0.1 25.7-1.0 25.5-1.5 26.5-1.6 + 08MAR2000 26.6 0.2 26.2-0.8 25.7-1.4 26.6-1.5 + 15MAR2000 26.2-0.3 26.5-0.6 26.0-1.2 26.7-1.5 + 22MAR2000 25.3-1.0 26.9-0.3 26.3-1.1 26.7-1.5 + 29MAR2000 25.6-0.5 27.5 0.2 26.8-0.7 27.0-1.3 + 05APR2000 25.7-0.1 27.6 0.2 27.0-0.6 27.2-1.2 + 12APR2000 26.1 0.5 27.4-0.1 26.9-0.8 27.3-1.2 + 19APR2000 25.6 0.3 27.5 0.0 27.0-0.8 27.4-1.1 + 26APR2000 25.3 0.3 27.5 0.1 27.1-0.7 27.5-1.0 + 03MAY2000 24.9 0.2 27.3 0.0 27.1-0.7 27.5-1.1 + 10MAY2000 24.3-0.1 27.2 0.0 27.1-0.7 27.7-1.0 + 17MAY2000 23.9-0.3 26.6-0.4 27.1-0.8 27.8-1.0 + 24MAY2000 23.2-0.6 26.4-0.5 27.1-0.7 28.0-0.8 + 31MAY2000 23.2-0.3 26.3-0.4 27.2-0.5 28.1-0.7 + 07JUN2000 22.6-0.6 26.0-0.7 27.0-0.7 28.0-0.8 + 14JUN2000 22.4-0.5 25.9-0.6 27.1-0.6 28.1-0.7 + 21JUN2000 21.7-0.9 25.8-0.5 27.0-0.6 28.2-0.7 + 28JUN2000 21.4-0.9 25.5-0.6 26.9-0.6 28.0-0.8 + 05JUL2000 21.0-1.0 25.6-0.3 26.9-0.5 28.0-0.8 + 12JUL2000 20.6-1.2 25.2-0.5 26.8-0.5 28.1-0.7 + 19JUL2000 20.3-1.2 24.9-0.6 26.7-0.5 28.2-0.5 + 26JUL2000 20.2-1.1 24.9-0.5 26.5-0.6 28.3-0.4 + 02AUG2000 20.2-0.8 24.7-0.5 26.6-0.4 28.4-0.3 + 09AUG2000 20.1-0.8 24.5-0.6 26.6-0.3 28.4-0.3 + 16AUG2000 20.5-0.2 24.4-0.6 26.4-0.4 28.3-0.3 + 23AUG2000 20.1-0.5 24.3-0.7 26.3-0.5 28.1-0.5 + 30AUG2000 19.3-1.2 24.5-0.4 26.4-0.4 28.2-0.4 + 06SEP2000 20.2-0.3 24.4-0.4 26.3-0.5 28.4-0.2 + 13SEP2000 19.7-0.7 24.3-0.6 26.1-0.6 28.4-0.2 + 20SEP2000 20.1-0.3 24.2-0.6 26.1-0.6 28.5-0.2 + 27SEP2000 19.9-0.6 24.4-0.5 26.3-0.4 28.4-0.3 + 04OCT2000 20.2-0.5 24.7-0.2 26.1-0.6 28.1-0.5 + 11OCT2000 20.2-0.5 24.4-0.5 26.0-0.6 28.2-0.4 + 18OCT2000 20.5-0.3 24.3-0.6 25.9-0.8 28.1-0.5 + 25OCT2000 20.7-0.4 24.3-0.6 25.9-0.8 28.1-0.6 + 01NOV2000 20.6-0.6 24.2-0.8 25.6-1.1 28.0-0.6 + 08NOV2000 20.6-0.8 24.0-1.0 25.6-1.1 28.1-0.6 + 15NOV2000 20.3-1.3 24.2-0.7 25.9-0.7 28.2-0.4 + 22NOV2000 20.2-1.7 24.1-0.9 25.9-0.7 28.1-0.5 + 29NOV2000 21.4-0.7 24.4-0.6 25.9-0.7 27.8-0.7 + 06DEC2000 21.8-0.6 24.4-0.7 25.6-1.0 27.5-1.1 + 13DEC2000 22.4-0.2 24.5-0.6 25.6-1.0 27.6-0.9 + 20DEC2000 22.4-0.6 24.4-0.8 25.6-1.0 27.6-0.8 + 27DEC2000 22.2-1.2 24.4-1.0 25.5-1.0 27.5-0.9 + 03JAN2001 22.8-0.9 24.5-0.9 25.6-1.0 27.5-0.8 + 10JAN2001 23.3-0.8 24.7-0.8 25.6-1.0 27.5-0.9 + 17JAN2001 23.7-0.8 25.1-0.6 25.8-0.8 27.5-0.8 + 24JAN2001 24.6-0.3 25.3-0.5 25.9-0.8 27.4-0.8 + 31JAN2001 25.2 0.0 25.4-0.6 26.0-0.7 27.3-0.9 + 07FEB2001 25.6-0.1 25.8-0.4 25.9-0.8 27.1-1.0 + 14FEB2001 25.6-0.4 25.9-0.5 26.0-0.7 27.2-0.9 + 21FEB2001 26.0-0.2 26.4-0.1 26.3-0.6 27.3-0.8 + 28FEB2001 26.7 0.4 26.7 0.0 26.4-0.5 27.4-0.8 + 07MAR2001 27.2 0.8 27.1 0.2 26.6-0.5 27.4-0.7 + 14MAR2001 27.3 0.8 27.2 0.1 26.8-0.4 27.6-0.6 + 21MAR2001 27.6 1.3 27.4 0.2 27.1-0.2 27.7-0.6 + 28MAR2001 27.7 1.6 27.4 0.2 27.0-0.4 27.8-0.5 + 04APR2001 27.3 1.5 27.6 0.2 27.3-0.3 27.9-0.4 + 11APR2001 27.2 1.6 27.7 0.3 27.6-0.1 28.1-0.3 + 18APR2001 26.2 0.8 27.7 0.2 27.7-0.1 28.3-0.2 + 25APR2001 25.9 0.8 27.2-0.1 27.6-0.2 28.2-0.3 + 02MAY2001 24.2-0.6 27.1-0.2 27.5-0.3 28.3-0.3 + 09MAY2001 23.9-0.6 27.0-0.1 27.6-0.2 28.6-0.1 + 16MAY2001 23.6-0.6 26.7-0.4 27.5-0.3 28.6-0.1 + 23MAY2001 23.3-0.6 26.9-0.1 27.7-0.1 28.8 0.0 + 30MAY2001 23.1-0.5 26.7 0.0 27.7-0.1 28.8 0.0 + 06JUN2001 22.1-1.2 26.7 0.1 27.8 0.1 28.8 0.0 + 13JUN2001 21.7-1.3 26.3-0.1 27.7 0.0 28.8 0.0 + 20JUN2001 21.5-1.2 26.3 0.0 27.7 0.1 28.8-0.1 + 27JUN2001 20.7-1.6 25.9-0.2 27.6 0.1 28.9 0.1 + 04JUL2001 20.7-1.4 25.6-0.3 27.5 0.1 29.0 0.2 + 11JUL2001 21.2-0.6 25.5-0.2 27.4 0.1 29.0 0.2 + 18JUL2001 20.9-0.7 25.5-0.1 27.3 0.1 29.1 0.3 + 25JUL2001 20.7-0.6 25.2-0.2 27.2 0.1 29.1 0.3 + 01AUG2001 20.3-0.8 25.0-0.3 27.2 0.1 29.1 0.4 + 08AUG2001 20.1-0.8 25.0-0.1 27.0 0.1 28.9 0.2 + 15AUG2001 19.8-0.9 24.7-0.3 26.8 0.0 28.9 0.2 + 22AUG2001 19.8-0.8 24.6-0.3 26.8 0.0 28.9 0.2 + 29AUG2001 19.7-0.9 24.3-0.6 26.6-0.2 29.0 0.4 + 05SEP2001 19.6-0.8 24.4-0.5 26.6-0.1 29.2 0.5 + 12SEP2001 19.1-1.3 24.2-0.7 26.6-0.2 29.1 0.4 + 19SEP2001 19.4-1.0 24.2-0.6 26.5-0.2 29.2 0.5 + 26SEP2001 19.6-0.9 24.3-0.6 26.5-0.2 29.1 0.4 + 03OCT2001 19.2-1.4 24.4-0.5 26.5-0.2 28.9 0.3 + 10OCT2001 19.6-1.1 24.4-0.5 26.5-0.2 29.0 0.4 + 17OCT2001 19.4-1.4 24.5-0.4 26.6 0.0 29.0 0.3 + 24OCT2001 19.6-1.4 24.5-0.4 26.6 0.0 29.1 0.4 + 31OCT2001 19.9-1.3 24.5-0.5 26.6 0.0 28.9 0.3 + 07NOV2001 20.3-1.1 24.3-0.7 26.6-0.1 29.1 0.5 + 14NOV2001 20.1-1.5 24.3-0.7 26.5-0.1 29.0 0.4 + 21NOV2001 20.6-1.2 24.3-0.7 26.3-0.3 28.8 0.2 + 28NOV2001 21.4-0.7 24.4-0.6 26.3-0.3 28.7 0.2 + 05DEC2001 21.4-1.0 24.5-0.6 26.1-0.5 28.6 0.1 + 12DEC2001 21.6-1.1 24.5-0.7 26.1-0.4 28.6 0.1 + 19DEC2001 22.0-0.9 24.6-0.5 26.2-0.4 28.5 0.0 + 26DEC2001 22.5-0.8 24.8-0.5 26.2-0.3 28.6 0.2 + 02JAN2002 23.2-0.5 24.8-0.7 26.2-0.4 28.6 0.2 + 09JAN2002 23.3-0.8 25.0-0.5 26.5-0.1 28.8 0.5 + 16JAN2002 23.5-1.0 25.0-0.7 26.4-0.1 28.9 0.6 + 23JAN2002 23.8-1.1 25.3-0.5 26.6 0.0 28.9 0.6 + 30JAN2002 24.3-0.9 25.5-0.5 26.7 0.1 28.7 0.6 + 06FEB2002 25.4-0.2 26.0-0.2 26.9 0.3 28.8 0.7 + 13FEB2002 25.9-0.1 26.2-0.2 27.0 0.3 28.9 0.8 + 20FEB2002 26.3 0.1 26.4-0.1 26.8 0.0 28.6 0.5 + 27FEB2002 27.4 1.1 26.7 0.0 27.1 0.1 28.6 0.5 + 06MAR2002 27.1 0.8 27.1 0.2 27.2 0.1 28.5 0.4 + 13MAR2002 27.6 1.2 27.2 0.1 27.3 0.1 28.6 0.4 + 20MAR2002 27.8 1.4 27.3 0.1 27.4 0.1 28.8 0.6 + 27MAR2002 27.4 1.3 27.4 0.2 27.4 0.0 28.7 0.5 + 03APR2002 27.1 1.2 27.6 0.2 27.7 0.2 28.8 0.5 + 10APR2002 27.1 1.5 27.8 0.4 28.0 0.3 29.0 0.6 + 17APR2002 26.3 0.9 27.6 0.1 27.9 0.2 29.1 0.6 + 24APR2002 25.4 0.3 27.3 0.0 28.0 0.2 29.3 0.7 + 01MAY2002 25.4 0.6 27.4 0.1 28.0 0.2 29.2 0.6 + 08MAY2002 25.0 0.5 27.3 0.1 28.0 0.2 29.2 0.5 + 15MAY2002 24.5 0.2 27.2 0.1 28.0 0.1 29.4 0.6 + 22MAY2002 24.4 0.5 27.1 0.2 28.3 0.4 29.6 0.8 + 29MAY2002 24.5 0.9 27.4 0.5 28.4 0.7 29.7 0.9 + 05JUN2002 23.5 0.2 27.3 0.6 28.6 0.9 29.8 1.0 + 12JUN2002 22.7-0.3 27.1 0.6 28.6 0.9 29.7 0.9 + 19JUN2002 22.1-0.6 27.0 0.6 28.4 0.8 29.6 0.8 + 26JUN2002 22.0-0.4 26.9 0.8 28.2 0.7 29.4 0.6 + 03JUL2002 21.8-0.3 26.6 0.6 28.0 0.6 29.4 0.6 + 10JUL2002 21.1-0.8 26.3 0.5 28.0 0.7 29.4 0.6 + 17JUL2002 21.2-0.4 26.0 0.4 28.0 0.8 29.5 0.7 + 24JUL2002 20.5-0.8 25.7 0.2 27.9 0.8 29.5 0.8 + 31JUL2002 20.3-0.8 25.5 0.2 27.9 0.9 29.6 0.9 + 07AUG2002 20.0-0.9 25.3 0.1 27.8 0.9 29.4 0.7 + 14AUG2002 20.3-0.4 25.5 0.5 27.8 0.9 29.4 0.7 + 21AUG2002 19.8-0.8 25.5 0.5 27.8 1.0 29.3 0.7 + 28AUG2002 19.8-0.7 25.6 0.7 27.8 1.0 29.4 0.7 + 04SEP2002 19.3-1.2 25.4 0.5 27.7 0.9 29.3 0.7 + 11SEP2002 20.2-0.2 25.5 0.6 27.8 1.0 29.4 0.7 + 18SEP2002 20.1-0.3 25.5 0.7 27.9 1.2 29.5 0.9 + 25SEP2002 20.1-0.4 25.7 0.8 27.9 1.2 29.5 0.8 + 02OCT2002 20.1-0.5 25.7 0.8 28.0 1.3 29.5 0.8 + 09OCT2002 20.7 0.0 25.6 0.7 27.9 1.2 29.4 0.7 + 16OCT2002 21.7 0.9 25.7 0.8 27.9 1.2 29.4 0.7 + 23OCT2002 21.6 0.6 26.0 1.1 28.2 1.6 29.8 1.2 + 30OCT2002 21.9 0.7 26.3 1.4 28.3 1.7 29.9 1.2 + 06NOV2002 22.0 0.6 26.2 1.3 28.2 1.6 29.8 1.2 + 13NOV2002 21.9 0.4 26.3 1.4 28.3 1.7 29.9 1.3 + 20NOV2002 22.5 0.7 26.5 1.5 28.3 1.7 29.9 1.3 + 27NOV2002 22.6 0.6 26.4 1.4 28.2 1.6 29.7 1.2 + 04DEC2002 23.0 0.7 26.6 1.6 28.2 1.6 29.6 1.0 + 11DEC2002 23.5 0.9 26.5 1.4 28.1 1.5 29.4 1.0 + 18DEC2002 23.3 0.4 26.5 1.3 28.1 1.5 29.4 1.0 + 25DEC2002 23.5 0.2 26.3 1.0 28.0 1.4 29.5 1.1 + 01JAN2003 24.2 0.6 26.6 1.2 28.1 1.5 29.4 1.1 + 08JAN2003 23.9-0.1 26.3 0.8 27.9 1.3 29.2 0.9 + 15JAN2003 24.1-0.3 26.3 0.7 27.7 1.2 29.3 1.0 + 22JAN2003 24.4-0.4 26.5 0.7 27.7 1.1 29.3 1.0 + 29JAN2003 24.9-0.3 26.3 0.3 27.5 0.8 29.1 0.9 + 05FEB2003 25.3-0.3 26.4 0.3 27.3 0.6 28.9 0.7 + 12FEB2003 25.7-0.3 26.6 0.3 27.4 0.7 28.9 0.9 + 19FEB2003 26.2 0.0 27.0 0.6 27.7 0.9 29.1 1.0 + 26FEB2003 26.0-0.3 26.8 0.1 27.6 0.7 29.2 1.1 + 05MAR2003 25.7-0.7 27.0 0.2 27.6 0.6 29.0 0.9 + 12MAR2003 25.7-0.8 27.2 0.1 27.7 0.6 29.0 0.8 + 19MAR2003 26.5 0.1 27.6 0.4 28.0 0.8 29.1 0.9 + 26MAR2003 25.5-0.7 27.4 0.2 27.9 0.5 29.0 0.7 + 02APR2003 25.7-0.3 27.2-0.1 27.8 0.3 28.9 0.6 + 09APR2003 24.8-0.9 27.3-0.1 27.8 0.2 29.0 0.6 + 16APR2003 24.3-1.1 27.3-0.2 27.9 0.1 28.9 0.5 + 23APR2003 23.6-1.6 27.2-0.2 27.8 0.0 28.9 0.4 + 30APR2003 23.2-1.6 26.5-0.8 27.7-0.1 28.9 0.3 + 07MAY2003 23.0-1.6 26.3-0.9 27.4-0.4 28.9 0.2 + 14MAY2003 22.5-1.8 26.2-0.9 27.3-0.5 28.8 0.1 + 21MAY2003 22.3-1.7 26.0-1.0 27.3-0.6 28.8 0.1 + 28MAY2003 22.0-1.6 26.0-0.9 27.4-0.4 29.0 0.2 + 04JUN2003 21.9-1.4 25.7-0.9 27.4-0.3 29.0 0.2 + 11JUN2003 21.6-1.5 25.7-0.8 27.4-0.2 29.1 0.2 + 18JUN2003 21.1-1.6 25.9-0.5 27.5-0.1 29.1 0.3 + 25JUN2003 21.6-0.8 25.9-0.2 27.6 0.0 29.1 0.3 + 02JUL2003 21.4-0.7 25.9-0.1 27.5 0.1 29.2 0.4 + 09JUL2003 21.1-0.8 25.9 0.0 27.6 0.3 29.2 0.4 + 16JUL2003 20.8-0.8 25.8 0.1 27.5 0.3 29.1 0.3 + 23JUL2003 20.2-1.2 25.7 0.2 27.3 0.2 29.1 0.3 + 30JUL2003 20.3-0.9 25.5 0.2 27.1 0.1 29.0 0.3 + 06AUG2003 20.2-0.8 25.3 0.1 27.0 0.0 29.0 0.3 + 13AUG2003 20.0-0.8 25.0 0.0 26.9 0.1 29.1 0.5 + 20AUG2003 20.6 0.0 24.9-0.1 26.7-0.1 29.0 0.4 + 27AUG2003 20.0-0.5 24.8-0.2 26.7-0.1 29.0 0.3 + 03SEP2003 20.4-0.1 25.0 0.1 26.9 0.1 29.0 0.3 + 10SEP2003 19.9-0.5 24.8-0.1 26.8 0.0 28.9 0.2 + 17SEP2003 19.5-0.8 25.0 0.1 26.9 0.2 28.9 0.3 + 24SEP2003 20.5 0.0 25.0 0.2 27.1 0.4 29.1 0.5 + 01OCT2003 20.1-0.5 25.3 0.4 27.3 0.6 29.1 0.4 + 08OCT2003 20.9 0.2 25.5 0.6 27.4 0.7 29.1 0.5 + 15OCT2003 20.9 0.1 25.2 0.3 27.1 0.4 29.1 0.5 + 22OCT2003 21.5 0.6 25.3 0.3 27.1 0.4 29.3 0.6 + 29OCT2003 21.4 0.3 25.4 0.4 27.2 0.5 29.3 0.7 + 05NOV2003 21.6 0.3 25.3 0.4 27.0 0.4 29.4 0.7 + 12NOV2003 21.8 0.3 25.3 0.4 26.9 0.3 29.3 0.7 + 19NOV2003 22.0 0.3 25.4 0.4 27.1 0.4 29.3 0.7 + 26NOV2003 22.3 0.3 25.5 0.5 27.2 0.5 29.2 0.6 + 03DEC2003 22.5 0.2 25.6 0.5 27.1 0.5 29.2 0.6 + 10DEC2003 22.9 0.3 25.5 0.4 27.0 0.4 29.1 0.6 + 17DEC2003 23.0 0.1 25.4 0.3 26.8 0.3 29.0 0.5 + 24DEC2003 23.0-0.2 25.6 0.3 26.8 0.2 28.9 0.4 + 31DEC2003 23.8 0.2 25.7 0.4 26.7 0.1 28.7 0.4 + 07JAN2004 24.2 0.2 25.7 0.2 26.6 0.0 28.7 0.3 + 14JAN2004 24.6 0.2 25.9 0.3 26.6 0.0 28.9 0.6 + 21JAN2004 24.8 0.0 26.0 0.3 27.0 0.4 28.9 0.7 + 28JAN2004 24.7-0.4 26.1 0.1 26.9 0.2 28.8 0.6 + 04FEB2004 25.0-0.5 26.0-0.1 26.8 0.1 28.7 0.6 + 11FEB2004 25.4-0.5 26.4 0.1 26.8 0.1 28.5 0.4 + 18FEB2004 26.1 0.0 26.7 0.2 26.9 0.1 28.5 0.4 + 25FEB2004 26.3 0.1 26.7 0.1 27.0 0.1 28.5 0.4 + 03MAR2004 25.8-0.6 26.7-0.1 26.9-0.1 28.5 0.4 + 10MAR2004 25.4-1.0 27.1 0.1 26.9-0.2 28.3 0.1 + 17MAR2004 25.6-0.8 27.4 0.2 27.1-0.1 28.3 0.1 + 24MAR2004 26.0-0.3 27.4 0.1 27.3-0.1 28.4 0.2 + 31MAR2004 26.1 0.1 27.4 0.1 27.5 0.0 28.5 0.2 + 07APR2004 26.0 0.2 27.4 0.0 27.7 0.1 28.6 0.2 + 14APR2004 25.2-0.3 27.4 0.0 27.8 0.1 28.7 0.2 + 21APR2004 24.8-0.4 27.4 0.0 28.0 0.2 28.8 0.3 + 28APR2004 24.1-0.9 27.2-0.1 28.1 0.3 28.9 0.3 + 05MAY2004 23.6-1.0 26.7-0.5 27.9 0.1 29.0 0.3 + 12MAY2004 23.1-1.3 26.6-0.6 28.0 0.1 29.0 0.3 + 19MAY2004 22.8-1.3 26.8-0.3 28.2 0.4 29.2 0.4 + 26MAY2004 22.7-1.0 26.7-0.2 28.1 0.3 29.4 0.6 + 02JUN2004 22.1-1.4 26.7 0.0 28.1 0.3 29.2 0.4 + 09JUN2004 21.7-1.4 26.6 0.0 28.0 0.3 29.2 0.4 + 16JUN2004 21.5-1.3 26.4-0.1 27.8 0.1 29.2 0.4 + 23JUN2004 21.3-1.2 26.0-0.3 27.5 0.0 29.1 0.2 + 30JUN2004 21.0-1.2 25.6-0.4 27.3-0.1 29.1 0.3 + 07JUL2004 20.8-1.2 25.4-0.4 27.6 0.3 29.4 0.6 + 14JUL2004 20.9-0.8 25.5-0.2 27.7 0.4 29.4 0.6 + 21JUL2004 20.7-0.7 25.2-0.3 27.7 0.6 29.4 0.7 + 28JUL2004 20.3-0.9 25.4 0.0 27.9 0.8 29.4 0.6 + 04AUG2004 19.9-1.1 25.2 0.0 27.8 0.8 29.4 0.7 + 11AUG2004 19.7-1.1 25.1 0.0 27.6 0.7 29.2 0.6 + 18AUG2004 19.6-1.0 24.9 0.0 27.4 0.6 29.2 0.5 + 25AUG2004 19.2-1.4 24.9 0.0 27.4 0.7 29.3 0.7 + 01SEP2004 20.1-0.4 25.0 0.1 27.4 0.7 29.6 0.9 + 08SEP2004 19.8-0.6 25.0 0.1 27.4 0.6 29.6 0.9 + 15SEP2004 19.8-0.5 25.1 0.3 27.5 0.7 29.6 0.9 + 22SEP2004 20.4-0.1 25.3 0.4 27.6 0.9 29.6 0.9 + 29SEP2004 20.5-0.1 25.4 0.5 27.5 0.8 29.5 0.8 + 06OCT2004 20.8 0.1 25.2 0.4 27.4 0.7 29.5 0.8 + 13OCT2004 20.5-0.2 25.2 0.3 27.3 0.6 29.4 0.8 + 20OCT2004 21.4 0.5 25.4 0.5 27.4 0.7 29.6 1.0 + 27OCT2004 21.3 0.2 25.4 0.5 27.4 0.7 29.7 1.0 + 03NOV2004 21.5 0.3 25.4 0.5 27.3 0.6 29.6 1.0 + 10NOV2004 22.0 0.5 25.5 0.5 27.3 0.6 29.5 0.9 + 17NOV2004 22.2 0.5 25.5 0.5 27.3 0.7 29.6 1.0 + 24NOV2004 21.9 0.0 25.4 0.4 27.3 0.7 29.5 1.0 + 01DEC2004 22.4 0.2 25.6 0.6 27.4 0.8 29.4 0.9 + 08DEC2004 22.3-0.2 25.7 0.6 27.4 0.8 29.4 0.8 + 15DEC2004 22.9 0.2 25.8 0.6 27.3 0.7 29.2 0.8 + 22DEC2004 22.9-0.2 25.9 0.6 27.3 0.7 29.5 1.1 + 29DEC2004 23.6 0.2 25.8 0.5 27.2 0.6 29.5 1.1 + 05JAN2005 23.7-0.2 25.7 0.3 27.1 0.5 29.3 0.9 + 12JAN2005 24.2 0.0 25.9 0.3 27.1 0.5 29.2 0.9 + 19JAN2005 25.0 0.3 26.0 0.3 27.1 0.5 29.2 0.9 + 26JAN2005 24.9-0.1 26.0 0.1 27.1 0.5 29.2 1.0 + 02FEB2005 24.6-0.8 25.9-0.2 26.9 0.2 29.0 0.8 + 09FEB2005 25.1-0.6 26.2-0.1 27.0 0.3 28.8 0.7 + 16FEB2005 25.8-0.3 26.4 0.0 27.0 0.3 28.8 0.7 + 23FEB2005 25.7-0.5 26.3-0.3 27.0 0.1 28.7 0.6 + 02MAR2005 25.2-1.1 26.2-0.6 27.0 0.0 28.8 0.6 + 09MAR2005 25.9-0.5 26.7-0.2 27.2 0.1 28.8 0.6 + 16MAR2005 25.9-0.6 27.3 0.2 27.6 0.4 29.0 0.8 + 23MAR2005 25.0-1.3 27.3 0.0 27.9 0.5 28.9 0.7 + 30MAR2005 24.9-1.1 27.4 0.1 28.0 0.5 29.0 0.7 + 06APR2005 24.8-1.0 27.4 0.0 28.0 0.4 28.9 0.5 + 13APR2005 24.6-0.9 27.7 0.2 27.9 0.1 28.8 0.3 + 20APR2005 24.8-0.5 27.9 0.5 28.2 0.4 28.9 0.4 + 27APR2005 25.4 0.4 28.1 0.8 28.3 0.5 29.1 0.5 + 04MAY2005 25.2 0.5 28.1 0.9 28.3 0.4 29.1 0.4 + 11MAY2005 24.6 0.2 27.6 0.5 28.2 0.4 29.1 0.3 + 18MAY2005 24.5 0.4 27.4 0.3 28.2 0.4 29.3 0.5 + 25MAY2005 23.5-0.3 27.1 0.2 28.2 0.4 29.2 0.4 + 01JUN2005 23.0-0.5 26.8 0.0 28.1 0.3 29.2 0.4 + 08JUN2005 22.6-0.5 26.9 0.3 28.1 0.4 29.2 0.4 + 15JUN2005 22.3-0.5 26.8 0.3 28.1 0.4 29.2 0.4 + 22JUN2005 22.2-0.3 26.9 0.6 28.0 0.5 29.1 0.3 + 29JUN2005 21.6-0.7 26.7 0.6 28.0 0.5 29.1 0.3 + 06JUL2005 21.5-0.5 26.3 0.4 27.8 0.4 29.2 0.4 + 13JUL2005 21.5-0.3 26.2 0.5 27.6 0.3 29.1 0.3 + 20JUL2005 20.7-0.8 25.8 0.2 27.3 0.2 29.0 0.2 + 27JUL2005 20.8-0.5 25.4 0.0 27.1 0.1 28.9 0.1 + 03AUG2005 20.8-0.2 25.2-0.1 26.9-0.1 28.8 0.1 + 10AUG2005 20.6-0.2 25.2 0.1 26.9 0.0 28.7 0.0 + 17AUG2005 20.4-0.2 25.4 0.4 27.0 0.2 28.9 0.2 + 24AUG2005 20.8 0.3 25.2 0.3 26.9 0.1 28.9 0.3 + 31AUG2005 20.4-0.1 24.8-0.1 26.7-0.1 28.9 0.2 + 07SEP2005 20.0-0.5 24.5-0.3 26.5-0.3 28.7 0.1 + 14SEP2005 19.7-0.7 24.5-0.4 26.4-0.3 28.7 0.0 + 21SEP2005 19.6-0.9 24.7-0.2 26.8 0.1 28.9 0.3 + 28SEP2005 19.6-0.9 24.5-0.4 26.7 0.0 28.9 0.3 + 05OCT2005 19.4-1.2 24.6-0.3 26.9 0.2 29.0 0.3 + 12OCT2005 20.0-0.8 24.9 0.0 26.9 0.2 28.9 0.3 + 19OCT2005 19.8-1.1 24.7-0.2 26.7 0.0 28.8 0.2 + 26OCT2005 19.9-1.2 24.7-0.2 26.6-0.1 28.8 0.1 + 02NOV2005 19.8-1.4 24.3-0.7 26.5-0.2 28.7 0.1 + 09NOV2005 20.2-1.2 24.2-0.7 26.3-0.4 28.6 0.0 + 16NOV2005 21.0-0.6 24.3-0.7 26.5-0.2 28.6 0.0 + 23NOV2005 21.2-0.7 24.3-0.7 26.3-0.3 28.7 0.1 + 30NOV2005 21.2-0.9 24.2-0.9 26.1-0.5 28.6 0.1 + 07DEC2005 21.4-1.1 24.1-1.0 26.0-0.6 28.6 0.0 + 14DEC2005 21.8-0.9 24.0-1.1 25.8-0.7 28.5 0.0 + 21DEC2005 23.1 0.1 24.3-0.9 25.8-0.8 28.1-0.3 + 28DEC2005 23.3-0.2 24.7-0.6 25.9-0.7 28.0-0.4 + 04JAN2006 23.4-0.4 25.0-0.5 25.8-0.7 27.9-0.5 + 11JAN2006 24.2 0.0 25.0-0.6 25.7-0.9 27.8-0.5 + 18JAN2006 24.3-0.2 24.8-0.9 25.5-1.1 27.6-0.7 + 25JAN2006 24.8-0.1 25.1-0.8 25.5-1.1 27.4-0.8 + 01FEB2006 25.0-0.3 25.5-0.6 25.8-0.9 27.4-0.7 + 08FEB2006 25.9 0.2 25.8-0.4 26.0-0.7 27.3-0.9 + 15FEB2006 27.1 1.0 26.3 0.0 26.1-0.6 27.3-0.8 + 22FEB2006 26.8 0.6 26.4-0.2 26.3-0.5 27.4-0.7 + 01MAR2006 27.0 0.7 26.2-0.6 26.1-0.9 27.4-0.7 + 08MAR2006 26.9 0.5 26.5-0.4 26.4-0.7 27.6-0.6 + 15MAR2006 26.7 0.2 26.5-0.6 26.5-0.7 27.7-0.5 + 22MAR2006 26.6 0.3 26.6-0.6 26.7-0.6 28.0-0.3 + 29MAR2006 26.0-0.1 26.8-0.5 27.0-0.5 28.1-0.2 + 05APR2006 24.9-0.9 27.1-0.3 27.3-0.3 28.1-0.2 + 12APR2006 24.0-1.5 27.6 0.1 27.7 0.0 28.3-0.1 + 19APR2006 23.4-2.0 27.2-0.2 27.7-0.1 28.4-0.1 + 26APR2006 23.1-1.9 27.2-0.2 27.7-0.1 28.5 0.0 + 03MAY2006 23.9-0.8 27.2-0.1 27.7-0.1 28.6-0.1 + 10MAY2006 24.1-0.4 27.1 0.0 27.8 0.0 28.8 0.1 + 17MAY2006 23.8-0.3 27.1 0.0 28.1 0.2 29.1 0.3 + 24MAY2006 23.5-0.3 26.9 0.0 28.0 0.2 29.0 0.2 + 31MAY2006 23.4-0.1 26.8 0.0 28.0 0.3 29.2 0.4 + 07JUN2006 22.6-0.6 26.6 0.0 28.0 0.3 29.2 0.4 + 14JUN2006 22.8-0.1 26.5 0.1 27.9 0.3 29.2 0.3 + 21JUN2006 22.5-0.1 26.3 0.0 27.8 0.2 29.2 0.3 + 28JUN2006 22.4 0.0 26.1 0.0 27.6 0.1 29.0 0.2 + 05JUL2006 22.2 0.1 26.0 0.1 27.5 0.1 29.0 0.1 + 12JUL2006 22.0 0.2 25.8 0.0 27.3 0.0 29.0 0.2 + 19JUL2006 22.3 0.8 25.8 0.2 27.3 0.1 29.1 0.3 + 26JUL2006 22.0 0.7 25.7 0.3 27.3 0.2 29.2 0.4 + 02AUG2006 21.9 0.8 25.5 0.3 27.2 0.2 29.2 0.5 + 09AUG2006 21.7 0.8 25.3 0.2 27.1 0.2 29.1 0.4 + 16AUG2006 21.6 0.9 25.4 0.4 27.2 0.4 29.2 0.6 + 23AUG2006 21.5 1.0 25.5 0.5 27.3 0.5 29.3 0.6 + 30AUG2006 21.1 0.6 25.6 0.6 27.3 0.5 29.3 0.7 + 06SEP2006 21.6 1.2 25.6 0.7 27.4 0.6 29.4 0.8 + 13SEP2006 21.3 0.9 25.8 0.9 27.3 0.6 29.4 0.7 + 20SEP2006 21.2 0.8 25.9 1.1 27.4 0.7 29.4 0.8 + 27SEP2006 21.7 1.1 25.7 0.8 27.2 0.5 29.3 0.7 + 04OCT2006 21.7 1.0 25.7 0.8 27.2 0.5 29.2 0.6 + 11OCT2006 22.2 1.4 26.1 1.2 27.5 0.8 29.4 0.8 + 18OCT2006 22.4 1.5 26.0 1.1 27.5 0.8 29.5 0.8 + 25OCT2006 22.7 1.6 26.1 1.1 27.6 0.9 29.6 1.0 + 01NOV2006 22.4 1.2 25.9 1.0 27.6 0.9 29.5 0.9 + 08NOV2006 22.5 1.1 25.9 0.9 27.6 0.9 29.6 1.0 + 15NOV2006 22.6 1.0 26.1 1.1 27.8 1.2 29.7 1.1 + 22NOV2006 22.7 0.8 26.3 1.2 27.8 1.2 29.6 1.1 + 29NOV2006 23.0 0.9 26.1 1.1 27.8 1.2 29.6 1.0 + 06DEC2006 22.9 0.5 26.1 1.1 27.9 1.3 29.6 1.1 + 13DEC2006 22.9 0.2 26.3 1.2 27.8 1.2 29.5 1.0 + 20DEC2006 23.7 0.6 26.5 1.3 27.7 1.2 29.4 1.0 + 27DEC2006 24.0 0.6 26.6 1.3 27.7 1.1 29.4 1.0 + 03JAN2007 24.3 0.5 26.4 0.9 27.5 0.9 29.2 0.8 + 10JAN2007 24.9 0.7 26.7 1.1 27.5 0.9 29.1 0.8 + 17JAN2007 25.0 0.4 26.4 0.7 27.2 0.6 28.8 0.6 + 24JAN2007 25.2 0.3 26.5 0.7 27.1 0.5 28.7 0.5 + 31JAN2007 25.6 0.3 26.6 0.6 27.0 0.3 28.7 0.5 + 07FEB2007 26.0 0.4 26.6 0.4 26.9 0.2 28.6 0.4 + 14FEB2007 26.3 0.3 26.3-0.1 26.7 0.0 28.6 0.6 + 21FEB2007 26.4 0.3 26.4-0.1 26.8-0.1 28.6 0.5 + 28FEB2007 25.7-0.6 26.4-0.3 26.9 0.0 28.5 0.4 + 07MAR2007 25.8-0.5 26.6-0.3 26.9-0.2 28.5 0.4 + 14MAR2007 26.0-0.5 27.3 0.2 27.3 0.1 28.6 0.4 + 21MAR2007 25.6-0.8 26.8-0.4 27.2-0.1 28.5 0.3 + 28MAR2007 25.1-1.0 26.6-0.7 27.4 0.0 28.5 0.2 + 04APR2007 24.5-1.4 26.7-0.7 27.5 0.0 28.7 0.3 + 11APR2007 24.4-1.2 27.2-0.2 27.8 0.1 28.7 0.3 + 18APR2007 23.9-1.4 27.4-0.1 27.9 0.2 28.7 0.2 + 25APR2007 24.1-1.0 27.3-0.1 27.8 0.0 28.7 0.1 + 02MAY2007 23.6-1.2 26.9-0.4 27.7-0.1 28.6 0.0 + 09MAY2007 23.0-1.5 26.3-0.9 27.4-0.4 28.7 0.0 + 16MAY2007 22.9-1.3 26.3-0.8 27.5-0.4 28.8 0.1 + 23MAY2007 22.3-1.6 26.3-0.6 27.7-0.1 29.0 0.2 + 30MAY2007 21.8-1.8 26.1-0.7 27.6-0.2 29.0 0.2 + 06JUN2007 21.6-1.6 25.8-0.9 27.6-0.1 29.0 0.2 + 13JUN2007 22.2-0.7 26.1-0.4 27.7 0.1 29.1 0.3 + 20JUN2007 21.8-0.8 25.9-0.5 27.6 0.0 28.9 0.1 + 27JUN2007 20.7-1.7 25.5-0.6 27.3-0.1 28.8 0.0 + 04JUL2007 21.2-0.9 25.3-0.6 27.0-0.4 28.7-0.1 + 11JUL2007 20.1-1.7 24.9-0.9 26.8-0.5 28.8 0.0 + 18JUL2007 19.9-1.7 24.8-0.8 26.9-0.3 28.9 0.1 + 25JUL2007 20.3-1.0 24.5-1.0 26.6-0.5 28.9 0.1 + 01AUG2007 19.6-1.5 24.1-1.2 26.4-0.6 28.7 0.0 + 08AUG2007 19.3-1.6 23.8-1.3 26.2-0.7 28.6-0.1 + 15AUG2007 19.7-1.0 24.0-1.0 26.3-0.6 28.6-0.1 + 22AUG2007 19.2-1.4 23.8-1.2 26.1-0.7 28.5-0.1 + 29AUG2007 18.4-2.1 23.7-1.3 26.1-0.7 28.4-0.2 + 05SEP2007 19.4-1.1 23.7-1.2 26.0-0.8 28.3-0.4 + 12SEP2007 18.6-1.8 23.6-1.3 25.8-1.0 28.0-0.6 + 19SEP2007 18.5-2.0 23.6-1.2 25.8-0.9 28.0-0.7 + 26SEP2007 18.4-2.1 23.2-1.7 25.6-1.1 28.0-0.7 + 03OCT2007 18.3-2.3 23.2-1.7 25.4-1.3 27.9-0.7 + 10OCT2007 18.8-1.9 23.3-1.6 24.9-1.8 27.7-1.0 + 17OCT2007 18.6-2.2 23.5-1.4 25.3-1.4 27.9-0.7 + 24OCT2007 19.2-1.8 23.5-1.4 25.3-1.4 27.8-0.8 + 31OCT2007 19.7-1.5 23.2-1.8 25.2-1.5 27.8-0.8 + 07NOV2007 19.3-2.1 23.0-2.0 25.0-1.6 27.5-1.1 + 14NOV2007 19.2-2.3 23.2-1.7 25.2-1.5 27.3-1.3 + 21NOV2007 19.8-2.0 23.2-1.8 24.9-1.7 27.1-1.5 + 28NOV2007 19.8-2.2 23.3-1.8 25.1-1.6 27.4-1.1 + 05DEC2007 20.6-1.8 23.5-1.5 25.1-1.5 27.5-1.0 + 12DEC2007 20.3-2.4 23.3-1.8 24.9-1.7 27.5-1.0 + 19DEC2007 21.3-1.6 23.7-1.5 25.0-1.6 27.2-1.3 + 26DEC2007 21.9-1.4 23.7-1.6 24.9-1.6 27.0-1.4 + 02JAN2008 22.6-1.1 23.9-1.5 25.0-1.6 26.8-1.6 + 09JAN2008 23.3-0.8 24.0-1.5 24.8-1.8 26.6-1.7 + 16JAN2008 24.1-0.4 24.0-1.6 24.6-2.0 26.6-1.7 + 23JAN2008 24.1-0.7 24.1-1.7 24.4-2.2 26.4-1.8 + 30JAN2008 25.1-0.1 24.7-1.3 24.9-1.7 26.5-1.7 + 06FEB2008 25.9 0.3 24.8-1.4 24.6-2.1 26.4-1.8 + 13FEB2008 25.9-0.1 24.7-1.7 24.5-2.2 26.4-1.7 + 20FEB2008 26.7 0.6 25.1-1.4 24.9-2.0 26.4-1.7 + 27FEB2008 27.2 0.9 25.8-0.9 25.3-1.6 26.3-1.8 + 05MAR2008 27.3 1.0 26.3-0.6 25.7-1.3 26.6-1.5 + 12MAR2008 27.2 0.7 26.5-0.5 26.0-1.1 26.7-1.4 + 19MAR2008 27.3 0.9 26.7-0.5 26.2-1.1 26.8-1.4 + 26MAR2008 27.1 0.9 26.8-0.5 26.3-1.0 27.0-1.2 + 02APR2008 27.2 1.2 26.9-0.4 26.5-1.0 27.2-1.2 + 09APR2008 25.9 0.2 27.3-0.2 26.7-1.0 27.3-1.1 + 16APR2008 25.5 0.0 27.3-0.2 26.9-0.9 27.4-1.1 + 23APR2008 25.5 0.4 27.1-0.3 26.9-0.9 27.5-1.1 + 30APR2008 24.5-0.3 27.3 0.0 27.1-0.7 27.7-0.9 + 07MAY2008 24.1-0.5 26.8-0.4 27.0-0.9 27.7-1.0 + 14MAY2008 24.5 0.2 27.1-0.1 27.1-0.7 27.8-0.9 + 21MAY2008 24.1 0.1 27.2 0.2 27.3-0.5 28.0-0.7 + 28MAY2008 24.1 0.5 27.2 0.4 27.3-0.5 28.0-0.8 + 04JUN2008 24.0 0.7 27.0 0.3 27.3-0.4 28.0-0.8 + 11JUN2008 23.7 0.7 26.7 0.2 27.2-0.5 28.0-0.8 + 18JUN2008 23.3 0.6 26.3-0.1 27.1-0.5 28.1-0.8 + 25JUN2008 23.0 0.6 26.2 0.0 27.1-0.4 28.1-0.7 + 02JUL2008 22.7 0.5 26.3 0.4 27.2-0.2 28.2-0.6 + 09JUL2008 22.7 0.8 26.3 0.5 27.3-0.1 28.3-0.5 + 16JUL2008 22.7 1.1 26.2 0.5 27.3 0.0 28.3-0.5 + 23JUL2008 22.6 1.2 25.9 0.5 27.1 0.0 28.2-0.6 + 30JUL2008 22.2 1.1 25.9 0.5 27.1 0.0 28.2-0.5 + 06AUG2008 22.0 1.1 25.9 0.7 27.0 0.1 28.2-0.5 + 13AUG2008 22.5 1.8 25.8 0.8 27.0 0.2 28.2-0.5 + 20AUG2008 21.1 0.5 25.5 0.5 26.7-0.1 28.1-0.6 + 27AUG2008 21.3 0.8 25.3 0.4 26.6-0.2 28.1-0.6 + 03SEP2008 21.3 0.8 25.3 0.4 26.6-0.2 28.1-0.6 + 10SEP2008 21.0 0.6 25.2 0.3 26.6-0.2 28.1-0.6 + 17SEP2008 21.1 0.8 24.9 0.1 26.4-0.4 28.1-0.6 + 24SEP2008 21.3 0.8 25.1 0.2 26.4-0.4 28.1-0.6 + 01OCT2008 21.0 0.4 24.7-0.2 26.2-0.5 28.3-0.4 + 08OCT2008 20.6-0.1 24.9 0.0 26.3-0.4 28.3-0.4 + 15OCT2008 20.7-0.1 24.9-0.1 26.4-0.3 28.3-0.4 + 22OCT2008 21.0 0.0 24.8-0.2 26.3-0.4 28.2-0.4 + 29OCT2008 20.5-0.7 24.6-0.3 26.4-0.2 28.2-0.4 + 05NOV2008 21.3 0.0 24.6-0.3 26.3-0.3 28.2-0.4 + 12NOV2008 21.8 0.3 24.9-0.1 26.5-0.2 28.1-0.5 + 19NOV2008 21.5-0.2 24.9-0.1 26.3-0.3 28.0-0.6 + 26NOV2008 21.2-0.8 24.6-0.4 26.1-0.5 27.9-0.6 + 03DEC2008 21.4-0.9 24.8-0.3 26.0-0.6 27.9-0.6 + 10DEC2008 22.1-0.4 24.6-0.5 25.8-0.8 27.7-0.7 + 17DEC2008 22.6-0.3 24.6-0.6 25.8-0.8 27.7-0.8 + 24DEC2008 22.8-0.5 24.5-0.8 25.6-1.0 27.5-0.9 + 31DEC2008 23.3-0.3 24.4-1.0 25.4-1.2 27.5-0.9 + 07JAN2009 23.4-0.6 24.5-0.9 25.4-1.2 27.4-1.0 + 14JAN2009 24.0-0.3 24.8-0.8 25.4-1.1 27.4-0.9 + 21JAN2009 25.3 0.5 25.5-0.2 25.8-0.8 27.4-0.8 + 28JAN2009 25.3 0.2 25.5-0.4 25.7-1.0 27.3-0.9 + 04FEB2009 25.1-0.4 25.4-0.7 25.7-0.9 27.2-0.9 + 11FEB2009 25.8 0.0 25.6-0.6 25.9-0.8 27.3-0.8 + 18FEB2009 26.3 0.2 26.1-0.4 26.2-0.6 27.4-0.7 + 25FEB2009 26.5 0.2 26.4-0.3 26.3-0.6 27.4-0.7 + 04MAR2009 26.5 0.2 26.1-0.7 26.4-0.7 27.5-0.6 + 11MAR2009 26.1-0.3 26.1-0.9 26.7-0.5 27.7-0.4 + 18MAR2009 26.0-0.4 26.4-0.7 26.7-0.6 27.8-0.4 + 25MAR2009 26.3 0.1 26.7-0.5 26.8-0.6 27.9-0.4 + 01APR2009 26.4 0.5 27.2-0.1 27.1-0.4 28.1-0.2 + 08APR2009 25.7 0.0 27.4 0.0 27.4-0.2 28.3-0.1 + 15APR2009 26.1 0.7 27.5 0.0 27.5-0.2 28.3-0.2 + 22APR2009 25.4 0.2 27.3-0.1 27.6-0.2 28.4-0.2 + 29APR2009 25.3 0.4 27.5 0.2 27.7-0.1 28.6 0.0 + 06MAY2009 25.3 0.7 27.6 0.4 27.9 0.1 28.8 0.1 + 13MAY2009 24.8 0.5 27.4 0.3 28.0 0.2 29.0 0.2 + 20MAY2009 24.4 0.4 27.4 0.4 28.2 0.4 29.1 0.3 + 27MAY2009 24.3 0.6 27.2 0.4 28.1 0.3 29.1 0.3 + 03JUN2009 23.7 0.4 27.1 0.4 27.9 0.2 29.0 0.2 + 10JUN2009 23.7 0.6 27.2 0.6 28.1 0.4 29.1 0.3 + 17JUN2009 23.9 1.1 27.2 0.8 28.2 0.5 29.2 0.4 + 24JUN2009 23.5 1.0 27.1 0.9 28.2 0.7 29.3 0.5 + 01JUL2009 22.9 0.7 26.9 0.9 28.2 0.7 29.3 0.5 + 08JUL2009 23.0 1.1 26.7 0.9 28.0 0.7 29.2 0.4 + 15JUL2009 22.7 1.0 26.6 1.0 28.0 0.7 29.2 0.4 + 22JUL2009 22.2 0.8 26.5 1.0 27.9 0.8 29.2 0.4 + 29JUL2009 22.1 0.9 26.2 0.8 27.7 0.6 29.1 0.4 + 05AUG2009 22.2 1.2 26.0 0.8 27.6 0.6 29.1 0.4 + 12AUG2009 21.4 0.6 25.9 0.8 27.4 0.6 29.1 0.4 + 19AUG2009 21.6 0.9 25.8 0.9 27.4 0.6 29.2 0.6 + 26AUG2009 21.5 1.0 25.9 1.0 27.6 0.8 29.3 0.7 + 02SEP2009 21.4 0.9 25.9 1.0 27.6 0.8 29.3 0.6 + 09SEP2009 21.1 0.6 25.7 0.8 27.5 0.8 29.3 0.6 + 16SEP2009 20.8 0.4 25.6 0.8 27.5 0.8 29.3 0.6 + 23SEP2009 20.5 0.0 25.6 0.7 27.4 0.7 29.2 0.6 + 30SEP2009 20.4-0.2 25.4 0.6 27.3 0.6 29.2 0.6 + 07OCT2009 20.1-0.5 25.5 0.6 27.3 0.6 29.4 0.7 + 14OCT2009 21.0 0.2 25.6 0.7 27.5 0.8 29.6 1.0 + 21OCT2009 21.2 0.3 25.8 0.8 27.7 1.0 29.8 1.2 + 28OCT2009 21.6 0.5 26.1 1.2 28.1 1.4 30.0 1.3 + 04NOV2009 21.8 0.5 26.2 1.3 28.2 1.6 29.9 1.3 + 11NOV2009 22.1 0.6 26.2 1.2 28.2 1.5 29.9 1.3 + 18NOV2009 22.2 0.5 26.2 1.2 28.2 1.6 29.8 1.2 + 25NOV2009 22.2 0.3 26.3 1.2 28.2 1.6 29.9 1.3 + 02DEC2009 22.7 0.4 26.5 1.4 28.2 1.6 29.7 1.2 + 09DEC2009 22.7 0.2 26.6 1.5 28.2 1.7 29.6 1.1 + 16DEC2009 22.6-0.2 26.7 1.5 28.3 1.8 29.7 1.2 + 23DEC2009 23.7 0.5 26.8 1.5 28.4 1.9 29.7 1.3 + 30DEC2009 24.3 0.7 26.7 1.4 28.3 1.7 29.6 1.2 + 06JAN2010 24.3 0.4 26.7 1.2 28.3 1.7 29.7 1.3 + 13JAN2010 24.6 0.3 26.7 1.1 28.2 1.6 29.6 1.3 + 20JAN2010 24.7 0.1 26.5 0.8 28.0 1.4 29.5 1.2 + 27JAN2010 25.5 0.4 26.6 0.7 27.8 1.2 29.3 1.1 + 03FEB2010 25.4 0.0 26.7 0.6 27.8 1.2 29.1 1.0 + 10FEB2010 25.7-0.2 27.0 0.7 27.9 1.2 29.0 0.9 + 17FEB2010 26.4 0.3 27.2 0.8 27.9 1.2 29.0 1.0 + 24FEB2010 26.5 0.3 27.4 0.8 28.0 1.1 29.2 1.1 + 03MAR2010 26.3-0.1 27.5 0.7 28.1 1.1 29.2 1.0 + 10MAR2010 26.0-0.4 27.5 0.5 28.3 1.2 29.3 1.1 + 17MAR2010 26.2-0.3 27.8 0.7 28.4 1.1 29.2 1.1 + 24MAR2010 26.3 0.0 27.9 0.7 28.4 1.0 29.2 0.9 + 31MAR2010 25.9-0.1 28.1 0.8 28.4 0.9 29.2 0.8 + 07APR2010 26.0 0.3 28.1 0.7 28.4 0.8 29.3 0.9 + 14APR2010 26.6 1.0 28.2 0.8 28.5 0.7 29.2 0.7 + 21APR2010 26.0 0.8 28.0 0.6 28.4 0.6 29.2 0.7 + 28APR2010 25.2 0.3 27.8 0.4 28.2 0.4 29.3 0.7 + 05MAY2010 24.8 0.2 27.7 0.5 28.0 0.2 29.1 0.4 + 12MAY2010 24.8 0.5 27.1 0.0 27.7-0.2 29.0 0.3 + 19MAY2010 24.0 0.0 26.8-0.3 27.5-0.3 29.0 0.2 + 26MAY2010 23.2-0.5 26.4-0.4 27.5-0.3 29.0 0.2 + 02JUN2010 23.4 0.0 26.1-0.6 27.3-0.5 28.8 0.0 + 09JUN2010 23.1 0.0 26.0-0.6 27.1-0.6 28.7-0.1 + 16JUN2010 22.3-0.5 25.8-0.6 27.0-0.7 28.6-0.2 + 23JUN2010 22.4-0.2 25.5-0.8 26.9-0.7 28.5-0.3 + 30JUN2010 21.6-0.7 25.3-0.8 26.7-0.8 28.3-0.5 + 07JUL2010 20.9-1.1 24.8-1.0 26.4-0.9 28.2-0.6 + 14JUL2010 20.0-1.6 24.6-1.1 26.1-1.1 28.2-0.6 + 21JUL2010 19.6-1.9 24.4-1.1 26.0-1.2 28.0-0.8 + 28JUL2010 19.5-1.7 24.0-1.4 25.6-1.4 27.8-1.0 + 04AUG2010 19.5-1.5 24.0-1.3 25.8-1.2 27.7-1.0 + 11AUG2010 19.6-1.2 24.1-1.0 25.7-1.2 27.5-1.2 + 18AUG2010 19.2-1.4 23.8-1.1 25.6-1.2 27.5-1.1 + 25AUG2010 19.2-1.4 23.7-1.3 25.2-1.6 27.1-1.5 + 01SEP2010 18.8-1.7 23.4-1.5 25.1-1.7 27.2-1.5 + 08SEP2010 19.1-1.3 23.5-1.4 25.2-1.6 27.1-1.6 + 15SEP2010 18.6-1.8 23.4-1.5 25.1-1.6 27.1-1.6 + 22SEP2010 19.3-1.2 24.0-0.8 25.1-1.6 27.1-1.6 + 29SEP2010 19.2-1.4 23.5-1.3 24.8-1.9 27.1-1.6 + 06OCT2010 18.7-1.9 23.2-1.7 24.8-1.9 27.1-1.6 + 13OCT2010 18.9-1.9 23.0-2.0 25.1-1.6 27.1-1.6 + 20OCT2010 19.1-1.8 23.2-1.7 25.1-1.6 27.0-1.7 + 27OCT2010 19.8-1.3 23.6-1.4 25.2-1.5 27.0-1.6 + 03NOV2010 19.7-1.6 23.4-1.6 25.2-1.4 27.0-1.6 + 10NOV2010 19.5-1.9 23.5-1.5 25.2-1.4 27.2-1.5 + 17NOV2010 20.2-1.5 23.5-1.5 25.0-1.6 27.1-1.5 + 24NOV2010 20.6-1.3 23.3-1.7 24.9-1.7 26.9-1.7 + 01DEC2010 20.5-1.7 23.3-1.7 25.0-1.7 27.0-1.5 + 08DEC2010 20.9-1.5 23.4-1.7 25.0-1.6 26.9-1.6 + 15DEC2010 21.1-1.7 23.5-1.7 25.0-1.5 26.9-1.6 + 22DEC2010 21.7-1.4 23.4-1.8 24.8-1.8 26.8-1.6 + 29DEC2010 22.9-0.6 23.8-1.5 25.0-1.5 26.7-1.7 + 05JAN2011 23.1-0.7 24.1-1.3 25.0-1.5 26.7-1.7 + 12JAN2011 23.6-0.7 24.1-1.5 24.7-1.8 26.6-1.7 + 19JAN2011 24.2-0.5 24.4-1.3 25.0-1.6 26.7-1.6 + 26JAN2011 25.0 0.0 24.5-1.4 24.9-1.7 26.8-1.4 + 02FEB2011 25.3-0.1 24.9-1.1 25.1-1.5 26.6-1.5 + 09FEB2011 25.9 0.2 25.5-0.8 25.5-1.2 26.8-1.3 + 16FEB2011 26.8 0.7 25.6-0.8 25.4-1.3 27.0-1.1 + 23FEB2011 26.4 0.2 25.9-0.7 25.6-1.3 27.0-1.1 + 02MAR2011 25.7-0.6 26.0-0.8 25.7-1.3 27.1-1.1 + 09MAR2011 26.3-0.2 26.2-0.8 26.0-1.1 27.3-0.9 + 16MAR2011 26.6 0.1 26.3-0.8 26.4-0.9 27.5-0.7 + 23MAR2011 25.8-0.5 26.6-0.6 26.4-0.9 27.5-0.7 + 30MAR2011 25.6-0.4 26.9-0.4 26.6-0.9 27.5-0.8 + 06APR2011 25.4-0.4 27.1-0.2 26.9-0.7 27.7-0.6 + 13APR2011 25.8 0.3 27.3-0.2 27.1-0.7 27.9-0.6 + 20APR2011 25.4 0.1 27.2-0.3 27.1-0.7 27.8-0.7 + 27APR2011 25.8 0.8 27.2-0.1 27.1-0.7 27.9-0.7 + 04MAY2011 25.1 0.4 27.0-0.3 27.2-0.6 28.0-0.7 + 11MAY2011 25.3 0.9 27.0-0.2 27.4-0.5 28.3-0.5 + 18MAY2011 24.6 0.5 27.0-0.1 27.6-0.3 28.4-0.4 + 25MAY2011 24.0 0.3 26.8 0.0 27.5-0.3 28.3-0.5 + 01JUN2011 24.3 0.8 26.8 0.1 27.5-0.2 28.4-0.4 + 08JUN2011 24.2 1.1 26.7 0.1 27.5-0.2 28.4-0.4 + 15JUN2011 23.8 1.0 26.6 0.1 27.4-0.2 28.4-0.4 + 22JUN2011 23.2 0.6 26.5 0.2 27.4-0.1 28.4-0.4 + 29JUN2011 22.9 0.6 26.1 0.1 27.4-0.1 28.6-0.2 + 06JUL2011 22.2 0.2 25.8-0.1 27.1-0.3 28.5-0.3 + 13JUL2011 21.9 0.2 25.7 0.0 27.1-0.2 28.5-0.3 + 20JUL2011 22.1 0.6 25.6 0.0 26.9-0.3 28.4-0.4 + 27JUL2011 21.9 0.7 25.3-0.1 26.8-0.3 28.4-0.4 + 03AUG2011 21.5 0.4 25.0-0.3 26.4-0.6 28.3-0.4 + 10AUG2011 20.9 0.0 24.6-0.5 26.3-0.6 28.4-0.3 + 17AUG2011 20.5-0.1 24.5-0.5 26.0-0.8 28.2-0.4 + 24AUG2011 20.2-0.4 24.3-0.6 26.1-0.7 28.3-0.4 + 31AUG2011 20.0-0.5 24.4-0.5 26.1-0.7 28.3-0.4 + 07SEP2011 19.7-0.7 24.2-0.7 26.1-0.7 28.2-0.5 + 14SEP2011 19.6-0.8 24.1-0.7 26.0-0.8 28.0-0.7 + 21SEP2011 19.8-0.6 24.3-0.6 25.9-0.9 27.8-0.9 + 28SEP2011 19.9-0.6 24.1-0.7 26.0-0.7 28.0-0.7 + 05OCT2011 19.8-0.8 24.1-0.8 25.7-1.0 27.7-0.9 + 12OCT2011 19.7-1.0 24.1-0.8 25.8-0.9 27.9-0.8 + 19OCT2011 20.0-0.9 23.9-1.1 25.8-0.8 28.1-0.6 + 26OCT2011 21.2 0.2 23.8-1.1 25.4-1.2 28.0-0.7 + 02NOV2011 20.5-0.8 23.9-1.1 25.6-1.0 27.9-0.8 + 09NOV2011 20.5-0.9 23.9-1.1 25.7-0.9 27.9-0.7 + 16NOV2011 20.5-1.1 23.8-1.1 25.6-1.0 27.9-0.7 + 23NOV2011 21.4-0.5 24.0-1.0 25.6-1.0 27.8-0.8 + 30NOV2011 21.0-1.2 23.8-1.3 25.4-1.2 27.7-0.9 + 07DEC2011 21.4-1.0 23.9-1.2 25.5-1.1 27.5-1.0 + 14DEC2011 21.5-1.2 24.1-1.0 25.6-1.0 27.4-1.1 + 21DEC2011 22.1-1.0 24.5-0.7 25.6-1.0 27.2-1.3 + 28DEC2011 22.6-0.9 24.4-0.9 25.5-1.1 27.1-1.3 + 04JAN2012 22.7-1.1 24.6-0.8 25.5-1.0 27.2-1.2 + 11JAN2012 23.7-0.5 24.8-0.7 25.6-1.0 27.1-1.2 + 18JAN2012 24.0-0.6 24.9-0.8 25.4-1.2 27.1-1.2 + 25JAN2012 24.6-0.4 25.2-0.7 25.5-1.2 26.9-1.3 + 01FEB2012 24.6-0.8 25.2-0.8 25.5-1.2 27.0-1.2 + 08FEB2012 25.2-0.5 25.6-0.6 25.7-1.0 27.1-1.0 + 15FEB2012 26.9 0.8 26.3-0.1 26.1-0.7 27.1-1.0 + 22FEB2012 26.9 0.8 26.8 0.2 26.5-0.4 27.4-0.7 + 29FEB2012 27.3 1.0 27.1 0.4 26.4-0.6 27.2-0.9 + 07MAR2012 26.6 0.2 26.7-0.2 26.4-0.7 27.3-0.9 + 14MAR2012 26.6 0.2 26.6-0.4 26.6-0.6 27.5-0.7 + 21MAR2012 26.7 0.4 27.0-0.2 26.7-0.6 27.8-0.5 + 28MAR2012 26.9 0.8 27.5 0.3 27.1-0.3 27.7-0.6 + 04APR2012 26.2 0.3 27.6 0.3 27.2-0.3 27.9-0.5 + 11APR2012 27.4 1.8 27.8 0.4 27.3-0.4 28.1-0.3 + 18APR2012 26.8 1.4 27.5 0.0 27.3-0.5 28.1-0.4 + 25APR2012 26.6 1.5 27.5 0.1 27.6-0.2 28.4-0.2 + 02MAY2012 26.3 1.6 27.4 0.1 27.7-0.1 28.4-0.2 + 09MAY2012 25.7 1.2 27.3 0.1 27.8 0.0 28.4-0.3 + 16MAY2012 25.2 1.0 27.2 0.1 27.8 0.0 28.5-0.3 + 23MAY2012 24.8 0.9 27.1 0.2 27.8 0.0 28.6-0.2 + 30MAY2012 24.5 0.9 27.2 0.4 27.9 0.2 28.7-0.1 + 06JUN2012 24.7 1.5 27.1 0.4 27.8 0.1 28.6-0.2 + 13JUN2012 24.4 1.5 27.1 0.6 27.9 0.3 28.6-0.2 + 20JUN2012 24.3 1.7 27.1 0.8 28.0 0.4 28.8 0.0 + 27JUN2012 23.8 1.5 27.1 0.9 28.1 0.6 28.9 0.0 + 04JUL2012 23.2 1.1 26.8 0.8 27.9 0.5 28.8 0.0 + 11JUL2012 22.6 0.8 26.6 0.8 27.7 0.4 28.8 0.0 + 18JUL2012 22.6 1.1 26.5 0.9 27.7 0.5 28.8 0.0 + 25JUL2012 22.0 0.7 26.4 1.0 27.7 0.6 28.9 0.1 + 01AUG2012 21.6 0.5 26.1 0.9 27.6 0.6 29.0 0.3 + 08AUG2012 20.9 0.0 25.9 0.8 27.7 0.8 29.1 0.4 + 15AUG2012 20.8 0.1 25.6 0.6 27.4 0.6 29.1 0.4 + 22AUG2012 21.0 0.4 25.5 0.5 27.4 0.6 29.1 0.4 + 29AUG2012 20.3-0.2 25.6 0.7 27.7 0.9 29.1 0.5 + 05SEP2012 20.7 0.3 25.5 0.6 27.5 0.8 29.2 0.5 + 12SEP2012 20.9 0.5 25.3 0.4 27.3 0.5 29.1 0.4 + 19SEP2012 21.0 0.5 25.2 0.3 27.0 0.3 29.0 0.4 + 26SEP2012 21.0 0.5 25.1 0.2 26.9 0.2 29.1 0.4 + 03OCT2012 20.5-0.1 24.8-0.1 26.8 0.1 29.0 0.3 + 10OCT2012 20.2-0.6 24.7-0.2 26.8 0.1 29.1 0.4 + 17OCT2012 20.5-0.4 25.0 0.1 27.0 0.3 29.1 0.5 + 24OCT2012 21.0 0.0 25.0 0.1 27.2 0.5 29.3 0.7 + 31OCT2012 21.5 0.3 25.2 0.2 27.1 0.4 29.2 0.6 + 07NOV2012 21.5 0.2 25.1 0.1 27.0 0.4 29.2 0.6 + 14NOV2012 21.0-0.5 25.2 0.2 27.2 0.5 29.3 0.7 + 21NOV2012 21.1-0.7 25.1 0.1 26.9 0.3 29.1 0.5 + 28NOV2012 20.7-1.4 24.9-0.1 26.8 0.2 28.9 0.4 + 05DEC2012 21.5-0.9 24.9-0.2 26.5-0.1 28.6 0.1 + 12DEC2012 21.8-0.8 24.8-0.3 26.5-0.1 28.8 0.4 + 19DEC2012 22.4-0.6 24.9-0.3 26.4-0.2 28.6 0.2 + 26DEC2012 22.7-0.6 25.0-0.3 26.4-0.1 28.6 0.2 + 02JAN2013 23.3-0.4 25.0-0.4 26.3-0.3 28.4 0.1 + 09JAN2013 23.7-0.4 24.8-0.7 26.0-0.6 28.3 0.0 + 16JAN2013 24.1-0.4 25.0-0.6 26.0-0.6 28.1-0.2 + 23JAN2013 24.2-0.6 25.3-0.5 26.4-0.2 28.2 0.0 + 30JAN2013 24.8-0.5 25.1-0.9 26.1-0.5 28.1 0.0 + 06FEB2013 25.4-0.2 25.5-0.7 26.2-0.5 28.1-0.1 + 13FEB2013 25.9-0.1 25.9-0.4 26.4-0.3 28.1 0.0 + 20FEB2013 25.6-0.6 26.2-0.3 26.3-0.5 27.9-0.1 + 27FEB2013 25.8-0.4 26.5-0.2 26.6-0.3 27.9-0.2 + 06MAR2013 26.7 0.4 27.0 0.1 26.9-0.1 27.9-0.2 + 13MAR2013 27.0 0.5 27.1 0.0 26.8-0.3 27.7-0.4 + 20MAR2013 26.6 0.2 27.6 0.4 27.1-0.1 28.0-0.2 + 27MAR2013 25.6-0.5 27.6 0.3 27.3-0.1 28.1-0.2 + 03APR2013 25.0-0.9 27.3 0.0 27.6 0.1 28.3 0.0 + 10APR2013 24.8-0.9 27.5 0.0 27.7 0.0 28.5 0.1 + 17APR2013 24.6-0.8 27.5 0.0 27.7-0.1 28.5 0.0 + 24APR2013 24.5-0.6 27.3-0.1 27.7-0.1 28.4-0.1 + 01MAY2013 23.6-1.2 26.9-0.4 27.8 0.0 28.7 0.0 + 08MAY2013 22.9-1.6 26.7-0.5 27.7-0.1 28.7 0.0 + 15MAY2013 23.2-1.1 26.5-0.6 27.5-0.4 28.6-0.2 + 22MAY2013 22.3-1.6 25.9-1.0 27.4-0.4 28.7-0.1 + 29MAY2013 21.5-2.1 25.9-0.9 27.5-0.2 28.8 0.0 + 05JUN2013 22.0-1.3 25.9-0.8 27.5-0.2 28.8 0.0 + 12JUN2013 21.9-1.1 25.9-0.6 27.5-0.2 28.8-0.1 + 19JUN2013 21.1-1.6 25.7-0.7 27.3-0.3 28.6-0.2 + 26JUN2013 20.5-1.9 25.6-0.6 27.4-0.1 28.8 0.0 + 03JUL2013 20.6-1.5 25.4-0.5 27.2-0.2 28.8 0.0 + 10JUL2013 20.5-1.3 25.0-0.8 26.9-0.4 28.8 0.0 + 17JUL2013 20.1-1.5 24.8-0.8 26.8-0.4 28.7-0.1 + 24JUL2013 20.3-1.1 24.9-0.6 26.8-0.3 28.7-0.1 + 31JUL2013 19.8-1.3 24.6-0.8 26.8-0.2 28.7 0.0 + 07AUG2013 19.8-1.1 24.5-0.7 26.7-0.3 28.6-0.1 + 14AUG2013 19.6-1.1 24.4-0.7 26.4-0.4 28.7 0.0 + 21AUG2013 19.9-0.8 24.4-0.6 26.4-0.4 28.7 0.0 + 28AUG2013 19.4-1.1 24.5-0.5 26.7-0.1 28.8 0.2 + 04SEP2013 19.6-0.9 24.6-0.3 26.8 0.0 28.8 0.1 + 11SEP2013 20.0-0.4 24.7-0.2 26.8 0.0 28.7 0.0 + 18SEP2013 19.9-0.5 24.9 0.1 26.7-0.1 28.6-0.1 + 25SEP2013 20.1-0.4 24.7-0.2 26.5-0.2 28.5-0.1 + 02OCT2013 19.7-0.9 24.6-0.2 26.4-0.3 28.7 0.0 + 09OCT2013 20.1-0.7 24.6-0.3 26.3-0.3 28.6 0.0 + 16OCT2013 20.3-0.5 24.8-0.1 26.3-0.4 28.6-0.1 + 23OCT2013 20.5-0.4 24.7-0.2 26.3-0.4 28.7 0.1 + 30OCT2013 20.5-0.7 24.8-0.1 26.5-0.2 28.8 0.2 + 06NOV2013 21.0-0.4 24.8-0.1 26.6 0.0 28.9 0.3 + 13NOV2013 21.1-0.4 24.7-0.2 26.6 0.0 28.9 0.3 + 20NOV2013 21.3-0.5 24.8-0.2 26.7 0.1 28.9 0.3 + 27NOV2013 21.7-0.4 24.9-0.1 26.7 0.1 28.8 0.2 + 04DEC2013 22.0-0.3 24.9-0.2 26.8 0.2 28.8 0.3 + 11DEC2013 22.4-0.2 25.1 0.0 26.6 0.0 28.7 0.2 + 18DEC2013 22.4-0.5 25.2 0.0 26.5-0.1 28.6 0.1 + 25DEC2013 22.8-0.4 25.2-0.1 26.4-0.2 28.5 0.1 + 01JAN2014 23.7 0.0 25.2-0.2 26.3-0.3 28.2-0.2 + 08JAN2014 24.2 0.1 25.1-0.5 26.0-0.5 28.2-0.2 + 15JAN2014 25.0 0.6 25.2-0.4 25.9-0.7 28.0-0.3 + 22JAN2014 25.4 0.6 25.6-0.2 26.2-0.4 28.1-0.1 + 29JAN2014 25.4 0.2 25.3-0.7 25.9-0.7 27.9-0.2 + 05FEB2014 25.1-0.4 25.3-0.8 25.9-0.7 28.1 0.0 + 12FEB2014 25.4-0.6 25.4-0.9 26.2-0.5 28.5 0.4 + 19FEB2014 25.1-1.1 25.7-0.7 26.4-0.4 28.5 0.4 + 26FEB2014 25.5-0.7 26.0-0.6 26.3-0.6 28.2 0.1 + 05MAR2014 26.1-0.3 26.4-0.5 26.6-0.4 28.5 0.3 + 12MAR2014 25.8-0.6 26.8-0.3 26.8-0.4 28.7 0.6 + 19MAR2014 25.2-1.2 27.3 0.1 27.4 0.1 28.8 0.6 + 26MAR2014 25.4-0.7 27.6 0.4 27.6 0.2 29.0 0.7 + 02APR2014 25.2-0.7 27.8 0.5 27.8 0.3 29.0 0.7 + 09APR2014 24.9-0.8 27.6 0.1 27.9 0.2 29.1 0.7 + 16APR2014 24.8-0.7 27.7 0.2 28.0 0.2 29.1 0.6 + 23APR2014 25.3 0.1 27.8 0.4 28.2 0.4 29.2 0.6 + 30APR2014 25.7 0.8 27.8 0.5 28.2 0.4 29.3 0.7 + 07MAY2014 25.8 1.2 27.8 0.6 28.3 0.5 29.5 0.8 + 14MAY2014 25.5 1.3 27.7 0.6 28.3 0.4 29.5 0.8 + 21MAY2014 25.4 1.5 27.6 0.7 28.3 0.5 29.6 0.8 + 28MAY2014 25.3 1.6 27.6 0.7 28.4 0.6 29.7 0.9 + 04JUN2014 24.8 1.4 27.5 0.8 28.3 0.5 29.6 0.8 + 11JUN2014 24.6 1.6 27.3 0.8 28.1 0.4 29.5 0.6 + 18JUN2014 24.8 2.1 27.4 1.0 28.1 0.5 29.4 0.5 + 25JUN2014 24.0 1.6 27.2 1.0 28.0 0.5 29.3 0.5 + 02JUL2014 23.6 1.4 27.0 1.0 27.8 0.4 29.1 0.3 + 09JUL2014 23.0 1.1 26.5 0.6 27.6 0.3 29.1 0.3 + 16JUL2014 23.1 1.5 26.2 0.6 27.4 0.2 29.1 0.4 + 23JUL2014 22.9 1.6 26.0 0.5 27.1-0.1 28.9 0.2 + 30JUL2014 21.8 0.6 25.5 0.2 26.9-0.1 29.0 0.3 + 06AUG2014 22.2 1.2 25.6 0.4 27.0 0.0 29.2 0.5 + 13AUG2014 21.9 1.2 25.5 0.5 26.9 0.0 29.0 0.4 + 20AUG2014 22.1 1.4 25.5 0.5 27.1 0.3 29.1 0.4 + 27AUG2014 21.3 0.8 25.4 0.4 27.2 0.4 29.2 0.5 + 03SEP2014 21.7 1.2 25.3 0.4 27.1 0.4 29.2 0.5 + 10SEP2014 21.1 0.7 25.3 0.4 27.3 0.5 29.4 0.7 + 17SEP2014 21.0 0.7 25.2 0.4 27.2 0.5 29.4 0.8 + 24SEP2014 21.2 0.8 25.4 0.5 27.1 0.4 29.3 0.6 + 01OCT2014 21.7 1.1 25.4 0.5 27.1 0.3 29.2 0.5 + 08OCT2014 21.3 0.6 25.5 0.6 27.1 0.4 29.1 0.5 + 15OCT2014 21.5 0.7 25.5 0.5 27.2 0.5 29.4 0.7 + 22OCT2014 21.8 0.8 25.8 0.8 27.2 0.5 29.4 0.7 + 29OCT2014 21.8 0.6 25.8 0.9 27.3 0.6 29.4 0.8 + 05NOV2014 21.9 0.5 25.8 0.9 27.4 0.8 29.5 0.9 + 12NOV2014 22.4 0.9 25.8 0.9 27.5 0.8 29.5 0.9 + 19NOV2014 22.6 0.8 26.0 1.0 27.5 0.9 29.5 0.9 + 26NOV2014 22.4 0.4 25.9 0.9 27.6 1.0 29.5 0.9 + 03DEC2014 22.3 0.0 25.8 0.7 27.4 0.8 29.4 0.9 + 10DEC2014 22.8 0.2 26.0 0.9 27.5 0.9 29.4 0.9 + 17DEC2014 22.9 0.1 26.0 0.8 27.4 0.8 29.4 1.0 + 24DEC2014 23.1-0.2 26.0 0.7 27.3 0.7 29.3 0.9 + 31DEC2014 23.6 0.0 25.9 0.6 27.1 0.5 29.2 0.8 + 07JAN2015 23.7-0.2 25.9 0.4 27.0 0.4 29.1 0.7 + 14JAN2015 24.0-0.4 25.9 0.3 27.1 0.5 29.1 0.9 + 21JAN2015 24.3-0.4 26.1 0.3 27.2 0.6 29.2 1.0 + 28JAN2015 24.8-0.3 26.2 0.3 27.2 0.5 29.1 0.9 + 04FEB2015 25.0-0.5 26.2 0.1 27.2 0.5 29.1 0.9 + 11FEB2015 25.1-0.8 26.6 0.3 27.2 0.5 29.0 0.9 + 18FEB2015 26.1-0.1 26.7 0.3 27.3 0.5 29.0 1.0 + 25FEB2015 26.1-0.1 26.8 0.1 27.5 0.6 29.3 1.2 From e79607372b6620492e8431dbc0632771b1132f6d Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Fri, 13 Mar 2015 15:03:48 +0000 Subject: [PATCH 333/875] Disambiguate between OCaml and Standard ML Fix #2208 --- lib/linguist/heuristics.rb | 9 + samples/OCaml/cmdliner.ml | 1344 +++++++++++++++++++ samples/OCaml/common.ml | 14 + samples/OCaml/date.ml | 40 + samples/OCaml/map.ml | 337 +++++ samples/OCaml/mirage.ml | 2503 ++++++++++++++++++++++++++++++++++++ samples/OCaml/reload.ml | 125 ++ samples/OCaml/sigset.ml | 70 + samples/OCaml/uutf.ml | 810 ++++++++++++ 9 files changed, 5252 insertions(+) create mode 100644 samples/OCaml/cmdliner.ml create mode 100644 samples/OCaml/common.ml create mode 100644 samples/OCaml/date.ml create mode 100644 samples/OCaml/map.ml create mode 100644 samples/OCaml/mirage.ml create mode 100644 samples/OCaml/reload.ml create mode 100644 samples/OCaml/sigset.ml create mode 100644 samples/OCaml/uutf.ml diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 52ead64e..0087bb51 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -261,5 +261,14 @@ module Linguist Language["Makefile"] end end + + disambiguate "OCaml", "Standard ML" do |data| + if /module|let rec |match\s+(\S+\s)+with/.match(data) + Language["OCaml"] + elsif /=> |case\s+(\S+\s)+of/.match(data) + Language["Standard ML"] + end + end + end end diff --git a/samples/OCaml/cmdliner.ml b/samples/OCaml/cmdliner.ml new file mode 100644 index 00000000..71e49e85 --- /dev/null +++ b/samples/OCaml/cmdliner.ml @@ -0,0 +1,1344 @@ +(*--------------------------------------------------------------------------- + Copyright (c) 2011 Daniel C. Bünzli. All rights reserved. + Distributed under a BSD3 license, see license at the end of the file. + %%NAME%% release %%VERSION%% + ---------------------------------------------------------------------------*) + +(* Invalid_arg strings *) + +let err_argv = "argv array must have at least one element" +let err_not_opt = "Option argument without name" +let err_not_pos = "Positional argument with a name" +let err_help s = "term error, help requested for unknown command " ^ s +let err_empty_list = "empty list" + +(* A few useful definitions. *) + +let rev_compare n n' = compare n' n +let str = Printf.sprintf +let pr = Format.fprintf +let pr_str = Format.pp_print_string +let pr_char = Format.pp_print_char +let str_of_pp pp v = pp Format.str_formatter v; Format.flush_str_formatter () +let quote s = str "`%s'" s +let alts_str ?(quoted = true) alts = + let quote = if quoted then quote else (fun s -> s) in + match alts with + | [] -> invalid_arg err_empty_list + | [a] -> (quote a) + | [a; b] -> str "either %s or %s" (quote a) (quote b) + | alts -> + let rev_alts = List.rev alts in + str "one of %s or %s" + (String.concat ", " (List.rev_map quote (List.tl rev_alts))) + (quote (List.hd rev_alts)) + +let pr_white_str spaces ppf s = (* spaces and new lines with Format's funs *) + let left = ref 0 and right = ref 0 and len = String.length s in + let flush () = + Format.pp_print_string ppf (String.sub s !left (!right - !left)); + incr right; left := !right; + in + while (!right <> len) do + if s.[!right] = '\n' then (flush (); Format.pp_force_newline ppf ()) else + if spaces && s.[!right] = ' ' then (flush (); Format.pp_print_space ppf ()) + else incr right; + done; + if !left <> len then flush () + +let pr_text = pr_white_str true +let pr_lines = pr_white_str false +let pr_to_temp_file pr v = try + let exec = Filename.basename Sys.argv.(0) in + let file, oc = Filename.open_temp_file exec "out" in + let ppf = Format.formatter_of_out_channel oc in + pr ppf v; Format.pp_print_flush ppf (); close_out oc; + at_exit (fun () -> try Sys.remove file with Sys_error e -> ()); + Some file +with Sys_error _ -> None + +(* Levenshtein distance, for making spelling suggestions in case of error. *) + +let levenshtein_distance s t = + (* As found here http://rosettacode.org/wiki/Levenshtein_distance#OCaml *) + let minimum a b c = min a (min b c) in + let m = String.length s in + let n = String.length t in + (* for all i and j, d.(i).(j) will hold the Levenshtein distance between + the first i characters of s and the first j characters of t *) + let d = Array.make_matrix (m+1) (n+1) 0 in + for i = 0 to m do d.(i).(0) <- i done; + for j = 0 to n do d.(0).(j) <- j done; + for j = 1 to n do + for i = 1 to m do + if s.[i-1] = t.[j-1] then + d.(i).(j) <- d.(i-1).(j-1) (* no operation required *) + else + d.(i).(j) <- minimum + (d.(i-1).(j) + 1) (* a deletion *) + (d.(i).(j-1) + 1) (* an insertion *) + (d.(i-1).(j-1) + 1) (* a substitution *) + done; + done; + d.(m).(n) + +let suggest s candidates = + let add (min, acc) name = + let d = levenshtein_distance s name in + if d = min then min, (name :: acc) else + if d < min then d, [name] else + min, acc + in + let dist, suggs = List.fold_left add (max_int, []) candidates in + if dist < 3 (* suggest only if not too far *) then suggs else [] + +(* Tries. This implementation also maps any non ambiguous prefix of a + key to its value. *) + +module Trie : sig + type 'a t + val empty : 'a t + val is_empty : 'a t -> bool + val add : 'a t -> string -> 'a -> 'a t + val find : 'a t -> string -> [ `Ok of 'a | `Ambiguous | `Not_found ] + val ambiguities : 'a t -> string -> string list + val of_list : (string * 'a) list -> 'a t +end = struct + module Cmap = Map.Make (Char) (* character maps. *) + type 'a value = (* type for holding a bound value. *) + | Pre of 'a (* value is bound by the prefix of a key. *) + | Key of 'a (* value is bound by an entire key. *) + | Amb (* no value bound because of ambiguous prefix. *) + | Nil (* not bound (only for the empty trie). *) + + type 'a t = { v : 'a value; succs : 'a t Cmap.t } + let empty = { v = Nil; succs = Cmap.empty } + let is_empty t = t = empty + + (* N.B. If we replace a non-ambiguous key, it becomes ambiguous but it's + not important for our use. Also the following is not tail recursive but + the stack is bounded by key length. *) + let add t k d = + let rec aux t k len i d pre_d = + if i = len then { v = Key d; succs = t.succs } else + let v = match t.v with + | Amb | Pre _ -> Amb | Key _ as v -> v | Nil -> pre_d + in + let succs = + let t' = try Cmap.find k.[i] t.succs with Not_found -> empty in + Cmap.add k.[i] (aux t' k len (i + 1) d pre_d) t.succs + in + { v; succs } + in + aux t k (String.length k) 0 d (Pre d (* allocate less *)) + + let find_node t k = + let rec aux t k len i = + if i = len then t else + aux (Cmap.find k.[i] t.succs) k len (i + 1) + in + aux t k (String.length k) 0 + + let find t k = + try match (find_node t k).v with + | Key v | Pre v -> `Ok v | Amb -> `Ambiguous | Nil -> `Not_found + with Not_found -> `Not_found + + let ambiguities t p = (* ambiguities of [p] in [t]. *) + try + let t = find_node t p in + match t.v with + | Key _ | Pre _ | Nil -> [] + | Amb -> + let add_char s c = s ^ (String.make 1 c) in + let rem_char s = String.sub s 0 ((String.length s) - 1) in + let to_list m = Cmap.fold (fun k t acc -> (k,t) :: acc) m [] in + let rec aux acc p = function + | ((c, t) :: succs) :: rest -> + let p' = add_char p c in + let acc' = match t.v with + | Pre _ | Amb -> acc + | Key _ -> (p' :: acc) + | Nil -> assert false + in + aux acc' p' ((to_list t.succs) :: succs :: rest) + | [] :: [] -> acc + | [] :: rest -> aux acc (rem_char p) rest + | [] -> assert false + in + aux [] p (to_list t.succs :: []) + with Not_found -> [] + + let of_list l = List.fold_left (fun t (s, v) -> add t s v) empty l +end + +(* The following types keep untyped information about arguments and + terms. This data is used to parse the command line, report errors + and format man page information. *) + +type absence = (* what happens if the argument is absent from the cl. *) + | Error (* an error is reported. *) + | Val of string Lazy.t (* if <> "", takes the given default value. *) + +type opt_kind = (* kinds of optional arguments. *) + | Flag (* just a flag, without value. *) + | Opt (* value is required. *) + | Opt_vopt of string (* option value is optional, takes given default. *) + +type pos_kind = (* kinds of positional arguments. *) + | All (* all positional arguments. *) + | Nth of bool * int (* specific position. *) + | Left of bool * int (* all args on the left of a position. *) + | Right of bool * int (* all args on the right of a position. *) + +type arg_info = (* information about a command line argument. *) + { id : int; (* unique id for the argument. *) + absent : absence; (* behaviour if absent. *) + doc : string; (* help. *) + docv : string; (* variable name for the argument in help. *) + docs : string; (* title of help section where listed. *) + p_kind : pos_kind; (* positional arg kind. *) + o_kind : opt_kind; (* optional arg kind. *) + o_names : string list; (* names (for opt args). *) + o_all : bool; } (* repeatable (for opt args). *) + +let arg_id = (* thread-safe UIDs, Oo.id (object end) was used before. *) + let c = ref 0 in + fun () -> + let id = !c in + incr c; if id > !c then assert false (* too many ids *) else id + +let is_opt a = a.o_names <> [] +let is_pos a = a.o_names = [] + +module Amap = Map.Make (* arg info maps. *) + (struct type t = arg_info let compare a a' = compare a.id a'.id end) + +type arg = (* unconverted argument data as found on the command line. *) + | O of (int * string * (string option)) list (* (pos, name, value) of opt. *) + | P of string list + +type cmdline = arg Amap.t (* command line, maps arg_infos to arg value. *) + +type man_block = [ (* block of manpage text. *) + | `S of string | `P of string | `I of string * string | `Noblank ] + +type term_info = + { name : string; (* name of the term. *) + version : string option; (* version (for --version). *) + tdoc : string; (* one line description of term. *) + tdocs : string; (* title of man section where listed (commands). *) + sdocs : string; (* standard options, title of section where listed. *) + man : man_block list; } (* man page text. *) + +type eval_info = (* information about the evaluation context. *) + { term : term_info * arg_info list; (* term being evaluated. *) + main : term_info * arg_info list; (* main term. *) + choices : (term_info * arg_info list) list} (* all term choices. *) + +let eval_kind ei = (* evaluation with multiple terms ? *) + if ei.choices = [] then `Simple else + if (fst ei.term) == (fst ei.main) then `M_main else `M_choice + +module Manpage = struct + type title = string * int * string * string * string + type block = man_block + type t = title * block list + + let p_indent = 7 (* paragraph indentation. *) + let l_indent = 4 (* label indentation. *) + let escape subst esc buf s = + let subst s = + let len = String.length s in + if not (len > 1 && s.[1] = ',') then (subst s) else + if len = 2 then "" else + esc s.[0] (String.sub s 2 (len - 2)) + in + Buffer.clear buf; Buffer.add_substitute buf subst s; + let s = Buffer.contents buf in (* twice for $(i,$(mname)). *) + Buffer.clear buf; Buffer.add_substitute buf subst s; + Buffer.contents buf + + let pr_tokens ?(groff = false) ppf s = + let is_space = function ' ' | '\n' | '\r' | '\t' -> true | _ -> false in + let len = String.length s in + let i = ref 0 in + try while (true) do + while (!i < len && is_space s.[!i]) do incr i done; + let start = !i in + if start = len then raise Exit; + while (!i < len && not (is_space s.[!i]) && not (s.[!i] = '-')) do + incr i + done; + pr_str ppf (String.sub s start (!i - start)); + if !i = len then raise Exit; + if s.[!i] = '-' then + (incr i; if groff then pr_str ppf "\\-" else pr_char ppf '-'); + if (!i < len && is_space s.[!i]) then + (if groff then pr_char ppf ' ' else Format.pp_print_space ppf ()) + done with Exit -> () + + (* Plain text output *) + + let plain_esc c s = match c with 'g' -> "" (* groff specific *) | _ -> s + let pr_indent ppf c = for i = 1 to c do pr_char ppf ' ' done + let pr_plain_blocks subst ppf ts = + let buf = Buffer.create 1024 in + let escape t = escape subst plain_esc buf t in + let pr_tokens ppf t = pr_tokens ppf (escape t) in + let rec aux = function + | [] -> () + | t :: ts -> + begin match t with + | `Noblank -> () + | `P s -> pr ppf "%a@[%a@]@," pr_indent p_indent pr_tokens s + | `S s -> pr ppf "@[%a@]" pr_tokens s + | `I (label, s) -> + let label = escape label in + let ll = String.length label in + pr ppf "@[%a@[%a@]" pr_indent p_indent pr_tokens label; + if s = "" then () else + if ll < l_indent then + pr ppf "%a@[%a@]@]@," pr_indent (l_indent - ll) pr_tokens s + else + pr ppf "@\n%a@[%a@]@]@," + pr_indent (p_indent + l_indent) pr_tokens s + end; + begin match ts with + | `Noblank :: ts -> aux ts + | ts -> Format.pp_print_cut ppf (); aux ts + end + in + aux ts + + let pr_plain_page subst ppf (_, text) = + pr ppf "@[%a@]" (pr_plain_blocks subst) text + + (* Groff output *) + + let groff_esc c s = match c with + | 'i' -> (str "\\fI%s\\fR" s) + | 'b' -> (str "\\fB%s\\fR" s) + | 'p' -> "" (* plain text specific *) + | _ -> s + + let pr_groff_blocks subst ppf text = + let buf = Buffer.create 1024 in + let escape t = escape subst groff_esc buf t in + let pr_tokens ppf t = pr_tokens ~groff:true ppf (escape t) in + let pr_block = function + | `P s -> pr ppf "@\n.P@\n%a" pr_tokens s + | `S s -> pr ppf "@\n.SH %a" pr_tokens s + | `Noblank -> pr ppf "@\n.sp -1" + | `I (l, s) -> pr ppf "@\n.TP 4@\n%a@\n%a" pr_tokens l pr_tokens s + in + List.iter pr_block text + + let pr_groff_page subst ppf ((n, s, a1, a2, a3), t) = + pr ppf ".\\\" Pipe this output to groff -man -Tutf8 | less@\n\ + .\\\"@\n\ + .TH \"%s\" %d \"%s\" \"%s\" \"%s\"@\n\ + .\\\" Disable hyphenantion and ragged-right@\n\ + .nh@\n\ + .ad l\ + %a@?" + n s a1 a2 a3 (pr_groff_blocks subst) t + + (* Printing to a pager *) + + let find_cmd cmds = + let test, null = match Sys.os_type with + | "Win32" -> "where", " NUL" + | _ -> "type", "/dev/null" + in + let cmd c = Sys.command (str "%s %s 1>%s 2>%s" test c null null) = 0 in + try Some (List.find cmd cmds) with Not_found -> None + + let pr_to_pager print ppf v = + let pager = + let cmds = ["less"; "more"] in + let cmds = try (Sys.getenv "PAGER") :: cmds with Not_found -> cmds in + let cmds = try (Sys.getenv "MANPAGER") :: cmds with Not_found -> cmds in + find_cmd cmds + in + match pager with + | None -> print `Plain ppf v + | Some pager -> + let cmd = match (find_cmd ["groff"; "nroff"]) with + | None -> + begin match pr_to_temp_file (print `Plain) v with + | None -> None + | Some f -> Some (str "%s < %s" pager f) + end + | Some c -> + begin match pr_to_temp_file (print `Groff) v with + | None -> None + | Some f -> + (* TODO use -Tutf8, but annoyingly maps U+002D to U+2212. *) + let xroff = if c = "groff" then c ^ " -Tascii -P-c" else c in + Some (str "%s -man < %s | %s" xroff f pager) + end + in + match cmd with + | None -> print `Plain ppf v + | Some cmd -> if (Sys.command cmd) <> 0 then print `Plain ppf v + + let rec print ?(subst = fun x -> x) fmt ppf page = match fmt with + | `Pager -> pr_to_pager (print ~subst) ppf page + | `Plain -> pr_plain_page subst ppf page + | `Groff -> pr_groff_page subst ppf page +end + +module Help = struct + let invocation ?(sep = ' ') ei = match eval_kind ei with + | `Simple | `M_main -> (fst ei.main).name + | `M_choice -> str "%s%c%s" (fst ei.main).name sep (fst ei.term).name + + let title ei = + let prog = String.capitalize (fst ei.main).name in + let name = String.uppercase (invocation ~sep:'-' ei) in + let left_footer = prog ^ match (fst ei.main).version with + | None -> "" | Some v -> str " %s" v + in + let center_header = str "%s Manual" prog in + name, 1, "", left_footer, center_header + + let name_section ei = + let tdoc d = if d = "" then "" else (str " - %s" d) in + [`S "NAME"; `P (str "%s%s" (invocation ~sep:'-' ei) + (tdoc (fst ei.term).tdoc)); ] + + let synopsis ei = match eval_kind ei with + | `M_main -> str "$(b,%s) $(i,COMMAND) ..." (invocation ei) + | `Simple | `M_choice -> + let rev_cmp (p, _) (p', _) = match p', p with (* best effort. *) + | p, All -> -1 | All, p -> 1 + | Left _, Right _ -> -1 | Right _, Left _ -> 1 + | Left (false, k), Nth (false, k') + | Nth (false, k), Nth (false, k') + | Nth (false, k), Right (false, k') -> if k <= k' then -1 else 1 + | Nth (false, k), Left (false, k') + | Right (false, k), Nth (false, k') -> if k >= k' then 1 else -1 + | Left (true, k), Nth (true, k') + | Nth (true, k), Nth (true, k') + | Nth (true, k), Right (true, k') -> if k >= k' then -1 else 1 + | Nth (true, k), Left (true, k') + | Right (true, k), Nth (true, k') -> if k <= k' then 1 else -1 + | p, p' -> compare p p' + in + let rec format_pos acc = function + | a :: al -> + if is_opt a then format_pos acc al else + let v = if a.docv = "" then "$(i,ARG)" else str "$(i,%s)" a.docv in + let v = if a.absent = Error then str "%s" v else str "[%s]" v in + let v = v ^ match a.p_kind with Nth _ -> "" | _ -> "..." in + format_pos ((a.p_kind, v) :: acc) al + | [] -> acc + in + let args = List.sort rev_cmp (format_pos [] (snd ei.term)) in + let args = String.concat " " (List.rev_map snd args) in + str "$(b,%s) [$(i,OPTION)]... %s" (invocation ei) args + + let get_synopsis_section ei = + let rec extract_synopsis syn = function + | `S _ :: _ as man -> List.rev syn, man + | block :: rest -> extract_synopsis (block :: syn) rest + | [] -> List.rev syn, [] + in + match (fst ei.term).man with + | `S "SYNOPSIS" as s :: rest -> extract_synopsis [s] rest (* user-defined *) + | man -> [ `S "SYNOPSIS"; `P (synopsis ei); ], man (* automatic *) + + let make_arg_label a = + if is_pos a then str "$(i,%s)" a.docv else + let fmt_name var = match a.o_kind with + | Flag -> fun n -> str "$(b,%s)" n + | Opt -> + fun n -> + if String.length n > 2 then str "$(b,%s)=$(i,%s)" n var else + str "$(b,%s) $(i,%s)" n var + | Opt_vopt _ -> + fun n -> + if String.length n > 2 then str "$(b,%s)[=$(i,%s)]" n var else + str "$(b,%s) [$(i,%s)]" n var + in + let var = if a.docv = "" then "VAL" else a.docv in + let names = List.sort compare a.o_names in + let s = String.concat ", " (List.rev_map (fmt_name var) names) in + s + + let make_arg_items ei = + let buf = Buffer.create 200 in + let subst_docv docv d = + let subst = function "docv" -> str "$(i,%s)" docv | s -> str "$(%s)" s in + Buffer.clear buf; Buffer.add_substitute buf subst d; Buffer.contents buf + in + let rev_cmp a' a = + let c = compare a.docs a'.docs in + if c <> 0 then c else + match is_opt a, is_opt a' with + | true, true -> + let key names = + let k = String.lowercase (List.hd (List.sort rev_compare names)) in + if k.[1] = '-' then String.sub k 1 (String.length k - 1) else k + in + compare (key a.o_names) (key a'.o_names) + | false, false -> + compare (String.lowercase a.docv) (String.lowercase a'.docv) + | true, false -> -1 + | false, true -> 1 + in + let format a = + let absent = match a.absent with + | Error -> "" + | Val v -> match Lazy.force v with "" -> "" | v -> str "absent=%s" v + in + let optvopt = match a.o_kind with + | Opt_vopt v -> str "default=%s" v + | _ -> "" + in + let argvdoc = match absent, optvopt with + | "", "" -> "" + | s, "" | "", s -> str " (%s)" s + | s, s' -> str " (%s, %s)" s s' + in + (a.docs, `I (make_arg_label a ^ argvdoc, (subst_docv a.docv a.doc))) + in + let is_arg_item a = not (is_pos a && (a.docv = "" || a.doc = "")) in + let l = List.sort rev_cmp (List.filter is_arg_item (snd ei.term)) in + List.rev_map format l + + let make_cmd_items ei = match eval_kind ei with + | `Simple | `M_choice -> [] + | `M_main -> + let add_cmd acc (ti, _) = + (ti.tdocs, `I ((str "$(b,%s)" ti.name), ti.tdoc)) :: acc + in + List.sort rev_compare (List.fold_left add_cmd [] ei.choices) + + let text ei = (* man that code is particulary unreadable. *) + let rec merge_items acc to_insert mark il = function + | `S s as sec :: ts -> + let acc = List.rev_append to_insert acc in + let acc = if mark then sec :: `Orphan_mark :: acc else sec :: acc in + let to_insert, il = List.partition (fun (n, _) -> n = s) il in + let to_insert = List.rev_map (fun (_, i) -> i) to_insert in + let to_insert = (to_insert :> [ `Orphan_mark | Manpage.block] list) in + merge_items acc to_insert (s = "DESCRIPTION") il ts + | t :: ts -> + let t = (t :> [`Orphan_mark | Manpage.block]) in + merge_items (t :: acc) to_insert mark il ts + | [] -> + let acc = List.rev_append to_insert acc in + (if mark then `Orphan_mark :: acc else acc), il + in + let rec merge_orphans acc orphans = function + | `Orphan_mark :: ts -> + let rec merge acc s = function + | [] -> (`S s) :: acc + | (s', i) :: ss -> + let i = (i :> Manpage.block) in + if s = s' then merge (i :: acc) s ss else + merge (i :: (`S s) :: acc) s' ss + in + let acc = match orphans with + | [] -> acc | (s, _) :: _ -> merge acc s orphans + in + merge_orphans acc [] ts + | (#Manpage.block as e) :: ts -> merge_orphans (e :: acc) orphans ts + | [] -> acc + in + let cmds = make_cmd_items ei in + let args = make_arg_items ei in + let cmp (s, _) (s', _) = compare s s' in + let items = List.rev (List.stable_sort cmp (List.rev_append cmds args)) in + let synopsis, man = get_synopsis_section ei in + let rev_text, orphans = + merge_items [`Orphan_mark] [] false items man + in + synopsis @ merge_orphans [] orphans rev_text + + let ei_subst ei = function + | "tname" -> (fst ei.term).name + | "mname" -> (fst ei.main).name + | s -> s + + let man ei = + title ei, (name_section ei) @ (text ei) + + let print fmt ppf ei = Manpage.print ~subst:(ei_subst ei) fmt ppf (man ei) + let pr_synopsis ppf ei = + pr ppf "@[%s@]" + (Manpage.escape (ei_subst ei) + Manpage.plain_esc (Buffer.create 100) (synopsis ei)) + + let pr_version ppf ei = match (fst ei.main).version with + | None -> assert false + | Some v -> pr ppf "@[%a@]@." pr_text v +end + +(* Errors for the command line user *) + +module Err = struct + let invalid kind s exp = str "invalid %s %s, %s" kind (quote s) exp + let invalid_val = invalid "value" + let no kind s = str "no %s %s" (quote s) kind + let not_dir s = str "%s is not a directory" (quote s) + let is_dir s = str "%s is a directory" (quote s) + let element kind s exp = str "invalid element in %s (`%s'): %s" kind s exp + let sep_miss sep s = invalid_val s (str "missing a `%c' separator" sep) + let unknown kind ?(hints = []) v = + let did_you_mean s = str ", did you mean %s ?" s in + let hints = match hints with [] -> "." | hs -> did_you_mean (alts_str hs) in + str "unknown %s %s%s" kind (quote v) hints + + let ambiguous kind s ambs = + str "%s %s ambiguous and could be %s" kind (quote s) (alts_str ambs) + + let pos_excess excess = + str "too many arguments, don't know what to do with %s" + (String.concat ", " (List.map quote excess)) + + let flag_value f v = + str "option %s is a flag, it cannot take the argument %s" + (quote f) (quote v) + + let opt_value_missing f = str "option %s needs an argument" (quote f) + let opt_parse_value f e = str "option %s: %s" (quote f) e + let opt_repeated f f' = + if f = f' then str "option %s cannot be repeated" (quote f) else + str "options %s and %s cannot be present at the same time" (quote f) + (quote f') + + let pos_parse_value a e = + if a.docv = "" then e else match a.p_kind with + | Nth _ -> str "%s argument: %s" a.docv e + | _ -> str "%s... arguments: %s" a.docv e + + let arg_missing a = + if is_opt a then + let rec long_name = function + | n :: l -> if (String.length n) > 2 || l = [] then n else long_name l + | [] -> assert false + in + str "required option %s is missing" (long_name a.o_names) + else + if a.docv = "" then str "a required argument is missing" else + str "required argument %s is missing" a.docv + + (* Error printers *) + + let print ppf ei e = pr ppf "%s: @[%a@]@." (fst ei.main).name pr_text e + let pr_backtrace err ei e bt = + let bt = + let len = String.length bt in + if len > 0 then String.sub bt 0 (len - 1) (* remove final '\n' *) else bt + in + pr err + "%s: @[internal error, uncaught exception:@\n%a@]@." + (fst ei.main).name pr_lines (str "%s\n%s" (Printexc.to_string e) bt) + + let pr_try_help ppf ei = + let exec = Help.invocation ei in + let main = (fst ei.main).name in + if exec = main then + pr ppf "@[<2>Try `%s --help' for more information.@]" exec + else + pr ppf "@[<2>Try `%s --help' or `%s --help' for more information.@]" + exec main + + let pr_usage ppf ei e = + pr ppf "@[%s: @[%a@]@,@[Usage: @[%a@]@]@,%a@]@." + (fst ei.main).name pr_text e Help.pr_synopsis ei pr_try_help ei +end + +(* Command lines. A command line stores pre-parsed information about + the command line's arguments in a more structured way. Given the + [arg_info] values mentionned in a term and Sys.argv (whithout exec + name) we parse the command line into a map of [arg_info] values to + [arg] values. This map is used by the term's closures to retrieve + and convert command line arguments (see the Arg module). *) + +module Cmdline :sig + exception Error of string + val choose_term : term_info -> (term_info * 'a) list -> string list -> + term_info * string list + val create : ?peek_opts:bool -> arg_info list -> string list -> cmdline + val opt_arg : cmdline -> arg_info -> (int * string * (string option)) list + val pos_arg : cmdline -> arg_info -> string list +end = struct + exception Error of string + + let opt_arg cl a = match try Amap.find a cl with Not_found -> assert false + with O l -> l | _ -> assert false + + let pos_arg cl a = match try Amap.find a cl with Not_found -> assert false + with P l -> l | _ -> assert false + + let choose_term ti choices = function + | [] -> ti, [] + | maybe :: args' as args -> + if String.length maybe > 1 && maybe.[0] = '-' then ti, args else + let index = + let add acc (choice, _) = Trie.add acc choice.name choice in + List.fold_left add Trie.empty choices + in + match Trie.find index maybe with + | `Ok choice -> choice, args' + | `Not_found -> + let all = Trie.ambiguities index "" in + let hints = suggest maybe all in + raise (Error (Err.unknown "command" ~hints maybe)) + | `Ambiguous -> + let ambs = List.sort compare (Trie.ambiguities index maybe) in + raise (Error (Err.ambiguous "command" maybe ambs)) + + let arg_info_indexes al = + (* from [al] returns a trie mapping the names of optional arguments to + their arg_info, a list with all arg_info for positional arguments and + a cmdline mapping each arg_info to an empty [arg]. *) + let rec aux opti posi cl = function + | a :: l -> + if is_pos a then aux opti (a :: posi) (Amap.add a (P []) cl) l else + let add t name = Trie.add t name a in + aux (List.fold_left add opti a.o_names) posi (Amap.add a (O []) cl) l + | [] -> opti, posi, cl + in + aux Trie.empty [] Amap.empty al + + let parse_opt_arg s = (* (name,value) of opt arg, assert len > 1. *) + let l = String.length s in + if s.[1] <> '-' then + if l = 2 then s, None else + String.sub s 0 2, Some (String.sub s 2 (l - 2)) + else try + let i = String.index s '=' in + String.sub s 0 i, Some (String.sub s (i + 1) (l - i - 1)) + with Not_found -> s, None + + let parse_args ~peek_opts opti cl args = + (* returns an updated [cl] cmdline according to the options found in [args] + with the trie index [opti]. Positional arguments are returned in order + in a list. *) + let rec aux k opti cl pargs = function + | [] -> cl, (List.rev pargs) + | "--" :: args -> cl, (List.rev_append pargs args) + | s :: args -> + let is_opt s = String.length s > 1 && s.[0] = '-' in + let is_short_opt s = String.length s = 2 && s.[0] = '-' in + if not (is_opt s) then aux (k+1) opti cl (s :: pargs) args else + let name, value = parse_opt_arg s in + match Trie.find opti name with + | `Ok a -> + let value, args = match value, a.o_kind with + | Some v, Flag when is_short_opt name -> None, ("-" ^ v) :: args + | Some v, _ -> value, args + | None, Flag -> value, args + | None, _ -> + match args with + | v :: rest -> if is_opt v then None, args else Some v, rest + | [] -> None, args + in + let arg = O ((k, name, value) :: opt_arg cl a) in + aux (k+1) opti (Amap.add a arg cl) pargs args + | `Not_found when peek_opts -> aux (k+1) opti cl pargs args (* skip *) + | `Not_found -> + let hints = + if String.length s <= 2 then [] else + let short_opt, long_opt = + if s.[1] <> '-' + then s, Printf.sprintf "-%s" s + else String.sub s 1 (String.length s - 1), s + in + let short_opt, _ = parse_opt_arg short_opt in + let long_opt, _ = parse_opt_arg long_opt in + let all = Trie.ambiguities opti "-" in + match List.mem short_opt all, suggest long_opt all with + | false, [] -> [] + | false, l -> l + | true, [] -> [short_opt] + | true, l -> if List.mem short_opt l then l else short_opt :: l + in + raise (Error (Err.unknown "option" ~hints name)) + | `Ambiguous -> + let ambs = List.sort compare (Trie.ambiguities opti name) in + raise (Error (Err.ambiguous "option" name ambs)) + in + aux 0 opti cl [] args + + let process_pos_args posi cl pargs = + (* returns an updated [cl] cmdline in which each positional arg mentionned + in the list index posi, is given a value according the list + of positional arguments values [pargs]. *) + if pargs = [] then cl else + let rec take n acc l = + if n = 0 then List.rev acc else + take (n - 1) (List.hd l :: acc) (List.tl l) + in + let rec aux pargs last cl max_spec = function + | a :: al -> + let arg, max_spec = match a.p_kind with + | All -> P pargs, last + | Nth (rev, k) -> + let k = if rev then last - k else k in + let max_spec = max k max_spec in + if k < 0 || k > last then P [], max_spec else + P ([List.nth pargs k]), max_spec + | Left (rev, k) -> + let k = if rev then last - k else k in + let max_spec = max k max_spec in + if k <= 0 || k > last then P [], max_spec else + P (take k [] pargs), max_spec + | Right (rev, k) -> + let k = if rev then last - k else k in + if k < 0 || k >= last then P [], last else + P (List.rev (take (last - k) [] (List.rev pargs))), last + in + aux pargs last (Amap.add a arg cl) max_spec al + | [] -> cl, max_spec + in + let last = List.length pargs - 1 in + let cl, max_spec = aux pargs last cl (-1) posi in + if last <= max_spec then cl else + let excess = List.rev (take (last - max_spec) [] (List.rev pargs)) in + raise (Error (Err.pos_excess excess)) + + let create ?(peek_opts = false) al args = + let opti, posi, cl = arg_info_indexes al in + let cl, pargs = parse_args ~peek_opts opti cl args in + if peek_opts then cl (* skip positional arguments *) else + process_pos_args posi cl pargs +end + +module Arg = struct + type 'a parser = string -> [ `Ok of 'a | `Error of string ] + type 'a printer = Format.formatter -> 'a -> unit + type 'a converter = 'a parser * 'a printer + type 'a arg_converter = (eval_info -> cmdline -> 'a) + type 'a t = arg_info list * 'a arg_converter + type info = arg_info + + let ( & ) f x = f x + let parse_error e = raise (Cmdline.Error e) + let some ?(none = "") (parse, print) = + (fun s -> match parse s with `Ok v -> `Ok (Some v) | `Error _ as e -> e), + (fun ppf v -> match v with None -> pr_str ppf none| Some v -> print ppf v) + + let info ?docs ?(docv = "") ?(doc = "") names = + let dash n = if String.length n = 1 then "-" ^ n else "--" ^ n in + let docs = match docs with + | None -> if names = [] then "ARGUMENTS" else "OPTIONS" + | Some s -> s + in + { id = arg_id (); absent = Val (Lazy.from_val ""); + doc = doc; docv = docv; docs = docs; + p_kind = All; o_kind = Flag; o_names = List.rev_map dash names; + o_all = false; } + + let flag a = + if is_pos a then invalid_arg err_not_opt else + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> false + | [_, _, None] -> true + | [_, f, Some v] -> parse_error (Err.flag_value f v) + | (_, f, _) :: (_ ,g, _) :: _ -> parse_error (Err.opt_repeated f g) + in + [a], convert + + let flag_all a = + if is_pos a then invalid_arg err_not_opt else + let a = { a with o_all = true } in + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> [] + | l -> + let truth (_, f, v) = match v with + | None -> true | Some v -> parse_error (Err.flag_value f v) + in + List.rev_map truth l + in + [a], convert + + let vflag v l = + let convert _ cl = + let rec aux fv = function + | (v, a) :: rest -> + begin match Cmdline.opt_arg cl a with + | [] -> aux fv rest + | [_, f, None] -> + begin match fv with + | None -> aux (Some (f, v)) rest + | Some (g, _) -> parse_error (Err.opt_repeated g f) + end + | [_, f, Some v] -> parse_error (Err.flag_value f v) + | (_, f, _) :: (_, g, _) :: _ -> parse_error (Err.opt_repeated g f) + end + | [] -> match fv with None -> v | Some (_, v) -> v + in + aux None l + in + let flag (_, a) = if is_pos a then invalid_arg err_not_opt else a in + List.rev_map flag l, convert + + let vflag_all v l = + let convert _ cl = + let rec aux acc = function + | (fv, a) :: rest -> + begin match Cmdline.opt_arg cl a with + | [] -> aux acc rest + | l -> + let fval (k, f, v) = match v with + | None -> (k, fv) | Some v -> parse_error (Err.flag_value f v) + in + aux (List.rev_append (List.rev_map fval l) acc) rest + end + | [] -> + if acc = [] then v else List.rev_map snd (List.sort rev_compare acc) + in + aux [] l + in + let flag (_, a) = + if is_pos a then invalid_arg err_not_opt else { a with o_all = true } + in + List.rev_map flag l, convert + + let parse_opt_value parse f v = match parse v with + | `Ok v -> v | `Error e -> parse_error (Err.opt_parse_value f e) + + let opt ?vopt (parse, print) v a = + if is_pos a then invalid_arg err_not_opt else + let a = { a with absent = Val (lazy (str_of_pp print v)); + o_kind = match vopt with + | None -> Opt | Some dv -> Opt_vopt (str_of_pp print dv) } + in + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> v + | [_, f, Some v] -> parse_opt_value parse f v + | [_, f, None] -> + begin match vopt with + | None -> parse_error (Err.opt_value_missing f) + | Some optv -> optv + end + | (_, f, _) :: (_, g, _) :: _ -> parse_error (Err.opt_repeated g f) + in + [a], convert + + let opt_all ?vopt (parse, print) v a = + if is_pos a then invalid_arg err_not_opt else + let a = { a with absent = Val (Lazy.from_val ""); o_all = true; + o_kind = match vopt with + | None -> Opt | Some dv -> Opt_vopt (str_of_pp print dv) } + in + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> v + | l -> + let parse (k, f, v) = match v with + | Some v -> (k, parse_opt_value parse f v) + | None -> match vopt with + | None -> parse_error (Err.opt_value_missing f) + | Some dv -> (k, dv) + in + List.rev_map snd (List.sort rev_compare (List.rev_map parse l)) + in + [a], convert + + (* Positional arguments *) + + let parse_pos_value parse a v = match parse v with + | `Ok v -> v | `Error e -> parse_error (Err.pos_parse_value a e) + + let pos ?(rev = false) k (parse, print) v a = + if is_opt a then invalid_arg err_not_pos else + let a = { a with p_kind = Nth (rev, k); + absent = Val (Lazy.from_val (str_of_pp print v)) } + in + let convert _ cl = match Cmdline.pos_arg cl a with + | [] -> v + | [v] -> parse_pos_value parse a v + | _ -> assert false + in + [a], convert + + let pos_list kind (parse, _) v a = + if is_opt a then invalid_arg err_not_pos else + let a = { a with p_kind = kind } in + let convert _ cl = match Cmdline.pos_arg cl a with + | [] -> v + | l -> List.rev (List.rev_map (parse_pos_value parse a) l) + in + [a], convert + + let pos_all c v a = pos_list All c v a + let pos_left ?(rev = false) k = pos_list (Left (rev, k)) + let pos_right ?(rev = false) k = pos_list (Right (rev, k)) + + (* Arguments as terms *) + + let absent_error al = List.rev_map (fun a -> { a with absent = Error }) al + let value a = a + let required (al, convert) = + let al = absent_error al in + let convert ei cl = match convert ei cl with + | Some v -> v + | None -> parse_error (Err.arg_missing (List.hd al)) + in + al, convert + + let non_empty (al, convert) = + let al = absent_error al in + let convert ei cl = match convert ei cl with + | [] -> parse_error (Err.arg_missing (List.hd al)) + | l -> l + in + al, convert + + let last (al, convert) = + let convert ei cl = match convert ei cl with + | [] -> parse_error (Err.arg_missing (List.hd al)) + | l -> List.hd (List.rev l) + in + al, convert + + (* Predefined converters. *) + + let bool = + (fun s -> try `Ok (bool_of_string s) with Invalid_argument _ -> + `Error (Err.invalid_val s (alts_str ["true"; "false"]))), + Format.pp_print_bool + + let char = + (fun s -> if String.length s = 1 then `Ok s.[0] else + `Error (Err.invalid_val s "expected a character")), + pr_char + + let parse_with t_of_str exp s = + try `Ok (t_of_str s) with Failure _ -> `Error (Err.invalid_val s exp) + + let int = + parse_with int_of_string "expected an integer", Format.pp_print_int + + let int32 = + parse_with Int32.of_string "expected a 32-bit integer", + (fun ppf -> pr ppf "%ld") + + let int64 = + parse_with Int64.of_string "expected a 64-bit integer", + (fun ppf -> pr ppf "%Ld") + + let nativeint = + parse_with Nativeint.of_string "expected a processor-native integer", + (fun ppf -> pr ppf "%nd") + + let float = + parse_with float_of_string "expected a floating point number", + Format.pp_print_float + + let string = (fun s -> `Ok s), pr_str + let enum sl = + if sl = [] then invalid_arg err_empty_list else + let sl_inv = List.rev_map (fun (s,v) -> (v,s)) sl in + let print ppf v = pr_str ppf (List.assoc v sl_inv) in + let t = Trie.of_list sl in + let parse s = match Trie.find t s with + | `Ok _ as r -> r + | `Ambiguous -> + let ambs = List.sort compare (Trie.ambiguities t s) in + `Error (Err.ambiguous "enum value" s ambs) + | `Not_found -> + let alts = List.rev (List.rev_map (fun (s, _) -> s) sl) in + `Error (Err.invalid_val s ("expected " ^ (alts_str alts))) + in + parse, print + + let file = + (fun s -> if Sys.file_exists s then `Ok s else + `Error (Err.no "file or directory" s)), + pr_str + + let dir = + (fun s -> + if Sys.file_exists s then + if Sys.is_directory s then `Ok s else `Error (Err.not_dir s) + else + `Error (Err.no "directory" s)), + pr_str + + let non_dir_file = + (fun s -> + if Sys.file_exists s then + if not (Sys.is_directory s) then `Ok s else `Error (Err.is_dir s) + else + `Error (Err.no "file" s)), + pr_str + + let split_and_parse sep parse s = + let parse sub = match parse sub with + | `Error e -> failwith e | `Ok v -> v in + let rec split accum j = + let i = try String.rindex_from s j sep with Not_found -> -1 in + if (i = -1) then + let p = String.sub s 0 (j + 1) in + if p <> "" then parse p :: accum else accum + else + let p = String.sub s (i + 1) (j - i) in + let accum' = if p <> "" then parse p :: accum else accum in + split accum' (i - 1) + in + split [] (String.length s - 1) + + let list ?(sep = ',') (parse, pr_e) = + let parse s = try `Ok (split_and_parse sep parse s) with + | Failure e -> `Error (Err.element "list" s e) + in + let rec print ppf = function + | v :: l -> pr_e ppf v; if (l <> []) then (pr_char ppf sep; print ppf l) + | [] -> () + in + parse, print + + let array ?(sep = ',') (parse, pr_e) = + let parse s = try `Ok (Array.of_list (split_and_parse sep parse s)) with + | Failure e -> `Error (Err.element "array" s e) + in + let print ppf v = + let max = Array.length v - 1 in + for i = 0 to max do pr_e ppf v.(i); if i <> max then pr_char ppf sep done + in + parse, print + + let split_left sep s = + try + let i = String.index s sep in + let len = String.length s in + Some ((String.sub s 0 i), (String.sub s (i + 1) (len - i - 1))) + with Not_found -> None + + let pair ?(sep = ',') (pa0, pr0) (pa1, pr1) = + let parser s = match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v0, v1) -> + match pa0 v0, pa1 v1 with + | `Ok v0, `Ok v1 -> `Ok (v0, v1) + | `Error e, _ | _, `Error e -> `Error (Err.element "pair" s e) + in + let printer ppf (v0, v1) = pr ppf "%a%c%a" pr0 v0 sep pr1 v1 in + parser, printer + + let t2 = pair + let t3 ?(sep = ',') (pa0, pr0) (pa1, pr1) (pa2, pr2) = + let parse s = match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v0, s) -> + match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v1, v2) -> + match pa0 v0, pa1 v1, pa2 v2 with + | `Ok v0, `Ok v1, `Ok v2 -> `Ok (v0, v1, v2) + | `Error e, _, _ | _, `Error e, _ | _, _, `Error e -> + `Error (Err.element "triple" s e) + in + let print ppf (v0, v1, v2) = + pr ppf "%a%c%a%c%a" pr0 v0 sep pr1 v1 sep pr2 v2 + in + parse, print + + let t4 ?(sep = ',') (pa0, pr0) (pa1, pr1) (pa2, pr2) (pa3, pr3) = + let parse s = match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some(v0, s) -> + match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v1, s) -> + match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v2, v3) -> + match pa0 v0, pa1 v1, pa2 v2, pa3 v3 with + | `Ok v1, `Ok v2, `Ok v3, `Ok v4 -> `Ok (v1, v2, v3, v4) + | `Error e, _, _, _ | _, `Error e, _, _ | _, _, `Error e, _ + | _, _, _, `Error e -> `Error (Err.element "quadruple" s e) + in + let print ppf (v0, v1, v2, v3) = + pr ppf "%a%c%a%c%a%c%a" pr0 v0 sep pr1 v1 sep pr2 v2 sep pr3 v3 + in + parse, print + + (* Documentation formatting helpers *) + + let doc_quote = quote + let doc_alts = alts_str + let doc_alts_enum ?quoted enum = alts_str ?quoted (List.map fst enum) +end + +module Term = struct + type info = term_info + type +'a t = arg_info list * (eval_info -> cmdline -> 'a) + type 'a result = [ + | `Ok of 'a | `Error of [`Parse | `Term | `Exn ] | `Version | `Help ] + + exception Term of + [ `Help of [`Pager | `Plain | `Groff] * string option + | `Error of bool * string ] + + let info ?(sdocs = "OPTIONS") ?(man = []) ?(docs = "COMMANDS") ?(doc = "") + ?version name = + { name = name; version = version; tdoc = doc; tdocs = docs; sdocs = sdocs; + man = man } + + let name ti = ti.name + let pure v = [], (fun _ _ -> v) + let app (al, f) (al', v) = + List.rev_append al al', + fun ei cl -> (f ei cl) (v ei cl) + + let ( $ ) = app + + type 'a ret = + [ `Help of [`Pager | `Plain | `Groff] * string option + | `Error of (bool * string) + | `Ok of 'a ] + + let ret (al, v) = + al, fun ei cl -> match v ei cl with + | `Ok v -> v + | `Error (u,e) -> raise (Term (`Error (u,e))) + | `Help h -> raise (Term (`Help h)) + + let main_name = [], (fun ei _ -> (fst ei.main).name) + let choice_names = + [], fun ei _ -> List.rev_map (fun e -> (fst e).name) ei.choices + + let man_format = + let fmts = ["pager", `Pager; "groff", `Groff; "plain", `Plain] in + let doc = "Show output in format $(docv) (pager, plain or groff)."in + Arg.(value & opt (enum fmts) `Pager & info ["man-format"] ~docv:"FMT" ~doc) + + (* Evaluation *) + + let remove_exec argv = + try List.tl (Array.to_list argv) with Failure _ -> invalid_arg err_argv + + let add_std_opts ei = + let docs = (fst ei.term).sdocs in + let args, v_lookup = + if (fst ei.main).version = None then [], None else + let (a, lookup) = + Arg.flag (Arg.info ["version"] ~docs ~doc:"Show version information.") + in + a, Some lookup + in + let args, h_lookup = + let (a, lookup) = + let fmt = Arg.enum ["pager",`Pager; "groff",`Groff; "plain",`Plain] in + let doc = "Show this help in format $(docv) (pager, plain or groff)."in + let a = Arg.info ["help"] ~docv:"FMT" ~docs ~doc in + Arg.opt ~vopt:(Some `Pager) (Arg.some fmt) None a + in + List.rev_append a args, lookup + in + h_lookup, v_lookup, + { ei with term = (fst ei.term), List.rev_append args (snd ei.term) } + + let eval_term help err ei f args = + let help_arg, vers_arg, ei = add_std_opts ei in + try + let cl = Cmdline.create (snd ei.term) args in + match help_arg ei cl, vers_arg with + | Some fmt, _ -> Help.print fmt help ei; `Help + | None, Some v_arg when v_arg ei cl -> Help.pr_version help ei; `Version + | _ -> `Ok (f ei cl) + with + | Cmdline.Error e -> Err.pr_usage err ei e; `Error `Parse + | Term (`Error (usage, e)) -> + if usage then Err.pr_usage err ei e else Err.print err ei e; + `Error `Term + | Term (`Help (fmt, cmd)) -> + let ei = match cmd with + | Some cmd -> + let cmd = + try List.find (fun (i, _) -> i.name = cmd) ei.choices + with Not_found -> invalid_arg (err_help cmd) + in + {ei with term = cmd } + | None -> { ei with term = ei.main } + in + let _, _, ei = add_std_opts ei in + Help.print fmt help ei; `Help + + let eval ?(help = Format.std_formatter) ?(err = Format.err_formatter) + ?(catch = true) ?(argv = Sys.argv) ((al, f), ti) = + let term = ti, al in + let ei = { term = term; main = term; choices = [] } in + try eval_term help err ei f (remove_exec argv) with + | e when catch -> + Err.pr_backtrace err ei e (Printexc.get_backtrace ()); `Error `Exn + + let eval_choice ?(help = Format.std_formatter) ?(err = Format.err_formatter) + ?(catch = true) ?(argv = Sys.argv) (((al, f) as t), ti) choices = + let ei_choices = List.rev_map (fun ((al, _), ti) -> ti, al) choices in + let main = (ti, al) in + let ei = { term = main; main = main; choices = ei_choices } in + try + let chosen, args = Cmdline.choose_term ti ei_choices (remove_exec argv) in + let find_chosen (_, ti) = ti = chosen in + let (al, f), _ = List.find find_chosen ((t, ti) :: choices) in + let ei = { ei with term = (chosen, al) } in + eval_term help err ei f args + with + | Cmdline.Error e -> (* may be raised by choose_term. *) + Err.pr_usage err ei e; `Error `Parse + | e when catch -> + Err.pr_backtrace err ei e (Printexc.get_backtrace ()); `Error `Exn + + let eval_peek_opts ?(version_opt = false) ?(argv = Sys.argv) (al, f) = + let args = remove_exec argv in + let version = if version_opt then Some "dummy" else None in + let term = info ?version "dummy", al in + let ei = { term = term; main = term; choices = [] } in + let help_arg, vers_arg, ei = add_std_opts ei in + try + let cl = Cmdline.create ~peek_opts:true (snd ei.term) args in + match help_arg ei cl, vers_arg with + | Some fmt, _ -> + (try (Some (f ei cl), `Help) with e -> None, `Help) + | None, Some v_arg when v_arg ei cl -> + (try (Some (f ei cl), `Version) with e -> None, `Version) + | _ -> + let v = f ei cl in + Some v, `Ok v + with + | Cmdline.Error _ -> None, (`Error `Parse) + | Term _ -> None, (`Error `Term) + | e -> None, (`Error `Exn) +end + +(*--------------------------------------------------------------------------- + Copyright (c) 2011 Daniel C. Bünzli + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. Neither the name of Daniel C. Bünzli nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*) diff --git a/samples/OCaml/common.ml b/samples/OCaml/common.ml new file mode 100644 index 00000000..8f3a9260 --- /dev/null +++ b/samples/OCaml/common.ml @@ -0,0 +1,14 @@ +(* + * Copyright (c) 2013 Jeremy Yallop. + * + * This file is distributed under the terms of the MIT License. + * See the file LICENSE for details. + *) + +let string_of format v = + let buf = Buffer.create 100 in + let fmt = Format.formatter_of_buffer buf in begin + format fmt v; + Format.pp_print_flush fmt (); + Buffer.contents buf + end diff --git a/samples/OCaml/date.ml b/samples/OCaml/date.ml new file mode 100644 index 00000000..70f46d3c --- /dev/null +++ b/samples/OCaml/date.ml @@ -0,0 +1,40 @@ +(* + * Copyright (c) 2013 Jeremy Yallop. + * + * This file is distributed under the terms of the MIT License. + * See the file LICENSE for details. + *) + +open Ctypes +open PosixTypes +open Foreign + +type tm +let tm = structure "tm" +let (-:) ty label = field tm label ty +let tm_sec = int -: "tm_sec" (* seconds *) +let tm_min = int -: "tm_min" (* minutes *) +let tm_hour = int -: "tm_hour" (* hours *) +let tm_mday = int -: "tm_mday" (* day of the month *) +let tm_mon = int -: "tm_mon" (* month *) +let tm_year = int -: "tm_year" (* year *) +let tm_wday = int -: "tm_wday" (* day of the week *) +let tm_yday = int -: "tm_yday" (* day in the year *) +let tm_isdst = int -: "tm_isdst" (* daylight saving time *) +let () = seal (tm : tm structure typ) + +let time = foreign "time" ~check_errno:true (ptr time_t @-> returning time_t) + +let asctime = foreign "asctime" (ptr tm @-> returning string) + +let localtime = foreign "localtime" (ptr time_t @-> returning (ptr tm)) + +let () = begin + let timep = allocate_n ~count:1 time_t in + let time = time timep in + assert (time = !@timep); + let tm = localtime timep in + Printf.printf "tm.tm_mon = %d\n" (getf !@tm tm_mon); + Printf.printf "tm.tm_year = %d\n" (getf !@tm tm_year); + print_endline (asctime tm) +end diff --git a/samples/OCaml/map.ml b/samples/OCaml/map.ml new file mode 100644 index 00000000..7d65bc6b --- /dev/null +++ b/samples/OCaml/map.ml @@ -0,0 +1,337 @@ +(***********************************************************************) +(* *) +(* OCaml *) +(* *) +(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 1996 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the GNU Library General Public License, with *) +(* the special exception on linking described in file ../LICENSE. *) +(* *) +(***********************************************************************) + +module type OrderedType = + sig + type t + val compare: t -> t -> int + end + +module type S = + sig + type key + type +'a t + val empty: 'a t + val is_empty: 'a t -> bool + val mem: key -> 'a t -> bool + val add: key -> 'a -> 'a t -> 'a t + val singleton: key -> 'a -> 'a t + val remove: key -> 'a t -> 'a t + val merge: + (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t + val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int + val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool + val iter: (key -> 'a -> unit) -> 'a t -> unit + val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val for_all: (key -> 'a -> bool) -> 'a t -> bool + val exists: (key -> 'a -> bool) -> 'a t -> bool + val filter: (key -> 'a -> bool) -> 'a t -> 'a t + val partition: (key -> 'a -> bool) -> 'a t -> 'a t * 'a t + val cardinal: 'a t -> int + val bindings: 'a t -> (key * 'a) list + val min_binding: 'a t -> (key * 'a) + val max_binding: 'a t -> (key * 'a) + val choose: 'a t -> (key * 'a) + val split: key -> 'a t -> 'a t * 'a option * 'a t + val find: key -> 'a t -> 'a + val map: ('a -> 'b) -> 'a t -> 'b t + val mapi: (key -> 'a -> 'b) -> 'a t -> 'b t + end + +module Make(Ord: OrderedType) = struct + + type key = Ord.t + + type 'a t = + Empty + | Node of 'a t * key * 'a * 'a t * int + + let height = function + Empty -> 0 + | Node(_,_,_,_,h) -> h + + let create l x d r = + let hl = height l and hr = height r in + Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1)) + + let singleton x d = Node(Empty, x, d, Empty, 1) + + let bal l x d r = + let hl = match l with Empty -> 0 | Node(_,_,_,_,h) -> h in + let hr = match r with Empty -> 0 | Node(_,_,_,_,h) -> h in + if hl > hr + 2 then begin + match l with + Empty -> invalid_arg "Map.bal" + | Node(ll, lv, ld, lr, _) -> + if height ll >= height lr then + create ll lv ld (create lr x d r) + else begin + match lr with + Empty -> invalid_arg "Map.bal" + | Node(lrl, lrv, lrd, lrr, _)-> + create (create ll lv ld lrl) lrv lrd (create lrr x d r) + end + end else if hr > hl + 2 then begin + match r with + Empty -> invalid_arg "Map.bal" + | Node(rl, rv, rd, rr, _) -> + if height rr >= height rl then + create (create l x d rl) rv rd rr + else begin + match rl with + Empty -> invalid_arg "Map.bal" + | Node(rll, rlv, rld, rlr, _) -> + create (create l x d rll) rlv rld (create rlr rv rd rr) + end + end else + Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1)) + + let empty = Empty + + let is_empty = function Empty -> true | _ -> false + + let rec add x data = function + Empty -> + Node(Empty, x, data, Empty, 1) + | Node(l, v, d, r, h) -> + let c = Ord.compare x v in + if c = 0 then + Node(l, x, data, r, h) + else if c < 0 then + bal (add x data l) v d r + else + bal l v d (add x data r) + + let rec find x = function + Empty -> + raise Not_found + | Node(l, v, d, r, _) -> + let c = Ord.compare x v in + if c = 0 then d + else find x (if c < 0 then l else r) + + let rec mem x = function + Empty -> + false + | Node(l, v, d, r, _) -> + let c = Ord.compare x v in + c = 0 || mem x (if c < 0 then l else r) + + let rec min_binding = function + Empty -> raise Not_found + | Node(Empty, x, d, r, _) -> (x, d) + | Node(l, x, d, r, _) -> min_binding l + + let rec max_binding = function + Empty -> raise Not_found + | Node(l, x, d, Empty, _) -> (x, d) + | Node(l, x, d, r, _) -> max_binding r + + let rec remove_min_binding = function + Empty -> invalid_arg "Map.remove_min_elt" + | Node(Empty, x, d, r, _) -> r + | Node(l, x, d, r, _) -> bal (remove_min_binding l) x d r + + let merge t1 t2 = + match (t1, t2) with + (Empty, t) -> t + | (t, Empty) -> t + | (_, _) -> + let (x, d) = min_binding t2 in + bal t1 x d (remove_min_binding t2) + + let rec remove x = function + Empty -> + Empty + | Node(l, v, d, r, h) -> + let c = Ord.compare x v in + if c = 0 then + merge l r + else if c < 0 then + bal (remove x l) v d r + else + bal l v d (remove x r) + + let rec iter f = function + Empty -> () + | Node(l, v, d, r, _) -> + iter f l; f v d; iter f r + + let rec map f = function + Empty -> + Empty + | Node(l, v, d, r, h) -> + let l' = map f l in + let d' = f d in + let r' = map f r in + Node(l', v, d', r', h) + + let rec mapi f = function + Empty -> + Empty + | Node(l, v, d, r, h) -> + let l' = mapi f l in + let d' = f v d in + let r' = mapi f r in + Node(l', v, d', r', h) + + let rec fold f m accu = + match m with + Empty -> accu + | Node(l, v, d, r, _) -> + fold f r (f v d (fold f l accu)) + + let rec for_all p = function + Empty -> true + | Node(l, v, d, r, _) -> p v d && for_all p l && for_all p r + + let rec exists p = function + Empty -> false + | Node(l, v, d, r, _) -> p v d || exists p l || exists p r + + (* Beware: those two functions assume that the added k is *strictly* + smaller (or bigger) than all the present keys in the tree; it + does not test for equality with the current min (or max) key. + + Indeed, they are only used during the "join" operation which + respects this precondition. + *) + + let rec add_min_binding k v = function + | Empty -> singleton k v + | Node (l, x, d, r, h) -> + bal (add_min_binding k v l) x d r + + let rec add_max_binding k v = function + | Empty -> singleton k v + | Node (l, x, d, r, h) -> + bal l x d (add_max_binding k v r) + + (* Same as create and bal, but no assumptions are made on the + relative heights of l and r. *) + + let rec join l v d r = + match (l, r) with + (Empty, _) -> add_min_binding v d r + | (_, Empty) -> add_max_binding v d l + | (Node(ll, lv, ld, lr, lh), Node(rl, rv, rd, rr, rh)) -> + if lh > rh + 2 then bal ll lv ld (join lr v d r) else + if rh > lh + 2 then bal (join l v d rl) rv rd rr else + create l v d r + + (* Merge two trees l and r into one. + All elements of l must precede the elements of r. + No assumption on the heights of l and r. *) + + let concat t1 t2 = + match (t1, t2) with + (Empty, t) -> t + | (t, Empty) -> t + | (_, _) -> + let (x, d) = min_binding t2 in + join t1 x d (remove_min_binding t2) + + let concat_or_join t1 v d t2 = + match d with + | Some d -> join t1 v d t2 + | None -> concat t1 t2 + + let rec split x = function + Empty -> + (Empty, None, Empty) + | Node(l, v, d, r, _) -> + let c = Ord.compare x v in + if c = 0 then (l, Some d, r) + else if c < 0 then + let (ll, pres, rl) = split x l in (ll, pres, join rl v d r) + else + let (lr, pres, rr) = split x r in (join l v d lr, pres, rr) + + let rec merge f s1 s2 = + match (s1, s2) with + (Empty, Empty) -> Empty + | (Node (l1, v1, d1, r1, h1), _) when h1 >= height s2 -> + let (l2, d2, r2) = split v1 s2 in + concat_or_join (merge f l1 l2) v1 (f v1 (Some d1) d2) (merge f r1 r2) + | (_, Node (l2, v2, d2, r2, h2)) -> + let (l1, d1, r1) = split v2 s1 in + concat_or_join (merge f l1 l2) v2 (f v2 d1 (Some d2)) (merge f r1 r2) + | _ -> + assert false + + let rec filter p = function + Empty -> Empty + | Node(l, v, d, r, _) -> + (* call [p] in the expected left-to-right order *) + let l' = filter p l in + let pvd = p v d in + let r' = filter p r in + if pvd then join l' v d r' else concat l' r' + + let rec partition p = function + Empty -> (Empty, Empty) + | Node(l, v, d, r, _) -> + (* call [p] in the expected left-to-right order *) + let (lt, lf) = partition p l in + let pvd = p v d in + let (rt, rf) = partition p r in + if pvd + then (join lt v d rt, concat lf rf) + else (concat lt rt, join lf v d rf) + + type 'a enumeration = End | More of key * 'a * 'a t * 'a enumeration + + let rec cons_enum m e = + match m with + Empty -> e + | Node(l, v, d, r, _) -> cons_enum l (More(v, d, r, e)) + + let compare cmp m1 m2 = + let rec compare_aux e1 e2 = + match (e1, e2) with + (End, End) -> 0 + | (End, _) -> -1 + | (_, End) -> 1 + | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) -> + let c = Ord.compare v1 v2 in + if c <> 0 then c else + let c = cmp d1 d2 in + if c <> 0 then c else + compare_aux (cons_enum r1 e1) (cons_enum r2 e2) + in compare_aux (cons_enum m1 End) (cons_enum m2 End) + + let equal cmp m1 m2 = + let rec equal_aux e1 e2 = + match (e1, e2) with + (End, End) -> true + | (End, _) -> false + | (_, End) -> false + | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) -> + Ord.compare v1 v2 = 0 && cmp d1 d2 && + equal_aux (cons_enum r1 e1) (cons_enum r2 e2) + in equal_aux (cons_enum m1 End) (cons_enum m2 End) + + let rec cardinal = function + Empty -> 0 + | Node(l, _, _, r, _) -> cardinal l + 1 + cardinal r + + let rec bindings_aux accu = function + Empty -> accu + | Node(l, v, d, r, _) -> bindings_aux ((v, d) :: bindings_aux accu r) l + + let bindings s = + bindings_aux [] s + + let choose = min_binding + +end diff --git a/samples/OCaml/mirage.ml b/samples/OCaml/mirage.ml new file mode 100644 index 00000000..4878abed --- /dev/null +++ b/samples/OCaml/mirage.ml @@ -0,0 +1,2503 @@ +(* + * Copyright (c) 2013 Thomas Gazagnaire + * Copyright (c) 2013 Anil Madhavapeddy + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + *) + +open Mirage_misc + +module StringSet = struct + + include Set.Make(String) + + let of_list l = + let s = ref empty in + List.iter (fun e -> s := add e !s) l; + !s + +end + +let main_ml = ref None + +let append_main fmt = + match !main_ml with + | None -> failwith "main_ml" + | Some oc -> append oc fmt + +let newline_main () = + match !main_ml with + | None -> failwith "main_ml" + | Some oc -> newline oc + +let set_main_ml file = + let oc = open_out file in + main_ml := Some oc + +type mode = [ + | `Unix + | `Xen + | `MacOSX +] + +let string_of_mode = + function + | `Unix -> "Unix" + | `Xen -> "Xen" + | `MacOSX -> "MacOS X" + +let mode : mode ref = ref `Unix + +let set_mode m = + mode := m + +let get_mode () = + !mode + +type _ typ = + | Type: 'a -> 'a typ + | Function: 'a typ * 'b typ -> ('a -> 'b) typ + +let (@->) f t = + Function (f, t) + +module type CONFIGURABLE = sig + type t + val name: t -> string + val module_name: t -> string + val packages: t -> string list + val libraries: t -> string list + val configure: t -> unit + val clean: t -> unit + val update_path: t -> string -> t +end + + +module TODO (N: sig val name: string end) = struct + + let todo str = + failwith (Printf.sprintf "TODO: %s.%s" N.name str) + + let name _ = + todo "name" + + let module_name _ = + todo "module_name" + + let packages _ = + todo "packages" + + let libraries _ = + todo "libraries" + + let configure _ = + todo "configure" + + let clean _ = + todo "clean" + + let update_path _ = + todo "update_path" + +end + +type ('a, 'b) base = { + typ: 'a typ; + t: 'b; + m: (module CONFIGURABLE with type t = 'b); +} + +type 'a foreign = { + name: string; + ty: 'a typ; + libraries: string list; + packages: string list; +} + +type _ impl = + | Impl: ('a, 'b) base -> 'a impl (* base implementation *) + | App: ('a, 'b) app -> 'b impl (* functor application *) + | Foreign: 'a foreign -> 'a impl (* foreign functor implementation *) + +and ('a, 'b) app = { + f: ('a -> 'b) impl; (* functor *) + x: 'a impl; (* parameter *) +} + +let rec string_of_impl: type a. a impl -> string = function + | Impl { t; m = (module M) } -> Printf.sprintf "Impl (%s)" (M.module_name t) + | Foreign { name } -> Printf.sprintf "Foreign (%s)" name + | App { f; x } -> Printf.sprintf "App (%s, %s)" (string_of_impl f) (string_of_impl x) + +type 'a folder = { + fn: 'b. 'a -> 'b impl -> 'a +} + +let rec fold: type a. 'b folder -> a impl -> 'b -> 'b = + fun fn t acc -> + match t with + | Impl _ + | Foreign _ -> fn.fn acc t + | App {f; x} -> fold fn f (fn.fn acc x) + +type iterator = { + i: 'b. 'b impl -> unit +} + +let rec iter: type a. iterator -> a impl -> unit = + fun fn t -> + match t with + | Impl _ + | Foreign _ -> fn.i t + | App {f; x} -> iter fn f; iter fn x; fn.i x + +let driver_initialisation_error name = + Printf.sprintf "fail (Failure %S)" name + +module Name = struct + + let ids = Hashtbl.create 1024 + + let names = Hashtbl.create 1024 + + let create name = + let n = + try 1 + Hashtbl.find ids name + with Not_found -> 1 in + Hashtbl.replace ids name n; + Printf.sprintf "%s%d" name n + + let of_key key ~base = + find_or_create names key (fun () -> create base) + +end + +module Impl = struct + + (* get the left-most module name (ie. the name of the functor). *) + let rec functor_name: type a. a impl -> string = function + | Impl { t; m = (module M) } -> M.module_name t + | Foreign { name } -> name + | App { f } -> functor_name f + + (* return a unique variable name holding the state of the given + module construction. *) + let rec name: type a. a impl -> string = function + | Impl { t; m = (module M) } -> M.name t + | Foreign { name } -> Name.of_key ("f" ^ name) ~base:"f" + | App _ as t -> Name.of_key (module_name t) ~base:"t" + + (* return a unique module name holding the implementation of the + given module construction. *) + and module_name: type a. a impl -> string = function + | Impl { t; m = (module M) } -> M.module_name t + | Foreign { name } -> name + | App { f; x } -> + let name = match module_names f @ [module_name x] with + | [] -> assert false + | [m] -> m + | h::t -> h ^ String.concat "" (List.map (Printf.sprintf "(%s)") t) + in + Name.of_key name ~base:"M" + + and module_names: type a. a impl -> string list = + function t -> + let fn = { + fn = fun acc t -> module_name t :: acc + } in + fold fn t [] + + let rec names: type a. a impl -> string list = function + | Foreign _ -> [] + | Impl _ as t -> [name t] + | App {f=Foreign f; x} -> names x + | App {f; x} -> (names f) @ [name x] + + let configured = Hashtbl.create 31 + + let rec configure: type a. a impl -> unit = + fun t -> + let name = name t in + if not (Hashtbl.mem configured name) then ( + Hashtbl.add configured name true; + match t with + | Impl { t; m = (module M) } -> M.configure t + | Foreign _ -> () + | App {f; x} as app -> + configure_app f; + configure_app x; + iter { i=configure } app; + let name = module_name app in + let body = cofind Name.names name in + append_main "module %s = %s" name body; + newline_main (); + ) + + and configure_app: type a. a impl -> unit = function + | Impl _ + | Foreign _ -> () + | App _ as t -> + let name = name t in + configure t; + begin match names t with + | [n] -> append_main "let %s = %s" name n + | names -> + append_main "let %s () =" name; + List.iter (fun n -> + append_main " %s () >>= function" n; + append_main " | `Error e -> %s" (driver_initialisation_error n); + append_main " | `Ok %s ->" n; + ) names; + append_main " return (`Ok (%s))" (String.concat ", " names) + end; + newline_main () + + let rec packages: type a. a impl -> string list = function + | Impl { t; m = (module M) } -> M.packages t + | Foreign { packages } -> packages + | App {f; x} -> packages f @ packages x + + let rec libraries: type a. a impl -> string list = function + | Impl { t; m = (module M) } -> M.libraries t + | Foreign { libraries } -> libraries + | App {f; x} -> libraries f @ libraries x + + let rec clean: type a. a impl -> unit = function + | Impl { t; m = (module M) } -> M.clean t + | Foreign _ -> () + | App {f; x} -> clean f; clean x + + let rec update_path: type a. a impl -> string -> a impl = + fun t root -> match t with + | Impl b -> + let module M = (val b.m) in Impl { b with t = M.update_path b.t root } + | Foreign _ -> t + | App {f; x} -> App { f = update_path f root; x = update_path x root } + +end + +let impl typ t m = + Impl { typ; t; m } + +let implementation typ t m = + let typ = Type typ in + Impl { typ; t; m } + +let ($) f x = + App { f; x } + +let foreign name ?(libraries=[]) ?(packages=[]) ty = + Foreign { name; ty; libraries; packages } + +let rec typ: type a. a impl -> a typ = function + | Impl { typ } -> typ + | Foreign { ty } -> ty + | App { f } -> match typ f with Function (_, b) -> b | _ -> assert false + + +module Io_page = struct + + (** Memory allocation interface. *) + + type t = unit + + let name () = + "io_page" + + let module_name () = + "Io_page" + + let packages () = [ + "io-page" + ] + + let libraries () = + match !mode with + | `Xen -> ["io-page"] + | `Unix | `MacOSX -> ["io-page"; "io-page.unix"] + + let configure () = () + + let clean () = () + + let update_path () _ = () + +end + +type io_page = IO_PAGE + +let io_page = Type IO_PAGE + +let default_io_page: io_page impl = + impl io_page () (module Io_page) + +module Time = struct + + (** OS Timer. *) + + type t = unit + + let name () = + "time" + + let module_name () = + "OS.Time" + + let packages () = [] + + let libraries () = [] + + let configure () = () + + let clean () = () + + let update_path () _ = () + +end + +type time = TIME + +let time = Type TIME + +let default_time: time impl = + impl time () (module Time) + +module Clock = struct + + (** Clock operations. *) + + type t = unit + + let name () = + "clock" + + let module_name () = + "Clock" + + let packages () = [ + match !mode with + | `Unix | `MacOSX -> "mirage-clock-unix" + | `Xen -> "mirage-clock-xen" + ] + + let libraries () = packages () + + let configure () = + append_main "let clock () = return (`Ok ())"; + newline_main () + + let clean () = () + + let update_path () _ = () + +end + +type clock = CLOCK + +let clock = Type CLOCK + +let default_clock: clock impl = + impl clock () (module Clock) + +module Random = struct + + type t = unit + + let name () = + "random" + + let module_name () = + "Random" + + let packages () = [] + + let libraries () = [] + + let configure () = + append_main "let random () = return (`Ok ())"; + newline_main () + + let clean () = () + + let update_path () _ = () + +end + +type random = RANDOM + +let random = Type RANDOM + +let default_random: random impl = + impl random () (module Random) + +module Entropy = struct + + type t = unit + + let name _ = + "entropy" + + let module_name () = "Entropy" + + let construction () = + match !mode with + | `Unix | `MacOSX -> "Entropy_unix.Make (OS.Time)" + | `Xen -> "Entropy_xen" + + let packages () = + match !mode with + | `Unix | `MacOSX -> [ "mirage-entropy-unix" ] + | `Xen -> [ "mirage-entropy-xen" ] + + let libraries = packages + + let configure t = + append_main "module %s = %s" (module_name t) (construction t) ; + newline_main () ; + append_main "let %s () =" (name t); + append_main " %s.connect ()" (module_name t); + newline_main () + + let clean () = () + + let update_path t _ = t + +end + +type entropy = ENTROPY + +let entropy = Type ENTROPY + +let default_entropy: entropy impl = + impl entropy () (module Entropy) + +module Console = struct + + type t = string + + let name t = + Name.of_key ("console" ^ t) ~base:"console" + + let module_name t = + "Console" + + let construction () = + match !mode with + | `Unix | `MacOSX -> "Console_unix" + | `Xen -> "Console_xen" + + let packages _ = + match !mode with + | `Unix | `MacOSX -> ["mirage-console"; "mirage-unix"] + | `Xen -> ["mirage-console"; "xenstore"; "mirage-xen"; "xen-gnt"; "xen-evtchn"] + + let libraries _ = + match !mode with + | `Unix | `MacOSX -> ["mirage-console.unix"] + | `Xen -> ["mirage-console.xen"] + + let configure t = + append_main "module %s = %s" (module_name t) (construction ()); + newline_main (); + append_main "let %s () =" (name t); + append_main " %s.connect %S" (module_name t) t; + newline_main () + + let clean _ = + () + + let update_path t _ = + t + +end + +type console = CONSOLE + +let console = Type CONSOLE + +let default_console: console impl = + impl console "0" (module Console) + +let custom_console: string -> console impl = + fun str -> + impl console str (module Console) + +module Crunch = struct + + type t = string + + let name t = + Name.of_key ("static" ^ t) ~base:"static" + + let module_name t = + String.capitalize (name t) + + let packages _ = [ + "mirage-types"; + "lwt"; + "cstruct"; + "crunch"; + ] @ Io_page.packages () + + let libraries _ = [ + "mirage-types"; + "lwt"; + "cstruct"; + ] @ Io_page.libraries () + + let ml t = + Printf.sprintf "%s.ml" (name t) + + let mli t = + Printf.sprintf "%s.mli" (name t) + + let configure t = + if not (command_exists "ocaml-crunch") then + error "ocaml-crunch not found, stopping."; + let file = ml t in + if Sys.file_exists t then ( + info "%s %s" (blue_s "Generating:") (Sys.getcwd () / file); + command "ocaml-crunch -o %s %s" file t + ) else + error "The directory %s does not exist." t; + append_main "let %s () =" (name t); + append_main " %s.connect ()" (module_name t); + newline_main () + + let clean t = + remove (ml t); + remove (mli t) + + let update_path t root = + if Sys.file_exists (root / t) then + root / t + else + t + +end + +type kv_ro = KV_RO + +let kv_ro = Type KV_RO + +let crunch dirname = + impl kv_ro dirname (module Crunch) + +module Direct_kv_ro = struct + + include Crunch + + let module_name t = + match !mode with + | `Xen -> Crunch.module_name t + | `Unix | `MacOSX -> "Kvro_fs_unix" + + let packages t = + match !mode with + | `Xen -> Crunch.packages t + | `Unix | `MacOSX -> "mirage-fs-unix" :: Crunch.packages t + + let libraries t = + match !mode with + | `Xen -> Crunch.libraries t + | `Unix | `MacOSX -> "mirage-fs-unix" :: Crunch.libraries t + + let configure t = + match !mode with + | `Xen -> Crunch.configure t + | `Unix | `MacOSX -> + append_main "let %s () =" (name t); + append_main " Kvro_fs_unix.connect %S" t + +end + +let direct_kv_ro dirname = + impl kv_ro dirname (module Direct_kv_ro) + +module Block = struct + + type t = string + + let name t = + Name.of_key ("block" ^ t) ~base:"block" + + let module_name _ = + "Block" + + let packages _ = [ + match !mode with + | `Unix | `MacOSX -> "mirage-block-unix" + | `Xen -> "mirage-block-xen" + ] + + let libraries _ = [ + match !mode with + | `Unix | `MacOSX -> "mirage-block-unix" + | `Xen -> "mirage-block-xen.front" + ] + + let configure t = + append_main "let %s () =" (name t); + append_main " %s.connect %S" (module_name t) t; + newline_main () + + let clean t = + () + + let update_path t root = + if Sys.file_exists (root / t) then + root / t + else + t + +end + +type block = BLOCK + +let block = Type BLOCK + +let block_of_file filename = + impl block filename (module Block) + +module Fat = struct + + type t = { + io_page: io_page impl; + block : block impl; + } + + let name t = + let key = "fat" ^ Impl.name t.io_page ^ Impl.name t.block in + Name.of_key key ~base:"fat" + + let module_name t = + String.capitalize (name t) + + let packages t = + "fat-filesystem" + :: Impl.packages t.io_page + @ Impl.packages t.block + + let libraries t = + "fat-filesystem" + :: Impl.libraries t.io_page + @ Impl.libraries t.block + + let configure t = + Impl.configure t.io_page; + Impl.configure t.block; + append_main "module %s = Fat.Fs.Make(%s)(%s)" + (module_name t) + (Impl.module_name t.block) + (Impl.module_name t.io_page); + newline_main (); + let name = name t in + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.block); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok dev -> %s.connect dev" (module_name t); + newline_main () + + let clean t = + Impl.clean t.block; + Impl.clean t.io_page + + let update_path t root = + { io_page = Impl.update_path t.io_page root; + block = Impl.update_path t.block root; + } + +end + +type fs = FS + +let fs = Type FS + +let fat ?(io_page=default_io_page) block: fs impl = + let t = { Fat.block; io_page } in + impl fs t (module Fat) + +(* This would deserve to be in its own lib. *) +let kv_ro_of_fs x: kv_ro impl = + let dummy_fat = fat (block_of_file "xx") in + let libraries = Impl.libraries dummy_fat in + let packages = Impl.packages dummy_fat in + let fn = foreign "Fat.KV_RO.Make" ~libraries ~packages (fs @-> kv_ro) in + fn $ x + +module Fat_of_files = struct + + type t = { + dir : string option; + regexp: string; + } + + let name t = + Name.of_key + ("fat" ^ (match t.dir with None -> "." | Some d -> d) ^ ":" ^ t.regexp) + ~base:"fat" + + let module_name t = + String.capitalize (name t) + + let block_file t = + name t ^ ".img" + + let block t = + block_of_file (block_file t) + + let packages t = + Impl.packages (fat (block t)) + + let libraries t = + Impl.libraries (fat (block t)) + + let configure t = + let fat = fat (block t) in + Impl.configure fat; + append_main "module %s = %s" (module_name t) (Impl.module_name fat); + append_main "let %s = %s" (name t) (Impl.name fat); + newline_main (); + let file = Printf.sprintf "make-%s-image.sh" (name t) in + let oc = open_out file in + append oc "#!/bin/sh"; + append oc ""; + append oc "echo This uses the 'fat' command-line tool to build a simple FAT"; + append oc "echo filesystem image."; + append oc ""; + append oc "FAT=$(which fat)"; + append oc "if [ ! -x \"${FAT}\" ]; then"; + append oc " echo I couldn\\'t find the 'fat' command-line tool."; + append oc " echo Try running 'opam install fat-filesystem'"; + append oc " exit 1"; + append oc "fi"; + append oc ""; + append oc "IMG=$(pwd)/%s" (block_file t); + append oc "rm -f ${IMG}"; + (match t.dir with None -> () | Some d -> append oc "cd %s/" d); + append oc "SIZE=$(du -s . | cut -f 1)"; + append oc "${FAT} create ${IMG} ${SIZE}KiB"; + append oc "${FAT} add ${IMG} %s" t.regexp; + append oc "echo Created '%s'" (block_file t); + + close_out oc; + Unix.chmod file 0o755; + command "./make-%s-image.sh" (name t) + + let clean t = + command "rm -f make-%s-image.sh %s" (name t) (block_file t); + Impl.clean (block t) + + let update_path t root = + match t.dir with + | None -> t + | Some d -> { t with dir = Some (root / d) } + +end + +let fat_of_files: ?dir:string -> ?regexp:string -> unit -> fs impl = + fun ?dir ?regexp () -> + let regexp = match regexp with + | None -> "*" + | Some r -> r in + impl fs { Fat_of_files.dir; regexp } (module Fat_of_files) + +type network_config = Tap0 | Custom of string + +module Network = struct + + type t = network_config + + let name t = + "net_" ^ match t with + | Tap0 -> "tap0" + | Custom s -> s + + let module_name _ = + "Netif" + + let packages t = + match !mode with + | `Unix -> ["mirage-net-unix"] + | `MacOSX -> ["mirage-net-macosx"] + | `Xen -> ["mirage-net-xen"] + + let libraries t = + packages t + + let configure t = + append_main "let %s () =" (name t); + append_main " %s.connect %S" + (module_name t) + (match t with Tap0 -> "tap0" | Custom s -> s); + newline_main () + + let clean _ = + () + + let update_path t _ = + t + +end + +type network = NETWORK + +let network = Type NETWORK + +let tap0 = + impl network Tap0 (module Network) + +let netif dev = + impl network (Custom dev) (module Network) + +module Ethif = struct + + type t = network impl + + let name t = + Name.of_key ("ethif" ^ Impl.name t) ~base:"ethif" + + let module_name t = + String.capitalize (name t) + + let packages t = + Impl.packages t @ ["tcpip"] + + let libraries t = + Impl.libraries t @ + match !mode with + | `Unix | `MacOSX -> [ "tcpip.ethif-unix" ] + | `Xen -> [ "tcpip.ethif" ] + + let configure t = + let name = name t in + Impl.configure t; + append_main "module %s = Ethif.Make(%s)" (module_name t) (Impl.module_name t); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok eth -> %s.connect eth" (module_name t); + newline_main () + + let clean t = + Impl.clean t + + let update_path t root = + Impl.update_path t root + +end + +type ethernet = ETHERNET + +let ethernet = Type ETHERNET + +let etif network = + impl ethernet network (module Ethif) + +type ('ipaddr, 'prefix) ip_config = { + address: 'ipaddr; + netmask: 'prefix; + gateways: 'ipaddr list; +} + +type ipv4_config = (Ipaddr.V4.t, Ipaddr.V4.t) ip_config + +let meta_ipv4_config t = + Printf.sprintf "(Ipaddr.V4.of_string_exn %S, Ipaddr.V4.of_string_exn %S, [%s])" + (Ipaddr.V4.to_string t.address) + (Ipaddr.V4.to_string t.netmask) + (String.concat "; " + (List.map (Printf.sprintf "Ipaddr.V4.of_string_exn %S") + (List.map Ipaddr.V4.to_string t.gateways))) + +module IPV4 = struct + + type t = { + ethernet: ethernet impl; + config : ipv4_config; + } + (* XXX: should the type if ipv4.id be ipv4.t ? + N.connect ethif |> N.set_ip up *) + + let name t = + let key = "ipv4" ^ Impl.name t.ethernet ^ meta_ipv4_config t.config in + Name.of_key key ~base:"ipv4" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" :: Impl.packages t.ethernet + + let libraries t = + (match !mode with + | `Unix | `MacOSX -> [ "tcpip.ipv4-unix" ] + | `Xen -> [ "tcpip.ipv4" ]) + @ Impl.libraries t.ethernet + + let configure t = + let name = name t in + let mname = module_name t in + Impl.configure t.ethernet; + append_main "module %s = Ipv4.Make(%s)" + (module_name t) (Impl.module_name t.ethernet); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.ethernet); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok eth ->"; + append_main " %s.connect eth >>= function" mname; + append_main " | `Error _ -> %s" (driver_initialisation_error "IPV4"); + append_main " | `Ok ip ->"; + append_main " let i = Ipaddr.V4.of_string_exn in"; + append_main " %s.set_ip ip (i %S) >>= fun () ->" + mname (Ipaddr.V4.to_string t.config.address); + append_main " %s.set_ip_netmask ip (i %S) >>= fun () ->" + mname (Ipaddr.V4.to_string t.config.netmask); + append_main " %s.set_ip_gateways ip [%s] >>= fun () ->" + mname + (String.concat "; " + (List.map + (fun n -> Printf.sprintf "(i %S)" (Ipaddr.V4.to_string n)) + t.config.gateways)); + append_main " return (`Ok ip)"; + newline_main () + + let clean t = + Impl.clean t.ethernet + + let update_path t root = + { t with ethernet = Impl.update_path t.ethernet root } + +end + +type ipv6_config = (Ipaddr.V6.t, Ipaddr.V6.Prefix.t list) ip_config + +let meta_ipv6_config t = + Printf.sprintf "(Ipaddr.V6.of_string_exn %S, [%s], [%s])" + (Ipaddr.V6.to_string t.address) + (String.concat "; " + (List.map (Printf.sprintf "Ipaddr.V6.Prefix.of_string_exn %S") + (List.map Ipaddr.V6.Prefix.to_string t.netmask))) + (String.concat "; " + (List.map (Printf.sprintf "Ipaddr.V6.of_string_exn %S") + (List.map Ipaddr.V6.to_string t.gateways))) + +module IPV6 = struct + + type t = { + time : time impl; + clock : clock impl; + ethernet: ethernet impl; + config : ipv6_config; + } + (* XXX: should the type if ipv4.id be ipv4.t ? + N.connect ethif |> N.set_ip up *) + + let name t = + let key = "ipv6" ^ Impl.name t.time ^ Impl.name t.clock ^ Impl.name t.ethernet ^ meta_ipv6_config t.config in + Name.of_key key ~base:"ipv6" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" :: Impl.packages t.time @ Impl.packages t.clock @ Impl.packages t.ethernet + + let libraries t = + (match !mode with + | `Unix | `MacOSX -> [ "tcpip.ipv6-unix" ] + | `Xen -> [ "tcpip.ipv6" ]) + @ Impl.libraries t.time @ Impl.libraries t.clock @ Impl.libraries t.ethernet + + let configure t = + let name = name t in + let mname = module_name t in + Impl.configure t.ethernet; + append_main "module %s = Ipv6.Make(%s)(%s)(%s)" + (module_name t) (Impl.module_name t.ethernet) (Impl.module_name t.time) (Impl.module_name t.clock); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.ethernet); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok eth ->"; + append_main " %s.connect eth >>= function" mname; + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok ip ->"; + append_main " let i = Ipaddr.V6.of_string_exn in"; + append_main " %s.set_ip ip (i %S) >>= fun () ->" + mname (Ipaddr.V6.to_string t.config.address); + List.iter begin fun netmask -> + append_main " %s.set_ip_netmask ip (i %S) >>= fun () ->" + mname (Ipaddr.V6.Prefix.to_string netmask) + end t.config.netmask; + append_main " %s.set_ip_gateways ip [%s] >>= fun () ->" + mname + (String.concat "; " + (List.map + (fun n -> Printf.sprintf "(i %S)" (Ipaddr.V6.to_string n)) + t.config.gateways)); + append_main " return (`Ok ip)"; + newline_main () + + let clean t = + Impl.clean t.time; + Impl.clean t.clock; + Impl.clean t.ethernet + + let update_path t root = + { t with + time = Impl.update_path t.time root; + clock = Impl.update_path t.clock root; + ethernet = Impl.update_path t.ethernet root } + +end + +type v4 +type v6 + +type 'a ip = IP + +let ip = Type IP + +type ipv4 = v4 ip +type ipv6 = v6 ip + +let ipv4 : ipv4 typ = ip +let ipv6 : ipv6 typ = ip + +let create_ipv4 net config = + let etif = etif net in + let t = { + IPV4.ethernet = etif; + config } in + impl ipv4 t (module IPV4) + +let default_ipv4_conf = + let i = Ipaddr.V4.of_string_exn in + { + address = i "10.0.0.2"; + netmask = i "255.255.255.0"; + gateways = [i "10.0.0.1"]; + } + +let default_ipv4 net = + create_ipv4 net default_ipv4_conf + +let create_ipv6 + ?(time = default_time) + ?(clock = default_clock) + net config = + let etif = etif net in + let t = { + IPV6.ethernet = etif; + time; clock; + config + } in + impl ipv6 t (module IPV6) + +module UDP_direct (V : sig type t end) = struct + + type t = V.t ip impl + + let name t = + Name.of_key ("udp" ^ Impl.name t) ~base:"udp" + + let module_name t = + String.capitalize (name t) + + let packages t = + Impl.packages t @ [ "tcpip" ] + + let libraries t = + Impl.libraries t @ [ "tcpip.udp" ] + + let configure t = + let name = name t in + Impl.configure t; + append_main "module %s = Udp.Make(%s)" (module_name t) (Impl.module_name t); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok ip -> %s.connect ip" (module_name t); + newline_main () + + let clean t = + Impl.clean t + + let update_path t root = + Impl.update_path t root + +end + +module UDPV4_socket = struct + + type t = Ipaddr.V4.t option + + let name _ = "udpv4_socket" + + let module_name _ = "Udpv4_socket" + + let packages t = [ "tcpip" ] + + let libraries t = + match !mode with + | `Unix | `MacOSX -> [ "tcpip.udpv4-socket" ] + | `Xen -> failwith "No socket implementation available for Xen" + + let configure t = + append_main "let %s () =" (name t); + let ip = match t with + | None -> "None" + | Some ip -> + Printf.sprintf "Some (Ipaddr.V4.of_string_exn %s)" (Ipaddr.V4.to_string ip) + in + append_main " %s.connect %S" (module_name t) ip; + newline_main () + + let clean t = + () + + let update_path t root = + t + +end + +type 'a udp = UDP + +type udpv4 = v4 udp +type udpv6 = v6 udp + +let udp = Type UDP +let udpv4 : udpv4 typ = udp +let udpv6 : udpv6 typ = udp + +let direct_udp (type v) (ip : v ip impl) = + impl udp ip (module UDP_direct (struct type t = v end)) + +let socket_udpv4 ip = + impl udpv4 ip (module UDPV4_socket) + +module TCP_direct (V : sig type t end) = struct + + type t = { + clock : clock impl; + time : time impl; + ip : V.t ip impl; + random: random impl; + } + + let name t = + let key = "tcp" + ^ Impl.name t.clock + ^ Impl.name t.time + ^ Impl.name t.ip in + Name.of_key key ~base:"tcp" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" + :: Impl.packages t.clock + @ Impl.packages t.time + @ Impl.packages t.ip + @ Impl.packages t.random + + let libraries t = + "tcpip.tcp" + :: Impl.libraries t.clock + @ Impl.libraries t.time + @ Impl.libraries t.ip + @ Impl.libraries t.random + + let configure t = + let name = name t in + Impl.configure t.clock; + Impl.configure t.time; + Impl.configure t.ip; + Impl.configure t.random; + append_main "module %s = Tcp.Flow.Make(%s)(%s)(%s)(%s)" + (module_name t) + (Impl.module_name t.ip) + (Impl.module_name t.time) + (Impl.module_name t.clock) + (Impl.module_name t.random); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.ip); + append_main " | `Error _ -> %s" (driver_initialisation_error (Impl.name t.ip)); + append_main " | `Ok ip -> %s.connect ip" (module_name t); + newline_main () + + let clean t = + Impl.clean t.clock; + Impl.clean t.time; + Impl.clean t.ip; + Impl.clean t.random + + let update_path t root = + { clock = Impl.update_path t.clock root; + ip = Impl.update_path t.ip root; + time = Impl.update_path t.time root; + random = Impl.update_path t.random root; + } + +end + +module TCPV4_socket = struct + + type t = Ipaddr.V4.t option + + let name _ = "tcpv4_socket" + + let module_name _ = "Tcpv4_socket" + + let packages t = [ "tcpip" ] + + let libraries t = + match !mode with + | `Unix | `MacOSX -> [ "tcpip.tcpv4-socket" ] + | `Xen -> failwith "No socket implementation available for Xen" + + let configure t = + append_main "let %s () =" (name t); + let ip = match t with + | None -> "None" + | Some ip -> + Printf.sprintf "Some (Ipaddr.V4.of_string_exn %s)" (Ipaddr.V4.to_string ip) + in + append_main " %s.connect %S" (module_name t) ip; + newline_main () + + let clean t = + () + + let update_path t root = + t + +end + +type 'a tcp = TCP + +type tcpv4 = v4 tcp +type tcpv6 = v6 tcp + +let tcp = Type TCP +let tcpv4 : tcpv4 typ = tcp +let tcpv6 : tcpv6 typ = tcp + +let direct_tcp (type v) + ?(clock=default_clock) ?(random=default_random) ?(time=default_time) (ip : v ip impl) = + let module TCP_direct = TCP_direct (struct type t = v end) in + let t = { TCP_direct.clock; random; time; ip } in + impl tcp t (module TCP_direct) + +let socket_tcpv4 ip = + impl tcpv4 ip (module TCPV4_socket) + +module STACKV4_direct = struct + + type t = { + clock : clock impl; + time : time impl; + console: console impl; + network: network impl; + random : random impl; + config : [`DHCP | `IPV4 of ipv4_config]; + } + + let name t = + let key = "stackv4" + ^ Impl.name t.clock + ^ Impl.name t.time + ^ Impl.name t.console + ^ Impl.name t.network + ^ Impl.name t.random + ^ match t.config with + | `DHCP -> "dhcp" + | `IPV4 i -> meta_ipv4_config i in + Name.of_key key ~base:"stackv4" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" + :: Impl.packages t.clock + @ Impl.packages t.time + @ Impl.packages t.console + @ Impl.packages t.network + @ Impl.packages t.random + + let libraries t = + "tcpip.stack-direct" + :: "mirage.runtime" + :: Impl.libraries t.clock + @ Impl.libraries t.time + @ Impl.libraries t.console + @ Impl.libraries t.network + @ Impl.libraries t.random + + let configure t = + let name = name t in + Impl.configure t.clock; + Impl.configure t.time; + Impl.configure t.console; + Impl.configure t.network; + Impl.configure t.random; + append_main "module %s = struct" (module_name t); + append_main " module E = Ethif.Make(%s)" (Impl.module_name t.network); + append_main " module I = Ipv4.Make(E)"; + append_main " module U = Udp.Make(I)"; + append_main " module T = Tcp.Flow.Make(I)(%s)(%s)(%s)" + (Impl.module_name t.time) + (Impl.module_name t.clock) + (Impl.module_name t.random); + append_main " module S = Tcpip_stack_direct.Make(%s)(%s)(%s)(%s)(E)(I)(U)(T)" + (Impl.module_name t.console) + (Impl.module_name t.time) + (Impl.module_name t.random) + (Impl.module_name t.network); + append_main " include S"; + append_main "end"; + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.console); + append_main " | `Error _ -> %s" + (driver_initialisation_error (Impl.name t.console)); + append_main " | `Ok console ->"; + append_main " %s () >>= function" (Impl.name t.network); + append_main " | `Error e ->"; + let net_init_error_msg_fn = "Mirage_runtime.string_of_network_init_error" in + append_main " fail (Failure (%s %S e))" + net_init_error_msg_fn (Impl.name t.network); + append_main " | `Ok interface ->"; + append_main " let config = {"; + append_main " V1_LWT.name = %S;" name; + append_main " console; interface;"; + begin match t.config with + | `DHCP -> append_main " mode = `DHCP;" + | `IPV4 i -> append_main " mode = `IPv4 %s;" (meta_ipv4_config i); + end; + append_main " } in"; + append_main " %s.connect config" (module_name t); + newline_main () + + let clean t = + Impl.clean t.clock; + Impl.clean t.time; + Impl.clean t.console; + Impl.clean t.network; + Impl.clean t.random + + let update_path t root = + { t with + clock = Impl.update_path t.clock root; + time = Impl.update_path t.time root; + console = Impl.update_path t.console root; + network = Impl.update_path t.network root; + random = Impl.update_path t.random root; + } + +end + +module STACKV4_socket = struct + + type t = { + console: console impl; + ipv4s : Ipaddr.V4.t list; + } + + let meta_ips ips = + String.concat "; " + (List.map (fun x -> + Printf.sprintf "Ipaddr.V4.of_string_exn %S" (Ipaddr.V4.to_string x) + ) ips) + + let name t = + let key = "stackv4" ^ Impl.name t.console ^ meta_ips t.ipv4s in + Name.of_key key ~base:"stackv4" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" :: Impl.packages t.console + + let libraries t = + "tcpip.stack-socket" :: Impl.libraries t.console + + let configure t = + let name = name t in + Impl.configure t.console; + append_main "module %s = Tcpip_stack_socket.Make(%s)" + (module_name t) (Impl.module_name t.console); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.console); + append_main " | `Error _ -> %s" + (driver_initialisation_error (Impl.name t.console)); + append_main " | `Ok console ->"; + append_main " let config = {"; + append_main " V1_LWT.name = %S;" name; + append_main " console; interface = [%s];" (meta_ips t.ipv4s); + append_main " mode = ();"; + append_main " } in"; + append_main " %s.connect config" (module_name t); + newline_main () + + let clean t = + Impl.clean t.console + + let update_path t root = + { t with console = Impl.update_path t.console root } + +end + +type stackv4 = STACKV4 + +let stackv4 = Type STACKV4 + +let direct_stackv4_with_dhcp + ?(clock=default_clock) + ?(random=default_random) + ?(time=default_time) + console network = + let t = { + STACKV4_direct.console; network; time; clock; random; + config = `DHCP } in + impl stackv4 t (module STACKV4_direct) + +let direct_stackv4_with_default_ipv4 + ?(clock=default_clock) + ?(random=default_random) + ?(time=default_time) + console network = + let t = { + STACKV4_direct.console; network; clock; time; random; + config = `IPV4 default_ipv4_conf; + } in + impl stackv4 t (module STACKV4_direct) + +let direct_stackv4_with_static_ipv4 + ?(clock=default_clock) + ?(random=default_random) + ?(time=default_time) + console network ipv4 = + let t = { + STACKV4_direct.console; network; clock; time; random; + config = `IPV4 ipv4; + } in + impl stackv4 t (module STACKV4_direct) + +let socket_stackv4 console ipv4s = + impl stackv4 { STACKV4_socket.console; ipv4s } (module STACKV4_socket) + +module Channel_over_TCP (V : sig type t end) = struct + + type t = V.t tcp impl + + let name t = + let key = "channel" ^ Impl.name t in + Name.of_key key ~base:"channel" + + let module_name t = + String.capitalize (name t) + + let packages _ = + [ "mirage-tcpip" ] + + let libraries _ = + [ "tcpip.channel" ] + + let configure t = + Impl.configure t; + append_main "module %s = Channel.Make(%s)" (module_name t) (Impl.module_name t); + newline_main (); + append_main "let %s () =" (name t); + append_main " %s () >>= function" (Impl.name t); + append_main " | `Error _ -> %s" (driver_initialisation_error (Impl.name t)); + append_main " | `Ok console ->"; + append_main " let flow = %s.create config in" (module_name t); + append_main " return (`Ok flow)"; + newline_main () + + let clean t = + Impl.clean t + + let update_path t root = + Impl.update_path t root + +end + +type channel = CHANNEL + +let channel = Type CHANNEL + +let channel_over_tcp (type v) (flow : v tcp impl) = + impl channel flow (module Channel_over_TCP (struct type t = v end)) + +module VCHAN_localhost = struct + + type uuid = string + type t = uuid + + let name t = + let key = "in_memory" in + Name.of_key key ~base:"vchan" + + let module_name t = + String.capitalize (name t) + + let packages t = + [ "mirage-conduit" ] + + let libraries t = + [ "conduit.mirage" ] + + let configure t = + append_main "module %s = Conduit_localhost" (module_name t); + newline_main (); + append_main "let %s = %s.register %S" (name t) (module_name t) t; + newline_main () + + let clean t = () + + let update_path t root = t + +end + +module VCHAN_xenstore = struct + + type uuid = string + type t = string + + let name t = + let key = "xen" in + Name.of_key key ~base:"vchan" + + let module_name t = + String.capitalize (name t) + + let packages t = + match !mode with + |`Xen -> [ "vchan"; "mirage-xen"; "xen-evtchn"; "xen-gnt" ] + |`Unix | `MacOSX -> [ "vchan"; "xen-evtchn"; "xen-gnt"] + (* TODO: emit a failure on MacOSX? *) + + let libraries t = + match !mode with + |`Xen -> [ "conduit.mirage-xen" ] + |`Unix | `MacOSX-> [ "vchan" ] + + let configure t = + let m = + match !mode with + |`Xen -> "Conduit_xenstore" + |`Unix | `MacOSX -> "Vchan_lwt_unix.M" + in + append_main "module %s = %s" (module_name t) m; + newline_main (); + append_main "let %s = %s.register %S" (name t) (module_name t) t; + newline_main () + + let clean t = () + + let update_path t root = t + +end + +type vchan = STACK4 + +let vchan = Type STACK4 + +let vchan_localhost ?(uuid="localhost") () = + impl vchan uuid (module VCHAN_localhost) + +let vchan_xen ?(uuid="localhost") () = + impl vchan uuid (module VCHAN_xenstore) + +let vchan_default ?uuid () = + match !mode with + | `Xen -> vchan_xen ?uuid () + | `Unix | `MacOSX -> vchan_localhost ?uuid () + +module Conduit = struct + type t = + [ `Stack of stackv4 impl * vchan impl ] + + let name t = + let key = "conduit" ^ match t with + | `Stack (s,v) -> + Printf.sprintf "%s_%s" (Impl.name s) (Impl.name v) in + Name.of_key key ~base:"conduit" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + module_name_core t + + let packages t = + [ "conduit"; "mirage-types"; "vchan" ] @ + match t with + | `Stack (s,v) -> Impl.packages s @ (Impl.packages v) + + let libraries t = + [ "conduit.mirage" ] @ + match t with + | `Stack (s,v) -> Impl.libraries s @ (Impl.libraries v) + + let configure t = + begin match t with + | `Stack (s,v) -> + Impl.configure s; + Impl.configure v; + append_main "module %s = Conduit_mirage.Make(%s)(%s)" + (module_name_core t) (Impl.module_name s) (Impl.module_name v); + end; + newline_main (); + append_main "let %s () =" (name t); + let (stack_subname, vchan_subname) = match t with + | `Stack (s,v) -> Impl.name s, Impl.name v in + + append_main " %s () >>= function" stack_subname; + append_main " | `Error _ -> %s" (driver_initialisation_error stack_subname); + append_main " | `Ok %s ->" stack_subname; + append_main " %s >>= fun %s ->" vchan_subname vchan_subname; + append_main " %s.init ~peer:%s ~stack:%s () >>= fun %s ->" + (module_name_core t) vchan_subname stack_subname (name t); + append_main " return (`Ok %s)" (name t); + newline_main () + + let clean = function + | `Stack (s,v) -> Impl.clean s; Impl.clean v + + let update_path t root = + match t with + | `Stack (s,v) -> + `Stack ((Impl.update_path s root), (Impl.update_path v root)) + +end + +type conduit = Conduit + +let conduit = Type Conduit + +let conduit_direct ?(vchan=vchan_localhost ()) stack = + impl conduit (`Stack (stack,vchan)) (module Conduit) + +type conduit_client = [ + | `TCP of Ipaddr.t * int + | `Vchan of string list +] + +type conduit_server = [ + | `TCP of [ `Port of int ] + | `Vchan of string list +] + +module Resolver_unix = struct + type t = unit + + let name t = + let key = "resolver_unix" in + Name.of_key key ~base:"resolver" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + module_name_core t + + let packages t = + match !mode with + |`Unix | `MacOSX -> [ "mirage-conduit" ] + |`Xen -> failwith "Resolver_unix not supported on Xen" + + let libraries t = + [ "conduit.mirage"; "conduit.lwt-unix" ] + + let configure t = + append_main "module %s = Resolver_lwt" (module_name t); + append_main "let %s () =" (name t); + append_main " return (`Ok Resolver_lwt_unix.system)"; + newline_main () + + let clean t = () + + let update_path t root = t + +end + +module Resolver_direct = struct + type t = + [ `DNS of stackv4 impl * Ipaddr.V4.t option * int option ] + + let name t = + let key = "resolver" ^ match t with + | `DNS (s,_,_) -> Impl.name s in + Name.of_key key ~base:"resolver" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + (module_name_core t) ^ "_res" + + let packages t = + [ "dns"; "tcpip" ] @ + match t with + | `DNS (s,_,_) -> Impl.packages s + + let libraries t = + [ "dns.mirage" ] @ + match t with + | `DNS (s,_,_) -> Impl.libraries s + + let configure t = + begin match t with + | `DNS (s,_,_) -> + Impl.configure s; + append_main "module %s = Resolver_lwt" (module_name t); + append_main "module %s_dns = Dns_resolver_mirage.Make(OS.Time)(%s)" + (module_name_core t) (Impl.module_name s); + append_main "module %s = Resolver_mirage.Make(%s_dns)" + (module_name_core t) (module_name_core t); + end; + newline_main (); + append_main "let %s () =" (name t); + let subname = match t with + | `DNS (s,_,_) -> Impl.name s in + append_main " %s () >>= function" subname; + append_main " | `Error _ -> %s" (driver_initialisation_error subname); + append_main " | `Ok %s ->" subname; + let res_ns = match t with + | `DNS (_,None,_) -> "None" + | `DNS (_,Some ns,_) -> + Printf.sprintf "Ipaddr.V4.of_string %S" (Ipaddr.V4.to_string ns) in + append_main " let ns = %s in" res_ns; + let res_ns_port = match t with + | `DNS (_,_,None) -> "None" + | `DNS (_,_,Some ns_port) -> Printf.sprintf "Some %d" ns_port in + append_main " let ns_port = %s in" res_ns_port; + append_main " let res = %s.init ?ns ?ns_port ~stack:%s () in" (module_name_core t) subname; + append_main " return (`Ok res)"; + newline_main () + + let clean = function + | `DNS (s,_,_) -> Impl.clean s + + let update_path t root = + match t with + | `DNS (s,a,b) -> `DNS (Impl.update_path s root, a, b) + +end + +type resolver = Resolver + +let resolver = Type Resolver + +let resolver_dns ?ns ?ns_port stack = + impl resolver (`DNS (stack, ns, ns_port)) (module Resolver_direct) + +let resolver_unix_system = + impl resolver () (module Resolver_unix) + +module HTTP = struct + + type t = + [ `Channel of channel impl + | `Stack of conduit_server * conduit impl ] + + let name t = + let key = "http" ^ match t with + | `Channel c -> Impl.name c + | `Stack (_, c) -> Impl.name c in + Name.of_key key ~base:"http" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + module_name_core t ^ ".Server" + + let packages t = + [ "mirage-http" ] @ + match t with + | `Channel c -> Impl.packages c + | `Stack (_, c) -> Impl.packages c + + let libraries t = + [ "mirage-http" ] @ + match t with + | `Channel c -> Impl.libraries c + | `Stack (_, c) -> Impl.libraries c + + let configure t = + begin match t with + | `Channel c -> + Impl.configure c; + append_main "module %s = HTTP.Make(%s)" (module_name_core t) (Impl.module_name c) + | `Stack (_, c) -> + Impl.configure c; + append_main "module %s = HTTP.Make(%s)" (module_name_core t) (Impl.module_name c) + end; + newline_main (); + let subname = match t with + | `Channel c -> Impl.name c + | `Stack (_,c) -> Impl.name c in + append_main "let %s () =" (name t); + append_main " %s () >>= function" subname; + append_main " | `Error _ -> %s" (driver_initialisation_error subname); + append_main " | `Ok %s ->" subname; + begin match t with + | `Channel c -> failwith "TODO" + | `Stack (m,c) -> + append_main " let listen spec ="; + append_main " let ctx = %s in" (Impl.name c); + append_main " let mode = %s in" + (match m with + |`TCP (`Port port) -> Printf.sprintf "`TCP (`Port %d)" port + |`Vchan l -> failwith "Vchan not supported yet in server" + ); + append_main " %s.serve ~ctx ~mode (%s.Server.listen spec)" (Impl.module_name c) (module_name_core t); + append_main " in"; + append_main " return (`Ok listen)"; + end; + newline_main () + + let clean = function + | `Channel c -> Impl.clean c + | `Stack (_,c) -> Impl.clean c + + let update_path t root = + match t with + | `Channel c -> `Channel (Impl.update_path c root) + | `Stack (m, c) -> `Stack (m, Impl.update_path c root) + +end + +type http = HTTP + +let http = Type HTTP + +let http_server_of_channel chan = + impl http (`Channel chan) (module HTTP) + +let http_server mode conduit = + impl http (`Stack (mode, conduit)) (module HTTP) + +type job = JOB + +let job = Type JOB + +module Job = struct + + type t = { + name: string; + impl: job impl; + } + + let create impl = + let name = Name.create "job" in + { name; impl } + + let name t = + t.name + + let module_name t = + "Job_" ^ t.name + + let packages t = + Impl.packages t.impl + + let libraries t = + Impl.libraries t.impl + + let configure t = + Impl.configure t.impl; + newline_main () + + let clean t = + Impl.clean t.impl + + let update_path t root = + { t with impl = Impl.update_path t.impl root } + +end + +module Tracing = struct + type t = { + size : int; + } + + let unix_trace_file = "trace.ctf" + + let packages _ = StringSet.singleton "mirage-profile" + + let libraries _ = + match !mode with + | `Unix | `MacOSX -> StringSet.singleton "mirage-profile.unix" + | `Xen -> StringSet.singleton "mirage-profile.xen" + + let configure t = + if Sys.command "ocamlfind query lwt.tracing 2>/dev/null" <> 0 then ( + flush stdout; + error "lwt.tracing module not found. Hint:\n\ + opam pin add lwt 'https://github.com/mirage/lwt.git#tracing'" + ); + + append_main "let () = "; + begin match !mode with + | `Unix | `MacOSX -> + append_main " let buffer = MProf_unix.mmap_buffer ~size:%d %S in" t.size unix_trace_file; + append_main " let trace_config = MProf.Trace.Control.make buffer MProf_unix.timestamper in"; + append_main " MProf.Trace.Control.start trace_config"; + | `Xen -> + append_main " let trace_pages = MProf_xen.make_shared_buffer ~size:%d in" t.size; + append_main " let buffer = trace_pages |> Io_page.to_cstruct |> Cstruct.to_bigarray in"; + append_main " let trace_config = MProf.Trace.Control.make buffer MProf_xen.timestamper in"; + append_main " MProf.Trace.Control.start trace_config;"; + append_main " MProf_xen.share_with (module Gnt.Gntshr) (module OS.Xs) ~domid:0 trace_pages"; + append_main " |> OS.Main.run"; + end; + newline_main () +end + +type tracing = Tracing.t + +let mprof_trace ~size () = + { Tracing.size } + +type t = { + name: string; + root: string; + jobs: job impl list; + tracing: tracing option; +} + +let t = ref None + +let config_file = ref None + +let reset () = + config_file := None; + t := None + +let set_config_file f = + config_file := Some f + +let get_config_file () = + match !config_file with + | None -> Sys.getcwd () / "config.ml" + | Some f -> f + +let update_path t root = + { t with jobs = List.map (fun j -> Impl.update_path j root) t.jobs } + +let register ?tracing name jobs = + let root = match !config_file with + | None -> failwith "no config file" + | Some f -> Filename.dirname f in + t := Some { name; jobs; root; tracing } + +let registered () = + match !t with + | None -> { name = "empty"; jobs = []; root = Sys.getcwd (); tracing = None } + | Some t -> t + +let ps = ref StringSet.empty + +let add_to_opam_packages p = + ps := StringSet.union (StringSet.of_list p) !ps + +let packages t = + let m = match !mode with + | `Unix | `MacOSX -> "mirage-unix" + | `Xen -> "mirage-xen" in + let ps = StringSet.add m !ps in + let ps = match t.tracing with + | None -> ps + | Some tracing -> StringSet.union (Tracing.packages tracing) ps in + let ps = List.fold_left (fun set j -> + let ps = StringSet.of_list (Impl.packages j) in + StringSet.union ps set + ) ps t.jobs in + StringSet.elements ps + +let ls = ref StringSet.empty + +let add_to_ocamlfind_libraries l = + ls := StringSet.union !ls (StringSet.of_list l) + +let libraries t = + let m = match !mode with + | `Unix | `MacOSX -> "mirage-types.lwt" + | `Xen -> "mirage-types.lwt" in + let ls = StringSet.add m !ls in + let ls = match t.tracing with + | None -> ls + | Some tracing -> StringSet.union (Tracing.libraries tracing) ls in + let ls = List.fold_left (fun set j -> + let ls = StringSet.of_list (Impl.libraries j) in + StringSet.union ls set + ) ls t.jobs in + StringSet.elements ls + +let configure_myocamlbuild_ml t = + let minor, major = ocaml_version () in + if minor < 4 || major < 1 then ( + (* Previous ocamlbuild versions weren't able to understand the + --output-obj rules *) + let file = t.root / "myocamlbuild.ml" in + let oc = open_out file in + append oc "(* %s *)" generated_by_mirage; + newline oc; + append oc + "open Ocamlbuild_pack;;\n\ + open Ocamlbuild_plugin;;\n\ + open Ocaml_compiler;;\n\ + \n\ + let native_link_gen linker =\n\ + \ link_gen \"cmx\" \"cmxa\" !Options.ext_lib [!Options.ext_obj; \"cmi\"] linker;;\n\ + \n\ + let native_output_obj x = native_link_gen ocamlopt_link_prog\n\ + \ (fun tags -> tags++\"ocaml\"++\"link\"++\"native\"++\"output_obj\") x;;\n\ + \n\ + rule \"ocaml: cmx* & o* -> native.o\"\n\ + \ ~tags:[\"ocaml\"; \"native\"; \"output_obj\" ]\n\ + \ ~prod:\"%%.native.o\" ~deps:[\"%%.cmx\"; \"%%.o\"]\n\ + \ (native_output_obj \"%%.cmx\" \"%%.native.o\");;\n\ + \n\ + \n\ + let byte_link_gen = link_gen \"cmo\" \"cma\" \"cma\" [\"cmo\"; \"cmi\"];;\n\ + let byte_output_obj = byte_link_gen ocamlc_link_prog\n\ + \ (fun tags -> tags++\"ocaml\"++\"link\"++\"byte\"++\"output_obj\");;\n\ + \n\ + rule \"ocaml: cmo* -> byte.o\"\n\ + \ ~tags:[\"ocaml\"; \"byte\"; \"link\"; \"output_obj\" ]\n\ + ~prod:\"%%.byte.o\" ~dep:\"%%.cmo\"\n\ + \ (byte_output_obj \"%%.cmo\" \"%%.byte.o\");;"; + close_out oc + ) + +let clean_myocamlbuild_ml t = + remove (t.root / "myocamlbuild.ml") + +let configure_main_libvirt_xml t = + let file = t.root / t.name ^ "_libvirt.xml" in + let oc = open_out file in + append oc "" generated_by_mirage; + append oc ""; + append oc " %s" t.name; + append oc " 262144"; + append oc " 262144"; + append oc " 1"; + append oc " "; + append oc " linux"; + append oc " %s/mir-%s.xen" t.root t.name; + append oc " "; (* the libxl driver currently needs an empty cmdline to be able to start the domain on arm - due to this? http://lists.xen.org/archives/html/xen-devel/2014-02/msg02375.html *) + append oc " "; + append oc " "; + append oc " preserve"; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc ""; + close_out oc + +let clean_main_libvirt_xml t = + remove (t.root / t.name ^ "_libvirt.xml") + +let configure_main_xl t = + let file = t.root / t.name ^ ".xl" in + let oc = open_out file in + append oc "# %s" generated_by_mirage; + newline oc; + append oc "name = '%s'" t.name; + append oc "kernel = '%s/mir-%s.xen'" t.root t.name; + append oc "builder = 'linux'"; + append oc "memory = 256"; + append oc "on_crash = 'preserve'"; + newline oc; + append oc "# You must define the network and block interfaces manually."; + newline oc; + append oc "# The disk configuration is defined here:"; + append oc "# http://xenbits.xen.org/docs/4.3-testing/misc/xl-disk-configuration.txt"; + append oc "# An example would look like:"; + append oc "# disk = [ '/dev/loop0,,xvda' ]"; + newline oc; + append oc "# The network configuration is defined here:"; + append oc "# http://xenbits.xen.org/docs/4.3-testing/misc/xl-network-configuration.html"; + append oc "# An example would look like:"; + append oc "# vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]"; + close_out oc + +let clean_main_xl t = + remove (t.root / t.name ^ ".xl") + +let configure_main_xe t = + let file = t.root / t.name ^ ".xe" in + let oc = open_out file in + append oc "#!/bin/sh"; + append oc "# %s" generated_by_mirage; + newline oc; + append oc "set -e"; + newline oc; + append oc "# Dependency: xe"; + append oc "command -v xe >/dev/null 2>&1 || { echo >&2 \"I require xe but it's not installed. Aborting.\"; exit 1; }"; + append oc "# Dependency: xe-unikernel-upload"; + append oc "command -v xe-unikernel-upload >/dev/null 2>&1 || { echo >&2 \"I require xe-unikernel-upload but it's not installed. Aborting.\"; exit 1; }"; + append oc "# Dependency: a $HOME/.xe"; + append oc "if [ ! -e $HOME/.xe ]; then"; + append oc " echo Please create a config file for xe in $HOME/.xe which contains:"; + append oc " echo server=''"; + append oc " echo username=root"; + append oc " echo password=password"; + append oc " exit 1"; + append oc "fi"; + newline oc; + append oc "echo Uploading VDI containing unikernel"; + append oc "VDI=$(xe-unikernel-upload --path %s/mir-%s.xen)" t.root t.name; + append oc "echo VDI=$VDI"; + append oc "echo Creating VM metadata"; + append oc "VM=$(xe vm-create name-label=%s)" t.name; + append oc "echo VM=$VM"; + append oc "xe vm-param-set uuid=$VM PV-bootloader=pygrub"; + append oc "echo Adding network interface connected to xenbr0"; + append oc "ETH0=$(xe network-list bridge=xenbr0 params=uuid --minimal)"; + append oc "VIF=$(xe vif-create vm-uuid=$VM network-uuid=$ETH0 device=0)"; + append oc "echo Atting block device and making it bootable"; + append oc "VBD=$(xe vbd-create vm-uuid=$VM vdi-uuid=$VDI device=0)"; + append oc "xe vbd-param-set uuid=$VBD bootable=true"; + append oc "xe vbd-param-set uuid=$VBD other-config:owner=true"; + append oc "echo Starting VM"; + append oc "xe vm-start vm=%s" t.name; + close_out oc; + Unix.chmod file 0o755 + +let clean_main_xe t = + remove (t.root / t.name ^ ".xe") + +(* Get the linker flags for any extra C objects we depend on. + * This is needed when building a Xen image as we do the link manually. *) +let get_extra_ld_flags ~filter pkgs = + let output = read_command + "ocamlfind query -r -format '%%d\t%%(xen_linkopts)' -predicates native %s" + (String.concat " " pkgs) in + split output '\n' + |> List.fold_left (fun acc line -> + match cut_at line '\t' with + | None -> acc + | Some (dir, ldflags) -> Printf.sprintf "-L%s %s" dir ldflags :: acc + ) [] + +let configure_makefile t = + let file = t.root / "Makefile" in + let pkgs = "lwt.syntax" :: libraries t in + let libraries_str = + match pkgs with + | [] -> "" + | ls -> "-pkgs " ^ String.concat "," ls in + let packages = String.concat " " (packages t) in + let oc = open_out file in + append oc "# %s" generated_by_mirage; + newline oc; + append oc "LIBS = %s" libraries_str; + append oc "PKGS = %s" packages; + begin match !mode with + | `Xen -> + append oc "SYNTAX = -tags \"syntax(camlp4o),annot,bin_annot,strict_sequence,principal\"\n"; + append oc "SYNTAX += -tag-line \": -syntax(camlp4o)\"\n"; + append oc "FLAGS = -cflag -g -lflags -g,-linkpkg,-dontlink,unix\n"; + append oc "XENLIB = $(shell ocamlfind query mirage-xen)\n" + | `Unix -> + append oc "SYNTAX = -tags \"syntax(camlp4o),annot,bin_annot,strict_sequence,principal\"\n"; + append oc "SYNTAX += -tag-line \": -syntax(camlp4o)\"\n"; + append oc "FLAGS = -cflag -g -lflags -g,-linkpkg\n" + | `MacOSX -> + append oc "SYNTAX = -tags \"syntax(camlp4o),annot,bin_annot,strict_sequence,principal,thread\"\n"; + append oc "SYNTAX += -tag-line \": -syntax(camlp4o)\"\n"; + append oc "FLAGS = -cflag -g -lflags -g,-linkpkg\n" + end; + append oc "BUILD = ocamlbuild -use-ocamlfind $(LIBS) $(SYNTAX) $(FLAGS)\n\ + OPAM = opam\n\n\ + export PKG_CONFIG_PATH=$(shell opam config var prefix)/lib/pkgconfig\n\n\ + export OPAMVERBOSE=1\n\ + export OPAMYES=1"; + newline oc; + append oc ".PHONY: all depend clean build main.native\n\ + all: build\n\ + \n\ + depend:\n\ + \t$(OPAM) install $(PKGS) --verbose\n\ + \n\ + main.native:\n\ + \t$(BUILD) main.native\n\ + \n\ + main.native.o:\n\ + \t$(BUILD) main.native.o"; + newline oc; + + (* On ARM, we must convert the ELF image to an ARM boot executable zImage, + * while on x86 we leave it as it is. *) + let generate_image = + let need_zImage = + match uname_m () with + | Some machine -> String.length machine > 2 && String.sub machine 0 3 = "arm" + | None -> failwith "uname -m failed; can't determine target machine type!" in + if need_zImage then ( + Printf.sprintf "\t -o mir-%s.elf\n\ + \tobjcopy -O binary mir-%s.elf mir-%s.xen" + t.name t.name t.name + ) else ( + Printf.sprintf "\t -o mir-%s.xen" t.name + ) in + + begin match !mode with + | `Xen -> + let filter = function + | "unix" | "bigarray" |"shared_memory_ring_stubs" -> false (* Provided by mirage-xen instead. *) + | _ -> true in + let extra_c_archives = + get_extra_ld_flags ~filter pkgs + |> String.concat " \\\n\t " in + + append oc "build: main.native.o"; + let pkg_config_deps = "mirage-xen" in + append oc "\tpkg-config --print-errors --exists %s" pkg_config_deps; + append oc "\tld -d -static -nostdlib \\\n\ + \t _build/main.native.o \\\n\ + \t %s \\\n\ + \t $$(pkg-config --static --libs %s) \\\n\ + \t $(shell gcc -print-libgcc-file-name) \\\n\ + %s" + extra_c_archives pkg_config_deps generate_image; + | `Unix | `MacOSX -> + append oc "build: main.native"; + append oc "\tln -nfs _build/main.native mir-%s" t.name; + end; + newline oc; + append oc "run: build"; + begin match !mode with + | `Xen -> + append oc "\t@echo %s.xl has been created. Edit it to add VIFs or VBDs" t.name; + append oc "\t@echo Then do something similar to: xl create -c %s.xl\n" t.name + | `Unix | `MacOSX -> + append oc "\t$(SUDO) ./mir-%s\n" t.name + end; + append oc "clean:\n\ + \tocamlbuild -clean"; + close_out oc + +let clean_makefile t = + remove (t.root / "Makefile") + +let no_opam_version_check_ = ref false +let no_opam_version_check b = no_opam_version_check_ := b + +let configure_opam t = + info "Installing OPAM packages."; + match packages t with + | [] -> () + | ps -> + if command_exists "opam" then + if !no_opam_version_check_ then () + else ( + let opam_version = read_command "opam --version" in + let version_error () = + error "Your version of opam: %s is not up-to-date. \ + Please update to (at least) 1.2." opam_version + in + match split opam_version '.' with + | major::minor::_ -> + let major = try int_of_string major with Failure _ -> 0 in + let minor = try int_of_string minor with Failure _ -> 0 in + if (major, minor) >= (1, 2) then opam "install" ps else version_error () + | _ -> version_error () + ) + else error "OPAM is not installed." + +let clean_opam t = + () +(* This is a bit too agressive, disabling for now on. + let (++) = StringSet.union in + let set mode = StringSet.of_list (packages t mode) in + let packages = + set (`Unix `Socket) ++ set (`Unix `Direct) ++ set `Xen in + match StringSet.elements packages with + | [] -> () + | ps -> + if cmd_exists "opam" then opam "remove" ps + else error "OPAM is not installed." +*) + +let manage_opam_packages_ = ref true +let manage_opam_packages b = manage_opam_packages_ := b + +let configure_job j = + let name = Impl.name j in + let module_name = Impl.module_name j in + let param_names = Impl.names j in + append_main "let %s () =" name; + List.iter (fun p -> + append_main " %s () >>= function" p; + append_main " | `Error e -> %s" (driver_initialisation_error p); + append_main " | `Ok %s ->" p; + ) (dedup param_names); + append_main " %s.start %s" module_name (String.concat " " param_names); + newline_main () + +let configure_main t = + info "%s main.ml" (blue_s "Generating:"); + set_main_ml (t.root / "main.ml"); + append_main "(* %s *)" generated_by_mirage; + newline_main (); + append_main "open Lwt"; + newline_main (); + append_main "let _ = Printexc.record_backtrace true"; + newline_main (); + begin match t.tracing with + | None -> () + | Some tracing -> Tracing.configure tracing end; + List.iter (fun j -> Impl.configure j) t.jobs; + List.iter configure_job t.jobs; + let names = List.map (fun j -> Printf.sprintf "%s ()" (Impl.name j)) t.jobs in + append_main "let () ="; + append_main " OS.Main.run (join [%s])" (String.concat "; " names) + +let clean_main t = + List.iter Impl.clean t.jobs; + remove (t.root / "main.ml") + +let configure t = + info "%s %s" (blue_s "Using configuration:") (get_config_file ()); + info "%d job%s [%s]" + (List.length t.jobs) + (if List.length t.jobs = 1 then "" else "s") + (String.concat ", " (List.map Impl.functor_name t.jobs)); + in_dir t.root (fun () -> + if !manage_opam_packages_ then configure_opam t; + configure_myocamlbuild_ml t; + configure_makefile t; + configure_main_xl t; + configure_main_xe t; + configure_main_libvirt_xml t; + configure_main t + ) + +let make () = + match uname_s () with + | Some ("FreeBSD" | "OpenBSD" | "NetBSD" | "DragonFly") -> "gmake" + | _ -> "make" + +let build t = + info "Build: %s" (blue_s (get_config_file ())); + in_dir t.root (fun () -> + command "%s build" (make ()) + ) + +let run t = + info "Run: %s" (blue_s (get_config_file ())); + in_dir t.root (fun () -> + command "%s run" (make ()) + ) + +let clean t = + info "Clean: %s" (blue_s (get_config_file ())); + in_dir t.root (fun () -> + if !manage_opam_packages_ then clean_opam t; + clean_myocamlbuild_ml t; + clean_makefile t; + clean_main_xl t; + clean_main_xe t; + clean_main_libvirt_xml t; + clean_main t; + command "rm -rf %s/_build" t.root; + command "rm -rf log %s/main.native.o %s/main.native %s/mir-%s %s/*~" + t.root t.root t.root t.name t.root; + ) + +(* Compile the configuration file and attempt to dynlink it. + * It is responsible for registering an application via + * [Mirage_config.register] in order to have an observable + * side effect to this command. *) +let compile_and_dynlink file = + info "%s %s" (blue_s "Processing:") file; + let root = Filename.dirname file in + let file = Filename.basename file in + let file = Dynlink.adapt_filename file in + command "rm -rf %s/_build/%s.*" root (Filename.chop_extension file); + command "cd %s && ocamlbuild -use-ocamlfind -tags annot,bin_annot -pkg mirage %s" root file; + try Dynlink.loadfile (String.concat "/" [root; "_build"; file]) + with Dynlink.Error err -> error "Error loading config: %s" (Dynlink.error_message err) + +(* If a configuration file is specified, then use that. + * If not, then scan the curdir for a `config.ml` file. + * If there is more than one, then error out. *) +let scan_conf = function + | Some f -> + info "%s %s" (blue_s "Using specified config file:") f; + if not (Sys.file_exists f) then error "%s does not exist, stopping." f; + realpath f + | None -> + let files = Array.to_list (Sys.readdir ".") in + match List.filter ((=) "config.ml") files with + | [] -> error "No configuration file config.ml found.\n\ + You'll need to create one to let Mirage know what to do." + | [f] -> + info "%s %s" (blue_s "Using scanned config file:") f; + realpath f + | _ -> error "There is more than one config.ml in the current working directory.\n\ + Please specify one explictly on the command-line." + +let load file = + reset (); + let file = scan_conf file in + let root = realpath (Filename.dirname file) in + let file = root / Filename.basename file in + info "%s %s" (blue_s "Compiling for target:") (string_of_mode !mode); + set_config_file file; + compile_and_dynlink file; + let t = registered () in + set_section t.name; + update_path t root diff --git a/samples/OCaml/reload.ml b/samples/OCaml/reload.ml new file mode 100644 index 00000000..510f201f --- /dev/null +++ b/samples/OCaml/reload.ml @@ -0,0 +1,125 @@ +(***********************************************************************) +(* *) +(* OCaml *) +(* *) +(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 2000 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the Q Public License version 1.0. *) +(* *) +(***********************************************************************) + +open Cmm +open Arch +open Reg +open Mach + +(* Reloading for the AMD64 *) + +(* Summary of instruction set constraints: + "S" means either stack or register, "R" means register only. + Operation Res Arg1 Arg2 + Imove R S + or S R + Iconst_int S if 32-bit signed, R otherwise + Iconst_float R + Iconst_symbol (not PIC) S + Iconst_symbol (PIC) R + Icall_ind R + Itailcall_ind R + Iload R R R + Istore R R + Iintop(Icomp) R R S + or S S R + Iintop(Imul|Idiv|mod) R R S + Iintop(shift) S S R + Iintop(others) R R S + or S S R + Iintop_imm(Iadd, n)/lea R R + Iintop_imm(others) S S + Inegf...Idivf R R S + Ifloatofint R S + Iintoffloat R S + Ispecific(Ilea) R R R + Ispecific(Ifloatarithmem) R R R + + Conditional branches: + Iinttest S R + or R S + Ifloattest R S (or S R if swapped test) + other tests S +*) + +let stackp r = + match r.loc with + Stack _ -> true + | _ -> false + +class reload = object (self) + +inherit Reloadgen.reload_generic as super + +method! reload_operation op arg res = + match op with + | Iintop(Iadd|Isub|Iand|Ior|Ixor|Icomp _|Icheckbound) -> + (* One of the two arguments can reside in the stack, but not both *) + if stackp arg.(0) && stackp arg.(1) + then ([|arg.(0); self#makereg arg.(1)|], res) + else (arg, res) + | Iintop_imm(Iadd, _) when arg.(0).loc <> res.(0).loc -> + (* This add will be turned into a lea; args and results must be + in registers *) + super#reload_operation op arg res + | Iintop(Idiv | Imod | Ilsl | Ilsr | Iasr) + | Iintop_imm(_, _) -> + (* The argument(s) and results can be either in register or on stack *) + (* Note: Idiv, Imod: arg(0) and res(0) already forced in regs + Ilsl, Ilsr, Iasr: arg(1) already forced in regs *) + (arg, res) + | Iintop(Imul) | Iaddf | Isubf | Imulf | Idivf -> + (* First argument (= result) must be in register, second arg + can reside in the stack *) + if stackp arg.(0) + then (let r = self#makereg arg.(0) in ([|r; arg.(1)|], [|r|])) + else (arg, res) + | Ifloatofint | Iintoffloat -> + (* Result must be in register, but argument can be on stack *) + (arg, (if stackp res.(0) then [| self#makereg res.(0) |] else res)) + | Iconst_int n -> + if n <= 0x7FFFFFFFn && n >= -0x80000000n + then (arg, res) + else super#reload_operation op arg res + | Iconst_symbol _ -> + if !pic_code || !Clflags.dlcode + then super#reload_operation op arg res + else (arg, res) + | _ -> (* Other operations: all args and results in registers *) + super#reload_operation op arg res + +method! reload_test tst arg = + match tst with + Iinttest cmp -> + (* One of the two arguments can reside on stack *) + if stackp arg.(0) && stackp arg.(1) + then [| self#makereg arg.(0); arg.(1) |] + else arg + | Ifloattest((Clt|Cle), _) -> + (* Cf. emit.mlp: we swap arguments in this case *) + (* First argument can be on stack, second must be in register *) + if stackp arg.(1) + then [| arg.(0); self#makereg arg.(1) |] + else arg + | Ifloattest((Ceq|Cne|Cgt|Cge), _) -> + (* Second argument can be on stack, first must be in register *) + if stackp arg.(0) + then [| self#makereg arg.(0); arg.(1) |] + else arg + | _ -> + (* The argument(s) can be either in register or on stack *) + arg + +end + +let fundecl f = + (new reload)#fundecl f diff --git a/samples/OCaml/sigset.ml b/samples/OCaml/sigset.ml new file mode 100644 index 00000000..ba5e1092 --- /dev/null +++ b/samples/OCaml/sigset.ml @@ -0,0 +1,70 @@ +(* + * Copyright (c) 2013 Jeremy Yallop. + * + * This file is distributed under the terms of the MIT License. + * See the file LICENSE for details. + *) + +open PosixTypes +open Ctypes +open Foreign + +type t = sigset_t ptr + +let t = ptr sigset_t + +(* This function initializes the signal set set to exclude all of the defined + signals. It always returns 0. *) +let sigemptyset = foreign "sigemptyset" (ptr sigset_t @-> returning int) + +let empty () = + let setp = allocate_n ~count:1 sigset_t in begin + ignore (sigemptyset setp); + setp + end + +(* This function initializes the signal set set to include all of the defined + signals. Again, the return value is 0. *) +let sigfillset = foreign "sigfillset" (ptr sigset_t @-> returning int) + +let full () = + let setp = allocate_n ~count:1 sigset_t in begin + ignore (sigfillset setp); + setp + end + +(* This function adds the signal signum to the signal set set. All sigaddset + does is modify set; it does not block or unblock any signals. + + The return value is 0 on success and -1 on failure. The following errno + error condition is defined for this function: + + EINVAL The signum argument doesn't specify a valid signal. +*) +let sigaddset = foreign "sigaddset" ~check_errno:true + (ptr sigset_t @-> int @-> returning int) + +let add set signal = ignore (sigaddset set signal) + +(* This function removes the signal signum from the signal set set. All + sigdelset does is modify set; it does not block or unblock any signals. + + The return value and error conditions are the same as for + sigaddset. *) +let sigdelset = foreign "sigdelset" ~check_errno:true + (ptr sigset_t @-> int @-> returning int) + +let del set signal = ignore (sigdelset set signal) + +(* The sigismember function tests whether the signal signum is a member of the + signal set set. It returns 1 if the signal is in the set, 0 if not, and -1 if + there is an error. + + The following errno error condition is defined for this function: + + EINVAL The signum argument doesn't specify a valid signal. +*) +let sigismember = foreign "sigismember" ~check_errno:true + (ptr sigset_t @-> int @-> returning int) + +let mem set signal = sigismember set signal <> 0 diff --git a/samples/OCaml/uutf.ml b/samples/OCaml/uutf.ml new file mode 100644 index 00000000..ff12d954 --- /dev/null +++ b/samples/OCaml/uutf.ml @@ -0,0 +1,810 @@ +(*--------------------------------------------------------------------------- + Copyright 2012 Daniel C. Bünzli. All rights reserved. + Distributed under the BSD3 license, see license at the end of the file. + %%NAME%% release %%VERSION%% + ---------------------------------------------------------------------------*) + +let io_buffer_size = 65536 (* IO_BUFFER_SIZE 4.0.0 *) + +let pp = Format.fprintf +let invalid_encode () = invalid_arg "expected `Await encode" +let invalid_bounds j l = + invalid_arg (Printf.sprintf "invalid bounds (index %d, length %d)" j l) + +(* Unsafe string byte manipulations. If you don't believe the author's + invariants, replacing with safe versions makes everything safe in + the module. He won't be upset. *) + +let unsafe_chr = Char.unsafe_chr +let unsafe_blit = String.unsafe_blit +let unsafe_array_get = Array.unsafe_get +let unsafe_byte s j = Char.code (String.unsafe_get s j) +let unsafe_set_byte s j byte = String.unsafe_set s j (Char.unsafe_chr byte) + +(* Unicode characters *) + +type uchar = int +let u_bom = 0xFEFF (* BOM. *) +let u_rep = 0xFFFD (* replacement character. *) +let is_uchar cp = + (0x0000 <= cp && cp <= 0xD7FF) || (0xE000 <= cp && cp <= 0x10FFFF) + +let pp_cp ppf cp = + if cp < 0 || cp > 0x10FFFF then pp ppf "U+Invalid(%X)" cp else + if cp <= 0xFFFF then pp ppf "U+%04X" cp else + pp ppf "U+%X" cp + +let cp_to_string cp = (* NOT thread safe. *) + pp Format.str_formatter "%a" pp_cp cp; Format.flush_str_formatter () + +(* Unicode encoding schemes *) + +type encoding = [ `UTF_8 | `UTF_16 | `UTF_16BE | `UTF_16LE ] +type decoder_encoding = [ encoding | `US_ASCII | `ISO_8859_1 ] + +let encoding_of_string s = match String.uppercase s with (* IANA names. *) +| "UTF-8" -> Some `UTF_8 +| "UTF-16" -> Some `UTF_16 +| "UTF-16LE" -> Some `UTF_16LE +| "UTF-16BE" -> Some `UTF_16BE +| "ANSI_X3.4-1968" | "ISO-IR-6" | "ANSI_X3.4-1986" | "ISO_646.IRV:1991" +| "ASCII" | "ISO646-US" | "US-ASCII" | "US" | "IBM367" | "CP367" | "CSASCII" -> + Some `US_ASCII +| "ISO_8859-1:1987" | "ISO-IR-100" | "ISO_8859-1" | "ISO-8859-1" +| "LATIN1" | "L1" | "IBM819" | "CP819" | "CSISOLATIN1" -> + Some `ISO_8859_1 +| _ -> None + +let encoding_to_string = function +| `UTF_8 -> "UTF-8" | `UTF_16 -> "UTF-16" | `UTF_16BE -> "UTF-16BE" +| `UTF_16LE -> "UTF-16LE" | `US_ASCII -> "US-ASCII" +| `ISO_8859_1 -> "ISO-8859-1" + +(* Base character decoders. They assume enough data. *) + +let malformed s j l = `Malformed (String.sub s j l) +let malformed_pair be hi s j l = (* missing or half low surrogate at eoi. *) + let bs1 = String.sub s j l in + let bs0 = String.create 2 in + let j0, j1 = if be then (0, 1) else (1, 0) in + unsafe_set_byte bs0 j0 (hi lsr 8); + unsafe_set_byte bs0 j1 (hi land 0xFF); + `Malformed (bs0 ^ bs1) + +let r_us_ascii s j = + (* assert (0 <= j && j < String.length s); *) + let b0 = unsafe_byte s j in + if b0 <= 127 then `Uchar b0 else malformed s j 1 + +let r_iso_8859_1 s j = + (* assert (0 <= j && j < String.length s); *) + `Uchar (unsafe_byte s j) + +let utf_8_len = [| (* uchar byte length according to first UTF-8 byte. *) + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; + 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; + 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; + 0; 0; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; + 2; 2; 2; 2; 2; 2; 2; 2; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; + 4; 4; 4; 4; 4; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0 |] + +let r_utf_8 s j l = + (* assert (0 <= j && 0 <= l && j + l <= String.length s); *) + match l with + | 1 -> `Uchar (unsafe_byte s j) + | 2 -> + let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in + if b1 lsr 6 != 0b10 then malformed s j l else + `Uchar (((b0 land 0x1F) lsl 6) lor (b1 land 0x3F)) + | 3 -> + let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in + let b2 = unsafe_byte s (j + 2) in + let c = `Uchar (((b0 land 0x0F) lsl 12) lor + ((b1 land 0x3F) lsl 6) lor + (b2 land 0x3F)) + in + if b2 lsr 6 != 0b10 then malformed s j l else + begin match b0 with + | 0xE0 -> if b1 < 0xA0 || 0xBF < b1 then malformed s j l else c + | 0xED -> if b1 < 0x80 || 0x9F < b1 then malformed s j l else c + | _ -> if b1 lsr 6 != 0b10 then malformed s j l else c + end + | 4 -> + let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in + let b2 = unsafe_byte s (j + 2) in let b3 = unsafe_byte s (j + 3) in + let c = `Uchar (((b0 land 0x07) lsl 18) lor + ((b1 land 0x3F) lsl 12) lor + ((b2 land 0x3F) lsl 6) lor + (b3 land 0x3F)) + in + if b3 lsr 6 != 0b10 || b2 lsr 6 != 0b10 then malformed s j l else + begin match b0 with + | 0xF0 -> if b1 < 0x90 || 0xBF < b1 then malformed s j l else c + | 0xF4 -> if b1 < 0x80 || 0x8F < b1 then malformed s j l else c + | _ -> if b1 lsr 6 != 0b10 then malformed s j l else c + end + | _ -> assert false + +let r_utf_16 s j0 j1 = (* May return a high surrogate. *) + (* assert (0 <= j0 && 0 <= j1 && max j0 j1 < String.length s); *) + let b0 = unsafe_byte s j0 in let b1 = unsafe_byte s j1 in + let u = (b0 lsl 8) lor b1 in + if u < 0xD800 || u > 0xDFFF then `Uchar u else + if u > 0xDBFF then malformed s (min j0 j1) 2 else `Hi u + +let r_utf_16_lo hi s j0 j1 = (* Combines [hi] with a low surrogate. *) + (* assert (0 <= j0 && 0 <= j1 && max j0 j1 < String.length s); *) + let b0 = unsafe_byte s j0 in + let b1 = unsafe_byte s j1 in + let lo = (b0 lsl 8) lor b1 in + if lo < 0xDC00 || lo > 0xDFFF + then malformed_pair (j0 < j1 (* true => be *)) hi s (min j0 j1) 2 + else `Uchar ((((hi land 0x3FF) lsl 10) lor (lo land 0x3FF)) + 0x10000) + +let r_encoding s j l = (* guess encoding with max. 3 bytes. *) + (* assert (0 <= j && 0 <= l && j + l <= String.length s) *) + let some i = if i < l then Some (unsafe_byte s (j + i)) else None in + match (some 0), (some 1), (some 2) with + | Some 0xEF, Some 0xBB, Some 0xBF -> `UTF_8 `BOM + | Some 0xFE, Some 0xFF, _ -> `UTF_16BE `BOM + | Some 0xFF, Some 0xFE, _ -> `UTF_16LE `BOM + | Some 0x00, Some p, _ when p > 0 -> `UTF_16BE (`ASCII p) + | Some p, Some 0x00, _ when p > 0 -> `UTF_16LE (`ASCII p) + | Some u, _, _ when utf_8_len.(u) <> 0 -> `UTF_8 `Decode + | Some _, Some _, _ -> `UTF_16BE `Decode + | Some _, None , None -> `UTF_8 `Decode + | None , None , None -> `UTF_8 `End + | None , Some _, _ -> assert false + | Some _, None , Some _ -> assert false + | None , None , Some _ -> assert false + +(* Decode *) + +type src = [ `Channel of in_channel | `String of string | `Manual ] +type nln = [ `ASCII of uchar | `NLF of uchar | `Readline of uchar ] +type decode = [ `Await | `End | `Malformed of string | `Uchar of uchar] + +let pp_decode ppf = function +| `Uchar u -> pp ppf "@[`Uchar %a@]" pp_cp u +| `End -> pp ppf "`End" +| `Await -> pp ppf "`Await" +| `Malformed bs -> + let l = String.length bs in + pp ppf "@[`Malformed ("; + if l > 0 then pp ppf "%02X" (Char.code (bs.[0])); + for i = 1 to l - 1 do pp ppf " %02X" (Char.code (bs.[i])) done; + pp ppf ")@]" + +type decoder = + { src : src; (* input source. *) + mutable encoding : decoder_encoding; (* decoded encoding. *) + nln : nln option; (* newline normalization (if any). *) + nl : int; (* newline normalization character. *) + mutable i : string; (* current input chunk. *) + mutable i_pos : int; (* input current position. *) + mutable i_max : int; (* input maximal position. *) + t : string; (* four bytes temporary buffer for overlapping reads. *) + mutable t_len : int; (* current byte length of [t]. *) + mutable t_need : int; (* number of bytes needed in [t]. *) + mutable removed_bom : bool; (* [true] if an initial BOM was removed. *) + mutable last_cr : bool; (* [true] if last char was CR. *) + mutable line : int; (* line number. *) + mutable col : int; (* column number. *) + mutable byte_count : int; (* byte count. *) + mutable count : int; (* char count. *) + mutable pp : (* decoder post-processor for BOM, position and nln. *) + decoder -> [ `Malformed of string | `Uchar of uchar ] -> decode; + mutable k : decoder -> decode } (* decoder continuation. *) + +(* On decodes that overlap two (or more) [d.i] buffers, we use [t_fill] to copy + the input data to [d.t] and decode from there. If the [d.i] buffers are not + too small this is faster than continuation based byte per byte writes. + + End of input (eoi) is signalled by [d.i_pos = 0] and [d.i_max = min_int] + which implies that [i_rem d < 0] is [true]. *) + +let i_rem d = d.i_max - d.i_pos + 1 (* remaining bytes to read in [d.i]. *) +let eoi d = d.i <- ""; d.i_pos <- 0; d.i_max <- min_int (* set eoi in [d]. *) +let src d s j l = (* set [d.i] with [s]. *) + if (j < 0 || l < 0 || j + l > String.length s) then invalid_bounds j l else + if (l = 0) then eoi d else + (d.i <- s; d.i_pos <- j; d.i_max <- j + l - 1) + +let refill k d = match d.src with (* get new input in [d.i] and [k]ontinue. *) +| `Manual -> d.k <- k; `Await +| `String _ -> eoi d; k d +| `Channel ic -> + let rc = input ic d.i 0 (String.length d.i) in + (src d d.i 0 rc; k d) + +let t_need d need = d.t_len <- 0; d.t_need <- need +let rec t_fill k d = (* get [d.t_need] bytes (or less if eoi) in [i.t]. *) + let blit d l = + unsafe_blit d.i d.i_pos d.t d.t_len (* write pos. *) l; + d.i_pos <- d.i_pos + l; d.t_len <- d.t_len + l; + in + let rem = i_rem d in + if rem < 0 (* eoi *) then k d else + let need = d.t_need - d.t_len in + if rem < need then (blit d rem; refill (t_fill k) d) else (blit d need; k d) + +let ret k v byte_count d = (* return post-processed [v]. *) + d.k <- k; d.byte_count <- d.byte_count + byte_count; d.pp d v + +(* Decoders. *) + +let rec decode_us_ascii d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_us_ascii d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 1; ret decode_us_ascii (r_us_ascii d.i j) 1 d + +let rec decode_iso_8859_1 d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_iso_8859_1 d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 1; ret decode_iso_8859_1 (r_iso_8859_1 d.i j) 1 d + +(* UTF-8 decoder *) + +let rec t_decode_utf_8 d = (* decode from [d.t]. *) + if d.t_len < d.t_need + then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d + else ret decode_utf_8 (r_utf_8 d.t 0 d.t_len) d.t_len d + +and decode_utf_8 d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_utf_8 d) else + let need = unsafe_array_get utf_8_len (unsafe_byte d.i d.i_pos) in + if rem < need then (t_need d need; t_fill t_decode_utf_8 d) else + let j = d.i_pos in + if need = 0 + then (d.i_pos <- d.i_pos + 1; ret decode_utf_8 (malformed d.i j 1) 1 d) + else (d.i_pos <- d.i_pos + need; ret decode_utf_8 (r_utf_8 d.i j need) need d) + +(* UTF-16BE decoder *) + +let rec t_decode_utf_16be_lo hi d = (* decode from [d.t]. *) + let bcount = d.t_len + 2 (* hi count *) in + if d.t_len < d.t_need + then ret decode_utf_16be (malformed_pair true hi d.t 0 d.t_len) bcount d + else ret decode_utf_16be (r_utf_16_lo hi d.t 0 1) bcount d + +and t_decode_utf_16be d = (* decode from [d.t]. *) + if d.t_len < d.t_need + then ret decode_utf_16be (malformed d.t 0 d.t_len) d.t_len d + else decode_utf_16be_lo (r_utf_16 d.t 0 1) d + +and decode_utf_16be_lo v d = match v with +| `Uchar _ | `Malformed _ as v -> ret decode_utf_16be v 2 d +| `Hi hi -> + let rem = i_rem d in + if rem < 2 then (t_need d 2; t_fill (t_decode_utf_16be_lo hi) d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; + ret decode_utf_16be (r_utf_16_lo hi d.i j (j + 1)) 4 d + +and decode_utf_16be d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_utf_16be d) else + if rem < 2 then (t_need d 2; t_fill t_decode_utf_16be d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; decode_utf_16be_lo (r_utf_16 d.i j (j + 1)) d + +(* UTF-16LE decoder, same as UTF-16BE with byte swapped. *) + +let rec t_decode_utf_16le_lo hi d = (* decode from [d.t]. *) + let bcount = d.t_len + 2 (* hi count *) in + if d.t_len < d.t_need + then ret decode_utf_16le (malformed_pair false hi d.t 0 d.t_len) bcount d + else ret decode_utf_16le (r_utf_16_lo hi d.t 1 0) bcount d + +and t_decode_utf_16le d = (* decode from [d.t]. *) + if d.t_len < d.t_need + then ret decode_utf_16le (malformed d.t 0 d.t_len) d.t_len d + else decode_utf_16le_lo (r_utf_16 d.t 1 0) d + +and decode_utf_16le_lo v d = match v with +| `Uchar _ | `Malformed _ as v -> ret decode_utf_16le v 2 d +| `Hi hi -> + let rem = i_rem d in + if rem < 2 then (t_need d 2; t_fill (t_decode_utf_16le_lo hi) d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; + ret decode_utf_16le (r_utf_16_lo hi d.i (j + 1) j) 4 d + +and decode_utf_16le d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_utf_16le d) else + if rem < 2 then (t_need d 2; t_fill t_decode_utf_16le d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; decode_utf_16le_lo (r_utf_16 d.i (j + 1) j) d + +(* Encoding guessing. The guess is simple but starting the decoder + after is tedious, uutf's decoders are not designed to put bytes + back in the stream. *) + +let guessed_utf_8 d = (* start decoder after `UTF_8 guess. *) + let b3 d = (* handles the third read byte. *) + let b3 = unsafe_byte d.t 2 in + match utf_8_len.(b3) with + | 0 -> ret decode_utf_8 (malformed d.t 2 1) 1 d + | n -> + d.t_need <- n; d.t_len <- 1; unsafe_set_byte d.t 0 b3; + t_fill t_decode_utf_8 d + in + let b2 d = (* handle second read byte. *) + let b2 = unsafe_byte d.t 1 in + let b3 = if d.t_len > 2 then b3 else decode_utf_8 (* decodes `End *) in + match utf_8_len.(b2) with + | 0 -> ret b3 (malformed d.t 1 1) 1 d + | 1 -> ret b3 (r_utf_8 d.t 1 1) 1 d + | n -> (* copy d.t.(1-2) to d.t.(0-1) and decode *) + d.t_need <- n; + unsafe_set_byte d.t 0 b2; + if (d.t_len < 3) then d.t_len <- 1 else + (d.t_len <- 2; unsafe_set_byte d.t 1 (unsafe_byte d.t 2); ); + t_fill t_decode_utf_8 d + in + let b1 = unsafe_byte d.t 0 in (* handle first read byte. *) + let b2 = if d.t_len > 1 then b2 else decode_utf_8 (* decodes `End *) in + match utf_8_len.(b1) with + | 0 -> ret b2 (malformed d.t 0 1) 1 d + | 1 -> ret b2 (r_utf_8 d.t 0 1) 1 d + | 2 -> + if d.t_len < 2 then ret decode_utf_8 (malformed d.t 0 1) 1 d else + if d.t_len < 3 then ret decode_utf_8 (r_utf_8 d.t 0 2) 2 d else + ret b3 (r_utf_8 d.t 0 2) 2 d + | 3 -> + if d.t_len < 3 + then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d + else ret decode_utf_8 (r_utf_8 d.t 0 3) 3 d + | 4 -> + if d.t_len < 3 + then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d + else (d.t_need <- 4; t_fill t_decode_utf_8 d) + | n -> assert false + +let guessed_utf_16 d be v = (* start decoder after `UTF_16{BE,LE} guess. *) + let decode_utf_16, t_decode_utf_16, t_decode_utf_16_lo, j0, j1 = + if be then decode_utf_16be, t_decode_utf_16be, t_decode_utf_16be_lo, 0, 1 + else decode_utf_16le, t_decode_utf_16le, t_decode_utf_16le_lo, 1, 0 + in + let b3 k d = + if d.t_len < 3 then decode_utf_16 d (* decodes `End *) else + begin (* copy d.t.(2) to d.t.(0) and decode. *) + d.t_need <- 2; d.t_len <- 1; + unsafe_set_byte d.t 0 (unsafe_byte d.t 2); + t_fill k d + end + in + match v with + | `BOM -> ret (b3 t_decode_utf_16) (`Uchar u_bom) 2 d + | `ASCII u -> ret (b3 t_decode_utf_16) (`Uchar u) 2 d + | `Decode -> + match r_utf_16 d.t j0 j1 with + | `Malformed _ | `Uchar _ as v -> ret (b3 t_decode_utf_16) v 2 d + | `Hi hi -> + if d.t_len < 3 + then ret decode_utf_16 (malformed_pair be hi "" 0 0) d.t_len d + else (b3 (t_decode_utf_16_lo hi)) d + +let guess_encoding d = (* guess encoding and start decoder. *) + let setup d = match r_encoding d.t 0 d.t_len with + | `UTF_8 r -> + d.encoding <- `UTF_8; d.k <- decode_utf_8; + begin match r with + | `BOM -> ret decode_utf_8 (`Uchar u_bom) 3 d + | `Decode -> guessed_utf_8 d + | `End -> `End + end + | `UTF_16BE r -> + d.encoding <- `UTF_16BE; d.k <- decode_utf_16be; guessed_utf_16 d true r + | `UTF_16LE r -> + d.encoding <- `UTF_16LE; d.k <- decode_utf_16le; guessed_utf_16 d false r + + in + (t_need d 3; t_fill setup d) + +(* Character post-processors. Used for BOM handling, newline + normalization and position tracking. The [pp_remove_bom] is only + used for the first character to remove a possible initial BOM and + handle UTF-16 endianness recognition. *) + +let nline d = d.col <- 0; d.line <- d.line + 1 (* inlined. *) +let ncol d = d.col <- d.col + 1 (* inlined. *) +let ncount d = d.count <- d.count + 1 (* inlined. *) +let cr d b = d.last_cr <- b (* inlined. *) + +let pp_remove_bom utf16 pp d = function(* removes init. BOM, handles UTF-16. *) +| `Uchar 0xFEFF (* BOM *) -> + if utf16 then (d.encoding <- `UTF_16BE; d.k <- decode_utf_16be); + d.removed_bom <- true; d.pp <- pp; d.k d +| `Uchar 0xFFFE (* BOM reversed from decode_utf_16be *) when utf16 -> + d.encoding <- `UTF_16LE; d.k <- decode_utf_16le; + d.removed_bom <- true; d.pp <- pp; d.k d +| `Malformed _ | `Uchar _ as v -> + d.removed_bom <- false; d.pp <- pp; d.pp d v + +let pp_nln_none d = function +| `Uchar 0x000A (* LF *) as v -> + let last_cr = d.last_cr in + cr d false; ncount d; if last_cr then v else (nline d; v) +| `Uchar 0x000D (* CR *) as v -> cr d true; ncount d; nline d; v +| `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) (* NEL | FF | LS | PS *) as v -> + cr d false; ncount d; nline d; v +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let pp_nln_readline d = function +| `Uchar 0x000A (* LF *) -> + let last_cr = d.last_cr in + cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) +| `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl +| `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) (* NEL | FF | LS | PS *) -> + cr d false; ncount d; nline d; `Uchar d.nl +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let pp_nln_nlf d = function +| `Uchar 0x000A (* LF *) -> + let last_cr = d.last_cr in + cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) +| `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl +| `Uchar 0x0085 (* NEL *) -> cr d false; ncount d; nline d; `Uchar d.nl +| `Uchar (0x000C | 0x2028 | 0x2029) as v (* FF | LS | PS *) -> + cr d false; ncount d; nline d; v +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let pp_nln_ascii d = function +| `Uchar 0x000A (* LF *) -> + let last_cr = d.last_cr in + cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) +| `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl +| `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) as v (* NEL | FF | LS | PS *) -> + cr d false; ncount d; nline d; v +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let decode_fun = function +| `UTF_8 -> decode_utf_8 +| `UTF_16 -> decode_utf_16be (* see [pp_remove_bom]. *) +| `UTF_16BE -> decode_utf_16be +| `UTF_16LE -> decode_utf_16le +| `US_ASCII -> decode_us_ascii +| `ISO_8859_1 -> decode_iso_8859_1 + +let decoder ?nln ?encoding src = + let pp, nl = match nln with + | None -> pp_nln_none, 0x000A (* not used. *) + | Some (`ASCII nl) -> pp_nln_ascii, nl + | Some (`NLF nl) -> pp_nln_nlf, nl + | Some (`Readline nl) -> pp_nln_readline, nl + in + let encoding, k = match encoding with + | None -> `UTF_8, guess_encoding + | Some e -> (e :> decoder_encoding), decode_fun e + in + let i, i_pos, i_max = match src with + | `Manual -> "", 1, 0 (* implies src_rem d = 0. *) + | `Channel _ -> String.create io_buffer_size, 1, 0 (* idem. *) + | `String s -> s, 0, String.length s - 1 + in + { src = (src :> src); encoding; nln = (nln :> nln option); nl; + i; i_pos; i_max; t = String.create 4; t_len = 0; t_need = 0; + removed_bom = false; last_cr = false; line = 1; col = 0; + byte_count = 0; count = 0; + pp = pp_remove_bom (encoding = `UTF_16) pp; k } + +let decode d = d.k d +let decoder_line d = d.line +let decoder_col d = d.col +let decoder_byte_count d = d.byte_count +let decoder_count d = d.count +let decoder_removed_bom d = d.removed_bom +let decoder_src d = d.src +let decoder_nln d = d.nln +let decoder_encoding d = d.encoding +let set_decoder_encoding d e = + d.encoding <- (e :> decoder_encoding); d.k <- decode_fun e + +(* Encode *) + +type dst = [ `Channel of out_channel | `Buffer of Buffer.t | `Manual ] +type encode = [ `Await | `End | `Uchar of uchar ] +type encoder = + { dst : dst; (* output destination. *) + encoding : encoding; (* encoded encoding. *) + mutable o : string; (* current output chunk. *) + mutable o_pos : int; (* next output position to write. *) + mutable o_max : int; (* maximal output position to write. *) + t : string; (* four bytes buffer for overlapping writes. *) + mutable t_pos : int; (* next position to read in [t]. *) + mutable t_max : int; (* maximal position to read in [t]. *) + mutable k : (* encoder continuation. *) + encoder -> encode -> [ `Ok | `Partial ] } + +(* On encodes that overlap two (or more) [e.o] buffers, we encode the + character to the temporary buffer [o.t] and continue with + [tmp_flush] to write this data on the different [e.o] buffers. If + the [e.o] buffers are not too small this is faster than + continuation based byte per byte writes. *) + +let o_rem e = e.o_max - e.o_pos + 1 (* remaining bytes to write in [e.o]. *) +let dst e s j l = (* set [e.o] with [s]. *) + if (j < 0 || l < 0 || j + l > String.length s) then invalid_bounds j l; + e.o <- s; e.o_pos <- j; e.o_max <- j + l - 1 + +let partial k e = function `Await -> k e | `Uchar _ | `End -> invalid_encode () +let flush k e = match e.dst with(* get free storage in [d.o] and [k]ontinue. *) +| `Manual -> e.k <- partial k; `Partial +| `Buffer b -> Buffer.add_substring b e.o 0 e.o_pos; e.o_pos <- 0; k e +| `Channel oc -> output oc e.o 0 e.o_pos; e.o_pos <- 0; k e + +let t_range e max = e.t_pos <- 0; e.t_max <- max +let rec t_flush k e = (* flush [d.t] up to [d.t_max] in [d.i]. *) + let blit e l = + unsafe_blit e.t e.t_pos e.o e.o_pos l; + e.o_pos <- e.o_pos + l; e.t_pos <- e.t_pos + l + in + let rem = o_rem e in + let len = e.t_max - e.t_pos + 1 in + if rem < len then (blit e rem; flush (t_flush k) e) else (blit e len; k e) + +(* Encoders. *) + +let rec encode_utf_8 e v = + let k e = e.k <- encode_utf_8; `Ok in + match v with + | `Await -> k e + | `End -> flush k e + | `Uchar u as v -> + let rem = o_rem e in + if u <= 0x007F then + if rem < 1 then flush (fun e -> encode_utf_8 e v) e else + (unsafe_set_byte e.o e.o_pos u; e.o_pos <- e.o_pos + 1; k e) + else if u <= 0x07FF then + begin + let s, j, k = + if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) + in + unsafe_set_byte s j (0xC0 lor (u lsr 6)); + unsafe_set_byte s (j + 1) (0x80 lor (u land 0x3F)); + k e + end + else if u <= 0xFFFF then + begin + let s, j, k = + if rem < 3 then (t_range e 2; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 3; e.o, j, k) + in + unsafe_set_byte s j (0xE0 lor (u lsr 12)); + unsafe_set_byte s (j + 1) (0x80 lor ((u lsr 6) land 0x3F)); + unsafe_set_byte s (j + 2) (0x80 lor (u land 0x3F)); + k e + end + else + begin + let s, j, k = + if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) + in + unsafe_set_byte s j (0xF0 lor (u lsr 18)); + unsafe_set_byte s (j + 1) (0x80 lor ((u lsr 12) land 0x3F)); + unsafe_set_byte s (j + 2) (0x80 lor ((u lsr 6) land 0x3F)); + unsafe_set_byte s (j + 3) (0x80 lor (u land 0x3F)); + k e + end + +let rec encode_utf_16be e v = + let k e = e.k <- encode_utf_16be; `Ok in + match v with + | `Await -> k e + | `End -> flush k e + | `Uchar u -> + let rem = o_rem e in + if u < 0x10000 then + begin + let s, j, k = + if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) + in + unsafe_set_byte s j (u lsr 8); + unsafe_set_byte s (j + 1) (u land 0xFF); + k e + end else begin + let s, j, k = + if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) + in + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + unsafe_set_byte s j (hi lsr 8); + unsafe_set_byte s (j + 1) (hi land 0xFF); + unsafe_set_byte s (j + 2) (lo lsr 8); + unsafe_set_byte s (j + 3) (lo land 0xFF); + k e + end + +let rec encode_utf_16le e v = (* encode_uft_16be with bytes swapped. *) + let k e = e.k <- encode_utf_16le; `Ok in + match v with + | `Await -> k e + | `End -> flush k e + | `Uchar u -> + let rem = o_rem e in + if u < 0x10000 then + begin + let s, j, k = + if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) + in + unsafe_set_byte s j (u land 0xFF); + unsafe_set_byte s (j + 1) (u lsr 8); + k e + end + else + begin + let s, j, k = + if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) + in + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + unsafe_set_byte s j (hi land 0xFF); + unsafe_set_byte s (j + 1) (hi lsr 8); + unsafe_set_byte s (j + 2) (lo land 0xFF); + unsafe_set_byte s (j + 3) (lo lsr 8); + k e + end + +let encode_fun = function +| `UTF_8 -> encode_utf_8 +| `UTF_16 -> encode_utf_16be +| `UTF_16BE -> encode_utf_16be +| `UTF_16LE -> encode_utf_16le + +let encoder encoding dst = + let o, o_pos, o_max = match dst with + | `Manual -> "", 1, 0 (* implies o_rem e = 0. *) + | `Buffer _ + | `Channel _ -> String.create io_buffer_size, 0, io_buffer_size - 1 + in + { dst = (dst :> dst); encoding = (encoding :> encoding); o; o_pos; o_max; + t = String.create 4; t_pos = 1; t_max = 0; k = encode_fun encoding} + +let encode e v = e.k e (v :> encode) +let encoder_encoding e = e.encoding +let encoder_dst e = e.dst + +(* Manual sources and destinations. *) + +module Manual = struct + let src = src + let dst = dst + let dst_rem = o_rem +end + +(* Strings folders and Buffer encoders *) + +module String = struct + let encoding_guess s = match r_encoding s 0 (max (String.length s) 3) with + | `UTF_8 d -> `UTF_8, (d = `BOM) + | `UTF_16BE d -> `UTF_16BE, (d = `BOM) + | `UTF_16LE d -> `UTF_16LE, (d = `BOM) + + type 'a folder = + 'a -> int -> [ `Uchar of uchar | `Malformed of string ] -> 'a + + let fold_utf_8 f acc s = + let rec loop acc f s i l = + if i = l then acc else + let need = unsafe_array_get utf_8_len (unsafe_byte s i) in + if need = 0 then loop (f acc i (malformed s i 1)) f s (i + 1) l else + let rem = l - i in + if rem < need then f acc i (malformed s i rem) else + loop (f acc i (r_utf_8 s i need)) f s (i + need) l + in + loop acc f s 0 (String.length s) + + let fold_utf_16be f acc s = + let rec loop acc f s i l = + if i = l then acc else + let rem = l - i in + if rem < 2 then f acc i (malformed s i 1) else + match r_utf_16 s i (i + 1) with + | `Uchar _ | `Malformed _ as v -> loop (f acc i v) f s (i + 2) l + | `Hi hi -> + if rem < 4 then f acc i (malformed s i rem) else + loop (f acc i (r_utf_16_lo hi s (i + 2) (i + 3))) f s (i + 4) l + in + loop acc f s 0 (String.length s) + + let fold_utf_16le f acc s = (* [fold_utf_16be], bytes swapped. *) + let rec loop acc f s i l = + if i = l then acc else + let rem = l - i in + if rem < 2 then f acc i (malformed s i 1) else + match r_utf_16 s (i + 1) i with + | `Uchar _ | `Malformed _ as v -> loop (f acc i v) f s (i + 2) l + | `Hi hi -> + if rem < 4 then f acc i (malformed s i rem) else + loop (f acc i (r_utf_16_lo hi s (i + 3) (i + 2))) f s (i + 4) l + in + loop acc f s 0 (String.length s) +end + +module Buffer = struct + let add_utf_8 b u = + let w byte = Buffer.add_char b (unsafe_chr byte) in (* inlined. *) + if u <= 0x007F then + (w u) + else if u <= 0x07FF then + (w (0xC0 lor (u lsr 6)); + w (0x80 lor (u land 0x3F))) + else if u <= 0xFFFF then + (w (0xE0 lor (u lsr 12)); + w (0x80 lor ((u lsr 6) land 0x3F)); + w (0x80 lor (u land 0x3F))) + else + (w (0xF0 lor (u lsr 18)); + w (0x80 lor ((u lsr 12) land 0x3F)); + w (0x80 lor ((u lsr 6) land 0x3F)); + w (0x80 lor (u land 0x3F))) + + let add_utf_16be b u = + let w byte = Buffer.add_char b (unsafe_chr byte) in (* inlined. *) + if u < 0x10000 then (w (u lsr 8); w (u land 0xFF)) else + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + w (hi lsr 8); w (hi land 0xFF); + w (lo lsr 8); w (lo land 0xFF) + + let add_utf_16le b u = (* swapped add_utf_16be. *) + let w byte = Buffer.add_char b (unsafe_chr byte) in (* inlined. *) + if u < 0x10000 then (w (u land 0xFF); w (u lsr 8)) else + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + w (hi land 0xFF); w (hi lsr 8); + w (lo land 0xFF); w (lo lsr 8) +end + +(*--------------------------------------------------------------------------- + Copyright 2012 Daniel C. Bünzli + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. Neither the name of Daniel C. Bünzli nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*) From 29ef8beb3fcafff46de373aab2ce4ba2b691a89d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 18 Mar 2015 09:47:43 -0500 Subject: [PATCH 334/875] Grammar submodule update --- vendor/grammars/css.tmbundle | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/haskell.tmbundle | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/sublime-tea | 2 +- vendor/grammars/sublime-varnish | 2 +- vendor/grammars/sublime_cobol | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vendor/grammars/css.tmbundle b/vendor/grammars/css.tmbundle index bef87ff9..5ba43d76 160000 --- a/vendor/grammars/css.tmbundle +++ b/vendor/grammars/css.tmbundle @@ -1 +1 @@ -Subproject commit bef87ff98730f62cee3bb470f63bd2eb3fb2e4f9 +Subproject commit 5ba43d76d602b07467dfe36cd666c2a0f148ba1f diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index 513db1c4..a2ff3ce8 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit 513db1c44390c4967afe4dd220b9ec4f6a52cc3e +Subproject commit a2ff3ce802fe9a73d3bb221bedaeddee2c6179b8 diff --git a/vendor/grammars/haskell.tmbundle b/vendor/grammars/haskell.tmbundle index 30fa1e28..23800654 160000 --- a/vendor/grammars/haskell.tmbundle +++ b/vendor/grammars/haskell.tmbundle @@ -1 +1 @@ -Subproject commit 30fa1e283244960e520694d8db6189d9b2bde9f5 +Subproject commit 238006540979e74119aa319a3e8acad2cbbb3225 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 78505393..ff10dc87 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 78505393cb1cb03396b06c75788802a077b3a2ff +Subproject commit ff10dc875165e452243d1f24cba33ad16db0c99b diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 610ee6ef..ccc537e8 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 610ee6ef0d6162249374a480c1209c1ddd46a955 +Subproject commit ccc537e8d8e2fa19338967331ea42bf0e406b28f diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index 907eff87..e8a501b8 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit 907eff8769f88e146609d60f9185de2b605e8968 +Subproject commit e8a501b8a05d20b3c26ad91e111d83e686a9b0c0 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index 40df3591..ff3e197e 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit 40df35916158b680eb3d9acb9080a03f7799144c +Subproject commit ff3e197ef0773d4896633f625617870749f1186b diff --git a/vendor/grammars/sublime-tea b/vendor/grammars/sublime-tea index b5f1025e..62b508c9 160000 --- a/vendor/grammars/sublime-tea +++ b/vendor/grammars/sublime-tea @@ -1 +1 @@ -Subproject commit b5f1025e074a29d3d1e133fc0e1b59b1adec986c +Subproject commit 62b508c948bd7c500a80a898a8fa05bdc311c9d1 diff --git a/vendor/grammars/sublime-varnish b/vendor/grammars/sublime-varnish index 9f0710bc..4915dcb3 160000 --- a/vendor/grammars/sublime-varnish +++ b/vendor/grammars/sublime-varnish @@ -1 +1 @@ -Subproject commit 9f0710bc4ea5f2915a2ff9c34977a57904a4a0c6 +Subproject commit 4915dcb3f130b0aedb96badffd963294194f1efe diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index 28bd2b27..a7c77c2d 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit 28bd2b27fc1105efb926cabd8f20fb61b6eeed3b +Subproject commit a7c77c2de0726c53c394da125139ca06ad375983 From ebf10c2cd6a10e23ba3fe05a186f249e1a91a3dd Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 18 Mar 2015 09:50:57 -0500 Subject: [PATCH 335/875] v4.5.2 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 55ba47e1..e943822f 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.1" + VERSION = "4.5.2" end From ae39475133759ab6e7373bdb4e6429785241b94d Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 18 Mar 2015 19:26:10 +0100 Subject: [PATCH 336/875] Fix the type classification of some languages. --- lib/linguist/languages.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 36f1171d..f655539a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -718,7 +718,7 @@ DTrace: ace_mode: c_cpp Darcs Patch: - type: programming + type: data search_term: dpatch aliases: - dpatch @@ -736,13 +736,14 @@ Dart: ace_mode: dart Diff: - type: programming + type: data color: "#88dddd" extensions: - .diff - .patch aliases: - udiff + tm_scope: source.diff ace_mode: diff Dockerfile: @@ -1156,7 +1157,7 @@ Graphviz (DOT): ace_mode: text Groff: - type: programming + type: markup extensions: - .man - '.1' From b587379f4ab9531b546471c6f13f2dfce752c940 Mon Sep 17 00:00:00 2001 From: vitaut Date: Thu, 19 Mar 2015 17:33:52 -0700 Subject: [PATCH 337/875] Add a heuristic to disambiguate between NL and NewLisp --- lib/linguist/heuristics.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 0087bb51..439a0e60 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -270,5 +270,13 @@ module Linguist end end + disambiguate "NL", "NewLisp" do |data| + if /^g3 /.match(data) + Language["NL"] + else + Language["NewLisp"] + end + end + end end From b103232e0e6a7b80c55753a931954a0b13d9e142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AA=E3=81=A4=E3=81=8D?= Date: Sun, 8 Mar 2015 08:07:37 -0700 Subject: [PATCH 338/875] Detect generated source maps --- lib/linguist/generated.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index a87bbc90..b53ae155 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -58,6 +58,7 @@ module Linguist godeps? || generated_by_zephir? || minified_files? || + source_map? || compiled_coffeescript? || generated_parser? || generated_net_docfile? || @@ -96,6 +97,20 @@ module Linguist end end + # Internal: Is the blob a generated source map? + # + # Source Maps usually have .css.map or .js.map extensions. In case they + # are not following the name convention, detect them based on the content. + # + # Returns true or false. + def source_map? + return false unless extname.downcase == '.map' + + name =~ /(\.css|\.js)\.map$/i || # Name convention + lines[0] =~ /^{"version":\d+,/ || # Revision 2 and later begin with the version number + lines[0] =~ /^\/\*\* Begin line maps\. \*\*\/{/ # Revision 1 begins with a magic comment + end + # Internal: Is the blob of JS generated by CoffeeScript? # # CoffeeScript is meant to output JS that would be difficult to From 67e4212f6487725f2bfb189ec84002e832ce15bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AA=E3=81=A4=E3=81=8D?= Date: Mon, 9 Mar 2015 11:48:30 -0700 Subject: [PATCH 339/875] Test detecting generated source maps --- test/fixtures/Data/sourcemap.v1.map | 12 ++++++ test/fixtures/Data/sourcemap.v3.map | 1 + test/test_generated.rb | 59 +++++++++++++++++++---------- 3 files changed, 52 insertions(+), 20 deletions(-) create mode 100644 test/fixtures/Data/sourcemap.v1.map create mode 100644 test/fixtures/Data/sourcemap.v3.map diff --git a/test/fixtures/Data/sourcemap.v1.map b/test/fixtures/Data/sourcemap.v1.map new file mode 100644 index 00000000..35c9b29f --- /dev/null +++ b/test/fixtures/Data/sourcemap.v1.map @@ -0,0 +1,12 @@ +/** Begin line maps. **/{ “file”:”out.js”, "count": 2 } +[0,0,0,0,0,0,1,1,1,1,2] +[2,2,2,2,2,2,3,4,4,4,4,4] +/** Begin file information. **/ +[“a.js”, “b.js”] +[“b.js”, “c.js”, “d.js”] +/** Begin mapping definitions. **/ +["a.js", 1, 34] +["a.js", 5, 2] +["b.js", 1, 3, "event"] +["c.js", 1, 4] +["d.js", 3, 78, "foo"] diff --git a/test/fixtures/Data/sourcemap.v3.map b/test/fixtures/Data/sourcemap.v3.map new file mode 100644 index 00000000..7acd1b9d --- /dev/null +++ b/test/fixtures/Data/sourcemap.v3.map @@ -0,0 +1 @@ +{"version":3,"file":"out.js","sourceRoot":"","sources":["foo.js","bar.js"],"sourcesContent":[null,null],"names":["src","maps","are","fun"],"mappings":"A,AAAB;;ABCDE;"} diff --git a/test/test_generated.rb b/test/test_generated.rb index b714e19e..c8b32811 100644 --- a/test/test_generated.rb +++ b/test/test_generated.rb @@ -5,47 +5,66 @@ class TestGenerated < Minitest::Test class DataLoadedError < StandardError; end - def generated_without_loading_data(name) - blob = File.join(samples_path, name) + def generated_without_loading_data(blob) begin - assert Generated.generated?(blob, lambda { raise DataLoadedError.new }), "#{name} was not recognized as a generated file" + assert Generated.generated?(blob, lambda { raise DataLoadedError.new }), "#{blob} was not recognized as a generated file" rescue DataLoadedError - assert false, "Data was loaded when calling generated? on #{name}" + assert false, "Data was loaded when calling generated? on #{blob}" end end - def generated_loading_data(name) - blob = File.join(samples_path, name) - assert_raises(DataLoadedError, "Data wasn't loaded when calling generated? on #{name}") do + def generated_loading_data(blob) + assert_raises(DataLoadedError, "Data wasn't loaded when calling generated? on #{blob}") do Generated.generated?(blob, lambda { raise DataLoadedError.new }) end end - def test_check_generated_without_loading_data + def generated_fixture_without_loading_data(name) + generated_without_loading_data(File.join(fixtures_path, name)) + end + + def generated_fixture_loading_data(name) + generated_loading_data(File.join(fixtures_path, name)) + end + + def generated_sample_without_loading_data(name) + generated_without_loading_data(File.join(samples_path, name)) + end + + def generated_sample_loading_data(name) + generated_loading_data(File.join(samples_path, name)) + end + + def test_check_generated # Xcode project files - generated_without_loading_data("Binary/MainMenu.nib") - generated_without_loading_data("Dummy/foo.xcworkspacedata") - generated_without_loading_data("Dummy/foo.xcuserstate") + generated_sample_without_loading_data("Binary/MainMenu.nib") + generated_sample_without_loading_data("Dummy/foo.xcworkspacedata") + generated_sample_without_loading_data("Dummy/foo.xcuserstate") # .NET designer file - generated_without_loading_data("Dummu/foo.designer.cs") + generated_sample_without_loading_data("Dummu/foo.designer.cs") # Composer generated composer.lock file - generated_without_loading_data("JSON/composer.lock") + generated_sample_without_loading_data("JSON/composer.lock") # Node modules - generated_without_loading_data("Dummy/node_modules/foo.js") + generated_sample_without_loading_data("Dummy/node_modules/foo.js") # Godep saved dependencies - generated_without_loading_data("Godeps/Godeps.json") - generated_without_loading_data("Godeps/_workspace/src/github.com/kr/s3/sign.go") + generated_sample_without_loading_data("Godeps/Godeps.json") + generated_sample_without_loading_data("Godeps/_workspace/src/github.com/kr/s3/sign.go") # Generated by Zephir - generated_without_loading_data("C/exception.zep.c") - generated_without_loading_data("C/exception.zep.h") - generated_without_loading_data("PHP/exception.zep.php") + generated_sample_without_loading_data("C/exception.zep.c") + generated_sample_without_loading_data("C/exception.zep.h") + generated_sample_without_loading_data("PHP/exception.zep.php") # Minified files - generated_loading_data("JavaScript/jquery-1.6.1.min.js") + generated_sample_loading_data("JavaScript/jquery-1.6.1.min.js") + + # Source Map + generated_fixture_without_loading_data("Data/bootstrap.css.map") + generated_fixture_loading_data("Data/sourcemap.v3.map") + generated_fixture_loading_data("Data/sourcemap.v1.map") end end From cbcadf8e45efeccc792efab163913a311280d42a Mon Sep 17 00:00:00 2001 From: Shane O'Grady Date: Fri, 20 Mar 2015 21:24:38 -0300 Subject: [PATCH 340/875] Add Neovim config file names to VimL language Neovim uses configuration files named `.nvimrc` rather than `.vimrc` See this PR for details neovim/neovim#330 --- lib/linguist/languages.yml | 3 +++ samples/VimL/filenames/.nvimrc | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 samples/VimL/filenames/.nvimrc diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f655539a..ca8151c5 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3203,12 +3203,15 @@ VimL: search_term: vim aliases: - vim + - nvim extensions: - .vim filenames: + - .nvimrc - .vimrc - _vimrc - gvimrc + - nvimrc - vimrc ace_mode: text diff --git a/samples/VimL/filenames/.nvimrc b/samples/VimL/filenames/.nvimrc new file mode 100644 index 00000000..53a65ade --- /dev/null +++ b/samples/VimL/filenames/.nvimrc @@ -0,0 +1,10 @@ +set nocompatible +set ignorecase +set smartcase +set showmatch +set showcmd + +syntax on + +set hlsearch " Highlight searches +set incsearch " Do incremental searching From 6ac51968c6675c7905bc115ad921bfb0609a0fd6 Mon Sep 17 00:00:00 2001 From: Shaun Williams Date: Sat, 21 Mar 2015 11:20:48 -0500 Subject: [PATCH 341/875] add .boot to clojure extensions --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f655539a..9e575bbd 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -522,6 +522,7 @@ Clojure: - .cljscm - .cljx - .hic + - .boot filenames: - riemann.config From 1ac43e0d7d3f4b3bcfaa8c0b8f47ce5bfadfe32d Mon Sep 17 00:00:00 2001 From: Shaun Williams Date: Sat, 21 Mar 2015 11:32:29 -0500 Subject: [PATCH 342/875] reorder .boot to be in order --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9e575bbd..3f0dcc61 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -514,6 +514,7 @@ Clojure: ace_mode: clojure color: "#db5855" extensions: + - .boot - .clj - .cl2 - .cljc @@ -522,7 +523,6 @@ Clojure: - .cljscm - .cljx - .hic - - .boot filenames: - riemann.config From 6462ba70f91b0d2e7a11ba393920e3fd850aff0d Mon Sep 17 00:00:00 2001 From: Shaun Williams Date: Sat, 21 Mar 2015 11:48:52 -0500 Subject: [PATCH 343/875] put .boot after primary .clj extension --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 3f0dcc61..f666d144 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -514,8 +514,8 @@ Clojure: ace_mode: clojure color: "#db5855" extensions: - - .boot - .clj + - .boot - .cl2 - .cljc - .cljs From 8555b20380bcbdcf1ba384b0f7cdd8f413c99a99 Mon Sep 17 00:00:00 2001 From: Shaun Williams Date: Sat, 21 Mar 2015 12:02:20 -0500 Subject: [PATCH 344/875] add .boot Clojure sample --- samples/Clojure/build.boot | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 samples/Clojure/build.boot diff --git a/samples/Clojure/build.boot b/samples/Clojure/build.boot new file mode 100644 index 00000000..6de0bfca --- /dev/null +++ b/samples/Clojure/build.boot @@ -0,0 +1,15 @@ +;; from: https://github.com/boot-clj/boot#configure-task-options + +(set-env! + :source-paths #{"src"} + :dependencies '[[me.raynes/conch "0.8.0"]]) + +(task-options! + pom {:project 'my-project + :version "0.1.0"} + jar {:manifest {"Foo" "bar"}}) + +(deftask build + "Build my project." + [] + (comp (pom) (jar) (install))) From ec46b1a92ec8e242a0dbd64202f9a687938ab8cf Mon Sep 17 00:00:00 2001 From: Alex McLain Date: Tue, 10 Feb 2015 15:16:41 -0800 Subject: [PATCH 345/875] Added NetLinx language. --- .gitmodules | 3 + grammars.yml | 3 + lib/linguist/languages.yml | 18 ++++ samples/NetLinx/projector.axi | 132 ++++++++++++++++++++++++++ samples/NetLinx/volume-array.axs | 158 +++++++++++++++++++++++++++++++ vendor/grammars/sublime-netlinx | 1 + 6 files changed, 315 insertions(+) create mode 100644 samples/NetLinx/projector.axi create mode 100644 samples/NetLinx/volume-array.axs create mode 160000 vendor/grammars/sublime-netlinx diff --git a/.gitmodules b/.gitmodules index 29240331..c2763c40 100644 --- a/.gitmodules +++ b/.gitmodules @@ -645,3 +645,6 @@ [submodule "vendor/grammars/perl.tmbundle"] path = vendor/grammars/perl.tmbundle url = https://github.com/textmate/perl.tmbundle +[submodule "vendor/grammars/sublime-netlinx"] + path = vendor/grammars/sublime-netlinx + url = https://github.com/amclain/sublime-netlinx diff --git a/grammars.yml b/grammars.yml index de69172a..fdca0f84 100644 --- a/grammars.yml +++ b/grammars.yml @@ -475,6 +475,9 @@ vendor/grammars/sublime-idris: - source.idris vendor/grammars/sublime-mask: - source.mask +vendor/grammars/sublime-netlinx: +- source.netlinx +- source.netlinx.erb vendor/grammars/sublime-nginx: - source.nginx vendor/grammars/sublime-nix: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b68baf2b..d73ba42e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1955,6 +1955,24 @@ Nemerle: - .n ace_mode: text +NetLinx: + type: programming + color: "#0000ff" + extensions: + - .axs + - .axi + tm_scope: source.netlinx + ace_mode: text + +NetLinx+ERB: + type: programming + color: "#407fff" + extensions: + - .axs.erb + - .axi.erb + tm_scope: source.netlinx.erb + ace_mode: text + NetLogo: type: programming color: "#ff2b2b" diff --git a/samples/NetLinx/projector.axi b/samples/NetLinx/projector.axi new file mode 100644 index 00000000..f4b53e20 --- /dev/null +++ b/samples/NetLinx/projector.axi @@ -0,0 +1,132 @@ +(*********************************************************** + Mock Projector + + For testing syntax highlighting +************************************************************) + +#if_not_defined MOCK_PROJECTOR +#define MOCK_PROJECTOR 1 +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +dvPROJECTOR = 5001:1:0; + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +// Power States +POWER_STATE_ON = 0; +POWER_STATE_OFF = 1; +POWER_STATE_WARMING = 2; +POWER_STATE_COOLING = 3; + +// Inputs +INPUT_HDMI = 0; +INPUT_VGA = 1; +INPUT_COMPOSITE = 2; +INPUT_SVIDEO = 3; + +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +#include 'amx-lib-log' + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +struct projector_t +{ + integer power_state; + integer input; + integer lamp_hours; +} + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +volatile projector_t proj_1; + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) + +define_function initialize(projector_t self) +{ + self.power_state = POWER_STATE_OFF; + self.input = INPUT_HDMI; + self.lamp_hours = 0; +} + +define_function switch_input(projector_t self, integer input) +{ + self.input = input; + print(LOG_LEVEL_INFO, "'Projector set to input: ', itoa(input)"); +} + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +initialize(proj_1); + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +data_event[dvPROJECTOR] +{ + string: + { + parse_message(data.text); + } + + command: {} + online: {} + offline: {} +} + +button_event[dvTP, BTN_HDMI] +button_event[dvTP, BTN_VGA] +button_event[dvTP, BTN_COMPOSITE] +button_event[dvTP, BTN_SVIDEO] +{ + push: + { + switch (button.input.channel) + { + case BTN_HDMI: switch_input(proj_1, INPUT_HDMI); + case BTN_VGA: switch_input(proj_1, INPUT_VGA); + case BTN_COMPOSITE: switch_input(proj_1, INPUT_COMPOSITE); + case BTN_SVIDEO: switch_input(proj_1, INPUT_SVIDEO); + } + } + + release: {} +} + +(***********************************************************) +(* THE MAINLINE GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +[dvTP, BTN_POWER_ON] = (proj_1.power_state == POWER_STATE_ON); +[dvTP, BTN_POWER_OFF] = (proj_1.power_state == POWER_STATE_OFF); + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) +#end_if diff --git a/samples/NetLinx/volume-array.axs b/samples/NetLinx/volume-array.axs new file mode 100644 index 00000000..902b86ac --- /dev/null +++ b/samples/NetLinx/volume-array.axs @@ -0,0 +1,158 @@ +(*********************************************************** + AMX VOLUME CONTROL + VOLUME ARRAY EXAMPLE + + Website: https://sourceforge.net/projects/amx-lib-volume/ + + + This application demonstrates the use of volume control + arrays using the amx-lib-volume library. + + Volume control operation can be viewed by watching the + master's internal diagnostic output. + + I/O PORT CONNECTIONS: + Ch 1: Volume Up Button + Ch 2: Volume Down Button +************************************************************ +Copyright 2011, 2012, 2014 Alex McLain + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +************************************************************) + +PROGRAM_NAME='volume array' +(***********************************************************) +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* REV HISTORY: *) +(***********************************************************) +(* + $History: See version control repository. +*) +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +// Include the volume control library. +#include 'amx-lib-volume' + +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +dvDebug = 0:0:0; // For debug output. + +dvIO = 36000:1:0; // Volume up/down button connections. + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +// Volume control indexes. +MIC1 = 1; // Microphone 1. +MIC2 = 2; // Microphone 2. +MIC3 = 3; // Microphone 3. +MIC4 = 4; // Microphone 4. +WLS1 = 5; // Wireless mic 1. +WLS2 = 6; // Wireless mic 2. +IPOD = 7; // iPod input. +CD = 8; // CD player input. + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +// Define a volume control array for the input devices. +volume inputs[8]; + +(***********************************************************) +(* LATCHING DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_LATCHING + +(***********************************************************) +(* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_MUTUALLY_EXCLUSIVE + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) +(* EXAMPLE: DEFINE_FUNCTION () *) +(* EXAMPLE: DEFINE_CALL '' () *) + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +// Initialize the array of volume controls. +volArrayInit(inputs, 0, VOL_UNMUTED, 10000, 20000, 5); + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +// Volume Up +button_event[dvIO, 1] +{ + PUSH: + { + volArrayIncrement(inputs); // Increment the volume up a step. + send_string dvDebug, "'Volume Up MIC1: ', itoa(volGetLevel(inputs[MIC1]))"; + send_string dvDebug, "'Volume Up MIC2: ', itoa(volGetLevel(inputs[MIC2]))"; + send_string dvDebug, "'Volume Up MIC3: ', itoa(volGetLevel(inputs[MIC3]))"; + send_string dvDebug, "'Volume Up MIC4: ', itoa(volGetLevel(inputs[MIC4]))"; + send_string dvDebug, "'Volume Up WLS1: ', itoa(volGetLevel(inputs[WLS1]))"; + send_string dvDebug, "'Volume Up WLS2: ', itoa(volGetLevel(inputs[WLS2]))"; + send_string dvDebug, "'Volume Up IPOD: ', itoa(volGetLevel(inputs[IPOD]))"; + send_string dvDebug, "'Volume Up CD: ', itoa(volGetLevel(inputs[CD]))"; + } +} + +// Volume Down +button_event[dvIO, 2] +{ + PUSH: + { + volArrayDecrement(inputs); // Decrement the volume down a step. + send_string dvDebug, "'Volume Dn MIC1: ', itoa(volGetLevel(inputs[MIC1]))"; + send_string dvDebug, "'Volume Dn MIC2: ', itoa(volGetLevel(inputs[MIC2]))"; + send_string dvDebug, "'Volume Dn MIC3: ', itoa(volGetLevel(inputs[MIC3]))"; + send_string dvDebug, "'Volume Dn MIC4: ', itoa(volGetLevel(inputs[MIC4]))"; + send_string dvDebug, "'Volume Dn WLS1: ', itoa(volGetLevel(inputs[WLS1]))"; + send_string dvDebug, "'Volume Dn WLS2: ', itoa(volGetLevel(inputs[WLS2]))"; + send_string dvDebug, "'Volume Dn IPOD: ', itoa(volGetLevel(inputs[IPOD]))"; + send_string dvDebug, "'Volume Dn CD: ', itoa(volGetLevel(inputs[CD]))"; + } +} + +(***********************************************************) +(* THE ACTUAL PROGRAM GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) diff --git a/vendor/grammars/sublime-netlinx b/vendor/grammars/sublime-netlinx new file mode 160000 index 00000000..704581c4 --- /dev/null +++ b/vendor/grammars/sublime-netlinx @@ -0,0 +1 @@ +Subproject commit 704581c48716c4414fd5260a6b71788a05cf7bc2 From b302863a4dbdb1be041bbbd5a3227ca0e26d2418 Mon Sep 17 00:00:00 2001 From: Alex McLain Date: Sat, 21 Mar 2015 18:44:51 -0700 Subject: [PATCH 346/875] Added additional sample files. --- samples/NetLinx+ERB/sample.axi.erb | 78 ++++++++++++++++++++++++++++++ samples/NetLinx+ERB/sample.axs.erb | 78 ++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 samples/NetLinx+ERB/sample.axi.erb create mode 100644 samples/NetLinx+ERB/sample.axs.erb diff --git a/samples/NetLinx+ERB/sample.axi.erb b/samples/NetLinx+ERB/sample.axi.erb new file mode 100644 index 00000000..92fa9b03 --- /dev/null +++ b/samples/NetLinx+ERB/sample.axi.erb @@ -0,0 +1,78 @@ +(*********************************************************** + Sample File + + For testing syntax highlighting +************************************************************) + +#if_not_defined Sample +#define Sample 1 +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +<% global_constant_justify = 20 -%> +// Video Source Select Buttons +<%= + video_sources = { + BTN_VID_FOH_PC: { btn: 11, input: :VID_SRC_FOH_PC }, + BTN_VID_STAGE_PC: { btn: 12, input: :VID_SRC_STAGE_PC }, + BTN_VID_BLURAY: { btn: 13, input: :VID_SRC_BLURAY }, + } + + print_constant_hash video_sources.remap(:btn), + justify: global_constant_justify +%> + +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +// Video Source Select +<%= + justify group(video_sources.remap :input) { |name, input| + "[#{@dvTP}, #{name}] = (outputs[VID_DEST_PROJECTOR].input == #{input});" + } +%> + +(***********************************************************) +(* THE MAINLINE GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) +#end_if diff --git a/samples/NetLinx+ERB/sample.axs.erb b/samples/NetLinx+ERB/sample.axs.erb new file mode 100644 index 00000000..92fa9b03 --- /dev/null +++ b/samples/NetLinx+ERB/sample.axs.erb @@ -0,0 +1,78 @@ +(*********************************************************** + Sample File + + For testing syntax highlighting +************************************************************) + +#if_not_defined Sample +#define Sample 1 +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +<% global_constant_justify = 20 -%> +// Video Source Select Buttons +<%= + video_sources = { + BTN_VID_FOH_PC: { btn: 11, input: :VID_SRC_FOH_PC }, + BTN_VID_STAGE_PC: { btn: 12, input: :VID_SRC_STAGE_PC }, + BTN_VID_BLURAY: { btn: 13, input: :VID_SRC_BLURAY }, + } + + print_constant_hash video_sources.remap(:btn), + justify: global_constant_justify +%> + +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +// Video Source Select +<%= + justify group(video_sources.remap :input) { |name, input| + "[#{@dvTP}, #{name}] = (outputs[VID_DEST_PROJECTOR].input == #{input});" + } +%> + +(***********************************************************) +(* THE MAINLINE GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) +#end_if From 63f54bdf06a20c715c1161f551a8e5fe6e7b966a Mon Sep 17 00:00:00 2001 From: Oldes Date: Mon, 23 Mar 2015 10:43:39 +0100 Subject: [PATCH 347/875] Added grammar submodule for Red language --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Sublime-Red | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Sublime-Red diff --git a/.gitmodules b/.gitmodules index 29240331..9badd674 100644 --- a/.gitmodules +++ b/.gitmodules @@ -645,3 +645,6 @@ [submodule "vendor/grammars/perl.tmbundle"] path = vendor/grammars/perl.tmbundle url = https://github.com/textmate/perl.tmbundle +[submodule "vendor/grammars/Sublime-Red"] + path = vendor/grammars/Sublime-Red + url = https://github.com/Oldes/Sublime-Red diff --git a/grammars.yml b/grammars.yml index de69172a..ca828aa8 100644 --- a/grammars.yml +++ b/grammars.yml @@ -113,6 +113,8 @@ vendor/grammars/Sublime-QML: - source.qml vendor/grammars/Sublime-REBOL: - source.rebol +vendor/grammars/Sublime-Red: +- source.red vendor/grammars/Sublime-SQF-Language: - source.sqf vendor/grammars/Sublime-Text-2-OpenEdge-ABL: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b68baf2b..45802128 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2637,7 +2637,7 @@ Red: - .reds aliases: - red/system - tm_scope: none + tm_scope: source.red ace_mode: text Redcode: diff --git a/vendor/grammars/Sublime-Red b/vendor/grammars/Sublime-Red new file mode 160000 index 00000000..4c84201c --- /dev/null +++ b/vendor/grammars/Sublime-Red @@ -0,0 +1 @@ +Subproject commit 4c84201cd2e25d4c2b714358110fae7488c65593 From cbaa3ca6f4ad98d6f5b7c91b855008c9006c7bc7 Mon Sep 17 00:00:00 2001 From: Oldes Date: Mon, 23 Mar 2015 11:38:07 +0100 Subject: [PATCH 348/875] Adding tm_scope for REBOL language and removing REBOL from LICENSE_WHITELIST as now is license available in the Sublime-REBOL project. --- lib/linguist/languages.yml | 1 + test/test_grammars.rb | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b68baf2b..b19519f1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2628,6 +2628,7 @@ Rebol: - .r3 - .rebol ace_mode: text + tm_scope: source.rebol Red: type: programming diff --git a/test/test_grammars.rb b/test/test_grammars.rb index c5fbee4e..88624ae8 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -13,7 +13,6 @@ class TestGrammars < Minitest::Test # These grammars have no license but have been grandfathered in. New grammars # must have a license that allows redistribution. "vendor/grammars/Sublime-Lasso", - "vendor/grammars/Sublime-REBOL", "vendor/grammars/x86-assembly-textmate-bundle" ].freeze From 0f6c2afbf6f678fb2abaa583a260dfcd1df38e66 Mon Sep 17 00:00:00 2001 From: Oldes Date: Mon, 23 Mar 2015 15:58:01 +0100 Subject: [PATCH 349/875] Sublime-REBOL submodule updated. --- vendor/grammars/Sublime-REBOL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/Sublime-REBOL b/vendor/grammars/Sublime-REBOL index 977ba9bb..102402f7 160000 --- a/vendor/grammars/Sublime-REBOL +++ b/vendor/grammars/Sublime-REBOL @@ -1 +1 @@ -Subproject commit 977ba9bb5881e4eec0f144f9f8dc23b0137cae00 +Subproject commit 102402f71aa3a7770b0c06c0183eff1be78e7280 From 76828c45c7509bc4780f42bc4fd40aa0785a06ba Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sat, 21 Mar 2015 12:39:16 +0100 Subject: [PATCH 350/875] Fix Emacs modeline in DTrace sample. Apparently, the DTrace mode for Emacs is called dtrace-script: https://github.com/dotemacs/dtrace-script-mode --- lib/linguist/languages.yml | 2 ++ samples/DTrace/javascript-trace.d | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7d89d65e..487ab648 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -711,6 +711,8 @@ DM: DTrace: type: programming + aliases: + - dtrace-script extensions: - .d interpreters: diff --git a/samples/DTrace/javascript-trace.d b/samples/DTrace/javascript-trace.d index 258c6cd2..0acbaa97 100644 --- a/samples/DTrace/javascript-trace.d +++ b/samples/DTrace/javascript-trace.d @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: dtrace-script; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * From 7df872eb7f5e0c7bfc527ae5124edb57c2507194 Mon Sep 17 00:00:00 2001 From: Andy Delcambre Date: Mon, 23 Mar 2015 14:33:03 -0600 Subject: [PATCH 351/875] Bump rugged to latest release --- github-linguist.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 983db982..7cbc1c15 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.add_dependency 'charlock_holmes', '~> 0.7.3' s.add_dependency 'escape_utils', '~> 1.0.1' s.add_dependency 'mime-types', '>= 1.19' - s.add_dependency 'rugged', '~> 0.22.0b4' + s.add_dependency 'rugged', '~> 0.23.0b1' s.add_development_dependency 'minitest', '>= 5.0' s.add_development_dependency 'mocha' From 7c66301583f9ba46a9e3bcc633fc92d6d1293088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AA=E3=81=A4=E3=81=8D?= Date: Tue, 24 Mar 2015 01:32:24 -0700 Subject: [PATCH 352/875] .storyboard and .xib as XML --- lib/linguist/languages.yml | 2 ++ samples/XML/Application.xib | 20 ++++++++++++++++++++ samples/XML/Storyboard.storyboard | 7 +++++++ 3 files changed, 29 insertions(+) create mode 100644 samples/XML/Application.xib create mode 100644 samples/XML/Storyboard.storyboard diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 487ab648..d0907629 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3311,6 +3311,7 @@ XML: - .rss - .scxml - .srdf + - .storyboard - .stTheme - .sublime-snippet - .targets @@ -3334,6 +3335,7 @@ XML: - .x3d - .xacro - .xaml + - .xib - .xlf - .xliff - .xmi diff --git a/samples/XML/Application.xib b/samples/XML/Application.xib new file mode 100644 index 00000000..6c2e5f4d --- /dev/null +++ b/samples/XML/Application.xib @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/samples/XML/Storyboard.storyboard b/samples/XML/Storyboard.storyboard new file mode 100644 index 00000000..673e0f7e --- /dev/null +++ b/samples/XML/Storyboard.storyboard @@ -0,0 +1,7 @@ + + + + + + + From aa7aae7808a88478c224c4fa5bb54b47e504edaa Mon Sep 17 00:00:00 2001 From: Ben Draut Date: Tue, 24 Mar 2015 08:22:00 -0600 Subject: [PATCH 353/875] Fix categorization for Racket shell scripts. The current implementation categorizes shell scripts written in Racket as Scheme, which is incorrect. For example: ```racket \#!/usr/bin/env racket \#lang racket "Hello World!" ``` This should be categorized as Racket, not Scheme. [This file][1] demonstrates the problem in an existing repository. [1]: https://github.com/drautb/sketchbook/blob/master/racket/sublime-project-generator/generate-sublime-project.rkt --- lib/linguist/languages.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 487ab648..b6d98e02 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2596,6 +2596,8 @@ Racket: - .rktd - .rktl - .scrbl + interpreters: + - racket tm_scope: source.racket ace_mode: lisp @@ -2850,7 +2852,6 @@ Scheme: - .ss interpreters: - guile - - racket - bigloo - chicken ace_mode: scheme From 65ae444791cfc2b1c81ada103c8e39bec2c6a65a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 24 Mar 2015 12:26:40 -0500 Subject: [PATCH 354/875] Updating grammars --- vendor/grammars/ColdFusion | 2 +- vendor/grammars/Julia.tmbundle | 2 +- vendor/grammars/css.tmbundle | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/haskell.tmbundle | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/sublime-netlinx | 2 +- vendor/grammars/sublime-rust | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vendor/grammars/ColdFusion b/vendor/grammars/ColdFusion index ee54c805..3e7e68b1 160000 --- a/vendor/grammars/ColdFusion +++ b/vendor/grammars/ColdFusion @@ -1 +1 @@ -Subproject commit ee54c80589c1618c5a8c55afdc83f770d7bdf44b +Subproject commit 3e7e68b14dc3f55082e4d449666d3fde3f024a02 diff --git a/vendor/grammars/Julia.tmbundle b/vendor/grammars/Julia.tmbundle index 6541d86c..774831f5 160000 --- a/vendor/grammars/Julia.tmbundle +++ b/vendor/grammars/Julia.tmbundle @@ -1 +1 @@ -Subproject commit 6541d86c1f6f19a3a0a26917e9dd81b043b37bc3 +Subproject commit 774831f52a1b6d5380ca1cc4a2dae278b66ec199 diff --git a/vendor/grammars/css.tmbundle b/vendor/grammars/css.tmbundle index 5ba43d76..2ce91736 160000 --- a/vendor/grammars/css.tmbundle +++ b/vendor/grammars/css.tmbundle @@ -1 +1 @@ -Subproject commit 5ba43d76d602b07467dfe36cd666c2a0f148ba1f +Subproject commit 2ce91736ca17bbf72ca13ef82ff23c90cc01bf8f diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index a2ff3ce8..b31bec31 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit a2ff3ce802fe9a73d3bb221bedaeddee2c6179b8 +Subproject commit b31bec3123dda07661ac42febb5dbec2377bcaeb diff --git a/vendor/grammars/haskell.tmbundle b/vendor/grammars/haskell.tmbundle index 23800654..c3137ccc 160000 --- a/vendor/grammars/haskell.tmbundle +++ b/vendor/grammars/haskell.tmbundle @@ -1 +1 @@ -Subproject commit 238006540979e74119aa319a3e8acad2cbbb3225 +Subproject commit c3137ccc287c096f6436a80d71b32348df1102cc diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index ff10dc87..3aa61742 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit ff10dc875165e452243d1f24cba33ad16db0c99b +Subproject commit 3aa617428e69e0f805c13085889bce66691d0ec3 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index ccc537e8..39b09967 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit ccc537e8d8e2fa19338967331ea42bf0e406b28f +Subproject commit 39b0996782f37a150d6b0df2eb64996417d95c41 diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index e8a501b8..b1bb2979 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit e8a501b8a05d20b3c26ad91e111d83e686a9b0c0 +Subproject commit b1bb29792a749f247cbbfbaa937fff0f47d7d8a4 diff --git a/vendor/grammars/sublime-netlinx b/vendor/grammars/sublime-netlinx index 704581c4..351acb37 160000 --- a/vendor/grammars/sublime-netlinx +++ b/vendor/grammars/sublime-netlinx @@ -1 +1 @@ -Subproject commit 704581c48716c4414fd5260a6b71788a05cf7bc2 +Subproject commit 351acb37459de1195ce29a2ec0e54ca51cb27568 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index ff3e197e..a1c3d2dc 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit ff3e197ef0773d4896633f625617870749f1186b +Subproject commit a1c3d2dc96c68326416c3b8c8402a8020d29b94d From 44c3d47b307e4795e944e27c94e14dd8f5834eb2 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 24 Mar 2015 12:33:35 -0500 Subject: [PATCH 355/875] Bumping to v4.5.3 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index e943822f..6cfb3da9 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.2" + VERSION = "4.5.3" end From bde843b67f6405964402a547f23006a26d12b2dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dorian=20Mari=C3=A9?= Date: Tue, 24 Mar 2015 18:59:53 +0100 Subject: [PATCH 356/875] Add .ruby to the list of ruby file extensions Can be found in Rails partial, eg `.html.ruby` --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index fd49bd5d..0805b151 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2713,6 +2713,7 @@ Ruby: - .rbw - .rbx - .ru + - .ruby - .thor - .watchr interpreters: From e538f72b639611793a672aa1a6892dc888cde090 Mon Sep 17 00:00:00 2001 From: "Stuart P. Bentley" Date: Tue, 24 Mar 2015 14:34:13 -0700 Subject: [PATCH 357/875] Use #000080 for Lua color This is the color of the official Lua logo, as seen at http://www.lua.org/images/ --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index fd49bd5d..46625f3c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1730,7 +1730,7 @@ LoomScript: Lua: type: programming ace_mode: lua - color: "#fa1fa1" + color: "#000080" extensions: - .lua - .fcgi From b61e33a49e91df1085f7fdca86be70473f61bfe1 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 25 Mar 2015 08:11:40 +0100 Subject: [PATCH 358/875] Add interpreters for OCaml. --- lib/linguist/languages.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 46625f3c..dd4e0981 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2075,6 +2075,10 @@ OCaml: - .mli - .mll - .mly + interpreters: + - ocaml + - ocamlrun + tm_scope: source.ocaml ObjDump: type: data From babe733bf47d660dd0cf84d008ed3f8c2a61430b Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Wed, 25 Mar 2015 12:34:33 +0000 Subject: [PATCH 359/875] Elixir: Add mix.lock filename --- lib/linguist/languages.yml | 2 ++ samples/Elixir/filenames/mix.lock | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 samples/Elixir/filenames/mix.lock diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 46625f3c..9cc5a882 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -824,6 +824,8 @@ Elixir: - .ex - .exs ace_mode: elixir + filenames: + - mix.lock Elm: type: programming diff --git a/samples/Elixir/filenames/mix.lock b/samples/Elixir/filenames/mix.lock new file mode 100644 index 00000000..830b074c --- /dev/null +++ b/samples/Elixir/filenames/mix.lock @@ -0,0 +1,10 @@ +%{"cowboy": {:hex, :cowboy, "1.0.0"}, + "cowlib": {:hex, :cowlib, "1.0.1"}, + "hackney": {:hex, :hackney, "0.14.3"}, + "hound": {:hex, :hound, "0.6.0"}, + "httpoison": {:hex, :httpoison, "0.5.0"}, + "idna": {:hex, :idna, "1.0.1"}, + "phoenix": {:hex, :phoenix, "0.10.0"}, + "plug": {:hex, :plug, "0.11.1"}, + "poison": {:hex, :poison, "1.3.1"}, + "ranch": {:hex, :ranch, "1.0.0"}} From 5dcc4d74ecd75f7f09a8962b385a3d895d6f37f9 Mon Sep 17 00:00:00 2001 From: "Christopher L. Simons" Date: Wed, 25 Mar 2015 14:35:16 -0400 Subject: [PATCH 360/875] intro.wisp: Fixed typographical error ('rather then' -> 'rather than'). --- samples/wisp/intro.wisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/wisp/intro.wisp b/samples/wisp/intro.wisp index 6b817dac..b222b6e2 100644 --- a/samples/wisp/intro.wisp +++ b/samples/wisp/intro.wisp @@ -258,7 +258,7 @@ My name is wisp!" ;; evaluating the reference to the value of the corresponding variable. foo -;; If you wish to refer to the literal symbol, rather then reference you +;; If you wish to refer to the literal symbol, rather than reference you ;; could use (quote foo) ;; or more usually From 738be195ef93503fe445eab229254a5fabfa63e4 Mon Sep 17 00:00:00 2001 From: Patrick Toomey Date: Wed, 25 Mar 2015 14:18:46 -0600 Subject: [PATCH 361/875] Bump escape-utils to 1.1.0 --- github-linguist.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 7cbc1c15..8f3fe075 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |s| s.executables << 'linguist' s.add_dependency 'charlock_holmes', '~> 0.7.3' - s.add_dependency 'escape_utils', '~> 1.0.1' + s.add_dependency 'escape_utils', '~> 1.1.0' s.add_dependency 'mime-types', '>= 1.19' s.add_dependency 'rugged', '~> 0.23.0b1' From 2ba6ecefe50dc8cbecc753f1a216e137fc31a0d1 Mon Sep 17 00:00:00 2001 From: TSUYUSATO Kitsune Date: Thu, 26 Mar 2015 12:08:46 +0900 Subject: [PATCH 362/875] Fix ada aliases --- lib/linguist/languages.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 50a0465f..c506acfa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -118,7 +118,8 @@ Ada: - .ada - .ads aliases: - - ada95ada2005 + - ada95 + - ada2005 ace_mode: ada Agda: From 4623b4a83efb2dc1b7cfc4505c79abd0792c9693 Mon Sep 17 00:00:00 2001 From: Joe Wicentowski Date: Thu, 26 Mar 2015 13:18:49 -0400 Subject: [PATCH 363/875] Add .odd to XML extensions See discussion at #2238. [ODD](http://en.wikipedia.org/wiki/Text_Encoding_Initiative#ODD) is an XML-based vocabulary for defining schemas for Text Encoding Initiative (TEI) projects, used widely in the humanities. ODD should be rendered using XML syntax but is currently displayed as plain text (see [this example](https://github.com/wolfgangmm/tei-simple-pm/blob/master/odd/teisimple.odd)). There are [nearly 500 ODD files](https://github.com/search?q=extension%3Aodd+NOT+djfhdirijdskqdhd&type=Code&utf8=%E2%9C%93) in GitHub, and this number is projected to grow. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 50a0465f..24ee7ee4 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3326,6 +3326,7 @@ XML: - .mxml - .nproj - .nuspec + - .odd - .osm - .plist - .pluginspec From fc9beb58aa807ebe6a96bfad5a5241dbd0533782 Mon Sep 17 00:00:00 2001 From: Joe Wicentowski Date: Thu, 26 Mar 2015 14:00:17 -0400 Subject: [PATCH 364/875] Add sample TEI ODD file (.odd) --- tei-odd-sample.odd | 1304 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1304 insertions(+) create mode 100644 tei-odd-sample.odd diff --git a/tei-odd-sample.odd b/tei-odd-sample.odd new file mode 100644 index 00000000..a6a736c4 --- /dev/null +++ b/tei-odd-sample.odd @@ -0,0 +1,1304 @@ + + + + + + + TEI Simple + + + TEI Consortium + + Distributed under a + Creative Commons Attribution-ShareAlike 3.0 Unported License + +

Copyright 2014 TEI Consortium.

+

All rights reserved.

+

Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met:

+ + Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +

This software is provided by the copyright holders and contributors "as is" and + any express or implied warranties, including, but not limited to, the implied + warranties of merchantability and fitness for a particular purpose are + disclaimed. In no event shall the copyright holder or contributors be liable + for any direct, indirect, incidental, special, exemplary, or consequential + damages (including, but not limited to, procurement of substitute goods or + services; loss of use, data, or profits; or business interruption) however + caused and on any theory of liability, whether in contract, strict liability, + or tort (including negligence or otherwise) arising in any way out of the use + of this software, even if advised of the possibility of such damage.

+
+

TEI material can be licensed differently depending on the use you intend to make + of it. Hence it is made available under both the CC+BY and BSD-2 licences. The + CC+BY licence is generally appropriate for usages which treat TEI content as data + or documentation. The BSD-2 licence is generally appropriate for usage of TEI + content in a software environment. For further information or clarification, + please contact the TEI Consortium.

+
+
+ +

created ab initio during a meeting in Oxford

+
+
+
+ + + + + TEI Simple + + Sebastian Rahtz + Brian Pytlik Zillig + Martin Mueller + Version 0.1: 30th November 2014 + + + +
+ Summary +

The TEI Simple project aims to define a highly-constrained and prescriptive subset of the Text Encoding Initiative (TEI) Guidelines + suited to the representation of early modern and modern books, a formally-defined set of + processing rules which permit modern web applications to easily present and analyze the + encoded texts, mapping to other ontologies, and processes to describe the encoding status + and richness of a TEI digital text. This document describes + the constrained subset

+
+
+ + Background +

The Text Encoding Initiative (TEI) has developed over 20 years into a key technology in + text-centric humanities disciplines, with an extremely wide range of applications, from + diplomatic editions to dictionaries, from prosopography to speech transcription and + linguistic analysis. It has been able to achieve its range of use by adopting a descriptive rather than prescriptive approach + , by recommending customization to suit particular projects, and by + eschewing any attempt to dictate how the digital texts should be rendered or exchanged. + However, this flexibility has come at the cost of relatively limited success in + interoperability. In our view there is a distinct set of uses (primarily in the area of + digitized ‘European’-style books) that would benefit from a prescriptive recipe for digital text; this will sit alongside other + domain-specific, constrained TEI customizations, such as the very successful Epidoc in the epigraphic community. TEI-Simple may become a prototype + for a new family of constrained customizations. For instance, a TEI Simple MS for + manuscript based work could be built on top of the ENRICH project, drawing on many of the + lessons and some of the code for TEI Simple.

+

The TEI has long maintained an introductory subset (TEI Lite), and a constrained + customization for use in outsourcing production to commercial vendors (TEI Tite), but both + of these permit enormous variation, and have nothing to say about processing. The present + project can be viewed in some ways as a revision of TEI Lite, re-examining the basis of + the choices therein, focusing it for a more specific area, and adding a "cradle to grave" + processing model that associates the TEI Simple schema with explicit and standardized + options for displaying and querying texts. This means being able to specify what a + programmer should do with particular TEI elements when they are encountered, allowing + programmers to build stylesheets that work for everybody and to query a corpus of + documents reliably.

+

This project, TEI Simple, focuses on interoperability, machine generation, and + low-cost integration. The TEI architecture facilitates customizations of many kinds; TEI + Simple aims to produce a complete 'out of the box' customization which meets the needs of + the many users for whom the task of creating a customization is daunting or seems + irrelevant. TEI Simple in no way intends to constrain the expressive liberty of encoders + who do not think that it is either possible or desirable to follow this path. It does, + however, promise to make life easier for those who think there is some virtue in + travelling that path as far as it will take you, which for quite a few projects will be + far enough. Some users will never feel the need to move beyond it, others will outgrow it, + and when they do they will have learned enough to do so.

+

A major driver for this project is the texts created by phase 1 of the EEBO-TCP project, + which were placed in the public domain on 1 January 2015. Another 45,000 texts will + join over the following five years, creating by 2020 an archive of 70,000 consistently + encoded books published in England from 1475 to 1700, including works of literature, + philosophy, politics, religion, geography, science and all other areas of human endeavor. + When we compare the query potential of the EEBO TCP texts in their current and quite + simple encoding with flat file versions of those text, it is clear that the difference in + query potential is very high, especially if you add to that coarse encoding simple forms + of linguistic annotation or named entity tagging that can be added in a largely + algorithmic fashion. During 2012 and 2013 extensive work has been undertaken at + Northwestern, Michigan and Oxford to enrich these texts and bring them into line with the + current TEI Guidelines (where necessary working with the TEI to modify the Guidelines). + TEI Simple uses this corpus as a point of departure and will provide its users with a + friendlier environment for manipulating EEBO texts in various projects. But TEI Simple + should not be understood as an EEBO specific project. We believe that, given the + extraordinary degree of internal diversity in the EEBO source files, a project that starts + from them can, with appropriate modifications, accommodate a wide range of printed texts + differing in language, genre, or time and place of origin.

+
+
+ The TEI Simple schema + + + + + + + + + + + + +
+ The TEI infrastructure + + + +
+
+ The header +

The default set of elements for the header are loaded using the + header module. In addition, elements from other modules are + loaded, if they are tagged in the classification as being needed for the header + only.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Elements which are only intended to be used in the header are banned from the + text, using a Schematron rule.

+ + + +
+
+
+ Transcription +

In order to support the sourcedoc and facsimile elements, the + basic transcriptional elements are loaded, and two attribute classes.

+ + + + + + + + + + + + + + + + + + + + + +
+
+ Attribute classes + +

The tei module brings with it a default set of attribute classes. + We need some more specialist ones from other modules, and to delete some + default ones which we don't plan to use.

+ + + + + + + +

Some uncommon attributes are removed from global linking.

+ + + + + + + + +

URLs have a constraint that a local pointer must have a corresponding ID.

+ + + + + + + + Error: Every + local pointer in "" must point to + an ID in this document () + + + + + + +

Constrained value lists are added to attribute classes where possible.

+ + + + + + + above the line + + + below the line + + + + at the top of the page + + + at the top right of the page + + + at the top left of the page + + + at the top center of the page + + + + at the bottom right of the page + + + + at the bottom left of the page + + + + at the bottom center of the page + + + + at the foot of the page + + + underneath a table + + + + + + + + in the outer margin + + + + in the left margin + + + + in the right margin + + + on the opposite, i.e. facing, page. + + + on the other side of the leaf. + + + at the end of the volume. + + + at the end the current division. + + + at the end the current paragraph. + + + + within the body of the text. + + + in a predefined space, for example left by an earlier + scribe. + + + formatted like a quotation + + + + + + + + + + + characters + + + + + lines + + + + pages + + + + words + + + + centimetres + + + millimetre + + + inches + + + + + + + + + + + Error: Each of + the rendition values in "" + must point to a local ID or to a token in the Simple scheme + () + + + + + + + + Error: Every + local pointer in "" must point to + an ID in this document () + + + + + + + + + + + + all capitals + + + + + + + black letter or gothic typeface + + + + + + + bold typeface + + + marked with a brace under the bottom of the text + + + + border around the text + + + + centred + + + cursive typeface + + + block display + + + strikethrough with double line + + + underlined with double line + + + + initial letter larger or decorated + + + floated out of main flow + + + with a hyphen here (eg in line break) + + + inline rendering + + + + + + + + italic typeface + + + + larger type + + + + aligned to the left or left-justified + + + + marked with a brace on the left side of the text + + + + letter-spaced + + + upright shape and default weight of typeface + + + + normal typeface weight + + + + aligned to the right or right-justified + + + marked with a brace to the right of the text + + + + rotated to the left + + + + rotated to the right + + + + + small caps + + + + smaller type + + + strike through + + + + subscript + + + + + superscript + + + marked with a brace above the text + + + fixed-width typeface, like typewriter + + + + underlined with single line + + + underlined with wavy line + + + + + +
+
+
+ Model classes + +

A set of unused model classes are removed.

+ + + + + + + + + + + + + +
+
+
+ Elements +

The main part of Simple is the set of selected elements.

+ + + + + + + + + + + + + + + color: green; text-decoration: underline; + + + + + margin-top: 2em; margin-left: 2em; margin-right: 2em; margin-bottom: + 2em; + + + + + white-space: nowrap; + + + + + + + + + + + + + + margin-bottom: 0.5em; + + + + + + + + + + + + + + Element "" may not be empty. + + + + + + + + + + + + + + + + + + + + Insert list. + + + + + Insert item, rendered as described in parent list rendition. + + + + + list-style: ordered; + + + + + + + + Insert table cell. + + + + + + + Element "" must have at least two child + elements. + + + + + + Element "" must have corresponding corr/sic, expand/abbr, reg/orig + + + + + + + + + + + + Insert cit. + + + + + margin-top: 1em; margin-left: 1em; margin-left: 1em; + + + + + Omit, if handled in parent choice. + + + content: '['; + content: ']'; + + + + + + + + + + + + + + text-decoration: line-through; + + + + + + + + border: 1px solid black; padding: 5px; + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + font-size: large; + + + + + + + + + + + + + + + content: '[..'; + content: '..]'; + color: grey;font-style:italic; + + + + + + +display: block; +border-top: solid 1pt blue; +border-bottom: solid 1pt blue; + + + + + + + margin: 6pt; + border: solid black 1pt; + + + + + + font-style:italic; + + + + + + + + + + + + + + + + + + + + color: grey; + + + content: '[..'; + content: '..]'; + color: grey; + + + content: '[...]'; + + + + + + + + + + + + + + font-style: italic; + + + font-style: italic; + + + font-style: italic; + + + font-weight: bold; + + + + + + + font-style: italic; + + + font-style: italic; + + + + + + + + + + + + margin-left: 1em; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + margin-left: 10px;margin-right: 10px; font-size:smaller; + + + content:" ["; + content:"] "; + font-size:small; + + + + + + + + + + + Omit, if handled in parent choice. + + + + + + text-align: justify; + + + + + + please make sure pb elements are not at the start or end of mixed content + + + + + display: block; + color: grey; + float: right; + + content: '[Page '; + content: ']'; + + + + + + + + + + + Omit if located in teiHeader. + + + + + Omit if located in teiHeader. + + + + + margin-left: 10px; margin-right: 10px; + + + + content: '‘'; + content: '’'; + + + margin-left: 10px; margin-right: 10px; + + + + + + If it is inside a paragraph then it is inline, otherwise it is block level + content: '‘'; + content: '’'; + + + If it is inside a paragraph then it is inline, otherwise it is block level + margin-left: 10px; margin-right: 10px; + + + + + + + + + + + + Omit, if handled in parent choice. + + + + + + + + + + + + + + + font-weight: bold; + + + Insert table row. + + + + + + + + + + + + + + + + + + + content: '{'; + content: '}'; + + + + + + text-align: right; + + + + + font-style: italic; + + + + + + + + + + + + font-style:italic; + + + + + + + + font-style: italic; + + + + + + + + + content:"<"; + content:">"; + + + content:"["; + content:"]"; + + + content:"("; + content:")"; + + + content:"{"; + content:"}"; + + + + + + font-size: smaller; + background-color: #F0F0F0; + + + + + + + + + + + + + + + + + + + + + + + + + max-width: 80%; + margin: auto; + font-family: Verdana, Tahoma, Geneva, Arial, Helvetica, sans-serif; + + + + + + + + + + + color: red; font-size: 2em; + + + + + + font-style: italic; + + + + + + font-style: italic; + + + + + + font-style: italic; + + + + + font-style: italic; + + + + + text-align: center; + + + + + + + + color: green; + + + + + content: ' [?] '; + + + + + + + +

A small number of elements have constrained value lists added.

+ + + + + + Using TeX or LaTeX notation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + data cell + + + label cell + + + + row or column sum data + + + table total data + + + + + + + + + + + data cell + + + label cell + + + row or column sum data + + + table total data + + + + + +
+ + text-transform: uppercase; + font-family: fantasy; + font-weight: bold; + padding-bottom: 2pt; border-bottom: dashed gray 2pt; + padding: 2pt; border: solid black 1pt; + text-align: center; + font-family: cursive; + text-decoration: line-through; color: red; + text-decoration: underline; color: red; + font-size : 6em; + font-family: cursive; + font-weight : bold; + vertical-align: top; + height: 1em; + line-height: 1em; + float : left; + width : 1em; + color : #c00; + margin: 0em; + padding: 0px; + float:right; display: block; + font-size: smaller; + clear: right; + padding: 4pt; + width: 15%; + + + display:inline; + display:block; + font-style: italic; + font-size: larger; + text-align: left; + padding-left: 2pt; border-left: dotted gray 2pt; + letter-spacing: 0.5em; + font-style:roman; + font-weight:normal; + text-align: right; + padding-right: 2pt; border-right: dotted gray 2pt; + -webkit-transform: rotate(90deg); transform: rotate(90deg); + -webkit-transform: rotate(-90deg); transform: rotate(-90deg); + font-variant: small-caps; + font-size: smaller; + text-decoration: line-through; + vertical-align: bottom; font-size: smaller; + vertical-align: super; font-size: smaller; + padding-top: 2pt; border-top: dotted gray 2pt; + font-family:monospace; + text-decoration: underline; + text-decoration: underline; text-decoration-style: wavy; + +
+
+ +
+
From 03dc4e1ff43cc415783f609441f0cc530e96c4df Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 18 Mar 2015 13:27:59 +0100 Subject: [PATCH 365/875] Add RenderScript and Filterscript. --- lib/linguist/heuristics.rb | 13 +++++++++++-- lib/linguist/languages.yml | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 439a0e60..205ef11c 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -172,13 +172,15 @@ module Linguist end end - disambiguate "F#", "Forth", "GLSL" do |data| + disambiguate "F#", "Forth", "GLSL", "Filterscript" do |data| if /^(: |new-device)/.match(data) Language["Forth"] elsif /^\s*(#light|import|let|module|namespace|open|type)/.match(data) Language["F#"] - elsif /^\s*(#include|#pragma|precision|uniform|varying|void)/.match(data) + elsif /^\s*(#version|precision|uniform|varying|vec[234])/.match(data) Language["GLSL"] + elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) + Language["Filterscript"] end end @@ -278,5 +280,12 @@ module Linguist end end + disambiguate "Rust", "RenderScript" do |data| + if data.include?("^(use |fn |mod |pub |macro_rules|impl|#!?\[)") + Language["Rust"] + elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) + Language["RenderScript"] + end + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 67d6be1a..84b95819 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -938,6 +938,14 @@ Fantom: tm_scope: source.fan ace_mode: text +Filterscript: + type: programming + group: RenderScript + extensions: + - .fs + tm_scope: none + ace_mode: text + Formatted: type: data extensions: @@ -2677,6 +2685,14 @@ Redcode: tm_scope: none ace_mode: text +RenderScript: + type: programming + extensions: + - .rs + - .rsh + tm_scope: none + ace_mode: text + RobotFramework: type: programming extensions: From 02ae60f434d565c66c9cd14a972ca5da8f99cfde Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 19 Mar 2015 14:08:23 +0100 Subject: [PATCH 366/875] Samples for RenderScript and Filterscript. All files are from The Android Open Source Project; license APL 2.0. --- samples/Filterscript/colormatrix.fs | 35 +++ samples/Filterscript/fs_kernel.fs | 18 ++ samples/RenderScript/convolve3x3.rs | 67 ++++ samples/RenderScript/scenegraph_objects.rsh | 323 ++++++++++++++++++++ 4 files changed, 443 insertions(+) create mode 100644 samples/Filterscript/colormatrix.fs create mode 100644 samples/Filterscript/fs_kernel.fs create mode 100644 samples/RenderScript/convolve3x3.rs create mode 100644 samples/RenderScript/scenegraph_objects.rsh diff --git a/samples/Filterscript/colormatrix.fs b/samples/Filterscript/colormatrix.fs new file mode 100644 index 00000000..86fb2482 --- /dev/null +++ b/samples/Filterscript/colormatrix.fs @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ip.rsh" + +static rs_matrix4x4 Mat; + +void init() { + rsMatrixLoadIdentity(&Mat); +} + +void setMatrix(rs_matrix4x4 m) { + Mat = m; +} + +uchar4 __attribute__((kernel)) root(uchar4 in) { + float4 f = convert_float4(in); + f = rsMatrixMultiply(&Mat, f); + f = clamp(f, 0.f, 255.f); + return convert_uchar4(f); +} + diff --git a/samples/Filterscript/fs_kernel.fs b/samples/Filterscript/fs_kernel.fs new file mode 100644 index 00000000..d8f0c4d6 --- /dev/null +++ b/samples/Filterscript/fs_kernel.fs @@ -0,0 +1,18 @@ +#pragma version(1) +#pragma rs java_package_name(foo) + +int __attribute__((kernel)) root(uint32_t ain) { + return 0; +} + +void __attribute__((kernel)) in_only(uint32_t ain) { +} + +int __attribute__((kernel)) out_only() { + return 0; +} + +int __attribute__((kernel)) everything(uint32_t ain, uint32_t x, uint32_t y) { + return 0; +} + diff --git a/samples/RenderScript/convolve3x3.rs b/samples/RenderScript/convolve3x3.rs new file mode 100644 index 00000000..2acffab0 --- /dev/null +++ b/samples/RenderScript/convolve3x3.rs @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma version(1) +#pragma rs java_package_name(com.android.gallery3d.filtershow.filters) +#pragma rs_fp_relaxed + +int32_t gWidth; +int32_t gHeight; +const uchar4 *gPixels; +rs_allocation gIn; + +float gCoeffs[9]; + +void root(const uchar4 *in, uchar4 *out, const void *usrData, uint32_t x, uint32_t y) { + uint32_t x1 = min((int32_t)x+1, gWidth-1); + uint32_t x2 = max((int32_t)x-1, 0); + uint32_t y1 = min((int32_t)y+1, gHeight-1); + uint32_t y2 = max((int32_t)y-1, 0); + + float4 p00 = rsUnpackColor8888(gPixels[x1 + gWidth * y1]); + float4 p01 = rsUnpackColor8888(gPixels[x + gWidth * y1]); + float4 p02 = rsUnpackColor8888(gPixels[x2 + gWidth * y1]); + float4 p10 = rsUnpackColor8888(gPixels[x1 + gWidth * y]); + float4 p11 = rsUnpackColor8888(gPixels[x + gWidth * y]); + float4 p12 = rsUnpackColor8888(gPixels[x2 + gWidth * y]); + float4 p20 = rsUnpackColor8888(gPixels[x1 + gWidth * y2]); + float4 p21 = rsUnpackColor8888(gPixels[x + gWidth * y2]); + float4 p22 = rsUnpackColor8888(gPixels[x2 + gWidth * y2]); + + p00 *= gCoeffs[0]; + p01 *= gCoeffs[1]; + p02 *= gCoeffs[2]; + p10 *= gCoeffs[3]; + p11 *= gCoeffs[4]; + p12 *= gCoeffs[5]; + p20 *= gCoeffs[6]; + p21 *= gCoeffs[7]; + p22 *= gCoeffs[8]; + + p00 += p01; + p02 += p10; + p11 += p12; + p20 += p21; + + p22 += p00; + p02 += p11; + + p20 += p22; + p20 += p02; + + p20 = clamp(p20, 0.f, 1.f); + *out = rsPackColorTo8888(p20.r, p20.g, p20.b); +} diff --git a/samples/RenderScript/scenegraph_objects.rsh b/samples/RenderScript/scenegraph_objects.rsh new file mode 100644 index 00000000..bdca3ab1 --- /dev/null +++ b/samples/RenderScript/scenegraph_objects.rsh @@ -0,0 +1,323 @@ +// Copyright (C) 2011-2012 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma version(1) + +#pragma rs java_package_name(com.android.scenegraph) + +#ifndef _TRANSFORM_DEF_ +#define _TRANSFORM_DEF_ + +#include "rs_graphics.rsh" + +#define TRANSFORM_NONE 0 +#define TRANSFORM_TRANSLATE 1 +#define TRANSFORM_ROTATE 2 +#define TRANSFORM_SCALE 3 + +#define CULL_FRUSTUM 0 +#define CULL_ALWAYS 2 + +#define LIGHT_POINT 0 +#define LIGHT_DIRECTIONAL 1 + +// Shader params that involve only data +#define SHADER_PARAM_DATA_ONLY 10000 +#define SHADER_PARAM_FLOAT4_DATA 10001 +#define SHADER_PARAM_TRANSFORM_DATA 10002 +#define SHADER_PARAM_TRANSFORM_MODEL 10003 + +// Shader params that involve camera +#define SHADER_PARAM_CAMERA 1000 +#define SHADER_PARAM_FLOAT4_CAMERA_POS 1001 +#define SHADER_PARAM_FLOAT4_CAMERA_DIR 1002 +#define SHADER_PARAM_TRANSFORM_VIEW 1003 +#define SHADER_PARAM_TRANSFORM_PROJ 1004 +#define SHADER_PARAM_TRANSFORM_VIEW_PROJ 1005 +#define SHADER_PARAM_TRANSFORM_MODEL_VIEW 1006 +#define SHADER_PARAM_TRANSFORM_MODEL_VIEW_PROJ 1007 + +// Shader Params that only involve lights +#define SHADER_PARAM_LIGHT 100 +#define SHADER_PARAM_FLOAT4_LIGHT_COLOR 103 +#define SHADER_PARAM_FLOAT4_LIGHT_POS 104 +#define SHADER_PARAM_FLOAT4_LIGHT_DIR 105 + +#define SHADER_PARAM_TEXTURE 10 + +#define TEXTURE_NONE 0 +#define TEXTURE_2D 1 +#define TEXTURE_CUBE 2 +#define TEXTURE_RENDER_TARGET 3 + +typedef struct TransformComponent_s { + float4 value; + int type; + rs_allocation name; +} SgTransformComponent; + +typedef struct __attribute__((packed, aligned(4))) SgTransform { + rs_matrix4x4 globalMat; + rs_matrix4x4 localMat; + + rs_allocation components; + int isDirty; + + rs_allocation children; + rs_allocation name; + + // Used to check whether transform params need to be updated + uint32_t timestamp; +} SgTransform; + +typedef struct VertexShader_s { + rs_program_vertex program; + // Buffer with vertex constant data + rs_allocation shaderConst; + // ShaderParam's that populate data + rs_allocation shaderConstParams; + // location of the per object constants on the buffer + int objectConstIndex; +} SgVertexShader; + +typedef struct FragmentShader_s { + rs_program_fragment program; + // Buffer with vertex constant data + rs_allocation shaderConst; + // ShaderParam's that populate data + rs_allocation shaderConstParams; + // ShaderParam's that set textures + rs_allocation shaderTextureParams; + // location of the per object constants on the buffer + int objectConstIndex; +} SgFragmentShader; + +typedef struct RenderState_s { + rs_allocation pv; // VertexShader struct + rs_allocation pf; // FragmentShader struct + rs_program_store ps; + rs_program_raster pr; +} SgRenderState; + +typedef struct Renderable_s { + rs_allocation render_state; + // Buffer with vertex constant data + rs_allocation pv_const; + // ShaderParam's that populate data + rs_allocation pv_constParams; + // Buffer with fragment constant data + rs_allocation pf_const; + // ShaderParam's that populate data + rs_allocation pf_constParams; + rs_allocation pf_textures[8]; + int pf_num_textures; + rs_mesh mesh; + int meshIndex; + rs_allocation transformMatrix; + rs_allocation name; + float4 boundingSphere; + float4 worldBoundingSphere; + int bVolInitialized; + int cullType; // specifies whether to frustum cull + int isVisible; +} SgRenderable; + +typedef struct RenderPass_s { + rs_allocation color_target; + rs_allocation depth_target; + rs_allocation camera; + rs_allocation objects; + + float4 clear_color; + float clear_depth; + bool should_clear_color; + bool should_clear_depth; +} SgRenderPass; + +typedef struct Camera_s { + rs_matrix4x4 proj; + rs_matrix4x4 view; + rs_matrix4x4 viewProj; + float4 position; + float near; + float far; + float horizontalFOV; + float aspect; + rs_allocation name; + rs_allocation transformMatrix; + float4 frustumPlanes[6]; + + int isDirty; + // Timestamp of the camera itself to signal params if anything changes + uint32_t timestamp; + // Timestamp of our transform + uint32_t transformTimestamp; +} SgCamera; + +typedef struct Light_s { + float4 position; + float4 color; + float intensity; + int type; + rs_allocation name; + rs_allocation transformMatrix; +} SgLight; + +// This represents the shader parameter data needed to set a float or transform data +typedef struct ShaderParamData_s { + int type; + float4 float_value; + uint32_t timestamp; + rs_allocation paramName; + rs_allocation camera; + rs_allocation light; + rs_allocation transform; + rs_allocation texture; +} SgShaderParamData; + +// This represents a shader parameter that knows how to update itself for a given +// renderable or shader and contains a timestamp for the last time this buffer was updated +typedef struct ShaderParam_s { + // Used to check whether transform params need to be updated + uint32_t transformTimestamp; + // Used to check whether data params need to be updated + // These are used when somebody set the matrix of float value directly in java + uint32_t dataTimestamp; + // Specifies where in the constant buffer data gets written to + int bufferOffset; + // An instance of SgShaderParamData that could be shared by multiple objects + rs_allocation data; + // How many components of the vector we need to write + int float_vecSize; +} SgShaderParam; + +// This represents a texture object +typedef struct Texture_s { + uint32_t type; + rs_allocation texture; +} SgTexture; + +static void printName(rs_allocation name) { + if (!rsIsObject(name)) { + rsDebug("no name", 0); + return; + } + + rsDebug((const char*)rsGetElementAt(name, 0), 0); +} + +static void printCameraInfo(const SgCamera *cam) { + rsDebug("***** Camera information. ptr:", cam); + printName(cam->name); + const SgTransform *camTransform = (const SgTransform *)rsGetElementAt(cam->transformMatrix, 0); + rsDebug("Transform name:", camTransform); + printName(camTransform->name); + + rsDebug("Aspect: ", cam->aspect); + rsDebug("Near: ", cam->near); + rsDebug("Far: ", cam->far); + rsDebug("Fov: ", cam->horizontalFOV); + rsDebug("Position: ", cam->position); + rsDebug("Proj: ", &cam->proj); + rsDebug("View: ", &cam->view); +} + +static void printLightInfo(const SgLight *light) { + rsDebug("***** Light information. ptr:", light); + printName(light->name); + const SgTransform *lTransform = (const SgTransform *)rsGetElementAt(light->transformMatrix, 0); + rsDebug("Transform name:", lTransform); + printName(lTransform->name); + + rsDebug("Position: ", light->position); + rsDebug("Color : ", light->color); + rsDebug("Intensity: ", light->intensity); + rsDebug("Type: ", light->type); +} + +static void getCameraRay(const SgCamera *cam, int screenX, int screenY, float3 *pnt, float3 *vec) { + rsDebug("=================================", screenX); + rsDebug("Point X", screenX); + rsDebug("Point Y", screenY); + + rs_matrix4x4 mvpInv; + rsMatrixLoad(&mvpInv, &cam->viewProj); + rsMatrixInverse(&mvpInv); + + float width = (float)rsgGetWidth(); + float height = (float)rsgGetHeight(); + + float4 pos = {(float)screenX, height - (float)screenY, 0.0f, 1.0f}; + + pos.x /= width; + pos.y /= height; + + rsDebug("Pre Norm X", pos.x); + rsDebug("Pre Norm Y", pos.y); + + pos.xy = pos.xy * 2.0f - 1.0f; + + rsDebug("Norm X", pos.x); + rsDebug("Norm Y", pos.y); + + pos = rsMatrixMultiply(&mvpInv, pos); + float oneOverW = 1.0f / pos.w; + pos.xyz *= oneOverW; + + rsDebug("World X", pos.x); + rsDebug("World Y", pos.y); + rsDebug("World Z", pos.z); + + rsDebug("Cam X", cam->position.x); + rsDebug("Cam Y", cam->position.y); + rsDebug("Cam Z", cam->position.z); + + *vec = normalize(pos.xyz - cam->position.xyz); + rsDebug("Vec X", vec->x); + rsDebug("Vec Y", vec->y); + rsDebug("Vec Z", vec->z); + *pnt = cam->position.xyz; +} + +static bool intersect(const SgRenderable *obj, float3 pnt, float3 vec) { + // Solving for t^2 + Bt + C = 0 + float3 originMinusCenter = pnt - obj->worldBoundingSphere.xyz; + float B = dot(originMinusCenter, vec) * 2.0f; + float C = dot(originMinusCenter, originMinusCenter) - + obj->worldBoundingSphere.w * obj->worldBoundingSphere.w; + + float discriminant = B * B - 4.0f * C; + if (discriminant < 0.0f) { + return false; + } + discriminant = sqrt(discriminant); + + float t0 = (-B - discriminant) * 0.5f; + float t1 = (-B + discriminant) * 0.5f; + + if (t0 > t1) { + float temp = t0; + t0 = t1; + t1 = temp; + } + + // The sphere is behind us + if (t1 < 0.0f) { + return false; + } + return true; +} + + +#endif // _TRANSFORM_DEF_ From 285af6512ea243dea9b32b3e2816ea9174865059 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 30 Mar 2015 16:24:11 -0500 Subject: [PATCH 367/875] Adding puphpet to vendored list --- lib/linguist/vendor.yml | 3 +++ test/test_blob.rb | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 9685df1b..9b5c4b2a 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -255,5 +255,8 @@ - proguard.pro - proguard-rules.pro +# PuPHPet +- ^puphpet/ + # Android Google APIs - (^|/)\.google_apis/ diff --git a/test/test_blob.rb b/test/test_blob.rb index daecfdba..4157841d 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -457,6 +457,9 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob(".google_apis/bar.jar"), :vendored? assert_predicate fixture_blob("foo/.google_apis/bar.jar"), :vendored? + + # Vagrant + assert sample_blob("puphpet/file.pp").vendored? end def test_documentation From e946ceaa6f1cfd0e722ee82d48a3eb1face74065 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 30 Mar 2015 16:24:55 -0500 Subject: [PATCH 368/875] Grammar --- lib/linguist/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 9b5c4b2a..a8597735 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -236,7 +236,7 @@ # Vagrant - ^Vagrantfile$ -# .DS_Store's +# .DS_Stores - .[Dd][Ss]_[Ss]tore$ # R packages From e4ce4edd5c915bdd9c3f57c97b5efc536c6322df Mon Sep 17 00:00:00 2001 From: Hsiaoming Yang Date: Tue, 31 Mar 2015 20:08:18 +0800 Subject: [PATCH 369/875] add tests/fixtures to vendor.yml --- lib/linguist/vendor.yml | 2 +- test/test_blob.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index a8597735..645d4a55 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -224,7 +224,7 @@ - ^readme$ # Test fixtures -- ^[Tt]est/fixtures/ +- ^[Tt]ests?/fixtures/ # PhoneGap/Cordova - (^|/)cordova([^.]*)\.js$ diff --git a/test/test_blob.rb b/test/test_blob.rb index 4157841d..38c90d6b 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -421,6 +421,7 @@ class TestBlob < Minitest::Test # Test fixtures assert sample_blob("test/fixtures/random.rkt").vendored? assert sample_blob("Test/fixtures/random.rkt").vendored? + assert sample_blob("tests/fixtures/random.rkt").vendored? # Cordova/PhoneGap assert sample_blob("cordova.js").vendored? From 3837fed59e03f50047bc27efe2ff213baffdddcb Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Tue, 31 Mar 2015 15:21:40 +0200 Subject: [PATCH 370/875] Ignore assets from Sphinx docs --- lib/linguist/vendor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index a8597735..f3493c2c 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -146,6 +146,9 @@ ## Python ## +# Sphinx +- (^|/)docs?/_?(build|themes?|templates?|static)/ + # django - (^|/)admin_media/ From 678f90acf77644a461b2ac7c06533ce643ec6884 Mon Sep 17 00:00:00 2001 From: iFarbod Date: Wed, 1 Apr 2015 01:23:59 +0430 Subject: [PATCH 371/875] Added Color for the Squirrel Language Picked the color from the Squirrel Language's website. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 84b95819..e1897df7 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3001,6 +3001,7 @@ SourcePawn: Squirrel: type: programming + color: "#800000" extensions: - .nut tm_scope: source.c++ From 20f19bf049d191157b03271031ffc1e66beed21a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 31 Mar 2015 19:33:50 -0500 Subject: [PATCH 372/875] Some tests to go with #2290 --- test/test_blob.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test_blob.rb b/test/test_blob.rb index 38c90d6b..138eef8e 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -459,6 +459,10 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob(".google_apis/bar.jar"), :vendored? assert_predicate fixture_blob("foo/.google_apis/bar.jar"), :vendored? + # Sphinx docs + assert sample_blob("docs/_build/asset.doc").vendored? + assert sample_blob("docs/theme/file.css").vendored? + # Vagrant assert sample_blob("puphpet/file.pp").vendored? end From 3270a8896d62c207faf7482cd7eea473df9d7c61 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 31 Mar 2015 19:37:08 -0500 Subject: [PATCH 373/875] Grammars update --- vendor/grammars/CLIPS-sublime | 2 +- vendor/grammars/Handlebars | 2 +- vendor/grammars/Stylus | 2 +- vendor/grammars/Sublime-Red | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/html.tmbundle | 2 +- vendor/grammars/jade-tmbundle | 2 +- vendor/grammars/java.tmbundle | 2 +- vendor/grammars/kotlin-sublime-package | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/powershell | 2 +- vendor/grammars/sublime-netlinx | 2 +- vendor/grammars/sublime_cobol | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/vendor/grammars/CLIPS-sublime b/vendor/grammars/CLIPS-sublime index 7ded830d..6a11bc51 160000 --- a/vendor/grammars/CLIPS-sublime +++ b/vendor/grammars/CLIPS-sublime @@ -1 +1 @@ -Subproject commit 7ded830d5ea79214aaecf07006db1eba394d3e2a +Subproject commit 6a11bc512e3f22ae9636e64bc101e79334501089 diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 7bbedb02..1a952fd7 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 7bbedb02585912c6e89bec59621aaf2950c28a09 +Subproject commit 1a952fd7e467132b065d3e06a4874e340df0f976 diff --git a/vendor/grammars/Stylus b/vendor/grammars/Stylus index c4897b0f..8070df9b 160000 --- a/vendor/grammars/Stylus +++ b/vendor/grammars/Stylus @@ -1 +1 @@ -Subproject commit c4897b0f97e69e367b20971f9fd019b4c6e9d283 +Subproject commit 8070df9be179af3afa4ef406fbefd32826ca68a2 diff --git a/vendor/grammars/Sublime-Red b/vendor/grammars/Sublime-Red index 4c84201c..085e0f43 160000 --- a/vendor/grammars/Sublime-Red +++ b/vendor/grammars/Sublime-Red @@ -1 +1 @@ -Subproject commit 4c84201cd2e25d4c2b714358110fae7488c65593 +Subproject commit 085e0f43b3b829ec63a3cedaa1b87c85275d526f diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index d3162539..2914099c 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit d31625391fb6ff6bd805074b3bdea4f1c4d10979 +Subproject commit 2914099c31092978a631953704031d3a6e028125 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index e164fcf4..299e4ff3 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit e164fcf431d7ba53c2ce1d0cd81a78021ea8cebe +Subproject commit 299e4ff3cebf0cae021432fd755d3e63c7af5350 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index b31bec31..de99a182 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit b31bec3123dda07661ac42febb5dbec2377bcaeb +Subproject commit de99a182dd91c291d7aa71456a9e0947d369ed18 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 3aa61742..53792096 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 3aa617428e69e0f805c13085889bce66691d0ec3 +Subproject commit 5379209622ae9ceacf20d6945d8b7b41b484c2e9 diff --git a/vendor/grammars/html.tmbundle b/vendor/grammars/html.tmbundle index 4831b07b..d1231e3d 160000 --- a/vendor/grammars/html.tmbundle +++ b/vendor/grammars/html.tmbundle @@ -1 +1 @@ -Subproject commit 4831b07b7211d34ab5570bbf877690cf4fefc9ef +Subproject commit d1231e3da1c22d3a5310223881b89c311aec9f04 diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index b061f52f..4197de8b 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit b061f52fb369cc0b483cc1ddc4cd0fc088615754 +Subproject commit 4197de8b70bce0b58202d28f5f824b3ba1cec5a7 diff --git a/vendor/grammars/java.tmbundle b/vendor/grammars/java.tmbundle index ccdebdf8..bed5760a 160000 --- a/vendor/grammars/java.tmbundle +++ b/vendor/grammars/java.tmbundle @@ -1 +1 @@ -Subproject commit ccdebdf888400c492ea55884e03a8f9d1b61de8b +Subproject commit bed5760ae0ca4784fc153e0323978a096ea656dc diff --git a/vendor/grammars/kotlin-sublime-package b/vendor/grammars/kotlin-sublime-package index e8e18955..3ddc52e8 160000 --- a/vendor/grammars/kotlin-sublime-package +++ b/vendor/grammars/kotlin-sublime-package @@ -1 +1 @@ -Subproject commit e8e18955d7f18d42574dc55a37e6f31339036800 +Subproject commit 3ddc52e8dbc8bef1f1a534b94bd0f688bc2a4422 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 15dd527d..75d0d94c 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 15dd527dae9807e9e69e3709f5025fcc830a09b8 +Subproject commit 75d0d94cddee2b2651476f2c7877695260c2c4e3 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 8daa1008..f65cc95f 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 8daa10089a14bacf2346bb16f31d1189489696e0 +Subproject commit f65cc95f0bd24ec04e6be39377c1b04b9d0188d6 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 39b09967..e9bdf04e 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 39b0996782f37a150d6b0df2eb64996417d95c41 +Subproject commit e9bdf04e834f1d7a41e9eb48c4e6064498450b2d diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index b1bb2979..b1f624ee 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit b1bb29792a749f247cbbfbaa937fff0f47d7d8a4 +Subproject commit b1f624ee3a3825f6dd1233f6379cc4d0deaac4e0 diff --git a/vendor/grammars/powershell b/vendor/grammars/powershell index 0d9478d1..18c9f0e5 160000 --- a/vendor/grammars/powershell +++ b/vendor/grammars/powershell @@ -1 +1 @@ -Subproject commit 0d9478d1175969291741ee46a85445dd34f38d04 +Subproject commit 18c9f0e553f68053713503b8dcca2c4712381ad6 diff --git a/vendor/grammars/sublime-netlinx b/vendor/grammars/sublime-netlinx index 351acb37..f7e78c23 160000 --- a/vendor/grammars/sublime-netlinx +++ b/vendor/grammars/sublime-netlinx @@ -1 +1 @@ -Subproject commit 351acb37459de1195ce29a2ec0e54ca51cb27568 +Subproject commit f7e78c232c19f7b14e57510e4122a9d9bdeaea2f diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index a7c77c2d..b848a101 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit a7c77c2de0726c53c394da125139ca06ad375983 +Subproject commit b848a101048aaf9582d95868983386a3e8e39896 From cb97417af8637a97710586f72dc51c26f27d48ad Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 31 Mar 2015 19:48:34 -0500 Subject: [PATCH 374/875] Bumping version to v4.5.4 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 6cfb3da9..f46571b1 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.3" + VERSION = "4.5.4" end From 66f9bd1ab4151879a265afd89c4ff2e772c0c170 Mon Sep 17 00:00:00 2001 From: phase Date: Tue, 31 Mar 2015 19:53:36 -0700 Subject: [PATCH 375/875] Add color to Kotlin --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 66a42f22..f02bfd80 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1564,6 +1564,7 @@ Kit: Kotlin: type: programming + color: "#EA4DFA" extensions: - .kt - .ktm From 53f93f68dbbde00677681d7ece994c92365e65f9 Mon Sep 17 00:00:00 2001 From: phase Date: Tue, 31 Mar 2015 19:55:25 -0700 Subject: [PATCH 376/875] Add color to Makefile --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f02bfd80..7a740299 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1782,6 +1782,7 @@ MUF: Makefile: type: programming + color: "#427819" aliases: - bsdmake - make From 59e935b05d25b5c211ce10f41f08756db8877098 Mon Sep 17 00:00:00 2001 From: phase Date: Tue, 31 Mar 2015 20:00:53 -0700 Subject: [PATCH 377/875] Add color for Brainfuck --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7a740299..928d6c3a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -337,6 +337,7 @@ Boo: Brainfuck: type: programming + color: "#2F2530" extensions: - .b - .bf From 9936a30879208e2cf11ec612b0a7f8b8be0efc23 Mon Sep 17 00:00:00 2001 From: phase Date: Tue, 31 Mar 2015 20:02:52 -0700 Subject: [PATCH 378/875] Add color for Crystal --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 928d6c3a..ae06612b 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -644,6 +644,7 @@ Creole: Crystal: type: programming + color: "#76EEF5" extensions: - .cr ace_mode: ruby From 3dbcfa8af8ce420c45f372a2df584bb62a77cae6 Mon Sep 17 00:00:00 2001 From: phase Date: Tue, 31 Mar 2015 20:05:42 -0700 Subject: [PATCH 379/875] Add color for ABAP --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ae06612b..3d082a99 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -28,6 +28,7 @@ ABAP: type: programming + color: "#E8274B" extensions: - .abap ace_mode: abap From 3851b7c01672eae9b7f9254fc9df834873653535 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Wed, 1 Apr 2015 10:14:52 -0700 Subject: [PATCH 380/875] Add test for detecting color proximity --- github-linguist.gemspec | 1 + test/helper.rb | 1 + test/test_color_threshold.rb | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 test/test_color_threshold.rb diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 8f3fe075..e680b9f5 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -23,4 +23,5 @@ Gem::Specification.new do |s| s.add_development_dependency 'pry' s.add_development_dependency 'rake' s.add_development_dependency 'yajl-ruby' + s.add_development_dependency 'color-proximity' end diff --git a/test/helper.rb b/test/helper.rb index a6a03672..ab3cc8fa 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -2,6 +2,7 @@ require "bundler/setup" require "minitest/autorun" require "mocha/setup" require "linguist" +require 'color-proximity' def fixtures_path File.expand_path("../fixtures", __FILE__) diff --git a/test/test_color_threshold.rb b/test/test_color_threshold.rb new file mode 100644 index 00000000..9d1faaab --- /dev/null +++ b/test/test_color_threshold.rb @@ -0,0 +1,20 @@ +require_relative "./helper" + +class TestColorThreshold < Minitest::Test + include Linguist + + def test_color_threshold + langs_with_colors = Language.all.reject { |language| language.color.nil? } + cp = ColorProximity.new(20, langs_with_colors.map(&:color)) + failing_threshold = [] + langs_with_colors.each do |lang| + state = cp.within_threshold?(lang.color[1..-1]) + unless state.first + failing_threshold << [lang, state.last] + end + end + message = "The following languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold}" + + assert failing_threshold.empty?, message + end +end From 8a54ce57a53beccc278933230723cd4abfc5160f Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Wed, 1 Apr 2015 10:15:10 -0700 Subject: [PATCH 381/875] Drop threshold back down to a passing 10 --- test/test_color_threshold.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_color_threshold.rb b/test/test_color_threshold.rb index 9d1faaab..48c1205f 100644 --- a/test/test_color_threshold.rb +++ b/test/test_color_threshold.rb @@ -5,7 +5,7 @@ class TestColorThreshold < Minitest::Test def test_color_threshold langs_with_colors = Language.all.reject { |language| language.color.nil? } - cp = ColorProximity.new(20, langs_with_colors.map(&:color)) + cp = ColorProximity.new(10, langs_with_colors.map(&:color)) failing_threshold = [] langs_with_colors.each do |lang| state = cp.within_threshold?(lang.color[1..-1]) From fa5496eef49a34f8ff86e5ce27b49eb7ce395c7c Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 1 Apr 2015 20:23:16 -0500 Subject: [PATCH 382/875] Fixing up shebang detection to match new tokenizer behaviour --- lib/linguist/shebang.rb | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/linguist/shebang.rb b/lib/linguist/shebang.rb index 6f04e866..5b27532a 100644 --- a/lib/linguist/shebang.rb +++ b/lib/linguist/shebang.rb @@ -23,17 +23,20 @@ module Linguist # First line must start with #! return unless shebang && shebang.start_with?("#!") - # Get the parts of the shebang without the #! - tokens = shebang.sub(/^#!\s*/, '').strip.split(' ') + s = StringScanner.new(shebang) # There was nothing after the #! - return if tokens.empty? + return unless path = s.scan(/^#!\s*\S+/) - # Get the name of the interpreter - script = File.basename(tokens.first) + # Keep going + script = path.split('/').last - # Get next argument if interpreter was /usr/bin/env - script = tokens[1] if script == 'env' + # if /usr/bin/env type shebang then walk the string + if script == 'env' + s.scan(/\s+/) + s.scan(/.*=[^\s]+\s+/) # skip over variable arguments e.g. foo=bar + script = s.scan(/\S+/) + end # Interpreter was /usr/bin/env with no arguments return unless script @@ -41,6 +44,9 @@ module Linguist # "python2.6" -> "python2" script.sub! /(\.\d+)$/, '' + # #! perl -> perl + script.sub! /^#!\s*/, '' + # Check for multiline shebang hacks that call `exec` if script == 'sh' && data.lines.first(5).any? { |l| l.match(/exec (\w+).+\$0.+\$@/) } From 7a6849b3acab6d96501d8c977e89395c0e22bc1e Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 1 Apr 2015 20:33:13 -0500 Subject: [PATCH 383/875] Adding in a Makefile.boot filename for .boot detection --- samples/Makefile/filenames/Makefile.boot | 159 +++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 samples/Makefile/filenames/Makefile.boot diff --git a/samples/Makefile/filenames/Makefile.boot b/samples/Makefile/filenames/Makefile.boot new file mode 100644 index 00000000..07c25c11 --- /dev/null +++ b/samples/Makefile/filenames/Makefile.boot @@ -0,0 +1,159 @@ +# $NetBSD$ + +S= ${.CURDIR}/../../../../.. + +NOMAN= +PROG?= boot +NEWVERSWHAT?= "BIOS Boot" +VERSIONFILE?= ${.CURDIR}/../version + +AFLAGS.biosboot.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:} + +SOURCES?= biosboot.S boot2.c conf.c devopen.c exec.c +SRCS= ${SOURCES} +.if !make(depend) +SRCS+= vers.c +.endif + +PIE_CFLAGS= +PIE_AFLAGS= +PIE_LDFLAGS= + +.include + +STRIPFLAG= # nothing + +LIBCRT0= # nothing +LIBCRTI= # nothing +LIBCRTBEGIN= # nothing +LIBCRTEND= # nothing +LIBC= # nothing + +BINDIR=/usr/mdec +BINMODE=444 + +.PATH: ${.CURDIR}/.. ${.CURDIR}/../../lib + +LDFLAGS+= -nostdlib -Wl,-N -Wl,-e,boot_start +CPPFLAGS+= -I ${.CURDIR}/.. -I ${.CURDIR}/../../lib -I ${S}/lib/libsa +CPPFLAGS+= -I ${.OBJDIR} +# Make sure we override any optimization options specified by the user +COPTS= -Os + +.if ${MACHINE_ARCH} == "x86_64" +LDFLAGS+= -Wl,-m,elf_i386 +AFLAGS+= -m32 +CPUFLAGS= -m32 +LIBKERN_ARCH=i386 +KERNMISCMAKEFLAGS="LIBKERN_ARCH=i386" +.else +CPUFLAGS= -march=i386 -mtune=i386 +.endif + +CFLAGS+= -mno-sse -mno-sse2 -mno-sse3 + +COPTS+= -ffreestanding +CFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes +CPPFLAGS+= -nostdinc -D_STANDALONE +CPPFLAGS+= -I$S + +CPPFLAGS+= -DSUPPORT_PS2 +CPPFLAGS+= -DDIRECT_SERIAL +CPPFLAGS+= -DSUPPORT_SERIAL=boot_params.bp_consdev + +CPPFLAGS+= -DCONSPEED=boot_params.bp_conspeed +CPPFLAGS+= -DCONSADDR=boot_params.bp_consaddr +CPPFLAGS+= -DCONSOLE_KEYMAP=boot_params.bp_keymap + +CPPFLAGS+= -DSUPPORT_CD9660 +CPPFLAGS+= -DSUPPORT_USTARFS +CPPFLAGS+= -DSUPPORT_DOSFS +CPPFLAGS+= -DSUPPORT_EXT2FS +#CPPFLAGS+= -DSUPPORT_MINIXFS3 +CPPFLAGS+= -DPASS_BIOSGEOM +CPPFLAGS+= -DPASS_MEMMAP +#CPPFLAGS+= -DBOOTPASSWD +CPPFLAGS+= -DEPIA_HACK +#CPPFLAGS+= -DDEBUG_MEMSIZE +#CPPFLAGS+= -DBOOT_MSG_COM0 +CPPFLAGS+= -DLIBSA_ENABLE_LS_OP + +# The biosboot code is linked to 'virtual' address of zero and is +# loaded at physical address 0x10000. +# XXX The heap values should be determined from _end. +SAMISCCPPFLAGS+= -DHEAP_START=0x40000 -DHEAP_LIMIT=0x70000 +SAMISCCPPFLAGS+= -DLIBSA_PRINTF_LONGLONG_SUPPORT +SAMISCMAKEFLAGS+= SA_USE_CREAD=yes # Read compressed kernels +SAMISCMAKEFLAGS+= SA_INCLUDE_NET=no # Netboot via TFTP, NFS + +CPPFLAGS+= -Wno-pointer-sign + +# CPPFLAGS+= -DBOOTXX_RAID1_SUPPORT + +I386_STAND_DIR?= $S/arch/i386/stand + +### find out what to use for libi386 +I386DIR= ${I386_STAND_DIR}/lib +.include "${I386DIR}/Makefile.inc" +LIBI386= ${I386LIB} + +### find out what to use for libsa +SA_AS= library +SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" +SAMISCMAKEFLAGS+="SA_ENABLE_LS_OP=yes" +.include "${S}/lib/libsa/Makefile.inc" +LIBSA= ${SALIB} + +### find out what to use for libkern +KERN_AS= library +.include "${S}/lib/libkern/Makefile.inc" +LIBKERN= ${KERNLIB} + +### find out what to use for libz +Z_AS= library +.include "${S}/lib/libz/Makefile.inc" +LIBZ= ${ZLIB} + +LDSCRIPT ?= $S/arch/i386/conf/stand.ldscript + +cleandir distclean: .WAIT cleanlibdir + +cleanlibdir: + -rm -rf lib + +LIBLIST= ${LIBI386} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} ${LIBSA} +# LIBLIST= ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA} ${LIBZ} ${LIBKERN} + +CLEANFILES+= ${PROG}.tmp ${PROG}.map ${PROG}.sym vers.c + +vers.c: ${VERSIONFILE} ${SOURCES} ${LIBLIST} ${.CURDIR}/../Makefile.boot + ${HOST_SH} ${S}/conf/newvers_stand.sh ${VERSIONFILE} x86 ${NEWVERSWHAT} + +# Anything that calls 'real_to_prot' must have a %pc < 0x10000. +# We link the program, find the callers (all in libi386), then +# explicitly pull in the required objects before any other library code. +${PROG}: ${OBJS} ${LIBLIST} ${.CURDIR}/../Makefile.boot + ${_MKTARGET_LINK} + bb="$$( ${CC} -o ${PROG}.sym ${LDFLAGS} -Wl,-Ttext,0 -Wl,-cref \ + ${OBJS} ${LIBLIST} | ( \ + while read symbol file; do \ + [ -z "$$file" ] && continue; \ + [ "$$symbol" = real_to_prot ] && break; \ + done; \ + while \ + oifs="$$IFS"; \ + IFS='()'; \ + set -- $$file; \ + IFS="$$oifs"; \ + [ -n "$$2" ] && echo "${I386DST}/$$2"; \ + read file rest && [ -z "$$rest" ]; \ + do :; \ + done; \ + ) )"; \ + ${CC} -o ${PROG}.sym ${LDFLAGS} -Wl,-Ttext,0 -T ${LDSCRIPT} \ + -Wl,-Map,${PROG}.map -Wl,-cref ${OBJS} $$bb ${LIBLIST} + ${OBJCOPY} -O binary ${PROG}.sym ${PROG} + +.include +KLINK_MACHINE= i386 +.include From 07e3d9d3b31b98ea3fd90b1dded9081d363d9d19 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Thu, 2 Apr 2015 08:24:04 -0700 Subject: [PATCH 384/875] Improve error output --- test/test_color_threshold.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/test/test_color_threshold.rb b/test/test_color_threshold.rb index 48c1205f..14eec913 100644 --- a/test/test_color_threshold.rb +++ b/test/test_color_threshold.rb @@ -6,14 +6,11 @@ class TestColorThreshold < Minitest::Test def test_color_threshold langs_with_colors = Language.all.reject { |language| language.color.nil? } cp = ColorProximity.new(10, langs_with_colors.map(&:color)) - failing_threshold = [] - langs_with_colors.each do |lang| + failing_threshold = langs_with_colors.map do |lang| state = cp.within_threshold?(lang.color[1..-1]) - unless state.first - failing_threshold << [lang, state.last] - end - end - message = "The following languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold}" + "- #{lang} (#{lang.color}) is close to #{state.last}" unless state.first + end.compact + message = "The following languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}" assert failing_threshold.empty?, message end From 15f0366e12f3432fb06b0e057c33505e6ac788d8 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Thu, 2 Apr 2015 08:25:19 -0700 Subject: [PATCH 385/875] Adjust color schemes slightly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Make Perl6 a distinct blue (using Camelia’s wing as an aide) - VCL is part of the Perl group - Brighten Slim a bit so it does not conflict with Ada --- lib/linguist/languages.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 66a42f22..be1e05ba 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2349,7 +2349,7 @@ Perl: Perl6: type: programming - color: "#0298c3" + color: "#0000fb" extensions: - .6pl - .6pm @@ -2967,7 +2967,7 @@ Slash: Slim: group: HTML type: markup - color: "#ff8877" + color: "#ff8f77" extensions: - .slim ace_mode: text @@ -3209,8 +3209,8 @@ UnrealScript: ace_mode: java VCL: + group: Perl type: programming - color: "#0298c3" extensions: - .vcl tm_scope: source.varnish.vcl @@ -3248,7 +3248,7 @@ Verilog: VimL: type: programming - color: "#199c4b" + color: "#199f4b" search_term: vim aliases: - vim From 7394e9400bc82dd17f706fb375016052865f89a7 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 2 Apr 2015 14:00:03 -0400 Subject: [PATCH 386/875] Adding explicit test for new shebang parsing --- test/test_shebang.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/test_shebang.rb b/test/test_shebang.rb index a2d25117..de3344ec 100644 --- a/test/test_shebang.rb +++ b/test/test_shebang.rb @@ -38,6 +38,7 @@ class TestShebang < Minitest::Test assert_interpreter "perl", "#! perl" assert_interpreter "ruby", "#!/bin/sh\n\n\nexec ruby $0 $@" - end + assert_interpreter "sh", "#! /usr/bin/env A=003 B=149 C=150 D=xzd E=base64 F=tar G=gz H=head I=tail sh" + end end From 0722b6855b44789e3521a4c1eb7fccf60a4fa290 Mon Sep 17 00:00:00 2001 From: Dan Peterson Date: Thu, 2 Apr 2015 10:18:37 -0300 Subject: [PATCH 387/875] Add rebar-related files as erlang. --- lib/linguist/languages.yml | 4 + samples/Erlang/filenames/rebar.config | 260 +++++++++++++++++++++ samples/Erlang/filenames/rebar.config.lock | 158 +++++++++++++ samples/Erlang/filenames/rebar.lock | 16 ++ 4 files changed, 438 insertions(+) create mode 100644 samples/Erlang/filenames/rebar.config create mode 100644 samples/Erlang/filenames/rebar.config.lock create mode 100644 samples/Erlang/filenames/rebar.lock diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e0ec4e81..5d43b303 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -869,6 +869,10 @@ Erlang: - .es - .escript - .hrl + filenames: + - rebar.config + - rebar.config.lock + - rebar.lock ace_mode: erlang interpreters: - escript diff --git a/samples/Erlang/filenames/rebar.config b/samples/Erlang/filenames/rebar.config new file mode 100644 index 00000000..91d3dff4 --- /dev/null +++ b/samples/Erlang/filenames/rebar.config @@ -0,0 +1,260 @@ +%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- +%% ex: ts=4 sw=4 ft=erlang et +%% This is a sample rebar.conf file that shows examples of some of rebar's +%% options. + +%% == Core == + +%% Extend list of always recursive commands +{recursive_cmds, []}. + +%% Check required ERTS or OTP release version +{require_erts_vsn, ".*"}. +{require_otp_vsn, ".*"}. +{require_min_otp_vsn, ".*"}. + +%% Additional library directories to add to the code path +{lib_dirs, []}. + +%% == Erlang Compiler == + +%% Erlang files to compile before the rest. Rebar automatically compiles +%% parse_transforms and custom behaviours before anything other than the files +%% in this list. +{erl_first_files, ["src/mymib1.erl", "src/mymib2.erl"]}. + +%% Erlang compiler options +{erl_opts, [no_debug_info, + {i, "myinclude"}, + {src_dirs, ["src", "src2", "src3"]}, + {platform_define, + "(linux|solaris|freebsd|darwin)", 'HAVE_SENDFILE'}, + {platform_define, "(linux|freebsd)", 'BACKLOG', 128}, + {platform_define, "R13", 'old_inets'}]}. + +%% MIB Options? +{mib_opts, []}. + +%% SNMP mibs to compile first? +{mib_first_files, []}. + +%% leex options +{xrl_opts, []}. + +%% leex files to compile first +{xrl_first_files, []}. + +%% yecc options +{yrl_opts, []}. + +%% yecc files to compile first +{yrl_first_files, []}. + +%% == EDoc == + +%% EDoc options +{edoc_opts, []}. + +%% == Port Compiler == + +%% Port compilation environment variables. See rebar_port_compiler.erl for +%% more info. Default is `[]' +{port_env, [{"CFLAGS", "$CFLAGS -Ifoo"}, + {"freebsd", "LDFLAGS", "$LDFLAGS -lfoo"}]}. + +%% port_specs +%% List of filenames or wildcards to be compiled. May also contain a tuple +%% consisting of a regular expression to be applied against the system +%% architecture as a filter. +{port_specs, [{"priv/so_name.so", ["c_src/*.c"]}, + {"linux", "priv/hello_linux", ["c_src/hello_linux.c"]}, + {"linux", "priv/hello_linux", ["c_src/*.c"], [{env, []}]}]}. + +%% == escriptize == +{escript_name, "application"}. +{escript_incl_apps, []}. +{escript_shebang, "#!/usr/bin/env escript\n"}. +{escript_comment, "%%\n"}. +{escript_emu_args, "%%! -pa application/application/ebin\n"}. + +%% == LFE Compiler == + +%% LFE files to compile before the rest +{lfe_first_files, []}. + +%% Options for the LFE compiler: reuse {erl_opts, []} + +%% == ErlyDTL Compiler == + +%% Options for the ErlyDTL compiler +{erlydtl_opts, []}. + +%% == Proto compiler == +{proto_opts, [ + {compiler, protobuffs}, + {src_dirs, ["src"]} +]}. +%% Available compilers for protocol buffer files (*.proto): +%% protobuffs (default) +%% gpb +%% Optional src_dirs which is a list of directories where +%% to look for .proto files, default is src + +%% Options for the gpb protocol buffer compiler, +%% if selected by the proto_compiler option +{gpb_opts, []}. + +%% == EUnit == + +%% Options for eunit:test() +{eunit_opts, []}. + +%% Additional compile options for eunit. erl_opts is also used +{eunit_compile_opts, []}. + +%% Same as erl_first_files, but used only when running 'eunit' +{eunit_first_files, []}. + +%% == Cover == + +%% Whether to enable coverage reporting. Default is `false' +{cover_enabled, false}. + +%% Whether to print coverage report to console. Default is `false' +{cover_print_enabled, false}. + +%% Whether to export coverage report to file. Default is `false' +{cover_export_enabled, false}. + +%% == Common Test == + +%% Override the default "test" directory in which SUITEs are located +{ct_dir, "itest"}. + +%% Override the default "logs" directory in which SUITEs are logged +{ct_log_dir, "test/logs"}. + +%% Option to pass extra parameters when launching Common Test +{ct_extra_params, "-boot start_sasl -s myapp"}. + +%% Option to use short names (i.e., -sname test) when starting ct +{ct_use_short_names, true}. + +%% == QuickCheck == + +%% If qc_mod is unspecified, rebar tries to detect Triq or EQC +{qc_opts, [{qc_mod, module()}, Options]}. + +%% Additional compile options for qc. erl_opts is also used +{qc_compile_opts, []}. + +%% Same as erl_first_files, but used only when running 'qc' +{qc_first_files, []}. + +%% == Cleanup == + +%% Which files to cleanup +{clean_files, ["file", "file2"]}. + +%% == OTP Applications == + +%% Enable validation of the OTP app module list. Default is 'true' +{validate_app_modules, true}. + +%% == Dependencies == + +%% Where to put any downloaded dependencies. Default is "deps" +{deps_dir, "deps"}. + +%% What dependencies we have, dependencies can be of 3 forms, an application +%% name as an atom, eg. mochiweb, a name and a version (from the .app file), or +%% an application name, a version and the SCM details on how to fetch it (SCM +%% type, location and revision). +%% Rebar currently supports git, hg, bzr, svn, rsync, fossil, and p4. +{deps, [app_name, + {rebar, "1.0.*"}, + {rebar, ".*", + {git, "git://github.com/rebar/rebar.git"}}, + {rebar, ".*", + {git, "git://github.com/rebar/rebar.git", "Rev"}}, + {rebar, "1.0.*", + {git, "git://github.com/rebar/rebar.git", {branch, "master"}}}, + {rebar, "1.0.0", + {git, "git://github.com/rebar/rebar.git", {tag, "1.0.0"}}}, + %% Dependencies can be marked as 'raw'. Rebar does not require + %% such dependencies to have a standard Erlang/OTP layout + %% which assumes the presence of either + %% "src/dependency_name.app.src" or "ebin/dependency_name.app" + %% files. + %% + %% 'raw' dependencies can still contain 'rebar.config' and + %% even can have the proper OTP directory layout, but they + %% won't be compiled. + %% + %% Only a subset of rebar commands will be executed on the + %% 'raw' subdirectories: get-deps, update-deps, check-deps, + %% list-deps and delete-deps. + {rebar, "", + {git, "git://github.com/rebar/rebar.git", {branch, "master"}}, + [raw]}, + {app_name, ".*", {hg, "https://www.example.org/url"}}, + {app_name, ".*", {rsync, "Url"}}, + {app_name, ".*", {svn, "https://www.example.org/url"}}, + {app_name, ".*", {svn, "svn://svn.example.org/url"}}, + {app_name, ".*", {bzr, "https://www.example.org/url", "Rev"}}, + {app_name, ".*", {fossil, "https://www.example.org/url"}}, + {app_name, ".*", {fossil, "https://www.example.org/url", "Vsn"}}, + {app_name, ".*", {p4, "//depot/subdir/app_dir"}}]}. + +%% == Subdirectories == + +%% Subdirectories? +{sub_dirs, ["dir1", "dir2"]}. + +%% == Plugins == + +%% Plugins you wish to include. +%% These can include any module on the code path, including deps. +%% Alternatively, plugins can be placed as source files in the plugin_dir, in +%% which case they will be compiled and loaded dynamically at runtime. +{plugins, [plugin1, plugin2]}. + +%% Override the directory in which plugin sources can be found. +%% Defaults to ./plugins +{plugin_dir, "some_other_directory"}. + + +%% == Pre/Post Command Hooks == + +{pre_hooks, [{clean, "./prepare_package_files.sh"}, + {"linux", compile, "c_src/build_linux.sh"}, + {compile, "escript generate_headers"}, + {compile, "escript check_headers"}]}. + +{post_hooks, [{clean, "touch file1.out"}, + {"freebsd", compile, "c_src/freebsd_tweaks.sh"}, + {eunit, "touch file2.out"}, + {compile, "touch postcompile.out"}]}. + +%% == xref == + +{xref_warnings, false}. + +%% optional extra paths to include in xref:set_library_path/2. +%% specified relative location of rebar.config. +%% e.g. {xref_extra_paths,["../gtknode/src"]} +{xref_extra_paths,[]}. + +%% xref checks to run +{xref_checks, [undefined_function_calls, undefined_functions, + locals_not_used, exports_not_used, + deprecated_function_calls, deprecated_functions]}. + +%% Optional custom xref queries (xref manual has details) specified as +%% {xref_queries, [{query_string(), expected_query_result()},...]} +%% The following for example removes all references to mod:*foo/4 +%% functions from undefined external function calls as those are in a +%% generated module +{xref_queries, + [{"(XC - UC) || (XU - X - B" + " - (\"mod\":\".*foo\"/\"4\"))",[]}]}. diff --git a/samples/Erlang/filenames/rebar.config.lock b/samples/Erlang/filenames/rebar.config.lock new file mode 100644 index 00000000..1627a9b1 --- /dev/null +++ b/samples/Erlang/filenames/rebar.config.lock @@ -0,0 +1,158 @@ +%% THIS FILE IS GENERATED. DO NOT EDIT IT MANUALLY %% + +{sub_dirs,["rel","apps/riak"]}. +{require_otp_vsn,"R16|17"}. +{cover_enabled,true}. +{lib_dirs,["apps/riak"]}. +{erl_opts,[debug_info,fail_on_warning]}. +{eunit_opts,[verbose]}. +{erlydtl_opts,[{compiler_options,[report,return,debug_info]}]}. +{deps,[{rebar_lock_deps_plugin,".*", + {git,"git://github.com/seth/rebar_lock_deps_plugin.git", + "7a5835029c42b8138325405237ea7e8516a84800"}}, + {node_package,".*", + {git,"git://github.com/basho/node_package.git", + "a829631eccebe3c1d7657a0075584f55bf342977"}}, + {goldrush,".*", + {git,"git://github.com/DeadZen/goldrush.git", + "71e63212f12c25827e0c1b4198d37d5d018a7fec"}}, + {lager,".*", + {git,"git://github.com/basho/lager.git", + "b6b6cebcb27ccff8acc59ae775acebc2f52e4926"}}, + {syslog,".*", + {git,"git://github.com/Vagabond/erlang-syslog.git", + "918c9b453e0811b24f2c99b35b712b0ef9f29c7e"}}, + {lager_syslog,".*", + {git,"git://github.com/basho/lager_syslog.git", + "fa2e7e3daee0d0a59dadb820fd3381eac4a65770"}}, + {cluster_info,".*", + {git,"git://github.com/basho/cluster_info.git", + "e231144ca32dc83317be3360a4a259c73826b08a"}}, + {sidejob,".*", + {git,"git://github.com/basho/sidejob.git", + "c5aabba2d7daa80c340e110902bbcfcb552ccdcf"}}, + {erlang_js,".*", + {git,"git://github.com/basho/erlang_js.git", + "07467d899ab90a2b719ad19ab0be0048c1c8d873"}}, + {meck,".*", + {git,"git://github.com/basho/meck.git", + "dde759050eff19a1a80fd854d7375174b191665d"}}, + {getopt,".*", + {git,"git://github.com/jcomellas/getopt.git", + "659a28f4145bc9843598972854299dc4ea77e4cb"}}, + {neotoma,".*", + {git,"git://github.com/seancribbs/neotoma.git", + "760928ec8870da02eb11bccb501e2700925d06c6"}}, + {cuttlefish,".*", + {git,"git://github.com/basho/cuttlefish.git", + "c92c8325aeaea6b6ba7516bbd434f8e408f87d60"}}, + {bitcask,".*", + {git,"git://github.com/basho/bitcask.git", + "c74d0c43fdefdd435f7621ddf1fc2995b5bd123c"}}, + {eper,".*", + {git,"git://github.com/basho/eper.git", + "7222ecaebceb5422e74a9c1503043bbc6036f6b7"}}, + {edown,".*", + {git,"git://github.com/uwiger/edown.git", + "d62ec85281e451a46ba30045917c119d65b72a84"}}, + {sext,".*", + {git,"git://github.com/basho/sext.git", + "846b9cc22456287a572efd4c924203d77778670f"}}, + {poolboy,".*", + {git,"git://github.com/basho/poolboy.git", + "8bb45fbc715c5f493642a1cc572ec7017d0d5fa3"}}, + {basho_stats,".*", + {git,"git://github.com/basho/basho_stats.git", + "19c532af235ae675439d491b329c55c2f9b02deb"}}, + {riak_sysmon,".*", + {git,"git://github.com/basho/riak_sysmon.git", + "26a58bcaba96d07df885f7b3db4d4306f995ce14"}}, + {eleveldb,".*", + {git,"git://github.com/basho/eleveldb.git", + "0e4e4e7cf3ddc26523a77f853ea9409c1707b26c"}}, + {riak_ensemble,".*", + {git,"git://github.com/basho/riak_ensemble", + "78dc8f623353a212ca3cf12236d1e9ac824bde16"}}, + {pbkdf2,".*", + {git,"git://github.com/basho/erlang-pbkdf2.git", + "7076584f5377e98600a7e2cb81980b2992fb2f71"}}, + {parse_trans,".*", + {git,"git://github.com/uwiger/parse_trans.git", + "82cc00264aa1bad8fc5c0739b7541feb4a843432"}}, + {bear,".*", + {git,"git://github.com/basho/bear.git", + "da820a13c607c3f816ee8b83c587266da5389761"}}, + {folsom,".*", + {git,"git://github.com/basho/folsom.git", + "72944523b6467c9f7add5f1c96dd5020424a2681"}}, + {setup,".*", + {git,"git://github.com/uwiger/setup.git", + "51ee7c9f64d2bbe9dcbb58c278e8fbfd4d0ca5e2"}}, + {exometer_core,".*", + {git,"git://github.com/basho/exometer_core.git", + "b47a5d65d9500c2b8f6ccc50e34005503589ef77"}}, + {clique,".*", + {git,"git://github.com/basho/clique.git", + "3af4db8ea0f74aca42f6713446dcd5915c795a74"}}, + {riak_core,".*", + {git,"git://github.com/basho/riak_core.git", + "044c4e7f8dbfe8c49c45f2f7090adff4cd5aba50"}}, + {riak_pipe,".*", + {git,"git://github.com/basho/riak_pipe.git", + "3c0abc7ba301d57940c5a9c5de368b70429c28ff"}}, + {protobuffs,".*", + {git,"git://github.com/basho/erlang_protobuffs.git", + "f88fc3c6881687432ddd5546b3c7b08009dfb26f"}}, + {riak_pb,".*", + {git,"git://github.com/basho/riak_pb.git", + "78c50efa698f33f7d6ab1c7f5fa4666ec03b46b4"}}, + {mochiweb,".*", + {git,"git://github.com/basho/mochiweb.git", + "ade2a9b29a11034eb550c1d79b4f991bf5ca05ba"}}, + {webmachine,".*", + {git,"git://github.com/basho/webmachine.git", + "7677c240f4a7ed020f4bab48278224966bb42311"}}, + {riak_api,".*", + {git,"git://github.com/basho/riak_api.git", + "2781e66796903bc6847bffcf71a6ba7a05d69275"}}, + {riak_dt,".*", + {git,"git://github.com/basho/riak_dt.git", + "f7981d4ad7407ddc085f133f204dd71bf9d50c56"}}, + {eunit_formatters,".*", + {git,"git://github.com/seancribbs/eunit_formatters", + "96b6ced4d45ba641cbf2c8a8ae9b350dd300bc10"}}, + {riak_kv,".*", + {git,"git://github.com/basho/riak_kv.git", + "404619cb57574cd43e2dc0dc0453884ec6732a99"}}, + {merge_index,".*", + {git,"git://github.com/basho/merge_index.git", + "b701dde5c28956c3b629411e5ff7e50cbb5cb4b3"}}, + {riak_search,".*", + {git,"git://github.com/basho/riak_search.git", + "8fe4a8c020a74c52ee877bf6dd410824b4f79f8b"}}, + {erlydtl,".*", + {git,"git://github.com/evanmiller/erlydtl.git", + "d20b53f04837a1053ed18987f645cb60eae82453"}}, + {riak_control,".*", + {git,"git://github.com/basho/riak_control.git", + "09073ce672260e1ec0ba3999fabed7f319624ba1"}}, + {riaknostic,".*", + {git,"git://github.com/basho/riaknostic.git", + "101d95bddff4b70afcd1dd5442b8c6651887e0a4"}}, + {kvc,".*", + {git,"git://github.com/etrepum/kvc.git", + "5565fe51857747662410cc3c06362ebcf48a2f04"}}, + {ibrowse,".*", + {git,"git://github.com/cmullaparthi/ibrowse.git", + "e8ae353c16d4f0897abb9f80025b52925b974dd1"}}, + {yokozuna,".*", + {git,"git://github.com/basho/yokozuna.git", + "5868266b11f131d14c85495e50f899f3fe8158ba"}}, + {canola,".*", + {git,"git://github.com/basho/canola.git", + "9bdfee88fce20b3a01b7003696b53eb21913d6fb"}}, + {riak_auth_mods,".*", + {git,"git://github.com/basho/riak_auth_mods.git", + "31b8b30e6c215418522eaa615264ae9769a87410"}}]}. +{plugins,[rebar_lock_deps_plugin]}. + diff --git a/samples/Erlang/filenames/rebar.lock b/samples/Erlang/filenames/rebar.lock new file mode 100644 index 00000000..1d3a3982 --- /dev/null +++ b/samples/Erlang/filenames/rebar.lock @@ -0,0 +1,16 @@ +[{<<"goldrush">>, + {git,"git://github.com/DeadZen/goldrush.git", + {ref,"71e63212f12c25827e0c1b4198d37d5d018a7fec"}}, + 1}, + {<<"riak_dt">>, + {git,"git://github.com/helium/riak_dt.git", + {ref,"15d66cb26c2028c1ad1271c359b1d5da213825c3"}}, + 0}, + {<<"lager">>, + {git,"git://github.com/basho/lager.git", + {ref,"d33ccf3b69de09a628fe38b4d7981bb8671b8a4f"}}, + 0}, + {<<"eleveldb">>, + {git,"git://github.com/helium/eleveldb.git", + {ref,"29a5360dc0365b3330dd0cd45b0b8166f3b854be"}}, + 0}]. From 8591dffcae040d82c17187d1ba9d4c0ad8086447 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 3 Apr 2015 14:53:38 -0400 Subject: [PATCH 388/875] Explaining gitattributes behavior. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9df9f6fe..c7d77101 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ $ cat .gitattributes Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. Vendored files are also hidden by default in diffs on github.com. -Use the `linguist-vendored` attribute to vendor or un-vendor paths. +Use the `linguist-vendored` attribute to vendor or un-vendor paths. Please note, overriding the vendored (or un-vendored) status of a file only affects the language statistics for the repository and not the behavior in diffs on github.com. ``` $ cat .gitattributes From 004f9b4710e7c847d5ed33e5eda1fba9707b4850 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Fri, 3 Apr 2015 18:25:13 -0700 Subject: [PATCH 389/875] Use new `color-proximity` gem for better visual matching --- github-linguist.gemspec | 2 +- test/test_color_threshold.rb | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index e680b9f5..3f3a0853 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -23,5 +23,5 @@ Gem::Specification.new do |s| s.add_development_dependency 'pry' s.add_development_dependency 'rake' s.add_development_dependency 'yajl-ruby' - s.add_development_dependency 'color-proximity' + s.add_development_dependency 'color-proximity', '~> 0.2.1' end diff --git a/test/test_color_threshold.rb b/test/test_color_threshold.rb index 14eec913..f19dd73a 100644 --- a/test/test_color_threshold.rb +++ b/test/test_color_threshold.rb @@ -3,12 +3,18 @@ require_relative "./helper" class TestColorThreshold < Minitest::Test include Linguist + def cut_hash(color) + color[1..-1] + end + def test_color_threshold langs_with_colors = Language.all.reject { |language| language.color.nil? } - cp = ColorProximity.new(10, langs_with_colors.map(&:color)) + cp = ColorProximity.new(0.02, langs_with_colors.map { |lang| cut_hash(lang.color) }) failing_threshold = langs_with_colors.map do |lang| - state = cp.within_threshold?(lang.color[1..-1]) - "- #{lang} (#{lang.color}) is close to #{state.last}" unless state.first + state = cp.past_threshold?(cut_hash(lang.color)) + if !state.first && lang.color != "##{state.last.first}" + "- #{lang} (#{lang.color}) is too close to #{state.last}" + end end.compact message = "The following languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}" From 3ad66da2bff335b15b45d15030192e003e7c9ca8 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Fri, 3 Apr 2015 18:46:45 -0700 Subject: [PATCH 390/875] Adjust existing colors to pass tests A lot of these were taken from official websites. For obscurer languages, I just changed a few digits of the hex value. --- lib/linguist/languages.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9583257c..39da5113 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -46,7 +46,7 @@ AGS Script: AMPL: type: programming - color: "#00008B" + color: "#5B2E7F" extensions: - .ampl tm_scope: source.ampl @@ -101,7 +101,7 @@ ATS: ActionScript: type: programming tm_scope: source.actionscript.3 - color: "#e3491a" + color: "#882B0F" search_term: as3 aliases: - actionscript 3 @@ -705,7 +705,7 @@ D-ObjDump: DM: type: programming - color: "#075ff1" + color: "#075bb1" extensions: - .dm aliases: @@ -895,7 +895,7 @@ F#: FLUX: type: programming - color: "#33CCFF" + color: "#88ccff" extensions: - .fx - .flux @@ -1420,7 +1420,7 @@ Ioke: Isabelle: type: programming - color: "#fdcd00" + color: "#FEFE00" extensions: - .thy tm_scope: source.isabelle.theory @@ -1556,7 +1556,7 @@ Julia: KRL: type: programming - color: "#f5c800" + color: "#F89A1C" extensions: - .krl tm_scope: none @@ -1620,7 +1620,7 @@ LabVIEW: Lasso: type: programming - color: "#2584c3" + color: "#999999" extensions: - .lasso - .las @@ -1979,7 +1979,7 @@ Nemerle: NetLinx: type: programming - color: "#0000ff" + color: "#0aa0ff" extensions: - .axs - .axi @@ -2006,7 +2006,7 @@ NetLogo: NewLisp: type: programming lexer: NewLisp - color: "#eedd66" + color: "#87AED7" extensions: - .nl - .lisp @@ -3000,7 +3000,7 @@ Smarty: SourcePawn: type: programming - color: "#f69e1d" + color: "#c69e1d" aliases: - sourcemod extensions: @@ -3228,7 +3228,7 @@ VCL: VHDL: type: programming - color: "#543978" + color: "#343f7f" extensions: - .vhdl - .vhd @@ -3294,7 +3294,7 @@ Visual Basic: Volt: type: programming - color: "#0098db" + color: "#1F1F1F" extensions: - .volt tm_scope: source.d @@ -3533,7 +3533,7 @@ mupad: nesC: type: programming - color: "#ffce3b" + color: "#bbce3b" extensions: - .nc ace_mode: text From 35f2699eb34aabc5069bb93e1e3ebe74cc5f51fa Mon Sep 17 00:00:00 2001 From: Alex Efros Date: Sun, 5 Apr 2015 02:34:02 +0300 Subject: [PATCH 391/875] add Limbo: language, samples --- lib/linguist/languages.yml | 7 ++++++ samples/Limbo/cat.b | 48 ++++++++++++++++++++++++++++++++++++++ samples/Limbo/lock.b | 26 +++++++++++++++++++++ samples/Limbo/lock.m | 13 +++++++++++ 4 files changed, 94 insertions(+) create mode 100644 samples/Limbo/cat.b create mode 100644 samples/Limbo/lock.b create mode 100644 samples/Limbo/lock.m diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2833bbd2..398bb834 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1663,6 +1663,13 @@ LilyPond: - .ily ace_mode: text +Limbo: + type: programming + extensions: + - .b + - .m + ace_mode: text + Liquid: type: markup extensions: diff --git a/samples/Limbo/cat.b b/samples/Limbo/cat.b new file mode 100644 index 00000000..5b9e3b5b --- /dev/null +++ b/samples/Limbo/cat.b @@ -0,0 +1,48 @@ +implement Cat; + +include "sys.m"; + sys: Sys; + +include "draw.m"; + +Cat: module +{ + init: fn(ctxt: ref Draw->Context, argv: list of string); +}; + +stdout: ref Sys->FD; + +init(nil: ref Draw->Context, args: list of string) +{ + sys = load Sys Sys->PATH; + stdout = sys->fildes(1); + args = tl args; + if(args == nil) + args = "-" :: nil; + for(; args != nil; args = tl args){ + file := hd args; + if(file != "-"){ + fd := sys->open(file, Sys->OREAD); + if(fd == nil){ + sys->fprint(sys->fildes(2), "cat: cannot open %s: %r\n", file); + raise "fail:bad open"; + } + cat(fd, file); + }else + cat(sys->fildes(0), ""); + } +} + +cat(fd: ref Sys->FD, file: string) +{ + buf := array[Sys->ATOMICIO] of byte; + while((n := sys->read(fd, buf, len buf)) > 0) + if(sys->write(stdout, buf, n) < n) { + sys->fprint(sys->fildes(2), "cat: write error: %r\n"); + raise "fail:write error"; + } + if(n < 0) { + sys->fprint(sys->fildes(2), "cat: error reading %s: %r\n", file); + raise "fail:read error"; + } +} diff --git a/samples/Limbo/lock.b b/samples/Limbo/lock.b new file mode 100644 index 00000000..8b51e4f9 --- /dev/null +++ b/samples/Limbo/lock.b @@ -0,0 +1,26 @@ +implement Lock; + +include "sys.m"; + sys: Sys; +include "lock.m"; + +Semaphore.obtain(l: self ref Semaphore) +{ + l.c <-= 0; +} + +Semaphore.release(l: self ref Semaphore) +{ + <-l.c; +} + +Semaphore.new(): ref Semaphore +{ + l := ref Semaphore; + l.c = chan[1] of int; + return l; +} + +init() +{ +} diff --git a/samples/Limbo/lock.m b/samples/Limbo/lock.m new file mode 100644 index 00000000..ffd818c5 --- /dev/null +++ b/samples/Limbo/lock.m @@ -0,0 +1,13 @@ +Lock: module +{ + PATH: con "/dis/lib/lock.dis"; + + Semaphore: adt { + c: chan of int; + obtain: fn(nil: self ref Semaphore); + release: fn(nil: self ref Semaphore); + new: fn(): ref Semaphore; + }; + + init: fn(); +}; From f016867e1ae75e2d21cb7e8f2a75d32bda72bc71 Mon Sep 17 00:00:00 2001 From: Alex Efros Date: Sun, 5 Apr 2015 02:56:36 +0300 Subject: [PATCH 392/875] Limbo: fix tm_scope --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 398bb834..eb698aa6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1668,6 +1668,7 @@ Limbo: extensions: - .b - .m + tm_scope: none ace_mode: text Liquid: From bbea29be558f121f297e420b8557afe7ba88691f Mon Sep 17 00:00:00 2001 From: Alex Efros Date: Sun, 5 Apr 2015 03:03:45 +0300 Subject: [PATCH 393/875] add Limbo to test_languages --- test/test_language.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_language.rb b/test/test_language.rb index f3847a77..32eb4341 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -188,7 +188,7 @@ class TestLanguage < Minitest::Test assert_equal [], Language.find_by_extension('foo.rb') assert_equal [Language['Ruby']], Language.find_by_extension('rb') assert_equal [Language['Ruby']], Language.find_by_extension('.rb') - assert_equal [Language['M'], Language['MUF'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') + assert_equal [Language['Limbo'], Language['M'], Language['MUF'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') end def test_find_all_by_extension From 8b4daefbde0ac0f751a43890975fbc4c69a36dce Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 5 Apr 2015 16:45:35 +0200 Subject: [PATCH 394/875] KiCad language with .sch extension --- lib/linguist/languages.yml | 7 + samples/KiCad/Volume.sch | 714 +++++++++++++++++++++ samples/KiCad/ultimate-temp-controller.sch | 69 ++ 3 files changed, 790 insertions(+) create mode 100644 samples/KiCad/Volume.sch create mode 100644 samples/KiCad/ultimate-temp-controller.sch diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2833bbd2..9158ba73 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1562,6 +1562,13 @@ KRL: tm_scope: none ace_mode: text +KiCad: + type: programming + extensions: + - .sch + tm_scope: none + ace_mode: text + Kit: type: markup ace_mode: html diff --git a/samples/KiCad/Volume.sch b/samples/KiCad/Volume.sch new file mode 100644 index 00000000..2141db90 --- /dev/null +++ b/samples/KiCad/Volume.sch @@ -0,0 +1,714 @@ +EESchema Schematic File Version 2 +LIBS:mfk_alps +LIBS:mfk_connector +LIBS:mfk_interface +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:special +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:Volume-AlpsRK16814MG-cache +EELAYER 27 0 +EELAYER END +$Descr A 11000 8500 +encoding utf-8 +Sheet 1 1 +Title "ALPS RK16816MG with H-bridge" +Date "4 apr 2015" +Rev "" +Comp "Mithat Konar" +Comment1 "Copyright (C) 2015 Mithat Konar" +Comment2 "CERN Open Hardware Licence v1.2" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L SN754410 U1 +U 1 1 550CA683 +P 7600 4650 +F 0 "U1" H 7600 5350 60 0000 C CNN +F 1 "SN754410" H 7600 4000 60 0000 C CNN +F 2 "mfk-DIP-16_AriesC84_e" H 7600 4650 60 0001 C CNN +F 3 "~" H 7600 4650 60 0000 C CNN + 1 7600 4650 + 1 0 0 -1 +$EndComp +$Comp +L DGND #PWR01 +U 1 1 550CA83D +P 8450 5500 +F 0 "#PWR01" H 8450 5500 40 0001 C CNN +F 1 "DGND" H 8450 5430 40 0000 C CNN +F 2 "" H 8450 5500 60 0000 C CNN +F 3 "" H 8450 5500 60 0000 C CNN + 1 8450 5500 + 1 0 0 -1 +$EndComp +$Comp +L DGND #PWR02 +U 1 1 550CA86E +P 6600 5300 +F 0 "#PWR02" H 6600 5300 40 0001 C CNN +F 1 "DGND" H 6600 5230 40 0000 C CNN +F 2 "" H 6600 5300 60 0000 C CNN +F 3 "" H 6600 5300 60 0000 C CNN + 1 6600 5300 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6900 4550 6600 4550 +Wire Wire Line + 6600 4550 6600 5300 +Wire Wire Line + 6900 4700 6600 4700 +Connection ~ 6600 4700 +Wire Wire Line + 8300 4550 8450 4550 +Wire Wire Line + 8450 4250 8450 5500 +Wire Wire Line + 8300 4700 8450 4700 +Connection ~ 8450 4700 +Wire Wire Line + 3900 4450 4600 4450 +Wire Wire Line + 4400 4450 4400 4400 +Wire Wire Line + 4600 4450 4600 4400 +Wire Wire Line + 4400 5250 4400 5500 +Wire Wire Line + 4600 5400 4600 5250 +Wire Wire Line + 5700 4200 5700 4150 +Wire Wire Line + 5700 4150 6150 4150 +Wire Wire Line + 6150 4400 6900 4400 +Wire Wire Line + 5700 4850 6900 4850 +Wire Wire Line + 5700 4800 5700 4850 +Wire Wire Line + 8300 4250 8450 4250 +Connection ~ 8450 4550 +Wire Wire Line + 6400 4250 6900 4250 +Wire Wire Line + 6400 3250 6400 4250 +Wire Wire Line + 6750 3750 8450 3750 +Wire Wire Line + 8300 5000 8450 5000 +Wire Wire Line + 8300 4100 8700 4100 +Wire Wire Line + 6750 5150 6900 5150 +$Comp +L C C1 +U 1 1 550CAD46 +P 8700 4350 +F 0 "C1" H 8700 4450 40 0000 L CNN +F 1 "100n" H 8706 4265 40 0000 L CNN +F 2 "mfk-C_4.0_2.5_2.5_0.5" H 8738 4200 30 0001 C CNN +F 3 "~" H 8700 4350 60 0000 C CNN + 1 8700 4350 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8700 4100 8700 4150 +$Comp +L DGND #PWR03 +U 1 1 550CADFB +P 8700 4700 +F 0 "#PWR03" H 8700 4700 40 0001 C CNN +F 1 "DGND" H 8700 4630 40 0000 C CNN +F 2 "" H 8700 4700 60 0000 C CNN +F 3 "" H 8700 4700 60 0000 C CNN + 1 8700 4700 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8700 4700 8700 4550 +Text Label 6400 3250 3 50 ~ 0 +VOL_UP +Text Label 6400 6150 1 50 ~ 0 +VOL_DOWN +$Comp +L DGND #PWR04 +U 1 1 550CB0E4 +P 3150 2100 +F 0 "#PWR04" H 3150 2100 40 0001 C CNN +F 1 "DGND" H 3150 2030 40 0000 C CNN +F 2 "" H 3150 2100 60 0000 C CNN +F 3 "" H 3150 2100 60 0000 C CNN + 1 3150 2100 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3650 1350 3650 1800 +Wire Wire Line + 3100 2450 3850 2450 +Text Label 3850 2450 2 50 ~ 0 +VOL_UP +Wire Wire Line + 3100 2650 3850 2650 +Text Label 3850 2650 2 50 ~ 0 +VOL_DOWN +$Comp +L PWR_FLAG #FLG05 +U 1 1 550CB3B3 +P 3400 2000 +F 0 "#FLG05" H 3400 2095 30 0001 C CNN +F 1 "PWR_FLAG" H 3400 2180 30 0000 C CNN +F 2 "" H 3400 2000 60 0000 C CNN +F 3 "" H 3400 2000 60 0000 C CNN + 1 3400 2000 + -1 0 0 1 +$EndComp +$Comp +L PWR_FLAG #FLG06 +U 1 1 550CB3CC +P 3900 1650 +F 0 "#FLG06" H 3900 1745 30 0001 C CNN +F 1 "PWR_FLAG" H 3900 1830 30 0000 C CNN +F 2 "" H 3900 1650 60 0000 C CNN +F 3 "" H 3900 1650 60 0000 C CNN + 1 3900 1650 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3150 1900 3100 1900 +Wire Wire Line + 3150 1900 3150 2100 +Wire Wire Line + 3900 1650 3650 1650 +Connection ~ 3650 1650 +Wire Wire Line + 3400 2000 3150 2000 +Connection ~ 3150 2000 +$Comp +L CONN_2 P4 +U 1 1 550CCCA8 +P 2750 2550 +F 0 "P4" V 2700 2550 50 0000 C CNN +F 1 "CTRL" V 2800 2550 50 0000 C CNN +F 2 "mfk-TE_282834-2" H 2750 2550 60 0001 C CNN +F 3 "" H 2750 2550 60 0000 C CNN + 1 2750 2550 + -1 0 0 -1 +$EndComp +Wire Wire Line + 4150 3250 4150 3850 +$Comp +L CONN_5 P1 +U 1 1 550CCE69 +P 2750 3450 +F 0 "P1" V 2700 3450 50 0000 C CNN +F 1 "AB I/O" V 2800 3450 50 0000 C CNN +F 2 "mfk-TE_282834-5" H 2750 3450 60 0001 C CNN +F 3 "" H 2750 3450 60 0000 C CNN + 1 2750 3450 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3150 3250 4150 3250 +Wire Wire Line + 4300 4100 4350 4100 +Wire Wire Line + 4350 4100 4350 3350 +Wire Wire Line + 4350 3350 3150 3350 +Text Label 3150 3250 0 50 ~ 0 +A_TOP +Text Label 3150 3350 0 50 ~ 0 +A_WIPER +Text Label 3150 3550 0 50 ~ 0 +B_TOP +Text Label 3150 3650 0 50 ~ 0 +B_WIPER +$Comp +L CONN_5 P2 +U 1 1 550CCF9F +P 2800 4800 +F 0 "P2" V 2750 4800 50 0000 C CNN +F 1 "CD I/O" V 2850 4800 50 0000 C CNN +F 2 "mfk-TE_282834-5" H 2800 4800 60 0001 C CNN +F 3 "" H 2800 4800 60 0000 C CNN + 1 2800 4800 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3200 4600 4150 4600 +Wire Wire Line + 3200 4700 3900 4700 +Wire Wire Line + 3200 4900 3700 4900 +Wire Wire Line + 5100 4950 5100 5700 +Wire Wire Line + 5100 4950 4950 4950 +Wire Wire Line + 3200 4800 3800 4800 +Wire Wire Line + 5000 4600 5000 5600 +Wire Wire Line + 5000 4600 4800 4600 +Wire Wire Line + 4800 4600 4800 4700 +Wire Wire Line + 4300 5400 4300 4950 +Text Label 3200 4600 0 50 ~ 0 +C_TOP +Wire Wire Line + 3900 5400 4300 5400 +Wire Wire Line + 4400 5400 4600 5400 +Wire Wire Line + 3900 4700 3900 5400 +$Comp +L RK16814MG RV1 +U 1 1 550CA765 +P 4500 4500 +F 0 "RV1" H 5850 5250 50 0000 C CNN +F 1 "RK16814MG" H 5700 3600 50 0000 C CNN +F 2 "mfk-ALPS_RK16814MG" V 4800 4900 60 0001 C CNN +F 3 "~" V 4800 4900 60 0000 C CNN + 1 4500 4500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4150 4600 4150 4700 +Text Label 3200 4700 0 50 ~ 0 +C_WIPER +Text Label 3200 4900 0 50 ~ 0 +D_TOP +Text Label 3200 5000 0 50 ~ 0 +D_WIPER +Wire Wire Line + 3900 3450 3900 4450 +Connection ~ 4400 4450 +Connection ~ 4400 5400 +Text Label 3150 3450 0 50 ~ 0 +AB_COMMON +Wire Wire Line + 3600 5000 3200 5000 +Text Label 3200 4800 0 50 ~ 0 +CD_COMMON +$Comp +L +5VD #PWR07 +U 1 1 550CE6FC +P 7600 3650 +F 0 "#PWR07" H 7600 3600 20 0001 C CNN +F 1 "+5VD" H 7600 3750 50 0000 C CNN +F 2 "" H 7600 3650 60 0000 C CNN +F 3 "" H 7600 3650 60 0000 C CNN + 1 7600 3650 + 1 0 0 -1 +$EndComp +$Comp +L +5VD #PWR08 +U 1 1 550CE733 +P 3650 1350 +F 0 "#PWR08" H 3650 1300 20 0001 C CNN +F 1 "+5VD" H 3650 1450 50 0000 C CNN +F 2 "" H 3650 1350 60 0000 C CNN +F 3 "" H 3650 1350 60 0000 C CNN + 1 3650 1350 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3900 3450 3150 3450 +Wire Wire Line + 4800 3850 4800 3550 +Wire Wire Line + 4800 3550 3150 3550 +Wire Wire Line + 4950 4100 5000 4100 +Wire Wire Line + 5000 4100 5000 3650 +Wire Wire Line + 5000 3650 3150 3650 +Wire Wire Line + 3600 5000 3600 5700 +Wire Wire Line + 3700 4900 3700 5600 +Wire Wire Line + 3800 4800 3800 5500 +Wire Wire Line + 3800 5500 4400 5500 +Wire Wire Line + 3700 5600 5000 5600 +Wire Wire Line + 3600 5700 5100 5700 +$Bitmap +Pos 10300 6850 +Scale 1.000000 +Data +89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 5F 00 00 00 64 08 06 00 00 00 E0 F1 EC +9B 00 00 00 04 73 42 49 54 08 08 08 08 7C 08 64 88 00 00 00 09 70 48 59 73 00 00 07 6C 00 00 07 +6C 01 9C F3 D5 25 00 00 13 B3 49 44 41 54 78 9C ED 9D 7B 7C 54 D5 B5 C7 BF EB CC 04 C2 43 1E 5A +45 D0 2A F6 FA 82 52 A0 6A D5 D6 5A B1 3E 69 21 27 40 A3 F6 E1 55 51 4E 78 5C B5 B4 DA 56 3F 7E +8A 69 BD D4 6A 6F 6F AB AD 90 13 90 48 3F B7 B6 E6 16 66 22 8A F6 65 44 AD AD A2 45 B4 A5 D6 17 +88 12 15 5A 0C F2 CA 64 E6 AC FB C7 3E 93 49 86 10 66 92 7D 48 E8 E5 F7 F9 E4 33 AF BD D7 59 FB +77 76 F6 D9 7B ED B5 D6 16 55 E5 40 80 F8 C9 7B 80 59 05 14 5D A0 9E 3B 3B 6A 7D 6C C0 E9 69 05 +8A C0 85 96 CB F5 38 E4 40 E8 F9 E2 27 0F 01 9A 00 29 A0 B8 02 83 D5 73 3F 88 56 AB EE E3 40 E9 +F9 63 29 8C 78 C2 72 63 23 D4 C5 1A 0E 14 F2 C7 45 5C BE 47 70 A0 90 3F 3E E2 F2 3D 82 83 E4 F7 +20 22 27 5F FC E4 67 C5 4F 5E DE 8D FA 31 60 4C 91 D5 C6 84 F5 BA 7A CD CB C5 4F 7E B6 AB F5 0B +45 A4 E4 8B 9F 2C 03 56 02 4B C5 4F AE 14 3F 39 A2 0B 62 4E 04 FA 15 59 A7 5F 58 AF 28 88 9F 1C +21 7E 72 25 B0 14 58 19 EA 1F 19 22 23 3F 54 BC 0E E8 13 7E 75 31 F0 92 F8 C9 CB 8A 14 75 4A 17 +55 38 B5 98 C2 A1 5E 2F 61 F4 04 A3 77 5D 94 37 20 92 79 7E 07 C4 E7 E3 01 60 B6 7A EE 3F 3A 91 +31 00 B8 0C A8 02 8E EA 82 1A 8D C0 AD C0 CF D5 73 B7 77 72 9D C3 80 7B 80 4B F6 52 24 05 54 A8 +E7 D6 77 41 87 4E 61 9D FC 02 88 CF A2 11 98 A1 9E FB 50 5E FD 31 40 25 70 39 30 D8 82 4A 1F 00 +3F 03 16 AA E7 BE 98 77 AD CF 03 35 C0 F0 7D C8 88 E4 06 58 25 BF 08 E2 DB 62 11 70 3B F0 49 60 +26 70 96 35 85 F6 C4 53 C0 42 E0 69 E0 5B C0 35 45 D4 B5 7E 03 AC 91 DF 45 E2 0F 34 58 BD 01 36 +1F B8 35 FC 6B 13 0F A6 7D 35 B6 84 D9 24 FF 4E 8B B2 7A 33 AC B5 D3 26 F9 3F 04 9E B4 28 AF 37 +E2 49 4C 3B AD C0 F6 03 F7 23 C0 0B C0 40 6B 42 7B 0F B6 03 E3 D4 73 5F B7 25 D0 EA 22 2B 54 EC +06 9B 32 7B 11 6E B0 49 3C 44 B7 C8 5A 49 6E A5 F8 AF 80 47 D4 73 27 DA 16 1A 95 79 E1 6A 60 6B +44 B2 F7 37 B6 62 DA 63 1D 91 90 AF 9E BB 09 98 13 85 EC 1E C0 9C B0 3D D6 11 E9 1E AE F8 C9 06 +E0 9C C8 2E 10 3D 1E 57 CF 9D 10 95 F0 A8 ED F9 F1 88 E5 47 8D 48 F5 8F AC E7 8B 9F 1C 07 AC 89 +44 F8 FE C5 78 F5 DC 17 A2 10 1C 65 CF BF 2E 42 D9 FB 13 91 B5 23 AA A9 E6 61 C0 5B 40 A9 75 E1 +39 BC 05 BC 0C 9C 04 1C 1D E1 75 76 03 47 77 B6 F7 D0 55 44 35 A6 CD C0 3E F1 29 E0 2E E0 31 E0 +39 F5 DC 77 B3 3F 88 9F 1C 86 D9 B9 3A 17 D3 53 6D 1A F8 4A 31 ED B9 DD A2 4C 20 9A CD 94 18 F0 +06 F0 61 8B 62 D7 00 57 A8 E7 AE 2D E0 FA 63 81 FB B0 EB C1 B0 11 38 4E 3D 37 63 51 66 24 63 FE +97 B1 4B FC 7C E0 F4 42 88 07 08 CB 9D 1E D6 B3 85 0F 63 DA 65 15 DD EA F9 E2 27 FB 03 1F C3 F4 +B2 F1 18 4F B1 D3 81 2E BB 6D E4 A1 4E 3D 77 6F 7B AB FB 84 F8 C9 07 80 0A 4B BA 64 80 67 30 86 +C3 35 E1 DF 8B EA B9 3B BB 2A B0 60 F2 C5 4F 96 00 E7 63 08 CE 92 7D 02 D1 CD 98 36 03 1F 55 CF +DD DC 55 01 E2 27 0F 07 FE 02 1C 6E 4D AB F6 08 80 57 C8 DD 8C 17 80 DF AA E7 B6 14 52 B9 98 07 +EE 95 80 5F AC 76 DD C0 9C EE 10 0F A0 9E BB 59 FC E4 1C 8C B7 44 14 70 30 B3 AD 93 80 4B C3 EF +3C 0A DC ED 2A A6 D7 0E 28 4E AF 6E A1 51 3D B7 CE 86 A0 50 4E A3 0D 59 05 A2 60 9E 7A AB AF E6 +EA 5E 2E CF 0A 7A 2B F9 CF F5 72 79 56 D0 5B C9 3F D8 F3 7B 10 7B 75 EF EB 25 F2 AC A0 B7 92 7F +5C 2F 97 67 05 BD 95 FC 13 7A B9 3C 2B E8 AD E4 5F 22 7E B2 D0 00 B8 4E 11 CA E9 F2 2A 39 4A 14 +43 FE FE 0C AD 3C 1E B3 9A B6 81 F3 43 79 FB 0B 05 F3 54 CC 0A B7 16 78 8D 9C 0D 67 1C 30 1A E8 +5B 8C 66 45 60 BE F8 C9 86 42 97 EA 1D 21 34 89 D8 34 B0 E5 A3 19 F8 2B C6 AC 90 B5 F9 3C 51 68 +E5 82 C9 0F CD A9 0D E1 1F 00 E2 27 E3 C0 C9 E4 6E C6 29 C0 79 85 CA DC 07 4E C3 10 77 63 37 64 +CC 0F E5 D8 C2 EF 80 E7 C9 91 FD 37 F5 DC 74 57 85 45 61 CF FF 09 F6 DC 46 14 F8 86 7A EE 0F BA +A0 C7 0D C0 1D 14 1E 3C BD 2F FC 54 3D F7 3F 2C C9 02 A2 21 7F 14 E6 5F D1 26 EE C5 84 11 35 17 +70 FD BE 98 30 9F E9 96 75 18 AD 9E BB CE A6 C0 A8 F6 70 57 01 67 5B 16 FB 22 50 DE 99 BF 64 E8 +A8 9B C0 EC 31 D8 C4 13 EA B9 9F B1 2C 33 B2 A9 66 14 A6 E7 8F 01 1F DD 47 99 8F 62 9F 78 88 C8 +94 1E 15 F9 FF 8B 7D 5F CD B7 31 31 BD 9D 61 65 58 CE 26 B6 62 DA 63 1D 51 F9 6A EE C6 04 12 DB +84 BF AF 99 45 F8 BB ED 5E BA 34 6C 8F 75 44 B9 C2 B5 16 BB 04 A4 8B 90 57 13 96 B7 05 9B ED 68 +87 C8 C8 57 CF FD 0B F6 86 9E 84 7A 6E 41 BB 51 61 B9 84 A5 EB 6E 0D DB 11 09 A2 0C FF BF 1C 18 +6A 49 DC 3D 11 97 DF 1B 86 76 27 69 C7 BE 10 D5 54 F3 68 4C 1E 03 1B 11 E4 7F 53 CF 1D D5 05 1D +D6 61 56 DF DD 45 13 30 46 3D F7 2D 0B B2 DA C1 7A CF 0F AD 88 4B B0 43 3C C0 82 FD 5C 2F 1F 83 +81 25 B6 AC AC 6D 11 C5 B0 33 1B 7B 16 C9 1D 18 D7 BF AE E0 BE B0 BE 0D 9C 8F 69 97 55 58 25 5F +FC E4 09 18 7B 8A 2D FC 5C 3D B7 A9 2B 15 C3 7A 3F B7 A8 CB 1D 61 FB AC C1 1A F9 A1 83 EC 52 A0 +BF 2D 99 74 FF C1 69 EB C1 0B A6 5D 4B BB 93 C1 2A 1F 36 7B FE 37 80 33 2D CA FB A3 7A 6E B7 22 +5B C2 FA 7F B4 A4 0F 98 F6 7D C3 96 30 9B E4 7F D5 A2 2C B0 D7 6B 6D F6 7E B0 D8 4E 9B E4 5F 81 +D9 D9 B1 81 2D D8 F3 AF 7C 20 94 67 03 CD 98 76 5A 81 35 F2 D5 73 1F 01 CA 29 EE 06 28 F0 3F C0 +43 79 DF DF 5B 88 ED BE 40 BD 9A 31 FB 01 6D F1 50 78 DD 62 16 39 CD 18 93 F6 23 36 F4 02 FB B9 +17 8A B9 01 6F 02 E7 A9 E7 7E 45 3D 77 12 26 C3 D4 2A 8C DB 75 B5 4D BD 42 79 41 28 FF 2C F5 DC +49 EA B9 5F C1 6C 79 BE 59 40 7D EB C4 43 74 2B DC 8B 31 F6 95 BD 6D AE D7 02 D7 AB E7 6E EB A0 +EE D1 51 AC 26 F7 26 57 FC E4 20 E0 C7 18 17 F8 8E 10 09 F1 10 6D 1C 6E 47 37 E0 3D C0 53 CF 4D +46 72 D1 6E 40 FC A4 8B 31 47 1F D1 E6 EB C8 88 87 68 AD 9A F9 43 50 02 63 23 E9 75 C4 03 84 7A +8D 21 67 11 8D 94 78 D8 0F F9 F3 C5 4F 7E 1A 18 6E 2B D8 61 7F 40 FC 64 05 26 40 23 D2 CC 59 07 +C4 E1 05 FF AA E8 AD BE 9A FF 2F 70 90 FC 1E C4 41 F2 7B 10 07 C9 EF 41 1C 24 BF 07 71 90 FC 1E +44 1C 40 FC 15 FD 91 CC 6C 94 B3 50 FA 01 7F 42 32 0B D5 9B DA 08 20 8B 96 1D 4D 26 B6 08 61 23 +E2 FC 08 74 2E AA 27 80 AE 25 16 FC 40 AF 9E BA 21 2B 50 40 A8 4E 4C C7 61 32 EA 0C 41 83 35 68 +FC 4E 9D 39 A9 D5 93 4C AA 93 8F 20 A4 08 62 B3 88 65 6E 41 39 09 E1 61 E2 A9 FB F4 AA 8A 4E A3 +CE A5 BA FE 34 24 98 08 72 2E E8 56 90 75 A4 A9 D6 D9 EE C6 D6 32 FE 8A 0F 41 7A 16 22 67 A2 64 +10 79 9A DD 25 3F D5 6B 27 6E 33 ED A9 1F 4B 46 EF 40 58 AD 9E 7B 4B 6B BD 9A E5 E7 10 38 37 21 +34 A8 E7 DE DE AE DD 8E DC 8D EA D7 51 8E 02 EA 29 49 DD AF 57 55 6C 96 EA E5 E3 10 67 16 30 0A +65 23 8E 3C CE A6 41 4B 74 DE 84 34 80 DC 5B 7F 08 69 FD 26 AA 9F 44 64 17 C8 E3 34 97 DC A5 D7 +4E 6C 16 EE 7A 78 10 7D 53 7F 04 F2 3D 04 DE 45 63 67 6B E5 A4 57 C4 5F 71 32 64 D6 61 F6 44 1D +DA 1F A3 F1 0E 64 4E 69 BD 51 7E F2 7E CC A1 03 6D B1 0D 71 CE D7 19 93 9F 0D CB 28 C6 D0 B5 85 +F6 CB F9 9D 88 73 BA CE 98 DC A1 AF 8C F8 89 AF 83 74 E4 2E BE 03 63 A4 FB 93 2C 4C 8C C4 91 A7 +80 FC 23 42 5E 25 96 3A 43 AF AE F8 A7 2C 4C 4C C0 91 C7 50 1E D5 4A B7 35 FF A7 D4 D4 5F 86 EA +FD C0 2F D5 73 2F 6B D3 EE ED 61 BB C3 5D 3A D9 4C 26 7D 26 F1 F8 79 A8 2E 20 3F D1 87 EA EF E9 +CB 34 00 52 F2 67 60 64 9E 2E 6B E9 D7 EF 53 0E A5 A9 9B 31 C4 6F 04 AE 47 F5 4B 18 8F E0 61 38 +E9 FC A4 CD 03 80 DF A3 72 0E A2 97 62 6C 35 47 42 7C 96 51 3E 31 11 43 FC 1B 88 7C 11 62 A7 A2 +F2 00 30 08 0D F2 DD 07 1D 60 13 C8 25 28 D3 41 5E 07 FA A3 C1 BC 0E C8 CD D2 73 63 D8 B8 EB 88 +65 46 12 E8 19 20 FF 85 92 C0 73 9F 31 52 E5 76 0C F1 EB 40 AE 44 65 16 B0 1E 38 9E 74 C9 B7 F7 +2E BB 53 0C 04 9E 04 BD 08 F8 1A 9A 71 D1 58 0B AA 3F 0C DB 51 8F 52 16 72 F2 32 48 23 A9 F7 76 +90 92 2A 60 24 CA A3 08 67 A1 94 61 B8 1D CB AE 5D F3 E2 A8 5C 0C 0A AA DF D4 CA F2 FB 01 A4 7A +F9 5F 11 67 8D F9 2D 0F E9 92 6B 74 F6 E7 DE 01 90 9A E4 31 28 77 82 8E 36 A4 38 E5 A1 AC FF 56 +CF FD 05 80 D4 26 2A 49 89 0B 9C 2C 0B 13 23 75 66 F9 FA 36 64 7E 4D BD B2 C7 CC 35 93 20 DC 0B +D2 E1 59 27 52 57 17 83 3E 31 20 4D 89 F3 2B 9D 5E BE 09 D8 80 49 C3 D2 16 46 67 0D AE D6 CA 29 +4F 1B D9 0F 36 22 41 02 E9 A0 3D 85 41 09 B4 32 D4 FD D7 A6 ED F5 D7 A3 3A 10 58 AD 9E EB B6 EA +79 4F DD C3 CC AE D8 A1 A0 E2 27 CB 01 08 32 B3 B5 72 EA EB 21 67 71 94 65 C0 E7 E2 A0 E6 3C 12 +47 73 21 F2 87 A6 5F 62 6B 9F 9D 40 7F F9 E9 F2 C3 28 29 C9 FE B2 2D 4B 7C 88 D7 C2 D7 21 A1 8E +C6 49 49 E4 02 F1 13 6D 49 FC 00 E8 4B 4C 8E C7 F4 42 80 16 1A FF FC 38 84 E7 C1 C4 32 BF 21 88 +01 DA 61 E2 08 AD A8 C8 88 9F 5C 02 DC 48 5A D7 8B 9F 5C 0B F2 1E 12 AC 03 7E A6 33 CA D7 C8 CF +7E 3D 00 E3 67 93 61 67 3A B7 FF 2B 2D CF 84 23 43 57 CE 5E 01 F4 D5 F6 9D 06 50 0D 87 69 6D B7 +11 A4 B3 2B B6 43 F8 1C 35 49 92 76 10 73 BE 2D 7E 68 AF 13 A7 4F B8 87 73 72 9C 6C C6 6F 4D B7 +E6 2C 0B 1B BA 19 38 96 52 1D 48 2E B9 55 7B 37 0E 71 9A D0 00 90 AC D9 F8 D0 F0 75 72 87 D1 38 +81 B4 8D 01 0B 74 DE BC A0 F5 53 AA 34 4D 7C 1F B1 6F 2D C1 F7 29 71 52 98 A8 93 53 CD 7F 99 4C +04 E6 C8 E2 FA 31 68 6B 24 E0 07 3A B7 62 57 AE E2 96 2D 30 2C 0D F4 97 AA 2A 87 61 C5 9E DE 27 +C1 9E 5F 71 98 E1 D0 79 A3 C3 2A 01 43 71 10 60 00 48 6E EB 31 67 4B 8B C5 31 E9 50 8E 43 E2 E3 +81 C7 01 4C 6F 77 8E 05 60 67 BF 77 E8 9B C9 46 70 1F 25 BE 5F A2 9E D7 12 0A 1A 19 4A 0C 6F 8A +FE 1D 64 0C 4A 99 56 BA 0F 16 D9 C2 7D 42 E7 4C F9 07 70 8B 54 55 7D 9B C3 3F 71 04 B1 F4 D1 88 +7E 0B 98 46 9A CB 78 E7 CF F3 19 3E 3E 03 0C 91 C5 CB 8E 6D 9D 85 39 47 8C 25 20 0E 34 EA BC 79 +81 D4 2C 57 54 40 F2 D2 91 69 11 E9 C9 94 97 C3 37 17 D2 91 63 D7 CC 49 9B F0 93 3B 00 A5 5F BF +23 F5 F2 0B F7 70 E0 72 00 13 66 A3 CE 54 F1 FD 12 01 A1 24 F6 C5 F0 F7 B7 F5 DA 89 CD ED CB 1F +99 3B 6F 56 35 FB FE 9F E1 6B F6 34 9E AB A4 AA CA 01 90 BB 57 0E 92 9A FA 2F 4B 5D 5D B7 32 FE +49 5D 5D 4C FC E4 0F C5 AF 3F 57 E7 CD 0B 74 F6 E7 DE D1 CA B2 D5 48 E8 1A 22 3A 3E FC 4F 5A 0F +40 10 AB 90 AA 2A 47 AA 1A E2 04 8E 09 82 96 B0 AD 69 CD 4E 4B 47 8B BF FC D3 90 1D 26 F4 2B 85 +2B D4 9A C9 E4 62 59 58 FF F1 D6 AF 6B 12 57 4A F5 F2 71 6A C6 96 97 80 81 EC DA D9 9A 9F 4D 16 +D7 1F 2F 7E FD E7 01 E2 A8 7E 0F 91 F3 80 EB 60 D8 17 F0 93 4D E4 A6 9D DF DB F3 AA FA 2B F1 93 +7F 00 8E 6C 2D A7 84 B6 FA F8 4F 20 98 8D E8 14 86 8F 7F 53 AA EB 9F A2 AF 4E 44 39 84 F7 4B AE +10 B8 48 8B DB B4 CE 61 6B 89 07 CC 05 FD AA F8 C9 E7 50 5E 02 86 23 61 AE 66 D5 95 E1 EB F7 10 +59 84 72 27 C3 C7 57 42 53 1F E0 18 F3 9B 98 F6 CC 9A FA 06 7E F2 AF C0 68 70 56 89 9F CC 4E B5 +87 14 AC CF 0C 37 41 75 F2 09 84 B3 71 F4 79 F1 13 CF 83 F4 03 19 85 C8 56 59 52 77 12 D2 67 1E +CA 23 20 D5 E2 27 2A C1 79 37 9C 31 39 E2 27 6E 70 B4 B2 FC 77 66 AA C7 36 CC 14 6D 14 D0 02 F2 +5D 1A D7 E4 3B 9B 6E 40 B9 1F 93 BF 32 7B 83 6E CF 0E 31 EA 4D DA 82 F2 05 4C B2 D1 A3 10 BD 04 +38 04 78 0D 8D 7F AB CB C4 03 EA 95 2F 08 A7 72 1B 81 D3 10 AE 44 B8 08 78 15 B8 49 2B CB 17 03 +50 59 7E 2F 22 37 63 76 A2 8E C7 10 BF 13 74 B6 7A 65 0F 81 79 52 40 6C 1A C8 4A F3 91 4F 82 B4 +80 14 1C D5 A2 A0 48 E6 52 44 C3 9D 39 39 25 E4 64 13 2A 97 EA 55 15 9B 75 86 FB 28 AA D7 01 4D +E6 77 9D 08 38 A8 AC 20 D6 B2 A4 75 33 45 AA 1A E2 1C B9 6D 3C 4E 66 00 DB D3 CF B4 7D 60 B5 59 +6C BC AC 9E 7B B2 F8 2B 8E 41 83 D1 68 E6 79 9D 39 E5 BD 7C C5 A4 AA 21 CE 51 EF 8F 23 23 23 70 +82 97 99 31 E5 95 B6 C4 CB A2 07 CF 24 9D 09 74 66 F9 33 B9 6B F8 25 38 C3 4F 25 90 94 7A 93 9E +EF AC E1 66 E5 19 1F 43 09 6B 75 7A 59 87 E9 D5 E5 EE 95 7D 29 69 39 8D B8 64 08 1A 9F 6B 7D 4E +E5 97 5B 98 18 49 4C 8F A5 74 C0 6A B6 ED 28 A5 6F FC 04 44 B7 E8 D5 65 AF 4A 6D 43 29 E9 0F C6 +93 49 EF D2 CA 29 7B CD A7 6C 64 30 8A 40 36 68 A5 BB 47 18 AC F8 75 83 71 FA 8C 25 23 03 C8 C4 +D7 B4 4E D5 0B D9 C9 CA 27 7F 9F 15 22 80 D4 26 86 90 6A 51 F5 2A BA E4 38 DB 1B 71 40 A4 58 97 +DA 86 52 52 B2 15 FA 34 13 6D 7E E6 FD 8A 83 56 CD 1E C4 41 F2 7B 10 5D 22 5F AA AA 1C 59 52 D7 +69 96 56 A9 4D 0C 91 BB 57 0E EA F0 37 DF 2F 91 DA 86 D2 D6 B5 C0 E2 BA 43 F3 D7 01 02 22 F7 3C +7C 64 87 F5 EF 5E D9 57 6A 1B 4A 25 6F 19 2D BE 5F D2 D1 7A 42 6A 1B 4A A5 B6 A1 B4 7D D9 BA C1 +E2 D7 75 18 BA D4 AA 5F 5D 5D 0C 40 16 3C 34 54 EE 5E B9 87 F7 9D DC 53 37 50 16 D5 0F EB 48 46 +21 28 F6 81 FB 77 4C 00 C4 CD 40 7F 84 06 54 7F AC 5E 79 22 57 36 F9 25 CC FA E0 18 4C FE E1 35 +C0 2A 88 CD 57 6F D2 96 B0 CC 2F 80 4B 41 6F 00 F9 22 26 FD FA 3F 81 85 78 EE 2D F8 89 5B 40 E6 +62 A2 19 DF 46 E4 86 D0 D4 DB AC 9E 5B 2A 7E 72 35 70 2A 2A 17 6A 65 D9 6F DA 5C FB 15 60 10 8D +6B 86 67 4D 17 C6 FE AF CF 02 6F E1 B9 C7 50 9D 9C 86 70 27 C6 CC 1B 00 2F A0 BA 8A 4C 9F DB 5B +67 21 7E A2 D6 98 04 E4 D6 70 7A 78 06 F0 3E 48 AD 7A 65 73 A5 66 F9 89 E0 54 A3 9C 83 E9 00 9B +40 6E 56 AF AC A8 10 A6 62 7B FE 89 C0 6D 21 A9 01 CA 04 90 5F 49 75 FD 67 20 34 4B A0 B7 62 0E +13 58 0B FA 3C 66 EE 3B 17 49 77 10 A2 23 3F C0 E4 E8 69 02 06 A3 D2 80 9F 98 09 F2 1D 0C F1 DB +81 41 21 F1 6D B1 DC BC B4 AE B0 91 EA E5 E3 30 F3 FA 23 18 31 36 97 74 C3 E1 82 B0 6C 02 BF 6E +10 C2 77 30 1D E3 45 E0 59 E0 44 44 AE 27 D6 D2 81 4B BA DE 8A 21 BE C9 E8 21 0D E2 AF E8 8F 3A +BF 35 6D 67 1B C6 B8 38 02 B4 56 6A EA 8B CA 74 52 FC B0 23 7A 1B 3B 52 C3 08 F4 DF 30 C9 42 1D +24 B8 02 B2 B6 97 96 4F A0 72 AE 7A EE 38 F5 CA 4F 87 D8 28 20 85 CA 67 43 AB 63 5B AC 27 93 39 +1E DE 3D 1C 47 4E 09 7B F1 55 E1 85 16 30 34 35 84 C6 C1 87 62 CE CC 6D A3 75 B0 CC 14 E1 A2 9C +5E B1 69 6D 0A B4 79 9F BD 41 CE 32 F5 2A 9A 48 A7 4E 07 39 5F 3D 77 AC 7A EE 99 94 A4 8E 03 76 +21 9C 2D B5 89 FC 15 EE 26 34 76 22 8D 83 3F 84 06 A7 68 E5 E4 24 9A B9 16 63 AD 4C 40 6C 04 9E +7B 02 E6 1C 5F 50 BD 23 7F 28 EC 0C C5 92 BF 8B 98 73 87 CE AD D8 A5 33 CB D7 87 BB 38 80 B4 CE +FD D5 AB 68 D2 CA B2 55 B9 CF 93 DE C4 1C 66 10 63 FB EE FC E3 35 6A 74 D6 D4 D7 D5 F3 5A F4 9A +B2 30 3F BE 7C C8 68 26 4B B5 A2 22 A3 F3 26 A4 D1 A0 9D 7F BD 5E 33 65 1D F0 37 E0 63 E2 2F 0B +4F 71 D6 69 98 5E F8 07 94 29 02 62 7A 29 9F 02 FE C1 D0 E6 55 60 4C BE D9 3D 04 00 B3 6D 29 7F +07 A0 59 8F CD D3 6F A9 56 4E 7A 45 E7 4D 48 B7 59 64 9D 11 D6 5C A0 DE A4 9D 66 F1 F8 EE BD 98 +5D B9 C3 A8 5E 51 70 3E B7 62 E7 F9 6F EA F4 B2 5C 02 B7 58 EC 2F 04 01 B4 D9 46 93 EA FA 99 88 +7A 98 21 2A 2B DF 3C 04 63 4E 5E AF D0 0E 92 22 C9 40 50 48 A7 73 79 75 94 D7 F6 E8 4F AA CB 11 +B9 09 8D 5D 20 FE 8A 67 80 D1 20 3F 42 78 0F D5 F9 2C 7A F0 0C 24 33 14 95 3E 40 BD 56 54 64 00 +A4 A6 7E 3A 1A CC 01 39 11 C8 6E 54 18 FD 1C 69 7F 15 D1 97 F7 54 2F 1B 58 2D F5 E2 67 7D 7E 87 +B5 91 D1 32 02 93 D6 7D 9F B0 BA C8 92 85 F5 67 E1 E8 02 60 37 CA B3 38 6A AC 9D 2A E7 51 F0 49 +A1 6A 6C E7 71 CD CD 5A E2 DA 87 3D 2C EA CE 32 D0 9B CC D0 93 31 A6 60 47 1E 24 9D 7E 0F C7 99 +4F 26 98 86 88 E9 14 62 86 29 59 94 38 15 95 C5 20 CD 08 AB 41 B7 84 FA 9D 0B 74 38 33 EB A0 95 +A9 D0 52 F2 24 A2 7B 66 AA CD 50 F0 C1 36 76 57 B8 4E 30 03 04 54 2E 6A 3B F4 88 9F DC 44 E1 C7 +B4 6E 07 86 41 EC 38 CC 89 40 90 89 7F 04 69 3F 2B D3 CA B2 D5 E2 27 37 62 02 94 47 03 EF F3 F6 +21 AB 74 DE 84 B4 F8 C9 0D 88 4C 05 DD 0D 6C 67 77 A9 99 11 05 32 23 AC 5D A6 33 CA 7F DD 46 BF +37 28 98 7C 5D 07 8C 43 F5 7E F5 42 63 5E 17 61 79 91 E5 1C 11 4A FD B8 D4 D5 F5 11 90 70 53 7D +78 11 42 8C 8B 49 C0 8D E2 AF 38 46 16 2F 3B 16 D1 9B C2 DF F2 E7 C5 CB 31 DE 0F E3 81 47 B2 EE +1A C0 0A D0 8F 00 A3 51 79 B8 75 4F 42 B3 9E 12 72 5A 76 9D 20 7E FD B9 EC E9 5D D0 09 E4 29 F3 +22 D7 C9 A2 07 CF 94 AA 86 B8 D4 D4 5F 26 7E B2 5E 16 D4 9F 54 44 3B 2D 93 AF 7A 5F F8 FA 23 B6 +F6 79 1F 3F B9 1D 95 87 8B 93 21 3F 0E DF 4D 86 CC 06 32 B1 F5 E4 D2 09 B4 1F 93 03 5D DE E6 53 +6E E7 4C 65 45 EB 7B 87 5C 19 D1 AC 07 C5 7F 92 6A DA 8A 9F FC 00 F4 F7 45 E9 37 B4 79 01 E8 B3 +C0 58 82 E0 69 86 37 6D 0B A7 C2 93 89 E9 5D C5 88 2A 90 FC 74 0B B0 01 D5 F6 29 B4 D2 DA 8C F1 +20 68 04 D0 4A F7 97 88 FE 3B B0 16 D3 4B DF 45 F4 36 CC D9 56 1B 42 39 80 6E 0E EB ED 71 D8 8B +56 96 2D 0B ED F6 7F C2 CC A3 57 85 CF 8C 0D E1 5F 0E 87 B5 3C 11 5E EB 0D 32 F1 5C 0A B0 54 C9 +63 98 05 E1 6B C4 72 91 8E EA 95 27 8C 4B 0B 6B 30 6B 95 2D 08 DF 47 79 14 D8 40 20 A9 90 96 2D +E1 E7 3D C6 74 F3 E0 6E B9 00 E4 0E CC EC 2A 00 9E 03 F9 2E 43 53 93 3B E7 B1 3D FE 0F E4 2C B5 +B8 3A B8 3B 5D 00 00 00 00 49 45 4E 44 AE 42 60 82 AC $EndBitmap +EndData +$EndBitmap +Wire Wire Line + 5350 4600 5250 4600 +Wire Wire Line + 5350 4400 5250 4400 +$Comp +L GND #PWR09 +U 1 1 550CF9FF +P 5350 4700 +F 0 "#PWR09" H 5350 4700 30 0001 C CNN +F 1 "GND" H 5350 4630 30 0001 C CNN +F 2 "" H 5350 4700 60 0000 C CNN +F 3 "" H 5350 4700 60 0000 C CNN + 1 5350 4700 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5350 4400 5350 4700 +Connection ~ 5350 4600 +Text Notes 5050 4800 0 40 ~ 0 +chassis ground +$Comp +L GND #PWR010 +U 1 1 550CFBE5 +P 5350 6250 +F 0 "#PWR010" H 5350 6250 30 0001 C CNN +F 1 "GND" H 5350 6180 30 0001 C CNN +F 2 "" H 5350 6250 60 0000 C CNN +F 3 "" H 5350 6250 60 0000 C CNN + 1 5350 6250 + 1 0 0 -1 +$EndComp +Text Notes 5150 6400 0 40 ~ 0 +chassis ground +$Comp +L PWR_FLAG #FLG011 +U 1 1 550CFBF4 +P 5350 6150 +F 0 "#FLG011" H 5350 6245 30 0001 C CNN +F 1 "PWR_FLAG" H 5350 6330 30 0000 C CNN +F 2 "" H 5350 6150 60 0000 C CNN +F 3 "" H 5350 6150 60 0000 C CNN + 1 5350 6150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5350 6150 5350 6250 +$Comp +L CONN_1 P5 +U 1 1 550D1AD1 +P 5000 6150 +F 0 "P5" H 5080 6150 40 0000 L CNN +F 1 "GND" H 5000 6205 30 0001 C CNN +F 2 "mfk-AVA-20ga" H 5000 6150 60 0001 C CNN +F 3 "" H 5000 6150 60 0000 C CNN + 1 5000 6150 + -1 0 0 1 +$EndComp +Wire Wire Line + 5150 6150 5350 6150 +$Comp +L C C2 +U 1 1 550D2A54 +P 6900 5500 +F 0 "C2" H 6900 5600 40 0000 L CNN +F 1 "1u" H 6906 5415 40 0000 L CNN +F 2 "mfk-C_4.0_2.5_2.5_0.5" H 6938 5350 30 0001 C CNN +F 3 "TDK FK18X5R1A105K" H 6900 5500 60 0001 C CNN + 1 6900 5500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6900 5150 6900 5300 +$Comp +L DGND #PWR012 +U 1 1 550D2ACA +P 6900 5800 +F 0 "#PWR012" H 6900 5800 40 0001 C CNN +F 1 "DGND" H 6900 5730 40 0000 C CNN +F 2 "" H 6900 5800 60 0000 C CNN +F 3 "" H 6900 5800 60 0000 C CNN + 1 6900 5800 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6900 5800 6900 5700 +NoConn ~ 8300 4400 +NoConn ~ 8300 4850 +Connection ~ 8450 5000 +Wire Wire Line + 8450 3750 8450 4100 +Wire Wire Line + 7600 3650 7600 3750 +Connection ~ 7600 3750 +Wire Wire Line + 6900 4100 6750 4100 +Wire Wire Line + 6150 4150 6150 4400 +Connection ~ 8450 4100 +Wire Wire Line + 8300 5150 8450 5150 +Connection ~ 8450 5150 +Wire Wire Line + 6900 5000 6400 5000 +Wire Wire Line + 6400 5000 6400 6150 +$Comp +L CONN_3 P3 +U 1 1 551F2247 +P 2750 1800 +F 0 "P3" V 2700 1800 50 0000 C CNN +F 1 "PWR" V 2800 1800 40 0000 C CNN +F 2 "mfk-TE_282834-3" H 2750 1800 60 0001 C CNN +F 3 "" H 2750 1800 60 0000 C CNN + 1 2750 1800 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3650 1800 3100 1800 +Wire Wire Line + 3100 1700 3350 1700 +Wire Wire Line + 3150 1250 3150 1700 +Text Label 3150 1250 3 60 ~ 0 +V_MOT +Wire Wire Line + 6750 4100 6750 3750 +Wire Wire Line + 6750 5150 6750 6150 +Text Label 6750 6150 1 60 ~ 0 +V_MOT +$Comp +L PWR_FLAG #FLG013 +U 1 1 551F243F +P 3350 1650 +F 0 "#FLG013" H 3350 1745 30 0001 C CNN +F 1 "PWR_FLAG" H 3350 1830 30 0000 C CNN +F 2 "" H 3350 1650 60 0000 C CNN +F 3 "" H 3350 1650 60 0000 C CNN + 1 3350 1650 + -1 0 0 -1 +$EndComp +Connection ~ 3150 1700 +Wire Wire Line + 3350 1700 3350 1650 +$Comp +L JUMPER J1 +U 1 1 552023B1 +P 4750 1800 +F 0 "J1" H 4750 1950 60 0000 C CNN +F 1 "PWR_BR" H 4750 1720 40 0000 C CNN +F 2 "mfk-SIL-2" H 4750 1800 60 0001 C CNN +F 3 "~" H 4750 1800 60 0000 C CNN + 1 4750 1800 + 1 0 0 -1 +$EndComp +$Comp +L +5VD #PWR014 +U 1 1 552023F3 +P 4400 1450 +F 0 "#PWR014" H 4400 1400 20 0001 C CNN +F 1 "+5VD" H 4400 1550 50 0000 C CNN +F 2 "" H 4400 1450 60 0000 C CNN +F 3 "" H 4400 1450 60 0000 C CNN + 1 4400 1450 + -1 0 0 -1 +$EndComp +Wire Wire Line + 4450 1800 4400 1800 +Wire Wire Line + 4400 1800 4400 1450 +Text Label 5100 1350 3 60 ~ 0 +V_MOT +Wire Wire Line + 5050 1800 5100 1800 +Wire Wire Line + 5100 1800 5100 1350 +Text Notes 4000 2000 0 60 ~ 0 +Use jumper to power motor from +5VD. +$EndSCHEMATC diff --git a/samples/KiCad/ultimate-temp-controller.sch b/samples/KiCad/ultimate-temp-controller.sch new file mode 100644 index 00000000..8cac6465 --- /dev/null +++ b/samples/KiCad/ultimate-temp-controller.sch @@ -0,0 +1,69 @@ +EESchema Schematic File Version 2 +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:special +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:relays +LIBS:w_relay +LIBS:ultimate-temp-controller-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 2 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Sheet +S 1400 2100 2150 2000 +U 54E5B803 +F0 "controller" 60 +F1 "controller.sch" 60 +F2 "TC+" I L 1400 2300 60 +F3 "TC-" I L 1400 2400 60 +F4 "VCC" I L 1400 3750 60 +F5 "GND" I L 1400 3900 60 +F6 "RS485A" I R 3550 3700 60 +F7 "RS485B" I R 3550 3800 60 +F8 "DRAIN" O R 3550 3300 60 +F9 "+5V" O R 3550 2250 60 +F10 "SDA" B R 3550 2350 60 +F11 "SCL" B R 3550 2450 60 +F12 "GND" O R 3550 2550 60 +F13 "RELAY_NO" I R 3550 2850 60 +F14 "RELAY_COM" I R 3550 3050 60 +F15 "RELAY_NC" I R 3550 2950 60 +$EndSheet +$EndSCHEMATC From d566ccd0be14ebb328807ed7d9b4f5f51b42bbf1 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 5 Apr 2015 16:55:27 +0200 Subject: [PATCH 395/875] Update guideline on syntax highlighting fixes --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b1c8a09c..ebae203c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,7 +37,7 @@ Assuming your code is being detected as the right language, in most cases this i You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). -Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub. +Once the bug has been fixed upstream, we'll pick it up for GitHub in the next release of Linguist. ## Testing From c97c10623bd0947d7725c074a909c23aaab676ec Mon Sep 17 00:00:00 2001 From: Alex Efros Date: Sun, 5 Apr 2015 18:08:20 +0300 Subject: [PATCH 396/875] add .b Brainfuck sample --- samples/Brainfuck/factor.b | 195 +++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 samples/Brainfuck/factor.b diff --git a/samples/Brainfuck/factor.b b/samples/Brainfuck/factor.b new file mode 100644 index 00000000..43f06ba2 --- /dev/null +++ b/samples/Brainfuck/factor.b @@ -0,0 +1,195 @@ +* factor an arbitrarily large positive integer +* +* Copyright (C) 1999 by Brian Raiter +* under the GNU General Public License + +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>- + +* +* read in the number +* + +<<<<<<<<<+ +[-[>>>>>>>>>>][-]<<<<<<<<<<[[->>>>>>>>>>+<<<<<<<<<<]<<<<<<<<<<] + >>>>>>>>>>,----------] +>>>>>>>>>>[------------------------------------->>>>>>>>>->] +<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- + +* +* display the number and initialize the loop variable to two +* + +[>++++++++++++++++++++++++++++++++++++++++++++++++. + ------------------------------------------------<<<<<<<<<<<] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. +--------------------------.[-] +>>>>>>>>>>>>++<<<<+ + +* +* the main loop +* + +[ [-]>> + + * + * make copies of the number and the loop variable + * + + [>>>>[-]>[-]>[-]>[-] + >[-]>[-] + <<<<<<<[->>>+>+<<<<]>>>>>>>>] + <<<<<<<<<<[>>>>>>[-<<<<+>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>[->>>+>>+<<<<<]>>>>>>>>>] + <<<<<<<<<<[>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> + + * + * divide the number by the loop variable + * + + [>>>[-]>>>[-]>[-]>>>] initialize + <<<<<<<<<<[<<<<<<<<<<] + >>>>>>>>>[-]>>>>>>>+<<<<<<<<[+]+ + [ ->> double divisor until above dividend + [>>>>>>[->++<]>>>>]<<<<<<<<<< + [>>>>>>>>[-]>[-] + <<<<[->>>++<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< + [->--------->>>>>>>>>+<<<<<<<<<<[->+<]]]]]]]]]]]>>] + <<<<<<<<<<[>>>>>>>>>[-<+<<<+>>>>]<<<<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+> + [-<--------->>>>>>>>>>>+<<<<<<<<<<[-<+>]]]]]]]]]]]>>>] + <<<<<<<<<< + [>>>>[->>>+>>+<<<<<]<<<<<<<<<<<<<<] + >>>>>>>>>>[>>>>>>>[-<<<+>>>]>>>]<<<<<<<<<< + [>>>>>>>>[->-<]> + [<<<<<<<<<[<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<<] + >>>>>>>>>>>>>>>>>>>] + <<<<<<<<<<<<<<<<<<<] + >>>>>>>>>[+[+[+[+[+[+[+[+[+[+[[-]<+>]]]]]]]]]]]< + ] + >>>>>>>> + [ subtract divisor from dividend + <<<<<< + [>>>>>>>>[-]>[-]<<<<<[->>>+>+<<<<]>>>>>>]<<<<<<<<<< + [>>>>>>>>[-<<<<+>>>>]<<<[->>>+>+<<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>>[-<<<<+>>>>]>]<<<<<<<<<< + [>>>>>>>>[-<->]<<<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< + [++++++++++[+>-<]>>>>>>>>>>-<<<<<<<<<<]]]]]]]]]]]>>>] + >>>>>>>+ + [ if difference is nonnegative then + [-]<<<<<<<<<<<<<<<<< replace dividend and increment quotient + [>>>>[-]>>>>[-<<<<+>>>>]<<[->>+<<]<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>[->+<<<+>>]>>]<<<<<<<<<< + [>>>[->>>>>>+<<<<<<]<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>>[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<--------->>>>>>>>>>>>>>>>+<<<<<<<<<< + [-<<<<<<+>>>>>>]]]]]]]]]]]>] + >>>>>>> + ] halve divisor and loop until zero + <<<<<<<<<<<<<<<<<[<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>[-]<<[->+<]<[->>>+<<<]>>>>>]<<<<<<<<<< + [+>>>>>>>[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>]]]]]]]]]<<<<<<< + [->>>>>>>+<<<<<<<]-<<<<<<<<<<] + >>>>>>> + [-<<<<<<<<<<<+>>>>>>>>>>>] + >>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<< + [+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<< + [->>>>>>>>+<<<<<<<<]-<<<<<<<<<<] + >>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>> + [>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<< + [<<<<<<<<<<]>>>>>>>>>> + >>>>>> + ] + <<<<<< + + * + * make copies of the loop variable and the quotient + * + + [>>>[->>>>+>+<<<<<]>>>>>>>] + <<<<<<<<<< + [>>>>>>>[-<<<<+>>>>]<<<<<[->>>>>+>>+<<<<<<<]<<<<<<<<<<<<] + >>>>>>>>>>[>>>>>>>[-<<<<<+>>>>>]>>>]<<<<<<<<<< + + * + * break out of the loop if the quotient is larger than the loop variable + * + + [>>>>>>>>>[-<->]< + [<<<<<<<< + [<<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] + >>>>>>>>>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] + >>>>>>>>[>-<[+[+[+[+[+[+[+[+[+[[-]>+<]]]]]]]]]]]>+ + + [ [-] + + * + * partially increment the loop variable + * + + <[-]+>>>>+>>>>>>>>[>>>>>>>>>>]<<<<<<<<<< + + * + * examine the remainder for nonzero digits + * + + [<<<<<<[<<<<[<<<<<<<<<<]>>>>+<<<<<<<<<<]<<<<] + >>>>>>>>>>>>>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<[<<<<<<<<<<] + >>>>- + + [ [+] + + * + * decrement the loop variable and replace the number with the quotient + * + + >>>>>>>>-<<[>[-]>>[-<<+>>]>>>>>>>]<<<<<<<<<< + + * + * display the loop variable + * + + [+>>[>>>>>>>>+>>]<<-<<<<<<<<<<]- + [>>++++++++++++++++++++++++++++++++++++++++++++++++. + ------------------------------------------------<<<<<<<<<<<<] + ++++++++++++++++++++++++++++++++.[-]>>>> + + ] + + * + * normalize the loop variable + * + + >>>>>> + [>>[->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>--------->>>>>+<<<<<<<<<< + [->>>>>+<<<<<]]]]]]]]]]]>>>>>>>>] + <<<<<<<<<<[>>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<<] + >>>>>>>>> + + ]< + +]>> + +* +* display the number and end +* + +[>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- +[>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<] +++++++++++. From f993b7358bafd039e4eaee75c16ba49758622bf2 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 6 Apr 2015 14:58:20 +0200 Subject: [PATCH 397/875] New samples for SaltStack --- samples/SaltStack/gimp.sls | 7 +++++++ samples/SaltStack/gpg4win-light.sls | 13 +++++++++++++ samples/SaltStack/openoffice.sls | 21 +++++++++++++++++++++ samples/SaltStack/truecrypt.sls | 9 +++++++++ 4 files changed, 50 insertions(+) create mode 100644 samples/SaltStack/gimp.sls create mode 100644 samples/SaltStack/gpg4win-light.sls create mode 100644 samples/SaltStack/openoffice.sls create mode 100644 samples/SaltStack/truecrypt.sls diff --git a/samples/SaltStack/gimp.sls b/samples/SaltStack/gimp.sls new file mode 100644 index 00000000..392a0c66 --- /dev/null +++ b/samples/SaltStack/gimp.sls @@ -0,0 +1,7 @@ +gimp: + 2.8.14: + installer: 'http://gimper.net/downloads/pub/gimp/stable/windows/gimp-2.8.14-setup-1.exe' + install_flags: 'SP- /SILENT /NORESTART' + full_name: 'GIMP 2.8.14' + uninstaller: '%ProgramFiles%\Gimp 2\uninst\unins000.exe' + uninstall_flags: 'SP- /SILENT /NORESTART' diff --git a/samples/SaltStack/gpg4win-light.sls b/samples/SaltStack/gpg4win-light.sls new file mode 100644 index 00000000..fb2db20e --- /dev/null +++ b/samples/SaltStack/gpg4win-light.sls @@ -0,0 +1,13 @@ +gpg4win-light: + 2.2.3: + installer: 'http://files.gpg4win.org/gpg4win-light-2.2.3.exe' + full_name: 'Gpg4Win (2.2.3)' + reboot: False + install_flags: '/S' + uninstaller: '%ProgramFiles%\GNU\GnuPG\gpg4win-uninstall.exe' + uninstall_flags: '/S' +# +# Note: this 2.2.3 light installer has a bug and it needs to be fixed upstream +# Here are work around instructions under Issue #113 in the meantime +# https://github.com/saltstack/salt-winrepo/issues/113#issuecomment-72837987 +# diff --git a/samples/SaltStack/openoffice.sls b/samples/SaltStack/openoffice.sls new file mode 100644 index 00000000..6956858b --- /dev/null +++ b/samples/SaltStack/openoffice.sls @@ -0,0 +1,21 @@ +openoffice: + 4.1.1: + installer: 'http://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/en-US/Apache_OpenOffice_4.1.1_Win_x86_install_en-US.exe' + full_name: 'OpenOffice 4.1.1' + reboot: False + install_flags: '/S' + uninstaller: 'msiexec.exe' + uninstall_flags: '/qn /x {9395F41D-0F80-432E-9A59-B8E477E7E163}' + +# +# for other languages replace the two occurrences of 'en-US' +# in the download URL with your local two or four letter code below: +# +# 'el', 'en-GB', 'es', 'eu', 'ca', +# 'ca-XR', 'ca-XV', 'cs', 'ru', 'zh-CN', +# 'zh-TW', 'vi', 'ta', 'th', 'tr', 'sk', +# 'sl', 'sr', 'sv', 'pl', 'pt', 'pt-BR', +# 'nb', 'nl', 'lt', 'km', 'ko', 'ja', +# 'it', 'he', 'hi', 'hu', 'gd', 'gl', +# 'fi', 'fr', 'da', 'de', 'bg', 'ast' +# diff --git a/samples/SaltStack/truecrypt.sls b/samples/SaltStack/truecrypt.sls new file mode 100644 index 00000000..0ca99f51 --- /dev/null +++ b/samples/SaltStack/truecrypt.sls @@ -0,0 +1,9 @@ +truecrypt: + 7.1a: + installer: 'https://download.truecrypt.ch/current/TrueCrypt%20Setup%207.1a.exe' + full_name: 'TrueCrypt 7.1a' + reboot: False + install_flags: '/S' + uninstaller: '%ProgramFiles(x86)%\Truecrypt\uninstall.exe' + uninstall_flags: '/S' + From 63e017fbaa846b8b2bcc52110962a04cd8c09cd4 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Mon, 6 Apr 2015 08:32:23 -0700 Subject: [PATCH 398/875] Rename to TestColorProximity --- test/{test_color_threshold.rb => test_color_proximity.rb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename test/{test_color_threshold.rb => test_color_proximity.rb} (91%) diff --git a/test/test_color_threshold.rb b/test/test_color_proximity.rb similarity index 91% rename from test/test_color_threshold.rb rename to test/test_color_proximity.rb index f19dd73a..ff47d36a 100644 --- a/test/test_color_threshold.rb +++ b/test/test_color_proximity.rb @@ -1,13 +1,13 @@ require_relative "./helper" -class TestColorThreshold < Minitest::Test +class TestColorProximity < Minitest::Test include Linguist def cut_hash(color) color[1..-1] end - def test_color_threshold + def test_color_proximity langs_with_colors = Language.all.reject { |language| language.color.nil? } cp = ColorProximity.new(0.02, langs_with_colors.map { |lang| cut_hash(lang.color) }) failing_threshold = langs_with_colors.map do |lang| From 6bd8d3a3b7565153f70c7ff79211715fdb98c9e4 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Mon, 6 Apr 2015 09:43:36 -0700 Subject: [PATCH 399/875] Some slight test improvements --- test/test_color_proximity.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_color_proximity.rb b/test/test_color_proximity.rb index ff47d36a..43738b97 100644 --- a/test/test_color_proximity.rb +++ b/test/test_color_proximity.rb @@ -4,7 +4,7 @@ class TestColorProximity < Minitest::Test include Linguist def cut_hash(color) - color[1..-1] + color[1..-1] if color.start_with?('#') end def test_color_proximity @@ -16,7 +16,7 @@ class TestColorProximity < Minitest::Test "- #{lang} (#{lang.color}) is too close to #{state.last}" end end.compact - message = "The following languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}" + message = "The following #{failing_threshold.length} languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}" assert failing_threshold.empty?, message end From 3c96f9eb536ed1eb16f6979533ed4b9ceb3e9fd4 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Mon, 6 Apr 2015 09:44:10 -0700 Subject: [PATCH 400/875] Bump `threshold` to 0.05 --- lib/linguist/languages.yml | 110 +++++++++++++++++------------------ test/test_color_proximity.rb | 2 +- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 39da5113..cf224d97 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -46,7 +46,7 @@ AGS Script: AMPL: type: programming - color: "#5B2E7F" + color: "#E6EFBB" extensions: - .ampl tm_scope: source.ampl @@ -61,7 +61,7 @@ ANTLR: APL: type: programming - color: "#8a0707" + color: "#5A8164" extensions: - .apl - .dyalog @@ -125,7 +125,7 @@ Ada: Agda: type: programming - color: "#467C91" + color: "#315665" extensions: - .agda ace_mode: text @@ -175,7 +175,7 @@ AppleScript: Arc: type: programming - color: "#ca2afe" + color: "#aa2afe" extensions: - .arc tm_scope: none @@ -201,7 +201,7 @@ AsciiDoc: AspectJ: type: programming - color: "#1957b0" + color: "#a957b0" extensions: - .aj tm_scope: none @@ -240,7 +240,7 @@ AutoHotkey: AutoIt: type: programming - color: "#36699B" + color: "#1C3552" aliases: - au3 - AutoIt3 @@ -498,14 +498,14 @@ ChucK: Cirru: type: programming - color: "#aaaaff" + color: "#ccccff" ace_mode: cirru extensions: - .cirru Clean: type: programming - color: "#3a81ad" + color: "#3F85AF" extensions: - .icl - .dcl @@ -645,7 +645,7 @@ Creole: Crystal: type: programming - color: "#76EEF5" + color: "#776791" extensions: - .cr ace_mode: ruby @@ -705,7 +705,7 @@ D-ObjDump: DM: type: programming - color: "#075bb1" + color: "#447265" extensions: - .dm aliases: @@ -737,7 +737,7 @@ Darcs Patch: Dart: type: programming - color: "#98BAD6" + color: "#00B4AB" extensions: - .dart ace_mode: dart @@ -772,7 +772,7 @@ Dogescript: Dylan: type: programming - color: "#3ebc27" + color: "#6c616e" extensions: - .dylan - .dyl @@ -799,7 +799,7 @@ ECL: Eagle: type: markup - color: "#3994bc" + color: "#814C05" extensions: - .sch - .brd @@ -857,7 +857,7 @@ Emacs Lisp: EmberScript: type: programming - color: "#f64e3e" + color: "#FFF4F3" extensions: - .em - .emberscript @@ -866,7 +866,7 @@ EmberScript: Erlang: type: programming - color: "#0faf8d" + color: "#B83998" extensions: - .erl - .es @@ -1045,7 +1045,7 @@ GLSL: Game Maker Language: type: programming - color: "#8ad353" + color: "#8fb200" extensions: - .gml tm_scope: source.c++ @@ -1119,7 +1119,7 @@ Go: Golo: type: programming - color: "#f6a51f" + color: "#88562A" extensions: - .golo tm_scope: source.golo @@ -1158,7 +1158,7 @@ Grammatical Framework: extensions: - .gf searchable: true - color: "#ff0000" + color: "#79aa7a" tm_scope: source.haskell ace_mode: haskell @@ -1326,7 +1326,7 @@ Haxe: Hy: type: programming ace_mode: text - color: "#7891b1" + color: "#7790B2" extensions: - .hy aliases: @@ -1335,7 +1335,7 @@ Hy: IDL: type: programming - color: "#e3592c" + color: "#a3522f" extensions: - .pro - .dlm @@ -1428,7 +1428,7 @@ Isabelle: J: type: programming - color: "#2d8abd" + color: "#9EEDFF" extensions: - .ijs tm_scope: source.j @@ -1556,7 +1556,7 @@ Julia: KRL: type: programming - color: "#F89A1C" + color: "#28431f" extensions: - .krl tm_scope: none @@ -1772,7 +1772,7 @@ M: MTML: type: markup - color: "#0095d9" + color: "#b7e1f4" extensions: - .mtml tm_scope: text.html.basic @@ -1867,7 +1867,7 @@ Maven POM: Max: type: programming - color: "#ce279c" + color: "#c4a79c" aliases: - max/msp - maxmsp @@ -1891,7 +1891,7 @@ MediaWiki: Mercury: type: programming - color: "#abcdef" + color: "#ff2b2b" ace_mode: prolog interpreters: - mmi @@ -1972,7 +1972,7 @@ NSIS: Nemerle: type: programming - color: "#0d3c6e" + color: "#3d3c6e" extensions: - .n ace_mode: text @@ -1988,7 +1988,7 @@ NetLinx: NetLinx+ERB: type: programming - color: "#407fff" + color: "#747faa" extensions: - .axs.erb - .axi.erb @@ -1997,7 +1997,7 @@ NetLinx+ERB: NetLogo: type: programming - color: "#ff2b2b" + color: "#ff6375" extensions: - .nlogo tm_scope: source.lisp @@ -2043,7 +2043,7 @@ Ninja: Nit: type: programming - color: "#0d8921" + color: "#009917" extensions: - .nit tm_scope: source.nit @@ -2051,7 +2051,7 @@ Nit: Nix: type: programming - color: "#7070ff" + color: "#7e7eff" extensions: - .nix aliases: @@ -2123,7 +2123,7 @@ Objective-C: Objective-C++: type: programming tm_scope: source.objc++ - color: "#4886FC" + color: "#6866fb" aliases: - obj-c++ - objc++ @@ -2214,7 +2214,7 @@ Ox: Oxygene: type: programming - color: "#5a63a3" + color: "#cdd0e3" extensions: - .oxygene tm_scope: none @@ -2222,7 +2222,7 @@ Oxygene: Oz: type: programming - color: "#fcaf3e" + color: "#fab738" extensions: - .oz tm_scope: source.oz @@ -2388,7 +2388,7 @@ PigLatin: Pike: type: programming - color: "#066ab2" + color: "#005390" extensions: - .pike - .pmod @@ -2434,7 +2434,7 @@ PowerShell: Processing: type: programming - color: "#2779ab" + color: "#0096D8" extensions: - .pde ace_mode: text @@ -2453,7 +2453,7 @@ Prolog: Propeller Spin: type: programming - color: "#2b446d" + color: "#7fa2a7" extensions: - .spin tm_scope: source.spin @@ -2479,7 +2479,7 @@ Public Key: Puppet: type: programming - color: "#cc5555" + color: "#332A77" extensions: - .pp filenames: @@ -2505,7 +2505,7 @@ PureBasic: PureScript: type: programming - color: "#bcdc53" + color: "#1D222D" extensions: - .purs tm_scope: source.haskell @@ -2514,7 +2514,7 @@ PureScript: Python: type: programming ace_mode: python - color: "#3581ba" + color: "#3572A5" extensions: - .py - .cgi @@ -2632,7 +2632,7 @@ RMarkdown: Racket: type: programming - color: "#ae17ff" + color: "#22228f" extensions: - .rkt - .rktd @@ -2645,7 +2645,7 @@ Racket: Ragel in Ruby Host: type: programming - color: "#ff9c2e" + color: "#e17600" extensions: - .rl aliases: @@ -2776,7 +2776,7 @@ Rust: SAS: type: programming - color: "#1E90FF" + color: "#B34936" extensions: - .sas tm_scope: source.sas @@ -2800,7 +2800,7 @@ SPARQL: SQF: type: programming - color: "#FFCB1F" + color: "#3F3F3F" extensions: - .sqf - .hqf @@ -3000,7 +3000,7 @@ Smarty: SourcePawn: type: programming - color: "#c69e1d" + color: "#5c7611" aliases: - sourcemod extensions: @@ -3068,7 +3068,7 @@ Swift: SystemVerilog: type: programming - color: "#343761" + color: "#DAE1C2" extensions: - .sv - .svh @@ -3193,7 +3193,7 @@ Twig: TypeScript: type: programming - color: "#31859c" + color: "#2b7489" aliases: - ts extensions: @@ -3205,7 +3205,7 @@ Unified Parallel C: type: programming group: C ace_mode: c_cpp - color: "#755223" + color: "#4e3617" extensions: - .upc tm_scope: source.c @@ -3228,7 +3228,7 @@ VCL: VHDL: type: programming - color: "#343f7f" + color: "#adb2cb" extensions: - .vhdl - .vhd @@ -3242,7 +3242,7 @@ VHDL: Vala: type: programming - color: "#ee7d06" + color: "#fbe5cd" extensions: - .vala - .vapi @@ -3250,7 +3250,7 @@ Vala: Verilog: type: programming - color: "#848bf3" + color: "#b2b7f8" extensions: - .v - .veo @@ -3302,7 +3302,7 @@ Volt: Web Ontology Language: type: markup - color: "#3994bc" + color: "#9cc9dd" extensions: - .owl tm_scope: text.xml @@ -3418,7 +3418,7 @@ XProc: XQuery: type: programming - color: "#2700e2" + color: "#5232e7" extensions: - .xquery - .xq @@ -3501,7 +3501,7 @@ desktop: eC: type: programming - color: "#4A4773" + color: "#913960" search_term: ec extensions: - .ec @@ -3533,7 +3533,7 @@ mupad: nesC: type: programming - color: "#bbce3b" + color: "#94B0C7" extensions: - .nc ace_mode: text @@ -3566,7 +3566,7 @@ wisp: xBase: type: programming - color: "#3a4040" + color: "#403a40" extensions: - .prg tm_scope: none diff --git a/test/test_color_proximity.rb b/test/test_color_proximity.rb index 43738b97..2356e74a 100644 --- a/test/test_color_proximity.rb +++ b/test/test_color_proximity.rb @@ -9,7 +9,7 @@ class TestColorProximity < Minitest::Test def test_color_proximity langs_with_colors = Language.all.reject { |language| language.color.nil? } - cp = ColorProximity.new(0.02, langs_with_colors.map { |lang| cut_hash(lang.color) }) + cp = ColorProximity.new(0.05, langs_with_colors.map { |lang| cut_hash(lang.color) }) failing_threshold = langs_with_colors.map do |lang| state = cp.past_threshold?(cut_hash(lang.color)) if !state.first && lang.color != "##{state.last.first}" From c3288543afdbb69147468338f0a78a1a24f9f6a9 Mon Sep 17 00:00:00 2001 From: Alex Efros Date: Mon, 6 Apr 2015 20:17:52 +0300 Subject: [PATCH 401/875] add heuristic for Limbo --- lib/linguist/heuristics.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 205ef11c..f8a6320e 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -184,7 +184,7 @@ module Linguist end end - disambiguate "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| + disambiguate "Limbo", "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| if ObjectiveCRegex.match(data) Language["Objective-C"] elsif data.include?(":- module") @@ -197,6 +197,8 @@ module Linguist Language["Mathematica"] elsif /^\s*%/.match(data) Language["Matlab"] + elsif /^\w+\s*:\s*module\s*{/.match(data) + Language["Limbo"] end end From 2861a8f19c86dd0276dc5afa7632d0d0bc167fae Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 6 Apr 2015 12:41:49 -0500 Subject: [PATCH 402/875] Fixing up colours to match languages.yml --- test/test_language.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_language.rb b/test/test_language.rb index f3847a77..bbcc9b1f 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -286,9 +286,9 @@ class TestLanguage < Minitest::Test def test_color assert_equal '#701516', Language['Ruby'].color - assert_equal '#3581ba', Language['Python'].color + assert_equal '#3572A5', Language['Python'].color assert_equal '#f1e05a', Language['JavaScript'].color - assert_equal '#31859c', Language['TypeScript'].color + assert_equal '#2b7489', Language['TypeScript'].color assert_equal '#3d9970', Language['LSL'].color end From 0442f4bd06c8830d61d35e75c445353485ec76a6 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 6 Apr 2015 20:06:15 +0200 Subject: [PATCH 403/875] One more sample for Formatted. By Sean Carroll; license GPLv2. --- samples/Formatted/long_seq.for | 919 +++++++++++++++++++++++++++++++++ 1 file changed, 919 insertions(+) create mode 100644 samples/Formatted/long_seq.for diff --git a/samples/Formatted/long_seq.for b/samples/Formatted/long_seq.for new file mode 100644 index 00000000..eadf8036 --- /dev/null +++ b/samples/Formatted/long_seq.for @@ -0,0 +1,919 @@ +ACCEPTABLE LEFT PRIMERS + 1-based # self self hair- qual- + # sequence start ln N GC% Tm any_th end_th pin lity + 0 tgctagctaggcgatgctag 411 20 0 55.00 60.028 23.16 23.16 38.59 0.028 + 1 actgatacgcgatgctagct 476 20 0 50.00 59.957 17.69 1.35 0.00 0.043 + 2 gatcgatgctagctaggcga 405 20 0 55.00 60.100 16.30 16.30 0.00 0.100 + 3 tcgatcgatgctagctaggc 403 20 0 55.00 60.100 18.63 8.45 0.00 0.100 + 4 tagctgatcgatcgtagcgg 565 20 0 55.00 60.101 25.02 17.36 0.00 0.101 + 5 gctgactgatcgatcgatgc 113 20 0 55.00 59.826 24.08 17.09 35.21 0.174 + 6 tatcatctctgcgcgatcga 361 20 0 50.00 59.747 22.07 1.72 38.48 0.253 + 7 agctaggcgatgctagctag 415 20 0 55.00 59.742 17.46 17.46 41.54 0.258 + 8 ctagctaggcgatgctagct 413 20 0 55.00 59.742 18.68 17.35 43.53 0.258 + 9 ggcgatctagctagctgact 583 20 0 55.00 59.671 17.44 7.44 37.58 0.329 + 10 tcgatgctagctaggcgatg 407 20 0 55.00 60.382 14.03 0.00 0.00 0.382 + 11 gctgatcgatcgatgctagc 398 20 0 55.00 59.618 25.97 24.79 35.21 0.382 + 12 gctagctgatcgatcgatgc 394 20 0 55.00 59.618 24.08 21.09 35.21 0.382 + 13 atcatctctgcgcgatcgat 362 20 0 50.00 60.382 22.07 5.02 38.48 0.382 + 14 gactgatacgcgatgctagc 475 20 0 55.00 59.551 8.61 8.61 0.00 0.449 + 15 atcgatgctagctaggcgat 406 20 0 50.00 59.452 18.43 18.43 0.00 0.548 + 16 gctagctgactgatacgcga 468 20 0 55.00 60.589 16.29 0.00 0.00 0.589 + 17 agctagctgactgatacgcg 467 20 0 55.00 60.590 17.99 3.89 0.00 0.590 + 18 atgctagctaggcgatgcta 410 20 0 50.00 59.375 10.59 8.91 0.00 0.625 + 19 ctatcatctctgcgcgatcg 360 20 0 55.00 59.347 12.19 12.19 39.07 0.653 + 20 gatgctagctaggcgatgct 409 20 0 55.00 60.668 7.01 7.53 0.00 0.668 + 21 gctactatcatctctgcgcg 356 20 0 55.00 59.273 0.00 0.00 0.00 0.727 + 22 cgtagcggcgatctagctag 577 20 0 60.00 60.791 15.64 15.64 37.58 0.791 + 23 cggcgatctagctagctgac 582 20 0 60.00 61.003 14.84 7.25 38.70 1.003 + 24 gctagctgatcgatcgtagc 563 20 0 55.00 58.995 23.70 23.70 0.00 1.005 + 25 gatcgatcgatgtgcggcta 81 20 0 55.00 61.006 19.16 0.00 41.65 1.006 + 26 atcgatcgatgtgcggctag 82 20 0 55.00 61.008 29.65 0.00 41.65 1.008 + 27 gctgactgatacgcgatgc 472 19 0 57.89 60.025 0.00 0.00 0.00 1.025 + 28 agctagctgatcatcgatgct 190 21 0 47.62 60.035 17.99 11.09 0.00 1.035 + 29 gctagctagctgactgatcga 105 21 0 52.38 60.037 34.38 0.00 46.11 1.037 + 30 tcatctctgcgcgatcgat 363 19 0 52.63 59.946 22.07 0.12 38.48 1.054 + 31 atcatctctgcgcgatcga 362 19 0 52.63 59.946 22.07 1.72 38.48 1.054 + 32 atcgatcgatgtgcggcta 82 19 0 52.63 59.945 29.65 0.00 41.65 1.055 + 33 gtagcggcgatctagctagc 578 20 0 60.00 61.071 16.97 7.15 39.86 1.071 + 34 gctagctgactgatcgatcg 109 20 0 55.00 58.924 16.84 13.89 0.00 1.076 + 35 gctgatcgatcgatgtgcg 78 19 0 57.89 60.097 29.87 18.15 42.69 1.097 + 36 tatcatctctgcgcgatcgat 361 21 0 47.62 60.172 22.07 11.47 38.48 1.172 + 37 gctagctagctgatcgatcga 390 21 0 52.38 60.172 34.38 22.52 46.11 1.172 + 38 gctagctagctgatcgatcga 70 21 0 52.38 60.172 34.38 22.52 46.11 1.172 + 39 catctctgcgcgatcgatg 364 19 0 57.89 59.810 13.74 13.74 38.48 1.190 + 40 tcgtagcggcgatctagcta 576 20 0 55.00 61.231 11.55 9.27 36.40 1.231 + 41 actgatacgcgatgctagcta 476 21 0 47.62 59.765 17.69 3.08 0.00 1.235 + 42 actgatcgatcgatgctagct 117 21 0 47.62 59.763 23.29 11.70 35.21 1.237 + 43 agctagctgatcgatcgatgt 73 21 0 47.62 59.763 17.99 2.62 35.21 1.237 + 44 tagcggcgatctagctagct 579 20 0 55.00 61.243 23.74 23.74 46.60 1.243 + 45 cgtagcggcgatctagcta 577 19 0 57.89 59.729 11.55 9.27 37.58 1.271 + 46 ctagctgatcgatcgtagcg 564 20 0 55.00 58.727 25.02 15.05 0.00 1.273 + 47 tagcggcgatctagctagc 579 19 0 57.89 59.725 16.97 9.14 39.86 1.275 + 48 catcgatcgatgcatgcatg 442 20 0 50.00 58.722 37.80 23.31 44.93 1.278 + 49 tcatctctgcgcgatcgatg 363 20 0 55.00 61.279 18.01 18.01 38.48 1.279 + 50 gctagctagctgatcgatcg 559 20 0 55.00 58.714 34.38 11.90 46.11 1.286 + 51 gctagctagctgatcgatcg 390 20 0 55.00 58.714 34.38 11.90 46.11 1.286 + 52 gctagctagctgatcgatcg 70 20 0 55.00 58.714 34.38 11.90 46.11 1.286 + 53 agcatcggattagctagctga 3 21 0 47.62 59.689 28.29 20.88 0.00 1.311 + 54 agctgatcgatcgtagcgg 566 19 0 57.89 60.315 25.02 17.36 0.00 1.315 + 55 cggcgatctagctagctga 582 19 0 57.89 59.650 21.57 16.66 38.70 1.350 + 56 ctagctgatcgatcgatgtgc 75 21 0 52.38 59.643 31.83 30.04 35.21 1.357 + 57 gctagctgatcgatcgatgtg 74 21 0 52.38 59.643 12.06 6.93 35.21 1.357 + 58 gctagctaggcgatgctagc 412 20 0 60.00 61.357 30.41 30.41 46.19 1.357 + 59 tagctagctgactgatacgcg 466 21 0 52.38 60.373 28.29 3.89 0.00 1.373 + 60 gctagctgactgatcgatcga 109 21 0 52.38 60.374 22.52 22.52 0.00 1.374 + 61 agctagctgactgatcgatcg 108 21 0 52.38 60.374 17.99 13.89 0.00 1.374 + 62 cgatcgatgctagctaggcg 404 20 0 60.00 61.409 15.59 9.14 0.00 1.409 + 63 gctagctagctgactgatcg 105 20 0 55.00 58.563 34.38 1.84 46.11 1.437 + 64 atgctagctaggcgatgct 410 19 0 52.63 59.561 10.59 7.53 0.00 1.439 + 65 agctagctgatcgatcgtagc 562 21 0 52.38 60.441 26.87 26.87 0.00 1.441 + 66 gctagctagctgatcgatcgt 559 21 0 52.38 60.441 34.38 2.65 46.11 1.441 + 67 tagctaggcgatgctagctag 414 21 0 52.38 59.559 18.42 17.46 42.44 1.441 + 68 ctagctaggcgatgctagcta 413 21 0 52.38 59.559 18.69 17.64 42.44 1.441 + 69 tagctgatcgatcgatgtgc 76 20 0 50.00 58.558 31.83 30.04 35.21 1.442 + 70 gatgctagctaggcgatgcta 409 21 0 52.38 60.444 9.82 8.91 0.00 1.444 + 71 atgctagctaggcgatgctag 410 21 0 52.38 60.444 23.16 23.16 38.59 1.444 + 72 gctagctgatcatcgatgct 191 20 0 50.00 58.539 16.29 12.14 0.00 1.461 + 73 agctagctgatcatcgatgc 190 20 0 50.00 58.539 21.42 9.22 0.00 1.461 + 74 gctgactgatacgcgatgct 472 20 0 55.00 61.494 2.33 0.00 0.00 1.494 + 75 agctgactgatacgcgatgc 471 20 0 55.00 61.494 3.47 0.00 0.00 1.494 + 76 ggcgatctagctagctgacta 583 21 0 52.38 59.491 17.44 5.40 37.58 1.509 + 77 gatcgatgctagctaggcgat 405 21 0 52.38 60.510 21.61 21.61 0.00 1.510 + 78 atcgatcgatgctagctaggc 402 21 0 52.38 60.510 29.65 8.45 33.56 1.510 + 79 ctgatcgatcgatgtgcgg 79 19 0 57.89 59.447 15.54 5.83 41.65 1.553 + 80 agctgatcgatcgatgtgcg 77 20 0 55.00 61.556 31.92 20.26 42.69 1.556 + 81 cgatcatcgatgctagctagc 548 21 0 52.38 59.444 34.89 34.89 46.99 1.556 + 82 tagctaggcgatgctagcta 414 20 0 50.00 58.433 19.37 17.81 42.44 1.567 + 83 agctagctactgatcgatgct 303 21 0 47.62 59.415 17.56 11.51 0.00 1.585 + 84 tcgatcgatgtgcggctag 83 19 0 57.89 60.606 18.63 0.00 41.65 1.606 + 85 gactgatcgatcgatgctagc 116 21 0 52.38 59.378 15.86 8.45 35.21 1.622 + 86 agctagctgactgatcgatca 260 21 0 47.62 59.347 26.99 26.99 35.44 1.653 + 87 ctgactgatacgcgatgctag 473 21 0 52.38 59.312 1.70 0.00 0.00 1.688 + 88 ctagctgactgatacgcgatg 469 21 0 52.38 59.312 0.00 0.00 0.00 1.688 + 89 gctactatcatctctgcgcga 356 21 0 52.38 60.707 2.71 2.71 0.00 1.707 + 90 agctactatcatctctgcgcg 355 21 0 52.38 60.709 0.00 0.00 0.00 1.709 + 91 actatcatctctgcgcgatc 359 20 0 50.00 58.270 4.99 0.00 0.00 1.730 + 92 actgatcgatcgatgctagc 117 20 0 50.00 58.270 23.29 13.61 35.21 1.730 + 93 gctagctgatcgatcgatgt 74 20 0 50.00 58.270 14.29 2.62 35.21 1.730 + 94 ctatcatctctgcgcgatcga 360 21 0 52.38 60.771 22.07 1.72 38.48 1.771 + 95 atcgatgctagctaggcgatg 406 21 0 52.38 60.779 21.16 4.37 0.00 1.779 + 96 tgactgatacgcgatgctag 474 20 0 50.00 58.207 1.70 0.00 0.00 1.793 + 97 ctgactgatacgcgatgcta 473 20 0 50.00 58.207 2.33 0.00 0.00 1.793 + 98 tagctgactgatacgcgatg 470 20 0 50.00 58.207 0.00 0.00 0.00 1.793 + 99 ctgactgatcgatcgatgct 114 20 0 50.00 58.197 26.44 12.40 35.21 1.803 + 100 agctgactgatcgatcgatg 112 20 0 50.00 58.197 23.05 13.21 35.21 1.803 + 101 tcggattagctagctgatgc 7 20 0 50.00 58.176 17.46 17.46 40.05 1.824 + 102 gcatcggattagctagctga 4 20 0 50.00 58.176 28.29 20.88 0.00 1.824 + 103 agcatcggattagctagctg 3 20 0 50.00 58.171 28.29 10.80 0.00 1.829 + 104 gatgctagctaggcgatgc 409 19 0 57.89 59.141 4.18 0.00 0.00 1.859 + 105 ctgatacgcgatgctagctag 477 21 0 52.38 59.113 17.46 17.46 0.00 1.887 + 106 gctagctgactgatacgcg 468 19 0 57.89 59.086 8.21 3.89 0.00 1.914 + 107 ctctgcgcgatcgatgctag 367 20 0 60.00 61.946 21.94 18.16 38.48 1.946 + 108 tctgcgcgatcgatgctag 368 19 0 57.89 60.966 21.94 18.16 38.48 1.966 + 109 ctctgcgcgatcgatgcta 367 19 0 57.89 60.966 26.61 17.10 38.48 1.966 + 110 cgatgctagctaggcgatgc 408 20 0 60.00 61.968 11.09 0.00 0.00 1.968 + 111 gactgatacgcgatgctagct 475 21 0 52.38 60.975 17.69 1.35 0.00 1.975 + 112 gctagctgactgatacgcgat 468 21 0 52.38 60.975 8.21 0.00 0.00 1.975 + 113 tgatacgcgatgctagctag 478 20 0 50.00 57.994 17.46 17.46 0.00 2.006 + 114 ctgatacgcgatgctagcta 477 20 0 50.00 57.994 17.69 3.08 0.00 2.006 + 115 cgcgatcgatgctagctagc 372 20 0 60.00 62.011 34.89 34.89 43.67 2.011 + 116 gcgcgatcgatgctagctag 371 20 0 60.00 62.011 21.66 17.46 38.48 2.011 + 117 ctgatcgatcgatgctagct 399 20 0 50.00 57.983 19.70 2.01 35.21 2.017 + 118 agctgatcgatcgatgctag 397 20 0 50.00 57.983 27.33 18.05 34.69 2.017 + 119 ctagctgatcgatcgatgct 395 20 0 50.00 57.983 33.87 33.38 38.16 2.017 + 120 agctagctgatcgatcgatg 393 20 0 50.00 57.983 21.99 11.03 35.21 2.017 + 121 ctgatcgatcgatgctagct 118 20 0 50.00 57.983 19.70 2.01 35.21 2.017 + 122 agctagctgatcgatcgatg 73 20 0 50.00 57.983 21.99 11.03 35.21 2.017 + 123 catcggattagctagctgatgc 5 22 0 50.00 59.982 24.41 24.41 40.05 2.018 + 124 gcatcggattagctagctgatg 4 22 0 50.00 59.982 27.81 27.81 33.28 2.018 + 125 tcgatgctagctaggcgat 407 19 0 52.63 58.964 14.03 3.01 0.00 2.036 + 126 atcgatgctagctaggcga 406 19 0 52.63 58.964 16.30 16.30 0.00 2.036 + 127 actatcatctctgcgcgatcg 359 21 0 52.38 61.037 12.19 12.19 39.07 2.037 + 128 gcgcgatcgatgctagcta 371 19 0 57.89 61.037 21.66 3.08 38.48 2.037 + 129 gctgatcgatcgatgctagct 398 21 0 52.38 61.044 27.88 12.70 35.21 2.044 + 130 agctgatcgatcgatgctagc 397 21 0 52.38 61.044 27.33 27.90 34.69 2.044 + 131 gctagctgatcgatcgatgct 394 21 0 52.38 61.044 33.87 33.38 38.16 2.044 + 132 agctagctgatcgatcgatgc 393 21 0 52.38 61.044 24.08 21.09 35.21 2.044 + 133 cgcgatcgatgctagctag 372 19 0 57.89 58.947 22.07 17.46 38.48 2.053 + 134 tcgtagcggcgatctagc 576 18 0 61.11 59.936 4.70 0.00 36.40 2.064 + 135 cgtagcggcgatctagct 577 18 0 61.11 59.935 11.03 11.03 37.58 2.065 + 136 gcggcgatctagctagct 581 18 0 61.11 59.933 23.74 23.74 38.05 2.067 + 137 agcggcgatctagctagc 580 18 0 61.11 59.933 16.97 7.15 39.86 2.067 + 138 ctagctgactgatacgcgat 469 20 0 50.00 57.918 1.43 0.00 0.00 2.082 + 139 ctagctgatcgatcgtagcgg 564 21 0 57.14 61.096 20.31 16.15 0.00 2.096 + 140 agctactatcatctctgcgc 355 20 0 50.00 57.898 0.00 0.00 0.00 2.102 + 141 gctagctactgatcgatgct 304 20 0 50.00 57.898 11.51 11.51 0.00 2.102 + 142 agctagctactgatcgatgc 303 20 0 50.00 57.898 17.56 1.76 0.00 2.102 + 143 agcatcggattagctagctgat 3 22 0 45.45 60.108 17.84 15.13 0.00 2.108 + 144 tgctagctaggcgatgcta 411 19 0 52.63 58.881 17.69 8.91 0.00 2.119 + 145 aagcatcggattagctagctg 2 21 0 47.62 58.879 28.29 10.80 0.00 2.121 + 146 tctgcgcgatcgatgcta 368 18 0 55.56 59.857 26.61 16.13 38.48 2.143 + 147 cgatgctagctaggcgatg 408 19 0 57.89 58.856 11.09 0.00 0.00 2.144 + 148 agctagctgatcatcgatgcta 190 22 0 45.45 59.845 17.99 13.09 0.00 2.155 + 149 tagctagctgatcatcgatgct 189 22 0 45.45 59.845 16.29 15.30 0.00 2.155 + 150 atcgatcgatgtgcggct 82 18 0 55.56 60.166 29.65 4.36 41.65 2.166 + 151 gctagctgactgatcgatca 261 20 0 50.00 57.829 26.99 26.99 35.44 2.171 + 152 tagctagctgactgatcgatcg 107 22 0 50.00 60.174 28.29 13.89 0.00 2.174 + 153 agctgatcatcatcgatgct 515 20 0 45.00 57.788 11.25 0.72 40.32 2.212 + 154 agctagctgactgatcgatcat 260 22 0 45.45 59.778 26.67 18.02 36.62 2.222 + 155 tgactgatacgcgatgctagc 474 21 0 52.38 61.238 8.61 8.61 0.00 2.238 + 156 gctgactgatacgcgatgcta 472 21 0 52.38 61.238 2.33 0.00 0.00 2.238 + 157 tagctgactgatacgcgatgc 470 21 0 52.38 61.238 3.47 0.00 0.00 2.238 + 158 tagctagctgatcgatcgtagc 561 22 0 50.00 60.238 26.87 26.87 0.00 2.238 + 159 gctagctagctgatcgatcgta 559 22 0 50.00 60.238 34.38 3.07 46.11 2.238 + 160 tgatcgatcgatgctagctagg 400 22 0 50.00 60.239 26.44 6.29 35.21 2.239 + 161 gctgactgatcgatcgatgct 113 21 0 52.38 61.244 26.44 12.40 35.21 2.244 + 162 agctgactgatcgatcgatgc 112 21 0 52.38 61.244 24.08 19.43 35.21 2.244 + 163 gatcgatcgatgtgcggct 81 19 0 57.89 61.263 19.16 0.00 41.65 2.263 + 164 gctgatcatcgatgctactagc 195 22 0 50.00 59.727 18.08 16.44 45.61 2.273 + 165 gctagctgatcatcgatgctac 191 22 0 50.00 59.727 9.57 5.47 0.00 2.273 + 166 gatcgatcgatgtgcggc 81 18 0 61.11 59.714 18.10 0.95 41.65 2.286 + 167 ctagctagctgactgatacgc 465 21 0 52.38 58.703 14.90 0.00 0.00 2.297 + 168 tagctgatcgatcgatgtgcg 76 21 0 52.38 61.299 31.92 20.26 42.69 2.299 + 169 agctgatcgatcgatgtgc 77 19 0 52.63 58.698 31.83 30.04 35.21 2.302 + 170 gctgatcatcatcgatgctagc 516 22 0 50.00 60.302 10.80 10.34 40.32 2.302 + 171 gctagctgatcatcatcgatgc 512 22 0 50.00 60.302 21.42 7.40 40.32 2.302 + 172 aagcatcggattagctagctga 2 22 0 45.45 60.306 28.29 20.88 0.00 2.306 + 173 gatcgatcgtagcggcga 570 18 0 61.11 60.318 13.01 8.51 45.59 2.318 + 174 atcggattagctagctgatgc 6 21 0 47.62 58.673 17.46 17.46 40.05 2.327 + 175 gcatcggattagctagctgat 4 21 0 47.62 58.673 17.84 15.13 0.00 2.327 + 176 gcggcgatctagctagctg 581 19 0 63.16 61.329 17.07 8.17 38.05 2.329 + 177 tgctagtgatgcatgctagt 24 20 0 45.00 57.636 24.96 11.17 35.89 2.364 + 178 ctactatcatctctgcgcga 357 20 0 50.00 57.636 2.71 2.71 0.00 2.364 + 179 actagctagctgactgatacgc 464 22 0 50.00 60.368 21.52 0.00 0.00 2.368 + 180 gctagctagctgatcatcga 187 20 0 50.00 57.613 34.38 0.24 46.11 2.387 + 181 tctctgcgcgatcgatgcta 366 20 0 55.00 62.413 26.61 17.10 38.48 2.413 + 182 tgatcgatcgatgctagctagt 119 22 0 45.45 59.586 26.44 5.69 35.21 2.414 + 183 actgatcgatcgatgctagcta 117 22 0 45.45 59.586 23.29 7.65 35.21 2.414 + 184 tagctagctgatcgatcgatgt 72 22 0 45.45 59.586 14.29 2.62 35.21 2.414 + 185 agctaggcgatgctagcta 415 19 0 52.63 58.572 17.69 3.08 41.54 2.428 + 186 tagctaggcgatgctagct 414 19 0 52.63 58.572 17.35 17.35 43.53 2.428 + 187 gatcgatcgatgctagctagg 401 21 0 52.38 58.567 23.89 6.29 35.21 2.433 + 188 gctagctagctgactgatcgat 105 22 0 50.00 60.434 34.38 0.00 46.11 2.434 + 189 gatcgatgctagctaggcg 405 19 0 57.89 58.563 15.59 9.02 0.00 2.437 + 190 cgatcgatgctagctaggc 404 19 0 57.89 58.563 14.87 8.45 0.00 2.437 + 191 tagctagctgactgatacgc 466 20 0 50.00 57.549 28.29 0.00 0.00 2.451 + 192 agctagctgactgatcgatc 260 20 0 50.00 57.536 19.32 19.32 0.00 2.464 + 193 agctagctgactgatcgatc 108 20 0 50.00 57.536 19.32 19.32 0.00 2.464 + 194 aaagcatcggattagctagctg 1 22 0 45.45 59.524 28.29 10.80 0.00 2.476 + 195 gctgactgatcgatcatcatgc 265 22 0 50.00 60.493 25.66 25.12 41.77 2.493 + 196 tagctactatcatctctgcgcg 354 22 0 50.00 60.495 0.00 0.00 0.00 2.495 + 197 ctgatcgatcgatgtgcggc 79 20 0 60.00 62.497 15.54 4.15 41.65 2.497 + 198 gctgatcgatcgatgtgcgg 78 20 0 60.00 62.497 29.87 22.23 41.65 2.497 + 199 tcgtagcggcgatctagct 576 19 0 57.89 61.503 11.03 11.03 36.40 2.503 + 200 agcggcgatctagctagct 580 19 0 57.89 61.519 23.74 23.74 42.96 2.519 + 201 ctagctagctgatcatcgatgc 188 22 0 50.00 59.470 21.42 9.22 0.00 2.530 + 202 gctagctagctgatcatcgatg 187 22 0 50.00 59.470 34.38 20.23 46.11 2.530 + 203 tcatctctgcgcgatcga 363 18 0 55.56 59.468 22.07 0.00 38.48 2.532 + 204 tcgatcgatgtgcggcta 83 18 0 55.56 59.465 18.63 0.00 41.65 2.535 + 205 tgatcgatcgatgtgcggc 80 19 0 57.89 61.549 21.27 8.44 41.65 2.549 + 206 ctagctaggcgatgctagctag 413 22 0 54.55 60.561 22.99 22.99 46.84 2.561 + 207 gctagctagctgatcgatcgat 390 22 0 50.00 60.561 34.38 30.53 46.11 2.561 + 208 gctagctagctgatcgatcgat 70 22 0 50.00 60.561 34.38 30.53 46.11 2.561 + 209 ctgcgcgatcgatgctag 369 18 0 61.11 59.415 19.79 13.97 38.48 2.585 + 210 aagcatcggattagctagct 2 20 0 45.00 57.413 23.74 23.74 0.00 2.587 + 211 gctagctgatcatcgatgcta 191 21 0 47.62 58.410 16.61 13.09 0.00 2.590 + 212 tagctagctgatcatcgatgc 189 21 0 47.62 58.410 21.42 9.22 0.00 2.590 + 213 actgatacgcgatgctagc 476 19 0 52.63 58.407 8.61 8.61 0.00 2.593 + 214 gctagctgactgatcgatcatc 261 22 0 50.00 59.406 23.93 21.92 36.62 2.594 + 215 atcgatcgatgctagctagg 402 20 0 50.00 57.396 29.65 6.29 33.56 2.604 + 216 atctctgcgcgatcgatgc 365 19 0 57.89 61.618 22.01 22.01 38.48 2.618 + 217 tgatcgatcgtagcggcg 569 18 0 61.11 60.621 20.58 0.86 0.00 2.621 + 218 atcatctctgcgcgatcgatg 362 21 0 52.38 61.633 18.01 18.01 38.48 2.633 + 219 agctagctgatcgatcgtag 562 20 0 50.00 57.344 17.99 16.86 0.00 2.656 + 220 ctagctagctgatcgatcgt 560 20 0 50.00 57.344 16.40 2.65 0.00 2.656 + 221 gctagctgactgatcgatcat 261 21 0 47.62 58.339 26.67 18.02 36.62 2.661 + 222 ctgatcgatcgtagcggcg 568 19 0 63.16 61.664 14.21 0.86 0.00 2.664 + 223 ctgactgatacgcgatgct 473 19 0 52.63 58.330 2.33 0.00 0.00 2.670 + 224 agctgactgatacgcgatg 471 19 0 52.63 58.330 0.00 0.00 0.00 2.670 + 225 gctagctgatcgatcgtagcg 563 21 0 57.14 61.676 24.18 16.49 0.00 2.676 + 226 ctagctgactgatcgatcga 110 20 0 50.00 57.276 22.52 22.52 0.00 2.724 + 227 agctagctactgatcgatgcta 303 22 0 45.45 59.252 17.56 12.23 0.00 2.748 + 228 tagctagctactgatcgatgct 302 22 0 45.45 59.252 27.80 11.51 0.00 2.748 + 229 gactgatacgcgatgctagcta 475 22 0 50.00 60.751 17.69 3.08 0.00 2.751 + 230 actgatacgcgatgctagctag 476 22 0 50.00 60.752 17.46 17.46 0.00 2.752 + 231 gactgatcgatcgatgctagct 116 22 0 50.00 60.753 18.04 9.56 35.21 2.753 + 232 gctagctgactgatcgatcgat 109 22 0 50.00 60.753 30.53 30.53 37.90 2.753 + 233 tgcgcgatcgatgctagcta 370 20 0 55.00 62.756 26.61 9.85 38.48 2.756 + 234 gcggcgatctagctagctga 581 20 0 60.00 62.765 21.57 16.66 38.70 2.765 + 235 agcggcgatctagctagctg 580 20 0 60.00 62.771 17.07 8.17 44.87 2.771 + 236 ctactatcatctctgcgcgatc 357 22 0 50.00 59.220 4.99 0.00 0.00 2.780 + 237 tatcatctctgcgcgatcg 361 19 0 52.63 58.199 12.19 12.19 39.07 2.801 + 238 tactatcatctctgcgcgatcg 358 22 0 50.00 60.811 12.19 12.19 39.07 2.811 + 239 tagctagctgactgatcgatca 259 22 0 45.45 59.187 28.29 26.99 35.44 2.813 + 240 gctgatcgatcgatgctagcta 398 22 0 50.00 60.816 27.88 12.57 35.21 2.816 + 241 tagctgatcgatcgatgctagc 396 22 0 50.00 60.816 30.84 27.90 36.80 2.816 + 242 gctagctgatcgatcgatgcta 394 22 0 50.00 60.816 34.11 32.56 36.80 2.816 + 243 tagctagctgatcgatcgatgc 392 22 0 50.00 60.816 24.08 21.09 35.21 2.816 + 244 gctaggcgatgctagctag 416 19 0 57.89 58.179 17.46 17.46 35.42 2.821 + 245 ctagctaggcgatgctagc 413 19 0 57.89 58.179 18.68 9.44 36.95 2.821 + 246 gctagctaggcgatgctag 412 19 0 57.89 58.179 23.16 23.16 38.59 2.821 + 247 catctctgcgcgatcgatgc 364 20 0 60.00 62.823 22.01 22.01 38.48 2.823 + 248 aaagcatcggattagctagct 1 21 0 42.86 58.168 23.74 23.74 0.00 2.832 + 249 ctgactgatcgatcgatgctag 114 22 0 50.00 59.155 22.81 19.44 35.21 2.845 + 250 ctagctgactgatcgatcgatg 110 22 0 50.00 59.155 23.05 13.21 35.21 2.845 + 251 tactatcatctctgcgcgatc 358 21 0 47.62 58.155 4.99 0.00 0.00 2.845 + 252 gctagctactgatcgatgctac 304 22 0 50.00 59.151 8.57 4.26 0.00 2.849 + 253 ctactatcatctctgcgcgat 357 21 0 47.62 58.150 4.99 2.52 0.00 2.850 + 254 agctgatcatcgatgctact 194 20 0 45.00 57.134 17.14 8.95 0.00 2.866 + 255 gctagctagctgatcatcgat 187 21 0 47.62 58.132 34.38 0.00 46.11 2.868 + 256 ctgatacgcgatgctagct 477 19 0 52.63 58.107 17.69 1.35 0.00 2.893 + 257 ggcgatctagctagctgac 583 19 0 57.89 58.106 14.84 7.25 37.58 2.894 + 258 tgactgatcgatcgatgctag 115 21 0 47.62 58.084 22.81 19.44 35.21 2.916 + 259 ctgactgatcgatcgatgcta 114 21 0 47.62 58.084 26.44 14.64 35.21 2.916 + 260 tagctgactgatcgatcgatg 111 21 0 47.62 58.084 23.05 13.21 35.21 2.916 + 261 actgatcgatcatcatgctagc 269 22 0 45.45 59.071 26.67 8.61 41.77 2.929 + 262 agctgactgatcgatcatca 264 20 0 45.00 57.064 26.49 26.49 39.98 2.936 + 263 ctagctagctgatcgatcga 391 20 0 50.00 57.060 22.52 22.52 0.00 2.940 + 264 ctagctagctgatcgatcga 71 20 0 50.00 57.060 22.52 22.52 0.00 2.940 + 265 gatcgatcgatgtgcggctag 81 21 0 57.14 61.947 19.16 0.00 41.65 2.947 + 266 tgctagctaggcgatgct 411 18 0 55.56 59.050 17.69 7.53 0.00 2.950 + 267 gctgatcgatcgtagcggc 567 19 0 63.16 61.960 20.49 19.38 0.00 2.960 + 268 cgatcgatgtgcggctag 84 18 0 61.11 59.032 10.82 0.00 41.65 2.968 + 269 tgatcgatcgatgtgcggct 80 20 0 55.00 62.987 22.21 0.00 41.65 2.987 + 270 ctgactgatcgatcatcatgct 266 22 0 45.45 59.004 20.99 6.82 41.77 2.996 + 271 agctgactgatcgatcatcatg 264 22 0 45.45 59.004 22.70 19.51 41.77 2.996 + 272 agctagctgactgatacgcga 467 21 0 52.38 62.000 17.99 0.00 0.00 3.000 + 273 tgactgatcgatcgatgctagc 115 22 0 50.00 61.008 18.17 12.52 35.21 3.008 + 274 gctgactgatcgatcgatgcta 113 22 0 50.00 61.008 26.44 14.64 35.21 3.008 + 275 tagctgactgatcgatcgatgc 111 22 0 50.00 61.008 24.08 19.43 35.21 3.008 + 276 agctagctgatcgatcgatgtg 73 22 0 50.00 61.010 17.99 6.93 35.21 3.010 + 277 ctgatcgatcgatgctagctag 399 22 0 50.00 58.963 19.70 17.46 35.21 3.037 + 278 ctagctgatcgatcgatgctag 395 22 0 50.00 58.963 37.86 37.86 43.17 3.037 + 279 ctagctagctgatcgatcgatg 391 22 0 50.00 58.963 21.99 11.03 35.21 3.037 + 280 ctgatcgatcgatgctagctag 118 22 0 50.00 58.963 19.70 17.46 35.21 3.037 + 281 ctagctagctgatcgatcgatg 71 22 0 50.00 58.963 21.99 11.03 35.21 3.037 + 282 gactgatcgatcatcatgctagc 268 23 0 47.83 60.053 24.51 9.03 41.77 3.053 + 283 gctagtgatgcatgctagtagtg 25 23 0 47.83 59.929 24.96 10.54 0.00 3.071 + 284 gctactatcatctctgcgcgat 356 22 0 50.00 61.073 4.99 2.52 0.00 3.073 + 285 gtagcggcgatctagctag 578 19 0 57.89 57.903 15.64 15.64 37.58 3.097 + 286 tgactgatcgatcatcatgct 267 21 0 42.86 57.900 26.79 12.28 41.77 3.100 + 287 ctagctactatcatctctgcgc 353 22 0 50.00 58.892 0.00 0.00 0.00 3.108 + 288 gctagctactatcatctctgcg 352 22 0 50.00 58.892 8.21 0.00 0.00 3.108 + 289 ctagctagctactgatcgatgc 301 22 0 50.00 58.892 14.00 1.76 0.00 3.108 + 290 gctagctagctactgatcgatg 300 22 0 50.00 58.892 34.38 7.78 46.11 3.108 + 291 catcgatcgatgctagtatgct 325 22 0 45.45 58.885 37.80 10.02 44.93 3.115 + 292 tgatcgatcgatgctagctag 400 21 0 47.62 57.879 26.44 17.46 35.21 3.121 + 293 ctgatcgatcgatgctagcta 399 21 0 47.62 57.879 19.70 3.77 35.21 3.121 + 294 tagctgatcgatcgatgctag 396 21 0 47.62 57.879 34.03 27.12 36.80 3.121 + 295 ctagctgatcgatcgatgcta 395 21 0 47.62 57.879 34.11 32.56 36.80 3.121 + 296 tagctagctgatcgatcgatg 392 21 0 47.62 57.879 21.99 11.03 35.21 3.121 + 297 tgatcgatcgatgctagctag 119 21 0 47.62 57.879 26.44 17.46 35.21 3.121 + 298 ctgatcgatcgatgctagcta 118 21 0 47.62 57.879 19.70 3.77 35.21 3.121 + 299 tagctagctgatcgatcgatg 72 21 0 47.62 57.879 21.99 11.03 35.21 3.121 + 300 gatcgatcgatgctagctagt 120 21 0 47.62 57.878 23.89 3.56 35.21 3.122 + 301 ctatcatctctgcgcgatcgat 360 22 0 50.00 61.132 22.07 11.47 38.48 3.132 + 302 tgatcgatcgtagcggcga 569 19 0 57.89 62.144 20.58 8.51 45.59 3.144 + 303 tcgtagcggcgatctagctag 576 21 0 57.14 62.173 15.64 15.64 36.40 3.173 + 304 tactagctagctgactgatacgc 463 23 0 47.83 60.176 13.17 0.00 0.00 3.176 + 305 ctgatcatcatcgatgctagct 517 22 0 45.45 58.807 17.69 1.76 40.32 3.193 + 306 agctgatcatcatcgatgctag 515 22 0 45.45 58.807 5.93 2.76 40.32 3.193 + 307 ctagctgatcatcatcgatgct 513 22 0 45.45 58.807 14.14 8.34 40.32 3.193 + 308 agctagctgatcatcatcgatg 511 22 0 45.45 58.807 20.23 20.23 41.48 3.193 + 309 ctgatcgatcatcatgctagct 270 22 0 45.45 58.807 26.67 0.00 41.77 3.193 + 310 ctagctgactgatcgatcgat 110 21 0 47.62 57.806 30.53 30.53 37.90 3.194 + 311 ttagctagctgactgatcgatca 258 23 0 43.48 59.798 28.29 26.99 35.44 3.202 + 312 tagctactatcatctctgcgc 354 21 0 47.62 57.798 0.00 0.00 0.00 3.202 + 313 gctagctactgatcgatgcta 304 21 0 47.62 57.798 12.99 12.23 0.00 3.202 + 314 tagctagctactgatcgatgc 302 21 0 47.62 57.798 27.80 1.76 0.00 3.202 + 315 tctctgcgcgatcgatgc 366 18 0 61.11 61.229 22.01 22.01 38.48 3.229 + 316 ctctgcgcgatcgatgct 367 18 0 61.11 61.232 26.61 0.00 38.48 3.232 + 317 agctagctactatcatctctgcg 351 23 0 47.83 60.238 17.56 0.00 0.00 3.238 + 318 ctagctagctactgatcgatgct 301 23 0 47.83 60.238 14.00 11.51 0.00 3.238 + 319 ctgatcgatcgtagcggc 568 18 0 61.11 58.727 14.21 0.00 0.00 3.273 + 320 gctgatcgatcgtagcgg 567 18 0 61.11 58.727 20.49 15.03 0.00 3.273 + 321 agctaggcgatgctagct 415 18 0 55.56 58.725 17.69 13.00 39.84 3.275 + 322 tgctagtgatgcatgctagtagt 24 23 0 43.48 60.302 24.96 12.98 35.89 3.302 + 323 gcgcgatcgatgctagct 371 18 0 61.11 61.306 21.66 1.35 38.48 3.306 + 324 tgatcatcatcgatgctagct 518 21 0 42.86 57.691 17.69 1.76 40.32 3.309 + 325 agctgatcatcatcgatgcta 515 21 0 42.86 57.691 0.24 0.00 40.32 3.309 + 326 tagctgatcatcatcgatgct 514 21 0 42.86 57.691 14.14 8.34 40.32 3.309 + 327 tgatcgatcatcatgctagct 271 21 0 42.86 57.691 27.48 0.00 37.38 3.309 + 328 ctagctagctgactgatacgcg 465 22 0 54.55 61.313 14.90 3.89 0.00 3.313 + 329 tgctagtgatgcatgctagtag 24 22 0 45.45 58.673 24.96 19.76 35.89 3.327 + 330 gctagtgatgcatgctagtagt 25 22 0 45.45 58.672 24.96 12.98 0.00 3.328 + 331 tagctagctgatcatcgatgcta 189 23 0 43.48 59.671 17.82 15.89 0.00 3.329 + 332 agctagctgactgatacgc 467 19 0 52.63 57.642 17.99 0.00 0.00 3.358 + 333 tatcatctctgcgcgatcgatg 361 22 0 50.00 61.383 18.01 18.01 38.48 3.383 + 334 agctgactgatcgatcatcat 264 21 0 42.86 57.616 26.31 18.90 41.77 3.384 + 335 actagctagctgatcatcatcga 508 23 0 43.48 59.607 22.43 0.00 0.00 3.393 + 336 tagctagctgactgatcgatcat 259 23 0 43.48 59.607 28.29 18.02 36.62 3.393 + 337 gatgctagctaggcgatgctag 409 22 0 54.55 61.393 23.16 23.16 38.59 3.393 + 338 cggcgatctagctagctgact 582 21 0 57.14 62.394 17.44 7.44 38.70 3.394 + 339 ctagctagctgatcgatcgat 391 21 0 47.62 57.600 30.53 30.53 37.90 3.400 + 340 ctagctagctgatcgatcgat 71 21 0 47.62 57.600 30.53 30.53 37.90 3.400 + 341 actgatcgatcatcatgctagct 269 23 0 43.48 60.428 26.67 4.70 41.77 3.428 + 342 ctagctagctgactgatcgatc 106 22 0 50.00 58.567 19.32 19.32 0.00 3.433 + 343 ctgactgatcgatcatcatgc 266 21 0 47.62 57.562 20.99 12.19 41.77 3.438 + 344 gctgactgatcgatcatcatg 265 21 0 47.62 57.562 22.70 19.51 41.77 3.438 + 345 gatcgatcgatgctagctaggc 401 22 0 54.55 61.448 23.89 8.45 35.21 3.448 + 346 gtgatgcatgctagtagtgatgt 29 23 0 43.48 59.551 11.60 0.00 0.00 3.449 + 347 tgctagtgatgcatgctagta 24 21 0 42.86 57.546 24.96 21.25 35.89 3.454 + 348 tagcggcgatctagctagctg 579 21 0 57.14 62.457 18.98 9.30 45.57 3.457 + 349 gtagcggcgatctagctagct 578 21 0 57.14 62.458 23.74 23.74 46.60 3.458 + 350 tagctgatcgatcgtagcg 565 19 0 52.63 57.539 25.02 11.96 0.00 3.461 + 351 gctagctagctactgatcgat 300 21 0 47.62 57.517 34.38 0.00 46.11 3.483 + 352 agctagctactgatcgatgctac 303 23 0 47.83 60.487 17.56 7.81 0.00 3.487 + 353 atcgatcgatgctagtatgct 326 21 0 42.86 57.502 29.65 2.17 33.56 3.498 + 354 agctactgatcgatgctacatc 307 22 0 45.45 58.484 7.41 0.00 37.97 3.516 + 355 agtgatgcatgctagtagtga 28 21 0 42.86 57.471 0.00 0.00 0.00 3.529 + 356 gactgatcgatcgatgctagcta 116 23 0 47.83 60.546 18.04 4.19 35.21 3.546 + 357 ctgatcgatcgatgctagctagt 118 23 0 47.83 60.547 22.18 3.56 35.21 3.547 + 358 actgatcgatcgatgctagctag 117 23 0 47.83 60.547 23.29 17.46 35.21 3.547 + 359 ctagctagctgatcgatcgatgt 71 23 0 47.83 60.547 14.29 2.62 35.21 3.547 + 360 catcgatcgatgctagtatgc 325 21 0 47.62 57.452 37.80 0.00 44.93 3.548 + 361 tagctagctgactgatcgatc 259 21 0 47.62 57.451 28.29 19.32 0.00 3.549 + 362 tagctagctgactgatcgatc 107 21 0 47.62 57.451 28.29 19.32 0.00 3.549 + 363 ctagctagctgactgatcgat 106 21 0 47.62 57.445 14.90 0.00 0.00 3.555 + 364 tcgatgctagctaggcga 407 18 0 55.56 58.427 15.59 13.52 0.00 3.573 + 365 tgatcgatcgatgctagctagta 119 23 0 43.48 59.424 26.44 18.77 35.21 3.576 + 366 ctgcgcgatcgatgctagc 369 19 0 63.16 62.586 20.26 12.12 38.48 3.586 + 367 agctagctgatcatcatcgat 511 21 0 42.86 57.405 17.99 0.00 0.00 3.595 + 368 tgcgcgatcgatgctagc 370 18 0 61.11 61.605 26.61 17.77 38.48 3.605 + 369 ctagctagctgatcgatcgtag 560 22 0 50.00 58.387 16.86 16.86 0.00 3.613 + 370 actagctagctgactgatacg 464 21 0 47.62 57.384 21.52 2.77 0.00 3.616 + 371 ctagctgactgatacgcga 469 19 0 52.63 57.370 16.29 0.00 0.00 3.630 + 372 gctactagctagctgactgat 461 21 0 47.62 57.360 15.96 3.00 44.92 3.640 + 373 ctgatcatcatcgatgctagc 517 21 0 47.62 57.358 8.61 8.61 40.32 3.642 + 374 gctgatcatcatcgatgctag 516 21 0 47.62 57.358 5.93 2.76 40.32 3.642 + 375 ctagctgatcatcatcgatgc 513 21 0 47.62 57.358 21.42 7.40 40.32 3.642 + 376 gctagctgatcatcatcgatg 512 21 0 47.62 57.358 20.23 20.23 41.48 3.642 + 377 ctgatcgatcatcatgctagc 270 21 0 47.62 57.358 26.67 8.61 41.77 3.642 + 378 agctactgatcgatgctacat 307 21 0 42.86 57.344 7.41 0.00 0.00 3.656 + 379 tgatcgatcgatgtgcggcta 80 21 0 52.38 62.663 22.21 0.24 41.65 3.663 + 380 atctctgcgcgatcgatg 365 18 0 55.56 58.327 12.03 4.19 38.48 3.673 + 381 catctctgcgcgatcgat 364 18 0 55.56 58.327 22.07 1.26 38.48 3.673 + 382 atcatctctgcgcgatcg 362 18 0 55.56 58.327 12.19 12.19 39.07 3.673 + 383 aagcatcggattagctagctgat 2 23 0 43.48 60.682 17.84 15.13 0.00 3.682 + 384 agtgatgcatgctagtagtgatg 28 23 0 43.48 59.299 7.49 7.49 0.00 3.701 + 385 gatcgatgctagctaggcgatg 405 22 0 54.55 61.702 24.26 6.24 0.00 3.702 + 386 atctctgcgcgatcgatgcta 365 21 0 52.38 62.723 26.61 17.10 38.48 3.723 + 387 tagctagctgactgatacgcga 466 22 0 50.00 61.730 28.29 0.00 0.00 3.730 + 388 tagctagctgatcgatcgtag 561 21 0 47.62 57.269 16.86 16.86 0.00 3.731 + 389 ctagctagctgatcgatcgta 560 21 0 47.62 57.269 11.68 3.07 0.00 3.731 + 390 tcgatcgatgctagctagtag 122 21 0 47.62 57.269 18.63 2.63 0.00 3.731 + 391 gctagctactgatcgatgctaca 304 23 0 47.83 60.734 11.21 0.06 0.00 3.734 + 392 agctagctgactgatcgatcatc 260 23 0 47.83 60.736 23.93 21.92 36.62 3.736 + 393 agctagctgactgatcgatcga 108 22 0 50.00 61.737 22.52 22.52 0.00 3.737 + 394 tctctgcgcgatcgatgct 366 19 0 57.89 62.740 26.61 0.00 38.48 3.740 + 395 tgatgcatgctagtagtgatgt 30 22 0 40.91 58.256 11.60 0.00 0.00 3.744 + 396 tgatcgatcgatgtgcgg 80 18 0 55.56 58.244 21.27 0.00 41.65 3.756 + 397 cgatcgatgctagctaggcga 404 21 0 57.14 62.770 16.30 16.30 0.00 3.770 + 398 tcgatcgatgctagctaggcg 403 21 0 57.14 62.770 18.63 11.67 0.00 3.770 + 399 atcgatcgatgcatgcatg 443 19 0 47.37 57.226 29.65 23.31 37.30 3.774 + 400 catcgatcgatgcatgcat 442 19 0 47.37 57.226 37.80 33.45 44.93 3.774 + 401 actagctagctgatcatcatcg 508 22 0 45.45 58.219 22.43 3.40 0.00 3.781 + 402 ctgatcatcgatgctactagct 196 22 0 45.45 58.219 10.86 0.00 45.92 3.781 + 403 agctgatcatcgatgctactag 194 22 0 45.45 58.219 13.67 9.68 0.00 3.781 + 404 ctagctgatcatcgatgctact 192 22 0 45.45 58.219 14.85 7.80 0.00 3.781 + 405 tttagctagctgactgatcga 257 21 0 42.86 57.216 0.38 0.00 0.00 3.784 + 406 tagctagctgatcgatcgatgtg 72 23 0 47.83 60.793 10.14 4.94 35.21 3.793 + 407 gctagctagctgatcatcatct 146 22 0 45.45 58.203 34.38 0.00 46.11 3.797 + 408 ctagctagctgatcatcgatgct 188 23 0 47.83 60.799 16.29 15.30 0.00 3.799 + 409 agctagctactatcatcgatcga 429 23 0 43.48 59.170 22.52 22.52 0.00 3.830 + 410 ttagctagctgactgatcgatc 258 22 0 45.45 58.159 28.29 19.32 0.00 3.841 + 411 ctagctgactgatcgatcatca 262 22 0 45.45 58.155 26.49 26.49 39.98 3.845 + 412 aaagcatcggattagctagctga 1 23 0 43.48 60.870 28.29 20.88 0.00 3.870 + 413 agctgactgatacgcgatgct 471 21 0 52.38 62.876 7.57 2.13 0.00 3.876 + 414 tagctagctactgatcgatgcta 302 23 0 43.48 59.102 27.80 12.23 0.00 3.898 + 415 tcatcatcgatgctagctagt 521 21 0 42.86 57.067 22.18 3.56 40.32 3.933 + 416 tcgatcatcatgctagctact 274 21 0 42.86 57.067 0.00 0.00 0.00 3.933 + 417 tgatcatcgatgctactagct 197 21 0 42.86 57.067 17.14 0.00 45.92 3.933 + 418 agctgatcatcgatgctacta 194 21 0 42.86 57.067 17.14 4.89 0.00 3.933 + 419 tagctgatcatcgatgctact 193 21 0 42.86 57.067 14.85 7.80 0.00 3.933 + 420 tcgatcgatgctagtatgctag 327 22 0 45.45 58.044 18.63 13.77 46.09 3.956 + 421 gcgatctagctagctgact 584 19 0 52.63 57.034 17.44 7.44 0.00 3.966 + 422 gctactgatcgatgctacatc 308 21 0 47.62 57.028 2.44 0.00 37.97 3.972 + 423 cggcgatctagctagctg 582 18 0 61.11 58.018 17.07 8.17 37.58 3.982 + 424 gctagctgactgatcgatcatca 261 23 0 47.83 60.983 26.49 26.49 39.98 3.983 + 425 actatcatctctgcgcgat 359 19 0 47.37 57.015 4.99 2.52 0.00 3.985 + 426 catcggattagctagctgatg 5 21 0 47.62 57.003 23.69 23.29 0.00 3.997 + 427 tagctgactgatcgatcatca 263 21 0 42.86 57.000 26.49 26.49 39.98 4.000 + 428 actagctagctgatcatcatcgat 508 24 0 41.67 59.995 22.43 0.00 0.00 4.005 + 429 agtgatgcatgctagtagtgat 28 22 0 40.91 57.984 0.00 0.00 0.00 4.016 + 430 ctagctagctgatcatcatcga 509 22 0 45.45 57.958 11.68 0.00 0.00 4.042 + 431 gctgatcatcgatgctactagct 195 23 0 47.83 61.046 20.91 5.24 45.92 4.046 + 432 agctgatcatcgatgctactagc 194 23 0 47.83 61.046 20.78 20.78 45.61 4.046 + 433 gctagctgatcatcgatgctact 191 23 0 47.83 61.046 12.59 8.92 0.00 4.046 + 434 agctagctgatcatcgatgctac 190 23 0 47.83 61.046 17.99 7.99 0.00 4.046 + 435 tagctagctactatcatctctgcg 350 24 0 45.83 60.058 27.80 0.00 0.00 4.058 + 436 ctagctagctactgatcgatgcta 301 24 0 45.83 60.058 14.00 12.23 0.00 4.058 + 437 agctactatcatctctgcgcga 355 22 0 50.00 62.058 2.71 2.71 0.00 4.058 + 438 gctatttagctagctgactgatcg 253 24 0 45.83 60.060 7.27 0.00 46.11 4.060 + 439 tgatcgatcatcatgctagctac 271 23 0 43.48 58.931 27.48 0.00 37.38 4.069 + 440 gtgatgcatgctagtagtgatg 29 22 0 45.45 57.921 7.49 7.49 0.00 4.079 + 441 ctagctagctgactgatcgatcg 106 23 0 52.17 61.091 16.84 13.89 0.00 4.091 + 442 ctagctactgatcgatgctaca 305 22 0 45.45 57.898 13.79 1.61 0.00 4.102 + 443 cggcgatctagctagctgacta 582 22 0 54.55 62.109 17.44 5.40 38.70 4.109 + 444 atgctagctaggcgatgc 410 18 0 55.56 57.890 10.59 0.00 0.00 4.110 + 445 ctgatcgatcatcatgctagctac 270 24 0 45.83 59.882 26.67 0.00 41.77 4.118 + 446 gctactagctagctgatcatca 505 22 0 45.45 57.879 14.37 0.00 44.92 4.121 + 447 gctactagctagctgatcatca 208 22 0 45.45 57.879 14.37 0.00 44.92 4.121 + 448 ctgactgatacgcgatgctagc 473 22 0 54.55 62.128 8.61 8.61 0.00 4.128 + 449 gctgactgatacgcgatgctag 472 22 0 54.55 62.128 1.70 0.00 0.00 4.128 + 450 ctagctgactgatacgcgatgc 469 22 0 54.55 62.128 3.47 0.00 0.00 4.128 + 451 gctagctgactgatacgcgatg 468 22 0 54.55 62.128 8.21 0.00 0.00 4.128 + 452 tgactgatcgatcatcatgctag 267 23 0 43.48 58.866 26.79 18.40 41.77 4.134 + 453 ctgactgatcgatcatcatgcta 266 23 0 43.48 58.866 20.99 8.89 41.77 4.134 + 454 tagctgactgatcgatcatcatg 263 23 0 43.48 58.866 22.70 19.51 41.77 4.134 + 455 ctagctagctgatcgatcgtagc 560 23 0 52.17 61.151 26.87 26.87 0.00 4.151 + 456 gctagctagctgatcgatcgtag 559 23 0 52.17 61.151 34.38 16.86 46.11 4.151 + 457 ctgatcgatcgatgctagctagg 399 23 0 52.17 61.158 22.67 6.29 35.21 4.158 + 458 gatcgatcgatgctagctagtag 120 23 0 47.83 58.829 23.89 2.63 35.21 4.171 + 459 ttagctagctgactgatcgatcat 258 24 0 41.67 60.177 28.29 18.02 36.62 4.177 + 460 ctgactgatcgatcatcatgctag 266 24 0 45.83 59.822 20.99 12.80 41.77 4.178 + 461 ctagctgactgatcgatcatcatg 262 24 0 45.83 59.822 22.70 19.51 41.77 4.178 + 462 ctagctgatcgatcgatgtgcg 75 22 0 54.55 62.180 31.92 20.85 42.69 4.180 + 463 tttagctagctgactgatcgatc 257 23 0 43.48 58.807 19.32 19.32 0.00 4.193 + 464 tgactgatcgatcatcatgcta 267 22 0 40.91 57.803 26.79 13.11 41.77 4.197 + 465 gctagctactatcatcgatcga 430 22 0 45.45 57.783 22.52 22.52 0.00 4.217 + 466 gatcgatcgatgctagctagta 120 22 0 45.45 57.783 23.89 18.77 35.21 4.217 + 467 agctagctactatcatcgatcg 429 22 0 45.45 57.777 17.56 9.87 0.00 4.223 + 468 atcgatcgatgctagctagtag 121 22 0 45.45 57.777 29.65 2.63 33.56 4.223 + 469 tgatcatcatcgatgctagctagt 518 24 0 41.67 60.238 22.18 3.56 40.32 4.238 + 470 tgatcgatcatcatgctagctact 271 24 0 41.67 60.238 27.48 0.00 37.38 4.238 + 471 actgatcgatcatcatgctagcta 269 24 0 41.67 60.238 26.67 2.76 41.77 4.238 + 472 catcgatcgatgctagtatgcta 325 23 0 43.48 58.753 37.80 6.23 44.93 4.247 + 473 tttagctagctgactgatcgat 257 22 0 40.91 57.736 0.38 0.00 0.00 4.264 + 474 atttagctagctgactgatcga 256 22 0 40.91 57.736 4.16 0.00 0.00 4.264 + 475 cgcgatcgatgctagcta 372 18 0 55.56 57.717 22.07 3.08 38.48 4.283 + 476 catcgatcgatgctagtatgctag 325 24 0 45.83 59.708 37.80 16.01 44.93 4.292 + 477 tagctagctactgatcgatgctac 302 24 0 45.83 60.297 27.80 7.81 0.00 4.297 + 478 agcatcggattagctagctgatg 3 23 0 47.83 61.299 27.81 27.81 33.28 4.299 + 479 agctagctgactgatacgcgat 467 22 0 50.00 62.317 17.99 0.00 0.00 4.317 + 480 tgatcatcatcgatgctagctag 518 23 0 43.48 58.678 17.46 17.46 40.32 4.322 + 481 ctgatcatcatcgatgctagcta 517 23 0 43.48 58.678 17.69 2.41 40.32 4.322 + 482 tagctgatcatcatcgatgctag 514 23 0 43.48 58.678 9.90 2.76 40.32 4.322 + 483 ctagctgatcatcatcgatgcta 513 23 0 43.48 58.678 14.58 9.63 40.32 4.322 + 484 tagctagctgatcatcatcgatg 510 23 0 43.48 58.678 20.23 20.23 41.48 4.322 + 485 ctgatcgatcatcatgctagcta 270 23 0 43.48 58.678 26.67 2.76 41.77 4.322 + 486 gatcatcatcgatgctagctagt 519 23 0 43.48 58.677 22.18 3.56 40.32 4.323 + 487 gatcgatcatcatgctagctact 272 23 0 43.48 58.677 21.11 0.00 0.00 4.323 + 488 gctagctagctgactgatcgatc 105 23 0 52.17 61.341 34.38 19.32 46.11 4.341 + 489 tgatcgatcgatgctagctagtag 119 24 0 45.83 60.356 26.44 2.63 35.21 4.356 + 490 ctgatcgatcgatgctagctagta 118 24 0 45.83 60.356 22.18 18.77 35.21 4.356 + 491 ctgatcatcatcgatgctagctag 517 24 0 45.83 59.644 17.46 17.46 40.32 4.356 + 492 ctagctgatcatcatcgatgctag 513 24 0 45.83 59.644 19.54 18.30 42.07 4.356 + 493 ctagctagctgatcatcatcgatg 509 24 0 45.83 59.644 20.23 20.23 41.48 4.356 + 494 tttagctagctgactgatcgatca 257 24 0 41.67 60.358 26.99 26.99 35.44 4.358 + 495 actatcatctctgcgcgatcga 359 22 0 50.00 62.365 22.07 1.72 38.48 4.365 + 496 agctgatcgatcgtagcg 566 18 0 55.56 57.634 25.02 11.96 0.00 4.366 + 497 gctactagctagctgactgatac 461 23 0 47.83 58.626 15.96 1.42 44.92 4.374 + 498 agctgatcgatcgatgctagct 397 22 0 50.00 62.388 30.32 30.32 38.42 4.388 + 499 agctagctgatcgatcgatgct 393 22 0 50.00 62.388 33.87 33.38 38.16 4.388 + 500 ctagctgactgatcgatcatcat 262 23 0 43.48 58.612 26.31 20.43 41.77 4.388 + 501 agctagctactatcatctctgc 351 22 0 45.45 57.608 17.56 0.00 0.00 4.392 + 502 ctagctactatcatctctgcgcg 353 23 0 52.17 61.393 0.00 0.00 0.00 4.393 + 503 tgatcatcatcgatgctagcta 518 22 0 40.91 57.602 17.69 3.08 40.32 4.398 + 504 tagctgatcatcatcgatgcta 514 22 0 40.91 57.602 15.95 9.16 40.32 4.398 + 505 tgatcgatcatcatgctagcta 271 22 0 40.91 57.602 27.48 3.08 37.38 4.398 + 506 atcatcatcgatgctagctagt 520 22 0 40.91 57.595 22.18 3.56 40.32 4.405 + 507 atcgatcatcatgctagctact 273 22 0 40.91 57.595 0.00 0.00 0.00 4.405 + 508 agctagctactatcatcgatcgat 429 24 0 41.67 59.573 25.37 25.37 35.13 4.427 + 509 gctagctgatcgatcgatgtgc 74 22 0 54.55 62.443 31.83 30.04 35.21 4.443 + 510 tagctgactgatcgatcatcat 263 22 0 40.91 57.531 26.31 20.43 41.77 4.469 + 511 tagctagctgactgatcgatcga 107 23 0 47.83 61.487 28.29 22.52 0.00 4.487 + 512 atcgatcgatgctagtatgctag 326 23 0 43.48 58.501 29.65 13.77 46.09 4.499 + 513 ctagtgatgcatgctagtagtga 26 23 0 43.48 58.483 20.00 1.46 0.00 4.517 + 514 tagctagctgactgatcgatcatc 259 24 0 45.83 60.536 28.29 21.92 36.62 4.536 + 515 tactagctagctgatcatcatcga 507 24 0 41.67 59.449 0.00 0.00 0.00 4.551 + 516 gctagctagctactatcatcga 426 22 0 45.45 57.437 34.38 0.00 46.11 4.563 + 517 tgactgatacgcgatgctagct 474 22 0 50.00 62.569 17.69 1.35 0.00 4.569 + 518 agctgactgatacgcgatgcta 471 22 0 50.00 62.569 7.57 0.00 0.00 4.569 + 519 tagctgactgatacgcgatgct 470 22 0 50.00 62.569 10.87 8.44 0.00 4.569 + 520 atcgatcgatgctagtatgcta 326 22 0 40.91 57.423 29.65 0.00 33.56 4.577 + 521 ctagctagctgatcatcatcgat 509 23 0 43.48 58.422 11.68 0.00 0.00 4.578 + 522 agctgactgatcgatcgatgct 112 22 0 50.00 62.580 26.44 23.13 35.21 4.580 + 523 ctagctagctgatcatcgatgcta 188 24 0 45.83 60.596 16.78 15.81 0.00 4.596 + 524 gtgatgcatgctagtagtgatgta 29 24 0 41.67 59.398 11.60 8.84 0.00 4.602 + 525 gctgatcatcatcgatgctagct 516 23 0 47.83 61.603 20.15 8.14 40.32 4.603 + 526 agctgatcatcatcgatgctagc 515 23 0 47.83 61.603 20.04 19.26 40.32 4.603 + 527 gctagctgatcatcatcgatgct 512 23 0 47.83 61.603 14.14 8.34 40.32 4.603 + 528 agctagctgatcatcatcgatgc 511 23 0 47.83 61.603 21.42 7.40 40.32 4.603 + 529 tagtgatgcatgctagtagtga 27 22 0 40.91 57.391 0.01 0.00 0.00 4.609 + 530 ctactagctagctgactgatacg 462 23 0 47.83 58.387 3.12 0.00 0.00 4.613 + 531 tagctactgatcgatgctacatc 306 23 0 43.48 58.368 13.79 0.00 37.97 4.632 + 532 gactgatacgcgatgctagctag 475 23 0 52.17 61.633 17.46 17.46 0.00 4.633 + 533 ctagctactgatcgatgctacat 305 23 0 43.48 58.364 13.79 0.09 0.00 4.636 + 534 gctagctactatcatctctgcgc 352 23 0 52.17 61.644 8.21 0.00 0.00 4.644 + 535 gctagctagctactgatcgatgc 300 23 0 52.17 61.644 34.38 12.71 46.11 4.644 + 536 gctactagctagctgatcatcat 505 23 0 43.48 58.350 14.37 0.00 44.92 4.650 + 537 gctactagctagctgatcatcat 208 23 0 43.48 58.350 14.37 0.00 44.92 4.650 + 538 ctagctactgatcgatgctacatc 305 24 0 45.83 59.349 13.79 0.00 37.97 4.651 + 539 gctactagctagctgatcatcatc 505 24 0 45.83 59.343 14.37 0.00 44.92 4.657 + 540 gctactagctagctgatcatcatc 208 24 0 45.83 59.343 14.37 0.00 44.92 4.657 + 541 gctgatcatcatctagctagtagc 154 24 0 45.83 59.343 15.25 15.25 45.79 4.657 + 542 tagctagctgatcatcatcgat 510 22 0 40.91 57.329 10.14 0.00 0.00 4.671 + 543 ctactatcatctctgcgcgatcg 357 23 0 52.17 61.686 12.19 12.19 39.07 4.686 + 544 tactagctagctgactgatacg 463 22 0 45.45 57.310 13.17 0.00 0.00 4.690 + 545 gctgatcgatcgatgctagctag 398 23 0 52.17 61.697 27.88 18.22 35.21 4.697 + 546 ctagctgatcgatcgatgctagc 395 23 0 52.17 61.697 38.64 35.38 43.05 4.697 + 547 gctagctgatcgatcgatgctag 394 23 0 52.17 61.697 41.07 41.07 46.89 4.697 + 548 ctagctagctgatcgatcgatgc 391 23 0 52.17 61.697 24.08 21.09 35.21 4.697 + 549 gctagctagctgatcgatcgatg 390 23 0 52.17 61.697 34.38 11.03 46.11 4.697 + 550 gctagctagctgatcgatcgatg 70 23 0 52.17 61.697 34.38 11.03 46.11 4.697 + 551 gctactagctagctgactgata 461 22 0 45.45 57.286 15.96 3.69 44.92 4.714 + 552 gatcgatcatcatgctagctac 272 22 0 45.45 57.284 21.11 0.00 0.00 4.716 + 553 cgatgctagctaggcgat 408 18 0 55.56 57.277 10.81 3.01 0.00 4.723 + 554 atcgatgctagctaggcg 406 18 0 55.56 57.277 15.59 9.02 0.00 4.723 + 555 tagctactgatcgatgctacat 306 22 0 40.91 57.270 13.79 0.09 0.00 4.730 + 556 gctagctactatcatcgatcgat 430 23 0 43.48 58.251 25.37 25.37 35.13 4.749 + 557 tgcatgctagtagtgatgtatacg 33 24 0 41.67 59.224 20.79 0.00 0.00 4.776 + 558 gcatgctagtagtgatgtatacgt 34 24 0 41.67 59.223 11.60 0.00 0.00 4.777 + 559 atttagctagctgactgatcgatc 256 24 0 41.67 59.219 19.32 19.32 0.00 4.781 + 560 gactgatcgatcatcatgctag 268 22 0 45.45 57.215 24.51 15.87 41.77 4.785 + 561 atttagctagctgactgatcgat 256 23 0 39.13 58.215 4.16 0.00 0.00 4.785 + 562 gctgactgatcgatcatcatgct 265 23 0 47.83 61.788 27.72 15.10 41.77 4.788 + 563 agctgactgatcgatcatcatgc 264 23 0 47.83 61.788 27.74 27.74 41.77 4.788 + 564 tagctactatcatctctgcgcga 354 23 0 47.83 61.796 2.71 2.71 0.00 4.796 + 565 gctgatcatcgatgctactagcta 195 24 0 45.83 60.834 20.91 7.37 45.92 4.834 + 566 tagctgatcatcgatgctactagc 193 24 0 45.83 60.834 20.78 20.78 45.61 4.834 + 567 gctagctgatcatcgatgctacta 191 24 0 45.83 60.834 11.65 8.83 0.00 4.834 + 568 tagctagctgatcatcgatgctac 189 24 0 45.83 60.834 17.82 12.06 0.00 4.834 + 569 tagtgatgcatgctagtagtgatg 27 24 0 41.67 59.155 11.56 7.49 0.00 4.845 + 570 agtgatgcatgctagtagtgatgt 28 24 0 41.67 60.846 11.60 0.00 0.00 4.846 + 571 tgatgcatgctagtagtgatgta 30 23 0 39.13 58.147 11.60 8.84 0.00 4.853 + 572 ctgactgatcgatcgatgctagc 114 23 0 52.17 61.878 18.17 12.52 35.21 4.878 + 573 gctgactgatcgatcgatgctag 113 23 0 52.17 61.878 22.81 19.44 35.21 4.878 + 574 ctagctgactgatcgatcgatgc 110 23 0 52.17 61.878 24.08 19.43 35.21 4.878 + 575 gctagctgactgatcgatcgatg 109 23 0 52.17 61.878 23.05 13.21 35.21 4.878 + 576 tcatcatcgatgctagctagtag 521 23 0 43.48 58.114 2.81 0.00 40.32 4.886 + 577 tactagctagctgatcatcatcg 507 23 0 43.48 58.114 0.00 0.00 0.00 4.886 + 578 tcgatcatcatgctagctactag 274 23 0 43.48 58.114 0.00 0.00 37.62 4.886 + 579 tgatcatcgatgctactagctag 197 23 0 43.48 58.114 20.04 20.04 45.92 4.886 + 580 ctgatcatcgatgctactagcta 196 23 0 43.48 58.114 10.86 0.00 45.92 4.886 + 581 tagctgatcatcgatgctactag 193 23 0 43.48 58.114 13.67 9.68 0.00 4.886 + 582 ctagctgatcatcgatgctacta 192 23 0 43.48 58.114 11.65 8.83 0.00 4.886 + 583 ctactagctagctgatcatcatcg 506 24 0 45.83 59.110 1.08 0.00 0.00 4.890 + 584 ctgatcatcgatgctactagctag 196 24 0 45.83 59.110 20.04 20.04 45.92 4.890 + 585 ctagctgatcatcgatgctactag 192 24 0 45.83 59.110 15.68 15.68 0.00 4.890 + 586 gctagctagctgatcatcatctag 146 24 0 45.83 59.102 34.38 13.13 44.71 4.898 + 587 gctagctagctgatcatcatcta 146 23 0 43.48 58.097 34.38 0.00 46.11 4.903 + 588 ctagtgatgcatgctagtagtg 26 22 0 45.45 57.072 20.00 3.96 0.00 4.928 + 589 gctactatcatctctgcgcgatc 356 23 0 52.17 61.936 4.99 0.00 0.00 4.936 + 590 gctgatcgatcgatgtgc 78 18 0 55.56 57.052 29.71 26.38 35.21 4.948 + 591 tagctagctactatcatcgatcga 428 24 0 41.67 59.031 27.80 22.52 0.00 4.969 + 592 agctagctgatcgatcgtagcg 562 22 0 54.55 62.971 27.20 18.31 0.00 4.971 + 593 tgactgatacgcgatgct 474 18 0 50.00 57.028 2.33 0.00 0.00 4.972 + 594 gatcatcatcgatgctagctag 519 22 0 45.45 57.019 17.46 17.46 40.32 4.981 + 595 tcatcatcgatgctagctagta 521 22 0 40.91 57.005 22.18 18.77 40.32 4.995 + 596 tcgatcatcatgctagctacta 274 22 0 40.91 57.005 0.00 0.00 0.00 4.995 + 597 tgatcatcgatgctactagcta 197 22 0 40.91 57.005 17.14 1.01 45.92 4.995 + 598 tagctgatcatcgatgctacta 193 22 0 40.91 57.005 12.62 8.42 0.00 4.995 + 599 tagctagctgactgatacgcgat 466 23 0 47.83 62.044 28.29 0.00 0.00 5.044 + 600 ctagctagctactatcatcgatcga 427 25 0 44.00 59.949 27.80 22.52 0.00 5.051 + 601 agctagctgactgatcgatcgat 108 23 0 47.83 62.053 30.53 30.53 37.90 5.053 + 602 ctactagctagctgactgatacgc 462 24 0 50.00 61.062 3.61 0.00 0.00 5.062 + 603 gctactagctagctgactgatacg 461 24 0 50.00 61.062 14.37 0.00 44.92 5.062 + 604 tgatcatcatcgatgctagctagta 518 25 0 40.00 60.062 22.18 18.77 40.32 5.062 + 605 tgatcgatcatcatgctagctacta 271 25 0 40.00 60.062 27.48 0.00 37.38 5.062 + 606 ctagtgatgcatgctagtagtgatg 26 25 0 44.00 60.064 20.00 7.49 0.00 5.064 + 607 gctagctagctactatcatcgatc 426 24 0 45.83 58.932 34.38 4.20 46.11 5.068 + 608 gctagctactgatcgatgctacat 304 24 0 45.83 61.072 11.21 0.00 0.00 5.072 + 609 gctagctagctactatcatcgat 426 23 0 43.48 57.922 34.38 0.00 46.11 5.078 + 610 ctagtgatgcatgctagtagtgat 26 24 0 41.67 58.911 20.00 4.64 0.00 5.089 + 611 tactatcatctctgcgcgatcga 358 23 0 47.83 62.092 22.07 1.72 38.48 5.092 + 612 agctgatcgatcgatgctagcta 397 23 0 47.83 62.111 31.26 14.51 40.03 5.111 + 613 tagctgatcgatcgatgctagct 396 23 0 47.83 62.111 33.22 33.22 42.08 5.111 + 614 agctagctgatcgatcgatgcta 393 23 0 47.83 62.111 34.11 32.56 36.80 5.111 + 615 tagctagctgatcgatcgatgct 392 23 0 47.83 62.111 33.87 33.38 38.16 5.111 + 616 tagtgatgcatgctagtagtgat 27 23 0 39.13 57.886 11.56 0.00 0.00 5.114 + 617 tactagctagctgatcatcatcgat 507 25 0 40.00 59.828 0.00 0.00 0.00 5.172 + 618 gctagctagctgatcatcgatgc 187 23 0 52.17 62.193 34.38 9.22 46.11 5.193 + 619 gctagtgatgcatgctagtagtga 25 24 0 45.83 61.195 24.96 4.57 0.00 5.195 + 620 aaagcatcggattagctagctgat 1 24 0 41.67 61.209 17.84 15.13 0.00 5.209 + 621 gtgatgcatgctagtagtgatgtat 29 25 0 40.00 59.774 1.07 1.07 0.00 5.226 + 622 ctatcatctctgcgcgatcgatg 360 23 0 52.17 62.227 18.01 18.01 38.48 5.227 + 623 tgactgatacgcgatgctagcta 474 23 0 47.83 62.287 17.69 3.08 0.00 5.287 + 624 tagctgactgatacgcgatgcta 470 23 0 47.83 62.287 12.64 9.09 0.00 5.287 + 625 tgctagtagtgatgtatacgtagct 37 25 0 40.00 59.713 9.37 8.73 0.00 5.287 + 626 tgactgatcgatcgatgctagct 115 23 0 47.83 62.296 20.19 11.59 35.21 5.296 + 627 agctgactgatcgatcgatgcta 112 23 0 47.83 62.296 26.44 14.64 35.21 5.296 + 628 tagctgactgatcgatcgatgct 111 23 0 47.83 62.296 31.98 30.27 35.21 5.296 + 629 ctagctagctactatcatcgatcg 427 24 0 45.83 58.703 12.49 9.87 0.00 5.297 + 630 tagctagctactatcatcgatcg 428 23 0 43.48 57.691 27.80 9.87 0.00 5.309 + 631 gactgatcgatcatcatgctagct 268 24 0 45.83 61.313 24.51 7.81 41.77 5.313 + 632 gctagctgactgatcgatcatcat 261 24 0 45.83 61.313 26.31 20.43 41.77 5.313 + 633 ctatttagctagctgactgatcga 254 24 0 41.67 58.679 0.00 0.00 0.00 5.321 + 634 gcatgctagtagtgatgtatacg 34 23 0 43.48 57.659 11.60 0.00 0.00 5.341 + 635 tatttagctagctgactgatcga 255 23 0 39.13 57.650 0.00 0.00 0.00 5.350 + 636 ctactagctagctgatcatcatcga 506 25 0 44.00 60.352 1.08 0.00 0.00 5.352 + 637 agctactatcatctctgcgcgat 355 23 0 47.83 62.360 4.99 2.52 0.00 5.360 + 638 gctgatcatcatcgatgctagcta 516 24 0 45.83 61.370 20.15 8.49 40.32 5.370 + 639 tagctgatcatcatcgatgctagc 514 24 0 45.83 61.370 20.04 19.26 40.32 5.370 + 640 gctagctgatcatcatcgatgcta 512 24 0 45.83 61.370 14.58 9.63 40.32 5.370 + 641 tagctagctgatcatcatcgatgc 510 24 0 45.83 61.370 21.42 7.40 40.32 5.370 + 642 atgcatgctagtagtgatgtatacg 32 25 0 40.00 59.604 11.70 0.00 0.00 5.396 + 643 tgatgcatgctagtagtgatgtat 30 24 0 37.50 58.592 12.66 12.66 0.00 5.408 + 644 gactgatcgatcgatgctagctag 116 24 0 50.00 61.409 18.04 17.46 35.21 5.409 + 645 gctatttagctagctgactgatc 253 23 0 43.48 57.572 7.27 0.00 46.11 5.428 + 646 tgctagtgatgcatgctagtagtg 24 24 0 45.83 61.434 24.96 10.54 35.89 5.434 + 647 ctagctagctactatcatctctgc 349 24 0 45.83 58.562 27.80 0.00 0.00 5.438 + 648 gctagctagctactatcatctctg 348 24 0 45.83 58.562 34.38 6.79 46.11 5.438 + 649 gatcatcatcgatgctagctagta 519 24 0 41.67 58.557 22.18 18.77 40.32 5.443 + 650 gatcgatcatcatgctagctacta 272 24 0 41.67 58.557 21.11 0.00 0.00 5.443 + 651 atcatcatcgatgctagctagtag 520 24 0 41.67 58.554 2.13 0.00 40.32 5.446 + 652 atcgatcatcatgctagctactag 273 24 0 41.67 58.554 0.00 0.00 37.62 5.446 + 653 tagctagctactatcatctctgc 350 23 0 43.48 57.527 27.80 0.00 0.00 5.473 + 654 atcatcatcgatgctagctagta 520 23 0 39.13 57.514 22.18 18.77 40.32 5.486 + 655 atcgatcatcatgctagctacta 273 23 0 39.13 57.514 0.00 0.00 0.00 5.486 + 656 gatcatcatcgatgctagctagtag 519 25 0 44.00 59.494 0.21 0.00 40.32 5.506 + 657 gatcgatcatcatgctagctactag 272 25 0 44.00 59.494 21.11 0.00 37.62 5.506 + 658 actagctagctgatcatcatctact 211 25 0 40.00 59.471 22.43 6.99 0.00 5.529 + 659 tgactgatcgatcatcatgctagc 267 24 0 45.83 61.547 26.79 14.13 41.77 5.547 + 660 gctgactgatcgatcatcatgcta 265 24 0 45.83 61.547 27.72 16.42 41.77 5.547 + 661 tagctgactgatcgatcatcatgc 263 24 0 45.83 61.547 27.74 27.74 41.77 5.547 + 662 tgctagtagtgatgtatacgtagc 37 24 0 41.67 58.446 4.93 4.93 0.00 5.554 + 663 ctagctagctgactgatacgcga 465 23 0 52.17 62.571 14.90 0.00 0.00 5.571 + 664 tagctagctactatcatcgatcgat 428 25 0 40.00 59.423 27.80 25.37 35.13 5.577 + 665 gctactagctagctgatcatcatct 208 25 0 44.00 60.585 14.37 0.00 44.92 5.585 + 666 agctgatcatcatctagctagtagc 153 25 0 44.00 60.585 15.25 15.25 40.45 5.585 + 667 ctagctagctgatcgatcgatgtg 71 24 0 50.00 61.642 11.68 4.94 35.21 5.642 + 668 agtgatgcatgctagtagtgatgta 28 25 0 40.00 60.646 11.60 8.84 0.00 5.646 + 669 tagtgatgcatgctagtagtgatgt 27 25 0 40.00 60.646 11.60 0.00 0.00 5.646 + 670 actatcatctctgcgcgatcgat 359 23 0 47.83 62.652 22.07 11.47 38.48 5.652 + 671 ctatttagctagctgactgatcg 254 23 0 43.48 57.339 0.00 0.00 0.00 5.661 + 672 tagctagctgatcgatcgtagcg 561 23 0 52.17 62.677 27.20 18.31 0.00 5.677 + 673 gcatcggattagctagctgatgc 4 23 0 52.17 62.687 34.10 34.10 41.15 5.687 + 674 tgcatgctagtagtgatgtatacgt 33 25 0 40.00 60.700 20.79 0.00 0.00 5.700 + 675 tttagctagctgactgatcgatcat 257 25 0 40.00 60.702 26.67 18.02 36.62 5.702 + 676 atttagctagctgactgatcgatca 256 25 0 40.00 60.702 26.99 26.99 35.44 5.702 + 677 gctagctagctactatcatctct 348 23 0 43.48 57.266 34.38 0.00 46.11 5.734 + 678 aagcatcggattagctagctgatg 2 24 0 45.83 61.794 27.81 27.81 33.28 5.794 + 679 agtgatgtatacgtagctagtagc 44 24 0 41.67 58.201 15.25 15.25 45.79 5.799 + 680 gctagtagtgatgtatacgtagct 38 24 0 41.67 58.201 5.92 5.92 0.00 5.799 + 681 tagctagctgactgatcgatcgat 107 24 0 45.83 61.800 30.53 30.53 37.90 5.800 + 682 actagctagctgactgatacgcg 464 23 0 52.17 62.816 21.52 3.89 0.00 5.816 + 683 actagctagctgatcatcatctac 211 24 0 41.67 58.178 22.43 0.00 0.00 5.822 + 684 tagctgatcgatcgatgctagcta 396 24 0 45.83 61.857 34.98 33.55 41.05 5.857 + 685 tagctagctgatcgatcgatgcta 392 24 0 45.83 61.857 34.11 32.56 36.80 5.857 + 686 tatttagctagctgactgatcgat 255 24 0 37.50 58.112 1.68 0.00 0.00 5.888 + 687 gcatgctagtagtgatgtatacgta 34 25 0 40.00 59.089 11.60 0.00 0.00 5.911 + 688 tatttagctagctgactgatcgatc 255 25 0 40.00 59.084 19.32 19.32 0.00 5.916 + 689 ctatttagctagctgactgatcgat 254 25 0 40.00 59.082 0.00 0.00 0.00 5.918 + 690 ctagctagctactatcatctctgcg 349 25 0 48.00 60.920 27.80 5.75 0.00 5.920 + 691 tgatcgatcgatgctagctaggc 400 23 0 52.17 62.955 26.44 12.49 35.21 5.955 + 692 agctagctactgatcgatgctaca 303 24 0 45.83 61.988 17.56 3.03 0.00 5.988 + 693 tgactgatcgatcgatgctagcta 115 24 0 45.83 62.034 20.19 11.16 35.21 6.034 + 694 tagctgactgatcgatcgatgcta 111 24 0 45.83 62.034 33.43 30.74 35.21 6.034 + 695 catgctagtagtgatgtatacgtagc 35 26 0 42.31 59.961 4.93 4.93 0.00 6.039 + 696 gcatgctagtagtgatgtatacgtag 34 26 0 42.31 59.961 11.60 0.00 0.00 6.039 + 697 actgatcgatcgatgctagctagt 117 24 0 45.83 62.039 23.29 15.07 35.21 6.039 + 698 ctatttagctagctgactgatcgatc 254 26 0 42.31 59.960 19.32 19.32 0.00 6.040 + 699 ttagctagctgactgatcgatcatc 258 25 0 44.00 61.041 28.29 21.92 36.62 6.041 + 700 atgctagtagtgatgtatacgtagct 36 26 0 38.46 60.068 9.37 8.73 0.00 6.068 + 701 ctagctagctgatcatcatctact 212 24 0 41.67 57.930 11.68 6.99 0.00 6.070 + 702 ctactagctagctgatcatcatct 209 24 0 41.67 57.930 1.08 0.00 0.00 6.070 + 703 agctgatcatcatctagctagtag 153 24 0 41.67 57.930 7.49 3.73 40.45 6.070 + 704 ctagctgatcatcatctagctagt 151 24 0 41.67 57.930 21.70 5.56 46.15 6.070 + 705 tagctactatcatctctgcgcgat 354 24 0 45.83 62.096 4.99 2.52 0.00 6.096 + 706 gactgatcgatcatcatgctagcta 268 25 0 44.00 61.099 24.51 4.57 41.77 6.099 + 707 ctgatcatcatcgatgctagctagt 517 25 0 44.00 61.101 22.18 3.56 40.32 6.101 + 708 actagctagctgatcatcatcgatg 508 25 0 44.00 61.101 22.43 20.23 41.48 6.101 + 709 ctgatcgatcatcatgctagctact 270 25 0 44.00 61.101 26.67 0.00 41.77 6.101 + 710 atgctagtagtgatgtatacgtagc 36 25 0 40.00 58.855 4.93 4.93 0.00 6.145 + 711 ctagctagctactgatcgatgctac 301 25 0 48.00 61.145 14.00 7.81 0.00 6.145 + 712 gctagctagctactatcatctctgc 348 25 0 48.00 61.152 34.38 11.74 46.11 6.152 + 713 agctagctgatcatcatctactatca 214 26 0 38.46 59.840 17.99 0.00 0.00 6.160 + 714 ctgatcgatcgatgctagctagtag 118 25 0 48.00 61.197 19.70 5.49 35.21 6.197 + 715 agctagctgactgatcgatcatca 260 24 0 45.83 62.232 26.49 26.49 39.98 6.232 + 716 gctagctagctactatcatcgatcg 426 25 0 48.00 61.252 34.38 9.87 46.11 6.252 + 717 gctatttagctagctgactgatcga 253 25 0 44.00 61.268 7.27 0.00 46.11 6.268 + 718 ctagctagctactatcatcgatcgat 427 26 0 42.31 60.291 27.80 25.37 35.13 6.291 + 719 agctgatcatcgatgctactagct 194 24 0 45.83 62.294 24.11 23.60 45.92 6.294 + 720 agctagctgatcatcgatgctact 190 24 0 45.83 62.294 17.99 10.88 0.00 6.294 + 721 ctagctagctgactgatcgatcga 106 24 0 50.00 62.312 22.52 22.52 0.00 6.312 + 722 actgatcgatcatcatgctagctac 269 25 0 44.00 61.328 26.67 0.00 41.77 6.328 + 723 tgatgcatgctagtagtgatgtatac 30 26 0 38.46 59.623 9.19 6.43 0.00 6.377 + 724 gtgatgcatgctagtagtgatgtata 29 26 0 38.46 59.623 4.23 0.00 0.00 6.377 + 725 tactatcatctctgcgcgatcgat 358 24 0 45.83 62.379 22.07 11.47 38.48 6.379 + 726 gctagctgatcatcatctactatca 215 25 0 40.00 58.607 8.21 0.00 0.00 6.393 + 727 gctactagctagctgatcatcatcta 208 26 0 42.31 60.404 14.37 0.00 44.92 6.404 + 728 tagctgatcatcatctagctagtagc 152 26 0 42.31 60.404 15.25 15.25 41.48 6.404 + 729 tgctagtagtgatgtatacgtagcta 37 26 0 38.46 59.564 10.00 8.05 0.00 6.436 + 730 gatgcatgctagtagtgatgtatacg 31 26 0 42.31 60.453 7.40 0.00 0.00 6.453 + 731 tagtgatgcatgctagtagtgatgta 27 26 0 38.46 60.461 11.60 8.84 0.00 6.461 + 732 gctagtgatgcatgctagtagtgat 25 25 0 44.00 61.506 24.96 8.51 0.00 6.506 + 733 tgcatgctagtagtgatgtatacgta 33 26 0 38.46 60.515 20.79 0.00 0.00 6.515 + 734 tatttagctagctgactgatcgatca 255 26 0 38.46 60.516 26.99 26.99 35.44 6.516 + 735 tgatgcatgctagtagtgatgtata 30 25 0 36.00 58.479 4.13 0.00 0.00 6.521 + 736 tactagctagctgactgatacgcg 463 24 0 50.00 62.538 13.17 3.89 0.00 6.538 + 737 ctagctactatcatctctgcgcga 353 24 0 50.00 62.603 2.71 2.71 0.00 6.603 + 738 agctagctgatcatcatctactatc 214 25 0 40.00 58.369 17.99 0.00 0.00 6.631 + 739 agctagctgatcatcatctactat 214 24 0 37.50 57.345 17.99 0.00 0.00 6.655 + 740 gctactagctagctgatcatcatcg 505 25 0 48.00 61.656 14.37 0.00 44.92 6.656 + 741 gctgatcatcgatgctactagctag 195 25 0 48.00 61.656 20.91 20.04 45.92 6.656 + 742 ctagctgatcatcgatgctactagc 192 25 0 48.00 61.656 20.78 20.78 45.61 6.656 + 743 gctagctgatcatcgatgctactag 191 25 0 48.00 61.656 20.13 20.13 0.00 6.656 + 744 ctagctagctgatcatcgatgctac 188 25 0 48.00 61.656 17.82 12.06 0.00 6.656 + 745 actagctagctgatcatcatctacta 211 26 0 38.46 59.328 22.43 8.11 0.00 6.672 + 746 tactagctagctgatcatcatctact 210 26 0 38.46 59.328 6.99 6.99 0.00 6.672 + 747 ctactagctagctgatcatcatcgat 506 26 0 42.31 60.681 1.08 0.00 0.00 6.681 + 748 tagctagctactgatcgatgctaca 302 25 0 44.00 61.746 27.80 5.02 0.00 6.746 + 749 gtagtgatgtatacgtagctagtagc 42 26 0 42.31 59.249 15.25 15.25 45.79 6.751 + 750 actgatcgatcgatgctagctagta 117 25 0 44.00 61.797 23.29 18.77 35.21 6.797 + 751 gatgcatgctagtagtgatgtatac 31 25 0 40.00 58.175 20.79 1.70 0.00 6.825 + 752 agctgatcatcatcgatgctagct 515 24 0 45.83 62.835 23.00 22.41 41.74 6.835 + 753 agctagctgatcatcatcgatgct 511 24 0 45.83 62.835 17.99 8.34 40.32 6.835 + 754 ctagctagctgactgatacgcgat 465 24 0 50.00 62.838 14.90 0.00 0.00 6.838 + 755 atgcatgctagtagtgatgtatac 32 24 0 37.50 57.161 11.70 0.53 0.00 6.839 + 756 agctagctactatcatctctgcgc 351 24 0 50.00 62.858 17.56 0.00 0.00 6.858 + 757 gctagctagctactgatcgatgct 300 24 0 50.00 62.858 34.38 11.51 46.11 6.858 + 758 ctactatcatctctgcgcgatcga 357 24 0 50.00 62.878 22.07 1.72 38.48 6.878 + 759 gctagctactgatcgatgctacatc 304 25 0 48.00 61.879 11.21 4.40 37.97 6.879 + 760 tagtgatgtatacgtagctagtagc 43 25 0 40.00 58.104 15.25 15.25 45.79 6.896 + 761 gctagtagtgatgtatacgtagcta 38 25 0 40.00 58.104 7.24 5.34 0.00 6.896 + 762 tgatcatcatcgatgctagctagtag 518 26 0 42.31 60.902 14.93 0.00 40.32 6.902 + 763 ctgatcatcatcgatgctagctagta 517 26 0 42.31 60.902 22.18 18.77 40.32 6.902 + 764 tactagctagctgatcatcatcgatg 507 26 0 42.31 60.902 20.23 20.23 41.48 6.902 + 765 tgatcgatcatcatgctagctactag 271 26 0 42.31 60.902 27.48 0.00 37.38 6.902 + 766 ctgatcgatcatcatgctagctacta 270 26 0 42.31 60.902 26.67 1.37 41.77 6.902 + 767 agctgatcgatcgatgctagctag 397 24 0 50.00 62.904 31.26 19.90 40.03 6.904 + 768 ctagctgatcgatcgatgctagct 395 24 0 50.00 62.904 35.51 33.22 43.05 6.904 + 769 agctagctgatcgatcgatgctag 393 24 0 50.00 62.904 41.07 41.07 46.89 6.904 + 770 ctagctagctgatcgatcgatgct 391 24 0 50.00 62.904 33.87 33.38 38.16 6.904 + 771 tactagctagctgatcatcatctac 210 25 0 40.00 58.081 0.00 0.00 0.00 6.919 + 772 gctagctgatcatcatctactatc 215 24 0 41.67 57.062 8.21 0.00 0.00 6.938 + 773 agtgatgcatgctagtagtgatgtat 28 26 0 38.46 60.969 1.07 1.07 0.00 6.969 + 774 gctagtagtgatgtatacgtagctag 38 26 0 42.31 59.027 8.99 8.99 0.00 6.973 + 775 tagctagctgactgatcgatcatca 259 25 0 44.00 61.981 28.29 26.49 39.98 6.981 + 776 ctactagctagctgatcatcatctac 209 26 0 42.31 59.015 1.08 0.00 0.00 6.985 + 777 agtagtgatgtatacgtagctagt 41 24 0 37.50 57.012 8.68 8.68 0.00 6.988 + 778 gctagctgatcatcatctactatcat 215 26 0 38.46 59.001 8.21 0.00 0.00 6.999 + 779 agctgatcatcatctactatcatca 218 25 0 36.00 57.993 0.00 0.00 0.00 7.007 + 780 atgcatgctagtagtgatgtatacgt 32 26 0 38.46 61.018 11.70 0.00 0.00 7.018 + 781 atttagctagctgactgatcgatcat 256 26 0 38.46 61.022 26.67 18.02 36.62 7.022 + 782 agctgatcatcgatgctactagcta 194 25 0 44.00 62.040 24.59 9.79 45.92 7.040 + 783 tagctgatcatcgatgctactagct 193 25 0 44.00 62.040 27.00 27.00 45.92 7.040 + 784 agctagctgatcatcgatgctacta 190 25 0 44.00 62.040 17.99 11.59 0.00 7.040 + 785 tagctagctgatcatcgatgctact 189 25 0 44.00 62.040 17.55 15.53 0.00 7.040 + 786 atgctagtagtgatgtatacgtagcta 36 27 0 37.04 59.911 10.00 8.05 0.00 7.089 + 787 gctagctgatcatcatctactatcatc 215 27 0 40.74 59.861 8.21 0.00 0.00 7.139 + 788 ctagctagctgatcatcatctacta 212 25 0 40.00 57.842 11.68 8.11 0.00 7.158 + 789 ctactagctagctgatcatcatcta 209 25 0 40.00 57.842 1.08 0.00 0.00 7.158 + 790 tagctgatcatcatctagctagtag 152 25 0 40.00 57.842 13.40 3.73 41.48 7.158 + 791 ctagctgatcatcatctagctagta 151 25 0 40.00 57.842 21.70 7.13 46.15 7.158 + 792 gctgatcatcatcgatgctagctag 516 25 0 48.00 62.165 20.15 17.46 40.32 7.165 + 793 ctagctgatcatcatcgatgctagc 513 25 0 48.00 62.165 19.27 19.26 41.96 7.165 + 794 gctagctgatcatcatcgatgctag 512 25 0 48.00 62.165 23.70 23.70 45.51 7.165 + 795 ctagctagctgatcatcatcgatgc 509 25 0 48.00 62.165 21.42 7.40 40.32 7.165 + 796 agctagctgatcatcatctactatcat 214 27 0 37.04 60.181 17.99 0.00 0.00 7.181 + 797 ctactagctagctgatcatcatctact 209 27 0 40.74 60.181 6.99 6.99 0.00 7.181 + 798 ctagctgatcatcatctagctagtag 151 26 0 42.31 58.789 21.70 10.73 46.15 7.211 + 799 aaagcatcggattagctagctgatg 1 25 0 44.00 62.249 27.81 27.81 33.28 7.249 + 800 agctagctactgatcgatgctacat 303 25 0 44.00 62.272 17.56 6.16 0.00 7.272 + 801 tagctagctgatcatcatctactatca 213 27 0 37.04 59.689 8.31 0.00 0.00 7.311 + 802 actagctagctgatcatcatctactat 211 27 0 37.04 59.688 22.43 2.36 0.00 7.312 + 803 ctgactgatcgatcatcatgctagc 266 25 0 48.00 62.333 20.99 8.86 41.77 7.333 + 804 gctgactgatcgatcatcatgctag 265 25 0 48.00 62.333 27.72 21.73 41.77 7.333 + 805 ctagctgactgatcgatcatcatgc 262 25 0 48.00 62.333 27.74 27.74 41.77 7.333 + 806 gctagctgactgatcgatcatcatg 261 25 0 48.00 62.333 22.70 19.51 41.77 7.333 + 807 tgctagtagtgatgtatacgtagctag 37 27 0 40.74 60.395 8.99 8.99 0.00 7.395 + 808 agtagtgatgtatacgtagctagtagc 41 27 0 40.74 60.395 15.25 15.25 45.79 7.395 + 809 gctagtagtgatgtatacgtagctagt 38 27 0 40.74 60.395 15.55 15.55 0.00 7.395 + 810 ctagtgatgcatgctagtagtgatgt 26 26 0 42.31 61.460 20.00 0.00 0.00 7.460 + 811 gctgatcatcatctactatcatcatca 219 27 0 37.04 59.533 0.00 0.00 0.00 7.467 + 812 agctagctgactgatcgatcatcat 260 25 0 44.00 62.507 26.31 20.43 41.77 7.507 + 813 tttagctagctgactgatcgatcatc 257 26 0 42.31 61.507 23.93 21.92 36.62 7.507 + 814 catgctagtagtgatgtatacgtag 35 25 0 40.00 57.441 4.74 0.00 0.00 7.559 + 815 agctgatcatcatcgatgctagcta 515 25 0 44.00 62.561 23.50 10.90 43.19 7.561 + 816 tagctgatcatcatcgatgctagct 514 25 0 44.00 62.561 26.21 26.21 44.79 7.561 + 817 agctagctgatcatcatcgatgcta 511 25 0 44.00 62.561 17.99 9.63 40.32 7.561 + 818 tagctagctgatcatcatcgatgct 510 25 0 44.00 62.561 14.14 10.38 40.32 7.561 + 819 gctatttagctagctgactgatcgat 253 26 0 42.31 61.564 7.27 0.00 46.11 7.564 + 820 ctagctagctgactgatcgatcgat 106 25 0 48.00 62.579 30.53 30.53 37.90 7.579 + 821 agctgatcatcatctactatcatcat 218 26 0 34.62 58.415 0.00 0.00 0.00 7.585 + 822 tagctagctactatcatctctgcgc 350 25 0 48.00 62.587 27.80 0.00 0.00 7.587 + 823 gctagctagctactgatcgatgcta 300 25 0 48.00 62.587 34.38 12.23 46.11 7.587 + 824 tgctagtgatgcatgctagtagtga 24 25 0 44.00 62.622 24.96 13.57 35.89 7.622 + 825 tagctgatcgatcgatgctagctag 396 25 0 48.00 62.632 33.71 21.46 41.05 7.632 + 826 ctagctgatcgatcgatgctagcta 395 25 0 48.00 62.632 35.51 32.61 43.05 7.632 + 827 tagctagctgatcgatcgatgctag 392 25 0 48.00 62.632 41.07 41.07 46.89 7.632 + 828 ctagctagctgatcgatcgatgcta 391 25 0 48.00 62.632 34.11 32.56 36.80 7.632 + 829 gtgatgcatgctagtagtgatgtatac 29 27 0 40.74 60.659 9.56 7.17 0.00 7.659 + 830 agctgatcatcatctactatcatcatc 218 27 0 37.04 59.314 0.00 0.00 0.00 7.686 + 831 tagctagctgatcatcatctactat 213 25 0 36.00 57.279 8.31 0.00 0.00 7.721 + 832 tagctagctgatcatcatctactatc 213 26 0 38.46 58.269 8.31 0.00 0.00 7.731 + 833 tgactgatcgatcatcatgctagct 267 25 0 44.00 62.733 26.79 10.55 41.77 7.733 + 834 agctgactgatcgatcatcatgcta 264 25 0 44.00 62.733 30.60 18.10 41.77 7.733 + 835 tagctgactgatcgatcatcatgct 263 25 0 44.00 62.733 32.31 32.31 41.77 7.733 + 836 ctagctagctgatcatcatctactat 212 26 0 38.46 58.265 9.41 0.00 0.00 7.735 + 837 agtgatgcatgctagtagtgatgtata 28 27 0 37.04 60.779 4.23 0.00 0.00 7.779 + 838 tagtgatgcatgctagtagtgatgtat 27 27 0 37.04 60.779 11.56 0.00 0.00 7.779 + 839 tgactgatcgatcgatgctagctag 115 25 0 48.00 62.800 20.19 17.46 35.21 7.800 + 840 ctgactgatcgatcgatgctagcta 114 25 0 48.00 62.800 20.19 11.97 35.21 7.800 + 841 tagctgactgatcgatcgatgctag 111 25 0 48.00 62.800 31.45 26.34 35.21 7.800 + 842 ctagctgactgatcgatcgatgcta 110 25 0 48.00 62.800 31.54 29.68 35.21 7.800 + 843 tagctagctgactgatcgatcgatg 107 25 0 48.00 62.800 28.29 13.21 35.21 7.800 + 844 gactgatcgatcgatgctagctagt 116 25 0 48.00 62.802 22.18 12.64 35.21 7.802 + 845 tactagctagctgatcatcatctacta 210 27 0 37.04 59.196 8.79 8.11 0.00 7.804 + 846 tagctgatcatcgatgctactagcta 193 26 0 42.31 61.805 28.86 27.39 45.92 7.805 + 847 tagctagctgatcatcgatgctacta 189 26 0 42.31 61.805 18.93 16.03 0.00 7.805 + 848 atgcatgctagtagtgatgtatacgta 32 27 0 37.04 60.828 11.70 0.00 0.00 7.828 + 849 tatttagctagctgactgatcgatcat 255 27 0 37.04 60.831 26.67 18.02 36.62 7.831 + 850 ctagctagctgatcatcatctactatc 212 27 0 40.74 59.162 9.41 0.06 0.00 7.838 + 851 tagctactatcatctctgcgcgatc 354 25 0 48.00 62.854 0.00 0.00 0.00 7.854 + 852 gctgatcatcatctactatcatcat 219 25 0 36.00 57.142 0.00 0.00 0.00 7.858 + 853 ctagctactatcatctctgcgcgat 353 25 0 48.00 62.859 4.99 2.52 0.00 7.859 + 854 gctgatcatcatctactatcatcatc 219 26 0 38.46 58.126 0.00 0.00 0.00 7.874 + 855 tagctagctactgatcgatgctacat 302 26 0 42.31 62.028 27.80 3.08 0.00 8.028 + 856 agtagtgatgtatacgtagctagtag 41 26 0 38.46 57.950 9.92 1.30 0.00 8.050 + 857 ctagtagtgatgtatacgtagctagt 39 26 0 38.46 57.950 15.52 15.52 0.00 8.050 + 858 catgctagtagtgatgtatacgtagct 35 27 0 40.74 61.089 9.37 8.73 0.00 8.089 + 859 gactgatcgatcatcatgctagctac 268 26 0 46.15 62.094 24.51 8.36 41.77 8.094 + 860 tagctgatcatcatctactatcatca 217 26 0 34.62 57.906 0.00 0.00 0.00 8.094 + 861 ctagctgatcatcatctactatcatca 216 27 0 37.04 58.826 0.00 0.00 0.00 8.174 + 862 ctagctgatcatcatctagctagtagc 151 27 0 44.44 61.196 21.70 15.25 46.15 8.196 + 863 tagctagctgactgatcgatcatcat 259 26 0 42.31 62.255 28.29 20.43 41.77 8.255 + 864 ctagtgatgcatgctagtagtgatgta 26 27 0 40.74 61.255 20.00 8.84 0.00 8.255 + 865 tgcatgctagtagtgatgtatacgtag 33 27 0 40.74 61.300 20.79 0.00 0.00 8.300 + 866 ctatttagctagctgactgatcgatca 254 27 0 40.74 61.304 26.99 26.99 35.44 8.304 + 867 tagctgatcatcatcgatgctagcta 514 26 0 42.31 62.307 28.23 26.63 43.19 8.307 + 868 tagctagctgatcatcatcgatgcta 510 26 0 42.31 62.307 14.58 11.03 40.32 8.307 + 869 gctagctagctactatcatcgatcga 426 26 0 46.15 62.381 34.38 22.52 46.11 8.381 + 870 gctactagctagctgatcatcatctac 208 27 0 44.44 61.407 14.37 0.00 44.92 8.407 + 871 ttagctagctgactgatcgatcatca 258 26 0 42.31 62.416 28.29 26.49 39.98 8.416 + 872 tgactgatcgatcatcatgctagcta 267 26 0 42.31 62.472 26.79 11.24 41.77 8.472 + 873 tagctgactgatcgatcatcatgcta 263 26 0 42.31 62.472 33.83 32.61 41.77 8.472 + 874 actgatcgatcatcatgctagctact 269 26 0 42.31 62.478 26.67 0.00 41.77 8.478 + 875 gctagtgatgcatgctagtagtgatg 25 26 0 46.15 62.484 24.96 9.07 0.00 8.484 + 876 ctagctagctactgatcgatgctaca 301 26 0 46.15 62.503 14.00 5.87 0.00 8.503 + 877 gactgatcgatcgatgctagctagta 116 26 0 46.15 62.543 22.18 18.77 35.21 8.543 + 878 actgatcgatcgatgctagctagtag 117 26 0 46.15 62.548 23.29 12.42 35.21 8.548 + 879 ctagctgatcatcatctactatcatc 216 26 0 38.46 57.395 0.00 0.00 0.00 8.605 + 880 ctgatcatcatcgatgctagctagtag 517 27 0 44.44 61.665 10.30 1.36 40.32 8.665 + 881 ctactagctagctgatcatcatcgatg 506 27 0 44.44 61.665 20.23 20.23 41.48 8.665 + 882 ctgatcgatcatcatgctagctactag 270 27 0 44.44 61.665 26.67 8.14 41.77 8.665 + 883 tagctgatcatcatctactatcatcat 217 27 0 33.33 58.315 0.00 0.00 0.00 8.685 + 884 tgatgcatgctagtagtgatgtatacg 30 27 0 40.74 61.778 9.81 0.00 0.00 8.778 + 885 gatgcatgctagtagtgatgtatacgt 31 27 0 40.74 61.779 7.40 0.00 0.00 8.779 + 886 gctactagctagctgatcatcatcga 505 26 0 46.15 62.779 14.37 0.00 44.92 8.779 + 887 agctgatcatcgatgctactagctag 194 26 0 46.15 62.784 24.59 20.04 45.92 8.784 + 888 ctagctgatcatcgatgctactagct 192 26 0 46.15 62.784 27.00 27.00 45.92 8.784 + 889 agctagctgatcatcgatgctactag 190 26 0 46.15 62.784 20.13 20.13 0.00 8.784 + 890 ctagctagctgatcatcgatgctact 188 26 0 46.15 62.784 17.55 15.53 0.00 8.784 + 891 atttagctagctgactgatcgatcatc 256 27 0 40.74 61.785 23.93 21.92 36.62 8.785 + 892 tctactatcatcatcatctactagct 230 26 0 34.62 57.155 0.00 0.00 0.00 8.845 + 893 tgctagtgatgcatgctagtagtgat 24 26 0 42.31 62.874 24.96 8.51 35.89 8.874 + 894 ctgatcatcatctactatcatcatca 220 26 0 34.62 57.026 0.00 0.00 0.00 8.974 + 895 agctagctactgatcgatgctacatc 303 26 0 46.15 62.999 17.56 7.89 37.97 8.999 + 896 tagtagtgatgtatacgtagctagtag 40 27 0 37.04 57.869 16.78 1.30 0.00 9.131 + 897 ctagtagtgatgtatacgtagctagta 39 27 0 37.04 57.869 16.85 15.97 0.00 9.131 + 898 actgatcgatcatcatgctagctacta 269 27 0 40.74 62.236 26.67 1.37 41.77 9.236 + 899 gcatgctagtagtgatgtatacgtagc 34 27 0 44.44 62.283 11.60 4.93 0.00 9.283 + 900 gctatttagctagctgactgatcgatc 253 27 0 44.44 62.291 19.32 19.32 46.11 9.291 + 901 atctactatcatcatcatctactagct 229 27 0 33.33 57.592 0.00 0.00 0.00 9.408 + 902 catctactatcatcatcatctactagc 228 27 0 37.04 57.549 0.00 0.00 0.00 9.451 + 903 tgatcatcatctactatcatcatcatc 221 27 0 33.33 57.467 0.00 0.00 0.00 9.533 + 904 tagctgatcatcgatgctactagctag 193 27 0 44.44 62.534 27.70 20.04 45.92 9.534 + 905 ctagctgatcatcgatgctactagcta 192 27 0 44.44 62.534 27.76 26.73 45.92 9.534 + 906 tagctagctgatcatcgatgctactag 189 27 0 44.44 62.534 20.13 20.13 0.00 9.534 + 907 ctagctagctgatcatcgatgctacta 188 27 0 44.44 62.534 17.74 15.95 0.00 9.534 + 908 ctgatcatcatctactatcatcatcat 220 27 0 33.33 57.462 0.00 0.00 0.00 9.538 + 909 gctagctagctactatcatcgatcgat 426 27 0 44.44 62.627 34.38 25.37 46.11 9.627 + 910 ttagctagctgactgatcgatcatcat 258 27 0 40.74 62.665 28.29 20.43 41.77 9.665 + 911 tagctagctactgatcgatgctacatc 302 27 0 44.44 62.742 27.80 7.89 37.97 9.742 + 912 ctagctagctactgatcgatgctacat 301 27 0 44.44 62.747 14.00 2.51 0.00 9.747 + 913 gatcatcatctactatcatcatcatct 222 27 0 33.33 57.242 0.00 0.00 0.00 9.758 + 914 tttagctagctgactgatcgatcatca 257 27 0 40.74 62.820 26.49 26.49 39.98 9.820 + 915 tctactatcatcatcatctactagcta 230 27 0 33.33 57.100 0.00 0.00 0.00 9.900 From 3086326d12b007265027348d8715ef40dce1ef5d Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 26 Mar 2015 20:14:08 +0100 Subject: [PATCH 404/875] Tighten up OCaml heuristic: only match at start of line. --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index f8a6320e..e196e8bf 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -267,7 +267,7 @@ module Linguist end disambiguate "OCaml", "Standard ML" do |data| - if /module|let rec |match\s+(\S+\s)+with/.match(data) + if /(^\s*module)|let rec |match\s+(\S+\s)+with/.match(data) Language["OCaml"] elsif /=> |case\s+(\S+\s)+of/.match(data) Language["Standard ML"] From 3f9d98974cbaada8d81a3812886fd7229e97351c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 8 Apr 2015 21:39:10 +0200 Subject: [PATCH 405/875] Remove Batch from Shell group --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9158ba73..acde8ca7 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -267,7 +267,6 @@ Awk: Batchfile: type: programming - group: Shell search_term: bat aliases: - bat From 9c4c6d908a164d4ebb962f2d4c508305496fda42 Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Fri, 10 Apr 2015 19:17:58 +1000 Subject: [PATCH 406/875] add language recognition for JFlex grammars JFlex is a lexical analyzer generator for Java, see also http://jflex.de or https://github.com/jflex-de/jflex --- lib/linguist/languages.yml | 8 + samples/JFlex/LexScan.flex | 742 +++++++++++++++++++++++++++++++++++++ samples/JFlex/java.jflex | 305 +++++++++++++++ 3 files changed, 1055 insertions(+) create mode 100644 samples/JFlex/LexScan.flex create mode 100644 samples/JFlex/java.jflex diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 01606b9e..46ee1333 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1434,6 +1434,14 @@ J: tm_scope: source.j ace_mode: text +JFlex: + type: programming + color: "#EBCA30" + extensions: + - .flex + - .jflex + ace_mode: text + JSON: type: data tm_scope: source.json diff --git a/samples/JFlex/LexScan.flex b/samples/JFlex/LexScan.flex new file mode 100644 index 00000000..f8d877f1 --- /dev/null +++ b/samples/JFlex/LexScan.flex @@ -0,0 +1,742 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * JFlex 1.7.0-SNAPSHOT * + * Copyright (C) 1998-2015 Gerwin Klein * + * All rights reserved. * + * * + * License: BSD * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +package jflex; + +import java_cup.runtime.Symbol; +import java.io.*; +import java.util.Stack; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.HashMap; +import jflex.unicode.UnicodeProperties; + +%% + +%final +%public +%class LexScan +%implements sym, java_cup.runtime.Scanner +%function next_token + +%type Symbol +%unicode + +%column +%line + +%eofclose + +%state COMMENT, STATELIST, MACROS, REGEXPSTART +%state REGEXP, JAVA_CODE, STATES, STRING_CONTENT +%state CHARCLASS, COPY, REPEATEXP, EATWSPNL +%state CTOR_ARG, REGEXP_CODEPOINT_SEQUENCE +%state STRING_CODEPOINT_SEQUENCE, CHARCLASS_CODEPOINT + +%inputstreamctor false + +%cupdebug + +%{ + int balance = 0; + int commentbalance = 0; + int action_line = 0; + int bufferSize = 16384; + + File file; + Stack files = new Stack(); + + StringBuilder userCode = new StringBuilder(); + + String classCode; + String initCode; + String initThrow; + String eofCode; + String eofThrow; + String lexThrow; + String eofVal; + String scanErrorException; + String cupSymbol = "sym"; + + StringBuilder actionText = new StringBuilder(); + StringBuilder string = new StringBuilder(); + + private UnicodeProperties unicodeProperties; + + boolean charCount; + boolean lineCount; + boolean columnCount; + boolean cupCompatible; + boolean cup2Compatible; + boolean cupDebug; + boolean isInteger; + boolean isIntWrap; + boolean isYYEOF; + boolean notUnix; + boolean isPublic; + boolean isFinal; + boolean isAbstract; + boolean bolUsed; + boolean standalone; + boolean debugOption; + boolean caseless; + boolean inclusive_states; + boolean eofclose; + boolean isASCII; + // TODO: In the version of JFlex after 1.6, the InputStream ctor + // TODO: will never be emitted, and this option will cease to exist. + boolean emitInputStreamCtor = Options.emitInputStreamCtor; + + String isImplementing; + String isExtending; + String className = "Yylex"; + String functionName; + String tokenType; + String visibility = "public"; + + List ctorArgs = new ArrayList(); + List ctorTypes = new ArrayList(); + + LexicalStates states = new LexicalStates(); + + List actions = new ArrayList(); + + private int nextState; + + boolean macroDefinition; + + Timer t = new Timer(); + + // CharClasses.init() is delayed until UnicodeProperties.init() has been called, + // since the max char code won't be known until then. + private CharClasses charClasses = new CharClasses(); + + public CharClasses getCharClasses() { + return charClasses; + } + + public int currentLine() { + return yyline; + } + + public void setFile(File file) { + this.file = file; + } + + private Symbol symbol(int type, Object value) { + return new Symbol(type, yyline, yycolumn, value); + } + + private Symbol symbol(int type) { + return new Symbol(type, yyline, yycolumn); + } + + // updates line and column count to the beginning of the first + // non whitespace character in yytext, but leaves yyline+yycolumn + // untouched + private Symbol symbol_countUpdate(int type, Object value) { + int lc = yyline; + int cc = yycolumn; + String text = yytext(); + + for (int i=0; i < text.length(); i++) { + char c = text.charAt(i); + + if (c != '\n' && c != '\r' && c != ' ' && c != '\t' ) + return new Symbol(type, lc, cc, value); + + if (c == '\n') { + lc++; + cc = 0; + } + else + cc++; + } + + return new Symbol(type, yyline, yycolumn, value); + } + + private String makeMacroIdent() { + String matched = yytext().trim(); + return matched.substring(1, matched.length()-1).trim(); + } + + public static String conc(Object a, Object b) { + if (a == null && b == null) return null; + if (a == null) return b.toString(); + if (b == null) return a.toString(); + + return a.toString()+b.toString(); + } + + public static String concExc(Object a, Object b) { + if (a == null && b == null) return null; + if (a == null) return b.toString(); + if (b == null) return a.toString(); + + return a.toString()+", "+b.toString(); + } + + public UnicodeProperties getUnicodeProperties() { + return unicodeProperties; + } + + private void populateDefaultVersionUnicodeProperties() { + try { + unicodeProperties = new UnicodeProperties(); + } catch (UnicodeProperties.UnsupportedUnicodeVersionException e) { + throw new ScannerException + (file, ErrorMessages.UNSUPPORTED_UNICODE_VERSION, yyline); + } + charClasses.init + (Options.jlex ? 127 : unicodeProperties.getMaximumCodePoint(), this); + } + + private void includeFile(String filePath) { + File f = new File(file.getParentFile(), filePath); + if ( !f.canRead() ) + throw new ScannerException(file,ErrorMessages.NOT_READABLE, yyline); + // check for cycle + if (files.search(f) > 0) + throw new ScannerException(file,ErrorMessages.FILE_CYCLE, yyline); + try { + yypushStream( new FileReader(f) ); + files.push(file); + file = f; + Out.println("Including \""+file+"\""); + } + catch (FileNotFoundException e) { + throw new ScannerException(file,ErrorMessages.NOT_READABLE, yyline); + } + } +%} + +%init{ + states.insert("YYINITIAL", true); +%init} + + +Digit = [0-9] +HexDigit = [0-9a-fA-F] +OctDigit = [0-7] + +Number = {Digit}+ +HexNumber = \\ x {HexDigit} {2} +OctNumber = \\ [0-3]? {OctDigit} {1, 2} + +// Unicode4 can encode chars only in the BMP with the 16 bits provided by its +// 4 hex digits. +Unicode4 = \\ u {HexDigit} {4} + +// Unicode6 can encode all Unicode chars, both in the BMP and in the +// supplementary planes -- only 21 bits are required as of Unicode 5.0, +// but its six hex digits provide 24 bits. +Unicode6 = \\ U {HexDigit} {6} + +// see http://www.unicode.org/unicode/reports/tr18/ +WSP = [ \t\b] +WSPNL = [\u2028\u2029\u000A\u000B\u000C\u000D\u0085\t\b\ ] +NWSPNL = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\t\b\ ] +NL = [\u2028\u2029\u000A\u000B\u000C\u000D\u0085] | \u000D\u000A +NNL = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085] + +Ident = {IdentStart} {IdentPart}* +QualIdent = {Ident} ( {WSP}* "." {WSP}* {Ident} )* +QUIL = {QualIdent} ( {WSP}* "," {WSP}* {QualIdent} )* +Array = "[" {WSP}* "]" +ParamPart = {IdentStart}|{IdentPart}|"<"|">"|","|{WSP}|"&"|"?"|"." +GenParam = "<" {ParamPart}+ ">" +ClassT = {Ident} ({WSP}* {GenParam})? +QClassT = {QualIdent} ({WSP}* {GenParam})? +ArrType = ({GenParam} {WSP}*)? {QClassT} ({WSP}* {Array})* + +IdentStart = [:jletter:] +IdentPart = [:jletterdigit:] + +JFlexCommentChar = [^*/]|"/"+[^*/]|"*"+[^*/] +JFlexComment = {JFlexCommentChar}+ + +/* Java comments */ +JavaComment = {TraditionalComment}|{EndOfLineComment} +TraditionalComment = "/*"{CommentContent}\*+"/" +EndOfLineComment = "//".*{NL} + +CommentContent = ([^*]|\*+[^*/])* + +StringCharacter = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\"\\] + +CharLiteral = \'([^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\'\\]|{EscapeSequence})\' +StringLiteral = \"({StringCharacter}|{EscapeSequence})*\" + +EscapeSequence = \\[^\u2028\u2029\u000A\u000B\u000C\u000D\u0085]|\\+u{HexDigit}{4}|\\[0-3]?{OctDigit}{1,2} + +/* \\(b|t|n|f|r|\"|\'|\\|[0-3]?{OctDigit}{1,2}|u{HexDigit}{4}) */ + +JavaRest = [^\{\}\"\'/]|"/"[^*/] +JavaCode = ({JavaRest}|{StringLiteral}|{CharLiteral}|{JavaComment})+ + +DottedVersion = [1-9][0-9]*(\.[0-9]+){0,2} + +%% + + { + "%%".*{NL}? { + t.start(); + yybegin(MACROS); + macroDefinition = true; + return symbol(USERCODE,userCode); + } + .*{NL} | .+ { userCode.append(yytext()); } + <> { return symbol(EOF); } +} + + ("%{"|"%init{"|"%initthrow{"|"%eof{"|"%eofthrow{"|"%yylexthrow{"|"%eofval{").*{NL} + { string.setLength(0); yybegin(COPY); } + { + "%}".*{NL} { classCode = conc(classCode,string); yybegin(MACROS); } + "%init}".*{NL} { initCode = conc(initCode,string); yybegin(MACROS); } + "%initthrow}".*{NL} { initThrow = concExc(initThrow,string); yybegin(MACROS); } + "%eof}".*{NL} { eofCode = conc(eofCode,string); yybegin(MACROS); } + "%eofthrow}".*{NL} { eofThrow = concExc(eofThrow,string); yybegin(MACROS); } + "%yylexthrow}".*{NL} { lexThrow = concExc(lexThrow,string); yybegin(MACROS); } + "%eofval}".*{NL} { eofVal = string.toString(); yybegin(MACROS); } + + .*{NL} { string.append(yytext()); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); } +} + + + ^"%s" ("tate" "s"?)? {WSP}+ { inclusive_states = true; yybegin(STATELIST); } + ^"%x" ("state" "s"?)? {WSP}+ { inclusive_states = false; yybegin(STATELIST); } + { + {Ident} { states.insert(yytext(),inclusive_states); } + ([\ \t]*","[\ \t]*)|([\ \t]+) { } + {NL} { yybegin(MACROS); } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); } +} + + { + "%char" { charCount = true; } + "%line" { lineCount = true; } + "%column" { columnCount = true; } + "%byaccj" { isInteger = true; + if (eofVal == null) + eofVal = "return 0;"; + eofclose = true; + } + "%cup2" { cup2Compatible = true; + isImplementing = concExc(isImplementing, "Scanner"); + lineCount = true; + columnCount = true; + if (functionName == null) + functionName = "readNextTerminal"; + if (tokenType == null) + tokenType = "ScannerToken"; + if (eofVal == null) + eofVal = "return token(SpecialTerminals.EndOfInputStream);"; + if (!Options.jlex) eofclose = true; + return symbol(UNICODE); // %unicode + } + "%cup" { cupCompatible = true; + isImplementing = concExc(isImplementing, "java_cup.runtime.Scanner"); + if (functionName == null) + functionName = "next_token"; + if (tokenType == null) + tokenType = "java_cup.runtime.Symbol"; + if (eofVal == null) + eofVal = "return new java_cup.runtime.Symbol("+cupSymbol+".EOF);"; + if (!Options.jlex) eofclose = true; + } + "%cupsym"{WSP}+{QualIdent} {WSP}* { cupSymbol = yytext().substring(8).trim(); + if (cupCompatible) Out.warning(ErrorMessages.CUPSYM_AFTER_CUP, yyline); } + "%cupsym"{WSP}+{NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_CUPSYM, yyline); } + "%cupdebug" { cupDebug = true; } + "%eofclose"({WSP}+"true")? { eofclose = true; } + "%eofclose"({WSP}+"false") { eofclose = false; } + "%class"{WSP}+{ClassT} {WSP}* { className = yytext().substring(7).trim(); } + "%ctorarg"{WSP}+{ArrType}{WSP}+ { yybegin(CTOR_ARG); ctorTypes.add(yytext().substring(8).trim()); } + "%function"{WSP}+{Ident} {WSP}* { functionName = yytext().substring(10).trim(); } + "%type"{WSP}+{ArrType} {WSP}* { tokenType = yytext().substring(6).trim(); } + "%integer"|"%int" { isInteger = true; } + "%intwrap" { isIntWrap = true; } + "%yyeof" { isYYEOF = true; } + "%notunix" { notUnix = true; } + "%7bit" { isASCII = true; return symbol(ASCII); } + "%full"|"%8bit" { return symbol(FULL); } + "%16bit" { populateDefaultVersionUnicodeProperties(); + return symbol(UNICODE); + } + "%unicode"({WSP}+{DottedVersion})? { String v = yytext().substring(8).trim(); + if (v.length() == 0) { + populateDefaultVersionUnicodeProperties(); + } else { + try { + unicodeProperties = new UnicodeProperties(v); + } catch (UnicodeProperties.UnsupportedUnicodeVersionException e) { + throw new ScannerException + (file, ErrorMessages.UNSUPPORTED_UNICODE_VERSION, yyline); + } + charClasses.init + (Options.jlex ? 127 : unicodeProperties.getMaximumCodePoint(), this); + } + return symbol(UNICODE); + } + + "%caseless"|"%ignorecase" { caseless = true; } + "%implements"{WSP}+.* { isImplementing = concExc(isImplementing, yytext().substring(12).trim()); } + "%extends"{WSP}+{QClassT}{WSP}* { isExtending = yytext().substring(9).trim(); } + "%public" { isPublic = true; } + "%apiprivate" { visibility = "private"; Skeleton.makePrivate(); } + "%final" { isFinal = true; } + "%abstract" { isAbstract = true; } + "%debug" { debugOption = true; } + "%standalone" { standalone = true; isInteger = true; } + "%pack" { /* no-op - this is the only generation method */ } + "%include" {WSP}+ .* { includeFile(yytext().substring(9).trim()); } + "%buffer" {WSP}+ {Number} {WSP}* { bufferSize = Integer.parseInt(yytext().substring(8).trim()); } + "%buffer" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.NO_BUFFER_SIZE, yyline); } + "%initthrow" {WSP}+ {QUIL} {WSP}* { initThrow = concExc(initThrow,yytext().substring(11).trim()); } + "%initthrow" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_INITTHROW, yyline); } + "%eofthrow" {WSP}+ {QUIL} {WSP}* { eofThrow = concExc(eofThrow,yytext().substring(10).trim()); } + "%eofthrow" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_EOFTHROW, yyline); } + "%yylexthrow"{WSP}+ {QUIL} {WSP}* { lexThrow = concExc(lexThrow,yytext().substring(12).trim()); } + "%throws" {WSP}+ {QUIL} {WSP}* { lexThrow = concExc(lexThrow,yytext().substring(8).trim()); } + "%yylexthrow"{WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_YYLEXTHROW, yyline); } + "%throws" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_THROW, yyline); } + "%scanerror" {WSP}+ {QualIdent} {WSP}* { scanErrorException = yytext().substring(11).trim(); } + "%scanerror" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_SCANERROR, yyline); } +// TODO: In the version of JFlex after 1.6, the %inputstreamctor directive will become a no-op: the InputStream ctor will never be emitted. + "%inputstreamctor"({WSP}+"true")? { emitInputStreamCtor = true; } + "%inputstreamctor"{WSP}+"false" { emitInputStreamCtor = false; } + + {Ident} { return symbol(IDENT, yytext()); } + "="{WSP}* { if (null == unicodeProperties && ! isASCII) { + populateDefaultVersionUnicodeProperties(); + } + yybegin(REGEXP); + return symbol(EQUALS); + } + + "/*" { nextState = MACROS; yybegin(COMMENT); } + + {EndOfLineComment} { } + + ^"%%" {NNL}* { if (null == unicodeProperties && ! isASCII) { + populateDefaultVersionUnicodeProperties(); + } + macroDefinition = false; + yybegin(REGEXPSTART); + return symbol(DELIMITER); + } + "%"{Ident} { throw new ScannerException(file,ErrorMessages.UNKNOWN_OPTION, yyline, yycolumn); } + "%" { throw new ScannerException(file,ErrorMessages.UNKNOWN_OPTION, yyline, yycolumn); } + ^{WSP}+"%" { Out.warning(ErrorMessages.NOT_AT_BOL, yyline); yypushback(1); } + + {WSP}+ { } + {NL}+ { } + <> { if ( yymoreStreams() ) { + file = (File) files.pop(); + yypopStream(); + } + else + throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); + } +} + + { + {Ident} {WSP}* { yybegin(MACROS); ctorArgs.add(yytext().trim()); } + [^] { throw new ScannerException(file,ErrorMessages.CTOR_ARG,yyline,yycolumn); } +} + + { + ^ {WSP}* "%include" {WSP}+ .* { includeFile(yytext().trim().substring(9).trim()); } + {WSP}* "/*" { nextState = REGEXPSTART; yybegin(COMMENT); } + {WSP}* "<" { yybegin(STATES); return symbol_countUpdate(LESSTHAN, null); } + {WSP}* "}" { return symbol_countUpdate(RBRACE, null); } + {WSP}* "//" {NNL}* { } + {WSP}* "<>" {WSPNL}* "{" { actionText.setLength(0); yybegin(JAVA_CODE); + Symbol s = symbol_countUpdate(EOFRULE, null); + action_line = s.left+1; + return s; + } + ^ {WSP}* {NWSPNL} { yypushback(yylength()); yybegin(REGEXP); } + {WSP} | {NL} { } +} + + { + {Ident} { return symbol(IDENT, yytext()); } + "," { return symbol(COMMA); } + {WSPNL}+ { } + + // "{" will be caught in REGEXP + ">"{WSPNL}* { yybegin(REGEXP); return symbol(MORETHAN); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_STATES); } +} + + + { + "<>" {WSPNL}+ "{" { actionText.setLength(0); yybegin(JAVA_CODE); action_line = yyline+1; return symbol(EOFRULE); } + "<>" { throw new ScannerException(file,ErrorMessages.EOF_WO_ACTION); } + + {WSPNL}*"|"{WSP}*$ { if (macroDefinition) { + yybegin(EATWSPNL); + return symbol(BAR); + } + else { + yybegin(REGEXPSTART); + return symbol(NOACTION); + } + } + + // stategroup + "{" { yybegin(REGEXPSTART); return symbol(LBRACE); } + + {WSPNL}*"|" { return symbol(BAR); } + + {WSPNL}*\" { string.setLength(0); nextState = REGEXP; yybegin(STRING_CONTENT); } + {WSPNL}*"\\u{" { string.setLength(0); yybegin(REGEXP_CODEPOINT_SEQUENCE); } + {WSPNL}*"!" { return symbol(BANG); } + {WSPNL}*"~" { return symbol(TILDE); } + {WSPNL}*"(" { return symbol(OPENBRACKET); } + {WSPNL}*")" { return symbol(CLOSEBRACKET); } + {WSPNL}*"*" { return symbol(STAR); } + {WSPNL}*"+" { return symbol(PLUS); } + {WSPNL}*"?" { return symbol(QUESTION); } + {WSPNL}*"$" { return symbol(DOLLAR); } + {WSPNL}*"^" { bolUsed = true; return symbol(HAT); } + {WSPNL}*"." { return symbol(POINT); } + {WSPNL}*"\\R" { return symbol(NEWLINE); } + {WSPNL}*"[" { yybegin(CHARCLASS); return symbol(OPENCLASS); } + {WSPNL}*"/" { return symbol(LOOKAHEAD); } + + {WSPNL}* "{" {WSP}* {Ident} {WSP}* "}" { return symbol_countUpdate(MACROUSE, makeMacroIdent()); } + {WSPNL}* "{" {WSP}* {Number} { yybegin(REPEATEXP); + return symbol(REPEAT, + new Integer(yytext().trim().substring(1).trim())); + } + + {WSPNL}+ "{" { actionText.setLength(0); yybegin(JAVA_CODE); action_line = yyline+1; return symbol(REGEXPEND); } + {NL} { if (macroDefinition) { yybegin(MACROS); } return symbol(REGEXPEND); } + + {WSPNL}*"/*" { nextState = REGEXP; yybegin(COMMENT); } + + {WSPNL}*"//"{NNL}* { } + + {WSP}+ { } + + { + {WSPNL}*"[:jletter:]" { return symbol(JLETTERCLASS); } + {WSPNL}*"[:jletterdigit:]" { return symbol(JLETTERDIGITCLASS); } + {WSPNL}*"[:letter:]" { return symbol(LETTERCLASS); } + {WSPNL}*"[:uppercase:]" { return symbol(UPPERCLASS); } + {WSPNL}*"[:lowercase:]" { return symbol(LOWERCLASS); } + {WSPNL}*"[:digit:]" { return symbol(DIGITCLASS); } + {WSPNL}*"\\d" { return symbol(DIGITCLASS); } + {WSPNL}*"\\D" { return symbol(DIGITCLASSNOT); } + {WSPNL}*"\\s" { return symbol(WHITESPACECLASS); } + {WSPNL}*"\\S" { return symbol(WHITESPACECLASSNOT); } + {WSPNL}*"\\w" { return symbol(WORDCLASS); } + {WSPNL}*"\\W" { return symbol(WORDCLASSNOT); } + {WSPNL}*"\\p{"[^}]*"}" { String trimmedText = yytext().trim(); + String propertyValue = trimmedText.substring(3,trimmedText.length()-1); + IntCharSet set = unicodeProperties.getIntCharSet(propertyValue); + if (null == set) { + throw new ScannerException(file,ErrorMessages.INVALID_UNICODE_PROPERTY, yyline, yycolumn + 3); + } + return symbol(UNIPROPCCLASS, set); + } + {WSPNL}*"\\P{"[^}]*"}" { String trimmedText = yytext().trim(); + String propertyValue = trimmedText.substring(3,trimmedText.length()-1); + IntCharSet set = unicodeProperties.getIntCharSet(propertyValue); + if (null == set) { + throw new ScannerException(file,ErrorMessages.INVALID_UNICODE_PROPERTY, yyline, yycolumn + 3); + } + return symbol(UNIPROPCCLASSNOT, set); + } + } + + . { return symbol(CHAR, yytext().codePointAt(0)); } +} + + {WSPNL}+ { yybegin(REGEXP); } + + + { + "}" { yybegin(REGEXP); return symbol(RBRACE); } + "," {WSP}* {Number} { return symbol(REPEAT, new Integer(yytext().substring(1).trim())); } + {WSP}+ { } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + + { + "{"{Ident}"}" { return symbol(MACROUSE, yytext().substring(1,yylength()-1)); } + "[" { balance++; return symbol(OPENCLASS); } + "]" { if (balance > 0) balance--; else yybegin(REGEXP); return symbol(CLOSECLASS); } + "^" { return symbol(HAT); } + "-" { return symbol(DASH); } + "--" { return symbol(DIFFERENCE); } + "&&" { return symbol(INTERSECTION); } + "||" { /* union is the default operation - '||' can be ignored */ } + "~~" { return symbol(SYMMETRICDIFFERENCE); } + "\\u{" { yybegin(CHARCLASS_CODEPOINT); } + + // this is a hack to keep JLex compatibilty with char class + // expressions like [+-] + "-]" { yypushback(1); yycolumn--; return symbol(CHAR, (int)'-'); } + + \" { string.setLength(0); nextState = CHARCLASS; yybegin(STRING_CONTENT); } + + . { return symbol(CHAR, yytext().codePointAt(0)); } + + \n { throw new ScannerException(file,ErrorMessages.EOL_IN_CHARCLASS,yyline,yycolumn); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + + { + \" { yybegin(nextState); return symbol(STRING, string.toString()); } + \\\" { string.append('\"'); } + [^\"\\\u2028\u2029\u000A\u000B\u000C\u000D\u0085]+ { string.append(yytext()); } + + {NL} { throw new ScannerException(file,ErrorMessages.UNTERMINATED_STR, yyline, yycolumn); } + + {HexNumber} { string.append( (char) Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {OctNumber} { string.append( (char) Integer.parseInt(yytext().substring(1,yylength()), 8)); } + {Unicode4} { string.append( (char) Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {Unicode6} { int codePoint = Integer.parseInt(yytext().substring(2,yylength()), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + string.append(Character.toChars(codePoint)); + } else { + throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn+2); + } + } + + "\\u{" { yybegin(STRING_CODEPOINT_SEQUENCE); } + + \\b { string.append('\b'); } + \\n { string.append('\n'); } + \\t { string.append('\t'); } + \\f { string.append('\f'); } + \\r { string.append('\r'); } + + \\. { string.append(yytext().substring(1, yytext().offsetByCodePoints(1, 1))); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_STRING); } +} + + + { + {HexNumber} { return symbol(CHAR, Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {OctNumber} { return symbol(CHAR, Integer.parseInt(yytext().substring(1,yylength()), 8)); } + {Unicode4} { return symbol(CHAR, Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {Unicode6} { int codePoint = Integer.parseInt(yytext().substring(2,yylength()), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + return symbol(CHAR, codePoint); + } else { + throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn+2); + } + } + + \\b { return symbol(CHAR, (int)'\b'); } + \\n { return symbol(CHAR, (int)'\n'); } + \\t { return symbol(CHAR, (int)'\t'); } + \\f { return symbol(CHAR, (int)'\f'); } + \\r { return symbol(CHAR, (int)'\r'); } + + \\. { return symbol(CHAR, yytext().codePointAt(1)); } +} + + + { + "{" { balance++; actionText.append('{'); } + "}" { if (balance > 0) { + balance--; + actionText.append('}'); + } + else { + yybegin(REGEXPSTART); + Action a = new Action(actionText.toString(), action_line); + actions.add(a); + return symbol(ACTION, a); + } + } + + {JavaCode} { actionText.append(yytext()); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_ACTION, action_line-1); } +} + + { + + "/"+ "*" { commentbalance++; } + "*"+ "/" { if (commentbalance > 0) + commentbalance--; + else + yybegin(nextState); + } + + {JFlexComment} { /* ignore */ } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_COMMENT); } +} + + { + "}" { yybegin(REGEXP); return symbol(STRING, string.toString()); } + {HexDigit}{1,6} { int codePoint = Integer.parseInt(yytext(), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + string.append(Character.toChars(codePoint)); + } else { + throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); + } + } + {WSPNL}+ { } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + + { // Specialized form: newlines disallowed, and doesn't return a symbol + "}" { yybegin(STRING_CONTENT); } + {HexDigit}{1,6} { int codePoint = Integer.parseInt(yytext(), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + string.append(Character.toChars(codePoint)); + } else { + throw new ScannerException(file, ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); + } + } + {NL} { throw new ScannerException(file,ErrorMessages.UNTERMINATED_STR, yyline, yycolumn); } + {WSP}+ { } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_STRING); } +} + + { // Specialized form: only one codepoint allowed, no whitespace allowed + {HexDigit}{1,6} "}" { int codePoint = Integer.parseInt(yytext().substring(0, yylength() - 1), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + yybegin(CHARCLASS); + return symbol(CHAR, codePoint); + } else { + throw new ScannerException(file, ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); + } + } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + +. { throw new ScannerException(file,ErrorMessages.UNEXPECTED_CHAR, yyline, yycolumn); } +\R { throw new ScannerException(file,ErrorMessages.UNEXPECTED_NL, yyline, yycolumn); } + +<> { if ( yymoreStreams() ) { + file = (File) files.pop(); + yypopStream(); + } + else { + return symbol(EOF); + } + } diff --git a/samples/JFlex/java.jflex b/samples/JFlex/java.jflex new file mode 100644 index 00000000..b12f15d2 --- /dev/null +++ b/samples/JFlex/java.jflex @@ -0,0 +1,305 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright (C) 1998-2015 Gerwin Klein * + * All rights reserved. * + * * + * License: BSD * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Java 1.2 language lexer specification */ + +/* Use together with unicode.flex for Unicode preprocesssing */ +/* and java12.cup for a Java 1.2 parser */ + +/* Note that this lexer specification is not tuned for speed. + It is in fact quite slow on integer and floating point literals, + because the input is read twice and the methods used to parse + the numbers are not very fast. + For a production quality application (e.g. a Java compiler) + this could be optimized */ + + +import java_cup.runtime.*; + +%% + +%public +%class Scanner +%implements sym + +%unicode + +%line +%column + +%cup +%cupdebug + +%{ + StringBuilder string = new StringBuilder(); + + private Symbol symbol(int type) { + return new JavaSymbol(type, yyline+1, yycolumn+1); + } + + private Symbol symbol(int type, Object value) { + return new JavaSymbol(type, yyline+1, yycolumn+1, value); + } + + /** + * assumes correct representation of a long value for + * specified radix in scanner buffer from start + * to end + */ + private long parseLong(int start, int end, int radix) { + long result = 0; + long digit; + + for (int i = start; i < end; i++) { + digit = Character.digit(yycharat(i),radix); + result*= radix; + result+= digit; + } + + return result; + } +%} + +/* main character classes */ +LineTerminator = \r|\n|\r\n +InputCharacter = [^\r\n] + +WhiteSpace = {LineTerminator} | [ \t\f] + +/* comments */ +Comment = {TraditionalComment} | {EndOfLineComment} | + {DocumentationComment} + +TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "/" +EndOfLineComment = "//" {InputCharacter}* {LineTerminator}? +DocumentationComment = "/*" "*"+ [^/*] ~"*/" + +/* identifiers */ +Identifier = [:jletter:][:jletterdigit:]* + +/* integer literals */ +DecIntegerLiteral = 0 | [1-9][0-9]* +DecLongLiteral = {DecIntegerLiteral} [lL] + +HexIntegerLiteral = 0 [xX] 0* {HexDigit} {1,8} +HexLongLiteral = 0 [xX] 0* {HexDigit} {1,16} [lL] +HexDigit = [0-9a-fA-F] + +OctIntegerLiteral = 0+ [1-3]? {OctDigit} {1,15} +OctLongLiteral = 0+ 1? {OctDigit} {1,21} [lL] +OctDigit = [0-7] + +/* floating point literals */ +FloatLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? [fF] +DoubleLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? + +FLit1 = [0-9]+ \. [0-9]* +FLit2 = \. [0-9]+ +FLit3 = [0-9]+ +Exponent = [eE] [+-]? [0-9]+ + +/* string and character literals */ +StringCharacter = [^\r\n\"\\] +SingleCharacter = [^\r\n\'\\] + +%state STRING, CHARLITERAL + +%% + + { + + /* keywords */ + "abstract" { return symbol(ABSTRACT); } + "boolean" { return symbol(BOOLEAN); } + "break" { return symbol(BREAK); } + "byte" { return symbol(BYTE); } + "case" { return symbol(CASE); } + "catch" { return symbol(CATCH); } + "char" { return symbol(CHAR); } + "class" { return symbol(CLASS); } + "const" { return symbol(CONST); } + "continue" { return symbol(CONTINUE); } + "do" { return symbol(DO); } + "double" { return symbol(DOUBLE); } + "else" { return symbol(ELSE); } + "extends" { return symbol(EXTENDS); } + "final" { return symbol(FINAL); } + "finally" { return symbol(FINALLY); } + "float" { return symbol(FLOAT); } + "for" { return symbol(FOR); } + "default" { return symbol(DEFAULT); } + "implements" { return symbol(IMPLEMENTS); } + "import" { return symbol(IMPORT); } + "instanceof" { return symbol(INSTANCEOF); } + "int" { return symbol(INT); } + "interface" { return symbol(INTERFACE); } + "long" { return symbol(LONG); } + "native" { return symbol(NATIVE); } + "new" { return symbol(NEW); } + "goto" { return symbol(GOTO); } + "if" { return symbol(IF); } + "public" { return symbol(PUBLIC); } + "short" { return symbol(SHORT); } + "super" { return symbol(SUPER); } + "switch" { return symbol(SWITCH); } + "synchronized" { return symbol(SYNCHRONIZED); } + "package" { return symbol(PACKAGE); } + "private" { return symbol(PRIVATE); } + "protected" { return symbol(PROTECTED); } + "transient" { return symbol(TRANSIENT); } + "return" { return symbol(RETURN); } + "void" { return symbol(VOID); } + "static" { return symbol(STATIC); } + "while" { return symbol(WHILE); } + "this" { return symbol(THIS); } + "throw" { return symbol(THROW); } + "throws" { return symbol(THROWS); } + "try" { return symbol(TRY); } + "volatile" { return symbol(VOLATILE); } + "strictfp" { return symbol(STRICTFP); } + + /* boolean literals */ + "true" { return symbol(BOOLEAN_LITERAL, true); } + "false" { return symbol(BOOLEAN_LITERAL, false); } + + /* null literal */ + "null" { return symbol(NULL_LITERAL); } + + + /* separators */ + "(" { return symbol(LPAREN); } + ")" { return symbol(RPAREN); } + "{" { return symbol(LBRACE); } + "}" { return symbol(RBRACE); } + "[" { return symbol(LBRACK); } + "]" { return symbol(RBRACK); } + ";" { return symbol(SEMICOLON); } + "," { return symbol(COMMA); } + "." { return symbol(DOT); } + + /* operators */ + "=" { return symbol(EQ); } + ">" { return symbol(GT); } + "<" { return symbol(LT); } + "!" { return symbol(NOT); } + "~" { return symbol(COMP); } + "?" { return symbol(QUESTION); } + ":" { return symbol(COLON); } + "==" { return symbol(EQEQ); } + "<=" { return symbol(LTEQ); } + ">=" { return symbol(GTEQ); } + "!=" { return symbol(NOTEQ); } + "&&" { return symbol(ANDAND); } + "||" { return symbol(OROR); } + "++" { return symbol(PLUSPLUS); } + "--" { return symbol(MINUSMINUS); } + "+" { return symbol(PLUS); } + "-" { return symbol(MINUS); } + "*" { return symbol(MULT); } + "/" { return symbol(DIV); } + "&" { return symbol(AND); } + "|" { return symbol(OR); } + "^" { return symbol(XOR); } + "%" { return symbol(MOD); } + "<<" { return symbol(LSHIFT); } + ">>" { return symbol(RSHIFT); } + ">>>" { return symbol(URSHIFT); } + "+=" { return symbol(PLUSEQ); } + "-=" { return symbol(MINUSEQ); } + "*=" { return symbol(MULTEQ); } + "/=" { return symbol(DIVEQ); } + "&=" { return symbol(ANDEQ); } + "|=" { return symbol(OREQ); } + "^=" { return symbol(XOREQ); } + "%=" { return symbol(MODEQ); } + "<<=" { return symbol(LSHIFTEQ); } + ">>=" { return symbol(RSHIFTEQ); } + ">>>=" { return symbol(URSHIFTEQ); } + + /* string literal */ + \" { yybegin(STRING); string.setLength(0); } + + /* character literal */ + \' { yybegin(CHARLITERAL); } + + /* numeric literals */ + + /* This is matched together with the minus, because the number is too big to + be represented by a positive integer. */ + "-2147483648" { return symbol(INTEGER_LITERAL, new Integer(Integer.MIN_VALUE)); } + + {DecIntegerLiteral} { return symbol(INTEGER_LITERAL, new Integer(yytext())); } + {DecLongLiteral} { return symbol(INTEGER_LITERAL, new Long(yytext().substring(0,yylength()-1))); } + + {HexIntegerLiteral} { return symbol(INTEGER_LITERAL, new Integer((int) parseLong(2, yylength(), 16))); } + {HexLongLiteral} { return symbol(INTEGER_LITERAL, new Long(parseLong(2, yylength()-1, 16))); } + + {OctIntegerLiteral} { return symbol(INTEGER_LITERAL, new Integer((int) parseLong(0, yylength(), 8))); } + {OctLongLiteral} { return symbol(INTEGER_LITERAL, new Long(parseLong(0, yylength()-1, 8))); } + + {FloatLiteral} { return symbol(FLOATING_POINT_LITERAL, new Float(yytext().substring(0,yylength()-1))); } + {DoubleLiteral} { return symbol(FLOATING_POINT_LITERAL, new Double(yytext())); } + {DoubleLiteral}[dD] { return symbol(FLOATING_POINT_LITERAL, new Double(yytext().substring(0,yylength()-1))); } + + /* comments */ + {Comment} { /* ignore */ } + + /* whitespace */ + {WhiteSpace} { /* ignore */ } + + /* identifiers */ + {Identifier} { return symbol(IDENTIFIER, yytext()); } +} + + { + \" { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } + + {StringCharacter}+ { string.append( yytext() ); } + + /* escape sequences */ + "\\b" { string.append( '\b' ); } + "\\t" { string.append( '\t' ); } + "\\n" { string.append( '\n' ); } + "\\f" { string.append( '\f' ); } + "\\r" { string.append( '\r' ); } + "\\\"" { string.append( '\"' ); } + "\\'" { string.append( '\'' ); } + "\\\\" { string.append( '\\' ); } + \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1),8); + string.append( val ); } + + /* error cases */ + \\. { throw new RuntimeException("Illegal escape sequence \""+yytext()+"\""); } + {LineTerminator} { throw new RuntimeException("Unterminated string at end of line"); } +} + + { + {SingleCharacter}\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } + + /* escape sequences */ + "\\b"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\b');} + "\\t"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\t');} + "\\n"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\n');} + "\\f"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\f');} + "\\r"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\r');} + "\\\""\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\"');} + "\\'"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\'');} + "\\\\"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\\'); } + \\[0-3]?{OctDigit}?{OctDigit}\' { yybegin(YYINITIAL); + int val = Integer.parseInt(yytext().substring(1,yylength()-1),8); + return symbol(CHARACTER_LITERAL, (char)val); } + + /* error cases */ + \\. { throw new RuntimeException("Illegal escape sequence \""+yytext()+"\""); } + {LineTerminator} { throw new RuntimeException("Unterminated character literal at end of line"); } +} + +/* error fallback */ +[^] { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); } +<> { return symbol(EOF); } \ No newline at end of file From 22ff4898a5750d48aa208f2001eede5e7ea12252 Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Fri, 10 Apr 2015 19:25:24 +1000 Subject: [PATCH 407/875] add textmate grammar for JFlex --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 1 + vendor/grammars/jflex.tmbundle | 1 + 4 files changed, 7 insertions(+) create mode 160000 vendor/grammars/jflex.tmbundle diff --git a/.gitmodules b/.gitmodules index 42d2b1ba..a43b324c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -651,3 +651,6 @@ [submodule "vendor/grammars/Sublime-Red"] path = vendor/grammars/Sublime-Red url = https://github.com/Oldes/Sublime-Red +[submodule "vendor/grammars/jflex.tmbundle"] + path = vendor/grammars/jflex.tmbundle + url = https://github.com/jflex-de/jflex.tmbundle.git diff --git a/grammars.yml b/grammars.yml index e8c2d019..e67b0710 100644 --- a/grammars.yml +++ b/grammars.yml @@ -295,6 +295,8 @@ vendor/grammars/javadoc.tmbundle: - text.html.javadoc vendor/grammars/javascript-objective-j.tmbundle: - source.js.objj +vendor/grammars/jflex.tmbundle: +- source.jflex vendor/grammars/jquery-tmbundle: - source.js.jquery vendor/grammars/json.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 46ee1333..a694d484 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1440,6 +1440,7 @@ JFlex: extensions: - .flex - .jflex + tm_scope: source.jflex ace_mode: text JSON: diff --git a/vendor/grammars/jflex.tmbundle b/vendor/grammars/jflex.tmbundle new file mode 160000 index 00000000..12a7a88b --- /dev/null +++ b/vendor/grammars/jflex.tmbundle @@ -0,0 +1 @@ +Subproject commit 12a7a88b7a34bb9490b6077ad743332acf66a456 From 8251588088c24a74c2349c9fd23dd07ce5ca3196 Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Fri, 10 Apr 2015 21:16:32 +1000 Subject: [PATCH 408/875] choose more distinct color for JFlex --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a694d484..98c9f3ef 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1436,7 +1436,7 @@ J: JFlex: type: programming - color: "#EBCA30" + color: "#DBCA00" extensions: - .flex - .jflex From 3a074105695fbad209fd3882611fe51de8858022 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 10 Apr 2015 20:59:10 +0200 Subject: [PATCH 409/875] Remove test for group of Batch --- test/test_language.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/test/test_language.rb b/test/test_language.rb index f3847a77..1cc76096 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -79,7 +79,6 @@ class TestLanguage < Minitest::Test assert_equal Language['Java'], Language['Java Server Pages'].group assert_equal Language['Python'], Language['Cython'].group assert_equal Language['Python'], Language['NumPy'].group - assert_equal Language['Shell'], Language['Batchfile'].group assert_equal Language['Shell'], Language['Gentoo Ebuild'].group assert_equal Language['Shell'], Language['Gentoo Eclass'].group assert_equal Language['Shell'], Language['Tcsh'].group From 76b84decfe217cea7ea98e08f80e33920598415a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 10 Apr 2015 15:09:00 -0500 Subject: [PATCH 410/875] Removing .inc from Clarion --- lib/linguist/languages.yml | 3 +- samples/Clarion/CStringClass.inc | 36 ---------------------- samples/Clarion/ConsoleSupport.inc | 48 ------------------------------ samples/Clarion/Hello.inc | 9 ------ 4 files changed, 1 insertion(+), 95 deletions(-) delete mode 100644 samples/Clarion/CStringClass.inc delete mode 100644 samples/Clarion/ConsoleSupport.inc delete mode 100644 samples/Clarion/Hello.inc diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5b3c7dae..3aba286c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -504,11 +504,10 @@ Cirru: Clarion: type: programming - color: #f29200 + color: "#f29200" ace_mode: text extensions: - .clw - - .inc tm_scope: source.clarion Clean: diff --git a/samples/Clarion/CStringClass.inc b/samples/Clarion/CStringClass.inc deleted file mode 100644 index aec351f7..00000000 --- a/samples/Clarion/CStringClass.inc +++ /dev/null @@ -1,36 +0,0 @@ -_CStringClass_ EQUATE(1) - -NOT_CASE_SENSITIVE EQUATE(FALSE) -DEFAULT_CS_BUFFER_SIZE EQUATE(1024) -!-------------------------------------------------------------------------------- -!Class CStringClass -! -!-------------------------------------------------------------------------------- -CStringClass Class(),Type,Module('CStringClass.Clw'),LINK('CStringClass.Clw',1) -! Properties -cs &CSTRING, PROTECTED -bufferSize LONG -newStrSize LONG ,PROTECTED -strLength LONG ,PROTECTED -nextPointer LONG -! Methods -Cat PROCEDURE (STRING pStr) ,*CSTRING,PROC ,VIRTUAL -Construct PROCEDURE -Contains PROCEDURE (STRING pFind, BYTE pCaseSensitive=TRUE) ,BYTE ,VIRTUAL -Destruct PROCEDURE () ,VIRTUAL -Len PROCEDURE ,LONG ,VIRTUAL -Lower PROCEDURE () ,STRING ,VIRTUAL -Replace PROCEDURE (STRING pFind, STRING pReplace) ,*CSTRING,PROC ,VIRTUAL -Str PROCEDURE (STRING pStr) ,*CSTRING, PROC ,VIRTUAL -Str PROCEDURE () ,*CSTRING ,VIRTUAL -SubString PROCEDURE (LONG pPosition, LONG pLength) ,STRING,PROC ,VIRTUAL -ToLower PROCEDURE () ,*CSTRING,PROC ,VIRTUAL -ToUpper PROCEDURE () ,*CSTRING,PROC ,VIRTUAL -Trim PROCEDURE () ,*CSTRING,PROC ,VIRTUAL -Upper PROCEDURE () ,STRING ,VIRTUAL -IndexOf PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) ,LONG ,VIRTUAL -FoundIn PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) ,BYTE ,VIRTUAL -SetBuffer PROCEDURE (LONG pNewBuffer) ,VIRTUAL -EscapeXml PROCEDURE () ,STRING ,VIRTUAL - END -!_EndOfInclude_ diff --git a/samples/Clarion/ConsoleSupport.inc b/samples/Clarion/ConsoleSupport.inc deleted file mode 100644 index cd08c463..00000000 --- a/samples/Clarion/ConsoleSupport.inc +++ /dev/null @@ -1,48 +0,0 @@ -_ConsoleSupport_ EQUATE(1) - -HANDLE EQUATE(UNSIGNED) -DWORD EQUATE(ULONG) -INVALID_HANDLE_VALUE EQUATE(-1) -INVALID_OTHER EQUATE(-2) -NULL EQUATE(0) - - -!************************************************************************************************************ -! Console-specific EQUATEs -!************************************************************************************************************ -ENABLE_PROCESSED_INPUT EQUATE(1) ! Input Mode flags -ENABLE_LINE_INPUT EQUATE(2) -ENABLE_ECHO_INPUT EQUATE(4) -ENABLE_WINDOW_INPUT EQUATE(8) -ENABLE_MOUSE_INPUT EQUATE(16) - -ENABLE_PROCESSED_OUTPUT EQUATE(1) ! Output Mode flags -ENABLE_WRAP_AT_EOL_OUTPUT EQUATE(2) - -STD_INPUT_HANDLE EQUATE(-10) ! Standard input and output handles -STD_OUTPUT_HANDLE EQUATE(-11) -STD_ERROR_HANDLE EQUATE(-12) - -CONSOLE_TEXTMODE_BUFFER EQUATE(1) ! The type of console screen buffer to create -ATTACH_PARENT_PROCESS EQUATE(-1) - - -ConsoleSupport Class(),Type,Module('ConsoleSupport.Clw'),LINK('ConsoleSupport.Clw',1) -! Properties -InputHandle Handle -OutputHandle Handle -TextBuffer CString(2048) -OutBuffer CString(2048) -InBuffer CString(2048) -BytesWritten Long -BytesRead Long -Prefix CSTRING(21) -! Methods -Construct PROCEDURE -Destruct PROCEDURE () ,VIRTUAL -Init PROCEDURE () ,BYTE,PROC,VIRTUAL -WriteLine PROCEDURE (STRING pText) ,BYTE,PROC,VIRTUAL -ReadKey PROCEDURE () ,STRING,PROC,VIRTUAL - - END -!_EndOfInclude_ diff --git a/samples/Clarion/Hello.inc b/samples/Clarion/Hello.inc deleted file mode 100644 index 1dfda5f6..00000000 --- a/samples/Clarion/Hello.inc +++ /dev/null @@ -1,9 +0,0 @@ -HelloClass Class(),Type,Module('HelloClass.Clw'),LINK('HelloClass.Clw',1) -! Properties - -! Methods -Construct PROCEDURE -Destruct PROCEDURE () ,VIRTUAL -SayHello PROCEDURE - END -!_EndOfInclude_ From e9acecf71f13a10219a85a66f0f66aaf531035bd Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 10 Apr 2015 15:15:03 -0500 Subject: [PATCH 411/875] Colour update --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 3aba286c..12a48e9f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -504,7 +504,7 @@ Cirru: Clarion: type: programming - color: "#f29200" + color: "#db901e" ace_mode: text extensions: - .clw From d113e989156601bd7bb23bc87c14d9ec3deabc81 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 10 Apr 2015 15:27:02 -0500 Subject: [PATCH 412/875] Grammar update --- vendor/grammars/Elm.tmLanguage | 2 +- vendor/grammars/Handlebars | 2 +- vendor/grammars/Julia.tmbundle | 2 +- vendor/grammars/Modelica | 2 +- vendor/grammars/Stylus | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/sublime-idris | 2 +- vendor/grammars/sublime-netlinx | 2 +- vendor/grammars/sublime-nginx | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/vendor/grammars/Elm.tmLanguage b/vendor/grammars/Elm.tmLanguage index 1d2e0963..f52478b0 160000 --- a/vendor/grammars/Elm.tmLanguage +++ b/vendor/grammars/Elm.tmLanguage @@ -1 +1 @@ -Subproject commit 1d2e0963012d4959d5517c3dd0dcf486b1ded74b +Subproject commit f52478b0b66d3b9aa90dbaa8cac912d87cc28a7b diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 1a952fd7..35d82156 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 1a952fd7e467132b065d3e06a4874e340df0f976 +Subproject commit 35d821569d562403af8b85a4e8d9acc841656b41 diff --git a/vendor/grammars/Julia.tmbundle b/vendor/grammars/Julia.tmbundle index 774831f5..e2918776 160000 --- a/vendor/grammars/Julia.tmbundle +++ b/vendor/grammars/Julia.tmbundle @@ -1 +1 @@ -Subproject commit 774831f52a1b6d5380ca1cc4a2dae278b66ec199 +Subproject commit e2918776e14506e0bc100c2501c56188acfc2bd3 diff --git a/vendor/grammars/Modelica b/vendor/grammars/Modelica index e1fd8532..10c5dc64 160000 --- a/vendor/grammars/Modelica +++ b/vendor/grammars/Modelica @@ -1 +1 @@ -Subproject commit e1fd853290e4a560f20383103c786334da505772 +Subproject commit 10c5dc6484b6d851a109025af64a83ae0e6a6c73 diff --git a/vendor/grammars/Stylus b/vendor/grammars/Stylus index 8070df9b..8b1c77d0 160000 --- a/vendor/grammars/Stylus +++ b/vendor/grammars/Stylus @@ -1 +1 @@ -Subproject commit 8070df9be179af3afa4ef406fbefd32826ca68a2 +Subproject commit 8b1c77d0543d12984ebb872180d942629edc31ac diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index 99910870..9542bbb6 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit 99910870bb1cd095fc0af9010f018f1ae9e95b4e +Subproject commit 9542bbb684b7241fc39e15af998344fea22b5dde diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 299e4ff3..1d1ef907 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 299e4ff3cebf0cae021432fd755d3e63c7af5350 +Subproject commit 1d1ef9079cb9af228fc1b3e95720e3fc2e73d3bf diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index de99a182..e64619da 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit de99a182dd91c291d7aa71456a9e0947d369ed18 +Subproject commit e64619da3c08576ac468a2bac7477e6e537ddf22 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 53792096..de60e51d 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 5379209622ae9ceacf20d6945d8b7b41b484c2e9 +Subproject commit de60e51dc1bfcb66ccf0c3b481c180c4674656b0 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index 51978f7d..b8dfdf5d 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit 51978f7d1b1a7b92f77ccf02b042b768946844bd +Subproject commit b8dfdf5dceeff927406dd5ff72246a60f9d16dfa diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 75d0d94c..3028ec95 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 75d0d94cddee2b2651476f2c7877695260c2c4e3 +Subproject commit 3028ec95a23ccf3cc4899646f9387a79db713b11 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index f65cc95f..00529e69 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit f65cc95f0bd24ec04e6be39377c1b04b9d0188d6 +Subproject commit 00529e691575496eb82e5a154b592b5a2616e57f diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index e9bdf04e..52bed0cd 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit e9bdf04e834f1d7a41e9eb48c4e6064498450b2d +Subproject commit 52bed0cd3a455500ef620f083a3d2b78b789bdd4 diff --git a/vendor/grammars/sublime-idris b/vendor/grammars/sublime-idris index 5e936d1c..77166c0a 160000 --- a/vendor/grammars/sublime-idris +++ b/vendor/grammars/sublime-idris @@ -1 +1 @@ -Subproject commit 5e936d1c924c0edaead59a82bd9e9c1456eef61b +Subproject commit 77166c0ac40fbb9744b467976efa4969d9a7a65c diff --git a/vendor/grammars/sublime-netlinx b/vendor/grammars/sublime-netlinx index f7e78c23..2bdcfad2 160000 --- a/vendor/grammars/sublime-netlinx +++ b/vendor/grammars/sublime-netlinx @@ -1 +1 @@ -Subproject commit f7e78c232c19f7b14e57510e4122a9d9bdeaea2f +Subproject commit 2bdcfad2a5b2f04e459db5a2edb8ef33f74c1994 diff --git a/vendor/grammars/sublime-nginx b/vendor/grammars/sublime-nginx index 872afddd..ba28d29d 160000 --- a/vendor/grammars/sublime-nginx +++ b/vendor/grammars/sublime-nginx @@ -1 +1 @@ -Subproject commit 872afddd2d61acae85560fa009658257f4030244 +Subproject commit ba28d29de729f01d39a29fa214a6818112b48803 From 03e40718ff9292c30fb12302442fa71d6330ff80 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 10 Apr 2015 15:47:37 -0500 Subject: [PATCH 413/875] Bringing languages.yml keys up to date --- lib/linguist/languages.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d3457a17..a6e5dd1d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -712,12 +712,12 @@ D-ObjDump: DIGITAL Command Language: type: programming - lexer: Text only - search_term: dcl aliases: - dcl extensions: - .com + tm_scope: none + ace_mode: text DM: type: programming @@ -1970,14 +1970,14 @@ Modelica: Module Management System: type: programming - lexer: Text only - search_term: mms extensions: - .mms - .mmk filenames: - - descrip.mms - descrip.mmk + - descrip.mms + tm_scope: none + ace_mode: text Monkey: type: programming From 7ca2384e03c1a5f45fbbb591a7a1c7466e730d0b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 10 Apr 2015 20:11:11 -0500 Subject: [PATCH 414/875] Test for Specflow feature --- test/test_generated.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test_generated.rb b/test/test_generated.rb index c8b32811..164e1fc2 100644 --- a/test/test_generated.rb +++ b/test/test_generated.rb @@ -66,5 +66,8 @@ class TestGenerated < Minitest::Test generated_fixture_without_loading_data("Data/bootstrap.css.map") generated_fixture_loading_data("Data/sourcemap.v3.map") generated_fixture_loading_data("Data/sourcemap.v1.map") + + # Specflow + generated_fixture_without_loading_data("Features/BindingCulture.feature.cs") end end From 46ca8e93c2d222a765b3bdff993e1dc4edf4975e Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sat, 11 Apr 2015 19:10:00 +0200 Subject: [PATCH 415/875] New upper-case sample for Common Lisp. --- samples/Common Lisp/hello.lisp | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 samples/Common Lisp/hello.lisp diff --git a/samples/Common Lisp/hello.lisp b/samples/Common Lisp/hello.lisp new file mode 100644 index 00000000..642cdd29 --- /dev/null +++ b/samples/Common Lisp/hello.lisp @@ -0,0 +1,2 @@ +(DEFUN HELLO () + (PRINT 'HELLO)) From 33478b2d238ded92156f0c37d0da820e55ba07b4 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 10 Apr 2015 11:57:39 +0200 Subject: [PATCH 416/875] Make Common Lisp heuristic case insensitive. --- lib/linguist/heuristics.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index e196e8bf..b1adbd18 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -129,7 +129,7 @@ module Linguist end disambiguate "Common Lisp", "OpenCL", "Cool" do |data| - if data.include?("(defun ") + if /^\s*\((defun|in-package|defpackage) /i.match(data) Language["Common Lisp"] elsif /^class/x.match(data) Language["Cool"] @@ -215,7 +215,7 @@ module Linguist end disambiguate "Common Lisp", "NewLisp" do |data| - if /^\s*\((defun|in-package|defpackage) /.match(data) + if /^\s*\((defun|in-package|defpackage) /i.match(data) Language["Common Lisp"] elsif /^\s*\(define /.match(data) Language["NewLisp"] From 5cdbb2b113a9d436590925c8fc02739a7032be85 Mon Sep 17 00:00:00 2001 From: Matthew Haughton <3flex@users.noreply.github.com> Date: Tue, 14 Apr 2015 23:18:45 -0400 Subject: [PATCH 417/875] Add additional Puppet samples --- samples/Puppet/apacheinit.pp | 378 +++++++++++++++++++++++++++++++++++ 1 file changed, 378 insertions(+) create mode 100644 samples/Puppet/apacheinit.pp diff --git a/samples/Puppet/apacheinit.pp b/samples/Puppet/apacheinit.pp new file mode 100644 index 00000000..37d866ad --- /dev/null +++ b/samples/Puppet/apacheinit.pp @@ -0,0 +1,378 @@ +# Class: apache +# +# This class installs Apache +# +# Parameters: +# +# Actions: +# - Install Apache +# - Manage Apache service +# +# Requires: +# +# Sample Usage: +# +class apache ( + $apache_name = $::apache::params::apache_name, + $service_name = $::apache::params::service_name, + $default_mods = true, + $default_vhost = true, + $default_charset = undef, + $default_confd_files = true, + $default_ssl_vhost = false, + $default_ssl_cert = $::apache::params::default_ssl_cert, + $default_ssl_key = $::apache::params::default_ssl_key, + $default_ssl_chain = undef, + $default_ssl_ca = undef, + $default_ssl_crl_path = undef, + $default_ssl_crl = undef, + $default_ssl_crl_check = undef, + $default_type = 'none', + $ip = undef, + $service_enable = true, + $service_manage = true, + $service_ensure = 'running', + $purge_configs = true, + $purge_vhost_dir = undef, + $purge_vdir = false, + $serveradmin = 'root@localhost', + $sendfile = 'On', + $error_documents = false, + $timeout = '120', + $httpd_dir = $::apache::params::httpd_dir, + $server_root = $::apache::params::server_root, + $conf_dir = $::apache::params::conf_dir, + $confd_dir = $::apache::params::confd_dir, + $vhost_dir = $::apache::params::vhost_dir, + $vhost_enable_dir = $::apache::params::vhost_enable_dir, + $mod_dir = $::apache::params::mod_dir, + $mod_enable_dir = $::apache::params::mod_enable_dir, + $mpm_module = $::apache::params::mpm_module, + $lib_path = $::apache::params::lib_path, + $conf_template = $::apache::params::conf_template, + $servername = $::apache::params::servername, + $manage_user = true, + $manage_group = true, + $user = $::apache::params::user, + $group = $::apache::params::group, + $keepalive = $::apache::params::keepalive, + $keepalive_timeout = $::apache::params::keepalive_timeout, + $max_keepalive_requests = $::apache::params::max_keepalive_requests, + $logroot = $::apache::params::logroot, + $logroot_mode = $::apache::params::logroot_mode, + $log_level = $::apache::params::log_level, + $log_formats = {}, + $ports_file = $::apache::params::ports_file, + $docroot = $::apache::params::docroot, + $apache_version = $::apache::version::default, + $server_tokens = 'OS', + $server_signature = 'On', + $trace_enable = 'On', + $allow_encoded_slashes = undef, + $package_ensure = 'installed', + $use_optional_includes = $::apache::params::use_optional_includes, +) inherits ::apache::params { + validate_bool($default_vhost) + validate_bool($default_ssl_vhost) + validate_bool($default_confd_files) + # true/false is sufficient for both ensure and enable + validate_bool($service_enable) + validate_bool($service_manage) + validate_bool($use_optional_includes) + + $valid_mpms_re = $apache_version ? { + '2.4' => '(event|itk|peruser|prefork|worker)', + default => '(event|itk|prefork|worker)' + } + + if $mpm_module { + validate_re($mpm_module, $valid_mpms_re) + } + + if $allow_encoded_slashes { + validate_re($allow_encoded_slashes, '(^on$|^off$|^nodecode$)', "${allow_encoded_slashes} is not permitted for allow_encoded_slashes. Allowed values are 'on', 'off' or 'nodecode'.") + } + + # NOTE: on FreeBSD it's mpm module's responsibility to install httpd package. + # NOTE: the same strategy may be introduced for other OSes. For this, you + # should delete the 'if' block below and modify all MPM modules' manifests + # such that they include apache::package class (currently event.pp, itk.pp, + # peruser.pp, prefork.pp, worker.pp). + if $::osfamily != 'FreeBSD' { + package { 'httpd': + ensure => $package_ensure, + name => $apache_name, + notify => Class['Apache::Service'], + } + } + validate_re($sendfile, [ '^[oO]n$' , '^[oO]ff$' ]) + + # declare the web server user and group + # Note: requiring the package means the package ought to create them and not puppet + validate_bool($manage_user) + if $manage_user { + user { $user: + ensure => present, + gid => $group, + require => Package['httpd'], + } + } + validate_bool($manage_group) + if $manage_group { + group { $group: + ensure => present, + require => Package['httpd'] + } + } + + validate_apache_log_level($log_level) + + class { '::apache::service': + service_name => $service_name, + service_enable => $service_enable, + service_manage => $service_manage, + service_ensure => $service_ensure, + } + + # Deprecated backwards-compatibility + if $purge_vdir { + warning('Class[\'apache\'] parameter purge_vdir is deprecated in favor of purge_configs') + $purge_confd = $purge_vdir + } else { + $purge_confd = $purge_configs + } + + # Set purge vhostd appropriately + if $purge_vhost_dir == undef { + $purge_vhostd = $purge_confd + } else { + $purge_vhostd = $purge_vhost_dir + } + + Exec { + path => '/bin:/sbin:/usr/bin:/usr/sbin', + } + + exec { "mkdir ${confd_dir}": + creates => $confd_dir, + require => Package['httpd'], + } + file { $confd_dir: + ensure => directory, + recurse => true, + purge => $purge_confd, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + + if ! defined(File[$mod_dir]) { + exec { "mkdir ${mod_dir}": + creates => $mod_dir, + require => Package['httpd'], + } + # Don't purge available modules if an enable dir is used + $purge_mod_dir = $purge_configs and !$mod_enable_dir + file { $mod_dir: + ensure => directory, + recurse => true, + purge => $purge_mod_dir, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } + + if $mod_enable_dir and ! defined(File[$mod_enable_dir]) { + $mod_load_dir = $mod_enable_dir + exec { "mkdir ${mod_enable_dir}": + creates => $mod_enable_dir, + require => Package['httpd'], + } + file { $mod_enable_dir: + ensure => directory, + recurse => true, + purge => $purge_configs, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } else { + $mod_load_dir = $mod_dir + } + + if ! defined(File[$vhost_dir]) { + exec { "mkdir ${vhost_dir}": + creates => $vhost_dir, + require => Package['httpd'], + } + file { $vhost_dir: + ensure => directory, + recurse => true, + purge => $purge_vhostd, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } + + if $vhost_enable_dir and ! defined(File[$vhost_enable_dir]) { + $vhost_load_dir = $vhost_enable_dir + exec { "mkdir ${vhost_load_dir}": + creates => $vhost_load_dir, + require => Package['httpd'], + } + file { $vhost_enable_dir: + ensure => directory, + recurse => true, + purge => $purge_vhostd, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } else { + $vhost_load_dir = $vhost_dir + } + + concat { $ports_file: + owner => 'root', + group => $::apache::params::root_group, + mode => '0644', + notify => Class['Apache::Service'], + require => Package['httpd'], + } + concat::fragment { 'Apache ports header': + ensure => present, + target => $ports_file, + content => template('apache/ports_header.erb') + } + + if $::apache::conf_dir and $::apache::params::conf_file { + case $::osfamily { + 'debian': { + $pidfile = "\${APACHE_PID_FILE}" + $error_log = 'error.log' + $scriptalias = '/usr/lib/cgi-bin' + $access_log_file = 'access.log' + } + 'redhat': { + $pidfile = 'run/httpd.pid' + $error_log = 'error_log' + $scriptalias = '/var/www/cgi-bin' + $access_log_file = 'access_log' + } + 'freebsd': { + $pidfile = '/var/run/httpd.pid' + $error_log = 'httpd-error.log' + $scriptalias = '/usr/local/www/apache24/cgi-bin' + $access_log_file = 'httpd-access.log' + } 'gentoo': { + $pidfile = '/run/apache2.pid' + $error_log = 'error.log' + $error_documents_path = '/usr/share/apache2/error' + $scriptalias = '/var/www/localhost/cgi-bin' + $access_log_file = 'access.log' + + ::portage::makeconf { 'apache2_modules': + content => $default_mods, + } + file { [ + '/etc/apache2/modules.d/.keep_www-servers_apache-2', + '/etc/apache2/vhosts.d/.keep_www-servers_apache-2' + ]: + ensure => absent, + require => Package['httpd'], + } + } + default: { + fail("Unsupported osfamily ${::osfamily}") + } + } + + $apxs_workaround = $::osfamily ? { + 'freebsd' => true, + default => false + } + + # Template uses: + # - $pidfile + # - $user + # - $group + # - $logroot + # - $error_log + # - $sendfile + # - $mod_dir + # - $ports_file + # - $confd_dir + # - $vhost_dir + # - $error_documents + # - $error_documents_path + # - $apxs_workaround + # - $keepalive + # - $keepalive_timeout + # - $max_keepalive_requests + # - $server_root + # - $server_tokens + # - $server_signature + # - $trace_enable + file { "${::apache::conf_dir}/${::apache::params::conf_file}": + ensure => file, + content => template($conf_template), + notify => Class['Apache::Service'], + require => Package['httpd'], + } + + # preserve back-wards compatibility to the times when default_mods was + # only a boolean value. Now it can be an array (too) + if is_array($default_mods) { + class { '::apache::default_mods': + all => false, + mods => $default_mods, + } + } else { + class { '::apache::default_mods': + all => $default_mods, + } + } + class { '::apache::default_confd_files': + all => $default_confd_files + } + if $mpm_module { + class { "::apache::mod::${mpm_module}": } + } + + $default_vhost_ensure = $default_vhost ? { + true => 'present', + false => 'absent' + } + $default_ssl_vhost_ensure = $default_ssl_vhost ? { + true => 'present', + false => 'absent' + } + + ::apache::vhost { 'default': + ensure => $default_vhost_ensure, + port => 80, + docroot => $docroot, + scriptalias => $scriptalias, + serveradmin => $serveradmin, + access_log_file => $access_log_file, + priority => '15', + ip => $ip, + logroot_mode => $logroot_mode, + manage_docroot => $default_vhost, + } + $ssl_access_log_file = $::osfamily ? { + 'freebsd' => $access_log_file, + default => "ssl_${access_log_file}", + } + ::apache::vhost { 'default-ssl': + ensure => $default_ssl_vhost_ensure, + port => 443, + ssl => true, + docroot => $docroot, + scriptalias => $scriptalias, + serveradmin => $serveradmin, + access_log_file => $ssl_access_log_file, + priority => '15', + ip => $ip, + logroot_mode => $logroot_mode, + manage_docroot => $default_ssl_vhost, + } + } +} From 599d146118effe108696d036b9fe09f06e5f2dc8 Mon Sep 17 00:00:00 2001 From: Thomas Van Doren Date: Fri, 10 Apr 2015 16:58:18 -0700 Subject: [PATCH 418/875] Use chapel-lang/chapel-tmbundle for Chapel grammar. --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index aea5068f..f1ce5891 100644 --- a/.gitmodules +++ b/.gitmodules @@ -96,7 +96,7 @@ url = https://github.com/bfad/Sublime-Lasso [submodule "vendor/grammars/chapel-tmbundle"] path = vendor/grammars/chapel-tmbundle - url = https://github.com/bholt/chapel-tmbundle + url = https://github.com/chapel-lang/chapel-tmbundle [submodule "vendor/grammars/sublime-nginx"] path = vendor/grammars/sublime-nginx url = https://github.com/brandonwamboldt/sublime-nginx From 3ab0de831f430ff83163a2ed4132672e32123a36 Mon Sep 17 00:00:00 2001 From: Thomas Van Doren Date: Fri, 10 Apr 2015 17:11:32 -0700 Subject: [PATCH 419/875] Update Chapel samples. --- samples/Chapel/distributions.chpl | 90 ++++++++++++++++++++++++++++++- samples/Chapel/lulesh.chpl | 59 ++++++++++---------- 2 files changed, 120 insertions(+), 29 deletions(-) diff --git a/samples/Chapel/distributions.chpl b/samples/Chapel/distributions.chpl index a3e5f81d..31040c92 100644 --- a/samples/Chapel/distributions.chpl +++ b/samples/Chapel/distributions.chpl @@ -58,6 +58,34 @@ var BA: [BlockSpace] int; forall ba in BA do ba = here.id; +// +// The 'hasSingleLocalSubdomain' method on arrays will return true if the +// index set for a locale can be represented by a single domain. +// +if !BA.hasSingleLocalSubdomain() then + halt("For a Block distribution, the index set per locale should be \ + represented by a single domain"); + +// +// If the distribution's subdomains can be represented as single subdomain, +// we can use the 'localSubdomain' method to get the index set for the +// current locale. +// +// Below, we'll use the index set to confirm that the array elements have the +// correct locale id. +// + +for L in Locales { + on L { + const indices = BA.localSubdomain(); + for i in indices { + if BA[i] != L.id then + halt("Error: incorrect locale id"); + } + } +} + + // // Output the Block-distributed array to visually see how the elements // are partitioned across the locales. @@ -104,6 +132,14 @@ writeln("Block Array Index Map"); writeln(BA2); writeln(); +// +// We can use the 'targetLocales' method available on an array to get the +// locales array used as targets. +// +for (L, ML) in zip(BA2.targetLocales(), MyLocales) do + if L != ML then + halt("Error: BA2.targetLocales() should equal MyLocales"); + // @@ -126,6 +162,18 @@ writeln("Cyclic Array Index Map"); writeln(CA); writeln(); +// +// The domain returned by 'localSubdomain' need not be a dense block, as is +// the case for the Cyclic Distribution. +// +on Locales[0] { + const indices = CA.localSubdomain(); + for i in indices { + if CA[i] != 0 then + halt("Error: Cyclic array values on Locale 0 should be zero"); + } +} + // // Next, we'll declare a Block-Cyclic distribution. These @@ -134,7 +182,7 @@ writeln(); // of indices. Thus, the BlockCyclic distribution is parameterized // by a starting index (as with Cyclic) and a block size (per // dimension) specifying how large the chunks to be dealt out are. -// +// const BlkCycSpace = Space dmapped BlockCyclic(startIdx=Space.low, blocksize=(2, 3)); var BCA: [BlkCycSpace] int; @@ -146,6 +194,46 @@ writeln("Block-Cyclic Array Index Map"); writeln(BCA); writeln(); +// +// A locale's index set for a Block-Cyclic distribution cannot be represented +// by a single subdomain. +// +if BCA.hasSingleLocalSubdomain() then + halt("A Block-Cyclic index set cannot be represented by a single subdomain"); + +// +// If the local index set cannot be represented by a single subdomain, +// we can use the 'localSubdomains' iterator to yield a number of domains +// that represent the whole index set. +// +// Let's write a function that will use 'localSubdomains' to verify the +// correctness of the array values. +// + +proc verifyID(Data: []) { + for L in Locales { + on L { + for indices in Data.localSubdomains() { + for i in indices { + if Data[i] != L.id then + halt("Error: incorrect locale id"); + } + } + } + } +} +verifyID(BCA); + +// +// The 'localSubdomains' iterator is also available on distributions that +// can represent a locale's index set with a single domain. This allows us to +// write more general code that will work for all distributions. +// +// This means that we can call the 'verifyID' function on any array, like the +// 'BA' array from earlier. +// +verifyID(BA); + // // The ReplicatedDist distribution is different: each of the diff --git a/samples/Chapel/lulesh.chpl b/samples/Chapel/lulesh.chpl index d6480d26..78dab00d 100644 --- a/samples/Chapel/lulesh.chpl +++ b/samples/Chapel/lulesh.chpl @@ -292,14 +292,14 @@ proc main() { LagrangeLeapFrog(); if debug { - // deprint("[[ Forces ]]", fx, fy, fz); + deprintatomic("[[ Forces ]]", fx, fy, fz); deprint("[[ Positions ]]", x, y, z); deprint("[[ p, e, q ]]", p, e, q); } if showProgress then - writeln("time = ", format("%e", time), ", dt=", format("%e", deltatime), - if doTiming then ", elapsed = " + (getCurrentTime()-iterTime) - else ""); + writef("time = %er, dt=%er, %s", time, deltatime, + if doTiming then ", elapsed = " + (getCurrentTime()-iterTime) +"\n" + else "\n"); } if (cycle == maxcycles) { writeln("Stopped early due to reaching maxnumsteps"); @@ -314,12 +314,10 @@ proc main() { if printCoords { var outfile = open("coords.out", iomode.cw); var writer = outfile.writer(); - var fmtstr = if debug then "%1.9e" else "%1.4e"; - for i in Nodes { - writer.writeln(format(fmtstr, x[i]), " ", - format(fmtstr, y[i]), " ", - format(fmtstr, z[i])); - } + var fmtstr = if debug then "%1.9re %1.9er %1.9er\n" + else "%1.4er %1.4er %1.4er\n"; + for i in Nodes do + writer.writef(fmtstr, x[i], y[i], z[i]); writer.close(); outfile.close(); } @@ -479,7 +477,7 @@ inline proc localizeNeighborNodes(eli: index(Elems), y: [] real, ref y_local: 8*real, z: [] real, ref z_local: 8*real) { - for param i in 1..nodesPerElem { + for i in 1..nodesPerElem { const noi = elemToNode[eli][i]; x_local[i] = x[noi]; @@ -670,7 +668,7 @@ proc SumElemStressesToNodeForces(b_x: 8*real, b_y: 8*real, b_z: 8*real, ref fx: 8*real, ref fy: 8*real, ref fz: 8*real) { - for param i in 1..8 { + for i in 1..8 { fx[i] = -(stress_xx * b_x[i]); fy[i] = -(stress_yy * b_y[i]); fz[i] = -(stress_zz * b_z[i]); @@ -725,17 +723,17 @@ inline proc CalcElemFBHourglassForce(xd: 8*real, yd: 8*real, zd: 8*real, var hx, hy, hz: 4*real; // reduction - for param i in 1..4 { - for param j in 1..8 { + for i in 1..4 { + for j in 1..8 { hx[i] += hourgam[j][i] * xd[j]; hy[i] += hourgam[j][i] * yd[j]; hz[i] += hourgam[j][i] * zd[j]; } } - for param i in 1..8 { + for i in 1..8 { var shx, shy, shz: real; - for param j in 1..4 { + for j in 1..4 { shx += hourgam[i][j] * hx[j]; shy += hourgam[i][j] * hy[j]; shz += hourgam[i][j] * hz[j]; @@ -1088,16 +1086,16 @@ proc CalcFBHourglassForceForElems(determ, x8n, y8n, z8n, dvdx, dvdy, dvdz) { /* TODO: Can we enable this local block? */ // local { - for param i in 1..4 { + for i in 1..4 { var hourmodx, hourmody, hourmodz: real; // reduction - for param j in 1..8 { + for j in 1..8 { hourmodx += x8n[eli][j] * gammaCoef[i][j]; hourmody += y8n[eli][j] * gammaCoef[i][j]; hourmodz += z8n[eli][j] * gammaCoef[i][j]; } - for param j in 1..8 { + for j in 1..8 { hourgam[j][i] = gammaCoef[i][j] - volinv * (dvdx[eli][j] * hourmodx + dvdy[eli][j] * hourmody + @@ -1221,7 +1219,7 @@ proc CalcKinematicsForElems(dxx, dyy, dzz, const dt: real) { arealg[k] = CalcElemCharacteristicLength(x_local, y_local, z_local, volume); - for param i in 1..8 { + for i in 1..8 { x_local[i] -= dt2 * xd_local[i]; y_local[i] -= dt2 * yd_local[i]; z_local[i] -= dt2 * zd_local[i]; @@ -1669,7 +1667,7 @@ proc CalcSoundSpeedForElems(vnewc, rho0:real, enewc, pnewc, pbvc, bvc) { iter elemToNodes(elem) { - for param i in 1..nodesPerElem do + for i in 1..nodesPerElem do yield elemToNode[elem][i]; } @@ -1679,14 +1677,19 @@ iter elemToNodesTuple(e) { } -proc deprint(title:string, x:[?D] real, y:[D]real, z:[D]real) { +proc deprint(title:string, x:[?D] real, y:[D] real, z:[D] real) { writeln(title); - for i in D { - writeln(format("%3d", i), ": ", - format("%3.4e", x[i]), " ", - format("%3.4e", y[i]), " ", - format("%3.4e", z[i])); - } + for i in D do + writef("%3i: %3.4er %3.4er %3.4er\n", + if use3DRepresentation then idx3DTo1D(i, D.dim(1).size) else i, + x[i], y[i], z[i]); } +proc deprintatomic(title:string, x:[?D] atomic real, y:[] atomic real, z:[] atomic real) { + writeln(title); + for i in D do + writef("%3i: %3.4er %3.4er %3.4er\n", + if use3DRepresentation then idx3DTo1D(i, D.dim(1).size) else i, + x[i].peek(), y[i].peek(), z[i].peek()); +} From fac4633337bde09ea02ee39e592679369159fc74 Mon Sep 17 00:00:00 2001 From: Ted Nyman Date: Wed, 15 Apr 2015 18:37:36 -0700 Subject: [PATCH 420/875] Move .odd file to the right directory --- tei-odd-sample.odd => samples/XML/tei-odd-sample.odd | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tei-odd-sample.odd => samples/XML/tei-odd-sample.odd (100%) diff --git a/tei-odd-sample.odd b/samples/XML/tei-odd-sample.odd similarity index 100% rename from tei-odd-sample.odd rename to samples/XML/tei-odd-sample.odd From 9da42fba5b70167dc760e6e6ae7b03f1aa0d46d8 Mon Sep 17 00:00:00 2001 From: vitaut Date: Thu, 16 Apr 2015 15:19:22 -0700 Subject: [PATCH 421/875] Improve NL/NewLisp disambiguation heuristic NL files start with either 'b' or 'g' followed by an unsigned integer. --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b1adbd18..e342e616 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -275,7 +275,7 @@ module Linguist end disambiguate "NL", "NewLisp" do |data| - if /^g3 /.match(data) + if /^(b|g)[0-9]+ /.match(data) Language["NL"] else Language["NewLisp"] From 8a42f76f03717c17eddc8527cc4286f81101fed0 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 28 Nov 2014 16:49:40 -0600 Subject: [PATCH 422/875] Remove .script! hack --- lib/linguist/language.rb | 2 +- lib/linguist/samples.rb | 7 ++----- lib/linguist/strategy/filename.rb | 12 +---------- .../Erlang/{factorial.script! => factorial} | 0 samples/Erlang/{release.script! => release} | 0 samples/Groovy/build.script! | 17 ---------------- samples/Groovy/{groovy.script! => groovy} | 0 samples/JavaScript/{js.script! => js} | 0 samples/JavaScript/{js2.script! => js2} | 0 .../Makefile/{makefile.script! => makefile} | 0 samples/Nu/{nu.script! => nu} | 0 samples/PHP/{drupal.script! => drupal.module} | 0 samples/PHP/{php.script! => php} | 0 .../PHP/{php-script.script! => php-script} | 0 samples/PHP/{php2.script! => php2} | 0 samples/Perl/{perl.script! => perl} | 0 .../{dleak-report.script! => dleak-report} | 0 samples/Python/{python.script! => python} | 0 samples/Python/{python2.script! => python2} | 0 samples/Python/{python3.script! => python3} | 0 samples/QMake/{qmake.script! => qmake} | 0 .../{git-punchcard.script! => git-punchcard} | 0 samples/Ruby/{macruby.script! => macruby} | 0 samples/Ruby/{ruby.script! => ruby} | 0 samples/Ruby/{ruby2.script! => ruby2} | 0 ...les-of-beer.script! => 99-bottles-of-beer} | 0 samples/Scala/{scala.script! => scala} | 0 ...les-of-beer.script! => 99-bottles-of-beer} | 0 samples/Shell/{bash.script! => bash} | 0 samples/Shell/{plugin.script! => plugin} | 0 samples/Shell/{sbt.script! => sbt} | 0 samples/Shell/{sh.script! => sh} | 0 ...tring-chopping.script! => string-chopping} | 0 samples/Shell/{zsh.script! => zsh} | 0 test/test_samples.rb | 13 +++++++++--- test/test_tokenizer.rb | 20 +++++++++---------- 36 files changed, 24 insertions(+), 47 deletions(-) rename samples/Erlang/{factorial.script! => factorial} (100%) rename samples/Erlang/{release.script! => release} (100%) delete mode 100644 samples/Groovy/build.script! rename samples/Groovy/{groovy.script! => groovy} (100%) rename samples/JavaScript/{js.script! => js} (100%) rename samples/JavaScript/{js2.script! => js2} (100%) rename samples/Makefile/{makefile.script! => makefile} (100%) rename samples/Nu/{nu.script! => nu} (100%) rename samples/PHP/{drupal.script! => drupal.module} (100%) rename samples/PHP/{php.script! => php} (100%) rename samples/PHP/{php-script.script! => php-script} (100%) rename samples/PHP/{php2.script! => php2} (100%) rename samples/Perl/{perl.script! => perl} (100%) rename samples/Prolog/{dleak-report.script! => dleak-report} (100%) rename samples/Python/{python.script! => python} (100%) rename samples/Python/{python2.script! => python2} (100%) rename samples/Python/{python3.script! => python3} (100%) rename samples/QMake/{qmake.script! => qmake} (100%) rename samples/R/{git-punchcard.script! => git-punchcard} (100%) rename samples/Ruby/{macruby.script! => macruby} (100%) rename samples/Ruby/{ruby.script! => ruby} (100%) rename samples/Ruby/{ruby2.script! => ruby2} (100%) rename samples/Scala/{99-bottles-of-beer.script! => 99-bottles-of-beer} (100%) rename samples/Scala/{scala.script! => scala} (100%) rename samples/Shell/{99-bottles-of-beer.script! => 99-bottles-of-beer} (100%) rename samples/Shell/{bash.script! => bash} (100%) rename samples/Shell/{plugin.script! => plugin} (100%) rename samples/Shell/{sbt.script! => sbt} (100%) rename samples/Shell/{sh.script! => sh} (100%) rename samples/Shell/{string-chopping.script! => string-chopping} (100%) rename samples/Shell/{zsh.script! => zsh} (100%) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index da02b110..d2d44466 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -541,7 +541,7 @@ module Linguist if extnames = extensions[name] extnames.each do |extname| if !options['extensions'].index { |x| x.downcase.end_with? extname.downcase } - warn "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" unless extname == '.script!' + warn "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" options['extensions'] << extname end end diff --git a/lib/linguist/samples.rb b/lib/linguist/samples.rb index efcba365..a7ecd1bd 100644 --- a/lib/linguist/samples.rb +++ b/lib/linguist/samples.rb @@ -50,16 +50,13 @@ module Linguist end else path = File.join(dirname, filename) - - if File.extname(filename) == "" - raise "#{path} is missing an extension, maybe it belongs in filenames/ subdir" - end + extname = File.extname(filename) yield({ :path => path, :language => category, :interpreter => Shebang.interpreter(File.read(path)), - :extname => File.extname(filename) + :extname => extname.empty? ? nil : extname }) end end diff --git a/lib/linguist/strategy/filename.rb b/lib/linguist/strategy/filename.rb index e682863b..b8c819eb 100644 --- a/lib/linguist/strategy/filename.rb +++ b/lib/linguist/strategy/filename.rb @@ -3,17 +3,7 @@ module Linguist # Detects language based on filename and/or extension class Filename def self.call(blob, _) - name = blob.name.to_s - - # A bit of an elegant hack. If the file is executable but extensionless, - # append a "magic" extension so it can be classified with other - # languages that have shebang scripts. - extensions = FileBlob.new(name).extensions - if extensions.empty? && blob.mode && (blob.mode.to_i(8) & 05) == 05 - name += ".script!" - end - - Language.find_by_filename(name) + Language.find_by_filename(blob.name.to_s) end end end diff --git a/samples/Erlang/factorial.script! b/samples/Erlang/factorial similarity index 100% rename from samples/Erlang/factorial.script! rename to samples/Erlang/factorial diff --git a/samples/Erlang/release.script! b/samples/Erlang/release similarity index 100% rename from samples/Erlang/release.script! rename to samples/Erlang/release diff --git a/samples/Groovy/build.script! b/samples/Groovy/build.script! deleted file mode 100644 index c1ac812c..00000000 --- a/samples/Groovy/build.script! +++ /dev/null @@ -1,17 +0,0 @@ -task echoDirListViaAntBuilder() { - description = 'Uses the built-in AntBuilder instance to echo and list files' - //Docs: http://ant.apache.org/manual/Types/fileset.html - - //Echo the Gradle project name via the ant echo plugin - ant.echo(message: project.name) - ant.echo(path) - ant.echo("${projectDir}/samples") - - //Gather list of files in a subdirectory - ant.fileScanner{ - fileset(dir:"samples") - }.each{ - //Print each file to screen with the CWD (projectDir) path removed. - println it.toString() - "${projectDir}" - } -} diff --git a/samples/Groovy/groovy.script! b/samples/Groovy/groovy similarity index 100% rename from samples/Groovy/groovy.script! rename to samples/Groovy/groovy diff --git a/samples/JavaScript/js.script! b/samples/JavaScript/js similarity index 100% rename from samples/JavaScript/js.script! rename to samples/JavaScript/js diff --git a/samples/JavaScript/js2.script! b/samples/JavaScript/js2 similarity index 100% rename from samples/JavaScript/js2.script! rename to samples/JavaScript/js2 diff --git a/samples/Makefile/makefile.script! b/samples/Makefile/makefile similarity index 100% rename from samples/Makefile/makefile.script! rename to samples/Makefile/makefile diff --git a/samples/Nu/nu.script! b/samples/Nu/nu similarity index 100% rename from samples/Nu/nu.script! rename to samples/Nu/nu diff --git a/samples/PHP/drupal.script! b/samples/PHP/drupal.module similarity index 100% rename from samples/PHP/drupal.script! rename to samples/PHP/drupal.module diff --git a/samples/PHP/php.script! b/samples/PHP/php similarity index 100% rename from samples/PHP/php.script! rename to samples/PHP/php diff --git a/samples/PHP/php-script.script! b/samples/PHP/php-script similarity index 100% rename from samples/PHP/php-script.script! rename to samples/PHP/php-script diff --git a/samples/PHP/php2.script! b/samples/PHP/php2 similarity index 100% rename from samples/PHP/php2.script! rename to samples/PHP/php2 diff --git a/samples/Perl/perl.script! b/samples/Perl/perl similarity index 100% rename from samples/Perl/perl.script! rename to samples/Perl/perl diff --git a/samples/Prolog/dleak-report.script! b/samples/Prolog/dleak-report similarity index 100% rename from samples/Prolog/dleak-report.script! rename to samples/Prolog/dleak-report diff --git a/samples/Python/python.script! b/samples/Python/python similarity index 100% rename from samples/Python/python.script! rename to samples/Python/python diff --git a/samples/Python/python2.script! b/samples/Python/python2 similarity index 100% rename from samples/Python/python2.script! rename to samples/Python/python2 diff --git a/samples/Python/python3.script! b/samples/Python/python3 similarity index 100% rename from samples/Python/python3.script! rename to samples/Python/python3 diff --git a/samples/QMake/qmake.script! b/samples/QMake/qmake similarity index 100% rename from samples/QMake/qmake.script! rename to samples/QMake/qmake diff --git a/samples/R/git-punchcard.script! b/samples/R/git-punchcard similarity index 100% rename from samples/R/git-punchcard.script! rename to samples/R/git-punchcard diff --git a/samples/Ruby/macruby.script! b/samples/Ruby/macruby similarity index 100% rename from samples/Ruby/macruby.script! rename to samples/Ruby/macruby diff --git a/samples/Ruby/ruby.script! b/samples/Ruby/ruby similarity index 100% rename from samples/Ruby/ruby.script! rename to samples/Ruby/ruby diff --git a/samples/Ruby/ruby2.script! b/samples/Ruby/ruby2 similarity index 100% rename from samples/Ruby/ruby2.script! rename to samples/Ruby/ruby2 diff --git a/samples/Scala/99-bottles-of-beer.script! b/samples/Scala/99-bottles-of-beer similarity index 100% rename from samples/Scala/99-bottles-of-beer.script! rename to samples/Scala/99-bottles-of-beer diff --git a/samples/Scala/scala.script! b/samples/Scala/scala similarity index 100% rename from samples/Scala/scala.script! rename to samples/Scala/scala diff --git a/samples/Shell/99-bottles-of-beer.script! b/samples/Shell/99-bottles-of-beer similarity index 100% rename from samples/Shell/99-bottles-of-beer.script! rename to samples/Shell/99-bottles-of-beer diff --git a/samples/Shell/bash.script! b/samples/Shell/bash similarity index 100% rename from samples/Shell/bash.script! rename to samples/Shell/bash diff --git a/samples/Shell/plugin.script! b/samples/Shell/plugin similarity index 100% rename from samples/Shell/plugin.script! rename to samples/Shell/plugin diff --git a/samples/Shell/sbt.script! b/samples/Shell/sbt similarity index 100% rename from samples/Shell/sbt.script! rename to samples/Shell/sbt diff --git a/samples/Shell/sh.script! b/samples/Shell/sh similarity index 100% rename from samples/Shell/sh.script! rename to samples/Shell/sh diff --git a/samples/Shell/string-chopping.script! b/samples/Shell/string-chopping similarity index 100% rename from samples/Shell/string-chopping.script! rename to samples/Shell/string-chopping diff --git a/samples/Shell/zsh.script! b/samples/Shell/zsh similarity index 100% rename from samples/Shell/zsh.script! rename to samples/Shell/zsh diff --git a/test/test_samples.rb b/test/test_samples.rb index 6de1c7e9..dc3524c2 100644 --- a/test/test_samples.rb +++ b/test/test_samples.rb @@ -34,6 +34,14 @@ class TestSamples < Minitest::Test assert !data["interpreters"].empty? end + def test_ext_or_shebang + Samples.each do |sample| + if sample[:extname].to_s.empty? && !sample[:filename] + assert sample[:interpreter], "#{sample[:path]} should have a file extension or a shebang, maybe it belongs in filenames/ subdir" + end + end + end + # Check that there aren't samples with extensions or interpreters that # aren't explicitly defined in languages.yml languages_yml = File.expand_path("../../lib/linguist/languages.yml", __FILE__) @@ -42,7 +50,6 @@ class TestSamples < Minitest::Test options['extensions'] ||= [] if extnames = Samples.cache['extnames'][name] extnames.each do |extname| - next if extname == '.script!' assert options['extensions'].index { |x| x.downcase.end_with? extname.downcase }, "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" end end @@ -50,8 +57,8 @@ class TestSamples < Minitest::Test options['interpreters'] ||= [] if interpreters = Samples.cache['interpreters'][name] interpreters.each do |interpreter| - # next if extname == '.script!' - assert options['interpreters'].include?(interpreter), "#{name} has a sample with an interpreter (#{interpreter}) that isn't explicitly defined in languages.yml" + assert options['interpreters'].include?(interpreter), + "#{name} has a sample with an interpreter (#{interpreter}) that isn't explicitly defined in languages.yml" end end end diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index 8d7da0c0..75f854a9 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -84,16 +84,16 @@ class TestTokenizer < Minitest::Test end def test_shebang - assert_equal "SHEBANG#!sh", tokenize(:"Shell/sh.script!")[0] - assert_equal "SHEBANG#!bash", tokenize(:"Shell/bash.script!")[0] - assert_equal "SHEBANG#!zsh", tokenize(:"Shell/zsh.script!")[0] - assert_equal "SHEBANG#!perl", tokenize(:"Perl/perl.script!")[0] - assert_equal "SHEBANG#!python", tokenize(:"Python/python.script!")[0] - assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby.script!")[0] - assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2.script!")[0] - assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js.script!")[0] - assert_equal "SHEBANG#!php", tokenize(:"PHP/php.script!")[0] - assert_equal "SHEBANG#!escript", tokenize(:"Erlang/factorial.script!")[0] + assert_equal "SHEBANG#!sh", tokenize(:"Shell/sh")[0] + assert_equal "SHEBANG#!bash", tokenize(:"Shell/bash")[0] + assert_equal "SHEBANG#!zsh", tokenize(:"Shell/zsh")[0] + assert_equal "SHEBANG#!perl", tokenize(:"Perl/perl")[0] + assert_equal "SHEBANG#!python", tokenize(:"Python/python")[0] + assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby")[0] + assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2")[0] + assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js")[0] + assert_equal "SHEBANG#!php", tokenize(:"PHP/php")[0] + assert_equal "SHEBANG#!escript", tokenize(:"Erlang/factorial")[0] assert_equal "echo", tokenize(:"Shell/invalid-shebang.sh")[0] end From ef49fe417f10417fb337778d018cd6adadca9948 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 17 Apr 2015 14:37:40 +1200 Subject: [PATCH 423/875] fix samples after renaming script --- samples/Groovy/build.gvy | 17 +++++++++++++++++ samples/PHP/{drupal.module => drupal.php} | 0 2 files changed, 17 insertions(+) create mode 100644 samples/Groovy/build.gvy rename samples/PHP/{drupal.module => drupal.php} (100%) diff --git a/samples/Groovy/build.gvy b/samples/Groovy/build.gvy new file mode 100644 index 00000000..c1ac812c --- /dev/null +++ b/samples/Groovy/build.gvy @@ -0,0 +1,17 @@ +task echoDirListViaAntBuilder() { + description = 'Uses the built-in AntBuilder instance to echo and list files' + //Docs: http://ant.apache.org/manual/Types/fileset.html + + //Echo the Gradle project name via the ant echo plugin + ant.echo(message: project.name) + ant.echo(path) + ant.echo("${projectDir}/samples") + + //Gather list of files in a subdirectory + ant.fileScanner{ + fileset(dir:"samples") + }.each{ + //Print each file to screen with the CWD (projectDir) path removed. + println it.toString() - "${projectDir}" + } +} diff --git a/samples/PHP/drupal.module b/samples/PHP/drupal.php similarity index 100% rename from samples/PHP/drupal.module rename to samples/PHP/drupal.php From 63fbbd6e0abf7b792f49931834157fe06248f59e Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 19 Apr 2015 12:39:21 +0200 Subject: [PATCH 424/875] .mod file extension for AMPL, Linux Kernel Module, Modula-2 and XML --- lib/linguist/languages.yml | 16 ++ samples/AMPL/CT2.mod | 58 ++++ samples/Linux Kernel Module/bcm4334x.mod | 2 + samples/Linux Kernel Module/mbcache.mod | 2 + samples/Linux Kernel Module/md5.mod | 2 + samples/Modula-2/HuffChan.mod | 329 +++++++++++++++++++++++ samples/XML/xhtml-struct-1.mod | 125 +++++++++ 7 files changed, 534 insertions(+) create mode 100644 samples/AMPL/CT2.mod create mode 100644 samples/Linux Kernel Module/bcm4334x.mod create mode 100644 samples/Linux Kernel Module/mbcache.mod create mode 100644 samples/Linux Kernel Module/md5.mod create mode 100644 samples/Modula-2/HuffChan.mod create mode 100644 samples/XML/xhtml-struct-1.mod diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a6e5dd1d..1d181071 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -49,6 +49,7 @@ AMPL: color: "#E6EFBB" extensions: - .ampl + - .mod tm_scope: source.ampl ace_mode: text @@ -1703,6 +1704,13 @@ Limbo: tm_scope: none ace_mode: text +Linux Kernel Module: + type: data + extensions: + - .mod + tm_scope: none + ace_mode: text + Liquid: type: markup extensions: @@ -1968,6 +1976,13 @@ Modelica: tm_scope: source.modelica ace_mode: text +Modula-2: + type: programming + extensions: + - .mod + tm_scope: none + ace_mode: text + Module Management System: type: programming extensions: @@ -3405,6 +3420,7 @@ XML: - .kml - .launch - .mm + - .mod - .mxml - .nproj - .nuspec diff --git a/samples/AMPL/CT2.mod b/samples/AMPL/CT2.mod new file mode 100644 index 00000000..eb936b77 --- /dev/null +++ b/samples/AMPL/CT2.mod @@ -0,0 +1,58 @@ +param num_beams; # number of beams + +param num_rows >= 1, integer; # number of rows +param num_cols >= 1, integer; # number of columns + +set BEAMS := 1 .. num_beams; # set of beams + +set ROWS := 1 .. num_rows; # set of rows +set COLUMNS := 1 .. num_cols; # set of columns + +# values for entries of each beam +param beam_values {BEAMS, ROWS, COLUMNS} >= 0; + +# values of tumor +param tumor_values {ROWS, COLUMNS} >= 0; + +# values of critical area +param critical_values {ROWS, COLUMNS} >= 0; + +# critical maximum dosage requirement +param critical_max; + +# tumor minimum dosage requirement +param tumor_min; + +# dosage scalar of each beam +var X {i in BEAMS} >= 0; + + +# define the tumor area which includes the locations where tumor exists +set tumor_area := {k in ROWS, h in COLUMNS: tumor_values[k,h] > 0}; + +# define critical area +set critical_area := {k in ROWS, h in COLUMNS: critical_values[k,h] > 0}; + +var S {(k,h) in tumor_area} >= 0; +var T {(k,h) in critical_area} >= 0; + +# maximize total dosage in tumor area +maximize total_tumor_dosage: sum {i in BEAMS} sum {(k,h) in tumor_area} X[i] * beam_values[i,k,h]; + +# minimize total dosage in critical area +minimize total_critical_dosage: sum {i in BEAMS} sum {(k,h) in critical_area} X[i] * beam_values[i,k,h]; + +# minimize total tumor slack +minimize total_tumor_slack: sum {(k,h) in tumor_area} S[k,h]; + +# minimize total critical area slack +minimize total_critical_slack: sum {(k,h) in critical_area} T[k,h]; + +# total dosage at each tumor location [k,h] should be >= min tumor dosage with slack variable +subject to tumor_limit {(k,h) in tumor_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == tumor_min - S[k,h]; + +# total dosage at each critical location [k,h] should be = max critical dosage with slack variable +subject to critical_limit {(k,h) in critical_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == critical_max + T[k,h]; + + + diff --git a/samples/Linux Kernel Module/bcm4334x.mod b/samples/Linux Kernel Module/bcm4334x.mod new file mode 100644 index 00000000..8b35ba24 --- /dev/null +++ b/samples/Linux Kernel Module/bcm4334x.mod @@ -0,0 +1,2 @@ +/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcm4334x.ko +/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_pno.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_ip.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_custom_gpio.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_sched.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_wq.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/aiutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmevent.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmwifi_channels.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/hndpmu.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/linux_osl.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/sbutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/siutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_android.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfgp2p.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg_btcoex.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wldev_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_linux_mon.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_platdev.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cdc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_wlfc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_sdio.o diff --git a/samples/Linux Kernel Module/mbcache.mod b/samples/Linux Kernel Module/mbcache.mod new file mode 100644 index 00000000..1478b3a1 --- /dev/null +++ b/samples/Linux Kernel Module/mbcache.mod @@ -0,0 +1,2 @@ +fs/mbcache.ko +fs/mbcache.o diff --git a/samples/Linux Kernel Module/md5.mod b/samples/Linux Kernel Module/md5.mod new file mode 100644 index 00000000..85778eb0 --- /dev/null +++ b/samples/Linux Kernel Module/md5.mod @@ -0,0 +1,2 @@ +crypto/md5.ko +crypto/md5.o diff --git a/samples/Modula-2/HuffChan.mod b/samples/Modula-2/HuffChan.mod new file mode 100644 index 00000000..14073609 --- /dev/null +++ b/samples/Modula-2/HuffChan.mod @@ -0,0 +1,329 @@ +IMPLEMENTATION MODULE HuffChan; + +(* + This module shows how to redefine standard IO file functions. It provides + functions for reading and writing packed files opened in Raw mode. +*) + +IMPORT IOChan, IOLink, ChanConsts, IOConsts, SYSTEM, Strings; +FROM Storage IMPORT ALLOCATE, DEALLOCATE; + +CONST + rbldFrq = 512; (* means: every 512 bytes rebuild table *) + +TYPE + charTap = POINTER TO ARRAY [0..MAX(INTEGER)-1] OF CHAR; + smbTp = POINTER TO smbT; + + smbT = RECORD (* Huffman's tree *) + ch : CHAR; + n : CARDINAL; (* frequncy of char ch *) + left,right,next : smbTp; + END; + + tblT = RECORD (* bit sequence for code *) + vl : CARDINAL; (* bit sequence *) + cnt : INTEGER; (* it length *) + END; + + lclDataT = RECORD (* channel's local data *) + tRoot : smbTp; + htbl : ARRAY [0..255] OF tblT; (* code -> bit sequence table *) + ftbl : ARRAY [0..255] OF CARDINAL; (* frequncey table *) + wBf,rb1,rb2 : CARDINAL; + wbc,rbc,smc : INTEGER; + chid : IOChan.ChanId; + END; + lclDataTp = POINTER TO lclDataT; + charp = POINTER TO CHAR; + +VAR + did : IOLink.DeviceId; + ldt : lclDataTp; + + +PROCEDURE Shf(a:CARDINAL; b : INTEGER) : CARDINAL; (* shl a,b (or shr) *) +BEGIN + RETURN SYSTEM.CAST(CARDINAL,SYSTEM.SHIFT(SYSTEM.CAST(BITSET,a),b)); +END Shf; + +PROCEDURE wrDword(a:CARDINAL); (* write 4 bytes to file *) +BEGIN + IOChan.RawWrite(ldt^.chid,SYSTEM.ADR(a),4); +END wrDword; + +PROCEDURE rdDword() : CARDINAL; (* read 4 bytes from file *) +VAR + a,z : CARDINAL; +BEGIN + a:=0; + IOChan.RawRead(ldt^.chid,SYSTEM.ADR(a),4,z); + RETURN a; +END rdDword; + +PROCEDURE wrSmb(ch : CHAR); (* write bit sequence for code ch *) +VAR + v,h : CARDINAL; + b,c : INTEGER; +BEGIN + WITH ldt^ DO + v:=htbl[ORD(ch)].vl; + c:=htbl[ORD(ch)].cnt; + IF c+wbc<=32 THEN + wBf:=Shf(wBf,c); + wBf:=wBf+v; + wbc:=wbc+c; + IF wbc=32 THEN + wrDword(wBf); + wBf:=0; wbc:=0; + END; + RETURN; + END; + b:=c+wbc-32; + h:=Shf(v,-b); + wBf:=Shf(wBf,32-wbc)+h; + wrDword(wBf); + wBf:=v-Shf(h,b); + wbc:=b; + END; +END wrSmb; + +PROCEDURE flush(); (* write data in buffer *) +BEGIN + WITH ldt^ DO + wBf:=Shf(wBf,32-wbc); + wrDword(wBf); + END; +END flush; + +PROCEDURE getSym() : CHAR; (* find code for first bit sequence in buffer *) +VAR + t,i : CARDINAL; + b : INTEGER; +BEGIN + WITH ldt^ DO + IF rbc<=32 THEN + rb2:=rdDword(); + t:=Shf(rb2,-rbc); + IF rbc=32 THEN t:=0; END; + rb1:=rb1+t; + rb2:=Shf(rb2,32-rbc); + IF rbc=0 THEN rb2:=0; END; + rbc:=rbc+32; + END; + FOR i:=0 TO 255 DO + t:=Shf(rb1,htbl[i].cnt-32); + IF t=htbl[i].vl THEN + rb1:=Shf(rb1,htbl[i].cnt); + b:=32-htbl[i].cnt; + t:=Shf(rb2,-b); + rb1:=rb1+t; + rb2:=Shf(rb2,32-b); + rbc:=rbc+b-32; + RETURN CHR(i); + END; + END; + END; +END getSym; + +PROCEDURE Insert(s : smbTp); (* insert new character in Huffman's tree *) +VAR + cr : smbTp; +BEGIN + WITH ldt^ DO + IF tRoot=NIL THEN + cr:=tRoot; + tRoot:=s; + s^.next:=cr; + RETURN; + ELSIF tRoot^.n<=s^.n THEN + cr:=tRoot; + tRoot:=s; + s^.next:=cr; + RETURN; + END; + cr:=tRoot; + WHILE (cr^.next<>NIL) & (cr^.next^.n>s^.n) DO + cr:=cr^.next; + END; + s^.next:=cr^.next; + cr^.next:=s; + END; +END Insert; + +PROCEDURE BuildTree(); (* build Huffman's tree *) +VAR + cr,ocr,ncr : smbTp; +BEGIN + WITH ldt^ DO + LOOP + ocr:=NIL; cr:=tRoot; + WHILE cr^.next^.next<>NIL DO + ocr:=cr; cr:=cr^.next; + END; + NEW(ncr); + ncr^.n:=cr^.n+cr^.next^.n; + ncr^.left:=cr; + ncr^.right:=cr^.next; + IF ocr<>NIL THEN + ocr^.next:=NIL; + Insert(ncr); + ELSE + tRoot:=NIL; + Insert(ncr); + EXIT; + END; + END; + END; +END BuildTree; + +PROCEDURE BuildTable(cr: smbTp; vl,n: CARDINAL); (* build table: code -> bit sequence *) +BEGIN + WITH ldt^ DO + IF cr^.left=NIL THEN + htbl[ORD(cr^.ch)].vl:=vl; + htbl[ORD(cr^.ch)].cnt:=n; + DISPOSE(cr); + RETURN; + END; + vl:=vl*2; + BuildTable(cr^.left,vl,n+1); + BuildTable(cr^.right,vl+1,n+1); + DISPOSE(cr); + END; +END BuildTable; + +PROCEDURE clcTab(); (* build code/bitseq. table from frequency table *) +VAR + i : CARDINAL; + s : smbTp; +BEGIN + WITH ldt^ DO + tRoot:=NIL; + FOR i:=0 TO 255 DO + NEW(s); + s^.ch:=CHR(i); + s^.n:=ftbl[i]; + s^.left:=NIL; s^.right:=NIL; s^.next:=NIL; + Insert(s); + END; + BuildTree(); + BuildTable(tRoot,0,0); + END; +END clcTab; + +PROCEDURE iniHuf(); +VAR + i : CARDINAL; +BEGIN + WITH ldt^ DO + FOR i:=0 TO 255 DO + ftbl[i]:=1; + END; + wBf:=0; wbc:=0; rb1:=0; rb2:=0; rbc:=0; + smc:=0; + clcTab(); + END; +END iniHuf; + + +PROCEDURE RawWrite(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS; + len: CARDINAL); +VAR + i : CARDINAL; + ch : CHAR; + cht : charTap; +BEGIN + IF len = 0 THEN RETURN; END; + ldt:=SYSTEM.CAST(lclDataTp,x^.cd); + cht:=SYSTEM.CAST(charTap,buf); + WITH ldt^ DO + FOR i:=0 TO len-1 DO + ch:=cht^[i]; + wrSmb(ch); + IF ch = 377C THEN wrSmb(ch); END; + ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1; + IF smc=rbldFrq THEN + clcTab(); + smc:=0; + END; + END; + END; + x^.result:=IOChan.ReadResult(ldt^.chid); +END RawWrite; + +PROCEDURE RawRead(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS; + blen: CARDINAL; VAR len: CARDINAL); +VAR + i : CARDINAL; + cht : charTap; + ch : CHAR; +BEGIN + ldt:=SYSTEM.CAST(lclDataTp,x^.cd); + cht:=SYSTEM.CAST(charTap,buf); + IF (blen=0) OR (x^.result<>IOConsts.allRight) THEN len:=0; RETURN; END; + WITH ldt^ DO + FOR i:=0 TO blen-1 DO + ch:=getSym(); + IF ch = 377C THEN + ch:=getSym(); + IF ch = 0C THEN + x^.result:=IOConsts.endOfInput; + len:=i; cht^[i]:=0C; + RETURN; + END; + END; + cht^[i]:=ch; + ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1; + IF smc=rbldFrq THEN + clcTab(); + smc:=0; + END; + END; + len:=blen; + END; +END RawRead; + +PROCEDURE CreateAlias(VAR cid: ChanId; io: ChanId; VAR res: OpenResults); +VAR + x : IOLink.DeviceTablePtr; +BEGIN + IOLink.MakeChan(did,cid); + IF cid = IOChan.InvalidChan() THEN + res:=ChanConsts.outOfChans + ELSE + NEW(ldt); + IF ldt=NIL THEN + IOLink.UnMakeChan(did,cid); + res:=ChanConsts.outOfChans; + RETURN; + END; + x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,""); + ldt^.chid:=io; + x^.cd:=ldt; + x^.doRawWrite:=RawWrite; + x^.doRawRead:=RawRead; + res:=ChanConsts.opened; + iniHuf(); + x^.result:=IOConsts.allRight; + END; +END CreateAlias; + +PROCEDURE DeleteAlias(VAR cid: ChanId); +VAR + x : IOLink.DeviceTablePtr; +BEGIN + x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,""); + ldt:=x^.cd; + IF ldt^.rbc=0 THEN + wrSmb(377C); + wrSmb(0C); + flush(); + END; + DISPOSE(ldt); + IOLink.UnMakeChan(did,cid); +END DeleteAlias; + +BEGIN + IOLink.AllocateDeviceId(did); +END HuffChan. diff --git a/samples/XML/xhtml-struct-1.mod b/samples/XML/xhtml-struct-1.mod new file mode 100644 index 00000000..08c8b1d7 --- /dev/null +++ b/samples/XML/xhtml-struct-1.mod @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + +]]> + + + +]]> + + + + + + + +]]> + + + + + + +]]> + + + + + + + +]]> + + + +]]> + + + + + + + +]]> + + + + + + + +]]> + + From 0e996e4bb7714fce5cd18a93bfaf4337e1ba372c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 19 Apr 2015 12:41:41 +0200 Subject: [PATCH 425/875] Grammar for Modula-2 from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Sublime-Modula-2 | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Sublime-Modula-2 diff --git a/.gitmodules b/.gitmodules index f1ce5891..f2cca72c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -657,3 +657,6 @@ [submodule "vendor/grammars/jflex.tmbundle"] path = vendor/grammars/jflex.tmbundle url = https://github.com/jflex-de/jflex.tmbundle.git +[submodule "vendor/grammars/Sublime-Modula-2"] + path = vendor/grammars/Sublime-Modula-2 + url = https://github.com/harogaston/Sublime-Modula-2 diff --git a/grammars.yml b/grammars.yml index 46f2fd5d..9a0e7b37 100644 --- a/grammars.yml +++ b/grammars.yml @@ -107,6 +107,8 @@ vendor/grammars/Sublime-Logos: - source.logos vendor/grammars/Sublime-Loom: - source.loomscript +vendor/grammars/Sublime-Modula-2/: +- source.modula2 vendor/grammars/Sublime-Nit: - source.nit vendor/grammars/Sublime-QML: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1d181071..fea2ac5e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1980,7 +1980,7 @@ Modula-2: type: programming extensions: - .mod - tm_scope: none + tm_scope: source.modula2 ace_mode: text Module Management System: diff --git a/vendor/grammars/Sublime-Modula-2 b/vendor/grammars/Sublime-Modula-2 new file mode 160000 index 00000000..f30f2fbe --- /dev/null +++ b/vendor/grammars/Sublime-Modula-2 @@ -0,0 +1 @@ +Subproject commit f30f2fbe3b103bef939b830261bcd595f8951c28 From da9bda0e27966df638e3465b6e0383db2d1d336b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 19 Apr 2015 16:19:52 +0200 Subject: [PATCH 426/875] Detect KiCAD module files as generated --- lib/linguist/generated.rb | 16 +++++++++- test/fixtures/Generated/ABM8G.mod | 50 +++++++++++++++++++++++++++++++ test/test_blob.rb | 5 ++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/Generated/ABM8G.mod diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 12987196..88226954 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -68,7 +68,8 @@ module Linguist generated_protocol_buffer_go? || generated_protocol_buffer? || generated_jni_header? || - vcr_cassette? + vcr_cassette? || + generated_kicad_module? end # Internal: Is the blob an Xcode file? @@ -311,5 +312,18 @@ module Linguist return false unless lines.count > 1 return lines[0].include?("Generated by Cython") end + + # Internal: Is it a KiCAD module file? + # + # KiCAD module files contain: + # PCBNEW-LibModule-V1 yyyy-mm-dd h:mm:ss XM + # on the first line. + # + # Return true of false + def generated_kicad_module? + return false unless extname == '.mod' + return false unless lines.count > 1 + return lines[0].include?("PCBNEW-LibModule-V") + end end end diff --git a/test/fixtures/Generated/ABM8G.mod b/test/fixtures/Generated/ABM8G.mod new file mode 100644 index 00000000..15887130 --- /dev/null +++ b/test/fixtures/Generated/ABM8G.mod @@ -0,0 +1,50 @@ +PCBNEW-LibModule-V1 Wed 10 Aug 2011 05:57:27 PM COT +# encoding utf-8 +$INDEX +ABM8G +$EndINDEX +$MODULE ABM8G +Po 0 0 0 15 4E430CBD 4E430CC5 ~~ +Li ABM8G +Sc 4E430CC5 +AR +Op 0 0 0 +T0 591 -1378 354 354 0 39 N V 21 N "ABM8G" +T1 0 787 354 354 0 39 N V 21 N "VAL**" +DS -591 394 1299 394 79 21 +DS 1299 394 1299 -1063 79 21 +DS 1299 -1063 -472 -1063 79 21 +DS -472 -1063 -472 472 79 21 +DS -472 472 -472 551 79 21 +DS -472 551 -591 551 79 21 +DS -591 551 -591 433 79 21 +$PAD +Sh "1" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 0 0 +$EndPAD +$PAD +Sh "2" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 866 0 +$EndPAD +$PAD +Sh "3" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 866 -669 +$EndPAD +$PAD +Sh "4" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 0 -669 +$EndPAD +$EndMODULE ABM8G +$EndLIBRARY diff --git a/test/test_blob.rb b/test/test_blob.rb index 138eef8e..88d4c795 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -243,6 +243,9 @@ class TestBlob < Minitest::Test # Cython-generated C/C++ assert sample_blob("C/sgd_fast.c").generated? assert sample_blob("C++/wrapper_inner.cpp").generated? + + # KiCAD module files + assert fixture_blob("Generated/ABM8G.mod").generated? end def test_vendored @@ -536,6 +539,8 @@ class TestBlob < Minitest::Test blob = fixture_blob(filepath) if language == 'Data' assert blob.language.nil?, "A language was found for #{filepath}" + elsif language == 'Generated' + assert blob.generated?, "#{filepath} is not a generated file" else assert blob.language, "No language for #{filepath}" assert_equal language, blob.language.name, blob.name From e073e91d62be508f7fd69e3c696874704f0114bd Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 19 Apr 2015 16:56:38 +0200 Subject: [PATCH 427/875] Detect GFortran module files as generated --- lib/linguist/generated.rb | 13 +++++++++---- test/fixtures/Generated/ms2.mod | 19 +++++++++++++++++++ test/test_blob.rb | 3 --- 3 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 test/fixtures/Generated/ms2.mod diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 88226954..a9b934f9 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -69,7 +69,7 @@ module Linguist generated_protocol_buffer? || generated_jni_header? || vcr_cassette? || - generated_kicad_module? + generated_module? end # Internal: Is the blob an Xcode file? @@ -313,17 +313,22 @@ module Linguist return lines[0].include?("Generated by Cython") end - # Internal: Is it a KiCAD module file? + # Internal: Is it a KiCAD or GFortran module file? # # KiCAD module files contain: # PCBNEW-LibModule-V1 yyyy-mm-dd h:mm:ss XM # on the first line. # + # GFortran module files contain: + # GFORTRAN module version 'x' created from + # on the first line. + # # Return true of false - def generated_kicad_module? + def generated_module? return false unless extname == '.mod' return false unless lines.count > 1 - return lines[0].include?("PCBNEW-LibModule-V") + return lines[0].include?("PCBNEW-LibModule-V") || + lines[0].include?("GFORTRAN module version '") end end end diff --git a/test/fixtures/Generated/ms2.mod b/test/fixtures/Generated/ms2.mod new file mode 100644 index 00000000..1866c8d6 --- /dev/null +++ b/test/fixtures/Generated/ms2.mod @@ -0,0 +1,19 @@ +GFORTRAN module version '0' created from ms2.f90 on Thu Sep 5 10:09:19 2013 +MD5:8a80cd5db1bc612a28603959302dbf37 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +(2 'ms2' 'ms2' 'ms2' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +) + +('ms2' 0 2) diff --git a/test/test_blob.rb b/test/test_blob.rb index 88d4c795..6d919d14 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -243,9 +243,6 @@ class TestBlob < Minitest::Test # Cython-generated C/C++ assert sample_blob("C/sgd_fast.c").generated? assert sample_blob("C++/wrapper_inner.cpp").generated? - - # KiCAD module files - assert fixture_blob("Generated/ABM8G.mod").generated? end def test_vendored From eb7e72a4a97c81613fafa1e64297eed405d0736f Mon Sep 17 00:00:00 2001 From: "David J. Felix" Date: Wed, 15 Apr 2015 21:07:50 -0400 Subject: [PATCH 428/875] Change Salt to programming per #2307 - Remove group --- lib/linguist/languages.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a6e5dd1d..6f2e602a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2906,8 +2906,7 @@ Sage: ace_mode: python SaltStack: - type: data - group: YAML + type: programming aliases: - saltstate - salt From 604918b6ada1b10047834cd07101d5e7698d3e5f Mon Sep 17 00:00:00 2001 From: "David J. Felix" Date: Mon, 20 Apr 2015 12:29:09 -0400 Subject: [PATCH 429/875] Add python-logo grey color to SaltStack config --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 6f2e602a..418fa842 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2907,6 +2907,7 @@ Sage: SaltStack: type: programming + color: "#646464" aliases: - saltstate - salt From 164caa275559502f16dbb11822a61dcdeffb4399 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 13 Apr 2015 10:13:01 +0200 Subject: [PATCH 430/875] Add 'Linker Script' language. --- lib/linguist/languages.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 418fa842..662c488f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1703,6 +1703,16 @@ Limbo: tm_scope: none ace_mode: text +Linker Script: + type: data + extensions: + - .ld + - .lds + filenames: + - ld.script + tm_scope: none + ace_mode: text + Liquid: type: markup extensions: From 415c7d32a27e9e178e2eb4205fae96f77b68272a Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sun, 19 Apr 2015 13:22:41 +0200 Subject: [PATCH 431/875] More .asc samples for Public Key. sshkey1.asc by Joseph Galbraith; Sleepycat license (GPL compatible). --- samples/AsciiDoc/list.asc | 3 +++ samples/Public Key/id_dsa.asc | 1 + samples/Public Key/id_rsa.asc | 1 + samples/Public Key/sshkey1.asc | 7 +++++++ 4 files changed, 12 insertions(+) create mode 100644 samples/Public Key/id_dsa.asc create mode 100644 samples/Public Key/id_rsa.asc create mode 100644 samples/Public Key/sshkey1.asc diff --git a/samples/AsciiDoc/list.asc b/samples/AsciiDoc/list.asc index 066d14fc..3d93ade1 100644 --- a/samples/AsciiDoc/list.asc +++ b/samples/AsciiDoc/list.asc @@ -1,6 +1,9 @@ AsciiDoc Home Page ================== +Title +----- + Example Articles ~~~~~~~~~~~~~~~~ - Item 1 diff --git a/samples/Public Key/id_dsa.asc b/samples/Public Key/id_dsa.asc new file mode 100644 index 00000000..dc568f9d --- /dev/null +++ b/samples/Public Key/id_dsa.asc @@ -0,0 +1 @@ +ssh-dss AAAAB3NzaC1kc3MAAACBAIXi8hv+I7/bYzbve0Wg/Gv9yeZX0H/qON6rwJTPFICTncfK2t/Kc2Ec7+GYSkEIj7ok5wzHgv51SFTM6dvK/8hrjFE8frNztRK2TwZCvgYkbcBoprUstE86ZHBA1pAVPfHAOcF708Yk+KsxDONxkzu7FWw4HWqycqPtaavdcgsZAAAAFQC0uvetk3WY9sFNU71a32JKjkmTnwAAAIBlm1eGuATcZJvlk2jerZnTO54MlO/htWQrI4pZGLdhukOPgF1lsTUSwmCN8k8xxkyRL5Yl/8GUcdUfC4gbZvsbZGtvq5gFZSVTfkKJrlwykpZcaijWXtDiWSpqszs0MfexLMdpZSkNsWp7TEoWcqNLN8X7ohlsLAhcdrAbGqFblAAAAIBgW12r208h9AA3rH3t+6HKLXuPO1BQPuE+fKQg1Aet40c1gxUkCF/J+xdAITE1v7kmssZxBvDqUPgpvYCm+ZfA0j712pvt4JmQcfPn9Go003kq6/cgI4tCOy1dgQDLr0E5Jd7YqIglkr25fkDtKRFBRue3FmCGOdaM4NAAdYU48Q== lars@junk diff --git a/samples/Public Key/id_rsa.asc b/samples/Public Key/id_rsa.asc new file mode 100644 index 00000000..4c936646 --- /dev/null +++ b/samples/Public Key/id_rsa.asc @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw3QQtYgRViVH8ZpkQ2A7BuCeyPYC4hB9kKNhxwUfJ2hFgW8soGMBhsLN+vOeAJ2IXDMsezJO2/qhoZFQMvHoWpWTRTLPeNtBsKD+nhOZX28A4D+QRzVZ6hdWoh9W+mIP69MIT3aX35oLb86IycbNdRJlEK4FAUt7tjezNkU7boQ== root@use1-2.nitrousbox.com diff --git a/samples/Public Key/sshkey1.asc b/samples/Public Key/sshkey1.asc new file mode 100644 index 00000000..ce491bc3 --- /dev/null +++ b/samples/Public Key/sshkey1.asc @@ -0,0 +1,7 @@ +---- BEGIN SSH2 PUBLIC KEY ---- +Subject: galb +Comment: 1024-bit rsa, created by galb@shimi Mon Jan 15 08:31:24 2001 +AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt459 +6k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6 +NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0= +---- END SSH2 PUBLIC KEY ---- From e018b4322e61e4a776f1bdaf160efbe05281beb0 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sun, 19 Apr 2015 13:28:09 +0200 Subject: [PATCH 432/875] Improve .asc heuristic for Public Key. --- lib/linguist/heuristics.rb | 6 +++--- test/test_heuristics.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index e342e616..2002d51b 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -155,12 +155,12 @@ module Linguist end disambiguate "AsciiDoc", "AGS Script", "Public Key" do |data| - if /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) + if /^(----[- ]BEGIN|ssh-(rsa|dss)) /.match(data) + Language["Public Key"] + elsif /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) Language["AsciiDoc"] elsif /^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])/.match(data) Language["AGS Script"] - elsif /^-----BEGIN/.match(data) - Language["Public Key"] end end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index b3197c69..4a156445 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -77,7 +77,7 @@ class TestHeuristcs < Minitest::Test assert_heuristics({ "AsciiDoc" => "AsciiDoc/list.asc", "AGS Script" => "AGS Script/GlobalScript.asc", - "Public Key" => "Public Key/sunCert.asc" + "Public Key" => all_fixtures("Public Key", "*.asc") }) end From d7207f339946eef02dd750931f4e937c47cffa48 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 13 Apr 2015 09:51:32 +0200 Subject: [PATCH 433/875] Linker Script samples. vmlinux.lds by Martin Mares; license GPL v2. link.ld by Anthony Zbierajewski; license GPL v2. ld.script by Wu Zhangjink; license GPL v2. --- samples/Linker Script/filenames/ld.script | 50 +++ samples/Linker Script/link.ld | 12 + samples/Linker Script/vmlinux.lds | 373 ++++++++++++++++++++++ 3 files changed, 435 insertions(+) create mode 100644 samples/Linker Script/filenames/ld.script create mode 100644 samples/Linker Script/link.ld create mode 100644 samples/Linker Script/vmlinux.lds diff --git a/samples/Linker Script/filenames/ld.script b/samples/Linker Script/filenames/ld.script new file mode 100644 index 00000000..8e6b07ca --- /dev/null +++ b/samples/Linker Script/filenames/ld.script @@ -0,0 +1,50 @@ +/* + * ld.script for compressed kernel support of MIPS + * + * Copyright (C) 2009 Lemote Inc. + * Author: Wu Zhangjin + * Copyright (C) 2010 "Wu Zhangjin" + */ + +OUTPUT_ARCH(mips) +ENTRY(start) +SECTIONS +{ + /* Text and read-only data */ + /* . = VMLINUZ_LOAD_ADDRESS; */ + .text : { + *(.text) + *(.rodata) + } + /* End of text section */ + + /* Writable data */ + .data : { + *(.data) + /* Put the compressed image here */ + __image_begin = .; + *(.image) + __image_end = .; + CONSTRUCTORS + } + . = ALIGN(16); + _edata = .; + /* End of data section */ + + /* BSS */ + .bss : { + *(.bss) + } + . = ALIGN(16); + _end = .; + + /* Sections to be discarded */ + /DISCARD/ : { + *(.MIPS.options) + *(.options) + *(.pdr) + *(.reginfo) + *(.comment) + *(.note) + } +} diff --git a/samples/Linker Script/link.ld b/samples/Linker Script/link.ld new file mode 100644 index 00000000..833fe462 --- /dev/null +++ b/samples/Linker Script/link.ld @@ -0,0 +1,12 @@ +/* +* link.ld +*/ +OUTPUT_FORMAT(elf32-i386) +ENTRY(start) +SECTIONS + { + . = 0x100000; + .text : { *(.text) } + .data : { *(.data) } + .bss : { *(.bss) } + } \ No newline at end of file diff --git a/samples/Linker Script/vmlinux.lds b/samples/Linker Script/vmlinux.lds new file mode 100644 index 00000000..00bf300f --- /dev/null +++ b/samples/Linker Script/vmlinux.lds @@ -0,0 +1,373 @@ +/* + * ld script for the x86 kernel + * + * Historic 32-bit version written by Martin Mares + * + * Modernisation, unification and other changes and fixes: + * Copyright (C) 2007-2009 Sam Ravnborg + * + * + * Don't define absolute symbols until and unless you know that symbol + * value is should remain constant even if kernel image is relocated + * at run time. Absolute symbols are not relocated. If symbol value should + * change if kernel is relocated, make the symbol section relative and + * put it inside the section definition. + */ + +#ifdef CONFIG_X86_32 +#define LOAD_OFFSET __PAGE_OFFSET +#else +#define LOAD_OFFSET __START_KERNEL_map +#endif + +#include +#include +#include +#include +#include +#include + +#undef i386 /* in case the preprocessor is a 32bit one */ + +OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) + +#ifdef CONFIG_X86_32 +OUTPUT_ARCH(i386) +ENTRY(phys_startup_32) +jiffies = jiffies_64; +#else +OUTPUT_ARCH(i386:x86-64) +ENTRY(phys_startup_64) +jiffies_64 = jiffies; +#endif + +#if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) +/* + * On 64-bit, align RODATA to 2MB so that even with CONFIG_DEBUG_RODATA + * we retain large page mappings for boundaries spanning kernel text, rodata + * and data sections. + * + * However, kernel identity mappings will have different RWX permissions + * to the pages mapping to text and to the pages padding (which are freed) the + * text section. Hence kernel identity mappings will be broken to smaller + * pages. For 64-bit, kernel text and kernel identity mappings are different, + * so we can enable protection checks that come with CONFIG_DEBUG_RODATA, + * as well as retain 2MB large page mappings for kernel text. + */ +#define X64_ALIGN_DEBUG_RODATA_BEGIN . = ALIGN(HPAGE_SIZE); + +#define X64_ALIGN_DEBUG_RODATA_END \ + . = ALIGN(HPAGE_SIZE); \ + __end_rodata_hpage_align = .; + +#else + +#define X64_ALIGN_DEBUG_RODATA_BEGIN +#define X64_ALIGN_DEBUG_RODATA_END + +#endif + +PHDRS { + text PT_LOAD FLAGS(5); /* R_E */ + data PT_LOAD FLAGS(6); /* RW_ */ +#ifdef CONFIG_X86_64 +#ifdef CONFIG_SMP + percpu PT_LOAD FLAGS(6); /* RW_ */ +#endif + init PT_LOAD FLAGS(7); /* RWE */ +#endif + note PT_NOTE FLAGS(0); /* ___ */ +} + +SECTIONS +{ +#ifdef CONFIG_X86_32 + . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; + phys_startup_32 = startup_32 - LOAD_OFFSET; +#else + . = __START_KERNEL; + phys_startup_64 = startup_64 - LOAD_OFFSET; +#endif + + /* Text and read-only data */ + .text : AT(ADDR(.text) - LOAD_OFFSET) { + _text = .; + /* bootstrapping code */ + HEAD_TEXT + . = ALIGN(8); + _stext = .; + TEXT_TEXT + SCHED_TEXT + LOCK_TEXT + KPROBES_TEXT + ENTRY_TEXT + IRQENTRY_TEXT + *(.fixup) + *(.gnu.warning) + /* End of text section */ + _etext = .; + } :text = 0x9090 + + NOTES :text :note + + EXCEPTION_TABLE(16) :text = 0x9090 + +#if defined(CONFIG_DEBUG_RODATA) + /* .text should occupy whole number of pages */ + . = ALIGN(PAGE_SIZE); +#endif + X64_ALIGN_DEBUG_RODATA_BEGIN + RO_DATA(PAGE_SIZE) + X64_ALIGN_DEBUG_RODATA_END + + /* Data */ + .data : AT(ADDR(.data) - LOAD_OFFSET) { + /* Start of data section */ + _sdata = .; + + /* init_task */ + INIT_TASK_DATA(THREAD_SIZE) + +#ifdef CONFIG_X86_32 + /* 32 bit has nosave before _edata */ + NOSAVE_DATA +#endif + + PAGE_ALIGNED_DATA(PAGE_SIZE) + + CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) + + DATA_DATA + CONSTRUCTORS + + /* rarely changed data like cpu maps */ + READ_MOSTLY_DATA(INTERNODE_CACHE_BYTES) + + /* End of data section */ + _edata = .; + } :data + + + . = ALIGN(PAGE_SIZE); + __vvar_page = .; + + .vvar : AT(ADDR(.vvar) - LOAD_OFFSET) { + /* work around gold bug 13023 */ + __vvar_beginning_hack = .; + + /* Place all vvars at the offsets in asm/vvar.h. */ +#define EMIT_VVAR(name, offset) \ + . = __vvar_beginning_hack + offset; \ + *(.vvar_ ## name) +#define __VVAR_KERNEL_LDS +#include +#undef __VVAR_KERNEL_LDS +#undef EMIT_VVAR + + /* + * Pad the rest of the page with zeros. Otherwise the loader + * can leave garbage here. + */ + . = __vvar_beginning_hack + PAGE_SIZE; + } :data + + . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE); + + /* Init code and data - will be freed after init */ + . = ALIGN(PAGE_SIZE); + .init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) { + __init_begin = .; /* paired with __init_end */ + } + +#if defined(CONFIG_X86_64) && defined(CONFIG_SMP) + /* + * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the + * output PHDR, so the next output section - .init.text - should + * start another segment - init. + */ + PERCPU_VADDR(INTERNODE_CACHE_BYTES, 0, :percpu) + ASSERT(SIZEOF(.data..percpu) < CONFIG_PHYSICAL_START, + "per-CPU data too large - increase CONFIG_PHYSICAL_START") +#endif + + INIT_TEXT_SECTION(PAGE_SIZE) +#ifdef CONFIG_X86_64 + :init +#endif + + INIT_DATA_SECTION(16) + + .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { + __x86_cpu_dev_start = .; + *(.x86_cpu_dev.init) + __x86_cpu_dev_end = .; + } + +#ifdef CONFIG_X86_INTEL_MID + .x86_intel_mid_dev.init : AT(ADDR(.x86_intel_mid_dev.init) - \ + LOAD_OFFSET) { + __x86_intel_mid_dev_start = .; + *(.x86_intel_mid_dev.init) + __x86_intel_mid_dev_end = .; + } +#endif + + /* + * start address and size of operations which during runtime + * can be patched with virtualization friendly instructions or + * baremetal native ones. Think page table operations. + * Details in paravirt_types.h + */ + . = ALIGN(8); + .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { + __parainstructions = .; + *(.parainstructions) + __parainstructions_end = .; + } + + /* + * struct alt_inst entries. From the header (alternative.h): + * "Alternative instructions for different CPU types or capabilities" + * Think locking instructions on spinlocks. + */ + . = ALIGN(8); + .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { + __alt_instructions = .; + *(.altinstructions) + __alt_instructions_end = .; + } + + /* + * And here are the replacement instructions. The linker sticks + * them as binary blobs. The .altinstructions has enough data to + * get the address and the length of them to patch the kernel safely. + */ + .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { + *(.altinstr_replacement) + } + + /* + * struct iommu_table_entry entries are injected in this section. + * It is an array of IOMMUs which during run time gets sorted depending + * on its dependency order. After rootfs_initcall is complete + * this section can be safely removed. + */ + .iommu_table : AT(ADDR(.iommu_table) - LOAD_OFFSET) { + __iommu_table = .; + *(.iommu_table) + __iommu_table_end = .; + } + + . = ALIGN(8); + .apicdrivers : AT(ADDR(.apicdrivers) - LOAD_OFFSET) { + __apicdrivers = .; + *(.apicdrivers); + __apicdrivers_end = .; + } + + . = ALIGN(8); + /* + * .exit.text is discard at runtime, not link time, to deal with + * references from .altinstructions and .eh_frame + */ + .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { + EXIT_TEXT + } + + .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { + EXIT_DATA + } + +#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP) + PERCPU_SECTION(INTERNODE_CACHE_BYTES) +#endif + + . = ALIGN(PAGE_SIZE); + + /* freed after init ends here */ + .init.end : AT(ADDR(.init.end) - LOAD_OFFSET) { + __init_end = .; + } + + /* + * smp_locks might be freed after init + * start/end must be page aligned + */ + . = ALIGN(PAGE_SIZE); + .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { + __smp_locks = .; + *(.smp_locks) + . = ALIGN(PAGE_SIZE); + __smp_locks_end = .; + } + +#ifdef CONFIG_X86_64 + .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { + NOSAVE_DATA + } +#endif + + /* BSS */ + . = ALIGN(PAGE_SIZE); + .bss : AT(ADDR(.bss) - LOAD_OFFSET) { + __bss_start = .; + *(.bss..page_aligned) + *(.bss) + . = ALIGN(PAGE_SIZE); + __bss_stop = .; + } + + . = ALIGN(PAGE_SIZE); + .brk : AT(ADDR(.brk) - LOAD_OFFSET) { + __brk_base = .; + . += 64 * 1024; /* 64k alignment slop space */ + *(.brk_reservation) /* areas brk users have reserved */ + __brk_limit = .; + } + + _end = .; + + STABS_DEBUG + DWARF_DEBUG + + /* Sections to be discarded */ + DISCARDS + /DISCARD/ : { *(.eh_frame) } +} + + +#ifdef CONFIG_X86_32 +/* + * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility: + */ +. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), + "kernel image bigger than KERNEL_IMAGE_SIZE"); +#else +/* + * Per-cpu symbols which need to be offset from __per_cpu_load + * for the boot processor. + */ +#define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load +INIT_PER_CPU(gdt_page); +INIT_PER_CPU(irq_stack_union); + +/* + * Build-time check on the image size: + */ +. = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), + "kernel image bigger than KERNEL_IMAGE_SIZE"); + +#ifdef CONFIG_SMP +. = ASSERT((irq_stack_union == 0), + "irq_stack_union is not at start of per-cpu area"); +#endif + +#endif /* CONFIG_X86_32 */ + +#ifdef CONFIG_KEXEC +#include + +. = ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE, + "kexec control code size is too big"); +#endif + From fc1f8083adf4c89006bc9fcefc67635236c09af2 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 25 Apr 2015 23:36:15 +0200 Subject: [PATCH 434/875] Heuristic rules for XML and Modula-2 --- lib/linguist/heuristics.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 2002d51b..e939788b 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -274,6 +274,16 @@ module Linguist end end + disambiguate "XML", "Modula-2", "Linux Kernel Module", "AMPL" do |data| + if data.include?(' Date: Tue, 28 Apr 2015 22:21:30 -0700 Subject: [PATCH 435/875] Add support for API Blueprint This adds a grammar and samples for [API Blueprint][] based on the [Sublime Text plugin][] from Apiary. The [Atom language][] is also based on the Sublime plugin. API Blueprint is now used in over [3,600 repositories][] on GitHub and has [several][Aglio] [open source][Dredd] [tools][Drakov] available. Here's an [example using Lightshow][Lightshow] to highlight a small API. [3,600 repositories]: https://github.com/search?utf8=%E2%9C%93&q=FORMAT+1A+extension%3Aapib+extension%3Amd&type=Code&ref=advsearch&l= [Aglio]: https://github.com/danielgtaylor/aglio [API Blueprint]: https://apiblueprint.org/ [Drakov]: https://www.npmjs.com/package/drakov [Atom language]: https://github.com/danielgtaylor/atom-language-api-blueprint [Dredd]: https://github.com/apiaryio/dredd [Lightshow]: https://github-lightshow.herokuapp.com/?utf8=%E2%9C%93&scope=from-url&grammar_url=https%3A%2F%2Fgithub.com%2Fapiaryio%2Fapi-blueprint-sublime-plugin%2Fblob%2Fmaster%2FAPIBlueprint.tmLanguage&grammar_text=&code_source=from-url&code_url=https%3A%2F%2Fraw.githubusercontent.com%2Fapiaryio%2Fapi-blueprint%2Fmaster%2Fexamples%2F12.%2520Advanced%2520Action.md&code= [Sublime Text plugin]: https://github.com/apiaryio/api-blueprint-sublime-plugin --- .gitmodules | 3 ++ grammars.yml | 3 ++ lib/linguist/languages.yml | 8 +++ samples/API Blueprint/actions.apib | 55 ++++++++++++++++++++ samples/API Blueprint/attributes.apib | 39 ++++++++++++++ samples/API Blueprint/simple.apib | 18 +++++++ vendor/grammars/api-blueprint-sublime-plugin | 1 + 7 files changed, 127 insertions(+) create mode 100644 samples/API Blueprint/actions.apib create mode 100644 samples/API Blueprint/attributes.apib create mode 100644 samples/API Blueprint/simple.apib create mode 160000 vendor/grammars/api-blueprint-sublime-plugin diff --git a/.gitmodules b/.gitmodules index f1ce5891..be0e86cb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -657,3 +657,6 @@ [submodule "vendor/grammars/jflex.tmbundle"] path = vendor/grammars/jflex.tmbundle url = https://github.com/jflex-de/jflex.tmbundle.git +[submodule "vendor/grammars/api-blueprint-sublime-plugin"] + path = vendor/grammars/api-blueprint-sublime-plugin + url = https://github.com/apiaryio/api-blueprint-sublime-plugin diff --git a/grammars.yml b/grammars.yml index 46f2fd5d..d34253ac 100644 --- a/grammars.yml +++ b/grammars.yml @@ -156,6 +156,9 @@ vendor/grammars/antlr.tmbundle: vendor/grammars/apache.tmbundle: - source.apache-config - source.apache-config.mod_perl +vendor/grammars/api-blueprint-sublime-plugin/: +- text.html.markdown.source.gfm.apib +- text.html.markdown.source.gfm.mson vendor/grammars/applescript.tmbundle: - source.applescript vendor/grammars/asciidoc.tmbundle/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 662c488f..da046cae 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -59,6 +59,14 @@ ANTLR: - .g4 ace_mode: text +API Blueprint: + type: markup + color: "#2ACCA8" + ace_mode: markdown + extensions: + - .apib + tm_scope: text.html.markdown.source.gfm.apib + APL: type: programming color: "#5A8164" diff --git a/samples/API Blueprint/actions.apib b/samples/API Blueprint/actions.apib new file mode 100644 index 00000000..f94dc67a --- /dev/null +++ b/samples/API Blueprint/actions.apib @@ -0,0 +1,55 @@ +FORMAT: 1A + +# Advanced Action API +A resource action is – in fact – a state transition. This API example demonstrates an action - state transition - to another resource. + +## API Blueprint ++ [Previous: Resource Model](11.%20Resource%20Model.md) ++ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/11.%20Advanced%20Action.md) + +# Tasks [/tasks/tasks{?status,priority}] + ++ Parameters + + status (string) + + priority (number) + +## List All Tasks [GET] + ++ Response 200 (application/json) + + [ + { + "id": 123, + "name": "Exercise in gym", + "done": false, + "type": "task" + }, + { + "id": 124, + "name": "Shop for groceries", + "done": true, + "type": "task" + } + ] + +## Retrieve Task [GET /task/{id}] +This is a state transition to another resource + ++ Parameters + + id (string) + ++ Response 200 (application/json) + + { + "id": 123, + "name": "Go to gym", + "done": false, + "type": "task" + } + +## Delete Task [DELETE /task/{id}] + ++ Parameters + + id (string) + ++ Response 204 diff --git a/samples/API Blueprint/attributes.apib b/samples/API Blueprint/attributes.apib new file mode 100644 index 00000000..ce143f7b --- /dev/null +++ b/samples/API Blueprint/attributes.apib @@ -0,0 +1,39 @@ +FORMAT: 1A + +# Attributes API +This API example demonstrates how to describe body attributes of a request or response message. + +In this case, the description is complementary (and duplicate!) to the provided JSON example in the body section. The [Advanced Attributes](09.%20Advanced%20Attributes.md) API example will demonstrate how to avoid duplicates and how to reuse attributes descriptions. + +## API Blueprint ++ [Previous: Parameters](07.%20Parameters.md) ++ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/08.%20Attributes.md) ++ [Next: Advanced Attributes](09.%20Advanced%20Attributes.md) + +# Group Coupons + +## Coupon [/coupons/{id}] +A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer. + +### Retrieve a Coupon [GET] +Retrieves the coupon with the given ID. + ++ Response 200 (application/json) + + + Attributes (object) + + id: 250FF (string) + + created: 1415203908 (number) - Time stamp + + percent_off: 25 (number) + + A positive integer between 1 and 100 that represents the discount the coupon will apply. + + + redeem_by (number) - Date after which the coupon can no longer be redeemed + + + Body + + { + "id": "250FF", + "created": 1415203908, + "percent_off": 25, + "redeem_by:" null + } diff --git a/samples/API Blueprint/simple.apib b/samples/API Blueprint/simple.apib new file mode 100644 index 00000000..ecee8481 --- /dev/null +++ b/samples/API Blueprint/simple.apib @@ -0,0 +1,18 @@ +FORMAT: 1A + +# The Simplest API +This is one of the simplest APIs written in the **API Blueprint**. +One plain resource combined with a method and that's it! We will explain what is going on in the next installment - [Resource and Actions](02.%20Resource%20and%20Actions.md). + +**Note:** As we progress through the examples, do not also forget to view the [Raw](https://raw.github.com/apiaryio/api-blueprint/master/examples/01.%20Simplest%20API.md) code to see what is really going on in the API Blueprint, as opposed to just seeing the output of the Github Markdown parser. + +Also please keep in mind that every single example in this course is a **real API Blueprint** and as such you can **parse** it with the [API Blueprint parser](https://github.com/apiaryio/drafter) or one of its [bindings](https://github.com/apiaryio/drafter#bindings). + +## API Blueprint ++ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/01.%20Simplest%20API.md) ++ [Next: Resource and Actions](02.%20Resource%20and%20Actions.md) + +# GET /message ++ Response 200 (text/plain) + + Hello World! diff --git a/vendor/grammars/api-blueprint-sublime-plugin b/vendor/grammars/api-blueprint-sublime-plugin new file mode 160000 index 00000000..4713b0e8 --- /dev/null +++ b/vendor/grammars/api-blueprint-sublime-plugin @@ -0,0 +1 @@ +Subproject commit 4713b0e8248b63d993ec5bcaf3d70051e56acec2 From 1c56b03a28b6e96b221586ff220c8f788d70a48f Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:14:26 -0500 Subject: [PATCH 436/875] highlight DNS zone (BIND) files --- .gitmodules | 3 +++ vendor/grammars/Bind.tmbundle | 1 + 2 files changed, 4 insertions(+) create mode 160000 vendor/grammars/Bind.tmbundle diff --git a/.gitmodules b/.gitmodules index f1ce5891..f22c7288 100644 --- a/.gitmodules +++ b/.gitmodules @@ -657,3 +657,6 @@ [submodule "vendor/grammars/jflex.tmbundle"] path = vendor/grammars/jflex.tmbundle url = https://github.com/jflex-de/jflex.tmbundle.git +[submodule "vendor/grammars/Bind.tmbundle"] + path = vendor/grammars/Bind.tmbundle + url = git@github.com:norm/Bind.tmbundle.git diff --git a/vendor/grammars/Bind.tmbundle b/vendor/grammars/Bind.tmbundle new file mode 160000 index 00000000..ccc1e271 --- /dev/null +++ b/vendor/grammars/Bind.tmbundle @@ -0,0 +1 @@ +Subproject commit ccc1e2711a1238378b62d4045edae3f60679b703 From 5730ab28ab787032297a9f3668f09bb31ad56c5a Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:23:31 -0500 Subject: [PATCH 437/875] list zone in languages.yml --- lib/linguist/languages.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 662c488f..7544b198 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3633,3 +3633,8 @@ xBase: - .prg tm_scope: none ace_mode: text + +zone: + type: programming + extensions: + - .zone From 5aeac500da17406089a60ec21695520b8ceb2f74 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:24:46 -0500 Subject: [PATCH 438/875] list zone in grammars.yml --- grammars.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/grammars.yml b/grammars.yml index 46f2fd5d..13b63cf6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -26,6 +26,9 @@ vendor/grammars/Alloy.tmbundle: - source.alloy vendor/grammars/AutoHotkey/: - source.ahk +vendor/grammars/Bind.tmbundle: +- source.untitled +- text.zone vendor/grammars/BrightScript.tmbundle/: - source.brightauthorproject - source.brightscript From 188d2367df7bdf2e3afe504ac95caa6421d5eecf Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:25:52 -0500 Subject: [PATCH 439/875] add sample zone file --- samples/zone/sneaky.net.zone | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 samples/zone/sneaky.net.zone diff --git a/samples/zone/sneaky.net.zone b/samples/zone/sneaky.net.zone new file mode 100644 index 00000000..1276be5a --- /dev/null +++ b/samples/zone/sneaky.net.zone @@ -0,0 +1,12 @@ +$TTL 3d +@ IN SOA root.localhost. root.sneaky.net. ( + 2015042907 ; serial + 3d ; refresh + 1h ; retry + 12d ; expire + 2h ; negative response TTL + ) + IN NS root.localhost. + IN NS localhost. ; secondary name server is preferably externally maintained + +www IN A 3.141.59.26 From 8b736189e01634cc351758a6e98d193a192d8c87 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:34:43 -0500 Subject: [PATCH 440/875] better name for DNS zone --- lib/linguist/languages.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7544b198..94571e59 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -769,6 +769,11 @@ Diff: tm_scope: source.diff ace_mode: diff +DNS zone: + type: programming + extensions: + - .zone + Dockerfile: type: data tm_scope: source.dockerfile @@ -3633,8 +3638,3 @@ xBase: - .prg tm_scope: none ace_mode: text - -zone: - type: programming - extensions: - - .zone From 81c41df15c60b7389a1a905200bf46caa74c4863 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:39:32 -0500 Subject: [PATCH 441/875] zone: add tm_scope --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 94571e59..e7ec4af9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -773,6 +773,7 @@ DNS zone: type: programming extensions: - .zone + tm_scope: text.zone Dockerfile: type: data From 1e20b12241542f6f3e2bd659543e20f70f656262 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 30 Apr 2015 15:40:44 -0500 Subject: [PATCH 442/875] zone: add ace_mode --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e7ec4af9..cc97d249 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -774,6 +774,7 @@ DNS zone: extensions: - .zone tm_scope: text.zone + ace_mode: text Dockerfile: type: data From f393ea307d9bfc751604749e9417edff470c91ce Mon Sep 17 00:00:00 2001 From: Mike Doud Date: Thu, 30 Apr 2015 15:14:53 -0700 Subject: [PATCH 443/875] Add 'HyPhy Batch Language' --- lib/linguist/languages.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 662c488f..868f29c1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1349,6 +1349,12 @@ Hy: - hylang tm_scope: source.hy +HyPhy Batch Language: + type: programming + ace_mode: text + extensions: + - .bf + IDL: type: programming color: "#a3522f" From 4ae6455e0ef9ca855ce8314013053f9b008ad4de Mon Sep 17 00:00:00 2001 From: Mike Doud Date: Thu, 30 Apr 2015 15:25:04 -0700 Subject: [PATCH 444/875] Update languages.yml --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 868f29c1..827559c8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1349,7 +1349,7 @@ Hy: - hylang tm_scope: source.hy -HyPhy Batch Language: +HyPhy: type: programming ace_mode: text extensions: From 5e68714ae5a1d6993f63c2c9e0a1bf36e471ff7c Mon Sep 17 00:00:00 2001 From: Mike Doud Date: Thu, 30 Apr 2015 15:37:59 -0700 Subject: [PATCH 445/875] add HyPhy examples --- samples/HyPhy/454.bf | 2988 +++++++++++++++++++++++++++ samples/HyPhy/AAModelComparison.bf | 1827 ++++++++++++++++ samples/HyPhy/AnalyzeCodonData.bf | 1031 +++++++++ samples/HyPhy/AnalyzeDiNucData.bf | 931 +++++++++ samples/HyPhy/AnalyzeNucProtData.bf | 931 +++++++++ samples/HyPhy/BS2007.bf | 1999 ++++++++++++++++++ samples/HyPhy/MatrixIndexing.bf | 1 + samples/HyPhy/profile_test.bf | 1 + 8 files changed, 9709 insertions(+) create mode 100644 samples/HyPhy/454.bf create mode 100644 samples/HyPhy/AAModelComparison.bf create mode 100644 samples/HyPhy/AnalyzeCodonData.bf create mode 100644 samples/HyPhy/AnalyzeDiNucData.bf create mode 100644 samples/HyPhy/AnalyzeNucProtData.bf create mode 100644 samples/HyPhy/BS2007.bf create mode 100755 samples/HyPhy/MatrixIndexing.bf create mode 100755 samples/HyPhy/profile_test.bf diff --git a/samples/HyPhy/454.bf b/samples/HyPhy/454.bf new file mode 100644 index 00000000..40c867bd --- /dev/null +++ b/samples/HyPhy/454.bf @@ -0,0 +1,2988 @@ + + + + + + + + + + + + hyphy/454.bf at master · veg/hyphy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content +
+ + + + + + + + + + + + +
+
+
+ +
+
+
+ +
    + +
  • +
    + +
    + + + + Watch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /hyphy + + + + + +

+
+
+ +
+
+ +
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +

You can clone with + HTTPS, SSH, or Subversion. + + + +

+ + + + Clone in Desktop + + + + + + + Download ZIP + +
+
+ +
+ + + + + + +
+ +
+ + + branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ + + + +
+ +
+
+
+ +
+ Raw + Blame + History +
+ + + + + +
+ +
+
+ +
+ +
+ 538 lines (451 sloc) + + 14.93 kb +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExecuteAFile ("Utility/GrabBag.bf");
ExecuteAFile ("Utility/DBTools.ibf");
alignOptions = {};
SetDialogPrompt ("Sequence File:");
DataSet unal = ReadDataFile (PROMPT_FOR_FILE);
BASE_FILE_PATH = LAST_FILE_PATH;
DB_FILE_PATH = LAST_FILE_PATH + ".db";
ANALYSIS_DB_ID = _openCacheDB (DB_FILE_PATH);
haveTable = _TableExists (ANALYSIS_DB_ID, "SETTINGS");
if (haveTable)
{
existingSettings = _ExecuteSQL (ANALYSIS_DB_ID, "SELECT * FROM SETTINGS");
}
if (Abs(existingSettings))
{
existingSettings = existingSettings [0];
ExecuteCommands ("_Genetic_Code = " + existingSettings["GENETIC_CODE"]);
ExecuteCommands (existingSettings["OPTIONS"] ^ {{"_hyphyAssociativeArray","alignOptions"}});
masterReferenceSequence = existingSettings["REFERENCE"];
dbSequences = _ExecuteSQL (ANALYSIS_DB_ID, "SELECT SEQUENCE_ID FROM SEQUENCES WHERE STAGE = 0");
unalSequenceCount = Abs(dbSequences);
toDoSequences = {unalSequenceCount,1};
for (k = 0; k < unalSequenceCount; k=k+1)
{
toDoSequences[k] = (dbSequences[k])["SEQUENCE_ID"];
}
dbSequences = 0;
fprintf (stdout, "[PHASE 1] Reloaded ", unalSequenceCount, " unprocessed sequences\n");
}
else
{
tableDefines = {};
tableDefines ["SETTINGS"] = {};
(tableDefines ["SETTINGS"])["RUN_DATE"] = "DATE";
(tableDefines ["SETTINGS"])["OPTIONS"] = "TEXT";
(tableDefines ["SETTINGS"])["REFERENCE"] = "TEXT";
(tableDefines ["SETTINGS"])["GENETIC_CODE"] = "TEXT";
(tableDefines ["SETTINGS"])["THRESHOLD"] = "REAL";
tableDefines ["SEQUENCES"] = {};
(tableDefines ["SEQUENCES"])["SEQUENCE_ID"] = "TEXT UNIQUE";
(tableDefines ["SEQUENCES"])["LENGTH"] = "INTEGER";
(tableDefines ["SEQUENCES"])["STAGE"] = "INTEGER";
/*
0 - initial import
1 - in frame without a fix
2 - one frame shift / fixed
3 - out-of-frame; not fixed / not aligned
*/
(tableDefines ["SEQUENCES"])["RAW"] = "TEXT";
(tableDefines ["SEQUENCES"])["ALIGNED_AA"] = "TEXT"; /* aligned aa. sequence */
(tableDefines ["SEQUENCES"])["ALIGNED"] = "TEXT"; /* aligned nucleotide sequence */
(tableDefines ["SEQUENCES"])["OFFSET"] = "INTEGER"; /* start offset w.r.t the reference sequence */
(tableDefines ["SEQUENCES"])["END_OFFSET"] = "INTEGER"; /* end offset w.r.t the reference sequence */
(tableDefines ["SEQUENCES"])["SCORE"] = "REAL";
(tableDefines ["SEQUENCES"])["FRAME"] = "INTEGER";
_CreateTableIfNeeded (ANALYSIS_DB_ID, "SETTINGS", tableDefines["SETTINGS"], 0);
_CreateTableIfNeeded (ANALYSIS_DB_ID, "SEQUENCES", tableDefines["SEQUENCES"], 1);
/* START ALIGNMENT SETTINGS */
LoadFunctionLibrary ("SeqAlignShared.ibf");
DataSetFilter filteredData = CreateFilter (unal,1);
GetInformation (UnalignedSeqs,filteredData);
/* preprocess sequences */
unalSequenceCount = Rows(UnalignedSeqs)*Columns(UnalignedSeqs);
GetString (sequenceNames, unal, -1);
longestSequence = 0;
longestSequenceIDX = 0;
seqRecord = {};
fprintf (stdout, "[PHASE 1] Initial Processing of ", unalSequenceCount, " sequences\n");
for (seqCounter = 0; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
UnalignedSeqs[seqCounter] = UnalignedSeqs[seqCounter]^{{"[^a-zA-Z]",""}};
UnalignedSeqs[seqCounter] = UnalignedSeqs[seqCounter]^{{"^N+",""}};
UnalignedSeqs[seqCounter] = UnalignedSeqs[seqCounter]^{{"N+$",""}};
seqRecord ["SEQUENCE_ID"] = sequenceNames[seqCounter];
seqRecord ["LENGTH"] = Abs (UnalignedSeqs[seqCounter]);
seqRecord ["STAGE"] = 0;
seqRecord ["RAW"] = UnalignedSeqs[seqCounter];
if (doLongestSequence)
{
if (doLongestSequence == 1 || seqCounter != unalSequenceCount-1)
{
if (Abs (UnalignedSeqs[seqCounter]) > longestSequence)
{
longestSequence = Abs (UnalignedSeqs[seqCounter]);
longestSequenceIDX = seqCounter;
}
}
}
_InsertRecord (ANALYSIS_DB_ID, "SEQUENCES", seqRecord);
SetParameter (STATUS_BAR_STATUS_STRING, "Initial processing ("+seqCounter+"/"+unalSequenceCount+" done)",0);
}
if (refSeq == 0)
{
masterReferenceSequence = UnalignedSeqs[0];
}
if (doLongestSequence)
{
fprintf (stdout, "\nSelected sequence ", sequenceNames[longestSequenceIDX], " as reference.");
masterReferenceSequence = UnalignedSeqs[longestSequenceIDX];
}
incFileName = HYPHY_LIB_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def";
ExecuteCommands ("#include \""+incFileName+"\";");
doLongestSequence = (refSeq==1);
aRecord = {};
aRecord["RUN_DATE"] = _ExecuteSQL(ANALYSIS_DB_ID,"SELECT DATE('NOW') AS CURRENT_DATE");
aRecord["RUN_DATE"] = ((aRecord["RUN_DATE"])[0])["CURRENT_DATE"];
aRecord["OPTIONS"] = "" + alignOptions;
aRecord["REFERENCE"] = masterReferenceSequence;
aRecord["GENETIC_CODE"] = "" + _Genetic_Code;
_InsertRecord (ANALYSIS_DB_ID, "SETTINGS", aRecord);
toDoSequences = sequenceNames;
UnalignedSequences = 0;
}
skipOutliers = 1;
doRC = 1;
/* build codon translation table */
codonToAAMap = {};
codeToAA = "FLIMVSPTAYXHQNKDECWRG";
nucChars = "ACGT";
for (p1=0; p1<64; p1=p1+1)
{
codon = nucChars[p1$16]+nucChars[p1%16$4]+nucChars[p1%4];
ccode = _Genetic_Code[p1];
codonToAAMap[codon] = codeToAA[ccode];
}
/* determine reading frames */
ProteinSequences = {};
AllTranslations = {};
ReadingFrames = {};
StopCodons = {};
StopPositions = {};
RC = {};
fprintf (stdout, "\n[PHASE 2] Detecting reading frames for each unprocessed sequence...\n");
frameCounter = {3,2};
stillHasStops = {};
aRecord = {};
for (seqCounter = 0; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
rawSeq = (_ExecuteSQL(ANALYSIS_DB_ID,"SELECT RAW FROM SEQUENCES WHERE SEQUENCE_ID = '" + toDoSequences[seqCounter] + "'"));
aSeq = (rawSeq[0])["RAW"];
seqLen = Abs(aSeq)-2;
minStops = 1e20;
tString = "";
rFrame = 0;
rrc = 0;
allTran = {3,2};
stopPosn = {6,2};
for (rc = 0; rc<=doRC; rc = rc+1)
{
if (rc)
{
aSeq = nucleotideReverseComplement (aSeq)
}
for (offset = 0; offset < 3; offset = offset+1)
{
translString = "";
translString * (seqLen/3+1);
for (seqPos = offset; seqPos < seqLen; seqPos = seqPos+3)
{
codon = aSeq[seqPos][seqPos+2];
prot = codonToAAMap[codon];
if (Abs(prot))
{
translString * prot;
}
else
{
translString * "?";
}
}
translString * 0;
translString = translString^{{"X$","?"}};
stopPos = translString||"X";
if (stopPos[0]>=0)
{
stopCount = Rows(stopPos)$2;
stopPosn[3*rc+offset][0] = stopPos[0];
stopPosn[3*rc+offset][1] = stopPos[stopCount*2-1];
}
else
{
stopCount = 0;
}
if (stopCount<minStops)
{
minStops = stopCount;
rFrame = offset;
rrc = rc;
tString = translString;
}
allTran[offset][rc] = translString;
}
}
ReadingFrames [seqCounter] = rFrame;
ProteinSequences [seqCounter] = tString;
frameCounter [rFrame][rrc] = frameCounter[rFrame][rrc]+1;
StopPositions [seqCounter] = stopPosn;
AllTranslations [seqCounter] = allTran;
RC [seqCounter] = rrc;
SetParameter (STATUS_BAR_STATUS_STRING, "Reading frame analysis ("+seqCounter+"/"+unalSequenceCount+" done)",0);
}
_closeCacheDB (ANALYSIS_DB_ID);
return 0;
s1 = ProteinSequences[0];
fprintf (stdout, "\nFound:\n\t", frameCounter[0], " sequences in reading frame 1\n\t",frameCounter[1], " sequences in reading frame 2\n\t",frameCounter[2], " sequences in reading frame 3\n\nThere were ", Abs(stillHasStops), " sequences with apparent frameshift/sequencing errors\n");
skipSeqs = {};
for (k=0; k<Abs(stillHasStops); k=k+1)
{
seqCounter = stillHasStops[k];
seqName = sequenceNames[seqCounter];
fprintf (stdout,"Sequence ", seqCounter+1, " (", seqName, ") seems to have");
stopPosn = StopPositions[seqCounter];
fStart = -1;
fEnd = -1;
fMin = 1e10;
frame1 = 0;
frame2 = 0;
checkFramePosition (stopPosn[0][1],stopPosn[1][0],0,1);
checkFramePosition (stopPosn[1][1],stopPosn[0][0],1,0);
checkFramePosition (stopPosn[0][1],stopPosn[2][0],0,2);
checkFramePosition (stopPosn[2][1],stopPosn[0][0],2,0);
checkFramePosition (stopPosn[2][1],stopPosn[1][0],2,1);
checkFramePosition (stopPosn[1][1],stopPosn[2][0],1,2);
if (fStart>=0)
{
allTran = AllTranslations[seqCounter];
useq = UnalignedSeqs[seqCounter];
fprintf (stdout, " a shift from frame ", frame2+1, " to frame ", frame1+1, " between a.a. positions ", fStart, " and ", fEnd, ".");
fStart2 = Max(fStart-1,0);
fEnd2 = Min(fEnd+1,Min(Abs(allTran[frame1]),Abs(allTran[frame2]))-1);
tempString = allTran[frame2];
fprintf (stdout, "\n\tRegion ", fStart2, "-", fEnd2, " in frame ", frame2+1, ":\n\t", tempString[fStart2][fEnd2]);
fprintf (stdout, "\n\t", useq[3*fStart2+frame2][3*fEnd2+frame2-1]);
tempString = allTran[frame1];
fprintf (stdout, "\n\tRegion ", fStart2, "-", fEnd2, " in frame ", frame1+1, ":\n\t", tempString[fStart2][fEnd2]);
fprintf (stdout, "\n\t", useq[3*fStart2+frame1][3*fEnd2+frame1-1]);
fprintf (stdout, "\n\t\tAttempting to resolve by alignment to reference. ");
f1s = allTran[frame1];
f2s = allTran[frame2];
f1l = Abs(f1s);
bestScore = -1e10;
bestSplice = -1;
for (k2=fStart; k2<fEnd; k2=k2+1)
{
s2 = f2s[0][k2]+f1s[k2+1][Abs(f1s)];
inStr = {{s1,s2}};
AlignSequences(aligned, inStr, alignOptions);
aligned = aligned[0];
aligned = aligned[0];
if (aligned > bestScore)
{
bestScore = aligned;
bestSplice = k2;
bestString = s2;
}
}
fprintf (stdout, "Best splice site appears to be at a.a. position ", bestSplice, "\n");
/* update best spliced string */
ProteinSequences[seqCounter] = bestString;
ReadingFrames[seqCounter] = 0;
UnalignedSeqs[seqCounter] = useq[frame2][frame2+3*bestSplice+2] + useq[frame1+3*bestSplice+3][Abs(useq)-1] + "---";
}
else
{
fprintf (stdout, " multiple frameshifts\n");
skipSeqs[seqCounter] = 1;
}
}
SeqAlignments = {};
startingPosition = {unalSequenceCount,2};
refLength = Abs(ProteinSequences[0]);
refInsertions = {refLength,1};
fprintf (stdout,"\nPerforming pairwise alignment with reference sequences\n");
alignmentScores = {};
for (seqCounter = 1; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
if (skipSeqs[seqCounter] == 0)
{
s2 = ProteinSequences[seqCounter];
inStr = {{s1,s2}};
AlignSequences(aligned, inStr, alignOptions);
aligned = aligned[0];
SeqAlignments[seqCounter] = aligned;
alignmentScores[Abs(alignmentScores)] = aligned[0]/Abs(aligned[1]);
aligned = aligned[1];
myStartingPosition = aligned$"[^-]";
myEndingPosition = Abs (aligned)-1;
while (aligned[myEndingPosition]=="-")
{
myEndingPosition = myEndingPosition - 1;
}
myStartingPosition = myStartingPosition[0];
startingPosition[seqCounter][0] = myStartingPosition;
startingPosition[seqCounter][1] = myEndingPosition;
aligned = aligned[myStartingPosition][myEndingPosition];
refInsert = aligned||"-+";
if (refInsert[0]>0)
{
insCount = Rows (refInsert)/2;
offset = 0;
for (insN = 0; insN < insCount; insN = insN+1)
{
insPos = refInsert[insN*2];
insLength = refInsert[insN*2+1]-insPos+1;
insPos = insPos-offset;
if (refInsertions[insPos]<insLength)
{
refInsertions[insPos]=insLength;
}
offset = offset + insLength;
}
}
}
}
alignmentScoresM = avlToMatrix ("alignmentScores");
ExecuteAFile ("Utility/DescriptiveStatistics.bf");
distInfo = GatherDescriptiveStats (alignmentScoresM);
/*lowerCuttoff = 0.25;*/
distInfo["Mean"] - 2*distInfo["Std.Dev"];
/* produce a fully gapped reference sequence */
fprintf (stdout,"\nMerging pairwise alignments into a MSA\n");
fullRefSeq = "";
fullRefSeq * refLength;
fullRefSeq * (s1[0]);
s1N = UnalignedSeqs[0];
fullRefSeqN = "";
fullRefSeqN * (3*refLength);
fullRefSeqN * (s1N[0][2]);
frameShift = ReadingFrames[0];
for (seqCounter=1;seqCounter<refLength;seqCounter=seqCounter+1)
{
gapCount = refInsertions[seqCounter];
for (k=0; k<gapCount;k=k+1)
{
fullRefSeq*("-");
fullRefSeqN*("---");
}
fullRefSeq * (s1[seqCounter]);
fullRefSeqN * (s1N[frameShift+seqCounter*3][frameShift+seqCounter*3+2]);
}
fullRefSeq * 0;
fullRefSeqN * 0;
return 0;
refLength = Abs(fullRefSeq);
SetDialogPrompt ("Save alignment to:");
seqName=sequenceNames[0];
fprintf (PROMPT_FOR_FILE,CLEAR_FILE,">",seqName,"\n",fullRefSeq);
fName = LAST_FILE_PATH;
fNameC = fName+".nuc";
fprintf (fNameC,CLEAR_FILE,">",seqName,"\n",fullRefSeqN);
alCounter = 0;
for (seqCounter = 1; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
if (skipSeqs[seqCounter] == 0)
{
if (skipOutliers == 0 && alignmentScoresM[alCounter] < lowerCuttoff)
{
seqName=sequenceNames[seqCounter];
fprintf (stdout, "Sequence ", seqName ," was skipped because of a poor alignment score.\n");
skipSeqs[seqCounter] = 1;
alCounter = alCounter + 1;
continue;
}
alCounter = alCounter + 1;
seqName=sequenceNames[seqCounter];
aligned = SeqAlignments[seqCounter];
aligned1 = aligned[1];
aligned2 = aligned[2];
s2 = startingPosition[seqCounter][0];
e2 = startingPosition[seqCounter][1];
gappedSeq = "";
gappedSeq * Abs(aligned2);
k=0;
while (k<refLength)
{
while (fullRefSeq[k]!=aligned1[s2])
{
gappedSeq*("-");
k=k+1;
}
gappedSeq*(aligned2[s2]);
s2=s2+1;
k=k+1;
}
gappedSeq * 0;
gappedSeqN = "";
gappedSeqN * (3*Abs(aligned2));
frameShift = ReadingFrames[seqCounter];
s1N = UnalignedSeqs[seqCounter];
s2N = ProteinSequences[seqCounter];
s2 = startingPosition[seqCounter][0];
k = 0;
e2 = Abs(gappedSeq);
k = 0;
while (k<e2)
{
while ((s2N[s2]!=gappedSeq[k])&&(k<e2))
{
gappedSeqN * ("---");
k=k+1;
}
if (k<e2)
{
gappedSeqN * s1N[frameShift+s2*3][frameShift+s2*3+2];
s2 = s2+1;
k=k+1;
}
}
gappedSeqN * 0;
if (refSeq2 && seqCounter == unalSequenceCount-1)
{
fscanf (fName, "Raw", soFar);
fprintf (fName, CLEAR_FILE,">",seqName,"\n",gappedSeq,"\n",soFar);
fscanf (fNameC, "Raw", soFar);
fprintf (fNameC,CLEAR_FILE,">",seqName,"\n",gappedSeqN,"\n",soFar);
}
else
{
fprintf (fName,"\n>",seqName,"\n",gappedSeq);
fprintf (fNameC,"\n>",seqName,"\n",gappedSeqN);
}
}
}
if (Abs(skipSeqs))
{
fName = fName+".bad";
for (seqCounter = 1; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
if (skipSeqs[seqCounter])
{
seqName=sequenceNames[seqCounter];
fprintf (fName,">",seqName,"\n",UnalignedSeqs[seqCounter],"\n");
}
}
}
function checkFramePosition (pos1, pos2, fr1, fr2)
{
fSpan = pos2-pos1;
if (fSpan>1) /* first followed by second*/
{
if (fSpan < fMin)
{
fMin = fSpan;
frame1 = fr1;
frame2 = fr2;
fStart = pos1+1;
fEnd = pos2;
}
}
return 0;
}
+ +
+ +
+ +Jump to Line + + +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + +
+ + + + diff --git a/samples/HyPhy/AAModelComparison.bf b/samples/HyPhy/AAModelComparison.bf new file mode 100644 index 00000000..72b30a53 --- /dev/null +++ b/samples/HyPhy/AAModelComparison.bf @@ -0,0 +1,1827 @@ + + + + + + + + + + + + hyphy/AAModelComparison.bf at master · veg/hyphy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content +
+ + + + + + + + + + + + +
+
+
+ +
+
+
+ +
    + +
  • +
    + +
    + + + + Watch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /hyphy + + + + + +

+
+
+ +
+
+ +
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +

You can clone with + HTTPS, SSH, or Subversion. + + + +

+ + + + Clone in Desktop + + + + + + + Download ZIP + +
+
+ +
+ + + + + + +
+ +
+ + + branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ Fetching contributors… +
+ +
+

+

Cannot retrieve contributors at this time

+
+
+
+
+
+ +
+ Raw + Blame + History +
+ + + + + +
+ +
+
+ +
+ +
+ 253 lines (199 sloc) + + 5.743 kb +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
if (Rows (modelMatrixList) == 0)
{
modelMatrixList =
{
{"Equal Input", "EIAA.mdl", "19"}
{"Dayhoff","Dayhoff.mdl","0"}
{"Dayhoff+F","Dayhoff_F.mdl","19"}
{"JTT", "Jones.mdl", "0"}
{"JTT+F", "Jones_F.mdl", "19"}
{"WAG", "WAG.mdl", "0"}
{"WAG+F", "WAG_F.mdl", "19"}
{"rtREV", "rtREV.mdl", "0"}
{"rtREV+F", "rtREV_F.mdl", "19"}
{"mtMAM", "mtMAM.mdl", "0"}
{"mtMAM+F", "mtMAM_F.mdl", "19"}
{"mtREV 24", "mtREV_24.mdl", "0"}
{"mtREV 24+F", "mtREV_24_F.mdl", "19"}
{"HIV within", "HIVwithin.mdl", "0"}
{"HIV within+F", "HIVwithin+F.mdl", "19"}
{"HIV between", "HIVbetween.mdl", "0"}
{"HIV between+F", "HIVbetween+F.mdl", "19"}
{"REV-1 step", "reducedREV.mdl", "19"}
{"REV", "mtREV.mdl", "19"}
};
}
/*___________________________________________________________________________________________________________*/
function runAModel (modelID, fileName, xtraP, midx)
{
ExecuteCommands ("#include \"TemplateModels/"+fileName+"\";");
Tree givenTree = treeString;
LikelihoodFunction lf = (filteredData,givenTree);
GetString (lf_info, lf, -1);
locals = lf_info["Local Independent"];
if (Columns (branchLengthStash))
{
USE_LAST_RESULTS = 1;
for (_iv = 0; _iv < Columns (locals); _iv = _iv+1)
{
ExecuteCommands (locals[_iv] + "=1;\n");
}
currentBL = BranchLength (givenTree,0);
currentBN = BranchName (givenTree,-1);
for (_iv = 0; _iv < Columns (currentBN); _iv = _iv+1)
{
ExecuteCommands ("givenTree."+currentBN[_iv]+".t="+branchLengthStash[_iv]/currentBL+";");
}
}
else
{
for (_iv = 0; _iv < Columns (locals); _iv = _iv+1)
{
ExecuteCommands (locals[_iv] + "=0.1;\n");
}
USE_LAST_RESULTS = 1;
}
Optimize (res,lf);
fprintf (stdout, "| ", modelID);
for (k=0; k<maxModelWidth-Abs(modelID)-1; k=k+1)
{
fprintf (stdout, " ");
}
params = res[1][1]+xtraP;
AIC = 2(-res[1][0]+params);
if (filteredData.sites-params>1)
{
cAIC = 2(-res[1][0]+params*(filteredData.sites/(filteredData.sites-params-1)));
}
else
{
cAIC = 0;
}
branchLengths = BranchLength (givenTree,-1);
TL = 0;
for (k=Rows(branchLengths)*Columns(branchLengths)-1; k>=0; k=k-1)
{
TL = TL + branchLengths[k];
}
fprintf (stdout, "| ", Format (res[1][0],14,3), " | ", Format (params,5,0), " | ",
Format (AIC, 9,3), " | ",);
if (cAIC > 0)
{
fprintf (stdout, Format (cAIC,11,3), " | ");
}
else
{
fprintf (stdout, " N/A | ");
}
fprintf (stdout, Format (TL,11,3), " |\n", sepString);
resultMatrix[midx][0] = res[1][0];
resultMatrix[midx][1] = params;
resultMatrix[midx][2] = AIC;
resultMatrix[midx][3] = cAIC;
resultMatrix[midx][4] = TL;
if (AIC < bestAIC)
{
bestAIC = AIC;
bestAICidx = midx;
branchLengthStash = BranchLength (givenTree,-1);
}
if (cAIC > 0)
{
if (bestCAIC > cAIC)
{
bestCAIC = cAIC;
bestCAICidx = midx;
}
}
return 0;
}
/*___________________________________________________________________________________________________________*/
maxModelWidth = 7;
skipCodeSelectionStep = 0;
ChoiceList (doREV, "Include REV?", 1, SKIP_NONE, "Yes", "Include REV and reduced REV models. CAUTION: these models take a long time to fit.",
"No", "Only use empirical models");
if (doREV < 0)
{
return 0;
}
if (doREV == 0)
{
#include "TemplateModels/chooseGeneticCode.def";
skipCodeSelectionStep = 1;
}
modelCount = Rows (modelMatrixList) - 2*doREV;
for (k=0; k<modelCount; k=k+1)
{
maxModelWidth = Max(maxModelWidth,Abs (modelMatrixList[k][0])+2);
}
sepString = "";
capString = "";
sepString * 256;
sepString * "+";
capString * 256;
capString * "| Model";
for (k=0; k<maxModelWidth; k=k+1)
{
sepString * "-";
}
for (k=0; k<maxModelWidth-6; k=k+1)
{
capString * " ";
}
capString * "| Log Likelihood | #prms | AIC Score | c-AIC Score | Tree Length |\n";
sepString * "+----------------+-------+-----------+-------------+-------------+\n";
sepString * 0;
capString * 0;
branchLengthStash = 0;
SKIP_MODEL_PARAMETER_LIST = 0;
#include "TemplateModels/modelParameters2.mdl";
if (modelType == 1)
{
#include "TemplateModels/defineGamma.mdl";
}
if (modelType == 2)
{
#include "TemplateModels/defineHM.mdl";
}
SKIP_MODEL_PARAMETER_LIST = 1;
SetDialogPrompt ("Please load an amino-acid data file:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,1);
fprintf (stdout,"\nRunning aminoacid model comparisons on ", LAST_FILE_PATH, "\n\nThe alignment has ",ds.species, " sequences and ", ds.sites, " sites\n");
_DO_TREE_REBALANCE_ = 1;
#include "queryTree.bf";
resultMatrix = {modelCount, 5};
fprintf (stdout, "\n",sepString,capString,sepString);
bestAIC = 1e100;
bestCAIC = 1e100;
bestAICidx = 0;
bestCAICidx = -1;
for (mid=0; mid<modelCount; mid=mid+1)
{
runAModel (modelMatrixList[mid][0], modelMatrixList[mid][1], 0+modelMatrixList[mid][2], mid);
}
fprintf (stdout, "\n\nBest AIC model:\n\t", modelMatrixList[bestAICidx][0], " with the score of ", bestAIC);
if (bestCAICidx>=0)
{
fprintf (stdout, "\n\nBest c-AIC model:\n\t", modelMatrixList[bestCAICidx][0], " with the score of ", bestCAIC);
}
labelMatrix = {{"Log-likelihood","Parameters","AIC","c-AIC","Total tree length",""}};
aaString = "Model";
for (fC = 0; fC < modelCount; fC = fC+1)
{
aaString = aaString + ";" + modelMatrixList[fC][0];
}
USE_LAST_RESULTS = 0;
labelMatrix[5] = aaString;
skipCodeSelectionStep = 0;
OpenWindow (CHARTWINDOW,{{"Model Fits"}
{"labelMatrix"},
{"resultMatrix"},
{"Bar Chart"},
{"Index"},
{"c-AIC"},
{"Model Index"},
{""},
{"AIC"}
},
"SCREEN_WIDTH-60;SCREEN_HEIGHT-60;30;30");
+ +
+ +
+ +Jump to Line + + +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + +
+ + + + diff --git a/samples/HyPhy/AnalyzeCodonData.bf b/samples/HyPhy/AnalyzeCodonData.bf new file mode 100644 index 00000000..27280bbc --- /dev/null +++ b/samples/HyPhy/AnalyzeCodonData.bf @@ -0,0 +1,1031 @@ + + + + + + + + + + + + hyphy/AnalyzeCodonData.bf at master · veg/hyphy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content +
+ + + + + + + + + + + + +
+
+
+ +
+
+
+ +
    + +
  • +
    + +
    + + + + Watch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /hyphy + + + + + +

+
+
+ +
+
+ +
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +

You can clone with + HTTPS, SSH, or Subversion. + + + +

+ + + + Clone in Desktop + + + + + + + Download ZIP + +
+
+ +
+ + + + + + +
+ +
+ + + branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ Fetching contributors… +
+ +
+

+

Cannot retrieve contributors at this time

+
+
+
+
+
+ +
+ Raw + Blame + History +
+ + + + + +
+ +
+
+ +
+ +
+ 54 lines (36 sloc) + + 1.285 kb +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NICETY_LEVEL = 3;
#include "TemplateModels/chooseGeneticCode.def";
#include "simpleBootstrap.bf";
SetDialogPrompt ("Please specify a codon data file:");
COUNT_GAPS_IN_FREQUENCIES = 0;
VERBOSITY_LEVEL = 1;
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
fprintf (stdout,"\n______________READ THE FOLLOWING DATA______________\n",ds);
SelectTemplateModel(filteredData);
_DO_TREE_REBALANCE_ = 1;
#include "queryTree.bf";
if (modelType)
{
ChoiceList (branchLengths, "Branch Lengths", 1, SKIP_NONE,
"Estimate", "Estimate branch lengths by ML",
"Proportional to input tree", "Branch lengths are proportional to those in input tree");
if (branchLengths < 0)
{
return;
}
if (branchLengths == 1)
{
global treeScaler = 1;
ReplicateConstraint ("this1.?.?:=treeScaler*this2.?.?__", givenTree, givenTree);
}
}
LikelihoodFunction lf = (filteredData,givenTree);
Optimize (res,lf);
fprintf (stdout, "\n______________RESULTS______________\n",lf);
/* compute syn and non-syn stencils for current genetic code */
#include "categoryEcho.bf";
GetString (sendMeBack,lf,-1);
sendMeBack["LogL"] = res[1][0];
sendMeBack["NP"] = res[1][1];
return sendMeBack;
+ +
+ +
+ +Jump to Line + + +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + +
+ + + + diff --git a/samples/HyPhy/AnalyzeDiNucData.bf b/samples/HyPhy/AnalyzeDiNucData.bf new file mode 100644 index 00000000..833c79d7 --- /dev/null +++ b/samples/HyPhy/AnalyzeDiNucData.bf @@ -0,0 +1,931 @@ + + + + + + + + + + + + hyphy/AnalyzeDiNucData.bf at master · veg/hyphy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content +
+ + + + + + + + + + + + +
+
+
+ +
+
+
+ +
    + +
  • +
    + +
    + + + + Watch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /hyphy + + + + + +

+
+
+ +
+
+ +
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +

You can clone with + HTTPS, SSH, or Subversion. + + + +

+ + + + Clone in Desktop + + + + + + + Download ZIP + +
+
+ +
+ + + + + + +
+ +
+ + + branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ Fetching contributors… +
+ +
+

+

Cannot retrieve contributors at this time

+
+
+
+
+
+ +
+ Raw + Blame + History +
+ + + + + +
+ +
+
+ +
+ +
+ 29 lines (15 sloc) + + 0.661 kb +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SetDialogPrompt ("Please specify a di-nucleotide (e.g. stem RNA) file:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,2);
fprintf (stdout,"\n______________READ THE FOLLOWING DATA______________\n",ds);
SelectTemplateModel(filteredData);
_DO_TREE_REBALANCE_ = 1;
#include "queryTree.bf";
LikelihoodFunction lf = (filteredData,givenTree);
timer = Time(0);
USE_ADAPTIVE_VARIABLE_STEP = 0;
Optimize (res,lf);
timer = Time(0)-timer;
fprintf (stdout, "\n______________RESULTS______________\nTime taken = ", timer, " seconds\nAIC Score = ",
2(res[1][1]-res[1][0]),"\n",lf);
#include "categoryEcho.bf";
+ +
+ +
+ +Jump to Line + + +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + +
+ + + + diff --git a/samples/HyPhy/AnalyzeNucProtData.bf b/samples/HyPhy/AnalyzeNucProtData.bf new file mode 100644 index 00000000..710cb4b6 --- /dev/null +++ b/samples/HyPhy/AnalyzeNucProtData.bf @@ -0,0 +1,931 @@ + + + + + + + + + + + + hyphy/AnalyzeNucProtData.bf at master · veg/hyphy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content +
+ + + + + + + + + + + + +
+
+
+ +
+
+
+ +
    + +
  • +
    + +
    + + + + Watch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /hyphy + + + + + +

+
+
+ +
+
+ +
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +

You can clone with + HTTPS, SSH, or Subversion. + + + +

+ + + + Clone in Desktop + + + + + + + Download ZIP + +
+
+ +
+ + + + + + +
+ +
+ + + branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ Fetching contributors… +
+ +
+

+

Cannot retrieve contributors at this time

+
+
+
+
+
+ +
+ Raw + Blame + History +
+ + + + + +
+ +
+
+ +
+ +
+ 29 lines (18 sloc) + + 0.868 kb +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_Genetic_Code = 0;
ExecuteAFile("simpleBootstrap.bf");
SetDialogPrompt ("Please specify a nucleotide or amino-acid data file:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,1);
fprintf (stdout,"\n______________READ THE FOLLOWING DATA______________\n",ds);
SelectTemplateModel(filteredData);
_DO_TREE_REBALANCE_ = 1;
ExecuteAFile ("queryTree.bf");
LikelihoodFunction lf = (filteredData,givenTree);
timer = Time(0);
Optimize (res,lf);
timer = Time(0)-timer;
fprintf (stdout, "\n______________RESULTS______________\nTime taken = ", timer, " seconds\nAIC Score = ",
2(res[1][1]-res[1][0]),"\n",lf);
ExecuteAFile ("categoryEcho.bf");
GetString (lfInfo, lf, -1);
return {"Log(L)": res[1][0], "DF": res[1][1], "Tree": Format (givenTree,1,1)}
+ +
+ +
+ +Jump to Line + + +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + +
+ + + + diff --git a/samples/HyPhy/BS2007.bf b/samples/HyPhy/BS2007.bf new file mode 100644 index 00000000..d49327e5 --- /dev/null +++ b/samples/HyPhy/BS2007.bf @@ -0,0 +1,1999 @@ + + + + + + + + + + + + hyphy/BS2007.bf at master · veg/hyphy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content +
+ + + + + + + + + + + + +
+
+
+ +
+
+
+ +
    + +
  • +
    + +
    + + + + Watch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /hyphy + + + + + +

+
+
+ +
+
+ +
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +

You can clone with + HTTPS, SSH, or Subversion. + + + +

+ + + + Clone in Desktop + + + + + + + Download ZIP + +
+
+ +
+ + + + + + +
+ +
+ + + branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ Fetching contributors… +
+ +
+

+

Cannot retrieve contributors at this time

+
+
+
+
+
+ +
+ Raw + Blame + History +
+ + + + + +
+ +
+
+ +
+ +
+ 296 lines (239 sloc) + + 9.281 kb +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
/* 1. include a file to define the genetic code
Note the use of base directory and path forming variables to make this analysis
independent of directory placement
*/
incFileName = HYPHY_LIB_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def";
ExecuteCommands ("#include \""+incFileName+"\";");
/* 2. load a codon partition */
SetDialogPrompt ("Please locate a coding alignment:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
coding_path = LAST_FILE_PATH;
fprintf (stdout, "\nLoaded a ", filteredData.species, " sequence alignment with ", filteredData.sites, " codons from\n",coding_path,"\n");
/* 3. include a file to prompt for a tree */
incFileName = HYPHY_LIB_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"queryTree.bf";
ExecuteCommands ("#include \""+incFileName+"\";");
/* 4. Compute nucleotide counts by position for the F3x4 estimator */
COUNT_GAPS_IN_FREQUENCIES = 0;
HarvestFrequencies (baseFreqs,filteredData,3,1,1);
COUNT_GAPS_IN_FREQUENCIES = 1;
fprintf (stdout, "\nBase composition:\n\tA: ", Format (baseFreqs[0][0],10,5),",",Format (baseFreqs[0][1],10,5),",",Format (baseFreqs[0][2],10,5),
"\n\tC: ", Format (baseFreqs[1][0],10,5),",",Format (baseFreqs[1][1],10,5),",",Format (baseFreqs[1][2],10,5),
"\n\tG: ", Format (baseFreqs[2][0],10,5),",",Format (baseFreqs[2][1],10,5),",",Format (baseFreqs[2][2],10,5),
"\n\tT: ", Format (baseFreqs[3][0],10,5),",",Format (baseFreqs[3][1],10,5),",",Format (baseFreqs[3][2],10,5), "\n");
/* 6. define the GY94 rate matrix; for now each branch will have it's own
dS and dN, we will constrain them later */
global kappa_inv = 1;
ModelMatrixDimension = 64;
for (h = 0; h<64; h=h+1)
{
if (_Genetic_Code[h]==10) /* stop codon */
{
ModelMatrixDimension = ModelMatrixDimension-1;
}
}
GY_Matrix = {ModelMatrixDimension,ModelMatrixDimension};
hshift = 0;
for (h=0; h<64; h=h+1)
{
if (_Genetic_Code[h]==10)
{
hshift = hshift+1;
}
else
{
vshift = hshift;
for (v = h+1; v<64; v=v+1)
{
diff = v-h;
if (_Genetic_Code[v]==10)
{
vshift = vshift+1;
}
else
{
if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) /* one step */
{
if (h$4==v$4)
{
transition = v%4;
transition2= h%4;
}
else
{
if(diff%16==0)
{
transition = v$16;
transition2= h$16;
}
else
{
transition = v%16$4;
transition2= h%16$4;
}
}
if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) /* synonymous */
{
if (Abs(transition-transition2)%2) /* transversion */
{
GY_Matrix[h-hshift][v-vshift] := kappa_inv*synRate;
GY_Matrix[v-vshift][h-hshift] := kappa_inv*synRate;
}
else
{
GY_Matrix[h-hshift][v-vshift] := synRate;
GY_Matrix[v-vshift][h-hshift] := synRate;
}
}
else
{
if (Abs(transition-transition2)%2) /* transversion */
{
GY_Matrix[h-hshift][v-vshift] := kappa_inv*nonSynRate;
GY_Matrix[v-vshift][h-hshift] := kappa_inv*nonSynRate;
}
else
{
GY_Matrix[h-hshift][v-vshift] := nonSynRate;
GY_Matrix[v-vshift][h-hshift] := nonSynRate;
}
}
}
}
}
}
}
/*8. build codon frequencies (use the F3x4 estimator) */
PIStop = 1.0;
codonFreqs = {ModelMatrixDimension,1};
hshift = 0;
for (h=0; h<64; h=h+1)
{
first = h$16;
second = h%16$4;
third = h%4;
if (_Genetic_Code[h]==10)
{
hshift = hshift+1;
PIStop = PIStop-baseFreqs[first][0]*baseFreqs[second][1]*baseFreqs[third][2];
continue;
}
codonFreqs[h-hshift]=baseFreqs[first][0]*baseFreqs[second][1]*baseFreqs[third][2];
}
codonFreqs = codonFreqs*(1.0/PIStop);
/*9. define the codon model */
Model GY_Model = (GY_Matrix,codonFreqs,1);
/*10. Define the tree and pick the foreground branch, displaying a tree window to facilitate selection;
the latter step is executed for 2 of 3 model choices */
Tree givenTree1 = treeString;
Tree givenTree2 = treeString;
Tree givenTree3 = treeString;
Tree givenTree4 = treeString;
USE_LAST_RESULTS = 0;
OPTIMIZATION_METHOD = 4;
/* Approximate kappa and branch lengths using an HKY85 fit */
HKY85_Matrix = {{*,t*kappa_inv,t,t*kappa_inv}
{t*kappa_inv,*,kappa_inv*t,t}
{t,t*kappa_inv,*,kappa_inv*t}
{t*kappa_inv,t,kappa_inv*t,*}};
HarvestFrequencies (nucFreqs,ds,1,1,1);
Model HKY85_Model = (HKY85_Matrix,nucFreqs,1);
Tree nucTree = treeString;
DataSetFilter nucData = CreateFilter (ds,1);
fprintf (stdout, "Obtaining nucleotide branch lengths and kappa to be used as starting values...\n");
LikelihoodFunction nuc_lf = (nucData,nucTree);
Optimize (nuc_mle,nuc_lf);
fprintf (stdout, "\n", Format (nucTree,1,1), "\nkappa=", Format (1/kappa_inv,8,3), "\n");
USE_LAST_RESULTS = 1;
mxTreeSpec = {5,1};
mxTreeSpec [0] = "nucTree";
mxTreeSpec [1] = "8240";
mxTreeSpec [2] = "10,40,-10,-175,1";
mxTreeSpec [3] = "";
mxTreeSpec [4] = "";
OpenWindow (TREEWINDOW, mxTreeSpec,"(SCREEN_WIDTH-50)/2;(SCREEN_HEIGHT-50)/2;30+(SCREEN_WIDTH-30)/2;45");
leafNodes = TipCount (givenTree);
internalNodes = BranchCount(givenTree);
choiceMatrix = {internalNodes+leafNodes,2};
for (bc=0; bc<internalNodes; bc=bc+1)
{
choiceMatrix[bc][0] = BranchName(givenTree,bc);
choiceMatrix[bc][1] = "Internal Branch Rooting " + givenTree[bc];
}
for (bc=0; bc<leafNodes; bc=bc+1)
{
choiceMatrix[bc+internalNodes][0] = TipName(givenTree,bc);
choiceMatrix[bc+internalNodes][1] = "Leaf node " + choiceMatrix[bc+internalNodes][0];
}
ChoiceList (stOption,"Choose the foreground branch",0,NO_SKIP,choiceMatrix);
if (stOption[0] < 0)
{
return -1;
}
fprintf (stdout, "\n\n", Columns (stOption)," foreground branch(es) set to: ", "\n");
for (bc = 0; bc < Columns (stOption); bc = bc + 1)
{
fprintf (stdout, choiceMatrix[stOption[bc]][0], "\n");
}
OpenWindow (CLOSEWINDOW, "Tree nucTree");
/* 15. Constrain dS and dN in the tree to based upon different models */
global omega_1 = 0.25;
global omega_2 = 0.5;
global omega_3 = 1.5;
omega_1 :< 1;
omega_2 :< 1;
omega_3 :> 1;
ClearConstraints (givenTree1);
ClearConstraints (givenTree2);
ClearConstraints (givenTree3);
ClearConstraints (givenTree4);
/* 16. define and optimize the likelihood function */
bNames = BranchName (givenTree,-1);
nucBL = BranchLength (nucTree,-1);
for (bc=0; bc<Columns(bNames)-1; bc=bc+1)
{
ExecuteCommands ("givenTree1."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree1."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree2."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree2."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree3."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree3."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree4."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree4."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
}
codBL = BranchLength (givenTree1,-1);
for (bc=0; bc<Columns(bNames)-1; bc=bc+1)
{
if (nucBL[bc]>0)
{
scalingFactor = nucBL[bc]/codBL[bc];
ExecuteCommands ("givenTree1."+bNames[bc]+".synRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree1."+bNames[bc]+".nonSynRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree2."+bNames[bc]+".synRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree2."+bNames[bc]+".nonSynRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree3."+bNames[bc]+".synRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree3."+bNames[bc]+".nonSynRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree4."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree4."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
}
}
for (bc = 0; bc < Columns (stOption); bc = bc + 1)
{
bName = choiceMatrix[stOption[bc]][0];
ExecuteCommands ("givenTree1."+bName+".nonSynRate:=omega_1*givenTree1."+bName+".synRate");
ExecuteCommands ("givenTree2."+bName+".nonSynRate:=omega_2*givenTree2."+bName+".synRate");
ExecuteCommands ("givenTree3."+bName+".nonSynRate:=givenTree3."+bName+".synRate");
ExecuteCommands ("givenTree4."+bName+".nonSynRate:=omega_3*givenTree4."+bName+".synRate");
}
OPTIMIZATION_PRECISION = 0.001;
global P_1 = 1/4;
global P_2 = 1/3;
global P_3 = 1/2;
P_1 :< 1;
P_2 :< 1;
P_3 :< 1;
fprintf (stdout, "\nFitting the model with selection...\n");
LikelihoodFunction lf = (filteredData, givenTree1, filteredData, givenTree2,filteredData, givenTree3,filteredData, givenTree4,
"Log(P_1*SITE_LIKELIHOOD[0]+(1-P_1)*P_2*SITE_LIKELIHOOD[1]+(1-P_1)(1-P_2)*P_3*SITE_LIKELIHOOD[2]+(1-P_1)(1-P_2)(1-P_3)*SITE_LIKELIHOOD[3])");
Optimize (mles,lf);
fprintf (stdout, lf);
+ +
+ +
+ +Jump to Line + + +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + +
+ + + + diff --git a/samples/HyPhy/MatrixIndexing.bf b/samples/HyPhy/MatrixIndexing.bf new file mode 100755 index 00000000..aa1344d4 --- /dev/null +++ b/samples/HyPhy/MatrixIndexing.bf @@ -0,0 +1 @@ +fprintf (stdout, "\n1). Spawning a zero-populated 5x6 matrix and setting it's values to random numbers in [0,1].\n"); aMatrix = {5,6}; aMatrix = aMatrix ["Random(0,1)"]; fprintf (stdout, aMatrix, "\n"); fprintf (stdout, "\n2). Accessing a second-row third-column element and a random element.\n\n"); r = Random (0, Rows(aMatrix))$1; c = Random (0, Columns(aMatrix))$1; fprintf (stdout, "matrix[1][2]=", aMatrix[1][2], "\nmatrix[", r , "][" , c, "]=", aMatrix[r][c], "\n"); fprintf (stdout, "\n3). Accessing the fourth row.\n\n"); fprintf (stdout, "matrix[3][-1]=\n", aMatrix[3][-1],"\n"); fprintf (stdout, "\n4). Accessing the first column.\n\n"); fprintf (stdout, "matrix[-1][0]=\n", aMatrix[-1][0],"\n"); fprintf (stdout, "\n5). Populating a matrix template (below the diagonal).\n\n"); template={5,6}; template=template["_MATRIX_ELEMENT_ROW_>_MATRIX_ELEMENT_COLUMN_"]; fprintf (stdout, template ,"\n"); fprintf (stdout, "\n6). Extracting (by row) matrix elements using the template.\n\n"); fprintf (stdout, aMatrix[template] ,"\n"); fprintf (stdout, "\n7). Extracting a submatrix: top left corner at (1,1) - bottom right corner at (3,2).\n\n"); fprintf (stdout, "matrix[{{1,1}}][{{3,2}}]=\n", aMatrix[{{1,1}}][{{3,2}}],"\n"); fprintf (stdout, "\n8). Returning a matrix in which all elements are squared and above diagonal elements are further increased by 1.\n\n"); fprintf (stdout, "\n", aMatrix["_MATRIX_ELEMENT_VALUE_^2+(_MATRIX_ELEMENT_ROW_<_MATRIX_ELEMENT_COLUMN_)"],"\n"); \ No newline at end of file diff --git a/samples/HyPhy/profile_test.bf b/samples/HyPhy/profile_test.bf new file mode 100755 index 00000000..64cee8b2 --- /dev/null +++ b/samples/HyPhy/profile_test.bf @@ -0,0 +1 @@ +#profile START; s = 0; m = {5,1}; for (k=0; k<250000; k=k+1) { s = s + k; t = Random (0,5); m [t] = m [t] + 1; } #profile PAUSE; s2 = 0; for (k=1; k<10000; k=k+1) { s2 = s2+1/k; } #profile _hyphy_profile_dump; stats = _hyphy_profile_dump["STATS"]; _profile_summer = {1,Rows(stats)}; _profile_summer = _profile_summer["1"] * stats; _instructions = _hyphy_profile_dump["INSTRUCTION"]; _indices = _hyphy_profile_dump["INSTRUCTION INDEX"]; fprintf (stdout, "\nTotal run time (seconds) : ", Format(_profile_summer[1]/1000000,15,6), "\nTotal number of steps : ", Format(_profile_summer[0],15,0), "\n\n"); for (k=0; k Date: Thu, 30 Apr 2015 16:07:19 -0700 Subject: [PATCH 446/875] removing incorrect samples --- samples/HyPhy/454.bf | 2988 --------------------------- samples/HyPhy/AAModelComparison.bf | 1827 ---------------- samples/HyPhy/AnalyzeCodonData.bf | 1031 --------- samples/HyPhy/AnalyzeDiNucData.bf | 931 --------- samples/HyPhy/AnalyzeNucProtData.bf | 931 --------- samples/HyPhy/BS2007.bf | 1999 ------------------ 6 files changed, 9707 deletions(-) delete mode 100644 samples/HyPhy/454.bf delete mode 100644 samples/HyPhy/AAModelComparison.bf delete mode 100644 samples/HyPhy/AnalyzeCodonData.bf delete mode 100644 samples/HyPhy/AnalyzeDiNucData.bf delete mode 100644 samples/HyPhy/AnalyzeNucProtData.bf delete mode 100644 samples/HyPhy/BS2007.bf diff --git a/samples/HyPhy/454.bf b/samples/HyPhy/454.bf deleted file mode 100644 index 40c867bd..00000000 --- a/samples/HyPhy/454.bf +++ /dev/null @@ -1,2988 +0,0 @@ - - - - - - - - - - - - hyphy/454.bf at master · veg/hyphy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -
- - - - - - - - - - - - -
-
-
- -
-
-
- -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /hyphy - - - - - -

-
-
- -
-
- -
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -

You can clone with - HTTPS, SSH, or Subversion. - - - -

- - - - Clone in Desktop - - - - - - - Download ZIP - -
-
- -
- - - - - - -
- -
- - - branch: - master - - - -
- -
- - - - -
- - -
- - -
- - - - -
- -
-
-
- -
- Raw - Blame - History -
- - - - - -
- -
-
- -
- -
- 538 lines (451 sloc) - - 14.93 kb -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ExecuteAFile ("Utility/GrabBag.bf");
ExecuteAFile ("Utility/DBTools.ibf");
alignOptions = {};
SetDialogPrompt ("Sequence File:");
DataSet unal = ReadDataFile (PROMPT_FOR_FILE);
BASE_FILE_PATH = LAST_FILE_PATH;
DB_FILE_PATH = LAST_FILE_PATH + ".db";
ANALYSIS_DB_ID = _openCacheDB (DB_FILE_PATH);
haveTable = _TableExists (ANALYSIS_DB_ID, "SETTINGS");
if (haveTable)
{
existingSettings = _ExecuteSQL (ANALYSIS_DB_ID, "SELECT * FROM SETTINGS");
}
if (Abs(existingSettings))
{
existingSettings = existingSettings [0];
ExecuteCommands ("_Genetic_Code = " + existingSettings["GENETIC_CODE"]);
ExecuteCommands (existingSettings["OPTIONS"] ^ {{"_hyphyAssociativeArray","alignOptions"}});
masterReferenceSequence = existingSettings["REFERENCE"];
dbSequences = _ExecuteSQL (ANALYSIS_DB_ID, "SELECT SEQUENCE_ID FROM SEQUENCES WHERE STAGE = 0");
unalSequenceCount = Abs(dbSequences);
toDoSequences = {unalSequenceCount,1};
for (k = 0; k < unalSequenceCount; k=k+1)
{
toDoSequences[k] = (dbSequences[k])["SEQUENCE_ID"];
}
dbSequences = 0;
fprintf (stdout, "[PHASE 1] Reloaded ", unalSequenceCount, " unprocessed sequences\n");
}
else
{
tableDefines = {};
tableDefines ["SETTINGS"] = {};
(tableDefines ["SETTINGS"])["RUN_DATE"] = "DATE";
(tableDefines ["SETTINGS"])["OPTIONS"] = "TEXT";
(tableDefines ["SETTINGS"])["REFERENCE"] = "TEXT";
(tableDefines ["SETTINGS"])["GENETIC_CODE"] = "TEXT";
(tableDefines ["SETTINGS"])["THRESHOLD"] = "REAL";
tableDefines ["SEQUENCES"] = {};
(tableDefines ["SEQUENCES"])["SEQUENCE_ID"] = "TEXT UNIQUE";
(tableDefines ["SEQUENCES"])["LENGTH"] = "INTEGER";
(tableDefines ["SEQUENCES"])["STAGE"] = "INTEGER";
/*
0 - initial import
1 - in frame without a fix
2 - one frame shift / fixed
3 - out-of-frame; not fixed / not aligned
*/
(tableDefines ["SEQUENCES"])["RAW"] = "TEXT";
(tableDefines ["SEQUENCES"])["ALIGNED_AA"] = "TEXT"; /* aligned aa. sequence */
(tableDefines ["SEQUENCES"])["ALIGNED"] = "TEXT"; /* aligned nucleotide sequence */
(tableDefines ["SEQUENCES"])["OFFSET"] = "INTEGER"; /* start offset w.r.t the reference sequence */
(tableDefines ["SEQUENCES"])["END_OFFSET"] = "INTEGER"; /* end offset w.r.t the reference sequence */
(tableDefines ["SEQUENCES"])["SCORE"] = "REAL";
(tableDefines ["SEQUENCES"])["FRAME"] = "INTEGER";
_CreateTableIfNeeded (ANALYSIS_DB_ID, "SETTINGS", tableDefines["SETTINGS"], 0);
_CreateTableIfNeeded (ANALYSIS_DB_ID, "SEQUENCES", tableDefines["SEQUENCES"], 1);
/* START ALIGNMENT SETTINGS */
LoadFunctionLibrary ("SeqAlignShared.ibf");
DataSetFilter filteredData = CreateFilter (unal,1);
GetInformation (UnalignedSeqs,filteredData);
/* preprocess sequences */
unalSequenceCount = Rows(UnalignedSeqs)*Columns(UnalignedSeqs);
GetString (sequenceNames, unal, -1);
longestSequence = 0;
longestSequenceIDX = 0;
seqRecord = {};
fprintf (stdout, "[PHASE 1] Initial Processing of ", unalSequenceCount, " sequences\n");
for (seqCounter = 0; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
UnalignedSeqs[seqCounter] = UnalignedSeqs[seqCounter]^{{"[^a-zA-Z]",""}};
UnalignedSeqs[seqCounter] = UnalignedSeqs[seqCounter]^{{"^N+",""}};
UnalignedSeqs[seqCounter] = UnalignedSeqs[seqCounter]^{{"N+$",""}};
seqRecord ["SEQUENCE_ID"] = sequenceNames[seqCounter];
seqRecord ["LENGTH"] = Abs (UnalignedSeqs[seqCounter]);
seqRecord ["STAGE"] = 0;
seqRecord ["RAW"] = UnalignedSeqs[seqCounter];
if (doLongestSequence)
{
if (doLongestSequence == 1 || seqCounter != unalSequenceCount-1)
{
if (Abs (UnalignedSeqs[seqCounter]) > longestSequence)
{
longestSequence = Abs (UnalignedSeqs[seqCounter]);
longestSequenceIDX = seqCounter;
}
}
}
_InsertRecord (ANALYSIS_DB_ID, "SEQUENCES", seqRecord);
SetParameter (STATUS_BAR_STATUS_STRING, "Initial processing ("+seqCounter+"/"+unalSequenceCount+" done)",0);
}
if (refSeq == 0)
{
masterReferenceSequence = UnalignedSeqs[0];
}
if (doLongestSequence)
{
fprintf (stdout, "\nSelected sequence ", sequenceNames[longestSequenceIDX], " as reference.");
masterReferenceSequence = UnalignedSeqs[longestSequenceIDX];
}
incFileName = HYPHY_LIB_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def";
ExecuteCommands ("#include \""+incFileName+"\";");
doLongestSequence = (refSeq==1);
aRecord = {};
aRecord["RUN_DATE"] = _ExecuteSQL(ANALYSIS_DB_ID,"SELECT DATE('NOW') AS CURRENT_DATE");
aRecord["RUN_DATE"] = ((aRecord["RUN_DATE"])[0])["CURRENT_DATE"];
aRecord["OPTIONS"] = "" + alignOptions;
aRecord["REFERENCE"] = masterReferenceSequence;
aRecord["GENETIC_CODE"] = "" + _Genetic_Code;
_InsertRecord (ANALYSIS_DB_ID, "SETTINGS", aRecord);
toDoSequences = sequenceNames;
UnalignedSequences = 0;
}
skipOutliers = 1;
doRC = 1;
/* build codon translation table */
codonToAAMap = {};
codeToAA = "FLIMVSPTAYXHQNKDECWRG";
nucChars = "ACGT";
for (p1=0; p1<64; p1=p1+1)
{
codon = nucChars[p1$16]+nucChars[p1%16$4]+nucChars[p1%4];
ccode = _Genetic_Code[p1];
codonToAAMap[codon] = codeToAA[ccode];
}
/* determine reading frames */
ProteinSequences = {};
AllTranslations = {};
ReadingFrames = {};
StopCodons = {};
StopPositions = {};
RC = {};
fprintf (stdout, "\n[PHASE 2] Detecting reading frames for each unprocessed sequence...\n");
frameCounter = {3,2};
stillHasStops = {};
aRecord = {};
for (seqCounter = 0; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
rawSeq = (_ExecuteSQL(ANALYSIS_DB_ID,"SELECT RAW FROM SEQUENCES WHERE SEQUENCE_ID = '" + toDoSequences[seqCounter] + "'"));
aSeq = (rawSeq[0])["RAW"];
seqLen = Abs(aSeq)-2;
minStops = 1e20;
tString = "";
rFrame = 0;
rrc = 0;
allTran = {3,2};
stopPosn = {6,2};
for (rc = 0; rc<=doRC; rc = rc+1)
{
if (rc)
{
aSeq = nucleotideReverseComplement (aSeq)
}
for (offset = 0; offset < 3; offset = offset+1)
{
translString = "";
translString * (seqLen/3+1);
for (seqPos = offset; seqPos < seqLen; seqPos = seqPos+3)
{
codon = aSeq[seqPos][seqPos+2];
prot = codonToAAMap[codon];
if (Abs(prot))
{
translString * prot;
}
else
{
translString * "?";
}
}
translString * 0;
translString = translString^{{"X$","?"}};
stopPos = translString||"X";
if (stopPos[0]>=0)
{
stopCount = Rows(stopPos)$2;
stopPosn[3*rc+offset][0] = stopPos[0];
stopPosn[3*rc+offset][1] = stopPos[stopCount*2-1];
}
else
{
stopCount = 0;
}
if (stopCount<minStops)
{
minStops = stopCount;
rFrame = offset;
rrc = rc;
tString = translString;
}
allTran[offset][rc] = translString;
}
}
ReadingFrames [seqCounter] = rFrame;
ProteinSequences [seqCounter] = tString;
frameCounter [rFrame][rrc] = frameCounter[rFrame][rrc]+1;
StopPositions [seqCounter] = stopPosn;
AllTranslations [seqCounter] = allTran;
RC [seqCounter] = rrc;
SetParameter (STATUS_BAR_STATUS_STRING, "Reading frame analysis ("+seqCounter+"/"+unalSequenceCount+" done)",0);
}
_closeCacheDB (ANALYSIS_DB_ID);
return 0;
s1 = ProteinSequences[0];
fprintf (stdout, "\nFound:\n\t", frameCounter[0], " sequences in reading frame 1\n\t",frameCounter[1], " sequences in reading frame 2\n\t",frameCounter[2], " sequences in reading frame 3\n\nThere were ", Abs(stillHasStops), " sequences with apparent frameshift/sequencing errors\n");
skipSeqs = {};
for (k=0; k<Abs(stillHasStops); k=k+1)
{
seqCounter = stillHasStops[k];
seqName = sequenceNames[seqCounter];
fprintf (stdout,"Sequence ", seqCounter+1, " (", seqName, ") seems to have");
stopPosn = StopPositions[seqCounter];
fStart = -1;
fEnd = -1;
fMin = 1e10;
frame1 = 0;
frame2 = 0;
checkFramePosition (stopPosn[0][1],stopPosn[1][0],0,1);
checkFramePosition (stopPosn[1][1],stopPosn[0][0],1,0);
checkFramePosition (stopPosn[0][1],stopPosn[2][0],0,2);
checkFramePosition (stopPosn[2][1],stopPosn[0][0],2,0);
checkFramePosition (stopPosn[2][1],stopPosn[1][0],2,1);
checkFramePosition (stopPosn[1][1],stopPosn[2][0],1,2);
if (fStart>=0)
{
allTran = AllTranslations[seqCounter];
useq = UnalignedSeqs[seqCounter];
fprintf (stdout, " a shift from frame ", frame2+1, " to frame ", frame1+1, " between a.a. positions ", fStart, " and ", fEnd, ".");
fStart2 = Max(fStart-1,0);
fEnd2 = Min(fEnd+1,Min(Abs(allTran[frame1]),Abs(allTran[frame2]))-1);
tempString = allTran[frame2];
fprintf (stdout, "\n\tRegion ", fStart2, "-", fEnd2, " in frame ", frame2+1, ":\n\t", tempString[fStart2][fEnd2]);
fprintf (stdout, "\n\t", useq[3*fStart2+frame2][3*fEnd2+frame2-1]);
tempString = allTran[frame1];
fprintf (stdout, "\n\tRegion ", fStart2, "-", fEnd2, " in frame ", frame1+1, ":\n\t", tempString[fStart2][fEnd2]);
fprintf (stdout, "\n\t", useq[3*fStart2+frame1][3*fEnd2+frame1-1]);
fprintf (stdout, "\n\t\tAttempting to resolve by alignment to reference. ");
f1s = allTran[frame1];
f2s = allTran[frame2];
f1l = Abs(f1s);
bestScore = -1e10;
bestSplice = -1;
for (k2=fStart; k2<fEnd; k2=k2+1)
{
s2 = f2s[0][k2]+f1s[k2+1][Abs(f1s)];
inStr = {{s1,s2}};
AlignSequences(aligned, inStr, alignOptions);
aligned = aligned[0];
aligned = aligned[0];
if (aligned > bestScore)
{
bestScore = aligned;
bestSplice = k2;
bestString = s2;
}
}
fprintf (stdout, "Best splice site appears to be at a.a. position ", bestSplice, "\n");
/* update best spliced string */
ProteinSequences[seqCounter] = bestString;
ReadingFrames[seqCounter] = 0;
UnalignedSeqs[seqCounter] = useq[frame2][frame2+3*bestSplice+2] + useq[frame1+3*bestSplice+3][Abs(useq)-1] + "---";
}
else
{
fprintf (stdout, " multiple frameshifts\n");
skipSeqs[seqCounter] = 1;
}
}
SeqAlignments = {};
startingPosition = {unalSequenceCount,2};
refLength = Abs(ProteinSequences[0]);
refInsertions = {refLength,1};
fprintf (stdout,"\nPerforming pairwise alignment with reference sequences\n");
alignmentScores = {};
for (seqCounter = 1; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
if (skipSeqs[seqCounter] == 0)
{
s2 = ProteinSequences[seqCounter];
inStr = {{s1,s2}};
AlignSequences(aligned, inStr, alignOptions);
aligned = aligned[0];
SeqAlignments[seqCounter] = aligned;
alignmentScores[Abs(alignmentScores)] = aligned[0]/Abs(aligned[1]);
aligned = aligned[1];
myStartingPosition = aligned$"[^-]";
myEndingPosition = Abs (aligned)-1;
while (aligned[myEndingPosition]=="-")
{
myEndingPosition = myEndingPosition - 1;
}
myStartingPosition = myStartingPosition[0];
startingPosition[seqCounter][0] = myStartingPosition;
startingPosition[seqCounter][1] = myEndingPosition;
aligned = aligned[myStartingPosition][myEndingPosition];
refInsert = aligned||"-+";
if (refInsert[0]>0)
{
insCount = Rows (refInsert)/2;
offset = 0;
for (insN = 0; insN < insCount; insN = insN+1)
{
insPos = refInsert[insN*2];
insLength = refInsert[insN*2+1]-insPos+1;
insPos = insPos-offset;
if (refInsertions[insPos]<insLength)
{
refInsertions[insPos]=insLength;
}
offset = offset + insLength;
}
}
}
}
alignmentScoresM = avlToMatrix ("alignmentScores");
ExecuteAFile ("Utility/DescriptiveStatistics.bf");
distInfo = GatherDescriptiveStats (alignmentScoresM);
/*lowerCuttoff = 0.25;*/
distInfo["Mean"] - 2*distInfo["Std.Dev"];
/* produce a fully gapped reference sequence */
fprintf (stdout,"\nMerging pairwise alignments into a MSA\n");
fullRefSeq = "";
fullRefSeq * refLength;
fullRefSeq * (s1[0]);
s1N = UnalignedSeqs[0];
fullRefSeqN = "";
fullRefSeqN * (3*refLength);
fullRefSeqN * (s1N[0][2]);
frameShift = ReadingFrames[0];
for (seqCounter=1;seqCounter<refLength;seqCounter=seqCounter+1)
{
gapCount = refInsertions[seqCounter];
for (k=0; k<gapCount;k=k+1)
{
fullRefSeq*("-");
fullRefSeqN*("---");
}
fullRefSeq * (s1[seqCounter]);
fullRefSeqN * (s1N[frameShift+seqCounter*3][frameShift+seqCounter*3+2]);
}
fullRefSeq * 0;
fullRefSeqN * 0;
return 0;
refLength = Abs(fullRefSeq);
SetDialogPrompt ("Save alignment to:");
seqName=sequenceNames[0];
fprintf (PROMPT_FOR_FILE,CLEAR_FILE,">",seqName,"\n",fullRefSeq);
fName = LAST_FILE_PATH;
fNameC = fName+".nuc";
fprintf (fNameC,CLEAR_FILE,">",seqName,"\n",fullRefSeqN);
alCounter = 0;
for (seqCounter = 1; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
if (skipSeqs[seqCounter] == 0)
{
if (skipOutliers == 0 && alignmentScoresM[alCounter] < lowerCuttoff)
{
seqName=sequenceNames[seqCounter];
fprintf (stdout, "Sequence ", seqName ," was skipped because of a poor alignment score.\n");
skipSeqs[seqCounter] = 1;
alCounter = alCounter + 1;
continue;
}
alCounter = alCounter + 1;
seqName=sequenceNames[seqCounter];
aligned = SeqAlignments[seqCounter];
aligned1 = aligned[1];
aligned2 = aligned[2];
s2 = startingPosition[seqCounter][0];
e2 = startingPosition[seqCounter][1];
gappedSeq = "";
gappedSeq * Abs(aligned2);
k=0;
while (k<refLength)
{
while (fullRefSeq[k]!=aligned1[s2])
{
gappedSeq*("-");
k=k+1;
}
gappedSeq*(aligned2[s2]);
s2=s2+1;
k=k+1;
}
gappedSeq * 0;
gappedSeqN = "";
gappedSeqN * (3*Abs(aligned2));
frameShift = ReadingFrames[seqCounter];
s1N = UnalignedSeqs[seqCounter];
s2N = ProteinSequences[seqCounter];
s2 = startingPosition[seqCounter][0];
k = 0;
e2 = Abs(gappedSeq);
k = 0;
while (k<e2)
{
while ((s2N[s2]!=gappedSeq[k])&&(k<e2))
{
gappedSeqN * ("---");
k=k+1;
}
if (k<e2)
{
gappedSeqN * s1N[frameShift+s2*3][frameShift+s2*3+2];
s2 = s2+1;
k=k+1;
}
}
gappedSeqN * 0;
if (refSeq2 && seqCounter == unalSequenceCount-1)
{
fscanf (fName, "Raw", soFar);
fprintf (fName, CLEAR_FILE,">",seqName,"\n",gappedSeq,"\n",soFar);
fscanf (fNameC, "Raw", soFar);
fprintf (fNameC,CLEAR_FILE,">",seqName,"\n",gappedSeqN,"\n",soFar);
}
else
{
fprintf (fName,"\n>",seqName,"\n",gappedSeq);
fprintf (fNameC,"\n>",seqName,"\n",gappedSeqN);
}
}
}
if (Abs(skipSeqs))
{
fName = fName+".bad";
for (seqCounter = 1; seqCounter < unalSequenceCount; seqCounter = seqCounter+1)
{
if (skipSeqs[seqCounter])
{
seqName=sequenceNames[seqCounter];
fprintf (fName,">",seqName,"\n",UnalignedSeqs[seqCounter],"\n");
}
}
}
function checkFramePosition (pos1, pos2, fr1, fr2)
{
fSpan = pos2-pos1;
if (fSpan>1) /* first followed by second*/
{
if (fSpan < fMin)
{
fMin = fSpan;
frame1 = fr1;
frame2 = fr2;
fStart = pos1+1;
fEnd = pos2;
}
}
return 0;
}
- -
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - -
- - - - diff --git a/samples/HyPhy/AAModelComparison.bf b/samples/HyPhy/AAModelComparison.bf deleted file mode 100644 index 72b30a53..00000000 --- a/samples/HyPhy/AAModelComparison.bf +++ /dev/null @@ -1,1827 +0,0 @@ - - - - - - - - - - - - hyphy/AAModelComparison.bf at master · veg/hyphy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -
- - - - - - - - - - - - -
-
-
- -
-
-
- -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /hyphy - - - - - -

-
-
- -
-
- -
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -

You can clone with - HTTPS, SSH, or Subversion. - - - -

- - - - Clone in Desktop - - - - - - - Download ZIP - -
-
- -
- - - - - - -
- -
- - - branch: - master - - - -
- -
- - - - -
- - -
- - -
- Fetching contributors… -
- -
-

-

Cannot retrieve contributors at this time

-
-
-
-
-
- -
- Raw - Blame - History -
- - - - - -
- -
-
- -
- -
- 253 lines (199 sloc) - - 5.743 kb -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if (Rows (modelMatrixList) == 0)
{
modelMatrixList =
{
{"Equal Input", "EIAA.mdl", "19"}
{"Dayhoff","Dayhoff.mdl","0"}
{"Dayhoff+F","Dayhoff_F.mdl","19"}
{"JTT", "Jones.mdl", "0"}
{"JTT+F", "Jones_F.mdl", "19"}
{"WAG", "WAG.mdl", "0"}
{"WAG+F", "WAG_F.mdl", "19"}
{"rtREV", "rtREV.mdl", "0"}
{"rtREV+F", "rtREV_F.mdl", "19"}
{"mtMAM", "mtMAM.mdl", "0"}
{"mtMAM+F", "mtMAM_F.mdl", "19"}
{"mtREV 24", "mtREV_24.mdl", "0"}
{"mtREV 24+F", "mtREV_24_F.mdl", "19"}
{"HIV within", "HIVwithin.mdl", "0"}
{"HIV within+F", "HIVwithin+F.mdl", "19"}
{"HIV between", "HIVbetween.mdl", "0"}
{"HIV between+F", "HIVbetween+F.mdl", "19"}
{"REV-1 step", "reducedREV.mdl", "19"}
{"REV", "mtREV.mdl", "19"}
};
}
/*___________________________________________________________________________________________________________*/
function runAModel (modelID, fileName, xtraP, midx)
{
ExecuteCommands ("#include \"TemplateModels/"+fileName+"\";");
Tree givenTree = treeString;
LikelihoodFunction lf = (filteredData,givenTree);
GetString (lf_info, lf, -1);
locals = lf_info["Local Independent"];
if (Columns (branchLengthStash))
{
USE_LAST_RESULTS = 1;
for (_iv = 0; _iv < Columns (locals); _iv = _iv+1)
{
ExecuteCommands (locals[_iv] + "=1;\n");
}
currentBL = BranchLength (givenTree,0);
currentBN = BranchName (givenTree,-1);
for (_iv = 0; _iv < Columns (currentBN); _iv = _iv+1)
{
ExecuteCommands ("givenTree."+currentBN[_iv]+".t="+branchLengthStash[_iv]/currentBL+";");
}
}
else
{
for (_iv = 0; _iv < Columns (locals); _iv = _iv+1)
{
ExecuteCommands (locals[_iv] + "=0.1;\n");
}
USE_LAST_RESULTS = 1;
}
Optimize (res,lf);
fprintf (stdout, "| ", modelID);
for (k=0; k<maxModelWidth-Abs(modelID)-1; k=k+1)
{
fprintf (stdout, " ");
}
params = res[1][1]+xtraP;
AIC = 2(-res[1][0]+params);
if (filteredData.sites-params>1)
{
cAIC = 2(-res[1][0]+params*(filteredData.sites/(filteredData.sites-params-1)));
}
else
{
cAIC = 0;
}
branchLengths = BranchLength (givenTree,-1);
TL = 0;
for (k=Rows(branchLengths)*Columns(branchLengths)-1; k>=0; k=k-1)
{
TL = TL + branchLengths[k];
}
fprintf (stdout, "| ", Format (res[1][0],14,3), " | ", Format (params,5,0), " | ",
Format (AIC, 9,3), " | ",);
if (cAIC > 0)
{
fprintf (stdout, Format (cAIC,11,3), " | ");
}
else
{
fprintf (stdout, " N/A | ");
}
fprintf (stdout, Format (TL,11,3), " |\n", sepString);
resultMatrix[midx][0] = res[1][0];
resultMatrix[midx][1] = params;
resultMatrix[midx][2] = AIC;
resultMatrix[midx][3] = cAIC;
resultMatrix[midx][4] = TL;
if (AIC < bestAIC)
{
bestAIC = AIC;
bestAICidx = midx;
branchLengthStash = BranchLength (givenTree,-1);
}
if (cAIC > 0)
{
if (bestCAIC > cAIC)
{
bestCAIC = cAIC;
bestCAICidx = midx;
}
}
return 0;
}
/*___________________________________________________________________________________________________________*/
maxModelWidth = 7;
skipCodeSelectionStep = 0;
ChoiceList (doREV, "Include REV?", 1, SKIP_NONE, "Yes", "Include REV and reduced REV models. CAUTION: these models take a long time to fit.",
"No", "Only use empirical models");
if (doREV < 0)
{
return 0;
}
if (doREV == 0)
{
#include "TemplateModels/chooseGeneticCode.def";
skipCodeSelectionStep = 1;
}
modelCount = Rows (modelMatrixList) - 2*doREV;
for (k=0; k<modelCount; k=k+1)
{
maxModelWidth = Max(maxModelWidth,Abs (modelMatrixList[k][0])+2);
}
sepString = "";
capString = "";
sepString * 256;
sepString * "+";
capString * 256;
capString * "| Model";
for (k=0; k<maxModelWidth; k=k+1)
{
sepString * "-";
}
for (k=0; k<maxModelWidth-6; k=k+1)
{
capString * " ";
}
capString * "| Log Likelihood | #prms | AIC Score | c-AIC Score | Tree Length |\n";
sepString * "+----------------+-------+-----------+-------------+-------------+\n";
sepString * 0;
capString * 0;
branchLengthStash = 0;
SKIP_MODEL_PARAMETER_LIST = 0;
#include "TemplateModels/modelParameters2.mdl";
if (modelType == 1)
{
#include "TemplateModels/defineGamma.mdl";
}
if (modelType == 2)
{
#include "TemplateModels/defineHM.mdl";
}
SKIP_MODEL_PARAMETER_LIST = 1;
SetDialogPrompt ("Please load an amino-acid data file:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,1);
fprintf (stdout,"\nRunning aminoacid model comparisons on ", LAST_FILE_PATH, "\n\nThe alignment has ",ds.species, " sequences and ", ds.sites, " sites\n");
_DO_TREE_REBALANCE_ = 1;
#include "queryTree.bf";
resultMatrix = {modelCount, 5};
fprintf (stdout, "\n",sepString,capString,sepString);
bestAIC = 1e100;
bestCAIC = 1e100;
bestAICidx = 0;
bestCAICidx = -1;
for (mid=0; mid<modelCount; mid=mid+1)
{
runAModel (modelMatrixList[mid][0], modelMatrixList[mid][1], 0+modelMatrixList[mid][2], mid);
}
fprintf (stdout, "\n\nBest AIC model:\n\t", modelMatrixList[bestAICidx][0], " with the score of ", bestAIC);
if (bestCAICidx>=0)
{
fprintf (stdout, "\n\nBest c-AIC model:\n\t", modelMatrixList[bestCAICidx][0], " with the score of ", bestCAIC);
}
labelMatrix = {{"Log-likelihood","Parameters","AIC","c-AIC","Total tree length",""}};
aaString = "Model";
for (fC = 0; fC < modelCount; fC = fC+1)
{
aaString = aaString + ";" + modelMatrixList[fC][0];
}
USE_LAST_RESULTS = 0;
labelMatrix[5] = aaString;
skipCodeSelectionStep = 0;
OpenWindow (CHARTWINDOW,{{"Model Fits"}
{"labelMatrix"},
{"resultMatrix"},
{"Bar Chart"},
{"Index"},
{"c-AIC"},
{"Model Index"},
{""},
{"AIC"}
},
"SCREEN_WIDTH-60;SCREEN_HEIGHT-60;30;30");
- -
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - -
- - - - diff --git a/samples/HyPhy/AnalyzeCodonData.bf b/samples/HyPhy/AnalyzeCodonData.bf deleted file mode 100644 index 27280bbc..00000000 --- a/samples/HyPhy/AnalyzeCodonData.bf +++ /dev/null @@ -1,1031 +0,0 @@ - - - - - - - - - - - - hyphy/AnalyzeCodonData.bf at master · veg/hyphy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -
- - - - - - - - - - - - -
-
-
- -
-
-
- -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /hyphy - - - - - -

-
-
- -
-
- -
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -

You can clone with - HTTPS, SSH, or Subversion. - - - -

- - - - Clone in Desktop - - - - - - - Download ZIP - -
-
- -
- - - - - - -
- -
- - - branch: - master - - - -
- -
- - - - -
- - -
- - -
- Fetching contributors… -
- -
-

-

Cannot retrieve contributors at this time

-
-
-
-
-
- -
- Raw - Blame - History -
- - - - - -
- -
-
- -
- -
- 54 lines (36 sloc) - - 1.285 kb -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NICETY_LEVEL = 3;
#include "TemplateModels/chooseGeneticCode.def";
#include "simpleBootstrap.bf";
SetDialogPrompt ("Please specify a codon data file:");
COUNT_GAPS_IN_FREQUENCIES = 0;
VERBOSITY_LEVEL = 1;
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
fprintf (stdout,"\n______________READ THE FOLLOWING DATA______________\n",ds);
SelectTemplateModel(filteredData);
_DO_TREE_REBALANCE_ = 1;
#include "queryTree.bf";
if (modelType)
{
ChoiceList (branchLengths, "Branch Lengths", 1, SKIP_NONE,
"Estimate", "Estimate branch lengths by ML",
"Proportional to input tree", "Branch lengths are proportional to those in input tree");
if (branchLengths < 0)
{
return;
}
if (branchLengths == 1)
{
global treeScaler = 1;
ReplicateConstraint ("this1.?.?:=treeScaler*this2.?.?__", givenTree, givenTree);
}
}
LikelihoodFunction lf = (filteredData,givenTree);
Optimize (res,lf);
fprintf (stdout, "\n______________RESULTS______________\n",lf);
/* compute syn and non-syn stencils for current genetic code */
#include "categoryEcho.bf";
GetString (sendMeBack,lf,-1);
sendMeBack["LogL"] = res[1][0];
sendMeBack["NP"] = res[1][1];
return sendMeBack;
- -
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - -
- - - - diff --git a/samples/HyPhy/AnalyzeDiNucData.bf b/samples/HyPhy/AnalyzeDiNucData.bf deleted file mode 100644 index 833c79d7..00000000 --- a/samples/HyPhy/AnalyzeDiNucData.bf +++ /dev/null @@ -1,931 +0,0 @@ - - - - - - - - - - - - hyphy/AnalyzeDiNucData.bf at master · veg/hyphy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -
- - - - - - - - - - - - -
-
-
- -
-
-
- -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /hyphy - - - - - -

-
-
- -
-
- -
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -

You can clone with - HTTPS, SSH, or Subversion. - - - -

- - - - Clone in Desktop - - - - - - - Download ZIP - -
-
- -
- - - - - - -
- -
- - - branch: - master - - - -
- -
- - - - -
- - -
- - -
- Fetching contributors… -
- -
-

-

Cannot retrieve contributors at this time

-
-
-
-
-
- -
- Raw - Blame - History -
- - - - - -
- -
-
- -
- -
- 29 lines (15 sloc) - - 0.661 kb -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SetDialogPrompt ("Please specify a di-nucleotide (e.g. stem RNA) file:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,2);
fprintf (stdout,"\n______________READ THE FOLLOWING DATA______________\n",ds);
SelectTemplateModel(filteredData);
_DO_TREE_REBALANCE_ = 1;
#include "queryTree.bf";
LikelihoodFunction lf = (filteredData,givenTree);
timer = Time(0);
USE_ADAPTIVE_VARIABLE_STEP = 0;
Optimize (res,lf);
timer = Time(0)-timer;
fprintf (stdout, "\n______________RESULTS______________\nTime taken = ", timer, " seconds\nAIC Score = ",
2(res[1][1]-res[1][0]),"\n",lf);
#include "categoryEcho.bf";
- -
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - -
- - - - diff --git a/samples/HyPhy/AnalyzeNucProtData.bf b/samples/HyPhy/AnalyzeNucProtData.bf deleted file mode 100644 index 710cb4b6..00000000 --- a/samples/HyPhy/AnalyzeNucProtData.bf +++ /dev/null @@ -1,931 +0,0 @@ - - - - - - - - - - - - hyphy/AnalyzeNucProtData.bf at master · veg/hyphy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -
- - - - - - - - - - - - -
-
-
- -
-
-
- -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /hyphy - - - - - -

-
-
- -
-
- -
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -

You can clone with - HTTPS, SSH, or Subversion. - - - -

- - - - Clone in Desktop - - - - - - - Download ZIP - -
-
- -
- - - - - - -
- -
- - - branch: - master - - - -
- -
- - - - -
- - -
- - -
- Fetching contributors… -
- -
-

-

Cannot retrieve contributors at this time

-
-
-
-
-
- -
- Raw - Blame - History -
- - - - - -
- -
-
- -
- -
- 29 lines (18 sloc) - - 0.868 kb -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_Genetic_Code = 0;
ExecuteAFile("simpleBootstrap.bf");
SetDialogPrompt ("Please specify a nucleotide or amino-acid data file:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,1);
fprintf (stdout,"\n______________READ THE FOLLOWING DATA______________\n",ds);
SelectTemplateModel(filteredData);
_DO_TREE_REBALANCE_ = 1;
ExecuteAFile ("queryTree.bf");
LikelihoodFunction lf = (filteredData,givenTree);
timer = Time(0);
Optimize (res,lf);
timer = Time(0)-timer;
fprintf (stdout, "\n______________RESULTS______________\nTime taken = ", timer, " seconds\nAIC Score = ",
2(res[1][1]-res[1][0]),"\n",lf);
ExecuteAFile ("categoryEcho.bf");
GetString (lfInfo, lf, -1);
return {"Log(L)": res[1][0], "DF": res[1][1], "Tree": Format (givenTree,1,1)}
- -
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - -
- - - - diff --git a/samples/HyPhy/BS2007.bf b/samples/HyPhy/BS2007.bf deleted file mode 100644 index d49327e5..00000000 --- a/samples/HyPhy/BS2007.bf +++ /dev/null @@ -1,1999 +0,0 @@ - - - - - - - - - - - - hyphy/BS2007.bf at master · veg/hyphy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -
- - - - - - - - - - - - -
-
-
- -
-
-
- -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /hyphy - - - - - -

-
-
- -
-
- -
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -

You can clone with - HTTPS, SSH, or Subversion. - - - -

- - - - Clone in Desktop - - - - - - - Download ZIP - -
-
- -
- - - - - - -
- -
- - - branch: - master - - - -
- -
- - - - -
- - -
- - -
- Fetching contributors… -
- -
-

-

Cannot retrieve contributors at this time

-
-
-
-
-
- -
- Raw - Blame - History -
- - - - - -
- -
-
- -
- -
- 296 lines (239 sloc) - - 9.281 kb -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/* 1. include a file to define the genetic code
Note the use of base directory and path forming variables to make this analysis
independent of directory placement
*/
incFileName = HYPHY_LIB_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def";
ExecuteCommands ("#include \""+incFileName+"\";");
/* 2. load a codon partition */
SetDialogPrompt ("Please locate a coding alignment:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
coding_path = LAST_FILE_PATH;
fprintf (stdout, "\nLoaded a ", filteredData.species, " sequence alignment with ", filteredData.sites, " codons from\n",coding_path,"\n");
/* 3. include a file to prompt for a tree */
incFileName = HYPHY_LIB_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"queryTree.bf";
ExecuteCommands ("#include \""+incFileName+"\";");
/* 4. Compute nucleotide counts by position for the F3x4 estimator */
COUNT_GAPS_IN_FREQUENCIES = 0;
HarvestFrequencies (baseFreqs,filteredData,3,1,1);
COUNT_GAPS_IN_FREQUENCIES = 1;
fprintf (stdout, "\nBase composition:\n\tA: ", Format (baseFreqs[0][0],10,5),",",Format (baseFreqs[0][1],10,5),",",Format (baseFreqs[0][2],10,5),
"\n\tC: ", Format (baseFreqs[1][0],10,5),",",Format (baseFreqs[1][1],10,5),",",Format (baseFreqs[1][2],10,5),
"\n\tG: ", Format (baseFreqs[2][0],10,5),",",Format (baseFreqs[2][1],10,5),",",Format (baseFreqs[2][2],10,5),
"\n\tT: ", Format (baseFreqs[3][0],10,5),",",Format (baseFreqs[3][1],10,5),",",Format (baseFreqs[3][2],10,5), "\n");
/* 6. define the GY94 rate matrix; for now each branch will have it's own
dS and dN, we will constrain them later */
global kappa_inv = 1;
ModelMatrixDimension = 64;
for (h = 0; h<64; h=h+1)
{
if (_Genetic_Code[h]==10) /* stop codon */
{
ModelMatrixDimension = ModelMatrixDimension-1;
}
}
GY_Matrix = {ModelMatrixDimension,ModelMatrixDimension};
hshift = 0;
for (h=0; h<64; h=h+1)
{
if (_Genetic_Code[h]==10)
{
hshift = hshift+1;
}
else
{
vshift = hshift;
for (v = h+1; v<64; v=v+1)
{
diff = v-h;
if (_Genetic_Code[v]==10)
{
vshift = vshift+1;
}
else
{
if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) /* one step */
{
if (h$4==v$4)
{
transition = v%4;
transition2= h%4;
}
else
{
if(diff%16==0)
{
transition = v$16;
transition2= h$16;
}
else
{
transition = v%16$4;
transition2= h%16$4;
}
}
if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) /* synonymous */
{
if (Abs(transition-transition2)%2) /* transversion */
{
GY_Matrix[h-hshift][v-vshift] := kappa_inv*synRate;
GY_Matrix[v-vshift][h-hshift] := kappa_inv*synRate;
}
else
{
GY_Matrix[h-hshift][v-vshift] := synRate;
GY_Matrix[v-vshift][h-hshift] := synRate;
}
}
else
{
if (Abs(transition-transition2)%2) /* transversion */
{
GY_Matrix[h-hshift][v-vshift] := kappa_inv*nonSynRate;
GY_Matrix[v-vshift][h-hshift] := kappa_inv*nonSynRate;
}
else
{
GY_Matrix[h-hshift][v-vshift] := nonSynRate;
GY_Matrix[v-vshift][h-hshift] := nonSynRate;
}
}
}
}
}
}
}
/*8. build codon frequencies (use the F3x4 estimator) */
PIStop = 1.0;
codonFreqs = {ModelMatrixDimension,1};
hshift = 0;
for (h=0; h<64; h=h+1)
{
first = h$16;
second = h%16$4;
third = h%4;
if (_Genetic_Code[h]==10)
{
hshift = hshift+1;
PIStop = PIStop-baseFreqs[first][0]*baseFreqs[second][1]*baseFreqs[third][2];
continue;
}
codonFreqs[h-hshift]=baseFreqs[first][0]*baseFreqs[second][1]*baseFreqs[third][2];
}
codonFreqs = codonFreqs*(1.0/PIStop);
/*9. define the codon model */
Model GY_Model = (GY_Matrix,codonFreqs,1);
/*10. Define the tree and pick the foreground branch, displaying a tree window to facilitate selection;
the latter step is executed for 2 of 3 model choices */
Tree givenTree1 = treeString;
Tree givenTree2 = treeString;
Tree givenTree3 = treeString;
Tree givenTree4 = treeString;
USE_LAST_RESULTS = 0;
OPTIMIZATION_METHOD = 4;
/* Approximate kappa and branch lengths using an HKY85 fit */
HKY85_Matrix = {{*,t*kappa_inv,t,t*kappa_inv}
{t*kappa_inv,*,kappa_inv*t,t}
{t,t*kappa_inv,*,kappa_inv*t}
{t*kappa_inv,t,kappa_inv*t,*}};
HarvestFrequencies (nucFreqs,ds,1,1,1);
Model HKY85_Model = (HKY85_Matrix,nucFreqs,1);
Tree nucTree = treeString;
DataSetFilter nucData = CreateFilter (ds,1);
fprintf (stdout, "Obtaining nucleotide branch lengths and kappa to be used as starting values...\n");
LikelihoodFunction nuc_lf = (nucData,nucTree);
Optimize (nuc_mle,nuc_lf);
fprintf (stdout, "\n", Format (nucTree,1,1), "\nkappa=", Format (1/kappa_inv,8,3), "\n");
USE_LAST_RESULTS = 1;
mxTreeSpec = {5,1};
mxTreeSpec [0] = "nucTree";
mxTreeSpec [1] = "8240";
mxTreeSpec [2] = "10,40,-10,-175,1";
mxTreeSpec [3] = "";
mxTreeSpec [4] = "";
OpenWindow (TREEWINDOW, mxTreeSpec,"(SCREEN_WIDTH-50)/2;(SCREEN_HEIGHT-50)/2;30+(SCREEN_WIDTH-30)/2;45");
leafNodes = TipCount (givenTree);
internalNodes = BranchCount(givenTree);
choiceMatrix = {internalNodes+leafNodes,2};
for (bc=0; bc<internalNodes; bc=bc+1)
{
choiceMatrix[bc][0] = BranchName(givenTree,bc);
choiceMatrix[bc][1] = "Internal Branch Rooting " + givenTree[bc];
}
for (bc=0; bc<leafNodes; bc=bc+1)
{
choiceMatrix[bc+internalNodes][0] = TipName(givenTree,bc);
choiceMatrix[bc+internalNodes][1] = "Leaf node " + choiceMatrix[bc+internalNodes][0];
}
ChoiceList (stOption,"Choose the foreground branch",0,NO_SKIP,choiceMatrix);
if (stOption[0] < 0)
{
return -1;
}
fprintf (stdout, "\n\n", Columns (stOption)," foreground branch(es) set to: ", "\n");
for (bc = 0; bc < Columns (stOption); bc = bc + 1)
{
fprintf (stdout, choiceMatrix[stOption[bc]][0], "\n");
}
OpenWindow (CLOSEWINDOW, "Tree nucTree");
/* 15. Constrain dS and dN in the tree to based upon different models */
global omega_1 = 0.25;
global omega_2 = 0.5;
global omega_3 = 1.5;
omega_1 :< 1;
omega_2 :< 1;
omega_3 :> 1;
ClearConstraints (givenTree1);
ClearConstraints (givenTree2);
ClearConstraints (givenTree3);
ClearConstraints (givenTree4);
/* 16. define and optimize the likelihood function */
bNames = BranchName (givenTree,-1);
nucBL = BranchLength (nucTree,-1);
for (bc=0; bc<Columns(bNames)-1; bc=bc+1)
{
ExecuteCommands ("givenTree1."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree1."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree2."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree2."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree3."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree3."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree4."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree4."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
}
codBL = BranchLength (givenTree1,-1);
for (bc=0; bc<Columns(bNames)-1; bc=bc+1)
{
if (nucBL[bc]>0)
{
scalingFactor = nucBL[bc]/codBL[bc];
ExecuteCommands ("givenTree1."+bNames[bc]+".synRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree1."+bNames[bc]+".nonSynRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree2."+bNames[bc]+".synRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree2."+bNames[bc]+".nonSynRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree3."+bNames[bc]+".synRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree3."+bNames[bc]+".nonSynRate=nucTree."+bNames[bc]+".t*"+scalingFactor+";");
ExecuteCommands ("givenTree4."+bNames[bc]+".synRate =nucTree."+bNames[bc]+".t;");
ExecuteCommands ("givenTree4."+bNames[bc]+".nonSynRate =nucTree."+bNames[bc]+".t;");
}
}
for (bc = 0; bc < Columns (stOption); bc = bc + 1)
{
bName = choiceMatrix[stOption[bc]][0];
ExecuteCommands ("givenTree1."+bName+".nonSynRate:=omega_1*givenTree1."+bName+".synRate");
ExecuteCommands ("givenTree2."+bName+".nonSynRate:=omega_2*givenTree2."+bName+".synRate");
ExecuteCommands ("givenTree3."+bName+".nonSynRate:=givenTree3."+bName+".synRate");
ExecuteCommands ("givenTree4."+bName+".nonSynRate:=omega_3*givenTree4."+bName+".synRate");
}
OPTIMIZATION_PRECISION = 0.001;
global P_1 = 1/4;
global P_2 = 1/3;
global P_3 = 1/2;
P_1 :< 1;
P_2 :< 1;
P_3 :< 1;
fprintf (stdout, "\nFitting the model with selection...\n");
LikelihoodFunction lf = (filteredData, givenTree1, filteredData, givenTree2,filteredData, givenTree3,filteredData, givenTree4,
"Log(P_1*SITE_LIKELIHOOD[0]+(1-P_1)*P_2*SITE_LIKELIHOOD[1]+(1-P_1)(1-P_2)*P_3*SITE_LIKELIHOOD[2]+(1-P_1)(1-P_2)(1-P_3)*SITE_LIKELIHOOD[3])");
Optimize (mles,lf);
fprintf (stdout, lf);
- -
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - -
- - - - From bdfe2aa6e4645f6745e13a5471b9bc8a581f7ca2 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 1 May 2015 16:39:48 +0200 Subject: [PATCH 447/875] Remove grammar for Ada --- .gitmodules | 4 ---- vendor/grammars/ada.tmbundle | 1 - 2 files changed, 5 deletions(-) delete mode 160000 vendor/grammars/ada.tmbundle diff --git a/.gitmodules b/.gitmodules index f1ce5891..571ca42a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -487,10 +487,6 @@ [submodule "vendor/grammars/sublime-nix"] path = vendor/grammars/sublime-nix url = https://github.com/wmertens/sublime-nix -[submodule "vendor/grammars/ada.tmbundle"] - path = vendor/grammars/ada.tmbundle - url = https://github.com/aroben/ada.tmbundle - branch = better-with-highlighting [submodule "vendor/grammars/oz-tmbundle"] path = vendor/grammars/oz-tmbundle url = https://github.com/eregon/oz-tmbundle diff --git a/vendor/grammars/ada.tmbundle b/vendor/grammars/ada.tmbundle deleted file mode 160000 index c45eed4d..00000000 --- a/vendor/grammars/ada.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c45eed4d5f98fe3bcbbffbb9e436601ab5bbde4b From 6489f7009db4f7c8b96a8cf68a548c878e1c8af8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 1 May 2015 16:42:37 +0200 Subject: [PATCH 448/875] Use original repository for Ada grammar --- .gitmodules | 3 +++ vendor/grammars/ada.tmbundle | 1 + 2 files changed, 4 insertions(+) create mode 160000 vendor/grammars/ada.tmbundle diff --git a/.gitmodules b/.gitmodules index 571ca42a..1efe28b9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -653,3 +653,6 @@ [submodule "vendor/grammars/jflex.tmbundle"] path = vendor/grammars/jflex.tmbundle url = https://github.com/jflex-de/jflex.tmbundle.git +[submodule "vendor/grammars/ada.tmbundle"] + path = vendor/grammars/ada.tmbundle + url = https://github.com/textmate/ada.tmbundle diff --git a/vendor/grammars/ada.tmbundle b/vendor/grammars/ada.tmbundle new file mode 160000 index 00000000..59bfc502 --- /dev/null +++ b/vendor/grammars/ada.tmbundle @@ -0,0 +1 @@ +Subproject commit 59bfc50221b2dcdbdb8a98117f44e66e1c35ffcf From 2eede372485b6c8976cf43a561c1ffb9783cc6e6 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 1 May 2015 17:28:34 +0200 Subject: [PATCH 449/875] Remove unused grammars/submodules --- .gitmodules | 18 ------------------ grammars.yml | 17 ----------------- vendor/grammars/javadoc.tmbundle | 1 - vendor/grammars/jquery-tmbundle | 1 - vendor/grammars/ruby-on-rails-tmbundle | 1 - vendor/grammars/text.tmbundle | 1 - vendor/grammars/textile.tmbundle | 1 - vendor/grammars/textmate.tmbundle | 1 - 8 files changed, 41 deletions(-) delete mode 160000 vendor/grammars/javadoc.tmbundle delete mode 160000 vendor/grammars/jquery-tmbundle delete mode 160000 vendor/grammars/ruby-on-rails-tmbundle delete mode 160000 vendor/grammars/text.tmbundle delete mode 160000 vendor/grammars/textile.tmbundle delete mode 160000 vendor/grammars/textmate.tmbundle diff --git a/.gitmodules b/.gitmodules index f1ce5891..75618eff 100644 --- a/.gitmodules +++ b/.gitmodules @@ -169,9 +169,6 @@ [submodule "vendor/grammars/Textmate-Gosu-Bundle"] path = vendor/grammars/Textmate-Gosu-Bundle url = https://github.com/jpcamara/Textmate-Gosu-Bundle -[submodule "vendor/grammars/jquery-tmbundle"] - path = vendor/grammars/jquery-tmbundle - url = https://github.com/kswedberg/jquery-tmbundle [submodule "vendor/grammars/fish-tmbundle"] path = vendor/grammars/fish-tmbundle url = https://github.com/l15n/fish-tmbundle @@ -346,9 +343,6 @@ [submodule "vendor/grammars/java.tmbundle"] path = vendor/grammars/java.tmbundle url = https://github.com/textmate/java.tmbundle -[submodule "vendor/grammars/javadoc.tmbundle"] - path = vendor/grammars/javadoc.tmbundle - url = https://github.com/textmate/javadoc.tmbundle [submodule "vendor/grammars/javascript-objective-j.tmbundle"] path = vendor/grammars/javascript-objective-j.tmbundle url = https://github.com/textmate/javascript-objective-j.tmbundle @@ -424,9 +418,6 @@ [submodule "vendor/grammars/ruby-haml.tmbundle"] path = vendor/grammars/ruby-haml.tmbundle url = https://github.com/textmate/ruby-haml.tmbundle -[submodule "vendor/grammars/ruby-on-rails-tmbundle"] - path = vendor/grammars/ruby-on-rails-tmbundle - url = https://github.com/textmate/ruby-on-rails-tmbundle [submodule "vendor/grammars/scheme.tmbundle"] path = vendor/grammars/scheme.tmbundle url = https://github.com/textmate/scheme.tmbundle @@ -445,15 +436,6 @@ [submodule "vendor/grammars/tcl.tmbundle"] path = vendor/grammars/tcl.tmbundle url = https://github.com/textmate/tcl.tmbundle -[submodule "vendor/grammars/text.tmbundle"] - path = vendor/grammars/text.tmbundle - url = https://github.com/textmate/text.tmbundle -[submodule "vendor/grammars/textile.tmbundle"] - path = vendor/grammars/textile.tmbundle - url = https://github.com/textmate/textile.tmbundle -[submodule "vendor/grammars/textmate.tmbundle"] - path = vendor/grammars/textmate.tmbundle - url = https://github.com/textmate/textmate.tmbundle [submodule "vendor/grammars/thrift.tmbundle"] path = vendor/grammars/thrift.tmbundle url = https://github.com/textmate/thrift.tmbundle diff --git a/grammars.yml b/grammars.yml index 46f2fd5d..3b6b325c 100644 --- a/grammars.yml +++ b/grammars.yml @@ -293,14 +293,10 @@ vendor/grammars/java.tmbundle: - source.java-properties - text.html.jsp - text.junit-test-report -vendor/grammars/javadoc.tmbundle: -- text.html.javadoc vendor/grammars/javascript-objective-j.tmbundle: - source.js.objj vendor/grammars/jflex.tmbundle: - source.jflex -vendor/grammars/jquery-tmbundle: -- source.js.jquery vendor/grammars/json.tmbundle: - source.json vendor/grammars/kotlin-sublime-package: @@ -430,12 +426,6 @@ vendor/grammars/restructuredtext.tmbundle: - text.restructuredtext vendor/grammars/ruby-haml.tmbundle: - text.haml -vendor/grammars/ruby-on-rails-tmbundle: -- source.js.erb.rails -- source.ruby.rails -- source.ruby.rails.rjs -- source.sql.ruby -- text.html.erb.rails vendor/grammars/ruby-slim.tmbundle: - text.slim vendor/grammars/ruby.tmbundle: @@ -523,13 +513,6 @@ vendor/grammars/swift.tmbundle: vendor/grammars/tcl.tmbundle: - source.tcl - text.html.tcl -vendor/grammars/text.tmbundle: -- text.plain -vendor/grammars/textile.tmbundle: -- text.html.textile -vendor/grammars/textmate.tmbundle: -- source.regexp.oniguruma -- source.tm-properties vendor/grammars/thrift.tmbundle: - source.thrift vendor/grammars/toml.tmbundle: diff --git a/vendor/grammars/javadoc.tmbundle b/vendor/grammars/javadoc.tmbundle deleted file mode 160000 index 5276d7a9..00000000 --- a/vendor/grammars/javadoc.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5276d7a93f0cf53b7d425c39c6968b09ea9f2d40 diff --git a/vendor/grammars/jquery-tmbundle b/vendor/grammars/jquery-tmbundle deleted file mode 160000 index ff14cd28..00000000 --- a/vendor/grammars/jquery-tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ff14cd28e36772d13de16606903b36a091ffeb33 diff --git a/vendor/grammars/ruby-on-rails-tmbundle b/vendor/grammars/ruby-on-rails-tmbundle deleted file mode 160000 index 0981c4c2..00000000 --- a/vendor/grammars/ruby-on-rails-tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0981c4c2edac25b4451b396380d6bf48e0ef8bd0 diff --git a/vendor/grammars/text.tmbundle b/vendor/grammars/text.tmbundle deleted file mode 160000 index 961652ad..00000000 --- a/vendor/grammars/text.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 961652ad957678e75b533406de1be5bd7f489063 diff --git a/vendor/grammars/textile.tmbundle b/vendor/grammars/textile.tmbundle deleted file mode 160000 index 6951fec2..00000000 --- a/vendor/grammars/textile.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6951fec27ccefe4245b76fda33987e746b91758a diff --git a/vendor/grammars/textmate.tmbundle b/vendor/grammars/textmate.tmbundle deleted file mode 160000 index 49270318..00000000 --- a/vendor/grammars/textmate.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 49270318d53923faba4fa81d56f121b5618239f0 From 3b2ddb1a18f64e00d69afb74079f4317dbee21f1 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Fri, 1 May 2015 11:25:16 -0500 Subject: [PATCH 450/875] classify DNS zone as a data format --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index cc97d249..63fdc5c6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -770,7 +770,7 @@ Diff: ace_mode: diff DNS zone: - type: programming + type: data extensions: - .zone tm_scope: text.zone From 1fdcafb1ae29f97579a5e68ad9057658da83f478 Mon Sep 17 00:00:00 2001 From: Mike Doud Date: Fri, 1 May 2015 11:28:11 -0700 Subject: [PATCH 451/875] Update languages.yml --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 827559c8..7845ed3f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1354,6 +1354,7 @@ HyPhy: ace_mode: text extensions: - .bf + tm_scope: none IDL: type: programming From ca12a99970c32858bd4f7c9a5167eb77ce08bfb3 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 1 May 2015 21:03:02 +0200 Subject: [PATCH 452/875] Handle SSH links to submodules --- script/travis/before_install | 3 +++ 1 file changed, 3 insertions(+) diff --git a/script/travis/before_install b/script/travis/before_install index 93ef383c..516ec956 100755 --- a/script/travis/before_install +++ b/script/travis/before_install @@ -17,6 +17,9 @@ else bundle config build.charlock_holmes --with-icu-dir=$(pwd)/vendor/debs fi +# Replace SSH links to submodules by HTTPS links. +sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules + git submodule init git submodule sync --quiet script/fast-submodule-update From 585d74ecc995d2fda7107d72f212c6c34863647f Mon Sep 17 00:00:00 2001 From: Mike Doud Date: Sat, 2 May 2015 13:24:43 -0700 Subject: [PATCH 453/875] add better HyPhy samples --- samples/HyPhy/AAModelComparison.bf | 252 + samples/HyPhy/CodonModelCompare.bf | 1046 ++ samples/HyPhy/MFPositiveSelection.bf | 1113 ++ samples/HyPhy/MolecularClock.bf | 147 + samples/HyPhy/dNdSDistributionComparison.bf | 1025 ++ samples/HyPhy/hyphy_cmds.bf | 11003 ++++++++++++++++++ 6 files changed, 14586 insertions(+) create mode 100644 samples/HyPhy/AAModelComparison.bf create mode 100644 samples/HyPhy/CodonModelCompare.bf create mode 100644 samples/HyPhy/MFPositiveSelection.bf create mode 100644 samples/HyPhy/MolecularClock.bf create mode 100644 samples/HyPhy/dNdSDistributionComparison.bf create mode 100644 samples/HyPhy/hyphy_cmds.bf diff --git a/samples/HyPhy/AAModelComparison.bf b/samples/HyPhy/AAModelComparison.bf new file mode 100644 index 00000000..602a9e56 --- /dev/null +++ b/samples/HyPhy/AAModelComparison.bf @@ -0,0 +1,252 @@ +if (Rows (modelMatrixList) == 0) +{ + modelMatrixList = + { + {"Equal Input", "EIAA.mdl", "19"} + {"Dayhoff","Dayhoff.mdl","0"} + {"Dayhoff+F","Dayhoff_F.mdl","19"} + {"JTT", "Jones.mdl", "0"} + {"JTT+F", "Jones_F.mdl", "19"} + {"WAG", "WAG.mdl", "0"} + {"WAG+F", "WAG_F.mdl", "19"} + {"rtREV", "rtREV.mdl", "0"} + {"rtREV+F", "rtREV_F.mdl", "19"} + {"mtMAM", "mtMAM.mdl", "0"} + {"mtMAM+F", "mtMAM_F.mdl", "19"} + {"mtREV 24", "mtREV_24.mdl", "0"} + {"mtREV 24+F", "mtREV_24_F.mdl", "19"} + {"HIV within", "HIVwithin.mdl", "0"} + {"HIV within+F", "HIVwithin+F.mdl", "19"} + {"HIV between", "HIVbetween.mdl", "0"} + {"HIV between+F", "HIVbetween+F.mdl", "19"} + {"REV-1 step", "reducedREV.mdl", "19"} + {"REV", "mtREV.mdl", "19"} + }; +} + +/*___________________________________________________________________________________________________________*/ + +function runAModel (modelID, fileName, xtraP, midx) +{ + ExecuteCommands ("#include \"TemplateModels/"+fileName+"\";"); + Tree givenTree = treeString; + LikelihoodFunction lf = (filteredData,givenTree); + + GetString (lf_info, lf, -1); + locals = lf_info["Local Independent"]; + + if (Columns (branchLengthStash)) + { + USE_LAST_RESULTS = 1; + for (_iv = 0; _iv < Columns (locals); _iv = _iv+1) + { + ExecuteCommands (locals[_iv] + "=1;\n"); + } + currentBL = BranchLength (givenTree,0); + currentBN = BranchName (givenTree,-1); + for (_iv = 0; _iv < Columns (currentBN); _iv = _iv+1) + { + ExecuteCommands ("givenTree."+currentBN[_iv]+".t="+branchLengthStash[_iv]/currentBL+";"); + + } + } + else + { + for (_iv = 0; _iv < Columns (locals); _iv = _iv+1) + { + ExecuteCommands (locals[_iv] + "=0.1;\n"); + } + USE_LAST_RESULTS = 1; + } + + Optimize (res,lf); + + fprintf (stdout, "| ", modelID); + for (k=0; k1) + { + cAIC = 2(-res[1][0]+params*(filteredData.sites/(filteredData.sites-params-1))); + } + else + { + cAIC = 0; + } + + branchLengths = BranchLength (givenTree,-1); + TL = 0; + for (k=Rows(branchLengths)*Columns(branchLengths)-1; k>=0; k=k-1) + { + TL = TL + branchLengths[k]; + } + + fprintf (stdout, "| ", Format (res[1][0],14,3), " | ", Format (params,5,0), " | ", + Format (AIC, 9,3), " | ",); + + if (cAIC > 0) + { + fprintf (stdout, Format (cAIC,11,3), " | "); + } + else + { + fprintf (stdout, " N/A | "); + } + + fprintf (stdout, Format (TL,11,3), " |\n", sepString); + + resultMatrix[midx][0] = res[1][0]; + resultMatrix[midx][1] = params; + resultMatrix[midx][2] = AIC; + resultMatrix[midx][3] = cAIC; + resultMatrix[midx][4] = TL; + + if (AIC < bestAIC) + { + bestAIC = AIC; + bestAICidx = midx; + branchLengthStash = BranchLength (givenTree,-1); + } + + if (cAIC > 0) + { + if (bestCAIC > cAIC) + { + bestCAIC = cAIC; + bestCAICidx = midx; + + } + } + + return 0; +} + + +/*___________________________________________________________________________________________________________*/ + + + +maxModelWidth = 7; +skipCodeSelectionStep = 0; + +ChoiceList (doREV, "Include REV?", 1, SKIP_NONE, "Yes", "Include REV and reduced REV models. CAUTION: these models take a long time to fit.", + "No", "Only use empirical models"); + +if (doREV < 0) +{ + return 0; +} + +if (doREV == 0) +{ + #include "TemplateModels/chooseGeneticCode.def"; + skipCodeSelectionStep = 1; +} + +modelCount = Rows (modelMatrixList) - 2*doREV; + +for (k=0; k=0) +{ + fprintf (stdout, "\n\nBest c-AIC model:\n\t", modelMatrixList[bestCAICidx][0], " with the score of ", bestCAIC); +} + +labelMatrix = {{"Log-likelihood","Parameters","AIC","c-AIC","Total tree length",""}}; + +aaString = "Model"; + +for (fC = 0; fC < modelCount; fC = fC+1) +{ + aaString = aaString + ";" + modelMatrixList[fC][0]; +} + +USE_LAST_RESULTS = 0; + +labelMatrix[5] = aaString; +skipCodeSelectionStep = 0; +OpenWindow (CHARTWINDOW,{{"Model Fits"} + {"labelMatrix"}, + {"resultMatrix"}, + {"Bar Chart"}, + {"Index"}, + {"c-AIC"}, + {"Model Index"}, + {""}, + {"AIC"} + }, + "SCREEN_WIDTH-60;SCREEN_HEIGHT-60;30;30"); diff --git a/samples/HyPhy/CodonModelCompare.bf b/samples/HyPhy/CodonModelCompare.bf new file mode 100644 index 00000000..e24b730d --- /dev/null +++ b/samples/HyPhy/CodonModelCompare.bf @@ -0,0 +1,1046 @@ +/* + This file takes a nucleotide data set and a tree (either from the data file or from a separate file) and computes maximum likelihood estimates for every possible 4x4 reversible model on that data and tree. + + We use the string (v1,v2,v3,v4,v5,v6), where and v1..6 = 0..5 + to encode a 4x4 symmetric transition matrix with entries + [* v1 v2 v3] + [- * v4 v5] + [- - * v6] + [- - - * ] + + For instance: (010010) encodes HKY85. + + For each model the following information is reported: + - Model string. (e.g. (012345) for the GRM) + - Number of model parameters + - Max ln-likelihood for the model + - Likelihood ratio statistic (as a sub-model of the GRM) + - AIC + - P-Value for the Likelihood Ratio Test. + + + Sergei L. Kosakovsky Pond, Summer 2002. + +*/ + +function ReceiveJobs (sendOrNot) +{ + if (MPI_NODE_COUNT>1) + { + MPIReceive (-1, fromNode, result_String); + jobModelNum = MPINodeState[fromNode-1][1]; + vv1 = MPINodeState[fromNode-1][2]; + vv2 = MPINodeState[fromNode-1][3]; + vv3 = MPINodeState[fromNode-1][4]; + vv4 = MPINodeState[fromNode-1][5]; + vv5 = MPINodeState[fromNode-1][6]; + vv6 = MPINodeState[fromNode-1][7]; + if (sendOrNot) + { + MPISend (fromNode,lf); + MPINodeState[fromNode-1][1] = modelNum; + MPINodeState[fromNode-1][2] = v1; + MPINodeState[fromNode-1][3] = v2; + MPINodeState[fromNode-1][4] = v3; + MPINodeState[fromNode-1][5] = v4; + MPINodeState[fromNode-1][6] = v5; + MPINodeState[fromNode-1][7] = v6; + } + else + { + MPINodeState[fromNode-1][0] = 0; + MPINodeState[fromNode-1][1] = -1; + } + + ExecuteCommands (result_String); + } + else + { + jobModelNum = modelNum; + } + + if (jobModelNum == 0) + { + stdl = lf_MLES[1][0]; + fullnp = lf_MLES[1][1]+addOn; + fprintf(stdout,"\n(012345) Full Model ln-lik = ",stdl,". Parameter Count=",Format(fullnp,0,0)," AIC = ", 2*(fullnp-stdl),"\n\n"); + + + resultCache [0][0] = 1; + resultCache [0][1] = 2; + resultCache [0][2] = 3; + resultCache [0][3] = 4; + resultCache [0][4] = 5; + resultCache [0][5] = lf_MLES[1][0]; + resultCache [0][6] = lf_MLES[1][1]+addOn; + resultCache [0][7] = 0; + resultCache [0][8] = 0; + + fprintf (stdout,"\n# | Model | # prm | lnL | LRT | AIC | P-Value |"); + fprintf (stdout,"\n----|----------|-------|-----------|----------------|------------|------------------|"); + + if (MPI_NODE_COUNT>1) + { + for (h=1; h<203; h=h+1) + { + lnL = resultCache[h][5]; + + if (lnL<0) + { + np = resultCache[h][6]; + LRT = -2*(lnL-stdl); + if (LRT<0) + { + LRT = 0; + } + AIC = -2*lnL+2*np; + PRINT_DIGITS = 3; + fprintf (stdout,"\n",h); + PRINT_DIGITS = 1; + fprintf (stdout," | (",0, resultCache[h][0], resultCache[h][1], resultCache[h][2], resultCache[h][3], resultCache[h][4],") | "); + fprintf (stdout,Format (np,5,0)); + PRINT_DIGITS = 8; + fprintf (stdout, " | ",lnL," | ",Format(LRT,14,3), " | ", AIC, " | ", ); + + PRINT_DIGITS = 15; + if (LRT==0) + { + pValue = 1; + } + else + { + pValue = 1-CChi2(LRT,fullnp-np); + } + fprintf (stdout,pValue," |"); + resultCache [jobModelNum][7] = pValue; + if (pValue1)&&(resultCache[0][5]>=0)) + { + resultCache [jobModelNum][0] = vv2; + resultCache [jobModelNum][1] = vv3; + resultCache [jobModelNum][2] = vv4; + resultCache [jobModelNum][3] = vv5; + resultCache [jobModelNum][4] = vv6; + resultCache [jobModelNum][5] = lf_MLES[1][0]; + resultCache [jobModelNum][6] = lf_MLES[1][1]+addOn; + return fromNode - 1; + } + } + + np = lf_MLES[1][1]+addOn; + lnL = lf_MLES[1][0]; + LRT = -2*(lnL-stdl); + if (LRT<0) + { + LRT = 0; + } + AIC = -2*lnL+2*np; + PRINT_DIGITS = 3; + fprintf (stdout,"\n",jobModelNum); + PRINT_DIGITS = 1; + fprintf (stdout," | (",vv1,vv2,vv3,vv4,vv5,vv6,") | "); + fprintf (stdout,Format (np,5,0)); + PRINT_DIGITS = 8; + fprintf (stdout, " | ",lnL," | ",Format(LRT,14,3), " | ", AIC, " | ", ); + + + PRINT_DIGITS = 15; + if (LRT==0) + { + pValue = 1; + } + else + { + pValue = 1-CChi2(LRT,fullnp-np); + } + fprintf (stdout,pValue," |"); + + resultCache [jobModelNum][0] = vv2; + resultCache [jobModelNum][1] = vv3; + resultCache [jobModelNum][2] = vv4; + resultCache [jobModelNum][3] = vv5; + resultCache [jobModelNum][4] = vv6; + resultCache [jobModelNum][5] = lf_MLES[1][0]; + resultCache [jobModelNum][6] = lf_MLES[1][1]+addOn; + resultCache [jobModelNum][7] = pValue; + if (pValue 0) +{ + #include "TemplateModels/defineGamma.mdl"; +} + +ChoiceList (branchLengths,"Estimate Branch Lengths",1,SKIP_NONE, + "Every Time","Branch lengths are reestimated for every model.", + "Once","Branch lenghts obtained from the nucleotide GTR model and reused for subsequent models." + ); + +if (branchLengths<0) +{ + return; +} + +rejectAt = 0; + +while ((rejectAt<=0)||(rejectAt>=1)) +{ + fprintf (stdout, "\nModel rejection level (e.g. 0.05):"); + fscanf (stdin,"Number", rejectAt); +} + +SetDialogPrompt ("Save results to:"); + +fprintf (PROMPT_FOR_FILE, CLEAR_FILE); +BASE_PATH = LAST_FILE_PATH; + +KEEP_OPTIMAL_ORDER = 1; +MESSAGE_LOGGING = 0; + +global AC=1; +global AT=1; +global CG=1; +global CT=1; +global GT=1; +global R=1; + + +r = setElement (0,2,1); +r = setElement (0,3,2); +r = setElement (1,2,3); +r = setElement (1,3,4); +r = setElement (2,3,5); + +MG94custom = 0; +MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq); +vectorOfFrequencies = BuildCodonFrequencies (observedFreq); +Model MG94customModel = (MG94custom,vectorOfFrequencies,0); + +USE_POSITION_SPECIFIC_FREQS = 1; +Tree tr = treeString; + +addOn = 0; + +if (branchLengths) +{ + global TreeScaler = 1; + GTRMatrix = {{*,AC*nt,nt,AT*nt}{AC*nt,*,CG*nt,CT*nt}{nt,CG*nt,*,GT*nt}{AT*nt,CT*nt,GT*nt,*}}; + DataSetFilter nucFilter = CreateFilter (filteredData,1); + HarvestFrequencies (nucFreq,nucFilter,1,1,1); + Model GTRModel = (GTRMatrix,nucFreq,1); + givenTreeString = Format (tr,0,0); + Tree nucTree = givenTreeString; + LikelihoodFunction lfn = (nucFilter, nucTree); + Optimize (nres,lfn); + ReplicateConstraint ("this1.?.synRate:=this2.?.nt__/TreeScaler",tr,nucTree); + addOn = nres[1][1]-nres[1][2]-1; +} + +LikelihoodFunction lf = (filteredData, tr); + +resultCache = {203,9}; + +modelNum = 0; +rejectCount = 0; + +if (MPI_NODE_COUNT>1) +{ + MPINodeState = {MPI_NODE_COUNT-1,8}; + OPTIMIZE_SUMMATION_ORDER = 0; + MPISend (1,lf); + MPINodeState[0][0] = 1; + MPINodeState[0][1] = modelNum; +} +else +{ + Optimize (lf_MLES,lf); + vv1 = 0; + vv2 = 0; + vv3 = 0; + vv4 = 0; + vv5 = 0; + vv6 = 0; + dummy = ReceiveJobs (0); +} + +rateBiasTerms = {{"AC","1","AT","CG","CT","GT"}}; + +for (v2=0; v2<=1; v2=v2+1) +{ + for (v3=0; v3<=v2+1; v3=v3+1) + { + if (v3>v2) + { + ub4 = v3; + } + else + { + ub4 = v2; + } + for (v4=0; v4<=ub4+1; v4=v4+1) + { + if (v4>=ub4) + { + ub5 = v4; + } + else + { + ub5 = ub4; + } + for (v5=0; v5<=ub5+1; v5=v5+1) + { + if (v5>ub5) + { + ub6 = v5; + } + else + { + ub6 = ub5; + } + for (v6=0; v6<=ub6+1; v6=v6+1) + { + if (v6==5) + { + break; + } + + R = 1; + + paramCount = 0; + + modelDesc = "0"+Format(v2,1,0); + modelDesc = modelDesc+Format(v3,1,0); + modelDesc = modelDesc+Format(v4,1,0); + modelDesc = modelDesc+Format(v5,1,0); + modelDesc = modelDesc+Format(v6,1,0); + + modelConstraintString = ""; + + AC = 1; + AT = 1; + CG = 1; + CT = 1; + GT = 1; + + for (customLoopCounter2=1; customLoopCounter2<6; customLoopCounter2=customLoopCounter2+1) + { + for (customLoopCounter=0; customLoopCounter1) + { + for (mpiNode = 0; mpiNode < MPI_NODE_COUNT-1; mpiNode = mpiNode+1) + { + if (MPINodeState[mpiNode][0]==0) + { + break; + } + } + + if (mpiNode==MPI_NODE_COUNT-1) + /* all nodes busy */ + { + mpiNode = ReceiveJobs (1); + } + else + { + MPISend (mpiNode+1,lf); + MPINodeState[mpiNode][0] = 1; + MPINodeState[mpiNode][1] = modelNum; + MPINodeState[mpiNode][2] = v1; + MPINodeState[mpiNode][3] = v2; + MPINodeState[mpiNode][4] = v3; + MPINodeState[mpiNode][5] = v4; + MPINodeState[mpiNode][6] = v5; + MPINodeState[mpiNode][7] = v6; + } + } + else + { + Optimize (lf_MLES,lf); + vv1 = v1; + vv2 = v2; + vv3 = v3; + vv4 = v4; + vv5 = v5; + vv6 = v6; + dummy = ReceiveJobs (0); + } + } + } + } + } + +} + +if (MPI_NODE_COUNT>1) +{ + while (1) + { + for (nodeCounter = 0; nodeCounter < MPI_NODE_COUNT-1; nodeCounter = nodeCounter+1) + { + if (MPINodeState[nodeCounter][0]==1) + { + fromNode = ReceiveJobs (0); + break; + } + } + if (nodeCounter == MPI_NODE_COUNT-1) + { + break; + } + } + OPTIMIZE_SUMMATION_ORDER = 1; +} + +function checkEmbedding (_m1, _m2) +{ + for (r=0; r<6; r=r+1) + { + if (_m2[r]<_m1[r]) + { + /*fprintf (stdout,_m1," ", _m2, " Reject 1 at position ",r,"\n");*/ + return 0; + } + if (_m2[r]>_m1[r]) + { + for (r2 = 0; r2 < 6; r2 = r2+1) + { + if ((_m2[r2]==_m2[r])&&(_m1[r2]!=_m1[r])) + { + /*fprintf (stdout,_m1," ", _m2, " Reject 2 at positions ",r,r2,"\n");*/ + return 0; + } + } + } + } + return 1; +} + +PRINT_DIGITS = 0; + +fprintf (stdout, "\n\n--------------------------\n (*) => p-Value < ", rejectAt, "\nRejected ", rejectCount, " models.\n"); + + +if (rejectCount<202) +{ + + fprintf (stdout, "\nPerforming nested tests on the remaining models...\n"); + + done = 0; + while (!done) + { + done = 1; + for (v2=1; v2<203; v2=v2+1) + { + if (resultCache[v2][8]) + { + modelString = "0"; + for (v3 = 0; v3<5; v3=v3+1) + { + modelString = modelString + resultCache [v2][v3]; + } + for (v3 = v2+1; v3<203; v3 = v3+1) + { + if (resultCache[v3][8]) + { + modelString2 = "0"; + for (v4 = 0; v4<5; v4=v4+1) + { + modelString2 = modelString2 + resultCache [v3][v4]; + } + if (checkEmbedding (modelString, modelString2)) + { + fprintf (stdout,"H: (", modelString,") A: (", modelString2, "). "); + done = 0; + LRT = 2*(resultCache[v3][5]-resultCache[v2][5]); + npd = resultCache[v3][6]-resultCache[v2][6]; + if (LRT<0) + { + pValue = 1; + } + else + { + pValue = 1-CChi2(LRT,npd); + } + fprintf (stdout," P-Value=", Format (pValue,10,3)); + if (pValue1)", + "0 & 2 (Normal>1)", + "3 Normal", + "RE: Lognormal", + "RE: Gamma", + "RE: Discrete"}}; + +ParameterCount = {{0, + 1, + 3, + 4, + 2, + 4, + 2, + 4, + 5, + 5, + 5, + 5, + 6, + 1, + 2, + 4 + }}; + +MAXIMUM_ITERATIONS_PER_VARIABLE = 2000; +OPTIMIZATION_PRECISION = 0.001; + +function SetWDistribution (resp) +{ + if (rateType == 0) + { + global P = .5; + P:<1; + categFreqMatrix = {{P,1-P}}; + categRateMatrix = {{0,1}}; + category c = (2, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 1) + { + global P1 = 1/3; + global P2 = 0; + + P1:<1; + P2:<1; + + global W = 1; + categFreqMatrix = {{P1,(1-P1)*P2, (1-P1)*(1-P2)}} ; + categRateMatrix = {{0,1,W}}; + category c = (3, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 2) + { + global P1 = 1/3; + global P2 = .5; + P1:<1; + P2:<1; + global W1 = .25; + global R1 = 4; + global R2 = 3; + R1:>1; + R2:>1; + categFreqMatrix = {{P1,(1-P1)*P2, (1-P1)*(1-P2)}} ; + categRateMatrix = {{W1,W1*R1,W1*R1*R2}}; + category c = (3, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 3) + { + global P1 = 1/5; + global P2 = 1/4; + global P3 = 1/3; + global P4 = 1/2; + + P1:<1; + P2:<1; + P3:<1; + P4:<1; + + categFreqMatrix = {{P1, + (1-P1)P2, + (1-P1)(1-P2)*P3, + (1-P1)(1-P2)(1-P3)P4, + (1-P1)(1-P2)(1-P3)(1-P4)}} ; + categRateMatrix = {{0,1/3,2/3,1,3}}; + category c = (5, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 4) + { + global alpha = .5; + global beta = 1; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + category c = (resp, EQUAL, MEAN, GammaDist(_x_,alpha,beta), CGammaDist(_x_,alpha,beta), 0 , + 1e25,CGammaDist(_x_,alpha+1,beta)*alpha/beta); + } + else + { + if (rateType == 5) + { + global alpha = .5; + global beta = 1; + global alpha2= .75; + global P = .5; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + P:<1; + alpha2:>0.01;alpha2:<100; + category c = (resp, EQUAL, MEAN, P*GammaDist(_x_,alpha,beta) + (1-P)*GammaDist(_x_,alpha2,alpha2) + , P*CGammaDist(_x_,alpha,beta) + (1-P)*CGammaDist(_x_,alpha2,alpha2), + 0 , 1e25, + P*CGammaDist(_x_,alpha+1,beta)*alpha/beta + (1-P)*CGammaDist(_x_,alpha2+1,alpha2)); + } + else + { + if (rateType == 6) + { + global betaP = 1; + global betaQ = 1; + betaP:>0.05;betaP:<85; + betaQ:>0.05;betaQ:<85; + category c = (resp, EQUAL, MEAN, _x_^(betaP-1)*(1-_x_)^(betaQ-1)/Beta(betaP,betaQ), IBeta(_x_,betaP,betaQ), 0 , + 1,IBeta(_x_,betaP+1,betaQ)*betaP/(betaP+betaQ)); + } + else + { + if (rateType == 7) + { + global W = 2; + /*W:>1;*/ + global P = 1-1/(resp+1); + global betaP = 1; + global betaQ = 2; + betaP:>0.05; + betaQ:>0.05; + betaP:<85; + betaQ:<85; + P:>0.0000001; + P:<0.9999999; + categFreqMatrix = {resp+1,1}; + for (k=0; k=W), + 0,1e25, + P*IBeta(Min(_x_,1),betaP+1,betaQ)*betaP/(betaP+betaQ)+(1-P)*W*(_x_>=W)); + } + else + { + if (rateType == 8) + { + global P = .5; + global betaP = 1; + global betaQ = 2; + betaP:>0.05;betaP:<85; + betaQ:>0.05;betaQ:<85; + global alpha = .5; + global beta = 1; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + P:<1; + category c = (resp, EQUAL, MEAN, + P*_x_^(betaP-1)*(1-Min(_x_,1))^(betaQ-1)/Beta(betaP,betaQ)+(1-P)*GammaDist(_x_,alpha,beta), + P*IBeta(Min(_x_,1),betaP,betaQ)+(1-P)*CGammaDist(_x_,alpha,beta), + 0,1e25, + P*betaP/(betaP+betaQ)*IBeta(Min(_x_,1),betaP+1,betaQ)+(1-P)*alpha/beta*CGammaDist(_x_,alpha+1,beta)); + } + else + { + if (rateType == 9) + { + global P = .5; + P:<1; + global betaP = 1; + betaP:>0.05;betaP:<85; + global betaQ = 2; + betaQ:>0.05;betaQ:<85; + global alpha = .5; + alpha:>0.01;alpha:<100; + global beta = 1; + beta:>0.01;beta:<500; + category c = (resp, EQUAL, MEAN, + P*_x_^(betaP-1)*(1-Min(_x_,1))^(betaQ-1)/Beta(betaP,betaQ)+(1-P)*(_x_>1)*GammaDist(Max(1e-20,_x_-1),alpha,beta), + P*IBeta(Min(_x_,1),betaP,betaQ)+(1-P)*CGammaDist(Max(_x_-1,0),alpha,beta), + 0,1e25, + P*betaP/(betaP+betaQ)*IBeta(Min(_x_,1),betaP+1,betaQ)+ + (1-P)*(alpha/beta*CGammaDist(Max(0,_x_-1),alpha+1,beta)+CGammaDist(Max(0,_x_-1),alpha,beta))); + } + else + { + if (rateType == 10) + { + global P = .5; + global betaP = 1; + global betaQ = 2; + betaP:>0.05; + betaQ:>0.05; + betaP:<85; + betaQ:<85; + global mu = 3; + global sigma = .01; + sigma:>0.0001; + sqrt2pi = Sqrt(8*Arctan(1)); + P:<1; + + category c = (resp, EQUAL, MEAN, + P*_x_^(betaP-1)*(1-Min(_x_,1))^(betaQ-1)/Beta(betaP,betaQ)+ + (1-P)*(_x_>=1)*Exp(-(_x_-mu)(_x_-mu)/(2*sigma*sigma))/(sqrt2pi__*sigma)/ZCDF((mu-1)/sigma), + P*IBeta(Min(_x_,1),betaP,betaQ)+(1-P)*(_x_>=1)*(1-ZCDF((mu-_x_)/sigma)/ZCDF((mu-1)/sigma)), + 0,1e25, + P*betaP/(betaP+betaQ)*IBeta(Min(_x_,1),betaP+1,betaQ)+ + (1-P)*(_x_>=1)*(mu*(1-ZCDF((1-mu)/sigma)-ZCDF((mu-_x_)/sigma))+ + sigma*(Exp((mu-1)(1-mu)/(2*sigma*sigma))-Exp((_x_-mu)(mu-_x_)/(2*sigma*sigma)))/sqrt2pi__)/ZCDF((mu-1)/sigma)); + } + else + { + if (rateType == 11) + { + global P = 1/3; + global P1 = .5; + + global mu = 3; + global sigma = .5; + sigma:>0.0001; + global sigma1 = 1; + sigma1:>0.0001; + + sqrt2pi = Sqrt(8*Arctan(1)); + P:<1; + P1:<1; + + categFreqMatrix = {resp+1,1}; + for (k=1; k<=resp; k=k+1) + { + categFreqMatrix[k]:=(1-P)/resp__; + } + categFreqMatrix[0]:=P; + + category c = (resp+1, categFreqMatrix, MEAN, + (1-P)((1-P1)*Exp(-(_x_-mu)(_x_-mu)/(2*sigma1*sigma1))/(sqrt2pi__*sigma1)/ZCDF(mu/sigma1)+ + P1*Exp(-(_x_-1)(_x_-1)/(2*sigma*sigma))/(sqrt2pi__*sigma)/ZCDF(1/sigma)), + P+(1-P)(_x_>1e-20)((1-P1)(1-ZCDF((mu-_x_)/sigma1)/ZCDF(mu/sigma1))+ + P1*(1-ZCDF((1-_x_)/sigma)/ZCDF(1/sigma))), + 0,1e25, + (1-P)((1-P1)(mu*(1-ZCDF(-mu/sigma1)-ZCDF((mu-_x_)/sigma1))+ + sigma1*(Exp(-mu*mu/(2*sigma1*sigma1))-Exp((_x_-mu)(mu-_x_)/(2*sigma1*sigma1)))/sqrt2pi__)/ZCDF(mu/sigma1)+ + P(1-ZCDF(-1/sigma)-ZCDF((1-_x_)/sigma)+ + sigma*(Exp(-1/(2*sigma*sigma))-Exp((_x_-1)(1-_x_)/(2*sigma*sigma)))/sqrt2pi__)/ZCDF(1/sigma)) + ); + } + else + { + if (rateType == 12) + { + global P = 1/3; + global P1 = .5; + + global mu = 3; + global sigma = .25; + global sigma1 = .5; + global sigma2 = 1; + sigma:>0.0001; + sigma1:>0.0001; + sigma2:>0.0001; + + sqrt2pi = Sqrt(8*Arctan(1)); + P:<1; + P1:<1; + + category c = (resp, EQUAL , MEAN, + 2*P*Exp(-_x_^2/(2*sigma*sigma))+ + (1-P)((1-P1)*Exp((_x_-mu)(mu-_x_)/(2*sigma2*sigma2))/(sqrt2pi__*sigma2)/ZCDF(mu/sigma2)+ + P1*Exp((1-_x_)(_x_-1)/(2*sigma1*sigma1))/(sqrt2pi__*sigma1)/ZCDF(1/sigma1)), + P*(1-2*ZCDF(-_x_/sigma))+ + (1-P)((1-P1)(1-ZCDF((mu-_x_)/sigma2)/ZCDF(mu/sigma2))+ + P1*(1-ZCDF((1-_x_)/sigma1)/ZCDF(1/sigma1))), + 0,1e25, + 2*P*sigma*(1-Exp(-_x_*_x_/(2*sigma*sigma)))/sqrt2pi__+ + (1-P)((1-P1)(mu*(1-ZCDF(-mu/sigma2)-ZCDF((mu-_x_)/sigma2))+ + sigma2*(Exp(-mu*mu/(2*sigma2*sigma2))-Exp((_x_-mu)(mu-_x_)/(2*sigma2*sigma2)))/sqrt2pi__)/ZCDF(mu/sigma2)+ + P1(1-ZCDF(-1/sigma1)-ZCDF((1-_x_)/sigma1)+ + sigma1*(Exp(-1/(2*sigma1*sigma1))-Exp((_x_-1)(1-_x_)/(2*sigma1*sigma1)))/sqrt2pi__)/ZCDF(mu/sigma1)) + ); + } + else + { + if (rateType == 13) + { + global sigma = .1; + sigma:>0.0001;sigma:<10; + sqrt2pi = Sqrt(8*Arctan(1)); + global _x_:<1e200; + category c = (resp, EQUAL, MEAN, + Exp (-Log(_x_)*Log(_x_) / (2*sigma*sigma)) / (_x_*sigma*sqrt2pi__), /*density*/ + ZCDF (Log(_x_)/sigma), /*CDF*/ + 1e-200, /*left bound*/ + 1e200, /*right bound*/ + Exp (.5*sigma^2)*ZCDF (Log(_x_)/sigma-sigma), + CONSTANT_ON_PARTITION + ); + } + else + { + if (rateType == 14) + { + global alpha = .5; + global beta = 1; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + category c = (resp, EQUAL, MEAN, GammaDist(_x_,alpha,beta), CGammaDist(_x_,alpha,beta), 0 , + 1e25,CGammaDist(_x_,alpha+1,beta)*alpha/beta,CONSTANT_ON_PARTITION); + } + else + { + global P1 = 1/3; + global P2 = .5; + P1:<1; + P2:<1; + global W1 = .25; + global R1 = 4; + global R2 = 3; + R1:>1; + R2:>1; + categFreqMatrix = {{P1,(1-P1)*P2, (1-P1)*(1-P2)}} ; + categRateMatrix = {{W1,W1*R1,W1*R1*R2}}; + category c = (3, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25, ,CONSTANT_ON_PARTITION); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return 0; +} + +/* ____________________________________________________________________________________________________________________*/ + +function FrameText (frameChar,vertChar,parOff,theText) +{ + h = Abs (theText)+4; + fprintf (stdout,"\n"); + for (k=0; k1) break; + } + if (k 1 */ + { + ConstructCategoryMatrix(marginals,lf,COMPLETE); + + CC = Columns (marginals); + if (rateType>=13) + /* subset rate variation */ + { + CC = CC/numberOfSubsets; + + subsetMarginals = {D,numberOfSubsets}; + for (v=0; v1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v=sigLevel) + { + fprintf (LAST_FILE_PATH,Format (v+1,0,0)," (",positiveProb,")\n"); + } + } + fprintf (LAST_FILE_PATH,"\n\n------------------------------------------------\n\n Subsets with dN/dS<=1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v=sigLevel) + { + fprintf (LAST_FILE_PATH,Format (v+1,0,0)," (",positiveProb,")\n"); + } + } + fprintf (LAST_FILE_PATH,"\n\n------------------------------------------------\n\n Sites with dN/dS<=1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v1."); + } + fprintf (LAST_FILE_PATH,"\n\n------------------------------------------------\n\n"); + return E; +} + +/* ____________________________________________________________________________________________________________________*/ + +function PopulateModelMatrix (ModelMatrixName&, EFV) +{ + ModelMatrixName = {ModelMatrixDimension,ModelMatrixDimension}; + + hshift = 0; + + if (modelType==0) + { + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + } + else + { + transition = v%16$4; + transition2= h%16$4; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + ModelMatrixName[h-hshift][v-vshift] := t*EFV__[transition__]; + ModelMatrixName[v-vshift][h-hshift] := t*EFV__[transition2__]; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t*EFV__[transition__]; + ModelMatrixName[v-vshift][h-hshift] := c*t*EFV__[transition2__]; + } + } + } + } + } + else + { + if (modelType==1) + { + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + nucPosInCodon = 2; + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + nucPosInCodon = 0; + } + else + { + transition = v%16$4; + transition2= h%16$4; + nucPosInCodon = 1; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + ModelMatrixName[h-hshift][v-vshift] := t*EFV__[transition__][nucPosInCodon__]; + ModelMatrixName[v-vshift][h-hshift] := t*EFV__[transition2__][nucPosInCodon__]; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t*EFV__[transition__][nucPosInCodon__]; + ModelMatrixName[v-vshift][h-hshift] := c*t*EFV__[transition2__][nucPosInCodon__]; + } + } + } + } + } + else + { + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + } + else + { + transition = v%16$4; + transition2= h%16$4; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + if (Abs(transition-transition2)%2) + { + ModelMatrixName[h-hshift][v-vshift] := kappa*t; + ModelMatrixName[v-vshift][h-hshift] := kappa*t; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := t; + ModelMatrixName[v-vshift][h-hshift] := t; + } + + } + else + { + if (Abs(transition-transition2)%2) + { + ModelMatrixName[h-hshift][v-vshift] := kappa*c*t; + ModelMatrixName[v-vshift][h-hshift] := kappa*c*t; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t; + ModelMatrixName[v-vshift][h-hshift] := c*t; + } + } + } + } + } + } + } + return (modelType>1); +} + +/* ____________________________________________________________________________________________________________________*/ + +function PopulateModelMatrix2 (ModelMatrixName&, EFV) +{ + ModelMatrixName = {ModelMatrixDimension,ModelMatrixDimension}; + + hshift = 0; + + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + } + else + { + transition = v%16$4; + transition2= h%16$4; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + if (Abs(transition-transition2)%2) + { + ExecuteCommands ("ModelMatrixName[h-hshift][v-vshift] := kappa"+l+"*t;ModelMatrixName[v-vshift][h-hshift] := kappa"+l+"*t;"); + } + else + { + ModelMatrixName[h-hshift][v-vshift] := t; + ModelMatrixName[v-vshift][h-hshift] := t; + } + + } + else + { + if (Abs(transition-transition2)%2) + { + ExecuteCommands ("ModelMatrixName[h-hshift][v-vshift] := c*kappa"+l+"*t;ModelMatrixName[v-vshift][h-hshift] := c*kappa"+l+"*t;"); + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t; + ModelMatrixName[v-vshift][h-hshift] := c*t; + } + } + } + } + } + return 1; +} +/* ____________________________________________________________________________________________________________________*/ + +function spawnLikelihood (kappaSharedOrNot) +{ + if (kappaSharedOrNot) + { + for (l=0; l=lowerSeqBound)&&(speciesIndex1)","Beta & (Normal>1)", + "0 & 2 (Normal>1)","0 & 2 (Normal>1)", + "3 Normal","3 Normal", + "RE:Log normal","Random Effects: Log normal", + "RE:Gamma","Random Effects: Gamma", + "RE:Discrete","Random Effects: 3 bin Discrete"); + + if (modelTypes[0]<0) + { + return; + } + for (rateType = 0; rateType < Rows(modelTypes)*Columns(modelTypes); rateType = rateType + 1) + { + modelType = modelTypes[rateType]; + chosenModelList[modelType] = 1; + } +} + +ChoiceList (shareType,"Choose parameter sharing mode",1,SKIP_NONE, + "All","Share dN/dS, transversion/transition ratio (if applicable) and base frequencies for all subsets.", + "dN/dS Only","Share only dN/dS. Transversion/transition ratio (if applicable) and base frequencies are separate for each subset." +); + +if (shareType<0) +{ + return; +} + +ChoiceList (modelType,"Choose a model",1,SKIP_NONE, + "MG94 1x4","Muse-Gaut 94 model with 4(-1) nucleotide frequency parameters (intra-codon position independent).", + "MG94 3x4","Muse-Gaut 94 model with 12(-3) nucleotide frequency parameters (intra-codon position specific).", + "GY94 1x4","Goldman-Yang 94 model with 4(-1) nucleotide frequency parameters (intra-codon position independent).", + "GY94 3x4","Goldman-Yang 94 model with 12(-3) nucleotide frequency parameters (intra-codon position specific)." +); + +if (modelType<0) +{ + return; +} + +if ((modelType==0)||(modelType==2)) +{ + if (shareType==0) + { + HarvestFrequencies (observedFreq,filteredData,1,1,0); + vectorOfFrequencies = BuildCodonFrequencies4 (observedFreq); + } + else + { + for (v=0; v1) +{ + global kappa = 2.; +} + +fprintf (stdout, "\n\n\nChoose the cutoff (0 to 1) for posterior of dN/dS>1 for a site to be considered under selective pressure:"); +fscanf (stdin, "Number",psigLevel); +if ((psigLevel <= 0)||(psigLevel>1)) +{ + psigLevel = .95; +} +fprintf (stdout, "\n>Using ", psigLevel , " cutoff\n"); + +fprintf (stdout, "\nChoose the number of categories in discretized distributions:"); +fscanf (stdin, "Number",categCount); +categCount = categCount$1; +if (categCount<=0) +{ + categCount = 8; +} + +fprintf (stdout, "\n>Using ", Format (categCount,0,0), " categories.\n"); + +SetDialogPrompt ("Write detailed results to:"); + +fprintf (PROMPT_FOR_FILE,CLEAR_FILE); + +global c = 1.; + +dummyVar = FrameText ("-","|",2,"SUMMARY TABLE"); +tableSeparator = "+-------------------------+----------------+---------------+-----+\n"; +fprintf (stdout, "\n\"p\" is the number of parameters in addition to the branch lengths.\nDetailed results including sites with dN/dS>1 will be written to\n",LAST_FILE_PATH,"\n\n"); +fprintf (stdout, tableSeparator, + "| MODEL (Number & Desc) | Log likelihood | dN/dS | p |\n", + tableSeparator); + +cachedBranchLengths = {{-1,-1}}; + +if (chosenModelList[0]>0) +{ + timer = Time(1); + fprintf (LAST_FILE_PATH,"\n*** RUNNING SINGLE RATE MODEL ***\n#################################\n"); + dummy = spawnLikelihood (shareType); + Optimize (res,lf); + fprintf (LAST_FILE_PATH,"\n>Done in ", Time(1)-timer, " seconds \n\n"); + fprintf (LAST_FILE_PATH,lf,"\n\n-----------------------------------\n\ndN/dS = ",c,"\n\n"); + + fprintf (stdout, "| 0. Single Rate Model | ",Format (res[1][0],14,6)," | ",Format (c,13,8)," | 0 |\n", + tableSeparator); + + timer = res[1][1]-res[1][2]; + cachedBranchLengths = {timer,1}; + + for (rateType = timer; rateType < Columns(cachedBranchLengths); rateType = rateType+1) + { + cachedBranchLengths[rateType-timer][0] = res [0][rateType]; + } +} + +for (rateType = 0; rateType < 16; rateType = rateType + 1) +{ + if (chosenModelList[rateType+1]==0) + { + continue; + } + timer = Time(1); + dummy = SetWDistribution (categCount); + dummy = spawnLikelihood (shareType); + + fprintf (LAST_FILE_PATH,"\n*** RUNNING MODEL ", Format(rateType+1,0,0), " (",ModelNames[rateType],") ***\n######################################\n"); + /*if (cachedBranchLengths[0][0]>=0.0) + { + v = ParameterCount[rateType]; + if (modelType>1) + { + v=v+1; + } + for (h=0; hDone in ",Time(1)-timer, " seconds \n\n", lf); + fprintf (stdout, "| "); + if (rateType<9) + { + fprintf (stdout," "); + } + fprintf (stdout, Format (rateType+1,0,0), ". ", ModelNames[rateType]); + for (dummy = Abs(ModelNames[rateType])+5; dummy<25; dummy = dummy+1) + { + fprintf (stdout," "); + } + dummy = GetDistributionParameters(psigLevel); + fprintf (stdout,"| ",Format (res[1][0],14,6)," | ",Format (dummy,13,8)," | ", + Format(ParameterCount[rateType],0,0)," |\n",tableSeparator); + + if (modelType>1) + { + kappa = 2.; + } +} diff --git a/samples/HyPhy/MolecularClock.bf b/samples/HyPhy/MolecularClock.bf new file mode 100644 index 00000000..92606d2d --- /dev/null +++ b/samples/HyPhy/MolecularClock.bf @@ -0,0 +1,147 @@ +#include "molclockBootstrap.bf"; + +RESTORE_GLOBALS = 1; +_DO_TREE_REBALANCE_ = 0; +VERBOSITY_LEVEL = -1; + +function RestoreGlobalValues (lfIndex) +{ + if (lfIndex==0) + { + for (i=0;i1) +{ + ChoiceList (parameter2Constrain, "Parameter(s) to constrain:",1,SKIP_NONE,LAST_MODEL_PARAMETER_LIST); + + if (parameter2Constrain<0) + { + return; + } + if (parameter2Constrain==0) + { + parameter2ConstrainString = ""; + for (parameter2Constrain=Rows("LAST_MODEL_PARAMETER_LIST")-1; parameter2Constrain; parameter2Constrain = parameter2Constrain-1) + { + GetString (funnyString,LAST_MODEL_PARAMETER_LIST,parameter2Constrain); + parameter2ConstrainString = parameter2ConstrainString + funnyString + ","; + } + GetString (funnyString,LAST_MODEL_PARAMETER_LIST,0); + parameter2ConstrainString = parameter2ConstrainString + funnyString; + } + else + { + GetString (parameter2ConstrainString,LAST_MODEL_PARAMETER_LIST,parameter2Constrain-1); + } +} +else +{ + GetString (parameter2ConstrainString,LAST_MODEL_PARAMETER_LIST,0); +} + +timer = Time(0); + +LikelihoodFunction lf = (filteredData,givenTree); + +Optimize (res,lf); + +separator = "*-----------------------------------------------------------*"; + +fprintf (stdout, "\n", separator, "\nRESULTS WITHOUT THE CLOCK:\n",lf); + +fullModelLik = res[1][0]; + +fullVars = res[1][1]; + +/* now specify the constraint */ + +Tree clockTree = treeString; + +ExecuteCommands ("MolecularClock (clockTree,"+parameter2ConstrainString+");"); + +LikelihoodFunction lfConstrained = (filteredData, clockTree); + +USE_LAST_RESULTS = 1; +Optimize (res1,lfConstrained); +USE_LAST_RESULTS = 0; + +SAVE_GLOBALS = res1[1][2]; + +if (SAVE_GLOBALS) +{ + globalSpoolMatrix = {1,SAVE_GLOBALS}; + + for (i=0;idS in the data sets? + - Do the sites under positive selection share the same dN/dS? + - Two previous tests combined +*/ + +RequireVersion ("0.9920061001"); + +/*---------------------------------------------------------------------------------------------------------------------------------------------------*/ + +function BuildCodonFrequencies (obsF) +{ + PIStop = 1.0; + result = {ModelMatrixDimension,1}; + hshift = 0; + + for (h=0; h<64; h=h+1) + { + first = h$16; + second = h%16$4; + third = h%4; + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + PIStop = PIStop-obsF[first][0]*obsF[second][1]*obsF[third][2]; + continue; + } + result[h-hshift][0]=obsF[first][0]*obsF[second][1]*obsF[third][2]; + } + return result*(1.0/PIStop); +} + +/*---------------------------------------------------------------------------------------------------------------------------------------------------*/ + +function ReportDistributionString (rc,freqStrMx,infix, skip0) +{ + distroString = ""; + distroString * 1024; + + reportMx = {rc,4}; + + distroString * (" dN/dS dS dN Prob\n"); + for (mi=0; mi 0) + { + distroString * (Format(reportMx[mi][2],8,3)+Format(reportMx[mi][0],8,3)+Format(reportMx[mi][1],8,3)+Format(reportMx[mi][3],10,3)+"\n"); + } + } + + distroString * 0; + return distroString; +} + +/*---------------------------------------------------------------------------------------------------------------------------------------------------*/ + +function DefineNucleotideBiases (dummy) +{ + ModelTitle = "MG94x"+modelDesc[0]; + modelConstraintString = ""; + + for (customLoopCounter2=0; customLoopCounter2<6; customLoopCounter2=customLoopCounter2+1) + { + if (rateBiasTerms[customLoopCounter2] != "1") + { + ExecuteCommands ("global " + rateBiasTerms[customLoopCounter2] + "=1;"); + } + } + + for (customLoopCounter2=1; customLoopCounter2<6; customLoopCounter2=customLoopCounter2+1) + { + for (customLoopCounter=0; customLoopCounter0.0000001;global NS_"+infix+"0 = 0.1;"); + + for (mi=1; mi0.0000001;\nglobal NS_"+infix+mi+";\n"); + if (randomizeInitValues) + { + categDef1*("global P_"+infix+mi+" = Random(0.05,0.95);\nP_"+infix+mi+":<1;\n"); + categDef1*("global S_"+infix+mi+" = Random(0.05,1);"); + } + else + { + categDef1*("global P_"+infix+mi+" = 1/"+(resp+1-mi)+";\nP_"+infix+mi+":<1;\n"); + } + } + + freqStrMx = {resp,1}; + if (resp>1) + { + freqStrMx[0] = "P_"+infix+"1"; + + for (mi=1; mi1;R_"+infix+mi+"="+Random(1.05,10)+";"); + } + } + else + { + for (mi=respN+respP; mi1;R_"+infix+mi+"=2+"+mi+";"); + } + } + } + else + { + if (randomizeInitValues) + { + for (mi=0; mi 1) + { + lfParts = lfParts + ",filteredData_" + fileID + "," + treeID; + } + } +} + +lfParts * 0; +ExecuteCommands (lfParts + "," + lfDef1 + ");"); + +sumPath = resToPath + ".summary"; + +treeBranchParameters = 0; +for (fileID = 1; fileID <= fileCount; fileID = fileID + 1) +{ + ExecuteCommands ("treeBranchParameters = treeBranchParameters + BranchCount(tree_" + fileID + "_0) + TipCount(tree_" + fileID + "_0);"); +} + +/*-------------- INDEPENDENT DISTRIBUTIONS ------------------*/ + +sop = Max(OPTIMIZATION_PRECISION,0.001); + +fprintf (stdout, "Running simpler distribution approximations to ensure good convergence...\n"); + +OPTIMIZATION_PRECISION = 0.1; + +P_1_1 := 0;P_1_2 := 0;P_1_3 := 0; +P_2_1 := 0;P_2_2 := 0;P_2_3 := 0; + +S_1_0 := 1;S_1_1 := 1;S_1_2 := 1;S_1_3 := 1; +S_2_0 := 1;S_2_1 := 1;S_2_2 := 1;S_2_3 := 1; +R_1_0 := 1;R_1_1 := 1;R_1_2 := 1; +R_2_0 := 1;R_2_1 := 1;R_2_2 := 1; + +Optimize (res,lf); +USE_LAST_RESULTS = 1; +SKIP_CONJUGATE_GRADIENT = 1; + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",1); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",1); + +fprintf (stdout, "\n*** Done with pass 1. Log(L) = ", Format(res[1][0],10,3), " *** \n"); +fprintf (stdout, "Approximate rates for data set 1:\n", d1); +fprintf (stdout, "Approximate rates for data set 2:\n", d2); + +codonFactor_1 := codonFactor_1__; +codonFactor_2 := codonFactor_2__; + +AC_1 := AC_1__; AT_1 := AT_1__; CG_1 := CG_1__; CT_1 := CT_1__; GT_1 := GT_1__; +AC_2 := AC_2__; AT_2 := AT_2__; CG_2 := CG_2__; CT_2 := CT_2__; GT_2 := GT_2__; + + + +fprintf (stdout, "\nGateaux sampling positively selected directions\n"); + +P_1_1 = 2/filteredData_1.sites; +S_1_3 = 1; + +baseLineLL = res[1][0]; +LFCompute (lf,LF_START_COMPUTE); +bestDiff = -1e100; +bestAlpha = 1; +bestBeta = 1; +bestLL = -1e100; + +step = 0.1; +step2 = 0.25; +v1 = 0.05; + +for (v1c = 0; v1c < 10; v1c = v1c + 1) +{ + v2 = v1+step; + for (v2c = 0; v2c < 20; v2c = v2c+1) + { + checkASample ("1_0"); + v2 = v2 + step2; + } + v1 = v1+step; +} + +S_1_0 = bestAlpha; +R_1_0 = bestBeta; +bestAlpha = 1; +bestBeta = 1; + +if (bestDiff <= 0) +{ + P_1_1 = 0; +} +saveBD = bestDiff; + +P_2_1 = 1/filteredData_2.sites; +S_2_3 = 1; + +v1 = 0.05; +for (v1c = 0; v1c < 10; v1c = v1c + 1) +{ + v2 = v1+step; + for (v2c = 0; v2c < 20; v2c = v2c+1) + { + checkASample ("2_0"); + v2 = v2 + step2; + } + v1 = v1+step; +} + +LFCompute (lf,LF_DONE_COMPUTE); + +S_2_0 = bestAlpha; +R_2_0 = bestBeta; + +if (bestDiff <= saveBD) +{ + P_2_1 = 0; +} + +if (bestDiff > 0) +{ + fprintf (stdout, "\nFound a likelihood improvement in the direction (", S_1_0, ",", S_1_0*R_1_0, "), (", S_2_0, ",", S_2_0*R_2_0, "), ",bestDiff," likelihood points\n"); +} + + +Optimize (res,lf); + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",1); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",1); + +fprintf (stdout, "\n*** Done with pass 2. Log(L) = ", Format(res[1][0],10,3), " *** \n"); +fprintf (stdout, "Approximate rates for data set 1:\n", d1); +fprintf (stdout, "Approximate rates for data set 2:\n", d2); + + +fprintf (stdout, "\nGateaux sampling neutral directions\n"); + +baseLineLL = res[1][0]; +LFCompute (lf,LF_START_COMPUTE); + +P_1_2 = 1/(filteredData_1.sites*(1-P_1_1)); +bestDiff = -1e100; +bestAlpha = 1; +step = 0.02; +v1 = 0; +for (v1c = 0; v1c < 50; v1c = v1c + 1) +{ + v1 = v1 + step; + v2 = v1; + + checkASample ("1_1"); +} + + +S_1_1 = bestAlpha; +bestAlpha = 1; + +if (bestDiff <= 0) +{ + P_1_2 = 0; +} +saveBD = bestDiff; +R_1_1 := 1; + +P_2_2 = 1/(filteredData_2.sites*(1-P_2_1)); + +v1 = 0; +for (v1c = 0; v1c < 50; v1c = v1c + 1) +{ + v1 = v1 + step; + v2 = v1; + + checkASample ("2_1"); +} + + +LFCompute (lf,LF_DONE_COMPUTE); + +S_2_1 = bestAlpha; +R_2_1 := 1; + +if (bestDiff <= saveBD) +{ + P_2_2 = 0; +} + +if (bestDiff > 0) +{ + fprintf (stdout, "\nFound a likelihood improvement in the direction (", S_1_1, ",", S_1_1, "), (", S_2_1, ",", S_2_1, "), ",bestDiff," likelihood points\n"); +} + +Optimize (res,lf); +d1 = ReportDistributionString(4,freqStrMx_1,"1_",1); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",1); + +fprintf (stdout, "\n*** Done with pass 3. Log(L) = ", Format(res[1][0],10,3), " *** \n"); +fprintf (stdout, "Approximate rates for data set 1:\n", d1); +fprintf (stdout, "Approximate rates for data set 2:\n", d2); + +fprintf (stdout, "\nGateaux sampling negative selected directions\n"); + + +baseLineLL = res[1][0]; +LFCompute (lf,LF_START_COMPUTE); +bestDiff = -1e100; +bestAlpha = 1; +bestBeta = 1; + + +step = 1/16; +v1 = 0; +P_1_3 = 2/(filteredData_1.sites*(1-P_1_1)*(1-P_1_2)); +S_1_2 = 1; +for (v1c = 0; v1c < 15; v1c = v1c + 1) +{ + v1 = v1+step; + v2 = step/2; + for (v2c = 0; v2c < v1c; v2c = v2c+1) + { + checkASample ("1_2"); + v2 = v2 + step; + } +} + + +S_1_2 = bestAlpha; +R_1_2 = bestBeta; +bestAlpha = 1; +bestBeta = 1; + +if (bestDiff <= 0) +{ + P_1_3 = 0; +} +saveBD = bestDiff; + + +v1 = 0; +P_2_3 = 2/(filteredData_2.sites*(1-P_2_1)*(1-P_2_2)); +S_2_2 = 1; +for (v1c = 0; v1c < 15; v1c = v1c + 1) +{ + v1 = v1+step; + v2 = step/2; + for (v2c = 0; v2c < v1c; v2c = v2c+1) + { + checkASample ("2_2"); + v2 = v2 + step; + } +} + +LFCompute (lf,LF_DONE_COMPUTE); + +S_2_2 = bestAlpha; +R_2_2 = bestBeta; + +if (bestDiff <= saveBD) +{ + P_2_2 = 0; +} + +if (bestDiff > 0) +{ + fprintf (stdout, "\nFound a likelihood improvement in the direction (", S_1_2, ",", S_1_2*R_1_2, "), (", S_2_2, ",", S_2_2*R_2_2, "), ",bestDiff," likelihood points\n"); +} + +AC_1 = AC_1; AT_1 = AT_1; CG_1 = CG_1; CT_1 = CT_1; GT_1 = GT_1; +AC_2 = AC_2; AT_2 = AT_2; CG_2 = CG_2; CT_2 = CT_2; GT_2 = GT_2; + +if (Abs(modelConstraintString_1)) +{ + ExecuteCommands (modelConstraintString_1); +} +if (Abs(modelConstraintString_2)) +{ + ExecuteCommands (modelConstraintString_2); +} + +codonFactor_1 = codonFactor_1; +codonFactor_2 = codonFactor_2; + + +GetString (paramList, lf, -1); +degF = Columns(paramList["Global Independent"]) + 14 - 2*branchLengths + treeBranchParameters; + +OPTIMIZATION_PRECISION = sop; +fprintf (stdout, "Running an independent distributions model fit (", degF, " parameters)...\n"); +Optimize (res,lf); +LogL = res[1][0]; + +AIC = 2*(degF-LogL); +AICc = 2*(degF*totalCodonCount/(totalCodonCount-degF-1) - LogL); + +fprintf (stdout, "\n\nIndependent distributions model fit summary\n", + "\nLog likelihood:", Format (LogL, 15, 5), + "\nParameters :", Format (degF, 15, 0), + "\nAIC :", Format (AIC, 15, 5), + "\nc-AIC :", Format (AICc, 15, 5),"\n" +); + +fprintf (sumPath,CLEAR_FILE,"Independent distributions model fit summary\n", + "\nLog likelihood:", Format (LogL, 15, 5), + "\nParameters :", Format (degF, 15, 0), + "\nAIC :", Format (AIC, 15, 5), + "\nc-AIC :", Format (AICc, 15, 5),"\n"); + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",0); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",0); + +fprintf (stdout, "Inferred rates for data set 1:\n", d1); +fprintf (sumPath, "Inferred rates for data set 1:\n", d1); +fprintf (stdout, "Inferred rates for data set 2:\n", d2); +fprintf (sumPath, "Inferred rates for data set 2:\n", d2); + +LIKELIHOOD_FUNCTION_OUTPUT = 6; +fprintf (resToPath,CLEAR_FILE,lf); + + +/*-------------- SHARED POSITIVE SELECTION STRENGTHS ------------------*/ + +for (k=0; k=respP+respN) + { + ExecuteCommands ("R_1_"+k+"=0.5(R_1_"+k+"+R_2_"+k+");"); + } + ExecuteCommands ("S_2_"+k+":=S_1_"+k+";R_2_"+k+":=R_1_"+k+";"); +} +for (k=1; k<=resp; k=k+1) +{ + ExecuteCommands ("P_1_"+k+"=0.5(P_1_"+k+"+P_2_"+k+");"); + ExecuteCommands ("P_2_"+k+":=P_1_"+k+";"); +} + +GetString (paramList, lf, -1); +degFJ = Columns(paramList["Global Independent"]) + 14 - 2*branchLengths + treeBranchParameters; +fprintf (stdout, "\nRunning a shared distributions model fit (", degFJ, " parameters)...\n"); + +Optimize (res_J,lf); +LogLJ = res_J[1][0]; + +AICJ = 2*(degFJ-LogLJ); +AICcJ = 2*(degFJ*totalCodonCount/(totalCodonCount-degFJ-1) - LogLJ); + +fprintf (stdout, "\n\nShared distributions model fit summary\n", + "\nLog likelihood:", Format (LogLJ, 15, 5), + "\nParameters :", Format (degFJ, 15, 0), + "\nAIC :", Format (AICJ, 15, 5), + "\nc-AIC :", Format (AICcJ, 15, 5),"\n" +); + +fprintf (sumPath, "\n\nShared distributions model fit summary\n", + "\nLog likelihood:", Format (LogLJ, 15, 5), + "\nParameters :", Format (degFJ, 15, 0), + "\nAIC :", Format (AICJ, 15, 5), + "\nc-AIC :", Format (AICcJ, 15, 5),"\n" +); + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",0); + +fprintf (stdout, "Inferred joint rates:\n", d1); +fprintf (sumPath, "Inferred joint rates:\n", d1); + +fpath = resToPath + ".JointAll"; +LIKELIHOOD_FUNCTION_OUTPUT = 6; +fprintf (fpath,CLEAR_FILE,lf); + +USE_LAST_RESULTS = 0; +SKIP_CONJUGATE_GRADIENT = 0; +LIKELIHOOD_FUNCTION_OUTPUT = 2; + +fprintf (stdout, "\nDistribution comparison tests\n", + "\n\tAre the distributions different?", + "\n\t\tLR = ", Format (2*(LogL-LogLJ),10,3), + " DF = ", degF-degFJ, + " p = ", Format(1-CChi2(2*(LogL-LogLJ), degF-degFJ),8,3), "\n"); + +fprintf (stdout, "\n\tAre selective regimes (dN/dS and proportions) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSH),10,3), + " DF = ", degF-degFPSH, + " p = ", Format(1-CChi2(2*(LogL-LogLPSH), degF-degFPSH),8,3), "\n"); + +fprintf (stdout, "\n\tAre selection strengths (dN/dS) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSS),10,3), + " DF = ", degF-degFPSS, + " p = ", Format(1-CChi2(2*(LogL-LogLPSS), degF-degFPSH),8,3), "\n"); + +fprintf (stdout, "\n\tAre the proportions of codons under selection different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSP),10,3), + " DF = ", degF-degFPSP, + " p = ", Format(1-CChi2(2*(LogL-LogLPSP), degF-degFPSP),8,3), "\n"); + +fprintf (sumPath, "\n\nDistribution comparison tests\n", + "\n\tAre the distributions different?", + "\n\t\tLR = ", Format (2*(LogL-LogLJ),10,3), + " DF = ", degF-degFJ, + " p = ", Format(1-CChi2(2*(LogL-LogLJ), degF-degFJ),8,3), "\n"); + +fprintf (sumPath, "\n\tAre selective regimes (dN/dS and proportions) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSH),10,3), + " DF = ", degF-degFPSH, + " p = ", Format(1-CChi2(2*(LogL-LogLPSH), degF-degFPSH),8,3), "\n"); + +fprintf (sumPath, "\n\tAre selection strengths (dN/dS) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSS),10,3), + " DF = ", degF-degFPSS, + " p = ", Format(1-CChi2(2*(LogL-LogLPSS), degF-degFPSH),8,3), "\n"); + +fprintf (sumPath, "\n\tAre the proportions of codons under selection different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSP),10,3), + " DF = ", degF-degFPSP, + " p = ", Format(1-CChi2(2*(LogL-LogLPSP), degF-degFPSP),8,3), "\n"); +/*------------------------------------------------------------------------------------------------------------*/ + +function checkASample (whichRate) +{ + ExecuteCommands ("S_"+whichRate+"=v1;R_"+whichRate+"=v2/v1;"); + LFCompute (lf,res_n); + localDiff = res_n-baseLineLL; + if (localDiff > bestDiff) + { + bestDiff = localDiff; + bestAlpha = v1; + bestBeta = v2/v1; + } + return 0; +} diff --git a/samples/HyPhy/hyphy_cmds.bf b/samples/HyPhy/hyphy_cmds.bf new file mode 100644 index 00000000..7a2189f9 --- /dev/null +++ b/samples/HyPhy/hyphy_cmds.bf @@ -0,0 +1,11003 @@ +INTEGRATION_PRECISION_FACTOR = 5.0e-6; +END_OF_FILE = 0; +LIKELIHOOD_FUNCTION_OUTPUT = 5; +ACCEPT_BRANCH_LENGTHS = 1; +#include "/home/oashenbe/.local/lib/python2.7/site-packages/phyloExpCM/data//NTsCodonsAAs.ibf"; +fprintf(stdout, "Running HYPHY script hyphy_cmds.bf...\n"); +DataSet data = ReadDataFile("_codenames_Aligned_NPs_Swine.fasta"); +assert(data.sites % 3 == 0, "Sequence lengths not multiples of 3"); +totalcodons = data.sites $ 3; +fprintf(stdout, "Read from _codenames_Aligned_NPs_Swine.fasta a set of ", data.species, " sequences consisting of ", data.sites, " nucleotides corresponding to ", totalcodons, " codons each.\n"); +fprintf(stdout, "The analysis will include the following 498 codon positions (sequential numbering starting with 1):\n1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498\n"); +assert(totalcodons >= 498, "Largest included site exceeds sequence length"); +DataSetFilter codonfilter = CreateFilter(data, 3, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493", "", "TAA,TAG,TGA"); +assert(data.species == codonfilter.species, "species number mismatch"); +assert(codonfilter.sites == 498, "Codon filtered data does not contain the right number of sites"); +fprintf(stdout, "Created a codon filter of ", codonfilter.sites, " sites.\n"); +assert(totalcodons - (totalcodons - 498) - 0 == codonfilter.sites, "Codon filtered data is not the expected length. Do sequences contain stop codons?"); +CheckCodonFilter("codonfilter"); +fprintf(stdout, "Reading tree string from _codenames_codonphyml_Swine_tree.newick.\n"); +fscanf("_codenames_codonphyml_Swine_tree.newick", String, treestring); +fprintf(stdout, "Using the Goldman Yang 1994 (GY94) codon model...\n"); +#include "/home/oashenbe/.local/lib/python2.7/site-packages/phyloExpCM/data//CF3x4.ibf"; +#include "/home/oashenbe/.local/lib/python2.7/site-packages/phyloExpCM/data//GY94.ibf"; +CreateGY94Model("CF3x4", "global", "global", 4, 4, 1); +UseModel(model); +ExecuteCommands("Tree tree = treestring;") +assert(codonfilter.species == TipCount(tree), "Number of species and number of tips differ"); +LikelihoodFunction likelihood = (codonfilter, tree); +fprintf(stdout, "\nNow optimizing the likelihood function...\n"); +Optimize(mlestimates, likelihood) +fprintf(stdout, "Completed likelihood optimization. Optimized ", mlestimates[1][1], " indpendent parameters and ", mlestimates[1][2], " shared parameters to obtain a log likelihood of ", mlestimates[1][0], ".\n"); +fprintf(stdout, "Writing the results to hyphy_output.txt.\n"); +fprintf("hyphy_output.txt", "Log likelihood: ", mlestimates[1][0], "\nindependent parameters (includes branch lengths): ", mlestimates[1][1], "\nshared parameters: ", mlestimates[1][2], "\nnumber of branch lengths: ", TipCount(tree) + BranchCount(tree), "\nnumber of tip nodes: ", TipCount(tree), "\nnumber of internal branches: ", BranchCount(tree), "\n",likelihood); +fprintf(stdout, "\nNow computing per-site likelihoods.\n"); +fprintf(stdout, "\nFirst fixing all global variables to the maximum-likelihood values estimated on the entire tree.\n"); +GetString(associativearray, likelihood, -1); +globalindependentvariables = associativearray["Global Independent"]; +for (ivariable=0; ivariable Date: Thu, 30 Apr 2015 17:00:50 +0200 Subject: [PATCH 454/875] Add languages.yml entry and sample files for OGC Geography Markup Language (#2366) --- lib/linguist/languages.yml | 1 + samples/XML/point-3.1.gml | 4 ++++ samples/XML/point-3.2.gml | 4 ++++ 3 files changed, 9 insertions(+) create mode 100644 samples/XML/point-3.1.gml create mode 100644 samples/XML/point-3.2.gml diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 662c488f..bcac18fa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3409,6 +3409,7 @@ XML: - .fsproj - .fxml - .glade + - .gml - .grxml - .ivy - .jelly diff --git a/samples/XML/point-3.1.gml b/samples/XML/point-3.1.gml new file mode 100644 index 00000000..233654d0 --- /dev/null +++ b/samples/XML/point-3.1.gml @@ -0,0 +1,4 @@ + + + 52.56 13.29 + diff --git a/samples/XML/point-3.2.gml b/samples/XML/point-3.2.gml new file mode 100644 index 00000000..af9dce90 --- /dev/null +++ b/samples/XML/point-3.2.gml @@ -0,0 +1,4 @@ + + + 52.56 13.29 + From 03369b8a6c4d1231d4c1e14d0967d00600779f6d Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Sun, 3 May 2015 12:51:52 -0500 Subject: [PATCH 455/875] use https url for travis support --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index f22c7288..cfaf6c66 100644 --- a/.gitmodules +++ b/.gitmodules @@ -659,4 +659,4 @@ url = https://github.com/jflex-de/jflex.tmbundle.git [submodule "vendor/grammars/Bind.tmbundle"] path = vendor/grammars/Bind.tmbundle - url = git@github.com:norm/Bind.tmbundle.git + url = https://github.com/norm/Bind.tmbundle.git From 5382c1b79519cfb33627eb3b288c922ea816d680 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 6 May 2015 07:21:47 +0200 Subject: [PATCH 456/875] Make it more clear that Vim and Emacs modelines are two alternatives. --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c7d77101..e673537f 100644 --- a/README.md +++ b/README.md @@ -53,16 +53,18 @@ project-docs/* linguist-documentation docs/formatter.rb linguist-documentation=false ``` -### Using Emacs and Vim modelines +### Using Emacs or Vim modelines -Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com +Alternatively, you can use Vim or Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com +##### Vim ``` -Vim vim: set filetype=prolog: vim: set ft=cpp: +``` -Emacs +##### Emacs +``` -*- mode: php;-*- ``` From dc22b0f869d99f729e92e9469fb5495c80d96033 Mon Sep 17 00:00:00 2001 From: Ilya Antipenko Date: Wed, 6 May 2015 20:41:37 +0300 Subject: [PATCH 457/875] Change PHP group to HTML for TWIG --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1159d79c..9cd84eb1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3262,7 +3262,7 @@ Turtle: Twig: type: markup - group: PHP + group: HTML extensions: - .twig tm_scope: text.html.twig From f2af2156fa96791a24b6fcf8ab0785bde47dfc14 Mon Sep 17 00:00:00 2001 From: Paul Handly Date: Sat, 9 May 2015 13:10:45 -0400 Subject: [PATCH 458/875] Add language for Unity3D Asset files --- lib/linguist/languages.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1159d79c..5066b4d9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3287,6 +3287,18 @@ Unified Parallel C: - .upc tm_scope: source.c +Unity3D Asset: + type: data + ace_mode: yaml + color: "#ab69a1" + extensions: + - .anim + - .asset + - .mat + - .prefab + - .unity + tm_scope: source.yaml + UnrealScript: type: programming color: "#a54c4d" From 0c2aeae00db35f4ae6338dc0509a212acd1df36b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 10 May 2015 20:36:41 +0200 Subject: [PATCH 459/875] .inc extension for PHP, Pascal, Assembly, SQL, C++, HTML and SourcePawn --- lib/linguist/languages.yml | 7 + samples/Assembly/fp_sqr32_160_comba.inc | 245 ++++++++++++++++++++++++ samples/C++/instances.inc | 34 ++++ samples/HTML/rpanel.inc | 31 +++ samples/PHP/file_display.inc | 142 ++++++++++++++ samples/Pascal/image_url.inc | 37 ++++ samples/SQL/hostcache_set_state.inc | 23 +++ samples/SourcePawn/fixed.inc | 91 +++++++++ 8 files changed, 610 insertions(+) create mode 100644 samples/Assembly/fp_sqr32_160_comba.inc create mode 100644 samples/C++/instances.inc create mode 100644 samples/HTML/rpanel.inc create mode 100644 samples/PHP/file_display.inc create mode 100644 samples/Pascal/image_url.inc create mode 100644 samples/SQL/hostcache_set_state.inc create mode 100644 samples/SourcePawn/fixed.inc diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1159d79c..3e35cf27 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -224,6 +224,7 @@ Assembly: extensions: - .asm - .a51 + - .inc - .nasm tm_scope: source.asm.x86 ace_mode: assembly_x86 @@ -409,6 +410,7 @@ C++: - .hh - .hpp - .hxx + - .inc - .inl - .ipp - .tcc @@ -1251,6 +1253,7 @@ HTML: - .html - .htm - .html.hl + - .inc - .st - .xht - .xhtml @@ -2322,6 +2325,7 @@ PHP: - .aw - .ctp - .fcgi + - .inc - .php3 - .php4 - .php5 @@ -2409,6 +2413,7 @@ Pascal: - .pas - .dfm - .dpr + - .inc - .lpr - .pp ace_mode: pascal @@ -2892,6 +2897,7 @@ SQL: - .sql - .cql - .ddl + - .inc - .prc - .tab - .udf @@ -3082,6 +3088,7 @@ SourcePawn: - sourcemod extensions: - .sp + - .inc - .sma tm_scope: source.sp ace_mode: text diff --git a/samples/Assembly/fp_sqr32_160_comba.inc b/samples/Assembly/fp_sqr32_160_comba.inc new file mode 100644 index 00000000..ce5a62b8 --- /dev/null +++ b/samples/Assembly/fp_sqr32_160_comba.inc @@ -0,0 +1,245 @@ + + push r2 + dint + nop + bis #MPYDLYWRTEN,&MPY32CTL0 + bic #MPYDLY32,&MPY32CTL0 + mov #SUMEXT,r13 + clr r12 + + mov @r15+,r4 + mov @r15+,r5 + + mov @r15+,r6 + mov @r15+,r7 + + mov @r15+,r8 + mov @r15+,r9 + + mov @r15+,r10 + mov @r15+,r11 + + sub #2*8,r15 + + /* SELF_STEP_FIRST */ + mov r4,&MPY32L + mov r5,&MPY32H + mov r4,&OP2L + mov r5,&OP2H + + /* COLUMN_END */ + mov &RES0,2*0(r14) + mov &RES1,2*(0+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r6,&OP2L + mov r7,&OP2H + add &SUMEXT,r12 + mov r6,&OP2L + mov r7,&OP2H + + /* COLUMN_END */ + mov &RES0,2*2(r14) + add @r13,r12 + mov &RES1,2*(2+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r8,&OP2L + mov r9,&OP2H + add &SUMEXT,r12 + mov r8,&OP2L + mov r9,&OP2H + + /* SELF_STEP */ + mov r6,&MAC32L + mov r7,&MAC32H + add @r13,r12 + mov r6,&OP2L + mov r7,&OP2H + + /* COLUMN_END */ + mov &RES0,2*4(r14) + add @r13,r12 + mov &RES1,2*(4+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r10,&OP2L + mov r11,&OP2H + add &SUMEXT,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* STEP_2MORE */ + mov r6,&MAC32L + mov r7,&MAC32H + add @r13,r12 + mov r8,&OP2L + mov r9,&OP2H + add &SUMEXT,r12 + mov r8,&OP2L + mov r9,&OP2H + + /* COLUMN_END */ + mov &RES0,2*6(r14) + add @r13,r12 + mov &RES1,2*(6+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov 2*8(r15),&OP2L + mov 2*9(r15),&OP2H + add &SUMEXT,r12 + mov 2*8(r15),&OP2L + mov 2*9(r15),&OP2H + + /* STEP_2MORE */ + mov r6,&MAC32L + mov r7,&MAC32H + add @r13,r12 + mov r10,&OP2L + mov r11,&OP2H + add &SUMEXT,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* SELF_STEP */ + mov r8,&MAC32L + mov r9,&MAC32H + add @r13,r12 + mov r8,&OP2L + mov r9,&OP2H + + /* COLUMN_END */ + mov &RES0,2*8(r14) + add @r13,r12 + mov &RES1,2*(8+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + mov 2*8(r15),r4 + mov 2*(8+1)(r15),r5 + + /* STEP_1 */ + mov r6,&MAC32L + mov r7,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + add &SUMEXT,r12 + mov r4,&OP2L + mov r5,&OP2H + + /* STEP_2MORE */ + mov r8,&MAC32L + mov r9,&MAC32H + add @r13,r12 + mov r10,&OP2L + mov r11,&OP2H + add &SUMEXT,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* COLUMN_END */ + mov &RES0,2*10(r14) + add @r13,r12 + mov &RES1,2*(10+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r8,&MAC32L + mov r9,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + add &SUMEXT,r12 + mov r4,&OP2L + mov r5,&OP2H + + /* SELF_STEP */ + mov r10,&MAC32L + mov r11,&MAC32H + add @r13,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* COLUMN_END */ + mov &RES0,2*12(r14) + add @r13,r12 + mov &RES1,2*(12+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r10,&MAC32L + mov r11,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + add &SUMEXT,r12 + mov r4,&OP2L + mov r5,&OP2H + + /* COLUMN_END */ + mov &RES0,2*14(r14) + add @r13,r12 + mov &RES1,2*(14+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* SELF_STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + + /* COLUMN_END */ + mov &RES0,2*16(r14) + add @r13,r12 + mov &RES1,2*(16+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* END */ + mov &RES0,2*18(r14) + mov &RES1,2*(18+1)(r14) + pop r2 + eint diff --git a/samples/C++/instances.inc b/samples/C++/instances.inc new file mode 100644 index 00000000..37591cb5 --- /dev/null +++ b/samples/C++/instances.inc @@ -0,0 +1,34 @@ +#include "QPBO.h" + +#ifdef _MSC_VER +#pragma warning(disable: 4661) +#endif + +// Instantiations + +template class QPBO; +template class QPBO; +template class QPBO; + +template <> + inline void QPBO::get_type_information(char*& type_name, char*& type_format) +{ + type_name = "int"; + type_format = "d"; +} + +template <> + inline void QPBO::get_type_information(char*& type_name, char*& type_format) +{ + type_name = "float"; + type_format = "f"; +} + +template <> + inline void QPBO::get_type_information(char*& type_name, char*& type_format) +{ + type_name = "double"; + type_format = "Lf"; +} + + diff --git a/samples/HTML/rpanel.inc b/samples/HTML/rpanel.inc new file mode 100644 index 00000000..95ceb913 --- /dev/null +++ b/samples/HTML/rpanel.inc @@ -0,0 +1,31 @@ + + + + + + + +
+

Поддержка:

+
+ + + + + + + + + + + +
+

Москва:

+
+

+7-902-7-800-807

+
+

Регионы:

+
+

+7-902-7-800-807

+
+ diff --git a/samples/PHP/file_display.inc b/samples/PHP/file_display.inc new file mode 100644 index 00000000..8133a3b9 --- /dev/null +++ b/samples/PHP/file_display.inc @@ -0,0 +1,142 @@ + TRUE, + 'title' => t('File display'), + 'description' => t('Displays the file with a configurable style.'), + 'required context' => new ctools_context_required(t('File'), 'entity:file'), + 'category' => t('File'), + 'defaults' => array( + 'displays' => array(), + ), +); + +/** + * Render the node content. + */ +function file_entity_file_display_content_type_render($subtype, $conf, $panel_args, $context) { + if (!empty($context) && empty($context->data)) { + return; + } + $file = isset($context->data) ? clone($context->data) : NULL; + $block = new stdClass(); + $block->module = 'file_entity'; + $block->delta = $file->fid; + + if (empty($file)) { + $block->delta = 'placeholder'; + $block->title = t('File display'); + $block->content = t('File display goes here.'); + } + else { + if (!empty($conf['identifier'])) { + $file->ctools_template_identifier = $conf['identifier']; + } + + $block->title = $file->filename; + $block->content = file_view_file($file, $conf['displays']); + } + + if (!empty($conf['link']) && $file) { + $block->title_link = entity_uri('file', $file); + } + + return $block; +} + +/** + * Edit form for this plugin. + */ +function file_entity_file_display_content_type_edit_form($form, &$form_state) { + $conf = $form_state['conf']; + $form['#tree'] = TRUE; + $form['#attached']['js'][] = drupal_get_path('module', 'file_entity') . '/file_entity.admin.js'; + + // Retrieve available formatters for this file. We can load all file types + // since we don't know which type the file is at this point. + $formatters = file_info_formatter_types(); + + // Formatter status. + $form['displays']['status'] = array( + '#type' => 'item', + '#title' => t('Enabled displays'), + '#prefix' => '
', + '#suffix' => '
', + ); + $i=0; + foreach ($formatters as $name => $formatter) { + $form['displays']['status'][$name] = array( + '#type' => 'checkbox', + '#title' => check_plain($formatter['label']), + '#default_value' => !empty($conf['displays'][$name]['status']), + '#description' => isset($formatter['description']) ? filter_xss($formatter['description']) : NULL, + '#parents' => array('displays', $name, 'status'), + '#weight' => (isset($formatter['weight']) ? $formatter['weight'] : 0) + ($i / 1000), + ); + $i++; + } + // Formatter order (tabledrag). + $form['displays']['order'] = array( + '#type' => 'item', + '#title' => t('Display precedence order'), + '#theme' => 'file_entity_file_display_order', + ); + foreach ($formatters as $name => $formatter) { + $form['displays']['order'][$name]['label'] = array( + '#markup' => check_plain($formatter['label']), + ); + $form['displays']['order'][$name]['weight'] = array( + '#type' => 'weight', + '#title' => t('Weight for @title', array('@title' => $formatter['label'])), + '#title_display' => 'invisible', + '#delta' => 50, + '#default_value' => isset($conf['displays'][$name]['weight']) ? $conf['displays'][$name]['weight'] : 0, + '#parents' => array('displays', $name, 'weight'), + ); + $form['displays']['order'][$name]['#weight'] = $form['displays']['order'][$name]['weight']['#default_value']; + } + + // Formatter settings. + $form['display_settings_title'] = array( + '#type' => 'item', + '#title' => t('Display settings'), + ); + $form['display_settings'] = array( + '#type' => 'vertical_tabs', + ); + $i=0; + foreach ($formatters as $name => $formatter) { + if (isset($formatter['settings callback']) && ($function = $formatter['settings callback']) && function_exists($function)) { + $defaults = !empty($formatter['default settings']) ? $formatter['default settings'] : array(); + $settings = !empty($conf['displays'][$name]['settings']) ? $conf['displays'][$name]['settings'] : array(); + $settings += $defaults; + $settings_form = $function($form, $form_state, $settings, $name, $file_type, $view_mode); + if (!empty($settings_form)) { + $form['displays']['settings'][$name] = array( + '#type' => 'fieldset', + '#title' => check_plain($formatter['label']), + '#parents' => array('displays', $name, 'settings'), + '#group' => 'display_settings', + '#weight' => (isset($formatter['weight']) ? $formatter['weight'] : 0) + ($i / 1000), + ) + $settings_form; + } + } + $i++; + } + return $form; +} + +function file_entity_file_display_content_type_edit_form_submit($form, &$form_state) { + // Copy everything from our defaults. + foreach (array_keys($form_state['plugin']['defaults']) as $key) { + $form_state['conf'][$key] = $form_state['values'][$key]; + } +} + +function file_entity_file_display_content_type_admin_title($subtype, $conf, $context) { + return t('"@s" content', array('@s' => $context->identifier)); +} diff --git a/samples/Pascal/image_url.inc b/samples/Pascal/image_url.inc new file mode 100644 index 00000000..9f7090fa --- /dev/null +++ b/samples/Pascal/image_url.inc @@ -0,0 +1,37 @@ + function GetUnixMangaImageURL: Boolean; + var + i: Integer; + l: TStringList; + s: String; + begin + l := TStringList.Create; + s := manager.container.PageContainerLinks[workCounter]; + Result := GetPage(TObject(l), s , manager.container.Manager.retryConnect); + + if Self.Terminated then + begin + l.Free; + parse.Free; + Exit; + end; + + parse := TStringList.Create; + Parser := THTMLParser.Create(PChar(l.Text)); + Parser.OnFoundTag := OnTag; + Parser.OnFoundText := OnText; + Parser.Exec; + Parser.Free; + l.Free; + if parse.Count > 0 then + begin + for i := 0 to parse.Count - 1 do + begin + if (Pos('STYLE="border', parse[i]) > 0) and (Pos(' 0) then + begin + manager.container.PageLinks[workCounter] := Trim(GetVal(parse[i], 'SRC')); + Break; + end; + end; + end; + parse.Free; + end; diff --git a/samples/SQL/hostcache_set_state.inc b/samples/SQL/hostcache_set_state.inc new file mode 100644 index 00000000..25dd56a4 --- /dev/null +++ b/samples/SQL/hostcache_set_state.inc @@ -0,0 +1,23 @@ +# Helper for hostcache_*.test + +# Set a known initial state for the test + +flush status; +flush hosts; +flush user_resources; +flush privileges; + +# Print critical setup + +select @@global.debug; +select @@global.max_connect_errors; +select @@global.max_user_connections; +select @@global.max_connections; + +# Make sure there are no remaining records that can change the test outcome + +select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; +select `User`, `Host` from mysql.`user` where `user` like '192.%'; +select `User`, `Host` from mysql.`user` where `user` like '2001:%'; +select `User`, `Host` from mysql.`user` where `user` like 'santa.claus.%'; + diff --git a/samples/SourcePawn/fixed.inc b/samples/SourcePawn/fixed.inc new file mode 100644 index 00000000..b7573dc7 --- /dev/null +++ b/samples/SourcePawn/fixed.inc @@ -0,0 +1,91 @@ +/* Fixed point arithmetic + * + * (c) Copyright 1998-2011, ITB CompuPhase + * This file is provided as is (no warranties). + */ +#pragma library Fixed + +const fround_method: { + fround_round = 0, + fround_floor, + fround_ceil, + fround_tozero, + fround_unbiased +} + +native Fixed:fixed(value); +native Fixed:strfixed(const string[]); +native Fixed:fmul(Fixed:oper1, Fixed:oper2); +native Fixed:fdiv(Fixed:dividend, Fixed:divisor); +native Fixed:ffract(Fixed:value); +native fround(Fixed:value, fround_method:method=fround_round); +native Fixed:fpower(Fixed:value, exponent); +native Fixed:fsqroot(Fixed:value); +native Fixed:fabs(Fixed:value); + +#pragma rational Fixed(3) + +/* user defined operators */ +native Fixed:operator*(Fixed:oper1, Fixed:oper2) = fmul; +native Fixed:operator/(Fixed:oper1, Fixed:oper2) = fdiv; +native Fixed:operator=(oper) = fixed; + +stock Fixed:operator++(Fixed:oper) + return oper + fixed(1); + +stock Fixed:operator--(Fixed:oper) + return oper - fixed(1); + +stock Fixed:operator*(Fixed:oper1, oper2) + return Fixed: (_:oper1 * oper2); /* "*" is commutative */ + +stock Fixed:operator/(Fixed:oper1, oper2) + return oper1 / fixed(oper2); + +stock Fixed:operator/(oper1, Fixed:oper2) + return fdiv(fixed(oper1), oper2); + +stock Fixed:operator+(Fixed:oper1, oper2) + return oper1 + fixed(oper2); /* "+" is commutative */ + +stock Fixed:operator-(Fixed:oper1, oper2) + return oper1 - fixed(oper2); + +stock Fixed:operator-(oper1, Fixed:oper2) + return fixed(oper1) - oper2; + +stock bool:operator>(Fixed:oper1, oper2) + return oper1 > fixed(oper2); + +stock bool:operator>(oper1, Fixed:oper2) + return fixed(oper1) > oper2; + +stock bool:operator>=(Fixed:oper1, oper2) + return oper1 >= fixed(oper2); + +stock bool:operator>=(oper1, Fixed:oper2) + return fixed(oper1) >= oper2; + +stock bool:operator<(Fixed:oper1, oper2) + return oper1 < fixed(oper2); + +stock bool:operator<(oper1, Fixed:oper2) + return fixed(oper1) < oper2; + +stock bool:operator<=(Fixed:oper1, oper2) + return oper1 <= fixed(oper2); + +stock bool:operator<=(oper1, Fixed:oper2) + return fixed(oper1) <= oper2; + +stock bool:operator==(Fixed:oper1, oper2) /* "==" is commutative */ + return oper1 == fixed(oper2); + +stock bool:operator!=(Fixed:oper1, oper2) /* "!=" is commutative */ + return oper1 != fixed(oper2); + +/* forbidden operations */ +forward operator%(Fixed:oper1, Fixed:oper2); +forward operator%(Fixed:oper1, oper2); +forward operator%(oper1, Fixed:oper2); + From da5bc18d6493a5ec4ea7542cf01140663d6aa9f5 Mon Sep 17 00:00:00 2001 From: Paul Handly Date: Sat, 9 May 2015 13:38:42 -0400 Subject: [PATCH 460/875] Add Unity3D Metadata files as generated --- lib/linguist/generated.rb | 14 ++++++++++++++ lib/linguist/languages.yml | 8 ++++++++ samples/Unity3D Metadata/Tiles.meta | 5 +++++ test/test_blob.rb | 3 +++ 4 files changed, 30 insertions(+) create mode 100644 samples/Unity3D Metadata/Tiles.meta diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 12987196..ccbaba85 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -68,6 +68,7 @@ module Linguist generated_protocol_buffer_go? || generated_protocol_buffer? || generated_jni_header? || + generated_unity3d_meta? || vcr_cassette? end @@ -311,5 +312,18 @@ module Linguist return false unless lines.count > 1 return lines[0].include?("Generated by Cython") end + + # Internal: Is this a metadata file from Unity3D? + # + # Unity3D Meta files start with: + # fileFormatVersion: X + # guid: XXXXXXXXXXXXXXX + # + # Return true or false + def generated_unity3d_meta? + return false unless extname == '.meta' + return false unless lines.count > 1 + return lines[0].include?("fileFormatVersion: ") + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5066b4d9..b420dfb2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3299,6 +3299,14 @@ Unity3D Asset: - .unity tm_scope: source.yaml +Unity3D Metadata: + type: data + ace_mode: yaml + color: "#36093d" + extensions: + - .meta + tm_scope: source.yaml + UnrealScript: type: programming color: "#a54c4d" diff --git a/samples/Unity3D Metadata/Tiles.meta b/samples/Unity3D Metadata/Tiles.meta new file mode 100644 index 00000000..61ec47d5 --- /dev/null +++ b/samples/Unity3D Metadata/Tiles.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9e5c401e9d1d5415fbf2854b29c004c4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/test/test_blob.rb b/test/test_blob.rb index 138eef8e..5eac1ba4 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -243,6 +243,9 @@ class TestBlob < Minitest::Test # Cython-generated C/C++ assert sample_blob("C/sgd_fast.c").generated? assert sample_blob("C++/wrapper_inner.cpp").generated? + + # Unity3D-generated metadata + assert sample_blob("Unity3D Metadata/Tiles.meta").generated? end def test_vendored From 7631db21833e5cbc6733b52a7caabc5f229d3076 Mon Sep 17 00:00:00 2001 From: Paul Handly Date: Sat, 9 May 2015 14:59:34 -0400 Subject: [PATCH 461/875] Treat Unity3D metadata as an asset --- lib/linguist/languages.yml | 9 +-------- samples/{Unity3D Metadata => Unity3D Asset}/Tiles.meta | 0 test/test_blob.rb | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) rename samples/{Unity3D Metadata => Unity3D Asset}/Tiles.meta (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b420dfb2..9adee054 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3295,18 +3295,11 @@ Unity3D Asset: - .anim - .asset - .mat + - .meta - .prefab - .unity tm_scope: source.yaml -Unity3D Metadata: - type: data - ace_mode: yaml - color: "#36093d" - extensions: - - .meta - tm_scope: source.yaml - UnrealScript: type: programming color: "#a54c4d" diff --git a/samples/Unity3D Metadata/Tiles.meta b/samples/Unity3D Asset/Tiles.meta similarity index 100% rename from samples/Unity3D Metadata/Tiles.meta rename to samples/Unity3D Asset/Tiles.meta diff --git a/test/test_blob.rb b/test/test_blob.rb index 5eac1ba4..f2efbd5f 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -245,7 +245,7 @@ class TestBlob < Minitest::Test assert sample_blob("C++/wrapper_inner.cpp").generated? # Unity3D-generated metadata - assert sample_blob("Unity3D Metadata/Tiles.meta").generated? + assert sample_blob("Unity3D Asset/Tiles.meta").generated? end def test_vendored From 1811465abbd7246c2d0354214fde8164a814383d Mon Sep 17 00:00:00 2001 From: Vighnesh Rege Date: Tue, 12 May 2015 12:25:06 -0700 Subject: [PATCH 462/875] Add Apache thrift support to generated? check --- lib/linguist/generated.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 12987196..9f2a1858 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -67,6 +67,7 @@ module Linguist compiled_cython_file? || generated_protocol_buffer_go? || generated_protocol_buffer? || + generated_apache_thrift? || generated_jni_header? || vcr_cassette? end @@ -248,6 +249,13 @@ module Linguist return lines[0].include?("Generated by the protocol buffer compiler. DO NOT EDIT!") end + + # Internal: Is the blob generated by Apache Thrift compiler? + # + # Returns true or false + def generated_apache_thrift? + return lines[0].include?("Autogenerated by Thrift Compiler") || lines[1].include?("Autogenerated by Thrift Compiler") + end # Internal: Is the blob a C/C++ header generated by the Java JNI tool javah? # From f87c3c499619b155667cabb0af11183b0ff7ff33 Mon Sep 17 00:00:00 2001 From: Felix Krause Date: Tue, 12 May 2015 20:29:24 +0100 Subject: [PATCH 463/875] Added fastlane configuration files [fastlane](https://fastlane.tools) is an established Continuous Delivery solution for iOS/Mac projects. The configuration files are similar to a `Podfile`, also Ruby based. Some examples: - https://github.com/wikimedia/apps-ios-wikipedia/blob/master/fastlane/Fastfile - https://github.com/wikimedia/apps-ios-wikipedia/blob/master/fastlane/Deliverfile - https://github.com/artsy/eidolon/blob/master/fastlane/Fastfile - https://github.com/fastlane/examples/blob/master/MindNode/Fastfile The configuration files added with this pull request: `Fastfile`, `Deliverfile` and `Snapfile` :+1: --- lib/linguist/languages.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1159d79c..5de157cd 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2833,6 +2833,8 @@ Ruby: - Appraisals - Berksfile - Buildfile + - Deliverfile + - Fastfile - Gemfile - Gemfile.lock - Guardfile @@ -2840,6 +2842,7 @@ Ruby: - Mavenfile - Podfile - Puppetfile + - Snapfile - Thorfile - Vagrantfile - buildfile From 6d2aa601cda240568c359065950a5e9b81496644 Mon Sep 17 00:00:00 2001 From: Vighnesh Rege Date: Tue, 12 May 2015 12:53:59 -0700 Subject: [PATCH 464/875] Added tests --- samples/Go/gen-go-linguist-thrift.go | 18 + samples/Java/gen-java-linguist-thrift.java | 396 ++++++++++++++++++ samples/JavaScript/gen-js-linguist-thrift.js | 60 +++ .../Objective-C/gen-cocoa-linguist-thrift.m | 176 ++++++++ samples/Ruby/gen-rb-linguist-thrift.rb | 9 + samples/Thrift/linguist.thrift | 5 + test/test_blob.rb | 7 + 7 files changed, 671 insertions(+) create mode 100644 samples/Go/gen-go-linguist-thrift.go create mode 100644 samples/Java/gen-java-linguist-thrift.java create mode 100644 samples/JavaScript/gen-js-linguist-thrift.js create mode 100644 samples/Objective-C/gen-cocoa-linguist-thrift.m create mode 100644 samples/Ruby/gen-rb-linguist-thrift.rb create mode 100644 samples/Thrift/linguist.thrift diff --git a/samples/Go/gen-go-linguist-thrift.go b/samples/Go/gen-go-linguist-thrift.go new file mode 100644 index 00000000..3f972e99 --- /dev/null +++ b/samples/Go/gen-go-linguist-thrift.go @@ -0,0 +1,18 @@ +// Autogenerated by Thrift Compiler (1.0.0-dev) +// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + +package linguist + +import ( + "bytes" + "fmt" + "git.apache.org/thrift.git/lib/go/thrift" +) + +// (needed to ensure safety because of naive import list construction.) +var _ = thrift.ZERO +var _ = fmt.Printf +var _ = bytes.Equal + +func init() { +} diff --git a/samples/Java/gen-java-linguist-thrift.java b/samples/Java/gen-java-linguist-thrift.java new file mode 100644 index 00000000..4e2a5b1a --- /dev/null +++ b/samples/Java/gen-java-linguist-thrift.java @@ -0,0 +1,396 @@ +/** + * Autogenerated by Thrift Compiler (1.0.0-dev) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.async.AsyncMethodCallback; +import org.apache.thrift.server.AbstractNonblockingServer.*; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import javax.annotation.Generated; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2015-5-12") +public class PullRequest implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PullRequest"); + + private static final org.apache.thrift.protocol.TField TITLE_FIELD_DESC = new org.apache.thrift.protocol.TField("title", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new PullRequestStandardSchemeFactory()); + schemes.put(TupleScheme.class, new PullRequestTupleSchemeFactory()); + } + + public String title; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + TITLE((short)1, "title"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // TITLE + return TITLE; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.TITLE, new org.apache.thrift.meta_data.FieldMetaData("title", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PullRequest.class, metaDataMap); + } + + public PullRequest() { + } + + public PullRequest( + String title) + { + this(); + this.title = title; + } + + /** + * Performs a deep copy on other. + */ + public PullRequest(PullRequest other) { + if (other.isSetTitle()) { + this.title = other.title; + } + } + + public PullRequest deepCopy() { + return new PullRequest(this); + } + + @Override + public void clear() { + this.title = null; + } + + public String getTitle() { + return this.title; + } + + public PullRequest setTitle(String title) { + this.title = title; + return this; + } + + public void unsetTitle() { + this.title = null; + } + + /** Returns true if field title is set (has been assigned a value) and false otherwise */ + public boolean isSetTitle() { + return this.title != null; + } + + public void setTitleIsSet(boolean value) { + if (!value) { + this.title = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TITLE: + if (value == null) { + unsetTitle(); + } else { + setTitle((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TITLE: + return getTitle(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case TITLE: + return isSetTitle(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof PullRequest) + return this.equals((PullRequest)that); + return false; + } + + public boolean equals(PullRequest that) { + if (that == null) + return false; + + boolean this_present_title = true && this.isSetTitle(); + boolean that_present_title = true && that.isSetTitle(); + if (this_present_title || that_present_title) { + if (!(this_present_title && that_present_title)) + return false; + if (!this.title.equals(that.title)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_title = true && (isSetTitle()); + list.add(present_title); + if (present_title) + list.add(title); + + return list.hashCode(); + } + + @Override + public int compareTo(PullRequest other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetTitle()).compareTo(other.isSetTitle()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTitle()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.title, other.title); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("PullRequest("); + boolean first = true; + + sb.append("title:"); + if (this.title == null) { + sb.append("null"); + } else { + sb.append(this.title); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class PullRequestStandardSchemeFactory implements SchemeFactory { + public PullRequestStandardScheme getScheme() { + return new PullRequestStandardScheme(); + } + } + + private static class PullRequestStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, PullRequest struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // TITLE + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.title = iprot.readString(); + struct.setTitleIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, PullRequest struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.title != null) { + oprot.writeFieldBegin(TITLE_FIELD_DESC); + oprot.writeString(struct.title); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class PullRequestTupleSchemeFactory implements SchemeFactory { + public PullRequestTupleScheme getScheme() { + return new PullRequestTupleScheme(); + } + } + + private static class PullRequestTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, PullRequest struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetTitle()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetTitle()) { + oprot.writeString(struct.title); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, PullRequest struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.title = iprot.readString(); + struct.setTitleIsSet(true); + } + } + } + +} + diff --git a/samples/JavaScript/gen-js-linguist-thrift.js b/samples/JavaScript/gen-js-linguist-thrift.js new file mode 100644 index 00000000..d6a429f2 --- /dev/null +++ b/samples/JavaScript/gen-js-linguist-thrift.js @@ -0,0 +1,60 @@ +// +// Autogenerated by Thrift Compiler (1.0.0-dev) +// +// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +// + + +PullRequest = function(args) { + this.title = null; + if (args) { + if (args.title !== undefined) { + this.title = args.title; + } + } +}; +PullRequest.prototype = {}; +PullRequest.prototype.read = function(input) { + input.readStructBegin(); + while (true) + { + var ret = input.readFieldBegin(); + var fname = ret.fname; + var ftype = ret.ftype; + var fid = ret.fid; + if (ftype == Thrift.Type.STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == Thrift.Type.STRING) { + this.title = input.readString().value; + } else { + input.skip(ftype); + } + break; + case 0: + input.skip(ftype); + break; + default: + input.skip(ftype); + } + input.readFieldEnd(); + } + input.readStructEnd(); + return; +}; + +PullRequest.prototype.write = function(output) { + output.writeStructBegin('PullRequest'); + if (this.title !== null && this.title !== undefined) { + output.writeFieldBegin('title', Thrift.Type.STRING, 1); + output.writeString(this.title); + output.writeFieldEnd(); + } + output.writeFieldStop(); + output.writeStructEnd(); + return; +}; + diff --git a/samples/Objective-C/gen-cocoa-linguist-thrift.m b/samples/Objective-C/gen-cocoa-linguist-thrift.m new file mode 100644 index 00000000..670a85f7 --- /dev/null +++ b/samples/Objective-C/gen-cocoa-linguist-thrift.m @@ -0,0 +1,176 @@ +/** + * Autogenerated by Thrift Compiler (1.0.0-dev) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ + +#import + +#import "TProtocol.h" +#import "TApplicationException.h" +#import "TProtocolException.h" +#import "TProtocolUtil.h" +#import "TProcessor.h" +#import "TObjective-C.h" +#import "TBase.h" + + +#import "linguist.h" + +@implementation PullRequest + +- (id) init +{ + self = [super init]; +#if TARGET_OS_IPHONE || (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) +#endif + return self; +} + +- (id) initWithTitle: (NSString *) title +{ + self = [super init]; + __title = [title retain_stub]; + __title_isset = YES; + return self; +} + +- (id) initWithCoder: (NSCoder *) decoder +{ + self = [super init]; + if ([decoder containsValueForKey: @"title"]) + { + __title = [[decoder decodeObjectForKey: @"title"] retain_stub]; + __title_isset = YES; + } + return self; +} + +- (void) encodeWithCoder: (NSCoder *) encoder +{ + if (__title_isset) + { + [encoder encodeObject: __title forKey: @"title"]; + } +} + +- (NSUInteger) hash +{ + NSUInteger hash = 17; + hash = (hash * 31) ^ __title_isset ? 2654435761 : 0; + if (__title_isset) + { + hash = (hash * 31) ^ [__title hash]; + } + return hash; +} + +- (BOOL) isEqual: (id) anObject +{ + if (self == anObject) { + return YES; + } + if (![anObject isKindOfClass:[PullRequest class]]) { + return NO; + } + PullRequest *other = (PullRequest *)anObject; + if ((__title_isset != other->__title_isset) || + (__title_isset && ((__title || other->__title) && ![__title isEqual:other->__title]))) { + return NO; + } + return YES; +} + +- (void) dealloc +{ + [__title release_stub]; + [super dealloc_stub]; +} + +- (NSString *) title { + return [[__title retain_stub] autorelease_stub]; +} + +- (void) setTitle: (NSString *) title { + [title retain_stub]; + [__title release_stub]; + __title = title; + __title_isset = YES; +} + +- (BOOL) titleIsSet { + return __title_isset; +} + +- (void) unsetTitle { + [__title release_stub]; + __title = nil; + __title_isset = NO; +} + +- (void) read: (id ) inProtocol +{ + NSString * fieldName; + int fieldType; + int fieldID; + + [inProtocol readStructBeginReturningName: NULL]; + while (true) + { + [inProtocol readFieldBeginReturningName: &fieldName type: &fieldType fieldID: &fieldID]; + if (fieldType == TType_STOP) { + break; + } + switch (fieldID) + { + case 1: + if (fieldType == TType_STRING) { + NSString * fieldValue = [inProtocol readString]; + [self setTitle: fieldValue]; + } else { + [TProtocolUtil skipType: fieldType onProtocol: inProtocol]; + } + break; + default: + [TProtocolUtil skipType: fieldType onProtocol: inProtocol]; + break; + } + [inProtocol readFieldEnd]; + } + [inProtocol readStructEnd]; +} + +- (void) write: (id ) outProtocol { + [outProtocol writeStructBeginWithName: @"PullRequest"]; + if (__title_isset) { + if (__title != nil) { + [outProtocol writeFieldBeginWithName: @"title" type: TType_STRING fieldID: 1]; + [outProtocol writeString: __title]; + [outProtocol writeFieldEnd]; + } + } + [outProtocol writeFieldStop]; + [outProtocol writeStructEnd]; +} + +- (void) validate { + // check for required fields +} + +- (NSString *) description { + NSMutableString * ms = [NSMutableString stringWithString: @"PullRequest("]; + [ms appendString: @"title:"]; + [ms appendFormat: @"\"%@\"", __title]; + [ms appendString: @")"]; + return [NSString stringWithString: ms]; +} + +@end + + +@implementation linguistConstants ++ (void) initialize { +} +@end + diff --git a/samples/Ruby/gen-rb-linguist-thrift.rb b/samples/Ruby/gen-rb-linguist-thrift.rb new file mode 100644 index 00000000..931cf393 --- /dev/null +++ b/samples/Ruby/gen-rb-linguist-thrift.rb @@ -0,0 +1,9 @@ +# +# Autogenerated by Thrift Compiler (1.0.0-dev) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# + +require 'thrift' +require 'linguist_types' + diff --git a/samples/Thrift/linguist.thrift b/samples/Thrift/linguist.thrift new file mode 100644 index 00000000..8d701b88 --- /dev/null +++ b/samples/Thrift/linguist.thrift @@ -0,0 +1,5 @@ +struct PullRequest { + 1: string title +} + + diff --git a/test/test_blob.rb b/test/test_blob.rb index 138eef8e..962b8647 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -218,6 +218,13 @@ class TestBlob < Minitest::Test assert sample_blob("Python/protocol_buffer_pb2.py").generated? assert sample_blob("Go/api.pb.go").generated? + # Apache Thrift generated code + assert sample_blob("Go/gen-go-linguist-thrift.go").generated? + assert sample_blob("Java/gen-java-linguist-thrift.java").generated? + assert sample_blob("JavaScript/gen-js-linguist-thrift.js").generated? + assert sample_blob("Ruby/gen-rb-linguist-thrift.rb").generated? + assert sample_blob("Objective-C/gen-cocoa-linguist-thrift.m").generated? + # Generated JNI assert sample_blob("C/jni_layer.h").generated? From 2fac182a904d00ae5e11574383e790232dae78f1 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 12 May 2015 16:49:14 -0500 Subject: [PATCH 465/875] Improving Vim modeline regex --- lib/linguist/strategy/modeline.rb | 2 +- test/fixtures/Shell/_bashrc | 175 ++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/Shell/_bashrc diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 55a8f355..5a2481e3 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -2,7 +2,7 @@ module Linguist module Strategy class Modeline EmacsModeline = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i - VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i + VimModeline = /\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*/i # Public: Detects language based on Vim and Emacs modelines # diff --git a/test/fixtures/Shell/_bashrc b/test/fixtures/Shell/_bashrc new file mode 100644 index 00000000..eaf623bc --- /dev/null +++ b/test/fixtures/Shell/_bashrc @@ -0,0 +1,175 @@ +# vim: set ft=sh: + +# encoding +export LC_CTYPE='en_US.UTF-8' +# terminal color +export TERM=xterm-256color +# prompt setup +current_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/' +} +parse_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' +} +PS1='${debian_chroot:+($debian_chroot)}\[\e[00;32m\]\u@\h:\[\e[01;34m\]\W\[\033[01;35m\]$(parse_branch)\[\e[01;35m\]\[\e[0m\] $ ' + +google () { + search="" + echo "Googling: $@" + for term in $@; do + search="$search%20$term" + done + xdg-open "http://www.google.com/search?q=$search" +} + +# alias +alias emacs='emacs -nw' +alias eshell='emacs --execute "(term \"`which zsh`\")"' + - () { + cd - +} +alias ..='cd ..' +alias ...='cd ../..' +alias _=sudo +alias afind='ack-grep -il' +alias c=clear +alias cd..='cd ..' +alias cd...='cd ../..' +alias cd....='cd ../../..' +alias cd.....='cd ../../../..' +alias d='dirs -v | head -10' +alias emacs='emacs -nw' +alias g=git +alias ga='git add' +alias gap='git add --patch' +alias gb='git branch' +alias gba='git branch -a' +alias gbr='git branch --remote' +alias gc='git commit -v' +alias 'gc!'='git commit -v --amend' +alias gca='git commit -v -a' +alias 'gca!'='git commit -v -a --amend' +alias gcl='git config --list' +alias gclean='git reset --hard && git clean -dfx' +alias gcln='git clone' +alias gcm='git checkout master' +alias gcmsg='git commit -m' +alias gco='git checkout' +alias gcount='git shortlog -sn' +alias gcp='git cherry-pick' +alias gcs='git commit -S' +alias gd='git diff' +alias gdc='git diff --cached' +alias gdt='git difftool' +alias gg='git gui citool' +alias gga='git gui citool --amend' +alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' +alias ggpull='git pull origin $(current_branch)' +alias ggpur='git pull --rebase origin $(current_branch)' +alias ggpush='git push origin $(current_branch)' +alias gmpush='git push wkentaro $(current_branch)' +alias gignore='git update-index --assume-unchanged' +alias gignored='git ls-files -v | grep "^[[:lower:]]"' +alias git=hub +alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' +alias gk='gitk --all --branches' +alias gl='git pull' +alias glg='git log --stat --max-count=10' +alias glgg='git log --graph --max-count=10' +alias glgga='git log --graph --decorate --all' +alias glo='git log --oneline --decorate --color' +alias globurl='noglob urlglobber ' +alias glog='git log --oneline --decorate --color --graph' +alias glp=_git_log_prettily +alias gm='git merge' +alias gmt='git mergetool --no-prompt' +alias gp='git push' +alias gpoat='git push origin --all && git push origin --tags' +alias gr='git remote' +alias grba='git rebase --abort' +alias grbc='git rebase --continue' +alias grbi='git rebase -i' +alias grh='git reset HEAD' +alias grhh='git reset HEAD --hard' +alias grmv='git remote rename' +alias grrm='git remote remove' +alias grset='git remote set-url' +alias grt='cd $(git rev-parse --show-toplevel || echo ".")' +alias grup='git remote update' +alias grv='git remote -v' +alias gsd='git svn dcommit' +alias gsps='git show --pretty=short --show-signature' +alias gsr='git svn rebase' +alias gss='git status -s' +alias gst='git status' +alias gsta='git stash' +alias gstd='git stash drop' +alias gstp='git stash pop' +alias gsts='git stash show --text' +alias gts='git tag -s' +alias gunignore='git update-index --no-assume-unchanged' +alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1' +alias gup='git pull --rebase' +alias gvt='git verify-tag' +alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' +alias gwip='git add -A; git ls-files --deleted -z | xargs -r0 git rm; git commit -m "--wip--"' +alias h=history +alias history='fc -l 1' +alias ipy=ipython +alias sl='ls' +alias l='ls -lah' +alias la='ls -lAh' +alias ll='ls -lh' +alias lsa='ls -lah' +alias md='mkdir -p' +alias py=python +alias please=sudo +alias po=popd +alias pu=pushd +alias pyfind='find . -name "*.py"' +alias pygrep='grep --include="*.py"' +alias rd=rmdir +alias v=vim +alias vi=vim +alias which-command=whence +# hub +if which hub >/dev/null 2>&1; then + eval "$(hub alias -s)" +fi +# open +if which open >/dev/null 2>&1; then + alias o='open' + alias o.='open .' +elif which gnome-open >/dev/null 2>&1; then + alias open='gnome-open' + alias o='gnome-open' + alias o.='gnome-open .' +fi +# ls +if which dircolors >/dev/null 2>&1; then + eval `dircolors $HOME/.colorrc` + alias ls='ls --color=auto' +fi + [[ -s $HOME/.tmuxinator/scripts/tmuxinator ]] && source $HOME/.tmuxinator/scripts/tmuxinator + +cd () { + if [[ "x$*" = "x..." ]] + then + cd ../.. + elif [[ "x$*" = "x...." ]] + then + cd ../../.. + elif [[ "x$*" = "x....." ]] + then + cd ../../../.. + elif [[ "x$*" = "x......" ]] + then + cd ../../../../.. + elif [ -d ~/.autoenv ] + then + source ~/.autoenv/activate.sh + autoenv_cd "$@" + else + builtin cd "$@" + fi +} From fd4111cdbe383208a9f9efd498ddb6a88a05f96a Mon Sep 17 00:00:00 2001 From: Felix Krause Date: Wed, 13 May 2015 11:02:26 +0100 Subject: [PATCH 466/875] Added Example Ruby Files --- samples/Ruby/filenames/Deliverfile | 50 +++++++++++++ samples/Ruby/filenames/Fastfile | 115 +++++++++++++++++++++++++++++ samples/Ruby/filenames/Podfile | 18 +++++ samples/Ruby/filenames/Snapfile | 26 +++++++ 4 files changed, 209 insertions(+) create mode 100644 samples/Ruby/filenames/Deliverfile create mode 100644 samples/Ruby/filenames/Fastfile create mode 100644 samples/Ruby/filenames/Podfile create mode 100644 samples/Ruby/filenames/Snapfile diff --git a/samples/Ruby/filenames/Deliverfile b/samples/Ruby/filenames/Deliverfile new file mode 100644 index 00000000..bd8b463d --- /dev/null +++ b/samples/Ruby/filenames/Deliverfile @@ -0,0 +1,50 @@ +require 'open-uri' + +framework_version = JSON.parse(open(url).read) + +# The URL below is password protected +apps = JSON.parse(open(url).read) + +app_id = Dir.pwd.split("/")[-2].to_i +app = apps[app_id.to_s] + +# The app identifier is required +app_identifier "net.sunapps.#{app_id}" + +version framework_version['version_number'] + +title( + 'de-DE' => app["fullName"] +) + +description( + 'de-DE' => app["description"]["de"] +) + +changelog( + 'de-DE' => framework_version["public_description"]["de"] +) + +keywords( + 'de-DE' => app["keywords"]["de"].split(",") +) + +app_icon "../Submission/AppIconFull.png" + +price_tier 0 # free app + +primary_category "Reference" + +secondary_category "Business" + +automatic_release true + +ratings_config_path "./ratings_config.json" + +app_review_information({ + first_name: "Felix", + phone_number: "My Phone Number", + demo_user: "", + demo_password: "", + notes: "" +}) \ No newline at end of file diff --git a/samples/Ruby/filenames/Fastfile b/samples/Ruby/filenames/Fastfile new file mode 100644 index 00000000..aed95f6f --- /dev/null +++ b/samples/Ruby/filenames/Fastfile @@ -0,0 +1,115 @@ +# Customise this file, documentation can be found here: +# https://github.com/KrauseFx/fastlane/tree/master/docs + +$:.unshift File.dirname(__FILE__) +require 'lib/utils.rb' + +fastlane_version "1.0.0" + +default_platform :ios + +platform :ios do + before_all do + ENV['DELIVER_WHAT_TO_TEST'] = git_commit_log + ensure_git_status_clean + end + + desc "Runs linting (and eventually static analysis)" + lane :analyze do + return if test_disabled? + make 'lint' + end + + desc "Runs all the unit tests." + lane :test do + return if test_disabled? + # TODO: lint & test JS code + xctest( + scheme: 'Wikipedia', + destination: "platform=iOS Simulator,name=iPhone 6,OS=8.3", + reports: [ + { + report: "html", + output: "build/reports/unit-tests.html" + }, + { + report: "junit", + output: "build/reports/unit-tests.xml" + } + ], + clean: nil + ) + end + + desc "Bump the version, and submit a new **Wikipedia Alpha** Build to Apple TestFlight" + lane :alpha do + # snapshot + sigh + increment_build_number + + # uncomment when CI is able to push tags + if ENV['WMF_BUMP'] + commit_version_bump + plist_version = get_version_short_string File.expand_path(File.join(ENV['PWD'], 'Wikipedia/Wikipedia-Info.plist')) + # tag must be added after the version bump is committed + add_git_tag(tag: "#{plist_version}.#{Actions.lane_context[Actions::SharedValues::BUILD_NUMBER]}") + end + + ipa( + configuration: "Alpha", + scheme: "Wikipedia Alpha", + ) + hockey( + notes: '', + notify: '0', # Means do not notify + status: '1', # Means do not make available for download + ) + deliver skip_deploy: true, beta: true + + # uncomment when CI is able to push tags + if ENV['WMF_BUMP'] + # only push after everything else has succeeded + push_to_git_remote + end + end + + desc "Submit a new **Wikipedia Beta** build to Apple TestFlight" + lane :beta do + # snapshot + sigh + ipa( + configuration: "Beta", + scheme: "Wikipedia Beta", + ) + hockey( + notes: '', + notify: '0', # Means do not notify + status: '1', # Means do not make available for download + ) + deliver skip_deploy: true, beta: true + end + + desc "Deploy a new version to the App Store" + lane :store do + # snapshot + sigh + ipa( + configuration: "Wikipedia", + scheme: "Wikipedia", + ) + hockey( + notes: '', + notify: '0', # Means do not notify + status: '1', # Means do not make available for download + ) + deliver skip_deploy: true, force: true + end + + after_all do |lane| + + end + + error do |lane, exception| + + end +end \ No newline at end of file diff --git a/samples/Ruby/filenames/Podfile b/samples/Ruby/filenames/Podfile new file mode 100644 index 00000000..2a03e4ae --- /dev/null +++ b/samples/Ruby/filenames/Podfile @@ -0,0 +1,18 @@ +source 'https://github.com/CocoaPods/Specs.git' + +platform :ios, :deployment_target => '6.0' + +inhibit_all_warnings! + +xcodeproj 'Wikipedia' + +pod 'AFNetworking/NSURLConnection', '~> 2.5' +pod 'hpple', '~> 0.2' +pod 'blockskit/Core', '~> 2.2' +pod 'Masonry', '~> 0.6' +pod 'HockeySDK', '3.6.2' + +target 'WikipediaUnitTests', :exclusive => false do + pod 'OCMockito', '~> 1.4' + pod 'OCHamcrest', '~> 4.1' +end diff --git a/samples/Ruby/filenames/Snapfile b/samples/Ruby/filenames/Snapfile new file mode 100644 index 00000000..182c7d1f --- /dev/null +++ b/samples/Ruby/filenames/Snapfile @@ -0,0 +1,26 @@ + +# Download the latest screenshot information from the CMS +app_id = Dir.pwd.split("/")[-2].to_i +File.write("./screenshots.json", open("https://...amazonaws.com/1.0/#{app_id}/....json").read) rescue nil + + +# A list of devices you want to take the screenshots from +devices([ + "iPhone 6", + "iPhone 6 Plus", + "iPhone 5", + "iPhone 4s" +]) + +languages([ + 'de-DE' +]) + +# Where should the resulting screenshots be stored? +screenshots_path "./screenshots" + +# JavaScript UIAutomation file +js_file './snapshot.js' + +# The name of the project's scheme +scheme 'Release' \ No newline at end of file From 7e32b45aa8dd1b77d18c40fb07782b31c8c131c7 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 13 May 2015 08:31:45 -0500 Subject: [PATCH 467/875] Removing whitespace matching --- lib/linguist/strategy/modeline.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 5a2481e3..44155fc3 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -2,7 +2,7 @@ module Linguist module Strategy class Modeline EmacsModeline = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i - VimModeline = /\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*/i + VimModeline = /vim:\s*set\s*(?:ft|filetype)=(\w+):/i # Public: Detects language based on Vim and Emacs modelines # From 4fc0c90cffd845b287ec97dd7994ec34a02076f2 Mon Sep 17 00:00:00 2001 From: Paul Handly Date: Wed, 13 May 2015 15:59:11 -0400 Subject: [PATCH 468/875] Add Unity3D Asset samples --- samples/Unity3D Asset/GapTile.mat | 28 ++++ samples/Unity3D Asset/Hover.anim | 157 ++++++++++++++++++ samples/Unity3D Asset/TimeManager.asset | 8 + .../canvas_Fullscreen_Fader.prefab | 157 ++++++++++++++++++ 4 files changed, 350 insertions(+) create mode 100644 samples/Unity3D Asset/GapTile.mat create mode 100644 samples/Unity3D Asset/Hover.anim create mode 100644 samples/Unity3D Asset/TimeManager.asset create mode 100644 samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab diff --git a/samples/Unity3D Asset/GapTile.mat b/samples/Unity3D Asset/GapTile.mat new file mode 100644 index 00000000..07078927 --- /dev/null +++ b/samples/Unity3D Asset/GapTile.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GapTile + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e503f0c932121ce4881ab1605349488b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/samples/Unity3D Asset/Hover.anim b/samples/Unity3D Asset/Hover.anim new file mode 100644 index 00000000..c2c5cfab --- /dev/null +++ b/samples/Unity3D Asset/Hover.anim @@ -0,0 +1,157 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Hover + serializedVersion: 4 + m_AnimationType: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: {x: .25, y: .25, z: .25} + inSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + outSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + tangentMode: 823140368 + - time: .649999976 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + outSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + path: Radius + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + - time: .649999976 + value: 0 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_Color.a + path: Radius + classID: 212 + script: {fileID: 0} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_StartTime: 0 + m_StopTime: .649999976 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .25 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + - time: .649999976 + value: 1 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_LocalScale.x + path: Radius + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .25 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + - time: .649999976 + value: 1 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_LocalScale.y + path: Radius + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .25 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + - time: .649999976 + value: 1 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_LocalScale.z + path: Radius + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + - time: .649999976 + value: 0 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_Color.a + path: Radius + classID: 212 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_Events: [] diff --git a/samples/Unity3D Asset/TimeManager.asset b/samples/Unity3D Asset/TimeManager.asset new file mode 100644 index 00000000..f0e494b6 --- /dev/null +++ b/samples/Unity3D Asset/TimeManager.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: .0199999996 + Maximum Allowed Timestep: .333333343 + m_TimeScale: 1 diff --git a/samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab b/samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab new file mode 100644 index 00000000..0664d47e --- /dev/null +++ b/samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab @@ -0,0 +1,157 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400000} + - 222: {fileID: 22200000} + - 114: {fileID: 11400004} + - 114: {fileID: 11400002} + - 114: {fileID: 11400000} + m_Layer: 5 + m_Name: Fader_Tint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400002} + - 223: {fileID: 22300000} + m_Layer: 5 + m_Name: canvas_Fullscreen_Fader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0e5786b8fa0564f23a168e1c45671759, type: 3} + m_Name: + m_EditorClassIdentifier: + fadeOut: 1 + alwaysUseClearAsStartColor: 0 + _fadeOnStart: 1 + _startFaded: 0 + _fadeOnStartDelay: 1 + _fadeTime: .800000012 +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6d2a81ac2fb947e8a9aa86b4133fafd, type: 3} + m_Name: + m_EditorClassIdentifier: + _toDeactivate: [] +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .996078432, g: .949019611, b: .862745106, a: 1} + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 1 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400002 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22400000} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 + m_IsExploded: 1 From 90b59876d057a9144f6056485f1860d10334ac9c Mon Sep 17 00:00:00 2001 From: Vighnesh Rege Date: Wed, 13 May 2015 23:20:51 -0700 Subject: [PATCH 469/875] Added extension restrictions --- lib/linguist/generated.rb | 3 + samples/Python/gen-py-thrift-linguist.py | 83 ++++++++++++++++++++++++ test/test_blob.rb | 1 + 3 files changed, 87 insertions(+) create mode 100644 samples/Python/gen-py-thrift-linguist.py diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 9f2a1858..8d95a8c9 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -254,6 +254,9 @@ module Linguist # # Returns true or false def generated_apache_thrift? + return false unless ['.rb', '.py', '.go', '.js', '.m', '.java', '.h', '.cc', '.cpp'].include?(extname) + return false unless lines.count > 1 + return lines[0].include?("Autogenerated by Thrift Compiler") || lines[1].include?("Autogenerated by Thrift Compiler") end diff --git a/samples/Python/gen-py-thrift-linguist.py b/samples/Python/gen-py-thrift-linguist.py new file mode 100644 index 00000000..3ae25bb9 --- /dev/null +++ b/samples/Python/gen-py-thrift-linguist.py @@ -0,0 +1,83 @@ +# +# Autogenerated by Thrift Compiler (1.0.0-dev) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py +# + +from thrift.Thrift import TType, TMessageType, TException, TApplicationException + +from thrift.transport import TTransport +from thrift.protocol import TBinaryProtocol, TProtocol +try: + from thrift.protocol import fastbinary +except: + fastbinary = None + + + +class PullRequest: + """ + Attributes: + - title + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'title', None, None, ), # 1 + ) + + def __init__(self, title=None,): + self.title = title + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + self.title = iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return + oprot.writeStructBegin('PullRequest') + if self.title is not None: + oprot.writeFieldBegin('title', TType.STRING, 1) + oprot.writeString(self.title) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + + def __hash__(self): + value = 17 + value = (value * 31) ^ hash(self.title) + return value + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) diff --git a/test/test_blob.rb b/test/test_blob.rb index 962b8647..57b61e24 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -219,6 +219,7 @@ class TestBlob < Minitest::Test assert sample_blob("Go/api.pb.go").generated? # Apache Thrift generated code + assert sample_blob("Python/gen-py-linguist-thrift.py").generated? assert sample_blob("Go/gen-go-linguist-thrift.go").generated? assert sample_blob("Java/gen-java-linguist-thrift.java").generated? assert sample_blob("JavaScript/gen-js-linguist-thrift.js").generated? From ed23c6ef7554825c9eaf1ed0ce297076c30fba95 Mon Sep 17 00:00:00 2001 From: Vighnesh Rege Date: Wed, 13 May 2015 23:22:24 -0700 Subject: [PATCH 470/875] Fixed broken file reference --- .../{gen-py-thrift-linguist.py => gen-py-linguist-thrift.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename samples/Python/{gen-py-thrift-linguist.py => gen-py-linguist-thrift.py} (100%) diff --git a/samples/Python/gen-py-thrift-linguist.py b/samples/Python/gen-py-linguist-thrift.py similarity index 100% rename from samples/Python/gen-py-thrift-linguist.py rename to samples/Python/gen-py-linguist-thrift.py From 99dcd501aa7fa8d4efb4459ae79841de48a562a8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 15 May 2015 10:50:05 -0500 Subject: [PATCH 471/875] Grammars update --- vendor/grammars/Elm.tmLanguage | 2 +- vendor/grammars/IDL-Syntax | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/Sublime-Coq | 2 +- vendor/grammars/Sublime-Red | 2 +- vendor/grammars/Sublime-SQF-Language | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/api-blueprint-sublime-plugin | 2 +- vendor/grammars/asciidoc.tmbundle | 2 +- vendor/grammars/ats.sublime | 2 +- vendor/grammars/bro-sublime | 2 +- vendor/grammars/ceylon-sublimetext | 2 +- vendor/grammars/chapel-tmbundle | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 2 +- vendor/grammars/gap-tmbundle | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/html.tmbundle | 2 +- vendor/grammars/idl.tmbundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-coffee-script | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/lisp.tmbundle | 2 +- vendor/grammars/ocaml.tmbundle | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/php-smarty.tmbundle | 2 +- vendor/grammars/php.tmbundle | 2 +- vendor/grammars/r.tmbundle | 2 +- vendor/grammars/sas.tmbundle | 2 +- vendor/grammars/sublime-mask | 2 +- vendor/grammars/sublime-netlinx | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/sublime_cobol | 2 +- 38 files changed, 38 insertions(+), 38 deletions(-) diff --git a/vendor/grammars/Elm.tmLanguage b/vendor/grammars/Elm.tmLanguage index f52478b0..8137f5a4 160000 --- a/vendor/grammars/Elm.tmLanguage +++ b/vendor/grammars/Elm.tmLanguage @@ -1 +1 @@ -Subproject commit f52478b0b66d3b9aa90dbaa8cac912d87cc28a7b +Subproject commit 8137f5a48c76c4303394d7da6f3a19bf61056cc6 diff --git a/vendor/grammars/IDL-Syntax b/vendor/grammars/IDL-Syntax index 3baeaeaf..ee1bded3 160000 --- a/vendor/grammars/IDL-Syntax +++ b/vendor/grammars/IDL-Syntax @@ -1 +1 @@ -Subproject commit 3baeaeafac9e30e8a4b0789105641e0b59da32a9 +Subproject commit ee1bded38ba22716c3fb916795ca6d18f766f014 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index e31e1f53..663b4175 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit e31e1f5329b420879c50f230118cc81972710c71 +Subproject commit 663b417558e47ad4c9f8744cd15860652051e05d diff --git a/vendor/grammars/Sublime-Coq b/vendor/grammars/Sublime-Coq index 964eb8f9..0909903a 160000 --- a/vendor/grammars/Sublime-Coq +++ b/vendor/grammars/Sublime-Coq @@ -1 +1 @@ -Subproject commit 964eb8f914cd65f107f55eef8e51372fdf77bd53 +Subproject commit 0909903a9ac9bb4771d78dc6e0a306196d0fe068 diff --git a/vendor/grammars/Sublime-Red b/vendor/grammars/Sublime-Red index 085e0f43..def7baed 160000 --- a/vendor/grammars/Sublime-Red +++ b/vendor/grammars/Sublime-Red @@ -1 +1 @@ -Subproject commit 085e0f43b3b829ec63a3cedaa1b87c85275d526f +Subproject commit def7baed855873ab6730502baf07ce014b922ad9 diff --git a/vendor/grammars/Sublime-SQF-Language b/vendor/grammars/Sublime-SQF-Language index 0313fbe6..6d0f3f6c 160000 --- a/vendor/grammars/Sublime-SQF-Language +++ b/vendor/grammars/Sublime-SQF-Language @@ -1 +1 @@ -Subproject commit 0313fbe6fb962a21c337a327dcb72235af913536 +Subproject commit 6d0f3f6cee23a79f59af9ab263841c1533cd54f1 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 9ae03977..26036db1 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 9ae03977b68314597cc585ffada1998b3b1ef3be +Subproject commit 26036db16d588552b542fdd236d3982b99e4fdb7 diff --git a/vendor/grammars/api-blueprint-sublime-plugin b/vendor/grammars/api-blueprint-sublime-plugin index 4713b0e8..e5289f42 160000 --- a/vendor/grammars/api-blueprint-sublime-plugin +++ b/vendor/grammars/api-blueprint-sublime-plugin @@ -1 +1 @@ -Subproject commit 4713b0e8248b63d993ec5bcaf3d70051e56acec2 +Subproject commit e5289f429be68c1ab5df4ca099578eaa84e41dc8 diff --git a/vendor/grammars/asciidoc.tmbundle b/vendor/grammars/asciidoc.tmbundle index 28063ea4..2d3f7a4f 160000 --- a/vendor/grammars/asciidoc.tmbundle +++ b/vendor/grammars/asciidoc.tmbundle @@ -1 +1 @@ -Subproject commit 28063ea46c1b47d7aec7da39801679763ab00825 +Subproject commit 2d3f7a4f58bf626ca7c47112cdf346128851e0d3 diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime index 2565468f..d6317b23 160000 --- a/vendor/grammars/ats.sublime +++ b/vendor/grammars/ats.sublime @@ -1 +1 @@ -Subproject commit 2565468fd437fbe436bc21509a72ba8bad35fc7c +Subproject commit d6317b2309055954d4f024479a6b6b6115acf3ba diff --git a/vendor/grammars/bro-sublime b/vendor/grammars/bro-sublime index 7a8983d9..8219f5ee 160000 --- a/vendor/grammars/bro-sublime +++ b/vendor/grammars/bro-sublime @@ -1 +1 @@ -Subproject commit 7a8983d93ecdb2535b00348b2ed15a964fe6884f +Subproject commit 8219f5ee09cff98756641dde8a93456ff77b9e92 diff --git a/vendor/grammars/ceylon-sublimetext b/vendor/grammars/ceylon-sublimetext index 07029801..67ae76cf 160000 --- a/vendor/grammars/ceylon-sublimetext +++ b/vendor/grammars/ceylon-sublimetext @@ -1 +1 @@ -Subproject commit 070298013e732cc7233c5169181a4a65c0ad6ef9 +Subproject commit 67ae76cfb1d992f4718ac121008f5d974b370cc2 diff --git a/vendor/grammars/chapel-tmbundle b/vendor/grammars/chapel-tmbundle index d52e9b14..03c5d256 160000 --- a/vendor/grammars/chapel-tmbundle +++ b/vendor/grammars/chapel-tmbundle @@ -1 +1 @@ -Subproject commit d52e9b1417a5aa41e417876e121adb880d6a1ff7 +Subproject commit 03c5d25641aef5809d0ce8ce28790c96afe174b5 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index a6931961..ccb8b6ba 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit a6931961dafe68349ca0c388d225987bcf2ce049 +Subproject commit ccb8b6ba11def16841d22852cb6e942cbcdd8974 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 2914099c..4c599ca5 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 2914099c31092978a631953704031d3a6e028125 +Subproject commit 4c599ca5f2e48296228e29de49155a9e1d7b7b13 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 1d1ef907..aa1a5f22 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 1d1ef9079cb9af228fc1b3e95720e3fc2e73d3bf +Subproject commit aa1a5f22ba8c2621b35c71af067c2a819c035a52 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding index e64619da..ad3f0734 160000 --- a/vendor/grammars/fsharpbinding +++ b/vendor/grammars/fsharpbinding @@ -1 +1 @@ -Subproject commit e64619da3c08576ac468a2bac7477e6e537ddf22 +Subproject commit ad3f073464d29d1641ce70a7f626fc11e6480667 diff --git a/vendor/grammars/gap-tmbundle b/vendor/grammars/gap-tmbundle index 291a0469..ce4ff698 160000 --- a/vendor/grammars/gap-tmbundle +++ b/vendor/grammars/gap-tmbundle @@ -1 +1 @@ -Subproject commit 291a0469dd4eb7082b08e828edc8bf0cfbb9b599 +Subproject commit ce4ff698ebb4a692f0b9a3ab5e30853b87fd2b34 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index de60e51d..487bb30d 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit de60e51dc1bfcb66ccf0c3b481c180c4674656b0 +Subproject commit 487bb30d3a1d1b893e924b6139c10dc44c9c0911 diff --git a/vendor/grammars/html.tmbundle b/vendor/grammars/html.tmbundle index d1231e3d..e87e8de6 160000 --- a/vendor/grammars/html.tmbundle +++ b/vendor/grammars/html.tmbundle @@ -1 +1 @@ -Subproject commit d1231e3da1c22d3a5310223881b89c311aec9f04 +Subproject commit e87e8de6486a509bf304bba264a9fd2370f4ca64 diff --git a/vendor/grammars/idl.tmbundle b/vendor/grammars/idl.tmbundle index 95f17ac4..91baae91 160000 --- a/vendor/grammars/idl.tmbundle +++ b/vendor/grammars/idl.tmbundle @@ -1 +1 @@ -Subproject commit 95f17ac40b99ace47a26e7751c7b5de45b13b1c0 +Subproject commit 91baae9134c2de3b6f48f902c5fb64ed8b384894 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index b8dfdf5d..efe9297f 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit b8dfdf5dceeff927406dd5ff72246a60f9d16dfa +Subproject commit efe9297f7b3b87f865d89340db9fe9217dfdf258 diff --git a/vendor/grammars/language-coffee-script b/vendor/grammars/language-coffee-script index d86c8963..203cbf09 160000 --- a/vendor/grammars/language-coffee-script +++ b/vendor/grammars/language-coffee-script @@ -1 +1 @@ -Subproject commit d86c8963dcee0ab811da05a175b2218045d0c124 +Subproject commit 203cbf09295c7f1c2ac9e01cc72c9a9356f58a3d diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 6ca2ea2a..998b156a 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 6ca2ea2ac50fe02cde1bcec114c66101129daab6 +Subproject commit 998b156ada5d9c0476d8a4110c72d8f9dfcb5a8b diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 3028ec95..9f55d133 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 3028ec95a23ccf3cc4899646f9387a79db713b11 +Subproject commit 9f55d13319ac91f1c5f3a8a7ce44f3f4fe2ebde8 diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index 2163c458..abf186b4 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit 2163c45828d825b6142d6d5785b9333965bea98d +Subproject commit abf186b46f972b5b8491069d8f8c8ef5efe6ff15 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 52bed0cd..b244177a 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 52bed0cd3a455500ef620f083a3d2b78b789bdd4 +Subproject commit b244177ac84068dcf8be5e824857668109c8891a diff --git a/vendor/grammars/lisp.tmbundle b/vendor/grammars/lisp.tmbundle index 0c1d1baa..6d116d77 160000 --- a/vendor/grammars/lisp.tmbundle +++ b/vendor/grammars/lisp.tmbundle @@ -1 +1 @@ -Subproject commit 0c1d1baa16db1889aa7081bcda8ce9e5b4be85cd +Subproject commit 6d116d77b6e3d6b04d863c558527008db482b48a diff --git a/vendor/grammars/ocaml.tmbundle b/vendor/grammars/ocaml.tmbundle index 903fc455..81589400 160000 --- a/vendor/grammars/ocaml.tmbundle +++ b/vendor/grammars/ocaml.tmbundle @@ -1 +1 @@ -Subproject commit 903fc455163c90d38db77c47ca636392550967f0 +Subproject commit 8158940052861bcf90c28f343dff2c50ab440b3f diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index b1f624ee..4b768e2c 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit b1f624ee3a3825f6dd1233f6379cc4d0deaac4e0 +Subproject commit 4b768e2ce11adc7926fd31cf5c9a3b83e05d05ca diff --git a/vendor/grammars/php-smarty.tmbundle b/vendor/grammars/php-smarty.tmbundle index cbcdb59c..6f3630fe 160000 --- a/vendor/grammars/php-smarty.tmbundle +++ b/vendor/grammars/php-smarty.tmbundle @@ -1 +1 @@ -Subproject commit cbcdb59cb3590417d63efd8f30f07ac9eaa8143d +Subproject commit 6f3630fe0de4323295516e2505f20ea7bbd781bd diff --git a/vendor/grammars/php.tmbundle b/vendor/grammars/php.tmbundle index 7178a102..0239f475 160000 --- a/vendor/grammars/php.tmbundle +++ b/vendor/grammars/php.tmbundle @@ -1 +1 @@ -Subproject commit 7178a102ce62352d3512301f62ddec8157cd0d8a +Subproject commit 0239f475bbf97ab68dddb4f456f7fbf7a8f4bf76 diff --git a/vendor/grammars/r.tmbundle b/vendor/grammars/r.tmbundle index d602893b..44691a07 160000 --- a/vendor/grammars/r.tmbundle +++ b/vendor/grammars/r.tmbundle @@ -1 +1 @@ -Subproject commit d602893b72cb79611363b10efaeed8480a3e96d6 +Subproject commit 44691a07734715b11a130a4af409508f53f83aa1 diff --git a/vendor/grammars/sas.tmbundle b/vendor/grammars/sas.tmbundle index aefac510..a9689f43 160000 --- a/vendor/grammars/sas.tmbundle +++ b/vendor/grammars/sas.tmbundle @@ -1 +1 @@ -Subproject commit aefac51088df579fec4df0e3d8459f31b461d60f +Subproject commit a9689f436f49b1aa8f882119bdd8d77172af0501 diff --git a/vendor/grammars/sublime-mask b/vendor/grammars/sublime-mask index 6f12d284..55f087b4 160000 --- a/vendor/grammars/sublime-mask +++ b/vendor/grammars/sublime-mask @@ -1 +1 @@ -Subproject commit 6f12d2841d008fb02eee912485cebcad7151d4f0 +Subproject commit 55f087b49e379eb0ddcaa2788d5610cb854b82bf diff --git a/vendor/grammars/sublime-netlinx b/vendor/grammars/sublime-netlinx index 2bdcfad2..a1093189 160000 --- a/vendor/grammars/sublime-netlinx +++ b/vendor/grammars/sublime-netlinx @@ -1 +1 @@ -Subproject commit 2bdcfad2a5b2f04e459db5a2edb8ef33f74c1994 +Subproject commit a109318915751ff318de4b4d3bfc34ee57cec921 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index a1c3d2dc..454e0960 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit a1c3d2dc96c68326416c3b8c8402a8020d29b94d +Subproject commit 454e0960c1999082dc344e55cca234ea40335392 diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index b848a101..b4e9df77 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit b848a101048aaf9582d95868983386a3e8e39896 +Subproject commit b4e9df779969c982768ab7c2cadc9b3ca072f3f0 From fa8998c6b6b0ab8861686201bd0c81242b6a4cb8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 15 May 2015 10:55:50 -0500 Subject: [PATCH 472/875] Fixing up grammars --- grammars.yml | 4 ++-- lib/linguist/languages.yml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/grammars.yml b/grammars.yml index 04c5bd86..b78010d6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -402,7 +402,7 @@ vendor/grammars/perl.tmbundle/: - source.perl - source.perl.6 vendor/grammars/php-smarty.tmbundle: -- source.smarty +- text.html.smarty vendor/grammars/php.tmbundle: - text.html.php vendor/grammars/pike-textmate: @@ -435,8 +435,8 @@ vendor/grammars/ruby.tmbundle: - source.ruby - text.html.erb vendor/grammars/sas.tmbundle: -- source.SASLog - source.sas +- source.sas_log vendor/grammars/sass-textmate-bundle: - source.sass vendor/grammars/scala.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ca88446f..e2c82ab8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1363,7 +1363,7 @@ HyPhy: extensions: - .bf tm_scope: none - + IDL: type: programming color: "#a3522f" @@ -1685,7 +1685,7 @@ Latte: group: HTML extensions: - .latte - tm_scope: source.smarty + tm_scope: text.html.smarty ace_mode: smarty Lean: @@ -3077,6 +3077,7 @@ Smarty: extensions: - .tpl ace_mode: smarty + tm_scope: text.html.smarty SourcePawn: type: programming From 3878afa2e0f29b8e472dbaa40842e64c78a0a5ba Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 15 May 2015 10:56:36 -0500 Subject: [PATCH 473/875] Bumping to v4.5.5 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index f46571b1..cb53f37a 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.4" + VERSION = "4.5.5" end From 6062d3b25cbe99b8660724250436eeb249483119 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 18 May 2015 14:41:36 -0500 Subject: [PATCH 474/875] Temporarily removing Handlebars highlighting --- .gitmodules | 3 --- grammars.yml | 2 -- lib/linguist/languages.yml | 2 +- vendor/grammars/Handlebars | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) delete mode 160000 vendor/grammars/Handlebars diff --git a/.gitmodules b/.gitmodules index 3bedd29a..315e5065 100644 --- a/.gitmodules +++ b/.gitmodules @@ -118,9 +118,6 @@ [submodule "vendor/grammars/cucumber-tmbundle"] path = vendor/grammars/cucumber-tmbundle url = https://github.com/cucumber/cucumber-tmbundle -[submodule "vendor/grammars/Handlebars"] - path = vendor/grammars/Handlebars - url = https://github.com/daaain/Handlebars [submodule "vendor/grammars/powershell"] path = vendor/grammars/powershell url = https://github.com/SublimeText/PowerShell diff --git a/grammars.yml b/grammars.yml index b78010d6..a1250b5b 100644 --- a/grammars.yml +++ b/grammars.yml @@ -50,8 +50,6 @@ vendor/grammars/G-Code/: - source.gcode vendor/grammars/GDScript-sublime/: - source.gdscript -vendor/grammars/Handlebars: -- text.html.handlebars vendor/grammars/IDL-Syntax: - source.webidl vendor/grammars/InnoSetup/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e2c82ab8..c62f57d6 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1319,7 +1319,7 @@ Handlebars: extensions: - .handlebars - .hbs - tm_scope: text.html.handlebars + tm_scope: none ace_mode: handlebars Harbour: diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars deleted file mode 160000 index 35d82156..00000000 --- a/vendor/grammars/Handlebars +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 35d821569d562403af8b85a4e8d9acc841656b41 From 9bdf890fd85a729a9be52ea2b692369f1df15743 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Tue, 19 May 2015 09:24:19 -0400 Subject: [PATCH 475/875] Fix nil NoMethodError when converting a duplicated grammar We were sticking a nil value into the grammars Array when we encountered a duplicate scope. Now we strip out nils before returning the Array. --- script/convert-grammars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/convert-grammars b/script/convert-grammars index 7c45a7c8..01b80ce0 100755 --- a/script/convert-grammars +++ b/script/convert-grammars @@ -195,7 +195,7 @@ def load_grammars(tmp_dir, source, all_scopes) end all_scopes[scope] = p.url grammar - end + end.compact end def install_grammars(grammars, path) From 57429f3194eb5a849b134a3b3a6efb9f9477a9e8 Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Tue, 19 May 2015 09:25:34 -0400 Subject: [PATCH 476/875] Don't warn if a package contains multiple copies of a grammar This is pretty common (e.g., if the package contains the grammar in both XML and JSON). --- script/convert-grammars | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/script/convert-grammars b/script/convert-grammars index 01b80ce0..ec3287db 100755 --- a/script/convert-grammars +++ b/script/convert-grammars @@ -188,9 +188,11 @@ def load_grammars(tmp_dir, source, all_scopes) scope = grammar['scopeName'] if all_scopes.key?(scope) - $stderr.puts "WARN: Duplicated scope #{scope}\n" + - " Current package: #{p.url}\n" + - " Previous package: #{all_scopes[scope]}" + unless all_scopes[scope] == p.url + $stderr.puts "WARN: Duplicated scope #{scope}\n" + + " Current package: #{p.url}\n" + + " Previous package: #{all_scopes[scope]}" + end next end all_scopes[scope] = p.url From 542a0d79fdd6ecd2710f86f47253d8a97241e6b6 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 19 May 2015 13:27:37 -0500 Subject: [PATCH 477/875] Adding back Handlebars grammar --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/Handlebars | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/Handlebars diff --git a/.gitmodules b/.gitmodules index 315e5065..565127c5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -638,3 +638,6 @@ [submodule "vendor/grammars/api-blueprint-sublime-plugin"] path = vendor/grammars/api-blueprint-sublime-plugin url = https://github.com/apiaryio/api-blueprint-sublime-plugin +[submodule "vendor/grammars/Handlebars"] + path = vendor/grammars/Handlebars + url = https://github.com/daaain/Handlebars diff --git a/grammars.yml b/grammars.yml index a1250b5b..b78010d6 100644 --- a/grammars.yml +++ b/grammars.yml @@ -50,6 +50,8 @@ vendor/grammars/G-Code/: - source.gcode vendor/grammars/GDScript-sublime/: - source.gdscript +vendor/grammars/Handlebars: +- text.html.handlebars vendor/grammars/IDL-Syntax: - source.webidl vendor/grammars/InnoSetup/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c62f57d6..e2c82ab8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1319,7 +1319,7 @@ Handlebars: extensions: - .handlebars - .hbs - tm_scope: none + tm_scope: text.html.handlebars ace_mode: handlebars Harbour: diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars new file mode 160000 index 00000000..35d82156 --- /dev/null +++ b/vendor/grammars/Handlebars @@ -0,0 +1 @@ +Subproject commit 35d821569d562403af8b85a4e8d9acc841656b41 From b19cd037b76d59c437b6d687d533b42e087a9e00 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 12 May 2015 11:37:05 +0200 Subject: [PATCH 478/875] Add Lex language. --- lib/linguist/languages.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e2c82ab8..49797109 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1468,6 +1468,7 @@ J: JFlex: type: programming color: "#DBCA00" + group: Lex extensions: - .flex - .jflex @@ -1703,6 +1704,17 @@ Less: tm_scope: source.css.less ace_mode: less +Lex: + type: programming + color: "#DBCA00" + aliases: + - flex + extensions: + - .l + - .lex + tm_scope: none + ace_mode: text + LilyPond: type: programming extensions: From e7c1419390654dfbe138fc430e06432fb39baf85 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 12 May 2015 11:38:51 +0200 Subject: [PATCH 479/875] Add Yacc language. --- lib/linguist/languages.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 49797109..d99180c4 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -295,9 +295,10 @@ Befunge: Bison: type: programming + group: Yacc tm_scope: source.bison extensions: - - .y + - .bison ace_mode: text BitBake: @@ -3581,6 +3582,15 @@ YAML: - .yaml ace_mode: yaml +Yacc: + type: programming + extensions: + - .y + - .yacc + - .yy + tm_scope: source.bison + ace_mode: text + Zephir: type: programming color: "#118f9e" From 912e465193703ece783bbda3d45a9c4c4c2d2edd Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 12 May 2015 11:45:31 +0200 Subject: [PATCH 480/875] Add .l to Common Lisp. --- lib/linguist/heuristics.rb | 8 ++++++++ lib/linguist/languages.yml | 1 + 2 files changed, 9 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 2002d51b..1caab36b 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -289,5 +289,13 @@ module Linguist Language["RenderScript"] end end + + disambiguate "Common Lisp", "Lex" do |data| + if data.include?("(def(un|macro)\s") + Language["Common Lisp"] + elsif /^(%[%{}]xs|<.*>)/.match(data) + Language["Lex"] + end + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d99180c4..35a1f133 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -601,6 +601,7 @@ Common Lisp: - .lisp - .asd - .cl + - .l - .lsp - .ny - .podsl From 869c9d2fdd1ea913c691ef4350d2cf8b252f8ba7 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 12 May 2015 12:47:11 +0200 Subject: [PATCH 481/875] Add .l to Groff. --- lib/linguist/heuristics.rb | 4 +++- lib/linguist/languages.yml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 1caab36b..621d5635 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -290,11 +290,13 @@ module Linguist end end - disambiguate "Common Lisp", "Lex" do |data| + disambiguate "Common Lisp", "Lex", "Groff" do |data| if data.include?("(def(un|macro)\s") Language["Common Lisp"] elsif /^(%[%{}]xs|<.*>)/.match(data) Language["Lex"] + elsif /^\.[a-z][a-z](\s|$)/.match(data) + Language["Groff"] end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 35a1f133..e5a5dd76 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1214,6 +1214,7 @@ Groff: - '.5' - '.6' - '.7' + - .l tm_scope: text.groff aliases: - nroff From 3defb60fd7194da2d050a2c48e6bb3cdd4dd0234 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Tue, 12 May 2015 11:54:28 +0200 Subject: [PATCH 482/875] Add .l samples. zend_ini_scanner.l by Zend Technologies; New BSD license. common.l by Toshihiro MATSUI, Electrotechnical Laboratory; New BSD license. create_view.l by PostgreSQL Global Development Group; MIT license. --- samples/Common Lisp/common.l | 1201 ++++++++++++++++++++++++++++++++ samples/Groff/create_view.l | 135 ++++ samples/Lex/zend_ini_scanner.l | 601 ++++++++++++++++ 3 files changed, 1937 insertions(+) create mode 100644 samples/Common Lisp/common.l create mode 100644 samples/Groff/create_view.l create mode 100644 samples/Lex/zend_ini_scanner.l diff --git a/samples/Common Lisp/common.l b/samples/Common Lisp/common.l new file mode 100644 index 00000000..d2c8fa35 --- /dev/null +++ b/samples/Common Lisp/common.l @@ -0,0 +1,1201 @@ +;;; common.l +;;; commonLisp features for eus +;;; +;;; Copyright(c)1988, Toshihiro MATSUI, Electrotechnical Laboratory +;;; 1986-Aug +;;; 1987-Feb +;;; 1988-Jun defclass, setf + +(in-package "LISP") + +(list "@(#)$Id: common.l,v 1.1.1.1 2003/11/20 07:46:30 eus Exp $") + +(export '(lisp-implementation-type lisp-implementation-version)) + +(export '(macroexpand prog1 loop unless until + pop push pushnew inc dec incf decf)) + +(export '(defvar defparameter defconstant deflocal + dotimes dolist + do-symbols do-external-symbols do-all-symbols + psetq do do* prog prog* + case classcase otherwise + string alias + caaar caadr cadar cdaar cdadr cddar cdddr + fourth fifth sixth seventh eighth + cadddr cddddr cadddr caaddr cdaddr caddddr + flatten list-insert list-delete adjoin union intersection + set-difference set-exclusive-or rotate-list last copy-tree + copy-list nreconc rassoc acons member assoc subsetp maplist mapcon)) + +(export '(find find-if find-if-not position position-if position-if-not + count count-if count-if-not member-if member-if-not + pairlis make-list make-sequence fill replace + transpose-list + remove remove-if remove-if-not delete delete-if delete-if-not + substitute substitute-if substitute-if-not + nsubstitute nsubstitute-if nsubstitute-if-not + unique remove-duplicates extream + send-super-lexpr send-lexpr send-super send-all resend + send-super* send* + instance instance* + make-instance defclassmethod delete-method + make-class defstruct defclass readtablep copy-readtable + set-syntax-from-char + collect-if collect-instances +)) + +(export '(keywordp constantp functionp vector-class-p + compiled-function-p input-stream-p output-stream-p io-stream-p + special-form-p macro-function)) + +(export '(zerop plusp minusp oddp evenp /= logandc1 logandc2 + ecase every some reduce merge-list merge expt signum + defsetf define-setf-method + setf multiple-value-bind multiple-value-setq pop push)) +(export '(get-internal-run-time list-length values + first second third bye)) + +(export '(rad2deg deg2rad )) + +;; version +(defun lisp-implementation-type () "EusLisp") +(defun lisp-implementation-version () + (format nil + "EusLisp ~A~A for ~A created on ~A(~A)" + (car lisp-implementation-version) + (cdddr lisp-implementation-version) + *OS-VERSION* + (cadr lisp-implementation-version) + (caddr lisp-implementation-version) + )) +(setq euserror nil) +;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; basic macros +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(eval-when (load eval) + +(defun macroexpand (form) + (let ((r (macroexpand2 form))) + (while (and (listp r) (macro-function (car r))) + (setq r (macroexpand2 r))) + r)) + +;(defmacro defun (fname &rest fdef) +; `(progn +; (setq (',fname . function) (cons 'lambda ',fdef)) +; (remprop ',fname 'builtin-function-entry) +; ',fname)) + +(defmacro prog1 (&rest args) + (let ((first (gensym "PROG1"))) + `(let ((,first ,(car args))) + (progn . ,(cdr args)) ,first))) + +(defmacro loop (&rest forms) + (let ((tag (gensym "LOOP"))) + `(block nil (tagbody ,tag ,@forms (go ,tag))))) +(defmacro unless (pred &rest form) + `(when (not ,pred) . ,form)) +(defmacro until (condition &rest forms) + `(while (not ,condition) ,@forms)) +(defmacro pop (s) `(prog1 (car ,s) (setf ,s (cdr ,s)))) +(defmacro push (item place) `(setf ,place (cons ,item ,place))) +(defmacro pushnew (item place &key test test-not key) + `(progn (if (not (member ,item ,place :test ,test :test-not ,test-not + :key ,key)) + (setf ,place (cons ,item ,place))) + nil)) +(defmacro inc (var &optional h) + (if h (setq h (list '+ var h)) (setq h (list '1+ var))) + (list 'setq var h)) +(defmacro dec (var &optional h) + (if h (setq h (list '- var h)) (setq h (list '1- var))) + (list 'setq var h)) +(defmacro incf (var &optional h) + (if h (setq h (list '+ var h)) (setq h (list '1+ var))) + (list 'setf var h)) +(defmacro decf (var &optional h) + (if h (setq h (list '- var h)) (setq h (list '1- var))) + (list 'setf var h)) + +(defmacro defvar (var &optional (init nil) (doc nil)) + (unless (symbolp var) (error 20)) + `(when (eql (send ',var :vtype) 1) + (send ',var :vtype 2) + (if (not (boundp ',var)) + (send ',var :global ,init ,doc )) + ',var)) + +(defmacro deflocal (var &optional (init nil) (doc nil)) + (unless (symbolp var) (error 20)) + `(progn + (send ',var :special ,init ,doc) + ',var)) + +(defmacro defparameter (var init &optional (doc nil)) + (unless (symbolp var) (error 20)) + `(send ',var :global ,init ,doc)) + +(defmacro defconstant (sym val &optional doc) + (unless (symbolp sym) (error 20)) + `(send ',sym :constant ,val ,doc) ) + + +(defmacro dotimes (vars &rest forms) + (let ((endvar (gensym "DOTIMES"))) + `(let ((,(car vars) 0) (,endvar ,(cadr vars))) + (declare (integer ,(car vars) ,endvar)) + (while (< ,(car vars) ,endvar) + ,@forms + (setq ,(car vars) (1+ ,(car vars)))) + ,(caddr vars)))) + +(defmacro dolist (vars &rest forms) + (let ((lists (gensym "DOLIST")) (decl (car forms))) + (if (and (consp decl) (eq (car decl) 'declare)) + (setq forms (cdr forms)) + (setq decl nil)) + `(let ((,(car vars) nil) (,lists ,(cadr vars))) + ,decl + (while ,lists + (setq ,(car vars) (pop ,lists)) + ,@forms) + ,(caddr vars)))) + +(defmacro do-symbols (vars &rest forms) + (let* ((symbols (gensym "DOSYM")) + (v (car vars)) + (pkg (if (cadr vars) (cadr vars) '*package*)) + (pkgv (gensym)) + (i (gensym)) + (size (gensym)) + (svec (gensym)) + ) + `(let* ((,v nil) + (,pkgv (find-package ,pkg)) + (,i 0) + (,svec (,pkgv . intsymvector)) + (,size (length ,svec))) + (while (< ,i ,size) + (setq ,v (elt ,svec ,i)) + (inc ,i) + (when (symbolp ,v) . ,forms)) + ,(caddr vars)))) + +(defmacro do-external-symbols (vars &rest forms) + (let* ((symbols (gensym "DOEXTSYM")) + (v (car vars)) + (pkg (if (cadr vars) (cadr vars) '*package*)) + (pkgv (gensym)) + (i (gensym)) + (size (gensym)) + (svec (gensym)) + ) + `(let* ((,v nil) + (,pkgv (find-package ,pkg)) + (,i 0) + (,svec (,pkgv . symvector)) + (,size (length ,svec))) + (while (< ,i ,size) + (setq ,v (elt ,svec ,i)) + (inc ,i) + (when (symbolp ,v) . ,forms)) + ,(caddr vars)))) + +(defmacro do-all-symbols (var &rest forms) + (let ((apackage (gensym "DOALLSYM"))) + `(dolist (,apackage (list-all-packages) ,(cadr var)) + (do-symbols (,(car var) ,apackage) . ,forms) ) + )) + +(defmacro psetq (&rest varvals) + (let* (vars vals gvars) + (while varvals + (push (pop varvals) vars) + (push (pop varvals) vals) + (push (gensym "PSETQ") gvars)) + (setq vars (nreverse vars) vals (nreverse vals) gvars (nreverse gvars)) + `(let* ,(mapcar #'list gvars vals) + (setq . ,(mapcan #'list vars gvars)) + nil))) + +(defmacro do (vars endtest &rest body) + (let ((decl (car body)) (tag (gensym "DO"))) + (if (and (consp decl) (eq (car decl) 'declare)) + (setq body (cdr body)) + (setq decl nil)) + `(block nil + (let + ,(mapcar + #'(lambda (v) (list (car v) (cadr v))) + vars) + ,decl + (tagbody + ,tag + (if ,(car endtest) (return (progn . ,(cdr endtest)))) + ,@body + (psetq . ,(mapcan #'(lambda (v) (if (cddr v) (list (car v) (caddr v)))) + vars)) + (go ,tag))) ))) + +(defmacro do* (vars endtest &rest body) + (let ((decl (car body)) (tag (gensym "DO*"))) + (if (and (consp decl) (eq (car decl) 'declare)) + (setq body (cdr body)) + (setq decl nil)) + `(block nil + (let* + ,(mapcar + #'(lambda (v) (list (car v) (cadr v))) + vars) + ,decl + (tagbody + ,tag + (if ,(car endtest) (return (progn . ,(cdr endtest)))) + ,@body + (setq . ,(mapcan #'(lambda (v) (if (cddr v) (list (car v) (caddr v)))) + vars)) + (go ,tag))) ))) + + +(defmacro prog (vars &rest body) + `(block nil + (let ,vars + (tagbody ,@body)))) +(defmacro prog* (vars &rest body) + `(block nil + (let* ,vars + (tagbody ,@body)))) + +) +;; +;; case +;; +(eval-when (load eval) +(defun casebody (body) (if (cdr body) (cons 'progn body) (car body))) + +(defun casehead (keyvar head) + (if (atom head) + (if (memq head '(t otherwise)) + t + (list 'eq keyvar (list 'quote head))) + (list 'memq keyvar (list 'quote head)) )) + +(defun case1 (keyvar clauses) + (if (atom clauses) + nil + (list 'if + (casehead keyvar (caar clauses)) + (casebody (cdar clauses)) + (case1 keyvar (cdr clauses)) nil))) + +(defmacro case (key &rest clauses) + (let ((keyvar (gensym "CASE")) (result nil)) + (list 'let (list (list keyvar key)) (case1 keyvar clauses)) + )) + +(defun classcasehead (keyvar head) + (if (memq head '(t otherwise)) + t + (if (atom head) + `(derivedp ,keyvar ,head) + `(or . ,(mapcar #'(lambda (x) `(derivedp ,keyvar ,x)) head))))) + +(defun classcase1 (keyvar clauses) + (if (atom clauses) + nil + (list 'if + (classcasehead keyvar (caar clauses)) + (casebody (cdar clauses)) + (classcase1 keyvar (cdr clauses)) nil))) + +(defmacro classcase (key &rest clauses) + (let ((kv (gensym "CCASE"))) + `(let ((,kv ,key)) ,(classcase1 kv clauses)))) +) + +;; string + +(defun string (x) + (if (stringp x) x + (if (symbolp x) (copy-seq (x . pname)) + (if (numberp x) (format nil "~d" x) + (error x))))) + +; +; more list functions +; +(eval-when (load eval) + (defun alias (new old) (setslot new symbol 'function + (symbol-function old))) + (alias 'list-length 'length) + (alias 'values 'list) + ) + +(eval-when (load eval) +(defun caaar (x) (car (caar x))) +(defun caadr (x) (car (cadr x))) +(defun cadar (x) (car (cdar x))) +(defun cdaar (x) (cdr (caar x))) +(defun cdadr (x) (cdr (cadr x))) +(defun cddar (x) (cdr (cdar x))) +(defun cdddr (x) (cdr (cddr x))) +(alias 'first 'car) +(alias 'second 'cadr) +(alias 'third 'caddr) +(defun fourth (x) (cadr (cddr x))) +(defun fifth (x) (caddr (cddr x))) +(defun sixth (x) (caddr (cdddr x))) +(defun seventh (x) (caddr (cddddr x))) +(defun eighth (x) (cadddr (cddddr x))) +#| +(defun cadddr (x) (car (cdddr x))) +|# +(defun cddddr (x) (cddr (cddr x))) +(defun cadddr (x) (cadr (cddr x))) +(defun caaddr (x) (caar (cddr x))) +(defun cdaddr (x) (cdar (cddr x))) +(defun caddddr (x) (cadr (cdddr x))) +(defun flatten (l &optional accumulator) + (cond + ((null l) accumulator) + ((atom l) (cons l accumulator)) + (t (flatten (car l) + (flatten (cdr l) accumulator)))) ) + +(defun list-insert (item pos list) + "insert item as the pos'th element in list. +if pos is bigger than the length of list, item is nconc'ed at the tail" + (cond ((null list) (list item)) + ((>= pos (length list)) (nconc list (list item))) + ((= pos 0) (cons item list)) + (t (let ((tail (cons item (nthcdr pos list)))) + (rplacd (nthcdr (1- pos) list) tail) + list)))) + +(defun list-delete (lst n) "(lst n) delete nth element of lst" + (if (= n 0) + (setq lst (cdr lst)) + (rplacd (nthcdr (1- n) lst) (nthcdr (1+ n) lst)) ) + lst) + +(defun adjoin (item list &key (test #'eq) (test-not) (key #'identity)) + (if (member item list :test test :test-not test-not :key key) + list + (cons item list))) + +(defun union (list1 list2 &key (test #'eq) (test-not) (key #'identity)) + (let (result) + (dolist (item list1) + (unless (member (funcall key item) result + :test test :test-not test-not :key key) + (setq result (cons item result)))) + (dolist (item list2) + (unless (member (funcall key item) result + :test test :test-not test-not :key key) + (setq result (cons item result)))) + (reverse result))) + +(defun intersection (list1 list2 &key (test #'eq) (test-not) (key #'identity)) + (let (r) + (dolist (item list1) + (if (member (funcall key item) list2 + :test test :test-not test-not :key key) + (setq r (cons item r)))) + r)) + +(defun set-difference (list1 list2 &key (test #'eq) (test-not) + (key #'identity)) + (let (result) + (dolist (l1 list1) + (unless (member (funcall key l1) list2 + :test test :test-not test-not :key key) + (push l1 result))) + (nreverse result))) + +(defun set-exclusive-or (list1 list2 &key (test #'eq) (test-not) + (key #'identity)) + (let (result1 result2) + (dolist (l1 list1) + (setq l1 (funcall key l1)) + (unless (member l1 list2 :test test :test-not test-not :key key) + (push l1 result1))) + (dolist (l2 list2) + (setq l2 (funcall key l2)) + (unless (member l2 list1 :test test :test-not test-not :key key) + (push l2 result2))) + (nconc result1 result2))) + +(defun rotate-list (l) (append (cdr l) (list (car l)))) +(defun last (x) + (while (consp (cdr x)) (setq x (cdr x))) + x) +(defun copy-tree (x) (subst t t x)) +(defun copy-list (x) (nreverse (reverse x))) +(defun nreconc (x y) (nconc (nreverse x) y)) +(defun rassoc (item alist) + (dolist (a alist) + (if (equal item (cdr a)) (return-from rassoc a)))) +(defun acons (key datum alist) (cons (cons key datum) alist)) +(defun member (item list &key key test test-not) + (supermember item list key test test-not)) +(defun assoc (item alist &key key test test-not) + (superassoc item alist key test test-not)) +(defun subsetp (sub super &key key test test-not) + (every #'(lambda (s) (member s super :key key :test test :test-not test-not)) + sub)) +(defun maplist (func arg &rest more-args &aux result) + (if more-args + (let (arglist margs) + (while arg + (setq arglist nil) + (push arg arglist) + (setq arg (cdr arg)) + (setq margs more-args) + (while margs + (push (car margs) arglist) + (setf (car margs) (cdar margs)) + (setq margs (cdr margs)) ) + (push (apply func (nreverse arglist)) result) )) + (while arg + (push (funcall func arg) result) + (setq arg (cdr arg)))) + (nreverse result)) + +(defun mapcon (func arg &rest more-args &aux result) + (if more-args + (let (arglist margs) + (while arg + (setq arglist nil) + (push arg arglist) + (setq arg (cdr arg)) + (setq margs more-args) + (while margs + (push (car margs) arglist) + (setf (car margs) (cdar margs)) + (setq margs (cdr margs)) ) + (setq result (nconc (apply func (nreverse arglist)) result) )) ) + (while arg + (setq result (nconc (funcall func arg) result)) + (setq arg (cdr arg)))) + (nreverse result)) + +(defun find (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) (key #'identity)) + (system::raw-find item seq test test-not key nil nil start end)) +(defun find-if (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-find nil seq nil nil key pred nil start end)) +(defun find-if-not (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-find nil seq nil nil key nil pred start end)) + +(defun position (item seq &key (start 0) (end (length seq)) (count 1) + (test #'eq) (test-not nil) (key #'identity)) + (system::raw-position item seq test test-not key nil nil start end count)) +(defun position-if (pred seq &key (start 0) (end (length seq)) (count 1) (key #'identity)) + (system::raw-position nil seq nil nil key pred nil start end count)) +(defun position-if-not (pred seq &key (start 0) (end (length seq)) (count 1) (key #'identity)) + (system::raw-position nil seq nil nil key nil pred start end count)) + +(defun count (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) (key #'identity)) + (system::raw-count item seq test test-not key nil nil start end)) +(defun count-if (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-count nil seq nil nil key pred nil start end)) +(defun count-if-not (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-count nil seq nil nil key nil pred start end)) +(defun member-if (test list &key (key #'identity)) + (while list + (if (funcall test (funcall key (car list))) + (return-from member-if list) + (setq list (cdr list))))) +(defun member-if-not (test list &key (key #'identity)) + (while list + (if (not (funcall test (funcall key (car list))) ) + (return-from member-if-not list) + (setq list (cdr list))))) +(defun collect-if (func seq &aux r) + (dolist (s seq) + (if (funcall func s) (push s r)) ) + (nreverse r) ) +(defun collect-instances (klass list) + (collect-if #'(lambda (i) (derivedp i klass)) (flatten list))) + +(defun pairlis (l1 l2 &optional alist) + (if l1 + (cons (cons (car l1) (car l2)) (pairlis (cdr l1) (cdr l2) alist)) + alist)) + +(defun transpose-list (dlist) + (let (r) + (dotimes (i (length (car dlist))) + (push (mapcar #'(lambda (x) (nth i x)) dlist) r)) + (nreverse r))) + +(defun make-list (leng &key initial-element) + (let (r) + (unless (integerp leng) (error "integer required for length of make-list")) + (dotimes (i leng r) + (push initial-element r)))) + +(defun make-sequence (type size &key initial-element) + (if (or (memq type '(cons list)) (eq type cons)) + (make-list size :initial-element initial-element) + (make-array size :element-type type :initial-element initial-element))) + +(defun fill (seq item &key (start 0) (end (length seq))) + (system::raw-fill seq item start end)) + +(defun replace (dest src &key (start1 0) (end1 (length dest)) + (start2 0) (end2 (length src))) + (let ((result dest) (count (min (- end1 start1) (- end2 start2)))) + (cond ((listp dest) + (setq dest (nthcdr start1 dest)) + (cond ((listp src) + (setq src (nthcdr start2 src)) + (dotimes (c count) + (setq (dest . car) (pop src)) + (pop dest))) + (t + (dotimes (c count) + (setq (dest . car) (aref src start2)) + (inc start2) (pop dest))))) + ((listp src) ; list --> vector + (setq src (nthcdr start2 src)) + (dotimes (c count) + (aset dest start1 (pop src)) + (inc start1))) + (t (system::vector-replace dest src start1 end1 start2 end2))) + result)) + +(defun remove (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::universal-remove item seq test test-not key nil nil start end count)) +(defun remove-if (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::universal-remove nil seq nil nil key pred nil start end count)) +(defun remove-if-not (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::universal-remove nil seq nil nil key nil pred start end count)) + +(defun delete (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::raw-delete item seq test test-not key nil nil start end count)) +(defun delete-if (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-delete nil seq nil nil key pred nil start end count)) +(defun delete-if-not (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-delete nil seq nil nil key nil pred start end count)) + +(defun substitute (newitem olditem seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::raw-substitute newitem olditem seq test test-not key nil nil start end count)) +(defun substitute-if (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-substitute newitem nil seq nil nil key pred nil start end count)) +(defun substitute-if-not (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-substitute newitem nil seq nil nil key nil pred start end count)) + +(defun nsubstitute (newitem olditem seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::raw-nsubstitute newitem olditem seq test test-not key nil nil start end count)) +(defun nsubstitute-if (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-nsubstitute newitem nil seq nil nil key pred nil start end count)) +(defun nsubstitute-if-not (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-nsubstitute newitem nil seq nil nil key nil pred start end count)) + +(defun unique (l) + (cond + ((atom (cdr l)) l) + ((memq (car l) (cdr l)) (unique (cdr l))) + (t (cons (car l) (unique (cdr l)))))) + +(defun remove-duplicates (seq &key (test #'eq) (test-not) (key #'identity) + (start 0) (end 1000000)) + (system::raw-remove-duplicates seq test test-not key start end)) + +(defun extream (seq test &optional (key #'identity)) + (if (null seq) + nil + (let* ((ext (elt seq 0)) (p (funcall key ext)) x) + (if (consp seq) + (dolist (v (cdr seq)) + (when (funcall test (funcall key v) p) + (setq ext v + p (funcall key ext))) ) + (dotimes (i (length seq)) + (when (funcall test + (funcall key (setq x (aref seq i))) + p) + (setq ext x + p (funcall key ext)))) ) + ext)) ) +) ;eval-when + + +;;; +;;; equivalent pairs from WINSTON +;;; + +#| +(eval-when (load eval) +(defun coalesce (pairs) (coalesce-aux pairs nil)) +(defun coalesce-aux (pairs classes) + (cond ((null pairs) classes) + (t (coalesce-aux (cdr pairs) + (absorb (car pairs) classes))))) +(defun stick-in (new classes) + (cond ((member new (car classes)) classes) + (t (cons (cons new (car classes)) + (cdr classes))))) +(defun absorb (pair classes) + (cond ((null classes) (list pair)) + ((member (car pair) (car classes)) + (stick-in (cadr pair) classes)) + ((member (cadr pair) (car classes)) + (stick-in (car pair) classes)) + (t (cons (car classes) + (absorb pair (cdr classes)))))) +) ;eval-when ; end of more list functions +|# + + +;;; +;;; LEO functions +;;; +(eval-when (load eval) +(defmacro send-super-lexpr (selector &rest msgs) + (declare (type metaclass class)) + `(apply #'send-message self (class . super) ,selector . ,msgs) + ) +(defmacro send-super* (&rest msgs) + (declare (type metaclass class)) + `(apply #'send-message self (class . super) . ,msgs) + ) +(defmacro send-lexpr (target selector &rest msgs) + `(apply #'send ,target ,selector . ,msgs) + ) +(defmacro send* (&rest msgs) + `(apply #'send . ,msgs) + ) +(defmacro send-super (selector &rest msgs) + (declare (type metaclass class)) + `(send-message self (class . super) ,selector ,@msgs)) + +(defun send-all (receivers &rest mesg) + (mapcar #'(lambda (r) (apply 'send r mesg)) receivers)) + +(defun resend (obj mesg) + (eval (cons 'send (cons obj mesg)))) + +(defmacro instance (cls &rest message) + (if message + (let ((v (gensym "INST"))) + `(let ((,v (instantiate ,cls))) (send ,v ,@message) ,v)) + `(instantiate ,cls))) + +(defmacro instance* (cls &rest message) + (if message + (let ((v (gensym "INST"))) + `(let ((,v (instantiate ,cls))) (send* ,v ,@message) ,v)) + `(instantiate ,cls))) + +(defun make-instance (klass &rest args) + (let ((inst (instantiate klass))) + (while args + (setslot inst klass (string (pop args)) (pop args))) + inst)) + +(defmacro defclassmethod (classname &rest methods) + `(defmethod ,(metaclass-name (class (symbol-value classname))) + . ,methods)) +(defun delete-method (classobj methodname) + (setf (metaclass-methods classobj) + (delete methodname (metaclass-methods classobj) :key #'car)) + (system::method-cache t)) + +;;; +;;; defclass macro (T.Matsui 1988-Jun) +;;; + +(defun make-class (name &key + (super object) + (include object) + (printer nil) + (constructor nil) + (predicate nil) + (copier nil) + ((:metaclass metaklass) nil) + (element-type nil) + (size -1) + ((:slots varlist) nil) + (documentation nil)) + (if (symbolp super) (setq super (symbol-value super))) + (let ((classobj (if (boundp name) (symbol-value name))) + (variables) (types) (forwards) + (etype) (index 0) (accessor) (p)) + (cond ((null (classp classobj)) + (cond + (metaklass) + ((classp metaklass)) + (super (setq metaklass (class super))) + (t (setq metaklass (symbol-value 'metaclass)))) + (setq classobj (instantiate metaklass))) + (t (setq metaklass (class classobj)))) + (setq variables (nreverse (coerce (super . vars) cons)) + types (nreverse (coerce (super . types) cons)) + forwards (nreverse (coerce (super . forwards) cons))) + (dolist (v varlist) + (cond ((consp v) + (if (member (car v) variables) + (error "duplicated object variable name")) + (push (car v) variables) + (setq p (position :type v)) + (push (if p (elt v (1+ p)) t) types) + (setq p (position :forward v)) + (push (if p (elt v (1+ p)) nil) forwards)) + ((symbolp v) + (if (member v variables) + (error "duplicated object variable name")) + (push v variables) + (push t types) + (push nil forwards)) + (t (error "variable name expected for :slots")))) + (setq variables (coerce (nreverse variables) vector) + types (coerce (nreverse types) vector) + forwards (coerce (nreverse forwards) vector)) + (setq etype (cdr (assq element-type + '((:BIT . 1) (:CHAR . 2) (:BYTE . 3) + (:INTEGER . 4) (:FLOAT . 5) (:FOREIGN . 6))))) + (if (null etype) + (setq etype (if (subclassp metaklass vectorclass) + (vectorclass-element-type super) + 0))) + (setq (classobj . name) name + (classobj . vars) variables + (classobj . types) types + (classobj . forwards) forwards + (classobj . super) super) + (if (subclassp metaklass vectorclass) + (setq (classobj . element-type) etype + (classobj . size) size)) + (if (null (classobj . cix)) (enter-class classobj)) +;;;??? +;;; (proclaim (list 'special name)) +;; (set name classobj) +;; (send name :global classobj) + (putprop name documentation :class-documentation) +;; define slot access functions and setf methods for all variables + (setq variables (coerce variables cons)) + (dolist (v variables) + (setq accessor (intern (concatenate string + (string name) "-" (string v)))) + (setf (symbol-function accessor) + `(macro (obj) (list 'slot obj ',name ,index))) + (incf index)) + classobj )) + + +(defmacro defstruct (name &rest slots) + `(progn + (send ',name :global + (make-class ',name :slots ',slots)) + ',name)) + + +(defmacro defclass (name &key slots + (super 'object) + (size -1) + ((:metaclass metaklass) nil) + element-type + documentation + (doc documentation)) + `(progn + (send ',name :global + (make-class ',name + :super ,super + :slots ',slots + :metaclass ,metaklass + :element-type ,element-type + :size ,size + :documentation ,doc) ) + ',name)) + + +;;; +;;; READTABLES +;;; +(eval-when (load eval) +(defun readtablep (x) (derivedp x readtable)) +(defun copy-readtable (&optional (from *readtable*) (to nil)) + (when (null from) (setq from *default-readtable*)) + (when (null to) + (setq to (instantiate readtable)) + (setf (readtable-syntax to) (instantiate string 256) + (readtable-macro to) (instantiate vector 256) + (readtable-dispatch-macro to) (instantiate vector 256))) + (if (or (null (readtablep from)) (null (readtablep to))) + (error "readtable expected")) + (replace (readtable-syntax to) (readtable-syntax from)) + (replace (readtable-macro to) (readtable-macro from)) + (replace (readtable-dispatch-macro to) (readtable-dispatch-macro from)) + (setf (readtable-case to) (readtable-case from)) + to) + +(defun set-syntax-from-char + (to-char from-char &optional (to-readtable *readtable*) + (from-readtable *default-readtable*)) + (let (syn) + (setq syn (aref (readtable-syntax from-readtable) from-char)) + (aset (readtable-syntax to-readtable) to-char syn) + (if (or (eq syn 7) (eq syn 8)) + (aset (readtable-macro to-readtable) to-char + (aref (readtable-macro from-readtable) from-char))) + syn)) +) + + +;; +;; predicates +;; +(eval-when (load eval) +(defun keywordp (sym) + (declare (type symbol sym)) + (and (symbolp sym) (eq (sym . homepkg) *keyword-package*))) + +(defun constantp (obj) + (declare (type symbol obj)) + (if (symbolp obj) + (if (or (keywordp obj) (eq (obj . vtype) 0)) t nil) + (if (listp obj) + (if (eq (car obj) 'quote) t nil) + (if (atom obj) t nil)))) + +(defun functionp (obj) + (cond ((numberp obj) nil) + ((listp obj) + (if (or (memq (car obj) '(lambda lambda-closure))) t nil)) + ((derivedp obj compiled-code) + (eq (compiled-code-type obj) 0)) + ((and (symbolp obj) (fboundp obj)) + (functionp (symbol-function obj))) + (t nil))) + +(defun vector-class-p (p) (derivedp p vectorclass)) +(defun compiled-function-p (x) (derivedp x compiled-code)) +(defun input-stream-p (obj) + (declare (stream obj)) + (or (and (derivedp obj stream) (eq (obj . direction) :input)) + (derivedp obj io-stream))) +(defun output-stream-p (obj) + (declare (stream obj)) + (or (and (derivedp obj stream) (eq (obj . direction) :output)) + (derivedp obj io-stream))) +(defun io-stream-p (obj) (derivedp obj io-stream)) + +(defun special-form-p (s) + (and (symbolp s) + (fboundp s) + (setq s (symbol-function s)) + (compiled-function-p s) + (eq (s . type) 2))) + +(defun macro-function (s) + (and (symbolp s) + (fboundp s) + (setq s (symbol-function s)) + (if (and (compiled-function-p s) + (eq (s . type) 1)) + s + (if (and (listp s) (eq (car s) 'macro)) s nil) + ))) + +(defun zerop (n) (= n 0)) +(defun plusp (n) (> n 0)) +(defun minusp (n) (< n 0)) +(defun oddp (n) (logbitp 0 n)) +(defun evenp (n) (not (logbitp 0 n))) +(defun /= (n1 n2) (not (= n1 n2))) +(defun logandc1 (x y) (logand (lognot x) y)) +(defun logandc2 (x y) (logand x (lognot y))) +(defmacro ecase (&rest x) (cons 'case x)) + +(defun every (pred arg &rest more-args) + (cond ((and (null more-args) (listp arg)) + (while arg (unless (funcall pred (pop arg)) (return-from every nil)))) + (t + (setq arg (cons arg more-args)) + (dotimes (i (length (car arg))) + (unless (apply pred (mapcar #'(lambda (x) (elt x i)) arg)) + (return-from every nil))))) + t) + +(defun some (pred arg &rest more-args &aux result) + (setq arg (cons arg more-args)) + (dotimes (i (length (car arg))) + (if (setq result (apply pred (mapcar #'(lambda (x) (elt x i)) arg))) + (return-from some result))) + nil) +) + +(eval-when (load eval) +(defun reduce (func seq &key (start 0) (end (length seq)) + from-end initial-value) + (let ((length (- end start))) + (when from-end (setq seq (reverse seq))) + (cond + ((and (= length 1) (null initial-value)) (elt seq start)) + ((= length 0) + (if initial-value initial-value (funcall func))) + (t + (unless initial-value + (setq initial-value + (funcall func (elt seq start) (elt seq (inc start)))) + (dec length 2) (inc start)) + (dotimes (i length) + (setq initial-value + (funcall func initial-value (elt seq (+ start i))))) + initial-value)))) + +(defun merge-list (list1 list2 pred key &aux result p1 e1 e2 pp1 pp2) + (while (and list2 (not (funcall pred (funcall key (car list1)) + (funcall key (car list2))))) + (push (pop list2) result)) + (setq result (nreverse result)) + (setq p1 list1) + (while (and list2 (cdr p1)) + (setq e2 (funcall key (car list2))) + (while (and p1 (funcall pred (funcall key (cadr p1)) e2)) (pop p1)) + (when p1 + (setf pp1 (cdr p1) + pp2 (cdr list2) + (cdr p1) list2 + (cdr list2) pp1 + p1 list2 + list2 pp2)) ) + (nconc result list1 list2)) + +(defun merge (result-class seq1 seq2 pred &key (key #'identity)) + (if (and (eq result-class cons) (listp seq1) (listp seq2)) + (merge-list seq1 seq2 pred key) + (let* ((l1 (length seq1)) (l2 (length seq2)) (l (+ l1 l2)) + (result (make-sequence result-class l)) + (i1 0) (i2 0) (j 0) (e1) (e2) (e)) + (while (< j l) + (cond ((>= i1 l1) (setq e (elt seq2 i2)) (inc i2)) + ((>= i2 l2) (setq e (elt seq1 i1)) (inc i1)) + (t (setq e1 (elt seq1 i1) + e2 (elt seq2 i2)) + (if (funcall pred (funcall key e1) (funcall key e2)) + (progn (inc i1) (setq e e1)) + (progn (inc i2) (setq e e2))))) + (setf (elt result j) e) + (inc j)) + result))) +) + + +;; +;; arithmetics aux +;; + +(defun expt (a x) + (cond ((and (integerp x) (>= x 0)) + (if (zerop x) + 1 + (let ((b a) (y 1) (ix (1- x))) + (declare (integer y ix)) + (while (> ix 0) + (cond ((> ix y) + (setq b (* b b) + ix (- ix y) + y (ash y 1))) + (t (setq b (* b a) ix (1- ix))))) + b))) + (t (exp (* x (log a)))))) +(defun signum (x) (if (zerop x) x (/ x (abs x)))) +(defun rad2deg (rad) (/ (* 360.0 rad) 2pi)) +(defun deg2rad (deg) (/ (* 2pi deg) 360.0)) +) + +;;;; (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. +;;;; +;;;; setf routines +;;;; Modified by T.Matsui to be run on euslisp +;;;; 1988-Jun-27 + +;;; DEFSETF macro. +(defmacro defsetf (access-fn &rest rest) + (cond ((and (car rest) (or (symbolp (car rest)) (functionp (car rest)))) + `(progn (putprop ',access-fn ',(car rest) 'setf-update-fn) + (remprop ',access-fn 'setf-lambda) + (remprop ',access-fn 'setf-method) + (putprop ',access-fn + ,(when (not (endp (cdr rest))) + (unless (stringp (cadr rest)) + (error "A doc-string expected.")) + (unless (endp (cddr rest)) + (error "Extra arguments.")) + (cadr rest)) + 'setf-documentation) + ',access-fn)) + (t + (unless (= (list-length (cadr rest)) 1) + (error "(store-variable) expected.")) + `(progn (putprop ',access-fn ',rest 'setf-lambda) + (remprop ',access-fn 'setf-update-fn) + (remprop ',access-fn 'setf-method) +; (putprop ',access-fn +; ,(find-documentation (cddr rest)) +; 'setf-documentation) + ',access-fn)))) + + +;;; DEFINE-SETF-METHOD macro. +(defmacro define-setf-method (access-fn &rest rest) + `(progn (putprop ',access-fn #'(lambda ,@rest) 'setf-method) + (remprop ',access-fn 'setf-lambda) + (remprop ',access-fn 'setf-update-fn) +; (putprop ',access-fn +; ,(find-documentation (cdr rest)) +; 'setf-documentation) + ',access-fn)) + +;;; The expansion function for SETF. +(defun setf-expand-1 (place newvalue) + (let (g) + (setq place (macroexpand place)) + (cond ((and (consp place) (eq (car place) 'the)) + (setf-expand-1 (caddr place) `(the ,(cadr place) ,newvalue))) + ((symbolp place) `(setq ,place ,newvalue)) + ((and (symbolp (car place)) (setq g (get (car place) 'setf-update-fn))) + `(,g ,@(cdr place) ,newvalue)) + ((and (symbolp (car place)) + (setq g (get (car place) 'structure-access)) + (get (car place) 'setf-lambda) + (not (eq (car g) 'list)) + (not (eq (car g) 'vector))) + `(system::structure-set ,(cadr place) ',(car g) ,(cdr g) ,newvalue)) + ((macro-function (car place)) + (setf-expand-1 (macroexpand place) newvalue)) + ((setq g (get (car place) 'setf-lambda)) + (apply (append '(lambda) (list (append (cadr g) (car g))) (cddr g)) + newvalue (cdr place))) +; ((get (car place) 'setf-method) +; (apply (get (car form) 'setf-method) (cdr place))) + (t (error "SETF?"))))) + +(defun setf-expand (l) + (cond ((endp l) nil) + ((endp (cdr l)) (error "~S is an illegal SETF form." l)) + (t + (cons (setf-expand-1 (car l) (cadr l)) + (setf-expand (cddr l)))))) + + +;;; SETF macro. +(defmacro setf (&rest rest) + (cond ((endp rest) nil) + ((endp (cdr rest)) (error "~S is an illegal SETF form." rest)) + ((endp (cddr rest)) (setf-expand-1 (car rest) (cadr rest))) + (t (cons 'progn (setf-expand rest))))) + +;(defmacro incf (form &optional (d 1)) +; `(setf ,form (+ ,form ,d))) +;(defmacro decf (form &optional (d 1)) +; `(setf ,form (- ,form ,d))) + +;;; +;;; MULTI-VALUE simulation macros +;;; +(defmacro multiple-value-bind (vlist init &rest forms) + (let* ((inits (gensym "MULT")) (vilist) (count 0)) + (dolist (v vlist) + (push (list v `(elt ,inits ,count)) vilist) + (inc count)) + `(let* ((,inits ,init) . ,vilist) . ,forms))) + +(defmacro multiple-value-setq (vlist form) + (let ((i 0) (tempvar (gensym "MULT")) setq-forms) + (dolist (v vlist) + (push (list + (second + (assoc i + '((0 first) (1 second) (2 third) + (3 fourth)(4 fifth) (5 sixth) (6 seventh)))) + tempvar) + setq-forms) + (push v setq-forms) + (incf i)) + `(let ((,tempvar ,form)) + (setq . ,setq-forms)))) + +(alias 'values 'list) + +#| +(defun quick-sort (sequence start end predicate key &aux (j 0) (k 0) exch) + (declare (fixnum start end j k)) + (when (<= end (the fixnum (1+ start))) + (return-from quick-sort sequence)) + (setq j start) + (setq k (1- end)) + (do ((d (aref sequence start))) + ((> j k)) + (do () + ((or (> j k) + (funcall predicate + (funcall key (aref sequence k)) + (funcall key d)))) + (decf k)) + (when (< k start) + (quick-sort sequence (1+ start) end predicate key) + (return-from quick-sort sequence)) + (do () + ((or (> j k) + (not (funcall predicate + (funcall key (aref sequence j)) + (funcall key d))))) + (incf j)) + (when (> j k) (return)) + (setf exch (aref sequence k) + (aref sequence k) (aref sequence j) + (aref sequence j) exch) + (incf j) + (decf k)) + (quick-sort sequence start j predicate key) + (quick-sort sequence j end predicate key) + sequence) + +(defun qsort (seq test &optional (key #'identity) &aux (vec nil) (s nil)) + (cond ((null seq) nil) + ((listp seq) + (setq vec (coerce seq vector)) + (quick-sort vec 0 (length seq) test key) + (setq s seq) + (dotimes (i (length vec)) + (rplaca s (aref vec i)) + (setq s (cdr s))) + seq) + ((vectorp seq) + (quick-sort seq 0 (length seq) test key) + seq) )) +|# + +#| +(eval-when (load eval) + (defmacro pop (s) `(prog1 (car ,s) (setf ,s (cdr ,s)))) + (defmacro push (item place) `(setf ,place (cons ,item ,place))) + ) +|# + + diff --git a/samples/Groff/create_view.l b/samples/Groff/create_view.l new file mode 100644 index 00000000..ad083c2d --- /dev/null +++ b/samples/Groff/create_view.l @@ -0,0 +1,135 @@ +.\\" auto-generated by docbook2man-spec $Revision: 1.1.1.1 $ +.TH "CREATE VIEW" "" "2005-11-05" "SQL - Language Statements" "SQL Commands" +.SH NAME +CREATE VIEW \- define a new view + +.SH SYNOPSIS +.sp +.nf +CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW \fIname\fR [ ( \fIcolumn_name\fR [, ...] ) ] + AS \fIquery\fR +.sp +.fi +.SH "DESCRIPTION" +.PP +\fBCREATE VIEW\fR defines a view of a query. The view +is not physically materialized. Instead, the query is run every time +the view is referenced in a query. +.PP +\fBCREATE OR REPLACE VIEW\fR is similar, but if a view +of the same name already exists, it is replaced. You can only replace +a view with a new query that generates the identical set of columns +(i.e., same column names and data types). +.PP +If a schema name is given (for example, CREATE VIEW +myschema.myview ...) then the view is created in the specified +schema. Otherwise it is created in the current schema. Temporary +views exist in a special schema, so a schema name may not be given +when creating a temporary view. The name of the view must be +distinct from the name of any other view, table, sequence, or index +in the same schema. +.SH "PARAMETERS" +.TP +\fBTEMPORARY or TEMP\fR +If specified, the view is created as a temporary view. +Temporary views are automatically dropped at the end of the +current session. Existing +permanent relations with the same name are not visible to the +current session while the temporary view exists, unless they are +referenced with schema-qualified names. + +If any of the tables referenced by the view are temporary, +the view is created as a temporary view (whether +TEMPORARY is specified or not). +.TP +\fB\fIname\fB\fR +The name (optionally schema-qualified) of a view to be created. +.TP +\fB\fIcolumn_name\fB\fR +An optional list of names to be used for columns of the view. +If not given, the column names are deduced from the query. +.TP +\fB\fIquery\fB\fR +A query (that is, a \fBSELECT\fR statement) which will +provide the columns and rows of the view. + +Refer to SELECT [\fBselect\fR(l)] +for more information about valid queries. +.SH "NOTES" +.PP +Currently, views are read only: the system will not allow an insert, +update, or delete on a view. You can get the effect of an updatable +view by creating rules that rewrite inserts, etc. on the view into +appropriate actions on other tables. For more information see +CREATE RULE [\fBcreate_rule\fR(l)]. +.PP +Use the DROP VIEW [\fBdrop_view\fR(l)] +statement to drop views. +.PP +Be careful that the names and types of the view's columns will be +assigned the way you want. For example, +.sp +.nf +CREATE VIEW vista AS SELECT 'Hello World'; +.sp +.fi +is bad form in two ways: the column name defaults to ?column?, +and the column data type defaults to \fBunknown\fR. If you want a +string literal in a view's result, use something like +.sp +.nf +CREATE VIEW vista AS SELECT text 'Hello World' AS hello; +.sp +.fi +.PP +Access to tables referenced in the view is determined by permissions of +the view owner. However, functions called in the view are treated the +same as if they had been called directly from the query using the view. +Therefore the user of a view must have permissions to call all functions +used by the view. +.SH "EXAMPLES" +.PP +Create a view consisting of all comedy films: +.sp +.nf +CREATE VIEW comedies AS + SELECT * + FROM films + WHERE kind = 'Comedy'; +.sp +.fi +.SH "COMPATIBILITY" +.PP +The SQL standard specifies some additional capabilities for the +\fBCREATE VIEW\fR statement: +.sp +.nf +CREATE VIEW \fIname\fR [ ( \fIcolumn_name\fR [, ...] ) ] + AS \fIquery\fR + [ WITH [ CASCADED | LOCAL ] CHECK OPTION ] +.sp +.fi +.PP +The optional clauses for the full SQL command are: +.TP +\fBCHECK OPTION\fR +This option has to do with updatable views. All +\fBINSERT\fR and \fBUPDATE\fR commands on the view +will be checked to ensure data satisfy the view-defining +condition (that is, the new data would be visible through the +view). If they do not, the update will be rejected. +.TP +\fBLOCAL\fR +Check for integrity on this view. +.TP +\fBCASCADED\fR +Check for integrity on this view and on any dependent +view. CASCADED is assumed if neither +CASCADED nor LOCAL is specified. +.PP +.PP +\fBCREATE OR REPLACE VIEW\fR is a +PostgreSQL language extension. +So is the concept of a temporary view. +.SH "SEE ALSO" +DROP VIEW [\fBdrop_view\fR(l)] diff --git a/samples/Lex/zend_ini_scanner.l b/samples/Lex/zend_ini_scanner.l new file mode 100644 index 00000000..8aeb076e --- /dev/null +++ b/samples/Lex/zend_ini_scanner.l @@ -0,0 +1,601 @@ +/* + +----------------------------------------------------------------------+ + | Zend Engine | + +----------------------------------------------------------------------+ + | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.00 of the Zend license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.zend.com/license/2_00.txt. | + | If you did not receive a copy of the Zend license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@zend.com so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Zeev Suraski | + | Jani Taskinen | + | Marcus Boerger | + | Nuno Lopes | + | Scott MacVicar | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#include +#include "zend.h" +#include "zend_globals.h" +#include +#include "zend_ini_scanner.h" + +#if 0 +# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) +#else +# define YYDEBUG(s, c) +#endif + +#include "zend_ini_scanner_defs.h" + +#define YYCTYPE unsigned char +/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD) + * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */ +#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; } +#define YYCURSOR SCNG(yy_cursor) +#define YYLIMIT SCNG(yy_limit) +#define YYMARKER SCNG(yy_marker) + +#define YYGETCONDITION() SCNG(yy_state) +#define YYSETCONDITION(s) SCNG(yy_state) = s + +#define STATE(name) yyc##name + +/* emulate flex constructs */ +#define BEGIN(state) YYSETCONDITION(STATE(state)) +#define YYSTATE YYGETCONDITION() +#define yytext ((char*)SCNG(yy_text)) +#define yyleng SCNG(yy_leng) +#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ + yyleng = (unsigned int)x; } while(0) + +/* #define yymore() goto yymore_restart */ + +/* perform sanity check. If this message is triggered you should + increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */ +/*!max:re2c */ +#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1) +# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL +#endif + + +/* How it works (for the core ini directives): + * =========================================== + * + * 1. Scanner scans file for tokens and passes them to parser. + * 2. Parser parses the tokens and passes the name/value pairs to the callback + * function which stores them in the configuration hash table. + * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual + * registering of ini entries and uses zend_get_configuration_directive() + * to fetch the previously stored name/value pair from configuration hash table + * and registers the static ini entries which match the name to the value + * into EG(ini_directives) hash table. + * 4. PATH section entries are used per-request from down to top, each overriding + * previous if one exists. zend_alter_ini_entry() is called for each entry. + * Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the + * php_admin_* directives used within Apache httpd.conf when PHP is compiled as + * module for Apache. + * 5. User defined ini files (like .htaccess for apache) are parsed for each request and + * stored in separate hash defined by SAPI. + */ + +/* TODO: (ordered by importance :-) + * =============================================================================== + * + * - Separate constant lookup totally from plain strings (using CONSTANT pattern) + * - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators + * - Add #include "some.ini" + * - Allow variables to refer to options also when using parse_ini_file() + * + */ + +/* Globals Macros */ +#define SCNG INI_SCNG +#ifdef ZTS +ZEND_API ts_rsrc_id ini_scanner_globals_id; +#else +ZEND_API zend_ini_scanner_globals ini_scanner_globals; +#endif + +/* Eat leading whitespace */ +#define EAT_LEADING_WHITESPACE() \ + while (yytext[0]) { \ + if (yytext[0] == ' ' || yytext[0] == '\t') { \ + SCNG(yy_text)++; \ + yyleng--; \ + } else { \ + break; \ + } \ + } + +/* Eat trailing whitespace + extra char */ +#define EAT_TRAILING_WHITESPACE_EX(ch) \ + while (yyleng > 0 && ( \ + (ch != 'X' && yytext[yyleng - 1] == ch) || \ + yytext[yyleng - 1] == '\n' || \ + yytext[yyleng - 1] == '\r' || \ + yytext[yyleng - 1] == '\t' || \ + yytext[yyleng - 1] == ' ') \ + ) { \ + yyleng--; \ + } + +/* Eat trailing whitespace */ +#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X') + +#define zend_ini_copy_value(retval, str, len) { \ + Z_STRVAL_P(retval) = zend_strndup(str, len); \ + Z_STRLEN_P(retval) = len; \ + Z_TYPE_P(retval) = IS_STRING; \ +} + +#define RETURN_TOKEN(type, str, len) { \ + zend_ini_copy_value(ini_lval, str, len); \ + return type; \ +} + +static void _yy_push_state(int new_state TSRMLS_DC) +{ + zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int)); + YYSETCONDITION(new_state); +} + +#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm) + +static void yy_pop_state(TSRMLS_D) +{ + int *stack_state; + zend_stack_top(&SCNG(state_stack), (void **) &stack_state); + YYSETCONDITION(*stack_state); + zend_stack_del_top(&SCNG(state_stack)); +} + +static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) +{ + YYCURSOR = (YYCTYPE*)str; + SCNG(yy_start) = YYCURSOR; + YYLIMIT = YYCURSOR + len; +} + +#define ini_filename SCNG(filename) + +/* {{{ init_ini_scanner() +*/ +static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) +{ + /* Sanity check */ + if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) { + zend_error(E_WARNING, "Invalid scanner mode"); + return FAILURE; + } + + SCNG(lineno) = 1; + SCNG(scanner_mode) = scanner_mode; + SCNG(yy_in) = fh; + + if (fh != NULL) { + ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + } else { + ini_filename = NULL; + } + + zend_stack_init(&SCNG(state_stack)); + BEGIN(INITIAL); + + return SUCCESS; +} +/* }}} */ + +/* {{{ shutdown_ini_scanner() +*/ +void shutdown_ini_scanner(TSRMLS_D) +{ + zend_stack_destroy(&SCNG(state_stack)); + if (ini_filename) { + free(ini_filename); + } +} +/* }}} */ + +/* {{{ zend_ini_scanner_get_lineno() +*/ +int zend_ini_scanner_get_lineno(TSRMLS_D) +{ + return SCNG(lineno); +} +/* }}} */ + +/* {{{ zend_ini_scanner_get_filename() +*/ +char *zend_ini_scanner_get_filename(TSRMLS_D) +{ + return ini_filename ? ini_filename : "Unknown"; +} +/* }}} */ + +/* {{{ zend_ini_open_file_for_scanning() +*/ +int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC) +{ + char *buf; + size_t size; + + if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) { + zend_file_handle_dtor(fh TSRMLS_CC); + return FAILURE; + } + + yy_scan_buffer(buf, size TSRMLS_CC); + + return SUCCESS; +} +/* }}} */ + +/* {{{ zend_ini_prepare_string_for_scanning() +*/ +int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC) +{ + int len = strlen(str); + + if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + yy_scan_buffer(str, len TSRMLS_CC); + + return SUCCESS; +} +/* }}} */ + +/* {{{ zend_ini_escape_string() + */ +static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC) +{ + register char *s, *t; + char *end; + + zend_ini_copy_value(lval, str, len); + + /* convert escape sequences */ + s = t = Z_STRVAL_P(lval); + end = s + Z_STRLEN_P(lval); + + while (s < end) { + if (*s == '\\') { + s++; + if (s >= end) { + *t++ = '\\'; + continue; + } + switch (*s) { + case '"': + if (*s != quote_type) { + *t++ = '\\'; + *t++ = *s; + break; + } + case '\\': + case '$': + *t++ = *s; + Z_STRLEN_P(lval)--; + break; + default: + *t++ = '\\'; + *t++ = *s; + break; + } + } else { + *t++ = *s; + } + if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { + SCNG(lineno)++; + } + s++; + } + *t = 0; +} +/* }}} */ + +int ini_lex(zval *ini_lval TSRMLS_DC) +{ +restart: + SCNG(yy_text) = YYCURSOR; + +/* yymore_restart: */ + /* detect EOF */ + if (YYCURSOR >= YYLIMIT) { + if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) { + BEGIN(INITIAL); + return END_OF_LINE; + } + return 0; + } + + /* Eat any UTF-8 BOM we find in the first 3 bytes */ + if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) { + if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) { + YYCURSOR += 3; + goto restart; + } + } +/*!re2c +re2c:yyfill:check = 0; +LNUM [0-9]+ +DNUM ([0-9]*[\.][0-9]+)|([0-9]+[\.][0-9]*) +NUMBER [-]?{LNUM}|{DNUM} +ANY_CHAR (.|[\n\t]) +NEWLINE ("\r"|"\n"|"\r\n") +TABS_AND_SPACES [ \t] +WHITESPACE [ \t]+ +CONSTANT [a-zA-Z_][a-zA-Z0-9_]* +LABEL [^=\n\r\t;|&$~(){}!"\[]+ +TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}] +OPERATORS [&|~()!] +DOLLAR_CURLY "${" + +SECTION_RAW_CHARS [^\]\n\r] +SINGLE_QUOTED_CHARS [^'] +RAW_VALUE_CHARS [^"\n\r;\000] + +LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR}))) +VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR}) +SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) + + := yyleng = YYCURSOR - SCNG(yy_text); + +"[" { /* Section start */ + /* Enter section data lookup state */ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { + yy_push_state(ST_SECTION_RAW TSRMLS_CC); + } else { + yy_push_state(ST_SECTION_VALUE TSRMLS_CC); + } + return TC_SECTION; +} + +"'"{SINGLE_QUOTED_CHARS}+"'" { /* Raw string */ + /* Eat leading and trailing single quotes */ + if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { + SCNG(yy_text)++; + yyleng = yyleng - 2; + } + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +"]"{TABS_AND_SPACES}*{NEWLINE}? { /* End of section */ + BEGIN(INITIAL); + SCNG(lineno)++; + return ']'; +} + +{LABEL}"["{TABS_AND_SPACES}* { /* Start of option with offset */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace and [ */ + EAT_TRAILING_WHITESPACE_EX('['); + + /* Enter offset lookup state */ + yy_push_state(ST_OFFSET TSRMLS_CC); + + RETURN_TOKEN(TC_OFFSET, yytext, yyleng); +} + +{TABS_AND_SPACES}*"]" { /* End of section or an option offset */ + BEGIN(INITIAL); + return ']'; +} + +{DOLLAR_CURLY} { /* Variable start */ + yy_push_state(ST_VARNAME TSRMLS_CC); + return TC_DOLLAR_CURLY; +} + +{LABEL} { /* Variable name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + + RETURN_TOKEN(TC_VARNAME, yytext, yyleng); +} + +"}" { /* Variable end */ + yy_pop_state(TSRMLS_C); + return '}'; +} + +("true"|"on"|"yes"){TABS_AND_SPACES}* { /* TRUE value (when used outside option value/offset this causes parse error!) */ + RETURN_TOKEN(BOOL_TRUE, "1", 1); +} + +("false"|"off"|"no"|"none"|"null"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/ + RETURN_TOKEN(BOOL_FALSE, "", 0); +} + +{LABEL} { /* Get option name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + + RETURN_TOKEN(TC_LABEL, yytext, yyleng); +} + +{TABS_AND_SPACES}*[=]{TABS_AND_SPACES}* { /* Start option value */ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { + yy_push_state(ST_RAW TSRMLS_CC); + } else { + yy_push_state(ST_VALUE TSRMLS_CC); + } + return '='; +} + +["] { + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '\n': + SCNG(lineno)++; + break; + case '\r': + if (*YYCURSOR != '\n') { + SCNG(lineno)++; + } + break; + case '"': + yyleng = YYCURSOR - SCNG(yy_text) - 2; + SCNG(yy_text)++; + RETURN_TOKEN(TC_RAW, yytext, yyleng); + case '\\': + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + break; + } + } + yyleng = YYCURSOR - SCNG(yy_text); + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +{RAW_VALUE_CHARS}+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +{SECTION_RAW_CHARS}+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +{TABS_AND_SPACES}*{NEWLINE} { /* End of option value */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} + +{CONSTANT} { /* Get constant option value */ + RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); +} + +{NUMBER} { /* Get number option value as string */ + RETURN_TOKEN(TC_NUMBER, yytext, yyleng); +} + +{TOKENS} { /* Disallow these chars outside option values */ + return yytext[0]; +} + +{OPERATORS}{TABS_AND_SPACES}* { /* Boolean operators */ + return yytext[0]; +} + +[=] { /* Make = used in option value to trigger error */ + yyless(0); + BEGIN(INITIAL); + return END_OF_LINE; +} + +{VALUE_CHARS}+ { /* Get everything else as option/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} + +{SECTION_VALUE_CHARS}+ { /* Get rest as section/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} + +{TABS_AND_SPACES}*["] { /* Double quoted '"' string start */ + yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); + return '"'; +} + +["]{TABS_AND_SPACES}* { /* Double quoted '"' string ends */ + yy_pop_state(TSRMLS_C); + return '"'; +} + +[^] { /* Escape double quoted string contents */ + if (YYCURSOR > YYLIMIT) { + return 0; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') { + continue; + } + break; + case '$': + if (*YYCURSOR == '{') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; + } + + yyleng = YYCURSOR - SCNG(yy_text); + + zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); + return TC_QUOTED_STRING; +} + +{WHITESPACE} { + RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); +} + +{TABS_AND_SPACES}+ { + /* eat whitespace */ + goto restart; +} + +{TABS_AND_SPACES}*{NEWLINE} { + SCNG(lineno)++; + return END_OF_LINE; +} + +{TABS_AND_SPACES}*[;][^\r\n]*{NEWLINE} { /* Comment */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} + +{TABS_AND_SPACES}*[#][^\r\n]*{NEWLINE} { /* #Comment */ + zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} + +[^] { /* End of option value (if EOF is reached before EOL */ + BEGIN(INITIAL); + return END_OF_LINE; +} + +<*>[^] { + return 0; +} + +*/ +} From efd34d8cb035ea8be07e3a0b18a8d751ae2fcedc Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Wed, 20 May 2015 14:07:18 +0200 Subject: [PATCH 483/875] Display IntelliJ configurations files as XML Fixes #2409 --- lib/linguist/languages.yml | 1 + samples/XML/intellij.iml | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 samples/XML/intellij.iml diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e2c82ab8..2f134625 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3443,6 +3443,7 @@ XML: - .glade - .gml - .grxml + - .iml - .ivy - .jelly - .kml diff --git a/samples/XML/intellij.iml b/samples/XML/intellij.iml new file mode 100644 index 00000000..74bdc4de --- /dev/null +++ b/samples/XML/intellij.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file From f95ca130734fa7ba948c1f1eb5ce3921157dcc22 Mon Sep 17 00:00:00 2001 From: Yegor Timoschenko Date: Thu, 21 May 2015 18:56:38 +0000 Subject: [PATCH 484/875] Add JRuby executable example, fixes #2412 --- samples/Ruby/jruby | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 samples/Ruby/jruby diff --git a/samples/Ruby/jruby b/samples/Ruby/jruby new file mode 100755 index 00000000..b8cb9601 --- /dev/null +++ b/samples/Ruby/jruby @@ -0,0 +1,3 @@ +#!/usr/bin/env jruby + +puts "This is a JRuby executable example." From 43a2da46f9ac1e1479cccdbc47c8cfc619c5672a Mon Sep 17 00:00:00 2001 From: Yegor Timoschenko Date: Thu, 21 May 2015 19:35:45 +0000 Subject: [PATCH 485/875] Add jruby and rbx interpreters for Ruby --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2541f5b0..0b15fb15 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2847,6 +2847,8 @@ Ruby: - ruby - macruby - rake + - jruby + - rbx filenames: - .pryrc - Appraisals From 9dc8a10e2a5a254c89d04f8577e19dd4fdbac22f Mon Sep 17 00:00:00 2001 From: Yegor Timoschenko Date: Sat, 23 May 2015 05:32:37 +0000 Subject: [PATCH 486/875] Use real-world samples for JRuby and Rubinius executables https://github.com/shoes/shoes4/blob/master/shoes-swt/bin/shoes-swt https://github.com/txus/rexpl/blob/master/bin/rexpl --- samples/Ruby/jruby | 3 --- samples/Ruby/rexpl | 4 ++++ samples/Ruby/shoes-swt | 11 +++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) delete mode 100755 samples/Ruby/jruby create mode 100755 samples/Ruby/rexpl create mode 100755 samples/Ruby/shoes-swt diff --git a/samples/Ruby/jruby b/samples/Ruby/jruby deleted file mode 100755 index b8cb9601..00000000 --- a/samples/Ruby/jruby +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env jruby - -puts "This is a JRuby executable example." diff --git a/samples/Ruby/rexpl b/samples/Ruby/rexpl new file mode 100755 index 00000000..e55b1cd5 --- /dev/null +++ b/samples/Ruby/rexpl @@ -0,0 +1,4 @@ +#!/usr/bin/env rbx +$: << 'lib' +require 'rexpl' +Rexpl::Environment.run diff --git a/samples/Ruby/shoes-swt b/samples/Ruby/shoes-swt new file mode 100755 index 00000000..df746edd --- /dev/null +++ b/samples/Ruby/shoes-swt @@ -0,0 +1,11 @@ +#!/usr/bin/env jruby +lib_directory = File.expand_path('../../lib', __FILE__) +$LOAD_PATH << lib_directory + +if File.exist?("Gemfile") + require "bundler/setup" + Bundler.require +end + +require 'shoes/ui/cli' +Shoes::CLI.new("swt").run ARGV From a1e8fc4f978506d9062491f82a8b282136b3d8a9 Mon Sep 17 00:00:00 2001 From: Evgenii Neumerzhitckii Date: Sat, 23 May 2015 21:54:25 +1000 Subject: [PATCH 487/875] Treat Carthage path as vendored --- lib/linguist/vendor.yml | 3 +++ test/test_blob.rb | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index edc95804..18f3ad0b 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -163,6 +163,9 @@ ## Obj-C ## +# Carthage +- ^Carthage/ + # Cocoapods - ^Pods/ diff --git a/test/test_blob.rb b/test/test_blob.rb index cc125b05..f380a39e 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -422,6 +422,9 @@ class TestBlob < Minitest::Test # Normalize assert sample_blob("some/asset/path/normalize.css").vendored? + # Carthage + assert sample_blob('Carthage/blah').vendored? + # Cocoapods assert sample_blob('Pods/blah').vendored? @@ -473,7 +476,7 @@ class TestBlob < Minitest::Test # Sphinx docs assert sample_blob("docs/_build/asset.doc").vendored? assert sample_blob("docs/theme/file.css").vendored? - + # Vagrant assert sample_blob("puphpet/file.pp").vendored? end From e20d6fc04ae268d6586fd5172314ae6a1423beeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 3 May 2015 11:45:03 +0200 Subject: [PATCH 488/875] add .mdpolicy XML files --- lib/linguist/languages.yml | 1 + samples/XML/Example.mdpolicy | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 samples/XML/Example.mdpolicy diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 662c488f..f9d3b0ff 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3414,6 +3414,7 @@ XML: - .jelly - .kml - .launch + - .mdpolicy - .mm - .mxml - .nproj diff --git a/samples/XML/Example.mdpolicy b/samples/XML/Example.mdpolicy new file mode 100644 index 00000000..6c9ff048 --- /dev/null +++ b/samples/XML/Example.mdpolicy @@ -0,0 +1,12 @@ + + + + 120 + False + True + + + None + FileFormatDefault + + \ No newline at end of file From 788fac7c435515b993274b792b395f819bd08bf6 Mon Sep 17 00:00:00 2001 From: Caleb Fenton Date: Wed, 27 May 2015 10:07:20 -0700 Subject: [PATCH 489/875] Add Smali language --- .gitmodules | 3 + grammars.yml | 2 + lib/linguist/languages.yml | 7 + samples/Smali/ActionBarDrawerToggle.smali | 551 +++ samples/Smali/DoodleMobileAnaylise.smali | 4235 ++++++++++++++++++++ samples/Smali/ModernAsyncTask.smali | 700 ++++ samples/Smali/PenguinSprite.smali | 781 ++++ samples/Smali/Subject.smali | 1179 ++++++ samples/Smali/ViewDragHelper.smali | 4382 +++++++++++++++++++++ samples/Smali/WbxmlSerializer.smali | 1863 +++++++++ vendor/grammars/smali-sublime | 1 + 11 files changed, 13704 insertions(+) create mode 100644 samples/Smali/ActionBarDrawerToggle.smali create mode 100644 samples/Smali/DoodleMobileAnaylise.smali create mode 100644 samples/Smali/ModernAsyncTask.smali create mode 100644 samples/Smali/PenguinSprite.smali create mode 100644 samples/Smali/Subject.smali create mode 100644 samples/Smali/ViewDragHelper.smali create mode 100644 samples/Smali/WbxmlSerializer.smali create mode 160000 vendor/grammars/smali-sublime diff --git a/.gitmodules b/.gitmodules index 565127c5..edb00607 100644 --- a/.gitmodules +++ b/.gitmodules @@ -641,3 +641,6 @@ [submodule "vendor/grammars/Handlebars"] path = vendor/grammars/Handlebars url = https://github.com/daaain/Handlebars +[submodule "vendor/grammars/smali-sublime"] + path = vendor/grammars/smali-sublime + url = https://github.com/ShaneWilton/sublime-smali diff --git a/grammars.yml b/grammars.yml index b78010d6..21a54c67 100644 --- a/grammars.yml +++ b/grammars.yml @@ -446,6 +446,8 @@ vendor/grammars/scheme.tmbundle: - source.scheme vendor/grammars/scilab.tmbundle: - source.scilab +vendor/grammars/smali-sublime/smali.tmLanguage: +- source.smali vendor/grammars/smalltalk-tmbundle: - source.smalltalk vendor/grammars/sql.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 45febdb6..5b248812 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3081,6 +3081,13 @@ Slim: - .slim ace_mode: text +Smali: + type: programming + extensions: + - .smali + ace_mode: text + tm_scope: source.smali + Smalltalk: type: programming color: "#596706" diff --git a/samples/Smali/ActionBarDrawerToggle.smali b/samples/Smali/ActionBarDrawerToggle.smali new file mode 100644 index 00000000..c22484e6 --- /dev/null +++ b/samples/Smali/ActionBarDrawerToggle.smali @@ -0,0 +1,551 @@ +.class public Landroid/support/v4/app/ActionBarDrawerToggle; +.super Ljava/lang/Object; +.source "ActionBarDrawerToggle.java" + +# interfaces +.implements Landroid/support/v4/widget/DrawerLayout$DrawerListener; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/app/ActionBarDrawerToggle$1;, + Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + } +.end annotation + + +# static fields +.field private static final ID_HOME:I = 0x102002c + +.field private static final IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + +# instance fields +.field private final mActivity:Landroid/app/Activity; + +.field private final mCloseDrawerContentDescRes:I + +.field private mDrawerImage:Landroid/graphics/drawable/Drawable; + +.field private final mDrawerImageResource:I + +.field private mDrawerIndicatorEnabled:Z + +.field private final mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + +.field private final mOpenDrawerContentDescRes:I + +.field private mSetIndicatorInfo:Ljava/lang/Object; + +.field private mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + +.field private mThemeImage:Landroid/graphics/drawable/Drawable; + + +# direct methods +.method static constructor ()V + .registers 3 + + .prologue + const/4 v2, 0x0 + + .line 108 + sget v0, Landroid/os/Build$VERSION;->SDK_INT:I + + .line 109 + .local v0, "version":I + const/16 v1, 0xb + + if-lt v0, v1, :cond_f + + .line 110 + new-instance v1, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC; + + invoke-direct {v1, v2}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC;->(Landroid/support/v4/app/ActionBarDrawerToggle$1;)V + + sput-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + .line 114 + :goto_e + return-void + + .line 112 + :cond_f + new-instance v1, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase; + + invoke-direct {v1, v2}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase;->(Landroid/support/v4/app/ActionBarDrawerToggle$1;)V + + sput-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + goto :goto_e +.end method + +.method public constructor (Landroid/app/Activity;Landroid/support/v4/widget/DrawerLayout;III)V + .registers 8 + .param p1, "activity" # Landroid/app/Activity; + .param p2, "drawerLayout" # Landroid/support/v4/widget/DrawerLayout; + .param p3, "drawerImageRes" # I + .param p4, "openDrawerContentDescRes" # I + .param p5, "closeDrawerContentDescRes" # I + + .prologue + .line 152 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 121 + const/4 v0, 0x1 + + iput-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + .line 153 + iput-object p1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + .line 154 + iput-object p2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + .line 155 + iput p3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImageResource:I + + .line 156 + iput p4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + .line 157 + iput p5, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + .line 159 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + invoke-interface {v0, p1}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->getThemeUpIndicator(Landroid/app/Activity;)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + .line 160 + invoke-virtual {p1}, Landroid/app/Activity;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + invoke-virtual {v0, p3}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + .line 161 + new-instance v0, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + invoke-direct {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->(Landroid/graphics/drawable/Drawable;)V + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + .line 162 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const v1, 0x3eaaaaab + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffsetBy(F)V + + .line 163 + return-void +.end method + + +# virtual methods +.method public isDrawerIndicatorEnabled()Z + .registers 2 + + .prologue + .line 217 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + return v0 +.end method + +.method public onConfigurationChanged(Landroid/content/res/Configuration;)V + .registers 4 + .param p1, "newConfig" # Landroid/content/res/Configuration; + + .prologue + .line 229 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + invoke-interface {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->getThemeUpIndicator(Landroid/app/Activity;)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + .line 230 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + invoke-virtual {v0}, Landroid/app/Activity;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + iget v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImageResource:I + + invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + .line 231 + invoke-virtual {p0}, Landroid/support/v4/app/ActionBarDrawerToggle;->syncState()V + + .line 232 + return-void +.end method + +.method public onDrawerClosed(Landroid/view/View;)V + .registers 6 + .param p1, "drawerView" # Landroid/view/View; + + .prologue + .line 298 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 299 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_18 + + .line 300 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + invoke-interface {v0, v1, v2, v3}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarDescription(Ljava/lang/Object;Landroid/app/Activity;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 303 + :cond_18 + return-void +.end method + +.method public onDrawerOpened(Landroid/view/View;)V + .registers 6 + .param p1, "drawerView" # Landroid/view/View; + + .prologue + .line 282 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/high16 v1, 0x3f800000 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 283 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_19 + + .line 284 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + invoke-interface {v0, v1, v2, v3}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarDescription(Ljava/lang/Object;Landroid/app/Activity;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 287 + :cond_19 + return-void +.end method + +.method public onDrawerSlide(Landroid/view/View;F)V + .registers 7 + .param p1, "drawerView" # Landroid/view/View; + .param p2, "slideOffset" # F + + .prologue + const/high16 v3, 0x40000000 + + const/high16 v2, 0x3f000000 + + .line 264 + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + invoke-virtual {v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->getOffset()F + + move-result v0 + + .line 265 + .local v0, "glyphOffset":F + cmpl-float v1, p2, v2 + + if-lez v1, :cond_20 + + .line 266 + const/4 v1, 0x0 + + sub-float v2, p2, v2 + + invoke-static {v1, v2}, Ljava/lang/Math;->max(FF)F + + move-result v1 + + mul-float/2addr v1, v3 + + invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F + + move-result v0 + + .line 270 + :goto_1a + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + invoke-virtual {v1, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 271 + return-void + + .line 268 + :cond_20 + mul-float v1, p2, v3 + + invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F + + move-result v0 + + goto :goto_1a +.end method + +.method public onDrawerStateChanged(I)V + .registers 2 + .param p1, "newState" # I + + .prologue + .line 314 + return-void +.end method + +.method public onOptionsItemSelected(Landroid/view/MenuItem;)Z + .registers 5 + .param p1, "item" # Landroid/view/MenuItem; + + .prologue + const v2, 0x800003 + + .line 244 + if-eqz p1, :cond_1f + + invoke-interface {p1}, Landroid/view/MenuItem;->getItemId()I + + move-result v0 + + const v1, 0x102002c + + if-ne v0, v1, :cond_1f + + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_1f + + .line 245 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->isDrawerVisible(I)Z + + move-result v0 + + if-eqz v0, :cond_21 + + .line 246 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->closeDrawer(I)V + + .line 251 + :cond_1f + :goto_1f + const/4 v0, 0x0 + + return v0 + + .line 248 + :cond_21 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->openDrawer(I)V + + goto :goto_1f +.end method + +.method public setDrawerIndicatorEnabled(Z)V + .registers 8 + .param p1, "enable" # Z + + .prologue + .line 199 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eq p1, v0, :cond_23 + + .line 200 + if-eqz p1, :cond_27 + + .line 201 + sget-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + const v5, 0x800003 + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_24 + + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + :goto_1b + invoke-interface {v1, v2, v3, v4, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 208 + :goto_21 + iput-boolean p1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + .line 210 + :cond_23 + return-void + + .line 201 + :cond_24 + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + goto :goto_1b + + .line 205 + :cond_27 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + const/4 v4, 0x0 + + invoke-interface {v0, v1, v2, v3, v4}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + goto :goto_21 +.end method + +.method public syncState()V + .registers 7 + + .prologue + const v5, 0x800003 + + .line 175 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_2f + + .line 176 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/high16 v1, 0x3f800000 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 181 + :goto_12 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_2e + + .line 182 + sget-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_36 + + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + :goto_28 + invoke-interface {v1, v2, v3, v4, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 186 + :cond_2e + return-void + + .line 178 + :cond_2f + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + goto :goto_12 + + .line 182 + :cond_36 + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + goto :goto_28 +.end method diff --git a/samples/Smali/DoodleMobileAnaylise.smali b/samples/Smali/DoodleMobileAnaylise.smali new file mode 100644 index 00000000..9f08c551 --- /dev/null +++ b/samples/Smali/DoodleMobileAnaylise.smali @@ -0,0 +1,4235 @@ +.class public Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; +.super Ljava/lang/Object; +.source "DoodleMobileAnaylise.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$Sync;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$MobclixHttpClient;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent; + } +.end annotation + + +# static fields +.field static final DEBUG:Z = false + +.field public static final LOG_LEVEL_DEBUG:I = 0x1 + +.field public static final LOG_LEVEL_ERROR:I = 0x8 + +.field public static final LOG_LEVEL_FATAL:I = 0x10 + +.field public static final LOG_LEVEL_INFO:I = 0x2 + +.field public static final LOG_LEVEL_WARN:I = 0x4 + +.field private static MC_ANALYTICS_DIRECTORY:Ljava/lang/String; = null + +.field private static MC_DIRECTORY:Ljava/lang/String; = null + +.field private static MC_MAX_ANALYTICS_FILES:I = 0x0 + +.field private static MC_MAX_EVENTS_PER_FILE:I = 0x0 + +.field static final PREFS_CONFIG:Ljava/lang/String; = ".DMConfig" + +.field public static final PUSH_MESSAGE_INTERVAL:I = 0xf0 + +.field static final PUSH_MESSAGE_TO_SERVER:I = 0x186a1 + +.field private static SYNC_ERROR:I + +.field private static SYNC_READY:I + +.field private static SYNC_RUNNING:I + +.field private static applicationInfo:Landroid/content/pm/ApplicationInfo; + +.field private static final controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + +.field private static currentFile:Ljava/io/File; + +.field private static fileCreated:Z + +.field private static isInitialized:Z + +.field private static loggingEvent:Z + +.field static mSyncHandler:Landroid/os/Handler; + +.field private static numLinesWritten:I + +.field private static packageName:Ljava/lang/String; + +.field private static syncContents:Ljava/lang/String; + +.field private static syncStatus:I + + +# instance fields +.field private analyticsServer:Ljava/lang/String; + +.field private androidId:Ljava/lang/String; + +.field private androidVersion:Ljava/lang/String; + +.field private applicationId:Ljava/lang/String; + +.field private applicationVersion:Ljava/lang/String; + +.field private autoplay:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + +.field private configServer:Ljava/lang/String; + +.field private connectionType:Ljava/lang/String; + +.field private context:Landroid/content/Context; + +.field private deviceHardwareModel:Ljava/lang/String; + +.field private deviceId:Ljava/lang/String; + +.field private deviceModel:Ljava/lang/String; + +.field private enabled:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + +.field private haveLocationPermission:Z + +.field private haveNetworkStatePermission:Z + +.field private idleTimeout:I + +.field private isInSession:Z + +.field private isNewUser:Z + +.field private isOfflineSession:Z + +.field private isTopTask:Z + +.field private language:Ljava/lang/String; + +.field private latitude:Ljava/lang/String; + +.field private locale:Ljava/lang/String; + +.field location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + +.field private locationCriteria:Landroid/location/Criteria; + +.field private locationHandler:Landroid/os/Handler; + +.field private logLevel:I + +.field private longitude:Ljava/lang/String; + +.field private mcc:Ljava/lang/String; + +.field private mnc:Ljava/lang/String; + +.field private pollTime:I + +.field private previousDeviceId:Ljava/lang/String; + +.field private refreshTime:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Long;", + ">;" + } + .end annotation +.end field + +.field private remoteConfigSet:I + +.field private session:Lorg/json/JSONObject; + +.field private sessionEndTime:J + +.field private sessionPollingTimer:Ljava/util/Timer; + +.field private sessionStartTime:J + +.field private sharedPrefs:Landroid/content/SharedPreferences; + +.field private totalIdleTime:J + +.field private userAgent:Ljava/lang/String; + + +# direct methods +.method static constructor ()V + .locals 3 + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 70 + const-string v0, "doodlemobile" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + .line 72 + const-string v0, "analytics" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + .line 74 + const/16 v0, 0x64 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + .line 76 + const/4 v0, 0x5 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_EVENTS_PER_FILE:I + + .line 104 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + .line 106 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + .line 108 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + .line 110 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + .line 112 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + .line 114 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + .line 116 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + .line 118 + const/4 v0, 0x1 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_RUNNING:I + + .line 120 + const/4 v0, -0x1 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_ERROR:I + + .line 184 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->()V + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + .line 186 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + .line 188 + const-string v0, "" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + .line 190 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + .line 771 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$3; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$3;->()V + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + return-void +.end method + +.method public constructor ()V + .locals 7 + + .prologue + const/4 v5, 0x0 + + const-wide/16 v3, 0x0 + + const/4 v2, 0x0 + + const-string v6, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + const-string v1, "null" + + .line 56 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 78 + iput-object v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + .line 80 + new-instance v0, Lorg/json/JSONObject; + + invoke-direct {v0}, Lorg/json/JSONObject;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + .line 88 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->enabled:Ljava/util/HashMap; + + .line 90 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->refreshTime:Ljava/util/HashMap; + + .line 92 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->autoplay:Ljava/util/HashMap; + + .line 94 + const-string v0, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->configServer:Ljava/lang/String; + + .line 96 + const-string v0, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + .line 98 + const/16 v0, 0x7530 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + .line 100 + const v0, 0x1d4c0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + .line 102 + iput v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + .line 122 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isOfflineSession:Z + + .line 124 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 126 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 128 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 130 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 132 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 134 + new-instance v0, Ljava/util/Timer; + + invoke-direct {v0}, Ljava/util/Timer;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionPollingTimer:Ljava/util/Timer; + + .line 144 + iput-object v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->previousDeviceId:Ljava/lang/String; + + .line 150 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 154 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + .line 156 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + .line 158 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + .line 160 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 162 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 164 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mcc:Ljava/lang/String; + + .line 166 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mnc:Ljava/lang/String; + + .line 168 + const-string v0, "" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 170 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 172 + const/16 v0, 0x10 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + .line 174 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + .line 178 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + .line 180 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isNewUser:Z + + .line 1045 + return-void +.end method + +.method private OpenAnalyticsFile()Z + .locals 7 + + .prologue + const/4 v6, 0x1 + + const/4 v5, 0x0 + + const-string v0, "DoodleMobileAnaylise" + + const-string v0, "/" + + const-string v0, "UTF-8" + + .line 720 + sput v6, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + .line 721 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateSession()V + + .line 724 + :try_start_0 + new-instance v0, Lorg/json/JSONObject; + + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const/4 v2, 0x3 + + new-array v2, v2, [Ljava/lang/String; + + const/4 v3, 0x0 + + const-string v4, "ll" + + aput-object v4, v2, v3 + + const/4 v3, 0x1 + + const-string v4, "g" + + aput-object v4, v2, v3 + + const/4 v3, 0x2 + + const-string v4, "id" + + aput-object v4, v2, v3 + + invoke-direct {v0, v1, v2}, Lorg/json/JSONObject;->(Lorg/json/JSONObject;[Ljava/lang/String;)V + + .line 726 + const-string v1, "a" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getApplicationId()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 727 + const-string v1, "p" + + const-string v2, "android" + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 728 + const-string v1, "m" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getMobclixVersion()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 729 + const-string v1, "v" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getApplicationVersion()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 730 + const-string v1, "d" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceId()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 731 + const-string v1, "dm" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceModel()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 732 + const-string v1, "dv" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getAndroidVersion()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 733 + const-string v1, "hwdm" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceHardwareModel()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 735 + const-string v1, "m" + + const-string v2, "2.3" + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 736 + const-string v1, "lg" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLanguage()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 737 + const-string v1, "lo" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLocale()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 738 + const-string v1, "pn" + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 740 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + const/4 v3, 0x0 + + invoke-virtual {v1, v2, v3}, Landroid/content/Context;->getDir(Ljava/lang/String;I)Ljava/io/File; + + move-result-object v1 + + .line 741 + new-instance v2, Ljava/io/File; + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v3, "/" + + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v2, v1}, Ljava/io/File;->(Ljava/lang/String;)V + + .line 743 + invoke-virtual {v2}, Ljava/io/File;->mkdir()Z + + .line 744 + const-string v1, "DoodleMobileAnaylise" + + const-string v3, "mkdir" + + invoke-static {v1, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 745 + invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File; + + move-result-object v1 + + array-length v1, v1 + + sget v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + if-lt v1, v3, :cond_0 + + .line 746 + const-string v0, "DoodleMobileAnaylise" + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File; + + move-result-object v2 + + array-length v2, v2 + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v2, " " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + sget v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + move v0, v5 + + .line 768 + :goto_0 + return v0 + + .line 751 + :cond_0 + new-instance v1, Ljava/io/File; + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File; + + move-result-object v2 + + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v2 + + const-string v3, "/" + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v3 + + invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + move-result-object v2 + + const-string v3, ".log" + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-direct {v1, v2}, Ljava/io/File;->(Ljava/lang/String;)V + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + .line 754 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + invoke-virtual {v1}, Ljava/io/File;->createNewFile()Z + + .line 756 + new-instance v1, Ljava/io/FileOutputStream; + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + invoke-direct {v1, v2}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V + + .line 758 + const-string v2, "[{\"hb\":" + + invoke-virtual {v2}, Ljava/lang/String;->getBytes()[B + + move-result-object v2 + + invoke-virtual {v1, v2}, Ljava/io/FileOutputStream;->write([B)V + + .line 759 + invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B + + move-result-object v0 + + invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V + + .line 760 + const-string v0, ",\"ev\":[" + + invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B + + move-result-object v0 + + invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V + + .line 761 + invoke-virtual {v1}, Ljava/io/FileOutputStream;->close()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 767 + sput-boolean v6, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + move v0, v6 + + .line 768 + goto :goto_0 + + .line 763 + :catch_0 + move-exception v0 + + .line 764 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V + + move v0, v5 + + .line 765 + goto :goto_0 +.end method + +.method static synthetic access$002(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1000()Ljava/io/File; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + return-object v0 +.end method + +.method static synthetic access$102(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1100()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return v0 +.end method + +.method static synthetic access$1102(I)I + .locals 0 + + .prologue + .line 56 + sput p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return p0 +.end method + +.method static synthetic access$1112(I)I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + add-int/2addr v0, p0 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return v0 +.end method + +.method static synthetic access$1200()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_EVENTS_PER_FILE:I + + return v0 +.end method + +.method static synthetic access$1400(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Landroid/content/Context; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + return-object v0 +.end method + +.method static synthetic access$1500(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$1502(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1600(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Landroid/location/Criteria; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + return-object v0 +.end method + +.method static synthetic access$1602(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Landroid/location/Criteria;)Landroid/location/Criteria; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + return-object p1 +.end method + +.method static synthetic access$1702(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)Z + .locals 0 + + .prologue + .line 56 + iput-boolean p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + return p1 +.end method + +.method static synthetic access$1802(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)Z + .locals 0 + + .prologue + .line 56 + iput-boolean p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + return p1 +.end method + +.method static synthetic access$1900(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)V + .locals 0 + + .prologue + .line 56 + invoke-direct {p0, p1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + + return-void +.end method + +.method static synthetic access$200(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + .locals 0 + + .prologue + .line 56 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateLocation()V + + return-void +.end method + +.method static synthetic access$2000()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_RUNNING:I + + return v0 +.end method + +.method static synthetic access$2100()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2200()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2300()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2302(Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + sput-object p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + return-object p0 +.end method + +.method static synthetic access$2400(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2500()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_ERROR:I + + return v0 +.end method + +.method static synthetic access$400()Z + .locals 1 + + .prologue + .line 56 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + return v0 +.end method + +.method static synthetic access$402(Z)Z + .locals 0 + + .prologue + .line 56 + sput-boolean p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + return p0 +.end method + +.method static synthetic access$500()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + return v0 +.end method + +.method static synthetic access$502(I)I + .locals 0 + + .prologue + .line 56 + sput p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + return p0 +.end method + +.method static synthetic access$600()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + return v0 +.end method + +.method static synthetic access$700()Z + .locals 1 + + .prologue + .line 56 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + return v0 +.end method + +.method static synthetic access$702(Z)Z + .locals 0 + + .prologue + .line 56 + sput-boolean p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + return p0 +.end method + +.method static synthetic access$800(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Z + .locals 1 + + .prologue + .line 56 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->OpenAnalyticsFile()Z + + move-result v0 + + return v0 +.end method + +.method static synthetic access$900()Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + return-object v0 +.end method + +.method static addPref(Ljava/lang/String;Ljava/lang/String;)V + .locals 1 + + .prologue + .line 333 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 334 + invoke-interface {v0, p0, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + .line 335 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 338 + :goto_0 + return-void + + .line 336 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method static addPref(Ljava/util/Map;)V + .locals 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/Map", + "<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;)V" + } + .end annotation + + .prologue + .line 342 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v1 + + .line 343 + invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set; + + move-result-object v0 + + invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 344 + :goto_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 345 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/util/Map$Entry; + + .line 346 + invoke-interface {p0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/String; + + invoke-interface {p0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/String; + + invoke-interface {v1, v0, p0}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + goto :goto_0 + + .line 349 + :catch_0 + move-exception v0 + + .line 351 + :goto_1 + return-void + + .line 348 + :cond_0 + invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_1 +.end method + +.method static clearPref()V + .locals 1 + + .prologue + .line 364 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 365 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->clear()Landroid/content/SharedPreferences$Editor; + + .line 366 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 369 + :goto_0 + return-void + + .line 367 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method private createNewSession()V + .locals 7 + + .prologue + const-wide/16 v5, 0x0 + + const/4 v4, 0x1 + + .line 804 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v0 + + .line 805 + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + iget-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sha1(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + .line 807 + iput-boolean v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 808 + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 809 + iput-wide v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 810 + iput-wide v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 811 + iput-boolean v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 813 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "id" + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 817 + :goto_0 + const/4 v0, 0x0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + .line 818 + new-instance v0, Ljava/lang/Thread; + + new-instance v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig; + + const/4 v2, 0x0 + + invoke-direct {v1, p0, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;)V + + invoke-direct {v0, v1}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V + + .line 819 + invoke-virtual {v0}, Ljava/lang/Thread;->start()V + + .line 820 + return-void + + .line 814 + :catch_0 + move-exception v0 + + .line 815 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync 2" + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + goto :goto_0 +.end method + +.method private endSession()V + .locals 6 + + .prologue + const-string v0, "totalSessionTime" + + const-string v0, "totalIdleTime" + + const-string v0, "offlineSessions" + + .line 852 + :try_start_0 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-nez v0, :cond_0 + + .line 893 + :goto_0 + return-void + + .line 854 + :cond_0 + iget-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + sub-long/2addr v0, v2 + + .line 856 + const-string v2, "totalSessionTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v2 + + if-eqz v2, :cond_1 + + .line 858 + :try_start_1 + const-string v2, "totalSessionTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_3 + + move-result-wide v2 + + add-long/2addr v0, v2 + + .line 861 + :cond_1 + :goto_1 + :try_start_2 + const-string v2, "totalIdleTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_2 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 + + move-result v2 + + if-eqz v2, :cond_2 + + .line 863 + :try_start_3 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + const-string v4, "totalIdleTime" + + invoke-static {v4}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v4 + + invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + + move-result-wide v4 + + add-long/2addr v2, v4 + + iput-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + :try_end_3 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_2 + + .line 867 + :cond_2 + :goto_2 + :try_start_4 + new-instance v2, Ljava/util/HashMap; + + invoke-direct {v2}, Ljava/util/HashMap;->()V + + .line 868 + const-string v3, "totalSessionTime" + + invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v3, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 869 + const-string v0, "totalIdleTime" + + iget-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + invoke-static {v3, v4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v2, v0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 872 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isOfflineSession:Z + + if-eqz v0, :cond_4 + + .line 873 + const/4 v0, 0x1 + + .line 874 + const-string v1, "offlineSessions" + + invoke-static {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_4 + .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_0 + + move-result v1 + + if-eqz v1, :cond_3 + + .line 876 + :try_start_5 + const-string v1, "offlineSessions" + + invoke-static {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I + :try_end_5 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_1 + + move-result v1 + + add-int/2addr v0, v1 + + .line 880 + :cond_3 + :goto_3 + :try_start_6 + const-string v1, "offlineSessions" + + int-to-long v3, v0 + + invoke-static {v3, v4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 884 + :cond_4 + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->addPref(Ljava/util/Map;)V + + .line 886 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 887 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 888 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 889 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 890 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + :try_end_6 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_0 + + goto :goto_0 + + .line 891 + :catch_0 + move-exception v0 + + goto/16 :goto_0 + + .line 878 + :catch_1 + move-exception v1 + + goto :goto_3 + + .line 865 + :catch_2 + move-exception v2 + + goto :goto_2 + + .line 859 + :catch_3 + move-exception v2 + + goto :goto_1 +.end method + +.method static getAllPref()Ljava/util/HashMap; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;" + } + .end annotation + + .prologue + .line 309 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->getAll()Ljava/util/Map; + + move-result-object v0 + + check-cast v0, Ljava/util/HashMap; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 312 + :goto_0 + return-object v0 + + .line 310 + :catch_0 + move-exception v0 + + .line 312 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + goto :goto_0 +.end method + +.method static getCookieStringFromCookieManager(Ljava/lang/String;)Ljava/lang/String; + .locals 1 + + .prologue + .line 901 + :try_start_0 + invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; + + move-result-object v0 + + .line 902 + invoke-virtual {v0, p0}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 905 + :goto_0 + return-object v0 + + .line 903 + :catch_0 + move-exception v0 + + .line 905 + const-string v0, "" + + goto :goto_0 +.end method + +.method public static getInstance()Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + .locals 1 + + .prologue + .line 515 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + return-object v0 +.end method + +.method static getPref(Ljava/lang/String;)Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "" + + .line 317 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + const-string v1, "" + + invoke-interface {v0, p0, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 320 + :goto_0 + return-object v0 + + .line 318 + :catch_0 + move-exception v0 + + .line 320 + const-string v0, "" + + move-object v0, v2 + + goto :goto_0 +.end method + +.method private declared-synchronized handleSessionStatus(Z)V + .locals 6 + + .prologue + .line 824 + monitor-enter p0 + + :try_start_0 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v0 + + .line 825 + if-eqz p1, :cond_3 + + .line 826 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + if-eqz v2, :cond_1 + + .line 848 + :cond_0 + :goto_0 + monitor-exit p0 + + return-void + + .line 829 + :cond_1 + :try_start_1 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-nez v2, :cond_2 + + .line 830 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->createNewSession()V + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + .catchall {:try_start_1 .. :try_end_1} :catchall_0 + + goto :goto_0 + + .line 845 + :catch_0 + move-exception v0 + + .line 846 + :try_start_2 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync 3" + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + :try_end_2 + .catchall {:try_start_2 .. :try_end_2} :catchall_0 + + goto :goto_0 + + .line 824 + :catchall_0 + move-exception v0 + + monitor-exit p0 + + throw v0 + + .line 832 + :cond_2 + :try_start_3 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + iget-wide v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + sub-long/2addr v0, v4 + + add-long/2addr v0, v2 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 833 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + goto :goto_0 + + .line 836 + :cond_3 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + if-nez v2, :cond_4 + + .line 837 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + sub-long/2addr v0, v2 + + iget v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + int-to-long v2, v2 + + cmp-long v0, v0, v2 + + if-lez v0, :cond_0 + + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-eqz v0, :cond_0 + + .line 839 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->endSession()V + + goto :goto_0 + + .line 841 + :cond_4 + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 842 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 843 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + invoke-virtual {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->stopLocation()V + :try_end_3 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0 + .catchall {:try_start_3 .. :try_end_3} :catchall_0 + + goto :goto_0 +.end method + +.method static hasPref(Ljava/lang/String;)Z + .locals 1 + + .prologue + .line 325 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0, p0}, Landroid/content/SharedPreferences;->contains(Ljava/lang/String;)Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v0 + + .line 328 + :goto_0 + return v0 + + .line 326 + :catch_0 + move-exception v0 + + .line 328 + const/4 v0, 0x0 + + goto :goto_0 +.end method + +.method private initialize(Landroid/app/Activity;Ljava/lang/String;I)V + .locals 7 + + .prologue + const/4 v6, 0x0 + + const/4 v5, 0x0 + + const-string v4, "" + + const-string v3, "null" + + .line 455 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + .line 456 + iput-object p2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 457 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 458 + :cond_0 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 459 + :cond_1 + sget-object v0, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + .line 460 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + if-eqz v0, :cond_2 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_3 + + .line 461 + :cond_2 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + .line 465 + :cond_3 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "phone" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/telephony/TelephonyManager; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 469 + :goto_0 + invoke-virtual {p1}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; + + move-result-object v1 + + const-string v2, "android_id" + + invoke-static {v1, v2}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + .line 471 + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + if-eqz v1, :cond_4 + + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + const-string v2, "" + + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_5 + + .line 472 + :cond_4 + const-string v1, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + .line 474 + :cond_5 + invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + .line 475 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + if-eqz v0, :cond_6 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_7 + + .line 476 + :cond_6 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + .line 478 + :cond_7 + sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + .line 479 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + if-eqz v0, :cond_8 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_9 + + .line 480 + :cond_8 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + .line 482 + :cond_9 + sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + .line 483 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + if-eqz v0, :cond_a + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_b + + .line 485 + :cond_a + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + .line 488 + :cond_b + iput p3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + .line 490 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + .line 491 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + .line 492 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + .line 493 + iput-boolean v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + .line 494 + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + .line 495 + iput-boolean v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + .line 496 + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 497 + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 499 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + invoke-static {v0}, Landroid/webkit/CookieSyncManager;->createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager; + + .line 501 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$2; + + invoke-direct {v0, p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$2;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationHandler:Landroid/os/Handler; + + .line 506 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p1}, Landroid/app/Activity;->getPackageName()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, ".MCConfig" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {p1, v0, v5}, Landroid/app/Activity;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + .line 509 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + iget v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I + + move-result v0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + .line 510 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionPollingTimer:Ljava/util/Timer; + + new-instance v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling; + + invoke-direct {v1, p0, v6}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;)V + + const-wide/16 v2, 0x0 + + iget v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + int-to-long v4, v4 + + invoke-virtual/range {v0 .. v5}, Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V + + .line 512 + return-void + + .line 467 + :catch_0 + move-exception v0 + + move-object v0, v6 + + goto/16 :goto_0 +.end method + +.method public static final logEvent(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V + .locals 5 + + .prologue + const-string v0, "UTF-8" + + const-string v2, "DoodleMobile" + + .line 672 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + if-nez v0, :cond_1 + + .line 673 + const-string v0, "mobclix-controller" + + const-string v1, "logEvent failed - You must initialize DoodleMobileAnaylise by calling DoodleMobileAnaylise.onCreate(this)." + + invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I + + .line 717 + :cond_0 + :goto_0 + return-void + + .line 678 + :cond_1 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + if-lt p0, v0, :cond_0 + + .line 682 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, ", " + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, ": " + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + .line 684 + sparse-switch p0, :sswitch_data_0 + + .line 702 + :goto_1 + :try_start_0 + new-instance v0, Lorg/json/JSONObject; + + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const/4 v2, 0x4 + + new-array v2, v2, [Ljava/lang/String; + + const/4 v3, 0x0 + + const-string v4, "ts" + + aput-object v4, v2, v3 + + const/4 v3, 0x1 + + const-string v4, "ll" + + aput-object v4, v2, v3 + + const/4 v3, 0x2 + + const-string v4, "g" + + aput-object v4, v2, v3 + + const/4 v3, 0x3 + + const-string v4, "id" + + aput-object v4, v2, v3 + + invoke-direct {v0, v1, v2}, Lorg/json/JSONObject;->(Lorg/json/JSONObject;[Ljava/lang/String;)V + + .line 704 + const-string v1, "el" + + invoke-static {p0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 705 + const-string v1, "ep" + + const-string v2, "UTF-8" + + invoke-static {p1, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 706 + const-string v1, "en" + + const-string v2, "UTF-8" + + invoke-static {p2, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 707 + const-string v1, "ed" + + const-string v2, "UTF-8" + + invoke-static {p3, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 708 + const-string v1, "et" + + invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/Thread;->getId()J + + move-result-wide v2 + + invoke-static {v2, v3}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 709 + const-string v1, "es" + + if-eqz p4, :cond_2 + + const-string v2, "1" + + :goto_2 + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 710 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + .line 711 + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + .line 712 + new-instance v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent; + + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + invoke-direct {v2, v1, v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lorg/json/JSONObject;)V + + .line 713 + new-instance v0, Ljava/lang/Thread; + + invoke-direct {v0, v2}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V + + .line 714 + invoke-virtual {v0}, Ljava/lang/Thread;->start()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto/16 :goto_0 + + .line 715 + :catch_0 + move-exception v0 + + goto/16 :goto_0 + + .line 686 + :sswitch_0 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 689 + :sswitch_1 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 692 + :sswitch_2 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 695 + :sswitch_3 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 698 + :sswitch_4 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 709 + :cond_2 + :try_start_1 + const-string v2, "0" + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_2 + + .line 684 + :sswitch_data_0 + .sparse-switch + 0x1 -> :sswitch_0 + 0x2 -> :sswitch_1 + 0x4 -> :sswitch_2 + 0x8 -> :sswitch_3 + 0x10 -> :sswitch_4 + .end sparse-switch +.end method + +.method public static final declared-synchronized onCreate(Landroid/app/Activity;)V + .locals 7 + + .prologue + const/4 v5, 0x0 + + const-string v0, "ssc" + + const-string v0, "DoodleMobileAnaylise" + + const-string v0, "doodle_mobile_appid" + + .line 520 + const-class v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + monitor-enter v0 + + if-eqz p0, :cond_0 + + .line 521 + :try_start_0 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {p0}, Landroid/app/Activity;->getApplicationContext()Landroid/content/Context; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_8 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + .line 525 + :cond_0 + :goto_0 + :try_start_1 + sget-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + :try_end_1 + .catchall {:try_start_1 .. :try_end_1} :catchall_0 + + if-nez v1, :cond_4 + + .line 528 + :try_start_2 + invoke-virtual {p0}, Landroid/app/Activity;->getPackageName()Ljava/lang/String; + + move-result-object v1 + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + :try_end_2 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_7 + .catchall {:try_start_2 .. :try_end_2} :catchall_0 + + .line 531 + :goto_1 + const/4 v1, 0x0 + + :try_start_3 + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + :try_end_3 + .catchall {:try_start_3 .. :try_end_3} :catchall_0 + + .line 533 + :try_start_4 + invoke-virtual {p0}, Landroid/app/Activity;->getPackageManager()Landroid/content/pm/PackageManager; + + move-result-object v1 + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + const/16 v3, 0x80 + + invoke-virtual {v1, v2, v3}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; + + move-result-object v1 + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + :try_end_4 + .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_4 .. :try_end_4} :catch_0 + .catchall {:try_start_4 .. :try_end_4} :catchall_0 + + .line 541 + :goto_2 + :try_start_5 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v2, "doodle_mobile_appid" + + invoke-virtual {v1, v2}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; + :try_end_5 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_1 + .catchall {:try_start_5 .. :try_end_5} :catchall_0 + + move-result-object v1 + + .line 543 + :try_start_6 + const-string v2, "ssc" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "applicationID 1 is " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v3 + + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + :try_end_6 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_6 + .catchall {:try_start_6 .. :try_end_6} :catchall_0 + + .line 554 + :goto_3 + if-nez v1, :cond_1 + + .line 556 + :try_start_7 + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v2, v2, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v3, "doodle_mobile_appid" + + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I + + move-result v2 + + invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + :try_end_7 + .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_3 + .catchall {:try_start_7 .. :try_end_7} :catchall_0 + + move-result-object v1 + + .line 562 + :cond_1 + :goto_4 + if-nez v1, :cond_2 + + .line 565 + :try_start_8 + new-instance v1, Landroid/content/res/Resources$NotFoundException; + + const-string v2, "doodle_mobile_appid not found in the Android Manifest xml." + + invoke-direct {v1, v2}, Landroid/content/res/Resources$NotFoundException;->(Ljava/lang/String;)V + + throw v1 + :try_end_8 + .catchall {:try_start_8 .. :try_end_8} :catchall_0 + + .line 520 + :catchall_0 + move-exception v1 + + monitor-exit v0 + + throw v1 + + .line 535 + :catch_0 + move-exception v1 + + .line 536 + :try_start_9 + const-string v1, "mobclix-controller" + + const-string v2, "Application Key Started" + + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto :goto_2 + + .line 544 + :catch_1 + move-exception v1 + + move-object v2, v5 + + .line 545 + :goto_5 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V + :try_end_9 + .catchall {:try_start_9 .. :try_end_9} :catchall_0 + + .line 547 + :try_start_a + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v3, "doodle_mobile_appid" + + invoke-virtual {v1, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I + + move-result v1 + + invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + :try_end_a + .catch Ljava/lang/Exception; {:try_start_a .. :try_end_a} :catch_2 + .catchall {:try_start_a .. :try_end_a} :catchall_0 + + move-result-object v1 + + goto :goto_3 + + .line 549 + :catch_2 + move-exception v1 + + .line 550 + :try_start_b + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V + + move-object v1, v2 + + goto :goto_3 + + .line 558 + :catch_3 + move-exception v2 + + .line 559 + invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V + + goto :goto_4 + + .line 568 + :cond_2 + const-string v2, "DoodleMobileAnaylise" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "applicationId = " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v2, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + :try_end_b + .catchall {:try_start_b .. :try_end_b} :catchall_0 + + .line 571 + :try_start_c + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v2, "doodle_mobile_loglevel" + + invoke-virtual {v1, v2}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; + :try_end_c + .catch Ljava/lang/Exception; {:try_start_c .. :try_end_c} :catch_4 + .catchall {:try_start_c .. :try_end_c} :catchall_0 + + move-result-object v1 + + .line 577 + :goto_6 + if-eqz v1, :cond_3 + + .line 578 + :try_start_d + const-string v2, "debug" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + :try_end_d + .catchall {:try_start_d .. :try_end_d} :catchall_0 + + move-result v2 + + if-eqz v2, :cond_5 + + .line 593 + :cond_3 + :goto_7 + :try_start_e + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateSession()V + + .line 595 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/Locale;->getCountry()Ljava/lang/String; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 596 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 597 + const-string v1, "ssc" + + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + const-string v3, "doolemobilea 585 " + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v3, v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v3, v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 599 + sget v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + .line 601 + const/4 v1, 0x1 + + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + :try_end_e + .catch Ljava/lang/Exception; {:try_start_e .. :try_end_e} :catch_5 + .catchall {:try_start_e .. :try_end_e} :catchall_0 + + .line 606 + :cond_4 + :goto_8 + :try_start_f + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + const/4 v2, 0x1 + + invoke-direct {v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + :try_end_f + .catchall {:try_start_f .. :try_end_f} :catchall_0 + + .line 607 + monitor-exit v0 + + return-void + + .line 573 + :catch_4 + move-exception v1 + + move-object v1, v5 + + goto :goto_6 + + .line 580 + :cond_5 + :try_start_10 + const-string v2, "info" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 582 + const-string v2, "warn" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 584 + const-string v2, "error" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 586 + const-string v2, "fatal" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v1 + + if-eqz v1, :cond_3 + + goto :goto_7 + + .line 602 + :catch_5 + move-exception v1 + + .line 603 + const-string v1, "DoodleMobileAnaylise" + + const-string v2, "has exception" + + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + :try_end_10 + .catchall {:try_start_10 .. :try_end_10} :catchall_0 + + goto :goto_8 + + .line 544 + :catch_6 + move-exception v2 + + move-object v6, v2 + + move-object v2, v1 + + move-object v1, v6 + + goto/16 :goto_5 + + .line 529 + :catch_7 + move-exception v1 + + goto/16 :goto_1 + + .line 522 + :catch_8 + move-exception v1 + + goto/16 :goto_0 +.end method + +.method public static final declared-synchronized onStop(Landroid/app/Activity;)V + .locals 3 + + .prologue + .line 610 + const-class v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + monitor-enter v0 + + :try_start_0 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + const/4 v2, 0x0 + + invoke-direct {v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + :try_end_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + .line 612 + monitor-exit v0 + + return-void + + .line 610 + :catchall_0 + move-exception v1 + + monitor-exit v0 + + throw v1 +.end method + +.method static removePref(Ljava/lang/String;)V + .locals 1 + + .prologue + .line 355 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 356 + invoke-interface {v0, p0}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + .line 357 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 360 + :goto_0 + return-void + + .line 358 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method private static sha1(Ljava/lang/String;)Ljava/lang/String; + .locals 4 + + .prologue + const/4 v3, 0x0 + + .line 372 + const/16 v0, 0x28 + + new-array v0, v0, [B + + .line 375 + :try_start_0 + const-string v0, "SHA-1" + + invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; + :try_end_0 + .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 380 + invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B + + move-result-object v1 + + invoke-virtual {p0}, Ljava/lang/String;->length()I + + move-result v2 + + invoke-virtual {v0, v1, v3, v2}, Ljava/security/MessageDigest;->update([BII)V + + .line 381 + invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B + + move-result-object v0 + + .line 382 + new-instance v1, Ljava/lang/StringBuffer; + + invoke-direct {v1}, Ljava/lang/StringBuffer;->()V + + move v2, v3 + + .line 383 + :goto_0 + array-length v3, v0 + + if-ge v2, v3, :cond_0 + + .line 384 + aget-byte v3, v0, v2 + + and-int/lit16 v3, v3, 0xff + + invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; + + move-result-object v3 + + invoke-virtual {v1, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 383 + add-int/lit8 v2, v2, 0x1 + + goto :goto_0 + + .line 376 + :catch_0 + move-exception v0 + + .line 377 + new-instance v1, Ljava/lang/RuntimeException; + + invoke-direct {v1, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V + + throw v1 + + .line 386 + :cond_0 + invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method + +.method public static final sync()V + .locals 3 + + .prologue + const v2, 0x186a1 + + .line 792 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + if-nez v0, :cond_0 + + .line 793 + const-string v0, "mobclix-controller" + + const-string v1, "sync failed - You must initialize DoodleMobileAnaylise by calling DoodleMobileAnaylise.onCreate(this)." + + invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I + + .line 801 + :goto_0 + return-void + + .line 798 + :cond_0 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 799 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + invoke-virtual {v0, v2}, Landroid/os/Handler;->removeMessages(I)V + + .line 800 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + invoke-virtual {v0, v2}, Landroid/os/Handler;->sendEmptyMessage(I)Z + + goto :goto_0 +.end method + +.method static syncCookiesToCookieManager(Lorg/apache/http/client/CookieStore;Ljava/lang/String;)V + .locals 7 + + .prologue + const-string v0, "DoodleMobileAnaylise" + + .line 911 + :try_start_0 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "syncCookieManager " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 912 + invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; + + move-result-object v0 + + .line 913 + invoke-interface {p0}, Lorg/apache/http/client/CookieStore;->getCookies()Ljava/util/List; + + move-result-object v1 + + .line 914 + new-instance v2, Ljava/lang/StringBuffer; + + invoke-direct {v2}, Ljava/lang/StringBuffer;->()V + + .line 915 + invoke-interface {v1}, Ljava/util/List;->isEmpty()Z + + move-result v3 + + if-nez v3, :cond_4 + + .line 916 + const/4 v3, 0x0 + + :goto_0 + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v4 + + if-ge v3, v4, :cond_3 + + .line 917 + invoke-interface {v1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Lorg/apache/http/cookie/Cookie; + + .line 918 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getName()Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + const-string v5, "=" + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getValue()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 921 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getExpiryDate()Ljava/util/Date; + + move-result-object v4 + + if-eqz v4, :cond_0 + + .line 922 + new-instance v4, Ljava/text/SimpleDateFormat; + + const-string v5, "E, dd-MMM-yyyy HH:mm:ss" + + invoke-direct {v4, v5}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V + + .line 924 + const-string v5, "; expires=" + + invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v5 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getExpiryDate()Ljava/util/Date; + + move-result-object v6 + + invoke-virtual {v4, v6}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v5, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + const-string v5, " GMT" + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 928 + :cond_0 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getPath()Ljava/lang/String; + + move-result-object v4 + + if-eqz v4, :cond_1 + + .line 929 + const-string v4, "; path=" + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getPath()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 931 + :cond_1 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getDomain()Ljava/lang/String; + + move-result-object v4 + + if-eqz v4, :cond_2 + + .line 932 + const-string v4, "; domain=" + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getDomain()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 935 + :cond_2 + invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; + + move-result-object v4 + + .line 937 + invoke-virtual {v0, p1, v4}, Landroid/webkit/CookieManager;->setCookie(Ljava/lang/String;Ljava/lang/String;)V + + .line 916 + add-int/lit8 v3, v3, 0x1 + + goto :goto_0 + + .line 939 + :cond_3 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "before syn " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 940 + invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/webkit/CookieSyncManager;->sync()V + + .line 941 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "after syn " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 943 + invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/webkit/CookieSyncManager;->stopSync()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 947 + :cond_4 + :goto_1 + return-void + + .line 945 + :catch_0 + move-exception v0 + + goto :goto_1 +.end method + +.method private updateConnectivity()V + .locals 4 + + .prologue + const-string v3, "null" + + .line 425 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "connectivity" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/net/ConnectivityManager; + + .line 427 + const-string v1, "u" + + .line 429 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + if-eqz v2, :cond_4 + + .line 430 + invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo; + + move-result-object v0 + + .line 432 + if-eqz v0, :cond_4 + + .line 433 + invoke-virtual {v0}, Landroid/net/NetworkInfo;->getTypeName()Ljava/lang/String; + + move-result-object v0 + + .line 436 + :goto_0 + const-string v1, "WI_FI" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_0 + + const-string v1, "WIFI" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_2 + + .line 437 + :cond_0 + const-string v0, "wifi" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 446 + :goto_1 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + if-nez v0, :cond_1 + + .line 447 + const-string v0, "null" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 451 + :cond_1 + :goto_2 + return-void + + .line 438 + :cond_2 + const-string v1, "MOBILE" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_3 + + .line 439 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "phone" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/telephony/TelephonyManager; + + .line 441 + invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getNetworkType()I + + move-result v0 + + .line 442 + invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_1 + + .line 448 + :catch_0 + move-exception v0 + + .line 449 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + goto :goto_2 + + .line 444 + :cond_3 + :try_start_1 + const-string v0, "null" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_1 + + :cond_4 + move-object v0, v1 + + goto :goto_0 +.end method + +.method private updateLocation()V + .locals 3 + + .prologue + .line 409 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + new-instance v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1; + + invoke-direct {v2, p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + + invoke-virtual {v0, v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->getLocation(Landroid/content/Context;Lcom/doodlemobile/gamecenter/DoodleMobileLocation$LocationResult;)Z + + .line 421 + return-void +.end method + + +# virtual methods +.method protected finalize()V + .locals 0 + + .prologue + .line 896 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->endSession()V + + .line 897 + return-void +.end method + +.method getAnalyticsServer()Ljava/lang/String; + .locals 1 + + .prologue + .line 289 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + return-object v0 +.end method + +.method getAndroidId()Ljava/lang/String; + .locals 1 + + .prologue + .line 218 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getAndroidVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 205 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getApplicationId()Ljava/lang/String; + .locals 1 + + .prologue + .line 201 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getApplicationVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 209 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getConfigServer()Ljava/lang/String; + .locals 1 + + .prologue + .line 285 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->configServer:Ljava/lang/String; + + return-object v0 +.end method + +.method getConnectionType()Ljava/lang/String; + .locals 1 + + .prologue + .line 231 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getContext()Landroid/content/Context; + .locals 1 + + .prologue + .line 197 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + return-object v0 +.end method + +.method getDeviceHardwareModel()Ljava/lang/String; + .locals 1 + + .prologue + .line 226 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getDeviceId()Ljava/lang/String; + .locals 1 + + .prologue + .line 214 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getDeviceModel()Ljava/lang/String; + .locals 1 + + .prologue + .line 222 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getGPS()Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "null" + + .line 243 + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLatitude()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "null" + + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_0 + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLongitude()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "null" + + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 244 + :cond_0 + const-string v0, "null" + + move-object v0, v2 + + .line 245 + :goto_0 + return-object v0 + + :cond_1 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLatitude()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, "," + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLongitude()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + goto :goto_0 +.end method + +.method getLanguage()Ljava/lang/String; + .locals 1 + + .prologue + .line 249 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLatitude()Ljava/lang/String; + .locals 1 + + .prologue + .line 235 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLocale()Ljava/lang/String; + .locals 1 + + .prologue + .line 253 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLogLevel()I + .locals 1 + + .prologue + .line 261 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + return v0 +.end method + +.method getLongitude()Ljava/lang/String; + .locals 1 + + .prologue + .line 239 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getMobclixVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 257 + const-string v0, "2.3" + + return-object v0 +.end method + +.method getRefreshTime(Ljava/lang/String;)J + .locals 2 + + .prologue + .line 278 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->refreshTime:Ljava/util/HashMap; + + invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/Long; + + invoke-virtual {p0}, Ljava/lang/Long;->longValue()J + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-wide v0 + + .line 281 + :goto_0 + return-wide v0 + + .line 279 + :catch_0 + move-exception v0 + + .line 281 + const-wide/16 v0, -0x1 + + goto :goto_0 +.end method + +.method getUserAgent()Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "UserAgent" + + .line 297 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + const-string v0, "UserAgent" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 298 + const-string v0, "UserAgent" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 299 + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + return-object v0 +.end method + +.method isEnabled(Ljava/lang/String;)Z + .locals 1 + + .prologue + .line 270 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->enabled:Ljava/util/HashMap; + + invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/Boolean; + + invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v0 + + .line 273 + :goto_0 + return v0 + + .line 271 + :catch_0 + move-exception v0 + + .line 273 + const/4 v0, 0x1 + + goto :goto_0 +.end method + +.method isRemoteConfigSet()I + .locals 1 + + .prologue + .line 293 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + return v0 +.end method + +.method isTopTask()Z + .locals 1 + + .prologue + .line 265 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + return v0 +.end method + +.method setContext(Landroid/app/Activity;)V + .locals 0 + + .prologue + .line 193 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + .line 194 + return-void +.end method + +.method setUserAgent(Ljava/lang/String;)V + .locals 1 + + .prologue + .line 303 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 304 + const-string v0, "UserAgent" + + invoke-static {v0, p1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->addPref(Ljava/lang/String;Ljava/lang/String;)V + + .line 305 + return-void +.end method + +.method updateSession()V + .locals 4 + + .prologue + const-string v0, "ll" + + .line 391 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateConnectivity()V + + .line 393 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + if-eqz v0, :cond_0 + + .line 394 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationHandler:Landroid/os/Handler; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z + + .line 397 + :cond_0 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "ts" + + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v2 + + invoke-virtual {v0, v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; + + .line 398 + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getGPS()Ljava/lang/String; + + move-result-object v0 + + .line 399 + const-string v1, "null" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_1 + + .line 400 + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v2, "ll" + + invoke-virtual {v1, v2, v0}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 403 + :goto_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "g" + + iget-object v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 406 + :goto_1 + return-void + + .line 402 + :cond_1 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "ll" + + invoke-virtual {v0, v1}, Lorg/json/JSONObject;->remove(Ljava/lang/String;)Ljava/lang/Object; + :try_end_0 + .catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_0 + + .line 404 + :catch_0 + move-exception v0 + + goto :goto_1 +.end method diff --git a/samples/Smali/ModernAsyncTask.smali b/samples/Smali/ModernAsyncTask.smali new file mode 100644 index 00000000..6803b9d6 --- /dev/null +++ b/samples/Smali/ModernAsyncTask.smali @@ -0,0 +1,700 @@ +.class abstract Landroid/support/v4/content/ModernAsyncTask; +.super Ljava/lang/Object; +.source "ModernAsyncTask.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/content/ModernAsyncTask$4;, + Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;, + Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;, + Landroid/support/v4/content/ModernAsyncTask$InternalHandler;, + Landroid/support/v4/content/ModernAsyncTask$Status; + } +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "", + "Ljava/lang/Object;" + } +.end annotation + + +# static fields +.field private static final CORE_POOL_SIZE:I = 0x5 + +.field private static final KEEP_ALIVE:I = 0x1 + +.field private static final LOG_TAG:Ljava/lang/String; = "AsyncTask" + +.field private static final MAXIMUM_POOL_SIZE:I = 0x80 + +.field private static final MESSAGE_POST_PROGRESS:I = 0x2 + +.field private static final MESSAGE_POST_RESULT:I = 0x1 + +.field public static final THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + +.field private static volatile sDefaultExecutor:Ljava/util/concurrent/Executor; + +.field private static final sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + +.field private static final sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/BlockingQueue", + "<", + "Ljava/lang/Runnable;", + ">;" + } + .end annotation +.end field + +.field private static final sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + +# instance fields +.field private final mFuture:Ljava/util/concurrent/FutureTask; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/FutureTask", + ";" + } + .end annotation +.end field + +.field private volatile mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + +.field private final mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + +.field private final mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + .annotation system Ldalvik/annotation/Signature; + value = { + "Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable", + ";" + } + .end annotation +.end field + + +# direct methods +.method static constructor ()V + .registers 8 + + .prologue + .line 54 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$1; + + invoke-direct {v0}, Landroid/support/v4/content/ModernAsyncTask$1;->()V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + .line 62 + new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue; + + const/16 v1, 0xa + + invoke-direct {v0, v1}, Ljava/util/concurrent/LinkedBlockingQueue;->(I)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + + .line 68 + new-instance v0, Ljava/util/concurrent/ThreadPoolExecutor; + + const/4 v1, 0x5 + + const/16 v2, 0x80 + + const-wide/16 v3, 0x1 + + sget-object v5, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; + + sget-object v6, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + + sget-object v7, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + invoke-direct/range {v0 .. v7}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + + .line 75 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + const/4 v1, 0x0 + + invoke-direct {v0, v1}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->(Landroid/support/v4/content/ModernAsyncTask$1;)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + .line 77 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + return-void +.end method + +.method public constructor ()V + .registers 3 + + .prologue + .line 117 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 81 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 83 + new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; + + invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->()V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + .line 118 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$2; + + invoke-direct {v0, p0}, Landroid/support/v4/content/ModernAsyncTask$2;->(Landroid/support/v4/content/ModernAsyncTask;)V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + .line 127 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$3; + + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + invoke-direct {v0, p0, v1}, Landroid/support/v4/content/ModernAsyncTask$3;->(Landroid/support/v4/content/ModernAsyncTask;Ljava/util/concurrent/Callable;)V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + .line 147 + return-void +.end method + +.method static synthetic access$200(Landroid/support/v4/content/ModernAsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean; + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + + .prologue + .line 47 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + return-object v0 +.end method + +.method static synthetic access$300(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)Ljava/lang/Object; + .registers 3 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method static synthetic access$400(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V + + return-void +.end method + +.method static synthetic access$500(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->finish(Ljava/lang/Object;)V + + return-void +.end method + +.method public static execute(Ljava/lang/Runnable;)V + .registers 2 + .param p0, "runnable" # Ljava/lang/Runnable; + + .prologue + .line 433 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + invoke-interface {v0, p0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V + + .line 434 + return-void +.end method + +.method private finish(Ljava/lang/Object;)V + .registers 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 458 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z + + move-result v0 + + if-eqz v0, :cond_e + + .line 459 + invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled(Ljava/lang/Object;)V + + .line 463 + :goto_9 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->FINISHED:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 464 + return-void + + .line 461 + :cond_e + invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onPostExecute(Ljava/lang/Object;)V + + goto :goto_9 +.end method + +.method public static init()V + .registers 1 + + .prologue + .line 106 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + invoke-virtual {v0}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->getLooper()Landroid/os/Looper; + + .line 107 + return-void +.end method + +.method private postResult(Ljava/lang/Object;)Ljava/lang/Object; + .registers 8 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)TResult;" + } + .end annotation + + .prologue + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + const/4 v5, 0x1 + + .line 157 + sget-object v1, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult; + + new-array v3, v5, [Ljava/lang/Object; + + const/4 v4, 0x0 + + aput-object p1, v3, v4 + + invoke-direct {v2, p0, v3}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;->(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V + + invoke-virtual {v1, v5, v2}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; + + move-result-object v0 + + .line 159 + .local v0, "message":Landroid/os/Message; + invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V + + .line 160 + return-object p1 +.end method + +.method private postResultIfNotInvoked(Ljava/lang/Object;)V + .registers 4 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 150 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z + + move-result v0 + + .line 151 + .local v0, "wasTaskInvoked":Z + if-nez v0, :cond_b + + .line 152 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; + + .line 154 + :cond_b + return-void +.end method + +.method public static setDefaultExecutor(Ljava/util/concurrent/Executor;)V + .registers 1 + .param p0, "exec" # Ljava/util/concurrent/Executor; + + .prologue + .line 111 + sput-object p0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + .line 112 + return-void +.end method + + +# virtual methods +.method public final cancel(Z)Z + .registers 3 + .param p1, "mayInterruptIfRunning" # Z + + .prologue + .line 306 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0, p1}, Ljava/util/concurrent/FutureTask;->cancel(Z)Z + + move-result v0 + + return v0 +.end method + +.method protected varargs abstract doInBackground([Ljava/lang/Object;)Ljava/lang/Object; + .annotation system Ldalvik/annotation/Signature; + value = { + "([TParams;)TResult;" + } + .end annotation +.end method + +.method public final varargs execute([Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + .registers 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TParams;)", + "Landroid/support/v4/content/ModernAsyncTask", + ";" + } + .end annotation + + .prologue + .line 371 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "params":[Ljava/lang/Object;, "[TParams;" + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + invoke-virtual {p0, v0, p1}, Landroid/support/v4/content/ModernAsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + + move-result-object v0 + + return-object v0 +.end method + +.method public final varargs executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + .registers 5 + .param p1, "exec" # Ljava/util/concurrent/Executor; + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/concurrent/Executor;", + "[TParams;)", + "Landroid/support/v4/content/ModernAsyncTask", + ";" + } + .end annotation + + .prologue + .line 406 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p2, "params":[Ljava/lang/Object;, "[TParams;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + sget-object v1, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status; + + if-eq v0, v1, :cond_13 + + .line 407 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$4;->$SwitchMap$android$support$v4$content$ModernAsyncTask$Status:[I + + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + invoke-virtual {v1}, Landroid/support/v4/content/ModernAsyncTask$Status;->ordinal()I + + move-result v1 + + aget v0, v0, v1 + + packed-switch v0, :pswitch_data_34 + + .line 418 + :cond_13 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->RUNNING:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 420 + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onPreExecute()V + + .line 422 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + iput-object p2, v0, Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;->mParams:[Ljava/lang/Object; + + .line 423 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-interface {p1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V + + .line 425 + return-object p0 + + .line 409 + :pswitch_24 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot execute task: the task is already running." + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 412 + :pswitch_2c + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot execute task: the task has already been executed (a task can be executed only once)" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 407 + :pswitch_data_34 + .packed-switch 0x1 + :pswitch_24 + :pswitch_2c + .end packed-switch +.end method + +.method public final get()Ljava/lang/Object; + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "()TResult;" + } + .end annotation + + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/InterruptedException;, + Ljava/util/concurrent/ExecutionException; + } + .end annotation + + .prologue + .line 321 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->get()Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public final get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; + .registers 5 + .param p1, "timeout" # J + .param p3, "unit" # Ljava/util/concurrent/TimeUnit; + .annotation system Ldalvik/annotation/Signature; + value = { + "(J", + "Ljava/util/concurrent/TimeUnit;", + ")TResult;" + } + .end annotation + + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/InterruptedException;, + Ljava/util/concurrent/ExecutionException;, + Ljava/util/concurrent/TimeoutException; + } + .end annotation + + .prologue + .line 341 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0, p1, p2, p3}, Ljava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public final getStatus()Landroid/support/v4/content/ModernAsyncTask$Status; + .registers 2 + + .prologue + .line 169 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + return-object v0 +.end method + +.method public final isCancelled()Z + .registers 2 + + .prologue + .line 273 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->isCancelled()Z + + move-result v0 + + return v0 +.end method + +.method protected onCancelled()V + .registers 1 + + .prologue + .line 260 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + return-void +.end method + +.method protected onCancelled(Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 244 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled()V + + .line 245 + return-void +.end method + +.method protected onPostExecute(Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 213 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + return-void +.end method + +.method protected onPreExecute()V + .registers 1 + + .prologue + .line 197 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + return-void +.end method + +.method protected varargs onProgressUpdate([Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TProgress;)V" + } + .end annotation + + .prologue + .line 226 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "values":[Ljava/lang/Object;, "[TProgress;" + return-void +.end method + +.method protected final varargs publishProgress([Ljava/lang/Object;)V + .registers 5 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TProgress;)V" + } + .end annotation + + .prologue + .line 451 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "values":[Ljava/lang/Object;, "[TProgress;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z + + move-result v0 + + if-nez v0, :cond_15 + + .line 452 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + const/4 v1, 0x2 + + new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult; + + invoke-direct {v2, p0, p1}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;->(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V + + .line 455 + :cond_15 + return-void +.end method diff --git a/samples/Smali/PenguinSprite.smali b/samples/Smali/PenguinSprite.smali new file mode 100644 index 00000000..a02c7913 --- /dev/null +++ b/samples/Smali/PenguinSprite.smali @@ -0,0 +1,781 @@ +.class public Lcom/tdq/game/shootbubble/sprite/PenguinSprite; +.super Lcom/tdq/game/shootbubble/sprite/Sprite; +.source "PenguinSprite.java" + + +# static fields +.field public static final LOST_SEQUENCE:[[I + +.field public static final STATE_FIRE:I = 0x2 + +.field public static final STATE_GAME_LOST:I = 0x5 + +.field public static final STATE_GAME_WON:I = 0x4 + +.field public static final STATE_TURN_LEFT:I = 0x0 + +.field public static final STATE_TURN_RIGHT:I = 0x1 + +.field public static final STATE_VOID:I = 0x3 + +.field public static final WON_SEQUENCE:[[I + + +# instance fields +.field private count:I + +.field private currentPenguin:I + +.field private finalState:I + +.field private nextPosition:I + +.field private rand:Ljava/util/Random; + +.field private spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + +# direct methods +.method static constructor ()V + .locals 8 + + .prologue + const/4 v7, 0x4 + + const/4 v6, 0x3 + + const/4 v5, 0x1 + + const/4 v4, 0x0 + + const/4 v3, 0x2 + + .line 67 + const/16 v0, 0x8 + + new-array v0, v0, [[I + + new-array v1, v3, [I + + fill-array-data v1, :array_0 + + aput-object v1, v0, v4 + + new-array v1, v3, [I + + fill-array-data v1, :array_1 + + aput-object v1, v0, v5 + + new-array v1, v3, [I + + fill-array-data v1, :array_2 + + aput-object v1, v0, v3 + + new-array v1, v3, [I + + fill-array-data v1, :array_3 + + aput-object v1, v0, v6 + + new-array v1, v3, [I + + fill-array-data v1, :array_4 + + aput-object v1, v0, v7 + + const/4 v1, 0x5 + + new-array v2, v3, [I + + fill-array-data v2, :array_5 + + aput-object v2, v0, v1 + + const/4 v1, 0x6 + + new-array v2, v3, [I + + fill-array-data v2, :array_6 + + aput-object v2, v0, v1 + + const/4 v1, 0x7 + + new-array v2, v3, [I + + fill-array-data v2, :array_7 + + aput-object v2, v0, v1 + + sput-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + .line 69 + const/16 v0, 0x8 + + new-array v0, v0, [[I + + new-array v1, v3, [I + + fill-array-data v1, :array_8 + + aput-object v1, v0, v4 + + new-array v1, v3, [I + + fill-array-data v1, :array_9 + + aput-object v1, v0, v5 + + new-array v1, v3, [I + + fill-array-data v1, :array_a + + aput-object v1, v0, v3 + + new-array v1, v3, [I + + fill-array-data v1, :array_b + + aput-object v1, v0, v6 + + new-array v1, v3, [I + + fill-array-data v1, :array_c + + aput-object v1, v0, v7 + + const/4 v1, 0x5 + + new-array v2, v3, [I + + fill-array-data v2, :array_d + + aput-object v2, v0, v1 + + const/4 v1, 0x6 + + new-array v2, v3, [I + + fill-array-data v2, :array_e + + aput-object v2, v0, v1 + + const/4 v1, 0x7 + + new-array v2, v3, [I + + fill-array-data v2, :array_f + + aput-object v2, v0, v1 + + sput-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + return-void + + .line 67 + :array_0 + .array-data 4 + 0x1 + 0x0 + .end array-data + + :array_1 + .array-data 4 + 0x2 + 0x8 + .end array-data + + :array_2 + .array-data 4 + 0x3 + 0x9 + .end array-data + + :array_3 + .array-data 4 + 0x4 + 0xa + .end array-data + + :array_4 + .array-data 4 + 0x5 + 0xb + .end array-data + + :array_5 + .array-data 4 + 0x6 + 0xc + .end array-data + + :array_6 + .array-data 4 + 0x7 + 0xd + .end array-data + + :array_7 + .array-data 4 + 0x5 + 0xe + .end array-data + + .line 69 + :array_8 + .array-data 4 + 0x1 + 0x0 + .end array-data + + :array_9 + .array-data 4 + 0x2 + 0x7 + .end array-data + + :array_a + .array-data 4 + 0x3 + 0x6 + .end array-data + + :array_b + .array-data 4 + 0x4 + 0xf + .end array-data + + :array_c + .array-data 4 + 0x5 + 0x10 + .end array-data + + :array_d + .array-data 4 + 0x6 + 0x11 + .end array-data + + :array_e + .array-data 4 + 0x7 + 0x12 + .end array-data + + :array_f + .array-data 4 + 0x4 + 0x13 + .end array-data +.end method + +.method public constructor (Lcom/tdq/game/shootbubble/sprite/BmpWrap;Ljava/util/Random;)V + .locals 6 + .param p1, "sprites" # Lcom/tdq/game/shootbubble/sprite/BmpWrap; + .param p2, "rand" # Ljava/util/Random; + + .prologue + const/4 v5, 0x0 + + .line 85 + new-instance v0, Landroid/graphics/Rect; + + const/16 v1, 0x169 + + const/16 v2, 0x1b4 + + const/16 v3, 0x1a0 + + const/16 v4, 0x1df + + invoke-direct {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->(IIII)V + + invoke-direct {p0, v0}, Lcom/tdq/game/shootbubble/sprite/Sprite;->(Landroid/graphics/Rect;)V + + .line 87 + iput-object p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + .line 88 + iput-object p2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + .line 90 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 92 + const/4 v0, 0x3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 93 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 94 + return-void +.end method + +.method public constructor (Lcom/tdq/game/shootbubble/sprite/BmpWrap;Ljava/util/Random;IIII)V + .locals 5 + .param p1, "sprites" # Lcom/tdq/game/shootbubble/sprite/BmpWrap; + .param p2, "rand" # Ljava/util/Random; + .param p3, "currentPenguin" # I + .param p4, "count" # I + .param p5, "finalState" # I + .param p6, "nextPosition" # I + + .prologue + .line 100 + new-instance v0, Landroid/graphics/Rect; + + const/16 v1, 0x169 + + const/16 v2, 0x1b4 + + const/16 v3, 0x1a0 + + const/16 v4, 0x1df + + invoke-direct {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->(IIII)V + + invoke-direct {p0, v0}, Lcom/tdq/game/shootbubble/sprite/Sprite;->(Landroid/graphics/Rect;)V + + .line 102 + iput-object p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + .line 103 + iput-object p2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + .line 104 + iput p3, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 105 + iput p4, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 106 + iput p5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 107 + iput p6, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 108 + return-void +.end method + + +# virtual methods +.method public getTypeId()I + .locals 1 + + .prologue + .line 124 + sget v0, Lcom/tdq/game/shootbubble/sprite/Sprite;->TYPE_PENGUIN:I + + return v0 +.end method + +.method public paint(Landroid/graphics/Canvas;DII)V + .locals 9 + .param p1, "c" # Landroid/graphics/Canvas; + .param p2, "scale" # D + .param p4, "dx" # I + .param p5, "dy" # I + + .prologue + .line 183 + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSpriteArea()Landroid/graphics/Rect; + + move-result-object v3 + + .line 184 + .local v3, "r":Landroid/graphics/Rect; + iget-object v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + const/16 v1, 0x168 + + iget v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + rem-int/lit8 v2, v2, 0x4 + + mul-int/lit8 v2, v2, 0x39 + + sub-int/2addr v1, v2 + + const/16 v2, 0x1b3 + + iget v4, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + div-int/lit8 v4, v4, 0x4 + + mul-int/lit8 v4, v4, 0x2d + + sub-int/2addr v2, v4 + + move-object v4, p1 + + move-wide v5, p2 + + move v7, p4 + + move v8, p5 + + invoke-static/range {v0 .. v8}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->drawImageClipped(Lcom/tdq/game/shootbubble/sprite/BmpWrap;IILandroid/graphics/Rect;Landroid/graphics/Canvas;DII)V + + .line 188 + return-void +.end method + +.method public saveState(Landroid/os/Bundle;Ljava/util/Vector;)V + .locals 5 + .param p1, "map" # Landroid/os/Bundle; + .param p2, "saved_sprites" # Ljava/util/Vector; + + .prologue + const/4 v4, 0x1 + + const/4 v3, 0x0 + + .line 111 + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v0 + + const/4 v1, -0x1 + + if-eq v0, v1, :cond_0 + + .line 120 + :goto_0 + return-void + + .line 114 + :cond_0 + invoke-super {p0, p1, p2}, Lcom/tdq/game/shootbubble/sprite/Sprite;->saveState(Landroid/os/Bundle;Ljava/util/Vector;)V + + .line 115 + const-string v0, "%d-currentPenguin" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 117 + const-string v0, "%d-count" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 118 + const-string v0, "%d-finalState" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 119 + const-string v0, "%d-nextPosition" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + goto :goto_0 +.end method + +.method public updateState(I)V + .locals 6 + .param p1, "state" # I + + .prologue + const/4 v5, 0x7 + + const/4 v1, 0x3 + + const/4 v4, 0x4 + + const/4 v3, 0x1 + + const/4 v2, 0x0 + + .line 129 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + if-eq v0, v1, :cond_2 + + .line 130 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 132 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + rem-int/lit8 v0, v0, 0x6 + + if-nez v0, :cond_0 + + .line 133 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + const/4 v1, 0x5 + + if-ne v0, v1, :cond_1 + + .line 134 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 135 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 179 + :cond_0 + :goto_0 + return-void + + .line 136 + :cond_1 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + if-ne v0, v4, :cond_0 + + .line 137 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 138 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + goto :goto_0 + + .line 142 + :cond_2 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 144 + packed-switch p1, :pswitch_data_0 + + .line 170 + :cond_3 + :goto_1 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + const/16 v1, 0x64 + + if-le v0, v1, :cond_5 + + .line 171 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 146 + :pswitch_0 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 147 + iput v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 150 + :pswitch_1 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 151 + const/4 v0, 0x2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 154 + :pswitch_2 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 155 + iput v3, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 158 + :pswitch_3 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-lt v0, v4, :cond_4 + + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-le v0, v5, :cond_3 + + .line 159 + :cond_4 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 164 + :pswitch_4 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 165 + iput p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 166 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 172 + :cond_5 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + rem-int/lit8 v0, v0, 0xf + + if-nez v0, :cond_0 + + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + const/16 v1, 0x19 + + if-le v0, v1, :cond_0 + + .line 173 + iget-object v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + invoke-virtual {v0}, Ljava/util/Random;->nextInt()I + + move-result v0 + + rem-int/lit8 v0, v0, 0x3 + + add-int/lit8 v0, v0, 0x4 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 174 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-ge v0, v4, :cond_0 + + .line 175 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 144 + nop + + :pswitch_data_0 + .packed-switch 0x0 + :pswitch_0 + :pswitch_1 + :pswitch_2 + :pswitch_3 + :pswitch_4 + :pswitch_4 + .end packed-switch +.end method diff --git a/samples/Smali/Subject.smali b/samples/Smali/Subject.smali new file mode 100644 index 00000000..4140157c --- /dev/null +++ b/samples/Smali/Subject.smali @@ -0,0 +1,1179 @@ +.class public final Lorg/apache/harmony/javax/security/auth/Subject; +.super Ljava/lang/Object; +.source "Subject.java" + +# interfaces +.implements Ljava/io/Serializable; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + } +.end annotation + + +# static fields +.field private static final _AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final serialVersionUID:J = -0x734dcd6cffcc0598L + + +# instance fields +.field private final principals:Ljava/util/Set; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/Set", + "<", + "Ljava/security/Principal;", + ">;" + } + .end annotation +.end field + +.field private transient privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + .annotation system Ldalvik/annotation/Signature; + value = { + "Lorg/apache/harmony/javax/security/auth/Subject$SecureSet", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation +.end field + +.field private transient publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + .annotation system Ldalvik/annotation/Signature; + value = { + "Lorg/apache/harmony/javax/security/auth/Subject$SecureSet", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation +.end field + +.field private readOnly:Z + + +# direct methods +.method static constructor ()V + .locals 2 + + .prologue + .line 59 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + const-string v1, "doAs" + + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 61 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 62 + const-string v1, "doAsPrivileged" + + .line 61 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 64 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 65 + const-string v1, "getSubject" + + .line 64 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 67 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 68 + const-string v1, "modifyPrincipals" + + .line 67 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 70 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 71 + const-string v1, "modifyPrivateCredentials" + + .line 70 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 73 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 74 + const-string v1, "modifyPublicCredentials" + + .line 73 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 76 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 77 + const-string v1, "setReadOnly" + + .line 76 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 55 + return-void +.end method + +.method public constructor ()V + .locals 2 + + .prologue + .line 94 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 95 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + .line 96 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 97 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 99 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 100 + return-void +.end method + +.method public constructor (ZLjava/util/Set;Ljava/util/Set;Ljava/util/Set;)V + .locals 2 + .param p1, "readOnly" # Z + .annotation system Ldalvik/annotation/Signature; + value = { + "(Z", + "Ljava/util/Set", + "<+", + "Ljava/security/Principal;", + ">;", + "Ljava/util/Set", + "<*>;", + "Ljava/util/Set", + "<*>;)V" + } + .end annotation + + .prologue + .line 119 + .local p2, "subjPrincipals":Ljava/util/Set;, "Ljava/util/Set<+Ljava/security/Principal;>;" + .local p3, "pubCredentials":Ljava/util/Set;, "Ljava/util/Set<*>;" + .local p4, "privCredentials":Ljava/util/Set;, "Ljava/util/Set<*>;" + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 122 + if-eqz p2, :cond_0 + + if-eqz p3, :cond_0 + + if-nez p4, :cond_1 + + .line 123 + :cond_0 + new-instance v0, Ljava/lang/NullPointerException; + + invoke-direct {v0}, Ljava/lang/NullPointerException;->()V + + throw v0 + + .line 126 + :cond_1 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p2}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + .line 127 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p3}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 128 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 130 + iput-boolean p1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 131 + return-void +.end method + +.method static synthetic access$0(Lorg/apache/harmony/javax/security/auth/Subject;)V + .locals 0 + + .prologue + .line 514 + invoke-direct {p0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkState()V + + return-void +.end method + +.method static synthetic access$1(Ljava/security/Permission;)V + .locals 0 + + .prologue + .line 506 + invoke-static {p0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + return-void +.end method + +.method static synthetic access$2()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 67 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method static synthetic access$3()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 70 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method static synthetic access$4(Lorg/apache/harmony/javax/security/auth/Subject;)Ljava/util/Set; + .locals 1 + + .prologue + .line 79 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + return-object v0 +.end method + +.method static synthetic access$5()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 73 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method private static checkPermission(Ljava/security/Permission;)V + .locals 1 + .param p0, "p" # Ljava/security/Permission; + + .prologue + .line 507 + invoke-static {}, Ljava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager; + + move-result-object v0 + + .line 508 + .local v0, "sm":Ljava/lang/SecurityManager; + if-eqz v0, :cond_0 + + .line 509 + invoke-virtual {v0, p0}, Ljava/lang/SecurityManager;->checkPermission(Ljava/security/Permission;)V + + .line 511 + :cond_0 + return-void +.end method + +.method private checkState()V + .locals 2 + + .prologue + .line 515 + iget-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + if-eqz v0, :cond_0 + + .line 516 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "auth.0A" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 518 + :cond_0 + return-void +.end method + +.method public static doAs(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object; + .locals 1 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + + .prologue + .line 146 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 148 + invoke-static {}, Ljava/security/AccessController;->getContext()Ljava/security/AccessControlContext; + + move-result-object v0 + + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public static doAs(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object; + .locals 1 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 223 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 225 + invoke-static {}, Ljava/security/AccessController;->getContext()Ljava/security/AccessControlContext; + + move-result-object v0 + + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public static doAsPrivileged(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 2 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + .param p2, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 170 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 172 + if-nez p2, :cond_0 + + .line 173 + new-instance v0, Ljava/security/AccessControlContext; + + .line 174 + const/4 v1, 0x0 + + new-array v1, v1, [Ljava/security/ProtectionDomain; + + invoke-direct {v0, v1}, Ljava/security/AccessControlContext;->([Ljava/security/ProtectionDomain;)V + + .line 173 + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + .line 176 + :goto_0 + return-object v0 + + :cond_0 + invoke-static {p0, p1, p2}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + goto :goto_0 +.end method + +.method public static doAsPrivileged(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 2 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .param p2, "context" # Ljava/security/AccessControlContext; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 250 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 252 + if-nez p2, :cond_0 + + .line 254 + new-instance v0, Ljava/security/AccessControlContext; + + const/4 v1, 0x0 + + new-array v1, v1, [Ljava/security/ProtectionDomain; + + invoke-direct {v0, v1}, Ljava/security/AccessControlContext;->([Ljava/security/ProtectionDomain;)V + + .line 253 + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + .line 256 + :goto_0 + return-object v0 + + :cond_0 + invoke-static {p0, p1, p2}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + goto :goto_0 +.end method + +.method private static doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 4 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + .param p2, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 187 + if-nez p0, :cond_0 + + .line 190 + const/4 v0, 0x0 + + .line 195 + .local v0, "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + :goto_0 + new-instance v1, Lorg/apache/harmony/javax/security/auth/Subject$1; + + invoke-direct {v1, p2, v0}, Lorg/apache/harmony/javax/security/auth/Subject$1;->(Ljava/security/AccessControlContext;Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;)V + + .line 202 + .local v1, "dccAction":Ljava/security/PrivilegedAction; + invoke-static {v1}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/security/AccessControlContext; + + .line 204 + .local v2, "newContext":Ljava/security/AccessControlContext; + invoke-static {p1, v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v3 + + return-object v3 + + .line 192 + .end local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + .end local v1 # "dccAction":Ljava/security/PrivilegedAction; + .end local v2 # "newContext":Ljava/security/AccessControlContext; + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->(Lorg/apache/harmony/javax/security/auth/Subject;)V + + .restart local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + goto :goto_0 +.end method + +.method private static doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 4 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .param p2, "context" # Ljava/security/AccessControlContext; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 268 + if-nez p0, :cond_0 + + .line 271 + const/4 v0, 0x0 + + .line 276 + .local v0, "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + :goto_0 + new-instance v1, Lorg/apache/harmony/javax/security/auth/Subject$2; + + invoke-direct {v1, p2, v0}, Lorg/apache/harmony/javax/security/auth/Subject$2;->(Ljava/security/AccessControlContext;Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;)V + + .line 282 + .local v1, "dccAction":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + invoke-static {v1}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/security/AccessControlContext; + + .line 284 + .local v2, "newContext":Ljava/security/AccessControlContext; + invoke-static {p1, v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v3 + + return-object v3 + + .line 273 + .end local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + .end local v1 # "dccAction":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + .end local v2 # "newContext":Ljava/security/AccessControlContext; + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->(Lorg/apache/harmony/javax/security/auth/Subject;)V + + .restart local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + goto :goto_0 +.end method + +.method public static getSubject(Ljava/security/AccessControlContext;)Lorg/apache/harmony/javax/security/auth/Subject; + .locals 4 + .param p0, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 488 + sget-object v2, Lorg/apache/harmony/javax/security/auth/Subject;->_SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v2}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 489 + if-nez p0, :cond_0 + + .line 490 + new-instance v2, Ljava/lang/NullPointerException; + + const-string v3, "auth.09" + + invoke-direct {v2, v3}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V + + throw v2 + + .line 492 + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$3; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/Subject$3;->(Ljava/security/AccessControlContext;)V + + .line 497 + .local v0, "action":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + invoke-static {v0}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/security/DomainCombiner; + + .line 499 + .local v1, "combiner":Ljava/security/DomainCombiner; + if-eqz v1, :cond_1 + + instance-of v2, v1, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + if-nez v2, :cond_2 + + .line 500 + :cond_1 + const/4 v2, 0x0 + + .line 502 + .end local v1 # "combiner":Ljava/security/DomainCombiner; + :goto_0 + return-object v2 + + .restart local v1 # "combiner":Ljava/security/DomainCombiner; + :cond_2 + check-cast v1, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + .end local v1 # "combiner":Ljava/security/DomainCombiner; + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->getSubject()Lorg/apache/harmony/javax/security/auth/Subject; + + move-result-object v2 + + goto :goto_0 +.end method + +.method private readObject(Ljava/io/ObjectInputStream;)V + .locals 2 + .param p1, "in" # Ljava/io/ObjectInputStream; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException;, + Ljava/lang/ClassNotFoundException; + } + .end annotation + + .prologue + .line 467 + invoke-virtual {p1}, Ljava/io/ObjectInputStream;->defaultReadObject()V + + .line 469 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 470 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 471 + return-void +.end method + +.method private writeObject(Ljava/io/ObjectOutputStream;)V + .locals 0 + .param p1, "out" # Ljava/io/ObjectOutputStream; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 474 + invoke-virtual {p1}, Ljava/io/ObjectOutputStream;->defaultWriteObject()V + + .line 475 + return-void +.end method + + +# virtual methods +.method public equals(Ljava/lang/Object;)Z + .locals 5 + .param p1, "obj" # Ljava/lang/Object; + + .prologue + const/4 v1, 0x1 + + const/4 v2, 0x0 + + .line 301 + if-ne p0, p1, :cond_1 + + .line 316 + :cond_0 + :goto_0 + return v1 + + .line 305 + :cond_1 + if-eqz p1, :cond_2 + + invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object v3 + + invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object v4 + + if-eq v3, v4, :cond_3 + + :cond_2 + move v1, v2 + + .line 306 + goto :goto_0 + + :cond_3 + move-object v0, p1 + + .line 309 + check-cast v0, Lorg/apache/harmony/javax/security/auth/Subject; + + .line 311 + .local v0, "that":Lorg/apache/harmony/javax/security/auth/Subject; + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v3, v4}, Ljava/util/Set;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-eqz v3, :cond_4 + + .line 312 + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v3, v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-eqz v3, :cond_4 + + .line 313 + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v3, v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-nez v3, :cond_0 + + :cond_4 + move v1, v2 + + .line 316 + goto :goto_0 +.end method + +.method public getPrincipals()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/security/Principal;", + ">;" + } + .end annotation + + .prologue + .line 325 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + return-object v0 +.end method + +.method public getPrincipals(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 341 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + check-cast v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public getPrivateCredentials()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation + + .prologue + .line 350 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + return-object v0 +.end method + +.method public getPrivateCredentials(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 365 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public getPublicCredentials()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation + + .prologue + .line 374 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + return-object v0 +.end method + +.method public getPublicCredentials(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 390 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public hashCode()I + .locals 2 + + .prologue + .line 400 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v0}, Ljava/util/Set;->hashCode()I + + move-result v0 + + iget-object v1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->hashCode()I + + move-result v1 + + add-int/2addr v0, v1 + + .line 401 + iget-object v1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->hashCode()I + + move-result v1 + + .line 400 + add-int/2addr v0, v1 + + return v0 +.end method + +.method public isReadOnly()Z + .locals 1 + + .prologue + .line 422 + iget-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + return v0 +.end method + +.method public setReadOnly()V + .locals 1 + + .prologue + .line 411 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 413 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 414 + return-void +.end method + +.method public toString()Ljava/lang/String; + .locals 6 + + .prologue + const/16 v5, 0xa + + .line 433 + new-instance v0, Ljava/lang/StringBuilder; + + const-string v4, "Subject:\n" + + invoke-direct {v0, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + .line 435 + .local v0, "buf":Ljava/lang/StringBuilder; + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 436 + .local v2, "it":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" + :goto_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-nez v4, :cond_0 + + .line 442 + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 443 + :goto_1 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-nez v4, :cond_1 + + .line 449 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I + + move-result v4 + + add-int/lit8 v3, v4, -0x1 + + .line 450 + .local v3, "offset":I + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 452 + :goto_2 + :try_start_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + :try_end_0 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v4 + + if-nez v4, :cond_2 + + .line 461 + :goto_3 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v4 + + return-object v4 + + .line 437 + .end local v3 # "offset":I + :cond_0 + const-string v4, "\tPrincipal: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 438 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 439 + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + goto :goto_0 + + .line 444 + :cond_1 + const-string v4, "\tPublic Credential: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 445 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 446 + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + goto :goto_1 + + .line 453 + .restart local v3 # "offset":I + :cond_2 + :try_start_1 + const-string v4, "\tPrivate Credential: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 454 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 455 + const/16 v4, 0xa + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + :try_end_1 + .catch Ljava/lang/SecurityException; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_2 + + .line 457 + :catch_0 + move-exception v1 + + .line 458 + .local v1, "e":Ljava/lang/SecurityException; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I + + move-result v4 + + invoke-virtual {v0, v3, v4}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; + + .line 459 + const-string v4, "\tPrivate Credentials: no accessible information\n" + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + goto :goto_3 +.end method diff --git a/samples/Smali/ViewDragHelper.smali b/samples/Smali/ViewDragHelper.smali new file mode 100644 index 00000000..18760567 --- /dev/null +++ b/samples/Smali/ViewDragHelper.smali @@ -0,0 +1,4382 @@ +.class public Landroid/support/v4/widget/ViewDragHelper; +.super Ljava/lang/Object; +.source "ViewDragHelper.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/widget/ViewDragHelper$Callback; + } +.end annotation + + +# static fields +.field private static final BASE_SETTLE_DURATION:I = 0x100 + +.field public static final DIRECTION_ALL:I = 0x3 + +.field public static final DIRECTION_HORIZONTAL:I = 0x1 + +.field public static final DIRECTION_VERTICAL:I = 0x2 + +.field public static final EDGE_ALL:I = 0xf + +.field public static final EDGE_BOTTOM:I = 0x8 + +.field public static final EDGE_LEFT:I = 0x1 + +.field public static final EDGE_RIGHT:I = 0x2 + +.field private static final EDGE_SIZE:I = 0x14 + +.field public static final EDGE_TOP:I = 0x4 + +.field public static final INVALID_POINTER:I = -0x1 + +.field private static final MAX_SETTLE_DURATION:I = 0x258 + +.field public static final STATE_DRAGGING:I = 0x1 + +.field public static final STATE_IDLE:I = 0x0 + +.field public static final STATE_SETTLING:I = 0x2 + +.field private static final TAG:Ljava/lang/String; = "ViewDragHelper" + +.field private static final sInterpolator:Landroid/view/animation/Interpolator; + + +# instance fields +.field private mActivePointerId:I + +.field private final mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + +.field private mCapturedView:Landroid/view/View; + +.field private mDragState:I + +.field private mEdgeDragsInProgress:[I + +.field private mEdgeDragsLocked:[I + +.field private mEdgeSize:I + +.field private mInitialEdgesTouched:[I + +.field private mInitialMotionX:[F + +.field private mInitialMotionY:[F + +.field private mLastMotionX:[F + +.field private mLastMotionY:[F + +.field private mMaxVelocity:F + +.field private mMinVelocity:F + +.field private final mParentView:Landroid/view/ViewGroup; + +.field private mPointersDown:I + +.field private mReleaseInProgress:Z + +.field private mScroller:Landroid/support/v4/widget/ScrollerCompat; + +.field private final mSetIdleRunnable:Ljava/lang/Runnable; + +.field private mTouchSlop:I + +.field private mTrackingEdges:I + +.field private mVelocityTracker:Landroid/view/VelocityTracker; + + +# direct methods +.method static constructor ()V + .registers 1 + + .prologue + .line 326 + new-instance v0, Landroid/support/v4/widget/ViewDragHelper$1; + + invoke-direct {v0}, Landroid/support/v4/widget/ViewDragHelper$1;->()V + + sput-object v0, Landroid/support/v4/widget/ViewDragHelper;->sInterpolator:Landroid/view/animation/Interpolator; + + return-void +.end method + +.method private constructor (Landroid/content/Context;Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)V + .registers 8 + .param p1, "context" # Landroid/content/Context; + .param p2, "forParent" # Landroid/view/ViewGroup; + .param p3, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 373 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 115 + const/4 v2, -0x1 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 333 + new-instance v2, Landroid/support/v4/widget/ViewDragHelper$2; + + invoke-direct {v2, p0}, Landroid/support/v4/widget/ViewDragHelper$2;->(Landroid/support/v4/widget/ViewDragHelper;)V + + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mSetIdleRunnable:Ljava/lang/Runnable; + + .line 374 + if-nez p2, :cond_17 + + .line 375 + new-instance v2, Ljava/lang/IllegalArgumentException; + + const-string v3, "Parent view may not be null" + + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v2 + + .line 377 + :cond_17 + if-nez p3, :cond_21 + + .line 378 + new-instance v2, Ljava/lang/IllegalArgumentException; + + const-string v3, "Callback may not be null" + + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v2 + + .line 381 + :cond_21 + iput-object p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + .line 382 + iput-object p3, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + .line 384 + invoke-static {p1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; + + move-result-object v1 + + .line 385 + .local v1, "vc":Landroid/view/ViewConfiguration; + invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; + + move-result-object v2 + + invoke-virtual {v2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; + + move-result-object v2 + + iget v0, v2, Landroid/util/DisplayMetrics;->density:F + + .line 386 + .local v0, "density":F + const/high16 v2, 0x41a00000 + + mul-float/2addr v2, v0 + + const/high16 v3, 0x3f000000 + + add-float/2addr v2, v3 + + float-to-int v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + .line 388 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I + + move-result v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + .line 389 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I + + move-result v2 + + int-to-float v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + .line 390 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I + + move-result v2 + + int-to-float v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + .line 391 + sget-object v2, Landroid/support/v4/widget/ViewDragHelper;->sInterpolator:Landroid/view/animation/Interpolator; + + invoke-static {p1, v2}, Landroid/support/v4/widget/ScrollerCompat;->create(Landroid/content/Context;Landroid/view/animation/Interpolator;)Landroid/support/v4/widget/ScrollerCompat; + + move-result-object v2 + + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + .line 392 + return-void +.end method + +.method private checkNewEdgeDrag(FFII)Z + .registers 10 + .param p1, "delta" # F + .param p2, "odelta" # F + .param p3, "pointerId" # I + .param p4, "edge" # I + + .prologue + const/4 v2, 0x0 + + .line 1218 + invoke-static {p1}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + .line 1219 + .local v0, "absDelta":F + invoke-static {p2}, Ljava/lang/Math;->abs(F)F + + move-result v1 + + .line 1221 + .local v1, "absODelta":F + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-ne v3, p4, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v3, p4 + + if-eqz v3, :cond_31 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-eq v3, p4, :cond_31 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-eq v3, p4, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpg-float v3, v0, v3 + + if-gtz v3, :cond_32 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpg-float v3, v1, v3 + + if-gtz v3, :cond_32 + + .line 1231 + :cond_31 + :goto_31 + return v2 + + .line 1227 + :cond_32 + const/high16 v3, 0x3f000000 + + mul-float/2addr v3, v1 + + cmpg-float v3, v0, v3 + + if-gez v3, :cond_49 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v3, p4}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeLock(I)Z + + move-result v3 + + if-eqz v3, :cond_49 + + .line 1228 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aget v4, v3, p3 + + or-int/2addr v4, p4 + + aput v4, v3, p3 + + goto :goto_31 + + .line 1231 + :cond_49 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-nez v3, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpl-float v3, v0, v3 + + if-lez v3, :cond_31 + + const/4 v2, 0x1 + + goto :goto_31 +.end method + +.method private checkTouchSlop(Landroid/view/View;FF)Z + .registers 11 + .param p1, "child" # Landroid/view/View; + .param p2, "dx" # F + .param p3, "dy" # F + + .prologue + const/4 v2, 0x1 + + const/4 v3, 0x0 + + .line 1245 + if-nez p1, :cond_6 + + move v2, v3 + + .line 1258 + :cond_5 + :goto_5 + return v2 + + .line 1248 + :cond_6 + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewHorizontalDragRange(Landroid/view/View;)I + + move-result v4 + + if-lez v4, :cond_2d + + move v0, v2 + + .line 1249 + .local v0, "checkHorizontal":Z + :goto_f + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewVerticalDragRange(Landroid/view/View;)I + + move-result v4 + + if-lez v4, :cond_2f + + move v1, v2 + + .line 1251 + .local v1, "checkVertical":Z + :goto_18 + if-eqz v0, :cond_31 + + if-eqz v1, :cond_31 + + .line 1252 + mul-float v4, p2, p2 + + mul-float v5, p3, p3 + + add-float/2addr v4, v5 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + iget v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + mul-int/2addr v5, v6 + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + .end local v0 # "checkHorizontal":Z + .end local v1 # "checkVertical":Z + :cond_2d + move v0, v3 + + .line 1248 + goto :goto_f + + .restart local v0 # "checkHorizontal":Z + :cond_2f + move v1, v3 + + .line 1249 + goto :goto_18 + + .line 1253 + .restart local v1 # "checkVertical":Z + :cond_31 + if-eqz v0, :cond_40 + + .line 1254 + invoke-static {p2}, Ljava/lang/Math;->abs(F)F + + move-result v4 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + .line 1255 + :cond_40 + if-eqz v1, :cond_4f + + .line 1256 + invoke-static {p3}, Ljava/lang/Math;->abs(F)F + + move-result v4 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + :cond_4f + move v2, v3 + + .line 1258 + goto :goto_5 +.end method + +.method private clampMag(FFF)F + .registers 7 + .param p1, "value" # F + .param p2, "absMin" # F + .param p3, "absMax" # F + + .prologue + const/4 v1, 0x0 + + .line 667 + invoke-static {p1}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + .line 668 + .local v0, "absValue":F + cmpg-float v2, v0, p2 + + if-gez v2, :cond_b + + move p3, v1 + + .line 670 + .end local p3 # "absMax":F + :cond_a + :goto_a + return p3 + + .line 669 + .restart local p3 # "absMax":F + :cond_b + cmpl-float v2, v0, p3 + + if-lez v2, :cond_15 + + cmpl-float v1, p1, v1 + + if-gtz v1, :cond_a + + neg-float p3, p3 + + goto :goto_a + + :cond_15 + move p3, p1 + + .line 670 + goto :goto_a +.end method + +.method private clampMag(III)I + .registers 5 + .param p1, "value" # I + .param p2, "absMin" # I + .param p3, "absMax" # I + + .prologue + .line 650 + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v0 + + .line 651 + .local v0, "absValue":I + if-ge v0, p2, :cond_8 + + const/4 p3, 0x0 + + .line 653 + .end local p3 # "absMax":I + :cond_7 + :goto_7 + return p3 + + .line 652 + .restart local p3 # "absMax":I + :cond_8 + if-le v0, p3, :cond_e + + if-gtz p1, :cond_7 + + neg-int p3, p3 + + goto :goto_7 + + :cond_e + move p3, p1 + + .line 653 + goto :goto_7 +.end method + +.method private clearMotionHistory()V + .registers 4 + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 770 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-nez v0, :cond_7 + + .line 781 + :goto_6 + return-void + + .line 773 + :cond_7 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 774 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 775 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 776 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 777 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 778 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 779 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 780 + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + goto :goto_6 +.end method + +.method private clearMotionHistory(I)V + .registers 5 + .param p1, "pointerId" # I + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 784 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-nez v0, :cond_7 + + .line 795 + :goto_6 + return-void + + .line 787 + :cond_7 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aput v1, v0, p1 + + .line 788 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aput v1, v0, p1 + + .line 789 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput v1, v0, p1 + + .line 790 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput v1, v0, p1 + + .line 791 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aput v2, v0, p1 + + .line 792 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aput v2, v0, p1 + + .line 793 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aput v2, v0, p1 + + .line 794 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + const/4 v1, 0x1 + + shl-int/2addr v1, p1 + + xor-int/lit8 v1, v1, -0x1 + + and-int/2addr v0, v1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + goto :goto_6 +.end method + +.method private computeAxisDuration(III)I + .registers 14 + .param p1, "delta" # I + .param p2, "velocity" # I + .param p3, "motionRange" # I + + .prologue + const/high16 v9, 0x3f800000 + + .line 618 + if-nez p1, :cond_6 + + .line 619 + const/4 v6, 0x0 + + .line 636 + :goto_5 + return v6 + + .line 622 + :cond_6 + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v6}, Landroid/view/ViewGroup;->getWidth()I + + move-result v5 + + .line 623 + .local v5, "width":I + div-int/lit8 v3, v5, 0x2 + + .line 624 + .local v3, "halfWidth":I + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v6 + + int-to-float v6, v6 + + int-to-float v7, v5 + + div-float/2addr v6, v7 + + invoke-static {v9, v6}, Ljava/lang/Math;->min(FF)F + + move-result v1 + + .line 625 + .local v1, "distanceRatio":F + int-to-float v6, v3 + + int-to-float v7, v3 + + invoke-direct {p0, v1}, Landroid/support/v4/widget/ViewDragHelper;->distanceInfluenceForSnapDuration(F)F + + move-result v8 + + mul-float/2addr v7, v8 + + add-float v0, v6, v7 + + .line 629 + .local v0, "distance":F + invoke-static {p2}, Ljava/lang/Math;->abs(I)I + + move-result p2 + + .line 630 + if-lez p2, :cond_3f + + .line 631 + const/high16 v6, 0x447a0000 + + int-to-float v7, p2 + + div-float v7, v0, v7 + + invoke-static {v7}, Ljava/lang/Math;->abs(F)F + + move-result v7 + + mul-float/2addr v6, v7 + + invoke-static {v6}, Ljava/lang/Math;->round(F)I + + move-result v6 + + mul-int/lit8 v2, v6, 0x4 + + .line 636 + .local v2, "duration":I + :goto_38 + const/16 v6, 0x258 + + invoke-static {v2, v6}, Ljava/lang/Math;->min(II)I + + move-result v6 + + goto :goto_5 + + .line 633 + .end local v2 # "duration":I + :cond_3f + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v6 + + int-to-float v6, v6 + + int-to-float v7, p3 + + div-float v4, v6, v7 + + .line 634 + .local v4, "range":F + add-float v6, v4, v9 + + const/high16 v7, 0x43800000 + + mul-float/2addr v6, v7 + + float-to-int v2, v6 + + .restart local v2 # "duration":I + goto :goto_38 +.end method + +.method private computeSettleDuration(Landroid/view/View;IIII)I + .registers 20 + .param p1, "child" # Landroid/view/View; + .param p2, "dx" # I + .param p3, "dy" # I + .param p4, "xvel" # I + .param p5, "yvel" # I + + .prologue + .line 597 + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + float-to-int v12, v12 + + iget v13, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + float-to-int v13, v13 + + move/from16 v0, p4 + + invoke-direct {p0, v0, v12, v13}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(III)I + + move-result p4 + + .line 598 + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + float-to-int v12, v12 + + iget v13, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + float-to-int v13, v13 + + move/from16 v0, p5 + + invoke-direct {p0, v0, v12, v13}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(III)I + + move-result p5 + + .line 599 + invoke-static/range {p2 .. p2}, Ljava/lang/Math;->abs(I)I + + move-result v2 + + .line 600 + .local v2, "absDx":I + invoke-static/range {p3 .. p3}, Ljava/lang/Math;->abs(I)I + + move-result v3 + + .line 601 + .local v3, "absDy":I + invoke-static/range {p4 .. p4}, Ljava/lang/Math;->abs(I)I + + move-result v4 + + .line 602 + .local v4, "absXVel":I + invoke-static/range {p5 .. p5}, Ljava/lang/Math;->abs(I)I + + move-result v5 + + .line 603 + .local v5, "absYVel":I + add-int v7, v4, v5 + + .line 604 + .local v7, "addedVel":I + add-int v6, v2, v3 + + .line 606 + .local v6, "addedDistance":I + if-eqz p4, :cond_5b + + int-to-float v12, v4 + + int-to-float v13, v7 + + div-float v9, v12, v13 + + .line 608 + .local v9, "xweight":F + :goto_32 + if-eqz p5, :cond_60 + + int-to-float v12, v5 + + int-to-float v13, v7 + + div-float v11, v12, v13 + + .line 611 + .local v11, "yweight":F + :goto_38 + iget-object v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v12, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewHorizontalDragRange(Landroid/view/View;)I + + move-result v12 + + move/from16 v0, p2 + + move/from16 v1, p4 + + invoke-direct {p0, v0, v1, v12}, Landroid/support/v4/widget/ViewDragHelper;->computeAxisDuration(III)I + + move-result v8 + + .line 612 + .local v8, "xduration":I + iget-object v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v12, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewVerticalDragRange(Landroid/view/View;)I + + move-result v12 + + move/from16 v0, p3 + + move/from16 v1, p5 + + invoke-direct {p0, v0, v1, v12}, Landroid/support/v4/widget/ViewDragHelper;->computeAxisDuration(III)I + + move-result v10 + + .line 614 + .local v10, "yduration":I + int-to-float v12, v8 + + mul-float/2addr v12, v9 + + int-to-float v13, v10 + + mul-float/2addr v13, v11 + + add-float/2addr v12, v13 + + float-to-int v12, v12 + + return v12 + + .line 606 + .end local v8 # "xduration":I + .end local v9 # "xweight":F + .end local v10 # "yduration":I + .end local v11 # "yweight":F + :cond_5b + int-to-float v12, v2 + + int-to-float v13, v6 + + div-float v9, v12, v13 + + goto :goto_32 + + .line 608 + .restart local v9 # "xweight":F + :cond_60 + int-to-float v12, v3 + + int-to-float v13, v6 + + div-float v11, v12, v13 + + goto :goto_38 +.end method + +.method public static create(Landroid/view/ViewGroup;FLandroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + .registers 6 + .param p0, "forParent" # Landroid/view/ViewGroup; + .param p1, "sensitivity" # F + .param p2, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 360 + invoke-static {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->create(Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + + move-result-object v0 + + .line 361 + .local v0, "helper":Landroid/support/v4/widget/ViewDragHelper; + iget v1, v0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v1, v1 + + const/high16 v2, 0x3f800000 + + div-float/2addr v2, p1 + + mul-float/2addr v1, v2 + + float-to-int v1, v1 + + iput v1, v0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + .line 362 + return-object v0 +.end method + +.method public static create(Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + .registers 4 + .param p0, "forParent" # Landroid/view/ViewGroup; + .param p1, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 347 + new-instance v0, Landroid/support/v4/widget/ViewDragHelper; + + invoke-virtual {p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; + + move-result-object v1 + + invoke-direct {v0, v1, p0, p1}, Landroid/support/v4/widget/ViewDragHelper;->(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)V + + return-object v0 +.end method + +.method private dispatchViewReleased(FF)V + .registers 7 + .param p1, "xvel" # F + .param p2, "yvel" # F + + .prologue + const/4 v3, 0x1 + + const/4 v2, 0x0 + + .line 759 + iput-boolean v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + .line 760 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewReleased(Landroid/view/View;FF)V + + .line 761 + iput-boolean v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + .line 763 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v3, :cond_14 + + .line 765 + invoke-virtual {p0, v2}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 767 + :cond_14 + return-void +.end method + +.method private distanceInfluenceForSnapDuration(F)F + .registers 6 + .param p1, "f" # F + + .prologue + .line 674 + const/high16 v0, 0x3f000000 + + sub-float/2addr p1, v0 + + .line 675 + float-to-double v0, p1 + + const-wide v2, 0x3fde28c7460698c7L + + mul-double/2addr v0, v2 + + double-to-float p1, v0 + + .line 676 + float-to-double v0, p1 + + invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D + + move-result-wide v0 + + double-to-float v0, v0 + + return v0 +.end method + +.method private dragTo(IIII)V + .registers 13 + .param p1, "left" # I + .param p2, "top" # I + .param p3, "dx" # I + .param p4, "dy" # I + + .prologue + .line 1366 + move v2, p1 + + .line 1367 + .local v2, "clampedX":I + move v3, p2 + + .line 1368 + .local v3, "clampedY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v6 + + .line 1369 + .local v6, "oldLeft":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v7 + + .line 1370 + .local v7, "oldTop":I + if-eqz p3, :cond_1f + + .line 1371 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p1, p3}, Landroid/support/v4/widget/ViewDragHelper$Callback;->clampViewPositionHorizontal(Landroid/view/View;II)I + + move-result v2 + + .line 1372 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v1, v2, v6 + + invoke-virtual {v0, v1}, Landroid/view/View;->offsetLeftAndRight(I)V + + .line 1374 + :cond_1f + if-eqz p4, :cond_30 + + .line 1375 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p2, p4}, Landroid/support/v4/widget/ViewDragHelper$Callback;->clampViewPositionVertical(Landroid/view/View;II)I + + move-result v3 + + .line 1376 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v1, v3, v7 + + invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V + + .line 1379 + :cond_30 + if-nez p3, :cond_34 + + if-eqz p4, :cond_3f + + .line 1380 + :cond_34 + sub-int v4, v2, v6 + + .line 1381 + .local v4, "clampedDx":I + sub-int v5, v3, v7 + + .line 1382 + .local v5, "clampedDy":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 1385 + .end local v4 # "clampedDx":I + .end local v5 # "clampedDy":I + :cond_3f + return-void +.end method + +.method private ensureMotionHistorySizeForId(I)V + .registers 12 + .param p1, "pointerId" # I + + .prologue + const/4 v9, 0x0 + + .line 798 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-eqz v7, :cond_a + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v7, v7 + + if-gt v7, p1, :cond_70 + + .line 799 + :cond_a + add-int/lit8 v7, p1, 0x1 + + new-array v3, v7, [F + + .line 800 + .local v3, "imx":[F + add-int/lit8 v7, p1, 0x1 + + new-array v4, v7, [F + + .line 801 + .local v4, "imy":[F + add-int/lit8 v7, p1, 0x1 + + new-array v5, v7, [F + + .line 802 + .local v5, "lmx":[F + add-int/lit8 v7, p1, 0x1 + + new-array v6, v7, [F + + .line 803 + .local v6, "lmy":[F + add-int/lit8 v7, p1, 0x1 + + new-array v2, v7, [I + + .line 804 + .local v2, "iit":[I + add-int/lit8 v7, p1, 0x1 + + new-array v0, v7, [I + + .line 805 + .local v0, "edip":[I + add-int/lit8 v7, p1, 0x1 + + new-array v1, v7, [I + + .line 807 + .local v1, "edl":[I + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-eqz v7, :cond_62 + + .line 808 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v8, v8 + + invoke-static {v7, v9, v3, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 809 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + array-length v8, v8 + + invoke-static {v7, v9, v4, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 810 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + array-length v8, v8 + + invoke-static {v7, v9, v5, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 811 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + array-length v8, v8 + + invoke-static {v7, v9, v6, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 812 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + array-length v8, v8 + + invoke-static {v7, v9, v2, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 813 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + array-length v8, v8 + + invoke-static {v7, v9, v0, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 814 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + array-length v8, v8 + + invoke-static {v7, v9, v1, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 817 + :cond_62 + iput-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + .line 818 + iput-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + .line 819 + iput-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + .line 820 + iput-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + .line 821 + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + .line 822 + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + .line 823 + iput-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + .line 825 + .end local v0 # "edip":[I + .end local v1 # "edl":[I + .end local v2 # "iit":[I + .end local v3 # "imx":[F + .end local v4 # "imy":[F + .end local v5 # "lmx":[F + .end local v6 # "lmy":[F + :cond_70 + return-void +.end method + +.method private forceSettleCapturedViewAt(IIII)Z + .registers 16 + .param p1, "finalLeft" # I + .param p2, "finalTop" # I + .param p3, "xvel" # I + .param p4, "yvel" # I + + .prologue + const/4 v0, 0x0 + + .line 577 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getLeft()I + + move-result v10 + + .line 578 + .local v10, "startLeft":I + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getTop()I + + move-result v6 + + .line 579 + .local v6, "startTop":I + sub-int v2, p1, v10 + + .line 580 + .local v2, "dx":I + sub-int v3, p2, v6 + + .line 582 + .local v3, "dy":I + if-nez v2, :cond_1e + + if-nez v3, :cond_1e + + .line 584 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 585 + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 593 + :goto_1d + return v0 + + .line 589 + :cond_1e + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object v0, p0 + + move v4, p3 + + move v5, p4 + + invoke-direct/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper;->computeSettleDuration(Landroid/view/View;IIII)I + + move-result v9 + + .line 590 + .local v9, "duration":I + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + move v5, v10 + + move v7, v2 + + move v8, v3 + + invoke-virtual/range {v4 .. v9}, Landroid/support/v4/widget/ScrollerCompat;->startScroll(IIIII)V + + .line 592 + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 593 + const/4 v0, 0x1 + + goto :goto_1d +.end method + +.method private getEdgesTouched(II)I + .registers 6 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1440 + const/4 v0, 0x0 + + .line 1442 + .local v0, "result":I + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getLeft()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + add-int/2addr v1, v2 + + if-ge p1, v1, :cond_e + + or-int/lit8 v0, v0, 0x1 + + .line 1443 + :cond_e + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getTop()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + add-int/2addr v1, v2 + + if-ge p2, v1, :cond_1b + + or-int/lit8 v0, v0, 0x4 + + .line 1444 + :cond_1b + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getRight()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + sub-int/2addr v1, v2 + + if-le p1, v1, :cond_28 + + or-int/lit8 v0, v0, 0x2 + + .line 1445 + :cond_28 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getBottom()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + sub-int/2addr v1, v2 + + if-le p2, v1, :cond_35 + + or-int/lit8 v0, v0, 0x8 + + .line 1447 + :cond_35 + return v0 +.end method + +.method private releaseViewForPointerUp()V + .registers 6 + + .prologue + .line 1355 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + const/16 v3, 0x3e8 + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-virtual {v2, v3, v4}, Landroid/view/VelocityTracker;->computeCurrentVelocity(IF)V + + .line 1356 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v2, v3}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v2 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-direct {p0, v2, v3, v4}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(FFF)F + + move-result v0 + + .line 1359 + .local v0, "xvel":F + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v2, v3}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v2 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-direct {p0, v2, v3, v4}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(FFF)F + + move-result v1 + + .line 1362 + .local v1, "yvel":F + invoke-direct {p0, v0, v1}, Landroid/support/v4/widget/ViewDragHelper;->dispatchViewReleased(FF)V + + .line 1363 + return-void +.end method + +.method private reportNewEdgeDrags(FFI)V + .registers 7 + .param p1, "dx" # F + .param p2, "dy" # F + .param p3, "pointerId" # I + + .prologue + .line 1197 + const/4 v0, 0x0 + + .line 1198 + .local v0, "dragsStarted":I + const/4 v1, 0x1 + + invoke-direct {p0, p1, p2, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_a + + .line 1199 + or-int/lit8 v0, v0, 0x1 + + .line 1201 + :cond_a + const/4 v1, 0x4 + + invoke-direct {p0, p2, p1, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_13 + + .line 1202 + or-int/lit8 v0, v0, 0x4 + + .line 1204 + :cond_13 + const/4 v1, 0x2 + + invoke-direct {p0, p1, p2, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_1c + + .line 1205 + or-int/lit8 v0, v0, 0x2 + + .line 1207 + :cond_1c + const/16 v1, 0x8 + + invoke-direct {p0, p2, p1, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_26 + + .line 1208 + or-int/lit8 v0, v0, 0x8 + + .line 1211 + :cond_26 + if-eqz v0, :cond_34 + + .line 1212 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v2, v1, p3 + + or-int/2addr v2, v0 + + aput v2, v1, p3 + + .line 1213 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v1, v0, p3}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeDragStarted(II)V + + .line 1215 + :cond_34 + return-void +.end method + +.method private saveInitialMotion(FFI)V + .registers 7 + .param p1, "x" # F + .param p2, "y" # F + .param p3, "pointerId" # I + + .prologue + .line 828 + invoke-direct {p0, p3}, Landroid/support/v4/widget/ViewDragHelper;->ensureMotionHistorySizeForId(I)V + + .line 829 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput p1, v1, p3 + + aput p1, v0, p3 + + .line 830 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput p2, v1, p3 + + aput p2, v0, p3 + + .line 831 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + float-to-int v1, p1 + + float-to-int v2, p2 + + invoke-direct {p0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->getEdgesTouched(II)I + + move-result v1 + + aput v1, v0, p3 + + .line 832 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + const/4 v1, 0x1 + + shl-int/2addr v1, p3 + + or-int/2addr v0, v1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + .line 833 + return-void +.end method + +.method private saveLastMotion(Landroid/view/MotionEvent;)V + .registers 8 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 836 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v1 + + .line 837 + .local v1, "pointerCount":I + const/4 v0, 0x0 + + .local v0, "i":I + :goto_5 + if-ge v0, v1, :cond_1e + + .line 838 + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v2 + + .line 839 + .local v2, "pointerId":I + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v3 + + .line 840 + .local v3, "x":F + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v4 + + .line 841 + .local v4, "y":F + iget-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput v3, v5, v2 + + .line 842 + iget-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput v4, v5, v2 + + .line 837 + add-int/lit8 v0, v0, 0x1 + + goto :goto_5 + + .line 844 + .end local v2 # "pointerId":I + .end local v3 # "x":F + .end local v4 # "y":F + :cond_1e + return-void +.end method + + +# virtual methods +.method public abort()V + .registers 9 + + .prologue + .line 512 + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 513 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v1, 0x2 + + if-ne v0, v1, :cond_30 + + .line 514 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v6 + + .line 515 + .local v6, "oldX":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v7 + + .line 516 + .local v7, "oldY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 517 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v2 + + .line 518 + .local v2, "newX":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v3 + + .line 519 + .local v3, "newY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v4, v2, v6 + + sub-int v5, v3, v7 + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 521 + .end local v2 # "newX":I + .end local v3 # "newY":I + .end local v6 # "oldX":I + .end local v7 # "oldY":I + :cond_30 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 522 + return-void +.end method + +.method protected canScroll(Landroid/view/View;ZIIII)Z + .registers 20 + .param p1, "v" # Landroid/view/View; + .param p2, "checkV" # Z + .param p3, "dx" # I + .param p4, "dy" # I + .param p5, "x" # I + .param p6, "y" # I + + .prologue + .line 908 + instance-of v1, p1, Landroid/view/ViewGroup; + + if-eqz v1, :cond_5c + + move-object v9, p1 + + .line 909 + check-cast v9, Landroid/view/ViewGroup; + + .line 910 + .local v9, "group":Landroid/view/ViewGroup; + invoke-virtual {p1}, Landroid/view/View;->getScrollX()I + + move-result v11 + + .line 911 + .local v11, "scrollX":I + invoke-virtual {p1}, Landroid/view/View;->getScrollY()I + + move-result v12 + + .line 912 + .local v12, "scrollY":I + invoke-virtual {v9}, Landroid/view/ViewGroup;->getChildCount()I + + move-result v8 + + .line 914 + .local v8, "count":I + add-int/lit8 v10, v8, -0x1 + + .local v10, "i":I + :goto_15 + if-ltz v10, :cond_5c + + .line 917 + invoke-virtual {v9, v10}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; + + move-result-object v2 + + .line 918 + .local v2, "child":Landroid/view/View; + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getLeft()I + + move-result v3 + + if-lt v1, v3, :cond_59 + + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getRight()I + + move-result v3 + + if-ge v1, v3, :cond_59 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v3 + + if-lt v1, v3, :cond_59 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getBottom()I + + move-result v3 + + if-ge v1, v3, :cond_59 + + const/4 v3, 0x1 + + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getLeft()I + + move-result v4 + + sub-int v6, v1, v4 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v4 + + sub-int v7, v1, v4 + + move-object v1, p0 + + move/from16 v4, p3 + + move/from16 v5, p4 + + invoke-virtual/range {v1 .. v7}, Landroid/support/v4/widget/ViewDragHelper;->canScroll(Landroid/view/View;ZIIII)Z + + move-result v1 + + if-eqz v1, :cond_59 + + .line 922 + const/4 v1, 0x1 + + .line 927 + .end local v2 # "child":Landroid/view/View; + .end local v8 # "count":I + .end local v9 # "group":Landroid/view/ViewGroup; + .end local v10 # "i":I + .end local v11 # "scrollX":I + .end local v12 # "scrollY":I + :goto_58 + return v1 + + .line 914 + .restart local v2 # "child":Landroid/view/View; + .restart local v8 # "count":I + .restart local v9 # "group":Landroid/view/ViewGroup; + .restart local v10 # "i":I + .restart local v11 # "scrollX":I + .restart local v12 # "scrollY":I + :cond_59 + add-int/lit8 v10, v10, -0x1 + + goto :goto_15 + + .line 927 + .end local v2 # "child":Landroid/view/View; + .end local v8 # "count":I + .end local v9 # "group":Landroid/view/ViewGroup; + .end local v10 # "i":I + .end local v11 # "scrollX":I + .end local v12 # "scrollY":I + :cond_5c + if-eqz p2, :cond_72 + + move/from16 v0, p3 + + neg-int v1, v0 + + invoke-static {p1, v1}, Landroid/support/v4/view/ViewCompat;->canScrollHorizontally(Landroid/view/View;I)Z + + move-result v1 + + if-nez v1, :cond_70 + + move/from16 v0, p4 + + neg-int v1, v0 + + invoke-static {p1, v1}, Landroid/support/v4/view/ViewCompat;->canScrollVertically(Landroid/view/View;I)Z + + move-result v1 + + if-eqz v1, :cond_72 + + :cond_70 + const/4 v1, 0x1 + + goto :goto_58 + + :cond_72 + const/4 v1, 0x0 + + goto :goto_58 +.end method + +.method public cancel()V + .registers 2 + + .prologue + .line 498 + const/4 v0, -0x1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 499 + invoke-direct {p0}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory()V + + .line 501 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + if-eqz v0, :cond_12 + + .line 502 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + invoke-virtual {v0}, Landroid/view/VelocityTracker;->recycle()V + + .line 503 + const/4 v0, 0x0 + + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 505 + :cond_12 + return-void +.end method + +.method public captureChildView(Landroid/view/View;I)V + .registers 6 + .param p1, "childView" # Landroid/view/View; + .param p2, "activePointerId" # I + + .prologue + .line 460 + invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object v0 + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + if-eq v0, v1, :cond_29 + + .line 461 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "captureChildView: parameter must be a descendant of the ViewDragHelper\'s tracked parent view (" + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v2, ")" + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 + + .line 465 + :cond_29 + iput-object p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 466 + iput p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 467 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewCaptured(Landroid/view/View;I)V + + .line 468 + const/4 v0, 0x1 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 469 + return-void +.end method + +.method public checkTouchSlop(I)Z + .registers 5 + .param p1, "directions" # I + + .prologue + .line 1276 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v0, v2 + + .line 1277 + .local v0, "count":I + const/4 v1, 0x0 + + .local v1, "i":I + :goto_4 + if-ge v1, v0, :cond_11 + + .line 1278 + invoke-virtual {p0, p1, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(II)Z + + move-result v2 + + if-eqz v2, :cond_e + + .line 1279 + const/4 v2, 0x1 + + .line 1282 + :goto_d + return v2 + + .line 1277 + :cond_e + add-int/lit8 v1, v1, 0x1 + + goto :goto_4 + + .line 1282 + :cond_11 + const/4 v2, 0x0 + + goto :goto_d +.end method + +.method public checkTouchSlop(II)Z + .registers 12 + .param p1, "directions" # I + .param p2, "pointerId" # I + + .prologue + const/4 v4, 0x1 + + const/4 v5, 0x0 + + .line 1301 + invoke-virtual {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->isPointerDown(I)Z + + move-result v6 + + if-nez v6, :cond_a + + move v4, v5 + + .line 1318 + :cond_9 + :goto_9 + return v4 + + .line 1305 + :cond_a + and-int/lit8 v6, p1, 0x1 + + if-ne v6, v4, :cond_3e + + move v0, v4 + + .line 1306 + .local v0, "checkHorizontal":Z + :goto_f + and-int/lit8 v6, p1, 0x2 + + const/4 v7, 0x2 + + if-ne v6, v7, :cond_40 + + move v1, v4 + + .line 1308 + .local v1, "checkVertical":Z + :goto_15 + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aget v6, v6, p2 + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aget v7, v7, p2 + + sub-float v2, v6, v7 + + .line 1309 + .local v2, "dx":F + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aget v6, v6, p2 + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aget v7, v7, p2 + + sub-float v3, v6, v7 + + .line 1311 + .local v3, "dy":F + if-eqz v0, :cond_42 + + if-eqz v1, :cond_42 + + .line 1312 + mul-float v6, v2, v2 + + mul-float v7, v3, v3 + + add-float/2addr v6, v7 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + iget v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + mul-int/2addr v7, v8 + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + .end local v0 # "checkHorizontal":Z + .end local v1 # "checkVertical":Z + .end local v2 # "dx":F + .end local v3 # "dy":F + :cond_3e + move v0, v5 + + .line 1305 + goto :goto_f + + .restart local v0 # "checkHorizontal":Z + :cond_40 + move v1, v5 + + .line 1306 + goto :goto_15 + + .line 1313 + .restart local v1 # "checkVertical":Z + .restart local v2 # "dx":F + .restart local v3 # "dy":F + :cond_42 + if-eqz v0, :cond_51 + + .line 1314 + invoke-static {v2}, Ljava/lang/Math;->abs(F)F + + move-result v6 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + .line 1315 + :cond_51 + if-eqz v1, :cond_60 + + .line 1316 + invoke-static {v3}, Ljava/lang/Math;->abs(F)F + + move-result v6 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + :cond_60 + move v4, v5 + + .line 1318 + goto :goto_9 +.end method + +.method public continueSettling(Z)Z + .registers 11 + .param p1, "deferCallbacks" # Z + + .prologue + const/4 v8, 0x2 + + const/4 v7, 0x0 + + .line 715 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v8, :cond_69 + + .line 716 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->computeScrollOffset()Z + + move-result v6 + + .line 717 + .local v6, "keepGoing":Z + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v2 + + .line 718 + .local v2, "x":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v3 + + .line 719 + .local v3, "y":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v0 + + sub-int v4, v2, v0 + + .line 720 + .local v4, "dx":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v0 + + sub-int v5, v3, v0 + + .line 722 + .local v5, "dy":I + if-eqz v4, :cond_2f + + .line 723 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v4}, Landroid/view/View;->offsetLeftAndRight(I)V + + .line 725 + :cond_2f + if-eqz v5, :cond_36 + + .line 726 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v5}, Landroid/view/View;->offsetTopAndBottom(I)V + + .line 729 + :cond_36 + if-nez v4, :cond_3a + + if-eqz v5, :cond_41 + + .line 730 + :cond_3a + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 733 + :cond_41 + if-eqz v6, :cond_5e + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getFinalX()I + + move-result v0 + + if-ne v2, v0, :cond_5e + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getFinalY()I + + move-result v0 + + if-ne v3, v0, :cond_5e + + .line 736 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 737 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->isFinished()Z + + move-result v6 + + .line 740 + :cond_5e + if-nez v6, :cond_69 + + .line 741 + if-eqz p1, :cond_6f + + .line 742 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mSetIdleRunnable:Ljava/lang/Runnable; + + invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->post(Ljava/lang/Runnable;)Z + + .line 749 + .end local v2 # "x":I + .end local v3 # "y":I + .end local v4 # "dx":I + .end local v5 # "dy":I + .end local v6 # "keepGoing":Z + :cond_69 + :goto_69 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v8, :cond_73 + + const/4 v0, 0x1 + + :goto_6e + return v0 + + .line 744 + .restart local v2 # "x":I + .restart local v3 # "y":I + .restart local v4 # "dx":I + .restart local v5 # "dy":I + .restart local v6 # "keepGoing":Z + :cond_6f + invoke-virtual {p0, v7}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + goto :goto_69 + + .end local v2 # "x":I + .end local v3 # "y":I + .end local v4 # "dx":I + .end local v5 # "dy":I + .end local v6 # "keepGoing":Z + :cond_73 + move v0, v7 + + .line 749 + goto :goto_6e +.end method + +.method public findTopChildUnder(II)Landroid/view/View; + .registers 8 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1428 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v3}, Landroid/view/ViewGroup;->getChildCount()I + + move-result v1 + + .line 1429 + .local v1, "childCount":I + add-int/lit8 v2, v1, -0x1 + + .local v2, "i":I + :goto_8 + if-ltz v2, :cond_32 + + .line 1430 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, v2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getOrderedChildIndex(I)I + + move-result v4 + + invoke-virtual {v3, v4}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; + + move-result-object v0 + + .line 1431 + .local v0, "child":Landroid/view/View; + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v3 + + if-lt p1, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getRight()I + + move-result v3 + + if-ge p1, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v3 + + if-lt p2, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getBottom()I + + move-result v3 + + if-ge p2, v3, :cond_2f + + .line 1436 + .end local v0 # "child":Landroid/view/View; + :goto_2e + return-object v0 + + .line 1429 + .restart local v0 # "child":Landroid/view/View; + :cond_2f + add-int/lit8 v2, v2, -0x1 + + goto :goto_8 + + .line 1436 + .end local v0 # "child":Landroid/view/View; + :cond_32 + const/4 v0, 0x0 + + goto :goto_2e +.end method + +.method public flingCapturedView(IIII)V + .registers 14 + .param p1, "minLeft" # I + .param p2, "minTop" # I + .param p3, "maxLeft" # I + .param p4, "maxTop" # I + + .prologue + .line 690 + iget-boolean v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + if-nez v0, :cond_c + + .line 691 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot flingCapturedView outside of a call to Callback#onViewReleased" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 695 + :cond_c + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getLeft()I + + move-result v1 + + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v2 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v3, v4}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v3 + + float-to-int v3, v3 + + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v4, v5}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v4 + + float-to-int v4, v4 + + move v5, p1 + + move v6, p3 + + move v7, p2 + + move v8, p4 + + invoke-virtual/range {v0 .. v8}, Landroid/support/v4/widget/ScrollerCompat;->fling(IIIIIIII)V + + .line 700 + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 701 + return-void +.end method + +.method public getActivePointerId()I + .registers 2 + + .prologue + .line 483 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + return v0 +.end method + +.method public getCapturedView()Landroid/view/View; + .registers 2 + + .prologue + .line 475 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + return-object v0 +.end method + +.method public getEdgeSize()I + .registers 2 + + .prologue + .line 448 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + return v0 +.end method + +.method public getMinVelocity()F + .registers 2 + + .prologue + .line 412 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + return v0 +.end method + +.method public getTouchSlop()I + .registers 2 + + .prologue + .line 490 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + return v0 +.end method + +.method public getViewDragState()I + .registers 2 + + .prologue + .line 421 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + return v0 +.end method + +.method public isCapturedViewUnder(II)Z + .registers 4 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1397 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {p0, v0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper;->isViewUnder(Landroid/view/View;II)Z + + move-result v0 + + return v0 +.end method + +.method public isEdgeTouched(I)Z + .registers 5 + .param p1, "edges" # I + + .prologue + .line 1331 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + array-length v0, v2 + + .line 1332 + .local v0, "count":I + const/4 v1, 0x0 + + .local v1, "i":I + :goto_4 + if-ge v1, v0, :cond_11 + + .line 1333 + invoke-virtual {p0, p1, v1}, Landroid/support/v4/widget/ViewDragHelper;->isEdgeTouched(II)Z + + move-result v2 + + if-eqz v2, :cond_e + + .line 1334 + const/4 v2, 0x1 + + .line 1337 + :goto_d + return v2 + + .line 1332 + :cond_e + add-int/lit8 v1, v1, 0x1 + + goto :goto_4 + + .line 1337 + :cond_11 + const/4 v2, 0x0 + + goto :goto_d +.end method + +.method public isEdgeTouched(II)Z + .registers 4 + .param p1, "edges" # I + .param p2, "pointerId" # I + + .prologue + .line 1351 + invoke-virtual {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->isPointerDown(I)Z + + move-result v0 + + if-eqz v0, :cond_f + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v0, v0, p2 + + and-int/2addr v0, p1 + + if-eqz v0, :cond_f + + const/4 v0, 0x1 + + :goto_e + return v0 + + :cond_f + const/4 v0, 0x0 + + goto :goto_e +.end method + +.method public isPointerDown(I)Z + .registers 5 + .param p1, "pointerId" # I + + .prologue + const/4 v0, 0x1 + + .line 860 + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + shl-int v2, v0, p1 + + and-int/2addr v1, v2 + + if-eqz v1, :cond_9 + + :goto_8 + return v0 + + :cond_9 + const/4 v0, 0x0 + + goto :goto_8 +.end method + +.method public isViewUnder(Landroid/view/View;II)Z + .registers 6 + .param p1, "view" # Landroid/view/View; + .param p2, "x" # I + .param p3, "y" # I + + .prologue + const/4 v0, 0x0 + + .line 1410 + if-nez p1, :cond_4 + + .line 1413 + :cond_3 + :goto_3 + return v0 + + :cond_4 + invoke-virtual {p1}, Landroid/view/View;->getLeft()I + + move-result v1 + + if-lt p2, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getRight()I + + move-result v1 + + if-ge p2, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getTop()I + + move-result v1 + + if-lt p3, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getBottom()I + + move-result v1 + + if-ge p3, v1, :cond_3 + + const/4 v0, 0x1 + + goto :goto_3 +.end method + +.method public processTouchEvent(Landroid/view/MotionEvent;)V + .registers 23 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 1046 + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I + + move-result v3 + + .line 1047 + .local v3, "action":I + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getActionIndex(Landroid/view/MotionEvent;)I + + move-result v4 + + .line 1049 + .local v4, "actionIndex":I + if-nez v3, :cond_d + + .line 1052 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 1055 + :cond_d + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + move-object/from16 v19, v0 + + if-nez v19, :cond_1f + + .line 1056 + invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; + + move-result-object v19 + + move-object/from16 v0, v19 + + move-object/from16 v1, p0 + + iput-object v0, v1, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 1058 + :cond_1f + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + move-object/from16 v19, v0 + + move-object/from16 v0, v19 + + move-object/from16 v1, p1 + + invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V + + .line 1060 + packed-switch v3, :pswitch_data_2be + + .line 1194 + :cond_2f + :goto_2f + :pswitch_2f + return-void + + .line 1062 + :pswitch_30 + invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getX()F + + move-result v17 + + .line 1063 + .local v17, "x":F + invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getY()F + + move-result v18 + + .line 1064 + .local v18, "y":F + const/16 v19, 0x0 + + move-object/from16 v0, p1 + + move/from16 v1, v19 + + invoke-static {v0, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1065 + .local v15, "pointerId":I + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1067 + .local v16, "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move/from16 v1, v17 + + move/from16 v2, v18 + + invoke-direct {v0, v1, v2, v15}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 1072 + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 1074 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + move-object/from16 v19, v0 + + aget v7, v19, v15 + + .line 1075 + .local v7, "edgesTouched":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v19, v0 + + and-int v19, v19, v7 + + if-eqz v19, :cond_2f + + .line 1076 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v20, v0 + + and-int v20, v20, v7 + + move-object/from16 v0, v19 + + move/from16 v1, v20 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_2f + + .line 1082 + .end local v7 # "edgesTouched":I + .end local v15 # "pointerId":I + .end local v16 # "toCapture":Landroid/view/View; + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_8e + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1083 + .restart local v15 # "pointerId":I + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1084 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1086 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + move/from16 v1, v17 + + move/from16 v2, v18 + + invoke-direct {v0, v1, v2, v15}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 1089 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + if-nez v19, :cond_f5 + + .line 1092 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1093 + .restart local v16 # "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 1095 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + move-object/from16 v19, v0 + + aget v7, v19, v15 + + .line 1096 + .restart local v7 # "edgesTouched":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v19, v0 + + and-int v19, v19, v7 + + if-eqz v19, :cond_2f + + .line 1097 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v20, v0 + + and-int v20, v20, v7 + + move-object/from16 v0, v19 + + move/from16 v1, v20 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto/16 :goto_2f + + .line 1099 + .end local v7 # "edgesTouched":I + .end local v16 # "toCapture":Landroid/view/View; + :cond_f5 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->isCapturedViewUnder(II)Z + + move-result v19 + + if-eqz v19, :cond_2f + + .line 1104 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + move-object/from16 v1, v19 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + goto/16 :goto_2f + + .line 1110 + .end local v15 # "pointerId":I + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_11a + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_18e + + .line 1111 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move-object/from16 v0, p1 + + move/from16 v1, v19 + + invoke-static {v0, v1}, Landroid/support/v4/view/MotionEventCompat;->findPointerIndex(Landroid/view/MotionEvent;I)I + + move-result v12 + + .line 1112 + .local v12, "index":I + move-object/from16 v0, p1 + + invoke-static {v0, v12}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1113 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v12}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1114 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v20, v0 + + aget v19, v19, v20 + + sub-float v19, v17, v19 + + move/from16 v0, v19 + + float-to-int v10, v0 + + .line 1115 + .local v10, "idx":I + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v20, v0 + + aget v19, v19, v20 + + sub-float v19, v18, v19 + + move/from16 v0, v19 + + float-to-int v11, v0 + + .line 1117 + .local v11, "idy":I + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + invoke-virtual/range {v19 .. v19}, Landroid/view/View;->getLeft()I + + move-result v19 + + add-int v19, v19, v10 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v20, v0 + + invoke-virtual/range {v20 .. v20}, Landroid/view/View;->getTop()I + + move-result v20 + + add-int v20, v20, v11 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-direct {v0, v1, v2, v10, v11}, Landroid/support/v4/widget/ViewDragHelper;->dragTo(IIII)V + + .line 1119 + invoke-direct/range {p0 .. p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_2f + + .line 1122 + .end local v10 # "idx":I + .end local v11 # "idy":I + .end local v12 # "index":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_18e + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v14 + + .line 1123 + .local v14, "pointerCount":I + const/4 v8, 0x0 + + .local v8, "i":I + :goto_193 + if-ge v8, v14, :cond_1ce + + .line 1124 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1125 + .restart local v15 # "pointerId":I + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1126 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1127 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + move-object/from16 v19, v0 + + aget v19, v19, v15 + + sub-float v5, v17, v19 + + .line 1128 + .local v5, "dx":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + move-object/from16 v19, v0 + + aget v19, v19, v15 + + sub-float v6, v18, v19 + + .line 1130 + .local v6, "dy":F + move-object/from16 v0, p0 + + invoke-direct {v0, v5, v6, v15}, Landroid/support/v4/widget/ViewDragHelper;->reportNewEdgeDrags(FFI)V + + .line 1131 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_1d3 + + .line 1142 + .end local v5 # "dx":F + .end local v6 # "dy":F + .end local v15 # "pointerId":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_1ce + invoke-direct/range {p0 .. p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_2f + + .line 1136 + .restart local v5 # "dx":F + .restart local v6 # "dy":F + .restart local v15 # "pointerId":I + .restart local v17 # "x":F + .restart local v18 # "y":F + :cond_1d3 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1137 + .restart local v16 # "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-direct {v0, v1, v5, v6}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(Landroid/view/View;FF)Z + + move-result v19 + + if-eqz v19, :cond_1fb + + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v19 + + if-nez v19, :cond_1ce + + .line 1123 + :cond_1fb + add-int/lit8 v8, v8, 0x1 + + goto :goto_193 + + .line 1148 + .end local v5 # "dx":F + .end local v6 # "dy":F + .end local v8 # "i":I + .end local v14 # "pointerCount":I + .end local v15 # "pointerId":I + .end local v16 # "toCapture":Landroid/view/View; + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_1fe + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1149 + .restart local v15 # "pointerId":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_280 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move/from16 v0, v19 + + if-ne v15, v0, :cond_280 + + .line 1151 + const/4 v13, -0x1 + + .line 1152 + .local v13, "newActivePointer":I + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v14 + + .line 1153 + .restart local v14 # "pointerCount":I + const/4 v8, 0x0 + + .restart local v8 # "i":I + :goto_222 + if-ge v8, v14, :cond_277 + + .line 1154 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v9 + + .line 1155 + .local v9, "id":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move/from16 v0, v19 + + if-ne v9, v0, :cond_237 + + .line 1153 + :cond_234 + add-int/lit8 v8, v8, 0x1 + + goto :goto_222 + + .line 1160 + :cond_237 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1161 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1162 + .restart local v18 # "y":F + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v19 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v20, v0 + + move-object/from16 v0, v19 + + move-object/from16 v1, v20 + + if-ne v0, v1, :cond_234 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + move-object/from16 v1, v19 + + invoke-virtual {v0, v1, v9}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v19 + + if-eqz v19, :cond_234 + + .line 1164 + move-object/from16 v0, p0 + + iget v13, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 1169 + .end local v9 # "id":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_277 + const/16 v19, -0x1 + + move/from16 v0, v19 + + if-ne v13, v0, :cond_280 + + .line 1171 + invoke-direct/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->releaseViewForPointerUp()V + + .line 1174 + .end local v8 # "i":I + .end local v13 # "newActivePointer":I + .end local v14 # "pointerCount":I + :cond_280 + move-object/from16 v0, p0 + + invoke-direct {v0, v15}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory(I)V + + goto/16 :goto_2f + + .line 1179 + .end local v15 # "pointerId":I + :pswitch_287 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_298 + + .line 1180 + invoke-direct/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->releaseViewForPointerUp()V + + .line 1182 + :cond_298 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_2f + + .line 1187 + :pswitch_29d + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_2b8 + + .line 1188 + const/16 v19, 0x0 + + const/16 v20, 0x0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-direct {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->dispatchViewReleased(FF)V + + .line 1190 + :cond_2b8 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_2f + + .line 1060 + nop + + :pswitch_data_2be + .packed-switch 0x0 + :pswitch_30 + :pswitch_287 + :pswitch_11a + :pswitch_29d + :pswitch_2f + :pswitch_8e + :pswitch_1fe + .end packed-switch +.end method + +.method setDragState(I)V + .registers 3 + .param p1, "state" # I + + .prologue + .line 864 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-eq v0, p1, :cond_10 + + .line 865 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + .line 866 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v0, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewDragStateChanged(I)V + + .line 867 + if-nez p1, :cond_10 + + .line 868 + const/4 v0, 0x0 + + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 871 + :cond_10 + return-void +.end method + +.method public setEdgeTrackingEnabled(I)V + .registers 2 + .param p1, "edgeFlags" # I + + .prologue + .line 437 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + .line 438 + return-void +.end method + +.method public setMinVelocity(F)V + .registers 2 + .param p1, "minVel" # F + + .prologue + .line 401 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + .line 402 + return-void +.end method + +.method public settleCapturedViewAt(II)Z + .registers 6 + .param p1, "finalLeft" # I + .param p2, "finalTop" # I + + .prologue + .line 557 + iget-boolean v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + if-nez v0, :cond_c + + .line 558 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot settleCapturedViewAt outside of a call to Callback#onViewReleased" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 562 + :cond_c + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v0, v1}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v0 + + float-to-int v0, v0 + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v1, v2}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v1 + + float-to-int v1, v1 + + invoke-direct {p0, p1, p2, v0, v1}, Landroid/support/v4/widget/ViewDragHelper;->forceSettleCapturedViewAt(IIII)Z + + move-result v0 + + return v0 +.end method + +.method public shouldInterceptTouchEvent(Landroid/view/MotionEvent;)Z + .registers 15 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 939 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I + + move-result v0 + + .line 940 + .local v0, "action":I + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionIndex(Landroid/view/MotionEvent;)I + + move-result v1 + + .line 942 + .local v1, "actionIndex":I + if-nez v0, :cond_d + + .line 945 + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 948 + :cond_d + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + if-nez v11, :cond_17 + + .line 949 + invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; + + move-result-object v11 + + iput-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 951 + :cond_17 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + invoke-virtual {v11, p1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V + + .line 953 + packed-switch v0, :pswitch_data_e6 + + .line 1036 + :cond_1f + :goto_1f + :pswitch_1f + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x1 + + if-ne v11, v12, :cond_e3 + + const/4 v11, 0x1 + + :goto_25 + return v11 + + .line 955 + :pswitch_26 + invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F + + move-result v9 + + .line 956 + .local v9, "x":F + invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F + + move-result v10 + + .line 957 + .local v10, "y":F + const/4 v11, 0x0 + + invoke-static {p1, v11}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 958 + .local v7, "pointerId":I + invoke-direct {p0, v9, v10, v7}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 960 + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 963 + .local v8, "toCapture":Landroid/view/View; + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne v8, v11, :cond_48 + + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x2 + + if-ne v11, v12, :cond_48 + + .line 964 + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 967 + :cond_48 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v4, v11, v7 + + .line 968 + .local v4, "edgesTouched":I + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v11, v4 + + if-eqz v11, :cond_1f + + .line 969 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v12, v4 + + invoke-virtual {v11, v12, v7}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_1f + + .line 975 + .end local v4 # "edgesTouched":I + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_5a + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 976 + .restart local v7 # "pointerId":I + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v9 + + .line 977 + .restart local v9 # "x":F + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v10 + + .line 979 + .restart local v10 # "y":F + invoke-direct {p0, v9, v10, v7}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 982 + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-nez v11, :cond_7f + + .line 983 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v4, v11, v7 + + .line 984 + .restart local v4 # "edgesTouched":I + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v11, v4 + + if-eqz v11, :cond_1f + + .line 985 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v12, v4 + + invoke-virtual {v11, v12, v7}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_1f + + .line 987 + .end local v4 # "edgesTouched":I + :cond_7f + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x2 + + if-ne v11, v12, :cond_1f + + .line 989 + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 990 + .restart local v8 # "toCapture":Landroid/view/View; + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne v8, v11, :cond_1f + + .line 991 + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + goto :goto_1f + + .line 999 + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_92 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v6 + + .line 1000 + .local v6, "pointerCount":I + const/4 v5, 0x0 + + .local v5, "i":I + :goto_97 + if-ge v5, v6, :cond_b9 + + .line 1001 + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 1002 + .restart local v7 # "pointerId":I + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v9 + + .line 1003 + .restart local v9 # "x":F + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v10 + + .line 1004 + .restart local v10 # "y":F + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aget v11, v11, v7 + + sub-float v2, v9, v11 + + .line 1005 + .local v2, "dx":F + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aget v11, v11, v7 + + sub-float v3, v10, v11 + + .line 1007 + .local v3, "dy":F + invoke-direct {p0, v2, v3, v7}, Landroid/support/v4/widget/ViewDragHelper;->reportNewEdgeDrags(FFI)V + + .line 1008 + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x1 + + if-ne v11, v12, :cond_be + + .line 1019 + .end local v2 # "dx":F + .end local v3 # "dy":F + .end local v7 # "pointerId":I + .end local v9 # "x":F + .end local v10 # "y":F + :cond_b9 + invoke-direct {p0, p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_1f + + .line 1013 + .restart local v2 # "dx":F + .restart local v3 # "dy":F + .restart local v7 # "pointerId":I + .restart local v9 # "x":F + .restart local v10 # "y":F + :cond_be + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 1014 + .restart local v8 # "toCapture":Landroid/view/View; + if-eqz v8, :cond_d2 + + invoke-direct {p0, v8, v2, v3}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(Landroid/view/View;FF)Z + + move-result v11 + + if-eqz v11, :cond_d2 + + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v11 + + if-nez v11, :cond_b9 + + .line 1000 + :cond_d2 + add-int/lit8 v5, v5, 0x1 + + goto :goto_97 + + .line 1024 + .end local v2 # "dx":F + .end local v3 # "dy":F + .end local v5 # "i":I + .end local v6 # "pointerCount":I + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_d5 + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 1025 + .restart local v7 # "pointerId":I + invoke-direct {p0, v7}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory(I)V + + goto/16 :goto_1f + + .line 1031 + .end local v7 # "pointerId":I + :pswitch_de + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_1f + + .line 1036 + :cond_e3 + const/4 v11, 0x0 + + goto/16 :goto_25 + + .line 953 + :pswitch_data_e6 + .packed-switch 0x0 + :pswitch_26 + :pswitch_de + :pswitch_92 + :pswitch_de + :pswitch_1f + :pswitch_5a + :pswitch_d5 + .end packed-switch +.end method + +.method public smoothSlideViewTo(Landroid/view/View;II)Z + .registers 6 + .param p1, "child" # Landroid/view/View; + .param p2, "finalLeft" # I + .param p3, "finalTop" # I + + .prologue + const/4 v1, 0x0 + + .line 539 + iput-object p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 540 + const/4 v0, -0x1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 542 + invoke-direct {p0, p2, p3, v1, v1}, Landroid/support/v4/widget/ViewDragHelper;->forceSettleCapturedViewAt(IIII)Z + + move-result v0 + + return v0 +.end method + +.method tryCaptureViewForDrag(Landroid/view/View;I)Z + .registers 5 + .param p1, "toCapture" # Landroid/view/View; + .param p2, "pointerId" # I + + .prologue + const/4 v0, 0x1 + + .line 883 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne p1, v1, :cond_a + + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + if-ne v1, p2, :cond_a + + .line 892 + :goto_9 + return v0 + + .line 887 + :cond_a + if-eqz p1, :cond_1a + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v1, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->tryCaptureView(Landroid/view/View;I)Z + + move-result v1 + + if-eqz v1, :cond_1a + + .line 888 + iput p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 889 + invoke-virtual {p0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper;->captureChildView(Landroid/view/View;I)V + + goto :goto_9 + + .line 892 + :cond_1a + const/4 v0, 0x0 + + goto :goto_9 +.end method diff --git a/samples/Smali/WbxmlSerializer.smali b/samples/Smali/WbxmlSerializer.smali new file mode 100644 index 00000000..2d870d8c --- /dev/null +++ b/samples/Smali/WbxmlSerializer.smali @@ -0,0 +1,1863 @@ +.class public Lorg/kxml2/wap/WbxmlSerializer; +.super Ljava/lang/Object; +.source "WbxmlSerializer.java" + +# interfaces +.implements Lorg/xmlpull/v1/XmlSerializer; + + +# instance fields +.field private attrPage:I + +.field attrStartTable:Ljava/util/Hashtable; + +.field attrValueTable:Ljava/util/Hashtable; + +.field attributes:Ljava/util/Vector; + +.field buf:Ljava/io/ByteArrayOutputStream; + +.field depth:I + +.field private encoding:Ljava/lang/String; + +.field private headerSent:Z + +.field name:Ljava/lang/String; + +.field namespace:Ljava/lang/String; + +.field out:Ljava/io/OutputStream; + +.field pending:Ljava/lang/String; + +.field stringTable:Ljava/util/Hashtable; + +.field stringTableBuf:Ljava/io/ByteArrayOutputStream; + +.field private tagPage:I + +.field tagTable:Ljava/util/Hashtable; + + +# direct methods +.method public constructor ()V + .locals 1 + + .prologue + .line 35 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 38 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + .line 42 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + .line 43 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + .line 49 + new-instance v0, Ljava/util/Vector; + + invoke-direct {v0}, Ljava/util/Vector;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + .line 51 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + .line 52 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + .line 53 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + .line 60 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + return-void +.end method + +.method static writeInt(Ljava/io/OutputStream;I)V + .locals 4 + .param p0, "out" # Ljava/io/OutputStream; + .param p1, "i" # I + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 447 + const/4 v3, 0x5 + + new-array v0, v3, [B + + .line 448 + .local v0, "buf":[B + const/4 v1, 0x0 + + .line 451 + .local v1, "idx":I + :goto_0 + add-int/lit8 v2, v1, 0x1 + + .end local v1 # "idx":I + .local v2, "idx":I + and-int/lit8 v3, p1, 0x7f + + int-to-byte v3, v3 + + aput-byte v3, v0, v1 + + .line 452 + shr-int/lit8 p1, p1, 0x7 + + .line 454 + if-nez p1, :cond_1 + + move v1, v2 + + .line 456 + .end local v2 # "idx":I + .restart local v1 # "idx":I + :goto_1 + const/4 v3, 0x1 + + if-le v1, v3, :cond_0 + + .line 457 + add-int/lit8 v1, v1, -0x1 + + aget-byte v3, v0, v1 + + or-int/lit16 v3, v3, 0x80 + + invoke-virtual {p0, v3}, Ljava/io/OutputStream;->write(I)V + + goto :goto_1 + + .line 459 + :cond_0 + const/4 v3, 0x0 + + aget-byte v3, v0, v3 + + invoke-virtual {p0, v3}, Ljava/io/OutputStream;->write(I)V + + .line 460 + return-void + + .end local v1 # "idx":I + .restart local v2 # "idx":I + :cond_1 + move v1, v2 + + .end local v2 # "idx":I + .restart local v1 # "idx":I + goto :goto_0 +.end method + +.method private writeStr(Ljava/lang/String;)V + .locals 10 + .param p1, "text" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/16 v9, 0x41 + + const/16 v8, 0x20 + + const/4 v7, 0x0 + + const/16 v6, 0x83 + + .line 349 + const/4 v2, 0x0 + + .line 350 + .local v2, "p0":I + const/4 v0, 0x0 + + .line 351 + .local v0, "lastCut":I + invoke-virtual {p1}, Ljava/lang/String;->length()I + + move-result v1 + + .line 353 + .local v1, "len":I + iget-boolean v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-eqz v4, :cond_3 + + .line 354 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {p0, v4, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + .line 394 + :cond_0 + :goto_0 + return-void + + .line 367 + .local v3, "p1":I + :cond_1 + sub-int v4, v3, v2 + + const/16 v5, 0xa + + if-le v4, v5, :cond_2 + + .line 368 + if-le v2, v0, :cond_5 + + add-int/lit8 v4, v2, -0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ne v4, v8, :cond_5 + + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v4 + + if-nez v4, :cond_5 + + .line 370 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 371 + invoke-virtual {p1, v0, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 385 + :goto_1 + move v0, v3 + + .line 387 + :cond_2 + move v2, v3 + + .line 358 + .end local v3 # "p1":I + :cond_3 + if-ge v2, v1, :cond_8 + + .line 359 + :goto_2 + if-ge v2, v1, :cond_4 + + invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ge v4, v9, :cond_4 + + .line 360 + add-int/lit8 v2, v2, 0x1 + + goto :goto_2 + + .line 362 + :cond_4 + move v3, v2 + + .line 363 + .restart local v3 # "p1":I + :goto_3 + if-ge v3, v1, :cond_1 + + invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-lt v4, v9, :cond_1 + + .line 364 + add-int/lit8 v3, v3, 0x1 + + goto :goto_3 + + .line 374 + :cond_5 + if-le v2, v0, :cond_6 + + add-int/lit8 v4, v2, -0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ne v4, v8, :cond_6 + + .line 375 + add-int/lit8 v2, v2, -0x1 + + .line 378 + :cond_6 + if-le v2, v0, :cond_7 + + .line 379 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 380 + invoke-virtual {p1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 382 + :cond_7 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 383 + invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + const/4 v5, 0x1 + + invoke-direct {p0, v4, v5}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_1 + + .line 390 + .end local v3 # "p1":I + :cond_8 + if-ge v0, v1, :cond_0 + + .line 391 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 392 + invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_0 +.end method + +.method private final writeStrT(Ljava/lang/String;Z)V + .locals 3 + .param p1, "s" # Ljava/lang/String; + .param p2, "mayPrependSpace" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 470 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {v1, p1}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/Integer; + + .line 471 + .local v0, "idx":Ljava/lang/Integer; + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v0, :cond_0 + + invoke-virtual {p0, p1, p2}, Lorg/kxml2/wap/WbxmlSerializer;->addToStringTable(Ljava/lang/String;Z)I + + move-result v1 + + :goto_0 + invoke-static {v2, v1}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 474 + return-void + + .line 471 + :cond_0 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I + + move-result v1 + + goto :goto_0 +.end method + + +# virtual methods +.method public addToStringTable(Ljava/lang/String;Z)I + .locals 9 + .param p1, "s" # Ljava/lang/String; + .param p2, "mayPrependSpace" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v8, 0x1 + + const/4 v5, 0x0 + + const/16 v7, 0x20 + + .line 485 + iget-boolean v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-eqz v3, :cond_0 + + .line 486 + new-instance v3, Ljava/io/IOException; + + const-string v4, "stringtable sent" + + invoke-direct {v3, v4}, Ljava/io/IOException;->(Ljava/lang/String;)V + + throw v3 + + .line 489 + :cond_0 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->size()I + + move-result v0 + + .line 490 + .local v0, "i":I + move v2, v0 + + .line 491 + .local v2, "offset":I + invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C + + move-result v3 + + const/16 v4, 0x30 + + if-lt v3, v4, :cond_1 + + if-eqz p2, :cond_1 + + .line 492 + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p1 + + .line 493 + add-int/lit8 v2, v2, 0x1 + + .line 496 + :cond_1 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + new-instance v4, Ljava/lang/Integer; + + invoke-direct {v4, v0}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, p1, v4}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 497 + invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C + + move-result v3 + + if-ne v3, v7, :cond_2 + + .line 498 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int/lit8 v6, v0, 0x1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 500 + :cond_2 + invoke-virtual {p1, v7}, Ljava/lang/String;->lastIndexOf(I)I + + move-result v1 + + .line 501 + .local v1, "j":I + if-le v1, v8, :cond_3 + + .line 502 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int v6, v0, v1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 503 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + add-int/lit8 v4, v1, 0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int v6, v0, v1 + + add-int/lit8 v6, v6, 0x1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 506 + :cond_3 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {p0, v3, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + .line 507 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->flush()V + + .line 508 + return v2 +.end method + +.method public attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .param p3, "value" # Ljava/lang/String; + + .prologue + .line 69 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v0, p2}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V + + .line 70 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v0, p3}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V + + .line 71 + return-object p0 +.end method + +.method public cdsect(Ljava/lang/String;)V + .locals 0 + .param p1, "cdsect" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 76 + invoke-virtual {p0, p1}, Lorg/kxml2/wap/WbxmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + + .line 77 + return-void +.end method + +.method public checkPending(Z)V + .locals 8 + .param p1, "degenerated" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v4, 0x4 + + const/4 v7, 0x1 + + const/4 v6, 0x0 + + .line 180 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + if-nez v3, :cond_0 + + .line 240 + :goto_0 + return-void + + .line 183 + :cond_0 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3}, Ljava/util/Vector;->size()I + + move-result v2 + + .line 185 + .local v2, "len":I + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 188 + .local v1, "idx":[I + if-nez v1, :cond_4 + + .line 189 + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v2, :cond_2 + + if-eqz p1, :cond_1 + + move v3, v4 + + :goto_1 + invoke-virtual {v5, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 193 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + invoke-direct {p0, v3, v6}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 205 + :goto_2 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_3 + if-ge v0, v2, :cond_d + + .line 206 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v5, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v5 + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 208 + if-nez v1, :cond_9 + + .line 209 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v4}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 210 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Ljava/lang/String; + + invoke-direct {p0, v3, v6}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 220 + :goto_4 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + add-int/lit8 v0, v0, 0x1 + + invoke-virtual {v5, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v5 + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 221 + if-nez v1, :cond_b + + .line 222 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Ljava/lang/String; + + invoke-direct {p0, v3}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 232 + :goto_5 + add-int/lit8 v0, v0, 0x1 + + goto :goto_3 + + .line 189 + .end local v0 # "i":I + :cond_1 + const/16 v3, 0x44 + + goto :goto_1 + + :cond_2 + if-eqz p1, :cond_3 + + const/16 v3, 0x84 + + goto :goto_1 + + :cond_3 + const/16 v3, 0xc4 + + goto :goto_1 + + .line 195 + :cond_4 + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + if-eq v3, v5, :cond_5 + + .line 196 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + .line 197 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 198 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 200 + :cond_5 + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v2, :cond_7 + + if-eqz p1, :cond_6 + + aget v3, v1, v7 + + :goto_6 + invoke-virtual {v5, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_2 + + :cond_6 + aget v3, v1, v7 + + or-int/lit8 v3, v3, 0x40 + + goto :goto_6 + + :cond_7 + if-eqz p1, :cond_8 + + aget v3, v1, v7 + + or-int/lit16 v3, v3, 0x80 + + goto :goto_6 + + :cond_8 + aget v3, v1, v7 + + or-int/lit16 v3, v3, 0xc0 + + goto :goto_6 + + .line 213 + .restart local v0 # "i":I + :cond_9 + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + if-eq v3, v5, :cond_a + + .line 214 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + .line 215 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 216 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 218 + :cond_a + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + aget v5, v1, v7 + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_4 + + .line 225 + :cond_b + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + if-eq v3, v5, :cond_c + + .line 226 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + .line 227 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 228 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 230 + :cond_c + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + aget v5, v1, v7 + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_5 + + .line 235 + :cond_d + if-lez v2, :cond_e + + .line 236 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v7}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 238 + :cond_e + const/4 v3, 0x0 + + iput-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + .line 239 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3}, Ljava/util/Vector;->removeAllElements()V + + goto/16 :goto_0 +.end method + +.method public comment(Ljava/lang/String;)V + .locals 0 + .param p1, "comment" # Ljava/lang/String; + + .prologue + .line 84 + return-void +.end method + +.method public docdecl(Ljava/lang/String;)V + .locals 2 + .param p1, "docdecl" # Ljava/lang/String; + + .prologue + .line 90 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "Cannot write docdecl for WBXML" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public endDocument()V + .locals 0 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 158 + invoke-virtual {p0}, Lorg/kxml2/wap/WbxmlSerializer;->flush()V + + .line 159 + return-void +.end method + +.method public endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 2 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v1, 0x1 + + .line 400 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + if-eqz v0, :cond_0 + + .line 401 + invoke-virtual {p0, v1}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 405 + :goto_0 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + add-int/lit8 v0, v0, -0x1 + + iput v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + .line 406 + return-object p0 + + .line 403 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_0 +.end method + +.method public entityRef(Ljava/lang/String;)V + .locals 2 + .param p1, "er" # Ljava/lang/String; + + .prologue + .line 97 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "EntityReference not supported for WBXML" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public flush()V + .locals 2 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 167 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 169 + iget-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-nez v0, :cond_0 + + .line 170 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->size()I + + move-result v1 + + invoke-static {v0, v1}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 171 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write([B)V + + .line 172 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + .line 175 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write([B)V + + .line 176 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V + + .line 177 + return-void +.end method + +.method public getDepth()I + .locals 1 + + .prologue + .line 104 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + return v0 +.end method + +.method public getFeature(Ljava/lang/String;)Z + .locals 1 + .param p1, "name" # Ljava/lang/String; + + .prologue + .line 111 + const/4 v0, 0x0 + + return v0 +.end method + +.method public getName()Ljava/lang/String; + .locals 1 + + .prologue + .line 129 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + return-object v0 +.end method + +.method public getNamespace()Ljava/lang/String; + .locals 1 + + .prologue + .line 120 + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public getPrefix(Ljava/lang/String;Z)Ljava/lang/String; + .locals 2 + .param p1, "nsp" # Ljava/lang/String; + .param p2, "create" # Z + + .prologue + .line 136 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public getProperty(Ljava/lang/String;)Ljava/lang/Object; + .locals 1 + .param p1, "name" # Ljava/lang/String; + + .prologue + .line 145 + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public ignorableWhitespace(Ljava/lang/String;)V + .locals 0 + .param p1, "sp" # Ljava/lang/String; + + .prologue + .line 149 + return-void +.end method + +.method public processingInstruction(Ljava/lang/String;)V + .locals 2 + .param p1, "pi" # Ljava/lang/String; + + .prologue + .line 246 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "PI NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setAttrStartTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "attrStartTable" # [Ljava/lang/String; + + .prologue + .line 536 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 537 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 538 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit8 v3, v0, 0x5 + + aput v3, v1, v2 + + .line 539 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 536 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 542 + :cond_1 + return-void +.end method + +.method public setAttrValueTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "attrValueTable" # [Ljava/lang/String; + + .prologue + .line 552 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 553 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 554 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit16 v3, v0, 0x85 + + aput v3, v1, v2 + + .line 555 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 552 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 558 + :cond_1 + return-void +.end method + +.method public setFeature(Ljava/lang/String;Z)V + .locals 3 + .param p1, "name" # Ljava/lang/String; + .param p2, "value" # Z + + .prologue + .line 253 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "unknown feature " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V + .locals 1 + .param p1, "out" # Ljava/io/OutputStream; + .param p2, "encoding" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 268 + if-nez p2, :cond_0 + + const-string p2, "UTF-8" + + .end local p2 # "encoding":Ljava/lang/String; + :cond_0 + iput-object p2, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + .line 269 + iput-object p1, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + .line 271 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + .line 272 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + .line 273 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + .line 276 + return-void +.end method + +.method public setOutput(Ljava/io/Writer;)V + .locals 2 + .param p1, "writer" # Ljava/io/Writer; + + .prologue + .line 260 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "Wbxml requires an OutputStream!" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setPrefix(Ljava/lang/String;Ljava/lang/String;)V + .locals 2 + .param p1, "prefix" # Ljava/lang/String; + .param p2, "nsp" # Ljava/lang/String; + + .prologue + .line 282 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setProperty(Ljava/lang/String;Ljava/lang/Object;)V + .locals 3 + .param p1, "property" # Ljava/lang/String; + .param p2, "value" # Ljava/lang/Object; + + .prologue + .line 289 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "unknown property " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setTagTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "tagTable" # [Ljava/lang/String; + + .prologue + .line 518 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 519 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 520 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit8 v3, v0, 0x5 + + aput v3, v1, v2 + + .line 521 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 518 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 524 + :cond_1 + return-void +.end method + +.method public startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V + .locals 2 + .param p1, "encoding" # Ljava/lang/String; + .param p2, "standalone" # Ljava/lang/Boolean; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 299 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x3 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 301 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 305 + if-eqz p1, :cond_0 + + .line 306 + iput-object p1, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + .line 309 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "UTF-8" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 310 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/16 v1, 0x6a + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 316 + :goto_0 + return-void + + .line 311 + :cond_1 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "ISO-8859-1" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_2 + + .line 312 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x4 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + goto :goto_0 + + .line 314 + :cond_2 + new-instance v0, Ljava/io/UnsupportedEncodingException; + + invoke-direct {v0, p1}, Ljava/io/UnsupportedEncodingException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 2 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 321 + if-eqz p1, :cond_0 + + const-string v0, "" + + invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_0 + + .line 322 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NSP NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 + + .line 326 + :cond_0 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 327 + iput-object p2, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + .line 328 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + .line 330 + return-object p0 +.end method + +.method public text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "text" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 340 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 341 + invoke-direct {p0, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 342 + return-object p0 +.end method + +.method public text([CII)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "chars" # [C + .param p2, "start" # I + .param p3, "len" # I + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 334 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 335 + new-instance v0, Ljava/lang/String; + + invoke-direct {v0, p1, p2, p3}, Ljava/lang/String;->([CII)V + + invoke-direct {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 336 + return-object p0 +.end method + +.method writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + .locals 2 + .param p1, "out" # Ljava/io/OutputStream; + .param p2, "s" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 463 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {p2, v1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B + + move-result-object v0 + + .line 464 + .local v0, "data":[B + invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write([B)V + + .line 465 + const/4 v1, 0x0 + + invoke-virtual {p1, v1}, Ljava/io/OutputStream;->write(I)V + + .line 466 + return-void +.end method + +.method public writeWapExtension(ILjava/lang/Object;)V + .locals 3 + .param p1, "type" # I + .param p2, "data" # Ljava/lang/Object; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v2, 0x0 + + .line 413 + invoke-virtual {p0, v2}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 414 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1, p1}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 415 + sparse-switch p1, :sswitch_data_0 + + .line 440 + new-instance v1, Ljava/lang/IllegalArgumentException; + + invoke-direct {v1}, Ljava/lang/IllegalArgumentException;->()V + + throw v1 + + .line 422 + :sswitch_0 + check-cast p2, [B + + .end local p2 # "data":Ljava/lang/Object; + move-object v0, p2 + + check-cast v0, [B + + .line 423 + .local v0, "bytes":[B + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + array-length v2, v0 + + invoke-static {v1, v2}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 424 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1, v0}, Ljava/io/ByteArrayOutputStream;->write([B)V + + .line 442 + .end local v0 # "bytes":[B + :goto_0 + :sswitch_1 + return-void + + .line 430 + .restart local p2 # "data":Ljava/lang/Object; + :sswitch_2 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + check-cast p2, Ljava/lang/String; + + .end local p2 # "data":Ljava/lang/Object; + invoke-virtual {p0, v1, p2}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + goto :goto_0 + + .line 436 + .restart local p2 # "data":Ljava/lang/Object; + :sswitch_3 + check-cast p2, Ljava/lang/String; + + .end local p2 # "data":Ljava/lang/Object; + invoke-direct {p0, p2, v2}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_0 + + .line 415 + nop + + :sswitch_data_0 + .sparse-switch + 0x40 -> :sswitch_2 + 0x41 -> :sswitch_2 + 0x42 -> :sswitch_2 + 0x80 -> :sswitch_3 + 0x81 -> :sswitch_3 + 0x82 -> :sswitch_3 + 0xc0 -> :sswitch_1 + 0xc1 -> :sswitch_1 + 0xc2 -> :sswitch_1 + 0xc3 -> :sswitch_0 + .end sparse-switch +.end method diff --git a/vendor/grammars/smali-sublime b/vendor/grammars/smali-sublime new file mode 160000 index 00000000..42b6e469 --- /dev/null +++ b/vendor/grammars/smali-sublime @@ -0,0 +1 @@ +Subproject commit 42b6e4696a3330e457c469e416b2cb67849dbb79 From 0021b9532b6b5f15e296aaae0312950af465db15 Mon Sep 17 00:00:00 2001 From: Caleb Fenton Date: Wed, 27 May 2015 11:19:29 -0700 Subject: [PATCH 490/875] Update Smali submodule --- vendor/grammars/smali-sublime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/smali-sublime b/vendor/grammars/smali-sublime index 42b6e469..0aabf9de 160000 --- a/vendor/grammars/smali-sublime +++ b/vendor/grammars/smali-sublime @@ -1 +1 @@ -Subproject commit 42b6e4696a3330e457c469e416b2cb67849dbb79 +Subproject commit 0aabf9def88029e691768d3de0fb9eaecb97d6bb From 38aa7bae3f1fb97626c50f6420a174d0a65376e0 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 28 May 2015 07:10:25 +0200 Subject: [PATCH 491/875] Fix Rust heuristic. --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 621d5635..39e286bb 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -283,7 +283,7 @@ module Linguist end disambiguate "Rust", "RenderScript" do |data| - if data.include?("^(use |fn |mod |pub |macro_rules|impl|#!?\[)") + if /^(use |fn |mod |pub |macro_rules|impl|#!?\[)/.match(data) Language["Rust"] elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) Language["RenderScript"] From f32b7bb9787827ca4804be393e68733e9adb61ce Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 28 May 2015 10:57:45 -0400 Subject: [PATCH 492/875] Fix duplicate key warning --- test/test_heuristics.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 4a156445..a13ae12a 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -48,8 +48,7 @@ class TestHeuristcs < Minitest::Test def test_pl_prolog_perl_by_heuristics assert_heuristics({ "Prolog" => all_fixtures("Prolog/*.pl"), - "Perl" => all_fixtures("Perl/*.pl"), - "Perl" => ["Perl/perl-test.t"], + "Perl" => all_fixtures("Perl/*.pl") + ["Perl/perl-test.t"], "Perl6" => all_fixtures("Perl6/*.pl") }) end From a1ea55d0069173d239ac892fe0a391d229c609d4 Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 28 May 2015 10:57:58 -0400 Subject: [PATCH 493/875] Trim whitespace --- lib/linguist/generated.rb | 6 +++--- test/test_blob.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 3386ad2e..7cbb9f9a 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -181,11 +181,11 @@ module Linguist def generated_net_designer_file? name.downcase =~ /\.designer\.cs$/ end - + # Internal: Is this a codegen file for Specflow feature file? # # Visual Studio's SpecFlow extension generates *.feature.cs files - # from *.feature files, they are not meant to be consumed by humans. + # from *.feature files, they are not meant to be consumed by humans. # Let's hide them. # # Returns true or false @@ -250,7 +250,7 @@ module Linguist return lines[0].include?("Generated by the protocol buffer compiler. DO NOT EDIT!") end - + # Internal: Is the blob generated by Apache Thrift compiler? # # Returns true or false diff --git a/test/test_blob.rb b/test/test_blob.rb index cc125b05..a86a846b 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -473,7 +473,7 @@ class TestBlob < Minitest::Test # Sphinx docs assert sample_blob("docs/_build/asset.doc").vendored? assert sample_blob("docs/theme/file.css").vendored? - + # Vagrant assert sample_blob("puphpet/file.pp").vendored? end From d17222ec916ca8682fa77cae6a4351de004fa894 Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 28 May 2015 11:02:14 -0400 Subject: [PATCH 494/875] Detect Go files generated by go-bindata --- lib/linguist/generated.rb | 6 +- samples/Go/embedded.go | 852 ++++++++++++++++++++++++++++++++++++++ test/test_blob.rb | 1 + 3 files changed, 856 insertions(+), 3 deletions(-) create mode 100644 samples/Go/embedded.go diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 7cbb9f9a..d6bf6263 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -65,7 +65,7 @@ module Linguist generated_net_docfile? || generated_postscript? || compiled_cython_file? || - generated_protocol_buffer_go? || + generated_go? || generated_protocol_buffer? || generated_apache_thrift? || generated_jni_header? || @@ -233,11 +233,11 @@ module Linguist creator.include?("ImageMagick") end - def generated_protocol_buffer_go? + def generated_go? return false unless extname == '.go' return false unless lines.count > 1 - return lines[0].include?("Code generated by protoc-gen-go") + return lines[0].include?("Code generated by") end # Internal: Is the blob a C++, Java or Python source file generated by the diff --git a/samples/Go/embedded.go b/samples/Go/embedded.go new file mode 100644 index 00000000..6d6dba8a --- /dev/null +++ b/samples/Go/embedded.go @@ -0,0 +1,852 @@ +// Code generated by go-bindata. +// sources: +// ui/css/app.css +// ui/css/graph.css +// ui/css/libs/nvd3/1.7.1/nv.d3.min.css +// ui/css/rest_explorer.css +// ui/index.html +// ui/js/app.js +// ui/js/libs/d3/3.3.5/d3.min.js +// ui/js/libs/mithriljs/0.2.0/mithril.min.js +// ui/js/libs/mithriljs/0.2.0/mithril.min.js.map +// ui/js/libs/nvd3/1.7.1/nv.d3.min.js +// ui/ts/app.ts +// ui/ts/components/metrics.ts +// ui/ts/header.ts +// ui/ts/models/node_status.ts +// ui/ts/models/stats.ts +// ui/ts/models/store_status.ts +// ui/ts/models/timeseries.ts +// ui/ts/pages/graph.ts +// ui/ts/pages/monitor.ts +// ui/ts/pages/nodes.ts +// ui/ts/pages/rest_explorer.ts +// ui/ts/pages/stores.ts +// ui/ts/tsconfig.json +// ui/ts/typings/d3/d3.d.ts +// ui/ts/typings/jquery/jquery.d.ts +// ui/ts/typings/mithriljs/mithril.d.ts +// DO NOT EDIT! +package resource + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "os" + "path" + "path/filepath" + "strings" + "time" +) + +func bindataRead(data []byte, name string) ([]byte, error) { + gz, err := gzip.NewReader(bytes.NewBuffer(data)) + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, gz) + clErr := gz.Close() + + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + if clErr != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +type asset struct { + bytes []byte + info os.FileInfo +} + +type bindataFileInfo struct { + name string + size int64 + mode os.FileMode + modTime time.Time +} + +func (fi bindataFileInfo) Name() string { + return fi.name +} +func (fi bindataFileInfo) Size() int64 { + return fi.size +} +func (fi bindataFileInfo) Mode() os.FileMode { + return fi.mode +} +func (fi bindataFileInfo) ModTime() time.Time { + return fi.modTime +} +func (fi bindataFileInfo) IsDir() bool { + return false +} +func (fi bindataFileInfo) Sys() interface{} { + return nil +} + +var _uiCssAppCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x54\xdb\x6e\xdb\x38\x10\x7d\xe7\x57\x0c\x52\x2c\x72\x81\x65\x3b\x4e\x16\x58\xd8\x2f\xab\xba\x59\xc4\x68\xa1\x2c\x22\x67\x8b\x3e\x52\xd2\x48\x22\x42\x91\x5c\x92\xb2\xec\x2e\xfa\xef\x3b\x94\xe4\x34\xee\xcd\x0f\x86\x67\xe6\x78\xe6\x9c\xb9\x70\x76\x75\xc5\xd6\xda\x1c\xac\xa8\x6a\x0f\x8b\xf9\xf5\x2d\x6c\x6b\x84\xb5\xce\x9f\xad\xe6\x79\x0d\x71\xeb\x6b\x6d\xdd\x94\xb1\x0f\x22\x47\xe5\xb0\x80\x56\x15\x68\xc1\x13\x2c\x36\x04\x41\x18\x23\x13\xf8\x07\xad\x13\x5a\xc1\x62\x3a\x87\x8b\x00\x38\x1b\x43\x67\x97\x2b\x76\xd0\x2d\x34\xfc\x00\x4a\x7b\x68\x1d\x52\x02\xe1\xa0\x14\x12\x01\xf7\x39\x1a\x0f\x42\x41\xae\x1b\x23\x05\x57\x39\x42\x27\x7c\xdd\x17\x19\x53\x4c\xd9\xa7\x31\x81\xce\x3c\x27\x2c\x27\xb4\x21\xab\x7c\x8d\x02\xee\x19\x03\xfa\xd4\xde\x9b\xe5\x6c\xd6\x75\xdd\x94\xf7\x2c\xa7\xda\x56\x33\x39\xa0\xdc\xec\xc3\x66\x7d\x97\xa4\x77\x11\x31\x65\xec\x49\x49\x74\x0e\x2c\xfe\xdb\x0a\x4b\x02\xb3\x03\x70\x43\x3c\x72\x9e\x11\x3b\xc9\x3b\xd0\x16\x78\x65\x91\x62\x5e\x07\x9e\x9d\x15\x5e\xa8\x6a\x02\x4e\x97\xbe\xe3\x16\x59\x21\x9c\xb7\x22\x6b\xfd\x49\x83\x8e\xac\x48\xe9\x6b\x00\xb5\x88\x2b\x38\x8b\x53\xd8\xa4\x67\xf0\x36\x4e\x37\xe9\x84\x7d\xdc\x6c\xef\x1f\x9e\xb6\xf0\x31\x7e\x7c\x8c\x93\xed\xe6\x2e\x85\x87\x47\x58\x3f\x24\xef\x36\xdb\xcd\x43\x42\xd6\x5f\x10\x27\x9f\xe0\xfd\x26\x79\x37\x01\xa4\xf6\x50\x11\xdc\x1b\x1b\xb8\x6b\xcb\x44\x68\x1d\x16\x53\x48\x11\x4f\x8a\x97\x7a\x20\xe3\x0c\xe6\xa2\x14\x39\x29\x52\x55\xcb\x2b\x84\x4a\xef\xd0\x2a\x12\xc2\x0c\xda\x46\xb8\x30\x3c\x47\xd4\x0a\x90\xa2\x11\x9e\xfb\xde\xfe\x4e\xce\xd7\x12\xf1\x13\x71\x7e\x4c\xfb\x31\xb2\x50\x47\xf1\x06\x5d\x98\x49\xae\xd5\x20\x77\x58\x9e\x61\x8d\x96\x10\xab\xc2\x62\x07\x6f\xb5\xda\x21\x01\x10\x2e\xa8\xda\x21\xa3\x32\x7f\x56\x0d\x17\x72\x4a\x1b\x70\xc9\xae\x66\xec\x0a\xfe\xa3\x39\x36\xdc\x56\x42\x2d\x61\xbe\x22\xc3\xf0\xa2\x20\xae\xa3\x15\x35\xfa\x73\x94\xe9\x7d\xe4\xc4\xe7\xde\x9b\x69\x4b\x3c\x83\xab\x0f\x77\x98\x3d\x0b\xff\x0b\xc4\xcf\x22\x5f\x58\xed\x1b\x39\x61\x99\x2e\x0e\x3d\x89\x1a\xc3\x71\x2c\xe1\x7a\x3e\xff\xed\x5b\x1e\x5f\xbe\xc2\x32\x9e\x3f\x57\x56\x53\xb7\xa2\x5c\xcb\x20\xf6\x4d\x79\x5d\x2e\xca\x9b\xf0\x9f\xa3\xe7\xe6\xa6\x37\x4b\xea\x4e\x54\xf2\x46\xc8\xc3\x12\xce\x53\xdd\x5a\xda\xf8\x94\x53\xb3\xff\xb6\xfa\x7c\x02\xe7\xf7\x28\x77\xe8\x69\x03\x21\xc1\x16\xc9\xf3\xe2\xa0\x9d\x23\x5c\xe4\xd0\x8a\xf2\x25\x55\x37\x52\xbc\x9d\xcf\x5f\x7c\xa4\x0d\x89\xf4\xad\xe9\x35\x4d\xcb\x56\xca\xfb\x1e\xb6\xa6\x28\x1d\x10\xcd\xf4\xb5\xba\x9c\xcb\xfc\x22\x48\x84\x08\x7e\x9f\x9b\xfd\xe5\x0a\x66\x57\xf0\x1e\xd1\x84\x85\x97\x84\x1f\x4e\x72\xc0\x87\x11\xd3\x61\x99\x84\xef\x80\xa6\x45\xf9\x47\xe3\x75\xca\x90\x66\xf5\x93\xce\x94\xe5\x30\x83\xb1\xef\xde\xeb\x86\xc8\x9a\x3d\x5d\x94\x14\x05\xbc\x29\x8a\xe2\xa4\xd7\xd7\x94\x8b\xde\xa7\x51\xcc\x50\x2c\x22\x56\xcf\xcb\xf0\x35\x39\x75\xed\x84\x13\xe1\xce\x02\x19\x8f\x7b\x1f\x15\x98\x6b\xdb\xaf\xf3\x92\xde\x1f\x85\xab\x63\xc0\x5b\x6a\x26\x2d\x2e\x15\x6f\x0d\x1d\x41\xce\x1d\xfe\x60\x5e\x74\xbc\x46\x72\x9a\x95\x50\xa1\x13\x51\x26\xe9\x81\x5c\xbd\x2c\x68\x64\x07\xc1\x3f\xe2\x77\xfc\x5d\xeb\x06\x13\xba\x8e\x9e\xd4\xc9\xd0\xfe\xf8\x6e\x68\x8b\xc5\xd0\xb8\x6f\x29\x1e\xa9\xd3\xd5\x86\x55\x90\x11\x97\xa2\x22\x49\xd1\x62\xa8\xfb\x7f\x00\x00\x00\xff\xff\x4c\xec\x61\x77\xce\x05\x00\x00") + +func uiCssAppCssBytes() ([]byte, error) { + return bindataRead( + _uiCssAppCss, + "ui/css/app.css", + ) +} + +func uiCssAppCss() (*asset, error) { + bytes, err := uiCssAppCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/app.css", size: 1486, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiCssGraphCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x8d\x31\x0e\xc2\x30\x0c\x45\xf7\x9c\xc2\x12\x2b\xad\xd2\x81\x25\x9d\x39\x48\x20\x9f\xc6\x22\x72\x23\x27\x88\x4a\x88\xbb\x03\x29\x12\x4c\xdd\xfc\xf4\x9e\xed\x3e\xb1\x80\x1e\x86\xe8\xc2\x29\x39\x92\x59\x30\xbe\xa9\x54\x9d\xaf\xe8\xee\x1c\x6a\x74\x34\xf4\x87\xbc\x8c\xe6\x69\x4c\xeb\x6d\x5b\x58\x13\xa7\x08\x3f\x33\xfc\x9b\x53\xba\x61\x55\x7e\xe1\x42\xd9\xd7\xb8\xff\xce\x9b\x5f\x1d\xed\xac\xb5\x8d\xa3\xcf\xe8\x14\x12\xa0\x2c\x93\xa3\xb3\x72\xc9\xc7\x30\xa1\x7c\x0e\xbf\x02\x00\x00\xff\xff\xd9\x8a\x57\x81\xbd\x00\x00\x00") + +func uiCssGraphCssBytes() ([]byte, error) { + return bindataRead( + _uiCssGraphCss, + "ui/css/graph.css", + ) +} + +func uiCssGraphCss() (*asset, error) { + bytes, err := uiCssGraphCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/graph.css", size: 189, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiCssLibsNvd3171NvD3MinCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xcc\x5a\x4f\x6f\xe3\xba\x11\xff\x2a\x2a\x16\x05\x1a\x40\x12\x24\xc5\x4e\x62\xe9\xf4\x5e\x1b\xb4\x87\x3e\xa0\x87\xa2\x77\x5a\xa2\x6d\xc2\x94\x28\x50\x74\x6c\xc7\xd8\xef\x5e\xfe\x11\x25\x52\xa4\x64\x67\x91\xc3\x83\x91\x0d\x43\xfe\x66\x38\x1c\xce\x5f\x7a\xe3\xe6\xa3\x7a\x0e\xf8\xbf\x11\xb8\xa0\xee\xd6\x12\xd4\x30\x48\x23\xf8\x01\x1b\xd6\xe5\x0d\x69\x60\x41\x5a\x50\x22\x76\xcd\xd3\x9f\x36\x38\x68\x01\x3b\xdc\x76\x08\x63\x85\xeb\x18\x25\x47\x98\xff\x48\x92\xa4\x1f\x47\x9a\x34\x7e\x5d\x17\xdd\x01\xb4\x30\xa2\xb0\xa9\x20\x45\xcd\x3e\x2f\x29\xea\xda\xf7\x6a\x0f\x3b\x1f\xdf\xb8\x22\x35\x40\xcd\xcd\x65\x34\x41\x8b\xdf\x97\x25\x92\x64\xca\x1e\xa3\x06\x7a\xc4\x86\x6b\xf1\xf9\x82\x98\xf1\x27\xa4\x44\x72\x0b\x3d\x3b\xc8\xd5\xfb\xe2\x0f\x83\x3f\xc0\xe5\x0f\xd4\x04\x0c\x5e\xd8\x6d\x47\x1a\x16\x9d\x21\xda\x1f\x58\xfe\x9a\x0c\x07\xb8\x2c\x52\x69\x21\x2e\xd9\x63\xb0\x3b\x32\x88\x7f\x22\xd0\x94\x07\x42\xf3\x1a\x55\x15\x86\x1e\xc5\x57\xa8\x03\x5b\x0c\xab\x9b\x4f\xd9\x5b\x40\xbb\x80\xc2\x92\x49\x65\x5b\xb6\xc0\x28\x68\x3a\xc4\x10\x69\x72\x73\x2d\xc8\xd6\x49\xad\xd4\x07\x68\x11\xd5\xe4\x33\x7a\x0c\x79\x86\xdb\x23\x62\x0f\x81\x7d\x02\xc6\x07\xf2\x01\xa9\x2d\x66\x3a\x05\x2a\xd0\x78\xa0\xfc\x07\xa8\xaa\x37\xf8\x32\xc5\xa9\x1b\x14\x00\xba\xdf\x82\xbf\x25\xa1\xfc\x3c\xcd\xb0\xf3\xa2\x53\x13\x5d\x9f\x30\x43\x9c\x44\xfe\xb1\xa7\xe4\xd4\x2a\xa1\x43\x17\xf2\x2f\x42\xd1\x27\xb7\x1d\x80\x17\xc0\xfc\xce\x4a\x0a\x19\xf4\xb0\x74\x5c\xe7\x4f\x72\x51\x73\x2a\xc8\xa5\x0e\xbf\xa4\x08\x87\x64\x41\x1d\xf9\x1d\xb3\x98\x21\x35\xbd\xec\xae\x4c\x3e\x7f\x2f\x5c\x7b\xd0\x51\xca\x63\x52\xd2\xa2\x4e\x18\x43\xc5\x27\x4f\x93\xf6\x12\x74\x5c\xbf\x51\xc7\x23\xd8\x6e\x0a\x52\x32\x41\xd0\x9d\x28\x9c\x38\xe6\xdb\x12\x76\x41\x19\x53\x02\x40\x8f\x1c\xe9\x49\x07\x67\x54\xb1\x43\x9e\xb5\x97\x05\xba\xff\x52\x04\x9a\x3d\x86\x16\xbd\xf2\xb7\xdd\x6e\x67\x73\x4a\xe3\xf5\x0c\x2f\x86\xca\xa3\x0a\xf4\x9a\xcd\xcb\xcb\x8b\x4d\x3c\x4b\xcb\x6d\x73\x0f\xc5\xa0\x4b\x7a\x47\x87\x10\xde\x41\xa6\x3d\xb2\xaa\xaa\x3b\xc8\xac\x47\x96\x65\x39\x23\x39\xe3\x87\x97\x16\xd1\xa1\x4f\x98\xa7\xab\xf6\x52\x78\x13\xc2\x84\xb0\x3b\x6d\x7b\x5a\xc9\x7f\xb3\xd9\xcc\x4b\xd2\x63\xb6\x40\x7c\x0a\xdb\x0a\x56\xf3\x64\x3e\x1b\x88\x5f\x47\xbc\x50\xf8\x7f\xf0\xa9\xfb\xbd\x77\x08\xe1\x18\xde\x04\x70\x9f\xe4\x9e\xef\xf5\xee\x23\xf3\x7e\xcf\x66\xcc\xe9\xf3\x38\x40\x21\xd0\x26\x31\x22\x35\x87\x60\xf8\xab\x2b\x01\xe3\x75\x90\xc9\x42\x0c\x65\x79\x64\x0b\xe5\xd4\x3a\xc6\xed\xf4\x5c\xe4\x10\x09\xa3\x56\x0c\x1e\xe0\x1a\xaf\xff\x82\xea\x96\x50\x06\x1a\xe6\x14\x53\xc6\xda\xcf\xf8\x8c\xd8\xc1\x88\xa7\x5d\xe0\x9c\x7d\xdc\xc2\x08\xbb\xa6\x2b\x58\x61\x37\xb4\x77\x5b\x8e\xf4\xbf\xc8\xc5\xcd\x02\xbf\xc4\xc8\x51\xb4\xf7\xd4\xf1\x34\xe2\xfb\x01\x37\x2b\x38\xbc\x0a\xa7\xb3\x2e\x64\xb3\x74\x23\x1b\xeb\x4a\x86\x9d\x24\xfb\x48\xd8\x5e\x5f\x2c\xeb\x60\x04\x00\x70\xcc\xa6\x18\x62\x8d\xbd\xb3\x59\x52\x21\x5e\x95\x5e\xfe\x2d\x6c\xbd\x3c\xd1\x8e\x57\x66\xf0\xcc\x4b\x55\x11\x27\x7e\x76\x1f\x7b\x89\x8b\xf8\xe0\x36\x68\x98\x9c\xca\x43\x54\x02\x8c\xc9\x89\xa9\x72\x57\x2f\x9d\x78\x76\xe0\x19\x02\x0b\x5f\x53\x0b\xc7\x03\xab\xb1\x67\xbe\xee\x7c\x93\xdc\x10\x9c\x59\x67\x82\x67\xc8\x16\x83\x6b\xbe\xc5\xa4\x3c\x16\x7d\xd0\x4e\x92\xbf\x16\x07\x15\xcb\xc4\x58\x1c\x8f\x11\xc2\x93\x64\xab\x8c\xf9\xb9\x8a\x78\x11\x5e\x91\x73\x38\xf9\x3b\x18\x91\x37\x29\xc0\x96\x5c\xfa\xa5\x3c\x09\x78\x38\x0f\x64\xee\x33\x72\x64\x9c\x3d\x0d\x07\x7e\x08\xfc\x45\x8e\x94\x37\x09\x3c\x34\x56\xe8\xd4\xe5\x1c\x5d\xf4\x52\x4d\xa7\x9d\x99\xfe\x4a\x87\xe4\x9f\xaf\x92\x24\x48\x79\x62\x0c\x7e\xe3\xe9\x0f\xeb\x1b\x1f\x73\x81\x88\xfa\x81\x48\x05\x36\x40\x06\xcc\xf2\x28\x2c\xba\xa9\x6e\x63\x96\xf4\x19\x90\x00\x37\xe4\x1f\x80\x01\x33\xbb\xbc\xf9\xb3\x4b\xb4\xa5\xa7\xee\x10\xc4\x5c\x40\xe8\xc4\xa6\x34\xbb\xd7\x26\x69\x72\x65\x9b\x46\xa3\x28\xcd\xdb\x48\xc9\xc6\x41\x30\xdc\x73\x6e\x2a\x95\x71\x9e\xb0\xd3\x36\xde\xf7\xa4\x7e\xa8\xee\x40\x82\x12\xd1\x12\x4f\x2a\x1a\xab\x1b\x99\x3f\x50\xe2\x75\x5e\x49\xf0\xfb\xa0\x5d\xb3\x40\xf6\x14\x35\xf1\xaa\x98\x51\xbf\x99\x20\xc9\x01\x97\x3a\xd3\x89\x12\xa5\x1b\x46\x76\xf8\x49\xcd\xd2\x64\x9e\xc8\x17\xb9\xb2\x07\x49\x5b\x22\x42\xef\xc7\x58\x20\x65\x25\x48\xb2\xf2\x21\xda\x06\xee\x81\x45\x5b\xbd\x64\xaf\xd9\x9b\x56\xde\x68\x92\x73\x4f\x04\xef\xef\xef\x4e\x0c\x5d\x3d\xd0\x7a\xef\x08\x85\x4b\x9c\x1d\xa5\xab\x30\x0c\x28\x8f\x80\x10\xff\x9d\x70\x3f\x44\x0d\x60\xb0\xf3\x98\x83\xef\xea\x74\xc9\x98\xef\x29\xb8\x3e\xf6\x34\xe0\xd9\x2c\xf0\xf6\x97\xb6\xfd\x3c\x0f\x41\x21\xae\x51\x27\xaa\x85\xff\x01\x7c\x82\x9d\x2c\x4b\x66\x5e\x2c\x1c\x23\x4c\xa7\x6a\x18\x26\x2a\xc0\x85\xa7\xfc\x10\xf9\x3a\x34\xaa\xaf\x16\x41\x33\x31\x7d\xb1\xf1\x0b\xbf\xa7\x88\xf8\x76\xfe\x5f\x68\x32\x7f\x6d\x0b\x5b\x81\xfd\x6f\xa7\x72\xcf\x56\x7d\x11\xa1\xba\xb6\x74\x13\xa6\x9b\x97\x30\x5b\x6d\xc2\x78\xbd\x79\x72\x79\xf0\xbb\x2e\xa1\xca\x09\xb3\x37\x9c\xcc\xde\x9d\xaf\x3d\xe2\xfb\x4f\x0d\x62\xb2\xad\x7a\x84\x18\x7c\xc9\x1b\xb4\xb4\x7c\x18\x6c\x21\xf6\xbd\x10\xce\x40\x3d\xa5\xff\x5c\xb1\xfc\x70\x5d\x96\x25\xee\x99\x62\xf3\x4d\xcd\xac\x04\x4d\x2e\x6e\x23\xc1\x93\x61\x23\x8f\x02\x4a\x19\xcb\x66\x0e\x26\x32\x0c\xbb\x84\x7a\x74\x5d\x56\x40\xc7\xdd\xff\x28\x7d\xd6\x8e\x4f\x1e\x44\xcb\xbb\x9e\x40\xd4\x6c\x91\x94\x50\xba\xfb\x83\xcc\x25\xa9\x4d\x69\x37\xbb\xcf\xcf\xcf\x8b\x9d\xb2\xc5\x29\x9c\x93\x6d\x2a\x0d\x8f\x6b\x86\xa6\xe5\xde\xbf\x89\x7e\xea\xf1\x7e\xc8\x39\xc0\x45\x0a\x3f\x27\x81\x98\xb9\x2a\xc5\xd8\x5e\x50\x8c\x5e\x16\x6f\x60\x6d\x55\x30\xab\x64\x71\x47\x8b\x1f\x77\x1a\x5d\x83\xf8\xd1\x35\xb8\xd8\x78\x95\x25\xfb\x5c\x3f\x4d\x99\x1e\x7a\xd4\xd8\xf4\x2a\x53\xf6\xf4\x66\xda\xf4\xd3\xf3\x12\x88\xe7\x1b\xa6\x78\x38\xcf\x44\x63\x19\x17\xa7\xb0\x36\xf8\x30\x9e\x81\x61\x25\x9a\x5d\xbb\xf3\x9d\xf8\xb8\xdb\x83\x7c\x25\x66\x7e\x4f\x70\xff\xb6\x10\x7e\xa7\x43\x9c\x51\x89\x2f\x3c\xc4\x1b\x3f\x9d\xb7\xa7\xf6\xb6\x71\xb6\xf1\xeb\x9e\x45\x95\x5c\xfc\x2c\x60\xdb\x11\x7c\x62\xb0\x18\x2b\xa5\xa8\x24\x98\xd7\xba\x32\x53\x64\xeb\x75\xa8\x7f\xd2\xa7\xc2\x58\x19\x9e\x03\x5b\x50\x55\xa2\x04\x49\x87\xee\x42\x0c\x03\xce\x16\x55\xd3\x76\xe5\x53\xb5\x8d\xa2\xd9\xe2\x46\x63\xb7\x64\xd2\x84\x76\xa0\x46\xf8\x9a\xcb\xce\xc2\x34\x2a\x5e\x93\x14\xea\x6b\x00\x8c\xf6\x4d\x8e\xe1\x8e\x15\xbe\x2f\x88\xce\x07\xc4\xa0\x30\xde\x52\x3c\xaa\x9c\x29\x68\x8b\xef\x6d\x40\x7d\xbd\xa6\xb7\x2d\x9d\x4e\x98\xda\x1f\x75\xed\x6a\x39\x7e\x7b\x5a\x56\xe3\xfa\x69\xd2\xc4\xad\x54\x38\xb5\x1a\x57\xe3\x15\x26\xf4\xbe\xcb\x68\x51\x0c\xb3\xd6\x56\xbb\xe4\x43\x5e\x8c\xeb\x21\x3e\xd8\xb8\x1c\x55\x50\x5c\x7b\x96\xf0\xd5\xe9\x0e\xf6\x9a\xc3\xd9\x5c\x36\x0f\x7d\x89\x86\x71\x68\x4c\x5f\x23\xc3\xe4\x7b\x3b\x7d\xb3\xd4\x15\x1c\x9e\x6f\x35\xa0\x7b\xd4\x70\x7f\xd1\x10\xd1\xdc\xca\xc7\x4e\x21\x7a\xa4\x1f\x08\xa6\xfd\x29\x8f\xee\x73\x5e\xb3\x7a\x0d\xf5\x4f\xfc\xba\xf6\xfb\x8d\x61\xce\x25\x14\x86\xac\xaf\x75\x4b\x18\x23\xb5\x71\xfb\x3f\xe0\x56\x7c\xe6\x9b\x7d\xf9\x3c\x90\x04\xc9\x4c\xd3\x3f\x2c\xdb\x2b\xe9\xb8\x62\x2a\xa4\x75\xf5\xb1\xd6\xfa\x70\x64\x36\x09\xb9\xd7\x35\x37\xed\xd3\xa8\x91\xba\x53\xae\xdd\x33\x14\x8f\x0a\xd6\x56\x4c\xf4\xcb\x7a\xbb\x97\xf1\x75\x42\xf8\xaf\xd8\xd7\x05\x07\xac\x1a\x2e\x52\xb0\xdb\xf0\x1f\xc9\xb6\xe0\xa1\x93\x37\x84\x00\xf7\xe2\x8d\xdf\x13\x4e\xe9\xe3\x23\xbc\xde\x3c\x59\xda\xc1\x7d\xc8\x4c\x67\x1c\x99\x0a\xb8\xef\x89\x62\x42\x4a\xe3\x03\x5f\xc5\x02\x61\xca\x9b\xf6\xf2\xa6\x52\x5e\xeb\xb2\x79\x6c\xbf\x62\x98\xcb\xeb\x9e\xac\x8c\xf5\x73\x3f\xcf\x48\xeb\x83\x8b\x69\xab\x63\x77\xce\xa3\x9e\x2a\x94\x9d\x46\xfb\x13\xaa\x60\x50\xa1\x8f\x9b\x22\x12\xc6\xdd\x1b\xba\x18\x3e\xae\xcd\x45\xae\xe2\x1d\x69\x78\x60\xcb\x7c\x09\x42\x7f\x39\xa0\xf9\xf2\xbe\x9a\x70\xbb\x1a\x94\xf6\x7c\xc7\xea\xa2\x96\xef\xce\x81\xbc\x17\xae\x09\xbf\x31\xef\x7f\x1b\xd0\x46\x39\x79\x90\x37\x4a\xee\x7f\x0a\xc1\xe5\x6b\xe6\x6c\xd9\xab\xbe\x4a\x17\x79\x57\x60\xad\x1a\x57\x7c\x81\xf2\xff\x00\x00\x00\xff\xff\x04\x28\x3d\x62\xbe\x20\x00\x00") + +func uiCssLibsNvd3171NvD3MinCssBytes() ([]byte, error) { + return bindataRead( + _uiCssLibsNvd3171NvD3MinCss, + "ui/css/libs/nvd3/1.7.1/nv.d3.min.css", + ) +} + +func uiCssLibsNvd3171NvD3MinCss() (*asset, error) { + bytes, err := uiCssLibsNvd3171NvD3MinCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/libs/nvd3/1.7.1/nv.d3.min.css", size: 8382, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiCssRest_explorerCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x54\xdd\x6f\xdb\x36\x10\x7f\xe7\x5f\x71\xc8\x30\xa4\x0d\xfc\x91\xb6\xdb\x8b\x02\x0c\x53\xdc\x0c\x13\x16\x38\x83\xe5\xac\xe8\x23\x45\x9d\x24\xa2\x14\x8f\x23\xa9\xc8\xc6\xb0\xff\x7d\x47\xc9\xd9\x9a\x64\x5f\xf5\x93\x8f\xbc\xbb\xdf\xc7\x1d\xb5\xbe\xb8\x10\x1b\x72\x47\xaf\xdb\x2e\xc2\xdb\xcb\x37\xdf\xc0\xbe\x43\xd8\x90\xfa\xe4\x49\xaa\x0e\xf2\x21\x76\xe4\xc3\x4a\x88\x5b\xad\xd0\x06\xac\x61\xb0\x35\x7a\x88\x9c\x96\x3b\x4e\x41\x38\xdd\x2c\xe0\x17\xf4\x41\x93\x85\xb7\xab\x4b\x78\x95\x12\xce\x4e\x57\x67\xaf\xaf\xc4\x91\x06\xe8\xe5\x11\x2c\x45\x18\x02\x72\x03\x1d\xa0\xd1\x06\x01\x0f\x0a\x5d\x04\x6d\x41\x51\xef\x8c\x96\x56\x21\x8c\x3a\x76\x13\xc8\xa9\xc5\x4a\x7c\x3c\x35\xa0\x2a\x4a\xce\x95\x9c\xed\x38\x6a\x3e\xcf\x02\x19\x85\x00\xfe\x75\x31\xba\x6c\xbd\x1e\xc7\x71\x25\x27\x96\x2b\xf2\xed\xda\xcc\x59\x61\x7d\x5b\x6c\x6e\xb6\xe5\xcd\x92\x99\x0a\x71\x6f\x0d\x86\x00\x1e\x7f\x1d\xb4\x67\x81\xd5\x11\xa4\x63\x1e\x4a\x56\xcc\xce\xc8\x11\xc8\x83\x6c\x3d\xf2\x5d\xa4\xc4\x73\xf4\x3a\x6a\xdb\x2e\x20\x50\x13\x47\xe9\x51\xd4\x3a\x44\xaf\xab\x21\x3e\x31\xe8\x91\x15\x2b\xfd\x3c\x81\x2d\x92\x16\xce\xf2\x12\x8a\xf2\x0c\xae\xf3\xb2\x28\x17\xe2\x43\xb1\xff\xf1\xee\x7e\x0f\x1f\xf2\xdd\x2e\xdf\xee\x8b\x9b\x12\xee\x76\xb0\xb9\xdb\xbe\x2f\xf6\xc5\xdd\x96\xa3\x1f\x20\xdf\x7e\x84\x9f\x8a\xed\xfb\x05\x20\xdb\xc3\x20\x78\x70\x3e\x71\x27\x2f\x74\xb2\x0e\xeb\x15\x94\x88\x4f\xc0\x1b\x9a\xc9\x04\x87\x4a\x37\x5a\xb1\x22\xdb\x0e\xb2\x45\x68\xe9\x01\xbd\x65\x21\xc2\xa1\xef\x75\x48\xc3\x0b\x4c\xad\x06\xa3\x7b\x1d\x65\x9c\xe2\x17\x72\xfe\x82\xc8\xef\x99\xf3\xae\x9c\xc6\x28\x12\x8e\x95\x3d\x86\x34\x13\x45\x76\x96\x3b\x2f\xcf\xbc\x46\x19\xe4\xb6\xf6\x38\xc2\x35\xd9\x07\xe4\x04\x84\x57\x8c\x76\xac\x18\xe6\xfb\xb6\x97\xda\xac\x78\x03\x5e\x8b\x8b\xb5\x58\xb1\xac\x78\x73\x70\x86\x3c\xfa\xc5\xd3\x70\x93\x7a\x93\x09\xcf\x8e\x6f\xa9\x85\xdf\x78\xf8\x1d\xa6\x65\xce\xe0\xcd\xe5\xe5\xd7\x57\xe2\xf7\x2f\xaa\x6d\x0c\x49\x2e\x35\xd8\xc4\x2b\x0e\x9d\xac\x6b\xb6\x27\xf5\x72\x07\x7e\x1e\xee\x90\x4e\x47\x5d\xc7\x2e\x83\x6f\xff\xa5\xfd\xd4\xac\x92\xea\x53\xeb\x89\xfd\x5b\x2a\x32\x49\xfe\x57\x4d\xd3\xfc\x63\xcd\x52\xcd\x7f\xa6\xda\x5e\xfa\x56\xdb\x65\x45\x31\x52\x9f\x9d\xa0\xff\xab\xf0\x3b\xe8\xde\xcd\x32\xf8\x60\x39\x9e\x7c\xb0\xe4\x7b\x69\x12\xf1\x88\x87\xb8\x8c\x5e\xda\xc0\xb3\xe2\xae\x83\xe3\xb9\x2b\x19\xf0\xea\x25\xe2\xbb\xff\x03\xa8\xad\x1b\xe2\x9f\x88\x19\xc7\xbc\x94\x3a\xbe\x28\x7c\xb4\xd7\x51\xd0\x69\xa9\x32\x7e\x6c\x86\xd7\xeb\x61\x42\x9e\xd8\x36\xb2\xd7\xe6\x98\xc1\x79\x49\x83\x57\xe9\x13\x54\x23\xfc\xec\xe9\x7c\x01\xe7\x1b\x3e\xd2\xbc\x83\x5b\x1c\x39\x3c\x45\x0b\xe8\xc9\x52\xe0\xc7\x8d\x7f\x87\xb7\x54\x06\xa5\xbf\x1e\x58\x8d\x7d\x86\x2d\xab\x40\x86\x1f\x62\xc2\xf6\xb3\x47\x8f\xa3\x8d\xe4\xe6\x61\xa7\x96\x7f\x04\x00\x00\xff\xff\x29\xec\xd5\x5f\x1d\x05\x00\x00") + +func uiCssRest_explorerCssBytes() ([]byte, error) { + return bindataRead( + _uiCssRest_explorerCss, + "ui/css/rest_explorer.css", + ) +} + +func uiCssRest_explorerCss() (*asset, error) { + bytes, err := uiCssRest_explorerCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/rest_explorer.css", size: 1309, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x55\x51\x93\x9b\x36\x10\x7e\xe7\x57\x6c\xe8\x83\x93\x89\x0d\xbe\x5c\x3a\x6d\xaf\xf6\xb5\xc4\x71\x1b\x4f\x53\xae\x63\x7c\xcd\xe4\xa9\x23\xc3\x02\x4a\x84\x44\x25\x61\x1f\x33\xfd\xf1\x5d\x01\xbe\xf8\x5a\x2e\x93\xf8\xc5\x48\xfb\xed\xee\xb7\xbb\xdf\xc2\xe2\xc9\x6c\xe6\xad\x54\xdd\x6a\x5e\x94\x16\x5e\xcc\x2f\x5e\xc2\xae\x44\x58\xa9\xf4\xa3\x56\x2c\x2d\x21\x6a\x6c\xa9\xb4\x09\x3c\xef\x2d\x4f\x51\x1a\xcc\xa0\x91\x19\x6a\xb0\x04\x8b\x6a\x82\x20\x0c\x96\x29\xfc\x89\xda\x70\x25\xe1\x45\x30\x87\xa7\x0e\xe0\x0f\x26\xff\xd9\x8f\x5e\xab\x1a\xa8\x58\x0b\x52\x59\x68\x0c\x52\x00\x6e\x20\xe7\x02\x01\xef\x52\xac\x2d\x70\x09\xa9\xaa\x6a\xc1\x99\x4c\x11\x8e\xdc\x96\x5d\x92\x21\x44\xe0\xbd\x1f\x02\xa8\xbd\x65\x84\x65\x84\xae\xe9\x94\x9f\xa3\x80\x59\xcf\x03\xfa\x95\xd6\xd6\x57\x61\x78\x3c\x1e\x03\xd6\xb1\x0c\x94\x2e\x42\xd1\xa3\x4c\xf8\x76\xb3\x5a\xc7\xc9\x7a\x46\x4c\x3d\xef\x56\x0a\x34\x06\x34\xfe\xdd\x70\x4d\x05\xee\x5b\x60\x35\xf1\x48\xd9\x9e\xd8\x09\x76\x04\xa5\x81\x15\x1a\xc9\x66\x95\xe3\x79\xd4\xdc\x72\x59\x4c\xc1\xa8\xdc\x1e\x99\x46\x2f\xe3\xc6\x6a\xbe\x6f\xec\x83\x06\x9d\x58\x51\xa5\xe7\x00\x6a\x11\x93\xe0\x47\x09\x6c\x12\x1f\x5e\x45\xc9\x26\x99\x7a\xef\x36\xbb\x37\x37\xb7\x3b\x78\x17\x6d\xb7\x51\xbc\xdb\xac\x13\xb8\xd9\xc2\xea\x26\x7e\xbd\xd9\x6d\x6e\x62\x3a\xfd\x02\x51\xfc\x1e\x7e\xdb\xc4\xaf\xa7\x80\xd4\x1e\x4a\x82\x77\xb5\x76\xdc\x95\xf6\xb8\x6b\x1d\x66\x01\x24\x88\x0f\x92\xe7\xaa\x27\x63\x6a\x4c\x79\xce\x53\xaa\x48\x16\x0d\x2b\x10\x0a\x75\x40\x2d\xa9\x10\xaf\x46\x5d\x71\xe3\x86\x67\x88\x5a\x06\x82\x57\xdc\x32\xdb\x9d\xff\x57\xce\xa7\x14\xd1\x2d\x71\xde\x26\xdd\x18\x3d\x97\x47\xb2\x0a\x8d\x9b\x49\xaa\x64\x5f\x6e\x2f\x9e\x5e\x46\x57\x10\xc9\x4c\xe3\x11\x5e\x29\x79\x40\x02\x20\x3c\xa5\x6c\xed\x9e\xd2\xfc\x5c\x54\x8c\x8b\x80\x14\xf0\xcc\x9b\xcd\xae\xbd\xc5\x93\x4c\xa5\xb6\xad\x91\x46\x59\x09\x3a\xf7\x7f\x00\x8b\x12\x59\x76\xdd\x0d\x79\x51\xa1\x25\x19\x94\x4c\x1b\xb4\x4b\xbf\xb1\xf9\xec\x7b\x7f\x30\x09\x2e\x3f\x42\xa9\x31\x5f\x4e\x9c\x16\x0c\x89\x21\x27\x4e\x26\x28\x94\x2a\x04\xb2\x9a\x1b\x97\x2c\x4c\x8d\xf9\x29\x67\x15\x17\xed\x32\x51\x8d\x4e\xf1\x79\xc2\xa4\x79\xfe\x87\x56\x57\x2f\xe7\xf3\xe9\x0f\xf3\xf9\x3f\xc3\xfd\x4a\x65\xe8\xee\x27\xa4\x14\xb1\x9c\x18\xdb\x92\x6c\x4a\x44\x3b\x01\xc7\x73\x39\xb1\x78\x67\x5d\xbc\xc9\x39\x05\x87\xf5\x3f\x61\xfd\x9e\x93\xef\x70\x24\xc7\xbd\x09\xe5\x21\xbb\x0c\x2f\x82\xef\x82\x0b\x7a\x0c\xb2\xcb\xa0\xe2\x32\x20\xab\xff\xa5\x51\x48\xab\x5f\x85\x27\xc1\xd8\xbf\x48\x38\x42\x69\xd4\x5f\xe5\x59\x68\x56\x97\xe7\x1e\x26\xd5\x9c\x36\xd7\xe8\x94\x10\x1f\x86\x82\xa8\x9c\xcb\xe0\x32\xf8\x36\x1c\x6a\xf9\x40\xf0\x45\xd8\x43\x3f\xe7\x37\xda\x88\x2f\x75\x26\xb9\x96\x9a\x0b\x3a\xce\x03\x5a\xea\xd3\xf9\xb1\x18\x96\x5b\x81\xd7\xf7\xaf\xb9\x45\xd8\x5f\x38\x79\x85\x27\x7d\x2d\xf6\x2a\x6b\x07\xbc\xbb\xa3\x25\x48\x05\x33\x66\xe9\x53\xc7\x63\x76\x18\x9a\x40\x56\x36\x34\xe9\x9b\xd0\x7f\x08\x99\x75\x2d\x1d\x9e\x4b\x55\x61\x4c\xfb\xe1\x9f\xe7\x65\x23\x41\x2a\x25\x39\xed\xcd\x58\x2c\xff\xfa\xf7\xde\x38\xee\xe9\x46\x3b\x3b\x8d\x76\xdc\x7f\xbb\x4e\x76\xb0\x1e\x20\xe3\x51\x24\x09\xdd\x8c\x7b\xc7\xce\x34\xee\x65\x88\xd5\x63\x6e\x49\x67\x1b\xf7\xeb\x44\x35\xee\xf6\xab\x33\xdd\x7b\xf5\x93\x41\x3d\x9c\x32\x7e\x00\x9e\x2d\x7d\xad\x94\xbd\x77\xcf\x1b\x21\xde\xa0\xfb\x98\xad\x68\xd9\xe9\x33\x41\x6d\xa0\xd9\x13\xf6\x11\xf1\xb8\xe5\xf9\xaf\x3e\x16\x61\x3f\x79\x4a\xd8\xbd\x73\xfe\x0d\x00\x00\xff\xff\xee\xd4\x3d\x5f\x26\x07\x00\x00") + +func uiIndexHtmlBytes() ([]byte, error) { + return bindataRead( + _uiIndexHtml, + "ui/index.html", + ) +} + +func uiIndexHtml() (*asset, error) { + bytes, err := uiIndexHtmlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/index.html", size: 1830, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsAppJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x3d\x7f\x73\xdb\x36\xb2\x7f\x5f\x3f\x05\xaa\x99\x9c\xa9\x8b\x4c\xd9\xed\xdc\xcd\x7b\xf2\xb9\x77\x6e\xec\xa6\xbe\x4b\xec\x3c\xdb\xc9\xbd\x8e\xc7\xe3\xa1\x45\x58\x62\x4b\x91\x2a\x49\xf9\xc7\xf5\xfc\xdd\xdf\x2e\x7e\x90\x00\x08\x90\x94\x6c\x39\x69\x5e\x38\x99\x48\x02\x17\x8b\xc5\x62\xb1\xd8\x5d\x00\xeb\xe1\x90\xbc\xa6\x09\xcd\x82\x82\x86\xe4\xea\x9e\x14\xf9\xd8\xff\x0a\x0a\xf3\x74\x91\x8d\xe9\x88\x8c\xd3\xf1\x2f\x59\x1a\x8c\xa7\xc3\x8c\xf2\xb2\xe1\x22\x1f\x16\xf9\xd0\xf7\x19\xdc\xfe\x31\x39\x3a\x3e\x23\x07\xfb\x87\x67\x5f\xc3\x6f\x2c\x7a\x95\xce\xef\xb3\x68\x32\x2d\xc8\x37\x5b\xdb\x7f\x26\x67\x53\x0a\x45\x02\x0b\xd9\x5b\x14\xd3\x34\xcb\x7d\x01\xfb\x26\x1a\xd3\x24\x87\xa6\x17\x49\x48\x33\x52\x00\xec\xde\x1c\xe0\xa8\x7c\x33\x20\x1f\x68\x96\x47\x69\x42\xbe\xf1\xb7\x88\x87\x00\x3d\xf1\xaa\xd7\xdf\x41\x14\xf7\xe9\x82\xcc\x82\x7b\x92\xa4\x05\x59\xe4\x14\x70\x44\x39\xb9\x8e\x62\x4a\xe8\xdd\x98\xce\x0b\x12\x25\xd0\x8b\xd9\x3c\x8e\x82\x64\x4c\xc9\x6d\x54\x4c\x59\x3b\x02\x0b\xeb\xc5\x4f\x02\x47\x7a\x55\x04\x00\x1e\x40\x85\x39\xfc\xba\x56\x01\x49\x50\x08\xa2\xf1\x99\x16\xc5\x7c\x34\x1c\xde\xde\xde\xfa\x01\x23\xd8\x4f\xb3\xc9\x30\xe6\xa0\xf9\xf0\xcd\xe1\xab\x83\xa3\xd3\x83\x4d\x20\x5a\x54\x7a\x9f\xc4\x34\xcf\x49\x46\x7f\x5d\x44\x19\xe7\x75\x30\x07\xa2\xc6\xc1\x15\x90\x1a\x07\xb7\x24\xcd\x48\x30\xc9\x28\xbc\x2b\x52\x24\xfa\x36\x8b\x8a\x28\x99\x0c\x60\x2c\xae\x8b\xdb\x20\xa3\x88\x26\x8c\xf2\x22\x8b\xae\x16\x85\xc6\x33\x49\x22\xf4\x5c\x05\x00\xae\x05\x09\xe9\xed\x9d\x92\xc3\xd3\x1e\xf9\x7e\xef\xf4\xf0\x74\x80\x48\xfe\x75\x78\xf6\xe3\xf1\xfb\x33\xf2\xaf\xbd\x93\x93\xbd\xa3\xb3\xc3\x83\x53\x72\x7c\x42\x5e\x1d\x1f\xc1\x28\x1e\x1e\x1f\xc1\xaf\x1f\xc8\xde\xd1\x4f\xe4\x9f\x87\x47\xfb\x03\x42\x81\x63\xd0\x0e\xbd\x9b\x67\xd8\x83\x34\x43\x14\x11\x32\x94\x86\x3e\x39\xa5\x54\x23\xe1\x3a\xe5\x24\xe5\x73\x3a\x8e\xae\xa3\x31\x74\x2d\x99\x2c\x82\x09\x25\x93\xf4\x86\x66\x09\xf4\x08\xeb\xcf\x69\x36\x8b\x72\x1c\xd8\x1c\x68\x0c\x49\x1c\xcd\xa2\x22\x28\xd8\xef\x5a\xbf\xaa\x56\xf6\xde\x03\xe5\x27\xa7\x6c\x7c\x11\x0d\xb6\x96\x04\x33\x9a\xe3\x60\x8d\xd3\x84\x77\x5d\x11\x30\x21\x6f\x23\xf2\x7d\x16\xcc\xc8\xeb\x6c\x91\xd0\x28\x23\xde\x15\xfc\xf2\x27\xfc\xd7\xdf\x27\xb3\x20\x8a\x7d\x90\x91\x3e\xd4\xf8\xc3\x1f\x70\x78\xf7\x92\x30\xa3\xb7\xe4\xfb\x34\xb9\xa1\x80\x94\x12\x0f\x88\xbc\xbf\x02\xea\x6c\xd0\x6f\x83\xa2\x20\x67\x59\x30\xbe\x27\xde\x0c\xbe\xff\xbd\x9c\x35\x71\x70\x95\x4b\xd8\xaf\x6e\x82\x8c\x4c\x69\x00\x9d\xdb\xa7\xf9\x38\x8b\xe6\xd8\x5d\xb2\x4b\x36\xce\x4a\x91\xc5\x01\xa4\x79\x34\x49\xb8\x14\x04\x61\xc8\xba\xcd\x6b\x61\x09\xfe\x2a\xd2\xb9\x94\x4d\x40\x7d\x15\x21\xf0\xcf\x1c\x81\xbf\xb1\xa3\xce\xde\x59\x1a\xd2\x18\xa6\x6b\x04\x1c\xa2\x59\x44\x73\xbf\xc8\xe1\xfd\x90\xfc\x35\xa3\xd7\x34\xa3\x38\x21\xe6\x41\x31\xdd\xed\xf9\xfe\xb0\xb8\x9f\xc3\xe0\xe4\x43\x18\x88\x69\x16\xc5\x3f\x97\xdf\xfc\x10\xaa\xf5\xc8\xf0\xbb\x8a\xa1\xa3\x4e\x7d\xc6\x0e\xbf\x65\x24\xec\x7c\xe5\x5d\x2f\x92\x31\xeb\xb0\xc7\x8b\xfa\xe4\xb7\xaf\x90\x79\x0c\x88\xc2\xc0\x8d\x01\x0a\x0b\x54\x48\x5e\x2e\x41\x8d\xb7\xff\xb3\xa0\xd9\xfd\xde\x04\xe6\xcc\x24\x80\x31\x57\xa1\xf0\x31\x5e\x9f\x9b\xbf\x7b\x7b\x1f\x5e\xf7\x2e\x80\xff\xdb\xf8\x1f\xfb\xb5\xb3\x34\x82\xcb\x93\xbd\xb3\x03\x86\xe5\x1b\x89\x85\x17\x55\xa8\x1e\xfa\xb2\x1f\xbe\x81\x81\xfc\xe7\x3f\xc4\xf9\x6e\x97\xfc\xf6\xd0\xef\x57\x68\x90\x4f\x75\x18\x47\xed\xaa\x5a\xc9\xae\x5f\x11\xc2\xcb\x8b\x20\x2b\x60\x4e\x27\xe1\x00\xb4\x0d\x2a\x17\x26\x17\x26\xef\xb0\xb1\x45\x16\x63\x8f\x50\xd9\xb3\xba\x06\x77\x10\x24\x0c\x8a\x00\x09\xd5\x5e\xe0\xc3\x9a\xb9\x4c\x82\x24\x85\xa9\xc7\x7e\xf8\x13\x5a\x9c\x81\x1c\x7a\x7d\xf2\x27\xb2\xed\x6f\xd1\xbf\x0c\x6a\xb5\x80\x2a\x59\x07\xbe\x76\xa9\x81\x84\x01\xf9\x23\xd1\x0d\x7f\x16\xcc\x15\x01\xa9\x89\x84\x7c\x32\x5a\x2c\xb2\xc4\xf1\x12\x1f\xd4\x29\x23\x92\xd5\x1b\x94\x4f\x50\xb2\x7a\xc4\xf8\x68\x05\x7c\xd8\xa9\x15\x3f\xf4\x75\x50\x03\x44\x10\x36\xf3\x71\x9d\xa0\x79\xe1\xfd\x86\xc3\x30\xc2\xff\x06\x64\x46\x61\xea\x85\x23\xd2\x7b\x77\x7c\x7a\xd6\x83\x41\xbc\x2b\x60\xfe\x15\x23\x58\xfa\x92\x7f\xe4\x69\x72\x90\x65\xa0\xea\x06\x6c\x54\x46\x7c\x6c\x1e\xfa\x35\x0a\x7c\xd0\x1b\x89\xc2\xa4\xd0\xc6\xa4\xe8\x9a\x78\x5f\x87\x40\x45\xbe\x88\x8b\x9a\x74\xc8\xa7\x04\x00\x19\x38\xbf\xb0\x74\xb6\x56\x52\xd6\xf0\x41\x73\x1f\x80\xb2\xe8\x32\x5a\x8c\x98\xcc\xc7\x0e\xcd\xd3\x28\x71\xd3\xc3\x38\xa8\xc0\x39\xc8\xb2\x93\xf6\xd0\xaf\x43\x8a\xe1\x08\xf5\x37\x2a\xe4\x83\x36\x3f\x4f\x28\xac\x57\x05\x9b\x8b\xd0\xb6\xd2\x37\x93\xe2\xf2\x8d\x52\xc3\xbb\x8d\x92\x30\xbd\xdd\x5f\x64\x6c\x1d\x1c\x90\x4b\x10\x2c\x5b\x57\xb1\x25\x2e\xef\x8e\x0e\xe2\xaa\xe8\x21\xd4\x65\x84\x8a\x69\x07\x3f\xff\x4a\x82\x6c\xb2\x98\x41\x63\xb9\x1f\xd3\x64\x52\x4c\xb1\xf8\xe5\x4b\x17\x2f\x79\x03\xe7\x50\x73\x93\xab\xb6\xb2\x3a\x94\x75\x1a\x6b\x34\xc4\x7c\xbd\x4f\x80\x46\x2f\xa8\xe3\x61\xb5\xb0\xe7\x00\x8b\x1f\x2e\x88\x92\x01\xfc\x8b\x31\x42\xda\x2f\x85\xc7\xfe\x3c\x4b\x8b\x14\x56\x3a\xea\xff\x2a\x46\xc9\x3d\x48\x92\xd7\xa0\x8b\x50\x0f\x01\x6c\x02\x36\xc1\x3e\x98\xca\x9e\x45\x56\xd8\xa8\xa0\xa6\x33\x61\x45\x75\x45\x9d\x6d\xda\x78\xe3\x16\x3f\x45\x73\x23\x82\x81\x24\x68\x50\x31\x6b\xa0\x71\xc5\x40\x65\xd7\x31\x0a\x57\xb4\xb5\x4a\xa9\x2c\x17\x17\x5d\xac\xad\x15\xcb\xd5\xe9\x6d\x90\x80\xb1\x97\x75\x14\x7f\xb5\x8a\x77\xc9\x3a\x6a\x1b\x05\xde\x39\x39\x62\xfc\x8b\x4b\x30\xb8\x82\xc1\x01\x58\xc4\xb1\x0b\x88\xa2\xaa\x6c\x81\xe1\x88\x0e\xe6\x29\xb8\x2d\xbb\x64\xcb\x05\x96\x2e\x0a\x18\x9a\x24\x04\xdb\xc9\x8a\xf0\xa1\x6e\x53\x88\x0e\x2b\xc2\x08\xdf\xc6\x60\x5c\x1f\x6b\xb8\x9a\x25\x13\xb5\x62\x8d\x02\xd7\x6c\xc6\xe1\x61\x4e\x10\x45\xbf\x60\xd7\x52\xd3\x67\x2c\x81\x96\xbe\xe6\x9d\x40\xdb\xa4\x0e\xc4\x79\x52\x41\x59\x84\x56\xd2\x56\x36\xd7\xa4\xad\x8d\x21\x73\x37\x68\x6f\xa7\x42\x21\x07\xd4\xd9\xaf\x36\x04\x6d\xc3\xe8\xa2\x9a\xc9\xc7\xcb\x97\x9d\x57\x99\xa6\x99\xe9\x10\x8e\x9c\x96\x73\xaf\x12\x89\x5f\xdb\xe7\xc9\xaf\x8d\x6a\xc0\xd1\x58\x39\x16\xcd\xd2\xc7\x5a\xaa\x4b\xad\x8d\xcf\x42\xdf\xa8\x4c\x5b\x85\x30\x2a\x26\xe2\x3a\xe9\x62\x83\xb9\x12\x71\x42\xfc\xd6\x43\x1c\xc3\xbe\xda\x60\x5e\x43\xc7\x3a\x72\xcd\x3d\xd5\x98\x01\xd6\x59\xd7\xd8\xe6\x53\x83\xbd\xc6\x5a\x1d\xa9\xa2\xcb\x97\x66\xaf\xef\xb6\xbe\x19\x43\xc0\xbd\xc5\xae\xce\x3d\xa6\x88\x3a\x5b\xe0\x56\x12\x45\xe7\xb9\x6d\x8c\xf8\x06\x2e\x4d\x62\x61\x4f\x7d\x96\x6b\xa3\x57\x6f\xa6\xcb\xf2\xac\x8e\x68\xdb\xfa\x6c\x2c\xbc\xf6\xaa\xa5\x04\x68\xde\x82\x77\x37\xcd\x06\x24\x9d\xd7\x8d\x6a\x41\x07\xbc\xf7\x81\xfc\x62\x91\x93\xef\xc8\x37\x5b\x5b\xe4\x6f\xe4\x1f\xa7\xc7\x47\x3e\x46\x99\x92\x49\x74\x7d\x8f\x18\xb0\x5f\xf3\x34\xc9\xe9\x19\xf8\x24\x7d\x32\x22\x66\x99\x69\x30\x57\x3e\x31\xfa\xb0\x2c\x1e\xe0\xcb\x02\xe6\x14\xeb\x45\xd2\x17\xc6\x6a\xec\x8d\x02\x54\xbe\xd4\xa2\x96\x33\x68\x1a\x8d\xd5\xe1\x4c\xf0\xe8\xb1\x81\x8f\xe6\xaa\xe1\xb7\xf0\xaf\x1d\xdc\x16\x8f\x61\x15\x70\x7d\x7e\x55\x12\xad\x45\x4b\xaa\xe2\x15\x23\x26\x08\xfe\x26\x4a\xe8\xeb\x2c\x98\x2b\xca\x4d\xa9\x54\xbe\xb5\x85\x01\x5e\x61\x54\x2d\x8d\xe3\x36\x9b\x4e\x93\xb1\xaa\x92\x77\x33\x6b\x32\x4a\x2e\x59\xb8\x96\xaf\xdb\x0d\x73\xf5\x66\x06\x30\x37\xb3\x06\x88\xf1\x14\xcc\x63\x5c\xb9\x6f\x7c\xce\x65\x3f\x86\x5e\xbd\xc2\x52\xaf\xee\x04\xcb\xc7\xbf\x33\x3c\x61\x29\xf6\xa5\xf5\x0e\x63\x8a\xa3\x55\x04\xb3\x39\x8f\x4d\x90\x21\x0f\x46\xf4\x77\x6c\xde\x75\x89\xf8\xde\x81\x38\xf4\x6f\x82\x78\x41\x9b\x2b\x2f\x72\x7a\x98\x14\x14\xbd\xfb\xe8\x86\xbe\x5e\x44\xd0\x21\xe8\x8d\x57\x64\x0b\xda\x50\x2d\x9f\xa6\xb7\x6f\xe8\x04\xdc\x83\x2e\x90\x3f\xed\xdd\x45\x79\x17\xc0\xff\xed\x02\x78\x77\x3a\x0e\x62\x60\xd7\xb7\x8c\x5f\x7e\xce\x7e\xf5\x1d\x66\x17\x1b\xb1\x30\x0b\x6e\x99\xd4\x69\xcb\x13\x8d\x29\x7a\x99\x03\x12\xe5\x87\x49\x54\x44\x41\x1c\xfd\x9b\x86\x03\x16\xdc\x65\xca\xc5\xbd\x94\xb0\x65\x4a\xab\xd6\x04\x8d\x0f\x08\x4b\x10\x86\x8c\x08\xef\xb2\x12\xa3\x06\x63\xb1\xae\xeb\xd5\xd6\x39\x0e\xe0\xd9\x22\x0e\x4f\x28\x86\xb1\x41\x86\x02\x60\x43\x0b\x1d\x38\x13\xc0\x69\xc7\x38\x2a\x0d\xf7\x79\x50\xcd\x15\xb9\xa8\xb7\x77\x33\xe3\x2b\x66\xb9\x82\xb7\x35\x87\x8f\xd9\x9c\x03\x55\x19\xaf\xd1\x23\x6b\xad\x9c\x95\x4f\x6b\xa4\xad\xce\x0a\x98\x1d\xf9\x08\xe6\x49\x15\xc7\x71\x1b\x02\xe6\xf3\x0b\xbd\xc7\xaa\x18\xbe\xeb\x5e\x69\x9c\xc6\x68\x4d\x54\x3a\xcb\x67\x25\xb9\xc7\x11\x35\xd8\x21\xe6\x13\x64\x34\x00\x53\x06\x66\x4a\xf7\x3a\xd7\x51\x1c\x1f\xcf\x83\x71\x54\x00\xe9\xfe\x76\xb7\x8a\x0e\xbb\x46\x03\x69\x90\x62\xf6\xbe\xf1\x2d\xcc\xe3\x1c\xa6\xe2\xb8\x90\x13\xd2\x3d\xf5\xe5\x83\x03\xb6\x98\x79\x9a\x60\x75\xa8\x55\x64\x41\x92\x47\x28\x56\x20\x6d\xa1\x08\x86\x78\x7f\xde\xda\xea\x50\x17\x94\x4c\xfc\xa8\x89\xdb\x64\x1f\x32\x8c\xfe\x1d\x2a\x3f\xb7\xda\x2b\xa2\xf1\x2f\x3f\xb0\x1e\x97\xaa\x8f\x33\xc0\xdb\x78\x71\x38\x7a\xf1\x76\xf4\xe2\x74\xa3\xdf\xa2\x5f\xdf\x06\x77\x6f\xa3\xc4\xbb\x0e\xe2\x9c\x76\x32\x2f\x15\x49\x55\xbc\x44\x43\xeb\xb4\x1a\xfd\xf8\xb0\xf0\x96\x70\xac\x74\x05\xc0\x4a\x5d\x6e\x33\xea\x1e\x5e\xed\xbb\xb2\x5a\x1c\xe4\xdc\x7f\x6a\xf5\xf7\x55\x60\x68\x97\xd6\x9d\x2e\xf5\x91\xb6\x34\x4c\xaa\xae\x4e\xb6\x52\x8d\x31\xd5\xc2\xd3\x7a\x91\x95\xa9\xd3\x20\xef\xcc\x4b\xd5\xe8\x37\xd9\x08\x7c\xb2\x04\x90\x9a\xa9\xe0\x4a\x08\x9a\xc6\xb9\x88\xcb\x29\x88\x7b\x41\x27\x69\x76\xbf\xbd\xd5\xe0\x32\x56\x18\xcc\xa8\xb5\x59\xa9\xec\xd2\xb8\xb2\xd6\x98\xed\x64\xeb\xa1\x62\x17\xbd\x32\xc1\x9b\x02\x5e\xa5\x6d\xe9\x8f\x55\x43\x72\xec\xa0\xb2\xa4\xe9\x26\xa2\xb7\xde\xb8\xc8\xac\xc4\xb0\xf8\x12\xbc\x93\xe3\xe3\x5e\xf2\xe4\x86\x8a\xd7\x63\xf6\xe0\x04\x29\xe9\x0d\xc0\x1c\xcb\x8b\xfb\x18\x3c\x85\xde\x6d\x14\x16\xd3\x11\xa8\x9b\xf9\xdd\xce\x94\xe2\xb1\x85\xd1\xb7\xec\x47\x8f\x3c\x0c\xb0\x5e\x7e\x33\xf1\xab\x6a\x40\xf7\x75\x34\x01\x0f\x03\x5b\xaf\x2c\x98\x07\x9b\xa5\x53\x17\x4c\x30\x4b\x69\x2b\xa1\xd0\x4e\x2f\x4e\x03\xe6\x2f\xfa\x7e\xaf\x15\xb1\x8b\xdf\xc8\x41\xb4\x9a\xe1\xc3\x35\xee\xb0\x5c\x81\x89\xcb\x24\x75\x80\x6b\xa7\x2b\x02\xce\xcc\xef\xdf\x48\x39\x6b\x47\x64\x6b\xc0\xc3\xd2\x23\xfe\x61\x13\x65\x1c\x24\x07\x4e\x86\x77\xe6\xc3\x5b\xc0\x0b\xff\x2f\xe1\x53\xcf\xfc\xd2\xb9\xab\xfc\x96\x01\x60\xeb\x2a\x85\xac\xcf\x28\x81\xec\x8b\xe6\x5a\x97\x50\xca\xc6\x6a\x55\xa6\x6e\xd6\xaa\x90\xd5\x36\xad\xe6\xd5\x56\x7e\x9b\xe6\xd9\x5a\x8a\x15\xef\xb6\x7a\x6b\x00\xdb\xbc\xdc\x39\x38\xf8\xf9\x90\xc9\xe6\x27\xee\xde\xba\x2a\x58\xfd\xf4\xd2\x21\xde\x0b\x67\x51\xf2\x01\xc4\x57\x77\x88\xab\x62\xd5\x21\x56\xbc\x5b\x05\xb6\xe6\xd5\x22\xe8\x3b\xe0\x9b\xd5\x0f\xc6\x17\xeb\x70\x81\x9f\xc0\x01\xce\x17\x33\x19\xd6\x45\x15\xac\xc7\x47\xd4\x0d\x1a\x6f\x7b\x8b\xfc\x89\xfc\x05\xff\xdb\xde\xda\x82\x69\x6a\x80\x1a\x07\x05\xfc\xbd\x0f\xaf\x41\xdf\x8c\x33\x3f\x01\x38\x66\x50\x61\x63\x63\x0c\x51\xfa\xdb\x36\xe5\x53\x92\x84\x67\xc6\xd6\x46\x13\x3b\x44\xb1\x22\x61\x45\x3a\x99\xc4\xb4\xee\x5a\x36\x19\x26\xa5\xe7\x76\x7b\x02\xdd\xc2\x01\xf9\xda\x28\x72\x5b\x28\x9a\xe7\xc7\x81\xdb\xdc\x23\x0e\x3e\x13\x01\x5b\x19\xe0\x17\x58\x4a\xc6\xae\xe4\x87\x36\xac\x31\x9d\x5a\x97\x92\xb6\x52\xe3\x3a\x66\x11\x7e\x76\x59\x91\x4d\xc6\xf7\xac\x8c\x66\x5a\x44\x4b\xdb\x35\xec\x42\xf4\x32\x54\x31\xd8\x08\xa3\x2f\xe0\x8a\xb2\xfd\xe5\xe2\x50\xfc\xd2\xa7\xbe\x5c\x91\x5c\x7d\x46\xfb\x01\xc5\x7d\x6b\x75\x9b\x3e\x4d\x16\x09\x9a\x02\x9d\xc4\x78\x1c\xd3\x20\x2b\x49\xd5\xba\x61\xa3\x60\x4d\x06\x64\x77\xdb\xb1\x71\xc1\x46\x55\xfc\x94\x16\x23\xaa\xda\xab\x45\x51\xa4\x89\x1e\x8e\x96\x4f\x69\x51\xb6\x4e\xe1\x0a\x0b\x9e\x8e\x3a\x05\x70\x72\x96\x16\xe0\x66\xf4\x1e\x69\x01\x5a\x10\x33\x42\x3a\xe1\x55\xec\x5c\x66\x10\x20\xff\xc0\x90\x3c\xb7\xb6\x04\x50\x3f\x7e\x8b\x66\x26\xd7\x91\xfb\x74\x96\xf6\x1c\x51\x8e\xba\xb9\xe2\x9b\xb6\x14\xe7\x9b\x90\xff\xf5\xa2\xe1\xd6\x31\xfc\x1f\x25\xf3\x45\x71\x8e\x73\x64\x97\xb3\xed\x02\xad\x73\xa7\x5a\x62\x41\xa5\x91\xc2\x61\x77\x94\x25\x4d\xc6\x31\xf8\xf4\xc2\xc2\x57\x96\x12\xc7\x06\x53\xdf\x42\xea\x45\xbb\x68\x5b\x8d\x73\x98\x61\xf8\x12\xca\x39\x63\xd8\x0f\xb4\x03\x95\x9f\x86\xbd\x29\x57\xb9\xca\x28\xf2\x2b\x6b\xb5\x56\xa8\x58\x9a\xd5\x3b\x03\xd4\x6d\x69\xce\xd2\x24\xc2\xe5\xf9\x71\xb6\xe6\xd2\x96\xdd\x5b\xde\x6c\x7d\xab\x83\x97\x3f\xca\xba\x73\x68\xb0\x27\x52\x46\x0d\xba\x10\x64\x78\xca\xa6\xa0\xe8\x05\x79\x17\x07\x63\x3a\x4d\xe3\x90\x66\xa6\x71\xb3\xbc\xf8\x08\xa4\x95\x00\x69\x05\xa6\xcb\x22\x28\xd0\x84\x48\x16\x1a\x62\x54\xc1\xae\x26\x48\xc2\x43\xc0\x0d\xc5\x27\x3c\x8b\xdc\xf5\x6c\xb7\x49\x06\x5a\x96\x97\x7c\x73\x73\x1d\x0e\x94\xec\xe5\x6a\xe4\x76\x3e\x3c\x7d\x04\x25\xa7\xac\x13\xb5\x29\x52\xbd\x32\x67\x09\xbe\xc9\x3b\x1e\xd2\x62\xb0\xee\x73\x03\x97\xe2\x14\xb0\xd8\x8d\xff\xcd\x16\x78\xe6\x1b\x3e\x34\x1f\x77\x81\xe3\x23\xc2\xc8\x73\xc1\xea\x53\x82\x11\xa8\x98\x4d\xf5\xd3\x32\x2e\x93\xa0\xd9\xfb\x52\x4f\x41\x0b\x39\x61\x32\x93\x0f\x2d\x6b\x72\xb7\xa3\xbb\xaf\x0f\xdc\x27\x77\x5d\x5b\x82\xe6\x89\xdd\x96\x53\xb9\x72\xc7\x26\xb4\x9c\xb1\xcd\x6b\xc2\x60\xeb\x33\xf6\xf1\x10\x8d\x4e\x31\x37\x70\xe0\x98\x1b\x76\x19\x85\x5d\xdc\x20\x26\x11\x5e\xff\x9c\xe3\xb9\x20\xbb\xe2\xb0\x58\x27\xb7\xa4\x56\xb9\x71\x27\xcc\xed\x8a\x88\xf3\x98\x40\xff\x9b\x28\x2f\xca\x1d\x2e\x03\x7d\x73\x77\xbc\x0a\x81\x38\x34\x8b\x7d\xd9\xea\x83\xa6\x6b\xec\x89\x52\xef\xbc\x8e\x62\x93\x6c\x5f\xf8\x8b\x79\x88\x77\xae\x2e\x83\x82\xfc\x55\xf2\xb9\x2a\x6b\xdd\xc2\xb3\x76\xc6\x9f\x2f\xc0\xf3\x10\x63\xdc\xbc\xfb\x73\xa9\xcd\x34\x8d\xdd\xb9\xa2\x4b\x6c\x8f\x63\x27\xc5\xd1\xa0\x20\x74\x8e\x0a\xee\x38\x0e\x0f\xf0\x8a\x0e\x36\xd8\x08\xcd\x19\xa1\xdc\x92\x71\x56\x10\xb3\x4e\xc8\xbc\xc5\x52\x6e\x3e\x0b\x6b\x6a\x0e\x4b\xcb\xdd\x0e\x4f\xe1\x14\xb1\xab\xb4\x6a\x42\xd5\xdf\xb1\x83\xda\x62\xb6\x45\x09\x51\xc7\xb4\xf1\x74\x15\x6b\x4d\x1d\x33\x9b\x34\x9c\x5b\x45\x44\x95\x41\x44\xd3\x1a\x5d\x6e\x61\x98\x31\xb0\x9d\xb4\xee\x13\xb2\xa3\x9a\xe5\x0e\x2e\xb8\x37\xb0\xc4\xa4\x13\x0c\xf9\x4e\x74\x8d\x55\x7f\x83\xb7\xd1\x9a\xa6\x60\xd9\xa4\x40\x92\xa3\xd3\x40\x0d\x94\x9b\x2a\xca\x77\xc8\xa7\xf0\x34\xfa\x37\x1d\x10\x13\x6c\xdb\x15\x20\x79\xe4\xd8\x04\x37\x60\x4d\x04\x57\x51\x1c\x15\xfa\x72\xc8\x79\xd3\x34\x3c\x92\x9b\x75\x0d\x61\xf7\x9d\x59\x90\x2e\x66\xd7\xd4\x2e\xb3\x20\x99\xd0\xcb\x71\xba\x48\x0a\xa1\x2e\x1b\xb7\x3c\x7a\xdb\x5b\x5b\x2f\x96\x71\x72\x79\x63\xa2\x73\x31\xd5\xda\x1b\x12\x17\x25\x2c\xf6\xd8\x07\x8f\xee\x94\x9d\x5c\x03\xe1\x7c\x49\x7a\x66\xbb\x6d\x1c\xcd\x28\xbb\xb2\xc9\x0f\x51\x7f\x5e\xfc\xac\xba\xb6\x76\x86\x5e\xf2\x2d\xf2\x7d\xbe\x11\xa3\xb0\x11\xcf\x57\xb9\xb8\x88\x7a\xb9\x30\xae\x56\x18\x07\xb2\x5c\x1d\xac\xa6\x21\xc3\xc0\xf7\xeb\xc1\xd3\x93\x05\xcb\xad\x11\xfb\xb4\x00\xc9\xcb\x9f\x41\x00\xda\x0c\xa7\xca\x97\x0c\xa3\x1b\x74\x26\x8f\x52\x7e\xed\x0b\x6f\xea\x52\x18\xa2\x7b\x5a\x74\xd8\x40\xb4\xa1\x72\x06\x8e\x0a\x9c\x72\x4e\x00\x09\x94\x21\x04\x7e\x09\x91\xac\x53\x70\x19\x61\x69\xf0\x7a\x20\x21\x4c\x9a\x72\x2c\x00\x63\xb2\xd4\x81\x20\x39\xfd\x91\x2b\x06\xa5\x22\x46\x7c\xe7\x06\x0e\xfd\x68\x12\x2b\xb7\x8f\x45\x17\x1e\xba\xfb\x65\x21\x27\x38\x9f\x82\xd3\xb7\x3b\x64\x6d\x82\x57\x00\xfd\x10\xcd\x63\x8f\x2e\xb4\x1d\x63\x70\x0c\xd2\x05\x08\xfc\xc3\x40\xc2\x2c\x71\xb0\xa8\x07\xd8\x5a\x2c\x3a\x7c\x1e\xfa\x17\xee\xb3\x26\x17\x0d\xed\xd5\xc7\xec\x88\x16\xb7\x69\xf6\x0b\x0e\x4a\xc9\x78\xc6\x77\xe6\x0c\x04\x61\x88\x97\xc1\xfd\x84\x43\xf5\x97\xc3\xbd\xc7\x6b\xb7\xe0\x16\x9f\x4b\xe2\x3e\xc5\x6b\x52\xa0\x9e\x83\x42\x43\x5f\x53\x3c\x9e\x10\x22\x06\xcd\x2c\xee\xe5\xda\x79\xcf\x6d\xf5\x8e\xed\xa8\x96\xfd\x72\xed\x9c\xa0\xc6\xb5\xb0\x4a\xd1\xc4\x4b\x62\x7c\xc3\x2f\x93\xbb\x10\xd7\x35\xfd\xb2\xa3\x2b\x17\x66\x67\x13\xd6\xa5\x7b\xc5\x56\x98\x71\xa3\x35\x21\x2e\xc5\x29\xb6\x8f\x54\xcf\xcb\x0e\x31\x1e\xa5\xda\x3c\xa9\x96\xfc\xee\x2c\x03\xa3\xae\x61\x51\x5d\x92\x8e\x1f\x60\x09\xb8\x27\x15\x1d\x96\xde\x56\xed\x28\x7d\xb5\x36\x61\x29\xae\x85\xab\xad\x6b\x76\x69\x17\xe3\x8d\x79\xdc\xd6\xda\x72\x82\x55\xb6\x2e\xc0\xfe\x77\x13\xa8\xb6\x1e\xf3\xa3\x4e\xea\x19\xba\xde\x8b\x9f\x36\x5f\xcc\x36\x5f\x84\xe4\xc5\x8f\xfc\x30\x9d\xb9\x9a\xa9\x2b\xbc\x16\x09\x55\xe0\xaa\x28\x98\x2f\xc3\x5e\x06\xfc\xa7\x76\x37\xa2\xa2\xb8\xba\x1e\xa1\x94\x29\x37\x24\x34\xc8\xe5\x2e\x49\xf0\xa0\x3e\x8b\x67\xad\xe9\xf8\x88\x35\xcc\xba\xda\x26\x80\x32\x60\x46\x7c\x53\x1b\x1c\x2e\x59\x49\xc9\x14\x36\xd8\xca\x0e\xb2\x29\x0a\x9e\x91\x60\xa1\xeb\x49\x8f\xae\xa7\x3c\xea\xf4\xf0\xe0\xa4\x2d\x9c\xc1\x67\xf2\x32\x3b\xcf\x0d\xd8\xd1\xcc\x50\xb6\x94\xf9\xc5\xaa\x83\x1b\xdc\x37\x3f\x6d\x8c\xa5\x3e\x6e\x1f\xda\xb2\x07\x7d\xe9\xd8\x84\x36\xb4\x8c\x8b\x58\xa9\x6d\xac\xd3\xde\xb6\x55\x5d\x9f\xfb\xb9\xaf\x0d\xab\xad\x52\x29\x62\xce\xdd\xa3\xf2\x6d\xc7\x2d\x24\x97\x85\xbd\xcc\x26\x78\xd9\xe6\xd3\x6f\x3e\xb5\x58\xf9\xd3\x6f\xb8\x3b\x81\xda\x12\x43\x97\x2e\xd3\x1c\x40\x17\x71\xa3\xd5\x7c\x7c\xf5\x33\x1d\x17\x78\xd4\x2f\xf7\x2c\xf2\xca\x23\x59\x7d\x3f\x4f\xf1\x9e\x8e\x61\xca\xbb\xbd\x2a\xf5\x61\xce\x21\xdf\x5a\x70\x36\xd0\x1e\xee\xd5\xd9\x13\x47\xcc\x76\xe7\xd7\x09\x94\xe8\xb7\x38\x13\xda\xd5\x55\x98\xf9\x45\xb6\xc8\x61\x1d\xfb\x63\x72\x95\xcf\x77\xfe\x78\x85\xd7\x8a\xf9\xf7\x36\x67\x87\x55\xaf\x3c\x0c\xb1\xed\x00\x6e\x85\x46\x4e\x93\x97\xc1\x86\x6f\x64\x56\xe9\xd0\x6c\x8f\x27\xc9\x2a\xad\x74\x89\xc1\x30\xfa\xb1\xf1\xcd\xda\x4b\xf1\xd9\xd8\xc8\x85\xeb\x5e\x10\x3e\x66\x86\x94\xaa\xd2\xb2\x1b\xed\xd5\xf4\x71\x6d\x97\x96\x10\xa5\xec\x54\x25\xb8\x78\x9a\x65\xb6\x9c\x3c\xf8\xb6\x51\x6b\x7c\x04\xa5\xf1\x94\x3a\x43\xdb\x10\x12\xe2\xe5\xcf\x83\x2c\x00\xe9\x14\x32\x65\x0b\x31\xac\xa0\x6a\x08\x9f\xb4\x0d\xba\xa6\x6d\xde\x95\xbb\xea\x4c\xf4\x89\x8c\x37\x34\xba\xda\x16\x9d\x21\x22\x3c\x52\xff\xac\x6c\x47\xdb\xc7\xa5\x49\x18\x6b\xb2\x68\x11\x45\xdb\x1e\xbe\xb4\x6b\x95\xad\x7a\x5e\x64\xec\xdf\x4b\xb8\xc7\x1c\x03\x81\xe9\x5d\x5c\xd2\xbb\x79\x9c\x66\xf4\xd9\x0f\x83\x9c\x40\xe3\x07\xa2\xed\x9a\x39\xa8\xbe\x34\x37\xbc\x99\x01\x68\x9d\xa3\xec\x8d\x29\xf9\xac\xd0\xcf\x81\xfe\x98\xfe\x93\x1d\x53\x17\x5b\xd1\x3d\x53\xd8\x55\xc8\x0f\x78\xce\xa8\x23\xec\x2b\xf4\x04\xd9\xdc\x14\xd0\xe6\x39\x41\x0e\xcc\xdc\x46\x16\xd4\x68\xc5\xcb\x40\x0f\x92\xb0\x1d\x50\x78\x1f\x6f\xd2\x49\x05\x7b\x6e\x8a\x6f\xc9\xa1\x38\x9d\x9c\x88\x1a\x6e\x97\x48\xf2\x19\xfd\x3f\x7b\x44\x53\xf3\x7b\xc0\xaa\x24\xbb\xbb\xbb\xa4\xf7\x33\xb8\x5b\x3d\x67\x82\x29\x7e\xb2\xa0\xc1\xa9\x7a\xec\xb5\x0b\xd1\x82\xdb\x27\x73\x63\x15\x55\xf1\xa3\xda\x44\x42\x1f\x90\xbd\x00\xed\x03\xfa\x83\x48\xa4\xe4\x2a\x0d\xef\xfb\x96\xa8\xbc\xc0\x72\xbe\x71\xbe\xc1\x19\xeb\xf3\xb3\x02\x03\xb2\x71\x41\xa0\xa8\xf2\x31\xa1\x84\x48\x18\x76\xa8\x60\x63\x84\xbf\x11\xc1\x85\xff\x73\x1a\x25\xde\xc6\x86\x85\x1d\xb5\x21\x07\x33\x8b\xed\x13\x63\x45\xb7\xe2\x36\x78\x6e\x01\x7e\xb0\x4b\x4b\x3e\x0e\x12\x8f\xf7\xa1\x21\xa1\x12\xbb\xd8\xc9\x0e\x56\xfc\x72\xc3\x34\xca\x90\x49\xef\xdf\x58\x40\x6e\x17\x15\x37\xe8\x12\xa0\xfc\xfd\xc9\x61\x79\x76\xd0\x33\x67\x84\xf5\x7e\x31\xbb\x05\xfc\xb5\x3e\x23\xdc\xfb\x87\x25\x29\x2f\x77\xc9\xc6\x1f\xe1\xd7\xee\x46\x6b\xdb\x1c\xe1\x32\x51\xf5\xea\x4c\x88\x7d\x65\x13\xa7\x43\xc4\xc8\x5b\x61\xd8\x59\x12\x49\xad\x1d\xa4\x3c\x55\xa2\x4c\xd8\x3a\x64\xf3\x51\x1a\xa1\xa1\x60\x0c\xd1\x01\x85\x0f\x87\x4e\xc0\xac\x98\xf7\xab\x0c\x33\xab\xc8\x0c\x59\x43\xc5\xba\x72\x6a\x09\xd6\x39\x93\x88\x3c\x2b\xf3\xf0\xc1\xab\x2d\xec\x7a\xf9\x48\x71\x86\xd9\xfc\x50\x6e\xf9\xa3\x16\x04\x23\xbc\xce\x7d\xbb\xc0\x72\xe2\xb9\x46\x64\xd9\xfd\xdc\x5b\x3e\x8c\x1b\x3e\xb7\xf7\x35\x7f\xbc\x51\x35\xcb\x87\xa9\x13\x5a\x9c\x70\x34\x3f\xb2\xc0\xa5\xd7\x43\xdb\x12\x06\x66\x13\xd5\x32\x9a\x4f\x78\xd3\x7e\x38\x8f\x83\x28\xd9\x21\x78\x0d\x16\x6a\xec\xbe\x3f\xfb\x61\xf3\xbf\x5c\xf7\x2e\x38\x69\x32\x28\xe6\xd8\xcd\xb6\x17\xcb\x1e\x09\x45\x58\x5b\x4e\x6d\x72\xd1\x61\xa6\x89\xcf\x0e\xc2\xce\x24\x12\xef\xa1\xe2\xa7\x43\xdc\xc7\x7c\xb1\x5e\x45\xe0\x45\xd5\x2f\x22\xaf\x3c\x9f\xa0\xc8\x8b\x64\xcc\x88\x77\x78\xb7\x79\x7b\x7b\xbb\x89\x31\xe8\x4d\x60\x23\x5f\x0c\xc2\x8f\x3a\x13\x84\xb1\xb8\xf6\xb9\x30\x2e\x8d\x52\xf1\xcd\x35\x1f\x30\xce\xc7\x6c\x09\x0b\xe3\xeb\x16\x47\xcd\xb6\xb4\xb6\x2d\x70\x62\xe3\xe2\xab\x5e\x49\xf3\x96\x58\x9d\x2a\xc2\x5d\x73\xcd\x4b\x52\xf9\xa1\x7f\x0f\x55\xda\x40\x9e\xee\x1f\x60\x9a\x6c\xdc\x80\xaa\x4d\xe5\xca\x6d\xed\x78\xc5\x40\x5c\x2d\x28\xac\x97\x0a\x64\x2b\xa3\xf2\x9b\x2d\xab\x55\x79\xe5\x40\x52\xa7\xb3\xca\x9a\x6d\xb4\xec\xde\x75\x44\xe3\x50\xf4\x8e\xd1\xb2\x64\xdf\xb0\xa6\xbd\x67\xf3\xea\x44\xfa\xe3\xfa\x27\x58\x74\xc3\xb5\xb9\xb5\xff\x53\xb4\xab\x30\x7a\x85\x91\xa7\xbd\xa2\x80\x09\xca\xc0\x7b\xa2\x53\x66\xd6\x5c\x67\x06\x56\x3c\x86\x76\x5f\x5a\x6d\x56\x7f\x4f\x07\xf9\x44\xef\x7b\xca\xd9\xf3\x8e\xca\x14\x6a\xc2\x4d\x73\x65\x89\x28\x6b\xf2\x4b\xd5\xc6\x4a\xd3\x00\xcf\xf7\x1a\x6a\xcb\x6e\x43\x0d\x99\xd9\xd1\xdc\x0d\xd0\x2f\xc4\x19\x3d\x90\x84\x37\xde\xfa\x9b\xd0\x5a\xe6\x41\x13\x29\xd7\x68\xec\x1c\x75\x0b\xb2\x79\x9a\x77\xc5\xc6\xd7\x9f\x66\x74\x98\x83\xbd\x23\xba\x1f\x0f\xf6\xf6\xdb\xd0\x01\xbb\x3b\xb0\x50\x20\xdc\x3f\x78\x73\x70\x76\xe0\x40\xd9\xf1\x2e\x61\x65\x54\x54\x2d\xba\xcd\x99\x92\x4e\x73\x18\x59\x1a\x28\x7b\xbf\x14\x73\x4a\x62\xe6\x47\xd7\x35\xa9\x19\xe8\x42\xf4\xfb\xbb\x9a\xa8\xeb\x8f\xa7\xbc\xa4\x58\x29\xe8\x9c\x32\x70\xe4\x7e\x19\xd1\x12\xf4\xe5\x9b\xa2\x91\xc6\xa0\x2a\x8b\x82\xfe\x73\xf8\x81\xbc\x0b\xa2\xac\x21\xa2\x8a\x46\x4e\x63\x48\x95\xaf\x2f\x3d\xd0\x21\x00\xc6\xee\xc4\x81\x82\x11\xdf\x0c\xd9\x68\x3a\xd4\x50\x6e\x84\x64\x41\x96\x35\x6e\x7e\x88\x06\x3f\x08\xf5\xcf\x1a\x02\x1d\xb5\x74\x93\x62\xdd\xef\xbd\xa6\x85\x44\x03\xea\x65\x65\x34\x68\x37\x4a\x3c\xa8\x0a\x56\x46\xf4\x6e\x51\xd2\x83\x1a\x6a\x65\x3c\xfb\x4c\x81\x48\x54\x5c\x9d\x2c\x85\x6c\xe9\x08\xb6\x21\xf8\xae\x38\xb6\x0e\xc6\x4c\x34\xa3\xc8\xb6\x8d\xc2\xce\xd6\x34\x2f\xdc\x3a\xc8\x67\xb7\x70\x6b\x91\x5e\x33\xd4\xd5\x56\x8f\x87\x7d\xf5\x20\xd5\xef\x7f\x09\xff\x6c\x17\x49\x35\x48\xfa\x39\xae\x91\xfa\x54\xfd\x94\xd7\x48\x46\xe9\x13\x2c\x90\x6c\x96\x4a\x6d\x5c\xcd\xdb\x67\x58\x29\x61\xa6\x6b\xed\x1e\x24\xab\x2f\x4e\x4f\xb4\x58\x3e\xff\xda\x64\x08\x9c\x6b\x6d\xd2\xc1\xd8\xda\x64\x14\xd9\xd6\x26\x11\x7d\x69\x5e\x9d\x4c\xa0\xcf\x6e\x7d\x7a\xbc\x63\xf9\xca\x16\x53\xd2\xea\xfc\x4e\xd6\xa5\x2f\xae\xe5\x47\x59\x35\x8d\x28\xfc\xe7\xb8\x70\x9a\x5a\xe4\x53\x5e\x3a\x05\xad\x5f\xbc\xcb\x2f\xde\x65\xfd\x59\x7a\x05\xaf\x49\xbe\x6b\x0d\x37\x01\x45\xa6\x44\xa3\xd0\xb6\x8e\xbf\x49\x27\xcd\x6b\xb8\x0a\xf0\xc8\x23\x7b\x76\xbd\x17\xa7\x93\x51\x7d\x7f\xc4\xce\x41\xb6\x09\x32\x32\x36\x47\x5a\xb7\xd7\x8c\xbc\x97\x4a\x87\xd6\xa3\x4a\x34\x1d\x02\xcd\x75\x51\x1b\x49\x9e\xc6\x4e\x9b\x5b\x4a\xe0\x2b\xec\xb1\x14\x40\xd6\xfd\x81\x7d\x41\xe3\x29\x7e\x9d\xe7\x46\x59\xfd\x98\x1d\x7b\x31\x2f\x0a\x3a\xff\xe2\x9c\xde\xc5\x1e\xde\xd8\xb3\xfd\xe1\x0f\xc6\xef\x65\xe5\x5c\x1b\x12\x97\x8c\xab\x40\x4c\xbe\xb5\x02\x9b\x6c\xff\x6e\xd2\x1e\x69\x02\xd3\x24\x2d\xd6\xd5\xa9\x71\x35\xd1\xc3\x4c\x6e\x25\xa7\x9b\xfc\x6e\x38\x53\xa9\x74\x3f\x98\x8c\x8f\x3a\x64\xeb\xc8\x11\xa6\x9e\x76\xac\x32\x3d\xd5\x4b\x8d\xa3\xa2\x2a\x80\x7e\x62\x54\x7b\x63\x1c\x1c\x35\x6a\x3d\x32\xfb\x13\xde\xdc\x5d\x5f\xde\xa5\x25\x13\xd7\x5a\xae\x27\x7d\xcc\x74\x4e\xec\xb2\xb4\x23\x9f\x93\xf2\xce\x3c\xdf\x2a\xee\x58\x77\xbb\xb5\xc4\x81\x3f\xe5\x94\x4e\x9c\xc2\x67\xca\xe9\x24\xaf\x6f\x3b\x5d\x83\xcf\x21\xa9\x93\xbc\x98\xae\x67\x75\x92\xb7\xe8\xed\x8b\x1b\x3e\xf5\xb4\x4e\x02\xd3\x8a\x79\x9d\xaa\xda\xeb\x49\xec\x24\xf1\x37\xf7\xe8\xf7\x92\xd9\x49\xf6\xe6\x31\xa9\x9d\x14\x8e\xff\x7f\xca\xed\x54\x53\x21\x5f\x92\x3b\xb5\x24\x10\xaa\x73\xec\xf3\xc9\xee\x24\xfa\xf6\xa4\xe9\x9d\x54\x9c\xcf\x90\xdf\xa9\x3e\x3c\xce\x04\x4f\x0d\x49\x50\xca\xb5\xc0\x92\x91\xc6\xad\x3b\x39\x4b\xe1\xed\xb3\x25\x25\xe2\xad\xb9\xb2\x3c\x39\x69\x59\x25\x2b\x51\x9d\xb1\x8e\x3c\x4f\x9f\x0d\x5b\x9d\xc9\x9e\xd6\xc1\xd7\xe7\x4e\xf7\xa4\x4c\xcb\x55\xf2\x3d\xd5\xa4\xc1\x96\xf0\x69\x7d\x92\xf0\xb9\x24\x7d\x62\x37\x3a\x0f\xf5\x64\x25\xd6\x0b\xcd\x5c\xe4\xca\x3b\xca\x9d\xee\x36\x3b\xea\x2c\x9b\xe1\x85\xd1\x68\xcb\x74\x64\xe2\x7f\x5c\xbe\x23\xd6\x8c\x2d\xe9\x91\xab\x99\x27\x4d\x7d\x54\x9f\x85\x42\x09\x3c\x79\xf2\x23\x67\x4b\x4f\x9a\xfe\x48\x68\xb0\x35\xe4\x3f\x72\x29\xbf\xa7\x4c\x80\xd4\xb0\xac\xad\x33\x03\x92\xd4\x57\x6b\x48\x81\xe4\x5c\x32\x36\x49\xd3\x62\xb3\xd6\x24\x48\x4a\x77\x57\xde\x9d\xb0\xaf\x65\x6d\x69\x90\xec\x36\xa1\x3d\x0f\x92\x6b\xa1\x7a\x44\x22\x24\x8e\x52\x0b\x17\x2a\x80\x4a\xfc\xc8\x2f\x03\x46\x66\x95\x4f\x2d\x19\x92\x42\x74\x95\x0d\x49\x2d\x54\xd2\x21\xe9\xb0\xab\xe4\x43\xe2\xb1\xa0\xf5\x26\x44\x32\x02\xa0\xab\xdd\x84\x57\x87\xcd\x0c\x11\x6a\x63\x24\xa4\x2c\xaf\x58\x63\x66\x45\xaa\x8b\xc5\xba\xf3\x22\xd9\x68\x7a\xca\xcc\x48\x8d\xf8\xbf\xe4\x46\xd2\x06\xa1\x53\x72\x24\x0e\xeb\xdc\x64\xaa\x5e\x3f\x63\xa6\x93\xaa\xd1\x8f\x94\x1f\x49\xa8\xd0\xa7\x4b\x90\x64\x15\xdb\xc6\x14\x49\x1d\xb3\x9d\x2a\x39\x92\x1a\xda\xe8\x10\x3b\xd5\xb9\x54\x4b\x93\x24\xc3\xc9\x1f\x2d\x4f\xd2\x92\x99\x58\xf9\x10\x8e\x14\xf0\x4e\xf9\x91\x80\xf3\xbd\xc7\xa6\x6f\x5a\x35\x87\xd3\x13\x24\x72\xb2\xb9\x34\x7a\x36\x27\x9b\x37\xd2\xd8\xdc\x33\xa5\x74\x52\xa6\xbc\x6b\x77\xb4\x02\xa9\x84\x5d\x29\x43\x1b\xa0\x5e\x6a\xdb\x51\x67\xaf\x9b\x35\xde\xc7\x50\x78\x4f\x9d\xdb\xa9\xda\x17\x32\x92\x3b\xc9\xb9\xfc\x04\xd9\x9d\x18\xe1\x4f\x98\xde\x89\xcf\x5a\xd2\x6d\xda\x5a\x15\x9e\x4c\xf1\x24\xab\xaf\xec\x25\x38\x06\xa8\x51\x3a\x2d\xc2\x69\x95\x4d\xdb\xf6\x7d\x69\xb6\x2b\x9b\xf3\xa2\xcc\xd8\xb2\x2f\x21\x57\xdb\xac\x0f\xe6\x73\xa7\x15\xbc\xaa\x09\xac\xff\xc5\xda\x36\xb8\xea\xef\x8d\xb5\x41\xca\x24\xa6\x6d\x70\x66\xea\xaa\x36\xf8\xd2\x19\x60\x80\x72\x7e\xa0\x15\x8f\xfb\xc7\xd3\x20\x9f\xf6\x76\x64\xb1\x17\xa6\xe3\x05\xfe\xa5\x7c\x3c\x08\x78\xc0\xff\x68\xfe\xf7\xf7\x87\xa1\xd7\xcb\xd2\x14\xed\x03\xd2\x63\xed\x6f\xd2\xea\xec\x0b\x9f\x91\x3d\xce\x91\xde\xa8\xf6\x57\xdc\xd8\x01\x8e\x81\x00\x12\xec\xd0\xc1\xd4\x3f\xec\x25\x01\x91\x1b\x3a\x94\x91\xc7\x4e\x05\xcc\x3b\x43\x0e\x47\x32\xdd\x9b\xa3\x46\x0d\xf5\x52\x35\x74\xde\x8c\x5c\x07\x53\xb4\x9e\xb2\xf1\xd1\x61\xcd\xf9\xa3\x81\xe6\x6e\xd8\xbc\x06\x3c\x1c\x95\x1a\x70\x89\x16\xba\xd6\xfa\x0a\xb7\x13\xff\x2f\x00\x00\xff\xff\x1f\x41\x30\x6b\x7e\x9d\x00\x00") + +func uiJsAppJsBytes() ([]byte, error) { + return bindataRead( + _uiJsAppJs, + "ui/js/app.js", + ) +} + +func uiJsAppJs() (*asset, error) { + bytes, err := uiJsAppJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/app.js", size: 40318, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsD3335D3MinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\x69\x77\xdb\x46\xd2\x28\xfc\xfd\xfd\x15\x16\x6f\xa2\x83\xa5\xc1\x4d\xde\x02\xaa\xc9\xe3\x38\xce\x32\xb1\x1c\xc7\xca\xce\x61\x74\x20\xb0\x49\x22\x06\x01\x1a\x8b\x44\xda\xd2\xf3\xdb\xdf\xaa\xea\x6e\xa0\x01\x52\xb2\x3d\xf3\xdc\x3b\x19\x8b\x00\x7a\xdf\x6a\xaf\xea\xa3\x45\x99\x84\x45\x94\x26\x96\xfd\x41\x3f\x3e\x48\xac\xc4\xfe\x90\x89\xa2\xcc\xe0\xf9\xf8\xd8\x4a\xba\xe9\x75\x22\xb2\x6f\xd2\xb0\x5c\x8b\xa4\xb8\xb9\x49\xba\xf3\xfa\xd9\xae\x5e\x5e\xc4\x02\x7f\x6e\xab\x8a\x8a\xfb\x2b\x3a\x3e\x6e\x7d\xe8\xce\xc5\x22\x28\xe3\xe2\xb7\x48\x5c\x9b\xad\x40\x46\x7a\xad\x53\xed\xba\x11\x61\x25\xac\xa8\x9a\x29\xc6\xc9\xc4\x1b\xf8\xc9\xb8\x98\xe0\x5f\x5e\x4c\xfa\x7e\xbf\xd7\xaf\xb3\x67\x66\x9f\xca\x38\xe6\x9c\x27\x13\xc8\xe1\xbb\x49\x9d\xa9\xac\x33\x1d\x45\xf9\xab\xe0\x15\xbc\xd7\xa9\x51\x9d\xfa\x21\x16\x8b\xc2\xaf\x26\xb1\x60\x82\x65\xac\x84\xb9\x4c\x33\x2b\xc8\x96\xd4\xfb\xbc\x1b\x8b\x64\x59\xac\x4e\x4f\x60\x0a\x32\xde\xb7\xd9\x5e\xca\x43\x48\x29\x79\xa1\x5e\xed\x51\x39\xce\x46\xf6\x87\xab\x20\x7b\x10\xf1\xcc\x2d\xc7\xe3\xf1\x60\x04\xb5\x4f\xa3\x19\x13\xf6\x69\x7f\x92\xf1\xc8\x1d\xf8\x25\x8f\x6e\xd5\x48\xb2\x5b\x96\x45\xcb\xd5\xff\xeb\xae\x8c\xfb\x13\xe8\x84\x4f\xdd\xa9\xbb\x72\x5b\x4f\x55\x6a\xce\xb6\xaa\xb3\x4e\x0d\x30\x15\xfb\x87\xd5\x17\x1c\x2a\x76\x8a\x2f\x07\x23\xbb\x70\xf8\xa0\x3f\xd2\x2b\x5a\xe7\x0f\xe5\x52\xeb\x12\xe2\x41\x04\xc9\xf6\x4f\x97\xff\x88\x90\xf6\x4e\x94\x88\xd7\x59\xba\x11\x59\xb1\x83\xbd\xb6\xc9\xd2\x22\x2d\x76\x1b\x01\x33\x01\x03\x88\x4b\xe1\x17\x53\x01\xdd\x4e\x60\xc4\x59\x70\x19\x0b\xff\x68\x70\x6b\xac\x6b\x0c\x87\xa0\x58\x45\x79\xf7\x82\xab\x3a\xc3\x4c\x04\x05\x6c\x30\xd8\x27\x46\xbe\xbc\x1e\x94\x95\xb8\xbc\xd3\xb1\x61\x13\x6d\x02\xd8\xa2\xd3\xfe\x0c\x1e\xaf\x82\xc9\x55\xe0\x26\xbe\xb1\xa1\x16\x7b\x45\xaa\xac\x49\x37\x8f\xa3\x50\x58\x03\xdb\x2c\xb0\x32\x26\x0e\xdb\xc3\x91\x52\xd7\xea\x2c\x4b\xb3\x4e\x8e\x99\xea\x5c\xc7\xc7\x73\x11\x8b\x42\xa8\xd7\x69\x32\xab\xcb\x6d\x2c\xb9\x9e\x09\x9f\xce\x46\xd5\xec\x3f\xa8\xca\xda\x30\x75\x65\xbe\xb2\x16\x56\x61\xdb\x7a\x15\x8c\xae\x5d\x55\xe5\xfb\x07\x8b\xbb\x6e\x72\xa0\xd4\xdc\xaa\x17\x2e\x31\x72\xab\x53\x36\x50\x45\x8e\x8c\xa3\xba\xfe\xc4\xf5\xd8\x99\x9b\xac\xfe\x7c\x86\xbb\x05\x36\xa9\x4e\x32\x40\x1d\x76\x22\xe3\xa2\x1b\x6c\x36\xf1\x0e\x8e\x4a\x75\x0a\xaa\xf1\x66\xb0\x38\xc5\x24\xf1\x33\x63\x33\x6f\xe5\xf6\x8b\x60\x62\x70\x00\x89\xad\x77\xe8\xa8\x80\x03\x13\xae\x82\xec\x59\x61\xf5\xed\x6e\x91\xfe\xba\x81\x4d\xf8\x3c\xc8\x85\x65\xbb\x45\xb5\xbe\xd5\x6c\x09\xde\x67\x19\x9f\x07\xea\x40\x8c\xb2\xb1\x18\xb9\xae\x90\xfd\x2a\x21\x01\xb6\xa9\x5b\x8c\xa0\xa1\xb2\xd1\x50\x69\x74\xe6\x12\x86\x51\xbf\x5d\x34\xde\xae\xe9\x5c\xd5\x50\xd8\x38\x64\xd0\xae\x60\x25\xf7\x06\x0c\x8e\xb3\x6e\xdf\x75\xcb\xd3\x68\x64\x5b\x05\xcf\xa6\xe5\xac\x9b\x26\xf6\xf1\x71\xa1\x27\x07\x16\xe0\xc0\xfc\x24\xb7\x72\x20\xd3\x19\xd4\x98\x88\xeb\x07\x71\x75\x5e\xa1\x3c\x37\xc0\x50\xa9\xa0\x07\x4b\xa1\xc1\xa5\x28\x60\x57\xe9\xac\x7b\xc0\x67\x38\x49\x8f\x8f\x53\xa8\xc0\xb7\xe0\xc1\xc2\x27\x8e\x8b\xcd\x04\x2c\x96\x9c\xc6\x3e\x74\x5c\x74\xa3\x64\x2e\xb6\x3f\x2d\xac\xd4\xb6\xbb\x61\x9a\x84\x41\x61\xe9\x0c\x00\x8a\x6c\x9b\x65\xdd\x4c\xac\xd3\x2b\x81\x7b\x98\x95\xc7\xc7\x42\xee\xe9\xac\x9b\x63\x0f\xd8\x07\x68\xa2\xbc\x85\x24\x80\xeb\xcc\x80\x30\xe7\xb8\xe5\x82\xae\xb8\x42\x6c\xb4\xc9\xe8\xf7\x1b\x89\x76\x2c\x63\xc7\xbd\x35\x37\x33\x83\xd5\x57\x45\x46\x09\x6c\x84\x3c\x2d\xb3\x50\xbc\xa0\x77\xbb\xe0\xc9\x01\x40\xf6\xa2\x09\xf8\x70\xfe\x2e\x98\xdc\x15\xed\x39\xc1\x8d\x71\x0a\x20\xb8\x98\x56\x29\xb0\x3b\x66\xfc\xda\x98\x47\x98\xf2\x45\x3d\xe5\x00\xf7\xf7\xf7\x3c\xac\x42\x91\xed\x14\x1c\x2f\xcd\x3e\xd6\x9d\x2f\xbb\x05\xb4\x21\xa0\x3f\x4c\x7f\xe3\x25\x2b\xa6\xf0\x1d\xa0\xe8\x4c\x6d\x08\xac\xfe\x16\x40\x6d\x10\xc7\xbb\x6a\xae\x00\x13\xdd\x36\x26\xf2\x99\x71\x26\x77\x00\xe7\xd9\x45\x00\x93\x5d\xa7\xbf\xaa\xd3\x3b\xfa\x63\x07\x8e\x1c\x34\x94\x2e\x1e\x24\x70\xf2\x8c\xe3\xaa\xea\x39\xc3\x7a\x70\x3f\xda\xc6\x39\x78\xfe\x1f\x54\xb4\x3d\x54\xd1\x7b\x85\x5c\x6a\xba\x42\x41\x1f\xb9\x91\x9e\x15\x45\x16\x5d\x96\x08\x7d\x6c\x93\x9a\x38\x9c\xe9\xd5\x39\x20\xa0\x7c\x13\x84\x82\x01\xda\x4b\xc3\xc0\x84\x57\xa5\x2e\x04\x7b\xd1\xa8\x16\x5a\x37\x69\x8c\x03\x79\xf6\x6b\x6d\x94\x49\x15\x64\x13\xfc\xae\xc3\x2b\x09\x1e\x31\xb9\x63\x5c\xfe\xa1\x5e\x09\xdb\x44\xd8\xff\x4d\x0b\x07\x26\x65\xbf\xc5\x03\x63\x84\x1e\x68\xa8\x83\x9b\x35\xc9\xbb\xef\xca\x20\x8e\x16\x08\xf7\x99\x6c\x10\x40\xb5\xcc\x3c\xc9\x7c\xe1\x1f\xd8\x08\x75\x86\xc0\x4f\x7d\xfd\x1c\x01\x10\xa8\x06\xf7\xae\x41\xab\x40\x77\x00\xff\xc0\x10\x36\x31\xf4\xc5\xea\xfd\x3b\x77\x7b\x4b\xd6\x79\xd0\x31\xa6\xe3\xa5\x59\x02\xce\xf0\x1b\xb1\x7c\xb1\xdd\x58\x1d\x6b\xe2\xff\x7d\xf3\x6f\x28\x61\x77\x5c\xe8\x70\x26\xde\x95\x29\x4d\xb0\x8b\x49\x98\x70\xf3\x85\xdd\x61\x9d\xa5\x59\xd9\x2f\x0d\x12\x01\x28\x04\xdd\x85\x7c\x13\x47\x85\xd5\x83\x1a\xa1\x0b\x46\x81\x37\x07\x36\x6c\x8d\x61\xbc\x01\x41\x8e\x72\x64\x27\x00\x2f\xe4\x3a\x15\xad\x9d\x6b\xe6\x06\xd0\x73\xd7\x9a\xee\xd5\x03\x00\x20\xe1\xd8\xdf\xee\x3a\xd8\x58\xdf\xd8\x23\x89\xb7\x92\x0a\x9f\xdd\x75\x1c\x0b\x5c\x9e\xba\x0f\xdf\xe0\x90\x25\x08\xc4\xa9\x1c\xb5\x81\x16\x41\x32\xc4\x82\x00\xf1\xc3\x38\xc8\xf3\x97\x51\x5e\x68\x64\x98\x4d\xca\x6e\x30\x9f\xe3\xb6\x2d\x35\xb0\x4f\x74\x57\x04\x62\x9a\x7a\x17\x77\xa8\x74\xc7\xbe\xb9\xe9\x74\x46\xd9\xc4\x02\xf2\x36\xc8\x8b\x1f\x10\x89\x00\xd0\x2d\xba\x85\xc8\x0b\x00\x91\x37\x37\xa2\xb9\xfb\x55\x39\xf6\xce\x2a\x5d\x58\x7a\x17\x48\x2c\xdb\xbf\x3b\x4f\xb5\x5b\x0a\xda\x28\xb6\x09\x5e\x5e\x6b\x6a\x64\x1f\x76\xe4\xc5\x2e\x16\x6a\x08\x35\xfd\x7a\x10\x60\x50\x4e\x68\xbe\xce\x46\x95\x36\xe1\x86\xa4\x6e\xee\x3f\xa1\xd9\xe4\xbe\xa6\xfd\x3b\x5b\xcb\xcc\xd3\xa8\x8e\x5e\x76\xf8\xc0\x35\x0e\xd7\xaf\x07\x36\xab\x41\xa2\x36\x08\x54\x3d\x31\xf0\x91\x17\xcd\x59\xf8\x34\xe0\xd3\xac\xd8\xd7\x75\x89\x76\xc7\xef\x80\x14\x25\x50\x7d\x55\xab\xff\xec\xd1\x52\x72\xc3\xd2\x0c\x35\xb8\x57\x40\xe0\xf4\x31\x09\xd6\x82\x00\xd8\xaf\x6f\x7e\xd0\x5b\x1a\x00\xa2\x22\x5e\x15\x93\x0c\x60\x0e\x00\x1c\x4c\x74\xf3\x73\x63\xd9\x45\x8d\xb1\xf6\x5b\xdb\xab\x6e\x0f\xdf\xdc\x8b\x14\xad\x7d\x50\x6a\x2b\xa0\x08\x6c\x52\xdd\x87\x6f\x2b\x62\x9f\xba\xb0\x09\x32\x6c\x2d\x9d\x8b\x51\x82\xec\xbb\xdc\x39\xcf\x57\x51\x3c\xb7\x24\x42\xad\x4a\x7e\x6f\x70\xc9\x17\x17\xf3\xa0\x08\x2e\x2e\x80\xc3\xa9\x33\xfc\x64\x40\xcf\x7d\x1c\x7d\x19\xc8\xe5\x4d\xcc\x43\xf4\x83\x51\xa4\x4d\x28\xdd\xdc\xc0\x98\x84\xcd\x4c\x0e\xb8\x9e\x3f\xa0\x00\x27\xf0\xa9\xab\x7b\xc2\x44\xf5\x68\xfb\x47\x85\x77\x24\x8c\x66\xfe\x6c\xf1\x99\x44\x98\x25\x26\xb5\x2e\x5c\xd7\xd6\xc9\x25\x50\xa4\x08\x1b\x81\xc0\xed\xb3\x80\x47\x3a\x5f\x30\x4e\x47\x29\xe4\x03\xf0\x15\x4d\xd3\x19\xd2\xd4\x56\xc9\x52\xe8\xd5\x01\xf6\xe8\xaf\x36\xbd\x74\xde\xa4\x97\x7e\xab\x40\x25\x13\x7b\x70\x12\xf8\x7c\x16\xc9\xe4\x14\x7a\x90\x00\x73\xde\x2d\x37\x30\x3a\xc1\x42\x5e\x71\x19\xd8\xdf\xe8\x88\x0b\x20\xac\x05\x8f\x80\x6a\x05\xf6\xbf\x1c\x73\x98\x1a\x20\xfc\x4b\xa0\x9a\x47\x47\x56\xca\x83\x69\x81\x5d\x75\xdd\xe2\x34\x1c\x55\x3d\x4d\x8d\xd9\xf9\xe3\x20\x24\xab\x4f\x05\x8c\x75\x44\x95\xd6\x24\x00\x11\x9a\x08\xbc\x05\xec\x60\x2a\x5e\x74\xbf\xb0\x99\x79\x4e\x61\x82\xf6\x8f\x7a\xc9\x43\x58\xc6\x2c\xa8\x05\x18\xc8\x91\x76\x61\x97\xc6\x72\xbb\x11\x15\x87\x68\x60\xaf\x05\x59\x27\xd0\xaf\x65\xf7\x0b\xdc\x16\x25\x70\x91\xc5\x3e\x9c\xc4\x53\x6b\xa2\xee\xbf\x2f\x2e\x60\x42\xa7\x7f\x77\x67\x07\x90\xf7\x17\x9d\x9a\x87\xcb\x34\x0f\x6b\x23\x3f\x08\xac\xcd\x3a\x28\xc2\x95\x25\x6c\xdd\x73\xea\x41\x06\x53\x71\xd7\x34\x14\xd3\xc1\x8c\x51\xff\x9a\x33\x91\xcd\x6e\x89\xb9\x4a\x79\x07\x3b\x03\x58\x07\xd7\xb4\x62\x79\x3a\xdd\x8e\x0d\xcb\xfa\x05\xec\xaf\x3e\xca\xd4\x78\x52\x71\x46\x81\x2d\xf1\x5f\xcc\xdf\x06\xc4\x6a\xd5\x38\x35\xa6\xac\x31\x14\xfc\xda\x66\xc1\x84\x80\x9c\x5f\x4c\x2e\xfd\xa8\x9e\x93\x2f\x1a\x92\xb4\x1a\x0b\x57\x18\x45\x33\x0a\x15\xd5\x2f\x80\x3b\xe8\xcf\x24\x68\xd0\xc7\x69\x84\x7c\x46\x62\x42\xe8\xe2\x00\xbf\xd0\x90\x12\x7d\x2d\x1b\x96\x67\x4d\xf6\x62\x6f\x8f\x27\xe6\x16\xa3\xe3\x98\x89\x18\x76\xf8\xfc\x17\xe2\x59\x46\x19\x49\xb4\x00\xc6\xdd\xdc\x3c\x3d\x86\x2d\x92\xae\x11\x56\x69\x68\xf9\x3a\xcd\x23\x09\x14\x6c\xc2\xf2\x72\x07\x35\x81\xcb\xef\xf5\x48\x3b\xdd\x79\x16\x2c\xf3\x72\x03\x2c\x60\x9e\x7b\x1d\xf7\x81\xeb\x3e\x0b\x80\x6f\x06\x64\x1f\x85\x6f\x3b\x6e\x06\x67\x1e\xc6\x92\xc3\xb2\x85\xc0\x4f\xe2\xb2\x03\xaf\x6a\x75\x8a\xb4\x0c\x57\xb8\xd4\x98\xe5\x5c\x7e\xa3\xaa\x80\xb3\x2a\x8c\x6f\xb2\xa0\xf1\x15\x99\x7d\x89\x96\x5e\x04\x30\x92\x17\x01\xef\xa4\x89\x99\x2b\x42\x24\x72\x34\xf0\xb7\xc8\xe8\x22\x62\x66\x9d\x32\x17\xd9\x39\x65\x01\x5a\x83\xbd\x08\x14\x04\xe0\xb8\x64\x2a\x4f\xc0\xd3\xe9\x8b\x60\x36\xa2\xbf\xbc\x93\xa4\x89\xe8\xdc\x1e\x98\x5a\x68\x3d\xea\x12\x24\x21\xd9\x0a\xa3\x4e\xc8\x42\x08\x87\xf4\xdc\x1b\x60\x9a\xb2\x97\x32\xfb\xed\x48\xbd\x19\xe9\xc0\x49\x33\xe4\x99\xd9\x11\x80\x19\xa0\x21\x7e\x89\xd6\x22\x2d\x91\xf7\xee\xdb\xe6\xda\xff\x8b\x58\x8c\x0f\x02\xe5\x27\xc9\x12\x96\x13\x67\x50\xe4\x04\xa4\xda\x1f\x61\xaf\xc9\x0d\x8e\xcb\x4f\xd8\xf0\xfc\xb7\xef\x14\x06\xbc\xb9\x49\x70\x0e\x33\x85\x17\x21\xe1\x75\x1a\x25\x85\x3e\x8d\xed\xef\x16\xcd\x78\x7f\xfc\x2a\xd0\xc2\x4d\x3a\x2d\x34\x0f\x79\x98\xa5\x71\xfc\xc7\xcd\x8d\x7e\xfc\x13\x0e\x85\xb1\xdc\x9d\xcb\x74\xbe\x03\xfa\x1c\xb6\xb8\x48\xe6\xb0\x98\x57\x40\xc8\xcb\x09\xb7\x3e\x6c\xd4\x4e\xf3\x3b\xc1\x65\x9e\xc6\x40\x21\x76\x58\x91\x6e\xfc\x3e\x23\x51\x71\x9f\xad\x61\xbf\x46\x09\x3c\x6c\x00\x6c\x45\xc9\x12\x9e\x2e\xd3\x6c\x2e\x80\x8a\x92\xcb\xc3\x3a\xd1\x7a\x93\x66\x45\x90\xc0\xba\x8e\xe4\x92\x66\x30\x74\xf8\x3f\x1e\xea\x73\x18\x88\x48\x9e\xff\x72\x06\x43\x78\x15\x70\x80\xd9\xdd\xc5\xcd\x4d\xda\x15\x86\xd0\x03\x66\x58\x2d\xf2\xab\x60\x02\x74\xe9\x16\xa6\x72\x13\x2c\xc5\x1f\x00\x6d\x76\xea\xf9\x4f\xdb\x57\x29\xb0\xa7\x61\x02\x75\x9a\x7c\xfb\x13\x20\x26\x2f\x11\xa8\x65\xd1\xf6\x97\x2c\x48\x72\x00\x7c\x6b\x20\x32\x9a\x3d\x00\xa8\x74\x25\x32\x94\x73\xd9\x6c\x0a\xb5\x61\x1d\x33\x82\x5e\x08\xb2\x20\xef\xd7\x69\x99\xe0\x28\x9f\x53\xad\x6f\x70\xfa\xf4\xd9\x9e\x56\x2d\x7b\x88\xa3\x16\x85\x97\xa8\x0f\x2f\xe1\x85\x55\x3d\x81\x54\x98\xc0\x2a\xf1\x97\x74\x63\xd0\x8a\xdf\x19\x34\x92\x96\xdb\xec\x6d\x9a\x6e\x34\x87\xef\xd1\x22\x12\x06\x61\xf7\xa3\xc9\xbc\x8d\xfb\x93\x81\xdf\x97\xba\x03\x43\x02\xf9\x73\x53\x84\x68\x21\xb4\xf3\x50\xca\x6b\x3b\x96\x00\xf0\x0d\xcf\x83\x99\xed\x11\x28\x97\xcf\xf8\x5d\xe7\xa9\xeb\x49\x1a\x9a\x90\xf1\x60\xd2\xf7\xbd\x01\xb4\xf6\x2e\xf0\xcf\x82\x62\xd5\x0d\xc2\x34\x6f\x90\x7e\x45\xbb\xc0\x9b\x40\x96\xf0\xde\xe8\x22\x79\x94\x34\xa9\x45\xa3\x88\x05\xb0\x9e\x72\x09\xc0\x69\x40\xd9\x79\x83\x5e\x62\xf7\x86\x06\x89\x7d\x4f\x66\xb7\x9d\xb9\xbc\x2b\xf3\xd0\xa1\xba\xed\x1e\x30\xac\x03\x93\x09\x29\x1a\xa2\x69\xca\x4f\xdd\xed\x0d\x6d\xdb\x31\xa8\x9a\xb4\x68\xc8\x2d\x83\xa2\x25\xb2\x45\x58\x0f\x78\x16\x20\x60\x12\x22\xe5\x1a\x14\x13\x49\x56\xac\xb8\x2b\x71\x7c\x37\xe7\x6e\xc1\xae\xd2\x48\xd2\x9f\xdd\x98\xbb\x00\x8b\xfd\x03\x92\xc5\xa4\x55\x11\x62\x7d\x6c\xb0\xbb\x02\x92\x39\x47\xb2\xd9\xf6\x2f\xe1\x70\x23\xbe\xbd\x28\x58\x50\xd8\xbe\xce\xd2\xe2\xb1\xc2\xe2\x00\x05\x64\x2e\xd7\xc9\xe3\xfe\x24\xf1\x38\xfc\xe0\x9e\x42\xcc\xeb\xe2\x8b\xcd\x1e\xe3\x16\x8b\x5c\x2b\xf5\x22\x98\x87\x1e\xa4\x0f\x9e\xe2\xa7\xd4\x1f\x3e\x34\x93\x2c\x78\xf5\x60\x11\x20\x43\x74\x50\x2b\xf5\x80\xe6\x34\xc3\xc3\x65\x0d\x1f\x3d\x72\xb0\x7d\xfb\x56\xc9\x59\x2b\xf2\x92\x6b\xdd\x15\xec\x37\x2b\xf9\x92\xfa\x70\x0a\x5d\x73\xb1\x67\x28\xb7\x94\xe9\x05\xa6\xf7\xc7\xa8\x2a\x2b\x60\xab\x0d\x7c\x24\x8a\xfa\x63\x01\xef\x82\xde\x05\x90\xb6\xdd\x47\x63\xe0\xac\x84\x63\x0d\x5c\x98\x19\xe1\x16\x9e\x70\x0a\xc0\x82\x43\x47\x78\x29\xc3\x99\x5a\x03\x79\x8b\x1b\x61\x88\x74\x25\x8a\x66\xe0\x8f\x87\x6f\xa6\x8a\xe5\x63\x2b\x1c\xef\xaf\x70\xf8\x1f\xad\x70\x2c\x57\x38\xd6\x2b\x1c\xca\x15\x6e\xe4\x59\x14\x93\x25\xa6\xc7\x90\x16\xc0\xbf\x4b\xdb\x87\x77\xd8\xb1\xd7\xf4\x17\xa9\xbf\xe5\x25\x71\x46\x80\x17\xbb\x4b\xca\x61\x9b\xb9\x75\x0b\xad\x0d\x92\xb7\x47\xa9\xd7\x81\x88\x30\x98\x1e\x3d\xef\x44\x7a\xc3\x3b\xd6\xb3\x00\x2a\x82\xd1\xb2\x12\x30\x70\xf8\x37\x81\x0d\x33\x5c\x1f\x1e\x78\x33\xda\x58\x7c\x6c\x26\x17\x7a\x26\xe3\x6a\x26\x83\xe6\x4c\x5e\x7e\xda\x4c\x2e\xe4\x4c\x2e\x5a\x33\xd5\x9e\xed\xbc\x35\xd3\x72\x0e\xd7\x45\x6b\xfe\x7c\x5d\x57\x6b\xce\x56\xd5\x78\x24\x82\xc7\x9d\xf4\xd8\xee\x0d\x06\x8f\x01\x11\x65\x6e\xd1\x7b\xd4\x47\xd1\x7f\xe6\x89\xde\xb0\x5f\x29\x07\x4b\xbe\x41\xc1\x8d\xf3\x47\x00\x24\x21\x3c\x66\xb6\xf3\x45\x00\xd9\xe0\x11\x8e\xd1\xd7\x81\xde\x98\xf3\xc2\x3a\xe9\xc2\xa1\x7a\xf8\xe8\xe1\xd0\x29\xbd\x41\xf7\xd1\xc9\x93\xc1\xc9\x53\x38\x38\x5e\xf7\xe1\x57\x4f\x1f\x9d\x0c\x1e\x3a\x11\x90\xe1\x85\xe5\x75\xbf\x7a\xfc\xd5\xf0\xf1\x63\x07\x38\xa2\xee\xd3\x27\x8f\xfb\x83\xfe\x53\x27\x73\xbb\xfd\x87\x83\x47\x8f\x1e\xab\x4c\xdd\x3e\x3c\x3f\x3c\x79\x08\x55\x75\x87\xfd\x87\xfd\xe1\xa3\xaf\x20\xcf\x00\x3e\x3f\x19\x0e\x1f\x0d\x21\x97\x31\xb2\x65\x7b\xa5\x10\xdb\xa8\x9d\x23\x41\x39\xcc\xe2\x10\x16\xbf\xb0\x9d\xd7\x81\x5a\xf0\x77\x00\xa1\x0b\xa7\x70\x85\x23\x90\xfe\xd2\x3b\xad\xdf\xeb\x33\xfc\x67\x02\xfe\x4d\x13\x57\x40\x87\x1e\x3f\xfd\xea\xa4\x7f\xf2\x70\x92\x38\xf0\x1f\x9c\x7c\xef\x61\x6f\xf8\x95\xdd\x7b\xd2\x7d\xf2\xf4\x49\xff\xe4\x89\xa1\xca\x6b\x15\xed\xf7\x9f\x3e\x7d\xf4\x78\x42\x5d\xd8\xa4\xd7\xd0\xef\x41\xef\xc4\xf6\x75\x41\x27\x71\xb1\x26\x43\xa9\x57\xdc\x0d\x92\x60\x92\xfa\x27\xfd\x87\x63\x9e\x4c\x06\xc3\xee\x57\x80\x2b\x7c\x9c\xa0\x47\x4e\xa3\xf6\x61\xf7\xa1\xed\xe1\x67\x73\xc6\xd6\x1f\xdb\xdb\x6b\xbd\xb7\x33\xfe\x3f\xff\xa3\x36\xf7\x12\x1e\x9b\xbb\xfb\x7f\xfe\xe7\x53\xb6\xf7\x5a\x6e\x6f\x6c\xd3\xdc\xa6\x1a\x15\xac\x0b\x16\x2a\x54\xb0\xde\xdf\xb5\xbb\xa2\x25\x02\xc6\x3c\xe3\x31\x6c\x5a\xf8\xfb\xf4\x18\xe6\x81\xc1\xbf\x63\x73\xb9\xce\xcc\x22\x54\xde\xed\x74\x0c\x25\xa3\x99\x3c\x78\x0c\x48\xa1\xd3\xef\xb8\x34\x67\xeb\x60\x6b\xe1\xd2\x03\x39\x74\x0e\x64\x59\xb2\xb4\xe0\x84\x48\x6a\x60\x0d\x00\x02\x1b\x6b\x25\x1a\xea\xc2\xe6\xf1\x42\x81\x81\x92\x57\xf4\x81\x27\xec\x13\xe9\xcc\x7b\xd6\x34\xf0\xde\x03\xe7\xfb\x6f\xcb\xea\x3a\xf6\xbf\xed\x5e\x04\x78\x5e\x84\x78\x84\xf3\xeb\x08\xf9\x5b\x38\x8b\xd3\xe1\x4c\xc9\xa4\x3b\x0c\x58\xd1\x0c\xc9\x9e\x0f\x61\x90\x8b\xce\x2a\x8f\x3b\xbe\x96\x78\x59\xc0\x7f\xe5\xe2\xdb\x38\x05\x0c\x5a\x22\x39\xc4\x1a\x1f\xa0\x50\x6f\xd0\xef\x37\x3f\x0e\xe5\x47\x7b\x44\xd5\x01\xf0\xad\xaa\x2b\xac\xb7\xba\x9a\xb7\xaa\xb8\x7c\x80\x22\x5a\xd4\x65\x45\xfc\x3b\xc5\xf7\xc2\x2c\xbc\x4c\xaf\xb5\x0e\xd6\xb6\x27\x00\x0f\x60\x75\x23\x58\xdd\x08\x57\x57\xf1\x5a\xc9\xcd\x4d\xe7\xff\x74\x8e\xe0\xa1\x56\xdf\x02\xd9\x4f\xd0\x19\x80\x08\x76\xed\x07\xa4\xdd\x2a\x15\x2e\x83\x49\x85\x1c\xd6\x43\x34\x1b\x51\x1b\x6a\x62\xa5\xdc\x3a\x79\xfa\xb0\x7f\x1c\xd9\xe3\xf1\x43\x98\xd6\x14\x7e\x6e\x50\x12\x33\xc4\x8f\xf0\x1b\xe0\x87\x00\x26\x7a\xf0\x08\xde\x43\x1e\x9e\x9e\x3e\xbc\x09\xe1\x60\x19\xd5\x20\xc3\xc5\x61\xd1\x9e\x00\xc8\x7b\x2a\xeb\x82\x6d\x14\x70\xeb\xf1\xa3\xa1\x7a\x7f\x0a\x45\x71\x3b\x01\x78\x01\xde\x0a\x1a\x60\xa1\x79\x6c\x2e\xf6\xd7\x98\x57\xbb\x23\xe9\x61\x51\x56\xc8\x1f\x41\x3f\x36\xf4\xb5\xda\x59\xb2\x28\x72\x8c\x1e\x76\xd1\x4a\xdd\x08\xa8\xc0\x4a\x55\x0b\x6c\x04\xd2\x00\xe1\x24\xe8\x51\x92\x0f\xbf\x43\x0f\xa9\x15\x64\xc6\x39\x4f\xe1\x44\x7a\xc2\xee\x05\xae\x25\x80\x94\x78\xec\xf7\x6d\xbf\xa0\xcf\x02\x29\x99\xc0\x1d\x22\x20\x2a\xf0\xe9\x21\xcb\x1c\x0e\xa4\x88\x8f\x26\x28\x00\xcc\x4a\x1e\xa2\x28\x63\x00\x95\xf7\xfd\x4c\x62\x43\xd8\x0e\x38\x80\xd0\x18\xde\x75\x35\xbc\x84\x9f\xe3\x29\x01\x02\xe6\x1c\xd5\xc9\x40\xad\x9c\x23\x0b\xae\x58\x43\x00\x6a\x56\xf7\xe1\x60\xf8\x10\x40\x34\x40\xac\xee\xc9\xa3\x27\x8f\x9e\x3c\x1e\x00\x30\xed\x02\xb5\xf5\xf0\xe4\xc9\x23\x80\xa9\xbd\x3f\x02\xe4\x70\x28\xef\x70\x30\x7c\xfc\x64\xf8\x15\xe6\x7d\x32\x78\x34\x78\x34\x1c\x62\xde\xfe\x93\xe1\x40\x66\xfd\x02\xb2\x46\x32\x6b\x7f\xf0\xd5\xc9\xc9\x09\x65\x1d\x0c\xbe\x1a\x7c\x45\x39\xbf\x7a\x84\x80\x6e\x80\x59\xbf\x0e\x6a\xc9\x45\x61\xc1\x4a\x22\xb2\x79\xcc\x00\x77\x39\x56\xe6\x95\x36\x1b\xe2\x53\xe9\x35\x10\xc4\x79\x83\x5c\x96\x2b\x73\xca\x01\xe3\x00\xba\x9a\x24\x3d\x82\x9e\x7e\x05\x35\x01\x31\x12\xbc\xec\x11\x34\x65\x08\x40\x0d\xc5\x74\x51\x0b\x4a\x8c\x93\x55\xc9\x81\x3a\x5f\x76\xb8\xb1\xdb\xf5\xde\x03\x1a\x7e\x62\x82\xef\x2e\x80\x69\x00\x7a\xa6\xc6\xba\xf8\x0f\xf4\xac\xa6\xb4\xf7\x59\x71\x48\xdc\x4b\x56\x4a\xd5\xe7\x21\xf4\xad\x0d\xae\x8f\x8f\x0f\x34\x27\x48\xd8\x23\x50\x76\x47\xe2\x8a\x57\x05\xd5\x94\xa0\x66\xca\xd0\x31\xab\x0d\x83\x2d\xec\x89\x16\x91\xfc\x0d\x81\x69\x0f\x8a\x32\x47\xe8\x77\x54\x1c\x1f\xbf\x2f\xac\x10\x4e\x77\x31\xe6\xb0\x4c\xc7\xc7\x27\x7d\x20\x8a\x6f\x6e\x60\x6d\x51\xae\x24\x15\xe8\x09\x57\xc2\xa3\x08\xf7\x66\x48\x32\xbf\x7a\x00\x88\x7d\x1e\x00\x2b\x9e\x65\x69\xa6\xb3\x41\x97\xd2\x2e\xac\xc2\x5c\x7f\x00\x64\x20\xe2\x5c\xb4\xf3\x85\x8a\x7e\xe7\x1f\x6e\xe1\x58\x02\xed\x39\x8f\xf2\x0d\xd5\xdf\xb9\x14\xc0\x7c\x8b\x5c\x24\x73\x80\xb8\x9b\x2c\x5d\xa2\x54\x0a\x1e\xb1\x56\xf8\xa1\x6a\x3a\x78\x74\xa1\x68\x48\xe2\xcc\x3f\xce\x5e\x7e\x5f\x14\x9b\x37\xe2\x5d\x29\xf2\x82\xc5\x34\x4f\xda\xc4\x86\xd0\xe3\x1f\xdf\xa4\xeb\x20\x4a\x54\x0e\x80\x83\x00\xdf\x57\xcf\x33\x41\x9c\x72\x10\xe7\x28\x70\x0a\x6f\x6e\x8e\x7a\x7f\x5b\x2b\xa8\xc9\xca\xed\x89\x6f\x4f\xfe\xdd\xfb\x77\xaf\x27\xd5\x65\x09\xc2\x41\xd5\x5a\xa3\x2e\x9b\x75\xd2\x84\xba\x86\x55\x4c\xc2\xae\x7c\xe3\xf8\x40\x5d\xe5\xa5\x8f\xcf\x99\x08\xe6\x3b\x5c\x00\x21\x19\x76\x53\xba\x14\x76\x29\xf5\x1c\x53\xc7\x27\xc7\xc7\x25\x4a\x92\xb0\x90\x1e\x3d\x3f\x20\x18\xdc\x13\x4f\x26\x24\x8b\x4c\xbb\xba\x90\x31\xd5\x7b\x02\xc9\xe2\xf6\x16\x50\xc3\x0a\x5a\x15\x99\x51\xb9\x21\x10\x4d\xb8\xd6\xcb\x9a\xb8\x65\xdf\x82\x6e\x38\x09\x50\xeb\x64\x69\x2d\x93\x92\xed\xd2\xc7\x80\x74\x5a\x50\x0b\x8b\x6c\x6c\x6f\x1d\xad\xc5\x2f\xb0\xa7\x1b\xc3\xb9\x43\xc1\x01\x00\x96\x2b\xb4\x35\xc1\x5f\x3f\x91\xf5\xc0\x31\x85\x9a\x60\x7c\x1b\x94\x18\x7e\x7a\x6d\xb0\x29\xb0\x74\x6c\x96\x3e\x54\x52\x60\xbe\x5b\x36\xed\x00\x66\xc5\xfd\x97\xe6\x45\x67\xd6\x85\x1d\xf9\x22\x80\xcd\xd9\x90\x22\xe2\xe8\xf6\xc1\x40\xd4\xc5\xad\xab\x24\xc2\x11\x83\x4c\xda\x66\xa7\x29\xd9\x87\xb3\x0b\x80\x96\x32\x37\xac\x59\xd0\x84\x08\x4e\xe8\x27\x43\x87\x8c\x4c\x18\x33\xc4\x4b\x04\x1d\x60\xdf\x6c\x04\xd6\x94\x90\x30\x52\xad\x0b\x6c\xf9\x20\x0c\xc5\x86\x44\xab\x01\xec\xe5\xa0\x2b\xdf\x71\x7d\x98\xd3\x73\x50\xcc\x8e\xda\x4f\xb5\xad\xbf\xa7\xad\x51\x69\x7d\x90\x1e\x7d\x10\xd8\xfb\x39\xac\x9c\x05\xd3\x7c\x56\x2b\x79\xa0\xb9\x23\xd4\xb2\x40\x37\xae\x60\xff\x47\x73\x71\xa6\x56\xfd\xd0\x37\xc4\x67\xb2\x08\x8a\xec\xc3\xe6\xba\xc6\x3a\xad\x3c\x3e\x26\x91\xab\x3a\xfb\x30\x43\xf4\x26\x01\x82\xb9\x24\x25\x6d\x43\x84\x39\x80\xec\xbb\x35\x20\xa9\x8f\x02\x0d\x12\x80\xbe\xd6\x0b\xd3\xd6\x02\x2c\x1c\xe1\xbe\x08\x2e\xd3\xac\x38\xb0\xa4\xa1\x4c\xb1\x28\x1b\x69\x49\x2e\x23\xa8\x03\x68\x4a\x3c\xfc\x1d\x3d\xc9\xd9\x24\xf2\x23\xa2\xc8\x9e\x23\x6f\x66\x20\xaa\xe7\x0d\x32\xd7\xa4\xa6\x9a\xfa\xbb\xc4\xaa\x95\xb5\x52\xd6\x6c\x5a\x49\xbe\x37\xd0\x5d\xd2\x98\xaa\x51\xad\xf8\xeb\x14\x62\x5b\x20\x91\x87\x36\x20\x3a\x8f\x6f\x64\x87\x64\xc3\x0a\xa4\xa8\x34\x9e\x2f\x71\x7c\x05\xff\x05\x7e\x3c\x00\x25\xe3\xe1\xc3\x89\x15\xe5\xdf\x46\x49\x54\x08\xc9\xbc\x87\xb1\x08\xb2\x4a\xb2\x0d\x73\x59\x84\xdc\x90\x75\xbf\x2b\x18\x9a\x9f\x25\x40\x60\x23\xc9\x09\xe4\x1f\xcb\x42\xf8\x6a\x4e\xc4\xcb\xba\xbd\x6f\x00\xd8\x75\x13\x40\xf1\x52\xcb\x24\x42\xfe\x63\x30\x12\xe1\xc8\x4e\xc6\x5c\x84\x5d\xd4\xa9\xc1\xcf\x02\x9f\x81\x24\xf7\xf0\x13\xd4\x0e\xd9\xe0\xe9\x90\xc9\xe5\x2f\x45\xcb\x4c\xed\xc7\x00\x30\xe6\xa0\xd7\x1f\xa1\x61\x5a\x77\x31\x29\x10\x92\x74\xd1\x66\x2d\xf1\x7f\x0c\xe8\xc7\x2a\xba\xc5\xa9\x54\x11\xc2\x13\x0e\x1f\x05\x21\x76\xb7\xd6\x24\xfd\x1c\x00\x3c\x30\x8c\x38\xde\x14\x4d\x03\x6c\xcf\x4a\x24\x2d\x11\x8a\x28\x96\x0c\x6e\x9c\xa2\xad\x6a\x8f\x9e\x5f\xbe\x1a\xc0\x64\x98\xd2\xc2\x6f\x0a\x53\xfd\x53\xd1\x39\x83\x3e\x3b\x71\x96\x81\xf5\xd4\xab\xcd\x50\x3f\xe4\xb0\x6d\x85\x5f\x8c\x9f\x4e\x0e\x00\xaa\xa4\x27\x6e\xfd\x43\xdf\x1d\x71\xcb\xf2\xdd\xfa\x32\x8d\x1b\x0a\xe8\xd7\x8d\xdd\x33\x17\x61\xb4\x46\x6b\x23\x78\x2e\x56\x69\x99\x07\xc9\x5c\x2a\x9a\x96\x40\x15\x6d\x80\xa3\x62\x68\xe2\x12\x96\x59\x26\x92\x70\x87\xb2\x08\x54\x2a\x37\x51\x45\xa5\x13\xae\xf6\x33\xe4\x9b\x6a\xd5\x30\x4a\xf1\x89\xdb\x2a\x91\xde\x95\xfa\xbb\xd0\x0d\xdc\xc1\x18\xd7\x36\xa8\x69\xf1\x01\x2b\x3c\x20\xed\xe1\x00\x92\xd5\x22\xf0\x1f\xe5\x65\x2e\xb9\xba\xd2\xe3\x01\x2b\xdd\x00\x52\x8f\x2c\x28\xcd\xa1\xb8\x3d\xc6\x29\xb2\xb1\x81\x14\x09\xf7\x81\xfd\xa5\xb6\xed\x9c\x8d\x2a\x20\x8c\xd6\x8c\x24\xaa\xef\xfe\x93\x46\xa8\x23\xba\xf5\x77\x77\xa9\xd9\x04\x8f\x42\xcd\xfa\xa1\xc9\x28\xf0\x5b\x00\x2f\x1f\x74\x60\x20\x02\x58\x2e\x78\x1e\x77\x60\x40\x62\x7a\x82\xcf\x5e\x07\x46\x25\xa6\x0f\xf1\xb9\x03\xc4\x86\x98\x3e\x9a\xb1\x9c\xbb\x62\xfa\x78\xc6\x60\xbf\x4e\x9f\xcc\xd8\x0a\x7e\x9e\xce\xd8\x12\x7e\xbe\x9a\xb1\x0d\x1c\x85\x2b\x0e\x99\xe7\xf8\x67\xcd\x8f\x06\x6c\xc7\x8f\xfa\x23\xc5\x65\x22\x33\xb4\xe2\xee\xca\x18\x37\x1a\x75\x5a\x31\x34\xd0\x47\x0a\x16\xa6\xbe\xc3\xf1\x21\xc5\x63\x18\xf3\x8c\xc3\x77\xe8\x1c\x7c\xb4\xd9\x52\xb1\xa3\x49\xc7\x5f\x40\xa5\xd0\x66\x67\xd9\x19\x5d\x02\x45\xf1\x56\x32\x96\x5f\x76\x7c\xe8\x00\x30\x9f\xd0\xfa\x97\x1d\x4c\x5f\x34\xd2\x37\x7b\xe9\x59\x23\x1d\xd8\x52\xfa\x4d\xd5\xef\x56\xfd\xfe\xd1\xf1\x81\x9d\x84\x5e\x85\xd0\xa9\x2b\xec\x92\xbb\x6c\x71\xa2\xb2\x82\xb0\xe3\xc3\x70\x07\xf2\x65\xde\xf1\xd7\xd8\xcd\x15\x6c\x0c\xa3\x91\x1c\x3b\xe1\x0d\x64\xeb\xb7\x9d\x2f\xea\x7a\x91\x0d\x86\xae\x49\x26\x18\x12\x8f\xf8\xf2\xe6\x06\xed\x1f\x68\xa0\x1a\x45\xe0\x1c\xc2\x2b\xe7\xcb\xc9\xca\xdc\x59\xb5\xbc\x60\xc0\x56\x36\xc0\xa5\x8e\xc0\x4c\x30\xb3\x0b\xfc\xb5\x69\xea\x0d\x79\x43\x9d\xbf\x8f\xf9\x61\x19\x96\x3c\x0d\x09\xa8\x2f\x81\x04\xfc\xb5\x20\xb6\xeb\x0c\xd1\xd5\xe2\xee\xed\x34\x47\x1a\x7b\x7d\x7c\x9c\x7c\x39\x50\x06\x5c\x9d\x8e\xb2\xd5\xea\x8f\x81\x0d\xef\x23\x0a\x38\x3e\xee\x8f\x07\xbd\x64\x02\x20\xc7\x4b\x18\x6c\x2b\xdb\x87\x3f\x88\xf6\x27\x9d\x8e\x1f\x48\x8d\xdd\x46\x56\x19\x22\xbd\x87\x3a\xa9\xa0\x78\x9d\x89\x45\x84\x0c\xec\xca\x1e\x25\x48\xd4\x23\x90\xc0\x8d\x2b\xf0\x85\xce\xbd\x3b\x97\x34\x77\xe2\xf0\x0d\xe4\x59\xca\xcc\x58\xcf\x96\x5d\xb2\x0b\x3c\xad\xda\x20\x4c\xa9\xd8\x65\x63\x17\xb2\xb1\x6b\xbe\x9b\xb4\xb2\x08\xe8\x9c\x37\x18\xf5\xc7\xd7\x13\x6b\x0b\x10\xf1\x12\x8d\xfa\x7d\x7c\x34\x36\x6d\x9f\x5d\xdb\x90\x62\x7e\xba\xb6\x15\xf9\xdf\xce\x79\x81\x39\x0b\xd7\xfc\x78\x41\x46\x19\x38\xb1\xb0\x28\x5b\x1e\x59\x5b\x06\xd0\x5b\x29\xf9\xcf\xf9\x95\x3a\xe3\xee\x56\x3f\x5c\xea\x07\xeb\x0c\x58\xe9\x52\x3b\x71\xb0\xb7\x3c\x1f\x9f\x93\x98\xeb\x59\x96\x05\x3b\xeb\x9c\xe7\xde\x39\x54\x2e\x21\x41\x06\xd3\xdc\xd1\x4b\x77\xa6\x9a\x7a\xeb\x6e\xd9\x5b\x8d\x93\x73\x4f\xd7\xec\x53\x07\x00\x00\xf1\x2b\x96\xf0\xad\x7b\xc9\xac\xce\x29\x1d\xc4\x49\xe9\x26\xee\x5b\x1f\x00\x03\xbd\xbd\x75\xe1\xdd\xef\xfc\xad\xde\x1a\x43\x3d\x1f\x8f\xf9\xc0\x76\xa9\x80\x91\x70\x6e\xfb\x25\xf6\x3c\xf1\xdf\xa2\xa5\x9d\x2b\x4c\x3d\xf1\xaf\x0d\x49\x5b\x43\x64\xf6\x4f\x51\x3b\x0a\xe0\x18\x11\x8f\xee\xb9\xbc\x8c\x07\x13\xc2\xaf\xbf\xfe\xf2\xfc\xb0\xf5\x58\x2d\x28\x6c\xea\xee\xbe\x3d\xa4\xed\xa9\xd0\x15\x5a\x14\x00\x80\x8c\x80\xba\x1c\xd4\xce\x03\x5e\x31\x2e\x3c\x01\x24\x4b\x66\x6a\x6f\x0c\x79\xa6\x85\x25\xb1\xaf\x61\x68\x09\x0f\x61\xdb\xc0\x36\x91\x6a\x24\xb5\xe2\x55\xf6\x84\xab\xcc\x2e\x6e\xeb\x86\x65\x50\x4a\x56\x79\xda\xfc\x87\x93\xe6\x25\x40\xd7\x0e\xd4\x65\x8f\x07\x44\xb0\x8e\xb2\x71\x3a\xb2\x85\x95\xda\x5f\x46\x37\x37\x81\xc2\x2a\x7a\xaa\xdc\x54\xc9\x93\x60\x04\xb4\x35\xeb\x22\xf7\x65\xd5\x8c\x45\xc3\x9f\x47\xce\x14\xb2\x5d\x61\xc8\xff\x29\xb4\xb6\x1e\xca\xc3\x8b\x9e\x1e\x5c\x27\x96\x5a\x99\x12\xa6\x2a\x56\x0c\x0a\x60\x1b\xb7\xb7\x49\x77\x11\xa7\xc0\x26\x26\x2c\x91\x02\x09\x8e\x72\x59\x24\x27\x78\x09\x0f\xe9\x62\x01\x34\x16\x8f\x30\x95\xf8\xc6\x74\x24\x01\x42\xd2\x2d\x81\xfe\xfa\xde\x34\x7b\x09\x55\x55\x21\x50\xb9\xb2\xaa\xef\x91\x10\x85\x37\xaa\xee\x7b\x54\x1e\x20\x7f\x20\xab\xfc\x1e\xb5\x06\x98\x93\xaa\x0d\xcc\x59\xfe\xfe\x2e\xf1\xc5\xa7\x0c\xb6\x60\x68\x59\x21\x6c\xf4\xde\x69\x0f\xd6\xb0\x87\x2b\x5a\xa6\x86\xcd\x37\xd3\x20\x4d\x89\x6f\x81\xb0\x08\x10\x45\x20\x49\xe1\xba\x01\xba\x09\x9c\x3c\xa9\xe4\x3b\xcf\xd3\xb9\x78\x56\x58\x81\x4d\x9e\x14\x9a\x90\x20\x41\x66\x88\xa6\x42\x0a\x4f\x00\xab\x94\x87\x53\x51\x0b\x85\xa0\x26\x1b\x4d\xc0\xac\xd6\x37\xc0\xbf\x11\x7f\x35\x15\x2a\x2d\x42\xfb\x19\xa2\xcd\xcb\x09\xa1\x10\x2e\x26\x40\x21\xf8\x80\xf5\xfc\xd2\x46\x6e\x83\x9a\x14\x68\xac\x84\x34\x4a\x65\x4a\x76\xa8\x2b\xa9\x84\x44\x00\x42\x6f\xb5\x7d\x47\xc3\x96\xf8\x41\xd1\x25\x71\x96\xe1\x58\xa2\x15\x45\x1f\x76\xfe\xe0\x2b\xc0\xd5\x6b\x1f\xf0\xb5\x3f\x60\xdf\xc3\xef\x19\xfc\x3b\x87\x7f\x2f\xe1\xdf\x5f\xc4\x37\xdc\x02\xf1\x26\xd0\xbc\x85\xa1\x01\x0a\xb9\xd6\x1c\xd5\x5e\x6e\x06\xab\x36\x02\xec\x0f\x9c\x1d\x99\x13\x75\xbf\xe7\xf0\xef\xcb\xc1\xd0\x1d\x0c\x9d\xac\xbb\x91\x80\x37\xe2\x72\xe2\xb2\xee\x5f\xc0\xc0\x85\xc0\x58\xfc\x53\xc0\x62\xc0\xb2\x5b\xd1\xe4\x9f\xc2\x0f\xc3\x4a\xda\xf6\x0f\x55\x35\x49\x91\x49\xfc\x16\x0a\xfd\x09\xec\x02\x54\xbb\x63\x7d\x96\x75\xff\x01\xb0\x7b\xad\xdb\xea\xfc\x4e\x4f\x80\x85\x7f\xa5\x07\x7b\x62\x1d\x2a\x35\xc0\xa9\xda\xff\xac\x4a\x4f\xe0\xf5\xda\x7d\x6c\x7f\xf9\xc4\x7d\x02\xfd\xfd\xdd\x83\x3a\x00\x4f\x7f\x03\x10\xdf\x76\x1f\xc1\x67\x1f\xd3\x31\xe9\xd7\x46\x12\x96\x00\x4a\x60\xbf\xe6\xac\xbb\x86\x7f\x73\xd5\xe8\xf7\x69\x99\xe5\x38\x2b\x2e\xfc\xf9\x0b\x05\xf5\x37\x7d\x34\x3a\x39\x73\xe1\xf5\x4b\xa4\x97\xb2\xee\x39\xfc\x7b\x09\x84\x2b\x8c\xf9\xc2\x4f\x6f\xd1\xb6\x5a\xe9\x23\x0e\x70\x91\x49\xc3\x65\x44\x18\xd2\xba\xda\xb4\x92\xa5\x4a\x47\xa1\x17\x0b\xe9\x4b\xbd\x39\xc2\x71\x30\x22\xd9\x40\x36\x06\xde\x58\xd6\x0a\x48\x99\x4c\xc6\x8b\xc6\x21\x70\x5d\x9b\xd1\xd9\x90\xb2\x84\xb4\x76\xd8\xa2\xa4\x88\x3f\x9f\xa6\xc8\xd1\xe7\xe1\xa4\x91\xe2\xa7\x33\x76\x04\x30\xd3\x42\x18\x9f\x50\xef\xec\xd3\x7e\xd5\x94\x44\xe5\x72\x37\x09\xb3\xc1\x0c\xca\xd6\xb9\x34\x2c\x68\xb8\xa1\x4a\x50\x79\x61\x9a\xa2\x2b\x08\x72\x21\x49\x6f\xed\x39\x26\x6a\x37\x3c\x58\xe2\xa4\x7b\xcd\xaf\x89\xfc\x42\x76\xa2\x45\x5e\x32\xe1\xd2\x57\xb5\xaf\x81\x42\x69\x98\x0f\xc8\x26\xb7\x07\x9a\xdc\x7e\xac\xc9\xcb\xff\xa4\xc9\x48\x37\xf9\xe2\x40\x93\x2f\xee\x6f\x72\xcd\x9f\xfd\x27\x4d\xa6\xba\xc9\xf3\x03\x4d\x9e\x7f\xac\xc9\xb7\xff\x49\x93\x12\xed\xd5\x52\x60\xdc\xc8\xaf\xba\x61\xad\x89\xb3\x29\xb9\xe5\xc7\xba\x57\x60\x7b\x77\x81\xf8\x60\x81\x3f\xee\x2e\x90\x37\x95\xe9\x67\xd2\xf1\x4e\x0f\x1b\x06\xc3\x87\x76\x9b\x33\x69\x18\xc7\x67\x68\x09\x85\x4e\xb4\x9c\x2c\xfe\xb1\x9a\x05\x32\xc9\x80\xb3\x50\xba\x01\xcc\x8a\x7c\x01\x66\x00\xd8\x65\xfc\xb2\x81\x87\x8d\xc8\xa2\x14\xb8\xe6\x2b\x4a\xdd\xe5\xc0\xa5\x00\x9c\x5f\xa5\x19\x02\x9a\x1c\xf8\x3c\x98\xe3\x34\x29\x56\x39\x70\x7b\x2a\xe1\x8c\xde\x47\x05\xe1\x6e\x93\x6f\x30\xe1\x42\x1b\xc9\x16\x8a\x1c\xaa\xb1\x03\x52\x14\x48\x96\xed\x23\x58\x65\xbb\x6a\x10\x05\xa2\x8d\x4b\x0e\xd4\x9f\xc9\x3c\x46\xa9\x02\x7d\x22\x0f\x20\x70\x26\x6a\x10\x97\x55\x8f\x40\xcc\x01\xec\x5b\x97\x71\x11\x71\x1a\x9b\x7a\x0e\x84\x62\x97\x80\x7b\x41\xe7\x19\x9b\x6d\xf9\x9f\x85\x75\x85\xc4\xff\x5f\xf4\x7b\x81\xef\x00\x72\xaf\xf1\x1d\x7e\xcf\xf1\x7d\x8d\x34\xfc\x5f\xf4\xfb\x02\xdf\x77\x36\x7b\x86\xef\x3b\x7b\xb4\x39\x20\x8a\x45\x51\xc4\x19\xb9\x3a\xb6\x34\xa1\x68\x8b\x2b\xb1\xd8\x2b\xfe\x21\x38\x24\x2c\x99\x4f\x93\x0a\x31\xcc\x6e\xd9\xb3\x43\x79\xae\x9a\x79\x2e\x0f\xe5\xd9\xc9\x3c\xb4\xbc\x94\xeb\xeb\x43\xb9\xd6\xed\x5c\xa1\x5f\x58\x0b\x1b\x10\xf9\x41\x11\xfc\x0f\x85\xa5\x5a\x2e\x68\x30\x6c\x68\xc3\xfc\x7f\x46\xde\xef\xef\xcf\x2b\x31\x9c\xce\xfc\xc3\x27\x65\x06\xf2\xe0\xe6\x66\x30\x54\x65\xfe\xb9\xb3\xcc\xc0\x0d\x42\x3c\x14\x3f\x2d\x08\xbd\xa2\xfa\x92\x9d\x40\x89\x97\xf7\xb7\x72\x16\xc5\x71\x94\x8b\x30\x4d\xe6\xb2\x67\x58\x66\xfd\x91\x32\x72\x3a\xdd\x81\xea\xd4\xd9\xc7\x9a\x48\xca\x42\xd4\xe3\xde\x1c\x5a\xa9\xcd\xd4\x6d\x0c\x1b\x38\xb8\x21\x2e\xd8\xf9\xfd\x75\x9f\x1b\x3d\xc7\xba\x7f\xbd\x33\x3b\xcc\x4e\x0e\x04\x7a\x73\x82\xb0\xc8\xf5\x41\x99\x5e\xb5\x01\x6f\xd9\xef\xf7\xd5\x09\xf0\xe6\x40\x9d\x5b\xd8\x66\xc0\x17\xff\xe1\xa3\x10\x83\xed\xee\x1f\x43\x45\x12\xd9\x44\xe4\xc8\x1a\xfe\xfc\xf4\x32\xe2\x21\x94\x79\x08\x65\xfe\xf2\x23\xc1\x50\xfa\xb4\x47\x0a\xc1\x47\x80\x24\xcf\xf1\x4c\x66\x70\xe6\x4a\x38\x53\x11\x9c\x98\x14\xce\x43\x00\x87\xe1\x67\x80\xe5\xf8\xe7\x7b\x1f\x20\xee\x0f\xf8\xe7\x1f\x3f\x11\xb0\x75\x4a\x01\x7b\xe1\xc7\x02\x56\x58\x00\x04\xf6\x73\x58\x8e\x4c\xc0\x24\xff\x51\xc0\xb4\xfd\x56\xc0\xd4\x7c\x51\xc0\x60\x43\x18\x69\x0c\xc3\xfc\xbd\x80\x7e\x7f\x5d\x40\x47\xfe\x55\x50\x47\x52\x71\x7b\xc0\x3d\xf9\x87\x96\x2d\x16\x9a\x26\x76\x3c\x20\xed\x3b\x40\x45\x5b\x80\x1a\x12\x9f\xac\x56\x18\xba\x12\x37\xe9\xf4\x0c\xd5\xff\x91\x21\x6a\x10\x5e\x54\x09\x1a\x0a\xe0\xf9\x81\x37\x30\x1c\x6d\xda\xe6\x33\x95\x1b\x86\x35\xf1\x3b\x6e\x42\x20\xb2\x76\xc2\x50\xd5\x74\x6e\x3a\xd0\x3a\x3a\x50\x46\xa6\x03\xe5\x5f\xc5\xbe\x57\x35\x8a\x73\xc9\xb7\x31\x69\xbb\x53\x4b\xe8\x08\xdc\x4c\x0b\x40\xd6\xde\x39\xc6\x84\xfc\x56\xcb\x00\xc2\x03\x64\xc5\x22\x6c\xd1\x15\x80\x60\x07\x7b\x14\x14\x11\x10\xf7\xd1\x11\x7f\x7c\x66\x2b\xad\x16\x7e\xfd\x78\x0b\x5f\xfc\x77\x2d\xfc\xfe\xf1\x16\xbe\xfe\xfc\x99\x7a\xd8\x6a\x65\xf7\xf1\x56\x7e\xff\xfc\x56\x86\x7b\xad\x7c\x07\x6c\x6d\x46\x16\x45\xf7\xb4\xf4\xaf\x96\x29\x5a\xef\xef\xa9\xeb\xcd\xfe\x3d\xff\xf0\xf0\xf6\x0b\xa5\x08\xc7\xe0\x0f\x75\x3b\x8f\x6c\x1b\xab\xff\x8b\x7b\x05\xbd\x35\x6a\xfb\xae\x29\xc4\xb2\x92\xf1\xe3\xa7\x13\xe4\x5e\xfd\xa1\x38\x31\xb6\xf2\x8f\xff\xfd\xf8\xd6\xa4\x6d\x80\xbd\x7f\xcf\xe0\x7e\xfe\xef\x9b\x99\x7f\x7c\xb1\x12\xf1\xd9\xad\x9c\xb4\x5a\xf9\xe7\xe3\xad\x14\x9f\xdf\x4a\x7b\x2c\xdf\x7f\xbc\x15\xf1\xdf\xb7\x72\xf6\xf1\x56\xb2\xff\xbe\x95\xf3\x8f\xb7\x52\xfe\xf7\xeb\xf2\xf2\xe3\xad\x44\xc2\x54\xb2\x2d\xa5\x72\xf4\x7d\x9a\x88\x9f\x48\xe6\x86\x10\x97\x17\xe3\xbe\xc4\x2f\x6e\x07\x40\xf5\x32\x00\x44\xd1\x7b\xdc\xbf\x41\xcb\x30\x7a\xf9\xf2\x71\x65\xf0\x2b\xdc\x1f\xd0\x32\x0c\xb5\x3d\x43\x1b\x9f\x4b\xf5\x6c\x70\x80\xd5\xb8\x56\x87\xc6\xb5\xfa\x18\xb0\x6e\x0c\xa6\xc9\xe8\x89\x16\x86\xd1\x22\x89\xca\xdd\xbe\x90\x6e\xf2\xda\x29\xce\x52\x2f\xfb\xee\x6c\xfb\xee\xa5\x90\x73\x74\x84\xc6\x94\x18\xd8\xc3\xc6\x0f\x50\x61\xa5\xbe\xc3\x2e\x21\x7b\x63\x30\x91\xa2\xe1\x3b\x11\x8b\x26\xce\x16\xdd\x9c\x27\x6e\x81\xc6\xd3\x5e\x42\x86\xd3\xe5\x08\x38\x15\x9e\x00\x3e\xb6\x0a\xcf\xc4\xc2\xb9\x0a\xa1\x95\x1c\x1f\xcf\xc3\xee\x2a\xc8\x7f\xba\x4e\x8c\x38\x4a\x68\x55\x61\x63\xd2\x54\x3e\xcf\x5a\xa1\x2a\x16\xa2\x65\x76\x28\xa3\xcb\x54\xb6\x65\x82\xb4\xd9\x45\x37\x8e\x12\x71\x8e\xbe\x6c\x96\xad\x23\xce\xe0\x28\xcb\x19\x30\x4a\x1b\xf2\xc9\xa2\xbd\x84\x53\xc0\xd0\xc8\xd4\x1e\xc9\x32\x2f\x92\xb9\x19\x7b\x65\x25\x4c\x75\x71\x13\xb9\xcb\x86\x36\x69\xbc\x5b\xa6\x49\xdd\x16\x61\x7c\xec\x26\x7a\xe9\x16\x28\xbb\xae\x32\xb5\x2a\x5f\x8a\x56\x20\x34\x9a\x17\xb4\xc5\xc7\x28\x2f\xce\x37\x41\x6f\xe8\xbe\x0b\x7a\x0f\x47\x4a\xfa\xef\x65\xa8\x11\x1d\x73\x74\x1f\x82\xae\x04\x3c\x75\xd0\xe7\xb6\x32\xe3\x2f\x6c\x16\xd7\xfe\x2f\xf0\x96\xf3\xc8\x89\xd9\x82\x97\x4e\xe8\xe6\x4e\x95\x2f\xb0\x81\xa3\xce\x9d\xd4\xa9\xf2\x06\xf6\x68\x17\x52\x80\x03\xc3\x46\x7c\xc5\x16\x36\xd9\x5b\xa2\xcd\x24\xcc\x71\x7c\xab\x7c\x58\x19\x59\x7b\x8e\xce\x42\x39\x93\x35\x6b\x9b\xb2\x00\x58\x41\xfd\x19\x78\x64\x0e\xf8\x2a\xb5\x61\x24\x50\x45\xdd\x3c\xb7\x04\x0f\xec\x7a\x7c\xb6\x36\x1d\x95\x5d\x01\x16\x22\xd4\x6b\x61\xca\xf1\xa4\x04\xdc\xd8\x94\x1b\xf3\xb4\x13\x64\xe0\x09\xad\x67\xdd\x56\x45\x60\x4d\x33\xc7\x9c\xa7\xcc\x31\xe7\xa9\x7a\x16\xb6\xe1\xed\x75\xd5\x0c\xf6\x86\x2d\x38\xe8\x93\xe5\x62\x23\x0e\x7a\x61\xc1\xd3\x10\x9f\x86\x46\xa9\x79\xa3\xd4\x54\xe5\x1d\xa2\x97\xd6\x50\x96\x62\xea\x49\x79\x6e\x51\x2a\x53\x4f\xca\xb3\x8b\x52\x8d\x4a\xd7\xfa\xd0\x60\xf3\x1c\x13\x19\x66\xc3\x47\x55\x1f\x3e\x9a\xdd\xd8\xb5\xbb\x81\xd5\x33\x59\xb7\xea\x80\x91\xfb\xcc\x98\xc9\xda\x25\x80\x0a\x25\xd5\x88\x93\x6a\xc4\x09\x1d\x18\x4c\xe9\x71\x59\xa9\xfc\x1d\xe2\xaf\x61\x5d\x2e\x6a\x02\x64\x6a\x6c\xac\x44\x76\x1a\x89\x21\x74\x3d\xc3\xca\x8c\xbe\x5c\x36\xa7\x1d\x60\x32\x66\xf5\x70\xd0\xf6\xe9\xf3\xe0\xf8\x98\xbe\x0c\xf0\xcb\x80\xbe\x18\x36\xc9\xc2\x38\x43\x23\xc3\xc4\x83\x56\x9d\x9c\x5c\x46\xd7\x00\x84\xeb\xad\x80\x0a\x2e\xc7\xf0\x7a\x61\xc6\xb6\x30\xad\x81\x2b\xa8\xe3\xba\xdb\x90\x5d\x84\x2e\xb7\x12\xef\x22\xb4\x7b\xf0\x76\x8d\x6f\x85\x77\x2d\xdf\xce\xf1\x4d\x78\xe7\xf4\x66\x98\xdd\xee\x9d\xf5\xd2\xec\x67\x54\xf7\xb3\xa4\x7e\xc2\x49\x8f\x1a\xdd\x0c\xf4\xbb\xea\x68\x58\x1f\x99\xb2\x3a\xf7\x72\x7e\xeb\x15\xb4\x62\x2e\x9c\xd0\xcb\x1c\x38\x6e\xb1\x8b\xa6\x0b\x4e\xea\x15\x4e\xa8\xde\x0a\x27\xf0\x84\x03\x07\x34\x86\x95\x70\x52\x57\x38\x81\x9b\x41\xea\xe8\x12\x06\x11\xb3\xb7\xf8\xd7\xb1\x0a\x97\x4e\xb1\xcd\x5e\xc8\x77\xe1\xd2\xf9\xb5\xd9\x33\xf9\x0e\x5c\x58\xc6\xd1\x80\xe4\x5a\x28\x13\xdb\x1a\x50\x8c\xde\xed\x01\x09\x8a\x1e\x50\x56\x23\x4f\xeb\x91\x47\x72\x85\xa0\xb1\x7a\xe4\x25\xa2\x6c\x03\x52\x95\xb6\x3e\xde\xf8\x16\xd9\xec\x5d\x0d\x6e\xea\xf6\x0d\x1b\x65\x9c\xf7\x2a\xcf\x85\xa1\xf5\x7c\x71\x27\xf4\x3d\xbc\x73\x10\xf6\xb6\x56\x44\xdc\xb5\x22\x04\x89\x01\xea\x7a\x91\x13\x10\x14\x4e\x61\x0d\x42\x80\xc4\xb0\x12\x5e\xe9\xa4\x6c\x65\x1c\xb3\x18\x16\x23\x77\x72\x77\xe1\x2c\xd0\xdc\x01\x96\xc8\x2d\x61\x21\x22\x28\xb0\x41\xc3\x0a\x2f\x41\xb9\x41\x6f\xc5\xae\x78\x03\x3a\x2f\xed\xd1\x2b\x58\x81\x0d\x80\xf8\xe7\xf4\x9b\xb3\xf7\xf4\xbb\x60\xb8\x7e\x57\xb4\x7e\x57\x6a\x7d\xf4\xfa\xc1\x7b\xe9\x5a\x65\xb5\x7e\xf0\x0e\x28\x3a\xd2\xeb\x27\x83\x3b\xb4\x00\xfd\xfe\x1a\x12\xa0\x87\x75\x62\xa8\xb8\x34\x56\x20\xad\xa6\xcf\x40\x4b\x81\x5c\x56\xd8\x23\xf5\xf4\xa5\x68\x0f\x1f\xd6\xd3\x97\xb6\x70\x80\xd1\x17\xac\xff\x4e\x6c\x60\x26\xbe\x15\xcc\x5c\x68\xc3\x1a\x5c\xec\xc5\x83\x31\x0d\xc1\x51\x3b\x8e\xef\xac\x20\x77\x5a\x86\xf6\x47\x75\xd8\x19\xe9\x74\x4c\xf2\x58\xfd\x64\x09\xf5\xd8\x30\x1c\x35\xea\xd3\x59\x65\xb5\x02\x63\x97\xe8\x0f\x75\x03\x0d\x15\xfc\xab\x3a\xfc\x8a\x19\x94\xf0\x79\xa5\xa6\xaa\x22\xdb\x49\x03\x2f\xa9\x71\x4f\x0e\x1b\xc6\x2e\xac\x23\xcb\xaa\x09\x46\x6f\x60\x9f\xf2\xbe\x6d\x84\xa0\x20\xca\x07\x7e\x0a\xaa\xe5\x52\x4e\x07\x1c\xca\x06\xd5\xa4\x29\xc6\x00\x88\xd9\x62\x1c\xa0\xce\xd7\x2e\x15\xed\x84\xda\xda\x69\x30\xb3\xab\xd1\x8c\x4c\x9b\xf4\xd2\xa0\xa4\x94\xb2\x5c\x5c\x3f\x78\x27\xc8\x28\x96\x2c\x44\xd1\x32\x36\x36\xbe\xe2\xb7\x90\x1d\x01\xad\x14\x76\x53\x80\x3c\xca\x14\x2d\xac\x14\xbb\x68\x58\xab\xf3\x67\x55\x2d\x03\xa3\x96\xac\xaa\xa5\x4f\x4a\xf6\xc3\xb5\xdc\x92\x65\x6a\x8e\xd6\xa4\x70\x46\xdf\x0b\x84\x20\xef\x05\x6d\x3f\xcd\x50\x7c\x30\x06\x8e\x96\x66\xd0\x44\xaa\x49\xbe\x58\xcd\x43\x0a\x83\xef\x0a\x1e\xf2\xa3\xb0\x9a\xa7\x9c\x2d\xe0\x58\x47\x30\x25\xa3\x51\x5d\xc9\x92\xaf\xe0\x14\x1f\xf5\x47\xcb\xee\xd5\x08\xa3\x77\x58\x4b\xbe\xec\x26\x18\xc4\x53\x6b\x82\x47\x39\x7c\x79\xcf\x9a\xb3\x3f\x4f\x71\x1d\xa1\x10\xa4\xa5\xf0\x17\x2d\xcb\xba\x82\x16\x77\x63\x9b\x3d\x8c\x79\xde\xee\x5d\xb5\x4a\x0b\x9e\xeb\x55\x5a\xd0\x2a\x91\x02\x31\x83\x6a\xb7\x50\x5b\x02\x7f\x07\xb0\xaf\x46\xd4\x23\x52\x2e\xca\xea\x3f\x60\x87\x36\xdd\xf7\xc6\x16\xc8\xab\xbd\x34\x0a\x80\x00\x1d\x79\xde\x3d\xcd\xdc\x36\x9a\xd9\xc0\x5f\xaf\x6a\x67\x73\x8b\x7f\x53\x26\xc7\x0c\x33\xb3\xb9\xbd\x5e\x45\xc0\x4f\x1c\xc1\x58\xed\x91\xb9\x75\xcc\x70\x79\x42\x6d\xec\x7a\x57\x9b\x61\x26\x61\xfb\x72\xe4\xdf\x70\x63\xc3\x0c\x64\xc8\x19\x95\xdd\x84\xe3\x2e\xcd\x60\x87\x76\x37\x18\x9a\x85\x8b\x91\xfe\xd8\x57\x1f\x8d\x26\xde\x19\x1a\x61\x32\xef\x41\x3b\x2b\x7a\x78\x0f\xb4\x8d\x0c\x89\x84\x21\x48\xf0\x41\xf0\x4c\x3e\x5c\xa1\x2d\xa1\x8c\xc3\xa4\x42\x16\x91\xba\xde\x30\xb8\x35\x6a\x6d\x73\x65\x84\x08\x0d\x55\xa2\xc1\x4f\x95\xf4\x82\xa1\x6f\xa5\x19\x27\x34\x88\x13\x8b\x76\xd8\x72\xce\x8b\x56\xa4\x3c\x83\x49\x29\x65\x48\x93\xb9\xca\x69\x40\x1c\x43\x25\x68\x7f\xd8\x29\x48\x19\xb0\xb9\xb9\xf1\x4c\x35\x60\x9d\x29\x55\x99\x5a\x0c\x4c\xae\xda\x95\xa7\x6b\x0a\x2f\x2a\x64\x46\xd5\x8b\xed\x3d\xbd\x58\x58\xa4\x1d\xae\xdb\x06\x04\x37\x35\x08\xc1\x15\xa4\xe7\xd6\x95\x0c\x46\xc1\xe8\x17\x6d\x10\xb7\x75\x4f\x46\xda\xd6\x78\xdb\x45\xe3\xe8\x84\xf8\xfb\xb3\xee\x65\xb9\x58\x88\xcc\x22\x5b\x52\x7d\x36\x60\xef\x40\x37\x53\xd4\x81\x6d\x64\x77\xaf\xb0\x3d\x82\x19\x19\x9e\xcb\xc1\x31\xa2\x7f\x8e\x1d\x95\xa6\x82\x06\xab\x07\xdb\x37\xe5\x52\xd5\x9f\x8d\xfb\x72\xe7\x5d\xde\xdc\x58\x51\x8b\xfb\x63\x97\x1c\xa1\x4f\xd4\xe2\x3e\x53\xe4\x08\xf5\xca\x59\xb8\x4d\x53\x79\x5a\xc8\xa8\x72\x14\x99\x7b\x5e\x1e\x9d\xf1\xe0\xf8\x78\x78\x5c\x54\x91\x44\x85\xec\xba\x11\x7d\x74\x15\x2d\x0a\x8b\xec\x23\x75\x8e\x45\x14\x17\x30\xea\x5f\x84\xf2\xcd\x5f\xb2\x0d\xbb\x62\x73\x4e\x66\x46\x6b\x5e\x6a\x14\x54\xf1\xbd\x36\xdb\xf1\x0f\xd4\x29\x3f\x65\x55\x8f\xfd\x90\xa9\xee\xf8\x31\x33\x87\x67\xea\x11\xf4\xbe\xc8\xd9\xae\x1e\x2b\x5f\xa8\x37\x44\xc6\x40\x9e\x20\xa6\xda\xe0\x8a\xb2\x9a\xfd\x3d\x54\x49\xda\xa8\x24\x34\x2a\x89\xa1\x12\x54\x5d\x8a\x0c\x58\xe5\xa5\x5a\x6e\xfe\xad\xb0\xd6\x6c\x03\xe0\xa4\x72\x2e\xb9\x67\x2d\x00\x83\x2e\xd9\x37\x88\x78\x04\x1c\x37\xdb\xc7\x00\x09\x9f\xba\x74\x4c\x28\x7f\x06\xfc\x33\x80\xe2\xcc\x58\x2a\x28\x01\x55\x45\x0d\xd6\x1e\x2b\x19\x20\x0d\xa7\xc0\x00\xcb\x37\x2b\x91\x09\x73\xd0\x7b\xed\x7e\x7a\x8b\xac\xd9\xd8\x2d\xf0\xc9\xfc\x8d\x20\xa5\x6e\x61\x9d\xc9\xc6\x35\x1e\xde\x19\x90\xed\x17\x71\x20\x2e\xf6\xd8\x90\x34\x61\x25\x95\x9b\xda\x54\x4b\x81\x3e\xd4\x5b\xc2\xe8\x7f\xa1\x0c\xaa\x20\x1f\x2a\xef\x68\xf7\x34\x2d\xd4\x54\x40\xe7\x29\xbc\x60\x16\xbd\x99\x2e\x99\x3c\x96\x66\x65\x2a\xc0\x5e\xa5\x03\xc1\x1d\xa3\x63\xf0\xde\xb2\x4c\xa0\x02\xa6\xd9\xb8\xee\x3c\x92\x63\xd4\x4c\xd1\x3c\x19\x45\x7d\x32\x4c\xfc\xf1\x4d\x83\xa7\xb4\x28\x8e\xd5\x16\x8f\x20\x06\xa8\x40\x5e\xf2\x4d\xe0\x3d\x0f\x7c\xf8\xab\x62\xac\x90\x9c\x5d\xe7\x28\x1a\x39\x8a\x26\x14\x7b\x2d\x8c\x60\x69\xe4\x61\xaa\xfd\x4c\xe1\xef\xbd\x53\x99\x34\x56\xbe\xe0\x83\xbd\xf9\x8c\x58\x2a\xab\x06\xe6\x6f\xdc\xc7\x00\x2e\xde\x3b\x74\xec\x05\x0e\x38\xf2\x00\x3f\xc0\x6f\x08\x5f\x90\x09\x46\x01\xa9\x02\xb5\x28\x76\xc9\xdc\xd4\xee\x0d\xa1\x0c\x86\x72\x79\x83\x51\x95\x54\x6a\x89\x14\x69\x62\x6c\xaa\x66\x2f\x74\xb6\x40\x66\x93\x2f\x11\x11\xc7\xe8\x56\x52\x1e\x71\x0e\x1c\x78\x38\xe6\xef\x30\x66\x13\xb4\x2f\xbc\x52\x72\xe5\xf0\x04\x1c\xcf\x73\x68\x8a\x7a\x17\xa8\xaf\x91\xc7\x03\xfa\x9a\xf1\x5f\x89\xce\x44\x23\xab\xff\xac\x3b\x32\x78\x85\x1e\x25\x87\x5e\x71\x62\x23\x82\x7a\x93\xed\xcd\xae\xac\x14\xd0\x27\xae\xc6\x2d\x23\x2c\x71\xc0\x77\x74\xe8\x15\x0d\xf3\x5f\x03\x6b\x57\x96\x61\x46\x64\x19\xaf\xd6\xdb\xc1\x60\x53\x7b\x0c\xf3\x5f\xb1\x66\x96\x65\xb0\x81\xc0\x5d\xd5\x8c\x10\xd0\xd8\x8e\x21\x6a\xf2\xaa\xe7\x0c\xf2\x95\xa6\x1c\xcf\x36\x19\x4b\xbb\x67\x95\x0e\xb0\x90\x68\x3e\x5f\xb8\x59\x23\x5a\xce\x3f\xed\x9e\xd6\xa1\xbd\x12\x1b\x28\x1e\xe7\x0d\x4c\x9d\x9a\x32\xdc\x3b\xc8\x3e\xab\xd7\xbe\xf9\xd2\x4c\x82\xb7\x7e\xe3\xcd\x6b\x94\x33\xdf\xbc\x56\xaa\xd7\x2c\x2b\xdb\x1c\x69\xc3\xb5\x86\x30\x07\x66\x4d\xf3\x34\xf8\xf1\x14\x3f\xaa\x3d\x3e\xc2\xae\x47\xbd\x61\x5d\x4f\x74\x67\xd7\x31\x45\xa1\x4d\x4d\x1c\x21\x86\x6b\x1d\xd3\x6f\x1b\x82\xdc\x8a\x03\xc2\xa0\x78\x7c\x6a\x2c\x0a\xf3\x0c\xd9\x21\x83\x5c\x11\x50\x96\x29\x50\xbc\x3b\xf2\x8e\x13\x2d\xce\xc8\x30\x15\x24\xfb\x40\x24\xbf\x3f\xc8\xa8\x78\x05\xd0\xc4\x40\xe6\xc6\x06\x05\x92\x57\x94\xfb\x82\xc7\xd8\x85\x15\x5f\xe0\xcf\x92\x23\xdd\xac\xa4\xa1\x80\x33\xab\xfe\x2c\x6d\xcd\xf4\x63\x87\xe0\x6d\xce\x07\xc8\x5d\xcc\x81\x7d\xc0\xa8\x65\x73\x3a\x12\x50\xd7\x5c\x12\x2d\x6b\x39\xb2\x1d\x8d\x4c\xd7\x77\x56\xd7\xb7\x43\x64\x51\xd5\xb7\x43\x9c\xb1\xf6\x56\xec\x82\x5f\x56\x52\xe5\x6b\x7e\xe1\x5c\xb2\x73\x7e\x3d\x86\xa5\x7b\xcb\x37\xce\x19\xf6\x7c\x5f\x3a\xfc\xd6\xb9\xa8\x37\xe9\x35\xf4\xd3\xd9\xba\x6f\x6b\x06\xff\x1a\x69\x93\xc8\xe5\xe7\x93\x4b\xf7\xc2\x79\x19\x00\xfc\x3f\xff\x7b\x35\xe6\xe2\xef\x35\xfc\x91\x73\xf4\x82\xcf\x85\xb5\x11\x68\x82\x43\xa2\x5c\x7b\x74\x26\xac\x17\x12\xcd\x3f\xc3\xb4\x92\xbd\xa0\x6f\xcf\xb4\x15\x91\x75\xfe\x37\xf5\xd4\x1b\xf8\x03\xdb\x29\x0a\xeb\x19\x49\x22\x81\x2a\x7b\x75\x73\x83\x01\xf9\x5e\x61\x38\x3b\x98\x82\x9b\x9b\x17\xb8\xfe\x64\x8d\x0c\x9d\xf8\xbb\x1a\x9f\x7d\x8b\xec\xf1\xdc\x75\x6d\xe9\xfd\xb2\xe2\x6b\x9c\x70\x98\xe6\x2d\x5b\xf0\x44\x87\x32\xb3\x00\xd8\x8f\xa3\x9b\x1b\xfc\x8b\x8e\x22\xbb\xd0\xfe\x7b\x70\x9c\x1a\x26\xda\xa2\x6d\x3f\x6d\xc8\x2c\x0d\x29\x91\x29\x75\x1e\x47\xb7\x4d\x3b\x33\x69\x5e\x1d\x01\xd3\x1a\xb3\xfc\x5e\x5c\x11\x23\xaf\x39\x80\xed\xb4\x8f\x24\x80\xeb\x94\x35\x2d\x91\xda\x82\x37\xa0\x95\x81\x20\xc0\xcf\xb0\x5d\xd2\xc9\x15\x3a\x67\xd0\xab\x7f\x35\x81\x07\xd7\xea\x8f\x17\xea\x9c\xd9\xf8\x95\xe2\x71\x1c\x09\x72\x6d\x0a\xf9\x95\x8d\xe2\x8a\x06\x55\x7e\x24\x7d\x81\x96\x3c\x03\x00\xbe\xb1\x99\x94\x18\xa0\x3f\x0e\x3c\x6c\xe0\x01\xa7\x79\x43\xa2\xe9\xe7\x01\xdb\x90\x60\x1a\x1e\xb0\x17\xf8\x95\xbe\xe0\x76\xa0\x8a\xec\x1c\x4e\xcd\x15\xa2\x2b\xb3\x0d\xac\x7b\x43\xbe\x06\xea\x0c\x2f\xe9\x5c\x50\x41\xbf\x6e\x79\x3f\xd5\x44\x1e\x08\xe8\x97\x15\xac\x01\xec\x03\x63\x4a\xff\xbe\x92\xb3\xb3\x1e\xcd\x8f\x61\x41\x8f\xac\xb5\x6c\x0a\xe5\x04\xe8\x54\x8e\xdd\x49\xdb\xdd\xd1\xed\xac\x15\xf3\xb1\xd6\xcc\x47\x9d\x30\x50\x09\x83\xd9\x5e\x37\x7c\xeb\x53\xb2\xdd\x81\xea\xda\x4d\x02\x21\x73\x74\x75\x73\x03\x43\xa1\x59\xdf\xd8\x78\x39\x8d\xcc\x5a\x4f\x2e\x0c\x7c\x03\xa0\xe8\x0a\xa0\xd5\xfc\x20\x36\x0c\xf5\xa2\x6a\x84\x28\xe9\xd3\xbb\xf0\x61\x7e\x63\xc5\x80\xe6\xed\xd3\xd3\x81\x89\x17\xb3\xa6\xd6\x8f\x0e\x2d\xc0\x4f\xe9\x47\x9c\xf2\xe9\x80\xf5\x11\x64\x06\x78\x76\x51\x62\x85\x5d\x12\x80\xbc\x03\x94\xd3\x04\xd8\xdb\x9c\x87\x5e\xec\xc4\xb4\xe3\x72\x7d\x1d\x07\x0a\xc8\x46\x12\x2a\x46\x4e\xd8\xcb\x01\x2c\x7a\x91\x13\xc3\xc3\x12\x6b\x42\x61\x23\x6c\xed\x1d\x3e\x2d\x10\x20\xee\xb0\xce\x95\x3d\x5a\xe3\xee\xbb\x92\xb0\x61\xce\x97\xc0\xe4\x5c\xe1\x97\x39\x32\x36\xf0\x34\xc7\xa7\x33\xbe\x76\xd6\xde\xce\xb1\x28\x69\x83\x01\xe4\xa8\x71\x38\x04\x67\x4a\x24\xb6\x35\x64\xb1\x44\x46\xef\xb0\xac\xe5\xad\xbd\xad\xdd\xdb\x51\x76\x68\xe9\x12\xf7\xdf\x25\xdf\xc2\x93\xcd\x8e\x84\xb6\xe2\xbf\xa4\xd6\x2f\x00\x6c\x12\xe4\x3d\x97\xca\x99\xb7\x12\xb5\xbc\x20\xfd\xcc\xe8\x7a\x7c\x0e\x07\xe4\x82\x5f\x43\xae\x73\xc8\x72\xa1\x41\xdc\xb9\x77\xcd\x5e\x21\x35\xf7\x4c\x51\x71\xec\x39\x7f\x45\x40\xe7\x19\x75\x12\xa0\xd9\xdb\xf1\x0b\x2a\xfb\x16\xea\x7c\x01\x15\x5e\x00\x4b\x33\x79\x35\x79\xeb\xbe\x18\xf7\xff\xbe\x84\xda\x4f\x11\xa9\x5e\x22\x52\xbd\x26\x3a\xf0\xad\xff\xc2\xf6\xdf\x9e\x72\x4c\x83\x3d\x83\x39\xf8\x0b\xff\x19\x40\xf3\xbf\xad\x6b\xfc\xdc\xa7\xcf\x80\x6f\xf9\xb9\x9a\x80\xf7\xd5\x88\x5d\x39\x62\x6d\x2f\x29\xac\xf7\x38\xea\xe9\x25\x83\x61\xbf\xb7\x67\xe6\x5e\x28\x4d\x79\x45\x3a\x49\xfc\x77\x40\x3c\x23\xd5\xab\x4a\x7b\xd9\xb8\x98\x94\x37\x7c\xe0\x17\x63\xf2\x91\xbf\xe1\x43\xc0\xae\xd9\x58\xe0\xd7\x87\xbe\xd0\x5f\x9f\xc2\x16\xba\x6d\xe9\x40\x12\xd2\x7f\x8c\xd1\x8d\x15\xa9\x49\x24\x15\x90\xec\xc5\xfd\xf7\xd8\xf9\xa6\x0e\x7b\xf2\x52\x4a\xfc\x43\x38\xc1\x53\xa0\x4b\x92\x99\x3f\x45\x8a\x23\x81\x3f\x26\xf2\xff\xe9\x3e\x29\x4c\x7d\x63\x48\xd9\x85\xad\x0a\x7f\x2f\xa1\xad\xb4\xbb\x25\xc1\xdf\x0e\xb6\x6c\xd0\x45\xdc\x10\xc0\xf3\x8a\xa3\x83\xe7\x00\x76\x63\xee\x85\xb0\x13\x17\x1e\x6d\x65\x20\x60\xe0\x75\x83\xd0\x05\x3a\x6d\xcb\x08\xa7\x3d\x38\x92\xe4\x40\x08\x2f\xab\x71\xa4\x85\x7d\x4b\x44\x28\x00\xd1\x22\xbb\x32\xe7\xdf\xa0\x4c\x81\x1c\xa8\x96\x3a\x57\x34\x96\x5e\xa9\x11\xe1\xab\x88\x0b\x5d\x7f\x1f\x6a\xda\xaf\xff\x70\xc9\x76\xfd\x87\x7b\x41\xf5\x17\x5e\xcc\xae\xda\xfd\xbf\x82\xfa\xaf\x3e\xa1\xff\x57\x1f\xef\x7f\xa6\xeb\x37\xfb\x5f\xd7\x7f\x7f\xff\xaf\xee\xed\xbf\x5a\xd0\x15\x39\x38\xc3\x12\xf2\x0f\x5b\x3f\x74\x57\xce\x86\xed\xfc\x18\x7e\xaf\x6e\x6d\x36\x18\x2f\x29\xf1\x52\x26\x2e\x55\xe2\x92\x12\xcb\x5b\xfa\x5f\x6d\x90\x28\x0e\x46\x72\x21\x11\x7c\x4d\xf5\x93\xc1\x53\x42\x47\xae\x04\x3e\xab\xef\x9f\xf8\xfa\xab\xa8\xbe\x0e\xfd\x81\xfc\x8a\xea\xca\xea\xeb\xc0\x07\x8c\x0c\xbf\x27\xfe\xb0\xe5\xbd\x50\x35\x90\x5a\x28\x9d\x45\x16\xb4\xe5\x6c\x60\x4a\xf9\x06\xc8\x55\xe1\x39\xac\xfd\x9d\xc4\x11\x5a\xd3\x0b\x2f\xf3\xfb\xe4\x23\x55\x69\x94\xfd\x01\xbd\x57\xd4\xb7\x3f\x54\xef\x4a\x91\xea\x57\xfa\xe8\xbd\x88\xbd\x81\x31\x0d\x61\xd3\x26\xa5\x0f\x98\x64\xae\xed\x52\x2a\x7a\xba\x3f\x12\xe3\x12\xad\x2e\x2a\x72\x17\x4f\x17\x1a\x2c\xcc\xd1\x00\xa3\x8e\x12\xae\xb0\x02\x50\xce\x29\x8a\xc9\xec\x08\x5e\xd3\x19\x8b\x09\x68\x65\x93\x08\x7e\x11\x4a\xfc\x6c\xc5\x0c\x23\xd9\xe0\x0a\xbb\x6e\xe1\x47\x32\xbd\x4e\x38\x85\x04\xcf\xc3\xc8\x33\x91\x9e\x88\x3e\x86\x60\x30\x85\x99\x11\x06\xb0\x62\xb1\x9c\x3f\x44\xfa\x0b\x19\x88\x4c\x32\x4b\x11\x51\x02\x25\xc5\xa8\xb0\xa1\xa8\xb5\x80\x17\x8a\x78\x75\x73\x93\x62\x59\x68\xe3\xef\x10\xf7\xe1\x3c\x7d\x10\x6b\x36\x04\xa9\xf0\x9b\x9b\x13\xfc\x01\x00\x28\x58\x3e\x1e\x4c\x32\xbf\xb0\x47\x52\xa4\x0d\x35\x5a\xb9\x1b\xba\x0f\xed\x2f\x1f\x62\xa5\x0b\xb5\xa5\x75\x79\xc2\x88\x41\x93\x4f\xc9\xa5\x58\x58\x8d\xa2\x1c\xa3\x9f\xb2\x18\x53\x08\x0e\x8a\x9e\x9e\x8d\x79\x64\x8a\x50\x69\x4b\x48\x39\xec\xf1\x71\xa0\x2a\x6e\x9a\xcc\xa0\x1c\xf5\xb9\x92\xb5\x01\x76\x3c\x3e\x9e\x4b\xd1\xc9\x1a\x65\x38\x80\x8e\x8e\xfa\x80\x97\x80\xb8\xbc\xe4\x17\xbc\x71\x7b\xdd\x12\x45\x34\x48\xda\x59\x3b\x06\x88\x71\x7b\x7c\x7c\x7d\x7c\xfc\xac\x2b\xe5\x32\x48\x18\xca\x7a\x9e\x55\x02\x57\xa0\xc0\x74\x43\x0b\x76\x8d\xfd\x39\x20\x34\xde\x28\x4d\x6b\xed\xf6\xed\xfd\x12\xd6\x8e\xdf\xf0\x9c\xa0\xdb\xe7\xdd\xc9\x85\xad\x85\xcc\x72\xdc\xb8\x8a\x30\xaa\xb5\x29\x85\x66\xe7\x36\x30\x41\x80\xfd\x0b\x60\x78\x04\x0e\x72\x80\x7a\x38\x2b\x68\xd0\x5c\xe6\x7c\xd5\x4c\x2a\xe4\xbb\xb6\xcd\x24\x4a\xd1\x0e\x80\x81\x0f\x20\xe4\x12\xc0\xc7\x05\xfa\x22\xc0\x73\x02\xcf\xc5\xed\xed\xe8\x95\x85\x7e\x74\xd7\x14\xdb\xe5\x50\x23\x59\x17\xf1\x08\xfe\xdd\xd9\xe6\xd7\x4b\xfa\x7a\x09\x5f\x99\x40\x77\xd9\x9a\x4a\x7b\x8b\xd2\x44\xff\xfe\x6e\xcb\x4c\xb7\x97\x30\x58\x74\xfd\xbc\xe6\x82\x70\xe9\x15\x9b\xb3\x35\x83\x65\x63\xe4\x72\xce\xae\xd9\x39\x7b\x0b\xe4\x43\xc0\x9e\x49\x99\xe1\x2b\x6e\x20\x45\xb4\x05\x57\x5c\x85\x21\x08\x5e\x55\x84\xe4\xf2\x4e\x41\x70\xc0\x9f\x91\xd4\x1e\x38\x8d\x29\x92\x3d\x47\xfd\xbb\xa4\xbd\x01\x90\x2f\x57\xb5\x34\x57\x91\x6d\x05\x0f\x71\xc5\x32\x22\x61\xdf\x1e\x1f\xa3\x09\x99\xf6\x34\x1f\x59\x30\x1f\xa5\x4d\xc3\x6f\x09\x4d\xf7\xe7\x24\x6e\x08\x4e\x03\x9c\x24\x83\x2f\x80\xe3\xf3\x1c\xda\x04\x60\x01\x40\x42\xa6\x9a\xa2\x54\x24\x2a\xe7\x7c\x2d\x89\xe2\xca\x46\xfd\xb9\x79\x49\x83\x61\x20\x83\x40\x0f\x18\xeb\x13\xf4\xc4\xce\x24\x05\x9c\x49\x7d\x8d\x3e\xb5\xe8\xce\x13\xc4\x31\x6c\x9b\x4f\x0a\x8e\x94\x59\xd2\x7e\xc9\x81\x5a\x07\x4f\xfb\xca\x8c\x49\xbd\xd9\xfe\xb4\xe8\xbd\x0b\x1c\x4a\x50\x0f\xb3\x5b\x66\xdc\x76\xf2\xd7\xbe\x7a\xbb\x1d\xe2\x84\x68\xdb\xc8\x1b\x3a\xa5\x69\xf7\x64\xf7\x4a\x6d\x1d\x65\x5a\x32\x38\x1c\x28\xf7\xd4\x6b\x18\x3b\xcc\x94\x67\x93\x69\xef\x80\xd6\xf9\x6e\xa3\xba\x21\xf0\x1f\x03\x37\x73\x2c\x0c\x7b\x9a\x55\x01\xff\x64\xeb\x75\x6b\x0f\xf6\xf5\xe7\x46\x87\x53\x4f\x0b\x84\x1b\x36\x43\x30\xbf\xbd\x12\xed\x85\x60\x1c\xd0\xc7\x84\x82\x95\xc2\x78\x4a\xbb\x87\xcd\xd9\xe8\x1e\x62\x28\xd4\x7f\x3b\x64\xdd\xf1\x4d\xe8\xf2\xd2\x01\xd2\xd4\x29\x94\x5d\x5b\x61\x9a\x3a\x8c\xbe\xdf\x33\x74\x20\x09\xec\xf7\xb5\x81\x43\xc1\x61\xd1\x61\x81\x4a\x9e\xde\xb2\xef\x3f\xcd\x4c\xed\x0f\xb5\x1e\xaf\x43\x0a\xcf\xfc\x3a\xe4\x78\x93\xd4\xf8\x1f\xe4\xa9\xff\xa1\x97\x5f\x43\x8a\xc9\xf2\x6b\xc8\x31\x08\xce\xf8\x5b\x4c\xf9\x16\x5f\x0c\x63\xfa\x43\xe3\x51\x6a\xed\xce\x59\x87\x25\xac\x03\xff\x15\x68\x30\xd1\x16\x4a\xec\xe7\xaa\x40\x08\x17\xb7\xed\x5d\xa3\x73\xbf\xac\x73\x9b\x0c\x20\x1c\x64\x3d\x19\x26\x2f\x50\x97\xfb\xab\xa3\x43\xcb\x7d\x2d\xac\x87\x5d\x0a\xfb\x48\xae\xe3\x0a\xc2\x24\xec\xa0\x80\x43\xd7\x5a\xd4\xec\x6b\x76\x37\xd4\xa9\xe6\xbd\xbc\x13\xdc\x54\x59\x32\x56\xf7\x58\xca\x4e\xde\x04\xf3\xa8\xcc\x0f\x39\xfa\x50\xa7\xd1\xb4\x07\xb5\x0f\x79\x19\x37\x5a\x45\x4f\xde\x4a\xf9\x2c\x55\x51\xb5\x27\x79\xe5\x70\x4e\x3a\x8c\xdb\x1a\x8a\x18\xe6\x69\x5f\x1b\x8a\x98\xce\xba\xcf\x3a\x6e\xe2\x76\x02\xfa\x2b\x9f\x1f\xf4\x1f\x0c\xd8\xe0\x01\xa6\xc0\x59\xbd\x3b\x91\xd2\xde\x1b\x41\x29\x7e\x57\x8b\x87\x86\x69\x09\x19\xa4\x15\xcc\x75\xcf\x0d\xfb\xb3\x7f\xed\xed\x1f\x2d\x31\x06\xde\xa5\x90\xb1\x8e\x1b\xe7\x15\x4e\x96\x1b\x39\x91\x3d\x42\x2b\xa2\x14\xad\xc0\x30\x4e\x3b\xd9\x10\xa5\x68\x03\x86\x72\x68\xb2\x20\x4a\x19\xb4\x8e\x67\x43\xf0\xda\xf2\x6b\xf4\xc3\xde\x51\x22\xfa\xf9\x87\xfa\x28\x51\xa9\x0c\xcf\x92\x79\x58\xbe\xc3\x7e\x56\xb9\x7e\x37\xf6\xe7\x8f\x87\x4e\x40\x6d\x19\x8b\x3c\x4c\xd9\x18\x01\x00\x88\xc6\x08\xb2\xc6\x08\x4a\xb7\xa8\x47\x90\x56\x60\xe1\x55\x9d\x97\xac\xaa\x54\x4e\xb2\xac\x3a\x71\x68\xac\x0a\x72\x34\xac\xa4\x0e\x8c\x97\x40\xc7\xde\x78\x35\xf4\x40\x8f\xbf\x4f\x03\x1f\x3f\xb7\x25\x8d\x4a\xcb\x86\x77\x2f\xfc\x92\xc2\xba\xa4\x52\x6e\x16\x64\x21\x31\xc3\x29\xeb\xb3\x97\x41\xe3\x66\xa7\x56\x09\x8a\xbc\xaa\xfa\xd5\xf0\x12\x57\xf9\xb0\x57\x2a\x5f\xf3\x8c\xd7\x87\xd4\x60\x5b\xb0\x44\x18\xa7\xb9\x78\x1d\xa0\x1f\xa0\xba\x4d\x06\x4e\x7e\x7d\xe6\x8b\xfb\xcf\xbc\xa8\xcf\x7c\xf9\x09\x67\x3e\xfa\xf8\x99\x2f\x99\x01\x4f\x3e\x72\xe6\x53\x58\x9b\xfa\xbc\x5f\x1e\x3a\xb8\x49\xb6\x1f\x2c\x43\xc9\x89\x03\xbc\x64\xce\x6e\xdd\xa4\x55\xf3\x71\x19\x4e\x6a\xd3\x4a\xac\x36\x37\xdb\xb7\x8d\x68\x80\xda\x03\x16\x6b\xf7\x95\x6d\x00\xe9\x33\xd2\x41\x9e\xab\x49\x00\xb2\xe7\xb0\x8d\x47\x64\x55\x9a\xa3\x08\xc5\x78\x53\x41\xa4\x58\xaa\x9a\x19\x95\x16\x12\x90\x3b\x45\x42\x9e\xf1\x14\x9b\xdb\xc2\xcf\x00\x95\x0c\x02\x58\x06\xb4\x77\x02\xca\x13\x59\x32\x20\x3e\x23\x34\x65\x0e\x10\xc1\xe8\x0e\x42\xf9\xd6\xa5\x91\xba\x53\x82\x1d\xb4\xb8\x47\xdb\x14\xb4\xdd\xd0\xd9\x62\x78\xd2\xcb\x9a\xb7\x9c\xd4\x01\x26\x03\xa3\x96\xb0\x15\xe2\xcd\x25\x3f\x63\x1b\xbe\x05\x52\xee\x12\xa8\xd1\x0b\xb6\xe6\xd7\xf5\x04\x98\x0c\x16\xc6\x29\x34\x87\x85\x86\x12\x0b\x26\x29\x66\xea\x7b\xdd\x20\x40\x06\xb5\xa3\x17\x6c\xc5\x94\x45\x45\x9b\xb0\xd6\xbb\x5c\x18\xbb\x3c\xab\x76\x74\x7a\xe7\x8e\x6e\xfb\x0e\xa8\x76\x95\x19\xc4\xff\x77\xd7\x2e\x6f\x7a\x13\x34\x0a\x65\x35\xda\x39\x6f\x49\xea\x00\x48\x05\x52\xcf\xc0\x1a\x43\x91\x8b\xbf\xe3\x39\x20\x81\x33\xbe\x00\x24\xb0\xe5\x3b\x67\xe7\x9e\x49\xbd\xcf\x76\xfc\xd0\x89\x80\x63\xf4\x3c\x99\xf1\x92\x07\xee\x12\xd6\x3b\x74\x37\xb0\xdc\xb1\x7b\x05\xc3\xaf\x21\xee\xa5\x83\xca\x9e\x0b\xf7\xda\xb9\x46\xc6\xa4\xbe\x3a\xe4\xba\xc7\xcf\xd1\x99\x7c\x19\xa0\xb4\xf2\x1a\xa5\xb0\xa7\xcf\x83\x9b\x1b\x94\x8d\x78\x2b\xa9\xbf\xce\xdc\x15\x00\x64\xdf\xa0\xf9\x2e\xd8\x25\x7a\x9e\x27\xd6\x0b\xf6\x16\x39\x96\x67\xb8\xd7\x9e\xc3\x0f\xec\xb5\xf7\xfc\x15\xf4\xf8\x1d\x7f\x0e\x3d\x7e\xc9\xcf\x9c\xf7\xde\xce\x79\x37\xb2\x5e\x3a\x2f\x7b\x5b\x54\xdc\x40\xcd\xd6\xce\x79\x0f\xe3\x78\x67\xf7\xb6\x1e\xd0\x21\xe3\xee\x09\xf0\xf2\xe3\xc0\x59\xba\xa1\xb3\x71\x63\x07\x35\x1d\x56\x73\x72\x5e\xb1\xe7\xec\x05\xbb\x84\xde\xb2\x0b\xfc\x73\x4d\x53\xc4\xd6\x6a\x33\x43\x32\x5e\x34\xa1\x72\xd1\xea\xb7\xa7\xd3\xbe\x55\xd4\x0f\xc0\x3f\xc3\xb4\xf9\xa4\x8f\x62\x4b\x80\x88\x83\xc7\x46\x90\x99\x4c\x84\x51\x1e\x99\x37\x18\xdf\x17\x42\x35\xe0\x28\x68\x74\xa4\x1c\x64\xf0\x18\x76\xaa\x6f\x92\xd7\x8d\xf0\x26\x45\x66\xb8\x46\x64\x56\xd3\x42\x43\x9b\x82\x58\xd3\x02\xef\x00\x10\xf0\x07\x61\xcf\xa1\x78\x6a\x1a\x46\x02\x34\xa2\x4b\x3f\x0c\x28\x47\x2d\xa8\xab\x1b\x33\x11\xac\x4d\x82\x30\xcb\x4c\x69\x56\x85\x05\xf6\xcd\x61\xf0\x1e\x41\xfc\x66\x29\x4b\x91\xfb\x8d\x24\x3e\xa6\xe8\xbf\xbd\xf3\xac\x25\xad\xb3\x76\xd7\xe1\x4a\x5a\x26\x36\xc6\x29\x32\x6f\x5d\x89\x8c\x29\x35\x02\xcc\xd8\x0d\xd8\x7a\x27\xd2\x00\xc2\x51\xea\xc1\xd1\x31\x86\x58\x3d\xdc\x1b\xd2\x47\x63\xe5\xc2\x3e\x94\x3e\x20\xab\x59\x4b\x5d\x58\x97\xd6\xb6\x5c\x52\x9b\x1e\xa2\x71\xb8\x25\x4b\xc1\x23\x10\x03\xc7\xc7\xb2\xb6\xd7\xaa\x7e\x58\xe0\x16\x11\xcf\x9f\x09\x2b\xe5\x71\x66\xad\x11\x94\xd9\xc0\x37\x28\xeb\xaa\x08\xd8\xe4\x79\x1d\xd2\x8a\x2f\xa5\x93\x0a\xca\xea\x36\xd2\x0f\x64\xc5\x4a\xab\x45\x18\x68\xb5\x11\x1c\xa8\xbc\x7b\x15\xc4\xd1\x5c\x6a\x2b\x65\x48\xdc\x42\xdf\x15\x53\x83\xa0\xc6\xa6\x6c\xc6\x3d\x96\x82\xd0\x83\xd3\x81\x7e\x4b\x83\x47\x28\x82\x7f\x08\xdc\xf0\x86\x0f\xe1\xf9\x8a\x63\xe4\xc4\x3e\x80\xfb\x3e\x00\xb0\x3e\xc3\x3b\x56\x2f\xf9\xcb\x10\x80\xd4\x0e\xb5\x32\x28\x10\x38\x37\x23\x52\xc3\xc1\x53\x1b\xf6\xc0\x46\x6f\x8e\x00\x3d\xa8\xd0\xd4\x0f\x15\x4f\xd6\x05\x1e\x00\x1b\x3e\xe9\xe4\x3e\xcb\x31\xec\x46\x18\x47\x9b\x67\xc9\x32\xfe\xc4\x40\xc8\x97\x55\x58\x65\x0b\x7a\xc7\x5e\x86\xb6\xff\xbd\xb0\xe0\x19\x28\x4e\xda\x07\x25\x6a\x10\xaf\x75\xcd\x2f\xb6\x85\x30\xa9\xca\xfb\xaa\x3e\x27\x21\x50\x32\x41\x01\xb6\xd2\x22\x26\x52\x8b\x48\xbb\x40\x7b\x0d\xe1\x2e\xf1\x77\xb2\x9d\x73\x6c\x87\x42\x18\x7e\x5a\x13\x74\x51\x0e\x4a\xfa\xfc\x15\x85\x5b\xc2\xbb\xba\xf0\x62\xbc\x4f\x2b\xbd\x84\xd2\xa4\xb3\xe4\xae\x74\xd4\xc2\x8a\xa6\x00\x3c\x67\x34\x5c\xc8\xdb\x08\x87\x7d\x4f\x4d\x57\x24\x30\xf9\xf2\xe4\x31\xc2\x55\x0c\xfc\x02\xd5\xe9\x37\x59\xeb\x15\x6e\xfe\x39\xed\x7c\xa8\x3b\x4b\x8b\x4f\xee\xe5\xba\x51\xf7\x59\xa3\xee\x6d\x65\x13\x3a\x1e\x4e\xd0\x73\x49\x25\xf8\x7d\xd5\xec\x9a\x6e\x55\xc1\x3f\x5b\xd5\x76\x15\xaf\x18\x08\x41\x0c\xa8\xae\x60\x7e\xc7\x66\xfb\x20\x04\x1d\x19\x0f\xc6\x0b\x64\xda\xa5\x80\x47\x95\x1b\x82\xc0\x26\x0d\x08\x95\x9a\x10\x8a\x20\xf0\x9e\x61\x9e\x34\x8f\xc1\x81\x08\xdc\x6b\x26\xbd\x19\x64\x4d\x87\x31\x66\xfa\x87\x85\xad\xc4\xf1\xbb\x60\x92\x78\x2f\xc9\x86\x60\x9c\x4c\x12\x17\x1e\x9b\x25\xe2\xac\x7d\x0f\xcd\xa4\xb8\xb9\x11\x13\x00\x3b\x0b\x12\x9a\xad\x24\xbb\x61\xfb\xf4\xea\x53\xa2\xfa\xe6\x87\x06\x57\x92\x67\x77\xc6\xc2\xd3\xe7\x19\x79\xde\x69\x81\x7d\x2a\x74\x9f\x8a\x49\x81\x7d\x42\x1b\x44\x63\x86\x16\x06\x56\xa4\x7a\x6b\x90\xa0\x66\x17\xbe\x7a\x18\xb7\xc3\x90\x9e\x67\x1f\x95\xae\x29\x9f\xc2\xc0\xd4\x5f\xd6\x9e\x99\xea\x3a\x25\xb1\xe7\x9b\x19\x3b\x99\x1b\x38\xe5\x01\x61\x57\xe8\x44\x5e\x0e\xcc\x66\xe0\x64\x5e\xec\x94\xe4\x26\x97\x3b\x11\xd0\x2d\x69\x53\x12\xa7\x74\xa5\x65\x43\x2e\x17\x35\x7a\x95\x9a\xad\x7e\x92\x00\xee\xbf\x1b\x53\xe4\x41\x2f\x0f\x8f\x09\x68\x2e\x1a\x93\x9b\x57\x63\xca\x3c\x98\x81\x96\xe8\x6e\x99\x1d\xec\x4d\xd2\xf0\xfc\x3a\x70\x81\xb7\x8a\xdf\xa6\x23\xb6\xa6\x4e\x31\x52\xf1\xcb\xf1\x3a\x91\x0d\x9a\x90\x94\x38\x3b\xf4\x14\xd9\xcc\x4a\xc7\xfd\x49\x34\x2e\xfd\x72\x1c\x11\x29\x88\xdc\x3e\x70\xce\x78\x55\x21\x4f\x5c\x7c\x46\xcf\x62\xa0\x1d\xd1\x25\x4e\xab\xb2\x00\x7d\xf1\x72\x84\x45\xf3\x71\xe4\x47\xe3\x7c\x94\x7b\x3c\xac\xf4\x05\x56\x8c\x26\x02\xc0\x47\x79\x86\xc3\x69\x6e\x57\xaf\xd8\xf7\xdc\x9e\xd9\x64\xff\x1d\x13\xe3\x66\xa8\x46\x1a\x23\x27\xb3\x8a\x11\xdd\xf0\x87\xaa\x0c\x51\x5f\x3a\x82\x06\x71\xa6\xdb\x8d\x85\xaf\x43\x34\x55\xf5\x32\x3f\xb3\xdd\xa1\x6c\xeb\xf5\x0f\xde\xf3\xc0\xfe\xd2\xaa\x5e\x8d\xe3\x7e\xd5\xb2\xe5\x40\x30\x85\x81\x28\xf1\x2b\x94\xc2\xf8\x91\xda\xa4\xf6\x3e\xc2\x30\xa3\xa0\x29\xf5\xb1\x6c\xc2\x0f\x73\x6c\xf3\xff\xcb\x0d\x16\x2c\x69\x36\xb8\x6e\x5c\x93\xd7\xcd\xd3\x32\x0b\x8d\x5d\xb6\x6b\x26\x17\x74\xb1\xab\xe1\x11\x9b\xb5\x0c\x2b\x1b\xc7\x22\x6a\x6c\xfb\xd4\x34\xf1\xd4\x47\x46\xda\x75\xc2\x81\x29\x1b\x4e\x83\x31\x2f\x1b\x4e\x83\xb9\xe9\xec\x88\x17\x4a\x9b\xce\x8e\x02\x09\x1e\xb5\x7a\xc4\x47\x19\xf4\x7e\x01\x9c\x13\x86\xb8\x71\x52\x07\x9e\xf1\xda\x1b\x0a\x96\x3c\xe8\x55\xa5\x57\x68\x35\xb3\x6a\xc4\x2e\x37\x3d\x7c\xa5\xa8\x7f\x65\x3b\x4b\x26\xea\x4f\x2b\xa8\x08\xbe\x64\xe8\x37\xea\x16\x4e\x8e\x6e\x33\x4e\x0c\x4f\x0b\xf2\x7f\x8c\xe0\x29\x38\x70\xba\xd1\x8e\xb7\xba\x4f\x4c\x7e\x4a\x8d\xcb\xc5\x32\x38\xf4\x28\xaa\xb7\x09\x27\xee\x1b\x1c\x4d\x13\x2c\x5c\x50\xaa\x5e\xfc\x0d\xde\x49\x42\xf7\x66\xa1\x0b\x95\xe1\x55\x9c\x1d\xf0\xa4\x35\xec\x47\xc8\x4b\x54\x7b\x6c\x9a\x7e\xa4\x64\x4b\xa2\xee\xba\x83\xa9\x33\x3d\xe7\x03\x7b\xf4\x67\xe8\xde\xe1\x43\x1b\xf0\x86\xa7\xbc\xed\x04\x2e\x7c\xcb\x00\xd2\x09\x98\xfc\x10\xde\xd1\x89\x38\x72\x33\x7a\x63\x52\x14\x4a\xd6\xc9\x86\x1f\xec\x5f\x87\xfd\x60\x0b\xd8\x0e\x88\x8d\x0d\x97\x56\xd9\x75\x03\xc0\x03\xa8\xaa\x4a\x27\xb7\xf8\x7c\x40\x6c\x58\xe5\x30\x92\x2f\x8d\xd3\x70\xb9\x8f\xc6\xcc\x90\x7d\xc6\xde\x2e\x4d\xef\x79\x04\x80\xb0\x7a\x65\xe5\x46\x1f\x35\x55\x48\x2c\x72\x1a\xce\xf3\xf7\xe0\x97\x66\x63\xd2\xc1\x5c\xa9\x71\x50\x9c\x8a\x87\x25\x6a\xf8\x34\x37\x56\xef\x90\x4a\xc8\x81\x49\x06\x8c\xc8\xea\xf3\x81\x41\xf2\x9d\xa8\x97\xb5\x30\xca\xc5\x1d\x38\x1c\xa1\xb8\xf7\x26\x70\x9f\x07\x63\x79\x31\xb9\x7c\x01\x6a\x64\x4c\xe6\xfe\xf4\x8d\x9e\xb4\xc6\x39\x95\xc7\x0b\xaf\x0c\x28\x69\xf8\xf6\x01\x0d\x5a\xe4\x24\x2d\x05\x1a\x7e\x39\x8c\xb8\x0f\x80\x38\xca\x80\x86\xe4\x68\xbd\xeb\xe2\x35\xa6\xb7\xb8\x0c\x78\x2d\xd0\xc4\x00\x1d\x92\xf9\xc7\xdb\x0e\xb2\x9e\x69\x3a\xde\xab\xbe\x63\x0f\x7b\x18\xa2\x19\xe7\x32\x73\x8c\x9e\x23\x95\x60\xf7\x2a\x63\x89\x68\x72\xc0\xa5\xb5\xa9\x92\x83\x0d\xf9\x23\xde\x72\xb8\xbf\x78\x77\x29\xeb\x22\xa6\x21\x17\x8e\xa5\x6a\x3c\xed\x65\x6c\xd0\x8b\x6c\x1b\xe6\x1a\x57\x09\x78\x10\x83\xda\xbb\xbe\x97\xda\x8a\x6a\xd5\xa0\x31\xdd\x25\x4e\x77\x64\x4e\x77\x79\xe7\x74\xef\xcf\x22\x80\xd1\xc6\xec\x59\x85\x47\x34\x54\xd6\x2b\xdd\xc4\xb0\xf2\x27\x37\x87\x49\x90\xf9\xf7\x4f\x55\x74\x9f\xf6\x32\xf2\x7e\xc4\xfb\x23\xf7\xe7\x90\x26\xc2\x08\x16\xd0\xa6\xc5\xab\x25\x6d\xee\x8d\x02\xaf\xb8\x35\x88\xee\xb7\x99\xe9\x8b\x42\x12\x0b\xf2\x81\x23\x06\x0f\x21\x79\xcd\xb0\xc1\x08\x85\xc1\x60\xd6\x84\x61\x8b\x19\xd4\x9a\xae\x4c\xf1\x25\xc2\x60\x4a\x46\x15\xcf\x4e\xa6\x46\x13\xb3\x42\x52\xc7\xdb\xbe\xf0\x13\x8a\x59\xb9\xcf\x27\xea\x8a\xcb\xff\xaa\xe2\x3b\x58\x64\xa9\x83\x88\x0e\x55\x4d\xf1\x78\x39\x17\xda\x9d\x54\xf9\x4a\x28\x37\x9b\x77\x40\x9e\x5a\x84\xb5\xf1\xce\x6e\x6b\x3a\x0d\x91\xfc\x0a\x58\x88\x76\x52\xc1\x8c\xd1\xbb\x2b\xdf\xdd\x60\x36\xd3\x1e\x7b\x05\x5d\xa8\x47\x5d\xab\x34\x81\xcd\xfe\xc9\x7e\x1b\xe1\x07\x9a\x6b\x7c\xdf\x0a\xa3\x61\xa3\xe1\xcd\xde\x20\x5c\xd0\x60\xab\x4a\x7a\xd5\x4c\x1a\x18\x49\xcf\xb3\x3b\xa3\x09\x4d\xfb\x8c\x82\xa6\x0c\x61\x87\x0c\x47\xc5\xb8\x1c\x95\xae\x2b\xf3\x8e\xc8\x13\xf1\x67\x8c\x65\x33\xcd\xbc\xe1\x0c\x05\x08\xf8\x34\xa0\xa7\x72\x86\x8e\xe5\x23\xdb\xf3\x32\x20\x53\x33\xd7\x9d\xf1\xb2\xc6\x00\x32\xe0\x51\xbf\x11\x29\xf6\x7d\xb6\x17\x52\x85\xac\xd1\x6e\x6e\x2a\x43\x34\xc3\x23\xb7\xc5\x42\xca\xcb\xae\xc9\x75\xc4\x31\x23\x80\xc8\xcb\xb1\x0b\x79\x21\x76\xed\x5e\x62\x38\xe1\xee\xd1\x72\x24\x85\x88\xc8\xd9\x13\xaf\x3f\xc3\x32\xa5\xba\x32\x85\xee\x23\x24\xe9\x44\x4c\x37\x91\x00\x85\x46\x46\x74\x14\xbd\x01\x1f\x62\xa0\xc9\xac\xc0\xb1\x42\x2f\xb6\xbd\x85\xba\x5f\xaf\x67\x2d\x9c\x14\x78\x99\x6a\xef\x4e\x4b\x77\x05\xdc\x0e\x1a\x22\xe6\xc6\x98\x7e\xc9\x0e\x84\xac\xa9\xdd\x4c\xb5\xef\xdd\x91\xbc\xfc\x5b\xd0\xd4\x50\xf3\x2d\x1d\xcf\x1b\x24\x82\x8a\x92\xc4\x04\xb6\x72\x4a\x9e\x2f\x85\x74\x42\xce\xa3\x42\x3d\x85\x51\x16\xc6\xa2\xe5\x93\xfc\x8d\xd1\x07\x11\x4b\xff\x39\x58\x00\x0c\x88\x98\x19\x32\x32\xac\x24\x31\x39\xe1\xd7\x54\xee\x0f\x82\x2a\x3f\x87\xfa\xf6\x77\x8c\xa0\x12\x2b\xa7\x40\xe8\x49\xd9\x50\x85\xfd\x6a\x0e\x57\xf5\x06\x43\x70\xa1\xc9\x13\x06\xc5\xde\xc1\x96\xfb\xb0\xf5\x05\xdb\xf9\x19\x21\xb9\xee\x6b\x54\x3e\x75\x5f\xe1\xa5\x02\xc9\x6c\x44\x4d\x56\xac\x57\xc8\xa3\x51\xa8\x6a\xa1\x30\x30\xc2\xd3\xaf\xdd\x6d\x15\x1b\x26\xab\x3f\x86\x3b\xfc\x3a\xb2\x23\x1e\x42\xc5\x41\xb7\x4c\xa4\x77\x20\x50\x69\x50\x33\xde\x46\x05\x35\x36\x3e\xff\x81\x9f\x6b\x5e\x8f\xa7\xa3\xb8\xd9\x60\x7c\xa8\xc1\xb8\xdd\x60\xca\x63\x1c\x43\x15\xbb\x00\x5a\x8b\x91\xf6\x4f\x47\xf5\xb7\x3f\xf0\xdb\x48\x45\x0e\xa8\x4c\x22\xa9\xed\x9c\x0f\x46\x0b\xe0\x2c\x5d\x37\xb7\xd1\x44\x32\x27\xa3\xc9\x69\x0e\x1b\x84\xfd\x08\xc5\x68\xad\xf1\x2a\x2d\x58\x23\x16\xcb\x1f\x20\x91\x42\x69\x63\x8f\x25\x16\x98\x55\xe6\xe3\xff\x82\x31\x35\xb2\x92\x4c\x14\x08\xac\xdf\x68\x0e\x7e\xc3\x7e\x18\x1e\x65\x4d\x40\xa1\x83\x80\xa0\xc3\x24\x2d\xcd\x0e\x96\x06\x56\xff\x62\x14\x50\x38\x83\x8c\x7f\x9b\x59\x01\x4b\x6d\x38\x37\x19\x7a\x74\x05\x30\x94\x97\x23\x1d\x4c\xa0\x04\x84\xf8\xbd\xcc\xc0\x8e\xac\x12\x33\xc0\x71\x1e\x7b\xa8\xf0\x29\x20\xe7\x6b\x8c\x20\x62\x03\x07\xae\xbf\xe0\x7b\xf7\x15\xde\xe6\x09\x0f\xf2\x86\x1a\xf2\xd8\x09\xba\x6f\x90\x5a\xd6\x9f\xb0\x95\x37\x2a\xb8\x04\xed\x67\x84\xeb\xd0\xad\x28\xc9\x51\x2e\x5e\xe0\x55\x63\x28\x52\x52\x50\x1e\xe1\xbd\xda\xd9\x7f\x64\xf2\x12\xcf\x6f\x30\x78\x17\x4e\x07\x6d\x66\x55\x2e\x44\xd5\x78\x28\xa7\x4d\x54\xb3\x27\xf3\xa9\xf9\xa6\x09\x83\x1a\x28\xd2\x05\x3c\x0a\xe9\x4f\x50\xd5\x4f\x77\x02\x87\x77\x94\xb5\x47\xb2\xf9\x3f\x32\xcd\xcc\xc7\x5c\xe5\x40\x4f\x31\x34\x33\x8f\xc9\xcc\x1c\x66\xdb\xcb\x29\xdc\xf5\xce\x5b\x00\x1b\x27\x64\xa6\x2b\xbe\xa1\x84\x39\xfc\x62\xc2\x1a\xb8\x43\x6b\xe5\xcc\xbd\xa5\x73\x85\x5e\x0f\x2b\x67\xe5\x2e\x81\x7d\x3b\xe3\x57\xce\x95\x3b\x77\xe6\x6c\x8b\xe7\xcb\x9a\x3b\x3b\xc8\x72\x66\xf7\xd6\x6e\x0e\x67\x0d\x8a\x9c\x79\x57\xce\x0e\xdf\x17\xb7\x23\xd8\x52\x72\xb0\x2c\x66\x1b\x54\x06\xd4\xdd\x8f\x75\xac\x0d\xf8\x5a\x4f\x48\x02\xd9\xf4\x57\x39\x1b\x34\x11\x06\xbb\xf1\x6d\x43\x92\x91\xc8\xde\x23\x29\xb2\x25\x32\x04\x2f\xb4\x2a\x81\x52\xc2\x99\xd3\x36\xdd\x0f\x32\x15\x0f\x08\x80\x00\x25\xa4\x55\x48\xfb\x5e\x7f\x04\x44\x28\x55\x32\x92\x78\x1a\x2b\x0a\xa9\xa2\x98\x87\xaa\x22\x1d\x93\xff\x81\x8c\x40\x93\xf3\xc0\xcb\x60\x42\x81\xd8\x84\x1a\x10\x6a\xe7\xbd\x4a\x07\xb0\x98\x58\xde\xca\xad\x09\x31\x98\x38\x6f\xe8\x00\x34\xcf\x9d\xbc\x67\xc1\x23\xc0\xf6\xd0\x8d\x7b\x43\x17\xc0\x3b\xe2\x60\xbb\xb7\x70\x81\xf6\xcb\xdc\xa0\xe1\x7f\xf9\x7d\x6b\x9c\xaf\xb0\x27\xd5\x5e\xf8\x36\xa3\x8b\xb6\xb5\xd4\x46\x0e\xa0\x12\x64\xec\x88\x16\xcd\xba\x5b\xbc\xe6\xc6\x70\x56\x30\x14\x6b\x0a\x06\x6b\xf0\x9e\x37\xe2\x23\xfc\x70\xf8\xa4\x36\xd5\x2c\x4a\x0f\xb0\xe2\x5a\x03\xb0\xe4\x5a\x27\xb0\xe1\x4a\x1b\x00\xdb\xea\xc7\x10\xf6\x54\x65\x78\x39\xf7\x3c\x3a\xdc\x11\xbf\x9a\xce\x01\x51\x52\xdc\x89\x4c\x6c\x02\x54\xd4\x91\x51\x77\x00\xc4\x15\xf5\xc8\xb4\xe6\x46\x37\x49\x34\xe5\xb6\x73\xb2\xe3\xee\x0a\x52\x50\x67\x3c\xa7\x55\xcf\x69\xb1\x82\xa9\xeb\xa6\x5f\x86\x33\xbc\x0c\x55\xf9\x3d\xe3\xbe\x17\xb4\xef\x2d\x82\xa6\x05\xba\x7b\x90\x06\xb7\xf4\x04\x79\x89\x92\xb5\x27\xde\x02\x1d\xa2\x0f\x50\x9f\xee\xec\xfd\x39\xb3\xbe\xcb\xac\x48\x1d\x1e\x46\x25\x17\x12\x26\x6f\x3c\x04\x34\x13\xd8\xf8\x0b\xd8\xec\x18\xd4\x51\xa6\x4c\x84\xbf\xb9\xf5\xa9\xde\x8d\xcc\xb9\xf2\x32\x95\x93\x80\x3b\x7d\x9d\xa0\xe5\xeb\x4e\xe5\x54\xda\xe9\xe3\xe3\xd2\x5b\xaa\x9c\x2b\x5d\xe7\x4a\xd5\xb9\x54\x75\x2e\x65\x4e\xe8\x86\x59\xe7\x52\xd5\x49\x5d\xb9\x95\xd7\x0a\xb2\xa8\x06\xc4\x40\xde\xb9\xae\x79\xf3\xf0\x9f\x4d\x1a\xa9\xe8\x06\xa8\x5c\xf2\x12\xf9\x6b\x98\x7d\xee\x93\x00\x5b\x89\xf5\x77\xf2\x27\xc8\xc2\x3d\x7a\x60\xd7\xa2\x05\x7e\x6b\x20\xe8\xd7\xac\xda\xc3\xa8\x5f\xa8\x44\x75\x0a\xc3\xe8\x73\x1c\x29\x70\x44\xf1\x30\x8e\x38\xaf\xaf\x03\x82\x95\x44\x07\x9a\x1d\xec\x0a\xd8\xd7\x5e\x0a\x0b\x0e\xfb\xdc\xa3\x18\x58\xf4\xbe\x80\x5f\x7c\x47\xb1\x96\x15\x3a\x0b\x2f\x76\x72\xe5\x90\xb5\x1a\x73\xef\x7d\xa0\x5c\x92\x96\x3c\x74\xe0\xfc\x39\x31\xba\xda\xc8\xd8\x58\xb0\x4b\x81\xc8\x5a\x42\x89\x0d\xea\x3b\xe7\x1c\xca\x6f\xbc\xdc\xa1\xd0\x58\x0b\x3e\x07\xaa\x7c\xcd\xb3\x06\x3d\xf3\x57\x36\x5a\xd3\x34\x24\x6c\x2d\x67\xa1\x84\x87\x2d\xbf\x72\x53\xf8\xdd\xf1\x85\x01\x01\x14\xc0\x44\x65\x3f\xcc\xd2\x82\x69\x72\x85\xaf\x2b\x72\x40\x4e\x1e\x1a\x95\xc7\x80\xff\xce\xe8\x88\x40\x35\xa7\x67\xdd\xdd\xcd\xcd\x9a\xce\x33\x3c\xa2\x25\xfa\xf6\x14\x9e\xb6\x32\x14\xd3\x59\xf7\xa5\xfd\x61\x07\xef\xaf\x15\xee\x3a\x83\xe7\x97\x55\xb8\x1d\x48\x7f\x43\xe9\x46\xea\x9b\x5b\x68\x41\xa1\xa4\x1d\x1a\x20\x40\xfd\x56\x12\xf3\xb5\xdd\x70\x54\xf9\xe3\x00\x75\x35\x22\x41\x46\xf7\xb5\x2c\x50\x00\x2a\x65\x50\x97\xa2\xd5\x30\xf0\xa1\xa2\xd5\x0a\xa2\xd5\xf0\xfa\x4f\x93\x48\x34\x0d\x4e\xdb\xd0\x85\x7f\x17\xc2\x59\xfe\xe9\xe3\xba\x45\x82\xf0\x0a\x92\x94\x08\x49\x00\x97\xa3\xdf\x87\x75\xf4\x35\xea\x77\xf0\x2a\xdf\x23\x44\x1a\x74\xc4\x0b\xb4\x8a\xf7\x0a\xb4\x82\xaf\x08\x2a\xfc\xb6\xa3\x6f\x44\x4e\xd9\x34\x22\xbc\x31\xf2\x52\xc5\x86\xd0\xb0\xa0\x64\x03\x33\x4a\xdf\xd7\x2d\x60\x7c\x69\x02\xe3\x23\x15\x92\x55\x11\x33\x81\xa2\xfb\xc9\x05\x83\x28\xfc\x29\x5d\x97\x58\xa8\x41\xc5\xf2\x1b\xd1\xff\x40\x9f\x23\x28\xed\x66\x88\x43\x30\xa6\x11\xc1\xb2\x0d\x5f\x74\xd1\xda\x68\x01\xcf\xb0\x19\x57\xee\x06\xed\x09\xd7\xdc\x5a\xba\x57\x78\x97\x39\x3a\x2e\x71\xbc\xe3\x8e\x0c\x47\xc7\xf3\x9b\x9b\xf9\x18\x68\x1d\xed\xe6\x84\xee\x4c\xca\x79\x4b\xfe\xed\xee\xea\x6b\x65\x94\xeb\x13\xe2\xee\x39\xc0\x8d\xf0\x16\xf0\x9f\x7a\x8e\x6f\xab\xad\x53\x15\x3c\x0d\x0f\x97\x8b\x8d\x72\xe1\xed\x6d\xe5\x50\x95\x41\x77\x01\xd8\xf5\xac\x2b\x00\x4f\xb0\x5c\x6b\x2f\x03\x52\xc1\x1b\x8c\xb3\x9b\x1b\xe0\xf8\xec\x4f\xee\x1c\x30\x41\xa5\xdd\xcb\x8c\x2e\x5a\xb1\xfe\xf2\xa9\x1d\x35\x4b\xa8\x3a\x8c\x5a\x0d\x27\xb0\x65\xa3\x43\xdb\x7a\x32\x8d\xca\x52\xe4\x24\x30\x80\x9e\xaa\x2a\xa0\xf7\x00\xde\xf7\x3a\xb3\x3d\x4d\xf7\xcb\xd7\xf9\x65\xf9\xba\xbe\x3a\x20\x5c\x40\xb7\x81\x5d\x72\x74\x21\x36\x4c\x70\xd5\xe6\x23\x38\x1b\x6b\xac\x9d\xe9\xd8\x51\x81\x04\xc0\x97\x2d\xf8\xfb\xaf\x7d\xd6\x14\xe0\x96\xaa\x4b\x93\x0a\xdf\x85\xf2\xcc\x96\xe4\xf8\x00\xd4\x5a\xc9\x24\x63\xcc\x32\xf5\x5a\xd0\x6d\xe4\xec\x47\x8c\x9a\x1b\xcd\x24\x66\xae\x2f\x53\xfb\x59\x95\xb0\x29\x47\x71\x57\x8e\x82\x1c\x6f\x0c\xc7\x82\xef\x5a\x2a\x9b\xaa\x6b\x0d\x39\x47\x86\x63\x43\x0f\x16\x98\x10\xdd\x53\xe8\x8b\x21\xd4\xfb\xd1\x18\x24\x4c\x1f\x3a\x30\x5f\xe2\x0d\x87\xd2\x03\x0d\x0a\x66\x3e\xce\x6a\x86\x7e\xd3\x01\x5d\xbf\x16\x63\x38\x51\x98\x3c\x53\x28\xf6\x73\xbb\x37\xdd\x80\x50\xd2\xe5\xa8\x66\x7f\xd5\xac\x4b\x84\xa7\x26\x9e\x4c\x33\xc4\xc4\x90\xc6\x09\x82\x2e\x3b\x80\x23\x08\x79\xb6\xb6\x2f\xfb\x52\x98\x79\x00\x95\x79\x19\x79\xe6\xec\x3c\x40\x68\xb6\x69\x97\x86\xa8\x0d\x51\x1d\x7c\x87\x3c\x3b\xa3\x8f\x49\x69\x5c\x0e\xd8\x58\x68\x62\x8c\x3f\x60\xdc\xfc\xa4\xfb\x9c\x63\x30\xeb\xa4\xfb\x06\x51\x2e\x22\xdc\x56\x5e\x51\x9a\x70\xac\x20\x56\xf9\x0d\x41\xd5\x5f\x47\xe5\xa4\x84\xb2\x38\x71\xf8\x9b\xf9\x25\xd4\x82\xd3\x77\x81\x57\x50\x43\xed\x25\x8c\xea\x57\x34\xab\xc6\xef\xdd\x97\xf8\x4b\x01\x0b\xdf\xc0\x57\xdc\x30\x50\xc8\xa0\x21\xb2\x03\x2d\xbd\xfc\xec\x96\x20\x15\xfa\x07\xbf\xd4\xd2\x4b\xdd\xd2\x1b\xb3\xa5\xb2\xd4\xe8\x64\x04\x83\x1f\xd9\x18\x81\xe7\x65\x25\xe7\x33\xac\xa6\xcc\x1e\x55\xac\x27\x05\xec\x4b\x4b\x5b\x22\x77\x42\xc8\xdf\x85\x68\x69\xff\xa3\x8c\x0a\x28\x6f\x7f\xa8\x42\xc3\x01\x47\x47\x9f\x13\xd8\xd4\xb1\x7a\x1a\x11\xba\x86\x0d\x13\x23\x3d\x6b\x1d\x95\x37\x37\x08\x90\x4a\xc4\xdd\x11\xe1\xee\x12\x71\x37\xc2\x05\x58\x5b\xdb\x46\x08\x01\xb4\x8d\xa0\x54\xf4\xaa\x44\x34\x04\xc7\x27\x82\xe3\x43\x55\x02\x9d\x1e\xd9\xec\x1f\xfa\x2b\x90\xbc\x41\x7f\x20\xf4\xe2\xc2\x0e\xcb\x7e\x56\x38\xbe\x54\xd1\x26\x7e\xcd\xd0\x43\x35\x03\x72\x0f\xd1\xf4\x17\xc4\x3a\xfd\x80\x7f\x6d\xc5\xfb\x7c\x08\x45\x1c\xe7\x3e\x90\xe3\x74\x42\xfd\xef\xc2\x4a\x1f\x06\x63\x82\xc1\xc0\xb0\x71\xcc\x88\x06\x8d\x68\x14\x69\xd9\xa2\x19\x77\x40\x2f\xc2\xc0\x60\x77\xc3\xc3\xd6\xb0\xf2\x28\x5b\x32\x35\x64\x34\x51\x98\xe1\x58\xaa\x90\xed\xd1\xb7\x82\xbe\x09\xf5\xcd\xb0\x04\x29\x1b\x6a\x53\xa3\xea\xb8\x99\xb2\x33\x4c\x38\x6a\x13\xb1\x0f\xb1\x08\x16\xfe\x11\x90\xf0\xe9\x1c\x86\x87\x11\xc2\xa4\x57\x08\x71\x93\xf2\x67\x27\xef\xd0\x33\xcc\x36\xca\x3a\x0a\x26\x93\xe0\xfb\x28\xb1\xea\x0f\x9a\xfc\xec\x3e\x42\xc7\x04\xd2\xf4\xe1\x63\xe6\xe2\xfd\x8a\x78\xd1\x34\xb6\x35\x0a\xc9\xf3\x9d\xea\x0a\x49\xf2\x06\xa5\x29\xb4\x40\x48\x9e\xf2\x2a\x01\x10\x7e\x4a\xd5\x52\xc2\xb0\x4e\x18\x62\x09\xa0\x1a\xd0\x72\x20\x9c\x9e\xd4\x09\x27\x33\xe2\xb8\x28\x56\xa9\x61\x36\xd2\xe8\x73\x15\xc7\x09\xfa\x33\xa8\xc2\x42\x3d\x68\x58\x33\x2b\x4b\x52\x15\xbf\x33\x47\x23\xd6\xc5\x38\x45\x84\xbc\xba\xb9\x29\x01\xfb\xc9\xe0\x8f\x5c\x99\xf1\xc8\x0a\x37\xe8\x53\x87\x4b\x0c\x24\x08\xf2\x08\x3b\x0c\x82\x20\x29\x59\x24\x31\xc2\x71\x65\xe0\x5b\x53\xba\x21\xd0\x91\x23\x38\xe9\x1e\x4a\xdf\x84\x87\xbc\x78\xe1\xee\x50\xbd\xeb\xa2\x70\x67\x03\xa3\x50\x54\xdf\x19\x34\x46\x93\xc7\xb6\x34\xa3\xb9\xbb\xc2\x18\x08\xf8\xb8\x70\x97\x78\x7b\x54\x31\xe6\x5b\x74\x3a\x1c\x73\x8a\x19\x73\x7a\x3a\xb8\xb9\x60\x6f\xf9\xb9\xfb\x70\xf4\x76\x7c\x3e\x72\xdd\x73\x3c\x75\x09\x3f\x9b\x9e\x1c\x9f\xcf\x6c\x75\xe3\x32\x3c\xcb\x5b\x93\x1f\xf4\x7d\x3d\xf4\x2d\xbb\xb4\x8d\x1b\x89\x1f\x0c\x28\x65\x4b\x93\xd2\x4c\x19\xaa\x32\x97\x90\xba\x6c\xa4\x9c\xa8\x32\x97\x34\x91\x40\xf0\xa0\x9b\x8b\x9a\x7f\x66\xd8\xf3\x2f\x4b\xed\x83\x8a\x56\x08\xcb\x4b\x92\x5c\xea\xe7\x42\xeb\xfa\x90\xe0\xa3\x1b\xb9\x25\x9a\xc1\x69\xea\x4a\x2f\x99\xa2\xbb\xf4\x32\x46\x14\xa9\x57\xde\x6d\xac\xd0\xf9\x3f\x1d\x77\x5b\x48\x89\x3e\xdd\x07\x6a\xa1\x43\x0a\x5e\x36\xdb\xfc\x9a\xb9\xe9\x81\xaf\xa5\x1b\x38\x4d\x93\xdb\x4d\x13\x36\xf2\x0f\x78\xcf\xe4\x87\x5b\x79\x7f\x3b\xde\x27\x98\xd8\xf4\x53\x4c\xb2\xa9\x98\xf1\x75\xa9\x62\xd0\xe3\x2d\x9a\x7e\x89\x9f\x28\xee\x7f\x95\xbd\x90\xd9\x13\xe0\x15\x28\x95\x32\x1e\x1a\x4e\x55\x22\xb3\x29\x23\x56\x6f\x58\xe0\x98\x61\x34\xaf\xca\x96\x39\xa7\x8b\x4e\x73\xae\xe9\x04\x61\x5c\x95\x6e\x0d\x80\xc3\x77\x0b\xc7\x8c\xd6\x3b\x3f\x80\x01\xa2\xd8\xb8\x5b\x21\x35\x5f\xfa\x14\x99\x91\xee\xa0\x65\x88\x11\x68\x74\x89\x8b\x17\x7d\x17\xf8\x77\x84\x91\xc2\x62\x7d\xbb\x38\xc2\xf0\x0c\x2b\x90\x97\x32\xe0\x3d\xe6\x80\x12\x32\xe0\xb5\xa0\x2e\x9b\x62\x0a\x94\xd5\x05\x2b\x14\x72\x0a\x05\x19\x13\xfc\xe3\xf2\xd2\x27\xe1\xc5\x0c\xdd\x23\xa1\x56\x14\xce\x63\x18\x57\xa8\x90\x2e\x76\x99\x18\x59\x33\x9d\x15\x68\x1a\xf5\x24\xa3\xd3\x4a\xf2\xe8\x43\x04\x84\xe5\xd6\x87\xb9\xa2\x68\xd5\x18\x29\xa9\x31\xaa\x4a\x2f\x7b\xaa\x83\x4b\x35\x3b\x76\x67\xb7\xb4\x28\xe6\x74\x38\x41\x18\x87\x12\x55\xfc\x45\xc1\xe2\xbe\x9e\x19\x2d\x92\xf1\x6a\x63\xfb\x40\x00\x98\xe2\xd6\xc7\xb2\x5a\xb2\xd3\xde\x0c\x7a\x07\x62\x64\xe0\x0c\x23\xae\xda\xc1\x14\xa6\x24\x9c\x66\x33\x1b\xf1\x23\x60\x14\x63\x7f\x04\xf5\x7d\xab\x06\x26\x59\xab\x75\x36\xeb\x2b\xd0\xb2\xb9\x10\xd9\x26\x8d\x83\x22\xcd\xaa\xc8\xb6\x9e\x97\x8d\x79\xff\xf8\xf8\x08\x1a\x69\xe7\x81\x36\x95\x03\x77\x6d\xde\x66\x98\xf9\xb4\xce\xcc\x94\x02\x7e\xcd\x8c\x2b\x23\xe8\x3c\xab\x47\x7d\x2b\x3e\xaa\x86\xf5\xb7\xea\xde\x56\x79\x70\x60\xcc\xc1\x58\xe0\x3d\x0f\x76\xa6\xfc\xe8\xcd\x73\x26\x73\x8d\x22\x95\xa5\x79\xea\x46\xa9\xf9\x19\xf3\xdf\x79\xda\x8c\x66\x3e\x76\xe4\xce\xca\x83\x16\x92\xd5\xa7\xfe\x18\x48\xdb\xbe\x0f\xa0\x7a\x30\x19\xf8\x49\xf3\x62\x8f\xed\x47\x0a\x0f\xbc\x04\x0e\x69\xa3\xc8\xe5\xfd\x45\x10\x3b\x74\x1f\x8d\x8b\x49\x62\x0d\x9d\xc2\xf6\x87\x50\xc3\xd0\xc3\x47\xb3\x92\x8b\x06\xb5\xe0\x18\x14\xe0\x75\x2b\xc5\x4c\x3b\x2f\x55\x1c\x60\x18\x53\xa2\xa5\xac\x32\x8c\x03\x5e\xf2\xad\xfb\xac\x5c\xcb\xa1\x28\x2a\x9b\x9c\x4a\x8d\xff\x90\x7a\x96\x4c\x84\x7f\xe2\x58\x09\x9a\x4f\x09\xaf\xfb\xe4\x91\xb1\x29\xdf\x7e\x64\x3a\x2a\x33\x06\x64\x96\x8c\xe1\xbc\x30\xcb\x0d\x6a\x8b\x82\xc4\x79\x63\xba\xe2\x3d\x2b\xdb\x76\x1e\x58\xd7\x90\x0d\xfa\xd8\x9f\x86\x30\xe3\xd5\x81\x1a\x09\x7d\xc3\x8a\x38\xa6\x8e\xed\xb9\xb9\xc3\x47\x77\x58\x35\x9f\x0e\xc9\x96\xa5\xfb\xf0\x91\xcd\xf6\x2c\x9e\x61\x8e\x7a\x2f\x03\xc3\xcc\x6c\xd0\x43\xc3\x88\x84\x0f\x70\xfa\xf0\x7e\x8e\x6a\x26\xea\x00\x3a\x03\x37\x71\x8c\x11\x78\x30\x84\xcc\x08\x5b\x68\x01\xa6\xb4\x9d\x97\x41\xaf\xb1\x75\xde\x37\xd6\x16\x65\x54\x7c\xd0\x7d\xd2\x1f\x3c\x7a\x6a\xb4\x61\xd0\xb1\x4e\xe1\x58\x00\xcd\x31\xd6\x9b\xd7\x98\xef\x77\x8d\xd9\xe9\x0d\x61\x15\x61\x5d\x9f\x74\x1f\x3d\x1e\x3e\xc2\x2d\xe3\x0f\x5b\xdf\x60\x7a\xa1\xa9\x47\xf4\xd5\x76\x12\x17\x7e\xfc\xa1\x7a\x6f\xe6\x1a\x76\x87\x46\xb6\xaf\x4e\x20\x63\x23\xf5\x71\x23\xf9\xe9\x43\xc8\x60\xa8\x9a\x4d\xca\x62\x15\xc6\x15\x65\x81\xcf\x06\x65\x41\xd1\x52\xba\x21\x51\x16\x31\x51\x16\x2b\x45\x59\x84\x8a\xb2\x88\x6b\xca\x22\xca\x5f\x05\xaf\xac\x94\x82\xd9\xd1\xf5\x3d\xf2\x43\x66\xe3\xed\xc1\x3e\xda\x4d\xd1\x7b\x64\x4f\xac\x88\xa2\x13\xc8\x77\x81\xe9\x2b\x5f\xd8\x7e\x34\x1e\x3c\xed\x4f\x22\x8f\x9f\x3c\xee\xfb\x1e\x3c\x13\xa6\x8b\x5c\x7c\xb7\x0f\xa1\x86\xbc\x90\xa4\x0a\x23\xd2\x84\x49\x52\x04\x71\x85\xa1\xc9\x6e\x8c\x34\x37\x46\x9a\x1f\x18\x69\x7e\x60\xa4\xf9\xe7\x8d\x34\xff\xbf\x32\xd2\xf0\xe3\x23\x7d\x63\x8e\x34\x0e\x6a\x6a\x11\x9f\x8d\x91\xc6\xcc\x10\x4a\xd0\x48\x63\x35\xd2\xe0\x53\xa8\xc5\x07\xab\x8f\x77\xe5\x9b\x16\x9f\x87\x86\xc1\x07\x08\x2b\x83\x8a\x4c\x90\xba\x32\x4f\xce\xeb\xb2\x16\x1a\x4f\xb1\xbb\xd0\x59\x34\x43\x98\xe2\x76\x4c\xba\x73\xb4\x04\xf9\xa7\x94\x86\x80\xbf\xca\x20\x5f\x30\x16\xf8\xf2\x2d\x52\x2b\x05\x06\xfb\xb4\x6f\x6e\x00\xf1\xa3\x7b\x0e\x5a\x25\x9c\x0a\x7d\x75\x0d\x82\x18\x7c\x46\x82\x0c\xdf\xe9\x21\xa3\xbf\x25\xfe\x55\x5a\x0a\xe5\x8b\x61\x65\xa6\xbc\x85\x2e\xb2\x21\xbb\x0d\x53\xd2\xe2\xd5\xfe\xad\x64\x5e\x4a\xe5\x6b\x63\x22\xe8\xb3\x80\x3e\x2f\x66\x4a\xec\x43\xa6\x4b\xd3\x8c\x45\xfa\xc3\x5b\x71\xcd\xa3\x86\x58\x07\xb8\x34\xa8\xc8\x37\x04\x77\xbf\x96\x1f\xbb\xe6\xc7\x50\x8e\x97\x6d\x2b\x5a\x84\xc8\x54\x43\x62\x9b\x97\xf7\x5a\xad\xcb\x71\x1a\x2e\x05\xdf\x96\x6d\xdf\x08\x8a\x9d\x28\x1c\xe3\x62\x1f\xa1\xae\x0a\x32\x54\x8d\x77\x52\x32\xb0\x15\x69\x4e\x80\x70\x58\xcb\xd0\x69\x8d\x2f\x64\xc6\x1f\x19\xa6\x5f\x18\xdd\xac\x7e\x8b\x21\x4d\x2e\x09\x1a\x23\xeb\x47\x54\xd4\xe0\xf4\xb1\x15\x2a\x5e\xf1\x61\x89\x5f\xc8\x90\x6c\x83\x9f\xf0\xa9\xc2\x36\xd0\xef\x23\xa2\x34\x6f\x6e\x30\x9e\x11\x3e\x0f\x66\x78\x41\xbc\x8c\x09\x51\x35\x66\x75\xa4\xde\x18\xe3\x4a\xc8\x07\xbb\x03\x1b\xad\xa2\x8a\x07\x92\x2a\x26\x33\x86\x90\x8c\x78\x18\x7c\x3d\xd1\x5f\x07\x33\xe2\xd0\x91\x62\xf6\x55\xdd\xb2\x51\x6a\xce\x6c\xc6\x0d\xf1\xce\x4e\x1f\x48\x4e\x16\x1f\xf1\x7c\x62\xc5\x5e\x4e\xa0\x21\x27\x50\xe0\xe7\x5e\x8c\xaf\x18\xf3\x52\xc1\x86\xba\x13\xaa\xe6\x4c\x0a\x71\xdc\x8e\x9c\x11\xcb\xe8\xb1\x37\x94\x3d\x8a\x59\x4e\x7d\xc9\x8f\x8f\xef\x2a\xe4\xe6\x2e\x8d\x71\x71\xc4\x57\x93\xbb\xdb\xc0\x19\xfe\xe3\x50\x13\x18\xb7\x13\x28\xf4\xd5\x7e\x0b\xaa\x88\xbb\x92\x0d\x2c\x69\x0d\x36\x34\x1d\x4b\x5a\x83\x0d\xad\x81\xe0\x7b\x05\x71\xe9\x3e\xb6\x12\xc2\x7b\x28\x3b\xb0\x94\x41\x26\xf5\x5a\x08\xdd\xb1\x25\xa9\x90\xf5\x6a\x58\x03\xdd\xf6\x40\x36\x6c\x1f\xe8\xb0\x6c\xd7\xdd\xc8\x0e\x8b\xea\x3a\xd7\x83\xec\x05\xc6\xa4\xa0\x7b\xee\xa2\x53\x31\xb2\xb3\x29\x50\x2f\xe5\x34\x92\xec\x45\xd1\x60\x2f\xb2\x9a\xbd\x30\xb4\xe8\x2d\x48\x89\x37\x34\x71\xe4\x46\x01\x78\x0d\x7a\x87\xd8\x51\xb2\xa1\xef\x15\x66\x20\xb8\xcf\xae\xe3\x41\x15\xb4\xaa\x5f\x87\xac\x1a\x30\x55\x75\x83\x00\xfe\xb3\x6c\x1b\xe4\x49\x0f\x05\x52\xc1\x4a\x6f\x04\x38\xe4\xbf\x29\x08\x0c\x27\xbd\x98\x8d\x0a\x94\x43\xa2\x3e\xad\xc0\x08\x43\x40\xc2\xe9\x05\x2b\x6a\x9b\x25\xe3\x96\x5c\x21\xb3\x97\x5a\x5d\x16\xb1\x3e\xd6\x85\xa6\x2d\xb2\x78\xcd\x4d\xd4\x5a\xe5\x56\xb7\xa6\x64\xa2\xa6\xf3\x4b\x7f\x1a\x81\x37\xda\x6a\x8b\xaf\x84\x8b\x03\x35\xd6\xe9\xe6\xc5\xb6\x6a\x3e\x49\x22\xc4\x01\x28\x6a\xf0\x37\xaa\x6f\x27\xa4\xf6\x61\xe0\x7f\x29\x14\xa4\x6e\x3e\x40\x83\x5c\xf5\x24\xcd\x2c\x47\x25\xd4\x10\xa1\xa5\x55\x79\x28\x57\x6d\x84\x59\x6b\x4b\x95\x04\x7e\x11\x6d\xc5\xfc\x86\x1b\x46\x1c\x5f\x98\x29\xc7\xdc\x7b\x62\xa8\x14\x9b\x85\x1e\x62\x98\xd6\x2d\xd9\x42\xc1\x03\x5e\x2b\x6f\x88\x39\x7f\x6f\x55\x63\x90\x85\xff\x2a\x9b\xba\x0b\x0a\x0f\x2f\x6f\xf0\x09\x57\xb8\xd6\xf0\xe5\x08\x39\xce\x60\xd1\x88\x99\xa7\xc5\x6f\x41\x75\x05\x0d\x00\x6f\x3a\x15\xe1\x29\xd9\xb5\xa5\xd3\x70\xc6\xe4\xaa\x20\xa1\xf3\x2f\x8c\x60\x57\xc8\x78\x20\xb2\x62\x17\xa0\xb6\x7c\x02\xb2\xa2\x7a\x76\xe0\x61\x0b\x14\x46\xe3\x83\x0c\x75\x5a\x89\x17\x65\x77\x90\x46\x97\x5f\xba\x5b\xe5\x20\x01\x50\x76\x9e\xae\x2d\xdb\xeb\x3e\xd2\x51\x6b\xbb\xbb\xfd\xb4\xca\xbe\x09\xa8\x04\x9d\x8d\xe4\x2c\xb3\x51\xdd\x39\x95\xf0\x5c\x4e\x42\x8c\x7d\x8c\x9d\xaa\x41\xec\x61\xfd\xba\xbb\x85\x72\x5b\x9e\xf5\x74\x71\x1c\xe4\x8e\x97\xd5\xbb\xa1\xb9\x6a\x9d\xdc\xca\x07\x13\x57\xa1\x83\xda\x04\x80\x7b\xe1\x2a\x8a\xe7\xb0\x69\xe1\xf1\x2a\x88\x4b\xd1\xc1\x59\xa3\xf9\x06\xaa\x8a\xbc\xca\xdf\xe6\x3c\x8b\x4c\x1c\xfc\x63\x5b\x66\x41\x56\x8a\x72\xfe\x61\x4f\xab\x6d\x68\x93\xaa\x01\xc5\x2b\x0c\x15\x0e\x5d\xdd\x90\x94\x3e\xe9\xe3\x69\x57\x2b\x8d\xf1\x63\xa4\x84\x63\x64\xab\x0b\x3f\x4a\x94\xa4\x18\xba\xaf\x43\xed\x12\x0d\x70\x47\xe3\x59\x75\xfe\x30\x66\x40\xa3\x07\x25\x8f\xf6\x7a\x20\x03\xdc\xd3\xc6\x4a\x4f\xcb\xaa\x17\x11\x5e\x54\x22\x25\x17\x55\x33\x59\xd5\x4c\xd1\x30\xf5\x4c\xa2\x86\xf8\x5f\xb7\x68\x68\xc0\x9a\x19\x68\xca\x0d\x9d\x57\xd4\xd2\x60\x50\xba\xb7\x97\x2f\x33\x6b\xa9\xa2\xc9\x25\x4d\xaf\xb0\xc4\x50\x6f\xe8\x8e\xdc\xdc\x4c\x01\x79\x1c\x76\x1e\xfb\x20\x41\x2f\xba\xb0\x12\xe0\xc5\x78\x7e\x88\xd6\x0c\xf5\x55\x74\x97\xda\x23\x8a\xee\x52\x7b\xa4\x91\x3e\xf4\xf0\xb9\x4f\x1a\xcd\x9d\xa9\x12\x0b\x5a\x43\x51\xee\x70\x7a\x71\x0c\x9d\x4b\xd4\x84\xc9\x78\xcf\x32\x59\x71\xd5\x91\x37\xa7\x78\xef\x51\x21\x31\x65\x31\xab\x82\xf0\x3e\x30\xb4\xb0\x71\xd4\x36\xe8\x18\x18\xd7\x26\x21\x36\xaf\x65\x62\x95\xfc\x8a\x22\xd3\x09\x32\xeb\x18\x97\xb4\x7d\x05\xc5\x3e\x3a\x50\x7f\xde\x9c\x88\x4c\xcc\x4b\xc0\x39\x0b\x40\x3a\xe6\x9d\x3f\xcd\x65\x06\xee\xa4\x41\x5f\xaf\x9a\xc9\x4b\x7c\x95\xb2\x14\x11\xc5\x56\x65\x23\x5f\x89\xe4\xa4\xaf\xcb\xcb\x57\x43\xb7\x21\x3b\x59\x46\xed\xe3\x42\x37\xb7\x4a\xe7\xf3\x92\x4b\xe3\xf1\x0c\x30\x32\x8b\xe4\xcc\x89\x53\x5e\xc0\xb9\x41\x41\x5b\xe9\x08\xb7\x32\x83\x36\xe2\xc6\x6c\x8c\xe1\x4d\x71\xe3\x49\xff\x3d\x7c\x0a\x90\x1a\x31\x2f\x0e\x6d\x0d\x52\xed\xe5\xa2\xbd\x97\xe7\x51\xd3\x5e\xe5\x62\x13\x84\x6f\x2f\x12\xb1\x05\x44\x6b\xbc\xa0\x26\x5b\xbd\x6e\x32\x71\x85\x4a\x6e\x33\x15\xd0\xaf\x99\x6a\xe0\xdb\xb5\xaa\xff\xde\xca\x0c\x51\x69\xa3\x3b\x4a\x75\x48\x2a\x61\x52\x02\x12\x5f\x9b\xb9\x45\x57\xcf\x4e\xf7\xab\xaf\xbe\xc2\x00\x7c\x63\x0c\xb4\x95\x39\xc6\x56\x38\x8b\xf6\x43\x5f\xe4\xa6\x68\x15\xab\xce\x80\x78\x06\x36\xa3\xa2\x98\xe0\xab\x8b\x5f\x17\xb6\xbe\x1d\x51\xe6\xdd\x51\xde\x15\x05\xf8\xa9\xf3\xee\x28\xef\x92\xc2\x0b\xe3\x6d\x74\x0d\x10\x17\x57\x06\x48\x76\x43\x8f\x50\x9b\x46\xa2\x16\x0e\x1a\x47\xd3\x52\x8c\x29\xd1\xc3\x98\x12\x64\x67\x8a\x16\x43\xd5\xad\x7a\xdb\x88\xfc\x67\xe8\xb2\x88\xee\x96\x7b\x19\x6a\x84\xe0\x10\xf7\x19\xb9\xab\xc5\xe8\x1c\x01\xf0\x94\xdc\x04\x4a\xc8\x50\x42\x7a\xa9\xd2\xf1\x52\xce\xf1\x50\x82\x58\xf4\x34\x18\xce\xd8\x75\xa4\xee\x34\x64\x74\x27\xd3\x1c\x5f\xb1\x05\x73\x3d\x22\xfc\x4c\x9a\x07\xd4\x4b\xd4\xeb\x06\xe0\xf9\x64\x14\x8f\xd3\x51\x8a\xbe\x19\xba\x26\xa8\x37\x55\x57\x6e\x6d\x30\xac\x3e\x1c\x69\xbc\x21\x42\x5a\x68\x96\xe6\x86\x0a\x80\x16\x2c\x47\x68\x36\x6d\xd4\x79\x05\x75\xe1\xe5\x0e\x91\x15\x90\x1a\x75\x03\x65\x2b\x93\xeb\x01\xe7\xf2\xa6\xb9\x90\x9b\x3d\x1c\x85\x78\x07\x8c\xf1\xe1\xf8\xf8\x08\x2a\x08\xd1\x15\x2e\xe4\xa1\x91\xc0\xf0\x96\x85\xd1\x66\x62\xcd\xc7\x57\x37\x37\x57\x9c\xcf\x8f\x8f\x61\x86\x4e\x61\x16\x27\x6b\x1a\x00\x9a\x7e\xe3\x13\x0f\x19\x85\x9c\xf4\x80\x91\xd0\xb3\x52\x62\xd4\x2a\x98\x26\x19\x7e\x69\x8d\x91\x74\x17\x68\x60\xb5\x43\x53\xab\x25\x3e\x9d\x01\x98\xc3\xfe\xa1\xd9\xa9\x9e\x19\x39\x23\x0c\x8d\x0d\xf9\x9a\xa1\xad\x21\xdf\xe9\x0b\x30\x70\xe3\x9c\xc1\xb7\xcc\xb0\xfa\x83\x8c\x40\xfa\x6c\x5d\xc8\xe9\xa0\xf2\xde\x1e\xa1\xd9\xc9\x19\xab\xf7\xc0\x65\x43\xad\xbb\x8d\x24\x8d\x67\x1c\xa8\xe4\x8e\xe3\x74\x49\x59\xe7\x22\x16\x85\x78\x60\x96\x60\xad\x6f\x58\xd0\x10\x8c\x47\x7b\x16\x41\xd5\xde\x96\xf4\xd9\x96\x17\x2e\xcf\x1c\x49\x84\x02\x46\x91\x2f\x3b\x34\x98\x71\x38\x46\xd9\xab\x59\x01\xba\xb8\xac\xe2\x07\x90\x97\x4a\x47\x36\xb4\x80\x9c\x94\x6a\xc4\x10\xbc\x47\x6d\x03\x9b\xcc\x15\xb8\xa3\x2b\x58\x10\x69\x58\x40\x96\x9f\x14\xbe\xfd\xa6\x56\xbf\x17\x2a\x3f\xec\x3c\x19\x3b\x70\x94\x3a\x3c\x45\x01\x50\xa6\xae\x04\xed\x3e\x72\xad\xcc\x4b\x29\x62\x67\x50\x5f\x56\x4d\x81\xf7\x6b\xc6\x69\xe8\x50\x00\xbe\xc0\xf6\x20\x33\x5e\x14\x0d\x45\xf0\xf6\x1b\x59\x6a\x24\xba\x44\x80\xbb\x21\x34\x12\x3b\x11\x2c\x15\xd1\xe1\x2e\x06\x4d\x88\x9d\x52\x1a\x73\xe9\x4c\x99\x4e\x36\x74\x08\x6d\xe8\x2c\x39\x17\x5e\x31\x55\x93\x81\x19\x97\xfb\x6d\xd4\x30\xb2\xd4\x2b\x51\xd1\x29\x4a\x86\x4e\x31\xb5\x81\x71\x33\x54\x02\x91\xe9\x8c\xb7\x57\x14\x30\x6b\x05\xa4\x26\x62\x5a\x78\x83\x56\xf9\x67\xad\xe5\x10\x3d\xc0\x7b\x11\xcc\x7e\x84\x37\x8a\x87\x1e\xde\x41\xd8\xcd\x5d\x4e\x64\xb0\x4b\x6f\xef\x5d\x8a\xaa\xb6\x76\x4d\x32\xe3\xd5\x1e\xde\xef\x6b\xbc\x5f\xf5\x89\x19\x5c\xa3\xe7\x45\x44\x89\x4a\x7e\xbb\x59\x2b\x83\xcd\x86\x8d\xc2\xf2\xa0\xa8\xda\xd4\x42\x44\x6d\x99\x56\x37\xa8\x66\xb6\x9e\x5a\xf8\xea\x1b\x7d\x7b\x6f\xd2\x0c\x03\x57\x23\xd3\x43\x82\x5a\x5c\x43\xa3\xbd\x77\x87\xa9\x8d\xaa\x5c\x93\xc8\x00\x82\x0d\xc8\x90\x9e\x26\x6f\x0c\x79\xfd\xfd\xab\x8b\xd7\x8c\xa9\x05\x86\x9c\x52\x3c\x69\x1c\xf1\x5f\xee\x5f\xe2\x07\x82\x94\x2e\xf5\x32\x43\x7e\xb9\xd2\x8d\x5a\xde\x18\x43\xc1\x78\xd2\x70\xd0\x76\x3e\x1e\xe8\x39\xbe\xcc\xb7\x6c\x8e\xaf\x73\xf3\x4a\xb7\x6f\x5a\x94\xc3\x16\xe8\xa8\x13\xba\xd1\x08\x0e\x42\x21\xa9\x1c\x2c\x4a\x5e\x71\x1e\xa5\x21\x71\x37\xdf\x91\x6b\x9c\x87\x57\x85\x8f\x2a\xed\x20\xd2\x75\xb0\xae\x65\x0f\x1d\x00\xfb\x36\x93\x32\x73\xe4\x16\x29\xa0\x2f\x7c\xd1\x2e\x5a\xd8\xa3\x12\xbb\x13\x99\x02\xe5\xe8\x93\x5c\xda\x1e\x88\x71\x31\xa1\x4b\xe1\xfc\xa9\x68\x84\x8a\xf9\xb5\xb5\x94\x48\x06\x4b\x9f\xc9\x49\xe3\xcd\xb2\x7d\x6c\x4b\xd1\xc9\x26\xbd\xf7\xcf\x1e\xcc\x94\x56\xca\x24\x4b\x25\xa9\x80\x71\x27\xd4\x3d\x12\xf8\x88\x5c\xa3\x1b\x7e\x2c\x51\x53\xe8\x2a\x8f\x4d\x75\x2b\x64\x24\x2f\x18\x05\x46\x7d\x5a\x56\x03\x8d\xc6\x29\xce\x28\x9a\xc9\x49\xe1\x04\x85\x03\x88\x28\xcc\x28\x72\xe6\x50\x02\x0e\xc4\x22\x4e\x53\xb2\x1d\xc3\xa2\x78\x98\x90\xc2\xc5\x9b\xd1\x0c\x89\x6f\x63\x62\x26\x1f\xa8\x88\x7f\x97\x56\x52\x56\x58\xf4\x12\xdb\x49\x6e\x19\x56\x77\x67\x56\x6a\x4b\xe5\xbc\xf5\xd7\x86\xe9\xe1\x4f\x7b\x33\x49\x12\x66\xba\x73\xb8\x7f\xbf\x7a\xdc\x93\x74\x07\xde\x0b\x7c\x9a\x90\xad\x15\x5d\xb3\x27\x4d\x16\x6c\x38\xa1\x57\x22\xcb\x05\x79\x7c\x14\xfb\x5f\xe5\x3d\x99\x3c\x40\x71\x95\xbc\xd0\x12\x6a\x4a\x3d\x32\x2f\x07\x12\xc7\xd6\x97\xf9\xe2\x4a\xd2\xe7\x82\x3e\xef\x2d\x66\x4d\xbf\x06\xdd\xcb\x28\x17\x21\x05\x41\xa6\x90\xe0\x5e\x75\x3b\x22\x12\xfa\x64\xf2\x62\x35\x65\x72\x3f\x18\xa3\xaf\x59\x3f\xab\x11\x01\xe4\xf0\xe0\xc7\xc3\xc9\x4f\x91\xff\x0f\xfa\x8e\x66\x93\x1f\x4a\xff\xa7\x4a\xd1\x93\xca\xab\x50\x19\xb9\x96\x05\x74\x5d\x43\x02\x2f\x6b\x0c\x45\x63\x70\x91\xc6\x4a\xa7\xc8\x57\x13\x4a\x65\x41\xd5\xe3\x7d\x9f\xf3\x3a\x82\x15\xe6\x87\xf9\x99\xa7\xeb\x20\x32\x62\x09\x16\xf7\xc4\xb8\x4a\x60\x0d\x90\x17\x7e\x55\xae\x2f\x45\xa6\x82\x8e\x25\x58\x0b\x9d\xae\x83\xcd\xec\x55\x82\x91\x2e\xa8\x60\x51\x15\x7c\x83\x4a\xa7\x43\xa5\x23\xcd\xde\xda\x86\xf5\x86\xb0\xbe\x29\xa9\xeb\x61\x1c\xac\x37\x9f\xd6\x68\xa6\x1b\x45\x87\x51\xb3\xae\x4f\x2b\x2e\x74\x71\x81\xc5\x8b\x28\x7c\x9b\x1f\x9a\xb1\x3f\xe4\xb9\xd7\x79\xbe\x4d\xb3\x75\x60\x4c\xbe\x89\xe8\xbe\xd0\x98\x0f\x33\x27\xb0\xad\x0f\xd5\xf7\x97\x8a\x6a\x87\x91\xf3\x70\xbc\xe9\x66\xc7\xf7\xad\x6e\x8c\xfd\x77\xdb\x0c\xb2\xf7\x67\x74\x9f\x40\x8b\xa6\xb6\xa3\x7e\x69\x09\xe0\xc5\x98\x1a\x14\x76\xe1\x0c\x77\x8c\x1a\xff\x6a\xd6\x48\x80\x0e\x00\xce\x6f\xf2\x33\x5e\xab\x66\x64\xfe\x4d\x73\x92\xe4\x2d\x2f\x63\x65\x0c\xfa\x5a\xf5\x49\x18\x80\x18\xa5\x81\xf4\x59\xd6\x31\x44\xd0\x34\x60\xa0\x24\xe1\x12\x3c\x19\x31\x2b\x8a\x8a\x7b\x87\x9a\x10\x48\x17\xbd\xac\x8a\x86\xd5\x1d\x3c\x1a\xf3\x68\x52\x3a\xd0\x8c\xdf\x3d\xd1\x2f\x8f\x7c\x54\xd7\x93\xa8\x13\xde\x86\x36\xc3\xd6\x78\x0d\xd3\xf0\xb5\x57\xda\x4e\x49\x3a\x43\x6e\x34\x8c\xef\x94\xe2\x76\x1f\x51\xf2\x70\x86\x16\xcc\x86\x78\x78\x7f\x86\x71\x36\x75\x38\xb6\x80\xa9\x39\x30\x5d\x64\x5a\x14\x9a\xca\x21\xbd\x4e\x14\xcc\x88\x42\x69\x6b\x26\xdd\x44\x4b\x7d\x3d\x29\xeb\xe4\x1d\x34\x39\x9e\x3e\x9d\xe9\xe0\x35\xd0\xe2\x82\xb6\xd9\xeb\x4c\x2c\xa2\x6d\x4d\x11\xab\x6b\x65\xe8\x62\xcd\x4c\x5e\x09\x56\x09\xee\xa7\x4f\x66\x64\xbd\xf7\x64\xc6\x3b\xdd\x8e\xfb\x75\x64\x29\x25\x1d\xe4\x1c\xd2\xa5\x6b\xd8\x04\xef\x2c\x3a\x4c\xd4\x2d\x40\x3f\xb4\xca\xe4\xa0\x52\x5c\x54\xb5\xa0\x59\x22\x3c\xef\xd6\x97\x69\x7c\x7b\xdb\x6e\xee\x77\xe4\x24\x9e\xce\xf0\xf2\x78\x52\xe7\x54\x7a\x18\x49\x83\xf3\x0e\x93\x7d\xa2\xbe\xb8\xd0\x89\x51\x3d\xbb\xaa\x27\xa6\x85\xff\xd7\x06\x14\xf4\x0e\x6d\x9a\xc4\xd8\x32\x6e\xb7\x3f\x30\xca\xfe\xde\xa0\x88\xbe\x46\x62\x6d\x58\xe3\xfa\x04\x8d\x17\x77\xb1\xd2\x04\x5f\xe6\x96\xf0\x20\x8b\x39\xc3\x85\x9e\xe1\x42\xce\xb0\xed\x3e\x70\xad\x8e\xe8\x1c\x61\x70\x08\xd4\x7a\x39\x56\xe7\x4b\x5c\x32\x53\xe6\xf9\xaf\xc3\xf8\xa2\x16\x3f\x2a\xb7\x03\xec\x7b\x7f\x9c\x4c\xfa\x3e\xd4\xe5\xd5\xc3\xa1\x7b\x83\x30\x72\x53\x1d\xb3\xa5\xb0\x0f\x23\x05\x55\x93\x36\x3d\x52\xb5\xc8\x57\x2f\x69\x84\x58\x36\x28\x5f\x0a\x01\x53\x5d\x91\x94\xee\x21\x91\xc2\x20\x7d\x12\x1d\x54\x14\x4b\xb0\xf4\xb3\xd0\x89\x20\xbf\x29\x60\x1b\xd0\x82\x80\xca\x59\x56\xd6\x44\x31\x52\xf6\x5a\x62\x2c\x1a\x82\xdd\x69\xf7\x32\xc8\x0d\x58\x29\xee\x45\x34\xae\xa8\x6b\xce\xcc\x9a\x0a\xac\xa9\x09\x75\x35\x31\x0a\x20\x4d\x67\x65\x72\xfa\xfc\x6d\xed\xb6\x52\x55\x87\x4e\x71\xaa\xab\x40\x8d\xa5\x58\x5f\x0b\x2d\xe8\x50\x25\x00\xe7\xb2\xea\x3a\x83\x44\xfa\x8b\xa9\x48\x11\xc6\x6e\x2d\x31\x46\x14\xcb\x0d\xa8\x54\x5a\x21\x9e\x33\x5e\x7c\x39\x98\x0c\x7d\x72\x56\x8e\xf2\x6f\xa3\x24\x02\x04\x98\x7b\xb1\x34\xec\x16\xca\x3b\x22\x1f\xc7\xa3\xd8\x75\x2b\x26\x7e\x45\xb1\x00\x56\xa3\x15\x7c\x53\x77\x2c\x44\x56\x6c\x3b\x2b\x7b\x64\xbc\xaa\x23\x47\xe2\x10\xe3\x2b\xd6\x74\x9a\x8f\x8c\xca\x16\x40\x05\xad\xc6\xfd\xd1\xca\xf3\xda\xd5\x61\xa6\x18\x38\xbf\x74\x1a\xcf\x4e\x03\xea\x84\x8a\x46\xa0\x95\x4f\x90\x84\x31\x08\xc6\xe1\x28\x87\xe2\xa3\x14\xed\x00\x88\x90\x23\x45\x78\xa5\x72\x53\x33\xd8\x46\x9a\x5a\xf7\x77\xd4\x5e\x60\xad\x07\x3c\x8b\x47\xfb\x76\x6b\x93\x82\x9f\xc5\x7e\x47\xd7\x02\x07\xb2\xd8\x6d\x44\xba\x78\x20\xb1\x50\x0d\x49\xb4\x13\x45\x56\x91\xa9\x70\xb2\xbb\x03\x96\xf4\xd4\x82\x02\xb9\xa9\xfd\x43\x42\x2e\x90\x92\x18\x08\x6f\x30\xac\x05\xcc\x18\x0c\x88\x7b\xc6\x47\x5a\xd0\xfb\x18\x86\xa4\x17\x59\x21\x31\x0d\x2e\xec\x70\x20\x5f\x27\x28\xeb\xf4\xd1\x66\x07\x26\xe1\x0e\x2c\x8f\x50\x83\xd2\x90\x16\x56\xc8\x1e\xf0\x7b\xca\xcc\x63\xfc\x5d\x85\x5b\x6a\xd5\xc7\x81\x93\x2d\x91\xcc\x8f\x91\x0c\x4a\x07\xbf\x83\x9e\x21\x9c\xff\x8c\xf3\x9e\x7d\x1e\xf9\x58\x9d\x72\x71\xd7\x29\xcf\x88\xc4\xca\xda\x67\x29\x31\x49\x2c\x81\x43\x56\x79\x0e\xee\x96\x9a\xc4\x12\x4c\xd2\x63\x59\xeb\xb0\x9b\x91\x01\x55\x9f\xfe\x92\x15\x53\x66\xb1\xdd\xa4\x49\x23\x3a\x50\x7a\xcf\xb0\xe4\x4c\xe2\xad\xd2\xd5\x5c\xd6\x60\x47\x98\x43\x2b\xb0\xf2\x3b\xd6\xf7\xbb\xe6\xfa\xca\xd5\xcd\x1a\xab\xfb\x63\xf4\x31\x93\xdd\x62\x52\x43\x78\x8f\x20\xfe\x5d\xa6\xa7\x3f\x47\x7b\x21\xb3\x6a\x58\x1a\x4d\x2d\x40\xf6\x4b\x81\x88\x16\x30\xb7\xa2\x14\x49\x22\x53\x4c\x80\x1a\xc1\x04\xa6\x6e\x6c\xc7\x60\xac\xfd\x1e\xd0\x62\xde\xc0\xfe\x52\xeb\x08\x1b\x71\xa3\x1b\x51\x57\xf7\x14\x56\x77\xe8\xe0\x1e\x14\xae\x00\x3e\x53\xed\x55\x14\xc2\x57\x12\x81\xbd\x3d\x97\xdd\x0f\x20\x92\x51\x22\xcd\x9e\xd0\xff\x2a\x1e\x99\x9a\x72\xf2\x01\xc8\x6a\x49\x67\x7a\x4a\xac\xe4\x2a\xc8\xf1\xf6\x41\xe4\x15\x6f\x6e\xe4\x78\x23\x3d\xde\xa8\xa6\xa3\xc4\x14\xe6\x63\x56\x85\x8b\x2a\xba\x81\x8d\xd1\x9b\x3e\x83\x17\x8a\x80\xaf\x40\x16\xb9\xe0\x1f\x0a\x5f\x13\xe4\x81\x5f\x65\xa4\x48\x67\x51\x55\xe9\x6b\xd4\x68\x1b\xc7\x02\xfd\x8d\x3e\x1c\x34\xda\x0d\xb8\xa2\xb3\x43\xa0\x16\x29\xba\x4b\x59\x79\x25\x6b\x10\x69\x85\xdc\x0a\xdd\x18\x85\xe2\x7d\x1b\x1d\x6a\x43\xbb\x67\xd5\x62\x0a\xb7\xbe\x30\x13\x45\x21\xa1\x9b\x3b\x01\x64\xcd\xed\x76\x8f\x65\xaf\xda\xfd\xae\x3a\x4d\x9c\xc5\xff\x7a\xcf\x15\xf2\x94\xe6\x8a\x6a\x18\xf6\x5d\xe3\xb8\xe9\x37\x47\x62\x14\xa5\x41\xb9\x58\xc8\x6b\x96\x71\x72\xaa\x71\x7f\xb8\xc6\x78\xee\x1c\xf3\xd7\x41\x32\x6f\x8e\x96\x85\xf7\x8c\x77\xcf\xb8\xfa\xf4\x04\x52\x42\x1e\x68\x6b\x08\x9c\x82\xd3\x52\x5e\x85\x5b\x4e\x63\x0f\x1e\x16\xf8\xd1\x8b\x31\x48\x87\xb5\xf0\x72\x73\xc8\x81\x3b\xc4\xd8\xb3\xc6\x90\x73\x77\xe5\x84\xa8\x0d\x8b\xd1\x57\xb1\x16\xaa\xa4\x7c\x85\xde\x34\x81\x6d\x0e\x90\x3a\x7f\xff\x72\xfe\xbf\x1d\x9f\x41\x26\x1d\x1e\x6a\x6b\xac\xe6\xce\x80\xfc\xc6\xc2\x06\x48\xb2\xe0\xb2\x1e\x9a\x0a\xa3\x98\x9a\x15\x7b\x6f\xdd\xef\x9f\x1b\x4c\x3d\x00\xda\xd3\x2a\x43\x3b\xe8\x5c\x95\x05\x88\x44\x00\x1f\xd2\x5e\x4e\xdc\x85\x22\x7e\xd6\xe2\x05\x0d\x02\x9b\xa6\x14\x69\x0b\xa2\x47\x96\x66\x6c\xfa\x44\xab\x1a\xa1\xa2\x02\xad\xc0\xce\x46\x76\x30\x05\xd2\x65\x86\x24\xd1\xbb\x32\x48\x0a\xbc\x82\x32\x61\xa2\x97\x1d\xb2\x86\x4a\x4d\xd9\x0c\x19\x51\x93\x61\xdb\x84\xc2\x1a\xf5\xfd\x62\x5a\xcb\xcf\x02\xa6\xa3\x29\x56\xe2\xa8\xcf\xe3\x0e\xb4\xb0\x29\xb3\xbb\x8b\x28\x2e\x04\xd0\xc8\xb6\x74\xe9\x45\xdb\x62\x25\x79\x4a\x3f\x57\xf2\x14\x29\xc9\x53\x5a\x8d\x36\x3f\x30\xd3\x01\x66\x90\x84\x4e\x7b\xc9\x6a\x5c\x86\x44\x0c\x99\x26\xfd\xb4\xa0\x5b\xff\xc7\x62\x32\xc5\xfb\x73\xe0\x1f\x4a\xab\x81\x4d\x93\x53\xeb\x4b\xf9\xf6\xa9\x76\xb3\xc2\xcf\xf8\xd1\x90\x76\xcf\xee\x21\xfc\xd4\xba\xde\x62\xd7\x0d\xbb\x98\xf4\x5e\x4a\x4f\x4c\x0f\xd9\x14\xa6\xa6\x50\x25\x72\x28\x68\xa5\xdd\x88\x05\x59\x9a\x51\xe5\xb5\x0a\x42\x45\xb7\x4c\xab\x0f\x68\x17\xa1\x6f\x67\x18\xb5\x08\xa9\x4f\xe3\xcd\x60\xdb\x90\xc8\x07\x79\xb4\x69\x5d\xed\x4c\x4a\xd9\x64\x1c\x68\xa0\x95\x3e\x63\x71\x4d\x11\x5d\x76\xc7\xda\x99\x56\x99\xa2\x5a\x3b\x34\xb3\xe6\x48\x3b\xc1\xc2\xf9\x45\x2f\x72\x31\x2e\x3c\x2b\xdc\x41\x2f\x9a\xdd\x43\xb0\x55\x2b\xd0\x12\xba\x89\xf6\x39\x34\x29\x2b\x31\xa6\xeb\x75\x4d\x31\xb3\xb0\x67\xbe\x3c\x3f\xb7\x77\x52\x38\x1f\x39\x27\x48\x25\x24\x9f\x49\x7a\x50\xc0\x61\x3a\x0a\xe2\x73\x77\xfa\x34\xa1\x7d\x8d\x51\x1d\x71\xe7\xde\x09\xaf\x84\xde\xb9\xa6\x25\x56\xba\x6f\xe4\x21\xb3\xbb\xc9\x6d\xa5\x1e\x55\x1c\x08\x5a\x9d\xa8\xa9\x28\xda\x63\xbb\x7f\x77\x49\xb2\x1b\x57\x96\x66\xa6\xf8\x04\x99\x6d\xf1\x39\x32\xdb\xe2\xae\x31\xd3\xf8\x1a\x97\xea\x94\x69\x9d\x6a\x38\x10\x44\x69\x43\x7f\x15\x25\x89\xc8\xe4\x75\x63\x06\xb8\x6d\xe6\x49\xcb\x62\x3f\x4f\xd0\xcc\x43\x01\xb2\x9e\x35\x63\x3e\x85\xcd\x2c\x22\x99\xb7\x32\xc4\x8d\x0c\x78\xe9\xff\x26\x68\xe7\xc9\xd3\x5a\x6a\xa5\xe4\x54\x09\x3a\x6b\x15\x1e\x40\x87\xcc\x76\xa4\x58\x6a\x60\x18\x6d\xa5\xb5\x2f\xbb\x96\x56\x56\x71\x36\x49\xf9\xa5\xe2\x6f\x02\x09\x6e\x95\x93\xcc\x47\xdb\x2a\xc3\xc6\xc2\x89\x5c\x54\xe0\x63\xa8\x30\x07\x43\x42\x79\x81\x13\x21\x19\x88\x5e\x0f\x21\x05\x29\x1b\xcc\x5c\x0c\xd0\x56\xc8\x2f\x4b\x8a\xbd\xe3\x62\xec\x27\x72\x39\x07\x5a\x15\x63\x3f\x49\xab\x8f\x39\x5f\x79\x39\x5b\xf3\xa5\xb7\x60\x3b\x3e\x77\xe6\xee\xda\x59\xb3\x33\x2e\xbc\x8c\x6d\x79\xee\x2c\xbd\x95\xb3\x60\x97\xdc\xea\x8f\xd7\x13\x6f\xe0\x0f\xcc\x78\xbb\x67\xce\x99\xb3\xf3\xb6\xce\x16\x7d\xd7\xad\xad\xb3\xf6\xe6\xce\xa5\xdd\xc3\x8b\x62\x2c\xf8\x3c\xf7\xd6\xf2\xf5\x9c\x12\x5d\x95\xf8\x56\x26\xba\x2a\xf1\x05\xbf\xf0\x36\xec\x19\xbf\xf6\xae\xd8\x2b\x7e\x0e\xcf\xcf\xf9\x5b\xef\x4a\x83\xcf\x17\xce\x0b\xf7\x99\xf3\x6c\xfc\xca\x79\xe5\x3e\x77\x9e\xd3\xed\xfd\xe7\xd0\xc0\x5b\x38\x6e\xd3\x0b\x2f\x64\xd7\x48\x0b\x4d\x2f\x1c\xd1\x3b\x63\xd7\xf8\x77\x66\x5a\xc0\xb5\x4f\x95\x09\x7f\x70\xff\xc5\xf5\x6d\x9e\xb0\x89\xf1\x6a\x81\x00\x65\xd2\x3a\x44\x26\x4c\xef\x14\x69\xaf\xe9\x8c\xcc\x9b\x70\x52\xb5\xb2\x6a\xc9\x5f\x10\xc6\xdd\xe0\x6f\x86\x0a\xb7\xc5\xe9\x0a\x99\xa4\x30\x88\x63\x79\xe1\x08\xc6\x3f\x5a\x40\x49\x7b\xa2\x82\xc3\x4c\xdd\xa5\x99\x8c\xc6\x59\xee\xa6\xf5\x65\x66\xfb\x79\xed\xa6\x0c\x7d\xa4\xe6\x2b\xa2\xa3\x4e\xc3\xa4\x58\x1f\xed\xb8\x92\x16\xcb\x70\x0f\x92\xbe\x79\x86\x4a\xd3\x57\x68\x73\xf2\x0a\xe3\x8c\x2d\x51\x67\x1a\x75\xdf\x0a\x0c\x4c\xd0\x7d\x52\x5b\x5d\x6c\x3f\x1d\x95\x14\x84\x48\x8a\xee\xee\xd3\xf5\x4b\x05\x49\x28\x01\x62\x89\x45\x94\x88\x83\xfa\xac\x43\xc2\x03\x2a\x58\xde\xd2\x5d\x2d\x9f\xa9\x96\x4a\x79\x2d\xe1\xe2\x5a\xc2\x95\x4c\xe0\x9c\xf9\xc0\x5a\xbe\x88\x89\x85\x47\xbf\x83\x65\x6a\xd3\x74\x40\x4b\x29\x41\x3a\x91\x7c\xce\x0d\x62\xd4\xc5\xa0\x01\xd5\x96\x4d\x98\x22\x57\xe5\xa5\xa9\x2a\xda\x98\x39\x28\xbb\xdb\xf9\xcb\xb8\x7d\xf4\x2a\x6d\xda\xa7\xd2\x0d\xc6\xe6\xad\xf0\xa4\x11\x9a\xa2\x12\x83\xfc\x4d\x50\x89\x51\xd9\xab\x2a\x75\x6f\xe7\xfb\x0e\x23\x35\x87\x8b\x2b\x30\x2d\x66\x78\x41\x06\x9e\xf7\xce\x6f\xb2\x40\xcd\xab\xa3\xd5\x9d\x51\x4a\xea\x46\x0c\xe5\x43\xd5\xaf\xf5\xff\x46\xbf\x7e\xc3\x7e\xa9\x1e\x01\x84\xab\x5a\xac\x54\x30\x07\x1a\xde\xfd\xaf\x4d\x48\x35\x15\xfb\xf3\x70\xa8\xe1\xb3\xb4\x65\xdb\xa4\x98\xb4\x87\x13\x5a\x36\x9f\x20\xed\x05\x3c\x2a\xb9\xed\x80\xa1\x57\xde\x75\xda\xd6\x6c\x6d\xef\xa8\xe7\xa4\xaa\xa7\x4f\xf5\x58\x4a\x94\x92\xd0\x1a\x24\x54\xd5\xd4\xa0\x87\x87\xb3\x99\xbe\xd5\x23\x41\x62\x03\x86\x69\x37\x5b\xba\xfc\xc4\x96\x92\x03\xbd\xbc\x48\x2b\x99\xb2\x06\x72\xa7\x03\x8c\x2e\x25\x9f\x8f\x78\x1d\x3d\x61\xff\x9b\x3b\xb4\xcd\x1d\x5d\x7b\x71\xb6\xf2\xc1\x7a\x75\x3a\xac\x0a\x19\x4d\xf2\x7e\x19\x3a\x0e\xbd\x32\x30\x9e\xcb\x48\xde\x19\x8f\x16\x33\x9d\x9f\x3b\xae\x85\x57\x62\x7a\x43\x07\xef\xca\xec\x9d\xd8\x74\x7d\xaf\x85\xf7\x63\xd2\xb7\x41\xf5\x0d\xb3\xa9\x87\x01\xc9\xb4\xc8\xbd\x0d\x95\x9a\xba\xe9\xf1\x00\x2f\x6a\x2b\x94\x69\x36\x7a\x7a\x84\xae\x8b\x2e\x12\x9d\xe7\x50\x25\x32\xd9\x2e\x36\xa2\x9a\x40\xce\xdb\xc5\x06\xaa\x26\x31\x72\x79\x9d\x4e\x5d\x08\xaa\xf4\x46\xf3\x46\xc4\xe3\xe1\x28\xae\xa2\x4e\xa0\x0e\x00\xdb\xb4\x55\xf3\xd8\x19\xc0\x5d\xd8\x83\xf3\xcf\x6c\xe1\xb6\x56\x8a\xe6\x54\xd9\xc8\x9c\x2e\xe0\xfd\x83\xf6\x74\xd1\xb7\x7a\xba\x72\x5d\x5b\x8e\xb5\x69\x1a\xcd\xb0\x5e\x4c\xf7\xc3\x49\x90\xac\x90\xc2\x17\x90\x25\x53\x52\x93\x2b\x78\x13\x23\x6a\x6f\x6a\x81\x61\x70\x1a\x8e\xec\xda\x50\x07\xcd\x58\x98\xf2\xa2\x98\x96\x8e\x95\xea\x78\xdc\x00\x6a\xf0\x4d\x87\xe4\x9e\x1d\x32\x85\x3f\x4f\x55\x98\x82\x7a\x3b\xef\x6f\xb6\x82\xdc\xeb\xf7\xc1\x42\x26\x37\x5a\x26\x37\xda\xb4\x64\xf8\x1f\x41\x82\x01\x41\x02\xec\xfb\x14\xba\x09\xff\x11\xdc\xc0\xb0\x27\x25\x81\x91\x88\xe1\xad\xdd\xaf\x52\xeb\x79\x8c\x01\x6f\xf0\x93\x7c\x09\x6c\x15\x17\x45\x9f\x56\x24\xfa\x6d\x02\x38\xe8\xcc\x25\xa1\x0c\xf0\xad\x5a\x39\xad\x14\x43\x12\xb2\x06\xd5\xe7\x40\x7f\x46\xa3\xaa\xe7\xa9\x15\x52\xfc\xa4\x5a\xa1\x26\x7d\xb0\xc2\xfa\x02\x71\xbc\xff\xe6\x00\x94\x7a\xbb\x37\x3d\x0f\x9b\xd3\x63\x1a\x2b\x4e\xd1\xac\x0d\x3d\x88\xeb\xa9\x8a\xb8\x5c\x48\xf8\x8b\xb1\x47\x4e\x4f\xd0\x58\x91\x0c\xb1\x94\x91\x90\x54\xe6\xa6\xfa\x65\xa0\x9c\x58\x94\x57\x8b\x9c\x93\x48\x6e\x2b\x3d\x5b\x36\xc3\x28\xf6\x58\x5b\x69\xd4\xa6\x47\xde\xaa\xb7\x35\x4f\x85\x9e\x10\x41\x91\x86\x6a\xf1\xf6\xfe\xd0\x5f\xa4\x56\x3b\x66\xef\xde\xe0\x4a\xf7\xa1\x56\x32\x4e\xe5\x00\x1f\xe2\xce\x84\x2e\x7d\x59\xce\x74\x9b\x42\xad\x8d\x7a\xd1\x43\x2c\xf8\xf4\xf0\xfa\x57\xc3\x8b\x1a\x75\xb5\x46\x22\x0e\xaf\xb8\xd0\x03\x2c\x1a\x2b\x5e\x1c\x18\xe0\xb3\xb4\x69\x99\xa8\xe5\x01\xd2\x28\xc2\xf0\x78\x52\xe7\x51\x1f\x49\xe9\x81\x12\x48\x6f\x93\x2a\x0a\x3f\x79\x9e\x50\x18\x59\xf2\x4d\x8a\xab\xed\x1a\xe3\x49\x89\x7b\x82\x70\x31\x2f\x1c\x49\x39\xe0\x49\x77\xac\xc8\x2d\xd1\xba\x18\xb7\x29\xa5\x0c\xaa\x94\x14\x52\x6a\x71\x2a\x9d\x52\xc3\x4e\x36\xfd\x98\x1f\xb8\x8b\x17\xfe\x39\x68\x58\x00\x4f\x27\xf8\x74\x62\xde\xb0\x90\xd6\xee\x3e\xf2\x04\x3c\xa7\xf9\x7f\x16\xa3\xe1\x8f\x5a\x0c\x78\x11\xd5\xcb\x2b\x33\xe5\x95\x99\xf2\xdc\x4c\x79\x8e\x29\xe6\x25\x0a\x8d\x8e\xd2\xee\x53\x57\x7f\xca\x5b\x03\x08\x19\x1b\x96\xb2\xf7\x10\x23\xe4\x16\x23\x35\x2a\x0d\xf4\x46\xb3\x0a\xed\xa0\xb3\x42\xc3\xb1\x08\xa6\x10\x68\x55\x4c\x21\x48\x09\x70\xc3\x25\x73\x89\xde\xb0\x02\x83\x98\x2d\x35\xc3\x3f\xbe\xdc\xdf\xf3\xb4\xfc\x64\x54\x48\xbd\x83\x75\xf7\x4c\x70\x4c\x8b\x4d\x00\xb9\xc0\xb6\x08\x16\xc3\x1f\x6c\x8a\x4c\x34\x28\xa4\x72\x0a\x5f\x79\x4a\x5f\x79\xdf\x07\x52\x1f\x3f\xf4\xd0\x69\x56\x7e\x84\x47\xbc\xbb\x8a\x5c\x53\x58\x39\xfe\x8a\x5c\x35\x4e\x9c\xc2\xe0\x4c\xd1\xe9\x00\x6b\x29\x1d\xc1\x54\x4d\xa5\x93\xa9\x18\x3e\x01\x57\xdd\xe0\xd0\x0f\x72\x1a\xaa\xa4\x6f\x21\x83\xbc\xf6\x4c\x4e\xb6\x21\x9e\x0b\x3c\xf9\x15\x56\xe2\xb1\x63\x0d\x5c\xac\xdc\xc1\x3f\xb5\xfd\xe2\xb4\xbc\xb9\xe9\x53\xab\x0e\x3e\xd5\xe8\xc3\x30\x06\xfc\xa5\x49\x91\xdf\x49\x11\xd1\xc4\x9a\x97\x42\x1c\x9a\x68\x2e\xcd\x54\x6b\x44\x57\x22\x08\x28\xc8\x62\x95\x49\xbb\x0d\x94\x29\xe3\x26\x7a\x13\x50\x04\x06\x6e\xdc\xa4\x83\x57\x8d\xe3\x39\x32\xae\xdb\xa9\xc5\xc9\x86\xa9\xea\x37\xf7\xb1\xad\x78\xa5\xf7\x55\xcd\xb6\x06\xc0\xb6\xae\x6d\x64\x25\x73\x16\xc3\xf3\xdc\xb0\x02\xc5\xaf\xc0\x5b\xd4\x0c\xad\xba\x5b\x19\x37\xcb\x1c\xff\xac\xf1\xcf\x0e\x07\x75\x56\x93\x68\x5b\xc5\xd9\x5e\xe2\x6f\x89\xbc\xbd\xe0\x9c\x67\x93\x7d\xa1\xce\xf2\xd6\x27\xe6\x17\xf8\x71\x72\x20\x3e\x90\x65\x43\x59\x68\xdf\xef\x4e\xcf\x46\x76\x6a\xb0\xbb\x28\xa2\xd8\x41\xfb\xf6\x04\x7a\x2d\xd7\x73\xc9\xdd\xad\x99\x03\x12\xf1\x7e\xd3\xcb\xd6\xb7\x19\xdd\x22\x2d\x59\xea\x8b\x76\x7e\xf7\x7a\x2f\xb7\xed\xcf\x6b\x9e\x1a\x26\xb0\x1e\x7d\x35\xfd\x75\x06\x4c\xd7\xc1\xdb\x27\x57\x77\x33\xd6\xcf\x70\x3f\xf4\x61\x3b\x00\x87\x9d\x22\x87\x1d\x20\x87\x8d\x11\xdc\x91\xa5\x8c\x39\xc6\xe9\x46\xbc\xbd\xf8\xcf\x78\x6d\x93\x75\xde\xf6\x3f\x9f\x43\xdf\x0e\x3e\x8f\x45\xff\xff\x3e\x83\xad\x07\x78\x25\x4b\x45\x54\xe8\x13\x7b\x67\xf2\xf4\xbb\x4f\xec\x9d\xd9\xce\x67\x09\x10\x52\x59\x30\xfd\x8f\x04\x08\xe1\x61\x01\x42\x80\x02\x84\xe0\x90\x00\x01\x56\x5b\x9f\xbb\x9b\x1b\x5c\xf8\xa0\x1b\xc6\x69\x2e\xe6\x13\x38\xa3\x3e\xee\x02\xe8\x4b\xf8\xd9\x22\x86\x85\x1c\xc4\xa2\x21\x62\x78\x9d\xb6\x2c\xfc\x9b\x82\xcf\x5f\x8d\xe4\xa9\x72\x6b\x32\x83\xae\xa4\x87\x8c\x25\x6a\xaf\x8d\xc3\x17\xe6\xb6\x41\x9b\xda\xcf\xd3\x26\x70\x6b\xc0\x35\xf3\xaa\xd8\x6f\x0d\x59\xef\xe3\x87\x86\x4d\x7e\xfd\xbd\x23\x03\xa7\x1b\x82\x90\x9f\xd2\x43\xe1\x61\x92\xde\xbb\x8a\x66\xea\x9c\xf5\x81\xe8\x2c\xdc\xce\x33\xfa\x2b\x9f\x1f\xf4\x1f\x0c\xd8\xe0\x01\xa6\x78\x77\x27\x15\x4d\xa1\xcb\x0f\xf7\xcd\x0a\x13\x23\xb4\x8d\x82\x29\x99\x26\x18\x8a\x83\x0c\xf4\x8a\x6e\x00\x99\xae\x04\x7d\xf0\x3c\x14\x7c\x97\x49\x31\x51\xde\x68\x46\xba\xaf\x3f\xc9\xf2\x4c\x27\xb8\x78\xa9\xbd\xe8\xc2\xa6\x49\xf0\x7a\x00\xf9\x20\xb7\x6a\x56\x6e\x0a\x03\x86\xc9\x10\xc8\x17\xf3\xa0\x08\x2e\x2e\x98\x52\xd0\x34\xc3\x5f\xa4\x2d\x7f\xa1\x1d\xa0\x05\xf6\x3a\x26\x1f\xfc\x60\x2d\xf2\x4d\x10\x0a\xf2\x99\x8e\xe6\xe8\xe2\x64\x18\x2e\xa7\xfb\x0e\x72\xd1\x9c\x70\x5c\x55\x50\x03\xaf\x3f\x21\xeb\x81\x73\x21\x8c\x4b\x31\xe5\x95\xb1\xc9\x34\x9a\x01\x42\xec\x16\xd7\x42\x24\x64\x26\x02\x84\x04\x30\x0c\x34\x24\x8c\x06\x50\x0d\x06\xb3\xc3\x48\x90\xe0\xc8\xe8\xc2\x4e\xe3\x54\x1c\xaa\x45\x34\x1d\xc9\x7f\x6b\x1c\x05\x79\xf9\x18\x79\x4a\x74\x9a\x17\x42\xcb\x48\x47\x62\x5b\x3c\x4f\x13\x52\xe6\x24\x66\xe0\xff\x03\x95\x4c\x3a\x17\x17\x14\x00\x27\xc2\x2c\x17\x17\x70\x86\x1b\x1f\x3a\x6e\xe2\xc2\x17\x63\x07\x7d\x71\x50\xac\x2f\xd0\xc2\x17\x7f\xf8\x07\xb9\xea\x7e\x9f\xd1\x46\xf1\xfb\xb7\xa8\x39\x8c\x80\x33\x52\xd7\xb3\xa8\x3b\xd3\xca\x6e\x11\xad\xc5\x48\x26\xf1\x0f\x34\x78\x9f\x2c\x74\x18\x26\xf8\x01\x3a\x3c\x06\x3b\xbf\xec\xd2\x2f\x9b\x97\x59\x80\x1d\xc0\x0f\xea\x91\x89\x20\x17\xf0\x8e\x3f\x8c\x36\x0b\xaa\xb3\x4a\x19\x34\xd3\x75\x23\xb9\x55\xd1\xd9\x1a\x6b\x34\xae\x8e\x2f\x1b\x64\x86\x50\xa1\xdd\x65\xc7\xc7\x99\xe6\x2a\x73\x4b\xb2\xdc\x80\x04\xa6\x3a\x75\x36\x2a\xe9\x18\xe8\xba\xd5\x9e\x37\x32\xb0\x52\x6f\xf5\xf2\xf0\x56\x6f\xec\x8b\x52\x6f\x72\xa6\x2b\xe0\x80\x64\x75\x0d\xea\x41\x2a\x75\x0e\x94\xc6\x5b\x64\xd5\xb6\xd1\x8e\xa7\xb5\x7e\x0c\x77\x3a\x46\x19\x3d\x58\x0e\x0e\xf3\x95\x0e\xba\x4e\x17\xe4\xa7\x72\x16\x17\xf0\x50\x4d\xef\xfe\xc4\xd5\xe4\x4e\x37\xe4\xb1\x05\x38\x60\x60\x4f\x5e\x09\x3f\x66\x83\x5b\x06\x94\xac\xb1\x65\xe3\xd6\xbc\x52\x30\x6c\x55\x7a\x50\xf1\xea\x40\x6b\xf7\x16\x40\x50\x50\x98\xfa\xb0\xbe\x4b\x26\x1c\xf7\x47\xf6\xd5\xd4\xf3\xc2\x99\xee\x7f\xcd\x41\x96\x18\x93\xd2\xda\x9b\x25\x91\xcc\x0f\xcf\x51\x8e\x6a\x61\xa5\x62\xad\xf5\x59\xd5\x60\xaa\xd5\x9c\x54\xab\x99\x55\xd0\xec\xff\x67\xee\xcf\xbb\xdb\xc6\x91\x87\x51\xf8\xef\xf7\xf9\x14\x1d\xfd\xa6\x3d\xa4\x04\x49\xd4\x6a\x9b\x0a\xac\x93\x49\xd2\xdb\xc4\xe9\x74\x9c\x5e\x15\x8d\x0f\x4d\x51\x12\xdb\x14\xa9\x70\xb1\xad\xd8\xfa\xee\x6f\x55\x01\x20\x41\x89\x72\x9c\xb9\xbf\xfb\x9c\x3b\xd3\xb1\x48\x10\x6b\x01\x28\x54\x15\x6a\x21\x1f\x9d\x1d\x22\x87\xc8\xd1\x32\xc2\x87\xd6\xe3\x9a\x7b\x2e\x51\x98\xa3\x1c\x24\x29\x5f\x34\x1c\x60\x1a\xf8\x62\xec\x52\x64\x17\x6a\xd4\x40\x58\xb9\xa6\x84\x8f\xa6\xb7\xae\x71\x7e\x4e\x9a\xc6\xd2\xe1\x15\xea\xa5\xd6\x4a\xf8\x41\x86\x53\x31\x72\xdf\x45\x25\x97\x55\x85\x52\x70\x6c\x8e\x63\x5b\x28\xdf\xd7\x98\x65\xd6\x74\xc3\xc7\xdf\xff\x37\x1a\xb3\xd8\xa1\xe6\xca\x8d\xfd\x54\x3e\xb8\xd3\xe8\xc7\x8b\x9f\x2f\xd2\xd8\x0f\x17\xfa\x3d\xf9\xf7\x8f\x6b\x30\x84\x25\xa5\xf6\xcc\xd0\x42\xc1\x86\x82\x77\x15\x72\xaf\xb6\x27\x7c\x99\xc9\xfb\xf4\xdf\x30\x46\x59\xa1\x0e\xc4\x7f\xcb\xaf\x8e\xe0\xa4\xda\x78\x4e\x4c\x16\x19\x87\x94\x0e\xc3\x76\xaf\x33\xe8\x0d\xbd\x21\xec\x09\x0f\xcd\x59\xa6\xb6\x3f\x4e\x27\x59\xfb\xb7\x60\xe2\x37\x3b\xd3\xe7\xf8\x3b\x6d\x67\x63\x78\xb1\xfd\xa9\x3d\xf9\x57\x20\x2c\x3c\x44\xe6\xed\x13\x54\x68\xff\x1d\xfd\xef\xe8\xd0\xa6\xa4\x51\x9a\xbf\x0a\x3d\xca\x7f\x47\x55\xca\xae\x87\xb4\x11\x9e\x29\x3f\x88\x47\x47\xcf\x94\x81\xa4\xc7\xa0\x83\x0d\xaf\x81\x6e\xf7\x94\xe6\xb3\x50\xf5\xe0\xb9\xaa\x2c\x22\xf4\x77\x3e\x39\x14\x56\x91\x30\xc7\x99\x11\xb1\x8e\x65\xda\xb5\x90\x54\x7a\x35\x6a\x12\x10\x21\x69\x29\xab\x49\x71\xe8\xe0\x72\x84\xf6\x07\xc9\x7d\x73\x10\x18\xdf\xa1\x17\x83\xf4\xac\x53\x65\xb5\x48\x7a\xee\x1e\xea\x2d\x28\xa3\x45\x72\x27\xc3\xa1\xbf\x29\x70\xd0\x39\xe7\x51\x61\xc5\xa8\x15\x15\x46\x8c\x79\x49\xa0\x8f\xf4\xa2\x5b\x5b\x6a\x00\xef\xea\x1f\x17\xc2\x29\x54\xe7\xcf\x01\x41\x6e\xfb\x73\x08\x78\x07\x20\x40\x9f\x80\x07\x57\x40\x3e\x3a\x9a\xdc\xd3\x03\xa9\x26\x14\x16\xa0\x04\x18\x5f\x00\xc6\x27\xc0\xe4\xb3\x82\x89\x34\x31\x28\x50\x82\xb9\xe9\x9c\xa1\xc1\x79\x7a\x50\x0f\xba\xd0\xc1\x78\x4c\xe5\x38\xfa\xb2\xca\x71\x69\x2b\xc3\xe9\xfc\x0a\x11\x81\x9e\xe3\x17\x3d\xc7\x4f\x17\x3f\xbf\x45\xa3\xed\x04\x15\x7c\x63\xa0\xaa\xa2\x30\xf1\x3e\x00\x3d\xa2\xeb\xa9\x39\x05\xb9\x9b\x01\xfb\x10\x7b\x50\xe5\x7b\x61\x9d\x5b\xb0\x8f\x09\xa0\x5f\x37\x7d\x1b\xcd\x3c\x03\x32\x5d\x45\xb3\x0d\xde\x70\x88\xcc\x44\xdc\xdc\xa5\x99\x13\x7c\x17\x3b\x8b\x15\x85\x49\xdd\x69\x8d\xaa\x77\xf8\x3d\x72\x2a\x48\x34\xd4\x7a\xad\x41\x6b\x50\xdb\x02\xc9\x00\x28\x5b\xdc\x63\xb1\xd8\xa9\xe2\x4e\x3c\x47\x9e\x22\xa8\xd8\x23\x03\xb0\xcc\x22\x97\xf6\x21\x59\x63\x39\x66\x1a\x6f\x60\x02\xb1\x63\xea\xc3\xeb\xc0\xc3\x1f\x61\xcb\x8d\xbd\x4e\x50\xe8\x4e\x7e\xa1\x3e\xc0\x2a\xd8\xba\x0e\x7a\xb0\xf7\x81\x66\xdc\x69\xb4\x32\xb6\x6a\x11\x9c\x22\x35\x47\x29\x06\x43\xf2\x50\x3e\x86\xf2\xf6\x5c\x4c\xbc\xc5\xbb\x11\x9c\x0d\x68\xe4\x16\x88\x2f\xf5\xb8\x3f\xcf\x0d\x35\x6f\x80\xd4\x64\xe7\x73\xb8\xcb\x7e\x1b\xb5\x57\x3f\xfe\x56\x33\x81\xd0\xd8\x04\x1e\x92\xa0\xef\xe2\x68\x0d\x18\x6a\x63\xd4\x22\xa0\x8c\xfd\x74\x03\x27\x0a\x43\x91\xad\x18\x48\xe4\x48\x32\x4e\xc2\x47\x0d\x7f\x1d\x47\x69\x84\xcb\x9e\xb9\x0e\x77\x1c\xac\xe9\x05\x9c\x36\xfe\x55\x86\x2e\x23\xf7\x92\xde\x5e\xb0\x44\xd6\xf0\xf2\xe2\xe2\x02\x1b\x7f\xe5\xb9\x81\x23\xe8\x0f\xad\xb6\xb9\xc3\x13\x47\xef\xd7\x68\xa7\xa6\x9d\xad\xea\x3a\x1a\x5b\x01\x29\x0d\xec\x3a\xdb\x6b\xbd\x54\x0a\xcf\x97\x60\xa7\x1c\xf3\x44\xc9\x72\xe3\x7b\xc5\xe6\xfb\xcd\xe1\x76\xda\xc2\xb1\xe4\x24\x2e\xd0\x25\x70\xf4\xa1\x37\x04\x58\x2f\x5e\xfe\x5e\xee\xb1\xda\x62\xa8\xc2\x0f\x1b\xfb\x2c\xc4\xed\x7d\xc6\xd1\xfa\xcb\x6a\x5b\x5b\x26\x7c\x07\x55\x61\xa4\x0a\x71\x9d\xf0\xc3\xc2\xf7\x14\xe2\x05\x22\x94\xc2\x3c\xbc\x49\x11\xee\xb9\x62\x12\xeb\xa1\xef\xc5\x33\xa0\xd1\xee\x81\x04\x95\xfe\x5c\xf4\xec\xbb\x79\x81\x50\x16\xf6\xea\xc2\x88\xe8\x60\xd5\x05\xdd\x8a\xa2\xc3\xcc\x7c\x6a\x33\x15\xe5\xb4\x26\x0b\xec\x26\xbc\x3f\xfc\x7f\x08\x30\xf1\x99\xf7\x7f\x1b\x30\x5a\x93\x25\xc0\x78\xbb\x31\xae\x77\x23\x24\x90\xa7\x97\x27\x43\x87\xfc\xc0\x94\xa1\xe3\xeb\xd0\xc9\x76\x3b\x4e\x05\x76\x73\x1b\xc5\x34\xb2\x98\xdc\x48\x40\x39\xb3\x0c\xac\xbd\x96\xb4\x41\xfb\x53\xf4\x3a\xf4\xe4\x56\x2b\x4a\x1e\xea\x81\x92\xf5\xb0\x6c\x4a\xe0\x4b\xb2\x55\x35\xec\x48\x1a\xaa\x45\x02\x10\x17\x55\x95\xb0\x93\x7d\x8a\x70\x0a\x81\x0c\x40\x6f\x62\x11\x41\x21\x6e\x70\x4f\xc4\xfa\xf9\x66\x2f\x8f\xd6\xe7\x68\x8a\xd7\x8c\x79\xfe\xfc\xd6\x98\xd6\xbd\xe7\x54\x63\x04\x9f\x02\x5c\xe4\x1d\x94\xf7\x24\xd1\x97\x3a\xe9\x20\xe0\x32\x12\x51\x84\x74\xfd\x30\xf6\xa1\x51\x1b\x98\xb0\x52\x3f\xb5\x6c\x5a\x47\x9d\x29\x89\x38\x8a\x22\xb2\xab\xee\xd8\x6f\xbb\x8a\xfb\x62\x9a\x96\x79\x25\x75\xa5\xd9\x60\x98\x75\xa0\xcd\x58\x5c\x32\xc7\x46\x07\x4f\x00\x41\x0c\x25\x8e\x6e\xac\x9a\x85\xcb\xb5\x31\xfa\x0e\x32\xf0\x02\xb6\x99\x09\xd1\x2b\xc2\x67\xe6\x57\x42\xc8\xcf\xcd\x31\x15\x88\xdc\x27\xcc\x21\x39\xcf\xcc\xd0\x30\xc8\x40\x55\x04\x9c\x15\x65\x0b\x59\x9e\x48\x2d\xa3\x06\x20\x54\xc4\x30\xcb\x85\x72\xbd\x78\xe5\x0e\x48\xd3\xc1\x8f\x72\x5d\xf7\xd6\xc0\xd4\xe1\x07\x03\x80\x51\xed\x11\xf8\x72\xe6\xcb\xf3\x6e\xc1\xc0\x2c\xba\x07\x65\x89\x70\x1d\xfa\xd8\x00\x03\x7d\xfe\x03\x1a\x20\x3a\x21\x6b\x3a\xcc\x41\xb7\x2e\x8d\x46\xc2\x5c\x78\xa8\x1b\x1e\xda\x46\x94\x86\x1c\x54\xae\x89\x60\xca\x02\xf3\x4b\xd5\x28\x69\x0b\x50\xfd\x6e\xdb\x48\x60\xe2\xf5\xd1\xce\xbc\x1b\x9f\xa8\x01\xbe\x23\xad\x24\xbf\xea\x0a\x16\xd5\xd2\xdc\xfc\xc6\x69\xac\x89\x55\x51\x1f\x98\xc4\x3a\x4b\x87\xfb\x68\x60\x9f\xf3\x8e\x6f\xbc\x79\xca\x97\xa8\xa5\x3f\x27\xa1\x91\x48\x2d\x78\xcb\xf7\xfe\x62\x49\x19\x62\x7c\x28\x72\x44\x71\x15\x19\xe9\x13\xa8\xd5\x5c\x8c\x35\x85\xe2\x58\xb3\x98\x97\x7c\x1c\xf2\x1d\x02\xe5\x2c\xb3\xf9\x7c\x67\x6f\x20\x85\x01\x00\xdc\x9b\x35\x32\xa2\xd1\x74\x41\xba\xe4\x81\x27\xe5\x96\x59\xe8\x42\x48\x7f\x6f\x18\xeb\x18\xaf\x23\x4b\xde\x56\xeb\x7e\xb3\xf9\x60\x91\x0a\x89\xdf\x48\xf1\xae\x14\x7f\xf0\x18\x13\x6f\xf8\xc3\xe3\xe2\xda\x0e\xfb\x07\xf4\xcf\x6a\x9f\xdc\x2a\x3c\x26\x6a\xfa\x4f\x05\x11\x8b\x78\x0e\x89\xd8\x58\x84\x35\xc1\x08\x26\xd3\x32\x26\x5b\x3b\x7e\x9c\x54\xd3\xc5\xd2\xf3\x94\x76\xf7\x5c\x5c\x3b\xe7\x2d\x58\x67\x31\x10\x4a\x78\xc7\x78\xe6\x49\x8f\x8c\x93\x94\xdc\xe8\x84\x93\x46\x43\x6b\xce\xa7\xe6\x3e\xfb\x6b\x7d\x39\x51\xe8\xac\x78\x1f\xc0\x52\x5c\x35\x29\x14\x9d\x42\x72\x52\xcf\xa5\x23\xc7\xbc\x00\xea\x4d\xec\x50\xed\x8d\x46\xf8\x3c\x1d\xe9\xaa\x0b\x82\x14\xf1\x26\xe1\x54\xcb\x49\x0a\xb5\x19\x9a\xe1\xf8\xe8\xd0\x27\xaf\x11\x5e\xd0\x47\x6c\xe9\x34\x27\x41\xcc\x3a\x4a\x2a\xef\x76\xc4\xa8\x0a\xbf\x13\x72\x3d\x5d\x7b\x9b\x32\x5c\x95\x7f\xe6\xc2\x79\xb2\x08\x01\x95\x2a\x6b\x4e\x8d\x8f\xa6\x0d\x16\x64\xde\x57\xd5\x10\xea\xe1\xa0\x44\x25\x30\xa0\xd8\xff\xba\x5a\xee\xa1\xe3\xb6\xc7\xa8\x79\x1b\xab\xdc\xee\xd4\x49\x1e\x5c\x0f\xad\x18\xa2\xfc\x34\xdd\x18\x22\x73\x2c\x22\x0d\xb2\x91\x19\x35\x88\x14\xd1\xed\xa1\xf4\xc9\x8b\xcc\x51\xb3\x99\x91\x33\x33\xfc\x24\xe8\x3a\x98\xf4\xdc\x4c\xb4\xd9\x4c\x85\xd3\xdd\x49\xb3\x89\xc1\x9a\x4a\x5c\x19\xa1\x96\x85\xb4\x25\x77\xae\x92\x91\xb2\x78\xdd\xdb\xd2\xb0\xea\x2a\xcd\xe2\xd0\xc3\xea\x81\x40\x2c\x80\x53\x71\x77\x33\xb2\xc7\x69\xe3\x6d\x75\xa7\x6d\x99\xe9\x32\x8e\x6e\x89\x39\x7f\x1d\xc7\xd0\xe3\x9a\x1f\xce\x49\x44\xf7\x8d\x30\x28\x55\x06\xee\xd2\x2b\x93\x83\x8e\x2b\x3c\xf4\x83\x20\xcf\xbc\xb0\x8e\x4e\x13\xf1\x8f\x87\x7f\xac\x33\xa1\x71\x33\xc2\xa1\x37\xbc\x3a\x10\x26\xe6\x59\x9a\x6b\x98\xc6\xed\xd2\x69\xa7\x65\x7a\xbe\x93\x49\x49\x6b\x25\x8d\xbe\xae\x3c\xf0\x85\x4d\x2e\xf6\x02\xe6\x3f\x49\x11\x99\x47\xf3\x6f\x02\xb3\x42\xa2\x4d\xa5\x88\x3b\x15\x16\x1b\xb2\x1b\x50\x96\x26\xae\xe5\x27\x32\xa0\xa3\xf4\x2d\xf8\x74\xf2\x5f\xa7\xb3\x45\x03\x19\x51\xd7\xe5\x33\x4e\xfb\x9c\x9f\x71\x72\x75\x64\x84\xc4\xf3\xcc\xe4\x86\x49\x86\x56\xa3\xfc\x91\xf0\x47\xb5\xb3\x4c\xd6\x0e\xaf\x5d\x5e\x12\x97\x7b\x79\x59\x83\xc5\xce\x6b\x1f\xef\x2c\xab\x36\x72\x8d\x80\xdd\x2f\x9d\xc4\x5e\x32\xf4\x2b\x5c\xb5\xdd\xe9\xaa\x6c\x92\x18\x68\x64\xc7\x92\x52\x26\xdd\x1f\x8d\x96\x8d\xa3\xf5\x39\x45\x74\xb6\x17\x0c\xf1\x82\xbd\x16\xfb\x2b\xb1\xf7\x8e\x56\x6d\x5f\xa6\x14\xf3\x8d\xea\x31\xa5\x8a\x92\xac\x35\xd5\x3c\xa5\x6c\x99\xdc\xe4\x5f\x5b\x17\x6d\x74\xb2\xc1\x12\x7b\x3d\xaf\x7b\xab\x57\x9e\xf8\x9f\x3d\xfb\x86\x79\xab\x75\xba\xb1\x67\x4c\x2e\x0d\xbb\x72\xfb\x97\xda\x28\xd8\x72\x61\xe7\x95\xf7\x7c\xbb\x25\x2f\xbc\xa1\x97\x94\xa4\x66\x85\x94\x4a\x6a\xad\xd1\x36\x3d\x2b\x9c\x5f\xab\x63\x6b\x2c\xef\x55\x32\x74\x27\xe2\x8d\x73\x6a\xcd\x8e\x46\x85\x55\x85\x0c\xce\x88\xab\x70\x5d\xf8\x62\xbf\xe1\xfe\xc4\x69\x34\x50\x35\x45\xac\xfe\x46\x63\xf1\x7c\x3d\x32\x8d\x25\x9f\xd1\x85\xbb\xcb\x6f\xd0\x7d\xc6\x64\x81\x3a\x52\xe3\xa5\x00\x54\x82\xba\x1d\xb8\x96\x5c\x36\x49\x34\x0c\x3b\x86\xac\xa8\x74\x37\xe7\xe5\xab\x9f\x44\x99\xe9\x23\xc5\x41\xd6\x1e\xa6\x0d\x59\xef\xb7\xfb\x39\xe9\x58\x96\xd9\x00\x2c\xb3\x62\xeb\x99\x4c\xbb\x70\x17\xc6\x6a\xe4\x75\x64\x1f\x20\xa1\x40\x32\x42\x2d\x2c\x9a\x78\x30\xbe\x42\xc5\xb3\x62\x2b\x67\xb0\x46\xb5\x15\x10\xaa\xa5\x88\x5b\x0f\x2f\x3f\x51\x56\x05\x30\x26\xa8\x56\x2e\xed\x0c\x58\x05\x32\x69\xc0\xbf\x38\x38\x61\x91\x28\x70\x3f\x8c\x52\x6a\x8a\x15\xf7\x33\x59\x19\x07\x95\xbc\x4e\x52\x8c\x1a\x0b\x05\x7e\xfb\x87\x95\xe6\xbc\x00\xc9\x35\x42\x65\x70\xc4\xa0\xcb\x43\x2a\x00\xcd\x57\xd2\x7f\xb9\x2f\xf5\x0c\x73\xe1\x40\xfe\xbd\x7b\x18\x2b\xfa\x7f\xe2\x17\x16\x90\x68\xc6\xa8\x0a\xfc\xb6\x7f\xfa\x2a\x0c\xa2\xb2\xc5\x51\x10\x64\x95\x4e\xd0\x62\x99\x45\xd0\x95\x5e\x5a\x71\xfc\xe2\xf2\x5b\x11\xf2\x35\x0b\x12\x4e\xa7\xb6\x88\x9e\x42\x8f\xde\x69\xcb\x99\xcd\xf6\xce\x76\xd7\x58\x29\x3c\x05\x9f\x1f\xc7\x53\x18\x56\x11\x90\x10\x06\x71\xd5\xf0\x90\x9c\xf5\xf5\xff\xd6\x0e\x57\xfb\xfa\xca\x5b\x3a\x37\x7e\x44\xd1\x2e\x73\xb7\x67\x87\xa8\x56\x18\x30\x52\x95\xbb\xc7\x82\xd2\xeb\x85\x51\x6b\x84\x59\x3c\x9d\xf2\x73\x3a\xc3\x4b\x81\x2f\x25\x53\x31\x73\xf8\xa4\x76\xeb\x5d\x5d\xfb\x18\x2b\x60\x95\xe0\x9f\xe8\x33\xfc\x3d\xa7\xbf\x11\xfc\xfb\xb9\x36\x45\xa2\x60\xe6\x27\x6b\x94\xa5\x96\xb0\x4f\x4e\x66\xe2\xcc\x5c\x32\xe9\xb4\xbd\xa2\x63\xa4\x5b\x09\x4c\x77\xde\xad\x14\xba\x75\x5b\xdc\xda\x21\xd2\xbc\x2c\x04\xa8\xad\xa8\x52\x50\x80\x3a\x10\xd2\xac\xb3\xd6\xaa\x99\x64\xb4\x30\x12\xfb\xdb\x22\xb7\xed\xca\xe2\x83\xee\x83\x0a\xbf\x8c\x18\x10\x04\x0d\x37\x0e\xdc\x52\xa1\xfb\x1d\xa1\x04\xd2\x22\xef\x1c\xb6\xfe\x26\x5d\x9d\x75\x2b\x05\x4d\x52\xe4\x83\x51\x3e\x48\xf3\x5c\xcd\xb4\x49\xd3\x0d\x2b\xed\xe7\xdb\x30\x17\x4d\xa3\xd3\xee\x52\xcd\xa5\x00\xe3\xf8\x65\x2b\xc8\xcf\x1b\xd2\x84\x40\xa5\x00\x5a\x0a\x9f\xb2\xa8\x5a\x3f\x0a\x2f\x11\xd6\x81\x03\x03\x5c\x39\xac\xf6\xf1\xe3\x3f\x8e\x6a\xa6\x98\xd6\x95\xc3\xdb\x93\x8f\x1f\x3f\xfe\xe7\xe3\x3f\x3e\xd6\x3f\x36\x3e\x8e\x3f\x3e\x7c\x9c\x7c\x9c\x7e\x34\x3e\x9a\x1f\x5b\x1f\xef\x3f\x6e\xa7\xed\x05\xdb\x38\xb0\xda\x5a\xf9\x81\x3e\x2e\x03\x3c\x2c\xbe\xc0\x49\x6c\x1f\x58\x8a\x22\xc0\x6a\xa8\x02\x3d\x6e\xd9\xb9\x53\x2d\x28\x4e\x5b\x9f\x32\x2f\xde\x5c\xd0\x35\x09\x82\x0a\x70\xd1\xdd\xd3\xf2\xbe\x90\x97\x1b\x57\xbb\xd9\xd5\x9a\x58\xe1\xba\xf4\x92\x87\x87\x70\x82\x6e\x75\x6b\xf2\x5d\x95\x87\x6d\x2c\x81\x6c\xec\x55\x91\x2b\xb1\x4b\xfa\x08\xc9\x34\xf1\x33\xaa\xd0\xa8\xb9\xf0\x3f\x7f\x0e\x50\x74\x79\x68\x94\x22\x83\xf0\x2d\x88\x61\x82\x48\x35\x11\xc7\x29\x3e\xe0\x10\xc4\x53\x6b\xa7\x8f\xa6\x40\x7a\xf8\xb2\x23\x3b\x28\xf8\x25\xf1\xb9\xe2\x16\x47\x4e\xfa\xa5\xc3\xf5\x4a\x8a\xdd\x84\x87\xca\xa5\xfa\xb2\x8f\x56\x35\x55\xe5\x51\xc8\xdf\xea\xa6\x09\xd2\xe3\x8c\x88\xf6\x5f\x72\x3a\x73\xaf\x8c\x05\x50\x57\x93\x29\xcf\xc7\x78\x93\x44\x42\x4c\x5c\xe6\x40\x40\x6a\xc9\x05\x99\x81\x75\x06\xba\x17\x1b\xf7\x79\x20\x22\xd4\xa2\x94\x6a\x6c\x28\xd6\x8e\x87\x8a\x64\xc9\x0a\xf5\x08\x97\xac\x18\x60\x0e\x6a\x2a\x09\xd8\x87\x6f\xc8\xb9\x6f\x9e\x89\x17\xf9\xd1\x79\x82\x3c\xd8\x70\xb3\x29\x71\xf3\x0b\xc3\x87\x05\x95\xc3\x04\x56\x58\x35\x58\x04\x48\x5e\xea\x20\x91\x34\x7a\x19\x24\x44\x6a\x17\x40\xa3\xe1\x67\xd3\x5c\x90\xb9\x63\x7f\x23\xb5\xb8\x49\x4a\xaa\xa0\x18\x3b\x86\x1c\x2e\x45\x3a\x50\xc3\x75\x50\x60\xbe\x03\xdf\x82\xe7\x7d\x81\xda\x30\x34\xf7\xb7\xb0\x97\x93\x9b\x85\x5d\x5b\xa6\xe9\xda\x6e\xb7\x6f\x6f\x6f\x5b\xb7\xbd\x56\x14\x2f\xda\x5d\xcb\xb2\xda\xf0\xad\xc6\xee\x96\xe9\x2a\xa8\xca\xd2\x39\x3d\x3d\x6d\xd3\x57\xc8\x84\x11\x61\x0e\x67\xc2\xaf\x90\xa9\xba\x9e\x3f\xce\xdf\x60\xb6\x93\x76\xae\xa2\x46\x59\xc3\xe4\x60\xbf\xe8\x6b\xbb\xb6\xc5\x13\x26\x04\x6a\x6f\x4d\x5e\x21\xed\x5b\x87\x7d\xca\x9c\xc0\x9f\x6f\xec\x0a\x2a\xa0\x38\x04\x6c\x8a\xb0\x55\x78\xb2\x16\xe7\x80\xa7\x21\xfe\x54\x3f\x07\xf0\xf2\xdc\x64\xb7\xce\x2e\x66\xf6\xcc\xf1\x3d\x75\x17\x1a\x46\xfd\x99\x20\x82\x99\xb0\xc3\x2d\xfc\x47\xab\x04\x35\x50\x76\x36\x7c\x15\x37\xdc\xa5\xe4\x5a\x42\xaa\x23\xda\x7d\x7a\xee\xac\x17\xd7\x0c\x5e\xb1\x16\x17\xc7\x24\x15\x0c\x93\x96\x1c\x2d\x92\x5f\x40\xcb\x60\xf3\x63\x0f\x69\x6b\xed\xf2\x0f\xcd\x19\xb1\x8f\x2a\x03\x90\xf1\xa5\x1c\x74\xcb\x8d\x6a\x06\x52\x30\x81\x8d\x79\x48\xc5\x7e\x46\x5f\x5a\xc8\x43\x94\xcf\x1a\x9d\xe2\x91\xf9\x84\xe5\x21\x8e\xd8\x0d\x9c\x24\xf1\x76\x29\x90\xff\x87\x83\x86\xfd\x64\x84\xfc\x03\x32\xbc\x8a\xb7\xc8\x24\x4f\x8f\xfe\x2d\xa8\xcd\x37\x7e\x92\x6a\xd7\x5b\x31\x5d\xab\x3c\x43\x2d\xce\x30\x75\x80\xe3\x36\x88\xcf\x95\x27\xf9\xb3\x4e\xc1\xc3\x62\x0d\x25\x70\xd4\xa8\xbe\x9a\xa9\xd7\xf3\x46\x14\x6f\xa5\xc0\x46\x21\xf5\xa5\xaa\x91\x80\x79\x66\x55\x43\xf0\xfd\x13\x21\xf8\x5e\x83\x20\x5d\x4d\xeb\xf0\xd3\x54\x39\xf7\x08\x24\xe8\x5b\xef\x2c\x2b\x41\xf2\x99\x06\xc9\xae\xf0\x5e\x8e\x14\x29\xe1\xa1\x78\xb7\x83\xef\x90\x9a\x40\x63\x2e\x6f\xa7\x8b\x48\xb9\x9c\xe5\x7a\x8f\x15\x0b\x10\x6d\x00\x10\x6e\x2f\xa3\xd5\x1a\xa0\x36\xa3\x4b\x6d\xf4\x1e\x86\xe8\x12\x3f\xa8\x4d\x42\xb4\x3d\xae\x31\x24\xba\xf6\x87\xfe\x4e\x8e\x50\x0c\x7e\x5d\x75\xf3\xfc\x95\xeb\x47\x6f\x42\xf4\x19\x25\x8c\x95\xf3\xf3\xeb\x13\xe7\xe7\x57\x6d\x7e\x50\x23\xe3\x49\xca\xde\x45\xf1\x4a\xdd\xf3\xa7\xaa\x6a\x8f\xf6\x75\x5d\x05\xe5\x38\xae\xd5\x6c\x20\xb0\x94\x5a\xce\x63\xda\xb1\x00\x78\xfb\x71\xed\x59\x41\xbb\x4a\x78\xe9\xdf\x68\xcc\x88\xe1\xff\xef\x8f\x99\x5c\x85\xfc\xf0\xe1\xfc\xcd\x13\x47\x5c\xe4\xaf\x1a\xaf\x56\xdb\xce\x68\xf3\x2f\x02\x67\xaf\xd7\x5e\xb5\x93\xee\x90\xff\x8d\x78\x56\xc4\x4e\x15\x34\x55\x05\xbd\x85\x5f\x45\x1d\x2f\x51\x47\xc6\x38\x30\x44\x64\xfd\xb1\x39\x40\x4d\x65\xc7\xe5\xba\x92\x84\x6c\x10\x68\xab\xf4\x49\xed\x8a\xca\xfe\xe5\xc1\x62\xf7\x0e\x35\x8c\xfa\xea\x55\xe9\x82\xe8\x54\xdd\x12\x8c\x6b\x15\x3d\x99\xcf\xf0\x77\x22\x27\x12\x1c\x87\x75\xf0\x0a\x6d\x46\x11\x61\xa8\x90\x56\xcf\x73\x2f\x4b\x7a\x40\xa3\x08\x4d\x9c\x16\x9a\x94\x7a\x8e\xf6\x42\xa5\xd7\x9b\xb2\x0c\x1b\x0f\x01\xd1\xc4\x8c\xad\x84\xa0\x89\x6d\xca\x59\x84\x78\x9b\xec\xd5\x62\xbc\xbf\x5b\x91\xe3\xc3\x99\xba\x32\xcf\x84\x3d\xab\x46\x2c\x02\x3a\x1a\xdf\xa0\xba\x76\x66\xaf\x48\xbc\x34\x43\xc9\xe7\x06\x53\x66\xe5\xda\xe6\x44\x80\xae\x48\x9c\x95\x57\xe8\xd1\xfd\x47\x4c\x9e\x9f\xcd\x71\xf6\x8c\xf3\x67\x48\x5e\x2c\xa8\x46\xad\x1d\xee\x9b\xf6\x1a\x13\x7f\x40\x1d\x43\xd5\xd2\x33\xab\xaa\xc7\xd8\x00\x76\xc0\x54\xb5\x51\xff\x42\x0a\x84\x97\x6b\x14\xe4\x45\xd0\x71\x89\xb4\xd2\x15\x3d\xc9\xc6\x86\xde\x2e\x13\x7d\xd1\x9a\x17\x71\xec\xe6\x67\x64\x06\x6b\xca\x64\x2c\x6a\xaa\xd8\xfc\xe2\x4b\xde\xec\x76\xdd\xca\xd6\x33\xb4\xc0\x59\xb0\xb5\x4e\x66\x2e\xf4\x97\x1b\xfd\x25\xd4\x5e\x94\xf1\xec\x3a\x37\x89\x5e\x98\x4c\xba\x55\xb9\x11\x7a\x6d\x9a\xea\x86\x4e\x35\x57\xba\xc0\xa4\xe1\x87\xfa\xb4\xe7\xec\x84\x35\xcd\x3d\xdb\x2a\xa5\x09\xe2\x19\x84\x92\x06\xde\x90\xe8\x74\x7f\x21\x57\x10\xea\xfb\x7f\x19\xc8\xa7\xb8\xfc\x05\xfd\x26\xe2\x17\xfb\x50\x85\xe0\x4c\x5d\x33\xc3\x53\x1d\xf0\xa7\x4c\x92\xe8\x18\x1f\xab\x00\x41\xb1\xde\xfc\x9d\x5b\xe6\xfd\xf2\x79\xbf\x5c\x14\xdc\x79\x71\xc5\xce\x74\xb6\x0c\xbd\xa9\xfb\x55\xda\x91\x09\x7c\x53\xbb\xb5\xa4\xec\xf1\x05\x54\xbe\xce\xd5\xe3\x72\xae\x09\x15\x3c\x0f\x7d\x13\x18\x41\x78\xb1\x3b\xc4\x2f\x22\x6b\x54\xe1\xaf\x58\x98\x79\xfc\x8c\x34\x9e\x16\xac\xd5\xda\x99\xfb\xe8\xcc\x1f\xf9\x18\xe2\x2b\x3b\xcc\x45\x7a\x0a\x6a\x95\x5c\xa4\xd0\x15\xf0\x0a\xfd\x7b\x67\xe4\x40\x85\x18\xba\x4f\xb0\x56\xda\x54\x69\xdc\x94\x8f\x32\x98\xdc\x90\x20\x67\xa3\x32\x31\xe2\x28\x9e\x95\xa7\x64\xf7\x1e\xb5\xc4\xf4\x95\x2e\x4c\x91\x59\x54\x96\x44\x59\xce\xdc\x12\xab\x18\x63\xd4\x14\x75\x45\x87\x2a\x07\x42\xef\xca\xf0\x8f\x8e\x7c\xc0\x02\x5e\x0b\xc3\x65\x5d\xf8\x57\xc0\x5a\x2d\xd0\xc7\xa3\xb6\xb2\x4a\x07\x81\x87\x01\xc3\x7c\x8d\xfd\x23\x22\x87\x68\xcd\x68\x27\x66\x46\xc8\x7f\x3c\x70\x22\xcf\xcb\xf1\x15\xcb\x23\x22\x29\x1d\x8d\x22\x9d\x0a\x51\x76\x58\x6a\x4c\x00\xc8\x10\xc0\xc2\xc3\xa3\x6a\x05\xfe\x29\xa5\x9b\x9a\xe0\x1a\x29\x5f\x25\xf9\xc4\xc0\x7c\xb9\xc9\x14\xde\x42\x49\x86\xc3\xa9\xe2\xc1\x91\x2d\xae\xd0\x8f\x50\x63\x23\xab\x78\xb2\xc4\x12\xc7\xaa\xe8\x17\x8a\x64\xf7\xf7\xce\x33\x8d\x54\xa0\x7c\xf8\x58\x3d\xd7\xd6\xce\x54\xa7\x67\xe1\x28\xd4\x9c\x95\x7b\xf9\x4c\x8b\x50\x39\xf9\x2a\xcc\x00\xb9\xc6\xb8\xac\xc5\xaa\xf7\xa4\x11\x91\x6f\xe6\xb7\xf9\x9a\x35\x93\x98\x39\xff\xf3\x9e\x4f\xf7\xb0\x08\x6c\xb9\x0b\x4b\xf3\x1e\x96\xdd\x16\xc3\xe7\x10\xd7\x7f\x41\xbe\x13\x4a\x42\x1f\x81\x55\xfe\x62\xfb\x89\x9a\x3c\xe8\xc2\x61\x17\x39\x85\x94\xd3\x4a\x98\x26\x80\xa7\xa0\x88\x29\x04\x26\x09\x2e\x7c\xa7\x89\x92\x13\x86\xef\x34\x02\x39\x12\x7a\xdf\x97\x32\xed\x19\xc5\x2b\x75\x26\x92\x8e\x94\x97\x20\x09\x48\xee\x81\x51\xcc\x04\x90\x61\x2f\xcb\xf3\x29\xf7\x43\xb1\x8f\x2b\xb2\x2a\x0c\x21\xb5\x88\xb4\xb8\x70\x01\x3a\x89\x37\x7c\xf4\xd8\xaa\xc9\x99\x62\x78\xe3\x85\xb0\x49\x3f\xdb\xfc\x62\xa9\xa2\x7b\x09\x53\x93\xcc\xf0\xe2\xdb\x21\x11\x13\xda\x36\x5c\x3c\x4e\x19\x1e\xb8\x37\xff\x8d\xa6\x1d\xda\xcb\x09\xcb\xb2\xbe\xae\xd4\xbd\xd9\x81\xb4\x92\x88\x2a\x43\x98\x5d\x96\x2a\x45\x3b\xe4\xc9\xb9\x03\x7b\x30\x43\x5f\x19\x5e\x09\x84\xfb\x52\x45\x34\xfe\x43\x8f\x29\xa5\x7c\xd8\x8c\xc9\xe0\xf4\xf4\xa6\x7a\x2f\x2a\x25\x68\x87\x3a\x12\x8e\x85\xc0\xeb\x0e\x8d\x21\x33\x67\x57\xbe\x55\xd9\x95\x94\x02\x82\xea\x1d\x41\x60\x63\x47\xf0\x72\x94\x90\x77\xb8\xa7\xb2\x20\xae\xf8\xaa\xb9\xed\xf8\x11\x6e\x3b\xa6\x59\x78\xd6\x91\x0e\x55\x76\xd9\xcd\x3f\xf0\x9a\x12\xe5\x44\x69\x15\xb7\xad\xac\xc6\xe4\xb1\xaf\x78\x57\x38\x5d\xe1\x9c\x6c\x84\x22\x66\xfc\xe5\xc8\x83\xfa\xf7\x39\xd4\x3f\x64\xd7\xa5\x58\xef\x9a\x44\xba\x68\x29\x73\xbf\x8a\xb2\xc4\xa3\x8d\x6c\xd7\xe8\x19\xe8\xfa\xb8\xc6\xe8\x31\xf0\x9c\x1b\x4f\x25\x67\x69\x6d\x6b\x8e\x32\xe7\xe8\xe8\xda\xa9\xb8\xc9\x34\xef\x6b\xd4\x0f\x1c\x94\xcc\x24\x98\x04\xe4\xed\x85\xea\xc5\x6b\x87\xbd\x80\xf3\x15\x11\x0b\x55\x59\x85\xe5\x7f\x82\x8e\x5e\x1b\xaa\x9f\x6f\xa5\x8c\x38\x74\x6e\xfc\x85\x93\x46\x00\xc0\xf6\xef\xde\xd5\xbf\xfd\xb4\x2d\x65\x2d\xa5\xaf\x2d\xa8\x34\x7e\xb1\xc0\x99\x45\xed\x71\x6a\x29\x8d\xb2\xd2\x79\xf2\x25\xa5\x13\x38\x48\x38\x74\x00\x83\x62\x87\x0b\x6f\xf6\x01\x8b\x7b\xc8\x16\x95\x74\x98\x2c\x8a\xe6\xa8\xe6\xfd\x2c\x43\x61\x10\x4a\x82\x70\x72\x48\x12\xe4\xcf\xa0\x6a\x7f\xee\x03\xd2\x84\xa3\xd8\xd4\x46\x17\x8b\xf5\xad\x6e\xe6\x5a\xb3\xd8\x59\x1c\xb8\x7a\x97\xac\x29\x24\x8b\x39\x98\x45\xb7\x21\xe5\xaf\xc1\x91\x4d\xc9\x34\x3a\x61\x16\x29\xd2\x23\xdd\x03\xab\xb4\x50\x45\xb7\x3a\x15\xb6\xce\x79\x3e\x47\x1d\x10\x24\x9a\x4e\x8d\x25\xbb\x81\xf5\x47\x04\x17\xba\x32\x69\x9e\x8b\xb8\x74\xe8\x0b\x06\x9e\x3b\x53\xb6\x7e\xe0\xe1\x83\xc7\xce\x79\xcc\x16\xc6\x3d\xae\x70\xbb\x26\x9a\xbf\xb3\xc9\x97\x4c\x80\x25\x36\x36\x79\x8f\x09\xb0\x04\x06\xe3\xc3\xd0\x77\x5e\xc9\x9c\x17\x5d\x5b\x88\xe6\xa0\xb1\x15\x0e\xc8\x6f\xcc\xa4\x88\x08\x5e\x22\xf5\xc2\x36\xc6\x1a\xe8\x2b\x79\x85\x25\xe3\xfb\x03\x5c\x91\x17\xd4\xdb\x87\xc3\xa6\xb6\x95\x71\x1d\x30\x4c\xad\x38\xe4\xf8\x4e\x41\xe0\x27\x13\x1d\x1b\x2f\x80\xac\x8a\xe6\x46\x89\x09\x16\xf1\x60\x43\xf2\x1c\x51\x13\xa0\x6d\xc8\x2b\xb9\x1b\x14\x33\xd4\x9a\xb5\xc6\x0d\xf0\x64\xc5\xcd\x88\xe1\x01\xf3\x69\xaa\x31\x38\xf9\x00\x5c\xe8\x3d\xff\x1d\x19\xd3\x73\x05\x5a\x60\xb6\x02\x38\x3f\x04\xb1\x51\x6a\x36\xe0\x93\xa0\x75\x27\x00\x1e\xb4\x36\x04\xed\xa9\x69\x43\xb2\xc5\x20\xa9\x34\x58\x9a\x75\xb4\x37\x14\xcc\x10\x7f\x8d\x57\x54\x62\x16\xb4\xef\x2c\x07\x8c\xa9\x2c\x82\x81\x80\x30\xae\x98\xda\x84\x18\x01\x8b\x1e\x70\xaf\xd6\xe4\x73\xb6\xae\x91\x9f\x63\xe3\x7b\xa6\xb6\x10\xdb\x30\xb1\xda\x64\x3e\x7a\xa6\x7a\x0b\xf2\x29\x8a\xfd\xc5\x53\x0d\xf8\x32\x4e\x71\x19\x32\xed\x5e\x1a\x37\x07\x43\x2c\x22\x76\x88\x68\x61\xd7\xfa\xec\xf1\x13\x0e\x77\x6e\x9a\x6f\xd9\x71\x8c\xee\x6e\xf6\xc2\x96\x0b\x5a\xeb\x27\x11\x6e\x2a\xbf\xa9\xd3\x76\x6c\xaa\xbd\x30\x58\xb2\xf6\x64\x2a\xf0\xd1\x4b\x07\xa3\x9e\x0c\xd9\x67\x87\xbf\x74\xea\x2f\x1d\xf6\x49\x6a\xb8\xbd\xfb\x91\xbd\x71\x78\xb7\xfe\xc9\x61\x1f\x1c\xfe\xc6\x69\xc2\xb7\xf7\x0e\xff\x84\x91\x02\x5e\xd1\x6f\xe7\xc4\x62\xef\xa0\xf8\x89\xd5\x86\x4c\xbf\xca\x72\x17\xbf\xbc\xff\xd0\x65\x7f\x43\x51\xf6\x9d\xc3\xfb\x88\xb0\x34\xe7\x15\x7f\x45\xd1\xae\xe6\xbd\xbe\xb9\x73\x29\x59\x9d\x42\xca\xae\xd4\xc8\x80\xbe\xbe\x21\x63\xf3\xb6\xf1\xb7\x53\x5f\x9a\x75\xc3\xab\x67\xa9\xf1\xab\x53\x4f\x61\xd1\x36\x3d\xfc\xac\x06\x3e\x89\x1b\x51\x3d\x60\x19\xfc\x4d\x98\x5f\xf7\xda\x71\x9e\x51\x99\x71\x42\x96\x90\xb2\x84\x94\x85\xfa\xed\xdd\xad\x29\x9b\x74\x6d\x9e\xbb\x5f\x0b\x95\xbb\xbd\xae\xe6\xe7\x2f\x15\xbe\xf9\xd0\xf5\x13\xac\xf0\xa8\x19\xa3\xbf\x8c\x66\x06\x3b\x33\xa8\x07\x8d\xa4\x9e\x28\x09\x0f\x69\x26\x93\x80\xc7\x70\xeb\x6e\x13\x5d\xdf\x7e\xe7\xd4\xe7\x14\xbb\xd6\xaf\xd3\x58\xd0\xab\xad\xfc\xd6\xcc\xbf\xb9\xf2\xdb\x0d\xcf\x23\x41\x15\xf5\x2d\xea\x8b\x46\xc7\x6c\x2e\x70\x2b\x57\x7c\x5e\xd7\xd7\xf8\x79\x8d\x9b\x79\xd6\xbc\xc1\x08\xc9\xab\x87\x87\x3c\xa3\xdb\x06\xe6\xbb\xfd\xab\x53\xac\x13\x65\x16\x0e\x2b\xa1\x57\xdf\x30\xaf\x8c\xcd\x3f\x97\xa6\xac\x84\xcd\x29\xf4\x31\x24\x7e\x62\x73\xc2\x0e\x3f\x3b\x8d\x1a\xe5\xaf\xb1\x85\xc0\xe6\xb3\xab\xc0\x0d\x7c\xf7\x5a\xa6\xae\x29\xf5\x3d\x5b\x96\x71\x7a\xee\xec\x83\x1c\x47\x36\xaf\x5b\x77\x66\xfb\xba\x75\xcd\x44\x60\xf6\xeb\xd6\x86\x5e\x4b\xa1\x47\x34\x07\x21\xe8\x98\x0b\x3e\x37\xae\xd1\x53\x08\xfa\xe6\x12\x2f\x9b\x92\xf3\x73\xc8\x0f\xc9\x45\x20\xa0\xb7\x38\x91\xb9\x10\xee\x2d\xce\x67\xc9\x77\x92\x0c\xa2\x92\xa2\xda\xbb\xc9\xa0\xea\x86\xe6\xe2\x18\x2a\x6f\x14\x5e\x8e\x8b\x42\x91\x60\xe1\xf0\x70\x42\xde\x0d\x0e\xdc\x38\x05\x02\xf8\xfe\xce\xbe\xa6\x20\xae\x50\x8e\x5d\xc3\xdf\x6b\x74\x2c\x9e\xc7\x6f\xe9\xd2\x45\xad\x6f\xa0\x5f\x8b\xd8\x14\x4a\xc8\x12\x03\x43\xd3\x2f\xcf\x2c\x11\xd8\xa8\x55\x38\x6f\x00\x94\xa0\xe6\xcc\x78\x49\x44\xa1\xb8\x94\x17\x87\x82\x36\x0a\x3c\x07\xaf\x8e\x8e\xae\x94\x59\xeb\x9d\x0a\x96\x7a\xc0\x4c\xda\x08\x73\xe0\x6f\x45\x9e\x3b\x69\xd1\x8c\xb7\x81\x47\x47\xb7\xaa\xa2\xcb\xa7\x54\xb4\xd1\x2b\xba\xcc\x2b\xd2\x4f\x4b\x28\xf0\xb9\xd1\x78\x78\x08\xd5\x39\x80\xeb\x24\x3f\x07\xf2\x8c\xa8\xd6\x70\x0f\x83\x61\xa5\x7c\x35\x46\x41\xe9\x10\xa0\x2c\xb7\x65\xb7\x27\x08\x6b\x9a\x7e\x53\xf7\x09\x00\x15\x34\x9b\x9f\x77\x5a\x12\xc7\x2b\xaa\xeb\x21\x9b\x99\xe7\x9e\xef\x12\x2d\x73\xde\x81\x09\x52\x07\x0c\x7a\x34\x80\xcd\x17\x18\xba\x57\x04\x60\xf6\xef\x97\xb8\xba\xdf\x14\xc7\xfd\x07\x79\xd8\x03\x84\xaa\x0e\xfb\x08\x1d\x18\x38\x2a\x68\x13\x1d\xed\xd1\xde\xd1\xee\xf0\x57\x78\x96\x67\xfa\xa1\x3a\xe7\x18\xa5\x5e\x5b\x26\x18\x86\x48\xb6\x2d\x1b\x8e\x11\xe7\x78\x7a\x97\x11\xd1\xfc\x0e\xbf\xa3\x57\x81\x64\xe0\x4c\xe6\x96\x86\xb0\xdc\x1d\x76\x6e\x8d\x21\x0f\x20\x63\x9d\x9f\x2e\x0b\x8e\x50\xaf\x52\x00\x44\x9c\x50\x1c\x36\x48\x3c\xcf\x60\x01\xcf\x26\x7a\xea\x94\x93\x7b\x81\x6d\x29\xbc\x6d\x9a\x5f\x92\xec\xc0\x60\xa4\x6f\x08\x1c\xde\x1d\x0c\x0f\x7f\xaf\x80\x2a\x41\x65\x28\x62\x76\x0b\x89\x8d\x57\x54\x50\xa6\x79\x25\x99\xeb\xed\x92\xb9\xb3\x89\x87\x6e\x5a\xf4\xfe\xe1\xc4\xc9\x60\x35\x48\x33\x05\x5c\x59\xe1\x1a\xa6\x52\x36\x76\x75\xe5\xa6\x81\x65\x9d\x05\xcd\x73\xe5\xd1\xd4\x45\x5f\x94\x91\xb1\x66\x09\x9b\x4d\x12\xbd\xe6\xca\xe8\x97\x00\xcb\x3c\x94\x61\xd7\x44\x95\xac\x0b\xc3\xdc\x9e\xf3\x60\xab\x14\xa1\x5d\xcd\x07\x6c\xd1\x04\xac\x04\x17\x51\x17\xd0\x7f\x88\x9c\xe6\x98\xb4\xe0\xe8\x11\x15\x9e\x3b\xd3\xd1\x8a\x2f\xeb\xcb\x06\x9c\x17\xdb\xf2\x42\x15\xb4\xb1\x44\x56\x3b\x13\xac\x96\xc7\xda\xdc\x11\x21\x46\xba\x08\xb1\xd1\x70\x50\x9b\x10\x97\x37\xaa\x95\x91\x9a\x06\x24\x00\x24\xf5\xc1\x0a\x5f\xbc\x26\x19\xf1\x8d\x42\x34\x94\xe5\x31\xf2\x7e\xb1\x1a\x84\x91\x70\x2f\xf7\x51\x58\x4f\x1a\xf4\xae\xfc\x17\xd6\x91\xd4\x5d\x1d\x1d\x15\x47\x5b\xd2\x5e\x99\x18\xf3\x89\xce\x09\x8a\x33\x81\x9e\x5c\xe9\x98\x20\x03\x7a\x78\x43\x85\xfe\x09\x09\xbc\x1a\xb1\xfa\x4e\xce\x1a\x63\xf5\x3d\x33\xe6\xf5\x05\x42\x57\xd0\x8e\x84\xe8\x61\x33\xdf\xec\xe0\x4d\xec\x79\xbe\x0e\x05\x78\x4a\xb2\xf7\x9d\xa5\xba\xb3\xd2\x76\x42\xb3\x28\x6d\x4b\xe9\x7b\x64\x46\xa6\x32\x3a\xa4\x0a\xad\x19\xda\x31\x8a\xbd\x22\x7b\x29\x58\x80\x5b\x5d\x7e\x60\x5c\xd2\xea\xdf\x48\xec\x72\xab\x1f\xc1\x78\xb6\xb2\xd7\xe8\x73\x5d\x5d\x2a\x2c\x60\xdf\x13\x6e\xb9\x11\x98\x64\xad\x63\x92\x19\xaa\x51\xae\xa0\xaf\x1b\x2e\x4e\x6e\xe0\x02\x0e\x0c\x09\xad\xde\x35\x22\xf2\x8e\x6b\xc4\x73\x63\xc3\xae\x78\x41\x40\xc3\xeb\x25\xca\xad\x6e\x35\x1c\x05\xe4\xc8\x6b\xc0\x3f\xb0\xaa\x50\xa7\xd9\x45\x7a\x4e\x76\x3c\x47\x97\xef\x99\x7e\x76\x2d\x72\x04\x44\xdd\xde\x15\xcf\x6e\xc6\x2e\x30\xf3\xf1\x07\x7f\x85\x8c\xbc\xb1\x31\x6d\xe3\x06\xb0\xca\x8c\x03\xad\x93\x63\x3d\x29\x1c\x52\x4b\x9a\x5e\x19\x9e\x3a\xc8\xc2\x24\x5e\xaa\x4a\x6b\xe4\xcd\x46\x2c\x8b\x84\x14\xe9\x06\x16\xed\xc4\xf2\x69\xdd\xb2\xac\x6e\xfd\x07\x58\x22\x26\x52\x1a\x74\x72\x03\x0f\xc4\x82\x92\xf3\x84\xb5\x8e\x3e\xb5\xce\xb0\x94\x57\xef\x7a\xc0\x16\x52\x68\xe5\xd1\x15\xa8\x9a\x04\x72\xbd\xfa\x6f\x6f\x33\xd6\x22\x75\x9b\xcd\x8e\xad\xc7\xf8\x46\x8c\x41\x73\x7d\xc3\x66\x6c\x05\x7c\xcd\x39\xbb\x63\x57\xec\x92\xdd\xb2\x6b\xa4\x3e\x60\x7a\xe1\xdf\xb5\xdd\xd9\xb2\x17\x7c\x72\x3a\xb4\x60\x60\x80\x29\xde\xf2\x1f\x1d\xf6\x92\x77\x07\x16\xfb\x0c\x4b\xe0\x13\xd7\x78\x72\x71\xbe\xbe\xe1\x05\x27\x25\x93\x3e\x70\xc5\x50\xc9\x84\xf7\x5c\xe7\xd9\x45\xda\x2b\xc1\xbb\x15\x87\x39\x93\x07\x76\x7e\xea\xe6\x07\xc9\xcf\xce\xc3\x03\x10\x8e\x1c\xb8\xa4\xdb\xa5\xe7\x05\xa4\xa4\xe6\x8c\x8d\x1f\x9c\x7d\xc9\x74\x33\x87\x0a\xec\xa3\xd4\xf9\xb3\x6e\x94\x13\xce\x81\xf9\x1d\x77\xba\x96\x0d\xe0\x60\x35\x51\x9d\x69\x43\xcd\xd4\xe3\x2f\x56\xff\x4d\x5e\x1b\x65\x7d\x85\x55\x6e\x25\xff\xa8\x2a\xfb\x62\xbf\x52\xc7\x0f\xb6\xa4\x15\x7c\x8e\xe5\xde\xf9\x77\x5e\x70\xe1\xa2\x32\x37\x06\xd7\x95\x24\x5a\xf9\x0a\x42\x08\xb4\xf6\x64\xdb\x55\xcb\x1e\x45\x39\xa3\x0f\xc1\x58\x3b\x11\x71\x55\x95\x69\x43\xa1\x8e\xa0\xcf\x87\x56\xf7\x35\x97\xce\xd8\x24\x75\xfa\xf0\x50\x5e\x20\x2e\x49\xb7\x84\xef\x29\x83\xa6\xcb\xde\xab\x43\x1c\xb2\x2f\x84\x3f\xbd\x17\xc2\x5d\xf9\x6c\x3c\x83\x77\xdb\x23\xcf\xda\xf8\xd2\x99\xda\x31\xbc\xd0\xf1\xb2\xc3\x01\x1a\x13\x23\xd3\xa8\x7c\x3f\xa7\x15\x99\x47\x84\x3e\xc3\xef\x29\x7e\x4f\xc5\xf7\x14\xbf\xa7\xf4\x1d\xfe\x56\xc4\xec\x4f\x95\x08\x13\xc3\xdd\x02\xcd\x04\x5c\x1f\xf0\x66\xa3\xf2\x50\x39\x6d\x86\xac\x89\xe7\x42\xdd\x81\x21\xfb\x4d\x3c\x14\xe0\xf1\x1a\x63\x20\xd0\x06\xde\x2a\xf0\x15\xbe\xbd\xf6\x86\x9f\x08\x10\x89\x7c\xe8\x9b\xea\x40\x0e\xdb\xd8\x6d\x9f\xa0\x4b\x0d\x11\x82\xa1\x2b\x9d\xb0\x95\xd3\xae\x4f\x93\x33\xd0\x28\x1a\xa9\x10\x48\x35\x88\x15\x95\x4c\x05\x51\xc8\xa6\x46\x01\x43\xe5\x44\x22\x7f\x45\xc5\x3a\xa7\xd2\x48\xf3\x3a\xa9\x7e\x59\xdb\xe1\xe0\x4b\xfb\x75\xbe\xcd\x55\x59\x7e\x74\xec\x89\xe8\x35\xf5\x19\xf9\x2d\xfb\x2d\xd6\xe9\xee\xdc\xef\x3e\x56\xdd\x0a\x83\x8d\xef\x55\xb3\xa2\xae\x95\x2e\x88\x1e\xab\xe4\x45\x65\x25\x2f\xb0\x92\x9c\x15\x7e\x52\x45\x2f\x79\x83\x44\x3e\x2f\xb1\xe8\xdd\xd3\xca\x5c\xf1\x14\xce\xce\x54\x79\xe7\xd9\xc5\xcf\x50\xdb\x15\xd6\xb6\x79\x5a\x6d\x70\xc2\xc2\x51\xfb\x58\x6d\xb7\x65\x71\xd4\x2b\x29\x8e\x22\xda\xf6\x07\x87\xfd\xec\xb0\x1f\x1d\x14\xc6\x75\xda\x16\x5d\x90\xb9\x51\x10\xc1\x36\x4a\x59\xa4\x39\x7d\x01\x02\x48\xb8\xf9\x3a\xa4\x1f\x13\x2f\xae\x0c\xb3\x51\xab\x51\x63\xcb\x24\xe0\x4e\x4a\x2d\xfc\xe9\xc0\x93\x76\x9f\x86\xea\x0a\x51\x3a\xfa\xd3\x69\x5d\x91\xad\xb5\x57\x69\x61\x1d\x16\xe1\xe2\x5b\xc7\x7b\x26\x93\xe3\xd0\x46\x9b\x05\xa8\xc9\x91\xe2\xf2\xa5\x54\x15\x12\x3f\x41\x1b\x8f\xee\x3f\xf1\xea\x3f\xbe\xfe\x5f\x6e\x20\xac\x8b\x26\x44\x03\x30\xea\x0a\x80\xb8\xd5\xbd\x12\x22\xc0\xa5\x1b\xf0\x40\xc0\xe6\x2f\x07\x9e\xf6\x61\xf3\xd7\x17\x60\x83\xfa\x3e\xe5\x16\xdc\x42\x90\xd1\xb1\x2c\xd9\x5c\xe3\x37\xa7\xbe\x77\x23\x40\x23\x43\xb5\xbe\xbf\x1e\x85\xce\xe1\x26\xc8\xad\xb5\x68\xa0\xf9\xa5\x06\xaa\xa1\x93\xec\x56\x2c\xa1\x23\x96\x10\xc1\x28\x70\xa0\xa0\x80\xd1\x6f\x28\x5f\x64\x7f\x38\xbc\x75\x3a\xb0\xfa\xc7\xec\x1f\x18\xa7\xe1\x5f\xf0\xa7\x65\x9d\x9c\x9c\xf4\xd8\xef\x70\x1a\x57\xc0\xf0\xf7\x2f\xc3\x70\x9e\x1a\x5f\x07\x35\x91\xc3\x11\x3f\x57\xd0\xd3\xdf\xbf\x04\xc3\xbc\x89\xa7\x41\xad\xaa\x81\x6a\x18\x2e\x25\x0c\x83\xbd\x22\xa9\x28\xb2\x12\xd0\xfb\xc9\x81\xa7\x7d\xe8\xfc\x74\x00\x3a\x4f\xd8\x15\x32\x52\x85\xd8\xf3\x4a\x2b\x62\x21\x35\x3a\x5a\x57\x40\x07\xf4\xf2\x2b\xf9\xf4\xe1\xc1\x7b\x78\x88\xc7\x06\x7a\xcc\x3c\x13\xe1\xb9\x33\xb2\x48\xc8\xa4\x57\x1b\x34\xae\xc5\xb7\x98\x4c\x92\x32\xb1\xe7\x56\xda\xc4\x74\x07\x03\x96\xc2\x76\x66\xa5\x14\x6f\x2f\x25\x6e\x63\xb8\x43\x5b\x16\xa7\x10\x19\x00\x8c\x9f\xfe\x37\x50\x00\xd4\x27\x37\x7d\xac\x76\xff\x42\x3d\x5c\x89\x46\x10\xdf\xed\x4f\xd2\xa5\x9c\xa4\x98\xc9\x42\x7a\x91\xc3\xf8\xb4\xf6\x3f\xb5\xc6\x9d\x2a\x6a\xe6\x8f\x8b\xe2\xf1\x4a\x62\xef\xef\x8b\x2b\x4f\x07\x95\xf6\xaf\xd0\xca\xb6\x33\x38\x3e\xed\xf6\x60\x67\xa0\xb3\x91\x4f\x19\xd0\xad\x7e\x0a\xa9\xc3\x7e\xbf\xdf\x3b\x1e\x30\xe7\x53\xe6\xd8\xc3\xc1\xa0\x27\x1e\x57\x0e\x74\xc2\xb3\x4f\x7a\x27\x27\x83\x61\x9f\x39\x9f\xb3\x58\x54\xd1\xef\x40\xe6\x2b\xcf\x5f\x60\xd9\x4e\xe7\xb4\x0b\x3c\xc3\x95\x9f\x7c\xc2\x16\x86\xc7\xc7\x56\xb7\xdf\x67\x57\x81\xe3\x5e\xc3\x49\x03\xbf\x21\xf0\x7d\x33\x27\x58\x45\xe1\x8c\xbe\x77\xad\x3e\x14\xc7\xfe\xe0\xec\xe0\xc3\x8d\x1f\x01\xe7\x6b\x9f\x5a\x83\x41\xd7\xea\xb2\xab\x18\x98\x0c\xbb\x63\x9d\x74\xfb\xdd\x1e\x54\x95\xc5\xc1\xe6\x36\x8a\xa0\x74\x7f\x70\x3a\xec\xf6\x3a\xcc\x75\x80\x96\xa6\x2a\x86\xdd\xe1\x70\xd0\x3d\x61\x44\x45\xc5\x1e\x10\xd5\xd4\xe1\xde\xa0\x0b\x49\x91\x4b\x54\xa5\xdd\xe9\x1d\x9f\x9c\xf6\x8f\xd1\x37\x6d\xec\x04\xd8\x89\x7e\xbf\x7b\xdc\xc5\xd7\x10\xb8\xa4\x5b\x2f\x16\x75\x0d\x4e\x3b\xa7\x27\x1d\x4a\x4e\xfc\xe0\x9a\x7a\x3b\x80\xda\x98\x1b\xfb\xab\x24\x82\x3e\x41\xb9\x1e\x22\x04\x77\xe3\x84\x12\x54\xb8\x8a\x04\x74\x7b\xa7\xf4\x42\xdf\x7a\x83\xe3\x6e\x8f\x5e\x17\x51\x00\x8c\x71\x8c\xdd\xef\x5a\xa7\xdd\x53\x99\x6b\x11\x3b\x1b\xbb\x03\xff\x3b\xb5\x3a\xc7\x32\x05\x7d\xe1\x76\x07\x43\xa8\x5f\xbe\xef\xe4\xb8\x5e\x3a\xd7\x3e\x54\xd3\xef\xf5\xba\x03\x51\xcd\x0a\x6f\xbb\x52\xc7\x3e\xed\x58\xa7\xc3\xbe\x68\x31\x0a\xfc\x1b\x4f\xd4\x36\x18\x9c\x1e\x9f\x9e\x8a\xac\x91\x70\x3e\x88\xa3\x3f\x06\x38\xcb\x34\x77\xe9\x43\xcf\x2c\xab\x6f\x59\x9d\x2e\xa5\xc5\xde\x8c\xaa\x03\x9c\x4a\xef\x09\xcd\x1d\xcc\x7c\xcf\x3a\xe9\x77\x44\xb9\xc4\x73\x44\x03\xb0\x18\x4e\x01\x6a\x22\x11\x81\x4d\xa0\xe8\x1f\xf7\xfa\xbd\xfe\x71\x91\x4a\xa3\x45\xc8\xf5\x4f\x07\x7a\xaa\x57\x4e\x85\x35\xfe\x29\x8b\x7c\x98\xc4\x41\xf7\xb4\x2f\xd2\xd4\xe2\x18\x9e\x9e\x0e\x10\x76\x9e\xb7\x5e\xa3\x6d\x0d\x8c\xa3\x33\x3c\xc5\x46\x20\x25\xb9\xde\x88\x86\x4f\x3b\x83\x0e\x9b\xf9\x2b\x6a\x70\x78\x0a\x6b\x68\x38\x10\xef\x9e\xf6\x1e\xcd\x16\x72\xce\xbb\x96\xd5\x83\x11\xb0\xb9\x0f\x54\x50\xec\xc3\x9a\xed\x20\x80\x3a\xfd\x21\x83\x95\x01\xab\x45\xed\x11\x58\x09\xa7\x00\x34\x54\x21\x4b\x52\x39\x55\xdd\x61\xef\xa4\xdf\x05\xda\x1e\x18\x5c\xdf\xa1\x1e\x75\x4e\x61\x49\x2c\xd0\xc4\xe2\x2a\x8a\x23\x5c\x30\xb0\xd6\x60\x7f\x2c\x96\x51\x92\xaa\xba\x7a\x9d\x21\x64\x65\xb8\x32\xb0\x10\xbc\x40\xcd\xda\x3a\xe9\xf7\xba\xa7\x1d\x4c\xc2\x41\x40\x0b\x1d\x9c\x0a\xd1\x66\xaf\x7b\x3c\x3c\x11\xcf\x1b\x2f\x80\xb5\x0b\xfd\xed\x5b\x3d\xd8\x39\x8c\x86\xa8\x72\x2f\xa3\xd0\xdb\xcc\xbc\x5b\xb9\x61\xa1\x07\xcb\x28\x55\x70\xeb\x9d\x1c\xf7\x2d\x74\x9d\xec\x3b\x21\xce\x76\xa7\xd7\x1f\x9c\x0c\xba\x7d\x4a\x5a\x44\x04\xc5\x5e\x0f\x72\xdc\x44\xf1\x86\xc6\x0e\x1d\x04\xaa\x51\x2c\xbf\xc1\xf1\x09\x74\xd9\x62\x81\x03\xdc\xea\xcc\x8b\x21\xa5\xd3\xeb\xe2\xca\x50\x29\x00\xd9\x64\x49\xe5\x7a\x3d\x00\x77\xe0\xdc\x86\xa2\xf7\x27\xb0\x96\x4f\x8f\x87\x2c\xf0\x60\x45\xc1\xca\x9b\xcf\x71\x61\x21\x6c\x01\xc7\xb0\x00\x8f\x1d\xb1\x95\x60\x2f\xc1\x12\xef\x8b\x24\xb9\x6b\x07\xc7\x43\xf4\xd2\x2a\xd3\x70\x93\x75\x00\xb8\xb0\xc2\x4f\x45\x52\x0e\x40\x05\x18\xc0\x6b\x27\x5d\xec\x16\x7d\xa5\xfd\x06\x9b\xb9\xdb\x83\x8d\x29\x93\xc4\x0a\x3e\x3d\x81\x4d\x97\x27\xed\xe6\x52\x40\x1b\x9c\xf4\x87\xb2\x8f\x6a\x47\x40\x22\x4c\x47\x57\x26\xaa\x2d\xd1\xed\xf4\xbb\x27\xa7\xb2\x59\xb5\x30\x21\xc1\xea\xf5\x65\x2b\xc5\x96\x38\x3e\xe9\x01\xe6\xed\x95\x92\xbd\xdd\xe4\xd4\xf3\x02\x09\x16\xe8\x04\x6c\x2d\x91\x9e\x0f\x13\xa6\xa7\x73\x82\x89\x2b\xc4\x61\xdd\x13\x8b\x1e\xe5\x7a\x81\xa5\x84\x53\x19\x00\x2a\x0f\x09\x24\x83\x21\x20\x42\x85\x36\xf2\x25\x0b\xc8\x3e\x82\x21\x21\xee\x1c\x5a\x27\x0c\x7d\x68\x65\x2b\xed\x14\x80\x45\x73\xdc\xeb\x76\xe5\x07\xb9\x75\x06\xf2\x55\x61\x91\x6e\xb7\x83\x2b\x5b\xa6\xae\xb3\x78\x1d\x78\xb0\x71\x01\x47\xc3\x99\x23\x12\x73\x28\xf5\x4e\x8f\x4f\x60\x2d\xa8\xe4\x1c\x75\x9c\x58\x27\xc7\xc7\x00\x3d\x99\xbe\xc6\x83\x50\x94\x18\xf6\x3b\xb0\x22\x44\x7a\x81\x28\xfa\xb0\x36\x7b\x96\xca\x2f\x90\x85\x58\xd3\x40\x12\x76\x8e\xa1\x5d\x7f\x16\x16\x0b\x0b\x00\x00\x5b\x0b\x12\xc3\x14\x5d\x61\xae\xf0\x04\xeb\x76\x4e\x06\x50\x81\x9f\xa4\x9b\x38\x4a\xd4\x21\x86\x45\x23\xd7\x75\x12\x3f\x94\x29\xdd\x53\x16\x3a\x37\xce\xdf\x51\x8e\x13\x86\x27\x43\x58\xb7\x90\x08\x8b\x06\x0e\x21\x58\x80\x68\x47\x0c\x5f\x00\x15\x0f\x06\x98\x80\x3e\xd1\x71\x4f\xf6\x60\xd5\xd3\xdb\x2c\x76\xae\xec\x63\xab\x7f\x72\x0c\xc8\xac\x40\xc9\x80\xda\x60\xc3\x8b\x77\xea\x3e\xe0\x84\xd3\x1e\x1c\xa4\x0a\xb6\xfd\x1e\x6c\x00\x98\xfa\x35\xf0\xd8\x1a\xaa\x18\x0c\x07\xc7\x30\x54\x91\x4c\x60\x02\x74\xda\x85\xed\x24\x92\x0a\x38\xc1\xda\xe9\x9e\xc2\x5c\x50\xb2\x06\xa6\x7e\xef\x04\x50\x4d\x0f\x92\xd7\xce\xc6\x81\x91\xad\xc5\xc6\xb5\x8e\x8f\xd9\x1a\xa5\x18\xeb\x6c\x3e\xa7\xb1\xc2\xff\x21\x9b\x17\x67\x88\x2f\x86\x27\x80\xf6\x99\xda\x1b\xc3\x8e\x05\x6b\x68\x1d\x64\x2b\x3c\xa3\xbb\xfd\x61\x0f\x0a\x47\xb7\x33\x89\x64\xa1\x6d\x38\x23\x60\x27\xca\x25\x81\xab\xec\x18\x76\x32\xa0\x5c\x0f\x20\x2c\x53\x87\x43\x58\x12\x70\xfc\xca\xe1\xc3\x52\x82\x41\xc0\x84\x6c\x24\x3d\xd0\x85\x33\x75\x00\x47\x4d\x1c\x6d\x1c\xb1\x1f\x60\x9f\x0d\xf1\x98\x48\x9c\xd9\x2c\xf0\x44\x36\x98\x5d\xd8\x0d\xc7\x2c\xdf\xa3\x80\xfc\x60\x3b\xc3\x7b\x38\x53\x35\x0d\xad\x1e\x94\xec\xb3\x62\x31\x5a\x03\x48\x3a\xc6\x84\x64\x09\xdb\x8a\x40\x00\xa3\x38\x61\x89\xef\x85\x21\xec\x13\xc8\x30\x3c\x86\xe5\x0a\x74\xc1\x0d\xa2\x3c\x40\xfd\x5d\xc4\x1a\xa5\xfd\x0d\x94\x49\xb1\x90\x61\x34\x96\x35\x94\x29\x62\xb3\xf7\x60\x4e\x61\x4a\xb5\x7d\xae\x52\x42\xb9\x91\x07\xa7\x30\x97\xa5\x45\x3f\xe8\x5b\xd0\x6a\x8e\x02\xfa\x43\x20\x22\x00\x2e\x29\xa2\xbf\x1e\x6e\x16\x7c\xf1\x00\x3f\xc2\x90\x4e\x87\x44\x47\xa6\x00\x4c\xc0\x41\xb0\xc6\x80\x74\x49\xa3\x95\x93\x46\x84\xf5\x8f\xe1\x4c\x67\xda\xce\xe9\x0e\x60\xe1\x0f\x99\x3c\x60\x61\x29\xc1\x51\x7c\x32\x64\xb7\x4b\xcf\x49\x89\xb2\xeb\xe1\x88\x8a\x03\xf0\x18\x8e\x16\xf1\x9a\xac\xa2\x6b\x45\xfc\xc1\x06\xd0\x30\xd1\x10\x05\xc8\xe2\x5d\x2d\x47\x58\x11\xd6\x71\x7f\x6b\x8e\xbe\xaf\x52\xa4\xc3\x8b\xf4\xef\x1d\xe9\xde\x67\x23\x9c\x63\x93\x84\x9b\xb2\x44\x31\x7f\x4d\x3e\xd7\xee\x96\x31\x7f\x81\x92\x7c\xf2\x0e\x97\xdc\x3c\x6a\x63\xc3\x7c\xf3\xbe\x52\xdf\xcd\xe7\x1e\x93\x3a\x8f\x23\x61\x63\xfc\x96\xbc\x0a\x31\x21\x87\xf2\xc6\xb1\x9d\x51\x9c\x79\xcd\x49\x5f\xac\x3b\xd7\x7d\xc4\x42\x20\xca\x7d\x11\x4b\xcd\x29\x34\xa0\x35\xa9\xc6\x50\xc4\x27\x8f\x2a\x75\x14\xbe\xf1\xbe\xe4\x3a\x39\xab\x0a\xde\x91\xee\x95\x4f\x4b\xe5\xd1\x15\x98\xae\xb1\xa0\xfb\x05\x40\xb6\x20\x32\x45\xe8\x1f\xfd\x5e\x42\xf7\xe9\xec\x08\x8d\x43\x18\xc1\x3f\x6b\xff\x6c\x14\x3e\x12\xda\x1f\x6b\xed\x05\xfb\x67\xad\xf6\x4f\xb3\x01\x5f\x6c\x65\x19\x82\xec\xd0\x7b\x6f\xf1\xfa\x6e\x6d\xfc\x73\x82\x25\x1a\xb5\x8f\xe1\xb4\x66\x52\xa4\x2e\xa4\xce\x5f\x46\x33\x0f\x66\xd0\xd2\x74\x90\xa8\xdf\x15\xde\x08\xe2\x9d\x2c\xef\xa3\xdb\x04\xbe\xea\x56\xa0\x74\x05\x97\x47\x16\x88\x31\xa9\xd9\x51\x81\x1b\xb0\x2f\xdf\xa9\xcc\xb5\x59\x8d\xd5\x64\xbe\xfb\x5a\x63\xd7\x09\xbc\xa6\x64\x45\x6e\xac\x85\x26\xab\x30\x22\x6e\xd4\xec\x6f\x66\x13\x8a\xa6\x32\xad\x6d\x25\xc0\xa0\x36\xf8\xb0\xc5\x4b\x0a\x9e\x8e\xcb\x7d\xca\xad\x41\x71\xca\xd0\xa1\x8d\x9d\xa1\x14\x57\x1b\xc6\xe1\x75\x4b\x23\x4a\xce\x78\xa0\x06\x45\x8e\x3b\x33\xf5\x96\xf1\x67\x1d\xe6\x4b\x16\x3b\x21\xe5\xdb\x3e\x79\x1a\xd4\x60\x0b\x7b\x47\x77\xca\x37\xf2\x1a\x0d\xf4\x09\x50\x99\xd7\x33\xa9\xc1\x5e\xff\xd9\xee\x07\xb4\xee\x16\x97\xb2\x8d\x86\xb7\x4d\xb8\xd7\xe8\x4a\x2f\x3f\x7b\xf9\xd4\x3c\x75\x7a\x14\x42\xcb\xc8\xd0\xd1\x4b\xc7\xda\x6b\xab\xd1\x35\x8f\x8e\x1a\x8d\xc4\xb4\xe9\x63\x4c\xbe\x57\x9f\x59\x78\xe5\x91\x9b\x94\x03\xb8\x8a\x45\x56\x13\x8b\xec\x9f\xc2\x16\x7b\x14\x9c\x25\xa3\x3c\x0c\x80\x5e\x73\xd2\x68\xa0\x44\x5f\x38\xf1\xa4\xaa\x4d\xac\x38\x77\x11\x26\x3a\x66\x1e\xe8\x57\x82\x8a\x98\xe8\x98\xb2\xd1\x70\x0a\xb7\x62\x31\x40\xc4\x35\xd1\x52\xda\x0f\x33\xaf\x50\xf7\x93\x3d\x65\x49\xd3\xc9\xd5\xd3\xf3\xd4\x22\x08\x99\xb0\xd3\xba\x87\xed\x8e\x7f\xd0\xb4\x80\x05\x85\x9d\x5f\xc2\x2d\xd4\xd0\x40\x07\x6a\x18\xc2\x0c\x9a\x8a\x46\xc5\xa4\x2d\xc9\x71\x11\x24\xfa\x47\x47\xb1\xf8\xb6\x54\x66\x36\x8c\x4a\x8c\xd2\xa3\x23\x89\x5e\x96\xa4\x60\x39\x07\x08\x98\x0f\x0f\xd2\x7e\x6c\x99\xf7\xcc\xc1\x65\x37\xdf\x0d\x6b\x4f\x73\x5e\xf6\x9b\x46\x71\x2a\xcd\x7c\xc3\x89\x22\xb4\xe3\x52\x53\xcd\x3b\x8a\x3a\x84\xad\x52\x8e\x43\xaa\x74\x3b\x4a\xae\x7a\x42\x33\x26\xc3\xc2\x14\x7a\xa7\xfc\xc3\x91\x3b\x21\x81\xe1\x27\xd9\x0e\x1a\xca\x83\xff\xa6\x7b\x1a\x8c\x6a\x0b\x1c\x8a\xdf\x10\xc1\x20\xc2\xa9\xb9\x2d\x50\x9a\xa9\x36\xeb\x47\x52\xaf\xd4\x87\x55\xed\x02\x06\x6b\xf6\x77\x0a\x91\xc4\xcc\x85\xb3\x46\x1c\x39\xb8\xf3\x59\x0d\x8d\x81\xdb\x90\x58\xa3\x93\x28\xd5\xbe\xfe\xff\xd4\xd7\xd4\xb9\x6a\x26\xde\x1a\xfd\x99\x7b\xb3\xa6\xf0\x75\x24\xdd\xf1\xfd\xdb\x61\xbf\x38\x2c\x74\x59\xea\x32\xcf\x65\xb1\xb0\xdb\x98\xdc\x89\xab\xbc\x1a\x7a\xa9\x01\xac\xfb\x22\xf4\x57\x74\xd3\xf0\x5d\xec\xac\xbc\x9a\x39\x7d\x78\xd0\x3b\xad\xdd\x4d\x87\xac\x73\x6c\x92\xdb\x07\x0a\xd9\xf2\x54\xd5\x7d\xa5\x9b\x0f\x3b\xb0\x27\x9d\x22\x17\x2a\x2c\x0a\x8b\x7a\x8d\x14\x17\xb2\x6b\x43\x5d\x76\xc6\xe6\x36\x20\xa0\x50\x84\x89\x1b\xfd\xe2\x8c\x7f\x71\x5a\x21\xf7\xed\x7f\x3b\xdc\x87\x31\xc1\x9f\xd0\x7d\x78\x30\x52\x97\x97\xae\xde\x53\x17\x36\xb9\xcb\x81\xaa\x73\x8d\x4f\x64\x34\xae\xfa\xda\x9a\x23\x97\xa8\xcb\xb8\xde\xe0\xe5\xff\x87\x54\x0a\x7a\xe3\x28\xdb\xf3\xdd\xa4\x56\x9f\xb8\xef\xa6\x1c\x46\x58\x37\xd2\x42\x5c\xd7\x41\x5f\x15\xa6\xd9\x4e\x6d\x3d\x8b\x14\x8a\x65\x2e\x9f\xd4\x36\x78\xd1\x0c\xff\x1c\xf8\x37\x87\x7f\x6b\xf8\x17\xc2\xbf\x8f\x77\x57\x03\x54\x08\x86\x7f\xf0\xdf\x35\x3a\x6f\x82\x7f\xdf\xc3\xbf\x0f\xf0\xef\x1d\xfc\x7b\x5d\xc3\x70\x83\xac\xf6\x67\x6d\x4a\xeb\xe5\x55\x4a\x6e\x64\xc5\xd2\x7a\x47\x2e\x37\x2a\x5d\xeb\xe4\x42\x4f\xb4\xea\xb3\xce\xc8\xb6\xaf\xce\x31\x98\x76\x4a\x5a\xe7\x6a\xb0\x50\xe6\xbd\x70\x72\x88\x36\x32\xbc\xd3\xd0\xae\xf1\x3b\x70\xbc\x75\x1b\xb9\x76\x40\x98\xeb\x06\x74\x2c\xcc\x9b\x8b\x92\x9b\xc0\xc5\x17\xd2\xcf\x3e\xeb\xd5\xb5\x4a\x0c\x3c\x23\xdb\x3d\x13\xeb\xcf\xdc\xc9\x49\xc3\x6b\xf7\xa4\xaa\xaf\xef\xf2\xb6\x31\xb6\x8d\xc9\x7f\xee\xd1\xa8\x67\xf2\xfc\x8c\xff\x07\x5d\x41\x1b\x93\xc6\xc7\xe6\x37\x94\xf4\x8f\xff\xc1\x1f\x0b\xfe\x7d\x9c\x35\xe0\x2f\xc3\xa7\x56\x73\x2c\xde\x26\x4e\xf3\xf3\xb7\x90\xa1\xed\xb3\xc8\xcd\x65\x8f\x57\x55\xde\xc1\xc2\x5c\xc2\x69\x74\x61\xae\xdd\xaa\x3c\xe2\x7b\x6b\x1e\x47\xab\x97\x12\x61\x93\xd2\x45\xf4\x85\x0a\x4f\xd0\x21\xd2\x17\xf2\x74\x86\x90\xe9\x8f\x2f\x67\x82\x97\x5f\xd7\xc0\xf0\xbc\x74\x12\xb2\x76\x5b\x54\x7b\x5b\xc4\x42\x30\xfb\xae\x9f\x08\x74\x05\x98\xe3\x70\x46\xa0\x8f\xa2\x10\xf5\x64\x9c\x80\xb2\xce\x0f\x67\xfd\xce\xbf\xf3\x66\x94\x29\xae\xcc\x74\x60\xe5\xe4\x25\xb5\xeb\x85\x62\x45\x58\x94\x11\xe3\x8d\xe2\x8a\x1a\x50\x80\x75\xe1\x3e\xcd\xa1\x59\xc3\xad\x89\xe7\x96\xeb\x12\x46\x18\xfd\xad\x5f\x11\xdc\x2f\xbc\x14\x53\xed\x03\x17\x7d\x97\x68\x97\xfd\xeb\x87\x97\x14\x2d\x04\x01\x86\xd9\x37\x5f\xce\xbd\x91\x99\xbf\x03\xdc\xf2\x27\x20\x8f\x2f\x95\x50\xf9\x64\xb1\x1f\xa2\x2c\x4e\xbe\x54\x86\x32\xc9\x02\xe7\x7e\x10\xa0\x0f\xe7\x28\x9c\x7d\xb1\x9c\x9e\x37\x2f\x1e\x66\xa9\xf7\x84\x92\x94\x4d\x15\x02\x7a\x62\xf9\xc5\x22\x98\x49\x16\xb8\x78\x5a\xff\x2e\x4a\x5d\x43\xb4\xfb\x68\x09\xcc\xa0\xe5\xfd\x0c\x8b\xf1\xe7\xf9\xbc\xe4\x49\x34\x2f\x65\x6d\x85\xa3\xbe\x9f\xe7\x87\xab\x94\x19\xb0\xca\x64\x7f\x71\x04\x2e\x32\x76\x72\x45\x68\xa6\xb4\xad\x4b\x4d\x6d\x45\x96\xdc\x1c\x28\xb8\x79\xb4\x5c\xd5\x92\xc9\x0b\xab\x8f\x8f\xd6\xb0\xb7\x7a\xf2\xe2\xf4\xe5\xd1\xb2\x87\x16\x52\x5e\x85\x9e\xe1\x0b\x35\xed\xad\x29\xad\x12\xfa\xf6\x78\xf9\xdd\xe5\x55\x94\xc6\x2f\x8f\x96\xad\x58\x69\x79\xe9\x8b\x27\xf4\x7d\x77\xd1\x89\xc2\x98\x7a\xb0\x98\x38\x74\x02\x81\x64\x0a\x0c\x33\x72\x5c\x8a\xd6\xc5\xbf\x4b\x2b\xe3\x74\x71\xf8\x3e\x73\xa4\x7f\x27\x35\x6a\xc0\x6f\x78\x1d\xb7\x65\x65\x24\x49\x19\x72\x4c\x11\xb6\x34\xfc\x62\x98\x0d\xc2\xbd\x55\x07\x40\x29\x1b\xa1\x45\xea\x51\xc2\xe5\x83\xd0\x6d\xcf\x93\x5b\x19\x50\x3c\xea\x13\x3c\x17\x9f\xa1\x9f\xbb\xc3\x28\xdc\x6f\xba\xae\xd1\xf5\x7a\xcc\x2a\x85\x3e\x3a\xd8\x5b\x46\xef\x12\x39\x88\x17\x81\x62\x01\x7d\x57\x0e\x5b\x84\x6b\x2a\xf2\x3d\x3a\x5c\x91\xa5\xd9\x11\x83\x85\x6e\x27\x12\xcc\xa5\xb1\xe4\x23\xc5\x0f\xbb\x03\xfd\x79\x8e\x1d\xad\x30\x3c\x97\x90\xd1\x0c\xe0\x75\x72\x24\x6c\xa6\xcd\xa1\xd7\xaf\x8b\xae\x96\xf1\x11\xf4\x28\xad\x4a\x05\xda\xee\x64\xd8\xf7\x06\x30\xa0\x49\x2d\x81\xb3\xcf\xd9\x90\x19\x97\x7c\x48\x81\x7e\x16\x4f\xb7\xde\x2c\x54\xcf\xe9\x12\x76\xb2\x78\x9c\xc7\xbe\x78\x48\x1c\xe8\x0f\x3e\x4e\x0f\x48\xa5\x52\x7e\xdc\x14\x57\xe5\x1e\x8c\x03\x1d\xb8\x57\xae\x4a\x43\x5b\x95\x66\x15\xf0\x9b\xea\x65\x43\x13\xf1\xed\xf1\xa1\xc5\xba\x37\x6b\xc7\xf5\x92\x22\xe7\xce\x1c\xaa\x9e\x29\x08\xe7\x8d\x54\x81\x5a\x9f\x27\x94\x6c\x00\x4f\x4e\x5d\x69\x1f\x43\xff\x30\x4a\x23\x79\xd6\xc6\x61\x36\x6a\x49\x6d\xca\xbd\x7c\x7e\x65\x0a\x4d\xbf\x57\x9a\x79\xfc\x22\x6a\x84\x02\xff\x6f\xf4\x4c\x90\x25\xad\x5b\xcf\xbb\xc6\xda\xc4\x6c\xab\x94\xa4\x48\x2a\xd6\x22\x7d\x50\x2b\x55\x7e\x2c\x2d\x56\xcc\x20\x57\x6b\x9e\x43\xbc\xd3\x4c\x27\x2e\xbf\xaf\x35\x6b\x36\xb0\x00\x97\x76\xed\x9b\x1a\xb3\xec\x9a\x55\x03\xb8\x03\x79\xfc\x9f\x8f\x49\x1d\x68\xdd\x36\x5b\xe2\xcb\xb7\x6d\xa4\xfd\xc9\x85\x5c\x95\x65\xef\xbd\x08\x07\x27\x02\xb4\xd9\xef\x52\x52\xdb\x85\xa5\x2c\x13\x7e\x4e\x49\x9f\x50\xb8\x8d\x27\xc2\x4b\xd4\x64\xdc\xcf\x80\x90\x5c\x39\x81\x5d\x6b\xd5\x58\xba\x8c\x32\x94\x5b\x27\x36\xb2\x9e\x0b\x20\xf5\xd6\x40\x9a\xda\x93\xde\x94\xb9\x59\x1c\x7b\xa1\xbb\xb1\x27\xb5\x7f\x20\xc7\x32\x65\x68\xdc\x4f\x98\xb8\xf6\xad\xf3\xcd\xb7\x57\xdf\x7c\xeb\x7d\xf3\xed\x1f\xdf\x7c\xfb\x67\x8d\xbe\x40\xea\xaa\xfd\xed\xac\x8d\xef\xa9\xc8\xf5\x83\xfd\xed\xb9\xfd\xed\x45\x0d\x65\xfa\x7e\x04\x8d\x4c\x6a\x2f\x90\xe5\x79\x77\x4e\xb5\x6d\x30\xe1\x42\x6d\xb0\x73\xb5\xc1\x3e\xe4\x1b\xec\x77\x6d\x83\x7d\x28\x36\xd8\x77\x6a\x83\x5d\xe4\x1b\x8c\x25\xcb\x28\xc6\x15\x20\xab\x14\xf5\x89\xca\x44\x45\xa2\x0a\x51\x5a\x14\x85\x52\x2b\x44\x78\x58\xe4\x27\x27\xcc\x9c\x98\x2a\xf7\xae\x62\xf9\x78\xee\xc4\xee\x12\x7e\x5f\xac\x63\x3f\xa0\x77\x4c\xfd\x29\x0b\x3d\xfa\x09\xf0\xed\x45\xb6\xc8\x12\x54\x30\xbe\xf0\xd6\xa9\x47\xf1\xf9\x58\xed\x67\x37\x8d\xc4\xd3\xdb\xe8\x46\x25\xbe\xf2\x5c\xf1\x28\x3b\x7b\xae\xb5\x2d\xda\x15\x4d\x8a\x06\xf5\xe6\x44\x6b\xa2\x31\xd1\x92\x68\x43\xd4\x2f\xaa\xae\xa1\x5f\xf3\x9c\x55\xe4\x0b\xb7\xa5\x2f\x0f\xe4\x76\x17\x1e\x89\x8b\x5c\x4f\x27\xb7\x13\x1b\xb8\x59\xf8\xb7\xeb\x65\x59\xf8\x46\x25\xb7\x65\x6c\x0d\x0c\x36\xbc\xaf\x5d\xa5\x4b\x26\x7e\x94\x83\x2c\xe1\xb8\x26\x6d\x70\xc8\x90\x0a\x4f\x35\x09\x3d\xff\x1f\x74\xc7\xbc\x43\xf7\xc9\xcf\xa2\x08\xff\x32\xf9\x97\xc8\x15\xbc\x76\xc5\xa1\xe6\x8d\xc4\x48\x50\x88\xea\x39\xbb\xb6\x9c\xc0\xf7\xde\xb8\x7b\xde\x7c\x5b\x38\x54\x73\x7c\x03\xd8\x84\x1e\xa7\x94\xd9\x4e\x3c\xe9\x3f\x96\x34\xd7\x61\x57\x7e\xe7\xe1\x72\xda\xe5\xac\x12\x81\x30\xa3\x95\x97\xc6\x1b\xf2\xe8\x20\xf3\xbd\x8c\x02\xe9\xb6\xe3\x90\xcf\x5d\x0c\x28\x29\xf2\x26\x0c\x3d\x45\xe9\x1e\x48\xa4\x0b\xe8\xc4\x23\x9f\x4f\xa5\x06\xb6\x6c\x06\xbd\xb9\x58\x2f\xbd\xbd\xce\xc0\x19\x4e\xc9\x48\x0c\xbf\x8b\xfc\x70\xd7\x3b\x3f\x7a\xd0\x74\x01\xe7\xcd\xfc\x10\x76\x64\x82\x8e\x18\x30\x17\xd9\xab\x90\x71\x22\x43\x43\x52\x28\x7c\x9e\x05\xa9\x5f\x55\x83\xde\x79\xbd\xa6\x03\xfd\x0f\x85\xb7\xab\x83\xed\xbc\xf1\x43\x4f\xb0\xbb\xbb\xed\x78\xc6\x4e\x57\xc9\xeb\x39\xf5\xeb\x70\xa1\xaf\xeb\xdc\x5c\x00\x57\x56\xfd\x2e\x0a\x36\x8b\xbd\xc9\x5a\xee\xf5\xa3\x80\x4e\x55\xfe\xaf\xec\xc2\x52\x75\x01\x6a\xfd\x5e\xce\xf1\x93\x16\x8e\x5c\x10\xfe\x17\x97\x0e\xad\x18\xb5\x2b\x1c\xd8\x14\x55\xd2\xc7\x15\x46\x6b\x2a\xed\x1c\x68\xf1\x1c\xf6\xf5\xca\x95\x7e\xa8\x5d\xb6\x51\x5b\x0c\x3e\x00\x62\xd8\x59\x7e\xe6\xfd\xca\x6d\xf0\x7e\xfd\x93\xb3\x65\x34\xd7\xf6\x15\xdd\xf8\x5f\xa0\x9a\xbf\x7c\x7e\x1d\xce\xe0\x69\x2d\xe0\x26\x3e\xe8\x96\x2d\x6e\x8b\xd0\x01\xd0\x97\xe7\x6e\x2b\x2f\xcb\x17\xde\x56\x95\xc1\x0a\xf6\xec\x10\xba\xf5\x8d\x3b\xc2\xc6\xad\xb3\x70\x8c\x1d\x68\x84\x76\x58\xae\x42\xbe\x40\x71\x7c\xa4\xee\xf1\xab\x02\x2a\x57\x28\xc0\x48\x0e\x19\x11\x23\xe4\xcf\x85\xf4\xf8\x8e\x4f\x12\x1e\xb2\x25\x0f\xa7\x26\x9b\x93\xce\xe0\x9c\xa3\xcb\xa2\xb3\x05\xba\x93\xe3\xfa\x95\x99\x08\xa6\x2e\xc5\x9f\x6b\xcf\x98\xa4\xf5\x57\x0e\xf3\xe0\x8f\x70\x57\xb6\x52\x3e\x44\x67\x9e\xb1\x42\x7b\x48\x9f\x4f\x32\xdc\x19\xcd\x0c\x37\x89\x85\xe6\xdc\x33\x74\xe0\x99\x99\xa3\x73\xcf\x88\xd0\xbe\xfc\x0e\x7f\xa5\xd9\x5f\xda\x5c\xb3\x80\xbb\x67\xd6\xb8\x63\xc3\xfc\xdf\xf0\x08\xcd\x06\xde\x39\xf5\x80\xcd\xf8\xc2\x31\x5c\xf3\xac\x73\x42\x91\xb7\x66\xff\x31\x6e\xce\x82\xfa\xfa\xe8\x28\xa8\xa7\x67\x37\x32\x48\xc9\x06\x0a\x74\xb0\xc0\x68\x23\x7b\xbf\x31\x73\x73\xbe\x1b\x6e\xdc\x34\x7a\x43\xcb\xfc\x16\xfe\x34\xd1\x92\xfe\x50\x25\x4d\x55\xcb\xfc\x6c\x43\xe0\x50\xb5\xcc\x49\x89\x72\xce\x3d\x93\x79\xb2\x01\xcf\x1c\xcd\xc6\xeb\xb3\x74\xec\x18\xb8\x8f\xce\xf0\x67\x89\x17\x20\x4b\x80\x9c\x8d\xee\x6c\x96\x5a\x62\x82\x89\xcb\x33\x9e\x8c\x8d\x84\x40\x9d\x08\x50\x2f\x65\x01\xd3\x4e\xcf\xd6\x4f\xaf\x4a\xf4\x4a\x84\x5f\x18\xad\x78\x8c\x66\x67\xdb\xd2\xe5\xd7\x95\x5c\x19\x69\xd9\x18\xf1\x0e\x9d\x53\x25\xec\x0e\xc6\xc9\x97\x4c\x65\x0a\xd1\xb7\x61\xc9\x2a\x37\xcb\x2f\x05\x57\xf9\x45\x51\x73\x3d\xda\x34\x70\x36\x62\x9a\x8d\x71\xdc\x30\x62\x98\x31\x00\xaa\xdd\x44\xf0\xda\xb1\xe8\xd6\x0d\xd4\x37\xe3\xde\x48\xad\x4e\xaa\x8a\x89\x1f\xfd\x0a\x15\x56\xa2\xb6\xae\x8d\xd2\xc5\xa9\x79\x9f\x19\x37\x6c\x96\xef\x1e\x58\xed\xb0\x95\xa0\xed\x8d\x79\xf6\xd2\x21\x28\x34\x01\x3c\xd0\x0d\x60\xda\xca\x83\xda\x1d\x8a\x53\x12\xf2\xa5\x4d\x1e\x9a\xcf\xad\x71\x8a\x2b\xc2\x4e\x4b\xf6\xd1\xba\xc0\x50\xd9\x9f\x97\xec\xa2\x75\x99\x39\x7c\x7b\x4e\xbe\x09\xc6\xe2\x11\x8e\xe3\x50\x24\xd8\xe1\xf3\x94\xfc\xac\xe3\xcb\x73\x71\xa1\x2b\x63\x98\xb0\x35\x2b\x99\x8d\xf1\x7b\x81\x5e\x42\x0d\xbd\x78\x39\x7a\x89\x0f\xa2\x17\x35\x71\x19\x4c\x61\x81\x19\x7c\xf9\x86\xa8\x21\x62\x1b\xc0\x82\x34\x05\x45\x15\x78\x92\x56\x63\x9f\x22\xa3\x80\x74\xb1\x32\xf4\x06\x3c\xad\x81\x98\x59\x67\x1b\x77\xac\x4d\x04\x9b\xc3\xe3\x82\x9f\xc2\x94\xd8\x1b\x98\xa5\x31\x3e\xdb\xcd\x97\x8e\xdc\x4c\x4d\xf8\x52\x9e\x2b\xc0\x5a\xbb\xf7\xf0\x80\xc6\x17\x7c\x09\x15\x01\x0a\xa3\xb8\x4c\xec\x1c\xaf\xfc\x76\xd1\xf9\x95\xd2\x8e\x3e\xd7\xdc\x27\x11\x6e\x23\x07\x71\xae\x66\xa0\x2c\xe3\x52\x9c\x8b\x68\x67\xe8\xf5\x2e\x95\xde\x26\x3d\x48\x84\x33\x25\x10\x81\xa1\x33\xf3\xe1\x01\x1f\xd1\xc2\xca\x1c\x1b\x8e\x41\xa8\x8b\x2c\x5d\xcf\xe4\x0b\xa2\x34\xdc\x82\xf8\x4b\xb6\xb3\xc0\x4f\xc9\xc2\xd5\xd9\xac\x29\x99\xdc\x02\x40\xa4\x63\xfa\x0c\xf1\x46\xee\x92\x9d\x79\xb0\x71\x9b\x30\x4a\x0c\x55\x5d\x38\xe7\x13\xfe\xdb\x7c\x8c\x88\x95\x9e\xf1\x78\x04\x85\x98\xe8\x2f\xc6\xd4\x67\x46\xc4\x1d\xea\x02\x13\x75\x9f\x01\x1e\x33\xd6\x30\xe3\xc2\xbe\x17\x30\x3a\x75\x40\xdd\x5c\x9e\xf3\x3b\x61\x66\x09\xed\x70\xce\x93\x87\x07\xf1\x30\x1f\x4f\x26\x16\x34\x0d\xff\xa6\x2c\x7f\x9a\xda\x93\x09\x2c\x56\x48\x81\xe5\x3a\x9d\x6e\xb7\x86\xa9\x80\x8f\xb6\x43\x71\xe4\x97\xbd\xd7\xde\xb9\xfc\xca\xe5\x97\x2e\xbf\x75\xf9\x85\xcb\xaf\x5d\xfe\xda\xe5\x2f\x5c\xfe\xd6\xe5\x2f\x5d\xfe\xb9\xea\x28\xfe\xe4\xaa\xc9\x7b\xeb\x32\x0f\xb2\xc1\x80\x3f\xbb\x30\xe2\xb4\x9e\x36\xbc\xba\xd7\x88\xeb\xb9\xc6\xc2\x67\x87\x9c\x4c\xa7\x50\x31\x64\x7d\x8d\x59\x5f\xb8\x0c\x96\xd4\x95\x4b\xc9\x97\x98\x7c\x8b\xc9\x17\xae\x59\xae\x82\x61\x59\x73\x9c\x8f\xcc\x9e\x88\x68\x62\xa9\x13\x76\x31\x52\x8d\x09\x88\x9e\xa5\xa9\x11\xb7\x0b\x9b\xe7\xcc\xc4\x54\x79\x87\x73\xe7\xb2\x2b\x97\x41\x0b\x50\xff\x85\xcb\xa0\x07\xd0\x3e\xb4\x0e\xbd\x86\x3e\x43\x8f\x3f\x15\xa4\xc3\x95\xa4\x13\x2e\x3d\x6d\x27\x5f\x14\x5b\xf9\xda\x3b\xb8\x97\x3f\xe9\x87\xfb\xeb\x83\xf4\x41\x29\xdb\x85\x07\x84\xf3\x1b\x97\xbf\xf1\x8c\xb7\x1e\x7b\xe7\xb1\xbf\x3d\x36\x69\x7e\x72\x58\x13\x7d\xc6\xc0\xb2\xfc\xe0\xf2\x8e\x77\xaa\x68\x02\x37\xf0\xd7\xbb\x86\x64\x65\xc3\x74\xe1\xfe\xee\x5e\xcc\x51\xd5\x55\x0e\xc5\x77\x45\xf1\x34\xcc\xff\xb3\x0e\x82\xda\xa7\xa8\x3c\x2a\xc9\xc2\x10\x39\x22\x52\x6e\x51\xdc\x79\xc4\x9a\xca\xe7\x3f\x02\x35\xca\x1b\x18\xc2\x5e\x04\x6b\x17\x8f\xb8\xac\xf1\xb1\x33\x15\x26\x8f\xe2\x11\xb7\x5a\xb9\x0b\xd2\x1f\x91\x89\x91\xa3\x26\x13\x18\x07\x2c\x59\x18\x09\x2e\xd9\x42\xd9\x48\x74\xc8\x98\x08\x07\x48\xb9\x35\x2e\x12\xeb\x86\x82\x4d\x14\xfa\xee\x6b\xf4\x74\xff\xa2\x44\x4f\x16\x9e\x23\x3d\xe3\x2f\x8c\xa5\xd4\x8a\x9d\x5b\xfe\x97\xa7\x96\xb3\x13\x00\xc3\x99\x54\x1b\xb6\xee\xd7\x6b\x40\xf1\x28\x45\x31\x14\x74\x82\xa1\xd3\x58\x61\x89\x67\x4c\x9a\xad\x21\xeb\x9d\xb4\x8e\x85\x43\x51\x07\xa8\xe5\x20\x31\x26\xdd\xd3\xd6\x80\xf5\x07\xad\x01\x24\x93\x1d\xa0\xd1\xb1\x8e\x2d\x71\x93\x5b\xb4\xfe\x6b\xe2\x1c\xf6\x16\x23\xbc\x3d\x12\x93\x12\x91\x03\x95\x5c\x36\x2a\xd0\x01\x92\x63\x40\x88\xa5\x0f\x0f\x46\x2c\x1f\x51\xb5\x40\x3e\x6e\xcb\x41\x38\x4a\xcd\x1a\xa6\xb0\x34\x7d\x74\x98\xa8\x5c\x5a\x1a\x67\x97\x0d\x4e\x68\x3c\xda\x30\x07\x03\x36\x1c\x20\x16\x7d\x42\x75\xc7\xe5\xea\x7a\xac\x73\xda\x3a\x2d\x57\x77\xc2\x3a\x27\xe4\x4f\x57\x1e\xab\x65\x6d\xa2\x94\xc3\x32\xf1\xb4\xf5\x11\x4a\x37\x29\x15\x82\x56\x5f\x42\x1d\x2f\x83\xfd\xc2\x68\x54\x46\x0b\x40\xe2\x40\x38\x44\x48\x61\x19\x0a\xcf\x39\xc2\x25\x82\xf2\x2e\x68\x64\x67\xbc\xd5\xe9\x1e\x1d\xb5\xba\xbd\x3e\xa2\xb0\xf8\x8c\x37\x5b\xfd\xee\xe0\xe8\xa8\xd9\xea\x76\xfa\x67\xf1\x38\xb2\x29\xcf\x70\xb8\x93\x09\xbe\x62\xa6\x4e\x67\x00\x99\x1c\xdb\x37\x65\x2f\xe9\xbe\x36\xdc\x97\x05\x68\x5d\x96\x18\x16\x3b\x1d\x69\x6f\x31\x77\x8a\x37\xd9\xc1\x7d\x08\x65\xc8\x71\x2b\x82\x0d\x6d\x87\xf4\x97\x58\x7b\xd9\xb2\x7d\x7e\xa9\xe0\xd5\xa1\x5c\xfe\x18\x6b\x1c\x7c\x81\x16\x4b\xc5\x34\xfa\x0f\x4a\xea\x6f\x71\x89\x36\xcc\x31\xe9\x5e\x69\x41\xb0\x78\xda\x73\x5c\x3c\x6f\x0f\xa2\xdd\x74\x87\x32\xa2\xf1\x96\x12\xe2\x27\xd2\x4e\x69\x99\x74\xf2\xca\xaf\x71\xe9\x75\xbb\xc5\x39\x5c\xab\xeb\xed\xa7\x19\x9e\xfa\x45\x01\xb4\xb8\x8e\xca\xaf\x4e\xf9\x35\x24\x5a\x23\x4f\x31\xbf\xd2\x2e\x59\x2d\x7c\x6a\x47\x3c\xb6\x7a\x83\x3a\xb5\x93\x7f\xd1\xcc\xa8\x8d\xd2\xee\x20\x42\x47\xee\x9c\xc3\xd6\xd6\x95\x3e\xb6\x95\x33\x5a\xbd\x3a\x71\xab\xa5\x6d\xc6\x84\x0b\x4b\xe2\x39\x27\x5b\xe2\x5c\xaf\xb1\xb4\x47\x53\x53\x3b\xf0\x00\xf7\x27\xb0\xf1\x06\x03\x60\x25\xe7\xb0\xb9\x7a\x27\xf5\x00\x4e\x82\xa4\xa1\xd2\x1a\x32\x0d\x11\xad\xd8\x23\xae\x29\x16\x3b\xec\x9b\x48\xab\x16\xeb\xe9\x59\xc7\xb2\x8c\xd5\x81\x32\x15\x0d\x75\xa1\xd2\xc6\x4b\x07\xf3\x74\xba\xf4\x88\xad\xd1\xae\xae\x07\x4d\xf1\x01\x76\x3b\x3d\x57\xb5\x99\x71\x67\xa7\xcd\xae\xa5\xfa\x89\x15\x56\xb4\x49\x55\xab\x36\x87\x43\xad\x51\xc0\x21\x4f\x6a\x34\xcc\x17\x89\x3c\x66\x08\xf0\xef\x5d\xf6\xca\x65\xef\x5c\xf6\xab\xcb\xfe\x76\xd9\x77\x2e\xfb\x21\xc7\xac\x5f\x2b\x0f\x79\x85\x84\xe0\x0f\x3a\x09\xf3\xdb\x41\x4a\xa7\x94\xed\x87\x42\xda\xf1\x43\x2e\xed\x60\xef\x5d\x62\x44\x5f\xb9\xed\x2e\x8a\x10\x7f\xce\xfb\xf5\x87\xf7\x94\x8e\x5d\xe9\x2d\x5f\x6d\xd9\x8f\x79\xf9\xdf\xf5\xf2\x3f\x15\xf4\xdb\xf7\x87\xe9\xb7\x1f\xf5\xee\xfe\xfb\xe0\xa8\x7e\x54\xbd\x87\x26\x4a\x45\x7e\xca\xdf\x71\x90\xdf\x7b\x85\x28\x67\x0d\x74\xe9\xe1\xf3\x5d\x53\x82\xaa\xf0\x16\xef\x90\xcf\x6e\x6c\xf0\xbd\x33\xf3\xb3\xc4\x68\x38\x07\x42\x45\xb0\x08\x83\xa9\x13\x59\x05\xa4\x40\xc4\x81\x02\x30\xcd\x3d\xa2\x9d\xdc\xa6\xa1\x4c\x2b\x0b\x4a\xac\x7a\x5a\x10\x3e\x91\xa0\x2b\xc2\x22\x82\x24\x12\x95\x70\xb6\xf7\x5b\x03\xcd\x49\xf6\x01\xa9\xdd\xfb\x2a\x56\x21\x33\x7e\x70\xa1\xe1\xf7\xae\xf2\x5d\xb0\xc7\x7f\x28\x03\xd0\xaf\x61\x40\x32\xe3\x47\xac\xf5\xb3\x3b\x9e\xbc\x75\xdb\x9f\x91\x9c\x87\xbf\x53\xfb\x05\x24\x5c\xbb\xed\x17\x48\xe8\xc3\xdf\xa9\x7d\x01\x09\x97\x6e\xfb\x02\x59\x00\xf8\x0b\x2c\x84\x62\x26\xb0\x3f\xbb\x92\xb6\xa2\x37\x7f\xbb\xfc\x3b\x17\x78\xd8\x77\x2e\xff\xd5\x15\x5c\xec\x7e\x1f\x7e\xc6\x3e\x4c\x26\xb4\xbf\x60\xbb\xd2\x0e\x9b\x4e\xc5\xf1\x10\xfd\xbd\x1b\x72\xed\x11\x4d\x79\x60\x2a\x85\x6e\xbc\x22\x0e\x1e\x1e\x52\xbc\xfa\xb3\x37\x0c\x2f\x78\x51\x55\x3e\xa4\x48\x45\x4f\x8d\x2d\x03\xb4\xb9\xd4\x89\x8d\xa9\x5a\xef\xf6\x9b\x7f\x78\x64\xf0\xfb\x0b\xf9\xcb\xa9\x70\xb0\xbf\xb7\xdc\x1c\x53\x34\x1e\xd3\x80\x8a\x0f\x4f\x3b\x85\x1c\x5e\xb1\xa4\xd3\x71\x6a\x1b\x3b\x8b\x1a\x0e\xa3\x86\x38\xf4\x9c\x32\xe4\x8c\x5d\x42\x19\x3a\xa3\x80\x20\x5d\x62\xab\x39\x21\x74\x8b\x57\x49\x55\xf7\x8e\xbb\x1c\x51\x29\xe4\xb2\x17\xeb\xae\xd0\x64\xfc\x23\x4f\xc5\xb0\xc8\x4f\x27\x3c\xf4\x4b\x9e\xce\xf7\x89\xaf\x54\xdd\x16\x51\x73\x39\xb1\x95\x56\x13\x5b\x5a\xce\x2f\x11\x58\x5a\xd6\x2f\x92\x53\x3b\x79\xbf\x44\x40\x95\xfa\xfb\x24\x42\x69\xbf\x84\x24\x8a\xd4\x54\x68\x2b\x3f\x8b\xf7\x13\xcf\xb3\x14\x1d\x35\x73\x3f\xce\xd9\x37\xef\x53\xe6\x03\xb1\x03\x4c\xfd\x22\x0b\x9c\xaa\xc8\x15\x59\x6c\x38\xb1\xe2\xdf\x9c\x58\xd1\xfc\x4e\x5e\x3f\xb1\x18\xbb\x9b\x4d\x17\x7d\x17\xac\x1d\x3a\x1a\x47\xc9\xf4\x2b\x87\x21\xfd\x01\xbf\xb0\xcc\x31\x81\xbf\x93\x29\xf4\x90\xab\xb3\xf3\x20\x26\x6e\x01\x25\xcf\x58\x28\x14\x85\x98\xd2\x5f\x3f\xeb\x8e\xf1\xee\x08\x92\x6c\xc4\x11\x7b\xfc\x48\xa9\x69\xc5\x07\x3c\xa9\x07\xf8\x9f\x5b\x31\x58\xd7\x8f\xdd\xc0\x3b\xe8\x31\x5a\xdc\x42\x54\x6c\x3e\x0c\xd5\x5c\x79\x7e\xd8\x50\x35\x0e\x93\xdc\xca\x61\xb7\x9a\x6a\x90\x96\xe2\x5c\x4a\xaa\xee\xc2\x9c\x87\x09\x89\x14\xab\x64\xd4\xa4\x7a\x7b\xc8\x85\xcc\x18\xb6\xb7\x1a\x60\x28\x07\x88\x9a\x0c\xd2\xb5\xa4\xbc\xb9\xaa\x31\xed\x82\xca\x9e\x64\xd3\xed\x56\x8b\x97\x48\xec\x7f\xc6\x87\xff\x9d\xb3\xe1\x58\x38\x1b\x26\x54\x06\xeb\x4c\x07\x5f\xfc\x48\x31\x8f\x2f\x62\xc3\x48\x79\x23\x36\x11\x1c\x19\xcd\x15\xc6\x37\x39\xc0\x02\x7c\xb1\x2e\xba\x74\x01\x6c\x2f\x2a\x34\xa5\x03\x64\xd9\x27\xe3\x54\x13\x0f\xcc\x7c\x11\x04\xbe\x4a\x7f\x1a\x39\xd8\xb4\xf0\x03\x88\x3d\xe3\x6a\xca\x7c\x2e\x17\x15\x30\xf8\x42\x2a\xe6\x63\xbf\x98\xf4\x37\xec\x46\x09\xbe\xb9\xc5\xb7\x0c\xdd\x35\xe6\xdf\x32\xa4\xd0\xf3\x6f\x3e\x4a\x84\xf3\x6f\x7e\x59\x5b\x45\x88\xe1\x0a\xc9\x1b\x8c\x70\x5e\x8f\xcc\xba\xd7\x80\xa7\xa0\x9e\x34\xdd\xfa\xbc\xee\xc0\x3b\x34\x57\x4f\x1a\x01\xbd\xe5\xe3\x5b\xa0\xe7\x20\x37\x7b\x64\x21\x4b\xf4\x2d\xd6\xc8\xce\x45\x6b\x79\xad\x20\xc2\xaa\xa4\x67\x50\x1b\x98\x1c\xaf\x16\xde\xe0\xfc\xf6\xcc\xac\xcf\x80\xb0\x99\x09\x47\xab\x4b\x33\xb7\xb2\xd8\xcf\x1c\xb4\x57\x66\x7d\xc5\x5c\xb6\x12\x99\x17\xe6\x63\xb9\xe3\xf6\xda\xac\x63\x48\xec\xb5\x29\x63\xdc\x54\xa9\xec\x01\xd1\x1b\x7e\x3b\xc3\x3b\x10\xe9\xea\x35\x79\xb4\x52\xa7\x7d\x63\xd6\x6f\x80\x08\xbb\xf9\x62\xa5\x2b\xad\xd2\xb9\xf4\x82\xae\x11\x71\x30\x8c\x80\xe5\xb7\x18\xbc\x83\x0e\xce\xd7\x6c\xc6\xd1\xb4\x98\xf7\xd0\x48\x91\x77\x75\x32\x0f\x0f\x90\x4a\xe9\xd8\x41\x37\xb6\x72\xae\x0e\x4d\x53\xb8\x15\x0e\xbc\xa2\x2c\xc5\xba\xf7\xab\x7e\x14\x1f\x2c\xd1\x1a\x45\xc2\x69\x81\x8c\x8f\xb0\x33\xea\x98\x6c\x09\xab\x16\xe8\x5a\xc0\x53\xa8\x95\x5e\xa4\x2f\x8c\xa0\x2a\xdd\x9c\x12\x07\xef\x3d\xdd\x2d\x17\x1a\xc3\xfc\x1d\xc5\x92\x63\x43\x87\xe2\x7e\xa8\xbd\xda\x61\x29\x81\xc6\xa8\x15\x78\x22\xd7\x2e\xf8\x62\xe1\x45\x9b\x58\x63\xf2\x01\x2f\x53\xc9\x7f\xb6\x48\x45\xff\xda\x52\xa2\xee\xc3\x6e\xcf\x50\x64\x0e\x5b\xf8\x4c\x48\xd3\x03\xbc\x84\x45\x5f\xdb\xa6\x8e\xa1\x8c\x8d\x89\x22\x56\x9f\x21\xe3\x9c\x31\x49\xa4\x6a\x9d\x7e\x2a\x16\xcd\xfb\xe8\x15\x7d\x74\x8a\x3e\x46\x45\x1f\x63\xba\x6f\x4d\x79\x8c\x56\x5a\xe8\xfa\x06\x50\xd0\x59\x44\x49\x0e\x14\x89\x50\xfe\x58\xd5\xc7\x98\x39\x24\x06\x8e\x44\x1f\x93\xd4\x5b\x7f\xcd\x1c\x5d\x40\xfe\x7c\x86\xe4\x8b\x9a\x1f\x7a\x2d\x66\xe7\xe2\xa9\x55\x1b\x33\x29\xb3\x58\x89\xe1\x91\xd3\xb8\x19\x5b\x15\x40\x7c\x7a\x55\x6b\x59\xd5\x8d\x56\xd5\x9a\xdd\x4c\xff\x0b\x99\xd2\x06\xdd\xa9\x25\xfc\x06\x88\x23\xd8\xde\xa7\x74\x7b\x37\x8b\x8d\x18\x10\xd0\x06\x36\x05\x7e\x08\x60\xcf\xe3\x87\x05\x7e\xf0\x01\x11\x6c\xe8\xc8\xd9\xec\xac\x50\x63\x32\xa1\x4b\xf5\xe6\xa9\x25\x04\x0f\xf8\x72\x6a\x49\x51\x83\xbe\xb6\x55\xc6\x13\xfa\x28\x32\x9e\x50\xa1\xa9\x8e\xda\x3d\x27\x7d\x11\xbb\x4f\xc3\xec\x87\xb0\xc5\x24\x7d\x78\x38\x40\xb0\x30\x0f\x0d\xe8\x2a\x3f\x95\x88\x86\x15\x46\xea\xd8\xc4\x05\x4a\xdb\x3f\x54\x77\x65\xfe\x2a\x87\xf1\x5f\xb5\x2e\x44\x75\x51\x16\xeb\x4d\x78\x8f\xee\x28\x74\xf2\x5b\x41\xac\x79\x63\x24\xaf\x6c\x2f\xa7\x5a\xa4\x1b\xec\x27\xad\x0c\x0c\xad\xe0\x55\xf3\x5f\x54\x6b\x9a\xd3\x1d\x15\x4b\xee\x91\x2d\x66\x5b\x5b\x14\x34\x49\x50\x69\x5e\x2a\xab\x8d\xd2\xce\x05\xe5\xac\x53\xcd\xbb\x84\x6f\x5e\x99\x68\xa2\x8a\xb7\xfd\xb3\x8a\xff\xff\xcb\x35\xd9\x9f\x52\x17\xe8\x4f\x17\x5e\xf7\xae\xf1\x74\xf1\xd6\x5d\xfc\x54\x31\xd2\x6f\x2e\xbf\xaa\x3c\x60\x0b\x32\xa7\xdb\x36\x3a\x8d\x70\x57\xf5\x58\x66\xeb\x0a\xfd\x64\x74\x91\x61\x84\x28\xd9\x32\x47\x39\x1b\xfb\xd9\x5f\x65\xe9\xd2\x09\x1e\xbb\xa9\x02\x4e\xe7\x37\x57\x71\x3a\xbf\xb9\x34\xbe\x3f\xf6\xfa\x24\xef\xcd\xa9\x25\x24\xcc\xb4\x60\x6a\x47\x47\x69\x3b\x27\xdf\x90\xf7\xdc\x54\xf7\xc0\x17\x0b\xbd\x2a\x16\x20\xf4\xe1\x8f\xbc\x0f\x7f\xb8\xe5\x6b\xb6\x97\x51\x48\x2a\x9b\x55\x2e\xbc\xfe\xf4\x8c\xcb\x9c\x4d\xbb\x8c\xf7\xee\xe7\x1e\x69\x13\x8a\xde\xe6\x45\x6f\x85\xe6\xf1\x3f\x0e\xcd\x45\xa7\x0d\x8b\x30\x27\x41\x8b\xf1\x2d\xc2\x68\x85\x4d\x55\x8f\xe9\x1f\xf9\x98\xfe\xe1\xb2\x8b\x78\xff\xe2\xa8\x58\xb9\x93\x90\xa9\x89\x84\x06\x8c\x3c\xe0\x45\x6a\x9a\xcd\xf7\xce\xb4\xb8\x79\x5c\x79\xb1\x4b\xec\xec\x7e\x8b\xd7\xb1\x71\x91\x8f\xe8\x42\x8c\xe8\x5f\xe5\x11\x15\x03\x52\xc3\x81\x49\x2b\x86\x13\xc5\xe9\x32\x02\x32\x79\xbd\x3c\x34\xa4\x7f\xe5\x43\xfa\x97\x58\x2a\xbf\x1f\x06\x19\x2d\xda\x47\xd7\x2c\x0e\x35\xd4\x57\x2c\x9c\xbd\xb1\xf7\x78\x0f\x7e\xcf\x7b\xf0\xbb\xcb\x5e\x3f\x0e\xd4\x66\x5a\x0d\xd5\x70\x17\xaa\x24\xcd\x21\xaa\xed\xbc\x02\xbe\x82\xbf\x05\xf0\xbe\xa6\xe8\x0f\xca\x21\x2a\x7a\xb1\x90\x57\x8d\x05\xbe\xdf\xf5\x95\xaa\xc9\x5c\xc7\x70\x98\x35\xa5\xea\x27\x5e\x27\xdb\xc4\xac\x9a\x6c\x42\x69\x4d\x91\x88\x28\x52\xd4\x59\x5d\x87\x67\x4c\x34\x15\xd2\xb2\x44\xa0\x71\x6a\xd9\xa7\x96\xa8\xd8\x13\x15\xeb\xca\xa6\x4d\xfc\xb6\x65\x50\x03\x70\xb6\x8c\x5e\x04\x20\x5f\x2b\x46\x7f\x85\xea\xcf\xf2\xb1\xb5\xcc\x76\x02\xa1\x69\xec\x4e\x48\xf7\x31\x61\xee\xd6\x43\x5e\xc4\x00\xc3\x2e\x8e\xc2\x8c\xbf\x4e\xc9\x87\x07\xfe\xc6\xa6\x1e\x64\x97\x8c\xf1\x5d\xe4\xed\x45\xa8\x73\x6b\x14\x9d\xa5\xa3\xb4\xd1\x30\xa5\xf9\xfc\xa4\x91\xe9\x21\xe2\x30\x6c\x1b\x0a\xec\xfc\x8a\xc4\x54\x86\x82\x15\x61\x23\x8d\xcf\x34\x3d\x45\x85\x32\x8a\xeb\xc4\x81\xec\x08\x89\x26\x3d\x60\x78\x23\x79\x47\xf4\x32\x46\x91\x63\x82\xbf\x2e\xd2\x32\xe8\x42\x9d\x73\x1e\x08\x85\x98\x64\x92\xe4\xea\x35\x22\x39\x28\xde\x81\xc0\xc9\x87\x50\x24\xa3\xea\x8d\x35\x6a\x36\x53\x73\x21\xc5\x11\xd0\x78\x00\xad\x4e\x01\xfe\xb2\xb3\xc0\xdb\xcf\x47\xe9\xf3\xbc\x6e\x8a\x56\xa9\xe7\x4f\x8a\xfc\x8a\xd7\xda\x4a\x87\xce\x48\xda\xbe\xcd\xa9\x8b\xfd\x00\xa9\x28\xc0\x35\x52\xdd\xd3\xed\x63\x12\x5b\x8f\x93\x9a\x37\xda\xd8\xeb\xee\x6c\x1f\x2b\x12\x8b\x22\x40\x1f\xa4\x66\xb1\x54\xe4\x89\x56\x55\xc5\x06\x35\xe9\x7e\x72\xf3\x38\x8f\x3f\xb9\x7c\xa7\x94\x26\xe2\x04\x88\xfe\xe4\xee\x08\xfb\xb5\x68\x96\x6c\x3f\xd2\xa7\x0a\x55\xea\x35\xc9\xc7\xb5\xa5\x22\x7f\x86\xc4\x05\xc8\xf8\x9f\x2c\x13\xc1\x60\xea\xb1\x92\x60\xd4\xe3\xe2\x22\xb0\x35\xa8\x03\x61\x02\xed\x56\x5e\x15\x14\xa4\x1d\xa9\x18\xeb\x4d\x8b\x58\xb0\x16\x13\x01\xe3\x26\x19\x74\x41\xac\xc6\x1d\xa8\x3d\x3c\x18\x18\x74\xb5\x6d\x0c\x85\x53\x4a\x87\x94\x14\x4c\x53\xa9\x29\x0b\xf6\x84\xea\xc0\xb0\xf7\x14\xc2\xa8\x8e\x0a\x2c\x4d\xd4\x6d\xa9\x13\xd1\xee\x37\x84\xfc\x85\xd4\x5d\xcc\x3a\x30\x2b\x94\xd0\x99\x92\xa6\x0b\x24\xc8\xc1\x4c\xfc\x7a\xc8\xa2\x7a\x38\x15\x23\x0a\xfc\x75\x79\x0b\xef\x87\xaf\x84\xa6\x3f\xa0\xe0\x1f\xf6\x24\x8c\x30\xd0\x47\xd8\x84\x0f\xc2\x8e\x41\xd8\x23\x4c\x02\x1c\x62\xa3\xe1\xa2\x43\x93\x7b\xb1\x96\x95\xf3\x0d\x33\x47\x46\xa4\x87\x46\xd9\xdd\x29\xc9\x86\x8c\x22\xcc\x42\xd3\x31\x9b\xa4\xab\x43\x41\xa1\xbd\xe7\xf1\xc8\xc4\x90\x4d\xde\x94\x7d\x8a\x8d\x88\x25\xa4\x44\xf7\x09\x19\x87\x84\x54\xeb\x42\xb1\x2b\xde\x90\xae\x09\xa5\x11\x03\x87\x69\x11\xf0\x6e\x79\x4e\x8c\x91\xbb\x9f\xd3\xe7\xd1\xc8\xc9\x3f\x91\xe4\x0a\xa3\x68\xe6\x82\x56\xe9\xa5\xd3\x65\xff\x76\xd9\x2f\x2e\x0b\x03\x96\x06\xcc\x0b\x10\x41\xc5\xf8\x77\xf4\xb3\x26\x7f\x47\xc2\x15\x23\xb8\x1d\x5a\x99\x22\xf0\xe1\x6c\x41\xa1\x25\xf2\xb0\x12\x5e\xb3\x89\x8b\x91\x82\x49\xe0\x47\xbc\x01\xc2\x1e\x39\x0f\x0f\xa8\xfd\x40\xa0\xf3\x58\x47\x37\x41\x44\x4c\xf6\x27\x62\x32\x59\xc7\x96\xfd\x52\xba\x06\x48\x76\x65\xea\xba\x35\x08\xb6\xd1\x0a\x00\x59\x09\xb1\xb9\x9f\x7a\xe3\x22\xdd\xb1\x8b\x67\xa0\x3c\xbd\xb2\xa0\xfd\xc9\xd5\x5c\x69\xd5\x38\x28\xd8\xc8\xf4\xee\x89\x20\x9f\x76\xa5\x0c\x91\x65\xa8\x71\x29\x0e\x8f\xb4\xf5\x8e\xe2\x60\xbe\x85\x25\xf4\x16\xc0\xf2\x16\xdd\x30\xb4\xde\x42\x2a\x31\xe9\x6f\x51\x7c\xda\x7a\x9f\x47\xd1\x6e\xbd\x1f\x85\xad\x37\x08\x4b\xfc\x81\x7f\x3c\x95\xfa\xcc\xad\xf7\xe8\x65\x87\x87\xe2\x55\x98\xb9\x8e\xa1\x48\x96\x49\x9b\x57\x04\xe5\x3b\x71\xcd\x48\xcd\x41\xbd\xef\x38\xd5\x80\x27\x38\x21\x4c\x68\xb4\xf5\x56\x66\xa1\x32\xe2\x1b\xf9\xa8\xa2\x75\x8e\xb9\xa1\x21\x59\xc9\xaf\xc8\x43\xb5\x5e\xa2\x02\x5b\x88\x8d\x1f\x1d\x79\xad\x97\x23\x13\x58\xab\xd6\xaf\x50\x8e\xf3\xb8\xf5\x06\x79\xa2\xb8\xf5\x1e\x15\xd0\xb2\xd6\x4b\x40\xb6\x90\x3f\xc3\x32\x1d\x16\xab\xa2\x31\x1d\xd5\x18\x37\xf9\x3d\xfa\xff\x10\x1d\x46\xbd\xe7\x50\xf8\xc8\x6a\xfd\x8a\x9a\x21\x7a\x99\x58\xe6\xc1\x30\xee\x36\xb5\xf0\xe6\x89\x2d\xbc\x41\x17\xbe\x4f\x68\xc1\xd3\x5a\x10\x39\xa4\x93\x7e\xca\x85\x06\x4b\x18\x6b\xa2\xa4\xed\xa7\x4f\x1e\xc0\x16\xa7\xef\x1d\x25\xbc\x13\xb3\x2b\xe6\x33\x94\x93\x30\xd2\x10\x10\x56\x8f\xb1\xdb\x60\x14\x11\xcd\x31\x85\xaa\xf1\xc7\xd1\x18\x66\x2f\x32\x6d\xdf\x8e\x58\x36\xce\x00\xfa\x9c\x87\xf4\xeb\xd9\x19\xcc\x83\x67\xcb\x69\xf2\x98\x7f\x74\x14\x11\x57\xdb\x7a\x49\x23\x09\xe9\xf7\x0d\x4a\xaa\x68\x9e\xd0\xae\x32\xc2\xc9\xa0\xb9\x81\x24\x6c\x32\x44\x90\x33\xac\x2f\x84\xb4\xf7\x28\x1b\xc2\xcc\x18\x27\x16\x7e\x51\xc0\xe5\x89\x3c\x08\xe5\x98\xea\x0c\x51\x8f\x9f\xdc\x86\x60\x0e\x93\x3d\x13\x51\x57\x51\x83\xbb\xf5\x52\x8f\x06\x03\x19\x5e\x52\xc0\xd5\x59\x44\x19\xd4\x2e\xba\x94\x0e\x9d\x64\x1a\x34\x2e\xf6\x01\x3c\xbd\xc7\xd5\x84\x82\x2a\x31\x13\x59\x79\x26\x32\xa4\x6a\x20\x13\xae\xe3\x37\x18\xf3\xfb\x4d\xeb\x25\xa2\x8f\xf7\xf8\xfc\x1e\x1a\xbf\x2f\x9e\xd1\xfb\x0b\x7e\xc7\x6a\xd2\xf2\x92\x49\xb5\x6a\x68\xa1\x50\x3b\x54\x0a\x73\x6b\xad\x85\xb2\xc3\x23\xea\xf0\x36\xb7\x89\xc0\xe2\x6f\x2a\xbb\x1a\x97\xbb\xfa\xe6\xb1\xae\x16\xe9\x46\xde\x78\x5a\x1e\x71\xaa\x55\xa3\x77\x55\x0e\x2c\x3e\xd8\xd5\x7c\x53\xe2\x14\x66\xad\x5f\xb7\xb7\x4b\x3f\xf0\x8c\x67\x38\x45\x23\x31\x79\x34\x37\xdb\x6d\x41\xbc\xdc\x44\x71\x14\x46\xfe\x23\xa4\x6e\x61\x32\x2e\xbc\x35\xa9\x93\x8e\x94\xe4\x72\x09\xaa\x52\x44\xf5\xb9\xd2\x43\x8d\xb8\x54\x43\x55\xd8\xdd\xcf\x0c\xba\x0b\x77\x50\x25\x31\x08\x92\x7d\xa3\x67\x0f\xbe\xdd\x0b\xf3\x16\x4f\x9e\x26\x01\x3c\x21\x06\xc6\x43\x78\xe2\x4c\xf3\xa8\x56\x63\x77\x4f\x26\x2e\x3b\xda\x4a\xc4\x95\xaa\xa2\x09\x80\x20\x44\x0a\x6f\xba\x35\xed\xa0\x75\x77\x86\xae\xbf\xe0\xf7\x39\x3a\xb8\x0a\x5a\x9b\x33\x9e\xd1\xef\x73\xd8\x26\x28\x0c\x8d\xa6\x6c\xe2\xcb\xbf\x19\xfc\x85\x6d\x8a\x0a\xde\xd3\x51\xa2\xd4\xfb\xa1\x17\xe8\x1e\x50\xb7\x1d\xd9\x75\xe3\x54\xc5\x8e\xdd\xdf\xe9\xfe\x80\x44\x58\xa7\xf6\x4b\xc7\xc4\xa0\x96\x1b\xfd\x53\x54\xfa\xe4\xdb\x29\x4a\xf1\x85\x3d\xc9\x0b\x44\x1a\x6f\x63\x0c\x45\x0f\xe0\xcd\x80\x78\xc9\x82\x91\xc6\x60\x09\x74\x1e\xf8\xe1\x75\xa5\x8e\x85\x9c\x00\x53\x80\xf6\x91\xdb\x0d\x98\x62\xdc\xd8\xf1\x76\x3f\x94\xa7\xba\xe3\x27\x99\x9b\x8d\xd0\x0d\x5a\x3e\x1a\x1b\xa0\xb4\x8c\xde\x81\x29\x9d\xd2\xc5\x03\x86\x04\xf4\xe9\xa2\x2d\xa9\xd0\xbd\x9c\xec\xae\x8b\x47\x56\x45\x5c\x10\x1b\x42\xeb\x5a\xae\x09\x47\x2d\x93\x82\x6e\x90\x74\x9c\x53\x78\x3b\x73\x88\x70\x13\xf4\x07\x30\x39\x74\xb0\x47\xe3\xa4\x15\xdb\xf0\xac\xe8\xb9\x8c\x27\x00\xd5\x39\x65\x77\x0f\x65\x66\xf1\x73\xbf\x85\x7e\xd1\x9e\xcf\xf1\xc7\x01\x24\x0d\xbd\x99\x9b\xcf\x2d\xdc\xd4\x82\xdb\x42\x2d\x06\xe0\xd0\x7c\x04\x4a\x38\x81\x7c\xc8\xd5\x92\x93\x84\x27\x33\x26\x82\x6d\xe4\x68\xae\x2d\x78\x8d\xa7\xb2\x27\x11\x16\xcc\x64\x41\x8c\xf3\x5a\xa9\xc5\xfe\x58\x0d\x8e\xd4\x62\x81\xd3\x26\xb0\x89\xd7\x71\x10\x59\x07\x42\x8c\xe9\x60\x95\xe5\x38\x26\x8f\x54\xa6\xb7\x8e\x07\x85\xd4\x28\x0f\xa7\x3b\x95\x02\x20\x31\x4a\x65\x6e\x6a\x9b\x01\xf1\x39\x69\x76\xbc\x21\xc3\x3f\x28\xf3\x86\x47\x7c\x9a\x8e\x14\xd2\x9a\x79\x81\x93\x85\x4e\x25\x58\x76\x10\x1b\x86\xa7\x55\xab\x90\xd4\x81\xd5\xf7\x4f\x99\x33\x4b\x63\xcf\xdb\x71\x58\x86\xe7\xb2\x86\x01\xfd\x12\x3e\xf4\x8d\x92\xf2\x3f\x62\x2b\x54\xcc\xf4\x93\xb7\xce\x5b\x60\xf8\x8f\x8e\xe4\x23\x50\x0f\x52\x40\xe0\xcc\x15\x42\x0b\x01\x0d\x25\xf0\x97\x22\xc7\xe2\xc8\x9f\x71\x17\x73\xa1\xa9\x5e\xd3\x33\x1b\xf0\x9b\x34\x63\xf3\x79\xcb\xea\x98\xc1\x5e\x3b\xe4\x1a\x90\x6a\x9a\x73\xa9\x1c\x34\xc2\x98\x2e\x18\x89\x25\x54\x98\x09\xc9\x33\x2c\x3a\x67\x2e\xf2\x00\xb2\x28\xdb\xaf\x4d\xd1\x8e\x77\x78\xd0\x43\x0d\xb1\x52\x38\x52\x64\x65\x45\x91\x1c\x08\xfa\x37\xba\xe5\x14\x23\x0c\x38\xb0\x92\x46\xd6\x20\x91\x02\x3e\x46\x0d\x92\x2a\x78\x67\x3c\x60\x4b\x1e\x9f\xc1\x0e\x5b\xf0\xe5\xf3\xe7\x9d\x87\xf9\x48\x80\x06\x4f\x33\xa4\x68\x31\xb0\x7a\x32\x59\x4c\x91\x55\xcc\x5f\x78\x92\xa1\x77\x91\xf9\x38\xe3\xb0\x48\xb0\x8e\x71\xc4\x13\xdb\xc5\x8d\xba\xd7\x83\x43\x06\x63\xb8\x21\xa0\x43\x77\xf8\xeb\x9a\x05\xe4\x53\xf3\x06\x68\x5c\x8c\x68\x8a\x96\x80\x1b\x9e\xe5\xae\x17\x57\x7c\xc3\x9b\xc6\x0d\x9f\x09\x1d\xb4\x39\xb2\x43\xe8\x13\x91\xad\x0b\x21\x4e\x44\x91\xc9\x17\xc0\x6f\xaf\xcf\x16\x80\x41\x16\x26\x4c\x2c\x74\x99\x25\x70\xae\xdc\xc0\x39\x7b\x03\x98\xe3\x0e\xe0\x00\xc7\x0a\x05\x97\x84\xd7\x0d\xbe\xde\x9d\xad\x30\xee\x76\xfe\x95\xac\xbc\x36\xe2\xeb\x5c\x20\x10\xfa\xb4\x54\xcf\x1b\xe9\x13\x72\xb7\x3d\x82\xf8\x15\x6f\x9c\x1b\xb2\xe5\x85\xc9\x2e\x79\xe3\xce\x00\x18\x9b\xa3\x9b\xb3\x2b\xea\xc4\x95\xc9\x66\x67\x97\xd4\x01\x60\x03\xae\x64\xe3\x90\x7a\x29\x1b\xbe\xcc\x9b\xbd\xca\x1b\xbd\x14\xc0\xbc\xe5\xab\xe6\x0d\xbb\xe0\x9b\xe6\x6c\x74\x7b\x76\x31\xde\xf0\x59\xe3\xd6\x5e\xf1\x9b\xc6\x85\x08\x68\x4f\xf3\x83\x10\xbd\x46\x97\x8a\xa5\x9d\xe8\x1b\xd7\x2c\x64\xd0\x39\xf8\x03\x9d\x65\xd0\xaf\x10\x7b\x28\xa7\x05\x36\xe1\x75\xeb\xc6\x07\x0c\xbe\x43\x75\x60\x24\xfa\x52\xa6\xb9\x1f\x56\xaa\x2e\x2e\x33\x6c\x21\x17\xef\x15\x45\x16\x88\xfd\x65\x44\x27\x71\x66\x20\xb8\x9e\xaf\x47\x26\xf5\x09\x21\x35\xc7\x3f\x4b\xfc\xa3\x8a\x8d\x9a\xcd\x85\xda\x11\xea\xf0\xa1\x41\x15\x71\xbc\xf8\x92\x87\x3c\x11\x3b\xec\x7a\x2b\x0c\xd1\x1c\x3c\x8e\xdd\x42\x20\x85\x36\x66\xbb\x1a\xda\x88\x51\xdd\x0c\x72\x05\x19\x43\x3f\xa0\x11\xb9\x1d\xa5\xa0\xef\xc8\x27\xa3\xf7\x43\x9f\x7c\xf3\x1a\xfe\x53\x4f\x07\x40\xd1\xcc\x27\xdd\x3d\xff\xa9\xe7\x82\x2b\x8a\xb8\x58\x64\xf7\x16\xfe\xb1\x72\xea\x2c\x48\xb9\xc7\x63\x2e\x8c\x87\x6c\x94\xe0\x85\xc5\xa5\x74\x28\xe9\xbe\x18\x1f\x3b\xea\x3a\x3d\x54\x06\x48\xd0\xac\x0a\xb0\x45\xa5\x27\x13\x18\xb8\x22\xab\xb0\x3f\x4f\x3e\x4e\x0e\xf6\x46\x84\xb2\x6c\x84\x5a\xd3\x15\xed\xc6\xcd\x94\x65\x4d\x0f\xdb\x14\x87\x80\x76\x9b\xf6\x7e\x71\xc5\x17\xd9\x4e\xe2\xcf\x57\xa8\x41\xc7\xd7\xbb\xe9\x6f\xc9\x6d\x06\xbf\xd9\x4d\x97\x01\x53\x66\x99\x70\x66\x18\xf0\xf6\xa4\xd9\x98\x8e\x8d\xb1\xfd\x71\xd6\xf8\xd8\x1a\x7f\x9c\xd5\x1f\xe8\xa7\x61\x42\xda\xc4\x7b\x3d\xa5\xef\xe4\xba\xb0\xbd\x60\x51\xa0\xfb\x2f\xf6\x03\x79\xab\xc9\x6a\x8b\x9a\xb9\x13\xa4\x9c\xaf\x76\xda\x8e\xe2\x84\x4f\x2a\x44\x0e\xf9\x2d\xa4\x5a\xa1\x35\xe1\x5a\xb8\x86\x2c\xf1\xf8\x7b\x27\x77\x8e\xda\xfe\x8f\xf1\x3f\x0f\xf1\xe2\xea\xa3\xf1\xb0\x4c\x82\x8f\x86\xd9\x16\xae\x97\x53\x73\xbc\xc8\xec\x59\x66\xa3\x3b\x55\x71\x4f\x0b\xd5\x45\x29\xa6\xee\xb8\x70\x35\xc7\x9b\xcc\xae\x45\x04\x34\xaa\xff\xe8\x48\x9c\x85\xf0\x65\x9d\xd9\x37\x99\x29\x74\x33\xa7\x3b\x60\xa3\xe2\x7c\x23\xa0\x56\x79\xcb\xb5\xd9\x32\x37\xc8\xdd\x39\xe2\xbd\xa2\x13\xdb\x4e\x40\x17\x89\xf6\x75\xc6\xf0\x20\xaf\x90\xe4\x5c\x02\x01\xe4\x66\x57\xbe\x5b\xf1\xed\x16\xbe\xa1\x53\xfd\xfd\x2f\xaf\xc9\x24\x6f\x5d\xf1\xe5\x05\xd6\x47\x9a\x80\x15\x1f\xdf\x62\xb1\xc0\x49\x52\x68\xee\x65\xc6\xae\x30\xf2\xcc\x67\xf8\x05\x82\xde\xad\xca\xff\x29\x43\x75\xbc\xa0\x18\x56\xcd\x0f\x6b\xf6\x86\x45\x59\x6a\xdf\x65\x0c\xde\x9a\xf0\x58\xb3\xaf\xe0\x19\x1e\x9a\xf8\xb5\x62\x93\x5c\x65\xc6\x1d\xf9\xf6\xde\x0a\xe7\x2e\x9e\x93\x78\x15\xa4\x36\xaa\x41\xce\xbc\xbb\x9f\xe7\x46\xad\x59\x43\xb1\x06\xca\xe9\xc7\x4a\x76\x89\xee\x4a\x81\xd6\x8b\xcb\xa9\x69\xa3\x63\xda\xd8\xab\xc2\x60\xc4\x0d\xd0\x8b\x12\xd0\x39\x0f\x0f\x00\xfe\x98\x07\xe2\x3d\x86\x77\x38\x6a\x33\x23\x36\x94\xb7\x35\x61\x2c\xe7\x88\x3b\x8b\x7c\x27\xb3\x0e\x39\x7a\xdc\x59\x00\x3f\xc0\xe4\xbe\xd9\xdd\x4c\x3f\x24\x01\xff\xb0\x9b\xf8\xc6\xb9\xe2\xef\x77\x13\xdf\x93\x8f\xd6\x57\x94\x5c\xad\x95\x2c\x60\x90\x41\x6f\x50\x4d\xc2\x7b\x1d\x78\xd8\x9b\xb7\x17\x78\xfb\x15\x26\x28\xd8\x9c\xfb\x77\xad\xe4\x66\x21\xf6\x9a\x32\x7a\x3f\x54\x5d\x4e\x43\x84\x64\xc2\xe5\xa5\x2f\x52\xd8\x54\x57\x59\xea\x19\xb5\xbc\x44\x8d\x85\xa6\xf4\xdb\x95\x16\xf5\xb4\xae\x60\x7e\x7e\x73\x02\xbc\xa0\x4d\xa2\xc0\x9f\x09\x27\x95\x8a\xe9\x82\xed\xff\x0e\x58\xa1\xb1\x07\x4b\x02\xaa\xbc\xb3\x93\x00\x58\x07\x22\x5a\xdf\x65\x4f\x0a\x76\x57\x2b\xcc\x60\x6a\x0d\xe1\x43\x47\x25\x34\x6a\xa6\xb4\x0b\x94\x5f\xc4\x1b\x24\x27\xd7\xde\xed\x1f\x2a\x15\x5f\x30\x8d\x0c\x5b\x54\x1a\xbe\x40\x62\x4d\xd0\xe7\x30\x35\xf7\x8e\xdd\x61\x57\xb6\xc5\x5c\xf8\x37\x83\x67\x0f\x7e\xe7\xb6\xb5\xdd\xc1\x54\x1f\x72\x08\xfe\x90\x89\xc8\x69\x1b\x58\xcd\xf2\x9a\x4d\xbc\xb4\xae\x60\xfe\x82\x2a\x05\x91\x4a\xc9\x3d\x52\x62\x28\x3f\xc7\xe0\xce\x85\xbf\x13\x12\xa5\x4b\x0e\xec\x4f\xd8\x10\x13\x6f\x6a\x16\x42\xe5\xad\xde\x9c\xbb\x8c\xe2\xd9\xe3\xba\xbc\x2c\xc8\x75\xf6\xa0\xa7\x37\xd8\xe4\x8c\xe7\x9a\x82\xbe\x09\x34\xa3\xbc\xfc\xf2\x48\x58\x8e\x7f\x42\x0a\x79\x4e\x72\xfd\xe5\x73\x5f\xde\x0f\x04\x90\xb8\x10\x89\x0b\x4c\x0c\x1a\x3c\x9b\x2c\xa7\x40\x7b\x8c\x6e\x44\x67\x03\xa8\x4c\xc6\x07\x2f\xea\x37\x59\xd8\xe0\x01\x79\xf3\x06\x7a\x61\x26\x78\xdb\x4a\x85\x8f\xc8\xb8\x99\x84\x40\xc8\x4c\x52\x62\x32\x81\x95\x5a\x1d\xf0\x24\x17\xee\xd5\xa2\x69\xc9\x18\x19\xde\x0c\x86\x68\x85\x0f\xbf\x1e\xd6\x85\xa1\xcf\xb9\xf1\xc6\x69\x26\x75\xdf\x6c\x03\x48\xaa\xc6\x37\x07\xaa\x5c\x1f\x9f\x74\x09\x32\x83\x31\x02\xe9\xbd\x9a\x6c\x70\xa8\x40\x7c\x67\xf8\x74\x3e\x65\x57\x90\xff\x92\x03\x14\xee\xea\xe1\x68\x3d\xd9\x34\x00\x1d\x35\xce\xa7\x28\x35\x07\xf4\x04\xe8\x2f\xc9\xae\xc4\xe3\x39\x23\x21\xce\x0b\x64\xdb\xec\x2b\x94\xd5\x8b\xc7\x4b\xe1\x0f\xca\xbe\xdb\x6e\x63\xa8\x54\x2b\x59\x64\x9f\x17\xd9\x03\x99\xdd\x08\x9a\x73\x13\x95\x18\xa0\xed\x84\x00\xab\x8f\x45\x10\xd7\xcb\x9d\x71\xdc\xf2\xf5\x64\x49\x3d\x84\x31\x5c\xc0\xcb\x82\x5e\x96\xd3\x91\x71\x2b\x7c\x8e\x3e\x3c\x5c\x88\x07\x13\x25\xe0\x34\x8b\xf2\xcb\x73\xf9\x61\xac\xe4\x24\x17\x4a\x40\x72\xbb\xb5\x55\xda\xad\x4a\xbb\x00\x70\xbb\x47\x47\x7b\x36\x42\xde\x23\x33\xef\x1a\x86\x52\x7c\x12\x4d\x35\x94\xc6\x92\xec\x12\xc5\x15\x2f\xe7\x48\x77\x73\x98\xdb\x4a\x9d\x55\x5c\xf5\x49\xe1\x32\x3a\x90\xe8\xe8\xa9\xc2\x0b\x92\x40\xa0\x50\x5e\x72\x4b\x48\xad\x09\xd6\x94\x84\x12\x41\x6b\x0d\xa4\x75\x09\x7d\x3d\x56\x1f\xfa\xdb\xd1\x6b\x48\xb0\x06\x84\xcb\xf7\xe8\x8b\xae\x52\xcc\x55\x25\x18\x29\x57\x12\xa9\x4a\x2e\xb2\xab\xc5\x57\xd4\xe3\x50\x3d\xaa\x16\x47\xd5\xf2\x12\x71\xca\x13\xab\x40\x5a\xdc\xa3\xc9\xc6\x2a\x5c\xac\xc2\xdd\x29\x9e\x97\x86\x15\x86\xc1\xfd\x3d\xcc\xb4\xdb\xcd\x3c\x53\x2c\x32\xc5\x90\x49\xc7\x73\xb0\xa8\xdd\x43\xaa\xde\x55\xb1\x3c\x94\xe4\x83\xee\xa6\x48\x16\x80\x51\x19\x94\x49\x3c\xe0\xcd\xbb\x26\x4a\x30\x22\x7c\xdc\xc0\xe3\x06\x85\x8f\x4d\x0f\x58\x1b\xbf\xee\x37\xa2\x3a\x85\x8a\x70\xcf\x9c\xba\xd3\x9e\x51\x2d\xeb\xb3\x5c\x30\x40\xa1\xda\x61\xe5\xb5\x5d\x60\xfc\xd7\x77\x4d\x28\x12\xa0\xc4\x61\xd3\xe4\x51\x3d\x90\xe7\xdf\x33\x6b\x5b\xb4\x7d\x74\x04\x1b\xa2\x54\x03\x25\xbf\x7c\xac\x1a\x55\x8f\x6a\xad\xa4\xa1\x4e\xf7\x34\xeb\xbb\x22\x1e\xfe\x1d\x95\x2c\xde\x61\x3c\x64\xaa\x47\xbe\x89\x77\xad\xf1\xd0\x2d\x1e\x39\xd9\xf7\x93\xb5\x93\xe6\xd1\xab\xd1\xad\xa7\xef\xa2\x9f\x76\x0a\x19\x0e\x3b\x67\xd2\x61\xc0\x0b\x25\xbc\x75\xca\xe6\x7c\x8e\x72\x8f\x25\xa1\x48\x0c\x8f\xc4\x17\x80\x8e\x78\xab\x03\x87\x49\x6b\xd8\xa7\x43\x84\x1c\xb5\xe4\xfa\x0c\x2d\xac\x4c\x9f\x32\x80\x87\x11\xd7\xa1\xb2\x53\x14\x0b\x59\x03\x75\xcf\xe2\xb6\xa0\x3d\x43\xaa\x73\x62\xd3\xcc\x09\xd6\x4b\xc7\x8e\xb9\x05\x78\xfb\x99\x95\xdf\x31\x39\x74\x90\xad\x81\xcf\xdd\x90\xeb\x9c\x95\xda\x93\x97\x85\x13\x18\x71\x8e\x59\xa3\xcb\x33\x0f\x4f\x52\xd3\xe1\xe7\x78\x23\x3d\x47\x03\x78\xc1\x82\x2c\xd1\xbe\x96\x30\x07\xdb\xf0\x65\xeb\xae\x39\x07\xe8\xdd\xc1\xd3\x06\x9e\x36\xcc\x58\xf3\x4d\x7d\xd3\xb8\xab\xdf\x99\xe4\x54\x25\xae\xfb\x50\x41\xdd\x80\xc7\x42\x89\x6f\x6d\x9a\xcd\x0c\x8f\x96\xf6\x9a\x6d\xea\x7c\xcd\xee\xf0\x0f\x56\x06\x85\x0d\x38\x90\x5b\xb7\x1e\x86\xc8\x6a\x1b\x4b\xf9\xd4\x50\x49\x26\x8a\x26\x60\x8e\xef\xea\x33\x06\x2d\x37\x44\x81\x4e\x73\x86\xc2\x8b\x0d\x1e\x26\x33\x92\x43\x40\x62\x5c\xbf\x31\x49\xb0\x81\x3a\x2c\x80\x01\xef\xe0\xa1\x83\x0f\x44\x32\xcc\x4c\x53\x4a\x04\xbc\xe7\x57\x23\x18\xe8\x0a\x07\xea\x60\x95\xc6\xa6\x09\xbf\x68\xa7\xe0\x60\x95\xc6\x1d\xbc\x6e\xe0\x15\xeb\x5d\x50\xa9\x9f\x32\x60\x35\x77\x65\x87\xc6\x0a\x36\x1e\xfa\x7e\xc8\xaf\xf4\xa1\x5e\x43\x54\x8c\xd6\x03\x77\xde\x0c\xef\x7f\x48\xd6\x61\xa0\x6f\x0f\x53\x82\xbb\xc8\x9d\xf7\x82\x72\x03\x8a\x69\xdd\x01\xb8\xd7\x77\xd8\x11\x7c\xd8\x98\x36\xa6\x35\xb9\x81\xa9\x4d\xfa\xcb\xb1\xaf\x66\x3d\xc1\x3c\xe2\xc3\x86\x3e\x60\x81\x0d\x7e\x30\x47\x2e\x2d\x26\xb5\x46\xc4\x2a\x95\x8b\x04\x45\xf3\x8e\x10\xb3\x3d\x0d\x65\xad\x00\x65\x39\x14\xc5\xda\x39\x7c\xb7\xb0\x5f\xec\x5c\x14\x3b\xc7\x62\x4f\xe7\xf2\x03\x51\x2a\x50\x8d\xbd\xda\x37\xcb\x79\xa4\xf4\xbc\x4a\x09\x37\x1c\x87\x76\x83\x6a\x9d\x63\xad\xb9\x4e\x72\xb9\x01\xd9\x1e\x90\xd6\x07\x35\x63\xf7\xdb\x5b\x3e\xde\xde\x12\xdb\x9b\xc7\x3e\x65\x78\xea\x79\x27\x8a\x26\x58\x54\x20\xb2\xa7\x15\x5c\x3c\xde\x95\x45\x51\xdf\xd7\x81\x74\xcd\xc3\xba\x98\x48\x6d\x33\x63\x65\x8b\xd8\xb9\xf1\xd3\x27\x8a\xa0\x6e\xe4\xb0\x6e\xb0\x64\xba\xf4\xd2\x4a\x83\xe6\x2a\x4b\x80\xbd\xd6\x67\xd4\x3a\x2d\xe6\x27\x0a\x8e\xb0\xed\x78\x0c\xc7\xff\x99\x85\x3a\xd5\x36\xfc\x02\x96\x70\xe5\x45\xa1\xdc\x23\x12\xa3\x2b\x4c\x1a\x8a\x10\x60\x14\x27\xc4\x10\xa8\xd9\xc4\xab\x4b\xbc\x90\x71\x44\xc9\x83\x0e\x03\xc5\xdd\xf8\x33\x4f\x50\xc9\x9e\x76\x77\xea\xa2\x5d\x98\x35\x82\x73\x72\x84\x01\x7f\x3c\xbc\xd1\x94\xbc\x04\xa6\x27\x32\x5d\x7a\x06\x3c\x87\xcf\x23\x6f\x92\x29\x32\x8e\x88\xdd\xa9\xf4\x8a\x25\x51\x32\xe0\x9e\x89\x7a\xde\xc9\x20\x4a\xa1\xa5\x96\xe4\x9e\xe8\xe6\x0c\x35\xc2\x1c\x71\x49\x16\x15\x1c\x94\x23\xa3\x34\xc9\x0b\x0c\x9f\x47\xd0\x36\x46\xb4\xc9\x9d\x4c\x94\x4c\xd1\x80\x55\x99\x45\x2b\xc3\xac\xc7\x9a\xd3\x1b\xb7\x38\x5f\x92\xfc\x7c\x81\x73\x2f\x10\xf6\x17\x88\x8a\x73\xad\x47\xf7\x2c\x25\xc5\x3f\x23\x06\xfc\x07\xdc\x8b\xe8\x3a\x4f\x59\x2c\xb1\x3e\xe4\x51\x79\x13\x99\x37\x06\x80\x40\xe7\x6b\xc2\x71\xad\x66\x67\x29\x47\x8a\x2a\x1e\xca\x18\x60\x35\x51\x8f\x53\xb3\xaa\x84\x00\x18\x95\x90\x8a\xfe\x58\x42\x3c\x42\x89\x46\x43\x15\x97\xdd\xa1\x14\x09\x65\x91\xb2\x37\x14\x31\x12\x26\x6f\x80\x5a\x74\x1a\xc6\x78\x45\x63\xd4\xee\x6a\x6c\x8d\x1a\x59\xf2\xd3\x46\x7c\xda\xe0\xa7\x4d\x8d\xdd\x68\x9f\xd6\xb2\x18\x20\x79\xac\xa2\x48\x97\x65\x00\xc7\x63\x79\x8a\xcb\x85\x04\x44\xc5\x9e\x9f\x9b\xbb\x80\x43\xb6\x8e\xc3\x79\x5a\xa8\x90\x9e\x0b\x15\xd2\xe2\x72\x61\x2f\xfb\x1c\x9b\xf0\x0f\x34\xb1\xdc\x6b\xc2\xa7\x26\x96\x4f\x6d\x82\xb2\x93\x03\xba\xe8\x40\x13\x0b\x73\x17\xbe\x11\x35\xb1\xd0\x9a\x58\x55\x35\x51\xca\xbe\x28\x88\xab\x9c\xb8\xcb\x09\xbd\x2a\x13\x0c\x81\x57\x8c\x56\xc7\x14\xdb\x3c\x5a\x3f\x92\xcb\xa2\x4c\xb3\xd8\xa9\x10\xc5\x20\xf1\x0e\x5b\x1f\x50\xc8\x95\xb7\x04\x44\x19\xc5\x94\xd1\x30\xa5\x19\xad\xb1\x81\x27\x0c\x0d\x07\x89\x84\x4d\x04\xc5\x5e\x63\x7f\x64\xc5\x07\x95\x96\x16\x49\x40\xee\xa9\xd4\x7f\xa0\x96\xdf\x1e\xba\x43\x25\x1c\xa1\x07\x86\x45\x56\x51\x96\x78\xd1\x0d\xc6\x3a\x12\x85\xfe\x25\xab\x17\x1f\xb2\xbc\xd9\xdf\x21\x9d\x20\xeb\x09\x95\x58\x04\x12\x32\xe3\x06\xb2\x84\xb5\x08\xc3\x51\x11\x59\x39\x0f\x78\xd7\x62\xcb\x80\x77\xd8\x22\xc0\x3b\xb2\x51\xc1\x73\x2c\x7d\x2f\x46\x97\xd8\x9b\x03\x98\x31\x93\xec\x04\xa0\xa1\x49\x36\x25\x5d\x68\xda\x45\x59\x6b\xe6\xad\x51\x75\x72\x24\x24\x6b\x88\x7e\x80\xe0\x5f\x63\x20\x28\x44\x4a\x52\x35\xda\x37\x99\x81\xea\x20\xd4\xcd\x90\xa1\x8a\x13\x95\x33\x71\x6b\xb8\xb9\x1e\xb2\x16\x81\x8e\x0c\x30\x47\xcd\xa6\x8b\x7a\xc9\x66\x24\x6f\xd5\x00\x13\xb9\xa8\x0b\x89\x6e\xb0\xf0\x2e\xc4\x87\x47\xd1\x01\x59\x61\xa3\x33\xc2\x88\x54\xbe\x60\x94\xe9\x92\x06\x8e\x4e\x3f\x98\x41\x76\x1e\x88\xab\x22\x3d\x03\xa0\x86\xbd\x3e\x3d\x3c\x40\xb1\x99\x17\x78\xa9\xf7\x4d\x51\x5a\x2d\xc7\x5f\x32\x23\xdb\xf7\xa4\xcf\x32\x8c\xad\x66\x90\xeb\x60\x59\x80\x44\x0b\x24\x06\x48\x29\x18\x3d\x32\xd7\xb2\xdf\xa6\xf2\xed\x06\xac\x3d\x24\x0a\xa6\x1e\xa5\x40\x02\x25\x73\xcf\x47\x5e\xd5\x47\xc1\xae\x5f\x68\xe8\x63\x5d\x4f\x33\x95\x42\xdf\x95\xca\xf4\x3a\x1f\xfd\x93\xcc\xa1\x3c\x61\xfc\x4d\x4e\x34\x04\x84\x9e\x54\x4c\xb7\x19\x8f\xbd\x83\x05\x11\x0a\xff\x06\x6a\x9c\x95\x95\xf0\x54\x17\x49\xcd\x49\x4d\x1c\x80\xe3\x97\x52\x56\x75\x35\x32\x4a\xf3\x02\xa4\x89\xb5\x3b\x91\x29\x4b\xf5\x89\xc4\x21\x69\x60\x57\x12\x15\x9e\xe6\x60\x27\x15\x8f\x50\xe7\xc0\x21\x7b\xea\x97\x09\xbf\xd2\x6e\xc8\x59\xee\x9c\xc5\x56\x8b\x84\xf8\xe0\x3b\xd2\xb2\x04\x0e\x55\xf4\xa3\x9e\x61\x8f\xe0\x54\xc0\x9f\x0d\xcf\x50\xf3\x0f\x90\xa7\x5f\x2c\x7a\x79\x2b\x49\x12\x1c\xe0\x2f\x70\x0f\xc4\xaa\x83\xe3\xb8\x2d\x9f\x6c\x54\x12\x0f\x9e\x47\x23\x13\xf8\x11\xee\x4f\x82\x29\x43\x26\xde\x11\x5f\xeb\x31\xb9\x31\x6b\x70\x77\x97\x7b\xce\x7d\x5a\xcb\x4e\xa2\xc7\x4d\xd2\x57\x14\x37\x9a\x79\x37\x34\x3d\x1d\xc1\xe5\xf8\xa8\xe4\x1d\x17\xe1\xc1\x60\x00\x86\x37\xf1\x35\x01\x6d\xa7\x11\xeb\xca\x54\x14\x3b\x55\x84\x46\x8d\x35\x64\xef\x69\x21\x51\x43\x23\x22\x1f\xc9\x2c\xf7\x1d\xda\x4e\x29\x09\x5d\xf3\x48\x5d\xa9\x0a\xb4\x64\xa0\x0f\x46\x62\xd1\xf3\x4b\x8d\xaf\xe0\x4c\x32\x94\xdc\x90\x08\xeb\xfb\x8c\x74\x92\x4a\x93\xed\x1f\x12\xb6\x44\x62\x30\x30\x2f\x39\xbd\x45\xa4\x57\x49\xb1\x8a\x54\x9c\x44\xcb\x8d\x54\xad\x41\x6a\x83\x1c\x78\x55\x79\x2b\x7a\xc4\xbb\x04\xaa\x2d\x54\x15\x41\x5d\xd2\xea\x22\x99\xd9\x4c\x80\xcf\xcf\x83\x74\x09\xab\xa1\xab\xc4\x98\x9b\x6d\x97\x55\xb6\xef\x8f\xfd\x03\x95\xa1\x04\x7b\xc1\x97\x75\xc3\x3a\x9b\x8f\x9b\x1d\xbb\x63\x02\x11\x68\xcc\x9b\x6e\x7d\x61\xb6\x01\x64\x70\xf6\xa2\xe0\xfb\xa6\x90\xa9\x03\x59\x3c\xd3\x24\x21\xe2\x14\x80\x95\x75\x23\x50\x1f\xea\x14\xaf\x83\x71\xa5\x20\x14\xcd\x4b\x9a\x01\x50\xaa\xdb\xea\x30\x66\x1e\xac\x8b\x70\xca\x22\x29\x22\xbf\xa9\x8c\x1a\x39\xc3\xd0\x2a\xf7\x33\x27\x75\x6c\xca\x2d\x76\x8a\xc3\xb1\x5e\x5d\xb4\x9c\x14\xa2\xe5\xa4\xc1\x9d\xfa\xba\xb1\x60\x6b\x47\xa6\x2c\xf1\x4a\x6f\x26\x91\xaf\xb8\x25\x06\x04\xbc\x0e\xa4\x6f\xda\x37\xe8\x2a\xa2\x88\xc3\xb7\x8b\x18\x9f\x8a\x89\xcb\xf8\xfb\xa9\x58\xb8\x18\xc3\xd7\xa3\x62\x35\xe4\xa7\x9b\xc2\xe6\xc6\xae\xce\xd7\x94\xf4\x45\x49\x7f\xab\x8c\x65\xd6\x28\x89\xd6\xc8\x0b\x18\x44\x59\x3e\xa6\xed\x32\x52\x43\x42\xfe\xc5\x58\xe6\xba\x7f\x39\xef\xe2\x48\x83\x27\xe7\xe0\xa6\xfb\x66\x7f\xd3\x05\x87\x62\x80\xee\x06\x07\x2d\x6e\x52\x26\x7e\x71\x7c\x78\xe8\x0c\x50\x7b\x9b\xd2\x9d\xca\xbc\x20\x5f\x12\xe8\xf1\x88\x2e\x80\xd7\x5e\xbc\xc2\xeb\xc3\x80\xcd\xc9\xd6\xa4\x48\x49\x20\x85\xfa\x9e\xab\x35\xf1\x58\x2f\xcf\x56\xc4\x5c\xe9\xa2\xbc\x35\xac\xb1\xd5\xd9\x1a\x10\xef\xda\x14\xb4\x95\xcc\x8f\x19\x27\x6b\x64\xc4\x66\xf8\x93\x88\x57\x52\x96\x58\xf0\xce\x68\x29\x35\x8b\xb4\xfc\x0b\x91\xbf\xc1\x93\xc9\xa2\xd9\x91\xb9\x59\x22\xd2\xb1\x60\x4e\x5c\xcb\x45\xbf\x81\xf5\xee\x20\xc1\xe1\xfa\xb0\xe0\x23\xf2\x96\x80\xc4\x9e\xef\xef\x2c\xfb\xe4\xeb\xd7\x7d\x14\xcf\x74\xc3\xc2\xc7\x17\xfe\x01\x4f\x58\x37\xe2\xc2\x1a\x35\x1e\xa0\x9b\x6a\x6f\x44\x14\xd6\xe9\xa9\xfb\xe2\x40\xd5\xb3\xa2\x6a\xd7\xcf\xb7\xce\xdd\x57\xaf\x7c\x5d\xa5\xe7\xb1\x22\x91\x28\x12\x49\xf7\x1e\x5f\xbd\x37\x65\x54\x93\x92\x02\x42\xe2\xcf\x3c\xa1\x76\xb0\x77\x7d\x4e\x26\x60\xb9\xfe\x1b\xd2\xa0\x58\x28\xf0\x4d\x32\x5f\x20\xa7\x2a\xbe\xf4\x70\x2b\x30\x7a\x6c\x3e\x72\x79\x95\x01\x5a\x6d\x22\x97\xb9\x25\x71\x08\x43\x83\x73\xb2\x3b\x4a\x74\xc3\xc8\x58\x32\x72\x1e\x47\xe4\xcd\xdc\x33\x67\x6c\x38\x0d\x8e\xc2\x65\xbc\x44\x42\x52\xde\x43\xcd\x29\x57\xa6\x25\x79\x9a\x5a\x6d\x89\xe6\x8c\x44\x3a\x32\x41\x1f\x66\x32\xb1\x4a\xa1\x22\xef\x7f\xae\xe4\x5e\x54\xb1\x65\xb5\x99\x37\x77\xb2\x00\x00\xe4\xf8\x88\xeb\x0b\xe8\x25\x7e\xb0\x8c\x32\x2f\x4d\xbd\x6a\xd8\x11\xc8\x72\xc3\xb9\xb0\xd8\xb3\x8c\xf8\x5f\x01\x84\xfc\x52\x19\x08\x2b\x29\x8c\x97\x66\x66\x16\x51\x5b\x99\x34\xec\x8c\xd1\x9e\x8f\x2e\x6a\x49\xb9\xfe\x0c\x7d\xfb\x3b\x3c\x26\x2f\xa7\x22\x50\xf3\x76\xb7\x1e\x17\x32\x73\xc3\x69\x46\x24\x82\xef\x2a\x00\xb9\x5b\x76\xeb\x2f\x16\xc1\xc1\x5e\xeb\x8e\x6c\x8a\x11\xcc\x85\x8b\xe4\x25\x9f\xab\x94\xdc\x1c\x74\x81\x36\xa4\xc0\x8b\x41\x97\x3d\xc2\x2a\x3b\xe3\xc8\x74\x39\x43\x69\x1c\x2a\x87\x4f\x36\x85\x73\x4c\xb5\xa6\xcd\x39\xd9\x36\xc2\x53\x5e\xea\x5e\x10\xb6\x68\x7c\x68\x14\xc5\x9b\xe2\xb1\x29\xd4\xce\xda\x46\xb7\xee\x98\xb9\xd3\x7a\xb4\x16\x44\xbd\xec\x3c\x6b\xac\x65\x75\x46\x7e\x83\x47\xf5\xa2\xaa\xed\x02\x81\xe5\x36\x79\x36\xf6\xdb\x59\xdd\xb1\x2d\xe9\xec\x25\xe0\x6e\x01\x59\x35\x32\xcc\xdc\xe4\x41\x61\xab\x8a\xea\x43\x4e\x38\xfb\xfa\x75\xd0\x69\x67\x05\x4b\xfc\x95\x8b\x80\x22\xd1\xab\x8d\xa3\xb2\x14\xdf\xdb\x3c\x2e\x0b\x49\xf6\xb3\xf0\x68\x6f\xd1\x38\x08\x07\xab\x40\xf2\xec\xb3\x17\x47\xb6\xeb\x0b\x5d\xa3\x9c\xb8\x4e\x52\x34\x59\x5f\x1d\x94\x86\xfa\x05\x3f\x4e\x6b\x49\x85\x23\xc7\x8d\xe3\x31\x65\x61\xa9\x93\xfa\x01\x23\x3f\x58\xba\x21\xb4\x4c\x44\x9e\x02\xd6\x5d\x50\xac\xbb\x79\x11\x03\x60\xcd\xd3\x31\x50\x9b\xed\x25\x71\x1d\x0b\x34\xae\x74\x81\xd1\xc0\xf6\x22\x64\x9d\xe6\x13\xbf\x01\xd3\x6f\x44\x2d\x7a\x9e\xe2\x86\xd9\x08\x2e\x66\x71\x66\x11\xf8\x72\x9e\x65\x89\x37\x33\x01\x64\x62\xce\x19\x19\x46\x1f\x1d\x39\xcf\xe1\xa1\x33\x25\xb6\xcb\x9d\xa0\x60\x07\xc3\x6a\x02\x8a\x83\x41\x75\xd8\x82\x4c\x3b\x23\xbc\x3d\x5a\xab\x8d\x18\x96\xd8\x1c\x57\x9e\x92\x68\xe9\xa3\xe8\xc3\x98\xaf\xf1\xa8\x5c\xee\x1e\x90\x5f\x4f\xe1\x11\xda\x7a\xea\x21\xf6\x3a\x95\x6e\x8f\xe9\x94\xba\x02\xd4\xff\xd4\x03\x64\x4f\x94\x9a\x8e\x2b\xd0\xe8\x42\x98\xb7\x6c\xed\xbc\x21\xa2\x07\xe7\x14\x5c\x3c\x74\x37\x4f\x3d\xfe\x9f\x3d\xcb\x09\x80\x32\x67\x7d\x90\x0e\x0c\x0b\xe6\xd1\xd3\x4d\xe6\x71\xf1\x38\x14\x22\x07\x16\x60\x26\x3c\x3d\x51\x3c\x88\x84\x2b\x3d\xd1\xfc\x86\xc1\x3e\x70\xc6\xef\xcb\xf8\xd2\xed\x88\xc4\x53\x78\x23\x87\xb1\x43\x7e\xc9\x80\x10\x2d\x8b\x25\x62\xde\x48\x0c\x4d\x3a\x43\x59\xce\xa1\x37\xb1\x29\xd5\xf9\xe3\xba\x81\xeb\x36\x67\x90\x01\x75\xb5\x62\xe0\xba\xc4\x6f\x60\x22\xbe\xae\xaa\xb8\xc1\xe7\x7a\x7d\x55\x59\x9a\x98\x45\xe9\x97\x5d\xfa\x48\x25\xb7\xbb\x2c\x80\x7f\x62\xa7\x1c\x6e\x53\xb2\xd1\xa4\xa5\x5c\xc5\x48\x8b\xd3\xfd\x06\xc7\x41\x58\xbd\xc4\x55\x87\x3b\x5c\xf5\x53\xf9\x85\x78\xc7\xdd\xe9\xe3\x8b\x43\xcc\x9b\xf7\xf0\x50\xe9\xcd\xc7\xb3\x1b\x05\xf1\xb8\xa7\x71\xf2\x25\xa7\x5b\x72\x6f\x7c\x2f\x62\xfa\xe8\x6b\xaf\x6c\x32\xb2\xb3\xf6\xa4\x30\x27\xe1\x51\x69\xed\x65\xca\xbb\x02\xa0\x2e\xc0\x17\x24\xbd\x87\xe9\x5a\x22\x93\xb0\x94\x62\xa5\xd6\x8a\x37\x97\xad\xcf\xec\xdf\x98\x1e\xa3\x72\x08\x3c\xcd\x51\xe6\x91\x5b\x7e\x40\xff\x01\xc7\xcd\x81\x82\x9f\x8f\xe8\x63\x79\xb6\xef\x9e\x2f\x5a\x77\x14\x67\x89\x62\xd3\xde\x9d\xad\xe9\x75\x2d\x5e\x49\x88\x74\x76\x23\x7e\xc9\x3a\x80\x5c\x8f\x60\xbd\x33\xee\x18\xc0\x5e\xc0\x3a\x6b\x42\x0d\xc0\x53\xb8\x78\x7b\x6e\x40\xf1\x86\x63\xac\x01\xb3\xb5\xbb\x8d\x99\xc9\x36\x90\x0e\x47\x89\x21\xeb\x78\x78\xe8\x98\x95\xdd\x80\xb3\x16\x4a\xce\xd0\x8f\x9f\xb0\x4e\x11\xf2\xab\x4d\xb1\x12\x93\x1d\xd9\x92\x66\x97\xcf\xef\x5f\x90\xe2\x36\x53\x72\x26\x1b\x59\x7b\xd4\xb1\xf3\xa6\x4a\x3a\x9c\xf2\x38\x97\x0e\xeb\xe2\xa6\x42\x82\x26\x1d\x13\x28\xe1\xd8\xc8\x39\x8b\x00\xab\x47\x66\x2c\xf0\xb2\xe1\x4f\xa2\x29\xcf\xf8\xfd\xa5\x8d\x4f\x4c\xcc\x80\x9d\x16\x8d\x1a\x18\x4b\x26\x9a\xea\x62\xd8\x4c\x99\xfa\x3f\x3c\xc0\x81\x22\x7b\xe9\x88\x9f\xcf\x40\x23\xac\xa4\x3a\xa4\x88\x98\x48\xc9\x3e\xd0\xe7\x66\xcb\xe1\x99\x59\xc8\x9b\x54\x8d\xa5\x38\x49\x9e\xae\xab\x9b\x0f\xc2\xcb\x45\xbd\xba\xd4\x2d\x6c\xf9\x63\x6f\x02\x7f\x9b\x18\x36\x09\x2d\x8a\x49\x5c\x28\xc9\xd5\xfb\xb7\x68\x4f\x20\x54\xd0\x85\xcf\x84\xd6\xe7\x46\x3a\x49\x0b\xd7\x1d\xad\xcf\x44\x00\x8e\x61\x96\x3e\x03\x20\x3f\xc3\x1c\x87\xad\x4b\x16\xa3\xa5\x38\x1c\xca\x50\xff\xe7\x26\x6a\xcf\xc3\x57\xbf\x10\x75\xef\x67\x36\x47\x79\xef\x5e\x70\xdc\x27\x64\x44\x24\x13\x1e\x1e\x28\xd6\x43\x31\xc2\x58\x2c\x8e\x4b\x32\x59\xfa\xdc\xc8\x73\xe2\x1a\x59\x35\x8a\x81\xae\x8a\x22\x99\xe4\x9c\xef\x45\x98\xa2\xdc\x65\x30\xd2\x50\x48\x3c\x21\xbb\x81\xc8\x7c\x17\x46\x12\xb9\x43\xd5\x09\xac\x80\x15\x6c\xbd\x08\xfe\x2e\xb9\xdb\x5a\x8d\x22\xfe\xda\xc7\x50\x6a\x19\xbf\xf6\xd1\xf5\x66\x04\xf3\x3a\x32\x5d\x7c\x73\xc9\x5f\x8b\x8f\xb7\x0c\x7e\x0b\x15\xbd\xd0\x95\xfd\xe7\xc6\xbc\x99\x01\x40\x02\x18\x78\x04\x03\xcf\x10\x4a\x31\x5d\x1f\xbf\xf0\x8d\x97\x50\x17\xa3\x48\x5d\x21\x6d\xd9\x06\x8f\x59\xd2\x40\x4a\x7c\xde\xa0\x46\x51\xe1\x13\xdb\x6e\x60\xe3\xf8\xc9\xc7\x3e\x1c\x1d\x3d\xa3\x76\xe8\x06\x21\xe5\x11\xb4\x07\x20\x98\x37\x13\x8a\xd7\xf2\x8c\xfa\x42\xf7\xd3\x18\xac\xca\xc5\x6f\x41\x73\x49\xc6\xfa\x6a\x03\x79\x05\x94\x7c\xb9\xeb\xea\xb4\x6b\x4b\x3b\x0e\xb7\xab\xb0\x55\x79\x0c\x87\x93\x99\xbf\x38\x9f\xc4\x33\x6c\x9c\x0b\x1f\xc9\x34\xd2\x65\x0a\x84\xd5\x7a\x81\xd9\xd1\x0d\xc4\x8e\xef\xdf\xc7\xdd\x52\xa7\xb9\xab\xe9\xa7\x9f\x0a\x81\xf2\xa6\x8d\x8e\x15\xc7\xbe\xd8\x4e\x50\x8d\xb4\x19\x24\xdf\xe6\xa8\xc1\x72\xf1\x5f\xd6\x48\xb5\xf8\xa2\x46\x97\x6a\x97\xc8\x3e\x2a\x21\x7b\x37\xc8\x92\x92\x3f\xa3\x03\xb4\x06\x3a\x30\xd9\xa5\x36\x5c\x32\x89\x46\xc5\x59\x3c\xbd\xdd\xbd\xdb\x1e\x7d\xab\xe3\xb5\x4f\x5a\xe8\x2b\xc0\x26\xf9\xe4\x8b\xa0\x11\x1b\xfe\x19\x9f\xd0\x8f\x01\xa4\x46\x63\x58\x51\x1e\x75\x13\xb0\x4c\x48\x34\x47\x54\x20\xf2\x84\xbf\xf1\x85\x2b\x9f\x0f\xf4\xbb\x44\x43\xb3\xa6\x10\x23\xc1\x99\x8f\xc4\xf2\x5d\xc3\x03\x8c\x9d\x68\x3c\x20\x75\x2e\x1b\x57\x21\xf1\xa6\x8b\x3a\x51\xb1\x5a\x57\xb0\x22\x49\xf3\xcf\x24\xff\x31\x5b\xbb\xb2\xc8\x12\x98\xaf\x05\xfc\xd5\x8a\x75\x9a\x58\x72\x0c\xcf\x6d\xf8\xb5\x3b\xa6\xac\xa0\xb8\xaa\xfa\xaa\xe5\xe9\xe1\xf2\x8c\xe5\xf2\xcc\xf8\xb3\xce\x7f\xbf\x38\x4b\x22\xd2\xaf\x20\x59\x72\x57\xef\x92\xb8\x15\xeb\x29\xfe\xfa\x55\x29\xaa\x7a\xa6\x57\x15\xeb\xcb\x31\xdd\xa3\x3d\x80\x6b\x3a\xb8\x1c\xf5\x10\xa1\xc4\x6b\x02\x53\xe4\xeb\x7a\xf2\x19\x6a\x37\xc7\xe4\xfa\x7e\x92\x4d\x25\x58\x51\x4e\x9f\x8e\x2d\x1b\x55\x49\x84\xf7\x21\x65\xc4\xfa\xf0\x60\x9d\xf1\x18\x3e\xc5\xfa\x81\xed\xa9\x1b\x2b\xaf\x74\x63\xe5\xa3\x3b\x7b\x75\x0a\xe9\x77\x51\x73\x74\x85\x95\x08\x3b\x4a\x3f\xf7\x97\xb3\xc6\xbb\x63\x20\x65\x6a\x94\x80\x16\x43\x8b\x71\x00\x5c\x9a\x5d\x9b\xe9\xef\x1b\x5b\x64\x68\x16\xa9\x9d\x23\x4f\x20\x38\xf1\x9d\x0a\xe5\x17\x17\xf8\xc6\x30\x5d\x68\xda\x85\x40\x4c\x61\x52\x1d\x93\xda\xf2\xda\x0e\xaf\x7e\x69\x9c\xd6\x08\xb0\xc1\x52\x75\xfa\xcc\x1a\x99\x52\x86\x14\xf1\xe5\xc4\x6d\x76\xa6\x2a\x27\x62\x73\xfc\x65\xb5\xe4\x53\xe6\xc4\xfe\x7c\x53\x7b\x06\x5d\x79\x78\x40\xb9\x0b\x6c\xaf\x1b\xd3\x7c\xce\xd7\x63\x63\x29\xe8\x12\x18\x9c\x03\x3b\x56\x94\x6d\xf2\x44\xa4\x8a\x1a\x32\xcc\x0e\xcc\x2c\x06\x04\xbb\xe1\x15\xfd\x66\x6a\x75\x70\xd5\x4b\x01\x2b\x73\xa4\x3e\xe0\x8d\x9b\xaa\xc5\xaa\xc8\x8f\x07\x98\xba\xe5\x48\x75\x47\xcd\x9e\xba\xfe\x8c\x77\x6e\x1b\xe1\x84\x8f\x4b\x73\x87\x52\xdb\x39\x45\xca\x81\x53\x5f\x4d\x59\x2e\xa1\x42\x71\x3b\x72\xd4\xf5\x08\xa1\xaa\xee\x40\x99\xab\xa0\xea\xa3\xe2\x22\x0e\x79\xa4\x9c\x90\xf9\xea\x2b\x1e\x81\x04\x07\xb1\xee\xfd\xd6\x67\x1a\x8d\x0b\x5d\xfe\x3c\xc6\x3a\x6d\xac\x93\x45\xec\x59\x2e\xc5\x67\xca\xe5\x03\x57\x0d\x00\x39\x95\x0f\xd0\xd3\x07\x18\xef\x6d\x02\x1e\x4a\xb0\x93\x64\x09\x97\x5c\x84\xbb\xc2\xd1\x77\x45\xf4\xdc\x19\x99\xb4\x27\x80\xe2\xc3\xdc\x74\x32\x93\x3b\x5d\x5f\x84\x2f\xcd\xc4\x25\x67\xc1\xcb\xc7\x75\xbc\x88\xad\xa3\xbe\xd2\x38\x67\xa2\xd2\x7a\x56\x5f\xb7\x81\xa9\x6f\xc3\xa3\x5f\x5f\x03\xd6\x86\x06\xf7\x08\x1a\xc5\xf9\x89\x1b\xd2\xb2\x73\x38\x0f\xe8\x6f\x54\x71\xd8\xe0\x3d\xc0\xd8\x35\x44\xef\xdb\x29\xa0\x7b\x22\xf3\xd0\x95\xcd\xec\x4e\x8c\xd0\x88\x1f\x1e\x92\x33\x0f\xd7\x0c\x05\xf7\xa4\x27\x12\x5e\x44\xe8\xcf\x00\x85\x0f\x40\xaf\x00\x6b\x0a\x7f\x37\x3c\x80\xbf\xb3\x0d\x4f\x98\x83\x34\xc9\xec\xae\x58\x7a\x1e\x1e\x0a\x90\xd2\x74\x58\x02\x4d\x66\xa2\xc9\x04\x9a\x34\x47\x40\xfb\x50\x9c\x3a\xf8\xdc\xe0\x5a\x46\x0f\xe5\x1c\x09\xc3\x26\x61\x7d\x13\x99\x58\xee\xd3\x5d\xde\xa7\xbb\x2f\xf4\xe9\x0e\xea\x21\x3a\x09\x7a\xa7\xf5\x69\xd3\xa0\xca\x83\x03\x7d\xea\xd0\x70\xb0\x4f\x79\x46\xec\x9e\xe8\xd3\x1d\xf6\x49\x27\x91\x14\xc4\x79\xf4\xf0\x80\xb1\x58\xf1\x62\x02\x65\x8a\x4a\xb7\x0d\x7a\x64\x91\x39\x2d\xfe\x9d\xdd\x09\x8d\x35\x1f\x7b\x14\x90\x97\xe5\xa3\x23\x47\x69\x24\xe0\x52\x0e\x0d\x1c\x07\xe6\xac\x63\xa6\xb6\xaf\x76\x80\x11\x01\xdf\x99\x9a\x98\x67\x49\x72\x22\x20\x31\xb3\xdc\x5c\xb8\xfa\x46\x5a\x7a\x86\x27\xdf\x1f\x9a\x06\x39\x51\x3c\x73\xfe\xde\x07\xac\x09\xa3\x5d\xf0\x02\xf5\x00\x3e\x40\xfb\xfa\x4e\xa3\xd0\x89\x1c\xc0\xd2\xfc\x3f\xf9\x68\xbe\x4e\xdb\xd6\x27\x6d\x5b\xbf\xd2\x2c\x43\x43\xfb\xa9\xa6\x03\x80\x94\x8e\xaf\xe9\x48\xe8\x17\xb7\x68\x5a\xfa\x1e\x69\x16\xfb\x15\xfc\xdd\xd7\xbd\xf3\xc6\x13\x8f\xd1\xff\xa7\xb6\x1e\xdc\xd6\xd3\x0e\x4a\x2a\x09\x64\xcd\x63\x51\xaf\x12\x22\x79\xe2\xc2\x44\x5b\x1e\xca\x09\xc6\x5f\x79\xef\x97\x84\x38\x78\xbc\x4a\x85\x58\x73\x9c\xda\x45\x9f\x38\xf2\x41\x18\xe3\x8e\xfe\x3f\xc5\xfb\x7d\x8f\xf9\x08\x0d\x9a\x8f\x27\x9b\x74\x8c\x8b\x39\xb4\xa5\x68\x0f\x0d\xae\x9f\x49\x39\x1f\x19\x3a\xa3\x0a\xe9\x13\xb5\x65\x97\xc4\xdd\x08\x1e\x92\xb4\x88\xa1\x3f\x48\xd6\x3c\x59\x63\x17\x8b\xad\xb1\xd8\x0a\xc8\x91\xa7\xea\x0f\x87\x8d\x5a\x0d\x0b\x2e\x88\xf8\xf0\x99\xf4\x16\x2c\x74\x3d\xf9\x7d\x48\x6e\x68\xab\x5c\x9b\xed\xd9\xbd\xab\x49\xe9\x4a\x9f\xe4\x70\xd6\x75\xe8\x31\xc4\xd3\x49\x23\x5f\x0a\xcf\x68\xb3\x08\xea\x91\xee\x4a\x95\x76\x29\x99\xf9\xed\xa7\x01\x26\x96\x11\x4f\xa5\x7f\xa3\xec\xe1\x21\x3b\x2b\xbc\xc8\x85\x8d\xb4\xee\xd5\x8b\xcd\xd1\x94\x55\x04\xd1\x02\x78\xbe\x76\x86\xc1\x53\xe0\xf9\xed\xce\x78\x94\xa7\xd3\x7c\xc8\x2d\x31\x62\xa5\xe5\xe0\x68\x3a\x0e\xa3\x5d\xfb\x99\xb2\xdf\x62\xf2\xb2\x6a\xa0\x59\x2e\xbb\x22\xdf\xda\xfb\xc4\x7f\xd1\x8a\x1f\xdf\xfa\xe1\x0f\x74\xe9\xfa\x48\xbd\xa9\x81\x06\x6c\x30\xa5\x2a\x77\xd5\xf5\x95\x4e\x18\xe6\x16\x93\x28\x6e\xb6\x46\xe1\x99\x37\xf2\x1a\x0d\x33\x6d\xf0\x12\x3c\x35\x2b\x49\x9a\x6d\x11\xf7\xee\x5e\x46\x7d\x0f\xf8\xfd\x3c\x88\xa2\xd8\xde\x30\x0c\x8e\x60\x6f\xe8\x3e\x9e\xf2\xb4\x84\x25\x76\x85\xe6\xe3\x8f\x3e\xfa\x58\xed\x60\x84\x5c\xfc\xbb\xca\x90\xd8\x11\x15\x6e\xa0\xc2\xc4\x06\x74\x06\xff\xd6\xf0\x2f\x26\xdb\xd1\x8e\x5e\x6b\x54\xa5\x4c\xf9\x93\x6f\xec\xb4\x0b\xf4\x14\xf4\xdf\x81\xb3\x82\x5a\x81\x05\x66\x01\x35\xc4\x10\x7d\xa2\xe0\x81\x5a\x3b\xa7\x0b\x3a\x72\x9f\x9c\x1a\xb5\x96\xe5\xd5\x4c\x76\x97\x0f\x69\x1f\x7e\xcd\x22\x0a\x44\x13\xad\x6e\x69\xc8\x87\xb2\x51\x25\x94\x4f\xeb\xfd\x3a\xba\xad\xe8\xfd\xf7\x15\xbd\x67\x1d\x01\x1e\xb3\x80\x3a\xad\xd6\x8a\xe2\x7a\xed\x30\x6c\x58\x5c\x51\x88\x3e\x75\x5a\x03\xbd\xb0\x70\xe4\x5e\x65\x40\xff\x0b\xcc\xc7\x94\xdd\x03\xde\xa3\x4b\x82\x1a\x73\xec\xc9\x64\x3a\xdd\xea\xa5\x5d\x58\xa6\x8b\x28\xde\x74\xac\xc7\x3a\x20\xdb\xc0\x18\xa3\x74\x4b\x7a\x15\x54\xd5\xd1\xfd\xaa\x3a\x2e\x0f\xd4\x71\xf5\x35\x95\xdc\x1e\xa8\xa4\xca\x8b\xf2\xc1\x4a\x2e\x02\xb9\x6e\xae\xe0\x18\xee\x5a\xc3\x6e\x77\x08\x33\x34\x3c\xee\xf7\xe1\x85\x75\x4f\xbb\xfd\xc1\xc9\x09\xeb\xf4\xad\x5e\xff\xb8\x7b\xc2\x4e\x8f\xbb\xf0\x3e\x60\xa7\x9d\xd3\xe3\x4e\x0f\xd6\x5d\xff\xd4\x3a\xee\xf5\x2c\x76\xd2\x1b\x0c\x8e\x3b\x90\xd0\xed\x0d\x4f\x3b\x27\x43\xd6\x19\x0c\x86\x9d\xe3\xc1\x94\xae\xbc\xce\x81\xaa\xbe\xd4\x1b\xe8\xf4\x07\xfd\x7e\x5f\x6b\x09\x1e\x06\xa7\xc3\xe3\x6e\xd1\xa4\x65\x41\x35\xa7\x5a\xdb\x98\xc5\x3a\xee\x77\xf3\x4e\x74\xba\xa7\x83\xc1\xc9\xb0\x53\xf4\xa6\x0b\xc9\x1d\xac\x56\x75\xab\x33\xec\xf6\xfa\x9d\xd3\x7e\xd1\xbf\x9e\x75\xda\x3d\xb1\x8e\xb5\x8e\x42\x3f\x4e\x06\x27\xa7\xaa\xc7\xd0\x72\xbf\x63\x41\x13\x45\xd7\x6f\xa1\xeb\x3d\x6c\xfc\xf8\x98\x0d\x7a\xa7\x90\xed\x94\x1d\x5b\x7d\xeb\x18\x7e\x3b\x56\x77\xd8\xef\x42\x3d\xc3\x41\xe7\xd4\x3a\x3d\x66\xa7\xdd\xce\x70\x00\x2d\x76\x3a\xa7\x9d\x41\xa7\x03\xf5\x41\xd3\xc3\x61\x6f\x08\x5f\xac\xee\xe9\x69\x0f\x9a\xee\x77\x87\x27\x16\xb6\x08\x1d\x80\x0e\xe3\x03\x94\xed\x75\xd9\xc9\x70\x38\xec\x0c\xe1\x0b\x14\x1a\xc2\x20\x70\xf4\xfd\xd3\x61\xbf\x87\x59\x8e\x8f\x7b\x00\x20\xe8\xfc\xf1\xf0\x04\x12\xac\x93\x5e\xbf\xd7\xed\x63\xfd\xdd\x93\x01\x56\x07\x80\x3b\x1d\x0e\xfa\x45\xc7\x2f\xb0\xe3\xdd\x7e\x1f\x60\x01\x1d\x46\x00\x58\x38\x3c\x6b\x38\xec\x62\xbf\x2c\xf8\x86\x60\x83\xc2\x03\x6b\x00\x55\x62\xe3\xc7\xc3\x3e\x3e\x74\x07\xdd\xc1\x29\x3e\xf4\xfa\x30\x11\xac\xd7\x1d\xf4\xac\xe3\x21\x3b\x1e\x0e\xba\xfd\x63\xac\x65\x68\x1d\x5b\x16\x94\xe9\x75\x2c\xa8\xa0\x0f\x5f\x4e\xa1\x1f\x88\x8a\x7a\xa7\x50\x6b\x57\x40\x18\x7b\xdc\xe9\xf7\x00\x42\xa7\x1d\x04\x51\x0f\xa0\xc8\x4e\x4f\x86\x27\xd0\x22\x02\xa2\xd7\x3f\x01\xa0\x76\xfa\xdd\xe3\x63\xeb\xa4\x93\xf7\xbc\xc0\x2e\x40\x00\x86\xa9\x5f\x69\x2c\x1f\x46\xb8\xc7\x27\x25\x74\x22\xb2\x7f\xae\x0c\xbe\x10\x19\x56\x15\x06\x4a\x97\xb1\x97\x2c\xa3\x60\x56\xa5\xd0\x0e\x4d\xb4\x06\xd3\xfd\x42\xfe\x0c\xb0\x51\xc9\x12\xa8\xd0\xd5\x8d\x0c\x3d\xfb\xcd\x42\xda\xfe\xc3\x13\x90\xf4\x87\x03\x56\x88\x93\x38\xe7\xac\x2c\xd6\xf0\x0e\x85\x62\x0c\x4a\xd9\x0e\xe8\x44\xa2\x00\x22\xaa\xfe\xd4\x7c\xef\x90\xb1\xe3\xc1\x8f\x52\x2d\x92\xb4\x21\x51\x46\xbb\xe0\xc9\xd9\x7c\x6c\xd9\x1d\x72\x27\x75\x16\xd0\x1d\x0b\x86\x81\x01\x0a\x92\xaf\x81\xf2\x3f\xe3\x1f\x1c\x33\x3f\xb6\x03\xb6\x30\x1b\x06\x79\xe7\x63\x9d\xe6\xc2\xb4\x6b\x35\xb3\x51\xfb\xab\x26\x54\xdc\x0a\x57\x55\x68\xa0\xc9\x2e\xd9\x2d\xbb\x60\xd7\xec\x35\x9c\xda\x2f\xe0\xdf\x5b\x64\xb9\xd1\xb6\x71\xc5\x8d\x86\x5b\xdd\x47\x54\x50\x6e\x77\x4d\x72\xf3\xe4\x03\x49\x7b\x1d\x14\x57\x99\x46\x58\x0f\x1b\x41\x3d\x30\xed\xc6\x01\x6d\x4d\x86\x52\x8c\x17\x75\xe0\x44\x01\x94\x28\xd6\xe6\x69\x6a\xcc\xda\x41\x3d\x0f\x6a\xb0\x42\x57\xa8\xa8\x56\xfd\x5a\x7c\x0a\xcb\x9f\xf0\xaa\xea\x1e\x18\xa5\x7a\x1e\xb6\x2a\x69\xbc\x30\xd9\x39\xd7\xaa\xa0\x94\x3b\x3d\xcf\xbc\x09\x29\x57\x7a\x1e\x4c\x21\x98\xbc\x2c\xc1\x1b\x88\xb7\x17\xe6\x73\xfe\xc9\x51\x10\x7f\x71\x74\x94\x44\x86\x04\x98\x89\x12\xa1\xff\xbc\x14\x0b\xe6\x33\x10\xff\x0d\x94\x74\x8e\x4a\xdd\xf9\xbc\xd3\x99\xcf\xd8\x95\x2b\xa2\xae\xa5\x73\x4f\x60\x3c\x85\x1a\x00\x1c\xf1\x97\x3c\xd4\x7b\xf9\x1a\x30\x1e\x0f\xf5\x5e\x42\xca\x85\x9e\x27\x69\x40\xca\xb5\x9e\x07\x53\x68\x24\x9f\x8a\x91\x24\xcd\x79\xa3\x5b\x7f\x5d\x1a\xc9\x6b\x1a\x89\x9c\x72\x1c\x09\x2c\x8f\xff\x7c\x12\x63\x79\x93\x8f\xa5\xd4\xa1\x37\x3b\xdd\x79\x83\x9d\xb9\xd6\xc7\x72\xc9\x6f\xc5\x58\x94\xf9\x6d\x49\x9d\x37\x00\x7a\xa5\xdd\x65\x8d\x43\xe1\x54\xcc\xb3\x16\x9c\x35\xd0\x05\x1e\x9c\x85\xff\x59\x50\x4f\xb1\x3b\x1f\x24\x77\x75\x31\x9e\x40\x7f\xa7\xd2\xb7\xd2\xdd\x78\x02\xf3\x30\xb5\xdf\xc4\x06\x3d\xb0\x09\x0c\x04\xfe\xc2\xc4\xc0\x5f\xcc\x68\xb2\xf7\x7c\xd3\xfc\x80\xec\xf4\x2b\x7e\x0e\x0f\x40\x0f\xbe\xe3\x77\x22\xe5\x57\x7e\x25\x52\xfe\xe6\x9d\x22\x86\x46\x11\x65\xc3\x78\x5f\x7f\xd7\x78\x55\xff\xd5\x6c\x6b\x41\xcf\xde\xd7\xdf\x43\xda\x2b\x53\xa3\xef\xdf\x41\xb6\x5f\x21\x1b\xde\x94\x9b\xec\x3b\xcd\xea\x18\x9b\xa9\xe3\x9f\x06\xb6\x53\xff\x40\x4a\x8b\xb9\x03\x97\x3b\x01\xea\x1f\x0a\x38\xad\x19\x40\xe8\x3b\x68\xef\xef\x46\x07\x16\xf6\xcf\x7c\x1e\x19\xe5\x81\xcb\x11\xd2\x68\x03\xf6\x03\x7a\x35\xfb\x11\x73\x69\x63\x96\xe9\xa3\x35\xcc\xe8\x0f\xe3\xb7\x42\x00\x56\x3b\xaf\xb1\x9f\x71\xd0\xb5\x17\x35\xf8\x5c\x63\xf4\xf7\x1b\xeb\x1b\x0b\x9e\x6e\xe0\x09\x3f\x77\xc4\xe7\x80\x3e\x07\xf4\xb9\x86\x38\xe3\x3f\xb0\x4c\x7e\x96\xce\xb5\x7e\x96\xe1\x9e\x7e\x94\xef\x3f\x2a\x4f\x5b\x58\x66\x41\x15\xfd\xa8\x2a\xaa\x6e\xe7\x47\xbc\x99\xb3\xbf\xd4\xaf\x4e\x39\xbf\x58\x5c\x5a\xa1\x0d\xe5\x3d\xd7\xc0\x79\x21\xc0\xf9\x67\x09\x9c\xa1\x00\x67\x13\xc1\xf9\x17\x01\x4a\x5b\x28\x21\x6b\xfe\x89\x10\xfc\x8d\x3e\x10\xec\xca\x0b\x4b\x40\x55\x66\x23\x80\xfe\x99\x03\xf4\x4d\x8d\xfd\xa6\x3a\xfe\x27\x75\xe6\xcf\x9d\x81\xfe\xa6\xe0\x10\xd2\xe7\x50\x02\x94\xc0\xf9\x9b\x04\xdf\x6f\x12\x9c\x7f\xc9\xf7\xbf\x74\x70\x02\xe8\xa9\xa2\xbf\x54\x45\xd5\xed\xfc\x55\x02\xe8\x97\xfb\xf5\xd7\x3e\x40\xa1\xd0\x25\xe5\xbd\x3d\x0c\x69\x29\x32\xbd\x3b\x3a\x52\x1f\xf7\xd6\xca\x4b\x6d\x15\xdc\xd1\xf3\x95\xc9\x2a\xda\x90\x55\x5d\x94\xaa\x2a\x43\xe9\x53\x09\x02\x17\xf4\x76\x9d\x73\x8b\xaa\xd8\x5f\x35\xac\xff\xef\x08\x26\x1b\x8e\xb5\xd2\xb5\x7e\xa1\xef\x59\x3b\x87\xb1\x37\xc2\x06\x34\x82\x7f\xc5\xb3\x58\x62\x8d\x14\x9f\xe0\xb7\xf9\xf8\x67\x19\x20\x99\xfb\x11\x5e\xcb\x46\xe8\xde\x38\x62\x3e\x1c\x75\xe8\x65\x18\x65\x6b\x6e\x84\x4e\xf6\xa2\xe2\x2a\xc8\x0f\x43\x2f\xfe\x9a\xf8\xb9\x5e\xa1\x15\xe5\x49\xad\xda\xaf\xab\x60\x57\xad\xca\x8d\xe2\xaf\xec\x42\xc6\xcb\xfa\x52\x6b\x67\xf6\x35\xc5\x7d\x9e\xd2\xe9\x7f\x1d\x14\x7a\x57\xfe\x7f\xa3\xfd\x1f\x15\xfd\x88\xbe\xde\x02\xc0\x29\x4a\x3b\x5f\x6f\x05\xe0\x16\xa5\x0f\x44\xb0\x56\xd4\xa1\x71\x88\x26\x6c\x7c\x73\x90\x0c\x44\xcd\x27\x28\x78\x80\x14\x84\x82\x87\x22\x7e\xb7\xbb\x40\x0a\xca\xd5\x35\xc9\x8f\xe3\xd4\xac\x87\x4c\x8b\xfe\x44\x91\x27\xa4\x6e\xf5\x75\xc0\x6b\x4e\x96\x46\xb5\x91\xa4\x77\xab\x43\x30\x7e\xb3\x04\x62\x46\xf2\x9d\xaf\xf7\xdc\xdc\x2d\x22\x56\x13\x8f\x4d\x37\x88\x12\x6f\x56\xb3\xd7\x11\xc3\x18\x7d\xf6\x0d\x7c\xc2\x87\xe6\x95\x37\x8f\x62\xaf\x66\xaf\x54\x82\x33\x87\x95\x5b\xb3\x37\x11\xbb\x72\x12\x3f\xb1\x2f\xe0\x03\x3d\x35\xa3\xb5\x17\xd6\xec\xeb\xfc\x5d\xd5\xf9\x1a\xb2\x92\x1b\x2e\xfb\x05\xec\x23\x47\xf0\xc5\xf6\x15\xe4\x53\x2f\xb2\xe8\xb9\x9e\xa4\x4a\xdf\x45\x6c\x15\x85\x51\x1a\x85\x9e\xfd\x21\xda\x9a\xa3\xd7\xc1\x01\x2f\x54\x69\xeb\xda\xdb\x50\xdc\x03\x51\x96\xb7\x65\x25\xff\x90\x0e\x07\xf3\xab\xec\x17\x01\x46\xa0\xed\xb6\x81\xa9\x82\x7f\x80\x4e\xdf\x52\x02\xbe\x74\x45\xc2\x4b\x99\x30\x94\xb9\x86\x53\x1d\xd0\xa4\x4b\x56\x96\x86\x88\x55\x03\xe0\x7e\x1f\x15\xa2\x42\xa5\x73\x86\xbe\x6d\xa4\xb5\x66\x48\xbe\x61\x44\xd0\x5a\xf4\x73\x93\x27\x6f\x50\x0b\x71\x15\x29\x8d\x70\x0e\x00\xde\x14\x6f\x00\xfe\x9c\xb1\xa9\x0c\x35\xf6\x8a\x26\x5a\xcf\x74\xb0\x93\xaf\x9e\xd8\x49\x1d\xc9\x41\x8a\xa5\x7d\xb5\x76\x50\x18\x24\x75\xb4\xcf\x9d\x83\x43\xd4\xb1\x05\x24\x68\x75\x6e\x2c\x1d\x17\xc0\xbb\x56\x21\x3c\x87\xf9\xd8\x1e\xf3\xb1\x16\x16\x2e\xde\x53\xb1\xcb\x7c\x16\x92\x97\x62\xf5\x1e\xd1\xfb\x48\x9d\x1d\x35\xe0\x7b\xd6\x56\x23\x36\xdc\x56\xcc\xe0\xb1\x83\x37\x89\x9d\x26\xfc\xb1\x80\xaf\xf2\x0c\x17\xf8\x8f\x71\xa6\x7f\xa5\x07\x0b\x70\x68\x91\x18\xc0\x43\x80\x89\x50\x8f\x7c\xc6\x44\xa8\x27\xa0\x7a\xb2\x22\x35\x2f\x4f\x5c\xda\xce\x91\xa6\xdd\xde\xf1\x92\xc9\x10\xfa\xbd\x57\xef\x19\xa3\x98\x4f\xae\xfe\x8e\x8c\x24\xda\x14\x95\x93\xe4\x20\xef\x63\xdb\x67\x8e\x65\xc3\x41\xd6\xb1\x13\xb6\xb6\xec\x89\x5f\xd0\xfc\x11\x54\x5e\x50\xfc\x91\x39\x65\xeb\x4e\x29\x43\x52\xca\x40\x21\x19\x75\xcd\x32\xcd\xf0\x02\xe6\xdc\xe2\xd0\x71\xc7\xa2\x28\x2c\x1d\x7a\xee\xec\xdc\x9f\x16\xf6\x4c\xbb\x27\x72\x0d\x10\xa4\xe1\x9d\x7d\x72\x00\x34\xac\x03\xaf\x69\xe5\xe5\xa6\x2c\xfc\x0b\x9c\xdc\x58\x46\xb8\x88\xf0\x31\x38\x64\xc4\x37\x31\x1c\xd6\xef\xf0\xb0\x86\x63\x3b\x80\x63\x7b\x6f\x91\xff\x57\x67\xcc\x6e\x08\xc8\xc7\x8f\xc9\xf2\xe9\xf8\x35\x81\x1e\x77\x4f\xc6\xaf\x3d\x59\x77\x4f\xb7\xaf\x3b\x59\x83\xa2\x74\xb0\xd5\xf6\x1b\x20\x91\x45\xb4\x23\xfb\xad\xd2\x4b\xf5\x77\xb4\x94\x50\x01\x6e\x47\x4d\x3a\xc3\x2b\x7f\xc3\x6f\x6d\xe0\x8c\xdc\xe0\x71\xe9\xf2\x89\xcf\xee\xef\x6c\x1f\x10\xce\x06\x81\x7d\x8f\x57\xf4\xf2\x39\xca\xaf\x50\x5d\x2e\xe2\x31\xc0\xca\xa7\x2d\x8b\x3c\x57\xed\xff\x4f\xdb\xd5\x38\xb5\xad\x2b\xfb\x7f\xa5\x78\x2e\x8c\xdd\x38\x21\x90\x53\x7a\x6f\xa8\xc9\xf4\xd0\x76\xe8\xb9\xd0\xf6\x95\x94\x7e\x30\x39\x8c\x49\x1c\xe2\xd6\xb1\x53\x7f\x00\x29\xe1\x7f\x7f\xfb\x5b\x49\xb6\xec\x38\x9c\xd0\x79\x6f\xce\x29\xb1\xbe\x77\xa5\xd5\x6a\x25\xad\x76\x0f\xf1\xb1\x43\x1f\x4f\xf0\xb1\xab\x3e\x3a\x03\xa9\xf6\x33\xc5\x03\xc9\x39\xb4\xe0\x3f\x45\xfa\x0b\xf5\xf5\xdd\x79\xa6\xd2\xd3\x9a\x52\xf4\x7d\xcc\x58\x56\x05\x3e\xcd\x91\xfe\x9a\xf2\x5e\xfe\x46\x72\x69\x24\x56\x72\xf6\x4a\x3e\x13\xae\x3e\x3e\x45\x42\xd5\x33\x6f\xbf\xe8\x8b\x3a\x98\x1e\xb8\xc4\xf3\xcc\xef\x11\x34\xa3\x2d\x4d\x67\x1e\xcd\x25\xf3\xe9\x65\xb4\x9a\x3c\xf2\x39\x6b\xfe\x92\xcf\xd8\x4a\x34\x11\x5b\xd6\x62\xf1\x3e\xb2\x4c\xaf\x1a\x2d\xc7\xf1\x08\x08\xbc\xd1\x86\x90\x7d\x21\xfd\xd6\x00\xae\xaf\x85\x55\x19\x3e\x21\x41\xfd\x2a\x24\x28\x69\xab\xf7\x3d\xf1\x9a\x38\x4a\xea\xae\xe0\xb4\x53\xb2\xed\x67\x85\x46\x1c\xe8\xb7\xd9\x79\x9a\x32\xe3\x6b\xd2\xcf\x91\xf8\x39\x53\xd1\x47\xbc\x2f\x39\xcb\x13\x39\xf2\x8c\x23\xf3\x24\x95\xb1\xa9\x27\x89\xe2\xb4\xa8\xd8\x34\xfe\x24\x32\xd5\x3c\x12\x2a\x01\x65\xee\x3e\x3d\x0e\xd8\x0f\x51\x4a\x1f\xfb\xfa\x6e\x0a\xf5\x1e\x1b\x0d\x8f\x80\xe4\xad\x25\xef\x94\x28\x9a\x23\xd0\x02\x6b\x0b\xd4\xbc\xeb\xd2\x1b\xa8\xe0\x5c\x60\x7c\xcc\xf5\xc9\xc0\x13\x15\x90\x4d\xe4\x01\x34\x63\x28\xe7\x0a\xcd\x51\x74\x13\xd6\xbc\x1c\x2c\x21\xf4\x33\x10\xc8\xfc\x0c\xb4\x96\x01\xbd\xa7\xb7\xe9\xe9\xed\x20\x54\x6e\x28\x9b\xfd\x76\x33\x4d\xbd\x9d\x52\x33\xa2\x15\xf1\xb2\xa9\x98\x31\x7d\xa2\xe3\xc4\xa1\x49\x41\x62\x6b\x62\xca\x43\xbd\x40\x6b\xab\x63\xd9\xc7\x32\x0c\x17\x9b\x9d\x36\x7c\xec\xee\x5f\x48\xdb\xc1\xfe\xd2\xc4\x2d\x79\xa0\x73\xfa\xc1\x62\xd1\x68\x7c\x0a\x68\x3b\xfb\x25\x82\x67\x1c\xb6\xb7\x13\x39\x1f\x29\xfe\x0e\x96\xa7\xba\xaf\xdc\xd4\x6b\x85\xb8\xf6\xb3\x61\xdb\xb9\x7b\x9a\x41\xe4\x72\xe7\x30\xbb\x9b\x09\x4d\xc7\xee\xee\xb3\xf6\xbd\xb0\xe8\x34\xd4\xdd\xd7\xb1\x51\xa7\xe1\xbe\x75\xe7\x4b\x03\xb3\x54\xb7\x50\x8a\x93\x26\x15\xe1\xa3\xce\x85\xaa\x09\x95\x1c\xe7\x4f\xaa\xa8\x58\xf2\x62\xcc\xfa\x50\xc1\x79\x32\xb0\xb6\xb6\xfe\x15\x99\x1e\xbb\x93\x60\x4b\x77\xa9\x7a\x65\xa9\x74\x91\xbf\x46\xec\xe8\x1a\xe6\x10\x2e\xa4\xf1\xdf\x38\x9b\xd5\x5a\x98\x17\x8e\xd3\xb0\x2d\x50\xb6\xdc\x5f\x05\xdd\xb7\x91\xc9\xc8\x5b\x72\x13\xd4\x0f\xec\x8f\x81\xfd\x2a\x70\x44\x02\x91\xff\x07\x7e\x1b\xfa\x09\x9a\xb4\x1f\x84\x04\xe5\x5c\x08\x61\x8b\x92\x5a\xde\x74\x96\xce\x11\xc1\x1f\x88\x81\x0a\x26\x22\xf0\x8b\x30\xf3\x94\x0b\x61\x84\x2e\x37\x13\x5d\x1d\x1b\x5d\x4a\x82\x70\x54\x64\xea\xf5\x83\x9e\x1e\x66\x07\xe7\x5d\xd0\x09\x09\xbf\x92\x9f\xea\xc9\xd2\xc9\x48\x11\xa3\xf9\x87\xfb\xc0\x20\x8b\x82\xce\xaa\x17\x82\xdc\x4d\xfe\x08\x2f\x1a\xf0\x15\xba\x53\x2f\x99\xb9\x43\x8f\xdf\x8a\xee\x87\xce\x3b\x28\x0a\xa8\x81\x7c\x60\xe0\xa3\xdf\x1b\xf8\x58\x0d\xbc\x99\xeb\xfa\xc4\xd0\xf8\xbf\x80\x7d\x84\x8b\x0b\x22\x05\xd7\xb2\x7a\xa6\xa1\x22\x0c\x5f\xd8\x64\xf1\xf2\x2c\x4e\x91\xdb\xb2\x25\xf9\x30\x8d\x9c\xfb\x03\xe8\x9d\x16\x44\x44\x5c\x5f\x3e\x95\x83\x6a\xaf\x46\x52\x70\xac\x93\xc1\xf0\xb5\xea\xad\x97\x15\x77\xac\x95\x47\xaa\x79\xa7\xb9\xd5\x4e\x1b\x8a\x4e\x3b\xd4\x3b\x0d\x06\x52\xa4\x57\xc7\x02\xfb\xe0\x45\x52\xbc\x27\x19\x4b\x97\x8f\x03\xb6\x7a\xac\xbd\x33\x64\xa3\xc1\x57\x6c\x96\x28\x76\xc6\xe7\x93\x01\x4d\x30\x27\x86\xb1\xb4\x68\x60\xd7\x77\xd8\x84\x76\x28\xf6\xb0\x6e\x30\x66\xa8\xfb\x3a\xb7\x9e\x82\x47\xfb\x2f\xae\x69\x08\x32\xc7\x3b\x9f\xc9\xb9\x97\xd9\x33\x1b\xfe\xe6\xfd\xbc\xdb\x32\xbd\xa3\x86\x48\x14\x1d\x25\xfc\x39\xad\x24\x2b\xea\x86\x42\x27\x6a\x23\x57\x88\x62\xad\x9c\xf7\x98\x80\x39\x58\xc2\xb5\xa7\xde\x3b\xd1\x81\xbf\xef\x37\x1a\xd6\x5d\x56\x87\x86\xf0\x49\xca\x8f\x25\xf9\x21\x73\x8e\x0f\xec\xdc\xb9\x54\x0c\x0e\xea\xa8\x8b\xd8\x51\xe5\x72\xff\xb8\x36\xde\x42\xa4\xf9\xe3\xe5\x02\xb9\xcc\xae\x0c\xa6\x1c\x65\x81\x6f\x7a\xe3\x79\xd5\x29\x5c\x80\x03\x62\x88\x2b\xc4\xb0\xbf\x42\x9a\x78\xb1\x2b\x1c\x3c\x82\x63\x98\x96\x78\x29\x2c\xaa\x67\x71\x88\x44\x8c\xaf\x52\xea\x91\x6f\x05\x75\x09\x25\x2d\xe5\x17\x0e\x02\xc1\x04\x8a\x45\x8a\xc4\xef\xac\x94\x29\xf1\xc4\x01\xe9\xbd\x40\xc4\x4d\xd3\xb8\x82\x87\xb6\x81\xa3\x16\xd8\x5e\x3b\x57\x5c\x18\x9b\x77\x4b\xaf\x6b\xea\x33\xbd\x3b\x85\x73\x60\xee\x39\xb7\x15\x44\xd4\xf5\x56\x69\xc7\x56\xb0\x3c\xc9\x8f\xbd\xae\x19\x36\x1c\xc3\xa8\xea\x68\xa5\xca\xef\xec\x95\x6e\xef\xde\x2d\xde\x35\xc1\x58\x30\xab\x7a\x61\xb6\x87\x56\xe9\xb5\x83\x30\x22\x5f\x2a\x68\xa7\xec\xb5\x00\xff\x95\x5f\xb2\x54\xe0\x89\x1f\x03\x4f\x0d\xb6\xbf\x07\xdf\x72\x45\x1a\xbc\x78\xf0\xb9\x44\x3e\xf2\x8d\xf6\x13\x62\x85\xa1\x25\xdc\xdc\x52\x65\x50\x62\x84\xdd\x99\x7d\x6d\xfd\x93\x0f\x72\x34\x57\x01\xc0\xf3\x28\xeb\x4e\x33\xa1\x22\x1a\x26\xb8\xb8\x0f\xfc\xf1\x5c\xd3\x07\xfb\x16\x09\xfa\x33\x50\x6d\x8b\xf6\xe3\xb4\xd7\x96\xa0\xf5\xfc\x6e\x56\x90\x51\xbf\x66\x4e\x94\x0e\x03\x3c\x4d\x03\x5c\x13\xe6\xe5\xd4\x2a\x0d\x6f\xa6\xe9\x3b\x6f\x6d\x3d\x3c\xa2\xc4\xdc\x85\x1f\x8a\xd2\x59\xc2\xfa\x8d\x51\x97\x67\xb2\xcb\x33\x39\x76\x6b\x37\xbe\x5c\x56\x01\x23\x0f\x6a\x56\x74\xaa\x70\x90\x80\x0e\x33\x8b\x7e\x95\x35\x10\xe5\x79\x72\xf9\x49\xe7\x41\xc9\x49\x98\x70\x47\x57\xcc\x22\x05\x11\xf2\xc9\x09\xf8\x21\x8e\x66\x5e\x9c\xa2\x31\x9d\xbe\xbd\x0a\x7d\x7b\xbd\xac\x6b\x7a\x75\xf4\xcd\xcf\x19\x85\xf7\x61\x74\xd3\x61\x34\x9d\x11\xa2\xa3\x53\xb4\x51\x70\x22\x4e\x53\x6d\x9d\x89\x27\x32\x39\x76\xfe\x06\x3b\x61\xa1\xb5\x64\x0a\x65\x4e\xcf\x2a\x19\x41\xd3\x40\x4e\x8a\x3a\x70\x54\xc0\x86\xe6\x04\xa9\x0b\x52\x5d\x52\xee\xa4\x19\xd0\x39\x88\xf8\x5d\x9e\x72\x28\x53\x2c\x27\xd6\xdd\xee\x41\xc4\xb2\x83\x61\x88\x15\x22\xd6\x66\x05\xb7\x48\xdc\x9f\xbd\xe4\x79\xe5\x89\x11\x53\x89\xfb\x2a\xbd\x0b\x10\x31\x30\x1e\x3b\xee\x51\x03\xb2\x44\xe7\xd5\x51\xc9\xea\x1f\x82\x43\x58\xf8\xcd\x8e\xcd\xa1\x8d\x34\x7a\x7c\xa8\x2b\x23\xd9\x95\xf7\xab\x56\x9d\x0e\x4c\x7a\xa2\x9f\x6c\x9d\x14\x0b\x94\xe5\xbc\x4e\xbd\xdb\x5a\x71\x3a\xef\x24\x64\xc0\xcd\xdd\x99\x14\x04\x04\x11\xd6\x1c\x3e\xd4\x2e\x86\x85\x54\x0e\x5b\xe2\x9a\xdc\xba\xcc\x75\xd9\x17\xee\x79\x38\x68\x0d\xa3\x2c\x4c\x5f\xec\x32\x47\xe5\xf2\xe2\x0d\xe6\x3b\x5a\x3f\x79\x29\x17\x10\x1c\xe2\x89\x89\xe8\x6c\xb9\xd2\xad\x70\x50\xa3\xd6\x6b\x6f\xdd\xf5\x7a\xa7\xb4\x5e\x7b\x03\xe2\xb2\x5c\x77\xd7\x5c\x29\xe2\x48\xf7\x38\x75\xda\xbc\x96\x2d\x97\xf7\x1c\x32\x9c\x88\x68\xd5\xc2\x1a\xb0\x40\x80\x77\x5f\xff\x5f\x18\x88\xad\x9d\x84\xa5\xd6\x9a\x73\x01\xa0\xcd\x04\x1e\xeb\x25\x9d\x46\x9d\x74\x85\x7c\xf7\x5d\x61\x04\xb9\x0e\x3f\x51\xb4\x40\x30\xab\x3e\xa0\xfb\x3f\xc6\x51\x6d\x5b\x7f\x0b\x4d\x05\x5c\xae\xf2\x85\x7b\x8c\x7a\x9c\x05\xd2\x7a\x46\xab\x1e\x7f\x55\x67\xde\x05\x98\x0b\x8f\x13\x2b\x57\xc8\x04\x62\xf9\xa1\xdd\xac\x4f\x5b\xfd\xfd\x34\x9e\xdf\xf5\x03\xc7\x5b\x22\xb6\x54\x20\xf9\x91\xb6\x66\x42\x4a\x54\x38\xe1\x81\x45\x79\x1c\x69\x39\xc1\xd5\x5b\x30\x47\xee\xcc\xa6\xea\x7c\xa9\xf7\x53\xad\x34\x3f\xf2\x95\x92\xe7\xbe\xe9\x0b\x4f\x07\x8b\x85\xfa\xaa\xf7\x68\xc0\xfe\x04\x8c\x7c\x1f\x6f\xd0\xc6\xbc\x25\xbb\xe1\xbe\xcc\xb0\x99\x37\xd5\xec\xa5\x4b\x9e\xe1\x97\xf6\xb4\x7c\xe0\x11\x55\x77\x69\x30\x7c\x23\xed\x40\xe9\xfb\x8e\xe0\x60\xb8\x3f\xc4\xbe\x43\x9a\x80\x0d\x4b\xfb\x8e\x34\x77\xb4\x9f\x50\xc9\x71\xe1\x77\x7e\x7c\x90\xec\x27\xd8\x77\xd0\x98\xc9\xbd\x2c\x76\x20\x11\x76\x9f\x6a\x43\x8a\x1d\xa6\x38\x64\x89\xd9\xca\xb7\x38\x60\x89\x79\xbe\xcb\x43\x96\x58\x4c\x8e\x46\x9c\x13\x49\x71\xea\x52\xc4\xdd\x17\x5e\xf9\x4b\xa7\x22\x62\xd3\x56\x5c\xf8\xdd\xfa\xc9\xaa\x13\x58\xbc\x9f\xf5\x4a\xd7\xa5\xb9\x2b\x22\x27\x3f\x68\x30\x95\xa9\x1c\xe1\xf3\xf9\x02\xc6\xdc\xd3\x8b\x8b\xc5\x02\x9e\x6a\xcb\x71\x58\xf2\xa2\x19\x5e\x17\x4d\xa4\xe2\xd6\xb0\x37\x66\x1b\xe6\x89\xfa\x95\x7c\x70\xcc\x66\xf1\x95\x2a\xbd\xd5\x1d\xd2\x56\x37\xdf\xe4\x70\xce\x37\xac\x3e\x5f\x0a\xe8\x65\xe7\xdd\x14\x26\xbe\x8b\x5d\xba\x69\x70\x4e\xc3\x6a\x81\x70\xcd\x09\x8c\xda\x5d\x3b\xb3\x96\x07\x8a\x32\x61\xe8\x1b\x1e\xf2\x4d\xe3\x8a\xa8\x4c\xb6\x4b\x79\x59\x5c\x36\x86\x81\x9b\x24\xca\xab\x86\x25\xa5\x05\x23\x22\x0a\xf1\xd3\xb9\x61\x1f\xba\x96\xf0\xc4\xa4\x9d\xb6\x50\xc5\xb7\x7e\x6a\x5a\xb5\xb9\xd5\x6e\x0c\x86\xf2\xaa\xc5\xd8\xa0\x5c\x5d\xb9\x1d\xe8\x0b\xe6\x7c\x23\xb3\xdb\x56\x23\xb2\x6f\x9d\x4f\xbe\x39\x66\x95\xc5\x12\xaa\x39\x02\x8c\x2c\x14\x7b\xec\x0b\xc7\xbc\xcc\xb1\xa5\x9e\x82\xaf\x0e\x83\x26\xd9\x64\x09\x4d\x55\xb8\x7c\x5c\x64\x5e\x92\xa8\x71\x9d\x97\xc4\x6d\xb6\x01\xc3\x95\x2a\x82\x57\x7b\x71\x16\x29\x95\x45\xed\x97\xce\xb5\x22\x12\x95\xff\x9d\x33\xad\x46\x1d\xd2\x28\xa8\x28\x51\x09\x8b\x16\xe6\x95\x65\xff\xd2\x2a\x10\x49\xf6\x4f\xad\x02\x19\x75\x4c\xdb\x96\x68\xc6\xcf\xa6\x16\x0b\x23\xf0\xc6\xa9\x78\x42\x05\x1b\x9f\xe0\x81\xc6\x65\x94\xa6\xd1\x54\x65\x50\x79\xf1\xc4\xea\xcf\xc8\xbe\x71\x60\x07\xfd\x87\x03\x93\xe7\xa7\xf4\xbd\x6b\xd8\xaf\x29\x40\x3f\x87\xb2\x5f\x46\x94\xd2\x3e\x38\xee\x19\x6d\x6f\x6a\x74\x8d\xd6\xf3\x1d\xfa\xcd\x07\x08\x40\x34\xdd\x10\x97\xcb\xd4\x77\x53\x7f\x34\x0a\x80\xd5\x85\x2a\x6c\xf0\xcd\xd3\x2d\xdf\x3c\xd9\x46\xe3\xf8\xa9\xdf\x30\xce\xda\x47\x88\xc2\x1d\xd4\x19\x47\xf1\x4b\x7a\xe7\x33\x43\x33\x67\x68\x6e\x19\x9a\xb9\x80\xe6\xb6\x02\x8d\xd1\xea\xec\xae\x84\x81\x41\x05\xbb\x54\xce\x03\x96\x80\x61\x18\x6c\x05\xd4\x51\xfb\x4c\x01\x73\x24\x81\xb1\x5f\x8a\x02\xaf\xed\xe3\xa7\x19\x0d\x83\x08\xfd\xa0\xd0\x09\x14\xab\x38\x74\x4a\x14\x58\xca\xf5\x53\x84\x6e\xf2\x78\x99\x7f\x2c\xde\x31\xfc\xe9\x86\x23\xc1\x3e\xfa\xce\xd8\xfe\xe8\xf4\x8b\x68\x13\x27\xfe\xc4\x85\xea\xa4\xc9\x3e\x7d\x37\x3e\xca\xd5\x24\x29\xca\xf4\x28\x7f\x77\xa4\x2e\xae\x61\x3b\x80\x88\x33\xb7\x41\x39\x86\x03\xb3\x3c\x6d\xac\x76\x0d\xd2\x6e\x50\xe5\xc9\x4b\xec\x7c\xc7\x59\xf7\x1e\xad\x02\x7b\xb4\x04\x74\xc0\xf5\x77\xd8\x22\x53\xc5\xc6\x04\xbf\x41\x5a\xf3\x16\xa8\x78\xc1\x1f\xc5\x7e\xc9\xb5\xe9\x3f\x5c\xde\x61\x5b\xf2\x26\xe8\xa5\x0d\xc3\xe8\x7e\x0f\x72\xb5\x2d\xe6\x8e\x35\xea\x1b\x75\x97\xd0\x85\x6b\x43\x75\x11\x8d\xd2\x67\x15\x13\x97\x0f\x5f\x08\xa7\xf9\x65\x70\xc1\x60\x1f\x6f\x1e\x13\x65\x97\xcc\x0e\x3c\xfc\x38\xcf\x83\xc2\x59\x23\xc5\x92\x9c\x67\x61\xb3\x78\xb9\xfe\x19\xab\x97\xf4\xeb\x6a\x7e\x40\x85\xad\x51\xd8\x73\x62\xfd\x93\xc7\x95\xf7\x65\x79\x5f\x21\xf5\xe1\x31\xa6\x9b\x22\x59\x3a\xca\xbb\x24\xbb\x1c\xf9\xd7\xfe\xa8\xd6\xd6\x7f\xa5\xf8\xd6\x56\x98\xdf\x23\x7e\x0f\x1c\xc5\xcc\xec\x37\x81\x73\x47\xac\x0c\xaf\xd5\xe0\xf7\x01\x9e\x0f\x39\x85\x3e\xc0\x02\xd5\xeb\x35\x5a\xe2\x2f\x63\x12\x02\x56\xac\xf1\xac\xfd\x54\xb7\xc6\xa7\xd5\x15\x5e\xf1\x1a\xf6\x78\xe5\xc5\x4d\x96\xd5\xb0\x5c\xd0\x2c\x2b\x38\x51\xf3\xc6\xbb\xfc\xe1\xa7\xcd\xd4\x9d\x35\x27\x04\x57\x00\xd8\x9a\xc3\x28\x60\xee\x18\x5f\x5d\xba\x66\xdb\xe6\xff\x2c\x43\xb3\xf8\x8f\x5b\x3a\x01\x27\x9e\x7a\x72\x7c\x1a\x65\xc3\x89\x70\x41\x90\x27\xb0\x9f\x2f\x7d\x9d\x83\x47\xd3\x2b\x7e\xdf\xaa\xaf\x75\xfb\xd1\xd2\x42\x17\xc3\xff\x6b\x75\xa1\x2b\x95\x96\x08\xc0\x29\xd2\xa5\x1f\xf0\x92\x6b\x4c\x88\x9b\x7b\x61\x91\x38\xcc\xe2\x84\x11\xe1\xbb\xdb\x89\xeb\xc7\x58\x25\x4b\x10\x09\x47\xc6\x3a\x34\xeb\xc1\x92\x97\xab\x36\x05\x49\x41\xae\xab\x6e\x05\xfb\xd8\xc3\xdd\x91\x6a\xeb\x1a\x3e\xa3\x5d\x29\x77\x14\x22\x86\xbb\xd4\xfe\x55\xb5\xf1\x65\xb6\x6b\x88\xaa\x9f\x40\xc5\x75\x09\xa4\x1a\x2e\x7d\xc4\xa6\xae\x57\xa0\x78\x5b\x57\x64\xfb\xdc\xbb\x19\x14\xfa\x75\xbd\x66\x47\x18\x18\x51\x85\xe6\xb5\x85\xfe\x3e\x0f\x93\xc1\xea\x42\x37\xfe\x88\xe4\x19\x7b\x4f\x85\x27\xec\x12\x85\x23\x1e\x1a\x5e\x76\xa9\xc1\xc9\xd8\x77\x90\x68\x6d\x40\x07\x06\xf7\x76\xa6\xd5\x33\xc2\x88\xc4\x14\x6e\x47\x8c\xc2\x10\x72\xad\x5b\xbe\x79\x83\x05\xb5\x52\x54\x64\xed\x07\xec\xfe\x81\xe4\xb3\x00\xe6\xd4\xf2\xae\x18\x32\x4d\x94\xe0\x85\x36\x4a\x93\xe3\xed\x98\xa4\x39\x12\xa6\x55\xd1\xa4\x28\x3a\x2f\x17\x55\xa8\x69\x65\x33\x2e\xeb\x99\xe3\xd2\xf9\xb5\x27\xe4\xf8\x5a\xba\x11\x55\x69\xee\x61\x6b\x28\x41\xf7\xdd\x3a\x3e\x6f\x6c\x7b\xc5\xa0\x09\x89\x66\x42\x91\x7f\x27\x7a\xa4\x65\xdc\x2f\xdb\xd8\x52\x42\x5b\x31\x43\x0a\xea\x60\xf0\xc3\x9a\x79\x64\xb7\xc2\x03\xd0\x92\xdd\x4a\x0e\x4a\x34\x25\x7b\x6e\x0c\xec\xc7\x65\x9b\x5e\xd9\xc3\xed\x51\x3f\x4e\x1e\x68\xcf\x93\xed\xdd\x94\xdb\x53\xdd\x3d\x41\x83\x93\x72\x83\xbe\xce\x52\x11\xe8\xec\x3a\x85\x07\xbf\x1f\xde\xfc\x30\x1a\xe1\xc8\xf3\x90\xf6\xb8\x27\xe2\xf9\xfc\x4f\x18\x91\x75\x00\x3d\x7d\x52\x8d\x0e\xea\x25\x49\x78\xd7\xb2\x4f\xf1\x40\x3b\xaf\xee\x7a\x65\x75\x14\x79\x48\x95\xa2\xa6\x46\x51\x53\x43\xd5\xd4\xae\x54\x34\xd2\x75\x7d\x98\xe7\xc2\xb9\x7e\x0a\x3b\x45\x30\xc7\x17\x72\x35\xb7\xca\x77\x3d\x3e\xf1\xdc\x00\x20\xe7\x4d\xbb\x41\xfa\x5f\x6f\xde\x33\x4f\x18\x8f\x73\x13\xfd\xde\x18\xb3\xb5\xda\x5d\xdb\x44\xa7\x34\x26\x22\x44\x25\x01\x17\x81\xd5\xe0\x9a\x5f\x9c\xa0\xc7\x04\x84\x04\x20\x22\x77\x10\x49\x99\x07\x56\x57\xf4\x09\x09\x9d\x5b\x5b\x53\x58\xf8\xa6\xb5\x01\x3b\x63\xf3\x07\xc3\xd7\x26\x89\x53\x24\xc0\x53\x33\x9b\x65\xc9\x13\xd8\x2d\x09\x82\x37\xca\x5d\x96\x5c\x2a\x60\x5f\xa0\x7b\xd8\x13\xcc\xb3\x2b\xb9\x99\x71\xaf\x77\xc8\x54\x29\x15\x4a\xeb\x6d\x24\x70\x7c\x62\xeb\x56\x43\xc7\x17\x16\xb2\x7c\x61\x88\xf3\x27\x8e\x3e\xae\x1d\xaf\x37\xe9\x8e\x69\x9f\x77\x8d\xf1\xba\xd6\xcc\x74\x60\x14\x86\x4d\x98\x0b\x69\x3a\xa3\x46\x02\x79\xd2\xf4\x7a\xb3\xee\x95\x55\xd8\x60\x19\xda\x85\x49\x1d\x5b\xf8\x01\xee\xe2\xc7\x3e\xec\x65\x8e\x19\x37\x9c\xc4\x6a\x8c\xba\xe6\x09\x5b\x27\xa9\x2f\xb5\xfb\x14\x0e\x10\x9b\x31\x9e\xb6\xc5\x07\x09\x64\x1a\xa8\xa8\xc1\x4b\x02\xfd\xb1\x01\xd1\x06\xf6\x37\x80\x6f\xc3\xc9\x48\x06\xed\xb9\xc2\x19\xbd\x34\xd9\x80\x1c\x54\x04\xe9\x4e\x06\x13\x3d\x5d\xf6\xc9\xa3\x59\x82\x21\x76\x77\x47\x74\x62\xff\xf8\xa7\xb5\xbe\x8e\x97\xac\xc7\x41\xed\x42\xaa\x20\x49\x86\xf6\x32\x4b\xab\x8b\xc8\x76\x5c\xc8\x06\x18\x43\x25\x02\x88\x53\xf0\x3c\x29\x9b\x2d\x27\xb0\xdc\x50\x5f\x86\x93\x70\x98\xbc\x94\x42\xb3\x4a\x17\x41\x4a\x09\x95\x46\xec\x5f\x66\x95\xde\xb0\xd9\x92\x3b\x0c\x7e\xfe\xc7\xc7\x1e\xb4\xe1\xd6\x24\x28\x35\x87\x94\x77\xb4\x1b\x67\xd8\x8a\xc6\xe6\xa5\xfe\xe4\xf1\x87\x56\x80\xe6\xe6\x6b\xe7\x02\x0b\x7b\x36\xa5\xf6\x5e\x3a\x1b\xdb\x7f\x9b\xe1\x22\xb1\x14\xf7\x7d\x4d\x53\x21\xa0\xed\x34\xe2\xbd\xc5\x4d\x29\x3e\xa1\xf9\x7f\xd1\xe2\xc5\xdd\xa3\xc5\x58\x31\x40\xda\x4e\x7f\x46\xc5\x3f\x4b\x2c\xe0\x58\x07\x13\x9b\xfc\xba\x0e\xf1\x6b\x7a\xe3\x9a\x1f\x59\xe5\x98\x0d\x27\xd8\x9a\x8d\xfa\xdc\xc7\x49\xef\xb8\x7e\x30\x46\xf5\x23\x31\xb7\xba\x2b\x46\x7c\x54\x3b\xdc\x73\x10\x69\x7e\x18\x68\x96\x48\xf2\xa9\x61\xe9\x49\xf6\xa1\x25\x79\x11\xb1\x5c\x7c\x29\x2e\xc4\xc1\x9d\x81\xb0\x40\x8d\x77\x8f\x6a\x77\xda\xd8\xbe\x29\x7a\x93\x76\xaa\xb4\xbc\x85\x79\x78\xff\xd6\x39\x27\x9e\xd7\xec\xcb\xca\x88\xe3\x35\x3f\x8a\x9a\x06\x8a\xe9\xf5\xf3\x36\x3e\x0e\xc4\xc6\xb5\xc2\x43\x69\x9a\x9f\x38\x3f\x95\x05\x2b\x6b\x7f\xf5\x84\xe3\xa9\xb3\xee\x8c\x5b\x6f\x82\x5d\x54\x22\xac\x2a\x39\x8b\x53\x03\x58\x92\x97\x3e\x67\x85\x7d\xec\xd7\xc4\x30\xf5\x0c\xb6\x62\xb6\xc5\x24\xb0\xa4\x5d\xc6\xc2\x50\xd0\x79\xdb\x66\xfb\xb2\xe2\xf7\x0a\x56\x9b\x66\xf8\x73\xed\xbc\x0f\x34\x1e\x1a\xca\xa3\x5f\x5d\xfe\x58\x71\xf6\x28\x26\x4e\xf5\xb9\x70\xea\xdc\xdd\x12\x7b\x9e\x77\x27\x30\x6f\x6a\x7f\xc7\xb6\xd7\x5b\x3a\x92\x14\x37\x45\xda\x81\x64\x6a\xf7\x69\xab\x5d\xd9\xe8\x68\x62\x9c\x25\x6f\xa0\x4a\xfb\x10\x0d\x22\xdc\xe2\xf9\x6c\x20\xeb\x3b\x3b\xd1\xb8\x25\x54\x61\x26\x2b\xac\xed\x50\x92\x53\xe5\x65\x1a\x47\x77\x97\xeb\x13\x5b\xe3\x39\xcc\xd7\xa6\xf0\xb3\x17\xe3\x7b\x02\x87\x4b\xc5\x35\x9f\xe3\xca\xce\xd5\xce\xd4\x71\xc8\x7c\xeb\xe0\x6e\x1c\x92\x68\x6b\xee\xc4\xf8\x0c\xeb\x56\xc5\x62\x31\xbc\xbf\xb7\xb4\x0b\xb6\x3a\xe4\x52\x46\x2e\x25\xe4\xfe\xa1\xaa\x4a\xba\x64\x88\x38\xd4\xaa\xa7\xac\xdf\xa9\x8e\x2f\xeb\xd6\x76\x5e\x11\xd0\xd8\x32\x91\x6d\x04\x2f\x5e\xec\x2c\x36\x92\x81\xd2\x4f\x5f\xd7\x97\x45\x52\x5b\x43\xc2\xaf\xbf\x02\x77\x3a\x5b\x13\x0e\x62\xc7\xb0\x62\xb4\xb1\x01\xab\xb7\x20\x7e\xfa\x20\xb9\xa7\x1b\xf4\x38\xb2\x9b\xf0\x43\x7d\xfa\x12\x0a\xf4\xc8\x7e\x7e\x65\xcf\x06\xc8\xd0\x4d\x48\x8e\x10\x76\x17\x43\x29\xa1\x2e\x9f\xa4\x48\x5d\xb3\xe1\xaa\xfb\x2e\x86\x81\xaf\x1c\xa8\xfd\xd8\x49\x59\xaa\xe1\x18\x4f\xc4\xc4\x2c\x0e\x47\xce\x39\x55\x05\x1f\x16\x7e\x78\xed\xc5\xc2\xe3\x1b\xfc\xee\x51\x8e\xc0\x8c\xb1\xb3\x38\x88\x79\x5f\xe2\xc1\x69\x39\xdc\xa9\xc0\x01\xd9\x06\x33\xd6\xc5\x22\xde\x60\x21\x14\x02\xda\x58\xd4\x24\xf7\x31\x99\x68\xd8\x17\x0d\x07\x1c\xc3\x26\xce\x7d\x16\xb0\xa0\xd8\x7f\x4e\xf0\xc3\x51\x46\xde\x30\x49\x34\xa0\x5f\x9f\x7e\x70\x1a\x99\x1d\xf8\xdc\x70\x66\x67\x0e\xbc\xb7\xa0\xe1\x6c\x83\x59\xf8\x62\xe1\x6f\xb0\xc8\x8b\x86\x27\xa2\x26\x8b\x7b\x92\xb1\x8e\x70\x14\x17\x09\x34\x23\xee\x76\x0a\x8f\x45\x98\x65\xe6\x32\xb6\x32\x20\x91\x56\xa1\x7a\xdc\x25\x7a\x2e\x04\x31\x57\x60\xe8\x8a\x16\x32\x86\x8c\xc2\x2c\x8a\x97\xd1\x52\x75\x0a\xec\x54\xa8\x1e\x49\x8b\x4d\x1f\x10\x39\x50\x77\x66\x03\xfb\x3c\x26\xdc\x40\x16\xdc\xbb\xa0\x1b\x81\xad\x20\xc8\x7a\x9b\x47\xb9\x10\x46\x22\x7b\x95\x19\x2b\x46\x62\x41\x23\x5f\x66\x5c\xae\x62\x63\x83\x60\x40\x8f\x39\xdc\x61\x8b\xc5\xc6\x06\xb5\x3c\xe1\x08\xe0\xa7\xfb\x64\x0c\xcb\x3e\x19\x8f\x02\xe7\x2e\xec\x1a\x61\xd2\x94\x13\xdb\x86\x5f\xf0\x9b\x3c\x94\x94\xd2\x6e\x4a\x69\x21\x05\xc3\x9b\xc4\x2b\x22\xa8\x6c\xe8\x25\x5a\x69\xaf\x92\x23\xb9\x29\xe7\xb8\xb7\xdf\x07\xce\xf9\xb9\x11\xe2\x74\x85\xfe\x61\x39\xbd\xc1\x92\xca\x7f\x38\x86\xff\xdc\x18\xd4\xb7\x9c\x43\x7c\x85\x9c\x17\x56\x4b\x06\xf6\xdb\xc0\x71\x87\xd2\x54\x93\x73\x35\xe4\x1b\x39\x71\x16\x6a\x7f\x0d\x9c\xb7\x41\x2b\x4b\x87\xf6\xb7\xc0\xf9\x4a\x0b\xf3\xe6\xd7\xe6\xe6\xb4\xb9\x39\xea\x6f\x1e\x75\x37\x4f\xba\x9b\xa7\xad\xcd\xe3\x6f\x86\xb5\x4f\xb9\xfc\x24\x72\x58\x67\x3a\x57\xb9\x6d\xa5\xd1\xdb\xd3\xf7\xa7\xac\xa6\xb2\xb5\xd5\x80\x2b\xde\x57\xbc\xc7\xde\x6d\xb7\xdb\xcd\xf6\x0e\xfd\xdf\x6f\xb7\xbb\xfc\x7f\x8b\xa2\xa8\xa2\xde\x5f\x51\xf7\x5b\x60\xff\x15\x41\xab\xa1\x56\x5f\x21\xaf\x45\x53\xb7\x61\x9b\xa9\xca\xb4\x70\x7a\x8f\xe2\x69\x24\xda\x75\xbe\x05\xf9\xb7\x4d\x68\x26\xde\x30\x0a\x47\xce\x9b\xd4\xac\x39\xe1\x41\xdd\xc3\xa1\xb9\xe3\x75\x9e\x6a\x76\xa6\xc2\x6d\x8a\xc0\xfd\x74\xf9\x5e\x9a\x55\x09\xfb\xd4\x57\x26\x6b\x2a\xf2\x97\xd5\xa8\x94\x4d\xcb\xe5\x34\x9a\xa5\x22\xa7\x0c\x4b\x62\xb2\xe7\x48\x05\x5a\xe2\xe4\x9f\xe2\x22\x40\x4b\xc2\x48\x68\xc9\x14\x2a\xb2\xd0\x06\x2a\x4b\xbd\x87\x11\xdb\xf3\xfe\x28\x23\x46\x11\xeb\x22\x56\x29\xfb\x20\x62\x27\x0c\x4b\x8e\x98\x00\x8d\x11\x13\x9f\x55\xa8\x73\xc4\x64\x72\x09\xb1\x49\x94\xc5\x55\xb4\x94\x11\x67\x09\xde\x2f\x12\x20\xdf\xb3\x2b\x29\xd3\xda\xde\x2b\x1c\xbd\x09\xac\x3b\x7b\xde\xb3\xa7\x66\x09\x6f\x44\x35\x53\xab\x91\xae\x8b\x3d\xd7\xb1\x2e\xfa\x47\x04\x71\x8e\x3c\xc0\x67\xd4\xf1\x51\xc6\x2a\x47\x9b\x93\xca\xa3\x19\x85\xe9\x64\xd5\x60\xa2\xc8\xc8\x85\x86\x1b\x9f\xef\xa4\x3c\x1d\x76\x98\xc5\xd5\xe0\x72\x82\xaa\x04\x32\xe2\x13\x68\x3f\x30\x76\x22\x8f\x1c\x39\x04\xc4\xc0\xe1\xab\x02\x5f\x31\x6c\x9c\x98\x23\xc0\x8c\xf1\x0c\xf6\x34\xbd\x8e\xfd\xcc\x83\xd1\x28\xfa\xd3\xf1\xfe\xb0\x89\x88\xe8\xf7\x99\xfd\x1f\xfa\xb7\xf3\x6f\xfa\x83\x7e\x85\x09\x29\xfa\xbb\xbb\x83\xef\x3f\x3a\xbb\xf4\xf7\xdf\x7b\x7f\x20\xfe\xf9\x2e\x12\xf6\xda\x7f\x70\xfa\xb3\xff\xec\x7a\x7b\xf6\xf3\xe7\xcf\xf7\xe8\xa7\xb3\xf3\x8c\xca\xee\x0d\xec\x2f\xe0\x7f\xf9\x9c\x60\xd3\x77\x45\xe8\x59\x29\xb4\x53\x0e\x76\xda\x22\x28\x88\x4e\x95\x94\xa1\x67\xe5\xb4\x72\x50\x95\xc4\xb8\xa9\x72\xfc\xdd\xd1\xbe\xf7\xf4\x3c\xbb\x22\x40\xa3\xa6\xf2\xe3\x53\xc6\x92\xb8\xfc\x23\x6f\x1e\x5d\x59\x0e\xc8\x4a\xe7\xb4\xfa\xd9\xd8\x80\xfd\x8b\x99\xf2\x34\x0b\x52\xdf\x24\xd6\x4f\x1c\xb8\xf6\xb8\x5a\xce\xc4\x20\xf0\x93\x9c\xcf\x80\xf5\x13\xd3\x5e\x9d\xff\xb4\x94\x75\xf3\x2d\x31\xf9\x87\x2a\x57\xd3\x5c\x64\x7e\xb2\x39\x5b\x9d\x59\x4d\x0a\xce\xea\x3e\xd9\x1c\xad\xce\xfa\x8a\x68\x9b\x44\x9d\x9d\x0d\x47\x06\x53\x4f\x15\xbc\x5c\x55\xb0\x2e\xf3\x9f\x0f\x80\x2e\xa9\x9c\xf3\x7d\x35\xec\x77\xde\x80\xa4\xb4\x3f\x69\x31\x67\x0a\x2e\x59\xda\x2c\x1e\xe5\x16\x3e\xca\x0a\x6b\x85\xe1\xb6\x67\x3d\xf5\xec\x06\xb2\xf1\xeb\xb7\xff\x42\x13\xb0\x6a\xb9\xf1\x4b\xc0\xe3\xe7\xa8\x71\x04\x15\x96\x6f\x5a\x0b\x8b\x85\x51\x8d\xc5\xc2\x2f\x01\x0d\xbb\x14\x39\x3e\x07\xce\x97\x8a\x87\xc4\x1c\xbb\x73\xf6\x6b\x85\x05\x1b\xa7\x8f\xb0\xf3\xfe\x17\x16\xee\x35\xa9\xe5\x53\xff\xf0\xb1\x04\x43\x45\x1e\x45\x33\xdc\xc4\x23\xc8\x86\xf2\x3f\x82\x72\x28\x77\x85\x78\x38\xe6\x11\xf4\x53\xc9\xff\x00\x09\x01\x93\x3a\x2a\xda\xff\x5c\x1e\x6b\x1e\x0d\x35\xde\xcc\x31\xd7\x1c\xf3\xcf\x24\x07\x49\xdb\x8a\xac\x86\xfa\xb2\x7e\x35\xc0\x59\xc9\x2c\x0a\x13\xaf\x4f\x99\xee\xf9\x6c\xe4\x7b\xb2\xea\x7d\xd5\x3b\x3c\x7e\x30\xa0\x43\xe4\x0f\x59\x83\x6a\x1b\x79\x0d\xfb\x7f\x22\x65\xef\x7e\x92\x4e\x83\x87\xca\x02\x94\x6d\x64\x22\x71\xd5\x55\x85\x6e\xa9\xcc\x3f\x81\xf7\xe5\xe4\x98\xa0\xab\xd1\x39\x1c\x79\x63\x42\x79\x6b\x4b\xfc\xb6\xdc\xe9\xa8\x27\x3e\xa9\x4f\xac\xae\x11\x5d\xe2\x19\x6e\x91\x9d\xb6\xd1\x59\x40\xd9\xc5\x2f\x9b\xe4\x8c\x53\xec\x52\xca\x11\x0e\x15\x16\xba\xbd\xa3\x0e\x7d\xdf\x9b\xd6\xfe\xff\x06\x00\x00\xff\xff\x3b\xc1\xeb\x31\x55\x4e\x02\x00") + +func uiJsLibsD3335D3MinJsBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsD3335D3MinJs, + "ui/js/libs/d3/3.3.5/d3.min.js", + ) +} + +func uiJsLibsD3335D3MinJs() (*asset, error) { + bytes, err := uiJsLibsD3335D3MinJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/d3/3.3.5/d3.min.js", size: 151125, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsMithriljs020MithrilMinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x7c\x79\x77\xdb\xb6\xd2\xf7\xff\xf9\x14\x32\xeb\xe3\x97\xac\x60\x5a\x4e\x9e\xf7\x9e\xe7\x52\x41\x78\x9c\xc4\x59\xda\x38\x8b\xe3\xb4\x4d\x14\x35\xe5\x02\x89\x94\xb9\xa8\x22\xe5\x25\x26\xbf\xfb\x33\x33\x00\xb8\x48\x72\x7a\xef\xe9\xa9\x45\x62\x1d\x0c\x66\xf9\xcd\x00\xcc\xd1\xcf\x0f\xce\xe2\x32\x5a\xc5\xc9\xe0\x6a\x64\x3f\xb4\x47\x0f\xa2\xb2\x5c\x3a\x47\x47\x73\x28\x5d\xfb\x76\x90\xa7\x47\x49\x94\xaf\x62\x71\x94\xca\x76\xf6\xa2\x78\x60\x06\xd6\xe0\x8d\xc8\x07\xaf\xb0\xe2\xc1\x9b\x38\x10\x59\x21\x9c\xc1\xd9\xeb\x8b\x07\x3f\x1f\x3d\xb8\xf2\x56\x83\x94\xcf\xd6\x59\x50\xc6\x79\x36\xf0\x4c\x9f\x05\xd6\x5d\xf3\x1e\x9a\x9e\x75\xf7\x9c\x7b\x76\x98\x07\xeb\x54\x64\x25\x3b\x85\x97\x24\x0f\x3c\xac\x66\x2f\xe1\x25\xf0\xb2\x40\x24\x27\x59\x9c\x52\xd9\x8b\x95\x97\x8a\xaa\x82\xf2\x44\x78\xab\x8b\x38\x15\xf9\xba\x64\x2f\xa0\xe1\x4a\xfc\xbd\x16\x45\xb9\xdd\xb2\x10\xa5\x6a\x57\x37\x13\x0b\xd3\xba\x43\xda\x3c\xe6\xf3\xc9\xd4\x2e\x12\xa0\x1b\xa6\x4a\x12\xd3\x5b\xcd\x89\x92\xc2\x62\x01\xdf\x33\xb3\x75\x92\x70\xee\x4f\x8e\xa7\x55\xf5\x46\xb6\xc0\x17\x6b\x8f\xf3\x57\x55\x65\x94\xde\xdc\x88\xb3\x81\xac\x37\xae\x62\x71\xdd\x79\x2d\xd6\x7e\xb9\x12\x42\x97\x58\x2c\xe4\x81\x8b\x4f\xce\x5d\xcd\x04\x37\x82\xc4\x2b\x0a\xac\x0d\x5d\xf5\xec\xc8\xdf\xb7\x40\xb9\xc1\x66\xfc\x0e\x86\x77\x8c\x30\xbe\x32\x98\x57\x96\xab\x02\xfa\xd5\x6c\x0e\x04\x8f\xe3\x99\xd9\x50\x33\x42\x6a\x7e\xb1\x60\x47\xf2\xeb\x41\x26\xae\x07\xa7\xab\x55\xbe\x32\x8d\x42\x24\x22\x28\xf3\xd5\x00\x66\x48\x4d\xfd\xc6\x06\x34\x14\x1b\x04\x51\x9c\x84\x2b\x91\x59\x83\x22\xca\xd7\x49\x38\xf0\xc5\xc0\x1b\x14\xe5\x2a\xce\xe6\x86\x35\x9e\xc1\x10\x63\x8f\x9f\xd9\xe2\x46\x04\x72\x96\xb1\x05\xd3\x1a\x06\xe7\xdc\x83\x45\x1c\x1c\x78\x93\x87\x53\x6b\x66\x03\x91\x1c\x1f\xc7\x22\x29\xc4\x00\x9b\xfc\xa4\xdb\x40\x2d\xcd\x66\xc7\xe1\x46\x13\xbb\x69\x32\xb7\x97\xeb\x22\x32\x69\xb0\xb6\x7e\x22\xeb\x1f\x4d\x71\x62\xda\xaa\x88\xbf\x95\xb4\x60\x29\xd0\x27\x47\x9e\x44\x30\xc6\x94\x47\x50\x56\x55\x66\x04\x83\xb8\x86\xe1\xec\x8d\xac\x1a\xfb\xc4\xdc\x97\x7b\x6b\x06\xee\x43\xe7\x18\x7b\xe9\x65\xf3\x63\x98\x20\xb6\x13\x91\xcd\xcb\xe8\xe0\x40\x71\x33\xc6\xe9\xa0\xe2\xb5\x8b\x4f\x4e\x4c\x6c\xc0\x91\x16\xc8\xc5\xd0\x0a\xed\xc8\x2b\xde\x5d\x67\xef\x57\xf9\x52\xac\xca\x5b\x73\x61\x1d\x1c\x98\x0b\xe8\x21\x0e\x0e\x50\x56\xf6\x78\x38\x59\x00\x6f\x0c\x03\x24\x04\x1f\x5d\x53\x2d\x10\x5f\x2c\xa6\xc9\x5e\x4c\xb9\x61\x58\x4e\xe7\x95\xea\xc7\x2b\x51\xae\x57\xd9\x60\xae\x08\x7b\x32\x82\xe1\x75\x23\x31\xe5\x73\x7b\x91\xc7\x99\x69\x0c\x0c\x0b\xc6\x6a\xe5\x79\x66\x82\x24\xb3\x90\x2d\x58\xc2\x52\x96\xb1\x9c\x2d\xd9\xdf\x6c\x65\xdd\x95\xab\xdb\x3b\x25\xc4\x49\x55\xa9\x07\xbb\xcc\x3f\xd2\x3e\x9b\x16\x92\x9f\x20\x29\x35\xe8\x5c\x10\x99\x85\x75\x87\xaf\x35\xee\x01\xd0\xe2\xc5\x19\x6e\x44\x62\x2b\x59\xb6\x14\x7d\xe9\x18\x99\x52\x72\xc5\xb6\xd4\x62\x6b\xfd\x9c\x58\x28\x9d\x72\xa6\xb4\xaa\x4a\xe0\xc3\xda\xba\x53\x45\x7b\x3c\x45\x21\x0a\x0f\x0e\x42\x3b\xcb\x43\x51\xc8\xbd\xbd\xe2\xf9\xe1\x82\x5d\xf3\xab\xa1\xb9\x26\xee\x27\x4e\xaa\xea\x15\x23\xc6\xb1\xa9\x7a\xa8\x0d\xbd\x62\xd7\xa0\x50\x9d\x17\xab\x26\xe1\x51\xfd\x0e\x0e\x62\x53\x3d\xb2\xd4\x1a\xa7\x1c\x15\x23\x01\x1b\x96\x81\x84\xaf\x49\x11\x52\x94\x5c\x58\x7e\xca\xef\x6a\x8b\xa9\xc6\xa0\x5c\xb8\x76\xa2\x02\x0c\x95\xda\xfd\x1b\x3e\x62\xb7\xc0\x05\x45\xcb\xed\x93\x9b\xf1\xcd\x70\x68\xe9\x15\x4f\x6e\xa4\xd0\x10\x2f\x69\x12\x60\xa6\xed\x2d\x97\xc9\xad\x39\x99\xb2\xc4\x62\x37\x87\x87\x9d\x01\xac\x46\xac\xbe\xc3\x7c\xec\x84\xa7\xaa\x82\x58\x2d\x1f\xd9\x53\x98\xf3\x19\x3f\x06\x8b\xf8\x10\xec\xdb\x23\x30\x86\x60\x35\xce\xf8\xde\x31\x03\x6a\xc6\x37\x8f\x75\x1f\xa2\x24\x05\x12\x0e\x0e\xf0\xaf\x94\x15\x2d\x8c\x6d\x89\x7d\x29\x6e\x81\x3e\x18\x60\xc4\x5e\x4e\xfa\xe5\x53\x7e\xe7\x91\x1c\x39\xcf\x58\x9c\x85\xe2\xc6\xb9\xa9\x5b\x1a\xdf\x02\x21\xf7\x30\x00\x38\x95\xd0\xcc\xc9\xd6\xcc\x49\x6f\x86\x96\x95\x1f\x36\x47\xfa\x30\xfe\x00\x23\x25\x93\x0f\x34\xcc\x87\xde\x30\xc0\x8e\xa6\x44\x2d\xa0\x5f\xc0\x8d\x6f\xdf\x94\x33\xfa\xf6\xcd\x18\xbe\x85\x91\xc6\xfe\x4a\x78\x97\xb8\x89\x67\x52\xb8\xce\x81\x67\x28\x92\x7a\xce\xbd\x86\xdd\x16\x54\x8d\xa4\xcd\xd1\xe4\x7d\x64\x17\xc4\xdf\x8f\xc4\x3a\x76\x41\xeb\xd0\x6b\xfd\xa8\x69\xbb\xd0\x0f\x1f\x5b\x52\xf6\xf8\x45\x77\xbd\x34\x74\x43\xca\xf9\x3f\xca\xd2\x7f\xc1\x4a\x1c\xe5\xd3\x46\xe9\xf8\xe5\xe4\xd3\x94\xe3\x1f\x57\xef\xe5\x0b\xbd\x97\x6c\xb6\xca\x53\x07\xeb\x6c\x2a\x61\xe0\x0a\xd0\xc5\x69\x1d\x9b\xb4\x55\x60\x44\x9f\xdb\x01\x50\x5d\x8a\x53\xd9\xc8\x24\xff\x63\xd5\x8e\x1e\xf6\xb4\x11\x11\x32\xb1\xbf\xa1\x3b\xd2\x6b\xfb\x1d\xad\xe4\x4b\xeb\x37\x69\xf1\x5e\x4e\x7e\x07\x8b\x86\xe5\x7f\xf0\xdf\xec\x22\x5f\x95\xe6\xdc\x62\x9f\x49\x15\x4f\x56\x2b\xef\xd6\x6c\x36\x62\xfc\x59\xa9\x5f\xda\x53\xf2\x56\x08\xbf\xd0\xae\x7c\xe1\x7f\xe8\xed\x40\x8b\xf2\xc5\x96\x34\x81\xda\x3c\x03\xd1\x00\x8d\x9f\x7c\x51\xeb\xd0\xaa\xdf\x14\xc0\xc4\x76\xb1\xa4\x51\x55\x11\x3b\x06\x1b\xda\x19\xe2\x54\x72\x76\x9f\xef\xe6\xc0\x78\x9f\x04\x2e\x69\xa7\x68\x98\xcf\x3c\x28\x2a\xc0\x1f\x3c\x15\x40\xaf\x30\xf7\xa1\x80\xfc\xcc\x5b\x62\xef\x97\x86\xb7\xb8\x9f\x3b\x08\x19\xb1\x3b\xe5\xdf\x61\x30\x67\xd7\x0c\x35\xa3\xf5\x38\x93\xfd\x69\x8d\x03\x64\xbd\x81\xf9\x7e\xdd\x59\xc7\x0b\x60\xc5\xce\xf9\xc1\x12\x7f\xb1\xd5\xde\x6b\xd9\xea\x96\x6c\xac\xa2\xa9\xf9\x87\xd5\xb4\x64\x20\xb7\x51\xd6\xa6\xdb\x14\x36\x83\x59\x75\xca\x3f\xd7\x75\x57\x1b\xbe\xed\xd6\x08\xda\x0d\xdf\xe7\xd2\xb7\xa5\xe0\xd3\x50\xe4\x61\x4b\xbf\x4d\xd1\xc3\x0d\x9f\x56\xd5\x53\xe5\xe6\xc6\xbe\x0f\x4b\x09\x60\xe1\xbe\xaf\x04\x28\xce\x4a\xe0\x08\x60\x82\x13\x50\x7f\x8b\x3d\x1d\x72\xa8\xda\x07\xdb\x5f\x94\x22\x74\xb1\x5d\x4a\x0e\xef\xe8\xf1\xe4\xcf\xaf\x47\xd3\xea\xeb\x93\xaf\xc5\xcf\x93\x3f\x1f\x4f\x8f\xe6\x56\x55\x21\x0c\x50\xf4\x38\x1a\x68\xf9\x12\x18\x40\x4f\x55\x71\x8c\xb4\x0c\x87\x53\x18\xd9\x42\x25\xdf\x3b\xf9\x47\x2d\x6f\xad\xf2\xc1\xc1\x77\xd2\x12\xe5\x26\xbe\x33\x32\xc9\xd2\xe7\x35\x52\x1f\xf8\x24\xf6\x81\xaf\xf5\x42\x4b\xbf\x1c\x27\xf0\xed\xa5\x07\x58\xa6\xc4\x9d\xc1\x01\x89\xd9\xef\x66\x66\xe0\x5b\x8f\x47\xe8\x02\x27\x81\x3f\x65\x64\xed\x41\x13\x35\x35\x8d\xeb\x40\xe7\xa7\x3d\x4f\xe3\x9b\x1a\x4f\xf8\xbd\xae\x35\x1c\x53\x76\xe8\xe0\x00\xfd\xe2\xab\x76\x95\x02\xd1\x33\x9b\xe1\x5f\x18\x1d\xe1\xef\x58\x6e\xdb\xdc\xe7\xf2\xdd\xde\x87\xb8\x60\x1e\x67\x1e\xa0\x0f\x59\xc2\x22\x9f\x83\x46\xcd\x66\x00\x2c\x04\xa0\xf6\x70\xe5\x5d\xdb\xe0\x94\x41\xe1\xe6\xb7\x26\xe0\x91\x94\x9a\x15\xae\xfa\x6d\x16\x35\xf7\x2d\xe7\xf0\x98\xc5\x3e\x8f\xfc\x27\x87\xc7\x50\x0f\x8e\xb6\x5c\xe5\x49\x22\x10\x07\xfa\x53\x07\x0c\x8b\x99\x74\x4a\xab\xea\xbd\xc5\x3e\x21\xdd\x89\xb6\xa8\x49\xc7\x64\xa2\xc9\xe5\x23\x80\x69\x7e\x55\xa5\x38\x6f\x67\xbc\x8d\xd7\x86\x88\xd8\xb7\x70\x6e\xb9\x14\x7c\x73\x24\x48\x5f\x26\x5e\x20\xa2\x3c\x09\xc5\xca\xa8\xd9\x8f\xa1\xd3\x27\x74\x63\x92\x0e\x90\x4f\xf5\x44\x20\xa4\x43\x1d\xff\x64\xc1\x52\xed\x3c\x5b\x67\x49\xee\x01\x60\xf2\x7c\x69\x55\xef\x5a\xb2\x9c\xd8\x67\x91\x97\x85\xf2\xb1\x69\x0b\x03\x09\xd5\x18\x78\x06\xdb\x23\x9f\x63\x25\xa5\x89\xc4\x3d\x33\x2d\xc7\xdb\x91\xc3\xb3\x3c\x5d\xe6\x19\xc8\xd5\xa0\x14\x29\xac\xac\x04\x58\x05\x7a\x33\x50\x2b\xf0\x06\x57\xf1\xaa\x5c\x7b\xc9\x40\x1b\x88\x41\x96\x97\x03\x0f\x6a\xd0\xaa\x33\x15\x44\xb0\x81\x28\x03\xdb\x40\xb9\xdb\xb5\xd6\xb4\x29\x4d\xdb\x52\xf2\x16\x0b\x9f\xbf\xf3\x17\x10\xad\x20\x1f\x0a\xdd\xc9\x62\x97\x3e\x5f\x68\xa2\x9f\x98\x06\x54\x62\xf0\xa4\xaa\xdd\x63\x67\x44\xc8\xd3\xa4\xf5\xa1\x93\x87\x9f\xaa\x82\x1e\xe4\x79\x2c\x89\x9c\x21\x54\xea\x8e\xad\xa6\xb6\xfa\x6d\x50\x54\x75\xdc\x82\x03\xe9\xe7\xb6\x9c\xfc\x7d\xda\xbe\x40\xb4\x07\x36\xe2\x3e\x89\x36\xf7\x48\x98\x66\xf1\xfc\x19\xec\x9d\xb8\x01\xb3\xb4\x51\x60\x4b\x81\x01\x23\x06\xa1\x0b\x0c\xf6\x63\xfd\xe8\x75\xdd\x2a\x50\x63\x81\xec\x81\xe1\x23\x15\x97\x16\x51\xeb\x7c\x03\x8c\x71\x0f\x36\x86\x2a\x6f\x97\x22\x9f\x0d\x36\x47\xd4\x92\x05\x63\xfe\xba\x3d\x9f\xae\x35\xd5\x80\x5a\x69\x2c\x4b\xdb\x89\x58\xda\xb1\x18\xed\x58\x57\x69\x95\x35\x53\xb3\x76\x44\x58\x4e\xd4\x29\x30\xef\x96\x2b\x71\x05\xb2\xf6\x5c\xcc\xbc\x75\x52\x3a\xef\x6b\xab\x13\x05\xd3\x9e\x53\x18\x2c\x65\x74\xac\xac\x67\xe2\xa3\x82\xf3\x3e\x0b\x24\x18\x94\x7b\x77\x93\x26\x59\xe1\xfe\xcd\x7b\xef\x8e\x51\x5c\xcd\xa5\xf2\xc2\xb0\x50\x6b\xa8\x4c\xc8\xf5\xf5\xb5\x7d\xfd\xc8\xce\x57\xf3\xa3\x87\xa3\xd1\xe8\x08\x9b\x39\x06\x38\x92\xa8\x69\x0d\x0c\xdf\xd9\xfe\xf8\xdf\xff\xfe\xdf\xa3\x33\x68\x49\x7f\xce\xde\x18\xa0\xed\x3e\xa1\x98\xc0\x6f\x66\x8f\x91\x14\x70\x64\xee\x26\x04\xa1\xa1\x59\xdb\xcc\x72\x36\x5a\xbc\xfd\x68\xfe\xcd\xb6\x5b\xfd\x60\xb4\x1f\x0c\x01\xfb\x28\x73\x0f\x72\x40\x89\x4d\x2e\x7d\x37\x32\x91\xa5\xdd\x49\x18\xc4\x24\x7f\x5b\x8e\x7e\xd3\xc1\xb5\xa3\x1c\x46\x13\x6d\xa3\xe1\xd5\xcf\x4d\x68\xeb\xce\xda\xf1\x02\xf8\xaf\x6d\x82\x72\xa4\x1f\x21\x5e\x19\x35\x6b\x42\xe1\x01\x52\x45\x18\x97\x9e\x9f\x08\x37\xf0\x1d\x89\x00\x9c\x4e\x67\x05\x95\xc0\xf5\xd5\xac\xb5\x72\x77\xca\x9f\x70\xe1\xf7\xc5\x94\xcf\xfc\xf1\xb6\xa0\xce\xfc\x0e\xf0\xef\x19\xe2\xce\x0b\x78\xb7\x24\x44\xe4\xd9\x91\xdc\xcd\x6a\x88\x52\xfd\x5e\x27\xe9\x21\x53\xbf\xdb\x72\xdc\x1d\xe1\x3d\xdb\x1c\x83\xa7\x7e\x5d\xa7\x1d\x6e\xee\xb5\x2f\x3a\xde\x35\x37\x8b\xc0\x29\x5b\x4c\x65\x81\x3a\xe2\x69\x5c\x79\xc9\x5a\x74\x2c\xe7\xc1\x41\x67\x5f\xef\xa8\x56\x6f\xa8\x4d\x6f\xb5\xdc\xe5\x4d\x94\x0b\x7d\x7a\xc0\x30\xd7\x90\x50\xc2\x86\x0e\x68\x19\x4d\xc1\x76\xf7\xa6\xd1\x02\xa3\x4c\x28\x8e\xde\x92\xcf\xff\x33\xb9\x38\xfe\x4f\xe4\x42\xa3\x19\x85\x07\x31\xfa\x6d\x44\x82\x78\x76\xaf\x4c\x58\x8c\x4c\xe8\x48\x23\xe5\xc0\xdf\x42\xc8\xf7\x72\x00\x2d\x8c\x32\x6a\x1d\x0a\xc1\x64\xa2\x5d\x93\xfb\x9f\x29\x5b\xd8\xda\xd1\xcd\xf7\xaa\x02\xb6\xe7\x7e\x93\x3d\x45\x18\x6c\xdd\x29\x1f\xdc\x14\x36\x25\x5e\x6f\x22\x05\x2b\xb1\x4b\x5d\x8f\x57\x12\x01\xe4\xbe\x99\x30\xd0\x0b\xb6\x97\xf8\x2c\x83\x25\x4f\x2d\xab\x05\x79\x9a\xe0\x3d\x4d\xe2\xf7\xf1\xb6\xed\x74\xc1\x78\x34\x28\xfa\x3b\xbf\x84\x19\x00\x97\x5b\x8e\xf9\x9d\x4f\xb4\x3d\xb9\x00\xe2\x91\x21\x66\x62\x4d\x81\x41\xd8\x1d\x33\x9a\x0a\x70\xbf\xb3\x30\x29\xdb\xe3\xe3\x77\x94\x90\xdd\x9c\x44\x53\x64\x48\x3c\x31\xc8\xd6\xa9\x2f\x20\x24\xc8\xf3\x44\x78\x99\xd1\x60\x32\x4d\x38\x21\xb3\xad\x3c\x0f\x50\xe1\x24\x2d\xa8\xb5\x20\xea\x25\xa9\x86\x8e\x98\xc5\x4d\xda\x37\x98\x92\x76\xdc\x85\xc5\xe8\xdc\xd1\xf2\xe0\x60\x09\x85\xcf\x29\xbc\xba\xd2\xa6\x92\xa0\x4c\x1b\x4c\xc4\x08\xdf\x2d\xd6\xb2\xc3\x72\x0c\xdc\x41\xc0\xe6\x1e\x6a\x9e\xef\x7a\x72\x16\x9e\x38\x4b\x77\x09\x84\x67\x62\xf5\xea\xe2\xec\x0d\xbc\x9b\x26\x26\x22\x91\x03\x34\xe3\x05\xac\xa5\xaa\xbe\x6b\x1b\x49\x0e\xbc\x9b\xc9\x62\xf7\xf0\x79\x4b\x3b\x7f\xc0\x53\xd6\xcc\xf6\x9b\x24\x8a\xb8\xbc\x8b\x71\x7d\xb6\x6d\x28\x52\xad\x01\x6d\x9b\x86\x9c\xf7\x64\xd4\x53\x31\xe9\xa1\xaf\x1e\xe4\xc6\xc3\xa6\x41\x09\xfd\xb6\x3d\x23\x0a\xf2\x02\x16\x32\xd1\x86\x17\x33\x4c\x27\x04\x2a\xa2\xe0\xc1\x64\x36\x65\x11\x0f\xe1\x07\xf5\x8b\x2a\xc1\xf8\x62\xd2\x6c\x6e\x29\xab\x06\xcf\x33\x30\x71\x71\xb6\x5c\x93\xcd\x23\x9d\xa5\xaa\x3d\x3e\xa7\xb8\x58\xee\xc3\x5c\xa6\x9a\xef\x70\x30\x3e\x1f\x63\x96\x14\x33\x9e\x52\x77\x68\x14\x00\x61\x08\x30\xe1\xc9\x42\xbb\x10\x67\x6b\xd1\xd1\xea\xb9\x04\x28\xa8\x1f\xb3\x46\x0e\x8d\x3c\x33\x2c\xcb\xc3\x21\x13\x13\xdc\x66\x27\x9d\x5d\x94\xb7\x89\xa6\x4e\x9a\x93\x79\x93\x73\x9e\x5b\xfd\xa0\x2a\xc6\x85\xcd\x2d\x95\x42\x8d\xaa\x2a\x9a\xc4\x18\xbb\xcf\xe1\xc7\xa2\x35\xd0\x68\xf0\x26\x8b\xc6\xbd\x8e\x91\x25\xfb\x83\x88\x76\x1a\x62\x82\x97\x88\x91\x93\x0b\xd7\x88\x56\x62\x46\x04\xb9\x74\x42\x72\x02\xb6\x23\xf6\xd7\xa5\x00\x14\xb0\x1b\xbd\xfc\xfb\xe8\x26\x89\xb3\x4b\x83\xc9\xae\x0c\x00\x44\xe7\xb4\x62\xc7\x48\xa6\x3a\xd4\xc0\x96\x1b\x35\x33\x2c\xa3\x0d\xf4\x60\xb7\x92\xb8\x28\x31\x5d\x8e\x3b\x27\x19\xa5\x5e\x60\x61\xa9\x7e\x46\xc6\xeb\xe7\xeb\x38\x04\xc4\xa5\x5e\x22\x11\xcf\x23\xd9\xdf\x35\xd5\xce\xc3\x0b\xc4\x74\xb8\x13\xc8\x37\x62\x1a\x6d\xf4\x4e\x42\x54\xe6\x7b\x41\x60\x6c\x61\xa7\xa2\x28\xbc\xb9\x68\x77\xf5\x75\x06\x32\x13\x87\x03\x7d\x32\x64\x40\x6c\xad\x62\xa6\x45\x5d\x6b\x2d\x08\x5b\x59\x8e\xa5\x16\x34\x41\x3c\x1e\x69\x91\x3a\x1f\x1e\x8f\x83\x27\xf8\xe7\xf0\x10\x51\x85\x37\x09\xe8\x14\x25\x98\x76\xc2\x78\x99\xb2\xdf\x28\x04\x48\x9f\xe6\x57\xe2\x19\x2a\x33\x75\xd3\x44\x03\x98\xa8\xe9\x04\x4b\xe6\x9c\x4d\xf0\x5a\x3e\x8d\xba\x30\x7d\x6a\x36\xda\x6b\x66\x27\xd1\x51\xd1\xfe\xc8\x6a\xc9\x5d\xe0\x21\x1c\x92\x73\x4f\x30\xe0\xfd\x30\x18\xd8\xec\xd6\x8d\x06\xee\xed\x29\xcd\x90\xd7\x0b\x16\x34\xbb\xc0\x0a\x00\x02\xf3\x79\xaf\x16\xd6\x32\x0e\xda\x48\x61\x33\x50\xf8\xe7\x38\xc1\x6b\x80\x83\xd5\x46\x0d\x9d\x42\xca\xf7\x6b\x12\x42\x22\x21\xe4\x6d\xbd\x9e\x7f\x01\x1c\x97\x5a\xdd\xd6\x49\x58\xb5\xe8\x8e\xd6\x32\xf7\x52\xda\x35\x69\xc3\x9a\x11\xa5\x41\xf6\xc9\x8e\x29\x3c\x28\xf8\xf1\x1e\x0f\x1b\x1f\xc0\x66\xdb\x69\xc8\x62\x09\x5e\x0f\xa6\x77\xcd\x0d\x5b\x3f\x63\xa1\x36\xed\x33\x55\x73\x12\x2e\xbc\x00\x7a\xa1\x97\x31\x0d\x9f\xda\xf9\x62\x1e\x67\x06\x10\xc3\xbc\x9e\x40\xcd\xc0\x5f\x85\xff\x49\xbf\x5a\xad\xfc\xfe\xa6\x22\x0b\xb1\x61\x63\x92\xe8\xb0\x72\x63\xd1\x78\x30\x36\x6e\x8e\xfd\xfa\x75\x20\xbe\xc3\x61\x73\x08\xd6\xb2\x31\xd9\x0d\x7e\x80\xaf\x01\x0f\xaa\x8a\x76\x9c\x6d\x47\xcb\x32\x8e\xb6\xa0\xa6\x00\x67\x5c\x62\x5e\x63\x5d\x7a\x12\x37\x91\xd1\x6f\x3c\x95\x4c\xf1\xe1\x1a\x67\x98\xac\x4a\x6e\xef\x84\x6f\x02\x38\x6a\x49\x48\x51\x4d\x48\x40\xf9\xc7\xc6\x38\x78\xcd\x89\xdd\xe8\x89\xef\x7e\x54\x6b\xb2\x0e\x8f\x1d\xbf\xed\x99\xb5\x3d\x77\xc0\x36\x7d\xde\xdc\xd1\x52\xde\x14\x62\x1e\x92\x79\xb5\x9e\xc4\xb7\xcb\xfc\x97\x8f\xef\xde\xee\x1a\xa7\x66\x9d\x29\x73\xc9\x2f\x69\x7e\xb6\x1a\x9b\xde\x46\x92\x4c\xa1\xc5\x32\x8a\x0b\xe8\x56\x55\xf8\x50\xb3\x90\x77\x19\x7d\x0f\xbd\x4f\x8e\x31\xeb\xca\x7d\x6d\x81\xee\x39\x4d\xc7\x64\x3b\xca\x1d\xe5\x04\x1b\x6c\xea\xa2\x99\x6b\x4c\x97\x43\x16\x6b\x1c\xb6\x39\x43\x2e\x3b\x8c\xa5\x82\x74\x33\x5f\x01\xc3\x0a\x27\x6c\x59\x03\xac\xd2\xbe\x15\x9f\xd5\x71\x91\xd0\xb9\x25\xcc\xac\xeb\x72\x4c\x90\xb5\xbc\x5a\x02\x5f\xf6\xa1\xe9\x3e\x58\xac\x7d\x69\x9a\x1a\xf9\xc5\xfb\x01\xa3\xb1\xc7\x7f\x43\x65\xf5\x65\x30\xf8\x07\xca\xa9\x62\xed\xef\xf0\xdc\xe1\xe5\xc1\xc1\x46\x81\xbd\xbf\x0f\x2c\x28\xdc\x09\x76\x6a\x96\xba\xbb\x11\xac\x9f\x5a\x8d\x51\x8e\x41\xbe\x56\xc0\x21\x6a\x89\x2b\x75\x9b\x27\x9a\x1f\x04\xd5\x41\x9f\xfe\x0d\xe8\xfe\x06\x74\x7f\x53\x26\xf5\x33\xfd\xb2\x2f\x84\xe6\x9e\x83\x12\xdc\xaf\x14\x2d\x03\xfe\x46\xf9\x6c\x34\x41\x9e\xbc\x44\xfe\x04\x7a\xe6\xe0\x23\xed\x14\x74\x73\xaa\xa3\xe8\xb6\xd7\x4a\x5b\xb6\x99\xcf\xef\xea\xb1\xb4\x6f\x41\xeb\x36\x5d\x30\x55\x87\xc7\xa8\xec\x78\x84\xed\xf3\x2b\x33\xc0\x54\x28\x90\x61\x86\xc3\x63\x16\xe8\x11\xf1\x9e\x45\x53\x33\x62\xa1\x25\x93\x80\xb3\x5e\x9e\x0e\xfc\xda\xbc\x83\xb4\x02\xb2\xe9\x34\xfa\x5c\xe7\x55\x91\xd0\x35\x98\x49\xa0\x6a\x32\x9b\xcc\xa7\xa0\x38\x7b\xa3\x66\x23\x23\x04\x1b\x32\xdf\x82\x80\x31\xd8\xd5\x2b\x92\x5d\xe4\xc5\x01\x64\xe0\xb9\x98\x9f\xde\x2c\x4d\xe3\x4f\x63\x18\x01\x1b\x29\xc7\x6b\x1e\x39\x74\x60\x30\x74\xbf\xda\x77\x8f\xea\xa3\x39\x33\x4c\xfb\x67\xd7\x32\xac\xad\x16\x54\x07\x8f\xf8\x0c\xf5\x43\xe3\xc8\xdd\x37\x88\xf2\xd8\x2e\x45\x51\xc2\x32\x34\x19\x41\xd3\x39\x66\x1d\x75\x6d\x21\x44\xa4\x8f\x2b\x9a\xb1\xf1\x94\x62\x0a\x3a\x7a\xaf\xc2\xb1\xc3\x87\xe0\x0f\xf8\x08\x38\xa7\x99\x3d\x9e\x3f\x99\x8d\x67\x20\xc6\x33\x40\x07\x80\x88\x3a\x24\x57\x5f\x6d\xa4\xd7\xb0\xa6\x3c\x14\x01\x6c\xf9\xa7\xf3\xd7\x4d\x1e\xd8\x44\x9c\x0c\x9e\xa7\xcf\xac\x1a\xd9\xd5\xb1\x90\x85\x06\x12\xdc\xd3\x26\x79\x0f\x2c\x4d\xb9\x4a\x7e\x45\x5d\x84\xe7\x54\x94\x1e\x3d\x3f\x84\x9d\xf3\xec\xeb\x28\x0e\x22\xeb\xce\xb3\xfb\x3e\xdb\xdd\x2c\x30\x11\xb7\x49\x4e\xc9\x88\x65\xef\xb8\xd9\x58\x02\x0a\xeb\x15\x22\xa5\x0b\x58\xbc\x28\xe9\xca\xcf\x2a\x50\x5e\x13\x84\xcb\x58\x7a\x65\x94\x29\x90\xda\x15\x6a\xc4\x0d\x85\xf0\x56\x41\xe4\x5e\x99\xfa\x51\xc9\x3f\x98\x2b\x07\xa4\x1a\xe2\x07\xe3\x04\xe0\xa4\xdf\x46\xb1\x65\xfe\x69\xb9\x14\xab\x67\x5e\x81\xe7\x93\x16\x9a\xbe\x16\xa8\x8d\xd5\xf8\xe6\xa6\xfa\xfc\x58\xab\xd0\xef\xb4\x7c\x84\xf5\xde\x19\x91\x57\x20\xc4\xed\xd3\x7b\x8a\xd7\x4f\x22\x57\xfe\x70\xf9\xe3\x00\xe5\x01\x1a\x92\x8b\x1c\xd4\xa7\x0b\xec\xd6\xad\x13\x08\x39\x5d\x39\xea\x1c\xd5\x4a\xf4\xad\x63\x2b\xdf\xf5\x87\xc6\xc4\x18\xce\x86\xc6\xd4\x70\x66\x10\x66\x21\x60\x66\xb1\xbe\xd4\x01\x24\x2e\xb8\x0c\x48\x78\xe4\x8a\x6c\x4b\x40\x00\x5a\xc7\x18\xc6\xb8\x6b\x33\x62\xea\xe5\xb5\x8b\x5a\x13\xae\x61\xe1\x3b\x73\x18\x21\x68\x29\x84\x29\xf8\x43\x27\x02\xf8\x00\xb6\xcd\xf5\x1c\x53\x3d\x62\xba\xc6\xd3\x56\x73\xe7\xac\x43\x83\x1b\xc3\x1d\x35\x3e\xb8\x9b\x9a\x4d\xa6\x2a\xa5\x6f\x1c\x18\x96\xf3\x5f\x0d\x10\x59\xe3\x48\x9e\x29\x0a\xe9\xd5\x17\x56\xdd\xd8\x8c\x66\xcc\x96\xd9\x57\x28\xfc\x60\xf4\xf0\xda\x12\x60\x1a\x6f\x75\x52\x9a\x23\x4b\x7a\x73\x65\xdd\xf0\xc2\x0d\xc8\x55\x4f\x74\xf1\x24\xb8\xa4\xa1\x40\x52\xef\xd0\xe7\x8e\x60\x9f\x74\x86\x6a\x2c\x9e\x84\xe3\x50\x9f\x85\xce\xc0\xb1\x85\x53\xdd\x85\x1b\x68\x13\x77\xe8\xea\x8c\x40\x43\xc4\x1f\x62\x6c\xaa\xb2\x36\x3b\x9b\x1d\x4f\x2d\x4a\xd4\x8e\x55\x82\x0b\x78\xee\x6a\x68\x8c\x2f\x98\x1e\xc1\x3b\x2d\xf8\xcc\x27\x81\xb4\xa9\xf8\x23\x19\x02\xa6\xdb\xa1\xaa\x48\x33\x26\x68\xd9\x71\xdd\x62\x1e\x04\x4e\xe3\xb8\x87\xf4\xd8\x05\x61\x3d\xfc\xcb\x3b\x9d\x6e\xba\xa8\x05\xd8\xbe\xca\x97\xb0\x91\xe3\xc6\x35\x95\x91\x40\x28\x02\xbe\x03\x9f\x3a\xe8\x04\xbc\x86\x16\x2a\x18\x43\xb5\x83\x42\xcc\x7e\xb1\xce\x04\xb7\x2a\x32\xd3\xef\x01\x52\x99\xa0\xb9\x5a\xb0\x0c\x2c\xec\xb2\x23\xa8\x58\xc1\x79\x8c\x09\x84\x95\x28\xf2\xe4\x4a\x98\x29\xa5\xae\x56\x02\xfd\x12\xbc\xd4\x9d\xed\x0f\x75\xfe\x82\x2c\xa0\xbe\xeb\xd4\xc4\xf8\x29\xc5\xf8\x00\xac\xd4\xf9\x0a\xe5\x01\xdb\x08\x8b\x5e\x11\x8f\xca\x6d\x1e\x8d\x15\x20\x4d\x59\x97\x1e\x30\xdc\x78\x5a\xc6\x61\x26\x13\xa5\x7b\x77\x5d\x80\x75\x3a\x3e\x9c\x5b\x77\xc2\x0e\xc5\x4c\x80\x81\x0c\x21\x48\x12\x74\xc0\x47\x09\xfe\x39\xb6\x94\x88\x1e\x62\xb5\xee\x55\x32\xb9\x03\x0b\x02\xc8\x0b\x4e\x27\xa3\xc8\x51\x35\x64\xd6\xb0\x7a\xc7\xc8\x19\x65\x92\x58\xc2\x23\x06\xe3\xd4\xa1\xb9\xe8\xba\xb3\x04\x26\xc5\xe2\x7e\x59\xb4\x55\x86\x13\x23\xf3\xe7\x7d\x0e\xb9\xb0\x3c\xe0\xa4\x43\x46\x08\xd3\x03\xaa\x07\xe8\x9c\x8e\x0b\xe9\x3a\x97\x8f\xf7\xd1\x60\x2e\xcd\x84\xd9\x8f\x28\x9e\x21\xc5\x33\xe2\x05\xee\xca\xa5\x0b\x03\x60\x00\x26\x8f\x42\x2d\x62\xa7\xb3\xb1\x8e\xc0\x8c\x51\xae\xfa\x45\x8a\xe0\x18\x99\x2f\x6f\x1f\xce\xf9\x31\xaa\x21\x58\xd1\x47\x60\x3d\xff\x87\x5d\x72\x02\xd8\x09\xa8\x78\x0a\xff\x67\x68\x8e\x2f\x51\xca\xd3\xb8\x10\xa8\xfc\x97\x5a\xd2\x78\x77\x6b\x15\xed\x89\xda\x5f\xc5\x44\x8b\x49\x90\x7e\xa9\xe4\xf1\xc7\x5d\xa2\x7e\x17\x35\xe7\x86\x1a\x75\x94\x0f\xd1\x8f\x54\x16\xad\x7d\xa4\x0c\x6e\xd0\xd1\x05\xda\x87\x05\x15\x29\x85\x70\x32\x69\x19\x48\x45\xd5\x1c\x1d\xbf\xf6\xbd\x8b\x33\xdb\xe2\x13\x05\x1b\x00\x1f\x84\x5e\xe9\xc9\x0c\xa8\xb1\x28\xf2\x6c\x69\x10\x4c\xd0\xa5\xe0\x7a\xdf\xe4\xd7\xda\xf5\x6a\xc7\x86\xa4\xfa\xf6\x1f\x67\x6f\x5e\x95\xe5\xf2\x5c\x5e\x02\xa6\xb8\xda\xce\x97\x02\x43\x1d\x00\x1d\x51\x1e\x82\x1f\x59\xaf\x12\x46\x0e\x65\x0d\xe1\x2b\xfc\x2c\xbd\xa2\xb8\xce\x57\x78\x42\x03\xe2\x00\xb1\x76\x78\x0b\x61\x62\x29\xc0\x7a\x67\x73\xd1\x0d\x9b\xfe\x07\x56\x1a\xda\xd4\xe2\x23\xb6\x00\x31\x0b\x31\xa4\x2c\xd7\xc5\x13\xfe\x70\x34\xc2\xeb\x8c\xf2\xf5\xf1\xa3\xd1\x08\xf0\x4b\xae\x92\x11\x28\x97\x8e\x81\xcf\x06\x2b\x09\x9e\x40\xc8\x82\x68\x46\x8b\x9f\x6a\x41\x2f\xdd\x26\x20\x5f\x98\xaa\x5a\xc5\x5e\x12\x7f\x17\x30\x3d\x86\x7d\xb6\x74\x22\xf1\xec\x16\xad\x12\xb2\x05\xb4\xe0\xe5\xe9\x85\x64\x93\x5c\x27\x91\x22\x4a\xc5\x88\x57\x40\xb2\xa0\x13\x7d\x3a\x1f\x39\x44\x36\x1a\xcc\xc0\x00\x2c\x96\x97\xac\x8f\x90\xd1\xe3\x01\x7a\x2c\xe8\xc6\xd7\xe5\xec\xf0\x7f\x0d\x8c\xd4\xc0\x4c\x6f\x4e\xbf\xc4\x36\xbb\x27\x38\x09\x02\xb1\x2c\x77\x0c\xcd\x06\x98\xfa\x39\xfa\x19\xc6\xdc\xc8\x27\xb5\x67\x21\x82\xeb\x32\x33\xc4\xb4\xa9\x4a\x52\x22\x97\xb9\x90\xba\x34\xe3\xdb\x0b\x95\x2c\x70\xe5\x0f\x84\x43\x94\x15\x6e\x4c\xee\x0c\x8f\x83\x0f\x0e\x66\xdd\x94\x36\x02\xb9\x17\xf9\x2a\x85\xc8\xc8\x93\x29\x3c\x43\xad\x63\x80\x63\x74\x6e\x42\x8b\x18\x74\x63\xd5\xbd\x13\x3d\xc8\x57\x03\xdd\xd7\x1e\x3c\x8b\x44\x70\x39\x80\x36\x83\xbf\x1a\x36\xfd\x35\xc8\x97\x32\x01\x98\x0d\xfe\x4a\xf5\x85\xf4\xbf\x0c\xad\x42\xc8\xb7\x0c\xd3\x2d\x2c\x54\xf6\xc1\xd0\x77\x17\x91\x62\xdf\x0b\x2e\xbf\x19\x43\x53\x87\x6e\x96\x3d\x97\x37\xd7\x4d\x00\x29\x50\x81\xe7\xc6\x88\x06\x61\x88\x63\x71\xfc\xaf\x9f\xe5\xbb\x97\x85\x79\x0a\xda\xd0\xde\xe9\x7d\xf4\x2f\xf4\xfe\xdb\xd9\xa3\x60\x15\xc3\x0e\x59\x63\x1f\x7d\x76\x23\xdc\xe0\xb0\xa2\xfb\x32\x8d\x11\xca\xc1\x0f\x44\x19\x94\xb9\x00\x34\x51\xd0\x49\x04\x48\x6d\x8d\xd9\xc7\x39\xba\x74\x16\x69\x09\xdf\x91\xaa\xf8\xa7\xf9\x7e\xa0\x19\x77\x52\xcb\x9c\xff\x3f\x1a\xb1\xde\xe4\x7d\xf5\x30\xef\xa8\x9b\x63\x90\x15\x1f\xa4\xde\x25\x6e\x20\x99\x94\x81\xda\x16\x03\x8c\x74\x43\x2f\xdb\x3b\x96\x24\x53\x4a\x71\x8b\x62\x59\x0b\x41\x05\x27\x23\x32\x34\xe9\xa7\x17\xea\x3e\x19\xb9\x00\xe2\x1c\x7c\xc4\x6a\xbd\x9f\x10\xec\xb8\xbd\x37\xc7\xd0\x2f\x86\x84\x9e\xf3\x21\xf4\x1b\x02\x54\x27\x29\xc6\x33\x3f\x8b\x3d\xb7\xfd\x3c\xbc\xc5\x34\x09\xc8\x8b\x66\x4d\x6b\x30\x9f\xea\xc8\x1b\x4f\x16\x50\x2b\x78\x57\x2b\x1a\xcb\xd9\x1a\xce\x36\xfb\xb8\x49\xf6\x63\x20\xdb\x05\xb2\x0f\x0c\x40\x9d\x6b\x04\x5b\xd4\x46\xaf\x53\xb8\xe1\x50\x38\xcd\xe1\x81\x1c\x91\x07\x5d\x50\xd6\x92\xf5\xac\xeb\x40\xbc\x36\x5e\xf5\x0e\xbf\x4f\xbf\x5e\x43\xc4\x1a\x53\xec\x0b\x88\xda\x6f\x33\xad\x98\x67\x7d\xdc\x84\xa7\x0d\xd4\x15\x80\x46\xc3\x69\x13\x8b\x8d\x3d\xfa\xc0\x43\xc6\xaa\x58\x03\xfb\x26\xf0\x83\x0a\x91\x88\x52\x0c\xf0\xa5\x6e\x08\xc2\xfe\xcf\xd9\x29\x7b\xc1\x5e\xb2\x57\xdc\x98\xe4\x94\x47\x18\xc8\x74\xc2\xd4\x60\xaf\xdb\x32\xba\x85\x0a\x45\xbf\xb4\x45\x52\x89\xa0\xec\x57\xde\x02\x0c\xf6\x06\xdc\x73\xa3\x61\xec\x8c\x1f\x99\xae\x63\xfe\x59\xfd\x04\x51\xb3\x05\x21\xfe\x4f\x5f\xed\xaf\x93\xaf\x53\x08\xf3\xad\xca\xfc\x3a\xb1\x87\xee\xd7\xa9\x05\xe1\xf4\x5b\x7e\xf4\x75\x62\xc2\xab\x05\xed\xb9\x69\x54\xff\xaf\xb2\x28\x5b\xf0\xf5\xa1\x05\x4d\x8e\xd8\x3b\x7e\xf4\xa7\x79\x72\x7e\x7a\x52\x3d\x3d\xf9\x78\x5a\x3d\x3d\xaf\x9e\xbd\x7b\x03\xff\x9f\x9d\x9d\xbc\x7d\x5e\x9d\x9e\x3d\x3d\x7d\x5e\xbd\x3a\xaf\x5e\x9f\xbd\xac\x5e\xbf\x7d\xff\xe9\xa2\xfa\xf5\xf4\xf3\xcb\xd3\xb7\xd5\x9b\xd7\x6f\x7f\xad\xce\x4e\x2f\x4e\xaa\xf7\x27\xe7\x27\x67\xd5\xc7\x77\x9f\xce\x9f\x9d\x56\x17\xe7\x27\xcf\x7e\xad\x7e\x7f\x7a\x6e\xed\x1f\xb1\xf7\x5d\x41\xae\xc7\x21\xee\x1a\xdd\xc0\x66\xe7\xfc\xae\x23\x5b\x4e\x17\x39\x7c\xe0\xf2\x1e\xe5\x87\x6d\x03\x12\x95\x69\x82\x9f\x1d\x3c\x6f\xbe\xd6\x39\xd5\x37\x47\xb7\x8a\xd0\x4e\xbb\xcf\xf5\x96\xa9\x73\x8b\xed\x9e\x78\x07\xa5\x2b\xe5\x9e\x84\x28\x9d\x48\x01\xc9\x68\x5e\x6a\xd6\x4d\x7b\xf7\xe8\xa6\x6e\xfd\xa1\x6a\xd6\xf6\x74\x26\xd3\x9a\x7d\xc4\xcb\x8a\x17\x98\xac\xd2\x19\xb6\x1e\xf6\x61\x4d\x26\x5e\x7e\x60\xb3\xe7\x6d\xdf\x8c\x3b\xcd\x8a\xf5\x4a\x90\xdd\x7f\xfe\xee\x4c\xdf\x7f\x03\x37\x81\xf6\x05\xf1\x84\x08\x07\x65\x3e\x48\x65\xd4\x7e\x94\xca\x84\xc9\x51\xaa\xe6\x1b\xc4\x05\x5d\x95\x03\x1b\x2e\x66\x71\x06\x30\xd4\x90\x7b\x32\xa7\x28\x09\xc3\x6e\x3c\x6c\x06\xb4\x18\x41\xa4\x41\xe7\xce\x1b\x1c\x73\xcf\x1d\x6f\x8c\xe0\x97\x76\x03\xfd\x99\xbc\x73\xe4\xab\x8f\x85\xa8\xb8\xf9\x5a\xa8\xbd\x90\xe3\xd7\x18\x6e\x81\xad\xa3\xed\x8d\xcd\x45\x87\xad\xf8\x61\x92\xbc\xe9\x80\x51\x9b\x6c\x36\x03\xc4\x4b\xa9\x44\xbc\x80\xe1\x53\x99\xbc\x71\xa1\x0a\x45\x1b\xc6\x5e\x02\x96\x4d\x20\x5c\x53\x3a\x9c\x3c\xb9\x1c\x5f\x82\x1e\x8b\xc9\xe5\x14\x71\x3d\xc0\x36\x3c\x27\xdf\x85\x4f\x3d\x02\x6f\xca\x6d\x79\x68\xfc\xf5\x99\x3a\x05\xfe\xd8\x17\x63\xc0\x1d\x5d\x55\x80\xe5\x35\xde\xde\xeb\x07\x58\xde\x46\x80\x25\x91\x2e\xc6\x10\x10\x1f\x02\x4e\x45\xf1\x20\xc6\x7f\x62\x78\x81\x9d\xfd\x8e\x7f\xfe\xc0\x3f\x4d\x06\x75\xa4\x92\xc1\x2a\xb7\xca\x3c\xba\xeb\xea\xfb\xfc\xf8\x5f\x20\x3f\x81\x8e\xa3\x77\xad\x0b\xb3\xef\x3f\xc8\x83\xe3\xba\x48\x2e\x38\xe5\x75\xd6\x89\xd8\xc0\xe0\xf7\x08\xdf\xfb\x44\x00\xf2\x1d\x88\xdd\x32\x28\x6e\xe2\xa2\x2c\x06\xf2\x1c\x66\x20\xe5\x0d\xa5\xd2\x6b\x2f\x71\xc6\x19\xc8\x66\x5c\x6a\xa1\x0b\xf8\x6f\xdd\x83\x8c\xd1\x13\x54\x7c\x2c\xdc\xfc\x4a\x25\x64\x33\xfc\xee\x64\xce\x37\x0f\xd7\xba\xa9\x4a\xdc\xb2\x7d\x2e\x99\x55\x83\xbf\x94\x27\x68\x98\x28\x1c\x47\x20\x0e\xf8\xe5\x14\xdd\x54\x95\x0c\x09\x3b\xf9\x6f\x36\x47\x04\xde\xc9\x87\xf7\xce\x09\x09\xd5\x75\x8e\xe6\xb6\x07\xde\xd5\xb3\x99\x4e\x9d\xd6\xf9\x4a\xa9\xff\xa0\xd3\x51\x25\x16\xf8\xb2\x71\x92\xd8\x2b\xc2\x40\x79\x6f\x86\x21\xf4\x56\x0e\x1d\x6f\x7b\xee\x3e\x57\x62\xbf\xc1\x10\x10\x74\x6d\x1d\x94\x3c\x24\x35\x2d\xd6\x7e\xd0\x66\xa9\xee\x15\x93\x87\x96\xca\x83\xc7\xfc\x13\xf7\xf1\x34\xbb\x7b\xfa\xd1\x35\xec\x35\x58\x0b\xbf\x7f\x9e\x03\x91\x26\x8a\xcd\x42\x3b\x69\x4c\xc6\xe1\xa5\x63\x5c\x1c\xbf\x64\xbf\xe3\x8f\x8f\x97\x84\x81\x5a\x2c\xab\x6b\x75\x5f\x12\x13\xab\x7a\xb1\x3d\xc1\x0e\x80\x00\xbc\xa8\x08\x7b\xfc\x19\x80\xf7\x9e\xbc\x26\xf3\x02\x6f\x58\xdc\xf7\xe1\xa5\x86\xb1\x87\x5f\x9e\xf8\x3e\x26\xc2\x3e\xe3\xc7\x6c\x2f\xcd\xcf\x78\x4a\xf1\xc2\x5c\x82\x2a\x41\x64\x6d\x2e\x4d\xf9\xde\x59\x92\x54\xc1\x9a\x1a\x30\x22\x8a\x54\x66\x63\x0f\x74\x82\x48\xb2\x29\xc4\x73\x9a\xed\xed\xe8\xba\xc0\xd0\x1f\x0e\x71\x1c\x74\x11\xf7\xb5\xe0\x04\xaa\x53\xef\xc6\x0c\xfd\x43\x30\x77\x16\xc3\x2b\x1e\x78\x81\x4f\xcf\x6f\x2a\xc3\x21\x7a\x87\x79\x46\x06\x1b\xba\xfb\xc2\xae\x8b\x43\x1d\xde\x7f\x0e\x63\x39\x9b\x24\xe1\x14\xc2\xbe\x86\xd0\x00\x2f\x2a\xfc\xc3\xfd\xaf\xde\x11\x68\x73\x0a\xb3\x91\x11\x47\xef\x38\xf6\x4d\x8f\xae\xcc\xb8\xe1\xc4\x9b\x3a\x21\x46\x17\xed\x45\x08\x0f\x6f\x82\xc9\x83\x17\x9f\xcd\x7d\xbc\xa4\x7f\xa7\xf3\xe6\x00\x00\x19\x65\x9a\x8d\x9f\x0c\x26\xb3\xe4\x08\x74\x6b\xbc\x8a\xff\x9e\x2d\x48\x6a\x9a\x04\x0b\x39\xbe\x2e\x6b\x40\xe9\x90\x87\x9b\xea\xa0\x4f\x3e\xe6\x3e\xaa\xe5\xa3\x1d\x2d\x5a\xdb\xde\x9c\x86\x1e\xd3\x77\x76\xbf\xa8\x6f\x77\x7b\xc7\xa4\x2c\xe0\xdd\x76\xe0\xd2\xda\xd7\x87\x53\xba\xd1\xa9\x69\xf2\x75\x3a\x75\xee\xf3\xbf\x11\x15\xa1\xbd\xc5\xe3\x2c\xb0\x73\x96\xbc\x05\xe2\xff\xd0\xf5\x87\xd2\xfc\x0d\x68\xad\x03\x02\xba\xa2\x18\x80\x04\x0c\xc0\xa8\x60\x03\xaa\x28\x06\xca\xc9\xd3\x07\xb8\x92\x31\x60\x79\x17\xa4\x45\xfa\x9c\x00\x42\x0f\x10\x32\xe2\xa1\xe6\x3f\x97\xb9\xff\x8d\xc3\x0a\xd7\xc8\x33\x2c\x97\xc9\x09\x80\xec\x00\xf2\xf3\x25\xe5\x2b\x0c\x08\xe9\x66\xd3\x2e\xcf\x25\x7b\x4e\xfb\x87\x0d\xe3\x1f\x1c\x84\x98\xde\x90\x9f\xaa\x13\x10\x0b\xf6\x7f\x8f\xe3\xa1\x20\x5e\x5b\x25\x20\xb5\xcf\x4b\x3c\x55\x9b\xea\x84\x21\x1e\xf2\x74\x78\x6f\x7b\x61\x78\x8a\xf2\xf7\x06\x5c\x90\xc8\xd0\x06\xf5\xab\xcb\xd2\x0b\x22\x6a\xa1\x0f\x1c\x7a\x5b\x17\xf1\xde\x1e\xb3\xee\xce\x75\x5e\xf0\xb3\xdf\xb9\x8d\xb7\x8f\x00\x4a\x37\x6b\xd9\xdb\xe0\xd3\xa9\xdd\x91\x5b\x6b\xb8\x79\xe4\x32\x8c\xd4\x3d\x49\x1c\x87\xcd\xb7\x48\xc7\xef\x75\x65\x4c\xda\x2b\xc6\xcb\x4c\x31\x04\x6d\x0c\xd0\xd2\x76\xa7\x4e\x2d\x98\xb4\xb9\x1d\x8a\x66\xc1\x78\x2b\xac\xd7\xb5\xdc\x5d\xd5\x72\x76\x4b\xea\x47\x5d\xa9\x8f\x41\x6a\xc7\x20\xb8\xdd\x6a\xf9\xd5\x44\x4f\xfe\xe9\xf2\xe8\x25\xb4\xed\x85\x7b\x80\xd3\x2e\xf1\x92\xe4\x95\x39\xd7\x1f\x46\x5f\x0e\xd5\x51\x97\xf6\xb0\x29\x8a\xeb\xc2\x4a\x26\xe9\x94\x2f\xe0\x0f\x0d\x9e\x41\x70\x98\x58\x2c\x97\xdd\x9b\xce\x23\x76\x69\x39\x40\x4f\x06\x12\x04\x34\xe5\x43\xf3\x10\x6f\x33\xe6\xbd\x49\x75\x84\x69\x0d\x33\x69\xab\x97\x7c\xa7\xbe\xbb\xdd\x6d\x77\x36\x95\x7e\x6f\x54\x55\x71\xb7\x17\xae\xdb\xb7\xc1\xb0\x95\xf9\xea\x96\xf2\x8e\x94\x9a\x73\x4d\x14\xd6\x6f\x5d\x6d\x68\x5a\x4d\x96\xae\xa1\x42\x12\x6a\x0b\x64\x35\xfd\x8c\x29\x61\x4a\x88\x51\xca\xb8\x4c\x04\xdb\x92\x9b\x39\x9e\x25\x80\x3e\xec\xaa\x80\x4d\xdf\x50\x36\xe0\xfc\xbd\x8d\xeb\x5a\xab\x3f\x26\x42\xbc\xb4\xe7\x69\xd1\x16\xcd\x76\x98\x9f\xcf\xf9\x5a\x7e\x84\x83\xc2\xa1\xcd\x89\xd9\x7c\x80\xa3\x4c\xd2\x39\x96\x32\x65\x7f\x2c\x0d\x06\xb1\x0b\x42\xc1\xb4\x3b\xab\x69\x19\x4d\x14\x3f\xf3\xc1\x25\xb4\x54\x21\xa9\xdc\x90\xd6\xc0\x68\x4a\xfd\x35\x04\x0c\x1f\xd6\x62\x75\x2b\x11\x3b\x5f\x77\x97\x51\x88\x6e\xd5\x15\x6b\x53\xed\xdb\x86\x89\xb2\xcb\xed\xb1\x8e\xce\x80\xe3\xd1\x8d\x7a\xb6\x24\xfa\xdf\xcc\xd6\x6f\x72\xaa\x89\xda\x89\x49\x53\xb4\x6b\x4d\x3c\x40\x07\xce\x9d\xdc\x5f\xe7\xa3\x77\x9d\x9b\x90\xdd\x8e\x2c\xc5\x6d\x9a\xb2\xb8\xcd\x82\xde\x34\x4d\x7e\xc3\xdf\xed\x80\x45\x53\x34\x07\x26\x72\xc1\x08\x2a\x71\x43\x66\xc5\x0d\x89\x20\x0e\x0f\x67\x94\x33\x56\xcb\x43\x60\x19\x02\xf0\x82\x5f\xbc\x8a\x52\x4b\x34\x6e\xa8\xdc\xba\x01\xce\xab\x5d\xbb\x89\x87\xf8\xfa\xe2\x1e\x60\xf0\xf6\xeb\xd9\x99\xba\xd9\xa6\xbf\xa7\x68\x40\x32\x42\xe4\xe8\xb1\xae\x20\x94\xec\x01\x5c\x96\xe7\x62\x20\x94\xe4\x73\xe8\x17\x8f\x23\xe5\x11\x50\x93\xd8\x9f\xb4\xff\x0a\x41\x43\xaf\x84\x5f\x04\xf3\x7a\xbc\xf1\x6c\xcc\x64\xcd\x29\x29\xb9\x27\x43\xc8\x9d\x57\xad\xe4\x41\x20\x6d\x3b\xfa\xe9\x26\x31\xd5\x64\xab\xf8\xfd\x79\x7e\xf4\xe4\x9d\x4c\x78\xe0\x7e\x77\x3a\xef\x55\xd5\xcf\xfc\x11\xaf\xba\xa9\x6b\xd9\xbe\x53\xa2\x7a\x90\xc8\xe2\xd5\x08\x77\x57\x60\x6a\x77\x93\x8b\x35\x0c\x00\x3f\x2b\xfa\x9e\x74\x47\x6b\x82\x37\xbd\x1e\x0d\x82\x99\xf5\x52\xe7\x2e\x5a\x18\x67\x63\xf0\x56\x0f\x64\x06\x8f\x37\x47\x16\x55\x45\xd9\x3d\xab\x7f\xe5\x40\x1e\x64\xf0\x67\x32\x09\xc9\x24\xdb\xa0\x94\x63\x5a\x50\xbe\xe1\xc9\xa7\x4e\xdc\x72\x6f\x5b\x79\x02\x79\xc4\xb6\x85\x1b\x4d\x99\xde\xc5\x1c\x81\x8d\x21\x92\x0b\x53\x64\xd7\x2b\x6f\xf9\x71\x1d\x04\xa2\x28\x1c\xfd\x4e\x7a\x63\x55\xd5\x77\xbc\x8f\x6d\xce\xcc\xb9\x09\x1d\x08\x6b\x32\xcf\xa2\xf3\x59\x7a\x21\xf9\xdc\x18\xb3\x73\xfd\x32\x52\xff\x68\x82\x27\x2b\x9a\x6b\xcc\xf8\x01\xce\xe3\xa8\xf9\x58\x0b\xa4\x17\x6f\x40\x93\xf8\xc8\xa6\x66\x44\xf7\x9e\x55\x4e\xb2\x24\x41\x32\xa3\x5e\x03\x0b\xf3\xdc\x9b\xcb\x69\x14\xcc\xd1\xda\x39\xc5\xc4\xaa\x3c\x25\x0c\x76\x1e\x95\x06\xa0\x28\xfa\x80\x2b\xb0\xea\x9d\x02\xbf\x85\xde\x19\x1e\x69\x41\xbf\xd6\xb0\x35\xcf\x74\x4d\x3f\x2e\x41\x14\xe9\x26\x4b\xa7\x95\xb4\x77\xcb\x62\x57\x42\x21\x84\xc0\xd1\xab\x2a\xbc\xdd\xab\x9b\xd9\x33\x0f\xad\xda\x2d\x44\x9a\xa2\x36\x8d\x26\xa3\x04\x78\x48\x45\xb7\xd7\xe0\x84\xf3\x6b\x57\xfe\x38\xf8\x71\xe5\xae\x56\x32\x01\xd1\x7c\x0e\xae\x5f\xe5\x2f\x88\xfd\x32\x5f\x95\x85\xdb\x7f\xe5\xa9\xb3\xe3\xf0\x55\x0e\x7d\x70\x20\x7f\x6d\x2f\x0d\xf5\xb3\xb9\x7d\x06\x90\x02\x39\x0f\x8e\x8e\x7e\x1a\x14\xf9\x7a\x15\x88\x33\x6f\xb9\x04\x05\xfe\x74\xfe\x86\xeb\x7f\x5b\x28\x8d\x33\x7b\x51\xe0\xa1\xfc\x83\xff\x0b\x00\x00\xff\xff\x5e\x87\x38\xfe\x9a\x48\x00\x00") + +func uiJsLibsMithriljs020MithrilMinJsBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsMithriljs020MithrilMinJs, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js", + ) +} + +func uiJsLibsMithriljs020MithrilMinJs() (*asset, error) { + bytes, err := uiJsLibsMithriljs020MithrilMinJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/mithriljs/0.2.0/mithril.min.js", size: 18586, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsMithriljs020MithrilMinJsMap = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\xbc\x5b\x53\xea\x4e\xdb\x27\xfc\x5d\x56\xdd\x67\x5a\x8f\xa2\xe2\xe6\x7e\x8f\x92\x4e\x08\x31\x46\x84\x88\xc8\x7a\x6b\x6a\x0a\x21\x42\xd8\x04\x0c\x01\xd1\xa9\xf9\xee\xd3\xd7\xef\xd7\x21\x41\x5d\xff\x7b\x3d\x53\xb3\x0e\x96\x49\x77\xa7\x37\xd7\x7e\xd7\xfc\xaf\x5f\xdb\x38\x5b\x27\xcb\xf4\xd7\xbf\xcf\x8f\x7f\xbd\x26\xf3\xf8\xd7\xbf\x7f\x2d\x92\x7c\x92\x25\xf3\xff\x5a\x24\xe9\x7f\x4d\xd7\xbf\x8e\x7f\xad\x97\x9b\x6c\x18\xaf\x7f\xfd\xfb\xff\xdf\xf7\xe9\xf6\xff\x71\xfc\x2b\x1d\x2c\x4c\xb3\x1e\x35\x58\xad\xf4\xff\xef\x49\x3a\x5a\xbe\xeb\x87\x4d\x3a\x8a\x5f\x93\x34\x1e\xe9\xe7\x24\x4d\xf2\x64\x30\x4f\x3e\x63\xfd\xf2\xaf\xd1\x72\xb8\x59\xc4\x69\xae\x9f\x2b\x8f\xff\x9a\x2f\x87\x83\x5c\xb6\x72\xfc\xab\xf2\xf8\xaf\xe1\x20\x1d\xc6\x73\x2b\x4d\x16\x68\x6a\x64\x7a\x4d\xdd\xfe\xa7\xe6\x79\x3c\xc8\x1e\x93\x45\xbc\xdc\x60\xd2\x2c\x7e\xdb\xc4\xeb\xfc\xdb\xb8\x3f\xb5\xaf\xe3\xbc\xfc\x5a\x77\x0d\x27\x72\xb2\x6c\x0c\x30\xcc\x93\x21\x97\x9e\xcf\xd9\x8a\xbd\x4b\xd7\x64\xb0\xb6\xf2\x3c\x93\xc7\xfc\x63\x25\x83\x5a\xf6\xad\xab\x1e\x65\x98\x69\x1f\xce\x07\x6b\x0c\xba\x37\x3b\x8d\x31\x4b\x3e\x18\x17\x9d\xb1\x0c\x8b\x1e\x3b\xfe\xbd\xa7\x1f\xdc\x2c\x5b\x66\xfa\xef\x6a\x90\xad\x63\x79\x88\x77\xf1\x50\x60\x29\x00\x5d\x6d\xd6\x13\xf4\x25\x99\x59\xe2\xa1\x18\x36\x9c\x24\xf3\x51\x16\x03\x8c\x71\x3a\xce\x65\x9c\xd5\xe9\x58\x7d\x33\xd0\x2c\xaf\x77\xdc\x7a\x4f\x1f\xb2\xe5\x2a\xce\xf2\x0f\xdd\x30\x5d\x26\xf2\xcd\xcb\x46\x7f\xce\x65\xf5\xd9\xdc\x79\x6c\xd0\xc3\xf7\x47\xec\x96\xcf\x6a\x30\x9c\xc4\xfb\x37\x5f\xa3\x7b\x27\x18\x1d\xe4\x03\xc0\x48\x77\xca\x3c\xeb\xc9\x72\x33\x1f\x75\x62\xbd\xf4\x00\xc0\x4c\xcc\xc0\x78\x94\xe4\x83\x97\xb9\xcc\x00\x32\x5a\x0d\x08\xdc\x65\xfa\x9a\x00\xdc\xf9\x32\xca\xb3\x24\x95\x05\x81\x99\xcd\x4b\x9e\xc5\xf1\x7e\xee\x47\xc2\x59\xd6\x33\x8f\xe9\x72\x04\x10\x2e\x5f\x5f\x35\x1a\xe5\xb3\x74\x54\x90\x04\x67\x5e\xe7\xd9\x66\x98\x03\xac\x09\xe1\xc3\x76\x4d\x6d\x24\xe0\xf9\x07\x76\xa8\xb7\x9a\x73\x49\x2b\xcb\x06\x1f\x6a\xb9\x01\x0c\x1c\xf7\xce\x7d\xf4\x5b\xf7\xfa\xd1\xbf\x8f\xdc\x8e\x79\x0e\x5b\x4f\x2e\xf0\x93\xac\x73\xee\x97\x87\x0e\x07\x32\x53\x92\xfa\x23\x0d\x1f\xcd\x00\xd8\xdc\x2c\x96\x25\xf4\xfc\x24\xef\xf1\x06\xf8\x9c\xb2\x67\xed\x24\xaf\xaf\xc4\x22\xce\xa8\x48\x23\x72\x46\xf3\xf8\x9a\x2d\x85\xd7\xe2\x3d\x5e\x86\x99\x06\x6d\x5c\xe2\x89\x33\xcb\x4a\x2b\x8d\x5b\xd0\xc3\x20\x1d\xc7\x64\xe3\x2c\x37\x7f\xd4\xbe\x31\x8d\xdf\x55\x81\x2b\x1c\x76\xff\x89\x0c\x5d\x19\x92\x1f\x6d\x16\x0b\x82\x46\x13\x59\x6e\xc7\xaf\xcb\x2c\x2e\x68\xed\xde\x80\x1d\x5b\x2e\x40\x95\xe4\xb1\xec\xf3\x5f\x1a\xe0\xeb\x1c\x93\x0b\x76\xf6\xd4\x72\xcf\x17\xd0\x42\xeb\x55\x3f\x6d\x93\xf8\x7d\x4d\x64\xe4\xd9\x72\x3e\x8f\xc1\x33\xd2\x2a\xb3\x2c\xb3\x64\x9c\xa4\x83\xf9\xc1\x80\x82\xe2\xb2\x78\x94\x0d\x64\x98\xc6\xae\x06\xc5\xf8\xe3\x60\x14\x56\x06\x20\x56\x9a\x1c\x34\x7a\x3a\xe4\x7c\x10\x4a\xba\x49\xe7\xcb\xc1\x08\xd2\x4a\x1e\xb8\xaa\x3e\xfd\x88\x5f\x0a\xe0\x85\x65\x03\x8d\x1a\xe1\xe9\x97\x69\x0c\xc2\x98\xf1\x5d\xf3\x90\xe9\x21\xd5\x2a\xbd\x6a\xbc\xcb\xb1\x27\x41\xbc\x7e\x68\x74\xef\x95\x21\x93\x55\x16\x6f\xf5\xd1\x9d\xf8\x75\xb0\x99\x03\x46\xeb\x7b\x1c\x6f\xb7\x98\x03\x61\xc9\xfa\x2b\x3e\xef\x23\x8a\x24\xd9\x43\xf2\xb2\xc9\xe3\x02\x44\xba\xaf\xc2\x3f\xff\x5a\x82\x65\xb7\x83\xf9\x26\x2e\x06\x60\x1b\x22\xa9\x5e\x06\xc3\x19\x40\x2d\x7b\x6f\x3e\x86\x77\xfb\x45\x1e\xf5\x20\x83\x08\x41\x8e\x11\x0c\xdb\x65\x32\x32\xcb\xaf\x8b\x49\x81\x22\xa1\xac\x6d\x85\xd2\x92\x34\x8d\x33\x33\xa1\x7c\x5f\xe1\xc2\x27\xb3\x13\x91\x04\x2f\x15\x38\xee\xc9\x64\x54\xbc\x15\x3d\x07\x1d\xf2\xe5\x46\xb3\x69\x81\xd8\x6c\x83\x63\xae\xf3\x8f\x79\xfc\x05\x20\xdf\x20\xa4\x5f\xb5\x30\x59\x0f\xc6\x94\xf2\x8b\xe5\x36\x56\x13\x8a\xb4\x3d\xb2\x87\xa6\x21\xd5\x00\x88\x92\x97\x39\x99\x36\x59\x57\xa4\xdd\x5c\x4b\xa3\x89\x06\x2b\xc8\x80\x54\x6f\x8d\xa6\xba\x31\x2d\x60\xb8\x2c\x88\x01\x58\xc5\xf6\x06\x9a\xb1\x96\x8b\xd5\x26\x2f\x94\x97\xa6\xb8\x46\x92\xad\xbf\xb4\x8e\xe3\x5c\xb8\x19\x6c\x17\x40\x1c\x08\xcc\x0a\x71\xaa\x7b\x73\x4d\x87\xf8\x1f\xb3\x92\xd5\xf2\xe5\x6d\x44\x32\x1a\x88\xaa\xd2\x9d\xd4\xa6\x43\x3d\xf5\x32\xe5\x0e\xf2\x09\x49\x28\xcf\x84\x53\xb4\x0e\x5b\x41\x8d\x0d\xb1\x7a\xfc\x90\xc5\x1d\x40\xb4\xb9\x5c\x0a\x45\x64\xcb\x65\x6e\xfe\xac\xab\x13\xc9\xcb\xbf\xfe\x65\x74\x9e\x66\x56\xc2\xa0\x98\x64\xb9\xce\x0f\x66\xd1\x8a\xcb\x34\xf8\xa3\x83\x57\xa5\x69\x4f\x54\xa9\xc8\xcd\x41\x4e\xca\xc8\x16\x30\x02\x3a\x4b\x22\x2a\x33\x7f\x17\x46\x82\x2c\x48\x8c\x68\xb6\x3f\x0a\x22\xc2\x2b\x35\x21\x94\x19\xde\x1f\x04\x0a\xf2\x8d\x66\xe6\xec\x23\x12\xd0\xff\x32\xba\xb2\xcd\x16\xa3\x3a\xb4\x0c\x5f\x83\xa2\x16\x46\x32\x41\xa9\x63\xbe\x4e\x3c\x76\x77\x2b\x1c\x12\xf8\x16\x08\x6a\xc9\x50\x10\x3d\xc8\x33\x1e\xea\x3d\x75\x3b\xbe\xaa\x80\x19\x1b\xe8\xa6\xcb\x17\x11\x6e\x9a\x25\x0c\xc8\x89\x4a\x8d\x9a\x01\x9f\xde\x27\x09\x14\x9e\x96\x05\x9b\x2c\x2d\x4e\x33\xdc\x64\x54\xa4\xd9\x18\x3a\x6a\x9d\x0d\x4b\xb2\x5b\x6b\x4d\x85\x6f\xf2\x65\x77\xa5\x15\xb3\x1a\xac\x0d\xc1\x47\x43\x11\x67\x94\x39\x32\x60\x8d\xf7\xc7\xe5\x2f\xa3\xb1\x0f\x0f\xad\x45\xcd\x6b\x02\x6d\xbc\x11\x09\x3e\xa0\xe0\x20\x1c\x70\x36\xc3\xab\x71\xfa\xd3\xf1\xe2\xd1\x66\x48\x3e\x5a\x2c\xc1\x2d\x83\xcc\xca\xf7\xa0\x34\x2b\x68\xcb\x03\x73\xea\xf9\xf3\x82\x2a\x49\x30\xd4\xbd\xc3\x92\xba\x87\x05\xb1\xff\xa2\x52\x4a\x5e\x3f\xf8\xb4\x48\xd6\xd4\x02\xb0\x0e\x0b\x08\xe5\x13\xa8\x65\x3d\xd1\x72\xbe\x25\x17\x1b\x4e\xd3\xa2\x33\xd6\xd0\x83\x59\xb1\x19\x6a\x8b\x74\xad\x4a\x01\xf7\x3a\x48\xe6\x9b\x2c\xae\xb6\xe8\x89\x09\xac\x9c\x04\xd8\x71\xc5\x26\x73\x1d\xc3\xfa\x20\x86\x15\xb0\xbc\x9f\xb7\xe3\x46\xad\xbb\x27\x0c\x31\x1b\xac\x6e\x2b\x2d\x0c\x96\x65\xfe\x58\xbc\x56\x16\x1c\x1a\x12\xd3\x90\x34\xc6\xdb\x6b\x92\x95\x0b\xd3\xae\xe3\x0a\x7c\x5e\xc7\x73\x91\xac\x82\x8d\xc2\xdc\x4b\x68\x2c\xc0\x48\x98\x0e\x04\x87\xcb\x55\xa1\xd1\xf3\xe5\xdd\xf2\x7d\x4f\x15\xbb\x89\x8c\x7f\x0e\xef\x9a\x79\xbe\x32\x5a\x0d\xc3\x01\x3e\x4d\x87\x93\x25\xa4\x1e\x84\xc1\x66\x6d\x58\x68\xbd\x7e\x5f\x66\x23\x6c\x52\x2b\x81\xd1\x07\x60\xb3\x57\xf8\x68\x8a\x0c\xb8\xa4\x6b\x43\x3d\x69\x04\x67\xbe\xa7\x5a\x2d\x7e\x0a\x7b\xde\xc8\x25\x92\x06\x71\xab\x49\xc0\x6c\xa8\x19\x0f\x28\x3f\x34\x87\x57\xbe\x01\xa3\xfe\x2a\xf4\x26\x10\xf1\xf1\x12\x3f\xe3\x44\x0d\x2d\x26\x1c\x5a\x91\x6b\x63\xc1\x19\x10\x93\x9c\xc6\x34\xd1\xf5\x53\xb8\x17\x08\x18\x96\x69\xbd\x0d\xeb\x48\x33\x47\xb2\x22\x29\xaf\x57\xe6\x8f\x86\x20\x14\x9e\x50\xbd\x01\xb5\x66\x3d\x61\x9f\xe5\x08\xc0\x5e\x89\x7d\x50\xa8\x8a\x17\x6d\x99\x98\x3d\x68\x30\xb7\xf6\x18\x80\xb4\xa9\x30\x41\x29\x8a\xbb\x00\x73\xbe\x9c\xc5\x18\x38\xc9\x17\xb0\xdc\x8c\x7f\x63\xd4\x6c\xf1\x5a\x72\xbc\x11\x3d\xc5\xba\xda\xae\x1a\x6a\x29\x0d\xfd\x4c\x65\x91\xac\x1d\xf3\x51\x87\xf2\x1a\x16\x95\xfe\xbb\x67\xf6\x7c\xb9\xaa\xb2\x6f\xa3\x63\x85\xee\xff\xb4\xbb\x8e\xe7\x3e\x52\xa6\x52\x7b\x16\x16\x0e\xe6\x7c\xa0\x2d\x62\x58\xe9\xa5\xaa\x44\x8c\x80\xfa\x22\x11\xb4\x40\xe7\x6a\xd8\x21\x44\xc7\xe8\x50\xab\x2d\x40\xac\xef\xda\x3f\x34\x2a\xbc\x78\xac\x30\xc8\xf8\x50\x51\x9b\xa5\x0a\x75\x20\xf2\x3d\x2d\xdc\xb3\x91\xe6\x9c\x21\xad\x24\x63\x31\x15\xc3\x46\x87\xaf\x74\x4e\xf5\xc3\x5c\x9b\xdf\x71\x8a\x03\x0e\x46\x23\x57\xce\x77\x57\x69\x82\xff\xe1\x1a\x5d\xbd\x25\xa1\x4c\xb4\x9c\xfc\x55\x98\x09\x5f\xbf\x18\xc5\xd5\x2f\xb4\x2d\x50\xac\x08\x22\x28\xac\x4f\x73\x86\x07\x92\x62\xe1\xed\x00\xa9\xcd\x44\x94\xf7\x87\xab\x4d\x51\xa1\xb0\x09\x5f\x7f\xd1\x7b\x2b\x98\x4c\xf3\xfa\x3c\x2e\x68\x49\x66\xf8\x48\x87\xe6\xcf\x24\x5b\xa6\x9a\xb2\xc0\xb7\xcb\x75\x29\x12\x47\x7c\xd4\x30\x00\x73\x6e\x72\xcd\xa8\x30\x6d\x7f\xed\xfd\x5a\x21\x61\x0d\xf2\x71\xc1\x1a\xc9\x5a\xb8\xf4\x41\xf0\xb6\xd3\x56\x32\x00\x3b\x5d\x2f\xd3\x15\x08\xe3\x3d\x1b\x94\x0f\x11\x25\xeb\xfe\xbd\x10\x4c\x05\x13\x01\x32\x2b\xaa\x6b\x23\x78\x87\xe6\x5c\xf1\x6e\xa5\x7d\x0b\xea\x4d\x71\xfd\x05\xec\x8b\x91\x04\x0a\xb4\x9c\x5d\xe9\x0d\xae\x7f\xfd\xfb\xd7\xff\x87\x7f\x96\xfe\x77\xec\x59\x96\xcf\xff\x8f\xdb\x96\xd5\x55\x78\x54\xc7\xae\x65\xb5\xe5\xb9\x77\x65\x4b\x7b\x84\xf6\x5e\x43\xff\xaf\x52\xdb\x93\xee\x7e\x53\xfe\x6f\xf9\xc7\x91\x34\xe1\x8b\xfe\x1d\x9a\xc2\x4a\xd3\xbb\xfd\x80\xb6\xf6\xf1\xda\x96\xb7\x0e\xde\xa2\xe3\x81\xa5\x6e\x1c\x8c\xf8\xb0\x9f\xd0\xd6\x3b\xde\xd8\xf2\xf6\x8c\xb7\xfe\x71\xcf\x5a\xd8\x53\x17\x8b\x8f\x8e\x03\x4b\x75\xf4\xda\x81\x1f\xeb\xff\xef\x2c\xa5\x1b\x64\xaf\xa1\x65\x85\x78\x0e\x94\x1e\xaf\x32\xbd\xa6\x6f\x59\x6b\x5b\x3a\x9e\x6f\x65\xa2\x40\x1a\x86\x01\x1e\x9b\x18\xd9\x60\xb3\x1e\xd1\x0e\xe5\x50\xfd\xe3\x96\x5e\xe2\x5e\x1e\x31\x38\x04\x1c\xac\xfd\x7b\xa4\x67\xb6\x06\xfb\x77\x75\xd2\x6c\x01\x3a\x38\x7e\xef\xb6\x98\x4d\xed\xec\xb6\x3c\x8f\x6d\x7d\x7a\xab\xe7\xc8\xf8\x36\xa6\x3a\xee\x5b\xea\x4a\xb9\x68\xc0\xfe\xb0\x78\xab\x79\xdc\xb5\xd4\x8b\x2f\x53\x3e\x4b\xab\x7f\xff\x7d\x93\x01\x20\x21\xab\xc9\x63\x88\x61\x4a\xf6\x1b\x1e\x5f\x3b\x96\x9a\x3b\x98\x69\x84\x11\x31\xe0\x46\x68\xbc\x16\x9f\xab\x13\x5b\xd6\x4d\x6c\x69\x7e\x71\xa4\x19\xb3\xe8\xf3\xe0\x51\x90\xdd\xc5\x60\xec\x2c\x7c\x66\x73\x4b\x76\x2c\x0d\x09\x40\xf9\x52\x8e\xee\x73\x74\x03\xa0\x8f\x00\x94\xa9\xbd\xff\xa8\xfe\x87\x8f\x78\x86\x10\x7b\x9b\x9b\xe1\x6d\x4b\x7d\x62\xf8\x12\xc3\x27\x76\x39\xde\x23\x5e\x94\xde\x05\xb6\xef\x2f\xf0\xa7\xa5\x0c\xc8\x65\x9a\x89\x5d\x0c\x57\x53\xd5\xc5\x46\xb8\xa9\xde\x1e\xed\xa1\x55\x42\xd1\x3c\x16\x48\xf5\xf5\x93\x3f\x07\x92\x7c\x60\x66\x6d\xaf\x6c\x03\x07\x6c\x06\x24\xbe\xb6\x0d\x46\x5d\xcb\x5d\x39\xfc\xba\xa7\xd1\xeb\xcc\x6c\x99\x64\xc5\x2d\x6b\xde\x68\xcb\x28\xee\xc8\x20\x70\x86\x97\x08\x64\xe6\xea\x47\xb5\x55\x0d\xb6\x78\x96\xf7\x68\xe9\xb3\x79\x53\x20\x05\xb3\xfa\x9e\x3c\xf6\x27\x72\x4c\x55\x40\x42\x83\x31\xb6\xac\xd8\x11\x34\xca\x52\x82\xb6\x57\x19\xbd\xc4\x1e\x53\x9b\xe8\x1c\x63\x2f\x1f\x40\xfc\xca\x6c\x82\x8d\x6a\xee\xfe\xae\x00\xfe\xa9\xd2\x93\xda\xa3\x0a\x1e\xc7\x36\x01\xee\x5b\xee\x8f\x1d\xe5\xa4\x9a\x05\x57\x42\x80\x0d\xff\x37\xe8\xb9\x0b\xe6\x91\x0d\x78\xbf\x2b\xdf\x29\x12\x1d\x80\xd8\x1e\xf2\x98\xa1\xe5\xd6\x1c\xcc\xe4\x76\xc0\xd5\x09\x26\x0f\x81\xd4\x98\xa8\xc5\xff\x83\xca\xff\x61\x21\x89\x80\x07\x65\x48\xdc\x05\xf3\xf3\x03\xcf\x3a\xb3\xeb\x80\x39\xc9\xae\x03\x4e\x5e\x18\x10\x11\xed\xad\xe3\xa1\x90\x19\x25\x51\xc9\x81\x6d\x80\x9e\x12\x09\x80\x17\xf1\x66\xbd\xd9\xc2\xf0\x53\xf3\x69\x24\x5b\xa5\x40\x69\xc9\x48\x95\x83\x66\x7d\x90\xfe\x60\xa5\x2a\x28\xbf\xc6\x79\x22\x30\x48\x2f\xab\xf6\x5c\xca\xa9\xd5\xa7\x03\x59\x24\x53\x3d\x01\x40\x33\x1b\x90\xe3\xd9\xbb\x42\xee\x37\x68\xe7\x10\x41\x97\x6a\x62\x8b\xf8\x3f\xc6\x86\xfa\xe8\x6c\xc9\xe0\xac\x90\xd5\xb2\x2a\x90\xdb\x16\x69\xa4\xa6\x36\x44\x41\x08\xea\xee\x36\x40\x37\x24\xee\x76\x54\x02\x50\xcb\x5b\x8d\xba\x56\x2e\x47\xd3\xa2\xf8\x83\xc8\x20\x2f\x73\x91\xb0\x46\x01\x7b\x56\x6a\x03\x2b\x24\x29\xf4\xeb\xf6\x61\x57\xdb\x72\x6f\x9c\x17\x30\x29\xe7\x05\xea\xc3\x91\x59\x49\xb6\x2c\xa2\xc5\xad\x2b\x08\x52\x40\xcf\xc7\x06\x03\x4d\x55\x5a\x40\x8e\x20\xb2\xb8\x1d\x2b\x00\xc0\x0b\x46\x68\x09\xcb\x79\x1d\xf3\x49\x79\x1a\x01\x82\xbb\xb5\x89\x4f\xe9\x3c\xa5\xb0\x90\x3e\x8f\xd4\x43\x59\xa3\x29\x5f\x6f\xa9\x7f\x81\x97\x5b\x70\x4d\x24\xec\xa4\x79\xf2\xfc\x1b\x9a\xac\x80\x74\xd4\xae\x81\x51\x6a\x36\x61\x46\x6a\xd0\x72\xa8\x05\x00\x6a\x11\xdf\x5d\x81\x5b\xaf\xec\x04\x03\xad\x6f\x2b\x0e\x5e\x0a\xfe\x7e\x74\x48\x41\x7d\xcc\x15\x99\xed\x3f\x43\x51\x74\xcb\x1d\xb6\xc7\x6a\x2f\x6f\x5a\x2b\x97\x14\x5e\x9e\x06\x42\x94\xaa\x59\x34\x90\xc6\x3f\x78\x3e\x06\x62\xce\x6c\x36\x81\x0e\x08\x02\x6c\xd9\x9f\x14\x8b\xc9\x02\x67\xd8\xea\x8d\x91\x12\x2d\x8a\x8e\xb0\x7c\x13\xd9\xfb\x09\x05\x33\x06\xee\xb7\xf6\xc7\xd7\x3e\x41\xfb\x52\xf4\x8e\x4a\x1d\xa7\x5c\xf9\x9c\xd2\x28\xfa\xfc\xe3\x78\x21\x13\xd9\x03\xd4\x9c\x00\x4f\x88\x62\x28\x12\xa5\xee\x14\x80\x72\x9c\x01\x68\x48\x66\x6c\xbc\x94\x47\xf9\x2b\x6c\x9e\x93\x1f\xa6\x7b\x2c\xfa\x7b\x82\x0e\x92\xea\xd9\xae\xb1\x76\x66\xbf\x7f\xed\x33\x7b\x15\x12\x13\x06\xab\x39\x25\x6d\x79\x25\x69\xbd\xfc\x71\x33\x83\x2a\x69\x9d\x70\xc0\x11\xf7\x51\xbe\xc9\x5a\x5b\xe7\x87\x7d\x94\x7d\x25\xcc\x06\xf5\x3f\xf4\xc1\x50\x19\x0a\xb1\xb8\x22\xb6\x27\x9e\x9e\xd0\x6f\x18\x69\xa1\xbf\xd0\xbc\x50\xaa\xcf\x60\x7f\xa4\x29\x76\xe3\x4f\x94\xd9\xbc\xd8\x27\xbd\x0a\x81\x9c\x02\x86\x03\x41\x6f\x4d\xed\xd5\x13\xc4\xac\xd5\xc7\x47\xa9\x4d\x90\x02\x16\x1f\x36\x88\xd5\x1a\x70\x42\x83\x76\x3f\x41\x63\x6f\xae\x2a\xf0\xf5\x01\x96\x9c\x5b\xe4\x57\xbd\x4f\x80\x21\x3a\x25\x12\x6b\x7c\xfb\x70\x8a\x3e\x73\xd4\x00\x26\xa5\x19\x51\x1e\x3f\x80\x0c\x6c\xf8\xdc\xb0\x7e\x7e\x29\x41\x40\x51\x29\x8d\xaf\x25\x0a\x5f\xff\x9b\xd2\xe1\x6f\xe9\x49\x79\x7f\x47\x4e\x37\x76\x69\x6c\x87\xf5\x3f\x0c\xf6\x44\x05\xe3\x10\x91\xd8\x25\xce\x23\xad\x06\x20\xf9\x85\x0c\x04\x21\xdf\xc9\x0b\x06\xd2\x2f\x0f\x33\x98\x12\xe1\xa3\x19\x2b\x62\xf5\x13\x22\x74\x65\x27\xb0\x4e\xa2\x54\x95\xa2\x38\x1c\x1e\x8e\x13\x22\xb8\xa2\x12\x3a\x72\x85\xa8\x86\x5a\x32\xdd\xcd\xb5\xc5\x2d\xcb\xdd\x51\x9f\x95\xfc\xda\x9d\xe3\x4b\xff\x4d\x16\x55\xb7\xa5\x11\x03\x82\x69\x43\x0b\x74\x69\xf1\xad\xc8\xd9\xef\x98\x3c\x1a\xc0\x58\x73\x8c\x15\x4b\xe5\x24\xa3\x3c\x63\xc1\xeb\xde\xad\x71\x24\xcc\x7c\x62\xe9\x52\x44\x83\x3e\xb5\xa5\xf7\x46\xad\x76\x42\x19\xfd\x5c\x39\x54\x4d\x86\xbb\x27\xa5\x51\xd5\x3b\xc3\x3e\x1f\xea\x25\xbd\xf6\x88\xe5\x08\x67\x6a\x6f\x4b\xc2\x04\x35\x05\x53\x99\xfc\xd6\xe7\xa0\xd6\x84\x96\xfc\xbd\xd0\x42\x46\xc7\xc5\x28\xb4\x0b\x6e\x09\x2b\x8a\x33\x53\xa8\xb7\x6a\x8f\x36\x6f\x27\x0e\x0f\xde\xf5\x30\xce\x29\xba\x42\x5a\x21\x6e\xdd\x3e\x55\xd5\x95\x08\x69\x21\x95\x09\x49\x6f\x83\x0d\xb6\x3f\x1b\x07\xb8\x11\xb4\xd2\xe2\x0d\x53\x12\xa5\x21\xa6\xcb\x83\x6d\x9d\xdb\x25\x01\x6a\xc5\x40\x0e\x1d\xea\xd7\x81\xa6\x47\xee\x25\xc5\x9f\xa1\x86\x69\xaf\x70\x65\xb8\x75\x6d\x8d\xe8\x55\xea\xee\x3f\xec\x5f\xf6\x77\x0e\x75\xd8\x36\xfc\xf8\x1f\x76\x11\x50\xd3\xc8\x07\x0b\xa1\x14\xb5\x6d\x60\x45\x83\xcb\x30\xa9\x7e\x17\x01\x90\xde\x95\xdd\xa8\x02\xe8\x56\x8e\x32\xb5\xaf\xec\x1f\xb7\x2d\x23\x0c\x40\x1f\xe5\xe5\x1a\x8b\xa5\x46\x81\x4b\x93\xda\xba\xbb\x03\x30\x34\x4d\x97\x70\x88\xe9\xf9\x03\x30\xdc\xbc\x61\x80\xe1\x56\xb7\xd9\xa8\x62\xfd\x09\x6e\xa0\x6a\xff\xf9\x54\x95\xed\x69\x9e\x27\x4f\x46\x90\xb9\xc1\x73\x29\xa8\x6a\x15\x3b\x86\xdf\x43\xb1\x78\x93\xbf\x11\x5b\xa0\x64\x77\x42\x16\x9d\xc1\x58\x6d\xed\xe8\x29\x54\x2d\x6d\xcc\xde\xe6\x59\x9a\x55\x31\x6d\x8c\x81\x04\x7c\x36\x98\xe0\x4b\x63\x79\xb7\x17\xc6\x99\x84\x78\x8d\xb9\x8f\x6e\x69\xb9\xab\x89\x20\x5f\x9f\x3a\x3a\x11\xab\x53\x75\x8e\x20\xc8\x82\xad\x32\xde\xa2\x46\x4a\x7b\x6f\xff\x05\x13\x25\x07\xbf\xf5\x2e\x31\xab\xe6\xff\xae\xf6\x45\x69\x13\xa6\x74\x23\x4c\x44\x00\x02\x63\x2d\xd8\x74\x35\x1d\x57\xbd\xac\x31\xc6\x75\xeb\xd8\x65\xfb\x82\x1f\x5f\x51\x8f\x60\x43\x6e\xaf\x38\x4d\xc0\x63\x68\xb6\xdb\xd1\x64\xbc\xa1\x49\xac\xa1\xa5\x7d\x99\x3d\xec\x6f\xff\x9b\x4a\xa2\x46\x5f\xf7\xc0\xa0\x62\x18\x24\xac\x51\x14\xcd\x78\xfa\x8e\x91\x62\xa5\x9a\xf4\xee\x74\x87\x5f\x73\x4a\x81\xf5\x01\x74\x3d\xd0\xab\xc0\x26\xa2\x25\x24\x41\x6b\xe5\x54\x24\x5d\x50\xd1\xa7\x36\xfd\x1c\x0e\xd3\x30\xec\x8b\xb7\x52\xe3\xd6\xcf\x40\xbd\x6d\x78\x00\xf0\x75\xbc\x9c\xb3\xad\x29\xa9\xcd\xa4\xd8\xb4\x7b\xee\x4e\x89\x07\x9c\x34\x2a\x8c\x02\x41\x59\xc5\x40\x88\xba\x7b\xc3\x41\xe5\x4e\xaf\xdc\x94\xc6\x6b\x4b\x7c\x40\x39\x3e\xdc\x30\xf8\x87\x63\xbb\x47\x83\x5d\x15\xb0\x76\x11\x57\x70\x18\x71\x4a\x1a\x80\xaa\x00\x48\x3d\x7e\x62\x37\xc1\x29\x75\xbc\x31\x56\xf6\xf2\xb9\x55\xdb\x77\x17\xe1\x1e\x6b\x70\x5e\x69\xd3\xdc\x04\x9a\xff\xc0\xa1\xb7\xf6\x39\x3c\x10\xf7\xc2\x33\x16\x7b\x5f\xa2\x4f\x57\x3c\xf1\x86\xf6\xe8\xb6\xfa\xa6\xdd\xa5\x36\x74\x91\x01\x96\x3a\x69\x00\xce\x83\x26\x5d\x35\xc0\x86\x0b\xb6\xde\x1d\x99\xae\x8f\xb1\x0b\x52\x13\x49\x30\x38\x42\xcf\x10\xba\x6c\xee\xf1\xd8\x22\x9e\x3d\x40\x48\x46\xec\x20\x95\x22\x63\x2c\xec\xec\x8a\xe2\x3f\x27\x68\x28\x47\xe9\xcc\xa4\x76\xe2\xc2\xbd\xb7\xc9\xd1\x5d\xab\xd8\x80\x16\x5f\xf1\xee\x60\x3b\x0d\x1c\xa0\x4d\x27\x53\xb4\xc3\xc9\x01\xc8\x10\x07\x89\x57\x0d\xd2\x7a\xac\x25\x55\x93\x8e\xee\x1b\xb7\xf2\xcd\xd3\x9d\xab\x33\x68\x78\xb7\xbe\xdf\x6b\x5b\x56\xdb\xbf\x75\x85\xfe\xbe\x1d\x84\x81\x17\x7d\x9c\xd1\x82\x41\x43\x4f\x0f\x34\x81\xc5\xee\x94\x8c\x7d\xe9\xca\xd2\x7d\x50\x41\x3f\x80\xf8\xbd\x33\x63\x25\x8c\xd7\x78\xc2\xfe\x73\x97\xd6\x83\x8b\x18\x19\x98\xbb\xbf\x65\xdb\x25\x0c\xa2\x39\x61\x6f\xce\x99\x81\xdf\x5a\xd7\x00\x54\x3f\x75\xa1\x6a\xca\xb8\x59\x87\x71\xb3\x23\x11\x0b\x8e\xc1\xe7\x4f\x47\x9a\x16\x3e\x0f\x2d\xa3\x56\xf9\x16\x59\x6e\x8d\xc2\xe8\xb2\x61\x1c\xf7\xd6\x3e\xe4\xb6\x75\x4b\xf4\x6a\x65\x3b\x86\xc3\xd0\x05\xf1\x0c\x4e\x5c\xaa\x11\x32\x90\xb7\x07\x57\xbb\xe0\x73\xf7\x04\x38\xf2\xcd\x46\xcc\x49\x18\x7e\x12\x9f\x58\xde\x4e\x21\x4c\xc5\x21\x90\x45\x4f\xa8\x99\x2e\xdc\xca\x16\x72\xb7\xd8\xa9\xb4\x25\x6e\x75\x60\x58\xc5\x12\xc2\x0e\xe1\x78\x7f\xb0\xb2\x2d\xfe\x82\xcc\x80\x2a\xbc\x32\x8e\x8d\x47\x58\x43\x73\x99\x7b\xc8\x65\x43\x21\x55\xc3\x65\x1a\x6f\xb1\x68\x8b\x9d\x5b\xbc\x0e\xc1\x1a\x5d\x31\x72\xf4\x62\x33\xc3\xa9\x9f\xcd\x3f\x73\xea\x3f\xce\xa1\x69\xf3\xbc\xf7\xe9\x56\x24\x63\x0e\x94\xb5\x89\xb2\x7d\xf4\xa1\x25\xb4\xfc\x5c\x4c\xf0\x86\x38\xf4\x0e\x54\x52\x4c\xf8\x00\x71\x82\xa8\x44\xb7\x76\xb0\x94\xf4\xa8\x89\x37\x75\x4b\xbe\xd3\x3e\x76\xa1\x2e\x7a\x20\xad\x87\x9b\x52\x60\xc7\xd7\xf4\xa0\x6e\x0e\x58\x73\xa7\x8c\x24\xd3\xf4\xb5\x72\xae\x21\xe6\x41\xeb\xc5\xa2\xbf\x2b\x9c\xd2\x95\x23\x8f\x6d\x69\xf2\x33\x10\x9a\x5f\x6b\x54\x94\xde\xe5\x9e\x48\x8a\xe0\xa2\x26\x24\x6d\xa1\xa4\x8c\x4c\x81\x5d\xac\xf0\x1d\x14\x3e\x46\xdb\xce\xae\x7f\x81\x52\xa8\xb9\x46\x48\xf9\xd6\x44\x7f\x0d\xc6\xd7\x70\x65\x5a\x84\x29\xd5\xd8\x41\x97\xb6\xcf\x05\xc0\x2f\x37\x6e\xb1\x05\x61\x83\x53\xc6\x84\x8e\x2f\x6d\x09\x2c\x8a\xca\x78\xb9\xab\x6c\x71\x6c\x17\x03\xd6\x5a\xfe\xe7\xea\x9d\xa0\xd7\x12\xbe\x2f\x7c\xfe\xbc\xb0\x77\xd8\xeb\x6b\xe6\x54\x17\xdc\x80\x83\x7a\x35\x1c\x67\x38\x45\x5f\x1f\xeb\x16\x96\xb0\x89\xb1\x71\x17\xc1\x9b\xfd\xe5\x6b\x81\x02\x69\xab\x7b\xda\x3c\x1e\xdb\xb2\x13\xd2\x6b\xef\xee\x3f\x7c\xa8\xb2\xdb\xbf\x5a\x57\xd8\x23\xb3\xff\x79\x09\x89\xde\x36\xd7\x88\x15\x89\xba\xae\xac\x88\xf5\xdd\xa7\x26\x60\x6e\x04\x06\x8c\xd5\x21\x35\x46\x98\x39\x3f\xef\x53\x2c\x5d\x5a\x4d\x83\x0a\x8e\xd4\xb4\x31\x90\xae\x33\x1c\x64\x6a\x33\x10\xfe\x2c\x34\xb5\xdc\xbf\x44\x88\x57\x17\xf6\xd1\xa7\x83\xcc\x48\x78\xea\xfc\xb0\xde\x96\x4e\x3a\x34\x4e\x8f\x26\x2e\x27\xa0\x73\xd7\xfa\x0d\x6a\xc5\xf7\xb0\x97\x7a\x55\x30\x9e\x7a\x00\xc7\xcc\x66\x08\xa2\x45\x38\x56\xa2\xb6\xea\xc6\x24\x3c\x64\x4a\x75\xbf\xa1\x67\x80\x30\xb6\x7b\xe7\x1f\x88\x70\x25\x74\xd7\xab\x6a\x6e\x51\x1c\xea\x75\x5b\xe5\xb1\xa1\xec\x53\x65\x15\xf7\xef\x8f\xbc\x89\x08\x71\xc9\x93\x62\x12\xca\xf9\x1d\xff\xba\xa2\xb0\xfa\x4d\xf3\x1c\x31\x54\x2d\xca\x03\x11\x3f\xd3\xd6\xfb\xd2\xaf\xe1\x7f\xde\xa0\x42\x5a\xd0\x81\x67\x1f\xe2\xba\xe7\xe5\x5a\xe5\x87\x6d\xb1\x1e\x9b\x46\x14\x44\xc8\xae\x49\x7c\xd9\x76\x0e\x27\x16\x1a\x43\xd8\x26\xa8\xd9\x46\x0c\xfd\x86\xe4\x28\xb0\x20\xe3\x36\xd4\x55\xcf\x87\x4d\x5d\xcb\xbd\x81\xa5\xf4\xf2\xbb\x42\xb1\x4b\x12\xd0\xdb\x5e\x05\x8a\xd8\xfd\xf0\x7e\x26\x3c\x51\x9f\x1f\x94\x0a\xab\x46\x15\xc1\x17\x84\xd2\x89\x0b\xa7\xbe\x89\xd0\x43\xe1\x56\x01\xfe\xe1\xe7\x81\x77\x79\x03\x49\xd4\xd5\x1f\x79\x2b\x77\x06\x33\xe1\xd0\xaa\x3d\x46\xea\xe3\x02\x3d\xd1\x5f\xb1\x41\x78\xa0\x9d\xe5\x0d\x4c\xa1\x32\xf7\xb6\x84\x43\x2f\xfc\x7f\x41\xe1\xad\xff\x1b\x0a\x9f\x06\x77\x95\xf3\xc1\xbe\x02\xd7\xcd\x8d\xb9\x2e\x04\xae\x69\xff\xf5\x2f\x48\x1b\xc6\xce\x16\xaa\x97\x4e\xd8\x98\xc9\x8e\x05\x73\x0a\x06\xd4\x7f\x01\xfe\xc0\xf2\xe6\x4d\xa8\xcf\x66\xc5\x10\x91\x80\x8f\x15\x2e\x40\x03\x20\xd8\x2b\x12\x6c\x17\x1f\x11\xf1\x46\x23\x8e\x2b\xba\x78\x66\x5b\xde\x4e\x21\x64\xdb\x03\xcd\xe5\x18\x19\x9e\x98\xc8\x38\x23\x05\x7d\xcd\xde\x78\x3a\xb2\x0f\x96\x6c\x89\xd2\xa7\x73\xc4\x88\x78\x08\x95\xe4\xd5\xd4\x1b\x56\x6f\xaf\xc8\xcc\x4b\x48\xc6\x88\xa1\xc3\xd6\x1b\x49\x87\xea\x8d\x29\x9c\x48\x6f\x50\x93\x95\x46\x40\x17\x99\x57\xb1\xe0\xcf\xdc\xe2\x2c\xee\x94\x67\x81\x95\xa8\xde\x31\xe7\xce\x7e\xfe\x6a\x35\xa8\xdf\xd4\x84\x1a\x86\x1a\x27\x1d\x46\x03\xcc\x34\xbd\x73\x9c\x2b\x06\x15\xb4\x84\x65\xb5\xf7\xde\xe7\xae\x88\xf5\x99\x8f\x5c\xdd\x0e\x7e\xef\x95\x0d\xfa\x1b\x6a\x2b\x51\x80\xf2\xd9\x24\xbd\x80\xd5\xe3\x9b\x46\x15\x55\xc6\x43\xa8\x78\xde\x5f\x11\xa6\x9d\xde\x5a\xd3\xa4\x0e\xdf\x61\xba\xac\x1d\xc1\x43\xbc\x75\xf6\x7e\x5d\xe1\x10\xca\x23\xd2\x29\x26\x95\x48\x9f\x43\xd5\x1a\x95\xe0\x1f\x08\xcc\x7d\xe0\xf9\xb5\x4d\x29\xf4\xc5\xe3\x05\x67\x0d\xc8\x95\xcf\xc6\x9e\xcc\xd4\xdc\x05\x54\x2a\x81\x36\xf5\x84\x4c\x4c\x9f\xf9\x48\x4a\xd7\xee\xda\x17\x5e\xd0\x2e\x58\xbd\x51\x00\x51\x5b\x3a\x1d\x2a\xca\x90\x51\x96\x67\x99\xef\xa5\xf7\x8f\x60\x15\x8e\xd4\x60\x19\x99\x10\x36\x29\xf8\x1d\x3e\x43\x1b\x54\xa8\x25\x29\x44\x39\xfd\xa0\xe8\xa3\x01\x21\x74\xd5\x40\x78\x54\x76\x94\xdb\xfd\x3d\x44\xbd\x19\xba\x67\xf6\x9c\x64\x99\xd3\xf5\x12\x8d\x7c\xa5\xbe\xd8\x88\x61\xb1\xc3\x95\xd6\x34\x3f\x22\x36\x10\x0b\xeb\xf6\xbf\x87\x3c\x89\x07\xb9\x51\xb9\xa1\x05\xf7\x8b\xf0\x88\xbf\x63\x54\xe5\x5b\x2e\xac\xc8\x03\xdf\xd8\xdf\xd0\xf6\xfc\xfc\x93\x40\xf1\x98\x8d\x6b\x41\x3d\x99\xe4\xea\x07\x25\xcc\x1a\xa7\xf0\xc8\x01\x18\x84\x85\x5c\xaa\xd6\x68\x49\xf3\x7d\x45\xff\x64\xc1\xb7\x2b\xc2\xfb\x1a\x40\x73\x6f\xe4\x4d\xe5\x2c\xc4\xa0\x6f\x35\xa4\x43\x18\xd2\x52\x0e\x36\x4d\x23\xf2\x5c\x21\x08\x94\x88\x7c\x56\x32\x27\xc8\x82\xf5\x4f\x69\xcd\x89\x6c\x61\x49\x02\xd3\xee\x3d\x86\x36\x6b\x1e\xe4\xb6\x7d\x09\x09\x34\x40\x63\x1f\x1e\xbc\x48\x11\x7a\x94\x12\x59\x38\x83\x55\x97\x20\xe7\x21\x99\x71\xd7\xda\xa8\xba\xe8\x39\xeb\xa5\xee\x19\x7b\x57\xbf\x74\x10\x83\x5e\xd8\xa7\xdc\x20\x9d\x95\x88\x99\xef\xa9\x7b\xa2\x8a\x56\x39\xe6\x58\x3a\x77\xea\x48\xc9\xd6\xea\x8e\x53\x2c\x2d\xd0\xd3\x3a\x4e\x49\x61\x87\xe0\xde\xa4\xb4\xa1\x4d\xb9\xd6\x1b\xec\xa8\xdf\xa0\xc4\x85\x88\x10\x71\xe0\x45\x02\x5d\x20\xa0\x3d\xf8\xc4\x39\x37\x20\x85\x73\x3b\x25\x0f\x1f\x31\xcc\x20\x30\xfd\x74\xc8\x2c\x57\xf4\x6c\xaf\x71\x76\x03\x90\x13\x99\xdb\x9b\x17\xe5\x14\x72\x40\x0e\x63\xee\xff\xf7\x05\x76\xb0\xb4\x6f\x18\xbb\xa3\x63\x90\xf8\xf2\x67\x78\x85\x36\x98\x4d\x85\xb7\x2f\xf0\x1e\xa3\xb7\x2d\x6c\xa6\x5c\x99\x64\x84\x23\xad\x19\xcd\xeb\xc1\xaf\xee\xe2\xd3\x88\xfa\x7e\x4e\x5d\xb9\x28\xc2\x23\x5e\x51\xf4\x12\xc9\xe2\x6e\xbd\x51\x46\xfe\x2d\x4c\x0d\xd4\x3f\x01\x37\x6d\xec\xa8\x67\x40\x7d\x30\x85\x3e\xbf\x4f\xa3\xe3\x65\x0e\x0c\x23\x2e\xf8\x82\xac\xda\x9b\x7d\xe9\x14\x02\x44\xd8\xee\xf8\xc8\x06\x4e\x99\x87\x90\xa0\x0c\x64\x9f\x20\x00\x02\xc2\x8c\x7e\x23\x3f\x82\x44\xef\x49\x7f\x66\x65\xd3\x33\xa7\x1b\x00\xa8\x05\x9f\x76\x1d\x64\xd4\xbf\x04\x95\x6e\xe8\xb1\xec\xc1\xdb\x45\xe9\x0a\xf1\x1b\x15\xcf\xcb\xc3\xe7\xea\x98\x9e\x79\x76\xb7\xfe\x0f\xb4\x77\x05\x9d\x3d\x24\x49\x74\xcd\xae\x0c\xc6\xb1\x1d\x77\x4f\x90\x3f\xec\xd5\x9d\x33\xda\x5e\x17\xd0\xba\xf7\x06\xd6\xc2\x96\x0b\x0f\x74\xb4\x32\xe4\xb4\xb4\x8b\x6a\x15\x2c\x14\x9e\x88\x1d\xdd\xde\xb1\x3e\xe8\xac\x51\xca\x85\x15\xb4\x68\x55\x24\x67\x95\x0c\xba\xc9\xdf\xdd\x1d\x88\x4b\x99\xf4\xcc\xe4\x50\xca\xc0\xa3\xaa\x8c\x64\xb5\x4d\xf1\x2c\x82\x8e\x70\x41\x06\x6e\xc5\x9a\x27\x13\x93\xac\x76\xf7\xd6\xf4\x8e\x27\xde\x7e\x16\xb1\x94\x43\x44\xc8\xf5\xf3\xc3\x03\x44\xc7\x8c\x16\xea\x1c\x42\xf1\x95\x01\x30\x06\x5a\xfd\x0b\x5a\x26\x24\x07\x36\x7a\x72\x28\x6b\x62\xef\xcf\xa0\xf1\x36\x20\x68\xf6\x27\x12\x64\x31\x2d\xb6\x81\x15\xd4\x02\x43\x07\x92\x20\xbc\xf5\xad\xc2\xba\xf9\xa7\x40\x81\xde\xdd\xca\xfd\x21\x52\x90\x15\x26\xfa\xbe\x51\x4c\x50\xf1\xce\xaf\xec\x32\x86\xd0\xff\x12\x43\xf0\xbe\xfb\x29\xee\x7f\x8e\x21\x78\xdf\x62\x08\xee\x4f\x31\x04\x8f\x42\x80\xf6\x0f\x8d\x62\x85\xf8\x9a\xff\x5a\x91\x1d\xd7\xb6\xe9\x15\x7b\x00\x05\x4b\x73\x55\x6e\x91\x60\x7a\xb8\x6a\xec\xf7\xd8\xbd\x64\xee\xee\xca\xdb\xcf\x6a\x45\x17\xd5\x84\x9a\xc1\x0d\xb2\x72\x5b\xe7\x0a\x02\xcb\x8c\x7b\x62\x60\xdc\xaf\x22\x4f\x6c\x6d\xef\x86\x58\x99\x51\x59\x7c\x31\x0f\x3c\x14\x8c\xc9\x02\x47\xe8\x1f\xa6\xcd\x2f\x3a\x17\xf6\x01\x09\x83\x8a\x04\xb9\x34\x6e\x4a\x19\xd6\xf5\xc4\xfa\xa3\x94\x9f\x0a\x71\x68\xf1\xbe\xa0\xee\x3e\x67\x3a\xaa\x48\xb3\xb5\x84\xc8\xcf\x10\x7b\x6c\xae\x9a\x55\xbd\x9f\xb8\x46\x4b\x79\x22\xa2\x24\x2a\xe2\x30\x60\xa2\x8e\x17\x36\x74\x81\xd8\x67\x73\xec\xf8\xc6\x98\x0c\xe3\x26\x90\x28\x34\xee\xe6\xcc\x6a\xf5\xbd\x2f\xc3\x25\x7d\xa9\x90\x80\x18\xae\x9b\x45\x5f\xbf\x10\x09\x6e\x2a\xa2\xc4\x44\xce\x25\xc6\xae\xbc\x6f\x46\x47\x40\xed\xe3\x49\xf6\x3e\x25\x57\x99\x2c\x44\xf7\x9b\x79\xa2\x19\x13\x62\xcb\x31\x49\xcc\xbd\x88\x60\xa0\xb1\xc7\xc9\xbb\x97\x07\xb6\xbc\xa6\xad\x08\xca\xd1\x30\xa2\x31\x3a\x2f\x10\x1c\x7a\x4c\x11\x4d\x28\x23\x79\x82\x6b\x31\xad\xe7\x36\xc9\xc4\x5d\x06\xe2\x33\xa8\x46\x51\x11\x66\xb5\x68\x0c\x44\xa9\xc9\xe7\x00\x58\x6d\xae\x30\x47\x12\x55\x5d\xcb\x6c\x89\x6a\x96\x65\xa8\x63\x51\xa6\x1e\x14\xb3\xc0\x82\xf6\x7d\xfb\x8d\x72\x93\x25\xa3\xed\x14\x55\x29\x37\x60\x78\xa9\x19\xb5\x3a\x53\x66\x96\xcd\xb0\xdc\x27\x0d\xd2\xd9\xc6\x51\x30\x20\x9a\x43\xa2\x46\x6b\x46\x6e\x95\x91\x90\xb2\x4e\x4a\x07\x44\x43\xd0\x95\x4c\x9f\xe3\xa7\x88\x62\x77\x67\x90\x31\xed\x25\x53\x6a\xf9\x2d\x9d\x46\x31\x35\xd4\x5a\xce\xd3\x92\xc8\xf3\xad\xc5\xcf\x83\x65\x83\x32\xa8\x27\x05\x0b\x34\xc8\xb4\xd0\x72\x60\x1e\x0c\x89\x80\xb7\x86\x59\x5b\xf8\xb9\x2e\x04\x51\x24\x84\xaf\xd9\x83\x98\x24\x03\x26\xd7\x34\x53\x6f\xca\xbc\x83\x15\xd6\x55\xe1\xa0\x8a\x2a\xb8\xba\x85\x47\x7d\x79\x2b\x52\x68\xe7\xac\x28\x85\x80\x9b\x37\x91\x6d\x6e\x6a\xe3\x34\x9a\xfc\xcd\x69\xf6\x25\x7d\x0c\x6d\x99\xda\xa7\x19\xdc\xab\xee\x94\xba\xbc\xa8\xba\x2d\x02\xb1\x27\xce\x07\xd9\x27\x65\x80\x3e\xe7\x1e\x18\x56\xe0\x21\xf4\x66\x6f\xb9\x3f\xd2\xc7\x9c\xae\xfe\xf5\x2d\x78\xc2\xcd\x58\x8f\x80\x29\xfb\x33\xb7\x98\x4c\x74\x82\xc9\x00\xc2\xb2\x10\x04\x33\x77\xe0\x22\x44\x19\x58\xac\xf3\x74\xeb\x22\x69\x1c\xff\x93\x60\x96\xa1\x6f\x20\xda\xd7\xb2\xf4\xd3\x3b\x63\x51\xcd\x92\x22\x67\x77\x4b\x23\x98\xc6\xaa\x49\x26\x95\xe3\x54\xcd\xc1\xc0\x85\xe1\x0b\x9c\x4c\xdd\x2e\x29\x12\xa0\x05\x2d\xcc\xbd\x81\x81\xb8\xb3\xbf\xd4\xcb\x3c\x4c\x9b\x7b\x71\x19\x25\x4d\x23\x0d\x85\x27\xe7\xcd\x6f\x8a\x94\xc9\xe5\x42\xc8\x8b\xdc\x4a\x4d\x3e\x16\x14\xda\x5a\x80\xb5\x7a\x29\xbe\xf4\xae\x11\x25\x1f\xbe\xb9\x5f\x1a\xa1\x54\x69\xcc\x33\xe2\x2b\x13\xfa\x30\xb6\x91\x12\x68\xfe\x3c\x5e\x74\x54\x39\x5e\x22\x17\xb7\x4c\x37\xb9\x6f\x77\xf8\x10\xa8\x0d\x0f\x56\x63\xc1\x69\xeb\xf4\x87\xc6\xc0\xa9\x9e\x65\x62\xcc\x3e\xed\xf1\x5c\xb9\xeb\xe0\x2b\xf0\xde\x05\x49\xee\x27\x7d\x9d\x58\x20\xfc\xaa\x68\x0a\x1a\xb1\x2d\x96\xb2\xfd\x79\xf7\xa3\x64\x59\x7b\x29\xcb\xd3\x2f\xb1\xdd\xd8\xd4\x90\x80\xaf\x58\x67\x53\x83\x98\x09\xcf\x18\x13\xa9\x73\x9a\xb3\x3b\x34\xc2\x0a\x0e\x35\x15\x68\xd3\x7d\x47\xcd\xf3\x01\x0a\x1d\xb0\xc4\x0b\x65\x32\xa8\x7b\xd4\x9e\x2d\x02\x93\xd0\x6c\x54\x25\x74\x52\x82\x1a\xb3\x6e\xc8\x50\x81\xda\x2e\x10\x02\x68\xe2\xd0\x50\xa4\xda\x7e\xa7\x91\xee\x63\xef\x0d\x2a\x26\x31\xaa\x38\x83\xe6\xbb\x48\x32\xd5\x67\xb7\x15\x66\xe3\x58\x33\xca\x83\x5f\x2c\x2b\xd7\x69\x8c\x38\x95\xa4\xcf\x07\x02\x70\xa9\x7d\x45\xf1\x43\x8f\x4e\xaa\xa3\x65\x5b\xa7\xf0\x99\x3f\xf1\xf1\x40\x86\x3f\xdd\x20\xdd\x24\x3e\x9d\x63\xb1\xfe\xd9\x7d\x0b\xab\x31\x18\x1c\xda\x64\x00\xc2\x95\xcb\x22\x22\x29\x57\xee\x94\xe6\xfe\x07\x84\x67\xe4\x13\xb1\x0a\x2b\x78\x48\x9e\x0b\x83\x0a\xa5\xba\x2f\x58\x61\x12\xfe\x71\x05\xa9\x1b\x52\x23\x4e\x2c\x47\x83\xd7\xdd\x35\x38\x97\x58\x26\x6c\x4a\xd8\x34\xe1\x80\x30\x4e\x10\x6e\x03\xee\x2d\xb6\xc0\xc6\x1c\x50\x0b\xbb\xe7\xb0\xea\xfd\x6a\x4d\xd1\xa3\x9e\x4f\x8a\x47\x42\xeb\x9e\x57\x1d\x82\xb6\x49\x89\xbb\x94\xc1\x5e\x69\xfd\x36\x9c\x89\x89\x30\xf1\xec\x75\x52\x0e\x03\x1b\xf6\x19\x24\x4d\xff\xf3\xee\xbb\xf4\x83\xd1\xed\x8b\x8c\xbe\x2c\x6d\x38\x53\x3d\xf0\x46\xa1\x32\x6d\xfc\xa9\x58\x23\x61\xa8\x9b\x49\x83\x20\x07\x46\xbc\x77\x9f\xc7\x6b\x33\x5a\x21\xd5\xb4\xb4\x06\x4c\x09\x8e\x0f\x32\x6f\x16\x3c\xfa\x23\x74\xb5\x31\x21\xf6\xac\xff\x54\xa9\xb5\x4e\xec\x4c\xe8\xdb\x05\xba\x1c\xeb\x8b\x06\xd7\x06\xcf\x1d\x8d\x31\x77\x0d\x25\xd6\xcb\x41\x92\xee\x46\x28\x54\xa4\x9c\xde\xf0\xef\x2d\xdb\xde\x45\x9d\x58\x13\x78\xcd\xfe\x8e\x6d\x4b\x97\x56\x27\x55\x8c\xbc\x26\x80\x9d\x79\xd7\xbc\x35\x10\xc3\x4a\x01\xea\x81\xd5\xb0\x4a\xc3\x6c\x6c\xd7\x38\xc7\xe9\x2d\x13\x7e\xe6\xf5\xec\x16\x56\xb5\x9a\x87\x46\x56\x0c\x24\xb3\x41\xd3\xe4\x80\x8d\x37\xf6\x92\xc6\x10\x03\x1b\x1c\x91\xd8\xc3\xb2\xad\x35\x27\x9c\x60\xd8\x79\x63\x50\xe6\x07\xbc\xb3\x9d\x02\x24\x86\x9f\x2e\xad\x58\x1c\x63\x4d\xae\x1d\xd3\x3d\x1e\xd6\xc5\xae\xd6\x36\x55\x06\xd3\xb3\x58\x9a\x7e\xc5\x70\x7a\xff\x5d\xac\xd4\xff\x4e\xf0\x58\x11\xb3\x40\x3b\x06\x58\xde\xa4\x54\x5f\xf5\xe5\x79\x62\x67\xdf\xa7\x9d\xd9\xf9\x1d\xad\xd4\x90\x7e\x5e\x58\x79\x6b\x55\xdf\xb4\x7f\xb2\xc2\xf7\xad\xb7\x7b\x8a\x4b\x97\x17\x2b\xdc\xcf\xca\x8d\x9e\xc4\x66\x9c\xab\xbd\x71\x20\xf7\x55\x29\x74\x2d\x18\x89\x95\xf2\xbe\x8c\x01\x84\x0b\x77\xcf\xf6\xc6\x00\xdb\xd2\xa7\xbc\xf6\x0d\x5d\xbb\xc6\x7e\x08\x53\x5a\xf8\x26\x80\x03\xeb\x9c\x2c\xd2\x3e\xa2\x65\x01\x79\xa6\x5e\xd7\x18\xd7\xdf\x32\x49\x6d\x82\x19\x30\x9f\x73\x7b\x0a\x8a\xa4\x55\xf2\x94\x98\x17\x2d\xd7\xc8\x10\x73\x5a\x47\x4e\x02\xd1\x33\xcc\x59\x27\x3a\x0b\x89\xfd\x8c\x2e\x08\xb2\x3b\xea\x44\x15\x83\x58\xfd\x47\x07\x26\x3c\x6b\x50\xd4\x32\x31\x26\x2d\x57\xb2\xb2\x0b\x3b\xc7\x09\xde\x99\xad\x39\xc1\xd9\xc3\x23\x56\x11\x9e\xf8\xb8\xec\x62\x97\xaf\xc2\x42\xa8\xd6\xf3\x47\x97\xf2\x45\xf3\xfe\xee\x4b\x97\xcf\x74\xbf\x9a\xda\x97\x54\x07\x57\xb0\x3e\x5a\x9a\xc2\x2b\x47\x31\xc0\x9a\x15\x8d\xe7\x4d\x44\xb6\xdd\x4f\x53\x25\xa4\xf1\xfa\x7b\x79\xf7\x4f\x5f\x20\x55\xac\x21\x82\x90\x4c\x77\x82\xf5\x7b\xef\xa0\x04\xbf\x76\xb7\xaf\xb4\x94\x6c\x31\xf2\x27\xa8\xbb\xf0\xe7\x77\xc5\xfc\x52\x06\x04\x2f\xe0\x96\xf4\x81\x40\xbb\x42\x08\x7b\x4e\x5e\xf0\x03\x42\x2c\xd8\x57\x3a\xb1\x39\xa4\xe1\xab\x3d\xce\x13\x55\x16\x74\xd3\x38\xc7\xd5\x0b\xbf\x4d\x06\x0c\x8c\x04\x15\xd1\x10\x7c\x95\x98\x09\x33\x92\x57\x77\xff\x50\xde\xa6\xa6\xbc\xb9\xc3\x8a\xda\xd6\x98\x29\x9e\x39\x6d\xb7\x45\x50\xac\xa2\xa9\x87\x92\x29\x1c\xfb\x06\x3a\x9f\xbc\x09\x76\x8c\x2a\x78\x52\x13\x8b\x2c\x5f\x49\x67\x01\x0c\x8c\xa1\x36\x53\xbe\x8e\x47\x15\x89\x62\x1d\xdf\x2b\x09\xac\xf5\x89\x82\xc4\x7b\xb2\x50\x71\xf1\xe7\xbe\xe8\x92\xca\xb4\x8c\x05\x78\xd7\x77\xe5\x78\xab\x4d\x4b\x59\xde\x02\x09\x39\x96\xaf\x1e\xe3\x24\x98\xc6\x43\x48\x9b\x5b\x34\x7d\x12\x09\x90\x9b\x48\xb4\x6f\x12\xc4\x2c\x3a\x25\x2f\x87\x2b\xd0\xf9\x08\xa0\x61\x9d\x6c\x6f\xe2\x52\x88\x89\x96\x52\x27\x36\xcd\xb4\x70\xd1\x2c\xb4\x92\x28\xd0\x0d\x1d\x7a\x87\x2e\x8b\x32\x2f\xa2\x95\x52\xb1\x40\xda\xcc\xf9\x47\x6f\xa8\xf9\xe4\x55\x1c\x2c\x58\x68\xfd\x15\x37\xc7\xdc\x8f\xbb\xa6\x73\xb7\x94\x43\xc9\x5d\x2f\x71\x7d\x68\x01\xd2\x31\x80\x06\x52\xbc\x1c\x16\xbc\x41\xbc\x54\x98\x8f\x13\x1b\x6f\xf3\xae\x5c\xd0\x7c\x5c\x8e\xb1\xa2\x26\xc4\xa6\x5a\xc9\x42\x21\xc1\xf0\x8e\x9d\x70\xa6\xc4\x96\x61\xef\xf4\x22\xcd\x37\xad\x3a\xa2\x83\xaf\x97\xc0\x51\xfb\xea\x9e\x5e\xc9\x3d\x38\x86\x16\x28\xef\xc1\xf9\x66\x47\x22\x12\xed\xc2\xaa\x11\x88\x90\x10\xa1\x53\xdb\x7d\x06\x67\x69\x4b\x3c\x82\x27\xc4\x15\xf2\x6b\x6e\xb9\x62\x17\xf9\x85\xd0\x2f\x76\x84\x3f\xc2\x23\xe6\x72\xc1\xda\xdc\x7d\x83\x04\x7d\xb7\x01\xf0\x82\x92\xd6\x60\xb1\x99\x3d\x07\x7c\x66\xf6\x0c\xef\x89\xc4\x7c\x91\xd2\x4f\x30\x2c\x82\x97\xa1\x3e\x01\x0e\x8a\xef\xa4\x34\xcc\x7e\x33\xfa\x11\x7c\xde\x17\x53\xba\x26\xdb\x17\x65\x10\xb0\x75\xfb\x5d\x78\x5b\xdd\x82\x24\xe2\x0c\x93\xbd\xd2\x9f\x87\x3a\xec\x22\x36\xa6\x3a\x3f\x0d\xbb\x14\x6e\xf1\x1a\xac\x19\x41\x7c\xf6\x9e\x89\x4b\x77\x8d\xc0\x57\x84\xbb\x94\xed\x2c\xa4\x89\x9a\x80\x6b\xe2\x69\x88\x8f\xb5\xe4\x69\x6b\xc7\x57\x52\x92\x3e\x8c\xe8\x48\x6c\x36\x97\xf7\x7c\x50\x75\x09\xe5\xa3\xa8\x9c\x5b\x03\x9a\x09\x78\xc1\xcd\x1a\x37\xa3\x04\x5b\xc9\xc2\xbe\x64\x18\x9b\xd6\x96\x16\xed\x5f\xac\x7e\x46\x25\x20\xc9\x22\xe5\x08\x2a\xdc\x0e\xfd\x57\x22\x4c\xac\x8e\x57\xde\xf3\x14\x5b\x5d\x75\x1a\xa8\x84\x93\xe6\xc6\x73\xf9\x65\xc7\x29\x9b\x85\x7d\x58\xc5\xdb\x45\x19\xc6\x52\xcc\x14\xa4\xdb\x09\xad\xcc\xb9\x26\xf0\x1e\xc9\x92\x0c\x43\xda\xf7\xf8\x02\xc9\x44\xed\x03\xce\x6c\xb9\xc4\x87\xfb\xae\x39\x0b\x89\xe3\x0e\x87\xb3\x26\xd1\xbe\x37\x7b\xd2\x52\xf6\x09\xc7\xdf\xc9\xf1\x3c\x39\x7e\xe3\xef\x8f\xdf\x39\xbd\x93\xa8\xc3\x6d\x8b\x24\x8c\xb9\x57\x2c\x71\x8f\x23\x09\x4f\xbe\x62\xef\x1e\x2b\xd4\xaa\x30\xa1\xe0\x83\x2c\xbc\xe3\x5e\xa4\xf9\x89\x38\x52\xe6\xf4\xe2\x1e\x49\xd0\x63\xda\x9c\x93\x22\x91\xa5\x44\x62\xce\xa3\x6f\x88\x47\x28\x05\xda\xcf\xb7\xc5\xa3\xda\x3a\x70\x8e\x5a\x29\xe4\x48\xf8\x66\xea\x9b\x64\x10\x4f\x60\xc6\xfb\x52\xdb\x00\xb0\x0d\x25\x22\x33\xa2\x99\x26\x47\x26\xf3\x42\x8b\xb7\x50\x9e\x7b\x1f\x1c\x79\x70\xdd\xc3\x2a\xf1\x1e\x79\x7b\xf4\xba\x40\xaf\x1b\x4e\x84\x94\xbd\xce\xc2\xf8\x68\xad\xc3\xb9\x3e\xff\xe3\x5c\x7d\xcc\xe5\x7c\x9f\x2b\xa0\x0c\xc5\x4d\x48\xdf\x20\x67\x2f\xa3\x14\x3d\x64\x1f\x16\x29\xdc\x20\xbf\x73\x28\xc7\x5c\xdc\xcf\x68\x59\x8f\x3e\xb3\x34\xa2\x94\xd4\xcb\xa1\x2c\xd2\xc4\xf4\x48\x5a\x42\x1c\x74\xce\xcb\x97\x7b\xb9\xa4\x69\x64\xc2\xb4\x74\x90\x52\x16\xbc\x89\xf4\x73\x6f\x69\xae\xbd\xe8\x4d\x25\xcd\x39\x25\x3d\xef\x02\x46\x27\x4d\x8a\x91\xc2\x99\x96\x44\xba\x74\x8f\x69\xd3\x60\xeb\xc8\xb9\x32\x64\xde\xae\xc1\x00\x38\x82\x57\x94\xaa\xd3\xb0\x68\x94\xe3\x9e\xc9\x65\xa5\x0f\xc9\x05\x28\x8b\x21\x4e\xda\xfd\x4c\x9e\xae\xda\x74\xbc\xda\x7a\xd0\x10\xf6\xf0\x8b\x85\xd3\xf1\xbc\x01\xa3\x82\x41\x79\x1d\xc5\xdc\x68\x05\x59\x92\x0a\x21\x1b\x43\x50\x54\xbb\x2d\xa6\xfa\xdc\xa5\xcd\xd3\x82\x26\xc7\xa5\x4e\x05\x91\x9b\xda\x85\x31\x32\xd0\x76\x0d\x68\xde\x8f\x58\x9f\x19\x20\xf3\xc0\x86\x22\x08\x16\x14\xec\x2e\x60\x3e\x7f\x60\x3d\xa9\x6c\xe4\xe2\x01\x7f\x84\xe3\x55\xdd\xa5\xd7\xd9\xc1\x61\xb7\xdc\x0c\x80\xb5\x1f\xa5\x89\xe1\x9c\x57\x80\xdb\x43\x13\xab\x2b\x0b\x99\xe9\xae\xb4\x33\xd4\x49\x9c\x01\x0b\xa9\xfd\x76\x6f\x8e\xdd\xd6\xfc\xeb\x32\x96\x14\xc3\x09\xe6\xcd\xe0\xb1\x7d\xbc\x50\x92\x22\xe2\x9d\xa4\xf6\xcc\x66\x7d\x06\xb5\x87\xcf\x3a\x54\x73\x59\x6b\xff\x1d\x2a\x92\x66\xfa\xb3\xcc\x66\x79\x75\xdb\x94\x03\xdd\x50\xfc\xa1\xd8\xca\x44\xd9\x81\xa7\x1e\x83\x80\x32\xcc\x64\x61\x84\x86\x60\x64\xa6\x68\xfa\xfd\x06\xe3\x76\x66\xa7\x74\x40\x51\x38\xe0\x99\x9b\x67\x35\x18\x0d\xa7\xdf\x4f\xa4\x31\x72\x57\x9c\x59\x0c\x49\xd3\xc5\xb7\x17\x0a\x02\x43\x5b\x42\x8b\xb5\x6a\xd5\xff\x25\x16\x8c\x18\x20\xeb\x32\x7a\x2f\xa9\x73\x09\x04\x14\x75\xa3\x82\x09\xed\x02\x11\x11\x4b\x4f\x84\x4d\x4b\xbb\xbc\xac\xe0\xe2\xd5\x25\x2b\xa8\xe3\xda\x6f\x63\x23\x6b\x4f\xdd\x07\x74\xa1\x52\x4f\x73\xea\x1b\x33\x6a\x08\xfc\x32\xea\xb4\x64\xc5\x13\x0c\xba\x02\x79\x21\x06\x05\xa2\xc2\x69\xa1\xbb\xac\x38\xa8\xd1\xa6\x41\x35\x88\x77\x06\x45\x12\xd5\x41\x6b\x95\x2b\x56\x5a\x83\xcd\x19\x72\x38\x05\xc3\xc7\x46\x32\x20\xf7\xcf\x73\x68\xbf\xb1\x92\x28\x5b\xfb\xec\xe3\x05\x18\xd0\xa4\x7a\x28\x69\x52\xdd\x6b\x6a\x93\x90\xf9\x0c\xb0\x18\xca\x8e\x34\xd7\x4f\x78\x01\xc6\xac\xf1\x29\x7f\xbc\xad\x7d\xcd\x0b\x09\x99\xb9\xe1\xd2\x43\xd5\x41\x68\x3d\x5b\x6f\xc6\x54\xfa\xbe\xb2\xbb\x5f\x19\xd0\x7d\x28\xe9\x7c\xbf\x72\x83\x15\x7b\x72\xf9\x63\xc9\x4d\x50\x09\x92\xce\x7b\x63\x93\x46\xd0\x04\xe8\x6d\xd5\xfc\xfb\xc6\x10\xb3\xf0\x3a\x66\x73\x53\x7b\x1f\x2b\x7f\xa5\xcf\x21\x9d\xbc\x5d\xd8\xf2\x61\x94\x33\xaa\x0f\x79\xa0\x69\xfd\xde\xbc\x08\xe1\xac\x02\x06\x51\x02\x13\x48\xe3\x78\x31\x62\x32\x75\x4d\x89\xf2\x8e\xf4\xca\x70\x67\x57\xdf\xf8\x73\x0d\xa5\xcf\x0a\xa1\x1a\xae\x4c\x28\x8f\x55\x62\x42\xa7\x22\x63\x14\xb3\x9a\xdd\x24\x32\x87\x14\x58\x89\x5c\xbd\xb6\xcd\xef\x66\xb4\x4a\x49\xde\xaf\x3d\x90\x41\x40\x75\xa9\x2a\x39\x23\xb7\x37\xac\x44\x9b\x00\x1b\x67\x88\x6f\x6e\x6d\x5e\x07\xee\x9d\x80\x96\xde\x70\xa1\xd3\x5c\xbd\x23\x6b\x46\xe3\x06\x07\xd8\xff\x74\x60\xb1\xea\x9d\x25\xa4\xf1\x90\x85\x30\x09\xdd\x1a\xbd\x85\xd3\x07\x7a\xb7\xac\xb1\xa0\x53\xde\xe3\x15\xba\x16\x57\x1f\x4e\x69\xdf\x26\x8d\x42\xbf\xba\x2b\x97\xbe\x45\x0d\x84\xd7\x5a\x60\xb1\x2e\x4c\x57\x09\x20\x08\x9e\x30\xaf\x09\x9b\xbb\x34\xdc\x88\xa8\xe0\xfc\xde\x18\xf8\x72\x8c\x4b\x2c\x1f\xf1\x9e\xa8\xaf\x09\x19\x8e\xdb\x10\x21\x5c\x94\xd9\x83\x32\xba\x57\x0f\xd0\x77\x65\x9a\x3a\xa9\x5c\x90\xa2\xef\x79\xc1\x24\xe1\xb6\x5d\x5e\x73\xa6\xa7\x68\x64\x19\xd4\x6a\x98\x70\x14\xd8\x1e\x5e\x6a\xc8\xda\x55\x55\xb3\x3f\xb0\x15\xe3\xc9\xce\x99\x43\x32\x69\x02\x0e\x2f\xee\x81\x5e\xe0\x92\xc0\xb9\xcd\xda\xc4\x00\x29\x4f\x6f\xc4\xfa\x36\xb1\x44\xe7\x73\xfc\x52\x49\xcb\xcf\xa0\xd4\x7a\x8c\x8f\x43\x55\xbd\x23\xa4\xf4\x70\xa3\x78\x4f\x18\xc6\xde\xc2\xdc\xa0\x2d\xa2\x9b\x4f\xd5\x2e\x96\xe0\xf4\x84\xfe\xaf\x1a\x19\x4b\x08\x12\x85\x04\x2e\x69\x36\x3a\xde\x28\xb1\x1b\x03\x1a\x2c\x47\xb6\x5c\xe5\x5f\x7b\xb4\x93\x4e\x1b\x9a\x6d\x6a\xe6\xaa\x7c\xdf\x1a\x3c\xb3\xaa\x05\x15\x26\xeb\x11\x7f\x73\xe4\x4c\xac\x50\x09\xf5\x88\x8f\xff\x80\x64\x23\x84\x50\xca\x1f\xd6\xb0\x3f\xc0\x4b\x51\x0d\xaa\xb0\x77\x4a\x86\xdd\x45\x5f\x04\x99\x4a\x9d\x13\x26\x6c\xf4\x88\x84\x61\x88\xa8\x78\x97\xa3\x2c\xed\x73\xc0\xf9\xc6\x39\x61\x7d\xcb\x59\x84\x4c\x6a\x9d\x9e\xbb\x69\xe4\xc7\x6e\xaa\xcc\xc7\xb3\x08\xfc\xc4\xbd\x9c\xdb\x1f\x34\x06\xae\x5c\xde\xfd\x31\x13\x49\x05\x9b\x7b\x65\x3b\x8c\x2d\xca\xde\x85\x46\xb4\xeb\x6f\x86\x9f\x36\x8b\x49\x50\x43\x29\xe1\x45\xd7\xdb\xa0\x6f\x6c\x8f\x91\xcb\x59\xd9\x5b\xa0\xd8\x64\x3b\x50\x8f\x12\x31\x70\x60\xe2\x07\xef\x1d\x5a\xdf\x20\x84\xfa\xc3\xf1\xfe\xde\xeb\x05\xd4\x32\x43\x1a\x64\xc2\x5b\x5e\x33\x59\x36\xf6\x79\x2b\x40\x3d\x60\x8c\x6b\x8c\xea\x32\x95\xd9\x89\x71\x09\xa7\xe0\xd2\xa8\x1e\x90\x0c\x8f\x18\xb1\xba\x86\x5d\x34\x3b\xe8\x05\x7c\x58\x71\x0a\xdd\x10\x6b\xab\x54\x2a\x35\xdd\x04\x83\xae\x21\x49\x7e\x7f\x42\x72\x52\x33\xc5\x8e\x71\xa0\xc1\x0c\x2d\x54\xe5\x88\xaa\x07\x8a\xbb\x30\x5c\x26\x8d\x6b\xc6\x0c\xb7\x38\x43\x9b\x8c\xd9\x3b\xe3\x85\xc1\x35\x79\xf6\x56\x44\xe2\x4e\x25\xf7\x74\x67\xc0\x28\x75\x93\x20\x40\xc8\x61\xa5\x58\x67\x26\xb3\x48\x27\x8b\xc2\x4f\x9d\x12\x36\x8c\xae\x98\x4a\x5b\x53\x8d\x51\xae\xec\x1b\x5b\x8e\x09\x0f\x66\x2d\x29\x8b\x66\x28\xda\xdc\x79\x65\x14\xb2\x57\xb2\x3e\x03\x46\xfc\x89\x13\xa6\x43\x7f\x8a\x17\xd1\x7e\x93\x1a\x8c\xd6\x95\xc3\x78\x88\xbb\x78\x44\xed\x17\x10\x3d\x11\xae\xf5\xe6\x36\x3c\x28\x8b\x26\x2f\x84\xcc\x1d\xd2\x10\xd3\x3b\xfa\x4f\xfc\x4d\x96\xc9\x3e\xe6\xaf\x9e\xc6\xc2\x35\x63\xbb\xc3\x28\xa7\x09\x7c\x40\x56\x77\x17\xa8\xb8\x99\x9b\xec\xb3\x5e\xea\x11\x13\x27\xf6\xea\xb6\x62\xc7\x6c\x40\x43\xbd\xf4\x96\xfe\xfd\xe2\xb6\xa8\x11\x82\x7b\x7f\x44\x03\x79\xc6\x80\x36\xbd\xfc\xd4\x63\x95\x58\xfb\x44\xe0\xee\x3d\xe2\x9c\x48\x52\x9b\x44\xc6\x75\x70\x01\xeb\xbc\x16\xa4\x88\x58\xf6\x15\x63\x06\xe7\x2e\x63\x09\x47\x2e\x65\x03\x43\x70\x2e\xd4\x8a\x80\x12\x54\xb3\x61\xb9\x77\x11\x6a\x0f\xa4\x78\x8d\x19\xa0\xdd\xdd\x32\xa4\x85\xe2\x5a\xc3\xd4\xce\x1f\xc1\x2e\x17\x01\x0d\x22\x26\x64\xbc\xe2\x36\x22\x4b\x0c\x07\x58\x59\x8a\x2a\x7e\x48\x17\xbb\x9f\x0e\xad\x45\x93\xbc\x10\x2f\x55\xde\x36\x8f\x25\x03\xe6\x00\x6b\x78\x67\x94\xa5\xa0\x32\xf8\x03\xb3\x5d\xb8\x7b\x66\x63\xda\xb0\x3d\xe6\xc7\x75\x0a\x72\x94\x9b\x32\x30\xd6\x39\x61\xc5\x3d\x5d\x16\x33\xec\x4a\x8c\xe5\xd6\x55\x25\x81\xbb\x10\x86\xbf\xfb\x6d\x7e\x8e\x45\x3e\xce\xa9\x72\x77\xca\x98\xde\x3d\x89\x9d\x5c\xdf\x95\x03\x3e\x7d\xc2\xb0\x00\x9f\x94\xbd\xa8\xbc\x4c\x01\x0f\xde\xe9\xef\xe6\x80\x64\xd7\xfc\xf8\x10\x32\xa1\x73\x87\x7d\x51\x46\x9f\x7d\x4a\x7a\x5f\xf3\xe7\x42\x6a\x21\xc2\x74\x88\xe8\xa9\x73\xf5\x76\x5b\x69\x35\x37\x07\x44\xb6\x4d\xcc\xf5\x1f\x08\xda\x66\x59\xbb\x83\x75\x1e\x76\x0f\x7f\xb1\x11\x2b\x30\xfb\x38\x98\x7c\x13\x16\x7b\xeb\x4b\xd5\x9f\xc4\xc5\x43\x09\x1f\xdc\xfa\x50\x56\xfd\x1c\x85\x01\x89\xd4\x25\x7b\x7c\x15\xfb\xf1\xc8\xd9\x97\x26\xa9\x89\x4b\xb7\xa1\xd2\x27\x18\xc6\x2d\x00\x6f\x67\xa3\x4a\xa2\xf8\x7d\x8a\x4f\x38\x60\x5f\x32\xbd\xad\xc3\x1a\x92\x85\xd4\x90\x0c\xc9\x90\x20\xf7\xe8\x08\xec\xf1\x7c\xc3\xe2\x8b\x6a\x0d\x03\xa3\x9b\xfd\x6b\x1f\x0a\xe7\xc6\xff\x23\x55\xca\x8f\x76\xb0\x52\xea\x1d\xf5\x54\x0b\x5a\x93\x31\xf1\xca\x7a\xe7\xe1\x8d\xc3\x9c\xe3\x50\x0a\x7b\x59\xb7\x37\x64\xd1\x6a\x59\x82\x81\x1f\x09\x22\x67\x02\xb2\x18\xd6\xce\x64\x4f\x77\xfe\x05\x8c\xa6\x37\x84\x7d\xd4\xce\xbe\x0a\x2b\x70\x89\x2e\x20\xed\x32\xdb\xe4\xf5\xa7\x3c\xdb\x29\xf2\x11\x99\x0d\xb5\xd3\xa2\x83\x23\x5f\xf8\x05\xd3\xfb\xa7\x30\xfa\xfa\xac\x76\xaa\x1b\xe6\xf4\x4a\x56\x4a\x18\xf6\x44\xb0\xea\x96\x95\xb4\x7a\x12\xaf\x93\xf9\xb4\xcd\xd6\x80\x0a\x42\xf7\x9f\xf6\x54\x6a\xef\xb4\x13\x7a\xf8\xab\x6c\x38\xc9\x45\x60\xf8\x1b\x82\xe3\x1a\x11\xc1\x5a\xe3\x84\x61\x2d\xd8\x54\x37\x60\xd1\xb5\x7d\x0d\x25\x5c\x67\xec\x2e\x3e\x0f\xc8\x1a\x63\x0a\xaf\x53\xe1\x79\x0d\x96\x1a\x8c\x53\x8b\xc5\xe0\xfb\x41\x00\xf0\x59\xc0\x39\x61\x56\x35\x21\x31\xdc\x90\x1b\x97\xb0\x78\xfd\x3b\x91\xf4\x0c\x79\xac\x25\xee\xb2\xb6\x73\x03\x19\xe3\x9b\x0a\x68\x72\x7b\x82\x88\x86\x50\x10\x8d\x14\x2c\xb5\x42\xad\xc7\x54\x4d\x78\x0d\xf1\xfa\x91\x09\x48\x61\xf0\xb9\x7d\x63\x14\xf1\x75\xc0\xa4\x14\x79\xec\xc4\xb4\x52\x5d\xb1\x12\xc9\xe7\xef\x81\xa1\xa0\x74\xb2\xbf\xd1\x18\x89\xd3\x84\x6f\x3e\x8a\x78\x6f\x4f\x02\x86\xb8\xf8\x98\x7d\x29\x97\xd2\x5a\xf6\x37\x82\x4b\xd6\xa4\xf9\x03\x13\xe8\xb9\x46\xe6\x90\x7a\x93\xfa\x04\x5e\xe7\x86\xb8\x1e\x77\x29\x05\x64\x58\x0d\x4a\x34\x3c\x6b\xd1\x68\x2a\xcb\xb6\x6a\x88\xf2\x7d\x2d\xdb\xd2\xab\x01\xdf\xe6\xee\xd3\xb7\x3c\x2c\xaa\x37\xb5\x15\xbd\x34\xe9\xa0\x73\x84\x0c\xdb\x67\xcd\xe3\x32\x1c\x3b\x3c\x67\xa4\xe8\x8c\x55\x72\x49\x93\xb6\x9d\x78\x87\x41\x1d\x71\xd1\x37\x9b\x95\xdb\x83\x99\x50\x9c\x73\x63\x6f\x69\xd8\xbc\xfb\x0c\x48\x08\x71\xdd\x78\x7b\xc1\x1e\x34\x8b\xbb\xbb\xda\xc1\x9a\x31\x03\x97\x83\x1b\x13\xb5\xb9\x67\xcc\x52\x63\x74\x1c\x4f\x45\x39\x9e\x8c\xac\x1c\x53\x98\x4c\xa9\x44\x24\x5d\x00\x86\x3f\x1d\x90\xd9\xbb\xa0\x22\x16\xf8\x03\x5a\xd7\x1d\x3a\xb4\x32\xa0\x18\x36\x79\x2c\x86\x7d\xff\x3d\x37\xc5\xe4\x96\x4c\x0f\xa9\x8c\xe8\x7a\x6e\x7e\x08\x85\x09\x10\x23\x7c\xd0\xb4\x04\x81\xc6\xab\xc7\xb2\xe9\x02\xd8\x16\x5b\xce\x5c\x2a\x52\x9f\xee\x0c\xb0\x27\xe2\x3c\xda\x19\x18\xbb\x03\x63\xb6\x16\x3e\x3d\x63\x53\x15\xea\xe3\x23\x0a\xad\x1a\x45\xf9\xd7\x42\x15\xfe\x32\x98\xa9\x29\x5a\x1b\xf6\x2e\x15\xe6\x67\x44\x85\xf9\xee\x8a\xd1\xf6\x11\xd1\x38\x38\x46\x5a\x32\x87\xd5\x56\x64\x9b\x69\x46\x0c\xa9\xd5\x1d\x03\x72\x2d\x1f\xd2\x8a\x4d\x7b\x81\xc8\x91\x16\xd9\x07\x5f\x1a\x4b\xc3\x70\x51\x5f\x32\x1d\xe7\x50\x93\xad\x0d\x00\xd1\x27\x67\x61\x87\x9f\x3c\x27\xab\x7b\xba\x0f\x5f\xa7\xd1\x9e\xd4\x50\x16\xb8\xfa\x92\x3d\x6f\x89\xf8\xc1\x16\xda\xe6\xd3\x0b\x44\x21\x4e\xd4\x18\x8a\x6f\x6c\x1b\x90\x41\xc0\xcc\xd5\x1b\x05\x69\x26\x44\xe7\x3d\x13\xaf\x1b\xfb\x0d\xa2\x7a\x6b\xa7\xcc\xd8\x6d\x84\x89\x3c\x7c\xef\xe7\x25\xde\x3c\x6d\x93\xd0\x85\xd9\x56\x1a\xdf\x1f\xe9\x2b\x49\x9d\x16\x89\x60\x07\x07\xb2\x3b\x71\xf7\x59\xd0\x95\xfd\x21\x54\xd8\x18\x8b\x4e\x33\x8d\xf8\x4d\xb3\xe2\xf9\xa5\x7c\xcc\xc4\x15\x91\xf3\x9c\xc2\x09\xfe\x30\x85\x0e\x57\xdf\x21\xbb\x2e\x2a\x00\x2e\x1f\x0b\xd5\xaf\xdd\x14\x9f\x46\xf9\xf7\x2a\x83\x36\x73\xd4\x41\xf6\xc8\x82\x85\x47\xa4\x16\x3c\x86\x22\xda\x9b\x07\xd4\x63\x3e\x6f\xf9\x7a\xf6\x80\x42\xf2\x25\x43\x17\x73\x44\x9b\x32\xc5\x3b\xb4\x32\xd6\xc4\x10\xa5\xf3\x46\xd8\xc2\x9b\x17\x9d\x17\xf0\x1d\xfb\xd0\xa4\xa9\x4f\x67\xc9\x74\xbd\x57\xba\x4e\xa4\x8a\xd3\xaf\x93\x86\xb6\x77\xff\x89\xbf\xea\xaa\x60\x26\x91\x00\x88\x0a\xbe\x42\xc4\xc6\x86\x55\x8f\xf7\xd5\x4d\xfc\x8d\xbc\x16\xab\x9f\xc5\x5e\x98\xda\xd7\xe0\xc1\x01\xcc\xbe\xc1\xd5\x7d\x11\x1c\xd1\xf4\xc0\x44\x4c\x64\x6e\x9b\x40\x14\xde\x18\x7f\x8c\xc1\xed\xc1\x9c\xe0\x1a\x77\x39\x22\xc4\x8f\x03\xee\x7d\x90\x29\x6b\xa1\x18\xb7\x0f\x97\xa4\x9f\x15\x7f\x1f\x92\xbf\x98\x12\x8c\xa9\xca\xa9\x2f\x4e\xe1\x5e\xee\xa3\x2f\x7d\xc2\x87\xa6\xfc\xb0\xb4\x14\x82\x51\x75\x6d\x28\x97\x31\xc8\x6d\x28\x09\x18\x6d\x8a\x7f\x82\x95\x07\xd4\xc6\x31\x34\xee\x05\xc4\xc1\x15\x05\x71\x5f\xcb\xdc\x22\x04\x34\x64\xf4\x47\x5c\x12\x04\x7f\xe4\x22\x0f\xf4\x10\xb6\xc4\x0b\x98\x5a\xe4\x75\x2b\x92\x51\x7e\xd1\xa5\xa0\xf0\xc0\x2a\x20\x49\x77\xa8\x7d\x09\x51\x35\xb8\xda\x03\xde\xcd\x9b\x8c\x20\xb7\x66\xcc\x41\x28\x32\x76\x16\x1c\xb2\x17\x7f\xf9\xec\x1d\x8a\x6f\x6b\xaf\x98\x09\x37\x9f\xe0\xec\x17\x85\xac\x18\x98\x22\xb5\xf0\x06\x60\xef\x26\xcc\x70\xd5\x6e\xff\x48\xdc\x30\x5c\xdc\x6d\x13\xbc\x13\x7d\xfe\x99\x0b\xd6\x72\xf9\xc9\x3b\xb1\x69\x38\x7c\x95\x34\x66\x84\x64\x65\xed\xbf\x99\xaa\x65\xf9\x73\x95\x1e\xca\xcb\xdb\xd2\xa3\xac\xb7\x4b\x9b\x20\x30\x85\xc4\x15\xa7\x25\xa0\x0c\x5e\x37\x50\xe2\x8c\xc8\x32\x0a\x0c\xfa\x39\x72\xb8\xab\xe2\x47\x15\xaa\x5c\x2f\x6e\xe5\x65\xe3\xf5\x50\x10\x5e\xda\xc6\x8e\x61\x6d\x8d\xbd\x3b\xa8\x17\x6a\x57\x3a\xdb\xe7\x76\x4a\x0f\x6b\x6d\x6e\x24\x68\x64\xfc\x36\x76\xbf\x57\x66\x9d\x5c\x54\x03\x4b\xa0\x9c\x17\x2b\x5f\x10\x1c\x66\x85\x10\x7f\x34\x4c\x12\x45\xea\xca\x16\x7a\x5d\xfb\x9d\xfc\xa1\x32\x29\x13\x8e\x5d\x26\x97\x11\xb3\x61\x34\x41\xbb\x64\x92\x82\x99\xda\xf3\xea\x8f\x2d\xbe\x81\x70\x2f\x48\xb8\x6e\x1b\x32\xe2\x11\x5e\x87\xf9\xb9\xa0\xc2\x57\xb4\xc2\x77\x21\x59\xef\xbc\x61\x72\xcb\xef\x4f\x65\xd1\xc0\x4e\x88\xb5\x28\x59\xf9\xe8\x1a\xc7\xd3\x2d\xd2\x53\xb5\x8a\xfd\xb3\x13\x23\xb8\xf5\x8a\x5a\xc0\x0f\x66\xfe\x19\x7c\xdf\x22\xff\xff\xf4\xce\xec\xd9\xdc\xd4\x06\x76\x25\xa5\x8b\xdc\xfc\x12\x26\xcc\xdd\xd6\x33\x00\x10\xc2\x5d\x20\x79\xae\x95\x26\x1b\x79\x27\xb7\xbd\xc0\x3d\xc4\xe7\x4f\x99\xfd\xf1\xb1\xa2\x83\x65\xba\xc1\x23\x5d\xde\x5e\x09\x34\xa9\x01\xdf\x50\x0a\x50\xd2\xcb\xe5\xe6\x96\x58\x01\x1b\xd2\x29\xa5\x0d\x82\x9a\xe1\x0c\xe5\x43\xa4\x2a\xbf\x3a\x9c\x97\x8a\xa7\x95\x6b\x3c\x67\xdf\xe2\xa3\x46\x2a\x71\xbc\xf9\x19\xc8\x89\x2a\x65\x95\xe8\xb4\x33\xda\xb8\x14\x4b\x03\x84\xe3\xf9\x4b\xbc\xad\x8f\xce\x41\x53\x5b\xee\xda\xae\xa1\xd3\xa3\x27\x24\x5f\x41\xc5\x5d\x43\x32\x91\x75\xd4\xd0\x46\x41\x8b\x96\xea\x53\x85\x28\x9c\xe3\xf2\xe7\x6d\x7b\xe6\x1a\x2b\xf8\xec\x04\xce\x46\x71\x3d\xc0\xfc\xc4\xea\xac\x51\x25\x4d\xb1\x5d\x67\xac\xdd\x27\x1d\x48\x5c\xbc\x0b\x49\xa6\xff\xcf\xd5\x51\xab\x68\xdc\xe7\x1b\x55\xc6\x5c\x72\xdf\x44\xd7\xb7\x10\x6f\xfd\x6b\x86\x2a\x79\x11\xb7\xb7\x51\x45\x5f\xaf\x08\x5a\x40\x19\xa9\xac\x81\x71\x43\xe6\x97\x7a\x29\xb3\x03\xa7\x3f\x7d\x9c\x32\xf7\x54\x24\xde\xf0\x53\x00\x66\x20\xe3\x62\xd8\x93\xa9\x9b\x2b\x6b\x93\x79\x99\x6d\xcc\x88\x41\xef\xdd\x29\x8d\xf8\x73\xdc\x6f\x58\xe1\x1e\x1e\x7e\x2c\xcd\xaa\x9b\xda\xab\x4b\x8a\xc9\x9b\x07\xda\xa8\xc9\x03\xed\x9d\x72\x69\x93\x00\x30\x79\x3f\x0c\x3f\xb5\x51\x7f\xba\xb3\x99\x6e\x35\x59\x86\xae\x49\x2f\x98\x37\xa0\x30\x93\x1d\xa9\xa9\xf3\x56\x4d\x2c\x98\xdf\x30\x1b\xdb\xd5\xc6\xc0\x24\x0b\x6a\x62\xaf\xa8\xba\x73\x0a\xa2\xe6\xef\xca\x99\x74\x87\x55\x0c\x08\xca\xa4\x87\x63\x50\xc1\xdf\xa8\x89\x78\x09\xb7\x77\xa5\xbe\x4a\x0e\xfc\x4a\xa0\x29\xfd\xf8\xc1\x59\x19\x43\x94\xbe\xc1\xfe\x7c\xae\xc3\x60\x90\xab\x72\x30\x3c\x97\x20\x56\x09\x61\x02\xb8\x2c\xeb\xef\x5d\x98\x57\xdc\x8a\x51\xab\x06\x63\xfb\x3d\x56\xe5\x5f\xb1\xf6\x9d\x8e\x68\x9b\xd1\x67\xf7\xf4\x1e\xbc\xf2\x8e\xe3\x0e\xe7\x0f\x65\xa3\x04\xc5\x7c\x93\xae\x7b\xae\xdd\x97\xab\xab\x3b\x23\x52\x4b\x31\xb7\x84\xb0\x1a\x4e\xc8\x1c\x0b\x14\x32\xf4\x56\x62\x3f\x68\x6b\xb5\xc2\xb1\xea\x2b\xc7\x9a\xe0\xcf\xb4\x5b\xcd\x68\x98\xc6\x9c\x3f\xbc\x8d\x4f\x3e\x60\x5b\x70\x4a\xed\xa0\x3e\x15\x03\xda\x96\x7b\xe5\x96\x9d\x22\x41\xd8\x49\x86\xe2\x15\xc4\xca\x67\x1e\x7e\x9e\x19\xca\x8a\x19\xe1\xe7\x93\xbb\x03\xb8\x32\xd6\xd7\xa5\x5e\xf6\xe4\x07\xb1\x41\xca\x27\x88\xf0\xfc\x63\xdd\xcf\x11\x26\x32\xa5\x08\xb9\xc0\xc8\x7d\x99\x3d\xfc\x49\x08\x5c\xc3\xde\x76\xb7\xca\x5c\xc8\x58\x43\x92\xdf\xf1\xb7\x0a\x7f\xd4\x48\x28\x4a\x60\xc8\xe4\xc4\x10\x70\x7f\xaf\xac\xfc\xbd\x28\xda\xf4\x8e\x2b\xc5\x66\x54\x1b\x52\xa4\xbe\x02\x44\x78\xf1\x36\x5a\xe3\xa5\x9d\x9b\x30\xbd\x90\x9e\xd7\x69\x54\xbe\x0f\x78\xbd\x62\x27\x31\x60\xf7\x09\x12\xad\x0f\xfd\xf6\x84\x8e\x77\xd8\xf7\xee\x0b\x0c\xe9\xa7\x37\xd8\xe8\x4b\x68\xf9\x67\xd4\xac\x8b\x3e\x16\x30\x2c\x78\xcd\x28\x75\x2a\x6f\xdd\x1a\x02\xcb\x1a\x35\xe2\x70\x3c\x9f\x41\x16\x7c\x98\x0f\x8a\x9b\x15\x48\x83\xf6\xcc\xaf\xac\xb5\xce\x7b\xbf\xfe\xf7\xff\x09\x00\x00\xff\xff\x2a\x55\x00\x86\x40\x70\x00\x00") + +func uiJsLibsMithriljs020MithrilMinJsMapBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsMithriljs020MithrilMinJsMap, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js.map", + ) +} + +func uiJsLibsMithriljs020MithrilMinJsMap() (*asset, error) { + bytes, err := uiJsLibsMithriljs020MithrilMinJsMapBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/mithriljs/0.2.0/mithril.min.js.map", size: 28736, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsNvd3171NvD3MinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\xf7\x76\xe3\x48\x92\x2f\xfc\xff\x3e\x85\xc4\x99\xd5\x02\xc5\x24\x8b\x54\x55\xf5\xcc\x90\x0d\xf1\xc8\x95\x77\xd3\xd5\x76\x74\x74\xfa\x02\x20\xe8\x49\x50\xf4\x54\x89\x0f\xf5\xbd\xc2\xf7\x64\x37\x22\x0d\x90\x09\x64\x02\xa0\x4a\xea\xde\xdd\x3b\xa7\x4f\x97\x88\x44\x7a\xa4\x09\xf3\x8b\x88\xa7\x4f\x0e\x26\xab\xf6\xb3\x83\x55\x30\x9b\xf7\xc3\xc9\x41\xbd\xfa\xf7\x6a\xfd\xc0\xea\x2d\x16\xd3\x79\xe3\xe9\xd3\x6e\x7f\xd1\x5b\x7a\x55\x3f\x1c\x3f\x9d\x84\xab\xe5\xfc\x29\x66\xb6\x0f\x8e\x6b\xf5\x17\x95\xda\xb3\xca\xf1\xb3\x83\x27\x4f\xff\xe3\xb0\xb3\x9c\xf8\x0b\x28\x6d\xd9\x5f\x57\xee\xec\xc0\x75\xbe\xee\x9a\x6e\xb5\x1d\xac\x9c\xc3\x3a\x71\xab\x8b\x30\x1c\x2d\xfa\x53\x27\xfa\x75\x77\xf7\x75\x07\xe9\xcb\x45\x7f\x34\x77\xf8\x5f\x9e\x36\x0e\xdb\x01\x4d\x64\x3f\x78\xaa\xdf\x73\x67\x8b\xb9\x43\x7f\x77\x67\xee\xb4\x37\x77\xae\xae\xe1\xf7\x28\xec\xf2\xd4\x76\x38\xe6\x3f\xfa\xf3\xa9\xbb\xf0\x7b\x4e\xfb\x59\xf4\xdb\x2a\xcd\x82\x49\x3b\x98\xfd\x3e\x5f\x40\x3d\x25\x22\x1e\xe1\xdf\x92\x4d\x5e\xf2\xde\x57\xa7\xb3\x70\x11\x2e\xb6\xd3\xa0\xea\xf5\x27\xed\xbb\x3b\xcb\xf0\xc6\x89\xc6\xeb\xda\x5f\xfb\x1d\xab\x24\x9e\x4b\x87\x0e\x66\x0a\x3b\x07\x8b\x5e\x7f\x6e\x2f\x7a\xb3\x70\x7d\x30\x09\xd6\x07\x3f\x42\xea\xe5\x6c\x16\xce\xac\x92\xa1\xce\x83\xca\xc1\xba\xe7\x2e\x0e\xfa\xf3\x83\xc5\x6c\xdb\x9f\x74\x0f\x16\xe1\x81\x17\x1c\x78\xe1\x12\x5e\x42\xea\x24\x5c\x1c\xf8\xee\x68\xe4\x7a\xa3\xa0\x64\x37\x71\x9e\x3d\xe7\x74\x36\x73\xb7\x52\x4d\xf3\x51\xdf\x0f\xaa\x98\xcd\x72\x67\xdd\xe5\x38\x98\x2c\xe6\xa4\x6e\x13\xdf\xc1\x0e\x11\xa9\xe7\x36\x4c\x56\x20\x3f\xce\x82\xc5\x72\x36\x39\xf0\xab\xee\x74\x3a\xda\x5a\x98\xff\xa0\x3f\x81\x09\x9b\xf8\x38\xa0\xf6\xd1\x91\xdb\xc2\xc4\x86\x4b\x70\x3d\x4c\x7c\x77\x61\x15\x69\xde\xb6\xed\x5d\x93\x57\xde\x8e\xf3\xd2\x0e\xc5\x8f\x24\x90\x5e\xe1\x8c\xb5\x49\xb0\xb3\x09\x5d\x44\x47\x47\x56\xfc\x59\xab\xd0\xd9\xc4\xd7\x94\x06\xc1\x56\x44\x95\xbe\xf8\xb1\x3f\x0e\x9c\x32\xd6\x75\xe1\x2e\x78\x65\x9a\x4a\x70\x0d\x68\xaa\x80\x64\xb5\x02\xbe\xda\x60\x09\x2f\xdc\x11\x7d\xa5\xe6\xac\x24\xdb\x66\x05\xac\x12\x2d\x50\x4a\x15\xb7\x77\xb6\xcd\x12\xe5\xaf\x00\xab\x89\x8f\x79\x0d\x8b\x22\x5c\xe3\x4c\xcf\xc3\x51\x70\x74\xc4\x7f\x60\x01\xe5\x81\x7d\x2f\x3b\x95\x62\xf1\x14\x12\x7f\x89\x26\x6c\xa8\xe0\xc0\xdc\x44\xbc\x8e\x1d\xb1\x8e\x95\x56\x0d\x4b\x97\x6d\x7a\xcf\x31\xbc\x66\xeb\x41\xaa\x88\xf0\xdf\x76\xd3\x33\x76\x75\xc7\x57\x4c\x94\x72\x15\xfd\xaa\x8e\x82\x49\x77\xd1\xab\xd4\xaf\xe9\x76\x0f\xa6\xb3\x00\xd6\x62\x20\xef\x4a\xe2\xd9\x5f\x53\x13\xb7\x76\x67\x13\xf5\xc9\x2a\xd1\xa3\x0f\x7f\xc2\x86\x6b\x1c\xfc\x9f\x52\xd9\x2d\x97\xfe\xcf\x41\xcf\x9d\xc3\xd6\x0b\x60\xbd\x46\x95\x57\x0f\x4a\xc4\xbb\xbb\x2b\x95\x6c\x6c\x94\x2d\x9d\xb8\x41\x68\xce\x73\xe0\x75\x3d\x7a\x57\x75\xe1\xcd\x2a\x70\x0e\x6b\xf2\xb2\x93\xd7\xad\xc5\xf6\xb0\x2f\x7f\xfd\x0e\x1c\x10\x98\x08\x8b\x9f\x74\x9c\x5a\xd3\x3b\xe9\xc0\xe2\xc7\x95\xc6\x6b\xbd\x59\x06\xcb\xe0\xaa\x73\x6d\x37\x3b\xe5\xb2\xdd\x76\x82\x6a\x37\x98\x04\x33\xe8\xa1\x65\x13\xfe\xc9\xd8\x06\xf4\x5c\x7f\x18\x7d\x45\xf1\x65\x8e\x8e\xe2\x97\x56\xdb\x8e\x0e\xd3\xea\x74\x39\xef\x41\x42\x53\x6d\xa8\x3a\x9f\xe2\x86\xb6\x6a\xa4\x63\x93\xc4\x2b\xf6\x11\x5a\xf3\x80\xae\xf5\x70\xb9\xb0\x7c\xbb\x61\xa5\xc7\x0a\xff\x5a\x76\x7a\x5a\xea\x70\x28\x28\x65\x77\x9a\x3c\x89\x36\xd9\x91\xef\xb6\xdb\xaf\xb0\xd3\xca\xec\xf3\x71\xc6\xab\xa5\x76\xad\x19\xbc\xe5\x39\x5f\xc5\x7c\x35\xe4\xbc\x44\x4c\x8a\x94\x0a\xcb\x2b\x35\x68\x3a\x4d\x5e\x6a\x38\x77\x77\x22\xc1\x82\x71\x94\xe0\xc0\x0e\x3a\xfd\x49\xd0\x8e\xaf\x03\xb8\xcc\x96\x74\x87\x69\xde\x05\x9b\x69\x08\x97\x1b\x74\x8f\xe5\xaa\xf2\x04\xc7\xb5\xb5\x75\xb1\x5d\x0b\xd9\xf9\xf6\x9d\xac\x30\x27\xbd\x01\xab\xeb\x59\x7f\x11\x28\xd7\x13\xdf\x47\xab\xb0\xdf\x3e\xa8\x1d\x3a\x0e\x2f\xd4\x71\xe7\x0b\x28\xd0\xe2\x7f\x59\x41\xc8\xdf\x70\x2d\x9b\x5f\xa7\x30\x24\xb7\x7d\x9f\xba\xb0\x9c\x54\x55\x7f\xb2\x80\x19\xa7\x13\xf5\x6a\xd9\x87\x4b\x1d\x86\x23\x2f\xfa\xd2\x12\x0e\xa5\xf9\x62\xd6\xf7\x17\xa5\xa6\x48\x3f\xf0\xac\x91\xfd\x75\x54\x0d\x5c\xb8\xbd\xa3\xcc\x90\x14\x65\x18\x47\xc4\x06\x5c\xf4\xe3\x10\x2a\xa1\x77\x96\x0d\x97\x9c\x8b\x9f\x14\x76\x0d\x7c\x43\xd2\xc7\x2d\x38\x80\xc5\xd4\x84\x73\x6f\x08\xb3\xd6\xc6\xfc\xc1\x0a\xbe\x71\x35\xec\x74\x60\x0d\xfe\x0a\x59\x13\x49\xbf\x91\xd2\x7c\xd5\x85\x29\x8f\x5f\xc0\x96\xed\x06\xf8\xa7\xfb\xd1\x1d\xc3\x97\xb4\xfa\xb8\x88\x49\xf2\xbd\x3f\x72\xe7\x73\xcc\x51\xf5\xdc\x79\xf0\xb3\x3b\xaa\x8e\x19\x01\x32\x59\x55\x46\x41\x97\x12\x1c\x50\x18\x3a\x54\x83\xe3\xbf\x8f\xfd\xa9\x38\x1d\xd8\x4d\x9d\x05\x09\xf0\xd7\x22\x9c\xda\xa4\x76\x02\xd4\x47\xed\x04\x16\x56\xfb\x24\xbc\xbb\x0b\x4e\x80\x62\x8a\x5a\x9a\x05\x23\x3c\x91\x7e\xa4\x0d\x1e\x1d\xb1\xaf\xe1\x48\x5d\x55\x32\x54\xc3\x35\x2c\xf8\x2f\x3f\xbf\xba\x1c\x05\xb8\xb0\xef\xee\x06\xf4\x96\x81\xa9\x78\xa0\x1a\x61\x0c\x79\x25\xa2\x59\x31\x0d\x43\x9a\x37\x36\x5f\x3e\x2c\xeb\xcf\x21\x5d\x3a\x97\x98\x7d\x7e\x8e\x19\x80\x96\x60\x6b\x50\x10\x14\xbd\x6a\xc0\x3a\xf1\x01\x17\x00\x9e\x24\x5f\xe9\x52\xf8\xb5\xd1\x26\xf4\xc7\x6f\x0d\xbc\xf9\x3d\xbe\x3d\xe9\xfa\x7b\x0f\xeb\xcf\x9a\x2c\x47\x23\x9b\xd0\x7e\xfb\xd5\x5e\xbf\xdd\x0e\x26\x16\x7c\x92\x5d\xfc\x50\x67\xe7\xf3\xc8\xe9\xc2\x0a\x06\xea\x78\x81\xe7\xa3\xda\xde\x38\x5c\x05\x9a\x06\xc9\x14\x3b\xfe\x2b\x7c\xfc\x65\xd0\x18\x41\xf3\xa5\xb6\x37\xf2\xe1\x24\x1d\x96\xe4\x29\xc2\xed\x7c\x74\x14\xd5\x78\xc1\xf3\x14\xaa\x30\xb7\xb6\xf3\x82\x55\xed\x70\x8c\x13\xac\x66\x0e\x25\xfd\x05\xdf\x43\xa1\x03\x0b\xf0\x1f\xdf\xd5\xc8\xd4\x81\x6f\xf6\xbc\x56\x23\x37\xce\x84\x67\x39\x85\xdb\xbc\xd4\x85\xef\x53\x59\xc3\x39\x8c\x7f\xa5\x1d\x8e\x93\xfb\xde\xdd\x06\xb3\x92\x5d\x6d\xbb\x0b\xd7\xba\x1a\x5d\xdb\x64\xe6\xdc\x00\x99\xb4\xc0\xf3\x11\x6f\x7c\xbc\x13\x4a\x5d\xc8\xe1\x2e\x16\x40\x11\xd3\x6f\x0f\x44\xf9\x01\xaf\xf2\xc0\x58\x65\x73\x96\x51\x5c\x2d\x15\x7d\x6a\x20\xf0\x07\xb8\xe3\x28\xcd\xb7\x08\x97\x7e\x0f\x3f\x5b\x89\x8c\x6d\x9a\x32\x16\x1f\x12\x52\x08\xac\x80\x38\x11\x56\x93\x9c\x16\x7d\x43\x51\x32\x7a\x82\xe5\xd5\x15\xad\x39\xb8\xb0\xd2\xeb\x2d\x3e\xef\x7c\xd8\x7d\x78\x13\xc5\x45\x8e\x8e\xa4\x07\x3e\xa6\x4d\xbd\x64\xc3\xd7\xf5\xf1\x66\x89\x8f\xe7\x04\x9b\xe5\xc1\xac\xf2\xaf\x56\xaa\x1a\x47\x2f\x7f\xb5\x11\x4b\xa1\x1f\x06\x3b\x7a\xe8\xf8\xad\x2b\xce\x7f\x55\x3f\xba\x1f\x17\xe1\xbf\x82\x59\x08\x7d\xbc\x6e\xc0\x5d\xfb\x05\xce\xe4\x49\x17\xa9\xb4\xe4\xb7\xe3\xf5\xa4\xe6\xbf\x2b\xce\xf7\xe8\x25\x0c\x84\x68\xae\x10\x77\x17\x65\x38\xce\xc9\xb0\x85\x1a\xa6\xd1\x03\xe4\xae\xe1\x84\x07\x9b\x3e\x50\x50\x30\xcd\x74\x0f\x22\x2d\xbd\xb3\xf9\x6a\xf6\x23\xe6\x51\xb0\x9b\x40\x6a\xf9\xd5\xf6\x12\xae\x7d\x6c\x04\xbe\x27\xec\xf1\xe0\x02\xce\x9f\x2d\x3e\xfc\xde\x9f\xbf\x91\x56\x1b\xae\x34\x3c\x0a\x92\x07\x41\x9b\x7d\x5a\xfe\x85\x3b\xce\x57\x3c\xb3\x1b\x35\x02\x07\x76\xa3\xb6\x23\x5d\xba\x87\x80\x8e\x00\xd2\x08\x26\xc0\x85\xe9\x22\x09\x1e\x34\x79\x74\xc0\x9c\x25\x4e\xaf\x38\xe5\x9c\x2d\xae\x52\xe2\x70\x80\xc5\xcc\x2f\x34\xda\x8b\xa1\x53\x3a\xa5\xbd\xfe\xf5\x93\x37\x80\x8f\x5c\xea\x4f\x38\x79\x20\x0e\x48\x2f\xe6\x87\x7b\x30\x6d\x82\x13\xf7\xe1\xf7\x18\x4e\xde\xfe\x44\x77\xc1\x27\x49\xed\x96\x45\xef\x25\x47\x47\x8d\x20\x4f\x3f\x6d\xd1\x7f\x1b\x34\x17\x61\xb7\x99\x21\x33\xbe\x6a\xb1\x3f\x0d\x7e\xed\x79\x76\xa3\xb3\x83\xfe\xac\xfb\xed\x45\xaf\x58\x77\xe0\x8a\xc7\x62\x6d\x2c\xd6\x0b\xfa\xdd\xde\xa2\x58\xb9\x80\x95\x0b\xb0\xdc\xe6\x0b\x7e\xac\x62\xe5\xba\xac\x5c\x17\xcb\xcd\x7b\xe1\x5a\xb3\xaf\xb3\x8a\xf7\x59\xf1\x3e\x2d\xbe\xea\x9e\x87\x93\x85\x0b\x85\x67\xc5\x4a\x0f\x58\xe9\x01\x94\x4e\x90\x53\x67\xfd\x39\x7c\x74\x85\xef\x21\x7e\x82\xa0\x82\xab\xfe\xd0\x72\x65\x4e\x9e\x32\xed\xe2\x22\x3d\xc0\x75\xc4\xd6\x77\xb3\xed\x68\x04\x19\x7e\x4b\xd7\xc9\xea\x66\xd7\xf0\x69\xb1\x20\xc1\x76\x09\x4e\x1f\x72\x57\xa0\xbf\x1d\xdc\x02\x1e\xed\x27\xf0\x36\x81\xcd\x3e\x39\xdd\x2c\x63\x77\x63\x5d\x01\x6b\x41\xcb\x01\x37\x47\xf7\x8b\xe5\x5e\x75\x81\xbb\x41\xa1\x4a\xbc\x7e\x22\x52\xbe\x07\x27\x67\xcf\xe9\x62\x4e\xc7\xf1\xc4\x10\xba\xb4\x23\x7d\x5a\x67\x7f\x62\x5d\x75\xcb\xc8\x39\x44\x5c\x22\x9c\xff\xb4\xde\x3e\xd4\xcb\x4a\xe8\xaa\xa6\x77\x84\xd3\xb7\xc9\x07\x77\xd1\xab\xba\xde\xdc\x1a\x54\x3c\xfb\xc4\x89\x1e\x7b\xf0\xd8\xea\xe2\x47\x74\xab\xb8\xbf\x83\xf9\x82\xde\xa2\x6f\xa0\xae\x4d\xf6\x37\x60\xc7\x47\xfd\x69\x8d\x9f\x1e\xcd\x68\x1a\x81\xe1\xbb\x54\x28\x5c\x17\x58\x2d\x7a\xb8\x77\xe3\x96\xbd\x8a\x6b\x37\xdb\x27\x0e\xf2\xfd\x27\x5d\x4a\xc2\x76\x51\x76\x03\x07\x1e\x81\xa5\x6c\x22\xa5\x93\xa7\xa0\xc2\x68\xc6\x64\x36\xa3\x06\x25\x5a\x9a\x5f\x29\x43\xbb\x29\x88\x60\x18\x30\xd4\x04\xc7\x6d\x4c\xfd\xba\x90\x28\xee\x1e\xcc\x65\x0b\x89\x94\xc8\x0b\x9b\x9c\x1d\xd9\xab\x7e\xb0\x3e\x0b\x37\x25\xbb\x41\x87\x0e\x8d\x31\x6e\x99\x32\x97\x50\xfa\xa0\x24\x18\xe1\xa9\x3b\x9b\xc3\x74\x2e\x80\x8b\x9c\x2f\xb6\xa3\xc0\x2a\xd1\x23\x01\xce\xbc\x7a\xcd\x7e\xea\x5d\x1d\x5f\x37\xa7\xec\x6c\x61\x7f\x9e\xf8\x64\x4a\xcf\x25\xfa\xef\x13\x7f\xb7\xdb\x45\xe3\xf2\xd9\xb8\x0e\x27\x7c\x60\x4d\xd7\x19\xb6\x86\x8d\x76\xe8\xd3\xdd\x55\xf5\xc2\xf6\x96\xc8\x74\x8f\x1b\xdf\x6e\xed\xfe\x4a\x73\xb9\xf1\x59\x3c\x28\x95\xad\x41\x6b\xd0\x28\x6d\xb6\x15\x9e\x04\x83\xe7\xb9\xfb\xed\x12\x59\xd9\x64\x22\xfa\x0f\xdd\xc2\xfb\x4a\x3c\x62\xa7\xe9\xfd\x15\x65\x08\xa7\xae\xdf\x5f\x6c\x45\x62\x7c\x53\x43\x1f\xc8\xc1\x02\x65\x7d\xf0\xa7\x0d\xff\x23\x41\x45\x3b\x13\xb4\xad\x35\x12\x25\x90\x5f\x7d\x0e\x81\x42\x63\x73\x2f\xcd\x43\x9b\xcd\xc3\xec\xe8\xe8\x0c\x76\x1f\x4c\x3c\x17\x3b\x74\xf8\x1c\xc2\x56\x64\x84\x80\xd3\x6f\xf5\x1b\x74\x22\xe3\xd5\xa9\xa5\x3c\x7c\x2b\x12\x3e\x5a\x28\xc2\x81\xc5\x10\xc2\xa1\x04\xc7\xd9\xeb\x1f\x3f\xbc\x87\x5d\x49\x80\xb5\x58\xb6\x62\x16\x32\x49\xb6\xc0\x97\xa8\x02\xc9\xcf\xb9\x87\xf9\xd9\xf6\x47\xb6\xaa\xf8\x42\x42\xde\xcd\x4b\xdc\xae\xb8\x6a\x5c\x56\x1a\x6f\x77\x28\x7d\x86\x62\x51\xa0\x4e\xe0\x9e\x84\x4a\x7e\xc0\x2f\x88\x9c\xdf\xd0\xf8\x2e\x70\x7c\x3a\x38\xa8\x09\x18\x2b\x56\x57\xdf\x9c\xbf\x19\xc4\xfb\x2f\xb0\x4f\xfa\xfc\x9a\x69\xd5\xe0\xf2\xf0\xe8\xa2\x8b\x5f\x57\xda\x8c\x6b\xf3\xd8\xe2\x8c\x5e\xf8\xf4\x19\xde\xe2\x1f\x7b\xd7\x29\x43\x73\x8c\xbf\x7c\x0f\x09\x65\x96\xbd\x72\xfc\x64\x08\x74\xc3\x2c\x1c\x8d\xde\xd3\xef\x11\xe7\xfa\x31\x9c\x96\x69\x5b\x52\x1e\x48\x23\x70\x0a\xf6\x4e\x6a\x30\xef\xfc\x8c\xe8\x8c\x42\x38\x5b\xbb\x4f\x7b\xf6\x93\x9e\x4d\xce\xad\xab\x0e\x81\x33\x74\x67\x37\xe2\x9f\xa4\xbd\xdb\xb1\xd3\x9a\x53\x2f\xa5\x75\x09\x3e\xfd\xf1\x0b\x38\x49\x6b\x40\x52\xd0\xd4\x88\xa8\xa0\x7f\x46\x48\x67\x8c\x1d\xa4\xfd\x27\x2c\x25\x64\x7f\xa6\xfc\xe3\xd0\x07\xfc\x3e\xf8\x63\x07\x0c\x42\x82\x22\x9a\x61\x05\x73\xa7\x0e\x15\x2c\xf0\xe7\x12\x25\x3a\x2b\x27\xde\x4a\x95\x52\x59\xea\x7f\x3d\x78\xf1\x84\x3e\xce\x5c\x20\x60\x80\xbb\xb7\xc9\x1a\x33\x57\xa6\x8c\x0d\xac\x50\x3e\x67\x5e\x99\x84\x40\x5e\x92\x8d\xf6\xee\xdc\x91\xad\x21\xfd\xd6\x90\x7e\x9a\x94\xe5\xe3\x60\xe0\x72\x71\xf9\xe5\x52\x2a\xf1\xc5\x1e\x9f\x14\xd1\x19\xe2\xc3\xea\x5e\x04\x7c\x1d\xc3\x66\x67\x92\x79\x7a\x79\x2d\xc4\x62\xf5\xe4\x4d\xbd\xe8\xc1\x76\x88\x18\x23\xf7\xda\x4e\x11\xd6\x3c\x47\xd3\x8f\x53\x70\xe3\x47\x0f\xed\xf8\x60\x0a\x47\x40\xd7\x4d\x4a\xe4\x59\xfc\x1a\x4e\xfe\x70\xd2\x95\x0e\x8a\xd2\xa6\xb2\xc2\x3b\xaa\x44\xb9\x98\xde\x62\x3c\xb2\xb6\x70\xba\xd2\x34\x9b\x51\xcb\xed\x44\x17\xf1\x60\xcc\xee\x22\xcb\x81\x42\x13\xa5\x60\xc4\xf1\x69\xe9\x85\x79\x30\xeb\x07\xf3\x9d\xa6\x3a\xf9\x60\x2b\xf5\x60\x93\x8d\x70\xa3\xe9\x99\x82\x6a\xf4\x7e\x07\x3b\x54\x9d\x96\xa8\x0e\x26\x66\xa9\xc0\x04\x85\x33\xc6\x91\xb0\xe1\xab\xc7\x3b\x3f\x80\x51\xe8\xd7\x9d\xe1\x01\xc0\x0a\x18\xda\xa5\xef\xf0\xba\x35\xb4\x39\x0c\xb6\xd2\x1c\x6b\x29\xa2\x5b\x98\x78\xc8\x06\x29\x19\xf5\x24\xbf\x96\xb6\xa6\x8d\xf8\x84\xa2\x2e\xf9\x33\x60\x75\xaa\xd0\xcc\xe5\x5a\x85\x68\xee\x04\xf7\x98\x62\x58\xf0\xc8\x76\x91\x82\xaa\x11\x20\x9b\x70\x23\x76\x03\xeb\xaa\xf4\x97\x4e\xa7\x83\xfa\x0b\x3a\x09\xd7\xa8\x4c\xaa\x7e\xd7\x4c\x48\x0c\xa2\xf9\x0c\x67\xc0\xf7\x56\xbc\x70\xb1\x08\xc7\x62\x4a\x3d\xe0\x28\x93\x39\xf0\x58\x93\x5f\xef\x76\xe2\x62\xf2\x04\xb5\x01\x0c\x11\xbb\x54\x9a\x49\xc1\x23\x12\x4e\x21\xbc\x84\x33\x10\x4e\xd5\xd2\xf7\xf0\x49\x0f\xe8\x1c\x3a\xff\xc5\x5e\xfc\xd7\x49\xa9\x2c\x32\x95\x4b\xdf\x3f\x85\x0c\x27\xb0\x66\x81\xcf\x38\x4b\x6e\x78\xf7\xe8\x48\x2c\x4f\x3e\x51\xec\x21\x4d\x32\xb3\x5e\x1c\x1e\x8a\x1c\x9c\xc4\x6c\x1a\x0a\x31\x96\xcc\x4e\x6c\x01\xe7\x4a\xfc\xba\x86\xcf\xcc\xd5\x1c\x87\xf5\x1d\x39\x57\x04\xda\x21\xf6\xca\x74\x83\xfa\xa4\x0d\xdb\x2f\x22\x97\x42\x7e\x5f\xbc\xa6\x57\x14\x12\x4b\x70\xaa\xa7\xde\xfe\x82\xb4\x14\x7d\xd9\x17\x2a\xd7\x2a\xe3\x15\xbf\xf4\x6f\x71\xba\x29\xb1\x05\x97\x80\xf6\x25\xbb\xfe\xe0\x6e\xe0\x32\xdf\xa9\xdb\x0d\x7e\xfb\x44\x2b\x86\x0b\x41\x4a\xfc\x95\x25\x36\x07\x22\x91\x92\x06\xb4\xf1\x13\x47\x21\xbf\xf8\x8d\x46\x5f\x01\x41\x35\xa8\xd4\xbf\x83\xae\xc9\xa5\xd8\x80\xf4\xc5\xd8\x3b\xa0\x59\xfa\x50\x8e\xae\x9c\x19\x59\xc0\x1d\x23\x7f\x5d\xbe\xcc\x9b\xed\xf0\xa0\x3f\xff\xe8\x7e\x84\xcf\x14\xdd\xac\xf6\xdd\x9d\xe5\x95\x1d\x39\x85\xb8\xd1\xe3\x67\xa0\xef\x27\x8b\xe6\xba\xd7\x1f\xa1\x54\x3c\xe2\xa6\x77\x70\x81\xa5\x5b\xf0\xd3\x2d\xe0\x5d\x9e\x68\x82\x26\x15\x69\xa3\x39\x5f\xf7\x51\x60\x00\x9c\x80\xef\xce\x83\x52\x50\x6a\xc0\x45\x02\x74\x51\xa5\x57\xe9\x02\x91\xe3\x5d\xd5\xaf\x2b\xc1\xd3\x63\xb8\x61\x57\x56\x68\xc3\xed\xba\xc4\x3f\xd3\x13\xdc\x0f\x2c\x67\xb9\x7b\x32\x6d\xb1\x1f\x8d\x69\x65\x56\xf6\x81\x2a\x3b\x59\x50\xd6\x61\x58\x59\x94\xdb\x50\xa8\x1c\x9c\x0c\xcb\x03\x96\x54\x1e\x60\x62\x05\xc9\x39\x58\x6f\xc3\x26\x6d\x76\x2d\x9a\x2d\x67\x34\x3a\x2b\xf7\x4e\xfa\x51\xb3\xd8\x41\xa9\xa5\xf2\x8b\x22\xed\x4c\xe2\xe1\x3d\x3d\xae\xbc\xe0\x6d\x41\xa3\xfa\xe1\x4d\xb1\xd6\xb8\x59\x1f\x4b\x15\x6b\x68\x2e\x37\x14\x0d\xa9\xb2\x6f\x43\xd1\xf0\xd4\x51\x20\x59\xc2\xeb\x17\x75\x27\x6a\xde\xf9\x15\xe7\x86\x51\xdd\x6d\xfc\x85\xe4\x28\x2e\xa0\xb5\x13\x1a\xc9\x56\xdd\x86\xbb\xbb\x8b\x36\x84\xf8\xc1\x89\x10\x89\x48\xd4\x6d\xca\xdc\x82\x94\x02\xdd\x38\x70\x29\xbb\x93\x39\x8a\xe7\x2d\xe0\x76\xd6\xb4\xcb\xe5\xa9\x5d\x2e\x4d\x37\xe4\x80\xa6\x40\xd7\xcb\x43\x9a\x60\x97\x80\xe6\x52\x0a\xf8\x22\x5f\x9b\xbf\xbf\xc5\x9b\x86\xd2\x70\xd3\x10\xf3\x30\xb9\xa2\xb5\x21\x5b\x1b\xe8\xaf\x14\x2f\x64\x7f\x5f\xad\x37\x47\xad\x49\x95\x56\xda\x67\xe7\x5e\xb5\x4d\xc5\x75\x63\x5b\x91\xe3\xa5\xb9\xa8\xc6\x84\xb5\x34\x5b\x4e\x51\x3e\xa8\x56\x21\x4a\x9e\x02\x19\x2f\xae\xac\x1f\xd7\x41\x80\x82\x61\xcc\x08\xdc\xf8\x58\xc1\x02\x88\xab\x7b\x47\x4a\xfd\x31\x2a\xe5\xdc\xc9\x22\xa6\x1d\x2a\xeb\xc0\x1b\xf6\x17\x15\xa9\xec\x36\xdd\xa7\x3a\xca\x25\x63\x00\x84\x4e\xad\xe1\xac\x49\xbb\x1a\x4e\xb1\xd1\x08\x0e\x23\x9e\x51\x7b\x49\xd5\xe8\xa8\xaf\x6d\x57\x7f\x17\xd9\xd8\xed\xc2\x69\x50\xeb\xeb\x8e\x7c\x15\xc3\x6b\x7c\x85\xc5\xd4\x48\x8f\x62\xbe\x23\x73\xf9\x05\x1c\x5f\xd0\xda\x6e\x47\xba\x33\x77\x05\x5d\x35\x95\xeb\xa4\xcb\x75\x68\xb9\x76\x9f\xdd\x75\xa6\x82\xdd\x74\xc1\x2e\x2d\x38\x9f\xb8\xd3\x8b\x9c\xc2\xbd\x74\xe1\x1e\x2d\xcc\x68\xa5\xb9\xa9\xdc\x20\x5d\x6e\xc0\xca\x21\x84\x28\x12\xbd\x99\x8a\x0f\xd3\xc5\x87\xb4\x78\xa7\xbf\x09\xda\xb0\xb1\x4c\x05\xfb\xe9\x82\x7d\x5a\x30\x98\x20\x5f\xd0\x36\x95\x9b\xa5\xcb\xcd\x68\xb9\x48\x46\x6d\x2a\x39\x4e\x97\x1c\xb3\x91\xc2\x20\x61\x6d\xbd\x62\x9a\xee\xd0\x38\xd6\xd3\x74\x05\xa7\xb4\x02\x4a\x5c\xbe\x84\x05\x0d\xac\x86\x79\xaa\x36\xe9\xe2\x1b\xd6\x73\x20\x59\x82\x59\x6e\xf9\x6d\xba\xfc\x96\x96\x07\x2a\x39\xb7\xf0\x6d\xba\xf0\xad\xd4\xf8\x65\xf6\xa4\x2f\xd2\xa5\x17\xb4\xb4\x46\x17\x60\xaa\x63\x99\xae\x03\x38\xdc\x43\xac\x65\x1a\xb2\x33\xc7\x54\x74\x9a\x2e\xca\x05\x5b\x12\x85\x2b\x4b\xca\xb9\xac\x86\x49\xbb\xa4\x3c\xb1\xe8\x9d\xbe\x82\xa6\x19\x69\x61\x6a\xf8\x26\xdd\xf0\x4d\x66\xc3\xfc\xba\xba\x31\x37\x7c\xc3\x1b\x66\xda\x12\x53\xc3\xa3\x74\xc3\xa3\x43\x07\x48\x6f\x6b\x84\x73\x46\xda\x16\x72\x00\x04\xf9\x47\x53\x15\x41\xba\x0a\xb7\x4a\x65\x03\x14\x1f\x46\xd7\xac\xc3\x53\xaa\x1b\x12\xd1\xdb\xe2\x07\x47\x12\x72\xd2\x5d\xcd\xbe\x8d\x5f\x50\x9e\x24\x7a\x41\x9f\x50\x09\x27\xbf\x45\xde\x17\x3f\x33\x17\x63\xe0\x15\x6a\xea\x74\x98\xe8\xb4\xfd\x15\xca\xf5\x8d\xeb\x72\xa5\xc9\x4e\x51\x28\xec\x4a\xe8\x4f\xfa\x8b\x4f\xec\xfc\xa7\xb7\xc1\x6e\x67\xc5\x2f\x63\x72\xdd\x49\xc3\x31\x29\x6d\xdf\xf8\xee\x79\x8d\x30\x42\xbe\xf1\xfc\xef\xb5\xe8\x52\x4a\x11\xea\x11\x32\x4c\xa2\xc2\x5b\x30\xc7\x4c\x43\x93\xca\x0e\x5d\xe0\x4a\x98\x74\x31\xe2\xda\x8d\xd2\xf9\x97\x2f\xf5\xf3\x70\x3c\x75\x17\x25\x27\x26\xe6\x7d\x9a\xf2\x01\x78\xbd\xa3\x23\x13\x5d\x62\x7e\x23\x73\x35\x71\xdf\x8a\xe4\x8e\xbb\x9b\x93\x3b\x1e\x81\xc2\x80\x48\x7d\xa2\xfc\x48\x76\x47\x92\x59\x34\xad\x4b\x59\xe2\x26\xdd\x5d\xe2\xcb\xfe\x10\xcc\x95\x6f\x1b\xcb\x03\xf8\xac\xbb\xed\x36\xa5\x29\xde\xc3\xcd\x8a\x47\x7f\xcb\x90\x8e\xc8\x47\xac\xaa\x84\x5a\x25\x8e\x51\xbc\xfc\xe1\x87\x4f\x3f\x34\x0e\x5e\xba\xc0\x8b\xb4\x29\xf2\x14\x21\xa9\xf0\x97\xd7\xc1\x4a\xc0\x13\xac\x22\x44\xc2\xd9\xe4\x6b\x04\x99\xf2\xe0\x4a\x0e\xdc\x99\xbc\x6a\xa3\x52\xa8\xe6\x34\x36\x0e\x6b\x3b\x1a\x23\xec\x87\x73\xba\xf3\xe4\xf1\x01\x63\x1d\x21\x4b\xbc\x98\x91\x66\x25\xda\x41\xc7\x5d\x8e\x58\x29\x8b\x0a\xdd\x18\x1a\xb5\x3f\xa7\x7f\xa1\xbc\x90\xc1\x45\x72\x8e\x70\x06\xf4\xb5\x3b\xb2\x84\x68\xc3\x8b\x98\x2e\x55\xce\xc2\xe4\x62\x71\xd3\x2d\xb7\xe1\x35\x55\x59\xd0\xdd\x9d\x0f\x5b\x70\xb7\x8b\x19\x43\x5d\xbf\x34\xf8\xda\xe4\x80\xad\xa8\x77\x88\x33\xec\x86\xb3\xed\x71\x2d\xea\xa0\x6d\xc7\xf5\xfa\xcb\xf9\x22\x1c\xff\xd8\x83\x15\x9a\xd2\x36\x51\xf0\xa1\x56\x70\x05\x77\x29\x10\x04\x08\x24\xc8\x6c\x87\xab\xa8\x7c\x21\xd2\x48\x4e\x0b\x17\x98\x77\x1c\x0f\x65\xfe\x5c\x34\x9a\x46\x8b\xba\x57\x9d\xeb\x16\xfe\x63\xd9\x8d\xf8\xb6\x10\x89\x0d\x0b\x31\xd5\x71\x2b\x36\xb2\x41\x75\xe2\x5f\xb5\xaf\x6d\x69\x29\x4c\x07\xae\x24\xdd\xa5\xe3\x63\xbd\x8b\xd2\xda\xf6\x57\x18\x0d\x15\x90\xb5\x89\x9c\xca\x44\xdc\xb1\x68\xca\xb7\xb9\x2c\xa9\x19\x00\x1f\x84\xec\xf6\x47\x78\x84\x75\x39\x1d\xb9\x7e\x70\x0e\x9c\x77\xdb\x92\x04\xbb\x76\xaa\x1c\x09\x6c\xa5\x5f\xb4\x3b\x48\xcf\x47\xa5\x50\xea\xe6\x29\x80\x10\xe9\x9b\xf7\x60\xd5\xc3\x4c\x53\xdc\xe0\x97\x05\x12\xea\x14\xf5\xdc\x9b\x05\x1d\x42\x7f\x2d\x82\x0d\xa5\x49\xa1\x67\x24\x7a\x05\xf3\x62\xc9\x0f\x02\xe2\x33\x9d\xd1\xbf\x17\x6c\x81\x59\x54\xac\x1f\x75\x9e\x6d\x39\xd6\x91\x69\x38\x9d\x63\x6b\x4a\x5f\xa2\x6a\xe8\x2b\x38\xc4\x2c\x35\x05\x87\x15\x2f\x36\x77\xe4\x9f\x4e\xa7\xb3\x70\xf3\x23\xf4\xf0\x97\x94\x66\x5e\x01\xbd\xc7\x9f\x9f\x31\x3f\x5a\x20\xb1\x4b\xc7\x2a\x24\x26\x69\x55\x5f\x07\x66\xa1\x42\x4f\x06\x5b\x7c\x1f\x18\xc8\xa6\x44\x4a\x4c\xff\x47\x50\xf1\x83\x55\x58\x76\x62\x91\xfa\x4f\xbc\x27\xd5\x17\x62\x27\xd6\xe2\x41\x44\x80\x16\x8d\xec\xbf\x34\x59\x8e\xbd\x60\x26\x41\x13\xee\xee\xb8\x04\xc7\xbe\xbb\x13\x4a\x80\xbb\xbb\xfa\xd3\x1a\xfb\xe1\xc2\x9f\x0a\x3c\x01\xeb\x08\x47\x73\x34\xef\x2a\xdc\x79\x8d\x40\x8b\x1f\x23\x9e\x53\x23\x2a\xba\xc2\x0f\x7b\x2d\xf0\xf3\x57\xd7\x26\xc4\xbe\x1d\x9f\x37\x31\x0f\xcb\xd1\xd2\x78\x46\xc5\xa3\x64\x48\xa3\x5f\x28\xc4\x43\xdd\x35\x54\xf5\x9f\xc4\xf1\x6b\x8a\xc5\x58\x80\x60\xad\x7b\x4f\x6b\x6b\xca\x87\x22\xec\x6a\xbf\xe5\x37\x8e\x5f\xa0\x46\xfb\xea\x9a\x74\x28\x9a\xbf\x49\x17\x2d\x37\xe0\xd0\x9d\x46\x8e\x69\xbc\x35\xdc\x65\x69\x5d\x38\x52\x78\xbf\xff\xce\x7a\x12\xb4\x51\x7d\xa4\xbe\xd3\xc0\xf9\x2f\x53\x68\x7e\xb9\x82\x1a\xe9\x54\xa3\x7c\x08\xf3\x82\xae\x96\x70\xe1\x43\x7d\x24\x00\xba\xa5\x1d\x6c\x3e\xa1\xaa\xf1\xfb\x1a\x42\xa5\x29\xdc\xd7\xc5\x7d\x86\x23\xdb\xb1\x1d\x0a\xf7\x57\xa0\xc2\x4d\xe2\x93\x8e\xca\x85\xb0\x2a\x18\x29\xcf\xbe\xd0\xad\x06\x22\xbe\x8f\xe7\x24\xf1\x1e\x27\xf5\x96\x79\x55\x20\x2a\x0b\x75\x4a\x51\x56\x0f\xe8\xd4\xa9\x7c\xd8\xb6\x5b\x6d\xfa\x59\x92\x13\x67\x1c\x1c\xc1\xf5\xed\xc7\x97\xab\x3a\x5d\x2e\x93\xbb\x68\xee\x31\x36\x23\x6e\x24\x54\x31\x67\x69\x2a\x95\xd2\xed\x24\xb0\x2d\x87\xb0\x99\xf0\x0c\x9a\x6d\x35\x5a\xa3\x43\x91\x6d\x67\x63\xc6\xc3\x7a\x93\xe1\x22\x6a\xba\xad\x21\x8b\x77\xfc\xa4\x06\xc4\xfe\x5a\x2e\x77\x77\x3c\xb5\x94\x34\xf8\xc0\x1e\x55\x2a\x5d\xca\x45\x18\x17\x8b\x64\x15\x03\xbb\x8f\x9e\x95\x7c\x35\xf0\x0c\xf2\xf8\x03\xe3\x98\x94\x09\xde\x21\x12\x38\x28\xb2\xee\x25\x08\x6b\xa2\x2f\x92\x99\xcd\x4e\xa6\x41\x82\xe9\xe5\x06\x6e\x95\xb6\x42\x4f\x71\xfd\xf9\x9e\x2b\xae\xe9\xa7\xbb\xe8\x4b\xb6\x0a\x70\xba\x1c\xf8\xe2\xee\xf5\xe0\x32\x4f\x2a\x4e\x50\xdd\x1c\x32\x7c\x5a\x74\x1d\x60\x3e\xd2\x4d\xa7\x23\x31\xd0\xec\x1c\x1d\x1d\xc2\x2d\xd2\x6d\xa5\xc7\x63\xd1\x82\x94\x64\x68\xe0\x4f\x07\x7f\xee\xe4\xab\x8b\x5e\x66\x09\x93\x1a\xf3\x31\xc8\xae\x3e\xdd\x01\x48\xdf\x70\xe5\xef\x57\xa4\xa1\x64\xae\x4c\xb5\xa4\x62\xa5\x91\xb5\x8b\xf4\xeb\x14\xeb\x42\x57\x88\xde\x1e\xcd\xef\x21\xe1\x05\xb7\x1b\x1c\x26\x25\x76\xbe\xa8\xc7\x19\xa6\x2b\xc7\x9d\x0f\xc7\x06\x22\x94\x79\x66\xa0\x1f\x17\x7a\x04\x19\x82\xe3\xa4\xf3\x6a\x9e\xcc\x28\x69\x12\x3d\xd4\x50\x28\x03\xb3\xe5\x81\xfa\x04\x68\x2a\x17\x3e\x36\x69\x1f\x1d\x79\x16\x5f\xf3\xbc\x5e\x64\x46\x95\xd5\x15\x20\x54\xf8\xab\x6e\x11\x5a\x54\x53\xc9\xb7\x6f\x8a\x39\x6d\x33\xea\xfd\xed\x97\x4f\x1f\xab\x73\x2a\x1a\xee\x77\xe0\x92\x43\xfc\x6b\x22\xcd\x13\x1f\x0a\xce\x02\xb1\xfc\x7c\x5c\x7e\xae\x1d\x13\xeb\x57\xfe\x35\xe2\x6b\xe1\x8f\x83\xc3\xa1\x3f\x5c\xf8\x07\x3e\xca\xa1\x38\x3a\x0e\x81\xf9\xa5\x83\x58\x4e\xdb\x89\xd5\x82\xe0\x26\x1f\x3a\x8c\xe0\x7e\xf6\x35\x6d\xd2\x65\xfb\x82\x2a\x3a\x8f\x8e\xd4\x6f\xc5\x3e\xa4\xe5\xc9\xdb\x4f\x12\xdd\x6a\xef\x41\x0a\xbd\x1f\xbb\x53\x04\x1d\x69\x10\x60\x30\x97\x1a\x02\x0a\x9b\xbd\x72\xaf\x59\xfb\xf0\x03\x9b\x64\x82\x61\xda\x2f\x71\x47\xc9\x14\xdc\x8f\x40\x8f\xce\x7f\xd5\xd2\xd2\x70\x23\xc0\x41\x8a\x93\x18\x34\x83\xef\x23\xba\x3f\x28\x3b\x75\x41\xea\xfb\x57\x01\xb4\x86\xff\x32\x69\xc9\xbc\x25\xfd\xe6\x05\x1a\xb5\x26\xec\x84\x93\x76\xab\xd3\x68\x47\x26\x5b\x8c\xa5\xfc\x21\xb8\x81\x7c\x0b\x60\x27\x19\xa9\x75\x80\x63\xc0\x0e\x71\x06\x92\x67\x3b\x87\x7e\x2e\xa9\x25\xc0\xc1\xd8\xdd\x1c\xb0\xda\x99\xed\x23\x66\x6c\xc3\x17\x74\x3c\x68\xc0\x73\xda\x95\x3a\xf0\x9a\x9e\x53\x3f\xf1\x5a\xec\x97\x84\x1e\x49\x57\x48\x4d\x28\xa1\xbd\x03\x3f\x5c\x4e\x16\x07\xae\x68\xd7\xd3\xcc\xd1\x6f\x89\x39\x4a\xf0\x6a\xf1\x5c\x32\xfa\x5f\x23\x90\x49\xec\x2f\xf7\xca\x83\x55\x57\xfd\x1d\xd7\xcd\x1c\x55\xb9\xec\x17\xa4\xb6\xa4\xdf\x0d\xf9\x3c\x35\xe2\x3f\xdd\x48\xe8\x8f\x95\xfa\x54\x38\x20\x27\xed\x74\xfd\x99\x6b\x0e\x7e\xae\x32\x80\x93\xe3\xd3\x7a\xf2\x79\x16\x4e\x83\xd9\x62\x8b\xc8\xab\xb9\xe5\x45\x15\xe2\x16\x46\x24\x55\x76\x66\x3a\x02\x9a\xb5\x09\xcc\xa5\x20\x67\xdb\x76\xb4\x2d\x03\x76\x2b\xa4\x3b\x86\x33\x08\xcb\x48\x99\xc4\x5e\x30\x8b\xfa\x7d\xf1\x2c\x45\x27\xc1\x68\xdb\xcf\x84\xde\x23\x6a\x4c\x4e\xbd\xbb\xbb\x42\x5c\x42\x75\x39\x99\xf7\xfa\x9d\x05\xae\x86\xf8\xc1\xa5\x6c\xd2\x2c\xa0\xb6\x88\xd2\xd5\x29\x7f\x48\x17\xef\xa9\x9f\x26\x7d\x58\xb2\xda\x1d\x5b\x9d\x87\x68\xb1\x57\xed\xf4\x47\x08\x5f\xd1\xad\x96\x43\xe0\xb1\xbd\x43\x3c\x6a\xd0\x32\x51\xbe\x90\xb6\x63\x2f\x1c\x7d\x70\xa7\x0e\xdf\xf5\x76\xe2\x95\x01\x98\xe9\x91\x88\xeb\xf6\xe3\x03\x88\x60\x32\x02\x68\x13\x49\xfc\x64\xab\xd4\x99\xd1\xd2\x7c\xd5\xe5\xb5\xa3\xe9\xf1\x3c\xa2\xfe\x3a\x76\x4b\x79\x8b\x3a\x32\xc8\x00\xe9\x55\x64\xbe\xac\xae\x6d\xe1\xf2\x4a\xf4\x1c\x97\x01\x64\x81\xb7\x3b\x8e\x3f\x70\xbe\x7b\x1e\x43\xcc\xa9\xd1\xae\x6e\xda\x52\x6b\x99\x0a\x63\x68\x4e\x58\x27\xf0\x61\x3c\xbb\xe1\x53\x54\xb4\x22\xda\xca\x86\x7e\xa7\x6a\x68\xef\xe4\x4d\xad\x2e\x27\xed\xe1\x97\xb1\xb6\xfd\xc4\x46\x08\x72\x32\xc7\x1b\x81\xe0\x67\xfa\x9d\xb7\x1e\xb4\x71\x49\xc2\x67\xf2\x13\xab\x14\x31\xce\x62\x05\x07\xb6\xf8\xd5\x89\x7e\x75\xd1\xc6\x48\xac\x5c\xb8\x78\x7b\xf2\x9a\xd6\x2e\xe3\x1e\xd2\x86\x71\xbb\x8e\x66\x49\x5b\x99\x4d\xb6\xa3\x5f\x5e\xa2\xff\x36\xad\x3a\xde\x7b\xba\xaa\xbb\x52\x61\x75\x3f\x26\xce\xc9\x2f\x3f\xbf\x72\x54\x12\x57\xa0\x9e\xbe\x52\x33\xdc\x0a\xa2\x3f\x1b\x70\x33\xcb\x5b\xc7\x85\x82\xb0\x34\x5e\x27\x31\xfe\x12\x0d\x03\xbc\x79\x24\x4d\xf0\x84\x34\x81\x89\x58\x4b\xb6\x4d\x8d\x97\xd2\x15\x26\x25\x1a\x79\xf5\x71\x20\xb2\x4d\x8d\xa2\xa4\x63\x63\xe5\xf6\xa9\x41\x7e\xb2\x83\xb0\xd8\x90\x76\x4a\xdc\x23\xea\x70\xe8\x8a\x64\xd8\x51\xf8\x97\x21\xa6\x34\x55\x27\xba\x9a\x5d\x33\xcd\x2c\x2a\xe6\xe8\xd3\x19\xc5\xcb\x45\x15\x4f\xc2\x0b\x77\xe1\x6a\xf7\x85\x27\x28\x17\x8b\xc1\xfb\x98\x85\x88\x85\x4b\xbb\xcd\xcb\x59\x36\x47\x0c\x3b\x4e\xa7\x75\x55\xfa\x18\xa2\x6d\xbc\x7b\x70\x2a\x7a\x5b\x2d\x5d\x37\xae\x3a\xb8\xcc\x0d\x73\x04\x6b\x91\x7d\x1c\xa8\xc9\xc7\xa3\xac\x9f\xce\xc9\x46\xd1\x66\xa2\x74\x91\x6f\xe0\x04\x0c\x88\xd0\x7f\x7a\x4c\x86\xf0\x80\x18\x84\xde\xd3\x63\x60\x4f\x64\xbb\xb4\x52\x6c\x14\xc4\xed\xf7\x94\xf7\x68\x27\xc5\x46\x22\xe0\x8a\xb0\xe3\x46\x69\x54\x62\xb0\x59\x68\x30\xe0\xed\x67\x07\x72\x79\xf6\xba\xbd\x85\x77\x95\xea\xdf\x82\x71\x0c\x0d\xc0\xf2\x15\x60\x35\x7a\x88\x6f\x2b\x8d\xfb\xed\x36\x42\x43\xc9\x48\x18\x3d\x95\xc8\x20\x32\x69\x2a\x91\xa1\xcd\x24\x5b\xba\x03\x90\x6d\x07\x8e\xe4\x77\x37\xfd\x79\x11\xd3\xd9\x6e\xac\xf4\x67\xf2\x0a\xfc\x6c\x09\xa6\xd8\x13\x76\x06\x09\x24\x5f\x33\xb1\x69\x71\x82\x30\xe3\xd4\xe9\x1a\x0d\x00\xb1\x5f\x11\x68\xd4\x83\xab\xf8\xc6\x99\x16\x30\xf8\x13\x13\x2a\x8c\xfe\x58\x35\x64\xe1\x58\x37\x72\x29\x32\x8d\x4c\x0d\xa8\xa1\x01\x07\xac\x4f\x5a\x7e\x95\x12\x94\xd6\xc4\x6e\x30\xac\xbd\x03\x1f\x3b\x9c\x21\x7c\xc6\x82\xad\x5a\x62\x7b\x4a\x49\x05\xfa\x5d\x94\x8a\x70\xda\x6d\x21\x05\x47\xcc\x4e\xfc\x50\xbb\xb6\x9f\xd6\x6b\x35\xe8\x4f\x52\xae\x67\xcd\x49\x89\x0f\x99\xf9\x36\x40\x0b\x47\x54\x09\x30\x09\x3b\x5f\x79\x4b\x87\xb5\xc4\x74\xd9\x16\xeb\xb7\xe3\x2c\x81\xc1\x58\x3a\x33\xe5\x15\x2b\xb0\x72\x16\x0a\x94\x13\x96\x84\x98\x5c\xd8\x16\x28\xa9\xe2\x33\xdc\x63\x12\xca\x6b\x28\x96\x34\x84\x63\x80\x22\xb2\x21\x5b\x81\x22\x93\xc6\xce\xe0\x64\x38\x51\x8d\x55\xd1\x25\x2f\x37\x4f\xb6\x4e\x34\x3d\xfc\x42\xfe\xfe\xb8\x55\x6b\x1c\xa3\x21\x6a\xe2\x45\x4b\x9e\xd5\x46\xfc\x90\xcc\x07\xc4\x52\x39\xe3\x0b\x90\x15\xef\x91\x7e\x47\xc5\x7b\xa8\x66\xc7\x7b\x6b\xfb\xf4\x98\xd9\x56\x6f\x9c\x69\x6a\xcd\xe2\x78\x3e\xb8\x9b\x0f\xfd\x89\x98\xcf\xb6\xc0\xbd\xc2\x7d\xb7\x29\xb4\x6c\xd5\x4a\xd4\x19\xc4\x2a\xd4\x6f\x02\x29\x7c\x0c\x1a\x90\x51\x74\xf1\x28\x18\xaa\xb4\x4d\x66\x1b\xb9\xdf\x32\x8e\xb3\xb4\x8b\xf4\x14\xea\x47\x63\x07\x51\xad\xfa\x82\x9e\x44\xd1\xcc\x54\xd8\x32\xfc\xec\xb6\x11\x5d\x66\x45\xc6\x2a\x86\x19\x4d\x9d\x44\x4c\x04\xb2\x8c\x21\x8a\x56\xa9\x54\xf6\x6c\x61\xd8\x0e\x5d\x2c\xd9\xad\x52\xa9\xe1\xed\x70\xa4\x9a\xad\x32\xee\x4f\x2a\xc8\xdb\xe1\xc2\xb3\xb3\xa6\x22\x26\xa6\xf3\x26\x23\x5a\x22\xfe\x75\x34\x29\x0a\x1c\x8f\x6f\xfd\xc6\xda\x09\xcb\xcf\x18\x3e\xf4\xd6\x79\x56\x23\xa7\x4e\x8d\x9c\xa9\xfb\xac\x5b\x4a\xce\x27\x39\x77\x4a\xd4\x72\x6e\xf0\x9f\xcf\xbe\xab\xd9\x5f\xcf\x52\xf2\x44\x26\xb9\x10\x82\x18\x2d\x72\x0f\x4d\xa1\xe8\x05\xd6\x3c\x75\x84\xce\x97\x78\x27\xb7\xb0\x2c\x6f\x1d\x0a\xdc\x86\x56\x66\xe1\x82\x8d\x71\x50\x2e\x1d\xd4\x48\xa9\x6c\x9d\x3e\x3d\x2e\x27\x3f\x58\xb9\x64\x33\x33\x84\x8b\xd8\xb8\x84\xfe\x98\xc3\xa2\x1d\x30\xab\x89\xcf\x6f\x9e\xd6\xff\x5e\x83\x49\x58\x3b\xd6\x45\xeb\xe2\xc9\x6d\xe3\xd6\x2e\xc3\x80\xcf\xd2\x13\x7e\xae\xbf\xa6\xe8\x60\x4f\x6a\xad\x12\x73\xab\xd3\xa0\x82\x52\x20\xf8\xff\xb7\x9d\x14\xeb\xfb\x9f\x14\x57\xf1\x51\x41\x61\x9e\xf1\x53\xfc\x33\xee\xed\xf5\x7f\xf3\xe3\xa4\x6c\x8d\xc5\xdc\x9f\xb9\xe8\xa6\xe5\xe9\x71\xa3\x56\xe8\x90\xa9\xfe\xad\xae\x9e\x31\xa6\x23\x26\x7f\xd1\xb5\xb4\xcb\xae\xf1\x47\x9c\x47\xfc\x8c\xc8\x3c\x92\x1e\x6e\x3a\x81\xfa\x3b\x3a\xd2\xec\x46\x1d\x13\x22\xb5\x46\x0f\x05\xef\x3f\x61\xe3\xc0\x14\xd5\x60\x62\xea\xc7\x25\x7a\x20\xec\x94\xf3\x8e\x12\xf9\xf7\xbd\xd6\x57\xda\x4f\x33\x6c\x89\x8f\xd0\x28\x79\x41\x97\xad\xcd\x64\xef\x21\x13\x3f\xc3\xfe\x01\xa3\x6c\x94\xe4\x45\x31\x6c\x55\xe8\xd1\x84\x86\xbe\x01\x63\x43\x48\xc7\x2e\xd7\x8f\x1b\x95\xba\x7c\x5d\x0f\x5b\xdc\x1a\x38\xda\xcf\x38\x75\xc9\x25\xf5\xa7\x5d\xe8\x3a\x5b\xcd\x6f\xdf\x94\xf8\x5d\x8d\xb7\x7c\xde\xf6\x7b\x76\xac\x6e\x3f\x79\x36\x53\x5b\x51\xcb\x92\xb0\xcd\xf6\x98\xbb\x8b\xad\xc8\xfd\xef\x7b\xc3\xc4\xa8\x37\xbe\x6e\x82\xd2\xc0\x6b\x65\x87\x50\xe3\xdb\x47\xdb\x20\xf4\xae\xcc\xda\x1e\x95\xbc\xfd\x41\x81\x96\xb0\x3d\x8e\x5f\x54\xac\xf0\xee\xae\x66\xa7\x76\x49\x45\xb7\x4d\x52\xd4\xdd\xff\x13\xfb\x64\xf6\xed\xfb\xa4\x18\x59\xcc\xbe\xeb\xff\xee\x5d\xb2\x43\x9c\x5d\x96\x04\x82\x1c\xf6\x81\x9b\xa6\x1b\xe8\x50\x66\xa6\x8f\x8e\xf8\xbd\x73\xa8\x32\xde\x56\x8a\xbe\x4e\x59\x24\xa6\xcc\x07\x75\x1f\x51\xea\x24\xb1\xd0\xa3\xc4\xf7\x32\xf9\x57\xae\xd7\xee\xee\x30\xf5\x44\xa6\x03\x71\xd3\xc0\x06\xb0\xdc\x93\x7a\x50\xc1\x1c\x15\xfa\xf7\xc4\xb5\xa9\xd6\x4d\x69\x34\xd1\x4a\x4d\xc6\x53\x15\xe9\x56\xcd\xa6\x18\x2c\x99\x26\x44\xf2\x36\x7a\xac\x5f\x1f\x1d\xd5\x94\x94\x1a\xa4\xe4\xec\xcc\xe4\x07\xd2\x2b\x6e\x81\x96\xae\xef\xf8\x66\xe7\xa2\x0f\x83\xec\x43\x16\x7e\xb0\x85\x7b\xe9\x5c\xa1\x27\x85\xcc\x5e\x04\x69\x9d\xe4\x62\xb6\xfd\x7a\xc9\x5d\xe0\xb5\xa8\x7f\x8f\x2c\xfe\x87\xf1\x3e\x95\xe7\x0d\xcc\x59\xce\xcf\x59\x7e\x6e\xef\x7c\xe6\xfa\xcb\x4e\x34\xc3\xeb\x78\x8e\x36\xa2\x24\x7f\x69\xb1\x95\x72\x09\x73\xcd\x97\xc7\x25\x7c\x08\x5c\x13\xa9\x25\xd1\x4a\x7e\x6e\x71\x4a\x35\x72\xd6\x81\xc8\x87\x38\x10\xa5\x43\xf4\x48\x29\xa5\xf5\x44\x31\xa8\x85\xca\x96\x5f\x8e\x42\x77\xc1\x58\x38\x6a\x7b\x4c\x8d\xdf\x5d\xfb\x69\x3d\xf8\xce\x16\xfe\xd7\x10\x4f\xb4\x93\x4c\x83\x6f\x61\x83\x53\xcb\x60\x32\xa3\x2a\x84\xe9\x96\x22\x00\xe7\x32\xa0\x09\x3f\xe1\x41\x7f\x3c\x0e\xda\x7d\x84\xff\xa1\xb2\x33\x86\xc0\xae\xba\x54\x7e\x48\xfd\x24\xa4\x7d\x15\x05\xce\x57\x6a\xb7\x4f\xe8\x8e\x86\xbf\x6c\x01\xc1\x0f\x66\xd5\x8f\xae\x5c\xfe\xf6\x82\x74\x9d\xef\x6a\xa4\xc7\x50\x0e\xdc\x13\x51\x8d\x0c\xf1\xc7\x08\x61\x46\x63\xfc\x27\x72\x17\x80\xee\xc3\x10\x8c\x74\xa3\xf3\xc5\x8b\x48\x2d\x34\x74\x67\x22\xb3\xb6\x2d\x56\x69\x29\x22\xcb\x25\x09\x99\xfe\x5c\xe2\x66\x9f\xb1\x62\x42\x06\xad\xdd\x90\x69\x6c\x53\xc9\x24\xa7\xe8\xf5\x28\x82\x63\xdc\x10\x2f\xdf\xe6\xca\xa3\x1a\x10\xb3\xcd\x15\x56\xfb\x1e\x89\x84\x3c\x73\xa6\xa4\x21\x00\x8c\x23\x64\xb6\x50\x0b\xb7\xdb\x0d\x66\xb4\x12\xa3\x51\x93\xce\x7c\x82\x96\x66\xc4\x45\x76\x61\xa3\x45\x14\x2b\xfc\x1b\x2d\xbd\xb7\x3d\x14\xba\x41\x62\xa7\xc5\xde\x16\x51\xd1\xa4\xed\x6d\xfb\xc5\x8d\x17\xf6\xb5\x37\x63\xb0\x03\x43\xa9\x49\xba\xd4\x84\x96\x62\x36\x13\xfb\x1a\xc5\x31\x9d\xc9\x1e\x46\x2c\x81\xd9\xb6\x86\xbe\x22\x9c\x75\x92\xb3\xd0\x84\x16\xff\xdb\x10\xbc\x55\xc0\x95\x48\x72\x4e\x96\xd2\x12\x3f\x1a\x22\x0f\x09\x32\xed\x7e\xd8\x5b\xb4\xc8\xc9\x31\x2a\xd4\x99\x32\x39\x2e\x11\x6a\x87\x29\xc2\x62\xe8\x0e\x37\x55\xd0\x4e\x54\x10\x00\x6d\xe0\x04\x24\x3e\x17\xe0\x4c\xd1\xa0\x61\x24\x46\x7b\x6e\x44\x12\x00\xed\xd4\x26\x57\x25\x76\xfb\xa2\xd7\x6f\x8e\xb9\x8a\x8a\xca\xbf\xe7\x25\x44\xa1\x1b\xac\x6d\x3c\x3b\xab\x11\x1f\x1a\x61\xa7\x17\x54\x88\x8b\x8d\x3a\x86\x9a\xf3\x87\x2f\x4b\xaf\xdd\x5f\x51\x37\x14\xec\x99\x9a\x3f\x94\x24\xe2\x93\x3f\xb1\xb3\x0e\xba\xf1\x70\x03\x62\x8a\x71\xae\x3d\xf2\xe0\x54\x96\xa1\xab\x66\xfd\x51\xac\x60\x6c\x27\xb5\x46\x84\xc3\xec\x43\x67\x5c\xe1\x0e\x6e\x7c\xbe\xfe\x66\xce\xa4\x42\x9d\xec\xc0\xbf\x7c\x95\xcd\x73\xb5\x4b\x90\x44\xeb\x83\x7e\x29\x88\x06\x04\xe3\x53\xe7\xc3\x36\xc3\x5e\xe0\x0d\x12\xcc\xfd\x80\x92\x0f\x36\x59\x3a\xdd\x7d\xb2\xaf\x9c\xde\x3e\xd9\xd7\x4e\xdf\x90\x9d\x6c\x9c\x81\xe9\xd5\xd6\x19\x9a\x5e\xdd\x9a\x9d\x6d\x20\x0a\x1f\x51\x72\xb4\x13\xe3\x60\x86\x2e\x37\x46\x64\x71\x0d\xd4\x1a\x27\x6b\x83\xd6\x55\x48\x6a\xd7\x8d\xab\x1a\x09\xaf\x6d\x06\x5c\xfb\xfd\x77\x6a\xcf\xfa\xfb\xef\x92\x61\x87\xce\x8d\xc7\xd3\x5a\xe4\xc8\xe3\x36\x36\x2a\x51\xab\x70\x6e\xe9\x45\x7a\x2a\x1c\xa8\x2d\x6c\x72\x26\x1c\xb4\x2d\x50\x4c\xbd\x40\x47\xba\x17\xce\xdc\xa8\xff\x63\x2b\x4b\xd1\x00\x5e\x3a\x17\xf7\xd0\x00\x8a\x8a\xc8\x4b\xe7\x52\x51\x01\xbe\x82\xea\x24\x25\x60\xf3\x65\xf4\x76\x86\xf8\x51\x0d\xa7\x4a\x07\x7b\x20\x7e\xc0\x55\x85\xb5\xee\x59\xea\x14\x1d\x52\xed\x5d\x8a\x52\xd0\x05\x4a\x8d\x03\x77\xbe\x9c\x05\x4a\x5e\xa0\x4d\x7a\xda\xbc\xee\x6c\x18\xcc\x7e\x9c\xf5\xa1\x01\xaa\x4a\xbe\x48\xb3\x8c\xaa\x15\x3e\x53\x96\x43\x6a\x99\xee\x49\xe4\x06\x19\xc1\xf4\x5a\x07\xb4\x89\xf4\x0a\xb7\x48\x71\xdf\x5a\xc8\xda\x90\x37\xba\x9c\xf0\x0e\x28\x67\xb7\x51\xb3\x77\xcd\x57\xd1\x37\xc1\x31\x56\x95\xc9\xe6\xfd\xe3\x48\x0c\x32\x13\x09\x0c\x4a\x41\x5e\x5b\x67\x27\xb5\xd6\x59\xe3\xd4\x96\x78\xf2\x37\x52\x22\x2c\xa5\xe5\x38\x7a\x26\x86\xa6\xe8\x17\xca\x6d\xea\x5c\x6d\xe4\x3c\xaa\xfe\xdc\x58\xf1\x07\x49\xde\x99\x31\x86\x44\xef\x6d\xed\x28\x4f\x1b\xc9\x7c\x51\x62\x3c\x4a\x7c\xd6\x74\x26\x5a\x24\x91\xa1\x4c\x7f\x34\x92\x3c\xa2\x46\x7d\x7b\xfa\x4c\x12\x74\x48\x4f\xbc\x27\xb5\x93\x55\x0b\x3f\x2b\x7c\xdb\x15\xaa\x4b\x1a\xfc\x2f\xfb\xd6\x72\xe7\x56\xb6\xec\x04\x77\x15\xcc\x14\xb4\xfc\x8d\xea\x71\x19\x5e\x5b\x5f\x29\x68\xb3\x81\xd5\x11\x2a\x31\x6b\x6c\x29\xf3\x55\x3a\x5f\xce\x66\xf4\x52\xa4\x26\x73\x69\xa6\x4a\x1a\x10\x75\xdf\x9a\x74\xc8\x6b\x6c\x96\x39\x5e\x7e\xf8\x66\xa9\x0b\x56\xf3\x60\xd1\xbd\xf4\x43\x35\x4a\xb7\xe2\x5b\x67\xf6\xf4\xbb\xe6\x12\x6a\x68\xbd\x92\x0f\x57\x3c\x05\xaa\x9a\x5d\x9f\x21\x26\xd2\x2a\x2a\x6e\x2d\xac\xdb\xa6\xa7\xc0\xec\xe9\x31\x97\x08\x71\x09\x19\x24\x7e\x40\x31\xd2\xdb\x72\xe9\x3d\xfd\x17\x7e\x57\xe0\xcf\x01\xfb\xc3\x9f\xfe\x55\xba\xdf\x6a\x58\xc6\x33\xb4\x61\x33\xf4\x79\x16\xac\xfa\x90\xed\x8f\x5e\x0e\xdf\xd0\x6e\xe1\xf5\xf0\x00\xa3\x6d\x14\x5b\x01\x91\x20\xf5\x22\x09\x6b\x62\xc4\xa0\xf9\x6b\x45\xa6\xad\xbe\xb3\x86\x2b\x1a\xa1\xff\xad\x3a\x5a\xb7\x96\x3e\x04\xee\xa4\xd4\x28\xc1\x91\xd7\x1f\x2f\xc7\xf8\x0b\x58\x34\xfc\x65\x37\xcd\x1f\xd8\xe5\xe3\xf5\xff\xa7\x7e\xce\x87\x98\x8f\x78\x05\xec\x3d\x1d\xbb\x58\x3a\x93\x27\x79\x69\x3b\xdc\x75\x28\x0d\x8a\xd1\xd1\x23\x94\xe9\xe7\x9f\xa3\x23\x6a\xed\x6b\xb6\x90\xe6\xad\xe8\x17\x90\x93\xd7\xc0\x51\x1b\x72\xb3\x5b\x07\xaa\xeb\x67\xb4\xc6\xe4\x0e\x2d\xe5\xa9\x81\x96\x6f\x83\xac\x3e\x44\xa5\xe4\x47\x5a\x6c\x98\xd9\x99\xb8\x9c\xfc\x4c\x0b\x8e\x1c\x5c\x26\x63\xe7\xd9\xdf\xd1\x59\xe5\xb3\x5a\xec\xaa\x32\x65\x6e\x7d\x55\xfa\x4b\xbd\xf3\xb7\xbf\x79\xcf\x4b\x14\xa6\x66\x74\xd0\xcd\x36\x8f\xd9\x41\x77\xec\xc5\xdb\xd6\xf8\xda\x7e\x10\xe1\x12\xfb\xa2\xf7\x91\x40\xd0\xef\xbb\xaf\x94\x44\x7c\xf3\xbd\xa5\x32\x70\x13\xf9\xc1\xaf\x7b\xcb\xae\x32\xe5\x2b\x46\xe7\x36\xd9\x22\x20\xa3\x30\x27\xe6\xaf\xf7\x96\xd0\x65\x4b\x74\xfc\x74\x31\xdf\x2c\xd1\xa1\xaf\x88\x9f\x27\xd1\x11\x1c\xb5\x5f\x40\xa2\x13\xf1\xda\x7e\xa6\x44\xc7\x17\x12\x1d\x26\xa8\x28\x2a\x8e\x41\x55\x8d\xe3\xc2\xc1\xc3\x35\x3d\x0e\x06\x86\x88\x95\x0b\x6d\xea\x6e\x68\x64\xf6\x31\x94\x94\x0f\x79\x54\x3e\x94\xdc\x94\x5e\xa6\xe4\x25\x2d\xc3\x38\x47\xc6\xf5\xdb\x04\x19\x01\x99\x08\x41\x46\x9e\x88\x22\x14\x00\x58\x03\x50\x79\x48\x42\xd2\xc5\xc3\x64\x54\xe9\x52\xf1\x47\x97\x7f\x12\xea\xec\x5a\x63\x63\x86\xfd\xda\xb1\x28\x6a\xdc\x11\x3c\x95\x18\x1c\x06\x77\x77\x87\xb2\x9c\x02\xfb\x98\x74\x7b\xc1\x61\xd8\x1e\x09\x61\x62\x9a\xa1\x11\xdb\xac\x00\x42\x67\x4e\xb2\xda\x4c\xf1\xc7\x5c\x11\x7f\xe4\x66\x5f\x28\x22\x91\xdc\xec\x4b\x27\xcc\x11\x24\xd0\xcf\x1b\x49\x13\x02\xc4\x76\x39\xcb\x7b\x4b\x13\x78\x6d\x64\xed\xac\x14\x91\xc2\x06\xea\x94\x45\x0a\xeb\x6c\xcd\x37\xab\xec\x17\xa8\x1a\xeb\xca\xce\xbb\xe8\x2f\x46\x01\x42\x99\x97\x39\x5c\x7a\x37\xe6\xd2\xbb\x2a\x97\xbe\xcd\x74\xcf\x1a\xe1\x06\x66\x78\xf1\xd1\x10\x56\x0b\xa4\xf4\x23\x61\x4f\xa7\x75\x35\xe5\x32\xa3\xe9\x35\xca\x9f\xee\x2b\x35\xda\x46\x52\xa3\x84\xe0\xc9\xd9\x72\xa9\xd1\x5a\x09\x42\x22\x86\xae\x99\x20\x9d\x66\x3d\x6b\x7a\x2a\xdf\x21\xf6\x29\xb9\xa9\x6c\xc6\xc7\xd8\xcd\xd3\x5c\x08\x07\xed\x8b\x4e\x7d\x1f\x1b\x90\x63\x0e\x38\x79\xf2\xeb\x9a\x2f\x3d\x51\x9d\x84\x30\x60\x30\x38\x73\xfd\xa2\x14\xda\xd5\x72\x73\x86\xa9\x70\xa6\x6a\xdd\xb0\x2f\x7d\xe6\x6c\x94\x19\x94\x17\x1a\xfa\x19\x91\x8c\xdc\xcf\x22\xc0\x39\x2d\x79\xee\x8c\xef\xee\xb6\xb2\x9e\x6c\xca\x10\xeb\x17\x51\x95\xf1\x16\xe3\x9a\x49\xba\xa7\xb6\x1c\x02\x3f\x7d\xfa\x02\x72\x6b\x7a\x9e\x74\x4e\x72\x77\x77\xce\x1c\x21\x14\x15\xeb\x89\xe6\x32\xe0\x6e\x06\x8e\xd5\x95\x00\x88\x49\xac\x42\x50\xf9\xce\x6e\x5e\xea\xc3\xd0\x60\x9c\x98\x1b\x39\x4e\xcc\xdf\x9e\xdc\x3c\xfd\x0e\x7a\xac\xff\xb4\x99\x28\x51\xe9\xdb\x46\x22\x15\x56\x1d\xfb\xd6\xe7\x6c\xfe\x5f\x3a\xea\xe7\xb9\xd8\x7f\xbc\xdb\xcc\xf1\xa2\x9c\x53\x2c\x8d\x42\x83\x7d\xa9\x47\x2c\x44\xdd\x27\x89\x0e\x73\x78\xce\x43\xf7\x1b\xbf\x93\x14\x9b\x87\xb6\xda\x1f\x07\xb3\x6a\x67\x84\x7a\xfd\x98\xf3\x49\xdc\xeb\x54\x37\x9d\x8e\xde\x83\xe4\x07\x63\x80\x3a\xc8\x00\x75\x19\xc3\xf4\x82\x33\x4c\xcf\x23\x8e\xe9\x98\xb3\x4c\xf5\xe3\x9a\x91\xb3\x11\x6c\x92\x81\xaf\x31\xb0\x49\x26\x86\x26\x62\x93\x22\xa7\xf9\x2f\x5e\x00\x1f\x42\x7f\x47\x6a\x70\x85\xc7\xe0\x83\xfa\xd2\x0b\xd7\x78\xd8\xb1\xa7\xd7\xa8\x1d\xb2\x63\x27\xa1\x4a\xac\x22\xd9\xa1\x21\x46\x23\x82\x93\x44\xf1\x14\x90\xe4\x5a\xc4\xbc\x95\x12\xde\x52\xb8\x3f\xbc\xaf\xc3\x60\x8b\x6e\xbf\x90\x7b\x22\x9c\x77\xe5\xee\xc4\x19\x25\x27\xbc\x9d\x23\xb0\x05\x0f\x0b\x57\x0e\x85\xb4\xcb\x6e\x7e\xb9\xd0\xb4\x0e\x24\xa4\x1c\x62\x2d\xb3\x06\x5c\x32\x86\x2a\x84\x57\x45\x8b\x7e\xfd\xd8\x2b\x12\x3a\xc6\x65\xdf\x5d\x49\xfb\x75\x67\xd3\xb5\xe7\x09\xbd\x97\xa2\xfd\x0f\xa5\x60\x48\xed\xc7\x67\xd6\x8c\xbc\x53\x0e\xb3\x66\xd4\xa1\xe7\x31\x6b\x46\xa5\x7f\x26\xd7\x65\xd4\xf6\x67\x73\x5d\x46\x16\x2f\x9f\xeb\x32\xf2\x79\x8c\x90\xdd\x9f\xcf\x63\xdf\xd4\x38\x2f\xc0\x06\xf0\x9d\x64\xa7\x39\x13\x39\x9a\x6c\xb4\x53\xf1\x3e\x43\xee\x82\x92\x3d\x62\xcd\xc4\xb5\x50\xa7\x22\x34\x68\x03\x89\xeb\x3e\x3c\xa4\xfe\x20\x78\x66\x7e\x87\x9a\xbb\x94\x74\xd8\x5a\xb8\x6f\xbc\x66\x6d\x0f\xd3\x95\x2a\x5d\x4d\xbd\xa6\x3d\xce\xe6\x75\x75\xa2\x03\x33\xaf\x4b\x5f\x91\x6e\x1e\xaf\xcb\x33\x90\x6e\x01\x5e\x57\xe4\x21\xdd\x4c\x5e\xb7\x5b\x8c\xd7\xd5\x81\x31\x80\xd7\xed\xc4\xbc\x6e\x20\xf3\xba\x41\x82\x47\x95\x55\xf3\x14\xa5\x69\xe4\x5f\xff\x43\x62\x60\xfd\xe5\x98\x7a\xa7\x60\x71\x0d\x0b\x33\xb2\xa3\xa8\xd7\xaf\x23\x8b\xce\xd7\xbc\x4e\xab\x63\x93\xd9\xd1\x51\xf4\x88\x1c\x9c\xf4\xd8\x43\xbb\x53\x73\x1c\xd5\x53\x4b\x46\x63\x4a\x4c\x69\x74\xaf\xfb\xcb\xd9\x9c\x91\xec\xeb\x0a\xf7\xde\x68\xc7\x11\x86\x2e\xa1\xfc\xab\xea\x26\x8e\x44\xb9\x21\xaf\xaa\x7d\x47\x02\xb7\xbd\x14\x01\x34\x21\x9b\x6d\x93\x77\x96\x54\xfa\x75\xf1\xd6\xdd\xe5\x22\x44\xcb\x22\xe6\xcb\xc0\x81\x46\xc8\x39\xf3\xd2\x73\xce\x7c\xb0\x6c\xa5\x7a\xdf\x21\x9b\xed\x71\x0e\xf2\xd5\x35\xa3\xd7\x5c\xc7\x8b\xaf\x56\x8c\x6b\x28\xdd\xb3\x44\x30\xea\x48\x9d\xc4\x2f\x5c\xe6\xf1\xe0\x7d\xae\x90\xe0\xbd\x4d\xde\xc7\x60\x3d\x20\x80\xe9\x6e\xac\x94\xca\x1b\xc4\xec\xd1\xe6\x3f\x30\x36\xff\xa3\x49\x8e\x10\x92\xf7\x18\x4d\xf2\x93\xd1\x74\x7a\x4a\x33\x98\xa4\x0a\xe8\xfd\xe6\xa2\xf5\x9e\x71\x08\x9e\xdd\x78\x6f\x70\x8f\x75\x61\x8b\x2c\x1a\x19\xc4\x96\xfb\x0b\xb2\xde\xc2\x22\x89\xe6\xc4\xe6\xee\x86\xac\x37\x90\x6a\xc7\x13\xb5\xc5\x0b\x95\x1e\x79\xce\x88\xba\xb6\xd0\x00\x1e\x0f\xdd\x28\x13\x22\x89\x6f\x99\xd4\xe5\x73\xf3\xd6\xf9\xba\xa3\xee\x42\x3e\xa3\xab\x90\xad\x7d\x7b\xf5\xf9\xda\xd9\xc2\x3f\x49\xf7\x51\x2d\x4c\xe4\x12\x85\x9a\xdd\xc0\x27\xfa\x4d\xfe\x49\x43\xcb\x05\x3d\x77\xd5\x0f\x67\xd5\xf6\xcc\xed\x5a\x3c\x52\x27\xfc\xe4\xa1\xe1\x4f\xe3\x94\x12\xb9\x8c\x1f\xa8\x0f\xb0\xd7\x36\x8b\x8e\x37\x3a\x3a\x1a\x71\xab\x2d\xfc\x65\xc4\x6e\x1e\xb8\xaa\xf3\x9b\x9d\xb0\xf5\x32\x0b\x69\xde\xa3\x90\x06\x1a\x79\x9f\x2b\xa7\x41\x8f\x52\x3c\x26\x21\x25\x78\x3b\xd5\xad\x78\x58\xdb\xf0\x70\xc1\xb8\x73\xea\x90\x88\xc6\x71\xa7\xd3\xf8\x83\x93\xd1\x5f\x65\xe6\x53\x9f\x27\x8a\x01\xc3\xd1\x27\x62\x70\x04\x1a\xb3\x62\xff\x83\x18\xcf\xe0\xfb\x4a\xf5\x1f\x2f\xa8\x53\xa5\xda\xb5\x83\xbf\x6d\x72\x45\x1f\x2a\x18\xe6\xc0\x7e\x6a\xd5\xcb\xf4\x07\xb1\x68\xd8\x03\x8f\x9a\x4e\xd3\x44\x14\x49\xc0\x57\xff\xe2\x5c\x71\x6c\xc9\x0f\xda\xf8\x3a\x48\x63\x53\x2e\x01\x45\x1a\x86\x2c\xe8\x54\xe5\xba\x19\xcf\xc4\x17\x7b\xf7\x52\x92\x59\x8c\xa0\x0e\xf5\xf3\x54\xa4\x18\x36\x35\xf2\xf1\x9a\x62\x69\xc7\x53\x4b\x6c\xc7\x91\xe3\x5b\x78\x88\xc0\x3a\xff\xd1\x59\xb5\x78\x04\x87\x92\x8b\xea\xf5\x9f\x9c\xf7\x46\x19\x95\x7a\x82\x2b\x71\x6e\x7f\x76\x7e\xba\x87\x98\x2a\x55\xa1\x2c\xa5\xfa\x05\xaa\x94\xa5\x54\xb0\x98\x7e\x2e\x1c\x04\x17\xca\xe7\x64\xde\xc4\x76\xf7\xe2\xc0\x55\xe3\x6d\x61\xb6\x70\x52\xa0\xa6\xad\x64\xc1\x9f\x93\x35\x0e\xba\x94\x9f\x17\xd9\xde\x39\x13\x86\x98\x3a\xf8\x63\x6e\x25\xee\xaa\xfb\x3e\xbf\x9e\x82\x03\x65\xf1\xa5\xb8\x20\x30\x27\x2f\x9e\xae\xb3\x70\xc4\x1b\x26\x37\x18\x37\x9c\xcb\x81\x3e\xc2\xb7\x55\xe4\x3e\x72\xbd\x1c\x17\x32\xe2\x47\x75\xdf\x26\x63\xa4\xa6\x0e\x9d\x7e\xe4\x3d\x03\xe3\xc5\x53\xe2\x2b\x4e\xca\xbd\x3a\x32\x9b\xcc\x12\xc5\x21\x4e\xa0\x32\x8e\x24\x94\x36\x59\xb2\x03\xe4\x57\xe7\x8a\xf2\x93\xa5\x1f\x82\x0a\x15\x27\x1e\x6c\xd9\x1a\x20\xe2\xe4\x69\x1c\xae\x77\xd7\xcd\x01\x1f\x74\xfd\x79\xcd\x66\xec\x25\x2a\xe2\x9e\x3f\x7f\x0e\xad\xc8\x7f\x70\xc7\x62\x7f\x4f\x47\xfd\x2e\xe5\x37\x85\x0f\x12\x85\xe3\x8f\x18\xfe\x17\x8c\xef\x03\x76\x3f\x39\x32\x75\xe2\xf9\x74\xfe\xba\xd7\x20\xd9\xd4\x0f\xec\xdd\x4f\x39\x42\xdc\x71\x2c\xc4\x8d\x4b\x93\xc5\xd1\x91\xda\xa5\xad\xe4\x29\x23\xbb\xc2\x8f\x4c\xb2\xc2\x8e\xa9\xdf\xb2\x8e\x78\xea\x56\x77\x8c\xc1\x34\xf8\x31\xdf\x8c\x4f\x0b\xe5\x8d\x7c\xd3\xfc\x16\x5d\x76\x3f\x65\x8b\x3d\x13\x15\x44\x18\xa1\x8f\x4f\x8f\x25\xc9\x12\xfa\x3e\xa9\x9b\x9d\x9f\x48\x16\x54\xbf\x19\x68\x04\xee\xa7\xda\xae\x0e\x60\x47\x5a\x25\x72\x80\x16\xae\xc2\x15\x9c\xef\x4e\x26\xe1\xe2\xc0\x03\xfe\x26\x76\x15\x07\x93\x46\x65\x94\x07\x28\x56\x3a\x98\x02\x25\x1e\xb6\xab\x68\xa8\x07\xbb\x62\x18\x6d\x30\xb1\x31\x3e\xc5\xcb\x88\xae\x17\xf6\xc1\x68\x9c\x42\xfa\xc1\x50\x84\x25\x85\xe5\x05\x5a\x4e\xdc\xc4\x6d\x9b\xfc\x64\x8a\xb1\x2d\x56\xc8\xd0\xc6\x63\x40\x91\xe0\x4a\xe7\x5b\x02\x05\x98\x58\xa6\x71\xce\x03\x05\x25\xc8\x41\x5b\x1f\x93\x28\xaf\x4f\x36\xbd\x9e\xb5\x53\x88\xb2\x8d\x91\xbb\xad\xe2\x44\x6a\x66\x80\xed\xba\x24\x99\x26\x3b\x3e\x12\x9e\xcd\x59\xf2\x4e\x63\xc5\x12\xe7\x3e\x1c\x5d\x79\xd7\x11\x79\x71\x74\xc4\x9e\xd5\xb5\xc8\xd6\xef\xbf\x9c\xc4\x99\x23\x1d\xc4\xfc\x94\x2b\x44\xc2\x40\x1b\xc9\xc5\x6e\x37\xff\xc5\x3e\x41\x07\x59\x1c\xbd\x27\x45\x21\xf7\x62\x61\x7a\x3d\x0e\xbc\xfa\x6b\x41\xba\x09\x1a\x3d\x3c\x63\x92\xef\xdf\x13\xe3\x48\xde\x29\xfa\x28\xeb\x7f\xd5\xc7\x13\xa4\xcb\x9d\xb8\x9e\xc6\x43\x74\x60\x61\x83\x11\xfd\x55\x3b\x41\x5b\x2f\xef\xe4\x53\xeb\x53\xc3\xdb\x35\x7f\x37\xc5\x62\xe7\x7b\x0f\x43\x40\x0e\x83\x0a\x5f\x3f\xc7\xc9\xf4\xb6\x3b\xef\x51\xef\x5d\x28\xdf\xae\x91\x7a\x2d\x59\x52\x1b\xff\xb0\xc3\x17\x8f\x0d\x53\xaa\xcc\xa7\x1d\x87\x71\xaf\xcb\xd6\x95\xc7\xd2\xd2\x45\x51\xb5\xeb\xc9\xb2\x6a\x78\x22\xbf\x27\x3a\xa6\x31\x77\x33\x4f\xc8\xdd\x1d\xce\x07\xb5\x80\xbb\x77\xf3\x3a\xbf\x39\x9e\xe7\xfc\x2b\x49\xa8\x53\x66\x53\x21\xf4\x90\x9b\xf4\xd2\x31\xf1\x4d\x28\x5f\xb9\x02\x65\x73\x3f\x93\x8d\x51\xa3\x03\x95\xc1\x3b\xa1\xb6\xf8\xc4\xc5\xa4\x78\x82\xaa\x2f\xcc\x04\x0c\xd2\xae\xfc\x54\xfa\x27\x70\x1e\xde\xde\x62\xfd\x97\xc0\x06\xf4\x63\xc1\x7e\xea\xf0\xc1\xc8\x68\xdd\xd8\x64\x8b\x69\x91\xba\xfc\xaf\xdd\x8a\x7e\x35\x34\xae\x33\x3f\x3e\xfd\x1b\x90\xe9\x36\x2b\x45\xc3\x0a\x56\x3e\xa1\xcd\xa5\xba\xad\x36\x05\x6f\x49\xbc\xac\x03\xc9\xee\x93\x5d\xba\xe6\xba\xe8\xa4\x74\x6d\x2a\x1a\xb1\x7a\x7c\x08\x81\x18\x42\x2f\x1a\x42\xcf\x3c\x84\xdf\xac\x4f\x4f\x9f\x7d\x97\x18\xc2\xc7\xf4\x10\xb6\xc9\x66\x7b\x29\xc2\x2b\x7d\xee\x87\xda\x00\x02\x5c\xb0\x42\xd1\x6b\x4c\xf0\x80\xaa\xde\x6c\xf9\x4a\x96\x80\x84\x0a\x5f\xf0\x0e\xd1\x09\xe0\xcf\x13\xcd\xbb\xd8\x7e\x5f\xc4\xc2\xa1\x1b\x9e\x60\x87\x5e\x22\xdb\x54\xa8\x9d\x81\xda\x0e\x23\x37\x35\xcd\xc4\x07\xae\x23\x1d\xbe\x64\xad\x3c\x6d\x51\xf0\x85\x9f\xed\x37\x67\x9d\x6e\x30\x16\xdf\x40\xbb\xfd\x84\x2f\xe5\x38\xab\xda\x6e\xc2\x89\xf0\x56\xf8\x0a\x6e\x66\x57\x3f\xcc\xd6\x5f\x48\x6d\xa0\x9f\xec\x2a\x0d\x8f\xf2\x5a\x44\x5f\x9d\x8b\x68\x1b\x24\x20\x7d\x32\x40\x5b\x5c\xe0\xe9\x34\xd7\x91\x72\x35\x2b\x97\x18\x51\x39\xfb\xd4\xc5\xd7\x25\x3d\x2a\xca\xac\x4a\xd4\xca\x19\x8d\xc1\x0f\x7b\x95\x73\xf9\x3e\xfb\xaa\xbf\xfe\xcc\x02\xc9\x56\x37\xe8\x04\xa0\x13\x07\x89\xa5\x51\xea\xac\x1e\x74\x52\xf0\xcb\x43\x47\x14\xbe\x0a\xae\x9b\x52\x0c\xfd\x28\x86\xc2\x10\x8d\x91\x35\xb1\xf5\xdb\x3c\x5e\x22\xd1\xbd\x44\x0b\xe6\xbe\xe3\x45\xb2\x0f\x8b\xf6\xc5\x1a\x92\xc0\xb6\x71\x05\x51\x4b\x60\xca\x64\x74\x69\xfc\x5c\xa6\xb2\xf2\x50\x48\x41\x33\x71\xad\x15\x8e\xba\x9b\xb8\x9b\xd8\x12\xe4\x5e\xce\x8f\x05\xdc\xc7\x8b\x24\x2b\x62\xdf\xf8\x6c\x83\xfd\x66\x13\x29\xac\xb7\x94\x4d\x32\xdf\xae\xe8\x92\xeb\x14\x4a\x58\xad\x3d\x7b\x32\x25\x18\x3b\x0a\x01\x15\xc1\x7c\x41\xa7\x96\xf6\xc5\x1a\x98\x29\x5f\x3a\x1e\xe8\x68\x48\x6e\x22\xd7\x76\x78\xcc\x0e\xae\x66\xd7\xf1\xe7\x70\x50\x73\x86\xfd\x9f\x3b\x5d\xc5\x75\x1c\x9f\xae\x36\xce\x44\x60\x37\x87\x91\xfc\x3f\x56\x97\x51\x9a\xb7\x5f\x96\xa8\x5e\x31\xe0\xb2\x20\x7f\xd5\xe0\x78\xd6\x07\x29\x5a\x8a\x5d\x55\xc3\xc1\xe9\x46\xd1\x53\xbb\x84\xf4\x12\xbb\x2c\x39\x38\x76\x4e\xd8\x87\x69\x0c\x50\x29\x07\xfb\x87\x19\xea\xbe\xc2\xe0\xcc\x78\x35\x02\x83\x9b\xbd\xad\x92\x40\x6c\xcd\xa6\x42\x87\x5a\xec\x14\xa5\x9b\xf6\x4b\x22\x00\x8a\x8b\xb2\xf5\xf4\x92\x95\x49\x3d\x4b\x43\x43\xb2\xf0\x3a\xf1\xf1\x14\xe7\x87\x63\x62\xa7\x48\x40\xe3\x57\xca\x42\x97\x9a\xa2\xe7\x25\xb4\xc3\x4e\xd5\xbe\xe9\x40\x15\xaf\x64\xf9\xb5\xa9\x4a\x71\x24\x42\xad\x6b\x27\x7e\x54\x0f\xac\x1d\xea\x0a\x24\x33\x71\x8d\x0e\x22\x61\x35\x1e\xc9\xd1\x7d\xe5\x1c\x7a\x77\x77\x67\xbd\x73\x98\x80\x10\x5a\x50\xd6\x34\x8b\xd7\x74\xe8\xf1\x33\x42\x88\x44\xbd\xa6\x08\x84\xce\xcf\x0e\x97\x9e\x77\xcc\x17\xa2\xaf\xe6\x6a\x3b\xef\x2c\xf4\x6f\x2d\x7c\x19\x57\xff\xf1\xe2\x04\x49\xf0\xcb\x16\xac\x72\x99\xf4\x47\x7b\x73\xcf\x6e\xa4\x52\xeb\x44\x34\x13\xb5\x97\xc5\xef\x70\x8e\xc9\xf9\xba\x6d\x58\xef\xe8\xbb\x4a\x9b\x0a\x2e\x11\x9e\x87\x7e\x2f\x90\x0b\xda\x89\xc3\xba\x13\x23\x13\x90\xe6\xa6\x9e\x50\x15\xcf\x9c\x96\x4d\xdd\x9e\xaa\x29\x7d\xa9\x14\xbd\xfe\x2c\x9b\xc6\x58\x4e\xa6\x0d\xd5\xe3\x9a\x6e\x0d\xde\xcc\x48\x07\x89\x18\x33\x10\xc4\x33\x01\x1b\x7f\x16\x0b\x45\x38\x0a\x02\x1d\xd5\x4e\x1c\x7d\xb8\xac\x18\x20\x4d\xff\xdc\xe0\x84\xf2\x78\xfd\x87\x34\x5c\x7f\x1d\xc3\xf5\xd7\xc8\x0a\x7f\xad\xf1\xd7\x06\x3e\x7b\xbf\x4d\xad\x1c\x95\x08\x09\xd4\xb8\x91\x56\x72\xca\xfe\x9c\xe9\xa1\x12\x2e\x9c\xb4\x6e\x37\xc0\x38\xd7\x0a\x1e\x42\xb9\x9b\xd5\xbd\x2b\x3b\x0a\x20\x17\xd4\x93\xc0\x25\xf4\xa7\x29\xf6\x49\x4d\x25\x09\xba\x7a\x0f\x02\xc2\xc1\xcb\xdf\xd0\x99\x32\xcf\xb1\x68\x09\x87\x59\x0c\x57\x82\xec\xa3\xf1\x94\x93\x96\x4c\xf2\x9c\x63\x6c\x72\x22\xde\xa5\xbe\x68\x57\x57\x14\x6e\x27\xb6\x4b\x59\x70\xa8\xc3\xba\x84\x2b\x4a\xf8\x67\x78\xe5\x7c\xed\x37\xe0\x33\xa0\x3d\xc0\x6b\xad\xc3\x83\x73\x72\x61\xeb\x4d\xf6\x52\xaa\xcf\xaf\x6c\x91\x35\x5c\x93\xd2\x46\xd1\xd9\xd0\xd9\x6e\x20\x99\x27\x66\xbb\xb1\xc6\xd8\x6d\x6f\x33\xdb\xf2\xa4\xc0\x38\x9e\x72\xf4\xf1\x27\x9b\x48\xef\x95\x73\xcc\x93\xce\x31\x29\x0f\xeb\x34\x7a\xd3\xd7\xb0\xfa\xbe\x4a\x45\x8a\xdc\xf4\x94\xde\xed\x9a\x7a\x8a\x37\x07\x33\xc3\xad\x33\x36\x0d\x76\xc7\x72\x42\x18\xb6\x00\x27\x3f\xa2\x04\x01\x9c\x91\x82\x46\xee\x9a\xfc\xd1\xf1\x61\x71\x09\x20\x4d\x74\x29\xe3\xcb\x79\x02\x58\x93\xd5\x47\x03\xb0\x66\xa4\x00\x6b\xe8\xe2\x79\xc7\x62\x8f\xa4\x6d\x12\xce\xe1\x70\xa4\xc2\x17\xa7\x83\xbf\xe8\xc1\xe3\xf4\xb9\x0a\x10\x65\xa5\xce\x00\xe9\xc0\x53\xf4\x94\xd1\x85\x5f\x5b\xfa\xab\x47\x3c\xf9\x5c\xa2\x21\x51\x9d\x21\xba\x6c\xa7\x71\x56\xb6\x12\x8e\x66\xf4\x10\x38\x9a\x4c\x7c\x8a\x11\xa3\x9f\x8d\x4f\xd1\x3b\x29\x40\x0f\x18\x62\x3d\x1b\x0a\xae\xd3\x05\xd7\x91\xf7\x8b\x73\x3e\x6d\x7b\x05\x88\x15\x85\xdf\xd3\xe9\xdf\x27\x4e\x2b\x73\x9d\xc1\x4e\x51\x53\xb9\xb3\x74\xb9\x33\x16\xaa\x99\x9d\xfe\xf4\x98\xd9\x3b\xa4\x6e\x36\x14\xc7\x18\x45\x18\x87\xf9\x2b\xae\xa1\xbd\x43\x1f\x63\xc9\xdf\xb2\x4a\x1a\x43\x59\x4f\xc2\xcb\xd9\x2c\x9c\x9d\xf7\x02\x7f\x68\x2a\x7c\x99\x2e\x7c\x59\x08\x3b\x34\x7a\x44\xec\xd0\xe8\x7e\xd8\xa1\xd1\x9f\x80\x1d\xd2\xb4\x59\x00\x3b\xa4\x03\x7a\x99\xb1\x43\xf4\x15\x19\xe7\x61\x87\x78\x06\xc8\x98\x8f\x1d\x12\x79\xc8\x38\x13\x3b\x34\x16\xd8\xa1\x4c\xb3\x96\x24\xfe\xcc\xa3\xf8\xb3\xb4\x59\x0b\xe9\x73\xd1\xe9\x04\x67\x68\x49\xa3\x0a\xa4\x48\xbc\xa2\xd1\x80\xf1\x46\x72\x5c\x82\x91\x08\x0f\x6b\xa8\x8e\x97\x0f\x66\x8a\x0c\x05\xa2\x7f\x1e\xfc\x1c\xce\xc2\x49\xd8\xc7\x04\x6c\x34\xd6\xa7\x65\x6e\x29\x7d\x48\xec\x98\x64\x72\x93\x24\x53\x01\xe7\x30\x17\xe9\x3a\x2f\x10\x60\x25\x63\x51\x80\x6c\x93\x9f\x7a\xca\x93\xc0\x3a\x5d\x24\xed\x83\x12\xd8\xab\x4e\x21\xdb\x21\xb8\x09\xe1\xa2\x59\x04\x67\xee\x6c\x3f\xc8\xd5\x26\x82\x5c\x25\x81\x54\xdc\x82\x74\xe4\x0c\x2a\x7d\xe6\x0c\xa5\xcf\x97\xe4\xda\x19\xc2\x6f\x34\x5c\xe8\x8b\x85\xb7\xcd\x05\x11\x51\x41\x93\x49\x8f\xc1\xf9\x19\x7d\xb8\x38\x0e\xee\xf5\x22\xd3\xf2\x5b\xc7\x3f\x3a\x6a\xb7\xae\xae\x1b\x5e\x8e\xec\xc1\xcc\x22\x01\xe5\x13\xd2\x67\xa0\x78\xa6\xfc\x07\x46\xec\xdb\xd6\x76\xb4\x9d\xb1\x10\x81\xb0\xf0\xb2\xcc\x79\xc9\x6d\x1a\x6a\x12\xb5\xb7\xd9\x09\xa7\x26\xd4\x41\x8d\x15\xdc\xdd\x21\x74\xe3\x9a\x54\x61\xf1\x4e\x22\x8f\x28\xb4\xb6\xa4\x53\x94\xac\x7a\x51\xe5\xc5\xc3\x90\xdc\xa0\xd4\x68\xc2\x05\xc3\xf3\x56\x07\x5a\x58\x57\xac\x89\x2c\xc3\xf9\xbe\xd6\xaa\xa3\x6b\x5e\x32\x91\x45\x38\x27\x2c\xf5\xba\x41\x8b\x10\xf4\x28\xdd\x75\xba\x77\x77\x63\x60\xea\xd0\xe1\x3e\x77\xb9\x26\x10\x25\x14\x33\x86\xff\x5c\x73\x07\x36\xa7\xce\xd6\x08\x19\x11\x2b\xcf\x73\x67\x8a\x93\x94\x33\xe7\xf4\x1e\x78\x11\xa5\x36\xe0\xa7\xce\xe4\xb2\xcd\x53\x19\x2e\xb2\x3b\xcf\xc6\x27\xa0\x0c\x7a\x8a\x88\x8d\xd3\x1c\x95\x74\x3f\xd6\x71\xf7\x55\x43\xa5\x0b\xe7\x54\x11\x6d\x8b\x2a\x93\x8a\x14\x9a\x2e\x46\xaf\xfb\x8a\xbb\x0c\x55\x59\x53\x6f\x75\x62\xd0\x21\x31\xfb\x03\xc9\xe2\x3a\xf1\x8a\x08\xbb\x87\x94\x67\xce\x0d\x29\x49\xa7\x44\xe3\x00\xb3\x1d\xc4\x23\xba\x5f\x73\xb2\xcd\xbe\xf2\x05\x74\x7b\x2e\xfa\x2a\xf8\xa5\xd9\xae\xae\x94\xca\x9e\xec\x09\xb0\x97\x34\xec\x97\x66\x8b\xbe\xdb\x61\x4b\x79\x43\xcb\x1d\x95\x61\x48\xd5\xbf\xbd\x60\x1f\xfe\xd2\xb9\x48\x2d\x78\x69\x81\x67\x1c\x38\x3b\x34\xe2\xd1\x29\xe0\xd0\xeb\x8f\x79\x3f\x14\x77\x9a\x5d\x2a\x5b\x63\x8b\x1d\x5d\x76\xb9\x5a\x7b\xf1\x64\x2c\xfb\xe5\x46\xfd\xd6\x41\xa9\x8c\x9b\x97\x7b\xc4\x08\xb3\x5c\x26\x24\x2d\xf9\x93\xdf\x01\x5d\x32\x2e\x35\x6e\x12\x70\x16\x1a\x2e\xe7\x9e\xbd\x07\xf1\x56\x90\xdb\x95\x7a\xaa\x2b\xe8\xa1\xe0\x5b\x7b\x92\x50\x6a\xd0\xae\x2c\x35\x2e\x1b\xbe\xa1\x9d\xa4\xea\x4b\x6d\x83\xaa\x8c\xee\x57\x3f\x91\xa2\x5c\x87\x53\x8c\xdf\xe5\x76\x39\x00\x98\x37\xdd\xf6\x46\xd9\xad\x5f\x78\xa3\xc7\xea\x80\xc9\x8f\x95\x50\xb9\xd6\x12\x3a\xe3\xea\x3f\xd4\xa5\xfc\xd4\x8b\x62\xa9\xcf\x5b\xd6\xcb\x7d\x4c\xdd\xc8\x65\xd2\x56\x2c\x61\xc6\x28\x09\xaf\x16\x16\xbb\xfe\x71\xca\xf2\xce\x15\x38\x02\xe6\x07\x4a\xfb\x1b\x4d\xbf\x65\x00\x91\xb6\x49\xd6\x20\x5c\xd5\x13\xd1\x76\x85\x6e\x58\xf4\x1e\xff\x1c\xc8\x88\xc6\x65\x32\x56\x8e\x0c\x71\xba\xcc\x3f\x68\xe3\x16\x18\x24\x71\x76\x30\x09\xba\x54\x28\x0e\x24\x2e\x4f\x61\xe2\x1a\x48\xd9\x25\xdc\x2f\x65\x03\x68\x66\x42\x32\x68\x84\x56\x64\x97\x92\x5c\x40\x25\x2f\xed\x55\xc1\x0f\xa0\x43\x13\x65\x2c\x9e\xcb\x42\xb5\xe6\x9f\xc4\x4c\x62\x96\x71\xf6\x92\xb6\x23\x7d\xd9\x9a\xdd\xc0\x7f\x2a\xd1\x37\xfe\xbe\x4e\x53\x2b\xf5\x46\x94\xd4\xd4\x9c\xee\x3e\x3b\xc1\xdb\x09\x17\xd7\xda\x2d\xa4\x9d\xf4\xc8\x7e\x3a\x52\xf7\xc9\xcb\xac\x0d\x94\x33\x75\x36\x53\xc3\x88\x6f\x54\x36\xd7\x75\xc6\x9c\x00\x44\xef\xb7\xb1\xfb\xdd\x8d\xac\x57\x91\x26\x4c\xe7\x85\x97\x50\x2d\x02\xe9\x92\x1e\xe9\xe7\xfa\x7c\x19\x38\xff\xf8\x0e\x3d\xeb\xbe\xa8\xa1\x6b\x5d\x29\xd2\x69\x3d\x78\xce\x22\xbe\xc0\x7c\x00\xf9\x8a\x9a\x98\x71\x2c\x2f\x0e\x67\xed\xfe\xc4\x1d\x41\x37\x27\x1a\x21\xb2\x2e\x12\x3e\x25\xcb\xc9\x54\xff\x66\xbb\x23\x37\xd4\xb7\xca\xcc\xa4\x48\x98\xa3\x86\x60\x41\x83\x32\x32\xd9\x36\xac\xb3\xe3\x0e\x9a\xbe\xa7\x02\x1e\xcf\x04\xc2\x20\x01\x38\x28\x25\xce\xd9\xa4\xdb\x95\xc2\x9e\x58\x54\x8d\xc1\xca\x91\x3f\x48\x09\x38\x32\xd4\x20\x6c\xb4\xb2\xf3\x25\x59\xeb\xdc\xb8\x2c\x1f\x5d\xa2\x69\xb4\xd3\xcb\x96\x68\x1a\x0d\xf5\xa8\x2f\x16\xa3\x3c\xd3\x28\x57\x44\x89\x1b\x73\x5a\xba\xb7\xc8\x6d\xb3\xb7\xb0\x76\xbb\xb7\x9c\x96\x61\x03\xf6\xb6\x21\xdc\x66\x16\x33\xda\x10\x6e\x98\x85\xc1\x3e\x1e\x5f\x58\x73\xd9\xe5\xf4\xae\x55\xb0\xbd\x1f\xf0\x7c\xdc\xcf\x4a\x0d\x9b\xcb\x2c\x66\x74\x0f\x24\xe9\xb9\xf6\x93\x05\x41\xd9\xbe\x51\x62\x6d\xf6\x50\x0d\xbb\xe1\x1c\xef\xae\xfd\xa4\x5c\xb9\xf2\x44\x9d\x65\xac\x59\x9e\x48\x5f\x91\x7e\x9e\x3c\x51\x08\x6f\xfa\x05\xe4\x89\x91\x58\xa7\x9f\x29\x4f\xec\x17\x92\x27\x26\x45\xe1\x1e\x15\x85\xeb\xdc\xe4\xe4\x0a\xdd\xf4\x3a\x0b\x22\x64\x58\xeb\xc2\xae\x76\xa4\xc3\xb3\xb0\x99\x62\x2f\x5e\x43\x91\xcc\x6c\x21\x0c\x11\x03\xb8\xa9\x8e\x8e\x16\x92\xd5\xe2\x44\x7a\xec\xa2\xf0\x4f\x95\xae\xf5\x84\x74\x2d\x4f\x6e\x36\x62\xec\xe3\x8d\xc9\xb2\x6e\x40\x46\xa4\x8f\x8e\x6a\x4c\xe6\x11\x43\x9a\xc1\x64\x59\x37\xab\x7a\x01\x1c\xac\xc1\x4f\xc2\xee\x6d\x64\x30\xad\x9b\x67\x99\xd6\x1d\x5a\xbd\xa3\xa3\x5e\x84\xbd\xef\x3d\xa8\xa1\x19\x1a\xeb\x35\x47\xf9\x56\x66\xbe\x13\xc4\x56\x66\x6d\x78\x88\xd0\x4c\xaa\x71\xd4\xd2\x19\xe5\x4a\xb3\x60\x61\xfc\xd2\x5f\xf4\x4e\x37\x41\x1c\xfc\xb3\x77\x6f\x67\x3d\xfa\x5a\x65\x53\x28\xd9\x81\x0f\x50\x21\x73\x8d\x0f\x9f\x55\x61\x6b\x27\x92\x93\x55\x32\x67\xca\xce\x88\x71\x19\x12\x76\x5b\x0c\x92\x9d\xd7\x02\x52\xd4\xdc\x2e\x48\x13\x14\x27\x5f\xfa\x46\xc2\xa3\xa3\xcd\x3d\x2d\x4c\x6e\xb8\x85\x09\x09\xb8\xa9\xc0\x4d\x64\x2a\xb0\x10\xfe\x87\x12\x5e\x69\xa2\xde\x72\xd4\x7e\xc6\xfa\x55\xe0\x03\x74\x57\x6d\xd5\x0d\x43\x37\x49\x20\xbb\x51\x02\x0e\x7c\xfa\x59\xf6\x7d\xdc\x6f\xf3\x4f\x56\xa1\x9e\x2a\x2a\x98\xa1\x82\x90\x5f\x04\xa1\xa4\xac\x2a\xe2\xbe\xfe\xc5\x54\xa6\x5c\xd2\x32\x45\xbe\xcc\x9d\x3c\xb1\xa6\xad\xe3\x46\xdd\x4e\xf2\x10\xf5\xef\xd4\xc0\x41\x32\x13\x05\x45\xea\x8d\x63\xa4\xc2\x11\x96\xc6\x70\xc5\xbe\xc0\x15\x77\x22\x5c\x71\x27\x0b\x1a\x7d\x83\x6e\x7b\x48\x4f\x01\x16\x2f\x58\xfc\xa4\xfb\x62\xa3\x2d\x39\x28\x4e\xd9\x0a\xaa\x31\x89\x87\xb6\x63\xed\xa4\x40\xfc\x3b\x16\xab\xce\x2e\x65\x35\xca\x8d\x2d\xb8\x82\xc1\x9c\x4f\x0d\xd1\xd2\x9c\x1e\x1d\xdd\x6a\xb8\xf5\x4c\x5e\xd2\x18\xf5\xc8\xf2\x79\x30\xbc\x17\x18\x0c\xef\x6f\x22\x18\xde\x6e\x72\x6f\x68\xfa\x6f\xd6\x02\x71\xdd\xea\xf4\xdf\xa4\xa7\x3f\x85\xeb\xee\xda\xc9\x2c\xe2\x30\x38\x50\xbc\xf5\xa4\xac\x13\x6e\x64\xeb\x84\xb6\xe4\x80\x19\xed\x13\xe8\x33\x8d\x74\x63\x60\x2d\x7d\x0d\x60\x2f\x62\x30\x1d\xdd\xfd\x4d\x43\x78\x27\x91\x69\x99\xe8\xb5\x18\x68\xc6\x59\xd5\xba\x30\xbe\xab\x6b\x81\x66\x03\x06\xfe\x8a\xdc\xe0\xa4\x68\x17\xe4\x52\x0f\xd1\x3b\xe7\x21\x7a\xe7\x04\x9e\x71\x8a\xff\xdc\xb0\xfc\x33\x95\x57\x94\x6f\xdb\x04\x53\x37\x47\x26\xae\xd9\x49\x43\xbd\xe2\x78\x24\xd4\x6c\x30\x37\x76\x4c\x0c\x17\x0b\x93\x9a\x4d\xb9\xb0\xc2\xd7\xd6\x3b\x68\xfa\xd8\xcb\x76\xcf\x53\x08\x48\xa6\x45\x83\xa1\xaa\x23\xa7\x5c\x47\x57\xae\xc9\xe2\x27\xe8\xf8\xda\x19\x99\x47\x7c\x6d\xf0\xed\x6e\x83\x04\x0e\x0a\xef\x7a\x5b\x41\x62\x8b\xb4\x84\x0b\xa1\x9e\xde\x85\x50\x56\x57\x0c\x48\xa7\x9e\xea\x42\x28\xa3\x06\xa3\x0b\xa1\xde\xfd\x5d\x08\x45\x12\x81\x19\x7b\x10\xfa\x37\x27\x88\x20\x53\x9d\x08\x32\xd5\x95\x30\x51\xbd\xff\x71\x12\x84\x42\x01\x89\x8c\x9c\x7a\x2e\xe8\xc7\xc8\xac\xe7\x82\x7e\x8c\xfc\x7a\x36\x3e\xc9\x28\xf3\xc8\x83\xfb\xf4\x1e\x11\xee\xd3\xbb\x1f\xdc\xa7\xf7\x27\xc0\x7d\x34\x6d\x16\x80\xfb\xfc\x8f\x63\xcf\xf3\xd8\x6a\xbd\xfc\x8b\x08\x36\x77\x4e\x8f\xa4\x98\x0f\x94\x41\x2e\x73\x05\xe4\x32\xb7\xf3\x84\x01\x49\x59\x8a\x47\x65\x29\x1a\x70\x51\x20\x8c\x7a\xf7\xc0\xf9\xe8\xa5\x72\xf1\x6d\xa8\xc1\xf9\x64\x21\x6f\x82\xa2\xa2\x84\xc5\xac\xef\x2d\xf1\x65\x11\x31\xc2\x30\x3e\x2e\x22\x31\xc2\x50\x0f\xbd\x19\x3a\x56\x50\x41\xba\xdc\x71\x9c\x6e\xab\xcd\x18\xa5\x36\x5f\x30\x6d\xca\x2c\xb5\x85\xe7\x50\x42\xb3\x75\x5b\xa5\x2d\x8c\x0e\xe3\xc1\x14\x91\x2c\x00\xcb\xec\xdf\xdd\x0d\xe8\x25\x3b\xd1\x70\xc5\xf2\xd8\x14\x70\x47\xe8\x4c\xf6\x60\x83\xd5\x6a\x80\x3a\xb2\x42\x85\xf9\x9d\xc8\x7c\xae\xdd\x9c\xe4\x30\x78\xed\x98\x63\x6c\xab\x78\x8d\x1b\x4d\x68\x58\x6c\xfc\xde\xd0\x8c\x1b\xdd\x28\xc9\x4d\x31\xa8\x03\xb6\x9c\x42\x3a\x14\x51\x9b\xf5\x65\xe2\x67\xe6\xdc\x24\x0d\xb0\xa3\x61\x95\xbb\x85\x00\x09\x33\x93\x61\x35\x1d\x46\xb7\x5c\xaa\x1b\x3a\xe2\x5b\xbd\x48\x37\x2a\xf2\x1e\xe7\xe7\x45\x87\x1e\x31\x4b\x7c\x23\xe0\x10\x19\xa3\xa0\x0a\xb9\x05\x85\xa4\x14\xe8\xd6\x60\x8f\x6e\xc9\x79\x0d\x68\x90\x9a\x24\x43\x9a\x15\xff\xb4\xd0\x6f\xe0\xbb\xe5\x07\xfe\x89\x69\x0d\x43\xda\xfd\x5a\xfc\x84\x1d\x4c\xcc\xcc\x8c\x0d\xfb\xf1\x46\x0c\xfb\x7b\x10\xeb\xf3\xc6\x09\xa6\x2b\xda\x93\x7a\x7e\x2b\x57\x8d\x17\x38\xcf\x81\xb3\xef\x38\x7f\x07\x76\x0b\x85\x07\x7a\xaf\xa4\x57\xdd\xeb\x1d\xb5\x14\xd2\xaa\xd8\x06\x1a\x4d\xde\x90\x2a\xb3\x46\xc6\xc0\x9a\xc0\x6d\xe9\xf8\x01\xe0\xd0\x24\x3d\x57\x31\xc2\x34\xa2\x7d\x47\xd4\xe4\x0b\x6f\x7d\xed\x20\x66\xdd\x25\xd2\xe0\x42\x68\xd9\xb2\xe8\xc1\xe3\xe8\xed\xd6\xe2\xbb\x9f\xe6\x22\xfc\xc4\x36\xe4\x56\xc9\x00\x9e\x97\x88\x73\xdd\x50\x28\x49\x11\x88\xec\x84\x9d\x8d\x86\x52\x32\x71\xc0\x32\xa2\xa5\x59\x1b\xe5\xb9\x94\x0c\x2f\x36\x74\xf4\x23\x08\xc5\x02\x2c\x46\x43\x8f\x16\x2a\xd5\x65\xa5\xba\x58\x0a\xdd\xec\x15\x2b\xd5\x61\xa5\x3a\x58\x0a\xee\x7c\xa4\x85\x8b\x15\xec\x51\xad\x2d\xe6\x84\x65\xe6\xa2\xb5\x5b\xa3\x47\x9b\xc6\xa5\x56\xac\x8a\x01\x6b\x7b\xc0\xc4\xdd\xb0\x5c\xe3\x62\x7e\x46\xb1\x7e\x9a\x9c\xf1\x69\xfb\xfd\x9d\xe4\x7c\xaf\x58\x17\x80\x6b\x21\x82\x4a\x18\xd2\x4a\x80\xb5\x91\x89\x0f\xb8\xd7\x61\x80\x7d\x18\x54\x41\xe0\xef\x3a\xd6\xa5\x68\x68\x0e\x41\x90\xd0\x8b\x67\x9d\x24\x20\x24\xfd\x72\x42\x07\xd1\x23\x6b\x8c\x12\xb0\x35\xea\x20\xfa\x34\x43\x8a\x02\x59\x53\xc3\x58\x19\x67\xcb\x91\xb1\x9e\xe4\xf1\x0c\x91\xb1\xe3\x08\x03\x1b\x22\x06\x76\xc8\xe5\x7f\x37\x2d\x44\xd9\x56\x5f\x3c\xd9\x3c\xf5\x52\x3e\xd2\xc8\xe6\x89\x95\x4e\xad\x54\x5f\xd8\x9a\xcc\xd7\x0d\x86\xd7\xdd\x5c\xa3\x06\x44\x07\xd6\x4d\x76\x69\x12\x75\x69\x1a\x87\x33\x44\x7c\xed\x96\xe2\x6b\x87\x6a\xe4\x6c\x67\xa8\x86\xce\x8e\x1e\x95\x7c\xad\x2b\xe5\xb1\x52\xad\xd5\x9f\x28\x29\x44\xa9\xa6\x9c\x78\x5f\xbf\xbe\x6e\x5c\x55\xea\xa4\x2e\x0f\x82\xb7\x3f\x52\xdb\x8f\x1e\x47\x6a\xfb\xca\x23\xad\x5f\x49\x21\x4a\x35\x95\xc4\x7b\xa9\x7d\x2e\x46\x5d\x1b\x15\x2d\xca\xca\x85\x8b\x73\x10\x91\x97\xf1\x3c\xc3\x30\x4e\x9d\xdb\x7b\xe8\x5b\xd2\x95\x53\x38\x72\x42\xc1\x72\x2e\x25\x75\xa9\x19\xe6\xad\xa2\x70\xc9\xc1\x17\x33\xd4\x10\xb9\xbd\x4f\x18\x04\xb2\x36\x23\x03\x17\xd5\x18\x4f\x92\x82\xe5\x4d\xc3\x79\x24\xc7\x41\x95\xf5\x80\x5a\x40\x9f\xe5\xeb\x1a\x98\xcb\x4e\xaa\x35\xc0\xf8\x5b\x6c\xc6\x13\x9a\x86\x5b\x45\xd3\xa0\x29\x61\xd0\x33\x6c\x92\x3a\x85\xad\x0c\x07\xe6\xe5\x4b\x64\xd6\x2a\x2d\x67\x23\xcb\x58\xb7\x0d\x9c\x4b\x49\xe0\x6f\x6f\x53\x1a\x9a\x34\xec\x3a\x07\x91\xbb\xd3\xd3\x47\x63\x41\x5d\xa7\x70\xba\x24\x8d\xd0\x55\x86\xbb\x91\x44\xdd\x32\xb6\x4f\x12\xe8\x47\xda\xcb\x8f\xee\xc7\x45\xf8\xaf\x60\x16\x5a\x23\x2b\x42\x64\xd5\x08\xcb\x6c\xc7\x84\x5c\x1a\xcb\x95\x5d\x5b\x04\xea\x1a\x59\xbc\xae\xca\x08\x85\xea\x71\x85\x7a\xa5\x83\x4e\xe5\x50\x2a\x5b\x43\x6b\x4c\x5f\xda\x15\xdd\x11\xfa\xa4\xfa\xfc\x45\xec\x31\x27\xcc\x42\x12\x2f\xd1\x0f\x46\x01\x34\xf1\xe2\x81\xd0\xc4\x79\x70\xe2\x42\xfd\xa9\xa7\xfa\x73\x5f\x48\x71\x3e\xa6\x18\xe1\x00\x7f\x00\xac\x18\x86\xbd\x78\x5c\x68\x71\x2e\xb6\x58\xee\xc2\xa3\xe1\x8b\x69\xc0\x0e\xc5\xaf\x94\x76\xb3\xcf\x85\xfe\xc1\xc8\xd6\xc5\x3b\xc3\x9a\xec\x81\x9a\xb5\x19\xef\xe7\xd1\xfb\xc5\x8f\x78\xbf\x24\xd4\x74\x45\x4a\x05\xd0\xa5\x0f\xb0\x39\xd5\x03\x59\x9b\xfd\x1f\x3a\x2c\x6c\xb2\x83\xa9\x73\x8d\x39\xaf\x60\x0f\x30\x35\x78\xd8\x34\xf0\x9f\x4a\x74\x00\x7d\x5f\xa7\xa9\x95\x7a\x23\x4a\x6a\x1a\xcf\xaf\xf6\xb7\x9d\x7c\x0a\xae\x35\x71\x04\x12\x34\x0a\xc4\x75\xb1\x92\x19\x5d\x85\x16\xc8\x82\xae\xe6\xf2\xbb\x3d\xa6\xd0\xeb\xb3\x3f\x83\x1c\xe0\xea\x50\xc3\xd9\x8e\x34\x69\x63\x23\x6e\x55\xcf\x24\x20\x6e\x35\x74\xae\xae\xc9\x94\x82\x57\x6f\x50\xd5\xc8\xdd\x5b\x18\x78\xec\xc5\x9f\x8d\x56\xe5\xee\x36\x74\x4c\x3b\x22\x01\x62\xa6\x5d\xf5\xd0\xe4\xa8\x3b\x3a\x3e\x2b\x4a\x06\x02\x32\x49\x31\x1c\xf0\x1f\x95\x1a\xbc\x77\xd3\xe7\x3f\x87\x32\xa9\xde\x76\x64\x2e\xea\xfe\x4d\x32\x63\xa5\x92\xf6\xce\xd9\xc9\x82\x87\xc5\xa3\x2b\xd1\x8c\xf1\x39\xb2\x95\x68\xc6\xf0\x1c\xd9\x21\x11\x8d\xc8\xd8\x6c\xf4\xae\x51\xe9\x36\x75\xdb\xf7\xd2\x80\x19\xa1\xbb\x66\x44\xed\xfe\x60\xda\x4c\x0c\xae\x51\x0b\x99\x0d\xdd\x35\xa2\x4d\xff\x77\x43\x77\x91\x17\xb8\x6c\x9b\x0b\x1a\x1d\x2a\x98\x71\xbb\x46\xed\xb1\x64\x5a\xbe\xb7\x83\x8b\xff\x65\x51\x44\x32\x95\x75\x49\xbd\xa0\x47\xf5\x82\xf7\x0f\x70\xa9\x9c\x9f\x09\xdc\xad\x67\x92\x59\xf9\x56\x4c\xcd\x79\x09\x99\xd5\xd0\xfe\x7a\x1b\x29\xd1\x6e\x25\xf0\xed\x0d\xa2\xb2\x62\xf0\xed\x4c\x7a\xec\x99\xa4\x5b\xa7\x14\xca\xaa\x91\x51\xf1\x48\x76\x06\xd9\xd7\x84\xac\x11\xa1\x7a\x6e\x94\x7d\x85\x34\x03\x22\x05\x7d\x0d\xfe\x76\x6d\x80\xdb\x6e\xa3\x70\x78\xf0\x91\x92\x70\xdb\x65\xec\x0d\x68\x58\x30\x36\xc5\x8a\x51\x72\x17\xcd\x95\x88\x4d\x71\x81\x8e\x21\x97\xf6\xea\xea\xe2\xda\x59\xc2\x3f\xa9\xd8\x14\x98\x18\xc7\xa6\xc0\xa7\x1d\x8d\x29\x31\x44\xf1\x95\x80\xfa\x0e\x1f\x10\xea\xeb\x93\xb5\x4d\xfc\xe6\xfa\x1b\x02\x4a\x70\xe9\x41\x41\xb9\x93\x1a\x8c\x73\x78\x6d\x93\x6c\x2b\xdd\x42\xf2\x26\x51\xa9\x2c\x5a\x7a\xe5\x5c\x2a\xa2\xa5\x97\xc5\xb1\xbc\x39\x59\xb7\xc5\xb3\x4a\xa0\xdc\x9c\x9c\x4a\x18\x80\x9c\xbc\x6a\x48\x86\xa9\x14\x05\xe0\x0c\xc6\x9d\x17\x05\x60\x18\x47\x01\x18\x69\xa2\x00\x8c\x92\x51\x00\xf2\xb6\x99\x6c\xfa\xb9\x7f\x14\x80\x91\x14\x05\xe0\x32\x47\xae\x37\x8a\xe5\x7a\x71\x31\xf4\xc0\xfb\xea\x9e\xb8\xe5\x33\x81\x5b\x5e\xa0\x87\xcc\x68\x0e\xc5\xd8\xcf\x13\x8e\xde\x47\xb1\xcb\xcb\x91\xce\xd1\xfb\x5a\x76\xf4\x7e\x99\xe7\xe8\x7d\x40\x3d\xa4\x6a\xda\x64\x28\x8c\xe4\x29\xa3\xb3\xf1\x1c\x17\x71\xad\x3e\x94\x5d\xab\x0b\x37\xea\xaf\x9d\x57\xd9\x78\xec\x8c\x43\x26\x81\xc7\x7e\xad\x01\x63\xb3\xfb\xe0\xde\xbe\x9d\xcf\x28\x80\x79\xa8\x20\x68\xcf\x11\x41\xfb\xea\x01\x9d\x3b\x9b\xeb\x4a\x8f\x07\xa1\xb9\xb3\x6f\xf0\xf4\x7c\x8e\x88\x60\x75\x3c\x67\xe9\xf1\x6c\x33\xfb\xd0\xb3\x53\x1e\x90\x33\x5c\x05\x7b\x79\xae\x82\x27\xe8\x2a\x58\xf3\x95\xbf\xc1\x4f\x70\xae\x97\x60\x4f\xf1\x12\xec\x1b\xbc\x04\xc7\x3e\x82\x7b\x8a\x8f\xe0\x88\xb0\x82\x3b\xd0\x62\x0f\x8e\xe3\x30\x6f\xc0\x3d\xe1\xda\x0f\x52\x98\x0b\x60\x3f\x76\x01\x4c\x1b\x42\xe7\xc3\xcc\x99\x8b\xde\x05\xb0\x4f\x81\xa7\xbd\xd8\x05\xf0\x38\xe5\x02\x98\x50\x81\x9a\xd4\x25\x2a\x84\x6c\x32\x3f\xc0\x09\x0c\xae\x1f\xf9\xd1\xb5\x9b\x03\xb3\x17\x5d\xe9\x48\xf1\x84\x17\xdd\x91\xde\x8b\xee\xe9\x03\x7b\xd1\x0d\x85\x17\xdd\x09\xf5\xa2\x3b\xd0\x7b\xd1\xcd\x58\x71\x49\x2f\xba\x9b\xaa\x14\x7f\x14\x31\xe2\x5a\xaf\xba\xfd\x6f\x73\xe2\x5d\xf4\x5c\xe2\x74\xcf\xdd\x9d\x89\x5a\x3b\x90\x1b\xa8\x93\xcb\x24\x05\xc4\x26\x47\x16\x27\x88\xec\x4c\x8a\x8d\xa0\xef\xfd\x89\xc2\x8d\xe2\x09\x7c\x89\x42\x86\xf4\x4e\xf7\x8d\xf3\x74\xa1\x11\x00\x03\x8f\x6b\xf0\xe2\x14\x8f\xaf\x46\xb9\x05\x79\xbc\x0f\xd0\x75\x5f\x76\x62\xbe\xf9\x46\x67\xc9\x9a\x31\xe4\x39\x4b\x5e\xea\x9d\x25\xfb\xaa\xab\xe2\x5b\xa3\x64\x32\xed\xa9\xd8\x97\xbc\xf3\x7a\x77\x77\x7a\x2e\xea\x1b\x3d\xf5\x1a\xbc\xf2\x0e\x75\xc6\x12\xa3\x84\x57\xde\x7f\xa4\x8c\x25\xfe\x51\xdb\x49\xd8\x9c\x84\x14\x32\x0a\x19\xcc\x9d\xf3\x52\x0b\x09\xc9\x35\x6f\x5d\xb8\xe6\xfd\xba\x23\x2b\x96\x69\xcd\xfe\x6c\xee\xe7\x55\x77\x4b\xcd\x29\xf6\xf0\x9c\x3b\x4f\x79\xce\x1d\x3e\x80\x39\xc4\x43\xfb\xd5\xe5\x9a\x75\x9d\x30\x75\x23\x09\x53\xef\xe5\x14\x56\xb5\x88\xf0\x35\x16\x11\x7e\x96\x45\xc4\x50\x6f\x11\x71\x0f\xdf\xaf\x43\xd5\x22\x22\xa3\x06\xa3\x45\xc4\xf0\xbe\x16\x11\x71\x04\x67\x67\x03\x0f\x48\x8c\x3a\x1d\xf8\x11\x79\x95\xf5\x23\x47\xb2\x7e\xe4\x48\xd6\x4f\x3b\x92\x1d\x40\xa2\x30\x95\x18\xc2\xef\x5c\x29\xaf\x8f\x6d\xdf\x57\xca\x6b\x14\x52\x66\x4b\x79\x8d\xe2\xda\x7c\x47\xae\xf7\xb7\x93\xc8\x74\xd5\x90\x89\xf0\x36\x4a\x01\x8b\x38\x81\x35\x5a\xe3\x67\x1b\x59\x18\x1d\xe5\xe6\x19\x59\x0c\x1f\xd1\xc8\x62\x78\x3f\x23\x8b\xe1\x9f\x60\x64\xa1\x69\xb3\x80\x91\x85\x4e\x0c\x6e\x96\xa4\xd2\x57\x64\x94\x27\x49\xe5\x19\x20\x63\xbe\x24\x55\xe4\x21\xa3\x4c\x49\xea\xa8\x90\x24\x35\xa9\x74\xf0\xa8\xd2\x21\xc3\xa7\xea\x98\x52\xac\xfc\x67\x01\x13\x8e\x6d\x7a\xba\xb6\x8e\x4b\x84\x74\x74\xab\x98\xf6\x6d\x15\xa3\x8d\xed\x1e\x16\x16\x06\x4b\x91\x4c\x4f\xaa\x7b\x7a\x86\x35\x38\x6b\x15\x9e\x61\xfd\xa4\x63\xd8\x2c\x1b\x0e\xdf\xe4\x3d\x15\x8f\x5a\x49\x30\x1d\xf6\x46\xbe\xce\x15\x04\x0b\xd2\x95\x21\xbf\xb6\x92\x55\xc8\xd1\x65\xab\x86\x91\xe3\xa5\xa6\xf1\x3c\x6e\xde\x4d\xca\x89\x45\xbd\x50\x89\x8b\x1a\xb5\xfc\x78\xe7\x92\xb6\x83\x17\x4c\x30\xf9\xde\x07\x16\x21\x9c\x07\xad\xd2\xb1\xef\xd6\x8e\x7d\xf8\x10\xed\xef\x8e\xff\x76\xfc\xf7\x12\xef\xd6\x7f\x7d\xdf\x7b\x76\x40\x61\x16\x4e\x89\x2d\xd9\x83\xbf\xfc\x57\xb9\x5d\xfe\xaf\xd2\xc9\x7f\x95\xb9\xc0\xb6\x5c\xfa\xfe\x69\xef\xd9\xc9\xf7\x0b\x3c\x61\xe0\xcf\x0c\xfe\x6f\x9f\x60\xf5\x8d\xef\x9f\xc2\x2f\x7c\x2a\x95\xb9\x49\x60\x92\xd3\xc4\x6c\x36\xd6\x80\x19\x9f\xd2\xb2\xac\x3c\xed\x57\x81\x0a\x68\x3e\x6d\x0d\xc8\x9a\xe7\x97\xc7\x5c\xda\xe2\xa3\x70\x5d\xa0\x79\xc8\xa5\x96\x7e\xca\xa6\xa1\xb4\x53\x95\x19\x9c\x1c\x30\x61\x6e\xff\x43\x02\xdd\x4e\xe2\x5b\x5a\x6f\xe8\x33\x71\xda\x15\x9f\xf9\xd8\xf5\xf9\x11\x15\xe6\x9a\xef\x84\x8c\x14\x9c\x3a\x61\x4a\xd8\xcd\xfa\xa6\x58\xec\xdc\x38\xd6\x74\x0f\xc9\x76\x54\x83\x2c\xc5\x9e\xaa\x76\x3a\xd3\x1c\x81\xa6\x1f\x4b\x48\x7d\xd5\x4e\x27\x61\xd3\xa2\x70\xb8\x66\x38\x1f\x5a\x48\xa7\x4d\x59\xb4\x42\x69\x51\x1b\x6a\x5d\xe6\x31\x38\xb2\x3f\xf3\x47\x59\x01\x05\x0d\x82\xf0\xca\x7c\x3b\xf6\xc2\x51\xd4\xd0\xac\x44\x5e\x40\x67\x8a\x78\x24\x64\xb1\xba\xcd\x35\x2b\x45\xdb\x18\xba\xb0\xfa\xec\x98\x06\x1c\xe5\x49\x1b\x48\xfa\x7b\x09\x0d\x53\xc2\x2c\xf8\xdd\x98\xaf\xc7\x18\x55\xc7\x19\x8d\x30\x03\x23\xa7\x16\x5a\x2e\xe4\x32\x5a\x68\x97\x28\xc0\x20\x5d\x98\xc4\x23\xe0\xcc\xd8\x67\xb3\x9b\x18\x26\x6b\xd4\x82\x6d\xb4\xb7\x10\xc0\x6e\x58\x06\x29\x8b\x8f\x44\xfa\xcc\x1c\x19\x94\xcb\x04\xf0\x6e\xc8\x6b\xb5\xbe\x43\x67\x16\x8a\xec\xe0\x6b\x14\xcd\xd7\x2f\x24\x7a\xd8\xe5\x02\xe0\x60\xcd\x89\x89\x12\x22\x12\xe6\x60\x7a\x28\x8e\xef\x68\xba\xee\x31\x4f\xdf\xdc\x7d\xbc\x2f\x67\xb1\x20\x89\x19\x30\x71\x59\x52\xce\x14\x43\xb9\x24\x64\x76\x16\x9d\x09\xc9\xdd\x55\xc4\x9b\x64\xf7\x5e\xde\x24\x45\x29\xa9\x71\xc5\xcd\xa7\x4d\xb8\x77\xa5\x05\x8a\x95\x67\x89\x33\x97\x5f\xeb\xc4\x4f\x9e\xb0\x89\xca\x9a\x8b\xd9\x16\xbf\xa5\x07\x57\xeb\x24\x44\x21\x22\xa3\xd4\xc6\xd3\x25\xd0\xc5\x3f\x42\x9e\xf7\x54\xaa\x07\x93\x50\x3b\x71\x3c\x7b\xd1\x9b\x85\xeb\x03\x1a\xa3\x01\x88\x6a\x9f\x72\xe4\x6d\xfb\xab\xe7\xc8\x22\xf8\xd3\xe9\x74\x16\x6e\xb0\x30\xd3\x1e\xfb\xf6\x6e\xc1\x64\xc0\x5e\x19\x45\x9c\x4d\x11\xb6\x6f\xe9\x20\x64\xaa\x46\xd6\x38\x84\xc9\xc9\xea\xe8\x68\xf9\xfd\x82\xcb\x11\x9b\xf6\xfa\x6a\x79\xed\x2c\xe0\x1f\xb2\x2a\xe3\xdf\x72\xf9\x9a\x96\x44\x89\x33\xe2\x2f\x97\x0e\x86\xdb\x39\x99\x40\xa9\x93\x7a\x13\x19\x96\xab\x6b\xb2\xac\x54\xa2\xea\x37\x4e\xad\xb9\x89\x2b\xdc\x94\xcb\xf6\xe2\x6a\x73\x7d\x62\xad\xaf\x36\xff\xb9\xa4\xee\x21\x31\x5c\x0d\x7d\x70\xf0\x0d\x54\xe7\xac\xe1\xb3\xb7\x97\x7e\x60\x10\xd0\x23\x00\x72\x27\x1a\xd8\x62\x8b\xb7\x30\x80\x53\x68\x69\x79\x72\xdb\xbc\x85\x26\xb6\x57\xb7\xd7\xce\x29\x39\x2d\x3b\x6b\xf8\xd5\x9c\xdd\xc3\xf9\xf1\xf6\xca\x83\x2e\xd1\x4b\xc5\x7a\x51\x3e\xae\x3d\x91\x50\x78\xde\xd3\xa5\xcd\x5d\xa6\x90\x41\xeb\x26\xe7\x7a\xb2\xda\xe2\xb2\xad\xac\xec\xc4\x2d\xd5\xc8\x2e\x5c\x53\x32\x93\xc0\x61\x0f\x3e\x67\x19\xa2\x6e\xf9\x41\x7f\x64\x89\x49\x86\xce\xed\x80\x70\x08\xe8\xf2\x3b\x23\xe7\xce\x0b\x72\x01\xff\x5f\xc2\xfc\x64\x4d\x04\x5b\xae\x6e\xce\x62\xcd\x59\xa1\xe5\xbe\xa0\x4a\xcf\x9c\x0b\xd2\xfe\x9e\x5f\xcd\x7c\xfc\xe5\xb3\xb2\x0b\x5f\xfb\xc2\x39\x83\xfe\x9c\x97\x9d\x63\xa0\x4f\x2f\xca\x40\x74\x5f\x9c\x5c\x42\xfa\xa5\x73\x61\xa7\x55\x95\xa5\xf2\x39\x9f\xea\x3d\x26\xfa\x32\x39\xd1\xe9\xb9\x3b\x2f\xd7\x5f\xec\x76\x11\x3a\xd3\xc9\x8c\x8e\x5e\x03\xce\x88\x5a\x21\x06\xd0\x69\xd2\xd1\x03\x26\xd1\x94\x97\x4a\x49\xb5\x72\xc9\x1e\xca\x1f\xfb\xce\xf1\xdf\xc9\x00\x7f\x0d\xf1\x9f\x11\x3d\x67\x55\xb1\xa3\xa2\x1b\x48\x49\xc0\x4b\x89\xeb\x37\x91\x42\x51\x92\xb2\xe0\x52\xe7\x91\x73\xfc\xe8\x50\x40\x23\xd6\x2b\x5b\x48\x64\xc4\x7a\xa1\x94\x70\x5f\xa0\x97\x8b\x4c\xe6\xde\x58\xc5\x98\x3f\xdd\x1b\xed\x35\x65\xa2\xde\xbd\x71\x8e\x52\xf4\xb2\xbd\x21\x7e\x33\xb7\xdd\x0f\xcf\x96\xb0\x54\x27\x1f\x60\x63\xee\x8d\xf5\xcb\x96\x8d\xe8\xa0\x7e\x66\xd9\x08\x7d\x45\xfc\x3c\xd9\x88\x60\x3c\xfc\x02\xb2\x11\x91\x87\xf8\x99\xb2\x11\xbf\x90\x6c\x24\x89\x99\x83\x73\xbf\xfb\x2d\x28\x33\x64\xb1\x8b\x98\x42\xde\xc4\x60\xbf\x08\x43\xb6\x94\xfc\x39\xde\xe8\x79\xb5\x1b\xa7\x5b\xe9\x30\x5e\xad\xc3\xa7\x6c\xe6\xf4\xe0\x37\xc6\x43\xe9\x88\x89\x59\xe5\xb2\x6f\xab\x0c\x87\x85\xc0\xe8\xcc\xef\xee\x7c\xb2\x70\x16\x77\x77\x6d\x8e\x57\x5b\x19\x31\x4d\x72\x50\x76\xca\xec\x6d\xe0\xaa\xde\x1f\xc5\xc4\x5d\xfb\xa1\x77\xbc\x84\xa5\xdc\xad\x94\x84\x8c\xe0\x69\x04\xb0\x62\x70\xa6\xdb\x82\x91\x38\x72\xf2\xcd\x7d\xaa\x0c\xe1\xb8\xa3\x75\xce\xb5\xd2\x89\xd9\xcb\x8e\x74\x9f\xa4\x9c\xfe\xcd\x04\x80\x6f\xad\xe0\x1b\x94\xc6\x9a\x67\x91\xdf\xbe\x6d\xbe\x2d\x5d\xd0\xee\x06\x39\x4e\xfb\xd6\x8a\x29\x5d\xba\x80\xc1\x92\xee\x26\x69\x1b\x31\x3b\xa9\xb5\x66\x18\xcf\xe5\x34\x6d\x4f\x17\xc6\xf6\x74\xba\x06\x98\x39\x1d\xda\x06\xde\xab\x20\x9d\xb4\xf3\xc4\xa4\x3d\x4e\x00\x94\xf3\x7b\x07\x40\x51\x39\x78\x6d\x13\x2c\x0b\xa5\xb6\xef\xee\xfa\xbb\xcc\xd8\x29\xe7\x29\xf6\xe6\x3c\xdf\x1f\x04\xb0\xad\x9c\x99\xba\xbb\x2b\x09\xbb\xa0\x6f\x0f\x73\x52\x80\x8d\x1a\xec\xc3\x3d\x89\xcc\x30\xa4\xa4\x0d\xd0\x92\x50\x87\x1c\xf7\x8f\x9b\xa2\x1d\x07\x66\xf9\xc4\x72\xdc\xdd\x55\x5f\xec\x44\x48\x9d\x73\x79\xf1\xe0\x82\xa4\x40\x23\xa0\x60\x32\xd6\x0f\xfe\x6e\x5d\xb9\xd7\x8d\xab\x6b\x6d\xc0\x9c\xa9\xbc\x4d\xa5\x13\x85\x57\xcb\x65\x29\x2a\x22\x49\xd0\x44\xcf\x10\x37\x57\xc5\x9c\x34\x6a\x36\x54\x3c\x0d\xe9\x11\x33\xb5\xab\x1c\x26\x80\xf6\xe7\x9b\x04\x16\xc0\x68\xa7\x34\xb7\x86\xdc\xc8\x13\xbe\xcc\xb6\x56\xb4\xd8\xc2\x1a\x49\xc5\xea\x96\x46\x32\x6e\xa9\x9e\x2d\x9d\x5a\xab\xad\x44\x79\x82\x84\x5a\x43\x49\x6a\x28\x25\xa8\xe9\xd5\x74\x3a\xda\xd2\x2b\x89\x5c\x79\x91\x9d\xf5\x4e\x5a\xfb\xe6\xaf\x23\xc5\xfa\x31\x2e\x21\xcc\x8a\x87\xe6\xfc\x31\xa6\xbd\x9d\x31\x7f\x3e\x9d\xf6\xf6\xbe\xd3\xde\xce\x9d\xf6\xf6\x63\x4e\x3b\xc7\x2b\x6b\xf7\x84\x7c\xad\xa7\xf7\xc4\x95\x40\x57\x5f\x33\x53\xe6\x82\x3b\x42\x71\xde\x09\x9f\x86\x7f\x07\x06\xfc\x78\xf8\xe5\x7f\x9f\xd5\xaf\x33\x53\x8c\xd6\x17\xfe\x9b\x5a\x5f\xf7\x1a\x44\xf1\xc5\x74\x9f\xb5\x84\x34\x9c\x2f\xc2\x6a\x2c\x9c\x76\xec\x86\x67\x29\x63\x80\xb0\xcb\xf9\xee\x4e\x39\xad\x42\x5d\x9d\xe6\x59\x29\x76\x69\x70\x8d\x1e\x0d\xae\xd1\x77\xea\xd5\x17\x14\xe8\xa3\x65\x7d\x87\x46\xd3\xc3\x91\xd1\xf4\x70\xec\x68\x71\xbd\xfd\x39\x4c\x03\x0c\x9f\x3a\x1e\x3a\x3a\xe2\xb1\xfe\xd9\xb3\xd1\x92\x11\x37\xff\x4e\x78\x4c\x2d\x31\x8b\x48\xa0\x81\xa8\xfb\x9f\x84\xdb\x54\xbd\x9d\x62\xb6\x55\xa2\x04\x06\x6a\x06\x0c\xec\x49\xd1\xae\xe8\xf1\x98\x3e\x31\xc3\x28\xeb\xaa\xfe\x1d\x39\x7e\xf1\x1d\x77\x5a\x31\x27\x0b\xb2\x34\x38\x1c\xbd\xd1\xb1\xed\x33\xe6\x56\x06\x3f\x90\x13\x18\x9c\x77\x26\x21\x85\x30\x09\x8a\x91\xb6\x7c\x3e\x44\x6e\x60\xf2\xbc\x89\xaa\x24\x84\x54\x65\x8c\xf2\xb9\x4f\xb5\x09\x20\xe5\x2c\x69\x20\x6f\xac\xf4\xb1\xa5\x17\x3a\xe3\xaa\x02\xd2\x0b\xa3\x4c\x81\x1f\x0c\x7b\x1b\x0a\x4a\xe7\xcb\xde\xd8\x98\x3c\x33\x37\x23\x1e\x27\x5b\x22\xa0\x93\xb6\x98\x25\x02\xf4\x15\xe9\xe4\x49\x04\x04\x7b\xdb\x29\x20\x11\x88\x18\xdf\x4e\xa6\x44\xa0\x53\xd4\x25\xa5\x1e\x22\x44\x04\xa7\x7e\xa3\xb8\xa4\xbc\x41\x98\x41\x7f\x7e\x0a\xeb\x68\x2f\x78\x94\xe2\x22\x2a\xcb\x66\x54\x2f\xe7\x81\x2e\x6c\x58\x41\xa3\x14\x4c\x2f\xe0\x81\x82\x5b\x56\x30\x53\x30\x92\x94\x68\x79\x54\xa2\x95\xe1\x2b\x73\xf0\x20\x0e\x2d\xf1\x1c\x2e\x1c\x14\x63\x10\x23\x50\x22\x21\xca\x56\x12\xa2\x4c\x8f\x8e\xb6\xaa\x5d\xde\x56\xb2\xcb\x1b\x24\x44\x2c\x03\x26\x62\x49\x09\x4f\xc8\x56\x6f\x9b\xb7\xca\xb1\xcd\x1b\x93\x15\x19\x66\x19\x0d\x4d\x68\x06\x53\x6c\x0c\xd4\xa6\x6c\x5a\x2b\x11\xf7\xa2\xb1\x32\xd8\xea\x6d\xb2\x42\x63\x2c\x60\x24\xf4\xf2\x3e\x85\xe1\x11\xd1\x0c\x95\xd4\x63\xea\x2d\x9a\xde\x44\x20\x61\xc8\x1d\xa9\xfa\x06\x05\x2d\xfb\x96\xc2\xb2\x6f\xa9\x58\xf6\x2d\x6c\xb4\xd8\x73\x16\x3a\xcb\xbe\x85\x62\xd9\xb7\x88\x2c\xfb\x06\x47\x47\x83\xc8\xb2\x6f\xf0\xa0\x41\x3c\x56\x18\xc4\x63\xf5\x0d\x41\x3c\x38\xa5\x9c\x2d\x05\x53\x0d\xfa\x06\xf7\x36\xe8\x93\xeb\x2a\x66\xc7\xc7\xa5\x39\x9c\x3d\x96\x7c\x4b\xe6\xd9\xcf\x3d\x8e\xad\x1f\x0e\xe0\xd1\x8d\xfd\x5e\xe9\xa3\xd3\x71\x69\xcc\x59\x52\x96\x75\x7e\x52\x6b\x9d\xa3\x2c\x2b\xa4\xc6\x4b\xc5\x8d\x04\x07\x91\xd1\x11\x19\x32\x23\xc1\x9e\x6c\x24\x48\xd3\xa4\xa4\xdc\xfd\xfe\x6d\x46\x82\xc3\x3d\x8c\x04\x87\xb1\x8c\x32\x2e\x86\xc6\x5b\xdf\x6c\x24\x38\x57\x0c\x2d\x4d\x46\x82\xc3\xd8\xa2\x67\xa8\x33\x12\x5c\x45\x46\x82\x7e\x01\x23\xc1\xbe\x1d\xcb\x57\x35\x46\x82\xc9\x03\x4b\xa7\xba\x1f\x15\x31\x12\x1c\x14\x31\x12\x94\x56\xb8\x58\x26\x7b\x58\x09\x0a\x69\x2f\xda\xab\xde\x37\xb2\x09\x33\x0c\x1c\x3c\xa4\x61\x60\x7b\x0f\xc3\x40\x6e\xdb\xf8\x2d\xc6\x8d\xdc\x16\x70\xb0\x8f\x2d\x60\x64\x82\xd8\x53\x79\x08\xc5\x2c\x43\x21\x44\x39\x22\xc0\xc7\x5b\xc9\xb5\x17\x57\xfe\xb5\xe3\xc2\x3f\x68\xe7\x2d\x01\x59\x16\xf1\xe5\xa8\x33\xcd\xca\xb0\x2e\x04\x96\x3c\x30\x5a\x17\xf6\xc8\x98\x59\x17\xc2\x05\xa7\x59\x20\xf7\x37\x30\xec\x90\x2e\x65\x24\x34\x26\x86\x1d\x61\x62\xe8\x2b\x26\x86\x1e\x33\x31\x0c\x92\x26\x86\x18\x34\x53\x18\x19\xf6\x1d\x51\xf8\xaa\x27\x19\x19\xf6\xd3\x46\x86\x7d\xc9\xc8\x70\x0c\x29\x63\xc7\x8b\x8d\x0c\x59\x30\x8b\x3e\xc6\x7d\x51\x8d\x0c\x3b\x92\x91\x21\x8b\x6e\x81\x99\x38\x1d\x0a\xcb\x09\xe8\x77\xd9\xc8\x90\x82\x9d\xa0\x02\x76\xbb\x9f\x1c\x33\x52\x23\x84\xa6\xa2\xd8\x5a\xfd\x09\x30\x9a\x0b\xcb\xe7\x06\x83\xe8\xde\x3b\x72\xd0\x24\x65\x93\xdd\x5a\xea\x92\xeb\x14\xa3\x58\xad\x3d\x7b\x32\xa5\x01\x39\x51\x16\x10\xcc\x17\x74\xe6\x68\x5f\xac\x49\x4e\xac\x7f\xe8\x68\x88\x1c\x3a\x97\x3d\xa0\x85\xec\xe4\x6a\x76\x1d\xcf\xb6\x83\xc6\x24\x94\xc5\x77\x12\xb1\x46\x3c\x6e\x1f\xd9\xc3\x88\x4e\x26\xfb\x48\x3e\xc2\x5f\xcb\xd2\xa1\x2a\x46\x5d\x1e\xea\xcd\x24\xb7\x7b\x9a\x49\x26\x2d\x7e\x92\x66\x92\x73\xd5\x4c\xb2\x9f\x32\x93\x1c\x9b\xb7\x4e\x52\x06\x21\x7c\x7b\x91\x0e\x6e\x8f\x07\xdd\x1b\x01\xab\xba\xab\xdd\x1d\x41\xe6\xee\xe8\x39\xe2\xfd\x55\x97\x6e\x5a\x9d\xb1\x5e\x4f\xb1\xe1\x73\x44\x32\xdb\x18\xa9\x6d\xd0\x83\x9d\x6a\x8b\xed\x15\xaf\x3d\xcb\xe3\x46\xb6\xf0\xb6\xd9\xe1\x7b\x84\xf6\xa8\xd1\x23\xf4\x2f\x1d\x6d\xa3\x4b\x9d\x6e\x5e\xb5\x49\xff\x9a\x48\xb3\xd0\x08\xe4\x39\x11\xdf\x25\x60\xf8\x3a\x49\xbe\xa2\xf8\xe2\xeb\xe4\x9c\x6c\x49\xe1\x8b\xe6\x5c\xdb\x45\xce\x43\xef\x6b\xde\x28\x48\x7c\xc7\x91\x4c\x15\x23\xb2\x1f\x4f\xc9\x7d\x8d\x1f\x17\x7a\xe3\x47\x4f\x35\x7e\xdc\x26\x05\x9f\x69\x9b\x47\xad\xf4\x93\x1b\x25\xee\x19\xe5\x29\xb2\x73\xec\x9b\xed\x1c\x07\x3a\x3b\xc7\x61\xc2\xce\xf1\x58\x1b\x14\x6a\x64\x12\xaa\x8e\x99\xd1\x62\x64\xee\x78\x58\x43\x63\xc7\x5a\x64\xec\x58\x17\xc6\x8e\xa2\x3c\xbd\x04\x11\x7b\xc0\x4a\x44\xb6\x8f\x8a\xfc\x93\x77\xef\x4b\x2f\x5c\x23\xd1\x10\x9b\x36\x27\x70\x45\x59\x06\x91\x1b\x53\x7c\xa9\x84\x41\x64\x64\x32\x39\x4b\x19\x44\x0e\xbe\x21\x02\x54\x21\x93\x47\x73\x10\xa8\xad\x56\x26\xbb\x26\x1b\x84\x27\x68\x8e\xd2\x94\x3c\xe5\x2b\xf7\xf8\xe4\x9a\xf8\x6a\x05\x26\xbb\xdb\x91\xd3\xcc\x6a\x11\x0e\x22\xae\x67\xaf\xca\xea\x3e\x3a\x72\x35\x80\x5e\xdc\x3c\x32\x84\x57\xe4\xa6\x7b\x67\xb7\x13\x22\xe5\x7b\xc5\xb0\x1a\x44\x26\x97\xd1\x6d\xe5\xe2\xcf\x6f\x0f\x4a\x35\x50\x4d\x30\x25\x81\xf7\x1a\x1e\x28\xf5\x4d\x23\x44\x71\x3b\x88\x9e\x21\x58\x54\xca\x2c\xb2\x2f\x45\x90\x1a\x24\xab\x7d\x5c\x01\xb2\x51\xa2\x9b\x2d\x40\x36\x9a\x56\xe6\xdb\x48\x66\x9a\x57\x66\xda\x48\x66\x5a\x57\x66\xda\x68\x19\xad\x2b\x8b\xd8\x48\x1a\xfd\x9e\x65\xdb\x48\x1a\x4d\x2b\xf3\x6c\x24\x07\x8f\x68\x23\x39\xb8\x9f\x8d\xe4\xe0\x4f\xb0\x91\xd4\xb4\x59\xc0\x46\x52\x27\x96\x36\x4b\xfd\xe9\x2b\x74\x9d\x9f\x2d\xf5\xe7\x19\x20\x63\xbe\xd4\x5f\xe4\x21\xc3\x4c\xa9\xff\xb0\xa8\xd4\x7f\x93\x1e\xd0\xc6\x71\x89\x10\x2d\x6f\x14\xa9\xff\x46\x09\x44\xb5\x51\x6c\x1a\x37\x0f\x17\x88\xaa\x17\x05\xa2\xba\x57\x4c\x2a\xbd\xc5\x72\xc6\x1d\xbb\xbf\xc5\xa4\xc1\x28\x13\x25\x44\x41\xd2\x5a\x12\xc6\x00\xb5\xff\x1c\xce\xc2\x49\xd8\xc7\x84\x07\x53\x19\x7c\x1e\x2d\xe7\xfb\x84\xd3\x5e\xc5\x87\x47\x42\x0b\x00\x6f\xa2\x7c\x6f\x85\xcd\xa3\xe7\x94\xe1\xde\x02\x5a\x1f\xdd\x0e\x38\x5e\xab\xde\xa8\xd4\x49\xdb\xf9\xf5\xe9\x33\x7e\x7f\x96\x3e\x94\xca\xd5\x17\x4f\x7c\x16\x17\xaa\x5c\x3a\xfd\x8e\x7c\x77\x50\x83\xff\x4a\x65\xaf\x5c\x82\x7f\xbf\x8b\xde\x5a\xed\xf2\x77\x76\xb9\xf4\x33\xfc\x3a\x7e\xd2\xae\xe0\xef\x54\xee\x28\x33\xe4\x28\x97\xfe\x05\x95\x1f\xcb\xe5\xff\x2e\x95\xc7\xdf\xf0\xfe\xb9\xf9\xfd\x2e\x1a\xcf\x17\x98\x91\x65\x35\x18\x4f\x17\xc0\x7b\xdc\xdd\x2d\x45\x74\x89\x37\x40\x77\x7a\x5c\x6c\x1d\xbd\x6f\x05\x11\x7f\xdc\x78\x73\x6d\x27\xa6\x29\x9a\x98\xc0\x72\x11\x65\x52\x91\xbd\x4a\x51\x39\xba\x78\xac\x5f\x57\x30\x0f\x86\x65\x30\x59\x11\x54\x79\x78\x50\x45\x82\x5b\x3b\xf1\x5a\xb5\x86\x47\xdd\x70\xeb\x4b\xb1\xa5\x2b\xf9\xc7\xe7\xed\xa4\x2a\xf2\xa1\x22\xf4\x24\x13\xcf\xc4\x8f\x30\x13\x6f\x9c\x78\xac\x48\xf5\x36\xa2\xf9\xc0\x8f\xac\x9d\x07\x29\xc7\xbb\xaa\x37\xa3\x4c\x1b\x4b\x69\xf8\x84\x3e\x37\x96\xb0\xa0\xbf\xd0\x48\xe6\x4c\x54\xf9\x73\x24\xaa\xfc\x45\x88\x2a\x57\x05\x44\x95\xe7\x45\x44\x95\x2b\x59\x54\x79\x74\x44\x1f\x3d\x77\xb6\xa3\xee\xb1\xfe\xf0\xe6\x0f\xa5\xf6\x9b\x6c\x71\xb4\x3d\x45\x92\xd7\x09\xfd\x65\xe4\xa4\x58\x15\x9f\xfe\x4b\x84\x9d\xf9\x97\x81\x40\xa6\x02\x24\x37\x16\x20\xcd\x1b\x91\x1a\x28\x4b\x76\x30\x62\x6e\x44\x20\xe5\xc4\xf1\x61\x69\x62\xf0\x11\x91\xf2\x3d\xa4\xd4\x29\x15\x6c\x37\xae\xbe\xf2\x5a\xaf\xae\x77\xd7\xc8\xca\x19\xbb\x9e\x16\xfd\xfe\x95\x1a\x42\xf3\x79\x68\x29\x35\x35\xfe\x6a\x1a\x0e\xc2\x4f\x1a\x0c\x85\x42\x24\xb0\x62\x43\x81\x2e\x92\xfb\x0d\x7a\x90\x1a\xf4\x40\x37\x68\xd8\x90\x4e\x34\xef\xa3\x48\x70\xd1\x18\xc4\x3a\xb0\x49\x52\xb2\x3b\x89\x24\xbb\x93\x2c\xe9\xf4\xcf\x54\x3a\xbd\x52\x44\xbb\xbf\xa0\x68\x77\x22\x36\xd3\x55\x6c\xa3\x84\x5d\xb4\x89\x64\x4a\x85\x3d\xb4\x21\x29\xf1\x0d\x8c\x8e\xe9\xa2\x9b\xf7\x3d\x97\x10\x4f\x52\xde\xa4\x52\x59\x46\x78\xb9\x66\x67\x19\xa4\x7a\x10\xaf\x82\x7d\xe4\xea\x9d\x94\x5c\x7d\xca\xa7\xb5\x23\xa6\x75\x1a\x4d\xeb\x34\x4b\x60\xfe\x0b\x0a\xcc\xd5\x59\xfd\x19\x67\xf5\x86\xd7\xd7\x15\xf5\xdd\x44\xf5\xdd\xec\x57\x5f\xb4\x1e\x6a\x0d\x56\xb5\x71\x06\xb6\x75\x39\x2e\x79\x42\xf3\x18\x55\x53\x6f\x64\xd6\x71\x9c\x51\xc7\x5f\x23\xa9\xd0\xa1\xba\xc3\xb0\xce\xdc\x28\x8d\xf1\xf5\x23\x94\x56\xc5\x46\x92\xbd\x24\xa6\x45\x07\x93\x5d\xcd\x0d\x13\x05\xff\x94\x6b\xa7\xf1\x13\x3b\x49\x7f\x36\x61\x0c\xb6\xe4\x27\x74\x5b\xfb\x8b\x51\xe7\x78\x4b\x33\x54\xac\xcb\xd6\x6b\xfc\x12\xbf\x3a\xaf\x2b\x1b\x6a\x2c\xb2\xe1\xd4\xb3\x09\x7e\xf0\x53\xce\x10\xb4\x70\x83\x0f\x02\x6e\xf0\x03\x5a\x98\xa4\xe0\x06\xff\xb4\x56\x32\xdc\xe0\x43\x2c\x96\x48\xde\x49\x26\xb8\xc1\x47\x46\x76\xfc\xd6\xfc\x28\xe0\x06\xbf\xa1\x62\xe7\x83\xfd\xf1\xea\xb7\x6b\xe7\x03\xfc\x93\x82\x1b\x60\x62\x0c\x37\xc0\x27\x06\x37\x58\xc1\x85\x19\xad\xb0\xd5\x83\xc2\x0d\x7e\x42\xb8\xc1\x4f\xb9\x70\x03\xfa\x69\xff\xe5\x64\xb4\x7d\x28\x4b\x4e\x5d\x76\xb7\x92\xbf\xe6\x94\xa0\xb9\xe0\x68\x1f\xc9\x4e\x8a\x43\x7e\x42\xa0\x24\x73\x14\x9b\xfa\x74\x9d\x41\xfc\xd0\x73\xc6\xf1\x43\xdf\x19\xaa\xe8\x87\xdf\xf7\xed\x68\x8e\xc6\x64\x6e\x24\x43\xbe\x6e\x1a\xa7\xcc\x66\x7d\xdb\x38\x63\x84\x08\x15\xe1\xba\x5e\xe1\x2e\x1c\x3e\x52\x1f\x9a\xe2\x60\xb9\xaa\x91\x9f\xaf\x29\x47\xc8\xa3\xb5\x45\xa1\xda\xe0\xd7\x38\x98\x41\x96\xdf\x45\x88\x36\xd7\x43\xdf\x9e\x7a\xb0\x6b\x14\xbc\x8d\x55\xc8\xe8\x26\xcf\xf9\x29\x13\x68\xc2\xb9\x9d\x08\x6a\xb2\x82\x9e\xf8\x9e\xe3\x79\xf7\x04\x9b\xc4\xf5\xc9\x70\x93\x36\xad\x51\x06\x9c\xf8\x5e\x71\x30\x07\x1d\x49\xe0\x39\x79\x65\xe8\xf9\x89\x18\xd9\x9c\x7c\x32\x52\x25\x2f\xef\xb6\xbe\x4f\xe6\xe3\x3d\x32\x4b\x5e\xac\xf3\xb2\x4a\x74\x22\x9d\x8b\x4e\xfe\x5c\x50\x31\x0c\xb5\xfe\x87\x13\xaa\xb3\xc7\x84\xe4\xe5\x55\x26\x24\x37\xf3\xf1\x1e\x99\xa5\x09\xc9\xcb\x2a\xa3\x82\x72\xab\x45\x5e\xea\xcc\xf5\x87\x68\x14\x44\xf5\x07\x85\xa6\x83\x16\xc3\x60\x7a\x5c\x05\xe8\x39\x8b\x2a\x35\xf9\x05\x42\xe8\xe7\xa7\xc7\x8d\x9f\x49\x4f\x4e\xea\x7a\x8d\x5a\x73\xc1\x39\xa5\xae\x97\xba\xdb\x35\x68\x20\xd3\x45\x05\x9b\x39\x04\x7e\xb4\x3f\x71\x47\xef\x82\xad\x13\x29\xc7\x95\xe4\x16\x25\xe5\x1b\x4a\x1a\xa1\x69\x6a\xbe\xb2\x45\x8f\xaf\xd6\xa7\xc6\x67\xea\x5d\x95\x5f\xb9\x0b\x54\xbe\x51\x04\xd2\x42\x46\x20\xd1\x34\x29\x29\x9f\x1a\x78\x9d\x3d\xd2\x6c\xd2\xaa\xe7\x51\x31\x43\x65\x1d\x41\x8a\x76\x70\x4c\x64\x97\x59\xc7\x48\xa4\xb8\x58\xb2\x0f\xd1\xea\x17\x94\x20\x0a\xe7\x47\x2e\x50\x82\x97\xad\x12\x12\x44\x7d\x77\x84\xb1\xb0\x42\x6a\x28\x3a\x4e\x31\xb8\xbf\xfe\x91\xfc\xf5\xf0\x8f\x6f\x3e\xc5\x5f\xf7\x53\x0c\x36\x9f\xc2\x3c\x16\x3b\xc9\xed\x0e\x32\x2b\xda\x93\xe1\x85\x3b\xd2\xf4\x5d\xf3\x18\x25\xeb\x17\x58\x1e\xdc\x13\x03\xa5\x52\x6d\xb6\x50\xfa\x3a\xd7\xc0\x63\xec\xb7\x26\x7d\x68\x93\x57\xb0\x2b\x42\xce\xf7\x84\x11\x27\x14\xee\xcb\xb0\xfe\xaa\xe1\x7f\xe4\x89\xd9\x87\x07\xec\xa5\x78\xc0\x82\x15\xa7\x07\x18\xc2\xf2\x7b\x09\x23\x9c\x71\x92\xae\x27\x98\xbe\x59\x34\xd4\xe8\x57\xe3\x57\xe0\xf0\x52\xec\xe2\x9c\x97\xec\x8b\x92\xf3\xa8\xe4\xdc\x54\x32\x8f\x31\x94\xfb\xbf\x7d\x56\x94\x35\xbc\x87\xb3\xfa\xac\x76\x8b\xb0\x93\x45\xd8\xc7\x20\x9f\x7d\x54\xda\x35\x32\x90\xf4\x83\xcd\x8a\x77\x3a\x5d\x78\x6e\xa3\xd1\xd6\x06\xfd\xec\xa3\xf2\x94\xdd\x70\xe4\x47\x9b\xbc\x39\x3a\x92\x04\xb8\xf4\x40\x18\xa6\xf6\x71\xea\x1e\x55\xe8\xca\x88\x80\x7c\x23\x09\x83\x51\xf0\x32\xf2\x9c\xa1\x96\x98\x6c\x8e\x3c\x7d\x74\x52\x71\x13\x2b\x92\xdc\x44\xc8\xd2\x5a\x12\x93\xfb\x2b\xb6\x94\x5d\x5f\x4a\xc6\x9b\x53\x21\x9d\x87\x71\x6a\x1e\x36\xd5\x98\x3a\x60\xf3\xba\xb4\x9b\x63\x4f\x9e\x0d\xa5\x79\xa9\x87\x6a\x2e\x54\x06\xc1\x76\x28\x19\x6c\x1d\xdb\x25\xf2\x96\x23\x52\xf6\x07\x27\x7e\x88\xc0\x89\xef\x14\x70\xe2\x87\x04\x38\xf1\xdd\x37\x3a\x18\x5f\xed\x8f\xb1\xf9\x90\x8f\xb1\x21\x3f\xd2\x7f\x13\x71\x0d\x49\x8f\xf4\x65\xa4\x4b\xda\xc7\x37\x4f\x19\x19\x3c\x5d\x5a\x2c\xe2\xbe\xe1\xd5\x24\x05\xc2\x09\x53\x29\xd3\x54\xca\x4d\x2a\x65\x96\x4a\x99\xa7\x52\x16\x1a\x78\xcf\xd2\xe1\xd6\x9f\x4c\x19\x60\xd3\x40\x83\x29\x50\xcf\x3a\x01\xea\x79\x16\x81\x7a\x9e\x49\xa0\x9e\x8d\x6a\x5d\x19\x67\x3a\x96\x32\x6d\x19\x40\xe7\x96\xfd\xd1\x82\x44\xa8\x0d\xe5\x99\xd1\x86\xf2\xdc\x84\x1d\xba\x40\x8c\xd0\x25\xfe\xf3\x12\x31\x42\xaf\xf0\xd7\x6b\xe7\x45\x8d\xbc\x61\x8d\xbd\x65\x7f\xde\xa9\xd8\x20\x7e\x20\x65\xe0\x80\x6c\xf2\xde\xa9\x91\x0f\x29\xc8\xd1\x47\x56\xdf\x27\xa7\x74\x60\xe1\xf8\x0e\x70\x9e\xed\x12\xf9\x8c\x09\x74\x0e\x78\x4a\x73\x50\x15\x96\x6b\xd4\x7b\xe9\x30\xa5\x57\x9c\x64\xc3\x8a\x5e\xa0\xc4\x55\xe4\xe0\x60\xa2\x9b\x28\x81\x1f\x31\x24\xcc\xad\x64\x96\xac\x64\x9e\xaa\x64\x95\x74\xd4\x5e\x2b\x88\x3d\x9a\x18\xb1\x47\xff\x7c\x1c\x80\xd1\x0f\x7f\x2c\xc0\x28\x2b\x7a\x86\x11\x60\xb4\x8a\xe5\x8e\x40\x9e\x15\x73\x79\x7f\xa3\xc5\x7f\x15\x02\x2a\x65\x47\xf8\xd0\x02\x95\x56\x2a\x50\x69\x74\x3f\xc7\xf7\x74\x5c\x8e\xa7\xb8\xbc\x8f\xdd\xe1\xcb\x80\x69\x83\xf3\xfb\x95\x12\x2b\xa0\xc8\x34\x4d\x33\xa7\x49\x99\x96\xac\x41\x7d\xf3\xb4\x18\x5d\xe8\xaf\xee\xeb\x42\x5f\x42\x75\xbd\x8b\x21\x62\x8b\x08\x37\x36\x10\xbf\x8e\x9d\x21\xfc\xa4\x2e\xf6\x47\xfc\xc7\x31\xf5\x83\xc6\xa0\x64\x13\xfc\x75\x4c\x7f\x86\x88\x2a\xab\xd3\x9f\x53\xfc\xc9\x52\x6f\xf0\xe7\x33\xfa\x13\xcd\xb0\xb7\xcf\xe9\xcf\xb9\x04\x31\x5b\x3d\x3a\xaa\x4c\xef\x7a\x3b\x17\x55\x76\x9b\x2e\x76\x5b\x10\x55\x76\x91\x2e\x7a\x41\x8b\xd2\x9b\xe0\x72\x93\x85\x6e\x7a\x93\x2e\xfb\xa6\x00\xc0\xeb\x6d\xba\xd8\x5b\x1e\xd6\xd5\x5f\xce\xd9\x51\x6b\x2a\x7b\x99\x2e\x7b\x19\x97\x7d\x9d\x39\x4b\xaf\xd3\x65\x5f\xc7\x65\x11\x0e\x8b\x5f\xdc\x18\x8d\xf6\x55\xba\xf8\xab\x74\x71\x63\x54\xda\x97\xe9\xe2\x2f\x69\x71\xb6\xa2\xdf\xc3\x06\xc0\xf2\xaf\xfb\xe6\xf9\xfe\x94\xae\xe2\x93\x54\xc5\x0f\x14\x45\x94\x53\xc7\xe7\x74\x1d\x9f\x0b\xa1\xeb\x56\x8f\x88\xae\x5b\xdd\x0f\x5d\xb7\xfa\x13\xd0\x75\x9a\x36\x0b\xa0\xeb\x74\x71\x1f\xcc\xe8\x3a\xfa\x8a\xac\xf3\xd0\x75\x3c\x03\x59\x17\x40\xd7\x89\x3c\x64\x9d\x89\xae\x5b\x17\x45\xd7\xbd\x4f\x0f\xe8\x3d\x73\x4a\x90\x05\x94\x3b\x4f\x7f\x9d\x73\x2d\x50\x6e\xc1\x85\x6f\xe7\x99\xa6\xf4\xa7\xe9\x4e\x9c\x3a\x2e\x19\x50\x53\x7a\xa0\x2b\xe9\x9f\x11\xfb\x33\xce\xb5\xaf\x3f\x4b\xd7\x76\x46\x6b\xdb\xb2\xda\xb6\xac\xb6\x2d\xab\x8d\x19\xdd\x67\xc1\xdd\x06\x85\xe1\x6e\xbf\xf4\x17\xbd\x97\x78\x88\x14\x06\xbc\x85\x31\x2a\x38\x81\xe4\x0a\x25\xc0\xdb\x26\x07\xf0\xf6\xf6\x7f\x18\xe0\xed\x12\x66\x64\x12\x03\xde\x26\x42\xc6\xb1\xb6\xc9\x0f\x5c\xf4\x31\xd1\xe1\xbc\xd6\xf9\x78\x37\x5f\xc6\xbb\xb5\x9d\xd7\x7f\x3a\xc8\xad\x8d\x7e\xa0\x14\x90\xdb\x4b\x8c\xf0\xeb\x4c\x54\x90\x5b\x34\x07\x8c\xb9\x70\x1d\xed\x04\x48\xb9\xa8\xb2\x3c\x32\xaa\xc3\xc1\x57\x68\x07\xbe\x77\xea\x36\x10\x1b\x09\x18\x9c\xcb\x61\x70\x13\x58\xe8\x97\x96\xc0\x81\x7d\x2c\x8c\xa5\x0a\x8b\x06\xb5\x53\xb8\x1c\x4f\x41\x89\x79\x14\x30\x45\x01\x56\x1e\x03\x58\x71\x01\xb5\x67\x02\x4f\xc9\x9e\x95\xba\x94\x0a\xc7\x94\x13\xc7\xa5\xe0\xa9\x38\xe5\x7b\xc7\x8d\xc1\x53\x26\x84\xd1\x6d\x64\xa6\x4a\x4c\xe3\xce\x47\x32\xdd\xc6\xa1\x69\x4d\x95\x18\x63\x64\xa6\x2a\x41\xd7\x1c\xf8\x21\x5e\xe5\xe2\x4d\x5e\x09\x73\x67\x03\xde\x64\x4e\x5e\x91\xa9\x4d\xde\x18\x35\x4c\x0b\x9a\xa1\xb2\x24\x6f\x9d\x65\xe5\x86\x22\x4d\x6e\x72\x90\x26\xaf\x72\x7a\xaf\x45\x9a\x9c\x0a\xa4\xc9\x05\x1c\x60\x69\xa4\xc9\x39\x4a\xc9\x63\xa4\xc9\x69\xcc\x9f\x86\x05\x91\x26\x67\x6c\xc3\xbf\x6b\x9e\x09\xa4\xc9\x3b\x94\xd2\x9d\xda\x67\x57\xef\xae\x9d\x53\xf8\x27\x85\x34\xc1\xc4\x18\x69\x82\x4f\x0c\x69\x12\x1e\x1d\x85\x11\xd2\x24\x63\x81\xdf\x03\x69\xf2\x0a\x91\x26\xaf\x8a\x38\xb6\xe8\xca\x8e\x2d\xba\x31\xce\x23\x70\x7a\xf1\x9b\x0e\x3c\x28\xa0\x8f\xf7\xce\xab\x4c\x24\x82\x7a\x11\x45\xf2\xe4\x10\xf1\x7c\xce\xfb\x7b\xc2\x11\x52\x95\xca\xa8\x84\x8f\x50\xad\x8c\x49\xf8\xb0\x27\x24\xe1\x93\x93\x53\x42\x00\x12\x3e\x15\x57\xbf\xe7\x64\xdd\x16\xcf\x9a\x04\x0d\x7c\xce\xeb\x6d\x0c\x19\xf8\x5c\xbc\xbf\x39\x59\xb7\xc5\xb3\xca\x3a\xfd\x9c\xac\x69\x95\x7e\x91\x1e\x0b\x8d\xfe\x0a\x8d\xcc\xb9\xce\xf5\x75\xf2\x4c\xd4\xe8\xe9\xc3\x58\x4b\x38\x65\x3a\xf3\xb1\xac\x33\xa7\x69\x52\x52\x81\x13\x2d\xb3\xd1\x5c\xbf\x1d\x53\xc9\x6f\xc7\xfb\x1c\xed\xd3\x34\xd6\x96\xc7\xc5\x48\x37\x1a\xbd\xe8\xf5\x1b\xa1\x71\x4e\x9e\x69\x3a\x8d\xf3\xac\x88\xc6\x39\x4c\xf8\xbe\x40\x37\x0b\xdc\x81\x61\x37\xfa\x05\x07\x6b\xb2\x27\x6f\x1f\xbf\x27\x1f\xef\xab\x53\x7e\x03\x93\xc8\x75\xca\x37\xb1\x4e\x99\x4b\x56\xb5\xb5\x7e\x23\x69\x42\x49\x40\xe9\x4a\xfb\x67\xec\x40\xa6\x9f\x74\xf6\xd1\x8f\x14\xaf\xfd\x2c\xed\xf4\x6b\xaa\x9d\x0e\x15\xed\xf4\x1b\x54\xc2\x0e\x92\xf8\xec\x41\x54\xe1\x20\x0b\xf8\xfb\x06\x81\xbf\x6a\x7d\xaf\xb1\xbe\x22\x04\x4b\xde\x8c\xbf\x61\xeb\x75\x92\x52\x5a\x4a\x77\xfe\x4b\x66\x4a\x7e\x74\x24\x91\xe4\xf4\x93\xfc\x90\xf8\x24\x05\x15\x98\x6b\x89\xb8\x47\x05\xe6\x17\xe7\x07\xad\xfa\xf2\xcb\x03\x6a\x2f\xdf\x42\x33\x0f\xa9\xbc\x7c\xcb\x66\xe0\xc7\xc4\x0c\xa4\x55\x97\x13\xbb\xf9\x63\xae\xe6\x12\x7a\xf7\xe3\x7e\x8a\xcb\x8d\x4d\x5e\xa2\x6a\x2e\x19\xd8\x7d\x18\x2d\xa9\xe1\xbe\x6b\xf4\x6d\x7a\x4d\xdd\x17\x40\x91\x06\xd1\xab\xbb\xac\x50\x2b\x31\x44\x64\x94\x44\xe0\x8f\xa2\x51\x8e\xb2\x36\xce\x5b\xc3\xc6\x29\xda\x99\x6d\xaa\x33\xa3\xc7\x9b\xa1\xf1\xfd\xf4\xd0\xa7\x91\x1e\x7a\xab\xe8\xa1\x4f\x13\x0a\xdf\xed\xb7\xe9\xa1\xc3\xfd\xd5\xd0\x09\x9f\x0e\x09\x5d\x73\x4a\xa7\xdc\x4b\xa5\xf4\x53\x5a\xdd\x41\x2a\x65\x98\x4a\x19\xa5\x52\xc6\x1a\x5d\xf0\x24\xa9\x0b\x0e\x75\xba\xe0\x69\x21\x5d\xf0\x4d\x11\x5d\xf0\xcc\xa4\xc9\x9d\x33\xcd\xea\x82\xfd\x59\xa2\x0e\x77\x85\xda\xdc\x28\xa4\x35\xfd\xb3\xdd\x5f\x91\x7b\x4b\xbd\xe3\x9e\xa6\x54\xb9\x67\xb4\xc6\x66\x57\xd1\xd3\xca\x2a\x29\x20\x24\x92\x3a\xdb\x7e\xae\xba\x75\x90\x54\xb7\x0e\x73\x8b\x8c\x92\x45\xc2\x42\xca\xb0\xc1\xfd\x7d\x46\xf4\x8d\x7a\xdb\xf3\xc7\xd1\xdb\x5e\xfc\xb1\x7a\xdb\xee\x7d\x34\x9a\x61\x31\x7d\x6b\x56\xdd\x06\xc5\x62\x68\x74\x0c\xb1\x8d\x75\x7d\xe3\x48\xd7\xd7\x8d\x75\x7d\xb1\x8f\x88\x7e\xe4\x23\x62\x10\xab\xf8\x86\xb1\x5e\x6f\x24\x69\xf0\xc2\x47\xd7\xe0\xe9\x0d\xa8\x73\x35\x78\xfa\x48\xb5\xc5\xf4\x5a\x46\x3f\x0b\xf9\xda\x3f\xa3\xaf\x85\x02\xda\x3f\x63\x2c\xeb\x22\xbe\x21\xf4\xc2\xf6\x5c\xd5\xa1\xde\xa8\xbf\x80\xf6\x2a\x7c\x44\xed\x55\x78\x3f\xed\x55\xf8\x27\x68\xaf\x34\x6d\x16\xd0\x5e\xe9\xfc\x87\x98\xb5\x57\xf4\x15\xb0\xe9\x39\xda\x2b\x9e\x81\x4c\x0b\x68\xaf\x44\x1e\x32\xcd\xd4\x5e\x4d\x0b\xc5\x88\x4a\x7a\x51\xf0\xa8\x17\x05\x8d\x12\x6a\xcc\xb9\xe0\x99\x5d\xcc\x51\x77\x57\x89\x16\x90\xfc\x96\xe8\x61\x5c\xc9\xe0\x46\xd7\x68\x94\x80\xca\xae\x1f\xa3\xfb\xc7\x18\x65\xac\x2a\x65\xd2\xb5\xa3\x66\x60\xaa\x30\x25\x01\xd5\x60\xf9\xed\x0c\xaa\xdb\xec\x76\xd4\x0c\x4c\x3b\x96\x6c\x27\x4f\x91\xa8\x87\x2e\x20\x76\x27\x16\x1c\xa3\x97\xb3\xf8\x29\x4b\x23\x48\x65\xfb\xba\x89\xdf\xb0\xe9\xce\xd3\x01\x76\x11\x95\xa3\x2b\xbf\x65\xe5\xf3\xb5\x7e\xdd\x42\x5a\xbf\x31\x9c\x8f\xfd\x33\x77\x56\x44\xd7\x77\x11\x1f\x9a\x91\x5b\xec\x0b\x7d\x3c\xb1\x0b\x67\x58\x19\xb0\x78\x62\x03\xbe\xbd\x2e\x9d\x11\xfc\x46\xc1\xfd\x40\x6c\xa2\x97\xb9\x7a\x83\x97\x76\x13\x98\x79\x2f\xf6\xe3\xb6\x76\x22\xb3\x00\x0f\xad\x05\xb4\xe6\x76\x92\xb1\x9d\x5b\xdd\xc0\x24\xd7\x84\x27\x3b\x01\x7e\x22\xc8\xb3\x36\xaa\xb5\x3a\x5a\xdf\x01\x5f\xbf\x80\xaa\x3d\xec\xcd\xc8\xdd\x22\x89\x00\x04\xa8\x3f\x04\x1e\x3f\xec\x74\x70\x9c\x4b\x8e\x7d\x9a\x67\x49\xd7\x69\x50\x8d\x1b\xdb\x3a\x8c\xbb\xbb\x6e\xad\x1b\x68\xa4\xe7\xe9\xe8\x24\x2f\x42\x68\xcd\xd3\xaf\x7d\x8c\x7e\xc7\x81\x5a\xc0\xbd\x70\x5b\x1e\x1a\x59\x6a\x47\xbb\x6b\x1e\x3d\x11\x3e\x10\x1d\x8c\x20\x59\x6b\x7a\xa9\xd9\x11\x11\xe0\xb9\x4b\x42\x60\xc8\xbc\x2a\x4e\x88\xe2\xe3\x12\x7b\xbd\xfd\xbe\xd6\xc2\xdf\x75\x8c\x01\x51\x71\x58\x2e\xbb\xc1\x92\xd8\x53\xb9\x4d\xda\x65\xf1\x66\x27\x68\xd4\x57\xe8\xcf\x33\x68\x5d\x5d\x37\xd2\xad\xef\x61\x2a\x39\x15\xa6\x92\x37\xfc\x47\x0d\xbe\xe0\xb6\x46\xb6\x75\xfc\x5b\x67\xa6\x93\xe3\xc8\x56\xf2\xee\x2e\x32\x92\x7c\x95\x61\xa2\x19\x5b\x47\x9e\xb9\x93\x36\x7c\xd3\xbb\xbb\xab\x1a\xb9\xb8\x26\xb7\x92\x1f\x81\x80\x56\x96\xb4\xbd\x34\x57\x8b\x67\xff\xf6\xa4\x86\xff\xb2\xce\x95\xe1\x1f\xfc\xf1\x1f\xe8\x40\x93\x19\x6c\xce\xec\xc8\x2c\xb3\x0b\x6d\x5e\x12\xf4\x4f\x30\x96\xbd\x88\xa2\xdb\x53\xd9\x7d\xe8\xd1\x51\xf4\xa8\xe4\x6b\x5d\x29\x8f\x15\x58\xc9\x4f\x94\x14\xa2\x54\x53\x4e\xbc\xaf\x5f\x5f\x37\xae\x2a\x75\x82\xfe\x49\x27\x89\xf6\x27\x6a\xfb\xd1\xe3\x44\x6d\x5f\x79\xa4\xf5\x2b\x29\x44\xa9\xa6\x92\x78\x2f\xb7\xdf\x73\x7a\x77\x77\x63\xe0\xa0\xfb\x77\x77\x13\xae\x25\x7c\x69\x54\x0e\xd1\xf3\xca\x93\x6c\x54\x31\x32\xe0\x1b\xe7\xf5\x3d\x54\x42\x71\x55\xe4\xad\xf3\x26\x19\x1d\xf0\x9d\x94\xd4\xa5\x58\xe3\xd7\x8a\x7e\xe8\x5d\xc1\xe8\x80\xaf\x73\x84\xf2\x83\x58\x28\x3f\x88\x85\xf2\x6f\xf7\x8b\xd7\x17\xa6\x42\xf5\xbd\x36\x86\xea\x0b\x0d\x51\xfa\x2e\x92\x92\xbe\xcb\x58\xa3\x20\x85\xd9\x9b\xeb\xc3\xec\x85\x4a\x84\xbd\x0f\xd2\x64\x3d\x58\x84\x3d\x89\x39\xf6\x76\xa8\xa0\xbb\x6f\x7c\x3d\x4d\x90\x3c\xda\xeb\x8f\xce\x99\x2c\x6c\xfb\xa0\x89\x1d\x86\x13\xc7\x8d\xe0\x60\x92\x4b\x62\x09\x5d\x42\xc6\x12\xf3\x34\x32\xee\x53\x4c\x31\xd9\xda\x92\x4c\x56\x33\xb4\xbe\x45\x4f\x8c\x5a\xa3\x66\xdf\xdd\xd5\x76\xc9\xc9\xaf\x49\xe6\xfc\x1f\x81\xf2\x86\x7b\xe9\xe8\x88\xff\x48\x9c\x96\x2c\xa2\xb0\xf7\xc4\xda\x3e\xb5\xce\xcb\x75\xdb\xae\x78\x82\xc9\xf6\xa9\x89\x45\x6e\xb0\xbf\x68\xc1\x3e\x76\x6c\xbf\xd5\x3e\xb1\xfd\x44\x66\xf4\xfe\xb0\x5f\xe4\xbe\xea\xdf\x5e\xc4\x4a\x59\xd3\xd7\x33\x2e\x3a\x20\x38\xa2\x2b\xbc\xb5\xae\x26\x1c\xe4\xec\x50\x83\x9b\x08\xa8\x88\x29\x89\xb5\xa8\x93\xdb\x6b\x47\xc9\x6e\x36\xb8\x67\xb9\xd5\xf3\xc1\x24\xe8\xba\xd4\x3f\x7d\x43\xa4\x30\x59\x07\xa4\xec\x24\x91\xbf\x7c\xdf\x4b\x51\xbf\x16\x88\xd6\x81\xa3\x3e\xba\xde\x2c\xfb\xa9\x17\xeb\xfd\xbf\x6d\x45\x2a\xe7\x85\xda\x06\x94\xad\x37\xbc\x08\x57\x70\x8f\x18\xe8\x63\x8b\xdd\xf6\x36\x33\x8c\xa3\xf3\x6c\x5c\x51\x12\xae\x66\x45\x67\x20\x6f\x55\xe9\x0b\xa0\x74\x68\xac\x09\x3b\x45\xfb\x98\x84\x4e\x25\xf7\xc2\x21\x0d\x60\x9a\x14\x5c\x59\x5f\x71\x5d\x35\x5c\xe0\xd3\xd0\x9f\xb2\xc7\x59\xc0\x14\x0e\x4b\x1a\x19\x25\x9b\xa4\xbe\x28\xee\x92\x8b\x75\xa5\x9e\xea\xca\x72\xf1\xed\x3d\x49\xb8\xa4\xa7\x5d\x51\x9b\xa1\xeb\xff\x5b\xda\xf1\x13\xfe\xbb\xd5\x36\x98\x7f\xe9\x7b\xd5\x4f\x22\x0c\xff\x1c\x6e\xd5\xcf\x33\x38\x1c\xba\x8c\x71\x13\x4d\xb7\xa3\x38\xe7\x86\xd6\x2f\xbc\xd1\x63\x75\x00\xf1\x1a\x8f\x73\x34\x7c\xd3\x96\x23\x1b\xe0\x83\xfc\xbb\x3b\x0b\xee\x13\x95\xd0\x8d\xc4\xc6\x35\x54\x9a\x67\xed\xcc\xf8\x2c\x82\x09\x98\x75\x3d\x6b\xc3\xda\x80\xf3\x76\x36\x84\xfd\xe1\x9b\x55\xf9\x5e\x8e\xf2\xde\x07\x6a\x6f\x67\x5f\xb5\xaf\x6d\xa0\x94\xbe\x00\x83\x3a\xe9\x5a\x79\xfb\xfe\x8f\xef\x8e\x40\xd8\x7c\x4a\xc5\x7b\x3c\x8b\x29\x06\x89\x5a\x40\xd5\x07\x52\x0b\xa9\xbb\x3d\x3e\xb2\xfc\x27\xdb\xa7\x32\xc3\x27\xce\xf3\xe6\xa2\xf5\x39\xf3\x4c\x47\xf9\xf8\xb6\x6e\xa7\x0e\x73\x4d\x56\xd6\x1f\x77\x13\x63\x32\x69\x61\x64\x63\x6a\x76\x85\xfe\xae\xc1\xa7\x97\x2a\xdb\xa8\x21\xf5\x58\x35\xf1\xc5\xa1\xbb\x27\xec\xc6\x67\xdd\x15\x26\x11\x13\x8c\xfc\xc8\xbb\xc1\xb4\x77\x50\x74\xfd\xe8\xa6\x44\xb7\xaf\x50\x83\xd4\xc0\x7f\x60\x78\x2c\xd1\xfe\xbe\x4e\x53\x2b\xf5\x46\x94\xa4\xbb\x0c\xb5\xf5\xea\x66\x90\xd7\x51\xc1\x4a\x71\xf2\x68\x65\xd4\x23\x12\x8f\xa2\xd9\x07\x86\x8b\xff\xf4\x28\x2a\x54\xfa\xce\xb0\x19\xcf\x9d\xf4\x77\xc7\xf3\xe3\x4c\x76\x3b\x2f\x16\x95\xc9\xeb\xbc\x64\x30\x9b\x17\x68\x73\x48\x03\x6d\x8e\x68\xa0\xcd\x31\x15\xcf\xa0\x3a\xbb\x1a\xce\xda\xe8\x43\x24\xd2\x46\xd2\x44\x16\xdb\x92\x2a\x24\x25\x27\x7b\xf5\xe0\xf9\x13\xfa\x08\x9f\x06\x18\x3e\x0c\x7f\x30\x35\x9a\x93\xde\x18\xcd\x49\x67\x0e\x72\x91\x73\x54\x2f\x2e\xd0\x6c\x74\xe9\x94\x6e\x83\x59\x58\xa2\x96\xb0\x5a\xed\xe4\x1a\xb3\x45\x3a\x48\x1c\xc0\xad\x53\xad\x93\x53\x55\x1d\xc9\x62\x59\xa8\x11\x37\x13\x8f\xe2\xdc\x2f\x1a\x92\x33\x1d\xc5\x45\xf1\x50\x7f\xa6\xf5\xf1\x7e\x0a\x7b\x9e\x9c\x3b\x35\x41\xaa\x4b\x1a\xa7\xd3\x47\xd7\x0d\xe9\x43\xff\xe5\xea\x86\xf4\x81\xff\xb2\xc4\xa0\x46\x87\xdf\x46\xc1\xa7\xd1\xd1\x37\x03\x93\xee\xed\x05\x7d\x9b\x59\xcc\xe8\x05\x7d\xc3\xc2\xa8\x9a\xca\xb5\xd3\xe5\xda\xac\xb9\xec\x72\x41\xba\x5c\xc0\xda\xfb\x01\x0f\xb2\x7d\x22\x61\xb2\xe6\x32\x8b\x19\x63\x8b\x02\x7d\xe0\x07\x46\x03\x31\xbd\x77\x67\x54\xe3\xa1\x54\xd4\x1c\x5b\xd4\xa8\x3a\xa4\xe5\x3e\x51\x51\xea\xde\xaa\xc3\xbc\xd8\xa2\x46\x35\xa7\xd0\x40\x9b\x0a\xfa\xe9\x82\x3e\x8b\x84\xba\xbf\xe3\xfb\x5e\xbf\x1d\x64\x19\x0b\x1a\x35\x94\x94\xeb\xfe\x82\x7c\xeb\xa4\xbb\xb7\x4d\x65\xb6\xae\x2c\x19\x68\x93\xaa\x49\x8c\xba\x32\xfa\x8a\x0c\xf2\x74\x65\x42\x98\x3f\x28\xa0\x2b\x8b\xc4\xfc\x83\x4c\x5d\xd9\xa0\xa8\xa5\x97\xde\x24\x95\x08\x5d\xc4\x36\xd7\x3b\x7a\x52\xc7\xec\x51\x1d\x73\x5a\xdf\x86\x5a\x67\x77\x76\x9e\x55\x55\x52\xfd\xeb\xa1\xfa\xd7\x6b\x69\x2a\x6b\xe0\x7d\x94\xd0\xd4\xe4\x6a\x63\xee\x11\xa9\xf4\x42\x52\xc9\xc4\x91\x4a\x67\x47\x47\x17\x52\xa4\xd2\xb9\xf4\x68\x8e\x54\x7a\x9b\xab\x96\xb9\x65\x34\xee\x85\xc9\x9c\x63\x44\x6e\x31\x44\xa9\xc6\xdc\x83\x83\x9f\xc7\x34\x43\x56\x88\xd2\xf3\xd6\x6d\x14\xa2\xf4\xd6\x60\xc9\x71\x9e\x65\xc9\xb1\x11\x96\x1c\xaf\xb4\x21\x4a\x5f\xaa\x21\x4a\x37\xfb\x87\x28\xdd\xb2\xd9\x7a\xd3\xdc\x0a\x4b\x8e\x37\x88\x73\xdb\xd8\xdb\xab\x37\xd7\xce\x06\xfe\x49\x59\x72\x60\x62\x6c\xc9\x81\x4f\x8f\x1e\xa2\xf4\x16\x2d\x39\x6e\xbf\x35\x44\xe9\x5b\xe7\x36\x5b\x24\x0f\x8b\x16\xcd\x2b\x18\xc8\x43\x89\x55\xfa\xce\x79\x7b\x5f\xe1\x7c\xb2\x52\x55\x1e\xff\x56\x91\xc7\xc3\x3c\xe6\x88\xe4\x65\x4b\x85\x9c\xac\xdb\xe2\x59\x25\x47\x85\x39\x39\x95\x90\xa4\x39\x79\x71\x2d\xcf\xc2\x91\xa8\xf9\x46\x8a\x2d\x7a\x51\x39\xb3\x28\xd8\xff\x81\xe3\x8b\xe6\x6d\xd6\xcc\x26\x73\xe2\x7b\x5a\x36\xf3\xed\x27\x47\x19\x0d\xd9\xf6\xf9\xe0\x5c\x51\xe3\xba\x69\x95\xde\x85\x41\xfb\xee\xae\xf4\x8a\xfd\x2a\xc5\x77\x78\x50\xe5\xb4\x07\x2a\xc5\x79\x7e\x9e\x02\xf9\xbf\xb0\x5f\x52\xfe\x43\xb9\xc0\x75\x33\x8a\x29\x8a\x46\x06\x0c\x4b\x71\x55\xfa\xcb\xf3\xe7\xcf\xa1\x57\xf2\x9f\xeb\xe4\x20\xd5\xef\xc0\x67\xf6\xc3\x5e\xf1\x54\x85\xbd\xdd\xee\xed\xbd\xc2\xaa\x2e\x8e\x8e\xde\xdf\x33\xac\xea\x85\x70\x31\x16\x44\xe7\x56\x2a\x9c\xa9\x74\xb2\x48\x96\x06\x62\xa9\x45\x86\x18\xaf\xf7\x09\x87\x3a\xb9\x77\x38\x54\xd9\x08\x4b\xeb\x6b\xb0\x78\x34\x54\x38\x0f\x3e\x46\x01\x51\x67\x18\x39\xfe\x7e\xf1\x50\x2f\x34\xf1\x50\x29\x32\xfb\xfd\x03\xc6\x43\x35\xd7\xc5\xe3\xa1\x72\x6d\x86\x21\xdf\xc1\xc9\x41\x37\x65\xc1\x80\x33\xf0\x49\x4e\x43\x76\x9d\x1c\xa8\xae\x30\x25\x55\x0a\x59\xb1\x0d\xf9\xd9\xc9\x95\x1b\xba\x74\x91\x7a\xd8\xf7\x1d\xf9\xa7\xf3\x82\xfc\xe0\xd4\xff\xd6\x54\x1a\x33\x59\xd1\x18\x64\xf2\x9f\x61\x62\xfc\xff\x3c\x76\x9c\x5a\xeb\x9f\x8d\x1f\x04\x8a\xe0\x4b\x4c\x88\x44\x37\x57\x3c\x68\x71\x07\x1d\x74\xe1\x3f\xd6\x1e\x8a\x4a\xd8\x85\xd8\x7c\x9f\x5d\x10\x7f\x7c\x70\x37\x1f\x30\xa6\x78\x81\xae\x2a\x1d\x45\xf2\xc4\xbb\xbb\xfb\xf2\x9f\xc7\x87\xd8\xe1\x1f\x1a\xff\x44\x79\xf6\xf2\xe8\xe8\x53\x66\xf4\x04\xef\x3f\xe3\xd0\x04\x83\x94\x50\xe7\x29\x5b\x69\xb6\x8d\x75\xee\xec\xe4\x5c\x92\x03\xfc\x7c\x9a\x0f\x57\xa3\xe6\x2e\xca\xdc\xd3\x95\x6a\x1c\x56\x69\x16\x2e\xb8\xf7\xd4\x72\xe9\xa0\x46\x4f\x08\x51\x2b\x96\xa9\x00\xc5\xd2\x0b\x67\x25\xb2\x3e\xa9\xb5\x10\xb5\x3d\xc3\x30\x3e\xf4\x02\xce\x58\xa7\x49\xe2\x20\x3d\xbf\xe9\x15\xb7\x9b\x7f\x43\x8c\xdf\xd7\xe9\x18\xbf\x17\xe9\x6d\xf9\x90\x31\x7e\x37\x91\xf9\xc2\xa9\x62\xbe\xb0\xc9\x8e\xf1\xcb\xee\xc9\x64\x9c\x52\x04\xc7\x75\x2c\xc9\xe7\xdd\xd7\xf9\xba\x8f\x72\xa1\x0f\xce\x87\xfc\x23\x1a\xa5\x62\x2e\x65\x29\xe2\x94\x3a\xf3\xf8\x0b\x5c\xac\x3b\x0f\xa2\x2b\xb4\x81\x4f\x07\xd1\xe5\x2a\x5d\xa4\x87\x75\xbb\xe9\xcd\x02\x77\xd8\xa4\x05\xc4\x1d\x2a\x0a\x08\x5e\x5f\x2a\x50\xb3\x77\x1b\xf1\xe4\x48\x17\x2c\xc9\x9a\x8f\x1d\xbe\x0e\xbf\xc9\xaf\xe0\x3d\x62\x77\x6e\xf4\x7e\x05\xf5\x4d\xf1\x81\xd0\xc8\x52\x62\x50\x51\x2a\xd6\x25\xc6\x1c\x25\x92\x4b\x47\xca\x90\xb0\x1e\xb9\xd0\x89\x66\xfd\x62\x51\x41\x05\xd9\xfb\x8d\x91\x41\x93\x69\xdf\x14\x12\x94\x0a\x54\xa3\x00\xa0\x06\xe1\x2b\x0f\x09\xfa\x75\x17\x85\x04\xad\x29\xc2\xdb\x43\x6a\x2a\x52\x27\x6b\xa7\x46\x36\x29\x3b\x8f\xa4\xf7\x41\x45\x62\x5b\x34\x12\xe8\x99\xa3\x91\xd8\xb4\xea\x7f\xaf\xa1\x5c\xfb\x9c\x86\x09\x8d\x3f\x25\x74\x45\xd9\x0a\x24\x37\x82\x68\x15\x41\xec\xec\x48\xc3\x02\xb2\x79\x86\x16\xb9\x22\x85\x1c\x5d\x24\xc3\xa1\xc9\x85\x61\xac\x1d\xf6\xab\x44\xaa\xf5\x4e\x89\x06\x59\xda\xd7\xeb\xda\x43\x07\x27\x85\x43\x8c\xad\x69\x3a\xd1\xf4\xac\x50\x19\x7e\x45\x94\x6d\xa3\x7b\xc7\x3a\x79\xf9\xf0\x86\x29\x91\xc8\xf1\x12\x4d\x54\x5e\xed\x61\xa2\x12\x6f\xea\xcb\xf8\x49\x44\x17\xff\x53\xa3\x9b\xe6\xb9\xe5\x63\xae\xdc\x31\x35\x15\xd6\xdc\xe0\xa5\x6f\xa0\xf7\xaf\xf7\xed\xf1\x51\x33\x6a\x30\xfa\xd7\x1b\x3c\x80\x7f\x3d\xd4\x80\x88\x93\x33\x19\x8f\x55\xb0\x64\xd4\xdc\x46\x17\x9c\x95\x9e\x17\xce\x26\x11\x91\xf5\x71\x15\x2a\x46\xcd\x48\xb6\x42\xc5\xa8\xb5\xc8\x37\x98\x31\xea\x49\xb0\xe8\x39\x9f\xa3\xbd\x05\xd9\x7c\x72\xdf\xbb\x5e\x60\x2e\x9d\x19\xc5\x35\x33\xfe\xab\x59\xb3\x90\x17\xff\xd5\x2c\xe6\x2f\x60\xe3\x63\x74\x66\x98\x6d\xe3\x63\x14\xbc\xcf\x82\xf6\xd2\x0f\x7e\xa5\x94\xe8\xde\x0a\x0d\x46\x7e\x67\xcf\xb0\x51\x5f\x00\x6b\xbb\xdb\x0d\x66\xd9\xa5\xff\x1d\xb7\xf6\xdf\x71\x6b\x1f\x20\x6e\x6d\xd2\x47\x9e\x4b\x7d\xe4\xc9\xc1\x6a\xcf\x95\x60\xb5\xe7\x4a\xb0\xda\x73\x46\x08\xa3\x4a\xe2\x3c\x57\x33\x93\x54\xc3\x7a\x54\x0d\x9b\x11\xb7\x76\xb2\x47\xb0\x5a\xbd\x5a\x32\x83\x3a\x2b\xa0\xff\x09\xaa\x22\x87\x46\xa1\x1b\xbd\x63\xa6\x3a\xac\xc7\x5a\xda\x8b\x43\x92\x4a\x7f\xf1\x7d\xbf\x14\x41\x92\xea\xd5\x17\x4f\x3c\x15\x53\xf4\x10\xf1\x6c\x05\x6f\xf1\x1a\xc6\x7d\x8b\xba\x92\x51\x11\x0d\xd3\x58\xa3\x61\x1a\xeb\x8d\x7e\xc6\x69\xa3\x9f\xb3\xb4\xd1\xcf\x65\xae\x76\xe9\x92\xb9\xe5\xc9\xb0\xc7\x61\x50\x90\x7d\x8c\x72\x1e\xc3\x0a\x67\xf5\xc7\x5b\xe1\x54\x58\x96\xb4\x31\x8e\xd6\x0a\xe7\xe5\x1f\x68\x85\x33\xd1\x59\xe1\xbc\xdc\xdb\x0a\xe7\x8c\x5a\xe1\x84\xd9\x56\x38\xe6\x6a\x57\x92\x15\x8e\x30\xc0\xa1\xbd\x8c\x8d\x70\xe6\x36\x2a\x1f\xb8\x08\x16\xb1\xde\xab\x16\x1a\xe3\x84\xb2\xf5\x0a\x4c\x38\x1a\x8d\x8d\x2b\x56\x28\x1b\xad\x9c\xd0\x64\xfb\xba\xd1\xa5\x7d\x1d\x0b\xeb\x95\x09\xb3\x5e\x49\x01\xa3\x44\xd9\xb8\x92\x28\x2a\x5b\x88\xce\x0b\xf0\x9f\x6b\xbb\xf9\x55\xeb\x43\x2f\xd7\x04\x26\xde\xc7\x8a\x31\xcc\x6b\xe7\xd5\x37\x18\xc3\xc8\x95\x92\x37\x8e\xf5\x3a\x69\x17\xf3\x5a\xae\xd4\x8e\x7c\xc4\xd1\xc7\xdd\x9b\x82\x46\x31\xaf\xee\x63\x14\xc3\x15\x91\xaf\x1e\xdd\xb2\x44\xaf\xaf\xbc\xa7\x65\x09\x79\x2b\xac\x05\x92\x68\xd0\x8b\x18\x0d\xda\x8b\x66\xbd\x71\x80\xb9\x0f\xe2\x61\xdd\xaf\xd5\x58\xaf\xfb\xf6\xbf\x91\xf9\xc7\x62\x1f\xf3\x0f\x91\x19\x46\x50\x70\xe6\x72\x27\x2d\xcf\x5c\xe4\x5d\xa4\x53\x8e\x77\x5d\xb6\xad\x88\x64\x15\xf2\x2e\x65\x15\xc2\x1c\x1d\xbe\xcb\xd8\x8d\x7a\x6d\x83\x64\xcf\xa1\xec\x8a\xbe\xb5\x12\x06\x1a\xcc\x41\xed\x8a\x1a\x7b\x4c\xb4\x20\xd8\xf2\x84\x82\xbb\x7d\xdb\xa6\x8e\xc9\xa0\x83\xef\xf5\xc6\x29\xc2\xd1\x6b\x12\xe2\xaa\x56\x0b\x6d\xc9\xf6\x1d\x3c\x56\xcc\x37\xd9\x4e\x9c\xff\xf7\xb1\x9d\x38\x7f\x78\xdb\x09\x4d\x4f\x1e\xa1\x15\x9d\x85\xc6\xf9\x1f\x60\xa1\x71\xfe\xa7\x5a\x68\x9c\xff\x11\x16\x1a\xc0\x6f\x20\x02\xb9\x86\x60\x89\x78\xeb\x4c\xc3\xd1\x96\x69\xe2\x60\x0b\x88\x8b\x28\x4e\xe4\x7b\x88\x9d\x81\x3c\xa4\x20\x4f\x9b\x86\xfd\xc9\x42\x3d\x81\x23\x12\x71\x46\x1f\x80\x4e\xac\xfe\x3d\xb1\x9d\xad\xe3\x27\x89\xad\xd7\x6c\x3b\x6d\x61\x9d\xd6\x6e\x5c\x55\x22\x6a\xb1\xcd\x63\x9d\xb3\xdf\xe8\x3c\xba\x6d\x22\x93\x42\xf8\x5d\x41\xea\x83\x13\x8a\x1d\xe7\xea\xaa\x8d\xa3\xad\x04\xd7\x84\xfd\x8a\x7e\xd4\xe8\x8f\xba\xf4\x83\x67\xaa\x63\xa6\xeb\x66\x24\x46\x36\x52\x7a\x03\x18\xb9\x05\xd3\x81\x9f\x95\xfd\x3e\x28\xd9\x39\x06\x2b\xd1\xd4\xe4\x4e\x87\xe6\xa0\xa4\xa8\x7b\x1f\x11\xfe\xb5\x46\xc8\x1f\xd8\x78\xf1\xe0\x3c\xa0\x8e\xc5\xf1\x48\xa4\x06\xae\xfc\xc3\x32\x2d\x25\x61\x04\xa1\x15\x7f\x5b\x55\x8d\x2a\xeb\x47\xb5\xb7\x56\x6c\xb3\x83\x1a\xd3\x06\xd7\x9f\xca\x96\x77\xa9\x01\xa5\xac\xe6\xda\x90\xab\x54\x7d\x76\x1c\x50\x25\x04\x34\xa9\x35\xf8\x3c\x15\xb6\x05\x84\xad\x1f\x4f\x4c\xc5\x41\x14\x24\xb4\xdd\xf2\x1b\xd1\x5a\xf1\xcb\x25\xf8\xef\x34\x36\x4e\x68\x53\x77\xdf\xe5\x52\x25\x91\x5a\x83\xd4\x06\xe4\xfe\xff\xff\x3f\xf5\x85\xcd\x62\x84\x15\xbc\x8c\x11\xba\x51\xb2\xf5\xd3\xb8\xc9\x9b\xbc\xca\x73\xfe\xdd\x3c\xfe\xdd\xca\xcf\xe1\x6b\x35\xde\x69\x10\x06\x74\x7e\x4a\x25\x6a\xba\x84\x5f\x2e\xf9\x45\xe3\xf3\x9e\x5d\xe6\x95\x11\xca\xce\xd8\x0d\xa4\x7e\xe5\xaa\x92\xe1\x3e\x9f\x5c\x56\x96\x3f\xec\x27\x17\x92\x57\x41\x13\x7d\xcb\x67\xd0\x8f\x33\xf7\x9b\xe0\x67\xa8\x44\x5f\xa5\xfc\xbc\x51\xd1\x7f\x93\x64\xf5\xd1\x07\x7a\xf7\xe0\x26\x6f\x64\x59\xcc\x5c\xed\xdd\x3e\xe6\x6a\xcb\xff\x5e\xe6\x6a\x8f\xde\x1d\x9b\xac\x5a\xfb\x2e\xa7\xfd\x4d\x0d\x43\x66\x88\x46\xe9\xd6\x49\x6c\x76\x88\xa7\x70\xb4\x38\x75\x64\xa9\x76\xa4\xd1\x99\x24\x96\x23\x37\x52\x0b\xb9\x91\x5a\xca\x5c\x6b\xa2\xda\xa0\x3d\xe4\x70\x7d\xc3\x70\xa3\x2b\x88\xfd\x88\x68\xf6\xc8\xc2\xad\x20\xd9\xae\x9f\x1d\x3d\x91\x9e\x34\x80\xcb\x9d\x43\xc5\x58\x4d\x3d\x71\x99\xa5\x1f\xe9\xc5\xe6\x69\x7d\x27\xe4\x3f\x4d\x20\x87\x58\x78\xf0\xe0\x96\x68\xd9\x06\x66\x13\x9d\xa5\x5a\xa8\xb1\x54\xbb\x9f\x25\x9a\xfe\xcd\xe5\x0c\x85\xbf\xd4\x4c\x6d\x61\x82\x45\x2c\x19\xa2\x81\x43\x1f\xa8\x7d\x1a\xfc\xb3\x75\xbe\x93\x8d\xd3\x62\xf5\xff\x71\x87\xe2\x18\xd0\x22\xf4\xfc\xcf\x36\x5b\xd3\xeb\xfa\xcf\xc9\x99\xad\x31\x59\x3b\xff\xb7\xc9\x9a\x46\x15\x8b\x4b\x64\x6f\x55\x68\xb6\x9d\x9b\xd1\x60\x2d\xdb\xce\xcd\xa8\xf0\xfd\x7f\xd9\xce\xcd\xa8\x53\xce\xb1\x73\x33\xea\x57\x51\x8b\xfd\x33\x73\x17\xb2\xb7\xab\xca\x87\xb7\x56\x33\x82\x0b\x24\x40\xd1\x7e\x01\xad\x44\x59\x0e\x8a\xda\x5b\xdd\xfe\x6f\x6b\xb7\xe2\xd6\x6e\x86\x20\x60\x42\x09\x77\x96\xab\x53\x4d\xaa\x3d\x3d\xaa\xf6\xbc\x97\xb5\x5b\x12\xcb\xe0\x21\x96\xe1\xe1\xac\xdd\x62\xb2\xe1\x1e\x76\x6f\xe7\x91\x56\xf2\x5c\xb5\x7b\x3b\x57\xed\xde\xce\xf3\xed\xde\xd6\xb9\x9a\xc9\xb5\xf0\xc0\x6c\xb4\x7b\x5b\xa3\xdd\x9b\xc6\x2e\x2e\x32\xa5\x59\x67\xd8\xbd\xad\xef\x13\xb1\x68\xa1\x40\x71\x97\xc2\xea\xed\x4c\x6b\xf5\x76\xaa\x5a\xbd\x2d\xf7\xb7\x7a\xe3\x56\x02\x97\xcd\x95\xb0\x7a\xbb\x44\x78\xf4\xd2\x5e\x5d\x5d\x5e\x3b\x4b\xf8\x27\x65\xf5\x86\x89\xb1\xd5\x1b\x3e\x3d\xba\xd5\xdb\x1a\xad\xde\xd6\xdf\x6a\xf5\xf6\xd2\x59\xe7\x5a\xbd\x25\x16\xaf\x62\xfa\xf6\xca\x79\xf9\x0d\xa6\x6f\xe9\x9a\x65\xfb\xb7\xd8\x49\x5e\x64\xed\xf1\xaa\xb8\xfd\x5b\x4e\x56\xc9\xfe\x2d\x3b\x23\xea\xe1\xdf\x73\xc9\x27\xcf\xc7\xa5\xa3\x39\x2d\x48\x66\x73\x39\x39\x15\xb3\xb9\x9c\xbc\x19\x66\x73\xe7\x95\x2d\x72\x0a\xaf\x1f\xda\x6c\x2e\x6f\xaf\x67\x36\x99\xad\x05\xdd\x66\x98\xcd\xbd\xf9\x23\xcd\xe6\xb6\xf9\x66\x73\xaf\xf3\xcd\xe6\xde\xdc\xcf\x6c\xee\xe5\xbd\xcc\xe6\xee\x6b\xf2\x76\x1e\x99\xbc\x5d\xfc\x31\x26\x6f\x6f\x13\xae\x12\xbf\xcd\xe4\xed\xad\x7a\x83\x7c\xb3\xfd\xdb\x6f\xd6\xc5\xd3\xe3\xe7\x09\x3b\x9b\x73\xb4\xb3\x79\x5d\xc8\x64\xed\x9d\x63\xce\x97\x30\x57\x7b\x67\xb2\x55\xfb\x06\x33\xa1\x5f\xad\x73\x8d\xf9\xde\x45\xba\xff\x45\x8d\x2a\x71\x91\x5e\xb0\x15\x66\xae\x20\x32\x34\x52\xb3\x88\xb3\xf2\x40\x51\x15\x6d\xea\xb0\xff\x50\xde\x22\x9e\x8f\xd5\xe7\x6d\x5d\x0e\xef\x03\x2f\x2b\x17\xf7\xb6\x60\x5a\x46\x16\x4c\x1b\xc5\x62\x67\xf9\xa0\x16\x4c\x6f\x9c\x37\x0f\x6a\xc1\x94\x6f\xb2\xa4\xda\x28\x2d\xb5\x36\x4a\xa9\x11\xab\x74\x93\x6a\xb1\xb4\xf9\xe3\x2d\x96\x96\x0f\x68\xb1\xb4\xd4\x58\x2c\x2d\x32\x2c\x96\xce\xb5\xce\xa4\x62\x41\xe8\xc1\x9e\xd6\x4b\x31\xe5\x72\x7f\x3b\x26\x71\x0c\x3f\xab\x69\x4d\x9a\xe4\xd7\x7f\xbe\x75\x53\xd2\x9e\x69\xc5\xea\x8b\xe2\xe2\xdc\xcb\x9e\x69\x9b\x65\xcf\x44\x23\xe6\x34\x97\x7a\x7b\xa6\x85\x6c\xce\x24\x59\x1c\xc5\x01\x6d\xbe\xc1\x98\x49\xb5\x8f\xfa\x1f\x68\xc4\x74\xfa\x88\x66\x4a\x0b\x34\x53\x3a\xbb\x97\x99\xd2\xe2\xe1\xcd\x94\xc8\xb9\x56\x86\xbb\x21\xb7\xf6\xbf\x2d\x98\x1e\xd7\x82\x69\xf3\xed\x16\x4c\xcb\x7f\x5b\x30\xfd\xdb\x82\x29\x4f\xe4\x9c\x6d\xc1\x64\x14\x37\xff\xdb\x12\xe8\xdf\x96\x40\xc5\x2d\x81\x0c\xa1\x71\x84\xe8\xf5\xd6\x96\x8d\x82\x6e\x15\xa3\xa0\x5b\xc5\x28\xe8\xf6\x91\x2c\x81\xfe\xd7\x9a\xeb\xdc\x43\x20\xae\x11\x6e\x47\xf9\x86\xb1\xdd\xc9\xb1\xe3\x38\x83\x2b\x71\x67\xbf\x41\xdc\xe4\x35\xbb\x82\x5a\xb7\x8d\x6d\x53\x5c\xf1\x18\x5e\xaf\x0f\xd7\xdc\x46\xba\xde\xd9\x7d\x2e\xde\x6c\xa3\xbb\x9c\x3d\xf3\x1b\xfd\x2c\xfe\xea\xe8\xd6\x24\x83\x00\x8c\xbd\xc0\x78\x49\x2a\xce\x47\x02\xb0\x40\xc8\xbf\x68\x80\xa3\x3d\x06\xc8\x07\xe6\xac\x38\x15\x43\x9f\xf1\xd3\xf0\x71\xc1\x8b\xad\xfc\xe2\xcf\x19\xd1\x24\x3d\x22\x4a\x58\xb1\x61\xe9\x3e\xd9\xc2\x40\x95\xb1\xcf\xb6\xc8\x22\xc3\xce\x0a\xd2\xec\x45\x07\x28\x0d\x88\xe9\x4d\xf2\x14\x2c\xe7\x31\x6f\x2a\xaf\xfa\x73\x8d\x58\x4b\xa7\x0c\xc9\xf6\x4a\xd8\x25\xe7\xb8\xf7\x2e\x8d\x12\xdb\x1e\xcb\xf0\xd2\xc9\x90\xb9\x31\xf9\x36\x3d\xc2\x81\x1b\x3f\x3a\xaa\xe3\x4f\xfa\x11\x76\x28\xf0\xdf\xa3\xe4\xb1\x5c\xf2\x75\x66\x49\x34\x42\x30\x34\xf9\x66\x8f\x82\x4a\x8b\x6f\x33\x0b\xba\x40\x36\x9a\x9a\x7c\xb7\x4f\x49\xb9\xcd\xe6\x63\xab\x7d\x70\xf9\x34\xcf\x73\xd5\x3e\xdc\x32\xa3\x98\x64\x55\x1d\xfc\x9e\x76\x74\x92\x15\x1d\x8b\x44\x86\x88\x22\x2a\x73\xf9\x50\xb8\xf9\xe3\x47\x68\xbe\x19\x99\xa4\x69\xcc\xeb\xde\x0b\x53\xb9\x0f\xc0\xc6\x6b\x1b\x8b\x6d\xf7\x2c\x1a\x39\x4b\x78\x6f\x3b\x57\xd5\x65\x54\x57\x16\xdf\x63\x8a\x6e\xec\x93\xf3\xb1\x80\x6e\x8c\xeb\xc4\xda\xcf\x0e\x94\x6a\xe4\xd0\xeb\x9f\x8a\x6b\xbd\x72\xb2\x6e\xeb\x7b\xe4\x3d\x2e\x98\x97\x46\x89\xad\x73\x85\x54\x6e\xc6\xe3\x02\x19\x51\x43\x50\xa4\x42\xcc\x57\xa4\x3e\x2a\x74\x28\x52\x21\xcd\x58\xa4\x46\x59\xc7\xc5\x83\x21\x7c\x94\x95\x95\xe4\x9f\x29\x75\xb3\x1c\x34\x19\xd5\x24\x5c\xaf\xd2\xe1\xa2\x1c\x3c\x39\xfa\xec\x1e\xfc\xc1\x39\xad\xba\x68\xf4\x6d\xd9\xad\x8b\xa7\xc7\x8d\x0b\xf2\x45\x4a\xf9\xa1\x51\x6b\x9e\x72\x5d\xce\x0f\xe8\x7a\x8a\x91\x73\xff\xb4\xc9\xe7\x58\x18\xaf\x53\xfb\x99\x77\x56\x08\x84\x37\x42\x0a\xdf\x05\x5b\x27\x82\xd6\x2b\xc9\x2d\x2a\xe7\x68\x28\x69\x4c\x96\xad\xe6\x2b\x5b\xf1\x51\xd2\x2a\x95\x1a\xa5\x03\x8b\x12\xf5\x07\xb8\x8e\x50\xa7\xe0\xee\x44\xf4\xf6\x53\xa4\xa9\xa9\xfa\xf1\x54\x56\x3f\xd2\x34\x29\x29\xf7\x32\x33\x8f\x3b\x5b\xab\xf6\x85\x69\x1e\x83\x48\xa3\xb6\x9b\xa5\x9c\x42\x5e\xda\x4a\xd4\xd0\xb1\x50\x98\xfd\xb3\xb8\x16\x8c\x1e\xae\x34\x85\x4e\xca\xd1\x91\xb8\x24\x69\x1a\xde\x20\x08\x50\x9e\x3f\x4e\xd3\xc7\x05\x9a\x5e\xe8\x9a\x7e\x80\x61\xb2\x8b\x59\x69\x6a\xf9\x40\x4d\x25\x87\xa5\x69\x6a\xf5\x48\xa3\xe2\x77\xbf\xd2\xd6\xfa\x91\x86\xa5\x6b\xeb\x73\xce\xaa\x0e\x62\x5d\x71\xa0\xda\x15\xff\xe8\xc8\xfb\x44\x3a\xb3\xf9\xf9\xf0\xb2\xa8\x16\x96\xfc\x24\xd7\x24\x9d\xd5\xbc\xa2\xd7\x85\x2b\xfa\x59\xae\x48\x3e\xa4\x79\x4d\x6f\x0b\xd7\xf4\x4b\x6a\x70\xc7\x4a\x4d\xaf\x0a\xd7\xf4\x6b\x72\x70\x6a\x45\x6f\x0a\x57\xf4\x5b\x6a\x70\x6a\x4d\xef\x0a\xd7\xf4\x2f\xe7\xad\x30\x71\x7a\x9b\x47\x1e\xed\x90\x06\x44\xdf\x3d\x26\x75\x7e\xda\x87\x43\x9a\x80\x2a\x7b\x57\xfe\x35\xa7\xa3\x04\xa5\x74\x05\x19\x6a\x18\x68\x76\x77\x6d\x37\xae\xae\xc9\x5f\x9d\x77\xa2\x53\xef\xfe\xbb\x74\xaa\x39\x15\x34\x9f\xaf\xf5\xaa\xf0\x3e\x2a\xf8\x2f\x03\xd9\xb7\x55\xc8\xbe\x4b\xa0\xe2\x6e\x54\xaf\x0f\xc9\x2a\x3f\x44\x55\xfe\xb5\x70\x95\xb3\x2a\xc7\x16\x5b\xd3\xd8\x6d\x02\x9c\xc3\xba\xd4\x95\x36\x75\x1e\xa5\xde\x48\xa9\x4b\x6d\xea\x5a\x9b\xfa\x36\xe2\x4f\x60\x28\x12\xeb\xf9\x33\xbf\x9d\x57\x68\x53\xa4\xcf\xf2\x1b\xcf\xb2\x46\xf5\xbf\x3e\xcb\x4f\x3c\xcb\x02\xb8\x37\x43\x96\x5f\x79\x96\x25\x70\xa3\x86\x2c\x3f\xf2\x2c\x33\x44\x45\xe9\xb3\xfc\xc2\xb3\xcc\x51\xa3\xcd\x40\x12\x05\x3d\x1c\x5f\x22\x44\xe2\xf3\xbd\x3d\x1c\x5f\x32\x88\x84\xda\x1b\x63\x75\xbc\x97\x1b\x9b\x6c\x4d\xbd\xfc\xcd\xba\x34\xf8\x7b\xcd\x6a\x63\x5b\x4f\x35\xb2\xb5\xc9\xed\x03\x37\x72\x9c\x6a\xe4\x36\x39\x77\x72\x47\x14\x83\x44\x71\x90\x95\xc8\x7b\x71\x5e\x1c\xd6\x1b\x87\xb5\x3c\xf2\x2c\x54\x5c\x48\x33\x2f\xdf\xe6\x6e\x19\x9a\xfc\x70\xcf\x26\xeb\x51\x93\xa7\x45\x70\x28\x08\x7b\x90\xc0\x25\xb3\xa2\x1a\xc7\x21\xee\xe4\xe2\x79\xb3\xea\x35\xe8\x0a\xcf\x54\x5d\x61\x56\x6b\xc5\x6a\x58\x15\xed\xef\x08\x4f\x9e\xe2\x79\xb3\xea\x2d\xd6\xb3\xac\xd6\x8a\xd5\xb0\x28\xda\xdf\x09\x07\xb3\x14\xcc\x9b\x55\x6f\xb1\x9e\x65\xb5\xf6\xcd\x63\x33\x6a\x89\xcf\xee\xab\x25\xce\xe8\xee\x83\x37\xb6\x53\x91\x3a\x45\x20\x31\x1d\x13\x08\xa6\xcb\xd0\x2c\x3d\xf6\xa7\x8f\xf0\x97\x01\xfb\x3d\x34\x5a\xd5\x8d\x0c\xb6\x73\xff\xb1\x23\x63\xa7\x34\x0e\x27\xe1\x02\x7d\x24\x90\x09\xd6\xa6\x37\xd8\x4b\xa7\xdd\x68\xd2\x66\x12\x44\x08\xd2\x2c\x5b\x20\xb9\xa7\xb0\xaf\x4d\xef\x6e\x6c\x0a\x8b\x4a\xf9\x5e\x96\x01\x67\x52\x3d\xcb\xa2\x79\x6f\x6c\x1a\xa5\x8e\xe7\xe5\x19\x4e\x81\x5f\x51\xba\xb5\xce\xc9\x02\xb5\x6c\x92\x48\x29\x8e\x82\x0c\xed\x6c\x6f\xc5\x2f\x10\x3d\xa4\x2f\x3a\xb5\x13\xc8\x20\x72\x6b\xc8\x79\x13\xe7\x64\xfe\xf1\xe0\xbc\xcf\x06\x62\x9d\xe9\x80\x58\xaa\x21\xa3\xc9\x78\x90\xb1\x5c\xce\x4c\xfc\x3c\x76\xe6\xf0\x93\xb2\x4f\xce\x82\xff\x3a\xa6\x90\x08\xc6\x09\x39\x2b\xf1\xf3\xd8\x59\x47\x30\x8a\x8d\x80\x51\xd4\x9d\xad\xf8\x79\xec\xdc\x4a\x40\x8a\xb3\x47\x07\x52\x18\x8d\xd1\xb2\x81\x14\xbd\x74\xb1\x5e\x41\x20\x45\x3f\x5d\xb4\x2f\x1b\xe9\xd5\xf7\x36\x2a\xe3\x05\x8f\xf7\x36\x0b\xcc\x86\x23\xe8\x8c\xb4\x98\x11\x5b\x2c\xcb\xd9\x1b\x68\x92\x07\x65\x38\x7b\x44\x28\xc3\xd9\xfd\xa0\x0c\x67\x7f\x02\x94\x41\xd3\x66\x01\x28\x83\xce\x8e\xd3\x0c\x65\xa0\xaf\x48\x90\x07\x65\xe0\x19\x20\x63\x3e\x94\x41\xe4\x21\x41\x26\x94\x21\x10\x50\x86\x4c\x70\x41\xd2\xbc\xd4\xa3\xe6\xa5\x5a\x93\x38\xa3\x79\xb0\xde\x0e\x19\xa8\xcf\x0d\xc2\x07\xe6\xec\xcf\x82\xfd\x59\xb2\x3f\x2b\xf6\x67\x4d\xff\x64\x19\x12\xeb\x31\x58\xc8\x11\xb3\xba\xb7\xac\xb6\x2d\xab\x6d\xcb\x5a\xda\xb2\x96\xb6\xac\x6e\x58\x15\x3f\x87\x33\xb8\x57\xfb\xfb\x59\x10\x43\x23\x71\x51\xd6\x9a\xfa\xbc\x4a\x3c\xaf\xd5\xe7\xa2\x36\x7f\x61\x6f\xe4\xc3\xbd\x59\x04\xd2\xb0\x89\xba\xbc\xd1\xfb\x1b\xdd\x24\xd5\xc9\xf4\x2a\xd3\xaa\x7e\x7b\x64\x43\xba\xec\xfe\xd2\x4b\xcb\xfb\x34\x43\x4a\x1f\xbd\x41\x2b\x20\x9d\xd4\x24\xe9\xf8\x73\xac\xfa\x97\x1c\x72\x66\x69\xd9\x0a\xee\xee\xae\xaa\x2f\x9e\xdc\x6a\xe2\x37\x93\xdb\x27\x56\x3a\xb5\x52\x7d\x61\x6b\x32\x5f\x37\x02\xea\x74\xf2\xf6\xda\x26\x23\x49\xea\x72\x85\xc2\x16\xf8\x99\xec\xd0\x2c\xea\xd0\xc2\xa6\x0c\x2c\xfa\x7a\x48\x66\xba\x91\x33\x5d\x0b\x41\x0c\x7a\xe2\x3c\x25\xb5\x6b\x69\xec\xc8\x67\x3a\x8e\x33\x94\xbd\x61\x1e\x1d\x45\x8f\x4a\xbe\xd6\x95\xf2\x58\xa9\xd6\xea\x4f\x94\x14\xa2\x54\x53\x4e\xbc\xaf\x5f\x5f\x37\xae\x2a\x75\x52\x97\x07\xca\xdb\x1f\xa9\xed\x47\x8f\x23\xb5\x7d\xe5\x91\xd6\xaf\xa4\x10\xa5\x9a\x4a\xe2\xbd\xd4\x3e\x95\x0c\x9f\x15\x76\xcc\xc9\xd7\x76\xec\x8d\x33\x9e\xed\x6b\xa4\x83\xce\xee\x61\x0c\x18\xd5\x49\x2e\x9c\xf3\xa4\x2f\xce\x4b\x29\x09\xd5\x6a\x2f\xa1\x09\xd9\x26\xf0\x32\x5b\x87\x49\xc5\x20\xf4\x6a\xc8\xe6\xfc\xbb\xb1\xd4\xbc\x1b\x5b\x58\x6d\xcc\xde\xe1\xb6\xd5\xd8\x5d\x45\xca\x35\x1b\x30\x32\x11\xab\x82\xd6\xeb\x03\x1e\x34\x45\x74\x15\x03\xbe\x7e\x76\x17\xbd\xa8\xc7\xfd\x36\x37\xee\xc3\x3a\x2b\xf8\xba\x02\x74\x63\xaf\x52\x2a\x0f\xec\x84\x4b\x43\x12\x8f\xff\x2f\xfa\x12\xe5\xd2\x81\xce\xcd\xcc\x6d\xd2\xb1\xca\x29\x0a\xde\xc4\x8c\xf1\xf2\x25\xb2\x6a\x95\x96\xb3\x91\x65\xac\xfb\xff\x92\xf7\xa5\xdd\x6d\xdb\x5a\xbb\xdf\xef\xaf\xb0\x75\xfa\x7a\x91\x31\xe4\x48\x6e\xd3\xd3\x4a\x65\xbc\x1c\xcf\x89\x9d\xa4\x49\xda\x93\xd4\x4b\x2b\x4b\x03\x25\x51\xa2\x06\x6b\xb0\x25\xc7\xfa\xef\x17\x7b\x63\x20\x40\x02\x24\x25\x3b\xed\x7d\xcf\xfd\x60\x4b\x22\x01\x10\x04\x41\x60\x8f\xcf\xe3\x16\x2a\x05\xee\x50\x38\x53\x9e\xc5\x5e\x34\xd8\xf1\xd8\x04\x38\x9c\x0a\x53\x0a\x10\xab\x31\x60\x49\x92\x04\x78\x1d\xab\x03\x66\x00\x58\x8a\x8c\xc6\xce\x08\x9f\xd1\x4b\x06\xc1\x73\x20\xe6\x41\x0c\x68\x09\x0f\x49\xa4\x25\x97\x8e\x1a\x3f\x48\xef\xb3\x89\x90\x61\x0d\x09\xb2\xd3\x32\x03\xb7\x99\x56\xbc\x67\x7b\xbf\x72\xf9\xbf\x30\x28\x91\x52\x08\xb6\x42\x27\xc4\x2e\x01\x42\x5b\x28\xb0\xda\xe8\x05\xc3\xc2\x6e\xb1\xf5\x7c\x1f\x2c\x4d\xf4\xab\xf8\xc6\x2b\x4c\x64\x85\x51\x54\x81\x9f\x1b\xcb\x73\x13\xb5\xb1\xa8\x2d\xd1\xec\x7d\x21\x03\x83\xce\x8c\x64\xd4\x77\x06\x02\xbd\x88\x5e\x30\x94\x80\x58\x0c\xad\x47\xc5\xff\x33\xc4\xe3\xd2\x11\x91\x85\x12\xf8\x4f\xe6\x62\x0b\x35\xff\xcb\x02\xe6\x13\x3a\x12\xce\xa7\x44\xd8\x29\x03\x0a\x92\xb1\xaa\x84\xff\x09\x1d\x5e\x91\x8e\x1c\x62\x28\x49\x94\xde\xbf\x6b\x3e\xc5\xcc\xac\x67\xdf\xeb\xe9\xfc\x6f\x9e\xb0\xab\x04\x9c\x52\x26\x90\x92\x34\xd8\xe0\x47\x2f\x03\x4a\xa9\x6f\x30\xae\x84\x86\x63\x03\xab\xcd\x67\x68\x45\x52\x1a\x99\xcf\x8c\xe8\x1a\xb6\xb2\x41\x33\x35\xc3\xd1\xd4\xb7\xc2\x33\x75\xe9\x4d\x5b\x11\x9a\xc2\xd1\x1d\x02\x34\x01\x3e\x13\xfd\x37\x87\x24\xa9\x5b\x30\x34\xdd\xd9\x4c\x5c\x1c\x9d\x49\x4b\xd7\xe2\xda\xd5\x47\xaa\x86\xc3\xbe\xc8\x7e\x9d\x07\x2d\x9f\x45\xc4\xe4\x48\xe5\x22\x7f\x0b\x7a\x93\x62\x59\x81\x51\x09\x61\x3a\xbc\x87\xc8\x55\x4f\x9f\xec\x0d\x3a\xa4\xf4\x11\x9e\x8b\x32\x90\x7f\x17\x49\x38\x05\x45\x90\xd9\x12\x1b\x54\xb1\x44\x5f\xd0\x7a\x12\x3a\xb7\xc9\x42\x30\xf5\xe6\x54\xd1\x3e\xa3\x5d\x06\x1d\x5d\x30\x62\xf2\xae\xd4\x6c\x9a\xe5\x77\xb7\xda\x58\xcd\x2f\xe9\x56\x1b\xab\xe9\x25\x1d\xc5\xc9\x0a\x66\x95\x8e\xe2\x64\x07\xb3\x4a\x47\x63\xca\xb2\xf3\xac\x6d\xe6\x49\x47\x71\xb2\x82\x3f\xa5\xa3\x38\x59\xc1\x9f\x10\xc5\xe9\xf3\xda\x79\x35\xe9\xe0\x4f\x66\x56\x10\x5a\x6d\x5c\x6f\xa5\xd9\xb0\xac\xbc\x3e\x20\x0a\x9e\xb4\xec\xb7\x67\x4d\xe1\xb1\x23\x38\xa5\xdb\xcb\x78\x82\x62\x4e\x86\xfa\x3a\x30\xd4\xa7\x02\x9f\x59\x2d\x6c\x56\x7b\x85\x15\x8c\x0c\x56\x74\x6b\xe6\x56\xc2\xd6\x15\xe5\x6e\xc1\x5a\x6f\xcd\xd9\x32\xd5\x63\x59\x5b\xb0\xde\xad\x9d\x65\x46\x77\x87\xb5\x93\xbc\xd2\x8d\x65\x26\xcb\xaf\x66\x2c\x53\x6d\x65\x78\x86\x74\x62\xb6\xb2\xb8\xa9\x8c\x9f\xa7\xe5\x62\xa6\xb2\xa4\xa5\x4c\x14\x21\x1d\xdd\x52\xa6\x1b\xca\x3a\xb9\x0c\x65\xf1\xbc\xb1\x06\xe6\x8d\x99\x0c\x65\xf9\xac\x3e\xe3\xfa\xa4\x1e\x86\x7e\x78\x34\x62\xf0\x8c\x33\x7f\x9a\xc7\x02\x34\x8e\x1e\x7e\xd2\x02\x24\xcb\x8d\x95\x4d\xff\xd4\xe9\xea\xe1\x32\x0d\x44\x29\x08\xa6\x6f\xeb\x6f\x9d\x3a\xf0\x63\x3c\x3c\xb0\x1f\xb4\x4b\x53\xff\x34\x1c\xd5\x67\xec\xb8\x2b\x70\x95\x3b\x18\x76\xc6\xad\x01\xa4\xc5\x7e\x73\xd7\x37\xf1\xbd\x26\x98\x34\x9c\x26\x18\x0e\xe0\xab\xfb\xfc\x57\x86\xbb\x81\xea\xed\xbb\xb6\x03\xe8\xb5\xac\xa9\x6e\x52\x6a\x12\xed\x5e\xfb\x04\x5a\x90\x16\x97\xeb\x45\xb1\xbc\x4f\x5a\x78\xa8\x8a\x17\x6c\x4c\xe6\xd3\xee\xde\x12\x60\x68\x5e\xef\x8d\xe9\x77\x18\x6d\x76\x93\xd7\x70\x11\x02\xa5\x1c\xdf\xad\xf1\x83\x5b\x22\x64\xe5\x65\xe9\xc0\x39\x16\x10\xb3\xb0\x81\x86\x75\xc0\x16\x0e\x86\x1c\x97\xe7\xc4\x7e\xce\xad\x98\x6a\x32\x10\x73\x53\x3d\x76\xc6\x25\x4a\x87\x70\x28\xa9\xee\xa2\x24\xb0\xdc\x38\x6c\x38\xea\x5e\x37\x25\xa6\xab\x73\x5d\x17\x37\xed\x0f\xc6\x33\x06\x32\x0a\xec\x38\x96\xe0\x29\xb5\x3c\xb3\xc8\x41\x94\x70\x1f\xe4\x3c\x5b\xa2\x74\x1f\xd0\x2f\xbe\xb5\x02\x2a\x36\x4d\xe9\xc1\x4a\x9d\xb0\x9a\x15\x08\x9d\x82\x89\x1c\x42\xed\xab\xc4\x7d\xca\x56\xa4\xa6\x50\x07\xeb\xc5\x64\xa9\xb6\x1f\xe1\xf6\xb2\xe9\xd5\xa4\xfd\x73\x81\x1f\xa8\x55\x43\xd3\x95\xd2\xdf\x65\x34\x0f\xd0\x5c\xb5\x5d\xaa\xf0\x62\xbf\x79\x50\x6d\x67\x07\xfe\xff\xe6\xe1\xc1\x32\x1d\x4c\x21\xd8\xb5\xc0\xe2\x85\x73\xa1\x49\x27\xe6\x01\x88\xf3\x15\xf6\x10\x56\xc0\x68\x83\xad\x3b\xdf\xd8\x18\x4f\x2b\x7d\xc2\x37\x88\x70\xa5\x3c\x8d\x09\x2e\xeb\xb4\x7d\xcc\x97\x81\x17\x93\x8e\xc0\x5b\xfa\x96\xee\x7d\xfd\xca\x22\x95\xbf\x7e\xf5\xda\x60\xe0\xbd\xe4\xda\xd2\x6d\x30\x0d\x1a\x41\x88\x4c\x19\x05\xe6\x35\x2f\x28\x0d\x4e\x65\x83\x4c\x05\xa5\x77\x75\x47\x14\x6d\xd4\x7e\x99\x5d\x4f\x7a\xac\x17\x74\x16\x5d\x45\xda\xd9\x18\xf2\xf0\xa6\xa3\x89\x05\x05\x7b\x4e\x2f\x59\x9c\x3b\x98\xe2\xdf\x16\x43\x49\x5f\x94\xb7\x69\xfa\xa2\x51\x5b\x84\x96\x98\x6a\x18\xdd\xd0\x0c\xc5\x1c\x2a\xb5\xce\xfc\x2d\x7b\xe7\x09\x2f\x01\x77\x4e\x74\x03\xa1\x52\x21\x2b\xa6\xa6\xcd\xaf\x1f\xbf\xfb\x4b\xf5\x97\xe1\x39\xc0\xa3\x57\xba\x3c\x8f\x72\xc4\xa0\x3f\x62\xbe\x40\x29\xcf\x6b\x1c\xc0\x55\x2a\x4c\x6b\xbc\x4d\x98\xcc\xef\x6c\x26\xf3\x16\xb9\x05\x4e\x82\x85\xd5\x64\xee\x63\x81\x84\xc9\xfc\x16\x5e\xa4\x06\x7d\x30\xb8\xb4\xa1\x06\x32\x85\xd8\xbe\xbb\x1a\x10\xb0\xc8\xa7\x85\x46\xb2\x25\x60\xc8\x75\x0d\xef\xab\x58\x8c\x15\x83\x3b\x51\xd7\x74\x76\x87\xbb\x0d\x7a\xb7\xd1\xfb\xb1\x84\x59\x08\x3a\x9e\x08\xd2\x87\x05\x7a\x67\xc7\x61\xc7\x4b\x04\x7e\x7a\x25\x5c\x79\xbd\x92\xcb\x7e\x42\x21\x30\x25\x3b\xf8\x0b\x17\xf7\x32\x2b\x01\xff\x76\xcb\xb0\xae\xd1\xda\xd6\x95\xbc\x29\x97\xf0\xbd\x5f\x9f\x39\xb0\x8c\xbb\x68\x39\x8f\xde\x77\xac\x7b\xdb\xe1\xaf\x27\xd0\x91\xc1\x39\x46\x70\x81\xc7\x0a\xe4\xc6\xa5\x8b\x69\x7d\xe0\x17\xe8\x6e\xcd\x19\x19\xee\xbd\x5b\xab\x9d\xd9\xb0\x9b\x6a\x0c\x50\x87\xde\xfd\x06\x96\x66\x63\xab\xe4\x15\xe4\x56\x28\x26\xe6\x23\xda\xb6\x6a\x62\x7e\x95\x6e\x62\x36\x34\xba\xd5\xa8\x37\xfb\x00\x5a\xc6\x48\x9b\xd7\xaf\x4f\x67\x8b\xff\x98\xfa\x83\x60\x3a\x0d\x86\x1d\x06\xd4\xca\x77\xc5\xfb\x8c\x17\xb5\x19\x99\xc0\x9b\x7a\xe0\xf8\x31\x39\x21\xa7\xe2\x19\xf3\xf0\x12\x35\x35\xa1\xd0\xac\x33\x44\x6a\x84\xc2\xc7\x9d\xc7\x19\x42\xa6\x20\xaf\xc2\x43\x2e\x62\x31\x19\xe7\x70\xba\xe1\x77\xeb\xb7\xc1\x68\xb2\xd7\x9a\xd4\x3b\x0e\xa7\x44\xa1\x5f\x19\xcd\x00\x99\x44\x47\x0a\x64\x1a\xfd\x00\xf6\x01\x02\xb1\xa5\x5e\x5b\x09\xd9\x2b\xb6\x95\x90\x41\xf2\x1a\xb6\xba\x37\xde\x75\x69\xf7\xe2\xf9\x3e\x41\xe9\xe3\xae\x28\xbe\xd6\xaa\xc7\xca\x53\xde\x33\x8c\x57\x1c\xaa\x4b\x4e\xbf\x37\x35\x30\xe5\xc7\x27\x1f\x1f\xe4\xe3\x84\x21\xfb\x58\x01\xc1\x32\x99\x70\x54\x3b\xe8\xd2\x56\xa6\xac\xd8\x4a\xf7\x2d\x65\xf6\x95\x76\x6c\x65\x7e\x04\x18\xa6\x93\x35\xee\x9c\x13\x4c\xb0\x3b\x8f\x80\x9a\xb6\x98\x05\x11\x50\xf1\x4e\xe2\x64\x14\xa9\x65\xe3\xc3\xc6\x29\x49\x4e\x12\xc3\x76\x12\x99\x83\x17\x8a\x99\xf8\xae\xf8\xeb\x3e\x3c\xc4\x04\x83\x84\xe6\x4e\x60\xb9\x8f\xf7\x6a\x18\x7f\xf4\x3e\xaa\xb7\xc7\x7d\x0a\xd8\xe5\x06\xd0\x47\x99\x9d\x0e\x74\xb3\x8a\xf7\x4f\xdb\xbe\xf0\x82\x57\xea\x05\xd5\x17\x38\xe5\x82\x57\xb6\x0b\x5e\x25\x2e\x78\x65\xd8\x2f\x85\x79\xbd\x07\xa7\x47\x8f\x25\xab\x1a\x19\xc8\xaa\x90\xe1\xa2\x52\xdf\x83\xa5\x9b\x30\x2f\x17\x76\x5e\x73\x75\xa1\x7f\x16\xea\x24\x64\x03\x78\x0f\xed\x27\xa9\x2a\xc0\xf2\x44\x1f\x4d\x6e\x35\x4a\xd2\x4e\x65\xf5\x5c\x32\x48\xc6\x52\x3a\xf7\xa4\xf4\x2c\x9e\x53\x37\x6f\x26\xa7\x65\x31\x56\x1a\xcc\xca\xe4\x34\x55\xcf\x9d\xaf\x69\xa8\x5c\x64\xbb\xaf\x5a\x55\x63\xa9\xc9\xbe\x34\xa7\x38\xd9\x40\xf0\x64\x82\x1f\x04\x51\xaf\xa0\x7a\x7c\x3e\xbf\xd5\x21\x43\x39\x93\x0a\x57\x4c\x9a\xf3\xc9\x14\xc8\x68\x0a\xcc\xec\xab\x32\xc8\x14\xcb\x48\x20\x63\x60\xae\x29\x0c\xa8\xe4\x1e\xfa\x82\x8f\x85\x41\x55\xb8\xf6\xf7\xc2\xfd\x66\x9a\xf1\xf4\x69\x51\xb5\x29\x75\x5a\xe7\x9d\xe1\xa6\xc9\x6e\x9d\xea\x89\xde\x20\x77\x1a\x74\x86\xe5\xbb\x40\xd0\xfd\x79\x7c\xd8\x78\xec\xbb\x9f\x24\x7c\x4d\xbc\x35\x50\xff\x8c\x87\x3d\x32\xe9\xcc\x88\x6d\x16\x30\x43\xc1\x2a\x7e\xa5\x94\xc9\x15\xbf\xbc\xe5\xe2\x91\xb8\xe8\xae\xb4\x35\x51\x73\x56\xd3\x35\xbe\xf8\x4b\xcc\x73\x5d\xfe\x59\xf1\x09\xc5\x02\x7c\xa5\x33\xa8\x1c\x79\x83\x5a\xcc\x0d\xe4\xb3\x8f\xb6\x89\x38\xa3\x03\x40\x77\x5d\x90\x10\x02\xf8\xd7\xb3\x79\x4b\x50\xdb\x46\xa5\x79\x00\xff\x86\x5e\x99\x85\xf0\x46\xbe\x13\x2e\xdf\xe6\xf1\x68\x98\x02\x43\x47\xdf\xdd\xec\x6f\xb5\x70\xa7\x9b\xfd\xad\x16\x6e\xb9\x9c\xbd\xa5\x2b\xab\x35\x24\xd1\xea\x6c\x90\xd5\xd9\xd4\xb3\x36\x60\x75\x3b\x80\x90\xf2\x89\xdb\x37\xd6\x35\xda\xca\x8b\xe7\xee\x77\x22\x48\x31\x6a\x82\x07\x28\xea\xe3\xa1\x84\x23\x76\xbd\x46\xa6\x3d\xd5\xe4\xb6\xb0\x07\x1f\xe2\x29\xd2\xcc\x0a\x3e\xe4\x05\x68\xc1\xec\xe0\x43\x51\x86\x34\x53\x83\x0f\x9b\xb9\x6c\xaa\x71\x63\x7e\x03\x8d\xf9\x8f\xb0\xa9\x06\x7e\x1e\x1b\xea\xb1\xec\x40\x84\x94\x7f\x9c\x62\x4d\x3d\x16\x9c\xd8\x74\x43\x3c\x1c\x76\x42\xdf\xe3\xc6\x53\x79\xc0\x3d\x00\xfe\x67\xf1\x8b\x20\xac\xe8\x64\xa6\x97\x8d\x0e\xb1\xd2\xd1\x6f\x32\x7a\x78\xa0\x05\x82\xe1\xd0\x9f\x7c\xa8\xb7\x82\xf9\x94\xea\xe2\x55\xa9\xed\xab\xaa\x13\xee\x18\x5f\xe9\x76\x07\x1b\x05\xa9\xcb\x15\x42\x3b\xee\x35\x81\x49\xd9\x20\xeb\x1e\x82\x3d\xb2\x49\x0f\xd0\x11\x45\xc4\x7a\xaf\x55\x64\x4f\xaa\x28\xe6\xc0\xa9\xe7\x17\x71\xda\x14\xe5\x93\x3e\x8b\xcc\x58\x54\xaf\x73\xa9\x46\x74\x0e\x6b\xdb\x05\xfc\x7b\x9d\x80\xaf\x09\xda\x0e\xd8\x19\x96\x02\x98\x44\xe0\xed\xbe\xf1\xce\x8a\x67\xcf\x5f\x90\x4b\x6f\xf1\xec\x8c\x5c\x79\xa5\xea\xd5\x6f\x18\x5c\xc0\xca\x55\xaf\x76\x77\xdd\x73\x66\xca\x7b\x03\x49\x80\xf8\xed\xd2\xad\xd2\xe7\xea\x6f\x9d\xd3\xf6\xcc\x56\x4f\x3a\x6e\x74\xa9\xf4\x27\x45\xfe\xf9\xfc\x85\xfb\xec\x0c\x31\x60\x52\x6a\xe0\x48\x17\xf9\xa7\xa8\x81\xa1\x93\x70\x93\xb6\x8a\x5b\x89\x8a\x80\x30\x1d\xb7\xf5\xbc\x16\x52\xe2\xeb\x78\x5c\x93\xb4\x55\x04\x7e\x24\xd2\xe7\x16\x15\x63\x96\x89\xc0\xdf\x92\x11\x57\x85\x5d\x2a\x72\xbe\xf7\x34\x71\x8f\xfc\x1e\xc3\x97\xf8\xe0\xbd\xcf\x10\x07\xa1\x5b\xd5\xec\x42\x0c\x46\xd0\x2c\xe2\x65\x1b\x08\xc8\xef\xba\x98\x10\xf8\x99\xb8\x0b\x27\x18\xea\x51\xd8\x3d\x85\x4f\x63\x13\xa2\x4b\xeb\x36\xf4\xda\x1e\xaf\x77\xbf\x4e\xbc\x5e\x17\xd5\x92\x43\x78\x21\x5e\xd1\x7f\x55\x31\xe7\xcd\xb3\x1c\xed\x78\x1f\xa5\xb1\x63\xd2\x04\x3b\x06\xcc\x5d\xf6\xee\x3b\xe7\xd7\x57\x54\xf7\xfd\x94\x5e\x60\xf7\x85\x5b\x9d\xd1\x65\x77\xbb\xbc\xb3\xe3\x7c\x54\x16\x13\x48\xa1\xfd\xa4\xff\x76\xc9\x6d\x54\x52\x2c\x52\x60\x94\xfc\xa4\xfe\xa2\x5a\x11\x16\x50\x96\x21\xe7\x82\x75\x25\x79\xcc\x25\x1f\xf7\x9a\xa3\x89\x3c\xba\xb3\x73\x87\x95\xd5\x63\x90\xef\xfb\x29\x7e\x04\x12\x24\xf1\xd5\xfe\x08\x86\x2a\xfc\xf6\x89\x21\x61\xfd\x01\x37\x1c\xd6\x97\x90\x9f\x46\x9f\x29\xe4\xdc\x80\xb9\x1b\xed\xba\x2c\x02\x29\x1d\x3e\x9b\x2e\xaa\x1d\x88\xba\x76\xab\x7f\x50\x41\x9a\xdd\xd6\xce\xce\x7c\x67\x27\xfa\x09\xb9\xc3\xf4\x26\xc7\xb4\xab\x1f\xb2\x15\x9c\xc0\x2f\xce\x82\x19\x28\x08\x71\xd9\x36\x3a\x23\x14\x90\x34\xc5\xc2\xe0\xb7\x55\xa8\xc1\x47\xc3\x59\x71\x1a\xdc\x53\xad\x5c\x5b\x65\x9f\x2d\x9e\xed\x3f\x77\xc6\x82\x02\x6f\x9f\xaa\x46\xe3\x85\xae\xd9\x94\xf6\x7e\x7c\xa1\xea\x36\x06\x4d\xcb\xa0\x68\x95\x80\xec\x75\xc2\xc9\x5e\x71\xa9\xfa\xd3\x4b\xdc\x5e\x32\x28\x13\xb9\x4a\xc4\xb2\xf5\x07\xe0\x27\x24\x2a\xc9\xb7\x30\x56\x55\xe8\x6a\xbc\x6a\xf5\xcf\x84\x6e\xf7\x1f\x23\x4f\xf8\x67\xef\x4f\xd3\xca\x58\xfd\x9c\x7c\x56\xbc\x77\xe4\xf3\xe3\xad\x1a\x37\x98\x31\x6e\x08\x6e\x96\xc6\x18\x33\x21\xcd\xbf\x4b\x4a\x2c\xdd\x2b\x34\x3a\xdf\x5b\xd9\xbc\x75\x9b\x48\x4e\xea\x69\xed\xee\x36\xb3\x7b\x6c\x7a\x73\x2f\xd4\x9b\x3b\x34\xdd\x5c\xc4\xdc\x9d\xb0\x9a\xa8\xfd\x36\x91\x73\xdf\x5b\xc9\xb9\x6d\x4d\x59\x56\x6c\xdf\xc0\xbf\xfd\x98\x91\xb6\x71\x6d\xdf\xdb\xb8\xb6\x37\xbb\xd8\x9f\xe6\x08\x59\xd5\xbd\x17\x70\x74\x42\x86\xe1\xfd\xa7\x2d\x5a\xd6\x5a\x05\xde\x19\x3d\x2c\x3a\xa1\x83\xeb\x12\x64\x9d\xe1\x4b\xfd\x99\x3a\x3d\x4c\xa1\xa3\x0d\x5d\xd8\xac\x8b\x90\xdb\x4f\x77\xbe\x3f\xc4\xc2\xc7\x54\x4b\x8e\x68\x18\xbe\xa0\x83\xd9\xb8\x4f\x7e\x61\xdb\x83\xb6\x0d\xaa\x1b\x11\x10\x72\x86\x74\x29\x1f\x1d\x38\x5f\xe8\x9e\x64\xdf\x2f\x0f\xe9\x59\xed\x00\x80\x67\xf0\x1d\x11\x6a\xc6\x76\xcf\x5b\xf5\x94\xba\x41\x56\xf0\x32\xd0\x9a\x5b\xfd\x8f\x51\x68\x53\x41\x05\x22\x52\xe5\xe4\x60\x33\xc7\x64\x5c\x74\x6e\x64\x05\xf7\xd2\x27\x32\x05\x3d\x44\xb9\x17\xef\x9c\x0e\xf3\x6e\xb9\x44\x74\xfd\x81\x1d\x7d\xc1\x95\x08\x4d\xfb\xd8\x55\xd4\x96\xe7\xfb\xcf\x9c\xf2\x2f\xa5\xe7\xb8\xf5\xbc\xbf\x10\xea\x44\x4a\xf9\xdf\x78\xd1\x83\x66\xd1\xfb\xb5\x54\x69\xee\xd2\xff\xba\x94\xf5\x05\xb1\xca\x7c\x80\x9c\x0e\x5a\xcc\x99\xbb\x35\x19\xcd\xb8\x4c\x88\x1b\x4f\x14\xe6\xaa\xdc\xc8\x59\xf2\x2e\xe8\xa1\x17\x99\x8d\x17\x10\x65\x5c\x4f\x7a\x88\xf3\x09\x17\xfe\xd5\x6e\xb7\x0b\xfa\xcb\x27\x0f\xb2\x41\x9f\x2c\x0a\xe4\x47\xf9\x63\x09\x3f\x94\x66\xb9\x90\x60\xda\xed\xa7\x07\x79\x86\x4b\x23\xc2\xae\x44\x12\x42\xac\x47\xa5\x52\xa9\x20\x0c\xcd\x7f\x81\xcd\xe9\x07\xaf\xfc\x13\xf9\x4a\xff\xd1\xb1\x69\x98\x62\x7a\x95\xd0\x65\xf0\x0d\x3d\xff\xea\x3e\xfb\x8a\x52\xae\x76\xa2\x5c\x7b\xfe\x83\xfb\xec\x87\x15\x9d\xb7\x71\x9e\xdf\x23\x52\x00\x6d\x22\xb4\xca\xd0\xff\x9d\x73\x30\xd7\xe4\xab\xb2\xe0\x96\x78\x73\x55\x64\x79\x41\x99\x94\xbd\xcb\xbe\x57\x6f\x38\x2d\xb7\xfa\xd7\xb5\x0f\x8e\x73\x88\x5a\x2a\x7a\x3f\xb8\xe4\xaf\x6b\x3c\x0e\xae\xf6\x95\xc1\xe4\xcd\x39\xf7\xa9\xfc\x93\xb0\x6d\x6f\xa5\xcc\x38\xc3\x2c\x78\xcc\x24\x5c\x19\x9c\x63\x6c\x81\x52\x2c\x1c\x45\xcd\x80\x01\x84\xed\xe2\x79\x91\xa6\x57\x28\x20\x8c\x29\x1f\x92\x87\x87\xe1\xcb\x06\xc7\x23\xa5\x67\x38\x05\xce\x80\x73\xd8\xf4\xfd\x65\xa1\xd2\xf4\xda\x02\x6f\x57\x65\xaf\xc1\xea\x70\xb6\xe7\x74\xc4\x79\xad\xc0\xd8\x9f\xc0\x63\x60\x45\x64\xf4\xd7\x56\x73\x85\x14\x35\x1a\x67\x0b\xcc\x69\x03\x3b\x4b\x66\x6a\x40\x0b\xd9\x95\x7d\xfc\xdf\xb6\x06\xf4\x77\xac\x01\xfd\xdd\x8c\x64\x82\xc0\x66\x3a\xee\x19\x78\x8f\xfb\x10\xa3\x11\x42\x00\xc7\xc0\xc3\x91\x23\x43\x6f\xaf\xb4\x0f\xe4\x2b\x65\x32\x86\x7f\x9c\x7c\x05\xb9\x57\xca\x82\x7b\x85\x05\xf5\x03\xbd\x72\x89\x2c\xbc\xbd\x17\x64\x09\xbb\xec\xfd\x3f\x4d\x9f\x2c\x15\x64\x0b\x09\xc7\xbd\xc9\xe0\x7d\xff\x14\x06\x6f\x2a\x13\x4c\xd9\x6b\xbd\x36\x41\xeb\xdf\x6a\x2b\x47\x60\x83\x54\x9a\x06\x6b\x98\x3c\x2a\xa4\x6b\x93\x3b\x60\xad\x77\xed\x36\x9c\x5d\x37\xf2\x17\xd7\xa9\x4f\xdd\x89\x4f\x7b\x1d\x5a\x03\xb6\xad\xb6\xf5\x1c\x94\xbb\xd6\x60\x6f\x6b\xc0\xb6\x35\x60\xde\x1e\x51\x6e\xf5\x3c\x88\xa5\x6f\x7d\xce\x63\xb9\x50\x6e\x12\x69\x9f\x5a\xd1\x1e\x6a\xaf\x98\x59\xd6\x67\x5a\x1e\x0d\xe7\xb3\x0f\xa0\xea\xad\x1d\x3a\xcf\xc4\x86\x77\xf3\xd9\x34\x68\xad\x9f\xa4\x81\xb5\x3f\xce\x87\x0d\xbf\x3e\xb8\x44\xd3\xcf\xfa\x54\x21\xd0\xf7\xb5\x29\x51\x3a\x93\xd1\xdd\xbb\xe1\x39\xac\x64\x6b\x47\xc9\x4b\x53\xc7\x9a\x77\xdd\x80\xbb\x6e\x10\xdd\x3d\x14\x6f\x8c\x3b\x89\xb4\x61\x8d\x7c\x44\xe2\x7e\x9f\xee\xfa\xc9\xe6\x32\x7b\x80\x67\xd6\x7b\x71\xd1\xb1\x13\xbf\xb4\xd2\x0e\xbf\xa6\xb2\x24\x68\x57\xdc\xd0\x27\x66\x26\x8a\xb3\xb9\xc7\xcc\xa5\x33\x3c\x65\xe6\x4a\x59\x4e\x33\x73\x2d\xa3\xff\xcc\x9a\x68\x62\xc4\xd4\x01\x09\x02\x0e\x20\x71\x47\x96\xf7\x2d\xee\x31\x6d\xa0\xc7\xd4\x08\xfd\xc1\x96\x7a\xda\xd1\xf5\x12\x65\x1e\x1e\x50\x68\x59\xc3\x7d\x97\x9b\xdc\xc3\x8f\xde\x53\xe9\xc3\xbb\x11\x7c\xd6\x4d\x40\x8a\xd6\x95\x6e\x2e\xa8\xf7\x33\xe9\x16\xfa\x4c\xf9\x1a\xda\x19\x13\xfa\xa4\x0d\xf4\x77\x76\x90\x69\x28\x60\xe3\xb3\xee\xe7\xa4\x6d\x20\xa1\x60\xad\x46\xf2\xee\x04\x6b\xf5\x84\x1e\x55\x58\xab\xc3\x88\xf1\xcc\xcf\xc9\x5a\x3d\x60\x23\x72\x53\x1d\x08\xd6\xea\x1b\xa0\xc4\x0c\xdd\xc1\xf5\x4d\xcd\x0b\xe9\xbf\x04\x6b\x35\x1c\x8c\x58\xab\xe1\x17\xb2\x56\x53\x89\x7f\xdb\x17\xfe\x3e\x29\x0b\xc7\x78\x08\xfa\xc0\x43\xd0\xcf\xc7\x43\x30\xf3\xfa\xf6\x48\x5f\x3e\x49\x64\xe4\xa0\x5f\x03\x18\xb2\xd9\x66\x4e\x34\x13\x8d\xf4\x2d\x6d\x4c\x8d\xe7\x9d\x67\xba\xc4\x38\xfe\x7b\x46\x41\x8d\xb5\x39\xa0\x6a\x62\x81\x2e\x3f\x05\x20\x30\x39\x70\x5a\x1c\x11\x7a\xe8\x02\x44\xba\xd3\x04\xbe\x12\x40\xb2\xc9\x60\x66\xf6\xf9\x0c\x6a\x41\xd4\x3f\x42\xa3\xb7\x54\x68\x74\x3c\xa6\x1c\xca\x9c\xb5\xa9\x97\xcc\x64\x2a\x6e\x47\x9c\xcc\x15\x8e\x8f\x06\x77\x07\x0a\xb1\xe8\xc2\x48\xbb\xbf\x36\x5b\x4e\xa1\xd7\xec\xf6\x5d\x2c\xcb\xbf\xbf\x1c\x3e\xdf\x57\x7e\xd3\x5f\x2e\x19\x16\xa3\xb2\xb2\xbe\x7a\x68\x8d\x21\xcb\xf0\x16\x0e\x39\xa2\x27\x36\x9a\x91\xb3\x10\x79\x3a\xa3\x31\xa0\x8b\xbd\x7c\xa6\xf2\xee\xab\x8c\x54\xff\x36\xee\x3b\xd1\xba\x08\x53\xba\xaa\x27\xfe\xdf\xf1\x5e\x43\x96\xcb\x66\x44\xb7\xa1\x24\xba\x1d\x6b\xb4\xaf\x61\x8c\xe8\x76\xfc\x48\x9e\x57\x7f\x7d\x9e\xd7\xd0\xcc\xf3\x1a\x63\x64\xbd\x89\x69\xf7\x47\x36\x02\x56\x4f\xdd\x50\x30\x5f\x2d\x81\xd0\xa7\x32\xb4\x46\xb0\x7c\x6d\x2b\x18\xe4\x3e\xb7\x0f\xec\x97\x56\x66\xcc\x47\x7c\x95\xa9\xba\x6e\xd1\xed\xc3\x04\x1d\xaa\xa4\x57\xc5\x8f\x11\x50\x97\x32\x60\xc7\xa7\xcc\xb2\x77\xab\x3e\xe7\x0a\x3d\x11\x98\x6c\x65\x77\x6d\x0e\xd2\xa6\x5a\x4a\x32\x89\xe2\x4c\xbe\x31\xea\xf1\x63\xd7\x0c\x3f\x90\x10\x1b\xd6\x22\x14\x05\x1a\xd1\xe9\x1a\x34\xa2\x8f\x20\x09\xad\xca\x3b\xdf\x88\x09\x54\xe5\xfc\xd4\xf9\x40\x73\xd0\x7e\xfa\x66\xda\xcf\xb4\xae\x58\x00\x5d\x7d\x1d\xd0\x35\xa5\x05\x2b\xc6\xaa\xbf\x39\xed\x27\x27\xf7\x6c\xa9\x98\x05\x63\xfa\x03\x62\xb4\x9a\x0a\xfa\xa4\xff\x14\xf6\x9d\x74\x8c\x45\xab\x09\xe2\x11\x38\x92\xec\xf6\xde\xf3\xd1\x59\xdb\x80\x91\x87\xe0\x72\x63\x78\x47\xff\x3b\xc2\x3b\xfa\x9b\xc1\x3b\xfa\xff\x00\xbc\xa3\xe1\x9a\x8d\x4c\xa5\xc8\x82\x65\xd8\xe2\xf4\x1c\x7d\x78\x8f\xc4\xd7\x1c\x34\x91\x66\x03\x04\x11\x3a\xcb\x28\x5b\xbb\x35\x59\xb4\xec\x11\x9f\x78\x4a\xca\x45\xd6\x88\x4f\x5e\x80\x16\xcc\x8e\xf8\x14\x65\x48\x3b\x35\xe2\xb3\xcd\x35\xd6\x34\x96\xc7\x66\x2e\x35\x70\xda\xc4\xcd\x28\x8f\x16\x78\x25\x87\xe9\x9d\xd4\x02\xaf\x52\x22\x39\xaf\x1c\x74\x60\xbd\x05\xe3\xf8\xf6\x2d\xd7\x55\xb6\xcb\x55\x96\x8c\x2d\x39\x1a\x1a\x76\x26\x26\x0b\xab\x58\x04\x99\xc4\xc0\x8c\xa8\x80\xc1\x30\x8c\xf8\x56\x72\x0d\x02\xe7\x6e\xd9\x2f\xc6\xfc\x01\x04\x04\x52\xd3\x71\x3a\x58\x04\x12\x39\xd3\xe8\x60\xb6\xee\x9c\xfa\xf5\x4f\x35\xdc\x8e\x21\x98\x87\xde\xd9\x25\x15\xb8\xe9\x72\xff\x8d\x45\x61\xd6\x75\xa5\x8c\xde\xa8\x38\xf2\xdb\x8f\x54\x54\xab\x33\x07\xfb\x75\xa8\xa4\xc1\x15\xa9\xa8\x33\x88\xfd\x66\x92\x0a\xfd\x57\x43\x2a\xc8\x58\x9d\x72\x6d\x57\xab\xc3\x7e\xa7\xd7\x49\x5e\x27\xbb\x4e\xf2\x3a\xb1\xbe\x29\x21\xb3\x1d\x7f\x34\xa0\x5b\x57\xb8\xec\xd0\x11\xbb\xbe\x2e\x96\x4b\x84\xfe\xd5\x08\x7e\x0b\x76\xf1\x6b\x77\x37\xf6\x1d\x4a\xd4\x40\x5c\x14\x0d\xdc\x4a\x28\xcf\x18\x80\x42\x94\xda\xce\x02\x3f\xe8\x92\x10\x52\x09\x92\xce\x63\xb6\xf5\x57\xea\x90\xa7\xbe\x5f\x23\x48\x93\xc9\x7e\xfd\x08\xf9\xf4\xd5\x3f\x74\xc1\x1f\x4e\x23\x56\xde\xd4\x98\xf6\xa5\x29\xc5\xbe\xb7\x5e\x65\x14\x23\x40\x31\xf4\xfc\x84\x6e\x3c\xbd\xed\x54\x34\x7c\xbc\x96\x39\x01\x10\xa4\x27\x68\x67\x67\x87\xbd\xf0\x48\xb3\xc9\x19\x12\x0a\x57\x85\x5d\x7e\xa4\x47\xbb\xe2\xd0\x05\xda\xdd\x2d\xfc\x55\xa8\x14\xae\xb6\x4a\x5b\xa5\x08\x5b\x2c\xb0\x44\x88\xb0\x2c\x22\xc4\x09\x8c\x90\xf3\x14\x64\x41\x63\x1d\x89\x35\x08\xe5\x68\x45\xe6\x41\x85\xa9\xff\x6a\x67\xa7\xad\xbb\xd3\x39\x37\xed\x3e\x15\xe8\xf9\x9f\xab\x39\xdc\x8b\xa3\x71\xbd\x89\xc9\xe3\x7b\x3f\xc5\x42\x06\xa2\x53\xe5\x44\x30\x81\x68\xb6\x44\x9b\x64\x7f\x10\xd5\xe8\x7e\xfb\x43\x03\x5a\x64\x8f\x07\xba\x39\x8d\x3f\xc9\x3e\x7d\x92\xea\x93\xe8\x24\x70\x1d\xb5\xca\xba\xd5\x44\xc1\x82\x14\x82\xa2\xe9\xe9\x1a\x21\x23\x6d\x4f\x41\x0c\xe6\x2a\xd6\x46\x30\x69\x86\x51\x7c\x6e\x73\x91\x9d\x91\xda\x5c\x66\x67\xa4\x4e\x0a\xe4\x88\x85\x7c\x0e\x63\x38\x5c\xb0\x34\x0b\x03\x52\x89\xfb\xde\x1b\x92\xaf\xb6\x06\x4f\x59\xee\x3e\x2d\xe1\x79\x6f\xf1\x15\xf9\x9a\xb3\xd2\xd6\xaa\x3e\xdb\xa1\xbd\x9e\xd3\x92\x5c\xaf\x20\x0e\x2c\xe8\xe2\xec\xc3\x97\x25\x5d\x9c\x7d\xf6\x2c\xda\xde\xef\x7b\x43\xba\xef\x38\x68\x59\x7b\x05\x19\x98\xc1\xb0\x73\x14\x42\xea\xf1\x07\x78\x98\x90\x97\x71\x47\x65\xd0\xd1\x1d\x13\x7a\x99\xb3\xec\xe1\xa1\x35\x6a\xce\x41\x80\xde\x13\x5f\x4e\x98\x40\x4d\xb7\xaf\xc9\x28\x0c\x3f\xd1\x6d\x38\x50\x2b\x7e\xce\x59\xf1\x92\xee\xa2\x54\x91\xfc\x86\x9b\x2a\x60\xe3\xf9\x82\x7e\xd7\x75\x85\xa1\x21\x10\xf8\xa3\x74\xd5\x82\x5d\x7f\xe0\x8c\x63\xc5\xc0\x08\xd1\xe5\xd0\xa4\xe5\xd2\xaa\xda\x74\xbe\xb1\xb5\xc8\x17\x4b\x54\x0b\xa3\x98\xfb\x44\xe1\x02\xae\x88\xc1\x62\xeb\x96\x38\x86\x3f\x50\x2d\xf2\xcd\xd1\x77\x54\x9c\xa6\xcf\xef\x8d\x16\x7f\x27\x52\xd7\x4c\x31\x74\xb1\xf2\xc2\xcb\xac\x67\xbb\x25\x92\xef\xb4\x3a\x52\x07\x4b\x4f\x91\x33\xd4\x99\xcf\x60\xb7\xc4\xac\x02\x7d\x3d\x85\xf4\xdb\xb1\x21\x7c\x15\x8f\x27\x0f\xe3\xa8\x14\x5c\x4b\x3c\x22\x9f\xcc\x0f\x0f\xdb\xca\xfc\x4d\x99\xda\x44\x99\xc7\xcd\x5a\xf5\x4d\x2c\x96\xd1\xf8\xec\xae\xd9\xec\x68\xd2\x07\xce\xa6\x03\x61\xf3\x80\x1d\xa0\x4f\xbe\x96\xf9\x70\x9b\xab\xb4\xe7\xf4\x64\x77\x11\xc5\x49\x7e\xff\x1b\x31\x07\xff\x3e\xd5\x9d\x28\x91\xbc\xdf\xed\x56\xb8\x82\xd2\xe3\xcc\xd1\x29\x13\xfc\x89\x6f\x0b\x62\x78\x13\x77\xb5\x7e\x77\x71\x69\xff\x3d\x81\xaa\xf2\xc1\x0e\x44\xfe\x3b\x00\x91\x7f\x4c\x01\x22\xff\xdd\x04\x44\xfe\x3b\x18\x05\x0c\xb6\x1d\x54\x24\xb9\x94\x6e\x82\x51\x91\x06\x9a\x28\xa7\xfb\x93\x77\xbc\xb3\x73\xb2\xb3\x73\x7e\x70\x5d\xab\x58\xd5\x80\x4c\x25\x40\x6e\xaa\xdf\x16\x15\x86\x01\x4b\x96\x15\x86\x02\x4b\x20\xc6\xbf\xc2\xa0\x57\x57\x4c\x5c\x97\x00\xdb\xc7\x2a\x8a\xfa\x27\xfb\x45\x17\x2b\x1d\x51\x5d\xc8\xc6\x0b\x00\x55\x2a\xd5\x0e\x4e\x1f\x1e\xae\x9d\x0f\xcf\x96\xbb\x1f\x30\x40\x2b\x09\xdd\x4a\x1f\x42\xf1\xc3\x33\xa7\xbc\xbb\xb4\x15\xa8\x55\x4e\x11\x52\xfd\x03\x15\x84\x07\xa2\x7f\x27\x39\xfb\xb7\x5c\xa9\xd8\xe9\x02\x05\xe6\x8c\x36\xf8\x11\x01\x60\x86\xa2\xc1\xf3\x9c\x0d\xc2\x98\x45\x6d\xce\xa3\x36\x2f\x1e\x1e\xde\x03\x5d\x77\x2a\x18\xfa\xc3\xc3\x20\x76\x7a\xa0\x9e\x7e\x12\x24\xf5\x38\x52\x7a\x1c\x49\x3d\x8e\xb4\xae\x22\xb9\xa7\xf6\x6e\x67\x47\xfe\x1c\xe8\xd7\x1f\x24\xae\xaf\x1d\x21\x83\xc4\xf5\x07\xe6\xeb\xb3\xc4\x44\xad\xf3\xae\x72\xdb\x7a\xb1\x41\xac\xd8\x20\x5e\xac\xe9\x35\x1f\x1e\x42\xd0\x9e\xe8\xb8\xd3\x75\x06\xc2\x00\xab\x2c\xaf\xe7\x77\xab\x33\x8f\xab\xfa\x1a\x54\xcf\x9f\x54\x3a\x5e\xdf\x97\xc7\x5b\x52\x93\xe2\xfa\x90\xa5\xf2\x67\x1c\x20\xfe\xb3\x72\x08\xbc\x7d\x5f\x14\xb5\x0a\xbc\x7d\x7f\x68\x41\xdc\x80\x75\x12\xfa\x7c\xb3\x27\xaf\x21\x33\x20\xd5\xc7\x27\x84\x88\xac\x72\x9a\xf2\x46\xfe\xd8\x08\x6d\xfe\x3f\xd9\xf8\xf0\x7e\xab\xe3\x0b\xe9\xbe\x9f\x40\x86\xd7\x15\x16\xad\xac\x05\x13\xfe\x43\x1c\x3f\xfb\xe3\xcb\xd2\xc1\xc7\x4a\x89\x0e\x63\x52\x7f\xbb\x8f\x90\xe1\x63\x6d\x33\x4c\x78\xf2\xd6\xdb\x2e\xf1\x48\xe7\xf5\x44\x31\x3b\x34\xbc\x99\x51\xb3\xef\xd3\xa5\xa9\xfa\x97\x71\x5a\xd9\xd4\x3e\xbf\xf8\xb3\x45\x59\xc4\x53\xe4\xaf\x44\x16\xd3\x5f\x76\x6c\x70\x55\xd9\xc2\x9b\xc0\x29\x8b\xbb\x10\xd7\xbb\xe2\xd9\x3a\xc6\xfb\xc0\x73\x2b\xb8\x52\x3c\x88\xfb\x1d\x29\xf0\x37\xa0\xb2\x15\x8d\x9e\xaa\x0c\x1b\x0d\x48\x3d\xee\xcc\x89\xab\xb8\x6b\x14\x36\x69\xca\x31\xe5\xfa\x05\xdb\x64\x7f\xf0\xfe\x8a\x9b\x29\x54\x41\xda\xfa\x50\xb3\x36\xdb\x6b\xfa\x3d\x8f\xa5\xac\x24\x2c\x65\xd5\x1f\x6c\x64\x01\x96\x11\x53\xfa\xc2\xbc\x34\x29\x03\x66\x28\xbb\x2e\x12\x4a\x13\x10\xd1\xa1\xbb\xa0\x36\x73\xd8\xf6\x16\x60\xa2\xab\xc7\x74\xf0\x76\xe9\x5e\x5c\x0e\x1a\xa3\x90\xde\x18\xb8\x66\x4d\xa3\xc9\xb2\x04\xf0\x29\x02\x97\xa7\xa1\xc4\x10\x00\xdc\xa3\x2b\x01\x9f\xf0\x0f\x86\xb9\xce\x8f\xa4\x3c\x50\xfb\x1c\xdd\x82\xca\xe9\xa9\x06\xc6\x81\x09\x0d\x03\x33\x30\x0e\x8c\xec\xe8\x0f\x39\xd0\x46\x94\xf5\x9e\x2f\xf4\x90\xb4\x93\x38\x0c\x80\xdf\x20\x37\xc4\x4f\x0e\x47\x43\x05\x7c\xb8\x00\x86\x65\x23\x7a\x37\x74\x26\x65\x4c\xf0\x1a\x19\x09\x18\x8f\x1c\x95\xbf\x69\xba\x20\xfa\xf9\xa7\x60\x80\x1a\x45\x1b\x2c\x90\x53\x7f\x26\x7e\x5f\x91\x1f\x4b\x80\x34\x48\xc5\xad\xe6\x68\xbc\x44\xff\xfc\x40\x7c\xf5\xbd\x21\xff\xba\x02\x0c\x22\xc5\xe1\x2f\x46\xc9\xe0\xef\xdf\x18\xf5\xdf\x8a\xe1\xa2\x45\xf0\xbf\x88\x47\xf0\x9b\xa1\xff\x93\xc7\x86\x86\x63\x16\xb8\xff\x85\x15\xeb\x7f\x69\xc5\xf9\x87\x07\xf2\xf0\x50\xb6\x42\xfd\x4f\xbb\xf5\x31\x2d\x50\xe0\x56\x3c\x1d\xf6\x9f\xfe\xe3\xb0\xff\x46\xaf\xfb\x70\x34\x3b\xc4\xd9\xbc\x12\xf8\xff\x7b\x65\x72\x0f\xdf\x0e\xa1\xd6\x2b\xf8\x76\xe4\x25\x9d\x55\xfb\x2f\x56\xe4\x98\x0d\xef\x09\xfb\x38\x65\x1f\x67\xec\xe3\x9c\x7d\x5c\xb0\x8f\xd7\xd0\xcc\x1b\x3d\xe8\xe1\x69\x12\x11\xd4\xac\x83\x4b\xe8\xf1\x15\x06\x58\xa0\xdf\xe7\x9d\x31\x66\xe1\x0d\xb9\x02\x0c\x85\xeb\xf2\xcf\x64\xff\xc5\xcf\x35\x43\x22\xc2\x9b\xfc\x8e\x6a\x08\xd5\x99\x7a\x43\xff\x4e\x0d\x79\xc0\x04\xcb\x14\x62\x80\x28\xa1\x7d\x34\xd8\xbb\x9b\x04\x33\x5f\xcd\x1c\x97\x8b\x96\x14\x86\xa4\x98\x4b\x65\x35\xb9\xec\xa6\xd2\x07\xb8\xe8\x28\x59\x31\xfc\x59\x1b\x21\x02\x38\x9e\x5a\xe8\x8a\x35\x75\x83\x3b\xca\x84\x09\xf3\x66\xee\x4f\x96\x1f\xb1\x5f\xf4\x5d\x31\x76\x2b\x92\x72\xd4\x7e\x02\xc7\x09\xc6\x38\xf1\x95\xd8\xc0\xa4\xd0\x82\xbd\x7a\x45\xde\x98\x43\x2f\xf8\x42\xad\xce\xde\x5b\xaa\x06\xf3\xb1\x8f\xdd\x9d\x23\x54\x7e\x34\x59\x08\x43\x29\xfb\xc1\x82\x23\x0c\x57\x01\x18\x82\x27\xbb\x48\x99\x05\x45\xfc\xef\xa0\x62\xb0\x86\xeb\xa7\x53\x31\x58\xe3\x15\x70\x20\x52\xab\x5a\x23\x34\x32\x58\x1c\x8e\x93\xf5\x8e\xf3\xb0\x38\x9c\x24\xeb\x9d\x44\x5d\x4d\xaf\x7b\x9e\xac\x7b\x9e\x83\x01\xe2\x34\x59\xed\x34\x07\x03\xc4\x59\xb2\xda\x59\xd4\xd3\xd4\xaa\x17\xc9\xaa\x17\xff\x00\x79\x04\x56\xc3\x37\x64\xed\xa4\x96\x1c\x9c\x0e\xd6\x24\x1c\x1c\x9f\xc3\xd4\xba\xd6\x7c\x18\xce\x77\xf1\x0e\x12\x44\xd7\x4e\x18\xcb\x20\xcb\xb0\x66\xd2\x64\x91\x65\xdc\x27\x2b\xde\xcb\x8a\x19\x04\x97\x87\xc9\xba\x87\xb2\x6e\x7a\xd2\xd0\x51\xb2\xea\x91\x0c\x9e\xca\xb8\xec\xab\x64\xdd\x57\x19\xd9\x58\xd6\xfc\x36\x6b\xca\x97\x31\xc4\x26\x9e\x08\x61\x4d\xa3\x30\x66\xc6\xc5\x6b\xb3\x05\x0c\x0c\xb8\xeb\xe4\x0a\x99\x5b\x01\xa9\x6c\xad\x54\xbb\x78\x33\x8f\x24\xdc\xc8\xc1\xb8\x91\x9f\x72\x63\x0d\xce\x0d\x1b\xe9\x46\x56\x04\xd5\xd5\xff\x49\xde\xd1\x95\x57\x27\x22\xe0\xe7\x2a\x33\xa4\x2b\x3f\xca\x5c\x0e\xaa\xd8\xcb\x64\x6f\x2e\x69\x6f\x30\xee\x06\x00\x96\xa8\x7c\x5c\xce\x8d\x57\xc7\x95\x9a\xdc\x49\x2f\xcb\xe8\xad\x94\xe1\x4e\x47\x4a\xd2\xcb\x74\x67\x47\xfe\x6c\xb9\x64\xa6\xfc\xf4\x5d\x32\x56\x7e\x76\x10\x0b\x46\xfe\xec\xba\x64\x19\x53\x94\x97\x4c\xd8\x3b\xcd\x4c\x98\x39\x15\xe4\x8e\x16\xf7\x4e\x9f\x9c\x02\xe0\xf0\xb9\xd5\xbd\x13\x62\x01\x5b\xc2\x0c\x80\xc9\xdd\x1f\x9c\x8a\x4c\x99\xca\xa9\x05\xa2\xe6\x3e\x2d\x99\xe6\x56\x24\xd3\x9c\xd0\xfb\x4a\x26\xd3\x1c\xd3\xa3\x4a\x32\xcd\x6d\x14\x19\x6c\xc3\x82\x8b\x27\xd3\xdc\xb1\xd1\xba\xa8\xde\x89\x64\x9a\x0b\x08\xbb\xbf\x75\xef\xae\x2f\x6a\xde\x2d\xfd\x97\x48\xa6\x81\x83\x51\x32\x0d\xfc\xc2\x64\x1a\x67\xb9\xb3\x23\xc0\xf3\xe0\x9b\x95\x1f\x24\x32\x8c\xb1\xc2\x54\x47\xe7\x4e\x1c\x6b\x0e\xce\x69\x2c\x47\xde\xa8\x54\x57\x4f\x33\x93\x74\xa8\x6a\xdb\xdc\x63\x32\x24\xea\xb4\x4d\xc1\xcf\xcf\xa6\xc2\x6b\xef\x34\xcb\xe2\xaf\xa7\xf0\x2c\x6b\x54\x02\xf7\x5e\x6f\x6e\xf6\x67\xb9\x00\x8a\xf6\xd1\xdc\x0b\x5a\xa0\xab\x5f\x7a\x6f\x34\x6b\xff\x95\x84\xe5\x63\xd6\x7e\x08\x99\x8b\x63\x87\x98\xaf\xa8\x43\x82\x33\xeb\x1f\xae\xe8\xfe\xa4\x88\xf1\xcf\xd3\x88\x18\xe6\x32\xdd\xf8\xbf\x50\x30\x9a\x33\x8a\x2e\xf3\x17\xe5\x43\xc1\xf3\x8b\x32\x0a\x03\xda\xb8\x3f\x05\x14\xd2\x4b\xfa\x96\x4c\xf3\x55\xa2\x13\x7e\x96\xaf\xa4\x96\xea\x34\xdf\xd9\xb9\xd2\xcc\xfb\x4b\x05\x8a\x38\xdd\xf1\x71\xc6\x73\x70\xc8\x84\xbd\x5f\x6f\xbd\xb3\x6a\x9b\xa7\xd5\xbc\x05\xfc\xbe\x8c\x64\x9f\x25\x5f\x14\xda\x2e\xe9\xb1\xfc\xa8\xb6\x9a\x1f\x85\xc7\x94\x43\x99\x8b\x54\xea\x25\x33\xf3\xa3\x7a\xd2\x77\xb3\x7a\x9d\x71\xe3\xbd\xc8\xe3\xd3\x4b\x66\x14\x9d\xc9\x8c\xa2\x73\x97\x47\x23\xc7\x17\x2a\x2d\x64\x15\x8b\x3c\x3c\x0c\x84\x01\x3f\xc5\x52\xbe\xbd\x44\xae\x27\xb9\xb4\xc5\xef\x58\x9b\x65\x62\x94\x53\x48\x8c\xd4\x65\x32\xca\x61\xd2\xdb\x34\x4e\xc6\xa4\x3f\xc9\xe8\x4d\x62\x2f\x7a\xc4\x3d\xf1\xce\xcb\xd3\x76\x6c\x81\xa3\x85\xf0\x6c\x06\xeb\xf0\xbb\x7c\x98\xee\x51\x6b\xd8\x23\x00\xe6\x34\x5f\xcf\x7e\x39\xc6\xe1\xf2\xde\xc2\x1a\x61\xbd\xa4\xdd\x9d\x55\x72\xc9\xfb\xd4\xad\x04\x17\xb2\xa6\x3f\x9e\x41\xc8\xe7\x34\x1c\x8d\xc1\xf1\x6e\x80\x0a\xe2\xcf\xff\x7d\x38\x9f\xc2\x15\x71\xe1\xad\x6c\xd1\xeb\x6b\x5d\x03\xf2\x8a\xa1\x12\xdd\xab\x92\x51\x0c\x95\x08\xde\x0c\x22\x8b\x91\x33\x54\xdd\xce\xcf\x78\xcf\x76\x95\xee\xba\x59\x24\x16\x5a\x1b\x65\x6b\x1b\x29\x0e\xb0\x88\xd8\x77\x6b\xc0\x83\x5c\x6c\xc3\x6c\x1c\x5a\xf1\x02\x3c\x3c\x28\xc9\x73\x5e\x94\x3c\x87\xfd\xb1\x9d\x94\x9d\x3c\x28\x55\xca\x2b\x14\xf1\x9c\x16\x87\x65\x1f\x32\x4c\x76\x2a\xeb\xf1\x4f\xf7\x40\x7e\xab\x88\x85\x8c\x96\x6c\x7e\x82\x63\x9f\x9d\xb3\xe7\xe5\x52\x89\x80\xa8\x03\x85\x40\x9f\x71\x8a\xe7\x30\x35\xf4\xe5\x79\x91\x73\x79\x86\x35\x6d\xa4\x86\x70\xc3\x4b\x28\x92\x2b\x51\xfa\x74\x7c\xde\xd3\x91\xe8\xa9\x2f\x7b\xea\xdb\x7b\xfa\xc5\x39\x7f\xfe\xe3\xcf\xb1\x8e\x9e\x25\x3b\xaa\xee\x23\x78\x59\xdf\x45\x29\xd7\xe9\x80\x60\x87\x32\x0f\x4b\x34\x8d\xc6\x4b\xae\x9f\xdf\x7b\xd5\xbc\xd4\x7a\x1a\xed\x9c\xd9\x3b\xec\x24\x68\xcc\xa1\xfd\xcf\x85\xf8\xfd\xc6\xce\x6e\xf0\x70\x36\x5a\xaf\x3b\x2e\x2a\x0b\x4e\x57\x19\xd5\x65\x34\xaa\x23\x31\xaa\x7f\xc3\x5e\xf4\xf8\x51\xfd\x92\x3a\xaa\x5f\x32\x25\x12\x67\x7e\x70\x56\x29\x76\x99\x3b\xcc\xe5\x84\x15\x1b\x0e\x6c\x17\x53\x98\x37\xca\xe6\xbd\x95\xd9\xbc\x0b\x2d\x9b\xf7\x36\x96\xcd\xbb\x78\x64\x36\xef\x72\xfd\x6c\xde\xdb\xec\x6c\xde\xf5\xb3\x19\xc1\x72\xad\xa4\x33\xc6\xd9\x99\x75\xb1\x3f\xee\x79\xd0\x0c\xf3\xfc\x24\x3c\xf5\x05\x9e\x8b\xcc\xf4\xea\x6e\xf4\x54\xd7\x58\x5a\xae\x01\x3b\xa1\x9c\x45\x19\x23\x62\x4d\x35\xfd\xee\xa3\x00\xc7\xa7\x88\x06\x7f\xce\xa4\xd7\xbf\x61\x54\xd8\x35\x51\xfc\xed\xf0\x01\x2a\x32\x71\xd8\x25\x41\x94\x8f\x8a\xc5\x5c\x73\xb2\xec\xa1\x74\x23\x93\x57\xde\x28\xf2\x28\x1b\x95\xdf\xbb\x60\xd6\xdd\x02\xe9\x25\x3d\x97\x9c\x17\xd7\xf3\xc9\x19\x53\x99\x9a\x4d\xce\x8f\xb4\x0d\x39\xe7\x9d\xe8\x98\xba\xe6\x60\x86\x81\xed\x4c\x60\xca\x53\xef\x59\xf3\xd4\x5f\x70\x67\xf7\xbf\x5f\xac\x48\x9f\x39\x59\x43\xf6\x31\xb0\x79\xbb\xad\xaa\xbc\xc4\x97\x2b\x93\x09\xb8\x50\xa7\xf0\x6f\x06\xff\x38\xc0\x5c\x3c\xa5\xfd\x8e\x5d\x69\xa1\x3b\x74\x73\x66\xaa\x93\x25\xab\x7d\x0f\x8e\xda\xaa\xec\x12\xdd\xb2\x79\x7f\x46\x80\x7c\x20\x28\xe1\xd8\xed\x16\x98\x7c\xf0\xbe\xde\x82\x9c\x0d\xa7\x5c\x82\xdc\x0e\x5e\x64\x7e\xc0\x11\x28\x2a\x9c\x3f\x2e\x51\x94\xf3\xcc\x15\x16\x40\xbd\xc1\xbf\x2f\x01\x99\x83\xa7\xcc\x67\x64\xc5\xb7\x54\x3e\x1c\x91\x14\x9f\x2b\x9f\xde\x37\xd5\x44\x55\xe1\x90\xbc\xb2\x40\xe3\x2d\xc8\xbd\x4b\x8e\xbf\x4f\x52\xfd\xc9\xdf\x9b\x54\xaf\xb8\xd4\x17\x74\x57\x10\xd9\x9e\xcd\x28\x67\xbc\x4d\xbf\x2e\x0e\xe9\x03\xc1\xec\xf1\x25\x7e\xf3\x59\x1e\xf9\xec\xb3\xd7\xe1\xdf\xbe\x78\x5d\x25\x8d\x3c\xf8\xee\xbc\x38\x56\xcf\x44\xba\x0f\xd6\xea\x4c\x05\xff\xc9\x31\xdc\xd1\xda\xa0\x7d\xa2\xa6\xd5\x17\x67\x85\x2e\xcb\x4e\x78\xb7\xa2\xfd\x41\xd5\xcf\xf0\x28\xd6\xf6\x1b\x42\xcd\x2f\x69\x35\xad\xae\xc3\x3c\x59\xf2\x56\x27\x5e\x3a\x26\x80\xd5\x7d\x97\xe5\x8f\xb0\xba\xe1\xb2\xb2\xf2\x83\xef\x98\x95\x1f\x6c\x96\x95\x1f\xfc\x03\x59\xf9\x86\x6b\xaa\x3d\xfe\xfc\xf8\x2e\x67\xf6\xf8\x53\x37\x98\x6e\xb1\x55\x60\x8b\x7e\x63\x56\xed\x16\xd9\x1a\xcf\x67\x9c\x7c\x92\xf6\x77\x36\xda\x02\xa3\xc1\x96\xb8\xa9\x82\xd2\xc9\x2f\xff\x4f\x77\x32\xdd\x41\x68\x82\xa4\xb0\x3b\x08\xf1\x14\xe9\x65\x39\x08\x79\x01\x5a\x30\xdb\x41\x28\xca\x90\x5e\xaa\x83\xb0\x27\x1c\x84\xd8\xf2\x61\x18\x74\x86\xa9\x8b\x88\x39\x88\x20\x12\x08\xea\x71\x81\x20\xcb\x6d\x18\x0f\x67\x69\x60\x38\x4b\xd2\x6d\x48\x55\x38\xa6\xf6\x0e\x40\xa6\x90\x5f\xbb\xf2\xeb\x93\x60\x22\x8c\xeb\x93\x3e\x08\xa9\x79\xdc\x84\xbd\xe8\x61\x27\xb1\x10\x40\xce\xe8\x79\xdd\x22\x73\xc0\x16\x85\x6b\x97\xee\xa0\x45\xf4\x06\x17\xa5\x03\xf7\x26\xd3\xf5\x77\xe3\x92\xbe\x64\x7d\x56\x73\x7a\x1a\x64\x20\x73\x75\x7c\x4c\x28\xea\xd5\xdc\x28\x33\xa6\xa5\x97\x1d\xca\xb2\x6d\x5a\x76\x0c\xb9\x42\x55\xec\xe7\xc4\xbb\xb1\x3b\x92\xc4\x88\x68\xc9\x23\x53\x6f\xb2\x89\x17\x29\x6a\xab\x3a\xd5\xfc\x45\x13\xd5\x5b\xb4\x9a\x6c\x92\xa7\xc1\x11\xed\x26\xb6\x14\x7d\x9b\xf5\x37\x89\x68\xc7\xb9\x5e\x67\x89\x68\xec\x59\xae\xf8\x7d\x69\x7b\x19\x09\x69\x55\xc6\x03\xeb\x5c\xcd\x0b\xb3\xdc\xda\x77\x98\xd1\x06\x6a\x2e\xcd\x45\x42\x67\x28\x8a\xb0\xfb\x9e\xeb\xf7\xcd\x62\x51\x53\xa3\xfe\x95\x79\xcc\xd0\xe6\x8b\xe5\x6d\xaf\x21\xc8\xcf\xeb\xf4\x29\x0b\x41\xb2\xa9\x28\x90\x1e\x7d\x91\x04\x1a\x38\x06\x39\x4a\xed\xcd\x66\x89\x1a\xf2\x41\xa0\xea\x5c\xc3\x69\xee\xd1\x99\xc1\x5a\x7a\xd7\x76\xb4\x7c\x2d\x17\xd4\x3b\x28\x11\x24\xcf\x96\xe0\x6c\x9b\xd5\x47\xd7\x6b\xb1\x2c\x01\x3f\x7c\xd2\x22\xed\x5a\x8a\xcd\x1d\xba\x89\xe4\xe6\x2b\x80\x18\x8c\x3f\x6b\x91\x7b\x4f\xe6\x89\xa7\x3d\x4f\xcf\xc7\x67\x8f\x49\xd3\xae\xdd\xac\xfc\x7c\xf6\xdc\x2c\x75\x26\x05\xb2\xef\xda\x72\x5b\x34\xd3\xb8\xd6\x80\xe7\xf5\xd5\x71\x3c\x90\x71\xf4\xe8\xa7\x65\x3c\x23\x7f\x32\xc0\xf7\xc4\xc5\x3d\x3d\xb3\x4f\xaf\x3b\x08\x86\xbc\x9e\x7e\xb8\xbe\x60\x87\x57\x0a\xfb\xa7\x1e\x1b\xbe\x1f\x8f\x0d\xdf\x57\x62\xc3\x7f\x2a\x95\xa8\xba\xfd\xe3\x3e\x55\xaf\xa9\x8e\xdb\x37\x04\x6f\x9b\x03\xbf\x8d\x36\xff\x05\x95\x3f\xad\x01\xdd\xa3\xe4\x36\x72\xcd\xa8\x1f\x6a\x0a\x02\xfa\xf7\xd5\x66\x9e\x3c\xa2\x34\x3d\x68\xd2\x84\xd1\x9b\x27\x50\xd3\x0a\xb0\x9e\x1e\x6c\x69\x05\x58\x4f\x0f\xb6\xb4\xa2\x87\xa7\xc7\xcb\x5a\x35\xc3\xf4\x78\x59\xab\x66\x58\x1f\x06\x83\x14\x8d\x67\x7d\x54\x74\x63\x64\x6e\xee\x10\x39\x63\x70\xee\x7f\x79\x54\x5a\xaa\x64\x18\x8f\x38\x6c\x20\xa8\xd7\xe6\xb4\xa5\x52\xfc\x00\xaf\x6a\x1e\x01\x6f\x1c\xd9\x08\x62\x02\xde\x8d\xb2\x81\x4e\x18\xd8\xd5\x76\x4f\x84\xed\x1f\xc6\xfd\xd0\x18\x69\xcf\x16\x4d\xbe\x13\x07\xb4\x67\x5e\x3d\x9f\x9f\x5b\xab\x6d\xf5\x3b\x9b\x73\x02\x4b\x20\x4c\xf2\x8d\xcd\x1c\xcf\xb5\xff\xa2\xb4\x41\xab\xd1\x2e\x59\xdf\x20\xed\xce\x47\xb0\xc6\x1b\x2a\x7f\x91\xba\x2b\xc9\xc8\x37\xe8\xa0\x2d\x15\xb2\x0c\xfa\xaf\x88\xed\x72\x1a\x66\xbf\xfe\x02\xdd\x0f\x8a\x15\x9e\x01\xeb\xaa\x36\xf2\x92\xea\xf4\xbe\x35\x10\x15\x25\x63\x8e\xc4\x83\x8a\x68\xb3\x7f\x96\x8d\xc4\x2f\xa1\xb3\x19\xfa\x18\xf2\xa4\x10\x0f\xee\xfd\x0a\xb4\x83\xe4\x50\x73\x04\x44\xb3\x01\xad\xfc\xf2\x7a\x48\x2d\xd3\x97\x43\x1b\xd0\xed\xbc\x46\x02\x14\x9d\xf2\xf4\x7b\x99\xe8\x77\xde\x6e\x33\xae\x9b\xb5\x3b\xbe\xd4\x3a\x1e\xd2\x8e\x2f\x93\x1d\xa7\xaf\xb6\x7c\xcd\xa6\x8e\xf2\xce\xd5\x99\x8c\x29\xbd\x75\x2c\x95\xac\xde\x98\xf2\x01\xc0\x4c\xb9\x92\x5b\x6c\x80\xdc\x09\x04\x33\xa5\x6a\xfb\x37\x01\xa9\x55\x6d\xef\xee\xba\x89\x0a\xed\x1a\x69\x43\x85\xdf\x9a\x74\xca\x18\x1a\x14\xe7\x69\x83\x6d\x29\x3e\xb4\x56\xca\x9b\x8f\x4c\x63\x11\xe3\x3c\xe2\x06\x30\x24\xa1\x6a\xe0\x5d\xd7\x9d\x1b\x46\x3d\x89\xc1\x6d\x28\xe8\xd2\x01\xa1\x7a\x19\xbd\xcd\x1a\x01\xcb\xc5\x8a\x69\x30\x59\xda\xe0\x4c\x88\xfc\x56\xe4\xf4\x19\x20\xa7\xdf\xa6\x60\x50\xcf\x52\x90\xd3\x61\xd9\x33\x84\x76\x6e\xdf\x3c\x3c\x6c\xdf\x64\xa1\x8f\xcf\x20\xb0\x71\x96\x0f\x7d\xfc\xce\x13\xcf\xfc\x46\x8a\xf5\x35\x72\xa3\x88\xf8\x4d\x5a\x42\xfa\x4c\x00\x71\x5d\x0b\x7f\x5c\x78\xb3\x6c\xad\x75\x4c\x97\x7a\xa9\xb9\xde\xd4\xc0\xff\xb1\x78\x8c\xe6\xca\xda\x23\xf7\xde\x52\xd3\x5f\x0f\x69\xab\x6a\xbc\xe3\x7d\x46\x0c\xa1\x68\x8e\x87\xee\x65\x14\x47\x3b\x54\xbe\xa2\xf8\x96\x1d\x52\xe1\xb4\x00\x4e\xe9\x0d\xe0\xb4\x71\x68\x5f\x79\xfa\xbb\x1b\xeb\x2f\x4c\x1d\x9f\x47\x23\xcc\x65\x8c\xdc\x2d\x30\xcd\xf2\xf8\x10\xc2\x51\xef\x8f\x62\x0d\xa9\x77\x72\xec\x1d\x25\x72\xed\x54\x75\x45\x3c\xb5\x3b\x2a\xad\x1f\x27\x9e\x99\x6d\x21\x8b\x35\xc1\x57\x25\xba\x9e\x8d\x0e\x8a\xbf\x54\x7e\x31\xac\x53\x46\xee\xaf\xd1\x01\x27\xef\xe2\xcb\x1b\x39\x8e\x56\xc6\xf9\xae\x33\x3a\xe0\xd0\x9e\x15\xc0\xba\x93\xeb\xe4\xf0\xc0\xa0\x8b\x00\x93\xd9\xaa\x52\x8a\x65\xbd\x73\xf0\xb4\xb4\xf9\x2f\xd7\xc6\x3b\xba\x10\xde\x27\x17\x53\xf6\x98\xe3\x61\xb5\x23\x9d\x03\x74\x6a\x86\xce\x02\x59\x76\xbb\x67\xc7\x3c\x02\x7d\xe3\x9a\x2d\x4b\xc6\x85\x1c\xae\xad\x43\x57\xe4\xe4\xc5\x45\xfc\x7a\x39\xef\x22\x2c\xfb\x55\x0c\x02\x63\x2e\xa6\x27\x1f\xe8\x38\x22\xc6\x2d\x9b\xb3\x31\x1d\xd4\x4b\x0a\x7b\x11\xe0\x78\xf9\x05\xd7\x4b\x21\x3c\x8b\x0b\xac\x65\xee\xc9\x7d\x61\x40\x1c\xa7\xf7\xdf\x03\x17\x6c\x5f\x63\x0c\x9b\x14\xb8\x86\x1a\xe3\x10\x1b\x80\x3a\x3b\x84\x7f\x9c\x35\x0c\x5a\x89\xd4\xcc\xc8\xb2\xf8\x24\x48\xcc\xa9\x4a\xa7\x91\xb3\x24\x5b\xe9\xb4\xea\xaa\x8b\x4f\xd2\x91\xba\xbe\x6e\x96\x5d\x37\xd5\x75\x77\x59\x9f\xb2\x97\x79\xed\x74\xc8\x3a\xd8\xb2\x53\xab\x5a\xd3\x21\x23\x5b\x78\x6a\x7d\x2b\xed\x51\xba\x4f\xcc\xea\x70\xfc\xff\x07\xa1\xd8\xcf\xa7\xb0\xcd\xea\xcd\xbe\xdf\x82\xb5\x26\x8f\xba\x16\x46\x9e\x4e\x99\xb6\x33\x13\xa9\x37\x37\x60\x17\xd7\x95\xb8\xd0\xe5\xd6\xef\x76\xd1\x67\x56\x7a\x9f\x8f\xc6\xdc\xeb\x14\x7d\xb4\xd2\xfb\xe2\x9e\x6f\x33\xe5\xb2\x5b\x40\x5b\xb8\x51\x05\x96\x1b\x5d\x60\xb9\xf3\xc2\x6a\x68\x45\x52\x53\x22\x78\x90\xc2\x89\x39\x9f\xbc\x14\x20\x64\x25\xa8\x18\x2a\x35\x49\xa2\x11\x09\xbc\xb6\xf0\xc2\x9c\x31\x73\xd5\x50\xe1\x87\xc7\x07\x00\x2c\xbf\x93\x16\xad\x39\xa4\x5f\x10\x5c\xd3\x19\xf0\x08\x8c\x69\x5a\xbe\xcc\x0a\x2c\xdc\x3d\xb0\x61\xf7\x91\x27\x58\xbb\xe3\x08\xc8\x19\x12\x8f\xfa\xb4\xfa\x41\xa9\xd2\xac\x62\x4f\xc6\xf4\xea\xde\xb7\x65\xa5\x45\x96\xa5\x4a\x83\xce\x23\x67\xc1\xee\x62\x29\x09\x3d\x0c\x12\x1f\x9b\x2b\x75\xb6\x27\x32\xc9\x01\x00\x8e\x41\x52\xdb\x40\xde\x53\x5b\xa3\xd2\xdd\x7d\x1c\xde\xea\x95\xa7\x09\x62\xe4\x88\x5e\x46\x15\x00\x5f\xa5\x8b\x69\xd0\x30\x17\x83\x32\x4a\xea\xe9\x26\xcb\x0c\x91\xce\x8f\xb6\x56\x3f\xca\x67\xb8\xe1\xb2\xda\x44\xca\x6a\x73\xf9\x6c\x8c\x0f\x90\x3f\x84\xbd\xe5\xae\xf2\xbd\x04\x51\xa4\x98\x9b\xec\x60\xa8\x39\x93\x5f\x42\x3b\xac\x1c\x77\x83\x74\xd1\xea\xac\xcc\x4c\xe9\xb5\x88\x24\x40\x7b\xd2\x43\x08\xc2\x1f\x4a\x95\x37\x20\x88\xac\x05\xc5\x15\x24\xa0\xb8\x96\x56\x28\xae\xc0\x02\xc5\x35\x89\x0b\x1e\x73\x88\x6f\x4b\x24\x4d\x8c\xcd\x20\x5c\x81\x00\xe1\xc2\xfb\x3d\x89\xb8\xb3\xfd\xba\xdd\x01\xd4\x74\x7a\x91\x03\xa8\x64\x1a\xdb\x96\xa3\x3e\x17\x2c\x57\xce\x2c\xb7\x1b\xaf\x83\x31\xef\xe3\x11\x4e\x9d\x91\x4b\x4e\xff\xd1\xde\x21\x3c\xc4\x59\x6c\x42\x44\xaf\x89\x09\x00\x49\x7d\xd7\x4d\x13\x90\x2e\x66\x67\x36\x04\xaa\x5c\x10\x62\x70\x81\x2d\xfe\xa9\xa1\x67\x9b\x61\xbc\x4f\x05\x59\xf1\x34\x31\xdf\xd3\x00\x77\xad\x38\x49\x02\x52\xa4\xe4\x92\x29\x3e\x94\x04\x2a\x6a\x5d\x02\xa1\x03\xf6\x1a\x43\x46\xd5\x79\x42\x88\x4e\x25\x62\x86\x45\xc5\x5f\xa9\x08\xa8\x39\x7a\x59\xd6\x7b\x19\x81\x9c\x7e\x97\x4e\x1a\xc0\x8e\xf3\xf7\x50\x03\xc9\x7d\xea\xee\x91\xb3\x84\x27\xf1\x2c\x2f\xe0\x99\x79\xb1\xcc\x0f\x82\x66\xae\x4f\xaf\x1f\xcf\x30\x9a\xa1\xdd\x4e\x08\x57\x5b\x76\x8c\x7a\xe5\xc5\x3f\x89\xa6\x77\x83\x11\x45\xa5\x87\x52\xe3\xeb\xa9\x75\xf6\xc8\x18\xd2\x1c\xf0\x80\x65\xfe\x96\xe9\xbd\x37\xbd\x0d\x19\xd7\xa6\x72\xcb\x77\xba\x34\x47\x97\x69\xfd\xf8\x95\x0f\x1e\xc3\x1a\x67\xbf\xde\x33\xce\x6c\xcd\x1b\x89\x56\x41\x22\x34\x53\xa6\xd8\x43\xcc\x32\x00\xc2\xf2\x5f\x1d\xaf\xfc\xdc\xa7\x3a\xe7\x75\x0d\xd3\x99\x9b\x60\xa9\x7c\xd9\xac\xee\xee\x36\x99\x79\xb3\xe1\x95\xc0\x84\x59\x6d\xfc\x76\x27\xcc\x97\x8d\xdd\x5d\xb7\xb5\x4b\x85\xa6\x3b\xc8\xdb\x90\x30\xc3\x68\x96\x69\xb9\xbc\x52\xd5\x7f\xd9\xc0\x92\xe0\xca\xa7\x67\x81\x9a\xde\x6b\x55\x11\x90\xdb\x5e\xc4\xeb\xac\xe2\xbd\xe8\x42\x0a\x44\xa9\x2a\x75\xc4\x15\x08\xd5\x6a\x7c\xb7\x32\x8f\x2c\xa8\x61\x99\x88\x61\x6d\xef\xd7\x9f\x4b\x74\x28\x80\x0c\xbc\x6b\x8b\xa0\x0e\x32\xf0\xc2\x7a\x56\x17\x71\xdf\xea\x22\x0e\x3d\xd6\xff\x02\x10\x7f\xdf\xfb\x93\x11\x30\x7f\x17\xf8\x85\x0b\x54\x93\x2f\x30\x0f\x74\x41\x44\x69\x1b\xe2\xd4\x27\x88\x79\x35\xd5\xc3\xb1\xe5\x32\x43\xa5\x12\x6d\xe9\xd6\x7e\xc7\x40\xb4\x6c\xfc\xe0\x69\x20\x5c\x6e\xf5\x66\x4f\xe2\x66\x38\xfb\x7b\xfb\xee\x9e\x02\xae\xe3\x5c\xd3\x23\x84\xfe\xd5\x44\x7c\x8c\x29\xea\x79\x4a\xa5\x1c\x43\xd8\xf0\x54\x09\x1b\xbe\xb1\xbc\x72\x47\x09\xbb\xd2\x54\xc3\x54\x87\x7d\x37\x5c\xe2\x8a\x4c\xa8\x76\x8b\x70\x56\xd3\x1c\xab\x87\xb9\x49\x65\x71\xd9\xa0\xd9\x98\x81\x6b\x1a\x47\xe5\xb6\x36\xda\x50\x45\x25\xe3\x5c\x12\xa5\x05\x69\x87\x03\xec\x43\x0d\xb7\x32\x02\x4b\xba\x70\x65\xe5\xab\x39\xa1\x35\x85\xfe\x3a\xc1\x1b\x12\x9e\x30\xfa\x8b\x36\x39\x59\x11\xeb\x33\xfa\xde\x86\x25\xab\xe3\x3e\xdd\xb0\x64\xb5\x47\x65\x61\xf1\x58\x2d\x25\xa3\x54\x2a\x75\xab\x49\x08\xf5\xd8\xb5\xad\x41\xca\xc3\x5f\xdb\x12\x64\x8d\x15\x30\x46\x17\xe4\x8e\x15\x30\x9a\xdb\xd6\x8b\x15\x30\xc5\x6e\xd8\xcd\x49\x78\x8a\xf8\x59\xe6\x24\x61\x40\xf1\x73\x98\x93\xa4\x69\xc5\x4f\x35\x27\xf9\xb9\x62\x05\xe2\xb6\xcb\x06\xda\x2e\x8d\xe0\x33\x28\x4d\xad\x61\x8b\x9c\xde\x05\xb0\x48\x86\x1e\x04\xd3\xd4\xa7\x3e\xdf\x31\x2a\x0d\x61\x0d\x61\x1b\x07\xbc\x57\xcc\x4e\x22\xf7\x0f\xb7\xda\xa0\x2f\x56\xbf\xca\x6b\xd1\xef\x03\xb5\xda\x5d\xd0\xe9\x60\xec\x99\xac\x18\x0c\x81\x05\xbc\xc8\xd6\xf5\x44\xdd\x62\x13\x95\x19\xb5\x89\x69\x10\x76\x47\x73\x40\x57\xc9\xd3\x8c\xbf\x18\xd7\xc1\xa9\x11\xd5\xe7\x47\xb2\xfb\x4e\xef\xf8\xeb\x98\x49\x38\x4a\xfd\x0c\x59\xc8\xd4\xec\x2a\x47\xec\xbf\x39\x39\xc2\xba\x2a\xa6\x9b\x1a\x6f\xd6\x35\x35\xe6\x86\x09\xea\x47\xa2\xb1\xb4\x37\x9e\x28\x40\x40\x93\x9d\x1d\xf9\xb3\x8d\x29\xe5\x27\x0a\x2e\x50\x3f\x66\x8d\xec\x33\x71\x71\x91\x20\x74\x38\x41\x07\x6c\xc2\xdc\xc8\x6d\x62\x17\x36\x37\xf0\x80\x2c\x48\x08\xe0\xfd\x36\x37\xf0\x10\x0b\xd8\xdc\xc0\x0b\x4b\x38\xc6\x51\x2e\xfc\x9f\x73\x60\xf0\x4b\xe0\xff\x00\xeb\xb7\x19\xff\xa7\xbf\x1e\xfe\xcf\x9b\x08\xff\xe7\x8d\xc0\xff\x79\x03\xf8\x3f\x6f\x4c\xf8\x3f\x6f\x34\xfc\x9f\x37\x1c\xff\xa7\xbf\xb3\xd3\x97\x31\x22\xfd\x27\xc5\xff\x59\x80\x17\x7c\x91\x0d\xef\x93\xee\xdf\xbe\xf4\x16\x59\xd6\x4e\x39\x5d\xa5\xc9\xb3\x5f\x03\xf0\x9d\xcb\xcd\x4d\x9e\x6a\x93\xaa\x81\xf3\xad\x77\x19\x47\xf4\xb9\x8a\xbb\x1e\xb9\x9e\xaa\xa2\x61\x5c\xe5\x87\xe8\xc9\x28\xba\xcc\x5f\x94\xdf\x0a\xb7\x99\x66\x14\xd6\x30\x74\x32\xca\xc2\x74\x9f\x8c\xc2\x69\xbe\xd2\x2a\x5a\x35\x1d\x40\x39\x7c\x26\x33\xe3\x45\xdc\xcc\xf8\x9a\x2e\x72\x6c\xb2\xbf\xf3\xc6\x07\x17\xc5\xfb\xca\x45\xb5\xcb\xed\xb8\xef\xd4\xd6\x2c\x90\x3c\x7d\x99\xfc\x4e\x42\x06\xc9\xd3\x55\x21\x79\xf0\x98\x72\x28\x73\x9d\x48\xbd\x64\x46\x2e\xff\x45\xf1\x1d\x83\xcb\x2e\x86\x11\x34\x0f\x9d\x40\x63\x76\x83\xef\xbd\x6b\xe4\xf0\x7d\x25\x56\xe1\x87\x87\xc2\x47\xf6\x8d\xea\x65\xfe\xac\xfe\x86\x9e\x8c\x8e\x88\xf5\xa0\xc2\x37\xe2\x6d\xfa\xe2\xb0\x99\xe7\xf2\xbd\x9d\x9f\xa0\xd2\xac\x68\x16\xb6\x4f\x6c\x15\xf7\x60\xb5\x51\x76\x40\x6d\x13\x8f\x18\x1b\xc5\x33\xb2\x55\xb6\x77\x62\x6f\x4f\xf8\x57\xa5\xe5\xe8\x50\xd4\x36\xdf\x6d\x0d\x6d\xf3\x33\x4a\x8f\x95\x0d\x57\x0c\xc7\xd6\xff\xc4\x87\xe3\x2b\xdf\x68\x13\x83\x22\xf7\x6a\xdb\xe0\xc8\x02\xab\x5a\xf5\xde\x3b\xe4\x4b\xda\xf3\x1f\x9f\xed\x53\x45\xfc\xbd\x97\x02\x62\x03\x79\x02\xb4\x82\x08\xd3\xa7\x3b\x28\xeb\x12\x28\x4a\x01\x9f\xa0\xf7\xc2\x3b\x70\x5d\xf8\xd7\x4f\x3f\xfd\x44\x1f\xbd\xfa\x51\x8b\xcf\x25\xfd\xb5\xe2\x13\xf8\x3d\x9f\xc0\x81\x9c\xc0\xa8\xef\x0f\xea\x0b\x27\x88\xa6\x6d\x34\x83\xa3\x59\x9d\x51\x6e\xed\xa9\x1e\xeb\x5e\x26\xfe\x94\x32\xc9\x2f\x33\x5e\x8d\x30\xf2\xd7\x44\xb5\x00\xd2\xe5\xed\x86\x48\x5e\x17\x02\xc9\x6b\x8e\xb8\x5b\xec\x71\x5c\x48\xbf\xcf\x6b\xa0\xd8\x04\xad\xc0\xe1\xc4\x77\x8c\x3c\x0b\x24\x7c\xbc\x3e\x18\x1b\x6f\x3b\x47\x62\x57\xa7\x42\x86\xd8\xa0\x9a\x71\x54\x10\x6d\x75\x63\x8f\x0a\x80\xbb\x7c\xc3\x35\xab\x8c\xa9\x4a\xbf\x27\x6d\x91\x96\x8b\x16\xec\x2b\xbf\xeb\xa2\x87\x08\x29\xa2\xe2\x94\xd3\xe6\x60\x28\x4d\x01\x74\xd3\x96\x40\x37\xed\x34\x48\x9e\x0b\x84\xe4\xe9\x6b\x48\x37\xaf\x61\x7f\x7a\xbb\x31\x24\xcf\x6b\xf6\xac\xec\x0d\x98\xe5\xa7\x92\x84\x4a\xa3\x2f\x24\x5b\xff\x3e\x54\x3f\x78\x42\x19\xf0\x3c\xfa\xc2\x72\xe9\x1a\x5c\xa2\x1d\x79\x7f\x9d\x34\x20\x9f\xd7\x00\xe4\xd3\x87\xc4\x38\x36\x3e\x2d\x31\x3e\x1f\xd4\x3b\xbe\x80\x3b\x16\x6b\x0d\x5e\x89\x2f\x0d\x74\x85\xd1\x57\x05\xf5\xe4\x81\x73\xec\x75\xb4\x5c\x7a\xa2\xfd\x54\x42\x61\xfe\xa7\xe0\xba\x6e\xe5\x78\x67\x47\x2b\x70\x1c\x1f\xa5\x65\xee\x51\xea\xb8\x2b\x5f\xb7\xe8\x48\xc3\x1a\x9d\xae\x38\x62\x9a\x99\xb7\x2f\xdd\xeb\x65\x70\x2b\xe7\xf4\x79\x0b\xdb\x8b\x5a\x4c\xcd\xb0\x2f\xaf\x14\xc5\x32\x06\xcb\xd2\xdc\xf6\x62\x2e\x80\x0d\xe4\xda\x65\x2a\xb8\x4c\xf7\xb1\xd8\x35\xe9\xcd\x07\x7a\xf3\x6c\x63\x8f\xdb\xf5\xb4\x11\xa1\x2f\x22\x6c\x11\x56\xc7\x6f\x34\x72\x25\x88\x41\x20\xda\x58\x12\x31\xb1\xea\xec\x13\xc6\x0b\xbf\x28\x3b\x55\x4a\x87\xa1\xc7\xbd\x74\x8a\x7d\xa5\xdb\x4d\x30\x6a\xc4\xc8\x00\xb8\x78\xdd\x22\x5d\x12\x90\x01\x18\xde\xe9\x9a\x63\x98\x2a\x5a\x4a\x9f\x1e\x58\xa1\xcf\x9e\x44\x44\x47\x9b\x74\x98\xf9\x41\x59\x23\x5f\x05\x53\x98\xff\x6d\xe1\x42\xe1\x59\x75\x9f\x31\xc0\x08\x80\x18\x1c\x5c\x3c\x63\x58\xf7\x1d\xda\xc9\xed\x12\xeb\x70\xcf\x13\x95\xaf\xbb\xd8\x67\x13\xaa\x50\x4f\x03\x1b\x92\x00\x67\xf0\xc8\x5a\x5e\x8f\xbe\xfd\x86\x93\x01\x3d\x19\x78\x0d\xa9\x8a\x38\xd8\x1b\xa7\x47\xa8\x8a\x23\x98\x74\xa3\x55\x23\x5a\x17\x7a\x91\xf7\xb6\xd2\xc0\x50\x5e\xa8\x52\x1d\x30\x4a\x69\x94\x64\xda\xe8\x53\xc3\x5e\x57\xfa\xdc\x82\x33\xa2\xe3\xd3\xd6\x3c\x2d\x84\xef\x05\x2c\xd8\x4a\x36\x0b\x68\x16\x40\xdf\x36\xf1\x6f\xfd\xc9\x14\xe6\xc5\x80\xbf\xa9\x2f\xf7\xd9\xca\x39\xa4\xbd\x16\x3a\x93\x88\xa7\x6e\xb2\x10\xec\x2f\xae\x08\xc1\x1b\x58\x42\x6e\x86\x51\x8c\xf7\x50\x70\x5a\xcb\x23\xf5\x3d\xb5\x4f\xe0\x9e\xa6\x0a\x9a\xf5\xac\xb4\x9e\x0f\x5f\x7a\xcd\x9d\x9d\xd6\x6e\xf3\xa5\x37\x3c\x00\x83\x96\x33\xf6\x1a\x54\xeb\x44\xd3\x16\x27\x86\xd8\xf6\x00\x3b\x6d\x70\x3d\xae\x45\x4f\x1b\xc8\xc4\xd1\x5f\x72\xe3\xb5\x75\xd8\x12\xf6\x2c\x5a\xf0\x2c\xc8\xc4\xf8\x18\x4c\x9e\xf5\x68\x49\xde\x2b\xd3\x45\x19\x23\x50\x0d\xe5\x3a\x31\x88\x14\x77\x55\xed\x49\x78\x01\x09\x01\xc4\x44\x85\x60\x57\x11\x16\xc4\x20\xef\x0a\xa9\x01\x3d\x6a\x91\xdc\x70\xb2\x37\xae\x43\x18\xee\xdb\x51\xcb\x4f\xa0\xb5\x4c\xb8\xb2\xfa\x8d\xcd\x8b\x1b\xe1\x80\x1d\xac\x5c\x40\xdd\xe1\xae\x89\xb3\x79\xd0\xf2\x01\xfb\x90\x4a\x80\xe9\xef\x7c\xdc\xb0\x6f\x78\xe3\x71\x8d\x1d\x3d\x06\xa2\x4b\xd8\x0a\x3c\x4f\x81\xdb\x8a\x72\x4c\xfa\x4f\x06\xe0\x65\xee\x08\x3e\x6c\x86\xf4\xa7\x2f\x9e\xa7\x9e\xfc\xaa\xae\xea\x2b\x30\x45\x25\xbd\x74\x5b\xe8\xa6\xc3\x87\x65\x75\xd6\x99\x6c\x62\x3a\xd4\x12\x07\x5f\xea\x24\x8e\x74\x0d\x70\x4c\x81\xe1\x58\x4f\x5f\x1b\xf1\x51\xf3\x58\xdd\xbe\x09\x89\x29\x8c\x23\x31\xbd\x88\x23\x31\xfd\x5c\x5a\xd1\xb5\x9c\xb1\xd4\xb3\x8f\x91\xcd\x8f\x38\x86\x6d\xe9\x06\xfe\x69\x78\x4b\xe5\x4c\xbc\x25\xfc\x58\x6e\x06\xbb\x84\x78\x4b\xe4\xd0\xbb\x8e\xf4\x58\xa9\x7c\x46\xba\x62\x8d\xbc\xf2\xbe\xad\xc8\x11\x82\x33\x25\xb7\xc5\x76\x3a\x30\xd3\xbf\x41\x30\xe3\x25\x66\x71\x18\x06\xd2\xcf\x87\xb7\xd4\xde\x18\x6f\x29\xbe\x98\x44\x78\x4b\x8c\xaa\xa8\x1a\xf0\xf9\x89\xe3\x03\x10\x62\x3c\x28\xca\xe4\x92\x5c\xc2\xcc\x8e\xee\xfc\xec\xe9\x21\x99\xb8\x3a\x2c\xaf\x01\x86\xe9\xf3\x35\x20\x9a\xc4\x1b\x79\x2a\xbe\xd3\x37\xfa\x49\x01\x9c\xfc\x4d\xa0\xea\x78\x7a\xf7\xde\xc2\xe3\x79\x4b\x9c\xac\x5c\xe4\x7d\xef\x2d\x79\xd6\x8d\x3c\xd1\x97\xd8\x6e\x71\xcc\x37\x0d\xeb\x2d\xad\x37\x46\x28\x41\x10\xc6\x23\x24\x41\x16\x38\x21\xbc\x96\x4b\xf0\x5a\xb2\xf7\x00\xc3\xe1\x39\x20\x55\x97\x5b\x94\x41\xd9\x46\xa4\x29\x86\x4e\xd5\x96\xe8\x54\x1d\xe1\x8a\x65\x03\x76\x59\x5f\xfa\x13\xaf\xa7\xc0\x53\xf5\xe3\x57\xf9\xbe\xfe\x50\xab\xa3\x31\xdd\x1f\x6a\xf5\x34\x66\xe3\x46\xa5\x42\x4e\xa5\xe2\x46\xa5\x22\x4e\xa5\x42\xbe\x58\x11\xa7\xbe\x23\x6e\x94\x95\xbe\x05\x7a\x7b\xc4\xe7\xc8\xda\x6e\x63\x3e\xb9\x2e\xeb\x0d\xdf\x5e\xdb\xca\xa6\x92\x85\x3c\xd5\xff\x8e\xc8\x53\xfd\xcd\x90\xa7\xfa\xff\x00\xf2\x94\xe1\x9a\x8d\x6c\x77\xb4\x29\x09\xc4\xee\x8e\xc6\x53\x40\xcc\x9d\xee\x8e\xe6\x05\x68\xc1\x6c\x77\xb4\x28\x43\xc2\x54\x77\x74\x98\x97\x50\xc5\x4c\xe8\x43\x84\xab\xf0\x08\x97\xd4\xc8\xab\x06\x08\xb5\xca\xaf\x8e\xfa\xeb\xa9\x12\xe5\x25\x58\xd2\xc8\x95\xf9\x67\x23\x37\x3f\xf6\x93\x19\x40\x2e\x45\xe8\x60\x54\x2f\x17\x06\x49\x6f\x2d\x78\xa9\xed\xed\xba\xbe\xf0\x3b\xdb\x75\x14\x77\x25\x8d\x0c\x1e\xf0\x45\x24\x4c\xbc\xe8\x93\xe4\xa2\xcc\x87\x8d\xf9\x64\x9a\xcb\x31\x1c\xe1\x06\x8c\xa4\x63\x38\x8e\x20\xd0\x50\xb2\x99\x47\x6c\xe7\x5e\x94\xe8\x43\x03\x46\xbb\x16\x7e\x6b\x2d\xa2\xe4\xe7\xb1\x8c\x26\x04\xf1\x53\x0d\xdc\x8e\xc0\x5f\xc8\x35\xab\xbd\x80\x40\xef\x05\x52\x85\xc7\xca\x86\x5a\xd9\x25\xf2\x89\xb7\x92\x85\x38\x9a\x35\x96\x39\xd8\x2f\x55\x4a\x64\x1e\x01\xa6\x28\x62\x8c\x1f\xc5\x92\x1c\x18\x36\x39\x5d\xe9\xf4\x95\x35\x89\xf7\xa2\x81\x40\xe2\xb2\x53\x4d\xf8\xc9\x2f\xde\xc2\x53\xd8\x04\x4b\x8b\xbe\x21\x93\x84\x63\x7c\x6a\x73\x7d\xfb\x64\x42\x80\x97\xc7\x6a\xe7\x6f\xb3\x02\x73\xee\x2a\xa0\x17\x9f\x92\x99\xfb\x7c\x3f\xe1\x64\x9f\x30\x19\xf5\x56\x87\x57\xd2\x3c\xb1\x7c\x5e\x08\x0f\x6c\x03\x14\x86\xdb\x4d\xfc\xaf\xbc\x21\x95\x5e\xa5\xe3\x52\xb5\xe3\x4e\xbd\xb4\x76\x45\xaa\x22\xa4\x7b\x03\xa6\xcf\xf7\xd1\xb7\x30\x83\x4f\xe4\xf7\x30\x07\x4f\x83\x14\xdf\xe3\x3a\x3c\x8b\x8d\x86\x7b\xa9\xd4\x09\x7a\x79\x2a\x0d\x8c\x8a\x16\x51\xd0\xc0\x2a\xd6\x41\x0d\x53\x4c\x95\x6b\x9c\x21\x8c\x9a\xbe\x41\x55\xab\x05\x1b\x8a\xc1\xde\x90\xbe\x3b\x54\x90\x4c\x8d\xc1\xa7\x9a\xd0\x30\x9b\x11\xba\xeb\x50\xa9\xb4\xd9\x0d\xc2\x16\xd5\x12\x0e\x68\xd7\xb8\x81\xc1\xdd\x1b\xd6\x07\xbe\x21\x48\xba\xf0\xaf\xd3\xd3\xd3\x82\x35\x58\xbc\x49\xd7\xad\x1b\x8b\xf1\x39\x60\x5d\xfb\x74\xe7\x53\xd9\x15\xfa\x07\x6f\x1f\x5c\x02\xdf\xe0\xd1\x63\x83\xf9\x13\x6e\xf2\xbd\x5f\xc0\xbc\x11\x97\xef\xe5\x33\x60\x4b\x7f\xbc\x61\x75\xc0\xdc\xc7\xc7\xee\x27\x3a\x55\x4e\xf4\x09\x22\xfa\x59\x97\xf4\xcb\xc5\x4c\xae\x08\x74\x18\x37\xc9\xaa\x35\xe9\xc4\x19\x69\xa6\x09\x31\xf1\x8d\x06\x89\xcc\xd8\x61\x9f\xe9\xe5\x6d\xf6\xd1\xd1\x83\x84\x7f\x8a\x07\x09\xa7\x44\x17\x43\xf0\x71\x4f\xd7\xee\xa3\x37\xc2\x1a\x9b\x6b\xa1\xcc\x65\x83\xb2\x3e\x8b\xae\x01\x0f\x2b\x7a\xc9\xf6\xd9\xdd\xbc\xbf\xa8\x69\x20\x59\xd3\x9b\xc9\x4c\x70\x23\xf3\xc4\x3d\xfa\x72\xcc\xc4\xbc\x9e\x8e\xe8\x69\x18\x1c\xae\xc6\x3b\xc9\xb5\x1a\x18\x2f\x86\x51\xfa\x4f\x13\x6a\x41\xde\xfb\xe1\xb0\x13\x1a\xd9\xa8\xa5\x8b\xb5\x44\xe4\x12\x2a\x7b\x47\xfa\xf4\x5d\x5d\xb8\xec\x95\x19\xb6\x1e\xd3\x08\x6e\x65\xac\xa5\x60\x48\xa5\x49\xc6\xa1\x98\xd1\x58\x48\x6b\x2e\xb1\xce\x08\x98\x25\xf3\xd7\x81\xab\x61\x45\xc5\x78\xa4\x1a\x25\x7a\xa6\x28\xe9\xde\x77\xd7\x32\xad\x28\x5b\xe9\x5a\xa6\x35\x58\xd7\xce\x0a\x69\x0d\xd4\xcd\x12\x76\xad\x78\x65\xe9\x42\xbf\x09\x76\x4c\x13\xfa\x55\x99\x1f\xcf\x90\x56\x4c\xe6\x8f\x8b\xfc\xfc\x3c\x2d\x17\x13\xf9\x93\x12\xbf\x28\x42\x5a\xba\xc4\xaf\x0b\xfc\xad\x27\x8e\x3f\xcd\x89\x55\xc5\x17\xc5\xdc\xc1\x88\xad\xc8\x28\x21\x65\xce\x81\xc2\x59\xd8\x8a\xc9\x9f\x2d\x26\x4f\x76\x33\xd3\x9a\xbb\x4c\x04\x0a\x6c\xc2\x56\x9b\x74\x41\x84\xee\x59\x85\xad\x0e\x16\x48\xe3\x1d\xec\x1f\x74\x25\xef\x60\xd7\xb2\x29\xf7\xd3\xe2\x0e\xb7\x5b\x0f\x0f\xdb\xad\x2c\x70\x9a\x2e\x84\xe5\x75\xf3\x81\xd3\x84\x5e\xd7\x1e\x7c\xa7\x3e\x1b\x21\xf7\xb5\x60\x01\x0e\x1f\x21\xf7\x99\x82\xee\x86\xb4\x45\x35\xe8\x6e\x90\x11\xf7\xc6\x9b\xe2\xe1\x69\xe1\x46\xc9\xc2\x82\xfc\x2c\x90\x01\x1c\x3d\x36\x24\x23\x6f\xa8\x07\x70\x68\x57\xe3\x11\x1c\x2d\x64\x1b\x57\x1e\xe1\x48\xb2\x91\x71\x5f\x5e\x62\xdf\x3f\xb2\x79\x23\xbc\xc4\xdb\xa0\xb3\x42\x44\xfe\x01\xdf\xca\xd4\xb0\xcf\x05\x85\x7d\xcc\x32\xe2\x22\x02\x87\xf9\xb0\x4a\x02\x8e\x82\xd3\x64\x48\x34\xc2\xbd\x94\x4e\x78\x6c\xa6\x8f\x86\xfd\x50\x97\x1b\x78\xcf\x3e\x76\x47\x77\x30\xe6\xec\xd7\x39\x55\x7d\x19\x5e\x56\x2e\x8f\xc1\xc0\xb8\x05\x85\x11\xf4\x14\xb7\xe7\x9f\x08\xbb\x50\x59\x8f\x9f\xb0\x9a\xec\xd5\x04\xd9\xcd\xf8\x50\x84\x3b\xdc\x43\x1f\x6f\x1d\x5f\x00\x94\xc3\xb9\xa7\x97\x1f\x01\x52\x11\xbe\x6a\xf2\xfc\x44\xba\x91\x98\x99\x44\xd6\x26\xaa\x81\x8d\x42\xb3\x2e\xa7\xb4\x00\xaf\xb5\xa5\x89\xc8\xc7\x89\x3b\x8c\x96\xe7\xc9\x26\x8e\x9e\x0a\x0a\x1e\x4a\xdd\x94\x1d\x82\x29\x5b\xd8\x06\x9a\x4f\x21\x0b\xa4\x1b\x46\xad\xa8\x94\x79\x8c\xb1\xd6\x6d\x7a\xad\xbd\x8d\xe1\xc2\xd0\x11\x67\x16\xa4\xae\x9b\x43\x40\x30\xe3\xc3\x10\xb1\x57\xf5\xff\xfb\xf2\x55\x1e\x01\x46\x0e\xe1\x0e\xf4\x80\x57\x28\xef\xfd\xb2\x57\x2e\xac\xe8\x9e\xf4\x7f\x03\x00\x00\xff\xff\xdc\x02\x04\xb3\x7b\xeb\x02\x00") + +func uiJsLibsNvd3171NvD3MinJsBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsNvd3171NvD3MinJs, + "ui/js/libs/nvd3/1.7.1/nv.d3.min.js", + ) +} + +func uiJsLibsNvd3171NvD3MinJs() (*asset, error) { + bytes, err := uiJsLibsNvd3171NvD3MinJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/nvd3/1.7.1/nv.d3.min.js", size: 191355, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsAppTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x92\xcf\x6e\xe2\x30\x10\xc6\xef\x79\x8a\x91\x4f\x41\x62\xe3\x7b\x58\x56\x0b\x12\x42\x7b\xd8\xaa\x6a\xa5\x5e\x91\x89\xa7\x89\x2b\x6c\x47\x63\xa7\x14\x55\x7d\xf7\x1a\x43\xda\xa4\x29\x28\xcd\xc1\xff\xf2\xfb\x3c\x9e\x6f\x86\x73\x70\xb6\xa1\x02\x73\x10\x75\x9d\x79\x97\xf0\x70\xf4\x9b\xf0\x11\x09\x4d\x81\x50\x0b\x5f\xcd\x99\x3f\xd4\xca\x94\x8e\x6b\xe5\x2b\x52\xbb\xa7\x8f\x55\x26\x83\x86\x01\xff\x93\x7c\x2f\xac\x45\x89\x8e\x97\x24\xea\xaa\x05\xaf\x70\xda\x1a\xe5\x2d\x8d\x20\x8d\x95\xe8\x46\x70\x84\xce\x6f\xf0\xa5\xde\x59\xc2\x31\xf7\xba\x10\xfe\xf3\xe2\x40\xc2\xa2\xf1\x95\xa5\x1c\x16\x46\x12\xee\x61\x69\xcd\x33\x1a\x4f\x08\xa9\x30\xf2\xb0\xb5\xc6\xfd\x2d\xb5\x08\x4e\x14\x56\x4f\xba\x82\x25\x09\x0d\x6b\x6a\x0c\x2a\x82\x74\x1b\x76\xe5\x69\xd3\xe5\x13\x9d\x91\x6d\x3c\x66\x3a\x24\x04\x73\x60\x95\x70\x15\x9b\xb5\xc7\xa9\xb4\x45\xa3\x43\xbc\xac\x44\xbf\xda\xe1\x71\xb9\x3c\xfc\x93\x29\x23\x6b\x3d\x9b\x4c\x81\xc5\x14\x7f\xb5\x29\xb2\x29\xbc\x26\x10\x3e\x76\x32\x9d\x85\x87\x4b\xad\xcc\x83\xc2\xbd\xcb\xd6\xb1\x0e\xb7\x21\xd3\xe9\x19\x3a\x3b\xde\xc7\xfe\x9f\xcb\xd0\x05\x8f\x86\xf7\xa9\x9b\x58\x82\x38\x7e\x05\xdd\x68\x92\xe7\xc7\x71\xa3\xe4\x25\xc5\xe0\xea\x1f\x29\xfa\xde\xf4\x04\x77\xe1\xd7\xaa\x6d\x8c\xae\x26\xb6\x40\x9f\xbd\x3f\x75\x45\x9c\x06\xa8\xbb\xcc\xba\x01\xcc\xf3\x38\x0d\x9e\x7f\x3d\xc2\x58\x55\xf2\x36\x99\x25\xef\x01\x00\x00\xff\xff\x27\x3f\x35\x45\xd3\x03\x00\x00") + +func uiTsAppTsBytes() ([]byte, error) { + return bindataRead( + _uiTsAppTs, + "ui/ts/app.ts", + ) +} + +func uiTsAppTs() (*asset, error) { + bytes, err := uiTsAppTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/app.ts", size: 979, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsComponentsMetricsTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xa4\x58\x6b\x8f\xdb\xb8\x15\xfd\xee\x5f\xc1\x1a\x08\x56\x0e\x66\xe9\x09\x06\xed\x07\xa5\x93\xb6\x48\xb6\x8b\x00\x3b\xbb\x68\x53\xa4\x2d\x8a\xa2\xa0\x25\xda\x66\x86\x12\x55\x92\xf2\xa3\x03\xff\xf7\x9e\x4b\x4a\xf2\x43\xb2\x3c\x45\x89\x20\x63\x49\x97\xe7\x92\xf7\x79\xc8\xf9\x9c\x39\x53\xdb\x4c\xa6\x2c\x33\x45\x65\x4a\x59\x7a\x37\x2f\xa4\xb7\x2a\x73\xdc\xbb\xc9\x1c\x12\xbf\xb5\x72\x29\xad\x2c\x33\xc9\x2a\xe1\xd7\x8f\x53\xce\xe7\x7e\x5f\xa9\x72\x05\x51\xe5\xd7\x56\xe9\x6f\xdd\x2f\x9e\x63\xda\x94\xcd\x3f\xdc\x9c\x9a\x3f\xe0\xdf\x6d\xf1\xc2\xe4\x52\xbb\xb9\x57\x85\x74\xd2\x2a\xe9\xda\x09\x93\xc9\xfc\xed\x5b\x36\x61\x6f\xd9\xc7\x6e\xe9\x2c\x97\x4b\x55\x4a\xc7\xac\xac\x9d\x58\x68\x79\xb2\x2d\xb6\x5d\xab\x6c\xcd\x0a\xb1\x67\x0b\xc9\x6a\x27\x73\x66\x4a\x56\xd4\xda\xab\x4a\x93\xc2\x95\x74\x77\x04\x67\xec\xf1\x6d\x50\x4b\x72\x7e\x2d\x99\x13\x45\x94\xe3\x10\x9b\x4f\xb0\xb2\x1a\x22\x27\xda\x5f\x26\x0c\x03\xcb\x0a\x7f\x01\x55\x6e\x58\xb6\x16\x16\x9f\x1a\xe1\xdc\x00\xae\x34\x9e\x65\xb5\xc5\x46\xbd\xde\xb3\xb5\xd8\x48\x26\x18\xcc\x22\x5d\x66\x55\xe5\xe3\x26\x94\x57\xa6\xe4\x0d\xd0\x3c\xfc\xcd\x65\xa6\x85\x95\x6c\x23\x2c\x90\x53\x51\xee\xdf\x4f\x2e\x35\x3e\x45\xdf\x61\xdf\xa5\x17\xaa\x74\xa7\x06\x08\x7b\xf6\x86\xe5\xca\x55\x1a\x66\x68\xfc\xcc\x72\xe1\xc5\xb9\x26\xb9\xab\x8c\xf5\xed\xa2\x5b\xcc\xb8\xbd\x33\x85\x51\xe9\x4f\xb0\xf9\x8f\x56\x54\xeb\x16\xda\x61\x43\x1a\x2f\xd9\x2a\xbc\x35\xcb\x60\x3f\xd2\x03\xcf\xf8\xda\x96\x58\xc8\xd2\x9a\x82\xf6\x0d\x0b\x9f\x62\x45\x27\xb3\x7f\xd7\xd2\xee\xf9\xc9\x87\x79\xf7\xfb\x7c\x71\x47\xdd\xc7\xe5\xf5\x96\x18\xa1\xbf\x2a\xb9\x7d\xa2\x70\x62\xca\x85\x05\x85\xd8\x62\x4b\x38\x5c\x30\x57\xc9\x4c\x2d\x55\x76\x02\xf8\x3d\x53\x25\x13\x79\x1e\x5c\x01\xc3\x5d\xe2\x11\xc4\x42\x64\xcf\x08\x67\xf6\x27\x5a\x2f\x33\x8b\x6f\x32\xf3\x77\x4c\x79\x26\xb4\x33\x08\x36\xd5\xb8\xc1\x40\xd8\xb2\x4a\xda\xef\x3b\x87\x5c\xc2\xb5\x6e\x31\x15\xe9\x73\xfc\xe2\xfb\xfc\xec\x19\xb8\xd2\x2e\x05\x32\xe5\xb8\xab\x73\x03\xd0\x08\x56\x4c\xc3\x57\xc7\x1b\x37\xf2\xb0\xd4\x27\x51\x22\x90\xed\xfb\xde\x14\x2d\x9c\xff\xa1\x32\xd9\x3a\x2d\xeb\x62\x31\x24\xf1\x2c\xf7\xbf\x1b\xfc\x78\x98\xdc\xf2\xc0\x47\x44\xa5\x35\x5a\xc3\x14\x5d\x80\x06\x2b\xd6\xfa\x99\xa2\x64\x59\x97\x19\x6d\x5e\x68\xe5\xf7\xac\x94\x32\x8f\x11\x8b\x54\xc9\x31\x47\x5c\xe2\x75\xbe\x1a\x37\x16\xd2\xc6\xb9\x53\xe5\x7d\x4b\xa1\xfa\x94\x9b\xfc\x21\xa6\x2b\xef\x7d\x0e\xaf\xd9\x23\x64\x78\x2c\x48\x9c\xc2\xfb\x23\xbd\x4d\x66\x3d\x69\x1a\x7c\x97\x24\xf9\x8c\x3d\x7e\xc0\x36\xb6\xec\x93\xf0\x32\x41\xad\xa3\x72\xe2\x45\x51\xfd\xab\x14\xa5\x71\xf3\x77\xfc\x5e\xfe\x66\x76\x05\x60\xdf\x02\xe4\x7c\x23\x74\x2d\x87\xc5\xe6\x73\x1e\x62\x41\xc0\x70\x1b\x99\x78\x7b\x4d\x90\x23\xfd\x3f\x1f\x25\x7f\xac\x15\xf6\x81\x4d\xc4\x29\x6c\x78\x8e\x5b\x9b\xed\x4f\x72\x05\xf3\x8f\x21\x93\xd4\xdf\xff\xb0\x53\xee\x96\xd0\xdf\x6e\x09\xed\xbe\x64\x42\xc3\x52\x0f\xc1\x54\xdc\x85\xa7\xd9\xec\xfd\xa4\x27\x0e\x33\x7a\x64\x6b\x66\xb4\xb1\x0e\x9e\xc1\x94\x20\xcd\x33\x98\x7a\x65\xec\xfe\xdd\x7d\x32\x34\x0f\x71\xe7\xb0\x80\xcc\x1b\x9b\x54\xf5\x42\x03\x63\x53\xa4\x5d\x12\xcd\x06\x62\x83\x06\xe2\xe3\x8b\xf4\x6c\x47\x1b\x40\xcd\xca\x9e\x1d\xc5\x65\x65\x0d\x52\x1a\x45\x1c\x35\xa4\x10\x03\x71\x43\xc3\xaf\x95\xe3\x31\xae\xc2\xf4\x41\xa1\xb0\x7b\xc2\xfd\x63\x40\xea\x2c\x10\x81\x93\xef\xde\x7c\x4e\xdf\x3c\xa5\x6f\xbe\x7c\x77\x25\x5a\x3a\x13\x3f\x89\xdd\x93\x2a\x93\x25\xea\x8f\x9c\xf5\x93\xf7\xd0\xb7\x48\x2f\x4f\x69\xa0\x10\xaf\x4d\xad\xf3\x3f\x87\xcc\xfb\x74\xac\xdc\xd8\x37\xdc\xc7\x54\x28\xe9\x68\x46\x30\x07\x05\x78\xa8\xed\x5d\xa6\x0e\x18\xe2\x22\x25\x69\x5c\x6a\x48\x66\xe9\xc2\x18\x2d\x45\x79\xc5\x09\xd4\xf8\x24\xd5\x26\xf8\x3b\x58\x75\x53\xf0\xd8\x28\xc2\xdb\x2b\x99\x88\xa5\x26\x71\xd6\x87\x6e\x56\x57\xe5\xae\xf9\x9b\x46\x4f\x18\x6a\x03\xd0\xd5\x19\xd1\x44\xc1\x42\x7d\xd3\xd3\x38\x0c\xbe\x6d\xa6\x05\x9f\xbd\xd6\x65\x03\x09\xfb\x16\x5c\xc2\x0d\xba\x2a\xb6\xe1\xe0\x23\xf8\x4b\x6c\x84\xd2\x81\x1d\xfd\x8f\x0e\x6b\xe0\x6f\xfa\xa9\x35\xc3\x90\x8b\xe0\x84\xfb\xff\x67\x8b\xb9\x15\xdb\xd8\x9e\x57\x92\x08\x9f\xb2\xe8\xb8\x4c\x64\x99\x74\x21\x25\x03\x51\xdb\xac\x98\xd4\xb2\x40\x93\x6d\xb9\x47\xb0\xc0\x10\x9e\x58\xa2\x24\x52\xc3\x26\xc3\xe4\x4d\xbf\xf9\xf4\xcb\x13\x67\x7f\x0d\x2c\x91\xfd\xfc\xf5\xd3\x43\x60\x4d\x50\x7c\xa4\x31\xc4\x5e\x86\xe0\x48\xe0\x92\xbb\x8c\x58\xf4\xb8\x9b\x47\x04\x69\x5c\x72\xfa\x43\xfc\x0b\x1a\xe1\x3e\x13\x0f\x44\x37\xfc\x8f\xcc\x5b\x9b\xdf\x85\xd6\x29\x77\x9e\x08\x60\xe8\x0f\xc3\x4e\xa0\xb0\xff\xd5\x19\xc2\x58\xac\xa3\xb1\x61\xf7\x61\x29\xc9\xb1\x60\x0d\x14\x10\x1a\x07\xd6\xf7\x57\xab\x32\x4c\xee\x67\xf6\x98\x6e\x4a\xeb\x58\xe7\xbc\xcc\x43\xfc\x3e\xb2\x7f\xfc\xf3\xaa\x38\x4a\xf1\x5f\x60\x65\x2b\x1d\x58\x3a\x02\x2a\x16\x61\xf0\x85\xad\xd2\x9a\xb8\xbd\x2c\x2a\x3c\x61\x31\x08\x50\x69\xad\xb1\x63\x50\x26\x03\x15\x97\x39\x67\x28\xbc\x60\xe6\xdb\x3b\xb6\x95\x11\xe9\x5b\xed\x7c\x47\xca\xc8\xaf\xd3\x9f\x0d\x35\x72\x31\x1d\xc3\x43\x83\x77\x60\x56\xac\x2e\xbd\xd2\x84\x05\xd6\xae\xf2\x78\xd8\x20\x90\xb8\x5a\xb6\x25\xcc\x8e\x8a\x8f\x01\x86\x1d\xb4\xb0\x97\xac\xf0\x64\x74\xc6\xef\x32\xae\xb5\xd0\x98\xed\x69\x5c\xda\x7e\x18\xa5\xf9\xe1\x78\x21\xaa\x96\x99\x8c\xe3\xd2\x68\x4a\xc1\x6d\x41\x1a\x81\xe6\xb8\x14\x84\x87\x72\xac\x32\x20\x36\x74\x24\x7b\xc5\x00\x27\xa5\x69\x25\x4e\x68\xaf\x9b\x10\x78\x43\x7a\xc2\x09\x79\x64\x12\x49\x04\x99\xbd\x0e\x05\xa7\x31\x91\x52\x91\x7d\x9d\xf8\x12\x61\xf5\x4b\x25\x32\x90\xdb\x94\xbf\xbb\x3d\xe7\x30\x9c\x7e\xdd\xe7\x2b\xe9\x19\xbe\x5d\xfd\x42\x44\x09\x95\x26\xf3\x6d\xbd\xb9\x4e\x28\x68\x90\x2b\xea\x22\x39\x8b\x91\x11\x0a\xe2\xad\x28\x5d\x38\x30\x21\x62\xf2\xda\x8a\xf0\xf3\xd7\xf7\xf7\x37\xb4\x80\xba\xe9\x57\x14\x9e\x81\xce\x71\xfe\x74\xf6\xd8\x9c\x14\xdb\x53\x45\x28\x9c\xd1\xdb\x49\x60\xf1\xe3\xb4\xaf\x09\x5d\x62\x37\x1f\x2f\x26\xce\x46\x0f\x3e\x97\x6a\x37\xd0\x92\x64\xde\xea\xf4\x88\x33\xa4\x90\x32\x98\xc4\x78\xd7\x67\xaf\x65\x6e\xb3\xb4\x22\x99\x86\x73\x48\x68\x6e\xd3\xbb\x61\x0e\xdf\x8e\x17\xe7\xf7\x5a\xa6\xd3\xad\xca\xfd\x3a\x85\x47\xaa\xdd\xfb\xb5\x54\xab\xb5\x4f\x1f\xc2\xc3\xf4\x30\x1e\x91\xd0\x86\xc6\xca\x5b\x65\x2f\xb0\xe6\x52\xad\x52\x16\x96\xdc\x35\xb2\xc3\xb8\xa3\x87\x28\x29\x7a\x35\xfa\xec\xad\x9d\x42\xe5\x54\x1b\x91\xe3\xb4\xcd\x39\x9f\x0e\x72\xdb\xf3\xa7\x5b\xa7\xd1\x0c\xd9\xeb\xc1\x8f\x70\x20\x10\xa8\xd6\xf8\x4d\xf7\x16\x0e\x0a\x74\xfb\x16\xe7\xeb\x86\x40\x1c\xaf\x05\xae\x1e\xe0\xe3\x05\x53\x77\x05\xd2\xf1\x84\xc8\x49\xea\xaa\xd2\x0a\x7d\xe0\xec\x18\xde\xdc\x18\x5c\x1e\x5f\x2f\x91\x7f\x5f\x09\x2b\x0a\xaa\x72\xa1\xf5\xd1\xdf\xf8\x46\x35\xb7\x3a\x8b\x3d\x6b\x2e\xe0\x02\x07\xc2\x19\xef\xb9\x81\x76\x74\x89\xa1\x95\xeb\x2e\xc0\x32\x74\xc5\x05\xb5\x4f\x61\x91\xab\x2b\xb4\xbe\xd1\xb3\x73\x2f\x87\x82\xd1\x92\x9b\x37\x0b\x77\xa7\xf7\x04\xb3\xbe\x73\xa9\xe9\x9f\x1e\xbc\xd0\x77\x5e\x8e\x77\x0f\xf7\x77\xcd\xdd\x45\xf8\xbf\x9f\xf6\x94\x2a\xc0\xbf\x96\x1f\x68\x5e\x64\xa3\x47\x5a\xc3\xad\x38\xa1\xd1\x46\x19\xef\x7c\x9b\x74\xfe\xbe\x03\xda\x6c\x32\x3c\x3f\xfe\x3a\x4c\x0e\x93\xff\x06\x00\x00\xff\xff\x8c\xe7\x71\x33\x4a\x15\x00\x00") + +func uiTsComponentsMetricsTsBytes() ([]byte, error) { + return bindataRead( + _uiTsComponentsMetricsTs, + "ui/ts/components/metrics.ts", + ) +} + +func uiTsComponentsMetricsTs() (*asset, error) { + bytes, err := uiTsComponentsMetricsTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/components/metrics.ts", size: 5450, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsHeaderTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x6c\x53\x41\x6f\x9b\x4c\x10\x3d\xc7\xbf\x62\x3e\x5f\xe2\x48\xfe\x20\x8d\xd4\x4b\xa2\x4a\x21\xb1\x9b\xa2\xa6\x58\x32\xa4\x51\x8e\xcb\x32\x86\x6d\x61\x97\xce\x2e\x21\xfc\xfb\xce\x02\x4e\x13\xb5\x3e\x79\x66\xdf\xbc\x79\x6f\x66\x08\x43\xb8\x43\x8d\x24\x1c\x16\x90\x0f\xe0\xac\x0c\x16\x9c\xb4\xa6\x23\x89\x97\x20\x8d\xfc\x49\x46\xc8\x2a\x24\x9c\x72\x61\x67\x43\x67\xc3\x20\x18\x71\x9b\x1d\x24\xbb\x0c\xb6\x9b\x38\xfb\x8f\x63\x9f\xba\x35\xed\x40\xaa\xac\x1c\x5c\x9c\x7f\xf8\x08\x59\x85\x9c\x9a\x59\x20\xea\x5c\x65\xc8\x06\x33\xf6\x5e\x49\xd4\x96\x5b\x77\xba\x40\x02\xc7\xd8\xa8\x65\x1c\x1e\x5f\xd6\xf0\x1d\xc9\x2a\xa3\xe1\x22\x38\x87\x95\x07\x2c\xe7\xa7\xe5\xd9\x95\xa7\x18\x4c\x07\x8d\x18\x40\x1b\x07\x9d\x45\xe6\x50\x16\x0e\xaa\x46\xc0\x17\x89\xad\x03\xa5\xd9\x45\xd3\xd6\x4a\x68\x89\xd0\x2b\x57\x8d\x7d\x66\x96\xd1\xc5\xd3\xcc\x61\x72\x27\x18\x2e\xb8\xa0\xe5\xe8\xf0\x16\x08\xc2\xcd\xa2\xfd\xaf\x72\xae\xbd\x0c\xc3\xbe\xef\x03\x31\x0a\x0e\x0c\x95\x61\x3d\x41\x6d\x78\x1f\xdf\x6e\x93\x74\xfb\x3f\x8b\x9e\x8b\x1e\x74\x8d\xd6\x02\xe1\xaf\x4e\xd1\x34\x6b\xd1\xb2\x28\x29\x72\x96\x5a\x8b\x1e\x0c\x81\x28\x09\xf9\xcd\x19\x2f\xba\x27\xe5\x94\x2e\xd7\xbc\x8b\x83\xeb\x05\xa1\xa7\x29\x94\x75\xa4\xf2\xce\xbd\x9b\xd9\x51\x22\x3b\x7f\x0b\xe0\xa9\x09\x0d\xcb\x28\x85\x38\x5d\xc2\x4d\x94\xc6\xe9\xda\x93\x3c\xc6\xd9\x97\xdd\x43\x06\x8f\xd1\x7e\x1f\x25\x59\xbc\x4d\x61\xb7\x87\xdb\x5d\xc2\x5b\x8c\x77\x09\x47\x9f\x21\x4a\x9e\xe0\x6b\x9c\x6c\xd6\x80\x3c\x31\xee\x83\x2f\x2d\x79\x07\x86\x3c\x85\xf2\x03\xc5\x22\x80\x14\xf1\x9d\x84\x83\x99\x24\xd9\x16\xa5\x3a\x28\xc9\xd6\x74\xd9\x89\x12\xa1\x34\xcf\x48\x9a\x1d\xf9\xfa\x16\xa9\x51\xd6\x2f\xd6\xb2\xc6\x02\x6a\xd5\x28\x27\xdc\x18\xff\xe5\xeb\x4f\x97\xe8\x81\x95\xef\xd3\x71\xbf\x9e\xc6\x77\xd3\xa2\x41\xeb\x97\x25\x8d\x9e\xac\xbf\x39\xb0\xf9\xde\x2e\xe1\x86\x44\x03\x77\xd4\x69\x54\x04\xab\x9c\xa3\xa0\x9c\xa2\xeb\xb2\x11\xaa\x0e\xf8\x46\xce\xb8\xe2\xe4\xc4\xaf\x37\xd2\x05\x61\x0f\x37\x46\x3f\x23\x93\x22\xac\x58\xe4\x90\xb3\xba\x7f\xa1\xbf\x09\xe7\x20\x23\x21\x07\x58\x35\xfc\xff\xfa\xf5\xab\xa9\x45\x6e\x8f\xd8\xc5\xe2\x59\x10\x54\x28\xd8\xdd\x06\xad\x24\xd5\x7a\xbf\xf0\x09\x4e\xb3\xd7\x9b\xf5\x1b\x44\xab\x4a\x3d\x9d\x81\x28\x8a\xd1\xf7\x54\xe5\x33\x3e\x72\xa6\x3d\x1e\x27\x73\xe7\xca\x83\x7f\x4c\x04\xc1\xe9\xd5\xe2\x77\x00\x00\x00\xff\xff\x05\xd5\x4c\x27\xd4\x03\x00\x00") + +func uiTsHeaderTsBytes() ([]byte, error) { + return bindataRead( + _uiTsHeaderTs, + "ui/ts/header.ts", + ) +} + +func uiTsHeaderTs() (*asset, error) { + bytes, err := uiTsHeaderTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/header.ts", size: 980, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsNode_statusTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xdc\x19\xe9\x6e\xdb\x36\xf8\x7f\x9e\x82\x10\x60\x40\xca\x12\x39\xd9\x80\x01\x53\x8e\xad\x6b\xd2\x0b\x39\xba\xb8\x2b\x3a\x18\x46\xc0\x58\x74\xcc\x4d\xa2\x34\x92\x72\xeb\xa5\x7e\xf7\x7d\xa4\x28\x4b\x96\x68\xc9\x0a\x36\x60\x18\x7f\xd4\x0a\xf9\xdd\x37\xd9\xe1\x10\x89\x24\xe3\x53\x12\xa0\x38\x09\x49\x24\x86\x0c\x7e\xee\x85\xc4\x32\x13\xbe\x14\x7b\x43\x80\x38\xe5\x64\x46\x38\x61\x53\x82\x52\x2c\xe7\x67\x8e\xef\x0f\xe5\x32\xa5\xec\x51\x0c\x63\x2a\xe7\x9c\x46\xbf\xaf\xbf\xfc\x10\xd0\x1c\x34\x3c\xb7\xa3\x2a\xca\xa2\x84\x40\x2f\x32\x39\x4f\x78\x80\x7e\xe6\x38\x46\xaf\x79\xc6\x08\xe5\xc8\x7d\x80\xbf\xfc\xc7\xfc\xaf\x9f\x1e\x63\x0c\x64\xa7\x49\xec\xed\xed\x81\x90\x59\x44\xd0\xb5\x96\x15\x3d\xed\x21\x58\xe4\x4b\x9a\x70\x89\xcc\xd1\x0d\x1c\x8d\xb4\xf8\xe6\x58\x2d\x1a\x6b\x90\x94\x27\x31\x15\x04\x9d\xa1\xfb\x42\xda\xeb\xfc\xf7\x7d\x7e\x72\xb2\xb7\x46\x31\x54\x29\x93\x84\xcf\x30\xc8\xff\x22\x0c\x39\x11\x55\xaa\x6a\x31\x22\x3f\x27\xfc\x8f\x00\x09\xc9\xc1\x20\x27\x1b\x87\x38\x47\x69\x1e\xae\x5a\xf8\x28\x05\x2e\x88\x98\x72\x9a\x4a\x9a\xb0\x3a\x3f\xe5\x1e\x1a\x06\x88\x65\xf1\x03\xe1\x5b\xf8\x19\x59\x6b\xa7\x52\x72\x38\xc3\x6c\xb9\xbb\x20\x0d\x4b\xaa\x15\x82\x74\x41\x5d\xce\x4d\x5e\x42\x26\x5c\xc9\x29\x0a\x41\xc7\x93\x4d\x00\x8e\xd9\x23\xb9\x9f\x26\x19\x93\x76\x5d\x20\x50\xb8\x24\xe1\x3d\xde\x72\x9e\xa5\x21\x6e\x3b\xd7\x81\x16\x98\x48\xf1\x47\x3a\xec\xae\x3f\xbe\x7c\xa9\xbf\x36\x41\x23\x82\x43\xc2\xef\x3b\x45\xe2\x24\x8d\xe8\x54\x73\xed\x84\xc5\x0b\x08\x5a\xfc\x10\x91\x76\xd0\xdd\xec\x7f\x47\x44\x9a\x30\x41\x46\x44\xd6\x5d\x11\x54\xc0\xc6\x93\x9e\x74\xaf\xa8\x90\xd7\x38\xad\xd1\x1c\xab\x18\x7b\xbb\x0e\xb1\xc9\x33\x59\x54\x62\x63\x57\x1e\x15\x94\x9e\x9a\xf4\xd3\xa2\x85\xf8\x34\xc2\x90\xe3\x0a\xb4\x1e\xf5\x29\xa7\x0b\xf0\xbd\x0e\x2c\x3a\x45\xf7\x10\x7e\xf8\x8a\x42\x1d\x81\x72\x72\x7c\xa4\xd6\x49\x27\xfc\x7b\x55\xd2\xc2\x11\xfd\x4b\xd5\xa0\x1f\xb6\xe3\x68\xe0\xc0\x56\xa5\x52\xc2\xe5\xf2\xb4\xe1\xc2\x73\xa0\x17\xfb\x50\xdf\x52\xd7\x76\xf8\xb4\xf2\x2a\xa5\x4d\x73\xca\x1e\x20\x96\x4d\x2a\xb7\xf2\xd9\xf4\x63\x9d\x51\xfd\x54\x73\xb2\x30\xca\x3b\x0a\x11\x3b\x29\xb5\x55\xa1\x2d\xca\xfc\x92\x11\xbe\x74\x3d\x2b\x6d\x55\xd6\x4f\xad\xa9\x74\x5e\x73\xb0\x5a\x0b\xcc\x51\xc6\x23\x60\xee\x0c\x4d\x17\xd4\x1d\x51\x0c\x9d\x93\x06\x30\x27\x32\xe3\x0c\xc4\xe4\xe4\xcf\x8c\x08\xe9\x3e\x29\xdc\x40\xfd\x73\x80\x62\x02\x8d\x0d\xc2\xcf\x79\x7d\xf9\xc1\x39\x80\xf0\x92\x1c\x4f\x55\x05\x48\xd8\x3b\x91\xb0\x4b\xce\x13\x2e\xd0\xca\x6b\x50\x55\xcb\x97\x73\xc2\x5c\x17\x6a\x78\x16\xa9\x2a\x66\x95\xdf\x43\x67\x36\x15\x4a\xe9\x34\x32\xf4\xe3\x59\xc2\x2f\xf1\x74\xee\xba\xb9\x42\x1d\x78\x85\x19\xf2\xfc\x01\x4b\x98\x61\x40\x85\x8a\x6f\xda\x4f\xd3\x16\xd5\x45\x67\xc8\x95\x73\x2a\x7c\x1d\xc6\xae\x67\x52\x71\x82\xce\xce\x20\x1b\xa3\xc8\xeb\xe0\xae\x96\x1d\x1f\xd5\xdb\x48\x7d\xad\x3a\xd5\x12\xeb\xcc\x00\x72\x36\x2e\xdd\xba\xb9\x25\x0d\x3f\x22\xec\x51\xce\x95\x66\x47\x1e\xfa\xfa\xb5\x53\xaf\x0a\xee\xb8\x49\xe6\x10\x1d\x4f\xfc\xb2\xb3\xa1\xd3\xc2\xf8\xe5\x9e\xf7\x5c\xeb\xf9\x69\x26\xe6\x45\x08\xb4\x2b\xb9\x26\x51\x64\xed\x86\x0f\xf2\xcd\xe7\xfa\xa1\x5e\x1f\x9a\x62\xa7\xaa\x48\xde\x46\xe1\x25\x83\xa9\x49\xf1\xee\x42\xc8\x8d\x53\xa9\x44\xad\x38\x26\x6b\x4d\x7a\xd8\xe1\xea\x42\xae\xf6\xec\x65\xda\xc6\x39\x40\x8b\x84\x86\x16\x27\x69\x61\x55\x16\xed\x58\x39\xd5\x2a\x13\xd1\x3e\x61\xaa\x05\xe9\x8d\x5c\x93\xad\x94\x6d\xf8\x7e\x5b\xac\x94\xa2\x54\x1d\x6b\x8b\x9a\xb1\x35\x94\xaa\xe1\xaa\xc8\x34\x85\x5a\xed\x64\xbf\x86\xab\xb7\x1a\xef\x5f\x32\x44\x59\x11\x7a\x55\x03\x55\x05\x4c\x66\x1a\x53\x9c\xe7\x33\x83\x5f\x8e\x05\x6d\x79\xba\x66\x69\x88\x88\x29\xf4\x48\x52\x23\x79\x58\x25\x59\x4e\x0e\x07\x75\xa8\x63\x7b\x0f\x69\xa6\x60\xab\x4f\xe0\x2e\xf6\xe1\xf6\xe2\xd6\x55\x17\x31\x4f\xcd\xcd\x0b\x82\x64\x82\x32\x49\x23\x2a\x97\xf9\x5c\xe4\xdb\xbd\x68\x66\x5d\x0d\xe8\x6e\x3a\xc9\x2b\x3e\x5a\x5c\x5a\x58\xbe\x59\x6c\x9a\xc6\x57\x86\x57\x87\x7e\x73\x66\x37\x35\xd8\x6e\x74\x93\xf4\x0e\x0c\x6a\x03\x4b\x27\x6f\xda\xca\x20\xe4\xcc\xac\xc3\x3c\x1a\xa2\x6d\x92\xec\xab\x81\xd0\xf3\x65\x32\xd2\xba\xbb\x1e\xfa\x06\x39\x75\xbe\xff\x9c\xfd\xcb\x7b\xc9\xff\xd2\xfa\xf6\x6b\xd7\x7f\xc6\xfc\x95\xf9\x9e\x48\x1a\x93\x57\x09\x8f\xe1\x93\x83\x61\xc3\xef\x7c\xb5\xa3\x06\x30\xd8\x72\x9d\xc1\x6f\x87\x83\xf8\x70\x10\xa2\xc1\x9b\x60\x70\x1d\x0c\x46\x8e\xd7\x4a\x32\xc7\xbb\x80\x2d\x97\x61\x96\xac\x2f\xd3\x5d\x7e\x2d\x44\x01\x11\x18\xf9\x8c\x4a\x02\x60\xb4\x63\xff\x88\x7c\x6f\xe9\x34\xc6\xe4\x65\xc9\xd9\x50\xc6\x2d\x36\x3a\x1a\x63\x3e\xec\x5f\x10\x09\x09\x23\x9a\xd1\x58\x9f\xcf\x3f\x52\x2e\x33\x1c\x5d\x46\x24\x26\xac\x7e\xb7\x2d\xb4\x79\x6e\x94\x76\x8d\x9b\xc5\xf8\xee\x3a\x21\x5d\xc0\x88\xee\xdc\x24\xca\x72\x18\xdc\x40\x84\x12\x67\x49\xa4\xef\x34\x8b\x6b\x4d\x67\x1b\xa9\xb1\x95\x21\x1c\x4b\x55\x45\xb6\x02\x14\x40\x5c\x41\xa8\x8f\x50\x89\x35\x52\x6f\x29\x02\xb9\x0e\x84\xb1\x0e\xf9\xf5\xe3\x4a\xd1\x03\x20\xbc\xbd\xc0\xf1\x0e\x5a\x47\xb2\x82\xde\xb8\x46\x23\xc6\xa9\x3b\xcb\xd8\x54\x0d\x22\xae\xde\x7e\x1b\xee\x32\x63\xee\xa6\xb3\x45\x0a\x3c\x9e\x73\x32\x3b\x1b\x6a\x5e\x70\xb1\x02\xf1\x0d\x5b\xa5\xc8\x04\x48\x3d\xa1\x69\xc2\x66\xf4\x31\x50\x77\xab\x24\x83\x8c\x58\x1d\x14\x30\x1d\x5a\x16\xcb\x01\x4a\x1d\x53\xee\xca\x9b\xd8\x3b\xa7\x5a\x93\x16\x3e\x4d\x17\xdd\x98\x57\x40\xf0\xc1\xda\xce\xda\xcc\xfa\xd2\x64\x9e\xe5\x7c\xf3\x56\xe8\xf5\xa3\x6d\xde\xf2\x3a\x68\x9b\xdf\x9e\xb4\x47\xf9\x23\x1b\xc2\x72\x83\xbc\x29\x02\xd5\xf2\x93\xc7\x4c\xf1\x24\xe7\xf5\xe4\xf3\x6b\x7e\x7d\xd9\x91\x4f\xf5\xb2\xd3\x8f\xcf\x9d\xea\x02\x16\x53\x55\xba\x43\x4f\x8a\x57\xba\xbd\xa0\x6d\x84\x9b\xdd\xa7\xaf\x77\x8b\xd1\x62\x2b\x0b\xeb\xf0\xf1\x4c\x2e\xba\x99\x6d\xb0\xc8\x67\x5e\xcb\x04\xd7\xdb\xc5\x0c\x0c\x71\x78\xb7\xee\xd5\x3d\x4c\x06\x33\x6c\x4b\xa3\xef\x29\xc7\x2b\xa8\xf8\x4b\x54\xca\x61\xd1\xb6\x31\x2f\x79\xdb\x2a\x81\x65\xbb\x5e\x55\x56\xb6\xc7\xc4\xe1\xfe\x7e\x09\xb4\x5f\x7b\xf3\x21\x4c\x64\xaa\xa0\xcb\x39\xdc\xf0\x89\xda\x43\x31\xa4\x2e\x06\x6b\x99\xa2\x0a\xd6\x9b\xf1\x24\x06\x08\x98\x05\x08\x5f\x10\x5e\xa5\x86\xb9\xfa\xcf\x14\x2e\x88\x0e\x1b\x2c\xd0\xbb\xd1\xed\x8d\xe9\xb1\xd5\x19\x65\x7f\xb8\xfe\x2e\xea\xfb\xa6\x24\xee\x97\x39\x0f\xd0\xa7\xeb\xab\x37\x52\xa6\x77\xf9\x1b\xd6\x01\x4a\x52\x69\x79\xa5\xfb\xf4\xe6\xee\x36\xbf\xe1\x6e\x1b\x3e\x4c\x3f\x00\x9a\xa6\x4b\xc3\x9d\xe8\xdb\xa3\x23\xf4\xa3\x96\xcf\xcf\x71\xe8\x6c\xa9\xb8\x82\xab\xf3\x67\xac\x0f\xe4\x0b\x5c\x94\x02\x54\xdf\xab\xbe\x90\xe7\xff\xae\xf6\xfe\x0e\x00\x00\xff\xff\x68\xfa\x72\xbe\xac\x1a\x00\x00") + +func uiTsModelsNode_statusTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsNode_statusTs, + "ui/ts/models/node_status.ts", + ) +} + +func uiTsModelsNode_statusTs() (*asset, error) { + bytes, err := uiTsModelsNode_statusTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/node_status.ts", size: 6828, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsStatsTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x84\x92\x3f\x4f\xc3\x30\x10\xc5\x77\x7f\x8a\x53\x27\xe8\x10\xef\xe5\x8f\x80\x0e\x4c\x9d\x90\x58\xab\xab\x73\x4d\x42\xfd\x27\x3a\x9f\x2b\x22\xd4\xef\x8e\xd3\x06\x04\xa8\x35\x37\x58\x3e\xfd\xde\xf3\xbb\x93\xac\x35\xc4\x90\xd8\xd0\x02\x5c\xa8\xc9\x46\x1d\x05\x25\x56\x12\x95\xce\xec\x96\x69\x4b\x4c\xde\x10\xf4\x28\xed\xdd\xac\xaa\xb4\x0c\x7d\xe7\x9b\xa8\x5d\x27\x2d\x77\xf6\xed\xfb\x56\xd5\xd9\x36\x03\x7d\x9f\xad\xf0\x98\xa4\x0d\xbc\x80\x27\x46\x07\xcf\x9c\x3c\x75\x0c\x57\x9b\xdc\x55\xcd\xa9\x7b\x68\x1c\x66\x93\x09\xee\x5a\x29\x3d\x9f\x2b\x98\xc3\xea\x38\x03\x98\xe0\x05\x3b\x1f\xa1\x46\xc1\x69\x30\xe8\x93\xb5\x54\xc3\x96\x83\xcb\x02\xb3\xe3\x80\xa6\xad\xb2\x4b\xab\xac\x48\x96\xbe\xdc\x1f\x0a\x72\xd1\x7b\x1f\x58\x60\x42\x2f\xe3\x56\x13\xf9\x41\x3b\x2f\xc4\x5b\xcc\xeb\xad\x5e\x97\xcb\xbf\xa2\xb1\x6c\xb7\xa7\xf5\x66\x10\x8a\x0b\xf0\xc9\x6d\x88\x6f\x7e\xf1\x1d\x0d\x25\xbc\x47\x5b\xc2\x63\xbe\x97\x92\xe2\x98\x6f\x42\xf2\x72\x39\xbf\x80\xc7\xfc\x02\x9e\xf2\xff\x57\x60\x43\xe7\x79\x63\x4e\xd3\x5f\x56\xc4\x21\x96\x16\x1c\x71\x21\xdf\x62\x94\x75\xea\xf3\x47\xa0\xb5\x47\x1f\xce\xbc\x72\x50\xa7\xf3\xa0\x3e\x03\x00\x00\xff\xff\xf7\xb6\xa5\x6d\xce\x02\x00\x00") + +func uiTsModelsStatsTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsStatsTs, + "ui/ts/models/stats.ts", + ) +} + +func uiTsModelsStatsTs() (*asset, error) { + bytes, err := uiTsModelsStatsTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/stats.ts", size: 718, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsStore_statusTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xdc\x19\x69\x6f\xdb\x36\xfb\xbb\x7f\x05\x21\xc0\x80\x94\xd7\x91\x93\xb7\xc0\x80\x29\xc7\xd6\x25\x69\xbb\x22\x47\x17\x77\x45\x07\xc3\x08\x18\x89\xb6\xb5\xe9\x1a\x49\xb9\xf1\x52\xff\xf7\x3d\x3c\x64\x5d\x94\x8f\x6c\x03\x86\x09\x85\xa5\x92\xcf\x7d\x93\x19\x0e\x11\x4b\x73\xea\x13\x0f\xc5\x69\x40\x22\x36\x64\x3c\xa5\xe4\x81\x71\xcc\x73\xe6\x72\xd6\x1b\x02\xc8\x29\x25\x53\x42\x49\xe2\x13\x94\x61\x3e\x3f\xb3\x5c\x77\xc8\x97\x59\x98\xcc\xd8\x30\x0e\xf9\x9c\x86\xd1\xaf\xeb\x2f\x37\x00\x34\x0b\x0d\xcf\xb7\xa2\x06\xaf\xe0\xdf\x16\xf0\x04\xa4\x2a\xa5\xe9\x86\x13\x20\x15\x08\xf4\x3a\xe7\xf3\x94\x7a\xe8\x07\x8a\x63\xf4\x96\xe6\x09\x09\x29\xb2\x1f\xe1\x7f\xee\x4c\xfd\xef\xfb\x59\x8c\x41\x5a\x3f\x8d\x9d\x5e\x0f\x94\xcf\x23\x82\x6e\xa4\x0d\xd0\x73\x0f\xc1\x43\x9e\xb2\x94\x72\xa4\xb7\x46\xc2\x2e\x23\x29\x88\xde\x17\x4f\x18\x4b\x98\x8c\xa6\x71\xc8\x08\x3a\x43\x0f\x85\x15\x6e\xd4\xfb\x83\xda\x39\xe9\xad\x51\x34\xd9\x30\xe1\x84\x4e\xb1\xaf\x29\x5f\x12\xe6\xd3\x30\xe3\x61\x9a\x54\xc8\x8b\x47\x39\x24\x0c\x3c\x94\xe4\xf1\x23\xa1\x27\xb5\x5d\x61\x1f\x4f\xcb\xed\xde\xc2\x4b\x89\x28\x3f\x2b\x34\xeb\x48\x98\x73\xca\x3c\x84\x93\x65\xb9\xbe\xda\x20\xe1\x05\xce\xb0\x1f\xf2\x65\x43\xb2\x62\xd9\x2c\xd9\xeb\x05\x98\x17\x3f\x46\xc4\xbc\x7d\x8f\x93\x19\xb9\x48\xf3\x84\xb7\xf7\x37\xc9\x62\xf6\x83\x78\x02\x50\xd7\x6b\x59\xb3\xce\x95\x0a\xae\x0f\xbe\x99\xad\xb2\x36\xa6\x9c\x04\x0f\xb8\x63\x3f\xcf\x02\xbc\x69\x5f\xc6\xe1\xda\x21\x23\x19\x95\x37\x9f\x2e\x2e\xe4\x57\x1d\x34\x22\x38\x20\xf4\x61\xab\x48\x94\x64\x51\xe8\x4b\xae\x5b\x61\x71\x61\xf4\xcd\xa0\x3b\x1a\xf8\x9e\xb0\x2c\x4d\x18\x19\x11\xde\xb4\xb5\x57\x85\x1b\x4f\xf6\xa5\x7c\x1d\x32\x7e\x83\xb3\x06\xd5\xb1\x8c\xf5\x1f\xd7\xa1\x3e\x79\x31\x97\x4a\x00\xec\xce\xa6\x82\xb4\xaf\x3e\xfb\xea\xb2\x81\xbe\x1f\x61\xc6\x14\x6c\x33\xc2\x33\x1a\x2e\x20\x0e\x64\x90\x85\x3e\x7a\x80\x50\xc4\xd7\x21\x54\x1c\x28\x3c\xc7\x47\xe2\x39\xd9\x0a\xff\x41\x54\xbf\x60\x14\xfe\x21\xaa\xd5\xb7\xdd\x38\x12\xd8\x33\xd5\xb3\x8c\x50\xbe\x3c\x6d\x3b\xf3\x1c\x08\xc6\x2e\x94\xc2\xcc\x36\xee\x3e\xaf\x9c\x4a\x19\x94\xbc\xf2\x47\x88\x6c\x9d\xb8\x9b\x39\xd5\x1d\xda\x62\xd5\xdc\x96\xbc\x0c\xac\x54\x27\x21\x6c\x37\xc5\xba\x95\xea\x50\xe8\xa7\x9c\xd0\xa5\xed\x18\xa9\x8b\x36\x70\x6a\x4e\xae\xf3\x86\x9f\xc5\xb3\xc0\x14\xe5\x34\x02\xf6\xd6\x50\x37\x40\xd5\x9b\xd9\xd0\x3a\x69\x41\x53\xc2\x73\x9a\x80\xa4\x94\xfc\x9e\x13\xc6\xed\x67\x81\xec\x89\x9f\x01\x8a\x09\xf4\x42\x08\x44\xeb\xed\xd5\x47\x6b\x00\x71\xc6\x29\xf6\x45\x55\x48\x93\xf7\x2c\x4d\xae\x28\x4d\x29\x43\x2b\xa7\x45\x55\x3c\x2e\x9f\x93\xc4\xb6\x81\x6f\x1e\x89\xca\x66\xd6\xc0\x41\x67\x26\x25\x4a\xf1\x24\x36\xf4\xfa\x69\x4a\xaf\xb0\x3f\xb7\x6d\xa5\xd2\x16\xbc\xc2\x10\x3a\x97\xc0\x18\x7a\x14\x10\x21\xe3\x16\x9d\xb1\x6d\x8e\xea\x13\x4e\x91\xcd\xe7\x21\x73\x65\x44\xdb\x4e\x91\x98\x13\x74\x76\x06\xb9\x19\x45\xce\x16\x01\xc4\xd3\x41\x00\x8d\x27\x9b\x99\xaf\x76\x50\xad\x48\x12\x20\x67\x64\xb3\x5d\x3d\xbb\x24\xe2\x46\x24\x99\xf1\xb9\xd0\xed\xc8\x41\x5f\xbf\x6e\xd5\xac\x82\x3b\x6e\x93\x39\x44\xc7\x13\xb7\xec\x79\xe8\xb4\x70\x40\xb9\xe6\xbc\xd8\x7e\x6e\x96\xb3\x79\x11\x08\x9b\xb5\x5c\xd3\x28\x12\xb8\xee\x06\xb5\xfa\x52\x57\x34\x6b\x45\x5b\xf0\x4c\x14\xcd\xbb\x28\xb8\x4a\x38\x0d\x05\xf3\x6d\x08\xca\x3c\x95\xaa\xb4\x11\x47\x67\xaf\xce\x12\x33\x5c\x53\xc8\x55\xcf\x5c\xb6\x4d\x9c\x3d\xb4\x48\xc3\xc0\xe0\x26\x29\xac\xc8\xa5\x5d\xcb\xa8\x78\x44\xd4\x8a\xb1\x53\xf4\x36\x06\xf6\x48\x66\x6d\x18\x48\x73\x64\x2b\x20\x68\x98\x35\xf7\x77\x85\x4b\x29\x8b\x33\x56\x98\x93\x66\x46\xe8\xe5\xb1\x69\xb1\x16\xb1\x82\x4c\x5b\xa8\xd5\x4e\x06\x6c\xf9\xba\xd3\x7a\xff\x90\x21\xca\xaa\xd0\xa1\xbf\x39\x40\x44\x21\xd0\xc9\xa9\x4d\x71\xae\xa7\x08\xb7\x1c\x14\x36\xe5\xea\x9a\xa7\xa6\xc2\x7c\xe8\x98\xa4\x41\xf3\xb0\x46\xb3\x1c\x26\x06\xa8\x09\x77\x6c\xee\x27\xed\x34\xdc\xe8\x16\x38\xca\x7d\xbc\xbb\xbc\xb3\xc5\x39\xce\x11\x73\xf5\x82\x20\x9e\xa2\x9c\x87\x91\x38\x90\xc8\x61\xc9\x35\x3b\x52\xcf\xc2\x12\xd0\x2e\xa6\x31\xe5\x27\x47\xbf\x3b\x9c\x2a\x81\x0b\xe3\x1b\x2a\x4e\xdb\x01\xca\xf8\xb0\xeb\xb6\xa7\x7a\x5d\x8b\xcd\x86\xd7\xa9\x6f\xc1\xf8\xd6\x37\xf4\xf5\xb6\xb5\x34\x82\xe6\x66\x9c\xf7\xd1\x10\x75\xca\x72\x20\x06\x45\xc7\xe5\xe9\x48\x1a\xc0\x76\xd0\xff\x90\xd5\xe4\xfc\xf7\xf9\xa0\x3c\xbb\xac\x3d\x80\x0a\x17\xa0\xff\x88\x0f\xcc\xe7\xb3\x7f\x8f\x13\x2a\xd3\x3f\xe1\x61\x4c\xde\xa4\x34\x86\x4f\x0a\xc6\x0d\x5e\xb9\x62\x45\x4c\x65\xb0\x64\x5b\xfd\x5f\x0e\xfb\xf1\x61\x3f\x40\xfd\x77\x5e\xff\xc6\xeb\x8f\x2c\x67\x23\x49\x85\x77\x09\x4b\x76\x82\x93\x94\x15\x87\x9d\x6d\xce\x2d\x44\x01\x11\x12\xf2\x05\x95\x04\xc0\x6a\xc7\xee\x11\xf9\xc6\xd0\x76\xb4\xd1\x2b\xe5\xa7\xa6\x8d\x5d\x2c\x6c\xe9\x93\xea\x1c\x70\x49\x38\x24\x0e\x6b\x95\x85\xe6\xdc\xfe\x29\xa4\x3c\xc7\xd1\x55\x44\x62\x92\x34\x0f\xc1\x85\x36\x7f\x21\x54\xb7\xcd\xa0\xc5\x5c\x6f\x5b\x41\xb8\x80\xd9\xdd\xba\x4d\x85\xf1\x30\x78\x82\x30\x21\xd1\x92\x70\xd7\x6a\x57\xda\xce\x98\x2d\x28\x8d\x8d\xec\x60\x97\x8b\x6a\x02\x9c\xcc\x00\x0a\x84\x8a\x7d\xf1\x11\x28\x91\x02\x82\xc0\x86\x96\x33\x40\xc5\x22\xbc\xf1\x78\x4e\xc9\xf4\x6c\x28\x9a\x16\x9c\x59\x20\xc4\x55\x3e\xc8\xd1\x5d\x2c\xca\x1f\x18\xdf\x45\xf0\x4f\x00\xe7\x19\xf9\x69\x32\x0d\x67\x9e\x38\xc6\xa4\x39\x84\xd9\x6a\xd0\x85\xe3\x38\x13\x67\xb0\x9f\x84\xb7\x84\x7f\x49\xe9\x6f\x35\x31\x9b\xd4\x71\x10\x80\x5d\x99\x9b\x28\xd8\xfd\x99\xbc\x56\x04\x76\x62\xa2\xdf\x7b\x31\x19\xa9\xeb\x29\x84\x79\x8d\x45\x91\x14\x95\x7c\x54\x5c\xcb\xeb\xac\xfd\x2c\xf6\xb3\x1a\xef\x77\xe6\x53\x3d\x0e\xec\xc3\x47\xde\x02\x9a\xcc\x55\x29\x97\x7b\x11\xbc\x96\xd5\x16\x75\xd2\x6d\x57\xe3\xbd\xc8\xaf\x2f\x35\xbb\x39\x18\x5b\xf2\x8b\x98\xc8\xca\x5e\xe3\xa0\xa6\x41\xd3\x60\xb3\xa7\x7b\x13\x30\xc2\xe1\xfd\xba\x71\xed\x63\x2f\x18\xed\x36\xf5\xbd\xbd\xe4\x78\x03\xa5\x6f\x89\x4a\x39\x0c\xca\xb6\x27\x08\xa1\xaa\x91\x83\x61\x79\xd2\xea\x06\xe5\xd7\xfa\x73\x78\x70\x50\x02\x1d\x34\xae\x45\x48\xc2\x72\x71\x13\xc7\xe7\x70\xfc\x25\x62\x0d\xc5\x90\xb5\x18\xcc\xa5\x6b\x2a\x98\x6f\x4a\xd3\x18\x20\xa0\x31\x12\xba\x20\xb4\x4a\x0d\x53\xf1\x27\x0a\xca\x88\x8c\x1a\xcc\xd0\xfb\xd1\xdd\xad\xee\x8e\xd5\x86\x7d\x30\x5c\x7f\x4f\xf3\xc4\x97\x7f\x08\xa8\x49\x62\x3f\xcd\xa9\x87\x3e\xdf\x5c\xbf\xe3\x3c\xbb\x57\xd7\x3c\x03\x94\x66\xdc\x70\x99\xf5\xf9\xdd\xfd\x9d\x3a\xfc\x75\x75\x62\xdd\x0e\x80\xa6\xee\x58\x70\x5a\xf8\xff\xd1\x11\xfa\x4e\xca\xe7\x2a\x9c\x70\xba\x14\x5c\xc1\xd3\xea\xa2\xe7\x23\x79\x82\x13\x84\x87\x9a\x6b\xd5\x8b\x65\xf5\xbb\xea\xfd\x19\x00\x00\xff\xff\xdb\xd1\xe8\xc5\x5a\x1a\x00\x00") + +func uiTsModelsStore_statusTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsStore_statusTs, + "ui/ts/models/store_status.ts", + ) +} + +func uiTsModelsStore_statusTs() (*asset, error) { + bytes, err := uiTsModelsStore_statusTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/store_status.ts", size: 6746, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsTimeseriesTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x59\xdf\x6f\xdc\xb8\x11\x7e\xf7\x5f\xc1\xf3\x93\x94\xdb\x68\x93\x7b\xe8\x83\x1c\xa7\x0d\xee\x82\x1e\x0e\x75\x93\x3a\x46\x7b\x40\x10\x18\x5c\x89\xbb\xab\x46\xa2\x14\x92\xb2\xb3\xbd\xdb\xff\xbd\xdf\x90\xd4\x6f\x69\xb3\x06\x0e\x38\x01\x71\x64\x89\x1c\xce\x7c\xf3\xf1\x9b\xa1\xbc\x5e\x33\x5d\xd6\x2a\x11\x31\x2b\xca\x54\xe4\x7a\x6d\xb2\x42\x68\xa1\x32\xa1\x23\xa3\x2f\xd6\x18\xf0\x4a\x89\xad\x50\x42\x26\x82\x55\xdc\xec\xaf\x2f\xa3\x68\x6d\x0e\x55\x26\x77\x7a\x5d\x64\x66\xaf\xb2\xfc\xbf\xed\x5d\x94\x62\xda\x25\x5b\xbf\xc6\x54\xf6\xa6\x36\xfb\x52\xc5\xec\x86\x1b\xc3\xee\x14\x4f\x0e\x2c\x28\x70\xff\xb7\xa4\x4c\x3e\xab\x92\x27\xfb\x9c\x6f\x74\x94\x94\x45\x78\x71\xb1\x7e\xf6\xec\x82\x3d\x63\x37\xd6\x0d\x96\x94\xd2\xf0\x4c\x6a\x96\x72\xc3\xbd\x6f\xac\xaa\xf3\x5c\xa4\x6c\xab\xca\x82\xb5\x26\x22\xcc\x5a\x5f\x60\x44\x9d\x8b\x66\xf6\x6f\x17\x0c\x97\xf8\x5a\x95\xca\xb0\xe6\x95\x30\x2a\x4b\x9a\x77\x74\x65\x85\x7d\x5f\xc1\x5c\xa6\x05\xbb\x66\xf7\x4d\x10\x37\xee\xff\xf7\xee\xcd\xd5\x45\x3b\x05\x4e\xb2\xf6\x17\x78\xfb\xaf\x5a\xa8\xc3\x9b\xdd\x4e\x89\x1d\x37\xa5\x62\x99\x66\x5c\x32\x21\xeb\x42\x28\x6e\xb2\x52\xb2\x72\xcb\xcc\x5e\x30\xfe\xc0\x33\x04\x0b\x3f\x78\x3b\xba\x6f\x68\x5b\xcb\x84\xc6\x6b\xb6\x85\x19\x4a\x02\x73\x59\x60\x5f\x6a\x97\x0d\x76\xb7\x87\x75\x29\x44\xaa\x99\x29\xd9\x46\xb0\xcf\xa2\x32\x2c\x93\x4c\x1f\x64\xc2\x1e\xe1\x72\xdf\x20\x2d\x7a\x07\x33\x1f\xec\xec\xb1\x9f\x03\x0f\xa5\x1d\x8c\xe5\x1e\x84\x8a\xfa\x36\x82\x35\xb0\x31\xe5\x80\x14\xf6\x49\xd8\x1b\xb5\x6e\xef\x3d\xde\x64\x7b\x02\x4c\x87\x3a\x5d\x6f\xfe\xfd\x77\xc0\xfd\x72\x35\x7e\x78\x7f\xfb\xe6\xee\x2d\xde\xfc\xd0\xbd\x39\x0e\xc0\xef\x7b\xf7\x13\x98\x51\x95\x99\x34\x16\x75\xa6\x41\x48\xc0\x9b\x76\x4f\x25\x9e\x12\x7a\x07\xa6\x84\xae\x80\xad\x98\x82\xd8\x37\x38\xc1\x73\x04\x62\xb7\xa0\x05\x61\x53\x6f\xb1\x2f\x18\x90\xd1\x7c\x27\x3c\x8c\x7d\x7b\x1e\xd1\x13\x30\x46\xa7\x70\xc4\x42\x42\x6d\x39\xb6\x5d\xb7\xf0\x10\x46\x6b\xcf\xf0\xa2\xba\x97\x5c\x96\x3a\x66\x40\x7e\x23\xd4\xd5\x60\xd0\x03\xcf\x6b\x31\x7d\xb5\x8c\xab\x4d\xdd\xad\xd0\x75\x3e\x44\xb6\x85\x12\x2f\xbe\xc1\xc6\xbe\xb9\x19\x20\x7b\x2b\x44\xf6\xfe\x04\xa0\x4f\xe3\xe5\x99\x80\xf6\x43\x1c\x42\x2a\x79\x21\x62\x0d\xa5\x90\xbb\x21\x8c\x2d\xaf\x00\x73\x9b\x8f\x8f\x9f\x9e\x86\xe7\x07\x01\x39\xe2\x26\xd9\x63\x5f\xdb\xd8\xea\x24\x41\xb4\xdb\x3a\x67\x65\x6d\xaa\xda\x34\x72\xb1\x36\x7a\x6d\xf1\xee\x1b\x12\x32\xb5\xab\x9e\x23\x05\x63\x2e\xce\x82\xff\x27\xc2\x4e\x48\x0c\x91\x77\xc4\x02\xba\xbd\x51\x1f\x3f\x9d\x4d\x58\x47\x55\x94\x92\x02\x01\x74\x4b\x42\xe3\x73\x51\x08\xfc\x9e\xb2\xcd\xc1\x46\xe6\x78\x8c\x0a\x86\x24\x00\x32\x92\x4a\xcc\x75\x55\xe2\x29\x81\x8c\xfc\xb7\x66\xe3\x20\xbc\x7e\xed\x0b\xca\xab\x61\xb8\xaf\xcf\x0f\x25\xcd\x74\xe5\x59\xd2\xee\xbe\x71\x49\x38\x50\xe6\xe7\x13\xd5\x39\xde\x54\x15\x37\x23\x80\x56\x28\x13\x83\xbd\x62\x45\x64\xf2\x77\x28\x48\xf1\x48\xae\x57\x7e\x25\xbf\x13\x3e\x7e\x0a\xe3\x85\xa0\x46\x20\x3c\x70\xc5\x6a\x95\x43\xc2\x2f\x5b\x0a\x5f\x8e\xf5\x48\xb9\xa2\x7e\x3d\x9a\x4b\x97\xf5\xb0\x51\x33\xfb\x4b\xb4\x13\x86\xc8\x1b\x84\x80\xe7\x65\xf4\x42\xfc\x65\x35\x99\x85\x58\x9a\x39\xb8\x3d\x67\x86\x2f\xaa\xb1\x8f\x33\x2a\x78\x15\x04\x2a\x64\xd7\x08\x48\x09\x53\x2b\x39\xe3\x1c\x5d\x56\x1f\x98\x9a\x5a\xa4\xab\x2b\xed\x31\xdd\x4f\x07\x1d\xaf\x8e\xe1\xf0\xe9\xb1\xfd\x6d\xb4\x19\xac\x0f\x45\xa4\x04\x5c\xd5\x26\xf8\x0d\xa8\xc6\xf8\xb7\xc2\x3e\x45\x53\x95\xc6\x97\xef\xdf\x7d\xb8\xbb\x44\x1e\xbf\x1a\x34\x56\x26\x96\xa5\xfc\x45\x97\xf2\xad\x52\xa5\xd2\x2b\x8b\x70\x4c\x3f\x8e\xe1\xc4\x8b\x08\xb4\x91\x41\x90\xc6\xc3\x5c\xba\xe8\x67\x03\x43\x2f\xf7\xbe\x44\xf7\x05\xbe\x30\xb0\x80\x28\x89\xad\x86\x66\xcc\xb1\x6b\x9b\x89\x1c\x52\x64\x75\x47\x14\x95\x39\x30\xae\x14\x3f\xe8\x68\xd6\x58\xb6\x65\xc1\x77\x69\xe4\xf7\x7b\xb8\xb0\x24\x5d\xed\x20\x70\xa5\x2f\x05\xf3\x00\xce\xce\x8c\xd0\x4e\xbd\x45\x97\xd8\x66\x77\x71\x31\xeb\x96\x8a\x3a\x9d\x3f\xe5\x19\x5d\xfd\xb1\xd6\xc1\xc5\xd1\xf3\x3e\x1e\xc3\xf9\x88\x7c\xee\xd3\xe9\xdb\xfe\x8c\xe3\x72\x53\x7a\x2b\x12\x08\x5e\x4f\x15\x9d\x5e\x3c\xee\xb3\x64\x0f\x9d\x93\x19\x08\x4a\x8f\xd3\xba\xeb\x51\xd1\x6f\x63\xbb\xa1\xc3\xd0\xd9\xff\x06\x85\x03\xfc\xc2\x9e\xa2\x84\x6f\x78\xf2\xf9\x91\x2b\x24\xda\x36\xe0\xa4\x3d\x49\xad\x70\x30\x30\x56\x9c\x22\xf6\x1f\xd0\x0a\xde\x6f\x01\xfd\x5e\xa4\xab\x4e\x6c\x87\xed\x40\x9e\x53\xc5\x52\xe2\x39\x88\x54\x43\x96\xa1\x63\x6e\x91\x46\xd1\x06\x56\x4f\x09\x72\x92\x73\xad\x07\xe1\x0e\x33\x56\xa9\xec\x81\x28\x7b\x3f\x52\xb3\x21\xb2\x36\x74\x55\x27\x40\x25\xa8\xea\x4d\x9e\x51\x05\x95\x69\xf9\xf8\x93\xc7\x27\x76\xbd\xd3\xaa\xb3\x37\x2b\x99\x51\x14\x8d\x55\x73\x86\x41\x54\x6c\x22\xef\x10\x58\xe3\x6e\xae\x46\x9a\x30\x2d\x2c\xc1\xb9\x0a\x4c\x17\x49\x2c\xf0\x24\x11\xc4\x12\x52\x3c\x52\xc7\x02\x3d\x9c\x32\x8a\x46\x5a\x99\x1d\x8f\xf5\xd3\x7b\x5a\xfa\xdc\xb9\x3e\x84\x66\xc6\xa4\xa7\x6f\xaf\xe2\x90\x81\x55\xe3\xd0\xca\x23\x40\xfa\x38\x00\x23\x1c\x83\x30\x03\xc7\x5c\xb5\xbc\xe1\x12\x6d\x0b\xc2\xa8\x2b\x22\x85\x6f\xac\xf6\x9c\x52\x40\xcc\xee\xb7\xad\xae\xf0\x6c\x84\x79\x14\x42\xf6\x2d\x15\x78\x99\xa1\x53\xa0\x06\x02\x27\x05\xf0\x49\x9f\xc1\xbc\xc1\xfa\x0b\xd4\x73\x0b\x8f\xa4\x96\x90\xc6\x59\xf6\x6a\x7e\x8a\x20\x0d\x8f\xad\x92\x9f\x1e\xe8\x6c\xbf\xad\xca\x64\xef\x39\x8a\xf1\x2f\xae\x86\xf4\x81\x76\xdb\x76\xd1\x71\xbc\x56\xa2\xdd\x82\x28\x19\xcf\xc9\x3a\x94\x41\x74\x67\xa5\x8c\xba\xa2\xe7\xdb\x3c\xdb\xed\xcd\x8a\xc1\x85\x3d\xd7\x63\x83\x84\x52\x2e\x6c\x4f\x85\x9e\x55\x96\x06\xe6\x60\x02\x0c\xa5\x76\x56\xa4\x5e\x0b\xb8\xec\x4c\x8d\x95\x60\x68\x08\x15\xab\x94\xf9\x01\x3f\x84\x6f\x81\x71\x20\x6f\xcb\x0a\x5c\xf4\xdf\x03\xe0\xa5\x3d\xcf\x44\xf3\x80\xa0\x89\x26\x15\x23\xb9\x8a\xa7\xdb\xc2\xa7\xe2\x9b\xed\x59\x9b\x6b\x9b\x87\x99\x8f\x02\x95\x50\xe6\xf0\xca\x26\x68\x34\xed\xe8\x13\x36\x4a\x41\x9f\xb6\x74\x3d\x63\x3f\x36\xa2\x83\x88\x68\xd3\x0d\xa8\xe4\x94\xba\xdc\xb8\x2f\x20\x4d\x0d\x6c\x54\x77\x6c\x8a\x88\x9f\x67\xc8\x85\x45\x78\x54\x73\x7b\xd4\xa5\x6b\xa0\x75\x0d\x6a\xae\x73\xb5\x1e\x40\xb1\x46\xea\xd3\x8c\xf2\xb9\x7d\xd7\x21\x1c\x84\x53\x88\xa9\x88\xba\x4d\xdd\x4b\xc5\x52\x21\x25\xf1\xe9\x98\x74\xcd\x16\xeb\xe7\xd4\x64\x64\x73\x03\x55\xfa\xce\xe1\xcd\x7e\xff\x9d\x4d\x07\x39\xe4\xba\x51\xe1\x68\x6b\xf4\xbd\x6e\x1d\x39\x55\xf6\xdd\x12\x5e\x4b\xae\x4f\xac\x38\x5f\xd9\x3b\x13\xc2\x6f\xee\xc5\xc0\xbe\x65\xa0\x37\xa5\xa1\xdc\x39\x4e\x5b\xad\xf8\xfe\xfb\x73\x5b\xa9\xe3\xa9\xba\x34\xc3\x6a\x2d\x7c\x1d\x4e\xf6\x5c\xee\xfc\x21\xd7\xc9\x4a\x2d\x53\xa1\xf2\x03\xf9\xeb\xce\x5b\x8e\xeb\xa7\xe9\xda\xd8\x0b\xbe\x78\x7a\x2e\xd5\x53\xb7\xc6\x35\xfb\x72\xb2\x92\xce\x78\xec\x73\xe9\x8a\x96\xf3\xb7\x28\x35\x3d\xa0\xa6\xa2\x79\xed\x4f\xe5\x76\x95\x15\xd1\x85\x4b\x12\xca\xb1\xb1\x0a\xc3\x31\xeb\x74\x4c\x0d\x45\xc6\x25\x61\x21\xb4\xb9\x7d\xb7\x58\x74\xfb\xa9\x7e\x2a\x12\x82\xa8\x31\x00\xc2\x3d\xf1\xb1\x37\x4d\x59\xbf\x9c\x5e\xb9\x54\x52\x8f\x39\xb6\x86\x36\xb3\x34\x68\x35\x13\x9e\x43\xd6\x33\x99\x28\xc1\xfd\xb1\xa1\xa6\x63\xb4\xd7\x38\x5b\x6c\xf0\xce\x9f\xd0\xdd\x09\x02\xed\xfa\xd8\x9c\x5b\x35\x40\xa1\x82\x2f\x6a\xf0\xdd\x44\x51\xfd\x09\xe9\x9b\x08\x55\x0c\xa5\x87\x2e\x52\xf5\x42\xb6\xe6\x83\x45\x68\x2f\x4f\x27\xcb\x8e\x43\xae\x7c\x75\xfd\xa3\x73\x64\xb7\xe3\x93\x13\x65\xb5\x63\x90\x28\xff\x84\x4c\x12\xc6\x6d\x7f\xde\xa7\x32\x65\x02\x1d\xf6\x74\x03\xd8\x7e\x3d\x08\x5b\x5e\x97\x09\x72\x8d\x1a\x7e\x1a\x18\x27\x53\xbe\x4b\xf9\xe3\x70\xb1\x76\x4f\x22\xd2\x3a\xfc\x84\x86\x18\x9d\xc6\x8f\xb9\x40\xb9\xe9\xcb\xa6\x3f\x5a\x53\xd8\x99\xe7\x49\x0e\x96\xa6\x07\xef\xd1\x04\x82\x26\xac\x65\x91\xb7\x67\xc8\xb3\xeb\xdf\x9c\x92\x2f\xd7\x1e\xdf\xbd\xf4\xf4\x2e\xf2\x27\x83\xf9\x8f\x11\x74\xb9\x0e\xa6\xa0\x44\x54\x81\x6f\x58\x5c\x25\x5c\xcd\x57\xdb\xf9\x93\xea\x52\x9d\x73\x1f\x12\xc8\xde\x6a\xa9\x92\xcd\x80\x34\x5d\x63\xc0\x80\xe9\x32\x4f\x3f\x18\x0c\x3e\x86\xe0\xe4\xa1\x41\x68\xda\x2a\xdc\xf8\xbd\xe2\x3f\x76\xea\x36\xd5\xdd\x9e\x71\xdf\xd3\xfa\xd6\xb8\xa2\xbf\x7c\x29\x2d\xdc\xdf\x6f\x34\xfb\xe5\xc3\xbb\x7f\x32\x77\xc8\x5b\x38\x26\xb4\x1f\xde\x06\x9e\x04\x5f\xf7\x2a\x66\xbf\xde\xfc\xe3\x67\x63\xaa\x5b\x47\x3f\x34\xbe\x15\x7d\xf5\x1c\xb7\x99\xbf\xfe\x7c\xfb\xae\xb2\x7f\x11\x0a\xfd\x79\x72\xf2\xbd\xd4\x82\x06\x93\x11\xf0\x32\xb5\x66\xaf\xd9\x0f\x2f\x5e\xb0\xbf\x5a\xf7\x22\x37\x27\xdb\x1e\x68\xd1\xa8\xf9\x03\xc8\x1d\x4e\xda\x21\x8b\xd9\xf8\x59\xff\xbb\x82\xfb\x79\xbc\xf8\x7f\x00\x00\x00\xff\xff\x24\x88\x6a\xd1\x1c\x1c\x00\x00") + +func uiTsModelsTimeseriesTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsTimeseriesTs, + "ui/ts/models/timeseries.ts", + ) +} + +func uiTsModelsTimeseriesTs() (*asset, error) { + bytes, err := uiTsModelsTimeseriesTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/timeseries.ts", size: 7196, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesGraphTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x56\x51\x8f\xe2\x36\x10\x7e\xe7\x57\x4c\xf3\x14\x4e\xc8\x61\x75\x52\x1f\xb8\x72\x3a\xba\xad\xb6\x95\x8a\xd4\x6e\x57\xf7\x72\x3a\x9d\x8c\x19\x12\xf7\x1c\x9b\xda\x0e\x1c\xaa\xf8\xef\x1d\x3b\x21\x1b\x42\x58\xaa\x95\x6a\x21\x48\xf0\xcc\x37\x9f\xe7\x1b\x8f\x9d\x65\xe0\x4c\x65\x05\xce\x60\xcb\x73\x74\x59\x6e\xf9\xb6\x60\xde\x8d\x32\x9a\xfa\xc1\xe2\x06\x2d\x6a\x81\x34\xeb\x8b\x79\xc2\x58\xe6\x0f\x5b\xa9\x73\x97\x95\xd2\x17\x56\xaa\xbf\xda\x27\xb6\x26\xb7\x04\xb2\xf7\x37\x5d\xd7\x6f\xe9\x73\xdb\xbc\x34\x6b\x54\x2e\xf3\xb2\x44\x87\x56\xa2\xbb\xe5\x20\x4c\xb9\x35\x1a\xb5\x27\x4e\xe8\xad\x14\xad\x07\xb9\xc0\xa2\xf2\x85\xb1\x33\xf8\xd1\xf2\x12\x1e\x6c\xa5\x51\x5a\x48\x57\xf4\xc6\xf2\xfa\xed\x43\x5e\x72\x5a\x07\xc1\x8c\xbb\x0e\x4b\xee\x3d\x3c\x59\x2e\x0e\x90\x96\xf4\xfc\x41\x18\xf1\xd5\x1a\x2e\x0a\xc5\x57\xae\x36\x1f\x65\x6f\xde\x8c\xe0\x0d\x2c\xd6\xa5\xd4\x1f\x25\xee\x1d\x48\x07\xbe\x20\x76\x56\x96\xdc\x1e\x80\x56\x53\x29\x84\x8d\xb1\x70\x7f\xf2\x47\x07\x3c\x38\x48\xe7\x2d\xf7\x72\x87\xb0\xc7\x55\x80\x91\xda\xa3\xdd\x70\x81\x8c\xde\xb2\x51\xe3\xdb\x01\xff\x67\x04\x10\x43\x02\x59\x3f\x04\xcd\x42\x3c\x4e\xd1\x8c\xd9\x00\x7d\x84\xa1\xd4\x6c\x7d\x8c\x17\x32\x08\x75\x0a\x21\xea\xeb\x58\x74\xcc\xe8\x1b\xbf\x6d\x8d\xf5\x27\x76\x35\x52\x00\x0f\xa3\x09\x00\x31\xc8\x02\x5c\xc9\x95\x82\x35\x96\x46\xd7\x7c\x8d\x0e\x91\x38\x88\x82\x5b\x3f\x81\x7d\x21\x45\x01\x6b\xe9\xb6\x8a\x1f\x02\x19\xbf\x37\xf5\x9c\x7b\x86\x69\xa6\xa9\x0e\x62\x76\x1c\x27\x6a\x6b\xee\x39\xf1\xf3\xc0\x1d\xd8\x20\x1c\xee\x70\x0d\xab\x03\x41\xfc\x51\xa1\x3d\x2c\xb9\xa6\xda\xb4\xac\x45\xc9\x9a\xa7\x73\xf2\xbf\x93\x51\xcb\x3d\x0c\xa1\xb8\x73\x94\x6d\xed\xad\x51\x0a\x2d\xc8\x72\xab\xb0\x0c\x05\x02\x5f\x4e\x55\xbb\xac\x7f\x3b\x56\x5d\x88\x30\xca\x3a\xfc\x6c\x19\xeb\x91\x2d\x9b\xd2\xea\x52\x7b\xd7\x73\x71\x85\xd9\x3f\x72\x8f\x6e\xb6\x32\x46\x21\xd7\x7d\x83\x28\xf0\x8e\xab\x99\xae\xca\x55\xf0\xef\x03\x54\xe5\xdf\x01\x1f\xe6\xa0\x71\x0f\xbd\xd0\x8f\x28\x68\x11\x91\x40\x7a\x37\xa5\xac\x7e\x1f\xbe\xee\xa6\xd3\xe9\x04\x7a\x40\xf5\x18\xa2\xbe\xc8\x73\x8b\x39\xf7\xc6\xb2\xc5\xc7\x87\x09\x24\xc2\x32\x4d\x76\x4c\x90\xcc\x8e\xb9\x4a\x08\x74\x8e\xdd\x25\xe3\x3e\x79\xd2\x1e\x5f\xc7\x6e\x80\xdc\x6d\x6a\x5f\x1e\x17\x4f\x3f\xbf\xcc\xaf\x87\x2b\x62\x85\x56\x82\x00\xd2\x71\x5f\xce\x30\x7c\x21\x1d\x6b\x74\x1d\x5e\x44\x57\xdd\x34\x9a\x9f\x24\xb9\x48\x47\x1f\x90\x51\x6b\xb2\xe8\x8a\xf4\xba\xe5\x49\x7e\x8a\x4d\x75\xff\x6b\xf3\x96\xa6\x63\x98\xbf\xbf\x82\x35\x89\x19\x9c\x5e\x60\x1e\xfb\x8b\x37\xba\xd2\xca\xf0\x35\x81\x0d\x2d\x5d\x50\x39\xda\x36\xe2\x19\x9b\xdb\xd8\xde\xe4\xb9\xc2\xba\x4b\xcc\xa1\xa6\x7b\x35\xbf\xed\x26\x20\xd3\xef\xce\xff\x19\x4a\x8c\xdc\x40\x7a\x6e\x35\xbc\x80\x16\xff\x94\x22\xca\x60\x5d\x6c\xf1\xdf\xb6\x38\x07\xb3\x7f\x04\x12\x19\x5f\x83\xfb\xa2\xfc\xc7\x57\x97\x44\xd7\xf3\x2c\xdd\x4d\x6f\xdb\x54\x5a\xc4\x4e\x2b\xda\x06\x95\x8e\x67\x2f\x74\x2b\x6a\xa0\x95\xd5\xb1\xa4\xef\x3b\x2e\xef\xfe\x6b\x9c\x1d\x9d\x2f\xa9\xf0\x56\x75\x82\x5c\x0a\xb1\xe3\x16\x56\x95\xf7\x46\x3f\xe1\x37\x3f\xa3\xdd\x46\x1d\xfd\xa2\xc9\x91\xa2\x01\xe9\x96\xa2\xcf\x40\x54\x29\xc9\x9f\x64\x0c\x4f\xc6\x73\xe5\x92\x8b\x6c\x5d\x97\x6f\x00\x24\x86\xbc\xc4\x18\x4e\x58\x99\x26\x2c\x1e\x8e\xe1\x18\x49\x26\xf0\xe9\x4a\x89\x90\xdd\x2f\x6f\x69\x3e\xa9\x77\xc1\x4f\x74\x1c\x26\xe3\xa1\xc6\x16\xc6\x7d\x7b\x23\x69\x1b\xcb\x6f\x52\xd7\x1b\x88\x09\x8b\x44\xb0\xce\x50\x53\x27\xff\x3f\x10\xd1\x4f\xae\x1c\x12\xad\x81\xd4\xdb\xca\x7f\xa2\xdb\x1a\xce\xeb\xac\x7e\x26\x97\x6b\x5b\xe6\x34\xa8\x7f\x54\x74\x8b\x7c\x96\xe1\x1a\x83\xd3\xa0\x0b\x8a\x92\xe2\xeb\x0c\x22\xef\x4e\x67\x79\xc9\xf1\x38\xbe\x58\xd9\xe7\x5e\x6d\x3f\xff\x1e\x47\xc7\xd1\xbf\x01\x00\x00\xff\xff\x47\xd6\x5d\x9c\xe1\x0a\x00\x00") + +func uiTsPagesGraphTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesGraphTs, + "ui/ts/pages/graph.ts", + ) +} + +func uiTsPagesGraphTs() (*asset, error) { + bytes, err := uiTsPagesGraphTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/graph.ts", size: 2785, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesMonitorTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x91\xbb\xce\xdb\x30\x0c\x85\x77\x3d\x05\xe1\xc9\x09\x0a\x6b\xe8\x96\x5e\x90\xb4\x43\xa7\x00\x19\x8a\xee\x8a\x4c\xdb\x6a\x75\x09\x28\x2a\x69\x10\xe4\xdd\x4b\x25\x75\xe0\x7f\xf9\x35\xd8\x22\xce\xf9\x0e\x09\x4a\x6b\xc8\xa9\x90\xc5\x0d\x9c\xcc\x88\x59\x87\x14\x1d\x27\xea\x38\x2b\x2d\xe2\x67\xc2\x01\x09\xa3\x45\xd1\x79\xfa\xd2\x74\x9d\xe6\xeb\xc9\xc5\x51\xac\x8e\x27\x72\xfe\xf7\xeb\xd6\xf5\x82\x35\xa0\xbf\x2a\x61\x61\x57\x78\x4a\xb4\x81\x6f\x64\x02\xfc\xa0\x12\xd1\x11\xb4\x47\xa9\xba\xf1\x59\x6d\xc7\x60\x84\xb2\x29\xac\x96\xc0\xde\x30\xc3\x4f\x32\xf6\x0a\x6d\x90\xfb\xd6\x26\xfb\x87\x92\xb1\x93\x37\xc7\xfc\xb4\x2b\xbd\x5e\x2b\x58\xc3\xae\x0f\x2e\xfe\x72\x78\xc9\xe0\x32\xf0\x24\x63\x92\x0b\x86\xae\x10\x52\x5f\x3c\xc2\x90\x08\xbe\xcf\x3c\x66\x30\x15\x70\x99\xc9\xb0\x3b\x23\x5c\xf0\x58\x63\x5c\x64\xa4\xc1\x58\xec\xa4\xd2\xea\x3f\xbb\x08\xbf\x29\x80\x47\x4b\x10\xf7\xfe\xb9\xa3\xb9\xe3\x59\x1c\x8f\x3e\xf8\xf7\xe4\x13\xc9\x6e\xc0\xfa\x92\x25\x11\x32\x1b\x2e\xb9\x7b\x60\x5a\xbe\xe2\x48\xc4\xf3\x6c\x73\x4e\x0d\xaf\xe7\xad\x7a\x90\xf7\x78\x49\x0b\x79\x28\xd1\xb2\x4b\x11\x6c\x8a\x4c\xc9\x7b\xa4\x76\x05\xb7\xfb\x3b\xce\x3a\x61\xf5\x2c\x2c\xf5\x10\x72\xa1\x08\xa1\x6d\xa6\x8f\xcd\x07\x68\xe6\x79\x0e\x5e\x36\x31\x25\xdf\x23\x35\xab\x4f\x0b\x68\xee\x51\xff\x77\x75\x57\xff\x02\x00\x00\xff\xff\xd6\xb1\x96\xcc\x3e\x02\x00\x00") + +func uiTsPagesMonitorTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesMonitorTs, + "ui/ts/pages/monitor.ts", + ) +} + +func uiTsPagesMonitorTs() (*asset, error) { + bytes, err := uiTsPagesMonitorTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/monitor.ts", size: 574, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesNodesTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x55\x5d\x6f\xa3\x38\x14\x7d\xcf\xaf\xb8\xe2\xa1\x82\x36\x6b\xf6\xe3\x8d\x6c\xaa\xed\x76\x57\xab\x4a\xdb\xce\x8c\x2a\xcd\x4b\x15\x45\x06\x9c\xe0\xd6\xd8\x19\xdb\x90\x89\xaa\xfc\xf7\xb9\xc6\x40\x20\x49\x67\xfa\x36\x48\x0d\xd8\xd7\xe7\xdc\xaf\x73\xdd\x38\x06\xa3\x2a\x9d\xb1\x04\x36\x74\xcd\x4c\x2c\x55\xce\x0c\xb1\x66\x12\xa3\xe9\x4f\xcd\x56\x4c\x33\x99\x31\xb4\xda\x62\x1e\x10\x12\xdb\xdd\x86\xcb\xb5\x89\x4b\x6e\x0b\xcd\xc5\x73\xff\x45\x72\x84\x05\x10\x5f\xbf\x09\x2d\x91\x5b\x78\x17\x4b\x63\xa9\xad\x4c\x87\x40\x08\xdc\x54\xb6\x50\x3a\x81\xbf\x35\x2d\xe1\x3f\x5d\x49\xc6\x35\x84\x29\xae\xc8\xda\xaf\xfe\x5a\x97\x14\xfd\x64\xaa\x8c\x10\x71\x79\x39\x81\x4b\xb8\xc9\x4b\x2e\x3f\x73\xb6\x35\xc0\x0d\xd8\x02\xdd\x69\x5e\x52\xbd\x03\xf4\x56\x09\x06\x2b\xa5\xe1\x56\x65\x2f\x5a\xd1\xac\x60\x06\xa8\x03\x70\x63\x35\xb5\xbc\x66\xb0\x65\xa9\xa3\xe1\xd2\x32\xbd\xa2\x19\x23\xb8\x8a\x27\x2d\x76\x40\xfe\x3a\x01\x68\x5c\x02\x9e\x7e\x70\x45\xea\xfc\xd5\x68\x6f\xbc\xb0\xaf\x1b\xa1\x34\x16\xa7\xd9\xf6\x09\x82\x5a\x01\x15\x02\x7c\x59\x1b\x74\x8c\xbf\x78\x54\x69\xdb\x85\xe8\xe9\x9c\x87\xde\x52\x53\xdd\x60\x1e\x1b\x16\x66\x12\xb8\x6f\x8a\x47\x1e\xfa\x4d\xe2\x61\x73\x90\xe8\xff\x0d\x6b\x18\xcd\x86\xac\x99\xa0\xc6\x60\x35\xa4\xd5\x4a\x08\xa6\x81\x97\x1b\xc1\x4a\x26\xad\x81\x65\xd7\xc6\x7b\xff\x1e\x9c\xf2\x91\x81\xab\x6c\x4d\xad\x4f\x8d\x67\xb0\xfc\x52\x31\xbd\xfb\xb7\xc6\x9f\xfb\x47\x8c\xe3\xb7\x5f\xf1\x99\x1d\x9d\x5d\x36\x95\xad\xa9\x48\x40\x56\x65\xca\xf4\x6c\xd2\x9d\xa8\x52\x81\x2c\x99\x92\xd8\x8c\x2a\xb3\x4a\x87\x51\xef\x0a\x46\xd9\x93\x4f\xce\x53\x97\x8c\x7b\x6c\xc1\x0d\xe9\xb9\xd1\xb9\x61\xf6\xae\x5d\x85\xc8\x33\xbf\x3e\x4b\x30\x1d\x24\x4f\x46\xf1\xf7\xdc\xfb\xa3\xf8\x94\xac\xa4\x50\x34\x1f\x05\x97\x09\x46\x75\xef\x6f\x1c\xcc\x80\x69\xc0\xd7\x6a\xa7\x57\xcf\x47\x9c\x36\x30\x85\xda\x02\x05\x81\x72\xec\x84\xe2\xa4\x43\x6b\x94\x39\x4d\x51\x19\x07\xd9\xb4\xc2\x39\x2b\x9d\x86\xab\x0b\xae\xb5\xaf\x2a\x99\x59\xae\xa4\xab\x6f\x9b\xf0\x28\x03\xcd\x6c\xa5\x65\xa3\x9d\xdb\xc1\x89\x71\xec\xa7\x6c\x4e\xec\xe7\x78\xca\x30\xc8\x79\x1d\x4c\xe1\xa9\xb7\x80\xdb\x2c\x7e\xc7\xbd\xc0\x2b\xf5\x7f\x4c\x33\x88\xa6\xe3\x03\x95\x38\x02\x01\x7c\x48\x9f\x59\x66\xc9\x0b\xdb\x99\x70\xd4\x44\x24\xc9\xc2\x28\x22\x06\x43\x0a\x23\x52\xd2\x4d\xd8\x05\xd6\x1c\xbc\xcb\x87\x91\xf9\xc7\x0d\x92\xc3\xb9\x39\x39\xe5\x7a\xf2\xb0\xc5\xec\x08\x75\xc8\x4a\x70\x8c\xef\x15\x30\x98\xa4\xe1\x21\xcd\xed\xc5\x73\xd8\x4f\x8f\x30\x70\xbe\x08\xbd\x91\xa0\xca\x8d\x0d\x83\x0b\x99\x9a\xcd\xec\x22\xad\x84\x98\xf9\xef\x71\x51\x06\x6c\xf4\xa9\xc0\x6b\x74\xee\x2f\xe5\x38\x80\xab\x71\x08\x57\x10\x2c\x9a\xe8\xb0\xc7\x2b\xbe\x4e\xd0\x87\x56\x15\x0e\xdd\xbe\xad\x79\x72\x0c\x39\xeb\x28\x80\x2d\x8e\x3c\x5e\x76\xb9\x66\xc6\x1c\x30\xd4\x6f\x10\xc9\xec\x56\xe9\x17\xe7\xee\x97\x13\x63\xfb\x3e\xa1\x5d\x44\xd1\xb8\xa8\xfb\x91\xef\xc5\x60\xb5\x78\xd7\xc4\x1c\x06\xc6\x8d\x48\xce\x2c\xce\x88\xbf\x5e\xc1\xe0\x9d\xdb\x0e\xcb\x8f\x66\xe5\x67\x8e\x4a\x77\xa7\xdf\xe5\x28\xc6\xb6\x55\x64\x43\xf1\x1f\x5c\x18\xb4\xfd\x09\x06\x45\x7b\xf7\x64\x81\x17\xf5\xc9\x68\x9d\xd3\xa2\x03\xfe\xd1\x01\x13\x70\xed\x6c\x27\x67\xac\x8c\xd1\xac\xfc\xe3\x8b\xdd\xcd\xd8\xa8\x8d\xdf\xe9\xa2\xfb\xdb\x4f\xbe\x05\x00\x00\xff\xff\xec\xae\xf6\xff\x62\x08\x00\x00") + +func uiTsPagesNodesTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesNodesTs, + "ui/ts/pages/nodes.ts", + ) +} + +func uiTsPagesNodesTs() (*asset, error) { + bytes, err := uiTsPagesNodesTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/nodes.ts", size: 2146, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesRest_explorerTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x5a\x5f\x6f\xdb\x38\x12\x7f\xcf\xa7\x98\xd5\xc3\x46\xea\x26\xf2\x02\xf7\x72\x70\xea\xec\xf5\xd2\x74\x7b\xb7\xed\x35\x48\xbd\xc5\x02\x41\xb0\xa0\x25\xda\x52\x23\x8b\x3a\x92\xb2\xeb\x2b\xf2\xdd\x6f\x86\xa4\x24\x4a\x76\xfe\x15\x49\x6f\xb1\xd7\x87\x36\x92\x38\xff\x38\xfc\xcd\x6f\x48\x26\xa3\x11\x28\x51\xcb\x84\x8f\xa1\x62\x0b\xae\x46\x92\x2b\xfd\x3b\xff\x54\x15\x42\x72\x19\x6b\xb5\x37\x42\x91\xe7\x92\xcf\xb9\xe4\x65\xc2\x51\x4a\x67\x93\x20\x8e\x47\x7a\x53\xe5\xe5\x42\x8d\x96\xb9\xce\x64\x5e\x7c\x6c\x9f\xe2\x14\xd5\x02\x18\x1d\xef\xa1\x2e\xbc\xa8\x75\x26\xe4\x18\xde\x32\xad\x61\x2a\x59\xb2\x81\x70\x89\xcf\x7f\x4b\x44\x72\x25\x05\x4b\xb2\x82\xcd\x54\x9c\x88\x65\x84\xf2\xcf\x9e\xed\xc1\x33\x78\x91\x2e\xf3\xf2\x43\xce\xd7\x0a\x72\x05\x3a\x43\xaf\x32\x5f\x32\xb9\x81\xa5\x48\xeb\x82\xc3\x5c\x48\x38\x69\xf4\xb9\x02\x46\x0a\xb9\xd2\x92\xe9\x7c\xc5\x61\xcd\x67\x64\x26\x2f\x35\x97\x73\x96\xf0\x18\xdf\x46\x7b\x4e\xd7\x33\xfe\x79\x0f\xc0\xb8\x04\x94\x3e\xc7\x89\x9f\xba\x79\x93\x5b\x06\x2b\x8e\x1e\x55\xbe\xac\x50\xab\xb5\x65\x7c\xdb\xfc\xe0\xf4\x81\xd2\x05\x2b\x56\xd4\x5c\xc5\x30\xcd\x72\x8a\xd8\xda\x63\xa8\x5a\x2e\x0a\xae\x45\x09\x67\xac\xe4\x45\x6c\xbe\x8f\xf0\x7f\x54\x17\x52\x37\x93\xe9\x39\xa6\x90\xda\xa0\xc8\xcc\x5b\x91\xf2\x02\x12\x51\x6a\x96\x97\x36\x19\x4a\xe3\x34\x13\x52\xc7\x11\x0a\x87\x3e\xf6\xac\x54\xad\x3f\xe7\x11\x1a\x67\xd6\x9c\xf5\xe2\xf9\x21\x4f\x67\x52\x54\x5c\xea\x1c\xf3\xd9\x18\x35\x2e\xe2\x56\x64\xe4\x9e\x5c\xfc\x2b\x26\xdd\x1c\x7f\xe1\x1b\x98\xc0\x32\xae\xd0\x44\x18\x04\xd1\xd1\x4d\x82\x1f\x28\x53\xf7\x13\x3d\x11\x35\xe5\xbc\x13\xfe\x71\x97\xac\x64\xe5\x82\xbf\xd7\x0c\x5f\xef\xb0\x6a\x24\x4f\xcb\xf4\x4e\x39\xae\x2a\x51\x2a\xfe\x46\x2c\x3a\xd1\x8b\x4b\x14\xdd\x95\xb4\x42\x2c\xce\x9d\x82\x05\x0d\x86\x8c\x8f\xf3\xba\x4c\x74\x8e\x2b\xbf\xce\xf2\x24\x83\x94\x27\x98\x49\xbb\x7a\x8d\x7d\xd0\x02\x58\xd9\x59\xfa\xed\xed\x9b\xd7\x5a\x57\xe7\xfc\xdf\x35\x61\x8a\x61\xa4\x0b\x5e\x72\x84\x34\x01\x9c\x1c\xc1\x92\x2b\x85\x45\x9a\x6e\xaf\x48\xeb\xcf\x8b\x27\xfc\x94\x61\xdd\xf5\xcd\x1e\x80\xa8\xb4\x1a\xc3\xef\x4d\xad\xbe\xb5\x3f\x7f\x7b\x7d\xfe\xae\x22\x03\x2a\x1a\x63\x19\x11\xb2\x1b\x8c\x80\xc9\x4a\xca\x34\x73\x23\x47\xed\x40\x3e\x07\x72\x12\x37\x53\x9a\x6e\x2a\x5c\xdc\xc9\x04\x82\x8f\x4a\x94\x41\xe4\xd9\x00\x63\x01\x13\xfa\xcf\xf7\xef\xfe\x15\x5b\x43\xf9\x7c\xd3\x53\x8f\x3a\xcb\xd7\xc0\x0b\x4c\xd1\x0e\xfd\x9e\x3f\xfe\x49\x7b\x3a\x7b\x03\x51\xfa\x11\x17\xbc\x5c\xe8\x0c\x8e\xe1\x47\xf8\xc9\x0e\x8c\x21\x08\x4b\xd1\xad\xc3\x4c\xa4\x9b\x28\x38\x1a\x6a\x5f\xec\x5f\xec\xdb\x74\xc5\x4b\x8e\x1c\x96\x1e\xc0\xfe\x25\xe0\x27\x8a\x80\x4a\xb0\x56\xf8\x05\x1a\x99\x5a\x16\xf8\x3a\xa6\x77\x32\x70\x19\x7f\x14\x79\x19\xee\xef\x7b\x93\xf2\x90\x15\x46\x71\x55\xab\x2c\x24\xd1\xc8\x13\xd0\xb5\x2c\x87\x29\xf2\x65\xae\x77\x82\x50\x25\xac\x84\x34\x57\xc8\xcd\x96\x0e\xed\x17\xe9\xa0\x84\x40\x33\xb4\xc1\x25\x32\x1a\xcc\x98\xe2\x29\x20\x54\xe8\x5b\x52\x4b\xa4\x75\xdd\x99\xb2\x54\x06\x62\xee\x57\x16\x61\xb1\x29\x1f\x62\x39\xde\x9a\x5e\xe7\x45\x01\x35\x81\x99\x1c\xd4\x55\x55\xe4\x3c\xed\xac\x65\x88\x3c\xb0\xd9\x6b\xf4\x5c\xd2\x8d\xe2\x8c\x13\x5e\x11\xd0\x4d\x88\xed\x30\x7e\xbe\x91\x76\x5a\xac\xd3\x24\x43\x6b\x7d\x0c\x36\x5f\xd1\x78\x88\x6c\x64\xb5\x65\xae\xf8\x73\x56\x6e\x8e\x07\x98\xe6\x65\x5a\xe1\x22\x11\x73\x04\xa3\xab\x95\x69\x7d\x23\x33\xcf\x9f\x14\xcd\x7b\x12\xc0\x0f\x28\x44\xa5\xfb\xeb\xf9\x3f\x4e\xc4\x12\x63\xc3\x64\x85\x5d\x66\xc2\x28\xea\x57\xc3\x77\xdf\x35\x79\xc2\xa1\x1e\x7c\x5b\x67\x3f\x4c\x60\xff\x7b\x7c\x9b\xec\xdf\x62\xdd\x1a\xd8\x85\x6d\x87\x91\x65\xec\x96\x20\xf4\x9d\x34\xc9\x70\x80\xf5\x46\x10\x9e\xe3\x36\x06\x7f\x00\x4b\x08\x9b\xb2\x1e\xfb\xcc\xd1\x8d\x5f\xb7\x31\xec\x46\x1e\x06\x8c\x3d\xb2\x07\xbd\x16\x75\x4c\x2e\xb8\x26\x26\x69\x3a\xa1\x93\xee\xc1\xf1\xc0\xe2\xb1\xb3\xd8\x07\xa6\x87\xc7\xae\xd3\x10\x1c\xbd\x76\xb2\x8d\xc8\xce\xda\x10\x9a\x0f\x45\x64\x67\xe9\x61\xd0\x34\x33\x7d\x74\x6c\x1a\xab\x23\x42\x65\x9b\x8c\xd0\x03\x89\xed\x5e\x26\x0d\x5b\xae\x3a\x82\x47\x8b\x4f\x0a\x19\xa0\x95\xcd\x59\x91\xff\x07\xf7\x94\x4d\x42\x2c\x89\xc1\xe7\x06\xbe\x86\x63\xaf\x3d\x9c\xf5\xcb\xc8\x06\x63\x5b\xc9\xd9\xbb\xf7\xd3\x41\x2b\x71\x93\xc4\x4d\x63\x39\xcf\xa9\x4b\xb7\x6e\x90\x9b\x2d\x1f\xf7\x15\xc0\x92\x36\xd7\xae\x0d\xbe\xe6\x2c\xe5\x32\x0c\x4e\x70\x5b\x85\x49\x3d\xa4\xc6\x15\x1c\x40\xa0\x71\x6a\xa3\xaa\xc0\x9d\xd6\x11\x24\x19\xc3\x4e\xae\x27\xbf\x4e\x5f\x1d\xfe\x15\x03\x38\xea\xd9\x73\xf3\x40\xb3\xfe\xf7\xeb\x1d\x41\xba\x76\xe2\x01\x36\xec\x15\xf6\xcd\x95\xed\x7e\xde\x51\x82\x89\xdb\x27\xfd\xcf\x8a\xd0\x6d\xd4\xfe\x88\x65\xe8\x72\xf3\xe8\x85\xe8\xec\x7e\x2b\xc5\xa7\x2b\x45\x46\x48\x49\x18\x99\x1a\x7d\x3a\x5c\xaf\xd7\x87\x78\x28\x59\x1e\x62\x26\x6c\xcf\x4c\x9f\xa8\x42\x1d\x9a\x1f\xb9\x46\x0b\xce\x24\x1d\x28\xcc\x83\xfa\x82\xbd\x4e\x63\x21\xf4\xb3\xe9\x6f\x28\xcd\x09\xa5\x5d\xc1\x3d\x2f\x16\xef\x30\x39\xab\x35\x1d\x47\xcd\x41\x25\xe3\x05\x1e\xf7\x3a\x0f\x3a\x63\xba\x77\xe2\x48\x30\xff\x57\x6c\x86\x94\xe1\xd4\xdc\xa9\xb0\x31\x36\x38\x71\x2e\x78\xff\xc0\xd9\x1a\xb6\xda\x21\x71\xab\x3b\x41\x20\x2e\x4a\x63\x7d\x1c\x46\x93\x63\x2c\xba\x03\x62\x2f\x72\x95\x9a\x2f\x33\x21\x70\xba\x65\x37\xd5\x26\xed\x61\x90\x97\x55\xad\x2f\x34\x82\x64\x62\xed\x5e\x22\x58\xfc\x8a\x45\xa6\x1a\x03\xf9\xea\x10\xdd\xda\x6e\x9f\xc2\xa8\x1b\x6d\x42\x69\x1e\x9a\x91\x66\xeb\xb3\x9d\x45\x3b\x89\x57\x39\x2f\xd2\xfb\xa5\x12\x33\x4e\x61\xc3\xdc\xa8\x7c\x61\x1a\x8d\xf2\xf3\xe9\x71\x3f\x91\x76\xc2\x94\xb4\xe9\x17\x25\x91\x8c\xf5\x53\x88\xed\x2f\xe1\x99\x28\xb0\x2a\x1f\x96\x48\x97\xfb\x95\x6d\x71\xbd\x04\x67\xb4\xa7\x45\x62\x8b\xd7\x48\x81\x2f\xb4\xc6\x7a\x37\x62\x81\x9b\x40\x74\x43\xd2\xdd\xa5\xc5\x29\xb5\xac\x76\x87\xdc\xc6\x9a\x14\x4c\x29\x20\xe2\x90\xa2\x28\xda\xcb\x13\xb3\x5a\x23\xef\x3a\x23\xde\x2a\x98\x33\xe4\x52\x6a\x8a\xed\xf9\x7e\xce\x8a\xde\xf9\xf3\xca\x5c\x68\x98\xcb\x92\xb8\x25\x78\x9f\xde\x8b\xc1\xb0\x69\xec\x47\x7b\x7e\x00\xaf\xdc\xca\xf5\xfc\x5b\xd6\x70\x4c\xef\xda\x51\x8f\x1f\x75\x96\xab\x78\x10\x67\xa8\x65\xed\x47\x07\xce\xb5\xbf\xcb\x8c\x62\xc4\x14\x56\x19\xa9\x27\x82\xee\xac\x34\x3f\x80\xde\xeb\x6e\x4a\xc3\x48\xff\x8e\x9c\x97\xb6\x48\x53\xee\xd2\x82\x49\x4e\x8d\x1b\x31\x8e\xf4\xc3\x8a\x62\xc6\x92\x2b\x6f\x2e\x95\xcc\x57\x08\x6f\x68\xac\x63\x42\x90\x9c\x26\xc7\xbb\x67\x30\x4c\x30\xee\x4a\x86\x0a\x36\x35\xc1\xcf\xa7\xd3\xc0\x13\xac\x84\xba\x49\xd2\xb6\xa3\x4e\x34\xc3\x56\x72\x83\xe8\xeb\xd3\x17\x2f\x7d\x51\xcc\xde\x8e\x90\x9d\xf0\xcb\xd3\x37\xa7\xd3\xd3\x60\x9b\xd3\xb7\xb7\x17\x0d\xf4\xc2\x68\xbc\x13\x87\xae\xe6\x4a\xbe\xf6\x70\x1a\xde\x6d\x79\x95\xf3\x75\x98\x68\x6c\xfb\x9d\x5a\xb4\x6d\x17\x6b\x59\x71\xa3\x41\x09\x6f\x69\xc4\xe9\xa8\x43\x17\x20\x96\xd9\x45\xaf\x37\xa2\x5e\xf6\x17\xea\xb2\xbf\x8c\x3e\xc0\x19\xcb\x65\x10\x1d\x0c\x05\xa8\xdd\x6e\x29\x82\xa5\xa1\x30\xc0\x72\xc0\x41\x8a\x30\xc6\x5a\x71\x4f\x83\x45\x1f\xd8\x44\xab\x31\x02\x99\x32\xfc\xbd\x64\x52\x1e\x0d\x9d\xb6\xc6\x3f\x38\x6e\x30\x46\xb1\xd6\xee\x69\xde\x35\x9a\xe0\x67\xae\x1b\x65\x84\xd9\x03\x95\x69\x3f\xd2\x68\x13\xa0\x1e\xa8\x7e\x56\xb7\xbe\x09\xb9\x0f\xd4\x7e\x69\x60\xd9\x18\xb0\x20\xbd\x97\x89\xcb\xee\x12\xc9\xdb\x07\xec\xa0\xd2\x73\x62\xe2\xaf\x4a\xa5\xbd\x1b\x5a\xcb\x5b\xdd\xa7\x81\x98\xbd\x9e\xf5\x84\xf0\xc3\xd7\x26\x55\xef\x56\xe9\xcf\xca\xa9\xdf\xd8\xcf\xb2\x9f\x29\x86\x07\x53\x9f\x01\x6e\x53\xa3\x1d\x94\x1f\x99\x03\x11\xf9\x3d\x1f\xf8\xfe\x35\x69\xf0\xe9\x99\xc8\x1d\xb4\xfe\xd8\xdb\x3a\x17\xe4\x9d\x1c\xd4\x14\xee\x23\x73\x51\xff\xfe\xe2\xcf\x4a\x47\xdf\xb6\x78\x4f\x49\x72\x0e\xc2\xdf\x76\x78\xff\x27\x3b\xbc\x37\x62\xb1\xcd\xa9\xdd\x9f\x2f\xec\xc4\x70\x21\x16\xdb\xbf\x13\x76\x4c\xbb\x79\x6e\x59\xec\xe2\xf2\xb8\x2b\x2e\x73\x1d\x35\x06\xba\x67\x58\x89\x3c\x7d\xbc\x32\xf2\x99\xd2\x44\xe5\x36\x83\xdd\x4d\x97\x9f\x16\x17\x86\x23\x4b\x77\x45\xe6\x5d\x65\x3e\x5e\x0d\xf6\x8a\x0f\x9d\xdc\x56\x6f\xa5\x12\xc5\xd6\xb6\xa2\x01\xc0\x09\x45\xd9\xac\xbf\x09\xf9\xc0\x31\x94\xe5\xcf\xbe\x96\x91\x2a\xcc\xef\x8b\x97\x0c\xfb\x59\x13\x78\x88\x6b\x32\xbc\x57\xf5\xc3\x45\x07\x24\xd1\x1b\xbf\xf6\x11\xb4\x0b\x40\xfd\x3f\x4b\x39\x63\x8b\xee\x17\xf0\xb7\xad\x27\x7c\xbe\xbe\x2d\xbd\xf7\xc8\xe7\xae\x64\xee\x64\xbb\x1d\x6c\xd5\xbf\x1b\x1a\x96\x5d\xff\xb8\x33\x1c\x1d\x6e\x41\x86\x15\xd7\x7f\xf7\x0b\xeb\xe0\x96\x62\xa4\x7f\xd7\x7b\xff\x0d\x00\x00\xff\xff\x29\xf7\x5b\xb6\x59\x25\x00\x00") + +func uiTsPagesRest_explorerTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesRest_explorerTs, + "ui/ts/pages/rest_explorer.ts", + ) +} + +func uiTsPagesRest_explorerTs() (*asset, error) { + bytes, err := uiTsPagesRest_explorerTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/rest_explorer.ts", size: 9561, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesStoresTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x55\x4b\x6f\xdb\x38\x10\xbe\xfb\x57\x0c\x74\x08\xa4\xac\x97\xda\xc7\x4d\x5e\x07\x9b\xa6\x45\x11\xa0\xe9\x03\x06\x7a\x09\x0c\x83\x96\x68\x8b\x09\x45\xba\x24\x65\xd7\x08\xfc\xdf\x3b\xa4\x1e\x96\x1c\x39\xc9\xad\x02\x2c\x8b\xe4\x7c\xdf\x7c\x33\x9c\x21\xe3\x18\x8c\x2a\x75\xca\x12\xd8\xd0\x35\x33\xb1\xb1\x4a\x33\x43\xac\x19\xc5\xb8\xf6\x9f\x66\x2b\xa6\x99\x4c\x19\x2e\xdb\x7c\x1a\x10\x12\xdb\xfd\x86\xcb\xb5\x89\x0b\x6e\x73\xcd\xc5\x43\xfb\x45\x32\x84\x05\x10\x5f\x9d\x85\x16\x2a\x63\xa2\xf6\xb1\x30\x96\xda\xd2\x34\x10\xc4\xc0\x75\x69\x73\xa5\x13\x78\xa7\x69\x01\x1f\x75\x29\x19\xd7\x10\x2e\x71\x44\xd6\xd5\xe8\xff\x75\x41\xd1\x51\xaa\x8a\x08\x11\x97\x97\x23\xb8\x84\xeb\xac\xe0\xf2\x3b\x67\x3b\x03\xdc\x80\xcd\xd1\x9f\xe6\x05\xd5\x7b\x40\x77\xa5\x60\xb0\x52\x1a\x6e\x54\xfa\xa8\x15\x4d\x73\x66\x80\x3a\x00\x37\x56\x53\xcb\xb7\x0c\x76\x6c\xe9\x68\xb8\xb4\x4c\xaf\x68\xca\x08\x8e\xe2\x51\x8d\xed\x90\x3f\x8d\x00\xbc\x4b\x40\xeb\x99\x4f\x53\xe3\x70\x8b\x06\xde\x0d\xfb\xb9\x11\x4a\x63\x7a\xfc\x74\x15\x21\xa8\x15\x50\x21\x6a\x08\xf1\xf8\x18\xdf\x68\xab\xb4\x6d\x44\xd6\x84\xce\x49\xbb\xb4\xa5\x1a\x7c\xae\x66\x9e\x88\x99\x04\xee\x7c\x06\xc9\xec\x38\x4b\x6a\xe4\x14\x24\x8a\x38\xbb\x1e\x46\x93\x2e\x75\x2a\xa8\x31\x98\x15\x69\xb5\x12\x82\x69\xe0\xc5\x46\xb0\x82\x49\x6b\x60\xd1\xec\xe7\x5d\xf5\xdf\xb1\xaa\xe4\x81\xcb\xf0\x96\xda\x2a\x42\x9e\xc2\xe2\x47\xc9\xf4\xfe\xc3\x16\x5f\x77\x33\x54\xf2\xf7\x5f\xf8\x4c\x4e\x6c\x17\x3e\xc3\x5b\x2a\x12\x90\x65\xb1\x64\x7a\x32\x6a\x2c\xca\xa5\x40\x96\x54\x49\xdc\x94\x32\x45\xbd\x61\xd4\xba\x82\x7e\x0a\xc8\x37\xe7\xaa\x89\xc6\x3d\x36\xe7\x86\xb4\xe4\xe8\xdd\x30\x7b\x5b\x8f\x42\x24\x9a\x5e\x0d\x33\x8c\x3b\xe1\x93\x5e\x04\x2d\xf9\xe1\x44\xa1\x92\xa5\x14\x8a\x66\x3d\x79\xa9\x60\x54\xb7\x0e\xfb\x6a\x3a\x4c\x1d\xbe\xba\x8a\x8e\x75\xf4\x15\x5b\x0f\x4c\xae\x76\x40\x41\x60\x65\x36\x25\x43\x53\x5f\xa1\xe6\x58\x39\x75\xed\x0c\x57\x8f\xa7\x69\x84\xd5\x06\xab\x52\x22\x89\x92\x2e\xbb\x75\xb0\x3d\xf5\x9a\xd9\x52\x4b\x5f\x3b\x37\x1d\x8b\xbe\xee\xe7\x6c\xae\xe2\x87\x78\x8a\x30\xc8\xf8\x36\x18\xc3\x7d\xbb\x02\x6e\x32\xff\x07\xe7\x82\xba\x54\x3f\x61\x88\x41\x34\xee\x5b\x94\xe2\x04\x05\xf0\x65\xf9\xc0\x52\x4b\x1e\xd9\xde\x84\xfd\x2d\xcc\x98\x49\xc3\x28\x22\x06\x45\x85\x11\x29\xe8\x26\x6c\xa4\x55\x96\xb7\x59\x57\x5c\xf5\xb8\x76\x72\x40\x57\x22\x03\x6c\xf7\x35\x70\x3e\x39\xc1\x1d\x43\x13\x1c\x35\x3e\x01\x0a\x4a\x3c\x13\xa9\x4e\x32\x9e\xc1\x61\x7c\x02\x82\xe1\x54\xb4\x8b\x04\x2b\xdd\xd8\x30\xb8\x90\x4b\xb3\x99\x5c\x2c\x4b\x21\x26\xd5\x77\x3f\x33\x1d\x36\x7a\x9f\xe3\x99\x3a\xad\x8f\xe8\x38\x80\x3f\xa0\x96\x8c\x5f\xc1\xdc\x4b\xc3\x5d\x5e\xf1\x75\x82\xfc\x5a\x95\xd8\x74\x87\x26\xeb\x49\xc7\x7c\xd0\x41\x80\xd5\x0d\xc1\x2b\xae\x25\x1e\x2f\x95\x67\x1f\xbe\x1b\xfa\x97\x4b\xc1\x0b\x1a\x82\xcf\x68\x93\x0c\xc2\xce\x68\xd9\xe1\xd1\x83\x87\x6f\x86\x81\x9a\x13\x20\xad\x66\x89\x64\x76\xa7\xf4\xa3\xf3\xfb\xe7\xb0\x45\xfd\xff\xcc\xc1\x3c\x8a\xfa\x7b\x7c\xe8\xa9\x98\x77\x46\xf3\xb7\x75\xf0\xb1\x81\xdd\xb9\x9f\x31\x8b\xb7\x54\x75\xf0\x83\xc1\xdb\x00\x3b\xd4\x0b\x7b\xad\x83\x7f\x67\x03\xb7\x97\x0d\x96\xd3\xb4\xd9\x3b\xb2\xa1\x78\xfb\x86\x41\x53\xe7\x41\x27\x71\x6f\xef\x78\xa8\x3a\xed\x59\xcb\x0f\xb5\x87\x43\xfe\xdb\x22\x13\x38\x5f\xb6\xfd\x1e\x7e\x5f\xe5\xbc\xed\xfe\xde\x7e\xbe\xb0\x9d\xee\x77\x18\xfd\x0a\x00\x00\xff\xff\x2a\xcc\x4b\x96\x07\x09\x00\x00") + +func uiTsPagesStoresTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesStoresTs, + "ui/ts/pages/stores.ts", + ) +} + +func uiTsPagesStoresTs() (*asset, error) { + bytes, err := uiTsPagesStoresTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/stores.ts", size: 2311, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTsconfigJson = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x84\x92\x41\x4b\x3b\x31\x10\xc5\xef\xfd\x14\x65\xcf\x7f\x12\x0a\x7f\x2f\xde\x44\x7a\x10\x94\x7e\x00\x91\x12\xb7\xd3\x36\x25\xc9\x84\x99\x49\x51\xa4\xdf\xdd\x49\x5a\xb1\x75\xbb\xba\x97\x85\xfc\xde\x7b\x93\x79\xbb\x1f\x93\xa9\x3e\xdd\x1e\x88\x3d\xa6\xee\x76\xda\xcd\xcc\x7f\x33\xeb\xfe\x1d\xcf\x7b\x8c\xd9\x07\xa0\x45\x16\xc5\xac\xfc\x68\x68\x50\x1c\x6d\x40\xaa\x07\xf8\xe6\xe4\x68\x20\xe2\xaa\x04\xa8\x40\xfd\x11\xd3\x8e\xcf\xe9\x0a\xfa\xe0\xc8\xc9\x71\xde\xda\x05\x86\x33\x9a\xf0\x21\xe6\xe0\x7b\x2f\x77\xe9\xfd\x2a\x9f\x47\x2f\x8b\x34\x27\x42\x52\x2e\x54\xce\x31\x41\xc4\x3d\xdc\xeb\x58\x48\xc2\x43\x9e\xf0\xd1\xbf\x5e\x89\xc5\xd2\x16\x31\xb6\x78\xbb\x63\xeb\x72\x36\x97\xb7\x66\x2c\xd4\xc3\x93\xcb\x5f\xe6\x86\x0e\xa7\x9e\xd6\x5a\x52\x9d\xf6\xfc\x6d\x30\x76\x0b\x6e\x05\x64\xe4\x22\xc7\xb4\xec\x9f\x67\xda\x18\x04\xb6\x49\x5f\x4b\x16\x27\x85\xc7\x24\x95\xfe\x02\x91\xfe\x0a\x10\x1f\x81\x81\x3c\x0c\x15\xf5\x6b\x63\xaa\xc5\xd9\x08\x42\xbe\x1f\x4a\xb2\xdb\x00\xdb\x0d\xb9\xbc\x1d\x61\x75\x87\x31\x5f\xbb\xdf\x18\xd4\x1f\xc5\x2b\x1f\xa1\xea\x93\x25\xbc\xe5\xa0\x09\x4d\xd3\x24\x2f\x93\xc3\xe4\x33\x00\x00\xff\xff\x2f\x17\x33\x4e\xc3\x02\x00\x00") + +func uiTsTsconfigJsonBytes() ([]byte, error) { + return bindataRead( + _uiTsTsconfigJson, + "ui/ts/tsconfig.json", + ) +} + +func uiTsTsconfigJson() (*asset, error) { + bytes, err := uiTsTsconfigJsonBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/tsconfig.json", size: 707, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTypingsD3D3DTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\xeb\x72\xdc\xb6\xb2\x28\xfc\x3f\x4f\xc1\x4a\x55\x6a\x8d\x52\xb2\x9c\x4b\x7d\x5f\x9d\x92\xb3\xa3\xe3\xf8\x96\xec\x6d\x27\xde\x1e\x39\x95\xac\xd4\xaa\x55\x18\x12\x33\xc3\x98\x43\x4e\x40\x52\xd2\x24\xdb\x0f\x74\x9e\xe3\xbc\xd8\x41\x37\x00\x12\x04\x01\x10\xe4\x8c\x2c\x59\x91\xaa\x6c\xcd\x08\x40\xdf\x70\xeb\x6e\x34\x1a\x0f\x1f\x46\xe7\xbb\x2d\x8d\x12\xba\x4c\xf3\xb4\x4a\x8b\xbc\x8c\x96\x05\x8b\x92\xaf\xff\x73\xfe\x09\x2f\x7c\xcd\x8a\xdf\x69\x5c\x9d\x46\xeb\xaa\xda\x9e\x3e\x7c\x98\x7c\xfd\x7b\x79\x52\xb0\xd5\x43\x28\x7c\xaa\x35\x5a\xec\x4e\xa3\xef\x0a\x96\x96\xd1\xaf\x24\x7f\x57\x5c\x44\xdf\x40\x8b\x92\x37\x59\xa5\xd5\xba\x5e\x9c\xc4\xc5\xe6\xe1\x02\x2a\xec\xb0\xfc\x5b\x03\x80\xc0\xe0\xae\xff\x50\xd6\xa5\xd9\x0e\x08\x4e\x3e\xf9\x24\xa1\x71\x46\x18\x8d\x36\x45\x52\x67\x34\x7a\xfa\x75\xf4\xd7\x27\x11\xff\xa1\x57\xdb\x82\x55\x51\x9a\x57\x94\x2d\x49\x4c\xa3\x39\xcd\x38\x0b\x05\x2b\x65\x05\xf8\x79\xf8\xf9\xe7\xcd\xe7\xcf\x65\x8d\x88\xe4\x11\xff\xb0\xa1\x79\x15\x2d\x59\xb1\x89\xaa\x35\x8d\xe2\x9a\x31\xf8\x43\x52\xc4\x35\x94\xb4\xad\x1e\x36\x1f\x4b\x6c\x7e\xaa\x81\x37\x51\x08\x34\x6f\x68\x55\x33\x2e\x2b\x80\x4b\x37\xdb\x6a\x27\x5b\x72\xfe\xbb\x35\x1f\x76\xbe\xce\x8e\x4e\xa3\x7f\xcf\x55\xcd\x6f\x48\xbe\xfb\xf6\xd1\x00\x26\x51\x5b\x60\x5a\xa6\xac\xac\x1a\xc6\xaa\x35\xa9\xa2\x0d\xa9\xe2\x35\x15\xc5\xe5\x96\xc6\xe9\x32\xa5\x89\x24\x86\x77\x7e\x59\xb1\x34\x5f\x75\x41\x1a\x08\xfe\xf7\x96\x30\xb2\x69\x9b\x34\xe4\x45\x73\x6c\x1c\x55\x85\xc0\xe2\x65\x4c\x35\x3f\x95\x28\xf7\x63\xb4\xe5\x24\x2f\x12\x1a\x42\xbe\x12\xca\x8f\xbc\x7e\x2b\xa1\x42\xb2\xe5\x25\x5d\xd6\x3e\x8d\x9e\x5d\xf0\x5f\xe7\x84\xad\x68\xe5\x23\xff\xfd\xa3\x4f\xfc\x83\x6f\x53\x67\x55\xba\xcd\x1a\x3a\xca\x29\x63\xf0\x71\x96\x0d\x0f\x43\x25\x33\x92\x65\x2d\xb2\x76\x5c\x38\x46\xc5\x47\x3c\x1c\x08\x63\x64\x17\x15\xcb\x86\xdb\x11\x63\xa3\x8c\x1e\xab\xd6\xb9\x36\x4a\xca\x71\xc3\xa4\xec\x8c\x93\xdf\xfe\x35\x30\x52\xf0\xd7\x27\xf6\xd5\xec\xe9\xd7\x08\x89\x17\x54\x34\x4f\x4a\x01\x57\xeb\xf3\xe4\xea\x34\xca\xeb\xcd\x82\xb2\x16\x64\xb2\xeb\xff\x2d\xce\x52\xde\xf0\x17\x57\xc1\xaf\xfd\x82\x8a\x91\xbc\xcc\x48\x45\x55\xd1\x6f\xff\x6a\x0b\xcb\x98\x64\xb4\xdf\xa6\x2c\x6a\x16\x53\xa4\xf1\x54\x91\xde\x96\x5a\x48\xb5\x50\xfa\x8e\xee\x9e\x70\xd1\xf7\x0b\x48\x56\xfd\x17\xdd\x9d\x9d\x46\x8b\xa2\xc8\x28\xc9\x35\x1e\x2a\x96\x39\x8a\x36\xb4\x22\x8e\xa2\x72\x9d\x2e\x5d\x10\x2b\xbe\xe9\xa8\x71\xe9\xef\xa0\xef\x48\x49\x9b\xde\x19\xde\x7b\x9e\x30\xca\x45\x1a\x91\x68\x41\xd7\xe4\x22\xd5\x26\x9a\x36\x96\x54\x19\xdf\x63\xe5\xa7\x13\xf5\xe1\x91\x03\xee\xe3\x38\xa6\x65\xd9\x59\x3f\xea\x92\xb2\x88\xe2\x78\x81\x3d\x1e\x49\x26\xdd\xed\x47\xc3\x49\x8d\x4e\x73\xd1\x5f\x6c\xb6\xb0\x0d\x57\x97\x45\x74\x41\xb2\x9a\x0a\x05\xa2\xe4\x42\xe1\xa2\x3a\xd1\x6a\xaa\xed\xef\xc1\x97\x51\xba\xe4\x0c\x73\x5d\x21\x13\x24\xf2\x8d\x77\x71\x1c\xf1\x56\x6d\xc9\x0a\xc5\xc2\xf4\xc2\x2f\x5a\x58\x1a\x54\x39\x5d\x49\xf4\x1c\xf7\x39\x24\xa1\x5f\xbc\xe0\x3d\x11\x17\x79\x62\x96\xb7\xec\x92\x32\xe6\x3d\xc6\x49\xfe\xe6\xfc\xdb\x19\x39\x8d\xce\x8f\xa3\x05\xff\xff\xa8\x3f\xec\x0e\xc8\xbf\x85\x4b\xb7\x70\xae\x97\xff\x84\x4e\x14\xc0\xf3\x94\x83\x85\x61\xb6\xe1\xfa\xd9\xa6\xde\x08\x14\x7c\x74\x81\x3e\x85\x4b\xaf\x97\x6e\xc6\xe4\x0a\x8b\x0b\x2a\x61\xda\x1e\xd1\x54\xda\x90\x2d\x8c\xe7\x92\x0b\x84\xcb\x61\x59\xe7\xce\x41\xcb\x69\xf8\x86\x13\xfe\x96\x73\xc0\xf8\x6c\x39\xff\xed\x5f\xc7\xd0\xfa\x34\x9a\x5d\x9c\x21\x4b\xe9\x99\xe2\xe7\x28\xfa\x8f\x6f\xa3\xb7\x9c\xbd\xb7\x37\xc0\x99\x41\x71\x4b\x2e\xa7\xe7\x7c\x98\x1e\x72\x75\xf3\x92\x26\x57\xd7\x21\xe9\x83\x73\x66\x50\x3c\x56\xd2\xb2\xe7\x09\xff\x7e\x1b\xa4\x8e\xfb\x4a\xe5\x12\x3c\x4c\xd7\x46\xd6\xfa\xee\x7c\x23\xdc\xf5\xa9\xee\x0a\xdf\x4d\x20\xac\xa9\x35\xdf\x14\x51\x8d\xe3\x34\x71\xe5\x4b\x51\x83\x8a\x18\x8e\xaa\xf2\x03\x8a\x9d\x13\xa1\x53\xdf\x13\xb8\x1c\xe7\x21\x7b\xc5\x35\xf2\xd5\xa1\x57\x10\xab\x14\xb5\x51\xa4\x11\xc6\x4d\x70\xae\x27\xa5\x31\xd7\x96\x38\x81\x37\x2e\x7e\xa0\xe2\xd0\xf2\xbf\x66\x26\xbb\xc4\xef\xd1\x19\x1b\x9a\xa4\x4e\xf2\xa2\x19\x54\xf9\xe2\xe4\xff\x7b\xf0\x47\x4d\xf2\x2a\xcd\xe8\xd1\xc9\x07\xed\x17\xa0\xed\xd0\x3d\xf3\xe1\x38\x36\x39\x99\xd8\x4d\x24\x52\xb4\xa0\xea\x47\x50\xf9\xd3\xed\x4e\x49\xfb\xfe\x5d\xb3\x8d\xce\x39\xf7\x0d\x36\x5e\x93\xa1\x52\x69\x63\x49\xd5\xe2\xbd\xd1\x61\xeb\x38\xda\x76\x36\x66\x3f\x8f\x2f\x8b\x98\xc8\x7e\x49\x73\x6e\x3f\xa0\x51\xbf\x2d\x52\x69\x43\x5c\xe1\x4e\xa1\xc8\xde\x10\xfe\x77\xfe\x4f\x09\xa0\x60\x09\x65\x7b\x33\x7d\x15\xfd\x8c\x7b\x52\x53\x45\x5a\x2f\x1d\x6a\xfa\xcd\xb2\xe2\x32\x7a\xd5\x51\xdc\x60\x44\x21\xb2\xb2\x5e\x94\xd4\xd2\x64\x9d\xae\x57\xd1\xab\xce\x46\xe8\x6c\xa3\x19\x67\x69\xc9\x6d\xbc\xee\x2c\xb8\x42\x15\x88\x93\xd0\x28\x41\xc7\x1c\xfa\x6a\xdd\xea\x44\x43\x83\xeb\xb6\x09\xfe\x7a\xe5\xbe\x5a\x4f\x95\xfb\x4b\xba\xbc\x97\xfd\x0d\xc9\xfe\x0d\x6f\x7b\x70\xe1\x7f\x87\xa0\xa3\xba\x04\xbf\x21\xec\x00\xe8\xc8\x28\x98\x7f\xf5\x94\x95\xa4\xdb\x63\x60\xdf\x12\xd4\x17\x6c\xa6\x9a\xf1\x35\x32\x21\x15\x37\x7a\x49\xbe\xe3\x96\x4b\x9e\xd0\xab\xce\x1a\xc9\xff\x7c\x84\x85\x2e\xa2\xdf\x70\x15\xba\xd8\xa4\x7f\x8a\x41\x83\x43\x40\xdf\xc0\xc2\x57\x7e\xa6\x00\x59\xd5\xba\x75\xbd\x5c\x66\x34\x5c\x91\x7e\x43\x05\x29\xfa\x46\xda\x78\x30\x39\xf3\xbc\x54\x7a\x67\xf5\x1a\xc8\x3f\x0d\xd7\x7d\x18\x35\xc6\xbc\xaa\x25\x01\xc9\x9a\x71\x81\xf3\x04\x11\x36\x42\xc2\xb3\x10\x45\x51\xb9\x2e\xea\x2c\x89\x16\x54\x6e\x6b\x7c\x36\xa5\xd6\x0e\xdc\x52\xb6\xe1\x3b\xaf\x90\x02\xef\x16\x18\x79\x12\x99\xfc\x7e\x24\x7f\xbb\x24\x73\x0e\xce\xcc\x6d\x51\xc2\xee\x7d\xc1\x75\x41\xb2\xe0\xfb\xa9\xe8\xf1\x66\xfc\x0f\x6e\xd8\x92\x33\x74\x06\x57\x0a\xa0\x8d\xde\x3f\xd3\xed\xec\xe4\xe4\x04\x9a\x04\xd2\xf7\x9a\xb0\x52\x0c\xa6\x55\x7a\x41\xf3\xe8\xab\xa7\x11\x59\x2e\xd3\x9c\x0a\x44\x7c\x35\xd8\x48\x6f\xe4\x71\x44\x4a\x71\x7e\xc7\xc5\xb5\xd8\x45\xf3\x9f\x5f\xfc\xa3\xd4\x6a\x91\x8a\x57\x5b\x70\x69\x79\xb9\x69\x0f\x00\x3d\xa8\x6c\xac\x35\x75\x66\x2d\x08\xcd\x81\xef\x99\x33\x5a\x17\x68\x83\x2f\x40\xf2\x1b\xc2\xa1\x5f\x45\xe7\x97\x45\x94\xa4\x7c\xe4\x94\x1c\x25\xc9\xda\x15\xd9\xdb\x15\x4d\xe1\x4c\x80\x09\xec\x0f\xe1\xa6\x2d\x5b\x52\xf5\xd1\x5c\x6f\x33\x5e\x04\xc4\x27\xbf\x93\x18\xfc\xab\x5b\x92\x06\x18\x0f\x16\x58\xbc\x31\x4b\x29\x8e\x28\x80\xa1\x37\x64\xd2\x7f\x88\x74\xfe\xf6\xaf\xb6\x39\x47\xfc\xd5\x83\xe6\xf8\x4a\x10\x03\xdb\x05\x25\x7c\xdf\xe8\x42\xd1\xa6\x10\x50\xa8\x4d\x20\x25\x00\xb7\x08\x5e\xa6\x65\x85\x23\xf2\x1d\xdd\x95\x6a\x75\xe3\xab\x67\x9c\x92\x8a\x8f\xd1\x80\x95\x0e\x2d\x0b\x45\x72\xb1\xf8\x5d\x9c\xd5\x14\xd1\x8a\x36\x80\x1b\x1f\x2a\x2b\x36\x36\xb2\x01\xf7\x0c\x6d\x0c\xb1\x26\x8b\x81\x16\x40\xb4\x84\x7b\x1d\x64\x0f\x90\x2c\x8a\x75\xa2\xbd\x23\x4d\x17\xf3\x03\xb1\x21\xab\x41\x71\x4d\x32\x97\x58\x70\x44\x38\xb9\x90\x34\x04\xb3\xb1\xa1\x6c\x45\xdb\x53\x4d\x31\xad\xe1\xcc\xa1\x88\x8a\x9c\x0e\xbb\x96\x1a\xba\x91\x5a\x84\x66\x37\xdc\x78\x01\xac\xad\x8a\xae\xe1\xa9\xfc\x82\xe6\x94\x89\x33\x17\xbe\x16\xac\xa8\xb4\xd0\x28\x4b\x63\xd9\x57\x27\x36\x4c\x58\x77\xf8\x74\x75\x18\xba\x38\xd8\xfd\xe2\xa4\xdb\xd0\x00\xa3\x4e\x54\xab\x62\xdb\x6a\x82\x2b\x05\x1b\x3a\x4e\x40\xaf\x0a\x57\x43\xba\x8d\xe6\xf0\xdf\x82\x56\x97\x94\xef\x20\xb8\x1a\x74\xdd\xff\x06\x87\xf0\x33\x03\x8c\xad\xea\x06\x60\xfa\xaa\x9b\x2e\xdb\xa9\x52\x08\x64\x9f\xb0\x4a\xd3\x84\xe1\xeb\xed\x11\x14\x27\x46\x97\x54\xb1\x3d\x1b\x23\xb8\xf7\xfe\xad\x26\xca\xe9\x25\xff\xc7\xd7\x82\x62\x0b\xbc\xd8\x0f\x06\xa1\x02\xc4\x87\xfc\xc8\x7f\xbb\x95\xc0\x3f\x6a\x80\xc3\xbb\x82\x8a\xf3\x58\xa9\x5c\xff\xf2\xea\xe5\xf7\x55\xb5\x95\xe5\xd6\x41\x7f\xb5\x66\xc3\x43\x5e\xdf\x1b\xcb\x5d\x1e\xaf\x59\x91\x17\x75\xc9\xd1\x09\xc4\x78\x1e\xd6\x9c\xc6\xd7\x2c\x0b\xe9\x7a\x5e\x2d\x7a\xcb\xff\xa1\x7e\x89\x70\xec\xf5\x62\x92\x65\x0b\x12\xbf\x8b\x9e\x4b\x85\x1f\x5a\xa4\xf9\x45\xf1\x8e\x46\x97\x6b\xde\x9d\x0d\xd3\x70\xa4\x56\x90\x04\x4d\x34\x31\x30\x14\x7d\x24\xcd\x4a\x6f\x5f\x73\x62\x4e\x1b\x75\x4b\x61\xe4\xdd\x3b\x43\xf9\x74\xe5\x88\x06\xc3\x45\x91\x26\xbc\x5b\x7e\x59\xb3\xa1\x99\x72\xa3\xc2\xdb\x70\xf5\x29\x7a\xf5\xc3\xab\x67\x78\xbe\x7d\x0b\x65\x0d\x04\xee\x2f\x79\xe7\x54\x6b\xa7\x46\x45\xaf\x38\x71\x69\x66\xd7\x19\x79\x61\x48\x78\x97\x1b\xd8\x01\xfa\xea\x66\x07\x3a\x07\xbe\x2d\xf2\xb2\xe9\x8c\x91\xa3\xfc\x9a\x65\xf3\x11\x8f\xe3\x60\xc1\x06\x0c\xe2\xff\x9c\xff\xf4\x63\xb4\xc8\x8a\x85\x4f\xb1\xf2\xc8\xf4\xfa\x04\xa4\x09\xe7\xf7\x12\x0c\x44\xf7\x48\xa3\x8c\x15\x4c\x7a\x62\x1a\xa7\x4c\x2b\x15\xf8\xd0\x91\x8b\x43\x18\x79\xf4\xfd\xf9\xab\x97\x4d\xcc\x1c\x57\xba\xc8\x0a\x3e\xd8\xb7\xb9\x4d\x40\xdc\xdc\x08\xd0\x5d\xd1\x87\x8a\xff\x7a\xbb\xc0\x60\x19\x7e\x42\xa6\xfb\x53\xc9\xe5\xd4\x09\xff\x41\x84\x75\x27\xe6\xff\xa0\xa4\x87\x57\x80\x1c\x76\x44\xef\x98\xbf\x7d\xeb\xc1\xba\x82\xc9\x37\x66\x28\x3e\x97\x6c\x8d\x5f\x14\xa2\xb8\xd8\x6c\xc8\x83\x92\x02\x5b\xe0\xac\x97\x16\xd9\xec\xc9\xfc\xe7\x23\xdc\x95\xac\xcb\x43\x5c\x5e\x70\xec\xe5\x85\x33\x08\x4e\xeb\x00\xc2\x16\x69\xc5\x08\xdb\x45\xf1\x9a\xb0\x3e\x2a\x40\xc2\x4d\x6d\x56\x82\x95\x90\xa5\x5c\x80\x25\xdd\xa4\x71\x91\x71\xa1\x72\x91\x5d\x42\x1c\x2e\xbd\xa0\x56\x6d\x3f\x09\xa6\x23\xaa\xc8\xc2\xc2\xe6\xb9\x62\xd3\xaa\xe5\x34\xd0\xed\xc0\xcf\x61\x92\xa9\x01\x60\xed\xca\x0a\x47\x39\xd4\x3b\x81\xff\x5c\x80\xe6\x10\x2b\x6a\x05\x20\xa3\x48\xb1\xc2\x09\xfe\x0f\xd1\x94\x3a\x1c\x0d\xcc\x0f\x10\xbf\xb8\x2d\x32\xb4\xf3\x9a\xe8\x3b\x1b\xd8\xb4\xad\x79\x2a\xdc\x8e\xe8\xa6\x3c\x01\xe0\x1a\x94\x40\x3c\xbd\xd0\x00\x2b\xa2\x1f\xb1\xd6\x01\xd0\x01\xcc\xd5\x30\xbe\x37\x45\x9d\x27\x07\x40\x27\xa6\xe0\x10\x36\x11\xd6\x7d\x00\x74\x6f\x5e\x7c\x17\xc1\xe0\x1f\xe6\x6f\xb5\x38\x00\xba\xef\xe7\x2f\xc3\xd0\x7d\x5f\x66\x87\x40\xf7\x24\x14\x5d\x7c\x08\x74\x2f\x3f\x27\x9f\x2f\x3e\x0f\xc3\xf8\x92\x1c\x42\x9e\xd2\xad\x57\x2c\xc3\x66\x1f\x3a\xf4\x0e\x82\x96\x2f\xb2\xb0\xc6\x4a\x87\xe6\x00\xda\x9f\x16\xe2\x12\xd3\xde\x78\xbf\x7a\xaa\x0e\x1f\x9a\x63\x8f\x21\xdc\xe7\xaa\xe2\x04\xf4\xe7\x6b\xda\xba\xf8\x17\x75\x9a\x55\x0f\xd2\x5c\x03\x0e\xc7\x9c\x04\x0e\x32\xd3\x21\xc9\x17\x70\xf0\xa4\xe1\xd7\x70\x3f\x47\x08\x3e\x87\x34\xd9\x15\xb5\x5d\xc6\x19\x16\x9d\xca\x2a\x27\xe2\x97\x73\xd9\xbf\x58\xfd\xc3\xbe\xea\x5f\xf0\x95\x84\x97\x9e\xf0\x7f\xfe\x03\x56\x75\x42\x27\xfd\x7b\x8e\x51\x2e\xce\x50\x4f\x65\x9b\x01\x37\x1b\x69\x4e\x8a\x41\xa7\x81\x8e\x22\xb0\x7f\x4a\x44\xa4\x84\x70\x1e\xe3\xf0\xab\xaf\x1f\x29\x07\x0d\xc3\x2e\x93\x40\xda\x3f\x72\xc0\xb5\xfd\x34\x4a\x54\x9d\x35\x55\xb5\x93\xb3\x19\xce\xa8\xce\x31\xb4\x7e\xfd\xc0\x22\x22\xed\x7a\xd9\xfc\x87\x68\xcb\xe8\x92\x0f\xd4\xa5\xd4\xc3\x5a\x1f\x92\xf0\xf6\x93\xca\xf8\x33\xaf\x1f\xa7\xa5\xe3\xc4\x5c\xd0\xf9\x1a\x41\x76\x09\x3b\x6e\x1b\xea\xfe\xce\x57\x94\xd3\x1a\x8b\x06\x4e\x85\x02\xce\x4e\xf8\xce\x06\xb2\xe7\x03\x1c\xc8\x49\xbe\xe6\x3a\xd1\x02\xd4\x27\x1b\x15\xb2\xf2\xe9\x08\x41\xb0\xa2\xa8\x2c\xd7\xec\x7a\x37\xa7\x78\xa1\xf7\x9e\x1d\xdc\x50\x1c\x32\x10\xcf\x31\x80\x79\x0b\xbc\x30\xba\x4a\x4b\x3e\xc5\xe0\x32\x1a\xd9\x70\x0d\x16\x6e\x86\x88\x1e\xa1\x5e\xb3\x41\xd4\x31\x71\x21\x9d\x30\x4b\x4c\xc6\xd5\xcf\x95\xd0\xa2\x9d\xc5\x59\x9a\xbf\xf3\x14\x7b\xdb\x6e\x32\x60\xde\x56\xfc\x7e\xc8\x0a\xfc\xef\x9a\x64\x30\xba\x7a\x17\xf4\xb8\x4c\x7c\x52\xf8\x03\xdb\xed\x66\x50\x4f\x9b\x12\x7f\x45\x28\xc8\x86\x18\x6e\x6a\x70\x1d\xb1\xfd\xfa\x3e\xc8\x56\x92\xa7\xa8\xed\x82\x4a\x09\xba\xc3\x9b\x75\x40\x8e\xc5\x96\x5c\x30\x2a\x6d\x43\x87\x37\x84\xf0\x3a\xfd\x6e\xd0\x71\x64\x9c\xf3\xc3\xbc\x7d\xfa\xf5\x89\xb6\xf6\xb6\x1f\xdd\x81\x85\x39\x87\x56\xe3\x25\x3d\x3c\x07\x68\xb4\x24\xfb\xc9\x14\xa8\x46\x83\x4e\x7a\x27\xcc\xe8\x32\xad\xcc\x5b\x7f\x7c\x5a\xaf\x30\x2c\x7c\x01\x66\x4c\x9e\xd3\xcc\xdc\xe0\x2d\xbd\x36\x63\xed\xa2\xb0\x6a\x3f\x2e\xb4\x65\x81\x4b\xe2\x09\xf2\xc1\xb1\xe3\x87\x41\xf7\xb8\x9b\xec\xc5\x0e\xed\x28\x15\x4f\xd2\x12\x2f\x8a\x6d\xb7\x58\x0d\x7a\xb1\xa2\x36\xbe\x3c\xd4\xb9\x4f\x6b\x4c\x02\x1b\x9d\xcf\xda\x57\xeb\x38\xc0\xd3\x14\x02\xd3\xc6\xcf\xba\x15\x7a\xdc\x7e\xcc\x34\xf9\x0b\xf6\x38\xb8\x69\xc2\x6f\xe8\xb8\x06\xe1\xbb\x48\x1b\x21\xf9\xb9\x57\xf2\xe5\x24\xc9\x2b\x98\xb6\x59\xb2\xe6\xfb\xe8\xfa\x38\x2a\x09\x5f\x52\x08\x2e\x1d\x25\x4e\x9a\x0c\xe2\xe2\x72\xb8\xbe\x95\x85\xf6\x57\xe9\xed\xaf\xf9\xd4\xfe\x9a\x5f\x7b\x7f\xf5\x48\x0b\xef\x2f\xff\xaa\x96\x91\x29\xab\xda\xcb\xc7\x3d\x98\x36\x66\xb2\x56\xdc\xc4\xbe\x52\x09\xf6\x38\xb8\x69\x92\x6f\xe8\xb8\x36\xc9\xf7\x49\xd3\x24\xbf\xa2\xc5\x69\xf4\x82\x16\x27\xfc\x5f\xe7\xaf\x1b\xfc\xf3\x06\xfe\xee\xd4\x8c\x57\x54\x5e\xa1\xde\x14\x5c\x6d\x8d\xb6\x85\xd8\xad\xb8\x52\x93\x89\xa8\x13\x88\x17\xec\x30\x82\xe1\x4b\xd4\xde\x8f\x08\x64\xd6\xd4\x51\xc1\x23\xfd\x03\x71\x07\x11\x55\x51\x43\x18\x93\x24\xa2\x9c\x48\x05\x42\xa1\xa5\x9b\x0e\xa0\xc4\x41\xca\x0f\xa6\x3e\x20\xef\x48\x95\x9a\xf1\x70\x1c\x31\x4d\xeb\x34\xaa\xea\xb7\x40\x7f\xe2\xe5\xec\x32\x2d\x69\xdb\x42\x37\x41\xc0\xfd\x17\x06\x49\x53\xce\xa1\x75\xc1\xbe\x79\x73\x1c\x9d\x7f\xab\xb4\xf3\xd9\x96\x1b\x40\xa8\x7d\xc0\x15\x4e\xed\xdb\xa3\x5e\xbb\xb6\x91\xaa\xaa\x4e\x5c\xce\x35\x99\x60\x80\x4d\x77\x3e\x82\xc6\xfc\x8a\x6c\x2d\x57\xf3\x01\x66\x21\xad\xee\xbf\xa2\xdf\xde\xd1\x9d\x1a\xbf\xff\x82\x6b\x77\xd1\x7b\xd9\xf2\xdc\xd2\x0e\x11\x89\x42\x4f\x2d\x22\x5d\x09\x18\xef\x33\x5c\xe9\x18\x02\x9d\x9e\xc3\xc1\x93\x22\xeb\x5c\x86\x8c\x9e\x59\x4c\x2c\x0b\x48\x6d\x72\x95\xb4\x77\x1a\x0c\x92\x98\xd3\xca\x21\x89\x0e\xad\x50\xcd\x01\x38\x49\xb9\x7e\x5b\xc5\x6b\x88\x67\x02\xa5\xb2\x6c\xe3\xdb\x40\x3b\x91\xa5\x6d\x7d\x46\x17\x9c\x85\x59\x85\x59\x05\xe4\x91\x99\xf0\xc3\xcb\x2f\x1c\x0e\x9a\x1f\x9d\xc8\x28\xbd\xfd\x1f\x75\x51\xd1\x19\x47\xa2\x2d\x2f\xa6\xa6\x0f\x5e\xdd\x5e\x14\xc8\x0c\x07\x0f\x17\x27\x4a\x4d\x5e\x97\x3f\x8e\x12\x3e\x39\x77\x5a\x18\xcc\x86\xb0\x77\xba\x59\x08\xde\xfa\xae\x7c\x96\x59\x5d\xae\x67\xbd\xa2\xf7\x2d\xfa\x46\x5d\x86\x5a\x0e\x3d\xba\x65\x09\xdc\xa0\xb3\xab\x96\x82\xdc\x11\x78\xee\xcc\xaf\x20\xa5\xac\xf1\xfb\x9b\xbc\x0a\xdf\x0c\xe0\x8e\x10\xc1\x1e\x35\x64\xa3\x1b\x04\xa6\xcc\x7b\x15\xe0\x14\x80\x9b\x8a\xda\x92\xd4\xa9\xff\xde\x4b\xad\x6e\x66\x3b\x53\x0c\xe0\x3a\x02\xce\x74\x6d\xb5\x02\xb7\x00\x5f\x0b\x2f\x28\x5e\x53\x6f\x6e\x57\x41\xf4\x2c\x38\x9d\xb6\x5b\x56\x6c\x59\x0a\x0e\x12\x69\xb5\x26\x02\x84\x75\x01\x92\x6e\xfb\x59\x32\xe2\x62\x11\xa0\x91\x2e\x8a\x72\xb7\x59\x14\x99\x15\x30\x96\x84\xe5\x5d\xf8\x65\xcd\x9c\x12\x78\x41\x2b\x38\x5c\xe1\x13\xb7\x39\x8f\x5a\x53\x92\xd8\x4f\x59\x44\x49\x48\xa4\x9f\x16\xfe\x09\x46\xa3\x66\x3e\xd9\x91\x60\x3b\x03\x8a\xf4\x20\xc1\x34\x8d\x7e\x84\xff\x38\x20\xd1\xac\x17\x62\x0a\x9d\xe6\x55\x14\x0c\x73\xd9\x66\xb2\xdb\x72\xa6\x5c\x3f\x1b\xa5\x9f\x0d\xd5\x5a\x14\x6b\x17\x5f\x44\xab\x06\x4e\x30\xf3\xc7\x91\xdc\xd0\x1a\x59\x84\x1d\xa4\x6a\xe3\x04\x4f\x93\xcf\x1d\x86\x3f\x1c\xe7\x9e\xe3\x1c\x0e\x1d\x24\x2a\x07\x47\x1f\xac\x8d\x97\xd1\x9d\xd7\x80\x6d\xfc\x7d\xd6\x03\x70\xbb\xd8\xf1\xcc\xfc\x7c\xad\x9f\xa0\x7b\xa1\x3c\xf4\xae\x76\x6e\x49\xf7\x05\xad\xc8\x6f\xf4\x1f\xae\x2a\x26\xe2\x52\xd5\x56\xe2\x17\x87\xbf\xcd\xc2\x24\x63\x9f\x79\x2d\x88\x0d\x71\xa7\xb3\x68\x4f\x8d\x43\x7a\xe8\x40\xf8\x6d\xd2\x39\xf2\xc4\xaa\xf5\x36\x06\x7b\x07\x1f\x92\x3a\xdf\xc4\x3b\x0f\xed\x09\x12\xca\xbc\xd2\x45\x3d\x02\x08\x9e\x9b\x3f\x94\x65\x4d\x3b\x21\x05\x75\x63\x54\xbd\x78\x76\x0e\x89\x7d\xd6\x45\xf2\x49\x9f\xd3\xa0\x28\x06\xfe\x25\x2e\x36\xdb\x8c\x2a\x0f\x60\x2f\x16\xe2\xa1\x66\x46\x55\xb3\xa9\xa1\x88\xe1\x3c\xbd\xfe\x69\xde\x67\x4a\xbb\xbf\x51\x94\x01\x31\x89\x63\x11\x78\xc6\xc8\x5e\xd2\xb3\x0d\x8e\xc3\xc6\xd1\x1e\x90\x53\x1c\xdc\x4f\xe1\x3f\xb8\x85\xc3\xe5\x1c\x21\xdf\x69\xee\x5e\x12\xaf\x4d\x48\xda\xb5\xc4\x83\x47\xbf\xa2\xc8\xc0\xcc\x4c\x4b\x8b\xd0\x5a\x35\xc0\x3d\x08\x4b\x0a\x31\x07\x41\x83\x70\x3c\x1e\x4f\x0f\x89\x9a\xa0\xfd\xc2\x2f\x71\xbc\x26\x16\xab\x77\xf4\x06\x3a\x49\x90\x73\x5d\x11\xe2\xb7\x4d\x7c\xb7\x69\x7a\x98\x92\xbf\xce\xe9\xf2\x78\xc1\x0d\x8e\x6e\x3f\x1c\x43\xb2\xae\xb4\x02\x57\x90\x54\xf0\xb2\x1d\xe7\xe7\xc1\x12\x3d\xc0\xb6\x19\x43\x00\xc8\xcc\xbf\x2b\xbc\x91\x87\x87\xe0\x19\x52\xb6\xa1\x08\xcf\x8b\x29\x38\xbe\xd0\x1c\xf5\xde\x2e\x44\x1d\xee\x59\x0e\x0a\x27\x6a\xe4\xb0\x67\x57\x15\x91\xc9\x1d\x35\x98\xfd\xa6\x4d\xa1\xde\x45\xaa\x71\x21\x70\xdb\x18\xc3\xa0\x5e\x97\x5d\xdb\xbb\x5d\x7d\xd6\xbb\x5e\xdd\x09\xe1\x73\x1a\xe7\xe5\x85\xd3\xc6\x6b\x63\xdf\x12\x9a\xa5\x9b\xd4\x88\xb9\xf3\x89\xeb\xa6\x43\x20\xc3\x82\xa1\x5b\x95\xb6\x3d\x59\x1c\x56\x31\x1e\x37\xf1\x88\x4f\xa5\x58\x58\x79\xaa\x95\xf7\x3c\xd7\x22\x36\xb1\xb1\x00\xc4\xf5\x63\x25\x52\x26\x72\x45\x41\x24\x20\xf4\xf5\x49\xf4\x1c\xee\x99\x5e\x11\x98\xb7\xc7\xe2\xd2\x2a\xdc\x5b\x96\x72\x6f\x03\x10\x17\xbb\xe8\xd3\xff\xf9\xf4\x58\x18\x81\xe0\x73\xe0\x4c\xf2\x65\x83\x61\x90\x24\x89\x2b\xf0\xd4\xf0\x45\x48\x27\xec\x82\x97\x26\xbc\xbf\xff\x23\x4a\xbe\x3e\xe1\x1f\x66\x08\xe0\x53\xb8\x3f\xf0\x70\x9b\x91\x34\xff\xf4\xe8\x91\xb5\x53\x75\xf7\x69\xcb\x90\xaf\xff\x25\x9d\x68\xf9\xc9\xcb\x56\x2d\x61\x96\xa1\x50\xe4\x90\xcf\xca\x65\x1c\xce\x1a\x70\x5a\x9f\xb6\x4d\xf4\x10\x8f\xfd\xfa\x7d\x20\xea\x55\x5c\x21\xd7\xa7\x83\xc0\x24\x2f\x61\xca\xab\xa0\xed\x4e\x22\xcd\x6c\x56\x5c\x7a\xe3\x85\x25\x90\x16\xaa\x88\x0d\xd1\xe0\xab\x61\xd0\x6f\xdb\xa4\x69\x80\xcd\xa6\x48\xd2\xe5\x2e\x02\x47\x13\x0c\x08\x71\xbd\x15\xef\xde\x71\x0a\xac\x1a\x2f\xc0\x9c\x95\x32\xf2\xb0\xb9\xfc\x2e\x41\x62\xa8\x70\x71\xe9\x5f\x64\x82\x2e\xdd\xbb\x24\x26\x6e\x56\x73\xd8\xab\xbc\x60\x1f\x40\x68\x06\xe7\x6f\x8a\xcb\xd2\xc9\xbd\xc6\x7c\x93\x0b\x61\x5c\x06\x8b\xe7\x32\xf2\x49\xbb\x54\x2e\xaf\x92\x23\xf3\x7d\xa1\x78\xf9\xe5\xc4\x94\x6d\x82\x08\xe9\x68\x8c\xac\x70\x6c\x0c\xcb\xb0\x28\x80\xd2\xba\xae\x43\x9c\x80\x5a\xfc\xce\xf9\xb7\xfd\x2c\xac\xc7\x82\x26\x74\xd3\x6b\x1b\x09\xa4\x48\xe8\x39\x71\x03\x9c\x69\x76\x9f\x93\x10\x75\x87\x92\xe1\x66\x6a\x57\x69\xf6\xca\x73\x77\x2f\xfa\x40\x03\x2b\xe8\x40\x7b\x05\xa7\x28\x22\xf0\xd1\xdd\x44\xcf\x4a\x1d\x67\xa4\xe4\x36\xff\x90\x1c\x7a\x99\x71\x6f\xa9\x20\x90\x9d\x69\x92\x28\xab\x5d\xd6\x73\x1c\xed\x35\x1e\x20\x48\x2e\xe5\x8b\x46\x05\x67\x23\xb6\xe4\xd6\x07\x95\xcc\x78\x6c\xc8\xf1\x34\x61\xc9\xf5\x7b\x37\x24\xaf\xfe\xc9\xcf\x2d\x1c\x34\x8a\x99\x69\xa2\xb0\x5d\x13\x75\xb9\x72\x67\xc1\xec\x1e\x8a\x41\x9d\x52\x11\x2d\xf8\x31\x50\x4a\xb6\x5b\x8b\x8f\xc1\x1c\x5c\x3e\xaa\x64\x62\x94\x43\xd0\xd5\x92\x25\x32\x71\x79\xc9\x3a\x8e\x16\x94\xef\x63\xa1\x64\x0a\x88\xcf\x46\x12\x3b\x12\x89\x8d\xbe\xb1\x28\xaf\x95\x8f\xc3\x11\xa3\x75\x16\xa3\x9b\xe2\x82\xaa\xb3\x6a\x47\x7d\x7c\x90\xc3\x38\xcf\xd6\xc6\xa1\x20\xa3\xdb\xdd\xdf\xbc\x95\x81\x13\x65\x8f\x4e\x23\xf7\xb1\x8c\x3f\x38\x6b\xea\xbd\xf5\xa8\xa8\xff\x7e\xbb\x4d\xe0\x8a\x4d\x43\xe6\x5b\x33\xa4\x40\xc3\x7b\x60\xd0\x33\x33\x9f\xd8\xfb\xae\x0c\xea\xcd\x90\xbb\x4f\x9c\x59\x94\x7a\x62\xaf\x7f\x94\x5c\xa0\x75\x2e\x0f\x25\xe4\x59\x85\xb0\xd2\xda\x53\xc7\xae\x2f\xab\x39\x86\xa0\x50\x01\x4c\x48\x13\x49\x93\xe0\x48\xc4\x6f\xf3\x36\x12\xdb\x89\x59\xf3\x6d\x8e\xd7\xec\x00\xc1\xd3\xaf\x4f\x1a\xde\x4f\x90\x1a\xe1\x40\x3a\x16\x5e\x1d\xe9\x17\x4b\x0a\xae\xf5\xe6\x45\x85\xfe\x28\x91\xe0\xf3\xf7\x22\xcd\xb9\x72\x85\x79\x93\xeb\xd2\xc4\xd0\x6b\x40\x73\x65\x2a\xd3\xab\x54\x8b\x3f\x2f\x8f\x7a\xd4\xe9\x27\x30\x65\xf7\x08\x86\x4b\x6a\x41\x5b\x09\xb8\x59\x86\xd9\x03\x36\xc4\x16\x35\x38\xe0\xd4\xc4\xb2\x65\xf4\x22\x85\xb4\x12\xd8\x87\x51\x12\x11\x99\x02\x5a\x9d\x4b\xe2\x90\x89\xd2\xe3\x36\xcc\x11\x25\x82\x76\xeb\x55\x05\xf7\x20\xf4\xda\x4f\x7f\x7a\x65\x62\x50\xd2\xef\xb2\x90\x62\xbb\xf6\x34\x09\x4e\x56\x91\x85\x76\x68\x40\x37\x9c\x44\x8f\xf9\x60\xcd\x64\x90\x31\xa7\x21\xcb\x7a\x32\xe6\x2d\x64\x42\x97\x76\x30\x01\x36\x8e\x42\x65\x48\x89\xd6\x04\xfa\x21\xa2\xcb\x25\xa4\x10\x2c\x72\x99\xc2\x91\xb3\x66\xca\xfd\xe1\xd0\x4c\x7e\xeb\x59\x71\x86\x66\xd1\xd4\x39\x61\x46\x98\x71\x06\xe0\x91\x16\xb3\xbb\xcb\x8f\x7e\x88\x97\xe0\x94\x54\x9c\x2f\x94\x93\x09\xcc\x43\xed\x4d\x9a\xf0\x2e\x7b\x3b\xb1\x53\xf4\x8b\x22\x4d\x6f\xf0\xe9\xa1\x7c\x5f\xe2\xe9\xa4\xbc\xc8\x1f\xe0\xe0\x54\x29\xd6\xa4\xa7\xbb\x61\xb9\xc7\x30\x0e\x4a\x78\xde\x01\xaf\x29\x65\xd9\x0e\xc6\xff\xb2\xce\x78\x87\x82\x7f\x78\x19\xed\x8a\x3a\x7a\x97\x17\x97\x5d\x38\x2a\x84\xb1\x04\x8f\x5a\x0c\xae\x64\xc8\x94\xe5\x58\xd6\xfa\xc7\xcc\xe7\xf6\x55\x7b\x99\x66\x95\x2d\x7e\x4b\xfe\xd9\xb7\xc1\x36\x61\x5d\x30\x74\x1e\xb3\xd5\xd9\xa9\x6b\x06\xf4\xd4\x00\x05\xbe\x55\x4b\x7c\x4d\x3a\x76\x28\x17\x58\x73\x36\x78\xaa\x5e\x05\x42\x65\xa0\xb3\x75\xcb\x9b\x16\xab\xd2\xf4\x8b\xf5\x0a\x9c\x3a\x02\xac\x44\x33\xf8\xef\x00\xfa\xc6\x70\x18\xd8\x60\x8a\xd1\xc0\x20\xb1\x41\x38\xe0\x4a\xdc\xf2\x91\x4d\xdb\x87\x6c\xc2\x94\x6d\xf7\x35\xaa\xaa\xa8\x48\xa6\xe5\xc7\x6c\x52\x76\xca\xb9\xa0\x36\x06\xcb\x9c\xd0\x8f\x0b\xd3\x3f\xe9\x4c\x8b\xc3\x73\x20\x9e\x43\x66\x2d\x70\x47\xb7\xa1\x7f\xcd\x94\xec\x23\xd2\x42\x02\x4b\xf1\x50\x0e\xa4\x9d\xe3\x5b\x8c\xbc\x5c\xaf\xd6\xa5\x63\x0d\x03\xbd\x8a\xe9\xb6\xcd\xac\x05\x51\xfb\xe9\x06\x82\xdd\xca\x4d\x51\x54\x6b\x98\x79\x17\x70\x3e\x02\x7e\x6e\x5e\x63\xad\x9e\x68\xe1\xd6\x48\xb6\x13\x0e\xc1\xb2\x22\x7c\xb2\xe6\x94\x6f\xaa\xd9\xce\x1e\x72\x3c\x2a\x70\xd1\x10\x81\x3c\x6a\xa2\xc3\x92\xee\xe6\x71\x35\x43\xcc\x37\xd2\x15\xad\xc1\x56\x9b\xb3\xd7\x81\xd7\xb6\x14\x59\x13\xf8\x97\xb4\x84\x7e\x68\x22\x08\x2f\xd7\x29\x17\x32\x6c\xd5\xb0\x82\x2b\xd5\x03\x72\x72\xc2\xba\xde\x66\x99\x15\xd7\x88\x34\x0c\xe8\x10\xc4\x47\x73\x8e\xb1\x4c\x66\x7d\x95\x0a\x21\x4d\x51\xdc\x70\x16\xb1\xc2\x38\xef\x63\x19\xfb\x0d\x9f\x38\x35\x7f\x52\x26\xaf\xfa\x8b\x03\x98\x24\x85\x5c\xcd\x3a\xf8\x35\x4d\x59\x1b\x25\x8e\x69\x66\xed\xa3\x11\x4e\xe2\x5a\x3e\x41\x83\xd6\x9e\xbd\xe9\x24\xaf\x37\xe6\x8e\x73\xc2\x3c\x10\xd6\x4f\xa9\xf7\x9a\xec\x94\x26\x29\x47\x59\xe3\x31\x9c\xbc\x7f\xd9\xfc\x59\xa4\xc3\xed\xbc\xcc\xd7\xbf\xb5\x28\xb9\x69\x36\x18\xfa\x47\x9d\x72\x59\xc8\x67\xeb\x60\xd1\x84\x61\x80\x8c\x1d\xc1\x3e\x83\x18\xa0\x3b\x20\x56\x3d\x63\x94\x24\x3b\x99\xa6\x9a\x73\x59\x57\x38\x4f\xf4\x91\x41\xe0\xd8\xd1\x2a\x2c\x44\xec\x30\xa1\x02\xd6\x0f\xff\x4e\x6a\x99\xd4\x2a\xe6\xbe\x19\xe5\xc0\x2d\x98\x68\xfa\x34\x56\x27\x3d\x00\xd3\x4a\x75\x8e\xef\x86\x7d\xf3\xac\x7d\x2d\x4d\x20\xfe\x56\xf0\xf1\xcc\xef\x4c\x6e\x5f\xb1\x53\xcd\x8d\xeb\xa1\xd1\x5f\x6e\x47\xf4\x33\xf8\xd8\xf1\x46\xff\x75\x87\x9c\x1a\xa1\x8e\xc5\xfd\xbc\x01\xd3\x9c\xa5\x56\x4f\xc2\xd9\xad\xf2\x6b\xec\x43\x8d\xd6\x61\xea\xe1\xd1\xfe\xcb\x89\xa3\x1d\x1d\xdd\x19\x23\xa7\x87\x20\xfa\x51\x47\x35\x3b\x8d\x5c\xca\x59\x6f\xc4\x77\x4f\x2a\xfb\xe5\x8f\x3a\x8a\x81\xc2\x1a\x12\xa4\xdf\x05\xd5\x4e\x4f\x03\xc5\xd0\x1c\xed\xab\xa4\xb6\x99\xde\x99\xba\x68\xf6\x34\xeb\xa0\x87\xa5\x1a\x61\x0f\x39\x9d\xb8\xe9\xe4\xa9\xe2\x22\xdc\xa0\xbb\x25\xda\x64\x68\x40\x00\x90\x35\xf4\xbf\xa8\xf0\x76\x6b\x3c\x6a\xb7\x75\x5a\x52\x95\xad\xd5\xe8\xa9\x3e\xa0\x5d\x60\x33\xb8\x7a\x63\xce\x18\x87\xfa\xda\xcc\xf7\x6e\x46\x53\xd8\xb4\xfe\x0b\x52\x3f\xb7\xfb\x35\x40\xfa\x52\xe5\x89\xfb\xaa\xbd\xb3\xd4\x6c\xda\x7d\x08\x3f\x8b\x4c\xcc\x93\x61\xb0\x22\xcb\xea\xed\x4c\xfc\x0a\xe5\x48\x4c\xe6\x2e\xa0\x0d\xd9\xce\x34\x81\xca\x77\x73\x20\x3a\xe0\xcc\x7a\x09\x44\x25\x5f\xee\xb4\x91\x50\x55\x07\x2a\xaf\x9d\xf3\xaa\x08\xd9\xaa\xaa\xdd\x21\xed\xee\xee\xc6\xa6\xf4\xc0\xec\xc2\x5a\x93\x72\xa6\xc1\xb3\x9d\x17\x42\xf4\x6c\xb7\x8a\x66\xb8\x96\xdd\xc2\xe6\x54\xe8\xbc\x5b\x4d\x78\x74\x87\x30\x61\xae\x70\x6b\x8e\x70\x99\x92\xdb\x74\x76\x2a\x31\x8b\xeb\x5f\x9a\xb4\xf4\x4a\x7c\x39\x7f\x06\x76\x23\x68\xc2\xbc\xef\xed\xd4\x6a\xb1\x39\xdd\x83\x2f\x5c\x7d\x67\x36\x6a\x4d\xe3\xc8\x27\x77\x71\x87\xcc\x90\xbb\x26\xaa\x1e\x70\x92\x24\x33\xaf\x28\x7d\x8d\x5b\x69\xf5\x25\x69\x48\xa3\x7b\xed\xe2\x9a\xa5\x20\x73\xc2\xb8\x03\xc2\x7a\xd7\x2b\xc1\x8a\x94\xb9\x63\x40\x51\x66\x7a\x52\x99\x52\xb8\x3e\xb9\xe1\x01\xc1\x07\x19\x5c\xc6\x13\x0f\x27\x74\x34\xf0\xbe\xa5\x84\xaf\x87\x81\x53\x8b\xd3\x27\xdc\x74\x1d\x9f\xb6\x4a\x45\x9d\x44\xdb\x92\xd6\x49\xd1\xc5\xd9\x07\x97\xd0\x8b\x54\xdc\x25\x3f\x6f\xa2\xaf\xc0\xd6\x4c\x08\x4b\xda\x42\xbb\xb2\x0b\x74\xcf\x80\x1e\xed\x06\x5e\xd3\x44\xbf\x86\xd7\xdf\x69\x0f\x27\xbe\xac\x58\x3d\xf8\x58\x45\xc8\x69\xff\xf1\x56\x48\x31\x8f\x7e\x60\x97\x69\xfe\xe0\x7b\x70\x88\x86\x8a\x31\x2e\x6a\x6e\x44\x01\xcf\xad\xa3\x06\xf6\x23\x30\x36\xc0\xbc\x52\xef\x9c\xd8\x73\x45\x01\xbe\xef\xd1\xf7\x06\x60\xbc\x6c\xca\x09\xf9\xf0\xa1\xee\x7b\xd1\xe7\xa8\x7c\x93\xbf\x2d\xd5\x35\x28\x73\x1a\x5b\x6b\xc1\x4f\x22\xb3\x2a\xd8\xb2\xe1\xcc\xda\xc2\x86\x50\x5b\x62\x15\x4b\xfd\x90\xed\xda\x05\xca\xc8\x78\x83\xd7\x5d\xed\xe4\x89\x92\x40\xda\x44\xe5\x03\x12\x66\x8b\x68\x42\x54\x01\x51\x2c\xbd\x7a\x46\x6c\x86\x97\x95\x90\xe0\x8c\x49\x0c\x22\xf4\x6e\x74\xd3\x28\x89\x58\x83\x7a\x0e\x22\x12\x7b\xb8\xcd\x35\x4a\x69\x1c\x42\x43\x0e\xa6\x7b\xbd\xf5\x52\xea\x20\xc6\x38\xd7\x5d\x88\x5d\xcf\xf3\xc3\xea\xa6\x1c\x40\xf8\x14\x86\xee\x02\x52\xfe\xb0\x6e\xcb\xee\x61\x87\x32\x7b\xfb\x7d\xd9\x3b\xe3\xd1\xd0\xea\x8e\xa8\xe6\xb1\x1c\x70\xc3\x75\x7c\x6e\x8d\xeb\x54\x99\xd4\xb6\x04\x1d\x08\xd6\x82\xa8\x09\x27\x96\x4d\x5b\x0b\x6d\xde\x04\x79\x22\xb6\x7e\xdb\x87\xfd\x41\xd2\x33\xea\xfd\x83\x6a\x98\x77\x2d\xff\x16\xb7\xf2\xc7\x70\xa4\xe4\xf5\x23\x6f\xd7\x0a\xaf\x90\x9c\x06\x71\x23\x5b\x9d\x46\xf8\x9c\xfc\x39\xa6\x2c\xf0\x8f\xda\xb0\xc1\xd4\xbc\x30\xd3\xb8\x5c\xf7\x18\x53\x8f\xb3\x5e\x58\x94\x0d\xb9\x4e\x40\xd9\x39\xb3\xd4\x46\x94\x63\x3c\xdd\xad\x81\xd4\x7b\x55\x6e\xc2\xa8\x2a\xdb\xf7\x89\x72\x6d\x7c\x95\xd3\x06\x58\xd9\x19\x61\xde\x05\xea\x7d\xe7\x1b\x9c\x03\x86\x76\x3e\xdc\xca\xda\xe0\x9b\xb1\x15\xc5\x1b\x3f\x70\x0d\xc4\x94\x4d\x47\xe1\xd3\x83\x1e\x0c\xb7\xb7\x0d\x7a\xa5\xad\xc4\x70\xb4\x22\xce\x9c\xba\xa3\x1a\x8f\xaa\xe1\x00\x05\x37\x09\x47\xe4\x86\x0d\xb8\x54\xab\xb5\x60\x8e\x36\x7a\x63\x9e\x6e\xd2\x8c\x60\x80\x7e\x27\x92\x00\xe8\x3f\xb1\x00\xb3\xc1\x57\xdd\xab\x1d\xac\xda\x02\x5b\x84\xd4\x12\x97\x78\x6c\x90\x15\xc9\x7b\x8b\xc7\x0a\x5c\xc6\xba\x78\xc4\x63\x69\x66\x1b\x89\xb6\x13\xe5\xc9\x4a\x8f\x63\xfc\x3d\x4e\x92\xce\xfd\x30\x3c\x20\x6d\x35\x69\x71\x47\xec\x38\x2a\xeb\x2d\xa8\xdb\x20\xa0\x4f\xf1\xc5\x22\xb8\x43\xc3\xed\x81\x4f\x41\x34\x36\xb8\x9f\xa2\x62\xce\xea\x6d\xf5\xa9\x04\x22\x42\x7a\x1a\x44\xea\xc4\xaf\xd7\x7d\x70\x16\x77\x91\x26\x35\xc9\x6c\x70\x8d\xb1\xdf\x92\x3a\x72\x54\x89\x64\x05\xf0\x1f\xf4\x93\xc1\x30\x1f\xbf\x82\xdf\xf6\xee\x17\x61\xd4\xe0\xdc\x06\x1c\xc6\x89\xc6\xb9\x8d\xa6\xde\x05\xb9\xf3\xee\x55\xba\x01\x99\x68\x02\xb0\x4e\xf8\x41\x99\x58\x06\xda\xe4\x08\x81\xe0\x45\x51\xd7\x0e\x85\x1d\xe8\x6a\x27\x73\x61\x76\x1c\x40\xd6\x64\x98\x2e\x00\xa0\xdb\x9f\xc3\x03\x5c\x86\x76\x8c\x8f\x72\x89\xe4\x32\x82\xa1\x4e\xea\x36\xe5\xb1\x35\x12\x2a\x7b\x18\x44\x43\xe0\x60\x88\xc6\xe9\xe2\xb6\x08\x71\xd1\x93\x58\x10\x66\x3c\x88\xba\x7d\x32\xbb\xfe\xf3\xc0\xfe\xb5\xc8\x41\xa4\x94\xe6\xf6\x68\x3f\x49\xb4\x07\xae\x3d\xcc\x08\x09\x1e\xa9\x7f\x68\xf5\xfd\x03\xb9\x8d\x6d\x09\xb4\x7d\xa4\xaf\xd3\xd1\x40\x3b\x58\xeb\xf9\x28\xfa\xa2\x30\x4f\x49\xc9\x99\xa4\x73\xd1\xb8\xf0\x9d\x49\xbe\x7d\x98\x8c\x46\x3d\x34\x3d\x2c\x46\xb6\xa8\x20\x1e\x7a\x91\x4a\xc3\xa9\xa7\x1e\x3e\x84\x27\x1d\x6c\x4e\x1e\x08\x92\xf1\xb9\x77\xba\xe5\xf0\x53\x52\xbe\xd7\x26\x72\x80\xf1\x15\xa3\xdb\x4b\x9b\x34\xaf\xe1\xe4\xcc\x5e\xba\x2e\x6a\xe6\x2a\x4b\xc8\xce\x55\xc4\xc7\xf9\x3b\x57\x59\x59\xe7\x9e\x96\x9b\xc2\x57\x5a\xf1\x3d\xc6\x8b\x36\xc9\xbd\x15\xaa\x75\xcd\x7c\xe5\x4b\x96\x7a\x4a\x31\xf3\xa8\x9f\xf6\x6a\xed\x2a\xdc\x51\xd2\x91\xa4\xa5\x8b\x4a\x4c\xa2\xbe\xa2\xb6\x0e\xb2\x97\x41\xf7\xd8\x4b\x38\x99\xf6\x02\xe8\x1a\x07\x22\x20\xdf\x5e\x04\xc4\xb7\x25\x96\xee\x74\x42\x74\x96\xc9\xae\x74\x11\x29\x3b\xd2\xd1\x56\x76\xa3\xbd\x54\x74\xa2\xbd\x4c\x75\xa1\xa3\x25\x5e\x84\x1c\x61\x96\xf4\xae\x73\x63\x8a\x6c\x11\xc9\xa6\xee\x9c\x32\xed\xd2\xaf\xf4\x8e\xab\xfc\xf3\x81\x8a\x87\x2d\x5f\x3d\xcc\x73\x71\x89\x34\x58\x87\x6d\x9d\xe3\x40\x29\x5a\xf2\x0f\xe0\x1a\x7d\x56\x0b\x33\xa1\x25\x5a\x45\x08\xdb\x8d\xcf\x2d\xa3\x22\x0c\x4c\xdd\xab\x35\x63\x87\x1d\x7c\x20\x46\xbe\xcb\xc8\x46\xcd\x0b\xc8\x42\x4f\xd1\xf8\xe9\xb5\xac\xab\xd8\xd6\x29\x4e\x5e\x05\xbf\x87\xef\x1c\x07\x63\xf0\x33\xba\x93\x06\x88\x1f\xe8\xac\xb7\xe7\x4f\x0e\xdc\x61\x1e\xde\x82\x3b\xce\x6c\x68\xba\x95\x9c\x3c\x7f\x2e\x2d\x56\x6e\xeb\xfc\x30\xff\x29\xfa\x5f\xff\xff\x17\x5f\x9a\x2c\x9e\x46\x9f\x7e\xf6\xeb\x83\xcf\x36\x0f\x3e\x4b\xce\x3f\xfb\xfe\xf4\xb3\x57\xa7\x9f\xcd\x4f\x3e\x7b\xf9\x4f\xab\xf5\xd0\xe7\x23\x2d\x0b\x77\x7f\x98\x74\xca\x0c\x8b\xa1\xae\xa9\xde\x40\x43\xb2\x45\x0e\xc8\xc6\x0e\x4e\xe8\x92\x70\x39\x46\x49\xb1\x21\xdc\x2a\x03\x13\x88\xf5\x57\x20\x01\x10\xcd\x93\x34\x7e\x27\xf2\x5b\xc3\xa7\xe6\xa9\x0c\x6e\x5f\xf1\xad\x62\x99\xae\x6a\x26\x2d\x9f\x76\x54\xf7\x25\x61\x5b\x4d\x8e\xd4\x8b\x4f\x20\x0d\xfc\x14\xea\x94\xba\x59\x3e\xd5\x78\x08\xe2\x92\xaf\x18\x83\x8c\xbe\x0f\x53\xe4\x70\x9f\x30\x55\x38\xf9\x1c\xf1\x53\xb4\x49\x30\xba\x50\x7c\x34\x1f\x22\x86\xbf\x76\x2e\x78\x0d\x69\x8c\x5c\x37\x30\x71\x89\xc8\xa6\xa7\xc2\xce\x7a\xda\x51\x6d\xe1\x67\x99\x15\x4a\x79\x57\xd5\xf0\x15\x84\x5e\x45\x26\xde\xac\x1a\xae\x18\xd3\x34\x0b\x02\x28\xde\xe8\xb6\x6c\xa4\xc5\x72\x89\x69\x7b\x35\x18\x42\x36\x1d\x8b\xa2\x0f\x91\x77\xdb\x99\x4d\x81\xf2\x89\xad\x9d\xd4\x5e\xc1\xd9\x0e\x9a\x30\xd3\x03\xc4\xd5\x75\xf2\x3c\x58\x68\x33\x74\x73\xf9\x02\x8f\x45\x3d\x17\x05\x3e\x05\xbd\x57\x03\x41\xba\x1f\x2a\xc6\x89\x36\xaf\x20\x17\x4e\xd6\x62\x6d\x2a\x1a\x7e\x75\xa8\x87\x03\x1f\x3e\x98\x0f\x04\x85\x60\xda\xa6\x34\x00\x0f\xaf\x05\x58\x5e\xa7\x74\x0a\x0e\x3e\x9b\xe3\x10\x2c\x58\x0f\xf0\x3c\x87\x0f\x53\x30\x55\x8c\x86\x20\x82\x6a\xc2\x4e\xa5\x56\x34\x0b\x3e\x71\x32\xac\xf1\x1d\x7e\xb2\xd5\x89\xd7\x05\x4b\xa0\xca\x13\xf8\x60\xad\x91\xd5\x10\xf0\x8d\x75\xc4\x47\x5b\xad\x35\x57\x21\x08\x8b\xd7\x18\xb0\xf3\xbd\xfa\x62\xaf\x59\x56\xc5\x8a\x91\x8d\xa8\x29\xbf\xd8\x6a\x6e\xe5\xa8\x78\xed\x18\x14\x7c\x1e\x54\xcd\xd5\x89\xd7\xea\x8b\xad\x26\x48\x0a\xc2\xe9\xa4\xb0\x5e\x91\xad\x59\xcb\x37\x55\xb5\x51\x69\x5e\xee\x3d\xff\x76\xc6\xfb\x89\xe2\xc3\x59\x4d\x4e\x15\x7d\x25\x3d\x37\x9f\xc1\x97\x71\x52\x7a\x46\x9a\xa4\x75\x1c\x09\x03\xdb\x39\x0d\xc4\x02\x35\x53\xeb\x54\xa3\xb1\x39\x1b\x5c\xcd\xb4\xe4\x2f\x76\x67\xd0\x00\xca\xdd\xde\x10\xf8\x1f\x66\x9c\x5c\x79\x91\x4c\x42\xd8\x7d\xd1\x3a\xce\x76\x1d\x68\x32\x16\xcc\x0a\xce\xbb\xa0\x36\xb3\x20\x24\x9b\x6b\x29\x53\xf8\xca\xf3\x18\x00\x25\x2e\x57\x40\x6e\xe3\x74\x81\x57\x24\xe0\xa0\xa9\x6c\x2e\x15\x89\xf9\x68\x4d\xaa\xa7\xdd\x83\x51\xc7\x17\xde\xe5\xae\xe8\x07\xd0\xdb\x08\xd5\x88\x35\x88\xd4\x5f\x21\xf2\x51\x1b\xaa\x59\xf9\x02\x5c\xc3\xcf\xfe\x3e\x8c\x30\x5d\x6c\x8c\x08\xd8\x75\x2d\x98\x83\x4f\x55\xf5\x07\x4e\x4b\xf6\x3a\xcd\x12\x46\xf3\x36\x7d\x55\xc8\x50\x50\xad\x26\x0c\x87\x40\x84\x2e\x71\x1d\xf5\x16\x9e\xf1\x1d\x3d\x96\x79\x17\x2d\xad\x14\xfa\x6b\xe1\xe4\xbe\x7a\x53\xab\x6b\x89\x61\xbb\x29\x0e\xd0\x19\x3c\x05\x77\x1a\xbd\x60\x64\xbb\x86\x38\x86\x23\xed\xb3\xb9\x92\x5b\x86\x87\xcf\x9c\x45\xf8\xc7\xe2\x66\x17\xde\x94\x2f\x4a\x95\xe0\x40\xe4\xbe\x93\x15\x9a\x07\x3f\xb4\x24\x5b\x2a\x0f\x1b\xa3\xdc\x28\x2e\x69\x5e\xa9\x69\x03\x4f\xb6\xc9\x60\x06\xb8\x2b\x27\xaf\x78\x81\x38\xdb\xe3\xa5\x5e\x1c\x87\xc1\x38\xc2\x98\x21\xf6\x0e\xb7\x8a\xf7\x97\xbc\x7c\x98\xf7\x1f\x96\x2a\x43\x9e\xbc\x88\xd5\x88\x00\x93\xf6\x39\xcf\xbd\xe5\x45\x3f\xb8\x2d\xae\xb5\x5f\x50\x3c\x74\xe0\xda\x50\xba\x5a\x2f\x44\x26\x35\xa4\xf0\xa4\x8f\x08\x2e\x9c\x6b\xc8\xf4\xcc\x7e\xed\x9d\xb1\xa6\x41\xd0\x02\xdd\x54\x9f\x32\x2f\x03\x71\x5a\xf0\xc2\x0f\x4e\x4c\xa2\x75\x04\x5e\x35\x6c\x07\xe4\x3e\x0b\xf3\xde\xd2\x0f\x62\x40\x97\x5e\x18\x27\x07\x5d\x92\xc9\x05\x49\x33\x88\x60\x55\x9b\x0c\x44\x8b\x7b\x7b\x1b\xef\x15\x8d\xee\xe7\x61\x3c\x2e\x01\x1d\xd9\x1e\x36\xf2\x63\x9d\xef\x8f\x55\xb0\xa9\x10\x5f\x93\xc8\x31\x36\x67\x48\xe0\x50\x69\xbe\xaf\xd0\xed\x98\x5c\xcc\x1f\x46\xe4\xe3\x70\x4e\x11\xb8\x4f\xc1\x6d\xcc\x56\xd3\x61\x60\x5c\x12\xea\xd9\x20\x8f\x59\xfc\x94\x96\x31\x4b\xb7\x5c\x39\xb2\xda\x23\xd6\x13\xd9\x23\x5d\xe1\xef\x9d\xab\xba\xd6\x20\xab\xb9\xe0\x68\xed\xb6\xc5\xcd\xb8\x5c\x87\xc6\x3c\x5e\x77\x1d\xa3\x26\x06\xd2\x06\x3e\xb5\xc7\xf9\xca\x11\x38\x6c\x5c\x53\xe9\x8a\x4a\xb4\x1a\x42\xa8\xd7\x9d\x05\x91\xd8\x69\x91\x84\xb3\x66\x69\x67\x1a\x7b\x23\xa5\x43\xf3\xe4\xa3\x95\xcd\x35\x8b\x66\x4b\xee\x45\x63\x11\x8d\x6f\x09\xec\xac\x64\x86\xd8\xda\x58\x7b\xf3\x48\x59\x46\x87\xb8\xa7\xad\x4d\xd2\xed\xc0\xb5\x95\x76\x56\xb4\x30\xda\x1b\xc5\xc7\xa0\x3b\x4d\xce\x3c\x38\x1c\x65\x10\x8c\x73\xe6\xf0\x0e\xbb\xda\x6c\x77\x8e\x02\xd8\xa8\x1c\x45\x97\xa0\x01\x56\x8e\x42\x17\x22\x27\x9e\x7a\xe1\xe3\xa9\xed\x11\x47\x05\xd5\x25\x8e\x62\x1c\x00\x8e\x32\x7c\x9c\xec\xcc\x91\x98\x56\x99\x9f\x67\x1e\x63\xef\xdf\x21\x95\x84\x09\xa6\xd7\x30\x86\x22\xdd\x56\x6b\x0b\x85\x83\xc3\x06\x4c\x30\x33\x3c\x46\x3e\xe1\xe7\x40\xa5\x9e\xfb\xb3\x14\x07\x0d\x52\xf4\x5d\x9b\x23\xd5\xd3\x79\x63\xc7\xc2\xf8\x51\xea\xed\x42\xe7\x38\x0d\x12\xad\x8d\xd9\x9e\x7c\xb1\xd2\x80\x90\x8d\x3a\x3e\xe4\xda\xe1\x80\x25\xc7\xaa\xf3\xe8\xc0\x65\xac\xf8\x35\xdc\xd9\x66\xd7\xd3\x46\x9d\x28\x8c\x6d\x0a\xdc\x03\x4f\x53\xb8\x1a\x19\x8f\xdf\xaa\x44\x81\xb6\x57\x39\xb1\x62\xf5\x71\xba\xe3\x18\x0e\xe6\x15\x9f\x9a\xab\x6a\x7d\xda\x29\xf9\x18\xb9\x59\xb2\x54\x04\x8d\x7f\xf4\x9c\x90\x6c\xbb\xee\xe5\x4b\xfd\x38\x48\x87\x87\x1f\x56\x1f\xe9\x74\xb0\xe4\x38\xfc\x61\x89\xf7\x87\x61\x8a\x1b\xae\xbb\xc6\xc6\xdf\x90\xab\x74\x03\x59\x41\x55\x3d\x4c\x7e\x86\xf9\xbd\x4c\x68\x42\x38\xe2\x1c\x54\xc4\xd6\x43\x4a\x34\x0e\xee\xc4\x44\x64\x77\xdd\x99\xf0\x74\xaf\x9a\x22\x43\xe2\x50\xc0\x54\xa6\x31\x19\xc6\x51\x8a\xb4\x5f\xcb\x34\x4f\xab\x5d\x2f\xf3\xe2\x1c\x31\x62\x8a\x36\x12\x61\x1d\x6a\xc2\x8b\xd2\xcd\x96\x71\x0e\x05\xef\x5b\xbe\x66\xc3\x51\x3d\xb2\xbd\xb4\x91\xa7\x9f\x0d\x63\x54\x08\x6f\x9d\xd4\xc8\x7e\xb4\x29\xb8\x04\x30\xdc\x85\x2f\xc1\x89\xac\xf4\xc8\x84\xa2\x30\x3f\x50\x0f\x1f\xf4\xa5\x48\x51\x54\x7a\xaa\x48\xf3\x9a\x00\xde\x4f\xf9\x5d\x39\xf7\x30\xb8\x25\xae\xcb\xaa\xd8\x44\x2b\x46\x2e\x2c\xb2\x30\x4f\x23\x00\xe5\xe4\xc5\x3e\x69\x1a\xde\xe8\xf8\xe6\xfd\xd1\x4f\xc3\x3c\x48\xfc\x8d\x4d\xcd\xce\x77\xd9\x4d\x1f\x29\xf5\x78\x92\xe0\xa2\xbd\xab\x6d\x59\xb5\x14\xc2\x5e\x0a\x08\x66\x5d\x93\x08\x5f\xf7\x8b\x83\x8c\x80\xcd\xb1\xab\xb5\x39\x08\xfa\xd1\x38\x16\x99\x40\x10\xda\x35\x5e\xa5\x8e\xd1\xb2\xde\xf8\x43\x46\xf8\x24\xde\x7a\x2b\x40\x18\x9a\xb7\x42\x91\xbb\xaf\x02\xe9\x07\xef\x4e\x00\x09\x23\x2b\x27\x06\xef\x6d\x05\x2d\xfa\xc4\xd4\x75\x33\xa3\xc3\xdb\x63\x27\x61\x60\x85\x46\xa1\x69\xe1\x2b\x06\x8a\x0d\xe1\xfc\x5e\x0d\xe9\xcc\x76\xad\x59\x36\x6d\x2b\xf9\x02\x65\xde\x1b\xb6\x60\x92\x60\x74\xd6\xc8\x99\xdc\xb4\x6b\xa6\x5f\x20\x42\xf0\x91\xbe\x60\x45\xbd\x75\xce\x40\x38\x8c\x51\x31\x17\x8b\x30\x67\x6e\xc7\x5b\x3a\xd0\x7c\x1c\xa9\xf3\x7a\xb1\xfa\x78\xa8\xc5\xaa\xb7\x9f\x54\x8c\xe6\x2a\x67\xbe\x93\x5b\x21\xf4\x99\xef\x58\xc0\x3b\xcf\xf4\x10\xb0\x9e\xc9\xec\xf1\xd2\x4f\x3c\xd2\xec\x09\x2a\xe8\x34\xd1\x13\xa8\x66\x0a\xcc\x1d\x7f\xd1\x3d\x00\xe9\xbe\x94\xe0\x74\x01\x09\x9a\xcd\x78\x06\x5f\xfb\x31\xe4\x8e\x8e\x51\x98\x72\xb6\xef\x3f\xfd\xde\xab\x33\x27\x1d\x0d\x07\x4b\x67\xa2\x6f\xa4\xe7\x19\x09\x46\xe8\x3f\x3b\x13\x59\x32\x03\x25\xa3\x1e\xc1\x76\x37\x0a\x25\xcc\x37\x7b\x8d\xc0\xcc\x5b\x3b\x7f\xbd\x01\xa4\xb7\x71\x06\x8f\x20\xf8\x83\xcc\xe1\x0f\x3d\x32\x47\xf0\xcf\xc4\x1b\x62\x16\x09\x38\x81\x78\x95\xcb\xb4\x4d\x6d\x6a\x7d\xb7\x0f\x7e\x2c\x47\x35\xf0\x93\x38\xfe\xbe\x1b\xe7\x47\x36\x82\x98\xc7\x1e\xcf\x73\x0e\xc6\x75\x9f\x96\x68\xcb\x19\xba\xa7\x9b\x78\xfd\xfa\xfd\xc8\x6b\x5f\x87\x89\xfb\x12\x83\xc4\xb8\x6d\x48\xeb\x14\x93\x60\x03\x01\x0c\xc5\x8a\xeb\x20\x43\xdb\x74\xd9\x5c\xa4\xb9\x5b\xc1\x93\x90\x89\xeb\xe5\x4c\x0f\x9f\x02\x6e\x30\x84\x20\x46\x05\x4c\x6d\xf6\x8d\x69\x30\x56\x30\x4b\x7c\x9a\x38\x8f\x9d\x5e\x09\xeb\x89\x0c\x16\x6a\x4d\xdb\x7b\xf8\x81\xa8\xbd\xa1\x30\xae\x80\xfc\xdb\xb3\x85\xb9\x2e\x2d\xdc\xc6\xdd\x2b\x8c\xd6\x3b\xb9\x71\x85\xb1\x7e\x28\xcd\x32\x0c\xdb\xe1\x5c\x07\xc3\xf8\xfc\xb3\xac\x73\xa5\xe6\x7e\xaa\xdd\x4f\xb5\xbb\x34\xd5\x86\x2e\x13\x35\xb7\xc4\x6e\xed\xc0\x77\xdc\x65\xeb\x0b\xf5\x76\x8c\xfd\x60\x72\xef\xe4\xf0\x0f\xe6\xfe\x50\x33\x20\x18\xe1\xe1\xf6\x9b\x60\x94\xf2\x52\xf7\x58\x7d\x52\x36\xd3\x73\x3a\x85\x0a\x15\xce\x47\x26\x68\xb0\xaa\xdd\x04\x94\x1b\x1c\x0d\x76\x84\xce\xfc\xc1\xa2\x91\x96\x02\x2b\x00\x99\x79\xcd\xfb\x49\x91\xc9\x14\xa2\xdd\x5b\xde\xf8\x77\xdf\x25\x6f\xb3\x02\xc2\xeb\x85\xff\xa7\x79\xcc\x20\x91\x1b\x9f\x75\xab\x75\x95\x73\x2b\x13\x6e\x2f\x95\xc5\x06\x53\xb3\x17\x39\x5c\x4f\x22\x99\xcc\x10\x16\xcd\x56\x64\xb3\x21\x47\x5d\x18\xdd\x63\xe7\x05\x03\x40\x94\xcd\xde\xe9\x66\x31\x12\xf3\x68\x80\x96\x84\x1e\x98\x96\x84\xb0\x77\x93\x28\x89\x8b\xfc\x82\x32\xf1\x5e\x57\x8c\x72\x84\x97\x2a\x65\x4f\x9e\xf8\x50\x56\x85\xc8\xd7\x6a\x1b\x17\xde\x0c\x0f\x2f\xbe\x13\x1d\xa6\xdc\x1f\x61\xdd\x27\xde\xd5\x4d\x24\x91\xf1\x9a\xe4\x39\xcd\xbc\x04\x32\xfb\x1a\x60\x07\xbd\x62\x70\x73\x28\x1c\xf8\x6a\x0c\xf0\x05\x24\xfc\x0f\x87\xbd\x08\x85\xad\x3a\x0f\x2f\xd2\x71\xb9\x42\xdf\x7d\x3f\x7f\xe9\x05\xbe\x2e\x33\xbc\xc1\x3e\x7f\x69\x8c\x0f\xaf\xab\x48\xd6\x1e\xd9\x67\xeb\xda\x7b\xa1\x66\x1d\xca\x27\xe6\x91\x22\x83\xd7\xdf\x42\xc1\x35\x93\xce\x07\x2d\x9b\xd4\x09\x5c\x50\xd0\x09\xbc\x2f\xfc\x43\x73\xb5\x80\x4e\x50\x53\x21\xac\x13\x5e\x3e\x9e\x34\x71\x0e\xcb\x2d\x79\x90\xa4\x1b\x9a\x97\x03\x7d\x41\x42\xe1\x2d\xc2\xe0\x4d\x9b\x12\x5c\x62\xd7\xd6\x1b\xdf\x3f\xb9\xd1\x29\x11\xaf\x39\x83\xc4\x07\x2a\x0e\x9e\x0e\xf5\x26\xcd\x21\x00\xea\x1a\xa6\xc3\x93\x7d\xa7\x83\xf8\x5f\xa9\x08\xf3\x9f\x5f\x58\x14\x84\xf9\xc5\xca\xa7\x1e\x74\x8b\xed\x54\x8b\x44\x26\x32\x8f\x49\xb9\xdb\x2c\x8a\x4c\xbd\x63\x62\xa4\x35\x37\x17\x1d\xac\x8b\x49\x60\xf0\xd3\x90\x78\x3a\x88\xc8\x55\xf3\x90\xf2\x00\x1a\xa8\x89\x87\xdf\xfc\xf7\x38\x14\x2c\x0e\xc4\xc0\x62\x79\xba\x3e\x0a\x3e\x37\x61\x68\x18\x02\xa8\xe9\xd2\x2b\xb9\xa1\x63\x49\x59\xc5\x48\xc2\xb5\x20\x55\xfe\x06\xbf\xf9\x34\xd7\x41\x51\x50\x12\x2a\x0b\xea\x8c\xc4\x7b\xcc\xcb\x7c\xa4\x42\xf9\xde\xa4\x2e\x58\x5d\xae\xc3\x68\xc5\xaa\x98\x2c\x07\x3e\x8c\xea\x3b\x0c\xbb\x08\xc3\xd2\xcd\xb7\x33\x0a\x0b\x17\xc5\xaa\xc8\x49\xe0\x7c\x52\xb5\x5d\xe2\x7f\x2a\xcb\x7d\x5d\x60\xaf\x33\xd4\x01\x90\x13\xaf\xc9\x5c\x50\x36\xa9\xb6\xe5\x62\x00\x31\x68\xa5\x77\x11\x13\x15\x21\x7b\x77\x69\x7b\x4c\xcc\x9b\xa9\x47\xe0\xe8\x72\x2c\xa2\xde\x66\x2d\x58\x05\x35\xfa\x9f\x68\x36\xc3\x14\xf0\x43\x2f\x0d\xe2\x67\xdb\xba\x24\xdf\xa4\xd4\x6d\xef\x00\xa8\xf2\xa3\x13\xaa\x68\x7e\xa6\xb7\xd7\xed\x91\x31\x46\x02\x0e\xe6\xc1\x55\xfb\x29\x23\x97\x78\xa5\x9b\x1b\x06\xf8\x11\x5f\x07\x10\x93\xa7\x79\x9c\xd8\x7c\xa6\x42\xe6\x9f\xb1\x3e\xea\x60\xbe\x3c\x6f\x7f\x9f\x1d\x4e\x6a\x8f\xcc\x67\xdf\xec\x14\xf6\xee\x9c\x5f\x3d\x10\x19\xfc\x48\x59\x16\x71\x8a\x59\x22\x9b\x64\x7e\x48\xb8\x8f\x1e\x6b\x38\xa0\xe7\xea\xf9\x04\x8c\x16\xac\x28\x09\x98\x56\x5f\x9f\x88\x0c\x7f\xa3\xd2\x18\xce\xa7\x71\x8e\x8d\x2d\xe0\x64\xa2\xfa\x26\x61\x0b\xbe\x08\x06\x39\xdb\x00\x76\x10\x27\x32\xdd\x64\x97\x1b\xfb\xfa\x39\x3e\xa5\xc0\x5e\xdd\x6b\xf5\xf3\xdc\x77\xef\x2d\xea\x5e\x75\x9d\x43\x2c\x31\xa8\xf9\x7b\x93\xf3\x88\x1a\x7b\x64\x63\x71\x22\x72\xb1\x7f\x24\xcf\xea\x47\xf7\xdf\x64\x8c\xe6\xbb\xad\x53\x04\xfd\x24\x83\x94\xd7\x48\x87\xc0\x0c\x6f\xc6\xbe\x53\xd9\x82\x74\x92\xc4\xf3\x9a\xde\x8d\x38\x06\x60\xc1\x1a\x51\xf3\x92\x3b\xab\x29\x3c\x2b\x0f\xb7\x60\x8a\x1c\x1e\xbe\x59\xf6\x91\xab\x87\xda\xbd\x7d\xee\x7c\xff\xd3\x4e\x40\x6f\x90\x75\x9f\x3d\xe9\xec\x60\xf8\x10\x08\x6a\x06\x3e\x0a\x26\xe5\xff\x19\x8f\xd5\x82\x19\x7e\x3a\xe1\xfa\x47\x01\x0f\x76\x8c\x1e\xaa\xd7\x43\xea\xa8\x47\x46\x8e\xa3\x98\x6c\xf9\xc0\xa1\x67\xba\x8f\xdd\x3f\xf4\xbd\x19\x02\xc0\x12\xfc\x6b\x2f\xe5\xc3\xf1\xda\xdd\x49\xfb\xb1\x69\xd6\xd5\x05\x5d\xe9\x97\xe5\x5a\x62\x3b\x5d\x10\x4d\x44\x44\x56\xdf\x24\x35\xef\xd7\x14\x2c\x75\xac\x82\xde\x33\x05\xd1\x4c\x86\xdd\x36\xc3\x69\x18\x1d\xe6\x38\xf6\x30\x64\x3d\x86\x12\x2f\xff\xd5\xf2\x95\x2d\xb5\x96\x85\x21\x7b\x7d\xb0\x83\xa8\x30\x7c\x3f\xcb\x15\x77\x1c\x87\xe6\x3a\x6d\xc5\x65\xa2\x9a\xd7\x0b\x7c\xe4\x87\xf6\x5e\x4e\xed\x37\xc7\xfa\x83\x87\x80\x16\xca\xd2\x3c\x6f\x2f\x81\x1d\x43\xe2\x4d\xca\xce\xfc\x52\xe9\x7c\xc3\xf6\xe7\x53\xb1\xcb\x53\xd0\x60\x6c\x48\xde\x07\xc3\x06\x42\x15\xf9\x96\x67\x4d\x16\x7d\x5b\xf4\xe1\x99\xcd\xfe\xb3\x81\xcf\xd3\x58\x76\xa6\x5b\xc4\x03\xb9\x4c\x06\xed\xb2\x37\x5a\x2e\xbb\x2d\xe1\x4a\x20\x2c\xa7\xb6\xc7\x26\xcd\x86\xea\x91\x63\xa8\xde\x3c\x9c\x87\xdf\xec\xe6\x9a\x6a\x80\x22\x88\x7e\xda\xc2\x5a\x41\x32\xf1\xd5\x6b\xd8\x99\xeb\xbb\xcf\x4e\x85\x1f\x1c\x62\xe0\xd6\xa9\xdd\xc1\x96\x6e\x98\xde\x53\x78\x26\xa1\xb6\x7d\x61\xba\xe0\x3a\xd5\x8c\x94\x38\x03\x95\x1b\x9a\xa6\xb5\xf2\xde\xaf\xec\x01\x31\xd6\x0f\x9c\x28\xf7\x32\x1b\x25\xb3\xe1\xac\x5c\x53\x45\x66\x66\x5f\xb2\xb3\x63\xcf\xbb\xe4\xaf\x3b\x4a\x5e\xbd\x46\x7b\x89\x6b\x28\x4d\xd7\xbd\xb0\xb4\x9f\x98\xaf\x9f\x8c\xeb\x7f\xde\xc5\xaf\x1f\xa9\xe3\x3d\x92\x04\xef\xff\x1d\xda\x0d\xac\x17\x1d\x6c\xfb\x81\xd5\x8c\x93\x56\x9c\x74\x87\xc4\x45\xc1\xb8\x7a\x87\x8e\x70\xe9\xce\xf0\x9a\xad\xe3\x9c\x7b\xa1\x48\x2c\x88\x90\xe5\xe9\x93\xc3\x69\x9c\x8d\x22\xc9\x02\xc2\xe5\xfb\x99\x96\x9c\x59\xcf\x15\x60\x9f\x73\xf6\x43\x27\x6b\x43\xef\xbc\xb3\xc3\xf1\x8b\xa9\x2b\x27\x0c\xb9\x89\xe1\xbd\x17\x62\x7b\x88\xd5\x23\xac\x98\xb7\x69\x04\xa5\x20\x88\x18\xc1\xb0\x71\x00\x00\x4e\x7d\xbc\x84\x38\xc9\xf4\x81\xbf\x1b\x3d\xf0\xc7\xb9\x3d\x43\x91\xb8\x18\xbe\xae\x81\x1f\x4a\xd2\xdf\x7d\xe0\xef\xee\xea\xc0\x4f\x9b\x27\x28\xe1\x84\x09\x02\x22\xbd\xa3\xbe\xad\x3e\x2e\xa1\xb0\x05\xd7\xe8\x09\xa0\x9d\x23\x6e\x8b\x14\x3d\x1e\x6a\xdf\x97\xef\x8c\x49\x03\x72\x6c\xef\x06\xd3\xe5\xee\x58\x4d\x2e\xd8\xbf\x7d\xb1\x06\x71\xd9\x11\x6f\x30\xbf\x07\x19\x08\x31\xc1\xe1\x9d\x45\xe5\x16\xa3\x23\x2a\x11\xde\xe4\x0f\xa6\x14\x75\xc6\x8f\x04\x13\xd9\xe8\xb1\x30\x6d\xb5\x1b\x81\xd6\xdd\xd5\x92\x69\xec\xe6\x27\x06\xc0\x6e\xb7\x57\x96\x08\x31\x17\x4f\x8d\x28\xf7\x99\xdb\x4f\x0a\xd0\x95\xb3\xe8\x72\x4d\x39\xbb\x4c\x3d\x5a\x80\xd9\xbf\x12\xba\x4c\xe1\xed\x03\x78\x38\x4d\x3e\x05\x88\xa3\xca\xdb\xc1\xb2\xd1\xf8\x0e\xee\x6d\x02\xfc\xaf\x1c\x73\x2c\x08\x2c\x81\x42\x46\x6d\xf4\x1d\x6a\x3b\x74\x06\x99\xfb\x47\x48\x38\xdd\x18\x97\xe3\xa5\xdb\x3d\x84\x54\x5f\xec\xb7\x65\x36\x9d\x13\x26\x8a\xa1\x21\x35\x64\x31\x89\xf0\xa0\x7b\xbb\x29\xba\xb7\x9b\x3e\x56\xbb\xc9\x16\xe1\xe6\x6c\x3e\xa8\x44\x2a\x68\x77\xc8\x88\xb2\x86\x00\xde\x9b\x52\x5e\x92\x3e\x52\x53\xea\x7a\xe6\xc2\x38\x91\xdd\x66\xb3\xea\x10\x53\xe1\xa3\x33\xae\xee\x94\xe5\x74\xc0\x8e\xbc\x37\x8e\x3a\x6d\x6e\x87\x71\x34\xa9\x63\xff\x9e\x26\xd2\x84\xa0\xa5\xbb\x60\x0e\x69\x19\x98\x02\x07\x0c\x1b\x38\xf8\xb5\xdf\xbc\x0f\x3f\xf1\xf5\xee\xbc\xed\xa9\xec\xd8\x3d\xdb\x68\xe9\x7c\x10\x26\xec\x46\x0a\xf1\x1f\x4e\x6a\x32\x18\x7c\x00\xca\x3c\x92\xf4\x6b\x1e\x9e\xc7\x70\x46\x34\x44\xee\x83\x01\x84\xa5\xa8\x80\xfb\x31\x01\x2f\xdd\xe2\x55\x11\xb8\x42\xb2\x4d\x69\x4c\x2f\xd3\x52\x4c\x5e\xc2\x70\x7e\x1c\xc3\x53\x94\xf8\xde\xbd\x98\x2e\x90\x01\xdc\xbf\xb8\xdc\xdb\xaa\x7f\x4b\x5b\xd5\x7e\x5b\x6b\xbc\x66\x6e\x87\xf3\x71\x9a\xa7\x7d\x5e\xc6\x2a\x71\x57\x5f\xe8\x9c\xcd\x16\xa4\xa4\x30\x39\x8f\x02\x27\xc1\x17\xe3\x67\xc1\x58\x94\x2e\x51\x5c\xd7\x94\x98\x44\xdf\xdf\x7e\x7e\xb8\x64\x76\xa7\xe6\xca\x97\x1d\x26\xab\x62\x3b\x66\xaa\x7c\x39\x65\xaa\x8c\xc2\xe8\x12\xc4\xf5\xcd\x94\xf1\xe4\xfd\xed\x27\x8a\x43\x64\x77\x69\x9e\xdc\x3b\x3b\xef\x95\xa9\x50\x31\x1d\x60\xdc\x77\xc7\xfc\x0d\x0d\xf9\xbd\xd4\xa8\xdd\x04\x35\x6a\x24\x46\x97\x24\xae\x6d\x2e\xdc\x2b\x51\x07\x13\xd9\x5d\x99\x23\xfb\xa8\x4f\xbb\x09\xea\xd3\x38\x84\x2e\x39\x5c\xdb\x0c\xb9\x57\x9e\xf6\x93\xd8\x9d\x9b\x20\x1f\xdd\xc9\xd8\x7d\xd8\xa1\x2d\xec\x70\xff\x81\x70\x7f\xb2\xd6\x69\xe3\xee\xea\x0f\x75\xb2\x36\xa1\x4b\x6d\x67\x6a\xc6\x79\xd0\xad\x3b\x53\x1b\x3e\xaf\x9a\xb4\x3f\xfe\xfd\xce\xd8\x5c\x62\x18\x1a\x4a\x43\xa7\x2d\x81\xe1\x86\xf7\x67\x2e\xf7\x67\x2e\x01\x0c\x86\x69\x7b\x87\x8b\x89\xf2\x41\xfb\x78\xcf\x5f\x0e\x11\x4a\x73\x7f\x0a\xa3\xe8\xbb\x0b\xa7\x30\xb7\x63\xc6\x7c\x71\xc7\xa7\xcc\xfd\x61\x4c\x74\x47\x0e\x63\x6e\xc7\x7c\xf9\xf2\x6e\xcf\x97\xfb\x43\x99\x7b\x6d\x6b\x8a\xc8\xee\xe0\x4c\xb8\x3f\xab\x11\xe4\xdd\x81\xb3\x9a\xdb\x30\x5d\x0c\xf9\xdd\xc1\x09\x73\x7f\x70\x73\x37\x0e\x6e\x6e\xc7\x6c\xb9\xe3\x8a\xd6\x47\x77\x8a\x73\xa7\x8e\x68\x0e\xd8\x91\xf7\xa7\x30\x9d\x36\xee\xde\xfc\x90\xa7\x30\x07\xbb\xdf\x74\xf7\xcf\x62\xfe\xa6\x67\x2f\xc6\x59\xcb\xde\xf7\x9b\xc2\xef\x31\x79\xb7\x58\x67\x02\xcb\x90\x36\x53\xf6\xf4\xd1\xe9\x2c\x83\x64\x15\x90\x3d\xf5\x5e\x60\xfa\xd7\x80\xd4\xa9\xf7\x02\xd3\xbf\x7a\x2f\xda\x05\xdf\xa9\xf3\xab\xbb\x8e\x6c\x9f\x01\x4d\x26\x69\xd7\x23\x73\x7f\x06\x89\x69\x38\xbd\xec\xbd\xac\xd4\xcf\x50\x6e\xd9\x7b\x49\xe1\x47\x4f\xf0\x01\xbe\x15\x66\xbe\x6a\xd0\x7b\x62\x6a\x28\x24\xe0\x50\x1b\xad\xe5\xe5\xb2\x4e\x45\xa3\x0b\x2c\xd5\xaf\x6f\x32\xb9\x68\xb3\x8f\x8e\x61\xd2\x0e\x36\x76\x0f\x4d\x58\x59\xd4\x2c\x1e\xf9\xda\x84\xc4\x25\xb4\xb3\x21\x82\x1c\xf7\xca\x9d\x8d\xcd\x37\x0f\x08\x5b\x51\xe7\x53\x15\x37\x4b\x9f\x6f\xaa\xa9\x27\xef\xf6\x9e\x6d\x5b\x56\xfc\xae\x5e\x1d\xb1\x0b\xc1\x07\xb3\x1d\x0d\xd6\x27\x28\x00\x78\x07\x40\xa7\xc1\x91\xef\x75\xbf\x7e\x5b\xf7\xca\xe5\x01\x35\x6a\x38\x0e\x71\xea\x78\x1c\x85\xc5\x7d\x1e\x45\xff\x7a\xd8\x33\x5b\x39\xde\x9d\x09\x00\xe2\xab\x35\x6a\xb4\x4f\x63\x5f\xc1\xd4\x73\x0f\x0c\x12\x6e\x34\x32\xb3\x2e\x04\xb7\x0f\xe4\xbd\xf7\xac\x2c\xbc\x67\x23\x92\xe2\x19\x2f\xcb\xe2\x93\x66\x7f\xb9\xe7\x1d\x56\xf8\x0e\x5e\x72\xff\x6b\xd8\x9d\xc0\xe7\x5b\x1d\x83\xc7\x40\x46\xd5\xfd\x51\x93\xbc\x4a\xe1\x85\x9b\x0b\x2a\x9e\xe1\xf1\xfa\x0f\x44\x2b\xf5\x1c\x2a\x61\x96\x77\xda\x1e\x7a\xb0\xe6\x51\xa1\xbc\x2c\x83\xa8\x64\x4d\xc0\xf5\x93\xf8\x68\x45\x36\x89\x47\xf1\x2c\x1c\x89\x92\xb4\x8c\x19\xad\x28\x18\x3b\xdb\xba\xe2\xfb\x7c\xbe\xf2\x53\x25\x60\xfd\x49\x81\xac\xff\x96\x9f\xf7\x13\x82\x7c\xa2\x0e\x5e\x7e\x27\x15\x5d\x15\x2c\xe5\x7f\x15\x2f\xb5\xfb\x1f\xfb\x94\xd5\x77\x5f\x7e\x31\x24\xa3\xb1\xb4\x5c\xd2\xbc\xda\x59\xc8\x09\xa1\xe6\xab\x5b\x46\xcd\xe2\x76\x91\x13\x4f\x27\x47\x0d\xe7\x34\xa1\x30\x9c\x77\x01\x73\x48\x55\x05\xa4\x3f\xc8\xcf\x63\xb1\x3a\x67\x4f\x1e\x65\xc5\x8a\x30\xfe\x79\x93\xc6\x11\xbe\xfc\x05\xcf\x03\xf9\xd7\x8f\x62\x85\x8b\x47\xb1\x3a\x20\x19\xb0\x22\xe6\xc0\x1c\xef\x8b\x30\x32\xb6\xc5\x25\x90\xf1\xba\xb8\x3c\x00\x19\x1b\xb2\xdd\xe2\x33\x81\x85\x2c\xcd\x06\x5e\xe9\x55\xb5\xda\x35\x24\x1b\xbb\x86\x78\xd6\xb4\x92\x17\x31\x1a\xb1\xa2\xa8\x02\xa5\x51\xfe\xc1\x2a\x7c\x3d\x9c\xff\x1e\x4b\x47\xb5\x66\xb4\x5c\x17\x59\xb2\xef\xc2\xda\x00\x02\x4a\xce\xd5\x17\x83\x1c\x9f\xfa\x89\xb1\xe3\x69\x8c\x2d\xbe\x99\x7f\x6b\x6a\xa1\xed\x6b\x55\x36\x25\x3a\x29\x36\x24\xb5\xab\x9b\xe6\x9b\x65\x73\xcb\xde\x7f\x64\x7d\xf2\xac\xe7\xad\xe5\x32\xb8\x5e\x14\x29\xbe\x7b\xff\x0c\x1f\x8a\x3c\x9b\xed\x34\x76\xcd\x86\x71\xb1\xc5\x55\x61\x1e\x26\x5c\xa1\x84\xe0\x0b\x94\x49\x69\x88\x1a\xfe\xe7\xe2\x0e\xe9\x9c\xff\xd6\x46\x6d\xd3\x51\x76\xa8\x66\x07\xda\x4f\xbd\xc0\x99\x8f\x72\x15\xe7\xa7\x9c\x2d\xc6\x47\x0e\x5f\x0e\x12\x39\x23\xd5\xd1\x88\xe8\x60\xdb\x29\xab\x09\x56\xba\xf9\x05\xbc\xa7\xa2\xd9\xcf\xbd\xbb\x75\xe6\x35\x03\xf3\x4d\x35\x9b\x75\xeb\x66\x41\xa7\xce\xcd\x83\xc6\xe8\x08\x16\xde\x60\xab\x41\x0e\xc4\xd0\x99\xc8\x87\x3a\x81\xc1\x35\xe0\x1f\x65\x67\xd6\x1f\x47\xf0\x9c\x29\xcd\xc9\x22\x83\x55\xa9\x46\xb6\x46\xd0\x0f\xe7\x2c\xc1\xab\x08\xd6\x78\x03\x48\x4e\xcd\x69\x85\x2f\x86\x0f\x31\xb2\xea\x9e\xa4\x1a\xfc\xb4\x67\x82\x03\xb1\x23\x03\x67\xe3\xf2\xa9\x63\xed\x81\xcc\x1f\xda\x06\x96\xb9\xcf\xa7\x10\xc7\xb8\xf3\x34\xea\x2f\x1a\x83\x67\x8b\xb2\x47\x38\xb7\x7c\xb1\xc6\x8f\x71\x46\x36\xb8\x93\x15\xe2\xd9\x59\x8f\xd4\xed\x1d\x86\x00\xa2\x67\x26\x60\xaf\x66\x04\x4d\x5c\x32\x72\xa6\x7d\x9f\xc9\x66\x6d\x32\x74\x93\xfb\x21\xe6\x71\xcd\x69\xfb\x58\xcd\x40\x3e\xdb\xe0\x71\x42\x31\x4e\xe5\xe0\x37\x37\x73\x07\xef\xf0\x9c\x61\x9b\xb8\x5c\x34\x45\x49\xc2\x53\xa0\x00\x98\x5e\xf1\x6e\xcc\x76\xd1\x32\xd5\x27\xbd\x4f\x38\xf6\x77\x12\x83\x06\x31\xa3\x5b\xbe\x88\x88\xb7\x4b\x2f\xe4\xa2\x51\x46\x4b\x56\x6c\x64\x28\x04\xf4\xac\xa0\x60\x04\x7b\x8f\xb7\xac\xb8\x4a\x37\x10\xfd\x60\x47\xc0\xd9\x64\x98\x32\xde\xbf\xd7\x83\x48\x7a\xaf\x79\x5a\x76\x29\x3b\x6f\x24\x6a\x9e\xa1\xc4\xe7\x77\xf9\x30\xdb\x66\x64\x87\xab\x25\x87\x2c\x69\xb9\x0e\xae\x86\x98\x92\xaf\x64\x76\x38\x3b\x96\xd4\x9e\xe9\xef\x11\xe7\x1d\xdf\x82\xe9\x04\xf3\xed\xa4\xbd\x2d\xd4\xdc\x3f\xfb\x7b\x6c\xef\x2f\x43\xbb\xb5\x66\xdb\x0f\x43\xd7\x2a\x0f\xc1\xed\x98\x20\xf6\x7d\xbf\x53\xe5\x5e\x07\xf8\x88\x74\x80\xfb\x55\xe7\x36\xad\x3a\xfb\x2d\x32\x8d\x25\x38\x3c\xfd\x9b\xaa\x43\x93\x5f\x19\xdb\xc3\x20\x55\xcd\xc1\x65\x4a\x7a\x11\x02\xd6\x28\x59\x73\x08\xa2\xee\x98\xb1\xaf\x4f\x7a\x0d\x73\x79\xc2\xb9\xf9\x1a\xb3\x2c\x88\x08\x3f\xde\x91\xcd\xd5\x63\xf9\xd0\xb6\xbe\x91\xbb\xdd\x40\x08\xe9\x3b\xae\x37\x07\x00\x92\x8f\x55\xbf\x1e\x0d\x1f\xd5\xe4\xeb\x46\x02\xf0\x5d\xa7\x7d\x58\x41\x18\xab\x16\xf3\x76\x78\x13\xfc\xd3\xbe\x01\xea\x9b\xde\x9f\x61\x1b\x5e\xd7\xdf\x60\x07\xd8\xad\x33\x04\xb1\xe3\xd7\xf1\x51\x98\x51\xeb\x58\x6a\x3c\x49\x23\x25\x73\x9e\x6e\x7c\x38\x9b\x62\x97\x7f\xe4\xa9\x30\x26\x6c\xdd\xe5\xd8\x1d\x9e\xf6\x6c\x96\x01\x23\xac\xa1\xc1\x04\xff\x81\x6d\xa6\xe7\xa2\x06\xb8\x9b\xec\x14\x99\x6f\xd7\x82\xcd\xd1\xb7\x3c\x1c\x8d\x71\xb7\xb1\x32\x12\xb0\x03\x61\x3d\xe9\x2f\x02\xfa\x39\x8a\x93\x37\xc2\x98\x0e\x68\x6d\x79\x43\x7f\xda\x16\x01\x3f\x76\x1b\xc4\xc2\xb4\x79\xa0\xf5\x1d\x5d\x93\x8b\xb4\xa8\x19\xfe\xa1\x7b\xa6\x25\xcb\x98\xef\x58\xcb\x52\x07\x21\xbb\x4f\x7c\x4a\xbe\x47\x43\x44\x66\xc2\xc8\x2a\x5a\x74\xd0\x37\xb5\x8d\x70\x58\x5e\x13\x07\x16\xff\x1d\x7c\xb0\xa4\xd0\xfc\x59\x70\xb5\x26\x08\x0d\xd4\x04\x34\xff\xe4\xbf\xc3\xa6\x31\xd4\x1c\x64\xfc\xf1\x76\x9b\xa5\x54\x3c\xce\xa5\x13\xc3\x40\x75\x40\xd3\x76\x4b\xe3\x74\x99\xd2\x24\x2a\x69\x26\x4e\xd4\x8f\x0d\x18\x8c\xae\xd2\x92\x63\x45\x35\x06\x23\x5a\x21\x9a\x95\xb0\x5d\x44\xb9\xba\x59\x45\x19\x94\xf2\x05\x04\xd5\x91\xb2\xde\x02\x9d\x06\x88\x2d\xc9\x73\x68\x0e\x6e\x1e\x20\xa3\xef\xde\x31\xf4\xe4\x86\x98\xd3\xe8\xdf\x73\xf5\xf9\x1b\x3e\x90\xbf\xe5\x32\xba\x28\xd2\xc4\x78\x85\xc9\xf6\x2c\x99\xa0\xba\xc4\x53\x11\x41\xa1\xd0\x97\x62\x0a\x1a\x14\xd2\x1e\xa4\x8b\x55\xbb\x2d\x8d\x9e\xc1\xe9\x41\x94\x93\x8d\xb8\xd6\x51\x55\x24\x5e\xcb\xb7\x1a\x1a\xd8\xf6\xe6\x4d\x85\xe7\x4d\xc8\x71\x0b\xa0\x10\x74\xf8\x64\x01\x32\x98\x01\x0d\xca\x38\x3c\x6e\x40\x06\xa5\x65\x81\xdf\x62\x54\x0d\x5b\x19\x65\xe7\x8e\x40\xcd\x0d\x0c\xce\x34\x8e\x1b\x74\x81\xf8\xc8\xc4\x0a\x13\xee\x06\x48\x24\x03\xc8\x2c\x08\xe1\x67\x8f\xcb\x01\x23\xf0\x5a\xc0\xc8\xbe\x2d\x58\xba\xe2\x06\xd9\x3f\xc7\x11\x2d\x45\xd5\xac\x94\xdd\x39\x0f\x3f\xef\xf7\xeb\x2c\x3c\xd3\x91\xd7\x12\x2e\x28\x6c\x61\x5e\xfb\x40\xd6\xde\xa3\xf7\x42\xb0\xba\xa4\x71\x74\xea\x89\xc5\x09\xeb\xc4\x60\xf4\xee\x9e\x6c\x84\x10\x81\x26\x30\x9e\x0b\x4d\x88\x5a\x74\xcf\x21\x7a\x96\x64\x59\x71\x49\xd5\xe1\x19\xee\xf8\x83\xf3\x50\x68\xcc\xd3\xfb\x53\xe1\x44\xc1\xf6\x51\xba\x84\xb0\x47\x57\x22\x46\x74\x0a\xfb\x70\xba\xfb\x0f\x55\x59\x6e\x31\x4f\x23\x9c\x4a\x79\x1d\xb8\xeb\x7e\x79\x20\xf4\x6c\xbc\x63\xc2\x0d\x83\x3a\x4b\xf8\x06\x1c\x91\xe4\xf7\x9a\x2f\xe0\x09\xdc\x36\xc9\xd5\x7e\xe8\xeb\xd3\x09\xb9\xa1\x24\xea\xd0\x6e\xe3\x1a\x24\xd6\x3f\xb1\xa8\xa9\x6e\x64\x73\x93\xcf\x42\x67\x6f\x4c\xf7\x5d\xe1\x19\xce\x2f\x51\x38\xd1\x57\x26\xd1\x4d\x9f\xed\xd9\x69\xbf\x1e\xa8\xd3\x26\xa4\x98\xf8\xf5\x43\x76\xda\xaf\x7b\x77\xda\x0e\x3b\xed\xd7\x11\x9d\xb6\x73\x76\x9a\x5e\x2d\x34\x98\x14\x74\xf8\x21\x05\xf8\xd9\x15\x8d\x6b\xbe\xaa\xa3\xc2\xbf\xa1\xd5\xba\x48\xbc\x8a\xa7\x3a\xf9\xbf\xd7\x2e\xc3\xb5\x4b\x61\x1a\x4d\x54\x58\xa4\x0a\xe5\xbf\x22\xd7\x8b\xfb\x83\x36\xd3\xb7\xb7\x20\x9c\x16\xbc\xf0\xe3\x0c\xb0\xf6\xcf\xb6\x70\x94\x83\xda\xe6\xe3\x49\x64\x8b\xc6\x67\x4d\xf0\x69\xcf\x9c\xf5\x04\x9e\xbe\xa0\xc5\x8a\x91\xed\x7a\x87\x7f\xe8\xda\xe9\xbc\xcc\x67\xa2\x77\x8b\x6d\x72\xfa\x3c\x8a\x19\x15\x09\x1d\xc1\x64\x5e\x49\x5c\x69\x2c\x5e\x93\x5e\x89\x7c\x8f\x7e\x15\x16\x6a\x62\xb4\x16\xff\x3d\x64\xa4\x37\xd8\xe2\x94\xc5\x9c\x81\x06\x81\x3f\x92\x12\x2b\x03\x8e\x27\xf8\x69\x10\x4b\xb1\xd9\xc2\xba\x23\x6c\xec\x35\x15\x61\x80\x78\xa9\xb4\x58\x36\x47\x35\x4b\x4e\x4a\xcd\xfc\xf1\x0a\xd0\x66\x26\x2b\xaa\xde\x0b\x3b\x6e\xd1\x69\x00\x8d\xb6\xaa\x13\xfa\x20\x2b\xf2\x15\x7e\x8a\x16\x32\xd0\x82\x7f\xb8\xc2\xe3\x8a\x31\x54\x61\xe3\xd2\x4e\x17\xe4\x0d\x9e\x26\x9f\x98\xc2\x3d\xdc\x34\x19\x2b\x23\xd5\xce\x45\xcf\x18\x6a\x56\x30\x3e\x1e\x10\x16\xc3\xf1\x4d\x45\x72\x3e\x88\x17\xb4\xba\xa4\x9c\x94\xea\xb2\x10\x17\xa8\xfd\xc1\x7b\xaa\xdd\x8c\xb4\x14\x1c\x47\x8b\x8e\x7a\x19\xd6\x83\x7a\x2e\x81\x3e\x11\x5c\x69\x2e\xc0\xa9\x22\x48\xe6\x03\x25\x0e\x8d\x38\xf1\x51\x36\xab\x02\xee\x49\x0c\x0c\x36\x9a\xaf\xf8\xd4\xc5\x4e\xc4\x9b\xf2\x32\xc5\x74\x21\xae\xa7\xc3\x5c\xaa\x37\x4b\xca\xd7\x62\x2e\x5c\xac\xc5\xc9\xda\xad\x06\xf2\x0f\x08\xa8\x13\xa7\x82\x9a\xf4\xd0\x33\x09\x61\x89\x76\x83\x44\x1c\x3e\x12\x6e\x2e\x5c\x6a\x7f\xf5\x07\x87\x36\xd5\x66\xbc\xd5\x69\xf4\x86\x5c\xbe\x6e\xfe\x04\xeb\x50\xf3\xe5\x10\x84\x6d\xea\x4a\x44\x46\x4d\x21\xf0\x15\x6f\xcc\x17\x37\xa0\xf3\xb9\xf2\x77\xbb\xc9\x95\xb5\x87\xa8\x86\x5e\x7c\x9c\x41\xe0\x4b\x44\xff\xa8\x49\xf6\x40\xa4\xda\x2d\x72\x58\xb5\xc3\x28\x24\xd8\x7c\x36\x4a\x58\x04\x47\x59\x51\xa6\x55\x83\x5e\x97\x96\x1c\x5e\x6f\xf3\x14\xf4\xf4\x39\xe7\x64\x20\xca\x56\xd0\xf0\xb6\x24\xe3\xc8\x40\x7b\xf5\xcf\x94\x77\xcb\x9a\xaf\x59\x9a\x00\x42\x59\x57\x6d\x9f\x41\x53\xb8\xbd\xe8\x3a\xcd\x70\xd1\x04\x3f\xfd\x81\x37\x2e\xbe\xa9\xc7\x45\x2a\xd6\xad\x6a\x0a\x1b\xaa\xed\x4d\x31\x22\x86\x1e\xff\x1f\x0f\xe0\xb3\x50\x16\xb0\xd9\x13\xd5\x6a\x22\xf1\x33\xae\xac\x7c\xd9\x9e\x82\xf2\x6f\x5f\x69\xce\xbd\x83\x30\x36\xa1\x77\xb0\xe1\xfe\x3d\xf3\x61\x98\x53\x13\x68\x46\x4e\xde\x9d\x90\x13\x39\xb9\x8f\xc6\xf2\xba\xd7\x64\xba\x56\x4e\xa1\x03\xb9\x6d\xc8\x3b\x62\x55\x67\x84\x45\xb3\x2d\xee\xe9\x31\xe1\x06\xc9\xff\xfd\x3f\xc1\x8c\x1a\x60\x6e\x6a\xb6\xad\xf2\x62\x33\x66\xad\x57\xf5\x6f\x8a\xde\x56\xc1\x7c\x45\x59\x0c\x1b\x5c\x28\xe5\x1b\x59\xff\xe6\x17\x68\x6e\x56\xad\x5b\xcb\x28\x8c\x7a\xbd\xcd\xcd\x73\x00\xfe\x12\x3a\x96\x85\x4e\xa3\x9b\xe2\x01\x9d\xfb\x17\x7c\x45\xa2\xa3\x07\x50\xdb\xf4\xd5\x0d\x0e\x25\xbe\x40\x42\x60\x06\x57\xa0\xb8\x3d\xfe\x9f\xf3\x9f\x7e\x8c\x8a\x05\x00\x92\x61\x83\xb4\xd8\xd0\x8a\xed\x40\x4d\xa7\x64\xe0\x22\x10\x56\x99\x89\xe6\xa7\x0a\x9c\xee\x34\x9a\x63\x8d\xe6\x98\xd6\x4b\x98\x77\xd1\xe0\x46\x79\x1a\xd7\xc2\xe8\x7e\xa1\xbe\xec\x05\x90\xab\xda\x8f\x59\x2c\xe0\x89\xcf\x7b\x80\x63\x45\x45\x84\x05\x20\x3f\x74\xac\xa8\x37\xf2\x8f\x61\xae\x4c\xf0\x5b\x0c\xba\x49\xde\x60\xa4\x9f\x38\xcb\x47\xd7\x08\x78\xe7\x94\x69\xa5\x94\xdf\x8e\xcd\xec\x23\xbf\x63\x47\xb5\xee\x3d\x61\x54\x85\xbd\x79\x61\xdc\x84\x58\x8d\x9e\xdc\xfe\x5b\xfc\x76\x87\xda\x2a\x1c\x9b\x05\x23\x72\x3e\x30\xd9\xec\x78\x47\x70\xe9\xc2\xab\xb3\xdb\xb5\xbf\x7a\x6e\xab\xa1\x09\x6d\x88\x9e\x5b\xd2\x09\x65\x98\xc6\x8c\x5e\xf9\xd3\xbb\xc9\x3a\xe1\x02\x17\x01\xa6\x70\x89\x72\xfe\xf3\x0b\x31\xf0\xe4\x98\x4b\xf3\x8b\xe2\x1d\xb7\xb4\x30\x8b\x1a\xf5\xb9\x6b\x5c\x12\x71\x0c\x35\x37\x31\x25\x78\x91\xfb\x1c\x63\x60\x09\x33\xe7\x87\xdd\x75\xe8\xa2\xa5\x11\xcc\x13\xf1\x61\x52\xbf\x3c\x11\x5e\x10\x49\x84\xe8\x63\x48\xc0\xc7\x97\x1b\xaf\x29\x65\xf1\xf1\xf5\x9c\xcc\xc1\xd8\x94\x37\xcc\x3b\x0c\x1c\x1e\xb3\xe9\x58\x75\x77\xa2\x0f\xb3\xdd\x73\x18\x80\xd7\x1c\xf3\x98\x10\x07\x76\x30\x19\x66\x2d\xbc\x62\x6a\x00\xfa\x2d\x7f\xac\xea\xce\x5c\xe6\x9b\x09\x65\xe7\x28\x41\x50\x11\x3a\xd8\xc7\xc5\xaa\xb4\x83\x5d\xb0\x5a\x97\x5c\xcc\x1a\xbf\x18\x47\x8c\x43\xff\x55\x9d\x55\xe9\xeb\x0e\xfb\xfd\x00\x2f\x81\x3c\x88\xd4\x5e\x56\xa2\xfe\x4c\xb8\xcd\x64\xdb\xf6\x36\x7b\xea\x28\xdf\x0c\xf7\xe6\x8c\x92\xeb\x4e\x77\xe8\x2c\xe8\x2a\xcd\x5f\xcb\xb3\x88\xde\x88\xde\x14\x17\xf4\xbc\x98\x5d\xb5\x36\xe6\xae\x1b\xa4\xd9\xad\x0e\x8e\xd3\x11\xd5\x09\x57\x6c\x6c\x75\x8f\xa3\x6e\x67\x1e\x77\x12\x42\xa9\xbf\xb5\x99\x98\xdc\x18\xe2\xac\x28\xa9\x95\x3b\xaf\xa4\xc4\x29\x8b\x11\x4a\x7c\x72\x72\x42\xd8\x4a\xbb\xcf\x2c\x15\xc9\x47\x86\xfd\xe2\x3a\xe7\xf3\x87\x9a\xcc\x54\x43\x4d\x21\xb3\x1d\xdb\x74\xea\x9a\x34\x19\x89\x7a\x6c\xed\xbb\xbb\xc1\x61\x92\xfb\x0d\xe3\xd9\x32\x3e\x35\x5c\x99\x78\xbd\xb8\xb4\x96\x81\xf8\xbc\x17\xb6\x95\x4e\x6e\x76\xae\xab\x3b\x61\x44\x97\x5a\xa9\xd9\x75\x45\x5d\x41\x15\x67\x7b\xea\x8c\x6a\x9a\x79\xce\x9e\xb0\xdc\x0c\xf0\x11\x63\xce\x6e\x54\x74\xa5\xbd\x49\xf3\x82\xb9\xe3\xa9\xae\x13\x33\xf9\xfd\x86\x30\x73\x53\xce\x79\xe1\xf6\x3a\xc5\x3c\xbf\x01\xbc\x20\xe4\x1b\xc0\x7b\xd8\x49\x3c\x88\xd2\x3f\x8f\x85\x2d\x1c\x3a\x8d\x9b\xe3\x4d\x07\x95\x53\x92\xe7\xa9\x36\x42\x19\xb4\x5b\xe7\x5d\x01\x4e\x49\x81\xd7\xcd\xbf\x15\x82\xe5\xd0\xdd\xe4\xc7\xe8\x4f\x8f\x21\x1c\x37\x7f\x19\xd6\x9c\x7a\x6d\xa0\x74\x0f\x55\x3d\xbc\x27\x6c\xd3\xee\xb8\x9a\xcc\x71\x91\x91\xcd\x22\x21\x1d\x4f\x79\xef\x26\xa8\x49\x82\xb8\x18\x74\xe6\xd2\x66\xfa\x8d\xbc\xde\x12\x27\x69\x56\x71\x0c\x12\x85\xc6\x40\x40\x7d\x74\xf4\x0c\xec\xf0\xf6\x6b\x3a\x36\x0f\x91\xd3\x97\xf7\xa8\x67\xa8\x51\xa7\xd3\xd0\x83\x34\x2b\xe2\xc9\x48\x21\xde\x28\xcb\x68\x36\x90\xcf\xf4\xe0\x78\xbd\xa1\xe8\x03\x78\xfb\xbd\x18\x88\xd4\x79\x73\xc1\x3b\xbf\xcd\x20\xfe\xd0\xee\xcc\xd2\xed\x61\x72\x9e\x8e\x40\x78\x68\x25\x22\x74\x14\x1d\x74\xf1\x0c\xed\x4d\xe1\xa0\x56\xfe\xe8\x33\xcd\x21\x2d\x3e\x84\xad\x31\xa2\xae\x41\x37\x0e\x31\x87\x95\xf5\xa7\x7e\xf7\xad\xef\xfa\x06\xc5\x76\x0e\x86\xd7\xcc\x59\xfc\x4c\x5c\x83\xed\x17\xca\xe0\x18\x4f\x73\x59\xc3\x09\x01\x0f\xc0\x68\xbf\xcc\xbb\x07\xc8\x45\xab\xb9\x25\xfa\x98\x31\xb2\xc3\x3b\x58\xbd\x1d\xc1\x36\xe5\xfb\x1e\x70\xf8\x91\x37\x44\x03\x5b\x84\xed\x02\x32\x68\x65\xdc\x3e\x65\x1b\x4e\x96\xb8\x47\x3c\x18\xf9\x44\x23\xa0\x0d\x7b\xdc\x0c\xc4\x3d\x9a\xa3\xe7\xa2\x60\x45\x5e\xa4\xdf\x9c\x7f\x0b\x1d\xf1\x73\xf3\x6d\xc8\xef\xa5\x47\x56\xc9\x56\x5c\x07\x23\x2b\x08\x09\x55\x6e\xff\xd6\x5d\x12\x10\x9f\x26\x09\x99\x41\x4f\xa4\x31\x6c\x95\x3f\x8b\x4f\x62\x72\x8b\xb1\x34\x2e\xe2\xeb\x29\xcd\x48\x9d\x93\x1d\x5f\xc1\x53\x71\x38\xdd\x09\xc9\x19\x45\x5e\x22\x61\x35\xf4\x9d\x4d\x26\x50\xbb\x8e\xf9\x47\x4d\x12\x3e\xa7\xa9\x88\x74\x84\xc7\xc1\xf9\x68\x86\xe0\xb3\x00\x8a\x54\x5b\x99\x8d\x0f\x3f\xcb\x60\xaa\x61\x67\xa9\x71\x25\xb4\x43\x47\x57\x36\x93\x48\x12\x75\x4f\x85\x57\x0d\xa2\xf9\xae\xb4\x20\x86\x9d\xf6\xf9\xea\x2b\xed\xef\x7a\x68\x83\xe2\xe8\xf6\xb1\x72\x99\x26\xd5\xba\xa5\x7a\x4d\xd3\xd5\xba\x9a\x40\xb9\x7e\x72\x26\x12\x8c\x34\xf4\xa9\x31\x26\xb3\x12\x26\x49\x2a\xb3\x33\x89\xbb\x02\xa5\x8c\xa5\xa7\x5e\x67\xba\x5c\x7e\xfd\x13\x6a\x70\xb4\x62\x24\xa0\x92\xed\xba\xce\xb2\x28\x23\xbb\x82\x13\x2b\x92\x8a\x42\xfe\x17\xba\x24\x75\x56\x81\x87\xb5\xe2\xba\xbc\x5f\xac\x00\x01\x06\xec\xf7\xfc\xb7\x11\x9d\x8f\x45\x76\x62\x9b\xcf\x61\x8b\xb0\xac\x6e\xec\x11\xa2\x83\x86\x53\xf3\xe8\xfd\x82\xea\x8d\x4a\x2b\x26\x69\xf3\xb1\x87\xf5\xcf\xfa\x3a\x84\x3f\xbf\x08\xf6\x84\x41\xad\xe4\x61\x1c\xb9\x65\xba\xca\xe5\xc1\x8e\x20\x3a\x2d\xd5\x30\xf0\x52\x0d\x07\x3d\xc1\x51\xab\x0a\x21\x81\xa0\xdf\x07\x34\xa3\x1b\xbc\x9c\x87\x63\xb7\x49\x08\xa3\xae\x65\xeb\xb1\xd3\x3a\x39\x61\x81\xd3\x23\x82\xa5\x9f\x70\x8d\x52\x0a\xa1\x16\x51\x04\x12\x53\x44\x56\x24\x85\x97\xeb\x42\xa5\x01\xba\xe9\x4c\x02\x69\xe6\x89\x6d\xc6\x0c\xa4\xd1\xd0\x17\xe4\xf1\xb9\x00\x0e\xb4\x8c\xcd\x6e\xc1\x52\x7a\x07\x76\x83\x7d\x76\x81\x0e\x20\xeb\xa5\x49\x91\x30\x7e\xe0\x09\x31\xf1\x64\xa4\x78\x31\xd2\xcc\x0e\xdf\xdb\xfe\xbb\xb6\x48\xe7\x9b\xf5\x06\xe0\x07\xa5\xa0\x94\x69\xc8\xed\x53\x1b\x4b\xe1\xbf\x8e\x16\xee\x55\x70\x68\x93\x8a\xc7\x65\x35\xca\x1a\xaa\x17\x3b\x76\xa3\x13\x74\xc8\xfc\x1e\xce\x75\x91\x24\x6a\x2c\x8a\x93\x60\x79\x94\xa8\x06\xa6\x3f\x98\x39\x49\x94\x07\x01\x07\x9e\xd5\x8c\xba\xe0\x36\x69\x35\xe3\x86\x7f\xb6\x20\xf1\x3b\xe5\x47\x0c\x37\xa9\xc4\x51\xe7\x5f\xe6\x30\xb5\x6d\x06\xbb\x71\x3b\x5b\x6b\x4d\x04\xac\x7f\x63\xcc\x09\x88\x31\xf2\xcf\x57\x71\x47\xf0\x7c\x9c\x6a\xfe\xa4\x73\xe1\x86\x6c\xd7\x60\x01\xbf\x2b\x1b\x02\x0e\x40\x18\x02\xec\x50\xf7\x12\xd5\xa9\x93\x17\x80\xef\x25\x2f\x1d\x47\xa6\xb0\x6c\x32\x7a\x50\x22\x1b\xa0\x1d\x42\x5d\x73\x6b\xc2\x3d\xf0\xab\x43\xbc\x5a\x7f\xee\x7d\x61\x38\x90\xa2\xf9\x48\x8a\x2c\x20\xae\xf9\x5d\xe1\x73\x6f\xa8\x80\x6e\xb0\xef\xc3\xf2\x1e\xaf\x02\xab\x87\x80\xf7\x7a\x19\x58\xb6\x39\xb5\x73\xa6\xd7\x0d\xd8\xcd\x06\xde\xba\xbe\x75\x83\x2f\x94\xa2\x3b\x34\xf8\x76\x77\x61\xf0\xf9\xbd\xd8\x03\xb7\xbe\x79\x5b\xa9\x96\x8c\x7c\x71\xd8\xee\x13\x1f\xc8\x49\xe3\xc5\xe6\x96\xaf\x4c\x60\xd2\x48\x77\x2c\xd1\x56\x47\x7d\x98\x70\x85\x0a\x38\x56\xac\xd0\x6a\xb4\x3c\xc7\x4a\x13\x90\x1c\xe3\xb5\x17\x3e\xca\x68\x2e\x03\xd6\x35\xe1\x88\x68\x26\x8c\x80\x86\xcb\x92\xb3\x2f\x8e\xbf\x38\x1a\x25\x77\xc0\xd0\x48\x3d\x9c\xa7\x9e\xda\x3c\x2c\x6a\x9f\xfe\x06\x4e\x9a\x5e\xba\xc5\x50\x07\x0d\xfc\x5c\x8f\xb5\xd3\x6b\xf0\x21\x0c\x1c\x0f\x52\xe5\xa0\xe7\xa2\x4c\x68\x9c\xc1\x23\x26\x17\x84\x45\xc9\xd7\x98\x57\x04\x1e\xb8\x7a\xd4\x96\x48\x4f\xfd\xa7\xc9\xd7\x9f\x4a\x32\xa5\xd8\xff\x83\x37\x78\xc4\x61\xfc\xbf\x00\x00\x00\xff\xff\x4e\xc4\xb8\x78\x7a\xc5\x01\x00") + +func uiTsTypingsD3D3DTsBytes() ([]byte, error) { + return bindataRead( + _uiTsTypingsD3D3DTs, + "ui/ts/typings/d3/d3.d.ts", + ) +} + +func uiTsTypingsD3D3DTs() (*asset, error) { + bytes, err := uiTsTypingsD3D3DTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/typings/d3/d3.d.ts", size: 116090, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTypingsJqueryJqueryDTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\x6b\x73\xdc\xc6\xb1\x30\xfc\x5d\xbf\x02\xc5\x4a\x95\x96\x7e\x96\x54\x7c\xce\x79\xea\xe4\x50\x8e\xf5\xd0\x14\x6d\x33\x91\x44\x1d\x91\x8a\x9d\x72\xb9\xde\x02\x17\xb3\x24\x2c\x2c\xb0\x01\xb0\xa4\x18\xdb\xff\xfd\xed\xdb\xdc\x70\x5b\xec\x95\x5c\x59\xf9\x10\x53\x0b\x60\xa6\x6f\xd3\xd3\xdd\xd3\xd3\xfd\xec\x59\x70\x79\x3f\x55\x41\xa4\xc6\x71\x1a\x97\x71\x96\x16\xc1\x38\xcb\x83\x5f\xfe\x77\xa6\xf2\xfb\xe0\xcb\xc3\x2f\xff\x7c\xf8\x31\x78\x16\xfc\xc7\x21\xfc\xf7\x09\xbc\xfd\x36\xcf\x7e\x51\xa3\xf2\x28\xb8\x29\xcb\xe9\xd1\xb3\x67\xbf\xfc\x0b\x5f\x3c\x1c\x65\x93\x67\xf8\xf8\xa5\x33\xce\xd5\xfd\x51\xf0\x4d\x96\xc7\x45\xf0\xcf\x30\xfd\x90\xdd\x06\x5f\xe1\x37\x05\x7c\x74\x1d\x97\x37\xb3\x2b\xfa\xe8\x0a\x5f\xb8\xa7\xe7\xcf\xbe\x1e\x06\x27\x37\xf0\xcf\x32\x0e\xd3\xe0\xfb\x6c\x3c\x9e\x28\xf8\x87\xca\x1b\x3f\x1c\xdd\xd8\x17\xe0\xc3\x8b\x52\xdd\xaa\xe0\x5b\x95\x96\x59\xda\xf8\x3e\xbd\x70\xc0\x2f\xc0\xfb\x2f\xe3\x59\x92\xa8\x38\xf8\x2e\x9b\xa8\xa2\xf1\x03\x79\x03\xde\xbd\x0c\x8b\x22\x38\x4b\xe2\x6c\x9a\xcd\x92\xac\xf9\xed\x32\x2c\xb2\x38\xc1\xb7\xff\x06\x7f\xa5\xc1\xc5\x9d\x0a\xf3\x38\xbd\x56\xcd\xd0\xfc\x82\x2f\x15\x07\x69\x76\x1b\x26\x2a\x1c\x23\x02\x0a\x91\x8e\x93\xa4\xf1\xfd\x02\x9e\x16\x1f\x70\xf8\xef\x66\xb3\x02\xa0\xce\x8a\x42\xa5\xcd\xa0\xc0\x1b\xff\x86\x17\xff\xae\x92\xe4\x3e\xb8\x98\x4d\x26\x2a\x4f\xe2\x66\x30\x3e\x14\xfa\x31\x7c\xf0\x4d\x58\x84\x79\x58\x06\xc7\x49\x1c\x5c\xdc\xab\xa8\x99\x5f\xfc\x12\xbc\xfe\x26\x06\x16\x24\x61\x11\xfc\x90\x25\xb7\x2a\x2f\x5a\xe8\x9e\xde\xe9\xc7\x48\x75\x95\xab\x0f\xc1\x49\x3c\x52\x79\x96\xaa\xc6\xf7\x23\x7c\x65\x24\x6f\xc0\x27\xc7\x69\x94\xab\xbb\xe0\xbb\xb0\x98\x86\xcd\x92\xc0\x6f\xf0\x0b\x44\x7f\xe4\xe8\xf7\x61\x0e\x92\x04\x30\x7d\x1b\x17\x37\x2d\x22\xf4\x0b\xbe\x79\x33\xa6\x17\x88\x03\xf1\x07\xc0\x29\x0e\xfe\x9e\xa5\x51\xd6\xc2\x06\x7e\x05\xa9\xa5\x52\xf8\x1e\xe8\xfa\xb7\x70\xf4\x61\x12\x36\x23\x7f\x25\x2f\xfd\xc2\xef\xc0\x67\x6f\x41\x84\x82\x8b\x2c\x07\xe6\xb5\x88\x46\xf1\xe7\xff\xf9\xcf\xff\xf8\x9f\xff\x42\x4c\xb2\xe2\x06\x04\x3b\xcf\xae\x9a\x85\x02\x9f\xf3\x63\x7a\xf9\x26\x0d\xde\xa9\x18\x99\xde\x88\x2c\x3c\x4f\xef\x73\x7a\xe1\x19\x2d\x80\xd1\x87\xe0\x16\xe0\x8e\x00\x8e\x6f\x40\x54\x3f\xb4\xac\x82\xd1\x87\xdb\x88\x9e\x7f\x5d\x59\xe0\xac\x03\x3a\xd6\xb3\xbc\xab\x92\x7b\xd4\x31\xd1\x93\x27\xcf\xbe\x08\xbe\x58\xe7\xff\x9e\x9c\x64\xd3\xfb\x3c\xbe\xbe\x29\x83\xc1\x68\x3f\x78\x1d\x8f\xf2\xac\xc8\xc6\x65\x70\x92\xe5\xd3\x0c\xc4\x14\xc0\x3c\x04\x79\x4e\x02\x7a\xa9\x08\x72\x55\xa8\xfc\x56\x45\x87\x4f\x5e\x81\x84\x01\x0b\xa2\x60\x96\x82\xc4\x05\xe5\x8d\x0a\x8e\xa7\xe1\x08\xfe\x23\x4f\x86\xc1\x3f\x40\x6a\x61\x00\xd4\x7d\xc1\x00\x5f\xd8\x93\x47\x7b\xfb\xcf\x83\xfb\x6c\x16\x4c\xc2\xfb\x20\xcd\xca\x60\x56\xa8\x27\xe5\x0d\xe8\xb9\x71\x9c\xa8\x40\x7d\x1c\xa9\x69\x19\x80\x64\x00\x3d\xa6\x09\xe8\xb2\x91\x0a\xee\x80\x42\x34\x89\x0c\x71\x18\xfc\x53\x06\xc8\xae\xca\x10\xde\x0d\xe1\xed\x29\xfc\x6b\x8c\x6f\x69\xe8\x02\x58\x8d\xa2\x67\xef\xee\xee\x0e\x43\x02\xf0\x30\xcb\xaf\x9f\x25\xfc\x42\xf1\xec\xd5\xd9\xc9\xe9\x9b\x8b\xd3\x03\x00\xf2\xc9\x93\xcb\xef\xcf\x2e\x82\x93\xf3\x97\xa7\x01\xfc\xf7\xed\xbb\xf3\x7f\x9c\xbd\x3c\x7d\x19\x7c\x71\x7c\x01\xff\xfe\x22\xf8\xe6\xf8\xe2\xec\x62\x18\xfc\x70\x76\xf9\xfd\xf9\xfb\xcb\xe0\x87\xe3\x77\xef\x8e\xdf\x5c\x9e\x9d\x5e\x04\xe7\xef\xe0\xab\x37\x2f\xcf\x2e\xcf\xce\xdf\xc0\xbf\xbe\x0d\x8e\xdf\xfc\xf3\xc9\xdf\xcf\xde\xbc\x1c\x06\xa7\xf0\xf6\xe9\xbb\xe0\xf4\xc7\xb7\xef\x4e\x2f\xe8\xcd\xb3\xd7\x6f\x5f\x9d\x9d\xc2\xa3\xb3\x37\x27\xaf\xde\xbf\x3c\x7b\xf3\x9d\x19\xf2\xd5\xd9\xeb\xb3\xcb\x63\x1c\x05\x47\xd0\x6f\x3e\xe9\x9a\xe9\xf2\xec\xf2\xd5\xe9\x30\xf8\xf6\xec\xf2\x0d\x8e\xff\x2d\xbc\x70\x1c\xbc\x3d\x7e\x77\x79\x76\xf2\xfe\xd5\xf1\xbb\xe0\xed\xfb\x77\x6f\xcf\x2f\x4e\x87\x4f\x5e\x9f\xbe\x3b\xf9\x1e\x46\x39\xfe\xe6\xd5\xd9\xe5\x3f\x71\xa0\x37\xe7\x6f\x0e\xce\xde\x7c\xfb\x0e\x20\x38\x7d\x7d\xfa\xe6\xf2\xf0\xc9\x93\x0b\xa5\x5c\x56\xba\x1c\xd4\x24\xc5\xdd\xad\x98\xaa\x51\x3c\x8e\x47\x41\x12\xa6\xd7\xb3\xf0\x5a\x05\xd7\x19\xe8\xa8\x14\xf4\x75\x30\x55\xf9\x24\x2e\xf0\xb3\xe2\x49\x98\x46\x41\x12\x4f\xe2\x32\xe4\x1d\xcd\xca\x8a\x66\xe3\x93\xb5\xca\x73\xf0\xc5\xb3\x27\xb8\x4a\xbe\x78\x12\x7c\x11\x9c\xa5\xb0\xb3\x8d\xc3\x11\x83\x4c\x58\xfd\xed\xf8\xc7\xa0\x50\x65\x89\x70\x96\x37\x20\x1c\x77\xb8\x5f\x8c\xb2\x74\x1c\x5f\xcf\x72\x65\x5f\xca\x15\x6c\xcb\x45\xf9\x04\x07\x8c\xcd\x38\x7f\xa3\x4d\xfd\xf8\x97\xf0\xe3\x05\x0f\x52\x04\xbf\x3e\x09\xe0\x7f\x34\x23\xfe\xef\x8b\xe0\x12\x86\x80\x01\x4b\xd8\x27\x83\x12\x2d\x83\x02\xff\x02\x01\xc5\xb1\x65\xd8\xe0\x46\x85\x4c\x08\x00\x01\x96\x77\x52\xd0\x53\x5a\x5a\x79\x70\x87\xbf\x7e\x88\x81\x74\x20\xcc\xb0\xe0\xa6\x19\x92\x3d\x16\x60\xc3\x91\x5e\x1d\xb9\x2a\x67\x39\x2c\xcf\x33\x12\x79\x79\x50\x18\xfc\x52\xa5\xa2\x22\x98\x64\x11\x32\x8a\xe8\x3f\xc4\x41\x62\x5c\xc4\xb0\xb0\x26\x0a\x78\x11\x05\x65\x16\x80\xaa\x2e\xb2\x20\xc3\x55\x26\x60\xfe\xe9\x30\x64\x1c\x67\xd3\xc1\x7e\x30\x51\xe5\x4d\x06\x2b\x9e\x11\x7c\x46\xff\x95\xc9\x5e\x1c\x05\x61\x7a\xff\xbc\x4a\x83\x6f\xee\xd1\x1e\x0a\x67\x49\x39\x0c\x42\x54\x1e\x8c\x76\x11\x84\xb9\xd0\x23\x2c\xee\xd3\xd1\x0d\xec\x50\xd9\xac\x00\x7d\x3b\x88\x0f\x61\x45\x93\x0a\x88\x09\x03\x84\xab\xcc\x67\x0a\x6c\x20\x3d\xd4\x3e\x61\x8a\x6a\x03\x31\x0b\x9c\x01\xcc\xf8\x43\xfe\x14\x87\xc9\xa6\x88\x31\x0e\x33\x0e\x13\x54\x17\x27\xa0\xd9\x8a\x83\x28\x9b\x84\x44\x3a\x0d\x10\x50\x39\x0a\xcb\x10\xf5\xeb\x51\xb0\xf7\x0b\x6c\x78\xd3\x3d\xfb\x18\x48\x83\xfa\xa9\x98\x4d\x41\x1b\x96\xde\x9c\x19\xc8\xb9\xe8\xc7\x37\x59\xa9\x98\x97\x4d\x40\x91\x92\x2a\xd5\x04\xf5\x69\x1e\x03\xb2\x49\x06\x1b\x07\x92\xf9\x2a\xcf\xee\x80\xe7\xc3\x20\x8a\x8b\xf0\x2a\x41\xa6\x01\x35\x81\xb6\xbc\x58\xee\x6e\x50\x1b\xba\x62\x03\x78\xe1\xc3\x5b\x40\xe7\xb8\x40\xe9\x30\x56\xe6\x5f\x86\xf4\x22\x28\x52\xfc\x99\xa8\x7b\xc4\x98\xb3\xe6\xfc\xe5\x5f\x3f\x7e\xff\x2e\x18\xfc\xe9\x10\xb6\x14\x95\xe7\x2a\xda\xc7\xc1\x22\x35\x05\x59\x08\x4b\x15\x89\x3e\x9e\x15\xa4\x8c\x59\x1a\x67\xc0\xe3\xa2\x78\x06\xaf\x67\xf9\x33\x52\xc5\x0a\xf0\x1c\x01\x43\xaf\x60\x37\x16\x0a\x03\xc3\x52\xb0\x20\xc3\x48\x34\x2f\xc8\x7e\xce\x32\x1b\x21\x3e\x2c\x3b\x85\x7e\xc8\x60\x64\x57\x68\x01\xe3\x04\x37\x00\x2a\xff\x78\x18\x81\xb5\x02\xc2\x26\x2b\xd5\x42\x26\x8f\x05\x9a\xc1\x7e\x45\x0e\x11\x53\x90\xc2\xab\x2c\x03\x33\x30\xad\x49\xe2\x71\x00\xe3\x1c\x68\xfa\x19\xd8\xc7\xb3\x74\xc4\xf2\x81\x5c\x1b\xc1\x26\x7e\x45\xc4\xa3\xf5\x40\x4b\xe6\xde\x81\x77\x00\x12\x63\x28\xfd\x5f\x87\x1f\x87\xc1\x8f\xaf\x5f\x7d\x7f\x79\xf9\xf6\x1d\x8f\xbb\xaf\x31\xba\x52\xa0\x69\x94\xac\x32\x94\xf3\xc3\xe0\x3d\x51\x13\xfe\x09\x03\xa3\x70\x8e\x80\xc4\xd9\x44\x14\x00\x08\xac\x2a\x47\x87\xa4\x33\x78\x2a\x94\xc7\x42\xeb\x16\x1e\x95\x57\xcd\x14\x4c\x68\x00\x2f\xc4\x7f\x5d\xcf\x60\xf1\x96\x05\x7e\xc7\x0b\x06\xe0\x47\xa5\x14\x9c\xde\xd2\x9c\xef\x48\x31\x20\xf9\x59\x02\x64\x55\x33\x74\x17\xb0\xee\x2d\xfe\xac\xff\x70\x87\x4d\x5c\x49\xab\xc9\xd7\xff\x1d\x56\x87\x90\x05\x46\x03\x5c\xb1\x58\x00\x7c\xb9\xba\x0e\xf3\x28\x01\x4e\x69\x96\x93\x0e\x24\x45\xc6\x23\x7b\xec\xb3\xe3\xbd\x08\x06\x44\x81\x23\x51\xb2\xf0\xe7\xd0\x50\xe2\xa8\x41\xf3\xee\x37\xab\x1e\x50\x11\xa2\x3e\x08\xf7\xa1\xd1\x9b\x30\xd1\xc8\xe0\x07\x90\x4e\x61\xd7\x2a\x68\x75\xc3\xbb\x84\x00\x6c\x78\x11\xea\x1b\x67\x69\xf2\xda\x3e\x0a\x64\x52\x7e\xc9\x0c\xce\x03\x67\x29\xac\xe9\xbb\x2c\xff\xc0\xa2\x3f\x2a\xf1\x9f\xb8\xe6\xbe\x3f\x3d\x7e\x49\x0c\xfd\xee\xf4\xd2\x68\x03\x50\x62\x25\xbd\x8d\xee\x5d\x10\x4e\xa7\x8a\x17\xca\xde\xff\xf7\xd7\x5f\xcb\x18\xcc\xe9\x32\x9c\x4c\x7f\xdf\x23\xfd\x07\x53\xe1\xa7\x60\x95\x83\x9d\x0d\x7b\x50\xc1\x92\x62\xfe\x8d\xac\x47\x04\x50\x1f\x02\xe8\xb8\xcb\x65\x25\xda\xea\x48\xf3\xc2\x21\x3a\xca\x99\x31\xaa\xce\x4e\xff\x02\xaa\x45\xa1\xc5\x04\x86\xc1\x25\x0e\x32\x01\x61\xc4\x19\xc3\xe0\xfd\xbb\x57\xbc\x26\x6e\x50\xd2\x92\x1c\xc4\xf4\x1e\xa8\xa3\x52\x87\x72\x08\x37\x02\xe6\xb3\x92\x48\xd3\xb9\x12\xed\xa2\xcb\x1c\x89\x21\x50\x5c\x25\x87\x26\x2f\x38\x14\x45\x30\x08\xc7\x88\xa4\xac\x7c\xa2\x24\xe9\x22\xb3\x8c\x79\x65\xa8\x8f\x6a\x34\x03\xb8\xf6\x99\x3a\x66\x96\x6b\x05\x4b\x47\x96\x4d\x79\x97\xd9\x75\x73\xe4\xac\xb7\xde\x4b\x1b\x67\x0f\x83\xa2\xcc\x59\x0c\x4a\x75\x0d\x76\xfa\xbf\xd9\x8e\x00\x5d\x09\x06\xce\xcc\x88\xbc\xc6\x64\xb0\x27\xb0\xef\x0d\x83\x3d\x60\x14\xef\xc5\x2a\xc2\x7f\x12\x26\xf8\x07\x32\x3d\x9b\x95\xf8\x67\x08\xb6\x3f\xfe\x01\x28\xee\x01\x93\x41\xfe\xf8\xad\xfd\xb6\xe5\x68\x94\x72\x61\xe4\x33\xd5\x06\x02\xfe\x95\xe7\x21\x59\xc4\x9a\x26\x20\x40\xa7\xc0\xa6\xca\xf2\xb7\xbc\x40\x45\x41\x26\x45\xb3\x62\xf1\xf9\x2d\x73\x37\x2e\xdc\x52\x7d\x2c\x2f\x88\x26\x47\x42\xb3\x96\xe5\x7a\x9c\x6a\x02\x03\x98\xfc\xe6\x33\xd0\x21\xb3\x24\xcc\x0f\xd4\x47\xd0\xdd\x64\x48\x02\x1b\xe3\xbc\x60\xc1\x8c\x50\xf2\xc1\x23\x54\xc1\x4d\x76\xa7\x29\x42\x78\x10\xc9\x84\x01\x6c\x34\x0d\x83\x6b\xd8\x2c\x53\xd0\x01\x85\x67\x93\x1d\x06\x83\x5b\xb1\x6c\xc3\x08\x96\xce\x11\x92\x74\xbf\x82\x1e\xbd\x8e\x16\xce\xaf\xc1\x4f\x1f\xd4\xbd\x46\xe4\x67\x46\x24\xf8\x5d\x70\x79\x76\x3c\x82\x75\x4f\x6b\x18\xe4\x9a\xe1\x21\xf3\x09\x8c\xaa\x19\xaa\x9c\x51\x16\x01\x20\xf8\xcb\x53\x63\x96\xc0\x2e\x3e\x0b\xd1\xd1\x84\xff\x03\x45\xa3\x67\xa3\x48\x92\x6c\x14\xf0\x9f\x3d\xd2\x32\x7b\x32\xcf\x82\xce\xe2\x33\xb0\xc1\x41\x0a\x9f\xfd\xf7\x7f\xfd\x47\x95\xe8\x3f\xe0\x92\x2b\x44\xf1\xa0\xf5\xa3\xb5\x0d\x1b\xa0\x43\x31\x01\xe2\x2a\xd1\x5e\xb2\x21\x86\x82\xb1\x07\x9a\x2b\x11\xb3\xf2\xd9\xc7\x03\x70\xae\x0e\x40\xfd\x4c\x0e\x66\x79\xa2\x52\xc4\x18\x2c\x8a\xd1\x0d\x32\xa4\xfc\xeb\xfb\xcb\x6f\x0f\xfe\x02\x62\x0d\xf6\x0c\xc8\x1e\x79\x79\x29\xdb\xe4\x93\x8c\x36\x65\x70\xc3\x8c\x6d\x07\x4c\x87\x71\x63\x54\xa2\xb8\x76\x03\xf1\xec\x08\x8c\x83\x52\xe8\xc3\xf6\xe9\x60\x9f\x56\x41\x2a\xfb\x6d\x98\xdc\x85\xf7\xbc\xed\xfa\xf8\x04\x03\x45\x42\x30\x06\x65\xc9\xe8\xca\xee\x2c\x1a\xe3\x87\xff\x3c\xa1\x55\x0f\xe4\x95\x55\x6f\xfc\x1b\xc2\x0f\xcc\xb3\x11\xc8\xb2\x12\x01\xa4\x85\xc7\xa8\x39\xd3\x12\x92\xcf\xe5\xc3\x7b\x36\xe5\x58\x19\xeb\x77\x49\x46\x51\x5d\xf3\x4e\xe4\xec\x32\x08\x2e\xbc\x95\x5e\xf3\xaf\x44\x40\x18\xa1\xba\xde\x8c\x88\xb4\x58\xdd\xb4\x68\x65\x35\xe9\x85\xcd\x9a\x5d\xbb\x24\x1f\x69\x99\xa1\x45\x8e\xab\x1a\xcc\xa2\x84\x2c\x2c\xa3\x4f\x0f\x3d\xcb\xdd\xfd\x8c\x75\x81\x0c\x4e\x64\xc8\xd1\x42\x43\x2a\xb2\xef\xc2\x12\xaf\x2d\x17\x32\xa5\xc4\xec\xc0\xd1\xd1\xf2\x0c\x5d\xb7\x69\xa2\xf2\x6b\x54\xfe\xda\xab\x37\x5f\x6a\x85\xad\x99\xbc\xdf\x40\x85\x8f\x65\x0b\x05\xac\x36\xc1\xf7\xc0\xd0\xd7\x02\x8e\x54\x3b\x28\xb3\x03\xfd\x37\x3e\x07\xc9\xe0\x3d\x95\x54\xa2\xf9\x01\x16\xe9\x6d\x98\x80\xe7\x81\x28\x57\x0c\x45\xf6\xb8\x18\xe1\x32\x0f\xd3\x02\x65\x1e\xa0\xe5\x0f\x8c\xf6\x67\xe5\xd3\x4f\xc9\x08\x14\x73\xd5\x8c\x67\xe1\xe0\x42\xb9\x83\x4d\x92\x2c\x11\x92\x26\x58\x23\xe8\xdf\xbc\xf4\xdc\x9b\x60\xa0\x4d\xec\xbf\x5d\x9c\xbf\x79\x0b\x7b\x19\x73\xa4\x00\xf3\x21\x60\x4f\x48\x7b\x4c\xca\xe2\xe0\x0e\x24\x5e\x98\x6c\x08\xac\xac\x86\xb4\x74\xd5\xc7\x10\xf5\xff\x50\xd6\xd8\x41\x11\x47\x88\x7a\x14\xa3\x05\x24\x9b\xbc\x5e\x01\x3c\x55\x1f\x7a\xd8\xa9\x3b\x2c\x89\x97\xa2\xb1\xae\x54\xc3\x62\x27\xfb\x8a\x35\x17\x91\x36\x62\xbb\x86\x82\xec\x42\xda\x21\xab\x82\xd2\xd8\x37\x7a\x5f\xc7\x6f\x81\xfd\x6c\x94\xf1\x97\xe4\x54\xe5\x64\x3d\xa2\xc9\x73\x60\xcd\x38\x8c\x94\x4c\xf3\x0c\xb7\x77\x02\xc8\x3a\x9c\xb0\x2e\x6e\x09\x2e\xa2\xd9\x0c\xcc\x7d\x50\x23\x23\xfd\x32\xcd\x73\xce\x52\x4a\xfe\x16\xa0\xf1\x77\x75\xff\xec\x1f\x44\x7f\xda\xe8\x48\x19\x5a\x21\x84\x3d\x18\x37\xf2\xa1\xde\xec\x00\xd1\x38\x4c\xe2\x7f\x83\x42\x9a\xc0\x42\x8d\x81\x0d\xfc\x76\xc1\xeb\x89\xd8\x0b\xa2\x14\x5c\x85\xb8\x94\x84\xe9\x9e\x8c\x82\xf0\x46\x14\x83\x0c\x13\x63\x3b\x0c\x22\x55\x8c\xf2\xf8\x0a\x2d\x3c\x05\x8c\xae\xac\x3c\x5c\x3a\x6d\xcb\xae\x6a\xda\x69\x4f\x0a\x74\x5a\xa4\x5d\xd8\xf0\xce\xc6\x32\x48\x09\x03\x28\xbe\xd6\x3d\x34\x56\x07\x39\x6d\xe3\x38\x81\x95\x41\x5e\x8c\x33\x7a\x11\x62\xf0\xf4\xdf\xaa\xb2\xd4\x30\x18\x58\xdc\x64\xb3\x24\x92\x45\x2a\x82\xce\x2f\xb3\x8f\x5f\xb1\x0f\x75\xbc\xa4\xc1\x36\x44\x60\x09\x46\x1e\x0b\x6d\xeb\x1c\x9c\x36\x67\x4b\x41\x73\x10\xff\xf9\x54\x6b\x94\xa7\xd6\x2c\xaf\xd3\xed\x5b\x42\x05\x2c\x25\xfc\x07\xd1\x10\xb4\xeb\x3d\xfd\xd1\x62\x17\x5d\x3a\x9e\x13\xef\xd0\xa8\x7f\x60\xdd\x3f\x25\x8b\x77\x8a\x8b\x0c\x28\xc3\xce\xac\x0f\x1b\x49\x4f\x8a\xa7\x03\xb8\xcd\xf1\x46\xa6\xa2\xa1\x67\x2a\x95\xf0\x07\x10\x33\x4e\xc7\xe8\x45\x94\xbe\xa4\xbc\x3e\x7b\x7d\x6a\x26\x77\xc9\x0c\x16\x79\x8a\x3c\x73\xde\xa0\xd1\xee\x63\x05\x74\x87\x07\x43\xd4\xf9\x60\x47\x93\xbe\x71\x9f\x85\xc1\xdf\xc2\xdb\xf0\x02\xc4\x0b\x2c\x53\x56\xd1\xe6\xdd\x82\x7f\xa5\xb7\xc5\x96\x67\x6c\xe8\xf7\x21\x5b\xde\xe9\x3d\xac\x26\x40\x58\x19\xb7\xeb\x4a\x59\xee\xa0\xaf\xa2\xed\xcc\xc3\xa0\x46\x7e\xd9\x33\xf9\x85\xde\x8e\x49\xec\x1b\xf3\xe3\x30\x4e\x8a\x8a\x08\x81\xae\x53\x60\x60\xe2\x86\x90\x83\x3a\x58\xc0\xc3\xb0\x52\xbf\x6f\xe8\x61\xdc\x0b\x59\x88\xda\xb9\xd0\xac\x60\xe7\x87\x04\x21\x1b\x8d\x66\x18\xc5\x11\xe2\x88\xf2\x09\x13\x71\xf3\x10\x36\x43\xe5\x71\x80\xb2\xa0\xbf\x38\x0c\xde\x82\x8e\x8d\xaf\xac\xce\xd0\xc1\xd1\x42\x81\xce\x8c\x0c\x12\xc1\xe0\x4a\xa1\x52\x07\x17\x73\x96\x24\xfb\xe4\x6a\xb9\xce\x8a\x71\x60\xb4\xd7\x82\xa0\x78\x6e\xcb\x21\x1b\x9a\x78\x2a\x07\x0e\x95\x80\x4f\x70\xa0\x3f\x8a\xff\xba\xbc\x01\x03\xc8\x23\xa3\x22\xd7\x01\x6c\xe3\x00\x03\x6e\x84\x07\xb3\x81\x86\x60\x37\x6b\x68\x22\x47\x7b\xe0\x9d\x07\xdf\x66\xb3\x34\xda\x23\xa7\x89\x22\xbe\x48\x86\x0b\x5e\xa5\xa7\x38\xc9\xe1\x5e\x8b\xf7\xc4\x00\xad\xdb\x75\xe2\x80\x01\xa9\x32\x56\x7f\xc6\x4d\x97\x37\x91\xde\x23\x37\x18\x29\x0b\x00\xe9\xe7\xfd\x4e\x9b\xb6\x13\x38\xe8\xe1\x94\x11\x4a\x3d\x3d\x32\x8f\x07\x73\xdc\x34\x60\x24\x07\x16\xd0\x1e\x88\xaf\xaf\xe1\xcf\xeb\x24\xbb\x0a\xd9\x90\x0c\x78\xbf\x13\x74\xb5\x44\xc5\x85\x8d\x26\x5d\x52\x48\xcf\x78\x0f\x6c\x53\x5c\x38\x71\x1a\x7f\xdf\x54\x7a\x74\x33\x64\x12\x7f\x60\x1b\x13\x70\xc8\x4b\x64\x36\xff\x23\x9b\xb2\xfa\xbb\x52\xb4\x5a\x18\x36\x94\x72\x22\x56\x25\xb0\x87\x46\x61\x9e\x25\x20\xf8\x79\x8c\x11\x5a\x4b\xc5\xc2\x27\x23\xcf\xde\x15\xcc\x70\xdd\x56\xb0\x66\xf4\x5e\x2a\x71\x7d\xd8\x7c\x9f\xdd\xda\xfd\x9c\x5d\x3a\x5c\x5b\x49\x06\x50\xd2\x26\x6d\xa2\xc3\xb3\x42\xaf\xf3\x8a\x0f\x42\x06\x26\xae\x02\x26\x9f\x0c\xfd\xe3\xc1\x3b\x1d\x88\x39\xf8\x01\x06\x3a\xaa\x7e\x66\x5d\x12\xb2\xb2\x86\xc1\xd5\xac\x24\x07\x58\xd3\xbf\xf2\x3e\xc3\x29\x94\x62\x2f\x24\x82\xc9\x72\x60\xd0\x3f\x58\x41\x88\x1d\x2f\x21\x4b\x7f\xc1\x24\x05\xa9\x4c\x3c\xfc\xb9\xcb\xe3\x12\x3c\x14\xe6\x07\xe2\xd8\x1e\x76\xec\x61\x0a\xca\x6c\x0b\xd8\xc5\xc7\x68\x9d\x7a\x2a\x5b\x6c\x44\x8e\xc1\x8c\x67\x12\xaa\x8b\x2b\x9b\x1a\x46\xba\x34\xde\xc0\x0b\x71\xcd\x92\xb0\x28\x5d\xf9\xe5\xa5\x87\x41\x6a\x8c\x7f\x8d\x6e\xd4\xe8\x83\xe6\xdb\x2b\x78\xf5\xe0\xb5\xc4\x76\x04\x70\xeb\x2c\x1b\x3b\x4e\xc7\x23\xaf\xd3\x2c\xd7\x9f\xea\x97\xcf\xdc\x3d\x42\xe2\xc5\x6a\x74\x93\xc6\x30\x3f\x13\x99\x66\x64\x0d\xf9\x54\x95\xe1\xf5\x53\xbb\xb5\xeb\x98\xa5\x98\x26\x28\xe8\x61\x09\xaa\x6a\x96\xea\x80\x13\x9b\x3f\x1e\x7d\xe3\xb1\x86\xb8\x4b\xcc\x0d\x49\x69\xf3\x80\xb5\xa9\xd2\xdb\x38\xcf\xd2\x89\xd8\xdd\xb4\x09\x8f\xb2\xeb\x94\x8c\x2c\xd4\xc8\x49\x06\x6a\x6e\xb8\x07\x3e\xf7\xe1\xf5\x21\x7d\x8a\x67\xba\xc5\x3d\x08\xec\x04\xfc\x75\xed\x89\x0b\xb6\x51\x26\x31\x58\x33\x0a\x5a\x23\x30\x0e\x69\x78\x7b\xf6\x23\xfb\x6e\x86\xf0\xd0\x19\x63\x9e\x95\xd9\x28\x4b\x38\x02\x28\xc0\x01\x6f\x7d\x60\x08\x96\x23\x02\x60\x18\x7c\x71\x00\x1a\x50\xa5\x05\x9d\x83\xa1\xae\xbd\x8b\xa3\x6b\x55\x9a\xe3\xb3\xb8\x78\x85\xaf\x6f\xec\xf8\xac\x49\xe4\x0f\xbf\xf4\x85\x5e\x60\xe8\xe0\xc8\x39\x0c\x92\xc7\xda\xa7\xaf\x1d\x67\xa4\x68\xfa\x53\xc8\x84\x4e\xb2\x2a\x02\xcc\xa2\xa8\x37\x2e\xf1\xd1\xcd\xe1\xcd\x53\x3d\xdc\x53\x8d\x87\xf9\xe5\xaf\x2f\xc8\xbc\x2d\xf5\x66\xec\x7a\x53\xfa\x65\xf0\x92\x40\xa5\x67\xc1\xaf\x34\xf3\xd1\xd3\x2c\xa5\xfd\xeb\x55\x16\x46\x4f\x7f\x0f\xee\xc4\x34\x2f\x68\x07\x48\x03\xf7\x31\x8f\xae\xdd\x7e\xd7\x90\xad\xef\xdb\xf6\xf0\x56\x09\x8a\x95\x83\x3e\xbd\x8b\x14\xfa\x33\x52\x47\xa8\xa2\xe5\xab\xbd\x17\x1a\xab\x3d\x8d\x81\xcc\x8a\xb1\x6f\xdc\x58\x4a\x3c\xac\x2b\xe5\x01\x86\xc2\xf6\xfe\xfa\x62\x8f\x37\x35\xed\xf3\xcb\xc1\xdf\x59\x2a\x61\xb2\x10\x57\xf6\xbd\xf5\x41\x68\xc9\x3a\xa1\x2c\xed\x64\x13\xc8\x27\x9a\x6d\x82\xcc\x21\x98\x30\x8e\x43\xfd\x2b\xbf\x75\xa4\x15\x86\xf7\xcd\x51\xb0\xa7\xc1\x7f\x03\xbc\xde\x0b\x7e\xf7\x04\x88\xde\x6d\xf1\xd2\x2e\x38\x34\xd5\x25\x39\x88\x63\xe8\xdb\x1d\xbd\x44\x87\x1d\xbc\x14\xec\x16\x1e\xc7\x38\xbd\x14\xe3\xbc\x56\x29\x1e\x95\xb2\xa2\x92\x00\xa9\x78\xe9\xc0\x2c\xf0\x40\x42\xb4\x46\x81\xd6\x09\x50\x49\xb8\xa6\xbf\x01\x70\x66\xac\x05\x79\x60\xd0\xc2\xe5\x53\x00\x62\x12\x7e\x20\x55\xa1\xc2\x22\x66\x9d\x37\x09\xd3\xf0\xda\x3b\x2e\xe5\x23\x03\x50\x15\xb7\xb8\x60\x9c\x43\x03\x73\x90\x40\xe6\x05\x71\x40\x27\x93\xdc\x85\xac\xd8\x8a\x26\x62\xd1\x51\x05\xc5\x5e\xe4\x2d\x95\x12\xe8\x57\xc0\x47\x00\x42\x47\xf3\xf0\x24\x04\xa5\x07\x08\xe3\x9f\xfc\xd4\xc5\x19\x07\x33\xfb\x28\x8a\x9a\x13\x71\x32\x56\x94\x88\x09\x39\x4c\x1c\x43\x45\x79\xf3\x9d\x7a\x5f\xb0\x9c\x33\xf4\x1b\xed\x26\xb9\x01\x00\xf0\x20\xcc\x56\x5c\x97\x1f\x3d\x4c\xab\xb7\x3f\x01\x2f\x20\xd0\xb1\xd8\xcc\xd5\x48\xe8\xf0\x98\xa7\xbd\x54\x1e\xbe\x3d\xcf\x3f\x43\xe5\x70\x97\xe5\x91\x1b\x5d\x20\x23\xaa\x6a\xfa\xa4\x76\x57\xa7\xf0\x13\x7b\x0d\xa1\x9c\x1f\xcd\x30\x58\x5c\xea\xa0\x6e\xe3\x79\xa4\x9e\xa9\x1d\x1a\x37\x40\x4a\x8e\xb9\x68\x2e\x09\x96\xdd\xe8\xe0\x86\xc4\xf9\xdd\xb0\xe9\x80\xb7\x74\x5a\x14\x43\xeb\xd2\xca\x91\xdd\x0d\x8a\x81\xb6\xc2\xcd\x4a\x93\xa0\x91\x78\x7a\x6e\xcc\x31\x4e\x1b\x02\x5b\xe3\xb8\x2c\x1d\x8d\xa6\x4d\x3e\x2f\x7e\x3e\x3f\x74\xbf\x67\xa2\xf1\x66\x39\x90\xf5\x1a\xbc\x3c\x7f\xfd\x32\x1b\x91\x7b\x48\xa7\x54\x0c\x7a\x9a\xa5\x07\x16\x4e\x44\xbf\x23\x0f\xc3\x27\xb7\x8d\x9f\x75\xed\x79\x68\xb5\x11\xd0\x18\xe1\xd2\xc7\x85\x7b\xec\x36\xed\x59\x3b\x19\xc5\x9e\x64\x83\x6c\x8f\xa1\xef\x4c\x19\x9d\x40\x82\xa3\x13\x3d\xd0\x69\xd4\xe3\x98\xd8\x30\x39\xb2\xb0\x72\xf7\x48\x8a\xf7\xc9\x51\x29\xbc\xb0\x3f\x6c\x11\xe0\x9f\x63\xa0\x42\x47\x54\xd9\x85\x03\xbb\xcc\x0b\x7d\x1b\x1d\xfa\xbe\x70\x4f\x3a\x71\x98\x70\x44\x67\x9b\x30\x98\x0c\x41\xc6\x0a\x9d\x4a\x6b\x7f\xd1\x84\x6a\x43\x9e\x9d\xdc\x78\x3d\xf0\x04\x73\x4e\x78\x5a\x9f\xa6\xfc\xdb\x09\x43\xda\xb1\xaa\x5c\x0f\x26\x05\x96\xe6\xf1\x88\x97\x0b\x8a\x00\x2b\x49\xe3\xfb\xb6\x9e\xd8\x3a\x26\x74\x3d\xf7\x03\x07\x3a\x0c\xc6\xd5\x0c\x16\x6b\x8f\x0f\xdd\xb3\x53\x7c\xdb\x9d\x11\x15\xbc\xa1\x80\x3d\x02\xd7\xc4\xd0\xa7\xc2\x5a\x39\x3f\x47\xab\x32\x2e\xc5\xc4\xe0\x73\xa3\x54\xd4\xfc\x00\xac\xfa\x64\x46\x30\xfd\xe7\xc7\x8f\x26\x4a\xcd\xc7\x47\xf7\x73\xa7\xf2\x0f\x9d\x7b\xf8\x2e\x8c\xd1\x09\x20\xb4\x88\xfb\xd2\x2f\x0c\x45\x78\x83\x65\xda\x75\xd8\xdd\x14\x8c\xea\x0c\x67\x52\x48\x7f\x82\x86\x4f\x84\xda\xd2\x1e\x67\x6a\x7d\x46\xeb\xc2\x50\xe6\x79\x6b\xa8\x8a\x31\x7f\x6e\xc2\xa3\x8b\x85\xc0\xda\x8e\xb9\x35\xaf\x1f\xe0\x94\x5b\xa6\xae\x84\x6e\x1b\x62\x29\xd5\x88\x4b\x4b\x20\x05\x63\x1e\x61\x20\x61\x34\x22\xcc\x04\x80\x8b\x39\xf6\x56\xec\x9b\x60\x9c\x6f\x7d\x71\x9e\x89\xde\x68\x31\x47\x4c\xe2\x23\x7a\x20\x3e\x5f\x04\xc5\xe6\xb9\x1e\x2c\x23\xfa\x9d\x29\x2c\xf1\x2c\x42\x16\xe5\x68\x1a\xb1\x7e\x99\x66\xb1\x44\x5c\xf8\x4b\x3e\xad\x93\x94\x10\x5a\x53\x05\x98\xd3\x39\x4c\xc5\xba\xde\xcb\xe4\x03\xe8\x41\x83\x5f\xe7\x3a\x3b\xc3\x3d\xd2\x44\x95\x90\x52\xc8\x25\x55\xb2\xa4\xc3\xdb\x30\x4e\xd0\x60\xd2\x8e\xd4\x54\x47\x22\xd9\xee\x74\xdc\x76\x84\x39\x40\xa0\x6d\x46\x95\x44\x28\x38\xab\xea\xcc\x17\x28\x9a\x9d\x0e\x2d\x86\x4d\x91\x94\xca\x99\x28\xab\x86\x38\x05\x83\x28\x26\x7a\x80\x26\xad\xac\x32\xca\xc4\x41\x00\x9e\x8b\xf5\xa0\x73\xf3\x64\xa8\x89\x9a\x5c\xa1\x86\xa0\xd4\x3e\x0c\xa0\x91\xb2\xd1\xb1\x57\x82\xef\x5b\xd0\x31\xe3\xec\x63\xf0\x9f\x87\x7f\xfe\x3f\x14\x78\x18\xba\x81\x3e\x3f\xb6\x87\xc8\xa1\xc6\x27\x19\xc5\x5c\xac\x44\xa7\xd9\x08\xf3\x9e\xbb\xbb\x0c\xe1\x91\xcf\x52\xe3\x4c\xa3\xcb\x0c\xa2\x81\x11\x54\x4e\x99\x29\x6b\x6c\xf7\xa5\x5a\x9e\x81\x76\x02\xcd\x0f\x88\x34\x8a\xa9\xce\x5a\xa3\x34\xcc\xd8\x3f\x74\xd4\x39\x82\xde\x39\x52\x79\x9f\x90\x7d\x49\x7a\xc2\x9c\x52\x85\x75\x2b\xd3\xf9\xaa\x63\xdb\xbf\xac\x27\x8f\xb1\x9d\x0f\xda\x7a\xb0\x87\xa9\x4b\xbc\x7f\xe3\x4e\x0d\xaa\xdc\x09\x2f\xd2\x4f\x3a\x12\x7b\x4e\x72\x4b\x3b\x9b\x1e\x45\x92\x12\x6d\x1c\xf9\xed\xfb\x4b\xe2\xca\xcb\xd3\x57\xa7\x97\xa7\x43\x2f\xb4\x45\xfb\x39\xc6\xc3\x38\x92\x46\x3b\x06\x0a\xbf\x93\x17\x2a\xcc\x42\xe9\x62\xe9\xaf\x84\x13\xcb\x39\xf6\xad\xce\x2a\xb2\x67\xd6\xda\x1d\x05\x7c\xd9\xe2\xaf\xee\xa1\x35\x45\x05\xd6\x5b\xd7\x14\x80\x45\x4e\x1e\xd4\xc6\x4d\x68\x3d\x53\x3b\x34\xc6\x4d\xe1\x48\xb8\x0a\xcb\x96\x08\xa8\xde\x15\x24\x94\x56\xe8\x1d\xe9\x98\x72\x60\x7f\x94\x43\x54\xce\x65\xd3\xba\x25\x18\x9c\x9d\xee\x37\x6b\x01\x14\x04\x10\x60\xb0\x49\x6c\x14\x25\x33\xfe\x21\x88\x37\x18\xb4\x77\xb0\xa0\xd0\x0d\xc7\x9d\x33\x34\x6e\x58\x75\x24\xf0\xd6\xd3\x1b\x5c\xa8\x13\xce\x7f\x60\xb0\xc6\x60\xd3\x65\xe0\xdb\x7a\xe4\xf8\x78\x93\xcf\x4d\x56\xc0\xbd\x0b\x8f\xc9\xd0\xa3\x3f\xa0\xbf\xfe\x51\x0d\x1e\x1b\x33\x31\x0d\x11\xf7\xc0\xa6\xd1\x56\xa2\x07\xda\xa3\x9c\x71\xca\xb8\x7c\x8c\xac\x3e\x01\xbb\x07\x99\x17\x26\x76\x59\xd7\xce\x22\x8c\x46\xc2\x23\x72\x4a\x2b\xf4\x95\xad\xec\xc8\xd5\xf1\x80\x88\xa0\x67\x4a\xf4\x9f\xd9\x76\xc5\x1f\xc2\xeb\xb0\xb4\x31\x1d\x07\x70\xde\x2b\xc0\xe6\x3b\x39\x7f\x77\x61\xa7\xc4\x3f\x62\x0e\x29\x95\x12\x30\xa2\x60\xa9\xe4\x22\x8d\x93\x50\x42\x25\x72\xb6\x80\x37\xc0\x86\xc1\x9d\xb2\x01\x39\x09\xa6\x5b\x68\x0f\xbf\xfc\x3f\x3a\x24\x83\x84\xe1\x19\x58\x75\x49\xaa\x74\x5c\xf6\x72\x53\x81\x8d\xdf\x22\x63\x3a\x03\xd2\xbf\x77\x5c\x3d\x70\x33\x9f\x1b\x6f\x15\xe0\x63\x8a\x50\x46\x45\x45\xde\x86\xf2\xc6\x5b\x30\xda\x40\x7c\xbf\x82\xe9\xbe\x6e\xbe\x77\x70\xa8\x6d\x84\xd7\xe2\x55\x9b\xf0\x23\xed\x54\x36\x72\x53\x09\xcc\xc3\x6b\xb5\x88\x50\x25\xcd\xc3\xcf\x8b\x36\x3a\xc2\xf3\x2c\x75\x34\xbb\x6a\xc5\x1d\x7e\x39\xac\xd1\x40\xa2\xda\xac\xf2\xc4\xbf\x69\x05\x7e\x80\x02\x11\x3a\x16\x44\x50\xb3\x28\xe1\xe9\x1d\xec\x9b\xac\xa4\xf1\x5d\x37\xe3\x1e\xdd\xa5\x5b\x46\xdc\x42\x55\x3d\x29\xae\x4d\xaf\x43\x13\x73\xce\xc6\x4e\x1a\xb2\xa7\xe5\x99\x7e\xe5\xff\xc9\x96\x48\x36\xe3\x25\xe6\x53\x19\xa5\x6f\xf3\xba\xf5\xe1\x27\x5b\x96\x4e\x96\xaf\x16\x21\x3a\x7c\xb0\x6e\x88\x77\xc0\x40\x71\x41\x84\x03\xbc\x77\x0f\x2b\x3a\x9d\x1d\xd8\x99\x5f\x38\xd8\xdc\x66\x71\x54\x4f\x2f\x4a\x47\x72\xf7\x4b\x0e\x64\xb5\x40\xc0\x66\x5e\xea\xfb\x55\x81\x4e\xd7\xc7\xa5\x7c\x88\x47\xe3\x86\x59\xc5\x90\xf3\x84\x28\xa5\x24\xac\xdc\x52\xd8\xe7\xa5\x87\xb7\x80\x12\x4a\x92\x13\x99\x96\x6d\x69\x12\xa6\xf1\x74\x46\x49\x69\x98\xc5\x3e\xe6\xc8\x5e\x24\x57\x16\x0e\x71\xf3\x19\xb0\x8d\x5c\x51\xd2\x91\x2a\xe9\x78\xde\xdf\x76\xf1\x75\x84\xd3\x06\x4f\x17\xb6\xe2\x83\xbf\x7e\x4d\x64\x1a\xd2\xf9\xbf\x13\x19\x5b\xe6\x88\x15\xd3\x3d\xf4\x80\xfb\x47\x0d\xab\xba\xc6\x8c\xb7\x5a\xaf\x56\x6c\x03\x3a\x66\x8f\x9c\xcb\x41\x95\x33\xad\x13\x59\x96\xe4\xb7\x81\xb2\xc4\x70\x87\x47\x1b\xfd\x26\xda\xa1\x7a\x7f\xea\x52\x5f\x0c\xab\x91\xbe\x46\x0d\x66\xf6\xf5\x9a\x6e\x3a\x8e\x30\x7a\x64\x6f\x8e\xe4\x94\xd3\x09\x56\xee\x48\x1f\xf1\xdb\xe8\x2c\x45\xb5\xcc\xab\xe0\x1a\x19\xfb\x22\xa8\x2c\x27\xfb\xcd\xb1\xa3\xb5\x70\xf0\x9a\x47\x38\xe4\xa0\x27\xda\x6d\x2c\x69\xa4\xe9\xf5\xd6\xd4\x38\x9b\x2c\x9f\x28\x1a\x98\x79\x8e\x82\x6f\x65\x40\xc3\x3d\x8d\x73\x7d\x77\xff\xd4\x50\xfe\xe9\xe7\x06\xa4\x6b\xa9\x79\x74\x91\x49\x55\xd1\xe1\x78\x43\x94\x89\x17\xc5\x71\xcf\x09\x6c\x3e\x95\x54\x29\xfe\x7a\xd0\x67\x22\x93\x05\x2e\xa2\x6f\x29\x43\x13\xa2\xfb\x49\xd7\x16\x64\xcc\xa8\x71\xa6\x08\xa7\x32\xfe\x47\x75\x8e\x77\xb4\x6b\x90\x5d\x9f\x55\x27\xe1\x53\xa5\x06\xea\xe1\xd1\xd1\x7d\x1f\x0c\xf0\x49\xf3\xd8\x26\x29\x96\x93\xd7\x4d\x20\xa7\x45\x26\xcc\x73\x32\x01\x4c\xfa\x0e\x08\x05\x51\x02\x13\x14\xcc\x1b\x68\xef\x62\x56\x35\x71\x66\xbe\x28\x8c\xc1\x58\x1a\x1c\x1e\x1e\x3a\xb1\x24\x60\x5f\x3f\x49\x68\x67\xd0\x4d\x48\x54\x75\xee\x96\x48\x60\x06\xc4\x15\x38\x81\x30\xc3\x4e\x56\x87\xa4\x9b\x5b\x86\x9e\x76\x22\x3a\x08\x25\x22\x54\x48\xaa\xb3\x9a\x43\x27\xdf\xa9\x68\x5d\x73\xf2\xf2\x71\x40\x87\x55\x8a\x32\x04\x84\x74\x3a\x3b\x3a\x75\xdc\x34\x6f\x7e\x8a\xec\x22\x04\x62\x85\x5e\x29\x46\xe5\xb0\x95\x89\xc7\x96\xe3\xfe\xca\x36\xaf\x0c\x0d\x1b\x2b\x1c\xf4\x66\xac\xd3\x0f\xd3\x45\x06\x5e\x02\xf5\x30\x60\xe6\x2e\xc5\xd7\x3b\xc9\x09\x0a\xc9\x0d\x4e\x62\x27\x91\x1c\xb7\x1c\x43\xfc\x39\xaa\x8c\x2f\xcc\xea\x7f\x90\xbf\x12\xe6\x18\xbd\xcb\x2a\x89\x94\xb0\xa4\x8d\x5e\xf2\x34\x71\xab\x48\xbc\xc2\x8b\x96\x55\x55\x14\xcb\x75\x10\x49\x68\xa0\xf0\x8f\x3f\x11\xde\xcf\x5c\xab\x0e\xc2\x01\xab\x1a\x88\x7f\xeb\xa5\x7f\x7a\xee\x22\xa2\x92\x36\xbe\x8f\x68\x63\xda\xc4\x90\x3b\x14\x08\xbf\xbb\xdc\x0e\xfa\x49\xa3\xdf\xb8\xd6\xac\x01\x76\xcc\xd7\x82\xc4\x70\x16\x13\xb1\xe0\x94\x5d\x10\xba\x6c\xca\x1a\x0d\x4f\xde\xe4\x9d\xa9\xbc\xd3\x68\x99\x7d\x87\xa7\xe9\xf1\x48\x9b\x9a\x97\x0d\xee\x23\xda\x2b\x26\xdb\xae\xf9\xb8\x47\x5f\x1d\xd6\x1e\x1c\x39\xe1\x05\x16\x27\x01\xf3\x38\x57\xf8\x1b\xfe\x85\x39\x95\x25\x86\x28\x9d\xf0\x70\x1b\x23\xd0\x3a\xe7\xe4\x68\xef\xfc\x03\x29\x1e\x17\xed\x00\x38\x33\x57\x15\x29\x9a\xe9\x7a\x44\x27\x2f\x76\xc1\xb1\x19\x97\xba\x3b\xf1\xd5\xfb\xaf\x07\x16\x66\xf0\x02\xc8\xf9\x02\x65\x7a\x49\xaa\x94\x33\x6a\xb5\x32\x45\x53\xff\xfd\x6f\xbe\x95\xff\xfe\xeb\xa1\x03\x22\xfa\x11\xf0\x19\x87\x32\xbc\xef\x48\x39\x6b\xea\x79\x2f\xeb\x1f\x01\x99\xca\x07\x35\x97\xe2\xfd\xd7\x75\xa5\xf2\x99\xcf\x7d\xf8\xbc\x18\x93\xad\x83\xb8\x15\xb6\xe2\x74\x5f\xf7\x72\xd7\x44\x29\x3c\xd3\x1e\xb4\x55\x7c\x8d\x6a\x42\x26\xd0\x0a\xc9\xea\x89\x0a\x05\x7c\x8b\x81\xa3\x08\x00\x4d\xcb\x70\xe7\x54\x28\x21\xcb\xbf\x82\x8f\xdf\x9b\x11\x35\x24\x5f\x1e\xb5\x4e\xfe\x5b\xdb\x83\x9f\x7e\x26\x30\x0c\x32\x6f\x8e\xf8\x86\xcc\x57\xcd\x1f\xa0\x67\xdd\x32\x16\x3e\xfa\xe9\xe7\xaf\x1b\x57\x4e\x7f\xfa\x0e\x4d\x72\x5c\x2f\xfa\x22\x5d\x75\xa4\xaf\xb7\x7e\xb6\xc6\x86\x9b\x8e\xc9\x87\x57\x68\x1c\x56\x57\x6d\xe5\x18\x13\xdf\x43\x63\xa3\xed\x80\x60\x29\xad\xa0\x62\x39\x13\xe4\x25\x8a\x1a\xa1\xba\xa4\x6a\xce\x0a\xa5\x26\x6b\xfa\x17\x5f\xf6\xde\x80\x7b\xaa\x89\x46\x18\x9a\xe7\xfe\x8f\xe0\x5c\x6b\x0d\x27\x83\xdb\x99\x57\x83\x53\xb4\x19\x04\xcb\x02\x24\x7e\x36\x81\x33\xf0\xa1\xfa\xf2\x45\xdb\x7a\x98\x2b\xc5\xbc\x34\x7d\x1c\xd7\xbf\x32\x2e\xeb\x41\xaa\xd5\xb6\x94\xae\x2d\x63\x09\x39\xe9\xcb\x97\xaa\x70\x78\xd3\x6d\x47\x34\x2a\x21\x09\x0c\xa8\xba\x50\xb4\x8b\xc2\x7c\xd5\xe8\x8e\x33\x47\x06\x3a\x07\xdb\x28\xff\xbb\x35\x85\x1b\x6f\x5d\x2b\xff\x9b\x95\x83\x37\xdd\xa6\xf9\xdf\xa4\x0e\x28\x88\xee\x42\xb1\xaa\x2a\xf0\x30\x7a\xac\x8a\x40\xe7\xf9\x16\x36\x93\x24\xcd\x4a\x93\x72\xdf\x6a\x50\xea\xb7\x4f\x16\xf2\xe4\xba\x41\xea\x0b\x8b\xc9\x5d\xa4\x77\x06\x55\x50\x56\xe5\x5b\x75\xbc\xcd\xb0\x8e\x79\x87\xe5\x08\x4d\xa1\xa5\x03\x89\x8e\xa5\x19\x66\x2c\xe0\x6d\x7c\x46\x34\x9e\x2a\xc7\x1e\x46\x7b\xf5\xa3\x3d\xcb\x20\x8b\xd6\x37\x7d\xab\x4f\xeb\xf6\xae\xff\x46\xcb\x51\x48\x0f\xfb\x4b\xdb\xb5\x7d\x0d\x30\xcd\xea\xcf\x16\xd8\x67\x0b\x6c\xe7\x2c\x30\x47\x78\x3f\x9b\x60\x7f\x44\x13\x6c\x13\x02\xf0\xd9\x06\xdb\x45\x1b\x6c\xcd\x92\xf0\xd9\x08\xdb\xa2\x11\xe6\xf1\xae\xf1\x10\x93\x12\x3c\x6a\xa4\xc5\xf4\xb4\x1a\xe7\xea\x47\xc5\xad\xcc\xc2\x67\xce\x92\xb2\x47\xc2\x7a\xb9\xf8\x57\x30\x6b\x00\xf8\x84\x27\x9e\xdc\x9b\xb8\x60\xd7\x59\xe2\x26\x11\xae\x1c\xe4\xce\x3d\xc3\x3d\x91\xff\xce\xc1\xd5\xa4\x63\xd9\x8a\x5a\x0d\x07\xb6\x6b\x27\xa7\x7b\x40\x2b\x34\x5d\x99\xc0\xef\x14\x67\xdb\xd5\x28\x49\xe5\x26\x90\xfa\x98\xd6\xee\xe9\xa9\x0d\x4a\x95\x37\x4f\xf5\xac\x0c\xc1\x5a\x5c\xa2\xd6\x8f\xef\x7a\x84\xca\x9f\xa2\xa7\x40\xb9\x47\x19\xf5\x83\xff\xa5\xa9\xba\x19\xc1\x22\x13\x6a\x1e\xa5\x3d\xa3\x6e\x11\xc9\xe2\xeb\xaa\xdf\xc6\x79\x51\xda\xa4\x16\x8b\xb7\x37\x6e\xf7\xe2\x2c\x66\x57\x05\x26\x66\xa6\xe5\x7c\x52\x36\x0e\x6b\x52\xe6\x10\xe1\xce\xb3\x90\x2d\xd1\x6d\x3d\x12\xea\x4f\xb1\x51\x09\x9d\x4f\xd6\x0e\x11\x5d\x9a\xd0\x74\xed\xd9\xd2\xf9\x69\x61\xd2\x4d\x2b\x08\x56\x10\x2d\x61\x2e\x55\xea\x22\x6d\x59\xea\xdd\xc2\x90\x33\x1f\x53\xd9\x9a\xb2\x99\x24\xc3\xae\x2c\xa9\x88\x70\xd5\x44\xc1\xf7\x07\x3c\xe8\x8b\xa3\xc6\x88\xc7\xee\x46\x64\x24\x7b\x4d\x02\x32\xa6\xc4\x86\xfe\x1d\x6b\x6b\x72\x55\x9f\xc6\xd4\xf7\x6f\xc2\x42\xf1\xa7\x74\xf7\x4e\x28\xae\x43\x33\xf4\x9b\x04\x62\x4c\xe2\x2e\x6b\xfc\x48\x25\x0a\xaf\x17\x5c\x12\x55\x8f\x82\x53\xce\x06\xe6\x87\x71\x21\xb9\xd1\x6f\xb9\x16\x44\x25\xcf\x86\x5f\x39\x9b\x4c\x54\x14\xc3\x10\x6f\xe5\xaa\x02\x40\x8d\xf5\x84\xa6\x8d\x6f\xf7\x78\x09\x2f\xbd\x14\x53\xc0\xca\x8f\xf1\x64\x79\x7c\x1d\xc3\x6a\x21\x64\x8e\x18\xa7\xe7\x22\x19\x04\x9d\xc0\x3a\x70\xd3\xcb\xa5\x32\x67\x23\x76\x7c\xc3\xd5\x79\xb9\x00\x80\x9a\xb0\x19\x78\x29\xde\xf8\x56\xeb\xc3\xb2\x69\x22\xbc\x8b\xfc\xa3\x7f\x45\x0c\x7f\xfa\xa7\xff\x13\xad\x0c\xff\x27\x58\x1a\xe1\xdf\xf1\x86\x84\xa1\x4f\xc3\xe9\xf0\x59\x3a\x9d\x95\x4d\x5c\x6f\x96\x89\x5f\x25\x62\x53\xfa\x03\xe3\x8f\xa3\x32\x4f\xea\xbf\xd6\x81\x20\x2a\xdc\xc4\xe3\x72\x2e\x6c\xaf\xb3\x59\xa1\x9a\x60\x6b\x01\x9d\x81\xbb\x9a\x95\x25\x9e\xde\xbb\xa4\x18\x25\x31\xbc\xf6\x63\xd3\x8f\x15\x3a\x66\xe3\x71\xa1\xaa\x6f\xf2\x8f\xff\xac\x33\x61\x3e\x5f\x8a\x51\xae\x54\xfa\x63\xd3\x8f\xce\x9b\x0d\xc8\x03\x75\x16\x46\x1d\x6f\xb4\x3b\x12\x89\xff\xc4\xeb\xcf\xfe\xe4\x74\x69\xc6\xbc\x03\xff\xf2\x5f\x69\x00\xa5\xb7\x78\x0c\x5b\xc0\x1b\xb6\x30\x74\xd8\x88\xeb\xaf\xac\xe1\x08\xbc\x13\x2f\xcd\x4c\xee\x37\xc5\xca\xd4\xf8\xd6\xf1\x5f\xb9\xf1\xf7\x04\x1b\x8f\x54\xc1\xbf\x90\xb6\x11\x22\xbb\xbf\x84\x1f\xab\xd7\x1d\xaf\xb2\x8f\xaf\x81\x08\xb5\x6b\x90\x5c\x8f\xea\x9b\xd9\xd5\x55\xa2\x8a\xfa\x43\x35\xfa\x70\x92\x80\xfe\x6f\x7c\x72\x5e\xab\x9d\x3a\xca\xf2\xfa\x20\xa0\xfd\x93\x2c\x2c\xab\xbf\xdf\xe4\x6a\xfc\x06\x2f\x83\x63\x81\xd1\x5a\x6d\xa8\x9b\x72\x92\x5c\xe8\xf2\xa3\xd5\x87\xf0\x17\xde\x1b\xff\xe1\x26\x2e\x59\x11\x56\x5f\x48\x33\x82\xfa\x04\xa1\xac\x8f\x2d\x4f\x89\x1f\xd5\x67\xa0\xb6\x46\x71\x79\x5f\xff\xb9\x94\x8c\xf3\xda\x68\xf0\xe8\x42\x25\x14\xe3\xa9\x3e\xe2\x6b\xb4\xa7\x60\x5e\xbc\x08\x6a\x5a\x9c\x6e\xb1\xd6\xbe\x98\x5d\x4d\xe2\xb2\x85\x1d\xe5\x55\x16\x79\x90\x35\xa5\xc2\x90\x5d\x51\x3b\x52\x38\xc1\xcb\x8f\x68\x0a\x9a\x92\xae\x91\xad\xab\x1c\x6a\xe1\xb3\x77\xdc\x73\x53\xd5\xb1\x98\xc5\x65\xa8\xaf\x4e\xcf\x0a\x29\xfa\x84\x57\x46\xff\xe5\xd6\x66\x82\x87\x74\xb3\xbd\x72\x53\xb3\x6a\xf0\xc0\xa8\x9c\x77\xec\xcd\xc2\xc9\xb8\x02\x98\x6f\xb4\x0d\xe0\x0d\x6d\xc9\xe8\xcd\xee\x13\x40\xce\x18\x80\xce\xb5\xe6\xe3\xe0\x1b\x66\x2c\x40\x11\x51\x14\x0a\x4b\xf8\xd9\x7a\x88\xa0\x17\xb0\x78\x02\xde\xd5\x76\xbe\xda\x2b\x6e\x42\xcc\xe1\xdc\xeb\xba\x07\x6d\xa8\x38\x74\xbf\x35\x92\xe4\xd0\xd6\x5a\x5e\x98\x2d\x6d\xa5\xcb\xa9\x6c\x08\xaf\xce\x46\xa6\x7e\x92\xd4\xc0\x1a\x48\x51\x00\x5a\x54\xfb\x52\x75\x09\x87\xa1\x76\x85\x58\xf0\x4e\x21\xc6\x58\x34\xde\xad\xe7\x14\xa7\x09\xa5\x35\xa7\x5a\x91\x95\x54\xc1\x18\xef\xa9\x20\x52\x38\x80\xdc\x96\xd3\x17\x92\x0c\x00\x74\x65\xd6\x16\x5e\xc0\x72\xc4\xba\x57\x14\x23\x43\xd3\xe7\xa6\x43\x89\x79\xea\x5a\x89\xe8\x22\x34\x1c\xdf\x11\x16\x27\x7a\x26\x60\xa5\xe4\x92\xa1\xe5\xe5\x5c\xb9\xc2\xb7\xde\x1a\x85\x5d\xb1\xb8\x1d\x75\x2f\x6a\x47\xdd\xad\x30\xc2\x3c\xc6\xe8\x3a\x52\xa3\x8c\x8a\x6a\x60\x60\xb3\x19\xb7\x13\xfb\x82\xa0\x95\xa8\x71\xe9\x6f\xa0\x60\xc1\x79\xdb\xa5\xcc\x2c\x46\x9b\xc9\xfe\x67\x49\x37\xb5\x3e\xae\x9c\x8a\xd1\x14\xc3\x1c\xec\x37\x42\x70\xe1\xbd\x24\x83\x0a\x2c\x2e\x7d\x18\x16\xb9\x75\xe8\x08\x68\xad\x4d\x56\x1a\x73\x9d\xb4\x73\x69\x14\xf4\x6b\x50\x8b\x55\x3b\x4b\x99\xf1\x32\xed\x1d\xf0\x57\x6c\xf0\x40\x15\x33\x09\x2b\x3d\x9c\xa9\x7f\x50\x39\xbc\x99\x71\x3b\x26\xb9\xcd\xd6\x3e\x97\xb7\x8c\xd1\xab\xc3\x1a\x62\x95\x2a\xd3\xb3\xc2\x9e\x35\x53\x7d\xa1\xb8\xbe\x7a\xf9\x33\x7b\xcd\xbd\x61\x46\x77\x48\xf2\xec\x33\x5d\x5e\xd2\x62\x43\xb5\xca\xb9\x95\x46\x4b\x83\x0d\x9b\x35\x3e\x6f\x0e\x1b\x58\xa7\xbb\xbb\x58\x04\x85\x27\x52\x91\xbd\xa2\x8d\x95\x84\xbd\x27\x8a\x59\x2d\xb5\x46\xcc\x78\x72\x31\x9e\x2b\x58\x91\x21\x33\x4b\xf1\x06\xa8\x7f\x13\xf8\xf2\x0e\x6f\x38\x58\x9d\xea\xf4\x31\xf0\x2a\x8e\x9b\xe9\x2b\x3d\x92\x6a\xc7\xe4\x0a\xeb\xd7\x0d\xd2\xec\x4e\x8b\x3a\x28\x47\x9c\xc3\x73\x50\xfb\x13\x82\x0b\x62\x10\xc2\x38\xb6\x06\xc7\xd0\x7f\xc8\x45\x41\x89\x31\x53\x2a\xec\xed\x53\xa5\xa1\xa3\x91\x48\x2a\x6d\x5e\x3e\x71\x63\x6c\x64\x51\xbf\x4d\xfe\x97\xfd\x6a\x44\x80\xbc\x6f\xc4\xd3\xc0\xd1\xe4\x71\x5b\x47\xdd\xd2\x22\x57\x13\xbe\x07\xfa\xda\xfc\xd8\x97\x28\x24\x81\xe6\xc4\xc5\x4a\xe0\x95\x02\x07\xb5\x0f\xe0\x54\x3a\x66\x2e\xd4\x8b\xf3\xa8\x01\x26\x2d\xfc\x05\xde\xfd\xae\xc6\x6d\xdc\x13\xdc\xfd\x1e\x70\x47\x6c\x2a\xcf\x23\xf6\x2f\xb3\x09\xf8\xf5\x97\xd9\x69\x1a\xd9\x3d\x78\x1d\xc8\x50\xe9\x70\xde\xa6\xa5\x5f\x4f\x2b\x52\x7c\x2a\xd9\x07\x29\x1c\xf4\x21\x91\xb2\x1c\xa2\x8b\x00\xd9\x94\xa3\x94\x58\x72\x46\x1e\xd1\x0d\xf0\x66\x44\x3b\xf2\x56\xfa\xe0\xce\x39\x16\x1b\xc0\x7e\x8e\xa9\x97\x84\x75\xf5\xcd\x74\x51\xe3\x31\xb5\x6a\x03\x4b\x14\x4b\x5b\x9f\x8d\x75\xf5\xce\x86\xad\x8b\xd6\x5b\x10\xeb\x88\x4d\x72\x5f\xab\x98\xf0\xdf\xfc\x1d\x0d\xa6\x2b\xe8\x99\x9a\x34\xba\xf2\x95\xed\x66\x51\x2b\x0b\xe9\xed\x2e\xde\xbd\x5f\x1e\xd2\x98\xe1\x4a\x8a\x07\x63\xeb\x42\x69\x81\xc1\x35\xdb\x75\x9f\x3a\x7e\x9f\xcb\xca\x4a\x75\x3d\x7f\x02\x53\xc1\xd7\xaf\xf9\x49\xaa\xc2\x69\x2a\x48\xba\xe7\x30\x52\x34\xde\x60\x8f\xfe\x83\xa3\xee\xed\x93\x95\x44\x45\xbd\xe3\xca\x5e\x40\x2f\xb5\x6f\xe7\x93\x90\xb4\x39\x55\xc5\xcb\xe9\x36\xb1\x56\xd0\x27\x17\x17\xae\xc7\xae\x6d\x5d\x29\x93\xec\x3c\x31\xe7\x0a\x52\xbd\x2a\xce\x2b\x25\xec\x2a\xa6\x41\xa3\x92\xfc\xaf\x8a\x92\x44\x8b\x2f\x4c\x4e\xb5\x75\x50\xb7\x14\xc5\x9a\xd6\x35\xa4\x2c\xe3\x07\xb0\x7c\x0a\xaa\xf1\xf7\x27\x82\x48\x7e\x06\xc0\x26\x85\x82\x75\x52\xb4\x18\x6e\x3c\xde\xaf\x35\x0f\xec\xad\x76\x4d\x52\xaf\xdf\x26\x97\xf4\x19\xa0\xef\xb4\x5f\x75\x9e\x2a\x8e\x90\x69\xcb\x73\xcc\x35\x68\xc6\xf5\xd2\xe6\xd4\x40\xd1\x6f\xa0\xea\x3a\x65\xd4\x3c\xd8\x0c\x83\x27\x03\xfa\xf8\x00\x1e\xd9\x02\x95\xba\xb8\x57\xc9\xb5\xc0\xb0\xd2\xd6\xd4\xba\x10\x7e\x55\x33\x5f\x15\x60\x23\xa8\x39\x7d\x02\x4d\x8d\x86\x7a\x7d\x85\x95\x29\x84\xcd\x61\x56\xad\xe0\xb4\x63\xd4\x06\x94\xad\xaf\xa4\x27\x7b\x31\x9f\xf6\x55\xe2\x7f\xcf\xdd\x61\x44\xd3\x10\x1e\xba\xa7\x28\x2d\x68\xb2\x31\xd5\x47\x6c\x67\x8f\x2e\x82\x3c\x12\xfb\x91\x2c\xba\x0a\x3d\xa5\x0c\xdc\x98\x4b\x06\x49\x9d\x2e\x5b\x99\x14\xd6\xbf\x6e\x1c\xd6\xc2\x4c\x5d\xea\xd0\x3f\xe6\xaa\x33\xd7\xd5\x39\x14\xe9\x3a\xd0\x7e\xb4\xed\x26\x5b\x54\xc6\xd6\xcd\x20\x8e\xcd\x5f\x52\x9b\x29\x72\xeb\xb8\x70\xf3\x84\xf1\xac\x44\xf6\xba\xac\x2d\xea\x8c\x78\x9b\x2b\xee\x91\x33\x30\x73\x5a\xbe\xc8\x24\xb0\x45\x02\x1e\x85\x44\x19\xf4\x59\xc4\x39\xfd\x54\xe7\x57\x4b\x01\x14\xf6\x7e\x1b\xab\xc5\x3c\x3e\x1e\x6e\x92\xce\x9b\x22\xaa\x99\xea\xa2\x43\x91\xc9\x6b\x96\xfa\x01\xd7\xe9\xeb\x8b\x57\x70\x46\xdd\x26\x4c\x79\x59\xa7\x8c\xfd\xa1\x1e\xd0\x0c\xac\x63\x67\xc2\xb0\x45\x14\x92\x86\xa7\xae\x98\xf4\x68\x9e\x5e\xd2\x53\x3e\x73\x89\x00\x9a\x47\x5e\x6e\x51\x2b\x0e\xdd\xbc\x0b\xff\x21\x2f\xc0\x5a\xbf\x26\x2e\x0c\x16\xb2\x62\x77\xaa\x72\x6f\x43\xab\x4b\xf5\xd2\xe3\xb6\xf6\xc3\x68\x0f\x4b\x0f\xd3\xd6\x6a\xaf\x2d\x8a\xaa\xde\x27\x8a\x7b\x43\xd5\x4b\xbc\x9a\x7a\x51\x47\x74\x78\x9b\x24\xf1\x35\xae\xb6\xef\x66\x08\xda\xe0\xe3\x24\xe1\x42\xf3\x43\xd3\x76\x09\xcb\xa3\x97\x93\xa4\xb2\x01\x5c\xab\xb2\xa2\xff\xa5\x40\xea\x92\xb5\x95\xe8\xed\x5a\x8f\xa6\xce\x3d\xfb\x51\x32\x99\xe0\x39\x46\x0f\x21\xb6\x65\xfd\x72\xd3\x60\x40\xd8\xdc\xd0\x9b\xd2\x64\x76\x54\xa3\xd8\x7f\x08\xe9\x91\xa6\x72\x6c\x23\xff\xf6\xc0\x32\x85\xb5\xb0\x0e\xa4\x04\x7a\xb7\x80\xa1\x6c\xb9\x15\x45\x77\x4c\x8b\x18\x66\x20\xc6\xeb\x5e\xce\x3b\x4e\xe7\x9d\x58\xc8\x1d\x0c\xdc\xd4\x8a\x9a\xcf\x56\xaf\xc7\x1f\xf6\xdc\xe9\xcd\x56\x69\xe3\xab\x9b\xff\xc5\x3b\xbb\x9e\x18\xf9\xd6\x15\xc5\xca\xd1\x3e\x5a\x9e\xfe\x55\x06\x3c\xd4\x59\xab\xee\x9a\x01\x14\x3d\x72\x8f\xba\x97\x36\xcd\xa8\x23\xfd\x8e\x69\xd5\xe0\x1d\x97\x95\xa5\x37\xcc\xde\x4a\xdd\x6d\xe8\x04\x45\x7a\xb0\x89\xd7\x8d\xdd\x14\x39\x6a\x18\x72\xef\xeb\x07\xd8\x9d\x51\xf0\x86\x4d\x1b\xf4\x34\x2b\x76\xc5\xbe\xdb\xb2\xa4\x3c\xee\x7d\xe1\x93\x16\xc1\x07\x33\x12\x1b\x62\xce\xd8\x6f\xf9\x60\x3a\xcb\xa7\x18\xa8\x35\x97\x8d\xa5\xd2\xa2\xd3\x1d\xdd\x1e\x9e\x02\x42\x77\x2a\xc7\xee\x83\x77\xe1\xbd\xd3\xa8\xca\x70\x1b\xbf\x2d\x5a\x24\x18\x6b\x5e\xfb\xc1\x28\x5d\xd3\xb1\x1a\x76\xe2\x37\x99\xa3\x7c\x04\x7b\xa3\x5b\xf7\xb9\x13\x01\xfb\x31\x61\xb9\xb2\x75\x99\xd4\xec\x01\x0d\x53\x27\x87\x7e\xa1\x21\x88\x97\x25\x51\xc1\xe7\x37\x58\xbb\x51\x6a\x06\xb3\xc0\xca\xb6\xc3\x61\xec\xa7\x54\xb2\x3b\x92\xd4\x94\xb6\xe0\x0d\x8c\x06\x02\x44\x87\x2f\xdc\xec\x87\xcf\x5e\x48\xe6\xf1\x63\x7a\x21\x2e\xa4\xdf\x67\xae\x5b\x61\x3a\x00\xf8\xd9\xd7\xf8\xfe\x3b\xfc\x72\x80\x7f\xb9\xa9\x35\xcd\x11\x84\x63\x69\x0a\x1d\x36\xa8\x8d\x90\x0e\x16\x0a\xca\x2a\x83\xf9\x58\x75\xc4\x05\x1b\x2f\x3a\xe1\x63\x42\xad\x17\x43\x1d\x2f\x91\x53\xe4\x36\xfe\x9a\xc1\x9a\xd4\x54\x68\x1f\xc3\xb2\x93\xe2\x50\x95\x01\x6c\x71\xca\x97\xe7\xaf\x75\x26\xc8\x30\xf0\xba\x34\xe9\x63\x04\xe9\x30\x56\xe8\x8f\x3c\x42\x0d\xf4\x5c\x76\xdd\xd8\x52\x91\x32\xae\xdc\x70\x33\x52\xf1\xe0\xe4\xd3\x67\xf4\x8c\xbd\xfe\x17\xaa\xf5\x3c\x9c\x4a\x1f\x44\x46\xbe\xe9\x4a\xfe\x40\x3e\x30\xf8\x3d\x3a\xc4\x28\x13\xc7\x26\xaf\x55\x64\x83\x06\x72\x10\x2f\x16\xc6\x9c\xc6\x37\xe8\x3b\x17\x2b\xea\x04\xf8\x26\xc6\xe4\xdb\xb0\x7a\x3e\x6c\x76\x26\x7b\x93\x13\x00\xc2\xca\x97\x63\x00\xb4\xb8\x81\x27\x49\x46\x69\xa1\x2d\x98\x1a\xed\xe4\x1f\x3d\x6b\x5f\xc0\xf6\x33\xc1\x71\x63\xd1\x21\x15\x6c\xf4\x18\x58\x95\x9b\x83\x85\x49\x1c\xda\x13\x09\x3e\x1f\xab\x19\xd2\x0f\xce\x64\xd9\x2f\x2a\x46\x45\x6f\x1e\xf2\x8f\x47\xc1\xaf\xbf\x3f\x3e\x94\x52\x1b\xf3\xf7\x50\xa0\x24\x08\xcc\xf2\x6d\xc1\x65\xae\x82\xd1\x4d\x2c\xc3\x46\x69\xf1\x84\x90\x72\x99\xf0\x2c\x1a\x05\xb0\x7a\xd3\x7b\xd0\x31\x07\x3b\x53\x85\xbf\xb4\xa4\xfd\xc6\x38\xb9\xb7\xa6\x8f\x36\xae\x8c\x93\x34\x0e\xf2\xf0\x0e\xcc\xd3\xd7\xaf\xda\xf6\x37\xb0\x77\x9c\xac\xb7\x31\xbd\x4b\x44\x61\x07\xce\xce\xc2\xed\x6b\x78\x43\xa7\x3b\x59\x54\xf2\xbd\xa0\x0f\x86\x14\xbf\xff\xd1\xce\x62\xc8\x7f\x97\xaa\x5c\xeb\x7e\x3c\xf0\xd3\x7f\x7a\x05\x8a\x31\xe3\xd1\xe0\x65\x7a\x63\x11\x00\x55\x2a\x21\xbc\x76\x43\xf0\x86\x87\xe5\xa5\xff\x7c\x0c\xb4\xa4\x43\x7e\xd1\x8c\xf0\x1f\x6c\x59\x51\x94\x61\x1a\x61\xcb\x6d\xf8\x9b\xe8\xac\x37\x08\xee\x4d\xfc\x55\x14\xdf\x3e\xfb\x1a\x37\x48\xfc\xeb\xeb\xaf\x9e\xe1\xff\xef\xd7\x2e\xbd\xe9\x56\x7f\x45\xa5\xe9\xb7\xf9\x5d\xf2\x45\x0b\xee\x2a\xac\xaf\x85\xd9\x8c\x3f\x4d\xf3\xe4\xfe\x40\x88\x6c\x32\xee\xba\x88\x6d\x27\xd0\xa6\x6f\x07\x99\xdf\xa9\x24\x4e\xc1\x03\x28\x6e\xac\xb5\xa5\xbb\x9d\x4b\x52\xc4\x9f\xa8\xed\x39\xba\xfa\x2d\xf4\xe4\x62\xb5\x78\x4e\x33\x2f\x0f\x26\xb7\x85\xd1\x65\x75\xeb\xa1\x0b\xcb\x50\xe9\x50\x56\x8c\xb2\xa9\x72\x3b\xf0\xc9\x17\x71\x09\x8a\x67\xbc\x5f\xbd\x06\x7d\x92\xa5\xe3\x24\x1e\x95\x03\x03\xcd\x0b\xd7\x68\xd3\xc9\x14\x55\xfc\xdf\x5a\x73\x5b\xac\x6c\xad\x12\x6a\x4e\x15\x16\x3f\x47\xdd\x86\xb6\xa9\x9b\x3a\xc2\x89\xc7\x43\x50\x7c\x33\xca\x60\xa9\xdc\xce\x14\xdb\xda\x04\x55\xfc\x7c\x01\x75\xdb\xa1\x14\x75\x95\xa2\x22\x38\x77\x26\xac\x8e\x4f\xa6\x1a\xef\x04\x4e\x1c\xcd\xe6\x43\x3b\x64\x42\x35\xf7\xd5\xe5\xd7\x58\x36\xd4\x8c\xad\xeb\x13\x5c\xfe\x56\xbd\x59\xf8\xec\x0b\xb4\xf9\xea\x05\x90\xbe\x78\xd6\x55\x19\xca\xb5\xf0\xb3\x0f\x01\x77\x4c\xa4\x2c\x71\x20\xae\xb5\x28\x4d\x53\x3a\xf4\x36\xb0\x08\x53\x3c\x9a\x25\x61\x5e\x4d\xc1\xc1\x13\xbf\x5c\x81\x40\x2b\xc9\xf6\x82\xed\x04\xb5\x98\xdc\x33\x71\x5f\xbf\xc7\x6c\x23\x56\x37\xb9\x56\x8b\x72\xbc\xec\x64\x59\x7a\xf4\x18\x15\x05\x02\x59\xcc\x69\xb6\x08\xaf\xbd\xa1\x84\x49\xb9\x85\x54\xdb\x5b\x4a\xe4\x4b\x98\x5f\xc5\x65\x1e\x62\x75\x29\x74\x78\xc3\xa2\xc8\x46\x31\xad\x5a\xe3\xc9\xdb\xce\xeb\x26\x75\x96\x2f\x9b\x16\x4e\xde\x2b\x89\x0b\x36\xa2\x71\x72\x5c\x5b\xcc\xd7\x4b\xd9\xb1\x1c\x03\xd6\x4c\x6b\x67\x75\x7b\xb8\xeb\x11\x00\x59\xab\x02\x99\x6e\xac\x4d\x63\x35\xb2\x4e\x3b\x1f\x80\x57\xbf\x65\x30\x2f\x65\x43\xa0\x17\xe9\xa7\x4a\x5a\x35\xfc\x8e\xb2\x56\xb5\x95\x87\x81\x43\xe8\xa1\x4e\x07\xbf\x04\x89\xba\x6c\xb8\x93\xcf\xc4\xe1\x19\x81\x2c\x98\xf9\x25\x31\x9e\x82\x88\xae\x73\xad\x95\x1e\x9c\xe9\xe6\x34\x8c\xc6\x97\x07\xe6\x31\x0e\x20\x93\xee\x93\xa0\xd0\x7e\x82\x61\x8d\xf6\x41\x1f\x15\x13\x2c\x71\xbb\x29\xdb\xd2\x73\xe8\x13\xa5\x68\x07\x55\xf6\x5b\x16\xed\xa9\xe8\x79\xde\x64\x3f\xda\xc6\xd6\x7a\xe7\xe5\x0c\x46\x0d\x39\x99\xb3\xf5\x1d\xb8\x97\x5f\x49\x5b\x9b\x98\x51\x76\x13\xc4\x66\xe2\xda\x59\xe1\xc9\xa2\x5a\x73\x6d\x3d\x2e\x3d\xc6\x2e\x6f\xad\x61\x49\xca\xb4\xb4\x5d\xf6\x31\x97\xd4\xed\x7e\x37\xfe\x68\x7a\xe6\x82\x69\x93\x47\x95\xbc\x53\x9f\x8c\x92\x6c\x59\x97\x2f\x03\x46\xbd\x19\x54\x95\xbc\x0d\xed\x1e\x52\x43\x90\x1b\x6a\x6f\xad\x05\xaa\x59\x5f\xb6\x1e\xe6\xb4\xfa\xee\x68\x8c\xf2\x0d\x41\xe2\x5a\x5d\x3e\x60\xda\x97\x2d\x22\xd2\xda\x4b\xe1\x42\x47\xc3\x24\xa7\x76\x5c\x6b\x6e\x6c\x3c\x59\x91\x9b\x55\x24\x85\xea\xf4\xe3\x2e\xa1\x13\xec\x4c\x69\x00\x9f\x51\x0f\x22\x17\x0b\x49\x05\xd5\x5b\xa8\xa9\x9f\xd7\xa6\x4f\xd7\xf6\x68\x7a\x87\x3d\x38\x39\xf9\x58\x97\x9d\xa8\xac\x36\xee\xe5\x2b\x84\x7e\x20\x12\xeb\xe9\x60\x4b\xfd\x5f\xa2\xca\x71\x53\x83\x62\xd6\x1f\x36\x9d\x5c\x5f\x26\x66\x42\x4a\x4f\xbd\x62\x41\xb6\xd9\xcd\x58\x4f\xde\xd8\x6e\xe2\x51\x30\x33\x4b\xad\x22\x0d\xa9\x53\xd6\xe3\xd0\x9c\x8d\xcd\x69\xd0\x3c\x72\xa3\x0d\x08\xb0\x9b\x4e\xbf\x34\x9f\x6c\xdc\xaa\xd6\x15\xa5\xa3\x1b\x0c\x96\x8d\x88\xc1\xe9\x00\x7f\x92\x76\xe5\xc8\x37\x34\x56\xdf\xd2\x9a\x6c\x9c\xd4\x23\x7d\x97\x91\xc3\x83\x54\x6b\xbc\xe0\x6f\x8d\x4a\x9b\x2d\x8f\xfa\x89\x43\xd3\xe9\xcb\xc8\xb9\xfa\xe9\x9f\x91\xe5\x62\x0f\x85\x78\xf8\x11\xa7\x74\xa0\x3d\x2b\x63\xee\x58\xe8\x54\x0e\x73\xbc\xf3\x5c\x5d\xc7\x05\x06\x17\xe9\x4c\x67\x9a\xf8\x6d\x94\xc4\x7d\x27\x19\x20\xce\x15\x78\xcf\xe2\x36\xfb\xa0\xea\xbf\xa3\x09\x80\x05\x3b\xf8\x7a\x81\x3e\xcf\x43\x18\xc3\x38\xc1\xac\x48\x5b\x23\x16\x36\x4b\xd7\x6d\xc4\xbd\xc1\xfd\x77\x55\xfa\x2b\x4c\x90\x86\x9d\x74\x59\xa2\xbd\x8d\xc6\x2f\xb3\xa2\x74\x32\x68\x3d\xaa\x09\x9d\x7c\xee\x38\x4e\xe1\xc0\x99\x82\x4e\xd6\xe4\x51\x43\xc1\x9d\x5a\x3c\xb5\xb3\x18\xcf\x29\xaf\x36\x6f\xde\xf1\xc7\x23\xb9\x5e\x8a\xff\x03\xcf\x11\x03\xb8\xa6\xa1\xc6\x73\xf3\xc4\x26\xbc\xd2\x50\xb8\x24\xf1\xcc\xab\xa1\x7b\x3a\x7a\x5c\x24\xcc\xe6\x7e\x4a\x41\x9d\xaf\x0e\x9d\xef\x9f\x99\xbf\xe9\x1e\xc5\x2d\x5e\xb8\x76\x2f\xd9\xe2\xff\x0a\xba\x69\xdb\x04\x0b\x6c\xea\xe4\x6c\xff\x1a\x14\x89\xbd\xa2\xf8\x1c\x58\x5d\xd8\xcb\xba\xda\xe1\x6c\x00\xfe\x3b\x8a\x8a\x80\x1f\x1d\xe9\x4e\x79\x54\xef\x49\x43\xdb\x0c\x68\x36\x1e\x57\x6a\x0e\x30\x90\x6a\xea\x78\x07\xbf\xd7\x89\x7e\x19\x7e\x50\x5e\xcc\x9e\x25\x55\x2f\x15\xd4\x6b\x59\xaa\x3d\xd5\x98\xda\xa7\xe1\xbd\x2a\x69\xd0\xe6\xba\xf3\x72\x14\xd4\x76\x4a\x29\xc3\x5f\xde\x28\xe7\xee\x37\xdd\x65\xd1\xe7\x53\x26\xcc\x48\x67\x93\xb5\xdd\x59\xbf\x86\x23\x38\x71\x70\xdb\x53\x4d\x9e\x0f\x30\x14\xba\xaf\xd5\xbc\x99\xcb\x36\x57\x6b\xf0\x73\x6d\xf5\xd0\x63\xa7\xc9\xda\xbd\x7b\x8d\xd3\xed\x8f\x77\x55\xab\xae\xa6\x67\x31\xed\xdf\x4c\x07\x5d\x4b\x58\x19\xa1\x72\x94\x9d\x67\x1f\xef\x07\x42\x1d\x6e\xf3\xe2\x56\xb1\x32\xc7\xd0\xa6\xec\x95\x2e\x4e\x82\x2f\xd6\xa1\xb6\xd5\xaf\x9a\x5c\xc2\x6d\x31\x7b\x93\xac\xa2\x5d\xe6\xb2\xb2\x99\xf7\x93\xa8\x60\x60\x47\x0e\xbd\xcb\xce\x2e\x50\x0c\x70\x3d\xc8\xbb\x2e\x11\x61\x37\x3c\x4e\xad\x45\xd2\x25\x19\x35\xbe\xfb\x65\x08\x7a\x49\x01\x0d\x27\xb5\xa5\x9a\xab\x24\xb4\xeb\x05\xd9\xcd\xf9\xf2\x1b\xd6\xb1\x21\xe7\xee\x23\x9e\x18\xf1\x0d\x4f\x63\x60\xb5\x7a\x71\x13\xd8\xea\x30\x9b\x01\x99\xa6\xff\xa6\x48\x07\x8c\x99\xcd\xaa\xbd\x31\xb1\x19\xee\x40\x5e\x3b\x6a\x3a\x8c\xc3\x73\x6e\x47\xbc\xc7\xa9\x44\xf0\x82\x67\xcf\x2e\xcf\x5f\x9e\x1f\xc1\x5e\x35\xd2\xd1\xc6\x3b\xf0\x49\x43\x49\xb7\xc1\x14\x15\x94\x37\x1e\x25\x2e\xe8\xc8\xbf\xe6\x0e\x3e\x0b\x6c\x51\x07\xfa\x45\xfa\xf7\x1f\xf9\xf5\x7a\x1a\x4e\x31\xd0\x1f\x65\xbc\xa8\xd9\x5f\xe8\x19\x51\xe8\x75\x80\xb7\x5d\x8c\x00\x69\x04\x88\x36\x7a\xea\x36\xef\xbe\xd6\x55\xa3\x0f\xa8\x0c\x2f\xd7\xe2\x25\xb8\x54\x27\xf6\xdc\x97\x84\x8a\xc7\xad\x8e\x59\x19\x2b\x6a\x1f\xeb\x4a\x39\x6f\x5d\xdd\x07\x83\x0a\xe8\xfb\xed\xb3\xe8\xb2\x04\xdc\xb2\x7b\x60\x00\x77\x6c\x39\x33\x74\x2f\xa7\xfc\x98\xab\xfd\xc6\x23\x90\x2f\xee\x11\xe5\x94\x0f\xd6\x57\x5a\x53\xd3\xb6\x9c\x7b\x43\x4e\xf0\x2a\x3e\x06\xa2\xe9\x13\xee\x1a\x0e\x53\x80\x71\xa7\x03\xf5\x5c\x15\x11\x2b\x43\x1f\x72\x50\xdc\xf9\xe9\x20\x89\x3f\x98\x60\x3f\xdb\x84\x61\x90\xa8\xf4\x1a\xfe\x30\x4a\x63\x00\x36\xdc\x0d\x06\xcc\xac\x36\x7d\x5a\x38\x2a\x40\xb4\x08\x45\xb5\x05\x0c\xa2\x25\xa8\x0b\xc6\x26\x8d\x14\xb8\x1b\x64\x5c\xff\x19\xc1\xe6\x09\x0e\xbe\x3c\x0c\xce\x89\xb0\x06\x52\x77\x80\xdb\x38\x44\xda\xc7\xb9\x68\x91\x7a\xb4\xbb\x2e\x3a\xa6\x46\x95\xa3\x8d\x4d\xdd\x65\x8c\x42\x38\x44\xea\xf4\x71\x7c\x63\x52\xeb\x56\xd7\xe5\x53\xb7\x6d\x27\xd1\x78\x8d\x0b\x6d\x47\x63\x99\x58\xb8\x8e\x82\xcb\x9f\x7e\x1e\xda\x07\xf6\xa0\x9e\x68\x74\x96\x4a\x06\x82\xae\x6e\x40\xf1\xc7\xf3\xf1\xa9\x76\x12\x2e\xf5\x26\x69\x86\x68\x8b\x03\x7e\x96\xa5\x4f\x46\x96\x9a\x05\x09\x2d\xa5\xf9\x82\x64\x0b\x87\x3a\x52\xe4\x14\x0e\x99\x2b\x47\xaf\x55\x7e\xad\xac\xcd\x40\x2c\x02\x1b\xe2\x2e\xab\x9e\x14\x02\x49\xae\x39\x22\x4a\xde\x22\x99\x01\x54\xac\xd6\x47\xab\x42\x28\x29\x2d\x6a\x8f\x92\x2d\x8d\x72\x70\xa4\xe3\x5b\x65\x8e\xe8\x9d\xe3\x33\xdc\x72\x6c\x0d\x7c\x97\xe3\x62\x87\x60\xfa\x48\xee\x8c\xc5\xc5\xf2\x68\x28\x09\xce\x9a\xea\x94\x38\x18\x17\x5f\x21\x6f\x35\x4b\xea\x36\x8a\x9f\xcd\xf1\xa5\x03\xad\x9b\x3d\x62\x01\x72\x20\xc5\x8c\x11\xa2\x60\x5c\x0b\xe1\xf0\x10\x6f\xb0\x40\x7d\x15\x13\x67\xd8\xee\xb1\x44\x48\x08\xbb\x81\x2e\x5a\xc9\xb7\x30\x19\x56\xa7\xa2\xb1\xcc\xd7\x6d\x35\x6f\x98\xdd\x91\x52\x53\x2c\x06\x01\xa6\x98\xd4\x82\x60\x8c\xae\xf0\xee\xa5\xc2\x6c\xa6\xd1\x2c\x2f\x90\xeb\x83\xf0\x43\x78\xc8\xef\x8f\xb2\xe9\x7d\xcd\x44\x15\xc1\xf1\xad\x6e\x26\x04\x95\xf5\x9a\x23\x42\x3b\xc6\x5a\xa4\x83\x31\x1c\x86\xc1\x52\x9c\xae\x85\x20\xe4\x94\xa6\x00\xca\xbb\x47\xec\x78\x0f\x49\xb2\x15\x92\xfb\x56\xa7\x27\x62\x1b\xb7\xfa\x9d\xcd\x34\xa8\x5c\x06\xa1\xf1\xb0\xc6\xe0\x60\x44\x55\x2e\xfd\xe3\xbc\x2a\x6c\xdf\x52\x76\x9d\x73\xb4\x56\x78\xf7\x35\x78\xff\x2a\xc2\x32\x2e\x38\xf7\x89\x1b\x9f\x9a\x70\x11\x8b\x85\xdc\x43\x96\x6f\xe4\x96\x6f\x48\x81\x17\xeb\x71\x57\x3d\x1f\x7a\xf7\xd2\x44\xd5\x6d\xff\x6d\xf4\x08\x66\xd7\x37\x55\x56\xe3\x9c\x15\x2d\x9f\xe9\xfb\xd9\x7c\xa1\x1b\xf6\x09\x18\xf7\x1a\x6d\xc4\x92\x21\x1b\xfb\x45\xbc\xab\x4e\x93\xa8\x22\xfc\x6e\xa8\x2b\x71\x04\x1c\xd3\xb1\x1f\xe9\x97\x50\xdb\x1f\xfa\x00\x88\xe3\x97\xeb\x7a\xcf\x3a\x79\x85\x4f\xb3\x03\x4e\x9f\xd2\xdb\x90\x93\x9a\x72\x07\x83\x81\x1f\xd1\x5c\xec\x3a\x4e\x61\x8f\x2a\x71\xed\xee\xf1\x9f\x7b\x94\x50\xc6\x45\x5d\xb0\x5c\x59\x56\x3a\xc9\xf5\xa5\x4e\x3c\x73\x82\x05\xe2\x79\x3b\xc9\x9b\x85\xbe\x06\x3f\xa6\xb0\x8f\x61\xf5\xd8\x64\xdf\xed\xe9\x8d\x6d\xcf\x0c\x80\xaa\xe3\xb0\x0a\x87\xd1\x27\x9b\x9a\x95\x10\xad\x88\x74\xae\xa6\x68\xe6\x85\xbc\xd3\xa2\x61\x47\x13\x1f\x99\x74\xd2\xf3\xb1\xec\xc2\x97\xc3\xa0\xc9\xbe\xa3\x4d\xd8\x2c\x6a\x46\xc7\x4b\xef\xb9\xc4\xb3\xa6\xea\xda\xb8\x30\xfd\xe0\xd1\x65\x35\xa9\x17\x7c\xf4\x8d\x56\x17\x66\x4a\x6a\x7c\x6d\xd0\x83\xba\xbc\x13\x14\xc1\x00\x3e\x3d\xf8\x12\x37\x3e\xe4\xda\x38\x9b\xa5\x51\x5b\xf5\x00\x9b\x14\x21\x59\x1c\x4d\xfd\xe8\xfd\xc5\x63\x4e\x78\x64\xc5\xd8\x78\x3a\x7f\x59\x5b\x41\x60\xca\x9d\x11\x5c\x5a\x9e\x4d\x51\x32\x46\xa1\xb4\x23\x70\xa9\x20\x5e\x0f\x34\x16\x81\xa6\x6f\xd8\x83\x20\xfc\x59\x1b\xb7\x24\xdf\x66\xe9\xe2\x71\x2d\xef\xec\x30\xa2\xcf\xc6\x38\x95\x44\xa1\xaf\x07\x3a\x69\x63\x18\x78\x3c\xd5\xf0\xbd\x30\x7c\xb3\x11\xd2\x2a\x73\xea\xe7\xc3\x8c\x88\x5d\xb5\x9a\x35\xed\x19\xa3\xba\xd0\x3a\xea\x05\xbc\xd5\xa2\x47\x92\x55\x16\x37\x0e\x23\xc8\x14\x5c\xd1\xd0\x29\x47\xea\xc5\x49\xbb\x7c\xf8\xd4\xad\x47\x35\x99\xa2\xad\xae\x7d\x5b\x2c\xb8\xae\xc8\x02\xa7\x18\xad\xdd\xb8\xda\xc4\x06\xb1\x70\xb7\x66\xd7\xf0\xd5\x87\xd9\x76\xea\xb8\x7c\x2a\x53\x56\xb1\x39\xc5\x1f\x99\x1c\x7d\x70\xb2\xd4\x8f\xc7\x3e\xe1\xb5\x5d\x58\xc8\xb5\xcc\x42\xae\x65\x9a\xe4\x88\x2e\xab\xa5\x37\x4f\x6a\x07\x16\x1a\x0f\x7d\x9e\xb5\x10\x12\xf6\xbe\x47\x5c\x16\xbe\x0c\x89\xfc\xcd\xa1\xbe\x59\xb2\xa8\xe7\xe9\x5e\x48\x15\xae\x37\xec\x55\x69\xc9\x5f\x41\x62\x42\x3f\x6b\x7b\xa0\x53\x3b\xf9\x8e\xda\xde\xaf\xbf\xef\x21\xad\xf6\xd0\x0a\x63\x52\xee\xad\x51\x76\xfc\xc9\xab\x48\xbe\xc5\x67\xcb\x08\x51\xeb\x12\x96\xad\x72\x65\x71\xf1\x87\xd1\xf0\xfe\x40\xbf\x2e\xb5\x86\x29\xc6\x95\xa2\x21\x16\x17\xce\x5e\xf0\xe3\xeb\x57\x36\xf7\x19\xb5\x3f\x2b\x10\xf7\xe7\x36\x6e\xd0\x60\x12\x3c\xa3\xbf\xfb\xf0\xa3\x3e\x6b\x15\x47\x78\xf6\x32\x1b\x0d\x52\xb2\x05\xdf\xc0\xff\x77\xc5\xc5\x4e\x32\x36\x3e\xb4\xce\x73\x03\x0d\xec\x7e\x84\x64\x01\xb8\xd6\xa8\xa7\x1c\x9b\x4b\x20\xbb\x49\xf8\xbc\x43\xf2\x50\x29\xd8\x95\xe0\x34\x1c\xd7\xd5\xeb\x24\xfc\xa0\x6a\x0a\x56\x52\x42\x6a\x41\x65\x2c\x93\x4a\x59\x04\x68\x65\xa0\x31\xa7\xe9\xd2\x50\x79\x19\x97\x85\x49\x8b\xa0\x77\xdb\x40\xb7\x06\xea\xb1\x36\x50\x4b\x3d\x53\xcf\x28\xc4\x9a\xec\x53\x31\xab\xc9\x4a\x9d\x67\xa1\x12\xe6\x06\x72\x33\x12\x46\xa0\xb4\x99\x9a\xde\x6b\x03\xf5\x07\x96\x5b\x77\xce\x21\x1b\xad\x74\xe2\x54\x68\x80\xc4\x6c\x1d\xf0\x2a\xda\x6f\x5c\xfd\x93\x70\xca\x7d\xf6\x3d\x33\xcd\x09\x97\x2c\x62\xaa\xbd\x07\x6e\xbf\x6f\x48\xff\xd9\x24\xab\xcf\x73\x51\x25\x96\xe5\x30\x9c\xa3\x5e\x1e\x86\xf9\xc4\xaa\xe7\xf3\xf9\x0e\xb0\x62\x3a\xa8\x67\xd0\x59\x72\xe8\xa8\xe0\xe1\x7c\xb1\xa8\x24\x9a\xf0\xf2\x0e\x8e\x6d\x59\x67\xf1\x0c\x45\x31\x8d\x81\x24\xe0\x39\x53\x28\x48\x3e\xe1\x3e\x21\xe4\xcf\xf3\xc7\x6b\x96\xb3\x81\xc7\x2f\xf1\xc6\x1d\x49\xb3\x7b\xac\x88\xd8\x79\xfe\x77\xe9\x00\xe1\xe4\x0e\x2c\x18\x84\x93\x8e\x8f\x6d\xc1\x98\x4e\x2d\xc8\xaf\x5c\xfa\x2f\x9b\x50\xc4\xb0\xe6\x7e\x6b\x46\x47\x51\xfd\xc0\x5a\x9e\x5d\xba\xf2\xe0\x8e\x56\x01\x6c\x18\xcc\xc0\x33\x87\x7d\xb6\x6a\x92\xd0\xcb\x68\x8b\xd3\x6b\xb2\x5c\x79\x44\xfa\x47\x9b\x53\x84\x37\xac\xc8\x66\x6d\xb6\xc0\xd2\x2c\x9b\x0e\xda\xa8\x6b\x1a\x23\xc9\xf1\xa6\xb9\xd3\xa0\x73\x7a\x74\x3a\x5a\x19\x4f\x54\x75\xdc\xbb\x41\x87\x37\xa0\x0f\x16\xef\x54\x92\x1c\x60\x61\x45\xc5\xd5\x5e\xdc\x93\xc6\xdc\xc9\x94\xb7\x22\x5a\xbb\xf2\xd0\xc6\x44\xbc\x45\xce\x91\x18\x67\x5c\x5c\xe5\x78\x3d\xaa\x72\xc8\x8a\x3f\x51\x85\x14\xfc\x68\x5e\x08\xe6\x2d\xdf\xaf\x0a\x6d\x99\x70\x5c\x81\xcd\xbb\x7a\x35\xca\x47\x89\xaf\x1e\xd6\xf8\x95\x05\x8e\x0e\x8c\xf3\xea\xdd\x64\xfa\x09\x5e\x94\xfb\xeb\x06\x3c\xb6\x15\x66\xdc\x88\xa7\xce\x3c\xca\xd1\x62\x17\x4f\x37\xda\xb0\xb7\x6e\xc8\x61\x4c\x35\xad\xe9\x14\x76\x6c\x70\x6a\xa3\x29\x3c\x5d\xcb\xb8\x8c\x16\xfc\x34\x19\xc0\x03\x07\xa3\xb6\x16\x11\x7e\x4b\x6d\xca\xc7\xc1\x00\x96\x23\x0c\x3f\xfd\x74\x92\x80\x2b\xf3\xf3\xcf\x12\x0f\xeb\x16\x0e\xdf\x12\xc5\x78\x69\x9f\x71\x2b\xe0\xdf\x4f\x55\x9f\xf6\x16\x17\x59\x5e\x3a\x81\x96\xca\x55\x5c\xaa\xca\x4b\x09\x9e\x43\x27\xd5\x7d\x36\x4d\xe4\x66\x3b\x67\xc4\x45\xb5\x5b\x7e\x54\x8c\xfc\x2e\xcb\xa5\xff\xa5\xe9\x6f\xeb\x8f\x8d\x36\xb5\x74\x53\xb0\xa5\xf3\x7b\x9b\x50\x95\xe1\x7c\xf4\x67\x69\xfc\xaf\x99\xd2\xd6\x83\x7b\x33\xd8\xfc\xdd\x7f\xed\x78\xa4\x41\xdb\xb7\xf5\x8a\x14\xae\x20\xba\xa3\xd7\xbe\x68\xaa\x09\x28\x95\x84\x6b\xaa\x43\xa1\xbb\xd8\xe9\x77\xbc\x7b\x8f\x34\xfe\x38\x0f\xaf\x39\x9f\xd8\xbf\xf8\x58\x99\xe4\x83\x52\x53\x16\x95\x62\xee\x75\x38\xbe\xdb\xa6\xa4\xb4\x45\xe1\x9c\xc9\x98\x59\x19\xab\xfa\xea\xc7\x87\xde\xf2\x77\x6f\xdd\xe3\x43\xe7\x4e\x88\x01\xc8\x0b\x99\xb5\x58\xe3\x9f\x39\xb2\x09\x8e\xd8\xb2\x0a\x73\xd8\xe1\xb7\x05\xd1\x57\x1e\x53\x4c\x3e\x1e\x29\x5d\xf9\xb9\xb1\x98\x73\xbd\x49\xd0\x3b\x9d\xa8\x1a\xba\x15\x4d\x2b\xb5\xd9\xbd\x52\x9f\xb6\xa1\x04\xb7\x74\x60\xef\x17\x5f\x39\xed\xaa\xbd\x21\x83\x57\xed\xe7\x2b\x25\x99\xaf\xd5\xee\xf9\x30\xde\x89\x4c\xe4\x54\x46\x55\xb5\x5c\x24\x9d\xdd\x04\xfb\xda\xf7\x65\x39\x7d\xc7\x50\x1e\x55\xfe\x3d\xa4\x01\xcf\x75\xd5\xcf\xa6\x6e\x84\x0d\xd7\xa0\x96\x26\x8d\x9c\xd7\xa7\x9c\x94\x54\x23\x54\xb0\x6e\x4a\x9d\x52\xee\x53\x1f\x32\x55\xcb\xd5\x0c\xe7\x56\x86\x1d\x72\xfa\x56\x4a\x73\xf4\x24\xdd\x31\xdd\x93\xe8\x28\xe8\x20\x19\xc4\xa1\x4f\x40\x53\x1e\x69\xe3\x04\xbb\xc0\x73\xc0\xe5\xe9\x75\xde\x51\x3e\x76\x3d\x72\x65\xbd\x0e\x8f\x40\xba\x9b\xc6\xc6\xe9\x83\x39\xda\x0e\x81\xd6\x84\x15\x7a\xf4\xfe\x8a\xa1\x04\x51\xbd\x6c\xa2\x6d\x20\x06\xbe\xcb\x22\x78\xcd\x15\x65\x44\x0c\x53\x4e\x6a\xc2\x6c\x7b\x58\x48\xd6\x3e\x15\x8c\xd8\x02\x8a\x3c\xdb\xfa\xb5\x66\x2f\x61\xaf\xd2\xaf\xbd\xe0\x1a\xda\xfa\xf6\x96\x92\x09\x3d\xd0\x06\x6a\x1c\xdc\x7e\xf7\x80\x76\xa2\x16\x9b\xd9\x1c\x7a\x15\x63\x33\x5a\xa0\x26\x4e\x3e\xc7\xb1\xfe\x48\x63\x45\x33\xfe\xe7\x6f\x9a\xd3\x4e\xc3\xa7\x01\xf7\xa0\x28\xd4\x25\xe5\x07\x77\x15\x8c\xec\x96\x8f\x1e\xec\x3f\xa5\x4a\xac\xb6\xc4\x0b\x35\x44\x30\x71\x90\xd0\x31\x22\xf1\x08\x96\x5a\x21\x52\x25\x2a\x1f\x49\x53\x78\x72\xb0\xef\x37\x0a\x5b\x68\x26\xc7\x40\xa5\x84\x25\x92\x40\x2e\x6c\xde\x32\x9d\x74\x34\x3b\xea\x6a\x62\xd6\x18\x40\x89\x24\xe1\xc2\x9e\x28\x8f\xd0\x23\x1c\xa8\x82\x5a\x92\x50\xb4\x50\xc2\x78\x02\x6e\x45\xd0\xdb\x2c\x67\x1a\x86\xae\xaa\x9d\x77\xb4\x09\xa0\xb7\x94\x4e\x27\xf7\x7a\xb4\xd0\x23\x5b\xff\xc3\x34\xec\x6a\x59\x68\xa2\x56\xa2\x88\x3c\xda\x81\x99\xbe\xe1\x4a\xd5\xd6\x68\x60\x16\xcd\x71\x35\x37\x21\x9e\xd3\x3e\x81\x91\x67\xe6\x37\xd0\xc6\x94\x15\xb2\xef\x0d\x8a\x7d\xac\xbf\x40\x99\x4f\x6e\x28\x76\x9a\x71\xd7\x36\x8d\x81\x49\xd7\x4e\x0d\x42\x3a\xd9\xa4\x79\x54\x92\x48\x9d\xa8\xd9\x3f\x7c\xaa\xa3\x67\xf5\xf9\x5a\x38\x26\x49\x14\x04\xb5\x4d\x85\xad\xf3\x11\x97\xf2\xfc\x5b\x72\x11\xa3\xa4\x6f\x09\x56\x0b\x37\xe9\xdb\x9b\xe0\x8a\xf0\x51\x9a\x0b\x32\x55\xe5\xd0\xa5\x06\xb1\x3a\x4f\xcc\x31\x4b\x4c\x48\xb5\xd5\xe8\x6a\x68\x7c\x03\x43\x99\xfa\x71\x7d\xae\xf2\x7d\x27\x91\x19\xd3\x21\x8e\x6f\x48\x8b\xbc\xeb\xbb\xfa\x6c\x5c\x35\xb0\xad\xbf\x1c\x9a\x41\xdf\x34\xdd\x2c\xb1\x53\x72\xb4\xa8\x82\x18\x3c\x1d\x78\x03\x34\x44\xb4\x2a\x88\x61\x3f\x06\x57\xba\x9d\xea\x41\x1a\xab\x8d\x21\xd0\x5a\xe2\xe3\xd8\xcd\x65\x29\x0d\x20\xe6\xe3\xbe\x68\x0f\xfd\xa6\x8f\xbf\x99\xe4\x90\x16\xf5\xf2\xc8\x88\x41\x99\x6b\x8d\xfa\xa8\xf4\xd3\x7d\xc0\xb9\x29\xc5\x00\x6c\x58\xcf\xab\xea\x1a\x2c\x60\x69\x41\x95\x02\x1e\xae\xa2\xe9\xcd\x8d\x66\xbd\x81\x2f\x37\xa8\x8c\x07\xe4\x56\x5b\xe5\xac\x03\xaf\x91\x48\x43\x79\x14\x1f\xf9\xa6\x3a\x58\xf8\x56\x7b\x50\xd9\x96\xac\x30\x27\x72\x55\xd8\x29\x89\x1a\x14\x6d\x7c\x9d\x4a\x6b\xb3\x6b\x60\x6d\xca\xda\x77\xee\x06\x7f\x69\x76\x6b\x12\xc4\xc6\x64\x31\x53\xb3\xa2\x7d\x7b\x6e\x4d\x04\xd0\x7a\x92\x0c\x6e\xef\x28\x6c\x49\xf5\x28\xc0\x94\x93\xa4\xc3\x4c\xbb\x68\x9b\x95\xec\x81\x95\xf4\x31\xf5\x0f\x67\x63\xb2\xa9\x0a\x1e\xad\x93\xc2\x3d\xf8\xeb\x67\xfc\x10\x42\x76\xec\xf9\x96\xcf\x06\x51\xec\x56\x33\xee\x84\x46\xdb\xac\xae\x50\x68\xd8\x06\x5d\x62\xda\x41\x4f\xa6\x9c\x77\xed\x0c\x25\x01\x1e\x74\x74\x34\x74\x63\xd3\x67\x76\x26\x9d\x04\x61\x70\xaa\xb3\xe7\x9e\x8f\x9b\x7b\xb0\xbe\xa1\x21\x58\xad\xdf\x50\x22\xee\x36\x2b\x3b\x01\xaf\xdb\x44\xfa\xcc\xfb\xdd\xe4\xfd\x7c\xab\xd1\x5e\xb3\x5a\xa3\xcd\xa8\xc7\x6c\x34\x32\xcc\x84\x4d\x16\x23\x3e\x1c\xb8\x9f\xcf\xa9\xe2\x55\xdd\x72\x9d\x0b\x12\xcb\x6d\xb9\xbd\x41\x5f\xd4\x56\x34\x89\x2b\xfd\xf0\x6d\xb6\x14\x7f\xb3\xc7\x24\x3d\x6d\x90\x75\x11\x24\xae\xda\x20\x1a\xe8\xb9\x26\x88\x8b\x62\xdc\x6a\x82\x3c\x56\x9e\x2e\x62\xf2\xae\xae\x88\x0c\x30\x4d\xca\xa8\x45\x31\x28\x4c\x97\xba\xcb\xf2\xa8\x87\x92\xe8\x2d\x7c\xad\x7b\x85\x5c\xff\xbe\xff\x87\x4d\xff\x9d\x1f\x1f\xd3\x85\x77\x3c\x17\x15\x03\xa5\xab\xef\x17\xbe\x43\x73\x9c\xfa\x3e\x0c\xe7\x08\x3c\x47\x42\xc2\x90\xba\xef\x2c\x75\x07\x8e\x4d\x2f\x87\xb0\x16\x41\xd1\x1d\x02\xac\xe1\xec\x13\x4e\x2a\xab\x76\x79\xb7\x73\x6b\x10\x71\x89\x5d\xb6\x7d\x87\x4e\x05\x1d\x0e\x6a\xd1\x05\x19\x3c\x48\xd0\x41\xae\x35\x91\x6b\x99\xc8\x9a\x24\x5a\xd8\xd0\xf6\x52\xd1\x35\x1e\xa5\x62\xc1\x37\x45\x3a\x1e\x17\xc1\xd6\x19\x86\x33\x19\x2b\xab\x2b\x0a\x1e\x7c\x9e\xeb\xeb\xd2\x7c\xad\x21\x32\xa7\x92\x56\xc5\x7a\xd8\x90\x66\x6e\x2f\x89\xf5\xb6\xc3\x62\xe8\x8a\xf0\x51\x29\x27\xc2\xc2\x65\xe2\xb2\xd2\x33\x0c\x22\x35\x55\xdc\xf1\x1a\x6f\x67\x73\x73\x76\xb3\x58\x9e\x62\x1b\x19\x4c\x10\x1c\x29\x5d\x18\xd4\x98\x60\x34\xea\x5d\x4c\x35\xe2\x2b\xb7\x88\x7b\x2d\x5e\x57\xce\x06\x56\xfc\xae\xee\x59\x22\x39\x0e\x8d\xd7\x39\xb2\xeb\xeb\x44\x2a\x42\x36\x61\xa6\x51\x6a\xd8\x04\x8b\x3b\x84\xce\xa6\x8c\x0c\x30\x7b\x8a\x8a\x64\x95\xf9\xac\xbc\xb9\x7f\x86\x77\xdd\x60\x23\x30\xdb\x61\xd4\x78\x21\x82\x21\x75\x8a\xcc\x50\x58\xda\x30\xa2\x72\xca\xc7\xf0\xb6\xb8\xfc\x43\x86\xc9\x4b\x1c\x69\x0f\xd1\xef\x22\xb3\x35\xcd\xaf\xdc\xab\x98\x9b\xa0\xed\xa7\x4e\xc8\xaa\x05\xe7\x55\xbb\xab\x2b\x69\xbd\x4c\x04\xf2\xb6\xbd\xae\x63\xf1\x2c\xa7\xde\x87\x4d\xba\xdd\xb9\xcc\x2b\xb8\x36\xe8\xfa\xad\x4b\x4c\xcf\xad\x44\xd6\xa8\x95\x2c\xbb\xb5\x74\x2d\xdf\x36\x9f\x55\x9b\xb2\x9e\x08\x2c\x1f\xc1\xc3\x7b\xe5\x1d\x4e\xa5\x27\x6c\xab\x9b\x11\xda\x35\xb4\x01\x3b\x2e\xa6\x95\x7b\x07\xb6\x3a\x21\x75\x94\xe5\x7c\x7a\x1d\x49\xda\x60\x1d\x9a\xca\xbc\x4e\xe8\x8f\x4f\x91\x54\xf4\x4c\x6e\x5a\xd5\xd1\xf6\x3d\x4b\xfe\x4f\x57\x79\xd3\x0d\xd0\xe3\x11\x9d\x24\xcc\x33\xa2\x90\x62\xcd\x12\xef\xd1\xb1\xc5\x70\x9a\x1b\x81\x29\xca\xfb\xa4\xd1\xc7\x5d\x77\x1c\xe6\xd8\x6b\x11\xe0\xe3\x38\x82\x55\xdd\x62\x43\xf5\x3c\xa6\xab\x74\x2b\x58\x83\x39\x78\x5c\x6b\x69\x50\xbb\xb0\xb4\x44\xc0\xa5\x0d\xd3\x55\x4f\xe6\x1e\x14\xff\x5d\x58\x46\x73\x09\xdf\x77\x75\x3d\x28\x6b\x96\x0f\x83\x39\xf8\x37\x47\xc1\xe6\xed\x7b\x98\xdb\x44\x49\x53\x37\x2a\xbe\xbe\x29\x57\xd2\x13\x72\x2a\x40\x03\xb9\xb7\x91\x5a\x14\x3f\x52\x50\x66\x45\xed\x4f\xa5\xa7\xfa\xe5\xac\x89\x84\xd2\x45\x59\x75\xdd\x74\x53\xca\x16\x88\x9c\xc6\x1f\x55\x22\x8e\xbc\xfd\x40\x27\x19\x9b\xf6\x8d\xb3\x34\x66\xdc\x54\x58\x60\x69\xe0\x70\x8a\x26\x24\x96\xaf\x74\x12\xad\xf6\x1b\x31\x15\x91\x92\x58\x6a\xdf\x53\x8e\xe5\xb1\xef\xde\xe5\x64\xcc\xf5\x45\x0f\x65\xc0\xcd\xe6\xdc\x08\x29\x9b\x77\x44\x7e\xe8\xdd\x80\x6d\x23\xf6\x36\xc4\x7d\x18\xd8\xa6\x49\x53\x2c\xc9\x04\xff\xc5\x26\xae\xe8\xbe\x5e\x65\x79\xa4\xf2\x6a\x61\x8f\x54\xe5\xdf\xd7\x56\x45\x83\x60\x68\x2e\x61\xd1\x49\x2d\x1b\xa9\x3d\x12\x5f\x17\x58\x6b\x5f\x4d\xd8\xcb\xeb\x7a\x3d\x6b\xca\x25\x96\xcf\xf7\xe6\x95\xd5\x9b\xe1\x77\x71\x54\xde\x6c\x8f\xdf\x3f\xe0\x74\x0b\xb0\x9b\xc1\xfb\x43\x72\x9b\x49\x45\x04\x58\x95\xd7\x80\x78\x9c\xd2\x3d\xbe\x25\x3c\xb9\x21\x15\x8b\xa7\x92\x0b\xa2\xbd\x9a\x8b\x46\x64\xe3\x31\x8c\x60\x53\x5b\x4f\xec\xb4\xf5\xe8\x46\x53\x19\x37\xc7\x8e\xe4\x9a\x6b\x53\x52\xb8\x89\x1a\x97\xba\x6a\x10\x15\x8d\x64\x7a\x17\xee\x5d\x2a\xe2\x8f\xba\xf3\xbe\xf1\xf0\xae\x74\x02\x6a\x8d\xd8\x3b\x9f\x3c\x1a\x18\x3d\xf2\x3a\x1f\x34\x10\xba\x23\x9e\xf4\x58\xb0\x99\x17\x30\xca\x74\x69\x01\x12\x61\x67\xc0\x8e\xad\xbb\x79\xc7\x76\x4a\x84\x4a\x92\x4e\xa5\x76\x82\xde\xce\x9b\x16\x8a\x7c\x51\x29\x9e\xd0\x5d\xc9\x2d\xf5\x7a\x37\x34\x52\xa8\xad\x25\x9c\x70\xb7\x25\xd8\x83\x70\x35\xb2\x1b\xf7\xfc\x2e\x21\x78\xa0\x7d\x7f\x28\xba\x96\x23\x6a\x4e\x82\xee\x04\x08\x19\xa7\xb6\xfd\x9c\xa3\x3e\x07\x48\xb4\x0c\x54\xf5\xde\xf4\xe3\xde\xbe\x55\xbf\xa1\x6b\x93\x89\x23\x9f\x4b\x4b\xf8\xb1\xbe\x0a\x44\xe5\xe3\xa5\xc2\x40\xbf\xce\xaf\x72\xe5\xf2\x35\x01\xd4\xfb\x82\xa6\x23\x65\x4f\x0b\xc1\xc6\x88\x5b\x98\x60\x3d\xfa\x7a\x71\x03\x40\xca\xec\xdd\xde\xb4\x5e\x44\x6e\xee\x86\x48\xc3\xac\xc7\xfe\x41\xae\xec\xce\x6e\xe8\xd2\x6f\x9e\xed\xf3\x40\x76\xcf\x5c\x82\x6e\x5b\xdc\xd8\x78\x58\x59\xda\xd6\x61\x7e\xed\xa0\xb0\xf5\x32\xbd\xb6\x6e\x76\xf1\x1e\x81\xd7\xbe\xeb\xc9\x25\xe2\xbb\xb6\x58\x5f\xf3\x40\xbd\xc9\xf2\xf8\xdf\x68\x16\x24\x35\x2f\xb8\x18\xe5\x19\x5e\x73\x0f\xf3\xa5\x16\x8b\xf4\x4e\x65\x17\xbc\xf7\x2c\x9d\x6e\xbf\x5c\xa8\xa2\x2f\x5e\xc1\x9e\xda\x23\xa4\xb2\x38\x9e\xcb\x5f\x25\xaa\x49\x73\x83\xd1\x64\x26\x97\x28\x6a\x05\x80\x32\x6b\xc5\xd5\x0b\xaa\x2c\x72\x8e\x83\x46\xc7\x68\xb3\xfc\xed\x3b\x47\x6f\xee\x5e\x72\x51\xa0\x9e\xcc\xed\x3d\xfd\xe3\x63\x2d\x22\xba\x2c\x67\xd7\xb0\xa3\xf9\x20\xdd\x55\x5d\xf4\x16\xba\x63\xa4\x4e\xf6\x87\x35\x1e\xda\x3d\x8e\x5d\x80\x69\xb0\x7c\x04\x73\x8d\x74\xe9\x0e\x6b\xf2\x44\xeb\x8b\x6a\xf2\x78\x9b\x0d\x6a\x32\x71\x9b\x5d\x1d\x6f\xcf\x5d\x28\xa4\x29\x59\x52\x26\x6f\x8e\xfb\x42\xda\x82\x7f\x94\x89\x40\xb5\x01\x30\x16\x74\x8f\xad\x85\x95\x02\x72\xce\xda\xba\xd7\x6d\xb5\xc9\xe9\x08\xec\xb2\x9c\x9a\x60\x0e\x1a\xfb\x9a\xb6\x61\xdd\xbb\x07\x78\x4f\x69\xdb\x44\x83\xee\xe7\x6e\xfa\x67\x7a\xef\xd6\xf7\xa5\x46\x48\xd6\x64\xac\xd4\x4f\xf4\x49\x44\x6d\x96\x9b\x9a\x78\x77\x16\x5b\x58\x37\x81\xb8\x34\xa9\x73\x26\x05\x10\x79\xc7\x51\x0e\x8d\x66\xd3\x28\xac\x5e\x57\x24\x2c\xa8\x5c\x57\x4b\xef\xf7\xae\xe4\x4c\x13\x17\x31\x7d\xb4\xb5\x18\x36\xf6\xd2\x6e\xdc\x03\xe4\x96\x85\x0d\x8e\xb8\xad\xb6\x09\x3a\xb7\xb5\x36\x32\x03\x2f\xd3\xa6\x74\x6d\xe3\xff\xd2\x0b\x07\x5f\xd4\xef\x62\x36\x88\xd1\x1b\x67\x75\x58\xe0\xa2\x6e\xa6\x76\xf6\x0f\x7f\x9c\xa8\x3b\x88\x6c\xa6\xe9\x77\x9b\x28\x6e\x55\x41\xe9\xee\xdc\x0b\x69\xa7\x15\x7b\xc0\xf6\x6f\xe2\x1a\x29\x2a\x83\x81\xc6\x68\x25\x31\xb8\xe5\xe3\xa2\xfe\x75\x53\xbe\xeb\x4b\x2d\x14\x0b\xa4\x4e\x2f\x87\x2b\x65\xc1\x1f\x37\xa4\x27\xad\x02\x39\x0e\xaa\x21\xf7\x72\x8e\x5a\xd6\x57\x88\x0d\xe7\x26\x71\xe1\xf6\x6c\xc9\xae\xb8\x2e\x9a\xa9\xb6\x13\x4a\x97\x65\xba\xd0\x34\x02\xa3\x9b\x5a\xbd\xa1\x22\xbf\xc2\x4e\x05\xc6\x1a\x70\x56\x99\x34\x4b\xe6\xea\xda\x43\xde\x85\xc7\x20\xa6\xc5\x4d\x6b\xa3\x0f\x1a\x10\xf7\x12\xfa\x23\x93\xe6\xd9\xbc\x8b\xa7\xd8\xd3\x54\x32\x08\x05\xbc\xe8\x90\x9a\xbf\xa2\x68\x1f\x81\x5c\xef\x57\x47\xe3\x6e\x34\x52\x6b\x31\x4b\xbd\xea\x2d\x53\xc1\x59\x37\xdb\x25\xf0\xa4\x96\x83\x74\xe7\xf6\x9d\x6d\x7e\x7f\x80\x90\xbd\x70\x8a\x9d\xd0\x1c\x2f\x6a\xc9\x06\x42\xd2\xaf\x40\x33\x34\x34\x9a\x7d\xab\x72\x2a\x2b\x02\xa4\x9c\x81\xb8\xc0\x1f\xba\xb9\x2a\x13\x58\x8c\x45\x3f\xad\x62\xc1\xb4\x89\x4a\x4e\x86\xad\x51\x12\x48\x21\x47\xe5\xcc\x4a\x55\xed\xb8\xb6\x66\x76\x07\x4a\xa1\x56\xcc\x66\x96\x87\x92\xa3\xaf\xf3\xeb\x74\x45\x47\x93\xfb\x88\xbf\x62\xcb\x43\x32\xc8\x1b\x86\x77\x8c\xae\x86\x52\x36\xee\x59\x00\xc6\x77\x81\x5f\x72\x7f\xcf\x0e\x13\x3b\x45\xe3\x3c\xe6\xf0\x2b\xaa\x21\xfb\x63\x68\x40\x7f\x51\x49\x3c\xf2\x4a\xd9\x34\xb4\xb6\xfe\xcc\xb2\x46\x96\x81\x3f\xe5\x5d\x8c\xf6\x62\x99\xb8\xb8\xe4\x05\x97\x9f\x78\x57\x53\x6f\x73\x54\x1a\x3b\xe6\x86\x40\x76\xf1\x16\x77\xa8\x66\x1f\x95\x74\x30\x1e\x2f\xdc\x0a\x8b\x9f\xb2\xb8\xb0\xe7\x8c\x55\x2b\x27\xe1\x94\x60\x74\xda\x64\xc9\x33\xaa\x60\x5c\x18\xd7\x8f\x55\x67\x7f\x5a\x67\x95\x02\x60\x1a\x36\x29\x0c\xd6\xe5\xf0\xa0\xc3\x4a\x95\x9e\x73\xd9\x00\x61\xbb\xe4\x12\x57\x42\xd1\x62\x06\x5b\x02\xec\x16\x68\xf7\xe9\x52\xef\xd6\x00\x6a\xa6\xab\x5d\x21\xed\xc1\x1d\x13\x7d\x70\x7b\x78\xb7\xc0\x60\x0c\x3d\xaa\xdf\xde\x04\xc0\x03\x19\x71\x00\xe9\x40\x23\x6b\xbd\xee\x85\x8c\xba\x97\x71\x31\xd5\xcd\xe3\x6b\xe1\x40\x30\x98\xc7\x61\x24\xa0\x4f\xc8\x7e\x98\x86\xff\xea\x41\xf7\x47\xb9\x99\x00\x2a\xea\x2c\x1d\x38\x9a\xc1\x8b\x46\x2c\xa8\x08\x76\x80\x70\x6b\x54\xe9\x0f\xc5\x92\xd5\x94\xf5\x3a\x79\xb4\x26\x3d\x2a\x18\x2f\xaf\x32\xbf\x8f\xe5\x28\xb1\x07\x42\xc4\x40\xff\x84\x69\xf7\x96\xec\xf9\xac\x5c\xd7\x9a\xdd\x09\xda\xed\xc6\xaa\xed\xe6\xca\x6a\xcb\x76\xbd\x6c\x5a\xe3\xc2\x45\xa4\x97\x5f\xb9\xc7\x11\xdf\xfb\xc4\xe0\xfc\x34\x1c\xc5\x65\x6b\x5d\xa8\xed\x0a\x9c\x06\xe6\x58\x8f\x75\xa5\xca\x3b\x8c\xa6\xff\x99\x4c\xcf\x2f\x61\x6c\x70\xf4\xb5\x01\x23\xce\xb7\x7c\xb4\x49\x11\xbb\xcc\x1c\xe3\xa6\x62\xc4\xcb\xf4\x6e\x56\xd5\x02\x02\xf6\x47\xe0\xc4\x6e\xa8\x91\x85\x78\xbc\xa0\x56\x69\xb3\x06\x00\xc1\x9b\x2e\x0d\x23\xa0\x33\x95\xe3\xbc\x4a\xe0\xdd\xdb\x41\x2f\xe9\x02\xea\xba\x0d\xdf\x9d\x20\xe3\xae\xac\x82\x39\x0c\x5a\x8f\x19\xbc\x5e\x8e\xad\x71\x5f\x15\xfc\x57\x88\x23\x60\x5a\xae\x73\x6a\x9d\xdc\x1f\x80\x30\x48\xc7\x20\x19\x65\xa8\xaf\xdf\x23\x87\x24\x86\x6d\x1e\x16\x9c\xdc\x6a\x98\x4a\xa1\x71\xf3\x70\xa9\xb3\x9c\x5a\x51\x0e\xfe\xd5\xb6\x20\xc9\xf0\x94\x6b\xea\x4c\x53\x21\x0c\x85\xd4\xf9\x88\xa6\x8f\x27\xdf\x6a\x35\xed\xa6\xe2\x42\x49\xdd\xb8\xdd\xff\x59\x19\x2d\x44\xf4\x0d\x99\xf5\x9b\x55\x30\x84\xd3\xf2\xaa\xa5\x2b\x86\xb0\x9b\x2b\xab\x80\x79\xb7\x11\x05\xfb\xbc\xb8\x16\xa2\xfb\xe6\x42\x5d\x9b\x5d\x5f\x84\xd6\x66\xd6\x97\xa4\xff\x05\x45\x12\x93\xd3\x3f\xc9\x5c\xfe\xec\xd8\xaa\x03\x1c\xd4\xcb\xec\x6e\x3b\x01\xe8\x47\x40\xb8\x1d\x58\x90\x3d\x58\xb2\xc1\x00\xf4\x22\x3c\x5a\xd7\x5a\x35\x18\xaf\xbe\x60\x3b\xbd\x89\x47\x20\x7f\x6b\x95\x92\x07\x70\xa1\x1f\x01\x09\x77\x64\x09\x3f\x06\xf7\xf9\xa1\x16\xf3\xca\xae\x73\x7b\xb0\xfd\x11\x08\xe0\x5a\xc5\xe4\xfd\x74\xf3\xe7\x48\x8f\x80\x66\x3b\xb2\x68\x3b\xb9\xb1\xa9\xf3\xa3\x87\x5a\xa5\x80\xec\x66\x83\x5b\x3a\xf5\xb8\xa7\xe9\x6f\x2f\x28\xcc\xbd\xbd\x2a\x41\xb3\x6a\xc0\x0c\x73\xad\xb1\xe5\x78\x25\x7d\x25\x4c\x8a\x5a\x52\xcc\x2f\xb3\xc9\xf4\x32\x3b\x4d\xa3\xb9\x73\x19\x01\x73\xb0\x75\x05\x6a\x32\x51\x11\x26\xfa\x63\x97\xc4\xd6\x69\x85\xec\xd8\xc7\xd1\xa2\x69\xaf\xcb\x0e\x2d\x3c\x7d\x2a\x77\x6e\x80\xf8\x2b\x46\x07\xff\x60\x3c\xf4\xe3\x9f\xc3\x60\x19\x9e\x2e\xb3\xa3\xef\xe6\x46\x57\x6e\xdd\x4e\xfd\xbc\xb9\x2d\xc8\x81\xcd\x1b\xa3\x9b\xdd\xd0\xca\x45\x2d\xce\xf5\x61\x80\xa1\xa6\xf3\x9c\xb6\xf7\x79\x6a\x08\x5f\xf5\xa6\x68\xbe\x1e\x2b\xc8\xd8\x81\xfb\xa8\x0f\xd3\xf2\xd7\x69\x64\x8c\x05\x4b\xb0\x71\x6e\x6b\xa5\x9c\xa0\x2a\xc9\xf8\xf6\x25\x5e\x87\x68\x4a\x15\x75\x8b\x30\x52\x63\x7b\x1a\x1b\xef\x28\x14\x43\x6c\x17\x4c\xb7\x3a\xf7\x46\x49\x3c\xfa\xb0\x87\x2f\xee\x51\x67\xd4\x72\x48\xff\x90\xcc\x64\xfe\x86\x0a\x34\xd7\x96\x11\x3e\x7a\x49\x8d\x6c\x9b\x2a\x09\xf1\x85\x14\xcc\x35\xd6\x5d\xf1\xa5\x87\xbd\x88\x05\x8f\x2c\xd8\x57\xc7\xd6\x44\xf1\xd7\x91\xf4\xad\xe5\x2b\xb4\x98\xf0\xeb\x0c\x84\x95\x35\xf3\xf8\xfa\x5a\xd5\x2e\x94\x5d\x01\x73\x07\x86\x52\x76\xc9\x18\xf8\xe9\x8a\xd6\x30\xa8\xb4\x32\xe6\xc4\xe4\x86\x86\xc6\x0b\xb4\x73\xde\x59\xde\x6e\x83\xfe\x9f\xe9\xbd\x9d\xb5\x84\xb7\xcf\xe0\xf1\x37\xb3\xab\xab\x44\x61\xb6\xbc\x4d\xfe\xb9\x89\xf3\xc8\x6b\x8e\x45\x06\x14\x4f\x12\xd6\x7b\x92\x23\x00\x32\x1a\x5f\x28\x97\x2b\x1a\x72\x01\x8c\x6f\x5a\x67\x23\x34\xd8\xd8\xb6\x8d\xc8\xfc\x2a\x1c\x18\xe9\x95\x2b\x04\x05\xde\xe0\xda\x59\x7a\x10\x92\xa0\x6a\x7e\x7a\xdf\xc5\xeb\x21\xd9\xa7\x98\xfe\xce\x8b\xcc\x27\xc9\xd6\x87\x63\x63\x4b\x75\xbf\x0e\x26\x12\x21\x34\x15\x0b\x57\x3f\xca\xc4\x93\x36\x9c\x8b\xea\x0d\xf5\x2a\x5a\x97\xac\x49\x09\xfa\xbd\xab\x64\x96\xef\xc9\xc4\x19\x57\x35\x63\x84\xfc\xd1\xe1\xad\x41\x3b\xa1\xbe\x89\xb1\x66\x5d\xea\x6b\x0a\xad\x3e\x64\x0a\xbc\x85\x7f\xc1\xb7\xf0\xe9\xb5\x66\xfb\x69\xad\x5b\x03\x02\xbd\xbe\x7d\x60\x7d\x48\xee\x8c\x6d\x83\x04\x34\xc0\xbe\xf0\x2d\x99\x17\xcb\x90\xb4\x53\x14\x47\x30\xf2\xb5\x6a\x14\x46\x1f\x2e\x7e\x71\x69\x79\xd4\xf3\x6c\x5f\x22\x05\xf0\x6d\xc9\xe4\x62\x88\xee\x8a\x54\x0a\x11\xb7\x28\x97\xbc\x89\xce\x17\x4b\x7c\x6f\x79\xa9\xe4\x59\x1e\x8e\x57\x2e\x12\x5b\x93\xd0\x87\x46\x7a\x23\x02\x4a\x24\xdc\x9e\x7c\x46\x57\x49\x5f\x11\xd5\xaf\x2e\x2d\xa5\x76\xae\xed\x6b\x4f\x03\xfc\xb6\xa4\x73\x51\x64\x77\x45\x40\x0d\x21\xd7\x2f\xa3\x58\x20\xe4\x1a\x6f\x61\x73\xa3\xa2\x2c\x97\x81\xd7\xef\xa1\x2f\x30\xd3\x1a\x63\x31\x9d\x0b\x71\x9c\x81\x63\xd5\x63\x15\xd2\x7b\x4b\x2f\x41\x99\x65\xfb\xeb\x8f\xc1\xde\xd6\xe2\x5b\x08\xcd\x5d\x59\x79\x4c\xc2\x8d\x6e\x0d\x3d\xa8\x1a\xa7\x0f\x26\x3e\x71\xba\x5d\x01\xea\x8f\xea\x4e\x89\x10\x90\xd1\x51\x6a\xba\xca\xc5\x1a\xf5\x5a\x0f\xd2\x66\xb3\xf2\xc1\xc4\x08\xe6\xde\xae\x1c\x2d\x80\xec\x4e\x09\x12\x12\x72\x0b\x92\x54\xde\x65\x7a\x4c\x7b\x72\x57\x2b\x40\xcd\x35\xb0\x04\x9b\x88\x2b\x80\xd1\x9b\x19\x1e\x90\x4e\x33\xac\x94\x92\x07\x0a\xff\x9f\xe3\x63\x89\x0a\x75\xf5\xd1\x39\xe7\x72\x32\xf9\x59\xda\x42\xba\xee\xb9\x9c\x09\x5a\x38\x72\x3e\x2b\x17\x1b\xb9\x0e\x7a\xe5\x4e\x48\x76\xab\x4c\xf4\xea\x2c\xed\xcd\x89\xa1\x03\xd1\xda\x96\x86\x6e\xcf\x5d\x59\x1a\x2b\x72\x30\x6b\xa2\xc2\x5c\x06\x2e\x4c\xe9\xae\xd9\x3a\x69\xbe\x24\x05\x3b\x4d\xc4\x0f\xea\x3e\xca\xee\xd2\x1e\x46\xa2\xbc\xb9\xb4\x99\x68\x66\xda\xbe\x8a\xd6\xa0\x77\x6a\x91\xbf\xab\x75\x2a\xe9\x05\xb1\xdd\x15\x1d\xad\x29\xb9\xa0\xc5\x38\x97\xb6\xf3\x64\x14\x2b\x61\xf7\xf1\x64\xf4\xab\xab\x48\xa9\xcc\xf5\x20\x62\xca\xc0\x6f\x57\x4e\x17\xc2\x77\x87\x04\x95\x69\xb9\x6d\x49\x9d\x4d\xfb\x89\xe9\x6c\xba\x8a\x8c\xe2\x2c\x0f\x22\xa0\x00\xf6\x76\xa5\xb3\x3f\xa6\x3b\x24\x9a\x40\xc5\x4d\xcb\x65\x37\x61\x93\x2c\x8c\xea\x74\xed\x36\x75\xe6\x59\x39\xf3\xf0\xc6\x39\xb7\xe6\x24\x2d\x84\xe0\xc3\x49\xce\x62\xc4\xdb\x5e\x08\x9f\x2c\xd6\x9e\x86\xa1\x79\x77\x69\x85\xe6\xcc\xb6\x5d\x91\xb4\xa0\x77\xca\xe5\x6b\x7c\x6d\x8d\xc2\xb9\x38\xbe\x3b\x20\xa1\x96\x96\x8b\xfa\xef\x3d\xc8\x3b\x5f\x58\xc9\xab\xea\x2b\xad\xf4\xf2\x32\xe2\x7a\x45\x95\xf5\xeb\x9e\xa4\x89\x01\xcc\xe9\xd1\xbc\x4e\x5a\x33\x12\xdb\x12\xdc\x55\x31\xdf\x15\x09\x66\xaa\x3e\x88\x08\x53\x38\xa0\xaf\x08\xd3\xcb\xeb\x14\x61\x09\x46\x6c\x55\x84\x19\x89\x87\x16\xe1\xbe\x98\xef\x8a\x08\x33\x55\x1f\x44\x84\xf1\xd2\x54\x5f\x09\xc6\x77\x57\x33\x19\x78\xb6\x07\x30\x19\x08\xf4\xed\x9b\x0c\x0b\xe1\xbb\x2b\xd2\x4a\xb4\x7c\x10\x61\xa5\x33\x94\x7e\xb2\x8a\xc7\x12\x2b\xb1\xae\xf1\xbc\x66\x0b\x92\x3a\xf7\x60\x6a\x23\x82\xba\x08\xb6\xbb\x22\xa7\xcb\x9c\x4c\xad\x47\x4c\x6f\xfb\x1b\xb6\x74\x60\xb0\x1a\xeb\x68\xb6\x87\x90\xd4\xdb\x2d\x5a\xb3\x4b\xe2\xbb\x33\xb2\x7a\xfb\x50\x36\x6c\xaf\xf0\xa7\xbc\xb9\x9a\xa0\x36\x05\x06\xb7\x20\xa6\xf3\x02\xa0\x1b\x11\xd2\x05\x70\xdd\x15\x11\x75\x43\xa0\x9b\x13\x50\xdd\x94\x2c\x6d\x46\x4c\x5a\x5e\x8f\xc7\x1d\xa2\x38\x67\x88\x26\xf2\x17\xc1\xb9\x73\x91\xa6\xda\x91\x8d\x87\xb1\x97\x6a\x4c\xa3\x56\xba\xf8\x84\x2f\x73\x67\x57\x2a\xb8\xed\xfe\x56\xb9\x45\x35\x34\xa7\x8c\x87\x93\xfb\xb7\xc9\xec\x3a\x4e\xf7\xe8\xc3\x3d\xfb\xef\x2a\x07\x75\x6e\x22\x5e\xe1\xd2\x7f\xf2\x2d\xf0\xe2\x26\x9b\x25\x11\x1f\xa1\x13\x17\xf9\x2e\x50\x0c\xa3\x84\x49\x72\xef\x88\xc9\x21\xb6\xd9\x96\x76\x68\x74\x21\x09\xe5\xca\xa3\x4d\xc7\x05\x4b\xfd\x97\x11\x20\xdb\x2d\xce\x34\x1b\xb3\x57\x99\x70\xd0\x41\xb1\x4f\x58\xe1\x0f\xc5\x54\x8d\x62\xa0\x14\xf7\x40\x6c\xa8\x7f\x80\xac\x64\x16\xd8\x6c\x4b\x8d\xe8\x8b\x5a\xaa\xe7\x52\x71\xd3\x4f\x59\x3c\x1e\x94\x4f\xeb\x3b\x1a\x58\x8a\x27\x56\x5d\x82\x68\xe7\x7c\x94\x23\xd7\x1c\x81\x8e\x85\x6d\xc7\xec\xdd\x92\x5b\x8a\x7b\xa1\x34\x1c\x96\x16\x55\x76\xe4\x2a\xd5\x8b\x5e\x64\x7f\xe0\x45\x5e\xe7\x68\x4b\x67\xd7\x86\xa5\xd8\xa3\x64\x40\x75\x63\x34\x12\x89\x64\x70\x59\x21\x7c\x94\x8d\x8c\xa7\x9a\x5f\x20\x61\x5d\x2b\xb2\xe9\x8a\x6b\x6d\xfd\xad\x6f\x43\xa5\x4b\xa7\xce\xf2\xc2\xa7\xf0\xdf\x0c\xcb\x70\x67\x77\x58\xb2\x86\x7a\x7b\xdf\x64\x79\x89\x93\x10\xb1\xaa\xb7\x60\x8b\x78\x32\x05\xa6\x47\x19\xc9\x20\x35\xc0\xe4\xa5\x0a\x0b\x08\x74\x0b\x81\x88\x75\x47\xf0\x72\x6d\x81\x13\x10\xc5\x35\xf2\xe6\x71\xe1\x88\xcd\x2f\xc4\xcc\x43\x81\x73\xb0\x7f\x18\xbc\xc9\x4a\xe9\x5a\x89\x98\x84\xa3\x72\xe6\x7f\x9b\xa5\x75\xbb\xc3\xc2\x39\x41\x25\x77\x85\x99\x5d\xf9\x07\x46\xca\xcc\x3f\x78\x11\x14\xf7\x60\xd7\x7c\xac\xb4\x2e\xcf\xd2\xa5\x35\xcb\x30\x38\x3c\x3c\x44\x64\x49\x62\x7f\xfa\xb9\xff\x5d\xfc\x4f\x59\x48\xc9\x64\x7c\x29\x0d\x57\x6b\x06\xa3\xc6\x38\x16\x12\x1c\xd2\xeb\xac\x38\xd2\x0e\x53\xf0\x91\x2f\x81\x27\xdd\x12\x45\x48\x2e\x78\x7b\xe3\xb3\x74\xf5\xb5\x48\x65\xdb\xc5\xab\xfc\x71\x52\x8a\x7f\x19\xa9\x62\xa4\xd2\x28\x44\x50\xa5\x00\x58\x0d\x41\x51\x34\x8e\x57\xca\x32\x19\x9c\xb9\x1f\xc0\x0c\x20\x2a\xe9\x0c\xcb\x14\x01\xfd\x26\x71\x09\x63\x0c\x7d\x31\x0b\x93\xbb\xf0\xde\x91\x36\x96\xc4\xb8\x04\x29\xc1\x4d\xb8\x68\x9c\x7f\x97\x64\xbb\x43\xb8\xed\x05\xa6\xa5\x14\xa8\xe3\xd6\x7d\x96\xf3\x3f\x84\x9c\xff\x71\x77\x88\x85\x56\x51\xb4\xf8\x8d\xbf\x9d\x58\x50\xd6\x73\xb2\xb5\x18\x1f\xc0\x79\x0a\xeb\x68\xb2\x38\x62\x41\xba\x25\xdd\xa6\x15\x57\x28\xc5\xd8\xa8\x1e\x9e\xb3\x10\xfa\xaf\x52\xb3\x72\xcc\x3a\x15\x54\x1e\x66\x91\x52\x51\x9c\xaa\xdb\x97\x2e\xe1\xf5\xf1\x52\x78\x51\xad\x0b\xf3\x59\x88\x57\x17\xe2\x87\xe3\x72\x23\x4b\xdb\x78\xea\x86\xb9\xdb\x2b\x18\x91\xfe\x76\x16\x81\xb9\xc7\x03\x4b\x6b\x92\x15\x25\x57\x99\x9c\xe2\x9d\x1a\xfe\x84\xff\x36\x0c\x98\xc3\xf1\x39\x55\xac\xaa\x01\xf7\x6d\xd5\x9b\x13\x57\xb9\x77\x3e\x31\xc0\xbc\xc1\x58\xda\x67\x8e\x99\x65\xb5\xed\x03\x95\x75\x08\x42\xb4\xa9\x6b\x94\x8f\x49\x2e\x3e\x5b\xf4\x7f\x4c\xcf\xb5\x2e\xee\xcb\xbb\xae\xbb\xa5\x09\x3f\x4b\xfc\x67\x1f\xf6\x61\xd6\xd3\x12\x4e\xec\x8e\xed\x26\x9f\x88\x27\xf0\xd9\x9d\x5d\xca\xd1\x51\xeb\xf3\x67\x3f\x0b\xf9\xce\xba\xbb\x3d\xa4\xa0\x99\xe5\x55\x9e\x5f\x60\x26\xc4\xf8\xde\x53\xc9\x0d\x8a\x1f\x8b\xed\xe2\x01\xeb\x0c\x4f\xe1\xf1\xae\x9f\xdd\x42\x16\x73\x19\xc6\x7a\x55\xcb\x88\xb0\xa4\xa2\x7b\x1f\x3b\xfa\xc9\x49\x62\xe3\x33\xdb\xe3\x24\x0e\x8b\x17\x1a\x93\x8b\x32\x2c\xe3\xd1\xa2\x19\x80\xc0\xd4\xf8\xdf\x7d\xf2\xff\xf9\xc5\xa5\xf3\xff\xf4\x3c\x6b\x49\xff\x5b\xec\xf2\xae\x40\xbe\xad\x6b\xac\x0b\x62\x6a\x22\xc5\x8f\xfc\x0a\xb4\x50\xd1\x09\x6c\x6f\xc0\x43\xf5\x44\xb3\x18\xe5\x59\x92\xf4\x10\x4d\x7e\x71\x69\xd1\xd4\xf3\x3c\x80\x68\x0a\xe4\xdb\x12\xcd\x05\x31\xdd\x15\xd1\x14\x2a\x6e\x53\x34\xc9\x9c\xe8\x23\x9a\xf4\xe2\xf2\xa2\x29\xf3\x3c\x84\x68\x32\xe4\x5b\x13\xcd\xc5\x30\xdd\x19\xd1\x64\x2a\x6e\x53\x34\x29\x48\xda\x47\x34\xe9\xc5\xe5\x45\x53\xe6\xd9\x7e\x49\x13\x01\x7c\x6b\x92\xb9\x10\xa2\x3b\x23\x98\x4c\x44\x03\xee\x26\xca\x53\x9c\x6a\x0b\x17\x30\xd5\x19\xa8\xe4\x57\x5c\xa9\x9b\xf0\x36\xce\xf0\x5f\x3a\x41\xb6\xa5\x1c\x9c\xf1\x26\xae\x63\x98\xba\xc1\x55\x5a\xac\xe3\x49\xd8\x7c\xde\x60\x63\x6b\x14\x5a\x43\xc7\x89\xe9\x53\xe5\x80\xfa\x58\xe6\xe1\x5b\x9b\x09\x79\x6c\x7b\x8b\x39\xf9\x91\xa5\xb4\x17\x0b\xb9\xe5\xdb\xdc\x7a\xe9\x3a\xf5\xd2\xc0\xee\x94\x1d\xf6\x27\x7c\x21\xe9\x04\xbf\x09\x0f\x5a\x45\xfa\xc1\x48\x0f\x64\x97\x84\xd2\x53\x56\x40\x04\xe8\x03\xd0\xb1\x31\x33\xa3\x37\x39\xfb\xd1\xd3\xa1\xa0\xd5\xb2\x1c\xce\x4b\xfd\xed\xeb\x81\xc5\x14\x76\x81\x3c\xc7\x6e\x74\x5e\x3b\xbc\xd5\x49\xfd\x3d\x3f\x6b\x92\x5c\x4c\x82\xf1\xc1\xd0\xa9\x30\x7a\x0f\x6c\xbf\xfa\xe3\xa4\xd0\x1f\x18\x22\xfb\xda\x99\xfa\xf9\x78\xc1\x97\x07\xa1\xb4\x06\x07\x03\x3f\x7e\x00\x37\x2e\x24\xbe\x91\x66\xd4\xfa\x11\x03\x3d\x12\x0e\xf2\x49\x39\x4b\xfd\x5e\x43\x9b\xbd\xf3\xb2\x3b\xa4\x1d\x27\x45\xf0\x9e\x68\xc3\xd1\xc5\x51\x96\x83\x0f\x3a\xcd\x52\x6a\x6a\xfc\xd4\x0d\x8a\x3f\xad\xd0\xfe\x0e\x46\xbf\xca\x66\xa0\xee\x66\xd4\x27\xf3\x90\x28\x6c\xe1\x1d\x4a\x5c\x7e\xbf\x9b\x13\x96\x11\x00\x4b\x8f\x5e\x4f\x9b\xa1\x31\xaa\xd4\x1a\x25\xc5\xb2\x08\xdd\x44\xfe\xee\x1b\x73\x06\xb9\x72\x5e\xcc\xd3\xa0\x51\x07\xd6\x84\x3d\x51\x0f\x9a\x8d\x82\x63\x91\xf6\x86\x8a\xee\x87\xab\x83\xae\xc3\xe0\x2a\x44\x18\x67\x53\x34\x47\xf9\xa6\xd1\x38\x1e\xc1\xf3\x12\x35\x52\x9e\x65\x65\x4b\xe3\x4a\x60\xa1\x2e\xd1\xdf\x83\xec\x0f\x09\x6f\x95\x6f\xed\x17\x7a\xb4\xe1\x37\x13\xb6\x39\x61\x7d\x86\x17\xa4\x1c\xdb\x05\xd7\x94\xfa\x6a\xab\xad\xe1\xd4\x70\x6f\xb1\x38\xe5\x82\xa9\x0d\x0e\xef\xea\x47\x52\x0d\x6b\x6c\x13\xca\xee\x0f\x20\x11\xee\xb9\x00\x80\x52\x4b\xae\x73\xe2\xfc\xce\xc5\x34\xd6\x8e\x5e\x6f\x38\x56\x10\x86\x54\x93\x45\xb9\x59\xe8\x7d\x7d\xc7\xf8\x62\x0e\x3d\x5a\xd6\x95\x7d\x6e\x89\x44\x40\x32\xf5\x11\x85\x56\x52\x99\x6f\x7b\x5c\x9e\xeb\xf6\x42\x67\x69\x4b\x79\xc4\x60\xf0\xf2\xf4\xed\xbb\xd3\x93\xe3\xcb\xd3\x97\x4c\xcf\xdb\x2f\x0f\xff\xb2\xdf\x82\xec\x9a\xae\x83\x33\x34\x5b\x73\xc1\xd7\x84\xbc\xe3\x9b\x07\xd3\x04\x18\xec\xac\x9b\xc7\x70\xc9\x5e\xa8\xba\x51\x9f\xfc\x52\xce\x99\xd2\x2c\x52\x24\xe7\x60\xa4\x37\x5f\x27\x65\x37\x6e\xb0\xff\x3c\x88\xc7\xf0\x3a\xe8\x95\x3b\xc7\xdc\x40\x9c\xf4\xe7\x44\xb1\x24\xfe\xa0\x50\xb1\xf0\xe6\x10\x65\x23\xea\xed\xd9\xcc\xa1\x2f\xff\xbc\xef\x21\x2e\x03\x1d\x05\xa7\xbc\x56\x05\xec\x5f\xfe\x85\x10\xe8\xa5\xb3\xe8\x8a\x51\x79\x9e\x35\x95\x09\x79\x90\x05\x43\xc0\x6c\x6d\xbd\xac\x07\xf5\xc7\xbe\x5c\x98\xa6\x4e\x68\x75\xed\x19\x2e\x11\xf6\x2d\x18\x65\x09\x6e\x36\x08\x25\x20\x4e\x2d\x56\xf5\xf6\x04\x62\xcb\xe8\xf2\x5a\x01\x41\x0d\x47\x1f\x5a\x2d\x79\xfd\x95\xeb\x8d\xdb\x64\x0d\x70\xc0\x67\xc5\x8d\x1d\x92\xc6\xa2\x6d\x7b\x12\x7e\x50\x41\x8c\xbf\xc3\x66\xa4\xee\xf4\x64\x7e\x64\x85\x49\x82\x43\x5c\xe0\x87\x03\x3d\xb0\x75\xba\xdb\x52\xe4\x76\x08\x49\x77\xcb\x26\x4d\x46\x7f\x60\x50\x43\xbf\xcf\xad\xfc\x59\x32\xaf\x55\xaa\x38\xe1\x01\xa7\xaa\x41\x53\x1d\x54\xb7\x23\x2e\x68\x64\xfb\x2f\x96\x72\x2c\x2f\x20\x22\x1e\xa7\x81\x4f\x11\x99\x74\x80\xe6\x4b\xa1\xf2\x38\x4c\xe2\x7f\x87\x48\xcb\xfd\x9e\xdc\x19\x12\x22\xd6\x9e\x32\x93\xd7\xb9\x57\x65\xdf\x59\x0a\x33\x72\x88\x19\x3e\x18\x6a\x13\x08\xc0\xbc\xba\x27\x18\x4d\x90\x67\x28\x99\x06\x14\x27\xd6\xb1\xaa\x38\x95\xcc\x1d\x5a\xd5\xd5\x10\x60\x8d\xcb\x4c\x29\x99\xec\xcb\xe0\xfb\xcb\xd7\xaf\x0c\xd0\x8e\xd0\x0c\xeb\xd4\xe6\xfa\x17\x2e\x53\x91\x88\x31\x43\xbf\x3c\x60\x1e\x40\xff\xe1\xe5\x58\x3a\x81\x2e\x57\x9e\x05\xb6\xc2\x07\xce\xc1\xa4\x01\xd4\x62\x1d\xb0\xb2\x0c\xd0\xe7\x03\x4d\x41\xcd\xd7\xdf\x38\x0c\x29\xdb\xdf\x6f\x97\xb0\x19\xfe\xe6\x04\xd2\x34\x7e\x73\x17\xf3\x43\x48\x03\xea\x70\x4f\x95\xe3\x7a\xe1\xe8\x0c\x15\xe8\x6c\x13\x12\x5d\x7c\x64\x7d\x42\x01\xfe\xc5\x48\xc5\xba\x3d\x0b\xec\x90\xea\x63\x30\xcd\x8a\x58\xab\x35\x27\xde\xe2\x0e\x15\x12\x98\x7a\xcd\x1d\x06\x3f\xc4\xe5\x8d\x3c\xd6\x48\x61\x32\x1c\x65\xe6\x8c\x9d\xe6\x43\xda\x19\xa9\x0f\xd9\xc4\x72\x1c\x0a\x36\x25\x82\xea\x28\x48\x67\x93\x2b\x64\xc2\x4d\x39\x49\x8c\x6f\x80\x3b\x12\xff\x69\x24\x81\xf9\xbc\xa6\xf5\xaf\xf7\x66\x4c\xf9\x1a\xaf\x53\x0f\xcc\x5b\xfa\x9e\x08\x74\xb1\xbc\x5c\x15\xc0\x07\xd0\x07\xab\xc2\x2c\x42\x32\x9d\xc2\x10\x8f\x42\x31\xac\x5b\x4c\x36\xa6\x20\x96\xa6\xfc\xb2\x8a\x42\x52\x22\xb3\x24\x62\xa0\x39\xc7\xbb\xf2\x01\xaa\x13\xbd\x7f\x6f\x40\x99\xb0\x9c\x6c\x56\x9b\x80\xe5\x0c\x04\xef\x47\xcc\x8a\xb8\x50\x88\x10\xf0\x57\xad\x47\x5f\xfc\xd4\x89\x82\x0d\xad\xee\xf0\x44\xa1\x87\x0d\xf1\xdc\x3b\xb9\x14\x08\x6d\xf4\x48\x5c\x13\x96\x17\x4e\xc3\xad\x80\x6a\x45\xad\xba\x24\xe2\xc2\xae\x89\x26\x16\x5c\x66\x03\xc6\xa4\x65\xa9\xce\x8d\xf7\x2c\xb2\x24\xaf\xd4\x98\x02\x7a\x8f\xcf\x74\x5b\x01\xb2\xed\xeb\xea\xe5\x81\x65\xce\xf3\xf7\x8f\x42\x49\xaf\x4d\x22\x36\xa5\x9d\x97\x00\xf0\x91\xda\x6f\xc2\xf5\x0d\xa9\xdc\x93\x5c\x85\x78\xba\x12\x44\x4a\x4d\x81\xf7\xd3\x7b\x7b\xa3\x63\x11\x3e\xde\x01\xd6\x18\x06\x39\x4e\xa3\x53\x39\x17\x08\xbe\xe1\x13\x4b\x24\x65\x3c\x02\x8f\x34\xbd\xc6\xe8\x0a\x8c\x9d\xfb\x01\x1a\x3e\x1e\xa0\x98\x8e\x94\x9b\xc3\x74\xfe\x6c\x8a\xa2\xc7\x19\x01\x38\xba\x7f\x5e\x49\x5e\x72\xa4\xc6\xe1\x2c\x29\x65\x23\xc4\x6c\x78\xf7\x8e\x92\x40\x86\x88\xfd\xb0\x1e\xe8\xf4\x01\xc1\xe8\x26\x4e\x22\x60\x9e\x26\xd5\x08\x80\xb4\x24\xaa\x21\x71\x18\x7c\x73\x6f\x60\x8d\x61\x72\x86\x97\x29\xcb\xd2\x36\x8e\xf3\xa2\x34\x42\xf4\x54\xbf\x32\xe0\x13\x08\xf9\x96\x44\x87\x50\xac\x78\xf6\x34\xff\xa0\xc6\x82\x17\xe6\xd0\x78\xd8\x4c\x85\x17\x4d\xa7\xca\x2d\xa7\x26\x5d\x7b\xb0\x39\x47\x81\x05\xda\x22\x1f\x4d\xc7\x4f\xea\x23\x35\x5c\x33\xcb\x9e\x0f\x9e\x8a\x79\xdb\x3d\xd0\x35\x27\x98\xaa\x3d\xe1\x15\x9e\x75\x0f\x16\xa9\x18\xa8\x4f\x84\x34\x4f\x29\x2e\x5d\xcc\x59\x01\x8d\xe8\x4a\x4c\x70\x32\x2d\xef\x07\x6b\xb6\x70\xec\x0d\x8d\x16\xcb\x66\xbe\x61\xb3\xa8\x53\xb4\xa8\x61\x63\x20\x5c\xc6\xa0\xe1\x61\x8e\xc9\x4d\xed\xb4\x69\x9c\x9d\x6d\xcd\x24\x96\xdd\xe2\x31\xd3\xd8\x01\x71\x79\x22\x7f\xc3\x7b\xc9\xfa\xa8\xbc\x88\x47\x77\xa5\xae\xe3\x94\x2b\x30\x3c\x66\xf7\x7f\x65\x30\x1f\x2c\x08\xb0\x2a\xe4\x12\x26\xce\xd5\x63\x8b\x05\xac\x59\x72\x36\x1c\x11\x58\x1a\xda\x1d\x8e\x0b\x68\xa1\x79\x7c\x81\x01\x8f\x1b\xbb\x10\x1e\xa8\x01\xbc\x8c\xba\x17\x7e\xac\x1c\x25\x58\xd5\xf8\xeb\x48\x3e\x5a\xb3\xf5\xc7\x3f\x2e\x68\xfd\x4d\x13\x4c\xac\xe1\xab\x0b\xcc\x78\x2d\x5c\xc6\xe3\xe8\xab\x5a\xda\xe4\xc7\x08\x8c\x27\x1a\x95\xa0\x07\xfa\x15\xb5\xe3\x4a\xcf\x31\x89\xad\x1a\x41\x41\x00\x42\xe4\x0c\x7d\x95\x0a\xf4\xe3\x71\x92\xac\xcc\x78\x87\x36\x3d\x57\x9c\xa1\xd9\x34\xcf\x6e\xe3\x08\x1e\xe1\x51\xaa\x28\x7a\x52\x53\x92\x35\xeb\x0c\x62\x59\xab\x33\x67\x2b\xdc\xad\xe8\x6e\x18\xf1\x44\x06\x44\x0f\x50\x0f\x6e\x94\xf0\x61\xf0\x3a\xa4\x34\x90\x0e\x3d\xee\x2c\x5e\x7f\x17\xae\x2e\xe0\x46\xda\xa2\xea\x1c\x58\x30\x16\xb2\xa2\x76\x84\xc8\x9d\x1b\xa4\x9e\x8a\x00\x91\x3a\x00\x46\x1a\xfb\x9b\x19\x2e\x35\x65\xd7\xa0\xad\xa1\xf7\x9e\xf0\x9d\x62\x7d\x39\xca\x26\x57\x31\xba\xdf\x94\x0c\x24\xd0\x15\x0b\xee\xbd\x43\x78\x3e\x4a\x66\x94\xdb\x0d\xaf\xc5\xb9\x5b\xe3\xa2\x72\xf7\x00\xa6\x41\x17\x4f\xa7\x05\x55\xc0\xba\x30\x60\x31\x99\x16\x83\xc3\x94\x22\x34\x8a\x1e\xa7\x6b\x55\x36\x88\x31\x2e\x03\xfa\x03\x3e\x95\x78\x54\xd3\xfc\x95\x99\xc0\x04\xc0\x44\x97\x37\xb4\x43\xa3\xe0\x9b\x70\x48\x11\x14\xb3\xe9\x34\x89\xb1\x06\x47\x6c\x13\x6c\x60\xbc\x5b\xde\xa7\x28\x49\xe2\x82\x53\x15\x4d\x5d\x06\x4a\x38\x68\x20\x14\x27\x56\xc9\x7e\xcf\xf6\xc0\x6f\x73\x33\xd9\xb7\x49\xc3\xaa\xac\xb3\x98\x8b\x1c\x78\x32\x25\x04\x5e\x87\x99\x46\xc3\xb2\x99\xe6\xd9\x65\x75\xfa\x35\x1b\x54\x2e\x55\x1d\x83\xaa\x53\x9f\xc3\x1b\x4a\x62\x1d\x6e\x24\x4d\x67\x9b\x4a\x66\x89\x4d\x2b\x01\x98\x87\x26\xb8\x09\xea\xb2\x02\x5c\x76\x8c\x3f\xe2\x42\x20\xc5\xd7\x69\x3a\x00\xa5\x95\x57\x2b\x66\xbe\x25\x31\xa4\x1e\x9b\x9a\x0d\xb5\x57\x19\x54\x58\xa6\x0d\x7b\xe0\x2c\xbd\xcb\xc3\x69\x57\x14\xe6\x07\x78\xee\x6e\x10\xb3\x11\xf0\x1c\x93\x6e\x28\x2d\x79\x15\x07\x43\x84\x0a\x01\x98\x02\xf0\xa2\xcc\x7a\x98\x93\x35\xb7\x82\xa5\xf7\x5e\x53\xc0\x42\x09\x52\x78\x47\xf0\x33\xb4\x4d\xe4\xf1\xe9\x41\xd4\xa8\x40\x64\x76\xad\x56\x83\x60\xdb\x24\x93\x75\x88\x55\x5c\xae\x30\x2b\xab\x65\x41\xd2\xfc\x46\x2f\x34\xf8\x62\x73\x69\xf3\x48\xc3\xfc\xc4\xa5\xa6\xd5\xee\x3a\x4c\x73\x37\xc5\x6e\x36\x79\xc9\xed\x9f\x88\x64\xa3\xa9\xbb\x94\x70\xeb\x8f\xe7\xd0\x7c\x69\x62\x2f\xbf\x81\xf5\xa6\xbd\x9e\x3a\x8d\xa7\x53\xd4\xd6\x0d\xbe\x55\xcd\xef\x80\xa7\x8e\xd1\xbb\x10\x33\x1c\x6c\xfa\xf1\xe6\x2c\x4d\x55\xbe\x61\xd5\xb3\x7e\x32\xb7\x6a\x22\x36\x76\x75\x5e\x27\x15\xd1\x5b\x85\x5c\x8f\x58\x11\x31\xe3\x96\x5f\x19\x67\x25\x91\x28\xc0\xae\x92\x36\x3b\x36\x33\xd7\xa0\x31\xd5\x9a\xaf\xb7\x78\xa5\xb9\x1b\x0d\xd5\x9e\x76\x9b\x93\xc2\x3d\x6f\x28\x39\xab\xc1\xc3\xa2\x66\xf3\x0a\xdf\x37\xb7\x01\x7a\xf5\x0c\x14\xe3\x8a\xae\x3f\x8d\x7d\xfb\x4a\x03\x21\xd1\xcd\xe6\xcc\xe2\x0a\x72\x2c\x0c\xc7\xc1\xbf\x55\x9e\x1d\xf0\x1d\xa3\x18\x84\xe9\x9a\x2a\x93\x35\x47\x05\xd8\x09\x63\x38\x7c\x44\xaf\x55\x59\xe1\xe1\x11\xad\x25\xc1\xaf\xc1\x2b\x15\x6c\x16\x46\xc3\xce\xd7\x6e\x16\x5e\xa8\x30\x07\xa8\xb9\xe8\xa4\xdc\xed\x17\x0c\xc8\xfe\x0b\x27\x59\x8b\xd1\x57\x3d\xd0\x00\x8c\x70\x1e\xc6\xa9\xc1\x87\x58\x75\x9e\x3e\x41\x2c\xe3\xff\xb0\x34\x0b\x55\x9c\x74\x76\x5b\x2b\x0f\xef\x61\x67\x1f\xcc\xf5\xfc\x26\x91\x64\x9c\xaa\x17\xdc\x7e\xf3\xf5\xa5\x83\x72\x15\x67\x74\x05\x53\xf1\xe8\xc6\xb5\x9d\xbe\x83\x65\x89\x4a\xaf\xcb\x9b\x56\x5a\xb6\x21\x6c\x7e\xad\x5f\xdb\x19\xe2\xb5\x1d\xba\x11\x41\x17\x2a\x46\x98\x66\xa0\x37\x19\x7d\xdf\xc7\xd5\x3d\x01\x68\x0a\x8a\x05\x46\x38\xc1\x08\xf3\xe6\x8f\x82\x2f\x0f\xff\x7b\xa8\x43\x15\xf8\xaf\xff\xf1\x80\xae\xd2\x89\xc1\xfe\x49\x44\xdd\xab\xbe\xe7\x3d\x61\x24\x7f\xae\x2c\x82\x1a\xce\x51\x83\x47\xb9\xd8\x46\xe2\x0a\x4c\xc5\x5d\x66\x71\x69\x8c\x85\xe2\x05\x4c\xb4\xd5\xec\x51\x91\x0b\x06\xfc\xdc\x17\x9a\xff\xe7\x1c\x44\x49\x9c\x60\x9a\xc5\x56\xf3\xeb\x4b\x52\x18\x78\x76\xea\x39\x9a\xb8\xa5\xce\x62\x00\x5e\xf1\x24\x48\x63\xac\x0c\x1b\x27\xa1\xb9\xec\xa3\x47\xd7\xfb\x91\x56\x7f\x7f\x1a\x58\xbb\x50\xde\xd9\x97\x9b\x0a\x95\x74\xb6\x28\x6a\xb8\xd2\x29\x9f\xbc\xb0\x5a\xb8\xf3\x06\xc9\x8a\x8c\x32\x9f\xbb\x67\x75\xcb\x51\xdd\x22\x85\x15\x28\xe4\xa1\xc1\x62\xde\x4d\x98\x15\xf1\xc0\x73\x16\x63\x15\x8e\xf3\xf0\x5a\x6f\x0c\xcb\xc0\xef\x1d\xda\x6c\x12\x6a\x50\x48\x08\xb4\xfa\x18\x17\xb4\x2e\x6a\x2e\xdd\x32\xd0\xc3\xd7\x1a\xe6\x3e\x31\x44\x27\xa1\x67\xa1\xa8\xa1\xae\x5d\x9a\xdc\xcb\xf9\x05\xef\x90\x76\x69\xf7\xd7\x0d\xde\xad\xdf\x16\xcd\xc0\x57\x91\x0d\xbd\xc3\x6b\xf8\xa0\xa8\xe8\x72\x8d\xcb\x42\x47\x21\xdf\x66\xad\x77\x1d\x86\xb8\xa1\xb3\x79\x49\x49\x4a\xc6\xde\xc0\xa0\xb0\x9b\xc3\x64\x60\x46\x13\x41\x15\x46\xdd\x9b\x21\x4b\x78\x63\xcc\x71\xb0\x3c\x24\x7d\x0f\x6f\xcc\xa6\xf0\x12\x18\xcd\xd7\x37\x94\x1a\x15\xa6\x23\xf8\x14\x0b\x04\xc5\xb6\xce\x69\x99\xab\xd6\xb2\x3f\x1b\x24\x64\x92\x15\x00\x4b\x4d\x3b\xb5\x2f\x86\xcf\x54\x74\xa9\x58\xdd\x80\x8e\x3d\xc7\xf3\x8e\xdd\x16\xde\x78\x42\xb3\xc1\x98\xe7\x13\x3e\xc6\x19\xa3\x3b\x45\x05\xa3\xd3\xcc\x8c\x14\x17\xee\x65\x38\x7d\x61\xd3\x5c\x27\x1e\x57\xc2\x98\x7e\x85\x03\x04\x51\x85\x51\x3f\x5e\x2f\xb4\x13\xed\x2e\xfb\x49\x05\xd7\x15\xef\x22\xab\xa4\x59\xe1\x7e\x32\x14\x52\x36\xe6\xe2\x38\x5c\x8b\x10\x48\xe9\xf0\x47\x5d\x8e\x9a\xb6\xa5\xd0\x2d\x9a\x55\x8d\xd9\x23\x72\x9a\x0e\xd6\x35\x93\xe9\x1b\xbd\x7d\x07\xff\x45\xf4\x81\x7b\x93\x36\x5f\x5d\x35\x04\x83\x11\xe2\x85\xcd\x08\xf0\x88\xd6\x97\xb8\x5a\xa9\xee\x5d\x54\x1c\x85\xdc\x03\x6f\x52\x1b\x2d\x1e\xf1\xca\x46\x88\x73\x74\x49\xa6\x38\x08\xc7\x28\x9b\xd0\xa7\x94\xcf\x5a\x81\x58\x4e\x48\xbb\x0e\x48\x4e\x75\xf8\x15\xab\xc6\x83\x3b\x46\x5e\x33\xd9\x37\x94\x97\x32\xc5\xe8\x8e\x78\xb7\xae\xb0\x8d\x6e\xf0\x9a\x7e\xf3\x19\x74\xd3\x29\x1d\xae\x44\x5d\x15\x06\x2f\x63\x97\x95\xc8\x05\x66\x14\x75\x86\x5d\xa2\x59\xf7\x91\xb3\x36\x1b\x31\x2e\x23\xe9\x35\xf6\x54\x90\xdc\xc1\x39\x11\x98\xb4\x29\xee\x82\xc3\xfc\x59\xc2\x32\x2d\x01\xbb\xc3\xe0\xfc\x5d\xc7\xd7\x2d\x5f\xa1\xd8\xcc\xd8\x39\xc4\xc8\xe3\x5d\x98\x47\xce\xa9\x58\x12\x16\x5d\xd1\xbb\x20\xf0\x69\xf7\xaf\x5a\xd0\x67\x55\x3a\x82\xa4\x3b\xea\xd8\x57\xc6\x12\x04\xf0\xc2\x90\x4f\x0b\x52\xd0\x9b\xb0\x39\x5c\xa9\xab\x26\x39\x34\x6a\x61\x96\xde\x05\x6c\xb9\x07\x22\x4a\x35\xac\x49\x9a\x87\x1a\xb6\xe0\x57\x36\xb4\xd9\x20\x07\x1c\xf4\x8d\x0b\x8f\x38\x8e\xe6\x6c\x24\x48\x7b\x00\xd4\xdb\xab\x7a\xd4\xbc\x7a\x10\x72\x75\x6d\xcb\xcb\xca\x48\xc7\x46\xfd\x38\x90\x9e\xeb\x30\xaf\x86\xff\x62\xae\x73\xa5\x17\x4c\x93\x70\x56\x80\xa8\x6f\x60\xcd\xae\x73\xd3\xd1\xd5\x9c\x43\x81\xcd\x39\x83\x18\x93\x5b\x40\x7b\x3c\x4a\xea\x2c\x6f\xc3\x12\xf6\xfd\xd7\xc5\xa3\xc4\x7e\x05\x1f\x87\xd0\xef\xb7\x2c\xfa\xdb\x24\xec\xe6\xb4\x9d\xc2\xd1\xd3\x75\x18\x3f\x46\xf7\xdc\x84\xb7\x7c\xcf\x4f\xf3\xa4\xc3\xb5\xf2\x0f\x89\xb7\xbf\xda\x6e\xc2\x62\x93\x5b\xf5\xfa\x49\x61\x93\xa8\x7c\x67\x65\x01\x7c\xcd\x10\x7d\x3c\xc4\x93\x1b\x35\xfa\xe0\x2d\xa0\xb6\x34\x73\xed\x79\x85\x4d\x89\x1a\xb5\xdc\x0c\xd7\x76\xcf\xf1\x4e\xe5\x18\xed\xe6\x44\x85\x45\xe9\x1c\x6e\x16\xb5\x73\x41\x26\x1a\x1f\xb3\xd5\xd2\xd9\xb6\x27\x37\x71\xa3\xd8\x48\xbe\x61\x4d\x6e\x76\x9a\x88\x3d\x0c\x45\x67\x41\x98\x40\x79\x70\x06\xf0\x8d\x46\x6a\x4a\xa5\xb5\x6c\xa1\xa9\x21\x7b\x3c\x43\xf1\xab\xc5\x8a\x94\xcf\x9e\x16\xe2\x0f\xf9\x27\x89\xf6\x98\xf3\x70\xd1\x24\x84\x56\xb3\x14\x38\xb8\x80\x49\x6a\x33\x49\x3f\x49\x1e\x6f\xca\xd0\x03\x22\xfb\xbb\xd9\x27\x49\x3d\x35\xef\x54\x6f\x79\xea\x29\x73\xb0\xc7\x4e\x91\xa1\xdf\x2a\xe6\x00\x1e\xf5\x22\xf2\x6d\x26\x01\xfa\xff\x5d\x16\xc1\x5b\x74\x23\xba\x6c\x2c\x97\x77\x3a\x18\x18\x3a\xeb\x75\x9a\x67\x00\x2d\x2b\xe1\x5a\x11\x3c\x57\x47\xe3\xa0\xc2\x3e\xee\xcf\xd7\xba\x2d\xea\x1c\x2a\x47\x51\x69\xe9\x75\xab\x37\xc6\xe9\x6d\xf6\x41\x45\xad\xee\xad\xc3\x1f\x9f\x26\x93\x70\x3a\xd0\x93\xd4\x75\x46\x94\x4d\x4e\xe7\x7b\xb2\x6d\xd6\x6b\x3c\x99\xa8\x28\x0e\x4b\xac\x2b\x3a\xce\xb0\x77\x2a\xe5\x3c\xc4\x57\xc9\x32\x77\xfb\xce\xc6\xee\xd6\x86\x81\x48\xb9\xbf\x31\xe4\x3e\x96\x9c\x73\xc3\x02\x9e\x62\x18\xcf\x4c\x94\xc2\xfc\xb0\x40\x62\xd7\x40\x09\xcb\x07\x3c\x61\x44\xf0\x16\x3a\x5d\xa4\x78\x36\x70\xba\x46\xc5\xc5\xaf\x69\x3c\xc2\x03\x57\x24\x07\x26\x92\x6e\x88\x22\x18\xb9\xcf\x82\xab\x19\x06\x73\x4b\xff\x9a\x8a\x13\xf3\xf6\x92\xb3\xac\x0a\xd6\xb5\x76\x1b\x74\x30\x07\xc2\xd7\x4b\x2e\x09\x73\x52\x15\x55\x4e\x8a\x2c\xca\x6c\x6a\x63\xf4\xf5\x65\xa4\xaa\xc9\x01\xda\xbc\xe1\x22\xe4\x1b\x61\xd6\xfb\xb4\x8c\x1b\xd8\xa5\x7d\xcd\x26\xfe\xed\x1a\xfb\x8c\xab\x6f\xab\x2d\xd7\x46\xf0\x0b\x9f\x3c\x76\x76\xc9\x7b\xf6\x40\xe5\x53\x62\x17\xc7\x26\x3e\x15\x56\x01\xd0\xa6\x2d\x6c\x17\x97\xea\xc6\x12\xdd\x18\x32\xd3\x98\x93\x8f\x95\xf3\xee\xd6\x86\x63\xb6\x48\x3a\xc8\xba\xf0\xd9\xda\x99\x00\xa2\xb7\x94\xf7\xb5\x61\x02\x34\x5a\xf2\x5e\x95\x68\x4a\x7e\xa6\xc9\xcc\x1c\x8e\xb5\x5b\xc7\x72\xd1\xe4\xbc\x75\x61\xb2\x29\x8f\x0e\x71\x5a\x30\xe5\x8d\x0f\xae\x4d\x26\x84\x9f\x70\x81\xf6\xa9\x9c\x51\x56\x2f\xda\x67\xe3\x31\x80\xf4\x96\xae\xf4\x75\xb9\x23\x7a\x22\xbe\xfc\xb7\x74\xfc\xf7\x11\x1a\x7c\x8c\xd1\xc2\xf6\x1e\xa2\x6b\xf3\x4e\x3e\x39\x7a\x14\x0f\x44\x90\x0d\xed\xd8\xdb\x35\x8c\xab\xab\x70\x6b\xbb\xb6\xf0\x6e\x3d\x26\xf1\x4e\x32\x74\x3d\xa6\xf2\xe3\x60\xe0\xaa\x46\xf2\x4e\x32\x70\x75\xe3\xf9\x71\x30\x6f\x59\xb3\xb9\x29\x5e\x85\x77\x68\x54\xb4\x7c\xbc\xea\x71\xee\x33\xb9\xba\x5d\x2a\xca\x52\xa3\xc6\x27\x11\x77\x42\x72\x2c\x1b\x77\xea\x41\x91\x4f\x62\x5f\xad\xaf\x83\xad\x2f\x71\xe0\xd2\xfa\x02\x4e\x8f\x8f\x6f\xeb\xd9\x3e\x1f\x13\x9f\xd6\x11\x69\x7a\x7c\x7c\x5a\x7d\x97\x7c\x4c\x3c\x5a\x75\xaf\xfc\x94\xf6\x01\x8d\xcb\x82\xb5\xef\xfa\x1c\x4c\x86\xd8\x1c\x19\x9f\x7b\x85\x07\xc3\x20\x0f\xd3\x6b\x3a\xa5\x25\xa9\x69\x3f\xff\x2b\xca\x30\x2f\x17\xc9\xa2\xf6\xae\xa2\x1a\x48\xf8\x0e\x2a\x17\xff\x63\x24\x95\xa4\xf6\x63\x9f\xcb\xf8\x56\xd1\x19\x9a\xde\x0b\xa8\x3e\x02\x47\x29\x9c\x0e\x9f\xb6\xe9\x82\x9b\x33\xad\x95\x18\x3c\x5d\x19\x4a\x5a\x2d\x57\x8a\x16\xc8\x5a\x80\xc4\x8f\xb3\x49\x5c\x96\x78\x48\x48\x67\xae\x44\x76\x94\x9b\x38\x9d\xc1\x10\x98\x2b\x9e\x74\xa0\x27\xf2\x91\x00\x8b\x06\xc4\x0a\x27\xa0\x97\x46\x2f\x7a\xa4\x86\x5f\xdc\x64\x77\x34\xea\xbf\x66\x8a\x6b\x8a\x7a\x4d\x5b\x81\x1f\xba\xab\x78\x90\xa5\x5e\xd8\x6d\x5e\x24\x8c\x06\x7c\x83\x0d\xd4\x9a\x16\x04\x9d\x82\x4a\x77\x35\x33\xfd\x61\xf0\xd2\x2d\x84\xfe\x91\x89\x02\x88\xa5\x51\x98\xc3\x8c\xe3\xb1\xc2\xba\xb8\xfc\xae\x47\x02\xfa\x69\x60\xa6\x74\x17\x88\x5c\xca\xa8\xe0\xfd\x3a\x4c\xe3\xe9\x2c\x41\xcb\xa2\x17\xf6\xa0\x18\xc0\x87\x58\xb8\x88\x45\xaa\xee\xfe\x97\x86\x76\xfb\xd5\x79\x73\xb8\x75\xf5\xb4\xe3\xc5\xd0\xe8\x7b\x1c\x4d\x98\xea\x71\x8f\x82\x6f\x65\xb0\xae\xe0\xe6\x96\x90\x35\xc9\x00\x97\x74\xc4\x7d\xe7\xd5\xee\x70\xee\xf8\xd2\xfc\x43\xae\x2f\x18\x7a\x2f\x8d\xf8\x22\x94\x4e\x1c\x88\x14\x83\x6a\x8e\xcc\xe3\xb2\xda\x37\x98\xc9\x61\x33\x04\x34\x39\x1e\x9c\x18\x5b\x12\xff\x4d\x0b\x9a\x41\xc3\xda\xb4\x8f\x52\xf6\xb6\x4c\xee\x87\x13\xf5\x06\x86\x74\x4a\xff\xef\x4f\x22\x35\x4a\xc2\x1c\xef\x7a\x45\xb3\x44\x05\x7b\xdc\xf6\x76\x2f\xf8\x95\x46\x05\x73\x24\x83\x2d\xfc\xaf\xc1\x9f\xdc\x77\x6f\x43\x6d\x3e\xea\x91\x2e\xb0\x02\xe4\xe8\xb9\xf7\xc6\x9f\xaa\x0f\xff\xff\x00\x00\x00\xff\xff\xa3\x3d\x8d\x7a\x4a\x45\x02\x00") + +func uiTsTypingsJqueryJqueryDTsBytes() ([]byte, error) { + return bindataRead( + _uiTsTypingsJqueryJqueryDTs, + "ui/ts/typings/jquery/jquery.d.ts", + ) +} + +func uiTsTypingsJqueryJqueryDTs() (*asset, error) { + bytes, err := uiTsTypingsJqueryJqueryDTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/typings/jquery/jquery.d.ts", size: 148810, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTypingsMithriljsMithrilDTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x58\x5b\x4f\xdb\xc8\x17\x7f\x0e\x9f\x62\xd4\x27\x47\x8a\x42\xf5\x7f\x74\xda\x44\x55\xa1\xe2\xbf\x2a\xd0\x25\x09\x5b\x09\xa1\xd5\xc4\x3e\x49\xbc\xd8\x1e\xef\xcc\x38\x21\x5b\xf8\xee\x7b\xe6\xe6\x4b\x6c\x07\xc2\x0a\x04\xd8\x9e\x99\x73\xbf\xfd\xec\xd3\xd3\xcb\x48\xae\x79\x14\x93\x8f\xc3\xff\x0d\x3f\x12\xb9\xcb\x80\x84\xb0\x8c\xd2\x48\x46\x2c\x15\x64\xc9\x38\x99\xe1\xa2\x08\x78\x94\xc9\x93\x10\x82\x98\x72\x20\x09\x0b\xf3\x18\xc8\x9f\x89\xa5\xfe\x75\xd2\x8b\x52\x09\x7c\x49\x03\x20\x96\xe5\x54\x52\x19\x05\xb8\x75\xd2\xeb\x7d\x9a\x11\x78\x94\x90\x86\xc2\xed\x7e\x65\xa9\xe4\x2c\x8e\x81\x8f\x3d\x01\x31\x04\x92\x71\x9f\x08\xc9\xa3\x74\x35\x20\x54\xe2\xcd\x22\x97\x20\x7c\x47\xf0\xa5\x58\x1a\x90\xe1\x70\x18\xac\xa3\x38\xe4\x90\xfa\xe4\x0b\xe7\x74\xf7\xc9\x50\x3e\xd9\xc3\xb7\x11\x97\x39\x8d\xcf\x63\x48\x20\x95\x4f\x85\xcc\x24\x63\x29\x2e\x7c\x9a\x8d\xc7\xfd\x82\x73\xfd\xf0\xe8\x0d\xea\xbe\xaf\x3e\xa8\x50\xc6\x59\x86\x87\x3c\xbc\x26\x91\x80\xe2\xe8\x0f\xf3\x8c\x5b\x7d\xb2\xbf\x88\x97\x0c\xb8\xdc\xe1\xe6\xa8\xc2\x62\x43\xe3\x1c\x19\xcc\xfa\xd5\xf3\xfb\x07\xbd\x96\xdd\xeb\xc5\x5f\x68\xf6\x78\x44\x4e\x4f\x49\x12\xad\xd6\x92\x2c\x80\xc8\x35\x95\xf8\x2f\x12\x44\xac\x59\x1e\x87\x6a\xad\xa0\xa0\xe9\x6e\xac\xb4\xdf\x22\x27\x15\x3e\xa5\xbe\xde\x29\x3d\x17\xd0\x38\x5e\xd0\xe0\xc1\x27\x4e\x31\x24\xea\x93\xcf\x63\xb2\x61\x51\x88\x5a\x78\xa5\xb1\xe7\x1b\x74\x87\xde\xc3\x33\xda\x2d\x26\x0d\x0f\x47\x8b\x33\x26\xad\x2b\x7d\x72\xc5\x42\x40\xa1\xce\xef\x3e\x69\x89\x04\x0a\x9d\x8d\xde\xca\xbc\x24\xce\x15\xb3\x77\x52\xec\x78\xde\x86\x16\x89\x83\x92\x61\x37\x83\x01\x99\x51\xbe\x1a\x7b\x15\x7d\x7e\x50\x4e\x13\xc0\x12\x8f\xfe\x81\xb0\xa9\x9c\xa5\x18\x90\xc7\x89\xaf\xee\xfa\xad\x16\xa0\x7c\xfc\x95\x3c\x17\xd2\x5b\xcb\x24\x76\x79\xd0\x77\x37\x5a\x45\xac\xa2\x10\x78\xdd\x06\x57\x39\x17\xb3\xcb\xef\x67\x2c\xc8\xd5\x03\x52\xa9\x24\x19\x1d\x41\x82\x2e\x2e\xea\xb4\xb5\xda\x06\xaa\xe3\x05\x70\x03\x01\x07\xaa\x5a\xe0\xc4\x27\x0b\xc6\x62\xa0\xe9\x7b\x88\xbb\xbb\x7f\x8d\x40\x2d\x31\xe4\x74\xeb\xab\x46\xdb\xeb\x79\x9a\xa4\x55\xb3\x1e\xfa\x91\x4a\x58\xed\x9a\xf5\x6b\x3c\xac\x4b\xfc\x59\xb3\x64\xd8\x4c\x2d\xc7\x23\xb2\xa9\x6e\x1f\xce\x0a\x9a\xc7\xf2\xc6\xf0\x72\x55\xad\x59\x97\xad\x5b\xef\x0a\x93\xc1\x85\xa2\x47\x88\x2c\x62\xf3\x46\x69\xda\x67\xd0\xe0\x16\x89\xff\xab\x31\x47\x63\x95\xd2\x85\x33\x55\x15\xe2\x28\x7b\xc4\x93\xa6\xe3\x0d\xc8\x26\x64\x89\x7b\xaa\x9a\xe0\x65\x54\xae\x4b\x3d\x32\x55\x22\x62\xa2\x5b\xd8\xc0\xf6\xc3\x1b\xc8\x62\x9c\x89\x17\x91\xc0\x81\xb1\x6b\x0f\x99\x57\x4f\xff\x9e\xe6\xe3\x3d\xc0\xae\xa5\x3c\x7a\xba\x2f\x41\x6d\x61\x91\x63\x8e\xfd\x9e\x03\xdf\x4d\xf5\xa2\x17\x52\x49\x2b\xfa\x9a\x55\xcb\x59\x40\xf3\xe4\xd4\x49\x31\x24\x45\x82\xc0\xdf\x39\x08\x55\xb7\x1e\xcb\x34\x1c\x28\x7c\xfc\xf3\xe2\xe6\xda\x2c\xf5\x5b\x66\x91\x36\x03\x63\x05\x9c\x2b\xc7\xea\x0c\xc3\x16\xc0\x39\xe3\xaa\x9d\x9f\xab\x9b\x7a\x2a\x8c\x2b\x03\xe7\xcc\x12\xda\x71\xa4\x55\x11\xbb\x34\xa8\xcc\x3f\xd1\x22\xf4\xee\xbe\x45\x95\xbb\x7b\xa3\x8c\x90\x94\x4b\xd5\x89\x72\xa9\x8b\xcc\xab\x88\xc7\x14\x6c\xdd\xc1\x2d\x9c\x74\xdf\x10\x00\x61\x3a\x49\x22\xf2\x48\x82\xb6\x2b\x13\xae\x0e\x13\x16\x3c\xfc\x11\xa5\x21\xc3\xca\x34\xd7\xbe\xbb\xd1\x86\x21\x1c\x52\x61\x77\x8e\x75\xe6\xa8\xbf\x06\x5c\xaa\x37\x06\x2d\x00\x53\x00\x33\x26\xcd\x93\x05\x70\x45\x2b\xe9\x6a\x52\x8d\xbc\x42\x49\x2a\xdf\x1a\x08\x49\x6d\xba\xce\x63\xf2\xf1\xee\x7e\x64\xe4\xa2\x49\x58\x67\xcb\x68\x95\x73\x6d\x2f\x59\xe6\x69\x60\x6e\xd0\x52\x9a\x12\x5b\x27\x2d\x1a\x5a\xd5\x0c\xb9\x56\xf0\xf8\xa2\x72\xd5\xa1\x4a\x6a\xd2\xd1\x14\xcb\xd8\x58\x85\x4b\xc3\x08\xea\x49\xc9\xc6\x1c\x3f\xa0\x6a\x85\x42\xe9\x29\x23\x19\x43\xcd\x75\x08\x63\x85\xb8\xc2\x89\xd6\x5c\xad\xaf\x68\x63\x4b\x4d\x6b\x3e\x28\x35\x3c\x53\x90\x19\x85\xc9\x35\x60\xa2\x2c\x04\x48\xc2\x96\x44\x03\x16\x03\x91\x1c\xcc\x4e\x01\x42\xd1\xe6\xdb\x8d\x0b\x7a\x90\x63\xf2\xa7\x52\x0d\x51\x28\x1d\x3b\xea\xc8\x9a\xb2\x67\x6a\x62\x96\xe6\x69\xcc\x68\x38\xf1\x60\xa3\x88\x37\xc6\x9d\x1a\x2f\xbd\xc4\xe0\x9b\x4b\x84\xce\xb6\x6c\x62\x7e\x98\xdf\x6d\x04\xdb\x83\xad\xdd\x30\x09\x24\x8f\x0d\x08\x3d\x04\x94\xbb\x95\x7e\x05\x88\x31\x92\x82\xe2\xd9\xef\x36\xf9\xe9\x17\x06\x66\xab\x2c\x9b\x91\x67\x15\xf6\x0d\x5a\xe1\xd7\x4d\x1a\x37\x94\x79\x01\x12\xbd\x08\xaf\x50\x3f\x62\x7f\xaa\x5a\x7a\x0e\x42\x7d\x1e\xcf\x5e\xab\x4a\x13\xc9\x17\xb1\xd2\x90\xb1\x8a\xfa\xf5\x82\x64\xbf\x4d\xaf\xaf\xdc\x7e\x17\xb3\xbd\xd7\x88\x7d\x8b\xca\xe6\xfb\xdf\xa5\xb9\xa9\xfd\x52\x3c\xef\x2a\x73\xf1\xbe\x15\x64\x1a\x09\x2d\x22\x2a\x83\x45\xb3\xe2\x20\x58\xbc\x01\xa3\xed\xc4\xa8\x5b\x22\x3c\xd5\xb0\x8b\x2d\xf5\x52\x52\x6e\x76\xbf\x85\x75\x59\x37\xcd\x83\x00\x84\xf8\x6a\xdf\x76\x14\x5e\x9e\x5b\xa7\x55\x7c\x35\xdf\x77\xde\x1e\xff\x79\x27\x7f\x3d\x52\x0b\xee\x7b\xac\xdd\xbc\xad\xb1\x2f\x90\xc5\xfc\x85\xf8\xbf\x22\xba\x6b\x48\x51\xa6\x27\x8c\x91\xe5\xab\xdc\x4c\xbf\xac\xcd\x3b\x0c\x79\x2f\xba\x06\xcd\x41\x3e\xb7\x25\x1f\x15\xde\x01\xd1\x30\xa5\xe4\x69\x9c\xa7\xf8\xde\xb6\x43\x1d\xa7\xcf\xe0\xb6\xdb\x92\xe3\xb8\xce\x5f\xc7\xb5\x41\xf5\x06\x29\xcf\x2d\x71\x2f\xb1\x9d\x8e\x3b\x76\xb8\x35\x0b\x6b\x43\x31\xe7\x71\xed\x51\x00\xaf\xed\x67\x38\x45\xb7\x8c\xd7\x89\x14\xd4\x9c\xb8\xd1\xd1\x53\x79\xba\x42\xe0\x9e\x86\x25\x26\xd6\xbc\xd2\x2d\xa7\x99\x2d\x97\x89\xc5\xa7\xa6\xfa\x2c\xa5\x39\xa1\x4d\x6b\xdd\x47\x65\x0c\xfa\x30\xbb\x33\x36\x75\x0b\xee\x60\x45\x27\x68\x9c\x3e\x2b\x97\x2a\x45\x62\x79\x63\x6f\xe2\x08\xe9\x26\xde\xe3\x1a\xdd\xfc\xf3\xf2\xfb\x85\x94\xd9\x8d\x81\xc9\x03\x72\x10\x24\x97\x42\xd5\x37\xb6\xc9\x3e\x46\x77\xad\xc5\xe2\x8d\x37\x08\xa8\x1f\x76\x1e\x57\xdf\xee\xaa\x61\x78\x3e\xc1\x5a\x77\x5f\xf1\x36\x94\x3b\x56\x7e\xf1\x2d\x6f\x58\xfb\x7c\x37\xaa\x1d\x4e\xba\x8f\xed\x7f\x1a\xfc\x60\xcf\x7d\xb0\x53\x0e\x1e\x33\xc6\x25\xf9\x4c\x92\x11\xaa\xf0\x6f\x00\x00\x00\xff\xff\x3a\xb5\x30\x94\x78\x14\x00\x00") + +func uiTsTypingsMithriljsMithrilDTsBytes() ([]byte, error) { + return bindataRead( + _uiTsTypingsMithriljsMithrilDTs, + "ui/ts/typings/mithriljs/mithril.d.ts", + ) +} + +func uiTsTypingsMithriljsMithrilDTs() (*asset, error) { + bytes, err := uiTsTypingsMithriljsMithrilDTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/typings/mithriljs/mithril.d.ts", size: 5240, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +// Asset loads and returns the asset for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func Asset(name string) ([]byte, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) + } + return a.bytes, nil + } + return nil, fmt.Errorf("Asset %s not found", name) +} + +// MustAsset is like Asset but panics when Asset would return an error. +// It simplifies safe initialization of global variables. +func MustAsset(name string) []byte { + a, err := Asset(name) + if err != nil { + panic("asset: Asset(" + name + "): " + err.Error()) + } + + return a +} + +// AssetInfo loads and returns the asset info for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func AssetInfo(name string) (os.FileInfo, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) + } + return a.info, nil + } + return nil, fmt.Errorf("AssetInfo %s not found", name) +} + +// AssetNames returns the names of the assets. +func AssetNames() []string { + names := make([]string, 0, len(_bindata)) + for name := range _bindata { + names = append(names, name) + } + return names +} + +// _bindata is a table, holding each asset generator, mapped to its name. +var _bindata = map[string]func() (*asset, error){ + "ui/css/app.css": uiCssAppCss, + "ui/css/graph.css": uiCssGraphCss, + "ui/css/libs/nvd3/1.7.1/nv.d3.min.css": uiCssLibsNvd3171NvD3MinCss, + "ui/css/rest_explorer.css": uiCssRest_explorerCss, + "ui/index.html": uiIndexHtml, + "ui/js/app.js": uiJsAppJs, + "ui/js/libs/d3/3.3.5/d3.min.js": uiJsLibsD3335D3MinJs, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js": uiJsLibsMithriljs020MithrilMinJs, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js.map": uiJsLibsMithriljs020MithrilMinJsMap, + "ui/js/libs/nvd3/1.7.1/nv.d3.min.js": uiJsLibsNvd3171NvD3MinJs, + "ui/ts/app.ts": uiTsAppTs, + "ui/ts/components/metrics.ts": uiTsComponentsMetricsTs, + "ui/ts/header.ts": uiTsHeaderTs, + "ui/ts/models/node_status.ts": uiTsModelsNode_statusTs, + "ui/ts/models/stats.ts": uiTsModelsStatsTs, + "ui/ts/models/store_status.ts": uiTsModelsStore_statusTs, + "ui/ts/models/timeseries.ts": uiTsModelsTimeseriesTs, + "ui/ts/pages/graph.ts": uiTsPagesGraphTs, + "ui/ts/pages/monitor.ts": uiTsPagesMonitorTs, + "ui/ts/pages/nodes.ts": uiTsPagesNodesTs, + "ui/ts/pages/rest_explorer.ts": uiTsPagesRest_explorerTs, + "ui/ts/pages/stores.ts": uiTsPagesStoresTs, + "ui/ts/tsconfig.json": uiTsTsconfigJson, + "ui/ts/typings/d3/d3.d.ts": uiTsTypingsD3D3DTs, + "ui/ts/typings/jquery/jquery.d.ts": uiTsTypingsJqueryJqueryDTs, + "ui/ts/typings/mithriljs/mithril.d.ts": uiTsTypingsMithriljsMithrilDTs, +} + +// AssetDir returns the file names below a certain +// directory embedded in the file by go-bindata. +// For example if you run go-bindata on data/... and data contains the +// following hierarchy: +// data/ +// foo.txt +// img/ +// a.png +// b.png +// then AssetDir("data") would return []string{"foo.txt", "img"} +// AssetDir("data/img") would return []string{"a.png", "b.png"} +// AssetDir("foo.txt") and AssetDir("notexist") would return an error +// AssetDir("") will return []string{"data"}. +func AssetDir(name string) ([]string, error) { + node := _bintree + if len(name) != 0 { + cannonicalName := strings.Replace(name, "\\", "/", -1) + pathList := strings.Split(cannonicalName, "/") + for _, p := range pathList { + node = node.Children[p] + if node == nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + } + } + if node.Func != nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + rv := make([]string, 0, len(node.Children)) + for childName := range node.Children { + rv = append(rv, childName) + } + return rv, nil +} + +type bintree struct { + Func func() (*asset, error) + Children map[string]*bintree +} + +var _bintree = &bintree{nil, map[string]*bintree{ + "ui": {nil, map[string]*bintree{ + "css": {nil, map[string]*bintree{ + "app.css": {uiCssAppCss, map[string]*bintree{}}, + "graph.css": {uiCssGraphCss, map[string]*bintree{}}, + "libs": {nil, map[string]*bintree{ + "nvd3": {nil, map[string]*bintree{ + "1.7.1": {nil, map[string]*bintree{ + "nv.d3.min.css": {uiCssLibsNvd3171NvD3MinCss, map[string]*bintree{}}, + }}, + }}, + }}, + "rest_explorer.css": {uiCssRest_explorerCss, map[string]*bintree{}}, + }}, + "index.html": {uiIndexHtml, map[string]*bintree{}}, + "js": {nil, map[string]*bintree{ + "app.js": {uiJsAppJs, map[string]*bintree{}}, + "libs": {nil, map[string]*bintree{ + "d3": {nil, map[string]*bintree{ + "3.3.5": {nil, map[string]*bintree{ + "d3.min.js": {uiJsLibsD3335D3MinJs, map[string]*bintree{}}, + }}, + }}, + "mithriljs": {nil, map[string]*bintree{ + "0.2.0": {nil, map[string]*bintree{ + "mithril.min.js": {uiJsLibsMithriljs020MithrilMinJs, map[string]*bintree{}}, + "mithril.min.js.map": {uiJsLibsMithriljs020MithrilMinJsMap, map[string]*bintree{}}, + }}, + }}, + "nvd3": {nil, map[string]*bintree{ + "1.7.1": {nil, map[string]*bintree{ + "nv.d3.min.js": {uiJsLibsNvd3171NvD3MinJs, map[string]*bintree{}}, + }}, + }}, + }}, + }}, + "ts": {nil, map[string]*bintree{ + "app.ts": {uiTsAppTs, map[string]*bintree{}}, + "components": {nil, map[string]*bintree{ + "metrics.ts": {uiTsComponentsMetricsTs, map[string]*bintree{}}, + }}, + "header.ts": {uiTsHeaderTs, map[string]*bintree{}}, + "models": {nil, map[string]*bintree{ + "node_status.ts": {uiTsModelsNode_statusTs, map[string]*bintree{}}, + "stats.ts": {uiTsModelsStatsTs, map[string]*bintree{}}, + "store_status.ts": {uiTsModelsStore_statusTs, map[string]*bintree{}}, + "timeseries.ts": {uiTsModelsTimeseriesTs, map[string]*bintree{}}, + }}, + "pages": {nil, map[string]*bintree{ + "graph.ts": {uiTsPagesGraphTs, map[string]*bintree{}}, + "monitor.ts": {uiTsPagesMonitorTs, map[string]*bintree{}}, + "nodes.ts": {uiTsPagesNodesTs, map[string]*bintree{}}, + "rest_explorer.ts": {uiTsPagesRest_explorerTs, map[string]*bintree{}}, + "stores.ts": {uiTsPagesStoresTs, map[string]*bintree{}}, + }}, + "tsconfig.json": {uiTsTsconfigJson, map[string]*bintree{}}, + "typings": {nil, map[string]*bintree{ + "d3": {nil, map[string]*bintree{ + "d3.d.ts": {uiTsTypingsD3D3DTs, map[string]*bintree{}}, + }}, + "jquery": {nil, map[string]*bintree{ + "jquery.d.ts": {uiTsTypingsJqueryJqueryDTs, map[string]*bintree{}}, + }}, + "mithriljs": {nil, map[string]*bintree{ + "mithril.d.ts": {uiTsTypingsMithriljsMithrilDTs, map[string]*bintree{}}, + }}, + }}, + }}, + }}, +}} + +// RestoreAsset restores an asset under the given directory +func RestoreAsset(dir, name string) error { + data, err := Asset(name) + if err != nil { + return err + } + info, err := AssetInfo(name) + if err != nil { + return err + } + err = os.MkdirAll(_filePath(dir, path.Dir(name)), os.FileMode(0755)) + if err != nil { + return err + } + err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) + if err != nil { + return err + } + err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) + if err != nil { + return err + } + return nil +} + +// RestoreAssets restores an asset under the given directory recursively +func RestoreAssets(dir, name string) error { + children, err := AssetDir(name) + // File + if err != nil { + return RestoreAsset(dir, name) + } + // Dir + for _, child := range children { + err = RestoreAssets(dir, path.Join(name, child)) + if err != nil { + return err + } + } + return nil +} + +func _filePath(dir, name string) string { + cannonicalName := strings.Replace(name, "\\", "/", -1) + return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) +} diff --git a/test/test_blob.rb b/test/test_blob.rb index a86a846b..72527fd2 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -217,6 +217,7 @@ class TestBlob < Minitest::Test assert sample_blob("Java/ProtocolBuffer.java").generated? assert sample_blob("Python/protocol_buffer_pb2.py").generated? assert sample_blob("Go/api.pb.go").generated? + assert sample_blob("Go/embedded.go").generated? # Apache Thrift generated code assert sample_blob("Python/gen-py-linguist-thrift.py").generated? From 8e550f7093050594481fdfa9c329677b7cefdde9 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 28 May 2015 19:23:36 +0200 Subject: [PATCH 495/875] 'Kbuild' is a common makefile name. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 57c6e8f1..f5382016 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1881,6 +1881,7 @@ Makefile: - .mk filenames: - GNUmakefile + - Kbuild - Makefile - makefile interpreters: From 21e249bd2c207e584fedd54618b2e3b5936883e9 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 29 May 2015 09:04:14 +0200 Subject: [PATCH 496/875] Add makefile sample. Kbuild by Sam Ravnborg; GPL 2 license. --- samples/Makefile/filenames/Kbuild | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 samples/Makefile/filenames/Kbuild diff --git a/samples/Makefile/filenames/Kbuild b/samples/Makefile/filenames/Kbuild new file mode 100644 index 00000000..dd295335 --- /dev/null +++ b/samples/Makefile/filenames/Kbuild @@ -0,0 +1,23 @@ +# Fail on warnings - also for files referenced in subdirs +# -Werror can be disabled for specific files using: +# CFLAGS_ := -Wno-error +subdir-ccflags-y := -Werror + +# platform specific definitions +include arch/mips/Kbuild.platforms +obj-y := $(platform-y) + +# make clean traverses $(obj-) without having included .config, so +# everything ends up here +obj- := $(platform-) + +# mips object files +# The object files are linked as core-y files would be linked + +obj-y += kernel/ +obj-y += mm/ +obj-y += net/ + +ifdef CONFIG_KVM +obj-y += kvm/ +endif From ec61a6974f2cce6b24ee14141911875d014ad9d7 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 30 May 2015 15:07:56 +0200 Subject: [PATCH 497/875] .al extension for Perl --- lib/linguist/languages.yml | 1 + samples/Perl/getchar.al | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 samples/Perl/getchar.al diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 57c6e8f1..759e3273 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2439,6 +2439,7 @@ Perl: color: "#0298c3" extensions: - .pl + - .al - .cgi - .fcgi - .perl diff --git a/samples/Perl/getchar.al b/samples/Perl/getchar.al new file mode 100644 index 00000000..ecd06589 --- /dev/null +++ b/samples/Perl/getchar.al @@ -0,0 +1,13 @@ +# NOTE: Derived from ../../lib/POSIX.pm. +# Changes made here will be lost when autosplit is run again. +# See AutoSplit.pm. +package POSIX; + +#line 318 "../../lib/POSIX.pm (autosplit into ../../lib/auto/POSIX/getchar.al)" +sub getchar { + usage "getchar()" if @_ != 0; + CORE::getc(STDIN); +} + +# end of POSIX::getchar +1; From 2806987f2f83575912273fbe483d607c9aac6a10 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Mon, 1 Jun 2015 22:19:45 -0700 Subject: [PATCH 498/875] .qbs extension for QML. --- lib/linguist/languages.yml | 1 + samples/QML/common.qbs | 155 +++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 samples/QML/common.qbs diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0ceb87d3..ba5c0103 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2652,6 +2652,7 @@ QML: color: "#44a51c" extensions: - .qml + - .qbs tm_scope: source.qml ace_mode: text diff --git a/samples/QML/common.qbs b/samples/QML/common.qbs new file mode 100644 index 00000000..ebf60a0b --- /dev/null +++ b/samples/QML/common.qbs @@ -0,0 +1,155 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** This file is part of the Qt Build Suite. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import qbs 1.0 +import qbs.FileInfo +import qbs.ModUtils + +Module { + property string buildVariant: "debug" + property bool enableDebugCode: buildVariant == "debug" + property bool debugInformation: (buildVariant == "debug") + property string optimization: (buildVariant == "debug" ? "none" : "fast") + readonly property stringList hostOS: undefined // set internally + property string hostOSVersion: { + if (hostOS && hostOS.contains("osx")) { + return getNativeSetting("/System/Library/CoreServices/ServerVersion.plist", "ProductVersion") || + getNativeSetting("/System/Library/CoreServices/SystemVersion.plist", "ProductVersion"); + } else if (hostOS && hostOS.contains("windows")) { + var version = getNativeSetting("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion", "CurrentVersion"); + return version + "." + hostOSBuildVersion; + } + } + + property string hostOSBuildVersion: { + if (hostOS.contains("osx")) { + return getNativeSetting("/System/Library/CoreServices/ServerVersion.plist", "ProductBuildVersion") || + getNativeSetting("/System/Library/CoreServices/SystemVersion.plist", "ProductBuildVersion"); + } else if (hostOS.contains("windows")) { + return getNativeSetting("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion", "CurrentBuildNumber"); + } + } + + readonly property var hostOSVersionParts: hostOSVersion ? hostOSVersion.split('.').map(function(item) { return parseInt(item, 10); }) : [] + readonly property int hostOSVersionMajor: hostOSVersionParts[0] || 0 + readonly property int hostOSVersionMinor: hostOSVersionParts[1] || 0 + readonly property int hostOSVersionPatch: hostOSVersionParts[2] || 0 + + property stringList targetOS: hostOS + property string pathListSeparator: hostOS.contains("windows") ? ";" : ":" + property string pathSeparator: hostOS.contains("windows") ? "\\" : "/" + property string profile + property stringList toolchain + property string architecture + property bool install: false + property string installSourceBase + readonly property string installRoot: undefined + property string installDir + property string installPrefix: "" + property path sysroot + + PropertyOptions { + name: "buildVariant" + allowedValues: ['debug', 'release'] + description: "name of the build variant" + } + + PropertyOptions { + name: "optimization" + allowedValues: ['none', 'fast', 'small'] + description: "optimization level" + } + + validate: { + var validator = new ModUtils.PropertyValidator("qbs"); + validator.setRequiredProperty("architecture", architecture, + "you might want to re-run 'qbs-setup-toolchains'"); + validator.setRequiredProperty("hostOS", hostOS); + validator.setRequiredProperty("targetOS", targetOS); + if (hostOS && (hostOS.contains("windows") || hostOS.contains("osx"))) { + validator.setRequiredProperty("hostOSVersion", hostOSVersion, + "could not detect host operating system version; " + + "verify that system files and registry keys have not " + + "been modified."); + if (hostOSVersion) + validator.addVersionValidator("hostOSVersion", hostOSVersion, 2, 4); + + validator.setRequiredProperty("hostOSBuildVersion", hostOSBuildVersion, + "could not detect host operating system build version; " + + "verify that system files or registry have not been " + + "tampered with."); + } + + validator.addCustomValidator("architecture", architecture, function (value) { + return architecture === canonicalArchitecture(architecture); + }, "'" + architecture + "' is invalid. You must use the canonical name '" + + canonicalArchitecture(architecture) + "'"); + + validator.validate(); + } + + // private properties + property var commonRunEnvironment: { + var env = {}; + if (targetOS.contains("windows")) { + env["PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix) + ]; + } else if (hostOS.contains("darwin") && targetOS.contains("darwin")) { + env["DYLD_FRAMEWORK_PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix, "Library", "Frameworks"), + FileInfo.joinPaths(installRoot, installPrefix, "lib"), + FileInfo.joinPaths(installRoot, installPrefix) + ].join(pathListSeparator); + + env["DYLD_LIBRARY_PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix, "lib"), + FileInfo.joinPaths(installRoot, installPrefix, "Library", "Frameworks"), + FileInfo.joinPaths(installRoot, installPrefix) + ].join(pathListSeparator); + + if (targetOS.contains("ios-simulator") && sysroot) { + env["DYLD_ROOT_PATH"] = [sysroot]; + } + } else if (hostOS.contains("unix") && targetOS.contains("unix")) { + env["LD_LIBRARY_PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix, "lib") + ]; + } + + return env; + } + + // internal properties + readonly property string version: [versionMajor, versionMinor, versionPatch].join(".") + readonly property int versionMajor: undefined // set internally + readonly property int versionMinor: undefined // set internally + readonly property int versionPatch: undefined // set internally +} From 0737a21e386e0889efe6ee4349a41b6a0db4a1bb Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Thu, 4 Jun 2015 21:37:58 -0500 Subject: [PATCH 499/875] XPages added as programming language XPages design element extensions and NSF-based design elements (Form, View) extensions added (all readable when marked up using XML settings for ACE); .jss (Domino SSJS) already aliased under JavaScript --- lib/linguist/languages.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ba5c0103..f9a038ff 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3536,6 +3536,16 @@ XML: - Web.config - packages.config +XPages: + type: programming + extensions: + - .xsp + - .xsp-config + - .xsp-metadata + - .form + - .view + ace_mode: xml + XProc: type: programming extensions: From 5ac1e847a5cf98b706213feb11499214678bf8be Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Thu, 4 Jun 2015 22:09:49 -0500 Subject: [PATCH 500/875] samples added for XPages design elements (.xsp) and affiliated NSF-based elements (.form, .view) - demoServerRESTconsumption, src: https://gist.github.com/edm00se/15249dba8ff3fea38312, license: Creative Commons 3.0 - house.form, houses.view, house.xsp, src: https://github.com/edm00se/AnAppOfIceAndFire, license: Creative Commons 3.0 - UnpMainxsp, src: https://github.com/teamstudio/xcontrols-domino/blob/master/sampler-app/XPages/UnpMain.xsp, license: Apache v2.0 - xLogin.xsp, src: http://openntf.org/XSnippets.nsf/snippet.xsp?id=xpages-form-login-with-session-variable, license: Apache 2.0 --- samples/XPages/UnpMain.xsp | 83 +++++++++ samples/XPages/demoServerRESTconsumption.xsp | 64 +++++++ samples/XPages/house.form | 65 +++++++ samples/XPages/house.xsp | 176 +++++++++++++++++++ samples/XPages/houses.view | 54 ++++++ samples/XPages/xLogin.xsp | 38 ++++ 6 files changed, 480 insertions(+) create mode 100644 samples/XPages/UnpMain.xsp create mode 100644 samples/XPages/demoServerRESTconsumption.xsp create mode 100644 samples/XPages/house.form create mode 100644 samples/XPages/house.xsp create mode 100644 samples/XPages/houses.view create mode 100644 samples/XPages/xLogin.xsp diff --git a/samples/XPages/UnpMain.xsp b/samples/XPages/UnpMain.xsp new file mode 100644 index 00000000..e0eb6438 --- /dev/null +++ b/samples/XPages/UnpMain.xsp @@ -0,0 +1,83 @@ + + + +
+
+ + +
+ + + +
+
+
+
+

+ Closed sales by team member - $000s + (December) +

+
+
+
+
+
+ +
+ +
+ +
+
+
+
+ + + + + +
\ No newline at end of file diff --git a/samples/XPages/demoServerRESTconsumption.xsp b/samples/XPages/demoServerRESTconsumption.xsp new file mode 100644 index 00000000..3334c777 --- /dev/null +++ b/samples/XPages/demoServerRESTconsumption.xsp @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/XPages/house.form b/samples/XPages/house.form new file mode 100644 index 00000000..7c47b41c --- /dev/null +++ b/samples/XPages/house.form @@ -0,0 +1,65 @@ + +
+ +20141225T155631,49-06 +20150306T091952,06-08 +20150306T091952,05-08 +20150306T091952,06-08 +20150305T162153,26-08 +CN=Eric McCormick/O=Eric McCormick +CN=Eric McCormick/O=Eric McCormick + + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + +house
diff --git a/samples/XPages/house.xsp b/samples/XPages/house.xsp new file mode 100644 index 00000000..3c5a6e13 --- /dev/null +++ b/samples/XPages/house.xsp @@ -0,0 +1,176 @@ + + + + + + + +
+
+
+
+

+ +

+
+
+ + + + +
+ + +
+
+ + + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/samples/XPages/houses.view b/samples/XPages/houses.view new file mode 100644 index 00000000..354c3aa0 --- /dev/null +++ b/samples/XPages/houses.view @@ -0,0 +1,54 @@ + + + +20141225T155658,43-06 +20150316T150218,60-07 +20150316T150218,59-07 +20150316T150218,60-07 +20150305T162151,76-08 +CN=Eric McCormick/O=Eric McCormick +CN=Eric McCormick/O=Eric McCormickSELECT Form = "house" + + + + + + + + + + + + + + + + + + + + + + + + +@Text(@DocumentUniqueID) diff --git a/samples/XPages/xLogin.xsp b/samples/XPages/xLogin.xsp new file mode 100644 index 00000000..50afc329 --- /dev/null +++ b/samples/XPages/xLogin.xsp @@ -0,0 +1,38 @@ + + + + + UserID + Login + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 402fa5c2cd3e19c6e07f0f15c1427cb10ee5a506 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Thu, 4 Jun 2015 22:51:55 -0500 Subject: [PATCH 501/875] added navbar.xsp, xsp-config, xsp.metadata for completeness of file extensions and corrected xsp.metadata extension in languages.yml --- lib/linguist/languages.yml | 2 +- samples/XPages/navbar.xsp | 53 ++++++++++++++++++++++++++++++ samples/XPages/navbar.xsp-config | 17 ++++++++++ samples/XPages/navbar.xsp.metadata | 22 +++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100755 samples/XPages/navbar.xsp create mode 100755 samples/XPages/navbar.xsp-config create mode 100755 samples/XPages/navbar.xsp.metadata diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f9a038ff..8a366f41 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3541,7 +3541,7 @@ XPages: extensions: - .xsp - .xsp-config - - .xsp-metadata + - .xsp.metadata - .form - .view ace_mode: xml diff --git a/samples/XPages/navbar.xsp b/samples/XPages/navbar.xsp new file mode 100755 index 00000000..c7a5669e --- /dev/null +++ b/samples/XPages/navbar.xsp @@ -0,0 +1,53 @@ + + + + \ No newline at end of file diff --git a/samples/XPages/navbar.xsp-config b/samples/XPages/navbar.xsp-config new file mode 100755 index 00000000..d32555bb --- /dev/null +++ b/samples/XPages/navbar.xsp-config @@ -0,0 +1,17 @@ + + + + http://www.ibm.com/xsp/custom + xc + + + navbar + navbar + /navbar.xsp + + + true + + + + diff --git a/samples/XPages/navbar.xsp.metadata b/samples/XPages/navbar.xsp.metadata new file mode 100755 index 00000000..120b7002 --- /dev/null +++ b/samples/XPages/navbar.xsp.metadata @@ -0,0 +1,22 @@ + + +20131221T175632,71-05 +20150305T194407,22-08 +20150305T194407,21-08 +20150305T194407,22-08 +20150305T162153,30-08 +CN=Eric McCormick/O=Eric McCormick +CN=Eric McCormick/O=Eric McCormick +gC~4; +navbar.xsp + + + + + +navbar.xsp +8.5.3 + + + + \ No newline at end of file From f8ef01f557609544517031d85fdf5cd0f17f4181 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Fri, 5 Jun 2015 06:13:36 -0500 Subject: [PATCH 502/875] updated tm_scope to none in languages.yml It looks like it helps to read the comments at the top of the file, who knew! --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8a366f41..69bc704a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3545,6 +3545,7 @@ XPages: - .form - .view ace_mode: xml + tm_scope: none XProc: type: programming From 743f7c76deba4f93bfc085ac2b16f27a41330ec4 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Fri, 5 Jun 2015 06:19:02 -0500 Subject: [PATCH 503/875] resorted entry in languages.yml to be consistent with other blocks --- lib/linguist/languages.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 69bc704a..832e1e7e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3539,13 +3539,13 @@ XML: XPages: type: programming extensions: + - .form + - .view - .xsp - .xsp-config - .xsp.metadata - - .form - - .view - ace_mode: xml tm_scope: none + ace_mode: xml XProc: type: programming From 4881e0aa510866b4d51e66b367f72aae4a549291 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Fri, 5 Jun 2015 10:36:40 -0500 Subject: [PATCH 504/875] added color to languages.yml --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 832e1e7e..d606b675 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3538,6 +3538,7 @@ XML: XPages: type: programming + color: "#FFEBE4" extensions: - .form - .view From 9afdcddfc9195ef7292e0b5f62e751e4b6c1815f Mon Sep 17 00:00:00 2001 From: Alex Weber Date: Fri, 5 Jun 2015 12:53:15 -0300 Subject: [PATCH 505/875] fix anchor link to vim & emacs modelines section regression introduced in 5382c1b79519cfb33627eb3b288c922ea816d680 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e673537f..374851fb 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linguist supports a number of different custom overrides strategies for language ### Using gitattributes -Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language statistics, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-and-vim-modelines). +Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language statistics, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-or-vim-modelines). ``` $ cat .gitattributes From 26a5325dc3899895d1325a5f5d18675463107d33 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Fri, 5 Jun 2015 11:04:34 -0500 Subject: [PATCH 506/875] undoing color apparently a bad idea, Travis CI didn't like it --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d606b675..832e1e7e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3538,7 +3538,6 @@ XML: XPages: type: programming - color: "#FFEBE4" extensions: - .form - .view From 7fb62de4d79ac85dc9878c43b769466fbb73e39b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Jun 2015 15:37:41 +0200 Subject: [PATCH 507/875] Associate each heuristic rule to a file extension --- lib/linguist/heuristics.rb | 69 ++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 39e286bb..736c4e89 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -13,11 +13,14 @@ module Linguist # ]) # # Returns an Array of languages, or empty if none matched or were inconclusive. - def self.call(blob, languages) + def self.call(blob, candidates) data = blob.data @heuristics.each do |heuristic| - return Array(heuristic.call(data)) if heuristic.matches?(languages) + if heuristic.matches?(blob.name) + languages = Array(heuristic.call(data)) + return languages if languages.any? || languages.all? { |l| candidates.include?(l) } + end end [] # No heuristics matched @@ -38,22 +41,22 @@ module Linguist # end # end # - def self.disambiguate(*languages, &heuristic) - @heuristics << new(languages, &heuristic) + def self.disambiguate(extension, &heuristic) + @heuristics << new(extension, &heuristic) end # Internal: Array of defined heuristics @heuristics = [] # Internal - def initialize(languages, &heuristic) - @languages = languages + def initialize(extension, &heuristic) + @extension = extension @heuristic = heuristic end # Internal: Check if this heuristic matches the candidate languages. - def matches?(candidates) - candidates.any? && candidates.all? { |l| @languages.include?(l.name) } + def matches?(filename) + filename.end_with?(@extension) end # Internal: Perform the heuristic @@ -64,7 +67,7 @@ module Linguist # Common heuristics ObjectiveCRegex = /^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/ - disambiguate "BitBake", "BlitzBasic" do |data| + disambiguate ".bb" do |data| if /^\s*; /.match(data) || data.include?("End Function") Language["BlitzBasic"] elsif /^\s*(# |include|require)\b/.match(data) @@ -72,7 +75,7 @@ module Linguist end end - disambiguate "C#", "Smalltalk" do |data| + disambiguate ".cs" do |data| if /![\w\s]+methodsFor: /.match(data) Language["Smalltalk"] elsif /^\s*namespace\s*[\w\.]+\s*{/.match(data) || /^\s*\/\//.match(data) @@ -80,7 +83,7 @@ module Linguist end end - disambiguate "Objective-C", "C++", "C" do |data| + disambiguate ".h" do |data| if ObjectiveCRegex.match(data) Language["Objective-C"] elsif (/^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>/.match(data) || @@ -89,7 +92,7 @@ module Linguist end end - disambiguate "Perl", "Perl6", "Prolog" do |data| + disambiguate ".pl" do |data| if data.include?("use v6") Language["Perl6"] elsif data.match(/use strict|use\s+v?5\./) @@ -99,7 +102,7 @@ module Linguist end end - disambiguate "ECL", "Prolog" do |data| + disambiguate ".ecl" do |data| if /^[^#]+:-/.match(data) Language["Prolog"] elsif data.include?(":=") @@ -107,7 +110,7 @@ module Linguist end end - disambiguate "IDL", "Prolog", "INI", "QMake" do |data| + disambiguate ".pro" do |data| if /^[^#]+:-/.match(data) Language["Prolog"] elsif data.include?("last_client=") @@ -119,7 +122,7 @@ module Linguist end end - disambiguate "GAP", "Scilab" do |data| + disambiguate ".tst" do |data| if (data.include?("gap> ")) Language["GAP"] # Heads up - we don't usually write heuristics like this (with no regex match) @@ -128,7 +131,7 @@ module Linguist end end - disambiguate "Common Lisp", "OpenCL", "Cool" do |data| + disambiguate ".cl" do |data| if /^\s*\((defun|in-package|defpackage) /i.match(data) Language["Common Lisp"] elsif /^class/x.match(data) @@ -138,7 +141,7 @@ module Linguist end end - disambiguate "Hack", "PHP" do |data| + disambiguate ".php" do |data| if data.include?(" |case\s+(\S+\s)+of/.match(data) @@ -274,7 +277,7 @@ module Linguist end end - disambiguate "NL", "NewLisp" do |data| + disambiguate ".nl" do |data| if /^(b|g)[0-9]+ /.match(data) Language["NL"] else @@ -282,7 +285,7 @@ module Linguist end end - disambiguate "Rust", "RenderScript" do |data| + disambiguate ".rs" do |data| if /^(use |fn |mod |pub |macro_rules|impl|#!?\[)/.match(data) Language["Rust"] elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) @@ -290,7 +293,7 @@ module Linguist end end - disambiguate "Common Lisp", "Lex", "Groff" do |data| + disambiguate ".l" do |data| if data.include?("(def(un|macro)\s") Language["Common Lisp"] elsif /^(%[%{}]xs|<.*>)/.match(data) From 656f4f440d458380d7fd6fcd7047941be47fb62a Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Jun 2015 17:44:02 +0200 Subject: [PATCH 508/875] Several extensions can be associated to a heuristic rule --- lib/linguist/heuristics.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 736c4e89..f02f4b73 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -41,22 +41,22 @@ module Linguist # end # end # - def self.disambiguate(extension, &heuristic) - @heuristics << new(extension, &heuristic) + def self.disambiguate(*extensions, &heuristic) + @heuristics << new(extensions, &heuristic) end # Internal: Array of defined heuristics @heuristics = [] # Internal - def initialize(extension, &heuristic) - @extension = extension + def initialize(extensions, &heuristic) + @extensions = extensions @heuristic = heuristic end # Internal: Check if this heuristic matches the candidate languages. def matches?(filename) - filename.end_with?(@extension) + @extensions.any? { |ext| filename.end_with?(ext) } end # Internal: Perform the heuristic @@ -167,7 +167,7 @@ module Linguist end end - disambiguate ".for" do |data| + disambiguate ".for", ".f" do |data| if /^: /.match(data) Language["Forth"] elsif /^([c*][^a-z]| (subroutine|program)\s|\s*!)/i.match(data) @@ -217,7 +217,7 @@ module Linguist end end - disambiguate ".lisp" do |data| + disambiguate ".lsp", ".lisp" do |data| if /^\s*\((defun|in-package|defpackage) /i.match(data) Language["Common Lisp"] elsif /^\s*\(define /.match(data) From e811021806c2db1e3c862b56319deb9635a52269 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Jun 2015 18:27:59 +0200 Subject: [PATCH 509/875] Fix tests to use the correct extension in heuristic rules Extand a few tests where only one file was tested for a language --- test/test_heuristics.rb | 84 +++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 45 deletions(-) diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index a13ae12a..4b766bce 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -22,22 +22,27 @@ class TestHeuristcs < Minitest::Test assert_equal [], results end + def assert_heuristics(hash) + candidates = hash.keys.map { |l| Language[l] } + + hash.each do |language, blobs| + Array(blobs).each do |blob| + result = Heuristics.call(file_blob(blob), candidates) + assert_equal [Language[language]], result, "Failed for #{blob}" + end + end + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues assert_heuristics({ "Objective-C" => all_fixtures("Objective-C", "*.h"), - "C++" => ["C++/render_adapter.cpp", "C++/ThreadedQueue.h"], + "C++" => ["C++/scanner.h", "C++/qscicommand.h", "C++/v8.h", "C++/gdsdbreader.h"], "C" => nil }) end - def test_c_by_heuristics - languages = [Language["C++"], Language["Objective-C"], Language["C"]] - results = Heuristics.call(file_blob("C/ArrowLeft.h"), languages) - assert_equal [], results - end - def test_detect_still_works_if_nothing_matches blob = Linguist::FileBlob.new(File.join(samples_path, "Objective-C/hello.m")) match = Language.detect(blob) @@ -47,17 +52,17 @@ class TestHeuristcs < Minitest::Test # Candidate languages = ["Perl", "Prolog"] def test_pl_prolog_perl_by_heuristics assert_heuristics({ - "Prolog" => all_fixtures("Prolog/*.pl"), - "Perl" => all_fixtures("Perl/*.pl") + ["Perl/perl-test.t"], - "Perl6" => all_fixtures("Perl6/*.pl") + "Prolog" => all_fixtures("Prolog", "*.pl"), + "Perl" => all_fixtures("Perl", "*.pl"), + "Perl6" => all_fixtures("Perl6", "*.pl") }) end # Candidate languages = ["ECL", "Prolog"] def test_ecl_prolog_by_heuristics assert_heuristics({ - "ECL" => "ECL/sample.ecl", - "Prolog" => "Prolog/or-constraint.ecl" + "ECL" => all_fixtures("ECL", "*.ecl"), + "Prolog" => all_fixtures("Prolog", "*.ecl") }) end @@ -74,69 +79,69 @@ class TestHeuristcs < Minitest::Test # Candidate languages = ["AGS Script", "AsciiDoc", "Public Key"] def test_asc_by_heuristics assert_heuristics({ - "AsciiDoc" => "AsciiDoc/list.asc", - "AGS Script" => "AGS Script/GlobalScript.asc", + "AsciiDoc" => all_fixtures("AsciiDoc", "*.asc"), + "AGS Script" => all_fixtures("AGS Script", "*.asc"), "Public Key" => all_fixtures("Public Key", "*.asc") }) end def test_cl_by_heuristics assert_heuristics({ - "Common Lisp" => all_fixtures("Common Lisp"), - "OpenCL" => all_fixtures("OpenCL") + "Common Lisp" => all_fixtures("Common Lisp", "*.cl"), + "OpenCL" => all_fixtures("OpenCL", "*.cl") }) end def test_f_by_heuristics assert_heuristics({ - "FORTRAN" => all_fixtures("FORTRAN"), - "Forth" => all_fixtures("Forth") + "FORTRAN" => all_fixtures("FORTRAN", "*.f") + all_fixtures("FORTRAN", "*.for"), + "Forth" => all_fixtures("Forth", "*.f") + all_fixtures("Forth", "*.for") }) end # Candidate languages = ["Hack", "PHP"] def test_hack_by_heuristics assert_heuristics({ - "Hack" => "Hack/funs.php", - "PHP" => "PHP/Model.php" + "Hack" => all_fixtures("Hack", "*.php"), + "PHP" => all_fixtures("PHP", "*.php") }) end # Candidate languages = ["Scala", "SuperCollider"] def test_sc_supercollider_scala_by_heuristics assert_heuristics({ - "SuperCollider" => "SuperCollider/WarpPreset.sc", - "Scala" => "Scala/node11.sc" + "SuperCollider" => all_fixtures("SuperCollider", "*.sc"), + "Scala" => all_fixtures("Scala", "*.sc") }) end def test_fs_by_heuristics assert_heuristics({ - "F#" => all_fixtures("F#"), - "Forth" => all_fixtures("Forth"), - "GLSL" => all_fixtures("GLSL") + "F#" => all_fixtures("F#", "*.fs"), + "Forth" => all_fixtures("Forth", "*.fs"), + "GLSL" => all_fixtures("GLSL", "*.fs") }) end def test_fr_by_heuristics assert_heuristics({ - "Frege" => all_fixtures("Frege"), - "Forth" => all_fixtures("Forth"), - "Text" => all_fixtures("Text") + "Frege" => all_fixtures("Frege", "*.fr"), + "Forth" => all_fixtures("Forth", "*.fr"), + "Text" => all_fixtures("Text", "*.fr") }) end def test_bb_by_heuristics assert_heuristics({ - "BitBake" => all_fixtures("BitBake"), - "BlitzBasic" => all_fixtures("BlitzBasic") + "BitBake" => all_fixtures("BitBake", "*.bb"), + "BlitzBasic" => all_fixtures("BlitzBasic", "*.bb") }) end def test_lsp_by_heuristics assert_heuristics({ - "Common Lisp" => all_fixtures("Common Lisp"), - "NewLisp" => all_fixtures("NewLisp") + "Common Lisp" => all_fixtures("Common Lisp", "*.lsp") + all_fixtures("Common Lisp", "*.lisp"), + "NewLisp" => all_fixtures("NewLisp", "*.lsp") + all_fixtures("NewLisp", "*.lisp") }) end @@ -147,21 +152,10 @@ class TestHeuristcs < Minitest::Test }) end - def assert_heuristics(hash) - candidates = hash.keys.map { |l| Language[l] } - - hash.each do |language, blobs| - Array(blobs).each do |blob| - result = Heuristics.call(file_blob(blob), candidates) - assert_equal [Language[language]], result, "Failed for #{blob}" - end - end - end - def test_ls_by_heuristics assert_heuristics({ - "LiveScript" => "LiveScript/hello.ls", - "LoomScript" => "LoomScript/HelloWorld.ls" + "LiveScript" => all_fixtures("LiveScript", "*.ls"), + "LoomScript" => all_fixtures("LoomScript", "*.ls") }) end From b05f6f00187bf9619eca3f9f95a08a44a536b054 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Jun 2015 18:49:36 +0200 Subject: [PATCH 510/875] Test for the new heuristic definitions --- samples/Perl6/List.pm | 699 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 699 insertions(+) create mode 100644 samples/Perl6/List.pm diff --git a/samples/Perl6/List.pm b/samples/Perl6/List.pm new file mode 100644 index 00000000..4e1ec47f --- /dev/null +++ b/samples/Perl6/List.pm @@ -0,0 +1,699 @@ +# for our tantrums +my class X::TypeCheck { ... } +my role Supply { ... } + +my sub combinations($n, $k) { + my @result; + my @stack; + + return ([],) unless $k; + + @stack.push(0); + gather while @stack { + my $index = @stack - 1; + my $value = @stack.pop; + + while $value < $n { + @result[$index++] = $value++; + @stack.push($value); + if $index == $k { + take [@result]; + $value = $n; # fake a last + } + } + } +} + +my sub permutations(Int $n) { + $n == 1 ?? ( [0,] ) !! + gather for ^$n -> $i { + my @i = grep none($i), ^$n; + take [$i, @i[@$_]] for permutations($n - 1); + } +} + +my class List does Positional { # declared in BOOTSTRAP + # class List is Iterable is Cool + # has Mu $!items; # VM's array of our reified elements + # has Mu $!flattens; # true if this list flattens its parcels + # has Mu $!nextiter; # iterator for generating remaining elements + + method new(|) { + my Mu $args := nqp::p6argvmarray(); + nqp::shift($args); + + nqp::p6list($args, self.WHAT, Mu); + } + + multi method Bool(List:D:) { self.gimme(1).Bool } + multi method Int(List:D:) { self.elems } + multi method end(List:D:) { self.elems - 1 } + multi method Numeric(List:D:) { self.elems } + multi method Str(List:D:) { self.join(' ') } + + # Pretend we're a Match assuming we're a list of Matches + method to() { self.elems ?? self[self.end].to !! Nil } + method from() { self.elems ?? self[0].from !! Nil } + + method fmt($format = '%s', $separator = ' ') { + self.map({ .fmt($format) }).join($separator); + } + + method flat() { self.flattens + ?? self + !! nqp::p6list(nqp::list(self), List, Bool::True) + } + method list() { self } + method lol() { + self.gimme(0); + my Mu $rpa := nqp::clone($!items); + nqp::push($rpa, $!nextiter) if $!nextiter.defined; + nqp::p6list($rpa, LoL, Mu); + } + + method flattens() { $!flattens } + + method Capture() { + self.gimme(*); + my $cap := nqp::create(Capture); + nqp::bindattr($cap, Capture, '$!list', $!items); + $cap + } + + method Parcel() { + my Mu $rpa := nqp::clone(nqp::p6listitems(self)); + nqp::push($rpa, $!nextiter) if $!nextiter.defined; + nqp::p6parcel($rpa, Any); + } + + method Supply(List:D:) { Supply.from-list(self) } + + multi method at_pos(List:D: int \pos) is rw { + fail X::OutOfRange.new(:what,:got(pos),:range<0..Inf>) + if nqp::islt_i(pos,0); + self.exists_pos(pos) ?? nqp::atpos($!items,pos) !! Nil; + } + multi method at_pos(List:D: Int:D \pos) is rw { + my int $pos = nqp::unbox_i(pos); + fail X::OutOfRange.new(:what,:got(pos),:range<0..Inf>) + if nqp::islt_i($pos,0); + self.exists_pos($pos) ?? nqp::atpos($!items,$pos) !! Nil; + } + + method eager() { self.gimme(*); self } + + method elems() { + return 0 unless self.DEFINITE; + return nqp::elems(nqp::p6listitems(self)) unless nqp::defined($!nextiter); + # Get as many elements as we can. If gimme stops before + # reaching the end of the list, assume the list is infinite. + my $n := self.gimme(*); + nqp::defined($!nextiter) ?? Inf !! $n + } + + multi method exists_pos(List:D: int $pos) { + return False if nqp::islt_i($pos,0); + self.gimme($pos + 1); + nqp::p6bool( + nqp::not_i(nqp::isnull(nqp::atpos($!items,$pos))) + ); + } + multi method exists_pos(List:D: Int:D $pos) { + return False if $pos < 0; + self.gimme($pos + 1); + nqp::p6bool( + nqp::not_i(nqp::isnull(nqp::atpos($!items,nqp::unbox_i($pos)))) + ); + } + + method gimme($n, :$sink) { + return unless self.DEFINITE; + # loop through iterators until we have at least $n elements + my int $count = nqp::elems(nqp::p6listitems(self)); + if nqp::istype($n, Whatever) || nqp::istype($n, Num) && nqp::istrue($n == Inf) { + while $!nextiter.DEFINITE && !$!nextiter.infinite { + $!nextiter.reify(*, :$sink); + $count = nqp::elems($!items); + } + } + else { + my int $target = $n.Int; + while nqp::isconcrete($!nextiter) && $count < $target { + $!nextiter.reify($target - $count, :$sink); + $count = nqp::elems($!items); + } + } + + # return the number of elements we have now + $count + } + + multi method infinite(List:D:) { $!nextiter.infinite } + + method iterator() { + # Return a reified ListIter containing our currently reified elements + # and any subsequent iterator. + my $iter := nqp::create(ListIter); + nqp::bindattr($iter, ListIter, '$!nextiter', $!nextiter); + nqp::bindattr($iter, ListIter, '$!reified', self.Parcel()); + $iter; + } + + method munch($n is copy) { + $n = 0 if $n < 0; + $n = self.gimme($n) if nqp::not_i(nqp::istype($n, Int)) + || nqp::not_i(nqp::islist($!items)) + || nqp::islt_i(nqp::elems($!items), nqp::unbox_i($n)); + nqp::p6parcel( + nqp::p6shiftpush(nqp::list(), $!items, nqp::unbox_i($n)), + Any + ) + } + + proto method pick(|) { * } + multi method pick() { + fail "Cannot .pick from infinite list" if self.infinite; + my $elems = self.elems; + $elems ?? self.at_pos($elems.rand.floor) !! Nil; + } + multi method pick($n is copy) { + fail "Cannot .pick from infinite list" if self.infinite; + ## We use a version of Fisher-Yates shuffle here to + ## replace picked elements with elements from the end + ## of the list, resulting in an O(n) algorithm. + my $elems = self.elems; + return unless $elems; + $n = Inf if nqp::istype($n, Whatever); + $n = $elems if $n > $elems; + return self.at_pos($elems.rand.floor) if $n == 1; + my Mu $rpa := nqp::clone($!items); + my $i; + my Mu $v; + gather while $n > 0 { + $i = nqp::rand_I(nqp::decont($elems), Int); + $elems--; $n--; + $v := nqp::atpos($rpa, nqp::unbox_i($i)); + # replace selected element with last unpicked one + nqp::bindpos($rpa, nqp::unbox_i($i), + nqp::atpos($rpa, nqp::unbox_i($elems))); + take-rw $v; + } + } + + method pop() is parcel { + my $elems = self.gimme(*); + fail 'Cannot .pop from an infinite list' if $!nextiter.defined; + $elems > 0 + ?? nqp::pop($!items) + !! fail 'Element popped from empty list'; + } + + method shift() is parcel { + # make sure we have at least one item, then shift+return it + nqp::islist($!items) && nqp::existspos($!items, 0) || self.gimme(1) + ?? nqp::shift($!items) + !! fail 'Element shifted from empty list'; + } + + my &list_push = multi method push(List:D: *@values) { + fail 'Cannot .push an infinite list' if @values.infinite; + nqp::p6listitems(self); + my $elems = self.gimme(*); + fail 'Cannot .push to an infinite list' if $!nextiter.DEFINITE; + + # push is always eager + @values.gimme(*); + + # need type checks? + my $of := self.of; + + unless $of =:= Mu { + X::TypeCheck.new( + operation => '.push', + expected => $of, + got => $_, + ).throw unless nqp::istype($_, $of) for @values; + } + + nqp::splice($!items, + nqp::getattr(@values, List, '$!items'), + $elems, 0); + + self; + } + + multi method push(List:D: \value) { + if nqp::iscont(value) || nqp::not_i(nqp::istype(value, Iterable)) && nqp::not_i(nqp::istype(value, Parcel)) { + $!nextiter.DEFINITE && self.gimme(*); + fail 'Cannot .push to an infinite list' if $!nextiter.DEFINITE; + nqp::p6listitems(self); + nqp::istype(value, self.of) + ?? nqp::push($!items, nqp::assign(nqp::p6scalarfromdesc(nqp::null), value)) + !! X::TypeCheck.new( + operation => '.push', + expected => self.of, + got => value, + ).throw; + self + } + else { + list_push(self, value) + } + } + + multi method unshift(List:D: \value) { + if nqp::iscont(value) || !(nqp::istype(value, Iterable) || nqp::istype(value, Parcel)) { + nqp::p6listitems(self); + value.gimme(*) if nqp::istype(value, List); # fixes #121994 + nqp::istype(value, self.of) + ?? nqp::unshift($!items, my $ = value) + !! X::TypeCheck.new( + operation => '.push', + expected => self.of, + got => value, + ).throw; + self + } + else { + callsame(); + } + } + + multi method unshift(List:D: *@values) { + fail 'Cannot .unshift an infinite list' if @values.infinite; + nqp::p6listitems(self); + + # don't bother with type checks + my $of := self.of; + if ( $of =:= Mu ) { + nqp::unshift($!items, @values.pop) while @values; + } + + # we must check types + else { + while @values { + my $value := @values.pop; + if nqp::istype($value, $of) { + nqp::unshift($!items, $value); + } + + # huh? + else { + X::TypeCheck.new( + operation => '.unshift', + expected => $of, + got => $value, + ).throw; + } + } + } + + self + } + + method plan(List:D: |args) { + nqp::p6listitems(self); + my $elems = self.gimme(*); + fail 'Cannot add plan to an infinite list' if $!nextiter.defined; + +# # need type checks? +# my $of := self.of; +# +# unless $of =:= Mu { +# X::TypeCheck.new( +# operation => '.push', +# expected => $of, +# got => $_, +# ).throw unless nqp::istype($_, $of) for @values; +# } + + nqp::bindattr(self, List, '$!nextiter', nqp::p6listiter(nqp::list(args.list), self)); + Nil; + } + + proto method roll(|) { * } + multi method roll() { + fail "Cannot .roll from infinite list" if self.infinite; + my $elems = self.elems; + $elems ?? self.at_pos($elems.rand.floor) !! Nil; + } + multi method roll($n is copy) { + fail "Cannot .roll from infinite list" if self.infinite; + my $elems = self.elems; + return unless $elems; + $n = Inf if nqp::istype($n, Whatever); + return self.at_pos($elems.rand.floor) if $n == 1; + + gather while $n > 0 { + take nqp::atpos($!items, nqp::unbox_i($elems.rand.floor.Int)); + $n--; + } + } + + method reverse() { + self.gimme(*); + fail 'Cannot .reverse from an infinite list' if $!nextiter.defined; + my Mu $rev := nqp::list(); + my Mu $orig := nqp::clone($!items); + nqp::push($rev, nqp::pop($orig)) while $orig; + my $rlist := nqp::create(self.WHAT); + nqp::bindattr($rlist, List, '$!items', $rev); + $rlist; + } + + method rotate(Int $n is copy = 1) { + self.gimme(*); + fail 'Cannot .rotate an infinite list' if $!nextiter.defined; + my $items = nqp::p6box_i(nqp::elems($!items)); + return self if !$items; + + $n %= $items; + return self if $n == 0; + + my Mu $res := nqp::clone($!items); + if $n > 0 { + nqp::push($res, nqp::shift($res)) while $n--; + } + elsif $n < 0 { + nqp::unshift($res, nqp::pop($res)) while $n++; + } + my $rlist := nqp::create(self.WHAT); + nqp::bindattr($rlist, List, '$!items', $res); + $rlist; + } + + method splice($offset = 0, $size?, *@values) { + self.gimme(*); + my $o = $offset; + my $s = $size; + my $elems = self.elems; + $o = $o($elems) if nqp::istype($o, Callable); + X::OutOfRange.new( + what => 'offset argument to List.splice', + got => $offset, + range => (0..^self.elems), + ).fail if $o < 0; + $s //= self.elems - ($o min $elems); + $s = $s(self.elems - $o) if nqp::istype($s, Callable); + X::OutOfRange.new( + what => 'size argument to List.splice', + got => $size, + range => (0..^(self.elems - $o)), + ).fail if $s < 0; + + my @ret = self[$o..($o + $s - 1)]; + nqp::splice($!items, + nqp::getattr(@values.eager, List, '$!items'), + $o.Int, $s.Int); + @ret; + } + + method sort($by = &infix:) { + fail 'Cannot .sort an infinite list' if self.infinite; #MMD? + + # Instead of sorting elements directly, we sort a Parcel of + # indices from 0..^$list.elems, then use that Parcel as + # a slice into self. This is for historical reasons: on + # Parrot we delegate to RPA.sort. The JVM implementation + # uses a Java collection sort. MoarVM has its sort algorithm + # implemented in NQP. + + # nothing to do here + my $elems := self.elems; + return self if $elems < 2; + + # Range is currently optimized for fast Parcel construction. + my $index := Range.new(0, $elems, :excludes-max).reify(*); + my Mu $index_rpa := nqp::getattr($index, Parcel, '$!storage'); + + # if $by.arity < 2, then we apply the block to the elements + # for sorting. + if ($by.?count // 2) < 2 { + my $list = self.map($by).eager; + nqp::p6sort($index_rpa, -> $a, $b { $list.at_pos($a) cmp $list.at_pos($b) || $a <=> $b }); + } + else { + my $list = self.eager; + nqp::p6sort($index_rpa, -> $a, $b { $by($list.at_pos($a), $list.at_pos($b)) || $a <=> $b }); + } + self[$index]; + } + + multi method ACCEPTS(List:D: $topic) { self } + + method uniq(|c) { + DEPRECATED('unique', |<2014.11 2015.11>); + self.unique(|c); + } + + proto method unique(|) {*} + multi method unique() { + my $seen := nqp::hash(); + my str $target; + gather for @.list { + $target = nqp::unbox_s($_.WHICH); + unless nqp::existskey($seen, $target) { + nqp::bindkey($seen, $target, 1); + take $_; + } + } + } + multi method unique( :&as!, :&with! ) { + my @seen = "should be Mu, but doesn't work in settings :-(" + my Mu $target; + gather for @.list { + $target = &as($_); + if first( { with($target,$_) }, @seen ) =:= Nil { + @seen.push($target); + take $_; + } + }; + } + multi method unique( :&as! ) { + my $seen := nqp::hash(); + my str $target; + gather for @.list { + $target = &as($_).WHICH; + unless nqp::existskey($seen, $target) { + nqp::bindkey($seen, $target, 1); + take $_; + } + } + } + multi method unique( :&with! ) { + nextwith() if &with === &[===]; # use optimized version + + my @seen; # should be Mu, but doesn't work in settings :-( + my Mu $target; + gather for @.list { + $target := $_; + if first( { with($target,$_) }, @seen ) =:= Nil { + @seen.push($target); + take $_; + } + } + } + + my @secret; + proto method squish(|) {*} + multi method squish( :&as!, :&with = &[===] ) { + my $last = @secret; + my str $which; + gather for @.list { + $which = &as($_).Str; + unless with($which,$last) { + $last = $which; + take $_; + } + } + } + multi method squish( :&with = &[===] ) { + my $last = @secret; + gather for @.list { + unless with($_,$last) { + $last = $_; + take $_; + } + } + } + + proto method rotor(|) {*} + multi method rotor(1, 0) { self } + multi method rotor($elems = 2, $overlap = 1) { + X::OutOfRange.new( + what => 'Overlap argument to List.rotor', + got => $overlap, + range => (0 .. $elems - 1), + ).fail unless 0 <= $overlap < $elems; + X::OutOfRange.new( + what => 'Elements argument to List.rotor', + got => $elems, + range => (0 .. *), + ).fail unless 0 <= $elems; + + my $finished = 0; + gather while $finished + $overlap < self.gimme($finished + $elems) { + take item self[$finished ..^ $finished + $elems]; + $finished += $elems - $overlap + } + } + + multi method gist(List:D:) { + @(self).map( -> $elem { + given ++$ { + when 101 { '...' } + when 102 { last } + default { $elem.gist } + } + } ).join: ' '; + } + multi method perl(List:D \SELF:) { + self.gimme(*); + self.Parcel.perl ~ '.list' + ~ (nqp::iscont(SELF) ?? '.item' !! '') + } + + method REIFY(Parcel \parcel, Mu \nextiter) { + nqp::splice($!items, nqp::getattr(parcel, Parcel, '$!storage'), + nqp::elems($!items), 0); + nqp::bindattr(self, List, '$!nextiter', nextiter); + parcel + } + + method FLATTENABLE_LIST() { self.gimme(*); $!items } + method FLATTENABLE_HASH() { nqp::hash() } + + multi method DUMP(List:D: :$indent-step = 4, :%ctx?) { + return DUMP(self, :$indent-step) unless %ctx; + + my $flags := ("\x221e" if self.infinite); + my Mu $attrs := nqp::list(); + nqp::push($attrs, '$!flattens'); + nqp::push($attrs, $!flattens ); + nqp::push($attrs, '$!items' ); + nqp::push($attrs, $!items ); + nqp::push($attrs, '$!nextiter'); + nqp::push($attrs, $!nextiter ); + self.DUMP-OBJECT-ATTRS($attrs, :$indent-step, :%ctx, :$flags); + } + + multi method keys(List:D:) { + self.values.map: { (state $)++ } + } + multi method kv(List:D:) { + gather for self.values { + take (state $)++; + take-rw $_; + } + } + multi method values(List:D:) { + my Mu $rpa := nqp::clone(nqp::p6listitems(self)); + nqp::push($rpa, $!nextiter) if $!nextiter.defined; + nqp::p6list($rpa, List, self.flattens); + } + multi method pairs(List:D:) { + self.values.map: {; (state $)++ => $_ } + } + + method reduce(List: &with) { + fail('can only reduce with arity 2') + unless &with.arity <= 2 <= &with.count; + return unless self.DEFINITE; + my \vals = self.values; + my Mu $val = vals.shift; + $val = with($val, $_) for vals; + $val; + } + + method sink() { + self.gimme(*, :sink) if self.DEFINITE && $!nextiter.DEFINITE; + Nil; + } + + # this is a remnant of a previous implementation of .push(), which + # apparently is used by LoL. Please remove when no longer necessary. + method STORE_AT_POS(Int \pos, Mu \v) is rw { + nqp::bindpos($!items, nqp::unbox_i(pos), v) + } + + proto method combinations($?) {*} + multi method combinations( Int $of ) { + ([self[@$_]] for combinations(self.elems, $of).eager) + } + multi method combinations( Range $of = 0 .. * ) { + gather for @$of { + last if $_ > self.elems; + take self.combinations($_); + } + } + + method permutations() { + # need block on Moar because of RT#121830 + gather { take [self[@$_]] for permutations(self.elems).eager } + } +} + +sub eager(|) { + nqp::p6parcel(nqp::p6argvmarray(), Any).eager +} + +sub flat(|) { + nqp::p6list(nqp::p6argvmarray(), List, Bool::True) +} + +sub list(|) { + nqp::p6list(nqp::p6argvmarray(), List, Mu) +} + +proto sub infix:(|) { * } +multi sub infix:() { fail "No zero-arg meaning for infix:" } +multi sub infix:(Mu \x) {x } +multi sub infix:(Mu \x, $n is copy, :$thunked!) { + $n = nqp::p6bool(nqp::istype($n, Whatever)) ?? Inf !! $n.Int; + GatherIter.new({ take x.() while --$n >= 0; }, :infinite($n == Inf)).list +} +multi sub infix:(Mu \x, Whatever, :$thunked!) { + GatherIter.new({ loop { take x.() } }, :infinite(True)).flat +} +multi sub infix:(Mu \x, Whatever) { + GatherIter.new({ loop { take x } }, :infinite(True)).flat +} +multi sub infix:(Mu \x, $n) { + my int $size = $n.Int; + + my Mu $rpa := nqp::list(); + if $size > 0 { + nqp::setelems($rpa, $size); + nqp::setelems($rpa, 0); + + $size = $size + 1; + nqp::push($rpa,x) while $size = $size - 1; + } + + nqp::p6parcel($rpa, Any); +} + +proto sub pop(@) {*} +multi sub pop(@a) { @a.pop } + +proto sub shift(@) {*} +multi sub shift(@a) { @a.shift } + +proto sub unshift(|) {*} +multi sub unshift(\a, \elem) { a.unshift: elem } +multi sub unshift(\a, *@elems) { a.unshift: @elems } + +proto sub push(|) {*} +multi sub push(\a, \elem) { a.push: elem } +multi sub push(\a, *@elems) { a.push: @elems } + +sub reverse(*@a) { @a.reverse } +sub rotate(@a, Int $n = 1) { @a.rotate($n) } +sub reduce (&with, *@list) { @list.reduce(&with) } +sub splice(@arr, $offset = 0, $size?, *@values) { + @arr.splice($offset, $size, @values) +} + +multi sub infix:(@a, @b) { (@a Zcmp @b).first(&prefix:) || @a <=> @b } + +# vim: ft=perl6 expandtab sw=4 From be122ca1a536ba730e292facabdc4348ec459281 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 6 Jun 2015 19:55:04 +0200 Subject: [PATCH 511/875] Fix test for Perl heuristic Improve heuristic rule for Perl6 Separate heuristic rules for .pl (with Prolog) and .pm (without Prolog) --- lib/linguist/heuristics.rb | 12 ++++++++++-- test/test_heuristics.rb | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index f02f4b73..3fc27858 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -93,15 +93,23 @@ module Linguist end disambiguate ".pl" do |data| - if data.include?("use v6") + if /^(use v6|(my )?class|module)/.match(data) Language["Perl6"] - elsif data.match(/use strict|use\s+v?5\./) + elsif /use strict|use\s+v?5\./.match(data) Language["Perl"] elsif /^[^#]+:-/.match(data) Language["Prolog"] end end + disambiguate ".pm" do |data| + if /^(use v6|(my )?class|module)/.match(data) + Language["Perl6"] + elsif /use strict|use\s+v?5\./.match(data) + Language["Perl"] + end + end + disambiguate ".ecl" do |data| if /^[^#]+:-/.match(data) Language["Prolog"] diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 4b766bce..da4dc6c8 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -49,15 +49,23 @@ class TestHeuristcs < Minitest::Test assert_equal Language["Objective-C"], match end - # Candidate languages = ["Perl", "Prolog"] + # Candidate languages = ["Perl", "Perl6", "Prolog"] def test_pl_prolog_perl_by_heuristics assert_heuristics({ "Prolog" => all_fixtures("Prolog", "*.pl"), - "Perl" => all_fixtures("Perl", "*.pl"), + "Perl" => ["Perl/oo1.pl", "Perl/oo2.pl", "Perl/oo3.pl", "Perl/fib.pl", "Perl/use5.pl"], "Perl6" => all_fixtures("Perl6", "*.pl") }) end + # Candidate languages = ["Perl", "Perl6"] + def test_pm_perl_by_heuristics + assert_heuristics({ + "Perl" => all_fixtures("Perl", "*.pm"), + "Perl6" => all_fixtures("Perl6", "*.pm") + }) + end + # Candidate languages = ["ECL", "Prolog"] def test_ecl_prolog_by_heuristics assert_heuristics({ From 302cfea2953d45ed640915efcac9938324cb6a1f Mon Sep 17 00:00:00 2001 From: William Candillon Date: Mon, 8 Jun 2015 14:32:07 +0200 Subject: [PATCH 512/875] Update languages.yml --- lib/linguist/languages.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ba5c0103..66d22263 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1508,11 +1508,12 @@ JSONLD: tm_scope: source.js JSONiq: + color: "#40d47e" type: programming ace_mode: jsoniq extensions: - .jq - tm_scope: source.xquery + tm_scope: source.jq Jade: group: HTML @@ -3554,6 +3555,7 @@ XQuery: - .xqm - .xqy ace_mode: xquery + tm_scope: source.xq XS: type: programming From e1a8b5db1d3dd65d88cd24474f0014de2cc61d84 Mon Sep 17 00:00:00 2001 From: William Candillon Date: Mon, 8 Jun 2015 14:50:28 +0200 Subject: [PATCH 513/875] :new: XQuery & JSONiq support based on the Atom language-jsoniq package --- .gitmodules | 3 +++ grammars.yml | 3 +++ vendor/grammars/language-jsoniq | 1 + 3 files changed, 7 insertions(+) create mode 160000 vendor/grammars/language-jsoniq diff --git a/.gitmodules b/.gitmodules index edb00607..93a9e1cf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -644,3 +644,6 @@ [submodule "vendor/grammars/smali-sublime"] path = vendor/grammars/smali-sublime url = https://github.com/ShaneWilton/sublime-smali +[submodule "vendor/grammars/language-jsoniq"] + path = vendor/grammars/language-jsoniq + url = http://github.com/wcandillon/language-jsoniq diff --git a/grammars.yml b/grammars.yml index 21a54c67..68f6119f 100644 --- a/grammars.yml +++ b/grammars.yml @@ -320,6 +320,9 @@ vendor/grammars/language-hy: vendor/grammars/language-javascript: - source.js - source.js.regexp +vendor/grammars/language-jsoniq/: +- source.jq +- source.xq vendor/grammars/language-python: - source.python - source.regexp.python diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq new file mode 160000 index 00000000..f87a3766 --- /dev/null +++ b/vendor/grammars/language-jsoniq @@ -0,0 +1 @@ +Subproject commit f87a3766dd685af013a0c22463fc5d889b5b9364 From d1ae098c088f01934203ed9e9d17622603dec862 Mon Sep 17 00:00:00 2001 From: William Candillon Date: Mon, 8 Jun 2015 15:22:32 +0200 Subject: [PATCH 514/875] :arrow_up: --- vendor/grammars/language-jsoniq | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq index f87a3766..2035c70e 160000 --- a/vendor/grammars/language-jsoniq +++ b/vendor/grammars/language-jsoniq @@ -1 +1 @@ -Subproject commit f87a3766dd685af013a0c22463fc5d889b5b9364 +Subproject commit 2035c70e72972ca3329f7fbd06c7ebb7095ef60c From 6b11655db84a63f0b61a580d0b3280725ab6683a Mon Sep 17 00:00:00 2001 From: Robin Neatherway Date: Tue, 9 Jun 2015 18:07:51 +0100 Subject: [PATCH 515/875] Switch to using atom-fsharp language definition The previous definition used at fsharpbinding is no longer maintained. That repository has been split into separate parts for each editor. Atom now has the most complete compatible grammar. --- .gitmodules | 6 +++--- grammars.yml | 4 ++-- vendor/grammars/atom-fsharp | 1 + vendor/grammars/fsharpbinding | 1 - 4 files changed, 6 insertions(+), 6 deletions(-) create mode 160000 vendor/grammars/atom-fsharp delete mode 160000 vendor/grammars/fsharpbinding diff --git a/.gitmodules b/.gitmodules index edb00607..7a0afa75 100644 --- a/.gitmodules +++ b/.gitmodules @@ -133,9 +133,6 @@ [submodule "vendor/grammars/fancy-tmbundle"] path = vendor/grammars/fancy-tmbundle url = https://github.com/fancy-lang/fancy-tmbundle -[submodule "vendor/grammars/fsharpbinding"] - path = vendor/grammars/fsharpbinding - url = https://github.com/fsharp/fsharpbinding [submodule "vendor/grammars/monkey.tmbundle"] path = vendor/grammars/monkey.tmbundle url = https://github.com/gingerbeardman/monkey.tmbundle @@ -644,3 +641,6 @@ [submodule "vendor/grammars/smali-sublime"] path = vendor/grammars/smali-sublime url = https://github.com/ShaneWilton/sublime-smali +[submodule "vendor/grammars/atom-fsharp"] + path = vendor/grammars/atom-fsharp + url = https://github.com/fsprojects/atom-fsharp diff --git a/grammars.yml b/grammars.yml index 21a54c67..62f2a4b5 100644 --- a/grammars.yml +++ b/grammars.yml @@ -169,6 +169,8 @@ vendor/grammars/asp.tmbundle: vendor/grammars/assembly.tmbundle: - objdump.x86asm - source.x86asm +vendor/grammars/atom-fsharp/: +- source.fsharp vendor/grammars/atom-salt: - source.python.salt - source.yaml.salt @@ -247,8 +249,6 @@ vendor/grammars/fish-tmbundle: vendor/grammars/fortran.tmbundle: - source.fortran - source.fortran.modern -vendor/grammars/fsharpbinding: -- source.fsharp vendor/grammars/gap-tmbundle/: - source.gap vendor/grammars/gettext.tmbundle: diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp new file mode 160000 index 00000000..c28c6093 --- /dev/null +++ b/vendor/grammars/atom-fsharp @@ -0,0 +1 @@ +Subproject commit c28c609370075709ccff24e10a15d12bec4bc521 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding deleted file mode 160000 index ad3f0734..00000000 --- a/vendor/grammars/fsharpbinding +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ad3f073464d29d1641ce70a7f626fc11e6480667 From 3180c5d554a08a90713bb8f770080323a166fc7f Mon Sep 17 00:00:00 2001 From: Kevin Butler Date: Wed, 10 Jun 2015 15:37:31 +0100 Subject: [PATCH 516/875] Allow delimiting by comma in the language name --- lib/linguist/language.rb | 6 +++--- test/test_language.rb | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index d2d44466..05c5f802 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -150,7 +150,7 @@ module Linguist # # Returns the Language or nil if none was found. def self.find_by_name(name) - name && @name_index[name.downcase] + name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase]) end # Public: Look up Language by one of its aliases. @@ -164,7 +164,7 @@ module Linguist # # Returns the Language or nil if none was found. def self.find_by_alias(name) - name && @alias_index[name.downcase] + name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase]) end # Public: Look up Languages by filename. @@ -240,7 +240,7 @@ module Linguist # # Returns the Language or nil if none was found. def self.[](name) - name && @index[name.downcase] + name && (@index[name.downcase] || @index[name.split(',').first.downcase]) end # Public: A List of popular languages diff --git a/test/test_language.rb b/test/test_language.rb index 3c204c0a..3d1fd66c 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -263,6 +263,18 @@ class TestLanguage < Minitest::Test assert_equal 'AGS Script', Language.find_by_alias('AGS').name end + def test_find_ignores_comma + assert_equal 'Rust', Language['rust,no_run'].name + end + + def test_find_by_name_ignores_comma + assert_equal Language['Rust'], Language.find_by_name('rust,no_run') + end + + def test_find_by_alias_ignores_comma + assert_equal Language['Rust'], Language.find_by_alias('rust,no_run') + end + def test_name assert_equal 'Perl', Language['Perl'].name assert_equal 'Python', Language['Python'].name From bc8d65e7d3567783c132632d76af352a74bf6b4f Mon Sep 17 00:00:00 2001 From: Kevin Butler Date: Wed, 10 Jun 2015 15:50:24 +0100 Subject: [PATCH 517/875] Add 1.0 rust sample and add file with `extern crate` usage --- samples/Rust/hashmap.rs | 2324 +++++++++++++++++++++++++++++++++++++++ samples/Rust/main.rs | 12 + 2 files changed, 2336 insertions(+) create mode 100644 samples/Rust/hashmap.rs create mode 100644 samples/Rust/main.rs diff --git a/samples/Rust/hashmap.rs b/samples/Rust/hashmap.rs new file mode 100644 index 00000000..093218c6 --- /dev/null +++ b/samples/Rust/hashmap.rs @@ -0,0 +1,2324 @@ +// Copyright 2014-2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use self::Entry::*; +use self::SearchResult::*; +use self::VacantEntryState::*; + +use borrow::Borrow; +use clone::Clone; +use cmp::{max, Eq, PartialEq}; +use default::Default; +use fmt::{self, Debug}; +use hash::{Hash, SipHasher}; +use iter::{self, Iterator, ExactSizeIterator, IntoIterator, FromIterator, Extend, Map}; +use marker::Sized; +use mem::{self, replace}; +use ops::{Deref, FnMut, FnOnce, Index}; +use option::Option::{self, Some, None}; +use rand::{self, Rng}; +use result::Result::{self, Ok, Err}; + +use super::table::{ + self, + Bucket, + EmptyBucket, + FullBucket, + FullBucketImm, + FullBucketMut, + RawTable, + SafeHash +}; +use super::table::BucketState::{ + Empty, + Full, +}; +use super::state::HashState; + +const INITIAL_LOG2_CAP: usize = 5; +#[unstable(feature = "std_misc")] +pub const INITIAL_CAPACITY: usize = 1 << INITIAL_LOG2_CAP; // 2^5 + +/// The default behavior of HashMap implements a load factor of 90.9%. +/// This behavior is characterized by the following condition: +/// +/// - if size > 0.909 * capacity: grow the map +#[derive(Clone)] +struct DefaultResizePolicy; + +impl DefaultResizePolicy { + fn new() -> DefaultResizePolicy { + DefaultResizePolicy + } + + #[inline] + fn min_capacity(&self, usable_size: usize) -> usize { + // Here, we are rephrasing the logic by specifying the lower limit + // on capacity: + // + // - if `cap < size * 1.1`: grow the map + usable_size * 11 / 10 + } + + /// An inverse of `min_capacity`, approximately. + #[inline] + fn usable_capacity(&self, cap: usize) -> usize { + // As the number of entries approaches usable capacity, + // min_capacity(size) must be smaller than the internal capacity, + // so that the map is not resized: + // `min_capacity(usable_capacity(x)) <= x`. + // The left-hand side can only be smaller due to flooring by integer + // division. + // + // This doesn't have to be checked for overflow since allocation size + // in bytes will overflow earlier than multiplication by 10. + cap * 10 / 11 + } +} + +#[test] +fn test_resize_policy() { + let rp = DefaultResizePolicy; + for n in 0..1000 { + assert!(rp.min_capacity(rp.usable_capacity(n)) <= n); + assert!(rp.usable_capacity(rp.min_capacity(n)) <= n); + } +} + +// The main performance trick in this hashmap is called Robin Hood Hashing. +// It gains its excellent performance from one essential operation: +// +// If an insertion collides with an existing element, and that element's +// "probe distance" (how far away the element is from its ideal location) +// is higher than how far we've already probed, swap the elements. +// +// This massively lowers variance in probe distance, and allows us to get very +// high load factors with good performance. The 90% load factor I use is rather +// conservative. +// +// > Why a load factor of approximately 90%? +// +// In general, all the distances to initial buckets will converge on the mean. +// At a load factor of α, the odds of finding the target bucket after k +// probes is approximately 1-α^k. If we set this equal to 50% (since we converge +// on the mean) and set k=8 (64-byte cache line / 8-byte hash), α=0.92. I round +// this down to make the math easier on the CPU and avoid its FPU. +// Since on average we start the probing in the middle of a cache line, this +// strategy pulls in two cache lines of hashes on every lookup. I think that's +// pretty good, but if you want to trade off some space, it could go down to one +// cache line on average with an α of 0.84. +// +// > Wait, what? Where did you get 1-α^k from? +// +// On the first probe, your odds of a collision with an existing element is α. +// The odds of doing this twice in a row is approximately α^2. For three times, +// α^3, etc. Therefore, the odds of colliding k times is α^k. The odds of NOT +// colliding after k tries is 1-α^k. +// +// The paper from 1986 cited below mentions an implementation which keeps track +// of the distance-to-initial-bucket histogram. This approach is not suitable +// for modern architectures because it requires maintaining an internal data +// structure. This allows very good first guesses, but we are most concerned +// with guessing entire cache lines, not individual indexes. Furthermore, array +// accesses are no longer linear and in one direction, as we have now. There +// is also memory and cache pressure that this would entail that would be very +// difficult to properly see in a microbenchmark. +// +// ## Future Improvements (FIXME!) +// +// Allow the load factor to be changed dynamically and/or at initialization. +// +// Also, would it be possible for us to reuse storage when growing the +// underlying table? This is exactly the use case for 'realloc', and may +// be worth exploring. +// +// ## Future Optimizations (FIXME!) +// +// Another possible design choice that I made without any real reason is +// parameterizing the raw table over keys and values. Technically, all we need +// is the size and alignment of keys and values, and the code should be just as +// efficient (well, we might need one for power-of-two size and one for not...). +// This has the potential to reduce code bloat in rust executables, without +// really losing anything except 4 words (key size, key alignment, val size, +// val alignment) which can be passed in to every call of a `RawTable` function. +// This would definitely be an avenue worth exploring if people start complaining +// about the size of rust executables. +// +// Annotate exceedingly likely branches in `table::make_hash` +// and `search_hashed` to reduce instruction cache pressure +// and mispredictions once it becomes possible (blocked on issue #11092). +// +// Shrinking the table could simply reallocate in place after moving buckets +// to the first half. +// +// The growth algorithm (fragment of the Proof of Correctness) +// -------------------- +// +// The growth algorithm is basically a fast path of the naive reinsertion- +// during-resize algorithm. Other paths should never be taken. +// +// Consider growing a robin hood hashtable of capacity n. Normally, we do this +// by allocating a new table of capacity `2n`, and then individually reinsert +// each element in the old table into the new one. This guarantees that the +// new table is a valid robin hood hashtable with all the desired statistical +// properties. Remark that the order we reinsert the elements in should not +// matter. For simplicity and efficiency, we will consider only linear +// reinsertions, which consist of reinserting all elements in the old table +// into the new one by increasing order of index. However we will not be +// starting our reinsertions from index 0 in general. If we start from index +// i, for the purpose of reinsertion we will consider all elements with real +// index j < i to have virtual index n + j. +// +// Our hash generation scheme consists of generating a 64-bit hash and +// truncating the most significant bits. When moving to the new table, we +// simply introduce a new bit to the front of the hash. Therefore, if an +// elements has ideal index i in the old table, it can have one of two ideal +// locations in the new table. If the new bit is 0, then the new ideal index +// is i. If the new bit is 1, then the new ideal index is n + i. Intuitively, +// we are producing two independent tables of size n, and for each element we +// independently choose which table to insert it into with equal probability. +// However the rather than wrapping around themselves on overflowing their +// indexes, the first table overflows into the first, and the first into the +// second. Visually, our new table will look something like: +// +// [yy_xxx_xxxx_xxx|xx_yyy_yyyy_yyy] +// +// Where x's are elements inserted into the first table, y's are elements +// inserted into the second, and _'s are empty sections. We now define a few +// key concepts that we will use later. Note that this is a very abstract +// perspective of the table. A real resized table would be at least half +// empty. +// +// Theorem: A linear robin hood reinsertion from the first ideal element +// produces identical results to a linear naive reinsertion from the same +// element. +// +// FIXME(Gankro, pczarn): review the proof and put it all in a separate README.md + +/// A hash map implementation which uses linear probing with Robin +/// Hood bucket stealing. +/// +/// The hashes are all keyed by the thread-local random number generator +/// on creation by default. This means that the ordering of the keys is +/// randomized, but makes the tables more resistant to +/// denial-of-service attacks (Hash DoS). This behaviour can be +/// overridden with one of the constructors. +/// +/// It is required that the keys implement the `Eq` and `Hash` traits, although +/// this can frequently be achieved by using `#[derive(PartialEq, Eq, Hash)]`. +/// If you implement these yourself, it is important that the following +/// property holds: +/// +/// ```text +/// k1 == k2 -> hash(k1) == hash(k2) +/// ``` +/// +/// In other words, if two keys are equal, their hashes must be equal. +/// +/// It is a logic error for a key to be modified in such a way that the key's +/// hash, as determined by the `Hash` trait, or its equality, as determined by +/// the `Eq` trait, changes while it is in the map. This is normally only +/// possible through `Cell`, `RefCell`, global state, I/O, or unsafe code. +/// +/// Relevant papers/articles: +/// +/// 1. Pedro Celis. ["Robin Hood Hashing"](https://cs.uwaterloo.ca/research/tr/1986/CS-86-14.pdf) +/// 2. Emmanuel Goossaert. ["Robin Hood +/// hashing"](http://codecapsule.com/2013/11/11/robin-hood-hashing/) +/// 3. Emmanuel Goossaert. ["Robin Hood hashing: backward shift +/// deletion"](http://codecapsule.com/2013/11/17/robin-hood-hashing-backward-shift-deletion/) +/// +/// # Examples +/// +/// ``` +/// use std::collections::HashMap; +/// +/// // type inference lets us omit an explicit type signature (which +/// // would be `HashMap<&str, &str>` in this example). +/// let mut book_reviews = HashMap::new(); +/// +/// // review some books. +/// book_reviews.insert("Adventures of Huckleberry Finn", "My favorite book."); +/// book_reviews.insert("Grimms' Fairy Tales", "Masterpiece."); +/// book_reviews.insert("Pride and Prejudice", "Very enjoyable."); +/// book_reviews.insert("The Adventures of Sherlock Holmes", "Eye lyked it alot."); +/// +/// // check for a specific one. +/// if !book_reviews.contains_key("Les Misérables") { +/// println!("We've got {} reviews, but Les Misérables ain't one.", +/// book_reviews.len()); +/// } +/// +/// // oops, this review has a lot of spelling mistakes, let's delete it. +/// book_reviews.remove("The Adventures of Sherlock Holmes"); +/// +/// // look up the values associated with some keys. +/// let to_find = ["Pride and Prejudice", "Alice's Adventure in Wonderland"]; +/// for book in &to_find { +/// match book_reviews.get(book) { +/// Some(review) => println!("{}: {}", book, review), +/// None => println!("{} is unreviewed.", book) +/// } +/// } +/// +/// // iterate over everything. +/// for (book, review) in &book_reviews { +/// println!("{}: \"{}\"", book, review); +/// } +/// ``` +/// +/// The easiest way to use `HashMap` with a custom type as key is to derive `Eq` and `Hash`. +/// We must also derive `PartialEq`. +/// +/// ``` +/// use std::collections::HashMap; +/// +/// #[derive(Hash, Eq, PartialEq, Debug)] +/// struct Viking { +/// name: String, +/// country: String, +/// } +/// +/// impl Viking { +/// /// Create a new Viking. +/// fn new(name: &str, country: &str) -> Viking { +/// Viking { name: name.to_string(), country: country.to_string() } +/// } +/// } +/// +/// // Use a HashMap to store the vikings' health points. +/// let mut vikings = HashMap::new(); +/// +/// vikings.insert(Viking::new("Einar", "Norway"), 25); +/// vikings.insert(Viking::new("Olaf", "Denmark"), 24); +/// vikings.insert(Viking::new("Harald", "Iceland"), 12); +/// +/// // Use derived implementation to print the status of the vikings. +/// for (viking, health) in &vikings { +/// println!("{:?} has {} hp", viking, health); +/// } +/// ``` +#[derive(Clone)] +#[stable(feature = "rust1", since = "1.0.0")] +pub struct HashMap { + // All hashes are keyed on these values, to prevent hash collision attacks. + hash_state: S, + + table: RawTable, + + resize_policy: DefaultResizePolicy, +} + +/// Search for a pre-hashed key. +fn search_hashed(table: M, + hash: SafeHash, + mut is_match: F) + -> SearchResult where + M: Deref>, + F: FnMut(&K) -> bool, +{ + // This is the only function where capacity can be zero. To avoid + // undefined behaviour when Bucket::new gets the raw bucket in this + // case, immediately return the appropriate search result. + if table.capacity() == 0 { + return TableRef(table); + } + + let size = table.size(); + let mut probe = Bucket::new(table, hash); + let ib = probe.index(); + + while probe.index() != ib + size { + let full = match probe.peek() { + Empty(b) => return TableRef(b.into_table()), // hit an empty bucket + Full(b) => b + }; + + if full.distance() + ib < full.index() { + // We can finish the search early if we hit any bucket + // with a lower distance to initial bucket than we've probed. + return TableRef(full.into_table()); + } + + // If the hash doesn't match, it can't be this one.. + if hash == full.hash() { + // If the key doesn't match, it can't be this one.. + if is_match(full.read().0) { + return FoundExisting(full); + } + } + + probe = full.next(); + } + + TableRef(probe.into_table()) +} + +fn pop_internal(starting_bucket: FullBucketMut) -> (K, V) { + let (empty, retkey, retval) = starting_bucket.take(); + let mut gap = match empty.gap_peek() { + Some(b) => b, + None => return (retkey, retval) + }; + + while gap.full().distance() != 0 { + gap = match gap.shift() { + Some(b) => b, + None => break + }; + } + + // Now we've done all our shifting. Return the value we grabbed earlier. + (retkey, retval) +} + +/// Perform robin hood bucket stealing at the given `bucket`. You must +/// also pass the position of that bucket's initial bucket so we don't have +/// to recalculate it. +/// +/// `hash`, `k`, and `v` are the elements to "robin hood" into the hashtable. +fn robin_hood<'a, K: 'a, V: 'a>(mut bucket: FullBucketMut<'a, K, V>, + mut ib: usize, + mut hash: SafeHash, + mut k: K, + mut v: V) + -> &'a mut V { + let starting_index = bucket.index(); + let size = { + let table = bucket.table(); // FIXME "lifetime too short". + table.size() + }; + // There can be at most `size - dib` buckets to displace, because + // in the worst case, there are `size` elements and we already are + // `distance` buckets away from the initial one. + let idx_end = starting_index + size - bucket.distance(); + + loop { + let (old_hash, old_key, old_val) = bucket.replace(hash, k, v); + loop { + let probe = bucket.next(); + assert!(probe.index() != idx_end); + + let full_bucket = match probe.peek() { + Empty(bucket) => { + // Found a hole! + let b = bucket.put(old_hash, old_key, old_val); + // Now that it's stolen, just read the value's pointer + // right out of the table! + return Bucket::at_index(b.into_table(), starting_index) + .peek() + .expect_full() + .into_mut_refs() + .1; + }, + Full(bucket) => bucket + }; + + let probe_ib = full_bucket.index() - full_bucket.distance(); + + bucket = full_bucket; + + // Robin hood! Steal the spot. + if ib < probe_ib { + ib = probe_ib; + hash = old_hash; + k = old_key; + v = old_val; + break; + } + } + } +} + +/// A result that works like Option> but preserves +/// the reference that grants us access to the table in any case. +enum SearchResult { + // This is an entry that holds the given key: + FoundExisting(FullBucket), + + // There was no such entry. The reference is given back: + TableRef(M) +} + +impl SearchResult { + fn into_option(self) -> Option> { + match self { + FoundExisting(bucket) => Some(bucket), + TableRef(_) => None + } + } +} + +impl HashMap + where K: Eq + Hash, S: HashState +{ + fn make_hash(&self, x: &X) -> SafeHash where X: Hash { + table::make_hash(&self.hash_state, x) + } + + /// Search for a key, yielding the index if it's found in the hashtable. + /// If you already have the hash for the key lying around, use + /// search_hashed. + fn search<'a, Q: ?Sized>(&'a self, q: &Q) -> Option> + where K: Borrow, Q: Eq + Hash + { + let hash = self.make_hash(q); + search_hashed(&self.table, hash, |k| q.eq(k.borrow())) + .into_option() + } + + fn search_mut<'a, Q: ?Sized>(&'a mut self, q: &Q) -> Option> + where K: Borrow, Q: Eq + Hash + { + let hash = self.make_hash(q); + search_hashed(&mut self.table, hash, |k| q.eq(k.borrow())) + .into_option() + } + + // The caller should ensure that invariants by Robin Hood Hashing hold. + fn insert_hashed_ordered(&mut self, hash: SafeHash, k: K, v: V) { + let cap = self.table.capacity(); + let mut buckets = Bucket::new(&mut self.table, hash); + let ib = buckets.index(); + + while buckets.index() != ib + cap { + // We don't need to compare hashes for value swap. + // Not even DIBs for Robin Hood. + buckets = match buckets.peek() { + Empty(empty) => { + empty.put(hash, k, v); + return; + } + Full(b) => b.into_bucket() + }; + buckets.next(); + } + panic!("Internal HashMap error: Out of space."); + } +} + +impl HashMap { + /// Creates an empty HashMap. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// let mut map: HashMap<&str, isize> = HashMap::new(); + /// ``` + #[inline] + #[stable(feature = "rust1", since = "1.0.0")] + pub fn new() -> HashMap { + Default::default() + } + + /// Creates an empty hash map with the given initial capacity. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// let mut map: HashMap<&str, isize> = HashMap::with_capacity(10); + /// ``` + #[inline] + #[stable(feature = "rust1", since = "1.0.0")] + pub fn with_capacity(capacity: usize) -> HashMap { + HashMap::with_capacity_and_hash_state(capacity, Default::default()) + } +} + +impl HashMap + where K: Eq + Hash, S: HashState +{ + /// Creates an empty hashmap which will use the given hasher to hash keys. + /// + /// The created map has the default initial capacity. + /// + /// # Examples + /// + /// ``` + /// # #![feature(std_misc)] + /// use std::collections::HashMap; + /// use std::collections::hash_map::RandomState; + /// + /// let s = RandomState::new(); + /// let mut map = HashMap::with_hash_state(s); + /// map.insert(1, 2); + /// ``` + #[inline] + #[unstable(feature = "std_misc", reason = "hasher stuff is unclear")] + pub fn with_hash_state(hash_state: S) -> HashMap { + HashMap { + hash_state: hash_state, + resize_policy: DefaultResizePolicy::new(), + table: RawTable::new(0), + } + } + + /// Creates an empty HashMap with space for at least `capacity` + /// elements, using `hasher` to hash the keys. + /// + /// Warning: `hasher` is normally randomly generated, and + /// is designed to allow HashMaps to be resistant to attacks that + /// cause many collisions and very poor performance. Setting it + /// manually using this function can expose a DoS attack vector. + /// + /// # Examples + /// + /// ``` + /// # #![feature(std_misc)] + /// use std::collections::HashMap; + /// use std::collections::hash_map::RandomState; + /// + /// let s = RandomState::new(); + /// let mut map = HashMap::with_capacity_and_hash_state(10, s); + /// map.insert(1, 2); + /// ``` + #[inline] + #[unstable(feature = "std_misc", reason = "hasher stuff is unclear")] + pub fn with_capacity_and_hash_state(capacity: usize, hash_state: S) + -> HashMap { + let resize_policy = DefaultResizePolicy::new(); + let min_cap = max(INITIAL_CAPACITY, resize_policy.min_capacity(capacity)); + let internal_cap = min_cap.checked_next_power_of_two().expect("capacity overflow"); + assert!(internal_cap >= capacity, "capacity overflow"); + HashMap { + hash_state: hash_state, + resize_policy: resize_policy, + table: RawTable::new(internal_cap), + } + } + + /// Returns the number of elements the map can hold without reallocating. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// let map: HashMap = HashMap::with_capacity(100); + /// assert!(map.capacity() >= 100); + /// ``` + #[inline] + #[stable(feature = "rust1", since = "1.0.0")] + pub fn capacity(&self) -> usize { + self.resize_policy.usable_capacity(self.table.capacity()) + } + + /// Reserves capacity for at least `additional` more elements to be inserted + /// in the `HashMap`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// # Panics + /// + /// Panics if the new allocation size overflows `usize`. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// let mut map: HashMap<&str, isize> = HashMap::new(); + /// map.reserve(10); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn reserve(&mut self, additional: usize) { + let new_size = self.len().checked_add(additional).expect("capacity overflow"); + let min_cap = self.resize_policy.min_capacity(new_size); + + // An invalid value shouldn't make us run out of space. This includes + // an overflow check. + assert!(new_size <= min_cap); + + if self.table.capacity() < min_cap { + let new_capacity = max(min_cap.next_power_of_two(), INITIAL_CAPACITY); + self.resize(new_capacity); + } + } + + /// Resizes the internal vectors to a new capacity. It's your responsibility to: + /// 1) Make sure the new capacity is enough for all the elements, accounting + /// for the load factor. + /// 2) Ensure new_capacity is a power of two or zero. + fn resize(&mut self, new_capacity: usize) { + assert!(self.table.size() <= new_capacity); + assert!(new_capacity.is_power_of_two() || new_capacity == 0); + + let mut old_table = replace(&mut self.table, RawTable::new(new_capacity)); + let old_size = old_table.size(); + + if old_table.capacity() == 0 || old_table.size() == 0 { + return; + } + + // Grow the table. + // Specialization of the other branch. + let mut bucket = Bucket::first(&mut old_table); + + // "So a few of the first shall be last: for many be called, + // but few chosen." + // + // We'll most likely encounter a few buckets at the beginning that + // have their initial buckets near the end of the table. They were + // placed at the beginning as the probe wrapped around the table + // during insertion. We must skip forward to a bucket that won't + // get reinserted too early and won't unfairly steal others spot. + // This eliminates the need for robin hood. + loop { + bucket = match bucket.peek() { + Full(full) => { + if full.distance() == 0 { + // This bucket occupies its ideal spot. + // It indicates the start of another "cluster". + bucket = full.into_bucket(); + break; + } + // Leaving this bucket in the last cluster for later. + full.into_bucket() + } + Empty(b) => { + // Encountered a hole between clusters. + b.into_bucket() + } + }; + bucket.next(); + } + + // This is how the buckets might be laid out in memory: + // ($ marks an initialized bucket) + // ________________ + // |$$$_$$$$$$_$$$$$| + // + // But we've skipped the entire initial cluster of buckets + // and will continue iteration in this order: + // ________________ + // |$$$$$$_$$$$$ + // ^ wrap around once end is reached + // ________________ + // $$$_____________| + // ^ exit once table.size == 0 + loop { + bucket = match bucket.peek() { + Full(bucket) => { + let h = bucket.hash(); + let (b, k, v) = bucket.take(); + self.insert_hashed_ordered(h, k, v); + { + let t = b.table(); // FIXME "lifetime too short". + if t.size() == 0 { break } + }; + b.into_bucket() + } + Empty(b) => b.into_bucket() + }; + bucket.next(); + } + + assert_eq!(self.table.size(), old_size); + } + + /// Shrinks the capacity of the map as much as possible. It will drop + /// down as much as possible while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map: HashMap = HashMap::with_capacity(100); + /// map.insert(1, 2); + /// map.insert(3, 4); + /// assert!(map.capacity() >= 100); + /// map.shrink_to_fit(); + /// assert!(map.capacity() >= 2); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn shrink_to_fit(&mut self) { + let min_capacity = self.resize_policy.min_capacity(self.len()); + let min_capacity = max(min_capacity.next_power_of_two(), INITIAL_CAPACITY); + + // An invalid value shouldn't make us run out of space. + debug_assert!(self.len() <= min_capacity); + + if self.table.capacity() != min_capacity { + let old_table = replace(&mut self.table, RawTable::new(min_capacity)); + let old_size = old_table.size(); + + // Shrink the table. Naive algorithm for resizing: + for (h, k, v) in old_table.into_iter() { + self.insert_hashed_nocheck(h, k, v); + } + + debug_assert_eq!(self.table.size(), old_size); + } + } + + /// Insert a pre-hashed key-value pair, without first checking + /// that there's enough room in the buckets. Returns a reference to the + /// newly insert value. + /// + /// If the key already exists, the hashtable will be returned untouched + /// and a reference to the existing element will be returned. + fn insert_hashed_nocheck(&mut self, hash: SafeHash, k: K, v: V) -> &mut V { + self.insert_or_replace_with(hash, k, v, |_, _, _| ()) + } + + fn insert_or_replace_with<'a, F>(&'a mut self, + hash: SafeHash, + k: K, + v: V, + mut found_existing: F) + -> &'a mut V where + F: FnMut(&mut K, &mut V, V), + { + // Worst case, we'll find one empty bucket among `size + 1` buckets. + let size = self.table.size(); + let mut probe = Bucket::new(&mut self.table, hash); + let ib = probe.index(); + + loop { + let mut bucket = match probe.peek() { + Empty(bucket) => { + // Found a hole! + return bucket.put(hash, k, v).into_mut_refs().1; + } + Full(bucket) => bucket + }; + + // hash matches? + if bucket.hash() == hash { + // key matches? + if k == *bucket.read_mut().0 { + let (bucket_k, bucket_v) = bucket.into_mut_refs(); + debug_assert!(k == *bucket_k); + // Key already exists. Get its reference. + found_existing(bucket_k, bucket_v, v); + return bucket_v; + } + } + + let robin_ib = bucket.index() as isize - bucket.distance() as isize; + + if (ib as isize) < robin_ib { + // Found a luckier bucket than me. Better steal his spot. + return robin_hood(bucket, robin_ib as usize, hash, k, v); + } + + probe = bucket.next(); + assert!(probe.index() != ib + size + 1); + } + } + + /// An iterator visiting all keys in arbitrary order. + /// Iterator element type is `&'a K`. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// for key in map.keys() { + /// println!("{}", key); + /// } + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn keys<'a>(&'a self) -> Keys<'a, K, V> { + fn first((a, _): (A, B)) -> A { a } + let first: fn((&'a K,&'a V)) -> &'a K = first; // coerce to fn ptr + + Keys { inner: self.iter().map(first) } + } + + /// An iterator visiting all values in arbitrary order. + /// Iterator element type is `&'a V`. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// for val in map.values() { + /// println!("{}", val); + /// } + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn values<'a>(&'a self) -> Values<'a, K, V> { + fn second((_, b): (A, B)) -> B { b } + let second: fn((&'a K,&'a V)) -> &'a V = second; // coerce to fn ptr + + Values { inner: self.iter().map(second) } + } + + /// An iterator visiting all key-value pairs in arbitrary order. + /// Iterator element type is `(&'a K, &'a V)`. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// for (key, val) in map.iter() { + /// println!("key: {} val: {}", key, val); + /// } + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn iter(&self) -> Iter { + Iter { inner: self.table.iter() } + } + + /// An iterator visiting all key-value pairs in arbitrary order, + /// with mutable references to the values. + /// Iterator element type is `(&'a K, &'a mut V)`. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// // Update all values + /// for (_, val) in map.iter_mut() { + /// *val *= 2; + /// } + /// + /// for (key, val) in map.iter() { + /// println!("key: {} val: {}", key, val); + /// } + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn iter_mut(&mut self) -> IterMut { + IterMut { inner: self.table.iter_mut() } + } + + /// Gets the given key's corresponding entry in the map for in-place manipulation. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut letters = HashMap::new(); + /// + /// for ch in "a short treatise on fungi".chars() { + /// let counter = letters.entry(ch).or_insert(0); + /// *counter += 1; + /// } + /// + /// assert_eq!(letters[&'s'], 2); + /// assert_eq!(letters[&'t'], 3); + /// assert_eq!(letters[&'u'], 1); + /// assert_eq!(letters.get(&'y'), None); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn entry(&mut self, key: K) -> Entry { + // Gotta resize now. + self.reserve(1); + + let hash = self.make_hash(&key); + search_entry_hashed(&mut self.table, hash, key) + } + + /// Returns the number of elements in the map. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut a = HashMap::new(); + /// assert_eq!(a.len(), 0); + /// a.insert(1, "a"); + /// assert_eq!(a.len(), 1); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn len(&self) -> usize { self.table.size() } + + /// Returns true if the map contains no elements. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut a = HashMap::new(); + /// assert!(a.is_empty()); + /// a.insert(1, "a"); + /// assert!(!a.is_empty()); + /// ``` + #[inline] + #[stable(feature = "rust1", since = "1.0.0")] + pub fn is_empty(&self) -> bool { self.len() == 0 } + + /// Clears the map, returning all key-value pairs as an iterator. Keeps the + /// allocated memory for reuse. + /// + /// # Examples + /// + /// ``` + /// # #![feature(std_misc)] + /// use std::collections::HashMap; + /// + /// let mut a = HashMap::new(); + /// a.insert(1, "a"); + /// a.insert(2, "b"); + /// + /// for (k, v) in a.drain().take(1) { + /// assert!(k == 1 || k == 2); + /// assert!(v == "a" || v == "b"); + /// } + /// + /// assert!(a.is_empty()); + /// ``` + #[inline] + #[unstable(feature = "std_misc", + reason = "matches collection reform specification, waiting for dust to settle")] + pub fn drain(&mut self) -> Drain { + fn last_two((_, b, c): (A, B, C)) -> (B, C) { (b, c) } + let last_two: fn((SafeHash, K, V)) -> (K, V) = last_two; // coerce to fn pointer + + Drain { + inner: self.table.drain().map(last_two), + } + } + + /// Clears the map, removing all key-value pairs. Keeps the allocated memory + /// for reuse. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut a = HashMap::new(); + /// a.insert(1, "a"); + /// a.clear(); + /// assert!(a.is_empty()); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + #[inline] + pub fn clear(&mut self) { + self.drain(); + } + + /// Returns a reference to the value corresponding to the key. + /// + /// The key may be any borrowed form of the map's key type, but + /// `Hash` and `Eq` on the borrowed form *must* match those for + /// the key type. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// assert_eq!(map.get(&1), Some(&"a")); + /// assert_eq!(map.get(&2), None); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn get(&self, k: &Q) -> Option<&V> + where K: Borrow, Q: Hash + Eq + { + self.search(k).map(|bucket| bucket.into_refs().1) + } + + /// Returns true if the map contains a value for the specified key. + /// + /// The key may be any borrowed form of the map's key type, but + /// `Hash` and `Eq` on the borrowed form *must* match those for + /// the key type. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// assert_eq!(map.contains_key(&1), true); + /// assert_eq!(map.contains_key(&2), false); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn contains_key(&self, k: &Q) -> bool + where K: Borrow, Q: Hash + Eq + { + self.search(k).is_some() + } + + /// Returns a mutable reference to the value corresponding to the key. + /// + /// The key may be any borrowed form of the map's key type, but + /// `Hash` and `Eq` on the borrowed form *must* match those for + /// the key type. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// if let Some(x) = map.get_mut(&1) { + /// *x = "b"; + /// } + /// assert_eq!(map[&1], "b"); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn get_mut(&mut self, k: &Q) -> Option<&mut V> + where K: Borrow, Q: Hash + Eq + { + self.search_mut(k).map(|bucket| bucket.into_mut_refs().1) + } + + /// Inserts a key-value pair into the map. If the key already had a value + /// present in the map, that value is returned. Otherwise, `None` is returned. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// assert_eq!(map.insert(37, "a"), None); + /// assert_eq!(map.is_empty(), false); + /// + /// map.insert(37, "b"); + /// assert_eq!(map.insert(37, "c"), Some("b")); + /// assert_eq!(map[&37], "c"); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn insert(&mut self, k: K, v: V) -> Option { + let hash = self.make_hash(&k); + self.reserve(1); + + let mut retval = None; + self.insert_or_replace_with(hash, k, v, |_, val_ref, val| { + retval = Some(replace(val_ref, val)); + }); + retval + } + + /// Removes a key from the map, returning the value at the key if the key + /// was previously in the map. + /// + /// The key may be any borrowed form of the map's key type, but + /// `Hash` and `Eq` on the borrowed form *must* match those for + /// the key type. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// assert_eq!(map.remove(&1), Some("a")); + /// assert_eq!(map.remove(&1), None); + /// ``` + #[stable(feature = "rust1", since = "1.0.0")] + pub fn remove(&mut self, k: &Q) -> Option + where K: Borrow, Q: Hash + Eq + { + if self.table.size() == 0 { + return None + } + + self.search_mut(k).map(|bucket| pop_internal(bucket).1) + } +} + +fn search_entry_hashed<'a, K: Eq, V>(table: &'a mut RawTable, hash: SafeHash, k: K) + -> Entry<'a, K, V> +{ + // Worst case, we'll find one empty bucket among `size + 1` buckets. + let size = table.size(); + let mut probe = Bucket::new(table, hash); + let ib = probe.index(); + + loop { + let bucket = match probe.peek() { + Empty(bucket) => { + // Found a hole! + return Vacant(VacantEntry { + hash: hash, + key: k, + elem: NoElem(bucket), + }); + }, + Full(bucket) => bucket + }; + + // hash matches? + if bucket.hash() == hash { + // key matches? + if k == *bucket.read().0 { + return Occupied(OccupiedEntry{ + elem: bucket, + }); + } + } + + let robin_ib = bucket.index() as isize - bucket.distance() as isize; + + if (ib as isize) < robin_ib { + // Found a luckier bucket than me. Better steal his spot. + return Vacant(VacantEntry { + hash: hash, + key: k, + elem: NeqElem(bucket, robin_ib as usize), + }); + } + + probe = bucket.next(); + assert!(probe.index() != ib + size + 1); + } +} + +impl PartialEq for HashMap + where K: Eq + Hash, V: PartialEq, S: HashState +{ + fn eq(&self, other: &HashMap) -> bool { + if self.len() != other.len() { return false; } + + self.iter().all(|(key, value)| + other.get(key).map_or(false, |v| *value == *v) + ) + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl Eq for HashMap + where K: Eq + Hash, V: Eq, S: HashState +{} + +#[stable(feature = "rust1", since = "1.0.0")] +impl Debug for HashMap + where K: Eq + Hash + Debug, V: Debug, S: HashState +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_map().entries(self.iter()).finish() + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl Default for HashMap + where K: Eq + Hash, + S: HashState + Default, +{ + fn default() -> HashMap { + HashMap::with_hash_state(Default::default()) + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, Q: ?Sized, V, S> Index<&'a Q> for HashMap + where K: Eq + Hash + Borrow, + Q: Eq + Hash, + S: HashState, +{ + type Output = V; + + #[inline] + fn index(&self, index: &Q) -> &V { + self.get(index).expect("no entry found for key") + } +} + +/// HashMap iterator. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct Iter<'a, K: 'a, V: 'a> { + inner: table::Iter<'a, K, V> +} + +// FIXME(#19839) Remove in favor of `#[derive(Clone)]` +impl<'a, K, V> Clone for Iter<'a, K, V> { + fn clone(&self) -> Iter<'a, K, V> { + Iter { + inner: self.inner.clone() + } + } +} + +/// HashMap mutable values iterator. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct IterMut<'a, K: 'a, V: 'a> { + inner: table::IterMut<'a, K, V> +} + +/// HashMap move iterator. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct IntoIter { + inner: iter::Map, fn((SafeHash, K, V)) -> (K, V)> +} + +/// HashMap keys iterator. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct Keys<'a, K: 'a, V: 'a> { + inner: Map, fn((&'a K, &'a V)) -> &'a K> +} + +// FIXME(#19839) Remove in favor of `#[derive(Clone)]` +impl<'a, K, V> Clone for Keys<'a, K, V> { + fn clone(&self) -> Keys<'a, K, V> { + Keys { + inner: self.inner.clone() + } + } +} + +/// HashMap values iterator. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct Values<'a, K: 'a, V: 'a> { + inner: Map, fn((&'a K, &'a V)) -> &'a V> +} + +// FIXME(#19839) Remove in favor of `#[derive(Clone)]` +impl<'a, K, V> Clone for Values<'a, K, V> { + fn clone(&self) -> Values<'a, K, V> { + Values { + inner: self.inner.clone() + } + } +} + +/// HashMap drain iterator. +#[unstable(feature = "std_misc", + reason = "matches collection reform specification, waiting for dust to settle")] +pub struct Drain<'a, K: 'a, V: 'a> { + inner: iter::Map, fn((SafeHash, K, V)) -> (K, V)> +} + +/// A view into a single occupied location in a HashMap. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct OccupiedEntry<'a, K: 'a, V: 'a> { + elem: FullBucket>, +} + +/// A view into a single empty location in a HashMap. +#[stable(feature = "rust1", since = "1.0.0")] +pub struct VacantEntry<'a, K: 'a, V: 'a> { + hash: SafeHash, + key: K, + elem: VacantEntryState>, +} + +/// A view into a single location in a map, which may be vacant or occupied. +#[stable(feature = "rust1", since = "1.0.0")] +pub enum Entry<'a, K: 'a, V: 'a> { + /// An occupied Entry. + #[stable(feature = "rust1", since = "1.0.0")] + Occupied(OccupiedEntry<'a, K, V>), + + /// A vacant Entry. + #[stable(feature = "rust1", since = "1.0.0")] + Vacant(VacantEntry<'a, K, V>), +} + +/// Possible states of a VacantEntry. +enum VacantEntryState { + /// The index is occupied, but the key to insert has precedence, + /// and will kick the current one out on insertion. + NeqElem(FullBucket, usize), + /// The index is genuinely vacant. + NoElem(EmptyBucket), +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V, S> IntoIterator for &'a HashMap + where K: Eq + Hash, S: HashState +{ + type Item = (&'a K, &'a V); + type IntoIter = Iter<'a, K, V>; + + fn into_iter(self) -> Iter<'a, K, V> { + self.iter() + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V, S> IntoIterator for &'a mut HashMap + where K: Eq + Hash, S: HashState +{ + type Item = (&'a K, &'a mut V); + type IntoIter = IterMut<'a, K, V>; + + fn into_iter(mut self) -> IterMut<'a, K, V> { + self.iter_mut() + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl IntoIterator for HashMap + where K: Eq + Hash, S: HashState +{ + type Item = (K, V); + type IntoIter = IntoIter; + + /// Creates a consuming iterator, that is, one that moves each key-value + /// pair out of the map in arbitrary order. The map cannot be used after + /// calling this. + /// + /// # Examples + /// + /// ``` + /// use std::collections::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// // Not possible with .iter() + /// let vec: Vec<(&str, isize)> = map.into_iter().collect(); + /// ``` + fn into_iter(self) -> IntoIter { + fn last_two((_, b, c): (A, B, C)) -> (B, C) { (b, c) } + let last_two: fn((SafeHash, K, V)) -> (K, V) = last_two; + + IntoIter { + inner: self.table.into_iter().map(last_two) + } + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> Iterator for Iter<'a, K, V> { + type Item = (&'a K, &'a V); + + #[inline] fn next(&mut self) -> Option<(&'a K, &'a V)> { self.inner.next() } + #[inline] fn size_hint(&self) -> (usize, Option) { self.inner.size_hint() } +} +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> ExactSizeIterator for Iter<'a, K, V> { + #[inline] fn len(&self) -> usize { self.inner.len() } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> Iterator for IterMut<'a, K, V> { + type Item = (&'a K, &'a mut V); + + #[inline] fn next(&mut self) -> Option<(&'a K, &'a mut V)> { self.inner.next() } + #[inline] fn size_hint(&self) -> (usize, Option) { self.inner.size_hint() } +} +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> ExactSizeIterator for IterMut<'a, K, V> { + #[inline] fn len(&self) -> usize { self.inner.len() } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl Iterator for IntoIter { + type Item = (K, V); + + #[inline] fn next(&mut self) -> Option<(K, V)> { self.inner.next() } + #[inline] fn size_hint(&self) -> (usize, Option) { self.inner.size_hint() } +} +#[stable(feature = "rust1", since = "1.0.0")] +impl ExactSizeIterator for IntoIter { + #[inline] fn len(&self) -> usize { self.inner.len() } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> Iterator for Keys<'a, K, V> { + type Item = &'a K; + + #[inline] fn next(&mut self) -> Option<(&'a K)> { self.inner.next() } + #[inline] fn size_hint(&self) -> (usize, Option) { self.inner.size_hint() } +} +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> ExactSizeIterator for Keys<'a, K, V> { + #[inline] fn len(&self) -> usize { self.inner.len() } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> Iterator for Values<'a, K, V> { + type Item = &'a V; + + #[inline] fn next(&mut self) -> Option<(&'a V)> { self.inner.next() } + #[inline] fn size_hint(&self) -> (usize, Option) { self.inner.size_hint() } +} +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> ExactSizeIterator for Values<'a, K, V> { + #[inline] fn len(&self) -> usize { self.inner.len() } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> Iterator for Drain<'a, K, V> { + type Item = (K, V); + + #[inline] fn next(&mut self) -> Option<(K, V)> { self.inner.next() } + #[inline] fn size_hint(&self) -> (usize, Option) { self.inner.size_hint() } +} +#[stable(feature = "rust1", since = "1.0.0")] +impl<'a, K, V> ExactSizeIterator for Drain<'a, K, V> { + #[inline] fn len(&self) -> usize { self.inner.len() } +} + +impl<'a, K, V> Entry<'a, K, V> { + #[unstable(feature = "std_misc", + reason = "will soon be replaced by or_insert")] + #[deprecated(since = "1.0", + reason = "replaced with more ergonomic `or_insert` and `or_insert_with`")] + /// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant + pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, K, V>> { + match self { + Occupied(entry) => Ok(entry.into_mut()), + Vacant(entry) => Err(entry), + } + } + + #[stable(feature = "rust1", since = "1.0.0")] + /// Ensures a value is in the entry by inserting the default if empty, and returns + /// a mutable reference to the value in the entry. + pub fn or_insert(self, default: V) -> &'a mut V { + match self { + Occupied(entry) => entry.into_mut(), + Vacant(entry) => entry.insert(default), + } + } + + #[stable(feature = "rust1", since = "1.0.0")] + /// Ensures a value is in the entry by inserting the result of the default function if empty, + /// and returns a mutable reference to the value in the entry. + pub fn or_insert_with V>(self, default: F) -> &'a mut V { + match self { + Occupied(entry) => entry.into_mut(), + Vacant(entry) => entry.insert(default()), + } + } +} + +impl<'a, K, V> OccupiedEntry<'a, K, V> { + /// Gets a reference to the value in the entry. + #[stable(feature = "rust1", since = "1.0.0")] + pub fn get(&self) -> &V { + self.elem.read().1 + } + + /// Gets a mutable reference to the value in the entry. + #[stable(feature = "rust1", since = "1.0.0")] + pub fn get_mut(&mut self) -> &mut V { + self.elem.read_mut().1 + } + + /// Converts the OccupiedEntry into a mutable reference to the value in the entry + /// with a lifetime bound to the map itself + #[stable(feature = "rust1", since = "1.0.0")] + pub fn into_mut(self) -> &'a mut V { + self.elem.into_mut_refs().1 + } + + /// Sets the value of the entry, and returns the entry's old value + #[stable(feature = "rust1", since = "1.0.0")] + pub fn insert(&mut self, mut value: V) -> V { + let old_value = self.get_mut(); + mem::swap(&mut value, old_value); + value + } + + /// Takes the value out of the entry, and returns it + #[stable(feature = "rust1", since = "1.0.0")] + pub fn remove(self) -> V { + pop_internal(self.elem).1 + } +} + +impl<'a, K: 'a, V: 'a> VacantEntry<'a, K, V> { + /// Sets the value of the entry with the VacantEntry's key, + /// and returns a mutable reference to it + #[stable(feature = "rust1", since = "1.0.0")] + pub fn insert(self, value: V) -> &'a mut V { + match self.elem { + NeqElem(bucket, ib) => { + robin_hood(bucket, ib, self.hash, self.key, value) + } + NoElem(bucket) => { + bucket.put(self.hash, self.key, value).into_mut_refs().1 + } + } + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl FromIterator<(K, V)> for HashMap + where K: Eq + Hash, S: HashState + Default +{ + fn from_iter>(iterable: T) -> HashMap { + let iter = iterable.into_iter(); + let lower = iter.size_hint().0; + let mut map = HashMap::with_capacity_and_hash_state(lower, + Default::default()); + map.extend(iter); + map + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl Extend<(K, V)> for HashMap + where K: Eq + Hash, S: HashState +{ + fn extend>(&mut self, iter: T) { + for (k, v) in iter { + self.insert(k, v); + } + } +} + + +/// `RandomState` is the default state for `HashMap` types. +/// +/// A particular instance `RandomState` will create the same instances of +/// `Hasher`, but the hashers created by two different `RandomState` +/// instances are unlikely to produce the same result for the same values. +#[derive(Clone)] +#[unstable(feature = "std_misc", + reason = "hashing an hash maps may be altered")] +pub struct RandomState { + k0: u64, + k1: u64, +} + +#[unstable(feature = "std_misc", + reason = "hashing an hash maps may be altered")] +impl RandomState { + /// Constructs a new `RandomState` that is initialized with random keys. + #[inline] + #[allow(deprecated)] + pub fn new() -> RandomState { + let mut r = rand::thread_rng(); + RandomState { k0: r.gen(), k1: r.gen() } + } +} + +#[unstable(feature = "std_misc", + reason = "hashing an hash maps may be altered")] +impl HashState for RandomState { + type Hasher = SipHasher; + #[inline] + fn hasher(&self) -> SipHasher { + SipHasher::new_with_keys(self.k0, self.k1) + } +} + +#[stable(feature = "rust1", since = "1.0.0")] +impl Default for RandomState { + #[inline] + fn default() -> RandomState { + RandomState::new() + } +} + +#[cfg(test)] +mod test_map { + use prelude::v1::*; + + use super::HashMap; + use super::Entry::{Occupied, Vacant}; + use iter::{range_inclusive, repeat}; + use cell::RefCell; + use rand::{thread_rng, Rng}; + + #[test] + fn test_create_capacity_zero() { + let mut m = HashMap::with_capacity(0); + + assert!(m.insert(1, 1).is_none()); + + assert!(m.contains_key(&1)); + assert!(!m.contains_key(&0)); + } + + #[test] + fn test_insert() { + let mut m = HashMap::new(); + assert_eq!(m.len(), 0); + assert!(m.insert(1, 2).is_none()); + assert_eq!(m.len(), 1); + assert!(m.insert(2, 4).is_none()); + assert_eq!(m.len(), 2); + assert_eq!(*m.get(&1).unwrap(), 2); + assert_eq!(*m.get(&2).unwrap(), 4); + } + + thread_local! { static DROP_VECTOR: RefCell> = RefCell::new(Vec::new()) } + + #[derive(Hash, PartialEq, Eq)] + struct Dropable { + k: usize + } + + impl Dropable { + fn new(k: usize) -> Dropable { + DROP_VECTOR.with(|slot| { + slot.borrow_mut()[k] += 1; + }); + + Dropable { k: k } + } + } + + impl Drop for Dropable { + fn drop(&mut self) { + DROP_VECTOR.with(|slot| { + slot.borrow_mut()[self.k] -= 1; + }); + } + } + + impl Clone for Dropable { + fn clone(&self) -> Dropable { + Dropable::new(self.k) + } + } + + #[test] + fn test_drops() { + DROP_VECTOR.with(|slot| { + *slot.borrow_mut() = repeat(0).take(200).collect(); + }); + + { + let mut m = HashMap::new(); + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + + for i in 0..100 { + let d1 = Dropable::new(i); + let d2 = Dropable::new(i+100); + m.insert(d1, d2); + } + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 1); + } + }); + + for i in 0..50 { + let k = Dropable::new(i); + let v = m.remove(&k); + + assert!(v.is_some()); + + DROP_VECTOR.with(|v| { + assert_eq!(v.borrow()[i], 1); + assert_eq!(v.borrow()[i+100], 1); + }); + } + + DROP_VECTOR.with(|v| { + for i in 0..50 { + assert_eq!(v.borrow()[i], 0); + assert_eq!(v.borrow()[i+100], 0); + } + + for i in 50..100 { + assert_eq!(v.borrow()[i], 1); + assert_eq!(v.borrow()[i+100], 1); + } + }); + } + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + } + + #[test] + fn test_move_iter_drops() { + DROP_VECTOR.with(|v| { + *v.borrow_mut() = repeat(0).take(200).collect(); + }); + + let hm = { + let mut hm = HashMap::new(); + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + + for i in 0..100 { + let d1 = Dropable::new(i); + let d2 = Dropable::new(i+100); + hm.insert(d1, d2); + } + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 1); + } + }); + + hm + }; + + // By the way, ensure that cloning doesn't screw up the dropping. + drop(hm.clone()); + + { + let mut half = hm.into_iter().take(50); + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 1); + } + }); + + for _ in half.by_ref() {} + + DROP_VECTOR.with(|v| { + let nk = (0..100).filter(|&i| { + v.borrow()[i] == 1 + }).count(); + + let nv = (0..100).filter(|&i| { + v.borrow()[i+100] == 1 + }).count(); + + assert_eq!(nk, 50); + assert_eq!(nv, 50); + }); + }; + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + } + + #[test] + fn test_empty_pop() { + let mut m: HashMap = HashMap::new(); + assert_eq!(m.remove(&0), None); + } + + #[test] + fn test_lots_of_insertions() { + let mut m = HashMap::new(); + + // Try this a few times to make sure we never screw up the hashmap's + // internal state. + for _ in 0..10 { + assert!(m.is_empty()); + + for i in range_inclusive(1, 1000) { + assert!(m.insert(i, i).is_none()); + + for j in range_inclusive(1, i) { + let r = m.get(&j); + assert_eq!(r, Some(&j)); + } + + for j in range_inclusive(i+1, 1000) { + let r = m.get(&j); + assert_eq!(r, None); + } + } + + for i in range_inclusive(1001, 2000) { + assert!(!m.contains_key(&i)); + } + + // remove forwards + for i in range_inclusive(1, 1000) { + assert!(m.remove(&i).is_some()); + + for j in range_inclusive(1, i) { + assert!(!m.contains_key(&j)); + } + + for j in range_inclusive(i+1, 1000) { + assert!(m.contains_key(&j)); + } + } + + for i in range_inclusive(1, 1000) { + assert!(!m.contains_key(&i)); + } + + for i in range_inclusive(1, 1000) { + assert!(m.insert(i, i).is_none()); + } + + // remove backwards + for i in (1..1001).rev() { + assert!(m.remove(&i).is_some()); + + for j in range_inclusive(i, 1000) { + assert!(!m.contains_key(&j)); + } + + for j in range_inclusive(1, i-1) { + assert!(m.contains_key(&j)); + } + } + } + } + + #[test] + fn test_find_mut() { + let mut m = HashMap::new(); + assert!(m.insert(1, 12).is_none()); + assert!(m.insert(2, 8).is_none()); + assert!(m.insert(5, 14).is_none()); + let new = 100; + match m.get_mut(&5) { + None => panic!(), Some(x) => *x = new + } + assert_eq!(m.get(&5), Some(&new)); + } + + #[test] + fn test_insert_overwrite() { + let mut m = HashMap::new(); + assert!(m.insert(1, 2).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert!(!m.insert(1, 3).is_none()); + assert_eq!(*m.get(&1).unwrap(), 3); + } + + #[test] + fn test_insert_conflicts() { + let mut m = HashMap::with_capacity(4); + assert!(m.insert(1, 2).is_none()); + assert!(m.insert(5, 3).is_none()); + assert!(m.insert(9, 4).is_none()); + assert_eq!(*m.get(&9).unwrap(), 4); + assert_eq!(*m.get(&5).unwrap(), 3); + assert_eq!(*m.get(&1).unwrap(), 2); + } + + #[test] + fn test_conflict_remove() { + let mut m = HashMap::with_capacity(4); + assert!(m.insert(1, 2).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert!(m.insert(5, 3).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert_eq!(*m.get(&5).unwrap(), 3); + assert!(m.insert(9, 4).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert_eq!(*m.get(&5).unwrap(), 3); + assert_eq!(*m.get(&9).unwrap(), 4); + assert!(m.remove(&1).is_some()); + assert_eq!(*m.get(&9).unwrap(), 4); + assert_eq!(*m.get(&5).unwrap(), 3); + } + + #[test] + fn test_is_empty() { + let mut m = HashMap::with_capacity(4); + assert!(m.insert(1, 2).is_none()); + assert!(!m.is_empty()); + assert!(m.remove(&1).is_some()); + assert!(m.is_empty()); + } + + #[test] + fn test_pop() { + let mut m = HashMap::new(); + m.insert(1, 2); + assert_eq!(m.remove(&1), Some(2)); + assert_eq!(m.remove(&1), None); + } + + #[test] + fn test_iterate() { + let mut m = HashMap::with_capacity(4); + for i in 0..32 { + assert!(m.insert(i, i*2).is_none()); + } + assert_eq!(m.len(), 32); + + let mut observed: u32 = 0; + + for (k, v) in &m { + assert_eq!(*v, *k * 2); + observed |= 1 << *k; + } + assert_eq!(observed, 0xFFFF_FFFF); + } + + #[test] + fn test_keys() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_iter().collect(); + let keys: Vec<_> = map.keys().cloned().collect(); + assert_eq!(keys.len(), 3); + assert!(keys.contains(&1)); + assert!(keys.contains(&2)); + assert!(keys.contains(&3)); + } + + #[test] + fn test_values() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_iter().collect(); + let values: Vec<_> = map.values().cloned().collect(); + assert_eq!(values.len(), 3); + assert!(values.contains(&'a')); + assert!(values.contains(&'b')); + assert!(values.contains(&'c')); + } + + #[test] + fn test_find() { + let mut m = HashMap::new(); + assert!(m.get(&1).is_none()); + m.insert(1, 2); + match m.get(&1) { + None => panic!(), + Some(v) => assert_eq!(*v, 2) + } + } + + #[test] + fn test_eq() { + let mut m1 = HashMap::new(); + m1.insert(1, 2); + m1.insert(2, 3); + m1.insert(3, 4); + + let mut m2 = HashMap::new(); + m2.insert(1, 2); + m2.insert(2, 3); + + assert!(m1 != m2); + + m2.insert(3, 4); + + assert_eq!(m1, m2); + } + + #[test] + fn test_show() { + let mut map = HashMap::new(); + let empty: HashMap = HashMap::new(); + + map.insert(1, 2); + map.insert(3, 4); + + let map_str = format!("{:?}", map); + + assert!(map_str == "{1: 2, 3: 4}" || + map_str == "{3: 4, 1: 2}"); + assert_eq!(format!("{:?}", empty), "{}"); + } + + #[test] + fn test_expand() { + let mut m = HashMap::new(); + + assert_eq!(m.len(), 0); + assert!(m.is_empty()); + + let mut i = 0; + let old_cap = m.table.capacity(); + while old_cap == m.table.capacity() { + m.insert(i, i); + i += 1; + } + + assert_eq!(m.len(), i); + assert!(!m.is_empty()); + } + + #[test] + fn test_behavior_resize_policy() { + let mut m = HashMap::new(); + + assert_eq!(m.len(), 0); + assert_eq!(m.table.capacity(), 0); + assert!(m.is_empty()); + + m.insert(0, 0); + m.remove(&0); + assert!(m.is_empty()); + let initial_cap = m.table.capacity(); + m.reserve(initial_cap); + let cap = m.table.capacity(); + + assert_eq!(cap, initial_cap * 2); + + let mut i = 0; + for _ in 0..cap * 3 / 4 { + m.insert(i, i); + i += 1; + } + // three quarters full + + assert_eq!(m.len(), i); + assert_eq!(m.table.capacity(), cap); + + for _ in 0..cap / 4 { + m.insert(i, i); + i += 1; + } + // half full + + let new_cap = m.table.capacity(); + assert_eq!(new_cap, cap * 2); + + for _ in 0..cap / 2 - 1 { + i -= 1; + m.remove(&i); + assert_eq!(m.table.capacity(), new_cap); + } + // A little more than one quarter full. + m.shrink_to_fit(); + assert_eq!(m.table.capacity(), cap); + // again, a little more than half full + for _ in 0..cap / 2 - 1 { + i -= 1; + m.remove(&i); + } + m.shrink_to_fit(); + + assert_eq!(m.len(), i); + assert!(!m.is_empty()); + assert_eq!(m.table.capacity(), initial_cap); + } + + #[test] + fn test_reserve_shrink_to_fit() { + let mut m = HashMap::new(); + m.insert(0, 0); + m.remove(&0); + assert!(m.capacity() >= m.len()); + for i in 0..128 { + m.insert(i, i); + } + m.reserve(256); + + let usable_cap = m.capacity(); + for i in 128..(128 + 256) { + m.insert(i, i); + assert_eq!(m.capacity(), usable_cap); + } + + for i in 100..(128 + 256) { + assert_eq!(m.remove(&i), Some(i)); + } + m.shrink_to_fit(); + + assert_eq!(m.len(), 100); + assert!(!m.is_empty()); + assert!(m.capacity() >= m.len()); + + for i in 0..100 { + assert_eq!(m.remove(&i), Some(i)); + } + m.shrink_to_fit(); + m.insert(0, 0); + + assert_eq!(m.len(), 1); + assert!(m.capacity() >= m.len()); + assert_eq!(m.remove(&0), Some(0)); + } + + #[test] + fn test_from_iter() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.iter().cloned().collect(); + + for &(k, v) in &xs { + assert_eq!(map.get(&k), Some(&v)); + } + } + + #[test] + fn test_size_hint() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.iter().cloned().collect(); + + let mut iter = map.iter(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.size_hint(), (3, Some(3))); + } + + #[test] + fn test_iter_len() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.iter().cloned().collect(); + + let mut iter = map.iter(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.len(), 3); + } + + #[test] + fn test_mut_size_hint() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let mut map: HashMap<_, _> = xs.iter().cloned().collect(); + + let mut iter = map.iter_mut(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.size_hint(), (3, Some(3))); + } + + #[test] + fn test_iter_mut_len() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let mut map: HashMap<_, _> = xs.iter().cloned().collect(); + + let mut iter = map.iter_mut(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.len(), 3); + } + + #[test] + fn test_index() { + let mut map = HashMap::new(); + + map.insert(1, 2); + map.insert(2, 1); + map.insert(3, 4); + + assert_eq!(map[&2], 1); + } + + #[test] + #[should_panic] + fn test_index_nonexistent() { + let mut map = HashMap::new(); + + map.insert(1, 2); + map.insert(2, 1); + map.insert(3, 4); + + map[&4]; + } + + #[test] + fn test_entry(){ + let xs = [(1, 10), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)]; + + let mut map: HashMap<_, _> = xs.iter().cloned().collect(); + + // Existing key (insert) + match map.entry(1) { + Vacant(_) => unreachable!(), + Occupied(mut view) => { + assert_eq!(view.get(), &10); + assert_eq!(view.insert(100), 10); + } + } + assert_eq!(map.get(&1).unwrap(), &100); + assert_eq!(map.len(), 6); + + + // Existing key (update) + match map.entry(2) { + Vacant(_) => unreachable!(), + Occupied(mut view) => { + let v = view.get_mut(); + let new_v = (*v) * 10; + *v = new_v; + } + } + assert_eq!(map.get(&2).unwrap(), &200); + assert_eq!(map.len(), 6); + + // Existing key (take) + match map.entry(3) { + Vacant(_) => unreachable!(), + Occupied(view) => { + assert_eq!(view.remove(), 30); + } + } + assert_eq!(map.get(&3), None); + assert_eq!(map.len(), 5); + + + // Inexistent key (insert) + match map.entry(10) { + Occupied(_) => unreachable!(), + Vacant(view) => { + assert_eq!(*view.insert(1000), 1000); + } + } + assert_eq!(map.get(&10).unwrap(), &1000); + assert_eq!(map.len(), 6); + } + + #[test] + fn test_entry_take_doesnt_corrupt() { + #![allow(deprecated)] //rand + // Test for #19292 + fn check(m: &HashMap) { + for k in m.keys() { + assert!(m.contains_key(k), + "{} is in keys() but not in the map?", k); + } + } + + let mut m = HashMap::new(); + let mut rng = thread_rng(); + + // Populate the map with some items. + for _ in 0..50 { + let x = rng.gen_range(-10, 10); + m.insert(x, ()); + } + + for i in 0..1000 { + let x = rng.gen_range(-10, 10); + match m.entry(x) { + Vacant(_) => {}, + Occupied(e) => { + println!("{}: remove {}", i, x); + e.remove(); + }, + } + + check(&m); + } + } +} diff --git a/samples/Rust/main.rs b/samples/Rust/main.rs new file mode 100644 index 00000000..f4fa9f42 --- /dev/null +++ b/samples/Rust/main.rs @@ -0,0 +1,12 @@ +extern crate foo; +extern crate bar; + +use foo::{self, quix}; +use bar::car::*; +use bar; + +fn main() { + println!("Hello {}", "World"); + + panic!("Goodbye") +} From 753bfd1dc5d4d7ce17ab11cdf7a2c46a1763dde3 Mon Sep 17 00:00:00 2001 From: William Candillon Date: Thu, 11 Jun 2015 19:07:19 +0200 Subject: [PATCH 518/875] :arrow_up: --- vendor/grammars/language-jsoniq | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq index 2035c70e..3722100f 160000 --- a/vendor/grammars/language-jsoniq +++ b/vendor/grammars/language-jsoniq @@ -1 +1 @@ -Subproject commit 2035c70e72972ca3329f7fbd06c7ebb7095ef60c +Subproject commit 3722100fe6ae09da9ba8e434d8563bd592f62351 From 786d1e4cfce61a5484c878f8fa65438bbd4d9acc Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 12 Jun 2015 21:22:55 +0200 Subject: [PATCH 519/875] Instructions to add a new extension to a language --- CONTRIBUTING.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebae203c..8415462f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,6 +2,24 @@ Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. The majority of contributions won't need to touch any Ruby code at all. + +## Adding an extension to a language + +We try only to add new extensions once they have some usage on GitHub. In most cases we prefer that extensions be in use in hundreds of repositories before supporting them in Linguist. + +To add support for a new extension: + +0. Add your extension to the language entry in [`languages.yml`][languages]. +0. Add at least one sample for your extension to the [samples directory][samples] in the correct subdirectory. +0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage. + +In addition, if this extension is already listed in [`languages.yml`][languages] then sometimes a few more steps will need to be taken: + +0. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`. +0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping @arfon or @bkeepers to help with this) to ensure we're not misclassifying files. +0. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help. + + ## Adding a language We try only to add languages once they have some usage on GitHub. In most cases we prefer that languages be in use in hundreds of repositories before supporting them in Linguist. @@ -23,12 +41,14 @@ In addition, if your new language defines an extension that's already listed in Remember, the goal here is to try and avoid false positives! + ## Fixing a misclassified language Most languages are detected by their file extension defined in [languages.yml][languages]. For disambiguating between files with common extensions, linguist applies some [heuristics](/lib/linguist/heuristics.rb) and a [statistical classifier](lib/linguist/classifier.rb). This process can help differentiate between, for example, `.h` files which could be either C, C++, or Obj-C. Misclassifications can often be solved by either adding a new filename or extension for the language or adding more [samples][samples] to make the classifier smarter. + ## Fixing syntax highlighting Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in [languages.yml][languages] is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. @@ -55,6 +75,7 @@ Sometimes getting the tests running can be too much work, especially if you don' Here's our current build status: [![Build Status](https://secure.travis-ci.org/github/linguist.png?branch=master)](http://travis-ci.org/github/linguist) + ## Releasing If you are the current maintainer of this gem: From ba1ab64b5677c81cdb99d89caad5f3de58cfa9b3 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 4 May 2015 09:29:38 +0200 Subject: [PATCH 520/875] More Groff file extensions. --- lib/linguist/languages.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 66d22263..4beaa7aa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1209,13 +1209,26 @@ Groff: extensions: - .man - '.1' + - .1in + - .1m + - .1x - '.2' - '.3' + - .3in + - .3m + - .3qt + - .3x - '.4' - '.5' - '.6' - '.7' + - '.8' + - '.9' - .l + - .ms + - .n + - .rno + - .roff tm_scope: text.groff aliases: - nroff From 3bf4cb721eb4acd3fbfe32eb473118ccd03bbc6a Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 4 May 2015 09:53:32 +0200 Subject: [PATCH 521/875] Add .n Groff sample. From the Tcl/Tk project; BSD-like license. --- samples/Groff/Tcl.n | 275 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 samples/Groff/Tcl.n diff --git a/samples/Groff/Tcl.n b/samples/Groff/Tcl.n new file mode 100644 index 00000000..c7fa9f6f --- /dev/null +++ b/samples/Groff/Tcl.n @@ -0,0 +1,275 @@ +'\" +'\" Copyright (c) 1993 The Regents of the University of California. +'\" Copyright (c) 1994-1996 Sun Microsystems, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +.TH Tcl n "8.6" Tcl "Tcl Built-In Commands" +.so man.macros +.BS +.SH NAME +Tcl \- Tool Command Language +.SH SYNOPSIS +Summary of Tcl language syntax. +.BE +.SH DESCRIPTION +.PP +The following rules define the syntax and semantics of the Tcl language: +.IP "[1] \fBCommands.\fR" +A Tcl script is a string containing one or more commands. +Semi-colons and newlines are command separators unless quoted as +described below. +Close brackets are command terminators during command substitution +(see below) unless quoted. +.IP "[2] \fBEvaluation.\fR" +A command is evaluated in two steps. +First, the Tcl interpreter breaks the command into \fIwords\fR +and performs substitutions as described below. +These substitutions are performed in the same way for all +commands. +Secondly, the first word is used to locate a command procedure to +carry out the command, then all of the words of the command are +passed to the command procedure. +The command procedure is free to interpret each of its words +in any way it likes, such as an integer, variable name, list, +or Tcl script. +Different commands interpret their words differently. +.IP "[3] \fBWords.\fR" +Words of a command are separated by white space (except for +newlines, which are command separators). +.IP "[4] \fBDouble quotes.\fR" +If the first character of a word is double-quote +.PQ \N'34' +then the word is terminated by the next double-quote character. +If semi-colons, close brackets, or white space characters +(including newlines) appear between the quotes then they are treated +as ordinary characters and included in the word. +Command substitution, variable substitution, and backslash substitution +are performed on the characters between the quotes as described below. +The double-quotes are not retained as part of the word. +.IP "[5] \fBArgument expansion.\fR" +If a word starts with the string +.QW {*} +followed by a non-whitespace character, then the leading +.QW {*} +is removed and the rest of the word is parsed and substituted as any other +word. After substitution, the word is parsed as a list (without command or +variable substitutions; backslash substitutions are performed as is normal for +a list and individual internal words may be surrounded by either braces or +double-quote characters), and its words are added to the command being +substituted. For instance, +.QW "cmd a {*}{b [c]} d {*}{$e f {g h}}" +is equivalent to +.QW "cmd a b {[c]} d {$e} f {g h}" . +.IP "[6] \fBBraces.\fR" +If the first character of a word is an open brace +.PQ { +and rule [5] does not apply, then +the word is terminated by the matching close brace +.PQ } "" . +Braces nest within the word: for each additional open +brace there must be an additional close brace (however, +if an open brace or close brace within the word is +quoted with a backslash then it is not counted in locating the +matching close brace). +No substitutions are performed on the characters between the +braces except for backslash-newline substitutions described +below, nor do semi-colons, newlines, close brackets, +or white space receive any special interpretation. +The word will consist of exactly the characters between the +outer braces, not including the braces themselves. +.IP "[7] \fBCommand substitution.\fR" +If a word contains an open bracket +.PQ [ +then Tcl performs \fIcommand substitution\fR. +To do this it invokes the Tcl interpreter recursively to process +the characters following the open bracket as a Tcl script. +The script may contain any number of commands and must be terminated +by a close bracket +.PQ ] "" . +The result of the script (i.e. the result of its last command) is +substituted into the word in place of the brackets and all of the +characters between them. +There may be any number of command substitutions in a single word. +Command substitution is not performed on words enclosed in braces. +.IP "[8] \fBVariable substitution.\fR" +If a word contains a dollar-sign +.PQ $ +followed by one of the forms +described below, then Tcl performs \fIvariable +substitution\fR: the dollar-sign and the following characters are +replaced in the word by the value of a variable. +Variable substitution may take any of the following forms: +.RS +.TP 15 +\fB$\fIname\fR +. +\fIName\fR is the name of a scalar variable; the name is a sequence +of one or more characters that are a letter, digit, underscore, +or namespace separators (two or more colons). +Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR, +\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR). +.TP 15 +\fB$\fIname\fB(\fIindex\fB)\fR +. +\fIName\fR gives the name of an array variable and \fIindex\fR gives +the name of an element within that array. +\fIName\fR must contain only letters, digits, underscores, and +namespace separators, and may be an empty string. +Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR, +\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR). +Command substitutions, variable substitutions, and backslash +substitutions are performed on the characters of \fIindex\fR. +.TP 15 +\fB${\fIname\fB}\fR +. +\fIName\fR is the name of a scalar variable or array element. It may contain +any characters whatsoever except for close braces. It indicates an array +element if \fIname\fR is in the form +.QW \fIarrayName\fB(\fIindex\fB)\fR +where \fIarrayName\fR does not contain any open parenthesis characters, +.QW \fB(\fR , +or close brace characters, +.QW \fB}\fR , +and \fIindex\fR can be any sequence of characters except for close brace +characters. No further +substitutions are performed during the parsing of \fIname\fR. +.PP +There may be any number of variable substitutions in a single word. +Variable substitution is not performed on words enclosed in braces. +.PP +Note that variables may contain character sequences other than those listed +above, but in that case other mechanisms must be used to access them (e.g., +via the \fBset\fR command's single-argument form). +.RE +.IP "[9] \fBBackslash substitution.\fR" +If a backslash +.PQ \e +appears within a word then \fIbackslash substitution\fR occurs. +In all cases but those described below the backslash is dropped and +the following character is treated as an ordinary +character and included in the word. +This allows characters such as double quotes, close brackets, +and dollar signs to be included in words without triggering +special processing. +The following table lists the backslash sequences that are +handled specially, along with the value that replaces each sequence. +.RS +.TP 7 +\e\fBa\fR +Audible alert (bell) (Unicode U+000007). +.TP 7 +\e\fBb\fR +Backspace (Unicode U+000008). +.TP 7 +\e\fBf\fR +Form feed (Unicode U+00000C). +.TP 7 +\e\fBn\fR +Newline (Unicode U+00000A). +.TP 7 +\e\fBr\fR +Carriage-return (Unicode U+00000D). +.TP 7 +\e\fBt\fR +Tab (Unicode U+000009). +.TP 7 +\e\fBv\fR +Vertical tab (Unicode U+00000B). +.TP 7 +\e\fB\fIwhiteSpace\fR +. +A single space character replaces the backslash, newline, and all spaces +and tabs after the newline. This backslash sequence is unique in that it +is replaced in a separate pre-pass before the command is actually parsed. +This means that it will be replaced even when it occurs between braces, +and the resulting space will be treated as a word separator if it is not +in braces or quotes. +.TP 7 +\e\e +Backslash +.PQ \e "" . +.TP 7 +\e\fIooo\fR +. +The digits \fIooo\fR (one, two, or three of them) give a eight-bit octal +value for the Unicode character that will be inserted, in the range +\fI000\fR\(en\fI377\fR (i.e., the range U+000000\(enU+0000FF). +The parser will stop just before this range overflows, or when +the maximum of three digits is reached. The upper bits of the Unicode +character will be 0. +.TP 7 +\e\fBx\fIhh\fR +. +The hexadecimal digits \fIhh\fR (one or two of them) give an eight-bit +hexadecimal value for the Unicode character that will be inserted. The upper +bits of the Unicode character will be 0 (i.e., the character will be in the +range U+000000\(enU+0000FF). +.TP 7 +\e\fBu\fIhhhh\fR +. +The hexadecimal digits \fIhhhh\fR (one, two, three, or four of them) give a +sixteen-bit hexadecimal value for the Unicode character that will be +inserted. The upper bits of the Unicode character will be 0 (i.e., the +character will be in the range U+000000\(enU+00FFFF). +.TP 7 +\e\fBU\fIhhhhhhhh\fR +. +The hexadecimal digits \fIhhhhhhhh\fR (one up to eight of them) give a +twenty-one-bit hexadecimal value for the Unicode character that will be +inserted, in the range U+000000\(enU+10FFFF. The parser will stop just +before this range overflows, or when the maximum of eight digits +is reached. The upper bits of the Unicode character will be 0. +.RS +.PP +The range U+010000\(enU+10FFFD is reserved for the future. +.RE +.PP +Backslash substitution is not performed on words enclosed in braces, +except for backslash-newline as described above. +.RE +.IP "[10] \fBComments.\fR" +If a hash character +.PQ # +appears at a point where Tcl is +expecting the first character of the first word of a command, +then the hash character and the characters that follow it, up +through the next newline, are treated as a comment and ignored. +The comment character only has significance when it appears +at the beginning of a command. +.IP "[11] \fBOrder of substitution.\fR" +Each character is processed exactly once by the Tcl interpreter +as part of creating the words of a command. +For example, if variable substitution occurs then no further +substitutions are performed on the value of the variable; the +value is inserted into the word verbatim. +If command substitution occurs then the nested command is +processed entirely by the recursive call to the Tcl interpreter; +no substitutions are performed before making the recursive +call and no additional substitutions are performed on the result +of the nested script. +.RS +.PP +Substitutions take place from left to right, and each substitution is +evaluated completely before attempting to evaluate the next. Thus, a +sequence like +.PP +.CS +set y [set x 0][incr x][incr x] +.CE +.PP +will always set the variable \fIy\fR to the value, \fI012\fR. +.RE +.IP "[12] \fBSubstitution and word boundaries.\fR" +Substitutions do not affect the word boundaries of a command, +except for argument expansion as specified in rule [5]. +For example, during variable substitution the entire value of +the variable becomes part of a single word, even if the variable's +value contains spaces. +.SH KEYWORDS +backslash, command, comment, script, substitution, variable +'\" Local Variables: +'\" mode: nroff +'\" fill-column: 78 +'\" End: From 0a0d2ddb1a66dd106b28c894b87cab676e96e079 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 4 May 2015 12:42:51 +0200 Subject: [PATCH 522/875] Heuristics for Groff and Nemerle. --- lib/linguist/heuristics.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 39e286bb..88e973fc 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -299,5 +299,13 @@ module Linguist Language["Groff"] end end + + disambiguate "Groff", "Nemerle" do |data| + if /^[.']/.match(data) + Language["Groff"] + elsif /^(module|namespace|using)\s/.match(data) + Language["Nemerle"] + end + end end end From 28103ee25b041a14d1ec49a709665e5a6805c2ac Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 25 May 2015 10:17:58 +0200 Subject: [PATCH 523/875] Add .ms to GAS. --- lib/linguist/heuristics.rb | 10 +++++++++- lib/linguist/languages.yml | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 88e973fc..1b2c2a5b 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -295,7 +295,7 @@ module Linguist Language["Common Lisp"] elsif /^(%[%{}]xs|<.*>)/.match(data) Language["Lex"] - elsif /^\.[a-z][a-z](\s|$)/.match(data) + elsif /^\.[a-z][a-z](\s|$)/i.match(data) Language["Groff"] end end @@ -307,5 +307,13 @@ module Linguist Language["Nemerle"] end end + + disambiguate "GAS", "Groff" do |data| + if /^[.'][a-z][a-z](\s|$)/i.match(data) + Language["Groff"] + elsif /((^|\s)move?[. ])|\.(include|globa?l)\s/.match(data) + Language["GAS"] + end + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4beaa7aa..c1598bff 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1041,6 +1041,7 @@ GAS: group: Assembly extensions: - .s + - .ms tm_scope: source.asm.x86 ace_mode: assembly_x86 From 0e882900d7ee871afa5464e5694dabf415322146 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 25 May 2015 10:25:59 +0200 Subject: [PATCH 524/875] Samples for .ms. hello.ms by FSF; GPL license. fsinterface.ms by the NetBSD project; BSD license. --- samples/GAS/hello.ms | 91 +++ samples/Groff/fsinterface.ms | 1174 ++++++++++++++++++++++++++++++++++ 2 files changed, 1265 insertions(+) create mode 100644 samples/GAS/hello.ms create mode 100644 samples/Groff/fsinterface.ms diff --git a/samples/GAS/hello.ms b/samples/GAS/hello.ms new file mode 100644 index 00000000..b063c296 --- /dev/null +++ b/samples/GAS/hello.ms @@ -0,0 +1,91 @@ +# output(): Hello, world.\n +# mach(): all + +# Emit hello world while switching back and forth between arm/thumb. +# ??? Unfinished + + .macro invalid +# This is "undefined" but it's not properly decoded yet. + .word 0x07ffffff +# This is stc which isn't recognized yet. + stc 0,cr0,[r0] + .endm + + .global _start +_start: +# Run some simple insns to confirm the engine is at least working. + nop + +# Skip over output text. + + bl skip_output + +hello_text: + .asciz "Hello, world.\n" + + .p2align 2 +skip_output: + +# Prime loop. + + mov r4, r14 + +output_next: + +# Switch arm->thumb to output next chacter. +# At this point r4 must point to the next character to output. + + adr r0, into_thumb + 1 + bx r0 + +into_thumb: + .thumb + +# Output a character. + + mov r0,#3 @ writec angel call + mov r1,r4 + swi 0xab @ ??? Confirm number. + +# Switch thumb->arm. + + adr r5, back_to_arm + bx r5 + + .p2align 2 +back_to_arm: + .arm + +# Load next character, see if done. + + add r4,r4,#1 + sub r3,r3,r3 + ldrb r5,[r4,r3] + teq r5,#0 + beq done + +# Output a character (in arm mode). + + mov r0,#3 + mov r1,r4 + swi #0x123456 + +# Load next character, see if done. + + add r4,r4,#1 + sub r3,r3,r3 + ldrb r5,[r4,r3] + teq r5,#0 + bne output_next + +done: + mov r0,#0x18 + ldr r1,exit_code + swi #0x123456 + +# If that fails, try to die with an invalid insn. + + invalid + +exit_code: + .word 0x20026 diff --git a/samples/Groff/fsinterface.ms b/samples/Groff/fsinterface.ms new file mode 100644 index 00000000..1b35e732 --- /dev/null +++ b/samples/Groff/fsinterface.ms @@ -0,0 +1,1174 @@ +.\" $NetBSD: fsinterface.ms,v 1.4 2003/08/07 10:30:42 agc Exp $ +.\" +.\" Copyright (c) 1986 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)fsinterface.ms 1.4 (Berkeley) 4/16/91 +.\" +.if \nv .rm CM +.de UX +.ie \\n(UX \s-1UNIX\s0\\$1 +.el \{\ +\s-1UNIX\s0\\$1\(dg +.FS +\(dg \s-1UNIX\s0 is a registered trademark of AT&T. +.FE +.nr UX 1 +.\} +.. +.TL +Toward a Compatible Filesystem Interface +.AU +Michael J. Karels +Marshall Kirk McKusick +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.AB +.LP +As network or remote filesystems have been implemented for +.UX , +several stylized interfaces between the filesystem implementation +and the rest of the kernel have been developed. +.FS +This is an update of a paper originally presented +at the September 1986 conference of the European +.UX +Users' Group. +Last modified April 16, 1991. +.FE +Notable among these are Sun Microsystems' Virtual Filesystem interface (VFS) +using vnodes, Digital Equipment's Generic File System (GFS) architecture, +and AT&T's File System Switch (FSS). +Each design attempts to isolate filesystem-dependent details +below a generic interface and to provide a framework within which +new filesystems may be incorporated. +However, each of these interfaces is different from +and incompatible with the others. +Each of them addresses somewhat different design goals. +Each was based on a different starting version of +.UX , +targetted a different set of filesystems with varying characteristics, +and uses a different set of primitive operations provided by the filesystem. +The current study compares the various filesystem interfaces. +Criteria for comparison include generality, completeness, robustness, +efficiency and esthetics. +Several of the underlying design issues are examined in detail. +As a result of this comparison, a proposal for a new filesystem interface +is advanced that includes the best features of the existing implementations. +The proposal adopts the calling convention for name lookup introduced +in 4.3BSD, but is otherwise closely related to Sun's VFS. +A prototype implementation is now being developed at Berkeley. +This proposal and the rationale underlying its development +have been presented to major software vendors +as an early step toward convergence on a compatible filesystem interface. +.AE +.SH +Introduction +.PP +As network communications and workstation environments +became common elements in +.UX +systems, several vendors of +.UX +systems have designed and built network file systems +that allow client process on one +.UX +machine to access files on a server machine. +Examples include Sun's Network File System, NFS [Sandberg85], +AT&T's recently-announced Remote File Sharing, RFS [Rifkin86], +the LOCUS distributed filesystem [Walker85], +and Masscomp's extended filesystem [Cole85]. +Other remote filesystems have been implemented in research or university groups +for internal use, notably the network filesystem in the Eighth Edition +.UX +system [Weinberger84] and two different filesystems used at Carnegie-Mellon +University [Satyanarayanan85]. +Numerous other remote file access methods have been devised for use +within individual +.UX +processes, +many of them by modifications to the C I/O library +similar to those in the Newcastle Connection [Brownbridge82]. +.PP +Multiple network filesystems may frequently +be found in use within a single organization. +These circumstances make it highly desirable to be able to transport filesystem +implementations from one system to another. +Such portability is considerably enhanced by the use of a stylized interface +with carefully-defined entry points to separate the filesystem from the rest +of the operating system. +This interface should be similar to the interface between device drivers +and the kernel. +Although varying somewhat among the common versions of +.UX , +the device driver interfaces are sufficiently similar that device drivers +may be moved from one system to another without major problems. +A clean, well-defined interface to the filesystem also allows a single +system to support multiple local filesystem types. +.PP +For reasons such as these, several filesystem interfaces have been used +when integrating new filesystems into the system. +The best-known of these are Sun Microsystems' Virtual File System interface, +VFS [Kleiman86], and AT&T's File System Switch, FSS. +Another interface, known as the Generic File System, GFS, +has been implemented for the ULTRIX\(dd +.FS +\(dd ULTRIX is a trademark of Digital Equipment Corp. +.FE +system by Digital [Rodriguez86]. +There are numerous differences among these designs. +The differences may be understood from the varying philosophies +and design goals of the groups involved, from the systems under which +the implementations were done, and from the filesystems originally targetted +by the designs. +These differences are summarized in the following sections +within the limitations of the published specifications. +.SH +Design goals +.PP +There are several design goals which, in varying degrees, +have driven the various designs. +Each attempts to divide the filesystem into a filesystem-type-independent +layer and individual filesystem implementations. +The division between these layers occurs at somewhat different places +in these systems, reflecting different views of the diversity and types +of the filesystems that may be accommodated. +Compatibility with existing local filesystems has varying importance; +at the user-process level, each attempts to be completely transparent +except for a few filesystem-related system management programs. +The AT&T interface also makes a major effort to retain familiar internal +system interfaces, and even to retain object-file-level binary compatibility +with operating system modules such as device drivers. +Both Sun and DEC were willing to change internal data structures and interfaces +so that other operating system modules might require recompilation +or source-code modification. +.PP +AT&T's interface both allows and requires filesystems to support the full +and exact semantics of their previous filesystem, +including interruptions of system calls on slow operations. +System calls that deal with remote files are encapsulated +with their environment and sent to a server where execution continues. +The system call may be aborted by either client or server, returning +control to the client. +Most system calls that descend into the file-system dependent layer +of a filesystem other than the standard local filesystem do not return +to the higher-level kernel calling routines. +Instead, the filesystem-dependent code completes the requested +operation and then executes a non-local goto (\fIlongjmp\fP) to exit the +system call. +These efforts to avoid modification of main-line kernel code +indicate a far greater emphasis on internal compatibility than on modularity, +clean design, or efficiency. +.PP +In contrast, the Sun VFS interface makes major modifications to the internal +interfaces in the kernel, with a very clear separation +of filesystem-independent and -dependent data structures and operations. +The semantics of the filesystem are largely retained for local operations, +although this is achieved at some expense where it does not fit the internal +structuring well. +The filesystem implementations are not required to support the same +semantics as local +.UX +filesystems. +Several historical features of +.UX +filesystem behavior are difficult to achieve using the VFS interface, +including the atomicity of file and link creation and the use of open files +whose names have been removed. +.PP +A major design objective of Sun's network filesystem, +statelessness, +permeates the VFS interface. +No locking may be done in the filesystem-independent layer, +and locking in the filesystem-dependent layer may occur only during +a single call into that layer. +.PP +A final design goal of most implementors is performance. +For remote filesystems, +this goal tends to be in conflict with the goals of complete semantic +consistency, compatibility and modularity. +Sun has chosen performance over modularity in some areas, +but has emphasized clean separation of the layers within the filesystem +at the expense of performance. +Although the performance of RFS is yet to be seen, +AT&T seems to have considered compatibility far more important than modularity +or performance. +.SH +Differences among filesystem interfaces +.PP +The existing filesystem interfaces may be characterized +in several ways. +Each system is centered around a few data structures or objects, +along with a set of primitives for performing operations upon these objects. +In the original +.UX +filesystem [Ritchie74], +the basic object used by the filesystem is the inode, or index node. +The inode contains all of the information about a file except its name: +its type, identification, ownership, permissions, timestamps and location. +Inodes are identified by the filesystem device number and the index within +the filesystem. +The major entry points to the filesystem are \fInamei\fP, +which translates a filesystem pathname into the underlying inode, +and \fIiget\fP, which locates an inode by number and installs it in the in-core +inode table. +\fINamei\fP performs name translation by iterative lookup +of each component name in its directory to find its inumber, +then using \fIiget\fP to return the actual inode. +If the last component has been reached, this inode is returned; +otherwise, the inode describes the next directory to be searched. +The inode returned may be used in various ways by the caller; +it may be examined, the file may be read or written, +types and access may be checked, and fields may be modified. +Modified inodes are automatically written back the filesystem +on disk when the last reference is released with \fIiput\fP. +Although the details are considerably different, +the same general scheme is used in the faster filesystem in 4.2BSD +.UX +[Mckusick85]. +.PP +Both the AT&T interface and, to a lesser extent, the DEC interface +attempt to preserve the inode-oriented interface. +Each modify the inode to allow different varieties of the structure +for different filesystem types by separating the filesystem-dependent +parts of the inode into a separate structure or one arm of a union. +Both interfaces allow operations +equivalent to the \fInamei\fP and \fIiget\fP operations +of the old filesystem to be performed in the filesystem-independent +layer, with entry points to the individual filesystem implementations to support +the type-specific parts of these operations. Implicit in this interface +is that files may be conveniently be named by and located using a single +index within a filesystem. +The GFS provides specific entry points to the filesystems +to change most file properties rather than allowing arbitrary changes +to be made to the generic part of the inode. +.PP +In contrast, the Sun VFS interface replaces the inode as the primary object +with the vnode. +The vnode contains no filesystem-dependent fields except the pointer +to the set of operations implemented by the filesystem. +Properties of a vnode that might be transient, such as the ownership, +permissions, size and timestamps, are maintained by the lower layer. +These properties may be presented in a generic format upon request; +callers are expected not to hold this information for any length of time, +as they may not be up-to-date later on. +The vnode operations do not include a corollary for \fIiget\fP; +the only external interface for obtaining vnodes for specific files +is the name lookup operation. +(Separate procedures are provided outside of this interface +that obtain a ``file handle'' for a vnode which may be given +to a client by a server, such that the vnode may be retrieved +upon later presentation of the file handle.) +.SH +Name translation issues +.PP +Each of the systems described include a mechanism for performing +pathname-to-internal-representation translation. +The style of the name translation function is very different in all +three systems. +As described above, the AT&T and DEC systems retain the \fInamei\fP function. +The two are quite different, however, as the ULTRIX interface uses +the \fInamei\fP calling convention introduced in 4.3BSD. +The parameters and context for the name lookup operation +are collected in a \fInameidata\fP structure which is passed to \fInamei\fP +for operation. +Intent to create or delete the named file is declared in advance, +so that the final directory scan in \fInamei\fP may retain information +such as the offset in the directory at which the modification will be made. +Filesystems that use such mechanisms to avoid redundant work +must therefore lock the directory to be modified so that it may not +be modified by another process before completion. +In the System V filesystem, as in previous versions of +.UX , +this information is stored in the per-process \fIuser\fP structure +by \fInamei\fP for use by a low-level routine called after performing +the actual creation or deletion of the file itself. +In 4.3BSD and in the GFS interface, these side effects of \fInamei\fP +are stored in the \fInameidata\fP structure given as argument to \fInamei\fP, +which is also presented to the routine implementing file creation or deletion. +.PP +The ULTRIX \fInamei\fP routine is responsible for the generic +parts of the name translation process, such as copying the name into +an internal buffer, validating it, interpolating +the contents of symbolic links, and indirecting at mount points. +As in 4.3BSD, the name is copied into the buffer in a single call, +according to the location of the name. +After determining the type of the filesystem at the start of translation +(the current directory or root directory), it calls the filesystem's +\fInamei\fP entry with the same structure it received from its caller. +The filesystem-specific routine translates the name, component by component, +as long as no mount points are reached. +It may return after any number of components have been processed. +\fINamei\fP performs any processing at mount points, then calls +the correct translation routine for the next filesystem. +Network filesystems may pass the remaining pathname to a server for translation, +or they may look up the pathname components one at a time. +The former strategy would be more efficient, +but the latter scheme allows mount points within a remote filesystem +without server knowledge of all client mounts. +.PP +The AT&T \fInamei\fP interface is presumably the same as that in previous +.UX +systems, accepting the name of a routine to fetch pathname characters +and an operation (one of: lookup, lookup for creation, or lookup for deletion). +It translates, component by component, as before. +If it detects that a mount point crosses to a remote filesystem, +it passes the remainder of the pathname to the remote server. +A pathname-oriented request other than open may be completed +within the \fInamei\fP call, +avoiding return to the (unmodified) system call handler +that called \fInamei\fP. +.PP +In contrast to the first two systems, Sun's VFS interface has replaced +\fInamei\fP with \fIlookupname\fP. +This routine simply calls a new pathname-handling module to allocate +a pathname buffer and copy in the pathname (copying a character per call), +then calls \fIlookuppn\fP. +\fILookuppn\fP performs the iteration over the directories leading +to the destination file; it copies each pathname component to a local buffer, +then calls the filesystem \fIlookup\fP entry to locate the vnode +for that file in the current directory. +Per-filesystem \fIlookup\fP routines may translate only one component +per call. +For creation and deletion of new files, the lookup operation is unmodified; +the lookup of the final component only serves to check for the existence +of the file. +The subsequent creation or deletion call, if any, must repeat the final +name translation and associated directory scan. +For new file creation in particular, this is rather inefficient, +as file creation requires two complete scans of the directory. +.PP +Several of the important performance improvements in 4.3BSD +were related to the name translation process [McKusick85][Leffler84]. +The following changes were made: +.IP 1. 4 +A system-wide cache of recent translations is maintained. +The cache is separate from the inode cache, so that multiple names +for a file may be present in the cache. +The cache does not hold ``hard'' references to the inodes, +so that the normal reference pattern is not disturbed. +.IP 2. +A per-process cache is kept of the directory and offset +at which the last successful name lookup was done. +This allows sequential lookups of all the entries in a directory to be done +in linear time. +.IP 3. +The entire pathname is copied into a kernel buffer in a single operation, +rather than using two subroutine calls per character. +.IP 4. +A pool of pathname buffers are held by \fInamei\fP, avoiding allocation +overhead. +.LP +All of these performance improvements from 4.3BSD are well worth using +within a more generalized filesystem framework. +The generalization of the structure may otherwise make an already-expensive +function even more costly. +Most of these improvements are present in the GFS system, as it derives +from the beta-test version of 4.3BSD. +The Sun system uses a name-translation cache generally like that in 4.3BSD. +The name cache is a filesystem-independent facility provided for the use +of the filesystem-specific lookup routines. +The Sun cache, like that first used at Berkeley but unlike that in 4.3, +holds a ``hard'' reference to the vnode (increments the reference count). +The ``soft'' reference scheme in 4.3BSD cannot be used with the current +NFS implementation, as NFS allocates vnodes dynamically and frees them +when the reference count returns to zero rather than caching them. +As a result, fewer names may be held in the cache +than (local filesystem) vnodes, and the cache distorts the normal reference +patterns otherwise seen by the LRU cache. +As the name cache references overflow the local filesystem inode table, +the name cache must be purged to make room in the inode table. +Also, to determine whether a vnode is in use (for example, +before mounting upon it), the cache must be flushed to free any +cache reference. +These problems should be corrected +by the use of the soft cache reference scheme. +.PP +A final observation on the efficiency of name translation in the current +Sun VFS architecture is that the number of subroutine calls used +by a multi-component name lookup is dramatically larger +than in the other systems. +The name lookup scheme in GFS suffers from this problem much less, +at no expense in violation of layering. +.PP +A final problem to be considered is synchronization and consistency. +As the filesystem operations are more stylized and broken into separate +entry points for parts of operations, it is more difficult to guarantee +consistency throughout an operation and/or to synchronize with other +processes using the same filesystem objects. +The Sun interface suffers most severely from this, +as it forbids the filesystems from locking objects across calls +to the filesystem. +It is possible that a file may be created between the time that a lookup +is performed and a subsequent creation is requested. +Perhaps more strangely, after a lookup fails to find the target +of a creation attempt, the actual creation might find that the target +now exists and is a symbolic link. +The call will either fail unexpectedly, as the target is of the wrong type, +or the generic creation routine will have to note the error +and restart the operation from the lookup. +This problem will always exist in a stateless filesystem, +but the VFS interface forces all filesystems to share the problem. +This restriction against locking between calls also +forces duplication of work during file creation and deletion. +This is considered unacceptable. +.SH +Support facilities and other interactions +.PP +Several support facilities are used by the current +.UX +filesystem and require generalization for use by other filesystem types. +For filesystem implementations to be portable, +it is desirable that these modified support facilities +should also have a uniform interface and +behave in a consistent manner in target systems. +A prominent example is the filesystem buffer cache. +The buffer cache in a standard (System V or 4.3BSD) +.UX +system contains physical disk blocks with no reference to the files containing +them. +This works well for the local filesystem, but has obvious problems +for remote filesystems. +Sun has modified the buffer cache routines to describe buffers by vnode +rather than by device. +For remote files, the vnode used is that of the file, and the block +numbers are virtual data blocks. +For local filesystems, a vnode for the block device is used for cache reference, +and the block numbers are filesystem physical blocks. +Use of per-file cache description does not easily accommodate +caching of indirect blocks, inode blocks, superblocks or cylinder group blocks. +However, the vnode describing the block device for the cache +is one created internally, +rather than the vnode for the device looked up when mounting, +and it is located by searching a private list of vnodes +rather than by holding it in the mount structure. +Although the Sun modification makes it possible to use the buffer +cache for data blocks of remote files, a better generalization +of the buffer cache is needed. +.PP +The RFS filesystem used by AT&T does not currently cache data blocks +on client systems, thus the buffer cache is probably unmodified. +The form of the buffer cache in ULTRIX is unknown to us. +.PP +Another subsystem that has a large interaction with the filesystem +is the virtual memory system. +The virtual memory system must read data from the filesystem +to satisfy fill-on-demand page faults. +For efficiency, this read call is arranged to place the data directly +into the physical pages assigned to the process (a ``raw'' read) to avoid +copying the data. +Although the read operation normally bypasses the filesystem buffer cache, +consistency must be maintained by checking the buffer cache and copying +or flushing modified data not yet stored on disk. +The 4.2BSD virtual memory system, like that of Sun and ULTRIX, +maintains its own cache of reusable text pages. +This creates additional complications. +As the virtual memory systems are redesigned, these problems should be +resolved by reading through the buffer cache, then mapping the cached +data into the user address space. +If the buffer cache or the process pages are changed while the other reference +remains, the data would have to be copied (``copy-on-write''). +.PP +In the meantime, the current virtual memory systems must be used +with the new filesystem framework. +Both the Sun and AT&T filesystem interfaces +provide entry points to the filesystem for optimization of the virtual +memory system by performing logical-to-physical block number translation +when setting up a fill-on-demand image for a process. +The VFS provides a vnode operation analogous to the \fIbmap\fP function of the +.UX +filesystem. +Given a vnode and logical block number, it returns a vnode and block number +which may be read to obtain the data. +If the filesystem is local, it returns the private vnode for the block device +and the physical block number. +As the \fIbmap\fP operations are all performed at one time, during process +startup, any indirect blocks for the file will remain in the cache +after they are once read. +In addition, the interface provides a \fIstrategy\fP entry that may be used +for ``raw'' reads from a filesystem device, +used to read data blocks into an address space without copying. +This entry uses a buffer header (\fIbuf\fP structure) +to describe the I/O operation +instead of a \fIuio\fP structure. +The buffer-style interface is the same as that used by disk drivers internally. +This difference allows the current \fIuio\fP primitives to be avoided, +as they copy all data to/from the current user process address space. +Instead, for local filesystems these operations could be done internally +with the standard raw disk read routines, +which use a \fIuio\fP interface. +When loading from a remote filesystems, +the data will be received in a network buffer. +If network buffers are suitably aligned, +the data may be mapped into the process address space by a page swap +without copying. +In either case, it should be possible to use the standard filesystem +read entry from the virtual memory system. +.PP +Other issues that must be considered in devising a portable +filesystem implementation include kernel memory allocation, +the implicit use of user-structure global context, +which may create problems with reentrancy, +the style of the system call interface, +and the conventions for synchronization +(sleep/wakeup, handling of interrupted system calls, semaphores). +.SH +The Berkeley Proposal +.PP +The Sun VFS interface has been most widely used of the three described here. +It is also the most general of the three, in that filesystem-specific +data and operations are best separated from the generic layer. +Although it has several disadvantages which were described above, +most of them may be corrected with minor changes to the interface +(and, in a few areas, philosophical changes). +The DEC GFS has other advantages, in particular the use of the 4.3BSD +\fInamei\fP interface and optimizations. +It allows single or multiple components of a pathname +to be translated in a single call to the specific filesystem +and thus accommodates filesystems with either preference. +The FSS is least well understood, as there is little public information +about the interface. +However, the design goals are the least consistent with those of the Berkeley +research groups. +Accordingly, a new filesystem interface has been devised to avoid +some of the problems in the other systems. +The proposed interface derives directly from Sun's VFS, +but, like GFS, uses a 4.3BSD-style name lookup interface. +Additional context information has been moved from the \fIuser\fP structure +to the \fInameidata\fP structure so that name translation may be independent +of the global context of a user process. +This is especially desired in any system where kernel-mode servers +operate as light-weight or interrupt-level processes, +or where a server may store or cache context for several clients. +This calling interface has the additional advantage +that the call parameters need not all be pushed onto the stack for each call +through the filesystem interface, +and they may be accessed using short offsets from a base pointer +(unlike global variables in the \fIuser\fP structure). +.PP +The proposed filesystem interface is described very tersely here. +For the most part, data structures and procedures are analogous +to those used by VFS, and only the changes will be be treated here. +See [Kleiman86] for complete descriptions of the vfs and vnode operations +in Sun's interface. +.PP +The central data structure for name translation is the \fInameidata\fP +structure. +The same structure is used to pass parameters to \fInamei\fP, +to pass these same parameters to filesystem-specific lookup routines, +to communicate completion status from the lookup routines back to \fInamei\fP, +and to return completion status to the calling routine. +For creation or deletion requests, the parameters to the filesystem operation +to complete the request are also passed in this same structure. +The form of the \fInameidata\fP structure is: +.br +.ne 2i +.ID +.nf +.ta .5i +\w'caddr_t\0\0\0'u +\w'struct\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Encapsulation of namei parameters. + * One of these is located in the u. area to + * minimize space allocated on the kernel stack + * and to retain per-process context. + */ +struct nameidata { + /* arguments to namei and related context: */ + caddr_t ni_dirp; /* pathname pointer */ + enum uio_seg ni_seg; /* location of pathname */ + short ni_nameiop; /* see below */ + struct vnode *ni_cdir; /* current directory */ + struct vnode *ni_rdir; /* root directory, if not normal root */ + struct ucred *ni_cred; /* credentials */ + + /* shared between namei, lookup routines and commit routines: */ + caddr_t ni_pnbuf; /* pathname buffer */ + char *ni_ptr; /* current location in pathname */ + int ni_pathlen; /* remaining chars in path */ + short ni_more; /* more left to translate in pathname */ + short ni_loopcnt; /* count of symlinks encountered */ + + /* results: */ + struct vnode *ni_vp; /* vnode of result */ + struct vnode *ni_dvp; /* vnode of intermediate directory */ + +/* BEGIN UFS SPECIFIC */ + struct diroffcache { /* last successful directory search */ + struct vnode *nc_prevdir; /* terminal directory */ + long nc_id; /* directory's unique id */ + off_t nc_prevoffset; /* where last entry found */ + } ni_nc; +/* END UFS SPECIFIC */ +}; +.DE +.DS +.ta \w'#define\0\0'u +\w'WANTPARENT\0\0'u +\w'0x40\0\0\0\0\0\0\0'u +/* + * namei operations and modifiers + */ +#define LOOKUP 0 /* perform name lookup only */ +#define CREATE 1 /* setup for file creation */ +#define DELETE 2 /* setup for file deletion */ +#define WANTPARENT 0x10 /* return parent directory vnode also */ +#define NOCACHE 0x20 /* name must not be left in cache */ +#define FOLLOW 0x40 /* follow symbolic links */ +#define NOFOLLOW 0x0 /* don't follow symbolic links (pseudo) */ +.DE +As in current systems other than Sun's VFS, \fInamei\fP is called +with an operation request, one of LOOKUP, CREATE or DELETE. +For a LOOKUP, the operation is exactly like the lookup in VFS. +CREATE and DELETE allow the filesystem to ensure consistency +by locking the parent inode (private to the filesystem), +and (for the local filesystem) to avoid duplicate directory scans +by storing the new directory entry and its offset in the directory +in the \fIndirinfo\fP structure. +This is intended to be opaque to the filesystem-independent levels. +Not all lookups for creation or deletion are actually followed +by the intended operation; permission may be denied, the filesystem +may be read-only, etc. +Therefore, an entry point to the filesystem is provided +to abort a creation or deletion operation +and allow release of any locked internal data. +After a \fInamei\fP with a CREATE or DELETE flag, the pathname pointer +is set to point to the last filename component. +Filesystems that choose to implement creation or deletion entirely +within the subsequent call to a create or delete entry +are thus free to do so. +.PP +The \fInameidata\fP is used to store context used during name translation. +The current and root directories for the translation are stored here. +For the local filesystem, the per-process directory offset cache +is also kept here. +A file server could leave the directory offset cache empty, +could use a single cache for all clients, +or could hold caches for several recent clients. +.PP +Several other data structures are used in the filesystem operations. +One is the \fIucred\fP structure which describes a client's credentials +to the filesystem. +This is modified slightly from the Sun structure; +the ``accounting'' group ID has been merged into the groups array. +The actual number of groups in the array is given explicitly +to avoid use of a reserved group ID as a terminator. +Also, typedefs introduced in 4.3BSD for user and group ID's have been used. +The \fIucred\fP structure is thus: +.DS +.ta .5i +\w'caddr_t\0\0\0'u +\w'struct\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Credentials. + */ +struct ucred { + u_short cr_ref; /* reference count */ + uid_t cr_uid; /* effective user id */ + short cr_ngroups; /* number of groups */ + gid_t cr_groups[NGROUPS]; /* groups */ + /* + * The following either should not be here, + * or should be treated as opaque. + */ + uid_t cr_ruid; /* real user id */ + gid_t cr_svgid; /* saved set-group id */ +}; +.DE +.PP +A final structure used by the filesystem interface is the \fIuio\fP +structure mentioned earlier. +This structure describes the source or destination of an I/O +operation, with provision for scatter/gather I/O. +It is used in the read and write entries to the filesystem. +The \fIuio\fP structure presented here is modified from the one +used in 4.2BSD to specify the location of each vector of the operation +(user or kernel space) +and to allow an alternate function to be used to implement the data movement. +The alternate function might perform page remapping rather than a copy, +for example. +.DS +.ta .5i +\w'caddr_t\0\0\0'u +\w'struct\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Description of an I/O operation which potentially + * involves scatter-gather, with individual sections + * described by iovec, below. uio_resid is initially + * set to the total size of the operation, and is + * decremented as the operation proceeds. uio_offset + * is incremented by the amount of each operation. + * uio_iov is incremented and uio_iovcnt is decremented + * after each vector is processed. + */ +struct uio { + struct iovec *uio_iov; + int uio_iovcnt; + off_t uio_offset; + int uio_resid; + enum uio_rw uio_rw; +}; + +enum uio_rw { UIO_READ, UIO_WRITE }; +.DE +.DS +.ta .5i +\w'caddr_t\0\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Description of a contiguous section of an I/O operation. + * If iov_op is non-null, it is called to implement the copy + * operation, possibly by remapping, with the call + * (*iov_op)(from, to, count); + * where from and to are caddr_t and count is int. + * Otherwise, the copy is done in the normal way, + * treating base as a user or kernel virtual address + * according to iov_segflg. + */ +struct iovec { + caddr_t iov_base; + int iov_len; + enum uio_seg iov_segflg; + int (*iov_op)(); +}; +.DE +.DS +.ta .5i +\w'UIO_USERISPACE\0\0\0\0\0'u +/* + * Segment flag values. + */ +enum uio_seg { + UIO_USERSPACE, /* from user data space */ + UIO_SYSSPACE, /* from system space */ + UIO_USERISPACE /* from user I space */ +}; +.DE +.SH +File and filesystem operations +.PP +With the introduction of the data structures used by the filesystem +operations, the complete list of filesystem entry points may be listed. +As noted, they derive mostly from the Sun VFS interface. +Lines marked with \fB+\fP are additions to the Sun definitions; +lines marked with \fB!\fP are modified from VFS. +.PP +The structure describing the externally-visible features of a mounted +filesystem, \fIvfs\fP, is: +.DS +.ta .5i +\w'struct vfsops\0\0\0'u +\w'*vfs_vnodecovered;\0\0\0\0\0'u +/* + * Structure per mounted file system. + * Each mounted file system has an array of + * operations and an instance record. + * The file systems are put on a doubly linked list. + */ +struct vfs { + struct vfs *vfs_next; /* next vfs in vfs list */ +\fB+\fP struct vfs *vfs_prev; /* prev vfs in vfs list */ + struct vfsops *vfs_op; /* operations on vfs */ + struct vnode *vfs_vnodecovered; /* vnode we mounted on */ + int vfs_flag; /* flags */ +\fB!\fP int vfs_fsize; /* fundamental block size */ +\fB+\fP int vfs_bsize; /* optimal transfer size */ +\fB!\fP uid_t vfs_exroot; /* exported fs uid 0 mapping */ + short vfs_exflags; /* exported fs flags */ + caddr_t vfs_data; /* private data */ +}; +.DE +.DS +.ta \w'\fB+\fP 'u +\w'#define\0\0'u +\w'VFS_EXPORTED\0\0'u +\w'0x40\0\0\0\0\0'u + /* + * vfs flags. + * VFS_MLOCK lock the vfs so that name lookup cannot proceed past the vfs. + * This keeps the subtree stable during mounts and unmounts. + */ + #define VFS_RDONLY 0x01 /* read only vfs */ +\fB+\fP #define VFS_NOEXEC 0x02 /* can't exec from filesystem */ + #define VFS_MLOCK 0x04 /* lock vfs so that subtree is stable */ + #define VFS_MWAIT 0x08 /* someone is waiting for lock */ + #define VFS_NOSUID 0x10 /* don't honor setuid bits on vfs */ + #define VFS_EXPORTED 0x20 /* file system is exported (NFS) */ + + /* + * exported vfs flags. + */ + #define EX_RDONLY 0x01 /* exported read only */ +.DE +.LP +The operations supported by the filesystem-specific layer +on an individual filesystem are: +.DS +.ta .5i +\w'struct vfsops\0\0\0'u +\w'*vfs_vnodecovered;\0\0\0\0\0'u +/* + * Operations supported on virtual file system. + */ +struct vfsops { +\fB!\fP int (*vfs_mount)( /* vfs, path, data, datalen */ ); +\fB!\fP int (*vfs_unmount)( /* vfs, forcibly */ ); +\fB+\fP int (*vfs_mountroot)(); + int (*vfs_root)( /* vfs, vpp */ ); +\fB!\fP int (*vfs_statfs)( /* vfs, vp, sbp */ ); +\fB!\fP int (*vfs_sync)( /* vfs, waitfor */ ); +\fB+\fP int (*vfs_fhtovp)( /* vfs, fhp, vpp */ ); +\fB+\fP int (*vfs_vptofh)( /* vp, fhp */ ); +}; +.DE +.LP +The \fIvfs_statfs\fP entry returns a structure of the form: +.DS +.ta .5i +\w'struct vfsops\0\0\0'u +\w'*vfs_vnodecovered;\0\0\0\0\0'u +/* + * file system statistics + */ +struct statfs { +\fB!\fP short f_type; /* type of filesystem */ +\fB+\fP short f_flags; /* copy of vfs (mount) flags */ +\fB!\fP long f_fsize; /* fundamental file system block size */ +\fB+\fP long f_bsize; /* optimal transfer block size */ + long f_blocks; /* total data blocks in file system */ + long f_bfree; /* free blocks in fs */ + long f_bavail; /* free blocks avail to non-superuser */ + long f_files; /* total file nodes in file system */ + long f_ffree; /* free file nodes in fs */ + fsid_t f_fsid; /* file system id */ +\fB+\fP char *f_mntonname; /* directory on which mounted */ +\fB+\fP char *f_mntfromname; /* mounted filesystem */ + long f_spare[7]; /* spare for later */ +}; + +typedef long fsid_t[2]; /* file system id type */ +.DE +.LP +The modifications to Sun's interface at this level are minor. +Additional arguments are present for the \fIvfs_mount\fP and \fIvfs_umount\fP +entries. +\fIvfs_statfs\fP accepts a vnode as well as filesystem identifier, +as the information may not be uniform throughout a filesystem. +For example, +if a client may mount a file tree that spans multiple physical +filesystems on a server, different sections may have different amounts +of free space. +(NFS does not allow remotely-mounted file trees to span physical filesystems +on the server.) +The final additions are the entries that support file handles. +\fIvfs_vptofh\fP is provided for the use of file servers, +which need to obtain an opaque +file handle to represent the current vnode for transmission to clients. +This file handle may later be used to relocate the vnode using \fIvfs_fhtovp\fP +without requiring the vnode to remain in memory. +.PP +Finally, the external form of a filesystem object, the \fIvnode\fP, is: +.DS +.ta .5i +\w'struct vnodeops\0\0'u +\w'*v_vfsmountedhere;\0\0\0'u +/* + * vnode types. VNON means no type. + */ +enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK }; + +struct vnode { + u_short v_flag; /* vnode flags (see below) */ + u_short v_count; /* reference count */ + u_short v_shlockc; /* count of shared locks */ + u_short v_exlockc; /* count of exclusive locks */ + struct vfs *v_vfsmountedhere; /* ptr to vfs mounted here */ + struct vfs *v_vfsp; /* ptr to vfs we are in */ + struct vnodeops *v_op; /* vnode operations */ +\fB+\fP struct text *v_text; /* text/mapped region */ + enum vtype v_type; /* vnode type */ + caddr_t v_data; /* private data for fs */ +}; +.DE +.DS +.ta \w'#define\0\0'u +\w'NOFOLLOW\0\0'u +\w'0x40\0\0\0\0\0\0\0'u +/* + * vnode flags. + */ +#define VROOT 0x01 /* root of its file system */ +#define VTEXT 0x02 /* vnode is a pure text prototype */ +#define VEXLOCK 0x10 /* exclusive lock */ +#define VSHLOCK 0x20 /* shared lock */ +#define VLWAIT 0x40 /* proc is waiting on shared or excl. lock */ +.DE +.LP +The operations supported by the filesystems on individual \fIvnode\fP\^s +are: +.DS +.ta .5i +\w'int\0\0\0\0\0'u +\w'(*vn_getattr)(\0\0\0\0\0'u +/* + * Operations on vnodes. + */ +struct vnodeops { +\fB!\fP int (*vn_lookup)( /* ndp */ ); +\fB!\fP int (*vn_create)( /* ndp, vap, fflags */ ); +\fB+\fP int (*vn_mknod)( /* ndp, vap, fflags */ ); +\fB!\fP int (*vn_open)( /* vp, fflags, cred */ ); + int (*vn_close)( /* vp, fflags, cred */ ); + int (*vn_access)( /* vp, fflags, cred */ ); + int (*vn_getattr)( /* vp, vap, cred */ ); + int (*vn_setattr)( /* vp, vap, cred */ ); + +\fB+\fP int (*vn_read)( /* vp, uiop, offp, ioflag, cred */ ); +\fB+\fP int (*vn_write)( /* vp, uiop, offp, ioflag, cred */ ); +\fB!\fP int (*vn_ioctl)( /* vp, com, data, fflag, cred */ ); + int (*vn_select)( /* vp, which, cred */ ); +\fB+\fP int (*vn_mmap)( /* vp, ..., cred */ ); + int (*vn_fsync)( /* vp, cred */ ); +\fB+\fP int (*vn_seek)( /* vp, offp, off, whence */ ); + +\fB!\fP int (*vn_remove)( /* ndp */ ); +\fB!\fP int (*vn_link)( /* vp, ndp */ ); +\fB!\fP int (*vn_rename)( /* src ndp, target ndp */ ); +\fB!\fP int (*vn_mkdir)( /* ndp, vap */ ); +\fB!\fP int (*vn_rmdir)( /* ndp */ ); +\fB!\fP int (*vn_symlink)( /* ndp, vap, nm */ ); + int (*vn_readdir)( /* vp, uiop, offp, ioflag, cred */ ); + int (*vn_readlink)( /* vp, uiop, ioflag, cred */ ); + +\fB+\fP int (*vn_abortop)( /* ndp */ ); +\fB+\fP int (*vn_lock)( /* vp */ ); +\fB+\fP int (*vn_unlock)( /* vp */ ); +\fB!\fP int (*vn_inactive)( /* vp */ ); +}; +.DE +.DS +.ta \w'#define\0\0'u +\w'NOFOLLOW\0\0'u +\w'0x40\0\0\0\0\0'u +/* + * flags for ioflag + */ +#define IO_UNIT 0x01 /* do io as atomic unit for VOP_RDWR */ +#define IO_APPEND 0x02 /* append write for VOP_RDWR */ +#define IO_SYNC 0x04 /* sync io for VOP_RDWR */ +.DE +.LP +The argument types listed in the comments following each operation are: +.sp +.IP ndp 10 +A pointer to a \fInameidata\fP structure. +.IP vap +A pointer to a \fIvattr\fP structure (vnode attributes; see below). +.IP fflags +File open flags, possibly including O_APPEND, O_CREAT, O_TRUNC and O_EXCL. +.IP vp +A pointer to a \fIvnode\fP previously obtained with \fIvn_lookup\fP. +.IP cred +A pointer to a \fIucred\fP credentials structure. +.IP uiop +A pointer to a \fIuio\fP structure. +.IP ioflag +Any of the IO flags defined above. +.IP com +An \fIioctl\fP command, with type \fIunsigned long\fP. +.IP data +A pointer to a character buffer used to pass data to or from an \fIioctl\fP. +.IP which +One of FREAD, FWRITE or 0 (select for exceptional conditions). +.IP off +A file offset of type \fIoff_t\fP. +.IP offp +A pointer to file offset of type \fIoff_t\fP. +.IP whence +One of L_SET, L_INCR, or L_XTND. +.IP fhp +A pointer to a file handle buffer. +.sp +.PP +Several changes have been made to Sun's set of vnode operations. +Most obviously, the \fIvn_lookup\fP receives a \fInameidata\fP structure +containing its arguments and context as described. +The same structure is also passed to one of the creation or deletion +entries if the lookup operation is for CREATE or DELETE to complete +an operation, or to the \fIvn_abortop\fP entry if no operation +is undertaken. +For filesystems that perform no locking between lookup for creation +or deletion and the call to implement that action, +the final pathname component may be left untranslated by the lookup +routine. +In any case, the pathname pointer points at the final name component, +and the \fInameidata\fP contains a reference to the vnode of the parent +directory. +The interface is thus flexible enough to accommodate filesystems +that are fully stateful or fully stateless, while avoiding redundant +operations whenever possible. +One operation remains problematical, the \fIvn_rename\fP call. +It is tempting to look up the source of the rename for deletion +and the target for creation. +However, filesystems that lock directories during such lookups must avoid +deadlock if the two paths cross. +For that reason, the source is translated for LOOKUP only, +with the WANTPARENT flag set; +the target is then translated with an operation of CREATE. +.PP +In addition to the changes concerned with the \fInameidata\fP interface, +several other changes were made in the vnode operations. +The \fIvn_rdrw\fP entry was split into \fIvn_read\fP and \fIvn_write\fP; +frequently, the read/write entry amounts to a routine that checks +the direction flag, then calls either a read routine or a write routine. +The two entries may be identical for any given filesystem; +the direction flag is contained in the \fIuio\fP given as an argument. +.PP +All of the read and write operations use a \fIuio\fP to describe +the file offset and buffer locations. +All of these fields must be updated before return. +In particular, the \fIvn_readdir\fP entry uses this +to return a new file offset token for its current location. +.PP +Several new operations have been added. +The first, \fIvn_seek\fP, is a concession to record-oriented files +such as directories. +It allows the filesystem to verify that a seek leaves a file at a sensible +offset, or to return a new offset token relative to an earlier one. +For most filesystems and files, this operation amounts to performing +simple arithmetic. +Another new entry point is \fIvn_mmap\fP, for use in mapping device memory +into a user process address space. +Its semantics are not yet decided. +The final additions are the \fIvn_lock\fP and \fIvn_unlock\fP entries. +These are used to request that the underlying file be locked against +changes for short periods of time if the filesystem implementation allows it. +They are used to maintain consistency +during internal operations such as \fIexec\fP, +and may not be used to construct atomic operations from other filesystem +operations. +.PP +The attributes of a vnode are not stored in the vnode, +as they might change with time and may need to be read from a remote +source. +Attributes have the form: +.DS +.ta .5i +\w'struct vnodeops\0\0'u +\w'*v_vfsmountedhere;\0\0\0'u +/* + * Vnode attributes. A field value of -1 + * represents a field whose value is unavailable + * (getattr) or which is not to be changed (setattr). + */ +struct vattr { + enum vtype va_type; /* vnode type (for create) */ + u_short va_mode; /* files access mode and type */ +\fB!\fP uid_t va_uid; /* owner user id */ +\fB!\fP gid_t va_gid; /* owner group id */ + long va_fsid; /* file system id (dev for now) */ +\fB!\fP long va_fileid; /* file id */ + short va_nlink; /* number of references to file */ + u_long va_size; /* file size in bytes (quad?) */ +\fB+\fP u_long va_size1; /* reserved if not quad */ + long va_blocksize; /* blocksize preferred for i/o */ + struct timeval va_atime; /* time of last access */ + struct timeval va_mtime; /* time of last modification */ + struct timeval va_ctime; /* time file changed */ + dev_t va_rdev; /* device the file represents */ + u_long va_bytes; /* bytes of disk space held by file */ +\fB+\fP u_long va_bytes1; /* reserved if va_bytes not a quad */ +}; +.DE +.SH +Conclusions +.PP +The Sun VFS filesystem interface is the most widely used generic +filesystem interface. +Of the interfaces examined, it creates the cleanest separation +between the filesystem-independent and -dependent layers and data structures. +It has several flaws, but it is felt that certain changes in the interface +can ameliorate most of them. +The interface proposed here includes those changes. +The proposed interface is now being implemented by the Computer Systems +Research Group at Berkeley. +If the design succeeds in improving the flexibility and performance +of the filesystem layering, it will be advanced as a model interface. +.SH +Acknowledgements +.PP +The filesystem interface described here is derived from Sun's VFS interface. +It also includes features similar to those of DEC's GFS interface. +We are indebted to members of the Sun and DEC system groups +for long discussions of the issues involved. +.br +.ne 2i +.SH +References + +.IP Brownbridge82 \w'Satyanarayanan85\0\0'u +Brownbridge, D.R., L.F. Marshall, B. Randell, +``The Newcastle Connection, or UNIXes of the World Unite!,'' +\fISoftware\- Practice and Experience\fP, Vol. 12, pp. 1147-1162, 1982. + +.IP Cole85 +Cole, C.T., P.B. Flinn, A.B. Atlas, +``An Implementation of an Extended File System for UNIX,'' +\fIUsenix Conference Proceedings\fP, +pp. 131-150, June, 1985. + +.IP Kleiman86 +``Vnodes: An Architecture for Multiple File System Types in Sun UNIX,'' +\fIUsenix Conference Proceedings\fP, +pp. 238-247, June, 1986. + +.IP Leffler84 +Leffler, S., M.K. McKusick, M. Karels, +``Measuring and Improving the Performance of 4.2BSD,'' +\fIUsenix Conference Proceedings\fP, pp. 237-252, June, 1984. + +.IP McKusick84 +McKusick, M.K., W.N. Joy, S.J. Leffler, R.S. Fabry, +``A Fast File System for UNIX,'' \fITransactions on Computer Systems\fP, +Vol. 2, pp. 181-197, +ACM, August, 1984. + +.IP McKusick85 +McKusick, M.K., M. Karels, S. Leffler, +``Performance Improvements and Functional Enhancements in 4.3BSD,'' +\fIUsenix Conference Proceedings\fP, pp. 519-531, June, 1985. + +.IP Rifkin86 +Rifkin, A.P., M.P. Forbes, R.L. Hamilton, M. Sabrio, S. Shah, and K. Yueh, +``RFS Architectural Overview,'' \fIUsenix Conference Proceedings\fP, +pp. 248-259, June, 1986. + +.IP Ritchie74 +Ritchie, D.M. and K. Thompson, ``The Unix Time-Sharing System,'' +\fICommunications of the ACM\fP, Vol. 17, pp. 365-375, July, 1974. + +.IP Rodriguez86 +Rodriguez, R., M. Koehler, R. Hyde, +``The Generic File System,'' \fIUsenix Conference Proceedings\fP, +pp. 260-269, June, 1986. + +.IP Sandberg85 +Sandberg, R., D. Goldberg, S. Kleiman, D. Walsh, B. Lyon, +``Design and Implementation of the Sun Network Filesystem,'' +\fIUsenix Conference Proceedings\fP, +pp. 119-130, June, 1985. + +.IP Satyanarayanan85 +Satyanarayanan, M., \fIet al.\fP, +``The ITC Distributed File System: Principles and Design,'' +\fIProc. 10th Symposium on Operating Systems Principles\fP, pp. 35-50, +ACM, December, 1985. + +.IP Walker85 +Walker, B.J. and S.H. Kiser, ``The LOCUS Distributed Filesystem,'' +\fIThe LOCUS Distributed System Architecture\fP, +G.J. Popek and B.J. Walker, ed., The MIT Press, Cambridge, MA, 1985. + +.IP Weinberger84 +Weinberger, P.J., ``The Version 8 Network File System,'' +\fIUsenix Conference presentation\fP, +June, 1984. From 78efc2d0def6dae6ce8fa75a27122937696d15d1 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 12 Jun 2015 10:22:20 +0200 Subject: [PATCH 525/875] Add PicoLisp language. --- lib/linguist/languages.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index c1598bff..5c6693c3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2490,6 +2490,16 @@ Perl6: tm_scope: source.perl.6 ace_mode: perl +PicoLisp: + type: programming + extensions: + - .l + interpreters: + - picolisp + - pil + tm_scope: source.lisp + ace_mode: lisp + PigLatin: type: programming color: "#fcd7de" From 8c66f0a5da0471ee6be33cacb9c0f54f685156a9 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 12 Jun 2015 10:25:24 +0200 Subject: [PATCH 526/875] Heuristic for PicoLisp. --- lib/linguist/heuristics.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 1b2c2a5b..71867f19 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -290,13 +290,15 @@ module Linguist end end - disambiguate "Common Lisp", "Lex", "Groff" do |data| - if data.include?("(def(un|macro)\s") + disambiguate "Common Lisp", "Lex", "Groff", "PicoLisp" do |data| + if /\(def(un|macro)\s/.match(data) Language["Common Lisp"] elsif /^(%[%{}]xs|<.*>)/.match(data) Language["Lex"] elsif /^\.[a-z][a-z](\s|$)/i.match(data) Language["Groff"] + elsif /^\((de|class|rel|code|data|must)\s/.match(data) + Language["PicoLisp"] end end From 260e90401d9b22c859b9c46b9746d2aa9534fecb Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 12 Jun 2015 11:50:59 +0200 Subject: [PATCH 527/875] Add samples for .l. array.l by NANRI southly; MIT license. simul.l by Alexander Burger; MIT license. --- samples/Common Lisp/array.l | 164 +++++++++++++++++++++++++++++++++++ samples/PicoLisp/simul.l | 165 ++++++++++++++++++++++++++++++++++++ 2 files changed, 329 insertions(+) create mode 100644 samples/Common Lisp/array.l create mode 100644 samples/PicoLisp/simul.l diff --git a/samples/Common Lisp/array.l b/samples/Common Lisp/array.l new file mode 100644 index 00000000..a64ac178 --- /dev/null +++ b/samples/Common Lisp/array.l @@ -0,0 +1,164 @@ +;;; -*- Mode: Lisp; Package: LISP -*- +;;; +;;; This file is part of xyzzy. +;;; + +(provide "array") + +(in-package "lisp") + +(export '(make-vector make-array vector array-dimensions array-in-bounds-p + upgraded-array-element-type adjust-array)) + +(defun upgraded-array-element-type (type) + (cond ((or (eq type 't) + (null type)) + 't) + ((member type '(character base-character standard-char + extended-character) :test #'eq) + 'character) + (t + (setq type (car (si:canonicalize-type type))) + (cond ((or (eq type 't) + (null type)) + 't) + ((member type '(character base-character standard-char + extended-character) :test #'eq) + 'character) + (t 't))))) + +(defun check-array-initialize-option (ies-p ics-p displaced-to) + (let ((x 0)) + (and ies-p (incf x)) + (and ics-p (incf x)) + (and displaced-to (incf x)) + (when (> x 1) + (error ":initial-element, :initial-contents, :displaced-to")))) + +(defun make-vector (length &key + (element-type t) + (initial-element nil ies-p) + (initial-contents nil ics-p) + fill-pointer + adjustable + displaced-to + (displaced-index-offset 0)) + (setq element-type (upgraded-array-element-type element-type)) + (check-array-initialize-option ies-p ics-p displaced-to) + (let ((vector (si:*make-vector length element-type initial-element adjustable + fill-pointer displaced-to displaced-index-offset))) + (when ics-p + (si:*copy-into-seq vector initial-contents)) + vector)) + +(defun make-array (dimensions &rest rest + &key + (element-type t) + (initial-element nil ies-p) + (initial-contents nil ics-p) + fill-pointer + adjustable + displaced-to + (displaced-index-offset 0)) + (cond ((integerp dimensions) + (apply #'make-vector dimensions rest)) + ((= (length dimensions) 1) + (apply #'make-vector (car dimensions) rest)) + (t + (setq element-type (upgraded-array-element-type element-type)) + (check-array-initialize-option ies-p ics-p displaced-to) + (when fill-pointer + (error ":fill-pointer")) + (let ((array (si:*make-array dimensions element-type + initial-element adjustable + displaced-to displaced-index-offset))) + (when ics-p + (let ((dims (make-list (array-rank array) + :initial-element 0)) + (stack (list initial-contents)) + (rank (1- (array-rank array)))) + (dolist (x dims) + (push (elt (car stack) 0) stack)) + (dotimes (i (array-total-size array)) + (setf (row-major-aref array i) (car stack)) + (do ((x dims (cdr x)) + (j rank (1- j))) + ((null x)) + (pop stack) + (incf (car x)) + (when (< (car x) (array-dimension array j)) + (do ((r (- rank j) (1- r))) + ((< r 0)) + (push (elt (car stack) (nth r dims)) stack)) + (return)) + (setf (car x) 0))))) + array)))) + +(defun vector (&rest list) + (make-vector (length list) :element-type t :initial-contents list)) + +(defun array-dimensions (array) + (do ((i (1- (array-rank array)) (1- i)) + (dims '())) + ((minusp i) dims) + (push (array-dimension array i) dims))) + +(defun array-in-bounds-p (array &rest subscripts) + (let ((r (array-rank array))) + (when (/= r (length subscripts)) + (error "subscripts: ~S" subscripts)) + (do ((i 0 (1+ i)) + (s subscripts (cdr s))) + ((= i r) t) + (unless (<= 0 (car s) (1- (array-dimension array i))) + (return nil))))) + +(defun adjust-array (old-array + dimensions + &rest rest + &key + (element-type nil ets-p) + initial-element + (initial-contents nil ics-p) + (fill-pointer nil fps-p) + displaced-to + displaced-index-offset) + (when (/= (length dimensions) (array-rank old-array)) + (error "?")) + (unless ets-p + (push (array-element-type old-array) rest) + (push :element-type rest)) + (when (adjustable-array-p old-array) + (push t rest) + (push :adjustable rest)) + (cond (fps-p + (unless (array-has-fill-pointer-p old-array) + (error "?"))) + (t + (when (array-has-fill-pointer-p old-array) + (push (fill-pointer old-array) rest) + (push :fill-pointer rest)))) + (when (eq old-array displaced-to) + (error "?")) + (let ((new-array (apply #'make-array dimensions rest))) + (or ics-p displaced-to + (copy-array-partially old-array new-array)) + (cond ((adjustable-array-p old-array) + (si:*replace-array old-array new-array) + old-array) + (t + new-array)))) + +(defun copy-array-partially (src dst) + (let* ((dims (mapcar #'min (array-dimensions src) (array-dimensions dst))) + (r (array-rank src)) + (s (make-list r :initial-element 0))) + (setq r (1- r)) + (dotimes (x (apply #'* dims)) + (setf (apply #'aref dst s) (apply #'aref src s)) + (do ((i r (1- i))) + ((minusp i)) + (incf (nth i s)) + (when (< (nth i s) (nth i dims)) + (return)) + (setf (nth i s) 0))))) diff --git a/samples/PicoLisp/simul.l b/samples/PicoLisp/simul.l new file mode 100644 index 00000000..df4c219c --- /dev/null +++ b/samples/PicoLisp/simul.l @@ -0,0 +1,165 @@ +# 11dec13abu +# (c) Software Lab. Alexander Burger + +(de permute (Lst) + (ifn (cdr Lst) + (cons Lst) + (mapcan + '((X) + (mapcar + '((Y) (cons X Y)) + (permute (delete X Lst)) ) ) + Lst ) ) ) + +(de subsets (N Lst) + (cond + ((=0 N) '(NIL)) + ((not Lst)) + (T + (conc + (mapcar + '((X) (cons (car Lst) X)) + (subsets (dec N) (cdr Lst)) ) + (subsets N (cdr Lst)) ) ) ) ) + +(de shuffle (Lst) + (by '(NIL (rand)) sort Lst) ) + +(de samples (Cnt Lst) + (make + (until (=0 Cnt) + (when (>= Cnt (rand 1 (length Lst))) + (link (car Lst)) + (dec 'Cnt) ) + (pop 'Lst) ) ) ) + + +# Genetic Algorithm +(de gen ("Pop" "Cond" "Re" "Mu" "Se") + (until ("Cond" "Pop") + (for ("P" "Pop" "P" (cdr "P")) + (set "P" + (maxi "Se" # Selection + (make + (for ("P" "Pop" "P") + (rot "P" (rand 1 (length "P"))) + (link # Recombination + Mutation + ("Mu" ("Re" (pop '"P") (pop '"P"))) ) ) ) ) ) ) ) + (maxi "Se" "Pop") ) + + +# Alpha-Beta tree search +(de game ("Flg" "Cnt" "Moves" "Move" "Cost") + (let ("Alpha" '(1000000) "Beta" -1000000) + (recur ("Flg" "Cnt" "Alpha" "Beta") + (let? "Lst" ("Moves" "Flg") + (if (=0 (dec '"Cnt")) + (loop + ("Move" (caar "Lst")) + (setq "*Val" (list ("Cost" "Flg") (car "Lst"))) + ("Move" (cdar "Lst")) + (T (>= "Beta" (car "*Val")) + (cons "Beta" (car "Lst") (cdr "Alpha")) ) + (when (> (car "Alpha") (car "*Val")) + (setq "Alpha" "*Val") ) + (NIL (setq "Lst" (cdr "Lst")) "Alpha") ) + (setq "Lst" + (sort + (mapcar + '(("Mov") + (prog2 + ("Move" (car "Mov")) + (cons ("Cost" "Flg") "Mov") + ("Move" (cdr "Mov")) ) ) + "Lst" ) ) ) + (loop + ("Move" (cadar "Lst")) + (setq "*Val" + (if (recurse (not "Flg") "Cnt" (cons (- "Beta")) (- (car "Alpha"))) + (cons (- (car @)) (cdar "Lst") (cdr @)) + (list (caar "Lst") (cdar "Lst")) ) ) + ("Move" (cddar "Lst")) + (T (>= "Beta" (car "*Val")) + (cons "Beta" (cdar "Lst") (cdr "Alpha")) ) + (when (> (car "Alpha") (car "*Val")) + (setq "Alpha" "*Val") ) + (NIL (setq "Lst" (cdr "Lst")) "Alpha") ) ) ) ) ) ) + + +### Grids ### +(de grid (DX DY FX FY) + (let Grid + (make + (for X DX + (link + (make + (for Y DY + (set + (link + (if (> DX 26) + (box) + (intern (pack (char (+ X 96)) Y)) ) ) + (cons (cons) (cons)) ) ) ) ) ) ) + (let West (and FX (last Grid)) + (for (Lst Grid Lst) + (let + (Col (pop 'Lst) + East (or (car Lst) (and FX (car Grid))) + South (and FY (last Col)) ) + (for (L Col L) + (with (pop 'L) + (set (: 0 1) (pop 'West)) # west + (con (: 0 1) (pop 'East)) # east + (set (: 0 -1) South) # south + (con (: 0 -1) # north + (or (car L) (and FY (car Col))) ) + (setq South This) ) ) + (setq West Col) ) ) ) + Grid ) ) + +(de west (This) + (: 0 1 1) ) + +(de east (This) + (: 0 1 -1) ) + +(de south (This) + (: 0 -1 1) ) + +(de north (This) + (: 0 -1 -1) ) + +(de disp ("Grid" "How" "Fun" "X" "Y" "DX" "DY") + (setq "Grid" + (if "X" + (mapcar + '((L) (flip (head "DY" (nth L "Y")))) + (head "DX" (nth "Grid" "X")) ) + (mapcar reverse "Grid") ) ) + (let (N (+ (length (cdar "Grid")) (or "Y" 1)) Sp (length N)) + ("border" north) + (while (caar "Grid") + (prin " " (align Sp N) " " + (and "How" (if (and (nT "How") (west (caar "Grid"))) " " '|)) ) + (for L "Grid" + (prin + ("Fun" (car L)) + (and "How" (if (and (nT "How") (east (car L))) " " '|)) ) ) + (prinl) + ("border" south) + (map pop "Grid") + (dec 'N) ) + (unless (> (default "X" 1) 26) + (space (inc Sp)) + (for @ "Grid" + (prin " " (and "How" " ") (char (+ 96 "X"))) + (T (> (inc '"X") 26)) ) + (prinl) ) ) ) + +(de "border" (Dir) + (when "How" + (space Sp) + (prin " +") + (for L "Grid" + (prin (if (and (nT "How") (Dir (car L))) " +" "---+")) ) + (prinl) ) ) From 37222d5622184be34f704c5f26f76ca4f51c8a55 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 17 Jun 2015 08:54:56 -0500 Subject: [PATCH 528/875] Updating grammars --- vendor/grammars/AutoHotkey | 2 +- vendor/grammars/Docker.tmbundle | 2 +- vendor/grammars/Handlebars | 2 +- vendor/grammars/InnoSetup | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/carto-atom | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/grace-tmbundle | 2 +- vendor/grammars/graphviz.tmbundle | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-coffee-script | 2 +- vendor/grammars/language-csharp | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-jsoniq | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/language-yaml | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/php-smarty.tmbundle | 2 +- vendor/grammars/php.tmbundle | 2 +- vendor/grammars/sass-textmate-bundle | 2 +- vendor/grammars/smali-sublime | 2 +- vendor/grammars/sublime-better-typescript | 2 +- vendor/grammars/sublime-mask | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/sublime_cobol | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey index 9b42c86e..8a9bb555 160000 --- a/vendor/grammars/AutoHotkey +++ b/vendor/grammars/AutoHotkey @@ -1 +1 @@ -Subproject commit 9b42c86e75a78e0f3c37d87476c1d943803fa76e +Subproject commit 8a9bb5559786af2373261999d14b8909fe6d0c97 diff --git a/vendor/grammars/Docker.tmbundle b/vendor/grammars/Docker.tmbundle index 8f28cd87..8ff6e62c 160000 --- a/vendor/grammars/Docker.tmbundle +++ b/vendor/grammars/Docker.tmbundle @@ -1 +1 @@ -Subproject commit 8f28cd8714072c1a6d3478e700948ee20143c561 +Subproject commit 8ff6e62c89c625829e86d9094c0dab873120408c diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 35d82156..e331daf0 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 35d821569d562403af8b85a4e8d9acc841656b41 +Subproject commit e331daf0597f9df978403520ee8583e08892e9eb diff --git a/vendor/grammars/InnoSetup b/vendor/grammars/InnoSetup index 875ba96c..417c64d7 160000 --- a/vendor/grammars/InnoSetup +++ b/vendor/grammars/InnoSetup @@ -1 +1 @@ -Subproject commit 875ba96c32df269f5be92bd366d20260f811d844 +Subproject commit 417c64d7b301ca08b3deeb24f4355bb806516913 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 663b4175..4ab90608 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 663b417558e47ad4c9f8744cd15860652051e05d +Subproject commit 4ab90608c10745de2cacba7490082ba7871f01e1 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 26036db1..db148999 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 26036db16d588552b542fdd236d3982b99e4fdb7 +Subproject commit db1489994863ca9adda545bf7c728d9e4fb7382c diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index c28c6093..919a4d89 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit c28c609370075709ccff24e10a15d12bec4bc521 +Subproject commit 919a4d895a8be3d97a8dd6eb197350d97b8e1ed1 diff --git a/vendor/grammars/carto-atom b/vendor/grammars/carto-atom index c00fb6c4..60c8774b 160000 --- a/vendor/grammars/carto-atom +++ b/vendor/grammars/carto-atom @@ -1 +1 @@ -Subproject commit c00fb6c461e17de53e9efaf5b495e5b7d877b9d6 +Subproject commit 60c8774b025cf5baa2de7d1b31a965f05d01af51 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 4c599ca5..67f23dfe 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 4c599ca5f2e48296228e29de49155a9e1d7b7b13 +Subproject commit 67f23dfef284d180da6f9960461c8f48de10a0cb diff --git a/vendor/grammars/factor b/vendor/grammars/factor index aa1a5f22..3705d6e3 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit aa1a5f22ba8c2621b35c71af067c2a819c035a52 +Subproject commit 3705d6e387aea3f065581c76e0e0f32eaf1c51ef diff --git a/vendor/grammars/grace-tmbundle b/vendor/grammars/grace-tmbundle index 2fba162c..9e8bb893 160000 --- a/vendor/grammars/grace-tmbundle +++ b/vendor/grammars/grace-tmbundle @@ -1 +1 @@ -Subproject commit 2fba162ce7cfb37421acb097be6aa31aaf414155 +Subproject commit 9e8bb893f0fa118db2335c2c1edd4147d7ea9d78 diff --git a/vendor/grammars/graphviz.tmbundle b/vendor/grammars/graphviz.tmbundle index 2760230b..d1d489f8 160000 --- a/vendor/grammars/graphviz.tmbundle +++ b/vendor/grammars/graphviz.tmbundle @@ -1 +1 @@ -Subproject commit 2760230b50dbec25906db1504604b37885a53fef +Subproject commit d1d489f893a0e6ef5d9021bf7dc1ffd08b3f9b90 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 487bb30d..7fb8855d 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 487bb30d3a1d1b893e924b6139c10dc44c9c0911 +Subproject commit 7fb8855dd62691b63aa4e6023780aeaaef7cb977 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index efe9297f..81e089cc 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit efe9297f7b3b87f865d89340db9fe9217dfdf258 +Subproject commit 81e089cc55b6526aca10133372df83b13cd3f6bc diff --git a/vendor/grammars/language-coffee-script b/vendor/grammars/language-coffee-script index 203cbf09..99f29d25 160000 --- a/vendor/grammars/language-coffee-script +++ b/vendor/grammars/language-coffee-script @@ -1 +1 @@ -Subproject commit 203cbf09295c7f1c2ac9e01cc72c9a9356f58a3d +Subproject commit 99f29d259f8c51c3a56b0798d3e5c95cca370421 diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index d07ba8f1..8745f4e5 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit d07ba8f16818d95ff663929f8104f7c101cc3ae6 +Subproject commit 8745f4e5452d987baf3f84a5628b4e4c3a2b8efe diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 998b156a..7cb930dc 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 998b156ada5d9c0476d8a4110c72d8f9dfcb5a8b +Subproject commit 7cb930dcaf387c9eb2b40e8c20a723c52d717c55 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 9f55d133..601cb6cb 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 9f55d13319ac91f1c5f3a8a7ce44f3f4fe2ebde8 +Subproject commit 601cb6cb8f80e03e7eaa5695515d6366fb2b6d18 diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq index 3722100f..20214d61 160000 --- a/vendor/grammars/language-jsoniq +++ b/vendor/grammars/language-jsoniq @@ -1 +1 @@ -Subproject commit 3722100fe6ae09da9ba8e434d8563bd592f62351 +Subproject commit 20214d61b412d53c2624f1a385ad27236f05a375 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 00529e69..db14372b 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 00529e691575496eb82e5a154b592b5a2616e57f +Subproject commit db14372b475bf41f0f01032076ba53b3940fb80a diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index abf186b4..c09554aa 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit abf186b46f972b5b8491069d8f8c8ef5efe6ff15 +Subproject commit c09554aa3c0917db42f90192501b17bad6d71073 diff --git a/vendor/grammars/language-yaml b/vendor/grammars/language-yaml index ce8b4414..ee5ab88f 160000 --- a/vendor/grammars/language-yaml +++ b/vendor/grammars/language-yaml @@ -1 +1 @@ -Subproject commit ce8b441467852f766a34d22ba6661099496e22e4 +Subproject commit ee5ab88f5907d9102524a70534e1f06f2f41ddfe diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index b244177a..a20438e8 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit b244177ac84068dcf8be5e824857668109c8891a +Subproject commit a20438e8e491933e8cb878f4d8e3015594b135a7 diff --git a/vendor/grammars/php-smarty.tmbundle b/vendor/grammars/php-smarty.tmbundle index 6f3630fe..3e673e19 160000 --- a/vendor/grammars/php-smarty.tmbundle +++ b/vendor/grammars/php-smarty.tmbundle @@ -1 +1 @@ -Subproject commit 6f3630fe0de4323295516e2505f20ea7bbd781bd +Subproject commit 3e673e1980437e2fa394a3628258a61bf02d8ab7 diff --git a/vendor/grammars/php.tmbundle b/vendor/grammars/php.tmbundle index 0239f475..1cba1ac4 160000 --- a/vendor/grammars/php.tmbundle +++ b/vendor/grammars/php.tmbundle @@ -1 +1 @@ -Subproject commit 0239f475bbf97ab68dddb4f456f7fbf7a8f4bf76 +Subproject commit 1cba1ac4a9ffa301b1d92b735c298fcb60cc3e3a diff --git a/vendor/grammars/sass-textmate-bundle b/vendor/grammars/sass-textmate-bundle index 8444f979..95e492c5 160000 --- a/vendor/grammars/sass-textmate-bundle +++ b/vendor/grammars/sass-textmate-bundle @@ -1 +1 @@ -Subproject commit 8444f9796e7610f7f930e9ed7cae3093d5ce7805 +Subproject commit 95e492c5e85454ba005658cdb475710a2e96c63f diff --git a/vendor/grammars/smali-sublime b/vendor/grammars/smali-sublime index 0aabf9de..b9eba913 160000 --- a/vendor/grammars/smali-sublime +++ b/vendor/grammars/smali-sublime @@ -1 +1 @@ -Subproject commit 0aabf9def88029e691768d3de0fb9eaecb97d6bb +Subproject commit b9eba913977b95ac2880909d0c647003f1908172 diff --git a/vendor/grammars/sublime-better-typescript b/vendor/grammars/sublime-better-typescript index b956adec..8c0bd800 160000 --- a/vendor/grammars/sublime-better-typescript +++ b/vendor/grammars/sublime-better-typescript @@ -1 +1 @@ -Subproject commit b956adec0a0a48c6e637935bbb87fbe6155d46a8 +Subproject commit 8c0bd800d91a1c032f81d17055150482262085b5 diff --git a/vendor/grammars/sublime-mask b/vendor/grammars/sublime-mask index 55f087b4..a7f3baac 160000 --- a/vendor/grammars/sublime-mask +++ b/vendor/grammars/sublime-mask @@ -1 +1 @@ -Subproject commit 55f087b49e379eb0ddcaa2788d5610cb854b82bf +Subproject commit a7f3baacf61d168c59554ccea07e89df016dbfb9 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index 454e0960..386d8fcd 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit 454e0960c1999082dc344e55cca234ea40335392 +Subproject commit 386d8fcdc522d469c0d451f383f5b4aaaec7369f diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index b4e9df77..e7ec606b 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit b4e9df779969c982768ab7c2cadc9b3ca072f3f0 +Subproject commit e7ec606b51ddd69517f51fd40adb7eb15d1df961 From 5604d658b20b5fb6c25bb5e301cd643f02505b22 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 17 Jun 2015 08:59:27 -0500 Subject: [PATCH 529/875] Bringing dart scopes up to date --- grammars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/grammars.yml b/grammars.yml index 8ebcefa2..c0bfe823 100644 --- a/grammars.yml +++ b/grammars.yml @@ -217,6 +217,7 @@ vendor/grammars/d.tmbundle: vendor/grammars/dart-sublime-bundle: - source.dart - source.pubspec +- text.dart-analysis-output - text.dart-doccomments vendor/grammars/desktop.tmbundle: - source.desktop From 468fd425fc755e70235cd9393fcbee12dc7e5770 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 17 Jun 2015 09:03:29 -0500 Subject: [PATCH 530/875] Bumping to v4.5.6 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index cb53f37a..182d4bc3 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.5" + VERSION = "4.5.6" end From 8845b266de4b4547c549ce624e4320f34f277378 Mon Sep 17 00:00:00 2001 From: Drew Crawford Date: Wed, 17 Jun 2015 21:25:54 -0500 Subject: [PATCH 531/875] Adding some more vendered expressions * `Vendor/`, the capitalized path * Crashlytics, a common iOS framework * Fabric, a common iOS framework --- lib/linguist/vendor.yml | 8 ++++++++ test/test_blob.rb | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 18f3ad0b..e9af74e6 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -70,6 +70,7 @@ - 3rd[-_]?party/ - vendors?/ - extern(al)?/ +- (^|/)[Vv]+endor/ # Debian packaging - ^debian/ @@ -172,6 +173,13 @@ # Sparkle - (^|/)Sparkle/ +# Crashlytics +- Crashlytics.framework/ + +# Fabric +- Fabric.framework/ + + ## Groovy ## # Gradle diff --git a/test/test_blob.rb b/test/test_blob.rb index 3d35e263..fcafc8f9 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -279,6 +279,9 @@ class TestBlob < Minitest::Test # Rails vendor/ assert sample_blob("vendor/plugins/will_paginate/lib/will_paginate.rb").vendored? + # Vendor/ + assert sample_blob("Vendor/my_great_file.h").vendored? + # 'thirdparty' directory assert sample_blob("thirdparty/lib/main.c").vendored? @@ -480,6 +483,12 @@ class TestBlob < Minitest::Test # Vagrant assert sample_blob("puphpet/file.pp").vendored? + + # Fabric.io + assert sample_blob("Fabric.framework/Fabric.h").vendored? + + # Crashlytics + assert sample_blob("Crashlytics.framework/Crashlytics.h").vendored? end def test_documentation From 3b54df2cde171dabf8d351576f2f379380a968fb Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 28 May 2015 23:18:16 +0300 Subject: [PATCH 532/875] Change color for Kotlin based on color in logo IMHO it's more suitable. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5c6693c3..f93f7e60 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1638,7 +1638,7 @@ Kit: Kotlin: type: programming - color: "#EA4DFA" + color: "#F18E27" extensions: - .kt - .ktm From cd47798d13266b926ed3e252770afcf05e7d349f Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Fri, 29 May 2015 01:05:12 +0300 Subject: [PATCH 533/875] try to fix conflicts --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f93f7e60..ce58244b 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1638,7 +1638,7 @@ Kit: Kotlin: type: programming - color: "#F18E27" + color: "#F18E33" extensions: - .kt - .ktm From f6b50a67f94ae2ecaa3adcb5647e9dbc04cf9024 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Sat, 20 Jun 2015 09:55:33 -0700 Subject: [PATCH 534/875] Change Haxe and Ragel colors to pass tests --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ce58244b..480f107e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1359,7 +1359,7 @@ Haskell: Haxe: type: programming ace_mode: haxe - color: "#f7941e" + color: "#df7900" extensions: - .hx - .hxsl @@ -2768,7 +2768,7 @@ Racket: Ragel in Ruby Host: type: programming - color: "#e17600" + color: "#9d5200" extensions: - .rl aliases: From 3e793ab5b7da5244a0d75c46bd448a572463d7a1 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 21 Jun 2015 10:07:18 +0200 Subject: [PATCH 535/875] Precision on requirements to add a language --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8415462f..80576ac4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,7 @@ In addition, if this extension is already listed in [`languages.yml`][languages] ## Adding a language -We try only to add languages once they have some usage on GitHub. In most cases we prefer that languages be in use in hundreds of repositories before supporting them in Linguist. +We try only to add languages once they have some usage on GitHub. In most cases we prefer that each new file extension be in use in hundreds of repositories before supporting them in Linguist. To add support for a new language: From 9d61487403c7bac7fe35ab1ffe447239f3ad82ea Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 26 Jun 2015 03:11:31 -0700 Subject: [PATCH 536/875] gemspec: Loosen up the restriction on Rugged betas --- github-linguist.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 3f3a0853..ce2303bf 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.add_dependency 'charlock_holmes', '~> 0.7.3' s.add_dependency 'escape_utils', '~> 1.1.0' s.add_dependency 'mime-types', '>= 1.19' - s.add_dependency 'rugged', '~> 0.23.0b1' + s.add_dependency 'rugged', '>= 0.23.0b' s.add_development_dependency 'minitest', '>= 5.0' s.add_development_dependency 'mocha' From 119770a0384a188b05cb056f46fa7d4fd7a13d4e Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 26 Jun 2015 03:33:37 -0700 Subject: [PATCH 537/875] Update grammars --- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/carto-atom | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/jade-tmbundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-jsoniq | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/sas.tmbundle | 2 +- vendor/grammars/sublime-mask | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index 919a4d89..edd84ff6 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit 919a4d895a8be3d97a8dd6eb197350d97b8e1ed1 +Subproject commit edd84ff6921a7f7d0c19a0f20067363ce0030abd diff --git a/vendor/grammars/carto-atom b/vendor/grammars/carto-atom index 60c8774b..98959093 160000 --- a/vendor/grammars/carto-atom +++ b/vendor/grammars/carto-atom @@ -1 +1 @@ -Subproject commit 60c8774b025cf5baa2de7d1b31a965f05d01af51 +Subproject commit 989590932359d32462c4904c5a71180aeda409d2 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index ccb8b6ba..f7953e41 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit ccb8b6ba11def16841d22852cb6e942cbcdd8974 +Subproject commit f7953e41fdf40e49113852b07146478783f08139 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 3705d6e3..44e8e7b3 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 3705d6e387aea3f065581c76e0e0f32eaf1c51ef +Subproject commit 44e8e7b3441b45e09c016760af671492cb7d2a1d diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 7fb8855d..fbf8ce6f 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 7fb8855dd62691b63aa4e6023780aeaaef7cb977 +Subproject commit fbf8ce6ff3770a60d3b843f7a3a39c6eb4503a0c diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index 4197de8b..9ad91309 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit 4197de8b70bce0b58202d28f5f824b3ba1cec5a7 +Subproject commit 9ad91309a4e5bbe87fdc0e1e660a82aa94be1794 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index 81e089cc..04e308ae 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit 81e089cc55b6526aca10133372df83b13cd3f6bc +Subproject commit 04e308ae4c70d00eb38cb4d4211b5c27ae5bdce5 diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq index 20214d61..0917bd27 160000 --- a/vendor/grammars/language-jsoniq +++ b/vendor/grammars/language-jsoniq @@ -1 +1 @@ -Subproject commit 20214d61b412d53c2624f1a385ad27236f05a375 +Subproject commit 0917bd274f824b241c3c5d5f9e75ef7986916d79 diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index 4b768e2c..fd81fe58 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit 4b768e2ce11adc7926fd31cf5c9a3b83e05d05ca +Subproject commit fd81fe586b928b4c2852b43472b37bdc45a6d074 diff --git a/vendor/grammars/sas.tmbundle b/vendor/grammars/sas.tmbundle index a9689f43..658a0640 160000 --- a/vendor/grammars/sas.tmbundle +++ b/vendor/grammars/sas.tmbundle @@ -1 +1 @@ -Subproject commit a9689f436f49b1aa8f882119bdd8d77172af0501 +Subproject commit 658a064053199871bb297b6dbab1aebff486e256 diff --git a/vendor/grammars/sublime-mask b/vendor/grammars/sublime-mask index a7f3baac..bd37c4e7 160000 --- a/vendor/grammars/sublime-mask +++ b/vendor/grammars/sublime-mask @@ -1 +1 @@ -Subproject commit a7f3baacf61d168c59554ccea07e89df016dbfb9 +Subproject commit bd37c4e7537f0fae03d55c02891a5f2500562faf From ee3081fb4c73a90633c52f4158a3db411fdafac4 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 26 Jun 2015 03:34:18 -0700 Subject: [PATCH 538/875] Bump to 4.5.7 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 182d4bc3..937b66c7 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.6" + VERSION = "4.5.7" end From 1b8b0c62297db3371e038e4d4810473d7ffc7f6e Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 28 Jun 2015 13:24:42 +0200 Subject: [PATCH 539/875] New .inc Assembly samples --- samples/Assembly/lib.inc | 170 +++++++++++++++++++ samples/Assembly/macros.inc | 321 ++++++++++++++++++++++++++++++++++++ 2 files changed, 491 insertions(+) create mode 100644 samples/Assembly/lib.inc create mode 100644 samples/Assembly/macros.inc diff --git a/samples/Assembly/lib.inc b/samples/Assembly/lib.inc new file mode 100644 index 00000000..1faceead --- /dev/null +++ b/samples/Assembly/lib.inc @@ -0,0 +1,170 @@ + +; ------------------------------------------------------------------------ +; 显示 AL 中的数字 +; ------------------------------------------------------------------------ +DispAL: + push ecx + push edx + push edi + + mov edi, [dwDispPos] + + mov ah, 0Fh ; 0000b: 黑底 1111b: 白字 + mov dl, al + shr al, 4 + mov ecx, 2 +.begin: + and al, 01111b + cmp al, 9 + ja .1 + add al, '0' + jmp .2 +.1: + sub al, 0Ah + add al, 'A' +.2: + mov [gs:edi], ax + add edi, 2 + + mov al, dl + loop .begin + ;add edi, 2 + + mov [dwDispPos], edi + + pop edi + pop edx + pop ecx + + ret +; DispAL 结束------------------------------------------------------------- + + +; ------------------------------------------------------------------------ +; 显示一个整形数 +; ------------------------------------------------------------------------ +DispInt: + mov eax, [esp + 4] + shr eax, 24 + call DispAL + + mov eax, [esp + 4] + shr eax, 16 + call DispAL + + mov eax, [esp + 4] + shr eax, 8 + call DispAL + + mov eax, [esp + 4] + call DispAL + + mov ah, 07h ; 0000b: 黑底 0111b: 灰字 + mov al, 'h' + push edi + mov edi, [dwDispPos] + mov [gs:edi], ax + add edi, 4 + mov [dwDispPos], edi + pop edi + + ret +; DispInt 结束------------------------------------------------------------ + +; ------------------------------------------------------------------------ +; 显示一个字符串 +; ------------------------------------------------------------------------ +DispStr: + push ebp + mov ebp, esp + push ebx + push esi + push edi + + mov esi, [ebp + 8] ; pszInfo + mov edi, [dwDispPos] + mov ah, 0Fh +.1: + lodsb + test al, al + jz .2 + cmp al, 0Ah ; 是回车吗? + jnz .3 + push eax + mov eax, edi + mov bl, 160 + div bl + and eax, 0FFh + inc eax + mov bl, 160 + mul bl + mov edi, eax + pop eax + jmp .1 +.3: + mov [gs:edi], ax + add edi, 2 + jmp .1 + +.2: + mov [dwDispPos], edi + + pop edi + pop esi + pop ebx + pop ebp + ret +; DispStr 结束------------------------------------------------------------ + +; ------------------------------------------------------------------------ +; 换行 +; ------------------------------------------------------------------------ +DispReturn: + push szReturn + call DispStr ;printf("\n"); + add esp, 4 + + ret +; DispReturn 结束--------------------------------------------------------- + + +; ------------------------------------------------------------------------ +; 内存拷贝,仿 memcpy +; ------------------------------------------------------------------------ +; void* MemCpy(void* es:pDest, void* ds:pSrc, int iSize); +; ------------------------------------------------------------------------ +MemCpy: + push ebp + mov ebp, esp + + push esi + push edi + push ecx + + mov edi, [ebp + 8] ; Destination + mov esi, [ebp + 12] ; Source + mov ecx, [ebp + 16] ; Counter +.1: + cmp ecx, 0 ; 判断计数器 + jz .2 ; 计数器为零时跳出 + + mov al, [ds:esi] ; ┓ + inc esi ; ┃ + ; ┣ 逐字节移动 + mov byte [es:edi], al ; ┃ + inc edi ; ┛ + + dec ecx ; 计数器减一 + jmp .1 ; 循环 +.2: + mov eax, [ebp + 8] ; 返回值 + + pop ecx + pop edi + pop esi + mov esp, ebp + pop ebp + + ret ; 函数结束,返回 +; MemCpy 结束------------------------------------------------------------- + diff --git a/samples/Assembly/macros.inc b/samples/Assembly/macros.inc new file mode 100644 index 00000000..dc968ad9 --- /dev/null +++ b/samples/Assembly/macros.inc @@ -0,0 +1,321 @@ +BLARGG_MACROS_INCLUDED = 1 + +; Allows extra error checking with modified version +; of ca65. Otherwise acts like a constant of 0. +ADDR = 0 + +; Switches to Segment and places Line there. +; Line can be an .align directive, .res, .byte, etc. +; Examples: +; seg_data BSS, .align 256 +; seg_data RODATA, {message: .byte "Test",0} +.macro seg_data Segment, Line + .pushseg + .segment .string(Segment) + Line + .popseg +.endmacro + +; Reserves Size bytes in Segment for Name. +; If Size is omitted, reserves one byte. +.macro seg_res Segment, Name, Size + .ifblank Size + seg_data Segment, Name: .res 1 + .else + seg_data Segment, Name: .res Size + .endif +.endmacro + +; Shortcuts for zeropage, bss, and stack +.define zp_res seg_res ZEROPAGE, +.define nv_res seg_res NVRAM, +.define bss_res seg_res BSS, +.define sp_res seg_res STACK, +.define zp_byte zp_res + +; Copies byte from Src to Addr. If Src begins with #, +; it sets Addr to the immediate value. +; Out: A = byte copied +; Preserved: X, Y +.macro mov Addr, Src + lda Src + sta Addr +.endmacro + +; Copies word from Src to Addr. If Src begins with #, +; it sets Addr the immediate value. +; Out: A = high byte of word +; Preserved: X, Y +.macro movw Addr, Src + .if .match( .left( 1, {Src} ), # ) + lda #<(.right( .tcount( {Src} )-1, {Src} )) + sta Addr + lda #>(.right( .tcount( {Src} )-1, {Src} )) + sta 1+(Addr) + .else + lda Src + sta Addr + lda 1+(Src) + sta 1+(Addr) + .endif +.endmacro + +; Increments 16-bit value at Addr. +; Out: EQ/NE based on resulting 16-bit value +; Preserved: A, X, Y +.macro incw Addr + .local @Skip + inc Addr + bne @Skip + inc 1+(Addr) +@Skip: +.endmacro + +; Adds Src to word at Addr. +; Out: A = high byte of result, carry set appropriately +; Preserved: X, Y +.macro addw Addr, Src + .if .match( .left( 1, {Src} ), # ) + addw_ Addr,(.right( .tcount( {Src} )-1, {Src} )) + .else + lda Addr + clc + adc Src + sta Addr + + lda 1+(Addr) + adc 1+(Src) + sta 1+(Addr) + .endif +.endmacro +.macro addw_ Addr, Imm + lda Addr + clc + adc #> 8) <> 0 + lda 1+(Addr) + adc #>Imm + sta 1+(Addr) + ;.else + ; .local @Skip + ; bcc @Skip + ; inc 1+(Addr) + ;@Skip: + ;.endif +.endmacro + +; Splits list of words into tables of low and high bytes +; Example: split_words foo, {$1234, $5678} +; expands to: +; foo_l: $34, $78 +; foo_h: $12, $56 +; foo_count = 2 +.macro split_words Label, Words + .ident (.concat (.string(Label), "_l")): .lobytes Words + .ident (.concat (.string(Label), "_h")): .hibytes Words + .ident (.concat (.string(Label), "_count")) = * - .ident (.concat (.string(Label), "_h")) +.endmacro + +.macro SELECT Bool, True, False, Extra + .ifndef Bool + False Extra + .elseif Bool <> 0 + True Extra + .else + False Extra + .endif +.endmacro + +.macro DEFAULT Name, Value + .ifndef Name + Name = Value + .endif +.endmacro + +.ifp02 + ; 6502 doesn't define these alternate names + .define blt bcc + .define bge bcs +.endif +.define jlt jcc +.define jge jcs + +; Jxx Target = Bxx Target, except it can go farther than +; 128 bytes. Implemented via branch around a JMP. + +; Don't use ca65's longbranch, because they fail for @labels +;.macpack longbranch + +.macro jeq Target + bne *+5 + jmp Target +.endmacro + +.macro jne Target + beq *+5 + jmp Target +.endmacro + +.macro jmi Target + bpl *+5 + jmp Target +.endmacro + +.macro jpl Target + bmi *+5 + jmp Target +.endmacro + +.macro jcs Target + bcc *+5 + jmp Target +.endmacro + +.macro jcc Target + bcs *+5 + jmp Target +.endmacro + +.macro jvs Target + bvc *+5 + jmp Target +.endmacro + +.macro jvc Target + bvs *+5 + jmp Target +.endmacro + + +; Passes constant data to routine in addr +; Preserved: A, X, Y +.macro jsr_with_addr routine,data + .local Addr + pha + lda #Addr + sta addr+1 + pla + jsr routine + seg_data RODATA,{Addr: data} +.endmacro + +; Calls routine multiple times, with A having the +; value 'start' the first time, 'start+step' the +; second time, up to 'end' for the last time. +.macro for_loop routine,start,end,step + .local @for_loop + lda #start +@for_loop: + pha + jsr routine + pla + clc + adc #step + cmp #<((end)+(step)) + bne @for_loop +.endmacro + +; Calls routine n times. The value of A in the routine +; counts from 0 to n-1. +.macro loop_n_times routine,n + for_loop routine,0,n-1,+1 +.endmacro + +; Same as for_loop, except uses 16-bit value in YX. +; -256 <= step <= 255 +.macro for_loop16 routine,start,end,step +.if (step) < -256 || (step) > 255 + .error "Step must be within -256 to 255" +.endif + .local @for_loop_skip + .local @for_loop + ldy #>(start) + lda #<(start) +@for_loop: + tax + pha + tya + pha + jsr routine + pla + tay + pla + clc + adc #step +.if (step) > 0 + bcc @for_loop_skip + iny +.else + bcs @for_loop_skip + dey +.endif +@for_loop_skip: + cmp #<((end)+(step)) + bne @for_loop + cpy #>((end)+(step)) + bne @for_loop +.endmacro + +; Stores byte at addr +; Preserved: X, Y +.macro setb addr, byte + lda #byte + sta addr +.endmacro + +; Stores word at addr +; Preserved: X, Y +.macro setw addr, word + lda #<(word) + sta addr + lda #>(word) + sta addr+1 +.endmacro + +; Loads XY with 16-bit immediate or value at address +.macro ldxy Arg + .if .match( .left( 1, {Arg} ), # ) + ldy #<(.right( .tcount( {Arg} )-1, {Arg} )) + ldx #>(.right( .tcount( {Arg} )-1, {Arg} )) + .else + ldy (Arg) + ldx (Arg)+1 + .endif +.endmacro + +; Increments XY as 16-bit register, in CONSTANT time. +; Z flag set based on entire result. +; Preserved: A +; Time: 7 clocks +.macro inxy + iny ; 2 + beq *+4 ; 3 + ; -1 + bne *+3 ; 3 + ; -1 + inx ; 2 +.endmacro + +; Negates A and adds it to operand +.macro subaf Operand + eor #$FF + sec + adc Operand +.endmacro + +; Initializes CPU registers to reasonable values +; Preserved: A, Y +.macro init_cpu_regs + sei + cld ; unnecessary on NES, but might help on clone + ldx #$FF + txs + .ifndef BUILD_NSF + inx + stx PPUCTRL + .endif +.endmacro From 8b5399d568c0698a4aa10731073a08754838a601 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 28 Jun 2015 14:33:54 +0200 Subject: [PATCH 540/875] New C++ .inc sample --- samples/C++/initClasses.inc | 2764 +++++++++++++++++++++++++++++++++++ 1 file changed, 2764 insertions(+) create mode 100644 samples/C++/initClasses.inc diff --git a/samples/C++/initClasses.inc b/samples/C++/initClasses.inc new file mode 100644 index 00000000..58439af1 --- /dev/null +++ b/samples/C++/initClasses.inc @@ -0,0 +1,2764 @@ +// start +// define cpp macros: SET_SYMBOL, CREATE_CLASS, SET_CLASS, DEFINE_BASE_CLASSES, DEFINE_CLASS_NAMES, EXPOSE_TO_CANDO +// define cpp macro: ALL_STAGES to get the effect of defining all of the macros above +// define cpp macro: EXPOSE_PYTHON to expose python +// Associating namespace(llvmo) with package(LlvmoPkg) + // class DebugLoc_O : public core::T_O + // class InsertPoint_O : public core::T_O + // class LLVMContext_O : public core::ExternalObject_O + // class Pass_O : public core::ExternalObject_O + // class FunctionPass_O : public Pass_O + // class ModulePass_O : public Pass_O + // class ImmutablePass_O : public ModulePass_O + // class PassManagerBase_O : public core::ExternalObject_O + // class Value_O : public core::ExternalObject_O + // class User_O : public Value_O + // class LLVMContext_O : public core::ExternalObject_O + // class Pass_O : public core::ExternalObject_O + // class FunctionPass_O : public Pass_O + // class ModulePass_O : public Pass_O + // class ImmutablePass_O : public ModulePass_O + // class PassManagerBase_O : public core::ExternalObject_O + // class Value_O : public core::ExternalObject_O + // class User_O : public Value_O + // class Attribute_O : public core::T_O + // class DataLayout_O : public ImmutablePass_O + // class Constant_O : public User_O + // class ConstantArray_O : public Constant_O + // class ConstantDataSequential_O : public Constant_O + // class ConstantDataArray_O : public ConstantDataSequential_O + // class ConstantExpr_O : public Constant_O + // class GlobalValue_O : public Constant_O + // class GlobalVariable_O : public GlobalValue_O + // class ExecutionEngine_O : public core::ExternalObject_O + // class Module_O : public core::ExternalObject_O + // class FunctionPassManager_O : public PassManagerBase_O + // class EngineBuilder_O : public core::ExternalObject_O + // class APFloat_O : public core::ExternalObject_O + // class APInt_O : public core::ExternalObject_O + // class IRBuilderBase_O : public core::ExternalObject_O + // class IRBuilder_O : public IRBuilderBase_O + // class Instruction_O : public User_O + // class StoreInst_O : public Instruction_O + // class FenceInst_O : public Instruction_O + // class AtomicCmpXchgInst_O : public Instruction_O + // class AtomicRMWInst_O : public Instruction_O + // class PHINode_O : public Instruction_O + // class CallInst_O : public Instruction_O + // class LandingPadInst_O : public Instruction_O + // class UnaryInstruction_O : public Instruction_O + // class AllocaInst_O : public UnaryInstruction_O + // class VAArgInst_O : public UnaryInstruction_O + // class LoadInst_O : public UnaryInstruction_O + // class TerminatorInst_O : public Instruction_O + // class BranchInst_O : public TerminatorInst_O + // class SwitchInst_O : public TerminatorInst_O + // class IndirectBrInst_O : public TerminatorInst_O + // class InvokeInst_O : public TerminatorInst_O + // class ResumeInst_O : public TerminatorInst_O + // class UnreachableInst_O : public TerminatorInst_O + // class ReturnInst_O : public TerminatorInst_O + // class ConstantFP_O : public Constant_O + // class ConstantInt_O : public Constant_O + // class UndefValue_O : public Constant_O + // class ConstantPointerNull_O : public Constant_O + // class MDNode_O : public Value_O + // class MDString_O : public Value_O + // class Function_O : public GlobalValue_O + // class BasicBlock_O : public Value_O + // class Argument_O : public Value_O + // class Type_O : public core::ExternalObject_O + // class FunctionType_O : public Type_O + // class IntegerType_O : public Type_O + // class CompositeType_O : public Type_O + // class StructType_O : public CompositeType_O + // class SequentialType_O : public CompositeType_O + // class PointerType_O : public SequentialType_O + // class ArrayType_O : public SequentialType_O + // class VectorType_O : public SequentialType_O + // class LLVMContext_O : public core::ExternalObject_O + // class Module_O : public core::ExternalObject_O + // class Builder_O : public core::ExternalObject_O + // class APFloat_O : public core::ExternalObject_O + // class Value_O : public core::ExternalObject_O + // class User_O : public Value_O + // class Constant_O : public User_O + // class ConstantFP_O : public Constant_O +// Associating namespace(llvmo) with package(LlvmoPkg) +#ifdef HEADER_INCLUDES +#include "llvmoExpose.h" +#include "llvmoExpose.scrape_inc.h" +#include "debugLoc.h" +#include "insertPoint.h" +#include "llvmoExpose.generated.h" +#endif // HEADER_INCLUDES +#undef HEADER_INCLUDES +#if defined(SET_SYMBOL) || defined(ALL_STAGES) +// requires LOOKUP_SYMBOL(pkg,symbolName) be defined +llvmo::APFloat_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::APFloat_O::static_packageName(),llvmo::APFloat_O::static_className())); +llvmo::APInt_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::APInt_O::static_packageName(),llvmo::APInt_O::static_className())); +llvmo::Attribute_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Attribute_O::static_packageName(),llvmo::Attribute_O::static_className())); +llvmo::Builder_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Builder_O::static_packageName(),llvmo::Builder_O::static_className())); +llvmo::DebugLoc_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::DebugLoc_O::static_packageName(),llvmo::DebugLoc_O::static_className())); +llvmo::EngineBuilder_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::EngineBuilder_O::static_packageName(),llvmo::EngineBuilder_O::static_className())); +llvmo::ExecutionEngine_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ExecutionEngine_O::static_packageName(),llvmo::ExecutionEngine_O::static_className())); +llvmo::IRBuilderBase_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IRBuilderBase_O::static_packageName(),llvmo::IRBuilderBase_O::static_className())); +llvmo::InsertPoint_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::InsertPoint_O::static_packageName(),llvmo::InsertPoint_O::static_className())); +llvmo::LLVMContext_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::LLVMContext_O::static_packageName(),llvmo::LLVMContext_O::static_className())); +llvmo::Module_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Module_O::static_packageName(),llvmo::Module_O::static_className())); +llvmo::PassManagerBase_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::PassManagerBase_O::static_packageName(),llvmo::PassManagerBase_O::static_className())); +llvmo::Pass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Pass_O::static_packageName(),llvmo::Pass_O::static_className())); +llvmo::Type_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Type_O::static_packageName(),llvmo::Type_O::static_className())); +llvmo::Value_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Value_O::static_packageName(),llvmo::Value_O::static_className())); +llvmo::Argument_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Argument_O::static_packageName(),llvmo::Argument_O::static_className())); +llvmo::BasicBlock_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::BasicBlock_O::static_packageName(),llvmo::BasicBlock_O::static_className())); +llvmo::CompositeType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::CompositeType_O::static_packageName(),llvmo::CompositeType_O::static_className())); +llvmo::FunctionPassManager_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FunctionPassManager_O::static_packageName(),llvmo::FunctionPassManager_O::static_className())); +llvmo::FunctionPass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FunctionPass_O::static_packageName(),llvmo::FunctionPass_O::static_className())); +llvmo::FunctionType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FunctionType_O::static_packageName(),llvmo::FunctionType_O::static_className())); +llvmo::IRBuilder_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IRBuilder_O::static_packageName(),llvmo::IRBuilder_O::static_className())); +llvmo::IntegerType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IntegerType_O::static_packageName(),llvmo::IntegerType_O::static_className())); +llvmo::MDNode_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::MDNode_O::static_packageName(),llvmo::MDNode_O::static_className())); +llvmo::MDString_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::MDString_O::static_packageName(),llvmo::MDString_O::static_className())); +llvmo::ModulePass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ModulePass_O::static_packageName(),llvmo::ModulePass_O::static_className())); +llvmo::User_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::User_O::static_packageName(),llvmo::User_O::static_className())); +llvmo::Constant_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Constant_O::static_packageName(),llvmo::Constant_O::static_className())); +llvmo::ImmutablePass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ImmutablePass_O::static_packageName(),llvmo::ImmutablePass_O::static_className())); +llvmo::Instruction_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Instruction_O::static_packageName(),llvmo::Instruction_O::static_className())); +llvmo::SequentialType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::SequentialType_O::static_packageName(),llvmo::SequentialType_O::static_className())); +llvmo::StructType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::StructType_O::static_packageName(),llvmo::StructType_O::static_className())); +llvmo::ArrayType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ArrayType_O::static_packageName(),llvmo::ArrayType_O::static_className())); +llvmo::AtomicCmpXchgInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::AtomicCmpXchgInst_O::static_packageName(),llvmo::AtomicCmpXchgInst_O::static_className())); +llvmo::AtomicRMWInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::AtomicRMWInst_O::static_packageName(),llvmo::AtomicRMWInst_O::static_className())); +llvmo::CallInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::CallInst_O::static_packageName(),llvmo::CallInst_O::static_className())); +llvmo::ConstantArray_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantArray_O::static_packageName(),llvmo::ConstantArray_O::static_className())); +llvmo::ConstantDataSequential_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantDataSequential_O::static_packageName(),llvmo::ConstantDataSequential_O::static_className())); +llvmo::ConstantExpr_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantExpr_O::static_packageName(),llvmo::ConstantExpr_O::static_className())); +llvmo::ConstantFP_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantFP_O::static_packageName(),llvmo::ConstantFP_O::static_className())); +llvmo::ConstantInt_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantInt_O::static_packageName(),llvmo::ConstantInt_O::static_className())); +llvmo::ConstantPointerNull_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantPointerNull_O::static_packageName(),llvmo::ConstantPointerNull_O::static_className())); +llvmo::DataLayout_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::DataLayout_O::static_packageName(),llvmo::DataLayout_O::static_className())); +llvmo::FenceInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FenceInst_O::static_packageName(),llvmo::FenceInst_O::static_className())); +llvmo::GlobalValue_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::GlobalValue_O::static_packageName(),llvmo::GlobalValue_O::static_className())); +llvmo::LandingPadInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::LandingPadInst_O::static_packageName(),llvmo::LandingPadInst_O::static_className())); +llvmo::PHINode_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::PHINode_O::static_packageName(),llvmo::PHINode_O::static_className())); +llvmo::PointerType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::PointerType_O::static_packageName(),llvmo::PointerType_O::static_className())); +llvmo::StoreInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::StoreInst_O::static_packageName(),llvmo::StoreInst_O::static_className())); +llvmo::TerminatorInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::TerminatorInst_O::static_packageName(),llvmo::TerminatorInst_O::static_className())); +llvmo::UnaryInstruction_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::UnaryInstruction_O::static_packageName(),llvmo::UnaryInstruction_O::static_className())); +llvmo::UndefValue_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::UndefValue_O::static_packageName(),llvmo::UndefValue_O::static_className())); +llvmo::VectorType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::VectorType_O::static_packageName(),llvmo::VectorType_O::static_className())); +llvmo::AllocaInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::AllocaInst_O::static_packageName(),llvmo::AllocaInst_O::static_className())); +llvmo::BranchInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::BranchInst_O::static_packageName(),llvmo::BranchInst_O::static_className())); +llvmo::ConstantDataArray_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantDataArray_O::static_packageName(),llvmo::ConstantDataArray_O::static_className())); +llvmo::Function_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Function_O::static_packageName(),llvmo::Function_O::static_className())); +llvmo::GlobalVariable_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::GlobalVariable_O::static_packageName(),llvmo::GlobalVariable_O::static_className())); +llvmo::IndirectBrInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IndirectBrInst_O::static_packageName(),llvmo::IndirectBrInst_O::static_className())); +llvmo::InvokeInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::InvokeInst_O::static_packageName(),llvmo::InvokeInst_O::static_className())); +llvmo::LoadInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::LoadInst_O::static_packageName(),llvmo::LoadInst_O::static_className())); +llvmo::ResumeInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ResumeInst_O::static_packageName(),llvmo::ResumeInst_O::static_className())); +llvmo::ReturnInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ReturnInst_O::static_packageName(),llvmo::ReturnInst_O::static_className())); +llvmo::SwitchInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::SwitchInst_O::static_packageName(),llvmo::SwitchInst_O::static_className())); +llvmo::UnreachableInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::UnreachableInst_O::static_packageName(),llvmo::UnreachableInst_O::static_className())); +llvmo::VAArgInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::VAArgInst_O::static_packageName(),llvmo::VAArgInst_O::static_className())); +#endif // SET_SYMBOL +#undef SET_SYMBOL +#if defined(CREATE_CLASS) || defined(ALL_STAGES) +// Depends on undefinedMetaClass + core::MetaClass_sp undefinedMetaClass; undefinedMetaClass.reset(); + + LOG(BF("Creating class[classllvmo__APFloat_Oval]")); + core::BuiltInClass_sp classllvmo__APFloat_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__APFloat_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__APFloat_Oval,_lisp,llvmo::APFloat_O::static_classSymbol()); + llvmo::APFloat_O::___staticMetaClass = classllvmo__APFloat_Oval; + _lisp->setf_findClass(llvmo::APFloat_O::static_classSymbol(),classllvmo__APFloat_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::APFloat_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::APFloat_O::static_className() % (void*)(llvmo::APFloat_O::static_newNil_callback()) ); + classllvmo__APFloat_Oval->setInstance_newNil_callback(llvmo::APFloat_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::APFloat_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::APFloat_O::static_className() ); + llvmo::APFloat_O::_nil = nil_for_class; + classllvmo__APFloat_Oval->setInstanceNil(nil_for_class); + } + classllvmo__APFloat_Oval->setSupportsSlots(llvmo::APFloat_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__APInt_Oval]")); + core::BuiltInClass_sp classllvmo__APInt_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__APInt_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__APInt_Oval,_lisp,llvmo::APInt_O::static_classSymbol()); + llvmo::APInt_O::___staticMetaClass = classllvmo__APInt_Oval; + _lisp->setf_findClass(llvmo::APInt_O::static_classSymbol(),classllvmo__APInt_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::APInt_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::APInt_O::static_className() % (void*)(llvmo::APInt_O::static_newNil_callback()) ); + classllvmo__APInt_Oval->setInstance_newNil_callback(llvmo::APInt_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::APInt_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::APInt_O::static_className() ); + llvmo::APInt_O::_nil = nil_for_class; + classllvmo__APInt_Oval->setInstanceNil(nil_for_class); + } + classllvmo__APInt_Oval->setSupportsSlots(llvmo::APInt_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Attribute_Oval]")); + core::BuiltInClass_sp classllvmo__Attribute_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Attribute_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Attribute_Oval,_lisp,llvmo::Attribute_O::static_classSymbol()); + llvmo::Attribute_O::___staticMetaClass = classllvmo__Attribute_Oval; + _lisp->setf_findClass(llvmo::Attribute_O::static_classSymbol(),classllvmo__Attribute_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Attribute_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Attribute_O::static_className() % (void*)(llvmo::Attribute_O::static_newNil_callback()) ); + classllvmo__Attribute_Oval->setInstance_newNil_callback(llvmo::Attribute_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Attribute_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Attribute_O::static_className() ); + llvmo::Attribute_O::_nil = nil_for_class; + classllvmo__Attribute_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Attribute_Oval->setSupportsSlots(llvmo::Attribute_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Builder_Oval]")); + core::BuiltInClass_sp classllvmo__Builder_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Builder_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Builder_Oval,_lisp,llvmo::Builder_O::static_classSymbol()); + llvmo::Builder_O::___staticMetaClass = classllvmo__Builder_Oval; + _lisp->setf_findClass(llvmo::Builder_O::static_classSymbol(),classllvmo__Builder_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Builder_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Builder_O::static_className() % (void*)(llvmo::Builder_O::static_newNil_callback()) ); + classllvmo__Builder_Oval->setInstance_newNil_callback(llvmo::Builder_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Builder_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Builder_O::static_className() ); + llvmo::Builder_O::_nil = nil_for_class; + classllvmo__Builder_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Builder_Oval->setSupportsSlots(llvmo::Builder_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__DebugLoc_Oval]")); + core::BuiltInClass_sp classllvmo__DebugLoc_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__DebugLoc_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__DebugLoc_Oval,_lisp,llvmo::DebugLoc_O::static_classSymbol()); + llvmo::DebugLoc_O::___staticMetaClass = classllvmo__DebugLoc_Oval; + _lisp->setf_findClass(llvmo::DebugLoc_O::static_classSymbol(),classllvmo__DebugLoc_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::DebugLoc_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::DebugLoc_O::static_className() % (void*)(llvmo::DebugLoc_O::static_newNil_callback()) ); + classllvmo__DebugLoc_Oval->setInstance_newNil_callback(llvmo::DebugLoc_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::DebugLoc_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::DebugLoc_O::static_className() ); + llvmo::DebugLoc_O::_nil = nil_for_class; + classllvmo__DebugLoc_Oval->setInstanceNil(nil_for_class); + } + classllvmo__DebugLoc_Oval->setSupportsSlots(llvmo::DebugLoc_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__EngineBuilder_Oval]")); + core::BuiltInClass_sp classllvmo__EngineBuilder_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__EngineBuilder_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__EngineBuilder_Oval,_lisp,llvmo::EngineBuilder_O::static_classSymbol()); + llvmo::EngineBuilder_O::___staticMetaClass = classllvmo__EngineBuilder_Oval; + _lisp->setf_findClass(llvmo::EngineBuilder_O::static_classSymbol(),classllvmo__EngineBuilder_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::EngineBuilder_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::EngineBuilder_O::static_className() % (void*)(llvmo::EngineBuilder_O::static_newNil_callback()) ); + classllvmo__EngineBuilder_Oval->setInstance_newNil_callback(llvmo::EngineBuilder_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::EngineBuilder_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::EngineBuilder_O::static_className() ); + llvmo::EngineBuilder_O::_nil = nil_for_class; + classllvmo__EngineBuilder_Oval->setInstanceNil(nil_for_class); + } + classllvmo__EngineBuilder_Oval->setSupportsSlots(llvmo::EngineBuilder_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ExecutionEngine_Oval]")); + core::BuiltInClass_sp classllvmo__ExecutionEngine_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ExecutionEngine_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ExecutionEngine_Oval,_lisp,llvmo::ExecutionEngine_O::static_classSymbol()); + llvmo::ExecutionEngine_O::___staticMetaClass = classllvmo__ExecutionEngine_Oval; + _lisp->setf_findClass(llvmo::ExecutionEngine_O::static_classSymbol(),classllvmo__ExecutionEngine_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ExecutionEngine_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ExecutionEngine_O::static_className() % (void*)(llvmo::ExecutionEngine_O::static_newNil_callback()) ); + classllvmo__ExecutionEngine_Oval->setInstance_newNil_callback(llvmo::ExecutionEngine_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ExecutionEngine_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ExecutionEngine_O::static_className() ); + llvmo::ExecutionEngine_O::_nil = nil_for_class; + classllvmo__ExecutionEngine_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ExecutionEngine_Oval->setSupportsSlots(llvmo::ExecutionEngine_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IRBuilderBase_Oval]")); + core::BuiltInClass_sp classllvmo__IRBuilderBase_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IRBuilderBase_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IRBuilderBase_Oval,_lisp,llvmo::IRBuilderBase_O::static_classSymbol()); + llvmo::IRBuilderBase_O::___staticMetaClass = classllvmo__IRBuilderBase_Oval; + _lisp->setf_findClass(llvmo::IRBuilderBase_O::static_classSymbol(),classllvmo__IRBuilderBase_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IRBuilderBase_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IRBuilderBase_O::static_className() % (void*)(llvmo::IRBuilderBase_O::static_newNil_callback()) ); + classllvmo__IRBuilderBase_Oval->setInstance_newNil_callback(llvmo::IRBuilderBase_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IRBuilderBase_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IRBuilderBase_O::static_className() ); + llvmo::IRBuilderBase_O::_nil = nil_for_class; + classllvmo__IRBuilderBase_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IRBuilderBase_Oval->setSupportsSlots(llvmo::IRBuilderBase_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__InsertPoint_Oval]")); + core::BuiltInClass_sp classllvmo__InsertPoint_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__InsertPoint_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__InsertPoint_Oval,_lisp,llvmo::InsertPoint_O::static_classSymbol()); + llvmo::InsertPoint_O::___staticMetaClass = classllvmo__InsertPoint_Oval; + _lisp->setf_findClass(llvmo::InsertPoint_O::static_classSymbol(),classllvmo__InsertPoint_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::InsertPoint_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::InsertPoint_O::static_className() % (void*)(llvmo::InsertPoint_O::static_newNil_callback()) ); + classllvmo__InsertPoint_Oval->setInstance_newNil_callback(llvmo::InsertPoint_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::InsertPoint_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::InsertPoint_O::static_className() ); + llvmo::InsertPoint_O::_nil = nil_for_class; + classllvmo__InsertPoint_Oval->setInstanceNil(nil_for_class); + } + classllvmo__InsertPoint_Oval->setSupportsSlots(llvmo::InsertPoint_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__LLVMContext_Oval]")); + core::BuiltInClass_sp classllvmo__LLVMContext_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__LLVMContext_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__LLVMContext_Oval,_lisp,llvmo::LLVMContext_O::static_classSymbol()); + llvmo::LLVMContext_O::___staticMetaClass = classllvmo__LLVMContext_Oval; + _lisp->setf_findClass(llvmo::LLVMContext_O::static_classSymbol(),classllvmo__LLVMContext_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::LLVMContext_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::LLVMContext_O::static_className() % (void*)(llvmo::LLVMContext_O::static_newNil_callback()) ); + classllvmo__LLVMContext_Oval->setInstance_newNil_callback(llvmo::LLVMContext_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::LLVMContext_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::LLVMContext_O::static_className() ); + llvmo::LLVMContext_O::_nil = nil_for_class; + classllvmo__LLVMContext_Oval->setInstanceNil(nil_for_class); + } + classllvmo__LLVMContext_Oval->setSupportsSlots(llvmo::LLVMContext_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Module_Oval]")); + core::BuiltInClass_sp classllvmo__Module_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Module_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Module_Oval,_lisp,llvmo::Module_O::static_classSymbol()); + llvmo::Module_O::___staticMetaClass = classllvmo__Module_Oval; + _lisp->setf_findClass(llvmo::Module_O::static_classSymbol(),classllvmo__Module_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Module_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Module_O::static_className() % (void*)(llvmo::Module_O::static_newNil_callback()) ); + classllvmo__Module_Oval->setInstance_newNil_callback(llvmo::Module_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Module_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Module_O::static_className() ); + llvmo::Module_O::_nil = nil_for_class; + classllvmo__Module_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Module_Oval->setSupportsSlots(llvmo::Module_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__PassManagerBase_Oval]")); + core::BuiltInClass_sp classllvmo__PassManagerBase_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__PassManagerBase_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__PassManagerBase_Oval,_lisp,llvmo::PassManagerBase_O::static_classSymbol()); + llvmo::PassManagerBase_O::___staticMetaClass = classllvmo__PassManagerBase_Oval; + _lisp->setf_findClass(llvmo::PassManagerBase_O::static_classSymbol(),classllvmo__PassManagerBase_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::PassManagerBase_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::PassManagerBase_O::static_className() % (void*)(llvmo::PassManagerBase_O::static_newNil_callback()) ); + classllvmo__PassManagerBase_Oval->setInstance_newNil_callback(llvmo::PassManagerBase_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::PassManagerBase_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::PassManagerBase_O::static_className() ); + llvmo::PassManagerBase_O::_nil = nil_for_class; + classllvmo__PassManagerBase_Oval->setInstanceNil(nil_for_class); + } + classllvmo__PassManagerBase_Oval->setSupportsSlots(llvmo::PassManagerBase_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Pass_Oval]")); + core::BuiltInClass_sp classllvmo__Pass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Pass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Pass_Oval,_lisp,llvmo::Pass_O::static_classSymbol()); + llvmo::Pass_O::___staticMetaClass = classllvmo__Pass_Oval; + _lisp->setf_findClass(llvmo::Pass_O::static_classSymbol(),classllvmo__Pass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Pass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Pass_O::static_className() % (void*)(llvmo::Pass_O::static_newNil_callback()) ); + classllvmo__Pass_Oval->setInstance_newNil_callback(llvmo::Pass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Pass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Pass_O::static_className() ); + llvmo::Pass_O::_nil = nil_for_class; + classllvmo__Pass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Pass_Oval->setSupportsSlots(llvmo::Pass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Type_Oval]")); + core::BuiltInClass_sp classllvmo__Type_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Type_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Type_Oval,_lisp,llvmo::Type_O::static_classSymbol()); + llvmo::Type_O::___staticMetaClass = classllvmo__Type_Oval; + _lisp->setf_findClass(llvmo::Type_O::static_classSymbol(),classllvmo__Type_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Type_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Type_O::static_className() % (void*)(llvmo::Type_O::static_newNil_callback()) ); + classllvmo__Type_Oval->setInstance_newNil_callback(llvmo::Type_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Type_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Type_O::static_className() ); + llvmo::Type_O::_nil = nil_for_class; + classllvmo__Type_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Type_Oval->setSupportsSlots(llvmo::Type_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Value_Oval]")); + core::BuiltInClass_sp classllvmo__Value_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Value_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Value_Oval,_lisp,llvmo::Value_O::static_classSymbol()); + llvmo::Value_O::___staticMetaClass = classllvmo__Value_Oval; + _lisp->setf_findClass(llvmo::Value_O::static_classSymbol(),classllvmo__Value_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Value_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Value_O::static_className() % (void*)(llvmo::Value_O::static_newNil_callback()) ); + classllvmo__Value_Oval->setInstance_newNil_callback(llvmo::Value_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Value_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Value_O::static_className() ); + llvmo::Value_O::_nil = nil_for_class; + classllvmo__Value_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Value_Oval->setSupportsSlots(llvmo::Value_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Argument_Oval]")); + core::BuiltInClass_sp classllvmo__Argument_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Argument_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Argument_Oval,_lisp,llvmo::Argument_O::static_classSymbol()); + llvmo::Argument_O::___staticMetaClass = classllvmo__Argument_Oval; + _lisp->setf_findClass(llvmo::Argument_O::static_classSymbol(),classllvmo__Argument_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Argument_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Argument_O::static_className() % (void*)(llvmo::Argument_O::static_newNil_callback()) ); + classllvmo__Argument_Oval->setInstance_newNil_callback(llvmo::Argument_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Argument_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Argument_O::static_className() ); + llvmo::Argument_O::_nil = nil_for_class; + classllvmo__Argument_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Argument_Oval->setSupportsSlots(llvmo::Argument_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__BasicBlock_Oval]")); + core::BuiltInClass_sp classllvmo__BasicBlock_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__BasicBlock_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__BasicBlock_Oval,_lisp,llvmo::BasicBlock_O::static_classSymbol()); + llvmo::BasicBlock_O::___staticMetaClass = classllvmo__BasicBlock_Oval; + _lisp->setf_findClass(llvmo::BasicBlock_O::static_classSymbol(),classllvmo__BasicBlock_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::BasicBlock_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::BasicBlock_O::static_className() % (void*)(llvmo::BasicBlock_O::static_newNil_callback()) ); + classllvmo__BasicBlock_Oval->setInstance_newNil_callback(llvmo::BasicBlock_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::BasicBlock_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::BasicBlock_O::static_className() ); + llvmo::BasicBlock_O::_nil = nil_for_class; + classllvmo__BasicBlock_Oval->setInstanceNil(nil_for_class); + } + classllvmo__BasicBlock_Oval->setSupportsSlots(llvmo::BasicBlock_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__CompositeType_Oval]")); + core::BuiltInClass_sp classllvmo__CompositeType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__CompositeType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__CompositeType_Oval,_lisp,llvmo::CompositeType_O::static_classSymbol()); + llvmo::CompositeType_O::___staticMetaClass = classllvmo__CompositeType_Oval; + _lisp->setf_findClass(llvmo::CompositeType_O::static_classSymbol(),classllvmo__CompositeType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::CompositeType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::CompositeType_O::static_className() % (void*)(llvmo::CompositeType_O::static_newNil_callback()) ); + classllvmo__CompositeType_Oval->setInstance_newNil_callback(llvmo::CompositeType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::CompositeType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::CompositeType_O::static_className() ); + llvmo::CompositeType_O::_nil = nil_for_class; + classllvmo__CompositeType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__CompositeType_Oval->setSupportsSlots(llvmo::CompositeType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FunctionPassManager_Oval]")); + core::BuiltInClass_sp classllvmo__FunctionPassManager_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FunctionPassManager_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FunctionPassManager_Oval,_lisp,llvmo::FunctionPassManager_O::static_classSymbol()); + llvmo::FunctionPassManager_O::___staticMetaClass = classllvmo__FunctionPassManager_Oval; + _lisp->setf_findClass(llvmo::FunctionPassManager_O::static_classSymbol(),classllvmo__FunctionPassManager_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FunctionPassManager_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FunctionPassManager_O::static_className() % (void*)(llvmo::FunctionPassManager_O::static_newNil_callback()) ); + classllvmo__FunctionPassManager_Oval->setInstance_newNil_callback(llvmo::FunctionPassManager_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FunctionPassManager_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FunctionPassManager_O::static_className() ); + llvmo::FunctionPassManager_O::_nil = nil_for_class; + classllvmo__FunctionPassManager_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FunctionPassManager_Oval->setSupportsSlots(llvmo::FunctionPassManager_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FunctionPass_Oval]")); + core::BuiltInClass_sp classllvmo__FunctionPass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FunctionPass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FunctionPass_Oval,_lisp,llvmo::FunctionPass_O::static_classSymbol()); + llvmo::FunctionPass_O::___staticMetaClass = classllvmo__FunctionPass_Oval; + _lisp->setf_findClass(llvmo::FunctionPass_O::static_classSymbol(),classllvmo__FunctionPass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FunctionPass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FunctionPass_O::static_className() % (void*)(llvmo::FunctionPass_O::static_newNil_callback()) ); + classllvmo__FunctionPass_Oval->setInstance_newNil_callback(llvmo::FunctionPass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FunctionPass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FunctionPass_O::static_className() ); + llvmo::FunctionPass_O::_nil = nil_for_class; + classllvmo__FunctionPass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FunctionPass_Oval->setSupportsSlots(llvmo::FunctionPass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FunctionType_Oval]")); + core::BuiltInClass_sp classllvmo__FunctionType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FunctionType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FunctionType_Oval,_lisp,llvmo::FunctionType_O::static_classSymbol()); + llvmo::FunctionType_O::___staticMetaClass = classllvmo__FunctionType_Oval; + _lisp->setf_findClass(llvmo::FunctionType_O::static_classSymbol(),classllvmo__FunctionType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FunctionType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FunctionType_O::static_className() % (void*)(llvmo::FunctionType_O::static_newNil_callback()) ); + classllvmo__FunctionType_Oval->setInstance_newNil_callback(llvmo::FunctionType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FunctionType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FunctionType_O::static_className() ); + llvmo::FunctionType_O::_nil = nil_for_class; + classllvmo__FunctionType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FunctionType_Oval->setSupportsSlots(llvmo::FunctionType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IRBuilder_Oval]")); + core::BuiltInClass_sp classllvmo__IRBuilder_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IRBuilder_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IRBuilder_Oval,_lisp,llvmo::IRBuilder_O::static_classSymbol()); + llvmo::IRBuilder_O::___staticMetaClass = classllvmo__IRBuilder_Oval; + _lisp->setf_findClass(llvmo::IRBuilder_O::static_classSymbol(),classllvmo__IRBuilder_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IRBuilder_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IRBuilder_O::static_className() % (void*)(llvmo::IRBuilder_O::static_newNil_callback()) ); + classllvmo__IRBuilder_Oval->setInstance_newNil_callback(llvmo::IRBuilder_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IRBuilder_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IRBuilder_O::static_className() ); + llvmo::IRBuilder_O::_nil = nil_for_class; + classllvmo__IRBuilder_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IRBuilder_Oval->setSupportsSlots(llvmo::IRBuilder_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IntegerType_Oval]")); + core::BuiltInClass_sp classllvmo__IntegerType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IntegerType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IntegerType_Oval,_lisp,llvmo::IntegerType_O::static_classSymbol()); + llvmo::IntegerType_O::___staticMetaClass = classllvmo__IntegerType_Oval; + _lisp->setf_findClass(llvmo::IntegerType_O::static_classSymbol(),classllvmo__IntegerType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IntegerType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IntegerType_O::static_className() % (void*)(llvmo::IntegerType_O::static_newNil_callback()) ); + classllvmo__IntegerType_Oval->setInstance_newNil_callback(llvmo::IntegerType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IntegerType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IntegerType_O::static_className() ); + llvmo::IntegerType_O::_nil = nil_for_class; + classllvmo__IntegerType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IntegerType_Oval->setSupportsSlots(llvmo::IntegerType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__MDNode_Oval]")); + core::BuiltInClass_sp classllvmo__MDNode_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__MDNode_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__MDNode_Oval,_lisp,llvmo::MDNode_O::static_classSymbol()); + llvmo::MDNode_O::___staticMetaClass = classllvmo__MDNode_Oval; + _lisp->setf_findClass(llvmo::MDNode_O::static_classSymbol(),classllvmo__MDNode_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::MDNode_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::MDNode_O::static_className() % (void*)(llvmo::MDNode_O::static_newNil_callback()) ); + classllvmo__MDNode_Oval->setInstance_newNil_callback(llvmo::MDNode_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::MDNode_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::MDNode_O::static_className() ); + llvmo::MDNode_O::_nil = nil_for_class; + classllvmo__MDNode_Oval->setInstanceNil(nil_for_class); + } + classllvmo__MDNode_Oval->setSupportsSlots(llvmo::MDNode_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__MDString_Oval]")); + core::BuiltInClass_sp classllvmo__MDString_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__MDString_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__MDString_Oval,_lisp,llvmo::MDString_O::static_classSymbol()); + llvmo::MDString_O::___staticMetaClass = classllvmo__MDString_Oval; + _lisp->setf_findClass(llvmo::MDString_O::static_classSymbol(),classllvmo__MDString_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::MDString_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::MDString_O::static_className() % (void*)(llvmo::MDString_O::static_newNil_callback()) ); + classllvmo__MDString_Oval->setInstance_newNil_callback(llvmo::MDString_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::MDString_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::MDString_O::static_className() ); + llvmo::MDString_O::_nil = nil_for_class; + classllvmo__MDString_Oval->setInstanceNil(nil_for_class); + } + classllvmo__MDString_Oval->setSupportsSlots(llvmo::MDString_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ModulePass_Oval]")); + core::BuiltInClass_sp classllvmo__ModulePass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ModulePass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ModulePass_Oval,_lisp,llvmo::ModulePass_O::static_classSymbol()); + llvmo::ModulePass_O::___staticMetaClass = classllvmo__ModulePass_Oval; + _lisp->setf_findClass(llvmo::ModulePass_O::static_classSymbol(),classllvmo__ModulePass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ModulePass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ModulePass_O::static_className() % (void*)(llvmo::ModulePass_O::static_newNil_callback()) ); + classllvmo__ModulePass_Oval->setInstance_newNil_callback(llvmo::ModulePass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ModulePass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ModulePass_O::static_className() ); + llvmo::ModulePass_O::_nil = nil_for_class; + classllvmo__ModulePass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ModulePass_Oval->setSupportsSlots(llvmo::ModulePass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__User_Oval]")); + core::BuiltInClass_sp classllvmo__User_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__User_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__User_Oval,_lisp,llvmo::User_O::static_classSymbol()); + llvmo::User_O::___staticMetaClass = classllvmo__User_Oval; + _lisp->setf_findClass(llvmo::User_O::static_classSymbol(),classllvmo__User_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::User_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::User_O::static_className() % (void*)(llvmo::User_O::static_newNil_callback()) ); + classllvmo__User_Oval->setInstance_newNil_callback(llvmo::User_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::User_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::User_O::static_className() ); + llvmo::User_O::_nil = nil_for_class; + classllvmo__User_Oval->setInstanceNil(nil_for_class); + } + classllvmo__User_Oval->setSupportsSlots(llvmo::User_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Constant_Oval]")); + core::BuiltInClass_sp classllvmo__Constant_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Constant_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Constant_Oval,_lisp,llvmo::Constant_O::static_classSymbol()); + llvmo::Constant_O::___staticMetaClass = classllvmo__Constant_Oval; + _lisp->setf_findClass(llvmo::Constant_O::static_classSymbol(),classllvmo__Constant_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Constant_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Constant_O::static_className() % (void*)(llvmo::Constant_O::static_newNil_callback()) ); + classllvmo__Constant_Oval->setInstance_newNil_callback(llvmo::Constant_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Constant_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Constant_O::static_className() ); + llvmo::Constant_O::_nil = nil_for_class; + classllvmo__Constant_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Constant_Oval->setSupportsSlots(llvmo::Constant_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ImmutablePass_Oval]")); + core::BuiltInClass_sp classllvmo__ImmutablePass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ImmutablePass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ImmutablePass_Oval,_lisp,llvmo::ImmutablePass_O::static_classSymbol()); + llvmo::ImmutablePass_O::___staticMetaClass = classllvmo__ImmutablePass_Oval; + _lisp->setf_findClass(llvmo::ImmutablePass_O::static_classSymbol(),classllvmo__ImmutablePass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ImmutablePass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ImmutablePass_O::static_className() % (void*)(llvmo::ImmutablePass_O::static_newNil_callback()) ); + classllvmo__ImmutablePass_Oval->setInstance_newNil_callback(llvmo::ImmutablePass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ImmutablePass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ImmutablePass_O::static_className() ); + llvmo::ImmutablePass_O::_nil = nil_for_class; + classllvmo__ImmutablePass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ImmutablePass_Oval->setSupportsSlots(llvmo::ImmutablePass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Instruction_Oval]")); + core::BuiltInClass_sp classllvmo__Instruction_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Instruction_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Instruction_Oval,_lisp,llvmo::Instruction_O::static_classSymbol()); + llvmo::Instruction_O::___staticMetaClass = classllvmo__Instruction_Oval; + _lisp->setf_findClass(llvmo::Instruction_O::static_classSymbol(),classllvmo__Instruction_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Instruction_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Instruction_O::static_className() % (void*)(llvmo::Instruction_O::static_newNil_callback()) ); + classllvmo__Instruction_Oval->setInstance_newNil_callback(llvmo::Instruction_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Instruction_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Instruction_O::static_className() ); + llvmo::Instruction_O::_nil = nil_for_class; + classllvmo__Instruction_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Instruction_Oval->setSupportsSlots(llvmo::Instruction_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__SequentialType_Oval]")); + core::BuiltInClass_sp classllvmo__SequentialType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__SequentialType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__SequentialType_Oval,_lisp,llvmo::SequentialType_O::static_classSymbol()); + llvmo::SequentialType_O::___staticMetaClass = classllvmo__SequentialType_Oval; + _lisp->setf_findClass(llvmo::SequentialType_O::static_classSymbol(),classllvmo__SequentialType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::SequentialType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::SequentialType_O::static_className() % (void*)(llvmo::SequentialType_O::static_newNil_callback()) ); + classllvmo__SequentialType_Oval->setInstance_newNil_callback(llvmo::SequentialType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::SequentialType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::SequentialType_O::static_className() ); + llvmo::SequentialType_O::_nil = nil_for_class; + classllvmo__SequentialType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__SequentialType_Oval->setSupportsSlots(llvmo::SequentialType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__StructType_Oval]")); + core::BuiltInClass_sp classllvmo__StructType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__StructType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__StructType_Oval,_lisp,llvmo::StructType_O::static_classSymbol()); + llvmo::StructType_O::___staticMetaClass = classllvmo__StructType_Oval; + _lisp->setf_findClass(llvmo::StructType_O::static_classSymbol(),classllvmo__StructType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::StructType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::StructType_O::static_className() % (void*)(llvmo::StructType_O::static_newNil_callback()) ); + classllvmo__StructType_Oval->setInstance_newNil_callback(llvmo::StructType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::StructType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::StructType_O::static_className() ); + llvmo::StructType_O::_nil = nil_for_class; + classllvmo__StructType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__StructType_Oval->setSupportsSlots(llvmo::StructType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ArrayType_Oval]")); + core::BuiltInClass_sp classllvmo__ArrayType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ArrayType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ArrayType_Oval,_lisp,llvmo::ArrayType_O::static_classSymbol()); + llvmo::ArrayType_O::___staticMetaClass = classllvmo__ArrayType_Oval; + _lisp->setf_findClass(llvmo::ArrayType_O::static_classSymbol(),classllvmo__ArrayType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ArrayType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ArrayType_O::static_className() % (void*)(llvmo::ArrayType_O::static_newNil_callback()) ); + classllvmo__ArrayType_Oval->setInstance_newNil_callback(llvmo::ArrayType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ArrayType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ArrayType_O::static_className() ); + llvmo::ArrayType_O::_nil = nil_for_class; + classllvmo__ArrayType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ArrayType_Oval->setSupportsSlots(llvmo::ArrayType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__AtomicCmpXchgInst_Oval]")); + core::BuiltInClass_sp classllvmo__AtomicCmpXchgInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__AtomicCmpXchgInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__AtomicCmpXchgInst_Oval,_lisp,llvmo::AtomicCmpXchgInst_O::static_classSymbol()); + llvmo::AtomicCmpXchgInst_O::___staticMetaClass = classllvmo__AtomicCmpXchgInst_Oval; + _lisp->setf_findClass(llvmo::AtomicCmpXchgInst_O::static_classSymbol(),classllvmo__AtomicCmpXchgInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::AtomicCmpXchgInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::AtomicCmpXchgInst_O::static_className() % (void*)(llvmo::AtomicCmpXchgInst_O::static_newNil_callback()) ); + classllvmo__AtomicCmpXchgInst_Oval->setInstance_newNil_callback(llvmo::AtomicCmpXchgInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::AtomicCmpXchgInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::AtomicCmpXchgInst_O::static_className() ); + llvmo::AtomicCmpXchgInst_O::_nil = nil_for_class; + classllvmo__AtomicCmpXchgInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__AtomicCmpXchgInst_Oval->setSupportsSlots(llvmo::AtomicCmpXchgInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__AtomicRMWInst_Oval]")); + core::BuiltInClass_sp classllvmo__AtomicRMWInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__AtomicRMWInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__AtomicRMWInst_Oval,_lisp,llvmo::AtomicRMWInst_O::static_classSymbol()); + llvmo::AtomicRMWInst_O::___staticMetaClass = classllvmo__AtomicRMWInst_Oval; + _lisp->setf_findClass(llvmo::AtomicRMWInst_O::static_classSymbol(),classllvmo__AtomicRMWInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::AtomicRMWInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::AtomicRMWInst_O::static_className() % (void*)(llvmo::AtomicRMWInst_O::static_newNil_callback()) ); + classllvmo__AtomicRMWInst_Oval->setInstance_newNil_callback(llvmo::AtomicRMWInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::AtomicRMWInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::AtomicRMWInst_O::static_className() ); + llvmo::AtomicRMWInst_O::_nil = nil_for_class; + classllvmo__AtomicRMWInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__AtomicRMWInst_Oval->setSupportsSlots(llvmo::AtomicRMWInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__CallInst_Oval]")); + core::BuiltInClass_sp classllvmo__CallInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__CallInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__CallInst_Oval,_lisp,llvmo::CallInst_O::static_classSymbol()); + llvmo::CallInst_O::___staticMetaClass = classllvmo__CallInst_Oval; + _lisp->setf_findClass(llvmo::CallInst_O::static_classSymbol(),classllvmo__CallInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::CallInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::CallInst_O::static_className() % (void*)(llvmo::CallInst_O::static_newNil_callback()) ); + classllvmo__CallInst_Oval->setInstance_newNil_callback(llvmo::CallInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::CallInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::CallInst_O::static_className() ); + llvmo::CallInst_O::_nil = nil_for_class; + classllvmo__CallInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__CallInst_Oval->setSupportsSlots(llvmo::CallInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantArray_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantArray_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantArray_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantArray_Oval,_lisp,llvmo::ConstantArray_O::static_classSymbol()); + llvmo::ConstantArray_O::___staticMetaClass = classllvmo__ConstantArray_Oval; + _lisp->setf_findClass(llvmo::ConstantArray_O::static_classSymbol(),classllvmo__ConstantArray_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantArray_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantArray_O::static_className() % (void*)(llvmo::ConstantArray_O::static_newNil_callback()) ); + classllvmo__ConstantArray_Oval->setInstance_newNil_callback(llvmo::ConstantArray_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantArray_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantArray_O::static_className() ); + llvmo::ConstantArray_O::_nil = nil_for_class; + classllvmo__ConstantArray_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantArray_Oval->setSupportsSlots(llvmo::ConstantArray_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantDataSequential_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantDataSequential_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantDataSequential_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantDataSequential_Oval,_lisp,llvmo::ConstantDataSequential_O::static_classSymbol()); + llvmo::ConstantDataSequential_O::___staticMetaClass = classllvmo__ConstantDataSequential_Oval; + _lisp->setf_findClass(llvmo::ConstantDataSequential_O::static_classSymbol(),classllvmo__ConstantDataSequential_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantDataSequential_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantDataSequential_O::static_className() % (void*)(llvmo::ConstantDataSequential_O::static_newNil_callback()) ); + classllvmo__ConstantDataSequential_Oval->setInstance_newNil_callback(llvmo::ConstantDataSequential_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantDataSequential_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantDataSequential_O::static_className() ); + llvmo::ConstantDataSequential_O::_nil = nil_for_class; + classllvmo__ConstantDataSequential_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantDataSequential_Oval->setSupportsSlots(llvmo::ConstantDataSequential_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantExpr_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantExpr_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantExpr_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantExpr_Oval,_lisp,llvmo::ConstantExpr_O::static_classSymbol()); + llvmo::ConstantExpr_O::___staticMetaClass = classllvmo__ConstantExpr_Oval; + _lisp->setf_findClass(llvmo::ConstantExpr_O::static_classSymbol(),classllvmo__ConstantExpr_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantExpr_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantExpr_O::static_className() % (void*)(llvmo::ConstantExpr_O::static_newNil_callback()) ); + classllvmo__ConstantExpr_Oval->setInstance_newNil_callback(llvmo::ConstantExpr_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantExpr_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantExpr_O::static_className() ); + llvmo::ConstantExpr_O::_nil = nil_for_class; + classllvmo__ConstantExpr_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantExpr_Oval->setSupportsSlots(llvmo::ConstantExpr_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantFP_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantFP_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantFP_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantFP_Oval,_lisp,llvmo::ConstantFP_O::static_classSymbol()); + llvmo::ConstantFP_O::___staticMetaClass = classllvmo__ConstantFP_Oval; + _lisp->setf_findClass(llvmo::ConstantFP_O::static_classSymbol(),classllvmo__ConstantFP_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantFP_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantFP_O::static_className() % (void*)(llvmo::ConstantFP_O::static_newNil_callback()) ); + classllvmo__ConstantFP_Oval->setInstance_newNil_callback(llvmo::ConstantFP_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantFP_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantFP_O::static_className() ); + llvmo::ConstantFP_O::_nil = nil_for_class; + classllvmo__ConstantFP_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantFP_Oval->setSupportsSlots(llvmo::ConstantFP_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantInt_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantInt_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantInt_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantInt_Oval,_lisp,llvmo::ConstantInt_O::static_classSymbol()); + llvmo::ConstantInt_O::___staticMetaClass = classllvmo__ConstantInt_Oval; + _lisp->setf_findClass(llvmo::ConstantInt_O::static_classSymbol(),classllvmo__ConstantInt_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantInt_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantInt_O::static_className() % (void*)(llvmo::ConstantInt_O::static_newNil_callback()) ); + classllvmo__ConstantInt_Oval->setInstance_newNil_callback(llvmo::ConstantInt_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantInt_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantInt_O::static_className() ); + llvmo::ConstantInt_O::_nil = nil_for_class; + classllvmo__ConstantInt_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantInt_Oval->setSupportsSlots(llvmo::ConstantInt_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantPointerNull_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantPointerNull_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantPointerNull_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantPointerNull_Oval,_lisp,llvmo::ConstantPointerNull_O::static_classSymbol()); + llvmo::ConstantPointerNull_O::___staticMetaClass = classllvmo__ConstantPointerNull_Oval; + _lisp->setf_findClass(llvmo::ConstantPointerNull_O::static_classSymbol(),classllvmo__ConstantPointerNull_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantPointerNull_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantPointerNull_O::static_className() % (void*)(llvmo::ConstantPointerNull_O::static_newNil_callback()) ); + classllvmo__ConstantPointerNull_Oval->setInstance_newNil_callback(llvmo::ConstantPointerNull_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantPointerNull_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantPointerNull_O::static_className() ); + llvmo::ConstantPointerNull_O::_nil = nil_for_class; + classllvmo__ConstantPointerNull_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantPointerNull_Oval->setSupportsSlots(llvmo::ConstantPointerNull_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__DataLayout_Oval]")); + core::BuiltInClass_sp classllvmo__DataLayout_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__DataLayout_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__DataLayout_Oval,_lisp,llvmo::DataLayout_O::static_classSymbol()); + llvmo::DataLayout_O::___staticMetaClass = classllvmo__DataLayout_Oval; + _lisp->setf_findClass(llvmo::DataLayout_O::static_classSymbol(),classllvmo__DataLayout_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::DataLayout_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::DataLayout_O::static_className() % (void*)(llvmo::DataLayout_O::static_newNil_callback()) ); + classllvmo__DataLayout_Oval->setInstance_newNil_callback(llvmo::DataLayout_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::DataLayout_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::DataLayout_O::static_className() ); + llvmo::DataLayout_O::_nil = nil_for_class; + classllvmo__DataLayout_Oval->setInstanceNil(nil_for_class); + } + classllvmo__DataLayout_Oval->setSupportsSlots(llvmo::DataLayout_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FenceInst_Oval]")); + core::BuiltInClass_sp classllvmo__FenceInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FenceInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FenceInst_Oval,_lisp,llvmo::FenceInst_O::static_classSymbol()); + llvmo::FenceInst_O::___staticMetaClass = classllvmo__FenceInst_Oval; + _lisp->setf_findClass(llvmo::FenceInst_O::static_classSymbol(),classllvmo__FenceInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FenceInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FenceInst_O::static_className() % (void*)(llvmo::FenceInst_O::static_newNil_callback()) ); + classllvmo__FenceInst_Oval->setInstance_newNil_callback(llvmo::FenceInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FenceInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FenceInst_O::static_className() ); + llvmo::FenceInst_O::_nil = nil_for_class; + classllvmo__FenceInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FenceInst_Oval->setSupportsSlots(llvmo::FenceInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__GlobalValue_Oval]")); + core::BuiltInClass_sp classllvmo__GlobalValue_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__GlobalValue_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__GlobalValue_Oval,_lisp,llvmo::GlobalValue_O::static_classSymbol()); + llvmo::GlobalValue_O::___staticMetaClass = classllvmo__GlobalValue_Oval; + _lisp->setf_findClass(llvmo::GlobalValue_O::static_classSymbol(),classllvmo__GlobalValue_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::GlobalValue_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::GlobalValue_O::static_className() % (void*)(llvmo::GlobalValue_O::static_newNil_callback()) ); + classllvmo__GlobalValue_Oval->setInstance_newNil_callback(llvmo::GlobalValue_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::GlobalValue_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::GlobalValue_O::static_className() ); + llvmo::GlobalValue_O::_nil = nil_for_class; + classllvmo__GlobalValue_Oval->setInstanceNil(nil_for_class); + } + classllvmo__GlobalValue_Oval->setSupportsSlots(llvmo::GlobalValue_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__LandingPadInst_Oval]")); + core::BuiltInClass_sp classllvmo__LandingPadInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__LandingPadInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__LandingPadInst_Oval,_lisp,llvmo::LandingPadInst_O::static_classSymbol()); + llvmo::LandingPadInst_O::___staticMetaClass = classllvmo__LandingPadInst_Oval; + _lisp->setf_findClass(llvmo::LandingPadInst_O::static_classSymbol(),classllvmo__LandingPadInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::LandingPadInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::LandingPadInst_O::static_className() % (void*)(llvmo::LandingPadInst_O::static_newNil_callback()) ); + classllvmo__LandingPadInst_Oval->setInstance_newNil_callback(llvmo::LandingPadInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::LandingPadInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::LandingPadInst_O::static_className() ); + llvmo::LandingPadInst_O::_nil = nil_for_class; + classllvmo__LandingPadInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__LandingPadInst_Oval->setSupportsSlots(llvmo::LandingPadInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__PHINode_Oval]")); + core::BuiltInClass_sp classllvmo__PHINode_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__PHINode_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__PHINode_Oval,_lisp,llvmo::PHINode_O::static_classSymbol()); + llvmo::PHINode_O::___staticMetaClass = classllvmo__PHINode_Oval; + _lisp->setf_findClass(llvmo::PHINode_O::static_classSymbol(),classllvmo__PHINode_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::PHINode_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::PHINode_O::static_className() % (void*)(llvmo::PHINode_O::static_newNil_callback()) ); + classllvmo__PHINode_Oval->setInstance_newNil_callback(llvmo::PHINode_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::PHINode_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::PHINode_O::static_className() ); + llvmo::PHINode_O::_nil = nil_for_class; + classllvmo__PHINode_Oval->setInstanceNil(nil_for_class); + } + classllvmo__PHINode_Oval->setSupportsSlots(llvmo::PHINode_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__PointerType_Oval]")); + core::BuiltInClass_sp classllvmo__PointerType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__PointerType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__PointerType_Oval,_lisp,llvmo::PointerType_O::static_classSymbol()); + llvmo::PointerType_O::___staticMetaClass = classllvmo__PointerType_Oval; + _lisp->setf_findClass(llvmo::PointerType_O::static_classSymbol(),classllvmo__PointerType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::PointerType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::PointerType_O::static_className() % (void*)(llvmo::PointerType_O::static_newNil_callback()) ); + classllvmo__PointerType_Oval->setInstance_newNil_callback(llvmo::PointerType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::PointerType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::PointerType_O::static_className() ); + llvmo::PointerType_O::_nil = nil_for_class; + classllvmo__PointerType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__PointerType_Oval->setSupportsSlots(llvmo::PointerType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__StoreInst_Oval]")); + core::BuiltInClass_sp classllvmo__StoreInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__StoreInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__StoreInst_Oval,_lisp,llvmo::StoreInst_O::static_classSymbol()); + llvmo::StoreInst_O::___staticMetaClass = classllvmo__StoreInst_Oval; + _lisp->setf_findClass(llvmo::StoreInst_O::static_classSymbol(),classllvmo__StoreInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::StoreInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::StoreInst_O::static_className() % (void*)(llvmo::StoreInst_O::static_newNil_callback()) ); + classllvmo__StoreInst_Oval->setInstance_newNil_callback(llvmo::StoreInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::StoreInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::StoreInst_O::static_className() ); + llvmo::StoreInst_O::_nil = nil_for_class; + classllvmo__StoreInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__StoreInst_Oval->setSupportsSlots(llvmo::StoreInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__TerminatorInst_Oval]")); + core::BuiltInClass_sp classllvmo__TerminatorInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__TerminatorInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__TerminatorInst_Oval,_lisp,llvmo::TerminatorInst_O::static_classSymbol()); + llvmo::TerminatorInst_O::___staticMetaClass = classllvmo__TerminatorInst_Oval; + _lisp->setf_findClass(llvmo::TerminatorInst_O::static_classSymbol(),classllvmo__TerminatorInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::TerminatorInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::TerminatorInst_O::static_className() % (void*)(llvmo::TerminatorInst_O::static_newNil_callback()) ); + classllvmo__TerminatorInst_Oval->setInstance_newNil_callback(llvmo::TerminatorInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::TerminatorInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::TerminatorInst_O::static_className() ); + llvmo::TerminatorInst_O::_nil = nil_for_class; + classllvmo__TerminatorInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__TerminatorInst_Oval->setSupportsSlots(llvmo::TerminatorInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__UnaryInstruction_Oval]")); + core::BuiltInClass_sp classllvmo__UnaryInstruction_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__UnaryInstruction_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__UnaryInstruction_Oval,_lisp,llvmo::UnaryInstruction_O::static_classSymbol()); + llvmo::UnaryInstruction_O::___staticMetaClass = classllvmo__UnaryInstruction_Oval; + _lisp->setf_findClass(llvmo::UnaryInstruction_O::static_classSymbol(),classllvmo__UnaryInstruction_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::UnaryInstruction_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::UnaryInstruction_O::static_className() % (void*)(llvmo::UnaryInstruction_O::static_newNil_callback()) ); + classllvmo__UnaryInstruction_Oval->setInstance_newNil_callback(llvmo::UnaryInstruction_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::UnaryInstruction_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::UnaryInstruction_O::static_className() ); + llvmo::UnaryInstruction_O::_nil = nil_for_class; + classllvmo__UnaryInstruction_Oval->setInstanceNil(nil_for_class); + } + classllvmo__UnaryInstruction_Oval->setSupportsSlots(llvmo::UnaryInstruction_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__UndefValue_Oval]")); + core::BuiltInClass_sp classllvmo__UndefValue_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__UndefValue_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__UndefValue_Oval,_lisp,llvmo::UndefValue_O::static_classSymbol()); + llvmo::UndefValue_O::___staticMetaClass = classllvmo__UndefValue_Oval; + _lisp->setf_findClass(llvmo::UndefValue_O::static_classSymbol(),classllvmo__UndefValue_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::UndefValue_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::UndefValue_O::static_className() % (void*)(llvmo::UndefValue_O::static_newNil_callback()) ); + classllvmo__UndefValue_Oval->setInstance_newNil_callback(llvmo::UndefValue_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::UndefValue_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::UndefValue_O::static_className() ); + llvmo::UndefValue_O::_nil = nil_for_class; + classllvmo__UndefValue_Oval->setInstanceNil(nil_for_class); + } + classllvmo__UndefValue_Oval->setSupportsSlots(llvmo::UndefValue_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__VectorType_Oval]")); + core::BuiltInClass_sp classllvmo__VectorType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__VectorType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__VectorType_Oval,_lisp,llvmo::VectorType_O::static_classSymbol()); + llvmo::VectorType_O::___staticMetaClass = classllvmo__VectorType_Oval; + _lisp->setf_findClass(llvmo::VectorType_O::static_classSymbol(),classllvmo__VectorType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::VectorType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::VectorType_O::static_className() % (void*)(llvmo::VectorType_O::static_newNil_callback()) ); + classllvmo__VectorType_Oval->setInstance_newNil_callback(llvmo::VectorType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::VectorType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::VectorType_O::static_className() ); + llvmo::VectorType_O::_nil = nil_for_class; + classllvmo__VectorType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__VectorType_Oval->setSupportsSlots(llvmo::VectorType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__AllocaInst_Oval]")); + core::BuiltInClass_sp classllvmo__AllocaInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__AllocaInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__AllocaInst_Oval,_lisp,llvmo::AllocaInst_O::static_classSymbol()); + llvmo::AllocaInst_O::___staticMetaClass = classllvmo__AllocaInst_Oval; + _lisp->setf_findClass(llvmo::AllocaInst_O::static_classSymbol(),classllvmo__AllocaInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::AllocaInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::AllocaInst_O::static_className() % (void*)(llvmo::AllocaInst_O::static_newNil_callback()) ); + classllvmo__AllocaInst_Oval->setInstance_newNil_callback(llvmo::AllocaInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::AllocaInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::AllocaInst_O::static_className() ); + llvmo::AllocaInst_O::_nil = nil_for_class; + classllvmo__AllocaInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__AllocaInst_Oval->setSupportsSlots(llvmo::AllocaInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__BranchInst_Oval]")); + core::BuiltInClass_sp classllvmo__BranchInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__BranchInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__BranchInst_Oval,_lisp,llvmo::BranchInst_O::static_classSymbol()); + llvmo::BranchInst_O::___staticMetaClass = classllvmo__BranchInst_Oval; + _lisp->setf_findClass(llvmo::BranchInst_O::static_classSymbol(),classllvmo__BranchInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::BranchInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::BranchInst_O::static_className() % (void*)(llvmo::BranchInst_O::static_newNil_callback()) ); + classllvmo__BranchInst_Oval->setInstance_newNil_callback(llvmo::BranchInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::BranchInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::BranchInst_O::static_className() ); + llvmo::BranchInst_O::_nil = nil_for_class; + classllvmo__BranchInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__BranchInst_Oval->setSupportsSlots(llvmo::BranchInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantDataArray_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantDataArray_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantDataArray_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantDataArray_Oval,_lisp,llvmo::ConstantDataArray_O::static_classSymbol()); + llvmo::ConstantDataArray_O::___staticMetaClass = classllvmo__ConstantDataArray_Oval; + _lisp->setf_findClass(llvmo::ConstantDataArray_O::static_classSymbol(),classllvmo__ConstantDataArray_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantDataArray_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantDataArray_O::static_className() % (void*)(llvmo::ConstantDataArray_O::static_newNil_callback()) ); + classllvmo__ConstantDataArray_Oval->setInstance_newNil_callback(llvmo::ConstantDataArray_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantDataArray_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantDataArray_O::static_className() ); + llvmo::ConstantDataArray_O::_nil = nil_for_class; + classllvmo__ConstantDataArray_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantDataArray_Oval->setSupportsSlots(llvmo::ConstantDataArray_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Function_Oval]")); + core::BuiltInClass_sp classllvmo__Function_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Function_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Function_Oval,_lisp,llvmo::Function_O::static_classSymbol()); + llvmo::Function_O::___staticMetaClass = classllvmo__Function_Oval; + _lisp->setf_findClass(llvmo::Function_O::static_classSymbol(),classllvmo__Function_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Function_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Function_O::static_className() % (void*)(llvmo::Function_O::static_newNil_callback()) ); + classllvmo__Function_Oval->setInstance_newNil_callback(llvmo::Function_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Function_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Function_O::static_className() ); + llvmo::Function_O::_nil = nil_for_class; + classllvmo__Function_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Function_Oval->setSupportsSlots(llvmo::Function_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__GlobalVariable_Oval]")); + core::BuiltInClass_sp classllvmo__GlobalVariable_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__GlobalVariable_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__GlobalVariable_Oval,_lisp,llvmo::GlobalVariable_O::static_classSymbol()); + llvmo::GlobalVariable_O::___staticMetaClass = classllvmo__GlobalVariable_Oval; + _lisp->setf_findClass(llvmo::GlobalVariable_O::static_classSymbol(),classllvmo__GlobalVariable_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::GlobalVariable_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::GlobalVariable_O::static_className() % (void*)(llvmo::GlobalVariable_O::static_newNil_callback()) ); + classllvmo__GlobalVariable_Oval->setInstance_newNil_callback(llvmo::GlobalVariable_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::GlobalVariable_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::GlobalVariable_O::static_className() ); + llvmo::GlobalVariable_O::_nil = nil_for_class; + classllvmo__GlobalVariable_Oval->setInstanceNil(nil_for_class); + } + classllvmo__GlobalVariable_Oval->setSupportsSlots(llvmo::GlobalVariable_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IndirectBrInst_Oval]")); + core::BuiltInClass_sp classllvmo__IndirectBrInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IndirectBrInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IndirectBrInst_Oval,_lisp,llvmo::IndirectBrInst_O::static_classSymbol()); + llvmo::IndirectBrInst_O::___staticMetaClass = classllvmo__IndirectBrInst_Oval; + _lisp->setf_findClass(llvmo::IndirectBrInst_O::static_classSymbol(),classllvmo__IndirectBrInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IndirectBrInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IndirectBrInst_O::static_className() % (void*)(llvmo::IndirectBrInst_O::static_newNil_callback()) ); + classllvmo__IndirectBrInst_Oval->setInstance_newNil_callback(llvmo::IndirectBrInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IndirectBrInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IndirectBrInst_O::static_className() ); + llvmo::IndirectBrInst_O::_nil = nil_for_class; + classllvmo__IndirectBrInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IndirectBrInst_Oval->setSupportsSlots(llvmo::IndirectBrInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__InvokeInst_Oval]")); + core::BuiltInClass_sp classllvmo__InvokeInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__InvokeInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__InvokeInst_Oval,_lisp,llvmo::InvokeInst_O::static_classSymbol()); + llvmo::InvokeInst_O::___staticMetaClass = classllvmo__InvokeInst_Oval; + _lisp->setf_findClass(llvmo::InvokeInst_O::static_classSymbol(),classllvmo__InvokeInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::InvokeInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::InvokeInst_O::static_className() % (void*)(llvmo::InvokeInst_O::static_newNil_callback()) ); + classllvmo__InvokeInst_Oval->setInstance_newNil_callback(llvmo::InvokeInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::InvokeInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::InvokeInst_O::static_className() ); + llvmo::InvokeInst_O::_nil = nil_for_class; + classllvmo__InvokeInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__InvokeInst_Oval->setSupportsSlots(llvmo::InvokeInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__LoadInst_Oval]")); + core::BuiltInClass_sp classllvmo__LoadInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__LoadInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__LoadInst_Oval,_lisp,llvmo::LoadInst_O::static_classSymbol()); + llvmo::LoadInst_O::___staticMetaClass = classllvmo__LoadInst_Oval; + _lisp->setf_findClass(llvmo::LoadInst_O::static_classSymbol(),classllvmo__LoadInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::LoadInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::LoadInst_O::static_className() % (void*)(llvmo::LoadInst_O::static_newNil_callback()) ); + classllvmo__LoadInst_Oval->setInstance_newNil_callback(llvmo::LoadInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::LoadInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::LoadInst_O::static_className() ); + llvmo::LoadInst_O::_nil = nil_for_class; + classllvmo__LoadInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__LoadInst_Oval->setSupportsSlots(llvmo::LoadInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ResumeInst_Oval]")); + core::BuiltInClass_sp classllvmo__ResumeInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ResumeInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ResumeInst_Oval,_lisp,llvmo::ResumeInst_O::static_classSymbol()); + llvmo::ResumeInst_O::___staticMetaClass = classllvmo__ResumeInst_Oval; + _lisp->setf_findClass(llvmo::ResumeInst_O::static_classSymbol(),classllvmo__ResumeInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ResumeInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ResumeInst_O::static_className() % (void*)(llvmo::ResumeInst_O::static_newNil_callback()) ); + classllvmo__ResumeInst_Oval->setInstance_newNil_callback(llvmo::ResumeInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ResumeInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ResumeInst_O::static_className() ); + llvmo::ResumeInst_O::_nil = nil_for_class; + classllvmo__ResumeInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ResumeInst_Oval->setSupportsSlots(llvmo::ResumeInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ReturnInst_Oval]")); + core::BuiltInClass_sp classllvmo__ReturnInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ReturnInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ReturnInst_Oval,_lisp,llvmo::ReturnInst_O::static_classSymbol()); + llvmo::ReturnInst_O::___staticMetaClass = classllvmo__ReturnInst_Oval; + _lisp->setf_findClass(llvmo::ReturnInst_O::static_classSymbol(),classllvmo__ReturnInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ReturnInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ReturnInst_O::static_className() % (void*)(llvmo::ReturnInst_O::static_newNil_callback()) ); + classllvmo__ReturnInst_Oval->setInstance_newNil_callback(llvmo::ReturnInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ReturnInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ReturnInst_O::static_className() ); + llvmo::ReturnInst_O::_nil = nil_for_class; + classllvmo__ReturnInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ReturnInst_Oval->setSupportsSlots(llvmo::ReturnInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__SwitchInst_Oval]")); + core::BuiltInClass_sp classllvmo__SwitchInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__SwitchInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__SwitchInst_Oval,_lisp,llvmo::SwitchInst_O::static_classSymbol()); + llvmo::SwitchInst_O::___staticMetaClass = classllvmo__SwitchInst_Oval; + _lisp->setf_findClass(llvmo::SwitchInst_O::static_classSymbol(),classllvmo__SwitchInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::SwitchInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::SwitchInst_O::static_className() % (void*)(llvmo::SwitchInst_O::static_newNil_callback()) ); + classllvmo__SwitchInst_Oval->setInstance_newNil_callback(llvmo::SwitchInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::SwitchInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::SwitchInst_O::static_className() ); + llvmo::SwitchInst_O::_nil = nil_for_class; + classllvmo__SwitchInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__SwitchInst_Oval->setSupportsSlots(llvmo::SwitchInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__UnreachableInst_Oval]")); + core::BuiltInClass_sp classllvmo__UnreachableInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__UnreachableInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__UnreachableInst_Oval,_lisp,llvmo::UnreachableInst_O::static_classSymbol()); + llvmo::UnreachableInst_O::___staticMetaClass = classllvmo__UnreachableInst_Oval; + _lisp->setf_findClass(llvmo::UnreachableInst_O::static_classSymbol(),classllvmo__UnreachableInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::UnreachableInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::UnreachableInst_O::static_className() % (void*)(llvmo::UnreachableInst_O::static_newNil_callback()) ); + classllvmo__UnreachableInst_Oval->setInstance_newNil_callback(llvmo::UnreachableInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::UnreachableInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::UnreachableInst_O::static_className() ); + llvmo::UnreachableInst_O::_nil = nil_for_class; + classllvmo__UnreachableInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__UnreachableInst_Oval->setSupportsSlots(llvmo::UnreachableInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__VAArgInst_Oval]")); + core::BuiltInClass_sp classllvmo__VAArgInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__VAArgInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__VAArgInst_Oval,_lisp,llvmo::VAArgInst_O::static_classSymbol()); + llvmo::VAArgInst_O::___staticMetaClass = classllvmo__VAArgInst_Oval; + _lisp->setf_findClass(llvmo::VAArgInst_O::static_classSymbol(),classllvmo__VAArgInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::VAArgInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::VAArgInst_O::static_className() % (void*)(llvmo::VAArgInst_O::static_newNil_callback()) ); + classllvmo__VAArgInst_Oval->setInstance_newNil_callback(llvmo::VAArgInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::VAArgInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::VAArgInst_O::static_className() ); + llvmo::VAArgInst_O::_nil = nil_for_class; + classllvmo__VAArgInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__VAArgInst_Oval->setSupportsSlots(llvmo::VAArgInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ +#endif // CREATE_CLASS +#undef CREATE_CLASS +#ifdef DUMP_INFO_CLASS // { +// Depends on nothing + + LOG(BF("--- dump_info --- className: llvmo::APFloat_O @ %X") % classllvmo__APFloat_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::APFloat_O::static_className() % llvmo::APFloat_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::APInt_O @ %X") % classllvmo__APInt_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::APInt_O::static_className() % llvmo::APInt_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Attribute_O @ %X") % classllvmo__Attribute_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Attribute_O::static_className() % llvmo::Attribute_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Builder_O @ %X") % classllvmo__Builder_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Builder_O::static_className() % llvmo::Builder_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::DebugLoc_O @ %X") % classllvmo__DebugLoc_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::DebugLoc_O::static_className() % llvmo::DebugLoc_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::EngineBuilder_O @ %X") % classllvmo__EngineBuilder_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::EngineBuilder_O::static_className() % llvmo::EngineBuilder_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ExecutionEngine_O @ %X") % classllvmo__ExecutionEngine_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ExecutionEngine_O::static_className() % llvmo::ExecutionEngine_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IRBuilderBase_O @ %X") % classllvmo__IRBuilderBase_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IRBuilderBase_O::static_className() % llvmo::IRBuilderBase_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::InsertPoint_O @ %X") % classllvmo__InsertPoint_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::InsertPoint_O::static_className() % llvmo::InsertPoint_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::LLVMContext_O @ %X") % classllvmo__LLVMContext_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::LLVMContext_O::static_className() % llvmo::LLVMContext_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Module_O @ %X") % classllvmo__Module_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Module_O::static_className() % llvmo::Module_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::PassManagerBase_O @ %X") % classllvmo__PassManagerBase_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::PassManagerBase_O::static_className() % llvmo::PassManagerBase_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Pass_O @ %X") % classllvmo__Pass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Pass_O::static_className() % llvmo::Pass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Type_O @ %X") % classllvmo__Type_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Type_O::static_className() % llvmo::Type_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Value_O @ %X") % classllvmo__Value_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Value_O::static_className() % llvmo::Value_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Argument_O @ %X") % classllvmo__Argument_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Argument_O::static_className() % llvmo::Argument_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::BasicBlock_O @ %X") % classllvmo__BasicBlock_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::BasicBlock_O::static_className() % llvmo::BasicBlock_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::CompositeType_O @ %X") % classllvmo__CompositeType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::CompositeType_O::static_className() % llvmo::CompositeType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FunctionPassManager_O @ %X") % classllvmo__FunctionPassManager_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FunctionPassManager_O::static_className() % llvmo::FunctionPassManager_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FunctionPass_O @ %X") % classllvmo__FunctionPass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FunctionPass_O::static_className() % llvmo::FunctionPass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FunctionType_O @ %X") % classllvmo__FunctionType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FunctionType_O::static_className() % llvmo::FunctionType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IRBuilder_O @ %X") % classllvmo__IRBuilder_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IRBuilder_O::static_className() % llvmo::IRBuilder_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IntegerType_O @ %X") % classllvmo__IntegerType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IntegerType_O::static_className() % llvmo::IntegerType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::MDNode_O @ %X") % classllvmo__MDNode_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::MDNode_O::static_className() % llvmo::MDNode_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::MDString_O @ %X") % classllvmo__MDString_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::MDString_O::static_className() % llvmo::MDString_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ModulePass_O @ %X") % classllvmo__ModulePass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ModulePass_O::static_className() % llvmo::ModulePass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::User_O @ %X") % classllvmo__User_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::User_O::static_className() % llvmo::User_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Constant_O @ %X") % classllvmo__Constant_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Constant_O::static_className() % llvmo::Constant_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ImmutablePass_O @ %X") % classllvmo__ImmutablePass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ImmutablePass_O::static_className() % llvmo::ImmutablePass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Instruction_O @ %X") % classllvmo__Instruction_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Instruction_O::static_className() % llvmo::Instruction_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::SequentialType_O @ %X") % classllvmo__SequentialType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::SequentialType_O::static_className() % llvmo::SequentialType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::StructType_O @ %X") % classllvmo__StructType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::StructType_O::static_className() % llvmo::StructType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ArrayType_O @ %X") % classllvmo__ArrayType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ArrayType_O::static_className() % llvmo::ArrayType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::AtomicCmpXchgInst_O @ %X") % classllvmo__AtomicCmpXchgInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::AtomicCmpXchgInst_O::static_className() % llvmo::AtomicCmpXchgInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::AtomicRMWInst_O @ %X") % classllvmo__AtomicRMWInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::AtomicRMWInst_O::static_className() % llvmo::AtomicRMWInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::CallInst_O @ %X") % classllvmo__CallInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::CallInst_O::static_className() % llvmo::CallInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantArray_O @ %X") % classllvmo__ConstantArray_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantArray_O::static_className() % llvmo::ConstantArray_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantDataSequential_O @ %X") % classllvmo__ConstantDataSequential_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantDataSequential_O::static_className() % llvmo::ConstantDataSequential_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantExpr_O @ %X") % classllvmo__ConstantExpr_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantExpr_O::static_className() % llvmo::ConstantExpr_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantFP_O @ %X") % classllvmo__ConstantFP_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantFP_O::static_className() % llvmo::ConstantFP_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantInt_O @ %X") % classllvmo__ConstantInt_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantInt_O::static_className() % llvmo::ConstantInt_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantPointerNull_O @ %X") % classllvmo__ConstantPointerNull_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantPointerNull_O::static_className() % llvmo::ConstantPointerNull_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::DataLayout_O @ %X") % classllvmo__DataLayout_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::DataLayout_O::static_className() % llvmo::DataLayout_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FenceInst_O @ %X") % classllvmo__FenceInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FenceInst_O::static_className() % llvmo::FenceInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::GlobalValue_O @ %X") % classllvmo__GlobalValue_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::GlobalValue_O::static_className() % llvmo::GlobalValue_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::LandingPadInst_O @ %X") % classllvmo__LandingPadInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::LandingPadInst_O::static_className() % llvmo::LandingPadInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::PHINode_O @ %X") % classllvmo__PHINode_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::PHINode_O::static_className() % llvmo::PHINode_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::PointerType_O @ %X") % classllvmo__PointerType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::PointerType_O::static_className() % llvmo::PointerType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::StoreInst_O @ %X") % classllvmo__StoreInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::StoreInst_O::static_className() % llvmo::StoreInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::TerminatorInst_O @ %X") % classllvmo__TerminatorInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::TerminatorInst_O::static_className() % llvmo::TerminatorInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::UnaryInstruction_O @ %X") % classllvmo__UnaryInstruction_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::UnaryInstruction_O::static_className() % llvmo::UnaryInstruction_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::UndefValue_O @ %X") % classllvmo__UndefValue_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::UndefValue_O::static_className() % llvmo::UndefValue_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::VectorType_O @ %X") % classllvmo__VectorType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::VectorType_O::static_className() % llvmo::VectorType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::AllocaInst_O @ %X") % classllvmo__AllocaInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::AllocaInst_O::static_className() % llvmo::AllocaInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::BranchInst_O @ %X") % classllvmo__BranchInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::BranchInst_O::static_className() % llvmo::BranchInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantDataArray_O @ %X") % classllvmo__ConstantDataArray_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantDataArray_O::static_className() % llvmo::ConstantDataArray_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Function_O @ %X") % classllvmo__Function_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Function_O::static_className() % llvmo::Function_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::GlobalVariable_O @ %X") % classllvmo__GlobalVariable_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::GlobalVariable_O::static_className() % llvmo::GlobalVariable_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IndirectBrInst_O @ %X") % classllvmo__IndirectBrInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IndirectBrInst_O::static_className() % llvmo::IndirectBrInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::InvokeInst_O @ %X") % classllvmo__InvokeInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::InvokeInst_O::static_className() % llvmo::InvokeInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::LoadInst_O @ %X") % classllvmo__LoadInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::LoadInst_O::static_className() % llvmo::LoadInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ResumeInst_O @ %X") % classllvmo__ResumeInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ResumeInst_O::static_className() % llvmo::ResumeInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ReturnInst_O @ %X") % classllvmo__ReturnInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ReturnInst_O::static_className() % llvmo::ReturnInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::SwitchInst_O @ %X") % classllvmo__SwitchInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::SwitchInst_O::static_className() % llvmo::SwitchInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::UnreachableInst_O @ %X") % classllvmo__UnreachableInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::UnreachableInst_O::static_className() % llvmo::UnreachableInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::VAArgInst_O @ %X") % classllvmo__VAArgInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::VAArgInst_O::static_className() % llvmo::VAArgInst_O::static_classSymbol() ); +#endif // } DUMP_INFO_CLASS +#undef DUMP_INFO_CLASS +#if defined(DEFINE_BASE_CLASSES) || defined(ALL_STAGES) // { +// Depends on nothing +classllvmo__APFloat_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__APInt_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Attribute_Oval->addInstanceBaseClass(core::T_O::static_classSymbol()); +classllvmo__Builder_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__DebugLoc_Oval->addInstanceBaseClass(core::T_O::static_classSymbol()); +classllvmo__EngineBuilder_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__ExecutionEngine_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__IRBuilderBase_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__InsertPoint_Oval->addInstanceBaseClass(core::T_O::static_classSymbol()); +classllvmo__LLVMContext_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Module_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__PassManagerBase_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Pass_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Type_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Value_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Argument_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__BasicBlock_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__CompositeType_Oval->addInstanceBaseClass(llvmo::Type_O::static_classSymbol()); +classllvmo__FunctionPassManager_Oval->addInstanceBaseClass(llvmo::PassManagerBase_O::static_classSymbol()); +classllvmo__FunctionPass_Oval->addInstanceBaseClass(llvmo::Pass_O::static_classSymbol()); +classllvmo__FunctionType_Oval->addInstanceBaseClass(llvmo::Type_O::static_classSymbol()); +classllvmo__IRBuilder_Oval->addInstanceBaseClass(llvmo::IRBuilderBase_O::static_classSymbol()); +classllvmo__IntegerType_Oval->addInstanceBaseClass(llvmo::Type_O::static_classSymbol()); +classllvmo__MDNode_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__MDString_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__ModulePass_Oval->addInstanceBaseClass(llvmo::Pass_O::static_classSymbol()); +classllvmo__User_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__Constant_Oval->addInstanceBaseClass(llvmo::User_O::static_classSymbol()); +classllvmo__ImmutablePass_Oval->addInstanceBaseClass(llvmo::ModulePass_O::static_classSymbol()); +classllvmo__Instruction_Oval->addInstanceBaseClass(llvmo::User_O::static_classSymbol()); +classllvmo__SequentialType_Oval->addInstanceBaseClass(llvmo::CompositeType_O::static_classSymbol()); +classllvmo__StructType_Oval->addInstanceBaseClass(llvmo::CompositeType_O::static_classSymbol()); +classllvmo__ArrayType_Oval->addInstanceBaseClass(llvmo::SequentialType_O::static_classSymbol()); +classllvmo__AtomicCmpXchgInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__AtomicRMWInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__CallInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__ConstantArray_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantDataSequential_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantExpr_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantFP_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantInt_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantPointerNull_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__DataLayout_Oval->addInstanceBaseClass(llvmo::ImmutablePass_O::static_classSymbol()); +classllvmo__FenceInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__GlobalValue_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__LandingPadInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__PHINode_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__PointerType_Oval->addInstanceBaseClass(llvmo::SequentialType_O::static_classSymbol()); +classllvmo__StoreInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__TerminatorInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__UnaryInstruction_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__UndefValue_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__VectorType_Oval->addInstanceBaseClass(llvmo::SequentialType_O::static_classSymbol()); +classllvmo__AllocaInst_Oval->addInstanceBaseClass(llvmo::UnaryInstruction_O::static_classSymbol()); +classllvmo__BranchInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__ConstantDataArray_Oval->addInstanceBaseClass(llvmo::ConstantDataSequential_O::static_classSymbol()); +classllvmo__Function_Oval->addInstanceBaseClass(llvmo::GlobalValue_O::static_classSymbol()); +classllvmo__GlobalVariable_Oval->addInstanceBaseClass(llvmo::GlobalValue_O::static_classSymbol()); +classllvmo__IndirectBrInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__InvokeInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__LoadInst_Oval->addInstanceBaseClass(llvmo::UnaryInstruction_O::static_classSymbol()); +classllvmo__ResumeInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__ReturnInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__SwitchInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__UnreachableInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__VAArgInst_Oval->addInstanceBaseClass(llvmo::UnaryInstruction_O::static_classSymbol()); +#endif // } DEFINE_BASE_CLASSES +#undef DEFINE_BASE_CLASSES +#if defined(DEFINE_CLASS_NAMES) || defined(ALL_STAGES) // { + core::Package_sp _curPkg = _lisp->findPackage(CurrentPkg); +// Depends on nothing + + classllvmo__APFloat_Oval->__setup_stage3_name(llvmo::APFloat_O::static_classSymbol()); + + classllvmo__APInt_Oval->__setup_stage3_name(llvmo::APInt_O::static_classSymbol()); + + classllvmo__Attribute_Oval->__setup_stage3_name(llvmo::Attribute_O::static_classSymbol()); + + classllvmo__Builder_Oval->__setup_stage3_name(llvmo::Builder_O::static_classSymbol()); + + classllvmo__DebugLoc_Oval->__setup_stage3_name(llvmo::DebugLoc_O::static_classSymbol()); + + classllvmo__EngineBuilder_Oval->__setup_stage3_name(llvmo::EngineBuilder_O::static_classSymbol()); + + classllvmo__ExecutionEngine_Oval->__setup_stage3_name(llvmo::ExecutionEngine_O::static_classSymbol()); + + classllvmo__IRBuilderBase_Oval->__setup_stage3_name(llvmo::IRBuilderBase_O::static_classSymbol()); + + classllvmo__InsertPoint_Oval->__setup_stage3_name(llvmo::InsertPoint_O::static_classSymbol()); + + classllvmo__LLVMContext_Oval->__setup_stage3_name(llvmo::LLVMContext_O::static_classSymbol()); + + classllvmo__Module_Oval->__setup_stage3_name(llvmo::Module_O::static_classSymbol()); + + classllvmo__PassManagerBase_Oval->__setup_stage3_name(llvmo::PassManagerBase_O::static_classSymbol()); + + classllvmo__Pass_Oval->__setup_stage3_name(llvmo::Pass_O::static_classSymbol()); + + classllvmo__Type_Oval->__setup_stage3_name(llvmo::Type_O::static_classSymbol()); + + classllvmo__Value_Oval->__setup_stage3_name(llvmo::Value_O::static_classSymbol()); + + classllvmo__Argument_Oval->__setup_stage3_name(llvmo::Argument_O::static_classSymbol()); + + classllvmo__BasicBlock_Oval->__setup_stage3_name(llvmo::BasicBlock_O::static_classSymbol()); + + classllvmo__CompositeType_Oval->__setup_stage3_name(llvmo::CompositeType_O::static_classSymbol()); + + classllvmo__FunctionPassManager_Oval->__setup_stage3_name(llvmo::FunctionPassManager_O::static_classSymbol()); + + classllvmo__FunctionPass_Oval->__setup_stage3_name(llvmo::FunctionPass_O::static_classSymbol()); + + classllvmo__FunctionType_Oval->__setup_stage3_name(llvmo::FunctionType_O::static_classSymbol()); + + classllvmo__IRBuilder_Oval->__setup_stage3_name(llvmo::IRBuilder_O::static_classSymbol()); + + classllvmo__IntegerType_Oval->__setup_stage3_name(llvmo::IntegerType_O::static_classSymbol()); + + classllvmo__MDNode_Oval->__setup_stage3_name(llvmo::MDNode_O::static_classSymbol()); + + classllvmo__MDString_Oval->__setup_stage3_name(llvmo::MDString_O::static_classSymbol()); + + classllvmo__ModulePass_Oval->__setup_stage3_name(llvmo::ModulePass_O::static_classSymbol()); + + classllvmo__User_Oval->__setup_stage3_name(llvmo::User_O::static_classSymbol()); + + classllvmo__Constant_Oval->__setup_stage3_name(llvmo::Constant_O::static_classSymbol()); + + classllvmo__ImmutablePass_Oval->__setup_stage3_name(llvmo::ImmutablePass_O::static_classSymbol()); + + classllvmo__Instruction_Oval->__setup_stage3_name(llvmo::Instruction_O::static_classSymbol()); + + classllvmo__SequentialType_Oval->__setup_stage3_name(llvmo::SequentialType_O::static_classSymbol()); + + classllvmo__StructType_Oval->__setup_stage3_name(llvmo::StructType_O::static_classSymbol()); + + classllvmo__ArrayType_Oval->__setup_stage3_name(llvmo::ArrayType_O::static_classSymbol()); + + classllvmo__AtomicCmpXchgInst_Oval->__setup_stage3_name(llvmo::AtomicCmpXchgInst_O::static_classSymbol()); + + classllvmo__AtomicRMWInst_Oval->__setup_stage3_name(llvmo::AtomicRMWInst_O::static_classSymbol()); + + classllvmo__CallInst_Oval->__setup_stage3_name(llvmo::CallInst_O::static_classSymbol()); + + classllvmo__ConstantArray_Oval->__setup_stage3_name(llvmo::ConstantArray_O::static_classSymbol()); + + classllvmo__ConstantDataSequential_Oval->__setup_stage3_name(llvmo::ConstantDataSequential_O::static_classSymbol()); + + classllvmo__ConstantExpr_Oval->__setup_stage3_name(llvmo::ConstantExpr_O::static_classSymbol()); + + classllvmo__ConstantFP_Oval->__setup_stage3_name(llvmo::ConstantFP_O::static_classSymbol()); + + classllvmo__ConstantInt_Oval->__setup_stage3_name(llvmo::ConstantInt_O::static_classSymbol()); + + classllvmo__ConstantPointerNull_Oval->__setup_stage3_name(llvmo::ConstantPointerNull_O::static_classSymbol()); + + classllvmo__DataLayout_Oval->__setup_stage3_name(llvmo::DataLayout_O::static_classSymbol()); + + classllvmo__FenceInst_Oval->__setup_stage3_name(llvmo::FenceInst_O::static_classSymbol()); + + classllvmo__GlobalValue_Oval->__setup_stage3_name(llvmo::GlobalValue_O::static_classSymbol()); + + classllvmo__LandingPadInst_Oval->__setup_stage3_name(llvmo::LandingPadInst_O::static_classSymbol()); + + classllvmo__PHINode_Oval->__setup_stage3_name(llvmo::PHINode_O::static_classSymbol()); + + classllvmo__PointerType_Oval->__setup_stage3_name(llvmo::PointerType_O::static_classSymbol()); + + classllvmo__StoreInst_Oval->__setup_stage3_name(llvmo::StoreInst_O::static_classSymbol()); + + classllvmo__TerminatorInst_Oval->__setup_stage3_name(llvmo::TerminatorInst_O::static_classSymbol()); + + classllvmo__UnaryInstruction_Oval->__setup_stage3_name(llvmo::UnaryInstruction_O::static_classSymbol()); + + classllvmo__UndefValue_Oval->__setup_stage3_name(llvmo::UndefValue_O::static_classSymbol()); + + classllvmo__VectorType_Oval->__setup_stage3_name(llvmo::VectorType_O::static_classSymbol()); + + classllvmo__AllocaInst_Oval->__setup_stage3_name(llvmo::AllocaInst_O::static_classSymbol()); + + classllvmo__BranchInst_Oval->__setup_stage3_name(llvmo::BranchInst_O::static_classSymbol()); + + classllvmo__ConstantDataArray_Oval->__setup_stage3_name(llvmo::ConstantDataArray_O::static_classSymbol()); + + classllvmo__Function_Oval->__setup_stage3_name(llvmo::Function_O::static_classSymbol()); + + classllvmo__GlobalVariable_Oval->__setup_stage3_name(llvmo::GlobalVariable_O::static_classSymbol()); + + classllvmo__IndirectBrInst_Oval->__setup_stage3_name(llvmo::IndirectBrInst_O::static_classSymbol()); + + classllvmo__InvokeInst_Oval->__setup_stage3_name(llvmo::InvokeInst_O::static_classSymbol()); + + classllvmo__LoadInst_Oval->__setup_stage3_name(llvmo::LoadInst_O::static_classSymbol()); + + classllvmo__ResumeInst_Oval->__setup_stage3_name(llvmo::ResumeInst_O::static_classSymbol()); + + classllvmo__ReturnInst_Oval->__setup_stage3_name(llvmo::ReturnInst_O::static_classSymbol()); + + classllvmo__SwitchInst_Oval->__setup_stage3_name(llvmo::SwitchInst_O::static_classSymbol()); + + classllvmo__UnreachableInst_Oval->__setup_stage3_name(llvmo::UnreachableInst_O::static_classSymbol()); + + classllvmo__VAArgInst_Oval->__setup_stage3_name(llvmo::VAArgInst_O::static_classSymbol()); +#endif // } DEFINE_CLASS_NAMES +#undef DEFINE_CLASS_NAMES +#if defined(EXPOSE_TO_CANDO) || defined(ALL_STAGES) +#ifdef Use_LlvmoPkg +extern void Register_llvmo__APFloat_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__APFloat_O"); + Register_llvmo__APFloat_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__APInt_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__APInt_O"); + Register_llvmo__APInt_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Attribute_O(core::Lisp_sp); // base(s): set(['core::T_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Attribute_O"); + Register_llvmo__Attribute_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Builder_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Builder_O"); + Register_llvmo__Builder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__DebugLoc_O(core::Lisp_sp); // base(s): set(['core::T_O']) +{_BLOCK_TRACE("initializing Register_llvmo__DebugLoc_O"); + Register_llvmo__DebugLoc_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__EngineBuilder_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__EngineBuilder_O"); + Register_llvmo__EngineBuilder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ExecutionEngine_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ExecutionEngine_O"); + Register_llvmo__ExecutionEngine_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IRBuilderBase_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IRBuilderBase_O"); + Register_llvmo__IRBuilderBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__InsertPoint_O(core::Lisp_sp); // base(s): set(['core::T_O']) +{_BLOCK_TRACE("initializing Register_llvmo__InsertPoint_O"); + Register_llvmo__InsertPoint_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__LLVMContext_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__LLVMContext_O"); + Register_llvmo__LLVMContext_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Module_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Module_O"); + Register_llvmo__Module_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__PassManagerBase_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__PassManagerBase_O"); + Register_llvmo__PassManagerBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Pass_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Pass_O"); + Register_llvmo__Pass_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Type_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Type_O"); + Register_llvmo__Type_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Value_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Value_O"); + Register_llvmo__Value_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Argument_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Argument_O"); + Register_llvmo__Argument_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__BasicBlock_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__BasicBlock_O"); + Register_llvmo__BasicBlock_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__CompositeType_O(core::Lisp_sp); // base(s): set(['llvmo::Type_O']) +{_BLOCK_TRACE("initializing Register_llvmo__CompositeType_O"); + Register_llvmo__CompositeType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FunctionPassManager_O(core::Lisp_sp); // base(s): set(['llvmo::PassManagerBase_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FunctionPassManager_O"); + Register_llvmo__FunctionPassManager_O(_lisp); // base(s): set(['llvmo::PassManagerBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FunctionPass_O(core::Lisp_sp); // base(s): set(['llvmo::Pass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FunctionPass_O"); + Register_llvmo__FunctionPass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FunctionType_O(core::Lisp_sp); // base(s): set(['llvmo::Type_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FunctionType_O"); + Register_llvmo__FunctionType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IRBuilder_O(core::Lisp_sp); // base(s): set(['llvmo::IRBuilderBase_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IRBuilder_O"); + Register_llvmo__IRBuilder_O(_lisp); // base(s): set(['llvmo::IRBuilderBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IntegerType_O(core::Lisp_sp); // base(s): set(['llvmo::Type_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IntegerType_O"); + Register_llvmo__IntegerType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__MDNode_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__MDNode_O"); + Register_llvmo__MDNode_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__MDString_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__MDString_O"); + Register_llvmo__MDString_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ModulePass_O(core::Lisp_sp); // base(s): set(['llvmo::Pass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ModulePass_O"); + Register_llvmo__ModulePass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__User_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__User_O"); + Register_llvmo__User_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Constant_O(core::Lisp_sp); // base(s): set(['llvmo::User_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Constant_O"); + Register_llvmo__Constant_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ImmutablePass_O(core::Lisp_sp); // base(s): set(['llvmo::ModulePass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ImmutablePass_O"); + Register_llvmo__ImmutablePass_O(_lisp); // base(s): set(['llvmo::ModulePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Instruction_O(core::Lisp_sp); // base(s): set(['llvmo::User_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Instruction_O"); + Register_llvmo__Instruction_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__SequentialType_O(core::Lisp_sp); // base(s): set(['llvmo::CompositeType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__SequentialType_O"); + Register_llvmo__SequentialType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__StructType_O(core::Lisp_sp); // base(s): set(['llvmo::CompositeType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__StructType_O"); + Register_llvmo__StructType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ArrayType_O(core::Lisp_sp); // base(s): set(['llvmo::SequentialType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ArrayType_O"); + Register_llvmo__ArrayType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__AtomicCmpXchgInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__AtomicCmpXchgInst_O"); + Register_llvmo__AtomicCmpXchgInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__AtomicRMWInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__AtomicRMWInst_O"); + Register_llvmo__AtomicRMWInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__CallInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__CallInst_O"); + Register_llvmo__CallInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantArray_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantArray_O"); + Register_llvmo__ConstantArray_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantDataSequential_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantDataSequential_O"); + Register_llvmo__ConstantDataSequential_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantExpr_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantExpr_O"); + Register_llvmo__ConstantExpr_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantFP_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantFP_O"); + Register_llvmo__ConstantFP_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantInt_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantInt_O"); + Register_llvmo__ConstantInt_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantPointerNull_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantPointerNull_O"); + Register_llvmo__ConstantPointerNull_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__DataLayout_O(core::Lisp_sp); // base(s): set(['llvmo::ImmutablePass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__DataLayout_O"); + Register_llvmo__DataLayout_O(_lisp); // base(s): set(['llvmo::ImmutablePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FenceInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FenceInst_O"); + Register_llvmo__FenceInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__GlobalValue_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__GlobalValue_O"); + Register_llvmo__GlobalValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__LandingPadInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__LandingPadInst_O"); + Register_llvmo__LandingPadInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__PHINode_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__PHINode_O"); + Register_llvmo__PHINode_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__PointerType_O(core::Lisp_sp); // base(s): set(['llvmo::SequentialType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__PointerType_O"); + Register_llvmo__PointerType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__StoreInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__StoreInst_O"); + Register_llvmo__StoreInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__TerminatorInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__TerminatorInst_O"); + Register_llvmo__TerminatorInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__UnaryInstruction_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__UnaryInstruction_O"); + Register_llvmo__UnaryInstruction_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__UndefValue_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__UndefValue_O"); + Register_llvmo__UndefValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__VectorType_O(core::Lisp_sp); // base(s): set(['llvmo::SequentialType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__VectorType_O"); + Register_llvmo__VectorType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__AllocaInst_O(core::Lisp_sp); // base(s): set(['llvmo::UnaryInstruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__AllocaInst_O"); + Register_llvmo__AllocaInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__BranchInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__BranchInst_O"); + Register_llvmo__BranchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantDataArray_O(core::Lisp_sp); // base(s): set(['llvmo::ConstantDataSequential_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantDataArray_O"); + Register_llvmo__ConstantDataArray_O(_lisp); // base(s): set(['llvmo::ConstantDataSequential_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Function_O(core::Lisp_sp); // base(s): set(['llvmo::GlobalValue_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Function_O"); + Register_llvmo__Function_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__GlobalVariable_O(core::Lisp_sp); // base(s): set(['llvmo::GlobalValue_O']) +{_BLOCK_TRACE("initializing Register_llvmo__GlobalVariable_O"); + Register_llvmo__GlobalVariable_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IndirectBrInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IndirectBrInst_O"); + Register_llvmo__IndirectBrInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__InvokeInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__InvokeInst_O"); + Register_llvmo__InvokeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__LoadInst_O(core::Lisp_sp); // base(s): set(['llvmo::UnaryInstruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__LoadInst_O"); + Register_llvmo__LoadInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ResumeInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ResumeInst_O"); + Register_llvmo__ResumeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ReturnInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ReturnInst_O"); + Register_llvmo__ReturnInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__SwitchInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__SwitchInst_O"); + Register_llvmo__SwitchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__UnreachableInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__UnreachableInst_O"); + Register_llvmo__UnreachableInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__VAArgInst_O(core::Lisp_sp); // base(s): set(['llvmo::UnaryInstruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__VAArgInst_O"); + Register_llvmo__VAArgInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#endif // EXPOSE_TO_CANDO +#undef EXPOSE_TO_CANDO +#ifdef EXPOSE_TO_PYTHON +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__APFloat_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__APFloat_O"); + Call_exposePython_llvmo__APFloat_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__APInt_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__APInt_O"); + Call_exposePython_llvmo__APInt_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Attribute_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Attribute_O"); + Call_exposePython_llvmo__Attribute_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Builder_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Builder_O"); + Call_exposePython_llvmo__Builder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__DebugLoc_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__DebugLoc_O"); + Call_exposePython_llvmo__DebugLoc_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__EngineBuilder_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__EngineBuilder_O"); + Call_exposePython_llvmo__EngineBuilder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ExecutionEngine_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ExecutionEngine_O"); + Call_exposePython_llvmo__ExecutionEngine_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IRBuilderBase_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IRBuilderBase_O"); + Call_exposePython_llvmo__IRBuilderBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__InsertPoint_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__InsertPoint_O"); + Call_exposePython_llvmo__InsertPoint_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__LLVMContext_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__LLVMContext_O"); + Call_exposePython_llvmo__LLVMContext_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Module_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Module_O"); + Call_exposePython_llvmo__Module_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__PassManagerBase_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__PassManagerBase_O"); + Call_exposePython_llvmo__PassManagerBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Pass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Pass_O"); + Call_exposePython_llvmo__Pass_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Type_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Type_O"); + Call_exposePython_llvmo__Type_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Value_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Value_O"); + Call_exposePython_llvmo__Value_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Argument_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Argument_O"); + Call_exposePython_llvmo__Argument_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__BasicBlock_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__BasicBlock_O"); + Call_exposePython_llvmo__BasicBlock_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__CompositeType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__CompositeType_O"); + Call_exposePython_llvmo__CompositeType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FunctionPassManager_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FunctionPassManager_O"); + Call_exposePython_llvmo__FunctionPassManager_O(_lisp); // base(s): set(['llvmo::PassManagerBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FunctionPass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FunctionPass_O"); + Call_exposePython_llvmo__FunctionPass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FunctionType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FunctionType_O"); + Call_exposePython_llvmo__FunctionType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IRBuilder_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IRBuilder_O"); + Call_exposePython_llvmo__IRBuilder_O(_lisp); // base(s): set(['llvmo::IRBuilderBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IntegerType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IntegerType_O"); + Call_exposePython_llvmo__IntegerType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__MDNode_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__MDNode_O"); + Call_exposePython_llvmo__MDNode_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__MDString_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__MDString_O"); + Call_exposePython_llvmo__MDString_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ModulePass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ModulePass_O"); + Call_exposePython_llvmo__ModulePass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__User_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__User_O"); + Call_exposePython_llvmo__User_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Constant_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Constant_O"); + Call_exposePython_llvmo__Constant_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ImmutablePass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ImmutablePass_O"); + Call_exposePython_llvmo__ImmutablePass_O(_lisp); // base(s): set(['llvmo::ModulePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Instruction_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Instruction_O"); + Call_exposePython_llvmo__Instruction_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__SequentialType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__SequentialType_O"); + Call_exposePython_llvmo__SequentialType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__StructType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__StructType_O"); + Call_exposePython_llvmo__StructType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ArrayType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ArrayType_O"); + Call_exposePython_llvmo__ArrayType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__AtomicCmpXchgInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__AtomicCmpXchgInst_O"); + Call_exposePython_llvmo__AtomicCmpXchgInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__AtomicRMWInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__AtomicRMWInst_O"); + Call_exposePython_llvmo__AtomicRMWInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__CallInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__CallInst_O"); + Call_exposePython_llvmo__CallInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantArray_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantArray_O"); + Call_exposePython_llvmo__ConstantArray_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantDataSequential_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantDataSequential_O"); + Call_exposePython_llvmo__ConstantDataSequential_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantExpr_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantExpr_O"); + Call_exposePython_llvmo__ConstantExpr_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantFP_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantFP_O"); + Call_exposePython_llvmo__ConstantFP_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantInt_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantInt_O"); + Call_exposePython_llvmo__ConstantInt_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantPointerNull_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantPointerNull_O"); + Call_exposePython_llvmo__ConstantPointerNull_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__DataLayout_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__DataLayout_O"); + Call_exposePython_llvmo__DataLayout_O(_lisp); // base(s): set(['llvmo::ImmutablePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FenceInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FenceInst_O"); + Call_exposePython_llvmo__FenceInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__GlobalValue_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__GlobalValue_O"); + Call_exposePython_llvmo__GlobalValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__LandingPadInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__LandingPadInst_O"); + Call_exposePython_llvmo__LandingPadInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__PHINode_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__PHINode_O"); + Call_exposePython_llvmo__PHINode_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__PointerType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__PointerType_O"); + Call_exposePython_llvmo__PointerType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__StoreInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__StoreInst_O"); + Call_exposePython_llvmo__StoreInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__TerminatorInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__TerminatorInst_O"); + Call_exposePython_llvmo__TerminatorInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__UnaryInstruction_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__UnaryInstruction_O"); + Call_exposePython_llvmo__UnaryInstruction_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__UndefValue_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__UndefValue_O"); + Call_exposePython_llvmo__UndefValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__VectorType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__VectorType_O"); + Call_exposePython_llvmo__VectorType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__AllocaInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__AllocaInst_O"); + Call_exposePython_llvmo__AllocaInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__BranchInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__BranchInst_O"); + Call_exposePython_llvmo__BranchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantDataArray_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantDataArray_O"); + Call_exposePython_llvmo__ConstantDataArray_O(_lisp); // base(s): set(['llvmo::ConstantDataSequential_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Function_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Function_O"); + Call_exposePython_llvmo__Function_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__GlobalVariable_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__GlobalVariable_O"); + Call_exposePython_llvmo__GlobalVariable_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IndirectBrInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IndirectBrInst_O"); + Call_exposePython_llvmo__IndirectBrInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__InvokeInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__InvokeInst_O"); + Call_exposePython_llvmo__InvokeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__LoadInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__LoadInst_O"); + Call_exposePython_llvmo__LoadInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ResumeInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ResumeInst_O"); + Call_exposePython_llvmo__ResumeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ReturnInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ReturnInst_O"); + Call_exposePython_llvmo__ReturnInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__SwitchInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__SwitchInst_O"); + Call_exposePython_llvmo__SwitchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__UnreachableInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__UnreachableInst_O"); + Call_exposePython_llvmo__UnreachableInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__VAArgInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__VAArgInst_O"); + Call_exposePython_llvmo__VAArgInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#endif // EXPOSE_TO_PYTHON +#undef EXPOSE_TO_PYTHON +#undef ALL_STAGES From dd55f929d40b1c9cc90ddaed75168ec3fd23df14 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 28 Jun 2015 15:27:59 +0200 Subject: [PATCH 541/875] New .inc HTML sample --- samples/HTML/tailDel.inc | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 samples/HTML/tailDel.inc diff --git a/samples/HTML/tailDel.inc b/samples/HTML/tailDel.inc new file mode 100644 index 00000000..9ee2aa05 --- /dev/null +++ b/samples/HTML/tailDel.inc @@ -0,0 +1,5 @@ + +

Supported Targets

+ + + From 947be9db0f78dde8cdd31db4b161d6761526131f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 28 Jun 2015 15:54:25 +0200 Subject: [PATCH 542/875] New .inc Pascal sample --- samples/Pascal/libc.inc | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 samples/Pascal/libc.inc diff --git a/samples/Pascal/libc.inc b/samples/Pascal/libc.inc new file mode 100644 index 00000000..15ced61e --- /dev/null +++ b/samples/Pascal/libc.inc @@ -0,0 +1,56 @@ +{ + This file is part of the Free Component Library (FCL) + Copyright (c) 1999-2002 by the Free Pascal development team + + BIOS functions unit for Nintendo DS + Copyright (c) 2006 by Francesco Lombardi + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program 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. + + *****************************************************************************} + +function __errno: plongint; cdecl; export; +begin + +end; + + +function S_ISBLK(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFBLK; +end; + +function S_ISCHR(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFCHR; +end; + +function S_ISDIR(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFDIR; +end; + +function S_ISFIFO(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFIFO; +end; + +function S_ISREG(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFREG; +end; + +function S_ISLNK(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFLNK; +end; + +function S_ISSOCK(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFSOCK; +end; From 9cbd280f7902fcd23f6b9809b15ff85d94497bc5 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 28 Jun 2015 16:05:47 +0200 Subject: [PATCH 543/875] New .inc SourcePawn sample --- samples/SourcePawn/y_testing.inc | 633 +++++++++++++++++++++++++++++++ 1 file changed, 633 insertions(+) create mode 100644 samples/SourcePawn/y_testing.inc diff --git a/samples/SourcePawn/y_testing.inc b/samples/SourcePawn/y_testing.inc new file mode 100644 index 00000000..95b49c0c --- /dev/null +++ b/samples/SourcePawn/y_testing.inc @@ -0,0 +1,633 @@ +/**--------------------------------------------------------------------------**\ + ==================================== + y_testing - Run unit tests easilly + ==================================== +Description: + Runs any functions named as tests when the Testing_Run function is called. +Legal: + Version: MPL 1.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the + License. + + The Original Code is the YSI testing include. + + The Initial Developer of the Original Code is Alex "Y_Less" Cole. + Portions created by the Initial Developer are Copyright (C) 2011 + the Initial Developer. All Rights Reserved. + + Contributors: + ZeeX, koolk, JoeBullet/Google63, g_aSlice/Slice + + Thanks: + JoeBullet/Google63 - Handy arbitrary ASM jump code using SCTRL. + ZeeX - Very productive conversations. + koolk - IsPlayerinAreaEx code. + TheAlpha - Danish translation. + breadfish - German translation. + Fireburn - Dutch translation. + yom - French translation. + 50p - Polish translation. + Zamaroht - Spanish translation. + Dracoblue, sintax, mabako, Xtreme, other coders - Producing other modes + for me to strive to better. + Pixels^ - Running XScripters where the idea was born. + Matite - Pestering me to release it and using it. + + Very special thanks to: + Thiadmer - PAWN, whose limits continue to amaze me! + Kye/Kalcor - SA:MP. + SA:MP Team past, present and future - SA:MP. + +Version: + 1.0 +Changelog: + 16/02/12: + Added better error reporting (less verbose passes). + Removed "Tests:". + Added player requiring tests. + 25/10/10: + Integrated in to YSI. + 06/08/10: + First version + +\**--------------------------------------------------------------------------**/ + +/*#if defined _inc_a_samp || defined _samp_included || defined _inc_y_version + #error y_testing must be the VERY FIRST include in your mode if being used. +#endif + +// Now we redefined "native" to do something clever! +// "IsPlayerAttachedObjectSlotUsed" is an issue for us... + +// "y_renative" allows native functions to be declared without constantly trying +// to redefine it. +#include "internal\y_renative" + +#define native%0(%1); _YSI_NO_TAG_NATIVE:_YSI_RE_NATIVE<%0@|||%1|||%0>_YSI_RE_STOCK<%0|||%1|||_:%0@> + +//stock%0(%1){printf(_:_YSI_NO_SQUARE:"native "#%0" called");return _:%0@(%1);} + +#define _YSI_RE_STOCK<%0|||%1|||%2> stock%0(%1){print(_:_YSI_NO_SQUARE:"native "#%0" called");return %2(%1);} + +#define _YSI_NO_SQUARE:%0);%1(%2[%3]%4);} _YSI_NO_SQUARE:%0);%1(%2%4);} + +//#define _YSI_NO_TAG_NATIVE:_YSI_RE_NATIVE<%0:%1|||%2|||%3:%4>%5{%6;%7:%8:%9} _YSI_RE_NATIVE<%1|||%2|||%4>%5{%6;return%8:%9} +#define _YSI_NO_TAG_NATIVE:_YSI_RE_NATIVE<%0:%1|||%2|||%3:%4>_YSI_RE_STOCK<%5:%6|||%7|||_:%8:%9> _YSI_RE_NATIVE<%1|||%2|||%4>_YSI_RE_STOCK<%5:%6|||%7|||%8:%9>*/ + +#include + +#if defined YSI_TESTS + #if defined INCLUDE_TESTS + #error Incompatible testing options (YSI_TESTS + INCLUDE_TESTS) + #endif + #if !defined RUN_TESTS + #define RUN_TESTS + #endif +#endif + +#if defined INCLUDE_TESTS + #define RUN_TESTS + #define Debug_PrintT va_printf +#elseif defined RUN_TESTS + #define _AUTO_RUN_TESTS + #define Debug_PrintT va_printf +#else + #if _DEBUG > 0 || defined _YSI_SPECIAL_DEBUG + #define RUN_TESTS + #define _AUTO_RUN_TESTS + //#if defined _YSI_SPECIAL_DEBUG + // #define TP printf + // //#define TC(%0); %0 + #define Debug_PrintT va_printf + //#else + // //#define TP P:0 + // //#define TC C:0 + //#endif + #else + #define Debug_PrintT(%0); + // #define Tests:%1() stock bool:Tests_@%1() + // #define Test:%1() stock bool:Test_@%1() + // #define TestInit:%1() stock Init_@%1() + // #define TestClose:%1() stock Shut_@%1() + #endif +#endif + +#define Y_TESTING_DIALOG_ID (0x7974) // "yt" + +#define TEST_TRUE(%0) Testing_Test(!!%0) +#define TEST_FALSE(%0) Testing_Test(!%0) +#define TEST_NULL(%0) Testing_Test(0 == %0) +#define TEST_NOT_NULL(%0) Testing_Test(0 != %0) +#define TEST_N(%0,%1) Testing_Test(%1 == %0) + +#define TEST_TRUE_EX(%0,%2) Testing_Test(bool:(%0), (%2)) +#define TEST_FALSE_EX(%0,%2) Testing_Test(!(%0), (%2)) +#define TEST_NULL_EX(%0,%2) Testing_Test((%0) == 0, (%2)) +#define TEST_N_EX(%0,%1,%2) Testing_Test((%0) == (%1), (%2)) + +#define TEST_MSG "\2\2\2\2\2" +#define TEST_FAILED "FAIL:" +#define TEST_PASSED "PASS!" +//#define TEST_FAILED "*** Test Failed:" +//#define TEST_PASSED "*** Test Passed:" + +#define _Y_TESTEQ(%0) "\"%0\"") +#define _Y_TESTDQ:_Y_TESTEQ(%0"%1"%2) _Y_TESTDQ:_Y_TESTEQ(%0\x22;%1\x22;%2) +//#define _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0)%1) _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0\x29;%1) +#define _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0)%1) _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0\x29;%1) +#define _Y_TESTOB:_Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0(%1) _Y_TESTOB:_Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0\x28;%1) + +#define ASSERT(%0) Testing_Test(%0,TEST_MSG" %s", _Y_TESTOB:_Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0) +#define ASSERT_TRUE(%0) ASSERT(!!%0) //Testing_Test(!!%0,__name) +#define ASSERT_FALSE(%0) ASSERT(!%0) //Testing_Test(!%0,__name) +#define ASSERT_NULL(%0) ASSERT(0 == %0) //Testing_Test(0==%0,__name) +#define ASSERT_N:%1(%0) ASSERT(%1 == %0) //Testing_Test(%1==%0,__name) + +#define ASK(%0) Testing_Ask(playerid,%0) + +static stock + YSI_g_sFailMessage[512], + YSI_g_sPlayer = cellmax, + bool:YSI_g_sAsked, + YSI_g_sTests, + YSI_g_sFails; + +#if defined RUN_TESTS + #define Test:%1() forward bool:Tezt_@%1(); public bool:Tezt_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define TestInit:%1() forward Init_@%1(); public Init_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define TestClose:%1() forward Shut_@%1(); public Shut_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + + #define PTest:%1(%2) forward bool:Tezp_@%1(%2); public bool:Tezp_@%1(%2) for(new string:__name[]=#%1,bool:__once=(printf("*** Player Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define PTestInit:%1(%2) forward Inip_@%1(%2); public Inip_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define PTestClose:%1(%2) forward Shup_@%1(%2); public Shup_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) +#else + #define Test:%1() stock bool:Test_@%1() + #define TestInit:%1() stock Init_@%1() + #define TestClose:%1() stock Shut_@%1() + + #define PTest:%1(%2) stock bool:Test_@%1(%2) + #define PTestInit:%1(%2) stock Init_@%1(%2) + #define PTestClose:%1(%2) stock Shut_@%1(%2) +#endif + +// These all need to come AFTER the types are defined in case the have tests. +#include "internal\y_version" + +#include "y_amx" +#include "internal\y_shortfunc" +#include "y_debug" + +#include "internal\y_natives" + +#include "y_va" + +/**--------------------------------------------------------------------------**\ +Testing_Ask +Player to ask a question to. +What to ask. +Additional data. + + - + + + Calls a dialog to ask the player if the given test actually passed. + +\**--------------------------------------------------------------------------**/ + +stock Testing_Ask(playerid, str[] = "", va_args<>) +{ + va_format(YSI_g_sFailMessage, sizeof (YSI_g_sFailMessage), str, va_start<2>); + ShowPlayerDialog(playerid, Y_TESTING_DIALOG_ID, DIALOG_STYLE_MSGBOX, "Did the test pass?", YSI_g_sFailMessage, "Yes", "No"); + YSI_g_sAsked = true; +} + +stock Testing_Test(bool:x, str[] = "", va_args<>) +{ + P:3("Testing_Test called: %i, \"%s\"", x, str); + ++YSI_g_sTests; + if (!x) + { + ++YSI_g_sFails; + if (numargs() == 2) + { + P:T(TEST_FAILED " %s", va_start<1>); + //printf("*** Test failed: %s", str); + } + else + { + if (str[0] == '\2') + { + strunpack(str, !TEST_FAILED, 6); + str[5] = ' '; + } + P:T(str, va_start<2>); + } + } + #if defined TEST_SHOW_PASSES + else /*if (numargs() == 2) + { + P:T(TEST_PASSED " %s", va_start<1>); + } + else + { + P:T(str, va_start<2>); + if (str[0] == '\2') + { + strunpack(str, !TEST_PASSED, 17); + str[16] = ' '; + } + printf(str); + P:T(str, va_start<2>);*/ + { + P:T(TEST_PASSED, va_start<2>); + } + #endif +} + +/**--------------------------------------------------------------------------**\ +Testing_Run +Number of tests run. +Number of tests which failed. +The name of the first test which failed. + + Wether all tests were sucessful or not. + + + - + +native Testing_Run(&tests, &fails, buffer[33] = ""); + + +\**--------------------------------------------------------------------------**/ + +stock bool:Testing_Run(&tests, &fails, lastfail[33] = "", bool:p = false) +{ + P:3("bool:Testing_Run called: %i, %i, \"%s\", %i", tests, fails, lastfail, p); + #pragma unused p, lastfail + #if defined RUN_TESTS + P:2("Testing_Run() called"); + new + idx, + buffer[32]; + while ((idx = AMX_GetPublicName(idx, buffer, "Tezt_@"))) + { + strunpack(buffer, buffer); + //++YSI_g_sTests; + // Call the setup function if there is one. + buffer[0] = 'I'; + buffer[1] = 'n'; + buffer[2] = 'i'; + buffer[3] = 't'; + CallLocalFunction(buffer, ""); + // Call the test. + buffer[0] = 'T'; + buffer[1] = 'e'; + buffer[2] = 'z'; + buffer[3] = 't'; + fails = YSI_g_sFails; + P:5("Testing_Run(): Calling %s", buffer[6]); + CallLocalFunction(buffer, ""); + #if !defined TEST_SHOW_PASSES + if (YSI_g_sFails == fails) + { + printf(TEST_PASSED); + printf(" "); + } + #endif + /*if (YSI_g_sFails != fails) + { + if (YSI_g_sFails) + { + ++YSI_g_sFails; + } + else + { + fails = 0; + // Copy the string over. + while ((lastfail[fails] = buffer[fails + 6])) ++fails; + YSI_g_sFails = 1; + } + //C:1(if (p) printf("*** Test failed: %s", buffer[fails + 6]);); + }*/ + // Call the shutdown function if there is one. + buffer[0] = 'S'; + buffer[1] = 'h'; + buffer[2] = 'u'; + buffer[3] = 't'; + CallLocalFunction(buffer, ""); + } + tests = YSI_g_sTests; + fails = YSI_g_sFails; + return fails == 0; + #else + #pragma unused tests, fails, lastfail + return true; + #endif +} + +/**--------------------------------------------------------------------------**\ +Testing_Player +Player to test on. +Next test to run. +Number of tests run. +Number of tests which failed. +The name of the first test which failed. + + Wether all tests were sucessful or not. + + + - + +native Testing_Run(&tests, &fails, buffer[33] = ""); + + +\**--------------------------------------------------------------------------**/ + +stock bool:Testing_Player(playerid, &idx, &tests, &fails, lastfail[33] = "", bool:p = false) +{ + P:3("bool:Testing_Player called: %i, %i, %i, %i, \"%s\", %i", playerid, idx, tests, fails, lastfail, p); + #pragma unused p + #if defined RUN_TESTS + P:2("Testing_Player() called"); + new + //idx, + buffer[32]; + //while ((idx = AMX_GetPublicName(idx, buffer, "Tezt_@"))) + if ((idx = AMX_GetPublicName(idx, buffer, "Tezp_@"))) + { + strunpack(buffer, buffer); + //++YSI_g_sTests; + // Call the setup function if there is one. + buffer[0] = 'I'; + buffer[1] = 'n'; + buffer[2] = 'i'; + buffer[3] = 'p'; + CallLocalFunction(buffer, ""); + // Call the test. + buffer[0] = 'T'; + buffer[1] = 'e'; + buffer[2] = 'z'; + buffer[3] = 'p'; + fails = YSI_g_sFails; + P:5("Testing_Player(): Calling %s", buffer[6]); + CallLocalFunction(buffer, ""); + #if !defined TEST_SHOW_PASSES + if (YSI_g_sFails == fails) + { + printf(TEST_PASSED); + printf(" "); + } + #endif + /*if (YSI_g_sFails != fails) + { + if (YSI_g_sFails) + { + ++YSI_g_sFails; + } + else + { + fails = 0; + // Copy the string over. + while ((lastfail[fails] = buffer[fails + 6])) ++fails; + YSI_g_sFails = 1; + } + //C:1(if (p) printf("*** Test failed: %s", buffer[fails + 6]);); + }*/ + // Call the shutdown function if there is one. + //buffer[0] = 'S'; + //buffer[1] = 'h'; + //buffer[2] = 'u'; + //buffer[3] = 'p'; + //CallLocalFunction(buffer, ""); + } + tests = YSI_g_sTests; + fails = YSI_g_sFails; + return fails == 0; + #else + #pragma unused tests, fails, lastfail + return true; + #endif +} + +#if defined RUN_TESTS + /*#define Test:%1() forward bool:Tezt_@%1(); public bool:Tezt_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define TestInit:%1() forward Init_@%1(); public Init_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define TestClose:%1() forward Shut_@%1(); public Shut_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + + #define PTest:%1(%2) forward bool:Tezp_@%1(%2); public bool:Tezp_@%1(%2) for(new string:__name[]=#%1,bool:__once=(printf("*** Player Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define PTestInit:%1(%2) forward Inip_@%1(%2); public Inip_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define PTestClose:%1(%2) forward Shup_@%1(%2); public Shup_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE))*/ + + #if defined _AUTO_RUN_TESTS + #if !defined FILTERSCRIPT + // Hook main in gamemodes. + main() + { + // Disable error messages (as we're likely to generate them). + state ysi_debug : off; + CallLocalFunction("Testing_main", ""); + new + tests, + fails; + printf(" "); + printf(" ||===================|| "); + printf(" || STARTING TESTS... || "); + printf(" ||===================|| "); + printf(" "); + Testing_Run(tests, fails, _, true); + printf("*** Tests: %d, Fails: %d", tests, fails); + if (!fails) + { + printf(" "); + printf(" ||===================|| "); + printf(" || ALL TESTS PASSED! || "); + printf(" ||===================|| "); + printf(" "); + } + state ysi_debug : on; + } + + #define main forward Testing_main(); public Testing_main + + Testing_Next(playerid) + { + new + buffer[32]; + for ( ; ; ) + { + new + fails = YSI_g_sFails; + // Get the last test (nicely fails for cellmax). + if ((YSI_g_sPlayer = AMX_GetPublicName(YSI_g_sPlayer, buffer, "Tezp_@"))) + { + strunpack(buffer, buffer); + // Call the shutdown function if there is one. + buffer[0] = 'S'; + buffer[1] = 'h'; + buffer[2] = 'u'; + buffer[3] = 'p'; + CallLocalFunction(buffer, "i", playerid); + } + // Get the new test, but don't store the index. + if (AMX_GetPublicName(YSI_g_sPlayer, buffer, "Tezp_@")) + { + YSI_g_sAsked = false; + //++YSI_g_sTests; + strunpack(buffer, buffer); + // Call the setup function if there is one. + buffer[0] = 'I'; + buffer[1] = 'n'; + buffer[2] = 'i'; + buffer[3] = 'p'; + CallLocalFunction(buffer, "i", playerid); + // Call the test. + buffer[0] = 'T'; + buffer[1] = 'e'; + buffer[2] = 'z'; + buffer[3] = 'p'; + P:5("Testing_Next(): Calling %s", buffer[6]); + CallLocalFunction(buffer, "i", playerid); + } + else + { + YSI_g_sAsked = true; + // No more tests. + printf("*** Tests: %d, Fails: %d", YSI_g_sTests, YSI_g_sFails); + if (!YSI_g_sFails) + { + printf(" "); + printf(" ||==========================|| "); + printf(" || ALL PLAYER TESTS PASSED! || "); + printf(" ||==========================|| "); + printf(" "); + } + } + // If the test needs a player but doesn't ask them anything + // then we can't wait for "OnDialogResponse" to run the next + // one. + if (YSI_g_sAsked) + { + break; + } + else if (fails == YSI_g_sFails) + { + printf(TEST_PASSED); + } + } + //while (!YSI_g_sAsked); + } + + public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) + { + if (dialogid == Y_TESTING_DIALOG_ID) + { + ++YSI_g_sTests; + if (response) + { + // Pass. + printf(TEST_PASSED); + } + else + { + // Fail. + printf(TEST_FAILED " %s", YSI_g_sFailMessage); + ++YSI_g_sFails; + } + Testing_Next(playerid); + return 1; + } + #if defined Testing_OnDialogResponse + return Testing_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); + #else + return 1; + #endif + } + + #if defined _ALS_OnDialogResponse + #undef OnDialogResponse + #else + #define _ALS_OnDialogResponse + #endif + #define OnDialogResponse Testing_OnDialogResponse + #if defined Testing_OnDialogResponse + forward Testing_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]); + #endif + + public OnPlayerSpawn(playerid) + { + if (YSI_g_sPlayer == cellmax && !IsPlayerNPC(playerid)) + { + printf(" "); + printf(" ||==========================|| "); + printf(" || STARTING PLAYER TESTS... || "); + printf(" ||==========================|| "); + printf(" "); + YSI_g_sTests = 0; + YSI_g_sFails = 0; + Testing_Next(playerid); + } + #if defined Testing_OnPlayerSpawn + return Testing_OnPlayerSpawn(playerid); + #else + return 1; + #endif + } + + #if defined _ALS_OnPlayerSpawn + #undef OnPlayerSpawn + #else + #define _ALS_OnPlayerSpawn + #endif + #define OnPlayerSpawn Testing_OnPlayerSpawn + #if defined Testing_OnPlayerSpawn + forward Testing_OnPlayerSpawn(playerid); + #endif + #endif + #else + Testing_RunAll() + { + // Disable error messages (as we're likely to generate them). + state ysi_debug : off; + new + tests, + fails; + printf(" "); + printf(" ||===================|| "); + printf(" || STARTING TESTS... || "); + printf(" ||===================|| "); + printf(" "); + Testing_Run(tests, fails, _, true); + printf("*** Tests: %d, Fails: %d", tests, fails); + if (!fails) + { + printf(" "); + printf(" ||===================|| "); + printf(" || ALL TESTS PASSED! || "); + printf(" ||===================|| "); + printf(" "); + } + state ysi_debug : on; + } + #endif +#else + //#define Tests:%1() stock bool:Tests_@%1() + /*#define Test:%1() stock bool:Test_@%1() + #define TestInit:%1() stock Init_@%1() + #define TestClose:%1() stock Shut_@%1() + + #define PTest:%1(%2) stock bool:Test_@%1(%2) + #define PTestInit:%1(%2) stock Init_@%1(%2) + #define PTestClose:%1(%2) stock Shut_@%1(%2)*/ +#endif From 5f456d8b2255a221d2c10b41714ebcf9032e400e Mon Sep 17 00:00:00 2001 From: "Ian A. Mason" Date: Tue, 30 Jun 2015 15:29:02 -0700 Subject: [PATCH 544/875] Some part way through the adding a language checklist. --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 18 ++++++++++++++++++ vendor/grammars/SMT.tmbundle | 1 + 4 files changed, 24 insertions(+) create mode 160000 vendor/grammars/SMT.tmbundle diff --git a/.gitmodules b/.gitmodules index 12edcd9a..ecbb25d1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -647,3 +647,6 @@ [submodule "vendor/grammars/atom-fsharp"] path = vendor/grammars/atom-fsharp url = https://github.com/fsprojects/atom-fsharp +[submodule "vendor/grammars/SMT.tmbundle"] + path = vendor/grammars/SMT.tmbundle + url = https://github.com/SRI-CSL/SMT.tmbundle.git diff --git a/grammars.yml b/grammars.yml index c0bfe823..ec1247ef 100644 --- a/grammars.yml +++ b/grammars.yml @@ -85,6 +85,8 @@ vendor/grammars/Racket: - source.racket vendor/grammars/SCSS.tmbundle: - source.scss +vendor/grammars/SMT.tmbundle: +- source.smt vendor/grammars/Scalate.tmbundle: - source.scaml - text.html.ssp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 480f107e..bd99600a 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3135,6 +3135,24 @@ Smarty: ace_mode: smarty tm_scope: text.html.smarty +SMT: + type: programming + extensions: + - .smt2 + - .smt + interpreters: + - boolector + - cvc4 + - mathsat5 + - opensmt + - smtinterpol + - smt-rat + - stp + - verit + - yices2 + - z3 + tm_scope: source.smt + SourcePawn: type: programming color: "#5c7611" diff --git a/vendor/grammars/SMT.tmbundle b/vendor/grammars/SMT.tmbundle new file mode 160000 index 00000000..f50c6e5a --- /dev/null +++ b/vendor/grammars/SMT.tmbundle @@ -0,0 +1 @@ +Subproject commit f50c6e5a7990ab71d857ab79375a6e4f76941778 From da5189e7fbfb8b65bde85adae85695abcfa8f28a Mon Sep 17 00:00:00 2001 From: mattn Date: Wed, 1 Jul 2015 16:23:38 +0900 Subject: [PATCH 545/875] Append Test::More into strict.t. Because, most of tap scripts on Perl5 are detected as Perl6. --- samples/Perl/strict.t | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/Perl/strict.t b/samples/Perl/strict.t index 04cea2f8..a9d4ec8c 100644 --- a/samples/Perl/strict.t +++ b/samples/Perl/strict.t @@ -1,4 +1,5 @@ use Test::Base; +use Test::More; __DATA__ === Strict Test From 0585c880dee79be77ddfda0497d8d6139df8b64c Mon Sep 17 00:00:00 2001 From: Bruno Dutertre Date: Wed, 1 Jul 2015 10:38:17 -0700 Subject: [PATCH 546/875] Example smt2 files --- samples/SMT/bignum_lia1.smt2 | 20 + samples/SMT/list4.smt2 | 20 + samples/SMT/queen10-1.smt2 | 123 ++ samples/SMT/shufflevector.smt | 2104 +++++++++++++++++++++++++++++++++ 4 files changed, 2267 insertions(+) create mode 100644 samples/SMT/bignum_lia1.smt2 create mode 100644 samples/SMT/list4.smt2 create mode 100644 samples/SMT/queen10-1.smt2 create mode 100644 samples/SMT/shufflevector.smt diff --git a/samples/SMT/bignum_lia1.smt2 b/samples/SMT/bignum_lia1.smt2 new file mode 100644 index 00000000..e8eb354a --- /dev/null +++ b/samples/SMT/bignum_lia1.smt2 @@ -0,0 +1,20 @@ +(set-logic QF_LIA) +(set-info :source | SMT-COMP'06 organizers |) +(set-info :smt-lib-version 2.0) +(set-info :category "check") +(set-info :status unsat) +(set-info :notes |This benchmark is designed to check if the DP supports bignumbers.|) +(declare-fun x1 () Int) +(declare-fun x2 () Int) +(declare-fun x3 () Int) +(declare-fun x4 () Int) +(declare-fun x5 () Int) +(declare-fun x6 () Int) +(assert (and (or (>= x1 1000) (>= x1 1002)) + (or (>= x2 (* 1230 x1)) (>= x2 (* 1003 x1))) + (or (>= x3 (* 1310 x2)) (>= x3 (* 1999 x2))) + (or (>= x4 (* 4000 x3)) (>= x4 (* 8000 x3))) + (or (<= x5 (* (- 4000) x4)) (<= x5 (* (- 8000) x4))) + (or (>= x6 (* (- 3) x5)) (>= x6 (* (- 2) x5))) (< x6 0))) +(check-sat) +(exit) diff --git a/samples/SMT/list4.smt2 b/samples/SMT/list4.smt2 new file mode 100644 index 00000000..f2c8e539 --- /dev/null +++ b/samples/SMT/list4.smt2 @@ -0,0 +1,20 @@ +(set-logic AUFLIRA) +(set-info :source | Buggy list theorem |) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status sat) +(declare-sort List 0) +(declare-fun cons (Real List) List) +(declare-fun nil () List) +(declare-fun car (List) Real) +(declare-fun cdr (List) List) +(declare-fun len (List) Int) +(assert (forall ((?x Real) (?y List)) (= (car (cons ?x ?y)) ?x))) +(assert (forall ((?x Real) (?y List)) (= (cdr (cons ?x ?y)) ?y))) +(assert (= (len nil) 0)) +(assert (forall ((?x Real) (?y List)) (= (len (cons ?x ?y)) (+ (len ?y) 1)))) +(declare-fun append (List List) List) +(assert (forall ((?x Real) (?y1 List) (?y2 List)) (= (append (cons ?x ?y1) ?y2) (cons ?x (append ?y1 ?y2))))) +(assert (not (forall ((?x Real) (?y List)) (= (append (cons ?x nil) ?y) (cons ?x ?y))))) +(check-sat) +(exit) diff --git a/samples/SMT/queen10-1.smt2 b/samples/SMT/queen10-1.smt2 new file mode 100644 index 00000000..25c8bd82 --- /dev/null +++ b/samples/SMT/queen10-1.smt2 @@ -0,0 +1,123 @@ +(set-logic QF_IDL) +(set-info :source | +Queens benchmarks generated by Hyondeuk Kim in SMT-LIB format. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status sat) +(declare-fun x0 () Int) +(declare-fun x1 () Int) +(declare-fun x2 () Int) +(declare-fun x3 () Int) +(declare-fun x4 () Int) +(declare-fun x5 () Int) +(declare-fun x6 () Int) +(declare-fun x7 () Int) +(declare-fun x8 () Int) +(declare-fun x9 () Int) +(declare-fun x10 () Int) +(assert + (let + ((?v_0 (- x0 x10)) + (?v_1 (- x1 x10)) + (?v_2 (- x2 x10)) + (?v_3 (- x3 x10)) + (?v_4 (- x4 x10)) + (?v_5 (- x5 x10)) + (?v_6 (- x6 x10)) + (?v_7 (- x7 x10)) + (?v_8 (- x8 x10)) + (?v_9 (- x9 x10)) + (?v_10 (- x0 x1)) + (?v_11 (- x0 x2)) + (?v_12 (- x0 x3)) + (?v_13 (- x0 x4)) + (?v_14 (- x0 x5)) + (?v_15 (- x0 x6)) + (?v_16 (- x0 x7)) + (?v_17 (- x0 x8)) + (?v_18 (- x0 x9)) + (?v_19 (- x1 x2)) + (?v_20 (- x1 x3)) + (?v_21 (- x1 x4)) + (?v_22 (- x1 x5)) + (?v_23 (- x1 x6)) + (?v_24 (- x1 x7)) + (?v_25 (- x1 x8)) + (?v_26 (- x1 x9)) + (?v_27 (- x2 x3)) + (?v_28 (- x2 x4)) + (?v_29 (- x2 x5)) + (?v_30 (- x2 x6)) + (?v_31 (- x2 x7)) + (?v_32 (- x2 x8)) + (?v_33 (- x2 x9)) + (?v_34 (- x3 x4)) + (?v_35 (- x3 x5)) + (?v_36 (- x3 x6)) + (?v_37 (- x3 x7)) + (?v_38 (- x3 x8)) + (?v_39 (- x3 x9)) + (?v_40 (- x4 x5)) + (?v_41 (- x4 x6)) + (?v_42 (- x4 x7)) + (?v_43 (- x4 x8)) + (?v_44 (- x4 x9)) + (?v_45 (- x5 x6)) + (?v_46 (- x5 x7)) + (?v_47 (- x5 x8)) + (?v_48 (- x5 x9)) + (?v_49 (- x6 x7)) + (?v_50 (- x6 x8)) + (?v_51 (- x6 x9)) + (?v_52 (- x7 x8)) + (?v_53 (- x7 x9)) + (?v_54 (- x8 x9))) + (and (<= ?v_0 9) (>= ?v_0 0) (<= ?v_1 9) (>= ?v_1 0) (<= ?v_2 9) (>= ?v_2 0) + (<= ?v_3 9) (>= ?v_3 0) (<= ?v_4 9) (>= ?v_4 0) (<= ?v_5 9) (>= ?v_5 0) + (<= ?v_6 9) (>= ?v_6 0) (<= ?v_7 9) (>= ?v_7 0) (<= ?v_8 9) (>= ?v_8 0) + (<= ?v_9 9) (>= ?v_9 0) + (not (= x0 x1)) (not (= x0 x2)) (not (= x0 x3)) (not (= x0 x4)) + (not (= x0 x5)) (not (= x0 x6)) (not (= x0 x7)) (not (= x0 x8)) + (not (= x0 x9)) (not (= x1 x2)) (not (= x1 x3)) (not (= x1 x4)) + (not (= x1 x5)) (not (= x1 x6)) (not (= x1 x7)) (not (= x1 x8)) + (not (= x1 x9)) (not (= x2 x3)) (not (= x2 x4)) (not (= x2 x5)) + (not (= x2 x6)) (not (= x2 x7)) (not (= x2 x8)) (not (= x2 x9)) + (not (= x3 x4)) (not (= x3 x5)) (not (= x3 x6)) (not (= x3 x7)) + (not (= x3 x8)) (not (= x3 x9)) (not (= x4 x5)) (not (= x4 x6)) + (not (= x4 x7)) (not (= x4 x8)) (not (= x4 x9)) (not (= x5 x6)) + (not (= x5 x7)) (not (= x5 x8)) (not (= x5 x9)) (not (= x6 x7)) + (not (= x6 x8)) (not (= x6 x9)) (not (= x7 x8)) (not (= x7 x9)) + (not (= x8 x9)) + (not (= ?v_10 1)) (not (= ?v_10 (- 1))) (not (= ?v_11 2)) + (not (= ?v_11 (- 2))) (not (= ?v_12 3)) (not (= ?v_12 (- 3))) + (not (= ?v_13 4)) (not (= ?v_13 (- 4))) (not (= ?v_14 5)) + (not (= ?v_14 (- 5))) (not (= ?v_15 6)) (not (= ?v_15 (- 6))) + (not (= ?v_16 7)) (not (= ?v_16 (- 7))) (not (= ?v_17 8)) + (not (= ?v_17 (- 8))) (not (= ?v_18 9)) (not (= ?v_18 (- 9))) + (not (= ?v_19 1)) (not (= ?v_19 (- 1))) (not (= ?v_20 2)) + (not (= ?v_20 (- 2))) (not (= ?v_21 3)) (not (= ?v_21 (- 3))) + (not (= ?v_22 4)) (not (= ?v_22 (- 4))) (not (= ?v_23 5)) + (not (= ?v_23 (- 5))) (not (= ?v_24 6)) (not (= ?v_24 (- 6))) + (not (= ?v_25 7)) (not (= ?v_25 (- 7))) (not (= ?v_26 8)) + (not (= ?v_26 (- 8))) (not (= ?v_27 1)) (not (= ?v_27 (- 1))) + (not (= ?v_28 2)) (not (= ?v_28 (- 2))) (not (= ?v_29 3)) + (not (= ?v_29 (- 3))) (not (= ?v_30 4)) (not (= ?v_30 (- 4))) + (not (= ?v_31 5)) (not (= ?v_31 (- 5))) (not (= ?v_32 6)) + (not (= ?v_32 (- 6))) (not (= ?v_33 7)) (not (= ?v_33 (- 7))) + (not (= ?v_34 1)) (not (= ?v_34 (- 1))) (not (= ?v_35 2)) + (not (= ?v_35 (- 2))) (not (= ?v_36 3)) (not (= ?v_36 (- 3))) + (not (= ?v_37 4)) (not (= ?v_37 (- 4))) (not (= ?v_38 5)) + (not (= ?v_38 (- 5))) (not (= ?v_39 6)) (not (= ?v_39 (- 6))) + (not (= ?v_40 1)) (not (= ?v_40 (- 1))) (not (= ?v_41 2)) + (not (= ?v_41 (- 2))) (not (= ?v_42 3)) (not (= ?v_42 (- 3))) + (not (= ?v_43 4)) (not (= ?v_43 (- 4))) (not (= ?v_44 5)) + (not (= ?v_44 (- 5))) (not (= ?v_45 1)) (not (= ?v_45 (- 1))) + (not (= ?v_46 2)) (not (= ?v_46 (- 2))) (not (= ?v_47 3)) + (not (= ?v_47 (- 3))) (not (= ?v_48 4)) (not (= ?v_48 (- 4))) + (not (= ?v_49 1)) (not (= ?v_49 (- 1))) (not (= ?v_50 2)) + (not (= ?v_50 (- 2))) (not (= ?v_51 3)) (not (= ?v_51 (- 3))) + (not (= ?v_52 1)) (not (= ?v_52 (- 1))) (not (= ?v_53 2)) + (not (= ?v_53 (- 2))) (not (= ?v_54 1)) (not (= ?v_54 (- 1)))))) +(check-sat) +(exit) diff --git a/samples/SMT/shufflevector.smt b/samples/SMT/shufflevector.smt new file mode 100644 index 00000000..6bc79d3a --- /dev/null +++ b/samples/SMT/shufflevector.smt @@ -0,0 +1,2104 @@ +(set-logic QF_ABV) +(define-sort Address () (_ BitVec 64)) +(define-sort Byte () (_ BitVec 8)) +(define-sort Mem () (Array Address Byte)) + +(define-sort I8 () (_ BitVec 8)) +(define-sort I16 () (_ BitVec 16)) +(define-sort I32 () (_ BitVec 32)) +(define-sort I64 () (_ BitVec 64)) +(define-sort I128 () (_ BitVec 128)) + + +;; +;;constants +;; +(define-fun zero () Address (_ bv0 64)) +(define-fun one () Address (_ bv1 64)) +(define-fun two () Address (_ bv2 64)) +(define-fun three () Address (_ bv3 64)) +(define-fun four () Address (_ bv4 64)) +(define-fun five () Address (_ bv5 64)) +(define-fun six () Address (_ bv6 64)) +(define-fun seven () Address (_ bv7 64)) +(define-fun eight () Address (_ bv8 64)) + + +;; +;; Write a little endian 1 bit value (8 bit aligned) at address x in mem +;; +(define-fun write1 ((mem Mem) (x Address) (v Bool)) Mem + (store mem x (ite v #x01 #x00))) + +;; +;; Write a little endian 8bit value at address x in mem +;; +(define-fun write8 ((mem Mem) (x Address) (v I8)) Mem + (store mem x v)) + +;; +;; Write a little endian 16bit value at address x in mem +;; +(define-fun write16 ((mem Mem) (x Address) (v I16)) Mem + (let ((b0 ((_ extract 7 0) v)) + (b1 ((_ extract 15 8) v))) + (store (store mem x b0) (bvadd x one) b1))) + +;; +;; Write a little endian 32bit value at address x in mem +;; +(define-fun write32 ((mem Mem) (x Address) (v I32)) Mem + (let ((b0 ((_ extract 7 0) v)) + (b1 ((_ extract 15 8) v)) + (b2 ((_ extract 23 16) v)) + (b3 ((_ extract 31 24) v))) + (store (store (store (store mem x b0) (bvadd x one) b1) (bvadd x two) b2) (bvadd x three) b3))) + +;; +;; Write a little endian 64bit value at address x in mem +;; +(define-fun write64 ((mem Mem) (x Address) (v I64)) Mem + (let ((b0 ((_ extract 31 0) v)) + (b1 ((_ extract 63 32) v))) + (write32 (write32 mem x b0) (bvadd x four) b1))) + +;; +;; Write a little endian 128bit value at address x in mem +;; +(define-fun write128 ((mem Mem) (x Address) (v I128)) Mem + (let ((b0 ((_ extract 63 0) v)) + (b1 ((_ extract 127 64) v))) + (write64 (write64 mem x b0) (bvadd x eight) b1))) + + +;; +;; Read a little endian 1 bit value (8 bit aligned) at address x in mem +;; - returns a Boolean: true if what's stored at address x is non-zero +;; +(define-fun read1 ((mem Mem) (x Address)) Bool + (not (= (select mem x) #x00))) + +;; +;; Read a little endian 8bit value at address x in mem +;; +(define-fun read8 ((mem Mem) (x Address)) I8 + (select mem x)) + +;; +;; Read a little endian 16bit value at address x in mem +;; +(define-fun read16 ((mem Mem) (x Address)) I16 + (let ((b0 (select mem x)) + (b1 (select mem (bvadd x one)))) + (concat b1 b0))) + +;; +;; Read a little endian 32bit value at address x in mem +;; +(define-fun read32 ((mem Mem) (x Address)) I32 + (let ((b0 (select mem x)) + (b1 (select mem (bvadd x one))) + (b2 (select mem (bvadd x two))) + (b3 (select mem (bvadd x three)))) + (concat b3 (concat b2 (concat b1 b0))))) + +;; +;; Read a little endian 64bit value at address x in mem +;; +(define-fun read64 ((mem Mem) (x Address)) I64 + (let ((b0 (read32 mem x)) + (b1 (read32 mem (bvadd x four)))) + (concat b1 b0))) + +;; +;; Read a little endian 128bit value at address x in mem +;; +(define-fun read128 ((mem Mem) (x Address)) I128 + (let ((b0 (read64 mem x)) + (b1 (read64 mem (bvadd x eight)))) + (concat b1 b0))) + + +;; +;; Vectors of (2^1) int4 elements +;; +(define-sort vector_1_4 () (Array (_ BitVec 1) (_ BitVec 4))) + +(declare-fun vundef_1_4 () vector_1_4) + + +;; +;; Vectors of (2^1) int8 elements +;; +(define-sort vector_1_8 () (Array (_ BitVec 1) (_ BitVec 8))) + +(declare-fun vundef_1_8 () vector_1_8) + + +;; +;; Vectors of (2^1) int16 elements +;; +(define-sort vector_1_16 () (Array (_ BitVec 1) (_ BitVec 16))) + +(declare-fun vundef_1_16 () vector_1_16) + + +;; +;; Vectors of (2^1) int32 elements +;; +(define-sort vector_1_32 () (Array (_ BitVec 1) (_ BitVec 32))) + +(declare-fun vundef_1_32 () vector_1_32) + + +;; +;; Vectors of (2^1) int64 elements +;; +(define-sort vector_1_64 () (Array (_ BitVec 1) (_ BitVec 64))) + +(declare-fun vundef_1_64 () vector_1_64) + + +;; +;; Vectors of (2^2) int4 elements +;; +(define-sort vector_2_4 () (Array (_ BitVec 2) (_ BitVec 4))) + +(declare-fun vundef_2_4 () vector_2_4) + + +;; +;; Vectors of (2^2) int8 elements +;; +(define-sort vector_2_8 () (Array (_ BitVec 2) (_ BitVec 8))) + +(declare-fun vundef_2_8 () vector_2_8) + + +;; +;; Vectors of (2^2) int16 elements +;; +(define-sort vector_2_16 () (Array (_ BitVec 2) (_ BitVec 16))) + +(declare-fun vundef_2_16 () vector_2_16) + + +;; +;; Vectors of (2^2) int32 elements +;; +(define-sort vector_2_32 () (Array (_ BitVec 2) (_ BitVec 32))) + +(declare-fun vundef_2_32 () vector_2_32) + + +;; +;; Vectors of (2^2) int64 elements +;; +(define-sort vector_2_64 () (Array (_ BitVec 2) (_ BitVec 64))) + +(declare-fun vundef_2_64 () vector_2_64) + + +;; +;; Vectors of (2^3) int4 elements +;; +(define-sort vector_3_4 () (Array (_ BitVec 3) (_ BitVec 4))) + +(declare-fun vundef_3_4 () vector_3_4) + + +;; +;; Vectors of (2^3) int8 elements +;; +(define-sort vector_3_8 () (Array (_ BitVec 3) (_ BitVec 8))) + +(declare-fun vundef_3_8 () vector_3_8) + + +;; +;; Vectors of (2^3) int16 elements +;; +(define-sort vector_3_16 () (Array (_ BitVec 3) (_ BitVec 16))) + +(declare-fun vundef_3_16 () vector_3_16) + + +;; +;; Vectors of (2^3) int32 elements +;; +(define-sort vector_3_32 () (Array (_ BitVec 3) (_ BitVec 32))) + +(declare-fun vundef_3_32 () vector_3_32) + + +;; +;; Vectors of (2^3) int64 elements +;; +(define-sort vector_3_64 () (Array (_ BitVec 3) (_ BitVec 64))) + +(declare-fun vundef_3_64 () vector_3_64) + +;; Special case where we use Bool rather than bitvectors of size 1 + +(define-sort vector_1_1 () (Array (_ BitVec 1) Bool)) + +(declare-fun vundef_1_1 () vector_1_1) + +(define-fun vmake_1_1 ((x0 Bool) (x1 Bool)) vector_1_1 + (store (store vundef_1_1 #b0 x0) #b1 x1)) + +(define-sort vector_2_1 () (Array (_ BitVec 2) Bool)) + +(declare-fun vundef_2_1 () vector_2_1) + +(define-fun vmake_2_1 + ((x0 Bool) (x1 Bool) (x2 Bool) (x3 Bool)) vector_2_1 + (store (store (store (store vundef_2_1 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +(define-sort vector_3_1 () (Array (_ BitVec 3) Bool)) + +(declare-fun vundef_3_1 () vector_3_1) + +(define-fun vmake_3_1 + ((x0 Bool) (x1 Bool) (x2 Bool) (x3 Bool) (x4 Bool) (x5 Bool) (x6 Bool) (x7 Bool)) vector_3_1 + (store (store (store (store (store (store (store (store vundef_3_1 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; +;; Vectors of (2^1) i.e. two int4 elements +;; +(define-fun vmake_1_4 ((x0 (_ BitVec 4)) (x1 (_ BitVec 4))) vector_1_4 + (store (store vundef_1_4 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int4 elements +;; +(define-fun vmake_2_4 + ((x0 (_ BitVec 4)) (x1 (_ BitVec 4)) (x2 (_ BitVec 4)) (x3 (_ BitVec 4))) vector_2_4 + (store (store (store (store vundef_2_4 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int4 elements +;; +(define-fun vmake_3_4 + ((x0 (_ BitVec 4)) (x1 (_ BitVec 4)) (x2 (_ BitVec 4)) (x3 (_ BitVec 4))(x4 (_ BitVec 4)) (x5 (_ BitVec 4)) (x6 (_ BitVec 4)) (x7 (_ BitVec 4))) vector_3_4 + (store (store (store (store (store (store (store (store vundef_3_4 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int4 elements + + (define-fun vzero_1_4 () vector_1_4 (vmake_1_4 (_ bv0 4) (_ bv0 4))) + + (define-fun vzero_2_4 () vector_2_4 (vmake_2_4 (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4))) + + (define-fun vzero_3_4 () vector_3_4 (vmake_3_4 (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4))) + + +;; +;; Vectors of (2^1) i.e. two int8 elements +;; +(define-fun vmake_1_8 ((x0 (_ BitVec 8)) (x1 (_ BitVec 8))) vector_1_8 + (store (store vundef_1_8 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int8 elements +;; +(define-fun vmake_2_8 + ((x0 (_ BitVec 8)) (x1 (_ BitVec 8)) (x2 (_ BitVec 8)) (x3 (_ BitVec 8))) vector_2_8 + (store (store (store (store vundef_2_8 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int8 elements +;; +(define-fun vmake_3_8 + ((x0 (_ BitVec 8)) (x1 (_ BitVec 8)) (x2 (_ BitVec 8)) (x3 (_ BitVec 8))(x4 (_ BitVec 8)) (x5 (_ BitVec 8)) (x6 (_ BitVec 8)) (x7 (_ BitVec 8))) vector_3_8 + (store (store (store (store (store (store (store (store vundef_3_8 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int8 elements + + (define-fun vzero_1_8 () vector_1_8 (vmake_1_8 (_ bv0 8) (_ bv0 8))) + + (define-fun vzero_2_8 () vector_2_8 (vmake_2_8 (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8))) + + (define-fun vzero_3_8 () vector_3_8 (vmake_3_8 (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8))) + + +;; +;; Vectors of (2^1) i.e. two int16 elements +;; +(define-fun vmake_1_16 ((x0 (_ BitVec 16)) (x1 (_ BitVec 16))) vector_1_16 + (store (store vundef_1_16 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int16 elements +;; +(define-fun vmake_2_16 + ((x0 (_ BitVec 16)) (x1 (_ BitVec 16)) (x2 (_ BitVec 16)) (x3 (_ BitVec 16))) vector_2_16 + (store (store (store (store vundef_2_16 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int16 elements +;; +(define-fun vmake_3_16 + ((x0 (_ BitVec 16)) (x1 (_ BitVec 16)) (x2 (_ BitVec 16)) (x3 (_ BitVec 16))(x4 (_ BitVec 16)) (x5 (_ BitVec 16)) (x6 (_ BitVec 16)) (x7 (_ BitVec 16))) vector_3_16 + (store (store (store (store (store (store (store (store vundef_3_16 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int16 elements + + (define-fun vzero_1_16 () vector_1_16 (vmake_1_16 (_ bv0 16) (_ bv0 16))) + + (define-fun vzero_2_16 () vector_2_16 (vmake_2_16 (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16))) + + (define-fun vzero_3_16 () vector_3_16 (vmake_3_16 (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16))) + + +;; +;; Vectors of (2^1) i.e. two int32 elements +;; +(define-fun vmake_1_32 ((x0 (_ BitVec 32)) (x1 (_ BitVec 32))) vector_1_32 + (store (store vundef_1_32 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int32 elements +;; +(define-fun vmake_2_32 + ((x0 (_ BitVec 32)) (x1 (_ BitVec 32)) (x2 (_ BitVec 32)) (x3 (_ BitVec 32))) vector_2_32 + (store (store (store (store vundef_2_32 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int32 elements +;; +(define-fun vmake_3_32 + ((x0 (_ BitVec 32)) (x1 (_ BitVec 32)) (x2 (_ BitVec 32)) (x3 (_ BitVec 32))(x4 (_ BitVec 32)) (x5 (_ BitVec 32)) (x6 (_ BitVec 32)) (x7 (_ BitVec 32))) vector_3_32 + (store (store (store (store (store (store (store (store vundef_3_32 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int32 elements + + (define-fun vzero_1_32 () vector_1_32 (vmake_1_32 (_ bv0 32) (_ bv0 32))) + + (define-fun vzero_2_32 () vector_2_32 (vmake_2_32 (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32))) + + (define-fun vzero_3_32 () vector_3_32 (vmake_3_32 (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32))) + + +;; +;; Vectors of (2^1) i.e. two int64 elements +;; +(define-fun vmake_1_64 ((x0 (_ BitVec 64)) (x1 (_ BitVec 64))) vector_1_64 + (store (store vundef_1_64 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int64 elements +;; +(define-fun vmake_2_64 + ((x0 (_ BitVec 64)) (x1 (_ BitVec 64)) (x2 (_ BitVec 64)) (x3 (_ BitVec 64))) vector_2_64 + (store (store (store (store vundef_2_64 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int64 elements +;; +(define-fun vmake_3_64 + ((x0 (_ BitVec 64)) (x1 (_ BitVec 64)) (x2 (_ BitVec 64)) (x3 (_ BitVec 64))(x4 (_ BitVec 64)) (x5 (_ BitVec 64)) (x6 (_ BitVec 64)) (x7 (_ BitVec 64))) vector_3_64 + (store (store (store (store (store (store (store (store vundef_3_64 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int64 elements + + (define-fun vzero_1_64 () vector_1_64 (vmake_1_64 (_ bv0 64) (_ bv0 64))) + + (define-fun vzero_2_64 () vector_2_64 (vmake_2_64 (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64))) + + (define-fun vzero_3_64 () vector_3_64 (vmake_3_64 (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64))) + + +(define-fun vbvadd_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvadd_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvadd_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvadd_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsub_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsub_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsub_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsub_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvmul_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvmul_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvmul_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvmul_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvshl_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvshl_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvshl_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvshl_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsdiv_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsdiv_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsdiv_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsdiv_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvudiv_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvudiv_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvudiv_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvudiv_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvlshr_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvlshr_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvlshr_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvlshr_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvashr_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvashr_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvashr_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvashr_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvurem_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvurem_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvurem_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvurem_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsrem_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsrem_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsrem_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsrem_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvand_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvand_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvand_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvand_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvor_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvor_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvor_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvor_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvxor_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvxor_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvxor_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvxor_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + + (define-fun vbvadd_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvand_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvand_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvand_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvand_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvor_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvor_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvor_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvor_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvadd_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + + +;; conversion to and from (Bitvector 64) +;; this assumes little endian representation +(define-fun cast_vector_1_32_to_bits ((x vector_1_32)) (_ BitVec 64) + (concat (select x #b1) (select x #b0))) + +(define-fun cast_bits_to_vector_1_32 ((w (_ BitVec 64))) vector_1_32 + (let ((z0 ((_ extract 31 0) w)) + (z1 ((_ extract 63 32) w))) + (vmake_1_32 z0 z1))) + +;; conversion to and from (Bitvector 128) +;; this assumes little endian representation +(define-fun cast_vector_2_32_to_bits ((x vector_2_32)) (_ BitVec 128) + (concat (concat (concat (select x #b11) (select x #b10)) (select x #b01)) (select x #b00))) + +(define-fun cast_bits_to_vector_2_32 ((w (_ BitVec 128))) vector_2_32 + (let ((z0 ((_ extract 31 0) w)) + (z1 ((_ extract 63 32) w)) + (z2 ((_ extract 95 64) w)) + (z3 ((_ extract 127 96) w))) + (vmake_2_32 z0 z1 z2 z3))) + +;; conversion to and from (Bitvector 128) to vectors 2 x i64 +(define-fun cast_vector_1_64_to_bits ((x vector_1_64)) (_ BitVec 128) + (concat (select x #b1) (select x #b0))) + +(define-fun cast_bits_to_vector_1_64 ((w (_ BitVec 128))) vector_1_64 + (let ((z0 ((_ extract 63 0) w)) + (z1 ((_ extract 127 64) w))) + (vmake_1_64 z0 z1))) + + + + +;; end of prelude + + +;; @.str [16 x i8] = c"lhs == rhs: %d\0A\00" +(declare-fun |-@.str| () (_ BitVec 64)) +;; @.str1 [22 x i8] = c"lhs = %d != rhs = %d\0A\00" +(declare-fun |-@.str1| () (_ BitVec 64)) +(declare-fun -@lhs () (_ BitVec 64)) +(declare-fun -@rhs () (_ BitVec 64)) +(declare-fun -@main () (_ BitVec 64)) +(declare-fun -@atoi () (_ BitVec 64)) +(declare-fun -@printf () (_ BitVec 64)) + + +;; Function: |-@lhs| +;; (i32 %a, i32 %b) +(declare-fun memory1 () Mem) +(define-fun rsp1 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%a-@lhs| () (_ BitVec 32)) +(declare-fun |%b-@lhs| () (_ BitVec 32)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@lhs_block_0_entry_condition| +(define-fun |-@lhs_block_0_entry_condition| () Bool true) +;; %1 = insertelement <2 x i32> undef, i32 %a, i32 0 +(define-fun |%1-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store vzero_1_32 ((_ extract 0 0) (_ bv0 32)) |%a-@lhs|)) +;; %2 = insertelement <2 x i32> %1, i32 %b, i32 1 +(define-fun |%2-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store |%1-@lhs| ((_ extract 0 0) (_ bv1 32)) |%b-@lhs|)) +;; %3 = shufflevector <2 x i32> %2, <2 x i32> undef, <2 x i32> +(define-fun |%3-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) +(let ((x0 vundef_1_32)) +(let ((x1 (store x0 ((_ extract 0 0) (_ bv0 32)) (select |%2-@lhs| ((_ extract 0 0) (_ bv1 32)))))) + (let ((x2 (store x1 ((_ extract 0 0) (_ bv1 32)) (select |%2-@lhs| ((_ extract 0 0) (_ bv0 32)))))) + x2)))) +;; %4 = shufflevector <2 x i32> %3, <2 x i32> undef, <2 x i32> +(define-fun |%4-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) +(let ((x0 vundef_1_32)) +(let ((x1 (store x0 ((_ extract 0 0) (_ bv0 32)) (select |%3-@lhs| ((_ extract 0 0) (_ bv1 32)))))) + (let ((x2 (store x1 ((_ extract 0 0) (_ bv1 32)) (select |%3-@lhs| ((_ extract 0 0) (_ bv0 32)))))) + x2)))) +;; %5 = extractelement <2 x i32> %4, i32 0 +(define-fun |%5-@lhs| () (_ BitVec 32) (select |%4-@lhs| ((_ extract 0 0) (_ bv0 32)))) +;; ret i32 %5 +;; No backward arrows + + +(define-fun |-@lhs_result| () (_ BitVec 32) |%5-@lhs|) + +;; Function: |-@rhs| +;; (i32 %a, i32 %b) +(declare-fun memory2 () Mem) +(define-fun rsp2 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%a-@rhs| () (_ BitVec 32)) +(declare-fun |%b-@rhs| () (_ BitVec 32)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@rhs_block_0_entry_condition| +(define-fun |-@rhs_block_0_entry_condition| () Bool true) +;; %1 = insertelement <2 x i32> undef, i32 %a, i32 0 +(define-fun |%1-@rhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store vzero_1_32 ((_ extract 0 0) (_ bv0 32)) |%a-@rhs|)) +;; %2 = insertelement <2 x i32> %1, i32 %b, i32 1 +(define-fun |%2-@rhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store |%1-@rhs| ((_ extract 0 0) (_ bv1 32)) |%b-@rhs|)) +;; %3 = extractelement <2 x i32> %2, i32 0 +(define-fun |%3-@rhs| () (_ BitVec 32) (select |%2-@rhs| ((_ extract 0 0) (_ bv0 32)))) +;; ret i32 %3 +;; No backward arrows + + +(define-fun |-@rhs_result| () (_ BitVec 32) |%3-@rhs|) + +;; Function: |-@main| +;; (i32 %argc, i8** %argv) +(declare-fun memory3 () Mem) +(define-fun rsp3 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%argc-@main| () (_ BitVec 32)) +(declare-fun |%argv-@main| () (_ BitVec 64)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@main_block_0_entry_condition| +(define-fun |-@main_block_0_entry_condition| () Bool true) +;; %1 = alloca i32, align 4 +(define-fun rsp4 () Address (bvsub rsp3 (_ bv4 64))) +(define-fun |%1-@main| () (_ BitVec 64) rsp4) +;; %2 = alloca i32, align 4 +(define-fun rsp5 () Address (bvsub rsp4 (_ bv4 64))) +(define-fun |%2-@main| () (_ BitVec 64) rsp5) +;; %3 = alloca i8**, align 8 +(define-fun rsp6 () Address (bvsub rsp5 (_ bv8 64))) +(define-fun |%3-@main| () (_ BitVec 64) rsp6) +;; %a = alloca i32, align 4 +(define-fun rsp7 () Address (bvsub rsp6 (_ bv4 64))) +(define-fun |%a-@main| () (_ BitVec 64) rsp7) +;; %b = alloca i32, align 4 +(define-fun rsp8 () Address (bvsub rsp7 (_ bv4 64))) +(define-fun |%b-@main| () (_ BitVec 64) rsp8) +;; %lhs = alloca i32, align 4 +(define-fun rsp9 () Address (bvsub rsp8 (_ bv4 64))) +(define-fun |%lhs-@main| () (_ BitVec 64) rsp9) +;; %rhs = alloca i32, align 4 +(define-fun rsp10 () Address (bvsub rsp9 (_ bv4 64))) +(define-fun |%rhs-@main| () (_ BitVec 64) rsp10) +;; store i32 0, i32* %1 +(define-fun memory4 () Mem (write32 memory3 |%1-@main| (_ bv0 32))) +;; store i32 %argc, i32* %2, align 4 +(define-fun memory5 () Mem (write32 memory4 |%2-@main| |%argc-@main|)) +;; store i8** %argv, i8*** %3, align 8 +(define-fun memory6 () Mem (write64 memory5 |%3-@main| |%argv-@main|)) +;; %4 = load i32* %2, align 4 +(define-fun |%4-@main| () (_ BitVec 32) (read32 memory6 |%2-@main|)) +;; %5 = icmp eq i32 %4, 3 +(define-fun |%5-@main| () Bool (= |%4-@main| (_ bv3 32))) +;; br i1 %5, label %6, label %32 +;; No backward arrows + +;; BLOCK %6 with index 1 and rank = 2 +;; Predecessors: %0 +;; |-@main_block_1_entry_condition| +(define-fun |-@main_block_1_entry_condition| () Bool + (and |-@main_block_0_entry_condition| |%5-@main|) +) +;;Memory PHI +(define-fun memory7 () Mem memory6) +;; %7 = load i8*** %3, align 8 +(define-fun |%7-@main| () (_ BitVec 64) (read64 memory7 |%3-@main|)) +;; %8 = getelementptr inbounds i8** %7, i64 1 +(define-fun |%8-@main| () (_ BitVec 64) (bvadd |%7-@main| (_ bv8 64))) +;; %9 = load i8** %8, align 8 +(define-fun |%9-@main| () (_ BitVec 64) (read64 memory7 |%8-@main|)) +;; %10 = call i32 @atoi(i8* %9) +(declare-fun |%10-@main| () (_ BitVec 32)) +;; store i32 %10, i32* %a, align 4 +(define-fun memory8 () Mem (write32 memory7 |%a-@main| |%10-@main|)) +;; %11 = load i8*** %3, align 8 +(define-fun |%11-@main| () (_ BitVec 64) (read64 memory8 |%3-@main|)) +;; %12 = getelementptr inbounds i8** %11, i64 2 +(define-fun |%12-@main| () (_ BitVec 64) (bvadd |%11-@main| (_ bv16 64))) +;; %13 = load i8** %12, align 8 +(define-fun |%13-@main| () (_ BitVec 64) (read64 memory8 |%12-@main|)) +;; %14 = call i32 @atoi(i8* %13) +(declare-fun |%14-@main| () (_ BitVec 32)) +;; store i32 %14, i32* %b, align 4 +(define-fun memory9 () Mem (write32 memory8 |%b-@main| |%14-@main|)) +;; %15 = load i32* %a, align 4 +(define-fun |%15-@main| () (_ BitVec 32) (read32 memory9 |%a-@main|)) +;; %16 = load i32* %b, align 4 +(define-fun |%16-@main| () (_ BitVec 32) (read32 memory9 |%b-@main|)) +;; %17 = call i32 @lhs(i32 %15, i32 %16) +(declare-fun |%17-@main| () (_ BitVec 32)) +;; store i32 %17, i32* %lhs, align 4 +(define-fun memory10 () Mem (write32 memory9 |%lhs-@main| |%17-@main|)) +;; %18 = load i32* %a, align 4 +(define-fun |%18-@main| () (_ BitVec 32) (read32 memory10 |%a-@main|)) +;; %19 = load i32* %b, align 4 +(define-fun |%19-@main| () (_ BitVec 32) (read32 memory10 |%b-@main|)) +;; %20 = call i32 @rhs(i32 %18, i32 %19) +(declare-fun |%20-@main| () (_ BitVec 32)) +;; store i32 %20, i32* %rhs, align 4 +(define-fun memory11 () Mem (write32 memory10 |%rhs-@main| |%20-@main|)) +;; %21 = load i32* %lhs, align 4 +(define-fun |%21-@main| () (_ BitVec 32) (read32 memory11 |%lhs-@main|)) +;; %22 = load i32* %rhs, align 4 +(define-fun |%22-@main| () (_ BitVec 32) (read32 memory11 |%rhs-@main|)) +;; %23 = icmp eq i32 %21, %22 +(define-fun |%23-@main| () Bool (= |%21-@main| |%22-@main|)) +;; br i1 %23, label %24, label %27 +;; No backward arrows + +;; BLOCK %24 with index 2 and rank = 3 +;; Predecessors: %6 +;; |-@main_block_2_entry_condition| +(define-fun |-@main_block_2_entry_condition| () Bool + (and |-@main_block_1_entry_condition| |%23-@main|) +) +;;Memory PHI +(define-fun memory12 () Mem memory11) +;; %25 = load i32* %lhs, align 4 +(define-fun |%25-@main| () (_ BitVec 32) (read32 memory12 |%lhs-@main|)) +;; %26 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x i8]* @.str, i32 0, i32 0), i32 %25) +(declare-fun |%26-@main| () (_ BitVec 32)) +;; br label %31 +;; No backward arrows + +;; BLOCK %27 with index 3 and rank = 3 +;; Predecessors: %6 +;; |-@main_block_3_entry_condition| +(define-fun |-@main_block_3_entry_condition| () Bool + (and |-@main_block_1_entry_condition| (not |%23-@main|)) +) +;;Memory PHI +(define-fun memory13 () Mem memory11) +;; %28 = load i32* %lhs, align 4 +(define-fun |%28-@main| () (_ BitVec 32) (read32 memory13 |%lhs-@main|)) +;; %29 = load i32* %rhs, align 4 +(define-fun |%29-@main| () (_ BitVec 32) (read32 memory13 |%rhs-@main|)) +;; %30 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([22 x i8]* @.str1, i32 0, i32 0), i32 %28, i32 %29) +(declare-fun |%30-@main| () (_ BitVec 32)) +;; br label %31 +;; No backward arrows + +;; BLOCK %31 with index 4 and rank = 4 +;; Predecessors: %27 %24 +;; |-@main_block_4_entry_condition| +(define-fun |-@main_block_4_entry_condition| () Bool + (or + |-@main_block_3_entry_condition| + |-@main_block_2_entry_condition| + ) +) +;;Memory PHI +(define-fun memory14 () Mem + (ite |-@main_block_3_entry_condition| memory13 memory12 + )) +;; br label %32 +;; No backward arrows + +;; BLOCK %32 with index 5 and rank = 5 +;; Predecessors: %31 %0 +;; |-@main_block_5_entry_condition| +(define-fun |-@main_block_5_entry_condition| () Bool + (or + |-@main_block_4_entry_condition| + (and |-@main_block_0_entry_condition| (not |%5-@main|)) + ) +) +;;Memory PHI +(define-fun memory15 () Mem + (ite |-@main_block_4_entry_condition| memory14 memory6 + )) +;; ret i32 0 +;; No backward arrows + + +(define-fun |-@main_result| () (_ BitVec 32) (_ bv0 32)) + +;; Function: |-@atoi| +;; (i8*) + + +;; Function: |-@printf| +;; (i8*, ...) + + +(assert (and (= |%a-@lhs| |%a-@rhs|) (= |%b-@lhs| |%b-@rhs|) (not (= |-@lhs_result| |-@rhs_result|)))) + +(check-sat) From 77bc72be146c86857fe5f7f412a44887240bf25c Mon Sep 17 00:00:00 2001 From: "Ian A. Mason" Date: Wed, 1 Jul 2015 11:22:04 -0700 Subject: [PATCH 547/875] Added an ace mode, and put the SMT entry in the correct place, maybe. --- lib/linguist/languages.yml | 37 ++++++++++++++++++------------------ vendor/grammars/SMT.tmbundle | 2 +- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index bd99600a..be8313e3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2919,6 +2919,25 @@ SCSS: extensions: - .scss +SMT: + type: programming + extensions: + - .smt2 + - .smt + interpreters: + - boolector + - cvc4 + - mathsat5 + - opensmt + - smtinterpol + - smt-rat + - stp + - verit + - yices2 + - z3 + tm_scope: source.smt + ace_mode: text + SPARQL: type: data tm_scope: source.sparql @@ -3135,24 +3154,6 @@ Smarty: ace_mode: smarty tm_scope: text.html.smarty -SMT: - type: programming - extensions: - - .smt2 - - .smt - interpreters: - - boolector - - cvc4 - - mathsat5 - - opensmt - - smtinterpol - - smt-rat - - stp - - verit - - yices2 - - z3 - tm_scope: source.smt - SourcePawn: type: programming color: "#5c7611" diff --git a/vendor/grammars/SMT.tmbundle b/vendor/grammars/SMT.tmbundle index f50c6e5a..a4d498d4 160000 --- a/vendor/grammars/SMT.tmbundle +++ b/vendor/grammars/SMT.tmbundle @@ -1 +1 @@ -Subproject commit f50c6e5a7990ab71d857ab79375a6e4f76941778 +Subproject commit a4d498d4a211831cd6c37048b24f7379ac9cce4a From 6a185a3d3a05e285f69f6ae20f99b1211af39aa6 Mon Sep 17 00:00:00 2001 From: mattn Date: Sat, 4 Jul 2015 02:29:01 +0900 Subject: [PATCH 548/875] remove some text contents from test.pl since it affect to heuristic search. --- samples/Perl6/test.p6 | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/samples/Perl6/test.p6 b/samples/Perl6/test.p6 index 3d12b56c..65073eb9 100644 --- a/samples/Perl6/test.p6 +++ b/samples/Perl6/test.p6 @@ -73,26 +73,6 @@ Here's some POD! Wooo say('this is not!'); -=table - Of role things - -say('not in your table'); -#= A single line declarator "block" (with a keyword like role) -#| Another single line declarator "block" (with a keyword like role) -#={ - A declarator block (with a keyword like role) - } -#|{ - Another declarator block (with a keyword like role) - } -#= { A single line declarator "block" with a brace (with a keyword like role) -#=« - More declarator blocks! (with a keyword like role) - » -#|« - More declarator blocks! (with a keyword like role) - » - say 'Moar code!'; my $don't = 16; From 8f651bca03826a7dd741f238a16b4a39356e407b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 4 Jul 2015 06:01:06 +0100 Subject: [PATCH 549/875] Adding PHP sample file for completeness --- samples/PHP/root.php | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 samples/PHP/root.php diff --git a/samples/PHP/root.php b/samples/PHP/root.php new file mode 100644 index 00000000..8f8be563 --- /dev/null +++ b/samples/PHP/root.php @@ -0,0 +1,6 @@ + From f3b65015f4a1a3e4e006d6c38ce3cb25d8b74a6c Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 4 Jul 2015 06:55:51 +0100 Subject: [PATCH 550/875] Grammar updates --- vendor/grammars/Handlebars | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SMT.tmbundle | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/css.tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-jsoniq | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/sas.tmbundle | 2 +- vendor/grammars/sublime-text-ox | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index e331daf0..60532f35 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit e331daf0597f9df978403520ee8583e08892e9eb +Subproject commit 60532f35cf89ce8d7e3354ed2f81cc131e80b614 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 4ab90608..4acce8b6 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 4ab90608c10745de2cacba7490082ba7871f01e1 +Subproject commit 4acce8b67be537df6e23e9aab92c0427c37437a5 diff --git a/vendor/grammars/SMT.tmbundle b/vendor/grammars/SMT.tmbundle index a4d498d4..5b8231f5 160000 --- a/vendor/grammars/SMT.tmbundle +++ b/vendor/grammars/SMT.tmbundle @@ -1 +1 @@ -Subproject commit a4d498d4a211831cd6c37048b24f7379ac9cce4a +Subproject commit 5b8231f5165f0a2147445783705e99f468be7a84 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index edd84ff6..55785b6a 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit edd84ff6921a7f7d0c19a0f20067363ce0030abd +Subproject commit 55785b6af0115aa49ed3fc2b3c3edb02a5305068 diff --git a/vendor/grammars/css.tmbundle b/vendor/grammars/css.tmbundle index 2ce91736..94f7111c 160000 --- a/vendor/grammars/css.tmbundle +++ b/vendor/grammars/css.tmbundle @@ -1 +1 @@ -Subproject commit 2ce91736ca17bbf72ca13ef82ff23c90cc01bf8f +Subproject commit 94f7111c2953ac7b4cc42d313d9ad9b8701b8468 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 44e8e7b3..0124e630 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 44e8e7b3441b45e09c016760af671492cb7d2a1d +Subproject commit 0124e630f014071a35bbea43db745e3aaa3491a6 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index fbf8ce6f..810b34b2 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit fbf8ce6ff3770a60d3b843f7a3a39c6eb4503a0c +Subproject commit 810b34b259f04e6dc30a03096d3cfe16b70f4ba9 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 601cb6cb..e26b8c50 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 601cb6cb8f80e03e7eaa5695515d6366fb2b6d18 +Subproject commit e26b8c50a3ee02cb1d922d82ca66c9b75d06f052 diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq index 0917bd27..7a971acf 160000 --- a/vendor/grammars/language-jsoniq +++ b/vendor/grammars/language-jsoniq @@ -1 +1 @@ -Subproject commit 0917bd274f824b241c3c5d5f9e75ef7986916d79 +Subproject commit 7a971acf1c2001e6b2e9afc7b69b6ff8a2ae39ce diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index db14372b..7271315c 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit db14372b475bf41f0f01032076ba53b3940fb80a +Subproject commit 7271315c858451ad302ebce2c5db2eee528013cc diff --git a/vendor/grammars/sas.tmbundle b/vendor/grammars/sas.tmbundle index 658a0640..43a05b10 160000 --- a/vendor/grammars/sas.tmbundle +++ b/vendor/grammars/sas.tmbundle @@ -1 +1 @@ -Subproject commit 658a064053199871bb297b6dbab1aebff486e256 +Subproject commit 43a05b10fc76b34946a1188fd2a9c2171dbf3fe4 diff --git a/vendor/grammars/sublime-text-ox b/vendor/grammars/sublime-text-ox index 10ca8836..ed96fb6a 160000 --- a/vendor/grammars/sublime-text-ox +++ b/vendor/grammars/sublime-text-ox @@ -1 +1 @@ -Subproject commit 10ca88362c6e4853744fc6b17ed06cc45dc033fa +Subproject commit ed96fb6afc0321c7d3ce219d69b56c591f0938a0 From a63a609ce1718d52628fc8b53097c8c25929b19f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 4 Jul 2015 10:36:45 +0100 Subject: [PATCH 551/875] v4.5.8 release --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 937b66c7..c63b24c0 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.7" + VERSION = "4.5.8" end From 19d76306d3ab9c83e03f1eefb6cec913d14ef673 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 4 Jul 2015 12:33:41 +0200 Subject: [PATCH 552/875] Remove incorrect samples --- samples/G-code/lm.g | 25912 ------------------------------------ samples/G-code/rm.g | 29735 ------------------------------------------ 2 files changed, 55647 deletions(-) delete mode 100644 samples/G-code/lm.g delete mode 100644 samples/G-code/rm.g diff --git a/samples/G-code/lm.g b/samples/G-code/lm.g deleted file mode 100644 index 4b60a136..00000000 --- a/samples/G-code/lm.g +++ /dev/null @@ -1,25912 +0,0 @@ -48 36266 43 38 - 0 0.259 - 1 0.00232 - 2 0.0392 - 3 0.0317 - 4 0.141 - 6 0.000138 - 7 0.0468 - 8 0.036 - 9 0.0021 - 10 0.00146 - 13 0.0395 - 14 0.0443 - 15 0.00874 - 16 0.000331 - 18 0.013 - 19 0.0104 - 20 0.0106 - 21 0.121 - 22 0.0148 - 23 0.00816 - 24 0.000772 - 25 0.000165 - 26 0.004 - 28 0.0217 - 29 0.0184 - 30 0.00976 - 31 0.0173 - 32 0.00767 - 33 0.0122 - 34 5.51e-05 - 35 5.51e-05 - 36 0.000276 - 37 0.000551 - 38 2.76e-05 - 39 0.00645 - 40 0.000138 - 41 0.0352 - 42 0.00447 - 43 0.000221 - 44 0.00149 - 45 0.0171 - 46 0.00105 - 47 0.0106 - - 0 4 3 0 - 2 0.25 - 13 0.5 - 19 0.25 - - 2 619 18 15 - 0 0.00323 - 3 0.00808 - 4 0.00808 - 7 0.00162 - 8 0.784 - 9 0.042 - 10 0.00646 - 13 0.0517 - 14 0.00323 - 15 0.00969 - 20 0.00162 - 28 0.00162 - 29 0.00162 - 30 0.00485 - 31 0.0307 - 41 0.0178 - 42 0.00969 - 46 0.0145 - - 3 1 1 0 - 3 1 - - 4 1 1 0 - 4 1 - - 8 526 12 0 - 4 0.0076 - 7 0.0019 - 8 0.901 - 10 0.0019 - 13 0.0342 - 15 0.0019 - 29 0.0019 - 30 0.0057 - 31 0.019 - 41 0.0114 - 42 0.00951 - 46 0.0038 - - 9 37 5 0 - 3 0.027 - 8 0.162 - 9 0.703 - 41 0.0811 - 42 0.027 - - 10 3 1 0 - 10 1 - - 13 15 4 0 - 3 0.0667 - 13 0.8 - 14 0.0667 - 41 0.0667 - - 14 1 1 0 - 14 1 - - 15 5 1 0 - 15 1 - - 20 1 1 0 - 20 1 - - 21 5 3 0 - 0 0.2 - 8 0.6 - 41 0.2 - - 28 1 1 0 - 28 1 - - 31 10 2 0 - 13 0.1 - 31 0.9 - - 39 1 1 0 - 3 1 - - 45 7 1 0 - 46 1 - - 48 2 2 0 - 0 0.5 - 3 0.5 - - 3 1036 24 8 - 0 0.00869 - 2 0.00965 - 3 0.0425 - 4 0.496 - 7 0.0734 - 8 0.0502 - 9 0.000965 - 13 0.00579 - 14 0.000965 - 15 0.029 - 18 0.0463 - 20 0.0299 - 24 0.000965 - 26 0.000965 - 28 0.00579 - 30 0.00483 - 31 0.0029 - 32 0.00193 - 33 0.0029 - 38 0.000965 - 39 0.166 - 41 0.0154 - 42 0.0029 - 45 0.000965 - - 2 4 4 0 - 7 0.25 - 13 0.25 - 28 0.25 - 39 0.25 - - 3 39 6 0 - 4 0.128 - 7 0.385 - 8 0.0256 - 18 0.0769 - 32 0.0256 - 39 0.359 - - 8 34 10 0 - 0 0.0294 - 2 0.0882 - 3 0.0294 - 4 0.5 - 8 0.0882 - 18 0.0294 - 20 0.0882 - 28 0.0294 - 32 0.0294 - 39 0.0882 - - 9 2 2 0 - 0 0.5 - 13 0.5 - - 13 769 21 0 - 0 0.0065 - 2 0.0065 - 3 0.0325 - 4 0.635 - 7 0.078 - 8 0.0611 - 9 0.0013 - 13 0.0026 - 14 0.0013 - 15 0.0351 - 18 0.0572 - 20 0.0364 - 24 0.0013 - 26 0.0013 - 28 0.0052 - 30 0.0065 - 31 0.0039 - 33 0.0039 - 41 0.0195 - 42 0.0039 - 45 0.0013 - - 14 2 2 0 - 2 0.5 - 41 0.5 - - 41 1 1 0 - 13 1 - - 47 184 9 0 - 0 0.0109 - 2 0.00543 - 3 0.0978 - 4 0.0163 - 8 0.00543 - 13 0.00543 - 15 0.0163 - 38 0.00543 - 39 0.837 - - 4 59 13 4 - 0 0.305 - 2 0.0847 - 7 0.186 - 10 0.0169 - 13 0.0678 - 21 0.0339 - 28 0.0678 - 29 0.0678 - 30 0.0169 - 31 0.0339 - 41 0.0508 - 42 0.0169 - 47 0.0508 - - 2 5 2 0 - 0 0.2 - 7 0.8 - - 21 4 2 0 - 0 0.75 - 31 0.25 - - 47 8 5 0 - 2 0.375 - 7 0.25 - 10 0.125 - 29 0.125 - 47 0.125 - - 48 3 3 0 - 0 0.333 - 41 0.333 - 42 0.333 - - 6 14 7 1 - 4 0.143 - 6 0.357 - 7 0.143 - 13 0.0714 - 20 0.0714 - 40 0.0714 - 45 0.143 - - 6 5 3 0 - 4 0.4 - 7 0.4 - 20 0.2 - - 7 72 19 3 - 0 0.222 - 2 0.0139 - 3 0.0278 - 7 0.0278 - 8 0.0278 - 9 0.0139 - 13 0.0694 - 14 0.0833 - 15 0.0278 - 21 0.153 - 22 0.0139 - 28 0.0278 - 29 0.0417 - 30 0.0139 - 31 0.0833 - 33 0.0278 - 41 0.0694 - 42 0.0278 - 47 0.0278 - - 8 21 10 0 - 0 0.0952 - 9 0.0476 - 13 0.0476 - 14 0.0476 - 21 0.286 - 22 0.0476 - 28 0.0476 - 31 0.19 - 33 0.0476 - 41 0.143 - - 13 5 5 0 - 3 0.2 - 7 0.2 - 13 0.2 - 42 0.2 - 47 0.2 - - 21 6 5 0 - 0 0.333 - 8 0.167 - 14 0.167 - 29 0.167 - 41 0.167 - - 8 10450 37 10 - 0 0.257 - 1 0.0022 - 2 0.0624 - 3 0.00545 - 4 0.0268 - 7 0.0371 - 8 0.0275 - 9 0.00191 - 10 0.00383 - 13 0.0362 - 14 0.0615 - 15 0.00766 - 16 0.000287 - 18 0.00287 - 19 0.00957 - 20 0.00268 - 21 0.235 - 22 0.0462 - 23 0.0262 - 24 0.000287 - 26 0.00373 - 28 0.0187 - 29 0.0162 - 30 0.00612 - 31 0.0156 - 32 0.00689 - 33 0.0111 - 37 0.000574 - 39 0.00593 - 40 0.000191 - 41 0.0333 - 42 0.00201 - 43 9.57e-05 - 44 0.000383 - 45 0.0185 - 46 0.000957 - 47 0.00785 - - 2 485 30 0 - 0 0.103 - 2 0.0206 - 3 0.00412 - 4 0.181 - 7 0.146 - 8 0.0701 - 9 0.00412 - 13 0.00619 - 14 0.00206 - 15 0.00825 - 18 0.0247 - 19 0.00206 - 20 0.0309 - 21 0.0577 - 22 0.0186 - 23 0.0144 - 24 0.00206 - 26 0.0165 - 28 0.0227 - 29 0.0124 - 30 0.0206 - 31 0.00619 - 32 0.00412 - 33 0.0144 - 40 0.00206 - 41 0.126 - 42 0.00825 - 45 0.0454 - 46 0.00206 - 47 0.0227 - - 8 227 22 0 - 0 0.0308 - 2 0.0837 - 3 0.0176 - 4 0.348 - 7 0.185 - 8 0.0617 - 10 0.00881 - 18 0.0176 - 19 0.00441 - 20 0.0352 - 23 0.00441 - 26 0.022 - 28 0.00441 - 29 0.0264 - 30 0.0132 - 31 0.00441 - 32 0.00441 - 33 0.00441 - 41 0.0264 - 42 0.00441 - 46 0.00441 - 47 0.0881 - - 9 9 5 0 - 0 0.222 - 2 0.111 - 4 0.444 - 20 0.111 - 28 0.111 - - 10 12 2 0 - 4 0.5 - 18 0.5 - - 23 4 1 0 - 4 1 - - 26 11 6 0 - 0 0.0909 - 4 0.273 - 7 0.364 - 29 0.0909 - 41 0.0909 - 45 0.0909 - - 41 91 20 0 - 0 0.0879 - 2 0.022 - 3 0.011 - 4 0.187 - 7 0.231 - 8 0.022 - 15 0.011 - 18 0.011 - 20 0.011 - 21 0.033 - 22 0.022 - 23 0.022 - 28 0.011 - 29 0.011 - 30 0.011 - 31 0.011 - 41 0.143 - 42 0.022 - 45 0.0879 - 47 0.033 - - 42 4 3 0 - 4 0.5 - 7 0.25 - 21 0.25 - - 46 9 1 0 - 45 1 - - 47 9595 37 0 - 0 0.272 - 1 0.0024 - 2 0.0646 - 3 0.00521 - 4 0.00803 - 7 0.0258 - 8 0.0247 - 9 0.00188 - 10 0.00396 - 13 0.0391 - 14 0.0669 - 15 0.00782 - 16 0.000313 - 18 0.00073 - 19 0.0102 - 20 0.000313 - 21 0.252 - 22 0.0492 - 23 0.0275 - 24 0.000208 - 26 0.00271 - 28 0.0189 - 29 0.0162 - 30 0.00521 - 31 0.0165 - 32 0.00719 - 33 0.0113 - 37 0.000625 - 39 0.00646 - 40 0.000104 - 41 0.0278 - 42 0.00146 - 43 0.000104 - 44 0.000417 - 45 0.0158 - 46 0.000834 - 47 0.005 - - 9 882 28 4 - 0 0.22 - 1 0.00227 - 2 0.0737 - 3 0.0317 - 4 0.0249 - 7 0.0181 - 8 0.0159 - 13 0.0964 - 14 0.0351 - 15 0.00227 - 18 0.00113 - 19 0.0204 - 20 0.00113 - 21 0.339 - 22 0.00113 - 24 0.00113 - 26 0.00227 - 28 0.0147 - 29 0.0238 - 30 0.017 - 31 0.0068 - 32 0.00907 - 33 0.0102 - 34 0.00113 - 41 0.017 - 42 0.00113 - 45 0.00794 - 47 0.00454 - - 2 26 16 0 - 0 0.0769 - 1 0.0385 - 4 0.0385 - 7 0.0385 - 13 0.0385 - 14 0.115 - 19 0.0385 - 21 0.0385 - 28 0.115 - 29 0.0385 - 30 0.0769 - 32 0.0385 - 33 0.0385 - 41 0.154 - 45 0.0769 - 47 0.0385 - - 8 15 7 0 - 4 0.2 - 7 0.4 - 8 0.0667 - 13 0.0667 - 20 0.0667 - 28 0.0667 - 30 0.133 - - 41 7 7 0 - 0 0.143 - 2 0.143 - 4 0.143 - 7 0.143 - 14 0.143 - 28 0.143 - 32 0.143 - - 47 829 27 0 - 0 0.23 - 1 0.00121 - 2 0.0772 - 3 0.0338 - 4 0.0169 - 7 0.00965 - 8 0.0157 - 13 0.1 - 14 0.0326 - 15 0.00241 - 18 0.00121 - 19 0.0193 - 21 0.359 - 22 0.00121 - 24 0.00121 - 26 0.00241 - 28 0.00844 - 29 0.0241 - 30 0.0133 - 31 0.00724 - 32 0.00724 - 33 0.00965 - 34 0.00121 - 41 0.0133 - 42 0.00121 - 45 0.00603 - 47 0.00362 - - 10 101 11 2 - 0 0.0495 - 2 0.0495 - 4 0.277 - 7 0.119 - 8 0.119 - 18 0.158 - 20 0.0792 - 21 0.119 - 29 0.0099 - 42 0.0099 - 46 0.0099 - - 8 29 4 0 - 2 0.0345 - 4 0.552 - 18 0.241 - 20 0.172 - - 47 68 11 0 - 0 0.0735 - 2 0.0588 - 4 0.162 - 7 0.176 - 8 0.176 - 18 0.103 - 20 0.0294 - 21 0.176 - 29 0.0147 - 42 0.0147 - 46 0.0147 - - 13 1069 25 11 - 0 0.0131 - 2 0.0215 - 3 0.836 - 4 0.0187 - 7 0.0159 - 8 0.00935 - 9 0.00187 - 10 0.000935 - 13 0.0337 - 14 0.00281 - 15 0.00468 - 18 0.00281 - 20 0.00468 - 21 0.00468 - 22 0.000935 - 25 0.000935 - 26 0.00187 - 28 0.00374 - 29 0.00187 - 30 0.00281 - 31 0.00468 - 33 0.000935 - 41 0.00655 - 45 0.00281 - 47 0.00187 - - 2 32 12 0 - 2 0.0938 - 4 0.219 - 7 0.125 - 8 0.0938 - 15 0.0625 - 18 0.0312 - 20 0.0938 - 28 0.0312 - 30 0.0625 - 31 0.0625 - 33 0.0312 - 41 0.0938 - - 3 3 3 0 - 4 0.333 - 26 0.333 - 41 0.333 - - 8 23 10 0 - 0 0.304 - 2 0.13 - 3 0.0435 - 4 0.087 - 8 0.0435 - 13 0.13 - 21 0.13 - 41 0.0435 - 45 0.0435 - 47 0.0435 - - 9 4 2 0 - 0 0.25 - 4 0.75 - - 13 11 5 0 - 3 0.364 - 4 0.0909 - 7 0.182 - 8 0.273 - 26 0.0909 - - 21 1 1 0 - 25 1 - - 29 5 3 0 - 3 0.4 - 4 0.2 - 13 0.4 - - 31 13 6 0 - 0 0.154 - 3 0.308 - 4 0.154 - 7 0.0769 - 13 0.231 - 21 0.0769 - - 41 5 3 0 - 7 0.4 - 8 0.2 - 20 0.4 - - 42 2 2 0 - 18 0.5 - 47 0.5 - - 47 967 20 0 - 0 0.00414 - 2 0.0165 - 3 0.913 - 4 0.00207 - 7 0.00724 - 8 0.00207 - 9 0.00207 - 10 0.00103 - 13 0.029 - 14 0.0031 - 15 0.0031 - 18 0.00103 - 21 0.00103 - 22 0.00103 - 28 0.0031 - 29 0.00207 - 30 0.00103 - 31 0.0031 - 41 0.00207 - 45 0.00207 - - 14 13 7 0 - 2 0.0769 - 3 0.538 - 4 0.0769 - 14 0.0769 - 33 0.0769 - 42 0.0769 - 47 0.0769 - - 15 172 19 7 - 0 0.0174 - 2 0.064 - 3 0.0116 - 4 0.279 - 7 0.157 - 8 0.0291 - 15 0.198 - 18 0.0174 - 20 0.0116 - 26 0.00581 - 28 0.0116 - 31 0.0174 - 33 0.0116 - 41 0.0465 - 42 0.00581 - 43 0.00581 - 44 0.00581 - 45 0.0116 - 47 0.093 - - 2 6 4 0 - 4 0.5 - 7 0.167 - 8 0.167 - 41 0.167 - - 3 4 2 0 - 4 0.5 - 20 0.5 - - 8 54 11 0 - 0 0.0185 - 4 0.37 - 7 0.278 - 8 0.037 - 15 0.0185 - 18 0.037 - 26 0.0185 - 33 0.0185 - 41 0.0556 - 45 0.0185 - 47 0.13 - - 13 3 3 0 - 3 0.333 - 8 0.333 - 15 0.333 - - 15 30 10 0 - 2 0.1 - 3 0.0333 - 4 0.433 - 7 0.133 - 8 0.0333 - 15 0.0667 - 28 0.0333 - 33 0.0333 - 45 0.0333 - 47 0.1 - - 41 35 8 0 - 2 0.0286 - 4 0.286 - 7 0.143 - 15 0.286 - 18 0.0286 - 28 0.0286 - 41 0.0857 - 47 0.114 - - 47 39 10 0 - 0 0.0513 - 2 0.179 - 7 0.0513 - 15 0.487 - 31 0.0769 - 41 0.0256 - 42 0.0256 - 43 0.0256 - 44 0.0256 - 47 0.0513 - - 20 2 2 0 - 2 0.5 - 7 0.5 - - 21 3162 36 12 - 0 0.285 - 1 0.00316 - 2 0.038 - 3 0.00506 - 4 0.189 - 7 0.0664 - 8 0.00538 - 9 0.000633 - 13 0.0417 - 14 0.0237 - 15 0.00253 - 16 0.000316 - 18 0.0104 - 19 0.012 - 20 0.012 - 21 0.0904 - 22 0.00285 - 23 0.0038 - 24 0.00158 - 25 0.000316 - 26 0.00633 - 28 0.0266 - 29 0.0256 - 30 0.0139 - 31 0.0202 - 32 0.013 - 33 0.0164 - 35 0.000316 - 37 0.00158 - 41 0.0332 - 42 0.00506 - 43 0.000633 - 44 0.00127 - 45 0.031 - 46 0.000316 - 47 0.0104 - - 7 3 3 0 - 2 0.333 - 13 0.333 - 24 0.333 - - 8 1970 32 0 - 0 0.342 - 1 0.00305 - 2 0.0396 - 3 0.00457 - 4 0.177 - 7 0.0503 - 8 0.00508 - 9 0.000508 - 13 0.0315 - 14 0.0107 - 15 0.00152 - 18 0.00812 - 19 0.0142 - 20 0.00914 - 21 0.0985 - 22 0.00254 - 23 0.00254 - 24 0.00152 - 26 0.00558 - 28 0.0223 - 29 0.0198 - 30 0.0117 - 31 0.0173 - 32 0.0107 - 33 0.0183 - 37 0.00254 - 41 0.0294 - 42 0.00508 - 43 0.00102 - 44 0.00152 - 45 0.0421 - 47 0.0102 - - 9 279 22 0 - 0 0.305 - 1 0.00358 - 2 0.0287 - 3 0.00358 - 4 0.219 - 7 0.0645 - 13 0.0287 - 14 0.0179 - 19 0.00717 - 21 0.0358 - 26 0.0108 - 28 0.0538 - 29 0.0538 - 30 0.0323 - 31 0.0215 - 32 0.0251 - 33 0.0179 - 41 0.0394 - 42 0.0108 - 45 0.00717 - 46 0.00358 - 47 0.0108 - - 10 12 3 0 - 2 0.0833 - 4 0.667 - 18 0.25 - - 13 2 1 0 - 21 1 - - 21 123 19 0 - 0 0.358 - 1 0.00813 - 2 0.0732 - 4 0.0244 - 7 0.0325 - 13 0.0407 - 14 0.0976 - 15 0.00813 - 20 0.00813 - 21 0.0732 - 28 0.0244 - 29 0.0163 - 31 0.0488 - 32 0.0244 - 35 0.00813 - 41 0.0732 - 42 0.0244 - 45 0.0407 - 47 0.0163 - - 22 35 12 0 - 0 0.4 - 2 0.114 - 4 0.143 - 7 0.0286 - 13 0.0571 - 19 0.0286 - 21 0.0286 - 28 0.0571 - 29 0.0286 - 30 0.0286 - 32 0.0286 - 41 0.0571 - - 23 2 1 0 - 47 1 - - 31 380 26 0 - 0 0.1 - 2 0.0316 - 3 0.0158 - 4 0.395 - 7 0.168 - 8 0.0105 - 9 0.00263 - 13 0.0132 - 14 0.00263 - 18 0.0289 - 20 0.05 - 21 0.0368 - 22 0.00526 - 23 0.0132 - 25 0.00263 - 26 0.0132 - 28 0.0184 - 29 0.0184 - 30 0.00526 - 31 0.00526 - 32 0.00526 - 33 0.0105 - 41 0.0211 - 44 0.00263 - 45 0.0105 - 47 0.0132 - - 41 5 4 0 - 0 0.4 - 4 0.2 - 31 0.2 - 45 0.2 - - 45 6 5 0 - 0 0.167 - 4 0.167 - 7 0.333 - 19 0.167 - 45 0.167 - - 47 339 26 0 - 0 0.112 - 1 0.0059 - 2 0.0206 - 4 0.056 - 7 0.0649 - 8 0.00885 - 13 0.145 - 14 0.106 - 15 0.0118 - 16 0.00295 - 18 0.00885 - 19 0.0177 - 21 0.165 - 22 0.0059 - 23 0.0059 - 24 0.00295 - 26 0.00295 - 28 0.0383 - 29 0.0501 - 30 0.0265 - 31 0.0442 - 32 0.0206 - 33 0.0206 - 41 0.0472 - 45 0.0059 - 47 0.00295 - - 22 504 23 6 - 0 0.246 - 2 0.0417 - 3 0.00198 - 4 0.188 - 7 0.0258 - 13 0.0516 - 14 0.0675 - 15 0.00992 - 18 0.00397 - 19 0.0298 - 20 0.00198 - 21 0.101 - 24 0.00198 - 26 0.00595 - 28 0.0417 - 29 0.0218 - 30 0.0357 - 31 0.0198 - 32 0.00397 - 33 0.0159 - 41 0.0397 - 45 0.0179 - 47 0.0258 - - 8 431 21 0 - 0 0.262 - 2 0.0464 - 4 0.213 - 7 0.0255 - 13 0.0441 - 14 0.0534 - 15 0.00464 - 18 0.00464 - 19 0.0255 - 21 0.111 - 24 0.00232 - 26 0.00696 - 28 0.0394 - 29 0.0116 - 30 0.0302 - 31 0.0186 - 32 0.00464 - 33 0.0139 - 41 0.0418 - 45 0.0162 - 47 0.0232 - - 21 5 5 0 - 2 0.2 - 7 0.2 - 14 0.2 - 30 0.2 - 41 0.2 - - 30 3 2 0 - 0 0.667 - 7 0.333 - - 31 18 8 0 - 0 0.389 - 14 0.111 - 15 0.167 - 20 0.0556 - 29 0.111 - 33 0.0556 - 41 0.0556 - 45 0.0556 - - 45 3 2 0 - 4 0.667 - 30 0.333 - - 47 42 13 0 - 0 0.0476 - 3 0.0238 - 13 0.167 - 14 0.19 - 19 0.0952 - 21 0.0714 - 28 0.0714 - 29 0.0952 - 30 0.0714 - 31 0.0476 - 33 0.0238 - 45 0.0238 - 47 0.0714 - - 23 292 18 1 - 0 0.0651 - 2 0.0514 - 3 0.0274 - 4 0.634 - 8 0.0171 - 13 0.0103 - 14 0.00342 - 15 0.00342 - 18 0.0548 - 19 0.00342 - 20 0.0548 - 21 0.0171 - 28 0.00342 - 31 0.00342 - 32 0.00342 - 41 0.0205 - 42 0.00342 - 47 0.024 - - 21 11 4 0 - 2 0.0909 - 4 0.727 - 31 0.0909 - 41 0.0909 - - 24 7 2 0 - 0 0.857 - 21 0.143 - - 26 11 1 0 - 8 1 - - 28 10 7 0 - 2 0.1 - 15 0.1 - 19 0.1 - 21 0.1 - 26 0.3 - 28 0.2 - 45 0.1 - - 29 10 4 0 - 2 0.2 - 13 0.6 - 21 0.1 - 32 0.1 - - 30 47 15 1 - 0 0.447 - 2 0.0213 - 4 0.0426 - 7 0.0213 - 10 0.0213 - 13 0.0426 - 14 0.0213 - 21 0.106 - 22 0.0638 - 28 0.0213 - 31 0.0426 - 32 0.0213 - 41 0.0426 - 45 0.0426 - 47 0.0426 - - 2 3 2 0 - 4 0.667 - 7 0.333 - - 31 750 26 3 - 0 0.145 - 1 0.00133 - 2 0.0187 - 3 0.00267 - 4 0.0187 - 7 0.00933 - 8 0.00267 - 9 0.00133 - 13 0.0373 - 14 0.04 - 15 0.00133 - 19 0.00533 - 20 0.00133 - 21 0.583 - 22 0.028 - 23 0.0107 - 25 0.00133 - 28 0.0187 - 29 0.016 - 30 0.004 - 31 0.004 - 32 0.004 - 33 0.0147 - 41 0.00667 - 45 0.00933 - 47 0.0147 - - 2 19 10 0 - 2 0.0526 - 4 0.211 - 7 0.0526 - 8 0.105 - 14 0.0526 - 15 0.0526 - 21 0.105 - 22 0.0526 - 41 0.0526 - 47 0.263 - - 41 2 2 0 - 4 0.5 - 41 0.5 - - 47 728 24 0 - 0 0.15 - 1 0.00137 - 2 0.0179 - 3 0.00275 - 4 0.0124 - 7 0.00824 - 9 0.00137 - 13 0.0385 - 14 0.0398 - 19 0.00549 - 20 0.00137 - 21 0.598 - 22 0.0275 - 23 0.011 - 25 0.00137 - 28 0.0192 - 29 0.0151 - 30 0.00412 - 31 0.00412 - 32 0.00412 - 33 0.0151 - 41 0.00412 - 45 0.00962 - 47 0.00824 - - 32 2 1 0 - 14 1 - - 37 1 1 0 - 47 1 - - 39 235 16 2 - 2 0.017 - 4 0.66 - 7 0.034 - 8 0.0809 - 9 0.0128 - 13 0.00426 - 18 0.0468 - 20 0.0426 - 28 0.017 - 29 0.00851 - 30 0.00426 - 31 0.0128 - 36 0.0128 - 41 0.034 - 42 0.00851 - 44 0.00426 - - 3 172 15 0 - 2 0.0233 - 4 0.721 - 7 0.0291 - 8 0.0698 - 9 0.00581 - 13 0.00581 - 18 0.0407 - 20 0.0233 - 28 0.0233 - 29 0.0116 - 30 0.00581 - 31 0.0174 - 41 0.00581 - 42 0.0116 - 44 0.00581 - - 8 62 8 0 - 4 0.484 - 7 0.0484 - 8 0.113 - 9 0.0323 - 18 0.0645 - 20 0.0968 - 36 0.0484 - 41 0.113 - - 41 151 10 6 - 2 0.00662 - 3 0.00662 - 8 0.603 - 9 0.0464 - 13 0.0331 - 14 0.00662 - 15 0.232 - 21 0.0464 - 31 0.0132 - 42 0.00662 - - 2 11 4 0 - 8 0.545 - 9 0.273 - 13 0.0909 - 31 0.0909 - - 8 109 4 0 - 8 0.642 - 13 0.0183 - 15 0.321 - 21 0.0183 - - 9 2 1 0 - 9 1 - - 13 4 3 0 - 3 0.25 - 8 0.25 - 13 0.5 - - 21 13 4 0 - 8 0.385 - 9 0.154 - 14 0.0769 - 21 0.385 - - 49 1 1 0 - 2 1 - - 42 10 6 0 - 7 0.1 - 8 0.4 - 9 0.1 - 13 0.2 - 15 0.1 - 46 0.1 - - 45 91 17 2 - 0 0.473 - 1 0.011 - 2 0.0989 - 3 0.011 - 4 0.044 - 7 0.0879 - 8 0.033 - 9 0.011 - 13 0.0549 - 14 0.011 - 18 0.011 - 19 0.011 - 21 0.0769 - 22 0.033 - 28 0.011 - 30 0.011 - 31 0.011 - - 21 18 5 0 - 0 0.722 - 2 0.0556 - 4 0.0556 - 7 0.0556 - 21 0.111 - - 48 7 3 0 - 0 0.429 - 7 0.143 - 13 0.429 - - 46 13 3 0 - 8 0.692 - 9 0.0769 - 41 0.231 - - 47 14411 40 29 - 0 0.326 - 1 0.00291 - 2 0.0278 - 3 0.005 - 4 0.176 - 7 0.0572 - 8 0.0154 - 9 0.000555 - 10 0.000416 - 13 0.043 - 14 0.0509 - 15 0.00638 - 16 0.000416 - 18 0.0164 - 19 0.0131 - 20 0.0133 - 21 0.0505 - 22 0.000833 - 23 0.000139 - 24 0.000971 - 25 0.000208 - 26 0.00465 - 28 0.0271 - 29 0.0232 - 30 0.0121 - 31 0.021 - 32 0.00965 - 33 0.0153 - 34 6.94e-05 - 35 6.94e-05 - 36 0.000347 - 37 0.000625 - 40 0.000139 - 41 0.0389 - 42 0.00527 - 43 0.000208 - 44 0.0018 - 45 0.0184 - 46 0.000833 - 47 0.0134 - - 0 4 3 0 - 2 0.25 - 13 0.5 - 19 0.25 - - 2 4 3 0 - 0 0.5 - 7 0.25 - 29 0.25 - - 3 814 22 0 - 0 0.0111 - 2 0.0111 - 3 0.00614 - 4 0.63 - 7 0.0934 - 8 0.0639 - 9 0.00123 - 13 0.00369 - 14 0.00123 - 15 0.0319 - 18 0.059 - 20 0.0381 - 24 0.00123 - 26 0.00123 - 28 0.00614 - 30 0.00614 - 31 0.00369 - 32 0.00246 - 33 0.00369 - 41 0.0197 - 42 0.00369 - 45 0.00123 - - 4 55 12 0 - 0 0.327 - 2 0.0727 - 7 0.164 - 13 0.0727 - 21 0.0364 - 28 0.0727 - 29 0.0727 - 30 0.0182 - 31 0.0364 - 41 0.0545 - 42 0.0182 - 47 0.0545 - - 6 8 5 0 - 4 0.25 - 7 0.25 - 20 0.125 - 40 0.125 - 45 0.25 - - 7 60 17 0 - 0 0.267 - 2 0.0167 - 3 0.0333 - 7 0.0333 - 8 0.0333 - 13 0.0833 - 14 0.0833 - 15 0.0333 - 21 0.117 - 28 0.0333 - 29 0.0333 - 30 0.0167 - 31 0.1 - 33 0.0333 - 41 0.0167 - 42 0.0333 - 47 0.0333 - - 8 6320 35 0 - 0 0.424 - 1 0.00364 - 2 0.0198 - 3 0.00301 - 4 0.0399 - 7 0.0562 - 8 0.00918 - 9 0.000316 - 10 0.000949 - 13 0.0546 - 14 0.0835 - 15 0.00411 - 16 0.000475 - 18 0.00475 - 19 0.0158 - 20 0.00443 - 21 0.0685 - 22 0.00127 - 23 0.000158 - 24 0.000475 - 26 0.00459 - 28 0.0309 - 29 0.0267 - 30 0.0101 - 31 0.0258 - 32 0.0114 - 33 0.0184 - 37 0.000633 - 40 0.000158 - 41 0.0375 - 42 0.00301 - 44 0.000475 - 45 0.0209 - 46 0.00111 - 47 0.013 - - 9 432 27 0 - 0 0.449 - 1 0.00463 - 2 0.0648 - 3 0.00926 - 4 0.0394 - 7 0.0347 - 8 0.00231 - 13 0.0509 - 14 0.0417 - 15 0.00463 - 18 0.00231 - 19 0.0417 - 20 0.00231 - 21 0.0255 - 24 0.00231 - 26 0.00231 - 28 0.0278 - 29 0.0486 - 30 0.0347 - 31 0.0139 - 32 0.0185 - 33 0.0208 - 34 0.00231 - 41 0.0301 - 42 0.00231 - 45 0.0139 - 47 0.00926 - - 10 72 9 0 - 0 0.0694 - 2 0.0278 - 4 0.361 - 7 0.167 - 18 0.222 - 20 0.111 - 29 0.0139 - 42 0.0139 - 46 0.0139 - - 13 133 22 0 - 0 0.105 - 2 0.0602 - 3 0.0602 - 4 0.128 - 7 0.0902 - 8 0.0752 - 13 0.18 - 14 0.0226 - 15 0.015 - 18 0.0226 - 20 0.0376 - 21 0.0226 - 25 0.00752 - 26 0.015 - 28 0.0226 - 29 0.015 - 30 0.0226 - 31 0.0376 - 33 0.00752 - 41 0.0226 - 45 0.015 - 47 0.015 - - 14 5 5 0 - 4 0.2 - 14 0.2 - 33 0.2 - 42 0.2 - 47 0.2 - - 15 130 17 0 - 0 0.0231 - 2 0.0462 - 4 0.369 - 7 0.2 - 8 0.0385 - 15 0.0308 - 18 0.0231 - 20 0.0154 - 26 0.00769 - 28 0.0154 - 31 0.0231 - 33 0.0154 - 41 0.0385 - 43 0.00769 - 44 0.00769 - 45 0.0154 - 47 0.123 - - 21 2958 36 0 - 0 0.305 - 1 0.00338 - 2 0.0389 - 3 0.00507 - 4 0.2 - 7 0.069 - 8 0.00541 - 9 0.000338 - 13 0.0433 - 14 0.0237 - 15 0.0027 - 16 0.000338 - 18 0.0112 - 19 0.0128 - 20 0.0128 - 21 0.0541 - 22 0.00101 - 23 0.000338 - 24 0.00169 - 25 0.000338 - 26 0.00676 - 28 0.0284 - 29 0.0274 - 30 0.0145 - 31 0.0213 - 32 0.0139 - 33 0.0176 - 35 0.000338 - 37 0.00169 - 41 0.0311 - 42 0.00541 - 43 0.000338 - 44 0.00135 - 45 0.027 - 46 0.000338 - 47 0.0112 - - 22 451 23 0 - 0 0.275 - 2 0.0466 - 3 0.00222 - 4 0.208 - 7 0.0288 - 13 0.0355 - 14 0.071 - 15 0.0111 - 18 0.00443 - 19 0.0333 - 20 0.00222 - 21 0.0244 - 24 0.00222 - 26 0.00665 - 28 0.0466 - 29 0.0244 - 30 0.0399 - 31 0.0222 - 32 0.00443 - 33 0.0177 - 41 0.0443 - 45 0.02 - 47 0.0288 - - 23 286 18 0 - 0 0.0664 - 2 0.0524 - 3 0.028 - 4 0.647 - 8 0.0035 - 13 0.0105 - 14 0.0035 - 15 0.0035 - 18 0.0559 - 19 0.0035 - 20 0.0559 - 21 0.0105 - 28 0.0035 - 31 0.0035 - 32 0.0035 - 41 0.021 - 42 0.0035 - 47 0.0245 - - 24 7 2 0 - 0 0.857 - 21 0.143 - - 28 9 6 0 - 15 0.111 - 19 0.111 - 21 0.111 - 26 0.333 - 28 0.222 - 45 0.111 - - 29 5 4 0 - 2 0.4 - 13 0.2 - 21 0.2 - 32 0.2 - - 30 38 12 0 - 0 0.553 - 4 0.0526 - 7 0.0263 - 13 0.0263 - 14 0.0263 - 21 0.0789 - 28 0.0263 - 31 0.0526 - 32 0.0263 - 41 0.0526 - 45 0.0263 - 47 0.0526 - - 31 286 25 0 - 0 0.381 - 1 0.0035 - 2 0.0105 - 3 0.00699 - 4 0.042 - 7 0.0245 - 8 0.0035 - 9 0.0035 - 13 0.0385 - 14 0.105 - 15 0.0035 - 19 0.014 - 20 0.0035 - 21 0.119 - 22 0.0035 - 25 0.0035 - 28 0.049 - 29 0.042 - 30 0.0105 - 31 0.0105 - 32 0.0105 - 33 0.0385 - 41 0.014 - 45 0.021 - 47 0.0385 - - 32 2 1 0 - 14 1 - - 39 234 16 0 - 2 0.0128 - 4 0.662 - 7 0.0342 - 8 0.0812 - 9 0.0128 - 13 0.00427 - 18 0.047 - 20 0.0427 - 28 0.0171 - 29 0.00855 - 30 0.00427 - 31 0.0128 - 36 0.0128 - 41 0.0342 - 42 0.00855 - 44 0.00427 - - 44 1 1 0 - 3 1 - - 45 74 15 0 - 0 0.581 - 1 0.0135 - 2 0.027 - 3 0.0135 - 4 0.0541 - 7 0.108 - 8 0.0405 - 13 0.0676 - 14 0.0135 - 18 0.0135 - 19 0.0135 - 21 0.0135 - 28 0.0135 - 30 0.0135 - 31 0.0135 - - 48 753 27 0 - 0 0.493 - 1 0.00531 - 2 0.0372 - 3 0.00133 - 4 0.089 - 7 0.0266 - 8 0.00266 - 13 0.0505 - 14 0.0398 - 15 0.00133 - 18 0.0186 - 19 0.00797 - 20 0.00797 - 21 0.0544 - 24 0.00266 - 26 0.00266 - 28 0.0133 - 29 0.0133 - 30 0.0093 - 31 0.00664 - 32 0.00531 - 33 0.0146 - 41 0.0452 - 42 0.0186 - 45 0.0212 - 46 0.00266 - 47 0.0093 - - 49 148 24 0 - 0 0.412 - 1 0.00676 - 2 0.0405 - 3 0.00676 - 4 0.142 - 7 0.027 - 13 0.00676 - 14 0.0203 - 15 0.0135 - 18 0.0135 - 19 0.00676 - 21 0.0405 - 26 0.00676 - 28 0.0608 - 29 0.0135 - 30 0.00676 - 31 0.0405 - 32 0.0135 - 33 0.0135 - 41 0.0473 - 42 0.00676 - 45 0.0203 - 46 0.00676 - 47 0.027 - - 55 268 22 0 - 0 0.31 - 2 0.0373 - 3 0.00373 - 4 0.00746 - 7 0.0187 - 13 0.0224 - 14 0.0261 - 16 0.00373 - 18 0.00373 - 19 0.00746 - 21 0.0299 - 24 0.00373 - 26 0.0149 - 28 0.0299 - 29 0.056 - 30 0.0261 - 31 0.00746 - 33 0.00746 - 41 0.347 - 42 0.0187 - 45 0.00746 - 47 0.0112 - - 57 3 3 0 - 2 0.333 - 13 0.333 - 41 0.333 - - 60 843 26 0 - 0 0.0119 - 2 0.00949 - 3 0.00356 - 4 0.619 - 7 0.051 - 8 0.0605 - 13 0.00356 - 15 0.013 - 16 0.00119 - 18 0.0652 - 19 0.00119 - 20 0.0522 - 21 0.00237 - 28 0.0142 - 29 0.00119 - 30 0.00593 - 31 0.0225 - 32 0.00237 - 33 0.00119 - 36 0.00237 - 41 0.019 - 42 0.0107 - 43 0.00119 - 44 0.0202 - 45 0.00237 - 47 0.00237 - - 48 771 28 1 - 0 0.481 - 1 0.00519 - 2 0.0389 - 3 0.00259 - 4 0.0908 - 7 0.0259 - 8 0.00259 - 13 0.0493 - 14 0.0389 - 15 0.0013 - 18 0.0182 - 19 0.00778 - 20 0.00778 - 21 0.0584 - 22 0.0013 - 24 0.00259 - 26 0.00259 - 28 0.013 - 29 0.013 - 30 0.00908 - 31 0.00649 - 32 0.00519 - 33 0.0143 - 41 0.0441 - 42 0.0182 - 45 0.0298 - 46 0.00259 - 47 0.00908 - - 8 2 2 0 - 14 0.5 - 29 0.5 - - 49 153 24 9 - 0 0.399 - 1 0.00654 - 2 0.0392 - 3 0.00654 - 4 0.137 - 7 0.0261 - 13 0.00654 - 14 0.0196 - 15 0.0131 - 18 0.0131 - 19 0.00654 - 21 0.0588 - 26 0.00654 - 28 0.0588 - 29 0.0131 - 30 0.00654 - 31 0.0392 - 32 0.0131 - 33 0.0131 - 41 0.0523 - 42 0.00654 - 45 0.0261 - 46 0.00654 - 47 0.0261 - - 4 2 2 0 - 7 0.5 - 47 0.5 - - 8 94 19 0 - 0 0.457 - 1 0.0106 - 2 0.0319 - 4 0.17 - 7 0.0106 - 14 0.0106 - 19 0.0106 - 21 0.0532 - 26 0.0106 - 28 0.0638 - 29 0.0213 - 30 0.0106 - 31 0.0319 - 32 0.0213 - 33 0.0106 - 41 0.0319 - 45 0.0213 - 46 0.0106 - 47 0.0106 - - 9 3 1 0 - 28 1 - - 22 4 4 0 - 2 0.25 - 13 0.25 - 31 0.25 - 47 0.25 - - 30 3 3 0 - 14 0.333 - 18 0.333 - 41 0.333 - - 31 27 11 0 - 0 0.37 - 2 0.037 - 3 0.037 - 4 0.185 - 7 0.0741 - 18 0.037 - 21 0.0741 - 31 0.037 - 33 0.037 - 45 0.0741 - 47 0.037 - - 47 5 5 0 - 0 0.2 - 15 0.2 - 21 0.2 - 31 0.2 - 42 0.2 - - 48 3 3 0 - 0 0.333 - 14 0.333 - 15 0.333 - - 55 2 1 0 - 41 1 - - 50 5 4 0 - 8 0.4 - 13 0.2 - 28 0.2 - 46 0.2 - - 55 276 23 7 - 0 0.301 - 2 0.0362 - 3 0.0109 - 4 0.00725 - 7 0.0181 - 13 0.0217 - 14 0.029 - 16 0.00362 - 18 0.00362 - 19 0.00725 - 21 0.0435 - 24 0.00362 - 26 0.0145 - 28 0.029 - 29 0.0543 - 30 0.0254 - 31 0.00725 - 33 0.00725 - 41 0.337 - 42 0.0181 - 44 0.00362 - 45 0.00725 - 47 0.0109 - - 8 141 15 0 - 0 0.206 - 2 0.0355 - 4 0.00709 - 7 0.0213 - 13 0.0142 - 14 0.00709 - 16 0.00709 - 19 0.0142 - 21 0.0567 - 29 0.00709 - 30 0.0142 - 33 0.00709 - 41 0.582 - 45 0.00709 - 47 0.0142 - - 9 97 15 0 - 0 0.423 - 2 0.0309 - 7 0.0206 - 13 0.0309 - 14 0.0309 - 21 0.0309 - 24 0.0103 - 26 0.0412 - 28 0.0515 - 29 0.144 - 30 0.0412 - 33 0.0103 - 41 0.0722 - 42 0.0515 - 47 0.0103 - - 21 8 6 0 - 0 0.25 - 3 0.125 - 13 0.125 - 14 0.25 - 30 0.125 - 45 0.125 - - 22 12 6 0 - 0 0.333 - 2 0.0833 - 21 0.0833 - 28 0.25 - 31 0.167 - 41 0.0833 - - 47 5 4 0 - 0 0.2 - 3 0.4 - 14 0.2 - 44 0.2 - - 48 1 1 0 - 18 1 - - 55 2 2 0 - 2 0.5 - 4 0.5 - - 57 5 5 0 - 2 0.2 - 9 0.2 - 13 0.2 - 31 0.2 - 41 0.2 - - 58 4 3 0 - 0 0.25 - 2 0.5 - 21 0.25 - - 60 843 26 5 - 0 0.0119 - 2 0.00949 - 3 0.00356 - 4 0.619 - 7 0.051 - 8 0.0605 - 13 0.00356 - 15 0.013 - 16 0.00119 - 18 0.0652 - 19 0.00119 - 20 0.0522 - 21 0.00237 - 28 0.0142 - 29 0.00119 - 30 0.00593 - 31 0.0225 - 32 0.00237 - 33 0.00119 - 36 0.00237 - 41 0.019 - 42 0.0107 - 43 0.00119 - 44 0.0202 - 45 0.00237 - 47 0.00237 - - 9 7 5 0 - 0 0.286 - 15 0.143 - 28 0.286 - 41 0.143 - 45 0.143 - - 13 117 18 0 - 0 0.0256 - 2 0.00855 - 4 0.282 - 7 0.308 - 8 0.00855 - 13 0.00855 - 15 0.0855 - 16 0.00855 - 18 0.0427 - 20 0.0598 - 21 0.00855 - 28 0.0256 - 29 0.00855 - 31 0.0171 - 32 0.00855 - 36 0.00855 - 41 0.0342 - 42 0.0513 - - 14 5 4 0 - 4 0.4 - 18 0.2 - 30 0.2 - 43 0.2 - - 21 4 3 0 - 0 0.5 - 21 0.25 - 28 0.25 - - 47 702 21 0 - 0 0.00285 - 2 0.00997 - 3 0.00427 - 4 0.689 - 7 0.00997 - 8 0.0712 - 13 0.00285 - 18 0.0698 - 19 0.00142 - 20 0.0513 - 28 0.00712 - 30 0.0057 - 31 0.0242 - 32 0.00142 - 33 0.00142 - 36 0.00142 - 41 0.0128 - 42 0.00427 - 44 0.0242 - 45 0.00142 - 47 0.00285 - - 64 4 2 0 - 9 0.25 - 13 0.75 - -49 42427 42 32 - 0 0.124 - 1 0.000896 - 2 0.0365 - 3 0.00983 - 4 0.00596 - 5 0.00099 - 6 0.000165 - 7 0.0272 - 8 0.00695 - 9 0.00104 - 10 0.000754 - 12 0.0316 - 13 0.111 - 14 0.0815 - 15 0.04 - 16 0.00189 - 17 9.43e-05 - 18 0.000707 - 19 0.0424 - 20 4.71e-05 - 21 0.054 - 22 0.00429 - 23 0.00099 - 24 0.00568 - 26 0.00653 - 28 0.0383 - 29 0.0368 - 30 0.025 - 31 0.0372 - 32 0.0107 - 33 0.0115 - 34 0.00938 - 35 0.00481 - 37 0.00033 - 40 9.43e-05 - 41 0.112 - 42 0.0079 - 43 0.000754 - 44 0.00113 - 45 0.00988 - 46 0.00189 - 47 0.0968 - - 2 138 19 10 - 2 0.0145 - 3 0.0145 - 4 0.0725 - 7 0.087 - 8 0.029 - 9 0.0145 - 10 0.00725 - 13 0.029 - 14 0.00725 - 19 0.00725 - 21 0.536 - 22 0.0725 - 24 0.00725 - 26 0.00725 - 31 0.00725 - 41 0.0435 - 45 0.00725 - 46 0.00725 - 47 0.029 - - 2 2 2 0 - 2 0.5 - 3 0.5 - - 7 9 1 0 - 7 1 - - 8 5 2 0 - 7 0.6 - 8 0.4 - - 9 2 1 0 - 9 1 - - 10 1 1 0 - 10 1 - - 13 3 2 0 - 4 0.333 - 13 0.667 - - 21 82 7 0 - 8 0.0122 - 13 0.0122 - 21 0.878 - 22 0.0122 - 26 0.0122 - 41 0.061 - 47 0.0122 - - 22 10 2 0 - 14 0.1 - 22 0.9 - - 24 1 1 0 - 24 1 - - 47 20 10 0 - 2 0.05 - 4 0.45 - 8 0.05 - 13 0.05 - 19 0.05 - 21 0.05 - 31 0.05 - 45 0.05 - 46 0.05 - 47 0.15 - - 3 35 11 3 - 2 0.0286 - 4 0.0286 - 7 0.0286 - 14 0.114 - 16 0.0286 - 26 0.371 - 28 0.0286 - 29 0.114 - 30 0.0286 - 31 0.0286 - 41 0.2 - - 13 3 3 0 - 4 0.333 - 26 0.333 - 28 0.333 - - 26 10 4 0 - 7 0.1 - 14 0.1 - 29 0.1 - 41 0.7 - - 47 20 6 0 - 2 0.05 - 14 0.15 - 26 0.55 - 29 0.15 - 30 0.05 - 31 0.05 - - 4 146 26 8 - 0 0.151 - 1 0.00685 - 2 0.00685 - 3 0.0274 - 4 0.00685 - 7 0.349 - 8 0.0205 - 12 0.00685 - 13 0.0342 - 14 0.0616 - 15 0.0137 - 17 0.0274 - 19 0.0205 - 21 0.0479 - 26 0.00685 - 28 0.0342 - 29 0.0137 - 30 0.0205 - 31 0.0342 - 33 0.00685 - 34 0.00685 - 41 0.0274 - 42 0.0137 - 44 0.00685 - 45 0.0274 - 47 0.0205 - - 2 10 6 0 - 0 0.5 - 1 0.1 - 15 0.1 - 21 0.1 - 26 0.1 - 31 0.1 - - 7 9 8 0 - 8 0.111 - 13 0.222 - 15 0.111 - 21 0.111 - 29 0.111 - 31 0.111 - 45 0.111 - 47 0.111 - - 8 4 3 0 - 8 0.25 - 17 0.5 - 45 0.25 - - 9 4 3 0 - 0 0.5 - 13 0.25 - 31 0.25 - - 13 9 7 0 - 3 0.111 - 7 0.111 - 8 0.111 - 12 0.111 - 19 0.222 - 41 0.222 - 45 0.111 - - 21 17 10 0 - 0 0.294 - 7 0.0588 - 13 0.0588 - 14 0.0588 - 21 0.176 - 29 0.0588 - 30 0.0588 - 41 0.0588 - 42 0.118 - 45 0.0588 - - 22 14 6 0 - 0 0.429 - 17 0.143 - 28 0.214 - 31 0.0714 - 33 0.0714 - 47 0.0714 - - 47 77 16 0 - 0 0.0519 - 2 0.013 - 3 0.039 - 4 0.013 - 7 0.636 - 13 0.013 - 14 0.0909 - 19 0.013 - 21 0.026 - 28 0.013 - 30 0.026 - 31 0.013 - 34 0.013 - 41 0.013 - 44 0.013 - 47 0.013 - - 5 2 2 0 - 7 0.5 - 14 0.5 - - 6 14 7 2 - 2 0.0714 - 6 0.5 - 13 0.0714 - 21 0.0714 - 41 0.143 - 42 0.0714 - 45 0.0714 - - 6 7 6 0 - 2 0.143 - 13 0.143 - 21 0.143 - 41 0.286 - 42 0.143 - 45 0.143 - - 47 7 1 0 - 6 1 - - 7 947 30 7 - 0 0.103 - 2 0.0454 - 3 0.00528 - 4 0.0127 - 7 0.0275 - 8 0.0158 - 9 0.0116 - 12 0.00422 - 13 0.13 - 14 0.106 - 15 0.0106 - 19 0.0106 - 21 0.0232 - 22 0.0422 - 23 0.00106 - 24 0.00528 - 28 0.0465 - 29 0.0232 - 30 0.0338 - 31 0.038 - 32 0.0106 - 33 0.0095 - 34 0.00106 - 35 0.00106 - 41 0.229 - 42 0.0106 - 44 0.00106 - 45 0.00317 - 46 0.00317 - 47 0.0348 - - 2 12 7 0 - 2 0.0833 - 21 0.0833 - 28 0.167 - 30 0.25 - 32 0.0833 - 33 0.167 - 47 0.167 - - 4 49 14 0 - 4 0.0408 - 7 0.0204 - 8 0.0612 - 12 0.0204 - 13 0.286 - 14 0.102 - 15 0.0408 - 19 0.0408 - 21 0.0816 - 24 0.0408 - 28 0.102 - 31 0.102 - 41 0.0408 - 47 0.0204 - - 8 3 3 0 - 9 0.333 - 14 0.333 - 47 0.333 - - 10 127 17 0 - 0 0.0551 - 2 0.134 - 3 0.00787 - 7 0.165 - 8 0.0157 - 12 0.0157 - 13 0.00787 - 14 0.0394 - 15 0.00787 - 21 0.0315 - 28 0.0709 - 30 0.0236 - 31 0.0157 - 34 0.00787 - 41 0.299 - 42 0.0394 - 47 0.063 - - 13 5 3 0 - 0 0.4 - 13 0.2 - 31 0.4 - - 21 75 20 0 - 0 0.107 - 2 0.0133 - 4 0.0267 - 7 0.0133 - 8 0.08 - 13 0.12 - 14 0.0667 - 15 0.0133 - 21 0.0533 - 22 0.107 - 24 0.04 - 28 0.0267 - 29 0.0133 - 31 0.0133 - 32 0.0133 - 35 0.0133 - 41 0.0933 - 42 0.0133 - 46 0.0133 - 47 0.16 - - 47 667 27 0 - 0 0.12 - 2 0.0345 - 3 0.006 - 4 0.012 - 7 0.003 - 8 0.006 - 9 0.015 - 12 0.0015 - 13 0.145 - 14 0.124 - 15 0.009 - 19 0.012 - 21 0.0135 - 22 0.048 - 23 0.0015 - 28 0.0375 - 29 0.0315 - 30 0.039 - 31 0.039 - 32 0.012 - 33 0.0105 - 41 0.25 - 42 0.006 - 44 0.0015 - 45 0.0045 - 46 0.003 - 47 0.0135 - - 8 249 26 3 - 0 0.0723 - 2 0.0723 - 3 0.012 - 4 0.0201 - 7 0.0482 - 8 0.0161 - 13 0.12 - 14 0.108 - 15 0.0281 - 19 0.0161 - 21 0.0281 - 22 0.0201 - 23 0.0161 - 24 0.00803 - 28 0.0683 - 29 0.0482 - 30 0.0442 - 31 0.0281 - 32 0.0161 - 33 0.0161 - 41 0.0643 - 42 0.00402 - 44 0.00402 - 45 0.00803 - 46 0.00402 - 47 0.108 - - 2 3 2 0 - 30 0.333 - 41 0.667 - - 13 11 8 0 - 2 0.0909 - 7 0.0909 - 13 0.273 - 28 0.0909 - 29 0.182 - 31 0.0909 - 41 0.0909 - 47 0.0909 - - 21 2 2 0 - 4 0.5 - 28 0.5 - - 9 115 18 1 - 0 0.0696 - 2 0.0348 - 3 0.0783 - 4 0.0435 - 8 0.0087 - 13 0.2 - 14 0.139 - 15 0.0087 - 21 0.0261 - 28 0.0522 - 29 0.191 - 30 0.0174 - 31 0.0087 - 32 0.0261 - 33 0.0174 - 41 0.0087 - 45 0.0174 - 47 0.0522 - - 7 9 6 0 - 0 0.222 - 4 0.111 - 13 0.111 - 14 0.333 - 28 0.111 - 45 0.111 - - 10 136 9 1 - 2 0.00735 - 4 0.00735 - 7 0.934 - 13 0.00735 - 14 0.00735 - 18 0.00735 - 19 0.00735 - 33 0.00735 - 41 0.0147 - - 2 1 1 0 - 18 1 - - 11 6 1 0 - 47 1 - - 13 104 21 2 - 0 0.0577 - 2 0.0481 - 3 0.0481 - 4 0.0865 - 7 0.0577 - 8 0.135 - 13 0.0865 - 14 0.0385 - 18 0.00962 - 19 0.0192 - 21 0.00962 - 26 0.0288 - 28 0.0577 - 29 0.0385 - 30 0.125 - 31 0.0577 - 32 0.00962 - 33 0.00962 - 34 0.00962 - 41 0.0577 - 42 0.00962 - - 7 12 8 0 - 0 0.25 - 2 0.0833 - 8 0.0833 - 19 0.0833 - 21 0.0833 - 29 0.0833 - 41 0.25 - 42 0.0833 - - 26 3 3 0 - 14 0.333 - 28 0.333 - 30 0.333 - - 14 6 3 0 - 3 0.333 - 13 0.5 - 41 0.167 - - 15 28 4 0 - 15 0.0714 - 18 0.0357 - 45 0.0714 - 47 0.821 - - 17 5 4 0 - 0 0.2 - 7 0.2 - 31 0.2 - 47 0.4 - - 19 7 4 0 - 3 0.143 - 14 0.571 - 34 0.143 - 45 0.143 - - 21 18349 40 5 - 0 0.129 - 1 0.000872 - 2 0.038 - 3 0.00283 - 4 0.00474 - 5 0.00114 - 7 0.0186 - 8 0.0055 - 9 0.000708 - 10 0.00125 - 12 0.0355 - 13 0.106 - 14 0.0861 - 15 0.0422 - 16 0.00202 - 18 0.00049 - 19 0.0463 - 20 5.45e-05 - 21 0.0809 - 22 0.00665 - 23 0.00196 - 24 0.00501 - 26 0.00605 - 28 0.0338 - 29 0.0305 - 30 0.0215 - 31 0.0337 - 32 0.00948 - 33 0.0101 - 34 0.0104 - 35 0.00534 - 37 0.000381 - 40 0.000109 - 41 0.105 - 42 0.00741 - 43 0.000708 - 44 0.00109 - 45 0.00981 - 46 0.00191 - 47 0.0966 - - 2 72 20 0 - 0 0.125 - 2 0.0417 - 4 0.0417 - 8 0.0139 - 13 0.125 - 14 0.111 - 15 0.0139 - 19 0.0556 - 21 0.0694 - 22 0.0278 - 23 0.0139 - 28 0.0556 - 30 0.0556 - 31 0.0556 - 33 0.0139 - 40 0.0139 - 41 0.0694 - 42 0.0278 - 45 0.0278 - 47 0.0417 - - 21 918 33 0 - 0 0.0915 - 2 0.0447 - 3 0.00109 - 4 0.00871 - 7 0.0229 - 8 0.012 - 9 0.00109 - 10 0.00763 - 12 0.0272 - 13 0.127 - 14 0.0915 - 15 0.0196 - 16 0.00218 - 18 0.00109 - 19 0.0272 - 21 0.0664 - 24 0.0185 - 26 0.00218 - 28 0.0566 - 29 0.037 - 30 0.0403 - 31 0.0632 - 32 0.0174 - 33 0.0153 - 34 0.00436 - 35 0.00109 - 41 0.0436 - 42 0.00871 - 43 0.00327 - 44 0.00218 - 45 0.0251 - 46 0.00436 - 47 0.105 - - 22 11 7 0 - 2 0.182 - 13 0.0909 - 19 0.0909 - 24 0.0909 - 28 0.273 - 31 0.182 - 47 0.0909 - - 26 2 2 0 - 2 0.5 - 29 0.5 - - 47 17337 40 0 - 0 0.131 - 1 0.000923 - 2 0.0375 - 3 0.00294 - 4 0.00438 - 5 0.00121 - 7 0.0185 - 8 0.00513 - 9 0.000692 - 10 0.000923 - 12 0.0362 - 13 0.105 - 14 0.0858 - 15 0.0435 - 16 0.00202 - 18 0.000461 - 19 0.0473 - 20 5.77e-05 - 21 0.0817 - 22 0.00692 - 23 0.00202 - 24 0.00427 - 26 0.00629 - 28 0.0322 - 29 0.0302 - 30 0.0204 - 31 0.032 - 32 0.00911 - 33 0.00981 - 34 0.0108 - 35 0.00559 - 37 0.000404 - 40 5.77e-05 - 41 0.109 - 42 0.00727 - 43 0.000577 - 44 0.00104 - 45 0.00894 - 46 0.00179 - 47 0.0964 - - 22 773 27 5 - 0 0.0414 - 1 0.00129 - 2 0.0388 - 3 0.00259 - 4 0.0233 - 7 0.0103 - 8 0.00647 - 12 0.0155 - 13 0.364 - 14 0.0893 - 15 0.0168 - 18 0.00129 - 19 0.0142 - 21 0.0349 - 24 0.00776 - 26 0.0194 - 28 0.0699 - 29 0.066 - 30 0.0401 - 31 0.0375 - 32 0.0233 - 33 0.022 - 35 0.00259 - 41 0.00906 - 42 0.00388 - 45 0.00259 - 47 0.0362 - - 2 10 6 0 - 2 0.2 - 14 0.1 - 26 0.2 - 32 0.2 - 33 0.1 - 41 0.2 - - 7 39 17 0 - 0 0.282 - 2 0.0513 - 4 0.0256 - 7 0.0256 - 8 0.0256 - 12 0.0769 - 13 0.128 - 14 0.0513 - 15 0.0513 - 19 0.0513 - 26 0.0769 - 28 0.0256 - 29 0.0256 - 32 0.0256 - 41 0.0256 - 42 0.0256 - 47 0.0256 - - 8 4 3 0 - 28 0.25 - 41 0.25 - 47 0.5 - - 21 119 22 0 - 0 0.0504 - 1 0.0084 - 2 0.0756 - 4 0.0336 - 7 0.0336 - 12 0.0168 - 13 0.0672 - 14 0.0672 - 15 0.0252 - 19 0.0168 - 21 0.134 - 24 0.0168 - 26 0.0252 - 28 0.109 - 29 0.0084 - 30 0.0588 - 31 0.0588 - 32 0.0252 - 41 0.0168 - 42 0.0168 - 45 0.0168 - 47 0.118 - - 47 601 24 0 - 0 0.025 - 2 0.0283 - 3 0.00333 - 4 0.0216 - 7 0.00499 - 8 0.00666 - 12 0.0116 - 13 0.446 - 14 0.0965 - 15 0.0133 - 18 0.00166 - 19 0.0116 - 21 0.0183 - 24 0.00666 - 26 0.0116 - 28 0.0649 - 29 0.0815 - 30 0.0399 - 31 0.0366 - 32 0.02 - 33 0.0266 - 35 0.00333 - 41 0.00166 - 47 0.0183 - - 23 76 21 2 - 0 0.184 - 2 0.0263 - 3 0.0132 - 4 0.0921 - 7 0.0395 - 12 0.0263 - 13 0.0789 - 14 0.0658 - 18 0.0132 - 19 0.0395 - 21 0.0132 - 26 0.0132 - 28 0.0132 - 29 0.0526 - 30 0.0132 - 31 0.0395 - 32 0.0132 - 33 0.0263 - 41 0.105 - 42 0.0395 - 47 0.0921 - - 21 35 14 0 - 0 0.0571 - 2 0.0571 - 3 0.0286 - 4 0.143 - 13 0.0857 - 14 0.0571 - 18 0.0286 - 19 0.0571 - 21 0.0286 - 29 0.0571 - 30 0.0286 - 41 0.143 - 42 0.0857 - 47 0.143 - - 47 36 15 0 - 0 0.306 - 4 0.0278 - 7 0.0556 - 12 0.0556 - 13 0.0833 - 14 0.0833 - 19 0.0278 - 26 0.0278 - 28 0.0278 - 29 0.0556 - 31 0.0833 - 32 0.0278 - 33 0.0556 - 41 0.0278 - 47 0.0556 - - 24 97 16 1 - 0 0.144 - 2 0.0103 - 4 0.0206 - 8 0.0206 - 9 0.0103 - 13 0.134 - 14 0.0928 - 19 0.0309 - 21 0.0412 - 28 0.155 - 29 0.134 - 30 0.0722 - 31 0.0309 - 32 0.0206 - 33 0.0515 - 41 0.0309 - - 21 3 3 0 - 21 0.333 - 30 0.333 - 33 0.333 - - 26 19 7 2 - 3 0.526 - 8 0.0526 - 13 0.158 - 14 0.0526 - 21 0.105 - 30 0.0526 - 31 0.0526 - - 3 11 2 0 - 3 0.909 - 14 0.0909 - - 13 3 1 0 - 13 1 - - 28 9 5 0 - 2 0.111 - 21 0.111 - 26 0.111 - 41 0.556 - 42 0.111 - - 31 2 2 0 - 28 0.5 - 30 0.5 - - 37 3 2 0 - 28 0.333 - 47 0.667 - - 41 6 3 0 - 7 0.167 - 13 0.167 - 21 0.667 - - 42 2 2 0 - 21 0.5 - 31 0.5 - - 45 5 4 0 - 0 0.4 - 13 0.2 - 14 0.2 - 42 0.2 - - 47 19808 40 27 - 0 0.133 - 1 0.000959 - 2 0.0361 - 3 0.00979 - 4 0.00464 - 5 0.00106 - 7 0.022 - 8 0.00687 - 9 0.000808 - 10 0.000353 - 12 0.0339 - 13 0.105 - 14 0.0777 - 15 0.0428 - 16 0.00202 - 18 0.000757 - 19 0.0454 - 20 5.05e-05 - 21 0.0318 - 22 0.000252 - 23 5.05e-05 - 24 0.00596 - 26 0.00651 - 28 0.0409 - 29 0.0394 - 30 0.0268 - 31 0.0399 - 32 0.0114 - 33 0.0123 - 34 0.01 - 35 0.00515 - 37 0.000353 - 40 0.000101 - 41 0.12 - 42 0.00838 - 43 0.000808 - 44 0.00121 - 45 0.0105 - 46 0.00202 - 47 0.104 - - 2 16 11 0 - 3 0.0625 - 8 0.0625 - 13 0.0625 - 14 0.0625 - 19 0.0625 - 21 0.125 - 31 0.0625 - 41 0.125 - 45 0.0625 - 46 0.0625 - 47 0.25 - - 3 23 10 0 - 4 0.0435 - 7 0.0435 - 14 0.174 - 16 0.0435 - 26 0.087 - 28 0.0435 - 29 0.174 - 30 0.0435 - 31 0.0435 - 41 0.304 - - 4 91 25 0 - 0 0.242 - 1 0.011 - 2 0.011 - 3 0.044 - 4 0.011 - 7 0.022 - 8 0.033 - 12 0.011 - 13 0.0549 - 14 0.0989 - 15 0.022 - 19 0.033 - 21 0.0549 - 26 0.011 - 28 0.0549 - 29 0.022 - 30 0.033 - 31 0.0549 - 33 0.011 - 34 0.011 - 41 0.044 - 42 0.022 - 44 0.011 - 45 0.044 - 47 0.033 - - 6 6 5 0 - 2 0.167 - 13 0.167 - 41 0.333 - 42 0.167 - 45 0.167 - - 7 750 29 0 - 0 0.131 - 2 0.0453 - 3 0.00667 - 4 0.004 - 7 0.0347 - 8 0.0187 - 9 0.00267 - 12 0.00533 - 13 0.0747 - 14 0.056 - 15 0.0133 - 19 0.0133 - 21 0.024 - 22 0.00133 - 24 0.00667 - 28 0.0587 - 29 0.0293 - 30 0.0427 - 31 0.048 - 32 0.0133 - 33 0.012 - 34 0.00133 - 35 0.00133 - 41 0.289 - 42 0.0133 - 44 0.00133 - 45 0.004 - 46 0.004 - 47 0.044 - - 8 223 25 0 - 0 0.0807 - 2 0.0583 - 3 0.0135 - 4 0.00448 - 7 0.0404 - 8 0.0179 - 13 0.13 - 14 0.112 - 15 0.0269 - 19 0.0179 - 21 0.0314 - 22 0.00448 - 24 0.00897 - 28 0.0673 - 29 0.0538 - 30 0.0493 - 31 0.0314 - 32 0.0179 - 33 0.0179 - 41 0.0717 - 42 0.00448 - 44 0.00448 - 45 0.00897 - 46 0.00448 - 47 0.121 - - 9 67 16 0 - 0 0.119 - 2 0.0299 - 4 0.0149 - 13 0.0597 - 14 0.0746 - 15 0.0149 - 21 0.0299 - 28 0.0896 - 29 0.328 - 30 0.0299 - 31 0.0149 - 32 0.0448 - 33 0.0299 - 41 0.0149 - 45 0.0149 - 47 0.0896 - - 10 8 7 0 - 4 0.125 - 13 0.125 - 14 0.125 - 18 0.125 - 19 0.125 - 33 0.125 - 41 0.25 - - 11 6 1 0 - 47 1 - - 13 69 19 0 - 0 0.087 - 2 0.029 - 3 0.029 - 7 0.0145 - 8 0.0435 - 13 0.116 - 14 0.058 - 18 0.0145 - 19 0.029 - 21 0.0145 - 28 0.087 - 29 0.058 - 30 0.188 - 31 0.087 - 32 0.0145 - 33 0.0145 - 34 0.0145 - 41 0.087 - 42 0.0145 - - 14 4 2 0 - 13 0.75 - 41 0.25 - - 15 27 4 0 - 15 0.037 - 18 0.037 - 45 0.0741 - 47 0.852 - - 17 4 3 0 - 0 0.25 - 31 0.25 - 47 0.5 - - 19 7 4 0 - 3 0.143 - 14 0.571 - 34 0.143 - 45 0.143 - - 21 16535 40 0 - 0 0.143 - 1 0.000968 - 2 0.0372 - 3 0.00302 - 4 0.00423 - 5 0.00127 - 7 0.0161 - 8 0.00593 - 9 0.000786 - 10 0.000363 - 12 0.0394 - 13 0.102 - 14 0.0788 - 15 0.0469 - 16 0.00224 - 18 0.000544 - 19 0.0513 - 20 6.05e-05 - 21 0.0339 - 22 0.000181 - 23 6.05e-05 - 24 0.00538 - 26 0.00659 - 28 0.0374 - 29 0.0337 - 30 0.0238 - 31 0.0374 - 32 0.0105 - 33 0.0112 - 34 0.0116 - 35 0.00593 - 37 0.000423 - 40 0.000121 - 41 0.117 - 42 0.00816 - 43 0.000786 - 44 0.00121 - 45 0.0107 - 46 0.00212 - 47 0.107 - - 22 466 26 0 - 0 0.0687 - 1 0.00215 - 2 0.0429 - 4 0.00858 - 7 0.0172 - 8 0.00644 - 12 0.0258 - 13 0.0987 - 14 0.088 - 15 0.0279 - 18 0.00215 - 19 0.0236 - 21 0.0236 - 24 0.0129 - 26 0.0322 - 28 0.116 - 29 0.109 - 30 0.0665 - 31 0.0622 - 32 0.0386 - 33 0.0365 - 35 0.00429 - 41 0.015 - 42 0.00644 - 45 0.00429 - 47 0.0601 - - 23 72 20 0 - 0 0.194 - 2 0.0278 - 3 0.0139 - 4 0.0833 - 12 0.0278 - 13 0.0833 - 14 0.0694 - 18 0.0139 - 19 0.0417 - 21 0.0139 - 26 0.0139 - 28 0.0139 - 29 0.0556 - 30 0.0139 - 31 0.0417 - 32 0.0139 - 33 0.0278 - 41 0.111 - 42 0.0417 - 47 0.0972 - - 24 90 14 0 - 0 0.156 - 4 0.0111 - 8 0.0111 - 13 0.133 - 14 0.1 - 19 0.0333 - 21 0.0333 - 28 0.156 - 29 0.144 - 30 0.0778 - 31 0.0333 - 32 0.0222 - 33 0.0556 - 41 0.0333 - - 26 2 2 0 - 30 0.5 - 31 0.5 - - 28 8 4 0 - 2 0.125 - 21 0.125 - 41 0.625 - 42 0.125 - - 31 2 2 0 - 28 0.5 - 30 0.5 - - 37 3 2 0 - 28 0.333 - 47 0.667 - - 45 4 3 0 - 0 0.5 - 13 0.25 - 14 0.25 - - 48 5 4 0 - 0 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 347 26 0 - 0 0.0519 - 2 0.0202 - 4 0.00288 - 7 0.0202 - 8 0.0144 - 10 0.00288 - 13 0.15 - 14 0.098 - 15 0.0144 - 16 0.00288 - 18 0.00288 - 19 0.0173 - 21 0.0288 - 24 0.0231 - 28 0.0778 - 29 0.0605 - 30 0.0663 - 31 0.107 - 32 0.0288 - 33 0.0403 - 34 0.00288 - 41 0.0951 - 42 0.0173 - 44 0.00288 - 45 0.0115 - 47 0.0403 - - 55 960 29 0 - 0 0.026 - 1 0.00104 - 2 0.0177 - 3 0.132 - 4 0.00208 - 7 0.12 - 8 0.00417 - 9 0.00104 - 13 0.155 - 14 0.0521 - 15 0.0354 - 16 0.00104 - 19 0.00729 - 21 0.00833 - 24 0.00833 - 26 0.00104 - 28 0.0156 - 29 0.0667 - 30 0.00938 - 31 0.0406 - 32 0.00313 - 33 0.00208 - 34 0.00313 - 35 0.00104 - 41 0.142 - 42 0.00313 - 43 0.00313 - 45 0.00938 - 47 0.128 - - 60 5 4 0 - 0 0.2 - 28 0.2 - 29 0.4 - 33 0.2 - - 48 5 4 0 - 0 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 357 27 2 - 0 0.0504 - 2 0.0224 - 4 0.0028 - 7 0.028 - 8 0.014 - 10 0.0028 - 13 0.148 - 14 0.098 - 15 0.014 - 16 0.0028 - 18 0.0028 - 19 0.0168 - 21 0.028 - 24 0.0252 - 26 0.0028 - 28 0.0756 - 29 0.0588 - 30 0.0644 - 31 0.104 - 32 0.028 - 33 0.0392 - 34 0.0028 - 41 0.0924 - 42 0.0196 - 44 0.0028 - 45 0.014 - 47 0.0392 - - 21 15 6 0 - 2 0.133 - 14 0.0667 - 21 0.0667 - 28 0.0667 - 31 0.0667 - 41 0.6 - - 41 3 3 0 - 13 0.333 - 14 0.333 - 42 0.333 - - 55 962 29 6 - 0 0.026 - 1 0.00104 - 2 0.0177 - 3 0.132 - 4 0.00208 - 7 0.121 - 8 0.00416 - 9 0.00104 - 13 0.156 - 14 0.052 - 15 0.0353 - 16 0.00104 - 19 0.00728 - 21 0.00832 - 24 0.00832 - 26 0.00104 - 28 0.0156 - 29 0.0665 - 30 0.00936 - 31 0.0405 - 32 0.00312 - 33 0.00208 - 34 0.00312 - 35 0.00104 - 41 0.141 - 42 0.00312 - 43 0.00312 - 45 0.00936 - 47 0.128 - - 6 1 1 0 - 30 1 - - 7 114 18 0 - 0 0.0263 - 2 0.00877 - 3 0.14 - 7 0.184 - 9 0.00877 - 13 0.132 - 14 0.0439 - 15 0.0614 - 21 0.0175 - 26 0.00877 - 29 0.0351 - 30 0.00877 - 31 0.0439 - 34 0.00877 - 35 0.00877 - 41 0.132 - 45 0.0263 - 47 0.105 - - 9 39 13 0 - 0 0.0769 - 2 0.0256 - 7 0.0769 - 13 0.0513 - 15 0.0256 - 24 0.0256 - 28 0.103 - 29 0.41 - 30 0.0256 - 31 0.0769 - 33 0.0256 - 41 0.0513 - 47 0.0256 - - 21 527 25 0 - 0 0.0266 - 2 0.0152 - 3 0.108 - 4 0.0038 - 7 0.0892 - 8 0.00759 - 13 0.186 - 14 0.0455 - 15 0.0493 - 16 0.0019 - 19 0.00759 - 21 0.0114 - 24 0.0133 - 28 0.00759 - 29 0.0531 - 30 0.00569 - 31 0.055 - 32 0.0038 - 33 0.0019 - 34 0.0038 - 41 0.108 - 42 0.0019 - 43 0.0038 - 45 0.0114 - 47 0.178 - - 22 269 17 0 - 0 0.0186 - 1 0.00372 - 2 0.0112 - 3 0.201 - 7 0.16 - 13 0.123 - 14 0.0743 - 19 0.0112 - 28 0.026 - 29 0.052 - 30 0.0112 - 31 0.00743 - 32 0.00372 - 41 0.227 - 42 0.00743 - 43 0.00372 - 47 0.0595 - - 47 5 3 0 - 2 0.6 - 13 0.2 - 14 0.2 - - 57 3 3 0 - 7 0.333 - 21 0.333 - 47 0.333 - - 60 5 4 0 - 0 0.2 - 28 0.2 - 29 0.4 - 33 0.2 - -50 1035 26 5 - 0 0.0058 - 2 0.0213 - 7 0.0174 - 8 0.0232 - 13 0.111 - 14 0.0889 - 15 0.0193 - 16 0.00193 - 19 0.00193 - 21 0.382 - 22 0.00193 - 24 0.00193 - 26 0.00483 - 28 0.00773 - 29 0.0058 - 30 0.00966 - 31 0.00773 - 32 0.00386 - 33 0.00773 - 41 0.222 - 42 0.0174 - 43 0.00193 - 44 0.00193 - 45 0.00193 - 46 0.00966 - 47 0.0213 - - 2 22 4 0 - 13 0.227 - 14 0.0455 - 22 0.0455 - 41 0.682 - - 7 223 5 3 - 7 0.00897 - 13 0.00897 - 14 0.00448 - 21 0.928 - 41 0.0493 - - 7 2 2 0 - 14 0.5 - 41 0.5 - - 21 11 2 0 - 13 0.182 - 41 0.818 - - 47 209 2 0 - 7 0.00957 - 21 0.99 - - 21 472 24 5 - 0 0.00636 - 2 0.0466 - 7 0.0275 - 8 0.0254 - 13 0.106 - 14 0.0932 - 15 0.0212 - 16 0.00212 - 19 0.00212 - 21 0.373 - 24 0.00212 - 28 0.00847 - 29 0.00636 - 30 0.0106 - 31 0.00847 - 32 0.00424 - 33 0.00847 - 41 0.189 - 42 0.0191 - 43 0.00212 - 44 0.00212 - 45 0.00212 - 46 0.0106 - 47 0.0233 - - 7 206 14 0 - 7 0.00485 - 8 0.0146 - 13 0.117 - 14 0.0922 - 15 0.00971 - 21 0.612 - 28 0.00485 - 29 0.00485 - 30 0.00485 - 31 0.00485 - 32 0.00971 - 41 0.0874 - 42 0.0243 - 46 0.00971 - - 8 4 3 0 - 0 0.25 - 8 0.5 - 33 0.25 - - 21 174 21 0 - 0 0.0115 - 7 0.00575 - 8 0.0402 - 13 0.149 - 14 0.144 - 15 0.046 - 16 0.00575 - 19 0.00575 - 24 0.00575 - 28 0.0172 - 29 0.0115 - 30 0.023 - 31 0.0172 - 33 0.0172 - 41 0.391 - 42 0.0172 - 43 0.00575 - 44 0.00575 - 45 0.00575 - 46 0.0172 - 47 0.0575 - - 26 5 3 0 - 41 0.6 - 42 0.2 - 47 0.2 - - 47 83 3 0 - 2 0.265 - 7 0.133 - 21 0.602 - - 28 5 1 0 - 26 1 - - 47 302 24 2 - 0 0.00993 - 7 0.00662 - 8 0.0397 - 13 0.189 - 14 0.152 - 15 0.0331 - 16 0.00331 - 19 0.00331 - 21 0.00993 - 22 0.00331 - 24 0.00331 - 28 0.0132 - 29 0.00993 - 30 0.0166 - 31 0.0132 - 32 0.00662 - 33 0.0132 - 41 0.381 - 42 0.0298 - 43 0.00331 - 44 0.00331 - 45 0.00331 - 46 0.0166 - 47 0.0364 - - 2 22 4 0 - 13 0.227 - 14 0.0455 - 22 0.0455 - 41 0.682 - - 7 15 4 0 - 13 0.133 - 14 0.0667 - 21 0.0667 - 41 0.733 - -51 1504 36 26 - 0 0.00399 - 2 0.0259 - 3 0.0153 - 4 0.000665 - 6 0.000665 - 7 0.118 - 8 0.00798 - 9 0.00266 - 10 0.000665 - 13 0.0465 - 14 0.0226 - 15 0.0426 - 16 0.00199 - 19 0.00266 - 21 0.0326 - 22 0.000665 - 24 0.00133 - 25 0.00864 - 27 0.00332 - 28 0.0166 - 29 0.00399 - 30 0.000665 - 31 0.00399 - 32 0.00332 - 33 0.00199 - 34 0.00798 - 35 0.00665 - 37 0.00798 - 40 0.00532 - 41 0.0951 - 42 0.0864 - 43 0.00465 - 44 0.00598 - 45 0.0598 - 46 0.00332 - 47 0.347 - - 2 50 6 0 - 13 0.14 - 14 0.02 - 41 0.24 - 42 0.04 - 45 0.02 - 47 0.54 - - 4 3 2 0 - 7 0.667 - 28 0.333 - - 7 7 5 0 - 2 0.143 - 35 0.286 - 41 0.143 - 45 0.143 - 47 0.286 - - 8 5 4 0 - 4 0.2 - 7 0.4 - 21 0.2 - 47 0.2 - - 21 48 11 0 - 2 0.229 - 7 0.167 - 10 0.0208 - 21 0.146 - 28 0.0208 - 35 0.0208 - 37 0.0833 - 41 0.0417 - 42 0.0208 - 45 0.0417 - 47 0.208 - - 35 4 4 0 - 2 0.25 - 21 0.25 - 42 0.25 - 43 0.25 - - 40 3 2 0 - 15 0.667 - 27 0.333 - - 41 96 15 8 - 0 0.0104 - 3 0.167 - 6 0.0104 - 8 0.0521 - 13 0.156 - 14 0.0417 - 15 0.323 - 16 0.0312 - 19 0.0312 - 21 0.0938 - 27 0.0417 - 28 0.0104 - 29 0.0104 - 30 0.0104 - 43 0.0104 - - 2 4 2 0 - 13 0.75 - 28 0.25 - - 45 2 2 0 - 19 0.5 - 29 0.5 - - 49 7 6 0 - 8 0.143 - 13 0.143 - 19 0.143 - 21 0.286 - 27 0.143 - 43 0.143 - - 55 48 9 0 - 3 0.312 - 8 0.0208 - 13 0.146 - 14 0.0208 - 15 0.292 - 16 0.0417 - 19 0.0208 - 21 0.0833 - 27 0.0625 - - 57 16 2 0 - 8 0.0625 - 15 0.938 - - 64 6 4 0 - 0 0.167 - 8 0.167 - 13 0.5 - 30 0.167 - - 69 2 2 0 - 3 0.5 - 6 0.5 - - 71 3 2 0 - 8 0.333 - 21 0.667 - - 42 78 15 4 - 3 0.0128 - 8 0.0128 - 13 0.218 - 14 0.167 - 15 0.269 - 21 0.0385 - 25 0.103 - 28 0.0128 - 29 0.0128 - 31 0.0385 - 32 0.0128 - 33 0.0128 - 43 0.0513 - 46 0.0128 - 47 0.0256 - - 45 24 6 0 - 13 0.125 - 14 0.125 - 15 0.5 - 21 0.0417 - 33 0.0417 - 43 0.167 - - 55 20 10 0 - 3 0.05 - 8 0.05 - 13 0.05 - 14 0.1 - 15 0.15 - 25 0.3 - 28 0.05 - 29 0.05 - 31 0.15 - 46 0.05 - - 62 19 3 0 - 13 0.632 - 14 0.211 - 15 0.158 - - 69 5 3 0 - 14 0.2 - 25 0.4 - 47 0.4 - - 45 37 5 0 - 41 0.0811 - 42 0.649 - 43 0.027 - 44 0.0541 - 47 0.189 - - 47 495 24 19 - 0 0.00404 - 2 0.0283 - 3 0.00202 - 7 0.178 - 13 0.0242 - 14 0.00606 - 15 0.00202 - 21 0.0121 - 24 0.00202 - 28 0.0202 - 29 0.00404 - 31 0.00202 - 32 0.00404 - 33 0.00202 - 34 0.0121 - 35 0.00202 - 37 0.00606 - 40 0.00404 - 41 0.0444 - 42 0.0525 - 44 0.00606 - 45 0.0525 - 46 0.00202 - 47 0.527 - - 2 42 5 0 - 13 0.119 - 41 0.19 - 42 0.0238 - 45 0.0238 - 47 0.643 - - 4 3 2 0 - 7 0.667 - 28 0.333 - - 21 24 7 0 - 2 0.0833 - 7 0.292 - 21 0.0417 - 28 0.0417 - 41 0.0417 - 45 0.0833 - 47 0.417 - - 41 2 2 0 - 13 0.5 - 21 0.5 - - 42 4 3 0 - 13 0.25 - 32 0.25 - 47 0.5 - - 45 8 2 0 - 44 0.125 - 47 0.875 - - 48 41 8 0 - 0 0.0244 - 7 0.439 - 21 0.0488 - 28 0.0244 - 37 0.0488 - 42 0.0244 - 45 0.0488 - 47 0.341 - - 49 47 8 0 - 2 0.0851 - 7 0.255 - 28 0.0213 - 37 0.0213 - 41 0.0638 - 42 0.0213 - 45 0.0213 - 47 0.511 - - 51 5 3 0 - 7 0.2 - 42 0.6 - 47 0.2 - - 52 7 3 0 - 40 0.143 - 45 0.429 - 47 0.429 - - 55 145 12 0 - 2 0.0138 - 7 0.166 - 14 0.0069 - 29 0.0069 - 33 0.0069 - 34 0.0414 - 35 0.0069 - 41 0.0276 - 42 0.0828 - 44 0.0069 - 45 0.0483 - 47 0.586 - - 57 55 15 0 - 0 0.0182 - 3 0.0182 - 7 0.127 - 13 0.0909 - 14 0.0182 - 15 0.0182 - 21 0.0182 - 28 0.0182 - 31 0.0182 - 41 0.0182 - 42 0.0364 - 44 0.0182 - 45 0.0364 - 46 0.0182 - 47 0.527 - - 64 18 4 0 - 2 0.0556 - 7 0.111 - 45 0.111 - 47 0.722 - - 65 1 1 0 - 40 1 - - 69 15 6 0 - 7 0.533 - 21 0.0667 - 29 0.0667 - 41 0.0667 - 42 0.0667 - 47 0.2 - - 71 13 7 0 - 2 0.231 - 14 0.0769 - 24 0.0769 - 28 0.154 - 41 0.0769 - 42 0.0769 - 47 0.308 - - 72 11 5 0 - 2 0.0909 - 28 0.0909 - 42 0.0909 - 45 0.273 - 47 0.455 - - 73 2 1 0 - 28 1 - - 74 17 4 0 - 7 0.0588 - 32 0.0588 - 41 0.0588 - 47 0.824 - - 48 49 12 3 - 0 0.0204 - 7 0.367 - 13 0.0408 - 15 0.0408 - 21 0.0612 - 28 0.0204 - 37 0.0408 - 40 0.0204 - 41 0.0204 - 42 0.0204 - 45 0.0612 - 47 0.286 - - 41 5 2 0 - 42 0.2 - 47 0.8 - - 42 2 2 0 - 15 0.5 - 21 0.5 - - 47 34 10 0 - 0 0.0294 - 7 0.529 - 13 0.0588 - 21 0.0588 - 28 0.0294 - 37 0.0588 - 40 0.0294 - 41 0.0294 - 45 0.0588 - 47 0.118 - - 49 64 14 3 - 2 0.0625 - 7 0.188 - 8 0.0156 - 13 0.0312 - 14 0.0156 - 19 0.0156 - 21 0.0312 - 28 0.0156 - 35 0.0156 - 37 0.0156 - 41 0.156 - 42 0.0469 - 45 0.0156 - 47 0.375 - - 41 8 2 0 - 41 0.125 - 47 0.875 - - 47 35 11 0 - 2 0.0286 - 7 0.314 - 8 0.0286 - 13 0.0571 - 14 0.0286 - 21 0.0571 - 35 0.0286 - 37 0.0286 - 41 0.2 - 42 0.0286 - 47 0.2 - - 49 3 3 0 - 2 0.333 - 7 0.333 - 28 0.333 - - 51 11 5 0 - 7 0.0909 - 41 0.0909 - 42 0.636 - 45 0.0909 - 47 0.0909 - - 52 11 4 0 - 40 0.0909 - 41 0.182 - 45 0.455 - 47 0.273 - - 55 273 23 6 - 2 0.00733 - 7 0.0879 - 8 0.00366 - 9 0.011 - 13 0.0183 - 14 0.0293 - 15 0.00733 - 21 0.033 - 25 0.00733 - 28 0.00366 - 29 0.00366 - 31 0.00366 - 33 0.00366 - 34 0.022 - 35 0.00366 - 37 0.00733 - 40 0.00733 - 41 0.194 - 42 0.117 - 44 0.011 - 45 0.103 - 46 0.00366 - 47 0.311 - - 2 2 2 0 - 33 0.5 - 47 0.5 - - 40 2 2 0 - 40 0.5 - 45 0.5 - - 41 57 7 0 - 2 0.0175 - 13 0.0175 - 21 0.0175 - 41 0.526 - 42 0.0351 - 45 0.0526 - 47 0.333 - - 42 26 3 0 - 42 0.0385 - 44 0.0769 - 47 0.885 - - 47 162 22 0 - 2 0.00617 - 7 0.13 - 8 0.00617 - 9 0.0185 - 13 0.0185 - 14 0.0432 - 15 0.0123 - 21 0.0494 - 25 0.0123 - 28 0.00617 - 29 0.00617 - 31 0.00617 - 34 0.037 - 35 0.00617 - 37 0.0123 - 40 0.00617 - 41 0.13 - 42 0.167 - 44 0.00617 - 45 0.142 - 46 0.00617 - 47 0.173 - - 62 5 2 0 - 7 0.6 - 47 0.4 - - 57 74 16 5 - 0 0.0135 - 3 0.0135 - 7 0.0946 - 8 0.0135 - 13 0.0676 - 14 0.0135 - 15 0.0135 - 21 0.0135 - 28 0.027 - 31 0.0135 - 41 0.243 - 42 0.027 - 44 0.0135 - 45 0.027 - 46 0.0135 - 47 0.392 - - 41 7 5 0 - 41 0.143 - 42 0.143 - 44 0.143 - 45 0.143 - 47 0.429 - - 42 24 3 0 - 41 0.458 - 45 0.0417 - 47 0.5 - - 47 26 12 0 - 0 0.0385 - 3 0.0385 - 7 0.192 - 13 0.192 - 14 0.0385 - 15 0.0385 - 21 0.0385 - 28 0.0385 - 31 0.0385 - 41 0.0385 - 46 0.0385 - 47 0.269 - - 55 9 3 0 - 7 0.222 - 42 0.111 - 47 0.667 - - 58 4 1 0 - 41 1 - - 58 8 5 0 - 13 0.125 - 15 0.5 - 32 0.125 - 46 0.125 - 47 0.125 - - 62 55 11 1 - 3 0.0727 - 7 0.0909 - 8 0.0182 - 9 0.0182 - 13 0.0182 - 14 0.0182 - 22 0.0182 - 35 0.0182 - 42 0.345 - 45 0.236 - 47 0.145 - - 42 3 1 0 - 47 1 - - 64 37 10 1 - 2 0.027 - 7 0.0541 - 8 0.0541 - 13 0.0541 - 21 0.108 - 35 0.0811 - 41 0.162 - 42 0.027 - 45 0.0811 - 47 0.351 - - 41 8 4 0 - 2 0.125 - 7 0.125 - 45 0.125 - 47 0.625 - - 65 1 1 0 - 40 1 - - 69 29 9 1 - 7 0.276 - 14 0.0345 - 21 0.103 - 25 0.103 - 29 0.0345 - 40 0.0345 - 41 0.103 - 42 0.207 - 47 0.103 - - 42 3 1 0 - 47 1 - - 71 17 7 0 - 2 0.235 - 14 0.0588 - 24 0.0588 - 28 0.118 - 41 0.235 - 42 0.0588 - 47 0.235 - - 72 11 5 0 - 2 0.0909 - 28 0.0909 - 42 0.0909 - 45 0.273 - 47 0.455 - - 73 2 1 0 - 28 1 - - 74 19 6 0 - 0 0.0526 - 7 0.0526 - 28 0.0526 - 32 0.0526 - 41 0.0526 - 47 0.737 - -52 280 19 10 - 2 0.0214 - 4 0.0179 - 7 0.00714 - 8 0.0107 - 13 0.00357 - 15 0.00357 - 20 0.00357 - 27 0.0286 - 28 0.05 - 29 0.0143 - 30 0.0143 - 33 0.00714 - 40 0.0107 - 41 0.225 - 42 0.0214 - 44 0.05 - 45 0.175 - 46 0.00714 - 47 0.329 - - 0 3 1 0 - 4 1 - - 13 6 4 0 - 8 0.5 - 41 0.167 - 44 0.167 - 47 0.167 - - 15 3 3 0 - 15 0.333 - 20 0.333 - 47 0.333 - - 21 18 5 0 - 28 0.0556 - 33 0.0556 - 41 0.111 - 42 0.0556 - 47 0.722 - - 27 86 13 0 - 2 0.0233 - 4 0.0116 - 7 0.0116 - 27 0.0349 - 28 0.0349 - 29 0.0233 - 30 0.0233 - 40 0.0233 - 41 0.221 - 42 0.0116 - 44 0.0581 - 45 0.267 - 47 0.256 - - 28 13 4 0 - 41 0.769 - 45 0.0769 - 46 0.0769 - 47 0.0769 - - 41 5 3 0 - 13 0.2 - 27 0.4 - 28 0.4 - - 45 3 3 0 - 2 0.333 - 28 0.333 - 47 0.333 - - 47 127 15 3 - 2 0.0236 - 4 0.00787 - 7 0.00787 - 27 0.00787 - 28 0.0472 - 29 0.0157 - 30 0.0157 - 33 0.00787 - 40 0.00787 - 41 0.228 - 42 0.0236 - 44 0.0551 - 45 0.181 - 46 0.00787 - 47 0.362 - - 21 17 5 0 - 28 0.0588 - 33 0.0588 - 41 0.0588 - 42 0.0588 - 47 0.765 - - 28 11 4 0 - 41 0.727 - 45 0.0909 - 46 0.0909 - 47 0.0909 - - 52 2 2 0 - 28 0.5 - 44 0.5 - - 52 2 2 0 - 28 0.5 - 44 0.5 - -53 81 5 3 - 2 0.0494 - 7 0.0494 - 42 0.173 - 44 0.0617 - 47 0.667 - - 13 2 1 0 - 44 1 - - 44 5 3 0 - 2 0.4 - 7 0.2 - 42 0.4 - - 47 38 4 1 - 2 0.0526 - 7 0.0526 - 42 0.184 - 47 0.711 - - 44 5 3 0 - 2 0.4 - 7 0.2 - 42 0.4 - -54 1410 26 10 - 0 0.00142 - 2 0.0128 - 3 0.0163 - 4 0.351 - 7 0.044 - 8 0.0326 - 13 0.00355 - 14 0.000709 - 15 0.241 - 16 0.00213 - 18 0.0184 - 20 0.0348 - 21 0.00142 - 26 0.00426 - 28 0.00284 - 29 0.00284 - 30 0.00142 - 31 0.000709 - 33 0.00426 - 34 0.00142 - 39 0.000709 - 41 0.178 - 44 0.00284 - 45 0.0163 - 46 0.00142 - 47 0.0227 - - 3 2 2 0 - 4 0.5 - 39 0.5 - - 4 5 4 0 - 7 0.4 - 21 0.2 - 33 0.2 - 41 0.2 - - 8 11 9 0 - 4 0.0909 - 7 0.0909 - 8 0.0909 - 18 0.0909 - 20 0.0909 - 29 0.0909 - 41 0.0909 - 45 0.182 - 47 0.182 - - 13 19 9 0 - 2 0.0526 - 3 0.158 - 4 0.105 - 7 0.0526 - 8 0.211 - 15 0.158 - 30 0.0526 - 31 0.0526 - 45 0.158 - - 15 697 20 3 - 0 0.00143 - 2 0.0115 - 3 0.01 - 4 0.34 - 7 0.0373 - 8 0.0301 - 13 0.0043 - 15 0.135 - 18 0.0158 - 20 0.0316 - 26 0.0043 - 28 0.00287 - 29 0.00143 - 33 0.00143 - 34 0.00143 - 41 0.344 - 44 0.00287 - 45 0.00574 - 46 0.00143 - 47 0.0172 - - 15 89 12 0 - 2 0.0112 - 3 0.0337 - 4 0.629 - 7 0.0787 - 8 0.0449 - 13 0.0112 - 15 0.0674 - 20 0.0674 - 26 0.0112 - 34 0.0112 - 41 0.0225 - 45 0.0112 - - 41 231 8 0 - 2 0.013 - 4 0.61 - 7 0.0216 - 8 0.026 - 15 0.238 - 18 0.0346 - 20 0.0519 - 33 0.00433 - - 47 371 18 0 - 0 0.0027 - 2 0.0108 - 3 0.0108 - 4 0.097 - 7 0.0377 - 8 0.027 - 13 0.00539 - 15 0.0889 - 18 0.00809 - 20 0.0108 - 26 0.00539 - 28 0.00539 - 29 0.0027 - 41 0.639 - 44 0.00539 - 45 0.00809 - 46 0.0027 - 47 0.0323 - - 16 7 2 0 - 3 0.286 - 15 0.714 - - 41 235 2 0 - 15 0.987 - 16 0.0128 - - 47 411 22 5 - 0 0.00243 - 2 0.0219 - 3 0.0268 - 4 0.596 - 7 0.0754 - 8 0.0438 - 13 0.00487 - 15 0.0146 - 18 0.0316 - 20 0.0584 - 21 0.00243 - 26 0.0073 - 28 0.00487 - 29 0.00487 - 30 0.00243 - 33 0.0073 - 34 0.00243 - 41 0.0195 - 44 0.00487 - 45 0.0268 - 46 0.00243 - 47 0.0389 - - 4 5 4 0 - 7 0.4 - 21 0.2 - 33 0.2 - 41 0.2 - - 8 8 6 0 - 7 0.125 - 18 0.125 - 29 0.125 - 41 0.125 - 45 0.25 - 47 0.25 - - 13 11 7 0 - 2 0.0909 - 3 0.182 - 4 0.182 - 7 0.0909 - 15 0.0909 - 30 0.0909 - 45 0.273 - - 15 365 20 0 - 0 0.00274 - 2 0.0219 - 3 0.0192 - 4 0.638 - 7 0.0712 - 8 0.0466 - 13 0.00548 - 15 0.0137 - 18 0.0301 - 20 0.0603 - 26 0.00822 - 28 0.00548 - 29 0.00274 - 33 0.00274 - 34 0.00274 - 41 0.0164 - 44 0.00548 - 45 0.011 - 46 0.00274 - 47 0.0329 - - 16 2 1 0 - 3 1 - - 54 6 4 0 - 4 0.5 - 7 0.167 - 20 0.167 - 33 0.167 - - 55 10 8 0 - 4 0.3 - 8 0.1 - 14 0.1 - 18 0.1 - 20 0.1 - 41 0.1 - 45 0.1 - 47 0.1 - -55 887998 48 60 - 0 0.0273 - 1 0.000351 - 2 0.0385 - 3 0.0187 - 4 0.0895 - 5 1.13e-05 - 6 0.00017 - 7 0.269 - 8 0.0578 - 9 0.00198 - 10 0.00144 - 11 4.5e-06 - 12 0.000276 - 13 0.0448 - 14 0.00865 - 15 0.0601 - 16 0.00132 - 17 0.000474 - 18 0.00933 - 19 0.00118 - 20 0.00947 - 21 0.00895 - 22 0.00032 - 23 7.09e-05 - 24 0.0044 - 25 2.93e-05 - 26 0.0257 - 27 9.01e-06 - 28 0.0421 - 29 0.0397 - 30 0.0252 - 31 0.0126 - 32 0.00881 - 33 0.0183 - 34 0.0013 - 35 0.000993 - 36 2.14e-05 - 37 0.00439 - 38 1.46e-05 - 39 9.01e-06 - 40 0.000164 - 41 0.0609 - 42 0.00956 - 43 0.000404 - 44 0.0025 - 45 0.0118 - 46 0.00365 - 47 0.078 - - 0 15 6 0 - 7 0.0667 - 13 0.133 - 14 0.0667 - 15 0.6 - 19 0.0667 - 44 0.0667 - - 2 4952 33 24 - 0 0.00101 - 2 0.000404 - 3 0.0186 - 4 0.00323 - 6 0.000202 - 7 0.00424 - 8 0.0307 - 9 0.000808 - 10 0.000404 - 13 0.33 - 14 0.202 - 15 0.361 - 16 0.0224 - 18 0.000404 - 19 0.00141 - 20 0.000808 - 21 0.00101 - 26 0.000202 - 28 0.00121 - 29 0.000202 - 30 0.00363 - 31 0.000808 - 32 0.000202 - 33 0.000404 - 34 0.000202 - 40 0.000202 - 41 0.00687 - 42 0.00182 - 43 0.000202 - 44 0.000202 - 45 0.000202 - 46 0.00283 - 47 0.00263 - - 3 95 6 0 - 3 0.884 - 7 0.0105 - 8 0.0105 - 13 0.0632 - 21 0.0105 - 41 0.0211 - - 4 22 10 0 - 0 0.0909 - 3 0.0455 - 4 0.273 - 7 0.227 - 8 0.0455 - 13 0.0909 - 15 0.0909 - 21 0.0455 - 32 0.0455 - 47 0.0455 - - 6 1 1 0 - 6 1 - - 8 278 11 0 - 3 0.0036 - 4 0.0216 - 8 0.432 - 9 0.00719 - 13 0.439 - 14 0.0396 - 15 0.036 - 31 0.00719 - 40 0.0036 - 41 0.0036 - 42 0.00719 - - 9 4 2 0 - 3 0.5 - 9 0.5 - - 10 2 1 0 - 10 1 - - 13 1555 11 0 - 4 0.00257 - 8 0.0167 - 13 0.826 - 14 0.134 - 15 0.00257 - 16 0.000643 - 30 0.0045 - 41 0.00836 - 42 0.00129 - 46 0.00193 - 47 0.00129 - - 14 982 10 0 - 3 0.00102 - 7 0.00102 - 8 0.00204 - 13 0.196 - 14 0.785 - 15 0.0102 - 16 0.00102 - 19 0.00204 - 33 0.00102 - 41 0.00102 - - 15 1822 10 0 - 8 0.0011 - 13 0.00549 - 14 0.000549 - 15 0.945 - 16 0.0406 - 18 0.0011 - 19 0.0011 - 30 0.000549 - 41 0.00384 - 43 0.000549 - - 16 66 3 0 - 14 0.0152 - 15 0.455 - 16 0.53 - - 19 5 3 0 - 7 0.2 - 15 0.2 - 19 0.6 - - 20 5 2 0 - 7 0.2 - 20 0.8 - - 21 4 2 0 - 13 0.5 - 21 0.5 - - 28 4 1 0 - 28 1 - - 30 15 3 0 - 13 0.333 - 14 0.0667 - 30 0.6 - - 31 4 2 0 - 13 0.75 - 31 0.25 - - 45 12 3 0 - 15 0.0833 - 42 0.167 - 46 0.75 - - 47 9 8 0 - 0 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 28 0.111 - 41 0.111 - 45 0.111 - 46 0.111 - - 48 3 2 0 - 13 0.667 - 31 0.333 - - 49 1 1 0 - 41 1 - - 54 2 2 0 - 15 0.5 - 41 0.5 - - 55 57 18 0 - 0 0.0351 - 2 0.0351 - 3 0.0351 - 7 0.193 - 13 0.0877 - 14 0.0526 - 15 0.0877 - 21 0.0175 - 26 0.0175 - 28 0.0175 - 29 0.0175 - 30 0.0175 - 33 0.0175 - 34 0.0175 - 41 0.105 - 42 0.0526 - 46 0.0175 - 47 0.175 - - 56 1 1 0 - 7 1 - - 57 2 2 0 - 41 0.5 - 44 0.5 - - 3 14951 40 22 - 0 0.0276 - 1 0.000334 - 2 0.0587 - 3 0.0198 - 4 0.0795 - 7 0.288 - 8 0.0544 - 9 0.000401 - 10 0.00114 - 12 0.000134 - 13 0.0364 - 14 0.00408 - 15 0.0177 - 16 6.69e-05 - 18 0.0093 - 19 0.001 - 20 0.00816 - 21 0.0375 - 24 0.00294 - 25 6.69e-05 - 26 0.066 - 28 0.0289 - 29 0.106 - 30 0.0142 - 31 0.0122 - 32 0.00375 - 33 0.0142 - 34 0.00127 - 35 0.000201 - 37 0.000936 - 38 0.00087 - 39 0.000535 - 40 0.000334 - 41 0.0413 - 42 0.026 - 43 0.000669 - 44 0.00261 - 45 0.00348 - 46 0.00107 - 47 0.0286 - - 2 89 12 0 - 0 0.0337 - 2 0.0112 - 4 0.124 - 7 0.461 - 8 0.0449 - 13 0.0225 - 20 0.0225 - 21 0.0337 - 28 0.0112 - 41 0.213 - 45 0.0112 - 46 0.0112 - - 3 284 22 0 - 0 0.00704 - 2 0.0141 - 3 0.00352 - 4 0.0141 - 7 0.387 - 8 0.0176 - 13 0.00352 - 14 0.0106 - 15 0.00352 - 21 0.0176 - 26 0.268 - 28 0.0141 - 29 0.13 - 30 0.00352 - 31 0.0211 - 33 0.0106 - 34 0.00704 - 39 0.00704 - 41 0.0141 - 42 0.0352 - 45 0.00352 - 47 0.00704 - - 7 3 1 0 - 4 1 - - 8 787 30 0 - 0 0.0419 - 1 0.00127 - 2 0.0801 - 3 0.0102 - 4 0.131 - 7 0.26 - 8 0.0305 - 13 0.00635 - 14 0.00254 - 15 0.0152 - 18 0.0343 - 20 0.0267 - 21 0.0178 - 24 0.0127 - 26 0.0165 - 28 0.0394 - 29 0.0496 - 30 0.0267 - 31 0.0114 - 32 0.00508 - 33 0.033 - 34 0.00127 - 35 0.00127 - 37 0.00254 - 39 0.00127 - 41 0.0343 - 42 0.0114 - 44 0.00127 - 45 0.00381 - 47 0.0902 - - 9 19 8 0 - 0 0.158 - 7 0.263 - 13 0.0526 - 28 0.0526 - 29 0.158 - 30 0.0526 - 41 0.0526 - 47 0.211 - - 10 28 4 0 - 4 0.643 - 7 0.0357 - 18 0.25 - 20 0.0714 - - 13 4530 37 0 - 0 0.0232 - 1 0.000442 - 2 0.0433 - 3 0.00596 - 4 0.0656 - 7 0.201 - 8 0.0272 - 9 0.000221 - 10 0.000662 - 12 0.000221 - 13 0.0347 - 14 0.00177 - 15 0.034 - 18 0.0102 - 20 0.00927 - 21 0.0408 - 24 0.00419 - 25 0.000221 - 26 0.0682 - 28 0.0563 - 29 0.179 - 30 0.0143 - 31 0.015 - 32 0.00574 - 33 0.0232 - 34 0.000442 - 35 0.000442 - 37 0.0011 - 39 0.000442 - 40 0.0011 - 41 0.0219 - 42 0.07 - 43 0.00177 - 44 0.00287 - 45 0.00419 - 46 0.0011 - 47 0.0302 - - 14 4275 34 0 - 0 0.0262 - 2 0.106 - 3 0.00819 - 4 0.116 - 7 0.244 - 8 0.0952 - 9 0.000234 - 10 0.00257 - 13 0.0732 - 14 0.00444 - 15 0.0133 - 16 0.000234 - 18 0.0101 - 19 0.00211 - 20 0.00959 - 21 0.0428 - 24 0.00281 - 26 0.0414 - 28 0.018 - 29 0.0648 - 30 0.0131 - 31 0.0159 - 32 0.00327 - 33 0.00912 - 34 0.00211 - 37 0.000468 - 39 0.000468 - 41 0.0409 - 42 0.00795 - 43 0.000234 - 44 0.00234 - 45 0.00234 - 46 0.000234 - 47 0.0201 - - 15 275 26 0 - 0 0.0182 - 2 0.0291 - 3 0.00364 - 4 0.2 - 7 0.153 - 8 0.0327 - 13 0.0436 - 15 0.08 - 18 0.04 - 19 0.00364 - 20 0.0291 - 21 0.00727 - 26 0.0182 - 28 0.0473 - 29 0.0509 - 30 0.0109 - 31 0.0145 - 32 0.00364 - 33 0.0545 - 34 0.0109 - 41 0.0582 - 42 0.00727 - 44 0.00727 - 45 0.00364 - 46 0.00364 - 47 0.0691 - - 16 24 11 0 - 0 0.0417 - 2 0.0417 - 4 0.375 - 7 0.167 - 8 0.0417 - 28 0.0417 - 29 0.0833 - 30 0.0833 - 33 0.0417 - 46 0.0417 - 47 0.0417 - - 18 25 6 0 - 4 0.04 - 7 0.64 - 15 0.2 - 26 0.04 - 28 0.04 - 29 0.04 - - 21 20 6 0 - 2 0.05 - 4 0.1 - 7 0.7 - 20 0.05 - 41 0.05 - 44 0.05 - - 30 15 6 0 - 4 0.267 - 7 0.333 - 18 0.0667 - 20 0.0667 - 28 0.133 - 47 0.133 - - 31 22 12 0 - 0 0.0909 - 2 0.0455 - 4 0.0909 - 7 0.273 - 8 0.0455 - 13 0.136 - 20 0.0455 - 29 0.0909 - 30 0.0455 - 39 0.0455 - 41 0.0455 - 47 0.0455 - - 41 29 8 0 - 2 0.0345 - 3 0.0345 - 4 0.069 - 7 0.172 - 8 0.241 - 21 0.069 - 28 0.0345 - 41 0.345 - - 43 1 1 0 - 44 1 - - 45 9 6 0 - 2 0.222 - 4 0.222 - 7 0.222 - 15 0.111 - 20 0.111 - 28 0.111 - - 46 4 3 0 - 8 0.25 - 13 0.25 - 45 0.5 - - 47 4447 34 0 - 0 0.0324 - 1 0.00045 - 2 0.0322 - 3 0.0501 - 4 0.0369 - 7 0.422 - 8 0.0515 - 9 0.000899 - 10 0.000675 - 12 0.000225 - 13 0.0103 - 14 0.00652 - 15 0.00225 - 19 0.00112 - 20 0.000225 - 21 0.0376 - 24 0.000675 - 26 0.0911 - 28 0.00967 - 29 0.0902 - 30 0.0139 - 31 0.00607 - 32 0.00225 - 33 0.00472 - 34 0.00045 - 37 0.000899 - 38 0.00292 - 41 0.0573 - 42 0.00382 - 43 0.000225 - 44 0.00247 - 45 0.00337 - 46 0.00135 - 47 0.0232 - - 48 43 14 0 - 0 0.0233 - 4 0.233 - 7 0.163 - 8 0.0233 - 13 0.0698 - 15 0.0233 - 18 0.093 - 28 0.0233 - 29 0.0233 - 33 0.0233 - 37 0.0233 - 41 0.209 - 46 0.0233 - 47 0.0465 - - 54 7 4 0 - 2 0.143 - 4 0.429 - 7 0.286 - 8 0.143 - - 55 9 8 0 - 2 0.111 - 4 0.222 - 7 0.111 - 8 0.111 - 15 0.111 - 20 0.111 - 32 0.111 - 33 0.111 - - 4 80857 41 32 - 0 0.0477 - 1 0.000742 - 2 0.0329 - 3 0.0128 - 4 0.00155 - 5 2.47e-05 - 6 2.47e-05 - 7 0.398 - 8 0.00234 - 9 0.000247 - 10 0.000371 - 12 0.000408 - 13 0.0102 - 14 0.0123 - 15 0.00247 - 16 9.89e-05 - 17 0.00409 - 18 2.47e-05 - 19 0.00233 - 21 0.0171 - 22 0.002 - 23 1.24e-05 - 24 0.00694 - 26 0.0309 - 28 0.0629 - 29 0.0511 - 30 0.0334 - 31 0.0145 - 32 0.0125 - 33 0.0213 - 34 0.00146 - 35 0.00124 - 37 0.00651 - 40 4.95e-05 - 41 0.0794 - 42 0.0066 - 43 0.00042 - 44 0.00117 - 45 0.0123 - 46 0.0031 - 47 0.107 - - 2 16 6 0 - 7 0.312 - 26 0.0625 - 28 0.25 - 30 0.188 - 32 0.0625 - 47 0.125 - - 3 1180 26 0 - 0 0.0127 - 2 0.0314 - 3 0.00169 - 7 0.618 - 8 0.00169 - 13 0.00678 - 14 0.00254 - 15 0.000847 - 17 0.00169 - 21 0.00763 - 24 0.00254 - 26 0.0178 - 28 0.0356 - 29 0.0322 - 30 0.0322 - 31 0.00847 - 32 0.00339 - 33 0.00763 - 34 0.000847 - 37 0.00508 - 41 0.05 - 42 0.00763 - 44 0.00169 - 45 0.00254 - 46 0.00254 - 47 0.105 - - 4 71 16 0 - 0 0.0423 - 7 0.394 - 8 0.0141 - 13 0.0141 - 21 0.0423 - 24 0.0141 - 28 0.0845 - 29 0.0141 - 30 0.0563 - 31 0.0282 - 32 0.0423 - 33 0.0282 - 41 0.0282 - 42 0.0141 - 45 0.0563 - 47 0.127 - - 6 18 9 0 - 0 0.0556 - 2 0.111 - 7 0.389 - 8 0.0556 - 28 0.111 - 31 0.0556 - 35 0.0556 - 41 0.0556 - 47 0.111 - - 7 1 1 0 - 15 1 - - 8 17405 38 0 - 0 0.078 - 1 0.00109 - 2 0.0307 - 3 0.00167 - 4 0.000862 - 5 0.000115 - 7 0.426 - 8 0.00184 - 9 5.75e-05 - 10 0.000632 - 12 0.000402 - 13 0.00718 - 14 0.00431 - 15 0.00218 - 16 5.75e-05 - 17 0.00287 - 19 0.00247 - 21 0.0196 - 22 5.75e-05 - 24 0.00678 - 26 0.0298 - 28 0.0666 - 29 0.0525 - 30 0.0357 - 31 0.0159 - 32 0.0133 - 33 0.0219 - 34 0.000804 - 35 0.000919 - 37 0.00368 - 40 5.75e-05 - 41 0.0705 - 42 0.00672 - 43 0.000172 - 44 0.000689 - 45 0.0106 - 46 0.00195 - 47 0.0812 - - 9 397 24 0 - 0 0.0907 - 2 0.063 - 7 0.378 - 13 0.00504 - 14 0.00756 - 15 0.00756 - 16 0.00252 - 17 0.00252 - 19 0.0101 - 21 0.0126 - 24 0.00252 - 26 0.0327 - 28 0.0932 - 29 0.0403 - 30 0.0529 - 31 0.0126 - 32 0.0277 - 33 0.0428 - 37 0.00252 - 41 0.0479 - 42 0.00756 - 44 0.00252 - 45 0.00252 - 47 0.0529 - - 10 727 22 0 - 0 0.144 - 1 0.00275 - 2 0.0151 - 7 0.38 - 13 0.00275 - 17 0.00138 - 19 0.00138 - 21 0.0578 - 24 0.00138 - 26 0.0289 - 28 0.0385 - 29 0.0399 - 30 0.00825 - 31 0.0165 - 32 0.0206 - 33 0.0179 - 37 0.00138 - 41 0.0894 - 42 0.011 - 44 0.00275 - 45 0.0179 - 47 0.1 - - 12 2 2 0 - 0 0.5 - 2 0.5 - - 13 38560 39 0 - 0 0.0431 - 1 0.000726 - 2 0.0281 - 3 0.0249 - 4 0.00114 - 6 2.59e-05 - 7 0.377 - 8 0.00319 - 9 0.000441 - 10 0.000363 - 12 0.000441 - 13 0.0138 - 14 0.0218 - 15 0.00265 - 16 7.78e-05 - 17 0.00423 - 18 5.19e-05 - 19 0.00202 - 21 0.0182 - 22 0.00412 - 24 0.00747 - 26 0.0309 - 28 0.0659 - 29 0.0534 - 30 0.0347 - 31 0.0155 - 32 0.0119 - 33 0.0219 - 34 0.00187 - 35 0.00119 - 37 0.00778 - 40 2.59e-05 - 41 0.0783 - 42 0.00578 - 43 0.000622 - 44 0.00137 - 45 0.0108 - 46 0.00371 - 47 0.101 - - 14 5945 33 0 - 0 0.0192 - 2 0.0441 - 4 0.00404 - 7 0.376 - 8 0.00202 - 10 0.000336 - 12 0.000168 - 13 0.00673 - 14 0.00471 - 15 0.000505 - 16 0.000168 - 17 0.0116 - 19 0.000505 - 21 0.0104 - 23 0.000168 - 24 0.00976 - 26 0.031 - 28 0.0833 - 29 0.0474 - 30 0.0368 - 31 0.00908 - 32 0.0172 - 33 0.02 - 34 0.00118 - 35 0.0032 - 37 0.00622 - 41 0.076 - 42 0.00706 - 43 0.000168 - 44 0.00135 - 45 0.0163 - 46 0.00219 - 47 0.152 - - 15 8602 35 0 - 0 0.0117 - 1 0.000465 - 2 0.0398 - 3 0.000581 - 4 0.00221 - 7 0.483 - 8 0.000581 - 12 0.000698 - 13 0.00581 - 14 0.00174 - 15 0.00267 - 16 0.000116 - 17 0.00093 - 19 0.00105 - 21 0.00523 - 22 0.000116 - 24 0.00302 - 26 0.038 - 28 0.0367 - 29 0.031 - 30 0.0208 - 31 0.0086 - 32 0.00732 - 33 0.0166 - 34 0.00221 - 35 0.00105 - 37 0.0086 - 40 0.000116 - 41 0.114 - 42 0.00546 - 43 0.000116 - 44 0.000814 - 45 0.00802 - 46 0.0057 - 47 0.135 - - 16 411 25 0 - 0 0.00243 - 2 0.0706 - 4 0.00243 - 7 0.406 - 13 0.0243 - 14 0.00487 - 17 0.00243 - 21 0.0219 - 24 0.00973 - 26 0.0487 - 28 0.0535 - 29 0.0316 - 30 0.0219 - 31 0.0073 - 32 0.00487 - 33 0.0073 - 34 0.00487 - 35 0.00243 - 37 0.0292 - 40 0.00243 - 41 0.0925 - 42 0.00487 - 44 0.00243 - 45 0.0122 - 47 0.129 - - 19 14 8 0 - 2 0.143 - 7 0.214 - 21 0.0714 - 26 0.143 - 29 0.0714 - 41 0.0714 - 45 0.143 - 47 0.143 - - 20 23 9 0 - 7 0.304 - 21 0.087 - 24 0.087 - 28 0.174 - 30 0.0435 - 31 0.0435 - 32 0.13 - 35 0.0435 - 45 0.087 - - 21 134 19 0 - 0 0.231 - 2 0.0149 - 4 0.00746 - 7 0.291 - 14 0.0224 - 15 0.00746 - 19 0.0224 - 21 0.0448 - 24 0.0149 - 26 0.0224 - 28 0.0522 - 29 0.0299 - 30 0.0522 - 33 0.0299 - 37 0.00746 - 41 0.0746 - 42 0.0149 - 45 0.0373 - 47 0.0224 - - 22 13 7 0 - 0 0.0769 - 4 0.0769 - 7 0.462 - 28 0.0769 - 29 0.0769 - 30 0.154 - 33 0.0769 - - 23 34 11 0 - 0 0.206 - 2 0.0294 - 7 0.235 - 21 0.0294 - 26 0.0294 - 28 0.0294 - 29 0.0588 - 31 0.0882 - 42 0.0294 - 45 0.0588 - 47 0.206 - - 30 600 27 0 - 0 0.0817 - 1 0.00333 - 2 0.0267 - 7 0.398 - 8 0.00167 - 13 0.005 - 14 0.00167 - 15 0.00333 - 17 0.005 - 19 0.00167 - 21 0.015 - 24 0.01 - 26 0.0333 - 28 0.055 - 29 0.0433 - 30 0.0367 - 31 0.00833 - 32 0.0217 - 33 0.045 - 34 0.00167 - 37 0.00667 - 41 0.0767 - 42 0.00833 - 43 0.00167 - 45 0.00833 - 46 0.00167 - 47 0.0983 - - 31 594 25 0 - 0 0.0303 - 2 0.0354 - 4 0.00673 - 7 0.468 - 8 0.00168 - 9 0.00168 - 13 0.00842 - 14 0.00337 - 17 0.00337 - 19 0.00168 - 21 0.00673 - 22 0.00168 - 24 0.0118 - 26 0.0286 - 28 0.0724 - 29 0.0825 - 30 0.0488 - 31 0.0152 - 32 0.0168 - 33 0.0118 - 37 0.00673 - 41 0.0488 - 42 0.00842 - 45 0.00168 - 47 0.0774 - - 39 26 10 0 - 2 0.0769 - 7 0.5 - 13 0.0385 - 14 0.0385 - 21 0.0385 - 26 0.115 - 29 0.0769 - 30 0.0385 - 41 0.0385 - 47 0.0385 - - 44 28 10 0 - 0 0.0714 - 2 0.107 - 7 0.393 - 19 0.0357 - 21 0.0357 - 28 0.0357 - 30 0.0357 - 35 0.0357 - 41 0.0357 - 45 0.214 - - 45 444 26 0 - 0 0.0968 - 1 0.00901 - 2 0.0203 - 7 0.358 - 9 0.00225 - 13 0.027 - 14 0.0045 - 15 0.0113 - 16 0.00225 - 17 0.00676 - 19 0.0113 - 21 0.0158 - 24 0.0045 - 26 0.027 - 28 0.0676 - 29 0.0968 - 30 0.0495 - 31 0.045 - 32 0.00676 - 33 0.0518 - 37 0.00225 - 41 0.0293 - 42 0.0135 - 45 0.00225 - 46 0.00225 - 47 0.036 - - 47 2538 32 0 - 0 0.0303 - 2 0.0693 - 3 0.0146 - 4 0.00473 - 7 0.265 - 8 0.00197 - 10 0.000394 - 12 0.000394 - 13 0.00709 - 14 0.00512 - 15 0.00197 - 17 0.0106 - 19 0.0118 - 21 0.0296 - 24 0.00591 - 26 0.0209 - 28 0.0571 - 29 0.0201 - 30 0.0197 - 31 0.00906 - 32 0.0197 - 33 0.015 - 34 0.000394 - 35 0.00236 - 37 0.00591 - 41 0.0563 - 42 0.0146 - 43 0.00118 - 44 0.00355 - 45 0.0583 - 46 0.00197 - 47 0.235 - - 48 2419 31 0 - 0 0.0864 - 1 0.000413 - 2 0.0364 - 3 0.00165 - 4 0.000827 - 6 0.000413 - 7 0.329 - 8 0.00248 - 10 0.000827 - 12 0.000413 - 13 0.00537 - 14 0.000827 - 15 0.00661 - 17 0.000413 - 19 0.00331 - 21 0.0215 - 24 0.0103 - 26 0.0302 - 28 0.0566 - 29 0.127 - 30 0.0463 - 31 0.0265 - 32 0.012 - 33 0.0294 - 37 0.00248 - 41 0.0744 - 42 0.00951 - 43 0.000413 - 45 0.0112 - 46 0.000827 - 47 0.0661 - - 49 8 4 0 - 0 0.375 - 7 0.375 - 29 0.125 - 32 0.125 - - 54 240 13 0 - 0 0.0125 - 2 0.0125 - 7 0.292 - 13 0.00417 - 26 0.00833 - 28 0.00833 - 29 0.0208 - 30 0.0208 - 31 0.0167 - 33 0.0208 - 41 0.383 - 42 0.00417 - 47 0.196 - - 55 157 17 0 - 0 0.0318 - 2 0.00637 - 7 0.395 - 13 0.00637 - 19 0.00637 - 21 0.00637 - 24 0.0127 - 26 0.0318 - 28 0.0446 - 29 0.0637 - 30 0.0318 - 31 0.0318 - 32 0.00637 - 33 0.0318 - 34 0.00637 - 41 0.146 - 47 0.14 - - 56 123 14 0 - 0 0.065 - 2 0.0325 - 7 0.463 - 21 0.0244 - 26 0.0325 - 28 0.0732 - 30 0.0244 - 31 0.00813 - 32 0.0325 - 33 0.0244 - 41 0.114 - 42 0.0163 - 45 0.00813 - 47 0.0813 - - 58 10 6 0 - 0 0.1 - 7 0.4 - 28 0.1 - 29 0.1 - 45 0.2 - 47 0.1 - - 60 63 9 0 - 0 0.0476 - 2 0.0317 - 7 0.714 - 21 0.0159 - 26 0.0476 - 28 0.0952 - 29 0.0159 - 30 0.0159 - 41 0.0159 - - 68 43 11 0 - 0 0.0465 - 2 0.0233 - 4 0.0465 - 7 0.628 - 26 0.0465 - 28 0.0233 - 29 0.0233 - 30 0.0465 - 33 0.0465 - 41 0.0233 - 47 0.0465 - - 5 861 24 0 - 0 0.00581 - 2 0.0918 - 7 0.18 - 8 0.00465 - 10 0.00348 - 13 0.0186 - 14 0.00465 - 15 0.00232 - 16 0.00116 - 19 0.00232 - 21 0.029 - 28 0.0163 - 29 0.0395 - 30 0.00465 - 31 0.00232 - 32 0.0279 - 33 0.0151 - 34 0.00813 - 37 0.0267 - 41 0.143 - 42 0.00813 - 44 0.00232 - 45 0.167 - 47 0.195 - - 6 150 19 6 - 2 0.0133 - 3 0.00667 - 4 0.127 - 6 0.193 - 7 0.12 - 8 0.02 - 15 0.28 - 18 0.0133 - 19 0.00667 - 20 0.0133 - 25 0.0133 - 26 0.0133 - 28 0.0133 - 29 0.00667 - 32 0.00667 - 33 0.00667 - 41 0.0333 - 45 0.0667 - 47 0.0467 - - 6 29 12 0 - 2 0.0345 - 4 0.241 - 6 0.172 - 7 0.138 - 8 0.0345 - 15 0.0345 - 18 0.069 - 28 0.0345 - 29 0.0345 - 41 0.0345 - 45 0.069 - 47 0.103 - - 13 12 4 0 - 4 0.25 - 6 0.583 - 8 0.0833 - 15 0.0833 - - 14 7 3 0 - 3 0.143 - 6 0.714 - 7 0.143 - - 15 42 2 0 - 6 0.0476 - 15 0.952 - - 46 2 1 0 - 45 1 - - 47 53 14 0 - 2 0.0189 - 4 0.151 - 6 0.17 - 7 0.226 - 19 0.0189 - 20 0.0377 - 25 0.0377 - 26 0.0377 - 28 0.0189 - 32 0.0189 - 33 0.0189 - 41 0.0755 - 45 0.0943 - 47 0.0755 - - 7 318 24 10 - 0 0.044 - 2 0.0314 - 3 0.0157 - 4 0.00314 - 7 0.151 - 8 0.0126 - 10 0.00314 - 13 0.132 - 14 0.0975 - 15 0.0943 - 18 0.00314 - 21 0.0535 - 26 0.0283 - 28 0.0566 - 29 0.0409 - 30 0.022 - 31 0.022 - 32 0.00943 - 33 0.0252 - 35 0.00314 - 41 0.0472 - 42 0.00943 - 45 0.00943 - 47 0.0849 - - 3 47 13 0 - 0 0.0851 - 3 0.0638 - 7 0.468 - 13 0.0426 - 15 0.0213 - 21 0.0213 - 26 0.106 - 29 0.0213 - 30 0.0426 - 31 0.0213 - 41 0.0638 - 42 0.0213 - 47 0.0213 - - 4 30 11 0 - 0 0.167 - 7 0.233 - 15 0.1 - 21 0.1 - 26 0.0667 - 28 0.0333 - 31 0.0333 - 33 0.0667 - 41 0.1 - 45 0.0333 - 47 0.0667 - - 8 19 11 0 - 0 0.0526 - 4 0.0526 - 7 0.0526 - 8 0.0526 - 14 0.0526 - 21 0.105 - 26 0.0526 - 28 0.316 - 29 0.105 - 31 0.105 - 41 0.0526 - - 13 86 17 0 - 0 0.0116 - 2 0.0116 - 3 0.0116 - 7 0.0581 - 8 0.0233 - 10 0.0116 - 13 0.337 - 14 0.267 - 18 0.0116 - 21 0.0698 - 28 0.0116 - 29 0.0349 - 30 0.0116 - 32 0.0116 - 33 0.0233 - 41 0.0581 - 47 0.0349 - - 14 2 2 0 - 45 0.5 - 47 0.5 - - 15 49 8 0 - 7 0.0204 - 13 0.184 - 14 0.102 - 15 0.531 - 28 0.0204 - 30 0.0408 - 31 0.0612 - 47 0.0408 - - 21 3 2 0 - 2 0.333 - 28 0.667 - - 39 2 2 0 - 21 0.5 - 26 0.5 - - 47 67 17 0 - 0 0.0448 - 2 0.119 - 7 0.149 - 8 0.0149 - 13 0.0149 - 14 0.0149 - 21 0.0597 - 28 0.104 - 29 0.0746 - 30 0.0149 - 32 0.0299 - 33 0.0448 - 35 0.0149 - 41 0.0299 - 42 0.0149 - 45 0.0149 - 47 0.239 - - 55 6 5 0 - 7 0.333 - 13 0.167 - 14 0.167 - 41 0.167 - 42 0.167 - - 8 48850 43 29 - 0 0.0133 - 1 0.000184 - 2 0.0351 - 3 0.0255 - 4 0.357 - 6 0.000143 - 7 0.172 - 8 0.0864 - 9 0.00254 - 10 0.00328 - 12 6.14e-05 - 13 0.0137 - 14 0.00282 - 15 0.0132 - 16 0.000246 - 17 2.05e-05 - 18 0.0354 - 19 0.000676 - 20 0.0406 - 21 0.00948 - 22 0.00086 - 23 0.00102 - 24 0.00264 - 25 2.05e-05 - 26 0.0131 - 28 0.0268 - 29 0.0167 - 30 0.0198 - 31 0.0105 - 32 0.00571 - 33 0.0085 - 34 0.000655 - 35 0.000205 - 36 6.14e-05 - 37 0.00192 - 40 4.09e-05 - 41 0.0306 - 42 0.00268 - 43 0.000368 - 44 0.00086 - 45 0.0123 - 46 0.000512 - 47 0.0316 - - 2 152 23 0 - 0 0.00658 - 2 0.0132 - 3 0.0263 - 4 0.289 - 7 0.23 - 8 0.0395 - 9 0.00658 - 13 0.0132 - 15 0.0263 - 18 0.0263 - 20 0.0197 - 21 0.0132 - 24 0.00658 - 26 0.0263 - 28 0.0263 - 30 0.0197 - 32 0.0132 - 33 0.0197 - 41 0.0855 - 42 0.00658 - 44 0.00658 - 45 0.0526 - 47 0.0263 - - 3 710 19 0 - 0 0.00282 - 2 0.00282 - 3 0.00845 - 4 0.785 - 7 0.141 - 8 0.00282 - 14 0.00282 - 18 0.0183 - 20 0.0127 - 21 0.00141 - 26 0.00141 - 28 0.00282 - 29 0.00563 - 30 0.00282 - 32 0.00141 - 33 0.00141 - 41 0.00141 - 42 0.00282 - 45 0.00282 - - 4 67 13 0 - 0 0.134 - 2 0.0299 - 7 0.328 - 21 0.0597 - 24 0.0149 - 26 0.0149 - 28 0.164 - 29 0.0149 - 30 0.0597 - 37 0.0149 - 41 0.0299 - 45 0.0149 - 47 0.119 - - 6 2 2 0 - 3 0.5 - 8 0.5 - - 8 3996 36 0 - 0 0.0133 - 1 0.000501 - 2 0.0511 - 3 0.0198 - 4 0.362 - 7 0.183 - 8 0.0568 - 9 0.00025 - 10 0.0015 - 13 0.00701 - 14 0.000501 - 15 0.00475 - 18 0.0455 - 19 0.001 - 20 0.048 - 21 0.00551 - 22 0.000751 - 23 0.00025 - 24 0.00375 - 26 0.00976 - 28 0.0263 - 29 0.0235 - 30 0.0205 - 31 0.00826 - 32 0.00676 - 33 0.00826 - 35 0.000501 - 37 0.00225 - 40 0.00025 - 41 0.04 - 42 0.00601 - 43 0.000501 - 44 0.000501 - 45 0.01 - 46 0.00025 - 47 0.0313 - - 9 12 8 0 - 0 0.0833 - 2 0.0833 - 4 0.417 - 7 0.0833 - 18 0.0833 - 31 0.0833 - 45 0.0833 - 47 0.0833 - - 10 7 3 0 - 4 0.429 - 7 0.143 - 18 0.429 - - 13 26070 40 0 - 0 0.011 - 1 0.000153 - 2 0.024 - 3 0.0157 - 4 0.465 - 6 0.000192 - 7 0.112 - 8 0.0908 - 9 0.00226 - 10 0.00315 - 13 0.0171 - 14 0.00345 - 15 0.0185 - 16 0.000345 - 18 0.043 - 19 0.000575 - 20 0.0436 - 21 0.00832 - 22 0.000921 - 23 0.000806 - 24 0.00146 - 25 3.84e-05 - 26 0.00809 - 28 0.0181 - 29 0.0136 - 30 0.0134 - 31 0.00951 - 32 0.00326 - 33 0.0061 - 34 0.000614 - 35 0.000115 - 36 7.67e-05 - 37 0.00119 - 41 0.0252 - 42 0.00153 - 43 0.000422 - 44 0.000959 - 45 0.0114 - 46 0.00046 - 47 0.0233 - - 14 13431 41 0 - 0 0.0187 - 1 0.000223 - 2 0.0561 - 3 0.0497 - 4 0.12 - 6 0.000149 - 7 0.281 - 8 0.11 - 9 0.00439 - 10 0.00499 - 12 0.000223 - 13 0.00864 - 14 0.00127 - 15 0.00849 - 16 0.000149 - 18 0.0237 - 19 0.00067 - 20 0.0344 - 21 0.00834 - 22 0.000968 - 23 0.00119 - 24 0.00499 - 26 0.0237 - 28 0.0472 - 29 0.0201 - 30 0.0331 - 31 0.0135 - 32 0.0108 - 33 0.0134 - 34 0.000968 - 35 0.000298 - 36 7.45e-05 - 37 0.00328 - 40 7.45e-05 - 41 0.0369 - 42 0.00335 - 43 0.000298 - 44 0.00067 - 45 0.00752 - 46 0.000819 - 47 0.0462 - - 15 1891 29 0 - 0 0.00635 - 2 0.0212 - 3 0.028 - 4 0.366 - 7 0.24 - 8 0.0317 - 9 0.00159 - 10 0.000529 - 13 0.027 - 14 0.0111 - 15 0.01 - 18 0.0296 - 19 0.000529 - 20 0.0317 - 21 0.00687 - 24 0.000529 - 26 0.0169 - 28 0.0164 - 29 0.0196 - 30 0.0206 - 31 0.0169 - 32 0.00212 - 33 0.0074 - 37 0.00106 - 41 0.0365 - 42 0.0037 - 45 0.0037 - 46 0.000529 - 47 0.0418 - - 16 101 21 0 - 2 0.0594 - 3 0.0396 - 4 0.168 - 7 0.277 - 8 0.0396 - 10 0.0099 - 13 0.0297 - 15 0.0198 - 20 0.0396 - 21 0.0099 - 26 0.0297 - 28 0.0198 - 29 0.0099 - 30 0.0297 - 31 0.0198 - 32 0.0099 - 33 0.0198 - 41 0.0495 - 42 0.0198 - 45 0.0099 - 47 0.0891 - - 18 12 5 0 - 4 0.583 - 7 0.0833 - 8 0.0833 - 13 0.167 - 47 0.0833 - - 21 3 3 0 - 2 0.333 - 4 0.333 - 15 0.333 - - 30 120 24 0 - 0 0.00833 - 2 0.158 - 3 0.0333 - 4 0.267 - 7 0.15 - 8 0.0333 - 10 0.00833 - 13 0.00833 - 14 0.00833 - 15 0.00833 - 18 0.05 - 20 0.05 - 21 0.0167 - 24 0.00833 - 26 0.0167 - 28 0.0333 - 29 0.00833 - 30 0.0333 - 31 0.00833 - 32 0.00833 - 33 0.025 - 41 0.025 - 45 0.00833 - 47 0.025 - - 31 89 15 0 - 0 0.0225 - 2 0.0112 - 3 0.0112 - 4 0.258 - 7 0.247 - 8 0.124 - 13 0.0674 - 15 0.0337 - 18 0.0562 - 20 0.0337 - 21 0.0112 - 28 0.0225 - 29 0.0449 - 30 0.0337 - 47 0.0225 - - 39 13 2 0 - 4 0.923 - 19 0.0769 - - 41 312 24 0 - 0 0.0128 - 2 0.00962 - 3 0.00641 - 4 0.471 - 7 0.17 - 8 0.0417 - 15 0.00321 - 18 0.00641 - 20 0.0577 - 21 0.00641 - 23 0.00321 - 24 0.00321 - 26 0.0128 - 28 0.0128 - 29 0.00641 - 30 0.00962 - 31 0.00321 - 32 0.00962 - 33 0.016 - 34 0.00321 - 41 0.0641 - 42 0.00641 - 45 0.0192 - 47 0.0449 - - 43 3 3 0 - 2 0.333 - 4 0.333 - 44 0.333 - - 44 7 5 0 - 2 0.143 - 4 0.286 - 7 0.286 - 21 0.143 - 29 0.143 - - 45 95 14 0 - 0 0.0105 - 2 0.0211 - 3 0.0105 - 4 0.537 - 7 0.147 - 8 0.0526 - 13 0.0105 - 18 0.0316 - 20 0.0421 - 28 0.0421 - 30 0.0211 - 31 0.0105 - 41 0.0526 - 47 0.0105 - - 46 136 9 0 - 2 0.00735 - 4 0.00735 - 8 0.0221 - 16 0.00735 - 19 0.00735 - 20 0.00735 - 21 0.0147 - 41 0.0147 - 45 0.912 - - 47 1224 33 0 - 0 0.018 - 2 0.0359 - 3 0.0098 - 4 0.393 - 7 0.151 - 8 0.0237 - 9 0.000817 - 10 0.00163 - 13 0.0106 - 14 0.00408 - 18 0.000817 - 19 0.00163 - 20 0.0474 - 21 0.0637 - 22 0.00163 - 23 0.00817 - 24 0.00163 - 26 0.0147 - 28 0.0221 - 29 0.0327 - 30 0.0163 - 31 0.00817 - 32 0.00654 - 33 0.0106 - 34 0.00163 - 35 0.000817 - 37 0.0049 - 41 0.0408 - 42 0.00572 - 43 0.000817 - 44 0.00327 - 45 0.00654 - 47 0.0507 - - 48 199 22 0 - 0 0.0101 - 2 0.0201 - 3 0.00503 - 4 0.533 - 7 0.121 - 8 0.0452 - 17 0.00503 - 18 0.0653 - 20 0.0704 - 21 0.0151 - 23 0.00503 - 24 0.00503 - 26 0.00503 - 28 0.0101 - 30 0.0151 - 31 0.00503 - 32 0.0101 - 33 0.00503 - 41 0.0201 - 42 0.00503 - 45 0.00503 - 47 0.0201 - - 54 13 5 0 - 4 0.385 - 7 0.308 - 8 0.154 - 20 0.0769 - 29 0.0769 - - 55 22 9 0 - 2 0.0455 - 3 0.0455 - 4 0.455 - 7 0.0909 - 8 0.0455 - 18 0.0909 - 20 0.0909 - 21 0.0909 - 30 0.0455 - - 56 68 12 0 - 2 0.0147 - 3 0.0294 - 4 0.309 - 7 0.221 - 8 0.0441 - 20 0.0882 - 26 0.0441 - 28 0.0735 - 29 0.0294 - 30 0.0441 - 31 0.0294 - 41 0.0735 - - 58 17 5 0 - 0 0.118 - 4 0.588 - 7 0.176 - 24 0.0588 - 33 0.0588 - - 60 30 3 0 - 4 0.9 - 7 0.0333 - 20 0.0667 - - 68 40 12 0 - 2 0.025 - 4 0.475 - 7 0.15 - 8 0.025 - 20 0.025 - 26 0.05 - 28 0.075 - 29 0.025 - 30 0.025 - 37 0.025 - 41 0.05 - 47 0.05 - - 9 1597 31 14 - 0 0.0601 - 1 0.00125 - 2 0.0507 - 3 0.015 - 4 0.249 - 7 0.193 - 8 0.0106 - 12 0.000626 - 13 0.0025 - 14 0.00689 - 15 0.0025 - 16 0.000626 - 18 0.0113 - 19 0.0025 - 20 0.0144 - 21 0.0244 - 24 0.00626 - 26 0.0288 - 28 0.102 - 29 0.0394 - 30 0.0557 - 31 0.01 - 32 0.0276 - 33 0.0244 - 34 0.000626 - 37 0.000626 - 41 0.025 - 42 0.00313 - 43 0.000626 - 45 0.01 - 47 0.02 - - 2 4 4 0 - 0 0.25 - 7 0.25 - 28 0.25 - 41 0.25 - - 3 5 1 0 - 4 1 - - 8 103 16 0 - 0 0.0291 - 2 0.117 - 4 0.214 - 7 0.243 - 21 0.0194 - 24 0.00971 - 26 0.0777 - 28 0.0485 - 29 0.0583 - 30 0.0485 - 31 0.0194 - 32 0.0291 - 33 0.0194 - 41 0.0291 - 45 0.0194 - 47 0.0194 - - 13 734 28 0 - 0 0.0436 - 1 0.00136 - 2 0.0354 - 3 0.0109 - 4 0.384 - 7 0.147 - 8 0.00954 - 12 0.00136 - 13 0.00136 - 14 0.00817 - 15 0.00545 - 16 0.00136 - 18 0.0177 - 19 0.00545 - 20 0.0123 - 21 0.0123 - 24 0.0109 - 26 0.03 - 28 0.0858 - 29 0.0245 - 30 0.045 - 31 0.00545 - 32 0.0232 - 33 0.0204 - 41 0.0327 - 42 0.00545 - 45 0.00545 - 47 0.0136 - - 14 473 26 0 - 0 0.0402 - 2 0.0465 - 3 0.0275 - 4 0.0867 - 7 0.296 - 8 0.0148 - 13 0.00211 - 14 0.00423 - 18 0.0106 - 20 0.0169 - 21 0.0127 - 24 0.00211 - 26 0.0317 - 28 0.123 - 29 0.0613 - 30 0.0677 - 31 0.00846 - 32 0.0317 - 33 0.0296 - 34 0.00211 - 37 0.00211 - 41 0.0233 - 42 0.00211 - 43 0.00211 - 45 0.0148 - 47 0.0402 - - 15 39 8 0 - 2 0.0513 - 4 0.513 - 7 0.154 - 20 0.0513 - 28 0.103 - 29 0.0256 - 30 0.0769 - 41 0.0256 - - 16 2 2 0 - 8 0.5 - 29 0.5 - - 30 2 2 0 - 2 0.5 - 26 0.5 - - 41 17 7 0 - 4 0.471 - 7 0.235 - 20 0.0588 - 30 0.0588 - 31 0.0588 - 32 0.0588 - 33 0.0588 - - 45 3 3 0 - 0 0.333 - 4 0.333 - 33 0.333 - - 46 1 1 0 - 45 1 - - 47 201 18 0 - 0 0.194 - 1 0.00498 - 2 0.0896 - 3 0.0149 - 4 0.0746 - 7 0.109 - 8 0.00995 - 13 0.00995 - 14 0.0149 - 20 0.00498 - 21 0.109 - 28 0.154 - 29 0.0398 - 30 0.0647 - 31 0.0249 - 32 0.0398 - 33 0.0299 - 45 0.00995 - - 48 4 3 0 - 4 0.25 - 7 0.25 - 20 0.5 - - 56 5 4 0 - 7 0.2 - 28 0.2 - 30 0.4 - 47 0.2 - - 10 1526 27 9 - 0 0.00197 - 2 0.0262 - 3 0.019 - 4 0.479 - 7 0.106 - 8 0.00524 - 13 0.00262 - 14 0.000655 - 18 0.132 - 19 0.000655 - 20 0.0511 - 21 0.0059 - 24 0.00459 - 26 0.00328 - 28 0.0105 - 29 0.0151 - 30 0.00655 - 31 0.00262 - 32 0.00328 - 33 0.00721 - 34 0.00131 - 35 0.00131 - 37 0.00262 - 41 0.0256 - 42 0.00262 - 45 0.0177 - 47 0.0655 - - 3 13 2 0 - 4 0.923 - 7 0.0769 - - 8 156 15 0 - 2 0.0128 - 3 0.0449 - 4 0.429 - 7 0.147 - 8 0.00641 - 18 0.154 - 20 0.0897 - 21 0.00641 - 28 0.00641 - 29 0.00641 - 35 0.00641 - 41 0.0192 - 42 0.00641 - 45 0.0321 - 47 0.0321 - - 13 661 14 0 - 2 0.00756 - 3 0.0121 - 4 0.632 - 7 0.0242 - 8 0.00756 - 13 0.00151 - 18 0.219 - 19 0.00151 - 20 0.059 - 28 0.00151 - 33 0.00151 - 37 0.00151 - 41 0.00756 - 47 0.0227 - - 14 291 20 0 - 2 0.0447 - 3 0.0412 - 4 0.316 - 7 0.22 - 8 0.00687 - 13 0.00344 - 14 0.00344 - 18 0.0962 - 20 0.0481 - 21 0.00687 - 26 0.00687 - 29 0.00687 - 33 0.0103 - 34 0.00344 - 35 0.00344 - 37 0.00344 - 41 0.055 - 42 0.00344 - 45 0.0447 - 47 0.0756 - - 15 19 9 0 - 2 0.0526 - 3 0.0526 - 4 0.211 - 7 0.263 - 26 0.0526 - 28 0.0526 - 33 0.105 - 41 0.0526 - 47 0.158 - - 16 3 3 0 - 4 0.333 - 7 0.333 - 32 0.333 - - 31 3 3 0 - 3 0.333 - 18 0.333 - 20 0.333 - - 47 359 21 0 - 0 0.00836 - 2 0.0501 - 4 0.351 - 7 0.139 - 13 0.00557 - 20 0.0279 - 21 0.0167 - 24 0.0195 - 26 0.00557 - 28 0.0362 - 29 0.0557 - 30 0.0279 - 31 0.00836 - 32 0.0111 - 33 0.0139 - 34 0.00279 - 37 0.00279 - 41 0.039 - 42 0.00557 - 45 0.0195 - 47 0.153 - - 56 3 3 0 - 4 0.333 - 31 0.333 - 37 0.333 - - 12 5 4 0 - 4 0.4 - 15 0.2 - 45 0.2 - 46 0.2 - - 13 129892 43 24 - 0 0.0054 - 1 0.000123 - 2 0.0201 - 3 0.0473 - 4 0.298 - 6 0.000123 - 7 0.0813 - 8 0.21 - 9 0.00684 - 10 0.00527 - 12 3.85e-05 - 13 0.123 - 14 0.0094 - 15 0.0406 - 16 0.000762 - 18 0.0276 - 19 0.000362 - 20 0.0287 - 21 0.00234 - 22 5.39e-05 - 23 7.7e-06 - 24 0.000993 - 25 1.54e-05 - 26 0.0052 - 27 1.54e-05 - 28 0.0115 - 29 0.00598 - 30 0.0138 - 31 0.00949 - 32 0.00208 - 33 0.00347 - 34 0.000223 - 35 0.000108 - 36 1.54e-05 - 37 0.000908 - 40 0.0001 - 41 0.0179 - 42 0.00142 - 43 0.000508 - 44 0.000608 - 45 0.00449 - 46 0.00184 - 47 0.0122 - - 2 1627 31 0 - 0 0.0086 - 2 0.0172 - 3 0.00738 - 4 0.189 - 7 0.205 - 8 0.144 - 9 0.00553 - 10 0.00246 - 13 0.0688 - 14 0.00738 - 15 0.0277 - 16 0.00123 - 18 0.0332 - 20 0.0424 - 21 0.00307 - 24 0.00123 - 26 0.0117 - 28 0.0203 - 29 0.0086 - 30 0.0178 - 31 0.0135 - 32 0.00246 - 33 0.00676 - 37 0.000615 - 41 0.119 - 42 0.0043 - 43 0.00123 - 44 0.00123 - 45 0.00615 - 46 0.000615 - 47 0.0209 - - 3 92 11 0 - 3 0.0217 - 4 0.478 - 7 0.174 - 8 0.0435 - 13 0.0217 - 15 0.0109 - 18 0.163 - 20 0.0217 - 30 0.0109 - 41 0.0435 - 45 0.0109 - - 4 1 1 0 - 31 1 - - 8 268 24 0 - 0 0.00373 - 2 0.123 - 3 0.0336 - 4 0.243 - 7 0.127 - 8 0.097 - 9 0.00373 - 10 0.0112 - 13 0.104 - 14 0.00373 - 15 0.0373 - 18 0.0672 - 20 0.0299 - 26 0.00746 - 28 0.0187 - 29 0.0149 - 30 0.0149 - 31 0.00373 - 33 0.00373 - 37 0.00373 - 41 0.0261 - 42 0.00373 - 45 0.00746 - 47 0.0112 - - 10 1 1 0 - 45 1 - - 13 15006 38 0 - 0 0.004 - 1 0.0002 - 2 0.0364 - 3 0.0287 - 4 0.304 - 6 0.000267 - 7 0.0826 - 8 0.211 - 9 0.00553 - 10 0.0072 - 13 0.0804 - 14 0.00653 - 15 0.0508 - 16 0.0004 - 18 0.0394 - 19 0.0002 - 20 0.0337 - 21 0.00187 - 22 6.66e-05 - 24 0.0008 - 25 0.000133 - 26 0.00433 - 28 0.0114 - 29 0.00513 - 30 0.0114 - 31 0.011 - 32 0.0022 - 33 0.0046 - 35 0.0002 - 37 0.001 - 40 0.0004 - 41 0.028 - 42 0.00233 - 43 0.0006 - 44 0.000666 - 45 0.0076 - 46 0.0016 - 47 0.0133 - - 14 9907 35 0 - 0 0.00757 - 2 0.0784 - 3 0.0262 - 4 0.0705 - 7 0.178 - 8 0.229 - 9 0.0139 - 10 0.00737 - 13 0.0728 - 14 0.00262 - 15 0.0373 - 16 0.000101 - 18 0.0196 - 19 0.000303 - 20 0.0263 - 21 0.00313 - 23 0.000101 - 24 0.00444 - 26 0.0146 - 28 0.0333 - 29 0.013 - 30 0.028 - 31 0.0133 - 32 0.00616 - 33 0.0125 - 34 0.000808 - 35 0.000202 - 37 0.00384 - 41 0.0365 - 42 0.00303 - 43 0.000202 - 44 0.000505 - 45 0.00757 - 46 0.00212 - 47 0.0461 - - 15 788 27 0 - 0 0.00635 - 2 0.0127 - 3 0.0178 - 4 0.0787 - 7 0.085 - 8 0.184 - 13 0.221 - 14 0.0127 - 15 0.225 - 16 0.0152 - 18 0.0127 - 20 0.019 - 24 0.00127 - 26 0.00888 - 28 0.00381 - 29 0.0114 - 30 0.00888 - 31 0.00381 - 33 0.014 - 35 0.00127 - 37 0.00254 - 41 0.0292 - 42 0.00127 - 44 0.00254 - 45 0.00381 - 46 0.00254 - 47 0.0152 - - 16 9 7 0 - 2 0.222 - 4 0.222 - 7 0.111 - 13 0.111 - 14 0.111 - 15 0.111 - 20 0.111 - - 18 2901 26 0 - 0 0.00103 - 2 0.00483 - 3 0.00345 - 4 0.694 - 7 0.0476 - 8 0.0958 - 9 0.00276 - 10 0.00207 - 13 0.0589 - 14 0.00414 - 15 0.0269 - 19 0.000345 - 20 0.0203 - 21 0.000689 - 26 0.00483 - 28 0.00172 - 29 0.0031 - 30 0.00552 - 31 0.00172 - 32 0.00138 - 33 0.00138 - 41 0.00276 - 42 0.000345 - 44 0.000345 - 45 0.000689 - 47 0.0138 - - 20 2 2 0 - 7 0.5 - 26 0.5 - - 21 3 3 0 - 2 0.333 - 7 0.333 - 21 0.333 - - 26 2 2 0 - 3 0.5 - 29 0.5 - - 29 11 5 0 - 3 0.273 - 4 0.0909 - 7 0.0909 - 8 0.273 - 13 0.273 - - 30 102 12 0 - 2 0.186 - 4 0.412 - 7 0.0392 - 8 0.118 - 10 0.0294 - 13 0.0588 - 15 0.0392 - 18 0.0392 - 20 0.0196 - 31 0.0196 - 41 0.0294 - 45 0.0098 - - 31 13 5 0 - 7 0.538 - 8 0.154 - 13 0.0769 - 15 0.154 - 41 0.0769 - - 41 247 24 0 - 0 0.00405 - 2 0.0162 - 4 0.19 - 7 0.243 - 8 0.0729 - 9 0.00405 - 10 0.00405 - 13 0.0567 - 15 0.00405 - 18 0.0162 - 20 0.0364 - 21 0.00405 - 26 0.0162 - 28 0.0121 - 29 0.0121 - 30 0.0202 - 31 0.0162 - 32 0.00405 - 33 0.0202 - 41 0.174 - 42 0.0162 - 44 0.00405 - 45 0.0202 - 47 0.0324 - - 42 4 2 0 - 4 0.5 - 7 0.5 - - 43 15 3 0 - 2 0.0667 - 8 0.2 - 44 0.733 - - 45 36 10 0 - 2 0.0556 - 3 0.0556 - 4 0.389 - 7 0.25 - 8 0.111 - 15 0.0278 - 26 0.0278 - 30 0.0278 - 42 0.0278 - 47 0.0278 - - 46 101 7 0 - 4 0.0198 - 7 0.0099 - 8 0.307 - 13 0.119 - 15 0.0099 - 20 0.0198 - 45 0.515 - - 47 98717 41 0 - 0 0.0055 - 1 0.000132 - 2 0.0119 - 3 0.0547 - 4 0.312 - 6 0.000122 - 7 0.0697 - 8 0.213 - 9 0.00656 - 10 0.00492 - 12 5.06e-05 - 13 0.137 - 14 0.0107 - 15 0.0387 - 16 0.00079 - 18 0.0272 - 19 0.000405 - 20 0.0283 - 21 0.00239 - 22 6.08e-05 - 24 0.000709 - 26 0.00422 - 27 2.03e-05 - 28 0.00951 - 29 0.00538 - 30 0.013 - 31 0.0091 - 32 0.00169 - 33 0.00229 - 34 0.000213 - 35 8.1e-05 - 36 2.03e-05 - 37 0.000618 - 40 7.09e-05 - 41 0.0127 - 42 0.00106 - 43 0.000537 - 44 0.000476 - 45 0.00321 - 46 0.00193 - 47 0.00844 - - 48 12 4 0 - 4 0.667 - 7 0.0833 - 18 0.167 - 47 0.0833 - - 58 9 5 0 - 2 0.111 - 8 0.222 - 13 0.333 - 14 0.222 - 20 0.111 - - 14 59133 41 12 - 0 0.00551 - 1 8.46e-05 - 2 0.028 - 3 0.0954 - 4 0.101 - 6 0.000135 - 7 0.098 - 8 0.238 - 9 0.00913 - 10 0.00495 - 12 6.76e-05 - 13 0.172 - 14 0.0106 - 15 0.0368 - 16 0.000507 - 18 0.019 - 19 0.000287 - 20 0.0275 - 21 0.00211 - 22 1.69e-05 - 23 3.38e-05 - 24 0.00215 - 26 0.00883 - 28 0.0216 - 29 0.0107 - 30 0.0221 - 31 0.0124 - 32 0.00499 - 33 0.00504 - 34 0.00093 - 35 0.000237 - 36 3.38e-05 - 37 0.00277 - 40 6.76e-05 - 41 0.0213 - 42 0.00235 - 43 0.000541 - 44 0.000321 - 45 0.00424 - 46 0.00194 - 47 0.0282 - - 2 995 29 0 - 0 0.00603 - 2 0.0101 - 3 0.0141 - 4 0.112 - 7 0.22 - 8 0.166 - 9 0.0111 - 10 0.00503 - 13 0.112 - 14 0.00101 - 15 0.0211 - 18 0.0221 - 19 0.00101 - 20 0.0332 - 21 0.00402 - 24 0.00302 - 26 0.0121 - 28 0.0322 - 29 0.00503 - 30 0.0251 - 31 0.0121 - 32 0.00704 - 33 0.00603 - 35 0.00101 - 37 0.00201 - 41 0.109 - 42 0.00201 - 46 0.00201 - 47 0.0442 - - 7 1 1 0 - 21 1 - - 8 4 4 0 - 10 0.25 - 15 0.25 - 31 0.25 - 47 0.25 - - 13 1104 26 0 - 0 0.000906 - 2 0.0435 - 3 0.0154 - 4 0.302 - 7 0.0462 - 8 0.232 - 9 0.00181 - 10 0.00543 - 13 0.137 - 14 0.00996 - 15 0.067 - 18 0.0362 - 20 0.0272 - 21 0.000906 - 26 0.00181 - 28 0.00634 - 29 0.00181 - 30 0.00453 - 31 0.0127 - 33 0.00362 - 40 0.000906 - 41 0.0317 - 42 0.00181 - 44 0.000906 - 45 0.00272 - 47 0.00634 - - 14 561 28 0 - 0 0.00891 - 1 0.00178 - 2 0.082 - 3 0.0321 - 4 0.0731 - 7 0.152 - 8 0.225 - 9 0.00535 - 10 0.0125 - 13 0.0927 - 14 0.00891 - 15 0.0392 - 16 0.00178 - 18 0.0232 - 20 0.0214 - 21 0.00178 - 26 0.016 - 28 0.0107 - 29 0.0214 - 30 0.025 - 31 0.016 - 32 0.0125 - 33 0.00713 - 37 0.00535 - 41 0.0232 - 42 0.00891 - 45 0.00535 - 47 0.0677 - - 15 46 14 0 - 2 0.087 - 4 0.0652 - 7 0.174 - 8 0.0652 - 13 0.152 - 14 0.0217 - 15 0.217 - 24 0.0217 - 26 0.0217 - 30 0.0217 - 34 0.0217 - 37 0.0217 - 41 0.0435 - 47 0.0652 - - 18 545 28 0 - 0 0.00183 - 2 0.0183 - 3 0.0312 - 4 0.27 - 7 0.196 - 8 0.128 - 10 0.00734 - 13 0.0569 - 14 0.00917 - 15 0.0404 - 18 0.00734 - 20 0.0514 - 21 0.00183 - 24 0.00183 - 26 0.0202 - 28 0.0422 - 29 0.0183 - 30 0.0239 - 31 0.0147 - 32 0.00183 - 33 0.011 - 34 0.00183 - 37 0.0055 - 41 0.011 - 42 0.0055 - 45 0.00734 - 46 0.00183 - 47 0.0128 - - 21 2 2 0 - 7 0.5 - 45 0.5 - - 30 5 3 0 - 3 0.2 - 13 0.4 - 28 0.4 - - 41 126 20 0 - 3 0.00794 - 4 0.0794 - 7 0.23 - 8 0.0714 - 13 0.0952 - 14 0.00794 - 15 0.0159 - 18 0.0317 - 20 0.0397 - 21 0.00794 - 26 0.0159 - 28 0.0159 - 29 0.0159 - 30 0.0397 - 32 0.0159 - 33 0.00794 - 41 0.238 - 42 0.0317 - 45 0.0159 - 47 0.0159 - - 46 7 3 0 - 8 0.286 - 14 0.143 - 45 0.571 - - 47 55733 41 0 - 0 0.00562 - 1 7.18e-05 - 2 0.0276 - 3 0.1 - 4 0.0954 - 6 0.000144 - 7 0.095 - 8 0.241 - 9 0.0094 - 10 0.00484 - 12 7.18e-05 - 13 0.176 - 14 0.0108 - 15 0.0363 - 16 0.00052 - 18 0.0186 - 19 0.000287 - 20 0.0273 - 21 0.00208 - 22 1.79e-05 - 23 3.59e-05 - 24 0.00219 - 26 0.0087 - 28 0.0216 - 29 0.0108 - 30 0.0223 - 31 0.0124 - 32 0.00499 - 33 0.00497 - 34 0.000951 - 35 0.000233 - 36 3.59e-05 - 37 0.00278 - 40 5.38e-05 - 41 0.0191 - 42 0.00221 - 43 0.000574 - 44 0.000323 - 45 0.0042 - 46 0.00201 - 47 0.0281 - - 15 90066 40 28 - 0 0.00298 - 1 4.44e-05 - 2 0.0414 - 3 0.00516 - 4 0.0969 - 6 0.000544 - 7 0.163 - 8 0.0247 - 9 0.000611 - 10 0.000244 - 12 7.77e-05 - 13 0.0143 - 14 0.00192 - 15 0.379 - 16 0.00816 - 18 0.00975 - 19 0.000155 - 20 0.0042 - 21 0.00236 - 24 0.000744 - 25 2.22e-05 - 26 0.0111 - 28 0.00883 - 29 0.0172 - 30 0.00653 - 31 0.0057 - 32 0.00205 - 33 0.0132 - 34 0.00101 - 35 0.000489 - 36 2.22e-05 - 37 0.00244 - 40 0.000644 - 41 0.0659 - 42 0.00489 - 43 0.000533 - 44 0.00461 - 45 0.00521 - 46 0.00472 - 47 0.0883 - - 0 7 5 0 - 4 0.143 - 7 0.429 - 8 0.143 - 41 0.143 - 47 0.143 - - 2 1783 31 0 - 0 0.00112 - 2 0.0202 - 3 0.00449 - 4 0.0892 - 6 0.000561 - 7 0.192 - 8 0.0135 - 13 0.00953 - 14 0.0101 - 15 0.306 - 16 0.0107 - 18 0.0129 - 20 0.00449 - 21 0.00112 - 24 0.00224 - 26 0.0107 - 28 0.00729 - 29 0.00897 - 30 0.00897 - 31 0.00168 - 32 0.000561 - 33 0.0028 - 34 0.000561 - 37 0.00112 - 40 0.00449 - 41 0.183 - 42 0.00449 - 44 0.0028 - 45 0.00393 - 46 0.000561 - 47 0.0802 - - 3 170 13 0 - 2 0.0118 - 3 0.0235 - 4 0.494 - 7 0.118 - 8 0.0471 - 15 0.0529 - 18 0.0706 - 20 0.129 - 28 0.0118 - 33 0.00588 - 41 0.0176 - 45 0.00588 - 47 0.0118 - - 4 9 5 0 - 0 0.111 - 2 0.111 - 7 0.222 - 15 0.444 - 45 0.111 - - 6 42 14 0 - 0 0.0238 - 2 0.0238 - 4 0.0476 - 6 0.0714 - 7 0.0952 - 8 0.0476 - 13 0.0238 - 15 0.357 - 26 0.0238 - 30 0.0238 - 33 0.0476 - 40 0.0476 - 41 0.0476 - 47 0.119 - - 7 26 10 0 - 4 0.0769 - 7 0.0769 - 13 0.0385 - 14 0.0385 - 15 0.385 - 18 0.0385 - 26 0.0385 - 41 0.154 - 45 0.115 - 47 0.0385 - - 8 530 25 0 - 0 0.00189 - 2 0.0226 - 3 0.0245 - 4 0.219 - 7 0.117 - 8 0.0528 - 9 0.00377 - 10 0.00377 - 13 0.017 - 15 0.408 - 18 0.00566 - 20 0.0151 - 26 0.00189 - 28 0.00377 - 29 0.00755 - 30 0.00755 - 31 0.00566 - 32 0.00189 - 33 0.00566 - 34 0.00189 - 37 0.00189 - 41 0.0283 - 44 0.00189 - 45 0.00189 - 47 0.0396 - - 13 5143 34 0 - 0 0.00136 - 2 0.0212 - 3 0.0148 - 4 0.396 - 6 0.000194 - 7 0.0609 - 8 0.0791 - 9 0.00331 - 10 0.000972 - 13 0.00719 - 14 0.000778 - 15 0.278 - 16 0.00486 - 18 0.0282 - 19 0.000583 - 20 0.0249 - 21 0.00156 - 24 0.000583 - 26 0.0035 - 28 0.00681 - 29 0.00506 - 30 0.00817 - 31 0.00564 - 32 0.00156 - 33 0.00506 - 37 0.00117 - 40 0.000583 - 41 0.0124 - 42 0.00117 - 43 0.000194 - 44 0.00117 - 45 0.00136 - 46 0.000194 - 47 0.021 - - 14 2150 33 0 - 0 0.00465 - 2 0.0488 - 3 0.0512 - 4 0.107 - 7 0.158 - 8 0.0963 - 9 0.00884 - 10 0.00279 - 13 0.00186 - 14 0.00093 - 15 0.25 - 16 0.00186 - 18 0.00837 - 20 0.0163 - 21 0.00279 - 24 0.00186 - 26 0.0223 - 28 0.0219 - 29 0.0107 - 30 0.0163 - 31 0.00744 - 32 0.00279 - 33 0.00651 - 34 0.00093 - 36 0.000465 - 37 0.0014 - 41 0.047 - 42 0.00279 - 43 0.00093 - 44 0.0014 - 45 0.00233 - 46 0.00093 - 47 0.093 - - 15 33917 38 0 - 0 0.00433 - 1 2.95e-05 - 2 0.0472 - 3 0.00448 - 4 0.102 - 6 0.000383 - 7 0.168 - 8 0.0195 - 9 0.000206 - 10 0.000236 - 12 5.9e-05 - 13 0.0196 - 14 0.00162 - 15 0.265 - 16 0.00363 - 18 0.0144 - 19 0.000147 - 20 0.00419 - 21 0.00242 - 24 0.000885 - 26 0.0134 - 28 0.00867 - 29 0.0286 - 30 0.00678 - 31 0.00436 - 32 0.00236 - 33 0.0287 - 34 0.00115 - 35 0.000649 - 37 0.00327 - 40 0.000472 - 41 0.0754 - 42 0.00669 - 43 0.000118 - 44 0.00313 - 45 0.00566 - 46 0.0108 - 47 0.142 - - 16 1508 30 0 - 0 0.00265 - 2 0.059 - 3 0.0106 - 4 0.115 - 7 0.208 - 8 0.0232 - 13 0.00464 - 14 0.00133 - 15 0.273 - 16 0.00133 - 18 0.0199 - 20 0.00862 - 21 0.000663 - 24 0.00133 - 25 0.000663 - 26 0.00995 - 28 0.00597 - 29 0.00995 - 30 0.00862 - 31 0.00464 - 33 0.00597 - 34 0.000663 - 35 0.000663 - 37 0.00133 - 41 0.0603 - 42 0.0179 - 43 0.000663 - 44 0.000663 - 45 0.00663 - 47 0.137 - - 18 5065 34 0 - 0 0.0101 - 2 0.0369 - 3 0.00118 - 4 0.0539 - 7 0.243 - 8 0.00967 - 9 0.000197 - 13 0.00296 - 14 0.00079 - 15 0.351 - 16 0.00415 - 18 0.00079 - 19 0.000197 - 20 0.000592 - 21 0.00494 - 24 0.00257 - 26 0.017 - 28 0.0265 - 29 0.0186 - 30 0.0128 - 31 0.00731 - 32 0.00592 - 33 0.0113 - 34 0.000592 - 35 0.000395 - 36 0.000197 - 37 0.00138 - 41 0.0661 - 42 0.00415 - 43 0.000197 - 44 0.00118 - 45 0.00395 - 46 0.00237 - 47 0.0971 - - 19 6 3 0 - 7 0.333 - 15 0.5 - 45 0.167 - - 21 4 1 0 - 47 1 - - 29 4 3 0 - 4 0.5 - 15 0.25 - 20 0.25 - - 30 22 6 0 - 2 0.0455 - 4 0.273 - 8 0.0909 - 15 0.5 - 18 0.0455 - 29 0.0455 - - 40 80 12 0 - 2 0.0625 - 4 0.0625 - 7 0.15 - 13 0.0125 - 15 0.463 - 16 0.0375 - 18 0.0125 - 31 0.0125 - 41 0.075 - 44 0.05 - 45 0.0125 - 47 0.05 - - 41 441 25 0 - 0 0.00454 - 2 0.0635 - 3 0.00227 - 4 0.0385 - 7 0.413 - 8 0.00907 - 13 0.0204 - 14 0.00454 - 15 0.0794 - 16 0.00454 - 18 0.00907 - 20 0.00454 - 21 0.00454 - 26 0.0181 - 28 0.00907 - 29 0.00454 - 30 0.00907 - 31 0.00454 - 37 0.00227 - 40 0.00227 - 41 0.204 - 42 0.0136 - 44 0.00227 - 45 0.0068 - 47 0.0658 - - 43 18 4 0 - 4 0.0556 - 13 0.0556 - 15 0.5 - 44 0.389 - - 44 6 5 0 - 2 0.167 - 4 0.167 - 15 0.333 - 26 0.167 - 32 0.167 - - 45 26 8 0 - 3 0.0385 - 4 0.192 - 7 0.154 - 8 0.0385 - 15 0.423 - 33 0.0385 - 41 0.0769 - 45 0.0385 - - 46 51 8 0 - 4 0.0196 - 7 0.0196 - 8 0.0196 - 15 0.333 - 18 0.0196 - 28 0.0196 - 45 0.49 - 47 0.0784 - - 47 38960 39 0 - 0 0.00108 - 1 7.7e-05 - 2 0.0398 - 3 0.00198 - 4 0.0551 - 6 0.000796 - 7 0.158 - 8 0.0203 - 9 0.000231 - 10 2.57e-05 - 12 0.000128 - 13 0.0134 - 14 0.00218 - 15 0.515 - 16 0.0138 - 18 0.0037 - 19 0.000128 - 20 0.000385 - 21 0.00223 - 24 0.000282 - 25 2.57e-05 - 26 0.00893 - 28 0.00649 - 29 0.0102 - 30 0.00454 - 31 0.00685 - 32 0.00149 - 33 0.00249 - 34 0.00113 - 35 0.000488 - 37 0.00223 - 40 0.000719 - 41 0.0599 - 42 0.00357 - 43 0.001 - 44 0.00706 - 45 0.0049 - 46 0.0011 - 47 0.0488 - - 48 41 7 0 - 4 0.146 - 7 0.0488 - 8 0.0244 - 15 0.707 - 18 0.0244 - 28 0.0244 - 47 0.0244 - - 54 5 3 0 - 4 0.6 - 7 0.2 - 47 0.2 - - 55 2 2 0 - 3 0.5 - 8 0.5 - - 58 35 7 0 - 2 0.0571 - 4 0.0857 - 7 0.0857 - 8 0.0857 - 15 0.629 - 20 0.0286 - 30 0.0286 - - 68 6 2 0 - 4 0.5 - 7 0.5 - - 16 2650 32 9 - 0 0.00189 - 2 0.0325 - 3 0.0136 - 4 0.156 - 7 0.0634 - 8 0.0408 - 9 0.000755 - 10 0.00113 - 13 0.00453 - 14 0.000755 - 15 0.57 - 16 0.0158 - 18 0.0125 - 19 0.000377 - 20 0.00189 - 21 0.0034 - 26 0.00377 - 28 0.00453 - 29 0.00113 - 30 0.00415 - 31 0.00151 - 32 0.000377 - 33 0.00226 - 34 0.000377 - 37 0.00113 - 40 0.00189 - 41 0.0208 - 42 0.00189 - 44 0.00113 - 45 0.00528 - 46 0.000377 - 47 0.0298 - - 2 111 10 0 - 3 0.00901 - 4 0.468 - 7 0.0631 - 8 0.018 - 15 0.288 - 18 0.00901 - 26 0.018 - 41 0.0541 - 45 0.018 - 47 0.0541 - - 8 8 3 0 - 3 0.125 - 15 0.75 - 45 0.125 - - 13 94 10 0 - 2 0.0426 - 3 0.0106 - 4 0.0638 - 7 0.0106 - 8 0.0426 - 13 0.0106 - 15 0.787 - 16 0.0106 - 20 0.0106 - 41 0.0106 - - 14 27 7 0 - 2 0.111 - 4 0.111 - 7 0.0741 - 15 0.593 - 16 0.037 - 28 0.037 - 47 0.037 - - 15 731 19 0 - 0 0.00137 - 2 0.0369 - 4 0.0301 - 7 0.0451 - 8 0.00274 - 13 0.0041 - 15 0.774 - 16 0.00684 - 18 0.0301 - 20 0.00274 - 21 0.00274 - 26 0.00137 - 29 0.00137 - 30 0.00137 - 33 0.00274 - 40 0.00547 - 41 0.0219 - 45 0.00137 - 47 0.0274 - - 16 42 11 0 - 3 0.143 - 4 0.119 - 7 0.119 - 8 0.119 - 15 0.167 - 26 0.0238 - 28 0.0238 - 41 0.0714 - 42 0.0238 - 45 0.0238 - 47 0.167 - - 18 66 8 0 - 2 0.0152 - 4 0.439 - 7 0.0303 - 8 0.0303 - 15 0.439 - 20 0.0152 - 26 0.0152 - 47 0.0152 - - 41 8 4 0 - 7 0.125 - 15 0.25 - 41 0.5 - 42 0.125 - - 47 1553 32 0 - 0 0.00258 - 2 0.0328 - 3 0.0174 - 4 0.191 - 7 0.0753 - 8 0.0599 - 9 0.00129 - 10 0.00193 - 13 0.00515 - 14 0.00129 - 15 0.495 - 16 0.0225 - 18 0.00644 - 19 0.000644 - 20 0.000644 - 21 0.00451 - 26 0.00322 - 28 0.00644 - 29 0.00129 - 30 0.00644 - 31 0.00258 - 32 0.000644 - 33 0.00258 - 34 0.000644 - 37 0.00193 - 40 0.000644 - 41 0.0161 - 42 0.00193 - 44 0.00193 - 45 0.0058 - 46 0.000644 - 47 0.0283 - - 17 321 24 2 - 0 0.0592 - 1 0.00312 - 2 0.0436 - 7 0.364 - 8 0.00312 - 9 0.00312 - 13 0.00623 - 14 0.00623 - 15 0.00312 - 19 0.00623 - 21 0.0343 - 24 0.00935 - 26 0.0218 - 28 0.103 - 29 0.0498 - 30 0.0498 - 31 0.0374 - 32 0.0156 - 33 0.0218 - 37 0.0125 - 41 0.0405 - 42 0.00312 - 45 0.0187 - 47 0.0841 - - 20 19 9 0 - 0 0.0526 - 7 0.316 - 26 0.0526 - 28 0.158 - 29 0.105 - 30 0.158 - 32 0.0526 - 42 0.0526 - 47 0.0526 - - 55 18 11 0 - 0 0.0556 - 2 0.0556 - 7 0.333 - 21 0.0556 - 26 0.111 - 28 0.0556 - 30 0.0556 - 31 0.0556 - 37 0.111 - 41 0.0556 - 47 0.0556 - - 18 8667 14 1 - 0 0.000115 - 3 0.00288 - 6 0.000231 - 8 0.00138 - 13 0.335 - 14 0.0631 - 15 0.587 - 16 0.00762 - 19 0.000808 - 21 0.000692 - 28 0.000577 - 30 0.000115 - 31 0.000346 - 32 0.000115 - - 13 4 4 0 - 13 0.25 - 14 0.25 - 15 0.25 - 21 0.25 - - 19 17428 40 9 - 0 0.00947 - 1 0.000115 - 2 0.0516 - 3 0.00138 - 4 0.0023 - 5 5.74e-05 - 7 0.171 - 8 0.00482 - 9 0.000402 - 10 0.000574 - 12 0.00304 - 13 0.0332 - 14 0.0155 - 15 0.00419 - 16 0.00023 - 18 5.74e-05 - 19 0.00161 - 21 0.0168 - 22 0.000402 - 23 5.74e-05 - 24 0.000115 - 26 0.00637 - 27 5.74e-05 - 28 0.0543 - 29 0.101 - 30 0.0205 - 31 0.0106 - 32 0.0237 - 33 0.0276 - 34 0.00861 - 35 0.0122 - 37 0.0274 - 40 5.74e-05 - 41 0.12 - 42 0.011 - 43 0.000516 - 44 0.00161 - 45 0.0876 - 46 0.0315 - 47 0.139 - - 2 7 5 0 - 2 0.286 - 7 0.286 - 26 0.143 - 34 0.143 - 41 0.143 - - 8 10 7 0 - 7 0.1 - 21 0.1 - 28 0.1 - 29 0.2 - 30 0.3 - 33 0.1 - 45 0.1 - - 13 15 7 0 - 2 0.0667 - 7 0.267 - 28 0.133 - 29 0.333 - 32 0.0667 - 33 0.0667 - 47 0.0667 - - 14 6 5 0 - 4 0.167 - 7 0.333 - 41 0.167 - 45 0.167 - 47 0.167 - - 15 4 4 0 - 4 0.25 - 15 0.25 - 18 0.25 - 47 0.25 - - 18 7 5 0 - 26 0.143 - 28 0.143 - 30 0.286 - 41 0.286 - 42 0.143 - - 41 1 1 0 - 15 1 - - 46 1 1 0 - 8 1 - - 48 4 3 0 - 7 0.5 - 33 0.25 - 41 0.25 - - 20 8397 36 20 - 0 0.0151 - 1 0.000357 - 2 0.0497 - 3 0.000357 - 4 0.00691 - 7 0.425 - 8 0.00214 - 9 0.000238 - 10 0.000119 - 12 0.000238 - 13 0.00429 - 14 0.00155 - 15 0.00131 - 16 0.000119 - 17 0.0031 - 18 0.000238 - 19 0.000238 - 21 0.00893 - 24 0.0168 - 26 0.0355 - 28 0.134 - 29 0.0905 - 30 0.0537 - 31 0.022 - 32 0.0139 - 33 0.0257 - 34 0.000834 - 35 0.00143 - 37 0.00631 - 41 0.025 - 42 0.00441 - 43 0.000119 - 44 0.000715 - 45 0.00965 - 46 0.00131 - 47 0.0381 - - 3 122 14 0 - 0 0.0164 - 2 0.0902 - 7 0.549 - 13 0.0082 - 15 0.0082 - 26 0.041 - 28 0.082 - 29 0.107 - 30 0.0246 - 31 0.0082 - 32 0.0082 - 33 0.0082 - 45 0.0082 - 47 0.041 - - 8 1980 30 0 - 0 0.0232 - 2 0.0399 - 3 0.000505 - 4 0.00253 - 7 0.483 - 8 0.00202 - 9 0.000505 - 13 0.00253 - 14 0.00101 - 15 0.00202 - 16 0.000505 - 17 0.00101 - 19 0.000505 - 21 0.00808 - 24 0.0121 - 26 0.0348 - 28 0.122 - 29 0.0884 - 30 0.05 - 31 0.0197 - 32 0.0136 - 33 0.0242 - 35 0.000505 - 37 0.00354 - 41 0.0217 - 42 0.00707 - 44 0.00101 - 45 0.00707 - 46 0.00101 - 47 0.0258 - - 9 23 6 0 - 2 0.0435 - 7 0.696 - 28 0.0435 - 29 0.087 - 41 0.0435 - 47 0.087 - - 10 78 15 0 - 0 0.0641 - 2 0.0256 - 7 0.449 - 8 0.0128 - 14 0.0128 - 26 0.0897 - 28 0.0256 - 29 0.0513 - 30 0.0256 - 31 0.0256 - 32 0.0128 - 37 0.0256 - 41 0.115 - 42 0.0128 - 47 0.0513 - - 13 3723 32 0 - 0 0.0142 - 2 0.047 - 4 0.00967 - 7 0.385 - 8 0.00161 - 9 0.000269 - 12 0.000537 - 13 0.00537 - 14 0.00161 - 15 0.00161 - 17 0.00322 - 18 0.000537 - 19 0.000269 - 21 0.0094 - 24 0.0172 - 26 0.033 - 28 0.132 - 29 0.107 - 30 0.0543 - 31 0.0277 - 32 0.0126 - 33 0.0312 - 34 0.00134 - 35 0.00134 - 37 0.00779 - 41 0.0263 - 42 0.00349 - 43 0.000269 - 44 0.000806 - 45 0.0145 - 46 0.00134 - 47 0.0486 - - 14 1627 27 0 - 0 0.00922 - 1 0.00184 - 2 0.0719 - 4 0.00676 - 7 0.406 - 8 0.00369 - 10 0.000615 - 13 0.00307 - 14 0.00246 - 17 0.00676 - 21 0.0117 - 24 0.0252 - 26 0.0363 - 28 0.154 - 29 0.0615 - 30 0.0639 - 31 0.0191 - 32 0.024 - 33 0.0234 - 34 0.000615 - 35 0.00307 - 37 0.00553 - 41 0.024 - 42 0.00492 - 45 0.00492 - 46 0.00123 - 47 0.0252 - - 15 368 17 0 - 0 0.00272 - 2 0.0272 - 4 0.00815 - 7 0.478 - 13 0.00272 - 24 0.0136 - 26 0.0408 - 28 0.163 - 29 0.111 - 30 0.0489 - 31 0.00815 - 33 0.0163 - 35 0.00272 - 37 0.0109 - 41 0.0109 - 45 0.00272 - 47 0.0516 - - 21 5 4 0 - 0 0.4 - 7 0.2 - 30 0.2 - 41 0.2 - - 29 1 1 0 - 42 1 - - 30 55 11 0 - 2 0.0727 - 7 0.436 - 8 0.0182 - 21 0.0182 - 24 0.0727 - 26 0.0364 - 28 0.218 - 29 0.0182 - 30 0.0545 - 33 0.0182 - 41 0.0364 - - 31 52 13 0 - 0 0.0192 - 2 0.0385 - 7 0.442 - 24 0.0192 - 26 0.0577 - 28 0.173 - 29 0.0962 - 30 0.0385 - 31 0.0192 - 37 0.0192 - 41 0.0192 - 46 0.0192 - 47 0.0385 - - 43 1 1 0 - 44 1 - - 44 5 3 0 - 7 0.6 - 32 0.2 - 45 0.2 - - 45 40 10 0 - 2 0.05 - 7 0.4 - 26 0.1 - 28 0.1 - 29 0.075 - 30 0.125 - 31 0.025 - 33 0.05 - 41 0.025 - 47 0.05 - - 47 34 12 0 - 0 0.0294 - 2 0.0588 - 3 0.0588 - 7 0.5 - 26 0.0294 - 28 0.0294 - 29 0.0294 - 30 0.0588 - 31 0.0294 - 33 0.0294 - 41 0.0294 - 47 0.118 - - 48 185 19 0 - 0 0.00541 - 2 0.027 - 4 0.00541 - 7 0.465 - 13 0.0162 - 17 0.00541 - 21 0.0216 - 24 0.0108 - 26 0.0216 - 28 0.195 - 29 0.0811 - 30 0.0486 - 31 0.0108 - 32 0.00541 - 33 0.0108 - 41 0.0378 - 45 0.00541 - 46 0.00541 - 47 0.0216 - - 54 23 6 0 - 2 0.13 - 7 0.522 - 13 0.0435 - 26 0.087 - 28 0.087 - 47 0.13 - - 56 36 12 0 - 2 0.0278 - 4 0.0278 - 7 0.5 - 26 0.0556 - 28 0.167 - 29 0.0278 - 31 0.0278 - 33 0.0278 - 34 0.0278 - 37 0.0278 - 41 0.0278 - 47 0.0556 - - 60 7 4 0 - 2 0.143 - 7 0.571 - 26 0.143 - 30 0.143 - - 68 4 3 0 - 4 0.25 - 7 0.5 - 28 0.25 - - 21 1703 33 27 - 0 0.102 - 1 0.00176 - 2 0.0552 - 3 0.0182 - 4 0.0804 - 7 0.203 - 8 0.00411 - 10 0.00117 - 12 0.000587 - 13 0.0393 - 14 0.0252 - 15 0.0153 - 18 0.00117 - 19 0.00294 - 20 0.00294 - 21 0.0687 - 23 0.000587 - 24 0.00646 - 26 0.00763 - 28 0.0399 - 29 0.0341 - 30 0.0164 - 31 0.0188 - 32 0.00881 - 33 0.0241 - 34 0.00411 - 37 0.00528 - 41 0.0781 - 42 0.017 - 44 0.00294 - 45 0.0153 - 46 0.00117 - 47 0.0981 - - 2 4 2 0 - 0 0.25 - 7 0.75 - - 3 108 17 0 - 0 0.13 - 1 0.00926 - 2 0.0648 - 7 0.296 - 13 0.0185 - 15 0.037 - 21 0.0463 - 24 0.00926 - 26 0.00926 - 28 0.0463 - 29 0.13 - 32 0.00926 - 33 0.0278 - 37 0.00926 - 41 0.0648 - 44 0.00926 - 47 0.0833 - - 4 458 23 0 - 0 0.138 - 1 0.00437 - 2 0.0852 - 3 0.00437 - 7 0.17 - 13 0.0524 - 14 0.0306 - 15 0.0131 - 21 0.048 - 24 0.00873 - 28 0.0218 - 29 0.0349 - 30 0.024 - 31 0.0284 - 32 0.00873 - 33 0.0328 - 34 0.00437 - 37 0.00218 - 41 0.105 - 42 0.024 - 45 0.0197 - 46 0.00218 - 47 0.138 - - 7 11 7 0 - 0 0.0909 - 7 0.182 - 14 0.364 - 21 0.0909 - 24 0.0909 - 30 0.0909 - 42 0.0909 - - 8 298 28 0 - 0 0.094 - 2 0.0235 - 3 0.0101 - 4 0.225 - 7 0.124 - 8 0.00671 - 10 0.00336 - 13 0.0268 - 14 0.0168 - 15 0.0134 - 18 0.00671 - 19 0.00336 - 20 0.0168 - 21 0.057 - 24 0.0101 - 26 0.0168 - 28 0.057 - 29 0.0436 - 30 0.0268 - 31 0.0101 - 32 0.0201 - 33 0.0302 - 37 0.0101 - 41 0.047 - 42 0.0101 - 45 0.0268 - 46 0.00336 - 47 0.0604 - - 9 27 12 0 - 0 0.148 - 4 0.0741 - 7 0.259 - 8 0.037 - 15 0.037 - 21 0.037 - 26 0.0741 - 28 0.0741 - 29 0.037 - 30 0.0741 - 33 0.037 - 41 0.111 - - 10 5 1 0 - 4 1 - - 13 130 21 0 - 0 0.115 - 2 0.0231 - 3 0.0231 - 4 0.0615 - 7 0.192 - 8 0.00769 - 13 0.0308 - 14 0.0154 - 15 0.0231 - 21 0.0538 - 26 0.00769 - 28 0.0231 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.0154 - 37 0.0154 - 41 0.154 - 42 0.0231 - 44 0.00769 - 47 0.162 - - 14 42 13 0 - 0 0.0714 - 2 0.119 - 7 0.0952 - 13 0.0238 - 15 0.0476 - 19 0.0238 - 21 0.0476 - 33 0.0238 - 34 0.0238 - 41 0.262 - 42 0.0238 - 45 0.0476 - 47 0.19 - - 15 57 11 0 - 2 0.0351 - 3 0.263 - 7 0.0526 - 13 0.105 - 14 0.0702 - 28 0.0175 - 31 0.0175 - 32 0.0351 - 41 0.193 - 42 0.0175 - 47 0.193 - - 16 5 3 0 - 2 0.4 - 15 0.4 - 21 0.2 - - 17 8 5 0 - 7 0.25 - 21 0.125 - 29 0.125 - 33 0.125 - 47 0.375 - - 18 4 1 0 - 13 1 - - 19 3 3 0 - 7 0.333 - 41 0.333 - 45 0.333 - - 20 17 8 0 - 0 0.0588 - 2 0.118 - 7 0.235 - 21 0.118 - 28 0.176 - 41 0.118 - 44 0.0588 - 47 0.118 - - 21 57 20 0 - 0 0.0702 - 2 0.0877 - 4 0.0175 - 7 0.123 - 8 0.0175 - 13 0.0175 - 14 0.0526 - 15 0.0351 - 21 0.0351 - 28 0.158 - 29 0.0351 - 30 0.0175 - 31 0.0702 - 32 0.0351 - 33 0.0351 - 34 0.0175 - 41 0.0175 - 42 0.0351 - 44 0.0175 - 47 0.105 - - 22 8 6 0 - 0 0.25 - 4 0.125 - 7 0.125 - 19 0.25 - 41 0.125 - 47 0.125 - - 28 3 3 0 - 0 0.333 - 45 0.333 - 47 0.333 - - 30 5 4 0 - 0 0.2 - 2 0.4 - 4 0.2 - 28 0.2 - - 31 26 9 0 - 0 0.115 - 3 0.0385 - 4 0.423 - 7 0.192 - 8 0.0385 - 30 0.0385 - 37 0.0385 - 41 0.0385 - 47 0.0769 - - 39 2 2 0 - 2 0.5 - 28 0.5 - - 40 2 1 0 - 3 1 - - 47 369 26 0 - 0 0.0623 - 2 0.0379 - 3 0.0108 - 4 0.106 - 7 0.347 - 8 0.00271 - 10 0.00271 - 12 0.00271 - 13 0.0461 - 14 0.0244 - 15 0.00542 - 19 0.00271 - 21 0.144 - 23 0.00271 - 24 0.00542 - 26 0.0108 - 28 0.0379 - 29 0.0244 - 30 0.00542 - 31 0.0217 - 33 0.0108 - 34 0.00542 - 37 0.00271 - 41 0.019 - 45 0.00813 - 47 0.0515 - - 48 7 5 0 - 0 0.286 - 4 0.143 - 41 0.143 - 42 0.143 - 45 0.286 - - 49 2 2 0 - 33 0.5 - 42 0.5 - - 55 30 12 0 - 0 0.167 - 2 0.0667 - 7 0.1 - 14 0.0333 - 21 0.1 - 28 0.0333 - 30 0.0333 - 33 0.0333 - 41 0.133 - 42 0.167 - 44 0.0333 - 47 0.1 - - 56 3 3 0 - 0 0.333 - 4 0.333 - 34 0.333 - - 22 205 23 5 - 0 0.039 - 2 0.0195 - 3 0.00488 - 4 0.0634 - 7 0.0585 - 8 0.0146 - 13 0.146 - 14 0.0585 - 15 0.0634 - 16 0.00488 - 19 0.00488 - 21 0.0683 - 24 0.0146 - 26 0.00488 - 28 0.0293 - 29 0.0634 - 30 0.0293 - 31 0.0634 - 32 0.00976 - 33 0.0244 - 41 0.0195 - 45 0.0146 - 47 0.18 - - 4 128 16 0 - 0 0.00781 - 2 0.0156 - 3 0.00781 - 7 0.0156 - 8 0.0234 - 13 0.234 - 14 0.0859 - 15 0.102 - 16 0.00781 - 19 0.00781 - 21 0.0391 - 24 0.00781 - 29 0.0859 - 31 0.0781 - 41 0.0156 - 47 0.266 - - 8 34 14 0 - 0 0.0588 - 2 0.0588 - 4 0.265 - 7 0.147 - 14 0.0294 - 21 0.0294 - 24 0.0294 - 28 0.0294 - 30 0.118 - 31 0.0294 - 33 0.0294 - 41 0.0588 - 45 0.0588 - 47 0.0588 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 26 0.25 - 47 0.25 - - 47 34 12 0 - 0 0.118 - 4 0.0588 - 7 0.118 - 21 0.235 - 24 0.0294 - 28 0.0882 - 29 0.0588 - 30 0.0294 - 31 0.0588 - 32 0.0588 - 33 0.118 - 45 0.0294 - - 48 3 3 0 - 4 0.333 - 7 0.333 - 28 0.333 - - 23 73 13 2 - 0 0.0411 - 2 0.0685 - 4 0.466 - 7 0.151 - 8 0.0137 - 13 0.0274 - 18 0.0137 - 20 0.0137 - 29 0.0137 - 32 0.0137 - 33 0.0137 - 41 0.0548 - 47 0.11 - - 8 50 11 0 - 0 0.06 - 2 0.04 - 4 0.6 - 7 0.1 - 8 0.02 - 13 0.02 - 18 0.02 - 20 0.02 - 32 0.02 - 41 0.02 - 47 0.08 - - 47 19 8 0 - 2 0.105 - 4 0.211 - 7 0.263 - 13 0.0526 - 29 0.0526 - 33 0.0526 - 41 0.105 - 47 0.158 - - 24 4 3 0 - 22 0.25 - 24 0.25 - 30 0.5 - - 25 14 3 0 - 15 0.0714 - 42 0.0714 - 47 0.857 - - 26 6 4 0 - 3 0.333 - 13 0.333 - 21 0.167 - 47 0.167 - - 27 8 5 0 - 0 0.125 - 4 0.125 - 26 0.125 - 30 0.125 - 45 0.5 - - 28 126 20 5 - 0 0.0317 - 2 0.0952 - 4 0.0159 - 7 0.0159 - 12 0.00794 - 13 0.00794 - 14 0.00794 - 19 0.00794 - 21 0.0317 - 26 0.46 - 28 0.0952 - 30 0.0238 - 32 0.00794 - 34 0.00794 - 35 0.00794 - 41 0.00794 - 42 0.0238 - 44 0.0238 - 45 0.0556 - 47 0.0635 - - 2 4 3 0 - 26 0.25 - 28 0.25 - 44 0.5 - - 3 4 3 0 - 2 0.25 - 14 0.25 - 26 0.5 - - 13 10 6 0 - 0 0.1 - 2 0.2 - 26 0.2 - 41 0.1 - 42 0.1 - 47 0.3 - - 14 16 7 0 - 2 0.312 - 4 0.0625 - 12 0.0625 - 13 0.0625 - 26 0.312 - 35 0.0625 - 42 0.125 - - 47 80 13 0 - 0 0.0375 - 2 0.0375 - 4 0.0125 - 7 0.025 - 19 0.0125 - 21 0.05 - 26 0.538 - 28 0.125 - 30 0.025 - 32 0.0125 - 34 0.0125 - 45 0.0625 - 47 0.05 - - 29 40 11 2 - 2 0.125 - 4 0.025 - 7 0.025 - 13 0.325 - 14 0.025 - 15 0.15 - 20 0.025 - 21 0.025 - 31 0.025 - 41 0.2 - 42 0.05 - - 8 11 3 0 - 13 0.545 - 31 0.0909 - 41 0.364 - - 14 10 5 0 - 7 0.1 - 13 0.4 - 14 0.1 - 15 0.2 - 42 0.2 - - 30 1783 33 10 - 0 0.00673 - 2 0.0432 - 3 0.0107 - 4 0.337 - 7 0.204 - 8 0.0707 - 9 0.00112 - 10 0.00112 - 13 0.06 - 14 0.00393 - 15 0.0123 - 16 0.00112 - 18 0.0488 - 19 0.000561 - 20 0.0308 - 21 0.00393 - 22 0.000561 - 24 0.00393 - 26 0.0123 - 28 0.0275 - 29 0.0123 - 30 0.0157 - 31 0.00617 - 32 0.00449 - 33 0.00897 - 36 0.000561 - 37 0.0028 - 41 0.0314 - 42 0.0028 - 43 0.000561 - 45 0.00505 - 46 0.000561 - 47 0.0286 - - 2 15 6 0 - 4 0.2 - 7 0.467 - 22 0.0667 - 28 0.0667 - 41 0.133 - 47 0.0667 - - 3 8 1 0 - 4 1 - - 8 96 15 0 - 0 0.0104 - 2 0.0312 - 3 0.0104 - 4 0.417 - 7 0.25 - 8 0.0104 - 13 0.0104 - 15 0.0104 - 18 0.0938 - 20 0.0312 - 26 0.0104 - 28 0.0312 - 29 0.0312 - 30 0.0208 - 47 0.0312 - - 13 884 28 0 - 0 0.00226 - 2 0.0351 - 3 0.00792 - 4 0.436 - 7 0.0995 - 8 0.0735 - 13 0.106 - 14 0.00339 - 15 0.0181 - 16 0.00226 - 18 0.0622 - 20 0.0328 - 21 0.00226 - 24 0.00452 - 26 0.00452 - 28 0.0158 - 29 0.0102 - 30 0.00905 - 31 0.00566 - 32 0.00113 - 33 0.00679 - 36 0.00113 - 37 0.00113 - 41 0.0317 - 42 0.00113 - 43 0.00113 - 45 0.00566 - 47 0.0192 - - 14 489 28 0 - 0 0.0123 - 2 0.0654 - 3 0.0204 - 4 0.131 - 7 0.299 - 8 0.115 - 9 0.00409 - 10 0.00409 - 13 0.0245 - 14 0.00613 - 15 0.0102 - 18 0.0389 - 19 0.00204 - 20 0.0389 - 21 0.00204 - 24 0.00409 - 26 0.0204 - 28 0.0389 - 29 0.00818 - 30 0.0307 - 31 0.00409 - 32 0.0143 - 33 0.0102 - 37 0.00613 - 41 0.0327 - 42 0.00613 - 46 0.00204 - 47 0.0491 - - 15 59 12 0 - 2 0.0339 - 3 0.0169 - 4 0.593 - 7 0.136 - 8 0.0169 - 18 0.0508 - 20 0.0339 - 26 0.0339 - 31 0.0169 - 33 0.0169 - 41 0.0339 - 47 0.0169 - - 30 4 4 0 - 4 0.25 - 7 0.25 - 29 0.25 - 41 0.25 - - 46 3 1 0 - 45 1 - - 47 198 20 0 - 0 0.0152 - 2 0.0455 - 4 0.237 - 7 0.439 - 8 0.00505 - 14 0.00505 - 20 0.00505 - 21 0.0202 - 24 0.00505 - 26 0.0202 - 28 0.0606 - 29 0.0253 - 30 0.0101 - 31 0.0152 - 33 0.0202 - 37 0.00505 - 41 0.0354 - 42 0.00505 - 45 0.00505 - 47 0.0202 - - 48 8 5 0 - 4 0.5 - 8 0.125 - 18 0.125 - 20 0.125 - 26 0.125 - - 31 1447 30 13 - 0 0.0104 - 2 0.0297 - 3 0.02 - 4 0.411 - 7 0.157 - 8 0.0643 - 9 0.00138 - 10 0.00207 - 13 0.0145 - 14 0.00138 - 15 0.00484 - 16 0.000691 - 18 0.0408 - 19 0.000691 - 20 0.0359 - 21 0.0221 - 24 0.00415 - 26 0.0194 - 28 0.0235 - 29 0.0111 - 30 0.027 - 31 0.00484 - 32 0.00346 - 33 0.00898 - 37 0.000691 - 41 0.0235 - 42 0.0152 - 43 0.00138 - 45 0.00829 - 47 0.0318 - - 2 4 2 0 - 4 0.5 - 47 0.5 - - 3 16 4 0 - 4 0.75 - 7 0.125 - 13 0.0625 - 14 0.0625 - - 8 111 18 0 - 0 0.00901 - 2 0.045 - 4 0.342 - 7 0.252 - 8 0.0811 - 9 0.00901 - 18 0.018 - 20 0.027 - 21 0.018 - 26 0.027 - 28 0.027 - 29 0.00901 - 30 0.00901 - 31 0.00901 - 33 0.00901 - 41 0.027 - 45 0.00901 - 47 0.0721 - - 13 747 27 0 - 0 0.00803 - 2 0.0241 - 3 0.0161 - 4 0.483 - 7 0.123 - 8 0.0589 - 9 0.00134 - 10 0.00268 - 13 0.00803 - 14 0.00134 - 15 0.00535 - 18 0.0589 - 19 0.00134 - 20 0.0455 - 21 0.0201 - 24 0.00402 - 26 0.012 - 28 0.0187 - 29 0.012 - 30 0.0228 - 31 0.00268 - 32 0.00402 - 33 0.00669 - 41 0.0214 - 42 0.00669 - 45 0.00669 - 47 0.0241 - - 14 423 27 0 - 0 0.0165 - 2 0.0473 - 3 0.0402 - 4 0.199 - 7 0.215 - 8 0.0922 - 10 0.00236 - 13 0.0331 - 15 0.00709 - 16 0.00236 - 18 0.0284 - 20 0.0213 - 21 0.026 - 24 0.00709 - 26 0.0355 - 28 0.0402 - 29 0.0142 - 30 0.0473 - 31 0.00946 - 32 0.00473 - 33 0.0165 - 37 0.00236 - 41 0.0165 - 42 0.0355 - 43 0.00473 - 45 0.00709 - 47 0.0284 - - 15 45 6 0 - 4 0.711 - 7 0.178 - 20 0.0222 - 21 0.0444 - 30 0.0222 - 41 0.0222 - - 18 3 2 0 - 4 0.333 - 41 0.667 - - 30 4 3 0 - 0 0.25 - 7 0.25 - 41 0.5 - - 41 7 2 0 - 4 0.714 - 41 0.286 - - 46 3 1 0 - 45 1 - - 47 45 6 0 - 4 0.733 - 7 0.0222 - 20 0.0444 - 21 0.0444 - 42 0.0444 - 47 0.111 - - 48 19 4 0 - 4 0.737 - 18 0.0526 - 20 0.158 - 26 0.0526 - - 60 8 1 0 - 4 1 - - 32 7 4 0 - 7 0.571 - 15 0.143 - 16 0.143 - 41 0.143 - - 33 22 11 0 - 0 0.136 - 2 0.227 - 4 0.0909 - 7 0.0909 - 13 0.0455 - 19 0.0909 - 21 0.0909 - 32 0.0455 - 41 0.0909 - 42 0.0455 - 44 0.0455 - - 34 68 18 2 - 2 0.0441 - 7 0.103 - 8 0.0294 - 13 0.0147 - 14 0.0294 - 15 0.0147 - 21 0.0147 - 28 0.0147 - 30 0.0147 - 32 0.0147 - 33 0.0147 - 35 0.0147 - 37 0.0147 - 41 0.397 - 42 0.0441 - 45 0.0147 - 46 0.0147 - 47 0.191 - - 13 4 3 0 - 7 0.5 - 8 0.25 - 28 0.25 - - 14 3 2 0 - 30 0.333 - 47 0.667 - - 35 8 6 0 - 0 0.125 - 2 0.125 - 26 0.125 - 28 0.125 - 33 0.125 - 47 0.375 - - 36 7 3 0 - 13 0.143 - 14 0.143 - 41 0.714 - - 37 5 4 0 - 7 0.2 - 21 0.2 - 28 0.4 - 33 0.2 - - 38 13 6 0 - 7 0.308 - 24 0.0769 - 26 0.385 - 28 0.0769 - 29 0.0769 - 33 0.0769 - - 39 1798 26 1 - 0 0.0289 - 2 0.191 - 4 0.015 - 6 0.00111 - 7 0.391 - 8 0.0106 - 13 0.00334 - 14 0.00167 - 15 0.00278 - 18 0.00222 - 19 0.00167 - 20 0.00222 - 21 0.0384 - 24 0.00222 - 26 0.12 - 28 0.0211 - 29 0.0651 - 30 0.0117 - 31 0.0117 - 32 0.00222 - 33 0.00612 - 41 0.0184 - 42 0.0139 - 43 0.000556 - 44 0.035 - 47 0.00222 - - 3 8 5 0 - 2 0.25 - 4 0.25 - 20 0.25 - 33 0.125 - 41 0.125 - - 40 83 3 0 - 15 0.964 - 16 0.012 - 21 0.0241 - - 41 1289 21 18 - 0 0.000776 - 2 0.000776 - 3 0.0279 - 7 0.00155 - 8 0.26 - 9 0.014 - 10 0.00388 - 11 0.00155 - 13 0.206 - 14 0.102 - 15 0.353 - 16 0.00698 - 19 0.00233 - 21 0.00233 - 22 0.000776 - 24 0.000776 - 29 0.000776 - 30 0.00465 - 31 0.00853 - 33 0.000776 - 43 0.000776 - - 2 27 6 0 - 3 0.0741 - 8 0.037 - 13 0.481 - 14 0.111 - 15 0.259 - 33 0.037 - - 3 25 1 0 - 3 1 - - 8 318 11 0 - 0 0.00314 - 3 0.0252 - 8 0.836 - 9 0.0252 - 13 0.0597 - 14 0.00314 - 15 0.00629 - 16 0.00314 - 24 0.00314 - 30 0.0126 - 31 0.022 - - 9 9 3 0 - 8 0.556 - 9 0.333 - 13 0.111 - - 10 1 1 0 - 10 1 - - 13 240 5 0 - 8 0.05 - 13 0.729 - 14 0.162 - 15 0.0542 - 31 0.00417 - - 14 117 4 0 - 8 0.0256 - 13 0.248 - 14 0.718 - 21 0.00855 - - 15 430 6 0 - 8 0.00233 - 9 0.00233 - 13 0.0093 - 15 0.981 - 19 0.00233 - 43 0.00233 - - 16 9 2 0 - 15 0.222 - 16 0.778 - - 21 9 4 0 - 2 0.111 - 8 0.444 - 13 0.222 - 15 0.222 - - 31 4 3 0 - 8 0.5 - 13 0.25 - 31 0.25 - - 46 11 2 0 - 13 0.727 - 15 0.273 - - 48 53 7 0 - 8 0.698 - 9 0.0943 - 10 0.0755 - 13 0.0566 - 14 0.0189 - 30 0.0189 - 31 0.0377 - - 49 1 1 0 - 21 1 - - 50 1 1 0 - 22 1 - - 55 16 8 0 - 3 0.0625 - 11 0.0625 - 13 0.25 - 14 0.188 - 15 0.188 - 19 0.125 - 29 0.0625 - 30 0.0625 - - 61 1 1 0 - 16 1 - - 64 6 5 0 - 7 0.333 - 11 0.167 - 13 0.167 - 14 0.167 - 21 0.167 - - 42 86 19 4 - 0 0.0116 - 4 0.0233 - 7 0.0233 - 8 0.0581 - 11 0.0233 - 13 0.0698 - 14 0.0233 - 15 0.0116 - 19 0.0116 - 21 0.0116 - 25 0.0116 - 27 0.0233 - 28 0.0116 - 29 0.0116 - 30 0.0116 - 40 0.0116 - 42 0.0116 - 46 0.0116 - 47 0.628 - - 2 6 3 0 - 8 0.333 - 13 0.333 - 27 0.333 - - 15 31 2 0 - 15 0.0323 - 47 0.968 - - 55 24 14 0 - 7 0.0833 - 8 0.0417 - 11 0.0833 - 13 0.0833 - 14 0.0833 - 21 0.0417 - 25 0.0417 - 28 0.0417 - 29 0.0417 - 30 0.0417 - 40 0.0417 - 42 0.0417 - 46 0.0417 - 47 0.292 - - 62 2 2 0 - 0 0.5 - 19 0.5 - - 43 48 9 1 - 3 0.0208 - 4 0.0208 - 8 0.0625 - 13 0.312 - 15 0.396 - 18 0.0625 - 20 0.0208 - 28 0.0208 - 40 0.0833 - - 15 13 4 0 - 4 0.0769 - 13 0.0769 - 15 0.769 - 40 0.0769 - - 44 91 19 7 - 0 0.011 - 2 0.033 - 3 0.011 - 4 0.319 - 7 0.121 - 8 0.0769 - 13 0.033 - 14 0.022 - 15 0.0879 - 20 0.0549 - 23 0.011 - 26 0.033 - 28 0.044 - 30 0.011 - 34 0.011 - 40 0.044 - 41 0.011 - 42 0.011 - 47 0.0549 - - 4 2 2 0 - 0 0.5 - 26 0.5 - - 8 10 5 0 - 4 0.4 - 7 0.2 - 8 0.2 - 26 0.1 - 40 0.1 - - 13 25 9 0 - 3 0.04 - 4 0.44 - 7 0.08 - 8 0.12 - 13 0.04 - 15 0.08 - 20 0.12 - 23 0.04 - 28 0.04 - - 15 33 12 0 - 2 0.0606 - 4 0.303 - 7 0.152 - 8 0.0303 - 13 0.0303 - 15 0.182 - 20 0.0303 - 28 0.0303 - 30 0.0303 - 34 0.0303 - 40 0.0909 - 41 0.0303 - - 19 2 2 0 - 2 0.5 - 13 0.5 - - 55 10 5 0 - 4 0.1 - 7 0.2 - 28 0.1 - 42 0.1 - 47 0.5 - - 60 2 1 0 - 14 1 - - 45 1242 32 20 - 0 0.0266 - 1 0.000805 - 2 0.0282 - 3 0.0121 - 4 0.357 - 7 0.153 - 8 0.0837 - 9 0.00242 - 10 0.00161 - 13 0.0346 - 14 0.00322 - 15 0.0225 - 18 0.0548 - 19 0.00161 - 20 0.0322 - 21 0.00483 - 22 0.000805 - 24 0.00322 - 26 0.00886 - 28 0.0242 - 29 0.0169 - 30 0.0298 - 31 0.0185 - 32 0.00242 - 33 0.0137 - 40 0.000805 - 41 0.0145 - 42 0.00805 - 44 0.00564 - 45 0.000805 - 46 0.00242 - 47 0.0298 - - 3 11 6 0 - 0 0.0909 - 2 0.0909 - 4 0.545 - 7 0.0909 - 8 0.0909 - 33 0.0909 - - 4 35 13 0 - 0 0.143 - 2 0.0286 - 4 0.0286 - 7 0.229 - 13 0.0571 - 21 0.0571 - 28 0.0857 - 29 0.0286 - 30 0.0286 - 33 0.0571 - 41 0.0857 - 42 0.0571 - 47 0.114 - - 6 4 3 0 - 2 0.25 - 4 0.5 - 42 0.25 - - 8 363 25 0 - 0 0.00826 - 2 0.00551 - 3 0.0165 - 4 0.551 - 7 0.107 - 8 0.0606 - 9 0.00275 - 10 0.00275 - 13 0.00826 - 15 0.00275 - 18 0.0468 - 19 0.00275 - 20 0.0358 - 21 0.00551 - 22 0.00275 - 24 0.00551 - 26 0.00826 - 28 0.0275 - 29 0.0193 - 30 0.0303 - 31 0.0193 - 33 0.00551 - 41 0.0138 - 42 0.00275 - 47 0.00826 - - 10 6 2 0 - 4 0.833 - 20 0.167 - - 13 292 19 0 - 2 0.0445 - 3 0.00685 - 4 0.5 - 7 0.0616 - 8 0.12 - 9 0.00342 - 13 0.0753 - 14 0.00685 - 15 0.0103 - 18 0.0651 - 20 0.0342 - 26 0.00685 - 28 0.00685 - 29 0.00342 - 30 0.0103 - 31 0.0205 - 41 0.00342 - 46 0.0103 - 47 0.0103 - - 14 68 17 0 - 0 0.0147 - 2 0.0294 - 3 0.0147 - 4 0.103 - 7 0.0588 - 8 0.338 - 9 0.0147 - 10 0.0147 - 13 0.162 - 15 0.0147 - 18 0.118 - 19 0.0147 - 20 0.0294 - 28 0.0294 - 30 0.0147 - 31 0.0147 - 33 0.0147 - - 15 97 14 0 - 2 0.0103 - 3 0.0103 - 4 0.34 - 7 0.0412 - 8 0.0928 - 13 0.0309 - 15 0.196 - 18 0.134 - 20 0.0412 - 31 0.0103 - 33 0.0103 - 40 0.0103 - 44 0.0103 - 47 0.0619 - - 16 3 3 0 - 8 0.333 - 20 0.333 - 29 0.333 - - 20 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 18 0.167 - 33 0.167 - - 21 5 5 0 - 4 0.2 - 7 0.2 - 24 0.2 - 29 0.2 - 33 0.2 - - 22 2 2 0 - 20 0.5 - 26 0.5 - - 27 4 3 0 - 2 0.5 - 30 0.25 - 32 0.25 - - 30 6 3 0 - 4 0.667 - 7 0.167 - 31 0.167 - - 31 8 6 0 - 0 0.125 - 8 0.25 - 18 0.25 - 20 0.125 - 29 0.125 - 31 0.125 - - 48 28 9 0 - 0 0.0714 - 4 0.5 - 7 0.179 - 8 0.0357 - 13 0.0357 - 18 0.0357 - 29 0.0357 - 30 0.0714 - 31 0.0357 - - 54 10 7 0 - 0 0.1 - 2 0.1 - 3 0.1 - 4 0.2 - 15 0.2 - 18 0.2 - 20 0.1 - - 55 237 25 0 - 0 0.0717 - 1 0.00422 - 2 0.0422 - 3 0.00844 - 4 0.00844 - 7 0.409 - 8 0.00422 - 13 0.00422 - 14 0.00422 - 15 0.00844 - 18 0.00422 - 21 0.00422 - 24 0.00422 - 26 0.0211 - 28 0.0549 - 29 0.0338 - 30 0.0759 - 31 0.0211 - 32 0.00844 - 33 0.0338 - 41 0.038 - 42 0.0211 - 44 0.0211 - 45 0.00422 - 47 0.0886 - - 56 22 6 0 - 3 0.0455 - 4 0.364 - 8 0.318 - 18 0.0909 - 20 0.136 - 21 0.0455 - - 62 21 8 0 - 0 0.0952 - 3 0.0476 - 4 0.286 - 7 0.333 - 14 0.0476 - 20 0.0952 - 42 0.0476 - 44 0.0476 - - 46 382 21 10 - 3 0.0105 - 6 0.00524 - 8 0.387 - 9 0.00262 - 10 0.00524 - 13 0.304 - 14 0.0183 - 15 0.162 - 16 0.0105 - 18 0.00524 - 19 0.00524 - 21 0.00262 - 27 0.00262 - 28 0.00785 - 29 0.00262 - 30 0.0131 - 31 0.0157 - 40 0.00524 - 41 0.0288 - 46 0.00262 - 47 0.00262 - - 2 14 5 0 - 13 0.643 - 14 0.143 - 15 0.0714 - 41 0.0714 - 47 0.0714 - - 3 2 2 0 - 9 0.5 - 15 0.5 - - 8 15 5 0 - 6 0.0667 - 8 0.467 - 13 0.333 - 28 0.0667 - 31 0.0667 - - 13 206 14 0 - 3 0.00971 - 8 0.422 - 10 0.00485 - 13 0.325 - 14 0.0146 - 15 0.136 - 16 0.0146 - 18 0.00971 - 19 0.00971 - 27 0.00485 - 28 0.00971 - 30 0.0194 - 31 0.0146 - 46 0.00485 - - 14 99 11 0 - 3 0.0202 - 6 0.0101 - 8 0.495 - 10 0.0101 - 13 0.333 - 14 0.0202 - 15 0.0606 - 16 0.0101 - 21 0.0101 - 29 0.0101 - 31 0.0202 - - 15 30 5 0 - 8 0.1 - 13 0.0667 - 15 0.767 - 30 0.0333 - 40 0.0333 - - 45 3 1 0 - 41 1 - - 48 1 1 0 - 40 1 - - 55 6 1 0 - 41 1 - - 58 3 1 0 - 15 1 - - 47 311752 45 53 - 0 0.0388 - 1 0.0005 - 2 0.0469 - 3 0.00405 - 4 0.00179 - 5 1.6e-05 - 6 7.7e-05 - 7 0.382 - 8 0.00254 - 9 0.000189 - 10 9.3e-05 - 12 0.000388 - 13 0.0121 - 14 0.00672 - 15 0.00325 - 16 0.000112 - 17 0.000106 - 18 0.000202 - 19 0.00157 - 20 7.7e-05 - 21 0.0104 - 22 0.00016 - 23 1.28e-05 - 24 0.00627 - 25 3.85e-05 - 26 0.0366 - 27 6.42e-06 - 28 0.0599 - 29 0.0565 - 30 0.0332 - 31 0.0151 - 32 0.0125 - 33 0.026 - 34 0.00184 - 35 0.00141 - 36 1.92e-05 - 37 0.00624 - 40 9.94e-05 - 41 0.0842 - 42 0.0135 - 43 0.00033 - 44 0.00341 - 45 0.0148 - 46 0.00455 - 47 0.111 - - 0 3 3 0 - 7 0.333 - 14 0.333 - 44 0.333 - - 2 61 15 0 - 0 0.0656 - 2 0.0328 - 7 0.344 - 21 0.0164 - 26 0.0164 - 29 0.0164 - 30 0.0492 - 32 0.0164 - 33 0.0328 - 34 0.0164 - 41 0.0984 - 42 0.0492 - 44 0.0164 - 45 0.0164 - 47 0.213 - - 3 11856 34 0 - 0 0.0347 - 1 0.000422 - 2 0.066 - 3 0.000506 - 4 0.000759 - 7 0.359 - 8 0.00793 - 13 0.038 - 14 0.00506 - 15 0.00793 - 16 8.43e-05 - 18 0.000169 - 19 0.0011 - 21 0.038 - 24 0.00371 - 25 8.43e-05 - 26 0.083 - 28 0.0361 - 29 0.134 - 30 0.0172 - 31 0.0135 - 32 0.00472 - 33 0.0179 - 34 0.0016 - 35 0.000253 - 37 0.00118 - 40 0.000253 - 41 0.0499 - 42 0.0328 - 43 0.000843 - 44 0.00321 - 45 0.00346 - 46 0.00118 - 47 0.0361 - - 4 79613 41 0 - 0 0.0484 - 1 0.000754 - 2 0.0331 - 3 0.013 - 4 0.000666 - 5 2.51e-05 - 6 2.51e-05 - 7 0.404 - 8 0.00131 - 9 0.000214 - 10 7.54e-05 - 12 0.000415 - 13 0.0103 - 14 0.0123 - 15 0.0024 - 16 0.0001 - 17 0.000301 - 18 1.26e-05 - 19 0.00236 - 21 0.0111 - 22 0.000377 - 23 1.26e-05 - 24 0.00705 - 26 0.0314 - 28 0.0638 - 29 0.0519 - 30 0.0339 - 31 0.0147 - 32 0.0126 - 33 0.0216 - 34 0.00148 - 35 0.00126 - 37 0.00661 - 40 5.02e-05 - 41 0.0806 - 42 0.00671 - 43 0.000427 - 44 0.00117 - 45 0.0121 - 46 0.00315 - 47 0.108 - - 5 861 24 0 - 0 0.00581 - 2 0.0918 - 7 0.18 - 8 0.00465 - 10 0.00348 - 13 0.0186 - 14 0.00465 - 15 0.00232 - 16 0.00116 - 19 0.00232 - 21 0.029 - 28 0.0163 - 29 0.0395 - 30 0.00465 - 31 0.00232 - 32 0.0279 - 33 0.0151 - 34 0.00813 - 37 0.0267 - 41 0.143 - 42 0.00813 - 44 0.00232 - 45 0.167 - 47 0.195 - - 6 48 13 0 - 2 0.0208 - 4 0.0208 - 7 0.375 - 19 0.0208 - 25 0.0417 - 26 0.0417 - 28 0.0417 - 29 0.0208 - 32 0.0208 - 33 0.0208 - 41 0.104 - 45 0.125 - 47 0.146 - - 7 266 22 0 - 0 0.0526 - 2 0.0376 - 3 0.00376 - 7 0.18 - 8 0.0113 - 10 0.00376 - 13 0.147 - 14 0.105 - 15 0.015 - 21 0.0188 - 26 0.0338 - 28 0.0639 - 29 0.0489 - 30 0.0263 - 31 0.0263 - 32 0.0113 - 33 0.0301 - 35 0.00376 - 41 0.0564 - 42 0.0113 - 45 0.0113 - 47 0.102 - - 8 19385 39 0 - 0 0.0334 - 1 0.000464 - 2 0.0742 - 3 0.00284 - 4 0.00212 - 6 0.000258 - 7 0.434 - 8 0.00175 - 9 5.16e-05 - 12 0.000155 - 13 0.0156 - 14 0.00655 - 15 0.00542 - 16 0.000206 - 18 0.000516 - 19 0.00119 - 20 5.16e-05 - 21 0.00774 - 22 0.000155 - 24 0.00665 - 25 5.16e-05 - 26 0.0329 - 28 0.0675 - 29 0.0412 - 30 0.0447 - 31 0.0181 - 32 0.0144 - 33 0.0214 - 34 0.0016 - 35 0.000516 - 36 0.000103 - 37 0.00464 - 41 0.0594 - 42 0.00645 - 43 0.000258 - 44 0.00165 - 45 0.0122 - 46 0.000413 - 47 0.0797 - - 9 1078 30 0 - 0 0.0891 - 1 0.00186 - 2 0.0714 - 3 0.000928 - 4 0.000928 - 7 0.286 - 8 0.00371 - 12 0.000928 - 13 0.00278 - 14 0.00742 - 15 0.00371 - 16 0.000928 - 18 0.00278 - 19 0.00371 - 21 0.0111 - 24 0.00928 - 26 0.0427 - 28 0.151 - 29 0.0584 - 30 0.0826 - 31 0.0139 - 32 0.0408 - 33 0.0362 - 34 0.000928 - 37 0.000928 - 41 0.0288 - 42 0.00464 - 43 0.000928 - 45 0.0121 - 47 0.0297 - - 10 467 25 0 - 0 0.00642 - 2 0.0814 - 3 0.00214 - 4 0.00642 - 7 0.343 - 8 0.00214 - 13 0.00642 - 14 0.00214 - 19 0.00214 - 21 0.00857 - 24 0.015 - 26 0.0107 - 28 0.0343 - 29 0.0493 - 30 0.0214 - 31 0.00857 - 32 0.0107 - 33 0.0236 - 34 0.00428 - 35 0.00428 - 37 0.00857 - 41 0.0814 - 42 0.00857 - 45 0.045 - 47 0.214 - - 12 2 2 0 - 45 0.5 - 46 0.5 - - 13 22292 40 0 - 0 0.0312 - 1 0.000718 - 2 0.0474 - 3 0.000942 - 4 0.00493 - 7 0.47 - 8 0.00287 - 9 0.000449 - 10 8.97e-05 - 12 0.000224 - 13 0.0139 - 14 0.00453 - 15 0.00359 - 16 0.000135 - 18 0.000224 - 19 0.00144 - 20 4.49e-05 - 21 0.00763 - 22 8.97e-05 - 24 0.00574 - 25 8.97e-05 - 26 0.0302 - 27 4.49e-05 - 28 0.0663 - 29 0.0343 - 30 0.0394 - 31 0.0156 - 32 0.012 - 33 0.0202 - 34 0.00112 - 35 0.000538 - 37 0.00529 - 40 4.49e-05 - 41 0.0834 - 42 0.00745 - 43 0.000179 - 44 0.00242 - 45 0.0131 - 46 0.00112 - 47 0.0713 - - 14 14611 37 0 - 0 0.0223 - 1 0.000342 - 2 0.0463 - 3 0.000137 - 4 0.0011 - 6 6.84e-05 - 7 0.397 - 8 0.0024 - 9 0.000274 - 10 6.84e-05 - 12 0.000274 - 13 0.00609 - 14 0.00342 - 15 0.000342 - 18 0.000274 - 19 0.000753 - 21 0.00527 - 22 6.84e-05 - 24 0.00862 - 26 0.0357 - 28 0.0862 - 29 0.0426 - 30 0.0557 - 31 0.0153 - 32 0.0201 - 33 0.0203 - 34 0.00356 - 35 0.000958 - 37 0.0112 - 40 0.000137 - 41 0.0757 - 42 0.00897 - 43 0.000205 - 44 0.00103 - 45 0.0125 - 46 0.000958 - 47 0.114 - - 15 39318 40 0 - 0 0.00677 - 1 0.000102 - 2 0.0486 - 3 0.00145 - 4 0.00305 - 6 0.000178 - 7 0.372 - 8 0.00542 - 9 0.000203 - 10 7.63e-05 - 12 0.000153 - 13 0.0124 - 14 0.0032 - 15 0.0044 - 16 5.09e-05 - 18 0.000382 - 19 0.000254 - 20 0.000254 - 21 0.00387 - 24 0.0017 - 25 2.54e-05 - 26 0.0255 - 28 0.0202 - 29 0.0393 - 30 0.0134 - 31 0.011 - 32 0.00471 - 33 0.0302 - 34 0.00231 - 35 0.00112 - 36 5.09e-05 - 37 0.0056 - 40 0.000203 - 41 0.14 - 42 0.0104 - 43 0.000102 - 44 0.00972 - 45 0.00946 - 46 0.01 - 47 0.202 - - 16 399 24 0 - 0 0.0125 - 2 0.0501 - 4 0.00752 - 7 0.421 - 8 0.00251 - 13 0.00752 - 14 0.00501 - 15 0.00251 - 20 0.00251 - 21 0.01 - 26 0.0251 - 28 0.0301 - 29 0.00752 - 30 0.0226 - 31 0.00501 - 32 0.00251 - 33 0.015 - 34 0.00251 - 37 0.00752 - 41 0.115 - 42 0.0125 - 44 0.00752 - 45 0.0276 - 47 0.198 - - 17 312 24 0 - 0 0.0609 - 1 0.00321 - 2 0.0449 - 7 0.372 - 8 0.00321 - 9 0.00321 - 13 0.00641 - 14 0.00641 - 15 0.00321 - 19 0.00641 - 21 0.00962 - 24 0.00962 - 26 0.0224 - 28 0.106 - 29 0.0513 - 30 0.0513 - 31 0.0385 - 32 0.016 - 33 0.0224 - 37 0.0128 - 41 0.0417 - 42 0.00321 - 45 0.0192 - 47 0.0865 - - 18 4 1 0 - 28 1 - - 19 17392 39 0 - 0 0.00949 - 1 0.000115 - 2 0.0515 - 3 0.00138 - 4 0.00149 - 5 5.75e-05 - 7 0.171 - 8 0.00477 - 9 0.000402 - 10 0.000575 - 12 0.00305 - 13 0.0331 - 14 0.0155 - 15 0.00385 - 16 0.00023 - 19 0.00161 - 21 0.0166 - 22 0.000402 - 23 5.75e-05 - 24 0.000115 - 26 0.00638 - 27 5.75e-05 - 28 0.0544 - 29 0.101 - 30 0.0205 - 31 0.0106 - 32 0.0237 - 33 0.0277 - 34 0.00862 - 35 0.0122 - 37 0.0274 - 40 5.75e-05 - 41 0.12 - 42 0.011 - 43 0.000517 - 44 0.00149 - 45 0.0877 - 46 0.0316 - 47 0.14 - - 20 8301 36 0 - 0 0.0153 - 1 0.000361 - 2 0.0496 - 3 0.000361 - 4 0.00422 - 7 0.429 - 8 0.00169 - 9 0.000241 - 10 0.00012 - 12 0.000241 - 13 0.00361 - 14 0.00108 - 15 0.00133 - 16 0.00012 - 17 0.00012 - 18 0.000241 - 19 0.000241 - 21 0.00675 - 24 0.017 - 26 0.0359 - 28 0.136 - 29 0.0916 - 30 0.0543 - 31 0.0223 - 32 0.0141 - 33 0.026 - 34 0.000723 - 35 0.00145 - 37 0.00638 - 41 0.0253 - 42 0.00446 - 43 0.00012 - 44 0.000602 - 45 0.00904 - 46 0.00133 - 47 0.0385 - - 21 1441 29 0 - 0 0.12 - 1 0.00208 - 2 0.0625 - 3 0.00625 - 4 0.00208 - 7 0.237 - 8 0.00278 - 12 0.000694 - 13 0.0437 - 14 0.0278 - 15 0.0153 - 19 0.00278 - 21 0.0396 - 24 0.00763 - 26 0.00902 - 28 0.0472 - 29 0.0402 - 30 0.0194 - 31 0.0222 - 32 0.0104 - 33 0.0285 - 34 0.00486 - 37 0.00625 - 41 0.0861 - 42 0.0201 - 44 0.00347 - 45 0.0146 - 46 0.00139 - 47 0.116 - - 22 181 22 0 - 0 0.0442 - 2 0.0221 - 3 0.00552 - 7 0.0663 - 8 0.0166 - 13 0.166 - 14 0.0663 - 15 0.0718 - 16 0.00552 - 19 0.00552 - 21 0.0331 - 24 0.0166 - 26 0.00552 - 28 0.0331 - 29 0.0718 - 30 0.0331 - 31 0.0718 - 32 0.011 - 33 0.0276 - 41 0.0166 - 45 0.00552 - 47 0.204 - - 23 35 9 0 - 0 0.0571 - 2 0.143 - 7 0.314 - 13 0.0571 - 29 0.0286 - 32 0.0286 - 33 0.0286 - 41 0.114 - 47 0.229 - - 24 2 2 0 - 22 0.5 - 24 0.5 - - 25 13 2 0 - 42 0.0769 - 47 0.923 - - 27 3 3 0 - 0 0.333 - 26 0.333 - 30 0.333 - - 28 113 18 0 - 0 0.0354 - 2 0.0708 - 7 0.0177 - 12 0.00885 - 14 0.00885 - 19 0.00885 - 21 0.00885 - 26 0.513 - 28 0.106 - 30 0.0265 - 32 0.00885 - 34 0.00885 - 35 0.00885 - 41 0.00885 - 42 0.0265 - 44 0.0177 - 45 0.0442 - 47 0.0708 - - 29 19 7 0 - 2 0.263 - 7 0.0526 - 13 0.0526 - 15 0.0526 - 31 0.0526 - 41 0.421 - 42 0.105 - - 30 714 22 0 - 0 0.0154 - 2 0.0868 - 7 0.51 - 8 0.0014 - 13 0.0028 - 14 0.0028 - 19 0.0014 - 21 0.0028 - 24 0.0098 - 26 0.0308 - 28 0.0672 - 29 0.0308 - 30 0.0336 - 31 0.0084 - 32 0.0112 - 33 0.0224 - 37 0.007 - 41 0.0714 - 42 0.007 - 43 0.0014 - 45 0.0042 - 47 0.0714 - - 31 540 22 0 - 0 0.0278 - 2 0.0722 - 4 0.00185 - 7 0.419 - 13 0.0037 - 14 0.00185 - 15 0.00556 - 21 0.0111 - 24 0.0111 - 26 0.0519 - 28 0.063 - 29 0.0296 - 30 0.0685 - 31 0.00556 - 32 0.00926 - 33 0.0241 - 37 0.00185 - 41 0.0556 - 42 0.0407 - 43 0.0037 - 45 0.00741 - 47 0.0852 - - 32 6 3 0 - 7 0.667 - 15 0.167 - 41 0.167 - - 33 18 9 0 - 0 0.167 - 2 0.278 - 7 0.111 - 19 0.111 - 21 0.0556 - 32 0.0556 - 41 0.111 - 42 0.0556 - 44 0.0556 - - 34 67 17 0 - 2 0.0448 - 7 0.104 - 8 0.0299 - 13 0.0149 - 14 0.0299 - 15 0.0149 - 28 0.0149 - 30 0.0149 - 32 0.0149 - 33 0.0149 - 35 0.0149 - 37 0.0149 - 41 0.403 - 42 0.0448 - 45 0.0149 - 46 0.0149 - 47 0.194 - - 35 8 6 0 - 0 0.125 - 2 0.125 - 26 0.125 - 28 0.125 - 33 0.125 - 47 0.375 - - 36 7 3 0 - 13 0.143 - 14 0.143 - 41 0.714 - - 37 4 3 0 - 7 0.25 - 28 0.5 - 33 0.25 - - 38 13 6 0 - 7 0.308 - 24 0.0769 - 26 0.385 - 28 0.0769 - 29 0.0769 - 33 0.0769 - - 39 1743 25 0 - 0 0.0298 - 2 0.197 - 4 0.000574 - 6 0.00115 - 7 0.402 - 8 0.00344 - 13 0.00229 - 14 0.00172 - 15 0.00287 - 19 0.00172 - 20 0.000574 - 21 0.0384 - 24 0.00229 - 26 0.124 - 28 0.0218 - 29 0.0671 - 30 0.012 - 31 0.0103 - 32 0.00229 - 33 0.00631 - 41 0.0189 - 42 0.0143 - 43 0.000574 - 44 0.0361 - 47 0.00229 - - 41 2 2 0 - 0 0.5 - 3 0.5 - - 42 57 4 0 - 14 0.0175 - 40 0.0175 - 42 0.0175 - 47 0.947 - - 44 39 13 0 - 0 0.0256 - 2 0.0769 - 4 0.0256 - 7 0.282 - 14 0.0513 - 15 0.0513 - 26 0.0769 - 28 0.103 - 34 0.0256 - 40 0.103 - 41 0.0256 - 42 0.0256 - 47 0.128 - - 45 468 24 0 - 0 0.0662 - 1 0.00214 - 2 0.0491 - 3 0.00427 - 7 0.404 - 13 0.0128 - 14 0.00427 - 15 0.00427 - 18 0.00427 - 19 0.00214 - 21 0.00427 - 24 0.00855 - 26 0.0235 - 28 0.0641 - 29 0.0449 - 30 0.0726 - 31 0.0406 - 32 0.00641 - 33 0.0363 - 41 0.0299 - 42 0.0192 - 44 0.015 - 45 0.00214 - 47 0.0791 - - 48 1258 29 0 - 0 0.0819 - 1 0.000795 - 2 0.0429 - 4 0.00238 - 7 0.431 - 13 0.00477 - 14 0.00159 - 15 0.00238 - 18 0.000795 - 19 0.00238 - 21 0.0127 - 23 0.000795 - 24 0.00477 - 25 0.00159 - 26 0.0334 - 28 0.0787 - 29 0.0437 - 30 0.0437 - 31 0.0151 - 32 0.0207 - 33 0.0231 - 35 0.000795 - 36 0.000795 - 37 0.00397 - 41 0.0453 - 42 0.0167 - 45 0.0175 - 46 0.000795 - 47 0.0652 - - 49 116 18 0 - 0 0.0776 - 2 0.0776 - 3 0.0172 - 7 0.241 - 13 0.0517 - 14 0.00862 - 21 0.00862 - 26 0.00862 - 28 0.0517 - 29 0.0431 - 30 0.0345 - 31 0.0345 - 32 0.00862 - 34 0.00862 - 41 0.284 - 42 0.0259 - 46 0.00862 - 47 0.00862 - - 50 10 7 0 - 0 0.2 - 14 0.1 - 28 0.1 - 29 0.1 - 30 0.2 - 33 0.2 - 42 0.1 - - 53 7 4 0 - 2 0.143 - 7 0.143 - 42 0.429 - 47 0.286 - - 54 72 13 0 - 0 0.0139 - 2 0.0556 - 4 0.0139 - 7 0.417 - 26 0.0417 - 28 0.0278 - 29 0.0278 - 30 0.0139 - 33 0.0278 - 34 0.0139 - 41 0.111 - 46 0.0139 - 47 0.222 - - 55 80263 43 0 - 0 0.0575 - 1 0.000536 - 2 0.0458 - 3 0.000461 - 4 0.00156 - 5 2.49e-05 - 6 8.72e-05 - 7 0.377 - 8 0.00127 - 9 9.97e-05 - 10 2.49e-05 - 12 0.00015 - 13 0.00471 - 14 0.00257 - 15 0.00239 - 16 9.97e-05 - 17 9.97e-05 - 18 0.000174 - 19 0.00179 - 20 0.000125 - 21 0.00893 - 22 6.23e-05 - 24 0.00776 - 25 3.74e-05 - 26 0.0369 - 28 0.0637 - 29 0.0564 - 30 0.0373 - 31 0.0168 - 32 0.0133 - 33 0.0337 - 34 0.000648 - 35 0.000336 - 36 1.25e-05 - 37 0.00262 - 40 8.72e-05 - 41 0.0805 - 42 0.0217 - 43 0.000336 - 44 0.00209 - 45 0.00795 - 46 0.00182 - 47 0.111 - - 57 11 7 0 - 2 0.273 - 24 0.0909 - 28 0.182 - 33 0.182 - 41 0.0909 - 42 0.0909 - 44 0.0909 - - 58 14 6 0 - 0 0.0714 - 2 0.0714 - 7 0.643 - 28 0.0714 - 31 0.0714 - 41 0.0714 - - 60 8061 34 0 - 0 0.0514 - 1 0.000124 - 2 0.0294 - 3 0.000496 - 4 0.00062 - 7 0.386 - 8 0.00248 - 9 0.000124 - 13 0.016 - 14 0.00657 - 15 0.00385 - 16 0.000124 - 18 0.000496 - 19 0.00124 - 21 0.0112 - 22 0.000124 - 23 0.000124 - 24 0.00844 - 26 0.154 - 28 0.0624 - 29 0.08 - 30 0.0249 - 31 0.02 - 32 0.00893 - 33 0.0238 - 34 0.000744 - 37 0.00211 - 41 0.0215 - 42 0.0383 - 43 0.000124 - 44 0.0203 - 45 0.00136 - 46 0.000248 - 47 0.0226 - - 62 34 6 0 - 7 0.647 - 26 0.0882 - 30 0.0294 - 42 0.0294 - 45 0.0588 - 47 0.147 - - 64 40 15 0 - 0 0.1 - 2 0.025 - 7 0.2 - 13 0.025 - 19 0.05 - 24 0.025 - 26 0.05 - 28 0.1 - 29 0.05 - 30 0.025 - 31 0.075 - 33 0.075 - 41 0.1 - 45 0.075 - 47 0.025 - - 68 95 14 0 - 0 0.0105 - 2 0.0211 - 7 0.516 - 21 0.0105 - 26 0.0421 - 28 0.0737 - 29 0.0105 - 30 0.0632 - 31 0.0105 - 32 0.0211 - 33 0.0632 - 41 0.0211 - 42 0.0211 - 47 0.116 - - 48 4567 37 18 - 0 0.0274 - 1 0.000219 - 2 0.0125 - 3 0.0103 - 4 0.53 - 7 0.119 - 8 0.0458 - 9 0.00153 - 10 0.000438 - 13 0.00613 - 14 0.000438 - 15 0.0101 - 16 0.000219 - 18 0.0469 - 19 0.00153 - 20 0.0405 - 21 0.00504 - 22 0.000876 - 23 0.000219 - 24 0.00131 - 25 0.000438 - 26 0.0092 - 28 0.0217 - 29 0.0123 - 30 0.0138 - 31 0.00963 - 32 0.00569 - 33 0.00635 - 35 0.000219 - 36 0.000438 - 37 0.00109 - 40 0.000219 - 41 0.0243 - 42 0.0046 - 45 0.0109 - 46 0.000438 - 47 0.018 - - 3 17 2 0 - 4 0.941 - 18 0.0588 - - 4 16 7 0 - 0 0.375 - 7 0.125 - 21 0.188 - 28 0.0625 - 32 0.125 - 37 0.0625 - 45 0.0625 - - 8 500 23 0 - 0 0.03 - 2 0.016 - 3 0.024 - 4 0.448 - 7 0.148 - 8 0.034 - 13 0.014 - 15 0.006 - 18 0.058 - 20 0.064 - 22 0.002 - 26 0.008 - 28 0.012 - 29 0.016 - 30 0.012 - 31 0.02 - 32 0.004 - 33 0.016 - 35 0.002 - 41 0.036 - 42 0.014 - 45 0.004 - 47 0.012 - - 9 5 4 0 - 2 0.2 - 4 0.4 - 7 0.2 - 30 0.2 - - 13 2669 34 0 - 0 0.0217 - 1 0.000375 - 2 0.00712 - 3 0.0045 - 4 0.651 - 7 0.0573 - 8 0.0476 - 9 0.00225 - 10 0.000375 - 13 0.00525 - 14 0.000749 - 15 0.00599 - 18 0.0555 - 19 0.00187 - 20 0.0412 - 21 0.00337 - 22 0.000749 - 23 0.000375 - 24 0.00112 - 25 0.000375 - 26 0.00599 - 28 0.0139 - 29 0.0109 - 30 0.0105 - 31 0.00974 - 32 0.003 - 33 0.003 - 36 0.000749 - 40 0.000375 - 41 0.0161 - 42 0.00187 - 45 0.00599 - 46 0.000749 - 47 0.00862 - - 14 854 30 0 - 0 0.0457 - 2 0.0269 - 3 0.0234 - 4 0.196 - 7 0.292 - 8 0.0679 - 9 0.00117 - 10 0.00117 - 13 0.00468 - 15 0.0304 - 16 0.00117 - 18 0.0222 - 19 0.00117 - 20 0.0293 - 21 0.0082 - 22 0.00117 - 24 0.00351 - 25 0.00117 - 26 0.0152 - 28 0.0504 - 29 0.0222 - 30 0.0258 - 31 0.0082 - 32 0.0129 - 33 0.0141 - 37 0.00351 - 41 0.0293 - 42 0.0082 - 45 0.0152 - 47 0.0386 - - 15 246 19 0 - 0 0.0122 - 2 0.0203 - 3 0.00813 - 4 0.537 - 7 0.142 - 8 0.0122 - 13 0.00407 - 15 0.00407 - 18 0.0407 - 20 0.0325 - 21 0.00407 - 26 0.0285 - 28 0.0163 - 30 0.0163 - 32 0.00813 - 33 0.00407 - 37 0.00407 - 41 0.0407 - 47 0.065 - - 16 8 5 0 - 4 0.25 - 7 0.375 - 26 0.125 - 41 0.125 - 47 0.125 - - 18 2 1 0 - 13 1 - - 30 11 5 0 - 4 0.545 - 7 0.0909 - 20 0.182 - 28 0.0909 - 45 0.0909 - - 31 14 5 0 - 4 0.429 - 7 0.214 - 18 0.143 - 20 0.143 - 42 0.0714 - - 41 40 10 0 - 2 0.025 - 3 0.025 - 4 0.55 - 7 0.075 - 18 0.05 - 20 0.075 - 21 0.025 - 30 0.025 - 41 0.125 - 47 0.025 - - 46 19 2 0 - 4 0.158 - 45 0.842 - - 47 89 12 0 - 0 0.0225 - 4 0.753 - 7 0.0674 - 8 0.0112 - 19 0.0112 - 20 0.0112 - 21 0.0225 - 28 0.0562 - 30 0.0112 - 31 0.0112 - 32 0.0112 - 41 0.0112 - - 48 29 9 0 - 0 0.069 - 4 0.414 - 7 0.069 - 18 0.0345 - 20 0.0345 - 26 0.0345 - 28 0.0345 - 41 0.276 - 45 0.0345 - - 55 7 5 0 - 4 0.286 - 7 0.286 - 20 0.143 - 28 0.143 - 47 0.143 - - 56 9 4 0 - 4 0.444 - 7 0.333 - 8 0.111 - 47 0.111 - - 58 6 4 0 - 4 0.333 - 7 0.333 - 8 0.167 - 42 0.167 - - 49 130 21 9 - 0 0.0692 - 2 0.0769 - 3 0.0154 - 4 0.0615 - 7 0.215 - 13 0.0462 - 14 0.00769 - 18 0.00769 - 21 0.0231 - 26 0.00769 - 28 0.0462 - 29 0.0385 - 30 0.0308 - 31 0.0308 - 32 0.00769 - 34 0.00769 - 41 0.262 - 42 0.0231 - 45 0.00769 - 46 0.00769 - 47 0.00769 - - 3 7 3 0 - 7 0.429 - 30 0.143 - 41 0.429 - - 4 51 12 0 - 0 0.0588 - 2 0.118 - 7 0.294 - 13 0.118 - 28 0.0588 - 29 0.0392 - 30 0.0392 - 31 0.0588 - 32 0.0196 - 41 0.157 - 42 0.0196 - 47 0.0196 - - 8 6 4 0 - 7 0.5 - 28 0.167 - 29 0.167 - 31 0.167 - - 13 19 10 0 - 0 0.0526 - 4 0.368 - 7 0.158 - 14 0.0526 - 28 0.0526 - 29 0.0526 - 30 0.0526 - 41 0.105 - 42 0.0526 - 45 0.0526 - - 14 4 4 0 - 4 0.25 - 7 0.25 - 26 0.25 - 29 0.25 - - 15 5 3 0 - 18 0.2 - 41 0.6 - 42 0.2 - - 41 3 2 0 - 3 0.667 - 7 0.333 - - 47 1 1 0 - 34 1 - - 55 29 7 0 - 0 0.138 - 2 0.138 - 7 0.069 - 21 0.069 - 28 0.0345 - 41 0.517 - 46 0.0345 - - 50 14 10 0 - 0 0.143 - 14 0.143 - 15 0.0714 - 28 0.0714 - 29 0.0714 - 30 0.143 - 32 0.0714 - 33 0.143 - 41 0.0714 - 42 0.0714 - - 53 7 4 0 - 2 0.143 - 7 0.143 - 42 0.429 - 47 0.286 - - 54 390 20 6 - 0 0.00256 - 2 0.0154 - 3 0.0282 - 4 0.618 - 7 0.0769 - 8 0.0359 - 13 0.00256 - 15 0.0128 - 18 0.0308 - 20 0.059 - 26 0.00769 - 28 0.00513 - 29 0.00513 - 30 0.00256 - 33 0.00513 - 34 0.00256 - 41 0.0205 - 45 0.0256 - 46 0.00256 - 47 0.041 - - 8 28 2 0 - 3 0.0714 - 4 0.929 - - 13 239 11 0 - 2 0.00418 - 3 0.0167 - 4 0.762 - 7 0.0251 - 8 0.0418 - 15 0.00837 - 18 0.046 - 20 0.0753 - 33 0.00837 - 41 0.00837 - 47 0.00418 - - 14 26 8 0 - 2 0.0769 - 3 0.115 - 4 0.462 - 18 0.0385 - 20 0.115 - 28 0.0385 - 41 0.0385 - 47 0.115 - - 15 74 17 0 - 0 0.0135 - 2 0.0405 - 3 0.027 - 4 0.189 - 7 0.27 - 8 0.0541 - 13 0.0135 - 15 0.0405 - 26 0.027 - 28 0.0135 - 29 0.027 - 30 0.0135 - 34 0.0135 - 41 0.0676 - 45 0.027 - 46 0.0135 - 47 0.149 - - 18 3 2 0 - 7 0.667 - 26 0.333 - - 46 8 1 0 - 45 1 - - 55 80957 43 26 - 0 0.057 - 1 0.000531 - 2 0.0461 - 3 0.000581 - 4 0.00351 - 5 2.47e-05 - 6 8.65e-05 - 7 0.374 - 8 0.00166 - 9 9.88e-05 - 10 4.94e-05 - 12 0.000148 - 13 0.00473 - 14 0.00267 - 15 0.00241 - 16 9.88e-05 - 17 0.000371 - 18 0.000259 - 19 0.00178 - 20 0.000259 - 21 0.00965 - 22 7.41e-05 - 24 0.0077 - 25 3.71e-05 - 26 0.0366 - 28 0.0632 - 29 0.0559 - 30 0.037 - 31 0.0167 - 32 0.0131 - 33 0.0334 - 34 0.000642 - 35 0.000334 - 36 1.24e-05 - 37 0.00259 - 40 8.65e-05 - 41 0.0801 - 42 0.0218 - 43 0.000371 - 44 0.0022 - 45 0.0108 - 46 0.00188 - 47 0.11 - - 0 4 4 0 - 7 0.25 - 29 0.25 - 30 0.25 - 32 0.25 - - 2 4 3 0 - 4 0.25 - 7 0.5 - 47 0.25 - - 3 137 16 0 - 0 0.0073 - 2 0.0146 - 7 0.577 - 13 0.0073 - 14 0.0146 - 24 0.0146 - 26 0.0292 - 28 0.0438 - 29 0.0365 - 30 0.0073 - 31 0.0073 - 32 0.0438 - 33 0.0365 - 34 0.0073 - 41 0.0803 - 47 0.073 - - 4 2 2 0 - 13 0.5 - 26 0.5 - - 8 1730 27 0 - 0 0.0254 - 2 0.0353 - 3 0.00116 - 4 0.00578 - 7 0.478 - 8 0.000578 - 9 0.000578 - 13 0.00347 - 18 0.00116 - 21 0.00925 - 24 0.00925 - 26 0.0364 - 28 0.0572 - 29 0.041 - 30 0.0272 - 31 0.00925 - 32 0.00578 - 33 0.0168 - 34 0.00116 - 35 0.00173 - 37 0.00173 - 41 0.102 - 42 0.00694 - 44 0.000578 - 45 0.00347 - 46 0.00347 - 47 0.115 - - 9 15 7 0 - 7 0.467 - 26 0.0667 - 28 0.0667 - 29 0.0667 - 31 0.0667 - 33 0.0667 - 41 0.2 - - 10 202 18 0 - 0 0.114 - 2 0.0248 - 3 0.00495 - 7 0.347 - 15 0.00495 - 20 0.00495 - 21 0.0248 - 24 0.00495 - 26 0.00495 - 28 0.0248 - 29 0.0198 - 30 0.0347 - 31 0.0198 - 32 0.00495 - 33 0.00495 - 41 0.262 - 42 0.0099 - 47 0.0842 - - 13 3620 33 0 - 0 0.0177 - 2 0.0282 - 3 0.0011 - 4 0.0113 - 7 0.41 - 8 0.00414 - 10 0.000276 - 13 0.00249 - 14 0.00166 - 15 0.00138 - 17 0.0011 - 18 0.000276 - 19 0.000552 - 20 0.0011 - 21 0.00912 - 24 0.00691 - 26 0.0373 - 28 0.0715 - 29 0.0561 - 30 0.0331 - 31 0.0133 - 32 0.0127 - 33 0.0218 - 34 0.000552 - 35 0.000276 - 37 0.00331 - 41 0.0956 - 42 0.00635 - 43 0.000552 - 44 0.00138 - 45 0.0047 - 46 0.00221 - 47 0.142 - - 14 1127 28 0 - 0 0.00532 - 2 0.024 - 3 0.00177 - 4 0.0071 - 7 0.482 - 8 0.0071 - 13 0.00532 - 14 0.00177 - 15 0.000887 - 17 0.00177 - 21 0.00266 - 24 0.00621 - 26 0.0417 - 28 0.0816 - 29 0.0488 - 30 0.039 - 31 0.0177 - 32 0.0115 - 33 0.0195 - 34 0.00266 - 35 0.00177 - 37 0.00799 - 41 0.0532 - 42 0.00444 - 44 0.00177 - 45 0.00444 - 46 0.000887 - 47 0.117 - - 15 868 28 0 - 0 0.0104 - 2 0.0657 - 3 0.0023 - 4 0.00806 - 7 0.468 - 8 0.00691 - 13 0.0023 - 14 0.00115 - 15 0.00115 - 18 0.00461 - 20 0.00115 - 21 0.0023 - 24 0.00115 - 26 0.0415 - 28 0.0173 - 29 0.0242 - 30 0.0161 - 31 0.00461 - 32 0.00346 - 33 0.0242 - 34 0.0023 - 37 0.00115 - 41 0.0668 - 42 0.0127 - 44 0.00115 - 45 0.00806 - 46 0.0023 - 47 0.199 - - 16 33 9 0 - 2 0.0303 - 7 0.455 - 20 0.0606 - 28 0.0909 - 30 0.0303 - 32 0.0303 - 41 0.0606 - 45 0.0303 - 47 0.212 - - 18 5 4 0 - 2 0.4 - 7 0.2 - 26 0.2 - 45 0.2 - - 23 2 2 0 - 2 0.5 - 33 0.5 - - 30 87 11 0 - 2 0.023 - 7 0.575 - 26 0.046 - 28 0.103 - 29 0.0345 - 30 0.0345 - 31 0.023 - 33 0.023 - 41 0.092 - 42 0.0115 - 47 0.0345 - - 31 59 13 0 - 2 0.0339 - 4 0.0339 - 7 0.475 - 14 0.0169 - 24 0.0169 - 26 0.0339 - 28 0.0508 - 29 0.102 - 30 0.0508 - 31 0.0169 - 41 0.0169 - 46 0.0169 - 47 0.136 - - 41 5 5 0 - 2 0.2 - 4 0.2 - 7 0.2 - 28 0.2 - 41 0.2 - - 43 4 2 0 - 7 0.25 - 44 0.75 - - 45 68 11 0 - 0 0.0441 - 2 0.0147 - 7 0.426 - 15 0.0147 - 26 0.0735 - 28 0.0735 - 29 0.132 - 30 0.0294 - 33 0.0441 - 41 0.0294 - 47 0.118 - - 46 6 2 0 - 19 0.167 - 45 0.833 - - 47 72658 43 0 - 0 0.0614 - 1 0.000592 - 2 0.0476 - 3 0.000495 - 4 0.0029 - 5 2.75e-05 - 6 9.63e-05 - 7 0.366 - 8 0.00143 - 9 9.63e-05 - 10 4.13e-05 - 12 0.000165 - 13 0.00491 - 14 0.00278 - 15 0.00256 - 16 0.00011 - 17 0.00033 - 18 0.000193 - 19 0.00193 - 20 0.000179 - 21 0.00988 - 22 8.26e-05 - 24 0.0078 - 25 4.13e-05 - 26 0.0365 - 28 0.0633 - 29 0.0569 - 30 0.0378 - 31 0.0172 - 32 0.0135 - 33 0.0349 - 34 0.000578 - 35 0.000289 - 36 1.38e-05 - 37 0.00255 - 40 9.63e-05 - 41 0.0789 - 42 0.0236 - 43 0.000385 - 44 0.00228 - 45 0.0115 - 46 0.00183 - 47 0.107 - - 48 235 20 0 - 0 0.0255 - 2 0.0255 - 4 0.00851 - 7 0.417 - 14 0.00851 - 19 0.00426 - 21 0.0128 - 24 0.0128 - 26 0.034 - 28 0.0638 - 29 0.0213 - 30 0.0255 - 31 0.017 - 32 0.00851 - 33 0.0213 - 41 0.0979 - 42 0.00851 - 45 0.00426 - 46 0.00426 - 47 0.179 - - 54 12 2 0 - 7 0.833 - 28 0.167 - - 55 7 6 0 - 7 0.286 - 13 0.143 - 26 0.143 - 28 0.143 - 29 0.143 - 47 0.143 - - 57 19 7 0 - 4 0.0526 - 7 0.526 - 26 0.0526 - 29 0.105 - 30 0.0526 - 33 0.0526 - 41 0.158 - - 60 22 6 0 - 7 0.682 - 21 0.0455 - 28 0.0455 - 30 0.0455 - 41 0.0909 - 47 0.0909 - - 68 8 5 0 - 7 0.375 - 28 0.25 - 30 0.125 - 32 0.125 - 47 0.125 - - 56 295 15 2 - 2 0.00678 - 3 0.0542 - 4 0.42 - 7 0.00339 - 8 0.251 - 9 0.0169 - 10 0.0102 - 15 0.00339 - 20 0.122 - 21 0.0102 - 30 0.00678 - 31 0.0102 - 34 0.00339 - 41 0.00678 - 45 0.0746 - - 15 2 2 0 - 7 0.5 - 8 0.5 - - 46 2 1 0 - 45 1 - - 57 38 11 4 - 2 0.132 - 13 0.0526 - 14 0.0263 - 15 0.5 - 24 0.0263 - 28 0.0526 - 33 0.0526 - 41 0.0526 - 42 0.0263 - 44 0.0263 - 45 0.0526 - - 18 19 2 0 - 13 0.0526 - 15 0.947 - - 41 4 4 0 - 2 0.25 - 24 0.25 - 41 0.25 - 45 0.25 - - 47 4 4 0 - 13 0.25 - 14 0.25 - 28 0.25 - 33 0.25 - - 55 5 4 0 - 2 0.4 - 28 0.2 - 41 0.2 - 44 0.2 - - 58 108 17 5 - 0 0.00926 - 2 0.00926 - 3 0.037 - 4 0.0926 - 6 0.0185 - 7 0.0833 - 8 0.167 - 13 0.102 - 15 0.333 - 16 0.00926 - 18 0.0185 - 20 0.0278 - 28 0.00926 - 31 0.00926 - 40 0.0185 - 41 0.0185 - 46 0.037 - - 8 10 7 0 - 0 0.1 - 2 0.1 - 4 0.1 - 7 0.2 - 8 0.3 - 18 0.1 - 20 0.1 - - 13 37 10 0 - 3 0.0811 - 4 0.216 - 6 0.027 - 7 0.0811 - 8 0.216 - 13 0.135 - 15 0.162 - 18 0.027 - 20 0.027 - 46 0.027 - - 14 21 10 0 - 4 0.0476 - 6 0.0476 - 7 0.0952 - 8 0.238 - 13 0.19 - 15 0.19 - 20 0.0476 - 28 0.0476 - 31 0.0476 - 46 0.0476 - - 15 31 5 0 - 7 0.0645 - 8 0.0323 - 15 0.806 - 16 0.0323 - 40 0.0645 - - 47 5 4 0 - 3 0.2 - 13 0.2 - 41 0.2 - 46 0.4 - - 60 8217 36 21 - 0 0.0504 - 1 0.000122 - 2 0.0288 - 3 0.00231 - 4 0.00828 - 7 0.378 - 8 0.00633 - 9 0.000122 - 10 0.000122 - 13 0.0158 - 14 0.00645 - 15 0.00377 - 16 0.000122 - 18 0.00316 - 19 0.00122 - 20 0.000852 - 21 0.0113 - 22 0.000122 - 23 0.000122 - 24 0.00828 - 26 0.151 - 28 0.0612 - 29 0.0785 - 30 0.0245 - 31 0.0207 - 32 0.00876 - 33 0.0234 - 34 0.00073 - 37 0.00207 - 41 0.0211 - 42 0.0376 - 43 0.000122 - 44 0.0202 - 45 0.00146 - 46 0.000243 - 47 0.0221 - - 2 2 2 0 - 31 0.5 - 41 0.5 - - 3 8 4 0 - 0 0.25 - 26 0.375 - 28 0.125 - 29 0.25 - - 4 63 16 0 - 0 0.143 - 2 0.111 - 7 0.143 - 13 0.0317 - 14 0.0317 - 15 0.0159 - 24 0.0317 - 26 0.0317 - 28 0.0317 - 29 0.0476 - 31 0.0159 - 32 0.0159 - 33 0.0317 - 41 0.206 - 42 0.0159 - 47 0.0952 - - 7 7 5 0 - 0 0.429 - 2 0.143 - 7 0.143 - 13 0.143 - 45 0.143 - - 8 300 22 0 - 0 0.0933 - 2 0.0467 - 4 0.0267 - 7 0.31 - 8 0.00333 - 13 0.01 - 15 0.00667 - 18 0.03 - 20 0.00333 - 21 0.0133 - 24 0.0133 - 26 0.02 - 28 0.0867 - 29 0.05 - 30 0.0367 - 31 0.0267 - 32 0.00667 - 33 0.0333 - 37 0.00333 - 41 0.04 - 42 0.09 - 47 0.05 - - 9 5 5 0 - 2 0.2 - 28 0.2 - 29 0.2 - 32 0.2 - 41 0.2 - - 13 1033 27 0 - 0 0.0552 - 1 0.000968 - 2 0.0387 - 3 0.000968 - 4 0.0155 - 7 0.284 - 8 0.0029 - 13 0.00581 - 14 0.0106 - 15 0.00194 - 18 0.0029 - 19 0.00194 - 21 0.0271 - 24 0.00678 - 26 0.0736 - 28 0.0697 - 29 0.0794 - 30 0.0368 - 31 0.0281 - 32 0.0126 - 33 0.0523 - 37 0.000968 - 41 0.0542 - 42 0.092 - 44 0.00678 - 45 0.00194 - 47 0.0368 - - 14 1393 31 0 - 0 0.0682 - 2 0.0223 - 3 0.00144 - 4 0.0215 - 7 0.363 - 8 0.0223 - 9 0.000718 - 13 0.0625 - 14 0.00718 - 15 0.00287 - 16 0.000718 - 18 0.00718 - 19 0.00287 - 20 0.00359 - 21 0.0122 - 24 0.00861 - 26 0.0818 - 28 0.0653 - 29 0.0639 - 30 0.023 - 31 0.0294 - 32 0.0108 - 33 0.0294 - 34 0.000718 - 37 0.0101 - 41 0.0251 - 42 0.0101 - 43 0.000718 - 44 0.00144 - 45 0.00287 - 47 0.038 - - 15 70 16 0 - 0 0.0143 - 2 0.0286 - 4 0.0857 - 7 0.386 - 8 0.0143 - 18 0.0143 - 20 0.0143 - 28 0.0857 - 29 0.0571 - 30 0.0286 - 31 0.0143 - 33 0.0571 - 41 0.0286 - 42 0.0429 - 46 0.0143 - 47 0.114 - - 16 12 5 0 - 0 0.0833 - 4 0.333 - 7 0.25 - 28 0.167 - 47 0.167 - - 20 18 11 0 - 0 0.111 - 2 0.111 - 7 0.167 - 26 0.0556 - 28 0.0556 - 29 0.111 - 30 0.0556 - 32 0.0556 - 33 0.111 - 41 0.111 - 42 0.0556 - - 21 4 3 0 - 18 0.25 - 31 0.5 - 42 0.25 - - 31 5 3 0 - 0 0.4 - 7 0.4 - 33 0.2 - - 45 1 1 0 - 32 1 - - 46 1 1 0 - 45 1 - - 47 5237 31 0 - 0 0.0405 - 2 0.0258 - 3 0.00306 - 4 0.000573 - 7 0.409 - 8 0.00286 - 10 0.000191 - 13 0.00592 - 14 0.00573 - 15 0.0042 - 18 0.000382 - 19 0.000764 - 21 0.0084 - 22 0.000191 - 23 0.000191 - 24 0.00802 - 26 0.198 - 28 0.0571 - 29 0.0852 - 30 0.0223 - 31 0.0164 - 32 0.00726 - 33 0.0145 - 34 0.000955 - 37 0.000191 - 41 0.00955 - 42 0.0315 - 44 0.03 - 45 0.000382 - 46 0.000191 - 47 0.0107 - - 48 4 4 0 - 7 0.25 - 28 0.25 - 41 0.25 - 47 0.25 - - 55 19 8 0 - 0 0.105 - 2 0.158 - 7 0.368 - 26 0.105 - 28 0.0526 - 42 0.105 - 45 0.0526 - 47 0.0526 - - 56 14 6 0 - 4 0.0714 - 7 0.571 - 24 0.0714 - 29 0.0714 - 33 0.143 - 47 0.0714 - - 58 1 1 0 - 45 1 - - 60 15 4 0 - 7 0.8 - 8 0.0667 - 26 0.0667 - 31 0.0667 - - 62 60 9 3 - 7 0.367 - 18 0.0167 - 26 0.05 - 30 0.0167 - 34 0.0167 - 41 0.0167 - 42 0.05 - 45 0.383 - 47 0.0833 - - 2 10 3 0 - 7 0.7 - 26 0.2 - 30 0.1 - - 46 14 1 0 - 45 1 - - 47 13 6 0 - 7 0.308 - 34 0.0769 - 41 0.0769 - 42 0.154 - 45 0.154 - 47 0.231 - - 64 48 16 4 - 0 0.0833 - 2 0.0208 - 7 0.188 - 13 0.0208 - 19 0.0417 - 24 0.0208 - 26 0.0417 - 28 0.0833 - 29 0.0417 - 30 0.0208 - 31 0.0625 - 33 0.0625 - 41 0.208 - 45 0.0625 - 46 0.0208 - 47 0.0208 - - 2 5 4 0 - 7 0.4 - 28 0.2 - 29 0.2 - 45 0.2 - - 41 9 7 0 - 0 0.222 - 2 0.111 - 7 0.222 - 19 0.111 - 24 0.111 - 26 0.111 - 47 0.111 - - 42 11 8 0 - 0 0.0909 - 7 0.364 - 13 0.0909 - 26 0.0909 - 28 0.0909 - 29 0.0909 - 30 0.0909 - 33 0.0909 - - 47 22 9 0 - 0 0.0455 - 7 0.0455 - 19 0.0455 - 28 0.0455 - 31 0.136 - 33 0.0909 - 41 0.455 - 45 0.0909 - 46 0.0455 - - 68 206 22 3 - 0 0.00971 - 2 0.00971 - 3 0.00971 - 4 0.209 - 7 0.238 - 8 0.194 - 9 0.00485 - 13 0.0146 - 15 0.0291 - 18 0.034 - 20 0.0194 - 21 0.00485 - 26 0.0194 - 28 0.034 - 29 0.00485 - 30 0.0388 - 31 0.0146 - 32 0.00971 - 33 0.0291 - 41 0.00971 - 42 0.00971 - 47 0.0534 - - 8 17 5 0 - 7 0.294 - 8 0.529 - 15 0.0588 - 32 0.0588 - 47 0.0588 - - 13 71 12 0 - 2 0.0282 - 4 0.465 - 7 0.127 - 8 0.183 - 9 0.0141 - 13 0.0423 - 15 0.0423 - 26 0.0141 - 30 0.0141 - 33 0.0282 - 41 0.0141 - 47 0.0282 - - 14 113 19 0 - 0 0.0177 - 3 0.0177 - 4 0.0796 - 7 0.274 - 8 0.159 - 15 0.0177 - 18 0.0619 - 20 0.0354 - 21 0.00885 - 26 0.0265 - 28 0.0619 - 29 0.00885 - 30 0.0619 - 31 0.0265 - 32 0.00885 - 33 0.0354 - 41 0.00885 - 42 0.0177 - 47 0.0708 - - 69 5 3 0 - 4 0.2 - 18 0.4 - 45 0.4 - -56 3353 24 19 - 2 0.24 - 3 0.0289 - 4 0.15 - 6 0.000596 - 7 0.00209 - 8 0.17 - 9 0.00716 - 10 0.00388 - 13 0.0674 - 14 0.0155 - 15 0.0692 - 16 0.00418 - 18 0.0746 - 20 0.0435 - 21 0.00507 - 30 0.00537 - 31 0.00775 - 34 0.00119 - 36 0.00119 - 39 0.000596 - 40 0.000298 - 41 0.0537 - 42 0.000596 - 45 0.0474 - - 2 8 4 0 - 13 0.375 - 14 0.125 - 15 0.375 - 16 0.125 - - 3 22 9 1 - 2 0.318 - 4 0.136 - 8 0.182 - 15 0.0455 - 18 0.0909 - 20 0.0455 - 21 0.0455 - 39 0.0909 - 45 0.0455 - - 47 7 4 0 - 8 0.429 - 21 0.143 - 39 0.286 - 45 0.143 - - 4 10 4 0 - 2 0.1 - 21 0.1 - 41 0.1 - 45 0.7 - - 6 8 2 0 - 6 0.25 - 45 0.75 - - 7 3 1 0 - 15 1 - - 8 253 14 4 - 2 0.506 - 3 0.0356 - 4 0.107 - 7 0.00395 - 8 0.119 - 9 0.0119 - 13 0.00395 - 15 0.00791 - 18 0.0711 - 20 0.0395 - 30 0.00395 - 31 0.00395 - 41 0.0632 - 45 0.0237 - - 8 21 4 0 - 2 0.857 - 18 0.0476 - 41 0.0476 - 45 0.0476 - - 13 140 14 0 - 2 0.464 - 3 0.00714 - 4 0.15 - 7 0.00714 - 8 0.157 - 9 0.00714 - 13 0.00714 - 15 0.00714 - 18 0.0786 - 20 0.0357 - 30 0.00714 - 31 0.00714 - 41 0.0357 - 45 0.0286 - - 14 76 10 0 - 2 0.5 - 3 0.0526 - 4 0.0263 - 8 0.105 - 9 0.0263 - 15 0.0132 - 18 0.0789 - 20 0.0526 - 41 0.132 - 45 0.0132 - - 47 3 1 0 - 3 1 - - 13 596 17 4 - 2 0.201 - 3 0.0185 - 4 0.0839 - 8 0.309 - 9 0.00503 - 10 0.00336 - 13 0.173 - 14 0.0101 - 15 0.0436 - 18 0.0453 - 20 0.0185 - 30 0.0134 - 31 0.0101 - 34 0.00168 - 36 0.00168 - 41 0.052 - 45 0.0101 - - 13 101 12 0 - 2 0.337 - 3 0.0198 - 4 0.129 - 8 0.248 - 9 0.0099 - 10 0.0099 - 13 0.0891 - 15 0.0297 - 20 0.0198 - 31 0.0099 - 41 0.0891 - 45 0.0099 - - 14 94 9 0 - 2 0.479 - 4 0.0638 - 8 0.266 - 9 0.0106 - 13 0.0319 - 15 0.0106 - 20 0.0319 - 31 0.0213 - 41 0.0851 - - 30 4 1 0 - 2 1 - - 47 392 17 0 - 2 0.0893 - 3 0.023 - 4 0.0791 - 8 0.339 - 9 0.00255 - 10 0.00255 - 13 0.23 - 14 0.0153 - 15 0.0536 - 18 0.0689 - 20 0.0153 - 30 0.0204 - 31 0.00765 - 34 0.00255 - 36 0.00255 - 41 0.0357 - 45 0.0128 - - 14 320 16 1 - 2 0.0781 - 3 0.0375 - 4 0.0531 - 8 0.312 - 9 0.00625 - 10 0.00625 - 13 0.306 - 14 0.00313 - 15 0.0281 - 18 0.0188 - 20 0.0281 - 21 0.00938 - 30 0.00938 - 31 0.0281 - 41 0.0719 - 45 0.00313 - - 13 6 4 0 - 2 0.333 - 13 0.167 - 20 0.167 - 41 0.333 - - 15 301 16 6 - 2 0.159 - 3 0.0133 - 4 0.0897 - 7 0.0133 - 8 0.0399 - 9 0.00332 - 13 0.00664 - 14 0.0332 - 15 0.412 - 16 0.00997 - 18 0.0365 - 20 0.0133 - 21 0.00332 - 40 0.00332 - 41 0.0399 - 45 0.123 - - 7 3 3 0 - 2 0.333 - 15 0.333 - 40 0.333 - - 13 17 9 0 - 2 0.0588 - 4 0.294 - 8 0.235 - 14 0.0588 - 15 0.118 - 18 0.0588 - 20 0.0588 - 41 0.0588 - 45 0.0588 - - 14 6 6 0 - 2 0.167 - 3 0.167 - 4 0.167 - 8 0.167 - 9 0.167 - 15 0.167 - - 15 119 11 0 - 2 0.261 - 4 0.118 - 7 0.0084 - 8 0.0336 - 14 0.0672 - 15 0.252 - 16 0.0084 - 18 0.042 - 20 0.0084 - 41 0.0672 - 45 0.134 - - 16 9 5 0 - 2 0.222 - 15 0.222 - 18 0.111 - 20 0.222 - 45 0.222 - - 47 139 13 0 - 2 0.0719 - 3 0.0216 - 4 0.0432 - 7 0.0216 - 8 0.0216 - 13 0.0144 - 14 0.00719 - 15 0.612 - 16 0.0144 - 18 0.0216 - 21 0.00719 - 41 0.0216 - 45 0.122 - - 16 14 4 0 - 2 0.143 - 4 0.143 - 15 0.643 - 41 0.0714 - - 21 5 2 0 - 2 0.8 - 41 0.2 - - 30 11 4 0 - 2 0.273 - 8 0.273 - 13 0.364 - 20 0.0909 - - 31 9 3 0 - 2 0.556 - 4 0.222 - 21 0.222 - - 45 9 6 0 - 2 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 18 0.333 - 20 0.111 - - 47 1311 20 13 - 2 0.304 - 3 0.0297 - 4 0.188 - 7 0.00153 - 8 0.12 - 9 0.00763 - 10 0.00458 - 13 0.00763 - 14 0.0168 - 15 0.0259 - 16 0.00458 - 18 0.0931 - 20 0.0549 - 21 0.00458 - 30 0.00305 - 31 0.00534 - 34 0.00153 - 36 0.00153 - 41 0.0686 - 45 0.0572 - - 4 9 3 0 - 2 0.111 - 41 0.111 - 45 0.778 - - 6 6 1 0 - 45 1 - - 8 224 12 0 - 2 0.571 - 3 0.0268 - 4 0.116 - 7 0.00446 - 8 0.0402 - 9 0.00893 - 15 0.00446 - 18 0.0804 - 20 0.0446 - 30 0.00446 - 41 0.0714 - 45 0.0268 - - 13 298 15 0 - 2 0.396 - 3 0.00671 - 4 0.154 - 8 0.134 - 9 0.00671 - 10 0.00336 - 13 0.00336 - 15 0.0302 - 18 0.0906 - 20 0.0369 - 31 0.00671 - 34 0.00336 - 36 0.00336 - 41 0.104 - 45 0.0201 - - 14 117 13 0 - 2 0.197 - 3 0.0855 - 4 0.12 - 8 0.197 - 9 0.00855 - 10 0.0171 - 13 0.0342 - 15 0.0256 - 18 0.0342 - 20 0.0598 - 30 0.00855 - 31 0.0171 - 41 0.197 - - 15 154 13 0 - 2 0.292 - 4 0.162 - 7 0.00649 - 8 0.039 - 13 0.00649 - 14 0.0649 - 15 0.026 - 16 0.013 - 18 0.0455 - 20 0.026 - 21 0.00649 - 41 0.0779 - 45 0.234 - - 21 5 2 0 - 2 0.8 - 41 0.2 - - 31 9 3 0 - 2 0.556 - 4 0.222 - 21 0.222 - - 45 9 6 0 - 2 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 18 0.333 - 20 0.111 - - 48 10 4 0 - 2 0.6 - 4 0.2 - 18 0.1 - 20 0.1 - - 55 17 5 0 - 2 0.412 - 3 0.0588 - 4 0.0588 - 18 0.0588 - 45 0.412 - - 56 414 19 0 - 2 0.101 - 3 0.0459 - 4 0.297 - 8 0.181 - 9 0.0121 - 10 0.00725 - 13 0.00483 - 14 0.0266 - 15 0.0411 - 16 0.00966 - 18 0.14 - 20 0.087 - 21 0.00725 - 30 0.00483 - 31 0.00725 - 34 0.00242 - 36 0.00242 - 41 0.0121 - 45 0.00966 - - 62 2 1 0 - 45 1 - - 48 11 5 0 - 2 0.545 - 4 0.182 - 8 0.0909 - 18 0.0909 - 20 0.0909 - - 55 22 6 0 - 2 0.318 - 3 0.0909 - 4 0.0455 - 18 0.0455 - 42 0.0909 - 45 0.409 - - 56 419 19 0 - 2 0.1 - 3 0.0453 - 4 0.294 - 8 0.179 - 9 0.0119 - 10 0.00716 - 13 0.00477 - 14 0.0263 - 15 0.0406 - 16 0.00955 - 18 0.138 - 20 0.0859 - 21 0.00716 - 30 0.00477 - 31 0.00716 - 34 0.00239 - 36 0.00239 - 41 0.0119 - 45 0.0215 - - 62 2 1 0 - 45 1 - -57 191766 42 26 - 0 0.0127 - 1 6.26e-05 - 2 0.00876 - 3 0.0413 - 4 0.00784 - 6 9.91e-05 - 7 0.0115 - 8 0.0343 - 9 0.00545 - 10 0.00283 - 12 0.000167 - 13 0.352 - 14 0.15 - 15 0.0378 - 16 0.00175 - 18 0.000245 - 19 0.00638 - 20 5.21e-06 - 21 0.0315 - 22 0.00242 - 23 0.000209 - 24 0.00711 - 25 3.65e-05 - 26 0.000136 - 27 7.3e-05 - 28 0.0277 - 29 0.0264 - 30 0.0277 - 31 0.0819 - 32 0.00613 - 33 0.00986 - 34 0.000375 - 35 0.000261 - 37 9.39e-05 - 40 4.17e-05 - 41 0.0447 - 42 0.00376 - 43 0.00162 - 44 0.00109 - 45 0.00293 - 46 0.00618 - 47 0.0445 - - 2 77 17 3 - 0 0.013 - 3 0.0519 - 4 0.0519 - 8 0.013 - 9 0.013 - 13 0.338 - 14 0.0779 - 15 0.026 - 18 0.013 - 19 0.013 - 21 0.0519 - 24 0.026 - 28 0.026 - 31 0.013 - 41 0.221 - 42 0.026 - 46 0.026 - - 7 4 3 0 - 24 0.25 - 31 0.25 - 41 0.5 - - 47 57 10 0 - 3 0.0702 - 4 0.0702 - 8 0.0175 - 13 0.439 - 14 0.0702 - 15 0.0351 - 18 0.0175 - 21 0.0702 - 41 0.193 - 42 0.0175 - - 57 14 10 0 - 0 0.0714 - 9 0.0714 - 13 0.0714 - 14 0.143 - 19 0.0714 - 24 0.0714 - 28 0.0714 - 41 0.286 - 42 0.0714 - 46 0.0714 - - 4 29 13 2 - 0 0.103 - 7 0.069 - 8 0.103 - 13 0.0345 - 14 0.103 - 24 0.069 - 28 0.0345 - 29 0.0345 - 32 0.069 - 33 0.103 - 41 0.207 - 46 0.0345 - 47 0.0345 - - 7 18 9 0 - 0 0.111 - 7 0.111 - 14 0.0556 - 24 0.111 - 29 0.0556 - 32 0.0556 - 33 0.167 - 41 0.278 - 47 0.0556 - - 57 11 8 0 - 0 0.0909 - 8 0.273 - 13 0.0909 - 14 0.182 - 28 0.0909 - 32 0.0909 - 41 0.0909 - 46 0.0909 - - 6 16 6 1 - 3 0.0625 - 6 0.188 - 13 0.188 - 15 0.188 - 41 0.188 - 44 0.188 - - 6 3 1 0 - 44 1 - - 7 83565 41 0 - 0 0.0129 - 1 7.18e-05 - 2 0.00859 - 3 0.0374 - 4 0.00881 - 6 7.18e-05 - 7 0.0117 - 8 0.0334 - 9 0.00596 - 10 0.00335 - 12 0.000168 - 13 0.369 - 14 0.156 - 15 0.0407 - 16 0.00188 - 18 0.000239 - 19 0.006 - 21 0.0348 - 22 0.00268 - 23 0.000215 - 24 0.00704 - 25 2.39e-05 - 26 0.000132 - 27 1.2e-05 - 28 0.0257 - 29 0.0221 - 30 0.0204 - 31 0.0807 - 32 0.00594 - 33 0.00902 - 34 0.000419 - 35 0.000299 - 37 8.38e-05 - 40 3.59e-05 - 41 0.0318 - 42 0.00281 - 43 0.0017 - 44 0.00107 - 45 0.00294 - 46 0.0061 - 47 0.0473 - - 8 392 18 5 - 0 0.0281 - 2 0.00255 - 3 0.00255 - 8 0.0051 - 13 0.0765 - 14 0.436 - 20 0.00255 - 21 0.0179 - 24 0.00255 - 29 0.00255 - 30 0.00255 - 31 0.00255 - 41 0.342 - 42 0.0281 - 44 0.0051 - 45 0.0051 - 46 0.0332 - 47 0.0051 - - 7 342 7 0 - 8 0.00292 - 13 0.0614 - 14 0.488 - 41 0.377 - 42 0.0322 - 44 0.00585 - 46 0.0322 - - 14 1 1 0 - 20 1 - - 26 12 8 0 - 3 0.0833 - 13 0.167 - 14 0.0833 - 21 0.0833 - 31 0.0833 - 41 0.25 - 45 0.167 - 47 0.0833 - - 47 25 9 0 - 0 0.44 - 2 0.04 - 8 0.04 - 13 0.12 - 14 0.12 - 21 0.12 - 24 0.04 - 29 0.04 - 30 0.04 - - 57 10 5 0 - 13 0.3 - 21 0.3 - 41 0.2 - 46 0.1 - 47 0.1 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 8 5 0 - 3 0.125 - 8 0.125 - 13 0.5 - 28 0.125 - 41 0.125 - - 15 11 5 0 - 15 0.455 - 16 0.0909 - 42 0.0909 - 45 0.273 - 47 0.0909 - - 21 467 30 5 - 0 0.0428 - 2 0.0428 - 3 0.00214 - 4 0.00214 - 7 0.0171 - 8 0.03 - 10 0.00214 - 13 0.107 - 14 0.122 - 15 0.0107 - 18 0.00428 - 19 0.0214 - 21 0.0685 - 22 0.00214 - 24 0.00214 - 28 0.0364 - 29 0.0321 - 30 0.0193 - 31 0.0664 - 32 0.00642 - 33 0.0236 - 34 0.00214 - 37 0.00214 - 41 0.165 - 42 0.0257 - 43 0.00428 - 44 0.00857 - 45 0.0193 - 46 0.00642 - 47 0.105 - - 7 289 25 0 - 0 0.0346 - 2 0.0554 - 3 0.00346 - 7 0.0138 - 8 0.0381 - 10 0.00346 - 13 0.111 - 14 0.135 - 15 0.0138 - 19 0.00692 - 21 0.0554 - 22 0.00346 - 28 0.0208 - 29 0.0138 - 31 0.0727 - 32 0.00692 - 33 0.00346 - 37 0.00346 - 41 0.221 - 42 0.0311 - 43 0.00692 - 44 0.00346 - 45 0.0138 - 46 0.00692 - 47 0.121 - - 21 10 7 0 - 0 0.1 - 13 0.1 - 14 0.2 - 29 0.1 - 41 0.3 - 44 0.1 - 47 0.1 - - 30 4 3 0 - 41 0.5 - 44 0.25 - 47 0.25 - - 47 90 23 0 - 0 0.0556 - 2 0.0333 - 7 0.0444 - 8 0.0111 - 13 0.133 - 14 0.1 - 15 0.0111 - 18 0.0111 - 19 0.0667 - 21 0.144 - 24 0.0111 - 28 0.0444 - 29 0.0444 - 30 0.0556 - 31 0.0667 - 32 0.0111 - 33 0.0667 - 34 0.0111 - 41 0.0111 - 42 0.0111 - 45 0.0111 - 46 0.0111 - 47 0.0333 - - 57 62 18 0 - 0 0.0645 - 4 0.0161 - 8 0.0323 - 13 0.0484 - 14 0.0968 - 18 0.0161 - 19 0.0323 - 21 0.0323 - 28 0.0968 - 29 0.0968 - 30 0.0645 - 31 0.0645 - 33 0.0645 - 41 0.0645 - 42 0.0323 - 44 0.0161 - 45 0.0323 - 47 0.129 - - 22 7 7 0 - 0 0.143 - 21 0.143 - 22 0.143 - 30 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 24 55 11 0 - 0 0.0182 - 13 0.0909 - 14 0.0545 - 19 0.0545 - 28 0.2 - 29 0.109 - 30 0.145 - 31 0.236 - 32 0.0182 - 33 0.0545 - 41 0.0182 - - 26 8661 35 0 - 0 0.00185 - 2 0.00496 - 3 0.0928 - 4 0.00127 - 6 0.000231 - 7 0.00947 - 8 0.068 - 9 0.00266 - 10 0.000115 - 13 0.286 - 14 0.103 - 15 0.02 - 16 0.000924 - 19 0.00935 - 21 0.0461 - 22 0.00173 - 23 0.000231 - 24 0.00877 - 26 0.000115 - 27 0.000693 - 28 0.0462 - 29 0.0701 - 30 0.076 - 31 0.0876 - 32 0.00774 - 33 0.0162 - 35 0.000115 - 40 0.000115 - 41 0.0264 - 42 0.00196 - 43 0.00127 - 44 0.000231 - 45 0.000462 - 46 0.00531 - 47 0.00231 - - 28 3 3 0 - 2 0.333 - 14 0.333 - 41 0.333 - - 29 2 1 0 - 41 1 - - 30 1062 21 2 - 2 0.00847 - 3 0.00659 - 7 0.00282 - 8 0.00282 - 13 0.0574 - 14 0.0433 - 15 0.0122 - 16 0.00188 - 19 0.00282 - 21 0.0104 - 22 0.000942 - 28 0.000942 - 29 0.00188 - 30 0.000942 - 31 0.0132 - 41 0.65 - 42 0.0377 - 44 0.00188 - 45 0.00282 - 46 0.0113 - 47 0.13 - - 47 613 20 0 - 2 0.00326 - 3 0.00979 - 7 0.00326 - 8 0.00489 - 13 0.0897 - 14 0.0669 - 15 0.0212 - 16 0.00326 - 19 0.00326 - 21 0.0179 - 22 0.00163 - 28 0.00163 - 29 0.00326 - 31 0.0179 - 41 0.622 - 42 0.0636 - 44 0.00326 - 45 0.00163 - 46 0.00653 - 47 0.0555 - - 57 448 12 0 - 2 0.0156 - 3 0.00223 - 7 0.00223 - 13 0.0134 - 14 0.0112 - 19 0.00223 - 30 0.00223 - 31 0.0067 - 41 0.69 - 45 0.00446 - 46 0.0179 - 47 0.232 - - 31 361 21 3 - 2 0.0166 - 3 0.036 - 4 0.00554 - 7 0.0166 - 8 0.036 - 9 0.00277 - 13 0.108 - 14 0.0526 - 15 0.00277 - 21 0.0139 - 28 0.00277 - 30 0.00277 - 31 0.0139 - 32 0.00277 - 41 0.593 - 42 0.00554 - 43 0.00277 - 44 0.00277 - 45 0.0111 - 46 0.00277 - 47 0.0693 - - 7 2 1 0 - 14 1 - - 47 57 12 0 - 2 0.105 - 4 0.0175 - 7 0.0351 - 8 0.0702 - 13 0.0351 - 21 0.0351 - 28 0.0175 - 41 0.404 - 42 0.0175 - 44 0.0175 - 45 0.0526 - 47 0.193 - - 57 302 18 0 - 3 0.043 - 4 0.00331 - 7 0.0132 - 8 0.0298 - 9 0.00331 - 13 0.123 - 14 0.0563 - 15 0.00331 - 21 0.00993 - 30 0.00331 - 31 0.0166 - 32 0.00331 - 41 0.632 - 42 0.00331 - 43 0.00331 - 45 0.00331 - 46 0.00331 - 47 0.0464 - - 41 8 6 0 - 2 0.125 - 13 0.125 - 14 0.125 - 15 0.125 - 18 0.25 - 21 0.25 - - 42 3 1 0 - 25 1 - - 45 10 7 0 - 0 0.2 - 3 0.1 - 13 0.2 - 14 0.1 - 19 0.1 - 21 0.2 - 47 0.1 - - 46 2 1 0 - 21 1 - - 47 94690 41 22 - 0 0.0128 - 1 6.34e-05 - 2 0.00877 - 3 0.0418 - 4 0.00773 - 6 8.45e-05 - 7 0.0116 - 8 0.0327 - 9 0.00546 - 10 0.00276 - 12 0.000169 - 13 0.357 - 14 0.151 - 15 0.0383 - 16 0.00177 - 18 0.000232 - 19 0.00646 - 21 0.0268 - 22 0.00233 - 23 0.000211 - 24 0.0072 - 25 2.11e-05 - 26 0.000137 - 27 7.39e-05 - 28 0.0281 - 29 0.0267 - 30 0.0257 - 31 0.0814 - 32 0.00621 - 33 0.00998 - 34 0.00038 - 35 0.000253 - 37 9.5e-05 - 40 4.22e-05 - 41 0.0452 - 42 0.00379 - 43 0.00163 - 44 0.0011 - 45 0.00291 - 46 0.00625 - 47 0.045 - - 2 75 16 0 - 0 0.0133 - 3 0.0533 - 4 0.0533 - 8 0.0133 - 9 0.0133 - 13 0.347 - 14 0.08 - 15 0.0267 - 19 0.0133 - 21 0.0533 - 24 0.0267 - 28 0.0133 - 31 0.0133 - 41 0.227 - 42 0.0267 - 46 0.0267 - - 4 29 13 0 - 0 0.103 - 7 0.069 - 8 0.103 - 13 0.0345 - 14 0.103 - 24 0.069 - 28 0.0345 - 29 0.0345 - 32 0.069 - 33 0.103 - 41 0.207 - 46 0.0345 - 47 0.0345 - - 6 13 5 0 - 3 0.0769 - 13 0.231 - 15 0.231 - 41 0.231 - 44 0.231 - - 7 82196 41 0 - 0 0.0132 - 1 7.3e-05 - 2 0.00869 - 3 0.0379 - 4 0.00861 - 6 7.3e-05 - 7 0.0119 - 8 0.0297 - 9 0.00592 - 10 0.00316 - 12 0.00017 - 13 0.375 - 14 0.158 - 15 0.0413 - 16 0.00191 - 18 0.000243 - 19 0.0061 - 21 0.0258 - 22 0.00248 - 23 0.000219 - 24 0.00715 - 25 2.43e-05 - 26 0.000134 - 27 1.22e-05 - 28 0.0261 - 29 0.0225 - 30 0.0207 - 31 0.082 - 32 0.00603 - 33 0.00917 - 34 0.000426 - 35 0.00028 - 37 8.52e-05 - 40 3.65e-05 - 41 0.0323 - 42 0.00286 - 43 0.0017 - 44 0.00107 - 45 0.00293 - 46 0.00618 - 47 0.0481 - - 8 387 17 0 - 0 0.0284 - 2 0.00258 - 3 0.00258 - 8 0.00258 - 13 0.0775 - 14 0.442 - 21 0.0103 - 24 0.00258 - 29 0.00258 - 30 0.00258 - 31 0.00258 - 41 0.346 - 42 0.0284 - 44 0.00517 - 45 0.00517 - 46 0.0336 - 47 0.00517 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 7 5 0 - 3 0.143 - 8 0.143 - 13 0.429 - 28 0.143 - 41 0.143 - - 15 11 5 0 - 15 0.455 - 16 0.0909 - 42 0.0909 - 45 0.273 - 47 0.0909 - - 21 439 28 0 - 0 0.0456 - 2 0.0456 - 3 0.00228 - 4 0.00228 - 7 0.0182 - 8 0.0296 - 13 0.114 - 14 0.125 - 15 0.0114 - 18 0.00456 - 19 0.0228 - 21 0.0296 - 24 0.00228 - 28 0.0387 - 29 0.0342 - 30 0.0205 - 31 0.0706 - 32 0.00683 - 33 0.0251 - 34 0.00228 - 37 0.00228 - 41 0.173 - 42 0.0273 - 43 0.00456 - 44 0.00911 - 45 0.0137 - 46 0.00683 - 47 0.112 - - 22 7 7 0 - 0 0.143 - 21 0.143 - 22 0.143 - 30 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 24 55 11 0 - 0 0.0182 - 13 0.0909 - 14 0.0545 - 19 0.0545 - 28 0.2 - 29 0.109 - 30 0.145 - 31 0.236 - 32 0.0182 - 33 0.0545 - 41 0.0182 - - 26 8601 35 0 - 0 0.00186 - 2 0.00488 - 3 0.0935 - 4 0.00128 - 6 0.000233 - 7 0.00953 - 8 0.0671 - 9 0.00267 - 10 0.000116 - 13 0.288 - 14 0.103 - 15 0.0201 - 16 0.00093 - 19 0.00942 - 21 0.0414 - 22 0.00163 - 23 0.000233 - 24 0.00884 - 26 0.000116 - 27 0.000698 - 28 0.0465 - 29 0.0706 - 30 0.0765 - 31 0.0882 - 32 0.00779 - 33 0.0163 - 35 0.000116 - 40 0.000116 - 41 0.0265 - 42 0.00198 - 43 0.00128 - 44 0.000233 - 45 0.000465 - 46 0.00535 - 47 0.00233 - - 29 2 1 0 - 41 1 - - 30 1055 21 0 - 2 0.00853 - 3 0.00664 - 7 0.00284 - 8 0.00284 - 13 0.0578 - 14 0.0436 - 15 0.0123 - 16 0.0019 - 19 0.00284 - 21 0.00379 - 22 0.000948 - 28 0.000948 - 29 0.0019 - 30 0.000948 - 31 0.0133 - 41 0.654 - 42 0.0379 - 44 0.0019 - 45 0.00284 - 46 0.0114 - 47 0.131 - - 31 358 21 0 - 2 0.0168 - 3 0.0363 - 4 0.00559 - 7 0.0168 - 8 0.0363 - 9 0.00279 - 13 0.109 - 14 0.0531 - 15 0.00279 - 21 0.00559 - 28 0.00279 - 30 0.00279 - 31 0.014 - 32 0.00279 - 41 0.598 - 42 0.00559 - 43 0.00279 - 44 0.00279 - 45 0.0112 - 46 0.00279 - 47 0.0698 - - 41 2 2 0 - 2 0.5 - 15 0.5 - - 45 9 7 0 - 0 0.222 - 3 0.111 - 13 0.222 - 14 0.111 - 19 0.111 - 21 0.111 - 47 0.111 - - 49 623 28 0 - 0 0.0674 - 2 0.0369 - 3 0.00321 - 4 0.00642 - 7 0.00482 - 8 0.0161 - 9 0.00161 - 12 0.00161 - 13 0.114 - 14 0.0867 - 15 0.0112 - 19 0.00963 - 21 0.0321 - 22 0.00161 - 24 0.00963 - 28 0.0161 - 29 0.0289 - 30 0.0144 - 31 0.0754 - 32 0.00482 - 33 0.0144 - 37 0.00161 - 41 0.319 - 42 0.0385 - 44 0.00321 - 45 0.0161 - 46 0.00482 - 47 0.0594 - - 50 17 10 0 - 8 0.176 - 13 0.118 - 14 0.0588 - 24 0.0588 - 28 0.0588 - 30 0.0588 - 31 0.118 - 33 0.0588 - 41 0.235 - 45 0.0588 - - 55 135 19 0 - 0 0.141 - 2 0.0593 - 7 0.133 - 8 0.0148 - 13 0.0815 - 14 0.0519 - 15 0.00741 - 21 0.037 - 24 0.00741 - 26 0.00741 - 28 0.0444 - 29 0.0444 - 31 0.0741 - 32 0.00741 - 33 0.0296 - 41 0.156 - 42 0.037 - 46 0.00741 - 47 0.0593 - - 57 656 25 0 - 0 0.0244 - 2 0.00915 - 3 0.00457 - 4 0.00305 - 7 0.00457 - 8 0.0457 - 9 0.0061 - 12 0.00152 - 13 0.245 - 14 0.148 - 15 0.0259 - 19 0.00915 - 21 0.0152 - 24 0.0061 - 28 0.0884 - 29 0.0381 - 30 0.061 - 31 0.123 - 32 0.0213 - 33 0.0274 - 41 0.0396 - 42 0.0152 - 45 0.00305 - 46 0.00305 - 47 0.0305 - - 74 5 2 0 - 41 0.2 - 47 0.8 - - 49 628 28 4 - 0 0.0669 - 2 0.0366 - 3 0.00318 - 4 0.00637 - 7 0.00478 - 8 0.0175 - 9 0.00159 - 12 0.00159 - 13 0.113 - 14 0.086 - 15 0.0111 - 19 0.00955 - 21 0.035 - 22 0.00159 - 24 0.00955 - 28 0.0159 - 29 0.0287 - 30 0.0143 - 31 0.0748 - 32 0.00478 - 33 0.0143 - 37 0.00159 - 41 0.318 - 42 0.0382 - 44 0.00318 - 45 0.0175 - 46 0.00478 - 47 0.0589 - - 21 11 6 0 - 0 0.273 - 2 0.0909 - 13 0.0909 - 14 0.182 - 21 0.0909 - 41 0.273 - - 26 36 15 0 - 0 0.0278 - 2 0.0833 - 8 0.0833 - 13 0.306 - 14 0.0833 - 15 0.0278 - 19 0.0278 - 21 0.0556 - 28 0.0278 - 29 0.0556 - 30 0.0278 - 31 0.0833 - 33 0.0278 - 41 0.0556 - 44 0.0278 - - 48 1 1 0 - 7 1 - - 57 6 3 0 - 21 0.333 - 33 0.167 - 42 0.5 - - 50 17 10 0 - 8 0.176 - 13 0.118 - 14 0.0588 - 24 0.0588 - 28 0.0588 - 30 0.0588 - 31 0.118 - 33 0.0588 - 41 0.235 - 45 0.0588 - - 55 142 21 4 - 0 0.134 - 2 0.0563 - 3 0.00704 - 7 0.141 - 8 0.0141 - 13 0.0775 - 14 0.0493 - 15 0.00704 - 21 0.0423 - 24 0.00704 - 26 0.00704 - 28 0.0423 - 29 0.0423 - 30 0.00704 - 31 0.0704 - 32 0.00704 - 33 0.0282 - 41 0.162 - 42 0.0352 - 46 0.00704 - 47 0.0563 - - 41 2 2 0 - 30 0.5 - 41 0.5 - - 47 5 3 0 - 2 0.2 - 3 0.2 - 7 0.6 - - 55 3 2 0 - 8 0.333 - 41 0.667 - - 57 5 4 0 - 2 0.2 - 13 0.2 - 26 0.2 - 41 0.4 - - 57 1537 25 1 - 0 0.0104 - 2 0.013 - 3 0.00195 - 4 0.00846 - 7 0.00195 - 8 0.028 - 9 0.0026 - 12 0.000651 - 13 0.108 - 14 0.0638 - 15 0.0111 - 19 0.0039 - 21 0.0592 - 24 0.0026 - 28 0.0377 - 29 0.0163 - 30 0.318 - 31 0.249 - 32 0.00911 - 33 0.0117 - 41 0.0176 - 42 0.00846 - 45 0.00195 - 46 0.0013 - 47 0.013 - - 7 8 4 0 - 0 0.125 - 4 0.125 - 31 0.125 - 41 0.625 - - 74 5 2 0 - 41 0.2 - 47 0.8 - -58 7648 40 29 - 0 0.00628 - 2 0.0209 - 3 0.0234 - 4 0.0068 - 6 0.00157 - 7 0.0111 - 8 0.028 - 9 0.00144 - 10 0.00105 - 11 0.000262 - 12 0.00144 - 13 0.168 - 14 0.125 - 15 0.117 - 16 0.00405 - 18 0.00131 - 19 0.00902 - 20 0.000785 - 21 0.0369 - 22 0.00105 - 23 0.000262 - 24 0.00105 - 26 0.000785 - 28 0.00732 - 29 0.0034 - 30 0.00288 - 31 0.011 - 32 0.00366 - 33 0.00484 - 34 0.00209 - 35 0.000523 - 37 0.00235 - 40 0.0123 - 41 0.151 - 42 0.0554 - 43 0.000523 - 44 0.132 - 45 0.00392 - 46 0.036 - 47 0.00314 - - 0 2 1 0 - 2 1 - - 2 101 4 0 - 15 0.0099 - 41 0.327 - 42 0.406 - 44 0.257 - - 4 1 1 0 - 28 1 - - 7 6 3 0 - 41 0.333 - 42 0.167 - 44 0.5 - - 8 16 2 0 - 2 0.125 - 44 0.875 - - 13 22 5 0 - 2 0.0909 - 8 0.136 - 13 0.182 - 15 0.0455 - 44 0.545 - - 15 36 5 0 - 2 0.0556 - 15 0.139 - 41 0.0278 - 44 0.75 - 45 0.0278 - - 21 14 6 0 - 2 0.214 - 7 0.143 - 12 0.0714 - 41 0.143 - 42 0.286 - 44 0.143 - - 28 3 2 0 - 2 0.333 - 44 0.667 - - 32 2 1 0 - 2 1 - - 41 1008 32 9 - 0 0.0129 - 2 0.0595 - 3 0.0188 - 4 0.0109 - 6 0.00198 - 7 0.0218 - 8 0.0506 - 9 0.00298 - 10 0.000992 - 11 0.000992 - 12 0.00198 - 13 0.309 - 14 0.143 - 15 0.143 - 16 0.00397 - 18 0.00198 - 19 0.0139 - 21 0.101 - 22 0.00397 - 23 0.000992 - 24 0.00397 - 26 0.00198 - 28 0.0109 - 29 0.00893 - 30 0.00496 - 31 0.0268 - 32 0.00794 - 33 0.0129 - 34 0.00694 - 35 0.00198 - 37 0.00794 - 43 0.000992 - - 2 23 12 0 - 0 0.0435 - 3 0.0435 - 4 0.0435 - 6 0.0435 - 8 0.087 - 13 0.261 - 14 0.087 - 15 0.087 - 21 0.087 - 31 0.087 - 32 0.0435 - 33 0.087 - - 46 99 15 0 - 0 0.0202 - 4 0.0202 - 7 0.0202 - 8 0.121 - 13 0.424 - 14 0.152 - 15 0.0606 - 16 0.0101 - 19 0.0303 - 21 0.0505 - 24 0.0101 - 28 0.0303 - 31 0.0202 - 32 0.0202 - 43 0.0101 - - 49 51 12 0 - 0 0.0196 - 2 0.294 - 3 0.0196 - 7 0.0588 - 8 0.0784 - 13 0.216 - 14 0.118 - 15 0.0588 - 21 0.0588 - 28 0.0196 - 29 0.0196 - 31 0.0392 - - 52 6 3 0 - 7 0.5 - 13 0.333 - 30 0.167 - - 55 139 10 0 - 0 0.0144 - 3 0.0216 - 8 0.0144 - 10 0.00719 - 13 0.122 - 14 0.129 - 15 0.619 - 21 0.0576 - 31 0.00719 - 33 0.00719 - - 57 77 19 0 - 0 0.013 - 2 0.26 - 7 0.0649 - 8 0.039 - 13 0.221 - 14 0.104 - 15 0.0779 - 16 0.039 - 21 0.026 - 22 0.013 - 26 0.013 - 28 0.013 - 29 0.013 - 30 0.013 - 31 0.013 - 33 0.026 - 34 0.013 - 35 0.013 - 37 0.026 - - 62 507 29 0 - 0 0.00789 - 2 0.0375 - 3 0.0256 - 4 0.0158 - 6 0.00197 - 7 0.00986 - 8 0.0375 - 9 0.00592 - 11 0.00197 - 12 0.00197 - 13 0.349 - 14 0.168 - 15 0.0671 - 18 0.00394 - 19 0.0158 - 21 0.142 - 22 0.00592 - 23 0.00197 - 24 0.00592 - 26 0.00197 - 28 0.00789 - 29 0.00986 - 30 0.00394 - 31 0.0355 - 32 0.00789 - 33 0.00986 - 34 0.00592 - 35 0.00197 - 37 0.00986 - - 64 50 16 0 - 0 0.02 - 2 0.08 - 7 0.04 - 8 0.12 - 12 0.02 - 13 0.32 - 14 0.06 - 15 0.04 - 19 0.02 - 21 0.06 - 28 0.04 - 29 0.02 - 32 0.02 - 33 0.06 - 34 0.06 - 37 0.02 - - 66 45 12 0 - 2 0.0444 - 3 0.0222 - 7 0.0444 - 8 0.0222 - 13 0.378 - 14 0.156 - 15 0.0889 - 19 0.0444 - 21 0.133 - 29 0.0222 - 30 0.0222 - 31 0.0222 - - 42 412 25 9 - 0 0.00971 - 2 0.0146 - 3 0.034 - 4 0.00485 - 7 0.0121 - 8 0.0558 - 9 0.00243 - 10 0.00243 - 12 0.00243 - 13 0.354 - 14 0.26 - 15 0.102 - 16 0.00971 - 18 0.00243 - 19 0.00485 - 21 0.034 - 26 0.00243 - 28 0.017 - 29 0.00485 - 30 0.00485 - 31 0.0243 - 32 0.00971 - 33 0.00728 - 43 0.00243 - 46 0.0218 - - 2 40 13 0 - 3 0.05 - 4 0.025 - 8 0.125 - 13 0.325 - 14 0.025 - 15 0.075 - 21 0.1 - 28 0.025 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.075 - 46 0.025 - - 48 11 7 0 - 2 0.0909 - 3 0.0909 - 7 0.0909 - 8 0.0909 - 13 0.182 - 14 0.364 - 15 0.0909 - - 49 27 10 0 - 0 0.037 - 3 0.037 - 8 0.0741 - 12 0.037 - 13 0.481 - 14 0.148 - 15 0.0741 - 18 0.037 - 21 0.037 - 31 0.037 - - 51 3 3 0 - 13 0.333 - 15 0.333 - 26 0.333 - - 55 119 16 0 - 0 0.0168 - 2 0.0084 - 3 0.042 - 7 0.0084 - 8 0.0168 - 9 0.0084 - 13 0.345 - 14 0.319 - 15 0.118 - 16 0.0168 - 19 0.0084 - 21 0.0336 - 28 0.0168 - 31 0.0084 - 43 0.0084 - 46 0.0252 - - 57 81 15 0 - 0 0.0123 - 2 0.037 - 3 0.0617 - 4 0.0123 - 7 0.0247 - 8 0.0247 - 10 0.0123 - 13 0.309 - 14 0.321 - 15 0.037 - 21 0.0494 - 28 0.0123 - 31 0.037 - 33 0.0123 - 46 0.037 - - 62 65 12 0 - 2 0.0154 - 7 0.0154 - 8 0.138 - 13 0.385 - 14 0.277 - 15 0.0308 - 19 0.0154 - 21 0.0154 - 28 0.0154 - 31 0.0462 - 33 0.0308 - 46 0.0154 - - 64 38 8 0 - 8 0.0263 - 13 0.368 - 14 0.158 - 15 0.316 - 16 0.0526 - 28 0.0263 - 32 0.0263 - 46 0.0263 - - 69 15 3 0 - 13 0.467 - 14 0.333 - 15 0.2 - - 44 1007 29 18 - 0 0.00794 - 2 0.000993 - 3 0.0566 - 4 0.0119 - 6 0.00397 - 7 0.0129 - 8 0.0298 - 9 0.000993 - 10 0.000993 - 12 0.00199 - 13 0.183 - 14 0.229 - 15 0.291 - 16 0.00695 - 18 0.00199 - 19 0.0139 - 20 0.00298 - 21 0.00894 - 28 0.00894 - 29 0.00199 - 30 0.00397 - 31 0.00497 - 32 0.00199 - 33 0.00199 - 37 0.000993 - 40 0.0467 - 41 0.00993 - 46 0.0437 - 47 0.00894 - - 2 26 9 0 - 0 0.0769 - 6 0.0385 - 13 0.423 - 14 0.192 - 15 0.0769 - 16 0.0385 - 28 0.0385 - 30 0.0769 - 31 0.0385 - - 8 14 7 0 - 4 0.214 - 7 0.214 - 8 0.214 - 9 0.0714 - 13 0.143 - 15 0.0714 - 40 0.0714 - - 9 1 1 0 - 20 1 - - 13 12 7 0 - 3 0.167 - 4 0.333 - 7 0.167 - 10 0.0833 - 13 0.0833 - 15 0.0833 - 31 0.0833 - - 14 2 2 0 - 8 0.5 - 41 0.5 - - 15 27 6 0 - 4 0.111 - 15 0.667 - 16 0.037 - 19 0.0741 - 28 0.037 - 40 0.0741 - - 21 2 2 0 - 0 0.5 - 14 0.5 - - 28 2 1 0 - 28 1 - - 45 24 5 0 - 13 0.375 - 14 0.0417 - 15 0.458 - 18 0.0417 - 46 0.0833 - - 48 24 10 0 - 0 0.0417 - 2 0.0417 - 3 0.25 - 4 0.0417 - 8 0.125 - 13 0.333 - 14 0.0417 - 15 0.0417 - 16 0.0417 - 40 0.0417 - - 49 12 7 0 - 0 0.0833 - 8 0.25 - 12 0.167 - 13 0.25 - 15 0.0833 - 33 0.0833 - 47 0.0833 - - 51 3 3 0 - 8 0.333 - 15 0.333 - 47 0.333 - - 52 5 2 0 - 13 0.8 - 21 0.2 - - 55 676 20 0 - 3 0.0621 - 4 0.00148 - 6 0.00444 - 7 0.00888 - 8 0.00888 - 13 0.129 - 14 0.266 - 15 0.354 - 16 0.00592 - 18 0.00148 - 19 0.0163 - 20 0.00296 - 21 0.00296 - 28 0.00296 - 29 0.00148 - 31 0.00148 - 40 0.0636 - 41 0.00888 - 46 0.0562 - 47 0.00148 - - 57 52 14 0 - 0 0.0192 - 3 0.0192 - 8 0.0962 - 13 0.385 - 14 0.25 - 15 0.0385 - 19 0.0192 - 21 0.0385 - 28 0.0192 - 29 0.0192 - 30 0.0192 - 31 0.0385 - 41 0.0192 - 46 0.0192 - - 62 63 14 0 - 0 0.0317 - 3 0.0476 - 7 0.0159 - 8 0.0794 - 13 0.302 - 14 0.159 - 15 0.111 - 21 0.0635 - 28 0.0159 - 32 0.0317 - 33 0.0159 - 37 0.0159 - 46 0.0159 - 47 0.0952 - - 64 23 7 0 - 3 0.087 - 8 0.0435 - 13 0.565 - 14 0.174 - 28 0.0435 - 41 0.0435 - 46 0.0435 - - 69 25 5 0 - 3 0.04 - 13 0.16 - 14 0.56 - 15 0.2 - 30 0.04 - - 45 30 4 0 - 41 0.0667 - 42 0.1 - 44 0.8 - 46 0.0333 - - 46 105 4 1 - 13 0.00952 - 33 0.00952 - 41 0.962 - 46 0.019 - - 42 1 1 0 - 13 1 - - 47 2420 38 11 - 0 0.00909 - 2 0.0298 - 3 0.0364 - 4 0.0107 - 6 0.00248 - 7 0.0165 - 8 0.0434 - 9 0.00207 - 10 0.00124 - 11 0.000413 - 12 0.00207 - 13 0.26 - 14 0.194 - 15 0.163 - 16 0.0062 - 18 0.00207 - 19 0.012 - 20 0.00124 - 21 0.0496 - 22 0.00165 - 23 0.000413 - 24 0.00165 - 26 0.00124 - 28 0.0116 - 29 0.00537 - 30 0.00455 - 31 0.0174 - 32 0.00579 - 33 0.00744 - 34 0.00331 - 35 0.000826 - 37 0.00372 - 40 0.0194 - 41 0.0306 - 42 0.00248 - 43 0.000826 - 46 0.0351 - 47 0.00496 - - 2 12 3 0 - 15 0.0833 - 41 0.833 - 42 0.0833 - - 41 884 32 0 - 0 0.0113 - 2 0.0679 - 3 0.0192 - 4 0.0124 - 6 0.00226 - 7 0.0249 - 8 0.0577 - 9 0.00339 - 10 0.00113 - 11 0.00113 - 12 0.00226 - 13 0.337 - 14 0.145 - 15 0.0679 - 16 0.00339 - 18 0.00226 - 19 0.0158 - 21 0.11 - 22 0.00452 - 23 0.00113 - 24 0.00452 - 26 0.00226 - 28 0.0124 - 29 0.0102 - 30 0.00566 - 31 0.0305 - 32 0.00905 - 33 0.0147 - 34 0.00792 - 35 0.00226 - 37 0.00905 - 43 0.00113 - - 42 407 25 0 - 0 0.00983 - 2 0.0147 - 3 0.0344 - 4 0.00491 - 7 0.0123 - 8 0.0565 - 9 0.00246 - 10 0.00246 - 12 0.00246 - 13 0.359 - 14 0.263 - 15 0.0958 - 16 0.00983 - 18 0.00246 - 19 0.00246 - 21 0.0344 - 26 0.00246 - 28 0.0172 - 29 0.00491 - 30 0.00491 - 31 0.0246 - 32 0.00983 - 33 0.00737 - 43 0.00246 - 46 0.0197 - - 44 1007 29 0 - 0 0.00794 - 2 0.000993 - 3 0.0566 - 4 0.0119 - 6 0.00397 - 7 0.0129 - 8 0.0298 - 9 0.000993 - 10 0.000993 - 12 0.00199 - 13 0.183 - 14 0.229 - 15 0.291 - 16 0.00695 - 18 0.00199 - 19 0.0139 - 20 0.00298 - 21 0.00894 - 28 0.00894 - 29 0.00199 - 30 0.00397 - 31 0.00497 - 32 0.00199 - 33 0.00199 - 37 0.000993 - 40 0.0467 - 41 0.00993 - 46 0.0437 - 47 0.00894 - - 49 6 3 0 - 41 0.667 - 42 0.167 - 46 0.167 - - 51 1 1 0 - 42 1 - - 55 5 3 0 - 41 0.4 - 46 0.4 - 47 0.2 - - 57 9 5 0 - 2 0.333 - 14 0.111 - 15 0.111 - 41 0.333 - 42 0.111 - - 62 70 9 0 - 4 0.0143 - 8 0.0143 - 14 0.0286 - 16 0.0143 - 34 0.0143 - 41 0.557 - 42 0.0286 - 46 0.3 - 47 0.0286 - - 64 3 2 0 - 2 0.667 - 46 0.333 - - 66 12 2 0 - 41 0.333 - 46 0.667 - - 48 48 7 0 - 0 0.0208 - 13 0.0417 - 21 0.146 - 41 0.0208 - 42 0.229 - 44 0.5 - 45 0.0417 - - 49 102 7 3 - 7 0.0098 - 14 0.0098 - 21 0.0392 - 41 0.539 - 42 0.275 - 44 0.118 - 46 0.0098 - - 41 4 1 0 - 42 1 - - 47 57 5 0 - 14 0.0175 - 21 0.0526 - 41 0.684 - 42 0.14 - 44 0.105 - - 48 6 3 0 - 21 0.167 - 41 0.333 - 44 0.5 - - 51 8 3 0 - 41 0.125 - 42 0.5 - 44 0.375 - - 52 12 3 0 - 41 0.5 - 42 0.0833 - 44 0.417 - - 55 985 13 2 - 3 0.00102 - 7 0.00203 - 8 0.00102 - 9 0.00102 - 13 0.00102 - 19 0.00203 - 21 0.0223 - 41 0.143 - 42 0.121 - 44 0.686 - 45 0.0122 - 46 0.00609 - 47 0.00102 - - 41 101 4 0 - 41 0.109 - 42 0.0297 - 44 0.851 - 46 0.0099 - - 69 25 2 0 - 41 0.96 - 46 0.04 - - 57 225 9 1 - 2 0.0178 - 13 0.00889 - 14 0.00889 - 15 0.00444 - 41 0.356 - 42 0.364 - 44 0.231 - 45 0.00444 - 46 0.00444 - - 41 12 2 0 - 42 0.917 - 44 0.0833 - - 58 4 3 0 - 13 0.5 - 21 0.25 - 46 0.25 - - 62 781 11 2 - 4 0.00128 - 8 0.00128 - 14 0.00256 - 16 0.00128 - 34 0.00128 - 41 0.699 - 42 0.0858 - 44 0.0807 - 45 0.0128 - 46 0.111 - 47 0.00256 - - 41 5 3 0 - 41 0.2 - 42 0.4 - 45 0.4 - - 46 2 1 0 - 45 1 - - 64 117 8 0 - 2 0.0171 - 10 0.00855 - 15 0.00855 - 21 0.00855 - 41 0.427 - 42 0.325 - 44 0.197 - 46 0.00855 - - 66 86 2 0 - 41 0.57 - 46 0.43 - - 67 6 3 0 - 41 0.167 - 44 0.167 - 45 0.667 - - 68 4 3 0 - 21 0.25 - 42 0.5 - 44 0.25 - - 69 68 9 0 - 10 0.0147 - 13 0.0294 - 14 0.0441 - 15 0.176 - 19 0.118 - 21 0.0147 - 41 0.0147 - 42 0.221 - 44 0.368 - -59 5288 19 7 - 0 0.00265 - 2 0.000378 - 3 0.000378 - 4 0.00151 - 7 0.000378 - 8 0.00227 - 9 0.000378 - 13 0.0223 - 14 0.0129 - 15 0.00227 - 19 0.0318 - 21 0.000756 - 24 0.000756 - 28 0.326 - 29 0.179 - 30 0.151 - 31 0.169 - 32 0.0416 - 33 0.0552 - - 2 2 1 0 - 24 1 - - 7 65 11 0 - 8 0.0154 - 13 0.0308 - 14 0.0154 - 15 0.0154 - 19 0.0769 - 28 0.154 - 29 0.277 - 30 0.108 - 31 0.215 - 32 0.0308 - 33 0.0615 - - 8 6 4 0 - 8 0.167 - 14 0.167 - 28 0.5 - 31 0.167 - - 21 84 12 0 - 0 0.0119 - 3 0.0119 - 13 0.0833 - 14 0.0238 - 15 0.0119 - 19 0.0714 - 28 0.238 - 29 0.107 - 30 0.155 - 31 0.226 - 32 0.0238 - 33 0.0357 - - 23 1 1 0 - 0 1 - - 24 2483 18 1 - 0 0.00201 - 2 0.000805 - 4 0.00161 - 7 0.000403 - 8 0.00161 - 9 0.000403 - 13 0.0201 - 14 0.0117 - 15 0.00161 - 19 0.0294 - 21 0.000805 - 24 0.000403 - 28 0.333 - 29 0.178 - 30 0.153 - 31 0.166 - 32 0.0427 - 33 0.056 - - 2 2 1 0 - 13 1 - - 47 2642 18 4 - 0 0.00265 - 3 0.000379 - 4 0.00151 - 7 0.000379 - 8 0.00227 - 9 0.000379 - 13 0.0223 - 14 0.0129 - 15 0.00227 - 19 0.0318 - 21 0.000757 - 24 0.000379 - 28 0.326 - 29 0.179 - 30 0.151 - 31 0.169 - 32 0.0416 - 33 0.0553 - - 7 65 11 0 - 8 0.0154 - 13 0.0308 - 14 0.0154 - 15 0.0154 - 19 0.0769 - 28 0.154 - 29 0.277 - 30 0.108 - 31 0.215 - 32 0.0308 - 33 0.0615 - - 8 6 4 0 - 8 0.167 - 14 0.167 - 28 0.5 - 31 0.167 - - 21 84 12 0 - 0 0.0119 - 3 0.0119 - 13 0.0833 - 14 0.0238 - 15 0.0119 - 19 0.0714 - 28 0.238 - 29 0.107 - 30 0.155 - 31 0.226 - 32 0.0238 - 33 0.0357 - - 23 1 1 0 - 0 1 - -60 27233 41 25 - 0 0.0313 - 1 7.34e-05 - 2 0.0264 - 3 0.111 - 4 0.0584 - 7 0.296 - 8 0.0205 - 9 0.0164 - 10 0.0061 - 13 0.0187 - 14 0.00639 - 15 0.00323 - 16 0.000147 - 17 0.000257 - 18 0.00804 - 19 0.000808 - 20 0.00463 - 21 0.0559 - 22 0.00382 - 23 7.34e-05 - 24 0.0051 - 25 0.00011 - 26 0.11 - 28 0.038 - 29 0.0476 - 30 0.0154 - 31 0.0166 - 32 0.00543 - 33 0.0142 - 34 0.000441 - 36 0.000147 - 37 0.00125 - 38 0.0047 - 39 0.00683 - 41 0.0143 - 42 0.0234 - 43 0.000184 - 44 0.0134 - 45 0.00114 - 46 0.00022 - 47 0.0135 - - 2 230 9 4 - 3 0.626 - 4 0.0304 - 7 0.00435 - 8 0.00435 - 13 0.265 - 14 0.0565 - 31 0.00435 - 41 0.00435 - 43 0.00435 - - 3 94 4 0 - 3 0.543 - 4 0.0426 - 13 0.404 - 31 0.0106 - - 7 4 3 0 - 3 0.25 - 4 0.5 - 7 0.25 - - 9 51 3 0 - 3 0.627 - 13 0.176 - 14 0.196 - - 39 43 5 0 - 3 0.907 - 4 0.0233 - 14 0.0233 - 41 0.0233 - 43 0.0233 - - 3 6618 35 9 - 0 0.011 - 2 0.0193 - 3 0.317 - 4 0.0252 - 7 0.221 - 8 0.0113 - 9 0.000151 - 10 0.0192 - 13 0.0119 - 14 0.00287 - 15 0.00181 - 16 0.000151 - 18 0.00468 - 19 0.000302 - 20 0.00181 - 21 0.0979 - 22 0.000151 - 24 0.00121 - 25 0.000453 - 26 0.116 - 28 0.00861 - 29 0.0323 - 30 0.00378 - 31 0.00423 - 32 0.00212 - 33 0.00242 - 34 0.000453 - 38 0.0192 - 39 0.0264 - 41 0.0068 - 42 0.0258 - 43 0.000151 - 44 0.000453 - 45 0.000907 - 47 0.00181 - - 2 115 19 0 - 0 0.0261 - 2 0.0435 - 3 0.209 - 4 0.0609 - 7 0.243 - 8 0.0435 - 13 0.0174 - 14 0.0087 - 19 0.0087 - 21 0.0261 - 26 0.0087 - 28 0.0261 - 29 0.0174 - 31 0.0261 - 32 0.0087 - 33 0.0087 - 38 0.0087 - 39 0.191 - 45 0.0174 - - 3 2100 30 0 - 0 0.0229 - 2 0.0143 - 4 0.0305 - 7 0.277 - 8 0.0162 - 10 0.00143 - 13 0.00286 - 14 0.00667 - 15 0.00524 - 16 0.000476 - 18 0.0138 - 20 0.00571 - 21 0.0419 - 22 0.000476 - 24 0.00238 - 25 0.00143 - 26 0.224 - 28 0.0181 - 29 0.0929 - 30 0.00857 - 31 0.00905 - 32 0.000952 - 33 0.00476 - 34 0.00143 - 38 0.0576 - 39 0.0376 - 41 0.0171 - 42 0.0786 - 44 0.000476 - 47 0.00571 - - 7 33 11 0 - 0 0.0303 - 2 0.0606 - 3 0.0303 - 7 0.303 - 13 0.0303 - 21 0.303 - 31 0.0303 - 32 0.0606 - 33 0.0303 - 41 0.0909 - 42 0.0303 - - 8 4 2 0 - 3 0.5 - 4 0.5 - - 9 13 8 0 - 0 0.154 - 2 0.0769 - 10 0.0769 - 28 0.0769 - 29 0.231 - 30 0.0769 - 32 0.0769 - 41 0.231 - - 13 293 22 0 - 0 0.0205 - 2 0.0751 - 3 0.294 - 4 0.0546 - 7 0.171 - 8 0.0102 - 10 0.00341 - 13 0.0102 - 14 0.00683 - 15 0.00341 - 18 0.00341 - 21 0.041 - 26 0.232 - 28 0.0137 - 29 0.00683 - 30 0.00683 - 31 0.0102 - 32 0.0137 - 33 0.00683 - 39 0.00683 - 42 0.00341 - 45 0.00683 - - 14 71 14 0 - 0 0.0986 - 2 0.127 - 3 0.0423 - 4 0.0141 - 7 0.254 - 14 0.0141 - 21 0.127 - 26 0.169 - 28 0.0563 - 29 0.0141 - 41 0.0282 - 42 0.0282 - 44 0.0141 - 45 0.0141 - - 26 310 22 0 - 0 0.0194 - 3 0.171 - 4 0.0258 - 7 0.155 - 8 0.0194 - 9 0.00323 - 10 0.00323 - 13 0.216 - 19 0.00323 - 21 0.0419 - 24 0.00645 - 28 0.0226 - 29 0.0323 - 30 0.0129 - 31 0.00323 - 32 0.0129 - 33 0.00645 - 39 0.232 - 42 0.00323 - 43 0.00323 - 44 0.00323 - 45 0.00323 - - 47 3678 16 0 - 2 0.016 - 3 0.525 - 4 0.0188 - 7 0.198 - 8 0.00734 - 10 0.0329 - 14 0.000272 - 18 0.000272 - 21 0.139 - 24 0.000272 - 26 0.0593 - 29 0.000272 - 31 0.000272 - 38 0.00136 - 41 0.000272 - 42 0.000272 - - 4 242 23 7 - 0 0.0124 - 2 0.0248 - 3 0.00413 - 4 0.00413 - 7 0.343 - 10 0.0289 - 13 0.0207 - 14 0.00413 - 17 0.0289 - 21 0.165 - 24 0.0165 - 26 0.0331 - 28 0.0702 - 29 0.0702 - 30 0.0165 - 31 0.0248 - 32 0.00413 - 33 0.0289 - 41 0.00826 - 42 0.00826 - 44 0.00413 - 46 0.00413 - 47 0.0744 - - 2 7 5 0 - 7 0.286 - 29 0.286 - 31 0.143 - 32 0.143 - 47 0.143 - - 3 79 19 0 - 0 0.0253 - 2 0.038 - 3 0.0127 - 7 0.278 - 10 0.0253 - 13 0.0506 - 17 0.0127 - 21 0.0127 - 24 0.0127 - 26 0.0253 - 28 0.0633 - 29 0.127 - 30 0.0253 - 33 0.038 - 41 0.0253 - 42 0.0253 - 44 0.0127 - 46 0.0127 - 47 0.177 - - 8 39 9 0 - 7 0.154 - 10 0.0769 - 13 0.0256 - 14 0.0256 - 21 0.513 - 26 0.0769 - 28 0.0769 - 29 0.0256 - 30 0.0256 - - 9 7 3 0 - 7 0.429 - 26 0.429 - 28 0.143 - - 13 35 12 0 - 0 0.0286 - 2 0.0571 - 4 0.0286 - 7 0.429 - 17 0.114 - 21 0.143 - 24 0.0286 - 28 0.0286 - 29 0.0286 - 31 0.0286 - 33 0.0571 - 47 0.0286 - - 39 24 9 0 - 7 0.208 - 17 0.0417 - 21 0.0833 - 28 0.25 - 29 0.0833 - 30 0.0417 - 31 0.167 - 33 0.0833 - 47 0.0417 - - 47 41 6 0 - 7 0.634 - 10 0.0488 - 17 0.0244 - 21 0.244 - 24 0.0244 - 47 0.0244 - - 7 1759 31 14 - 0 0.0352 - 1 0.000569 - 2 0.0222 - 3 0.0188 - 4 0.00227 - 7 0.204 - 8 0.0824 - 9 0.252 - 10 0.00114 - 13 0.00569 - 14 0.0131 - 15 0.00114 - 16 0.000569 - 19 0.00114 - 21 0.0495 - 22 0.0563 - 24 0.00682 - 26 0.0324 - 28 0.0591 - 29 0.0233 - 30 0.021 - 31 0.0171 - 32 0.00625 - 33 0.0347 - 37 0.00625 - 41 0.0148 - 42 0.00455 - 44 0.00284 - 45 0.00227 - 46 0.00114 - 47 0.0222 - - 3 910 26 0 - 0 0.0297 - 2 0.0176 - 3 0.0275 - 4 0.0022 - 7 0.137 - 8 0.112 - 9 0.289 - 13 0.0011 - 14 0.0044 - 15 0.0011 - 16 0.0011 - 21 0.0593 - 22 0.0725 - 24 0.0022 - 26 0.0396 - 28 0.0418 - 29 0.0286 - 30 0.0231 - 31 0.0154 - 32 0.0044 - 33 0.0396 - 37 0.0011 - 41 0.0187 - 42 0.00549 - 45 0.0011 - 47 0.0242 - - 4 45 17 0 - 0 0.0222 - 3 0.0444 - 4 0.0222 - 7 0.0889 - 8 0.0222 - 9 0.333 - 10 0.0222 - 13 0.0222 - 14 0.0444 - 21 0.0444 - 22 0.156 - 24 0.0222 - 29 0.0222 - 31 0.0444 - 33 0.0222 - 41 0.0222 - 42 0.0444 - - 7 5 2 0 - 3 0.8 - 9 0.2 - - 8 11 4 0 - 8 0.0909 - 14 0.364 - 21 0.273 - 22 0.273 - - 10 161 20 0 - 0 0.0435 - 1 0.00621 - 2 0.0497 - 7 0.404 - 8 0.00621 - 13 0.00621 - 14 0.00621 - 21 0.00621 - 24 0.0248 - 26 0.0248 - 28 0.137 - 29 0.0248 - 30 0.0435 - 31 0.0248 - 32 0.00621 - 33 0.0186 - 37 0.0621 - 41 0.0248 - 45 0.00621 - 47 0.0745 - - 13 26 13 0 - 0 0.115 - 4 0.0385 - 9 0.346 - 13 0.0385 - 21 0.0769 - 22 0.0769 - 26 0.0385 - 30 0.0385 - 31 0.0385 - 33 0.0769 - 42 0.0385 - 45 0.0385 - 47 0.0385 - - 14 16 5 0 - 2 0.125 - 7 0.0625 - 9 0.375 - 14 0.375 - 46 0.0625 - - 17 27 10 0 - 0 0.0741 - 7 0.111 - 9 0.481 - 21 0.0741 - 22 0.0741 - 26 0.037 - 28 0.037 - 30 0.037 - 32 0.037 - 45 0.037 - - 21 16 8 0 - 0 0.125 - 3 0.0625 - 8 0.0625 - 9 0.438 - 13 0.0625 - 21 0.0625 - 22 0.0625 - 41 0.125 - - 26 53 12 0 - 7 0.472 - 13 0.0377 - 14 0.0566 - 19 0.0189 - 21 0.0189 - 24 0.0189 - 28 0.226 - 31 0.0189 - 32 0.0377 - 33 0.0377 - 41 0.0377 - 47 0.0189 - - 28 2 1 0 - 22 1 - - 38 10 8 0 - 2 0.2 - 8 0.1 - 9 0.1 - 21 0.1 - 26 0.1 - 28 0.2 - 29 0.1 - 33 0.1 - - 39 470 23 0 - 0 0.0404 - 2 0.0213 - 7 0.287 - 8 0.0809 - 9 0.27 - 10 0.00213 - 13 0.00638 - 14 0.00638 - 15 0.00213 - 19 0.00213 - 21 0.0404 - 22 0.034 - 24 0.00851 - 26 0.0298 - 28 0.0596 - 29 0.0191 - 30 0.0149 - 31 0.0149 - 32 0.00638 - 33 0.034 - 44 0.0106 - 46 0.00213 - 47 0.00638 - - 47 3 3 0 - 2 0.333 - 9 0.333 - 21 0.333 - - 8 256 17 9 - 0 0.0117 - 2 0.00391 - 3 0.0156 - 4 0.195 - 7 0.117 - 10 0.00781 - 15 0.00391 - 21 0.594 - 22 0.00391 - 26 0.00781 - 28 0.00391 - 29 0.00391 - 30 0.00781 - 31 0.00781 - 33 0.00781 - 39 0.00391 - 41 0.00391 - - 3 37 9 0 - 0 0.0541 - 4 0.459 - 7 0.297 - 26 0.027 - 28 0.027 - 29 0.027 - 30 0.027 - 31 0.0541 - 33 0.027 - - 7 140 4 0 - 0 0.00714 - 4 0.00714 - 7 0.00714 - 21 0.979 - - 13 4 3 0 - 4 0.5 - 7 0.25 - 41 0.25 - - 14 3 3 0 - 2 0.333 - 7 0.333 - 33 0.333 - - 21 1 1 0 - 30 1 - - 26 4 3 0 - 4 0.25 - 7 0.5 - 15 0.25 - - 39 8 3 0 - 4 0.625 - 7 0.25 - 21 0.125 - - 41 1 1 0 - 39 1 - - 47 56 7 0 - 3 0.0714 - 4 0.411 - 7 0.196 - 10 0.0357 - 21 0.25 - 22 0.0179 - 26 0.0179 - - 9 511 25 2 - 0 0.0509 - 2 0.133 - 3 0.0254 - 4 0.0274 - 7 0.29 - 8 0.00196 - 13 0.0157 - 14 0.00783 - 15 0.00391 - 19 0.00196 - 20 0.00196 - 21 0.047 - 24 0.00391 - 26 0.0391 - 28 0.0685 - 29 0.0705 - 30 0.0352 - 31 0.0391 - 32 0.00587 - 33 0.0235 - 37 0.00391 - 41 0.0509 - 42 0.0157 - 45 0.00196 - 47 0.0352 - - 7 443 23 0 - 0 0.0587 - 2 0.0384 - 4 0.0316 - 7 0.334 - 13 0.0158 - 14 0.00677 - 15 0.00451 - 19 0.00226 - 20 0.00226 - 21 0.0519 - 24 0.00451 - 26 0.0451 - 28 0.079 - 29 0.0813 - 30 0.0406 - 31 0.0451 - 32 0.00677 - 33 0.0271 - 37 0.00451 - 41 0.0587 - 42 0.0181 - 45 0.00226 - 47 0.0406 - - 47 67 5 0 - 2 0.761 - 3 0.194 - 8 0.0149 - 14 0.0149 - 21 0.0149 - - 10 163 2 0 - 2 0.00613 - 7 0.994 - - 13 383 11 5 - 3 0.765 - 4 0.094 - 7 0.0731 - 8 0.0104 - 10 0.00522 - 20 0.00261 - 21 0.0339 - 24 0.00261 - 26 0.00783 - 33 0.00261 - 42 0.00261 - - 2 23 1 0 - 3 1 - - 7 3 2 0 - 4 0.667 - 7 0.333 - - 26 108 3 0 - 3 0.972 - 7 0.0185 - 21 0.00926 - - 39 1 1 0 - 20 1 - - 47 248 10 0 - 3 0.665 - 4 0.137 - 7 0.101 - 8 0.0161 - 10 0.00806 - 21 0.0484 - 24 0.00403 - 26 0.0121 - 33 0.00403 - 42 0.00403 - - 14 104 11 4 - 2 0.00962 - 3 0.683 - 4 0.00962 - 7 0.173 - 8 0.0288 - 15 0.00962 - 21 0.0385 - 26 0.00962 - 28 0.0192 - 41 0.00962 - 45 0.00962 - - 3 1 1 0 - 4 1 - - 7 10 6 0 - 2 0.1 - 3 0.4 - 7 0.1 - 28 0.2 - 41 0.1 - 45 0.1 - - 47 82 4 0 - 3 0.707 - 7 0.207 - 8 0.0366 - 21 0.0488 - - 58 1 1 0 - 15 1 - - 15 2 2 0 - 3 0.5 - 15 0.5 - - 17 43 7 0 - 4 0.0233 - 7 0.628 - 10 0.0698 - 14 0.0233 - 21 0.209 - 28 0.0233 - 31 0.0233 - - 21 1368 30 13 - 0 0.0775 - 2 0.0702 - 3 0.00146 - 4 0.0139 - 7 0.284 - 8 0.00439 - 13 0.0168 - 14 0.0102 - 15 0.00512 - 18 0.00146 - 19 0.00292 - 20 0.00146 - 21 0.0694 - 23 0.000731 - 24 0.0146 - 26 0.0373 - 28 0.0877 - 29 0.0687 - 30 0.0234 - 31 0.0307 - 32 0.0183 - 33 0.0424 - 36 0.000731 - 37 0.00219 - 41 0.0387 - 42 0.0175 - 43 0.000731 - 44 0.00512 - 45 0.00219 - 47 0.0497 - - 3 628 30 0 - 0 0.0955 - 2 0.0446 - 3 0.00318 - 4 0.00796 - 7 0.247 - 8 0.00159 - 13 0.0175 - 14 0.00478 - 15 0.00955 - 18 0.00159 - 19 0.00318 - 20 0.00318 - 21 0.0525 - 23 0.00159 - 24 0.00637 - 26 0.0318 - 28 0.0732 - 29 0.0971 - 30 0.0271 - 31 0.035 - 32 0.0223 - 33 0.0589 - 36 0.00159 - 37 0.00318 - 41 0.0478 - 42 0.0159 - 43 0.00159 - 44 0.00796 - 45 0.00318 - 47 0.0732 - - 4 38 10 0 - 2 0.0526 - 7 0.263 - 14 0.0263 - 21 0.0789 - 28 0.0263 - 29 0.0789 - 31 0.0526 - 33 0.105 - 41 0.132 - 47 0.184 - - 7 71 14 0 - 0 0.0845 - 2 0.0423 - 7 0.183 - 8 0.0423 - 21 0.394 - 24 0.0423 - 26 0.0141 - 28 0.0282 - 29 0.0282 - 32 0.0141 - 33 0.0563 - 41 0.0141 - 42 0.0282 - 47 0.0282 - - 8 152 20 0 - 0 0.0461 - 2 0.0592 - 4 0.00658 - 7 0.375 - 8 0.00658 - 13 0.0132 - 14 0.0263 - 21 0.0461 - 24 0.0329 - 26 0.0526 - 28 0.164 - 29 0.0526 - 30 0.0197 - 31 0.0197 - 32 0.0132 - 33 0.0132 - 37 0.00658 - 41 0.0132 - 42 0.0132 - 47 0.0197 - - 9 15 9 0 - 0 0.0667 - 4 0.133 - 7 0.267 - 21 0.0667 - 26 0.0667 - 28 0.0667 - 32 0.133 - 41 0.133 - 45 0.0667 - - 13 12 8 0 - 2 0.25 - 21 0.0833 - 24 0.0833 - 28 0.0833 - 29 0.0833 - 32 0.0833 - 41 0.0833 - 47 0.25 - - 14 4 3 0 - 7 0.5 - 24 0.25 - 29 0.25 - - 17 9 6 0 - 2 0.111 - 7 0.222 - 24 0.111 - 29 0.222 - 33 0.111 - 47 0.222 - - 21 59 17 0 - 0 0.0508 - 2 0.0169 - 7 0.102 - 13 0.0508 - 14 0.0847 - 19 0.0339 - 21 0.0169 - 24 0.0169 - 26 0.0169 - 28 0.288 - 29 0.0508 - 31 0.0678 - 32 0.0339 - 33 0.0508 - 41 0.0847 - 42 0.0169 - 47 0.0169 - - 26 21 10 0 - 0 0.19 - 2 0.0952 - 7 0.19 - 14 0.0476 - 15 0.0476 - 28 0.19 - 30 0.0952 - 33 0.0476 - 41 0.0476 - 42 0.0476 - - 38 11 8 0 - 7 0.182 - 21 0.0909 - 24 0.0909 - 26 0.182 - 28 0.182 - 29 0.0909 - 31 0.0909 - 42 0.0909 - - 39 296 20 0 - 0 0.0811 - 2 0.0676 - 4 0.0372 - 7 0.409 - 8 0.00338 - 13 0.0236 - 18 0.00338 - 21 0.0304 - 24 0.0101 - 26 0.0608 - 28 0.0709 - 29 0.0405 - 30 0.0338 - 31 0.0338 - 32 0.0101 - 33 0.0203 - 41 0.0203 - 42 0.0236 - 44 0.00676 - 47 0.0135 - - 47 51 3 0 - 2 0.529 - 7 0.255 - 21 0.216 - - 22 108 17 2 - 0 0.0556 - 2 0.0648 - 4 0.037 - 7 0.333 - 8 0.0185 - 13 0.00926 - 14 0.00926 - 21 0.0278 - 24 0.0185 - 26 0.00926 - 28 0.0185 - 29 0.0926 - 30 0.13 - 31 0.0556 - 33 0.037 - 41 0.0463 - 47 0.037 - - 26 2 2 0 - 0 0.5 - 28 0.5 - - 47 6 3 0 - 2 0.667 - 13 0.167 - 14 0.167 - - 24 3 3 0 - 21 0.333 - 28 0.333 - 41 0.333 - - 25 3 2 0 - 7 0.667 - 30 0.333 - - 26 510 10 4 - 3 0.608 - 7 0.104 - 8 0.00784 - 13 0.212 - 14 0.0118 - 21 0.0412 - 22 0.00392 - 24 0.00196 - 28 0.00784 - 32 0.00196 - - 3 345 9 0 - 3 0.539 - 7 0.0957 - 13 0.304 - 14 0.0145 - 21 0.0261 - 22 0.0029 - 24 0.0029 - 28 0.0116 - 32 0.0029 - - 8 1 1 0 - 8 1 - - 39 157 7 0 - 3 0.783 - 7 0.115 - 8 0.0127 - 13 0.00637 - 14 0.00637 - 21 0.0701 - 22 0.00637 - - 47 1 1 0 - 8 1 - - 31 6 2 0 - 4 0.833 - 20 0.167 - - 38 128 14 0 - 2 0.0312 - 4 0.102 - 7 0.43 - 8 0.0312 - 13 0.0156 - 18 0.0391 - 21 0.0859 - 24 0.00781 - 26 0.195 - 28 0.0156 - 29 0.0156 - 31 0.00781 - 42 0.0156 - 47 0.00781 - - 39 5335 31 2 - 0 0.0274 - 2 0.0231 - 3 0.00075 - 4 0.108 - 7 0.384 - 8 0.0249 - 10 0.00394 - 13 0.00506 - 14 0.00281 - 15 0.00356 - 18 0.0135 - 19 0.000375 - 20 0.00862 - 21 0.0583 - 24 0.00375 - 26 0.153 - 28 0.0319 - 29 0.0437 - 30 0.0144 - 31 0.0172 - 32 0.00356 - 33 0.00619 - 34 0.000562 - 36 0.000187 - 37 0.000187 - 41 0.00656 - 42 0.0191 - 44 0.0313 - 45 0.000187 - 46 0.000187 - 47 0.0045 - - 3 165 16 0 - 0 0.0182 - 2 0.0242 - 4 0.103 - 7 0.582 - 8 0.0242 - 15 0.00606 - 18 0.0121 - 20 0.00606 - 21 0.0727 - 26 0.0121 - 28 0.0485 - 29 0.0182 - 31 0.0364 - 33 0.00606 - 42 0.0121 - 44 0.0182 - - 8 1 1 0 - 20 1 - - 41 2 2 0 - 8 0.5 - 38 0.5 - - 45 3 3 0 - 0 0.333 - 21 0.333 - 28 0.333 - - 46 2 2 0 - 9 0.5 - 10 0.5 - - 47 9444 38 17 - 0 0.0451 - 1 0.000106 - 2 0.026 - 3 0.00381 - 4 0.0736 - 7 0.334 - 8 0.019 - 9 0.000106 - 10 0.000106 - 13 0.0197 - 14 0.00805 - 15 0.00455 - 16 0.000212 - 18 0.0115 - 19 0.00116 - 20 0.00667 - 21 0.0109 - 22 0.000106 - 23 0.000106 - 24 0.0072 - 26 0.132 - 28 0.0547 - 29 0.0686 - 30 0.0222 - 31 0.0236 - 32 0.00784 - 33 0.0205 - 34 0.000635 - 36 0.000212 - 37 0.0018 - 39 0.00106 - 41 0.0205 - 42 0.0338 - 43 0.000212 - 44 0.0194 - 45 0.00148 - 46 0.000212 - 47 0.0195 - - 2 79 4 0 - 3 0.367 - 13 0.468 - 14 0.152 - 31 0.0127 - - 3 1998 31 0 - 0 0.0365 - 2 0.017 - 4 0.044 - 7 0.278 - 8 0.019 - 9 0.000501 - 13 0.0395 - 14 0.00901 - 15 0.00601 - 16 0.000501 - 18 0.015 - 19 0.001 - 20 0.00601 - 21 0.01 - 22 0.000501 - 24 0.0035 - 26 0.212 - 28 0.0285 - 29 0.107 - 30 0.0125 - 31 0.0135 - 32 0.00701 - 33 0.00801 - 34 0.0015 - 39 0.00501 - 41 0.022 - 42 0.0856 - 43 0.000501 - 44 0.0015 - 45 0.003 - 47 0.00601 - - 4 139 20 0 - 0 0.0216 - 2 0.0288 - 3 0.00719 - 7 0.273 - 13 0.036 - 14 0.00719 - 21 0.0144 - 24 0.0216 - 26 0.0432 - 28 0.122 - 29 0.122 - 30 0.0288 - 31 0.0432 - 32 0.00719 - 33 0.0504 - 41 0.0144 - 42 0.0144 - 44 0.00719 - 46 0.00719 - 47 0.129 - - 7 944 27 0 - 0 0.0657 - 1 0.00106 - 2 0.0371 - 4 0.00212 - 7 0.374 - 8 0.0053 - 13 0.00636 - 14 0.0138 - 15 0.00212 - 16 0.00106 - 19 0.00212 - 21 0.0169 - 24 0.0127 - 26 0.0604 - 28 0.11 - 29 0.0434 - 30 0.0392 - 31 0.0318 - 32 0.0117 - 33 0.0646 - 37 0.0117 - 41 0.0275 - 42 0.00847 - 44 0.0053 - 45 0.00318 - 46 0.00106 - 47 0.0413 - - 8 45 12 0 - 0 0.0667 - 2 0.0222 - 4 0.244 - 7 0.422 - 15 0.0222 - 26 0.0222 - 28 0.0222 - 29 0.0222 - 30 0.0444 - 31 0.0444 - 33 0.0444 - 41 0.0222 - - 9 422 23 0 - 0 0.0616 - 2 0.0403 - 4 0.0166 - 7 0.351 - 13 0.0166 - 14 0.00711 - 15 0.00474 - 19 0.00237 - 20 0.00237 - 21 0.0213 - 24 0.00474 - 26 0.0474 - 28 0.0829 - 29 0.0853 - 30 0.0427 - 31 0.0474 - 32 0.00711 - 33 0.0284 - 37 0.00474 - 41 0.0616 - 42 0.019 - 45 0.00237 - 47 0.0427 - - 13 8 7 0 - 4 0.125 - 7 0.25 - 20 0.125 - 21 0.125 - 24 0.125 - 33 0.125 - 42 0.125 - - 14 8 6 0 - 2 0.125 - 4 0.125 - 7 0.25 - 26 0.125 - 28 0.25 - 41 0.125 - - 17 3 3 0 - 14 0.333 - 28 0.333 - 31 0.333 - - 21 1259 30 0 - 0 0.0842 - 2 0.054 - 3 0.00159 - 4 0.0127 - 7 0.296 - 8 0.00397 - 13 0.0183 - 14 0.0103 - 15 0.00556 - 18 0.00159 - 19 0.00318 - 20 0.00159 - 21 0.0286 - 23 0.000794 - 24 0.0159 - 26 0.0397 - 28 0.0953 - 29 0.0747 - 30 0.0254 - 31 0.0334 - 32 0.0199 - 33 0.0461 - 36 0.000794 - 37 0.00238 - 41 0.0421 - 42 0.0191 - 43 0.000794 - 44 0.00556 - 45 0.00238 - 47 0.054 - - 22 100 16 0 - 0 0.06 - 2 0.03 - 4 0.01 - 7 0.36 - 8 0.02 - 13 0.01 - 21 0.03 - 24 0.02 - 26 0.01 - 28 0.02 - 29 0.1 - 30 0.14 - 31 0.06 - 33 0.04 - 41 0.05 - 47 0.04 - - 24 2 2 0 - 28 0.5 - 41 0.5 - - 26 5 2 0 - 28 0.8 - 32 0.2 - - 31 6 2 0 - 4 0.833 - 20 0.167 - - 38 105 13 0 - 2 0.019 - 4 0.124 - 7 0.429 - 8 0.0381 - 13 0.019 - 18 0.0476 - 24 0.00952 - 26 0.238 - 28 0.019 - 29 0.019 - 31 0.00952 - 42 0.019 - 47 0.00952 - - 39 4310 30 0 - 0 0.0339 - 2 0.0186 - 3 0.000928 - 4 0.128 - 7 0.366 - 8 0.029 - 10 0.000232 - 13 0.00603 - 14 0.00348 - 15 0.00441 - 18 0.0167 - 19 0.000464 - 20 0.0107 - 21 0.00348 - 24 0.00464 - 26 0.152 - 28 0.0394 - 29 0.0541 - 30 0.0179 - 31 0.0202 - 32 0.00441 - 33 0.00766 - 34 0.000696 - 36 0.000232 - 37 0.000232 - 41 0.00812 - 42 0.0237 - 44 0.0387 - 45 0.000232 - 47 0.00557 - - 45 3 3 0 - 0 0.333 - 21 0.333 - 28 0.333 - - 55 4 3 0 - 7 0.5 - 42 0.25 - 45 0.25 - - 58 1 1 0 - 14 1 - -61 127 13 5 - 2 0.0315 - 3 0.00787 - 4 0.0315 - 8 0.0157 - 13 0.189 - 14 0.0709 - 15 0.00787 - 21 0.15 - 24 0.00787 - 28 0.0157 - 41 0.441 - 42 0.0157 - 46 0.0157 - - 47 47 8 0 - 2 0.0426 - 4 0.0426 - 13 0.191 - 14 0.0851 - 28 0.0213 - 41 0.574 - 42 0.0213 - 46 0.0213 - - 49 32 6 0 - 2 0.0625 - 4 0.0625 - 13 0.0938 - 14 0.0625 - 24 0.0312 - 41 0.688 - - 55 24 7 0 - 8 0.0833 - 13 0.0833 - 14 0.0417 - 15 0.0417 - 21 0.667 - 41 0.0417 - 46 0.0417 - - 57 11 4 0 - 13 0.455 - 14 0.0909 - 28 0.0909 - 41 0.364 - - 64 1 1 0 - 3 1 - -62 295300 46 32 - 0 0.00594 - 1 0.000213 - 2 0.0265 - 3 0.00539 - 4 0.00642 - 5 0.0029 - 6 5.08e-05 - 7 0.092 - 8 0.0115 - 9 0.000735 - 10 0.000362 - 11 4.06e-05 - 12 0.000328 - 13 0.0983 - 14 0.0637 - 15 0.0501 - 16 0.00223 - 17 1.35e-05 - 18 0.000511 - 19 0.0512 - 20 4.74e-05 - 21 0.0258 - 22 0.00043 - 23 4.74e-05 - 24 0.000969 - 25 2.37e-05 - 26 0.00111 - 27 0.000102 - 28 0.0131 - 29 0.035 - 30 0.00893 - 31 0.0163 - 32 0.0106 - 33 0.0136 - 34 0.0284 - 35 0.0149 - 36 6.77e-06 - 37 0.0127 - 40 0.000139 - 41 0.079 - 42 0.0087 - 43 0.000972 - 44 0.00109 - 45 0.0288 - 46 0.00572 - 47 0.275 - - 0 8 5 0 - 2 0.125 - 13 0.375 - 14 0.25 - 15 0.125 - 37 0.125 - - 2 2293 7 5 - 9 0.000436 - 13 0.000436 - 41 0.00741 - 42 0.00174 - 45 0.044 - 46 0.000436 - 47 0.945 - - 55 1575 4 0 - 41 0.0019 - 45 0.047 - 46 0.000635 - 47 0.95 - - 57 241 3 0 - 42 0.0083 - 45 0.0124 - 47 0.979 - - 62 101 4 0 - 41 0.109 - 42 0.0099 - 45 0.0594 - 47 0.822 - - 66 1 1 0 - 41 1 - - 69 19 5 0 - 9 0.0526 - 13 0.0526 - 41 0.0526 - 45 0.105 - 47 0.737 - - 4 32 9 0 - 4 0.0312 - 8 0.0312 - 14 0.156 - 15 0.312 - 19 0.25 - 34 0.0625 - 35 0.0312 - 41 0.0938 - 42 0.0312 - - 7 39 2 0 - 45 0.0256 - 47 0.974 - - 12 4 3 0 - 14 0.25 - 19 0.5 - 37 0.25 - - 21 199 25 5 - 0 0.0101 - 2 0.0201 - 7 0.101 - 8 0.0201 - 12 0.0201 - 13 0.0704 - 14 0.0452 - 15 0.0201 - 19 0.0452 - 21 0.0151 - 23 0.00503 - 24 0.00503 - 25 0.00503 - 28 0.00503 - 29 0.106 - 31 0.0302 - 32 0.00503 - 33 0.00503 - 35 0.00503 - 37 0.00503 - 41 0.0704 - 42 0.0151 - 45 0.0251 - 46 0.0101 - 47 0.337 - - 41 7 2 0 - 45 0.143 - 47 0.857 - - 55 44 5 0 - 2 0.0682 - 37 0.0227 - 41 0.114 - 45 0.0455 - 47 0.75 - - 57 7 1 0 - 47 1 - - 64 5 1 0 - 47 1 - - 69 122 24 0 - 0 0.0164 - 2 0.0082 - 7 0.148 - 8 0.0328 - 12 0.0328 - 13 0.107 - 14 0.0738 - 15 0.0328 - 19 0.0738 - 21 0.0164 - 23 0.0082 - 24 0.0082 - 25 0.0082 - 28 0.0082 - 29 0.172 - 31 0.0492 - 32 0.0082 - 33 0.0082 - 35 0.0082 - 41 0.0656 - 42 0.0246 - 45 0.0164 - 46 0.0164 - 47 0.0574 - - 26 5 3 0 - 8 0.6 - 13 0.2 - 19 0.2 - - 40 10 6 0 - 8 0.1 - 13 0.4 - 14 0.2 - 19 0.1 - 21 0.1 - 27 0.1 - - 41 12917 37 14 - 0 0.00356 - 2 0.00434 - 3 0.0433 - 4 0.0079 - 5 0.000155 - 6 7.74e-05 - 7 0.00596 - 8 0.0321 - 9 0.00341 - 10 0.00147 - 11 0.000387 - 12 0.000774 - 13 0.376 - 14 0.157 - 15 0.124 - 16 0.00426 - 18 0.000387 - 19 0.0109 - 20 7.74e-05 - 21 0.16 - 22 0.00395 - 23 0.000232 - 24 0.00348 - 26 0.000155 - 27 0.00194 - 28 0.00898 - 29 0.00681 - 30 0.00457 - 31 0.0181 - 32 0.00341 - 33 0.00735 - 34 0.000542 - 35 0.000232 - 37 0.000387 - 42 0.000155 - 43 0.00333 - 46 0.000232 - - 2 15 7 0 - 8 0.133 - 13 0.267 - 14 0.133 - 15 0.267 - 18 0.0667 - 19 0.0667 - 27 0.0667 - - 21 6 3 0 - 13 0.667 - 19 0.167 - 28 0.167 - - 45 125 16 0 - 0 0.008 - 2 0.016 - 3 0.016 - 4 0.008 - 8 0.024 - 13 0.256 - 14 0.216 - 15 0.12 - 16 0.008 - 19 0.04 - 21 0.112 - 28 0.008 - 29 0.024 - 30 0.016 - 31 0.032 - 33 0.096 - - 46 950 26 0 - 0 0.0158 - 2 0.00105 - 3 0.0158 - 4 0.0179 - 7 0.00947 - 8 0.0884 - 9 0.00737 - 10 0.00105 - 12 0.00632 - 13 0.379 - 14 0.154 - 15 0.0674 - 16 0.00526 - 19 0.0442 - 21 0.0695 - 22 0.00105 - 24 0.0126 - 26 0.00105 - 28 0.0316 - 29 0.0147 - 30 0.00947 - 31 0.0337 - 32 0.00421 - 33 0.00632 - 42 0.00211 - 43 0.00105 - - 48 3 3 0 - 0 0.333 - 13 0.333 - 14 0.333 - - 49 375 22 0 - 2 0.016 - 3 0.032 - 4 0.008 - 7 0.0107 - 8 0.008 - 9 0.00267 - 10 0.00267 - 13 0.339 - 14 0.216 - 15 0.171 - 16 0.00533 - 18 0.00533 - 19 0.0347 - 21 0.112 - 24 0.008 - 27 0.00267 - 30 0.00267 - 31 0.00533 - 32 0.00533 - 33 0.00533 - 34 0.00267 - 43 0.00533 - - 55 9312 33 0 - 0 0.00268 - 2 0.00129 - 3 0.0493 - 4 0.00709 - 5 0.000215 - 7 0.00473 - 8 0.0306 - 9 0.00365 - 10 0.00183 - 11 0.000537 - 12 0.00043 - 13 0.39 - 14 0.156 - 15 0.113 - 16 0.00397 - 18 0.000107 - 19 0.00655 - 20 0.000107 - 21 0.165 - 22 0.00515 - 23 0.000322 - 24 0.00279 - 26 0.000107 - 27 0.00215 - 28 0.00805 - 29 0.00677 - 30 0.00451 - 31 0.0183 - 32 0.00333 - 33 0.00698 - 37 0.00043 - 43 0.00365 - 46 0.000322 - - 57 600 21 0 - 2 0.0383 - 3 0.035 - 4 0.01 - 7 0.0183 - 8 0.00167 - 13 0.258 - 14 0.132 - 15 0.275 - 16 0.00667 - 19 0.0117 - 21 0.182 - 22 0.00167 - 27 0.00167 - 29 0.00167 - 30 0.00167 - 31 0.00333 - 32 0.00333 - 34 0.00833 - 35 0.005 - 37 0.00167 - 43 0.00333 - - 58 38 9 0 - 2 0.0263 - 8 0.0263 - 9 0.0263 - 13 0.474 - 14 0.132 - 15 0.105 - 21 0.158 - 32 0.0263 - 33 0.0263 - - 62 430 21 0 - 0 0.00465 - 2 0.00233 - 3 0.0256 - 4 0.00233 - 7 0.0093 - 8 0.0209 - 9 0.00233 - 13 0.302 - 14 0.184 - 15 0.258 - 16 0.00233 - 19 0.0093 - 21 0.135 - 24 0.00698 - 28 0.00698 - 29 0.00698 - 30 0.00233 - 31 0.00465 - 32 0.00233 - 33 0.00698 - 43 0.00465 - - 64 201 16 0 - 0 0.00498 - 2 0.0448 - 3 0.0846 - 4 0.00498 - 7 0.0199 - 8 0.0149 - 13 0.269 - 14 0.114 - 15 0.124 - 16 0.0149 - 21 0.269 - 22 0.00498 - 28 0.00995 - 31 0.00995 - 33 0.00498 - 34 0.00498 - - 66 1 1 0 - 2 1 - - 69 839 21 0 - 0 0.00119 - 3 0.0262 - 4 0.00834 - 7 0.00119 - 8 0.0274 - 13 0.398 - 14 0.16 - 15 0.113 - 16 0.00238 - 18 0.00119 - 19 0.00715 - 21 0.205 - 24 0.00119 - 27 0.00238 - 28 0.00477 - 29 0.00358 - 30 0.00358 - 31 0.0238 - 32 0.00238 - 33 0.00477 - 43 0.00238 - - 74 11 7 0 - 6 0.0909 - 13 0.364 - 14 0.182 - 19 0.0909 - 29 0.0909 - 32 0.0909 - 33 0.0909 - - 42 133 20 7 - 3 0.00752 - 4 0.015 - 8 0.0602 - 11 0.0226 - 13 0.233 - 14 0.143 - 15 0.0677 - 19 0.0226 - 21 0.0226 - 24 0.00752 - 25 0.0301 - 28 0.00752 - 29 0.015 - 40 0.00752 - 41 0.015 - 42 0.00752 - 43 0.00752 - 45 0.00752 - 46 0.015 - 47 0.286 - - 45 19 6 0 - 13 0.0526 - 15 0.158 - 19 0.158 - 24 0.0526 - 29 0.0526 - 47 0.526 - - 49 4 4 0 - 8 0.25 - 14 0.25 - 15 0.25 - 28 0.25 - - 55 51 14 0 - 8 0.0392 - 11 0.0392 - 13 0.255 - 14 0.118 - 15 0.0588 - 21 0.0196 - 25 0.0196 - 29 0.0196 - 40 0.0196 - 41 0.0196 - 42 0.0196 - 43 0.0196 - 46 0.0392 - 47 0.314 - - 57 6 3 0 - 4 0.167 - 13 0.167 - 47 0.667 - - 62 17 6 0 - 13 0.353 - 14 0.176 - 15 0.0588 - 21 0.118 - 45 0.0588 - 47 0.235 - - 66 6 3 0 - 4 0.167 - 8 0.667 - 13 0.167 - - 69 22 8 0 - 3 0.0455 - 8 0.0455 - 11 0.0455 - 13 0.227 - 14 0.409 - 15 0.0455 - 25 0.136 - 41 0.0455 - - 43 32 6 0 - 11 0.0938 - 13 0.344 - 14 0.125 - 15 0.281 - 18 0.0312 - 19 0.125 - - 44 156 17 1 - 0 0.00641 - 2 0.0128 - 4 0.00641 - 7 0.0385 - 8 0.00641 - 13 0.0128 - 14 0.0128 - 21 0.0192 - 28 0.0256 - 29 0.00641 - 32 0.00641 - 33 0.00641 - 35 0.00641 - 41 0.0192 - 45 0.0128 - 46 0.00641 - 47 0.795 - - 57 22 1 0 - 47 1 - - 45 2718 26 8 - 0 0.0011 - 2 0.00478 - 3 0.00258 - 4 0.0011 - 7 0.0118 - 8 0.000736 - 13 0.0545 - 14 0.0309 - 15 0.0213 - 16 0.000736 - 18 0.000736 - 19 0.0169 - 21 0.00331 - 28 0.00184 - 29 0.00258 - 31 0.0118 - 32 0.000736 - 33 0.00736 - 37 0.000368 - 40 0.000368 - 41 0.0982 - 42 0.0232 - 44 0.00221 - 45 0.000736 - 46 0.000736 - 47 0.699 - - 2 87 1 0 - 47 1 - - 48 56 9 0 - 2 0.0179 - 4 0.0179 - 13 0.5 - 14 0.25 - 15 0.0179 - 19 0.125 - 31 0.0357 - 33 0.0179 - 42 0.0179 - - 49 64 7 0 - 13 0.0625 - 14 0.0312 - 15 0.0312 - 19 0.0156 - 41 0.0781 - 42 0.0625 - 47 0.719 - - 55 1037 20 0 - 0 0.00193 - 2 0.00964 - 7 0.0251 - 13 0.0135 - 14 0.000964 - 15 0.00193 - 19 0.0116 - 21 0.00482 - 28 0.00386 - 29 0.00482 - 31 0.026 - 32 0.00193 - 33 0.0145 - 37 0.000964 - 40 0.000964 - 41 0.165 - 42 0.0328 - 44 0.00482 - 46 0.00193 - 47 0.673 - - 57 75 6 0 - 2 0.0133 - 7 0.04 - 31 0.0133 - 41 0.0533 - 42 0.0133 - 47 0.867 - - 62 945 9 0 - 7 0.00317 - 29 0.00106 - 31 0.00106 - 33 0.00106 - 41 0.0254 - 42 0.0159 - 44 0.00106 - 45 0.00212 - 47 0.949 - - 64 96 4 0 - 2 0.0104 - 41 0.104 - 42 0.0417 - 47 0.844 - - 69 334 18 0 - 0 0.00299 - 3 0.021 - 4 0.00599 - 8 0.00599 - 13 0.305 - 14 0.198 - 15 0.159 - 16 0.00599 - 18 0.00599 - 19 0.0778 - 21 0.012 - 28 0.00299 - 29 0.00299 - 31 0.00299 - 33 0.00898 - 41 0.15 - 42 0.00599 - 47 0.0269 - - 46 1060 13 6 - 3 0.000943 - 8 0.00283 - 13 0.0236 - 14 0.0123 - 15 0.0236 - 16 0.00189 - 19 0.000943 - 21 0.000943 - 30 0.000943 - 40 0.0151 - 41 0.899 - 46 0.00472 - 47 0.0132 - - 49 3 3 0 - 13 0.333 - 15 0.333 - 47 0.333 - - 55 921 6 0 - 13 0.00217 - 14 0.00217 - 40 0.0163 - 41 0.967 - 46 0.00434 - 47 0.0076 - - 57 3 2 0 - 41 0.333 - 47 0.667 - - 62 10 2 0 - 41 0.7 - 47 0.3 - - 64 3 2 0 - 8 0.667 - 41 0.333 - - 69 99 12 0 - 3 0.0101 - 8 0.0101 - 13 0.222 - 14 0.111 - 15 0.242 - 16 0.0202 - 19 0.0101 - 21 0.0101 - 30 0.0101 - 40 0.0101 - 41 0.333 - 46 0.0101 - - 47 95402 42 25 - 0 0.00867 - 1 0.000325 - 2 0.0289 - 3 0.0027 - 4 0.00311 - 6 1.05e-05 - 7 0.141 - 8 0.0136 - 9 0.00066 - 10 0.000136 - 12 0.000419 - 13 0.0355 - 14 0.0168 - 15 0.00423 - 16 0.000199 - 17 2.1e-05 - 18 3.14e-05 - 19 0.00112 - 21 0.00595 - 22 0.00022 - 23 2.1e-05 - 24 0.00122 - 25 1.05e-05 - 26 0.00167 - 28 0.0194 - 29 0.0534 - 30 0.0131 - 31 0.0233 - 32 0.016 - 33 0.0203 - 34 0.0436 - 35 0.023 - 36 1.05e-05 - 37 0.0196 - 40 2.1e-05 - 41 0.0307 - 42 0.0112 - 43 0.000199 - 44 0.00087 - 45 0.0302 - 46 0.00213 - 47 0.426 - - 2 2188 5 0 - 41 0.000457 - 42 0.00183 - 45 0.0064 - 46 0.000457 - 47 0.991 - - 4 5 4 0 - 8 0.2 - 34 0.4 - 35 0.2 - 41 0.2 - - 7 38 1 0 - 47 1 - - 21 173 25 0 - 0 0.0116 - 2 0.00578 - 7 0.116 - 8 0.0231 - 12 0.0173 - 13 0.0636 - 14 0.0405 - 15 0.0173 - 19 0.0289 - 21 0.00578 - 23 0.00578 - 24 0.00578 - 25 0.00578 - 28 0.00578 - 29 0.121 - 31 0.0347 - 32 0.00578 - 33 0.00578 - 35 0.00578 - 37 0.00578 - 41 0.0462 - 42 0.0173 - 45 0.00578 - 46 0.0116 - 47 0.387 - - 26 5 3 0 - 8 0.6 - 13 0.2 - 19 0.2 - - 41 29 9 0 - 2 0.069 - 4 0.0345 - 7 0.379 - 15 0.0345 - 21 0.0345 - 31 0.069 - 34 0.241 - 35 0.103 - 37 0.0345 - - 42 40 3 0 - 4 0.025 - 45 0.025 - 47 0.95 - - 44 146 14 0 - 0 0.00685 - 2 0.0137 - 4 0.00685 - 7 0.0411 - 8 0.00685 - 14 0.00685 - 21 0.00685 - 28 0.0274 - 29 0.00685 - 32 0.00685 - 33 0.00685 - 35 0.00685 - 45 0.00685 - 47 0.849 - - 45 2081 17 0 - 0 0.00144 - 2 0.000481 - 7 0.0154 - 13 0.000961 - 14 0.000481 - 21 0.000481 - 28 0.0024 - 29 0.00288 - 31 0.0149 - 32 0.000961 - 33 0.00865 - 37 0.000481 - 41 0.0139 - 42 0.0207 - 44 0.00192 - 45 0.000481 - 47 0.914 - - 46 14 1 0 - 47 1 - - 48 401 21 0 - 0 0.00249 - 2 0.0125 - 7 0.0499 - 13 0.0125 - 14 0.00249 - 15 0.00748 - 16 0.00249 - 21 0.00748 - 24 0.00499 - 28 0.0698 - 29 0.122 - 30 0.0374 - 31 0.387 - 32 0.0249 - 33 0.0249 - 34 0.00249 - 37 0.00249 - 41 0.0823 - 42 0.00249 - 45 0.00998 - 47 0.132 - - 49 2499 23 0 - 0 0.0016 - 2 0.0272 - 7 0.0344 - 8 0.0004 - 12 0.0004 - 13 0.0068 - 14 0.0024 - 15 0.0016 - 21 0.006 - 24 0.0008 - 28 0.0012 - 29 0.0012 - 30 0.0012 - 31 0.0016 - 32 0.002 - 33 0.0016 - 34 0.0656 - 35 0.0324 - 37 0.0012 - 41 0.0312 - 42 0.0156 - 45 0.0228 - 47 0.741 - - 50 6 1 0 - 47 1 - - 51 15 6 0 - 2 0.0667 - 7 0.0667 - 32 0.0667 - 33 0.0667 - 45 0.2 - 47 0.533 - - 52 43 8 0 - 2 0.0233 - 28 0.0233 - 41 0.0233 - 42 0.0233 - 44 0.0233 - 45 0.209 - 46 0.0233 - 47 0.651 - - 53 30 4 0 - 2 0.0333 - 7 0.0333 - 42 0.1 - 47 0.833 - - 55 52582 38 0 - 0 0.00203 - 1 0.000342 - 2 0.0449 - 3 0.00038 - 4 0.00443 - 7 0.183 - 8 0.00304 - 9 0.000133 - 10 0.000133 - 12 1.9e-05 - 13 0.0151 - 14 0.00688 - 15 0.000856 - 16 3.8e-05 - 17 3.8e-05 - 18 1.9e-05 - 19 0.000513 - 21 0.00382 - 22 0.000114 - 24 0.000114 - 26 0.000228 - 28 0.0187 - 29 0.071 - 30 0.00837 - 31 0.0106 - 32 0.018 - 33 0.0195 - 34 0.0097 - 35 0.00778 - 36 1.9e-05 - 37 0.0328 - 41 0.0205 - 42 0.0131 - 43 0.000114 - 44 0.00103 - 45 0.0401 - 46 0.00202 - 47 0.461 - - 57 4707 21 0 - 2 0.0191 - 4 0.00085 - 7 0.0416 - 8 0.000212 - 13 0.000637 - 14 0.000212 - 21 0.00085 - 28 0.000637 - 29 0.000212 - 31 0.00106 - 32 0.000212 - 33 0.000425 - 34 0.00722 - 35 0.00297 - 37 0.00149 - 40 0.000212 - 41 0.0161 - 42 0.0117 - 44 0.00085 - 45 0.021 - 47 0.872 - - 58 17 7 0 - 4 0.0588 - 7 0.294 - 34 0.235 - 35 0.118 - 37 0.118 - 42 0.0588 - 47 0.118 - - 62 4872 24 0 - 0 0.00144 - 2 0.00944 - 4 0.00123 - 7 0.0515 - 8 0.000205 - 13 0.00205 - 14 0.000411 - 15 0.000205 - 19 0.000205 - 21 0.00164 - 28 0.00164 - 29 0.0133 - 30 0.00144 - 31 0.00103 - 32 0.00226 - 33 0.00431 - 34 0.00554 - 35 0.00144 - 37 0.00513 - 41 0.00513 - 42 0.016 - 44 0.000821 - 45 0.0525 - 47 0.821 - - 64 1775 16 0 - 0 0.00113 - 2 0.0293 - 4 0.00169 - 7 0.0958 - 21 0.00225 - 29 0.00451 - 30 0.000563 - 32 0.00282 - 33 0.00169 - 34 0.000563 - 35 0.000563 - 37 0.00113 - 41 0.0169 - 42 0.0135 - 45 0.093 - 47 0.735 - - 66 16 3 0 - 2 0.0625 - 42 0.0625 - 47 0.875 - - 68 15 7 0 - 7 0.0667 - 13 0.0667 - 28 0.0667 - 31 0.0667 - 42 0.0667 - 45 0.0667 - 47 0.6 - - 69 23688 39 0 - 0 0.0296 - 1 0.000549 - 2 0.0054 - 3 0.01 - 4 0.00198 - 6 4.22e-05 - 7 0.13 - 8 0.0475 - 9 0.00236 - 10 0.000253 - 12 0.00148 - 13 0.107 - 14 0.0514 - 15 0.0146 - 16 0.000675 - 18 8.44e-05 - 19 0.00308 - 21 0.0139 - 22 0.000633 - 23 4.22e-05 - 24 0.00443 - 26 0.00621 - 28 0.0343 - 29 0.0511 - 30 0.0331 - 31 0.0616 - 32 0.0226 - 33 0.0358 - 34 0.144 - 35 0.0708 - 37 0.00414 - 40 4.22e-05 - 41 0.0661 - 42 0.00515 - 43 0.000549 - 44 0.000675 - 45 0.0068 - 46 0.00393 - 47 0.0277 - - 74 7 5 0 - 2 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - - 48 954 28 7 - 0 0.00105 - 2 0.00629 - 3 0.00314 - 4 0.00524 - 7 0.021 - 8 0.00314 - 13 0.155 - 14 0.142 - 15 0.0304 - 16 0.00314 - 18 0.00105 - 19 0.169 - 21 0.0136 - 22 0.00105 - 24 0.0021 - 28 0.0294 - 29 0.0514 - 30 0.0157 - 31 0.162 - 32 0.0105 - 33 0.0115 - 34 0.00105 - 37 0.00105 - 41 0.0388 - 42 0.0021 - 45 0.0629 - 46 0.00105 - 47 0.0556 - - 41 16 6 0 - 2 0.125 - 21 0.0625 - 41 0.0625 - 42 0.0625 - 45 0.125 - 47 0.562 - - 47 806 26 0 - 0 0.00124 - 2 0.00372 - 3 0.00372 - 4 0.0062 - 7 0.0223 - 8 0.00372 - 13 0.176 - 14 0.164 - 15 0.036 - 16 0.00372 - 19 0.102 - 21 0.0149 - 22 0.00124 - 24 0.00248 - 28 0.0211 - 29 0.0521 - 30 0.0136 - 31 0.185 - 32 0.0124 - 33 0.00993 - 37 0.00124 - 41 0.0397 - 42 0.00124 - 45 0.0682 - 46 0.00124 - 47 0.0533 - - 49 5 4 0 - 2 0.2 - 13 0.4 - 14 0.2 - 18 0.2 - - 55 19 8 0 - 13 0.0526 - 28 0.211 - 29 0.263 - 30 0.105 - 31 0.158 - 33 0.0526 - 41 0.105 - 47 0.0526 - - 62 36 5 0 - 7 0.0278 - 13 0.0278 - 14 0.0278 - 19 0.889 - 45 0.0278 - - 64 63 9 0 - 13 0.0317 - 14 0.0159 - 19 0.683 - 28 0.111 - 29 0.0317 - 30 0.0317 - 31 0.0476 - 33 0.0317 - 41 0.0159 - - 69 2 2 0 - 34 0.5 - 41 0.5 - - 49 6007 36 13 - 0 0.00117 - 2 0.0255 - 3 0.00117 - 4 0.00383 - 5 0.00333 - 7 0.0146 - 8 0.00133 - 9 0.000333 - 10 0.000166 - 12 0.000166 - 13 0.122 - 14 0.107 - 15 0.101 - 16 0.00449 - 18 0.00117 - 19 0.108 - 21 0.0103 - 23 0.000166 - 24 0.000333 - 28 0.000499 - 29 0.000666 - 30 0.000832 - 31 0.000832 - 32 0.000999 - 33 0.000999 - 34 0.0276 - 35 0.0135 - 37 0.000499 - 40 0.000333 - 41 0.106 - 42 0.00916 - 43 0.000832 - 44 0.000666 - 45 0.0201 - 46 0.0025 - 47 0.308 - - 41 1889 16 0 - 2 0.0238 - 4 0.000529 - 7 0.00106 - 13 0.00318 - 14 0.00159 - 15 0.00106 - 19 0.000529 - 21 0.00424 - 32 0.000529 - 40 0.00106 - 41 0.157 - 42 0.00794 - 44 0.00159 - 45 0.0312 - 46 0.000529 - 47 0.764 - - 44 2 2 0 - 2 0.5 - 45 0.5 - - 45 7 4 0 - 7 0.143 - 14 0.286 - 15 0.286 - 47 0.286 - - 47 59 15 0 - 4 0.0169 - 8 0.0339 - 13 0.237 - 14 0.22 - 15 0.102 - 19 0.0169 - 21 0.0339 - 28 0.0169 - 29 0.0339 - 30 0.0339 - 31 0.0339 - 32 0.0169 - 33 0.0169 - 41 0.119 - 47 0.0678 - - 48 9 4 0 - 14 0.111 - 21 0.111 - 41 0.222 - 47 0.556 - - 49 30 9 0 - 2 0.0333 - 7 0.0333 - 13 0.0667 - 14 0.133 - 15 0.2 - 19 0.233 - 41 0.1 - 42 0.0333 - 47 0.167 - - 55 493 13 0 - 2 0.178 - 7 0.0365 - 9 0.00203 - 13 0.00203 - 14 0.00609 - 21 0.0183 - 32 0.00203 - 34 0.00203 - 37 0.00406 - 41 0.0953 - 42 0.0325 - 45 0.069 - 47 0.552 - - 57 31 7 0 - 2 0.161 - 14 0.0323 - 41 0.0645 - 42 0.0323 - 44 0.0323 - 45 0.0645 - 47 0.613 - - 58 78 5 0 - 2 0.0641 - 41 0.0128 - 42 0.0256 - 45 0.0641 - 47 0.833 - - 62 11 4 0 - 2 0.182 - 42 0.0909 - 45 0.182 - 47 0.545 - - 64 6 3 0 - 2 0.167 - 45 0.5 - 47 0.333 - - 66 3 2 0 - 21 0.667 - 47 0.333 - - 69 3383 34 0 - 0 0.00207 - 2 0.00118 - 3 0.00207 - 4 0.00621 - 5 0.00591 - 7 0.0195 - 8 0.00177 - 9 0.000296 - 10 0.000296 - 12 0.000296 - 13 0.21 - 14 0.181 - 15 0.175 - 16 0.00798 - 18 0.00207 - 19 0.189 - 21 0.0118 - 23 0.000296 - 24 0.000591 - 28 0.000591 - 29 0.000591 - 30 0.000887 - 31 0.000887 - 32 0.000887 - 33 0.00148 - 34 0.0488 - 35 0.0239 - 37 0.000296 - 41 0.0822 - 42 0.00562 - 43 0.00148 - 45 0.00414 - 46 0.00414 - 47 0.00739 - - 50 8 3 0 - 14 0.125 - 19 0.125 - 47 0.75 - - 51 20 7 0 - 2 0.05 - 7 0.05 - 32 0.05 - 33 0.05 - 41 0.05 - 45 0.35 - 47 0.4 - - 52 51 9 1 - 2 0.0196 - 27 0.0196 - 28 0.0196 - 41 0.098 - 42 0.0196 - 44 0.0196 - 45 0.235 - 46 0.0196 - 47 0.549 - - 55 4 3 0 - 28 0.25 - 45 0.5 - 46 0.25 - - 53 30 4 0 - 2 0.0333 - 7 0.0333 - 42 0.1 - 47 0.833 - - 55 67719 43 18 - 0 0.00162 - 1 0.000266 - 2 0.0581 - 3 0.000753 - 4 0.0036 - 5 1.48e-05 - 7 0.143 - 8 0.00282 - 9 0.000266 - 10 0.00034 - 12 2.95e-05 - 13 0.019 - 14 0.00755 - 15 0.00347 - 16 8.86e-05 - 17 2.95e-05 - 18 4.43e-05 - 19 0.00157 - 21 0.0104 - 22 0.000192 - 23 1.48e-05 - 24 8.86e-05 - 25 1.48e-05 - 26 0.000177 - 27 1.48e-05 - 28 0.0146 - 29 0.0552 - 30 0.00653 - 31 0.00828 - 32 0.0141 - 33 0.0153 - 34 0.00755 - 35 0.00604 - 36 1.48e-05 - 37 0.0255 - 40 4.43e-05 - 41 0.159 - 42 0.0118 - 43 0.000295 - 44 0.00233 - 45 0.0466 - 46 0.0162 - 47 0.358 - - 4 27 11 0 - 7 0.037 - 8 0.037 - 13 0.037 - 14 0.037 - 28 0.037 - 29 0.0741 - 32 0.037 - 41 0.0741 - 45 0.037 - 46 0.037 - 47 0.556 - - 12 3 3 0 - 2 0.333 - 33 0.333 - 42 0.333 - - 21 9 5 0 - 7 0.111 - 13 0.111 - 28 0.333 - 29 0.222 - 31 0.222 - - 41 1402 27 0 - 0 0.000713 - 2 0.0464 - 4 0.000713 - 7 0.0464 - 8 0.000713 - 10 0.000713 - 13 0.0728 - 14 0.00499 - 15 0.0278 - 19 0.000713 - 21 0.0107 - 27 0.000713 - 28 0.000713 - 29 0.0157 - 30 0.000713 - 31 0.00143 - 32 0.00713 - 33 0.00214 - 34 0.00214 - 37 0.00285 - 41 0.0449 - 42 0.0157 - 43 0.000713 - 44 0.00357 - 45 0.0271 - 46 0.00143 - 47 0.66 - - 42 27 7 0 - 2 0.111 - 7 0.148 - 21 0.037 - 29 0.0741 - 41 0.111 - 45 0.185 - 47 0.333 - - 43 29 2 0 - 7 0.069 - 44 0.931 - - 45 366 17 0 - 2 0.0273 - 7 0.167 - 13 0.0109 - 14 0.00273 - 21 0.00273 - 22 0.00273 - 28 0.0328 - 29 0.29 - 30 0.0355 - 31 0.0082 - 32 0.0109 - 33 0.082 - 34 0.00273 - 37 0.00273 - 41 0.0765 - 42 0.00273 - 47 0.243 - - 46 63 7 0 - 2 0.0159 - 7 0.0159 - 28 0.0317 - 29 0.0159 - 34 0.0159 - 41 0.0159 - 45 0.889 - - 47 833 26 0 - 0 0.0072 - 2 0.0336 - 3 0.0012 - 4 0.0096 - 7 0.0204 - 8 0.0192 - 9 0.0012 - 13 0.0636 - 14 0.0156 - 15 0.048 - 16 0.0012 - 18 0.0024 - 19 0.0876 - 21 0.0168 - 28 0.0396 - 29 0.0564 - 30 0.0072 - 31 0.376 - 32 0.0072 - 33 0.0264 - 34 0.0048 - 41 0.0264 - 42 0.0108 - 43 0.0024 - 45 0.0888 - 47 0.0264 - - 48 482 15 0 - 0 0.00622 - 2 0.027 - 7 0.0373 - 14 0.00207 - 28 0.344 - 29 0.0996 - 30 0.168 - 31 0.0705 - 32 0.0975 - 33 0.104 - 41 0.0228 - 42 0.00415 - 44 0.00415 - 45 0.00207 - 47 0.0104 - - 49 2900 25 0 - 0 0.00069 - 2 0.0714 - 3 0.000345 - 4 0.00103 - 7 0.108 - 8 0.00069 - 13 0.0121 - 14 0.00448 - 15 0.000345 - 21 0.0031 - 28 0.00586 - 29 0.0366 - 30 0.00138 - 31 0.00276 - 32 0.00931 - 33 0.00931 - 34 0.00586 - 35 0.00655 - 37 0.0169 - 41 0.128 - 42 0.0134 - 44 0.0031 - 45 0.0345 - 46 0.0031 - 47 0.521 - - 55 480 19 0 - 2 0.0854 - 4 0.00417 - 7 0.0437 - 13 0.0104 - 15 0.00208 - 21 0.00833 - 28 0.0896 - 29 0.0854 - 30 0.0479 - 31 0.0146 - 32 0.05 - 33 0.0646 - 35 0.00208 - 37 0.0125 - 41 0.102 - 42 0.0333 - 45 0.0167 - 46 0.00208 - 47 0.325 - - 57 150 18 0 - 0 0.0133 - 1 0.00667 - 2 0.0467 - 4 0.00667 - 7 0.06 - 13 0.0467 - 14 0.02 - 29 0.0333 - 30 0.0133 - 32 0.0267 - 33 0.00667 - 34 0.00667 - 37 0.02 - 41 0.187 - 42 0.0133 - 44 0.02 - 45 0.0267 - 47 0.447 - - 58 218 11 0 - 2 0.0505 - 7 0.0275 - 14 0.00459 - 21 0.00459 - 28 0.00459 - 34 0.00459 - 35 0.00459 - 41 0.0367 - 42 0.0183 - 45 0.0826 - 47 0.761 - - 62 10 5 0 - 2 0.1 - 14 0.1 - 19 0.2 - 37 0.1 - 47 0.5 - - 64 14 5 0 - 2 0.143 - 19 0.0714 - 32 0.0714 - 45 0.0714 - 47 0.643 - - 68 3 3 0 - 30 0.333 - 31 0.333 - 32 0.333 - - 69 60692 42 0 - 0 0.00158 - 1 0.00028 - 2 0.0584 - 3 0.000807 - 4 0.00377 - 5 1.65e-05 - 7 0.151 - 8 0.00282 - 9 0.00028 - 10 0.000362 - 12 3.3e-05 - 13 0.0177 - 14 0.00774 - 15 0.00254 - 16 8.24e-05 - 17 3.3e-05 - 18 1.65e-05 - 19 0.000478 - 21 0.0109 - 22 0.000198 - 23 1.65e-05 - 24 9.89e-05 - 25 1.65e-05 - 26 0.000198 - 28 0.0117 - 29 0.0552 - 30 0.00512 - 31 0.00315 - 32 0.0136 - 33 0.0144 - 34 0.00796 - 35 0.00639 - 36 1.65e-05 - 37 0.0274 - 40 4.94e-05 - 41 0.167 - 42 0.0115 - 43 0.00028 - 44 0.00185 - 45 0.047 - 46 0.0179 - 47 0.35 - - 57 5900 27 12 - 2 0.0561 - 3 0.000339 - 4 0.00102 - 7 0.0334 - 8 0.000508 - 9 0.000169 - 13 0.0149 - 14 0.00797 - 15 0.00831 - 16 0.000169 - 19 0.000339 - 21 0.00746 - 28 0.000508 - 29 0.000169 - 31 0.000847 - 32 0.000169 - 33 0.000339 - 34 0.00576 - 35 0.00237 - 37 0.00119 - 40 0.000678 - 41 0.117 - 42 0.0103 - 44 0.00441 - 45 0.0295 - 46 0.000508 - 47 0.696 - - 41 4850 19 0 - 2 0.0485 - 3 0.000206 - 4 0.000412 - 7 0.0221 - 13 0.00536 - 14 0.00103 - 15 0.00227 - 21 0.00515 - 28 0.000206 - 29 0.000206 - 34 0.000206 - 37 0.000412 - 40 0.000619 - 41 0.132 - 42 0.00928 - 44 0.00536 - 45 0.0262 - 46 0.000412 - 47 0.74 - - 42 18 3 0 - 42 0.111 - 45 0.0556 - 47 0.833 - - 44 2 1 0 - 45 1 - - 46 2 1 0 - 45 1 - - 47 28 11 0 - 7 0.107 - 8 0.0357 - 13 0.107 - 14 0.0357 - 31 0.179 - 32 0.0357 - 37 0.0357 - 41 0.0714 - 42 0.0357 - 45 0.0714 - 47 0.286 - - 49 12 5 0 - 2 0.167 - 13 0.167 - 35 0.0833 - 41 0.0833 - 47 0.5 - - 55 612 13 0 - 2 0.126 - 4 0.00327 - 7 0.127 - 13 0.031 - 21 0.0261 - 28 0.00327 - 33 0.00163 - 37 0.00654 - 40 0.00163 - 41 0.0392 - 42 0.018 - 45 0.049 - 47 0.567 - - 57 50 8 0 - 2 0.02 - 7 0.02 - 14 0.02 - 15 0.02 - 41 0.08 - 42 0.02 - 45 0.02 - 47 0.8 - - 58 106 7 0 - 2 0.0755 - 13 0.00943 - 41 0.00943 - 42 0.00943 - 45 0.066 - 46 0.00943 - 47 0.821 - - 62 14 4 0 - 2 0.286 - 9 0.0714 - 21 0.0714 - 47 0.571 - - 64 6 4 0 - 8 0.167 - 19 0.167 - 45 0.167 - 47 0.5 - - 69 196 17 0 - 2 0.0153 - 3 0.0051 - 4 0.0102 - 7 0.0408 - 8 0.0051 - 13 0.189 - 14 0.204 - 15 0.189 - 16 0.0051 - 19 0.0051 - 21 0.0102 - 33 0.0051 - 34 0.168 - 35 0.0663 - 41 0.0714 - 45 0.0051 - 47 0.0051 - - 58 579 32 8 - 0 0.00173 - 2 0.0311 - 3 0.00864 - 4 0.0155 - 7 0.0138 - 8 0.019 - 9 0.00345 - 10 0.00173 - 11 0.00173 - 13 0.337 - 14 0.162 - 15 0.0725 - 16 0.00345 - 18 0.00345 - 19 0.0104 - 21 0.154 - 22 0.00518 - 23 0.00173 - 24 0.00173 - 28 0.00345 - 29 0.00345 - 30 0.00345 - 31 0.0173 - 32 0.00345 - 33 0.00864 - 34 0.00691 - 35 0.00345 - 37 0.00345 - 41 0.0691 - 42 0.00173 - 46 0.0242 - 47 0.00345 - - 41 32 9 0 - 2 0.0312 - 3 0.0312 - 13 0.25 - 14 0.0312 - 21 0.0625 - 32 0.0312 - 41 0.156 - 46 0.375 - 47 0.0312 - - 42 3 3 0 - 21 0.333 - 41 0.333 - 47 0.333 - - 45 95 13 0 - 2 0.0421 - 4 0.0316 - 7 0.0211 - 8 0.0211 - 13 0.368 - 14 0.158 - 15 0.0526 - 19 0.0105 - 21 0.168 - 31 0.0316 - 33 0.0105 - 37 0.0105 - 41 0.0737 - - 55 212 26 0 - 0 0.00472 - 2 0.0425 - 3 0.0142 - 4 0.00943 - 7 0.00943 - 8 0.0236 - 9 0.00472 - 10 0.00472 - 11 0.00472 - 13 0.259 - 14 0.118 - 15 0.0283 - 19 0.0142 - 21 0.278 - 22 0.00943 - 23 0.00472 - 24 0.00472 - 28 0.00472 - 29 0.00943 - 30 0.00472 - 31 0.0236 - 32 0.00472 - 33 0.0189 - 37 0.00472 - 41 0.0849 - 46 0.00943 - - 57 3 3 0 - 2 0.333 - 21 0.333 - 42 0.333 - - 62 13 9 0 - 3 0.0769 - 7 0.0769 - 8 0.0769 - 9 0.0769 - 13 0.308 - 14 0.0769 - 21 0.154 - 31 0.0769 - 41 0.0769 - - 64 6 3 0 - 2 0.5 - 13 0.167 - 21 0.333 - - 69 207 17 0 - 4 0.0193 - 7 0.0145 - 8 0.0145 - 13 0.435 - 14 0.237 - 15 0.14 - 16 0.00966 - 18 0.00966 - 19 0.00966 - 21 0.029 - 22 0.00483 - 28 0.00483 - 30 0.00483 - 31 0.00483 - 34 0.0193 - 35 0.00966 - 41 0.0338 - - 62 6481 29 9 - 0 0.00108 - 2 0.0227 - 4 0.000926 - 7 0.0389 - 8 0.00463 - 9 0.00108 - 13 0.00339 - 14 0.000463 - 15 0.000309 - 19 0.000309 - 21 0.00355 - 22 0.000154 - 28 0.00123 - 29 0.01 - 30 0.00108 - 31 0.000771 - 32 0.0017 - 33 0.00324 - 34 0.00417 - 35 0.00108 - 37 0.00386 - 40 0.000154 - 41 0.0728 - 42 0.0151 - 43 0.000154 - 44 0.00278 - 45 0.186 - 46 0.00154 - 47 0.617 - - 41 2566 9 0 - 2 0.00857 - 7 0.000779 - 21 0.000779 - 41 0.0744 - 42 0.00468 - 44 0.00039 - 45 0.295 - 46 0.00234 - 47 0.613 - - 42 4 2 0 - 42 0.75 - 45 0.25 - - 45 3 1 0 - 7 1 - - 46 10 1 0 - 45 1 - - 47 3515 29 0 - 0 0.00199 - 2 0.0259 - 4 0.00171 - 7 0.0512 - 8 0.00853 - 9 0.00199 - 13 0.00597 - 14 0.000853 - 15 0.000569 - 19 0.000569 - 21 0.00455 - 22 0.000284 - 28 0.00228 - 29 0.0182 - 30 0.00199 - 31 0.00142 - 32 0.00199 - 33 0.00569 - 34 0.00768 - 35 0.00199 - 37 0.00683 - 40 0.000284 - 41 0.0688 - 42 0.0216 - 43 0.000284 - 44 0.00427 - 45 0.118 - 46 0.00114 - 47 0.634 - - 49 6 4 0 - 2 0.167 - 7 0.333 - 41 0.333 - 47 0.167 - - 55 102 6 0 - 2 0.049 - 13 0.0098 - 41 0.0098 - 42 0.0196 - 45 0.0098 - 47 0.902 - - 58 17 3 0 - 2 0.118 - 45 0.0588 - 47 0.824 - - 69 256 12 0 - 2 0.102 - 7 0.254 - 21 0.0195 - 29 0.00391 - 32 0.0156 - 33 0.00391 - 37 0.00391 - 41 0.141 - 42 0.0195 - 44 0.00781 - 45 0.0664 - 47 0.363 - - 64 2370 27 7 - 0 0.000844 - 2 0.0992 - 4 0.00127 - 7 0.0726 - 8 0.0207 - 9 0.00127 - 10 0.000422 - 13 0.00464 - 14 0.00338 - 19 0.000422 - 21 0.00759 - 22 0.00169 - 29 0.00338 - 30 0.000422 - 32 0.00211 - 33 0.00127 - 34 0.000422 - 35 0.000422 - 37 0.000844 - 40 0.000844 - 41 0.101 - 42 0.0122 - 43 0.000422 - 44 0.00127 - 45 0.11 - 46 0.00127 - 47 0.55 - - 41 1979 21 0 - 0 0.000505 - 2 0.099 - 4 0.00152 - 7 0.0753 - 10 0.000505 - 13 0.00152 - 14 0.000505 - 21 0.00707 - 29 0.00303 - 32 0.00202 - 33 0.00101 - 35 0.000505 - 37 0.000505 - 40 0.000505 - 41 0.111 - 42 0.0116 - 43 0.000505 - 44 0.00152 - 45 0.106 - 46 0.000505 - 47 0.576 - - 47 74 10 0 - 8 0.662 - 9 0.0405 - 13 0.0811 - 14 0.0541 - 19 0.0135 - 21 0.0405 - 22 0.0541 - 41 0.0135 - 46 0.027 - 47 0.0135 - - 49 6 4 0 - 32 0.167 - 41 0.333 - 45 0.333 - 47 0.167 - - 55 100 11 0 - 2 0.12 - 7 0.13 - 13 0.01 - 14 0.01 - 21 0.01 - 29 0.02 - 40 0.01 - 41 0.11 - 42 0.03 - 45 0.08 - 47 0.47 - - 58 68 6 0 - 2 0.132 - 7 0.0147 - 41 0.0441 - 42 0.0147 - 45 0.118 - 47 0.676 - - 62 3 2 0 - 2 0.333 - 45 0.667 - - 69 121 13 0 - 0 0.00826 - 2 0.116 - 7 0.0496 - 13 0.00826 - 14 0.0165 - 30 0.00826 - 33 0.00826 - 34 0.00826 - 37 0.00826 - 41 0.00826 - 42 0.00826 - 45 0.231 - 47 0.521 - - 65 8 2 0 - 45 0.5 - 47 0.5 - - 66 35 6 1 - 2 0.0571 - 21 0.286 - 41 0.0286 - 42 0.2 - 44 0.0286 - 47 0.4 - - 47 3 2 0 - 2 0.667 - 42 0.333 - - 67 6 2 0 - 45 0.667 - 47 0.333 - - 68 21 11 0 - 7 0.0476 - 13 0.0476 - 14 0.0476 - 19 0.0952 - 21 0.0476 - 28 0.0476 - 31 0.0476 - 41 0.0476 - 42 0.0476 - 45 0.0952 - 47 0.429 - - 69 90079 42 2 - 0 0.00829 - 1 0.000155 - 2 0.00168 - 3 0.00775 - 4 0.0133 - 5 0.00924 - 6 0.000144 - 7 0.0348 - 8 0.0152 - 9 0.000844 - 10 0.000544 - 12 0.000444 - 13 0.201 - 14 0.151 - 15 0.13 - 16 0.00602 - 18 0.0014 - 19 0.154 - 20 0.000144 - 21 0.0443 - 22 0.000366 - 23 5.55e-05 - 24 0.00124 - 26 0.00173 - 27 2.22e-05 - 28 0.00959 - 29 0.0139 - 30 0.00948 - 31 0.0174 - 32 0.00625 - 33 0.00968 - 34 0.0385 - 35 0.0187 - 37 0.00109 - 40 9.99e-05 - 41 0.0694 - 42 0.00417 - 43 0.00219 - 44 0.000244 - 45 0.00562 - 46 0.0036 - 47 0.00728 - - 41 4 2 0 - 13 0.75 - 15 0.25 - - 69 6 5 0 - 13 0.167 - 14 0.333 - 34 0.167 - 41 0.167 - 46 0.167 - - 74 22 8 0 - 2 0.0909 - 5 0.0455 - 13 0.0455 - 18 0.0455 - 41 0.545 - 42 0.0455 - 45 0.0909 - 47 0.0909 - -63 79666 1 0 - 47 1 - -64 56433 41 26 - 0 0.0151 - 1 3.54e-05 - 2 0.021 - 3 0.00828 - 4 0.00434 - 5 7.09e-05 - 6 3.54e-05 - 7 0.0226 - 8 0.0251 - 9 0.00383 - 10 0.000656 - 12 3.54e-05 - 13 0.178 - 14 0.1 - 15 0.0189 - 16 0.00159 - 17 0.000106 - 18 0.000213 - 19 0.00564 - 21 0.0233 - 22 0.00184 - 24 0.00365 - 26 0.00124 - 28 0.0339 - 29 0.164 - 30 0.0194 - 31 0.0203 - 32 0.0433 - 33 0.0486 - 34 3.54e-05 - 35 0.000284 - 36 1.77e-05 - 37 8.86e-05 - 40 7.09e-05 - 41 0.155 - 42 0.0084 - 43 0.000939 - 44 0.00119 - 45 0.0125 - 46 0.0073 - 47 0.0483 - - 2 17 8 0 - 7 0.176 - 13 0.0588 - 22 0.0588 - 28 0.176 - 30 0.0588 - 41 0.294 - 46 0.0588 - 47 0.118 - - 4 202 17 0 - 0 0.0891 - 2 0.0594 - 3 0.0149 - 8 0.00495 - 13 0.144 - 14 0.00495 - 21 0.0149 - 24 0.0099 - 28 0.0743 - 29 0.342 - 30 0.0396 - 31 0.0347 - 32 0.099 - 33 0.0446 - 41 0.0149 - 42 0.00495 - 45 0.00495 - - 7 10218 35 1 - 0 0.0262 - 2 0.0361 - 3 0.00861 - 4 0.000587 - 7 0.0236 - 8 0.0418 - 9 0.00803 - 10 0.000685 - 12 9.79e-05 - 13 0.141 - 14 0.0686 - 15 0.0234 - 16 0.00147 - 18 0.000294 - 19 0.00832 - 21 0.065 - 22 0.00431 - 24 0.00528 - 26 0.000391 - 28 0.0397 - 29 0.102 - 30 0.0302 - 31 0.0349 - 32 0.0379 - 33 0.0506 - 34 9.79e-05 - 35 0.00108 - 37 9.79e-05 - 41 0.11 - 42 0.00851 - 43 0.00127 - 44 0.00137 - 45 0.019 - 46 0.00617 - 47 0.0931 - - 7 48 15 0 - 0 0.0208 - 8 0.0208 - 13 0.125 - 14 0.125 - 18 0.0208 - 21 0.104 - 28 0.0625 - 29 0.0208 - 30 0.0417 - 32 0.0208 - 33 0.0625 - 41 0.229 - 42 0.0417 - 46 0.0208 - 47 0.0833 - - 12 1 1 0 - 42 1 - - 13 8 7 0 - 2 0.125 - 7 0.125 - 8 0.125 - 13 0.25 - 14 0.125 - 21 0.125 - 30 0.125 - - 15 14 1 0 - 47 1 - - 21 385 23 4 - 0 0.0182 - 2 0.0779 - 3 0.0104 - 4 0.0026 - 7 0.0545 - 8 0.0234 - 13 0.0909 - 14 0.0649 - 15 0.013 - 19 0.0104 - 21 0.0571 - 24 0.013 - 28 0.0234 - 29 0.013 - 30 0.0156 - 31 0.0312 - 32 0.0026 - 33 0.0026 - 41 0.249 - 42 0.026 - 45 0.0416 - 46 0.013 - 47 0.145 - - 7 246 21 0 - 2 0.0813 - 3 0.0122 - 7 0.061 - 8 0.0325 - 13 0.0854 - 14 0.061 - 15 0.0163 - 19 0.0122 - 21 0.0285 - 24 0.00407 - 28 0.00813 - 29 0.0122 - 30 0.0122 - 31 0.0163 - 32 0.00407 - 33 0.00407 - 41 0.297 - 42 0.0407 - 45 0.0407 - 46 0.0203 - 47 0.15 - - 21 13 8 0 - 2 0.0769 - 7 0.0769 - 8 0.0769 - 13 0.231 - 14 0.154 - 21 0.231 - 29 0.0769 - 41 0.0769 - - 47 118 18 0 - 0 0.0508 - 2 0.0678 - 3 0.00847 - 4 0.00847 - 7 0.0424 - 13 0.0932 - 14 0.0593 - 15 0.00847 - 19 0.00847 - 21 0.102 - 24 0.0339 - 28 0.0508 - 29 0.00847 - 30 0.0254 - 31 0.0678 - 41 0.178 - 45 0.0424 - 47 0.144 - - 71 5 5 0 - 2 0.2 - 14 0.2 - 28 0.2 - 45 0.2 - 47 0.2 - - 26 2 1 0 - 30 1 - - 34 10 5 0 - 2 0.1 - 13 0.4 - 14 0.1 - 41 0.2 - 47 0.2 - - 35 5 2 0 - 2 0.4 - 47 0.6 - - 41 8 5 0 - 8 0.25 - 13 0.375 - 14 0.125 - 28 0.125 - 33 0.125 - - 44 5 4 0 - 2 0.2 - 8 0.4 - 14 0.2 - 30 0.2 - - 45 26 7 0 - 2 0.0385 - 13 0.0769 - 14 0.0769 - 28 0.0769 - 29 0.269 - 33 0.192 - 41 0.269 - - 47 27924 40 25 - 0 0.0152 - 1 3.58e-05 - 2 0.0212 - 3 0.00834 - 4 0.00437 - 5 7.16e-05 - 6 3.58e-05 - 7 0.0219 - 8 0.0252 - 9 0.0038 - 10 0.000573 - 12 3.58e-05 - 13 0.18 - 14 0.1 - 15 0.0191 - 16 0.00161 - 17 0.000107 - 18 0.000215 - 19 0.00569 - 21 0.0165 - 22 0.00175 - 24 0.00369 - 26 0.00125 - 28 0.0342 - 29 0.166 - 30 0.0196 - 31 0.0206 - 32 0.0438 - 33 0.0491 - 34 3.58e-05 - 35 0.000179 - 37 7.16e-05 - 40 7.16e-05 - 41 0.156 - 42 0.00849 - 43 0.000931 - 44 0.00111 - 45 0.0122 - 46 0.00734 - 47 0.0488 - - 2 12 7 0 - 7 0.25 - 13 0.0833 - 22 0.0833 - 28 0.25 - 30 0.0833 - 41 0.0833 - 47 0.167 - - 4 201 17 0 - 0 0.0896 - 2 0.0597 - 3 0.0149 - 8 0.00498 - 13 0.144 - 14 0.00498 - 21 0.00995 - 24 0.00995 - 28 0.0746 - 29 0.343 - 30 0.0398 - 31 0.0348 - 32 0.0995 - 33 0.0448 - 41 0.0149 - 42 0.00498 - 45 0.00498 - - 7 9753 35 0 - 0 0.0275 - 2 0.0378 - 3 0.00892 - 4 0.000615 - 7 0.0198 - 8 0.0437 - 9 0.00841 - 10 0.000513 - 12 0.000103 - 13 0.146 - 14 0.0687 - 15 0.0245 - 16 0.00154 - 18 0.000308 - 19 0.00872 - 21 0.0321 - 22 0.00451 - 24 0.00554 - 26 0.00041 - 28 0.0416 - 29 0.107 - 30 0.0317 - 31 0.0366 - 32 0.0397 - 33 0.053 - 34 0.000103 - 35 0.000513 - 37 0.000103 - 41 0.115 - 42 0.00892 - 43 0.00133 - 44 0.00113 - 45 0.0199 - 46 0.00646 - 47 0.0975 - - 12 1 1 0 - 42 1 - - 13 7 6 0 - 2 0.143 - 8 0.143 - 13 0.286 - 14 0.143 - 21 0.143 - 30 0.143 - - 15 14 1 0 - 47 1 - - 21 367 23 0 - 0 0.0191 - 2 0.0817 - 3 0.0109 - 4 0.00272 - 7 0.0572 - 8 0.0245 - 13 0.0899 - 14 0.0654 - 15 0.0136 - 19 0.0109 - 21 0.0191 - 24 0.0136 - 28 0.0245 - 29 0.0136 - 30 0.0163 - 31 0.0327 - 32 0.00272 - 33 0.00272 - 41 0.262 - 42 0.0272 - 45 0.0436 - 46 0.0136 - 47 0.153 - - 26 2 1 0 - 30 1 - - 34 10 5 0 - 2 0.1 - 13 0.4 - 14 0.1 - 41 0.2 - 47 0.2 - - 35 4 2 0 - 2 0.25 - 47 0.75 - - 41 2 2 0 - 28 0.5 - 33 0.5 - - 44 5 4 0 - 2 0.2 - 8 0.4 - 14 0.2 - 30 0.2 - - 45 24 7 0 - 2 0.0417 - 13 0.0833 - 14 0.0833 - 28 0.0833 - 29 0.292 - 33 0.208 - 41 0.208 - - 49 130 21 0 - 0 0.0385 - 2 0.0385 - 7 0.00769 - 8 0.0308 - 13 0.0923 - 14 0.0385 - 15 0.00769 - 19 0.00769 - 21 0.0385 - 24 0.00769 - 28 0.00769 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.00769 - 41 0.369 - 42 0.0615 - 44 0.00769 - 45 0.0308 - 46 0.0154 - 47 0.146 - - 55 50 13 0 - 2 0.02 - 7 0.04 - 13 0.14 - 14 0.08 - 15 0.06 - 21 0.04 - 29 0.1 - 30 0.02 - 31 0.04 - 33 0.12 - 41 0.2 - 42 0.02 - 47 0.12 - - 57 13 9 0 - 8 0.0769 - 13 0.231 - 14 0.154 - 29 0.0769 - 31 0.0769 - 41 0.154 - 42 0.0769 - 46 0.0769 - 47 0.0769 - - 62 7901 29 0 - 0 0.00253 - 2 0.000506 - 3 0.00797 - 4 0.00367 - 7 0.00101 - 8 0.0221 - 9 0.0024 - 10 0.00101 - 13 0.172 - 14 0.078 - 15 0.00848 - 16 0.000127 - 17 0.000253 - 18 0.000127 - 19 0.00329 - 21 0.00633 - 22 0.000127 - 24 0.000759 - 28 0.0291 - 29 0.424 - 30 0.0182 - 31 0.0151 - 32 0.0938 - 33 0.0919 - 41 0.0103 - 42 0.00101 - 43 0.000506 - 45 0.00165 - 46 0.00354 - - 64 337 24 0 - 0 0.0326 - 2 0.0089 - 4 0.00593 - 7 0.0386 - 8 0.0326 - 13 0.131 - 14 0.0504 - 15 0.0089 - 19 0.0119 - 21 0.00297 - 22 0.00297 - 24 0.0119 - 26 0.00297 - 28 0.0801 - 29 0.285 - 30 0.0178 - 31 0.0148 - 32 0.0475 - 33 0.107 - 41 0.0623 - 42 0.0089 - 44 0.00297 - 45 0.0178 - 47 0.0148 - - 66 31 12 0 - 2 0.0645 - 7 0.0323 - 9 0.0645 - 13 0.226 - 14 0.0323 - 15 0.0645 - 18 0.0323 - 28 0.0323 - 29 0.0323 - 31 0.0968 - 41 0.0968 - 47 0.226 - - 68 2 2 0 - 8 0.5 - 47 0.5 - - 70 36 15 0 - 0 0.0278 - 2 0.0833 - 7 0.167 - 13 0.0278 - 19 0.0278 - 24 0.0278 - 28 0.111 - 29 0.0278 - 30 0.0278 - 31 0.0278 - 32 0.111 - 33 0.139 - 42 0.0278 - 45 0.0556 - 47 0.111 - - 71 1934 30 0 - 0 0.0274 - 2 0.0398 - 3 0.015 - 4 0.000517 - 7 0.0729 - 8 0.0217 - 9 0.00103 - 10 0.00103 - 13 0.171 - 14 0.0693 - 15 0.0274 - 18 0.000517 - 19 0.00982 - 21 0.0274 - 22 0.000517 - 24 0.0062 - 26 0.0031 - 28 0.06 - 29 0.0186 - 30 0.0129 - 31 0.0202 - 32 0.0119 - 33 0.0186 - 40 0.00103 - 41 0.204 - 42 0.014 - 44 0.00155 - 45 0.0264 - 46 0.0114 - 47 0.105 - - 72 6740 35 0 - 0 0.00608 - 1 0.000148 - 2 0.0113 - 3 0.00653 - 4 0.012 - 5 0.000297 - 6 0.000148 - 7 0.0323 - 8 0.00445 - 9 0.000148 - 10 0.000148 - 13 0.241 - 14 0.19 - 15 0.0223 - 16 0.00415 - 17 0.000148 - 19 0.00282 - 21 0.00415 - 22 0.000148 - 24 0.00267 - 26 0.00356 - 28 0.02 - 29 0.00341 - 30 0.00564 - 31 0.00356 - 32 0.0046 - 33 0.00401 - 37 0.000148 - 41 0.368 - 42 0.012 - 43 0.00134 - 44 0.00208 - 45 0.00712 - 46 0.0111 - 47 0.0126 - - 73 321 18 0 - 0 0.00312 - 2 0.0125 - 3 0.00935 - 4 0.00623 - 8 0.00623 - 13 0.424 - 14 0.137 - 15 0.0343 - 16 0.00312 - 28 0.0125 - 30 0.00623 - 31 0.00312 - 33 0.00623 - 41 0.277 - 42 0.0187 - 44 0.00312 - 45 0.00935 - 46 0.028 - - 74 14 5 0 - 7 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - - 49 130 21 3 - 0 0.0385 - 2 0.0385 - 7 0.00769 - 8 0.0308 - 13 0.0923 - 14 0.0385 - 15 0.00769 - 19 0.00769 - 21 0.0385 - 24 0.00769 - 28 0.00769 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.00769 - 41 0.369 - 42 0.0615 - 44 0.00769 - 45 0.0308 - 46 0.0154 - 47 0.146 - - 21 2 2 0 - 30 0.5 - 31 0.5 - - 71 10 6 0 - 8 0.1 - 14 0.1 - 41 0.3 - 42 0.2 - 46 0.1 - 47 0.2 - - 72 7 5 0 - 0 0.429 - 21 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 55 50 13 0 - 2 0.02 - 7 0.04 - 13 0.14 - 14 0.08 - 15 0.06 - 21 0.04 - 29 0.1 - 30 0.02 - 31 0.04 - 33 0.12 - 41 0.2 - 42 0.02 - 47 0.12 - - 57 13 9 0 - 8 0.0769 - 13 0.231 - 14 0.154 - 29 0.0769 - 31 0.0769 - 41 0.154 - 42 0.0769 - 46 0.0769 - 47 0.0769 - - 62 7950 30 0 - 0 0.00252 - 2 0.000503 - 3 0.00792 - 4 0.00365 - 7 0.00126 - 8 0.022 - 9 0.00289 - 10 0.00113 - 13 0.172 - 14 0.0776 - 15 0.00843 - 16 0.000126 - 17 0.000252 - 18 0.000126 - 19 0.00327 - 21 0.00654 - 22 0.000881 - 24 0.000755 - 28 0.0289 - 29 0.421 - 30 0.0181 - 31 0.015 - 32 0.0932 - 33 0.0913 - 37 0.000126 - 41 0.0102 - 42 0.00101 - 43 0.000629 - 45 0.00453 - 46 0.00365 - - 64 340 24 0 - 0 0.0324 - 2 0.00882 - 4 0.00588 - 7 0.0382 - 8 0.0324 - 13 0.129 - 14 0.05 - 15 0.00882 - 19 0.0118 - 21 0.0118 - 22 0.00294 - 24 0.0118 - 26 0.00294 - 28 0.0794 - 29 0.282 - 30 0.0176 - 31 0.0147 - 32 0.0471 - 33 0.106 - 41 0.0618 - 42 0.00882 - 44 0.00294 - 45 0.0176 - 47 0.0147 - - 66 31 12 0 - 2 0.0645 - 7 0.0323 - 9 0.0645 - 13 0.226 - 14 0.0323 - 15 0.0645 - 18 0.0323 - 28 0.0323 - 29 0.0323 - 31 0.0968 - 41 0.0968 - 47 0.226 - - 68 2 2 0 - 8 0.5 - 47 0.5 - - 70 36 15 0 - 0 0.0278 - 2 0.0833 - 7 0.167 - 13 0.0278 - 19 0.0278 - 24 0.0278 - 28 0.111 - 29 0.0278 - 30 0.0278 - 31 0.0278 - 32 0.111 - 33 0.139 - 42 0.0278 - 45 0.0556 - 47 0.111 - - 71 1950 30 0 - 0 0.0272 - 2 0.04 - 3 0.0149 - 4 0.000513 - 7 0.0723 - 8 0.0215 - 9 0.00103 - 10 0.00205 - 13 0.169 - 14 0.0687 - 15 0.0272 - 18 0.000513 - 19 0.00974 - 21 0.0338 - 22 0.000513 - 24 0.00615 - 26 0.00308 - 28 0.0595 - 29 0.0185 - 30 0.0128 - 31 0.02 - 32 0.0118 - 33 0.0185 - 40 0.00103 - 41 0.202 - 42 0.0138 - 44 0.00154 - 45 0.0262 - 46 0.0113 - 47 0.105 - - 72 6757 36 0 - 0 0.00607 - 1 0.000148 - 2 0.0112 - 3 0.00651 - 4 0.0121 - 5 0.000296 - 6 0.000148 - 7 0.0323 - 8 0.00474 - 9 0.000148 - 10 0.000148 - 13 0.24 - 14 0.19 - 15 0.0222 - 16 0.00414 - 17 0.000148 - 19 0.00281 - 21 0.00503 - 22 0.000148 - 24 0.00266 - 26 0.00355 - 28 0.02 - 29 0.0034 - 30 0.00562 - 31 0.00355 - 32 0.00459 - 33 0.004 - 36 0.000148 - 37 0.000148 - 41 0.367 - 42 0.012 - 43 0.00133 - 44 0.00237 - 45 0.00755 - 46 0.0111 - 47 0.0126 - - 73 321 18 0 - 0 0.00312 - 2 0.0125 - 3 0.00935 - 4 0.00623 - 8 0.00623 - 13 0.424 - 14 0.137 - 15 0.0343 - 16 0.00312 - 28 0.0125 - 30 0.00623 - 31 0.00312 - 33 0.00623 - 41 0.277 - 42 0.0187 - 44 0.00312 - 45 0.00935 - 46 0.028 - - 74 14 5 0 - 7 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - -65 683 22 14 - 0 0.00878 - 2 0.0293 - 7 0.00293 - 8 0.00586 - 9 0.00146 - 12 0.00146 - 13 0.0293 - 14 0.00732 - 15 0.00146 - 21 0.0351 - 28 0.00439 - 31 0.00146 - 34 0.00146 - 35 0.124 - 37 0.113 - 40 0.00586 - 41 0.0527 - 42 0.0366 - 44 0.00293 - 45 0.133 - 46 0.00293 - 47 0.398 - - 2 12 3 0 - 0 0.0833 - 44 0.0833 - 47 0.833 - - 21 11 3 0 - 0 0.0909 - 45 0.0909 - 47 0.818 - - 41 14 6 0 - 8 0.214 - 13 0.429 - 15 0.0714 - 21 0.143 - 31 0.0714 - 37 0.0714 - - 45 28 3 0 - 41 0.143 - 42 0.0357 - 47 0.821 - - 46 2 1 0 - 41 1 - - 47 198 10 1 - 0 0.00505 - 2 0.0202 - 7 0.00505 - 21 0.00505 - 28 0.00505 - 40 0.0101 - 41 0.0455 - 42 0.0606 - 45 0.157 - 47 0.687 - - 45 27 3 0 - 41 0.111 - 42 0.037 - 47 0.852 - - 58 5 3 0 - 13 0.2 - 28 0.2 - 37 0.6 - - 62 7 4 0 - 14 0.143 - 35 0.429 - 37 0.286 - 47 0.143 - - 64 12 4 0 - 0 0.0833 - 42 0.0833 - 45 0.25 - 47 0.583 - - 65 3 3 0 - 2 0.333 - 41 0.333 - 42 0.333 - - 67 184 13 0 - 0 0.00543 - 2 0.0109 - 8 0.00543 - 9 0.00543 - 12 0.00543 - 13 0.0652 - 14 0.0217 - 21 0.0489 - 34 0.00543 - 35 0.429 - 37 0.37 - 41 0.0217 - 45 0.00543 - - 69 1 1 0 - 0 1 - - 71 83 9 0 - 2 0.0843 - 21 0.0723 - 28 0.012 - 41 0.0723 - 42 0.0361 - 44 0.012 - 45 0.301 - 46 0.012 - 47 0.398 - - 72 108 9 0 - 2 0.0556 - 7 0.00926 - 21 0.0556 - 40 0.0185 - 41 0.0833 - 42 0.0648 - 45 0.278 - 46 0.00926 - 47 0.426 - -66 9695 38 20 - 0 0.00743 - 2 0.00918 - 3 0.0032 - 4 0.00196 - 5 0.000103 - 6 0.000103 - 7 0.0099 - 8 0.0141 - 9 0.00124 - 10 0.000103 - 12 0.00258 - 13 0.0709 - 14 0.033 - 15 0.00949 - 16 0.000413 - 18 0.000309 - 19 0.00825 - 21 0.0228 - 22 0.000825 - 24 0.00175 - 26 0.000413 - 28 0.00495 - 29 0.00155 - 30 0.00196 - 31 0.00495 - 32 0.00155 - 33 0.00134 - 34 0.000413 - 35 0.000722 - 37 0.000206 - 40 0.00144 - 41 0.158 - 42 0.0033 - 43 0.000619 - 44 0.000309 - 45 0.108 - 46 0.14 - 47 0.372 - - 0 88 14 2 - 2 0.227 - 3 0.0227 - 4 0.0114 - 7 0.227 - 9 0.0227 - 13 0.114 - 14 0.0227 - 18 0.0114 - 21 0.205 - 31 0.0341 - 35 0.0114 - 41 0.0227 - 42 0.0114 - 47 0.0568 - - 47 34 7 0 - 2 0.235 - 4 0.0294 - 7 0.559 - 13 0.0588 - 21 0.0588 - 35 0.0294 - 41 0.0294 - - 55 54 12 0 - 2 0.222 - 3 0.037 - 7 0.0185 - 9 0.037 - 13 0.148 - 14 0.037 - 18 0.0185 - 21 0.296 - 31 0.0556 - 41 0.0185 - 42 0.0185 - 47 0.0926 - - 2 31 3 0 - 41 0.0323 - 45 0.0323 - 47 0.935 - - 12 26 8 0 - 2 0.308 - 13 0.154 - 15 0.0769 - 21 0.231 - 35 0.0385 - 37 0.0385 - 41 0.0769 - 47 0.0769 - - 21 7 4 0 - 12 0.143 - 19 0.286 - 42 0.143 - 47 0.429 - - 33 4 2 0 - 21 0.75 - 47 0.25 - - 40 9 5 0 - 8 0.111 - 13 0.556 - 24 0.111 - 30 0.111 - 42 0.111 - - 41 1398 28 4 - 0 0.0122 - 2 0.000715 - 3 0.0179 - 4 0.00787 - 5 0.000715 - 6 0.000715 - 7 0.0114 - 8 0.0858 - 9 0.00572 - 10 0.000715 - 12 0.00143 - 13 0.408 - 14 0.192 - 15 0.0451 - 16 0.00286 - 19 0.0258 - 21 0.0672 - 22 0.00501 - 24 0.0114 - 26 0.00215 - 28 0.0315 - 29 0.00858 - 30 0.0107 - 31 0.0222 - 32 0.00858 - 33 0.00787 - 35 0.000715 - 43 0.00429 - - 46 1150 27 0 - 0 0.0139 - 3 0.0104 - 4 0.00957 - 5 0.00087 - 6 0.00087 - 7 0.013 - 8 0.0957 - 9 0.00522 - 10 0.00087 - 12 0.00174 - 13 0.415 - 14 0.17 - 15 0.0435 - 16 0.00348 - 19 0.0304 - 21 0.0661 - 22 0.00435 - 24 0.0139 - 26 0.00261 - 28 0.0322 - 29 0.0087 - 30 0.013 - 31 0.0235 - 32 0.00957 - 33 0.00609 - 35 0.00087 - 43 0.00435 - - 49 7 6 0 - 3 0.143 - 8 0.143 - 13 0.143 - 14 0.143 - 15 0.143 - 29 0.286 - - 57 6 3 0 - 13 0.333 - 14 0.167 - 21 0.5 - - 69 231 17 0 - 0 0.00433 - 2 0.00433 - 3 0.0519 - 7 0.00433 - 8 0.039 - 9 0.00866 - 13 0.385 - 14 0.303 - 15 0.0519 - 19 0.00433 - 21 0.0606 - 22 0.00866 - 28 0.0303 - 31 0.0173 - 32 0.00433 - 33 0.0173 - 43 0.00433 - - 45 1037 7 1 - 2 0.00193 - 34 0.000964 - 41 0.000964 - 42 0.00193 - 44 0.000964 - 46 0.000964 - 47 0.992 - - 69 1 1 0 - 46 1 - - 46 1179 3 0 - 40 0.0119 - 41 0.978 - 46 0.0102 - - 47 2027 21 10 - 2 0.0143 - 7 0.0192 - 9 0.000987 - 13 0.00345 - 14 0.000493 - 15 0.000987 - 18 0.000493 - 21 0.00691 - 28 0.000493 - 29 0.000493 - 31 0.00148 - 32 0.000493 - 34 0.000987 - 35 0.00148 - 37 0.000493 - 41 0.0276 - 42 0.0074 - 44 0.000493 - 45 0.00296 - 46 0.0183 - 47 0.89 - - 0 52 11 0 - 2 0.115 - 7 0.385 - 9 0.0385 - 13 0.0577 - 14 0.0192 - 18 0.0192 - 21 0.154 - 31 0.0577 - 35 0.0192 - 41 0.0385 - 47 0.0962 - - 2 30 2 0 - 45 0.0333 - 47 0.967 - - 12 20 8 0 - 2 0.25 - 13 0.2 - 15 0.1 - 21 0.15 - 35 0.05 - 37 0.05 - 41 0.1 - 47 0.1 - - 45 1033 4 0 - 2 0.000968 - 34 0.000968 - 42 0.00194 - 47 0.996 - - 49 86 6 0 - 2 0.151 - 28 0.0116 - 42 0.0116 - 44 0.0116 - 45 0.0116 - 47 0.802 - - 51 6 2 0 - 42 0.333 - 47 0.667 - - 55 11 3 0 - 2 0.182 - 42 0.364 - 47 0.455 - - 57 83 5 0 - 2 0.012 - 7 0.012 - 42 0.012 - 45 0.012 - 47 0.952 - - 62 456 3 0 - 34 0.00219 - 42 0.00439 - 47 0.993 - - 69 198 10 0 - 7 0.0909 - 21 0.0152 - 29 0.00505 - 32 0.00505 - 35 0.00505 - 41 0.253 - 42 0.00505 - 45 0.0101 - 46 0.187 - 47 0.424 - - 48 31 3 0 - 2 0.0323 - 21 0.129 - 47 0.839 - - 49 98 8 0 - 2 0.163 - 21 0.0204 - 28 0.0102 - 41 0.0714 - 42 0.0102 - 44 0.0102 - 45 0.0102 - 47 0.704 - - 51 14 3 0 - 42 0.143 - 45 0.571 - 47 0.286 - - 55 97 11 4 - 0 0.567 - 2 0.0309 - 8 0.0103 - 12 0.227 - 15 0.0103 - 21 0.0103 - 33 0.0103 - 42 0.0412 - 45 0.0309 - 46 0.0103 - 47 0.0515 - - 41 5 4 0 - 2 0.2 - 15 0.2 - 45 0.4 - 47 0.2 - - 47 5 2 0 - 2 0.2 - 42 0.8 - - 57 1 1 0 - 33 1 - - 69 83 8 0 - 0 0.639 - 2 0.012 - 8 0.012 - 12 0.265 - 21 0.012 - 45 0.012 - 46 0.012 - 47 0.0361 - - 57 99 10 3 - 2 0.0303 - 7 0.0101 - 8 0.0101 - 13 0.0202 - 14 0.0101 - 21 0.0404 - 41 0.0606 - 42 0.0101 - 45 0.0101 - 47 0.798 - - 0 9 3 0 - 21 0.333 - 42 0.111 - 47 0.556 - - 41 8 2 0 - 41 0.625 - 47 0.375 - - 69 77 7 0 - 2 0.026 - 7 0.013 - 13 0.013 - 14 0.013 - 21 0.013 - 45 0.013 - 47 0.909 - - 58 6 5 0 - 8 0.167 - 13 0.333 - 14 0.167 - 15 0.167 - 19 0.167 - - 62 1478 6 2 - 2 0.00271 - 34 0.000677 - 41 0.000677 - 42 0.00135 - 45 0.688 - 47 0.306 - - 41 1357 6 0 - 2 0.00295 - 34 0.000737 - 41 0.000737 - 42 0.00147 - 45 0.739 - 47 0.255 - - 69 111 2 0 - 45 0.036 - 47 0.964 - - 64 11 5 0 - 2 0.0909 - 13 0.0909 - 41 0.0909 - 45 0.0909 - 47 0.636 - - 65 9 3 0 - 42 0.111 - 45 0.667 - 47 0.222 - - 69 2030 25 4 - 2 0.000493 - 3 0.00197 - 4 0.00345 - 7 0.00985 - 8 0.0064 - 13 0.0404 - 14 0.0227 - 15 0.0113 - 18 0.000493 - 19 0.0202 - 21 0.036 - 22 0.000493 - 26 0.000493 - 28 0.000985 - 29 0.000985 - 30 0.00148 - 31 0.00542 - 32 0.000985 - 33 0.000493 - 35 0.000493 - 41 0.146 - 42 0.000493 - 45 0.00148 - 46 0.645 - 47 0.0414 - - 41 2 2 0 - 19 0.5 - 47 0.5 - - 47 1970 23 0 - 3 0.00203 - 4 0.00355 - 7 0.00964 - 8 0.0066 - 13 0.0416 - 14 0.0228 - 15 0.0117 - 18 0.000508 - 19 0.0203 - 21 0.0315 - 22 0.000508 - 26 0.000508 - 28 0.00102 - 29 0.000508 - 30 0.00152 - 31 0.00558 - 32 0.00102 - 33 0.000508 - 35 0.000508 - 41 0.151 - 45 0.00152 - 46 0.665 - 47 0.0208 - - 58 2 1 0 - 21 1 - - 69 54 6 0 - 2 0.0185 - 7 0.0185 - 21 0.167 - 29 0.0185 - 42 0.0185 - 47 0.759 - -67 759 24 13 - 0 0.00527 - 2 0.0527 - 4 0.00132 - 7 0.00395 - 8 0.00264 - 9 0.00264 - 12 0.00264 - 13 0.0395 - 14 0.0145 - 15 0.00922 - 19 0.00922 - 21 0.0329 - 31 0.00132 - 33 0.00132 - 34 0.00264 - 35 0.215 - 37 0.182 - 40 0.00395 - 41 0.0461 - 42 0.0237 - 44 0.00527 - 45 0.0777 - 46 0.00132 - 47 0.264 - - 0 167 13 0 - 0 0.00599 - 2 0.0778 - 8 0.00599 - 13 0.0359 - 14 0.012 - 21 0.0359 - 35 0.15 - 37 0.228 - 40 0.00599 - 41 0.0659 - 42 0.0359 - 45 0.0958 - 47 0.246 - - 2 15 2 0 - 46 0.0667 - 47 0.933 - - 12 94 11 0 - 2 0.117 - 9 0.0106 - 13 0.0319 - 14 0.0106 - 21 0.0319 - 35 0.128 - 37 0.245 - 41 0.106 - 42 0.0106 - 45 0.0532 - 47 0.255 - - 14 2 1 0 - 45 1 - - 41 17 9 1 - 4 0.0588 - 7 0.0588 - 13 0.235 - 14 0.118 - 15 0.118 - 19 0.0588 - 21 0.235 - 31 0.0588 - 33 0.0588 - - 12 7 5 0 - 4 0.143 - 13 0.286 - 14 0.286 - 19 0.143 - 31 0.143 - - 45 6 5 0 - 2 0.167 - 7 0.167 - 42 0.167 - 44 0.333 - 47 0.167 - - 46 1 1 0 - 40 1 - - 47 342 18 10 - 0 0.00585 - 2 0.038 - 7 0.00292 - 8 0.00292 - 9 0.00292 - 12 0.00292 - 13 0.0351 - 14 0.0117 - 21 0.0263 - 34 0.00292 - 35 0.237 - 37 0.202 - 40 0.00292 - 41 0.0263 - 42 0.0263 - 44 0.00585 - 45 0.076 - 47 0.292 - - 0 148 13 0 - 0 0.00676 - 2 0.0338 - 8 0.00676 - 13 0.0405 - 14 0.00676 - 21 0.0338 - 35 0.169 - 37 0.257 - 40 0.00676 - 41 0.027 - 42 0.0405 - 45 0.0946 - 47 0.277 - - 2 14 1 0 - 47 1 - - 12 82 11 0 - 2 0.0854 - 9 0.0122 - 13 0.0366 - 14 0.0122 - 21 0.0366 - 35 0.146 - 37 0.28 - 41 0.0366 - 42 0.0122 - 45 0.0488 - 47 0.293 - - 14 2 1 0 - 45 1 - - 45 5 4 0 - 7 0.2 - 42 0.2 - 44 0.4 - 47 0.2 - - 49 5 2 0 - 14 0.2 - 47 0.8 - - 55 7 6 0 - 0 0.143 - 2 0.143 - 12 0.143 - 21 0.143 - 35 0.143 - 45 0.286 - - 57 6 2 0 - 37 0.167 - 47 0.833 - - 64 6 3 0 - 41 0.333 - 45 0.167 - 47 0.5 - - 69 56 7 0 - 13 0.0536 - 14 0.0179 - 34 0.0179 - 35 0.768 - 37 0.0714 - 45 0.0357 - 47 0.0357 - - 49 5 2 0 - 14 0.2 - 47 0.8 - - 55 10 7 0 - 0 0.1 - 2 0.1 - 12 0.1 - 15 0.3 - 21 0.1 - 35 0.1 - 45 0.2 - - 57 6 2 0 - 37 0.167 - 47 0.833 - - 64 8 4 0 - 2 0.125 - 41 0.25 - 45 0.25 - 47 0.375 - - 69 67 10 0 - 13 0.0597 - 14 0.0149 - 15 0.0299 - 19 0.0896 - 21 0.0299 - 34 0.0149 - 35 0.642 - 37 0.0597 - 45 0.0299 - 47 0.0299 - -68 1958 35 27 - 0 0.0827 - 1 0.00102 - 2 0.111 - 3 0.0133 - 4 0.0511 - 7 0.072 - 8 0.116 - 9 0.00358 - 13 0.15 - 14 0.0572 - 15 0.0465 - 16 0.000511 - 18 0.00715 - 19 0.00511 - 20 0.00409 - 21 0.0235 - 22 0.00102 - 24 0.00306 - 26 0.00562 - 27 0.000511 - 28 0.0225 - 29 0.00562 - 30 0.0163 - 31 0.0235 - 32 0.00358 - 33 0.0097 - 37 0.00153 - 40 0.00153 - 41 0.0914 - 42 0.0184 - 43 0.00153 - 44 0.00102 - 45 0.00919 - 46 0.00613 - 47 0.0337 - - 2 466 18 9 - 0 0.00429 - 3 0.0343 - 7 0.0172 - 8 0.193 - 9 0.00858 - 13 0.369 - 14 0.0687 - 15 0.122 - 16 0.00215 - 19 0.00215 - 21 0.0343 - 22 0.00215 - 30 0.00429 - 31 0.00429 - 37 0.00644 - 41 0.109 - 43 0.00644 - 46 0.0107 - - 7 1 1 0 - 37 1 - - 8 110 4 0 - 8 0.109 - 13 0.682 - 14 0.0182 - 15 0.191 - - 13 55 4 0 - 8 0.545 - 13 0.345 - 14 0.0727 - 41 0.0364 - - 14 10 2 0 - 8 0.2 - 13 0.8 - - 15 19 3 0 - 8 0.474 - 14 0.0526 - 15 0.474 - - 30 3 1 0 - 8 1 - - 47 253 17 0 - 3 0.0593 - 7 0.0316 - 8 0.119 - 9 0.0158 - 13 0.265 - 14 0.0988 - 15 0.107 - 16 0.00395 - 19 0.00395 - 21 0.0593 - 22 0.00395 - 30 0.00791 - 31 0.00791 - 37 0.00791 - 41 0.182 - 43 0.0119 - 46 0.0158 - - 48 3 2 0 - 0 0.333 - 8 0.667 - - 57 1 1 0 - 0 1 - - 4 9 5 0 - 0 0.222 - 7 0.444 - 13 0.111 - 41 0.111 - 45 0.111 - - 7 4 4 0 - 2 0.25 - 8 0.25 - 21 0.25 - 41 0.25 - - 8 194 20 4 - 0 0.00515 - 2 0.572 - 3 0.0103 - 4 0.0722 - 7 0.0619 - 8 0.067 - 13 0.0155 - 15 0.0155 - 18 0.0206 - 20 0.00515 - 21 0.00515 - 26 0.0103 - 28 0.0206 - 29 0.00515 - 30 0.0155 - 31 0.00515 - 33 0.0155 - 41 0.0464 - 42 0.0103 - 47 0.0206 - - 2 58 17 0 - 0 0.0172 - 2 0.0172 - 3 0.0345 - 4 0.172 - 7 0.121 - 8 0.155 - 13 0.0517 - 15 0.0345 - 18 0.0345 - 21 0.0172 - 28 0.069 - 29 0.0172 - 30 0.0345 - 31 0.0172 - 33 0.0345 - 41 0.103 - 47 0.069 - - 13 3 3 0 - 8 0.333 - 18 0.333 - 26 0.333 - - 41 18 9 0 - 4 0.222 - 7 0.222 - 8 0.0556 - 18 0.0556 - 26 0.0556 - 30 0.0556 - 33 0.0556 - 41 0.167 - 42 0.111 - - 47 111 4 0 - 2 0.973 - 7 0.00901 - 8 0.00901 - 15 0.00901 - - 13 182 19 3 - 0 0.00549 - 2 0.308 - 3 0.00549 - 4 0.11 - 7 0.137 - 8 0.132 - 9 0.00549 - 13 0.022 - 15 0.022 - 18 0.0165 - 20 0.011 - 26 0.011 - 28 0.0165 - 30 0.022 - 31 0.00549 - 32 0.011 - 33 0.011 - 41 0.132 - 47 0.0165 - - 2 103 19 0 - 0 0.00971 - 2 0.00971 - 3 0.00971 - 4 0.136 - 7 0.204 - 8 0.214 - 9 0.00971 - 13 0.0291 - 15 0.0194 - 18 0.0194 - 20 0.00971 - 26 0.0194 - 28 0.0291 - 30 0.0291 - 31 0.00971 - 32 0.00971 - 33 0.00971 - 41 0.204 - 47 0.0194 - - 41 17 10 0 - 4 0.294 - 7 0.176 - 8 0.0588 - 15 0.0588 - 18 0.0588 - 30 0.0588 - 32 0.0588 - 33 0.0588 - 41 0.118 - 47 0.0588 - - 47 51 2 0 - 2 0.98 - 13 0.0196 - - 14 21 6 2 - 2 0.476 - 4 0.143 - 8 0.0952 - 13 0.0952 - 33 0.0476 - 41 0.143 - - 2 7 4 0 - 4 0.429 - 8 0.143 - 33 0.143 - 41 0.286 - - 47 13 3 0 - 2 0.769 - 8 0.0769 - 13 0.154 - - 15 60 9 2 - 2 0.317 - 4 0.15 - 7 0.117 - 8 0.15 - 13 0.0167 - 15 0.133 - 20 0.0167 - 41 0.0333 - 47 0.0667 - - 2 31 7 0 - 4 0.226 - 7 0.194 - 8 0.258 - 13 0.0323 - 15 0.129 - 20 0.0323 - 47 0.129 - - 47 18 2 0 - 2 0.833 - 15 0.167 - - 21 16 5 1 - 0 0.188 - 2 0.5 - 13 0.125 - 21 0.125 - 42 0.0625 - - 48 3 1 0 - 0 1 - - 30 5 3 0 - 2 0.6 - 7 0.2 - 13 0.2 - - 41 124 16 4 - 3 0.0403 - 4 0.00806 - 8 0.29 - 9 0.00806 - 13 0.387 - 14 0.0887 - 15 0.0242 - 19 0.00806 - 21 0.0403 - 22 0.00806 - 26 0.00806 - 29 0.00806 - 30 0.0323 - 31 0.0161 - 33 0.00806 - 40 0.0242 - - 2 50 12 0 - 3 0.08 - 8 0.16 - 13 0.36 - 14 0.12 - 15 0.02 - 19 0.02 - 21 0.1 - 22 0.02 - 29 0.02 - 30 0.04 - 31 0.04 - 33 0.02 - - 13 22 3 0 - 4 0.0455 - 8 0.591 - 13 0.364 - - 46 5 3 0 - 8 0.2 - 13 0.2 - 40 0.6 - - 48 9 4 0 - 3 0.111 - 8 0.667 - 9 0.111 - 30 0.111 - - 42 11 6 0 - 4 0.0909 - 7 0.0909 - 8 0.273 - 13 0.364 - 15 0.0909 - 47 0.0909 - - 45 10 7 0 - 0 0.1 - 2 0.1 - 7 0.2 - 19 0.1 - 24 0.1 - 42 0.1 - 46 0.3 - - 46 9 4 0 - 8 0.222 - 27 0.111 - 32 0.111 - 41 0.556 - - 47 494 29 16 - 0 0.164 - 1 0.00202 - 2 0.00405 - 3 0.00405 - 4 0.0911 - 7 0.132 - 8 0.0891 - 9 0.00202 - 13 0.0587 - 14 0.0688 - 15 0.0202 - 18 0.0142 - 19 0.0081 - 20 0.0081 - 21 0.0121 - 24 0.00607 - 26 0.0101 - 28 0.0445 - 29 0.0101 - 30 0.0263 - 31 0.0425 - 32 0.00607 - 33 0.0182 - 41 0.0547 - 42 0.0243 - 44 0.00202 - 45 0.0081 - 46 0.00202 - 47 0.0668 - - 4 8 4 0 - 0 0.25 - 7 0.5 - 41 0.125 - 45 0.125 - - 8 71 19 0 - 0 0.0141 - 2 0.0141 - 3 0.0282 - 4 0.197 - 7 0.155 - 8 0.155 - 13 0.0423 - 15 0.0282 - 18 0.0563 - 20 0.0141 - 21 0.0141 - 26 0.0282 - 28 0.0563 - 29 0.0141 - 30 0.0423 - 31 0.0141 - 33 0.0423 - 42 0.0282 - 47 0.0563 - - 13 93 17 0 - 0 0.0108 - 2 0.0108 - 4 0.172 - 7 0.269 - 8 0.226 - 9 0.0108 - 15 0.043 - 18 0.0323 - 20 0.0215 - 26 0.0215 - 28 0.0323 - 30 0.043 - 31 0.0108 - 32 0.0215 - 33 0.0215 - 41 0.0215 - 47 0.0323 - - 14 4 2 0 - 4 0.75 - 33 0.25 - - 15 30 5 0 - 4 0.3 - 7 0.233 - 8 0.3 - 20 0.0333 - 47 0.133 - - 21 5 3 0 - 0 0.6 - 13 0.2 - 42 0.2 - - 45 6 5 0 - 0 0.167 - 7 0.333 - 19 0.167 - 24 0.167 - 42 0.167 - - 48 60 12 0 - 0 0.533 - 1 0.0167 - 4 0.0333 - 7 0.0333 - 13 0.05 - 14 0.0667 - 28 0.0333 - 29 0.0167 - 41 0.0833 - 42 0.0333 - 45 0.0167 - 47 0.0833 - - 49 34 12 0 - 0 0.206 - 7 0.0882 - 13 0.0882 - 14 0.147 - 21 0.0294 - 28 0.118 - 29 0.0294 - 30 0.0294 - 31 0.0294 - 41 0.147 - 42 0.0294 - 47 0.0588 - - 50 2 1 0 - 41 1 - - 55 61 17 0 - 0 0.246 - 4 0.0164 - 7 0.148 - 13 0.0328 - 14 0.131 - 19 0.0328 - 21 0.0328 - 26 0.0164 - 28 0.0656 - 30 0.0328 - 31 0.0328 - 32 0.0164 - 33 0.0328 - 41 0.0656 - 42 0.0492 - 44 0.0164 - 47 0.0328 - - 57 68 17 0 - 0 0.147 - 8 0.0147 - 13 0.191 - 14 0.147 - 15 0.0588 - 19 0.0147 - 21 0.0147 - 24 0.0147 - 28 0.0294 - 29 0.0294 - 30 0.0441 - 31 0.162 - 33 0.0147 - 41 0.0441 - 42 0.0147 - 45 0.0147 - 47 0.0441 - - 62 13 6 0 - 7 0.0769 - 14 0.0769 - 31 0.154 - 41 0.0769 - 46 0.0769 - 47 0.538 - - 64 10 8 0 - 0 0.1 - 8 0.1 - 13 0.2 - 24 0.1 - 28 0.1 - 31 0.2 - 42 0.1 - 47 0.1 - - 65 1 1 0 - 45 1 - - 69 17 5 0 - 0 0.353 - 13 0.0588 - 14 0.353 - 21 0.0588 - 41 0.176 - - 48 82 14 3 - 0 0.39 - 1 0.0122 - 2 0.0366 - 4 0.0488 - 7 0.0244 - 13 0.0366 - 14 0.0488 - 21 0.0488 - 28 0.0244 - 29 0.0122 - 41 0.171 - 42 0.0366 - 45 0.0488 - 47 0.061 - - 41 24 7 0 - 0 0.333 - 14 0.0417 - 21 0.0833 - 28 0.0417 - 41 0.333 - 45 0.0417 - 47 0.125 - - 46 2 1 0 - 45 1 - - 47 2 2 0 - 14 0.5 - 42 0.5 - - 49 40 14 1 - 0 0.175 - 2 0.025 - 4 0.05 - 7 0.075 - 13 0.075 - 14 0.125 - 21 0.05 - 28 0.1 - 29 0.025 - 30 0.025 - 31 0.025 - 41 0.175 - 42 0.025 - 47 0.05 - - 41 7 4 0 - 13 0.286 - 21 0.143 - 29 0.143 - 41 0.429 - - 50 4 1 0 - 41 1 - - 51 2 2 0 - 28 0.5 - 42 0.5 - - 52 1 1 0 - 45 1 - - 55 85 19 3 - 0 0.176 - 4 0.0118 - 7 0.106 - 13 0.0235 - 14 0.106 - 19 0.0235 - 21 0.0471 - 26 0.0118 - 28 0.0471 - 30 0.0235 - 31 0.0235 - 32 0.0118 - 33 0.0235 - 41 0.176 - 42 0.118 - 44 0.0118 - 45 0.0118 - 46 0.0235 - 47 0.0235 - - 2 49 17 0 - 0 0.163 - 4 0.0204 - 7 0.143 - 13 0.0408 - 14 0.163 - 19 0.0204 - 21 0.0408 - 26 0.0204 - 28 0.0408 - 30 0.0408 - 31 0.0408 - 32 0.0204 - 33 0.0204 - 41 0.143 - 42 0.0204 - 45 0.0204 - 47 0.0408 - - 41 20 8 0 - 0 0.3 - 7 0.1 - 19 0.05 - 28 0.1 - 33 0.05 - 41 0.25 - 42 0.1 - 44 0.05 - - 47 15 5 0 - 14 0.0667 - 21 0.133 - 41 0.2 - 42 0.467 - 46 0.133 - - 57 75 19 2 - 0 0.133 - 2 0.0133 - 7 0.0133 - 8 0.0133 - 13 0.173 - 14 0.133 - 15 0.0533 - 19 0.0133 - 21 0.04 - 24 0.0133 - 28 0.0267 - 29 0.0267 - 30 0.04 - 31 0.147 - 33 0.0133 - 41 0.08 - 42 0.0133 - 45 0.0133 - 47 0.04 - - 2 53 15 0 - 0 0.113 - 2 0.0189 - 7 0.0189 - 8 0.0189 - 13 0.151 - 14 0.189 - 15 0.0566 - 21 0.0566 - 24 0.0189 - 28 0.0189 - 29 0.0377 - 30 0.0189 - 31 0.151 - 41 0.113 - 47 0.0189 - - 41 19 11 0 - 0 0.211 - 13 0.158 - 15 0.0526 - 19 0.0526 - 28 0.0526 - 30 0.105 - 31 0.158 - 33 0.0526 - 42 0.0526 - 45 0.0526 - 47 0.0526 - - 62 19 9 2 - 7 0.0526 - 14 0.0526 - 21 0.0526 - 31 0.105 - 41 0.158 - 42 0.105 - 45 0.0526 - 46 0.0526 - 47 0.368 - - 2 7 5 0 - 7 0.143 - 14 0.143 - 31 0.286 - 41 0.286 - 46 0.143 - - 42 5 1 0 - 47 1 - - 64 11 8 0 - 0 0.0909 - 8 0.0909 - 13 0.182 - 24 0.0909 - 28 0.0909 - 31 0.182 - 42 0.182 - 47 0.0909 - - 65 3 1 0 - 45 1 - - 67 2 1 0 - 45 1 - - 69 19 5 0 - 0 0.316 - 13 0.0526 - 14 0.316 - 21 0.0526 - 41 0.263 - - 71 2 2 0 - 31 0.5 - 47 0.5 - -69 294981 43 37 - 0 0.105 - 1 0.00265 - 2 0.0256 - 3 0.00552 - 4 0.00905 - 5 0.00567 - 6 9.49e-05 - 7 0.0229 - 8 0.00961 - 9 0.000532 - 10 0.000431 - 12 0.0558 - 13 0.14 - 14 0.108 - 15 0.0833 - 16 0.00388 - 18 0.000919 - 19 0.0976 - 20 9.49e-05 - 21 0.0678 - 22 0.000427 - 23 0.000122 - 24 0.00078 - 25 2.37e-05 - 26 0.0912 - 27 1.36e-05 - 28 0.00706 - 29 0.00917 - 30 0.00623 - 31 0.0111 - 32 0.00412 - 33 0.00631 - 34 0.0243 - 35 0.0121 - 37 0.000692 - 40 7.12e-05 - 41 0.0548 - 42 0.00322 - 43 0.00148 - 44 0.000363 - 45 0.00512 - 46 0.0116 - 47 0.00527 - - 0 33828 41 0 - 0 0.0459 - 1 0.000443 - 2 0.0164 - 3 0.00573 - 4 0.0196 - 5 0.0219 - 6 0.000118 - 7 0.00198 - 8 0.00399 - 9 0.000236 - 10 0.000709 - 12 0.0834 - 13 0.183 - 14 0.139 - 15 0.0942 - 16 0.00562 - 18 0.0013 - 19 0.154 - 20 8.87e-05 - 21 0.0574 - 22 0.000118 - 23 2.96e-05 - 24 0.000177 - 26 0.0434 - 28 0.00121 - 29 0.00127 - 30 0.00139 - 31 0.0018 - 32 0.00106 - 33 0.000709 - 34 0.0345 - 35 0.0178 - 37 5.91e-05 - 40 2.96e-05 - 41 0.0478 - 42 0.00328 - 43 0.00207 - 44 2.96e-05 - 45 0.00532 - 46 0.00316 - 47 0.000207 - - 1 555 24 0 - 0 0.342 - 2 0.018 - 4 0.0036 - 7 0.245 - 8 0.0018 - 13 0.0613 - 14 0.0721 - 15 0.00541 - 19 0.00541 - 20 0.0036 - 21 0.101 - 24 0.00541 - 26 0.0198 - 28 0.0126 - 29 0.0036 - 31 0.0036 - 32 0.0018 - 33 0.0036 - 41 0.0378 - 42 0.0036 - 43 0.0036 - 45 0.0144 - 46 0.0036 - 47 0.027 - - 2 411 19 14 - 0 0.00243 - 7 0.00487 - 8 0.00973 - 12 0.017 - 13 0.00973 - 14 0.0146 - 15 0.00487 - 28 0.338 - 29 0.0779 - 30 0.151 - 31 0.173 - 32 0.0779 - 33 0.09 - 34 0.00243 - 41 0.0146 - 42 0.00243 - 43 0.00243 - 44 0.00243 - 46 0.00487 - - 0 2 2 0 - 8 0.5 - 12 0.5 - - 8 2 1 0 - 8 1 - - 12 3 1 0 - 12 1 - - 13 2 1 0 - 13 1 - - 21 2 2 0 - 28 0.5 - 46 0.5 - - 28 142 4 0 - 28 0.972 - 41 0.0141 - 42 0.00704 - 43 0.00704 - - 29 33 2 0 - 29 0.97 - 41 0.0303 - - 30 64 3 0 - 7 0.0156 - 8 0.0156 - 30 0.969 - - 31 73 3 0 - 31 0.973 - 41 0.0137 - 44 0.0137 - - 32 34 3 0 - 0 0.0294 - 32 0.941 - 41 0.0294 - - 33 37 1 0 - 33 1 - - 45 1 1 0 - 46 1 - - 47 1 1 0 - 15 1 - - 69 13 6 0 - 7 0.0769 - 12 0.231 - 13 0.154 - 14 0.385 - 15 0.0769 - 34 0.0769 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 13 0.111 - 19 0.111 - 26 0.222 - 41 0.333 - - 7 23 6 0 - 0 0.522 - 8 0.0435 - 13 0.087 - 14 0.0435 - 21 0.261 - 41 0.0435 - - 8 152 22 1 - 0 0.283 - 1 0.0132 - 2 0.0329 - 4 0.0197 - 7 0.0658 - 8 0.00658 - 13 0.0329 - 14 0.0724 - 15 0.0132 - 16 0.00658 - 19 0.00658 - 21 0.25 - 22 0.0197 - 23 0.00658 - 26 0.0526 - 28 0.0132 - 29 0.0132 - 32 0.00658 - 41 0.0395 - 45 0.0263 - 46 0.00658 - 47 0.0132 - - 2 3 2 0 - 4 0.667 - 22 0.333 - - 12 9669 37 0 - 0 0.000207 - 2 0.0233 - 3 0.00776 - 4 0.0185 - 5 0.00755 - 6 0.000207 - 7 0.00114 - 8 0.00259 - 9 0.00031 - 10 0.000207 - 12 0.000103 - 13 0.242 - 14 0.173 - 15 0.106 - 16 0.00641 - 18 0.00103 - 19 0.222 - 21 0.0332 - 22 0.00031 - 23 0.000103 - 24 0.000103 - 28 0.00124 - 29 0.00124 - 30 0.000931 - 31 0.00238 - 32 0.00207 - 33 0.00176 - 34 0.0602 - 35 0.0146 - 40 0.000103 - 41 0.0506 - 42 0.00434 - 43 0.00321 - 44 0.000103 - 45 0.00858 - 46 0.0031 - 47 0.000103 - - 13 318 31 3 - 0 0.0252 - 1 0.00943 - 2 0.0629 - 3 0.066 - 4 0.0377 - 7 0.145 - 8 0.0252 - 10 0.0126 - 12 0.00314 - 13 0.164 - 14 0.0283 - 15 0.0377 - 16 0.00943 - 18 0.00314 - 19 0.00314 - 21 0.066 - 24 0.00629 - 26 0.151 - 28 0.0252 - 29 0.0189 - 30 0.00943 - 31 0.0157 - 32 0.00629 - 34 0.00314 - 37 0.00314 - 41 0.0346 - 42 0.00314 - 43 0.00314 - 45 0.00943 - 46 0.00314 - 47 0.00943 - - 2 2 2 0 - 7 0.5 - 31 0.5 - - 28 3 3 0 - 7 0.333 - 12 0.333 - 45 0.333 - - 69 12 6 0 - 2 0.0833 - 3 0.0833 - 13 0.583 - 15 0.0833 - 18 0.0833 - 41 0.0833 - - 14 122 21 0 - 0 0.0656 - 2 0.123 - 3 0.0328 - 4 0.0082 - 7 0.041 - 8 0.0246 - 13 0.262 - 14 0.0164 - 15 0.254 - 18 0.0082 - 19 0.0164 - 21 0.0082 - 30 0.0082 - 34 0.0082 - 35 0.0164 - 41 0.0574 - 42 0.0082 - 43 0.0082 - 45 0.0164 - 46 0.0082 - 47 0.0082 - - 15 37 10 0 - 0 0.108 - 2 0.027 - 7 0.0541 - 15 0.297 - 18 0.027 - 26 0.0541 - 33 0.027 - 42 0.027 - 45 0.162 - 47 0.216 - - 18 30 6 0 - 4 0.1 - 5 0.367 - 7 0.0667 - 13 0.0667 - 19 0.367 - 34 0.0333 - - 21 80 22 8 - 0 0.1 - 1 0.0125 - 2 0.0875 - 7 0.112 - 8 0.025 - 10 0.0125 - 12 0.112 - 13 0.15 - 14 0.0625 - 16 0.0125 - 19 0.0875 - 21 0.0375 - 26 0.0375 - 28 0.0125 - 29 0.0125 - 31 0.0125 - 32 0.0125 - 35 0.0125 - 41 0.05 - 42 0.0125 - 45 0.0125 - 47 0.0125 - - 0 4 2 0 - 12 0.25 - 19 0.75 - - 26 4 3 0 - 2 0.25 - 13 0.5 - 31 0.25 - - 28 9 6 0 - 2 0.444 - 7 0.111 - 12 0.111 - 13 0.111 - 16 0.111 - 42 0.111 - - 30 12 7 0 - 0 0.0833 - 7 0.25 - 13 0.25 - 19 0.0833 - 26 0.0833 - 32 0.0833 - 41 0.167 - - 31 10 5 0 - 0 0.1 - 7 0.1 - 14 0.5 - 41 0.2 - 47 0.1 - - 47 15 10 0 - 0 0.267 - 1 0.0667 - 2 0.0667 - 7 0.0667 - 10 0.0667 - 13 0.0667 - 21 0.133 - 26 0.133 - 28 0.0667 - 29 0.0667 - - 49 7 6 0 - 0 0.143 - 7 0.143 - 8 0.143 - 13 0.286 - 19 0.143 - 45 0.143 - - 69 13 6 0 - 8 0.0769 - 12 0.538 - 13 0.0769 - 19 0.154 - 21 0.0769 - 35 0.0769 - - 22 3 1 0 - 0 1 - - 26 13048 39 0 - 0 0.0513 - 1 0.00107 - 2 0.0104 - 3 0.018 - 4 0.00107 - 5 7.66e-05 - 6 0.000153 - 7 0.00613 - 8 0.084 - 9 0.00429 - 10 0.00046 - 12 0.00245 - 13 0.2 - 14 0.114 - 15 0.0403 - 16 0.00215 - 18 0.000153 - 19 0.0154 - 21 0.0327 - 22 0.000996 - 23 0.000153 - 24 0.00452 - 26 7.66e-05 - 28 0.0401 - 29 0.073 - 30 0.0567 - 31 0.105 - 32 0.0336 - 33 0.0583 - 34 0.000307 - 35 0.00115 - 37 0.00452 - 41 0.0174 - 42 0.00268 - 43 0.00115 - 44 0.000383 - 45 0.00261 - 46 0.0049 - 47 0.00897 - - 28 21028 36 3 - 0 0.00471 - 1 4.76e-05 - 2 0.0342 - 3 4.76e-05 - 4 0.000856 - 7 0.00185 - 8 0.00019 - 10 0.00019 - 12 0.238 - 13 0.00623 - 14 0.00923 - 15 0.00385 - 16 4.76e-05 - 18 0.000143 - 19 0.00956 - 21 0.117 - 22 0.00105 - 23 9.51e-05 - 26 0.538 - 27 9.51e-05 - 28 0.00518 - 29 0.00271 - 30 0.000476 - 31 0.000618 - 32 0.000666 - 33 0.000808 - 34 0.00019 - 35 0.000428 - 40 0.000333 - 41 0.00704 - 42 0.00195 - 43 0.000333 - 44 0.000666 - 45 0.00818 - 46 0.000238 - 47 0.0049 - - 2 139 9 0 - 2 0.0144 - 12 0.137 - 13 0.00719 - 14 0.0144 - 15 0.00719 - 21 0.0719 - 26 0.669 - 41 0.0647 - 45 0.0144 - - 41 17 6 0 - 0 0.0588 - 12 0.294 - 21 0.0588 - 26 0.353 - 33 0.0588 - 41 0.176 - - 46 2 1 0 - 45 1 - - 29 21706 36 1 - 0 0.00438 - 1 0.00101 - 2 0.0333 - 3 0.00604 - 4 0.00392 - 7 0.00143 - 8 0.00207 - 9 0.000184 - 10 9.21e-05 - 12 0.000276 - 13 0.196 - 14 0.136 - 15 0.23 - 16 0.00792 - 18 0.0018 - 19 0.133 - 21 0.0658 - 22 0.000322 - 23 4.61e-05 - 26 0.000138 - 28 9.21e-05 - 29 0.000322 - 30 0.000461 - 31 0.000921 - 32 4.61e-05 - 33 0.000138 - 34 0.0313 - 35 0.0208 - 37 9.21e-05 - 41 0.0885 - 42 0.0024 - 43 0.00147 - 44 9.21e-05 - 45 0.00235 - 46 0.0266 - 47 0.000645 - - 2 32 10 0 - 2 0.0312 - 13 0.156 - 14 0.0625 - 15 0.156 - 19 0.188 - 21 0.188 - 22 0.0312 - 35 0.125 - 41 0.0312 - 45 0.0312 - - 30 11273 33 1 - 0 0.265 - 2 0.0353 - 3 0.00284 - 4 0.00213 - 7 0.227 - 8 0.00319 - 9 8.87e-05 - 10 0.000355 - 13 0.0685 - 14 0.0679 - 15 0.0108 - 16 0.000621 - 18 0.00115 - 19 0.00337 - 20 0.00071 - 21 0.0726 - 22 0.000355 - 24 0.00364 - 26 0.0114 - 28 0.0184 - 29 0.0169 - 30 0.00337 - 31 0.00523 - 32 0.00417 - 33 0.0047 - 37 0.0016 - 41 0.126 - 42 0.00523 - 43 0.000266 - 44 0.000532 - 45 0.00772 - 46 0.00408 - 47 0.0245 - - 2 62 14 0 - 0 0.0968 - 2 0.0161 - 3 0.0161 - 7 0.355 - 13 0.0323 - 14 0.0968 - 15 0.0161 - 19 0.0323 - 21 0.0806 - 22 0.0161 - 26 0.113 - 28 0.0323 - 33 0.0161 - 41 0.0806 - - 31 15631 38 1 - 0 0.586 - 1 0.0204 - 2 0.0168 - 3 0.00448 - 4 0.00435 - 6 6.4e-05 - 7 0.0117 - 8 0.00032 - 9 0.000128 - 10 0.000256 - 12 0.00032 - 13 0.0843 - 14 0.0769 - 15 0.00409 - 16 0.000384 - 18 0.000256 - 19 0.00186 - 21 0.11 - 22 0.000768 - 23 0.00109 - 26 0.000128 - 28 0.00211 - 29 0.00211 - 30 0.000768 - 31 0.00102 - 32 0.000768 - 33 0.00122 - 34 0.000256 - 35 0.000128 - 37 0.00109 - 40 6.4e-05 - 41 0.047 - 42 0.00237 - 43 0.000448 - 44 0.00147 - 45 0.00333 - 46 0.00224 - 47 0.0094 - - 2 71 8 0 - 0 0.69 - 1 0.0563 - 13 0.0141 - 14 0.0423 - 19 0.0141 - 21 0.0986 - 41 0.0704 - 45 0.0141 - - 32 5414 31 1 - 2 0.0296 - 3 0.00166 - 4 0.0133 - 7 0.00129 - 8 0.00332 - 9 0.000369 - 10 0.00222 - 12 0.000185 - 13 0.0334 - 14 0.401 - 15 0.0253 - 16 0.0105 - 18 0.000739 - 19 0.248 - 21 0.0876 - 22 0.000185 - 23 0.000185 - 29 0.000185 - 30 0.000369 - 31 0.00185 - 32 0.000369 - 33 0.000369 - 34 0.0567 - 35 0.0412 - 37 0.000185 - 41 0.0292 - 42 0.00332 - 43 0.00259 - 45 0.00314 - 46 0.00148 - 47 0.000185 - - 2 32 7 0 - 2 0.0312 - 14 0.406 - 19 0.219 - 21 0.0312 - 34 0.156 - 35 0.0625 - 41 0.0938 - - 33 9604 31 2 - 2 0.0311 - 3 0.00281 - 4 0.0167 - 5 0.000625 - 6 0.000416 - 7 0.00198 - 8 0.00167 - 9 0.000104 - 10 0.000104 - 13 0.207 - 14 0.0117 - 15 0.162 - 16 0.0025 - 18 0.000937 - 19 0.192 - 21 0.0798 - 22 0.000312 - 25 0.000312 - 28 0.000104 - 29 0.000625 - 30 0.000416 - 31 0.000521 - 32 0.000312 - 34 0.0715 - 35 0.0271 - 41 0.0868 - 42 0.00344 - 43 0.00281 - 45 0.00573 - 46 0.0842 - 47 0.00375 - - 2 37 10 0 - 8 0.027 - 13 0.189 - 15 0.189 - 16 0.027 - 18 0.027 - 19 0.0811 - 21 0.027 - 34 0.243 - 35 0.0541 - 41 0.135 - - 41 2 2 0 - 2 0.5 - 34 0.5 - - 41 83 16 15 - 0 0.012 - 2 0.0482 - 3 0.012 - 8 0.0241 - 12 0.012 - 13 0.205 - 14 0.012 - 15 0.0482 - 19 0.0361 - 21 0.145 - 28 0.205 - 29 0.0241 - 30 0.0361 - 31 0.0843 - 32 0.0723 - 33 0.0241 - - 0 5 3 0 - 13 0.6 - 14 0.2 - 21 0.2 - - 2 6 4 0 - 28 0.333 - 29 0.167 - 31 0.333 - 32 0.167 - - 12 4 2 0 - 13 0.5 - 19 0.5 - - 26 5 2 0 - 13 0.6 - 21 0.4 - - 28 14 2 0 - 21 0.0714 - 28 0.929 - - 29 7 4 0 - 13 0.286 - 15 0.429 - 21 0.143 - 29 0.143 - - 30 2 1 0 - 30 1 - - 31 6 2 0 - 21 0.167 - 31 0.833 - - 32 4 1 0 - 32 1 - - 33 2 1 0 - 33 1 - - 49 6 5 0 - 2 0.167 - 12 0.167 - 13 0.333 - 21 0.167 - 28 0.167 - - 55 5 3 0 - 3 0.2 - 13 0.6 - 19 0.2 - - 57 5 3 0 - 2 0.6 - 8 0.2 - 21 0.2 - - 64 3 2 0 - 8 0.333 - 21 0.667 - - 69 6 4 0 - 13 0.333 - 15 0.167 - 21 0.333 - 30 0.167 - - 42 7 3 0 - 25 0.143 - 28 0.143 - 47 0.714 - - 44 5 4 0 - 13 0.4 - 19 0.2 - 26 0.2 - 31 0.2 - - 45 119 15 9 - 0 0.193 - 2 0.0336 - 4 0.0168 - 6 0.0084 - 7 0.0336 - 12 0.0924 - 13 0.134 - 14 0.0588 - 15 0.0252 - 19 0.0672 - 21 0.0672 - 26 0.193 - 28 0.0168 - 35 0.0084 - 41 0.0504 - - 0 6 5 0 - 13 0.167 - 14 0.167 - 15 0.167 - 35 0.167 - 41 0.333 - - 28 35 5 0 - 0 0.0286 - 2 0.0286 - 12 0.2 - 21 0.114 - 26 0.629 - - 29 14 5 0 - 13 0.357 - 14 0.143 - 15 0.143 - 19 0.286 - 41 0.0714 - - 30 15 6 0 - 0 0.267 - 7 0.2 - 14 0.0667 - 21 0.2 - 28 0.133 - 41 0.133 - - 31 14 5 0 - 0 0.714 - 2 0.0714 - 13 0.0714 - 14 0.0714 - 21 0.0714 - - 32 4 3 0 - 2 0.25 - 14 0.25 - 19 0.5 - - 33 8 3 0 - 2 0.125 - 13 0.75 - 19 0.125 - - 49 10 7 0 - 0 0.3 - 4 0.1 - 12 0.2 - 13 0.1 - 14 0.1 - 26 0.1 - 41 0.1 - - 69 9 6 0 - 0 0.333 - 4 0.111 - 6 0.111 - 12 0.111 - 13 0.222 - 19 0.111 - - 46 4 3 0 - 0 0.25 - 21 0.25 - 28 0.5 - - 47 145999 43 35 - 0 0.106 - 1 0.00268 - 2 0.0245 - 3 0.00554 - 4 0.00909 - 5 0.00573 - 6 9.59e-05 - 7 0.023 - 8 0.00966 - 9 0.000527 - 10 0.000404 - 12 0.0564 - 13 0.141 - 14 0.109 - 15 0.0841 - 16 0.00392 - 18 0.000918 - 19 0.0986 - 20 9.59e-05 - 21 0.0628 - 22 0.000363 - 23 6.16e-05 - 24 0.000788 - 25 2.05e-05 - 26 0.0921 - 27 1.37e-05 - 28 0.00658 - 29 0.00915 - 30 0.00608 - 31 0.011 - 32 0.00403 - 33 0.00624 - 34 0.0245 - 35 0.0122 - 37 0.000699 - 40 6.85e-05 - 41 0.0551 - 42 0.00323 - 43 0.00149 - 44 0.000349 - 45 0.00476 - 46 0.0117 - 47 0.00533 - - 0 33747 40 0 - 0 0.046 - 1 0.000444 - 2 0.0164 - 3 0.00572 - 4 0.0196 - 5 0.022 - 6 0.000119 - 7 0.00199 - 8 0.004 - 9 0.000237 - 10 0.000711 - 12 0.0836 - 13 0.183 - 14 0.139 - 15 0.0945 - 16 0.00563 - 18 0.0013 - 19 0.155 - 20 8.89e-05 - 21 0.0558 - 22 0.000119 - 23 2.96e-05 - 24 0.000178 - 26 0.0435 - 28 0.00121 - 29 0.00127 - 30 0.00139 - 31 0.00181 - 32 0.00107 - 33 0.000711 - 34 0.0346 - 35 0.0179 - 37 5.93e-05 - 40 2.96e-05 - 41 0.0477 - 42 0.00329 - 43 0.00207 - 45 0.00516 - 46 0.00317 - 47 0.000207 - - 1 547 24 0 - 0 0.347 - 2 0.0183 - 4 0.00366 - 7 0.249 - 8 0.00183 - 13 0.0622 - 14 0.0731 - 15 0.00548 - 19 0.00548 - 20 0.00366 - 21 0.0878 - 24 0.00548 - 26 0.0201 - 28 0.0128 - 29 0.00366 - 31 0.00366 - 32 0.00183 - 33 0.00366 - 41 0.0384 - 42 0.00366 - 43 0.00366 - 45 0.0146 - 46 0.00366 - 47 0.0274 - - 2 16 6 0 - 7 0.125 - 12 0.25 - 13 0.125 - 14 0.312 - 15 0.125 - 34 0.0625 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 13 0.111 - 19 0.111 - 26 0.222 - 41 0.333 - - 7 23 6 0 - 0 0.522 - 8 0.0435 - 13 0.087 - 14 0.0435 - 21 0.261 - 41 0.0435 - - 8 124 20 0 - 0 0.347 - 1 0.0161 - 2 0.0242 - 4 0.0161 - 7 0.0645 - 8 0.00806 - 13 0.0403 - 14 0.0887 - 15 0.0161 - 16 0.00806 - 19 0.00806 - 21 0.169 - 26 0.0645 - 28 0.0161 - 29 0.0161 - 32 0.00806 - 41 0.0484 - 45 0.0161 - 46 0.00806 - 47 0.0161 - - 12 9643 36 0 - 0 0.000207 - 2 0.023 - 3 0.00778 - 4 0.0186 - 5 0.00757 - 6 0.000207 - 7 0.00114 - 8 0.00259 - 9 0.000311 - 10 0.000207 - 12 0.000104 - 13 0.243 - 14 0.174 - 15 0.106 - 16 0.00643 - 18 0.00104 - 19 0.222 - 21 0.0317 - 22 0.000311 - 23 0.000104 - 24 0.000104 - 28 0.00124 - 29 0.00124 - 30 0.000933 - 31 0.00239 - 32 0.00207 - 33 0.00176 - 34 0.0604 - 35 0.0146 - 40 0.000104 - 41 0.0502 - 42 0.00436 - 43 0.00321 - 45 0.00861 - 46 0.00301 - 47 0.000104 - - 13 311 31 0 - 0 0.0257 - 1 0.00965 - 2 0.0579 - 3 0.0675 - 4 0.0386 - 7 0.148 - 8 0.0257 - 10 0.00643 - 12 0.00322 - 13 0.164 - 14 0.0289 - 15 0.0386 - 16 0.00965 - 18 0.00322 - 19 0.00322 - 21 0.0675 - 24 0.00643 - 26 0.154 - 28 0.0257 - 29 0.0193 - 30 0.00965 - 31 0.0161 - 32 0.00643 - 34 0.00322 - 37 0.00322 - 41 0.0354 - 42 0.00322 - 43 0.00322 - 45 0.00322 - 46 0.00322 - 47 0.00965 - - 14 121 21 0 - 0 0.0661 - 2 0.116 - 3 0.0331 - 4 0.00826 - 7 0.0413 - 8 0.0248 - 13 0.264 - 14 0.0165 - 15 0.256 - 18 0.00826 - 19 0.0165 - 21 0.00826 - 30 0.00826 - 34 0.00826 - 35 0.0165 - 41 0.0579 - 42 0.00826 - 43 0.00826 - 45 0.0165 - 46 0.00826 - 47 0.00826 - - 15 37 10 0 - 0 0.108 - 2 0.027 - 7 0.0541 - 15 0.297 - 18 0.027 - 26 0.0541 - 33 0.027 - 42 0.027 - 45 0.162 - 47 0.216 - - 18 30 6 0 - 4 0.1 - 5 0.367 - 7 0.0667 - 13 0.0667 - 19 0.367 - 34 0.0333 - - 21 72 21 0 - 0 0.0972 - 1 0.0139 - 2 0.0694 - 7 0.111 - 8 0.0278 - 12 0.125 - 13 0.153 - 14 0.0694 - 16 0.0139 - 19 0.0972 - 21 0.0139 - 26 0.0417 - 28 0.0139 - 29 0.0139 - 31 0.0139 - 32 0.0139 - 35 0.0139 - 41 0.0556 - 42 0.0139 - 45 0.0139 - 47 0.0139 - - 22 3 1 0 - 0 1 - - 26 13034 39 0 - 0 0.0514 - 1 0.00107 - 2 0.0104 - 3 0.018 - 4 0.000997 - 5 7.67e-05 - 6 0.000153 - 7 0.00606 - 8 0.0841 - 9 0.0043 - 10 0.00046 - 12 0.00246 - 13 0.2 - 14 0.114 - 15 0.0404 - 16 0.00215 - 18 0.000153 - 19 0.0154 - 21 0.0322 - 22 0.000997 - 23 0.000153 - 24 0.00453 - 26 7.67e-05 - 28 0.0401 - 29 0.0731 - 30 0.0568 - 31 0.105 - 32 0.0337 - 33 0.0584 - 34 0.000307 - 35 0.00115 - 37 0.00453 - 41 0.017 - 42 0.00269 - 43 0.00115 - 44 0.000384 - 45 0.00261 - 46 0.00491 - 47 0.00898 - - 28 20589 35 0 - 0 0.00481 - 1 4.86e-05 - 2 0.028 - 3 4.86e-05 - 4 0.000777 - 7 0.0016 - 8 0.000194 - 10 9.71e-05 - 12 0.243 - 13 0.00612 - 14 0.00937 - 15 0.00393 - 16 4.86e-05 - 18 0.000146 - 19 0.00976 - 21 0.109 - 22 0.000486 - 26 0.55 - 27 9.71e-05 - 28 0.00525 - 29 0.00277 - 30 0.000486 - 31 0.000631 - 32 0.00068 - 33 0.000826 - 34 0.000194 - 35 0.000437 - 40 0.000291 - 41 0.00641 - 42 0.00175 - 43 0.000291 - 44 0.000631 - 45 0.00665 - 46 0.000243 - 47 0.005 - - 29 21355 36 0 - 0 0.00445 - 1 0.00103 - 2 0.0322 - 3 0.00609 - 4 0.00393 - 7 0.00103 - 8 0.00206 - 9 0.000187 - 10 4.68e-05 - 12 0.000281 - 13 0.199 - 14 0.138 - 15 0.234 - 16 0.00805 - 18 0.00183 - 19 0.135 - 21 0.0543 - 22 0.000328 - 23 4.68e-05 - 26 0.00014 - 28 9.37e-05 - 29 0.000328 - 30 0.000468 - 31 0.000937 - 32 4.68e-05 - 33 0.00014 - 34 0.0318 - 35 0.0212 - 37 9.37e-05 - 41 0.0896 - 42 0.00244 - 43 0.0015 - 44 4.68e-05 - 45 0.00173 - 46 0.0271 - 47 0.000656 - - 30 10957 33 0 - 0 0.273 - 2 0.0305 - 3 0.00292 - 4 0.0021 - 7 0.234 - 8 0.00301 - 9 9.13e-05 - 10 0.000365 - 13 0.0703 - 14 0.0698 - 15 0.0111 - 16 0.000639 - 18 0.00119 - 19 0.00347 - 20 0.00073 - 21 0.0539 - 22 0.000365 - 24 0.00374 - 26 0.0118 - 28 0.0189 - 29 0.0174 - 30 0.00347 - 31 0.00538 - 32 0.00429 - 33 0.00484 - 37 0.00164 - 41 0.129 - 42 0.00538 - 43 0.000274 - 44 0.000548 - 45 0.00657 - 46 0.0042 - 47 0.0252 - - 31 14933 38 0 - 0 0.613 - 1 0.0214 - 2 0.0127 - 3 0.00469 - 4 0.00449 - 6 6.7e-05 - 7 0.0115 - 8 0.000335 - 9 0.000134 - 10 0.000134 - 12 0.000335 - 13 0.088 - 14 0.0805 - 15 0.00429 - 16 0.000402 - 18 0.000268 - 19 0.00194 - 21 0.0765 - 22 0.000603 - 23 0.000268 - 26 0.000134 - 28 0.00221 - 29 0.00221 - 30 0.000804 - 31 0.00107 - 32 0.000804 - 33 0.00127 - 34 0.000268 - 35 0.000134 - 37 0.00114 - 40 6.7e-05 - 41 0.0488 - 42 0.00248 - 43 0.000469 - 44 0.00154 - 45 0.00254 - 46 0.00234 - 47 0.00984 - - 32 5292 30 0 - 2 0.0238 - 3 0.0017 - 4 0.0136 - 7 0.000945 - 8 0.0034 - 9 0.000378 - 10 0.00227 - 12 0.000189 - 13 0.034 - 14 0.41 - 15 0.0259 - 16 0.0108 - 18 0.000756 - 19 0.254 - 21 0.0752 - 22 0.000189 - 29 0.000189 - 30 0.000378 - 31 0.00189 - 32 0.000378 - 33 0.000378 - 34 0.058 - 35 0.0421 - 37 0.000189 - 41 0.0291 - 42 0.0034 - 43 0.00265 - 45 0.00246 - 46 0.00151 - 47 0.000189 - - 33 9413 30 0 - 2 0.0278 - 3 0.00287 - 4 0.017 - 5 0.000637 - 6 0.000425 - 7 0.00181 - 8 0.0017 - 9 0.000106 - 13 0.212 - 14 0.0119 - 15 0.166 - 16 0.00255 - 18 0.000956 - 19 0.196 - 21 0.0667 - 22 0.000212 - 25 0.000319 - 28 0.000106 - 29 0.000637 - 30 0.000425 - 31 0.000531 - 32 0.000319 - 34 0.073 - 35 0.0276 - 41 0.0882 - 42 0.00351 - 43 0.00287 - 45 0.00499 - 46 0.0859 - 47 0.00382 - - 41 7 4 0 - 0 0.143 - 2 0.571 - 12 0.143 - 21 0.143 - - 42 5 1 0 - 47 1 - - 45 114 15 0 - 0 0.202 - 2 0.0263 - 4 0.00877 - 6 0.00877 - 7 0.0351 - 12 0.0965 - 13 0.14 - 14 0.0614 - 15 0.0263 - 19 0.0702 - 21 0.0439 - 26 0.202 - 28 0.0175 - 35 0.00877 - 41 0.0526 - - 48 40 3 0 - 2 0.925 - 21 0.025 - 41 0.05 - - 49 1672 33 0 - 0 0.197 - 1 0.00538 - 2 0.145 - 3 0.00359 - 4 0.00718 - 7 0.0317 - 8 0.0012 - 10 0.0012 - 12 0.0514 - 13 0.106 - 14 0.103 - 15 0.0532 - 16 0.00239 - 18 0.000598 - 19 0.0371 - 21 0.0568 - 26 0.0359 - 28 0.0012 - 29 0.00239 - 30 0.0012 - 31 0.0012 - 32 0.000598 - 33 0.000598 - 34 0.0179 - 35 0.0102 - 37 0.0012 - 41 0.101 - 42 0.00538 - 43 0.000598 - 44 0.00179 - 45 0.00478 - 46 0.00299 - 47 0.00897 - - 50 8 7 0 - 0 0.125 - 13 0.125 - 14 0.125 - 15 0.25 - 30 0.125 - 33 0.125 - 41 0.125 - - 53 1 1 0 - 42 1 - - 55 113 11 0 - 0 0.0619 - 2 0.708 - 7 0.0177 - 14 0.0177 - 15 0.00885 - 19 0.0177 - 21 0.00885 - 26 0.0177 - 40 0.00885 - 41 0.106 - 42 0.0265 - - 57 77 6 0 - 0 0.234 - 2 0.558 - 12 0.039 - 15 0.013 - 21 0.039 - 41 0.117 - - 58 8 4 0 - 2 0.625 - 12 0.125 - 41 0.125 - 42 0.125 - - 60 2 2 0 - 0 0.5 - 2 0.5 - - 62 5 2 0 - 2 0.8 - 15 0.2 - - 64 7 4 0 - 0 0.286 - 2 0.429 - 7 0.143 - 41 0.143 - - 69 3673 34 0 - 0 0.0792 - 1 0.00136 - 2 0.00327 - 3 0.00163 - 4 0.00517 - 5 0.000817 - 7 0.0343 - 8 0.00463 - 10 0.000545 - 12 0.0686 - 13 0.141 - 14 0.107 - 15 0.116 - 16 0.00436 - 18 0.000545 - 19 0.106 - 20 0.000272 - 21 0.0482 - 24 0.000817 - 26 0.1 - 28 0.00327 - 29 0.0049 - 30 0.00218 - 31 0.0049 - 32 0.00218 - 33 0.00272 - 34 0.0302 - 35 0.0166 - 41 0.0803 - 42 0.00762 - 43 0.00191 - 45 0.00871 - 46 0.00299 - 47 0.00681 - - 74 1 1 0 - 47 1 - - 48 42 4 0 - 2 0.881 - 9 0.0238 - 21 0.0476 - 41 0.0476 - - 49 1717 34 19 - 0 0.192 - 1 0.00524 - 2 0.142 - 3 0.00466 - 4 0.00699 - 7 0.0309 - 8 0.00116 - 10 0.00116 - 12 0.0501 - 13 0.104 - 14 0.102 - 15 0.0524 - 16 0.00233 - 18 0.000582 - 19 0.0361 - 21 0.0658 - 22 0.000582 - 26 0.0349 - 28 0.00116 - 29 0.00233 - 30 0.00116 - 31 0.00116 - 32 0.000582 - 33 0.000582 - 34 0.0175 - 35 0.0099 - 37 0.00116 - 41 0.103 - 42 0.00524 - 43 0.000582 - 44 0.00175 - 45 0.0105 - 46 0.00291 - 47 0.00874 - - 0 55 10 0 - 0 0.0364 - 2 0.491 - 7 0.0182 - 12 0.0545 - 13 0.0909 - 15 0.0909 - 19 0.0727 - 21 0.0727 - 35 0.0182 - 41 0.0545 - - 1 6 4 0 - 2 0.333 - 7 0.167 - 13 0.333 - 14 0.167 - - 8 23 9 0 - 0 0.478 - 2 0.0435 - 12 0.0435 - 13 0.0435 - 14 0.13 - 21 0.13 - 29 0.0435 - 41 0.0435 - 47 0.0435 - - 12 15 4 0 - 2 0.733 - 13 0.133 - 14 0.0667 - 21 0.0667 - - 21 3 3 0 - 13 0.333 - 26 0.333 - 41 0.333 - - 26 4 4 0 - 0 0.25 - 2 0.25 - 8 0.25 - 29 0.25 - - 28 218 14 0 - 2 0.156 - 7 0.00459 - 12 0.362 - 13 0.0183 - 14 0.0229 - 15 0.00917 - 19 0.0183 - 21 0.101 - 26 0.261 - 37 0.00459 - 41 0.0183 - 42 0.00459 - 45 0.0138 - 47 0.00459 - - 29 283 14 0 - 0 0.0247 - 2 0.194 - 13 0.184 - 14 0.0954 - 15 0.205 - 16 0.00707 - 19 0.0777 - 21 0.0565 - 34 0.0283 - 35 0.0212 - 41 0.0883 - 43 0.00353 - 45 0.0106 - 46 0.00353 - - 30 218 18 0 - 0 0.216 - 2 0.078 - 4 0.00459 - 7 0.188 - 13 0.0872 - 14 0.147 - 15 0.0138 - 19 0.0138 - 21 0.0459 - 26 0.00459 - 29 0.00459 - 30 0.00459 - 31 0.00917 - 32 0.00459 - 41 0.128 - 42 0.0183 - 45 0.00917 - 47 0.0229 - - 31 583 24 0 - 0 0.437 - 1 0.0154 - 2 0.048 - 3 0.0103 - 4 0.0103 - 7 0.00858 - 10 0.00343 - 12 0.00172 - 13 0.0978 - 14 0.11 - 15 0.00515 - 18 0.00172 - 19 0.00343 - 21 0.0703 - 28 0.00343 - 29 0.00172 - 34 0.00172 - 37 0.00172 - 41 0.132 - 42 0.00515 - 44 0.00515 - 45 0.0103 - 46 0.00343 - 47 0.012 - - 32 79 12 0 - 2 0.152 - 4 0.0253 - 13 0.0127 - 14 0.392 - 15 0.038 - 16 0.0127 - 19 0.19 - 21 0.0633 - 34 0.0506 - 35 0.038 - 41 0.0127 - 46 0.0127 - - 33 142 15 0 - 2 0.204 - 4 0.0141 - 7 0.0211 - 13 0.232 - 14 0.0141 - 15 0.106 - 16 0.00704 - 19 0.0704 - 21 0.0352 - 30 0.00704 - 34 0.12 - 35 0.0352 - 41 0.106 - 45 0.0211 - 46 0.00704 - - 41 10 2 0 - 2 0.1 - 41 0.9 - - 45 2 2 0 - 7 0.5 - 21 0.5 - - 46 1 1 0 - 4 1 - - 47 29 9 0 - 0 0.172 - 2 0.345 - 3 0.069 - 12 0.0345 - 14 0.103 - 15 0.0345 - 21 0.103 - 22 0.0345 - 41 0.103 - - 49 11 4 0 - 2 0.545 - 14 0.0909 - 35 0.0909 - 41 0.273 - - 55 6 3 0 - 2 0.5 - 41 0.333 - 42 0.167 - - 69 25 13 0 - 0 0.04 - 2 0.12 - 8 0.04 - 13 0.08 - 14 0.2 - 19 0.08 - 21 0.08 - 26 0.04 - 33 0.04 - 35 0.04 - 41 0.16 - 45 0.04 - 47 0.04 - - 50 13 9 0 - 0 0.0769 - 13 0.154 - 14 0.0769 - 15 0.154 - 30 0.0769 - 31 0.0769 - 32 0.0769 - 33 0.0769 - 41 0.231 - - 53 1 1 0 - 42 1 - - 55 130 17 5 - 0 0.0538 - 2 0.615 - 4 0.00769 - 7 0.0154 - 9 0.00769 - 13 0.00769 - 14 0.0231 - 15 0.00769 - 19 0.0154 - 21 0.0462 - 26 0.0154 - 28 0.00769 - 33 0.00769 - 40 0.00769 - 41 0.131 - 42 0.0231 - 46 0.00769 - - 31 6 2 0 - 0 0.833 - 40 0.167 - - 41 3 3 0 - 15 0.333 - 19 0.333 - 41 0.333 - - 47 89 12 0 - 0 0.0225 - 2 0.652 - 4 0.0112 - 9 0.0112 - 13 0.0112 - 21 0.0449 - 26 0.0112 - 28 0.0112 - 33 0.0112 - 41 0.169 - 42 0.0337 - 46 0.0112 - - 55 4 3 0 - 2 0.5 - 19 0.25 - 26 0.25 - - 62 10 4 0 - 2 0.6 - 7 0.2 - 14 0.1 - 41 0.1 - - 57 96 9 6 - 0 0.188 - 2 0.448 - 3 0.0104 - 8 0.0104 - 12 0.0312 - 13 0.115 - 15 0.0208 - 21 0.0312 - 41 0.146 - - 0 7 1 0 - 2 1 - - 29 7 1 0 - 2 1 - - 41 17 2 0 - 2 0.294 - 41 0.706 - - 47 36 8 0 - 0 0.472 - 2 0.167 - 3 0.0278 - 8 0.0278 - 12 0.0833 - 13 0.167 - 15 0.0278 - 21 0.0278 - - 64 3 2 0 - 13 0.667 - 21 0.333 - - 69 2 2 0 - 13 0.5 - 15 0.5 - - 58 10 6 0 - 2 0.5 - 8 0.1 - 12 0.1 - 28 0.1 - 41 0.1 - 42 0.1 - - 62 16 7 0 - 2 0.25 - 3 0.125 - 4 0.0625 - 13 0.25 - 14 0.188 - 15 0.0625 - 41 0.0625 - - 64 18 10 1 - 0 0.111 - 2 0.167 - 3 0.111 - 7 0.0556 - 8 0.0556 - 9 0.0556 - 13 0.111 - 14 0.0556 - 16 0.0556 - 41 0.222 - - 41 4 2 0 - 2 0.75 - 41 0.25 - - 69 3772 35 0 - 0 0.0771 - 1 0.00133 - 2 0.00663 - 3 0.00159 - 4 0.0061 - 5 0.000795 - 7 0.0334 - 8 0.00477 - 10 0.00053 - 12 0.0668 - 13 0.141 - 14 0.104 - 15 0.114 - 16 0.00424 - 18 0.00133 - 19 0.103 - 20 0.000265 - 21 0.0586 - 23 0.000265 - 24 0.000795 - 26 0.0978 - 28 0.00318 - 29 0.00477 - 30 0.00212 - 31 0.00477 - 32 0.00212 - 33 0.00265 - 34 0.0294 - 35 0.0162 - 41 0.0798 - 42 0.00769 - 43 0.00186 - 45 0.0109 - 46 0.00292 - 47 0.00663 - - 74 1 1 0 - 47 1 - -70 128 19 3 - 0 0.0156 - 2 0.0703 - 7 0.156 - 8 0.0234 - 13 0.0312 - 19 0.0156 - 21 0.0547 - 24 0.0312 - 28 0.172 - 29 0.0312 - 30 0.0312 - 31 0.0312 - 32 0.0781 - 33 0.109 - 37 0.00781 - 41 0.0156 - 42 0.0312 - 45 0.0312 - 47 0.0625 - - 8 3 3 0 - 2 0.333 - 21 0.333 - 37 0.333 - - 21 7 6 0 - 2 0.143 - 28 0.286 - 29 0.143 - 33 0.143 - 42 0.143 - 47 0.143 - - 47 59 17 1 - 0 0.0169 - 2 0.0678 - 7 0.169 - 8 0.0169 - 13 0.0339 - 19 0.0169 - 24 0.0339 - 28 0.186 - 29 0.0339 - 30 0.0339 - 31 0.0339 - 32 0.0847 - 33 0.119 - 41 0.0169 - 42 0.0339 - 45 0.0339 - 47 0.0678 - - 21 7 6 0 - 2 0.143 - 28 0.286 - 29 0.143 - 33 0.143 - 42 0.143 - 47 0.143 - -71 4170 32 7 - 0 0.0254 - 2 0.0451 - 3 0.0139 - 4 0.00048 - 7 0.0686 - 8 0.0206 - 9 0.000959 - 10 0.00192 - 13 0.158 - 14 0.0652 - 15 0.0254 - 18 0.00048 - 19 0.00959 - 21 0.0415 - 22 0.00048 - 24 0.00624 - 26 0.00288 - 28 0.058 - 29 0.0177 - 30 0.012 - 31 0.0197 - 32 0.011 - 33 0.0173 - 34 0.00024 - 37 0.00168 - 40 0.000959 - 41 0.194 - 42 0.0149 - 44 0.00192 - 45 0.0367 - 46 0.011 - 47 0.116 - - 2 6 1 0 - 37 1 - - 7 30 8 0 - 0 0.0333 - 3 0.0667 - 13 0.4 - 14 0.2 - 15 0.133 - 21 0.0667 - 41 0.0667 - 46 0.0333 - - 13 1 1 0 - 34 1 - - 21 24 14 0 - 0 0.0417 - 2 0.0833 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0833 - 24 0.0833 - 28 0.125 - 31 0.0833 - 40 0.0417 - 41 0.0417 - 42 0.0833 - 45 0.0417 - 47 0.0833 - - 37 2036 31 1 - 0 0.025 - 2 0.0462 - 3 0.0133 - 4 0.000491 - 7 0.0693 - 8 0.0192 - 9 0.000982 - 10 0.00196 - 13 0.155 - 14 0.0624 - 15 0.0241 - 18 0.000491 - 19 0.00982 - 21 0.0486 - 22 0.000491 - 24 0.0054 - 26 0.00295 - 28 0.057 - 29 0.0182 - 30 0.0123 - 31 0.0192 - 32 0.0113 - 33 0.0172 - 37 0.000491 - 40 0.000491 - 41 0.196 - 42 0.0142 - 44 0.00196 - 45 0.0373 - 46 0.0108 - 47 0.117 - - 2 6 3 0 - 21 0.333 - 28 0.167 - 30 0.5 - - 47 2063 30 3 - 0 0.0257 - 2 0.0441 - 3 0.0141 - 4 0.000485 - 7 0.0693 - 8 0.0208 - 9 0.000969 - 10 0.00194 - 13 0.16 - 14 0.0659 - 15 0.0257 - 18 0.000485 - 19 0.00969 - 21 0.0349 - 22 0.000485 - 24 0.0063 - 26 0.00291 - 28 0.0587 - 29 0.0179 - 30 0.0121 - 31 0.0199 - 32 0.0111 - 33 0.0175 - 40 0.000969 - 41 0.196 - 42 0.015 - 44 0.00194 - 45 0.0368 - 46 0.0111 - 47 0.117 - - 7 30 8 0 - 0 0.0333 - 3 0.0667 - 13 0.4 - 14 0.2 - 15 0.133 - 21 0.0667 - 41 0.0667 - 46 0.0333 - - 21 24 14 0 - 0 0.0417 - 2 0.0833 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0833 - 24 0.0833 - 28 0.125 - 31 0.0833 - 40 0.0417 - 41 0.0417 - 42 0.0833 - 45 0.0417 - 47 0.0833 - - 49 6 5 0 - 2 0.167 - 8 0.333 - 14 0.167 - 28 0.167 - 33 0.167 - - 49 6 5 0 - 2 0.167 - 8 0.333 - 14 0.167 - 28 0.167 - 33 0.167 - -72 14825 39 21 - 0 0.00567 - 1 0.000135 - 2 0.0114 - 3 0.00614 - 4 0.0123 - 5 0.00027 - 6 0.000135 - 7 0.0813 - 8 0.00668 - 9 0.000202 - 10 0.000337 - 13 0.22 - 14 0.173 - 15 0.0205 - 16 0.00378 - 17 0.000135 - 19 0.00256 - 21 0.00621 - 22 0.000135 - 23 0.000135 - 24 0.00243 - 26 0.0058 - 28 0.0188 - 29 0.00351 - 30 0.00513 - 31 0.00351 - 32 0.00445 - 33 0.00391 - 35 6.75e-05 - 36 0.000135 - 37 0.00256 - 40 0.000405 - 41 0.342 - 42 0.0121 - 43 0.00121 - 44 0.00216 - 45 0.0119 - 46 0.0103 - 47 0.0185 - - 3 7 1 0 - 41 1 - - 4 73 16 0 - 2 0.0411 - 3 0.0685 - 7 0.0274 - 13 0.315 - 14 0.0274 - 17 0.0137 - 21 0.0411 - 24 0.0274 - 28 0.0137 - 30 0.0137 - 31 0.0411 - 32 0.0137 - 33 0.0274 - 41 0.274 - 42 0.0274 - 45 0.0274 - - 7 358 17 0 - 2 0.00279 - 3 0.0168 - 4 0.00279 - 6 0.00279 - 8 0.0112 - 9 0.00279 - 10 0.00279 - 13 0.592 - 14 0.291 - 15 0.0223 - 19 0.00559 - 21 0.0112 - 22 0.00279 - 31 0.00279 - 41 0.014 - 42 0.0112 - 46 0.00559 - - 8 33 4 0 - 8 0.0303 - 23 0.0606 - 37 0.848 - 41 0.0606 - - 9 2 1 0 - 8 1 - - 10 5 1 0 - 41 1 - - 13 19 6 0 - 4 0.158 - 8 0.526 - 13 0.105 - 15 0.105 - 35 0.0526 - 41 0.0526 - - 14 19 5 0 - 8 0.789 - 9 0.0526 - 13 0.0526 - 15 0.0526 - 41 0.0526 - - 15 4 3 0 - 2 0.25 - 8 0.5 - 36 0.25 - - 21 17 9 2 - 0 0.0588 - 2 0.0588 - 13 0.0588 - 28 0.0588 - 29 0.0588 - 31 0.0588 - 32 0.118 - 33 0.0588 - 37 0.471 - - 35 5 4 0 - 0 0.2 - 29 0.2 - 32 0.4 - 33 0.2 - - 47 8 1 0 - 37 1 - - 23 2 1 0 - 4 1 - - 34 4214 26 0 - 0 0.00119 - 2 0.00498 - 3 0.00617 - 4 0.0038 - 7 0.0835 - 8 0.00166 - 13 0.245 - 14 0.173 - 15 0.0209 - 16 0.000237 - 19 0.00119 - 21 0.00119 - 26 0.00403 - 28 0.0038 - 29 0.000949 - 30 0.000475 - 31 0.00119 - 32 0.000475 - 33 0.000949 - 41 0.407 - 42 0.0135 - 43 0.00142 - 44 0.00237 - 45 0.00285 - 46 0.014 - 47 0.0038 - - 35 2343 31 0 - 0 0.0149 - 1 0.000427 - 2 0.0201 - 3 0.00299 - 4 0.0282 - 5 0.000854 - 7 0.0973 - 8 0.00683 - 13 0.141 - 14 0.178 - 15 0.023 - 16 0.0111 - 19 0.00469 - 21 0.0145 - 24 0.0064 - 26 0.0107 - 28 0.0405 - 29 0.00683 - 30 0.0141 - 31 0.00512 - 32 0.0102 - 33 0.00598 - 37 0.000427 - 40 0.000854 - 41 0.257 - 42 0.0102 - 43 0.00128 - 44 0.00256 - 45 0.0294 - 46 0.00555 - 47 0.0495 - - 36 159 11 0 - 2 0.0377 - 7 0.0126 - 13 0.145 - 14 0.157 - 16 0.00629 - 28 0.00629 - 32 0.00629 - 41 0.604 - 42 0.00629 - 46 0.0126 - 47 0.00629 - - 37 36 12 1 - 2 0.0556 - 7 0.222 - 8 0.0833 - 13 0.0278 - 19 0.0278 - 21 0.0833 - 28 0.333 - 33 0.0556 - 41 0.0278 - 42 0.0278 - 45 0.0278 - 47 0.0278 - - 21 8 6 0 - 7 0.125 - 8 0.25 - 21 0.125 - 28 0.125 - 33 0.25 - 42 0.125 - - 47 7352 37 14 - 0 0.00571 - 1 0.000136 - 2 0.0114 - 3 0.00598 - 4 0.0112 - 5 0.000272 - 6 0.000136 - 7 0.082 - 8 0.00449 - 9 0.000136 - 10 0.000136 - 13 0.222 - 14 0.174 - 15 0.0204 - 16 0.00381 - 17 0.000136 - 19 0.00258 - 21 0.00558 - 22 0.000136 - 24 0.00245 - 26 0.00585 - 28 0.0189 - 29 0.00354 - 30 0.00517 - 31 0.00354 - 32 0.00449 - 33 0.00394 - 36 0.000136 - 37 0.000136 - 40 0.000408 - 41 0.345 - 42 0.0122 - 43 0.00122 - 44 0.00218 - 45 0.012 - 46 0.0103 - 47 0.0186 - - 3 7 1 0 - 41 1 - - 4 73 16 0 - 2 0.0411 - 3 0.0685 - 7 0.0274 - 13 0.315 - 14 0.0274 - 17 0.0137 - 21 0.0411 - 24 0.0274 - 28 0.0137 - 30 0.0137 - 31 0.0411 - 32 0.0137 - 33 0.0274 - 41 0.274 - 42 0.0274 - 45 0.0274 - - 7 358 17 0 - 2 0.00279 - 3 0.0168 - 4 0.00279 - 6 0.00279 - 8 0.0112 - 9 0.00279 - 10 0.00279 - 13 0.592 - 14 0.291 - 15 0.0223 - 19 0.00559 - 21 0.0112 - 22 0.00279 - 31 0.00279 - 41 0.014 - 42 0.0112 - 46 0.00559 - - 10 5 1 0 - 41 1 - - 15 1 1 0 - 36 1 - - 21 9 8 0 - 0 0.111 - 2 0.111 - 13 0.111 - 28 0.111 - 29 0.111 - 31 0.111 - 32 0.222 - 33 0.111 - - 34 4211 26 0 - 0 0.00119 - 2 0.00499 - 3 0.00617 - 4 0.00356 - 7 0.0836 - 8 0.00166 - 13 0.246 - 14 0.174 - 15 0.0209 - 16 0.000237 - 19 0.00119 - 21 0.000712 - 26 0.00404 - 28 0.0038 - 29 0.00095 - 30 0.000475 - 31 0.00119 - 32 0.000475 - 33 0.00095 - 41 0.407 - 42 0.0135 - 43 0.00142 - 44 0.00237 - 45 0.00285 - 46 0.014 - 47 0.0038 - - 35 2336 31 0 - 0 0.015 - 1 0.000428 - 2 0.0201 - 3 0.003 - 4 0.0283 - 5 0.000856 - 7 0.0976 - 8 0.00642 - 13 0.141 - 14 0.178 - 15 0.0231 - 16 0.0111 - 19 0.00471 - 21 0.012 - 24 0.00642 - 26 0.0107 - 28 0.0407 - 29 0.00685 - 30 0.0141 - 31 0.00514 - 32 0.0103 - 33 0.00599 - 37 0.000428 - 40 0.000856 - 41 0.258 - 42 0.0103 - 43 0.00128 - 44 0.00257 - 45 0.0295 - 46 0.00557 - 47 0.0497 - - 36 159 11 0 - 2 0.0377 - 7 0.0126 - 13 0.145 - 14 0.157 - 16 0.00629 - 28 0.00629 - 32 0.00629 - 41 0.604 - 42 0.00629 - 46 0.0126 - 47 0.00629 - - 37 34 12 0 - 2 0.0588 - 7 0.235 - 8 0.0882 - 13 0.0294 - 19 0.0294 - 21 0.0294 - 28 0.353 - 33 0.0588 - 41 0.0294 - 42 0.0294 - 45 0.0294 - 47 0.0294 - - 55 43 9 0 - 8 0.0233 - 13 0.0233 - 14 0.0233 - 21 0.0233 - 28 0.0233 - 30 0.0233 - 33 0.0465 - 41 0.767 - 47 0.0465 - - 70 20 10 0 - 2 0.05 - 7 0.2 - 8 0.05 - 24 0.05 - 28 0.35 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.05 - 33 0.1 - - 71 7 6 0 - 7 0.143 - 8 0.143 - 14 0.143 - 28 0.286 - 29 0.143 - 31 0.143 - - 72 78 17 0 - 0 0.0128 - 2 0.0128 - 7 0.0769 - 8 0.0128 - 13 0.0513 - 21 0.0128 - 26 0.0128 - 28 0.0385 - 29 0.0385 - 31 0.0256 - 32 0.0256 - 33 0.0256 - 40 0.0128 - 41 0.564 - 42 0.0128 - 45 0.0513 - 47 0.0128 - - 55 44 9 1 - 8 0.0227 - 13 0.0227 - 14 0.0227 - 21 0.0227 - 28 0.0227 - 30 0.0227 - 33 0.0455 - 41 0.773 - 47 0.0455 - - 73 23 2 0 - 21 0.0435 - 41 0.957 - - 70 20 10 0 - 2 0.05 - 7 0.2 - 8 0.05 - 24 0.05 - 28 0.35 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.05 - 33 0.1 - - 71 7 6 0 - 7 0.143 - 8 0.143 - 14 0.143 - 28 0.286 - 29 0.143 - 31 0.143 - - 72 78 17 0 - 0 0.0128 - 2 0.0128 - 7 0.0769 - 8 0.0128 - 13 0.0513 - 21 0.0128 - 26 0.0128 - 28 0.0385 - 29 0.0385 - 31 0.0256 - 32 0.0256 - 33 0.0256 - 40 0.0128 - 41 0.564 - 42 0.0128 - 45 0.0513 - 47 0.0128 - - 73 23 5 0 - 3 0.13 - 4 0.522 - 8 0.087 - 10 0.13 - 13 0.13 - -73 782 20 2 - 0 0.00256 - 2 0.0128 - 3 0.0384 - 4 0.0767 - 8 0.0205 - 10 0.0205 - 13 0.371 - 14 0.115 - 15 0.0281 - 16 0.00256 - 28 0.0153 - 30 0.00512 - 31 0.00256 - 33 0.00512 - 41 0.23 - 42 0.0153 - 44 0.00256 - 45 0.00767 - 46 0.023 - 47 0.00512 - - 26 18 7 0 - 8 0.0556 - 13 0.444 - 14 0.0556 - 28 0.0556 - 31 0.0556 - 41 0.278 - 46 0.0556 - - 47 391 20 1 - 0 0.00256 - 2 0.0128 - 3 0.0384 - 4 0.0767 - 8 0.0205 - 10 0.0205 - 13 0.371 - 14 0.115 - 15 0.0281 - 16 0.00256 - 28 0.0153 - 30 0.00512 - 31 0.00256 - 33 0.00512 - 41 0.23 - 42 0.0153 - 44 0.00256 - 45 0.00767 - 46 0.023 - 47 0.00512 - - 26 18 7 0 - 8 0.0556 - 13 0.444 - 14 0.0556 - 28 0.0556 - 31 0.0556 - 41 0.278 - 46 0.0556 - -74 443 33 26 - 0 0.0113 - 2 0.0113 - 3 0.0361 - 4 0.0971 - 5 0.00451 - 6 0.00677 - 7 0.0474 - 8 0.00677 - 9 0.00677 - 12 0.00451 - 13 0.0564 - 14 0.0271 - 15 0.0113 - 16 0.00226 - 18 0.00451 - 19 0.00903 - 21 0.0113 - 22 0.00226 - 24 0.00451 - 25 0.00677 - 26 0.00226 - 28 0.00903 - 29 0.0226 - 30 0.00451 - 31 0.00903 - 32 0.00451 - 33 0.00226 - 40 0.00226 - 41 0.147 - 42 0.0271 - 44 0.00451 - 45 0.0406 - 47 0.357 - - 0 2 2 0 - 18 0.5 - 28 0.5 - - 2 5 3 0 - 13 0.2 - 14 0.4 - 47 0.4 - - 4 47 10 0 - 0 0.0426 - 2 0.0213 - 4 0.0213 - 7 0.149 - 13 0.0213 - 32 0.0213 - 41 0.447 - 42 0.0638 - 45 0.0851 - 47 0.128 - - 6 5 4 0 - 6 0.4 - 13 0.2 - 41 0.2 - 45 0.2 - - 7 11 9 0 - 2 0.0909 - 3 0.182 - 4 0.0909 - 13 0.0909 - 14 0.182 - 19 0.0909 - 28 0.0909 - 29 0.0909 - 41 0.0909 - - 8 4 4 0 - 14 0.25 - 22 0.25 - 26 0.25 - 44 0.25 - - 9 26 1 0 - 4 1 - - 12 1 1 0 - 12 1 - - 13 5 4 0 - 6 0.2 - 9 0.4 - 41 0.2 - 47 0.2 - - 14 4 3 0 - 2 0.25 - 8 0.5 - 9 0.25 - - 15 7 6 0 - 7 0.143 - 15 0.286 - 16 0.143 - 40 0.143 - 41 0.143 - 47 0.143 - - 21 3 3 0 - 4 0.333 - 7 0.333 - 13 0.333 - - 22 11 1 0 - 4 1 - - 25 39 4 0 - 3 0.0513 - 13 0.0513 - 14 0.0256 - 47 0.872 - - 26 6 5 0 - 3 0.333 - 7 0.167 - 13 0.167 - 14 0.167 - 29 0.167 - - 40 1 1 0 - 8 1 - - 41 9 4 0 - 0 0.111 - 13 0.333 - 21 0.444 - 33 0.111 - - 42 4 2 0 - 13 0.25 - 25 0.75 - - 47 174 22 15 - 0 0.0115 - 2 0.0115 - 3 0.046 - 4 0.0115 - 5 0.00575 - 7 0.0517 - 12 0.00575 - 13 0.0517 - 14 0.0287 - 18 0.00575 - 19 0.0115 - 24 0.00575 - 28 0.0115 - 29 0.0287 - 30 0.00575 - 31 0.0115 - 32 0.00575 - 41 0.161 - 42 0.023 - 44 0.00575 - 45 0.046 - 47 0.454 - - 0 2 2 0 - 18 0.5 - 28 0.5 - - 4 47 10 0 - 0 0.0426 - 2 0.0213 - 4 0.0213 - 7 0.149 - 13 0.0213 - 32 0.0213 - 41 0.447 - 42 0.0638 - 45 0.0851 - 47 0.128 - - 6 2 2 0 - 13 0.5 - 45 0.5 - - 7 10 9 0 - 2 0.1 - 3 0.2 - 4 0.1 - 13 0.1 - 14 0.1 - 19 0.1 - 28 0.1 - 29 0.1 - 41 0.1 - - 8 2 2 0 - 14 0.5 - 44 0.5 - - 12 1 1 0 - 12 1 - - 21 2 2 0 - 7 0.5 - 13 0.5 - - 25 39 4 0 - 3 0.0513 - 13 0.0513 - 14 0.0256 - 47 0.872 - - 26 5 4 0 - 3 0.4 - 13 0.2 - 14 0.2 - 29 0.2 - - 49 7 3 0 - 31 0.143 - 45 0.143 - 47 0.714 - - 55 15 7 0 - 3 0.0667 - 19 0.0667 - 29 0.133 - 31 0.0667 - 41 0.133 - 45 0.0667 - 47 0.467 - - 57 5 4 0 - 3 0.2 - 13 0.4 - 24 0.2 - 30 0.2 - - 64 2 2 0 - 7 0.5 - 42 0.5 - - 69 1 1 0 - 5 1 - - 74 19 3 0 - 41 0.0526 - 45 0.0526 - 47 0.895 - - 49 7 3 0 - 31 0.143 - 45 0.143 - 47 0.714 - - 55 25 12 0 - 3 0.04 - 7 0.04 - 13 0.04 - 15 0.08 - 19 0.04 - 21 0.04 - 29 0.08 - 31 0.04 - 41 0.2 - 42 0.04 - 45 0.08 - 47 0.28 - - 57 5 4 0 - 3 0.2 - 13 0.4 - 24 0.2 - 30 0.2 - - 62 3 3 0 - 29 0.333 - 42 0.333 - 47 0.333 - - 64 5 4 0 - 7 0.2 - 13 0.2 - 41 0.4 - 42 0.2 - - 69 2 2 0 - 5 0.5 - 42 0.5 - - 74 23 3 0 - 41 0.174 - 45 0.087 - 47 0.739 - diff --git a/samples/G-code/rm.g b/samples/G-code/rm.g deleted file mode 100644 index 89c5aa24..00000000 --- a/samples/G-code/rm.g +++ /dev/null @@ -1,29735 +0,0 @@ -48 34015 42 38 - 0 0.0085 - 2 0.0361 - 3 0.0052 - 4 0.00714 - 5 0.000206 - 6 0.000147 - 7 0.166 - 8 0.0349 - 9 0.00138 - 10 5.88e-05 - 12 0.00218 - 13 0.166 - 14 0.0529 - 15 0.0215 - 16 0.000529 - 17 0.000176 - 18 0.000118 - 19 0.00285 - 20 0.000353 - 21 0.0147 - 22 0.00171 - 23 0.000441 - 24 0.000353 - 26 0.0645 - 28 0.000147 - 29 0.0052 - 30 0.00409 - 31 0.003 - 32 0.00171 - 33 0.000823 - 34 0.0005 - 35 0.00047 - 37 0.00318 - 39 0.00173 - 40 0.223 - 41 0.136 - 42 0.0157 - 43 0.00247 - 44 0.00326 - 45 0.00173 - 46 0.00808 - 47 0.001 - - 0 6 4 0 - 21 0.167 - 30 0.167 - 40 0.333 - 41 0.333 - - 2 252 19 5 - 0 0.00397 - 3 0.0357 - 4 0.0238 - 7 0.0159 - 8 0.206 - 9 0.0437 - 10 0.00794 - 13 0.0556 - 14 0.00397 - 15 0.0119 - 21 0.341 - 22 0.0714 - 23 0.0516 - 29 0.0119 - 30 0.0238 - 31 0.0357 - 39 0.0159 - 41 0.0119 - 45 0.0278 - - 8 29 7 0 - 4 0.103 - 13 0.241 - 14 0.0345 - 21 0.138 - 29 0.0345 - 30 0.172 - 31 0.276 - - 41 42 10 0 - 3 0.0714 - 4 0.0238 - 7 0.0476 - 8 0.19 - 9 0.0476 - 10 0.0238 - 13 0.0238 - 21 0.452 - 29 0.0238 - 39 0.0952 - - 42 4 4 0 - 8 0.25 - 10 0.25 - 13 0.25 - 23 0.25 - - 46 4 1 0 - 45 1 - - 48 170 15 0 - 0 0.00588 - 3 0.0353 - 4 0.0118 - 7 0.0118 - 8 0.253 - 9 0.0529 - 13 0.0294 - 15 0.0176 - 21 0.365 - 22 0.106 - 23 0.0647 - 29 0.00588 - 31 0.00588 - 41 0.0176 - 45 0.0176 - - 3 192 10 5 - 3 0.00521 - 4 0.0104 - 7 0.0104 - 8 0.13 - 13 0.703 - 14 0.0573 - 15 0.0521 - 41 0.0156 - 43 0.0104 - 44 0.00521 - - 2 1 1 0 - 43 1 - - 3 19 5 0 - 8 0.105 - 13 0.421 - 14 0.105 - 15 0.263 - 41 0.105 - - 38 1 1 0 - 44 1 - - 39 155 8 0 - 3 0.00645 - 4 0.0129 - 8 0.142 - 13 0.748 - 14 0.0452 - 15 0.0323 - 41 0.00645 - 43 0.00645 - - 47 6 2 0 - 7 0.333 - 13 0.667 - - 4 32 7 1 - 8 0.312 - 13 0.438 - 14 0.0625 - 15 0.0312 - 39 0.0938 - 41 0.0312 - 42 0.0312 - - 47 5 3 0 - 39 0.6 - 41 0.2 - 42 0.2 - - 6 10 6 0 - 7 0.1 - 8 0.1 - 13 0.4 - 40 0.2 - 44 0.1 - 46 0.1 - - 7 50 13 2 - 2 0.04 - 3 0.02 - 7 0.32 - 8 0.02 - 9 0.02 - 13 0.04 - 14 0.04 - 21 0.18 - 26 0.1 - 30 0.02 - 31 0.02 - 40 0.14 - 41 0.04 - - 41 3 2 0 - 8 0.333 - 21 0.667 - - 47 36 10 0 - 2 0.0278 - 3 0.0278 - 7 0.389 - 9 0.0278 - 14 0.0556 - 21 0.111 - 26 0.139 - 30 0.0278 - 40 0.139 - 41 0.0556 - - 8 9595 38 23 - 0 0.00563 - 2 0.0308 - 3 0.0112 - 4 0.00834 - 5 0.000417 - 6 0.000104 - 7 0.235 - 8 0.0211 - 9 0.000208 - 12 0.00104 - 13 0.116 - 14 0.0552 - 15 0.0311 - 16 0.000521 - 19 0.00584 - 20 0.00073 - 21 0.0174 - 22 0.000521 - 24 0.000208 - 26 0.161 - 28 0.000104 - 29 0.000625 - 30 0.00396 - 31 0.00177 - 32 0.000208 - 33 0.000521 - 34 0.000625 - 35 0.000938 - 37 0.00427 - 39 0.00198 - 40 0.132 - 41 0.117 - 42 0.0148 - 43 0.00146 - 44 0.00208 - 45 0.00188 - 46 0.0127 - 47 0.000104 - - 2 518 18 0 - 0 0.00193 - 2 0.00965 - 7 0.0328 - 8 0.029 - 12 0.00193 - 13 0.342 - 14 0.322 - 15 0.00772 - 16 0.00386 - 19 0.00193 - 21 0.00579 - 26 0.0212 - 40 0.0927 - 41 0.0907 - 42 0.0116 - 43 0.00193 - 45 0.00579 - 46 0.0174 - - 3 34 6 0 - 8 0.0588 - 13 0.618 - 14 0.206 - 40 0.0294 - 41 0.0294 - 44 0.0588 - - 4 11 7 0 - 7 0.273 - 8 0.0909 - 13 0.182 - 14 0.0909 - 15 0.0909 - 21 0.0909 - 41 0.182 - - 7 20 7 0 - 7 0.15 - 8 0.05 - 13 0.1 - 14 0.35 - 15 0.05 - 40 0.2 - 41 0.1 - - 8 227 11 0 - 0 0.00441 - 2 0.0132 - 7 0.00441 - 8 0.0793 - 13 0.498 - 14 0.313 - 15 0.0529 - 30 0.00441 - 39 0.00441 - 40 0.00441 - 41 0.022 - - 9 15 3 0 - 2 0.0667 - 13 0.4 - 14 0.533 - - 10 29 4 0 - 8 0.069 - 13 0.621 - 14 0.276 - 41 0.0345 - - 13 23 7 0 - 2 0.13 - 7 0.304 - 8 0.174 - 13 0.087 - 14 0.087 - 40 0.087 - 41 0.13 - - 14 2 1 0 - 41 1 - - 15 54 8 0 - 8 0.111 - 13 0.259 - 14 0.037 - 15 0.519 - 16 0.0185 - 40 0.0185 - 41 0.0185 - 45 0.0185 - - 21 1945 28 0 - 0 0.00463 - 2 0.0221 - 3 0.0072 - 4 0.0118 - 7 0.217 - 8 0.0411 - 9 0.000514 - 13 0.202 - 14 0.074 - 15 0.0226 - 19 0.00308 - 21 0.00977 - 26 0.0833 - 28 0.000514 - 30 0.00463 - 31 0.000514 - 33 0.000514 - 34 0.000514 - 35 0.00103 - 37 0.00411 - 39 0.00103 - 40 0.128 - 41 0.116 - 42 0.0165 - 43 0.00206 - 44 0.00257 - 45 0.00206 - 46 0.0211 - - 22 423 21 0 - 0 0.00946 - 2 0.0402 - 3 0.00473 - 4 0.00946 - 7 0.229 - 8 0.0402 - 13 0.196 - 14 0.0757 - 15 0.00946 - 16 0.00236 - 19 0.00236 - 21 0.00473 - 26 0.13 - 30 0.00236 - 37 0.00709 - 39 0.00473 - 40 0.109 - 41 0.0969 - 42 0.0118 - 45 0.00236 - 46 0.0118 - - 23 263 15 0 - 0 0.0076 - 2 0.0114 - 7 0.076 - 8 0.0875 - 12 0.0038 - 13 0.441 - 14 0.205 - 15 0.0266 - 19 0.0038 - 26 0.0418 - 31 0.0114 - 40 0.0152 - 41 0.0532 - 42 0.0114 - 45 0.0038 - - 26 10 4 0 - 8 0.1 - 13 0.6 - 14 0.1 - 15 0.2 - - 37 1 1 0 - 19 1 - - 39 62 6 0 - 8 0.0968 - 13 0.742 - 14 0.0161 - 15 0.0161 - 31 0.0161 - 41 0.113 - - 41 59 8 0 - 2 0.0339 - 13 0.525 - 14 0.0678 - 15 0.288 - 16 0.0169 - 40 0.0169 - 41 0.0339 - 45 0.0169 - - 45 44 8 0 - 2 0.0227 - 7 0.0227 - 13 0.0455 - 21 0.0227 - 40 0.159 - 41 0.0455 - 42 0.0227 - 46 0.659 - - 47 5604 35 0 - 0 0.00625 - 2 0.0373 - 3 0.0162 - 4 0.00946 - 5 0.000714 - 7 0.294 - 8 0.00428 - 9 0.000178 - 12 0.00143 - 13 0.0121 - 14 0.00178 - 15 0.0316 - 19 0.00821 - 20 0.00125 - 21 0.0244 - 22 0.000892 - 24 0.000357 - 26 0.231 - 29 0.000892 - 30 0.00464 - 31 0.00214 - 32 0.000178 - 33 0.000714 - 34 0.000892 - 35 0.00125 - 37 0.00482 - 39 0.0025 - 40 0.155 - 41 0.118 - 42 0.0162 - 43 0.00161 - 44 0.00214 - 45 0.00125 - 46 0.00642 - 47 0.000178 - - 49 92 12 0 - 0 0.0109 - 2 0.0109 - 6 0.0109 - 7 0.25 - 8 0.0217 - 13 0.141 - 14 0.0761 - 26 0.141 - 40 0.152 - 41 0.141 - 42 0.0217 - 46 0.0217 - - 50 4 2 0 - 2 0.25 - 14 0.75 - - 55 141 13 0 - 0 0.00709 - 2 0.0496 - 7 0.0638 - 13 0.00709 - 21 0.0213 - 29 0.00709 - 30 0.00709 - 32 0.00709 - 37 0.0213 - 40 0.135 - 41 0.652 - 42 0.0142 - 44 0.00709 - - 60 4 2 0 - 13 0.75 - 40 0.25 - - 9 829 25 8 - 0 0.00362 - 2 0.0338 - 3 0.00362 - 4 0.00362 - 7 0.422 - 8 0.0169 - 12 0.00241 - 13 0.171 - 14 0.0627 - 15 0.0109 - 17 0.00121 - 21 0.00965 - 24 0.00483 - 26 0.0627 - 29 0.00241 - 30 0.00121 - 31 0.00121 - 32 0.00241 - 37 0.00241 - 40 0.0953 - 41 0.0724 - 42 0.00844 - 43 0.00121 - 46 0.00241 - 47 0.00121 - - 2 36 12 0 - 2 0.0278 - 7 0.111 - 8 0.0556 - 13 0.167 - 14 0.25 - 15 0.0556 - 21 0.0278 - 26 0.0556 - 40 0.111 - 41 0.0556 - 42 0.0556 - 46 0.0278 - - 4 5 2 0 - 13 0.6 - 14 0.4 - - 8 9 3 0 - 2 0.222 - 13 0.556 - 14 0.222 - - 21 279 14 0 - 2 0.00717 - 3 0.0108 - 4 0.0108 - 7 0.287 - 8 0.0358 - 13 0.348 - 14 0.0932 - 15 0.0179 - 26 0.0358 - 40 0.0824 - 41 0.0573 - 42 0.00717 - 43 0.00358 - 46 0.00358 - - 47 383 20 0 - 0 0.00261 - 2 0.0601 - 7 0.517 - 8 0.00261 - 12 0.00522 - 13 0.0261 - 14 0.00261 - 15 0.00261 - 17 0.00261 - 21 0.0183 - 24 0.0104 - 26 0.102 - 29 0.00522 - 30 0.00261 - 31 0.00261 - 32 0.00522 - 37 0.00522 - 40 0.123 - 41 0.0966 - 42 0.00783 - - 49 3 2 0 - 13 0.333 - 14 0.667 - - 55 96 9 0 - 0 0.0208 - 7 0.656 - 8 0.0104 - 13 0.156 - 14 0.0625 - 26 0.0104 - 40 0.0417 - 41 0.0312 - 47 0.0104 - - 60 7 6 0 - 7 0.143 - 13 0.143 - 14 0.286 - 15 0.143 - 40 0.143 - 41 0.143 - - 10 68 16 4 - 2 0.132 - 4 0.0294 - 7 0.103 - 8 0.0441 - 13 0.294 - 14 0.0147 - 15 0.0147 - 21 0.0147 - 30 0.0441 - 31 0.0294 - 37 0.0147 - 39 0.0147 - 40 0.0147 - 41 0.191 - 42 0.0294 - 46 0.0147 - - 4 2 2 0 - 2 0.5 - 14 0.5 - - 8 12 3 0 - 8 0.167 - 13 0.75 - 41 0.0833 - - 21 12 5 0 - 7 0.0833 - 8 0.0833 - 13 0.417 - 41 0.333 - 46 0.0833 - - 47 39 13 0 - 2 0.205 - 4 0.0513 - 7 0.154 - 13 0.0769 - 15 0.0256 - 21 0.0256 - 30 0.0769 - 31 0.0513 - 37 0.0256 - 39 0.0256 - 40 0.0256 - 41 0.205 - 42 0.0513 - - 13 1034 21 11 - 0 0.0029 - 2 0.00774 - 4 0.00193 - 7 0.0338 - 8 0.088 - 9 0.00677 - 12 0.000967 - 13 0.632 - 14 0.147 - 15 0.0126 - 21 0.000967 - 26 0.0106 - 29 0.000967 - 30 0.00387 - 31 0.00677 - 33 0.000967 - 40 0.0106 - 41 0.0155 - 42 0.000967 - 44 0.0087 - 46 0.00677 - - 2 23 5 0 - 7 0.0435 - 13 0.304 - 14 0.522 - 40 0.0435 - 41 0.087 - - 3 766 12 0 - 2 0.00392 - 8 0.0914 - 9 0.00261 - 13 0.77 - 14 0.106 - 15 0.0117 - 30 0.00392 - 31 0.00522 - 40 0.00131 - 41 0.00131 - 44 0.00131 - 46 0.00131 - - 8 37 10 0 - 0 0.0811 - 2 0.0811 - 7 0.108 - 8 0.027 - 13 0.27 - 14 0.0811 - 15 0.027 - 41 0.135 - 44 0.0811 - 46 0.108 - - 9 7 5 0 - 7 0.286 - 8 0.143 - 14 0.143 - 26 0.143 - 41 0.286 - - 10 2 2 0 - 7 0.5 - 8 0.5 - - 21 7 4 0 - 7 0.429 - 14 0.286 - 40 0.143 - 44 0.143 - - 45 2 1 0 - 46 1 - - 47 48 11 0 - 2 0.0208 - 4 0.0417 - 7 0.396 - 12 0.0208 - 15 0.0417 - 26 0.188 - 30 0.0208 - 31 0.0208 - 40 0.104 - 41 0.125 - 42 0.0208 - - 49 2 2 0 - 26 0.5 - 40 0.5 - - 55 1 1 0 - 40 1 - - 60 117 12 0 - 7 0.0171 - 8 0.154 - 9 0.0427 - 13 0.291 - 14 0.41 - 15 0.00855 - 21 0.00855 - 29 0.00855 - 31 0.0171 - 33 0.00855 - 40 0.00855 - 44 0.0256 - - 14 11 8 0 - 8 0.182 - 9 0.0909 - 13 0.0909 - 14 0.0909 - 15 0.0909 - 40 0.0909 - 41 0.182 - 44 0.182 - - 15 45 14 3 - 2 0.0444 - 7 0.178 - 8 0.0444 - 13 0.2 - 14 0.111 - 15 0.178 - 16 0.0444 - 21 0.0222 - 26 0.0444 - 40 0.0444 - 41 0.0222 - 42 0.0222 - 43 0.0222 - 47 0.0222 - - 2 5 3 0 - 14 0.4 - 15 0.4 - 40 0.2 - - 15 19 8 0 - 2 0.0526 - 8 0.105 - 13 0.368 - 14 0.105 - 15 0.211 - 26 0.0526 - 42 0.0526 - 47 0.0526 - - 47 15 8 0 - 2 0.0667 - 7 0.533 - 16 0.0667 - 21 0.0667 - 26 0.0667 - 40 0.0667 - 41 0.0667 - 43 0.0667 - - 21 402 29 7 - 0 0.0199 - 2 0.0199 - 3 0.0249 - 4 0.0896 - 6 0.00249 - 7 0.216 - 8 0.0224 - 9 0.00249 - 12 0.00249 - 13 0.0249 - 14 0.00249 - 15 0.00249 - 17 0.00249 - 18 0.00498 - 19 0.00249 - 20 0.00249 - 21 0.0373 - 22 0.0522 - 26 0.197 - 28 0.00249 - 29 0.00498 - 30 0.0796 - 31 0.00746 - 33 0.00249 - 40 0.097 - 41 0.0547 - 42 0.0174 - 46 0.00249 - 47 0.00249 - - 2 9 4 0 - 8 0.444 - 21 0.333 - 40 0.111 - 41 0.111 - - 8 48 10 0 - 2 0.0208 - 4 0.0208 - 7 0.229 - 13 0.0208 - 15 0.0208 - 21 0.0208 - 26 0.479 - 40 0.0833 - 41 0.0833 - 42 0.0208 - - 21 41 10 0 - 2 0.0244 - 4 0.0244 - 7 0.439 - 8 0.0732 - 13 0.0244 - 21 0.0244 - 26 0.22 - 40 0.0732 - 41 0.0732 - 42 0.0244 - - 23 2 2 0 - 28 0.5 - 40 0.5 - - 41 3 3 0 - 8 0.333 - 21 0.333 - 30 0.333 - - 47 282 27 0 - 0 0.0248 - 2 0.0142 - 3 0.0355 - 4 0.117 - 6 0.00355 - 7 0.188 - 8 0.00355 - 9 0.00355 - 12 0.00355 - 13 0.0248 - 14 0.00355 - 17 0.00355 - 18 0.00709 - 19 0.00355 - 20 0.00355 - 21 0.0284 - 22 0.0745 - 26 0.16 - 29 0.00709 - 30 0.11 - 31 0.00709 - 33 0.00355 - 40 0.0957 - 41 0.0496 - 42 0.0177 - 46 0.00355 - 47 0.00355 - - 55 6 5 0 - 0 0.167 - 2 0.167 - 4 0.167 - 31 0.167 - 40 0.333 - - 22 62 10 2 - 0 0.0161 - 2 0.0323 - 7 0.452 - 8 0.113 - 21 0.0161 - 22 0.0161 - 26 0.0806 - 31 0.0161 - 40 0.161 - 41 0.0968 - - 21 20 7 0 - 7 0.3 - 8 0.3 - 21 0.05 - 26 0.1 - 31 0.05 - 40 0.15 - 41 0.05 - - 47 34 7 0 - 0 0.0294 - 2 0.0588 - 7 0.5 - 22 0.0294 - 26 0.0882 - 40 0.176 - 41 0.118 - - 24 11 5 0 - 7 0.273 - 21 0.0909 - 30 0.0909 - 40 0.182 - 41 0.364 - - 26 2 2 0 - 13 0.5 - 21 0.5 - - 28 7 6 0 - 4 0.143 - 7 0.286 - 13 0.143 - 19 0.143 - 42 0.143 - 46 0.143 - - 29 12 5 1 - 7 0.167 - 8 0.417 - 13 0.25 - 26 0.0833 - 41 0.0833 - - 47 4 3 0 - 7 0.5 - 26 0.25 - 41 0.25 - - 30 83 12 4 - 0 0.0361 - 2 0.012 - 7 0.157 - 8 0.0482 - 13 0.277 - 14 0.0602 - 15 0.0482 - 26 0.0723 - 40 0.169 - 41 0.0964 - 43 0.012 - 46 0.012 - - 21 28 6 0 - 8 0.143 - 13 0.5 - 14 0.0714 - 15 0.107 - 26 0.107 - 41 0.0714 - - 45 1 1 0 - 46 1 - - 47 34 8 0 - 0 0.0588 - 2 0.0294 - 7 0.294 - 13 0.0294 - 26 0.0882 - 40 0.353 - 41 0.118 - 43 0.0294 - - 49 3 3 0 - 0 0.333 - 7 0.333 - 14 0.333 - - 31 741 29 9 - 0 0.0027 - 2 0.0243 - 3 0.0121 - 4 0.0081 - 7 0.192 - 8 0.0715 - 9 0.00135 - 12 0.00135 - 13 0.19 - 14 0.117 - 15 0.0526 - 16 0.00135 - 17 0.00135 - 19 0.0027 - 21 0.00675 - 24 0.0081 - 26 0.101 - 30 0.00135 - 31 0.00135 - 37 0.00135 - 39 0.0162 - 40 0.0931 - 41 0.0607 - 42 0.0054 - 43 0.0027 - 44 0.00135 - 45 0.00675 - 46 0.0135 - 47 0.00135 - - 2 18 7 0 - 0 0.0556 - 7 0.111 - 8 0.0556 - 13 0.222 - 14 0.389 - 40 0.111 - 46 0.0556 - - 7 1 1 0 - 46 1 - - 13 13 6 0 - 2 0.0769 - 8 0.538 - 13 0.154 - 14 0.0769 - 26 0.0769 - 40 0.0769 - - 21 379 22 0 - 2 0.0132 - 3 0.0132 - 7 0.0633 - 8 0.106 - 9 0.00264 - 13 0.322 - 14 0.201 - 15 0.095 - 16 0.00264 - 21 0.00528 - 24 0.00792 - 26 0.0343 - 30 0.00264 - 31 0.00264 - 37 0.00264 - 39 0.029 - 40 0.0475 - 41 0.0237 - 42 0.00528 - 43 0.00528 - 45 0.0106 - 46 0.00528 - - 22 17 7 0 - 2 0.118 - 7 0.471 - 13 0.0588 - 14 0.0588 - 40 0.118 - 41 0.118 - 46 0.0588 - - 23 8 6 0 - 2 0.25 - 13 0.25 - 14 0.125 - 24 0.125 - 40 0.125 - 41 0.125 - - 47 268 22 0 - 0 0.00373 - 2 0.0299 - 3 0.0112 - 4 0.0224 - 7 0.358 - 8 0.00373 - 12 0.00373 - 13 0.00746 - 15 0.00746 - 17 0.00373 - 19 0.00746 - 21 0.0112 - 24 0.00746 - 26 0.224 - 39 0.00373 - 40 0.153 - 41 0.112 - 42 0.00373 - 44 0.00373 - 45 0.00373 - 46 0.0149 - 47 0.00373 - - 49 27 11 0 - 3 0.037 - 7 0.333 - 8 0.148 - 13 0.148 - 14 0.037 - 15 0.037 - 26 0.037 - 40 0.0741 - 41 0.0741 - 42 0.037 - 46 0.037 - - 55 5 3 0 - 7 0.6 - 40 0.2 - 41 0.2 - - 39 2 1 0 - 3 1 - - 40 8 3 0 - 6 0.125 - 46 0.25 - 47 0.625 - - 41 149 17 7 - 0 0.0134 - 2 0.289 - 3 0.00671 - 7 0.101 - 8 0.134 - 9 0.0134 - 13 0.0805 - 14 0.0671 - 15 0.00671 - 19 0.0268 - 21 0.121 - 22 0.0403 - 23 0.00671 - 26 0.0403 - 31 0.0134 - 39 0.0134 - 46 0.0268 - - 8 19 10 0 - 2 0.105 - 7 0.0526 - 13 0.211 - 14 0.263 - 19 0.0526 - 21 0.105 - 26 0.0526 - 31 0.0526 - 39 0.0526 - 46 0.0526 - - 9 3 1 0 - 14 1 - - 10 1 1 0 - 23 1 - - 13 2 1 0 - 13 1 - - 48 105 16 0 - 0 0.00952 - 2 0.371 - 3 0.00952 - 7 0.0571 - 8 0.162 - 9 0.019 - 13 0.0476 - 14 0.019 - 15 0.00952 - 19 0.019 - 21 0.152 - 22 0.0571 - 26 0.019 - 31 0.00952 - 39 0.00952 - 46 0.0286 - - 55 6 2 0 - 7 0.667 - 26 0.333 - - 57 6 4 0 - 0 0.167 - 7 0.5 - 8 0.167 - 19 0.167 - - 42 16 7 0 - 2 0.375 - 7 0.125 - 14 0.125 - 21 0.188 - 26 0.0625 - 32 0.0625 - 34 0.0625 - - 44 1 1 0 - 39 1 - - 45 9 6 0 - 7 0.222 - 8 0.222 - 9 0.111 - 13 0.111 - 14 0.111 - 31 0.222 - - 46 73 14 5 - 2 0.11 - 4 0.0274 - 7 0.452 - 8 0.0274 - 13 0.0959 - 14 0.0274 - 19 0.0411 - 21 0.0548 - 26 0.0959 - 29 0.0137 - 30 0.0137 - 42 0.0137 - 44 0.0137 - 45 0.0137 - - 8 56 9 0 - 2 0.0893 - 4 0.0357 - 7 0.518 - 8 0.0179 - 13 0.107 - 14 0.0179 - 19 0.0536 - 21 0.0536 - 26 0.107 - - 13 3 3 0 - 8 0.333 - 14 0.333 - 44 0.333 - - 41 3 3 0 - 21 0.333 - 30 0.333 - 45 0.333 - - 48 5 3 0 - 2 0.6 - 7 0.2 - 42 0.2 - - 57 1 1 0 - 29 1 - - 47 14411 39 31 - 0 0.00992 - 2 0.0338 - 3 0.00222 - 4 0.00583 - 5 0.000139 - 6 0.000139 - 7 0.126 - 8 0.038 - 9 0.00104 - 12 0.00257 - 13 0.193 - 14 0.0622 - 15 0.0192 - 16 0.000625 - 17 0.000208 - 18 0.000139 - 19 0.0018 - 20 0.000278 - 21 0.00971 - 22 0.000416 - 26 0.0212 - 28 0.000139 - 29 0.00597 - 30 0.00285 - 31 0.00285 - 32 0.00201 - 33 0.000971 - 34 0.000555 - 35 0.000486 - 37 0.00347 - 39 0.00118 - 40 0.263 - 41 0.155 - 42 0.0176 - 43 0.00285 - 44 0.00298 - 45 0.00167 - 46 0.00701 - 47 0.00118 - - 0 5 3 0 - 30 0.2 - 40 0.4 - 41 0.4 - - 3 187 8 0 - 4 0.0107 - 8 0.134 - 13 0.711 - 14 0.0588 - 15 0.0535 - 41 0.016 - 43 0.0107 - 44 0.00535 - - 4 28 5 0 - 8 0.357 - 13 0.5 - 14 0.0714 - 15 0.0357 - 41 0.0357 - - 6 8 5 0 - 7 0.125 - 8 0.125 - 13 0.5 - 44 0.125 - 46 0.125 - - 7 20 7 0 - 2 0.1 - 7 0.2 - 13 0.05 - 14 0.1 - 21 0.1 - 40 0.35 - 41 0.1 - - 8 6530 37 0 - 0 0.00827 - 2 0.0409 - 3 0.00322 - 4 0.00796 - 5 0.000153 - 6 0.000153 - 7 0.169 - 8 0.0297 - 9 0.000153 - 12 0.00153 - 13 0.163 - 14 0.0809 - 15 0.0204 - 16 0.000766 - 19 0.00337 - 20 0.000613 - 21 0.0139 - 22 0.000613 - 26 0.0383 - 28 0.000153 - 29 0.000919 - 30 0.00383 - 31 0.00214 - 32 0.000306 - 33 0.000766 - 34 0.000919 - 35 0.00107 - 37 0.00551 - 39 0.000766 - 40 0.194 - 41 0.168 - 42 0.0208 - 43 0.00214 - 44 0.00306 - 45 0.00245 - 46 0.0101 - 47 0.000153 - - 9 730 23 0 - 0 0.00411 - 2 0.0384 - 3 0.00411 - 4 0.00411 - 7 0.403 - 8 0.0192 - 12 0.00274 - 13 0.185 - 14 0.0712 - 15 0.0123 - 17 0.00137 - 21 0.00959 - 26 0.037 - 29 0.00274 - 31 0.00137 - 32 0.00274 - 37 0.00274 - 40 0.108 - 41 0.0781 - 42 0.00822 - 43 0.00137 - 46 0.00137 - 47 0.00137 - - 10 56 14 0 - 2 0.143 - 4 0.0357 - 7 0.0714 - 8 0.0536 - 13 0.321 - 14 0.0179 - 15 0.0179 - 21 0.0179 - 37 0.0179 - 39 0.0179 - 40 0.0179 - 41 0.214 - 42 0.0357 - 46 0.0179 - - 13 1001 21 0 - 0 0.003 - 2 0.00799 - 4 0.002 - 7 0.021 - 8 0.0909 - 9 0.00699 - 12 0.000999 - 13 0.651 - 14 0.152 - 15 0.012 - 21 0.000999 - 26 0.000999 - 29 0.000999 - 30 0.003 - 31 0.00699 - 33 0.000999 - 40 0.011 - 41 0.014 - 42 0.000999 - 44 0.00799 - 46 0.004 - - 14 10 7 0 - 8 0.2 - 9 0.1 - 13 0.1 - 14 0.1 - 40 0.1 - 41 0.2 - 44 0.2 - - 15 39 13 0 - 2 0.0513 - 7 0.179 - 8 0.0513 - 13 0.231 - 14 0.128 - 15 0.128 - 16 0.0513 - 21 0.0256 - 40 0.0513 - 41 0.0256 - 42 0.0256 - 43 0.0256 - 47 0.0256 - - 21 161 21 0 - 0 0.0373 - 2 0.0435 - 4 0.0683 - 7 0.224 - 8 0.0373 - 9 0.00621 - 12 0.00621 - 13 0.0124 - 17 0.00621 - 18 0.0124 - 21 0.0559 - 22 0.00621 - 26 0.0248 - 30 0.00621 - 31 0.0186 - 33 0.00621 - 40 0.236 - 41 0.137 - 42 0.0435 - 46 0.00621 - 47 0.00621 - - 22 58 10 0 - 0 0.0172 - 2 0.0345 - 7 0.448 - 8 0.121 - 21 0.0172 - 22 0.0172 - 26 0.0517 - 31 0.0172 - 40 0.172 - 41 0.103 - - 24 9 4 0 - 7 0.222 - 21 0.111 - 40 0.222 - 41 0.444 - - 28 5 5 0 - 4 0.2 - 13 0.2 - 19 0.2 - 42 0.2 - 46 0.2 - - 29 10 4 0 - 7 0.1 - 8 0.5 - 13 0.3 - 41 0.1 - - 30 74 11 0 - 0 0.0405 - 2 0.0135 - 7 0.122 - 8 0.0541 - 13 0.311 - 14 0.0676 - 15 0.0541 - 26 0.027 - 40 0.189 - 41 0.108 - 43 0.0135 - - 31 530 25 0 - 0 0.00377 - 2 0.034 - 3 0.0113 - 7 0.0585 - 8 0.1 - 9 0.00189 - 12 0.00189 - 13 0.266 - 14 0.164 - 15 0.0717 - 16 0.00189 - 17 0.00189 - 21 0.00566 - 26 0.00189 - 30 0.00189 - 31 0.00189 - 37 0.00189 - 39 0.0208 - 40 0.13 - 41 0.083 - 42 0.00755 - 43 0.00377 - 45 0.00755 - 46 0.0151 - 47 0.00189 - - 40 8 3 0 - 6 0.125 - 46 0.25 - 47 0.625 - - 41 29 9 0 - 0 0.069 - 7 0.0345 - 8 0.0345 - 13 0.414 - 14 0.31 - 15 0.0345 - 26 0.0345 - 31 0.0345 - 46 0.0345 - - 42 5 4 0 - 2 0.2 - 7 0.2 - 14 0.4 - 32 0.2 - - 46 27 11 0 - 2 0.148 - 7 0.222 - 8 0.0741 - 13 0.259 - 14 0.0741 - 19 0.037 - 26 0.037 - 29 0.037 - 30 0.037 - 42 0.037 - 44 0.037 - - 48 221 17 0 - 0 0.00452 - 2 0.0136 - 7 0.0588 - 8 0.0452 - 12 0.00452 - 13 0.167 - 14 0.104 - 15 0.0226 - 16 0.00452 - 21 0.00452 - 26 0.0136 - 30 0.0136 - 40 0.385 - 41 0.109 - 42 0.0317 - 44 0.00452 - 46 0.0136 - - 49 12 4 0 - 2 0.0833 - 7 0.0833 - 40 0.5 - 41 0.333 - - 55 300 18 0 - 0 0.0467 - 2 0.0267 - 3 0.00333 - 7 0.03 - 8 0.00333 - 9 0.00333 - 12 0.0133 - 13 0.0233 - 21 0.01 - 26 0.01 - 29 0.0833 - 31 0.03 - 32 0.0133 - 37 0.00333 - 40 0.213 - 41 0.47 - 42 0.0133 - 46 0.00333 - - 57 2237 27 0 - 0 0.0152 - 2 0.0434 - 4 0.00358 - 7 0.0724 - 8 0.00134 - 12 0.00581 - 13 0.00179 - 14 0.00224 - 15 0.000447 - 19 0.000894 - 21 0.00492 - 26 0.00402 - 28 0.000447 - 29 0.0219 - 30 0.000894 - 32 0.00894 - 33 0.00268 - 34 0.000447 - 37 0.00268 - 40 0.553 - 41 0.219 - 42 0.0259 - 43 0.00134 - 44 0.000894 - 45 0.000894 - 46 0.00358 - 47 0.000894 - - 58 36 11 0 - 2 0.0556 - 7 0.0556 - 8 0.0278 - 13 0.528 - 14 0.0556 - 15 0.0278 - 26 0.0278 - 30 0.0278 - 40 0.0833 - 41 0.0833 - 47 0.0278 - - 59 7 5 0 - 3 0.143 - 7 0.286 - 8 0.286 - 21 0.143 - 40 0.143 - - 60 706 15 0 - 2 0.00142 - 4 0.00283 - 8 0.154 - 9 0.00425 - 13 0.687 - 14 0.00992 - 15 0.0793 - 21 0.00142 - 29 0.00142 - 30 0.00283 - 31 0.00567 - 41 0.0142 - 43 0.0241 - 44 0.0085 - 45 0.00283 - - 62 898 17 0 - 0 0.0189 - 2 0.0156 - 7 0.0746 - 12 0.00445 - 13 0.00111 - 21 0.00557 - 29 0.00111 - 30 0.00111 - 33 0.00111 - 34 0.00111 - 37 0.00334 - 40 0.653 - 41 0.199 - 42 0.0134 - 44 0.00111 - 46 0.00223 - 47 0.00334 - - 64 460 11 0 - 0 0.00652 - 2 0.0283 - 4 0.00217 - 5 0.00217 - 7 0.0326 - 21 0.00217 - 40 0.672 - 41 0.222 - 42 0.0283 - 46 0.00217 - 47 0.00217 - - 48 1047 22 10 - 0 0.000955 - 2 0.165 - 4 0.00573 - 7 0.449 - 8 0.0115 - 12 0.000955 - 13 0.0363 - 14 0.022 - 15 0.00478 - 16 0.000955 - 19 0.000955 - 21 0.00955 - 22 0.000955 - 26 0.0229 - 30 0.00287 - 31 0.000955 - 40 0.0812 - 41 0.129 - 42 0.0229 - 43 0.000955 - 44 0.0229 - 46 0.00764 - - 2 207 18 0 - 0 0.00483 - 2 0.0193 - 4 0.00483 - 7 0.0773 - 8 0.0435 - 12 0.00483 - 13 0.164 - 14 0.106 - 15 0.0145 - 16 0.00483 - 21 0.00966 - 26 0.00966 - 30 0.0145 - 40 0.319 - 41 0.135 - 42 0.0483 - 44 0.00966 - 46 0.00966 - - 4 3 1 0 - 2 1 - - 7 5 3 0 - 8 0.4 - 40 0.4 - 41 0.2 - - 21 10 4 0 - 2 0.1 - 15 0.1 - 40 0.4 - 41 0.4 - - 41 42 8 0 - 2 0.452 - 13 0.0238 - 15 0.0238 - 21 0.0476 - 40 0.119 - 41 0.286 - 44 0.0238 - 46 0.0238 - - 42 3 2 0 - 40 0.667 - 41 0.333 - - 44 1 1 0 - 43 1 - - 45 12 5 0 - 2 0.0833 - 7 0.167 - 40 0.167 - 41 0.167 - 46 0.417 - - 47 750 13 0 - 2 0.191 - 4 0.00667 - 7 0.603 - 8 0.00133 - 13 0.00133 - 19 0.00133 - 21 0.008 - 22 0.00133 - 26 0.028 - 31 0.00133 - 41 0.111 - 42 0.0187 - 44 0.028 - - 50 4 2 0 - 14 0.25 - 41 0.75 - - 49 35 9 3 - 2 0.0286 - 7 0.229 - 8 0.0571 - 13 0.0857 - 15 0.0857 - 21 0.0286 - 26 0.114 - 40 0.171 - 41 0.2 - - 8 16 8 0 - 2 0.0625 - 7 0.125 - 8 0.0625 - 13 0.188 - 15 0.188 - 21 0.0625 - 26 0.25 - 40 0.0625 - - 47 5 2 0 - 7 0.8 - 41 0.2 - - 48 7 3 0 - 7 0.143 - 40 0.571 - 41 0.286 - - 50 4 2 0 - 8 0.75 - 31 0.25 - - 55 335 19 8 - 0 0.0418 - 2 0.0239 - 3 0.00299 - 7 0.0478 - 8 0.00299 - 9 0.00299 - 12 0.0119 - 13 0.0209 - 21 0.00896 - 26 0.0716 - 29 0.0746 - 31 0.0269 - 32 0.0119 - 37 0.00299 - 40 0.191 - 41 0.439 - 42 0.0119 - 43 0.00299 - 46 0.00299 - - 7 4 1 0 - 40 1 - - 8 287 17 0 - 0 0.0418 - 2 0.0279 - 3 0.00348 - 7 0.0279 - 8 0.00348 - 12 0.00697 - 13 0.00697 - 21 0.00697 - 26 0.0836 - 29 0.0871 - 31 0.0314 - 32 0.0105 - 37 0.00348 - 40 0.199 - 41 0.446 - 42 0.0105 - 46 0.00348 - - 21 14 6 0 - 0 0.0714 - 7 0.357 - 12 0.0714 - 21 0.0714 - 32 0.0714 - 41 0.357 - - 31 3 3 0 - 0 0.333 - 12 0.333 - 40 0.333 - - 44 1 1 0 - 43 1 - - 47 1 1 0 - 9 1 - - 48 7 4 0 - 7 0.143 - 13 0.429 - 40 0.143 - 41 0.286 - - 49 8 4 0 - 7 0.125 - 40 0.125 - 41 0.625 - 42 0.125 - - 57 2329 28 15 - 0 0.0146 - 2 0.0416 - 4 0.00386 - 7 0.0932 - 8 0.00129 - 9 0.000429 - 12 0.00558 - 13 0.00215 - 14 0.00215 - 15 0.000859 - 19 0.000859 - 21 0.00558 - 26 0.0125 - 28 0.000429 - 29 0.021 - 30 0.000859 - 32 0.00859 - 33 0.00258 - 34 0.000429 - 37 0.00258 - 40 0.532 - 41 0.213 - 42 0.0258 - 43 0.00129 - 44 0.000859 - 45 0.000859 - 46 0.00386 - 47 0.000859 - - 2 1 1 0 - 9 1 - - 7 12 3 0 - 2 0.0833 - 7 0.333 - 40 0.583 - - 8 1515 26 0 - 0 0.0165 - 2 0.0436 - 4 0.00198 - 7 0.0904 - 8 0.00132 - 12 0.00726 - 13 0.00198 - 14 0.00198 - 15 0.00132 - 19 0.00132 - 21 0.00528 - 26 0.0112 - 28 0.00066 - 29 0.0277 - 30 0.00066 - 32 0.00858 - 33 0.00132 - 34 0.00066 - 37 0.00264 - 40 0.525 - 41 0.222 - 42 0.0205 - 43 0.00132 - 44 0.00066 - 46 0.0033 - 47 0.00066 - - 9 57 9 0 - 0 0.0351 - 2 0.0526 - 4 0.0526 - 7 0.228 - 8 0.0175 - 14 0.0175 - 40 0.421 - 41 0.14 - 42 0.0351 - - 13 19 7 0 - 0 0.0526 - 7 0.158 - 26 0.0526 - 37 0.0526 - 40 0.368 - 41 0.263 - 45 0.0526 - - 21 76 13 0 - 0 0.0132 - 2 0.0263 - 7 0.0658 - 21 0.0132 - 26 0.0658 - 29 0.0526 - 32 0.0526 - 33 0.0395 - 37 0.0132 - 40 0.408 - 41 0.224 - 42 0.0132 - 47 0.0132 - - 31 139 13 0 - 0 0.0144 - 2 0.0647 - 4 0.00719 - 7 0.0719 - 21 0.00719 - 29 0.00719 - 32 0.0144 - 33 0.00719 - 40 0.532 - 41 0.245 - 42 0.0144 - 43 0.00719 - 45 0.00719 - - 32 2 2 0 - 29 0.5 - 32 0.5 - - 42 2 2 0 - 40 0.5 - 46 0.5 - - 46 30 5 0 - 2 0.0667 - 7 0.0333 - 40 0.7 - 41 0.167 - 42 0.0333 - - 48 350 15 0 - 0 0.00571 - 2 0.0343 - 4 0.00571 - 7 0.114 - 12 0.00286 - 13 0.00286 - 14 0.00286 - 21 0.00857 - 26 0.0143 - 30 0.00286 - 40 0.569 - 41 0.186 - 42 0.0429 - 44 0.00286 - 46 0.00571 - - 55 27 3 0 - 40 0.815 - 41 0.0741 - 42 0.111 - - 57 54 7 0 - 2 0.0185 - 7 0.0185 - 12 0.0185 - 29 0.0185 - 40 0.685 - 41 0.222 - 42 0.0185 - - 58 1 1 0 - 46 1 - - 60 1 1 0 - 13 1 - - 58 55 15 3 - 2 0.0545 - 4 0.0182 - 7 0.164 - 8 0.0182 - 13 0.345 - 14 0.0364 - 15 0.0182 - 19 0.0182 - 21 0.0182 - 23 0.0182 - 26 0.0909 - 30 0.0182 - 40 0.0545 - 41 0.109 - 47 0.0182 - - 2 2 2 0 - 21 0.5 - 23 0.5 - - 8 10 5 0 - 4 0.1 - 7 0.3 - 13 0.1 - 19 0.1 - 26 0.4 - - 48 37 11 0 - 2 0.0811 - 7 0.108 - 8 0.027 - 13 0.459 - 14 0.027 - 15 0.027 - 26 0.027 - 30 0.027 - 40 0.0541 - 41 0.135 - 47 0.027 - - 59 11 6 0 - 3 0.0909 - 7 0.364 - 8 0.182 - 21 0.0909 - 26 0.182 - 40 0.0909 - - 60 708 16 1 - 2 0.00141 - 4 0.00282 - 7 0.00141 - 8 0.154 - 9 0.00424 - 13 0.685 - 14 0.00989 - 15 0.0791 - 21 0.00141 - 29 0.00141 - 30 0.00282 - 31 0.00565 - 41 0.0155 - 43 0.024 - 44 0.00847 - 45 0.00282 - - 8 1 1 0 - 29 1 - - 62 909 18 4 - 0 0.0187 - 2 0.0154 - 7 0.0781 - 12 0.0044 - 13 0.0011 - 21 0.0066 - 26 0.0011 - 29 0.0011 - 30 0.0011 - 33 0.0011 - 34 0.0011 - 37 0.0066 - 40 0.646 - 41 0.197 - 42 0.0132 - 44 0.0011 - 46 0.0033 - 47 0.0033 - - 9 6 2 0 - 7 0.5 - 40 0.5 - - 21 35 7 0 - 0 0.114 - 2 0.0286 - 33 0.0286 - 40 0.657 - 41 0.114 - 42 0.0286 - 47 0.0286 - - 31 30 2 0 - 40 0.867 - 41 0.133 - - 57 15 3 0 - 37 0.2 - 40 0.533 - 41 0.267 - - 64 463 12 2 - 0 0.00648 - 2 0.0281 - 4 0.00216 - 5 0.00216 - 7 0.0346 - 21 0.00216 - 26 0.00216 - 40 0.667 - 41 0.22 - 42 0.0302 - 46 0.00216 - 47 0.00216 - - 9 16 5 0 - 0 0.0625 - 2 0.0625 - 7 0.25 - 40 0.438 - 41 0.188 - - 58 8 2 0 - 40 0.875 - 47 0.125 - -49 42263 41 35 - 0 0.065 - 1 0.00182 - 2 0.0136 - 3 0.0157 - 4 0.0309 - 5 0.00128 - 7 0.159 - 8 0.0225 - 9 0.00199 - 10 0.000118 - 12 0.0152 - 13 0.00757 - 14 0.00327 - 15 0.00613 - 16 9.46e-05 - 17 7.1e-05 - 19 0.0103 - 20 0.00149 - 21 0.0208 - 22 0.00442 - 23 0.000189 - 24 0.00026 - 26 0.0331 - 28 0.0399 - 29 0.067 - 30 0.0304 - 31 0.063 - 32 0.0227 - 33 0.0363 - 34 0.000284 - 35 0.00133 - 37 0.00338 - 39 0.00251 - 40 0.131 - 41 0.171 - 42 0.00989 - 43 0.000875 - 44 0.000592 - 45 0.00163 - 46 0.00244 - 47 0.00128 - - 2 55 16 5 - 0 0.0182 - 3 0.109 - 4 0.0364 - 7 0.109 - 8 0.0545 - 9 0.0182 - 19 0.0182 - 21 0.236 - 22 0.109 - 26 0.0182 - 28 0.0182 - 29 0.0909 - 31 0.0727 - 39 0.0182 - 41 0.0545 - 45 0.0182 - - 4 9 4 0 - 8 0.111 - 28 0.111 - 29 0.444 - 31 0.333 - - 22 3 1 0 - 22 1 - - 41 7 4 0 - 3 0.286 - 7 0.143 - 21 0.429 - 39 0.143 - - 47 10 9 0 - 0 0.1 - 7 0.1 - 8 0.1 - 19 0.1 - 21 0.1 - 26 0.1 - 29 0.1 - 31 0.1 - 41 0.2 - - 49 23 7 0 - 3 0.174 - 4 0.087 - 7 0.174 - 8 0.0435 - 21 0.348 - 22 0.13 - 45 0.0435 - - 3 20 7 1 - 2 0.05 - 7 0.1 - 14 0.05 - 15 0.05 - 26 0.05 - 40 0.35 - 41 0.35 - - 47 8 4 0 - 2 0.125 - 15 0.125 - 26 0.125 - 41 0.625 - - 4 84 15 3 - 0 0.0357 - 4 0.0119 - 7 0.19 - 8 0.0595 - 13 0.0238 - 14 0.0238 - 26 0.0119 - 28 0.0119 - 29 0.0119 - 30 0.0119 - 31 0.0357 - 32 0.0476 - 40 0.333 - 41 0.179 - 42 0.0119 - - 7 52 8 0 - 0 0.0192 - 4 0.0192 - 7 0.115 - 8 0.0385 - 28 0.0192 - 31 0.0192 - 40 0.481 - 41 0.288 - - 21 4 2 0 - 8 0.5 - 13 0.5 - - 47 28 11 0 - 0 0.0714 - 7 0.357 - 8 0.0357 - 14 0.0714 - 26 0.0357 - 29 0.0357 - 30 0.0357 - 31 0.0714 - 32 0.143 - 40 0.107 - 42 0.0357 - - 5 2 2 0 - 0 0.5 - 35 0.5 - - 6 7 4 0 - 15 0.143 - 41 0.571 - 42 0.143 - 46 0.143 - - 7 697 30 8 - 0 0.0143 - 2 0.0201 - 3 0.187 - 4 0.0459 - 5 0.00143 - 7 0.244 - 8 0.0244 - 12 0.0043 - 13 0.01 - 14 0.00717 - 15 0.01 - 17 0.00143 - 19 0.00717 - 20 0.00574 - 21 0.0301 - 22 0.0043 - 26 0.0301 - 28 0.00717 - 29 0.0258 - 30 0.0115 - 31 0.0359 - 32 0.0043 - 33 0.00717 - 35 0.00143 - 39 0.0258 - 40 0.115 - 41 0.109 - 42 0.00287 - 45 0.00143 - 47 0.00574 - - 2 9 3 0 - 7 0.111 - 21 0.556 - 41 0.333 - - 4 7 5 0 - 0 0.143 - 4 0.143 - 19 0.143 - 40 0.286 - 41 0.286 - - 9 8 4 0 - 8 0.25 - 29 0.25 - 30 0.125 - 31 0.375 - - 13 12 10 0 - 2 0.0833 - 8 0.25 - 13 0.0833 - 29 0.0833 - 30 0.0833 - 31 0.0833 - 33 0.0833 - 40 0.0833 - 41 0.0833 - 42 0.0833 - - 21 28 11 0 - 3 0.0357 - 4 0.25 - 7 0.179 - 8 0.0714 - 13 0.107 - 15 0.0357 - 21 0.0357 - 26 0.0357 - 30 0.0714 - 40 0.107 - 41 0.0714 - - 22 33 8 0 - 8 0.182 - 21 0.0303 - 28 0.152 - 29 0.212 - 30 0.0303 - 31 0.273 - 32 0.0606 - 33 0.0606 - - 47 482 28 0 - 0 0.0145 - 2 0.0228 - 3 0.268 - 4 0.0436 - 7 0.332 - 8 0.00622 - 12 0.00207 - 13 0.00622 - 14 0.0104 - 15 0.0124 - 17 0.00207 - 19 0.0083 - 20 0.00622 - 21 0.0249 - 22 0.00622 - 26 0.0332 - 29 0.00622 - 30 0.00622 - 31 0.0207 - 32 0.00207 - 33 0.00207 - 35 0.00207 - 39 0.0373 - 40 0.0581 - 41 0.0539 - 42 0.00207 - 45 0.00207 - 47 0.0083 - - 55 114 14 0 - 0 0.0175 - 2 0.0175 - 4 0.0263 - 5 0.00877 - 7 0.0351 - 12 0.0175 - 20 0.00877 - 21 0.0175 - 26 0.0351 - 29 0.0439 - 31 0.00877 - 33 0.00877 - 40 0.404 - 41 0.351 - - 8 310 25 8 - 0 0.00323 - 2 0.00968 - 3 0.0129 - 4 0.0161 - 7 0.31 - 8 0.0161 - 9 0.00323 - 12 0.00323 - 13 0.0419 - 14 0.0226 - 15 0.029 - 19 0.00323 - 21 0.00968 - 26 0.142 - 29 0.00968 - 30 0.00645 - 32 0.00323 - 35 0.00645 - 37 0.00323 - 40 0.129 - 41 0.19 - 42 0.0129 - 43 0.00645 - 46 0.00645 - 47 0.00323 - - 2 5 3 0 - 4 0.2 - 7 0.2 - 41 0.6 - - 4 6 4 0 - 7 0.333 - 40 0.167 - 41 0.167 - 42 0.333 - - 7 5 4 0 - 13 0.2 - 29 0.2 - 40 0.4 - 41 0.2 - - 21 71 10 0 - 4 0.0423 - 7 0.451 - 13 0.0845 - 14 0.0141 - 15 0.0282 - 26 0.127 - 29 0.0141 - 35 0.0141 - 40 0.0845 - 41 0.141 - - 22 7 3 0 - 7 0.286 - 41 0.571 - 46 0.143 - - 23 4 4 0 - 9 0.25 - 14 0.25 - 26 0.25 - 41 0.25 - - 28 2 1 0 - 13 1 - - 47 204 24 0 - 0 0.0049 - 2 0.0147 - 3 0.0196 - 4 0.0049 - 7 0.275 - 8 0.0245 - 12 0.0049 - 13 0.0196 - 14 0.0245 - 15 0.0294 - 19 0.0049 - 21 0.0147 - 26 0.167 - 29 0.0049 - 30 0.0098 - 32 0.0049 - 35 0.0049 - 37 0.0049 - 40 0.142 - 41 0.191 - 42 0.0098 - 43 0.0098 - 46 0.0049 - 47 0.0049 - - 9 132 13 4 - 0 0.00758 - 2 0.0152 - 4 0.0303 - 7 0.508 - 8 0.0303 - 13 0.053 - 14 0.0152 - 15 0.0303 - 21 0.00758 - 26 0.053 - 33 0.00758 - 40 0.106 - 41 0.136 - - 4 4 3 0 - 13 0.25 - 15 0.25 - 41 0.5 - - 21 29 10 0 - 0 0.0345 - 4 0.103 - 7 0.379 - 8 0.103 - 13 0.103 - 15 0.069 - 26 0.0345 - 33 0.0345 - 40 0.103 - 41 0.0345 - - 47 55 9 0 - 2 0.0182 - 4 0.0182 - 7 0.473 - 13 0.0364 - 15 0.0182 - 21 0.0182 - 26 0.0545 - 40 0.164 - 41 0.2 - - 55 39 7 0 - 2 0.0256 - 7 0.692 - 13 0.0256 - 14 0.0256 - 26 0.0769 - 40 0.0513 - 41 0.103 - - 10 131 21 1 - 0 0.0229 - 3 0.0382 - 4 0.191 - 5 0.0153 - 7 0.183 - 8 0.0611 - 13 0.0534 - 15 0.0153 - 19 0.0458 - 20 0.00763 - 21 0.107 - 26 0.0153 - 28 0.0229 - 29 0.00763 - 30 0.0153 - 31 0.0229 - 33 0.00763 - 37 0.0153 - 40 0.0305 - 41 0.107 - 42 0.0153 - - 47 7 5 0 - 0 0.143 - 7 0.286 - 26 0.143 - 31 0.286 - 40 0.143 - - 11 6 1 0 - 41 1 - - 13 92 23 6 - 0 0.0217 - 2 0.0543 - 4 0.0326 - 7 0.293 - 8 0.0217 - 9 0.0109 - 13 0.0217 - 15 0.0109 - 19 0.0109 - 21 0.0217 - 26 0.109 - 28 0.0109 - 29 0.0326 - 30 0.0109 - 31 0.0217 - 32 0.0109 - 33 0.0109 - 34 0.0109 - 35 0.0217 - 37 0.0217 - 40 0.13 - 41 0.0978 - 42 0.0109 - - 2 3 2 0 - 7 0.667 - 42 0.333 - - 3 2 2 0 - 9 0.5 - 13 0.5 - - 4 11 9 0 - 0 0.0909 - 7 0.0909 - 13 0.0909 - 28 0.0909 - 30 0.0909 - 33 0.0909 - 35 0.182 - 37 0.182 - 40 0.0909 - - 7 6 5 0 - 7 0.167 - 8 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 8 11 7 0 - 2 0.0909 - 7 0.182 - 8 0.0909 - 19 0.0909 - 26 0.273 - 32 0.0909 - 40 0.182 - - 47 50 12 0 - 0 0.02 - 2 0.04 - 4 0.06 - 7 0.34 - 15 0.02 - 21 0.02 - 26 0.12 - 29 0.06 - 31 0.04 - 34 0.02 - 40 0.12 - 41 0.14 - - 14 5 3 0 - 2 0.4 - 7 0.2 - 26 0.4 - - 15 26 4 0 - 4 0.0385 - 15 0.0769 - 40 0.0385 - 41 0.846 - - 19 6 4 0 - 0 0.333 - 7 0.167 - 40 0.167 - 41 0.333 - - 21 17337 41 14 - 0 0.0758 - 1 0.00225 - 2 0.01 - 3 0.0253 - 4 0.0318 - 5 0.00127 - 7 0.155 - 8 0.0237 - 9 0.00323 - 10 0.000173 - 12 0.018 - 13 0.00675 - 14 0.00271 - 15 0.00583 - 16 0.000115 - 17 5.77e-05 - 19 0.0114 - 20 0.00144 - 21 0.0224 - 22 0.00848 - 23 0.000231 - 24 0.000404 - 26 0.0337 - 28 0.0465 - 29 0.0786 - 30 0.0359 - 31 0.0731 - 32 0.0269 - 33 0.0436 - 34 0.000115 - 35 0.00121 - 37 0.00335 - 39 0.00438 - 40 0.0751 - 41 0.159 - 42 0.00594 - 43 0.000577 - 44 0.00075 - 45 0.00173 - 46 0.0026 - 47 0.000577 - - 2 80 22 0 - 0 0.0125 - 2 0.025 - 3 0.0125 - 4 0.0125 - 7 0.188 - 8 0.0125 - 10 0.0125 - 15 0.0125 - 19 0.0125 - 21 0.05 - 22 0.0125 - 26 0.025 - 28 0.0125 - 29 0.0125 - 30 0.025 - 31 0.0625 - 32 0.0125 - 40 0.175 - 41 0.262 - 42 0.025 - 44 0.0125 - 45 0.0125 - - 4 12 7 0 - 0 0.0833 - 4 0.0833 - 8 0.333 - 19 0.0833 - 22 0.0833 - 26 0.0833 - 40 0.25 - - 7 72 14 0 - 0 0.0417 - 2 0.0278 - 4 0.125 - 7 0.0556 - 8 0.0139 - 9 0.0278 - 15 0.0278 - 21 0.0139 - 26 0.0278 - 30 0.0278 - 31 0.0417 - 40 0.153 - 41 0.389 - 42 0.0278 - - 10 4 2 0 - 4 0.75 - 15 0.25 - - 19 1 1 0 - 13 1 - - 21 886 32 0 - 0 0.044 - 2 0.0135 - 3 0.00113 - 4 0.044 - 5 0.00339 - 7 0.31 - 8 0.0282 - 9 0.00226 - 10 0.00113 - 12 0.00903 - 13 0.00339 - 14 0.00339 - 15 0.00226 - 19 0.0113 - 21 0.0147 - 22 0.00564 - 26 0.035 - 28 0.0181 - 29 0.0169 - 30 0.00677 - 31 0.0406 - 32 0.00903 - 33 0.0169 - 35 0.00339 - 37 0.00564 - 40 0.159 - 41 0.172 - 42 0.0102 - 43 0.00226 - 44 0.00226 - 45 0.00113 - 46 0.00339 - - 22 117 12 0 - 2 0.00855 - 4 0.0171 - 7 0.342 - 8 0.0598 - 26 0.0427 - 28 0.0513 - 30 0.0171 - 31 0.0598 - 37 0.0171 - 40 0.094 - 41 0.274 - 42 0.0171 - - 23 34 13 0 - 0 0.0294 - 2 0.0294 - 7 0.0588 - 8 0.118 - 12 0.0882 - 14 0.0294 - 15 0.0882 - 19 0.0294 - 29 0.0294 - 31 0.235 - 32 0.0294 - 41 0.206 - 43 0.0294 - - 24 3 3 0 - 7 0.333 - 40 0.333 - 46 0.333 - - 41 2 2 0 - 3 0.5 - 4 0.5 - - 45 3 3 0 - 7 0.333 - 21 0.333 - 46 0.333 - - 47 15577 41 0 - 0 0.0812 - 1 0.0025 - 2 0.00905 - 3 0.0279 - 4 0.0315 - 5 0.00122 - 7 0.146 - 8 0.0237 - 9 0.00327 - 10 6.42e-05 - 12 0.0193 - 13 0.00719 - 14 0.00276 - 15 0.00578 - 16 0.000128 - 17 6.42e-05 - 19 0.0115 - 20 0.0016 - 21 0.0236 - 22 0.00899 - 23 0.000257 - 24 0.000449 - 26 0.0343 - 28 0.0503 - 29 0.0859 - 30 0.0391 - 31 0.0774 - 32 0.0293 - 33 0.0475 - 34 0.000128 - 35 0.00116 - 37 0.00308 - 39 0.00488 - 40 0.0583 - 41 0.149 - 42 0.00507 - 43 0.000449 - 44 0.000642 - 45 0.0018 - 46 0.0025 - 47 0.000642 - - 49 10 5 0 - 3 0.1 - 7 0.4 - 9 0.1 - 40 0.2 - 41 0.2 - - 55 526 17 0 - 0 0.0076 - 2 0.0285 - 4 0.00951 - 7 0.12 - 13 0.0019 - 15 0.0038 - 19 0.00951 - 26 0.0152 - 29 0.0152 - 30 0.0019 - 31 0.0019 - 33 0.0019 - 37 0.0057 - 40 0.395 - 41 0.363 - 42 0.0171 - 46 0.0019 - - 22 718 21 5 - 0 0.00418 - 2 0.0334 - 3 0.00139 - 4 0.0432 - 7 0.297 - 8 0.0752 - 12 0.00279 - 13 0.00279 - 21 0.00696 - 26 0.0306 - 28 0.0306 - 29 0.00696 - 30 0.00557 - 31 0.0153 - 32 0.00139 - 33 0.00418 - 40 0.298 - 41 0.127 - 42 0.0111 - 43 0.00139 - 45 0.00139 - - 2 11 5 0 - 7 0.364 - 8 0.0909 - 28 0.0909 - 40 0.0909 - 41 0.364 - - 4 13 6 0 - 7 0.231 - 8 0.385 - 13 0.0769 - 30 0.154 - 32 0.0769 - 42 0.0769 - - 21 114 13 0 - 2 0.0263 - 4 0.0263 - 7 0.289 - 8 0.325 - 12 0.00877 - 21 0.0351 - 26 0.0351 - 28 0.0439 - 30 0.0175 - 31 0.0263 - 33 0.0175 - 40 0.105 - 41 0.0439 - - 47 311 19 0 - 0 0.00322 - 2 0.0482 - 3 0.00322 - 4 0.0836 - 7 0.476 - 8 0.0161 - 12 0.00322 - 13 0.00322 - 21 0.00322 - 26 0.0482 - 28 0.0514 - 29 0.0161 - 31 0.0257 - 33 0.00322 - 40 0.109 - 41 0.09 - 42 0.00965 - 43 0.00322 - 45 0.00322 - - 55 266 9 0 - 0 0.00752 - 2 0.0226 - 4 0.00752 - 7 0.0827 - 8 0.0226 - 26 0.0113 - 40 0.628 - 41 0.203 - 42 0.015 - - 23 36 13 1 - 0 0.0278 - 4 0.0278 - 7 0.194 - 8 0.0278 - 12 0.0278 - 21 0.0278 - 26 0.0556 - 28 0.0556 - 31 0.389 - 32 0.0278 - 40 0.0556 - 41 0.0278 - 42 0.0556 - - 7 2 2 0 - 12 0.5 - 21 0.5 - - 24 95 19 2 - 0 0.0105 - 2 0.0105 - 3 0.0316 - 4 0.0421 - 7 0.232 - 8 0.0105 - 13 0.0211 - 14 0.0421 - 15 0.0105 - 20 0.0211 - 21 0.0421 - 26 0.0632 - 30 0.0316 - 39 0.0105 - 40 0.274 - 41 0.116 - 42 0.0105 - 46 0.0105 - 47 0.0105 - - 2 1 1 0 - 42 1 - - 8 1 1 0 - 0 1 - - 28 6 3 0 - 8 0.167 - 28 0.333 - 41 0.5 - - 29 1 1 0 - 42 1 - - 31 4 3 0 - 13 0.25 - 26 0.5 - 40 0.25 - - 37 3 2 0 - 4 0.333 - 41 0.667 - - 40 10 3 0 - 43 0.1 - 46 0.1 - 47 0.8 - - 41 32 10 2 - 2 0.219 - 3 0.0625 - 4 0.0312 - 7 0.219 - 8 0.0312 - 21 0.0625 - 26 0.0312 - 29 0.0625 - 31 0.0312 - 37 0.25 - - 21 2 1 0 - 29 1 - - 57 3 1 0 - 7 1 - - 42 3 3 0 - 2 0.333 - 7 0.333 - 22 0.333 - - 46 7 4 0 - 7 0.571 - 8 0.143 - 26 0.143 - 47 0.143 - - 47 19808 41 32 - 0 0.0693 - 1 0.00192 - 2 0.0136 - 3 0.00353 - 4 0.0311 - 5 0.00136 - 7 0.139 - 8 0.0218 - 9 0.00121 - 10 0.000101 - 12 0.0163 - 13 0.00777 - 14 0.00343 - 15 0.00631 - 16 0.000101 - 17 5.05e-05 - 19 0.0109 - 20 0.00157 - 21 0.0207 - 22 0.00151 - 23 0.000202 - 24 0.000202 - 26 0.0283 - 28 0.0426 - 29 0.0715 - 30 0.0323 - 31 0.0671 - 32 0.0242 - 33 0.0388 - 34 0.000303 - 35 0.00136 - 37 0.00323 - 39 0.000505 - 40 0.139 - 41 0.181 - 42 0.0104 - 43 0.000909 - 44 0.000606 - 45 0.00172 - 46 0.00242 - 47 0.00136 - - 2 21 10 0 - 0 0.0476 - 7 0.0476 - 8 0.0952 - 19 0.0476 - 21 0.0952 - 26 0.0476 - 28 0.0476 - 29 0.238 - 31 0.19 - 41 0.143 - - 3 20 7 0 - 2 0.05 - 7 0.1 - 14 0.05 - 15 0.05 - 26 0.05 - 40 0.35 - 41 0.35 - - 4 79 14 0 - 0 0.038 - 4 0.0127 - 7 0.19 - 8 0.038 - 14 0.0253 - 26 0.0127 - 28 0.0127 - 29 0.0127 - 30 0.0127 - 31 0.038 - 32 0.0506 - 40 0.354 - 41 0.19 - 42 0.0127 - - 5 2 2 0 - 0 0.5 - 35 0.5 - - 6 6 3 0 - 41 0.667 - 42 0.167 - 46 0.167 - - 7 377 27 0 - 0 0.0265 - 2 0.0371 - 3 0.00531 - 4 0.0398 - 5 0.00265 - 7 0.111 - 8 0.0371 - 12 0.00796 - 13 0.0159 - 14 0.0133 - 15 0.00531 - 19 0.0133 - 20 0.0106 - 21 0.0451 - 26 0.0292 - 28 0.0133 - 29 0.0477 - 30 0.0159 - 31 0.0663 - 32 0.00796 - 33 0.0133 - 35 0.00265 - 40 0.212 - 41 0.202 - 42 0.00531 - 45 0.00265 - 47 0.0106 - - 8 234 25 0 - 0 0.00427 - 2 0.0128 - 3 0.00427 - 4 0.0214 - 7 0.274 - 8 0.00427 - 9 0.00427 - 12 0.00427 - 13 0.047 - 14 0.0299 - 15 0.0342 - 19 0.00427 - 21 0.0128 - 26 0.0427 - 29 0.0128 - 30 0.00855 - 32 0.00427 - 35 0.00855 - 37 0.00427 - 40 0.171 - 41 0.252 - 42 0.0171 - 43 0.00855 - 46 0.00855 - 47 0.00427 - - 9 130 13 0 - 0 0.00769 - 2 0.0154 - 4 0.0308 - 7 0.508 - 8 0.0308 - 13 0.0538 - 14 0.0154 - 15 0.0308 - 21 0.00769 - 26 0.0462 - 33 0.00769 - 40 0.108 - 41 0.138 - - 10 129 21 0 - 0 0.0233 - 3 0.0388 - 4 0.194 - 5 0.0155 - 7 0.178 - 8 0.062 - 13 0.0543 - 15 0.0155 - 19 0.0465 - 20 0.00775 - 21 0.109 - 26 0.00775 - 28 0.0233 - 29 0.00775 - 30 0.0155 - 31 0.0233 - 33 0.00775 - 37 0.0155 - 40 0.031 - 41 0.109 - 42 0.0155 - - 11 6 1 0 - 41 1 - - 13 78 21 0 - 0 0.0256 - 2 0.0641 - 4 0.0385 - 7 0.269 - 8 0.0256 - 9 0.0128 - 13 0.0256 - 15 0.0128 - 19 0.0128 - 21 0.0256 - 26 0.0769 - 28 0.0128 - 29 0.0385 - 30 0.0128 - 31 0.0256 - 32 0.0128 - 33 0.0128 - 34 0.0128 - 40 0.154 - 41 0.115 - 42 0.0128 - - 14 2 1 0 - 2 1 - - 15 26 4 0 - 4 0.0385 - 15 0.0769 - 40 0.0385 - 41 0.846 - - 19 6 4 0 - 0 0.333 - 7 0.167 - 40 0.167 - 41 0.333 - - 21 15861 41 0 - 0 0.0829 - 1 0.0024 - 2 0.0109 - 3 0.00372 - 4 0.033 - 5 0.00139 - 7 0.134 - 8 0.0212 - 9 0.00132 - 10 0.000126 - 12 0.0197 - 13 0.00694 - 14 0.0029 - 15 0.00624 - 16 0.000126 - 17 6.3e-05 - 19 0.0122 - 20 0.00151 - 21 0.0221 - 22 0.00189 - 23 0.000252 - 24 0.000252 - 26 0.0281 - 28 0.0508 - 29 0.0859 - 30 0.039 - 31 0.0798 - 32 0.0294 - 33 0.0477 - 34 0.000126 - 35 0.00132 - 37 0.00347 - 39 0.000567 - 40 0.0816 - 41 0.174 - 42 0.00643 - 43 0.00063 - 44 0.000757 - 45 0.00189 - 46 0.00265 - 47 0.00063 - - 22 659 20 0 - 0 0.00455 - 2 0.0319 - 4 0.0212 - 7 0.284 - 8 0.0774 - 12 0.00303 - 13 0.00303 - 21 0.00759 - 26 0.0212 - 28 0.0334 - 29 0.00759 - 30 0.00607 - 31 0.0167 - 32 0.00152 - 33 0.00455 - 40 0.323 - 41 0.138 - 42 0.0121 - 43 0.00152 - 45 0.00152 - - 23 35 13 0 - 0 0.0286 - 4 0.0286 - 7 0.171 - 8 0.0286 - 12 0.0286 - 21 0.0286 - 26 0.0571 - 28 0.0571 - 31 0.4 - 32 0.0286 - 40 0.0571 - 41 0.0286 - 42 0.0571 - - 24 74 17 0 - 0 0.0135 - 2 0.0135 - 3 0.0135 - 4 0.0541 - 7 0.162 - 8 0.0135 - 13 0.027 - 14 0.0541 - 15 0.0135 - 20 0.027 - 21 0.0405 - 30 0.027 - 39 0.0135 - 40 0.351 - 41 0.149 - 42 0.0135 - 47 0.0135 - - 28 6 3 0 - 8 0.167 - 28 0.333 - 41 0.5 - - 29 1 1 0 - 42 1 - - 31 3 3 0 - 13 0.333 - 26 0.333 - 40 0.333 - - 37 3 2 0 - 4 0.333 - 41 0.667 - - 40 9 2 0 - 43 0.111 - 47 0.889 - - 41 5 4 0 - 7 0.2 - 26 0.2 - 29 0.4 - 31 0.2 - - 46 2 2 0 - 8 0.5 - 47 0.5 - - 49 42 5 0 - 7 0.119 - 12 0.0238 - 40 0.619 - 41 0.19 - 42 0.0476 - - 55 524 14 0 - 0 0.00573 - 2 0.0134 - 4 0.00763 - 7 0.143 - 13 0.00382 - 19 0.00191 - 21 0.00573 - 26 0.0687 - 29 0.00763 - 31 0.00191 - 40 0.458 - 41 0.191 - 42 0.0897 - 43 0.00191 - - 57 1267 29 0 - 0 0.0189 - 2 0.0316 - 3 0.00158 - 4 0.00947 - 5 0.00158 - 7 0.0805 - 8 0.00395 - 9 0.000789 - 12 0.00158 - 13 0.00316 - 15 0.00395 - 19 0.00395 - 21 0.00474 - 26 0.0166 - 29 0.00868 - 30 0.000789 - 31 0.000789 - 32 0.000789 - 33 0.000789 - 34 0.00237 - 35 0.000789 - 37 0.00474 - 40 0.514 - 41 0.257 - 42 0.0213 - 43 0.00158 - 45 0.00158 - 46 0.00158 - 47 0.00158 - - 58 3 2 0 - 30 0.333 - 40 0.667 - - 59 1 1 0 - 35 1 - - 62 30 5 0 - 0 0.0333 - 21 0.0333 - 40 0.7 - 41 0.133 - 42 0.1 - - 64 156 13 0 - 0 0.00641 - 2 0.00641 - 4 0.0128 - 7 0.00641 - 14 0.00641 - 19 0.00641 - 21 0.00641 - 26 0.0192 - 40 0.615 - 41 0.288 - 42 0.0128 - 43 0.00641 - 46 0.00641 - - 48 6 3 0 - 7 0.5 - 40 0.167 - 41 0.333 - - 49 384 14 4 - 2 0.0599 - 4 0.0234 - 7 0.695 - 8 0.00781 - 12 0.0026 - 14 0.0026 - 19 0.00521 - 21 0.0026 - 26 0.0104 - 37 0.00521 - 40 0.0703 - 41 0.0911 - 42 0.0182 - 46 0.00521 - - 2 27 5 0 - 7 0.111 - 12 0.037 - 40 0.556 - 41 0.259 - 42 0.037 - - 21 14 5 0 - 7 0.429 - 40 0.357 - 41 0.0714 - 42 0.0714 - 46 0.0714 - - 41 4 1 0 - 40 1 - - 47 327 12 0 - 2 0.0703 - 4 0.0275 - 7 0.771 - 8 0.00917 - 14 0.00306 - 19 0.00612 - 21 0.00306 - 26 0.0122 - 37 0.00612 - 41 0.0734 - 42 0.0153 - 46 0.00306 - - 55 740 14 5 - 0 0.00405 - 2 0.00946 - 4 0.00541 - 7 0.307 - 13 0.0027 - 19 0.00135 - 21 0.00541 - 26 0.132 - 29 0.00541 - 31 0.00135 - 40 0.324 - 41 0.136 - 42 0.0635 - 43 0.00135 - - 7 178 10 0 - 2 0.0112 - 7 0.275 - 13 0.0112 - 21 0.0112 - 26 0.0787 - 29 0.00562 - 31 0.00562 - 40 0.365 - 41 0.129 - 42 0.107 - - 21 514 10 0 - 2 0.00584 - 4 0.00778 - 7 0.323 - 21 0.00195 - 26 0.15 - 29 0.00195 - 40 0.321 - 41 0.132 - 42 0.0545 - 43 0.00195 - - 22 18 6 0 - 0 0.0556 - 7 0.222 - 26 0.111 - 29 0.111 - 40 0.222 - 41 0.278 - - 47 4 2 0 - 7 0.75 - 21 0.25 - - 49 10 6 0 - 0 0.2 - 2 0.1 - 7 0.1 - 19 0.1 - 26 0.2 - 41 0.3 - - 57 1294 29 10 - 0 0.0185 - 2 0.0309 - 3 0.00232 - 4 0.00927 - 5 0.00155 - 7 0.0927 - 8 0.00386 - 9 0.000773 - 12 0.00155 - 13 0.00309 - 15 0.00386 - 19 0.00386 - 21 0.00464 - 26 0.0185 - 29 0.0085 - 30 0.000773 - 31 0.000773 - 32 0.000773 - 33 0.000773 - 34 0.00232 - 35 0.000773 - 37 0.00464 - 40 0.503 - 41 0.254 - 42 0.0209 - 43 0.00232 - 45 0.00155 - 46 0.00155 - 47 0.00155 - - 7 133 14 0 - 0 0.0226 - 2 0.0226 - 3 0.00752 - 7 0.0602 - 8 0.015 - 12 0.00752 - 19 0.00752 - 26 0.0301 - 34 0.00752 - 40 0.466 - 41 0.323 - 42 0.015 - 43 0.00752 - 47 0.00752 - - 8 63 10 0 - 0 0.0159 - 2 0.0159 - 4 0.0159 - 7 0.127 - 13 0.0159 - 32 0.0159 - 33 0.0159 - 40 0.476 - 41 0.286 - 45 0.0159 - - 13 10 6 0 - 2 0.1 - 7 0.2 - 15 0.1 - 35 0.1 - 40 0.4 - 41 0.1 - - 21 614 22 0 - 0 0.0277 - 2 0.0326 - 3 0.00326 - 4 0.013 - 5 0.00163 - 7 0.0765 - 9 0.00163 - 12 0.00163 - 13 0.00326 - 15 0.00489 - 19 0.00651 - 21 0.00814 - 26 0.0212 - 29 0.013 - 30 0.00163 - 34 0.00326 - 37 0.00651 - 40 0.484 - 41 0.269 - 42 0.0163 - 45 0.00163 - 46 0.00326 - - 22 32 6 0 - 0 0.0625 - 7 0.188 - 29 0.0625 - 40 0.5 - 41 0.156 - 47 0.0312 - - 24 16 6 0 - 2 0.0625 - 7 0.188 - 8 0.0625 - 21 0.0625 - 40 0.25 - 41 0.375 - - 44 1 1 0 - 43 1 - - 49 164 12 0 - 2 0.0244 - 4 0.0122 - 7 0.183 - 8 0.0122 - 15 0.0061 - 26 0.0122 - 29 0.0061 - 37 0.0061 - 40 0.488 - 41 0.207 - 42 0.0366 - 43 0.0061 - - 55 215 9 0 - 0 0.00465 - 2 0.0465 - 5 0.00465 - 7 0.0605 - 26 0.0186 - 31 0.00465 - 40 0.6 - 41 0.223 - 42 0.0372 - - 57 20 6 0 - 7 0.05 - 13 0.05 - 37 0.05 - 40 0.65 - 41 0.15 - 42 0.05 - - 58 6 4 0 - 7 0.333 - 26 0.167 - 30 0.167 - 40 0.333 - - 59 1 1 0 - 35 1 - - 62 30 5 0 - 0 0.0333 - 21 0.0333 - 40 0.7 - 41 0.133 - 42 0.1 - - 64 159 13 2 - 0 0.00629 - 2 0.00629 - 4 0.0126 - 7 0.0126 - 14 0.00629 - 19 0.00629 - 21 0.00629 - 26 0.0189 - 40 0.61 - 41 0.289 - 42 0.0126 - 43 0.00629 - 46 0.00629 - - 21 35 6 0 - 4 0.0286 - 19 0.0286 - 21 0.0286 - 26 0.0286 - 40 0.486 - 41 0.4 - - 41 10 1 0 - 40 1 - -50 604 25 5 - 0 0.0364 - 1 0.00662 - 3 0.0166 - 4 0.212 - 7 0.166 - 8 0.113 - 9 0.00993 - 12 0.00993 - 13 0.0629 - 14 0.0662 - 15 0.0298 - 16 0.00662 - 20 0.0298 - 21 0.0298 - 22 0.00331 - 26 0.043 - 28 0.043 - 29 0.0132 - 30 0.0497 - 31 0.0232 - 32 0.00662 - 33 0.00993 - 35 0.00331 - 39 0.00331 - 45 0.00662 - - 7 209 21 0 - 0 0.00957 - 1 0.00957 - 3 0.0239 - 4 0.22 - 7 0.115 - 8 0.129 - 9 0.0144 - 13 0.0861 - 14 0.0766 - 15 0.0431 - 16 0.00478 - 20 0.0144 - 21 0.0335 - 26 0.0335 - 28 0.0622 - 30 0.0718 - 31 0.0287 - 32 0.00478 - 35 0.00478 - 39 0.00478 - 45 0.00957 - - 8 4 3 0 - 7 0.5 - 8 0.25 - 26 0.25 - - 21 83 15 3 - 0 0.108 - 4 0.181 - 7 0.289 - 8 0.0723 - 12 0.0361 - 14 0.0241 - 16 0.012 - 20 0.0723 - 21 0.0241 - 22 0.012 - 26 0.0602 - 29 0.0482 - 31 0.012 - 32 0.012 - 33 0.0361 - - 2 22 8 0 - 4 0.227 - 7 0.364 - 14 0.0909 - 20 0.0909 - 22 0.0455 - 26 0.0455 - 29 0.0909 - 31 0.0455 - - 7 11 5 0 - 4 0.364 - 7 0.0909 - 8 0.364 - 20 0.0909 - 21 0.0909 - - 21 50 12 0 - 0 0.18 - 4 0.12 - 7 0.3 - 8 0.04 - 12 0.06 - 16 0.02 - 20 0.06 - 21 0.02 - 26 0.08 - 29 0.04 - 32 0.02 - 33 0.06 - - 28 5 3 0 - 4 0.6 - 13 0.2 - 14 0.2 - - 47 302 25 4 - 0 0.0364 - 1 0.00662 - 3 0.0166 - 4 0.212 - 7 0.166 - 8 0.113 - 9 0.00993 - 12 0.00993 - 13 0.0629 - 14 0.0662 - 15 0.0298 - 16 0.00662 - 20 0.0298 - 21 0.0298 - 22 0.00331 - 26 0.043 - 28 0.043 - 29 0.0132 - 30 0.0497 - 31 0.0232 - 32 0.00662 - 33 0.00993 - 35 0.00331 - 39 0.00331 - 45 0.00662 - - 7 209 21 0 - 0 0.00957 - 1 0.00957 - 3 0.0239 - 4 0.22 - 7 0.115 - 8 0.129 - 9 0.0144 - 13 0.0861 - 14 0.0766 - 15 0.0431 - 16 0.00478 - 20 0.0144 - 21 0.0335 - 26 0.0335 - 28 0.0622 - 30 0.0718 - 31 0.0287 - 32 0.00478 - 35 0.00478 - 39 0.00478 - 45 0.00957 - - 8 4 3 0 - 7 0.5 - 8 0.25 - 26 0.25 - - 21 83 15 0 - 0 0.108 - 4 0.181 - 7 0.289 - 8 0.0723 - 12 0.0361 - 14 0.0241 - 16 0.012 - 20 0.0723 - 21 0.0241 - 22 0.012 - 26 0.0602 - 29 0.0482 - 31 0.012 - 32 0.012 - 33 0.0361 - - 28 5 3 0 - 4 0.6 - 13 0.2 - 14 0.2 - -51 1442 32 20 - 0 0.000693 - 2 0.00763 - 3 0.00139 - 4 0.0146 - 7 0.0444 - 8 0.00416 - 9 0.000693 - 12 0.000693 - 13 0.00347 - 14 0.00139 - 15 0.000693 - 19 0.00347 - 20 0.000693 - 21 0.0173 - 22 0.000693 - 26 0.00832 - 27 0.00208 - 28 0.00208 - 29 0.00277 - 30 0.00208 - 33 0.00139 - 34 0.000693 - 35 0.00139 - 37 0.00139 - 39 0.000693 - 40 0.279 - 41 0.164 - 42 0.025 - 43 0.0118 - 44 0.00139 - 46 0.0374 - 47 0.356 - - 2 42 15 1 - 3 0.0238 - 4 0.167 - 7 0.143 - 8 0.0238 - 9 0.0238 - 13 0.0238 - 14 0.0238 - 19 0.0238 - 21 0.333 - 26 0.0238 - 27 0.0238 - 28 0.0238 - 35 0.0476 - 37 0.0238 - 41 0.0714 - - 41 6 5 0 - 3 0.167 - 4 0.333 - 14 0.167 - 21 0.167 - 35 0.167 - - 4 2 2 0 - 27 0.5 - 41 0.5 - - 7 6 4 0 - 4 0.333 - 13 0.333 - 30 0.167 - 34 0.167 - - 21 42 15 5 - 3 0.0238 - 4 0.143 - 7 0.167 - 8 0.0476 - 13 0.0476 - 15 0.0238 - 19 0.0238 - 21 0.19 - 22 0.0238 - 26 0.0476 - 28 0.0476 - 37 0.0238 - 40 0.143 - 41 0.0238 - 42 0.0238 - - 2 9 4 0 - 7 0.333 - 15 0.111 - 21 0.444 - 41 0.111 - - 21 3 1 0 - 4 1 - - 47 19 10 0 - 3 0.0526 - 4 0.105 - 7 0.211 - 8 0.105 - 13 0.105 - 21 0.211 - 22 0.0526 - 26 0.0526 - 40 0.0526 - 42 0.0526 - - 49 3 2 0 - 26 0.333 - 40 0.667 - - 71 3 2 0 - 28 0.667 - 40 0.333 - - 40 210 3 0 - 43 0.00476 - 46 0.176 - 47 0.819 - - 41 31 12 2 - 2 0.0645 - 4 0.0323 - 7 0.548 - 14 0.0323 - 19 0.0323 - 20 0.0323 - 21 0.0323 - 27 0.0323 - 30 0.0645 - 39 0.0323 - 46 0.0645 - 47 0.0323 - - 51 4 3 0 - 2 0.5 - 19 0.25 - 39 0.25 - - 57 5 4 0 - 4 0.2 - 7 0.4 - 14 0.2 - 47 0.2 - - 42 16 4 0 - 7 0.125 - 8 0.0625 - 40 0.188 - 47 0.625 - - 46 38 4 0 - 7 0.0263 - 33 0.0263 - 43 0.0526 - 47 0.895 - - 47 495 14 13 - 2 0.00808 - 4 0.00202 - 7 0.00202 - 19 0.00202 - 26 0.00606 - 29 0.00404 - 33 0.00202 - 40 0.194 - 41 0.208 - 42 0.0202 - 43 0.0141 - 44 0.00202 - 46 0.0162 - 47 0.519 - - 21 5 3 0 - 19 0.2 - 40 0.6 - 41 0.2 - - 40 174 2 0 - 46 0.0115 - 47 0.989 - - 42 10 1 0 - 47 1 - - 46 36 3 0 - 33 0.0278 - 43 0.0278 - 47 0.944 - - 48 32 9 0 - 2 0.0312 - 7 0.0312 - 26 0.0625 - 40 0.188 - 41 0.531 - 42 0.0312 - 43 0.0625 - 46 0.0312 - 47 0.0312 - - 49 26 4 0 - 40 0.385 - 41 0.5 - 43 0.0769 - 47 0.0385 - - 51 4 1 0 - 40 1 - - 55 86 7 0 - 2 0.0116 - 29 0.0233 - 40 0.267 - 41 0.465 - 42 0.0465 - 46 0.0233 - 47 0.163 - - 57 51 6 0 - 26 0.0196 - 40 0.471 - 41 0.196 - 42 0.0588 - 43 0.0196 - 47 0.235 - - 62 13 4 0 - 40 0.385 - 41 0.462 - 46 0.0769 - 47 0.0769 - - 64 11 4 0 - 2 0.0909 - 40 0.455 - 41 0.0909 - 47 0.364 - - 69 17 5 0 - 4 0.0588 - 40 0.471 - 41 0.353 - 46 0.0588 - 47 0.0588 - - 71 9 6 0 - 2 0.111 - 40 0.333 - 41 0.222 - 43 0.111 - 44 0.111 - 47 0.111 - - 48 39 9 0 - 2 0.0256 - 7 0.0256 - 26 0.0513 - 40 0.308 - 41 0.436 - 42 0.0513 - 43 0.0513 - 46 0.0256 - 47 0.0256 - - 49 53 10 2 - 4 0.0377 - 7 0.132 - 8 0.0189 - 12 0.0189 - 21 0.0189 - 40 0.377 - 41 0.321 - 42 0.0189 - 43 0.0377 - 47 0.0189 - - 2 10 6 0 - 4 0.2 - 7 0.3 - 12 0.1 - 21 0.1 - 40 0.2 - 41 0.1 - - 47 21 5 0 - 7 0.0476 - 40 0.429 - 41 0.429 - 42 0.0476 - 47 0.0476 - - 51 16 5 1 - 2 0.0625 - 40 0.562 - 41 0.25 - 42 0.0625 - 46 0.0625 - - 47 5 3 0 - 2 0.2 - 41 0.6 - 42 0.2 - - 52 8 3 0 - 19 0.125 - 40 0.5 - 41 0.375 - - 55 193 13 8 - 0 0.00518 - 2 0.00518 - 7 0.0518 - 8 0.00518 - 21 0.00518 - 26 0.0155 - 29 0.0104 - 40 0.487 - 41 0.259 - 42 0.0622 - 43 0.00518 - 46 0.0155 - 47 0.0725 - - 2 9 3 0 - 0 0.111 - 40 0.778 - 41 0.111 - - 41 21 4 0 - 40 0.714 - 41 0.19 - 42 0.0476 - 46 0.0476 - - 42 17 5 0 - 40 0.706 - 41 0.0588 - 43 0.0588 - 46 0.0588 - 47 0.118 - - 45 17 2 0 - 40 0.941 - 42 0.0588 - - 47 77 9 0 - 7 0.104 - 21 0.013 - 26 0.039 - 29 0.026 - 40 0.221 - 41 0.429 - 42 0.039 - 46 0.013 - 47 0.117 - - 48 1 1 0 - 8 1 - - 52 1 1 0 - 2 1 - - 57 9 3 0 - 40 0.222 - 41 0.111 - 42 0.667 - - 57 89 8 3 - 4 0.0112 - 7 0.0562 - 26 0.0112 - 40 0.551 - 41 0.169 - 42 0.0562 - 43 0.0112 - 47 0.135 - - 47 26 5 0 - 26 0.0385 - 40 0.385 - 41 0.115 - 42 0.0385 - 47 0.423 - - 49 7 2 0 - 4 0.143 - 40 0.857 - - 55 15 4 0 - 7 0.2 - 40 0.467 - 41 0.267 - 43 0.0667 - - 62 54 5 1 - 40 0.815 - 41 0.111 - 42 0.037 - 46 0.0185 - 47 0.0185 - - 47 8 3 0 - 40 0.25 - 41 0.625 - 46 0.125 - - 64 40 4 0 - 2 0.025 - 40 0.8 - 41 0.075 - 47 0.1 - - 69 31 5 0 - 4 0.0323 - 40 0.71 - 41 0.194 - 46 0.0323 - 47 0.0323 - - 71 11 7 0 - 2 0.0909 - 7 0.0909 - 40 0.364 - 41 0.182 - 43 0.0909 - 44 0.0909 - 47 0.0909 - - 72 6 3 0 - 7 0.667 - 40 0.167 - 41 0.167 - -52 275 19 11 - 0 0.00727 - 2 0.0109 - 4 0.00727 - 7 0.0145 - 13 0.00727 - 19 0.0145 - 20 0.00727 - 21 0.00727 - 26 0.04 - 27 0.0109 - 28 0.0291 - 37 0.00727 - 40 0.142 - 41 0.52 - 42 0.00364 - 43 0.0291 - 45 0.00364 - 46 0.0364 - 47 0.102 - - 2 1 1 0 - 45 1 - - 13 5 2 0 - 40 0.8 - 46 0.2 - - 15 2 2 0 - 41 0.5 - 42 0.5 - - 21 18 5 0 - 4 0.0556 - 21 0.0556 - 37 0.0556 - 40 0.0556 - 41 0.778 - - 27 80 9 1 - 13 0.0125 - 19 0.0125 - 26 0.075 - 27 0.0125 - 28 0.025 - 40 0.225 - 41 0.538 - 43 0.0375 - 46 0.0625 - - 45 2 1 0 - 46 1 - - 28 11 4 0 - 0 0.0909 - 20 0.0909 - 28 0.182 - 41 0.636 - - 40 13 1 0 - 47 1 - - 41 1 1 0 - 27 1 - - 46 2 2 0 - 2 0.5 - 7 0.5 - - 47 127 17 7 - 0 0.00787 - 2 0.00787 - 4 0.00787 - 7 0.0157 - 13 0.00787 - 19 0.0157 - 20 0.00787 - 21 0.00787 - 26 0.0394 - 27 0.00787 - 28 0.0315 - 37 0.00787 - 40 0.102 - 41 0.559 - 43 0.0315 - 46 0.0315 - 47 0.11 - - 13 2 2 0 - 40 0.5 - 46 0.5 - - 21 17 4 0 - 4 0.0588 - 21 0.0588 - 37 0.0588 - 41 0.824 - - 27 70 9 0 - 13 0.0143 - 19 0.0143 - 26 0.0714 - 27 0.0143 - 28 0.0286 - 40 0.157 - 41 0.614 - 43 0.0429 - 46 0.0429 - - 28 11 4 0 - 0 0.0909 - 20 0.0909 - 28 0.182 - 41 0.636 - - 40 13 1 0 - 47 1 - - 46 2 2 0 - 2 0.5 - 7 0.5 - - 52 2 2 0 - 7 0.5 - 43 0.5 - - 52 4 4 0 - 2 0.25 - 7 0.25 - 41 0.25 - 43 0.25 - -53 99 14 6 - 4 0.0606 - 7 0.0808 - 8 0.0606 - 14 0.0202 - 15 0.0404 - 19 0.0404 - 21 0.0202 - 28 0.141 - 31 0.0202 - 37 0.0202 - 40 0.121 - 41 0.101 - 42 0.101 - 43 0.172 - - 8 3 1 0 - 41 1 - - 11 30 4 0 - 40 0.4 - 41 0.0667 - 42 0.167 - 43 0.367 - - 40 12 4 0 - 7 0.25 - 21 0.0833 - 28 0.583 - 37 0.0833 - - 42 2 1 0 - 15 1 - - 43 11 6 0 - 4 0.273 - 7 0.0909 - 8 0.273 - 14 0.0909 - 19 0.182 - 31 0.0909 - - 47 38 13 5 - 4 0.0789 - 7 0.105 - 8 0.0789 - 14 0.0263 - 15 0.0526 - 19 0.0526 - 21 0.0263 - 28 0.184 - 31 0.0263 - 37 0.0263 - 41 0.132 - 42 0.132 - 43 0.0789 - - 8 3 1 0 - 41 1 - - 11 10 3 0 - 41 0.2 - 42 0.5 - 43 0.3 - - 40 12 4 0 - 7 0.25 - 21 0.0833 - 28 0.583 - 37 0.0833 - - 42 2 1 0 - 15 1 - - 43 11 6 0 - 4 0.273 - 7 0.0909 - 8 0.273 - 14 0.0909 - 19 0.182 - 31 0.0909 - -54 1254 23 14 - 0 0.00159 - 2 0.00478 - 3 0.0271 - 4 0.00399 - 6 0.00159 - 7 0.112 - 8 0.0478 - 13 0.386 - 14 0.0447 - 15 0.121 - 18 0.00478 - 26 0.00638 - 29 0.00159 - 30 0.00319 - 31 0.00159 - 34 0.000797 - 40 0.00558 - 41 0.203 - 42 0.00159 - 43 0.00319 - 44 0.00239 - 45 0.00159 - 46 0.0136 - - 3 35 5 1 - 7 0.0286 - 13 0.257 - 15 0.0571 - 41 0.629 - 45 0.0286 - - 41 11 1 0 - 41 1 - - 4 4 1 0 - 8 1 - - 8 6 3 0 - 7 0.167 - 13 0.667 - 42 0.167 - - 13 18 4 0 - 7 0.722 - 26 0.167 - 40 0.0556 - 46 0.0556 - - 14 2 2 0 - 2 0.5 - 34 0.5 - - 15 371 10 3 - 3 0.062 - 4 0.0108 - 6 0.00539 - 7 0.299 - 8 0.0027 - 13 0.0108 - 26 0.0135 - 40 0.0027 - 41 0.59 - 43 0.0027 - - 15 29 4 0 - 7 0.897 - 13 0.0345 - 26 0.0345 - 41 0.0345 - - 41 232 4 0 - 3 0.0431 - 8 0.00431 - 13 0.0129 - 41 0.94 - - 47 105 7 0 - 3 0.124 - 4 0.0381 - 6 0.019 - 7 0.762 - 26 0.0381 - 40 0.00952 - 43 0.00952 - - 16 4 1 0 - 7 1 - - 40 1 1 0 - 43 1 - - 41 237 7 3 - 2 0.00844 - 3 0.0464 - 8 0.097 - 13 0.751 - 14 0.0717 - 15 0.0169 - 30 0.00844 - - 3 22 2 0 - 3 0.5 - 13 0.5 - - 15 213 6 0 - 2 0.00469 - 8 0.108 - 13 0.779 - 14 0.0798 - 15 0.0188 - 30 0.00939 - - 54 1 1 0 - 2 1 - - 47 411 18 8 - 0 0.00243 - 2 0.00487 - 7 0.0073 - 8 0.0681 - 13 0.589 - 14 0.0681 - 15 0.182 - 18 0.0073 - 29 0.00243 - 30 0.00487 - 31 0.00243 - 40 0.0073 - 41 0.0219 - 42 0.00243 - 43 0.00487 - 44 0.00243 - 45 0.00243 - 46 0.0195 - - 3 12 3 0 - 13 0.75 - 15 0.167 - 45 0.0833 - - 8 5 2 0 - 13 0.8 - 42 0.2 - - 13 1 1 0 - 40 1 - - 14 1 1 0 - 2 1 - - 15 15 5 0 - 7 0.2 - 8 0.0667 - 13 0.267 - 41 0.4 - 43 0.0667 - - 40 1 1 0 - 43 1 - - 41 225 6 0 - 2 0.00444 - 8 0.102 - 13 0.791 - 14 0.0756 - 15 0.0178 - 30 0.00889 - - 57 143 12 0 - 0 0.00699 - 8 0.021 - 13 0.294 - 14 0.0769 - 15 0.476 - 18 0.021 - 29 0.00699 - 31 0.00699 - 40 0.014 - 41 0.021 - 44 0.00699 - 46 0.049 - - 54 7 5 0 - 2 0.143 - 7 0.429 - 13 0.143 - 41 0.143 - 44 0.143 - - 55 8 5 0 - 4 0.125 - 7 0.375 - 13 0.25 - 15 0.125 - 41 0.125 - - 57 145 13 2 - 0 0.0069 - 7 0.0069 - 8 0.0207 - 13 0.29 - 14 0.0759 - 15 0.476 - 18 0.0207 - 29 0.0069 - 31 0.0069 - 40 0.0138 - 41 0.0207 - 44 0.0069 - 46 0.0483 - - 13 16 6 0 - 8 0.0625 - 13 0.312 - 14 0.0625 - 15 0.25 - 41 0.0625 - 46 0.25 - - 55 3 3 0 - 7 0.333 - 8 0.333 - 46 0.333 - - 64 1 1 0 - 46 1 - -55 743201 48 64 - 0 0.0725 - 1 0.000324 - 2 0.0381 - 3 0.0109 - 4 0.0192 - 5 9.28e-05 - 6 8.48e-05 - 7 0.218 - 8 0.0157 - 9 0.00101 - 10 0.000679 - 11 2.69e-06 - 12 0.0255 - 13 0.0155 - 14 0.00484 - 15 0.0115 - 16 0.000159 - 17 3.5e-05 - 18 0.000148 - 19 0.00383 - 20 0.000667 - 21 0.0224 - 22 0.00163 - 23 0.000167 - 24 0.000495 - 25 3.23e-05 - 26 0.0314 - 27 2.69e-06 - 28 0.00194 - 29 0.0528 - 30 0.00873 - 31 0.013 - 32 0.0128 - 33 0.0187 - 34 0.0103 - 35 0.00461 - 36 0.000354 - 37 0.00247 - 38 2.96e-05 - 39 0.00155 - 40 0.175 - 41 0.167 - 42 0.0181 - 43 0.00332 - 44 0.00367 - 45 0.00252 - 46 0.00333 - 47 0.00429 - - 0 57 13 3 - 0 0.0175 - 7 0.123 - 8 0.0877 - 13 0.0351 - 15 0.0175 - 21 0.246 - 23 0.175 - 29 0.105 - 30 0.0877 - 31 0.0526 - 41 0.0175 - 43 0.0175 - 45 0.0175 - - 13 25 7 0 - 7 0.08 - 8 0.16 - 13 0.04 - 21 0.2 - 23 0.4 - 30 0.08 - 45 0.04 - - 15 26 9 0 - 7 0.154 - 8 0.0385 - 13 0.0385 - 15 0.0385 - 21 0.346 - 29 0.231 - 30 0.0385 - 31 0.0769 - 41 0.0385 - - 19 3 3 0 - 0 0.333 - 7 0.333 - 30 0.333 - - 1 3 2 0 - 26 0.333 - 40 0.667 - - 2 6940 35 14 - 0 0.000144 - 2 0.000144 - 3 0.104 - 4 0.195 - 6 0.000144 - 7 0.0062 - 8 0.168 - 9 0.0107 - 10 0.00072 - 13 0.114 - 14 0.0501 - 15 0.186 - 16 0.00202 - 17 0.00101 - 19 0.00187 - 20 0.0399 - 21 0.0278 - 22 0.000576 - 23 0.000144 - 26 0.000432 - 28 0.000865 - 29 0.000576 - 30 0.0098 - 31 0.00548 - 33 0.00101 - 34 0.000144 - 35 0.00115 - 36 0.000144 - 37 0.000432 - 38 0.000288 - 39 0.0588 - 41 0.00346 - 42 0.000432 - 44 0.000576 - 45 0.00749 - - 3 18 3 0 - 3 0.889 - 7 0.0556 - 21 0.0556 - - 13 15 7 0 - 3 0.133 - 4 0.0667 - 8 0.2 - 21 0.267 - 28 0.133 - 30 0.133 - 33 0.0667 - - 14 6 2 0 - 30 0.167 - 33 0.833 - - 15 3 2 0 - 15 0.667 - 21 0.333 - - 41 1384 25 0 - 3 0.318 - 4 0.103 - 7 0.0224 - 8 0.0412 - 9 0.00939 - 10 0.00145 - 13 0.0549 - 14 0.0253 - 15 0.091 - 16 0.000723 - 19 0.000723 - 20 0.0065 - 21 0.0571 - 22 0.00145 - 23 0.000723 - 26 0.000723 - 28 0.000723 - 29 0.000723 - 30 0.00361 - 31 0.00289 - 34 0.000723 - 35 0.00217 - 39 0.249 - 41 0.00145 - 45 0.00434 - - 42 77 15 0 - 3 0.0649 - 4 0.156 - 8 0.0779 - 9 0.026 - 13 0.0649 - 14 0.0519 - 15 0.286 - 17 0.013 - 21 0.117 - 28 0.013 - 36 0.013 - 39 0.0519 - 41 0.039 - 44 0.013 - 45 0.013 - - 45 5 3 0 - 4 0.6 - 14 0.2 - 20 0.2 - - 46 35 7 0 - 4 0.143 - 8 0.143 - 13 0.0571 - 21 0.0286 - 22 0.0286 - 31 0.0286 - 45 0.571 - - 47 1 1 0 - 0 1 - - 55 5370 31 0 - 2 0.000186 - 3 0.0477 - 4 0.221 - 6 0.000186 - 7 0.00186 - 8 0.204 - 9 0.011 - 10 0.000559 - 13 0.131 - 14 0.0572 - 15 0.212 - 16 0.00242 - 17 0.00112 - 19 0.00223 - 20 0.0497 - 21 0.0177 - 22 0.000186 - 26 0.000372 - 28 0.000372 - 29 0.000559 - 30 0.0101 - 31 0.00615 - 33 0.000186 - 35 0.000931 - 37 0.000186 - 38 0.000372 - 39 0.0112 - 41 0.00354 - 42 0.000559 - 44 0.000559 - 45 0.00447 - - 57 4 3 0 - 7 0.25 - 13 0.5 - 21 0.25 - - 58 6 6 0 - 4 0.167 - 8 0.167 - 15 0.167 - 21 0.167 - 30 0.167 - 45 0.167 - - 62 6 2 0 - 4 0.167 - 30 0.833 - - 64 3 2 0 - 4 0.333 - 37 0.667 - - 3 8212 38 21 - 0 0.0178 - 2 0.0314 - 3 0.00499 - 4 0.0933 - 6 0.000122 - 7 0.167 - 8 0.00402 - 9 0.00244 - 10 0.000365 - 12 0.00706 - 13 0.00426 - 14 0.00146 - 15 0.00402 - 19 0.00231 - 20 0.000244 - 21 0.0108 - 22 0.000487 - 23 0.000122 - 25 0.000122 - 26 0.0899 - 28 0.000122 - 29 0.0141 - 30 0.00329 - 31 0.00548 - 32 0.0011 - 33 0.00329 - 34 0.00256 - 35 0.000852 - 37 0.00317 - 39 0.000122 - 40 0.2 - 41 0.278 - 42 0.0226 - 43 0.0167 - 44 0.0017 - 45 0.00134 - 46 0.000974 - 47 0.00195 - - 2 92 17 0 - 0 0.0326 - 2 0.0326 - 4 0.0109 - 7 0.0652 - 8 0.0109 - 12 0.0109 - 21 0.0109 - 26 0.0109 - 31 0.0109 - 33 0.0109 - 34 0.0109 - 40 0.304 - 41 0.391 - 42 0.0217 - 43 0.0217 - 44 0.0217 - 45 0.0217 - - 3 254 17 0 - 0 0.00787 - 2 0.0197 - 4 0.0276 - 7 0.217 - 8 0.00394 - 9 0.00394 - 12 0.0118 - 13 0.00787 - 14 0.00394 - 15 0.0354 - 26 0.287 - 32 0.00394 - 40 0.201 - 41 0.126 - 42 0.0236 - 43 0.0118 - 47 0.00787 - - 4 159 24 0 - 0 0.164 - 2 0.0377 - 4 0.00629 - 7 0.195 - 8 0.00629 - 10 0.0126 - 12 0.044 - 13 0.0126 - 14 0.00629 - 15 0.00629 - 19 0.00629 - 21 0.044 - 23 0.00629 - 26 0.0252 - 29 0.0314 - 31 0.0189 - 32 0.00629 - 33 0.00629 - 34 0.0126 - 35 0.0126 - 40 0.164 - 41 0.151 - 42 0.0126 - 45 0.0126 - - 7 12 7 0 - 3 0.0833 - 4 0.25 - 7 0.25 - 14 0.0833 - 21 0.0833 - 40 0.0833 - 41 0.167 - - 8 155 14 0 - 0 0.071 - 2 0.0516 - 7 0.116 - 12 0.00645 - 14 0.00645 - 19 0.0129 - 26 0.0323 - 31 0.0194 - 33 0.00645 - 34 0.00645 - 40 0.374 - 41 0.252 - 42 0.0387 - 47 0.00645 - - 9 3 2 0 - 33 0.667 - 34 0.333 - - 10 1 1 0 - 8 1 - - 13 164 20 0 - 0 0.0366 - 2 0.0549 - 4 0.0061 - 7 0.171 - 8 0.0061 - 12 0.0061 - 13 0.0061 - 14 0.0122 - 19 0.0061 - 26 0.0305 - 29 0.0061 - 30 0.0061 - 32 0.0122 - 33 0.0427 - 34 0.0061 - 40 0.14 - 41 0.378 - 42 0.0488 - 43 0.0122 - 46 0.0122 - - 14 12 7 0 - 2 0.167 - 3 0.167 - 7 0.0833 - 26 0.0833 - 30 0.0833 - 40 0.167 - 41 0.25 - - 15 1421 30 0 - 0 0.019 - 2 0.0394 - 3 0.000704 - 4 0.00281 - 7 0.0739 - 8 0.00141 - 9 0.000704 - 12 0.00563 - 13 0.00141 - 15 0.00422 - 19 0.00141 - 20 0.00141 - 21 0.00281 - 26 0.0387 - 28 0.000704 - 29 0.031 - 30 0.00211 - 31 0.00493 - 32 0.000704 - 33 0.00211 - 34 0.000704 - 37 0.00352 - 39 0.000704 - 40 0.251 - 41 0.481 - 42 0.00844 - 43 0.0169 - 44 0.00141 - 45 0.000704 - 47 0.000704 - - 20 1 1 0 - 30 1 - - 21 31 11 0 - 0 0.0323 - 2 0.0323 - 4 0.0323 - 7 0.484 - 14 0.0323 - 21 0.0323 - 26 0.0323 - 29 0.0645 - 37 0.0645 - 40 0.0968 - 41 0.0968 - - 29 1 1 0 - 14 1 - - 31 2 2 0 - 0 0.5 - 26 0.5 - - 38 13 6 0 - 4 0.0769 - 7 0.0769 - 40 0.231 - 41 0.154 - 42 0.0769 - 44 0.385 - - 39 1781 28 0 - 0 0.000561 - 2 0.0247 - 3 0.0202 - 4 0.396 - 6 0.000561 - 7 0.14 - 8 0.0101 - 9 0.000561 - 12 0.000561 - 13 0.0112 - 15 0.00225 - 19 0.00168 - 21 0.00786 - 22 0.00112 - 26 0.0415 - 29 0.000561 - 30 0.00168 - 31 0.00786 - 33 0.000561 - 34 0.00225 - 35 0.000561 - 37 0.00112 - 40 0.12 - 41 0.149 - 42 0.0118 - 43 0.0444 - 44 0.00112 - 47 0.000561 - - 41 320 10 0 - 2 0.025 - 7 0.00313 - 13 0.00313 - 25 0.00313 - 31 0.00313 - 40 0.172 - 41 0.669 - 42 0.0719 - 43 0.0188 - 47 0.0312 - - 45 3 1 0 - 46 1 - - 47 3753 32 0 - 0 0.0181 - 2 0.0306 - 3 0.000266 - 4 0.0107 - 7 0.227 - 8 0.00213 - 9 0.00453 - 10 0.000266 - 12 0.00959 - 13 0.00187 - 14 0.000799 - 15 0.00346 - 19 0.00266 - 21 0.016 - 22 0.000533 - 26 0.137 - 29 0.0168 - 30 0.0048 - 31 0.00426 - 32 0.00107 - 33 0.00293 - 34 0.00266 - 35 0.00107 - 37 0.00453 - 40 0.217 - 41 0.242 - 42 0.028 - 43 0.00533 - 44 0.000799 - 45 0.00133 - 46 0.000799 - 47 0.000266 - - 55 8 4 0 - 14 0.125 - 40 0.375 - 41 0.375 - 45 0.125 - - 60 6 5 0 - 2 0.167 - 21 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 4 2568 37 12 - 0 0.247 - 1 0.000779 - 2 0.00857 - 3 0.00273 - 4 0.00584 - 7 0.274 - 8 0.00935 - 9 0.000389 - 10 0.000389 - 12 0.0666 - 13 0.00701 - 14 0.00117 - 15 0.00156 - 18 0.000779 - 19 0.00857 - 21 0.0238 - 22 0.000389 - 24 0.00195 - 26 0.00701 - 28 0.00389 - 29 0.0269 - 30 0.00701 - 31 0.0245 - 32 0.0218 - 33 0.0592 - 34 0.00584 - 35 0.0253 - 37 0.000389 - 38 0.000779 - 39 0.0343 - 40 0.0401 - 41 0.0666 - 42 0.0101 - 44 0.00117 - 45 0.00117 - 46 0.00117 - 47 0.00195 - - 2 6 1 0 - 7 1 - - 3 4 2 0 - 7 0.5 - 41 0.5 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 12 0.111 - 33 0.222 - 35 0.111 - 41 0.333 - - 7 1 1 0 - 19 1 - - 8 9 4 0 - 7 0.556 - 12 0.111 - 26 0.111 - 29 0.222 - - 13 3 2 0 - 4 0.333 - 7 0.667 - - 15 3 2 0 - 8 0.667 - 42 0.333 - - 17 25 10 0 - 0 0.24 - 2 0.04 - 7 0.08 - 29 0.04 - 30 0.04 - 31 0.04 - 33 0.12 - 35 0.04 - 40 0.12 - 41 0.24 - - 19 8 7 0 - 12 0.125 - 24 0.125 - 29 0.25 - 32 0.125 - 33 0.125 - 40 0.125 - 41 0.125 - - 21 42 9 0 - 0 0.0476 - 7 0.571 - 29 0.0238 - 31 0.0714 - 35 0.0238 - 40 0.143 - 41 0.0238 - 42 0.0714 - 46 0.0238 - - 28 1 1 0 - 8 1 - - 60 3 3 0 - 7 0.333 - 38 0.333 - 40 0.333 - - 5 861 10 0 - 0 0.861 - 4 0.00232 - 12 0.0848 - 18 0.0128 - 19 0.00116 - 21 0.0244 - 26 0.00116 - 33 0.00697 - 35 0.00116 - 41 0.00465 - - 6 75 17 7 - 0 0.0533 - 2 0.0267 - 6 0.107 - 7 0.08 - 8 0.0133 - 12 0.0267 - 26 0.0533 - 31 0.0133 - 33 0.0533 - 39 0.0133 - 40 0.24 - 41 0.173 - 42 0.0267 - 43 0.0133 - 44 0.0267 - 45 0.0133 - 46 0.0667 - - 4 8 5 0 - 7 0.125 - 33 0.5 - 40 0.125 - 41 0.125 - 45 0.125 - - 6 17 6 0 - 6 0.176 - 7 0.235 - 40 0.118 - 41 0.235 - 43 0.0588 - 46 0.176 - - 8 5 4 0 - 0 0.2 - 6 0.4 - 26 0.2 - 44 0.2 - - 41 5 4 0 - 39 0.2 - 40 0.2 - 41 0.2 - 42 0.4 - - 43 1 1 0 - 8 1 - - 45 4 3 0 - 6 0.5 - 40 0.25 - 46 0.25 - - 47 31 9 0 - 0 0.0645 - 2 0.0645 - 12 0.0645 - 26 0.0968 - 31 0.0323 - 40 0.419 - 41 0.194 - 44 0.0323 - 46 0.0323 - - 7 103 24 7 - 0 0.117 - 2 0.00971 - 3 0.0194 - 4 0.117 - 5 0.00971 - 7 0.175 - 8 0.0291 - 12 0.0291 - 13 0.0583 - 14 0.00971 - 15 0.0194 - 18 0.0194 - 19 0.0291 - 21 0.0291 - 22 0.00971 - 24 0.00971 - 26 0.0194 - 29 0.00971 - 31 0.0485 - 33 0.0291 - 39 0.0194 - 40 0.0874 - 41 0.0874 - 47 0.00971 - - 8 2 2 0 - 7 0.5 - 15 0.5 - - 13 8 6 0 - 7 0.125 - 26 0.125 - 33 0.125 - 40 0.375 - 41 0.125 - 47 0.125 - - 21 9 4 0 - 4 0.444 - 8 0.222 - 13 0.222 - 14 0.111 - - 41 2 2 0 - 13 0.5 - 21 0.5 - - 47 62 20 0 - 0 0.177 - 2 0.0161 - 4 0.0484 - 5 0.0161 - 7 0.177 - 8 0.0161 - 12 0.0484 - 15 0.0161 - 18 0.0323 - 19 0.0484 - 21 0.0161 - 22 0.0161 - 24 0.0161 - 26 0.0161 - 29 0.0161 - 31 0.0806 - 33 0.0323 - 39 0.0323 - 40 0.0484 - 41 0.129 - - 55 10 4 0 - 3 0.1 - 4 0.5 - 13 0.3 - 40 0.1 - - 60 4 1 0 - 7 1 - - 8 1338 39 20 - 0 0.059 - 1 0.000747 - 2 0.0329 - 3 0.00673 - 4 0.0112 - 6 0.00374 - 7 0.361 - 8 0.00897 - 9 0.00747 - 10 0.00224 - 12 0.0112 - 13 0.0142 - 14 0.00673 - 15 0.00598 - 19 0.00299 - 21 0.0172 - 22 0.00299 - 24 0.000747 - 26 0.0471 - 27 0.000747 - 28 0.00374 - 29 0.0262 - 30 0.0172 - 31 0.00523 - 32 0.0105 - 33 0.00972 - 34 0.00224 - 35 0.00299 - 37 0.000747 - 38 0.00149 - 39 0.0493 - 40 0.116 - 41 0.116 - 42 0.0179 - 43 0.00448 - 44 0.00448 - 45 0.00374 - 46 0.00374 - 47 0.000747 - - 2 12 5 0 - 0 0.0833 - 7 0.25 - 14 0.167 - 40 0.333 - 41 0.167 - - 3 4 3 0 - 2 0.25 - 9 0.5 - 40 0.25 - - 4 482 34 0 - 0 0.0622 - 2 0.0456 - 3 0.0124 - 4 0.0187 - 6 0.00207 - 7 0.255 - 8 0.0104 - 9 0.0083 - 10 0.00622 - 12 0.0124 - 13 0.0104 - 14 0.00415 - 15 0.00415 - 19 0.00415 - 21 0.0187 - 22 0.00415 - 24 0.00207 - 26 0.0539 - 27 0.00207 - 28 0.00622 - 29 0.0104 - 30 0.0166 - 32 0.00622 - 33 0.0166 - 34 0.00207 - 35 0.00415 - 37 0.00207 - 38 0.00415 - 39 0.135 - 40 0.133 - 41 0.0996 - 42 0.0207 - 44 0.00207 - 45 0.00415 - - 7 4 4 0 - 7 0.25 - 12 0.25 - 21 0.25 - 26 0.25 - - 8 31 13 0 - 1 0.0323 - 7 0.226 - 14 0.0323 - 15 0.0323 - 21 0.0323 - 22 0.0323 - 26 0.0323 - 29 0.0645 - 33 0.0645 - 35 0.0323 - 40 0.161 - 41 0.226 - 44 0.0323 - - 13 49 12 0 - 0 0.0816 - 2 0.0408 - 4 0.0204 - 7 0.327 - 12 0.0612 - 14 0.0204 - 29 0.0204 - 30 0.0204 - 40 0.163 - 41 0.204 - 42 0.0204 - 46 0.0204 - - 14 11 5 0 - 2 0.0909 - 7 0.364 - 40 0.182 - 41 0.273 - 42 0.0909 - - 15 12 7 0 - 2 0.0833 - 7 0.25 - 22 0.0833 - 26 0.0833 - 29 0.333 - 40 0.0833 - 42 0.0833 - - 20 57 10 0 - 2 0.0526 - 7 0.14 - 13 0.0351 - 15 0.0175 - 21 0.0351 - 26 0.0351 - 29 0.0175 - 33 0.0175 - 40 0.368 - 41 0.281 - - 21 63 11 0 - 0 0.0635 - 2 0.0159 - 7 0.603 - 19 0.0159 - 21 0.0159 - 26 0.111 - 32 0.0159 - 40 0.0794 - 41 0.0476 - 44 0.0159 - 46 0.0159 - - 22 2 2 0 - 28 0.5 - 40 0.5 - - 23 10 4 0 - 0 0.1 - 7 0.5 - 40 0.3 - 46 0.1 - - 30 2 2 0 - 13 0.5 - 41 0.5 - - 42 2 2 0 - 14 0.5 - 26 0.5 - - 45 2 2 0 - 19 0.5 - 46 0.5 - - 47 537 30 0 - 0 0.0689 - 2 0.0149 - 3 0.00186 - 4 0.00745 - 6 0.00559 - 7 0.492 - 8 0.00745 - 9 0.00745 - 12 0.00745 - 13 0.0168 - 14 0.00372 - 15 0.00745 - 21 0.0168 - 26 0.0447 - 28 0.00186 - 29 0.0391 - 30 0.0205 - 31 0.00931 - 32 0.0168 - 33 0.00372 - 34 0.00372 - 35 0.00186 - 39 0.00186 - 40 0.0596 - 41 0.102 - 42 0.0186 - 43 0.00931 - 44 0.00559 - 46 0.00186 - 47 0.00186 - - 48 13 6 0 - 0 0.0769 - 2 0.0769 - 7 0.0769 - 31 0.0769 - 40 0.0769 - 41 0.615 - - 54 1 1 0 - 31 1 - - 55 27 14 0 - 0 0.037 - 2 0.0741 - 3 0.0741 - 4 0.037 - 7 0.185 - 8 0.111 - 13 0.0741 - 29 0.037 - 30 0.0741 - 32 0.037 - 40 0.0741 - 41 0.037 - 43 0.037 - 45 0.111 - - 60 8 6 0 - 2 0.25 - 6 0.125 - 7 0.125 - 12 0.125 - 40 0.25 - 41 0.125 - - 9 236 14 6 - 0 0.0212 - 2 0.00847 - 4 0.00847 - 7 0.619 - 12 0.00424 - 21 0.0254 - 26 0.0763 - 29 0.00424 - 30 0.00424 - 31 0.0127 - 40 0.114 - 41 0.089 - 42 0.00847 - 44 0.00424 - - 4 15 5 0 - 4 0.0667 - 7 0.6 - 31 0.0667 - 40 0.133 - 41 0.133 - - 13 7 5 0 - 0 0.143 - 7 0.429 - 12 0.143 - 40 0.143 - 41 0.143 - - 14 2 2 0 - 0 0.5 - 2 0.5 - - 21 19 4 0 - 7 0.737 - 40 0.158 - 41 0.0526 - 42 0.0526 - - 47 160 11 0 - 0 0.0125 - 2 0.00625 - 7 0.606 - 21 0.0375 - 26 0.106 - 29 0.00625 - 30 0.00625 - 40 0.112 - 41 0.0938 - 42 0.00625 - 44 0.00625 - - 55 9 4 0 - 4 0.111 - 7 0.667 - 31 0.111 - 41 0.111 - - 10 370 23 6 - 0 0.0568 - 2 0.0027 - 4 0.00811 - 5 0.0027 - 7 0.705 - 8 0.00541 - 12 0.00541 - 13 0.00811 - 19 0.00811 - 21 0.0162 - 26 0.0135 - 28 0.0027 - 29 0.0027 - 30 0.00811 - 31 0.0027 - 32 0.0324 - 37 0.0027 - 40 0.0459 - 41 0.0486 - 42 0.0135 - 44 0.0027 - 45 0.0027 - 46 0.0027 - - 2 2 2 0 - 26 0.5 - 46 0.5 - - 4 125 17 0 - 0 0.064 - 2 0.008 - 4 0.024 - 5 0.008 - 7 0.552 - 8 0.016 - 12 0.008 - 13 0.024 - 19 0.016 - 21 0.04 - 26 0.016 - 30 0.008 - 32 0.016 - 40 0.112 - 41 0.056 - 42 0.024 - 44 0.008 - - 20 10 6 0 - 7 0.3 - 26 0.2 - 37 0.1 - 40 0.1 - 41 0.2 - 45 0.1 - - 21 5 2 0 - 7 0.4 - 41 0.6 - - 47 216 12 0 - 0 0.0602 - 7 0.838 - 12 0.00463 - 19 0.00463 - 21 0.00463 - 28 0.00463 - 29 0.00463 - 30 0.00926 - 31 0.00463 - 32 0.0463 - 40 0.00926 - 41 0.00926 - - 55 6 3 0 - 7 0.333 - 41 0.5 - 42 0.167 - - 12 3 3 0 - 40 0.333 - 41 0.333 - 43 0.333 - - 13 98717 46 40 - 0 0.0625 - 1 0.000365 - 2 0.0342 - 3 0.00661 - 4 0.0085 - 5 0.000152 - 6 6.08e-05 - 7 0.33 - 8 0.00775 - 9 0.00124 - 10 5.06e-05 - 12 0.0236 - 13 0.004 - 14 0.000952 - 15 0.00478 - 16 3.04e-05 - 17 2.03e-05 - 18 2.03e-05 - 19 0.00561 - 20 0.000274 - 21 0.0242 - 22 0.00352 - 23 0.000111 - 24 0.000537 - 25 4.05e-05 - 26 0.051 - 28 0.00134 - 29 0.0429 - 30 0.00867 - 31 0.0138 - 32 0.00181 - 33 0.0202 - 34 0.0105 - 35 0.00329 - 36 0.000243 - 37 0.00321 - 38 3.04e-05 - 39 0.000263 - 40 0.146 - 41 0.15 - 42 0.015 - 43 0.00203 - 44 0.002 - 45 0.00284 - 46 0.00573 - 47 0.000669 - - 0 3 3 0 - 3 0.333 - 7 0.333 - 41 0.333 - - 2 783 25 0 - 0 0.0396 - 2 0.0179 - 4 0.00383 - 6 0.00128 - 7 0.298 - 8 0.00383 - 12 0.0204 - 21 0.0153 - 26 0.0383 - 29 0.014 - 30 0.00511 - 31 0.0153 - 32 0.014 - 33 0.0115 - 34 0.0102 - 35 0.00255 - 37 0.00383 - 40 0.25 - 41 0.183 - 42 0.0307 - 43 0.00383 - 44 0.00255 - 45 0.00511 - 46 0.00894 - 47 0.00128 - - 3 4034 35 0 - 0 0.0151 - 1 0.000496 - 2 0.0288 - 3 0.0654 - 4 0.0206 - 7 0.335 - 8 0.0107 - 9 0.00868 - 12 0.00645 - 13 0.00372 - 14 0.000496 - 15 0.00843 - 19 0.00347 - 20 0.000744 - 21 0.0121 - 22 0.00198 - 24 0.000496 - 26 0.128 - 28 0.000496 - 29 0.0129 - 30 0.00397 - 31 0.00744 - 32 0.000248 - 33 0.00645 - 34 0.00347 - 35 0.00198 - 37 0.00223 - 40 0.143 - 41 0.127 - 42 0.0273 - 43 0.00322 - 44 0.00545 - 45 0.00223 - 46 0.00149 - 47 0.000992 - - 4 30713 45 0 - 0 0.078 - 1 0.000456 - 2 0.022 - 3 0.00156 - 4 0.00834 - 5 0.000195 - 6 3.26e-05 - 7 0.359 - 8 0.00703 - 9 0.000977 - 10 9.77e-05 - 12 0.0316 - 13 0.00371 - 14 0.00107 - 15 0.00391 - 16 6.51e-05 - 18 6.51e-05 - 19 0.00834 - 20 0.000456 - 21 0.0346 - 22 0.00866 - 23 0.000195 - 24 0.000912 - 25 3.26e-05 - 26 0.0489 - 28 0.00166 - 29 0.0524 - 30 0.00853 - 31 0.0151 - 32 0.00147 - 33 0.0292 - 34 0.013 - 35 0.00293 - 36 0.000293 - 37 0.00414 - 38 3.26e-05 - 39 0.000521 - 40 0.108 - 41 0.125 - 42 0.00856 - 43 0.00143 - 44 0.000814 - 45 0.00378 - 46 0.00199 - 47 0.000358 - - 6 8 6 0 - 0 0.125 - 2 0.125 - 7 0.25 - 40 0.125 - 41 0.125 - 42 0.25 - - 7 79 12 0 - 0 0.0759 - 2 0.038 - 7 0.152 - 12 0.0253 - 15 0.0127 - 21 0.0253 - 26 0.0253 - 30 0.0253 - 31 0.0127 - 33 0.0127 - 40 0.392 - 41 0.203 - - 8 20150 43 0 - 0 0.0496 - 1 0.000397 - 2 0.0359 - 3 0.00179 - 4 0.00794 - 5 0.000199 - 6 4.96e-05 - 7 0.34 - 8 0.00591 - 9 0.000397 - 10 9.93e-05 - 12 0.0205 - 13 0.00437 - 14 0.000794 - 15 0.00536 - 16 4.96e-05 - 19 0.00541 - 20 0.000149 - 21 0.0172 - 22 0.000844 - 23 4.96e-05 - 24 0.000248 - 25 4.96e-05 - 26 0.0461 - 28 0.00124 - 29 0.032 - 30 0.0103 - 31 0.0154 - 32 0.000943 - 33 0.0144 - 34 0.00983 - 35 0.00407 - 36 0.000248 - 37 0.00323 - 39 9.93e-05 - 40 0.175 - 41 0.158 - 42 0.0168 - 43 0.00159 - 44 0.00199 - 45 0.00149 - 46 0.00928 - 47 0.000596 - - 9 517 25 0 - 0 0.0406 - 2 0.0426 - 4 0.00387 - 7 0.453 - 8 0.0058 - 12 0.0174 - 13 0.00193 - 15 0.00193 - 17 0.00193 - 19 0.00387 - 21 0.0193 - 26 0.0754 - 29 0.00774 - 30 0.0155 - 31 0.0058 - 32 0.0058 - 33 0.0193 - 34 0.00387 - 40 0.128 - 41 0.112 - 42 0.0251 - 43 0.00193 - 44 0.00193 - 45 0.00193 - 46 0.00387 - - 10 469 25 0 - 0 0.0768 - 2 0.0171 - 4 0.0149 - 7 0.36 - 8 0.0149 - 12 0.0213 - 13 0.00426 - 14 0.00426 - 15 0.0064 - 19 0.0107 - 21 0.032 - 26 0.0597 - 29 0.064 - 30 0.0107 - 31 0.00426 - 32 0.00426 - 33 0.0235 - 35 0.00426 - 37 0.00213 - 39 0.00213 - 40 0.109 - 41 0.134 - 42 0.0149 - 44 0.00213 - 46 0.00213 - - 13 12677 39 0 - 0 0.0652 - 1 0.000473 - 2 0.0461 - 3 0.00252 - 4 0.00529 - 7 0.248 - 8 0.00718 - 9 0.000631 - 12 0.0242 - 13 0.00363 - 14 0.000631 - 15 0.00552 - 17 7.89e-05 - 19 0.00387 - 20 0.000158 - 21 0.0204 - 22 0.000868 - 24 0.000158 - 26 0.0311 - 28 0.00142 - 29 0.0506 - 30 0.00812 - 31 0.0177 - 32 0.00252 - 33 0.02 - 34 0.0165 - 35 0.00371 - 36 0.000473 - 37 0.00331 - 38 7.89e-05 - 39 0.000237 - 40 0.189 - 41 0.186 - 42 0.0185 - 43 0.00174 - 44 0.00268 - 45 0.00316 - 46 0.00702 - 47 0.0011 - - 14 957 30 0 - 0 0.0742 - 1 0.00104 - 2 0.0366 - 3 0.0115 - 4 0.00522 - 7 0.222 - 8 0.00522 - 12 0.023 - 13 0.00209 - 14 0.00104 - 15 0.00522 - 19 0.00313 - 21 0.023 - 24 0.00104 - 26 0.0303 - 29 0.0815 - 30 0.00104 - 31 0.0219 - 32 0.00418 - 33 0.0136 - 34 0.0167 - 35 0.00209 - 37 0.00104 - 40 0.181 - 41 0.203 - 42 0.0167 - 43 0.00104 - 44 0.00522 - 45 0.00418 - 46 0.00313 - - 15 3706 37 0 - 0 0.0815 - 2 0.0364 - 3 0.0054 - 4 0.00729 - 7 0.181 - 8 0.00648 - 9 0.00108 - 12 0.0324 - 13 0.00863 - 14 0.00054 - 15 0.00405 - 19 0.00189 - 20 0.00027 - 21 0.0216 - 22 0.00189 - 23 0.000809 - 24 0.00027 - 26 0.0321 - 28 0.000809 - 29 0.11 - 30 0.00756 - 31 0.0165 - 32 0.0027 - 33 0.0262 - 34 0.0132 - 35 0.0108 - 36 0.000809 - 37 0.00162 - 39 0.00054 - 40 0.174 - 41 0.186 - 42 0.0135 - 43 0.0027 - 44 0.0027 - 45 0.00513 - 46 0.00243 - 47 0.00027 - - 16 73 10 0 - 0 0.0685 - 2 0.0411 - 7 0.219 - 13 0.0137 - 15 0.0411 - 21 0.0548 - 26 0.0822 - 29 0.123 - 40 0.178 - 41 0.178 - - 18 2 2 0 - 2 0.5 - 21 0.5 - - 19 13 2 0 - 7 0.231 - 41 0.769 - - 20 2788 31 0 - 0 0.0897 - 2 0.0308 - 3 0.000717 - 4 0.00825 - 5 0.00108 - 7 0.303 - 8 0.00933 - 12 0.0233 - 13 0.00287 - 14 0.000717 - 15 0.00323 - 19 0.00143 - 21 0.0326 - 22 0.00179 - 24 0.00251 - 26 0.0976 - 28 0.00395 - 29 0.0334 - 30 0.00825 - 31 0.00753 - 32 0.000717 - 33 0.0197 - 34 0.00108 - 37 0.0043 - 39 0.000359 - 40 0.145 - 41 0.142 - 42 0.0169 - 44 0.00215 - 45 0.00251 - 46 0.00359 - - 21 101 20 0 - 0 0.0693 - 2 0.0396 - 4 0.0297 - 7 0.297 - 8 0.0297 - 12 0.0396 - 14 0.0099 - 15 0.0099 - 19 0.0099 - 21 0.0297 - 26 0.0396 - 29 0.0198 - 33 0.0396 - 35 0.0099 - 40 0.0693 - 41 0.208 - 42 0.0099 - 43 0.0099 - 44 0.0198 - 46 0.0099 - - 22 4 3 0 - 7 0.25 - 8 0.25 - 41 0.5 - - 28 6 5 0 - 7 0.167 - 15 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 29 9 3 0 - 0 0.111 - 7 0.667 - 40 0.222 - - 30 711 25 0 - 0 0.0394 - 1 0.00141 - 2 0.0338 - 4 0.00422 - 7 0.422 - 8 0.00844 - 9 0.00141 - 12 0.0197 - 13 0.00141 - 15 0.00281 - 19 0.00422 - 21 0.0127 - 26 0.0352 - 29 0.038 - 30 0.00985 - 31 0.0155 - 32 0.00422 - 33 0.0113 - 34 0.00844 - 35 0.00281 - 40 0.148 - 41 0.152 - 42 0.0197 - 45 0.00141 - 46 0.00281 - - 31 547 23 0 - 0 0.0622 - 2 0.0329 - 3 0.00183 - 4 0.00366 - 7 0.419 - 8 0.00183 - 12 0.0347 - 13 0.00183 - 14 0.00183 - 15 0.00183 - 19 0.00366 - 21 0.0165 - 26 0.0548 - 29 0.00548 - 30 0.00914 - 31 0.00548 - 33 0.0219 - 34 0.00366 - 35 0.00548 - 40 0.163 - 41 0.126 - 42 0.0201 - 44 0.00366 - - 34 4 4 0 - 2 0.25 - 7 0.25 - 40 0.25 - 44 0.25 - - 35 2 2 0 - 5 0.5 - 7 0.5 - - 40 6 5 0 - 0 0.167 - 40 0.333 - 42 0.167 - 43 0.167 - 47 0.167 - - 41 22 10 0 - 0 0.0455 - 2 0.0455 - 12 0.0455 - 26 0.0455 - 29 0.136 - 31 0.0455 - 34 0.0455 - 40 0.273 - 41 0.227 - 43 0.0909 - - 42 5 2 0 - 7 0.2 - 40 0.8 - - 43 16 9 0 - 0 0.25 - 7 0.125 - 8 0.0625 - 12 0.0625 - 29 0.0625 - 33 0.0625 - 35 0.0625 - 40 0.125 - 41 0.188 - - 44 11 2 0 - 7 0.182 - 43 0.818 - - 45 138 8 0 - 0 0.0145 - 7 0.188 - 8 0.00725 - 21 0.00725 - 26 0.029 - 40 0.116 - 41 0.0725 - 46 0.565 - - 46 169 21 0 - 0 0.0592 - 2 0.0296 - 4 0.0178 - 7 0.325 - 8 0.00592 - 12 0.0237 - 15 0.00592 - 19 0.0118 - 21 0.0118 - 26 0.0237 - 29 0.0355 - 30 0.0296 - 31 0.0118 - 33 0.0355 - 34 0.0473 - 37 0.00592 - 40 0.148 - 41 0.142 - 42 0.0178 - 44 0.00592 - 45 0.00592 - - 47 13978 39 0 - 0 0.0505 - 1 0.000215 - 2 0.0552 - 3 0.0124 - 4 0.0107 - 6 0.000215 - 7 0.343 - 8 0.0098 - 9 0.00114 - 12 0.0152 - 13 0.00501 - 14 0.00157 - 15 0.00558 - 19 0.00622 - 20 0.000215 - 21 0.022 - 22 0.00172 - 23 7.15e-05 - 24 0.000358 - 25 0.000143 - 26 0.0519 - 28 0.00143 - 29 0.028 - 30 0.00959 - 31 0.01 - 32 0.00272 - 33 0.0132 - 34 0.00637 - 35 0.00265 - 37 0.00286 - 38 7.15e-05 - 40 0.131 - 41 0.166 - 42 0.0189 - 43 0.00365 - 44 0.0015 - 45 0.0015 - 46 0.00651 - 47 0.00136 - - 48 2092 30 0 - 0 0.0344 - 2 0.0191 - 3 0.000956 - 4 0.0086 - 5 0.000478 - 7 0.497 - 8 0.0196 - 12 0.012 - 13 0.00287 - 14 0.000478 - 15 0.00191 - 19 0.00335 - 20 0.000478 - 21 0.00956 - 24 0.000478 - 26 0.0531 - 28 0.000478 - 29 0.0129 - 30 0.0139 - 31 0.0167 - 33 0.0163 - 34 0.00717 - 35 0.000956 - 37 0.00239 - 40 0.132 - 41 0.106 - 42 0.0201 - 44 0.000956 - 45 0.00143 - 46 0.00478 - - 49 17 5 0 - 7 0.529 - 21 0.0588 - 30 0.0588 - 40 0.176 - 41 0.176 - - 54 152 19 0 - 0 0.0658 - 2 0.0263 - 4 0.00658 - 7 0.289 - 12 0.0263 - 13 0.00658 - 14 0.00658 - 15 0.0132 - 19 0.00658 - 21 0.0132 - 26 0.0132 - 29 0.132 - 31 0.00658 - 33 0.0132 - 34 0.0461 - 35 0.0132 - 40 0.158 - 41 0.151 - 45 0.00658 - - 55 2721 34 0 - 0 0.0978 - 1 0.000368 - 2 0.0298 - 3 0.0011 - 4 0.00257 - 7 0.27 - 8 0.00551 - 12 0.0305 - 13 0.00147 - 14 0.000735 - 15 0.00368 - 19 0.000735 - 21 0.0243 - 22 0.0011 - 24 0.000368 - 26 0.0724 - 28 0.000368 - 29 0.0592 - 30 0.00515 - 31 0.00368 - 32 0.00147 - 33 0.0287 - 34 0.00331 - 35 0.00147 - 37 0.00184 - 39 0.000368 - 40 0.166 - 41 0.16 - 42 0.0103 - 43 0.00221 - 44 0.0011 - 45 0.00845 - 46 0.00257 - 47 0.0011 - - 57 1 1 0 - 31 1 - - 58 31 13 0 - 0 0.0968 - 2 0.0323 - 4 0.0323 - 7 0.194 - 13 0.0645 - 21 0.0323 - 26 0.0323 - 29 0.0323 - 31 0.0645 - 33 0.0645 - 40 0.194 - 41 0.129 - 46 0.0323 - - 60 950 25 0 - 0 0.0137 - 2 0.0179 - 3 0.0621 - 4 0.0189 - 7 0.479 - 8 0.0211 - 9 0.0211 - 12 0.00211 - 13 0.00105 - 15 0.00316 - 21 0.0189 - 22 0.00632 - 26 0.0653 - 29 0.0105 - 30 0.00211 - 31 0.0105 - 32 0.00526 - 33 0.00211 - 34 0.00211 - 40 0.132 - 41 0.0705 - 42 0.00947 - 43 0.00421 - 44 0.02 - 46 0.00105 - - 68 43 12 0 - 0 0.0465 - 2 0.0233 - 7 0.186 - 8 0.0233 - 12 0.0233 - 26 0.0233 - 29 0.0465 - 31 0.0465 - 36 0.0233 - 40 0.279 - 41 0.233 - 42 0.0465 - - 14 55733 44 33 - 0 0.0834 - 1 0.000718 - 2 0.044 - 3 0.0017 - 4 0.0176 - 5 8.97e-05 - 7 0.251 - 8 0.0175 - 9 0.001 - 10 3.59e-05 - 12 0.0299 - 13 0.00215 - 14 0.000807 - 15 0.0023 - 16 3.59e-05 - 17 5.38e-05 - 18 3.59e-05 - 19 0.00468 - 20 0.000161 - 21 0.0335 - 22 0.00206 - 23 0.000126 - 24 0.000646 - 25 1.79e-05 - 26 0.0419 - 28 0.00355 - 29 0.0527 - 30 0.0145 - 31 0.0224 - 32 0.0385 - 33 0.00206 - 34 0.0131 - 35 0.00736 - 36 0.000467 - 37 0.00224 - 39 0.000323 - 40 0.144 - 41 0.13 - 42 0.0201 - 43 0.00169 - 44 0.00452 - 45 0.00237 - 46 0.00397 - 47 0.00106 - - 2 903 28 0 - 0 0.0709 - 2 0.0244 - 4 0.00443 - 7 0.199 - 8 0.00443 - 9 0.00221 - 12 0.0321 - 19 0.00554 - 21 0.0377 - 22 0.00221 - 26 0.0255 - 28 0.00111 - 29 0.0532 - 30 0.0166 - 31 0.0233 - 32 0.041 - 33 0.00775 - 34 0.0177 - 35 0.00443 - 36 0.00111 - 37 0.00221 - 40 0.229 - 41 0.142 - 42 0.031 - 43 0.00554 - 45 0.00111 - 46 0.00554 - 47 0.00886 - - 3 4221 37 0 - 0 0.0315 - 2 0.0334 - 4 0.129 - 7 0.211 - 8 0.0339 - 9 0.00379 - 12 0.00782 - 13 0.00355 - 14 0.000237 - 15 0.00498 - 16 0.000237 - 19 0.00498 - 20 0.000237 - 21 0.0576 - 22 0.00426 - 23 0.000237 - 25 0.000237 - 26 0.0431 - 28 0.00118 - 29 0.0206 - 30 0.00805 - 31 0.0199 - 32 0.00877 - 33 0.00142 - 34 0.00332 - 35 0.00284 - 36 0.000474 - 37 0.00118 - 39 0.000711 - 40 0.154 - 41 0.137 - 42 0.0566 - 43 0.00237 - 44 0.00877 - 45 0.000474 - 46 0.00118 - 47 0.00166 - - 4 5302 37 0 - 0 0.151 - 1 0.00132 - 2 0.0228 - 3 0.000566 - 4 0.00622 - 7 0.247 - 8 0.0104 - 9 0.000377 - 12 0.0541 - 13 0.0017 - 14 0.00189 - 15 0.00302 - 17 0.000189 - 19 0.0164 - 20 0.000377 - 21 0.0353 - 22 0.00113 - 23 0.000189 - 24 0.00207 - 26 0.0313 - 28 0.00453 - 29 0.0621 - 30 0.00962 - 31 0.0226 - 32 0.0732 - 33 0.00245 - 34 0.0143 - 35 0.00905 - 36 0.000566 - 37 0.00226 - 40 0.101 - 41 0.0934 - 42 0.0106 - 43 0.000943 - 44 0.0017 - 45 0.00245 - 46 0.00264 - - 6 7 5 0 - 7 0.429 - 26 0.143 - 31 0.143 - 40 0.143 - 44 0.143 - - 8 12828 41 0 - 0 0.075 - 1 0.00039 - 2 0.0472 - 3 0.000468 - 4 0.00834 - 5 7.8e-05 - 7 0.251 - 8 0.0159 - 9 0.000312 - 12 0.0288 - 13 0.00195 - 14 0.00101 - 15 0.0014 - 16 7.8e-05 - 17 7.8e-05 - 18 7.8e-05 - 19 0.00366 - 21 0.0241 - 22 0.00148 - 23 7.8e-05 - 24 0.000156 - 26 0.0391 - 28 0.00226 - 29 0.0366 - 30 0.0132 - 31 0.0214 - 32 0.029 - 33 0.00187 - 34 0.0136 - 35 0.0067 - 36 0.000546 - 37 0.00249 - 39 0.000702 - 40 0.18 - 41 0.153 - 42 0.0216 - 43 0.00164 - 44 0.00639 - 45 0.00226 - 46 0.00514 - 47 0.00156 - - 9 459 25 0 - 0 0.0566 - 1 0.00218 - 2 0.0501 - 4 0.00436 - 7 0.322 - 8 0.00871 - 12 0.0392 - 13 0.00654 - 15 0.00218 - 19 0.00654 - 21 0.0349 - 26 0.0588 - 28 0.00436 - 29 0.0174 - 30 0.0174 - 31 0.0109 - 32 0.0196 - 34 0.0131 - 35 0.00654 - 37 0.00436 - 40 0.15 - 41 0.146 - 42 0.0131 - 44 0.00218 - 46 0.00218 - - 10 269 24 0 - 0 0.126 - 2 0.0112 - 4 0.00372 - 7 0.216 - 8 0.0149 - 12 0.0595 - 13 0.00372 - 19 0.0186 - 21 0.0297 - 24 0.00372 - 26 0.0335 - 28 0.00372 - 29 0.0335 - 30 0.0297 - 31 0.0112 - 32 0.1 - 33 0.00743 - 34 0.00372 - 35 0.00372 - 40 0.0818 - 41 0.167 - 42 0.0186 - 43 0.00372 - 45 0.0149 - - 13 9556 39 0 - 0 0.0876 - 1 0.00115 - 2 0.0643 - 3 0.000837 - 4 0.0068 - 5 0.000105 - 7 0.187 - 8 0.0139 - 9 0.000733 - 12 0.0274 - 13 0.00199 - 14 0.000105 - 15 0.00199 - 18 0.000105 - 19 0.00199 - 20 0.000314 - 21 0.0331 - 22 0.00167 - 23 0.000105 - 24 0.000523 - 26 0.0328 - 28 0.00262 - 29 0.0671 - 30 0.013 - 31 0.0202 - 32 0.0419 - 33 0.0023 - 34 0.0142 - 35 0.0045 - 36 0.000209 - 37 0.00188 - 40 0.173 - 41 0.167 - 42 0.0168 - 43 0.00188 - 44 0.0023 - 45 0.0023 - 46 0.00366 - 47 0.000942 - - 14 538 26 0 - 0 0.0874 - 2 0.0502 - 4 0.00929 - 7 0.18 - 8 0.00929 - 10 0.00186 - 12 0.0297 - 13 0.00558 - 15 0.00186 - 21 0.0335 - 26 0.0372 - 28 0.00186 - 29 0.0967 - 30 0.00558 - 31 0.00929 - 32 0.0409 - 33 0.00372 - 34 0.00929 - 35 0.00558 - 40 0.19 - 41 0.139 - 42 0.0353 - 44 0.00186 - 45 0.00743 - 46 0.00558 - 47 0.00186 - - 15 2001 34 0 - 0 0.125 - 1 0.001 - 2 0.037 - 3 0.006 - 4 0.005 - 7 0.147 - 8 0.013 - 12 0.0335 - 13 0.0005 - 14 0.0015 - 15 0.0045 - 19 0.003 - 21 0.026 - 22 0.003 - 23 0.0005 - 26 0.039 - 28 0.0025 - 29 0.141 - 30 0.0155 - 31 0.015 - 32 0.0465 - 33 0.004 - 34 0.0145 - 35 0.008 - 37 0.0025 - 39 0.0005 - 40 0.14 - 41 0.133 - 42 0.0145 - 43 0.0025 - 44 0.0045 - 45 0.004 - 46 0.003 - 47 0.0015 - - 16 26 9 0 - 0 0.115 - 7 0.0769 - 26 0.115 - 29 0.269 - 32 0.0385 - 40 0.231 - 41 0.0769 - 42 0.0385 - 44 0.0385 - - 19 6 5 0 - 12 0.167 - 21 0.333 - 29 0.167 - 35 0.167 - 40 0.167 - - 20 1519 34 0 - 0 0.107 - 1 0.000658 - 2 0.0434 - 3 0.00132 - 4 0.0105 - 5 0.000658 - 7 0.244 - 8 0.00658 - 9 0.00132 - 12 0.0217 - 13 0.00263 - 14 0.00197 - 15 0.000658 - 19 0.00132 - 21 0.0421 - 22 0.00263 - 23 0.000658 - 24 0.00329 - 26 0.0737 - 28 0.0118 - 29 0.029 - 30 0.00592 - 31 0.0151 - 32 0.0263 - 33 0.00197 - 35 0.00263 - 37 0.00395 - 39 0.000658 - 40 0.185 - 41 0.132 - 42 0.0132 - 43 0.000658 - 45 0.00395 - 46 0.00197 - - 21 38 15 0 - 0 0.0789 - 2 0.0263 - 7 0.316 - 12 0.0263 - 21 0.0263 - 26 0.105 - 29 0.0263 - 30 0.0526 - 31 0.0526 - 32 0.0526 - 35 0.0526 - 40 0.0263 - 41 0.105 - 42 0.0263 - 46 0.0263 - - 23 2 1 0 - 21 1 - - 28 16 6 0 - 7 0.562 - 12 0.125 - 26 0.0625 - 28 0.125 - 32 0.0625 - 41 0.0625 - - 29 9 5 0 - 7 0.444 - 12 0.222 - 15 0.111 - 21 0.111 - 40 0.111 - - 30 480 24 0 - 0 0.0562 - 2 0.0542 - 4 0.00417 - 7 0.296 - 8 0.0104 - 12 0.0229 - 13 0.00208 - 15 0.00417 - 19 0.00417 - 21 0.0208 - 22 0.00208 - 26 0.0312 - 29 0.0521 - 30 0.00625 - 31 0.0146 - 32 0.0229 - 33 0.00208 - 34 0.0104 - 35 0.00417 - 39 0.00208 - 40 0.2 - 41 0.169 - 42 0.00625 - 46 0.00208 - - 31 394 24 0 - 0 0.0558 - 2 0.0508 - 4 0.00761 - 5 0.00254 - 7 0.289 - 8 0.0228 - 12 0.0431 - 19 0.00761 - 21 0.0305 - 26 0.0431 - 29 0.0203 - 30 0.0178 - 31 0.0152 - 32 0.0279 - 33 0.00254 - 34 0.0178 - 35 0.00761 - 40 0.15 - 41 0.142 - 42 0.0127 - 43 0.00254 - 44 0.0203 - 45 0.00508 - 46 0.00508 - - 34 3 2 0 - 7 0.667 - 44 0.333 - - 41 4 4 0 - 7 0.25 - 12 0.25 - 26 0.25 - 41 0.25 - - 42 3 3 0 - 7 0.333 - 40 0.333 - 46 0.333 - - 43 15 7 0 - 0 0.0667 - 2 0.133 - 7 0.0667 - 12 0.133 - 21 0.0667 - 40 0.133 - 41 0.4 - - 44 4 1 0 - 43 1 - - 45 61 6 0 - 0 0.0492 - 7 0.115 - 26 0.0328 - 40 0.148 - 41 0.0984 - 46 0.557 - - 46 98 17 0 - 0 0.0408 - 2 0.051 - 4 0.0102 - 7 0.214 - 8 0.0306 - 21 0.0102 - 26 0.0918 - 29 0.0102 - 30 0.0102 - 31 0.0306 - 32 0.0306 - 34 0.0612 - 35 0.0102 - 36 0.0102 - 40 0.163 - 41 0.173 - 42 0.051 - - 47 13576 41 0 - 0 0.0748 - 1 0.000737 - 2 0.0447 - 3 0.00464 - 4 0.00722 - 5 7.37e-05 - 7 0.329 - 8 0.018 - 9 0.00147 - 10 7.37e-05 - 12 0.0322 - 13 0.0025 - 14 0.000958 - 15 0.00214 - 17 7.37e-05 - 19 0.00412 - 20 0.000221 - 21 0.0351 - 22 0.00258 - 23 7.37e-05 - 24 0.000737 - 26 0.0542 - 28 0.00567 - 29 0.0577 - 30 0.022 - 31 0.0306 - 32 0.0463 - 33 0.00147 - 34 0.0171 - 35 0.0127 - 36 0.000737 - 37 0.00302 - 39 0.000221 - 40 0.0806 - 41 0.0854 - 42 0.0123 - 43 0.00125 - 44 0.00133 - 45 0.00243 - 46 0.00258 - 47 0.00081 - - 48 813 27 0 - 0 0.0652 - 1 0.00123 - 2 0.0271 - 4 0.00738 - 7 0.26 - 8 0.0726 - 9 0.00123 - 12 0.0123 - 15 0.00123 - 19 0.00369 - 21 0.0308 - 26 0.0308 - 28 0.00369 - 29 0.0246 - 30 0.0271 - 31 0.0308 - 32 0.0185 - 33 0.00123 - 34 0.00984 - 35 0.00615 - 40 0.194 - 41 0.143 - 42 0.016 - 43 0.00123 - 44 0.00123 - 45 0.00123 - 46 0.00861 - - 54 11 8 0 - 2 0.0909 - 7 0.0909 - 21 0.0909 - 26 0.0909 - 29 0.182 - 32 0.273 - 34 0.0909 - 40 0.0909 - - 55 1044 28 0 - 0 0.136 - 1 0.000958 - 2 0.0345 - 3 0.000958 - 4 0.00287 - 7 0.221 - 8 0.0125 - 12 0.0354 - 13 0.00192 - 15 0.000958 - 21 0.0172 - 22 0.00287 - 24 0.00192 - 26 0.0489 - 28 0.00479 - 29 0.0766 - 30 0.00958 - 31 0.00287 - 32 0.0326 - 33 0.00287 - 34 0.000958 - 35 0.000958 - 37 0.00192 - 40 0.199 - 41 0.126 - 42 0.0153 - 45 0.0067 - 46 0.000958 - - 58 20 11 0 - 0 0.1 - 1 0.05 - 2 0.1 - 7 0.15 - 8 0.05 - 21 0.05 - 31 0.05 - 40 0.2 - 41 0.15 - 42 0.05 - 44 0.05 - - 60 1381 27 0 - 0 0.034 - 2 0.021 - 4 0.0587 - 7 0.254 - 8 0.0391 - 9 0.00145 - 12 0.0101 - 13 0.00217 - 14 0.000724 - 15 0.00579 - 19 0.00145 - 21 0.0434 - 22 0.00362 - 26 0.0268 - 29 0.0224 - 30 0.0101 - 31 0.0203 - 32 0.00507 - 33 0.000724 - 34 0.00434 - 35 0.00217 - 40 0.177 - 41 0.159 - 42 0.0485 - 43 0.00362 - 44 0.0434 - 46 0.000724 - - 68 113 16 0 - 0 0.0619 - 2 0.0265 - 4 0.00885 - 7 0.142 - 8 0.00885 - 12 0.0177 - 21 0.0531 - 26 0.00885 - 29 0.0442 - 31 0.00885 - 32 0.0177 - 33 0.00885 - 34 0.0354 - 40 0.363 - 41 0.177 - 42 0.0177 - - 15 38960 40 26 - 0 0.0826 - 1 7.7e-05 - 2 0.0494 - 3 0.039 - 4 0.00503 - 5 5.13e-05 - 6 2.57e-05 - 7 0.091 - 8 0.00395 - 9 0.000231 - 12 0.0263 - 13 0.00357 - 14 0.00113 - 15 0.00572 - 17 2.57e-05 - 18 0.000642 - 19 0.00167 - 20 0.000282 - 21 0.0216 - 22 0.000796 - 24 7.7e-05 - 26 0.0177 - 28 0.0021 - 29 0.128 - 30 0.00359 - 31 0.00182 - 32 0.00347 - 33 0.0401 - 34 0.00228 - 35 0.00139 - 37 0.00126 - 39 0.000616 - 40 0.125 - 41 0.3 - 42 0.016 - 43 0.00726 - 44 0.00667 - 45 0.00195 - 46 0.00385 - 47 0.00316 - - 2 1047 29 0 - 0 0.0965 - 2 0.0506 - 4 0.00573 - 7 0.085 - 8 0.00669 - 12 0.022 - 13 0.00382 - 14 0.000955 - 15 0.00287 - 18 0.000955 - 19 0.000955 - 21 0.0172 - 26 0.0086 - 28 0.00191 - 29 0.11 - 30 0.00382 - 32 0.0181 - 33 0.0162 - 34 0.00573 - 35 0.000955 - 37 0.000955 - 40 0.226 - 41 0.29 - 42 0.0162 - 43 0.000955 - 44 0.00191 - 45 0.000955 - 46 0.00287 - 47 0.000955 - - 3 26 9 0 - 2 0.0385 - 3 0.0385 - 7 0.154 - 12 0.0385 - 15 0.0385 - 29 0.192 - 40 0.0769 - 41 0.385 - 42 0.0385 - - 4 2090 35 0 - 0 0.116 - 2 0.0656 - 3 0.0172 - 4 0.0067 - 7 0.201 - 8 0.0067 - 9 0.000957 - 12 0.0536 - 13 0.00335 - 14 0.00431 - 15 0.011 - 19 0.00239 - 20 0.00144 - 21 0.0292 - 22 0.00191 - 24 0.000478 - 26 0.0316 - 28 0.00574 - 29 0.0914 - 30 0.00526 - 31 0.00526 - 32 0.00526 - 33 0.0421 - 34 0.00431 - 35 0.00335 - 37 0.000957 - 39 0.000478 - 40 0.106 - 41 0.15 - 42 0.011 - 43 0.00144 - 44 0.00383 - 45 0.00335 - 46 0.00383 - 47 0.00287 - - 6 28 8 0 - 0 0.0714 - 2 0.179 - 7 0.0357 - 29 0.107 - 40 0.0714 - 41 0.464 - 42 0.0357 - 44 0.0357 - - 7 37 9 0 - 2 0.0811 - 3 0.0811 - 12 0.027 - 26 0.027 - 29 0.0541 - 40 0.378 - 41 0.27 - 42 0.027 - 46 0.0541 - - 8 578 29 0 - 0 0.045 - 2 0.0346 - 3 0.0225 - 4 0.00865 - 7 0.133 - 8 0.00346 - 9 0.00173 - 12 0.026 - 13 0.00173 - 14 0.00346 - 15 0.00173 - 19 0.00519 - 21 0.00519 - 26 0.0242 - 28 0.00346 - 29 0.026 - 30 0.00692 - 31 0.00173 - 32 0.00692 - 33 0.0173 - 34 0.0104 - 35 0.00346 - 37 0.00519 - 40 0.253 - 41 0.325 - 42 0.0138 - 44 0.00346 - 46 0.00173 - 47 0.00519 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 164 20 0 - 0 0.0793 - 2 0.0244 - 3 0.0122 - 7 0.0976 - 12 0.0122 - 13 0.0122 - 15 0.0122 - 21 0.0183 - 26 0.0122 - 29 0.122 - 30 0.0061 - 31 0.0061 - 33 0.0427 - 34 0.0061 - 37 0.0122 - 40 0.122 - 41 0.317 - 42 0.0427 - 44 0.0305 - 46 0.0122 - - 15 19923 36 0 - 0 0.0786 - 2 0.0509 - 3 0.00181 - 4 0.00467 - 7 0.0876 - 8 0.00301 - 9 0.000151 - 12 0.0213 - 13 0.00221 - 14 0.000803 - 15 0.00427 - 18 0.000452 - 19 0.00136 - 20 0.000201 - 21 0.0202 - 22 0.000803 - 24 5.02e-05 - 26 0.013 - 28 0.00176 - 29 0.151 - 30 0.00351 - 31 0.00131 - 32 0.00296 - 33 0.0504 - 34 0.00171 - 35 0.00161 - 37 0.000653 - 39 0.000452 - 40 0.113 - 41 0.34 - 42 0.0163 - 43 0.00407 - 44 0.0102 - 45 0.00216 - 46 0.00371 - 47 0.00386 - - 16 534 23 0 - 0 0.0337 - 2 0.073 - 4 0.00375 - 7 0.0974 - 8 0.00187 - 12 0.015 - 13 0.00375 - 15 0.00187 - 21 0.00749 - 26 0.0169 - 28 0.00187 - 29 0.152 - 30 0.00562 - 32 0.00375 - 33 0.0169 - 34 0.00187 - 35 0.00375 - 39 0.00187 - 40 0.204 - 41 0.307 - 42 0.0393 - 44 0.00187 - 47 0.00562 - - 20 11 8 0 - 0 0.0909 - 2 0.0909 - 7 0.182 - 26 0.0909 - 31 0.0909 - 40 0.273 - 41 0.0909 - 44 0.0909 - - 21 37 10 0 - 0 0.0541 - 2 0.027 - 7 0.108 - 13 0.0541 - 15 0.0541 - 29 0.027 - 33 0.027 - 40 0.243 - 41 0.378 - 42 0.027 - - 30 7 3 0 - 0 0.143 - 40 0.571 - 41 0.286 - - 31 8 7 0 - 2 0.125 - 7 0.25 - 12 0.125 - 33 0.125 - 34 0.125 - 41 0.125 - 42 0.125 - - 40 23 10 0 - 2 0.13 - 6 0.0435 - 7 0.13 - 29 0.087 - 33 0.0435 - 40 0.0435 - 41 0.391 - 43 0.0435 - 44 0.0435 - 47 0.0435 - - 41 51 7 0 - 2 0.0392 - 3 0.098 - 7 0.0196 - 29 0.0588 - 40 0.275 - 41 0.471 - 42 0.0392 - - 43 10 4 0 - 0 0.3 - 2 0.2 - 29 0.1 - 41 0.4 - - 44 8 2 0 - 41 0.125 - 43 0.875 - - 45 19 5 0 - 3 0.0526 - 7 0.211 - 40 0.105 - 41 0.211 - 46 0.421 - - 46 22 9 0 - 0 0.0909 - 7 0.0455 - 26 0.0455 - 29 0.0455 - 33 0.0455 - 40 0.0909 - 41 0.545 - 42 0.0455 - 46 0.0455 - - 47 14081 39 0 - 0 0.0871 - 1 0.000213 - 2 0.0447 - 3 0.101 - 4 0.0054 - 5 0.000142 - 7 0.076 - 8 0.0049 - 9 0.000142 - 12 0.0304 - 13 0.0054 - 14 0.00107 - 15 0.00746 - 17 7.1e-05 - 18 0.00107 - 19 0.00206 - 20 0.000284 - 21 0.0248 - 22 0.000781 - 24 7.1e-05 - 26 0.0229 - 28 0.00213 - 29 0.108 - 30 0.0032 - 31 0.00206 - 32 0.00284 - 33 0.0295 - 34 0.0022 - 35 0.00071 - 37 0.00199 - 39 0.000923 - 40 0.127 - 41 0.266 - 42 0.0149 - 43 0.0135 - 44 0.00241 - 45 0.00178 - 46 0.00355 - 47 0.0022 - - 48 43 13 0 - 0 0.14 - 2 0.0698 - 3 0.0233 - 7 0.14 - 8 0.0233 - 12 0.0698 - 26 0.0465 - 29 0.0698 - 31 0.0233 - 33 0.0233 - 40 0.186 - 41 0.163 - 42 0.0233 - - 54 20 6 0 - 0 0.05 - 7 0.3 - 29 0.1 - 33 0.05 - 40 0.3 - 41 0.2 - - 55 144 17 0 - 0 0.0347 - 2 0.0347 - 3 0.0139 - 7 0.236 - 12 0.0208 - 13 0.00694 - 21 0.0139 - 26 0.0208 - 29 0.181 - 30 0.0139 - 33 0.0347 - 40 0.111 - 41 0.25 - 42 0.00694 - 44 0.00694 - 46 0.00694 - 47 0.00694 - - 58 27 6 0 - 7 0.037 - 12 0.037 - 31 0.037 - 33 0.0741 - 40 0.593 - 41 0.222 - - 60 6 5 0 - 0 0.167 - 3 0.167 - 7 0.333 - 9 0.167 - 14 0.167 - - 16 1553 34 14 - 0 0.122 - 2 0.0599 - 3 0.00129 - 4 0.00515 - 5 0.000644 - 7 0.109 - 8 0.00515 - 9 0.000644 - 12 0.0399 - 13 0.00515 - 14 0.00193 - 15 0.00451 - 19 0.00258 - 20 0.000644 - 21 0.0258 - 22 0.000644 - 26 0.0232 - 28 0.000644 - 29 0.111 - 30 0.0058 - 31 0.00386 - 32 0.0367 - 33 0.0155 - 34 0.000644 - 35 0.0167 - 36 0.000644 - 40 0.127 - 41 0.214 - 42 0.0328 - 43 0.00386 - 44 0.00386 - 45 0.00193 - 46 0.00386 - 47 0.0135 - - 2 42 15 0 - 0 0.0714 - 2 0.0238 - 7 0.0952 - 19 0.0238 - 21 0.0714 - 28 0.0238 - 29 0.0238 - 31 0.0238 - 33 0.0238 - 35 0.0238 - 40 0.143 - 41 0.31 - 42 0.0714 - 45 0.0238 - 47 0.0476 - - 3 16 9 0 - 0 0.125 - 2 0.125 - 7 0.25 - 8 0.0625 - 12 0.0625 - 30 0.0625 - 31 0.0625 - 35 0.0625 - 41 0.188 - - 4 295 23 0 - 0 0.183 - 2 0.0542 - 4 0.00339 - 5 0.00339 - 7 0.0881 - 8 0.0136 - 12 0.0746 - 13 0.0102 - 19 0.00339 - 20 0.00339 - 21 0.0475 - 26 0.0373 - 29 0.119 - 30 0.0102 - 31 0.00339 - 32 0.0847 - 33 0.00339 - 35 0.0102 - 40 0.0915 - 41 0.132 - 42 0.0169 - 43 0.00339 - 45 0.00339 - - 8 87 15 0 - 0 0.207 - 2 0.023 - 7 0.115 - 12 0.0345 - 21 0.0115 - 26 0.023 - 29 0.046 - 31 0.0115 - 32 0.0805 - 34 0.0115 - 35 0.069 - 36 0.0115 - 40 0.149 - 41 0.161 - 42 0.046 - - 13 6 5 0 - 0 0.167 - 12 0.167 - 26 0.167 - 30 0.167 - 41 0.333 - - 15 766 24 0 - 0 0.0888 - 2 0.0614 - 3 0.00261 - 4 0.00522 - 7 0.101 - 8 0.00131 - 12 0.017 - 13 0.00392 - 15 0.00261 - 21 0.0157 - 22 0.00131 - 26 0.0144 - 29 0.144 - 30 0.00131 - 32 0.00653 - 33 0.0261 - 35 0.00653 - 40 0.148 - 41 0.273 - 42 0.0405 - 43 0.00392 - 44 0.00783 - 46 0.00522 - 47 0.0235 - - 16 35 13 0 - 0 0.0857 - 2 0.0286 - 4 0.0286 - 7 0.0857 - 12 0.0571 - 21 0.0571 - 26 0.0286 - 29 0.0286 - 32 0.0286 - 33 0.0286 - 40 0.0857 - 41 0.343 - 42 0.114 - - 21 5 4 0 - 0 0.2 - 2 0.2 - 7 0.2 - 42 0.4 - - 30 2 2 0 - 2 0.5 - 32 0.5 - - 45 1 1 0 - 46 1 - - 47 257 24 0 - 0 0.128 - 2 0.0778 - 4 0.00389 - 7 0.152 - 8 0.00778 - 9 0.00389 - 12 0.0623 - 13 0.00778 - 14 0.0117 - 15 0.0195 - 19 0.00778 - 21 0.0272 - 26 0.0389 - 29 0.0739 - 30 0.00778 - 31 0.00778 - 32 0.0661 - 35 0.0311 - 40 0.105 - 41 0.136 - 42 0.00778 - 43 0.00778 - 45 0.00389 - 46 0.00389 - - 48 8 7 0 - 7 0.125 - 12 0.125 - 32 0.125 - 33 0.125 - 40 0.125 - 41 0.25 - 47 0.125 - - 55 10 7 0 - 4 0.1 - 7 0.2 - 12 0.1 - 21 0.1 - 29 0.1 - 40 0.3 - 41 0.1 - - 60 11 6 0 - 0 0.273 - 7 0.0909 - 30 0.0909 - 35 0.182 - 40 0.182 - 41 0.182 - - 17 3 1 0 - 4 1 - - 18 8656 34 12 - 0 0.00508 - 2 0.0067 - 3 0.0261 - 4 0.000231 - 6 0.000231 - 7 0.00208 - 8 0.207 - 9 0.00173 - 10 0.026 - 12 0.00104 - 13 0.417 - 14 0.13 - 15 0.104 - 16 0.00381 - 19 0.000116 - 21 0.00555 - 22 0.000347 - 23 0.00208 - 26 0.000231 - 28 0.000347 - 29 0.00439 - 30 0.0117 - 31 0.00739 - 32 0.000462 - 33 0.00104 - 38 0.000578 - 39 0.0101 - 40 0.00485 - 41 0.00601 - 42 0.000231 - 43 0.000924 - 44 0.000231 - 45 0.0117 - 46 0.000231 - - 3 25 6 0 - 3 0.04 - 8 0.36 - 13 0.36 - 14 0.12 - 40 0.08 - 41 0.04 - - 6 2 2 0 - 13 0.5 - 46 0.5 - - 8 12 4 0 - 13 0.417 - 14 0.417 - 15 0.0833 - 29 0.0833 - - 13 2900 22 0 - 2 0.00103 - 3 0.0238 - 6 0.00069 - 7 0.00103 - 8 0.236 - 9 0.00172 - 10 0.04 - 13 0.477 - 14 0.132 - 15 0.0441 - 16 0.00103 - 21 0.00483 - 22 0.000345 - 23 0.0031 - 30 0.00793 - 31 0.00655 - 39 0.00931 - 40 0.00207 - 41 0.000345 - 42 0.000345 - 43 0.00069 - 45 0.00724 - - 14 544 15 0 - 2 0.00368 - 3 0.011 - 7 0.00184 - 8 0.0974 - 9 0.00184 - 10 0.00184 - 13 0.417 - 14 0.415 - 15 0.0129 - 23 0.00184 - 26 0.00368 - 30 0.0147 - 31 0.00735 - 40 0.00184 - 45 0.00735 - - 15 5059 31 0 - 0 0.0083 - 2 0.0103 - 3 0.0289 - 4 0.000395 - 7 0.00277 - 8 0.205 - 9 0.00178 - 10 0.0213 - 12 0.00178 - 13 0.381 - 14 0.0996 - 15 0.147 - 16 0.00534 - 19 0.000198 - 21 0.00672 - 22 0.000395 - 23 0.00158 - 29 0.00731 - 30 0.0134 - 31 0.00791 - 32 0.000791 - 33 0.00178 - 38 0.000988 - 39 0.0117 - 40 0.00633 - 41 0.00988 - 42 0.000198 - 43 0.00119 - 44 0.000395 - 45 0.015 - 46 0.000198 - - 16 66 9 0 - 0 0.0152 - 3 0.0303 - 8 0.121 - 13 0.545 - 14 0.0455 - 15 0.167 - 16 0.0455 - 30 0.0152 - 31 0.0152 - - 21 3 2 0 - 13 0.667 - 40 0.333 - - 28 1 1 0 - 0 1 - - 47 4 2 0 - 15 0.25 - 28 0.75 - - 55 3 2 0 - 2 0.333 - 13 0.667 - - 57 19 6 0 - 3 0.0526 - 8 0.0526 - 13 0.421 - 15 0.368 - 30 0.0526 - 39 0.0526 - - 19 17366 41 5 - 0 0.301 - 1 0.000173 - 2 0.0076 - 3 0.000864 - 4 0.012 - 5 0.000115 - 6 5.76e-05 - 7 0.0348 - 8 0.00749 - 9 0.00132 - 10 0.000115 - 12 0.124 - 13 0.00202 - 14 0.000749 - 15 0.000576 - 17 0.000115 - 18 0.000633 - 19 0.00161 - 20 0.000115 - 21 0.0537 - 22 0.00155 - 23 0.000173 - 24 0.00455 - 26 0.0163 - 28 0.0117 - 29 0.166 - 30 0.00242 - 31 0.0019 - 32 0.0774 - 33 0.106 - 34 0.000288 - 35 0.000633 - 37 0.00121 - 39 0.000288 - 40 0.0313 - 41 0.021 - 42 0.00334 - 43 0.000461 - 44 0.000921 - 45 0.00346 - 46 0.000461 - - 4 12 6 0 - 0 0.417 - 7 0.0833 - 12 0.25 - 29 0.0833 - 33 0.0833 - 40 0.0833 - - 13 2 2 0 - 26 0.5 - 40 0.5 - - 15 4 4 0 - 0 0.25 - 29 0.25 - 33 0.25 - 37 0.25 - - 21 3 2 0 - 12 0.667 - 41 0.333 - - 44 2 1 0 - 43 1 - - 20 34 11 0 - 0 0.0882 - 1 0.0588 - 13 0.0882 - 15 0.0294 - 21 0.0294 - 30 0.235 - 39 0.324 - 40 0.0294 - 41 0.0588 - 42 0.0294 - 43 0.0294 - - 21 674 33 12 - 0 0.049 - 2 0.0208 - 3 0.0089 - 4 0.0831 - 6 0.00148 - 7 0.2 - 8 0.0386 - 9 0.0134 - 12 0.0119 - 13 0.0326 - 14 0.0208 - 15 0.0208 - 19 0.0163 - 20 0.00148 - 21 0.0371 - 22 0.0089 - 26 0.0252 - 28 0.00297 - 29 0.00445 - 30 0.00593 - 31 0.00742 - 32 0.00445 - 33 0.0104 - 34 0.00148 - 37 0.00148 - 39 0.0089 - 40 0.168 - 41 0.169 - 42 0.0178 - 43 0.00148 - 44 0.00297 - 46 0.00148 - 47 0.00148 - - 2 50 13 0 - 3 0.02 - 4 0.38 - 8 0.02 - 9 0.02 - 13 0.14 - 14 0.08 - 15 0.1 - 21 0.06 - 28 0.02 - 39 0.02 - 40 0.06 - 41 0.06 - 42 0.02 - - 3 49 11 0 - 2 0.0408 - 3 0.0204 - 7 0.0612 - 8 0.0204 - 13 0.0816 - 29 0.0204 - 37 0.0204 - 40 0.571 - 41 0.122 - 42 0.0204 - 47 0.0204 - - 4 39 12 0 - 0 0.0256 - 4 0.0256 - 6 0.0256 - 7 0.0513 - 8 0.359 - 9 0.179 - 21 0.0256 - 22 0.154 - 30 0.0256 - 33 0.0256 - 40 0.0769 - 41 0.0256 - - 13 84 16 0 - 0 0.0714 - 2 0.0476 - 7 0.202 - 12 0.0119 - 13 0.0119 - 14 0.0119 - 19 0.0238 - 21 0.0238 - 26 0.0476 - 31 0.0119 - 33 0.0357 - 40 0.19 - 41 0.226 - 42 0.0595 - 44 0.0119 - 46 0.0119 - - 14 20 6 0 - 7 0.1 - 15 0.05 - 32 0.05 - 40 0.45 - 41 0.3 - 42 0.05 - - 15 7 5 0 - 2 0.143 - 29 0.143 - 40 0.143 - 41 0.429 - 42 0.143 - - 21 46 11 0 - 4 0.0435 - 7 0.674 - 8 0.0217 - 15 0.0217 - 19 0.0435 - 21 0.0435 - 26 0.0217 - 30 0.0217 - 31 0.0217 - 40 0.0652 - 41 0.0217 - - 41 60 12 0 - 3 0.05 - 4 0.333 - 7 0.0167 - 8 0.1 - 9 0.0167 - 13 0.117 - 14 0.117 - 15 0.0833 - 20 0.0167 - 21 0.1 - 33 0.0167 - 41 0.0333 - - 42 7 2 0 - 4 0.857 - 15 0.143 - - 47 289 26 0 - 0 0.0865 - 2 0.0242 - 3 0.00346 - 4 0.0242 - 7 0.263 - 8 0.0104 - 12 0.0242 - 13 0.0104 - 14 0.00346 - 15 0.00346 - 19 0.0242 - 21 0.0138 - 26 0.0346 - 28 0.00346 - 29 0.00346 - 30 0.00692 - 31 0.0104 - 32 0.00692 - 33 0.00692 - 34 0.00346 - 39 0.0173 - 40 0.163 - 41 0.235 - 42 0.0104 - 43 0.00346 - 44 0.00346 - - 49 2 2 0 - 4 0.5 - 14 0.5 - - 55 10 4 0 - 21 0.5 - 26 0.1 - 40 0.1 - 41 0.3 - - 22 48 11 2 - 2 0.0625 - 7 0.521 - 8 0.0417 - 12 0.0208 - 21 0.0208 - 29 0.0208 - 31 0.0208 - 37 0.0208 - 40 0.0833 - 41 0.167 - 42 0.0208 - - 4 2 2 0 - 8 0.5 - 40 0.5 - - 14 2 2 0 - 29 0.5 - 40 0.5 - - 23 19 8 1 - 7 0.579 - 8 0.0526 - 19 0.0526 - 21 0.105 - 29 0.0526 - 31 0.0526 - 40 0.0526 - 41 0.0526 - - 4 4 4 0 - 8 0.25 - 31 0.25 - 40 0.25 - 41 0.25 - - 24 8 3 0 - 7 0.5 - 40 0.25 - 41 0.25 - - 25 13 2 0 - 3 0.0769 - 42 0.923 - - 26 52 5 0 - 3 0.808 - 14 0.0192 - 15 0.0192 - 28 0.0385 - 39 0.115 - - 27 6 4 0 - 40 0.333 - 41 0.167 - 42 0.333 - 46 0.167 - - 28 92 16 2 - 0 0.0109 - 2 0.0326 - 4 0.087 - 7 0.424 - 8 0.0326 - 13 0.0109 - 15 0.0109 - 21 0.0435 - 26 0.0761 - 29 0.0217 - 40 0.0978 - 41 0.087 - 42 0.0217 - 45 0.0109 - 46 0.0217 - 47 0.0109 - - 13 5 4 0 - 7 0.2 - 26 0.4 - 29 0.2 - 45 0.2 - - 21 3 3 0 - 4 0.333 - 7 0.333 - 47 0.333 - - 29 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 29 0.167 - 33 0.167 - - 30 261 26 5 - 0 0.069 - 2 0.0307 - 3 0.00383 - 4 0.00766 - 7 0.429 - 8 0.0192 - 12 0.0268 - 13 0.00383 - 14 0.00383 - 19 0.00383 - 21 0.0307 - 22 0.00383 - 26 0.0307 - 29 0.023 - 30 0.00383 - 31 0.00766 - 32 0.00383 - 33 0.0153 - 37 0.00383 - 39 0.0115 - 40 0.138 - 41 0.0958 - 42 0.0153 - 43 0.00383 - 44 0.00383 - 46 0.0115 - - 2 9 3 0 - 7 0.778 - 21 0.111 - 40 0.111 - - 4 47 12 0 - 0 0.191 - 2 0.0213 - 3 0.0213 - 7 0.277 - 12 0.106 - 21 0.0426 - 29 0.0426 - 33 0.0851 - 39 0.0638 - 40 0.0426 - 41 0.0638 - 42 0.0426 - - 8 17 8 0 - 7 0.353 - 12 0.0588 - 21 0.0588 - 26 0.0588 - 29 0.0588 - 31 0.0588 - 40 0.118 - 41 0.235 - - 13 28 11 0 - 0 0.0357 - 2 0.0714 - 4 0.0357 - 7 0.536 - 8 0.0357 - 13 0.0357 - 14 0.0357 - 22 0.0357 - 26 0.0714 - 41 0.0714 - 44 0.0357 - - 47 136 19 0 - 0 0.0588 - 2 0.0294 - 4 0.00735 - 7 0.397 - 8 0.0221 - 12 0.00735 - 19 0.00735 - 21 0.0294 - 26 0.0368 - 29 0.0147 - 30 0.00735 - 31 0.00735 - 32 0.00735 - 37 0.00735 - 40 0.206 - 41 0.11 - 42 0.0147 - 43 0.00735 - 46 0.0221 - - 31 60 15 7 - 0 0.0333 - 2 0.0333 - 3 0.0167 - 4 0.0167 - 7 0.0833 - 12 0.05 - 14 0.0167 - 24 0.0167 - 26 0.0333 - 29 0.0833 - 30 0.0167 - 39 0.483 - 40 0.0667 - 41 0.0333 - 45 0.0167 - - 3 2 2 0 - 2 0.5 - 14 0.5 - - 4 33 6 0 - 0 0.0303 - 2 0.0303 - 3 0.0303 - 12 0.0303 - 39 0.848 - 40 0.0303 - - 13 7 6 0 - 4 0.143 - 7 0.286 - 12 0.143 - 26 0.143 - 41 0.143 - 45 0.143 - - 15 2 1 0 - 29 1 - - 21 2 2 0 - 7 0.5 - 41 0.5 - - 47 8 5 0 - 0 0.125 - 12 0.125 - 24 0.125 - 29 0.375 - 40 0.25 - - 55 2 2 0 - 26 0.5 - 30 0.5 - - 32 3 3 0 - 0 0.333 - 32 0.333 - 33 0.333 - - 33 65 17 5 - 0 0.0154 - 3 0.0462 - 4 0.169 - 7 0.138 - 8 0.0923 - 10 0.0154 - 13 0.0154 - 14 0.0308 - 19 0.0615 - 21 0.0308 - 22 0.0154 - 26 0.108 - 30 0.0154 - 34 0.0154 - 40 0.0154 - 41 0.2 - 45 0.0154 - - 2 6 3 0 - 4 0.5 - 7 0.333 - 8 0.167 - - 13 24 10 0 - 4 0.125 - 7 0.125 - 8 0.0417 - 13 0.0417 - 14 0.0417 - 19 0.0833 - 21 0.0417 - 26 0.167 - 34 0.0417 - 41 0.292 - - 14 3 3 0 - 8 0.333 - 19 0.333 - 45 0.333 - - 15 8 6 0 - 0 0.125 - 3 0.25 - 4 0.125 - 7 0.125 - 8 0.25 - 41 0.125 - - 47 17 12 0 - 3 0.0588 - 4 0.0588 - 7 0.176 - 8 0.0588 - 10 0.0588 - 19 0.0588 - 21 0.0588 - 22 0.0588 - 26 0.0588 - 30 0.0588 - 40 0.0588 - 41 0.235 - - 34 58 6 0 - 0 0.259 - 4 0.0172 - 12 0.379 - 21 0.0345 - 29 0.19 - 33 0.121 - - 35 6 4 0 - 0 0.333 - 26 0.167 - 40 0.333 - 41 0.167 - - 39 1790 1 0 - 3 1 - - 40 1001 17 7 - 0 0.000999 - 3 0.002 - 4 0.000999 - 12 0.000999 - 13 0.000999 - 14 0.002 - 15 0.00599 - 21 0.000999 - 26 0.000999 - 31 0.000999 - 35 0.000999 - 42 0.004 - 43 0.0679 - 44 0.0509 - 45 0.000999 - 46 0.014 - 47 0.844 - - 3 10 3 0 - 21 0.1 - 26 0.1 - 47 0.8 - - 15 187 8 0 - 0 0.00535 - 12 0.00535 - 15 0.0321 - 43 0.337 - 44 0.267 - 45 0.00535 - 46 0.0214 - 47 0.326 - - 55 492 11 0 - 3 0.00407 - 4 0.00203 - 13 0.00203 - 14 0.00407 - 31 0.00203 - 35 0.00203 - 42 0.00813 - 43 0.00203 - 44 0.00203 - 46 0.0061 - 47 0.965 - - 57 129 3 0 - 43 0.00775 - 46 0.0233 - 47 0.969 - - 62 40 1 0 - 47 1 - - 67 1 1 0 - 46 1 - - 69 35 1 0 - 47 1 - - 41 20629 39 17 - 0 0.0576 - 1 0.000145 - 2 0.0758 - 3 0.0369 - 4 0.147 - 6 0.000436 - 7 0.0581 - 8 0.0435 - 9 0.00145 - 10 0.000436 - 12 0.0155 - 13 0.0636 - 14 0.0132 - 15 0.126 - 16 0.00097 - 17 4.85e-05 - 19 0.00102 - 20 0.00305 - 21 0.044 - 22 0.000291 - 23 0.000242 - 24 0.000145 - 26 0.01 - 27 4.85e-05 - 28 0.000436 - 29 0.0714 - 30 0.0248 - 31 0.0326 - 32 0.00315 - 33 0.0252 - 34 0.0794 - 35 0.028 - 36 0.00499 - 37 0.014 - 39 0.00155 - 42 0.000145 - 44 0.000339 - 45 0.00344 - 46 0.0109 - - 2 7 3 0 - 7 0.429 - 21 0.429 - 22 0.143 - - 3 358 9 0 - 0 0.0112 - 2 0.00559 - 3 0.888 - 4 0.00279 - 7 0.0447 - 26 0.0196 - 31 0.0196 - 32 0.00559 - 46 0.00279 - - 13 26 10 0 - 3 0.0385 - 4 0.0385 - 6 0.0385 - 7 0.269 - 21 0.0385 - 26 0.0385 - 29 0.0385 - 30 0.0385 - 34 0.0385 - 46 0.423 - - 14 11 6 0 - 0 0.0909 - 6 0.0909 - 7 0.0909 - 13 0.0909 - 21 0.273 - 46 0.364 - - 15 18 9 0 - 0 0.0556 - 2 0.0556 - 3 0.0556 - 4 0.0556 - 7 0.278 - 14 0.0556 - 21 0.111 - 29 0.278 - 33 0.0556 - - 27 1 1 0 - 46 1 - - 48 242 18 0 - 0 0.211 - 2 0.0165 - 4 0.0207 - 7 0.128 - 8 0.0165 - 12 0.0868 - 13 0.0165 - 15 0.00826 - 21 0.062 - 22 0.00413 - 26 0.0372 - 29 0.062 - 30 0.0207 - 31 0.215 - 32 0.0124 - 33 0.0579 - 34 0.0207 - 37 0.00413 - - 49 44 13 0 - 0 0.136 - 2 0.159 - 4 0.182 - 7 0.205 - 12 0.0227 - 13 0.0227 - 15 0.0682 - 21 0.0455 - 29 0.0227 - 30 0.0455 - 31 0.0455 - 32 0.0227 - 46 0.0227 - - 55 17277 39 0 - 0 0.0341 - 1 0.000116 - 2 0.0865 - 3 0.0252 - 4 0.17 - 6 0.000347 - 7 0.0512 - 8 0.0478 - 9 0.00145 - 10 0.000463 - 12 0.00666 - 13 0.0737 - 14 0.0153 - 15 0.148 - 16 0.00116 - 17 5.79e-05 - 19 0.000868 - 20 0.00359 - 21 0.0416 - 22 0.000232 - 23 0.000289 - 24 5.79e-05 - 26 0.007 - 27 5.79e-05 - 28 0.000405 - 29 0.0587 - 30 0.0212 - 31 0.0301 - 32 0.00127 - 33 0.0201 - 34 0.0843 - 35 0.0312 - 36 0.00561 - 37 0.0149 - 39 0.00185 - 42 0.000174 - 44 0.000347 - 45 0.00313 - 46 0.0102 - - 56 4 3 0 - 12 0.25 - 30 0.25 - 46 0.5 - - 57 1015 30 0 - 0 0.106 - 1 0.000985 - 2 0.0177 - 3 0.00394 - 4 0.0236 - 6 0.000985 - 7 0.164 - 8 0.0433 - 9 0.00394 - 12 0.0286 - 13 0.00591 - 14 0.00197 - 15 0.0197 - 20 0.000985 - 21 0.07 - 24 0.000985 - 26 0.0424 - 28 0.000985 - 29 0.0562 - 30 0.1 - 31 0.067 - 32 0.00788 - 33 0.0177 - 34 0.144 - 35 0.0256 - 36 0.00493 - 37 0.0246 - 44 0.000985 - 45 0.00296 - 46 0.0118 - - 58 63 17 0 - 0 0.0317 - 2 0.0317 - 3 0.0159 - 4 0.27 - 7 0.0794 - 8 0.0476 - 9 0.0159 - 13 0.159 - 15 0.0159 - 21 0.0317 - 29 0.0317 - 30 0.0317 - 33 0.0159 - 34 0.0317 - 35 0.127 - 37 0.0159 - 45 0.0476 - - 61 13 6 0 - 0 0.308 - 7 0.0769 - 12 0.231 - 29 0.231 - 31 0.0769 - 33 0.0769 - - 62 20 11 0 - 0 0.05 - 2 0.05 - 3 0.05 - 4 0.1 - 7 0.1 - 8 0.1 - 13 0.15 - 21 0.05 - 29 0.05 - 30 0.1 - 46 0.2 - - 64 1038 24 0 - 0 0.286 - 2 0.0231 - 4 0.0116 - 7 0.0222 - 8 0.0106 - 10 0.000963 - 12 0.0983 - 13 0.00771 - 14 0.00482 - 15 0.0154 - 19 0.00482 - 21 0.0626 - 26 0.0125 - 28 0.000963 - 29 0.283 - 30 0.0164 - 31 0.0135 - 32 0.0183 - 33 0.0877 - 34 0.00289 - 35 0.000963 - 37 0.000963 - 45 0.00867 - 46 0.00578 - - 68 2 2 0 - 0 0.5 - 33 0.5 - - 69 481 24 0 - 0 0.254 - 2 0.0187 - 4 0.0125 - 7 0.0915 - 8 0.0166 - 12 0.0977 - 13 0.00832 - 14 0.00208 - 15 0.00832 - 19 0.00208 - 21 0.0478 - 24 0.00208 - 26 0.027 - 29 0.166 - 30 0.0291 - 31 0.0187 - 32 0.0208 - 33 0.0956 - 34 0.0499 - 35 0.00624 - 36 0.00208 - 37 0.00416 - 45 0.00416 - 46 0.0146 - - 42 2040 38 16 - 0 0.0211 - 2 0.0422 - 3 0.259 - 4 0.102 - 5 0.00049 - 7 0.0284 - 8 0.0373 - 9 0.00294 - 10 0.00049 - 11 0.00098 - 12 0.00686 - 13 0.0422 - 14 0.0304 - 15 0.123 - 16 0.00098 - 19 0.00343 - 20 0.00392 - 21 0.0338 - 22 0.00049 - 25 0.00049 - 26 0.00833 - 28 0.00588 - 29 0.0137 - 30 0.0191 - 31 0.0132 - 32 0.00196 - 33 0.00392 - 34 0.0123 - 35 0.00539 - 37 0.00637 - 38 0.00098 - 39 0.0574 - 40 0.00441 - 42 0.00049 - 44 0.00049 - 45 0.0152 - 46 0.00098 - 47 0.0897 - - 3 11 1 0 - 47 1 - - 13 23 4 0 - 7 0.087 - 8 0.0435 - 26 0.13 - 47 0.739 - - 14 55 4 0 - 2 0.0182 - 7 0.0182 - 40 0.127 - 47 0.836 - - 15 54 1 0 - 47 1 - - 16 10 2 0 - 40 0.2 - 47 0.8 - - 40 3 2 0 - 15 0.333 - 39 0.667 - - 41 3 2 0 - 13 0.333 - 39 0.667 - - 46 11 7 0 - 4 0.364 - 7 0.0909 - 8 0.0909 - 12 0.0909 - 13 0.0909 - 14 0.182 - 15 0.0909 - - 48 5 5 0 - 0 0.2 - 2 0.2 - 7 0.2 - 12 0.2 - 21 0.2 - - 49 2 2 0 - 7 0.5 - 29 0.5 - - 55 1709 36 0 - 0 0.0164 - 2 0.0474 - 3 0.305 - 4 0.116 - 5 0.000585 - 7 0.0199 - 8 0.0392 - 9 0.00351 - 10 0.000585 - 11 0.00117 - 12 0.00293 - 13 0.0486 - 14 0.0339 - 15 0.143 - 16 0.00117 - 19 0.00351 - 20 0.00468 - 21 0.0363 - 22 0.000585 - 25 0.000585 - 26 0.00644 - 28 0.00702 - 29 0.00995 - 30 0.0164 - 31 0.0135 - 32 0.000585 - 33 0.0041 - 34 0.0117 - 35 0.00585 - 37 0.00702 - 38 0.00117 - 39 0.0655 - 42 0.000585 - 44 0.000585 - 45 0.0164 - 47 0.00819 - - 57 51 19 0 - 0 0.118 - 2 0.0196 - 4 0.0588 - 7 0.216 - 8 0.0588 - 12 0.0588 - 15 0.0392 - 19 0.0196 - 21 0.0392 - 26 0.0196 - 29 0.0392 - 30 0.0784 - 33 0.0196 - 34 0.0784 - 35 0.0196 - 37 0.0196 - 45 0.0196 - 46 0.0196 - 47 0.0588 - - 58 39 9 0 - 3 0.179 - 7 0.0256 - 8 0.0256 - 21 0.0256 - 29 0.0513 - 31 0.0513 - 34 0.0256 - 45 0.0256 - 47 0.59 - - 62 5 4 0 - 2 0.2 - 7 0.2 - 30 0.4 - 46 0.2 - - 64 34 15 0 - 0 0.176 - 2 0.0294 - 4 0.0882 - 7 0.0882 - 8 0.0588 - 12 0.118 - 13 0.0294 - 14 0.0588 - 21 0.0294 - 26 0.0294 - 29 0.118 - 30 0.0294 - 31 0.0588 - 32 0.0294 - 47 0.0588 - - 69 20 11 0 - 0 0.1 - 4 0.05 - 7 0.1 - 8 0.05 - 21 0.1 - 26 0.05 - 29 0.1 - 30 0.15 - 32 0.1 - 45 0.05 - 47 0.15 - - 43 97 22 8 - 0 0.0928 - 2 0.0825 - 4 0.0206 - 6 0.0103 - 7 0.144 - 12 0.0412 - 15 0.0103 - 19 0.0103 - 21 0.0206 - 26 0.0103 - 29 0.0103 - 30 0.0103 - 31 0.0103 - 32 0.0206 - 33 0.0619 - 34 0.0103 - 35 0.0103 - 40 0.134 - 41 0.113 - 42 0.103 - 44 0.0103 - 47 0.0619 - - 13 12 7 0 - 0 0.0833 - 2 0.0833 - 7 0.0833 - 33 0.333 - 40 0.0833 - 41 0.167 - 42 0.167 - - 14 8 7 0 - 0 0.25 - 7 0.125 - 12 0.125 - 31 0.125 - 32 0.125 - 34 0.125 - 35 0.125 - - 15 12 9 0 - 0 0.167 - 4 0.0833 - 7 0.0833 - 12 0.0833 - 26 0.0833 - 29 0.0833 - 40 0.0833 - 42 0.25 - 47 0.0833 - - 40 2 1 0 - 47 1 - - 55 37 13 0 - 0 0.027 - 2 0.135 - 4 0.027 - 6 0.027 - 7 0.189 - 15 0.027 - 19 0.027 - 33 0.027 - 40 0.216 - 41 0.135 - 42 0.108 - 44 0.027 - 47 0.027 - - 57 16 10 0 - 0 0.188 - 2 0.125 - 7 0.125 - 12 0.125 - 21 0.0625 - 30 0.0625 - 32 0.0625 - 40 0.0625 - 41 0.0625 - 47 0.125 - - 58 2 1 0 - 41 1 - - 69 2 2 0 - 21 0.5 - 40 0.5 - - 44 52 11 0 - 2 0.0769 - 3 0.0192 - 4 0.0577 - 7 0.25 - 8 0.0385 - 13 0.0385 - 15 0.25 - 21 0.0192 - 30 0.0385 - 35 0.0192 - 39 0.192 - - 45 238 22 10 - 0 0.0252 - 2 0.0252 - 3 0.0084 - 4 0.126 - 6 0.0168 - 7 0.0924 - 8 0.0798 - 9 0.0042 - 12 0.0042 - 13 0.0924 - 15 0.311 - 16 0.0084 - 19 0.0546 - 21 0.0294 - 26 0.0042 - 28 0.021 - 30 0.0168 - 31 0.0252 - 32 0.0042 - 34 0.0168 - 35 0.021 - 37 0.0126 - - 2 30 9 0 - 0 0.0333 - 3 0.0333 - 4 0.0667 - 8 0.133 - 9 0.0333 - 13 0.167 - 15 0.467 - 16 0.0333 - 37 0.0333 - - 8 5 4 0 - 6 0.2 - 8 0.2 - 15 0.4 - 21 0.2 - - 13 11 6 0 - 3 0.0909 - 4 0.0909 - 6 0.0909 - 7 0.0909 - 15 0.545 - 30 0.0909 - - 41 40 14 0 - 0 0.025 - 2 0.05 - 4 0.225 - 7 0.05 - 8 0.075 - 12 0.025 - 13 0.125 - 15 0.175 - 16 0.025 - 19 0.05 - 21 0.05 - 28 0.05 - 30 0.025 - 35 0.05 - - 42 21 8 0 - 0 0.143 - 4 0.143 - 7 0.0476 - 8 0.143 - 13 0.0476 - 19 0.381 - 31 0.0476 - 37 0.0476 - - 46 8 3 0 - 4 0.25 - 13 0.125 - 15 0.625 - - 55 107 16 0 - 2 0.00935 - 4 0.121 - 6 0.0187 - 7 0.15 - 8 0.0467 - 13 0.0935 - 15 0.355 - 19 0.028 - 21 0.0187 - 26 0.00935 - 28 0.028 - 30 0.00935 - 31 0.0467 - 34 0.028 - 35 0.028 - 37 0.00935 - - 57 5 4 0 - 2 0.2 - 7 0.4 - 8 0.2 - 34 0.2 - - 58 6 4 0 - 0 0.167 - 2 0.333 - 21 0.333 - 30 0.167 - - 69 1 1 0 - 32 1 - - 46 898 32 13 - 0 0.0635 - 1 0.00223 - 2 0.0668 - 3 0.00445 - 4 0.0568 - 7 0.345 - 8 0.0212 - 12 0.0167 - 13 0.00557 - 14 0.00223 - 15 0.0167 - 19 0.0078 - 20 0.00111 - 21 0.0323 - 26 0.0646 - 29 0.0212 - 30 0.0212 - 31 0.0345 - 32 0.00334 - 33 0.0167 - 34 0.0624 - 35 0.0111 - 36 0.00223 - 37 0.0122 - 40 0.00334 - 41 0.00668 - 42 0.0323 - 43 0.00334 - 44 0.0379 - 45 0.00891 - 46 0.00223 - 47 0.0134 - - 6 2 2 0 - 0 0.5 - 41 0.5 - - 8 3 3 0 - 7 0.333 - 33 0.333 - 42 0.333 - - 13 251 24 0 - 0 0.0598 - 1 0.00398 - 2 0.0478 - 4 0.00797 - 7 0.498 - 8 0.012 - 12 0.0398 - 19 0.00398 - 21 0.0279 - 26 0.0876 - 29 0.012 - 30 0.0159 - 31 0.0359 - 33 0.00797 - 34 0.0518 - 35 0.00797 - 37 0.012 - 40 0.00797 - 41 0.00398 - 42 0.0279 - 43 0.00398 - 44 0.0159 - 46 0.00398 - 47 0.00398 - - 14 66 15 0 - 0 0.0606 - 2 0.0606 - 7 0.333 - 8 0.0303 - 12 0.0152 - 19 0.0152 - 21 0.0455 - 26 0.152 - 29 0.0152 - 31 0.0455 - 32 0.0455 - 34 0.0455 - 35 0.0606 - 37 0.0152 - 42 0.0606 - - 15 21 11 0 - 2 0.0476 - 4 0.0476 - 7 0.286 - 12 0.0952 - 21 0.0952 - 26 0.0476 - 33 0.0952 - 34 0.0476 - 40 0.0476 - 41 0.143 - 46 0.0476 - - 40 11 3 0 - 15 0.182 - 21 0.0909 - 47 0.727 - - 41 222 23 0 - 0 0.0721 - 2 0.045 - 3 0.018 - 4 0.203 - 7 0.0856 - 8 0.0405 - 12 0.0045 - 13 0.018 - 14 0.00901 - 15 0.0541 - 19 0.00901 - 20 0.0045 - 21 0.0495 - 26 0.018 - 29 0.045 - 30 0.036 - 31 0.045 - 33 0.0225 - 34 0.144 - 35 0.018 - 36 0.00901 - 37 0.0135 - 45 0.036 - - 42 2 2 0 - 33 0.5 - 47 0.5 - - 55 241 21 0 - 0 0.0207 - 1 0.00415 - 2 0.12 - 4 0.0124 - 7 0.448 - 8 0.0166 - 15 0.00415 - 19 0.0083 - 21 0.0124 - 26 0.083 - 29 0.0083 - 30 0.0207 - 31 0.0332 - 33 0.0083 - 34 0.0249 - 37 0.0124 - 41 0.00415 - 42 0.0539 - 43 0.0083 - 44 0.0913 - 47 0.00415 - - 56 26 9 0 - 0 0.269 - 7 0.231 - 12 0.0385 - 19 0.0385 - 29 0.115 - 33 0.0385 - 34 0.0385 - 37 0.0385 - 44 0.192 - - 57 34 10 0 - 0 0.147 - 2 0.118 - 7 0.471 - 8 0.0294 - 13 0.0294 - 21 0.0294 - 26 0.0294 - 30 0.0588 - 31 0.0294 - 42 0.0588 - - 62 10 6 0 - 0 0.2 - 7 0.2 - 21 0.1 - 33 0.1 - 42 0.1 - 44 0.3 - - 65 1 1 0 - 47 1 - - 47 311752 46 59 - 0 0.0863 - 1 0.000289 - 2 0.0341 - 3 0.00328 - 4 0.0119 - 5 0.000103 - 6 4.49e-05 - 7 0.192 - 8 0.0132 - 9 0.000908 - 10 0.000763 - 12 0.0303 - 13 0.0146 - 14 0.00451 - 15 0.00615 - 16 0.000122 - 17 2.57e-05 - 18 0.000176 - 19 0.00338 - 20 0.000186 - 21 0.0233 - 22 0.00185 - 23 0.00017 - 24 0.000565 - 25 2.89e-05 - 26 0.031 - 28 0.00225 - 29 0.0626 - 30 0.00728 - 31 0.0105 - 32 0.0152 - 33 0.0222 - 34 0.00651 - 35 0.00307 - 36 0.00017 - 37 0.00209 - 38 1.92e-05 - 39 0.000504 - 40 0.207 - 41 0.166 - 42 0.0179 - 43 0.0038 - 44 0.00306 - 45 0.00251 - 46 0.00252 - 47 0.00512 - - 0 56 13 0 - 0 0.0179 - 7 0.125 - 8 0.0893 - 13 0.0357 - 15 0.0179 - 21 0.25 - 23 0.179 - 29 0.107 - 30 0.0714 - 31 0.0536 - 41 0.0179 - 43 0.0179 - 45 0.0179 - - 1 3 2 0 - 26 0.333 - 40 0.667 - - 2 3 2 0 - 0 0.333 - 21 0.667 - - 3 7697 38 0 - 0 0.019 - 2 0.0298 - 3 0.00065 - 4 0.099 - 6 0.00013 - 7 0.178 - 8 0.00429 - 9 0.00208 - 10 0.00013 - 12 0.00754 - 13 0.00455 - 14 0.00143 - 15 0.00429 - 19 0.00247 - 20 0.00026 - 21 0.0052 - 22 0.00026 - 23 0.00013 - 25 0.00013 - 26 0.0958 - 28 0.00013 - 29 0.0151 - 30 0.00338 - 31 0.00559 - 32 0.00117 - 33 0.00351 - 34 0.00273 - 35 0.000909 - 37 0.00338 - 39 0.00013 - 40 0.212 - 41 0.251 - 42 0.0227 - 43 0.0178 - 44 0.00182 - 45 0.0013 - 46 0.00065 - 47 0.00208 - - 4 2457 34 0 - 0 0.258 - 1 0.000814 - 2 0.00895 - 3 0.00204 - 4 0.00611 - 7 0.286 - 8 0.00773 - 9 0.000407 - 10 0.000407 - 12 0.0696 - 13 0.00692 - 14 0.00122 - 15 0.00122 - 18 0.000814 - 19 0.00895 - 21 0.0232 - 24 0.00204 - 26 0.00733 - 28 0.00407 - 29 0.0281 - 30 0.00692 - 31 0.0248 - 32 0.0228 - 33 0.0619 - 34 0.00611 - 35 0.0265 - 37 0.000407 - 40 0.0419 - 41 0.0696 - 42 0.0106 - 44 0.000407 - 45 0.00122 - 46 0.000814 - 47 0.00204 - - 5 861 10 0 - 0 0.861 - 4 0.00232 - 12 0.0848 - 18 0.0128 - 19 0.00116 - 21 0.0244 - 26 0.00116 - 33 0.00697 - 35 0.00116 - 41 0.00465 - - 6 59 14 0 - 0 0.0678 - 2 0.0339 - 7 0.102 - 12 0.0339 - 26 0.0678 - 31 0.0169 - 33 0.0678 - 40 0.254 - 41 0.203 - 42 0.0339 - 43 0.0169 - 44 0.0339 - 45 0.0169 - 46 0.0508 - - 7 79 19 0 - 0 0.152 - 2 0.0127 - 4 0.0506 - 5 0.0127 - 7 0.228 - 8 0.0127 - 12 0.038 - 18 0.0253 - 19 0.038 - 21 0.0253 - 22 0.0127 - 24 0.0127 - 26 0.0253 - 29 0.0127 - 31 0.0633 - 33 0.038 - 40 0.114 - 41 0.114 - 47 0.0127 - - 8 1187 34 0 - 0 0.0666 - 1 0.000842 - 2 0.0371 - 3 0.00253 - 4 0.00505 - 7 0.405 - 8 0.00758 - 9 0.00421 - 10 0.000842 - 12 0.0118 - 13 0.0143 - 14 0.00505 - 15 0.00421 - 19 0.00337 - 21 0.0177 - 22 0.00337 - 24 0.000842 - 26 0.0497 - 28 0.00168 - 29 0.0286 - 30 0.00505 - 31 0.00505 - 32 0.0118 - 33 0.00927 - 34 0.00253 - 35 0.00253 - 37 0.000842 - 40 0.131 - 41 0.131 - 42 0.0194 - 43 0.00505 - 44 0.00421 - 46 0.00168 - 47 0.000842 - - 9 235 13 0 - 0 0.0213 - 2 0.00851 - 4 0.00851 - 7 0.621 - 12 0.00426 - 21 0.0255 - 26 0.0766 - 29 0.00426 - 30 0.00426 - 31 0.0128 - 40 0.115 - 41 0.0894 - 42 0.00851 - - 10 367 21 0 - 0 0.0572 - 2 0.00272 - 4 0.00817 - 5 0.00272 - 7 0.711 - 8 0.00545 - 12 0.00545 - 13 0.00817 - 19 0.00817 - 21 0.0163 - 26 0.0109 - 28 0.00272 - 29 0.00272 - 30 0.00817 - 31 0.00272 - 32 0.0327 - 37 0.00272 - 40 0.0463 - 41 0.049 - 42 0.0136 - 45 0.00272 - - 12 3 3 0 - 40 0.333 - 41 0.333 - 43 0.333 - - 13 96406 46 0 - 0 0.0637 - 1 0.000353 - 2 0.0345 - 3 0.00505 - 4 0.00829 - 5 0.000145 - 6 5.19e-05 - 7 0.333 - 8 0.00742 - 9 0.00119 - 10 4.15e-05 - 12 0.0242 - 13 0.00407 - 14 0.000944 - 15 0.0048 - 16 3.11e-05 - 17 2.07e-05 - 18 2.07e-05 - 19 0.00561 - 20 0.00027 - 21 0.0238 - 22 0.0035 - 23 0.000114 - 24 0.000467 - 25 4.15e-05 - 26 0.0426 - 28 0.00132 - 29 0.0439 - 30 0.00859 - 31 0.0141 - 32 0.00186 - 33 0.0205 - 34 0.0107 - 35 0.00337 - 36 0.000249 - 37 0.00326 - 38 1.04e-05 - 39 0.000145 - 40 0.149 - 41 0.153 - 42 0.0151 - 43 0.00195 - 44 0.00201 - 45 0.00279 - 46 0.00327 - 47 0.000685 - - 14 55109 44 0 - 0 0.0843 - 1 0.000726 - 2 0.0441 - 3 0.00132 - 4 0.0177 - 5 9.07e-05 - 7 0.251 - 8 0.0175 - 9 0.00098 - 10 3.63e-05 - 12 0.0303 - 13 0.00218 - 14 0.000817 - 15 0.00212 - 16 3.63e-05 - 17 5.44e-05 - 18 3.63e-05 - 19 0.00468 - 20 0.000163 - 21 0.0335 - 22 0.00205 - 23 0.000127 - 24 0.000653 - 25 1.81e-05 - 26 0.0385 - 28 0.00356 - 29 0.0533 - 30 0.0147 - 31 0.0227 - 32 0.0389 - 33 0.00203 - 34 0.0132 - 35 0.00744 - 36 0.000472 - 37 0.00227 - 39 0.000327 - 40 0.146 - 41 0.131 - 42 0.0194 - 43 0.00156 - 44 0.00454 - 45 0.00238 - 46 0.00281 - 47 0.00107 - - 15 37150 40 0 - 0 0.0859 - 1 8.08e-05 - 2 0.0517 - 3 0.00261 - 4 0.0052 - 5 5.38e-05 - 6 2.69e-05 - 7 0.0953 - 8 0.00377 - 9 0.000242 - 12 0.0275 - 13 0.00353 - 14 0.00116 - 15 0.00571 - 17 2.69e-05 - 18 0.000673 - 19 0.00175 - 20 0.000296 - 21 0.0225 - 22 0.000834 - 24 8.08e-05 - 26 0.0186 - 28 0.00221 - 29 0.135 - 30 0.00363 - 31 0.00186 - 32 0.00363 - 33 0.0419 - 34 0.0024 - 35 0.00145 - 37 0.00132 - 39 0.000619 - 40 0.126 - 41 0.315 - 42 0.0153 - 43 0.00729 - 44 0.00686 - 45 0.00202 - 46 0.00347 - 47 0.00331 - - 16 1540 34 0 - 0 0.123 - 2 0.0604 - 3 0.0013 - 4 0.00519 - 5 0.000649 - 7 0.11 - 8 0.00519 - 9 0.000649 - 12 0.0403 - 13 0.00519 - 14 0.00195 - 15 0.00325 - 19 0.0026 - 20 0.000649 - 21 0.026 - 22 0.000649 - 26 0.0234 - 28 0.000649 - 29 0.112 - 30 0.00584 - 31 0.0039 - 32 0.037 - 33 0.0156 - 34 0.000649 - 35 0.0169 - 36 0.000649 - 40 0.128 - 41 0.216 - 42 0.0266 - 43 0.0039 - 44 0.0039 - 45 0.00195 - 46 0.00325 - 47 0.0136 - - 17 3 1 0 - 4 1 - - 18 8655 34 0 - 0 0.00508 - 2 0.00659 - 3 0.0261 - 4 0.000231 - 6 0.000231 - 7 0.00208 - 8 0.207 - 9 0.00173 - 10 0.026 - 12 0.00104 - 13 0.417 - 14 0.13 - 15 0.104 - 16 0.00381 - 19 0.000116 - 21 0.00555 - 22 0.000347 - 23 0.00208 - 26 0.000231 - 28 0.000347 - 29 0.00439 - 30 0.0117 - 31 0.00739 - 32 0.000462 - 33 0.00104 - 38 0.000578 - 39 0.0101 - 40 0.00485 - 41 0.00601 - 42 0.000231 - 43 0.000924 - 44 0.000231 - 45 0.0117 - 46 0.000231 - - 19 17347 41 0 - 0 0.301 - 1 0.000173 - 2 0.00761 - 3 0.000807 - 4 0.0115 - 5 0.000115 - 6 5.76e-05 - 7 0.0349 - 8 0.00738 - 9 0.00133 - 10 0.000115 - 12 0.124 - 13 0.00202 - 14 0.000749 - 15 0.000576 - 17 0.000115 - 18 0.000634 - 19 0.00161 - 20 0.000115 - 21 0.0537 - 22 0.00156 - 23 0.000173 - 24 0.00455 - 26 0.0163 - 28 0.0117 - 29 0.166 - 30 0.00242 - 31 0.0019 - 32 0.0775 - 33 0.106 - 34 0.000288 - 35 0.000634 - 37 0.00121 - 39 0.000288 - 40 0.0313 - 41 0.021 - 42 0.00334 - 43 0.000346 - 44 0.000865 - 45 0.00346 - 46 0.000461 - - 20 22 10 0 - 0 0.136 - 1 0.0909 - 13 0.0909 - 15 0.0455 - 21 0.0455 - 30 0.364 - 40 0.0455 - 41 0.0909 - 42 0.0455 - 43 0.0455 - - 21 515 31 0 - 0 0.0641 - 2 0.0272 - 3 0.00388 - 4 0.0155 - 6 0.00194 - 7 0.243 - 8 0.035 - 9 0.0136 - 12 0.0155 - 13 0.0136 - 14 0.00388 - 15 0.00388 - 19 0.0194 - 21 0.0214 - 22 0.0117 - 26 0.0311 - 28 0.00388 - 29 0.00583 - 30 0.00583 - 31 0.00971 - 32 0.00583 - 33 0.0117 - 34 0.00194 - 37 0.00194 - 40 0.181 - 41 0.217 - 42 0.0214 - 43 0.00194 - 44 0.00388 - 46 0.00194 - 47 0.00194 - - 22 48 11 0 - 2 0.0625 - 7 0.521 - 8 0.0417 - 12 0.0208 - 21 0.0208 - 29 0.0208 - 31 0.0208 - 37 0.0208 - 40 0.0833 - 41 0.167 - 42 0.0208 - - 23 19 8 0 - 7 0.579 - 8 0.0526 - 19 0.0526 - 21 0.105 - 29 0.0526 - 31 0.0526 - 40 0.0526 - 41 0.0526 - - 24 8 3 0 - 7 0.5 - 40 0.25 - 41 0.25 - - 25 13 2 0 - 3 0.0769 - 42 0.923 - - 26 1 1 0 - 28 1 - - 27 4 3 0 - 40 0.5 - 42 0.25 - 46 0.25 - - 28 87 15 0 - 0 0.0115 - 2 0.0345 - 4 0.0805 - 7 0.437 - 8 0.0345 - 13 0.0115 - 15 0.0115 - 21 0.046 - 26 0.069 - 29 0.023 - 40 0.103 - 41 0.092 - 42 0.0115 - 46 0.023 - 47 0.0115 - - 29 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 29 0.167 - 33 0.167 - - 30 255 24 0 - 0 0.0706 - 2 0.0314 - 4 0.00784 - 7 0.435 - 8 0.0196 - 12 0.0275 - 13 0.00392 - 14 0.00392 - 19 0.00392 - 21 0.0275 - 22 0.00392 - 26 0.0314 - 29 0.0235 - 30 0.00392 - 31 0.00784 - 32 0.00392 - 33 0.0157 - 37 0.00392 - 40 0.141 - 41 0.098 - 42 0.0157 - 43 0.00392 - 44 0.00392 - 46 0.0118 - - 31 27 11 0 - 0 0.0741 - 2 0.0741 - 4 0.037 - 7 0.185 - 12 0.111 - 14 0.037 - 24 0.037 - 26 0.037 - 29 0.185 - 40 0.148 - 41 0.0741 - - 32 3 3 0 - 0 0.333 - 32 0.333 - 33 0.333 - - 33 63 17 0 - 0 0.0159 - 3 0.0476 - 4 0.175 - 7 0.127 - 8 0.0952 - 10 0.0159 - 13 0.0159 - 14 0.0317 - 19 0.0635 - 21 0.0317 - 22 0.0159 - 26 0.0952 - 30 0.0159 - 34 0.0159 - 40 0.0159 - 41 0.206 - 45 0.0159 - - 34 58 6 0 - 0 0.259 - 4 0.0172 - 12 0.379 - 21 0.0345 - 29 0.19 - 33 0.121 - - 35 6 4 0 - 0 0.333 - 26 0.167 - 40 0.333 - 41 0.167 - - 40 975 10 0 - 0 0.00103 - 12 0.00103 - 15 0.00615 - 21 0.00103 - 26 0.00103 - 43 0.0677 - 44 0.0513 - 45 0.00103 - 46 0.00308 - 47 0.867 - - 41 4997 30 0 - 0 0.238 - 2 0.0332 - 3 0.0014 - 4 0.0254 - 7 0.0903 - 8 0.0054 - 9 0.0004 - 10 0.0002 - 12 0.064 - 13 0.00981 - 14 0.0036 - 15 0.00961 - 19 0.003 - 21 0.0476 - 22 0.0006 - 23 0.0002 - 26 0.0272 - 28 0.0012 - 29 0.288 - 30 0.00901 - 31 0.0124 - 32 0.013 - 33 0.104 - 34 0.0038 - 35 0.0012 - 36 0.0002 - 37 0.0026 - 39 0.0002 - 45 0.0042 - 46 0.0006 - - 42 330 23 0 - 0 0.115 - 2 0.0212 - 4 0.0152 - 7 0.0485 - 8 0.00303 - 12 0.0424 - 13 0.00303 - 14 0.00606 - 15 0.00606 - 19 0.00606 - 20 0.00303 - 21 0.0273 - 26 0.0121 - 28 0.00606 - 29 0.0758 - 30 0.00303 - 31 0.00606 - 32 0.0121 - 33 0.0212 - 34 0.00303 - 37 0.00606 - 45 0.00303 - 47 0.555 - - 43 92 18 0 - 0 0.0978 - 2 0.087 - 4 0.0217 - 7 0.152 - 12 0.0435 - 21 0.0217 - 26 0.0109 - 29 0.0109 - 30 0.0109 - 31 0.0109 - 32 0.0217 - 33 0.0652 - 34 0.0109 - 35 0.0109 - 40 0.13 - 41 0.12 - 42 0.109 - 47 0.0652 - - 45 4 4 0 - 0 0.25 - 2 0.25 - 7 0.25 - 32 0.25 - - 46 480 27 0 - 0 0.119 - 1 0.00208 - 2 0.0542 - 4 0.0208 - 7 0.365 - 8 0.0104 - 12 0.0292 - 13 0.00417 - 15 0.00833 - 19 0.00833 - 21 0.0396 - 26 0.0521 - 29 0.0396 - 30 0.00833 - 31 0.0292 - 32 0.00625 - 33 0.0292 - 34 0.0417 - 35 0.0125 - 37 0.0125 - 40 0.00625 - 41 0.0104 - 42 0.0333 - 43 0.00625 - 44 0.0229 - 46 0.00417 - 47 0.025 - - 48 1062 27 0 - 0 0.0546 - 2 0.032 - 4 0.000942 - 7 0.0706 - 8 0.000942 - 9 0.000942 - 12 0.0188 - 13 0.00471 - 15 0.000942 - 19 0.000942 - 21 0.00659 - 26 0.0141 - 28 0.000942 - 29 0.0753 - 30 0.000942 - 31 0.00377 - 32 0.0226 - 33 0.00847 - 34 0.000942 - 37 0.00282 - 40 0.469 - 41 0.171 - 42 0.032 - 43 0.000942 - 44 0.000942 - 45 0.00282 - 46 0.000942 - - 49 817 24 0 - 0 0.0673 - 2 0.0171 - 4 0.00367 - 7 0.0355 - 8 0.00245 - 12 0.00857 - 15 0.00122 - 21 0.00857 - 22 0.00122 - 26 0.0122 - 28 0.00245 - 29 0.0257 - 30 0.00367 - 31 0.00122 - 32 0.0147 - 33 0.00612 - 34 0.00122 - 40 0.518 - 41 0.179 - 42 0.071 - 44 0.00122 - 45 0.00367 - 46 0.00245 - 47 0.0122 - - 51 8 5 0 - 2 0.125 - 33 0.125 - 40 0.25 - 41 0.125 - 47 0.375 - - 54 7 4 0 - 0 0.143 - 13 0.143 - 40 0.429 - 41 0.286 - - 55 13149 39 0 - 0 0.0396 - 2 0.00867 - 3 0.00205 - 4 0.0054 - 5 7.61e-05 - 6 0.000152 - 7 0.0588 - 8 0.00342 - 9 0.000456 - 12 0.0129 - 13 0.000913 - 14 0.000152 - 15 0.000913 - 19 0.000532 - 20 0.000152 - 21 0.00829 - 22 0.000456 - 23 7.61e-05 - 24 0.000152 - 25 0.000152 - 26 0.013 - 28 0.000989 - 29 0.0295 - 30 0.00205 - 31 0.0035 - 32 0.0103 - 33 0.00464 - 34 0.00243 - 35 0.000913 - 36 7.61e-05 - 37 0.000608 - 40 0.508 - 41 0.208 - 42 0.0503 - 43 0.00973 - 44 0.00106 - 45 0.000913 - 46 0.00122 - 47 0.01 - - 56 409 24 0 - 0 0.0513 - 2 0.0122 - 3 0.00244 - 4 0.00978 - 7 0.174 - 8 0.00244 - 12 0.0269 - 14 0.00244 - 21 0.00489 - 26 0.0171 - 28 0.00244 - 29 0.0147 - 30 0.00733 - 31 0.00978 - 32 0.0269 - 33 0.00489 - 34 0.0122 - 35 0.00978 - 39 0.00244 - 40 0.35 - 41 0.237 - 42 0.0122 - 44 0.00244 - 46 0.00489 - - 57 38167 39 0 - 0 0.0755 - 1 0.000105 - 2 0.0403 - 3 0.00055 - 4 0.0043 - 5 0.000131 - 6 2.62e-05 - 7 0.0629 - 8 0.00333 - 9 0.000131 - 12 0.0243 - 13 0.0021 - 14 0.000812 - 15 0.0017 - 19 0.00102 - 20 2.62e-05 - 21 0.0137 - 22 0.000786 - 23 2.62e-05 - 24 7.86e-05 - 26 0.0196 - 28 0.000891 - 29 0.0437 - 30 0.00424 - 31 0.00383 - 32 0.0103 - 33 0.0117 - 34 0.00113 - 35 0.00055 - 37 0.00186 - 39 0.000131 - 40 0.432 - 41 0.205 - 42 0.0232 - 43 0.0022 - 44 0.00191 - 45 0.00176 - 46 0.0027 - 47 0.00144 - - 58 873 28 0 - 0 0.123 - 2 0.0767 - 3 0.0115 - 4 0.0275 - 7 0.139 - 8 0.00229 - 12 0.0401 - 13 0.00229 - 14 0.00344 - 15 0.00229 - 19 0.00458 - 20 0.00115 - 21 0.0229 - 26 0.0321 - 28 0.00229 - 29 0.0527 - 30 0.00344 - 31 0.00229 - 32 0.0275 - 33 0.0367 - 34 0.00458 - 35 0.00229 - 39 0.00115 - 40 0.181 - 41 0.136 - 42 0.0504 - 45 0.00115 - 47 0.0103 - - 60 5584 31 0 - 0 0.00985 - 2 0.0177 - 3 0.00681 - 4 0.0518 - 7 0.358 - 8 0.00734 - 9 0.00412 - 12 0.00304 - 13 0.00358 - 14 0.000179 - 15 0.00304 - 19 0.00125 - 20 0.000179 - 21 0.00591 - 22 0.000179 - 25 0.000179 - 26 0.0566 - 29 0.00304 - 30 0.00251 - 31 0.0077 - 34 0.000895 - 35 0.000537 - 37 0.000179 - 40 0.186 - 41 0.219 - 42 0.0136 - 43 0.0279 - 44 0.00663 - 45 0.000358 - 46 0.000179 - 47 0.00125 - - 61 29 6 0 - 0 0.0345 - 29 0.0345 - 33 0.0345 - 40 0.69 - 41 0.138 - 42 0.069 - - 62 1522 28 0 - 0 0.0453 - 2 0.0191 - 3 0.000657 - 4 0.00197 - 7 0.0315 - 8 0.000657 - 12 0.021 - 15 0.00131 - 19 0.000657 - 21 0.00788 - 22 0.00131 - 26 0.00197 - 28 0.000657 - 29 0.0177 - 30 0.000657 - 31 0.00131 - 32 0.00263 - 33 0.00986 - 34 0.000657 - 37 0.00131 - 40 0.633 - 41 0.171 - 42 0.0138 - 43 0.00329 - 44 0.000657 - 45 0.00197 - 46 0.00263 - 47 0.00526 - - 64 8611 29 0 - 0 0.046 - 2 0.0135 - 4 0.00105 - 7 0.0108 - 12 0.017 - 13 0.000465 - 14 0.000116 - 15 0.000232 - 19 0.000929 - 20 0.000116 - 21 0.0043 - 22 0.000348 - 26 0.00325 - 28 0.000697 - 29 0.00975 - 30 0.000813 - 31 0.000581 - 32 0.00499 - 33 0.00325 - 34 0.000116 - 37 0.000232 - 40 0.694 - 41 0.157 - 42 0.0238 - 43 0.00151 - 44 0.00151 - 45 0.00128 - 46 0.00116 - 47 0.00128 - - 65 8 3 0 - 40 0.5 - 46 0.125 - 47 0.375 - - 67 4 4 0 - 40 0.25 - 42 0.25 - 46 0.25 - 47 0.25 - - 68 65 9 0 - 0 0.0308 - 2 0.0308 - 7 0.0769 - 26 0.0308 - 29 0.0308 - 32 0.0462 - 40 0.631 - 41 0.0769 - 42 0.0462 - - 69 4185 30 0 - 0 0.0712 - 2 0.0229 - 3 0.000239 - 4 0.00191 - 7 0.0244 - 8 0.000478 - 12 0.0318 - 13 0.000478 - 15 0.000239 - 21 0.00956 - 22 0.000956 - 26 0.00789 - 28 0.00119 - 29 0.037 - 30 0.00119 - 31 0.0043 - 32 0.0148 - 33 0.0103 - 34 0.000478 - 35 0.000239 - 37 0.000478 - 39 0.000239 - 40 0.542 - 41 0.18 - 42 0.0277 - 43 0.00335 - 44 0.00119 - 45 0.000717 - 46 0.00119 - 47 0.00215 - - 73 3 3 0 - 0 0.333 - 32 0.333 - 41 0.333 - - 74 13 5 0 - 0 0.0769 - 26 0.0769 - 40 0.154 - 41 0.0769 - 47 0.615 - - 48 1396 29 9 - 0 0.0415 - 2 0.0244 - 4 0.00143 - 7 0.0752 - 8 0.00143 - 9 0.00645 - 12 0.0143 - 13 0.0043 - 15 0.000716 - 19 0.00143 - 21 0.00716 - 26 0.0186 - 28 0.00143 - 29 0.0573 - 30 0.00215 - 31 0.00716 - 32 0.0172 - 33 0.00716 - 34 0.00143 - 35 0.000716 - 37 0.00215 - 39 0.0043 - 40 0.362 - 41 0.304 - 42 0.0279 - 43 0.00143 - 44 0.00215 - 45 0.00287 - 46 0.00143 - - 0 1 1 0 - 44 1 - - 4 66 14 0 - 0 0.0455 - 2 0.0152 - 7 0.379 - 8 0.0152 - 12 0.0152 - 13 0.0152 - 19 0.0152 - 26 0.0455 - 29 0.0152 - 30 0.0152 - 39 0.0909 - 40 0.152 - 41 0.136 - 42 0.0455 - - 41 264 6 0 - 2 0.00379 - 7 0.00758 - 26 0.0114 - 40 0.261 - 41 0.705 - 42 0.0114 - - 42 18 3 0 - 40 0.667 - 41 0.0556 - 42 0.278 - - 44 1 1 0 - 43 1 - - 45 6 5 0 - 40 0.333 - 41 0.167 - 42 0.167 - 44 0.167 - 46 0.167 - - 47 19 8 0 - 2 0.0526 - 7 0.211 - 9 0.421 - 13 0.105 - 28 0.0526 - 30 0.0526 - 33 0.0526 - 40 0.0526 - - 55 951 28 0 - 0 0.0568 - 2 0.0326 - 4 0.0021 - 7 0.0747 - 8 0.00105 - 9 0.00105 - 12 0.0189 - 13 0.00315 - 15 0.00105 - 19 0.00105 - 21 0.0105 - 26 0.021 - 28 0.00105 - 29 0.0831 - 30 0.00105 - 31 0.0105 - 32 0.0252 - 33 0.00946 - 34 0.0021 - 35 0.00105 - 37 0.00315 - 40 0.396 - 41 0.209 - 42 0.0263 - 43 0.00105 - 44 0.00105 - 45 0.00421 - 46 0.00105 - - 57 51 5 0 - 7 0.0196 - 12 0.0196 - 40 0.471 - 41 0.451 - 42 0.0392 - - 49 1035 32 6 - 0 0.0531 - 1 0.000966 - 2 0.0145 - 3 0.00483 - 4 0.0386 - 7 0.0725 - 8 0.0145 - 9 0.00193 - 12 0.00676 - 13 0.0164 - 14 0.0116 - 15 0.0116 - 20 0.0029 - 21 0.00966 - 22 0.00193 - 26 0.0184 - 28 0.00193 - 29 0.0203 - 30 0.0029 - 31 0.00193 - 32 0.0116 - 33 0.00483 - 34 0.00386 - 35 0.00386 - 37 0.000966 - 40 0.411 - 41 0.184 - 42 0.058 - 44 0.000966 - 45 0.0029 - 46 0.00193 - 47 0.00966 - - 2 45 9 0 - 4 0.311 - 8 0.133 - 13 0.156 - 14 0.133 - 15 0.0667 - 20 0.0444 - 21 0.0222 - 40 0.0444 - 41 0.0889 - - 41 350 16 0 - 2 0.00286 - 3 0.0143 - 4 0.0629 - 7 0.00286 - 8 0.00857 - 9 0.00571 - 13 0.0229 - 14 0.0171 - 15 0.02 - 20 0.00286 - 21 0.00571 - 22 0.00286 - 40 0.506 - 41 0.166 - 42 0.131 - 47 0.0286 - - 42 10 5 0 - 8 0.2 - 13 0.1 - 40 0.4 - 41 0.1 - 42 0.2 - - 47 1 1 0 - 32 1 - - 55 548 26 0 - 0 0.0912 - 1 0.00182 - 2 0.0237 - 4 0.00547 - 7 0.128 - 8 0.0073 - 12 0.00912 - 13 0.00182 - 15 0.00365 - 21 0.0109 - 22 0.00182 - 26 0.031 - 28 0.00365 - 29 0.0328 - 30 0.00547 - 31 0.00365 - 32 0.0182 - 33 0.0073 - 34 0.00365 - 35 0.00547 - 37 0.00182 - 40 0.369 - 41 0.204 - 42 0.0201 - 45 0.00547 - 46 0.00365 - - 57 73 15 0 - 0 0.0685 - 2 0.0137 - 7 0.0411 - 12 0.0274 - 21 0.0137 - 26 0.0137 - 29 0.0411 - 32 0.0137 - 33 0.0137 - 34 0.0274 - 35 0.0137 - 40 0.534 - 41 0.151 - 42 0.0137 - 44 0.0137 - - 50 146 15 1 - 3 0.0342 - 4 0.384 - 8 0.144 - 9 0.0137 - 13 0.123 - 14 0.13 - 15 0.0548 - 16 0.00685 - 20 0.0411 - 21 0.0137 - 22 0.00685 - 30 0.0137 - 31 0.0137 - 39 0.00685 - 45 0.0137 - - 46 1 1 0 - 45 1 - - 51 8 5 0 - 2 0.125 - 33 0.125 - 40 0.25 - 41 0.125 - 47 0.375 - - 54 8 4 0 - 0 0.125 - 13 0.125 - 40 0.375 - 41 0.375 - - 55 92386 44 25 - 0 0.00569 - 1 0.000487 - 2 0.0599 - 3 0.0061 - 4 0.022 - 5 3.25e-05 - 6 7.58e-05 - 7 0.423 - 8 0.0122 - 9 0.000509 - 10 0.000108 - 12 0.00184 - 13 0.00187 - 14 0.000682 - 15 0.00441 - 16 3.25e-05 - 17 2.16e-05 - 19 0.00704 - 20 0.000216 - 21 0.011 - 22 0.000346 - 23 0.000152 - 24 7.58e-05 - 25 5.41e-05 - 26 0.0266 - 28 0.000162 - 29 0.0062 - 30 0.0132 - 31 0.0246 - 32 0.00149 - 33 0.000671 - 34 0.0181 - 35 0.00889 - 36 0.000563 - 37 0.00232 - 39 0.000433 - 40 0.0776 - 41 0.217 - 42 0.0281 - 43 0.00179 - 44 0.00812 - 45 0.0015 - 46 0.00279 - 47 0.00143 - - 2 6756 35 0 - 0 0.0628 - 2 0.0154 - 3 0.000148 - 4 0.00681 - 5 0.000148 - 7 0.0813 - 8 0.00488 - 9 0.000148 - 12 0.0207 - 13 0.00133 - 14 0.000888 - 15 0.000888 - 19 0.000592 - 21 0.0148 - 22 0.000444 - 23 0.000148 - 26 0.016 - 28 0.00192 - 29 0.0423 - 30 0.00355 - 31 0.00459 - 32 0.017 - 33 0.00266 - 34 0.00429 - 35 0.00148 - 36 0.000148 - 37 0.000888 - 40 0.412 - 41 0.25 - 42 0.0232 - 43 0.00192 - 44 0.00133 - 45 0.00148 - 46 0.00192 - 47 0.00178 - - 4 104 10 0 - 0 0.0192 - 2 0.865 - 3 0.00962 - 7 0.00962 - 9 0.00962 - 12 0.00962 - 21 0.00962 - 29 0.0192 - 40 0.0192 - 41 0.0288 - - 6 2 2 0 - 40 0.5 - 47 0.5 - - 7 24 7 0 - 0 0.0417 - 2 0.0417 - 29 0.0417 - 32 0.0417 - 40 0.5 - 41 0.25 - 42 0.0833 - - 8 5 4 0 - 7 0.2 - 29 0.2 - 40 0.4 - 42 0.2 - - 13 6 4 0 - 4 0.167 - 30 0.167 - 40 0.167 - 41 0.5 - - 15 8 5 0 - 2 0.125 - 7 0.125 - 29 0.125 - 41 0.5 - 42 0.125 - - 17 14 4 0 - 0 0.0714 - 2 0.714 - 40 0.143 - 41 0.0714 - - 20 4 3 0 - 12 0.25 - 40 0.5 - 41 0.25 - - 21 120 9 0 - 0 0.00833 - 2 0.0667 - 7 0.025 - 8 0.0167 - 26 0.00833 - 40 0.55 - 41 0.292 - 42 0.025 - 43 0.00833 - - 26 49 8 0 - 3 0.49 - 4 0.0408 - 7 0.102 - 8 0.0204 - 19 0.0204 - 40 0.224 - 41 0.0408 - 42 0.0612 - - 40 7 2 0 - 40 0.857 - 41 0.143 - - 41 8157 24 0 - 0 0.00356 - 2 0.114 - 4 0.000613 - 7 0.00282 - 12 0.000613 - 14 0.000245 - 20 0.000123 - 21 0.00049 - 22 0.000123 - 26 0.000613 - 29 0.00699 - 31 0.000368 - 32 0.000123 - 33 0.00331 - 34 0.000736 - 35 0.0011 - 40 0.303 - 41 0.527 - 42 0.0177 - 43 0.0116 - 44 0.00147 - 45 0.000123 - 46 0.000245 - 47 0.00368 - - 42 1360 18 0 - 0 0.00147 - 2 0.00588 - 3 0.00368 - 6 0.000735 - 7 0.00515 - 8 0.000735 - 9 0.000735 - 19 0.000735 - 25 0.00221 - 30 0.00147 - 32 0.000735 - 34 0.000735 - 40 0.561 - 41 0.0449 - 42 0.318 - 43 0.011 - 46 0.00441 - 47 0.036 - - 44 37 5 0 - 7 0.0811 - 40 0.027 - 41 0.027 - 42 0.0811 - 43 0.784 - - 45 324 10 0 - 2 0.0185 - 7 0.0494 - 21 0.00309 - 26 0.00309 - 30 0.00309 - 34 0.00309 - 40 0.133 - 41 0.327 - 42 0.00617 - 46 0.454 - - 46 65 5 0 - 7 0.0154 - 40 0.523 - 41 0.431 - 43 0.0154 - 46 0.0154 - - 47 72120 41 0 - 0 6.93e-05 - 1 0.000624 - 2 0.0597 - 3 0.00738 - 4 0.027 - 5 2.77e-05 - 6 6.93e-05 - 7 0.529 - 8 0.0149 - 9 0.000568 - 10 0.000139 - 13 0.0022 - 14 0.000749 - 15 0.00535 - 16 4.16e-05 - 17 2.77e-05 - 19 0.00892 - 20 0.00025 - 21 0.0123 - 22 0.000333 - 23 0.00018 - 24 6.93e-05 - 25 1.39e-05 - 26 0.0315 - 28 2.77e-05 - 29 0.00257 - 30 0.0164 - 31 0.0309 - 32 4.16e-05 - 33 1.39e-05 - 34 0.0226 - 35 0.0111 - 36 0.000707 - 37 0.00284 - 39 0.000527 - 40 0.000111 - 41 0.177 - 42 0.0204 - 44 0.0101 - 45 0.00176 - 46 0.00122 - - 48 4 4 0 - 0 0.25 - 2 0.25 - 12 0.25 - 40 0.25 - - 49 129 11 0 - 0 0.0155 - 2 0.093 - 4 0.00775 - 7 0.093 - 22 0.00775 - 26 0.0233 - 35 0.0155 - 37 0.00775 - 40 0.419 - 41 0.302 - 42 0.0155 - - 50 156 12 0 - 0 0.00641 - 2 0.0385 - 7 0.0449 - 12 0.00641 - 13 0.00641 - 14 0.00641 - 29 0.00641 - 31 0.00641 - 32 0.00641 - 40 0.66 - 41 0.192 - 42 0.0192 - - 55 2717 34 0 - 0 0.0184 - 2 0.0158 - 3 0.000368 - 4 0.00957 - 6 0.000368 - 7 0.119 - 8 0.00405 - 9 0.0011 - 12 0.00626 - 13 0.00147 - 15 0.00552 - 19 0.000368 - 20 0.000368 - 21 0.00589 - 22 0.0011 - 24 0.000736 - 25 0.000368 - 26 0.025 - 29 0.0118 - 30 0.00147 - 31 0.00405 - 32 0.00515 - 33 0.00552 - 34 0.00184 - 35 0.000368 - 37 0.000736 - 40 0.259 - 41 0.342 - 42 0.134 - 43 0.00331 - 44 0.000368 - 45 0.000368 - 46 0.000368 - 47 0.0144 - - 57 160 13 0 - 0 0.0375 - 2 0.0437 - 7 0.0812 - 12 0.025 - 26 0.025 - 29 0.0437 - 31 0.00625 - 32 0.0125 - 33 0.00625 - 35 0.00625 - 40 0.494 - 41 0.206 - 43 0.0125 - - 58 37 7 0 - 0 0.027 - 7 0.0811 - 40 0.541 - 41 0.216 - 42 0.0811 - 44 0.027 - 47 0.027 - - 60 8 5 0 - 2 0.125 - 7 0.125 - 21 0.125 - 39 0.25 - 40 0.375 - - 56 440 24 15 - 0 0.0477 - 2 0.0114 - 3 0.00227 - 4 0.00909 - 7 0.161 - 8 0.00227 - 12 0.025 - 14 0.00227 - 21 0.00455 - 26 0.0159 - 28 0.00227 - 29 0.0136 - 30 0.00909 - 31 0.00909 - 32 0.025 - 33 0.00455 - 34 0.0114 - 35 0.00909 - 39 0.00227 - 40 0.325 - 41 0.23 - 42 0.0114 - 44 0.00227 - 46 0.0636 - - 4 120 16 0 - 0 0.0583 - 2 0.0167 - 7 0.242 - 12 0.0667 - 14 0.00833 - 28 0.00833 - 31 0.025 - 32 0.025 - 33 0.00833 - 34 0.0167 - 35 0.00833 - 40 0.317 - 41 0.167 - 42 0.00833 - 44 0.00833 - 46 0.0167 - - 8 69 14 0 - 0 0.0725 - 3 0.0145 - 4 0.0145 - 7 0.217 - 8 0.0145 - 12 0.0145 - 21 0.0145 - 26 0.0435 - 30 0.0145 - 32 0.0145 - 34 0.0145 - 35 0.0145 - 40 0.333 - 41 0.203 - - 13 3 2 0 - 30 0.667 - 40 0.333 - - 14 11 7 0 - 2 0.0909 - 29 0.0909 - 32 0.0909 - 33 0.0909 - 40 0.364 - 41 0.182 - 46 0.0909 - - 15 14 4 0 - 0 0.143 - 7 0.0714 - 40 0.357 - 41 0.429 - - 20 36 9 0 - 0 0.0278 - 2 0.0278 - 7 0.25 - 26 0.0278 - 29 0.0556 - 32 0.0556 - 40 0.306 - 41 0.222 - 42 0.0278 - - 21 3 3 0 - 12 0.333 - 41 0.333 - 42 0.333 - - 30 2 2 0 - 0 0.5 - 34 0.5 - - 31 2 2 0 - 7 0.5 - 34 0.5 - - 34 1 1 0 - 4 1 - - 45 61 3 0 - 40 0.246 - 41 0.344 - 46 0.41 - - 48 10 6 0 - 4 0.1 - 7 0.2 - 21 0.1 - 32 0.1 - 40 0.4 - 41 0.1 - - 54 2 2 0 - 35 0.5 - 40 0.5 - - 55 75 12 0 - 0 0.0533 - 2 0.0133 - 4 0.0133 - 7 0.107 - 12 0.0133 - 26 0.0267 - 29 0.0267 - 32 0.0133 - 39 0.0133 - 40 0.347 - 41 0.36 - 42 0.0133 - - 60 14 6 0 - 7 0.214 - 30 0.0714 - 31 0.0714 - 32 0.0714 - 35 0.0714 - 40 0.5 - - 57 43057 41 14 - 0 0.0669 - 1 0.000279 - 2 0.0358 - 3 0.00065 - 4 0.00604 - 5 0.000139 - 6 4.65e-05 - 7 0.106 - 8 0.00476 - 9 0.000139 - 12 0.0216 - 13 0.00232 - 14 0.000836 - 15 0.00272 - 19 0.00183 - 20 2.32e-05 - 21 0.0136 - 22 0.000883 - 23 2.32e-05 - 24 6.97e-05 - 25 2.32e-05 - 26 0.0268 - 28 0.00079 - 29 0.039 - 30 0.00595 - 31 0.00711 - 32 0.00917 - 33 0.0104 - 34 0.0066 - 35 0.00249 - 36 2.32e-05 - 37 0.00221 - 39 0.000116 - 40 0.386 - 41 0.206 - 42 0.0223 - 43 0.00232 - 44 0.00221 - 45 0.00167 - 46 0.00318 - 47 0.00128 - - 2 4 4 0 - 4 0.25 - 15 0.25 - 40 0.25 - 41 0.25 - - 13 20 7 0 - 4 0.05 - 12 0.05 - 26 0.1 - 34 0.05 - 40 0.5 - 41 0.2 - 46 0.05 - - 41 1101 20 0 - 0 0.00363 - 2 0.00272 - 4 0.00182 - 7 0.0163 - 12 0.00182 - 15 0.000908 - 21 0.00182 - 26 0.00363 - 29 0.00636 - 31 0.00182 - 32 0.00182 - 33 0.00182 - 34 0.00182 - 40 0.554 - 41 0.378 - 42 0.0145 - 43 0.00182 - 44 0.000908 - 46 0.000908 - 47 0.00363 - - 42 51 5 0 - 7 0.0196 - 40 0.392 - 41 0.0784 - 42 0.471 - 46 0.0392 - - 44 14 2 0 - 0 0.0714 - 43 0.929 - - 45 21 5 0 - 7 0.0476 - 40 0.476 - 41 0.238 - 42 0.0952 - 46 0.143 - - 46 145 15 0 - 0 0.0345 - 2 0.0138 - 4 0.0069 - 7 0.0483 - 8 0.0069 - 21 0.0207 - 26 0.0207 - 29 0.0069 - 33 0.0069 - 34 0.0069 - 40 0.434 - 41 0.331 - 42 0.0345 - 44 0.0138 - 45 0.0138 - - 48 31 5 0 - 2 0.0323 - 7 0.226 - 40 0.419 - 41 0.29 - 42 0.0323 - - 49 43 8 0 - 0 0.0233 - 2 0.0233 - 7 0.0698 - 26 0.0465 - 29 0.0233 - 40 0.419 - 41 0.372 - 42 0.0233 - - 55 39258 41 0 - 0 0.0695 - 1 0.000306 - 2 0.0374 - 3 0.000662 - 4 0.00642 - 5 0.000153 - 6 5.09e-05 - 7 0.111 - 8 0.00497 - 9 0.000153 - 12 0.0224 - 13 0.00242 - 14 0.000917 - 15 0.00285 - 19 0.00199 - 20 2.55e-05 - 21 0.0143 - 22 0.000942 - 23 2.55e-05 - 24 7.64e-05 - 25 2.55e-05 - 26 0.0284 - 28 0.000841 - 29 0.0411 - 30 0.00629 - 31 0.00746 - 32 0.00978 - 33 0.0109 - 34 0.00693 - 35 0.0027 - 36 2.55e-05 - 37 0.00211 - 39 0.000127 - 40 0.374 - 41 0.202 - 42 0.0215 - 43 0.00201 - 44 0.00217 - 45 0.00163 - 46 0.00326 - 47 0.0012 - - 57 2232 30 0 - 0 0.06 - 2 0.0291 - 3 0.000896 - 4 0.00134 - 7 0.0824 - 8 0.00358 - 12 0.0206 - 13 0.00224 - 15 0.00134 - 19 0.000448 - 21 0.00806 - 22 0.000448 - 26 0.0116 - 28 0.000448 - 29 0.0233 - 30 0.00358 - 31 0.00448 - 32 0.00358 - 33 0.00851 - 34 0.00314 - 35 0.000448 - 37 0.00538 - 40 0.5 - 41 0.187 - 42 0.0269 - 43 0.00269 - 44 0.00314 - 45 0.00269 - 46 0.000896 - 47 0.00134 - - 58 51 12 0 - 0 0.0392 - 7 0.0784 - 21 0.0196 - 26 0.0196 - 29 0.0392 - 30 0.0196 - 31 0.0196 - 32 0.0196 - 40 0.431 - 41 0.235 - 42 0.0588 - 47 0.0196 - - 64 38 8 0 - 0 0.0789 - 8 0.0263 - 26 0.0526 - 29 0.0263 - 34 0.0263 - 40 0.474 - 41 0.237 - 42 0.0789 - - 69 41 6 0 - 0 0.0244 - 2 0.0732 - 29 0.0244 - 40 0.707 - 41 0.146 - 42 0.0244 - - 58 1135 32 9 - 0 0.0943 - 1 0.000881 - 2 0.0643 - 3 0.0106 - 4 0.037 - 7 0.157 - 8 0.00705 - 12 0.0308 - 13 0.00617 - 14 0.00352 - 15 0.00617 - 19 0.00352 - 20 0.00352 - 21 0.0194 - 26 0.0326 - 28 0.00176 - 29 0.0405 - 30 0.00529 - 31 0.00705 - 32 0.0211 - 33 0.0282 - 34 0.0167 - 35 0.00705 - 37 0.00176 - 39 0.000881 - 40 0.142 - 41 0.16 - 42 0.074 - 43 0.00176 - 44 0.000881 - 45 0.00617 - 47 0.00793 - - 2 23 9 0 - 4 0.304 - 8 0.087 - 13 0.174 - 14 0.0435 - 15 0.13 - 20 0.13 - 21 0.0435 - 30 0.0435 - 41 0.0435 - - 13 11 5 0 - 0 0.273 - 7 0.273 - 26 0.273 - 33 0.0909 - 40 0.0909 - - 15 4 4 0 - 2 0.25 - 21 0.25 - 26 0.25 - 41 0.25 - - 41 10 6 0 - 2 0.1 - 29 0.1 - 30 0.1 - 33 0.1 - 40 0.4 - 41 0.2 - - 46 32 7 0 - 0 0.125 - 4 0.0312 - 7 0.125 - 35 0.0312 - 40 0.188 - 41 0.469 - 42 0.0312 - - 55 969 32 0 - 0 0.0949 - 1 0.00103 - 2 0.066 - 3 0.00619 - 4 0.0341 - 7 0.161 - 8 0.00413 - 12 0.032 - 13 0.0031 - 14 0.0031 - 15 0.00413 - 19 0.0031 - 20 0.00103 - 21 0.0165 - 26 0.031 - 28 0.00206 - 29 0.0433 - 30 0.0031 - 31 0.00826 - 32 0.0248 - 33 0.0299 - 34 0.0186 - 35 0.00722 - 37 0.00206 - 39 0.00103 - 40 0.143 - 41 0.156 - 42 0.0826 - 43 0.00206 - 44 0.00103 - 45 0.00413 - 47 0.00929 - - 57 57 17 0 - 0 0.0877 - 2 0.0877 - 3 0.105 - 4 0.0175 - 7 0.105 - 8 0.0351 - 12 0.0351 - 21 0.0526 - 26 0.0175 - 29 0.0351 - 30 0.0175 - 33 0.0175 - 34 0.0175 - 40 0.158 - 41 0.123 - 42 0.0351 - 45 0.0526 - - 60 2 2 0 - 0 0.5 - 21 0.5 - - 64 5 4 0 - 0 0.2 - 2 0.4 - 19 0.2 - 41 0.2 - - 59 3 3 0 - 7 0.333 - 14 0.333 - 40 0.333 - - 60 5599 31 16 - 0 0.00982 - 2 0.0179 - 3 0.00679 - 4 0.0516 - 7 0.357 - 8 0.00732 - 9 0.00411 - 12 0.00304 - 13 0.00357 - 14 0.000179 - 15 0.00304 - 19 0.00125 - 20 0.000179 - 21 0.00589 - 22 0.000179 - 25 0.000179 - 26 0.0564 - 29 0.00304 - 30 0.0025 - 31 0.00768 - 34 0.000893 - 35 0.000536 - 37 0.000179 - 40 0.187 - 41 0.219 - 42 0.0136 - 43 0.0282 - 44 0.00679 - 45 0.000357 - 46 0.000179 - 47 0.00125 - - 3 11 8 0 - 0 0.182 - 2 0.0909 - 7 0.0909 - 14 0.0909 - 26 0.0909 - 29 0.0909 - 40 0.0909 - 41 0.273 - - 4 101 15 0 - 0 0.0396 - 2 0.0297 - 4 0.0891 - 7 0.564 - 8 0.0198 - 12 0.0099 - 15 0.0297 - 19 0.0198 - 21 0.0099 - 26 0.0297 - 29 0.0099 - 31 0.0891 - 40 0.0297 - 41 0.0198 - 44 0.0099 - - 8 72 10 0 - 0 0.0278 - 7 0.486 - 12 0.0139 - 13 0.0139 - 21 0.0278 - 26 0.0694 - 31 0.0139 - 40 0.125 - 41 0.208 - 44 0.0139 - - 13 49 7 0 - 4 0.0612 - 7 0.327 - 21 0.0204 - 34 0.0204 - 40 0.224 - 41 0.327 - 44 0.0204 - - 14 21 6 0 - 7 0.0476 - 19 0.0476 - 30 0.0476 - 40 0.714 - 41 0.0952 - 42 0.0476 - - 20 12 3 0 - 7 0.833 - 8 0.0833 - 40 0.0833 - - 21 8 4 0 - 4 0.125 - 7 0.5 - 40 0.25 - 42 0.125 - - 30 4 3 0 - 7 0.5 - 12 0.25 - 40 0.25 - - 31 30 8 0 - 0 0.1 - 4 0.0667 - 7 0.433 - 13 0.0333 - 26 0.0667 - 31 0.0667 - 40 0.133 - 41 0.1 - - 39 9 7 0 - 2 0.111 - 4 0.222 - 26 0.111 - 40 0.222 - 41 0.111 - 43 0.111 - 47 0.111 - - 42 1 1 0 - 47 1 - - 44 2 1 0 - 43 1 - - 47 5218 30 0 - 0 0.00824 - 2 0.0178 - 3 0.00728 - 4 0.0519 - 7 0.353 - 8 0.00709 - 9 0.00422 - 12 0.00268 - 13 0.00345 - 15 0.00268 - 19 0.000767 - 20 0.000192 - 21 0.00556 - 22 0.000192 - 25 0.000192 - 26 0.0583 - 29 0.00268 - 30 0.00249 - 31 0.00594 - 34 0.000767 - 35 0.000575 - 37 0.000192 - 40 0.186 - 41 0.226 - 42 0.0142 - 43 0.0295 - 44 0.00652 - 45 0.000383 - 46 0.000192 - 47 0.000958 - - 48 6 3 0 - 7 0.167 - 40 0.667 - 44 0.167 - - 55 34 8 0 - 0 0.0294 - 2 0.0588 - 7 0.441 - 8 0.0294 - 9 0.0294 - 29 0.0294 - 40 0.265 - 41 0.118 - - 60 16 4 0 - 4 0.0625 - 7 0.125 - 40 0.688 - 41 0.125 - - 61 43 6 0 - 0 0.0233 - 29 0.0233 - 33 0.0233 - 40 0.465 - 41 0.395 - 42 0.0698 - - 62 1601 28 11 - 0 0.0431 - 2 0.02 - 3 0.000625 - 4 0.00187 - 7 0.03 - 8 0.000625 - 12 0.02 - 15 0.00125 - 19 0.000625 - 21 0.0075 - 22 0.00125 - 26 0.00187 - 28 0.000625 - 29 0.0169 - 30 0.000625 - 31 0.00125 - 32 0.0025 - 33 0.00937 - 34 0.000625 - 37 0.00125 - 40 0.626 - 41 0.176 - 42 0.0162 - 43 0.00312 - 44 0.00125 - 45 0.00187 - 46 0.00874 - 47 0.005 - - 2 20 3 0 - 29 0.05 - 40 0.75 - 41 0.2 - - 4 2 2 0 - 40 0.5 - 43 0.5 - - 8 5 4 0 - 40 0.4 - 41 0.2 - 43 0.2 - 46 0.2 - - 13 936 26 0 - 0 0.0513 - 2 0.016 - 3 0.00107 - 4 0.00214 - 7 0.031 - 8 0.00107 - 12 0.0246 - 15 0.00107 - 19 0.00107 - 21 0.00962 - 22 0.00107 - 26 0.00321 - 28 0.00107 - 29 0.0214 - 31 0.00214 - 33 0.0118 - 34 0.00107 - 37 0.00214 - 40 0.607 - 41 0.185 - 42 0.0139 - 43 0.00107 - 44 0.00107 - 45 0.00321 - 46 0.00321 - 47 0.00321 - - 14 215 16 0 - 0 0.0698 - 2 0.0419 - 4 0.00465 - 7 0.0512 - 12 0.0279 - 15 0.00465 - 21 0.0093 - 22 0.00465 - 29 0.0233 - 30 0.00465 - 32 0.014 - 33 0.00465 - 40 0.581 - 41 0.144 - 42 0.00465 - 47 0.0093 - - 41 42 5 0 - 2 0.0714 - 40 0.548 - 41 0.333 - 42 0.0238 - 43 0.0238 - - 42 99 5 0 - 40 0.889 - 41 0.0303 - 42 0.0505 - 46 0.0101 - 47 0.0202 - - 45 38 4 0 - 40 0.553 - 41 0.184 - 42 0.0263 - 46 0.237 - - 47 8 4 0 - 12 0.25 - 33 0.125 - 40 0.5 - 47 0.125 - - 55 65 7 0 - 0 0.0154 - 2 0.0462 - 7 0.0615 - 40 0.569 - 41 0.246 - 42 0.0462 - 44 0.0154 - - 57 132 12 0 - 0 0.0303 - 2 0.00758 - 7 0.0227 - 12 0.00758 - 21 0.00758 - 29 0.00758 - 32 0.00758 - 33 0.0152 - 40 0.689 - 41 0.182 - 42 0.0152 - 43 0.00758 - - 64 9765 30 13 - 0 0.0406 - 2 0.012 - 4 0.00113 - 7 0.0138 - 8 0.000102 - 12 0.015 - 13 0.00041 - 14 0.000102 - 15 0.000307 - 19 0.000819 - 20 0.000102 - 21 0.00379 - 22 0.000307 - 26 0.00379 - 28 0.000614 - 29 0.0086 - 30 0.00102 - 31 0.000512 - 32 0.0044 - 33 0.00287 - 34 0.00041 - 37 0.000205 - 40 0.613 - 41 0.245 - 42 0.0247 - 43 0.00143 - 44 0.00164 - 45 0.00113 - 46 0.00113 - 47 0.00113 - - 2 12 3 0 - 40 0.75 - 41 0.0833 - 42 0.167 - - 8 2 2 0 - 40 0.5 - 44 0.5 - - 13 484 13 0 - 0 0.0331 - 2 0.00826 - 7 0.00413 - 12 0.0145 - 26 0.00207 - 29 0.0124 - 33 0.00826 - 40 0.731 - 41 0.157 - 42 0.0227 - 43 0.00207 - 45 0.00207 - 46 0.00207 - - 14 162 8 0 - 0 0.037 - 2 0.00617 - 12 0.00617 - 29 0.0123 - 32 0.00617 - 40 0.79 - 41 0.136 - 42 0.00617 - - 41 2797 15 0 - 0 0.00465 - 2 0.00107 - 4 0.000358 - 7 0.000358 - 12 0.000715 - 15 0.000358 - 21 0.000715 - 29 0.0025 - 33 0.000715 - 40 0.555 - 41 0.417 - 42 0.0136 - 43 0.000715 - 44 0.000358 - 47 0.00179 - - 42 55 4 0 - 40 0.545 - 41 0.0364 - 42 0.4 - 46 0.0182 - - 44 1 1 0 - 43 1 - - 46 78 5 0 - 2 0.0128 - 40 0.718 - 41 0.244 - 42 0.0128 - 44 0.0128 - - 49 18 3 0 - 22 0.0556 - 40 0.667 - 41 0.278 - - 55 5353 30 0 - 0 0.0616 - 2 0.0189 - 4 0.00187 - 7 0.023 - 8 0.000187 - 12 0.023 - 13 0.000747 - 14 0.000187 - 15 0.000374 - 19 0.00149 - 20 0.000187 - 21 0.00654 - 22 0.000187 - 26 0.00579 - 28 0.000934 - 29 0.0116 - 30 0.00187 - 31 0.000747 - 32 0.0071 - 33 0.00411 - 34 0.000747 - 37 0.000374 - 40 0.611 - 41 0.181 - 42 0.0275 - 43 0.00187 - 44 0.00205 - 45 0.00168 - 46 0.00168 - 47 0.00112 - - 57 678 15 0 - 0 0.0383 - 2 0.00885 - 7 0.0133 - 12 0.0192 - 22 0.00147 - 26 0.00737 - 28 0.00147 - 29 0.00885 - 31 0.00147 - 32 0.0059 - 40 0.715 - 41 0.15 - 42 0.0236 - 44 0.00295 - 45 0.00147 - - 58 36 4 0 - 0 0.0278 - 40 0.806 - 41 0.111 - 42 0.0556 - - 69 29 3 0 - 40 0.862 - 41 0.103 - 42 0.0345 - - 65 9 3 0 - 40 0.444 - 46 0.222 - 47 0.333 - - 67 5 4 0 - 40 0.4 - 42 0.2 - 46 0.2 - 47 0.2 - - 68 68 9 1 - 0 0.0294 - 2 0.0294 - 7 0.0882 - 26 0.0294 - 29 0.0294 - 32 0.0441 - 40 0.603 - 41 0.103 - 42 0.0441 - - 57 10 3 0 - 2 0.2 - 40 0.7 - 42 0.1 - - 69 4817 31 8 - 0 0.0619 - 2 0.0199 - 3 0.000415 - 4 0.00166 - 7 0.0309 - 8 0.00145 - 12 0.0276 - 13 0.000415 - 15 0.000208 - 21 0.0083 - 22 0.00083 - 25 0.000208 - 26 0.00851 - 28 0.00104 - 29 0.0324 - 30 0.00208 - 31 0.00415 - 32 0.0129 - 33 0.00893 - 34 0.00353 - 35 0.000623 - 37 0.000415 - 39 0.000208 - 40 0.478 - 41 0.256 - 42 0.0286 - 43 0.00332 - 44 0.00145 - 45 0.00083 - 46 0.00104 - 47 0.00187 - - 41 789 13 0 - 0 0.00634 - 2 0.00253 - 7 0.0152 - 12 0.00127 - 21 0.00127 - 26 0.00253 - 29 0.0139 - 32 0.00253 - 33 0.00634 - 40 0.326 - 41 0.597 - 42 0.0228 - 47 0.00253 - - 42 8 2 0 - 40 0.25 - 42 0.75 - - 44 2 1 0 - 43 1 - - 45 5 5 0 - 0 0.2 - 8 0.2 - 40 0.2 - 41 0.2 - 44 0.2 - - 46 31 6 0 - 0 0.0323 - 21 0.0323 - 32 0.0323 - 40 0.516 - 41 0.355 - 45 0.0323 - - 48 7 1 0 - 41 1 - - 55 3706 31 0 - 0 0.0739 - 2 0.0237 - 3 0.00054 - 4 0.00216 - 7 0.0351 - 8 0.00162 - 12 0.0351 - 13 0.00054 - 15 0.00027 - 21 0.00944 - 22 0.000809 - 25 0.00027 - 26 0.0105 - 28 0.00135 - 29 0.0364 - 30 0.0027 - 31 0.0054 - 32 0.0159 - 33 0.0103 - 34 0.00459 - 35 0.000809 - 37 0.00054 - 39 0.00027 - 40 0.502 - 41 0.188 - 42 0.0286 - 43 0.00324 - 44 0.00162 - 45 0.000809 - 46 0.00135 - 47 0.00189 - - 57 248 11 0 - 0 0.0645 - 2 0.0202 - 7 0.0282 - 12 0.00806 - 21 0.0121 - 22 0.00403 - 29 0.0403 - 40 0.597 - 41 0.185 - 42 0.0323 - 43 0.00806 - - 73 3 3 0 - 0 0.333 - 32 0.333 - 41 0.333 - - 74 16 7 0 - 0 0.0625 - 26 0.0625 - 35 0.0625 - 40 0.125 - 41 0.125 - 42 0.0625 - 47 0.5 - -56 3639 35 22 - 0 0.0231 - 2 0.288 - 3 0.00302 - 4 0.00769 - 6 0.000275 - 7 0.104 - 8 0.0445 - 9 0.0011 - 12 0.0115 - 13 0.0409 - 14 0.0168 - 15 0.0176 - 16 0.00055 - 18 0.000824 - 20 0.000275 - 21 0.0055 - 23 0.000275 - 26 0.00907 - 28 0.0011 - 29 0.00632 - 30 0.00467 - 31 0.0055 - 32 0.0121 - 33 0.00247 - 34 0.00632 - 35 0.00467 - 37 0.000275 - 39 0.0022 - 40 0.144 - 41 0.192 - 42 0.00714 - 43 0.00055 - 44 0.0118 - 45 0.0011 - 46 0.0231 - - 2 357 16 3 - 3 0.0224 - 4 0.0056 - 8 0.361 - 9 0.0112 - 13 0.325 - 14 0.0728 - 15 0.126 - 16 0.0028 - 20 0.0028 - 21 0.0196 - 23 0.0028 - 30 0.0084 - 31 0.014 - 33 0.0028 - 39 0.0112 - 45 0.0112 - - 41 17 7 0 - 8 0.118 - 13 0.412 - 14 0.0588 - 15 0.118 - 31 0.0588 - 39 0.176 - 45 0.0588 - - 46 3 1 0 - 45 1 - - 56 337 15 0 - 3 0.0237 - 4 0.00593 - 8 0.377 - 9 0.0119 - 13 0.323 - 14 0.0742 - 15 0.128 - 16 0.00297 - 20 0.00297 - 21 0.0208 - 23 0.00297 - 30 0.0089 - 31 0.0119 - 33 0.00297 - 39 0.00297 - - 3 7 5 0 - 2 0.286 - 4 0.286 - 40 0.143 - 41 0.143 - 46 0.143 - - 6 7 3 0 - 40 0.286 - 41 0.286 - 46 0.429 - - 13 392 19 8 - 0 0.0102 - 2 0.416 - 7 0.148 - 12 0.0102 - 14 0.0051 - 21 0.00255 - 26 0.0102 - 29 0.0051 - 30 0.00255 - 31 0.00255 - 32 0.0051 - 33 0.00255 - 34 0.0051 - 35 0.00255 - 39 0.00255 - 40 0.107 - 41 0.24 - 42 0.0051 - 46 0.0179 - - 3 7 5 0 - 2 0.429 - 7 0.143 - 14 0.143 - 31 0.143 - 40 0.143 - - 4 4 2 0 - 41 0.25 - 46 0.75 - - 8 107 13 0 - 0 0.00935 - 2 0.271 - 7 0.15 - 12 0.0187 - 21 0.00935 - 26 0.00935 - 29 0.00935 - 32 0.0187 - 34 0.0187 - 40 0.103 - 41 0.355 - 42 0.00935 - 46 0.0187 - - 9 1 1 0 - 42 1 - - 13 89 11 0 - 0 0.0337 - 2 0.371 - 7 0.169 - 12 0.0112 - 26 0.0112 - 29 0.0112 - 33 0.0112 - 39 0.0112 - 40 0.135 - 41 0.225 - 46 0.0112 - - 14 6 2 0 - 2 0.5 - 40 0.5 - - 30 8 3 0 - 7 0.125 - 40 0.5 - 41 0.375 - - 47 147 10 0 - 2 0.565 - 7 0.156 - 12 0.0068 - 14 0.0068 - 26 0.0136 - 30 0.0068 - 35 0.0068 - 40 0.0544 - 41 0.177 - 46 0.0068 - - 14 312 22 7 - 0 0.0353 - 2 0.385 - 4 0.00321 - 7 0.0994 - 8 0.016 - 12 0.00962 - 14 0.00321 - 21 0.00321 - 26 0.0192 - 28 0.00321 - 29 0.00641 - 30 0.00962 - 31 0.00641 - 32 0.0192 - 34 0.00962 - 35 0.00962 - 40 0.128 - 41 0.212 - 42 0.00321 - 43 0.00321 - 44 0.00641 - 46 0.00962 - - 8 75 12 0 - 0 0.0267 - 2 0.333 - 7 0.0933 - 8 0.0533 - 21 0.0133 - 26 0.04 - 28 0.0133 - 29 0.0133 - 35 0.0133 - 40 0.2 - 41 0.187 - 46 0.0133 - - 13 93 15 0 - 0 0.0753 - 2 0.312 - 4 0.0108 - 7 0.118 - 12 0.0215 - 30 0.0108 - 31 0.0215 - 32 0.0323 - 34 0.0108 - 35 0.0215 - 40 0.172 - 41 0.161 - 43 0.0108 - 44 0.0108 - 46 0.0108 - - 15 6 5 0 - 2 0.333 - 12 0.167 - 26 0.167 - 29 0.167 - 41 0.167 - - 21 3 3 0 - 2 0.333 - 7 0.333 - 14 0.333 - - 31 5 5 0 - 0 0.2 - 2 0.2 - 30 0.2 - 41 0.2 - 44 0.2 - - 45 1 1 0 - 46 1 - - 47 111 10 0 - 2 0.523 - 7 0.0721 - 8 0.00901 - 26 0.018 - 30 0.00901 - 32 0.027 - 34 0.018 - 40 0.0631 - 41 0.252 - 42 0.00901 - - 15 139 12 3 - 0 0.00719 - 2 0.266 - 7 0.0719 - 14 0.00719 - 18 0.0216 - 29 0.00719 - 32 0.0144 - 33 0.00719 - 40 0.194 - 41 0.223 - 44 0.0863 - 46 0.0935 - - 3 3 3 0 - 2 0.333 - 7 0.333 - 14 0.333 - - 15 83 9 0 - 2 0.265 - 7 0.012 - 29 0.012 - 32 0.0241 - 33 0.012 - 40 0.229 - 41 0.253 - 44 0.12 - 46 0.0723 - - 47 45 8 0 - 0 0.0222 - 2 0.244 - 7 0.178 - 18 0.0667 - 40 0.156 - 41 0.156 - 44 0.0444 - 46 0.133 - - 16 12 6 0 - 0 0.0833 - 2 0.417 - 7 0.0833 - 41 0.25 - 42 0.0833 - 46 0.0833 - - 18 3 3 0 - 0 0.333 - 7 0.333 - 12 0.333 - - 30 2 2 0 - 2 0.5 - 4 0.5 - - 33 1 1 0 - 4 1 - - 41 116 15 1 - 0 0.0172 - 2 0.155 - 3 0.00862 - 4 0.0259 - 6 0.00862 - 7 0.0172 - 8 0.138 - 13 0.267 - 14 0.19 - 15 0.103 - 16 0.00862 - 21 0.0172 - 31 0.00862 - 35 0.00862 - 46 0.0259 - - 57 3 3 0 - 0 0.333 - 21 0.333 - 46 0.333 - - 42 3 3 0 - 4 0.333 - 32 0.333 - 37 0.333 - - 45 3 1 0 - 15 1 - - 46 8 4 0 - 2 0.5 - 7 0.125 - 29 0.125 - 34 0.25 - - 47 1311 27 19 - 0 0.032 - 2 0.263 - 3 0.00153 - 4 0.00763 - 7 0.127 - 8 0.00458 - 12 0.016 - 13 0.000763 - 14 0.00381 - 15 0.00153 - 21 0.00381 - 26 0.0114 - 28 0.00153 - 29 0.00839 - 30 0.00534 - 31 0.00534 - 32 0.0168 - 33 0.00305 - 34 0.00763 - 35 0.0061 - 39 0.00153 - 40 0.2 - 41 0.222 - 42 0.00839 - 43 0.000763 - 44 0.0114 - 46 0.029 - - 2 2 2 0 - 3 0.5 - 30 0.5 - - 3 7 5 0 - 2 0.286 - 4 0.286 - 40 0.143 - 41 0.143 - 46 0.143 - - 6 7 3 0 - 40 0.286 - 41 0.286 - 46 0.429 - - 13 389 18 0 - 0 0.0103 - 2 0.419 - 7 0.147 - 12 0.0103 - 14 0.00514 - 21 0.00257 - 26 0.00771 - 29 0.00514 - 31 0.00257 - 32 0.00514 - 33 0.00257 - 34 0.00514 - 35 0.00257 - 39 0.00257 - 40 0.108 - 41 0.242 - 42 0.00514 - 46 0.018 - - 14 310 22 0 - 0 0.0355 - 2 0.387 - 4 0.00323 - 7 0.0968 - 8 0.0161 - 12 0.00968 - 14 0.00323 - 21 0.00323 - 26 0.0194 - 28 0.00323 - 29 0.00645 - 30 0.00968 - 31 0.00645 - 32 0.0194 - 34 0.00968 - 35 0.00968 - 40 0.129 - 41 0.213 - 42 0.00323 - 43 0.00323 - 44 0.00645 - 46 0.00645 - - 15 135 11 0 - 0 0.00741 - 2 0.274 - 7 0.0667 - 14 0.00741 - 29 0.00741 - 32 0.0148 - 33 0.00741 - 40 0.2 - 41 0.23 - 44 0.0889 - 46 0.0963 - - 16 12 6 0 - 0 0.0833 - 2 0.417 - 7 0.0833 - 41 0.25 - 42 0.0833 - 46 0.0833 - - 18 3 3 0 - 0 0.333 - 7 0.333 - 12 0.333 - - 30 2 2 0 - 2 0.5 - 4 0.5 - - 33 1 1 0 - 4 1 - - 41 7 5 0 - 0 0.286 - 2 0.143 - 3 0.143 - 7 0.286 - 31 0.143 - - 46 3 3 0 - 2 0.333 - 7 0.333 - 29 0.333 - - 48 4 1 0 - 40 1 - - 55 8 4 0 - 7 0.125 - 40 0.5 - 41 0.25 - 46 0.125 - - 56 346 23 0 - 0 0.0578 - 2 0.00867 - 4 0.0116 - 7 0.173 - 8 0.00289 - 12 0.0289 - 14 0.00289 - 21 0.00578 - 26 0.0173 - 28 0.00289 - 29 0.0145 - 30 0.00867 - 31 0.00867 - 32 0.0318 - 33 0.00578 - 34 0.0145 - 35 0.0116 - 39 0.00289 - 40 0.344 - 41 0.22 - 42 0.0116 - 44 0.00289 - 46 0.0116 - - 57 45 12 0 - 0 0.0222 - 2 0.0667 - 4 0.0222 - 7 0.0889 - 12 0.0667 - 13 0.0222 - 15 0.0444 - 21 0.0222 - 40 0.333 - 41 0.2 - 42 0.0222 - 46 0.0889 - - 58 13 4 0 - 2 0.308 - 40 0.308 - 41 0.231 - 42 0.154 - - 60 3 1 0 - 41 1 - - 64 5 4 0 - 0 0.2 - 40 0.4 - 41 0.2 - 46 0.2 - - 48 4 1 0 - 40 1 - - 55 20 9 1 - 2 0.05 - 7 0.35 - 29 0.05 - 31 0.05 - 34 0.05 - 40 0.2 - 41 0.1 - 42 0.1 - 46 0.05 - - 47 10 6 0 - 2 0.1 - 7 0.5 - 29 0.1 - 31 0.1 - 34 0.1 - 42 0.1 - - 56 860 23 4 - 0 0.0233 - 2 0.395 - 4 0.00698 - 7 0.11 - 8 0.00581 - 12 0.0116 - 14 0.00465 - 21 0.00349 - 26 0.0093 - 28 0.00116 - 29 0.00581 - 30 0.00349 - 31 0.00349 - 32 0.0128 - 33 0.00233 - 34 0.00581 - 35 0.00465 - 39 0.00116 - 40 0.138 - 41 0.217 - 42 0.00698 - 44 0.0163 - 46 0.0093 - - 2 351 23 0 - 0 0.057 - 2 0.0114 - 4 0.0114 - 7 0.177 - 8 0.00285 - 12 0.0285 - 14 0.0114 - 21 0.0057 - 26 0.0171 - 28 0.00285 - 29 0.0142 - 30 0.00855 - 31 0.00855 - 32 0.0313 - 33 0.0057 - 34 0.0142 - 35 0.0114 - 39 0.00285 - 40 0.328 - 41 0.225 - 42 0.0114 - 44 0.00285 - 46 0.0114 - - 41 83 2 0 - 2 0.675 - 41 0.325 - - 45 8 3 0 - 40 0.25 - 41 0.25 - 46 0.5 - - 47 414 9 0 - 2 0.676 - 4 0.00483 - 7 0.0773 - 8 0.00966 - 21 0.00242 - 26 0.00483 - 41 0.188 - 42 0.00483 - 44 0.0314 - - 57 50 12 0 - 0 0.02 - 2 0.06 - 4 0.02 - 7 0.12 - 12 0.06 - 13 0.02 - 15 0.04 - 21 0.02 - 40 0.3 - 41 0.24 - 42 0.02 - 46 0.08 - - 58 14 4 0 - 2 0.286 - 40 0.286 - 41 0.286 - 42 0.143 - - 60 3 1 0 - 41 1 - - 64 6 4 0 - 0 0.167 - 40 0.333 - 41 0.333 - 46 0.167 - -57 285122 47 41 - 0 0.025 - 1 0.000582 - 2 0.0249 - 3 0.0218 - 4 0.118 - 5 0.000179 - 6 8.77e-05 - 7 0.0779 - 8 0.0345 - 9 0.00187 - 10 0.000544 - 12 0.0081 - 13 0.0408 - 14 0.0204 - 15 0.0544 - 16 0.000593 - 17 0.000368 - 18 0.000154 - 19 0.00467 - 20 0.0129 - 21 0.012 - 22 0.000722 - 23 7.01e-05 - 24 2.1e-05 - 25 1.4e-05 - 26 0.018 - 27 7.01e-06 - 28 0.000656 - 29 0.0139 - 30 0.013 - 31 0.0035 - 32 0.00343 - 33 0.0038 - 34 0.00234 - 35 0.00156 - 36 1.05e-05 - 37 0.00221 - 38 0.000277 - 39 0.0111 - 40 0.28 - 41 0.164 - 42 0.0145 - 43 0.00169 - 44 0.00118 - 45 0.00235 - 46 0.00192 - 47 0.00108 - - 2 472 17 6 - 3 0.00847 - 4 0.0275 - 7 0.684 - 8 0.0424 - 9 0.00636 - 13 0.0169 - 14 0.0169 - 15 0.0106 - 20 0.00212 - 21 0.0826 - 22 0.00212 - 26 0.0742 - 30 0.00424 - 31 0.00424 - 39 0.00212 - 41 0.0127 - 45 0.00212 - - 3 1 1 0 - 3 1 - - 7 33 2 0 - 4 0.0606 - 7 0.939 - - 41 83 8 0 - 3 0.0241 - 4 0.012 - 7 0.602 - 21 0.253 - 22 0.012 - 26 0.0723 - 31 0.012 - 45 0.012 - - 47 56 10 0 - 3 0.0179 - 4 0.179 - 8 0.357 - 9 0.0357 - 13 0.125 - 14 0.143 - 15 0.0714 - 30 0.0357 - 31 0.0179 - 39 0.0179 - - 55 3 3 0 - 13 0.333 - 15 0.333 - 20 0.333 - - 57 280 5 0 - 7 0.807 - 9 0.00357 - 21 0.0643 - 26 0.104 - 41 0.0214 - - 6 13 5 0 - 4 0.154 - 8 0.231 - 14 0.0769 - 15 0.462 - 39 0.0769 - - 7 83957 45 12 - 0 0.000107 - 1 0.00155 - 2 0.00102 - 3 0.0553 - 4 0.345 - 5 3.57e-05 - 6 0.000226 - 7 0.0167 - 8 0.0969 - 9 0.00506 - 10 0.00163 - 12 4.76e-05 - 13 0.119 - 14 0.0601 - 15 0.16 - 16 0.00185 - 17 0.00114 - 19 0.00769 - 20 0.0394 - 21 0.0123 - 22 0.000643 - 23 0.000167 - 25 1.19e-05 - 26 0.000798 - 27 1.19e-05 - 28 0.000119 - 29 2.38e-05 - 30 0.0324 - 31 0.00273 - 32 1.19e-05 - 33 2.38e-05 - 34 0.000226 - 35 0.00219 - 36 1.19e-05 - 37 0.00157 - 38 0.000584 - 39 0.0269 - 40 0.000655 - 41 0.000691 - 42 0.000202 - 43 3.57e-05 - 44 0.00031 - 45 0.00479 - 46 0.000119 - 47 0.000191 - - 2 40 9 0 - 3 0.025 - 4 0.35 - 7 0.1 - 8 0.025 - 13 0.175 - 14 0.05 - 15 0.225 - 19 0.025 - 20 0.025 - - 4 18 7 0 - 2 0.167 - 4 0.278 - 13 0.0556 - 14 0.0556 - 15 0.278 - 20 0.111 - 40 0.0556 - - 7 356 14 0 - 3 0.00562 - 4 0.41 - 8 0.16 - 9 0.0281 - 13 0.129 - 14 0.0927 - 15 0.0365 - 20 0.0871 - 21 0.00281 - 30 0.014 - 31 0.014 - 35 0.00281 - 39 0.00281 - 45 0.014 - - 8 342 16 0 - 3 0.00292 - 4 0.146 - 7 0.00585 - 8 0.12 - 9 0.00585 - 13 0.184 - 14 0.0848 - 15 0.371 - 20 0.00292 - 21 0.00585 - 30 0.0263 - 31 0.00292 - 32 0.00292 - 37 0.00585 - 41 0.00585 - 45 0.0263 - - 21 289 21 0 - 1 0.0138 - 3 0.0346 - 4 0.301 - 7 0.0484 - 8 0.0934 - 9 0.00346 - 10 0.00346 - 13 0.111 - 14 0.0484 - 15 0.0727 - 19 0.00346 - 20 0.0381 - 21 0.0277 - 26 0.0104 - 28 0.00692 - 30 0.163 - 31 0.00346 - 35 0.00346 - 39 0.00346 - 41 0.00346 - 45 0.00692 - - 22 5 4 0 - 4 0.4 - 14 0.2 - 15 0.2 - 28 0.2 - - 44 1 1 0 - 43 1 - - 45 5 4 0 - 4 0.2 - 13 0.4 - 21 0.2 - 30 0.2 - - 47 82196 44 0 - 0 0.000109 - 1 0.0015 - 2 0.00101 - 3 0.0561 - 4 0.345 - 5 3.65e-05 - 6 0.000231 - 7 0.0161 - 8 0.0969 - 9 0.00495 - 10 0.00164 - 12 4.87e-05 - 13 0.118 - 14 0.0599 - 15 0.16 - 16 0.00189 - 17 0.00117 - 19 0.00779 - 20 0.0393 - 21 0.0123 - 22 0.000657 - 23 0.00017 - 25 1.22e-05 - 26 0.000766 - 27 1.22e-05 - 28 8.52e-05 - 29 2.43e-05 - 30 0.032 - 31 0.0027 - 33 1.22e-05 - 34 0.000231 - 35 0.0022 - 36 1.22e-05 - 37 0.00157 - 38 0.000596 - 39 0.0274 - 40 0.000657 - 41 0.000645 - 42 0.000207 - 43 2.43e-05 - 44 0.000316 - 45 0.00467 - 46 0.000109 - 47 0.000182 - - 49 561 20 0 - 1 0.00535 - 3 0.0232 - 4 0.385 - 7 0.0945 - 8 0.0731 - 9 0.00891 - 10 0.00178 - 13 0.171 - 14 0.0624 - 15 0.0838 - 19 0.00713 - 20 0.0285 - 21 0.00535 - 30 0.0357 - 33 0.00178 - 35 0.00178 - 39 0.00357 - 45 0.00357 - 46 0.00178 - 47 0.00178 - - 55 124 13 0 - 3 0.0242 - 4 0.54 - 8 0.0403 - 13 0.0968 - 14 0.00806 - 15 0.0645 - 20 0.105 - 21 0.0161 - 26 0.00806 - 30 0.0645 - 37 0.00806 - 39 0.00806 - 41 0.0161 - - 57 8 4 0 - 4 0.125 - 7 0.625 - 13 0.125 - 21 0.125 - - 8 27 13 0 - 3 0.0741 - 4 0.111 - 9 0.037 - 13 0.148 - 14 0.111 - 15 0.111 - 19 0.037 - 20 0.037 - 26 0.111 - 30 0.111 - 39 0.037 - 40 0.037 - 46 0.037 - - 13 8 4 0 - 3 0.125 - 15 0.375 - 40 0.25 - 41 0.25 - - 14 6 4 0 - 2 0.167 - 32 0.167 - 40 0.333 - 41 0.333 - - 15 12 4 0 - 4 0.25 - 14 0.0833 - 15 0.583 - 16 0.0833 - - 20 2 1 0 - 14 1 - - 21 132 17 5 - 2 0.00758 - 3 0.0227 - 4 0.0985 - 7 0.205 - 8 0.114 - 9 0.00758 - 13 0.0455 - 14 0.00758 - 15 0.0379 - 19 0.0303 - 20 0.0227 - 21 0.197 - 26 0.0455 - 30 0.053 - 31 0.0227 - 40 0.0455 - 41 0.0379 - - 2 14 2 0 - 7 0.714 - 26 0.286 - - 7 10 5 0 - 4 0.1 - 19 0.1 - 21 0.1 - 40 0.3 - 41 0.4 - - 41 14 4 0 - 7 0.786 - 21 0.0714 - 26 0.0714 - 30 0.0714 - - 47 80 15 0 - 2 0.0125 - 3 0.0375 - 4 0.138 - 7 0.05 - 8 0.162 - 9 0.0125 - 13 0.075 - 15 0.0125 - 19 0.025 - 20 0.0375 - 21 0.275 - 26 0.0125 - 30 0.075 - 31 0.0375 - 40 0.0375 - - 49 8 6 0 - 4 0.125 - 8 0.25 - 14 0.125 - 15 0.25 - 19 0.125 - 21 0.125 - - 22 2 2 0 - 8 0.5 - 14 0.5 - - 23 4 2 0 - 26 0.5 - 41 0.5 - - 24 55 14 0 - 0 0.0364 - 3 0.0545 - 4 0.145 - 7 0.182 - 8 0.0545 - 14 0.0364 - 15 0.0727 - 21 0.0364 - 26 0.145 - 30 0.0182 - 31 0.0182 - 40 0.145 - 41 0.0182 - 45 0.0364 - - 26 8661 37 4 - 0 0.000231 - 1 0.00115 - 2 0.00104 - 3 0.158 - 4 0.289 - 6 0.000231 - 7 0.00912 - 8 0.0774 - 9 0.00774 - 10 0.000577 - 13 0.0784 - 14 0.0602 - 15 0.116 - 16 0.00115 - 17 0.000808 - 19 0.0128 - 20 0.0344 - 21 0.0102 - 22 0.000693 - 23 0.000115 - 27 0.000115 - 28 0.00739 - 30 0.0172 - 31 0.00323 - 34 0.000346 - 35 0.00254 - 37 0.000693 - 38 0.00346 - 39 0.1 - 40 0.000462 - 41 0.00104 - 42 0.000115 - 43 0.000115 - 44 0.000346 - 45 0.00323 - 46 0.000115 - 47 0.000462 - - 8 12 6 0 - 4 0.417 - 8 0.0833 - 13 0.167 - 14 0.0833 - 15 0.0833 - 20 0.167 - - 21 8 4 0 - 4 0.625 - 8 0.125 - 14 0.125 - 31 0.125 - - 41 1 1 0 - 28 1 - - 49 36 8 0 - 3 0.0278 - 4 0.556 - 8 0.111 - 9 0.111 - 13 0.0833 - 14 0.0278 - 15 0.0278 - 20 0.0556 - - 28 2 2 0 - 4 0.5 - 37 0.5 - - 29 2 1 0 - 4 1 - - 30 613 21 0 - 3 0.0375 - 4 0.401 - 7 0.00489 - 8 0.106 - 9 0.00816 - 13 0.116 - 14 0.0571 - 15 0.166 - 16 0.00163 - 19 0.00163 - 20 0.0277 - 21 0.00326 - 22 0.00163 - 25 0.00163 - 30 0.0147 - 31 0.00816 - 37 0.00489 - 39 0.0245 - 41 0.00326 - 42 0.00163 - 45 0.00816 - - 31 57 10 0 - 4 0.526 - 7 0.123 - 8 0.0877 - 13 0.0175 - 15 0.0877 - 19 0.0351 - 20 0.0702 - 29 0.0175 - 30 0.0175 - 35 0.0175 - - 40 16 3 0 - 40 0.188 - 46 0.125 - 47 0.688 - - 41 284 20 7 - 0 0.0106 - 2 0.317 - 3 0.00704 - 4 0.173 - 5 0.00352 - 7 0.19 - 8 0.00704 - 13 0.00704 - 15 0.00352 - 19 0.00352 - 20 0.00352 - 21 0.148 - 22 0.00704 - 26 0.0634 - 28 0.00704 - 29 0.0106 - 34 0.00704 - 37 0.00352 - 45 0.0141 - 46 0.0141 - - 2 2 1 0 - 22 1 - - 7 7 3 0 - 21 0.286 - 28 0.286 - 45 0.429 - - 48 2 1 0 - 46 1 - - 49 6 4 0 - 2 0.167 - 4 0.167 - 7 0.5 - 34 0.167 - - 52 3 2 0 - 13 0.667 - 20 0.333 - - 55 71 12 0 - 0 0.0282 - 2 0.0423 - 4 0.62 - 5 0.0141 - 7 0.169 - 8 0.0282 - 15 0.0141 - 19 0.0141 - 21 0.0141 - 26 0.0141 - 29 0.0282 - 46 0.0141 - - 57 189 11 0 - 0 0.00529 - 2 0.45 - 3 0.0106 - 4 0.0212 - 7 0.206 - 21 0.196 - 26 0.0899 - 29 0.00529 - 34 0.00529 - 37 0.00529 - 45 0.00529 - - 42 32 10 3 - 2 0.219 - 4 0.0938 - 7 0.125 - 8 0.0312 - 13 0.0312 - 21 0.125 - 26 0.0312 - 30 0.0312 - 42 0.0312 - 47 0.281 - - 7 5 4 0 - 4 0.4 - 8 0.2 - 30 0.2 - 42 0.2 - - 55 10 2 0 - 13 0.1 - 47 0.9 - - 57 16 4 0 - 2 0.438 - 7 0.25 - 21 0.25 - 26 0.0625 - - 43 7 6 0 - 0 0.143 - 2 0.143 - 3 0.143 - 14 0.143 - 15 0.143 - 41 0.286 - - 44 4 3 0 - 4 0.25 - 15 0.5 - 21 0.25 - - 45 232 15 3 - 1 0.00862 - 3 0.00862 - 4 0.168 - 7 0.00431 - 8 0.22 - 10 0.00431 - 13 0.159 - 14 0.0517 - 15 0.241 - 19 0.00431 - 21 0.0431 - 28 0.0129 - 30 0.056 - 31 0.00431 - 35 0.0129 - - 26 17 8 0 - 3 0.0588 - 4 0.0588 - 8 0.176 - 13 0.235 - 15 0.294 - 21 0.0588 - 28 0.0588 - 30 0.0588 - - 41 2 2 0 - 10 0.5 - 15 0.5 - - 55 1 1 0 - 7 1 - - 46 72 19 4 - 0 0.0139 - 2 0.111 - 4 0.0972 - 7 0.208 - 8 0.0278 - 12 0.0278 - 13 0.0417 - 14 0.0417 - 15 0.0417 - 20 0.0139 - 21 0.0278 - 26 0.0833 - 29 0.0139 - 32 0.0139 - 33 0.0417 - 40 0.0278 - 42 0.0972 - 44 0.0139 - 47 0.0556 - - 7 10 4 0 - 4 0.4 - 14 0.3 - 15 0.2 - 20 0.1 - - 41 4 4 0 - 4 0.25 - 13 0.25 - 15 0.25 - 29 0.25 - - 55 44 14 0 - 0 0.0227 - 2 0.159 - 7 0.318 - 8 0.0455 - 12 0.0455 - 13 0.0227 - 21 0.0227 - 26 0.136 - 32 0.0227 - 33 0.0682 - 40 0.0455 - 42 0.0455 - 44 0.0227 - 47 0.0227 - - 62 2 1 0 - 42 1 - - 47 94690 45 25 - 0 0.0377 - 1 0.000127 - 2 0.0352 - 3 0.000898 - 4 0.00774 - 5 0.000253 - 6 2.11e-05 - 7 0.106 - 8 0.0044 - 9 0.000158 - 10 6.34e-05 - 12 0.0122 - 13 0.00432 - 14 0.000993 - 15 0.00449 - 16 1.06e-05 - 17 1.06e-05 - 18 0.000232 - 19 0.00299 - 20 0.00018 - 21 0.0112 - 22 0.00075 - 23 3.17e-05 - 24 3.17e-05 - 25 1.06e-05 - 26 0.0254 - 28 0.00057 - 29 0.0208 - 30 0.00416 - 31 0.00387 - 32 0.00516 - 33 0.00571 - 34 0.00339 - 35 0.00124 - 36 1.06e-05 - 37 0.00257 - 39 9.5e-05 - 40 0.421 - 41 0.245 - 42 0.0216 - 43 0.0025 - 44 0.00162 - 45 0.0012 - 46 0.00251 - 47 0.00163 - - 7 248 21 0 - 0 0.0282 - 2 0.121 - 4 0.0685 - 7 0.117 - 8 0.0242 - 12 0.0161 - 13 0.0121 - 14 0.0121 - 15 0.0121 - 20 0.00403 - 21 0.0323 - 22 0.00403 - 26 0.0323 - 29 0.00403 - 31 0.00806 - 37 0.00806 - 40 0.222 - 41 0.169 - 42 0.0363 - 43 0.00403 - 47 0.0645 - - 8 4 2 0 - 26 0.75 - 40 0.25 - - 14 6 4 0 - 2 0.167 - 32 0.167 - 40 0.333 - 41 0.333 - - 21 20 8 0 - 2 0.05 - 4 0.05 - 7 0.2 - 19 0.05 - 21 0.05 - 26 0.05 - 40 0.3 - 41 0.25 - - 23 4 2 0 - 26 0.5 - 41 0.5 - - 24 17 7 0 - 0 0.118 - 7 0.176 - 15 0.0588 - 21 0.0588 - 26 0.0588 - 40 0.471 - 41 0.0588 - - 26 38 12 0 - 0 0.0526 - 2 0.0789 - 4 0.0526 - 7 0.237 - 14 0.0263 - 15 0.0526 - 19 0.0263 - 21 0.0526 - 23 0.0263 - 40 0.105 - 41 0.184 - 47 0.105 - - 40 11 1 0 - 47 1 - - 41 27 12 0 - 0 0.111 - 2 0.0741 - 3 0.037 - 4 0.185 - 5 0.037 - 7 0.185 - 15 0.037 - 19 0.037 - 21 0.037 - 26 0.148 - 29 0.0741 - 45 0.037 - - 42 10 2 0 - 13 0.1 - 47 0.9 - - 43 4 3 0 - 0 0.25 - 2 0.25 - 41 0.5 - - 46 58 17 0 - 0 0.0172 - 2 0.138 - 4 0.0345 - 7 0.259 - 8 0.0345 - 12 0.0345 - 13 0.0172 - 15 0.0172 - 21 0.0172 - 26 0.103 - 29 0.0172 - 32 0.0172 - 33 0.0517 - 40 0.0345 - 42 0.121 - 44 0.0172 - 47 0.069 - - 48 254 23 0 - 0 0.0394 - 2 0.0394 - 4 0.0276 - 7 0.157 - 12 0.00787 - 13 0.00394 - 14 0.0157 - 15 0.00394 - 21 0.00787 - 22 0.00394 - 26 0.0394 - 29 0.00787 - 30 0.00394 - 31 0.00787 - 33 0.00394 - 37 0.00787 - 39 0.00394 - 40 0.26 - 41 0.291 - 42 0.0394 - 43 0.00394 - 45 0.0118 - 46 0.0118 - - 49 446 17 0 - 0 0.0112 - 2 0.0202 - 4 0.00897 - 7 0.0336 - 8 0.00224 - 13 0.00224 - 15 0.00673 - 19 0.00448 - 26 0.0224 - 29 0.00448 - 32 0.00224 - 33 0.00224 - 40 0.601 - 41 0.258 - 42 0.0157 - 43 0.00224 - 46 0.00224 - - 51 17 2 0 - 40 0.706 - 41 0.294 - - 55 87632 45 0 - 0 0.0392 - 1 0.000137 - 2 0.0359 - 3 0.000913 - 4 0.0077 - 5 0.000262 - 6 2.28e-05 - 7 0.111 - 8 0.0046 - 9 0.00016 - 10 6.85e-05 - 12 0.0127 - 13 0.00454 - 14 0.000959 - 15 0.00461 - 16 1.14e-05 - 17 1.14e-05 - 18 0.000251 - 19 0.00304 - 20 0.000183 - 21 0.0117 - 22 0.000742 - 23 2.28e-05 - 24 3.42e-05 - 25 1.14e-05 - 26 0.0265 - 28 0.000605 - 29 0.0222 - 30 0.00445 - 31 0.00404 - 32 0.00544 - 33 0.00598 - 34 0.00358 - 35 0.0013 - 36 1.14e-05 - 37 0.00261 - 39 9.13e-05 - 40 0.408 - 41 0.246 - 42 0.0216 - 43 0.00251 - 44 0.00163 - 45 0.00118 - 46 0.00252 - 47 0.00106 - - 57 2302 31 0 - 0 0.0122 - 2 0.0187 - 3 0.0013 - 4 0.00608 - 7 0.0478 - 8 0.0013 - 9 0.000434 - 12 0.00348 - 13 0.00174 - 14 0.000869 - 15 0.00348 - 19 0.00174 - 21 0.00608 - 22 0.0013 - 26 0.0113 - 29 0.00521 - 30 0.000434 - 31 0.00174 - 32 0.00217 - 33 0.000869 - 34 0.000434 - 35 0.0013 - 37 0.00217 - 40 0.595 - 41 0.241 - 42 0.0204 - 43 0.00304 - 44 0.00174 - 45 0.000869 - 46 0.00261 - 47 0.00304 - - 58 9 5 0 - 2 0.111 - 4 0.111 - 7 0.222 - 40 0.333 - 41 0.222 - - 62 3086 28 0 - 0 0.0198 - 2 0.0237 - 3 0.000324 - 4 0.00162 - 7 0.0256 - 8 0.000648 - 12 0.00713 - 15 0.000324 - 19 0.00259 - 21 0.00324 - 22 0.000324 - 26 0.00551 - 28 0.000324 - 29 0.00259 - 30 0.000648 - 31 0.0013 - 32 0.000972 - 33 0.00324 - 34 0.00162 - 37 0.0013 - 40 0.631 - 41 0.239 - 42 0.0185 - 43 0.00194 - 44 0.000972 - 45 0.00162 - 46 0.00162 - 47 0.00259 - - 64 448 14 0 - 0 0.0246 - 2 0.0134 - 7 0.0246 - 12 0.00893 - 21 0.00223 - 26 0.00223 - 32 0.00223 - 34 0.00223 - 40 0.696 - 41 0.192 - 42 0.0223 - 43 0.00223 - 44 0.00446 - 46 0.00223 - - 67 1 1 0 - 46 1 - - 68 17 2 0 - 40 0.765 - 41 0.235 - - 69 14 6 0 - 0 0.0714 - 2 0.0714 - 37 0.0714 - 40 0.571 - 41 0.143 - 42 0.0714 - - 72 5 2 0 - 0 0.6 - 29 0.4 - - 74 3 2 0 - 40 0.333 - 47 0.667 - - 48 259 23 3 - 0 0.0386 - 2 0.0386 - 4 0.027 - 7 0.154 - 12 0.00772 - 13 0.00386 - 14 0.0154 - 15 0.00386 - 21 0.00772 - 22 0.00386 - 26 0.0386 - 29 0.00772 - 30 0.00386 - 31 0.00772 - 33 0.00386 - 37 0.00772 - 39 0.00386 - 40 0.255 - 41 0.293 - 42 0.0386 - 43 0.00386 - 45 0.0116 - 46 0.0232 - - 21 14 5 0 - 4 0.0714 - 7 0.0714 - 40 0.5 - 41 0.214 - 46 0.143 - - 26 22 5 0 - 7 0.5 - 14 0.0455 - 40 0.182 - 41 0.182 - 42 0.0909 - - 45 14 3 0 - 40 0.5 - 41 0.286 - 46 0.214 - - 49 475 17 5 - 0 0.0105 - 2 0.0189 - 4 0.0168 - 7 0.0674 - 8 0.00211 - 13 0.00211 - 15 0.00842 - 19 0.00421 - 26 0.0232 - 29 0.00421 - 32 0.00211 - 33 0.00211 - 40 0.564 - 41 0.255 - 42 0.0147 - 43 0.00211 - 46 0.00211 - - 2 12 3 0 - 4 0.0833 - 7 0.833 - 26 0.0833 - - 7 209 16 0 - 0 0.0191 - 2 0.0287 - 4 0.0335 - 7 0.067 - 8 0.00478 - 15 0.0144 - 19 0.00957 - 26 0.0431 - 29 0.00957 - 32 0.00478 - 33 0.00478 - 40 0.364 - 41 0.368 - 42 0.0191 - 43 0.00478 - 46 0.00478 - - 21 6 5 0 - 0 0.167 - 7 0.167 - 13 0.167 - 40 0.333 - 41 0.167 - - 41 53 4 0 - 7 0.113 - 26 0.0189 - 40 0.755 - 41 0.113 - - 55 186 5 0 - 2 0.0161 - 7 0.00538 - 40 0.785 - 41 0.177 - 42 0.0161 - - 50 38 2 0 - 7 0.842 - 26 0.158 - - 51 18 3 0 - 40 0.667 - 41 0.278 - 46 0.0556 - - 52 3 1 0 - 41 1 - - 55 88258 45 19 - 0 0.0389 - 1 0.000136 - 2 0.0356 - 3 0.000974 - 4 0.00988 - 5 0.000261 - 6 2.27e-05 - 7 0.112 - 8 0.00509 - 9 0.000159 - 10 6.8e-05 - 12 0.0126 - 13 0.00455 - 14 0.000952 - 15 0.00487 - 16 1.13e-05 - 17 1.13e-05 - 18 0.000249 - 19 0.00301 - 20 0.000181 - 21 0.0119 - 22 0.000748 - 23 2.27e-05 - 24 3.4e-05 - 25 1.13e-05 - 26 0.0263 - 28 0.000601 - 29 0.022 - 30 0.00442 - 31 0.00401 - 32 0.0054 - 33 0.00594 - 34 0.00356 - 35 0.00129 - 36 1.13e-05 - 37 0.00261 - 39 9.06e-05 - 40 0.405 - 41 0.245 - 42 0.0216 - 43 0.00253 - 44 0.00162 - 45 0.00118 - 46 0.003 - 47 0.00105 - - 2 62 11 0 - 0 0.0323 - 2 0.0161 - 7 0.0806 - 13 0.0323 - 21 0.0161 - 26 0.0161 - 40 0.258 - 41 0.435 - 42 0.0806 - 43 0.0161 - 47 0.0161 - - 6 13 6 0 - 0 0.0769 - 13 0.0769 - 15 0.0769 - 40 0.385 - 43 0.231 - 47 0.154 - - 7 78674 44 0 - 0 0.0417 - 1 0.000153 - 2 0.0359 - 3 0.000953 - 4 0.01 - 5 0.000267 - 6 2.54e-05 - 7 0.102 - 8 0.0053 - 9 0.000165 - 10 7.63e-05 - 12 0.0136 - 13 0.00469 - 14 0.00103 - 15 0.00516 - 16 1.27e-05 - 17 1.27e-05 - 18 0.00028 - 19 0.00324 - 20 0.000178 - 21 0.0122 - 22 0.000775 - 23 2.54e-05 - 24 3.81e-05 - 26 0.0278 - 28 0.000636 - 29 0.0238 - 30 0.00456 - 31 0.0044 - 32 0.00578 - 33 0.0063 - 34 0.00385 - 35 0.0014 - 36 1.27e-05 - 37 0.00253 - 39 8.9e-05 - 40 0.401 - 41 0.25 - 42 0.0215 - 43 0.00247 - 44 0.00174 - 45 0.00114 - 46 0.00262 - 47 0.00105 - - 8 16 7 0 - 2 0.0625 - 7 0.188 - 21 0.125 - 25 0.0625 - 26 0.125 - 40 0.25 - 41 0.188 - - 13 4 3 0 - 7 0.25 - 29 0.25 - 41 0.5 - - 15 11 4 0 - 40 0.273 - 41 0.364 - 42 0.0909 - 46 0.273 - - 21 54 11 0 - 2 0.111 - 4 0.0185 - 7 0.111 - 8 0.0185 - 15 0.0185 - 19 0.0185 - 26 0.0185 - 32 0.0185 - 40 0.426 - 41 0.185 - 42 0.0556 - - 24 23 7 0 - 2 0.0435 - 4 0.0435 - 7 0.13 - 13 0.0435 - 40 0.435 - 41 0.261 - 43 0.0435 - - 26 8384 35 0 - 0 0.0173 - 2 0.0354 - 3 0.00131 - 4 0.00942 - 5 0.000239 - 7 0.22 - 8 0.0037 - 9 0.000119 - 12 0.00549 - 13 0.00334 - 14 0.000358 - 15 0.00262 - 19 0.00119 - 20 0.000239 - 21 0.0099 - 22 0.000596 - 26 0.0149 - 28 0.000358 - 29 0.00704 - 30 0.0037 - 31 0.000954 - 32 0.00239 - 33 0.00322 - 34 0.00131 - 35 0.000358 - 37 0.0037 - 39 0.000119 - 40 0.433 - 41 0.191 - 42 0.0198 - 43 0.00191 - 44 0.000716 - 45 0.00143 - 46 0.00155 - 47 0.000716 - - 30 598 14 0 - 0 0.00836 - 2 0.00836 - 4 0.00167 - 7 0.0134 - 13 0.00167 - 29 0.0134 - 32 0.00167 - 33 0.00167 - 40 0.562 - 41 0.319 - 42 0.0602 - 43 0.00502 - 45 0.00167 - 47 0.00167 - - 31 45 5 0 - 2 0.0222 - 40 0.267 - 41 0.644 - 42 0.0444 - 43 0.0222 - - 41 10 2 0 - 40 0.8 - 41 0.2 - - 42 5 1 0 - 40 1 - - 44 3 1 0 - 43 1 - - 45 185 5 0 - 2 0.00541 - 7 0.00541 - 40 0.497 - 41 0.259 - 46 0.232 - - 46 12 4 0 - 7 0.0833 - 40 0.583 - 41 0.25 - 45 0.0833 - - 55 121 7 0 - 2 0.0248 - 7 0.0496 - 21 0.00826 - 40 0.736 - 41 0.165 - 42 0.00826 - 43 0.00826 - - 57 10 6 0 - 0 0.2 - 7 0.2 - 21 0.1 - 35 0.1 - 40 0.2 - 41 0.2 - - 58 15 3 0 - 29 0.0667 - 40 0.667 - 41 0.267 - - 57 3084 31 15 - 0 0.00908 - 2 0.105 - 3 0.000973 - 4 0.00681 - 7 0.0516 - 8 0.0013 - 9 0.000324 - 12 0.00259 - 13 0.00162 - 14 0.0013 - 15 0.00292 - 19 0.00162 - 21 0.0123 - 22 0.000973 - 26 0.0717 - 29 0.00389 - 30 0.000324 - 31 0.0013 - 32 0.00162 - 33 0.000649 - 34 0.000324 - 35 0.000973 - 37 0.00195 - 40 0.445 - 41 0.243 - 42 0.0211 - 43 0.00259 - 44 0.00195 - 45 0.000649 - 46 0.00227 - 47 0.00227 - - 2 354 24 0 - 0 0.00847 - 2 0.0254 - 4 0.0169 - 7 0.0508 - 12 0.00282 - 13 0.00282 - 14 0.00282 - 15 0.00282 - 19 0.00282 - 21 0.00847 - 26 0.00847 - 29 0.0169 - 31 0.00282 - 32 0.00282 - 35 0.00282 - 37 0.00282 - 40 0.621 - 41 0.169 - 42 0.0282 - 43 0.00565 - 44 0.00282 - 45 0.00565 - 46 0.00282 - 47 0.00282 - - 4 11 2 0 - 2 0.818 - 41 0.182 - - 7 619 28 0 - 0 0.0226 - 2 0.0468 - 3 0.00162 - 4 0.0162 - 7 0.0565 - 8 0.00485 - 9 0.00162 - 12 0.00808 - 13 0.00485 - 14 0.00323 - 15 0.00646 - 19 0.00485 - 21 0.0162 - 22 0.00162 - 26 0.00808 - 29 0.00969 - 30 0.00162 - 31 0.00162 - 32 0.00485 - 33 0.00162 - 35 0.00323 - 37 0.00646 - 40 0.439 - 41 0.288 - 42 0.0242 - 43 0.00646 - 46 0.00646 - 47 0.00323 - - 8 10 3 0 - 0 0.1 - 40 0.7 - 41 0.2 - - 21 90 8 0 - 2 0.111 - 3 0.0111 - 7 0.0778 - 12 0.0111 - 21 0.0111 - 40 0.444 - 41 0.322 - 46 0.0111 - - 24 12 6 0 - 2 0.0833 - 7 0.167 - 22 0.0833 - 40 0.5 - 41 0.0833 - 42 0.0833 - - 30 448 11 0 - 0 0.00223 - 3 0.00223 - 4 0.00446 - 7 0.0067 - 12 0.00223 - 15 0.0067 - 33 0.00223 - 40 0.629 - 41 0.33 - 42 0.0112 - 44 0.00223 - - 31 302 10 0 - 4 0.00331 - 7 0.00993 - 13 0.00331 - 21 0.00331 - 22 0.00331 - 40 0.788 - 41 0.172 - 42 0.00331 - 44 0.00331 - 47 0.00993 - - 41 66 5 0 - 2 0.227 - 7 0.0152 - 40 0.348 - 41 0.379 - 42 0.0303 - - 44 1 1 0 - 43 1 - - 47 644 10 0 - 2 0.354 - 4 0.00155 - 7 0.0652 - 21 0.0326 - 26 0.289 - 37 0.00155 - 41 0.225 - 42 0.0264 - 44 0.00311 - 46 0.00155 - - 49 25 7 0 - 2 0.04 - 7 0.12 - 19 0.04 - 21 0.04 - 40 0.48 - 41 0.24 - 42 0.04 - - 50 54 5 0 - 2 0.204 - 14 0.0185 - 40 0.537 - 41 0.222 - 42 0.0185 - - 55 185 10 0 - 0 0.00541 - 2 0.0378 - 7 0.151 - 8 0.00541 - 26 0.0541 - 40 0.557 - 41 0.168 - 42 0.0108 - 44 0.00541 - 47 0.00541 - - 57 241 14 0 - 0 0.0332 - 2 0.0166 - 4 0.00415 - 7 0.0705 - 15 0.00415 - 21 0.00415 - 26 0.0705 - 31 0.0083 - 32 0.00415 - 34 0.00415 - 40 0.531 - 41 0.207 - 42 0.0373 - 43 0.00415 - - 58 32 12 3 - 2 0.156 - 3 0.0625 - 4 0.156 - 7 0.0938 - 8 0.125 - 14 0.0312 - 15 0.0938 - 26 0.0625 - 30 0.0312 - 39 0.0312 - 40 0.0938 - 41 0.0625 - - 2 3 2 0 - 7 0.333 - 26 0.667 - - 7 15 9 0 - 2 0.0667 - 3 0.133 - 4 0.0667 - 8 0.2 - 14 0.0667 - 15 0.2 - 30 0.0667 - 39 0.0667 - 41 0.133 - - 57 9 3 0 - 2 0.444 - 7 0.222 - 40 0.333 - - 62 3093 28 4 - 0 0.0197 - 2 0.0236 - 3 0.000323 - 4 0.00162 - 7 0.0259 - 8 0.000647 - 12 0.00711 - 15 0.000323 - 19 0.00259 - 21 0.00323 - 22 0.000323 - 26 0.0055 - 28 0.000323 - 29 0.00259 - 30 0.000647 - 31 0.00129 - 32 0.00097 - 33 0.00323 - 34 0.00162 - 37 0.00129 - 40 0.63 - 41 0.239 - 42 0.0188 - 43 0.00194 - 44 0.00097 - 45 0.00162 - 46 0.00226 - 47 0.00259 - - 26 148 11 0 - 0 0.0135 - 2 0.0135 - 7 0.0338 - 15 0.00676 - 26 0.00676 - 29 0.00676 - 33 0.00676 - 40 0.635 - 41 0.264 - 46 0.00676 - 47 0.00676 - - 41 1 1 0 - 45 1 - - 45 22 3 0 - 40 0.682 - 41 0.227 - 46 0.0909 - - 58 1 1 0 - 12 1 - - 64 449 14 1 - 0 0.0245 - 2 0.0134 - 7 0.0245 - 12 0.00891 - 21 0.00223 - 26 0.00223 - 32 0.00223 - 34 0.00223 - 40 0.695 - 41 0.192 - 42 0.0223 - 43 0.00223 - 44 0.00445 - 46 0.00445 - - 45 2 2 0 - 40 0.5 - 46 0.5 - - 65 2 2 0 - 40 0.5 - 46 0.5 - - 67 1 1 0 - 46 1 - - 68 17 2 0 - 40 0.765 - 41 0.235 - - 69 14 6 0 - 0 0.0714 - 2 0.0714 - 37 0.0714 - 40 0.571 - 41 0.143 - 42 0.0714 - - 72 5 2 0 - 0 0.6 - 29 0.4 - - 74 4 3 0 - 40 0.25 - 46 0.25 - 47 0.5 - -58 7315 39 31 - 0 0.063 - 1 0.000547 - 2 0.0418 - 3 0.00465 - 4 0.0407 - 5 0.000957 - 7 0.0861 - 8 0.0161 - 9 0.000684 - 10 0.00109 - 12 0.0257 - 13 0.0245 - 14 0.0164 - 15 0.0215 - 16 0.000547 - 19 0.0178 - 20 0.0026 - 21 0.0178 - 22 0.000273 - 23 0.000273 - 26 0.0161 - 28 0.00602 - 29 0.0187 - 30 0.00574 - 31 0.00437 - 32 0.00916 - 33 0.0145 - 34 0.00547 - 35 0.00273 - 37 0.00191 - 39 0.000547 - 40 0.0711 - 41 0.194 - 42 0.076 - 43 0.139 - 44 0.00041 - 45 0.0428 - 46 0.00342 - 47 0.00547 - - 2 85 22 4 - 0 0.0235 - 3 0.0353 - 4 0.0824 - 5 0.0118 - 7 0.0941 - 8 0.0353 - 9 0.0118 - 12 0.0235 - 13 0.0706 - 14 0.0471 - 15 0.0118 - 19 0.0353 - 21 0.341 - 22 0.0235 - 26 0.0118 - 29 0.0118 - 30 0.0118 - 31 0.0118 - 32 0.0118 - 33 0.0235 - 41 0.0588 - 45 0.0118 - - 41 20 9 0 - 0 0.05 - 3 0.05 - 7 0.1 - 13 0.1 - 15 0.05 - 21 0.45 - 22 0.1 - 33 0.05 - 45 0.05 - - 42 31 12 0 - 3 0.0323 - 4 0.161 - 5 0.0323 - 7 0.129 - 8 0.0323 - 12 0.0323 - 13 0.0645 - 14 0.0645 - 19 0.0968 - 21 0.29 - 26 0.0323 - 32 0.0323 - - 44 22 13 0 - 0 0.0455 - 4 0.0909 - 7 0.0455 - 8 0.0455 - 12 0.0455 - 13 0.0909 - 14 0.0909 - 21 0.182 - 29 0.0455 - 30 0.0455 - 31 0.0455 - 33 0.0455 - 41 0.182 - - 47 12 6 0 - 3 0.0833 - 7 0.0833 - 8 0.0833 - 9 0.0833 - 21 0.583 - 41 0.0833 - - 4 1 1 0 - 44 1 - - 7 5 4 0 - 9 0.2 - 21 0.2 - 26 0.2 - 43 0.4 - - 8 13 3 0 - 40 0.154 - 42 0.154 - 43 0.692 - - 13 17 3 0 - 41 0.0588 - 42 0.0588 - 43 0.882 - - 14 3 1 0 - 43 1 - - 15 30 4 1 - 40 0.233 - 41 0.1 - 43 0.633 - 46 0.0333 - - 2 2 1 0 - 41 1 - - 21 13 9 0 - 4 0.385 - 7 0.0769 - 8 0.0769 - 13 0.0769 - 20 0.0769 - 26 0.0769 - 31 0.0769 - 42 0.0769 - 43 0.0769 - - 28 3 1 0 - 43 1 - - 32 2 1 0 - 42 1 - - 40 16 3 0 - 4 0.0625 - 43 0.875 - 46 0.0625 - - 41 895 30 11 - 0 0.115 - 2 0.067 - 3 0.00447 - 4 0.0983 - 5 0.00335 - 7 0.124 - 8 0.038 - 9 0.00112 - 10 0.00447 - 12 0.0503 - 13 0.0313 - 14 0.0391 - 15 0.0402 - 16 0.00223 - 19 0.0391 - 20 0.0067 - 21 0.0291 - 23 0.00112 - 26 0.019 - 28 0.0145 - 29 0.0223 - 30 0.0145 - 31 0.00447 - 32 0.0134 - 33 0.019 - 34 0.00223 - 35 0.00559 - 37 0.00335 - 45 0.184 - 46 0.00223 - - 2 5 2 0 - 7 0.8 - 21 0.2 - - 15 3 2 0 - 13 0.667 - 14 0.333 - - 48 5 4 0 - 7 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 33 14 0 - 0 0.0606 - 3 0.0303 - 4 0.121 - 7 0.273 - 8 0.182 - 13 0.0303 - 15 0.0303 - 19 0.0303 - 20 0.0606 - 21 0.0303 - 26 0.0303 - 28 0.0303 - 29 0.0606 - 35 0.0303 - - 52 7 6 0 - 2 0.143 - 4 0.143 - 7 0.143 - 15 0.286 - 26 0.143 - 30 0.143 - - 55 24 12 0 - 0 0.125 - 4 0.0417 - 7 0.417 - 13 0.0417 - 14 0.0417 - 30 0.0417 - 31 0.0417 - 32 0.0833 - 34 0.0417 - 35 0.0417 - 45 0.0417 - 46 0.0417 - - 57 83 23 0 - 0 0.0723 - 2 0.0723 - 3 0.012 - 4 0.157 - 7 0.157 - 8 0.0241 - 12 0.0241 - 13 0.0843 - 14 0.012 - 15 0.0361 - 19 0.012 - 20 0.012 - 21 0.0361 - 23 0.012 - 26 0.0602 - 28 0.0241 - 29 0.0723 - 30 0.012 - 32 0.012 - 33 0.0602 - 35 0.012 - 45 0.012 - 46 0.012 - - 62 585 28 0 - 0 0.126 - 2 0.0786 - 3 0.00342 - 4 0.101 - 5 0.00513 - 7 0.0906 - 8 0.0376 - 9 0.00171 - 10 0.00513 - 12 0.0632 - 13 0.0188 - 14 0.0393 - 15 0.041 - 16 0.00342 - 19 0.0479 - 20 0.00342 - 21 0.0291 - 26 0.0103 - 28 0.012 - 29 0.0171 - 30 0.0154 - 31 0.00513 - 32 0.012 - 33 0.0154 - 34 0.00171 - 35 0.00342 - 37 0.00513 - 45 0.207 - - 64 50 15 0 - 0 0.18 - 2 0.06 - 4 0.06 - 7 0.22 - 12 0.06 - 13 0.02 - 14 0.04 - 15 0.04 - 21 0.08 - 26 0.06 - 28 0.04 - 29 0.02 - 32 0.02 - 33 0.04 - 45 0.06 - - 66 71 15 0 - 0 0.0986 - 2 0.0423 - 7 0.0986 - 8 0.0141 - 10 0.0141 - 12 0.0423 - 13 0.0141 - 14 0.0704 - 15 0.0141 - 19 0.0141 - 28 0.0141 - 29 0.0141 - 32 0.0141 - 33 0.0141 - 45 0.521 - - 69 24 11 0 - 2 0.0417 - 4 0.292 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0417 - 15 0.125 - 19 0.167 - 20 0.0417 - 26 0.0417 - 45 0.0417 - - 42 358 24 11 - 0 0.182 - 2 0.0782 - 3 0.00559 - 4 0.0587 - 7 0.168 - 8 0.0196 - 12 0.0587 - 13 0.0279 - 14 0.0168 - 15 0.0251 - 19 0.0363 - 20 0.00838 - 21 0.0279 - 26 0.0503 - 28 0.014 - 29 0.0531 - 30 0.0168 - 31 0.0168 - 32 0.0307 - 33 0.0419 - 34 0.0363 - 35 0.00838 - 37 0.00559 - 45 0.014 - - 21 1 1 0 - 28 1 - - 32 2 1 0 - 4 1 - - 46 2 2 0 - 31 0.5 - 33 0.5 - - 48 14 10 0 - 0 0.143 - 2 0.0714 - 3 0.0714 - 4 0.0714 - 8 0.0714 - 13 0.143 - 14 0.0714 - 26 0.0714 - 30 0.0714 - 34 0.214 - - 49 11 6 0 - 0 0.0909 - 4 0.0909 - 7 0.455 - 12 0.0909 - 26 0.182 - 30 0.0909 - - 55 125 19 0 - 0 0.232 - 2 0.048 - 4 0.032 - 7 0.152 - 12 0.096 - 14 0.008 - 15 0.032 - 19 0.024 - 20 0.008 - 21 0.048 - 26 0.064 - 28 0.008 - 29 0.064 - 30 0.016 - 31 0.024 - 32 0.04 - 33 0.048 - 34 0.04 - 35 0.016 - - 57 68 22 0 - 0 0.206 - 2 0.0441 - 3 0.0147 - 4 0.0735 - 7 0.162 - 8 0.0294 - 12 0.0441 - 13 0.0441 - 14 0.0147 - 15 0.0294 - 19 0.0147 - 20 0.0147 - 21 0.0294 - 26 0.0294 - 28 0.0147 - 29 0.0735 - 30 0.0147 - 31 0.0294 - 32 0.0294 - 34 0.0441 - 37 0.0147 - 45 0.0294 - - 62 59 19 0 - 0 0.0678 - 2 0.169 - 4 0.0339 - 7 0.203 - 8 0.0508 - 12 0.0169 - 13 0.0678 - 14 0.0169 - 15 0.0339 - 19 0.0847 - 21 0.0169 - 26 0.0508 - 28 0.0169 - 29 0.0169 - 30 0.0169 - 32 0.0169 - 33 0.0678 - 34 0.0169 - 45 0.0339 - - 64 40 12 0 - 0 0.225 - 2 0.1 - 4 0.1 - 7 0.125 - 12 0.075 - 19 0.075 - 26 0.05 - 29 0.075 - 32 0.05 - 33 0.075 - 34 0.025 - 35 0.025 - - 67 1 1 0 - 45 1 - - 69 27 14 0 - 0 0.148 - 2 0.111 - 4 0.0741 - 7 0.259 - 8 0.037 - 12 0.037 - 15 0.037 - 20 0.037 - 21 0.037 - 28 0.037 - 29 0.0741 - 32 0.037 - 33 0.037 - 37 0.037 - - 43 1007 28 21 - 0 0.0487 - 1 0.00199 - 2 0.0616 - 3 0.00993 - 4 0.0248 - 7 0.132 - 8 0.0139 - 12 0.0199 - 13 0.0457 - 14 0.0159 - 15 0.0328 - 19 0.00497 - 21 0.0119 - 26 0.0218 - 28 0.00298 - 29 0.0278 - 30 0.000993 - 31 0.00497 - 32 0.00894 - 33 0.0189 - 34 0.00497 - 35 0.00199 - 39 0.000993 - 40 0.167 - 41 0.206 - 42 0.0894 - 45 0.000993 - 47 0.0189 - - 0 2 2 0 - 13 0.5 - 31 0.5 - - 7 2 2 0 - 7 0.5 - 19 0.5 - - 8 9 3 0 - 8 0.111 - 13 0.556 - 14 0.333 - - 13 15 6 0 - 7 0.267 - 13 0.333 - 14 0.2 - 15 0.0667 - 26 0.0667 - 42 0.0667 - - 14 3 3 0 - 8 0.333 - 21 0.333 - 29 0.333 - - 15 19 6 0 - 12 0.105 - 13 0.211 - 14 0.105 - 15 0.474 - 26 0.0526 - 42 0.0526 - - 20 1 1 0 - 8 1 - - 21 1 1 0 - 8 1 - - 28 3 3 0 - 2 0.333 - 4 0.333 - 13 0.333 - - 40 14 7 0 - 2 0.0714 - 7 0.0714 - 13 0.143 - 14 0.0714 - 15 0.429 - 19 0.0714 - 47 0.143 - - 46 20 8 0 - 0 0.05 - 2 0.15 - 8 0.05 - 12 0.1 - 15 0.05 - 40 0.3 - 41 0.2 - 42 0.1 - - 48 29 7 0 - 2 0.0345 - 8 0.138 - 13 0.552 - 14 0.069 - 15 0.0345 - 40 0.069 - 41 0.103 - - 49 6 5 0 - 1 0.167 - 2 0.167 - 28 0.333 - 40 0.167 - 47 0.167 - - 51 4 3 0 - 40 0.25 - 41 0.5 - 47 0.25 - - 52 3 1 0 - 40 1 - - 54 2 2 0 - 8 0.5 - 15 0.5 - - 55 691 24 0 - 0 0.0507 - 2 0.0651 - 3 0.00289 - 4 0.0304 - 7 0.161 - 8 0.00579 - 12 0.013 - 13 0.013 - 14 0.00434 - 15 0.0188 - 21 0.0116 - 26 0.0232 - 28 0.00145 - 29 0.0347 - 30 0.00145 - 31 0.00289 - 32 0.0101 - 33 0.0232 - 34 0.00579 - 35 0.00145 - 40 0.158 - 41 0.236 - 42 0.113 - 47 0.013 - - 57 52 15 0 - 0 0.173 - 2 0.0577 - 4 0.0385 - 7 0.154 - 12 0.115 - 13 0.0192 - 19 0.0385 - 26 0.0192 - 29 0.0192 - 32 0.0192 - 34 0.0192 - 39 0.0192 - 40 0.135 - 41 0.154 - 47 0.0192 - - 62 68 17 0 - 0 0.0147 - 1 0.0147 - 2 0.0441 - 4 0.0147 - 7 0.0441 - 13 0.0147 - 19 0.0147 - 21 0.0147 - 29 0.0147 - 31 0.0147 - 33 0.0147 - 35 0.0147 - 40 0.382 - 41 0.235 - 42 0.0588 - 45 0.0147 - 47 0.0735 - - 64 23 8 0 - 0 0.13 - 2 0.087 - 7 0.087 - 12 0.0435 - 26 0.0435 - 32 0.0435 - 40 0.261 - 41 0.304 - - 69 30 11 0 - 2 0.0667 - 3 0.267 - 7 0.1 - 21 0.0667 - 26 0.0667 - 29 0.0333 - 31 0.0333 - 33 0.0667 - 40 0.133 - 41 0.0667 - 42 0.1 - - 45 37 11 0 - 0 0.135 - 2 0.0811 - 4 0.135 - 7 0.108 - 8 0.027 - 12 0.135 - 14 0.027 - 19 0.216 - 21 0.0541 - 26 0.027 - 37 0.0541 - - 46 23 3 0 - 29 0.0435 - 42 0.087 - 43 0.87 - - 47 2420 38 14 - 0 0.0946 - 1 0.000826 - 2 0.0632 - 3 0.0062 - 4 0.0583 - 5 0.00124 - 7 0.124 - 8 0.0227 - 9 0.000413 - 10 0.00165 - 12 0.0384 - 13 0.0351 - 14 0.024 - 15 0.0322 - 16 0.000826 - 19 0.026 - 20 0.00372 - 21 0.0198 - 23 0.000413 - 26 0.0236 - 28 0.00909 - 29 0.0281 - 30 0.00785 - 31 0.0062 - 32 0.0136 - 33 0.0215 - 34 0.00826 - 35 0.00413 - 37 0.00289 - 39 0.000826 - 40 0.104 - 41 0.108 - 42 0.0409 - 43 0.00165 - 44 0.000413 - 45 0.057 - 46 0.000413 - 47 0.00826 - - 41 842 30 0 - 0 0.122 - 2 0.0713 - 3 0.00356 - 4 0.102 - 5 0.00356 - 7 0.121 - 8 0.0392 - 9 0.00119 - 10 0.00475 - 12 0.0534 - 13 0.0321 - 14 0.0416 - 15 0.0428 - 16 0.00238 - 19 0.0416 - 20 0.00713 - 21 0.0297 - 23 0.00119 - 26 0.019 - 28 0.0154 - 29 0.0238 - 30 0.0143 - 31 0.00475 - 32 0.0143 - 33 0.0202 - 34 0.00238 - 35 0.00594 - 37 0.00356 - 45 0.154 - 46 0.00119 - - 42 357 24 0 - 0 0.182 - 2 0.0784 - 3 0.0056 - 4 0.0588 - 7 0.168 - 8 0.0196 - 12 0.0588 - 13 0.028 - 14 0.0168 - 15 0.0252 - 19 0.0364 - 20 0.0084 - 21 0.028 - 26 0.0504 - 28 0.014 - 29 0.0532 - 30 0.0168 - 31 0.0168 - 32 0.0308 - 33 0.042 - 34 0.0364 - 35 0.0084 - 37 0.0056 - 45 0.0112 - - 43 1006 28 0 - 0 0.0487 - 1 0.00199 - 2 0.0616 - 3 0.00994 - 4 0.0249 - 7 0.131 - 8 0.0139 - 12 0.0199 - 13 0.0457 - 14 0.0159 - 15 0.0328 - 19 0.00497 - 21 0.0119 - 26 0.0219 - 28 0.00298 - 29 0.0278 - 30 0.000994 - 31 0.00497 - 32 0.00895 - 33 0.0189 - 34 0.00497 - 35 0.00199 - 39 0.000994 - 40 0.167 - 41 0.206 - 42 0.0895 - 45 0.000994 - 47 0.0189 - - 45 36 11 0 - 0 0.139 - 2 0.0833 - 4 0.139 - 7 0.111 - 8 0.0278 - 12 0.139 - 14 0.0278 - 19 0.222 - 21 0.0278 - 26 0.0278 - 37 0.0556 - - 48 7 4 0 - 13 0.143 - 32 0.143 - 40 0.571 - 41 0.143 - - 49 9 2 0 - 40 0.889 - 41 0.111 - - 51 2 2 0 - 41 0.5 - 43 0.5 - - 55 28 4 0 - 13 0.0357 - 40 0.857 - 41 0.0714 - 43 0.0357 - - 57 30 7 0 - 0 0.0333 - 4 0.0333 - 7 0.0333 - 40 0.733 - 41 0.1 - 42 0.0333 - 44 0.0333 - - 62 71 12 0 - 0 0.0423 - 4 0.0282 - 12 0.0282 - 28 0.0141 - 33 0.0141 - 39 0.0141 - 40 0.211 - 41 0.507 - 42 0.0704 - 43 0.0282 - 45 0.0282 - 47 0.0141 - - 64 6 3 0 - 40 0.667 - 41 0.167 - 42 0.167 - - 66 15 6 0 - 0 0.2 - 19 0.133 - 40 0.133 - 41 0.4 - 42 0.0667 - 45 0.0667 - - 68 2 1 0 - 40 1 - - 69 6 3 0 - 40 0.333 - 41 0.5 - 42 0.167 - - 48 57 7 4 - 13 0.0175 - 32 0.0175 - 40 0.0702 - 41 0.105 - 42 0.246 - 43 0.509 - 46 0.0351 - - 42 11 2 0 - 32 0.0909 - 42 0.909 - - 44 24 1 0 - 43 1 - - 45 2 1 0 - 46 1 - - 49 7 4 0 - 13 0.143 - 40 0.143 - 41 0.286 - 43 0.429 - - 49 78 10 5 - 0 0.0128 - 4 0.0256 - 7 0.141 - 8 0.0256 - 9 0.0128 - 21 0.0256 - 40 0.103 - 41 0.436 - 42 0.141 - 43 0.0769 - - 2 17 9 0 - 0 0.0588 - 4 0.118 - 7 0.176 - 8 0.118 - 9 0.0588 - 21 0.118 - 40 0.176 - 41 0.118 - 42 0.0588 - - 41 39 4 0 - 7 0.128 - 40 0.0256 - 41 0.744 - 42 0.103 - - 42 8 3 0 - 7 0.125 - 40 0.125 - 42 0.75 - - 44 6 1 0 - 43 1 - - 49 5 2 0 - 40 0.6 - 41 0.4 - - 51 9 4 0 - 40 0.111 - 41 0.222 - 42 0.111 - 43 0.556 - - 52 11 3 0 - 40 0.0909 - 41 0.636 - 43 0.273 - - 54 3 2 0 - 42 0.333 - 43 0.667 - - 55 884 7 8 - 7 0.00226 - 13 0.00113 - 40 0.0305 - 41 0.0294 - 42 0.141 - 43 0.783 - 46 0.0124 - - 2 18 4 0 - 40 0.167 - 41 0.167 - 42 0.444 - 43 0.222 - - 21 6 4 0 - 40 0.333 - 41 0.333 - 42 0.167 - 43 0.167 - - 41 106 6 0 - 7 0.00943 - 13 0.00943 - 40 0.0566 - 41 0.0472 - 42 0.0377 - 43 0.84 - - 42 115 4 0 - 40 0.0696 - 41 0.0261 - 42 0.878 - 43 0.0261 - - 44 585 2 0 - 41 0.00342 - 43 0.997 - - 45 13 2 0 - 41 0.154 - 46 0.846 - - 47 3 3 0 - 7 0.333 - 40 0.333 - 43 0.333 - - 49 28 4 0 - 40 0.25 - 41 0.25 - 42 0.357 - 43 0.143 - - 57 236 10 8 - 0 0.00424 - 4 0.00424 - 7 0.00424 - 19 0.00424 - 30 0.00847 - 40 0.0932 - 41 0.364 - 42 0.292 - 43 0.22 - 44 0.00424 - - 2 7 4 0 - 19 0.143 - 30 0.286 - 40 0.429 - 42 0.143 - - 21 2 1 0 - 40 1 - - 41 82 4 0 - 40 0.0488 - 41 0.878 - 42 0.0366 - 43 0.0366 - - 42 68 3 0 - 7 0.0147 - 40 0.0588 - 42 0.926 - - 43 1 1 0 - 0 1 - - 44 49 1 0 - 43 1 - - 47 9 4 0 - 4 0.111 - 40 0.222 - 41 0.556 - 44 0.111 - - 49 11 3 0 - 40 0.455 - 41 0.455 - 42 0.0909 - - 58 4 3 0 - 8 0.25 - 41 0.25 - 43 0.5 - - 62 789 13 7 - 0 0.0038 - 4 0.00253 - 12 0.00253 - 28 0.00127 - 33 0.00127 - 39 0.00127 - 40 0.0203 - 41 0.787 - 42 0.0811 - 43 0.0887 - 45 0.00253 - 46 0.00634 - 47 0.00127 - - 2 13 4 0 - 40 0.0769 - 41 0.0769 - 42 0.615 - 43 0.231 - - 41 507 6 0 - 0 0.00197 - 39 0.00197 - 40 0.00789 - 41 0.98 - 42 0.00592 - 43 0.00197 - - 42 62 5 0 - 4 0.0161 - 40 0.129 - 42 0.806 - 43 0.0323 - 47 0.0161 - - 44 64 2 0 - 40 0.0156 - 43 0.984 - - 45 6 2 0 - 41 0.167 - 46 0.833 - - 46 66 3 0 - 4 0.0152 - 41 0.97 - 45 0.0152 - - 47 69 9 0 - 0 0.029 - 12 0.029 - 28 0.0145 - 33 0.0145 - 40 0.0145 - 41 0.841 - 42 0.029 - 43 0.0145 - 45 0.0145 - - 64 119 4 3 - 40 0.0336 - 41 0.429 - 42 0.345 - 43 0.193 - - 41 51 3 0 - 40 0.0392 - 41 0.941 - 42 0.0196 - - 42 38 2 0 - 40 0.0263 - 42 0.974 - - 44 23 1 0 - 43 1 - - 66 86 6 1 - 0 0.0349 - 19 0.0233 - 40 0.0233 - 41 0.895 - 42 0.0116 - 45 0.0116 - - 47 12 4 0 - 0 0.0833 - 19 0.167 - 40 0.167 - 41 0.583 - - 67 7 4 0 - 40 0.286 - 42 0.143 - 43 0.286 - 46 0.286 - - 68 4 2 0 - 40 0.5 - 42 0.5 - - 69 87 4 3 - 40 0.023 - 41 0.31 - 42 0.322 - 43 0.345 - - 42 15 1 0 - 42 1 - - 44 25 1 0 - 43 1 - - 55 25 2 0 - 41 0.96 - 42 0.04 - -59 5284 34 6 - 0 0.00151 - 1 0.00114 - 2 0.0151 - 3 0.0178 - 4 0.211 - 7 0.239 - 8 0.0503 - 9 0.00492 - 10 0.00265 - 12 0.000379 - 13 0.0492 - 14 0.0462 - 15 0.0235 - 17 0.00114 - 19 0.000757 - 20 0.0526 - 21 0.0488 - 22 0.00454 - 24 0.00114 - 26 0.0462 - 30 0.0163 - 31 0.00189 - 35 0.00568 - 37 0.00492 - 38 0.000757 - 39 0.00871 - 40 0.0765 - 41 0.05 - 42 0.00568 - 43 0.000757 - 44 0.000379 - 45 0.00454 - 46 0.0053 - 47 0.000379 - - 7 65 7 0 - 2 0.0615 - 8 0.0154 - 21 0.0154 - 40 0.523 - 41 0.308 - 42 0.0615 - 43 0.0154 - - 8 6 3 0 - 3 0.167 - 7 0.667 - 14 0.167 - - 21 84 9 0 - 0 0.0119 - 2 0.143 - 7 0.0833 - 8 0.0119 - 26 0.0119 - 40 0.464 - 41 0.214 - 42 0.0476 - 47 0.0119 - - 22 1 1 0 - 24 1 - - 24 2481 33 0 - 0 0.00121 - 1 0.00121 - 2 0.00967 - 3 0.0185 - 4 0.225 - 7 0.25 - 8 0.0528 - 9 0.00524 - 10 0.00282 - 12 0.000403 - 13 0.052 - 14 0.0484 - 15 0.025 - 17 0.00121 - 19 0.000806 - 20 0.056 - 21 0.0512 - 22 0.00484 - 24 0.000806 - 26 0.0488 - 30 0.0173 - 31 0.00202 - 35 0.00605 - 37 0.00524 - 38 0.000806 - 39 0.00927 - 40 0.0516 - 41 0.0379 - 42 0.00282 - 43 0.000403 - 44 0.000403 - 45 0.00484 - 46 0.00564 - - 47 2642 34 5 - 0 0.00151 - 1 0.00114 - 2 0.0151 - 3 0.0178 - 4 0.211 - 7 0.239 - 8 0.0503 - 9 0.00492 - 10 0.00265 - 12 0.000379 - 13 0.0492 - 14 0.0462 - 15 0.0235 - 17 0.00114 - 19 0.000757 - 20 0.0526 - 21 0.0488 - 22 0.00454 - 24 0.00114 - 26 0.0462 - 30 0.0163 - 31 0.00189 - 35 0.00568 - 37 0.00492 - 38 0.000757 - 39 0.00871 - 40 0.0765 - 41 0.05 - 42 0.00568 - 43 0.000757 - 44 0.000379 - 45 0.00454 - 46 0.0053 - 47 0.000379 - - 7 65 7 0 - 2 0.0615 - 8 0.0154 - 21 0.0154 - 40 0.523 - 41 0.308 - 42 0.0615 - 43 0.0154 - - 8 6 3 0 - 3 0.167 - 7 0.667 - 14 0.167 - - 21 84 9 0 - 0 0.0119 - 2 0.143 - 7 0.0833 - 8 0.0119 - 26 0.0119 - 40 0.464 - 41 0.214 - 42 0.0476 - 47 0.0119 - - 22 1 1 0 - 24 1 - - 24 2481 33 0 - 0 0.00121 - 1 0.00121 - 2 0.00967 - 3 0.0185 - 4 0.225 - 7 0.25 - 8 0.0528 - 9 0.00524 - 10 0.00282 - 12 0.000403 - 13 0.052 - 14 0.0484 - 15 0.025 - 17 0.00121 - 19 0.000806 - 20 0.056 - 21 0.0512 - 22 0.00484 - 24 0.000806 - 26 0.0488 - 30 0.0173 - 31 0.00202 - 35 0.00605 - 37 0.00524 - 38 0.000806 - 39 0.00927 - 40 0.0516 - 41 0.0379 - 42 0.00282 - 43 0.000403 - 44 0.000403 - 45 0.00484 - 46 0.00564 - -60 29066 33 16 - 0 0.00378 - 2 0.00932 - 3 0.35 - 4 0.0253 - 6 6.88e-05 - 7 0.139 - 8 0.0319 - 9 0.00368 - 12 0.00117 - 13 0.114 - 14 0.0974 - 15 0.0103 - 16 0.000826 - 19 0.000482 - 20 0.00131 - 21 0.0032 - 22 0.000344 - 25 6.88e-05 - 26 0.0221 - 29 0.00131 - 30 0.00124 - 31 0.00365 - 34 0.000344 - 35 0.000482 - 37 6.88e-05 - 40 0.072 - 41 0.0853 - 42 0.00523 - 43 0.012 - 44 0.0031 - 45 0.000344 - 46 0.000172 - 47 0.000482 - - 2 37 4 0 - 3 0.108 - 9 0.73 - 13 0.027 - 21 0.135 - - 3 13760 32 11 - 0 0.00363 - 2 0.00996 - 3 0.356 - 4 0.0206 - 6 7.27e-05 - 7 0.136 - 8 0.0312 - 9 0.00203 - 12 0.00124 - 13 0.115 - 14 0.0988 - 15 0.0102 - 16 0.000872 - 19 0.000436 - 20 7.27e-05 - 21 0.0024 - 22 0.000145 - 25 7.27e-05 - 26 0.0225 - 29 0.00109 - 30 0.00124 - 31 0.00356 - 34 0.000363 - 37 7.27e-05 - 40 0.0715 - 41 0.0883 - 42 0.00516 - 43 0.0126 - 44 0.00327 - 45 0.000363 - 46 7.27e-05 - 47 0.000509 - - 2 62 12 0 - 3 0.0161 - 4 0.0161 - 7 0.113 - 8 0.0323 - 13 0.0323 - 14 0.548 - 21 0.0161 - 31 0.0161 - 34 0.0161 - 40 0.0806 - 41 0.0968 - 45 0.0161 - - 3 6824 31 0 - 0 0.00659 - 2 0.0182 - 3 0.000293 - 4 0.0262 - 6 0.000147 - 7 0.257 - 8 0.0478 - 9 0.00249 - 12 0.00205 - 13 0.119 - 14 0.0928 - 15 0.0147 - 16 0.000879 - 19 0.000879 - 20 0.000147 - 21 0.0041 - 22 0.000147 - 25 0.000147 - 26 0.0441 - 29 0.00147 - 30 0.0022 - 31 0.00659 - 34 0.000586 - 40 0.137 - 41 0.174 - 42 0.00996 - 43 0.0246 - 44 0.00601 - 45 0.00044 - 46 0.000147 - 47 0.00103 - - 4 70 7 0 - 7 0.0286 - 8 0.129 - 13 0.229 - 14 0.486 - 15 0.0857 - 16 0.0286 - 41 0.0143 - - 7 732 17 0 - 0 0.00273 - 2 0.00137 - 3 0.00137 - 4 0.0041 - 7 0.0232 - 8 0.056 - 9 0.00137 - 12 0.00137 - 13 0.493 - 14 0.373 - 15 0.0246 - 29 0.00273 - 31 0.00137 - 37 0.00137 - 40 0.0082 - 41 0.00273 - 44 0.00137 - - 8 27 4 0 - 7 0.037 - 13 0.37 - 14 0.556 - 15 0.037 - - 10 120 8 0 - 7 0.0333 - 8 0.175 - 9 0.0167 - 13 0.233 - 14 0.483 - 15 0.0333 - 30 0.0167 - 40 0.00833 - - 21 513 14 0 - 0 0.00195 - 2 0.00195 - 3 0.00195 - 7 0.0253 - 8 0.0507 - 9 0.00585 - 13 0.567 - 14 0.312 - 15 0.0156 - 16 0.0039 - 29 0.0039 - 31 0.00195 - 40 0.00585 - 41 0.00195 - - 26 226 16 0 - 0 0.00885 - 2 0.00442 - 3 0.00442 - 4 0.00885 - 7 0.0221 - 8 0.0133 - 9 0.00442 - 13 0.23 - 14 0.664 - 15 0.00885 - 16 0.00885 - 21 0.00442 - 22 0.00442 - 40 0.00442 - 41 0.00442 - 42 0.00442 - - 38 5 4 0 - 9 0.2 - 40 0.4 - 41 0.2 - 44 0.2 - - 39 5169 20 0 - 2 0.00193 - 3 0.946 - 4 0.0192 - 7 0.0135 - 8 0.000193 - 9 0.00058 - 12 0.000387 - 13 0.00271 - 14 0.000387 - 15 0.000193 - 21 0.00058 - 26 0.00174 - 29 0.000193 - 31 0.000193 - 40 0.00658 - 41 0.00368 - 42 0.000387 - 43 0.00116 - 44 0.000193 - 45 0.000193 - - 41 1 1 0 - 44 1 - - 4 42 8 0 - 0 0.0238 - 3 0.0238 - 4 0.0476 - 7 0.0952 - 13 0.738 - 15 0.0238 - 35 0.0238 - 42 0.0238 - - 7 10 6 0 - 3 0.4 - 4 0.2 - 8 0.1 - 13 0.1 - 20 0.1 - 40 0.1 - - 8 58 11 2 - 4 0.069 - 7 0.276 - 8 0.0862 - 13 0.103 - 14 0.328 - 15 0.0345 - 20 0.0345 - 29 0.0172 - 31 0.0172 - 35 0.0172 - 40 0.0172 - - 4 23 5 0 - 7 0.348 - 8 0.0435 - 13 0.0435 - 14 0.522 - 29 0.0435 - - 7 12 8 0 - 4 0.167 - 7 0.0833 - 8 0.167 - 13 0.167 - 14 0.167 - 15 0.0833 - 20 0.0833 - 31 0.0833 - - 9 98 14 3 - 0 0.0102 - 2 0.0102 - 4 0.0204 - 7 0.194 - 8 0.0714 - 13 0.112 - 14 0.102 - 15 0.0204 - 19 0.0102 - 26 0.0204 - 29 0.0102 - 40 0.337 - 41 0.0612 - 42 0.0204 - - 2 78 13 0 - 0 0.0128 - 2 0.0128 - 4 0.0256 - 7 0.244 - 8 0.0513 - 13 0.0256 - 14 0.0897 - 19 0.0128 - 26 0.0256 - 29 0.0128 - 40 0.41 - 41 0.0641 - 42 0.0128 - - 3 13 7 0 - 8 0.154 - 13 0.308 - 14 0.154 - 15 0.154 - 40 0.0769 - 41 0.0769 - 42 0.0769 - - 13 4 2 0 - 13 0.75 - 14 0.25 - - 13 248 19 6 - 0 0.00403 - 2 0.0605 - 3 0.153 - 4 0.0282 - 7 0.343 - 8 0.0242 - 9 0.0282 - 13 0.0605 - 14 0.0605 - 20 0.0161 - 21 0.00806 - 26 0.0605 - 31 0.00403 - 35 0.00806 - 40 0.0927 - 41 0.0323 - 42 0.00806 - 43 0.00403 - 46 0.00403 - - 3 165 15 0 - 2 0.0667 - 3 0.218 - 4 0.0242 - 7 0.255 - 8 0.0121 - 9 0.0242 - 13 0.0848 - 14 0.0303 - 21 0.00606 - 26 0.0788 - 31 0.00606 - 40 0.127 - 41 0.0485 - 42 0.0121 - 43 0.00606 - - 4 33 8 0 - 2 0.0606 - 3 0.0606 - 7 0.394 - 8 0.121 - 9 0.0303 - 14 0.273 - 21 0.0303 - 46 0.0303 - - 7 24 8 0 - 0 0.0417 - 4 0.0833 - 7 0.5 - 13 0.0417 - 14 0.0417 - 20 0.125 - 35 0.0833 - 40 0.0833 - - 8 4 2 0 - 7 0.75 - 9 0.25 - - 21 12 3 0 - 4 0.0833 - 7 0.833 - 20 0.0833 - - 47 5 4 0 - 2 0.2 - 7 0.2 - 9 0.2 - 26 0.4 - - 14 83 17 4 - 0 0.012 - 3 0.012 - 4 0.205 - 7 0.229 - 8 0.0843 - 9 0.0723 - 13 0.0361 - 14 0.0602 - 15 0.0602 - 20 0.0482 - 21 0.0602 - 22 0.0361 - 29 0.012 - 31 0.012 - 35 0.0361 - 41 0.012 - 46 0.012 - - 3 59 14 0 - 3 0.0169 - 4 0.288 - 7 0.0339 - 8 0.119 - 9 0.0847 - 13 0.0508 - 14 0.0847 - 15 0.0678 - 20 0.0508 - 21 0.0847 - 22 0.0339 - 29 0.0169 - 31 0.0169 - 35 0.0508 - - 7 16 5 0 - 0 0.0625 - 7 0.75 - 9 0.0625 - 15 0.0625 - 46 0.0625 - - 8 3 2 0 - 7 0.667 - 22 0.333 - - 21 4 2 0 - 7 0.75 - 41 0.25 - - 17 36 2 0 - 4 0.833 - 20 0.167 - - 21 56 10 3 - 0 0.0179 - 4 0.304 - 7 0.0893 - 8 0.143 - 14 0.125 - 20 0.0179 - 21 0.0536 - 31 0.0179 - 40 0.0714 - 41 0.161 - - 2 32 8 0 - 0 0.0312 - 4 0.0625 - 7 0.125 - 8 0.125 - 14 0.219 - 21 0.0312 - 40 0.125 - 41 0.281 - - 7 12 5 0 - 4 0.417 - 7 0.0833 - 8 0.333 - 20 0.0833 - 31 0.0833 - - 21 11 2 0 - 4 0.818 - 21 0.182 - - 22 6 6 0 - 8 0.167 - 9 0.167 - 13 0.167 - 29 0.167 - 30 0.167 - 40 0.167 - - 23 1 1 0 - 21 1 - - 26 12 1 0 - 3 1 - - 28 2 1 0 - 4 1 - - 39 5169 1 0 - 3 1 - - 47 9444 33 13 - 0 0.00582 - 2 0.0125 - 3 0.00498 - 4 0.0389 - 6 0.000106 - 7 0.213 - 8 0.049 - 9 0.00402 - 12 0.0018 - 13 0.175 - 14 0.15 - 15 0.0159 - 16 0.00127 - 19 0.000741 - 20 0.00201 - 21 0.00466 - 22 0.000529 - 25 0.000106 - 26 0.0335 - 29 0.00201 - 30 0.00191 - 31 0.00561 - 34 0.000529 - 35 0.000741 - 37 0.000106 - 40 0.111 - 41 0.131 - 42 0.00805 - 43 0.0185 - 44 0.00476 - 45 0.000529 - 46 0.000212 - 47 0.000741 - - 3 8844 32 0 - 0 0.00565 - 2 0.0131 - 3 0.000905 - 4 0.0321 - 6 0.000113 - 7 0.212 - 8 0.0485 - 9 0.00317 - 12 0.00192 - 13 0.179 - 14 0.154 - 15 0.0158 - 16 0.00136 - 19 0.000678 - 20 0.000113 - 21 0.00373 - 22 0.000226 - 25 0.000113 - 26 0.0351 - 29 0.0017 - 30 0.00192 - 31 0.00554 - 34 0.000565 - 37 0.000113 - 40 0.111 - 41 0.137 - 42 0.00803 - 43 0.0197 - 44 0.00509 - 45 0.000565 - 46 0.000113 - 47 0.000791 - - 4 41 7 0 - 0 0.0244 - 4 0.0488 - 7 0.0976 - 13 0.756 - 15 0.0244 - 35 0.0244 - 42 0.0244 - - 7 3 3 0 - 4 0.333 - 20 0.333 - 40 0.333 - - 8 58 11 0 - 4 0.069 - 7 0.276 - 8 0.0862 - 13 0.103 - 14 0.328 - 15 0.0345 - 20 0.0345 - 29 0.0172 - 31 0.0172 - 35 0.0172 - 40 0.0172 - - 9 98 14 0 - 0 0.0102 - 2 0.0102 - 4 0.0204 - 7 0.194 - 8 0.0714 - 13 0.112 - 14 0.102 - 15 0.0204 - 19 0.0102 - 26 0.0204 - 29 0.0102 - 40 0.337 - 41 0.0612 - 42 0.0204 - - 13 211 19 0 - 0 0.00474 - 2 0.00474 - 3 0.175 - 4 0.0332 - 7 0.37 - 8 0.0284 - 9 0.0142 - 13 0.0711 - 14 0.0711 - 20 0.019 - 21 0.00948 - 26 0.019 - 31 0.00474 - 35 0.00948 - 40 0.109 - 41 0.0379 - 42 0.00948 - 43 0.00474 - 46 0.00474 - - 14 82 16 0 - 0 0.0122 - 3 0.0122 - 4 0.207 - 7 0.232 - 8 0.0854 - 9 0.0732 - 13 0.0366 - 14 0.061 - 15 0.061 - 20 0.0488 - 21 0.061 - 22 0.0366 - 29 0.0122 - 31 0.0122 - 35 0.0366 - 41 0.0122 - - 17 36 2 0 - 4 0.833 - 20 0.167 - - 21 56 10 0 - 0 0.0179 - 4 0.304 - 7 0.0893 - 8 0.143 - 14 0.125 - 20 0.0179 - 21 0.0536 - 31 0.0179 - 40 0.0714 - 41 0.161 - - 22 6 6 0 - 8 0.167 - 9 0.167 - 13 0.167 - 29 0.167 - 30 0.167 - 40 0.167 - - 23 1 1 0 - 21 1 - - 26 1 1 0 - 3 1 - - 28 2 1 0 - 4 1 - -61 113 10 4 - 0 0.0177 - 2 0.0265 - 7 0.133 - 21 0.00885 - 29 0.0177 - 30 0.00885 - 33 0.0177 - 40 0.372 - 41 0.327 - 42 0.0708 - - 2 1 1 0 - 21 1 - - 47 47 7 0 - 0 0.0213 - 2 0.0213 - 29 0.0213 - 33 0.0213 - 40 0.447 - 41 0.383 - 42 0.0851 - - 49 14 4 0 - 7 0.786 - 30 0.0714 - 41 0.0714 - 42 0.0714 - - 57 19 3 0 - 40 0.579 - 41 0.316 - 42 0.105 - -62 239664 43 23 - 0 0.00769 - 1 8.35e-06 - 2 0.0246 - 3 0.000417 - 4 0.00451 - 5 0.000255 - 6 8.35e-06 - 7 0.0107 - 8 0.00105 - 9 7.09e-05 - 10 7.09e-05 - 11 8.35e-06 - 12 0.00318 - 13 0.00107 - 14 0.00113 - 15 0.00279 - 16 2.5e-05 - 17 2.09e-05 - 19 0.00431 - 20 0.000559 - 21 0.00236 - 22 9.6e-05 - 23 2.09e-05 - 26 0.00115 - 27 1.25e-05 - 28 0.000221 - 29 0.0016 - 30 0.000421 - 31 0.000184 - 32 0.00053 - 33 0.0016 - 34 0.0002 - 35 3.34e-05 - 37 0.000526 - 39 3.34e-05 - 40 0.438 - 41 0.154 - 42 0.0193 - 43 0.00174 - 44 0.000538 - 45 0.000726 - 46 0.0115 - 47 0.303 - - 0 1 1 0 - 21 1 - - 2 2635 38 8 - 0 0.00835 - 1 0.00038 - 2 0.00038 - 3 0.022 - 4 0.25 - 5 0.0121 - 7 0.049 - 8 0.0509 - 9 0.0038 - 10 0.00607 - 12 0.00417 - 13 0.055 - 14 0.0687 - 15 0.12 - 16 0.00152 - 17 0.00114 - 19 0.205 - 20 0.0364 - 21 0.0509 - 22 0.00114 - 23 0.00114 - 26 0.00569 - 27 0.00038 - 28 0.00342 - 29 0.00114 - 30 0.00873 - 31 0.00152 - 32 0.00038 - 33 0.00152 - 34 0.00114 - 35 0.000759 - 37 0.00569 - 39 0.00114 - 41 0.0114 - 42 0.00038 - 43 0.00038 - 44 0.00152 - 45 0.00645 - - 41 1755 33 0 - 0 0.00627 - 2 0.00057 - 3 0.0131 - 4 0.271 - 5 0.0114 - 7 0.0581 - 8 0.0541 - 9 0.00399 - 10 0.00513 - 12 0.00399 - 13 0.045 - 14 0.0638 - 15 0.113 - 16 0.00228 - 17 0.00114 - 19 0.226 - 20 0.0336 - 21 0.049 - 22 0.00114 - 23 0.00114 - 26 0.00285 - 28 0.00228 - 29 0.00057 - 30 0.0108 - 31 0.00171 - 34 0.00057 - 35 0.00057 - 37 0.00741 - 39 0.00114 - 41 0.00342 - 42 0.00057 - 44 0.00057 - 45 0.00399 - - 42 83 20 0 - 0 0.0241 - 1 0.012 - 3 0.0361 - 4 0.229 - 7 0.0602 - 8 0.0361 - 10 0.0241 - 12 0.012 - 13 0.0482 - 14 0.0241 - 15 0.108 - 19 0.157 - 20 0.012 - 21 0.0964 - 26 0.012 - 27 0.012 - 28 0.012 - 35 0.012 - 41 0.0602 - 44 0.012 - - 44 1 1 0 - 43 1 - - 45 16 5 0 - 4 0.188 - 13 0.125 - 14 0.0625 - 19 0.562 - 21 0.0625 - - 46 38 11 0 - 4 0.158 - 7 0.0263 - 13 0.0526 - 14 0.0526 - 15 0.0789 - 19 0.316 - 20 0.0526 - 21 0.0526 - 22 0.0263 - 37 0.0263 - 45 0.158 - - 58 43 14 0 - 3 0.0465 - 4 0.256 - 5 0.0465 - 7 0.0233 - 8 0.0698 - 12 0.0233 - 13 0.0698 - 14 0.093 - 15 0.0465 - 19 0.186 - 20 0.0698 - 21 0.0233 - 28 0.0233 - 45 0.0233 - - 62 696 30 0 - 0 0.0129 - 3 0.0388 - 4 0.208 - 5 0.0144 - 7 0.0287 - 8 0.0474 - 9 0.00431 - 10 0.00718 - 12 0.00287 - 13 0.079 - 14 0.0862 - 15 0.149 - 17 0.00144 - 19 0.147 - 20 0.0445 - 21 0.0517 - 23 0.00144 - 26 0.0129 - 28 0.00431 - 29 0.00287 - 30 0.00575 - 31 0.00144 - 32 0.00144 - 33 0.00575 - 34 0.00287 - 37 0.00144 - 39 0.00144 - 41 0.0273 - 44 0.00287 - 45 0.00431 - - 69 2 1 0 - 3 1 - - 7 42 8 1 - 3 0.0238 - 4 0.286 - 5 0.0238 - 7 0.0238 - 13 0.0476 - 14 0.167 - 15 0.0476 - 19 0.381 - - 62 4 3 0 - 3 0.25 - 4 0.25 - 14 0.5 - - 21 32 13 1 - 3 0.0312 - 4 0.156 - 7 0.0312 - 8 0.0312 - 9 0.0312 - 15 0.0625 - 19 0.312 - 20 0.0625 - 21 0.0938 - 26 0.0625 - 28 0.0312 - 37 0.0625 - 41 0.0312 - - 2 7 5 0 - 4 0.429 - 15 0.143 - 19 0.143 - 21 0.143 - 37 0.143 - - 40 35953 5 2 - 40 2.78e-05 - 43 0.00337 - 45 0.000278 - 46 0.06 - 47 0.936 - - 6 1 1 0 - 43 1 - - 62 2516 4 0 - 43 0.00556 - 45 0.000795 - 46 0.0823 - 47 0.911 - - 41 2397 27 8 - 0 0.00167 - 2 0.736 - 3 0.00292 - 4 0.0217 - 5 0.00375 - 6 0.000417 - 7 0.0321 - 8 0.000834 - 9 0.000417 - 12 0.000417 - 13 0.00709 - 14 0.00501 - 15 0.0375 - 19 0.0209 - 20 0.00167 - 21 0.0196 - 23 0.000417 - 26 0.00125 - 27 0.000417 - 28 0.00125 - 29 0.00125 - 30 0.00626 - 33 0.00292 - 34 0.000834 - 45 0.00501 - 46 0.0868 - 47 0.00209 - - 2 26 8 0 - 3 0.0385 - 4 0.0385 - 7 0.615 - 9 0.0385 - 19 0.0769 - 21 0.115 - 27 0.0385 - 30 0.0385 - - 6 1 1 0 - 26 1 - - 21 1 1 0 - 45 1 - - 49 4 3 0 - 2 0.25 - 7 0.5 - 21 0.25 - - 55 8 5 0 - 7 0.25 - 15 0.125 - 21 0.125 - 30 0.125 - 46 0.375 - - 58 7 3 0 - 2 0.143 - 14 0.143 - 45 0.714 - - 62 2139 22 0 - 2 0.813 - 3 0.00234 - 4 0.0229 - 5 0.00421 - 6 0.000468 - 7 0.022 - 8 0.000935 - 13 0.00748 - 14 0.00421 - 15 0.0411 - 19 0.0206 - 20 0.0014 - 21 0.0173 - 23 0.000468 - 26 0.000935 - 28 0.0014 - 29 0.000468 - 30 0.00468 - 33 0.000935 - 34 0.000468 - 45 0.00234 - 46 0.0299 - - 69 206 19 0 - 0 0.0194 - 2 0.0971 - 3 0.00485 - 4 0.00971 - 7 0.0388 - 12 0.00485 - 13 0.00485 - 14 0.00971 - 15 0.00485 - 19 0.0194 - 20 0.00485 - 21 0.0243 - 29 0.00971 - 30 0.0146 - 33 0.0243 - 34 0.00485 - 45 0.00485 - 46 0.675 - 47 0.0243 - - 42 977 35 6 - 0 0.00102 - 1 0.00102 - 2 0.088 - 3 0.0143 - 4 0.148 - 5 0.00614 - 7 0.0645 - 8 0.0287 - 9 0.00409 - 10 0.00102 - 11 0.00205 - 13 0.0409 - 14 0.0409 - 15 0.1 - 16 0.00205 - 17 0.00102 - 19 0.141 - 20 0.0194 - 21 0.0522 - 23 0.00102 - 26 0.00512 - 27 0.00102 - 28 0.00921 - 30 0.00614 - 31 0.00102 - 34 0.00205 - 35 0.00205 - 37 0.00512 - 39 0.00205 - 40 0.0747 - 41 0.00102 - 42 0.00205 - 45 0.0491 - 46 0.00409 - 47 0.0768 - - 42 2 1 0 - 45 1 - - 46 6 1 0 - 47 1 - - 58 4 3 0 - 7 0.25 - 21 0.25 - 45 0.5 - - 62 815 34 0 - 0 0.00123 - 1 0.00123 - 2 0.103 - 3 0.0172 - 4 0.178 - 5 0.00736 - 7 0.0736 - 8 0.0331 - 9 0.00491 - 10 0.00123 - 11 0.00245 - 13 0.0479 - 14 0.0491 - 15 0.119 - 16 0.00245 - 17 0.00123 - 19 0.168 - 20 0.0233 - 21 0.0577 - 23 0.00123 - 26 0.00613 - 27 0.00123 - 28 0.011 - 30 0.00736 - 31 0.00123 - 34 0.00245 - 35 0.00245 - 37 0.00491 - 39 0.00123 - 40 0.00859 - 42 0.00245 - 45 0.0528 - 46 0.00245 - 47 0.00245 - - 66 3 3 0 - 2 0.333 - 8 0.333 - 40 0.333 - - 69 144 13 0 - 2 0.00694 - 7 0.0139 - 13 0.00694 - 15 0.00694 - 19 0.00694 - 21 0.0208 - 37 0.00694 - 39 0.00694 - 40 0.444 - 41 0.00694 - 45 0.00694 - 46 0.0139 - 47 0.451 - - 43 125 4 3 - 20 0.008 - 40 0.032 - 42 0.008 - 47 0.952 - - 2 1 1 0 - 20 1 - - 40 115 2 0 - 42 0.0087 - 47 0.991 - - 69 4 1 0 - 40 1 - - 45 82 15 5 - 0 0.0244 - 2 0.22 - 4 0.134 - 5 0.0122 - 7 0.11 - 8 0.0122 - 13 0.0244 - 14 0.0122 - 15 0.0244 - 19 0.146 - 20 0.0366 - 21 0.0732 - 28 0.0366 - 37 0.0122 - 47 0.122 - - 2 15 7 0 - 0 0.0667 - 4 0.4 - 5 0.0667 - 7 0.133 - 19 0.0667 - 21 0.133 - 28 0.133 - - 40 10 1 0 - 47 1 - - 41 11 4 0 - 2 0.636 - 8 0.0909 - 19 0.182 - 21 0.0909 - - 42 31 11 0 - 0 0.0323 - 4 0.161 - 7 0.194 - 13 0.0645 - 14 0.0323 - 15 0.0645 - 19 0.258 - 20 0.0968 - 21 0.0323 - 28 0.0323 - 37 0.0323 - - 58 13 3 0 - 2 0.846 - 7 0.0769 - 19 0.0769 - - 46 2445 19 7 - 0 0.00164 - 2 0.0225 - 4 0.00204 - 6 0.000409 - 7 0.00573 - 15 0.00777 - 19 0.0151 - 21 0.00164 - 26 0.000818 - 28 0.000409 - 29 0.0139 - 30 0.000409 - 33 0.0278 - 40 0.00409 - 42 0.00327 - 43 0.00368 - 45 0.000409 - 46 0.00859 - 47 0.88 - - 40 2157 5 0 - 2 0.000464 - 42 0.00278 - 43 0.00278 - 46 0.00881 - 47 0.985 - - 41 201 13 0 - 0 0.00995 - 2 0.169 - 4 0.0249 - 6 0.00498 - 7 0.0149 - 15 0.0796 - 19 0.179 - 21 0.00498 - 29 0.169 - 30 0.00498 - 33 0.328 - 45 0.00498 - 46 0.00498 - - 42 4 3 0 - 28 0.25 - 40 0.25 - 47 0.5 - - 48 12 2 0 - 2 0.667 - 7 0.333 - - 55 11 6 0 - 2 0.182 - 7 0.364 - 21 0.0909 - 26 0.0909 - 33 0.0909 - 42 0.182 - - 62 7 4 0 - 2 0.571 - 15 0.143 - 19 0.143 - 47 0.143 - - 69 33 10 0 - 0 0.0606 - 2 0.182 - 7 0.0909 - 15 0.0606 - 21 0.0606 - 26 0.0303 - 40 0.273 - 43 0.0909 - 46 0.0303 - 47 0.121 - - 47 95402 34 17 - 0 0.00953 - 2 0.0171 - 3 8.39e-05 - 4 0.000954 - 5 6.29e-05 - 7 0.0109 - 8 0.000419 - 12 0.00393 - 13 0.000241 - 14 0.000157 - 15 0.000618 - 19 0.00136 - 20 5.24e-05 - 21 0.00164 - 22 0.000105 - 26 0.00125 - 28 0.000136 - 29 0.00199 - 30 0.000293 - 31 0.000199 - 32 0.00066 - 33 0.00197 - 34 0.00021 - 35 2.1e-05 - 37 0.000514 - 39 2.1e-05 - 40 0.361 - 41 0.181 - 42 0.0191 - 43 0.00153 - 44 0.000566 - 45 0.000356 - 46 0.00162 - 47 0.38 - - 40 33670 2 0 - 43 0.000178 - 47 1 - - 41 47 15 0 - 0 0.0851 - 2 0.17 - 4 0.0213 - 7 0.0213 - 12 0.0213 - 13 0.0213 - 14 0.0426 - 15 0.0213 - 19 0.0851 - 20 0.0213 - 29 0.0638 - 33 0.149 - 45 0.0213 - 46 0.149 - 47 0.106 - - 42 78 4 0 - 19 0.0128 - 39 0.0128 - 41 0.0128 - 47 0.962 - - 43 119 1 0 - 47 1 - - 45 10 1 0 - 47 1 - - 46 2350 15 0 - 0 0.0017 - 2 0.00723 - 4 0.00213 - 7 0.00383 - 15 0.00766 - 19 0.014 - 21 0.0017 - 26 0.000851 - 29 0.0145 - 33 0.0277 - 42 0.000851 - 43 0.0017 - 45 0.000426 - 46 0.000426 - 47 0.915 - - 48 773 21 0 - 0 0.0103 - 2 0.0414 - 4 0.00517 - 7 0.19 - 12 0.00517 - 14 0.00129 - 15 0.00129 - 19 0.00259 - 21 0.00517 - 26 0.00129 - 30 0.00129 - 31 0.00129 - 32 0.00129 - 33 0.00129 - 37 0.00259 - 40 0.446 - 41 0.254 - 42 0.0207 - 43 0.00259 - 46 0.00129 - 47 0.00388 - - 49 56 9 0 - 0 0.0357 - 2 0.0357 - 7 0.125 - 15 0.0179 - 40 0.393 - 41 0.304 - 42 0.0536 - 46 0.0179 - 47 0.0179 - - 55 709 22 0 - 0 0.00846 - 2 0.0367 - 4 0.00282 - 7 0.0339 - 8 0.00282 - 12 0.00705 - 15 0.00282 - 21 0.00564 - 22 0.00141 - 26 0.00423 - 29 0.00282 - 30 0.00423 - 32 0.00423 - 33 0.00141 - 34 0.00564 - 37 0.00282 - 40 0.54 - 41 0.288 - 42 0.0339 - 43 0.00282 - 46 0.00423 - 47 0.00423 - - 57 217 12 0 - 0 0.00461 - 2 0.023 - 7 0.0184 - 12 0.00461 - 19 0.00461 - 21 0.0138 - 26 0.0138 - 40 0.479 - 41 0.392 - 42 0.0369 - 46 0.00461 - 47 0.00461 - - 58 11 4 0 - 8 0.0909 - 28 0.0909 - 40 0.545 - 41 0.273 - - 62 880 12 0 - 2 0.00227 - 7 0.00114 - 12 0.00114 - 19 0.00227 - 28 0.00114 - 29 0.00227 - 40 0.512 - 41 0.441 - 42 0.017 - 43 0.00341 - 46 0.00568 - 47 0.0102 - - 64 87 4 0 - 7 0.0115 - 40 0.747 - 41 0.23 - 43 0.0115 - - 65 4 4 0 - 40 0.25 - 41 0.25 - 46 0.25 - 47 0.25 - - 67 7 2 0 - 46 0.143 - 47 0.857 - - 68 12 6 0 - 2 0.0833 - 15 0.0833 - 19 0.0833 - 40 0.417 - 41 0.25 - 42 0.0833 - - 69 56363 34 0 - 0 0.0157 - 2 0.0273 - 3 0.000142 - 4 0.0014 - 5 0.000106 - 7 0.015 - 8 0.000656 - 12 0.00644 - 13 0.00039 - 14 0.000213 - 15 0.000621 - 19 0.00153 - 20 7.1e-05 - 21 0.0025 - 22 0.00016 - 26 0.00195 - 28 0.000195 - 29 0.00264 - 30 0.000426 - 31 0.000319 - 32 0.00105 - 33 0.00202 - 34 0.000284 - 35 3.55e-05 - 37 0.000798 - 39 1.77e-05 - 40 0.587 - 41 0.29 - 42 0.031 - 43 0.00227 - 44 0.000958 - 45 0.000568 - 46 0.00238 - 47 0.00405 - - 48 811 21 4 - 0 0.00986 - 2 0.0395 - 4 0.00493 - 7 0.211 - 12 0.00493 - 14 0.00123 - 15 0.00123 - 19 0.00247 - 21 0.00493 - 26 0.00123 - 30 0.00123 - 31 0.00123 - 32 0.00123 - 33 0.00123 - 37 0.00247 - 40 0.428 - 41 0.242 - 42 0.0197 - 43 0.00247 - 46 0.016 - 47 0.0037 - - 45 54 4 0 - 7 0.037 - 40 0.556 - 41 0.204 - 46 0.204 - - 47 350 14 0 - 2 0.0229 - 4 0.0114 - 7 0.354 - 14 0.00286 - 19 0.00286 - 21 0.00857 - 26 0.00286 - 30 0.00286 - 31 0.00286 - 32 0.00286 - 33 0.00286 - 40 0.291 - 41 0.28 - 42 0.0114 - - 49 8 2 0 - 40 0.125 - 41 0.875 - - 55 393 14 0 - 0 0.0204 - 2 0.0611 - 7 0.115 - 12 0.0102 - 15 0.00254 - 19 0.00254 - 21 0.00254 - 37 0.00509 - 40 0.532 - 41 0.201 - 42 0.0305 - 43 0.00509 - 46 0.00509 - 47 0.00763 - - 49 97 22 6 - 0 0.0309 - 2 0.0206 - 3 0.0103 - 4 0.0515 - 7 0.144 - 8 0.0206 - 12 0.0103 - 13 0.0103 - 14 0.0309 - 15 0.0206 - 19 0.0515 - 21 0.0206 - 26 0.0309 - 28 0.0103 - 33 0.0103 - 37 0.0103 - 40 0.237 - 41 0.216 - 42 0.0309 - 45 0.0103 - 46 0.0103 - 47 0.0103 - - 2 20 13 0 - 0 0.05 - 4 0.1 - 7 0.05 - 8 0.05 - 12 0.05 - 13 0.05 - 14 0.1 - 19 0.2 - 26 0.1 - 33 0.05 - 40 0.05 - 41 0.1 - 45 0.05 - - 41 20 11 0 - 3 0.05 - 4 0.15 - 8 0.05 - 14 0.05 - 15 0.05 - 19 0.05 - 21 0.1 - 28 0.05 - 40 0.2 - 41 0.1 - 42 0.15 - - 47 18 6 0 - 0 0.0556 - 7 0.222 - 40 0.222 - 41 0.389 - 46 0.0556 - 47 0.0556 - - 48 5 2 0 - 40 0.8 - 41 0.2 - - 55 31 7 0 - 0 0.0323 - 2 0.0645 - 7 0.29 - 15 0.0323 - 26 0.0323 - 40 0.258 - 41 0.29 - - 69 2 2 0 - 37 0.5 - 40 0.5 - - 51 13 2 0 - 40 0.846 - 41 0.154 - - 55 895 23 6 - 0 0.0067 - 2 0.0291 - 4 0.00223 - 7 0.15 - 8 0.00223 - 12 0.00559 - 15 0.00223 - 21 0.00559 - 22 0.00112 - 26 0.0101 - 29 0.00223 - 30 0.00335 - 32 0.00335 - 33 0.00112 - 34 0.00447 - 37 0.00223 - 40 0.482 - 41 0.237 - 42 0.0268 - 43 0.00223 - 45 0.00223 - 46 0.0156 - 47 0.00335 - - 45 72 4 0 - 40 0.556 - 41 0.278 - 42 0.0139 - 46 0.153 - - 47 526 22 0 - 0 0.0076 - 2 0.0209 - 4 0.0019 - 7 0.228 - 8 0.0019 - 12 0.0076 - 15 0.0038 - 21 0.0076 - 22 0.0019 - 26 0.0152 - 29 0.0038 - 30 0.0057 - 32 0.0038 - 33 0.0019 - 34 0.0076 - 37 0.0019 - 40 0.376 - 41 0.27 - 42 0.0228 - 43 0.0038 - 45 0.0038 - 46 0.0019 - - 48 18 6 0 - 2 0.0556 - 7 0.167 - 26 0.0556 - 40 0.389 - 41 0.278 - 47 0.0556 - - 49 11 3 0 - 7 0.273 - 40 0.0909 - 41 0.636 - - 55 195 14 0 - 0 0.00513 - 2 0.0718 - 4 0.00513 - 7 0.041 - 8 0.00513 - 12 0.00513 - 21 0.00513 - 32 0.00513 - 37 0.00513 - 40 0.631 - 41 0.159 - 42 0.0462 - 46 0.00513 - 47 0.0103 - - 69 59 4 0 - 0 0.0169 - 40 0.915 - 41 0.0508 - 42 0.0169 - - 57 259 12 4 - 0 0.00386 - 2 0.0193 - 7 0.0502 - 12 0.00386 - 19 0.00386 - 21 0.0116 - 26 0.0154 - 40 0.517 - 41 0.332 - 42 0.0347 - 46 0.00386 - 47 0.00386 - - 41 24 4 0 - 7 0.0417 - 40 0.833 - 41 0.0833 - 42 0.0417 - - 47 26 4 0 - 21 0.0385 - 26 0.0385 - 40 0.269 - 41 0.654 - - 48 24 6 0 - 2 0.0417 - 7 0.167 - 40 0.333 - 41 0.333 - 42 0.0833 - 47 0.0417 - - 69 30 5 0 - 0 0.0333 - 26 0.0333 - 40 0.7 - 41 0.2 - 42 0.0333 - - 58 100 11 4 - 2 0.43 - 7 0.08 - 8 0.02 - 19 0.01 - 21 0.01 - 26 0.01 - 28 0.01 - 40 0.14 - 41 0.1 - 42 0.04 - 45 0.15 - - 2 3 3 0 - 8 0.333 - 19 0.333 - 26 0.333 - - 46 9 4 0 - 40 0.222 - 41 0.556 - 42 0.111 - 45 0.111 - - 62 73 9 0 - 2 0.562 - 7 0.0274 - 8 0.0137 - 21 0.0137 - 28 0.0137 - 40 0.11 - 41 0.0411 - 42 0.0411 - 45 0.178 - - 69 11 4 0 - 7 0.545 - 40 0.273 - 41 0.0909 - 45 0.0909 - - 62 7159 19 11 - 2 0.0976 - 4 0.00014 - 7 0.00279 - 8 0.000419 - 12 0.00014 - 15 0.00014 - 19 0.000419 - 21 0.000419 - 28 0.00014 - 29 0.000279 - 37 0.000279 - 40 0.414 - 41 0.361 - 42 0.116 - 43 0.000419 - 44 0.00182 - 45 0.00014 - 46 0.00168 - 47 0.00126 - - 2 2599 15 0 - 2 0.0104 - 7 0.00577 - 8 0.000385 - 12 0.000385 - 19 0.00077 - 28 0.000385 - 29 0.00077 - 37 0.000385 - 40 0.809 - 41 0.155 - 42 0.0119 - 43 0.00077 - 44 0.000385 - 46 0.00154 - 47 0.00192 - - 7 43 4 0 - 2 0.0233 - 40 0.86 - 41 0.093 - 44 0.0233 - - 21 30 5 0 - 2 0.0333 - 40 0.767 - 41 0.133 - 42 0.0333 - 46 0.0333 - - 41 488 5 0 - 2 0.248 - 40 0.184 - 41 0.514 - 42 0.0492 - 46 0.0041 - - 42 697 6 0 - 2 0.00717 - 40 0.859 - 41 0.0689 - 42 0.0588 - 46 0.00143 - 47 0.0043 - - 44 12 3 0 - 2 0.167 - 41 0.5 - 42 0.333 - - 45 222 7 0 - 2 0.113 - 7 0.0045 - 40 0.189 - 41 0.568 - 42 0.104 - 46 0.018 - 47 0.0045 - - 47 2942 13 0 - 2 0.171 - 4 0.00034 - 7 0.00102 - 8 0.00068 - 15 0.00034 - 19 0.00034 - 21 0.00102 - 37 0.00034 - 40 0.00034 - 41 0.582 - 42 0.238 - 44 0.00374 - 45 0.00034 - - 48 36 3 0 - 7 0.0278 - 40 0.833 - 41 0.139 - - 49 36 4 0 - 2 0.0556 - 40 0.75 - 41 0.167 - 43 0.0278 - - 57 12 3 0 - 2 0.5 - 40 0.167 - 41 0.333 - - 64 106 7 1 - 2 0.00943 - 7 0.00943 - 21 0.00943 - 40 0.755 - 41 0.198 - 42 0.00943 - 43 0.00943 - - 47 1 1 0 - 42 1 - - 66 32 3 0 - 40 0.781 - 41 0.125 - 42 0.0938 - - 67 9 3 0 - 40 0.222 - 46 0.111 - 47 0.667 - - 68 12 6 0 - 2 0.0833 - 15 0.0833 - 19 0.0833 - 40 0.417 - 41 0.25 - 42 0.0833 - - 69 90067 36 14 - 0 0.00981 - 2 0.0171 - 3 0.000111 - 4 0.000999 - 5 6.66e-05 - 7 0.00973 - 8 0.000411 - 9 1.11e-05 - 12 0.00403 - 13 0.000289 - 14 0.000133 - 15 0.000811 - 17 1.11e-05 - 19 0.000966 - 20 4.44e-05 - 21 0.0016 - 22 9.99e-05 - 26 0.00123 - 28 0.000122 - 29 0.00165 - 30 0.000266 - 31 0.000211 - 32 0.000655 - 33 0.00127 - 34 0.000189 - 35 2.22e-05 - 37 0.000522 - 39 1.11e-05 - 40 0.736 - 41 0.184 - 42 0.021 - 43 0.00147 - 44 0.000644 - 45 0.000366 - 46 0.00185 - 47 0.00253 - - 2 19 3 0 - 40 0.895 - 41 0.0526 - 44 0.0526 - - 4 32 4 0 - 7 0.0312 - 12 0.0312 - 40 0.844 - 41 0.0938 - - 21 122 8 0 - 0 0.0082 - 2 0.0082 - 7 0.0246 - 29 0.0164 - 40 0.631 - 41 0.27 - 42 0.0328 - 47 0.0082 - - 41 838 11 0 - 0 0.00119 - 2 0.00477 - 4 0.00119 - 15 0.0143 - 33 0.00119 - 37 0.00119 - 40 0.899 - 41 0.0513 - 42 0.0203 - 43 0.00239 - 47 0.00358 - - 43 28 3 0 - 0 0.0714 - 40 0.464 - 41 0.464 - - 45 334 7 0 - 2 0.00898 - 7 0.00299 - 40 0.557 - 41 0.38 - 42 0.018 - 46 0.0269 - 47 0.00599 - - 46 98 10 0 - 0 0.0102 - 2 0.0102 - 3 0.0102 - 4 0.0204 - 7 0.0102 - 15 0.255 - 40 0.531 - 41 0.122 - 42 0.0204 - 43 0.0102 - - 47 23686 34 0 - 0 0.0246 - 2 0.021 - 3 0.000253 - 4 0.00186 - 5 8.44e-05 - 7 0.0269 - 8 0.00118 - 12 0.0117 - 13 0.00076 - 14 0.000169 - 15 0.000844 - 17 4.22e-05 - 19 0.00101 - 20 4.22e-05 - 21 0.00422 - 22 0.000338 - 26 0.00355 - 28 0.000296 - 29 0.00469 - 30 0.000633 - 31 0.000633 - 32 0.00182 - 33 0.00338 - 34 0.000464 - 37 0.00148 - 39 4.22e-05 - 40 0.625 - 41 0.231 - 42 0.0221 - 43 0.00207 - 44 0.000929 - 45 0.000929 - 46 0.00312 - 47 0.00262 - - 49 3383 23 0 - 0 0.00532 - 2 0.00769 - 3 0.000296 - 4 0.000887 - 7 0.00236 - 9 0.000296 - 12 0.00236 - 13 0.000591 - 15 0.000591 - 19 0.000296 - 21 0.00118 - 26 0.000296 - 29 0.000887 - 30 0.000887 - 32 0.000887 - 33 0.000887 - 40 0.792 - 41 0.156 - 42 0.021 - 43 0.00118 - 44 0.000296 - 46 0.00148 - 47 0.00207 - - 55 60684 33 0 - 0 0.0046 - 2 0.0165 - 3 3.3e-05 - 4 0.000659 - 5 6.59e-05 - 7 0.00369 - 8 0.000148 - 12 0.00125 - 13 9.89e-05 - 14 0.000132 - 15 0.000214 - 19 0.00101 - 20 4.94e-05 - 21 0.000659 - 22 1.65e-05 - 26 0.000428 - 28 6.59e-05 - 29 0.000527 - 30 9.89e-05 - 31 6.59e-05 - 32 0.000214 - 33 0.000478 - 34 9.89e-05 - 35 3.3e-05 - 37 0.000181 - 40 0.774 - 41 0.168 - 42 0.0204 - 43 0.00125 - 44 0.00056 - 45 0.000165 - 46 0.00129 - 47 0.0025 - - 57 196 6 0 - 2 0.0153 - 29 0.0051 - 40 0.811 - 41 0.122 - 42 0.0408 - 45 0.0051 - - 58 207 4 0 - 2 0.00966 - 40 0.928 - 41 0.0338 - 42 0.029 - - 62 256 6 0 - 2 0.00781 - 15 0.00391 - 33 0.00391 - 40 0.793 - 41 0.148 - 42 0.043 - - 64 121 6 0 - 19 0.00826 - 40 0.785 - 41 0.132 - 42 0.0579 - 46 0.00826 - 47 0.00826 - -63 79666 1 0 - 47 1 - -64 76641 43 33 - 0 0.0391 - 1 9.13e-05 - 2 0.0169 - 3 0.00201 - 4 0.0542 - 5 0.0026 - 7 0.0151 - 8 0.011 - 9 0.000692 - 10 0.000665 - 11 1.3e-05 - 12 0.0139 - 13 0.0113 - 14 0.0129 - 15 0.0225 - 16 0.000209 - 17 0.000326 - 18 2.61e-05 - 19 0.0442 - 20 0.00497 - 21 0.00892 - 22 0.000248 - 23 1.3e-05 - 26 0.00343 - 28 0.000613 - 29 0.0176 - 30 0.00316 - 31 0.00274 - 32 0.00857 - 33 0.0137 - 34 0.000626 - 35 0.000535 - 36 5.22e-05 - 37 0.001 - 39 0.000183 - 40 0.488 - 41 0.175 - 42 0.0152 - 43 0.00151 - 44 0.000887 - 45 0.0024 - 46 0.00119 - 47 0.00198 - - 0 1 1 0 - 14 1 - - 2 337 19 7 - 0 0.00297 - 3 0.00297 - 4 0.0623 - 5 0.00297 - 7 0.623 - 8 0.00297 - 14 0.0119 - 15 0.00297 - 19 0.0089 - 20 0.00297 - 21 0.0415 - 22 0.00297 - 26 0.00297 - 34 0.0564 - 35 0.0712 - 36 0.0119 - 37 0.0742 - 41 0.0089 - 45 0.00593 - - 7 2 1 0 - 21 1 - - 41 107 11 0 - 4 0.0467 - 7 0.729 - 14 0.00935 - 19 0.00935 - 21 0.028 - 22 0.00935 - 34 0.0654 - 35 0.0374 - 37 0.0374 - 41 0.00935 - 45 0.0187 - - 42 9 4 0 - 7 0.444 - 34 0.111 - 37 0.333 - 41 0.111 - - 46 8 2 0 - 7 0.875 - 14 0.125 - - 47 10 7 0 - 4 0.2 - 5 0.1 - 8 0.1 - 14 0.2 - 19 0.2 - 20 0.1 - 26 0.1 - - 62 6 2 0 - 15 0.167 - 21 0.833 - - 64 194 10 0 - 0 0.00515 - 3 0.00515 - 4 0.0722 - 7 0.619 - 21 0.0206 - 34 0.0567 - 35 0.103 - 36 0.0206 - 37 0.0928 - 41 0.00515 - - 4 202 13 0 - 3 0.0149 - 7 0.0297 - 8 0.153 - 10 0.0149 - 13 0.411 - 15 0.158 - 20 0.173 - 21 0.0099 - 31 0.00495 - 33 0.00495 - 41 0.00495 - 42 0.0099 - 44 0.0099 - - 7 10169 37 8 - 0 0.00521 - 1 0.000492 - 2 0.00059 - 3 0.0103 - 4 0.305 - 5 0.0145 - 7 0.0308 - 8 0.061 - 9 0.00403 - 10 0.00334 - 11 9.83e-05 - 12 9.83e-05 - 13 0.0558 - 14 0.0677 - 15 0.116 - 16 0.00108 - 17 0.00187 - 19 0.217 - 20 0.0234 - 21 0.0175 - 22 0.000885 - 26 0.00413 - 28 0.000983 - 29 9.83e-05 - 30 0.0177 - 31 0.0146 - 32 0.000295 - 33 0.000492 - 34 0.000197 - 35 0.000787 - 37 0.00256 - 39 0.000787 - 41 0.006 - 42 0.000197 - 43 0.000197 - 44 0.000787 - 45 0.0137 - - 7 48 11 0 - 4 0.25 - 5 0.0208 - 10 0.0208 - 13 0.0625 - 14 0.0625 - 15 0.0208 - 19 0.458 - 20 0.0208 - 26 0.0417 - 30 0.0208 - 42 0.0208 - - 21 246 16 0 - 4 0.341 - 5 0.0163 - 7 0.0203 - 8 0.061 - 9 0.00407 - 13 0.061 - 14 0.0447 - 15 0.0813 - 19 0.285 - 20 0.0203 - 21 0.0163 - 26 0.00407 - 28 0.0244 - 30 0.0122 - 31 0.00407 - 45 0.00407 - - 35 5 2 0 - 4 0.8 - 13 0.2 - - 44 3 2 0 - 15 0.333 - 43 0.667 - - 47 9705 36 0 - 0 0.00546 - 1 0.000515 - 2 0.000618 - 3 0.0108 - 4 0.304 - 5 0.0145 - 7 0.0316 - 8 0.0613 - 9 0.00412 - 10 0.0034 - 11 0.000103 - 12 0.000103 - 13 0.0551 - 14 0.0687 - 15 0.117 - 16 0.00113 - 17 0.00196 - 19 0.214 - 20 0.0236 - 21 0.0177 - 22 0.000927 - 26 0.00402 - 28 0.000412 - 29 0.000103 - 30 0.018 - 31 0.015 - 32 0.000309 - 33 0.000515 - 34 0.000206 - 35 0.000824 - 37 0.00268 - 39 0.000824 - 41 0.00629 - 42 0.000103 - 44 0.000721 - 45 0.0141 - - 49 106 13 0 - 4 0.311 - 5 0.00943 - 7 0.00943 - 8 0.066 - 13 0.0943 - 14 0.066 - 15 0.123 - 19 0.255 - 20 0.0189 - 21 0.0189 - 30 0.00943 - 31 0.00943 - 44 0.00943 - - 55 47 6 0 - 4 0.383 - 8 0.0213 - 13 0.0638 - 15 0.298 - 19 0.213 - 20 0.0213 - - 57 5 3 0 - 4 0.4 - 8 0.4 - 45 0.2 - - 12 1 1 0 - 9 1 - - 13 52 10 2 - 4 0.0385 - 5 0.0192 - 7 0.0385 - 13 0.0192 - 14 0.0192 - 15 0.0192 - 19 0.0385 - 26 0.75 - 30 0.0385 - 41 0.0192 - - 7 45 5 0 - 4 0.0444 - 5 0.0222 - 14 0.0222 - 19 0.0444 - 26 0.867 - - 47 7 5 0 - 7 0.286 - 13 0.143 - 15 0.143 - 30 0.286 - 41 0.143 - - 15 14 3 0 - 4 0.0714 - 15 0.857 - 19 0.0714 - - 21 134 22 5 - 0 0.0224 - 3 0.0149 - 4 0.239 - 5 0.00746 - 7 0.0448 - 8 0.0896 - 9 0.0224 - 10 0.00746 - 13 0.0299 - 14 0.00746 - 15 0.0373 - 19 0.134 - 20 0.0224 - 21 0.112 - 26 0.0149 - 28 0.00746 - 30 0.0149 - 31 0.0821 - 40 0.0224 - 41 0.0373 - 44 0.0149 - 45 0.0149 - - 2 7 4 0 - 19 0.143 - 40 0.429 - 41 0.286 - 45 0.143 - - 7 7 5 0 - 4 0.143 - 7 0.143 - 8 0.143 - 19 0.429 - 26 0.143 - - 21 6 4 0 - 4 0.167 - 15 0.5 - 26 0.167 - 44 0.167 - - 37 1 1 0 - 28 1 - - 47 107 19 0 - 0 0.028 - 3 0.0187 - 4 0.252 - 5 0.00935 - 7 0.0374 - 8 0.103 - 9 0.028 - 10 0.00935 - 13 0.0374 - 14 0.00935 - 15 0.0187 - 19 0.121 - 20 0.028 - 21 0.14 - 30 0.0187 - 31 0.0935 - 41 0.028 - 44 0.00935 - 45 0.00935 - - 26 2 1 0 - 4 1 - - 28 1 1 0 - 26 1 - - 34 10 8 0 - 4 0.1 - 5 0.1 - 8 0.1 - 10 0.1 - 14 0.1 - 15 0.1 - 20 0.1 - 21 0.3 - - 37 1 1 0 - 21 1 - - 40 24 3 0 - 42 0.0417 - 46 0.292 - 47 0.667 - - 41 246 21 8 - 0 0.0122 - 2 0.423 - 3 0.00407 - 4 0.0203 - 7 0.301 - 8 0.0163 - 13 0.00813 - 15 0.00407 - 19 0.0122 - 20 0.00407 - 21 0.0569 - 26 0.00407 - 29 0.00407 - 30 0.0366 - 31 0.0122 - 33 0.00407 - 34 0.0163 - 35 0.00813 - 37 0.0203 - 45 0.00813 - 46 0.0244 - - 7 49 10 0 - 4 0.0204 - 7 0.673 - 8 0.0204 - 20 0.0204 - 21 0.0204 - 26 0.0204 - 30 0.102 - 31 0.0612 - 37 0.0204 - 45 0.0408 - - 49 2 2 0 - 34 0.5 - 37 0.5 - - 55 1 1 0 - 0 1 - - 57 2 1 0 - 19 1 - - 62 7 5 0 - 4 0.143 - 13 0.286 - 19 0.143 - 21 0.286 - 29 0.143 - - 64 136 10 0 - 0 0.0147 - 2 0.765 - 4 0.00735 - 7 0.0809 - 21 0.0221 - 30 0.00735 - 34 0.0221 - 35 0.0147 - 37 0.0221 - 46 0.0441 - - 71 11 5 0 - 4 0.0909 - 7 0.273 - 8 0.273 - 21 0.273 - 30 0.0909 - - 72 36 6 0 - 3 0.0278 - 7 0.75 - 15 0.0278 - 21 0.111 - 30 0.0556 - 33 0.0278 - - 42 22 7 1 - 1 0.0455 - 2 0.409 - 7 0.136 - 21 0.0455 - 37 0.227 - 45 0.0455 - 47 0.0909 - - 62 2 1 0 - 47 1 - - 43 4 4 0 - 4 0.25 - 9 0.25 - 12 0.25 - 29 0.25 - - 44 1 1 0 - 26 1 - - 45 112 19 3 - 0 0.0179 - 1 0.00893 - 3 0.0179 - 4 0.259 - 5 0.0536 - 7 0.0804 - 8 0.0536 - 10 0.0179 - 13 0.0536 - 14 0.0625 - 15 0.0179 - 17 0.00893 - 19 0.259 - 20 0.0268 - 21 0.0179 - 31 0.00893 - 33 0.00893 - 34 0.00893 - 37 0.0179 - - 41 2 2 0 - 15 0.5 - 31 0.5 - - 58 2 2 0 - 10 0.5 - 37 0.5 - - 72 2 2 0 - 0 0.5 - 33 0.5 - - 46 17 5 3 - 2 0.412 - 34 0.0588 - 42 0.0588 - 44 0.0588 - 47 0.412 - - 40 7 1 0 - 47 1 - - 41 6 2 0 - 2 0.833 - 34 0.167 - - 62 2 2 0 - 42 0.5 - 44 0.5 - - 47 27924 33 12 - 0 0.0193 - 2 0.0173 - 4 0.00147 - 5 0.000215 - 7 0.00806 - 8 0.000143 - 12 0.00623 - 13 0.00043 - 14 0.000215 - 15 0.00043 - 19 0.0024 - 20 0.000179 - 21 0.00208 - 22 0.000107 - 26 0.00161 - 28 0.000322 - 29 0.00326 - 30 0.00043 - 31 0.000215 - 32 0.00165 - 33 0.00154 - 34 0.000322 - 35 7.16e-05 - 37 0.000251 - 39 3.58e-05 - 40 0.669 - 41 0.235 - 42 0.0204 - 43 0.00201 - 44 0.000967 - 45 0.000466 - 46 0.00133 - 47 0.00272 - - 40 17 2 0 - 42 0.0588 - 47 0.941 - - 41 9 6 0 - 0 0.222 - 4 0.111 - 13 0.222 - 19 0.111 - 21 0.222 - 29 0.111 - - 42 2 1 0 - 47 1 - - 45 1 1 0 - 19 1 - - 46 9 3 0 - 42 0.111 - 44 0.111 - 47 0.778 - - 51 89 9 0 - 2 0.0112 - 4 0.0112 - 7 0.0112 - 26 0.0225 - 40 0.236 - 41 0.652 - 42 0.0337 - 46 0.0112 - 47 0.0112 - - 62 27364 33 0 - 0 0.0196 - 2 0.0175 - 4 0.00139 - 5 0.000219 - 7 0.00819 - 8 0.000146 - 12 0.00636 - 13 0.000365 - 14 0.000219 - 15 0.000439 - 19 0.00238 - 20 0.000183 - 21 0.00205 - 22 0.00011 - 26 0.00157 - 28 0.000329 - 29 0.00329 - 30 0.000439 - 31 0.000219 - 32 0.00168 - 33 0.00157 - 34 0.000292 - 35 7.31e-05 - 37 0.000256 - 39 3.65e-05 - 40 0.669 - 41 0.236 - 42 0.0203 - 43 0.00201 - 44 0.000914 - 45 0.000475 - 46 0.00132 - 47 0.00175 - - 64 335 5 0 - 40 0.887 - 41 0.0925 - 42 0.0149 - 43 0.00299 - 44 0.00299 - - 65 1 1 0 - 47 1 - - 66 76 6 0 - 2 0.0263 - 4 0.0132 - 34 0.0132 - 40 0.697 - 41 0.237 - 42 0.0132 - - 67 1 1 0 - 47 1 - - 72 3 2 0 - 40 0.333 - 42 0.667 - - 49 5 3 0 - 7 0.4 - 33 0.2 - 41 0.4 - - 50 2 2 0 - 0 0.5 - 7 0.5 - - 51 89 9 1 - 2 0.0112 - 4 0.0112 - 7 0.0112 - 26 0.0225 - 40 0.236 - 41 0.652 - 42 0.0337 - 46 0.0112 - 47 0.0112 - - 21 4 3 0 - 26 0.25 - 41 0.5 - 46 0.25 - - 58 20 13 2 - 0 0.1 - 2 0.05 - 4 0.15 - 7 0.05 - 15 0.1 - 19 0.1 - 20 0.05 - 32 0.05 - 33 0.05 - 35 0.05 - 40 0.05 - 41 0.1 - 45 0.1 - - 2 2 2 0 - 7 0.5 - 35 0.5 - - 72 5 4 0 - 0 0.4 - 4 0.2 - 15 0.2 - 33 0.2 - - 62 27403 33 15 - 0 0.0196 - 2 0.0177 - 4 0.00139 - 5 0.000219 - 7 0.00821 - 8 0.000146 - 12 0.00635 - 13 0.000365 - 14 0.000219 - 15 0.000438 - 19 0.00237 - 20 0.000182 - 21 0.00204 - 22 0.000109 - 26 0.00157 - 28 0.000328 - 29 0.00328 - 30 0.000438 - 31 0.000219 - 32 0.00168 - 33 0.00157 - 34 0.000292 - 35 7.3e-05 - 37 0.000255 - 39 3.65e-05 - 40 0.668 - 41 0.236 - 42 0.0204 - 43 0.00201 - 44 0.000912 - 45 0.000511 - 46 0.00139 - 47 0.00175 - - 4 201 8 0 - 0 0.00995 - 2 0.0498 - 7 0.00498 - 29 0.00498 - 30 0.00498 - 40 0.796 - 41 0.124 - 42 0.00498 - - 7 9838 29 0 - 0 0.00498 - 2 0.0176 - 4 0.00203 - 5 0.000305 - 7 0.00407 - 8 0.000102 - 12 0.00173 - 13 0.000203 - 14 0.000407 - 15 0.000813 - 19 0.00335 - 20 0.000203 - 21 0.00102 - 26 0.000712 - 28 0.000305 - 29 0.00122 - 32 0.000407 - 33 0.00152 - 34 0.000102 - 37 0.000203 - 39 0.000102 - 40 0.665 - 41 0.273 - 42 0.0147 - 43 0.00193 - 44 0.00061 - 45 0.000305 - 46 0.000813 - 47 0.00173 - - 13 50 6 0 - 2 0.02 - 7 0.02 - 40 0.68 - 41 0.22 - 42 0.04 - 46 0.02 - - 15 14 3 0 - 0 0.0714 - 33 0.0714 - 41 0.857 - - 21 118 6 0 - 2 0.00847 - 7 0.0169 - 40 0.525 - 41 0.432 - 42 0.00847 - 47 0.00847 - - 41 95 3 0 - 2 0.0105 - 40 0.905 - 41 0.0842 - - 45 132 6 0 - 35 0.00758 - 40 0.788 - 41 0.136 - 42 0.0303 - 46 0.0152 - 47 0.0227 - - 47 7896 30 0 - 0 0.0215 - 2 0.0193 - 4 0.000887 - 5 0.000127 - 7 0.0146 - 8 0.000253 - 12 0.0057 - 13 0.00038 - 15 0.000253 - 19 0.00127 - 21 0.00177 - 22 0.00038 - 26 0.00203 - 28 0.000253 - 29 0.0019 - 30 0.00076 - 31 0.000127 - 32 0.000633 - 33 0.00127 - 34 0.00038 - 35 0.000127 - 37 0.000633 - 40 0.769 - 41 0.135 - 42 0.0168 - 43 0.000633 - 44 0.00076 - 45 0.000253 - 46 0.00139 - 47 0.0019 - - 58 12 4 0 - 19 0.0833 - 40 0.667 - 41 0.167 - 43 0.0833 - - 68 2 2 0 - 19 0.5 - 46 0.5 - - 70 36 6 0 - 0 0.0278 - 12 0.0278 - 40 0.556 - 41 0.333 - 42 0.0278 - 44 0.0278 - - 71 1931 24 0 - 0 0.0109 - 2 0.0166 - 4 0.00311 - 5 0.000518 - 7 0.0088 - 12 0.00414 - 13 0.00104 - 14 0.00104 - 15 0.000518 - 19 0.00984 - 20 0.00104 - 21 0.00104 - 29 0.000518 - 31 0.000518 - 32 0.00104 - 34 0.000518 - 40 0.572 - 41 0.328 - 42 0.029 - 43 0.00363 - 44 0.00155 - 45 0.000518 - 46 0.00311 - 47 0.00104 - - 72 6697 28 0 - 0 0.0426 - 2 0.0166 - 4 0.000597 - 5 0.000149 - 7 0.00732 - 8 0.000149 - 12 0.0148 - 13 0.000448 - 15 0.000149 - 19 0.000149 - 20 0.000149 - 21 0.00433 - 26 0.00284 - 28 0.000597 - 29 0.00881 - 30 0.000747 - 31 0.000597 - 32 0.00523 - 33 0.00254 - 34 0.000448 - 40 0.579 - 41 0.274 - 42 0.03 - 43 0.00314 - 44 0.00119 - 45 0.00119 - 46 0.00134 - 47 0.00134 - - 73 320 12 0 - 0 0.025 - 2 0.0125 - 12 0.0125 - 21 0.00313 - 26 0.00313 - 29 0.00625 - 40 0.669 - 41 0.216 - 42 0.0406 - 43 0.00625 - 44 0.00313 - 47 0.00313 - - 74 14 2 0 - 4 0.0714 - 41 0.929 - - 64 690 9 3 - 2 0.281 - 7 0.00145 - 35 0.00145 - 40 0.432 - 41 0.243 - 42 0.0348 - 43 0.00145 - 44 0.00145 - 46 0.0029 - - 2 306 6 0 - 7 0.00327 - 40 0.892 - 41 0.0882 - 42 0.0098 - 43 0.00327 - 44 0.00327 - - 42 7 2 0 - 40 0.429 - 42 0.571 - - 47 337 5 0 - 2 0.561 - 35 0.00297 - 41 0.38 - 42 0.0504 - 46 0.00593 - - 65 1 1 0 - 47 1 - - 66 76 6 0 - 2 0.0263 - 4 0.0132 - 34 0.0132 - 40 0.697 - 41 0.237 - 42 0.0132 - - 67 2 2 0 - 40 0.5 - 47 0.5 - - 70 36 7 0 - 4 0.417 - 9 0.0278 - 14 0.0278 - 15 0.0278 - 19 0.444 - 20 0.0278 - 26 0.0278 - - 71 1951 27 2 - 0 0.000513 - 3 0.00718 - 4 0.281 - 5 0.0118 - 7 0.00923 - 8 0.0492 - 9 0.00154 - 10 0.00205 - 13 0.063 - 14 0.0866 - 15 0.121 - 16 0.00154 - 17 0.00205 - 19 0.255 - 20 0.0297 - 21 0.0128 - 26 0.0308 - 28 0.000513 - 29 0.00103 - 30 0.0118 - 31 0.00923 - 34 0.000513 - 35 0.000513 - 39 0.000513 - 40 0.000513 - 41 0.00871 - 45 0.00154 - - 2 1 1 0 - 28 1 - - 21 5 4 0 - 4 0.2 - 8 0.2 - 19 0.4 - 31 0.2 - - 72 6756 35 3 - 0 0.274 - 2 0.000296 - 3 0.00074 - 4 0.0333 - 5 0.000148 - 7 0.00873 - 8 0.00784 - 9 0.000444 - 10 0.000888 - 12 0.106 - 13 0.00562 - 14 0.00977 - 15 0.0255 - 16 0.000148 - 17 0.000148 - 18 0.000296 - 19 0.0598 - 20 0.0037 - 21 0.0465 - 22 0.000444 - 23 0.000148 - 26 0.00296 - 28 0.00252 - 29 0.172 - 30 0.000296 - 31 0.00237 - 32 0.083 - 33 0.141 - 34 0.000296 - 40 0.000148 - 41 0.00918 - 42 0.000296 - 43 0.000296 - 44 0.000296 - 45 0.000888 - - 44 2 1 0 - 43 1 - - 49 7 4 0 - 0 0.143 - 4 0.143 - 15 0.143 - 19 0.571 - - 60 3 2 0 - 4 0.667 - 8 0.333 - - 73 321 15 0 - 0 0.00623 - 3 0.0654 - 4 0.249 - 5 0.0187 - 8 0.0312 - 13 0.0623 - 14 0.112 - 15 0.159 - 16 0.00312 - 19 0.249 - 20 0.0125 - 21 0.00312 - 26 0.0156 - 39 0.00935 - 41 0.00312 - -65 580 13 7 - 2 0.00862 - 4 0.0069 - 19 0.00345 - 29 0.0069 - 30 0.00345 - 33 0.00345 - 37 0.00172 - 40 0.372 - 41 0.0069 - 42 0.0138 - 43 0.00172 - 46 0.0914 - 47 0.479 - - 2 1 1 0 - 37 1 - - 40 158 6 1 - 4 0.00633 - 41 0.00633 - 42 0.00633 - 43 0.00633 - 46 0.215 - 47 0.759 - - 72 1 1 0 - 42 1 - - 46 19 5 0 - 19 0.0526 - 29 0.105 - 33 0.0526 - 46 0.0526 - 47 0.737 - - 47 198 11 3 - 2 0.0101 - 4 0.0101 - 19 0.00505 - 29 0.0101 - 30 0.00505 - 33 0.00505 - 40 0.146 - 41 0.0101 - 42 0.0101 - 46 0.0859 - 47 0.702 - - 40 139 5 0 - 4 0.00719 - 41 0.00719 - 42 0.00719 - 46 0.115 - 47 0.863 - - 46 18 4 0 - 19 0.0556 - 29 0.111 - 33 0.0556 - 47 0.778 - - 67 32 7 0 - 2 0.0625 - 4 0.0312 - 30 0.0312 - 40 0.781 - 41 0.0312 - 42 0.0312 - 46 0.0312 - - 62 6 2 0 - 40 0.833 - 42 0.167 - - 65 2 2 0 - 2 0.5 - 40 0.5 - - 67 184 7 0 - 2 0.0109 - 4 0.00543 - 30 0.00543 - 40 0.946 - 41 0.00543 - 42 0.0217 - 46 0.00543 - -66 8140 31 21 - 0 0.00123 - 2 0.00147 - 3 0.00909 - 4 0.0339 - 5 0.000246 - 7 0.00823 - 8 0.0043 - 9 0.000246 - 13 0.00799 - 14 0.00381 - 15 0.177 - 16 0.000123 - 17 0.000123 - 19 0.00332 - 20 0.00209 - 21 0.00209 - 26 0.00135 - 30 0.00455 - 31 0.000369 - 34 0.000246 - 35 0.000369 - 37 0.000614 - 39 0.000123 - 40 0.239 - 41 0.0378 - 42 0.0108 - 43 0.000123 - 44 0.000123 - 45 0.00639 - 46 0.00541 - 47 0.438 - - 0 38 10 0 - 4 0.263 - 8 0.0789 - 13 0.0789 - 14 0.0526 - 15 0.316 - 17 0.0263 - 19 0.0789 - 20 0.0526 - 21 0.0263 - 31 0.0263 - - 2 4 4 0 - 0 0.25 - 20 0.25 - 21 0.25 - 30 0.25 - - 12 3 3 0 - 4 0.333 - 19 0.333 - 20 0.333 - - 28 1 1 0 - 3 1 - - 29 3 3 0 - 4 0.333 - 13 0.333 - 42 0.333 - - 32 1 1 0 - 13 1 - - 33 3 3 0 - 4 0.333 - 13 0.333 - 15 0.333 - - 40 1764 4 2 - 43 0.000567 - 45 0.0034 - 46 0.0227 - 47 0.973 - - 55 1602 4 0 - 43 0.000624 - 45 0.00375 - 46 0.00936 - 47 0.986 - - 62 82 2 0 - 46 0.293 - 47 0.707 - - 41 62 7 1 - 2 0.0484 - 4 0.0161 - 7 0.194 - 13 0.0161 - 21 0.0484 - 30 0.516 - 45 0.161 - - 64 2 1 0 - 21 1 - - 42 53 8 0 - 3 0.0189 - 4 0.0189 - 15 0.0189 - 21 0.0377 - 31 0.0189 - 40 0.0755 - 45 0.585 - 47 0.226 - - 45 45 9 2 - 4 0.178 - 5 0.0444 - 7 0.111 - 13 0.0444 - 19 0.378 - 35 0.0444 - 37 0.0444 - 44 0.0222 - 47 0.133 - - 40 6 1 0 - 47 1 - - 42 28 6 0 - 4 0.25 - 7 0.143 - 13 0.0357 - 19 0.464 - 35 0.0357 - 37 0.0714 - - 46 40 1 0 - 47 1 - - 47 2027 11 8 - 0 0.00148 - 2 0.00197 - 4 0.000493 - 19 0.000987 - 34 0.000493 - 40 0.0449 - 41 0.0607 - 42 0.00839 - 45 0.000493 - 46 0.000987 - 47 0.879 - - 40 1717 1 0 - 47 1 - - 46 40 1 0 - 47 1 - - 48 4 2 0 - 40 0.5 - 41 0.5 - - 55 174 9 0 - 0 0.0115 - 2 0.00575 - 19 0.0115 - 40 0.333 - 41 0.546 - 42 0.046 - 45 0.00575 - 46 0.0115 - 47 0.0287 - - 57 11 4 0 - 0 0.0909 - 40 0.182 - 41 0.364 - 42 0.364 - - 64 3 2 0 - 40 0.333 - 42 0.667 - - 66 1 1 0 - 42 1 - - 69 55 6 0 - 2 0.0545 - 4 0.0182 - 34 0.0182 - 40 0.491 - 41 0.382 - 42 0.0364 - - 48 6 3 0 - 7 0.167 - 40 0.5 - 41 0.333 - - 49 5 4 0 - 0 0.4 - 13 0.2 - 40 0.2 - 41 0.2 - - 55 1940 18 5 - 0 0.00103 - 2 0.000515 - 4 0.00258 - 7 0.017 - 8 0.00206 - 13 0.000515 - 14 0.000515 - 15 0.000515 - 19 0.00103 - 21 0.00206 - 26 0.00464 - 30 0.00103 - 40 0.856 - 41 0.0778 - 42 0.0278 - 45 0.00155 - 46 0.00103 - 47 0.00258 - - 0 38 7 0 - 2 0.0263 - 4 0.132 - 8 0.105 - 14 0.0263 - 21 0.0526 - 40 0.553 - 41 0.105 - - 12 3 3 0 - 21 0.333 - 40 0.333 - 41 0.333 - - 47 5 1 0 - 26 1 - - 55 8 3 0 - 7 0.25 - 40 0.625 - 41 0.125 - - 69 1873 14 0 - 0 0.00107 - 7 0.0166 - 13 0.000534 - 15 0.000534 - 19 0.00107 - 21 0.000534 - 26 0.0016 - 30 0.00107 - 40 0.868 - 41 0.0758 - 42 0.0278 - 45 0.0016 - 46 0.00107 - 47 0.00267 - - 57 52 9 3 - 0 0.0192 - 4 0.0385 - 7 0.154 - 8 0.0192 - 13 0.0192 - 21 0.0192 - 40 0.538 - 41 0.115 - 42 0.0769 - - 41 9 2 0 - 40 0.667 - 41 0.333 - - 55 34 8 0 - 0 0.0294 - 4 0.0588 - 7 0.235 - 8 0.0294 - 13 0.0294 - 21 0.0294 - 40 0.529 - 41 0.0588 - - 57 8 3 0 - 40 0.375 - 41 0.125 - 42 0.5 - - 62 85 2 0 - 40 0.976 - 42 0.0235 - - 64 28 3 1 - 40 0.786 - 41 0.0714 - 42 0.143 - - 47 3 2 0 - 41 0.667 - 42 0.333 - - 66 6 4 0 - 2 0.167 - 40 0.333 - 41 0.167 - 42 0.333 - - 69 1970 25 11 - 0 0.000508 - 2 0.00152 - 3 0.0365 - 4 0.124 - 7 0.00406 - 8 0.0137 - 9 0.00102 - 13 0.0269 - 14 0.0142 - 15 0.722 - 16 0.000508 - 19 0.00102 - 20 0.0066 - 21 0.00254 - 26 0.00102 - 30 0.00102 - 31 0.000508 - 34 0.000508 - 35 0.000508 - 37 0.00152 - 39 0.000508 - 40 0.0264 - 41 0.0107 - 42 0.00203 - 45 0.000508 - - 21 4 3 0 - 3 0.25 - 4 0.25 - 40 0.5 - - 41 231 7 0 - 3 0.0216 - 4 0.104 - 8 0.013 - 13 0.0346 - 14 0.0346 - 15 0.788 - 16 0.00433 - - 46 1168 6 0 - 3 0.0402 - 4 0.0753 - 8 0.00856 - 13 0.018 - 15 0.854 - 20 0.00342 - - 47 152 13 0 - 0 0.00658 - 3 0.0263 - 4 0.178 - 8 0.0197 - 13 0.0592 - 14 0.0197 - 15 0.605 - 19 0.0132 - 20 0.0395 - 21 0.00658 - 30 0.0132 - 31 0.00658 - 42 0.00658 - - 48 25 7 0 - 3 0.04 - 4 0.56 - 7 0.08 - 8 0.08 - 15 0.16 - 20 0.04 - 35 0.04 - - 49 54 9 0 - 3 0.037 - 4 0.463 - 8 0.037 - 9 0.0185 - 13 0.185 - 14 0.0741 - 15 0.0926 - 21 0.037 - 37 0.0556 - - 55 82 7 0 - 2 0.0366 - 4 0.0488 - 7 0.0122 - 34 0.0122 - 40 0.61 - 41 0.256 - 42 0.0244 - - 57 76 11 0 - 3 0.0526 - 4 0.382 - 7 0.0526 - 8 0.0132 - 13 0.0263 - 14 0.118 - 15 0.289 - 20 0.0132 - 21 0.0263 - 39 0.0132 - 45 0.0132 - - 58 6 4 0 - 4 0.333 - 7 0.167 - 15 0.167 - 26 0.333 - - 62 111 5 0 - 3 0.0541 - 4 0.045 - 8 0.00901 - 13 0.018 - 15 0.874 - - 69 54 9 0 - 3 0.0185 - 4 0.407 - 8 0.0926 - 9 0.0185 - 13 0.0185 - 14 0.0741 - 15 0.333 - 20 0.0185 - 42 0.0185 - -67 1431 33 20 - 0 0.0314 - 1 0.000699 - 2 0.00699 - 4 0.0664 - 5 0.0021 - 7 0.0175 - 8 0.0133 - 12 0.000699 - 13 0.0175 - 14 0.00559 - 15 0.0182 - 16 0.0014 - 17 0.000699 - 19 0.0783 - 20 0.000699 - 21 0.051 - 24 0.000699 - 26 0.0021 - 28 0.0783 - 29 0.0014 - 30 0.0168 - 31 0.00839 - 32 0.0028 - 34 0.000699 - 35 0.0028 - 37 0.0014 - 40 0.366 - 41 0.0175 - 42 0.00978 - 43 0.0028 - 45 0.0014 - 46 0.0266 - 47 0.148 - - 0 167 12 1 - 4 0.299 - 5 0.018 - 7 0.024 - 8 0.018 - 13 0.0599 - 14 0.018 - 15 0.108 - 16 0.00599 - 17 0.00599 - 19 0.311 - 21 0.108 - 30 0.024 - - 2 8 3 0 - 13 0.125 - 15 0.125 - 19 0.75 - - 2 5 4 0 - 0 0.4 - 12 0.2 - 13 0.2 - 35 0.2 - - 12 94 11 0 - 0 0.0426 - 4 0.202 - 8 0.0106 - 13 0.0319 - 14 0.0319 - 15 0.0532 - 19 0.447 - 20 0.0106 - 21 0.106 - 28 0.0532 - 45 0.0106 - - 14 2 1 0 - 4 1 - - 21 28 6 1 - 4 0.286 - 13 0.0714 - 15 0.0357 - 16 0.0357 - 19 0.536 - 30 0.0357 - - 55 2 2 0 - 15 0.5 - 30 0.5 - - 40 130 8 1 - 0 0.00769 - 4 0.00769 - 35 0.00769 - 40 0.0231 - 41 0.0154 - 42 0.0154 - 46 0.146 - 47 0.777 - - 40 3 2 0 - 40 0.667 - 47 0.333 - - 41 11 6 0 - 0 0.0909 - 2 0.273 - 4 0.0909 - 7 0.273 - 21 0.0909 - 28 0.182 - - 45 2 2 0 - 15 0.5 - 37 0.5 - - 46 8 4 0 - 7 0.125 - 28 0.125 - 43 0.125 - 47 0.625 - - 47 342 12 7 - 0 0.00292 - 2 0.00877 - 4 0.00292 - 7 0.00585 - 30 0.00292 - 35 0.00292 - 40 0.576 - 41 0.0175 - 42 0.0205 - 43 0.00585 - 46 0.0439 - 47 0.31 - - 40 120 7 0 - 0 0.00833 - 4 0.00833 - 35 0.00833 - 41 0.0167 - 42 0.0167 - 46 0.1 - 47 0.842 - - 46 7 3 0 - 7 0.143 - 43 0.143 - 47 0.714 - - 48 8 2 0 - 40 0.875 - 41 0.125 - - 55 14 3 0 - 40 0.786 - 42 0.0714 - 46 0.143 - - 57 8 2 0 - 7 0.125 - 40 0.875 - - 69 176 5 0 - 2 0.017 - 30 0.00568 - 40 0.943 - 41 0.017 - 42 0.017 - - 73 1 1 0 - 43 1 - - 48 23 5 0 - 7 0.13 - 21 0.0435 - 26 0.0435 - 40 0.739 - 41 0.0435 - - 49 29 11 0 - 0 0.138 - 4 0.069 - 7 0.0345 - 8 0.069 - 13 0.0345 - 21 0.0345 - 28 0.414 - 29 0.0345 - 30 0.0345 - 40 0.103 - 41 0.0345 - - 55 278 19 8 - 0 0.112 - 4 0.036 - 7 0.0324 - 8 0.0468 - 13 0.0288 - 14 0.00719 - 21 0.144 - 24 0.0036 - 26 0.00719 - 28 0.331 - 29 0.0036 - 30 0.0576 - 31 0.0432 - 32 0.0144 - 37 0.0036 - 40 0.0935 - 41 0.0216 - 42 0.0036 - 46 0.0108 - - 0 145 17 0 - 0 0.0621 - 4 0.0621 - 7 0.0414 - 8 0.0552 - 13 0.0414 - 21 0.193 - 24 0.0069 - 26 0.0138 - 28 0.248 - 29 0.0069 - 30 0.11 - 31 0.0828 - 32 0.0207 - 37 0.0069 - 40 0.0345 - 41 0.0069 - 42 0.0069 - - 12 75 6 0 - 0 0.253 - 21 0.107 - 28 0.587 - 32 0.0133 - 40 0.0133 - 41 0.0267 - - 14 2 1 0 - 13 1 - - 21 27 8 0 - 0 0.111 - 4 0.037 - 8 0.148 - 14 0.037 - 21 0.0741 - 28 0.444 - 40 0.111 - 41 0.037 - - 45 1 1 0 - 46 1 - - 49 4 3 0 - 21 0.25 - 40 0.5 - 41 0.25 - - 55 16 3 0 - 7 0.0625 - 40 0.812 - 46 0.125 - - 69 5 5 0 - 7 0.2 - 8 0.2 - 14 0.2 - 21 0.2 - 41 0.2 - - 57 11 3 0 - 7 0.0909 - 40 0.818 - 41 0.0909 - - 58 2 2 0 - 34 0.5 - 45 0.5 - - 62 6 3 0 - 4 0.167 - 40 0.667 - 41 0.167 - - 64 10 2 0 - 40 0.9 - 41 0.1 - - 67 13 7 1 - 0 0.0769 - 2 0.0769 - 7 0.0769 - 35 0.0769 - 40 0.385 - 41 0.231 - 46 0.0769 - - 47 5 3 0 - 0 0.2 - 2 0.2 - 41 0.6 - - 69 267 9 1 - 1 0.00375 - 2 0.0112 - 15 0.00375 - 19 0.0112 - 21 0.00749 - 30 0.00375 - 40 0.936 - 41 0.0112 - 42 0.0112 - - 47 56 8 0 - 1 0.0179 - 2 0.0179 - 15 0.0179 - 19 0.0357 - 21 0.0357 - 30 0.0179 - 40 0.821 - 42 0.0357 - - 73 1 1 0 - 43 1 - -68 1301 34 22 - 0 0.00692 - 2 0.00692 - 3 0.000769 - 4 0.0208 - 6 0.000769 - 7 0.0653 - 8 0.0507 - 9 0.00922 - 12 0.000769 - 13 0.119 - 14 0.175 - 15 0.00999 - 16 0.00154 - 19 0.00231 - 20 0.00154 - 21 0.0515 - 22 0.00384 - 23 0.000769 - 26 0.0146 - 29 0.00461 - 30 0.0123 - 31 0.0138 - 32 0.00461 - 34 0.000769 - 35 0.000769 - 36 0.000769 - 37 0.00461 - 40 0.271 - 41 0.0953 - 42 0.0238 - 44 0.000769 - 45 0.00231 - 46 0.00384 - 47 0.0184 - - 2 253 25 10 - 0 0.00395 - 3 0.00395 - 4 0.0553 - 6 0.00395 - 7 0.233 - 8 0.103 - 9 0.0474 - 12 0.00395 - 13 0.0356 - 15 0.00395 - 19 0.00395 - 20 0.00791 - 21 0.241 - 22 0.0198 - 23 0.00395 - 26 0.0474 - 29 0.00791 - 30 0.0593 - 31 0.0593 - 35 0.00395 - 36 0.00395 - 37 0.0237 - 41 0.00791 - 44 0.00395 - 45 0.0119 - - 15 2 1 0 - 8 1 - - 41 45 16 0 - 0 0.0222 - 3 0.0222 - 4 0.0667 - 6 0.0222 - 7 0.2 - 8 0.0889 - 9 0.0222 - 13 0.0444 - 21 0.2 - 22 0.0444 - 26 0.0667 - 29 0.0444 - 30 0.0222 - 31 0.0667 - 36 0.0222 - 37 0.0444 - - 46 3 2 0 - 8 0.333 - 45 0.667 - - 48 47 10 0 - 4 0.128 - 7 0.213 - 8 0.0426 - 12 0.0213 - 13 0.0426 - 21 0.234 - 30 0.128 - 31 0.149 - 41 0.0213 - 45 0.0213 - - 49 27 7 0 - 7 0.63 - 8 0.037 - 15 0.037 - 20 0.037 - 21 0.111 - 23 0.037 - 30 0.111 - - 55 47 14 0 - 4 0.0426 - 7 0.106 - 8 0.0851 - 9 0.213 - 13 0.0213 - 19 0.0213 - 21 0.298 - 22 0.0213 - 26 0.0638 - 30 0.0213 - 31 0.0426 - 35 0.0213 - 37 0.0213 - 41 0.0213 - - 57 51 12 0 - 4 0.0588 - 7 0.157 - 8 0.0196 - 9 0.0196 - 13 0.0588 - 21 0.373 - 22 0.0196 - 26 0.118 - 30 0.0784 - 31 0.0588 - 37 0.0196 - 44 0.0196 - - 62 7 2 0 - 7 0.857 - 21 0.143 - - 66 1 1 0 - 20 1 - - 69 15 5 0 - 7 0.0667 - 8 0.6 - 13 0.0667 - 21 0.2 - 22 0.0667 - - 8 111 5 0 - 8 0.117 - 13 0.306 - 14 0.559 - 16 0.00901 - 42 0.00901 - - 13 51 3 0 - 13 0.333 - 14 0.627 - 41 0.0392 - - 14 13 2 0 - 13 0.538 - 14 0.462 - - 15 18 4 0 - 8 0.167 - 13 0.222 - 14 0.389 - 15 0.222 - - 21 9 5 0 - 4 0.222 - 7 0.222 - 8 0.333 - 21 0.111 - 26 0.111 - - 30 4 1 0 - 13 1 - - 40 12 2 0 - 46 0.0833 - 47 0.917 - - 41 10 8 0 - 2 0.1 - 4 0.1 - 7 0.1 - 8 0.1 - 13 0.2 - 19 0.1 - 21 0.2 - 31 0.1 - - 42 2 2 0 - 34 0.5 - 47 0.5 - - 45 3 3 0 - 4 0.333 - 8 0.333 - 30 0.333 - - 46 1 1 0 - 46 1 - - 47 494 20 17 - 0 0.0081 - 2 0.0081 - 4 0.0081 - 7 0.0142 - 8 0.0344 - 13 0.148 - 14 0.231 - 15 0.0101 - 16 0.00202 - 19 0.00202 - 21 0.00202 - 26 0.00607 - 29 0.00405 - 31 0.00202 - 32 0.00607 - 40 0.344 - 41 0.113 - 42 0.0283 - 46 0.00405 - 47 0.0243 - - 7 1 1 0 - 4 1 - - 8 110 4 0 - 8 0.118 - 13 0.309 - 14 0.564 - 16 0.00909 - - 13 49 2 0 - 13 0.347 - 14 0.653 - - 14 13 2 0 - 13 0.538 - 14 0.462 - - 15 18 4 0 - 8 0.167 - 13 0.222 - 14 0.389 - 15 0.222 - - 30 4 1 0 - 13 1 - - 40 12 2 0 - 46 0.0833 - 47 0.917 - - 41 6 5 0 - 4 0.167 - 7 0.167 - 13 0.333 - 19 0.167 - 31 0.167 - - 46 1 1 0 - 46 1 - - 48 45 9 0 - 2 0.0444 - 7 0.0889 - 13 0.0444 - 14 0.0444 - 26 0.0222 - 32 0.0444 - 40 0.533 - 41 0.111 - 42 0.0667 - - 49 46 7 0 - 0 0.0435 - 2 0.0217 - 7 0.0435 - 26 0.0217 - 32 0.0217 - 40 0.63 - 41 0.217 - - 55 38 6 0 - 14 0.0526 - 15 0.0263 - 29 0.0263 - 40 0.605 - 41 0.211 - 42 0.0789 - - 57 69 7 0 - 0 0.0145 - 2 0.0145 - 21 0.0145 - 29 0.0145 - 40 0.652 - 41 0.232 - 42 0.058 - - 62 17 4 0 - 4 0.0588 - 40 0.647 - 41 0.235 - 42 0.0588 - - 64 21 3 0 - 40 0.714 - 41 0.238 - 42 0.0476 - - 69 34 6 0 - 0 0.0294 - 13 0.0588 - 26 0.0294 - 40 0.618 - 41 0.206 - 42 0.0588 - - 71 1 1 0 - 4 1 - - 48 50 10 0 - 2 0.04 - 4 0.02 - 7 0.1 - 13 0.04 - 14 0.04 - 26 0.02 - 32 0.04 - 40 0.48 - 41 0.16 - 42 0.06 - - 49 57 10 0 - 0 0.0351 - 2 0.0175 - 4 0.0175 - 7 0.14 - 8 0.0351 - 26 0.0175 - 31 0.0175 - 32 0.0175 - 40 0.509 - 41 0.193 - - 55 48 6 0 - 14 0.0417 - 15 0.0417 - 29 0.0208 - 40 0.583 - 41 0.229 - 42 0.0833 - - 57 70 7 0 - 0 0.0143 - 2 0.0143 - 21 0.0143 - 29 0.0143 - 40 0.643 - 41 0.243 - 42 0.0571 - - 58 3 2 0 - 7 0.667 - 14 0.333 - - 62 21 4 0 - 4 0.0476 - 40 0.714 - 41 0.19 - 42 0.0476 - - 64 23 4 0 - 7 0.0435 - 40 0.696 - 41 0.217 - 42 0.0435 - - 65 1 1 0 - 46 1 - - 69 35 7 0 - 0 0.0286 - 13 0.0571 - 15 0.0286 - 26 0.0286 - 40 0.6 - 41 0.2 - 42 0.0571 - -69 482293 48 46 - 0 0.0224 - 1 0.00057 - 2 0.0308 - 3 0.00808 - 4 0.0469 - 5 0.000257 - 6 4.15e-05 - 7 0.0864 - 8 0.0202 - 9 0.00219 - 10 0.000199 - 11 2.07e-06 - 12 0.00331 - 13 0.0122 - 14 0.00875 - 15 0.014 - 16 8.5e-05 - 17 0.000261 - 18 8.29e-06 - 19 0.00971 - 20 0.00668 - 21 0.0342 - 22 0.00161 - 23 0.000114 - 24 0.00542 - 25 4.15e-06 - 26 0.0285 - 27 5.81e-05 - 28 0.0407 - 29 0.00358 - 30 0.0133 - 31 0.0242 - 32 0.000977 - 33 0.0015 - 34 0.000506 - 35 0.000666 - 36 4.15e-06 - 37 0.00212 - 38 2.28e-05 - 39 0.00219 - 40 0.418 - 41 0.127 - 42 0.0138 - 43 0.00104 - 44 0.00067 - 45 0.00305 - 46 0.0022 - 47 0.00131 - - 0 33826 40 4 - 0 0.0458 - 1 0.00556 - 2 0.000887 - 3 0.0145 - 4 0.115 - 5 5.91e-05 - 7 0.0456 - 8 0.1 - 9 0.00955 - 10 0.000237 - 12 5.91e-05 - 13 0.021 - 14 0.00958 - 15 0.00695 - 16 0.000118 - 17 0.000562 - 19 0.00251 - 20 0.00364 - 21 0.192 - 22 0.00514 - 23 0.000828 - 24 0.000769 - 26 0.0203 - 27 2.96e-05 - 28 0.00304 - 29 0.00263 - 30 0.0892 - 31 0.274 - 33 8.87e-05 - 34 0.000148 - 35 0.00106 - 37 0.00154 - 39 0.00585 - 40 0.00411 - 41 0.00532 - 42 0.00101 - 43 0.000148 - 44 0.000384 - 45 0.0103 - 46 0.000148 - - 44 1 1 0 - 43 1 - - 45 6 4 0 - 4 0.167 - 8 0.167 - 21 0.5 - 26 0.167 - - 49 55 14 0 - 0 0.0364 - 3 0.0909 - 4 0.127 - 8 0.0727 - 9 0.0364 - 13 0.0545 - 14 0.0182 - 15 0.0182 - 21 0.164 - 26 0.0364 - 30 0.0909 - 31 0.218 - 41 0.0182 - 42 0.0182 - - 57 7 5 0 - 8 0.143 - 13 0.143 - 21 0.429 - 30 0.143 - 31 0.143 - - 1 555 21 1 - 0 0.027 - 3 0.00901 - 4 0.11 - 7 0.0126 - 8 0.0613 - 9 0.00721 - 13 0.0342 - 14 0.00901 - 15 0.00721 - 17 0.0018 - 19 0.0036 - 20 0.00541 - 21 0.0541 - 22 0.0018 - 26 0.0234 - 28 0.0018 - 29 0.0396 - 31 0.577 - 35 0.0018 - 40 0.0018 - 45 0.0108 - - 49 6 3 0 - 0 0.167 - 3 0.167 - 31 0.667 - - 2 3483 26 11 - 0 0.152 - 1 0.00258 - 3 0.00632 - 4 0.00718 - 7 0.0135 - 8 0.0126 - 9 0.00201 - 12 0.0617 - 13 0.00689 - 14 0.00402 - 15 0.00144 - 20 0.00172 - 21 0.0939 - 22 0.00172 - 23 0.000287 - 26 0.0284 - 28 0.159 - 29 0.194 - 30 0.0764 - 31 0.0485 - 32 0.0356 - 33 0.0744 - 39 0.00172 - 41 0.0089 - 42 0.000574 - 45 0.00488 - - 0 2 2 0 - 4 0.5 - 30 0.5 - - 28 1 1 0 - 13 1 - - 31 1 1 0 - 8 1 - - 41 654 21 0 - 0 0.19 - 1 0.00306 - 3 0.00765 - 4 0.00917 - 7 0.0291 - 8 0.00612 - 9 0.00153 - 12 0.0765 - 13 0.00306 - 14 0.00306 - 21 0.15 - 22 0.00459 - 26 0.0352 - 28 0.0703 - 29 0.226 - 30 0.052 - 31 0.0138 - 32 0.0291 - 33 0.081 - 41 0.00306 - 45 0.00612 - - 42 39 13 0 - 0 0.103 - 4 0.0256 - 7 0.0769 - 12 0.103 - 21 0.154 - 26 0.0256 - 28 0.128 - 29 0.154 - 30 0.0513 - 31 0.0513 - 32 0.0513 - 33 0.0256 - 41 0.0513 - - 46 38 9 0 - 0 0.132 - 12 0.0789 - 21 0.105 - 28 0.105 - 29 0.289 - 30 0.0263 - 31 0.0526 - 33 0.158 - 45 0.0526 - - 47 1 1 0 - 4 1 - - 55 4 4 0 - 8 0.25 - 21 0.25 - 29 0.25 - 30 0.25 - - 57 2 2 0 - 3 0.5 - 7 0.5 - - 58 5 5 0 - 12 0.2 - 21 0.2 - 28 0.2 - 30 0.2 - 45 0.2 - - 69 2736 26 0 - 0 0.144 - 1 0.00256 - 3 0.00585 - 4 0.00585 - 7 0.00877 - 8 0.0139 - 9 0.00219 - 12 0.0574 - 13 0.00768 - 14 0.00439 - 15 0.00183 - 20 0.00219 - 21 0.0793 - 22 0.0011 - 23 0.000365 - 26 0.0274 - 28 0.182 - 29 0.186 - 30 0.0826 - 31 0.057 - 32 0.0376 - 33 0.0727 - 39 0.00219 - 41 0.00987 - 42 0.000731 - 45 0.00365 - - 4 42 14 2 - 0 0.0238 - 4 0.0238 - 6 0.0238 - 7 0.143 - 8 0.0952 - 13 0.0238 - 16 0.0238 - 21 0.0952 - 28 0.0952 - 29 0.0952 - 30 0.0952 - 31 0.214 - 32 0.0238 - 45 0.0238 - - 0 34 12 0 - 0 0.0294 - 4 0.0294 - 6 0.0294 - 7 0.118 - 8 0.118 - 13 0.0294 - 16 0.0294 - 21 0.0882 - 29 0.118 - 30 0.118 - 31 0.265 - 45 0.0294 - - 12 4 2 0 - 28 0.75 - 32 0.25 - - 7 36 11 4 - 4 0.139 - 7 0.0556 - 8 0.0833 - 13 0.0278 - 14 0.0278 - 19 0.0278 - 20 0.0278 - 26 0.472 - 28 0.0556 - 37 0.0278 - 41 0.0556 - - 29 2 2 0 - 8 0.5 - 13 0.5 - - 30 3 3 0 - 4 0.333 - 7 0.333 - 41 0.333 - - 47 23 5 0 - 4 0.13 - 8 0.087 - 14 0.0435 - 19 0.0435 - 26 0.696 - - 69 3 2 0 - 28 0.667 - 37 0.333 - - 8 152 17 2 - 2 0.0329 - 3 0.0132 - 4 0.0329 - 7 0.395 - 8 0.0329 - 13 0.0658 - 14 0.0724 - 15 0.0197 - 20 0.0197 - 21 0.0395 - 22 0.00658 - 24 0.0132 - 26 0.0855 - 32 0.00658 - 40 0.125 - 41 0.0263 - 46 0.0132 - - 45 2 1 0 - 46 1 - - 49 22 7 0 - 4 0.0455 - 7 0.5 - 14 0.0455 - 21 0.0455 - 26 0.0909 - 40 0.227 - 41 0.0455 - - 12 9666 21 2 - 0 0.291 - 2 0.000724 - 4 0.000828 - 7 0.00197 - 12 0.000207 - 13 0.00031 - 21 0.171 - 22 0.00124 - 23 0.000207 - 26 0.00331 - 28 0.517 - 29 0.000621 - 31 0.000517 - 32 0.000103 - 40 0.00207 - 41 0.00331 - 42 0.000724 - 43 0.000103 - 44 0.000207 - 45 0.00455 - 46 0.000207 - - 41 4 1 0 - 0 1 - - 44 1 1 0 - 43 1 - - 13 297 26 2 - 0 0.0101 - 2 0.0168 - 3 0.0135 - 4 0.0976 - 7 0.256 - 8 0.0168 - 9 0.00337 - 12 0.0101 - 13 0.0404 - 14 0.111 - 15 0.0202 - 19 0.00673 - 20 0.0101 - 21 0.0438 - 22 0.00337 - 24 0.0707 - 26 0.0606 - 29 0.00337 - 30 0.0135 - 31 0.00337 - 39 0.00337 - 40 0.0707 - 41 0.0909 - 42 0.0135 - 45 0.00337 - 46 0.00673 - - 2 3 3 0 - 7 0.333 - 13 0.333 - 46 0.333 - - 45 1 1 0 - 46 1 - - 14 122 18 0 - 2 0.0164 - 4 0.082 - 7 0.197 - 8 0.0328 - 13 0.0246 - 14 0.082 - 15 0.0164 - 19 0.0082 - 21 0.0246 - 24 0.041 - 26 0.246 - 30 0.0246 - 31 0.0082 - 32 0.0082 - 34 0.0082 - 37 0.0164 - 40 0.0984 - 41 0.0656 - - 15 35 10 0 - 4 0.114 - 7 0.143 - 15 0.514 - 19 0.0286 - 21 0.0286 - 24 0.0286 - 26 0.0286 - 32 0.0286 - 42 0.0286 - 46 0.0571 - - 18 27 10 0 - 3 0.037 - 7 0.185 - 8 0.296 - 9 0.148 - 13 0.0741 - 14 0.0741 - 15 0.037 - 20 0.0741 - 37 0.037 - 45 0.037 - - 21 4005 31 12 - 0 0.146 - 1 0.0035 - 2 0.00025 - 3 0.0015 - 4 0.0442 - 7 0.0215 - 8 0.0662 - 9 0.00025 - 12 0.000749 - 13 0.0115 - 14 0.00175 - 15 0.00125 - 20 0.00225 - 21 0.0969 - 24 0.000499 - 26 0.00449 - 28 0.405 - 29 0.0135 - 30 0.04 - 31 0.118 - 32 0.000749 - 33 0.000749 - 35 0.000749 - 37 0.000749 - 40 0.00874 - 41 0.00524 - 42 0.00125 - 43 0.00025 - 45 0.002 - 46 0.00025 - 47 0.00025 - - 0 2915 27 0 - 0 0.0803 - 1 0.0048 - 2 0.000343 - 3 0.00172 - 4 0.0583 - 7 0.0274 - 8 0.0864 - 9 0.000343 - 13 0.0141 - 14 0.0024 - 15 0.00172 - 20 0.00309 - 21 0.113 - 24 0.000343 - 26 0.0024 - 28 0.352 - 29 0.0151 - 30 0.0528 - 31 0.162 - 32 0.000343 - 35 0.00103 - 37 0.00103 - 40 0.0103 - 41 0.00515 - 42 0.00137 - 43 0.000343 - 45 0.00172 - - 2 30 12 0 - 0 0.0333 - 4 0.0333 - 8 0.0333 - 12 0.1 - 21 0.0667 - 28 0.267 - 29 0.2 - 30 0.0667 - 31 0.0333 - 32 0.0333 - 33 0.0667 - 41 0.0667 - - 12 987 12 0 - 0 0.347 - 3 0.00101 - 4 0.00101 - 7 0.00304 - 21 0.0466 - 26 0.00101 - 28 0.588 - 40 0.00405 - 41 0.00405 - 42 0.00101 - 45 0.00304 - 46 0.00101 - - 21 3 2 0 - 8 0.667 - 28 0.333 - - 28 1 1 0 - 47 1 - - 32 7 6 0 - 4 0.143 - 13 0.286 - 26 0.143 - 29 0.143 - 30 0.143 - 40 0.143 - - 33 1 1 0 - 13 1 - - 41 20 9 0 - 0 0.05 - 7 0.05 - 13 0.05 - 21 0.15 - 26 0.2 - 28 0.25 - 29 0.15 - 30 0.05 - 33 0.05 - - 42 1 1 0 - 32 1 - - 45 4 2 0 - 8 0.5 - 21 0.5 - - 47 12 7 0 - 0 0.0833 - 4 0.167 - 7 0.0833 - 8 0.0833 - 13 0.0833 - 21 0.0833 - 26 0.417 - - 49 21 8 0 - 0 0.143 - 4 0.0952 - 7 0.0476 - 8 0.333 - 21 0.19 - 24 0.0476 - 30 0.0952 - 31 0.0476 - - 22 5 3 0 - 26 0.2 - 41 0.6 - 42 0.2 - - 25 2 1 0 - 6 1 - - 26 13048 19 0 - 0 0.112 - 1 7.66e-05 - 4 0.000307 - 7 0.000153 - 8 0.000613 - 13 0.0036 - 15 0.000153 - 21 0.0082 - 22 0.00107 - 28 0.867 - 29 0.00023 - 30 0.000153 - 31 0.000153 - 40 0.000996 - 41 0.000536 - 42 7.66e-05 - 44 0.000153 - 45 0.00429 - 46 0.000153 - - 28 20867 44 10 - 0 0.00192 - 1 0.000335 - 2 0.00441 - 3 0.0235 - 4 0.245 - 5 0.000671 - 6 9.58e-05 - 7 0.129 - 8 0.073 - 9 0.0104 - 10 0.000767 - 12 0.000575 - 13 0.0718 - 14 0.0604 - 15 0.0381 - 16 0.000575 - 17 0.00163 - 18 0.000192 - 19 0.0453 - 20 0.054 - 21 0.0454 - 22 0.00407 - 23 9.58e-05 - 24 0.0409 - 26 0.0441 - 27 0.000144 - 28 0.00565 - 30 0.0123 - 31 0.00398 - 33 4.79e-05 - 34 0.000863 - 35 0.0046 - 36 4.79e-05 - 37 0.00666 - 38 0.000144 - 39 0.0102 - 40 0.0288 - 41 0.0185 - 42 0.00259 - 43 0.000192 - 44 0.0012 - 45 0.00474 - 46 0.00264 - 47 0.000144 - - 2 142 19 0 - 3 0.0211 - 4 0.296 - 7 0.0493 - 8 0.0915 - 13 0.0704 - 14 0.12 - 15 0.0282 - 16 0.00704 - 19 0.0563 - 20 0.0423 - 21 0.0211 - 31 0.00704 - 35 0.00704 - 37 0.00704 - 40 0.0634 - 41 0.0704 - 42 0.0211 - 44 0.00704 - 45 0.0141 - - 13 3 2 0 - 4 0.667 - 46 0.333 - - 21 8 7 0 - 4 0.25 - 8 0.125 - 13 0.125 - 19 0.125 - 21 0.125 - 41 0.125 - 42 0.125 - - 42 5 3 0 - 4 0.6 - 14 0.2 - 24 0.2 - - 44 1 1 0 - 43 1 - - 45 34 10 0 - 2 0.0294 - 4 0.0882 - 7 0.0294 - 13 0.0294 - 17 0.0294 - 21 0.118 - 24 0.0294 - 35 0.0294 - 40 0.0294 - 46 0.588 - - 47 20444 44 0 - 0 0.00196 - 1 0.000342 - 2 0.0044 - 3 0.0238 - 4 0.243 - 5 0.000685 - 6 9.78e-05 - 7 0.131 - 8 0.0732 - 9 0.0105 - 10 0.000783 - 12 0.000587 - 13 0.072 - 14 0.0602 - 15 0.038 - 16 0.000538 - 17 0.00161 - 18 0.000196 - 19 0.0453 - 20 0.0539 - 21 0.0458 - 22 0.00406 - 23 9.78e-05 - 24 0.0412 - 26 0.0446 - 27 9.78e-05 - 28 0.00577 - 30 0.0125 - 31 0.00401 - 33 4.89e-05 - 34 0.00088 - 35 0.00445 - 36 4.89e-05 - 37 0.00675 - 38 0.000147 - 39 0.0103 - 40 0.0288 - 41 0.018 - 42 0.00235 - 43 0.000147 - 44 0.00113 - 45 0.0047 - 46 0.00157 - 47 0.000147 - - 49 216 24 0 - 2 0.00463 - 4 0.352 - 7 0.0694 - 8 0.0602 - 9 0.00463 - 13 0.0556 - 14 0.0509 - 15 0.0741 - 19 0.0463 - 20 0.088 - 21 0.0185 - 22 0.00926 - 24 0.0417 - 26 0.0417 - 27 0.00463 - 30 0.00926 - 35 0.0139 - 39 0.00463 - 40 0.00463 - 41 0.0185 - 42 0.00926 - 44 0.00463 - 45 0.00463 - 46 0.00926 - - 50 3 3 0 - 4 0.333 - 40 0.333 - 41 0.333 - - 57 3 3 0 - 3 0.333 - 4 0.333 - 8 0.333 - - 29 21672 44 8 - 0 0.00198 - 1 9.23e-05 - 2 0.0024 - 3 0.0832 - 4 0.195 - 5 0.00157 - 6 4.61e-05 - 7 0.138 - 8 0.0454 - 9 0.00655 - 10 0.00111 - 12 0.000554 - 13 0.0358 - 14 0.0287 - 15 0.0713 - 16 0.000138 - 17 0.000738 - 19 0.0812 - 20 0.0351 - 21 0.0391 - 22 0.00401 - 23 0.000231 - 24 0.0213 - 26 0.072 - 27 0.000138 - 28 0.00263 - 29 0.000277 - 30 0.00992 - 31 0.00291 - 32 4.61e-05 - 33 0.000231 - 34 0.000185 - 35 0.000738 - 37 0.00175 - 38 0.000138 - 39 0.0162 - 40 0.0611 - 41 0.0302 - 42 0.00392 - 43 0.000138 - 44 0.000138 - 45 0.00383 - 46 0.000461 - 47 4.61e-05 - - 2 33 13 0 - 3 0.0606 - 4 0.273 - 7 0.152 - 8 0.0909 - 13 0.0303 - 14 0.0303 - 19 0.0606 - 20 0.0606 - 24 0.0303 - 40 0.0303 - 41 0.121 - 42 0.0303 - 45 0.0303 - - 41 6 6 0 - 4 0.167 - 14 0.167 - 20 0.167 - 26 0.167 - 28 0.167 - 42 0.167 - - 44 1 1 0 - 43 1 - - 45 14 7 0 - 4 0.214 - 7 0.143 - 14 0.0714 - 19 0.0714 - 21 0.0714 - 27 0.0714 - 46 0.357 - - 47 21324 44 0 - 0 0.00202 - 1 9.38e-05 - 2 0.00234 - 3 0.0843 - 4 0.193 - 5 0.00159 - 6 4.69e-05 - 7 0.138 - 8 0.0455 - 9 0.00642 - 10 0.00113 - 12 0.000563 - 13 0.0356 - 14 0.0286 - 15 0.0715 - 16 0.000141 - 17 0.00075 - 19 0.0818 - 20 0.0347 - 21 0.039 - 22 0.00394 - 23 0.000234 - 24 0.0213 - 26 0.0718 - 27 9.38e-05 - 28 0.00263 - 29 0.000281 - 30 0.00994 - 31 0.00281 - 32 4.69e-05 - 33 0.000234 - 34 0.000141 - 35 0.000703 - 37 0.00169 - 38 0.000141 - 39 0.0164 - 40 0.0618 - 41 0.0303 - 42 0.00389 - 43 9.38e-05 - 44 0.000141 - 45 0.00385 - 46 0.000141 - 47 4.69e-05 - - 49 281 24 0 - 2 0.00712 - 3 0.0178 - 4 0.267 - 7 0.142 - 8 0.0356 - 9 0.0142 - 13 0.0463 - 14 0.0285 - 15 0.0783 - 19 0.0356 - 20 0.0498 - 21 0.0498 - 22 0.0107 - 24 0.0249 - 26 0.103 - 30 0.0107 - 31 0.0107 - 34 0.00356 - 35 0.00356 - 37 0.00712 - 39 0.00712 - 40 0.0214 - 41 0.0178 - 46 0.00712 - - 55 5 4 0 - 7 0.2 - 13 0.2 - 19 0.4 - 20 0.2 - - 57 7 5 0 - 4 0.429 - 9 0.143 - 14 0.143 - 19 0.143 - 20 0.143 - - 30 11209 39 4 - 0 0.00241 - 2 0.00419 - 3 0.0186 - 4 0.22 - 5 0.000357 - 7 0.173 - 8 0.078 - 9 0.0106 - 10 0.000892 - 12 0.000178 - 13 0.0741 - 14 0.0694 - 15 0.0376 - 16 0.000714 - 17 0.00143 - 19 0.0317 - 20 0.0388 - 21 0.0465 - 22 0.00607 - 23 8.92e-05 - 24 0.0352 - 26 0.0869 - 27 0.000268 - 28 0.00116 - 29 0.000357 - 30 0.00473 - 31 0.00419 - 32 8.92e-05 - 34 0.000268 - 35 0.00294 - 37 0.00205 - 39 0.00714 - 40 0.0168 - 41 0.0121 - 42 0.00223 - 43 0.000268 - 44 0.000446 - 45 0.00598 - 46 0.00223 - - 2 63 12 0 - 4 0.238 - 7 0.127 - 8 0.111 - 13 0.111 - 14 0.206 - 15 0.0317 - 19 0.0159 - 20 0.0635 - 21 0.0159 - 40 0.0317 - 41 0.0317 - 42 0.0159 - - 21 12 9 0 - 3 0.0833 - 4 0.167 - 7 0.25 - 14 0.0833 - 20 0.0833 - 26 0.0833 - 35 0.0833 - 37 0.0833 - 40 0.0833 - - 45 15 4 0 - 4 0.133 - 7 0.0667 - 14 0.0667 - 46 0.733 - - 49 214 24 0 - 2 0.00935 - 3 0.0187 - 4 0.28 - 7 0.136 - 8 0.0888 - 9 0.00467 - 13 0.0561 - 14 0.0654 - 15 0.0467 - 19 0.0234 - 20 0.0514 - 21 0.0374 - 24 0.0327 - 26 0.0794 - 27 0.00467 - 31 0.00935 - 35 0.00467 - 37 0.00935 - 39 0.00935 - 40 0.00935 - 41 0.00935 - 42 0.00467 - 45 0.00467 - 46 0.00467 - - 31 15551 42 7 - 0 0.00386 - 1 0.000129 - 2 0.0102 - 3 0.0112 - 4 0.0743 - 5 0.000129 - 7 0.434 - 8 0.0333 - 9 0.0027 - 10 0.000257 - 12 0.00122 - 13 0.0231 - 14 0.0143 - 15 0.0274 - 16 0.000129 - 17 0.000836 - 19 0.0116 - 20 0.0116 - 21 0.0532 - 22 0.00373 - 23 0.000257 - 24 0.0271 - 26 0.132 - 28 0.000836 - 29 0.000965 - 30 0.00514 - 31 0.00174 - 32 0.000643 - 33 0.000322 - 34 0.000322 - 35 0.000707 - 37 0.00257 - 38 6.43e-05 - 39 0.00367 - 40 0.0578 - 41 0.037 - 42 0.00424 - 43 0.00103 - 44 0.000386 - 45 0.00482 - 46 0.00167 - 47 0.000193 - - 2 72 17 0 - 4 0.0694 - 7 0.417 - 9 0.0139 - 14 0.0278 - 17 0.0139 - 19 0.0139 - 20 0.0139 - 21 0.0417 - 26 0.0278 - 29 0.0139 - 30 0.0278 - 39 0.0139 - 40 0.153 - 41 0.0972 - 42 0.0139 - 43 0.0139 - 46 0.0278 - - 21 9 4 0 - 0 0.111 - 7 0.667 - 12 0.111 - 47 0.111 - - 41 2 2 0 - 2 0.5 - 40 0.5 - - 45 13 6 0 - 7 0.231 - 8 0.0769 - 17 0.0769 - 21 0.0769 - 24 0.0769 - 46 0.462 - - 47 14860 42 0 - 0 0.0035 - 1 0.000135 - 2 0.00976 - 3 0.0116 - 4 0.0758 - 5 0.000135 - 7 0.43 - 8 0.0338 - 9 0.00276 - 10 0.000269 - 12 0.00108 - 13 0.0238 - 14 0.0147 - 15 0.028 - 16 0.000135 - 17 0.00074 - 19 0.0118 - 20 0.0114 - 21 0.0543 - 22 0.00384 - 23 0.000269 - 24 0.0281 - 26 0.134 - 28 0.000875 - 29 0.000875 - 30 0.00518 - 31 0.00182 - 32 0.000673 - 33 0.000336 - 34 0.000336 - 35 0.00074 - 37 0.00262 - 38 6.73e-05 - 39 0.00377 - 40 0.0559 - 41 0.0355 - 42 0.00397 - 43 0.000875 - 44 0.000404 - 45 0.00491 - 46 0.00101 - 47 0.000135 - - 49 583 25 0 - 0 0.012 - 2 0.0223 - 3 0.00172 - 4 0.0429 - 7 0.52 - 8 0.024 - 12 0.00343 - 13 0.0103 - 14 0.00515 - 15 0.0172 - 19 0.00515 - 20 0.0172 - 21 0.0274 - 22 0.00172 - 24 0.00686 - 26 0.0909 - 29 0.00172 - 30 0.00172 - 37 0.00172 - 40 0.0961 - 41 0.0686 - 42 0.0103 - 43 0.00343 - 45 0.00343 - 46 0.00515 - - 55 6 2 0 - 7 0.833 - 40 0.167 - - 32 5375 43 3 - 0 0.00651 - 1 0.000186 - 2 0.00335 - 3 0.0134 - 4 0.192 - 5 0.00447 - 6 0.000186 - 7 0.169 - 8 0.0662 - 9 0.0108 - 10 0.00093 - 12 0.00372 - 13 0.0506 - 14 0.0545 - 15 0.0344 - 16 0.000186 - 17 0.00093 - 19 0.0768 - 20 0.0218 - 21 0.0508 - 22 0.00409 - 23 0.000558 - 24 0.0203 - 26 0.0941 - 28 0.0026 - 29 0.000372 - 30 0.0104 - 31 0.00391 - 32 0.000186 - 33 0.000558 - 34 0.000558 - 35 0.00447 - 36 0.000186 - 37 0.00521 - 39 0.00428 - 40 0.0383 - 41 0.0387 - 42 0.00521 - 43 0.000558 - 44 0.000558 - 45 0.00316 - 46 0.000744 - 47 0.000186 - - 2 34 10 0 - 3 0.0294 - 4 0.0882 - 7 0.235 - 8 0.176 - 13 0.0588 - 14 0.206 - 20 0.0294 - 21 0.0294 - 40 0.0882 - 41 0.0588 - - 45 4 3 0 - 4 0.25 - 24 0.25 - 46 0.5 - - 49 79 19 0 - 3 0.0127 - 4 0.19 - 7 0.19 - 8 0.114 - 9 0.0127 - 12 0.0127 - 13 0.0886 - 14 0.0506 - 19 0.0506 - 20 0.0253 - 21 0.0253 - 24 0.0253 - 26 0.0759 - 30 0.0127 - 37 0.0127 - 40 0.0506 - 41 0.0253 - 42 0.0127 - 43 0.0127 - - 33 9565 42 3 - 0 0.0024 - 1 0.000209 - 2 0.00157 - 3 0.0238 - 4 0.181 - 5 0.00136 - 6 0.000105 - 7 0.141 - 8 0.0558 - 9 0.00659 - 10 0.00115 - 12 0.00178 - 13 0.0474 - 14 0.0311 - 15 0.124 - 16 0.000627 - 17 0.000732 - 19 0.0499 - 20 0.0226 - 21 0.0374 - 22 0.00355 - 23 0.000314 - 24 0.0154 - 26 0.0935 - 28 0.00178 - 29 0.000314 - 30 0.00711 - 31 0.0045 - 32 0.000209 - 34 0.000418 - 35 0.00157 - 37 0.0046 - 38 0.000105 - 39 0.0046 - 40 0.0667 - 41 0.0484 - 42 0.00815 - 43 0.000209 - 44 0.000418 - 45 0.00742 - 46 0.000209 - 47 0.000105 - - 2 37 10 0 - 4 0.243 - 7 0.135 - 8 0.162 - 9 0.027 - 12 0.027 - 13 0.135 - 14 0.135 - 15 0.027 - 21 0.027 - 40 0.0811 - - 45 8 7 0 - 7 0.125 - 8 0.125 - 13 0.125 - 21 0.125 - 24 0.125 - 26 0.25 - 46 0.125 - - 49 142 21 0 - 0 0.00704 - 3 0.0141 - 4 0.324 - 7 0.12 - 8 0.0634 - 10 0.00704 - 13 0.0634 - 14 0.00704 - 15 0.0352 - 17 0.0141 - 19 0.0845 - 20 0.0634 - 21 0.0211 - 24 0.0493 - 26 0.0423 - 30 0.0141 - 39 0.00704 - 40 0.0211 - 41 0.00704 - 42 0.0141 - 45 0.0211 - - 40 18 4 0 - 27 0.0556 - 43 0.0556 - 46 0.333 - 47 0.556 - - 41 6243 35 21 - 0 0.00416 - 1 0.0024 - 2 0.113 - 3 0.00432 - 4 0.0271 - 6 0.000641 - 7 0.276 - 8 0.0128 - 9 0.000481 - 10 0.000481 - 12 0.00176 - 13 0.00449 - 14 0.00384 - 15 0.00144 - 16 0.00016 - 19 0.00256 - 20 0.00176 - 21 0.149 - 22 0.00032 - 24 0.00016 - 26 0.0284 - 27 0.000961 - 28 0.0123 - 29 0.0111 - 30 0.222 - 31 0.0368 - 32 0.00352 - 33 0.00352 - 34 0.0103 - 35 0.00128 - 37 0.00657 - 39 0.000481 - 44 0.00016 - 45 0.0365 - 46 0.0189 - - 0 65 14 0 - 0 0.0154 - 4 0.0154 - 7 0.415 - 13 0.0462 - 15 0.0154 - 16 0.0154 - 19 0.0923 - 21 0.185 - 26 0.0154 - 27 0.0308 - 28 0.0154 - 30 0.0154 - 37 0.0615 - 45 0.0615 - - 2 14 4 0 - 4 0.0714 - 7 0.5 - 21 0.357 - 26 0.0714 - - 12 12 3 0 - 3 0.0833 - 7 0.75 - 21 0.167 - - 13 4 4 0 - 7 0.25 - 27 0.25 - 30 0.25 - 46 0.25 - - 28 63 13 0 - 2 0.0159 - 4 0.0159 - 6 0.0159 - 7 0.286 - 8 0.0476 - 12 0.0159 - 13 0.0159 - 14 0.0317 - 21 0.206 - 28 0.0159 - 30 0.0952 - 31 0.0159 - 45 0.222 - - 29 225 14 0 - 0 0.00444 - 7 0.107 - 13 0.00444 - 14 0.00444 - 15 0.00444 - 19 0.00444 - 20 0.00444 - 21 0.12 - 22 0.00444 - 26 0.0133 - 30 0.249 - 31 0.00444 - 45 0.471 - 46 0.00444 - - 30 30 5 0 - 2 0.0667 - 7 0.433 - 21 0.133 - 30 0.0333 - 45 0.333 - - 31 73 10 0 - 4 0.0274 - 7 0.411 - 8 0.0137 - 12 0.0137 - 14 0.0274 - 21 0.233 - 26 0.0137 - 30 0.205 - 31 0.0274 - 45 0.0274 - - 32 25 9 0 - 4 0.08 - 7 0.2 - 8 0.04 - 15 0.04 - 20 0.04 - 21 0.28 - 30 0.12 - 37 0.04 - 45 0.16 - - 33 92 8 0 - 7 0.152 - 14 0.0217 - 19 0.0109 - 21 0.0978 - 27 0.0109 - 28 0.0217 - 30 0.185 - 45 0.5 - - 48 218 13 0 - 1 0.00459 - 2 0.00459 - 3 0.00459 - 4 0.00917 - 7 0.44 - 8 0.0183 - 15 0.00459 - 21 0.234 - 26 0.00917 - 30 0.202 - 31 0.0275 - 45 0.00459 - 46 0.0367 - - 49 387 22 0 - 0 0.00258 - 1 0.00258 - 2 0.0155 - 3 0.00258 - 4 0.0284 - 7 0.488 - 8 0.0233 - 13 0.00775 - 14 0.00775 - 15 0.00258 - 19 0.00517 - 20 0.00258 - 21 0.106 - 26 0.0362 - 28 0.00775 - 30 0.178 - 31 0.0155 - 34 0.0129 - 35 0.00775 - 37 0.0129 - 45 0.0233 - 46 0.0103 - - 52 8 5 0 - 4 0.125 - 8 0.375 - 13 0.125 - 37 0.125 - 39 0.25 - - 55 1378 26 0 - 1 0.00145 - 2 0.0116 - 3 0.00508 - 4 0.0152 - 6 0.000726 - 7 0.319 - 8 0.00871 - 10 0.00145 - 12 0.000726 - 13 0.00218 - 14 0.0029 - 19 0.00145 - 20 0.000726 - 21 0.166 - 26 0.0689 - 27 0.00145 - 28 0.00145 - 29 0.000726 - 30 0.296 - 31 0.0537 - 33 0.000726 - 34 0.00581 - 35 0.00145 - 37 0.00871 - 45 0.00943 - 46 0.0145 - - 57 1875 30 0 - 0 0.00373 - 1 0.00427 - 2 0.0101 - 3 0.00427 - 4 0.0331 - 6 0.00107 - 7 0.341 - 8 0.0197 - 9 0.000533 - 10 0.000533 - 12 0.00107 - 13 0.00427 - 14 0.00267 - 15 0.00213 - 19 0.0016 - 20 0.00213 - 21 0.202 - 24 0.000533 - 26 0.0235 - 28 0.00267 - 29 0.0016 - 30 0.25 - 31 0.0485 - 32 0.00107 - 34 0.00853 - 35 0.00107 - 37 0.008 - 39 0.000533 - 45 0.00693 - 46 0.0133 - - 58 6 5 0 - 4 0.167 - 7 0.333 - 21 0.167 - 31 0.167 - 45 0.167 - - 59 16 8 0 - 2 0.0625 - 7 0.25 - 8 0.0625 - 13 0.0625 - 21 0.312 - 28 0.0625 - 30 0.125 - 46 0.0625 - - 62 353 19 0 - 0 0.00283 - 2 0.0113 - 3 0.00283 - 4 0.0085 - 7 0.34 - 8 0.0142 - 13 0.00283 - 14 0.00283 - 21 0.122 - 26 0.00567 - 29 0.00567 - 30 0.354 - 31 0.0567 - 34 0.00567 - 35 0.00283 - 37 0.0085 - 44 0.00283 - 45 0.00283 - 46 0.0482 - - 64 171 17 0 - 0 0.0117 - 1 0.00585 - 2 0.0234 - 4 0.0175 - 7 0.327 - 12 0.0117 - 13 0.00585 - 19 0.00585 - 21 0.117 - 26 0.0175 - 28 0.00585 - 29 0.00585 - 30 0.351 - 31 0.0234 - 34 0.0117 - 45 0.0117 - 46 0.0468 - - 68 7 6 0 - 7 0.143 - 21 0.143 - 26 0.143 - 30 0.286 - 45 0.143 - 46 0.143 - - 69 1214 24 0 - 0 0.0107 - 1 0.00165 - 2 0.537 - 3 0.00659 - 4 0.0478 - 7 0.0231 - 8 0.00329 - 9 0.00165 - 12 0.00329 - 13 0.00412 - 14 0.00329 - 20 0.00247 - 21 0.0527 - 22 0.000824 - 26 0.00824 - 28 0.0502 - 29 0.0511 - 30 0.0865 - 31 0.0198 - 32 0.0165 - 33 0.0173 - 34 0.0255 - 45 0.000824 - 46 0.0255 - - 42 485 30 16 - 0 0.00412 - 2 0.0866 - 3 0.0103 - 4 0.136 - 6 0.00206 - 7 0.144 - 8 0.0124 - 9 0.00206 - 11 0.00206 - 12 0.0103 - 13 0.0165 - 14 0.0124 - 15 0.0206 - 19 0.0103 - 21 0.101 - 22 0.00206 - 23 0.00206 - 26 0.00825 - 28 0.0103 - 29 0.00206 - 30 0.0474 - 31 0.0165 - 33 0.00412 - 34 0.00619 - 35 0.00619 - 37 0.00619 - 39 0.00206 - 42 0.00619 - 44 0.00206 - 45 0.307 - - 0 14 10 0 - 0 0.0714 - 2 0.0714 - 4 0.0714 - 7 0.143 - 15 0.143 - 28 0.143 - 30 0.0714 - 35 0.0714 - 42 0.0714 - 45 0.143 - - 12 2 2 0 - 0 0.5 - 11 0.5 - - 28 9 8 0 - 4 0.111 - 13 0.111 - 14 0.111 - 23 0.111 - 26 0.111 - 35 0.111 - 37 0.111 - 45 0.222 - - 29 63 4 0 - 3 0.0159 - 4 0.0317 - 7 0.0159 - 45 0.937 - - 30 12 3 0 - 4 0.0833 - 7 0.0833 - 45 0.833 - - 32 7 4 0 - 4 0.286 - 7 0.286 - 15 0.143 - 42 0.286 - - 33 49 4 0 - 3 0.0204 - 4 0.0204 - 14 0.0204 - 45 0.939 - - 42 3 2 0 - 4 0.333 - 13 0.667 - - 46 2 2 0 - 7 0.5 - 31 0.5 - - 48 16 7 0 - 4 0.125 - 7 0.25 - 21 0.25 - 26 0.0625 - 30 0.188 - 44 0.0625 - 45 0.0625 - - 49 20 8 0 - 4 0.05 - 7 0.3 - 8 0.1 - 12 0.05 - 13 0.05 - 21 0.25 - 37 0.05 - 45 0.15 - - 55 64 10 0 - 4 0.125 - 7 0.328 - 12 0.0156 - 13 0.0156 - 19 0.0312 - 21 0.25 - 28 0.0156 - 30 0.0938 - 35 0.0156 - 45 0.109 - - 57 82 17 0 - 3 0.0122 - 4 0.171 - 6 0.0122 - 7 0.232 - 8 0.0366 - 9 0.0122 - 12 0.0122 - 13 0.0122 - 14 0.0244 - 15 0.061 - 19 0.0122 - 21 0.146 - 26 0.0244 - 30 0.0366 - 31 0.0122 - 39 0.0122 - 45 0.171 - - 62 14 7 0 - 2 0.0714 - 3 0.0714 - 7 0.357 - 15 0.0714 - 19 0.0714 - 21 0.214 - 30 0.143 - - 64 16 7 0 - 4 0.25 - 7 0.25 - 8 0.0625 - 13 0.0625 - 19 0.0625 - 30 0.25 - 45 0.0625 - - 69 99 17 0 - 2 0.394 - 3 0.0101 - 4 0.242 - 7 0.0202 - 12 0.0202 - 13 0.0101 - 14 0.0202 - 21 0.0808 - 22 0.0101 - 28 0.0202 - 29 0.0101 - 30 0.0303 - 31 0.0505 - 33 0.0202 - 34 0.0303 - 37 0.0101 - 45 0.0202 - - 43 36 15 4 - 0 0.0278 - 2 0.0556 - 4 0.0556 - 7 0.167 - 12 0.0278 - 13 0.0278 - 19 0.0278 - 21 0.139 - 26 0.0556 - 28 0.0278 - 30 0.0278 - 31 0.0556 - 40 0.139 - 41 0.139 - 42 0.0278 - - 0 4 3 0 - 21 0.25 - 30 0.25 - 31 0.5 - - 28 2 2 0 - 13 0.5 - 19 0.5 - - 55 13 7 0 - 2 0.154 - 7 0.231 - 12 0.0769 - 21 0.308 - 26 0.0769 - 40 0.0769 - 41 0.0769 - - 57 9 5 0 - 7 0.222 - 26 0.111 - 40 0.222 - 41 0.333 - 42 0.111 - - 44 27 12 2 - 4 0.111 - 7 0.296 - 8 0.0741 - 13 0.111 - 14 0.037 - 15 0.148 - 26 0.037 - 28 0.037 - 31 0.037 - 34 0.037 - 37 0.037 - 45 0.037 - - 28 8 5 0 - 4 0.125 - 7 0.125 - 8 0.25 - 13 0.25 - 15 0.25 - - 55 5 3 0 - 7 0.6 - 13 0.2 - 26 0.2 - - 45 947 30 20 - 0 0.0169 - 1 0.00106 - 2 0.00211 - 3 0.00845 - 4 0.147 - 5 0.0116 - 6 0.00528 - 7 0.0993 - 8 0.119 - 9 0.00739 - 12 0.00845 - 13 0.0401 - 14 0.0201 - 15 0.0264 - 16 0.00211 - 17 0.00106 - 19 0.141 - 20 0.00422 - 21 0.116 - 22 0.00422 - 26 0.0211 - 27 0.0116 - 28 0.0919 - 29 0.00317 - 30 0.0348 - 31 0.0275 - 34 0.00211 - 35 0.0095 - 37 0.0127 - 42 0.00317 - - 0 241 18 0 - 1 0.00415 - 3 0.0083 - 4 0.149 - 7 0.0664 - 8 0.249 - 9 0.0083 - 12 0.00415 - 13 0.0207 - 14 0.0124 - 15 0.0124 - 21 0.224 - 22 0.0083 - 26 0.0124 - 28 0.0124 - 29 0.00415 - 30 0.104 - 31 0.0954 - 37 0.00415 - - 1 4 3 0 - 7 0.5 - 21 0.25 - 31 0.25 - - 2 14 4 0 - 0 0.286 - 12 0.357 - 28 0.214 - 29 0.143 - - 12 33 4 0 - 0 0.0909 - 21 0.0909 - 28 0.788 - 37 0.0303 - - 21 4 3 0 - 21 0.25 - 28 0.5 - 30 0.25 - - 26 33 2 0 - 21 0.0303 - 28 0.97 - - 28 57 16 0 - 3 0.0351 - 4 0.246 - 7 0.0351 - 8 0.228 - 9 0.0351 - 13 0.123 - 14 0.0351 - 15 0.0351 - 19 0.0175 - 20 0.0175 - 21 0.105 - 22 0.0175 - 26 0.0175 - 28 0.0175 - 30 0.0175 - 35 0.0175 - - 29 48 16 0 - 0 0.0208 - 4 0.25 - 5 0.0208 - 6 0.0417 - 7 0.104 - 8 0.125 - 13 0.0625 - 14 0.0208 - 15 0.0833 - 19 0.0417 - 21 0.0833 - 26 0.0417 - 28 0.0417 - 30 0.0208 - 34 0.0208 - 37 0.0208 - - 30 36 11 0 - 4 0.278 - 7 0.0278 - 8 0.194 - 9 0.0278 - 13 0.111 - 14 0.0278 - 15 0.0833 - 17 0.0278 - 21 0.167 - 26 0.0278 - 28 0.0278 - - 31 23 10 0 - 3 0.0435 - 4 0.13 - 6 0.087 - 7 0.087 - 8 0.087 - 13 0.0435 - 14 0.13 - 15 0.0435 - 21 0.304 - 28 0.0435 - - 32 12 7 0 - 4 0.0833 - 7 0.0833 - 8 0.333 - 13 0.0833 - 15 0.167 - 28 0.167 - 30 0.0833 - - 33 30 13 0 - 3 0.0667 - 4 0.167 - 5 0.0333 - 7 0.133 - 8 0.2 - 9 0.0333 - 13 0.0667 - 14 0.0667 - 15 0.0333 - 19 0.1 - 21 0.0333 - 22 0.0333 - 30 0.0333 - - 41 196 20 0 - 0 0.0306 - 2 0.0102 - 4 0.128 - 5 0.0153 - 7 0.0765 - 8 0.0255 - 13 0.0408 - 14 0.0102 - 15 0.0153 - 16 0.0051 - 19 0.398 - 20 0.0102 - 21 0.0714 - 27 0.0357 - 28 0.0459 - 30 0.0051 - 31 0.0051 - 35 0.0357 - 37 0.0255 - 42 0.0102 - - 42 126 18 0 - 4 0.183 - 5 0.0476 - 7 0.0714 - 8 0.0397 - 12 0.0159 - 13 0.0397 - 14 0.0238 - 15 0.0317 - 16 0.00794 - 19 0.381 - 20 0.00794 - 21 0.0397 - 27 0.0317 - 28 0.0317 - 34 0.00794 - 35 0.00794 - 37 0.0238 - 42 0.00794 - - 48 2 2 0 - 7 0.5 - 26 0.5 - - 49 13 9 0 - 0 0.0769 - 4 0.231 - 7 0.0769 - 8 0.154 - 21 0.154 - 28 0.0769 - 30 0.0769 - 31 0.0769 - 37 0.0769 - - 55 39 9 0 - 3 0.0256 - 4 0.103 - 7 0.487 - 8 0.0256 - 9 0.0256 - 13 0.0256 - 14 0.0256 - 21 0.0769 - 26 0.205 - - 57 18 7 0 - 4 0.111 - 7 0.556 - 8 0.0556 - 19 0.0556 - 21 0.0556 - 26 0.111 - 30 0.0556 - - 58 10 5 0 - 0 0.1 - 4 0.1 - 7 0.5 - 21 0.1 - 26 0.2 - - 59 8 7 0 - 6 0.125 - 7 0.125 - 8 0.125 - 13 0.125 - 14 0.125 - 15 0.25 - 19 0.125 - - 46 498 27 21 - 0 0.01 - 2 0.151 - 3 0.00402 - 4 0.0723 - 7 0.398 - 8 0.0161 - 12 0.00201 - 13 0.0161 - 14 0.01 - 15 0.0321 - 19 0.0141 - 20 0.00602 - 21 0.0221 - 26 0.0683 - 28 0.00402 - 29 0.00803 - 30 0.0743 - 31 0.00201 - 33 0.00602 - 35 0.00402 - 37 0.0201 - 40 0.00201 - 41 0.00201 - 42 0.0141 - 44 0.012 - 46 0.0141 - 47 0.0161 - - 13 2 2 0 - 8 0.5 - 15 0.5 - - 26 1 1 0 - 28 1 - - 28 48 12 0 - 3 0.0208 - 4 0.354 - 7 0.229 - 8 0.0625 - 13 0.0417 - 14 0.0417 - 15 0.0833 - 19 0.0417 - 20 0.0417 - 35 0.0208 - 37 0.0417 - 44 0.0208 - - 29 9 6 0 - 4 0.222 - 7 0.111 - 13 0.111 - 21 0.111 - 26 0.222 - 30 0.222 - - 30 21 7 0 - 3 0.0476 - 4 0.333 - 7 0.19 - 13 0.0476 - 14 0.0476 - 15 0.286 - 20 0.0476 - - 31 21 8 0 - 4 0.0952 - 7 0.429 - 13 0.0476 - 14 0.0476 - 15 0.0476 - 19 0.0476 - 26 0.238 - 37 0.0476 - - 40 5 2 0 - 46 0.2 - 47 0.8 - - 41 118 15 0 - 0 0.0169 - 2 0.246 - 4 0.0254 - 7 0.237 - 8 0.00847 - 13 0.00847 - 15 0.00847 - 19 0.0169 - 21 0.0593 - 26 0.0169 - 29 0.0254 - 30 0.28 - 31 0.00847 - 33 0.0254 - 46 0.0169 - - 48 39 7 0 - 0 0.0256 - 2 0.308 - 7 0.487 - 8 0.0256 - 26 0.0513 - 37 0.0513 - 44 0.0513 - - 49 34 11 0 - 0 0.0294 - 2 0.0294 - 4 0.0588 - 7 0.529 - 13 0.0294 - 26 0.176 - 28 0.0294 - 30 0.0294 - 35 0.0294 - 37 0.0294 - 42 0.0294 - - 51 1 1 0 - 44 1 - - 52 2 2 0 - 2 0.5 - 37 0.5 - - 55 98 11 0 - 0 0.0102 - 2 0.0918 - 7 0.724 - 12 0.0102 - 19 0.0102 - 26 0.0816 - 29 0.0102 - 30 0.0102 - 41 0.0102 - 42 0.0306 - 44 0.0102 - - 57 31 9 0 - 2 0.129 - 4 0.0323 - 7 0.516 - 8 0.0323 - 13 0.0323 - 21 0.0323 - 26 0.129 - 37 0.0645 - 40 0.0323 - - 59 13 5 0 - 4 0.0769 - 7 0.462 - 15 0.154 - 21 0.0769 - 26 0.231 - - 62 11 7 0 - 2 0.0909 - 7 0.364 - 26 0.0909 - 42 0.0909 - 44 0.0909 - 46 0.182 - 47 0.0909 - - 64 5 2 0 - 7 0.8 - 8 0.2 - - 65 6 4 0 - 2 0.167 - 15 0.167 - 46 0.333 - 47 0.333 - - 66 2 2 0 - 37 0.5 - 42 0.5 - - 67 3 3 0 - 4 0.333 - 19 0.333 - 47 0.333 - - 69 22 4 0 - 2 0.773 - 7 0.136 - 21 0.0455 - 42 0.0455 - - 47 145999 39 35 - 0 0.0116 - 1 6.85e-06 - 2 0.0386 - 3 0.000603 - 4 0.0028 - 5 6.16e-05 - 7 0.0116 - 8 0.000671 - 9 2.05e-05 - 12 0.00449 - 13 0.000678 - 14 0.000404 - 15 0.0104 - 16 6.85e-06 - 17 6.85e-06 - 19 0.000808 - 20 0.000178 - 21 0.00211 - 22 0.000137 - 25 6.85e-06 - 26 0.0016 - 28 0.000164 - 29 0.00262 - 30 0.000384 - 31 0.000349 - 32 0.00107 - 33 0.00145 - 34 0.000288 - 35 4.11e-05 - 37 0.000623 - 39 2.05e-05 - 40 0.691 - 41 0.188 - 42 0.0209 - 43 0.00159 - 44 0.000692 - 45 0.000336 - 46 0.00192 - 47 0.00216 - - 0 598 28 0 - 0 0.0485 - 1 0.00167 - 2 0.0318 - 3 0.0167 - 4 0.164 - 7 0.0518 - 8 0.0234 - 9 0.00502 - 12 0.00334 - 13 0.0284 - 14 0.0301 - 15 0.0853 - 19 0.00669 - 20 0.00836 - 21 0.0167 - 26 0.01 - 30 0.00502 - 31 0.00167 - 34 0.00167 - 35 0.00167 - 37 0.00836 - 39 0.00167 - 40 0.232 - 41 0.176 - 42 0.0301 - 43 0.00167 - 45 0.00334 - 46 0.00502 - - 2 1 1 0 - 30 1 - - 7 2 2 0 - 13 0.5 - 41 0.5 - - 8 34 7 0 - 2 0.147 - 7 0.118 - 20 0.0294 - 21 0.0294 - 32 0.0294 - 40 0.559 - 41 0.0882 - - 12 59 11 0 - 0 0.0508 - 2 0.0508 - 4 0.0169 - 7 0.0508 - 13 0.0169 - 21 0.0339 - 26 0.0339 - 40 0.339 - 41 0.288 - 42 0.0847 - 46 0.0339 - - 13 57 9 0 - 0 0.0351 - 2 0.0877 - 7 0.0351 - 12 0.0351 - 26 0.0175 - 30 0.0175 - 40 0.368 - 41 0.368 - 42 0.0351 - - 15 4 2 0 - 15 0.5 - 46 0.5 - - 21 60 9 0 - 0 0.0167 - 8 0.0167 - 21 0.0167 - 28 0.0333 - 40 0.583 - 41 0.233 - 42 0.0667 - 46 0.0167 - 47 0.0167 - - 22 3 1 0 - 41 1 - - 26 26 8 0 - 0 0.0385 - 7 0.0769 - 21 0.0385 - 28 0.0385 - 40 0.5 - 41 0.231 - 42 0.0385 - 46 0.0385 - - 28 1249 28 0 - 0 0.028 - 2 0.0697 - 4 0.00961 - 5 0.000801 - 7 0.0641 - 8 0.0032 - 12 0.00881 - 13 0.0056 - 15 0.0016 - 17 0.000801 - 19 0.004 - 20 0.0016 - 21 0.00881 - 26 0.004 - 30 0.000801 - 31 0.000801 - 33 0.000801 - 34 0.000801 - 37 0.0048 - 39 0.000801 - 40 0.481 - 41 0.254 - 42 0.0336 - 43 0.0016 - 44 0.0016 - 45 0.000801 - 46 0.0056 - 47 0.0024 - - 29 2544 28 0 - 0 0.00825 - 2 0.0197 - 3 0.0157 - 4 0.0204 - 7 0.00432 - 8 0.000786 - 12 0.000393 - 13 0.00314 - 14 0.000786 - 15 0.219 - 16 0.000393 - 19 0.000786 - 20 0.000786 - 21 0.00118 - 26 0.00118 - 28 0.000393 - 29 0.00197 - 30 0.000393 - 31 0.000786 - 32 0.000393 - 33 0.00118 - 40 0.521 - 41 0.167 - 42 0.00825 - 43 0.000786 - 45 0.000393 - 46 0.000393 - 47 0.000393 - - 30 440 24 0 - 0 0.0591 - 2 0.0977 - 3 0.00227 - 4 0.00227 - 7 0.0659 - 8 0.00909 - 12 0.00455 - 13 0.0114 - 14 0.00682 - 15 0.00227 - 19 0.00227 - 20 0.00227 - 21 0.00909 - 22 0.00227 - 26 0.00227 - 28 0.00227 - 32 0.00227 - 37 0.00227 - 40 0.427 - 41 0.239 - 42 0.0273 - 43 0.00682 - 44 0.00455 - 46 0.00909 - - 31 1808 30 0 - 0 0.0321 - 2 0.0857 - 3 0.000553 - 4 0.00332 - 7 0.0243 - 8 0.00111 - 12 0.0083 - 13 0.000553 - 14 0.000553 - 15 0.00111 - 19 0.00111 - 20 0.000553 - 21 0.00387 - 22 0.000553 - 26 0.00332 - 29 0.0083 - 30 0.000553 - 31 0.000553 - 32 0.00553 - 33 0.00277 - 35 0.000553 - 37 0.00221 - 40 0.497 - 41 0.269 - 42 0.0321 - 43 0.0083 - 44 0.00111 - 45 0.000553 - 46 0.00277 - 47 0.00166 - - 32 490 22 0 - 0 0.0286 - 2 0.0347 - 4 0.0184 - 7 0.0163 - 8 0.00612 - 12 0.0184 - 13 0.00408 - 14 0.0184 - 15 0.00204 - 19 0.00408 - 21 0.00816 - 26 0.00204 - 29 0.00204 - 32 0.00204 - 35 0.00204 - 40 0.42 - 41 0.361 - 42 0.0347 - 43 0.00612 - 44 0.00408 - 46 0.00408 - 47 0.00204 - - 33 2098 25 0 - 0 0.00763 - 2 0.0062 - 3 0.0114 - 4 0.0472 - 7 0.00477 - 8 0.00477 - 12 0.00191 - 13 0.0124 - 15 0.404 - 19 0.000477 - 20 0.00286 - 21 0.000477 - 26 0.000477 - 29 0.000477 - 30 0.000477 - 31 0.000477 - 32 0.000477 - 40 0.304 - 41 0.173 - 42 0.0129 - 43 0.000953 - 44 0.000953 - 45 0.000477 - 46 0.000477 - 47 0.000477 - - 40 11 2 0 - 46 0.0909 - 47 0.909 - - 41 55 17 0 - 0 0.0727 - 2 0.364 - 4 0.109 - 7 0.0545 - 8 0.0182 - 12 0.109 - 13 0.0182 - 14 0.0364 - 15 0.0182 - 19 0.0364 - 21 0.0364 - 29 0.0182 - 30 0.0182 - 31 0.0182 - 32 0.0182 - 37 0.0364 - 45 0.0182 - - 42 5 4 0 - 4 0.2 - 12 0.2 - 19 0.4 - 31 0.2 - - 43 14 5 0 - 2 0.143 - 12 0.0714 - 40 0.357 - 41 0.357 - 42 0.0714 - - 46 81 16 0 - 0 0.037 - 2 0.42 - 4 0.0247 - 7 0.0864 - 12 0.0123 - 15 0.0247 - 19 0.0494 - 21 0.0123 - 29 0.037 - 33 0.0247 - 40 0.0123 - 41 0.0123 - 42 0.0494 - 44 0.0123 - 46 0.0864 - 47 0.0988 - - 48 4185 23 0 - 0 0.0098 - 2 0.0437 - 5 0.000239 - 7 0.00621 - 8 0.000239 - 12 0.00119 - 19 0.00143 - 20 0.000239 - 21 0.000717 - 26 0.000717 - 29 0.000717 - 30 0.000717 - 32 0.000239 - 33 0.000478 - 34 0.000478 - 40 0.651 - 41 0.249 - 42 0.0284 - 43 0.000956 - 44 0.000478 - 45 0.000239 - 46 0.00143 - 47 0.00143 - - 49 3148 26 0 - 0 0.0156 - 2 0.0594 - 3 0.000318 - 4 0.000635 - 7 0.0133 - 8 0.000318 - 12 0.00762 - 13 0.000318 - 15 0.000318 - 19 0.000953 - 21 0.00254 - 26 0.00159 - 28 0.000318 - 29 0.00349 - 30 0.000635 - 32 0.00127 - 33 0.00222 - 34 0.000318 - 37 0.000635 - 40 0.619 - 41 0.234 - 42 0.027 - 43 0.00286 - 45 0.000318 - 46 0.00191 - 47 0.00222 - - 51 49 5 0 - 40 0.735 - 41 0.102 - 42 0.0204 - 43 0.0408 - 47 0.102 - - 55 29370 35 0 - 0 0.0136 - 2 0.0618 - 3 0.00017 - 4 0.00109 - 5 3.4e-05 - 7 0.0157 - 8 0.000613 - 12 0.00582 - 13 0.000204 - 14 0.000136 - 15 0.000477 - 19 0.000783 - 20 6.81e-05 - 21 0.00289 - 22 0.000238 - 25 3.4e-05 - 26 0.00221 - 28 0.000272 - 29 0.00371 - 30 0.000272 - 31 0.000477 - 32 0.00112 - 33 0.00197 - 34 0.000409 - 35 3.4e-05 - 37 0.000783 - 39 3.4e-05 - 40 0.65 - 41 0.205 - 42 0.0224 - 43 0.0018 - 44 0.000647 - 45 0.000409 - 46 0.00211 - 47 0.00218 - - 57 28760 33 0 - 0 0.0139 - 2 0.0438 - 3 6.95e-05 - 4 0.00104 - 5 6.95e-05 - 7 0.00883 - 8 0.000556 - 12 0.00619 - 13 0.000417 - 14 0.000104 - 15 0.000313 - 19 0.000626 - 20 0.000104 - 21 0.00209 - 22 0.000139 - 26 0.00205 - 28 0.000209 - 29 0.00466 - 30 0.000522 - 31 0.000591 - 32 0.00191 - 33 0.00209 - 34 0.000487 - 35 3.48e-05 - 37 0.000313 - 40 0.684 - 41 0.195 - 42 0.0239 - 43 0.00212 - 44 0.00101 - 45 0.000382 - 46 0.00125 - 47 0.00174 - - 58 125 18 0 - 0 0.04 - 2 0.112 - 4 0.016 - 7 0.008 - 12 0.032 - 15 0.04 - 19 0.04 - 20 0.008 - 21 0.008 - 26 0.008 - 29 0.016 - 33 0.008 - 35 0.008 - 40 0.512 - 41 0.112 - 42 0.016 - 45 0.008 - 47 0.008 - - 59 392 14 0 - 0 0.0102 - 2 0.0969 - 4 0.00765 - 7 0.0255 - 8 0.00255 - 12 0.00255 - 21 0.0051 - 26 0.0051 - 40 0.51 - 41 0.291 - 42 0.0332 - 43 0.0051 - 46 0.00255 - 47 0.00255 - - 62 12424 28 0 - 0 0.00789 - 2 0.0249 - 3 8.05e-05 - 4 0.000644 - 7 0.00539 - 8 0.000241 - 12 0.0037 - 13 8.05e-05 - 14 0.000402 - 15 8.05e-05 - 19 0.000644 - 21 0.00145 - 26 0.000644 - 29 0.00129 - 30 0.000241 - 31 8.05e-05 - 32 0.000805 - 33 0.00121 - 34 0.000402 - 37 0.000322 - 40 0.761 - 41 0.163 - 42 0.0182 - 43 0.000563 - 44 0.000724 - 45 0.000402 - 46 0.0025 - 47 0.00266 - - 64 13381 22 0 - 0 0.00239 - 2 0.0106 - 4 7.47e-05 - 5 7.47e-05 - 7 0.000374 - 8 7.47e-05 - 12 0.00105 - 13 7.47e-05 - 15 7.47e-05 - 19 0.000374 - 21 7.47e-05 - 29 0.000299 - 32 0.000149 - 33 0.000224 - 34 7.47e-05 - 40 0.86 - 41 0.106 - 42 0.0132 - 43 0.000972 - 44 0.000224 - 46 0.000972 - 47 0.00277 - - 65 17 2 0 - 40 0.765 - 47 0.235 - - 67 12 4 0 - 40 0.5 - 42 0.0833 - 46 0.25 - 47 0.167 - - 68 148 8 0 - 0 0.0135 - 2 0.00676 - 4 0.00676 - 31 0.00676 - 40 0.73 - 41 0.189 - 42 0.0405 - 46 0.00676 - - 69 44302 32 0 - 0 0.0102 - 2 0.0279 - 3 6.77e-05 - 4 0.000971 - 5 6.77e-05 - 7 0.0133 - 8 0.000361 - 12 0.00354 - 13 0.000203 - 14 0.000271 - 15 0.000406 - 19 0.000564 - 20 2.26e-05 - 21 0.00185 - 22 0.000158 - 26 0.00144 - 28 9.03e-05 - 29 0.00174 - 30 0.000339 - 31 0.000226 - 32 0.00079 - 33 0.00124 - 34 0.000113 - 37 0.00079 - 40 0.719 - 41 0.189 - 42 0.0194 - 43 0.0012 - 44 0.000632 - 45 0.000248 - 46 0.00192 - 47 0.00156 - - 74 15 3 0 - 40 0.4 - 41 0.0667 - 47 0.533 - - 48 5913 33 15 - 0 0.00727 - 2 0.0313 - 3 0.00101 - 4 0.00643 - 5 0.000169 - 7 0.163 - 8 0.00372 - 12 0.00101 - 13 0.00558 - 14 0.000338 - 15 0.00169 - 17 0.000507 - 19 0.00152 - 20 0.000169 - 21 0.0167 - 22 0.000507 - 26 0.0338 - 29 0.000507 - 30 0.00355 - 31 0.0022 - 32 0.000169 - 33 0.000338 - 34 0.00101 - 35 0.000676 - 37 0.00693 - 40 0.461 - 41 0.214 - 42 0.0237 - 43 0.000676 - 44 0.00152 - 45 0.000507 - 46 0.00761 - 47 0.00101 - - 0 4156 30 0 - 0 0.00794 - 2 0.0337 - 3 0.000722 - 4 0.00553 - 5 0.000241 - 7 0.149 - 8 0.00217 - 12 0.0012 - 13 0.00674 - 14 0.000241 - 15 0.000962 - 17 0.000481 - 19 0.00144 - 21 0.0156 - 26 0.038 - 29 0.000722 - 30 0.00337 - 31 0.00265 - 33 0.000481 - 34 0.0012 - 35 0.000481 - 37 0.00577 - 40 0.474 - 41 0.217 - 42 0.0231 - 43 0.000722 - 44 0.00192 - 45 0.000481 - 46 0.00217 - 47 0.00144 - - 1 36 8 0 - 0 0.0278 - 7 0.194 - 19 0.0278 - 21 0.0278 - 40 0.333 - 41 0.306 - 42 0.0556 - 46 0.0278 - - 21 356 17 0 - 0 0.00562 - 2 0.0169 - 4 0.00281 - 7 0.152 - 8 0.00281 - 19 0.00281 - 21 0.014 - 26 0.014 - 30 0.00281 - 32 0.00281 - 34 0.00281 - 35 0.00281 - 37 0.0225 - 40 0.458 - 41 0.256 - 42 0.0365 - 46 0.00562 - - 28 251 17 0 - 0 0.012 - 2 0.0239 - 4 0.0199 - 7 0.243 - 8 0.0199 - 12 0.00398 - 14 0.00398 - 15 0.00398 - 20 0.00398 - 21 0.0239 - 26 0.0438 - 30 0.00398 - 40 0.394 - 41 0.175 - 42 0.0159 - 43 0.00398 - 45 0.00398 - - 29 218 16 0 - 0 0.00459 - 2 0.0275 - 3 0.00917 - 4 0.0275 - 7 0.284 - 8 0.0229 - 13 0.00917 - 15 0.0138 - 21 0.0275 - 22 0.0138 - 26 0.0275 - 30 0.00917 - 37 0.0138 - 40 0.362 - 41 0.138 - 42 0.00917 - - 30 87 10 0 - 0 0.0115 - 2 0.0345 - 4 0.0115 - 7 0.184 - 15 0.0115 - 17 0.0115 - 21 0.0345 - 26 0.0115 - 40 0.517 - 41 0.172 - - 31 99 12 0 - 2 0.0202 - 4 0.0101 - 7 0.343 - 15 0.0101 - 21 0.0202 - 26 0.0303 - 30 0.0101 - 37 0.0101 - 40 0.374 - 41 0.141 - 42 0.0202 - 44 0.0101 - - 32 99 9 0 - 2 0.0303 - 4 0.0101 - 7 0.172 - 13 0.0101 - 26 0.0101 - 37 0.0101 - 40 0.475 - 41 0.253 - 42 0.0303 - - 33 166 10 0 - 2 0.0301 - 7 0.0904 - 13 0.00602 - 21 0.0361 - 26 0.0241 - 31 0.00602 - 37 0.00602 - 40 0.53 - 41 0.235 - 42 0.0361 - - 41 43 6 0 - 7 0.0698 - 21 0.0233 - 30 0.0233 - 40 0.651 - 41 0.186 - 42 0.0465 - - 45 96 7 0 - 2 0.0104 - 7 0.0312 - 30 0.0104 - 31 0.0104 - 40 0.354 - 41 0.25 - 46 0.333 - - 47 37 1 0 - 7 1 - - 49 232 14 0 - 0 0.00431 - 2 0.0517 - 7 0.142 - 8 0.00862 - 13 0.00431 - 19 0.00431 - 21 0.0172 - 26 0.0474 - 35 0.00431 - 37 0.0129 - 40 0.418 - 41 0.25 - 42 0.0302 - 46 0.00431 - - 59 3 3 0 - 3 0.333 - 40 0.333 - 42 0.333 - - 69 2 2 0 - 0 0.5 - 40 0.5 - - 49 8591 38 29 - 0 0.047 - 1 0.00291 - 2 0.0221 - 3 0.00466 - 4 0.0363 - 7 0.185 - 8 0.0282 - 9 0.00163 - 10 0.000116 - 12 0.00326 - 13 0.00873 - 14 0.00384 - 15 0.00349 - 17 0.000116 - 19 0.00105 - 20 0.00186 - 21 0.0312 - 22 0.00233 - 24 0.000466 - 26 0.0481 - 28 0.0638 - 29 0.00349 - 30 0.0345 - 31 0.076 - 32 0.000931 - 33 0.00128 - 34 0.000233 - 35 0.00151 - 37 0.00442 - 39 0.000698 - 40 0.227 - 41 0.132 - 42 0.0128 - 43 0.00105 - 44 0.000698 - 45 0.0021 - 46 0.00466 - 47 0.000815 - - 0 2149 33 0 - 0 0.0558 - 1 0.0116 - 2 0.00558 - 3 0.00651 - 4 0.0879 - 7 0.102 - 8 0.0814 - 9 0.00605 - 12 0.000465 - 13 0.0172 - 14 0.00745 - 15 0.00465 - 17 0.000465 - 20 0.000465 - 21 0.053 - 22 0.00279 - 24 0.0014 - 26 0.0219 - 28 0.00279 - 29 0.000465 - 30 0.117 - 31 0.276 - 32 0.000465 - 33 0.000465 - 35 0.00372 - 37 0.00233 - 39 0.000931 - 40 0.0749 - 41 0.0433 - 42 0.00465 - 45 0.00558 - 46 0.000465 - 47 0.000465 - - 1 9 3 0 - 0 0.111 - 31 0.778 - 47 0.111 - - 2 61 13 0 - 0 0.115 - 7 0.0328 - 8 0.0164 - 12 0.0492 - 21 0.0164 - 26 0.0656 - 28 0.18 - 29 0.213 - 30 0.0984 - 31 0.082 - 32 0.0492 - 33 0.0656 - 45 0.0164 - - 8 4 2 0 - 7 0.75 - 41 0.25 - - 12 581 7 0 - 0 0.31 - 21 0.0172 - 22 0.00172 - 28 0.664 - 29 0.00172 - 32 0.00172 - 41 0.00344 - - 13 14 7 0 - 7 0.357 - 14 0.143 - 26 0.143 - 30 0.0714 - 37 0.0714 - 40 0.143 - 41 0.0714 - - 21 224 16 0 - 0 0.196 - 3 0.00446 - 4 0.0491 - 7 0.0268 - 8 0.0714 - 13 0.0179 - 20 0.00446 - 21 0.0179 - 26 0.0179 - 28 0.366 - 30 0.0402 - 31 0.156 - 40 0.00893 - 41 0.00893 - 42 0.00893 - 46 0.00446 - - 26 59 4 0 - 0 0.0169 - 21 0.0169 - 28 0.932 - 45 0.0339 - - 28 735 26 0 - 0 0.00544 - 2 0.0667 - 3 0.00272 - 4 0.0517 - 7 0.291 - 8 0.015 - 12 0.00136 - 13 0.0068 - 14 0.00816 - 15 0.00544 - 20 0.0068 - 21 0.0381 - 22 0.00408 - 26 0.0803 - 29 0.00136 - 30 0.00952 - 31 0.00136 - 35 0.00408 - 37 0.0109 - 39 0.00272 - 40 0.215 - 41 0.144 - 42 0.00952 - 44 0.00136 - 46 0.015 - 47 0.00136 - - 29 723 27 0 - 0 0.00138 - 2 0.0277 - 3 0.0166 - 4 0.0194 - 7 0.383 - 8 0.0194 - 9 0.00138 - 12 0.00138 - 13 0.0138 - 14 0.00553 - 15 0.0152 - 19 0.00692 - 20 0.00692 - 21 0.0332 - 22 0.00277 - 26 0.116 - 30 0.00553 - 31 0.00138 - 32 0.00138 - 37 0.00415 - 40 0.169 - 41 0.129 - 42 0.0111 - 43 0.00138 - 44 0.00138 - 45 0.00138 - 46 0.00415 - - 30 476 29 0 - 0 0.0168 - 2 0.0147 - 3 0.0063 - 4 0.0315 - 7 0.332 - 8 0.0105 - 10 0.0021 - 12 0.0126 - 13 0.0126 - 14 0.0105 - 15 0.0021 - 20 0.0021 - 21 0.0441 - 22 0.0021 - 26 0.105 - 28 0.0021 - 29 0.0021 - 30 0.0084 - 31 0.0021 - 33 0.0084 - 34 0.0021 - 35 0.0021 - 37 0.0063 - 39 0.0042 - 40 0.197 - 41 0.139 - 42 0.0126 - 43 0.0042 - 46 0.0042 - - 31 679 25 0 - 0 0.0103 - 2 0.0353 - 3 0.00736 - 4 0.0177 - 7 0.384 - 8 0.00884 - 12 0.0103 - 13 0.00295 - 15 0.00147 - 19 0.00295 - 20 0.00147 - 21 0.0177 - 26 0.0854 - 29 0.0118 - 30 0.00442 - 35 0.00147 - 37 0.00295 - 40 0.225 - 41 0.137 - 42 0.0206 - 43 0.00147 - 44 0.00442 - 45 0.00147 - 46 0.00147 - 47 0.00147 - - 32 203 15 0 - 0 0.0197 - 2 0.0542 - 4 0.0345 - 7 0.31 - 8 0.00985 - 13 0.0148 - 21 0.0394 - 22 0.00493 - 26 0.0788 - 31 0.00493 - 32 0.00493 - 37 0.00493 - 40 0.241 - 41 0.163 - 42 0.0148 - - 33 209 19 0 - 2 0.0287 - 3 0.00957 - 4 0.0383 - 7 0.297 - 8 0.0239 - 13 0.00478 - 19 0.00478 - 20 0.00478 - 21 0.0383 - 22 0.00478 - 26 0.0718 - 34 0.00478 - 37 0.00957 - 40 0.254 - 41 0.167 - 42 0.0191 - 43 0.00478 - 46 0.00478 - 47 0.00957 - - 41 627 13 0 - 0 0.00159 - 2 0.00159 - 7 0.0223 - 20 0.00159 - 21 0.00159 - 26 0.00319 - 29 0.00638 - 30 0.00797 - 31 0.00159 - 40 0.619 - 41 0.313 - 42 0.0191 - 47 0.00159 - - 42 15 6 0 - 7 0.0667 - 26 0.0667 - 40 0.667 - 41 0.0667 - 42 0.0667 - 43 0.0667 - - 43 4 3 0 - 2 0.25 - 7 0.25 - 40 0.5 - - 45 38 7 0 - 7 0.105 - 21 0.105 - 28 0.0526 - 31 0.105 - 40 0.237 - 41 0.0789 - 46 0.316 - - 46 6 2 0 - 40 0.333 - 41 0.667 - - 47 19 5 0 - 2 0.0526 - 7 0.421 - 26 0.0526 - 40 0.263 - 41 0.211 - - 48 81 9 0 - 0 0.0123 - 2 0.0123 - 7 0.173 - 13 0.0123 - 15 0.0247 - 26 0.037 - 40 0.444 - 41 0.247 - 42 0.037 - - 49 150 16 0 - 0 0.0133 - 2 0.0133 - 4 0.02 - 7 0.147 - 8 0.0133 - 13 0.00667 - 21 0.02 - 22 0.0133 - 26 0.0533 - 28 0.0333 - 30 0.02 - 31 0.02 - 40 0.327 - 41 0.267 - 42 0.0133 - 46 0.02 - - 55 1082 27 0 - 0 0.012 - 2 0.0407 - 3 0.000924 - 4 0.0129 - 7 0.174 - 8 0.00277 - 12 0.00555 - 13 0.0037 - 15 0.000924 - 19 0.000924 - 21 0.0213 - 22 0.00185 - 24 0.000924 - 26 0.0434 - 29 0.000924 - 30 0.00277 - 31 0.000924 - 32 0.000924 - 33 0.000924 - 37 0.00555 - 40 0.418 - 41 0.216 - 42 0.0259 - 43 0.00185 - 44 0.000924 - 45 0.000924 - 46 0.00277 - - 57 294 15 0 - 0 0.034 - 2 0.0272 - 7 0.119 - 8 0.0034 - 12 0.0102 - 13 0.0034 - 21 0.0068 - 26 0.0136 - 33 0.0034 - 37 0.0102 - 40 0.497 - 41 0.248 - 42 0.0136 - 43 0.0034 - 46 0.0068 - - 59 95 10 0 - 2 0.0211 - 4 0.0105 - 7 0.242 - 21 0.0316 - 22 0.0105 - 26 0.0737 - 37 0.0316 - 40 0.326 - 41 0.221 - 42 0.0316 - - 62 38 6 0 - 7 0.158 - 21 0.0263 - 26 0.0263 - 40 0.5 - 41 0.237 - 42 0.0526 - - 64 6 3 0 - 2 0.167 - 7 0.333 - 40 0.5 - - 68 1 1 0 - 42 1 - - 69 3 3 0 - 37 0.333 - 40 0.333 - 41 0.333 - - 50 39 9 0 - 0 0.0513 - 1 0.0513 - 13 0.0256 - 21 0.103 - 26 0.0769 - 28 0.256 - 29 0.0513 - 30 0.308 - 31 0.0769 - - 51 53 8 1 - 26 0.0189 - 40 0.679 - 41 0.113 - 42 0.0189 - 43 0.0377 - 44 0.0189 - 46 0.0189 - 47 0.0943 - - 28 8 4 0 - 40 0.5 - 42 0.125 - 43 0.25 - 47 0.125 - - 52 22 6 1 - 7 0.0455 - 21 0.0455 - 26 0.182 - 40 0.273 - 41 0.364 - 46 0.0909 - - 41 9 2 0 - 40 0.111 - 41 0.889 - - 55 47284 43 31 - 0 0.00854 - 1 2.11e-05 - 2 0.0387 - 3 0.00247 - 4 0.0117 - 5 8.46e-05 - 6 4.23e-05 - 7 0.211 - 8 0.00544 - 9 0.000656 - 10 6.34e-05 - 12 0.00364 - 13 0.00398 - 14 0.000613 - 15 0.00271 - 17 0.000106 - 19 0.0018 - 20 0.000338 - 21 0.0256 - 22 0.00235 - 23 6.34e-05 - 24 0.00343 - 25 2.11e-05 - 26 0.0759 - 28 0.000486 - 29 0.00235 - 30 0.00334 - 31 0.00131 - 32 0.000698 - 33 0.00123 - 34 0.000761 - 35 0.000423 - 37 0.00419 - 38 2.11e-05 - 39 0.000952 - 40 0.404 - 41 0.157 - 42 0.0156 - 43 0.0014 - 44 0.000909 - 45 0.00123 - 46 0.00338 - 47 0.00135 - - 0 6750 33 0 - 0 0.00252 - 2 0.0296 - 3 0.000444 - 4 0.00504 - 7 0.114 - 8 0.00296 - 12 0.000889 - 13 0.00207 - 14 0.000148 - 15 0.000593 - 19 0.00119 - 20 0.000296 - 21 0.0169 - 22 0.000148 - 23 0.000148 - 24 0.000148 - 26 0.0105 - 29 0.000593 - 30 0.00222 - 31 0.00207 - 32 0.000296 - 33 0.000148 - 34 0.00207 - 35 0.00148 - 37 0.00252 - 40 0.549 - 41 0.221 - 42 0.0246 - 43 0.00119 - 44 0.00104 - 45 0.000741 - 46 0.00252 - 47 0.00119 - - 1 94 13 0 - 0 0.0426 - 2 0.0532 - 4 0.0319 - 7 0.117 - 12 0.0106 - 21 0.0213 - 26 0.0213 - 30 0.0426 - 31 0.0213 - 33 0.0213 - 40 0.34 - 41 0.255 - 42 0.0213 - - 2 4 4 0 - 2 0.25 - 4 0.25 - 7 0.25 - 40 0.25 - - 8 38 9 0 - 0 0.0526 - 2 0.0263 - 7 0.211 - 19 0.0526 - 21 0.0526 - 26 0.0263 - 40 0.342 - 41 0.184 - 42 0.0526 - - 12 4 3 0 - 0 0.25 - 26 0.25 - 28 0.5 - - 13 94 10 0 - 0 0.0426 - 2 0.0638 - 7 0.234 - 12 0.0213 - 13 0.0106 - 21 0.0106 - 26 0.0957 - 34 0.0106 - 40 0.362 - 41 0.149 - - 14 29 7 0 - 2 0.0345 - 7 0.448 - 21 0.0345 - 26 0.069 - 30 0.0345 - 40 0.276 - 41 0.103 - - 15 17 7 0 - 7 0.0588 - 26 0.0588 - 40 0.294 - 41 0.294 - 42 0.0588 - 46 0.176 - 47 0.0588 - - 18 17 5 0 - 7 0.0588 - 21 0.176 - 26 0.0588 - 40 0.588 - 41 0.118 - - 21 265 16 0 - 0 0.00377 - 2 0.0226 - 3 0.00377 - 7 0.117 - 19 0.00377 - 21 0.0113 - 26 0.0113 - 28 0.00755 - 31 0.00377 - 35 0.00755 - 40 0.494 - 41 0.245 - 42 0.0566 - 44 0.00377 - 46 0.00377 - 47 0.00377 - - 28 12476 38 0 - 0 0.00697 - 2 0.0437 - 3 0.00176 - 4 0.013 - 7 0.248 - 8 0.00601 - 9 0.0012 - 10 8.02e-05 - 12 0.00353 - 13 0.00449 - 14 0.000721 - 15 0.00208 - 17 8.02e-05 - 19 0.00168 - 20 0.000802 - 21 0.0374 - 22 0.00297 - 23 8.02e-05 - 24 0.00513 - 26 0.0612 - 28 0.000641 - 29 0.00224 - 30 0.00313 - 31 0.00104 - 32 0.000321 - 33 0.00128 - 34 0.000481 - 35 0.000321 - 37 0.00529 - 39 0.0016 - 40 0.389 - 41 0.134 - 42 0.0119 - 43 0.0012 - 44 0.000721 - 45 0.00136 - 46 0.00361 - 47 0.00112 - - 29 8581 37 0 - 0 0.00373 - 2 0.0332 - 3 0.00629 - 4 0.0124 - 5 0.000233 - 7 0.253 - 8 0.0107 - 9 0.000699 - 10 0.000117 - 12 0.00105 - 13 0.00594 - 14 0.000583 - 15 0.00886 - 19 0.00408 - 21 0.0198 - 22 0.00431 - 24 0.00408 - 26 0.19 - 28 0.000583 - 29 0.0021 - 30 0.00501 - 31 0.00163 - 32 0.000233 - 33 0.000233 - 34 0.000117 - 35 0.000117 - 37 0.00373 - 38 0.000117 - 39 0.0021 - 40 0.295 - 41 0.117 - 42 0.00979 - 43 0.000932 - 44 0.000233 - 45 0.00128 - 46 0.000583 - 47 0.000699 - - 30 6281 37 0 - 0 0.0275 - 2 0.0393 - 3 0.00271 - 4 0.0146 - 6 0.000159 - 7 0.217 - 8 0.00494 - 9 0.000478 - 12 0.0126 - 13 0.0035 - 14 0.000955 - 15 0.00191 - 17 0.000318 - 19 0.00127 - 20 0.000318 - 21 0.0318 - 22 0.00223 - 24 0.0043 - 26 0.0715 - 28 0.000159 - 29 0.00462 - 30 0.00239 - 31 0.00127 - 32 0.00223 - 33 0.00478 - 34 0.000955 - 35 0.000159 - 37 0.00478 - 39 0.000159 - 40 0.367 - 41 0.154 - 42 0.0135 - 43 0.000955 - 44 0.00127 - 45 0.00191 - 46 0.00191 - 47 0.000478 - - 31 2695 36 0 - 0 0.00631 - 2 0.0445 - 3 0.00223 - 4 0.0137 - 6 0.000371 - 7 0.277 - 8 0.00334 - 12 0.00186 - 13 0.00445 - 14 0.00148 - 15 0.000742 - 19 0.00148 - 20 0.000371 - 21 0.0249 - 22 0.00223 - 24 0.00223 - 25 0.000371 - 26 0.0716 - 28 0.000742 - 29 0.00519 - 30 0.00334 - 31 0.000742 - 32 0.000742 - 33 0.000371 - 34 0.000371 - 35 0.000371 - 37 0.00297 - 39 0.000742 - 40 0.35 - 41 0.157 - 42 0.0122 - 43 0.00223 - 44 0.000742 - 45 0.00148 - 46 0.00148 - 47 0.000742 - - 32 1863 32 0 - 0 0.00966 - 2 0.0446 - 3 0.00215 - 4 0.0193 - 5 0.000537 - 7 0.188 - 8 0.00376 - 9 0.00161 - 10 0.000537 - 12 0.00429 - 13 0.00429 - 15 0.00107 - 17 0.00107 - 19 0.000537 - 21 0.0327 - 22 0.00376 - 24 0.0059 - 26 0.0505 - 28 0.00107 - 29 0.00107 - 30 0.00322 - 32 0.00322 - 37 0.00751 - 39 0.000537 - 40 0.429 - 41 0.144 - 42 0.0247 - 43 0.000537 - 44 0.00161 - 45 0.00161 - 46 0.00215 - 47 0.00429 - - 33 3326 33 0 - 0 0.00301 - 2 0.0427 - 3 0.0018 - 4 0.018 - 7 0.196 - 8 0.00331 - 9 0.0012 - 12 0.0018 - 13 0.00481 - 14 0.000601 - 15 0.0012 - 19 0.000902 - 20 0.000301 - 21 0.0216 - 22 0.0021 - 23 0.000301 - 24 0.00541 - 26 0.0496 - 29 0.0015 - 30 0.0021 - 31 0.000601 - 33 0.000902 - 34 0.000301 - 37 0.00241 - 39 0.000902 - 40 0.442 - 41 0.164 - 42 0.0213 - 43 0.0015 - 44 0.0012 - 45 0.0012 - 46 0.0012 - 47 0.00361 - - 41 223 9 0 - 0 0.00448 - 2 0.00448 - 3 0.00448 - 30 0.00448 - 40 0.807 - 41 0.139 - 42 0.0269 - 43 0.00448 - 46 0.00448 - - 42 82 6 0 - 7 0.0122 - 13 0.0122 - 40 0.939 - 41 0.0122 - 42 0.0122 - 46 0.0122 - - 44 13 2 0 - 40 0.0769 - 43 0.923 - - 45 212 7 0 - 7 0.0425 - 21 0.00472 - 26 0.00943 - 40 0.448 - 41 0.241 - 42 0.0142 - 46 0.241 - - 46 73 8 0 - 0 0.0274 - 2 0.0137 - 7 0.247 - 21 0.0274 - 37 0.0137 - 40 0.479 - 41 0.178 - 42 0.0137 - - 47 75 7 0 - 7 0.693 - 26 0.213 - 31 0.0133 - 40 0.0267 - 41 0.0267 - 42 0.0133 - 46 0.0133 - - 48 97 10 0 - 0 0.0206 - 2 0.0825 - 4 0.0103 - 7 0.134 - 12 0.0103 - 26 0.0619 - 37 0.0103 - 40 0.433 - 41 0.206 - 42 0.0309 - - 49 604 21 0 - 0 0.00331 - 2 0.0348 - 3 0.00166 - 4 0.00828 - 7 0.118 - 8 0.00331 - 13 0.00331 - 21 0.00993 - 26 0.0281 - 29 0.00166 - 33 0.00166 - 34 0.00331 - 35 0.00166 - 37 0.00166 - 40 0.518 - 41 0.214 - 42 0.0315 - 43 0.00331 - 44 0.00166 - 46 0.00497 - 47 0.00662 - - 55 1276 24 0 - 0 0.00549 - 1 0.000784 - 2 0.0353 - 3 0.000784 - 4 0.00392 - 7 0.143 - 8 0.00157 - 12 0.000784 - 13 0.000784 - 21 0.00862 - 26 0.0533 - 28 0.000784 - 29 0.00313 - 30 0.00784 - 31 0.00157 - 32 0.00157 - 34 0.00235 - 37 0.00705 - 40 0.472 - 41 0.226 - 42 0.0188 - 43 0.000784 - 46 0.00157 - 47 0.00235 - - 57 656 22 0 - 0 0.0107 - 2 0.0366 - 4 0.00457 - 7 0.145 - 8 0.00152 - 12 0.00305 - 14 0.00152 - 15 0.00152 - 19 0.00152 - 26 0.0244 - 29 0.00152 - 30 0.00457 - 31 0.00152 - 32 0.00152 - 33 0.00152 - 34 0.00152 - 37 0.0061 - 40 0.486 - 41 0.248 - 42 0.0122 - 43 0.00152 - 44 0.00305 - - 58 23 4 0 - 7 0.087 - 29 0.0435 - 40 0.696 - 41 0.174 - - 59 1272 26 0 - 0 0.0118 - 2 0.0645 - 3 0.000786 - 4 0.0055 - 5 0.000786 - 7 0.21 - 8 0.0055 - 12 0.00629 - 13 0.00314 - 14 0.000786 - 15 0.000786 - 19 0.000786 - 21 0.0204 - 22 0.00157 - 26 0.0558 - 29 0.00314 - 30 0.00393 - 33 0.000786 - 37 0.00472 - 40 0.411 - 41 0.166 - 42 0.0118 - 44 0.00236 - 45 0.00157 - 46 0.00472 - 47 0.00157 - - 62 57 9 0 - 0 0.0351 - 4 0.0175 - 7 0.175 - 21 0.0175 - 31 0.0175 - 37 0.0175 - 40 0.368 - 41 0.316 - 42 0.0351 - - 69 56 6 0 - 2 0.0536 - 7 0.179 - 26 0.0536 - 40 0.5 - 41 0.196 - 44 0.0179 - - 74 2 2 0 - 31 0.5 - 40 0.5 - - 57 37637 38 30 - 0 0.0109 - 2 0.0336 - 3 0.00109 - 4 0.00717 - 5 5.31e-05 - 7 0.128 - 8 0.00438 - 9 2.66e-05 - 10 0.000106 - 12 0.00476 - 13 0.00404 - 14 0.000372 - 15 0.00215 - 17 2.66e-05 - 19 0.000797 - 20 0.000239 - 21 0.0102 - 22 0.000771 - 23 5.31e-05 - 26 0.0253 - 28 0.000345 - 29 0.00361 - 30 0.00321 - 31 0.00138 - 32 0.00149 - 33 0.00159 - 34 0.000824 - 35 0.000159 - 37 0.00343 - 39 7.97e-05 - 40 0.523 - 41 0.199 - 42 0.0209 - 43 0.00186 - 44 0.00104 - 45 0.000824 - 46 0.00178 - 47 0.00133 - - 0 1140 30 0 - 0 0.0105 - 2 0.0184 - 3 0.00175 - 4 0.0123 - 7 0.113 - 8 0.0114 - 10 0.000877 - 12 0.00351 - 13 0.00614 - 15 0.00175 - 19 0.00175 - 21 0.0281 - 22 0.000877 - 26 0.0211 - 28 0.000877 - 29 0.00175 - 30 0.00439 - 31 0.0123 - 32 0.00175 - 33 0.00351 - 34 0.000877 - 35 0.00175 - 37 0.00614 - 39 0.000877 - 40 0.482 - 41 0.218 - 42 0.0281 - 44 0.00351 - 45 0.00175 - 46 0.000877 - - 8 57 8 0 - 0 0.0175 - 2 0.0702 - 7 0.123 - 29 0.0175 - 37 0.0351 - 40 0.491 - 41 0.228 - 42 0.0175 - - 12 9 4 0 - 0 0.111 - 28 0.333 - 31 0.222 - 40 0.333 - - 13 73 10 0 - 0 0.0137 - 2 0.0548 - 7 0.164 - 8 0.0137 - 26 0.0274 - 29 0.0137 - 33 0.0274 - 40 0.534 - 41 0.137 - 42 0.0137 - - 14 26 7 0 - 0 0.0385 - 2 0.0385 - 7 0.192 - 8 0.0385 - 40 0.5 - 41 0.154 - 42 0.0385 - - 15 6 4 0 - 2 0.167 - 7 0.167 - 40 0.5 - 46 0.167 - - 21 68 10 0 - 0 0.0147 - 4 0.0147 - 7 0.0735 - 21 0.0735 - 28 0.0441 - 32 0.0147 - 40 0.471 - 41 0.221 - 42 0.0588 - 46 0.0147 - - 28 2496 32 0 - 0 0.012 - 2 0.0341 - 3 0.0028 - 4 0.018 - 7 0.156 - 8 0.00401 - 10 0.000401 - 12 0.00361 - 13 0.00561 - 14 0.0016 - 15 0.0028 - 19 0.000801 - 20 0.0016 - 21 0.0148 - 26 0.0268 - 29 0.002 - 30 0.002 - 31 0.000401 - 32 0.0016 - 33 0.0012 - 34 0.000401 - 35 0.000401 - 37 0.00801 - 39 0.000401 - 40 0.508 - 41 0.163 - 42 0.018 - 43 0.000801 - 44 0.0016 - 45 0.002 - 46 0.002 - 47 0.002 - - 29 2493 30 0 - 0 0.00682 - 2 0.0253 - 3 0.00201 - 4 0.014 - 7 0.271 - 8 0.0132 - 10 0.000401 - 12 0.00281 - 13 0.01 - 14 0.0012 - 15 0.00722 - 19 0.00361 - 21 0.016 - 22 0.000802 - 23 0.000401 - 26 0.0401 - 29 0.00321 - 30 0.00361 - 31 0.000401 - 32 0.0012 - 34 0.000401 - 37 0.00441 - 39 0.000401 - 40 0.361 - 41 0.192 - 42 0.0136 - 43 0.000802 - 44 0.0012 - 45 0.0012 - 46 0.0016 - - 30 1791 27 0 - 0 0.029 - 2 0.0374 - 3 0.00112 - 4 0.0207 - 7 0.13 - 8 0.00503 - 12 0.014 - 13 0.00838 - 15 0.00391 - 19 0.00168 - 20 0.000558 - 21 0.0151 - 22 0.00279 - 26 0.0352 - 28 0.000558 - 29 0.00335 - 30 0.00391 - 31 0.00168 - 32 0.00447 - 33 0.00558 - 37 0.00112 - 40 0.419 - 41 0.229 - 42 0.0218 - 44 0.00112 - 46 0.00168 - 47 0.00168 - - 31 7097 32 0 - 0 0.0194 - 2 0.0327 - 3 0.000986 - 4 0.00592 - 7 0.131 - 8 0.00535 - 10 0.000141 - 12 0.0069 - 13 0.0038 - 14 0.000564 - 15 0.00268 - 19 0.000423 - 21 0.00972 - 22 0.00127 - 26 0.034 - 28 0.000423 - 29 0.00986 - 30 0.00211 - 31 0.00211 - 32 0.00352 - 33 0.00352 - 34 0.00141 - 35 0.000282 - 37 0.00211 - 40 0.477 - 41 0.215 - 42 0.0201 - 43 0.00366 - 44 0.00113 - 45 0.000705 - 46 0.00155 - 47 0.00127 - - 32 565 24 0 - 0 0.0159 - 2 0.0425 - 3 0.00177 - 4 0.0106 - 7 0.113 - 8 0.00354 - 12 0.0124 - 13 0.00177 - 14 0.00177 - 15 0.00177 - 19 0.00354 - 21 0.0283 - 23 0.00177 - 26 0.023 - 29 0.00531 - 30 0.00354 - 31 0.00177 - 32 0.00177 - 37 0.00708 - 40 0.487 - 41 0.196 - 42 0.0301 - 43 0.00354 - 46 0.00177 - - 33 905 26 0 - 0 0.00663 - 2 0.0365 - 4 0.0133 - 5 0.0011 - 7 0.105 - 8 0.0011 - 9 0.0011 - 12 0.00552 - 13 0.00442 - 14 0.0011 - 15 0.00221 - 19 0.0011 - 20 0.0011 - 21 0.00884 - 26 0.0177 - 29 0.00221 - 30 0.00442 - 31 0.00331 - 37 0.00552 - 40 0.543 - 41 0.19 - 42 0.032 - 43 0.00331 - 44 0.00221 - 46 0.00331 - 47 0.00442 - - 41 1622 14 0 - 2 0.00185 - 7 0.0333 - 8 0.00123 - 13 0.00185 - 15 0.000617 - 19 0.000617 - 21 0.00185 - 26 0.00308 - 40 0.763 - 41 0.179 - 42 0.00863 - 43 0.000617 - 44 0.000617 - 47 0.00308 - - 42 61 6 0 - 4 0.0328 - 21 0.0164 - 40 0.721 - 41 0.082 - 42 0.131 - 46 0.0164 - - 43 6 4 0 - 0 0.167 - 40 0.5 - 41 0.167 - 42 0.167 - - 44 8 1 0 - 43 1 - - 45 65 9 0 - 7 0.0769 - 21 0.0154 - 26 0.0308 - 29 0.0154 - 31 0.0154 - 40 0.569 - 41 0.154 - 42 0.0154 - 46 0.108 - - 46 184 13 0 - 2 0.038 - 4 0.0109 - 7 0.0435 - 13 0.00543 - 21 0.00543 - 26 0.00543 - 30 0.00543 - 33 0.00543 - 40 0.543 - 41 0.304 - 42 0.0109 - 44 0.00543 - 45 0.0163 - - 47 27 4 0 - 0 0.037 - 40 0.815 - 41 0.111 - 42 0.037 - - 48 712 17 0 - 0 0.0014 - 2 0.0435 - 4 0.00281 - 7 0.0955 - 12 0.00421 - 13 0.00281 - 21 0.00843 - 26 0.00983 - 30 0.0014 - 31 0.00281 - 37 0.0014 - 40 0.552 - 41 0.256 - 42 0.0126 - 44 0.0014 - 46 0.00281 - 47 0.0014 - - 49 1600 26 0 - 0 0.00938 - 2 0.0425 - 4 0.00313 - 5 0.000625 - 7 0.109 - 8 0.00187 - 12 0.0025 - 13 0.005 - 15 0.00187 - 20 0.000625 - 21 0.01 - 26 0.0244 - 29 0.000625 - 30 0.0025 - 31 0.000625 - 32 0.000625 - 33 0.00125 - 37 0.00438 - 40 0.514 - 41 0.233 - 42 0.0269 - 43 0.00125 - 44 0.000625 - 45 0.000625 - 46 0.00187 - 47 0.00125 - - 55 11225 30 0 - 0 0.00775 - 2 0.0394 - 3 0.00098 - 4 0.00383 - 7 0.139 - 8 0.00276 - 12 0.00454 - 13 0.00249 - 15 0.00107 - 19 0.000356 - 21 0.00775 - 22 0.000713 - 26 0.0247 - 28 0.000178 - 29 0.00205 - 30 0.0049 - 31 0.000356 - 32 0.000535 - 33 0.000802 - 34 0.00125 - 35 8.91e-05 - 37 0.00365 - 40 0.533 - 41 0.192 - 42 0.0211 - 43 0.00125 - 44 0.000624 - 45 0.000713 - 46 0.00151 - 47 0.00134 - - 57 4244 30 0 - 0 0.00683 - 2 0.028 - 3 0.000943 - 4 0.00259 - 7 0.0738 - 8 0.00448 - 12 0.00212 - 13 0.00259 - 14 0.000236 - 15 0.00212 - 19 0.000707 - 20 0.000236 - 21 0.00448 - 22 0.000943 - 26 0.0179 - 29 0.00283 - 30 0.00259 - 31 0.000707 - 32 0.00118 - 33 0.000236 - 34 0.000943 - 37 0.00283 - 40 0.621 - 41 0.192 - 42 0.0229 - 43 0.00189 - 44 0.000707 - 45 0.000236 - 46 0.000943 - 47 0.00141 - - 58 46 6 0 - 2 0.0652 - 7 0.0217 - 40 0.804 - 41 0.0435 - 42 0.0435 - 44 0.0217 - - 59 626 24 0 - 0 0.00479 - 2 0.0399 - 3 0.00319 - 4 0.0208 - 7 0.128 - 8 0.00319 - 12 0.00799 - 13 0.00479 - 17 0.0016 - 20 0.0016 - 21 0.024 - 26 0.0272 - 29 0.0016 - 30 0.00319 - 31 0.0016 - 33 0.00319 - 37 0.0016 - 40 0.494 - 41 0.193 - 42 0.024 - 43 0.0016 - 44 0.0016 - 45 0.00479 - 46 0.00319 - - 62 377 12 0 - 0 0.00265 - 2 0.0796 - 7 0.0531 - 12 0.00265 - 13 0.00796 - 21 0.00265 - 26 0.00531 - 33 0.00265 - 40 0.637 - 41 0.191 - 42 0.0133 - 46 0.00265 - - 64 28 5 0 - 0 0.0357 - 26 0.0357 - 40 0.714 - 41 0.143 - 42 0.0714 - - 67 1 1 0 - 43 1 - - 69 45 7 0 - 0 0.0222 - 2 0.0222 - 26 0.0222 - 37 0.0222 - 40 0.756 - 41 0.0889 - 42 0.0667 - - 58 317 27 20 - 0 0.0252 - 1 0.00315 - 2 0.0631 - 4 0.0599 - 7 0.271 - 8 0.0126 - 9 0.00315 - 12 0.0126 - 13 0.0158 - 15 0.0158 - 19 0.0158 - 20 0.00631 - 21 0.041 - 26 0.0315 - 28 0.0315 - 29 0.0126 - 30 0.0284 - 31 0.0158 - 32 0.00315 - 33 0.00315 - 35 0.00315 - 37 0.0126 - 40 0.202 - 41 0.0631 - 42 0.00631 - 45 0.0379 - 47 0.00315 - - 0 16 10 0 - 0 0.0625 - 1 0.0625 - 4 0.188 - 7 0.0625 - 9 0.0625 - 13 0.0625 - 29 0.0625 - 31 0.0625 - 40 0.25 - 45 0.125 - - 2 10 7 0 - 0 0.2 - 21 0.1 - 28 0.3 - 29 0.1 - 30 0.1 - 32 0.1 - 45 0.1 - - 12 3 1 0 - 28 1 - - 13 3 3 0 - 7 0.333 - 8 0.333 - 45 0.333 - - 21 3 3 0 - 4 0.333 - 21 0.333 - 28 0.333 - - 28 13 7 0 - 0 0.0769 - 2 0.0769 - 4 0.308 - 7 0.231 - 13 0.154 - 21 0.0769 - 40 0.0769 - - 29 9 4 0 - 0 0.111 - 4 0.111 - 7 0.556 - 26 0.222 - - 30 3 2 0 - 4 0.667 - 40 0.333 - - 31 18 8 0 - 7 0.556 - 15 0.0556 - 20 0.0556 - 21 0.0556 - 30 0.0556 - 37 0.0556 - 40 0.0556 - 41 0.111 - - 32 9 6 0 - 2 0.111 - 4 0.222 - 7 0.222 - 8 0.111 - 21 0.222 - 45 0.111 - - 33 9 7 0 - 4 0.111 - 7 0.333 - 8 0.111 - 13 0.111 - 26 0.111 - 30 0.111 - 40 0.111 - - 41 15 3 0 - 40 0.733 - 41 0.133 - 42 0.133 - - 46 7 4 0 - 2 0.143 - 35 0.143 - 40 0.571 - 41 0.143 - - 48 19 8 0 - 2 0.0526 - 4 0.0526 - 7 0.263 - 12 0.158 - 37 0.0526 - 40 0.211 - 41 0.158 - 45 0.0526 - - 49 14 8 0 - 2 0.0714 - 7 0.357 - 12 0.0714 - 28 0.0714 - 37 0.0714 - 40 0.214 - 41 0.0714 - 45 0.0714 - - 55 63 13 0 - 0 0.0317 - 2 0.0794 - 4 0.0159 - 7 0.365 - 19 0.0159 - 21 0.0317 - 26 0.0794 - 30 0.0317 - 31 0.0159 - 40 0.19 - 41 0.0794 - 45 0.0476 - 47 0.0159 - - 57 50 12 0 - 2 0.08 - 4 0.02 - 7 0.3 - 15 0.02 - 19 0.06 - 29 0.02 - 30 0.06 - 31 0.06 - 37 0.02 - 40 0.26 - 41 0.08 - 45 0.02 - - 62 11 6 0 - 7 0.455 - 15 0.0909 - 21 0.182 - 26 0.0909 - 40 0.0909 - 45 0.0909 - - 64 4 3 0 - 30 0.25 - 40 0.5 - 41 0.25 - - 69 30 16 0 - 0 0.0333 - 2 0.2 - 4 0.0333 - 7 0.167 - 8 0.0333 - 13 0.0333 - 15 0.0667 - 19 0.0333 - 20 0.0333 - 21 0.0667 - 26 0.0333 - 28 0.0333 - 29 0.0333 - 33 0.0333 - 40 0.133 - 41 0.0333 - - 59 2627 34 12 - 0 0.00152 - 1 0.00114 - 2 0.0152 - 3 0.0175 - 4 0.212 - 7 0.239 - 8 0.0499 - 9 0.00495 - 10 0.00266 - 12 0.000381 - 13 0.0495 - 14 0.0461 - 15 0.0236 - 17 0.00114 - 19 0.000761 - 20 0.0529 - 21 0.0487 - 22 0.00457 - 24 0.00114 - 26 0.0457 - 30 0.0164 - 31 0.0019 - 35 0.00533 - 37 0.00495 - 38 0.000761 - 39 0.00876 - 40 0.0761 - 41 0.0502 - 42 0.00571 - 43 0.000761 - 44 0.000381 - 45 0.00457 - 46 0.00533 - 47 0.000381 - - 0 6 5 0 - 4 0.167 - 7 0.333 - 9 0.167 - 21 0.167 - 26 0.167 - - 8 2 2 0 - 13 0.5 - 26 0.5 - - 13 19 8 0 - 4 0.263 - 7 0.0526 - 8 0.0526 - 13 0.158 - 14 0.211 - 20 0.158 - 21 0.0526 - 40 0.0526 - - 14 7 6 0 - 4 0.286 - 7 0.143 - 8 0.143 - 13 0.143 - 14 0.143 - 20 0.143 - - 15 2 2 0 - 4 0.5 - 47 0.5 - - 28 861 27 0 - 1 0.00232 - 2 0.0105 - 3 0.0186 - 4 0.28 - 7 0.163 - 8 0.065 - 9 0.00581 - 10 0.00348 - 13 0.0674 - 14 0.0569 - 15 0.0267 - 17 0.00232 - 20 0.0767 - 21 0.0465 - 22 0.00116 - 24 0.00116 - 26 0.0279 - 30 0.0267 - 31 0.00116 - 35 0.0105 - 37 0.00813 - 38 0.00116 - 39 0.0105 - 40 0.0511 - 41 0.0267 - 45 0.00581 - 46 0.00348 - - 29 473 25 0 - 0 0.00634 - 2 0.0127 - 3 0.0381 - 4 0.22 - 7 0.271 - 8 0.0338 - 10 0.00211 - 13 0.0359 - 14 0.0486 - 15 0.0296 - 19 0.00423 - 20 0.0507 - 21 0.0381 - 22 0.00634 - 24 0.00211 - 26 0.0592 - 30 0.0148 - 31 0.00211 - 35 0.00211 - 39 0.0169 - 40 0.0592 - 41 0.0359 - 42 0.00423 - 45 0.00423 - 46 0.00211 - - 30 399 24 0 - 2 0.0125 - 3 0.01 - 4 0.236 - 7 0.188 - 8 0.0852 - 9 0.00752 - 10 0.00251 - 13 0.0677 - 14 0.0727 - 15 0.0276 - 20 0.0501 - 21 0.0351 - 22 0.00752 - 26 0.0376 - 30 0.015 - 31 0.00501 - 35 0.00752 - 37 0.00501 - 39 0.00752 - 40 0.0652 - 41 0.0376 - 42 0.01 - 45 0.00251 - 46 0.00501 - - 31 440 26 0 - 0 0.00227 - 2 0.0159 - 3 0.00455 - 4 0.132 - 7 0.398 - 8 0.0205 - 9 0.00682 - 12 0.00227 - 13 0.0341 - 14 0.0136 - 15 0.0227 - 17 0.00227 - 20 0.0318 - 21 0.0591 - 22 0.00682 - 26 0.0545 - 30 0.00227 - 31 0.00227 - 37 0.00227 - 39 0.00682 - 40 0.107 - 41 0.0477 - 42 0.00682 - 43 0.00227 - 45 0.00682 - 46 0.00909 - - 32 110 19 0 - 2 0.0273 - 3 0.0364 - 4 0.164 - 7 0.2 - 8 0.0818 - 9 0.00909 - 10 0.00909 - 13 0.0545 - 14 0.0545 - 15 0.0273 - 20 0.0364 - 21 0.0818 - 22 0.00909 - 26 0.00909 - 30 0.0364 - 38 0.00909 - 40 0.0636 - 41 0.0818 - 46 0.00909 - - 33 146 20 0 - 1 0.00685 - 2 0.00685 - 3 0.0137 - 4 0.199 - 7 0.24 - 8 0.0342 - 10 0.00685 - 13 0.0137 - 14 0.0205 - 15 0.00685 - 20 0.0479 - 21 0.0753 - 26 0.089 - 35 0.00685 - 37 0.00685 - 40 0.089 - 41 0.103 - 42 0.0205 - 45 0.00685 - 46 0.00685 - - 55 159 15 0 - 2 0.0566 - 4 0.0252 - 7 0.289 - 21 0.0503 - 22 0.00629 - 24 0.00629 - 26 0.0818 - 30 0.0126 - 37 0.0126 - 40 0.214 - 41 0.201 - 42 0.0189 - 43 0.00629 - 44 0.00629 - 46 0.0126 - - 62 13537 29 20 - 0 0.00731 - 2 0.0228 - 3 0.000443 - 4 0.0017 - 7 0.044 - 8 0.00185 - 12 0.00362 - 13 0.000517 - 14 0.000369 - 15 0.000813 - 19 0.000591 - 21 0.00451 - 22 0.000295 - 26 0.00399 - 29 0.00118 - 30 0.000886 - 31 0.000369 - 32 0.000739 - 33 0.00111 - 34 0.000369 - 37 0.00207 - 40 0.699 - 41 0.177 - 42 0.0179 - 43 0.000517 - 44 0.000739 - 45 0.000369 - 46 0.0031 - 47 0.00244 - - 0 792 16 0 - 0 0.00758 - 2 0.0177 - 4 0.00379 - 7 0.0366 - 8 0.00253 - 13 0.00126 - 19 0.00126 - 21 0.0114 - 26 0.0265 - 33 0.00253 - 37 0.00253 - 40 0.652 - 41 0.206 - 42 0.0215 - 46 0.00379 - 47 0.00379 - - 1 31 8 0 - 0 0.0645 - 2 0.0323 - 7 0.0645 - 12 0.0968 - 37 0.0323 - 40 0.419 - 41 0.258 - 42 0.0323 - - 12 37 3 0 - 40 0.784 - 41 0.189 - 46 0.027 - - 14 26 3 0 - 2 0.0769 - 40 0.885 - 46 0.0385 - - 28 1599 24 0 - 0 0.0075 - 2 0.0275 - 4 0.0025 - 7 0.0619 - 8 0.00375 - 12 0.00313 - 14 0.00125 - 15 0.00188 - 19 0.00125 - 21 0.00813 - 26 0.00375 - 29 0.00125 - 30 0.000625 - 31 0.000625 - 32 0.00125 - 33 0.0025 - 37 0.005 - 40 0.634 - 41 0.204 - 42 0.0219 - 43 0.00125 - 44 0.00125 - 46 0.00375 - 47 0.000625 - - 29 1679 23 0 - 0 0.00596 - 2 0.0381 - 3 0.00179 - 4 0.00357 - 7 0.0643 - 8 0.00596 - 12 0.00119 - 14 0.000596 - 15 0.00357 - 21 0.00357 - 22 0.00119 - 26 0.00238 - 29 0.00179 - 30 0.00179 - 31 0.000596 - 32 0.000596 - 37 0.00238 - 40 0.671 - 41 0.172 - 42 0.0125 - 44 0.000596 - 46 0.00238 - 47 0.00238 - - 30 1088 23 0 - 0 0.0165 - 2 0.0239 - 3 0.000919 - 4 0.00368 - 7 0.0469 - 8 0.000919 - 12 0.011 - 13 0.000919 - 14 0.000919 - 19 0.000919 - 21 0.00368 - 22 0.000919 - 26 0.00276 - 29 0.0046 - 30 0.000919 - 32 0.000919 - 33 0.00184 - 40 0.626 - 41 0.226 - 42 0.0184 - 45 0.00276 - 46 0.00368 - 47 0.000919 - - 31 2064 26 0 - 0 0.00678 - 2 0.0252 - 3 0.000484 - 4 0.000969 - 7 0.0766 - 8 0.000969 - 12 0.00436 - 14 0.000484 - 15 0.000484 - 19 0.000484 - 21 0.00775 - 22 0.000484 - 26 0.00388 - 29 0.00145 - 30 0.00242 - 31 0.000484 - 32 0.00194 - 33 0.00145 - 34 0.00194 - 37 0.00242 - 40 0.636 - 41 0.195 - 42 0.0233 - 43 0.00145 - 46 0.00145 - 47 0.00194 - - 32 768 19 0 - 0 0.0143 - 2 0.0273 - 4 0.0013 - 7 0.0352 - 12 0.00391 - 13 0.0026 - 19 0.0013 - 21 0.00781 - 26 0.00391 - 29 0.0026 - 30 0.0013 - 32 0.0013 - 34 0.0013 - 40 0.647 - 41 0.224 - 42 0.0156 - 44 0.0026 - 46 0.00391 - 47 0.0026 - - 33 1187 17 0 - 0 0.00758 - 2 0.027 - 7 0.0278 - 12 0.00421 - 13 0.000842 - 19 0.000842 - 21 0.00253 - 26 0.00505 - 30 0.000842 - 33 0.00168 - 37 0.00337 - 40 0.732 - 41 0.152 - 42 0.0236 - 44 0.00168 - 46 0.00337 - 47 0.00505 - - 41 1264 6 0 - 7 0.00158 - 40 0.902 - 41 0.087 - 42 0.00791 - 44 0.000791 - 46 0.000791 - - 42 63 5 0 - 7 0.0159 - 40 0.889 - 41 0.0635 - 42 0.0159 - 46 0.0159 - - 45 324 6 0 - 21 0.00309 - 40 0.873 - 41 0.0741 - 42 0.0216 - 46 0.0216 - 47 0.00617 - - 48 188 11 0 - 2 0.00532 - 4 0.00532 - 7 0.0851 - 21 0.00532 - 26 0.00532 - 31 0.00532 - 37 0.0106 - 40 0.574 - 41 0.293 - 42 0.00532 - 46 0.00532 - - 49 234 8 0 - 0 0.00427 - 2 0.0256 - 7 0.0342 - 12 0.00427 - 40 0.701 - 41 0.192 - 42 0.0342 - 46 0.00427 - - 55 1193 18 0 - 0 0.00922 - 2 0.0277 - 3 0.000838 - 4 0.000838 - 7 0.0285 - 8 0.00168 - 12 0.00503 - 26 0.000838 - 33 0.00168 - 37 0.000838 - 40 0.733 - 41 0.163 - 42 0.0142 - 43 0.00168 - 44 0.00168 - 45 0.000838 - 46 0.00168 - 47 0.00587 - - 57 699 16 0 - 0 0.00572 - 2 0.01 - 4 0.00143 - 7 0.0243 - 8 0.00286 - 12 0.00143 - 13 0.00286 - 15 0.00143 - 21 0.00286 - 29 0.00143 - 31 0.00143 - 32 0.00143 - 40 0.758 - 41 0.162 - 42 0.02 - 47 0.00286 - - 58 17 1 0 - 40 1 - - 59 102 11 0 - 0 0.0098 - 2 0.0196 - 7 0.049 - 12 0.0098 - 19 0.0098 - 26 0.0098 - 37 0.0098 - 40 0.667 - 41 0.196 - 42 0.0098 - 47 0.0098 - - 62 50 4 0 - 2 0.06 - 40 0.76 - 41 0.16 - 45 0.02 - - 64 13660 26 19 - 0 0.00234 - 2 0.0104 - 4 0.00022 - 5 7.32e-05 - 7 0.00425 - 8 0.000146 - 12 0.00102 - 13 0.000293 - 15 7.32e-05 - 19 0.000366 - 21 0.000659 - 26 0.00022 - 29 0.000293 - 30 0.000146 - 31 7.32e-05 - 32 0.000146 - 33 0.00022 - 34 0.000146 - 37 0.000366 - 40 0.842 - 41 0.117 - 42 0.0141 - 43 0.0011 - 44 0.000439 - 46 0.00132 - 47 0.00271 - - 0 384 11 0 - 2 0.0026 - 7 0.00781 - 12 0.0026 - 15 0.0026 - 21 0.0026 - 40 0.76 - 41 0.206 - 42 0.00781 - 43 0.0026 - 46 0.0026 - 47 0.0026 - - 21 14 3 0 - 7 0.0714 - 40 0.571 - 41 0.357 - - 28 886 15 0 - 0 0.00903 - 2 0.0158 - 5 0.00113 - 7 0.0147 - 8 0.00113 - 12 0.00226 - 21 0.00339 - 33 0.00113 - 37 0.00226 - 40 0.699 - 41 0.218 - 42 0.0237 - 43 0.00113 - 46 0.00451 - 47 0.00339 - - 29 4524 17 0 - 0 0.00133 - 2 0.0124 - 4 0.000221 - 7 0.00133 - 8 0.000221 - 13 0.000442 - 19 0.000442 - 21 0.000442 - 29 0.000663 - 30 0.000221 - 37 0.000663 - 40 0.914 - 41 0.0573 - 42 0.00685 - 43 0.000442 - 46 0.000663 - 47 0.00287 - - 30 513 12 0 - 0 0.0039 - 2 0.0117 - 7 0.00975 - 12 0.0039 - 21 0.00195 - 30 0.00195 - 32 0.00195 - 40 0.768 - 41 0.183 - 42 0.00585 - 44 0.0039 - 46 0.0039 - - 31 497 12 0 - 2 0.0121 - 7 0.00402 - 12 0.00201 - 26 0.00201 - 29 0.00201 - 40 0.779 - 41 0.171 - 42 0.0181 - 43 0.00201 - 44 0.00201 - 46 0.00201 - 47 0.00402 - - 32 1197 13 0 - 0 0.00251 - 2 0.0109 - 7 0.00334 - 12 0.00167 - 13 0.000835 - 19 0.000835 - 21 0.000835 - 32 0.000835 - 34 0.000835 - 40 0.785 - 41 0.17 - 42 0.0209 - 47 0.00167 - - 33 1314 12 0 - 0 0.00381 - 2 0.0122 - 7 0.00228 - 19 0.000761 - 31 0.000761 - 40 0.867 - 41 0.0883 - 42 0.0183 - 43 0.000761 - 44 0.000761 - 46 0.00152 - 47 0.00381 - - 41 1017 7 0 - 7 0.000983 - 21 0.000983 - 40 0.887 - 41 0.0895 - 42 0.0167 - 43 0.00295 - 47 0.00197 - - 42 45 4 0 - 40 0.844 - 41 0.0444 - 42 0.0889 - 47 0.0222 - - 44 3 2 0 - 40 0.333 - 43 0.667 - - 48 353 6 0 - 2 0.00567 - 7 0.0085 - 40 0.822 - 41 0.159 - 42 0.00283 - 47 0.00283 - - 49 245 9 0 - 0 0.00408 - 2 0.0163 - 7 0.00408 - 19 0.00408 - 26 0.00408 - 33 0.00408 - 40 0.784 - 41 0.167 - 42 0.0122 - - 55 1264 13 0 - 0 0.00158 - 2 0.00791 - 4 0.00158 - 7 0.00949 - 12 0.00316 - 13 0.000791 - 26 0.000791 - 40 0.803 - 41 0.147 - 42 0.019 - 44 0.000791 - 46 0.00237 - 47 0.00237 - - 57 868 12 0 - 0 0.00346 - 2 0.0104 - 7 0.00346 - 12 0.0023 - 33 0.00115 - 34 0.00115 - 40 0.829 - 41 0.121 - 42 0.0219 - 43 0.0023 - 46 0.0023 - 47 0.00115 - - 58 60 3 0 - 40 0.95 - 41 0.0333 - 47 0.0167 - - 59 89 5 0 - 0 0.0112 - 2 0.0225 - 40 0.73 - 41 0.191 - 42 0.0449 - - 62 197 7 0 - 7 0.00508 - 40 0.827 - 41 0.142 - 42 0.0102 - 43 0.00508 - 44 0.00508 - 47 0.00508 - - 64 36 4 0 - 40 0.778 - 41 0.139 - 42 0.0556 - 43 0.0278 - - 65 23 3 0 - 40 0.565 - 46 0.261 - 47 0.174 - - 66 5 2 0 - 40 0.6 - 46 0.4 - - 67 16 5 0 - 7 0.0625 - 40 0.375 - 42 0.0625 - 46 0.375 - 47 0.125 - - 68 161 12 4 - 0 0.0124 - 2 0.00621 - 4 0.00621 - 7 0.00621 - 13 0.0124 - 21 0.00621 - 26 0.00621 - 31 0.00621 - 40 0.671 - 41 0.217 - 42 0.0435 - 46 0.00621 - - 4 1 1 0 - 13 1 - - 29 4 3 0 - 7 0.25 - 26 0.25 - 40 0.5 - - 55 15 4 0 - 21 0.0667 - 40 0.733 - 41 0.0667 - 42 0.133 - - 57 1 1 0 - 31 1 - - 69 48590 32 19 - 0 0.00926 - 2 0.0818 - 3 8.23e-05 - 4 0.00134 - 5 6.17e-05 - 7 0.0134 - 8 0.000535 - 12 0.00323 - 13 0.000288 - 14 0.000391 - 15 0.000412 - 19 0.000535 - 20 0.000185 - 21 0.00241 - 22 0.000144 - 26 0.00161 - 28 0.000144 - 29 0.00158 - 30 0.000391 - 31 0.000206 - 32 0.00072 - 33 0.00113 - 34 0.000144 - 37 0.000782 - 40 0.656 - 41 0.198 - 42 0.02 - 43 0.00111 - 44 0.000741 - 45 0.000226 - 46 0.0022 - 47 0.00142 - - 0 14471 30 0 - 0 0.00947 - 2 0.0333 - 4 0.00104 - 5 6.91e-05 - 7 0.00442 - 8 6.91e-05 - 12 0.00228 - 13 0.000138 - 14 0.000346 - 15 0.000276 - 19 0.000691 - 20 6.91e-05 - 21 0.000829 - 22 6.91e-05 - 26 0.00076 - 28 0.000138 - 29 0.00131 - 30 0.000207 - 31 6.91e-05 - 32 0.00111 - 33 0.000967 - 37 0.000276 - 40 0.728 - 41 0.189 - 42 0.0207 - 43 0.00159 - 44 0.000622 - 45 6.91e-05 - 46 0.00111 - 47 0.00117 - - 1 372 15 0 - 0 0.0188 - 2 0.0457 - 7 0.00538 - 12 0.00538 - 15 0.00269 - 21 0.00538 - 26 0.00538 - 31 0.00269 - 32 0.00538 - 37 0.00269 - 40 0.645 - 41 0.228 - 42 0.0161 - 43 0.00538 - 46 0.00538 - - 2 3353 26 0 - 0 0.00328 - 2 0.00746 - 3 0.000298 - 4 0.00537 - 7 0.0197 - 8 0.00298 - 12 0.000895 - 13 0.00119 - 14 0.00209 - 15 0.000596 - 19 0.000298 - 20 0.00179 - 21 0.00358 - 26 0.00388 - 28 0.000895 - 29 0.000298 - 31 0.000298 - 32 0.000298 - 37 0.000298 - 40 0.775 - 41 0.15 - 42 0.0155 - 43 0.000895 - 45 0.000298 - 46 0.00239 - 47 0.000298 - - 4 29 3 0 - 2 0.172 - 40 0.759 - 41 0.069 - - 12 7932 26 0 - 0 0.00693 - 2 0.0241 - 4 0.000504 - 5 0.000126 - 7 0.00403 - 8 0.000504 - 12 0.00277 - 13 0.000126 - 14 0.000378 - 15 0.000252 - 19 0.000252 - 21 0.00063 - 26 0.000378 - 29 0.00126 - 30 0.000252 - 31 0.000126 - 32 0.000504 - 33 0.00151 - 37 0.000126 - 40 0.759 - 41 0.175 - 42 0.0173 - 43 0.00113 - 44 0.000756 - 46 0.000756 - 47 0.00151 - - 15 2 1 0 - 46 1 - - 21 2998 22 0 - 0 0.006 - 2 0.0317 - 4 0.000667 - 7 0.004 - 12 0.00167 - 14 0.000667 - 15 0.000334 - 19 0.001 - 21 0.000334 - 26 0.000334 - 28 0.000334 - 29 0.001 - 32 0.000334 - 33 0.000334 - 37 0.000334 - 40 0.662 - 41 0.255 - 42 0.027 - 43 0.000667 - 45 0.000334 - 46 0.00367 - 47 0.002 - - 26 12919 31 0 - 0 0.016 - 2 0.0296 - 3 0.000232 - 4 0.0017 - 5 7.74e-05 - 7 0.0358 - 8 0.000774 - 12 0.00658 - 13 0.000464 - 14 0.000155 - 15 0.000697 - 19 0.000774 - 21 0.00441 - 22 0.000464 - 26 0.00348 - 28 7.74e-05 - 29 0.00333 - 30 0.000774 - 31 0.000464 - 32 0.000774 - 33 0.00217 - 34 0.00031 - 37 0.00224 - 40 0.666 - 41 0.197 - 42 0.0184 - 43 0.000697 - 44 0.000851 - 45 0.000542 - 46 0.00279 - 47 0.00224 - - 28 80 8 0 - 0 0.0125 - 2 0.0375 - 7 0.0125 - 8 0.0125 - 40 0.712 - 41 0.188 - 42 0.0125 - 46 0.0125 - - 29 67 6 0 - 2 0.0597 - 7 0.0149 - 26 0.0149 - 40 0.597 - 41 0.254 - 42 0.0597 - - 41 356 8 0 - 2 0.419 - 26 0.00281 - 37 0.00281 - 40 0.242 - 41 0.312 - 42 0.0169 - 46 0.00281 - 47 0.00281 - - 42 25 4 0 - 2 0.04 - 40 0.36 - 41 0.12 - 42 0.48 - - 44 2 2 0 - 40 0.5 - 43 0.5 - - 45 144 6 0 - 2 0.0625 - 40 0.618 - 41 0.215 - 42 0.0139 - 46 0.0833 - 47 0.00694 - - 47 3672 10 0 - 2 0.69 - 4 0.000545 - 7 0.000817 - 21 0.00735 - 30 0.00109 - 34 0.000545 - 41 0.27 - 42 0.0248 - 44 0.00218 - 46 0.00245 - - 49 1916 19 0 - 0 0.00678 - 2 0.0339 - 7 0.00365 - 12 0.00365 - 13 0.000522 - 15 0.000522 - 20 0.000522 - 21 0.000522 - 26 0.000522 - 29 0.000522 - 34 0.000522 - 40 0.724 - 41 0.196 - 42 0.0209 - 43 0.00261 - 44 0.00104 - 45 0.000522 - 46 0.00157 - 47 0.00104 - - 50 47 7 0 - 2 0.0426 - 4 0.0426 - 7 0.0213 - 20 0.0213 - 40 0.574 - 41 0.277 - 42 0.0213 - - 57 48 3 0 - 2 0.0208 - 40 0.875 - 41 0.104 - - 58 21 3 0 - 32 0.0476 - 40 0.857 - 41 0.0952 - - 74 23 8 1 - 4 0.0435 - 7 0.13 - 8 0.0435 - 26 0.087 - 28 0.0435 - 40 0.261 - 41 0.0435 - 47 0.348 - - 29 5 4 0 - 4 0.2 - 8 0.2 - 26 0.2 - 40 0.4 - -70 183 17 7 - 0 0.0109 - 2 0.0109 - 4 0.164 - 6 0.00546 - 7 0.0109 - 8 0.317 - 9 0.0328 - 13 0.0874 - 14 0.109 - 15 0.0109 - 19 0.175 - 20 0.0109 - 21 0.0109 - 26 0.0109 - 41 0.0219 - 45 0.00546 - 46 0.00546 - - 8 58 11 0 - 2 0.0345 - 4 0.259 - 7 0.0345 - 8 0.0172 - 9 0.0517 - 13 0.121 - 14 0.172 - 15 0.0172 - 19 0.259 - 20 0.0172 - 41 0.0172 - - 21 2 2 0 - 0 0.5 - 8 0.5 - - 37 56 3 0 - 8 0.946 - 21 0.0357 - 45 0.0179 - - 45 1 1 0 - 6 1 - - 47 59 11 1 - 0 0.0169 - 4 0.254 - 8 0.0169 - 9 0.0508 - 13 0.136 - 14 0.169 - 15 0.0169 - 19 0.271 - 20 0.0169 - 26 0.0169 - 41 0.0339 - - 57 2 2 0 - 26 0.5 - 41 0.5 - - 48 1 1 0 - 46 1 - - 57 2 2 0 - 26 0.5 - 41 0.5 - -71 4205 34 8 - 0 0.0219 - 2 0.00166 - 3 0.00666 - 4 0.263 - 5 0.0109 - 7 0.00951 - 8 0.0533 - 9 0.00143 - 10 0.0019 - 12 0.0133 - 13 0.0604 - 14 0.0818 - 15 0.113 - 16 0.00143 - 17 0.0019 - 19 0.236 - 20 0.0276 - 21 0.0252 - 26 0.0285 - 28 0.000951 - 29 0.000951 - 30 0.0109 - 31 0.00856 - 32 0.000476 - 34 0.000476 - 35 0.000476 - 39 0.000476 - 40 0.00309 - 41 0.0109 - 43 0.000476 - 44 0.000476 - 45 0.00143 - 46 0.000238 - 47 0.000476 - - 7 30 7 0 - 4 0.3 - 8 0.0667 - 13 0.0333 - 14 0.0667 - 15 0.233 - 19 0.2 - 20 0.1 - - 8 23 7 0 - 4 0.217 - 8 0.087 - 13 0.348 - 14 0.13 - 15 0.13 - 19 0.0435 - 40 0.0435 - - 21 45 14 0 - 0 0.0667 - 2 0.0222 - 4 0.289 - 7 0.0222 - 8 0.0222 - 12 0.0222 - 13 0.0222 - 14 0.0444 - 15 0.133 - 19 0.222 - 20 0.0444 - 21 0.0222 - 28 0.0444 - 40 0.0222 - - 37 2029 31 3 - 0 0.0202 - 2 0.00148 - 3 0.0069 - 4 0.259 - 5 0.0113 - 7 0.00936 - 8 0.0591 - 9 0.00148 - 10 0.00197 - 12 0.0128 - 13 0.0586 - 14 0.0808 - 15 0.108 - 16 0.00148 - 17 0.00197 - 19 0.235 - 20 0.0261 - 21 0.036 - 26 0.0291 - 29 0.000986 - 30 0.0113 - 31 0.00887 - 32 0.000493 - 34 0.000493 - 35 0.000493 - 39 0.000493 - 40 0.00246 - 41 0.0113 - 43 0.000493 - 44 0.000493 - 45 0.00148 - - 2 6 2 0 - 4 0.833 - 26 0.167 - - 21 21 9 0 - 0 0.0476 - 4 0.19 - 8 0.19 - 13 0.0952 - 15 0.0476 - 19 0.238 - 20 0.0952 - 21 0.0476 - 31 0.0476 - - 49 6 3 0 - 4 0.167 - 5 0.333 - 19 0.5 - - 40 1 1 0 - 46 1 - - 46 1 1 0 - 47 1 - - 47 2063 33 5 - 0 0.0223 - 2 0.00145 - 3 0.00679 - 4 0.268 - 5 0.0111 - 7 0.00969 - 8 0.048 - 9 0.00145 - 10 0.00194 - 12 0.0136 - 13 0.0606 - 14 0.0834 - 15 0.115 - 16 0.00145 - 17 0.00194 - 19 0.241 - 20 0.0281 - 21 0.015 - 26 0.0291 - 28 0.000969 - 29 0.000969 - 30 0.0111 - 31 0.00873 - 32 0.000485 - 34 0.000485 - 35 0.000485 - 39 0.000485 - 40 0.00291 - 41 0.0111 - 43 0.000485 - 44 0.000485 - 45 0.00145 - 47 0.000485 - - 7 30 7 0 - 4 0.3 - 8 0.0667 - 13 0.0333 - 14 0.0667 - 15 0.233 - 19 0.2 - 20 0.1 - - 8 18 6 0 - 4 0.278 - 8 0.111 - 13 0.222 - 14 0.167 - 15 0.167 - 19 0.0556 - - 21 43 12 0 - 0 0.0698 - 4 0.302 - 7 0.0233 - 8 0.0233 - 12 0.0233 - 13 0.0233 - 14 0.0465 - 15 0.14 - 19 0.233 - 20 0.0465 - 28 0.0465 - 40 0.0233 - - 46 1 1 0 - 47 1 - - 55 4 3 0 - 0 0.5 - 4 0.25 - 12 0.25 - - 55 4 3 0 - 0 0.5 - 4 0.25 - 12 0.25 - -72 15188 37 29 - 0 0.257 - 2 0.000856 - 3 0.00356 - 4 0.0405 - 5 0.000922 - 7 0.0239 - 8 0.0117 - 9 0.000527 - 10 0.000856 - 12 0.0985 - 13 0.0189 - 14 0.0197 - 15 0.0309 - 16 0.000329 - 17 0.000132 - 18 0.000263 - 19 0.0643 - 20 0.00382 - 21 0.0426 - 22 0.000395 - 23 0.000132 - 26 0.00375 - 28 0.00224 - 29 0.155 - 30 0.000329 - 31 0.0023 - 32 0.0744 - 33 0.128 - 34 0.000263 - 39 0.000593 - 40 0.000658 - 41 0.00974 - 42 0.000263 - 43 0.000395 - 44 0.000461 - 45 0.000988 - 46 0.000132 - - 2 8 3 0 - 7 0.125 - 13 0.625 - 14 0.25 - - 3 9 3 0 - 7 0.778 - 8 0.111 - 14 0.111 - - 4 71 11 1 - 0 0.225 - 7 0.211 - 8 0.0282 - 12 0.0986 - 13 0.169 - 15 0.113 - 18 0.0141 - 21 0.0141 - 29 0.0141 - 32 0.0423 - 33 0.0704 - - 35 4 2 0 - 8 0.5 - 13 0.5 - - 7 358 24 0 - 0 0.00559 - 3 0.00279 - 4 0.154 - 7 0.014 - 8 0.0559 - 9 0.00279 - 10 0.00838 - 13 0.0223 - 14 0.0922 - 15 0.19 - 16 0.00279 - 19 0.237 - 20 0.0279 - 21 0.0447 - 22 0.00279 - 23 0.00279 - 28 0.00279 - 29 0.0279 - 30 0.00559 - 31 0.0251 - 32 0.00838 - 33 0.0168 - 41 0.0447 - 45 0.00279 - - 8 76 17 5 - 0 0.0263 - 4 0.0921 - 7 0.0789 - 8 0.0658 - 13 0.329 - 14 0.171 - 15 0.0395 - 17 0.0132 - 19 0.0658 - 20 0.0263 - 29 0.0132 - 31 0.0132 - 40 0.0132 - 41 0.0132 - 42 0.0132 - 45 0.0132 - 46 0.0132 - - 21 1 1 0 - 17 1 - - 23 2 1 0 - 7 1 - - 36 30 6 0 - 8 0.167 - 13 0.467 - 14 0.267 - 31 0.0333 - 41 0.0333 - 45 0.0333 - - 37 25 10 0 - 0 0.08 - 4 0.28 - 7 0.08 - 13 0.04 - 15 0.12 - 19 0.2 - 20 0.08 - 29 0.04 - 40 0.04 - 42 0.04 - - 47 2 1 0 - 7 1 - - 9 3 3 0 - 12 0.333 - 14 0.333 - 15 0.333 - - 10 6 2 0 - 7 0.833 - 13 0.167 - - 13 186 16 9 - 0 0.269 - 2 0.0108 - 4 0.0806 - 7 0.145 - 8 0.0108 - 12 0.0269 - 13 0.0645 - 14 0.0323 - 15 0.0323 - 19 0.0806 - 21 0.0215 - 26 0.0215 - 29 0.0753 - 33 0.086 - 41 0.0376 - 44 0.00538 - - 2 5 4 0 - 0 0.4 - 13 0.2 - 14 0.2 - 29 0.2 - - 4 5 3 0 - 0 0.2 - 7 0.6 - 19 0.2 - - 8 25 13 0 - 0 0.24 - 2 0.04 - 7 0.04 - 13 0.08 - 14 0.04 - 15 0.04 - 19 0.04 - 21 0.12 - 26 0.04 - 29 0.08 - 33 0.12 - 41 0.08 - 44 0.04 - - 13 13 8 0 - 0 0.231 - 7 0.231 - 8 0.0769 - 12 0.0769 - 19 0.154 - 21 0.0769 - 29 0.0769 - 33 0.0769 - - 34 39 13 0 - 0 0.103 - 2 0.0256 - 4 0.256 - 7 0.128 - 12 0.0256 - 13 0.0513 - 14 0.0256 - 15 0.0513 - 19 0.179 - 26 0.0256 - 29 0.0256 - 33 0.0256 - 41 0.0769 - - 35 14 8 0 - 0 0.286 - 4 0.0714 - 7 0.286 - 14 0.0714 - 19 0.0714 - 26 0.0714 - 29 0.0714 - 41 0.0714 - - 36 58 11 0 - 0 0.362 - 7 0.121 - 12 0.0172 - 13 0.121 - 14 0.0345 - 15 0.0172 - 19 0.0345 - 26 0.0172 - 29 0.103 - 33 0.155 - 41 0.0172 - - 70 7 4 0 - 0 0.286 - 4 0.286 - 8 0.143 - 15 0.286 - - 71 2 1 0 - 4 1 - - 14 114 16 6 - 0 0.307 - 2 0.0439 - 4 0.0263 - 7 0.0526 - 8 0.0175 - 12 0.0439 - 13 0.0175 - 15 0.00877 - 19 0.0965 - 21 0.0175 - 26 0.0351 - 29 0.105 - 32 0.202 - 34 0.00877 - 41 0.00877 - 45 0.00877 - - 8 15 8 0 - 0 0.2 - 12 0.0667 - 19 0.0667 - 21 0.0667 - 29 0.2 - 32 0.267 - 34 0.0667 - 45 0.0667 - - 15 2 2 0 - 4 0.5 - 29 0.5 - - 34 17 9 0 - 0 0.294 - 4 0.0588 - 7 0.176 - 12 0.0588 - 15 0.0588 - 19 0.0588 - 26 0.0588 - 29 0.0588 - 32 0.176 - - 35 5 4 0 - 0 0.2 - 4 0.2 - 12 0.2 - 26 0.4 - - 36 48 8 0 - 0 0.354 - 2 0.104 - 13 0.0417 - 19 0.0833 - 21 0.0208 - 29 0.0833 - 32 0.292 - 41 0.0208 - - 71 3 3 0 - 8 0.333 - 12 0.333 - 19 0.333 - - 15 18 6 0 - 7 0.0556 - 13 0.278 - 14 0.0556 - 15 0.5 - 16 0.0556 - 33 0.0556 - - 21 12 6 0 - 0 0.167 - 4 0.0833 - 7 0.333 - 8 0.0833 - 12 0.167 - 19 0.167 - - 31 2 2 0 - 13 0.5 - 14 0.5 - - 32 1 1 0 - 28 1 - - 34 4214 29 1 - 0 0.274 - 2 0.000475 - 3 0.00522 - 4 0.0282 - 5 0.00142 - 7 0.00878 - 8 0.00807 - 9 0.000475 - 10 0.000237 - 12 0.133 - 13 0.0157 - 14 0.0164 - 15 0.0216 - 16 0.000237 - 18 0.000237 - 19 0.0356 - 20 0.00119 - 21 0.046 - 26 0.000949 - 28 0.00119 - 29 0.159 - 31 0.000949 - 32 0.0729 - 33 0.161 - 39 0.000712 - 41 0.00617 - 42 0.000237 - 44 0.000237 - 45 0.000475 - - 21 2 1 0 - 13 1 - - 35 2343 27 2 - 0 0.268 - 3 0.00128 - 4 0.0448 - 7 0.0128 - 8 0.00512 - 9 0.000427 - 10 0.000854 - 12 0.0657 - 13 0.0111 - 14 0.00896 - 15 0.0188 - 19 0.0905 - 20 0.00512 - 21 0.0448 - 22 0.000854 - 26 0.0064 - 28 0.00427 - 29 0.193 - 31 0.000854 - 32 0.0952 - 33 0.111 - 34 0.000427 - 40 0.000854 - 41 0.00683 - 43 0.00128 - 44 0.000427 - 45 0.000854 - - 21 5 4 0 - 19 0.4 - 20 0.2 - 26 0.2 - 33 0.2 - - 49 1 1 0 - 28 1 - - 36 159 12 0 - 3 0.0126 - 8 0.201 - 9 0.00629 - 10 0.00629 - 13 0.371 - 14 0.302 - 15 0.0566 - 21 0.00629 - 30 0.00629 - 31 0.00629 - 39 0.0189 - 45 0.00629 - - 41 6 6 0 - 0 0.167 - 12 0.167 - 15 0.167 - 31 0.167 - 45 0.167 - 46 0.167 - - 45 2 1 0 - 8 1 - - 47 7352 36 19 - 0 0.266 - 2 0.000408 - 3 0.00354 - 4 0.0415 - 5 0.000952 - 7 0.0181 - 8 0.00871 - 9 0.000408 - 10 0.000816 - 12 0.102 - 13 0.00789 - 14 0.0139 - 15 0.0305 - 16 0.000272 - 17 0.000136 - 18 0.000272 - 19 0.0664 - 20 0.00394 - 21 0.0435 - 22 0.000408 - 23 0.000136 - 26 0.00367 - 28 0.00231 - 29 0.161 - 30 0.000272 - 31 0.00218 - 32 0.0768 - 33 0.132 - 34 0.000272 - 39 0.000408 - 40 0.00068 - 41 0.00952 - 42 0.000272 - 43 0.000408 - 44 0.000408 - 45 0.000816 - - 3 5 1 0 - 7 1 - - 4 61 10 0 - 0 0.262 - 7 0.148 - 12 0.115 - 13 0.164 - 15 0.131 - 18 0.0164 - 21 0.0164 - 29 0.0164 - 32 0.0492 - 33 0.082 - - 7 358 24 0 - 0 0.00559 - 3 0.00279 - 4 0.154 - 7 0.014 - 8 0.0559 - 9 0.00279 - 10 0.00838 - 13 0.0223 - 14 0.0922 - 15 0.19 - 16 0.00279 - 19 0.237 - 20 0.0279 - 21 0.0447 - 22 0.00279 - 23 0.00279 - 28 0.00279 - 29 0.0279 - 30 0.00559 - 31 0.0251 - 32 0.00838 - 33 0.0168 - 41 0.0447 - 45 0.00279 - - 8 31 12 0 - 0 0.0645 - 4 0.226 - 7 0.194 - 13 0.0323 - 15 0.0968 - 17 0.0323 - 19 0.161 - 20 0.0645 - 29 0.0323 - 40 0.0323 - 41 0.0323 - 42 0.0323 - - 9 2 2 0 - 12 0.5 - 15 0.5 - - 10 4 1 0 - 7 1 - - 13 163 13 0 - 0 0.307 - 4 0.092 - 7 0.147 - 8 0.0123 - 12 0.0307 - 15 0.0368 - 19 0.092 - 21 0.0245 - 26 0.0245 - 29 0.0859 - 33 0.0982 - 41 0.0429 - 44 0.00613 - - 14 107 14 0 - 0 0.327 - 4 0.028 - 7 0.0561 - 8 0.0187 - 12 0.0467 - 15 0.00935 - 19 0.103 - 21 0.0187 - 26 0.0374 - 29 0.112 - 32 0.215 - 34 0.00935 - 41 0.00935 - 45 0.00935 - - 15 2 2 0 - 7 0.5 - 33 0.5 - - 21 11 5 0 - 0 0.182 - 4 0.0909 - 7 0.364 - 12 0.182 - 19 0.182 - - 32 1 1 0 - 28 1 - - 34 4153 29 0 - 0 0.278 - 2 0.000482 - 3 0.0053 - 4 0.0287 - 5 0.00144 - 7 0.00891 - 8 0.00722 - 9 0.000482 - 10 0.000241 - 12 0.135 - 13 0.0065 - 14 0.0125 - 15 0.0219 - 16 0.000241 - 18 0.000241 - 19 0.0361 - 20 0.0012 - 21 0.0467 - 26 0.000963 - 28 0.0012 - 29 0.161 - 31 0.000963 - 32 0.0739 - 33 0.164 - 39 0.000722 - 41 0.00602 - 42 0.000241 - 44 0.000241 - 45 0.000482 - - 35 2312 26 0 - 0 0.271 - 3 0.0013 - 4 0.0433 - 7 0.013 - 8 0.00433 - 10 0.000865 - 12 0.0666 - 13 0.00519 - 14 0.00692 - 15 0.019 - 19 0.0917 - 20 0.00519 - 21 0.0437 - 22 0.000865 - 26 0.00649 - 28 0.00433 - 29 0.196 - 31 0.000865 - 32 0.0965 - 33 0.112 - 34 0.000433 - 40 0.000865 - 41 0.00692 - 43 0.0013 - 44 0.000433 - 45 0.000865 - - 49 2 2 0 - 15 0.5 - 19 0.5 - - 55 7 5 0 - 0 0.143 - 21 0.143 - 29 0.143 - 32 0.286 - 41 0.286 - - 57 59 14 0 - 0 0.407 - 4 0.0678 - 5 0.0169 - 12 0.0847 - 14 0.0169 - 15 0.0169 - 19 0.0508 - 21 0.0169 - 29 0.186 - 31 0.0169 - 32 0.0169 - 33 0.0508 - 40 0.0169 - 41 0.0339 - - 60 2 1 0 - 7 1 - - 62 1 1 0 - 40 1 - - 73 62 7 0 - 0 0.581 - 2 0.0161 - 12 0.129 - 19 0.0323 - 29 0.161 - 32 0.0484 - 33 0.0323 - - 48 4 2 0 - 13 0.75 - 19 0.25 - - 49 2 2 0 - 15 0.5 - 19 0.5 - - 55 28 8 4 - 0 0.0357 - 7 0.607 - 13 0.0357 - 21 0.0357 - 26 0.0357 - 29 0.0357 - 32 0.0714 - 41 0.143 - - 36 4 3 0 - 13 0.25 - 21 0.25 - 32 0.5 - - 41 3 1 0 - 41 1 - - 47 18 2 0 - 7 0.944 - 26 0.0556 - - 72 2 2 0 - 0 0.5 - 29 0.5 - - 57 60 15 1 - 0 0.4 - 4 0.0667 - 5 0.0167 - 7 0.0167 - 12 0.0833 - 14 0.0167 - 15 0.0167 - 19 0.05 - 21 0.0167 - 29 0.183 - 31 0.0167 - 32 0.0167 - 33 0.05 - 40 0.0167 - 41 0.0333 - - 55 18 6 0 - 0 0.444 - 4 0.0556 - 5 0.0556 - 12 0.111 - 21 0.0556 - 29 0.278 - - 58 4 4 0 - 0 0.25 - 4 0.25 - 13 0.25 - 19 0.25 - - 60 2 1 0 - 7 1 - - 62 1 1 0 - 40 1 - - 69 1 1 0 - 41 1 - - 72 78 8 0 - 7 0.846 - 8 0.0128 - 15 0.0128 - 19 0.0128 - 21 0.0256 - 26 0.0256 - 41 0.0513 - 44 0.0128 - - 73 62 7 0 - 0 0.581 - 2 0.0161 - 12 0.129 - 19 0.0323 - 29 0.161 - 32 0.0484 - 33 0.0323 - -73 1173 26 5 - 0 0.0682 - 2 0.00171 - 3 0.0358 - 4 0.137 - 5 0.0102 - 8 0.0171 - 12 0.0153 - 13 0.0341 - 14 0.0614 - 15 0.087 - 16 0.00171 - 19 0.14 - 20 0.00682 - 21 0.00171 - 26 0.00853 - 29 0.0171 - 32 0.00682 - 33 0.00341 - 34 0.299 - 35 0.0315 - 36 0.000853 - 37 0.000853 - 39 0.00512 - 40 0.00341 - 41 0.00341 - 43 0.00171 - - 7 373 5 0 - 4 0.00268 - 34 0.903 - 35 0.0885 - 36 0.00268 - 37 0.00268 - - 26 18 2 0 - 34 0.778 - 35 0.222 - - 47 391 22 1 - 0 0.102 - 2 0.00256 - 3 0.0537 - 4 0.205 - 5 0.0153 - 8 0.0256 - 12 0.023 - 13 0.0512 - 14 0.0921 - 15 0.13 - 16 0.00256 - 19 0.21 - 20 0.0102 - 21 0.00256 - 26 0.0128 - 29 0.0256 - 32 0.0102 - 33 0.00512 - 39 0.00767 - 40 0.00512 - 41 0.00512 - 43 0.00256 - - 64 1 1 0 - 41 1 - - 64 1 1 0 - 41 1 - - 72 389 22 1 - 0 0.1 - 2 0.00257 - 3 0.054 - 4 0.206 - 5 0.0154 - 8 0.0257 - 12 0.0231 - 13 0.0514 - 14 0.0925 - 15 0.131 - 16 0.00257 - 19 0.211 - 20 0.0103 - 21 0.00257 - 26 0.0129 - 29 0.0257 - 32 0.0103 - 33 0.00514 - 39 0.00771 - 40 0.00514 - 41 0.00257 - 43 0.00257 - - 26 18 8 0 - 4 0.389 - 13 0.0556 - 14 0.0556 - 15 0.0556 - 19 0.278 - 21 0.0556 - 40 0.0556 - 43 0.0556 - -74 426 24 23 - 0 0.00939 - 4 0.0986 - 7 0.0657 - 8 0.0188 - 10 0.00469 - 13 0.0329 - 14 0.0164 - 15 0.00939 - 19 0.0775 - 20 0.0164 - 21 0.0164 - 22 0.00939 - 26 0.0164 - 28 0.00469 - 31 0.00939 - 33 0.0141 - 34 0.00235 - 35 0.00469 - 40 0.124 - 41 0.0516 - 42 0.12 - 43 0.00469 - 46 0.00939 - 47 0.263 - - 2 4 4 0 - 7 0.25 - 14 0.25 - 19 0.25 - 26 0.25 - - 4 8 4 0 - 7 0.125 - 10 0.125 - 22 0.5 - 47 0.25 - - 6 2 2 0 - 8 0.5 - 40 0.5 - - 7 9 5 0 - 4 0.111 - 7 0.222 - 8 0.111 - 35 0.111 - 47 0.444 - - 9 23 6 0 - 4 0.348 - 7 0.0435 - 13 0.13 - 14 0.13 - 19 0.261 - 20 0.087 - - 12 1 1 0 - 28 1 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 7 0.25 - 41 0.25 - - 14 2 2 0 - 8 0.5 - 40 0.5 - - 15 4 3 0 - 26 0.25 - 40 0.5 - 43 0.25 - - 21 3 3 0 - 20 0.333 - 40 0.333 - 41 0.333 - - 22 10 2 0 - 4 0.3 - 19 0.7 - - 25 39 9 0 - 7 0.0513 - 8 0.0256 - 13 0.0769 - 15 0.0256 - 21 0.0513 - 31 0.0256 - 33 0.0769 - 42 0.538 - 47 0.128 - - 26 5 2 0 - 26 0.4 - 47 0.6 - - 35 2 1 0 - 7 1 - - 40 23 2 0 - 46 0.087 - 47 0.913 - - 41 4 2 0 - 4 0.75 - 7 0.25 - - 42 9 5 0 - 7 0.444 - 13 0.111 - 21 0.111 - 31 0.111 - 47 0.222 - - 47 174 22 17 - 0 0.0115 - 4 0.092 - 7 0.0517 - 8 0.0172 - 10 0.00575 - 13 0.0345 - 14 0.0172 - 15 0.00575 - 19 0.092 - 20 0.0172 - 21 0.0115 - 26 0.0172 - 28 0.00575 - 31 0.00575 - 33 0.0172 - 35 0.00575 - 40 0.0862 - 41 0.0517 - 42 0.121 - 43 0.00575 - 46 0.00575 - 47 0.322 - - 4 4 3 0 - 7 0.25 - 10 0.25 - 47 0.5 - - 7 8 4 0 - 7 0.25 - 8 0.125 - 35 0.125 - 47 0.5 - - 9 22 5 0 - 4 0.364 - 13 0.136 - 14 0.136 - 19 0.273 - 20 0.0909 - - 12 1 1 0 - 28 1 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 7 0.25 - 41 0.25 - - 14 2 2 0 - 8 0.5 - 40 0.5 - - 15 3 3 0 - 26 0.333 - 40 0.333 - 43 0.333 - - 21 3 3 0 - 20 0.333 - 40 0.333 - 41 0.333 - - 22 10 2 0 - 4 0.3 - 19 0.7 - - 25 39 9 0 - 7 0.0513 - 8 0.0256 - 13 0.0769 - 15 0.0256 - 21 0.0513 - 31 0.0256 - 33 0.0769 - 42 0.538 - 47 0.128 - - 26 5 2 0 - 26 0.4 - 47 0.6 - - 35 2 1 0 - 7 1 - - 40 21 1 0 - 47 1 - - 48 5 3 0 - 4 0.4 - 19 0.4 - 47 0.2 - - 55 19 5 0 - 4 0.0526 - 7 0.0526 - 40 0.368 - 41 0.316 - 47 0.211 - - 57 10 3 0 - 40 0.2 - 46 0.1 - 47 0.7 - - 69 1 1 0 - 0 1 - - 48 6 4 0 - 4 0.333 - 19 0.333 - 40 0.167 - 47 0.167 - - 55 33 8 0 - 4 0.0303 - 7 0.0606 - 15 0.0303 - 34 0.0303 - 40 0.485 - 41 0.212 - 42 0.0303 - 47 0.121 - - 57 15 4 0 - 40 0.333 - 42 0.133 - 46 0.0667 - 47 0.467 - - 69 4 2 0 - 0 0.25 - 40 0.75 - - 74 26 11 1 - 4 0.231 - 7 0.0769 - 8 0.0385 - 13 0.0385 - 15 0.0385 - 20 0.0385 - 21 0.0769 - 31 0.0385 - 40 0.0769 - 41 0.115 - 42 0.231 - - 41 6 4 0 - 4 0.333 - 13 0.167 - 20 0.167 - 40 0.333 - From f98e6bdac728a32366b8bea25796b572f3e8dc09 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 4 Jul 2015 17:14:30 +0200 Subject: [PATCH 553/875] Use proper format for symlinks, submodules and trees --- lib/linguist/repository.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index b45b825d..181ddf0e 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -152,7 +152,8 @@ module Linguist if [:added, :modified].include? delta.status # Skip submodules and symlinks mode = delta.new_file[:mode] - next if (mode & 0040000) != 0 || (mode & 0120000) != 0 + mode_format = (mode & 0170000) + next if mode_format == 0120000 || mode_format == 040000 || mode_format == 0160000 blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8)) From 06c1033952cbd47592bc6d90bd1b21f013984a1f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 4 Jul 2015 18:04:19 +0200 Subject: [PATCH 554/875] Fix error from merge conflicts --- lib/linguist/generated.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 1e3f65d6..f1fb2d19 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -341,6 +341,7 @@ module Linguist return false unless lines.count > 1 return lines[0].include?("PCBNEW-LibModule-V") || lines[0].include?("GFORTRAN module version '") + end # Internal: Is this a metadata file from Unity3D? # From e688c865bc2de210faa6f8f02f71b3a218d8a8ac Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 4 Jul 2015 22:48:06 +0200 Subject: [PATCH 555/875] Merge branch 'master' into associate-heuristic-with-extension --- .gitmodules | 6 + CONTRIBUTING.md | 23 +- github-linguist.gemspec | 2 +- grammars.yml | 4 + lib/linguist/generated.rb | 23 +- lib/linguist/heuristics.rb | 10 + lib/linguist/languages.yml | 49 +- lib/linguist/repository.rb | 5 +- lib/linguist/vendor.yml | 8 + lib/linguist/version.rb | 2 +- samples/AMPL/CT2.mod | 58 + samples/G-code/lm.g | 25912 ------------------ samples/G-code/rm.g | 29735 --------------------- samples/Isabelle ROOT/filenames/ROOT | 1104 + samples/Linux Kernel Module/bcm4334x.mod | 2 + samples/Linux Kernel Module/mbcache.mod | 2 + samples/Linux Kernel Module/md5.mod | 2 + samples/Modula-2/HuffChan.mod | 329 + samples/PHP/root.php | 6 + samples/Perl/strict.t | 1 + samples/Perl6/test.p6 | 20 - samples/SMT/bignum_lia1.smt2 | 20 + samples/SMT/list4.smt2 | 20 + samples/SMT/queen10-1.smt2 | 123 + samples/SMT/shufflevector.smt | 2104 ++ samples/XML/xhtml-struct-1.mod | 125 + test/fixtures/Generated/ABM8G.mod | 50 + test/fixtures/Generated/ms2.mod | 19 + test/fixtures/SVG/alg_schema.link.svg | 1 + test/fixtures/SVG/alg_schema.svg | 269 + test/test_blob.rb | 11 + vendor/grammars/Handlebars | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SMT.tmbundle | 1 + vendor/grammars/Sublime-Modula-2 | 1 + vendor/grammars/atom-fsharp | 2 +- vendor/grammars/carto-atom | 2 +- vendor/grammars/css.tmbundle | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/jade-tmbundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-jsoniq | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/sas.tmbundle | 2 +- vendor/grammars/sublime-mask | 2 +- vendor/grammars/sublime-text-ox | 2 +- 50 files changed, 4387 insertions(+), 55694 deletions(-) create mode 100644 samples/AMPL/CT2.mod delete mode 100644 samples/G-code/lm.g delete mode 100644 samples/G-code/rm.g create mode 100644 samples/Isabelle ROOT/filenames/ROOT create mode 100644 samples/Linux Kernel Module/bcm4334x.mod create mode 100644 samples/Linux Kernel Module/mbcache.mod create mode 100644 samples/Linux Kernel Module/md5.mod create mode 100644 samples/Modula-2/HuffChan.mod create mode 100644 samples/PHP/root.php create mode 100644 samples/SMT/bignum_lia1.smt2 create mode 100644 samples/SMT/list4.smt2 create mode 100644 samples/SMT/queen10-1.smt2 create mode 100644 samples/SMT/shufflevector.smt create mode 100644 samples/XML/xhtml-struct-1.mod create mode 100644 test/fixtures/Generated/ABM8G.mod create mode 100644 test/fixtures/Generated/ms2.mod create mode 120000 test/fixtures/SVG/alg_schema.link.svg create mode 100644 test/fixtures/SVG/alg_schema.svg create mode 160000 vendor/grammars/SMT.tmbundle create mode 160000 vendor/grammars/Sublime-Modula-2 diff --git a/.gitmodules b/.gitmodules index 12edcd9a..67eb93d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -629,6 +629,9 @@ [submodule "vendor/grammars/jflex.tmbundle"] path = vendor/grammars/jflex.tmbundle url = https://github.com/jflex-de/jflex.tmbundle.git +[submodule "vendor/grammars/Sublime-Modula-2"] + path = vendor/grammars/Sublime-Modula-2 + url = https://github.com/harogaston/Sublime-Modula-2 [submodule "vendor/grammars/ada.tmbundle"] path = vendor/grammars/ada.tmbundle url = https://github.com/textmate/ada.tmbundle @@ -647,3 +650,6 @@ [submodule "vendor/grammars/atom-fsharp"] path = vendor/grammars/atom-fsharp url = https://github.com/fsprojects/atom-fsharp +[submodule "vendor/grammars/SMT.tmbundle"] + path = vendor/grammars/SMT.tmbundle + url = https://github.com/SRI-CSL/SMT.tmbundle.git diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebae203c..80576ac4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,9 +2,27 @@ Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. The majority of contributions won't need to touch any Ruby code at all. + +## Adding an extension to a language + +We try only to add new extensions once they have some usage on GitHub. In most cases we prefer that extensions be in use in hundreds of repositories before supporting them in Linguist. + +To add support for a new extension: + +0. Add your extension to the language entry in [`languages.yml`][languages]. +0. Add at least one sample for your extension to the [samples directory][samples] in the correct subdirectory. +0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage. + +In addition, if this extension is already listed in [`languages.yml`][languages] then sometimes a few more steps will need to be taken: + +0. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`. +0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping @arfon or @bkeepers to help with this) to ensure we're not misclassifying files. +0. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help. + + ## Adding a language -We try only to add languages once they have some usage on GitHub. In most cases we prefer that languages be in use in hundreds of repositories before supporting them in Linguist. +We try only to add languages once they have some usage on GitHub. In most cases we prefer that each new file extension be in use in hundreds of repositories before supporting them in Linguist. To add support for a new language: @@ -23,12 +41,14 @@ In addition, if your new language defines an extension that's already listed in Remember, the goal here is to try and avoid false positives! + ## Fixing a misclassified language Most languages are detected by their file extension defined in [languages.yml][languages]. For disambiguating between files with common extensions, linguist applies some [heuristics](/lib/linguist/heuristics.rb) and a [statistical classifier](lib/linguist/classifier.rb). This process can help differentiate between, for example, `.h` files which could be either C, C++, or Obj-C. Misclassifications can often be solved by either adding a new filename or extension for the language or adding more [samples][samples] to make the classifier smarter. + ## Fixing syntax highlighting Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in [languages.yml][languages] is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. @@ -55,6 +75,7 @@ Sometimes getting the tests running can be too much work, especially if you don' Here's our current build status: [![Build Status](https://secure.travis-ci.org/github/linguist.png?branch=master)](http://travis-ci.org/github/linguist) + ## Releasing If you are the current maintainer of this gem: diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 3f3a0853..ce2303bf 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.add_dependency 'charlock_holmes', '~> 0.7.3' s.add_dependency 'escape_utils', '~> 1.1.0' s.add_dependency 'mime-types', '>= 1.19' - s.add_dependency 'rugged', '~> 0.23.0b1' + s.add_dependency 'rugged', '>= 0.23.0b' s.add_development_dependency 'minitest', '>= 5.0' s.add_development_dependency 'mocha' diff --git a/grammars.yml b/grammars.yml index c0bfe823..a70491a4 100644 --- a/grammars.yml +++ b/grammars.yml @@ -85,6 +85,8 @@ vendor/grammars/Racket: - source.racket vendor/grammars/SCSS.tmbundle: - source.scss +vendor/grammars/SMT.tmbundle: +- source.smt vendor/grammars/Scalate.tmbundle: - source.scaml - text.html.ssp @@ -107,6 +109,8 @@ vendor/grammars/Sublime-Logos: - source.logos vendor/grammars/Sublime-Loom: - source.loomscript +vendor/grammars/Sublime-Modula-2/: +- source.modula2 vendor/grammars/Sublime-Nit: - source.nit vendor/grammars/Sublime-QML: diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index d6bf6263..f1fb2d19 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -69,8 +69,9 @@ module Linguist generated_protocol_buffer? || generated_apache_thrift? || generated_jni_header? || - generated_unity3d_meta? || - vcr_cassette? + vcr_cassette? || + generated_module? || + generated_unity3d_meta? end # Internal: Is the blob an Xcode file? @@ -324,6 +325,24 @@ module Linguist return lines[0].include?("Generated by Cython") end + # Internal: Is it a KiCAD or GFortran module file? + # + # KiCAD module files contain: + # PCBNEW-LibModule-V1 yyyy-mm-dd h:mm:ss XM + # on the first line. + # + # GFortran module files contain: + # GFORTRAN module version 'x' created from + # on the first line. + # + # Return true of false + def generated_module? + return false unless extname == '.mod' + return false unless lines.count > 1 + return lines[0].include?("PCBNEW-LibModule-V") || + lines[0].include?("GFORTRAN module version '") + end + # Internal: Is this a metadata file from Unity3D? # # Unity3D Meta files start with: diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 9282c197..b734c2f3 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -285,6 +285,16 @@ module Linguist end end + disambiguate ".mod" do |data| + if data.include?('= 1, integer; # number of rows +param num_cols >= 1, integer; # number of columns + +set BEAMS := 1 .. num_beams; # set of beams + +set ROWS := 1 .. num_rows; # set of rows +set COLUMNS := 1 .. num_cols; # set of columns + +# values for entries of each beam +param beam_values {BEAMS, ROWS, COLUMNS} >= 0; + +# values of tumor +param tumor_values {ROWS, COLUMNS} >= 0; + +# values of critical area +param critical_values {ROWS, COLUMNS} >= 0; + +# critical maximum dosage requirement +param critical_max; + +# tumor minimum dosage requirement +param tumor_min; + +# dosage scalar of each beam +var X {i in BEAMS} >= 0; + + +# define the tumor area which includes the locations where tumor exists +set tumor_area := {k in ROWS, h in COLUMNS: tumor_values[k,h] > 0}; + +# define critical area +set critical_area := {k in ROWS, h in COLUMNS: critical_values[k,h] > 0}; + +var S {(k,h) in tumor_area} >= 0; +var T {(k,h) in critical_area} >= 0; + +# maximize total dosage in tumor area +maximize total_tumor_dosage: sum {i in BEAMS} sum {(k,h) in tumor_area} X[i] * beam_values[i,k,h]; + +# minimize total dosage in critical area +minimize total_critical_dosage: sum {i in BEAMS} sum {(k,h) in critical_area} X[i] * beam_values[i,k,h]; + +# minimize total tumor slack +minimize total_tumor_slack: sum {(k,h) in tumor_area} S[k,h]; + +# minimize total critical area slack +minimize total_critical_slack: sum {(k,h) in critical_area} T[k,h]; + +# total dosage at each tumor location [k,h] should be >= min tumor dosage with slack variable +subject to tumor_limit {(k,h) in tumor_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == tumor_min - S[k,h]; + +# total dosage at each critical location [k,h] should be = max critical dosage with slack variable +subject to critical_limit {(k,h) in critical_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == critical_max + T[k,h]; + + + diff --git a/samples/G-code/lm.g b/samples/G-code/lm.g deleted file mode 100644 index 4b60a136..00000000 --- a/samples/G-code/lm.g +++ /dev/null @@ -1,25912 +0,0 @@ -48 36266 43 38 - 0 0.259 - 1 0.00232 - 2 0.0392 - 3 0.0317 - 4 0.141 - 6 0.000138 - 7 0.0468 - 8 0.036 - 9 0.0021 - 10 0.00146 - 13 0.0395 - 14 0.0443 - 15 0.00874 - 16 0.000331 - 18 0.013 - 19 0.0104 - 20 0.0106 - 21 0.121 - 22 0.0148 - 23 0.00816 - 24 0.000772 - 25 0.000165 - 26 0.004 - 28 0.0217 - 29 0.0184 - 30 0.00976 - 31 0.0173 - 32 0.00767 - 33 0.0122 - 34 5.51e-05 - 35 5.51e-05 - 36 0.000276 - 37 0.000551 - 38 2.76e-05 - 39 0.00645 - 40 0.000138 - 41 0.0352 - 42 0.00447 - 43 0.000221 - 44 0.00149 - 45 0.0171 - 46 0.00105 - 47 0.0106 - - 0 4 3 0 - 2 0.25 - 13 0.5 - 19 0.25 - - 2 619 18 15 - 0 0.00323 - 3 0.00808 - 4 0.00808 - 7 0.00162 - 8 0.784 - 9 0.042 - 10 0.00646 - 13 0.0517 - 14 0.00323 - 15 0.00969 - 20 0.00162 - 28 0.00162 - 29 0.00162 - 30 0.00485 - 31 0.0307 - 41 0.0178 - 42 0.00969 - 46 0.0145 - - 3 1 1 0 - 3 1 - - 4 1 1 0 - 4 1 - - 8 526 12 0 - 4 0.0076 - 7 0.0019 - 8 0.901 - 10 0.0019 - 13 0.0342 - 15 0.0019 - 29 0.0019 - 30 0.0057 - 31 0.019 - 41 0.0114 - 42 0.00951 - 46 0.0038 - - 9 37 5 0 - 3 0.027 - 8 0.162 - 9 0.703 - 41 0.0811 - 42 0.027 - - 10 3 1 0 - 10 1 - - 13 15 4 0 - 3 0.0667 - 13 0.8 - 14 0.0667 - 41 0.0667 - - 14 1 1 0 - 14 1 - - 15 5 1 0 - 15 1 - - 20 1 1 0 - 20 1 - - 21 5 3 0 - 0 0.2 - 8 0.6 - 41 0.2 - - 28 1 1 0 - 28 1 - - 31 10 2 0 - 13 0.1 - 31 0.9 - - 39 1 1 0 - 3 1 - - 45 7 1 0 - 46 1 - - 48 2 2 0 - 0 0.5 - 3 0.5 - - 3 1036 24 8 - 0 0.00869 - 2 0.00965 - 3 0.0425 - 4 0.496 - 7 0.0734 - 8 0.0502 - 9 0.000965 - 13 0.00579 - 14 0.000965 - 15 0.029 - 18 0.0463 - 20 0.0299 - 24 0.000965 - 26 0.000965 - 28 0.00579 - 30 0.00483 - 31 0.0029 - 32 0.00193 - 33 0.0029 - 38 0.000965 - 39 0.166 - 41 0.0154 - 42 0.0029 - 45 0.000965 - - 2 4 4 0 - 7 0.25 - 13 0.25 - 28 0.25 - 39 0.25 - - 3 39 6 0 - 4 0.128 - 7 0.385 - 8 0.0256 - 18 0.0769 - 32 0.0256 - 39 0.359 - - 8 34 10 0 - 0 0.0294 - 2 0.0882 - 3 0.0294 - 4 0.5 - 8 0.0882 - 18 0.0294 - 20 0.0882 - 28 0.0294 - 32 0.0294 - 39 0.0882 - - 9 2 2 0 - 0 0.5 - 13 0.5 - - 13 769 21 0 - 0 0.0065 - 2 0.0065 - 3 0.0325 - 4 0.635 - 7 0.078 - 8 0.0611 - 9 0.0013 - 13 0.0026 - 14 0.0013 - 15 0.0351 - 18 0.0572 - 20 0.0364 - 24 0.0013 - 26 0.0013 - 28 0.0052 - 30 0.0065 - 31 0.0039 - 33 0.0039 - 41 0.0195 - 42 0.0039 - 45 0.0013 - - 14 2 2 0 - 2 0.5 - 41 0.5 - - 41 1 1 0 - 13 1 - - 47 184 9 0 - 0 0.0109 - 2 0.00543 - 3 0.0978 - 4 0.0163 - 8 0.00543 - 13 0.00543 - 15 0.0163 - 38 0.00543 - 39 0.837 - - 4 59 13 4 - 0 0.305 - 2 0.0847 - 7 0.186 - 10 0.0169 - 13 0.0678 - 21 0.0339 - 28 0.0678 - 29 0.0678 - 30 0.0169 - 31 0.0339 - 41 0.0508 - 42 0.0169 - 47 0.0508 - - 2 5 2 0 - 0 0.2 - 7 0.8 - - 21 4 2 0 - 0 0.75 - 31 0.25 - - 47 8 5 0 - 2 0.375 - 7 0.25 - 10 0.125 - 29 0.125 - 47 0.125 - - 48 3 3 0 - 0 0.333 - 41 0.333 - 42 0.333 - - 6 14 7 1 - 4 0.143 - 6 0.357 - 7 0.143 - 13 0.0714 - 20 0.0714 - 40 0.0714 - 45 0.143 - - 6 5 3 0 - 4 0.4 - 7 0.4 - 20 0.2 - - 7 72 19 3 - 0 0.222 - 2 0.0139 - 3 0.0278 - 7 0.0278 - 8 0.0278 - 9 0.0139 - 13 0.0694 - 14 0.0833 - 15 0.0278 - 21 0.153 - 22 0.0139 - 28 0.0278 - 29 0.0417 - 30 0.0139 - 31 0.0833 - 33 0.0278 - 41 0.0694 - 42 0.0278 - 47 0.0278 - - 8 21 10 0 - 0 0.0952 - 9 0.0476 - 13 0.0476 - 14 0.0476 - 21 0.286 - 22 0.0476 - 28 0.0476 - 31 0.19 - 33 0.0476 - 41 0.143 - - 13 5 5 0 - 3 0.2 - 7 0.2 - 13 0.2 - 42 0.2 - 47 0.2 - - 21 6 5 0 - 0 0.333 - 8 0.167 - 14 0.167 - 29 0.167 - 41 0.167 - - 8 10450 37 10 - 0 0.257 - 1 0.0022 - 2 0.0624 - 3 0.00545 - 4 0.0268 - 7 0.0371 - 8 0.0275 - 9 0.00191 - 10 0.00383 - 13 0.0362 - 14 0.0615 - 15 0.00766 - 16 0.000287 - 18 0.00287 - 19 0.00957 - 20 0.00268 - 21 0.235 - 22 0.0462 - 23 0.0262 - 24 0.000287 - 26 0.00373 - 28 0.0187 - 29 0.0162 - 30 0.00612 - 31 0.0156 - 32 0.00689 - 33 0.0111 - 37 0.000574 - 39 0.00593 - 40 0.000191 - 41 0.0333 - 42 0.00201 - 43 9.57e-05 - 44 0.000383 - 45 0.0185 - 46 0.000957 - 47 0.00785 - - 2 485 30 0 - 0 0.103 - 2 0.0206 - 3 0.00412 - 4 0.181 - 7 0.146 - 8 0.0701 - 9 0.00412 - 13 0.00619 - 14 0.00206 - 15 0.00825 - 18 0.0247 - 19 0.00206 - 20 0.0309 - 21 0.0577 - 22 0.0186 - 23 0.0144 - 24 0.00206 - 26 0.0165 - 28 0.0227 - 29 0.0124 - 30 0.0206 - 31 0.00619 - 32 0.00412 - 33 0.0144 - 40 0.00206 - 41 0.126 - 42 0.00825 - 45 0.0454 - 46 0.00206 - 47 0.0227 - - 8 227 22 0 - 0 0.0308 - 2 0.0837 - 3 0.0176 - 4 0.348 - 7 0.185 - 8 0.0617 - 10 0.00881 - 18 0.0176 - 19 0.00441 - 20 0.0352 - 23 0.00441 - 26 0.022 - 28 0.00441 - 29 0.0264 - 30 0.0132 - 31 0.00441 - 32 0.00441 - 33 0.00441 - 41 0.0264 - 42 0.00441 - 46 0.00441 - 47 0.0881 - - 9 9 5 0 - 0 0.222 - 2 0.111 - 4 0.444 - 20 0.111 - 28 0.111 - - 10 12 2 0 - 4 0.5 - 18 0.5 - - 23 4 1 0 - 4 1 - - 26 11 6 0 - 0 0.0909 - 4 0.273 - 7 0.364 - 29 0.0909 - 41 0.0909 - 45 0.0909 - - 41 91 20 0 - 0 0.0879 - 2 0.022 - 3 0.011 - 4 0.187 - 7 0.231 - 8 0.022 - 15 0.011 - 18 0.011 - 20 0.011 - 21 0.033 - 22 0.022 - 23 0.022 - 28 0.011 - 29 0.011 - 30 0.011 - 31 0.011 - 41 0.143 - 42 0.022 - 45 0.0879 - 47 0.033 - - 42 4 3 0 - 4 0.5 - 7 0.25 - 21 0.25 - - 46 9 1 0 - 45 1 - - 47 9595 37 0 - 0 0.272 - 1 0.0024 - 2 0.0646 - 3 0.00521 - 4 0.00803 - 7 0.0258 - 8 0.0247 - 9 0.00188 - 10 0.00396 - 13 0.0391 - 14 0.0669 - 15 0.00782 - 16 0.000313 - 18 0.00073 - 19 0.0102 - 20 0.000313 - 21 0.252 - 22 0.0492 - 23 0.0275 - 24 0.000208 - 26 0.00271 - 28 0.0189 - 29 0.0162 - 30 0.00521 - 31 0.0165 - 32 0.00719 - 33 0.0113 - 37 0.000625 - 39 0.00646 - 40 0.000104 - 41 0.0278 - 42 0.00146 - 43 0.000104 - 44 0.000417 - 45 0.0158 - 46 0.000834 - 47 0.005 - - 9 882 28 4 - 0 0.22 - 1 0.00227 - 2 0.0737 - 3 0.0317 - 4 0.0249 - 7 0.0181 - 8 0.0159 - 13 0.0964 - 14 0.0351 - 15 0.00227 - 18 0.00113 - 19 0.0204 - 20 0.00113 - 21 0.339 - 22 0.00113 - 24 0.00113 - 26 0.00227 - 28 0.0147 - 29 0.0238 - 30 0.017 - 31 0.0068 - 32 0.00907 - 33 0.0102 - 34 0.00113 - 41 0.017 - 42 0.00113 - 45 0.00794 - 47 0.00454 - - 2 26 16 0 - 0 0.0769 - 1 0.0385 - 4 0.0385 - 7 0.0385 - 13 0.0385 - 14 0.115 - 19 0.0385 - 21 0.0385 - 28 0.115 - 29 0.0385 - 30 0.0769 - 32 0.0385 - 33 0.0385 - 41 0.154 - 45 0.0769 - 47 0.0385 - - 8 15 7 0 - 4 0.2 - 7 0.4 - 8 0.0667 - 13 0.0667 - 20 0.0667 - 28 0.0667 - 30 0.133 - - 41 7 7 0 - 0 0.143 - 2 0.143 - 4 0.143 - 7 0.143 - 14 0.143 - 28 0.143 - 32 0.143 - - 47 829 27 0 - 0 0.23 - 1 0.00121 - 2 0.0772 - 3 0.0338 - 4 0.0169 - 7 0.00965 - 8 0.0157 - 13 0.1 - 14 0.0326 - 15 0.00241 - 18 0.00121 - 19 0.0193 - 21 0.359 - 22 0.00121 - 24 0.00121 - 26 0.00241 - 28 0.00844 - 29 0.0241 - 30 0.0133 - 31 0.00724 - 32 0.00724 - 33 0.00965 - 34 0.00121 - 41 0.0133 - 42 0.00121 - 45 0.00603 - 47 0.00362 - - 10 101 11 2 - 0 0.0495 - 2 0.0495 - 4 0.277 - 7 0.119 - 8 0.119 - 18 0.158 - 20 0.0792 - 21 0.119 - 29 0.0099 - 42 0.0099 - 46 0.0099 - - 8 29 4 0 - 2 0.0345 - 4 0.552 - 18 0.241 - 20 0.172 - - 47 68 11 0 - 0 0.0735 - 2 0.0588 - 4 0.162 - 7 0.176 - 8 0.176 - 18 0.103 - 20 0.0294 - 21 0.176 - 29 0.0147 - 42 0.0147 - 46 0.0147 - - 13 1069 25 11 - 0 0.0131 - 2 0.0215 - 3 0.836 - 4 0.0187 - 7 0.0159 - 8 0.00935 - 9 0.00187 - 10 0.000935 - 13 0.0337 - 14 0.00281 - 15 0.00468 - 18 0.00281 - 20 0.00468 - 21 0.00468 - 22 0.000935 - 25 0.000935 - 26 0.00187 - 28 0.00374 - 29 0.00187 - 30 0.00281 - 31 0.00468 - 33 0.000935 - 41 0.00655 - 45 0.00281 - 47 0.00187 - - 2 32 12 0 - 2 0.0938 - 4 0.219 - 7 0.125 - 8 0.0938 - 15 0.0625 - 18 0.0312 - 20 0.0938 - 28 0.0312 - 30 0.0625 - 31 0.0625 - 33 0.0312 - 41 0.0938 - - 3 3 3 0 - 4 0.333 - 26 0.333 - 41 0.333 - - 8 23 10 0 - 0 0.304 - 2 0.13 - 3 0.0435 - 4 0.087 - 8 0.0435 - 13 0.13 - 21 0.13 - 41 0.0435 - 45 0.0435 - 47 0.0435 - - 9 4 2 0 - 0 0.25 - 4 0.75 - - 13 11 5 0 - 3 0.364 - 4 0.0909 - 7 0.182 - 8 0.273 - 26 0.0909 - - 21 1 1 0 - 25 1 - - 29 5 3 0 - 3 0.4 - 4 0.2 - 13 0.4 - - 31 13 6 0 - 0 0.154 - 3 0.308 - 4 0.154 - 7 0.0769 - 13 0.231 - 21 0.0769 - - 41 5 3 0 - 7 0.4 - 8 0.2 - 20 0.4 - - 42 2 2 0 - 18 0.5 - 47 0.5 - - 47 967 20 0 - 0 0.00414 - 2 0.0165 - 3 0.913 - 4 0.00207 - 7 0.00724 - 8 0.00207 - 9 0.00207 - 10 0.00103 - 13 0.029 - 14 0.0031 - 15 0.0031 - 18 0.00103 - 21 0.00103 - 22 0.00103 - 28 0.0031 - 29 0.00207 - 30 0.00103 - 31 0.0031 - 41 0.00207 - 45 0.00207 - - 14 13 7 0 - 2 0.0769 - 3 0.538 - 4 0.0769 - 14 0.0769 - 33 0.0769 - 42 0.0769 - 47 0.0769 - - 15 172 19 7 - 0 0.0174 - 2 0.064 - 3 0.0116 - 4 0.279 - 7 0.157 - 8 0.0291 - 15 0.198 - 18 0.0174 - 20 0.0116 - 26 0.00581 - 28 0.0116 - 31 0.0174 - 33 0.0116 - 41 0.0465 - 42 0.00581 - 43 0.00581 - 44 0.00581 - 45 0.0116 - 47 0.093 - - 2 6 4 0 - 4 0.5 - 7 0.167 - 8 0.167 - 41 0.167 - - 3 4 2 0 - 4 0.5 - 20 0.5 - - 8 54 11 0 - 0 0.0185 - 4 0.37 - 7 0.278 - 8 0.037 - 15 0.0185 - 18 0.037 - 26 0.0185 - 33 0.0185 - 41 0.0556 - 45 0.0185 - 47 0.13 - - 13 3 3 0 - 3 0.333 - 8 0.333 - 15 0.333 - - 15 30 10 0 - 2 0.1 - 3 0.0333 - 4 0.433 - 7 0.133 - 8 0.0333 - 15 0.0667 - 28 0.0333 - 33 0.0333 - 45 0.0333 - 47 0.1 - - 41 35 8 0 - 2 0.0286 - 4 0.286 - 7 0.143 - 15 0.286 - 18 0.0286 - 28 0.0286 - 41 0.0857 - 47 0.114 - - 47 39 10 0 - 0 0.0513 - 2 0.179 - 7 0.0513 - 15 0.487 - 31 0.0769 - 41 0.0256 - 42 0.0256 - 43 0.0256 - 44 0.0256 - 47 0.0513 - - 20 2 2 0 - 2 0.5 - 7 0.5 - - 21 3162 36 12 - 0 0.285 - 1 0.00316 - 2 0.038 - 3 0.00506 - 4 0.189 - 7 0.0664 - 8 0.00538 - 9 0.000633 - 13 0.0417 - 14 0.0237 - 15 0.00253 - 16 0.000316 - 18 0.0104 - 19 0.012 - 20 0.012 - 21 0.0904 - 22 0.00285 - 23 0.0038 - 24 0.00158 - 25 0.000316 - 26 0.00633 - 28 0.0266 - 29 0.0256 - 30 0.0139 - 31 0.0202 - 32 0.013 - 33 0.0164 - 35 0.000316 - 37 0.00158 - 41 0.0332 - 42 0.00506 - 43 0.000633 - 44 0.00127 - 45 0.031 - 46 0.000316 - 47 0.0104 - - 7 3 3 0 - 2 0.333 - 13 0.333 - 24 0.333 - - 8 1970 32 0 - 0 0.342 - 1 0.00305 - 2 0.0396 - 3 0.00457 - 4 0.177 - 7 0.0503 - 8 0.00508 - 9 0.000508 - 13 0.0315 - 14 0.0107 - 15 0.00152 - 18 0.00812 - 19 0.0142 - 20 0.00914 - 21 0.0985 - 22 0.00254 - 23 0.00254 - 24 0.00152 - 26 0.00558 - 28 0.0223 - 29 0.0198 - 30 0.0117 - 31 0.0173 - 32 0.0107 - 33 0.0183 - 37 0.00254 - 41 0.0294 - 42 0.00508 - 43 0.00102 - 44 0.00152 - 45 0.0421 - 47 0.0102 - - 9 279 22 0 - 0 0.305 - 1 0.00358 - 2 0.0287 - 3 0.00358 - 4 0.219 - 7 0.0645 - 13 0.0287 - 14 0.0179 - 19 0.00717 - 21 0.0358 - 26 0.0108 - 28 0.0538 - 29 0.0538 - 30 0.0323 - 31 0.0215 - 32 0.0251 - 33 0.0179 - 41 0.0394 - 42 0.0108 - 45 0.00717 - 46 0.00358 - 47 0.0108 - - 10 12 3 0 - 2 0.0833 - 4 0.667 - 18 0.25 - - 13 2 1 0 - 21 1 - - 21 123 19 0 - 0 0.358 - 1 0.00813 - 2 0.0732 - 4 0.0244 - 7 0.0325 - 13 0.0407 - 14 0.0976 - 15 0.00813 - 20 0.00813 - 21 0.0732 - 28 0.0244 - 29 0.0163 - 31 0.0488 - 32 0.0244 - 35 0.00813 - 41 0.0732 - 42 0.0244 - 45 0.0407 - 47 0.0163 - - 22 35 12 0 - 0 0.4 - 2 0.114 - 4 0.143 - 7 0.0286 - 13 0.0571 - 19 0.0286 - 21 0.0286 - 28 0.0571 - 29 0.0286 - 30 0.0286 - 32 0.0286 - 41 0.0571 - - 23 2 1 0 - 47 1 - - 31 380 26 0 - 0 0.1 - 2 0.0316 - 3 0.0158 - 4 0.395 - 7 0.168 - 8 0.0105 - 9 0.00263 - 13 0.0132 - 14 0.00263 - 18 0.0289 - 20 0.05 - 21 0.0368 - 22 0.00526 - 23 0.0132 - 25 0.00263 - 26 0.0132 - 28 0.0184 - 29 0.0184 - 30 0.00526 - 31 0.00526 - 32 0.00526 - 33 0.0105 - 41 0.0211 - 44 0.00263 - 45 0.0105 - 47 0.0132 - - 41 5 4 0 - 0 0.4 - 4 0.2 - 31 0.2 - 45 0.2 - - 45 6 5 0 - 0 0.167 - 4 0.167 - 7 0.333 - 19 0.167 - 45 0.167 - - 47 339 26 0 - 0 0.112 - 1 0.0059 - 2 0.0206 - 4 0.056 - 7 0.0649 - 8 0.00885 - 13 0.145 - 14 0.106 - 15 0.0118 - 16 0.00295 - 18 0.00885 - 19 0.0177 - 21 0.165 - 22 0.0059 - 23 0.0059 - 24 0.00295 - 26 0.00295 - 28 0.0383 - 29 0.0501 - 30 0.0265 - 31 0.0442 - 32 0.0206 - 33 0.0206 - 41 0.0472 - 45 0.0059 - 47 0.00295 - - 22 504 23 6 - 0 0.246 - 2 0.0417 - 3 0.00198 - 4 0.188 - 7 0.0258 - 13 0.0516 - 14 0.0675 - 15 0.00992 - 18 0.00397 - 19 0.0298 - 20 0.00198 - 21 0.101 - 24 0.00198 - 26 0.00595 - 28 0.0417 - 29 0.0218 - 30 0.0357 - 31 0.0198 - 32 0.00397 - 33 0.0159 - 41 0.0397 - 45 0.0179 - 47 0.0258 - - 8 431 21 0 - 0 0.262 - 2 0.0464 - 4 0.213 - 7 0.0255 - 13 0.0441 - 14 0.0534 - 15 0.00464 - 18 0.00464 - 19 0.0255 - 21 0.111 - 24 0.00232 - 26 0.00696 - 28 0.0394 - 29 0.0116 - 30 0.0302 - 31 0.0186 - 32 0.00464 - 33 0.0139 - 41 0.0418 - 45 0.0162 - 47 0.0232 - - 21 5 5 0 - 2 0.2 - 7 0.2 - 14 0.2 - 30 0.2 - 41 0.2 - - 30 3 2 0 - 0 0.667 - 7 0.333 - - 31 18 8 0 - 0 0.389 - 14 0.111 - 15 0.167 - 20 0.0556 - 29 0.111 - 33 0.0556 - 41 0.0556 - 45 0.0556 - - 45 3 2 0 - 4 0.667 - 30 0.333 - - 47 42 13 0 - 0 0.0476 - 3 0.0238 - 13 0.167 - 14 0.19 - 19 0.0952 - 21 0.0714 - 28 0.0714 - 29 0.0952 - 30 0.0714 - 31 0.0476 - 33 0.0238 - 45 0.0238 - 47 0.0714 - - 23 292 18 1 - 0 0.0651 - 2 0.0514 - 3 0.0274 - 4 0.634 - 8 0.0171 - 13 0.0103 - 14 0.00342 - 15 0.00342 - 18 0.0548 - 19 0.00342 - 20 0.0548 - 21 0.0171 - 28 0.00342 - 31 0.00342 - 32 0.00342 - 41 0.0205 - 42 0.00342 - 47 0.024 - - 21 11 4 0 - 2 0.0909 - 4 0.727 - 31 0.0909 - 41 0.0909 - - 24 7 2 0 - 0 0.857 - 21 0.143 - - 26 11 1 0 - 8 1 - - 28 10 7 0 - 2 0.1 - 15 0.1 - 19 0.1 - 21 0.1 - 26 0.3 - 28 0.2 - 45 0.1 - - 29 10 4 0 - 2 0.2 - 13 0.6 - 21 0.1 - 32 0.1 - - 30 47 15 1 - 0 0.447 - 2 0.0213 - 4 0.0426 - 7 0.0213 - 10 0.0213 - 13 0.0426 - 14 0.0213 - 21 0.106 - 22 0.0638 - 28 0.0213 - 31 0.0426 - 32 0.0213 - 41 0.0426 - 45 0.0426 - 47 0.0426 - - 2 3 2 0 - 4 0.667 - 7 0.333 - - 31 750 26 3 - 0 0.145 - 1 0.00133 - 2 0.0187 - 3 0.00267 - 4 0.0187 - 7 0.00933 - 8 0.00267 - 9 0.00133 - 13 0.0373 - 14 0.04 - 15 0.00133 - 19 0.00533 - 20 0.00133 - 21 0.583 - 22 0.028 - 23 0.0107 - 25 0.00133 - 28 0.0187 - 29 0.016 - 30 0.004 - 31 0.004 - 32 0.004 - 33 0.0147 - 41 0.00667 - 45 0.00933 - 47 0.0147 - - 2 19 10 0 - 2 0.0526 - 4 0.211 - 7 0.0526 - 8 0.105 - 14 0.0526 - 15 0.0526 - 21 0.105 - 22 0.0526 - 41 0.0526 - 47 0.263 - - 41 2 2 0 - 4 0.5 - 41 0.5 - - 47 728 24 0 - 0 0.15 - 1 0.00137 - 2 0.0179 - 3 0.00275 - 4 0.0124 - 7 0.00824 - 9 0.00137 - 13 0.0385 - 14 0.0398 - 19 0.00549 - 20 0.00137 - 21 0.598 - 22 0.0275 - 23 0.011 - 25 0.00137 - 28 0.0192 - 29 0.0151 - 30 0.00412 - 31 0.00412 - 32 0.00412 - 33 0.0151 - 41 0.00412 - 45 0.00962 - 47 0.00824 - - 32 2 1 0 - 14 1 - - 37 1 1 0 - 47 1 - - 39 235 16 2 - 2 0.017 - 4 0.66 - 7 0.034 - 8 0.0809 - 9 0.0128 - 13 0.00426 - 18 0.0468 - 20 0.0426 - 28 0.017 - 29 0.00851 - 30 0.00426 - 31 0.0128 - 36 0.0128 - 41 0.034 - 42 0.00851 - 44 0.00426 - - 3 172 15 0 - 2 0.0233 - 4 0.721 - 7 0.0291 - 8 0.0698 - 9 0.00581 - 13 0.00581 - 18 0.0407 - 20 0.0233 - 28 0.0233 - 29 0.0116 - 30 0.00581 - 31 0.0174 - 41 0.00581 - 42 0.0116 - 44 0.00581 - - 8 62 8 0 - 4 0.484 - 7 0.0484 - 8 0.113 - 9 0.0323 - 18 0.0645 - 20 0.0968 - 36 0.0484 - 41 0.113 - - 41 151 10 6 - 2 0.00662 - 3 0.00662 - 8 0.603 - 9 0.0464 - 13 0.0331 - 14 0.00662 - 15 0.232 - 21 0.0464 - 31 0.0132 - 42 0.00662 - - 2 11 4 0 - 8 0.545 - 9 0.273 - 13 0.0909 - 31 0.0909 - - 8 109 4 0 - 8 0.642 - 13 0.0183 - 15 0.321 - 21 0.0183 - - 9 2 1 0 - 9 1 - - 13 4 3 0 - 3 0.25 - 8 0.25 - 13 0.5 - - 21 13 4 0 - 8 0.385 - 9 0.154 - 14 0.0769 - 21 0.385 - - 49 1 1 0 - 2 1 - - 42 10 6 0 - 7 0.1 - 8 0.4 - 9 0.1 - 13 0.2 - 15 0.1 - 46 0.1 - - 45 91 17 2 - 0 0.473 - 1 0.011 - 2 0.0989 - 3 0.011 - 4 0.044 - 7 0.0879 - 8 0.033 - 9 0.011 - 13 0.0549 - 14 0.011 - 18 0.011 - 19 0.011 - 21 0.0769 - 22 0.033 - 28 0.011 - 30 0.011 - 31 0.011 - - 21 18 5 0 - 0 0.722 - 2 0.0556 - 4 0.0556 - 7 0.0556 - 21 0.111 - - 48 7 3 0 - 0 0.429 - 7 0.143 - 13 0.429 - - 46 13 3 0 - 8 0.692 - 9 0.0769 - 41 0.231 - - 47 14411 40 29 - 0 0.326 - 1 0.00291 - 2 0.0278 - 3 0.005 - 4 0.176 - 7 0.0572 - 8 0.0154 - 9 0.000555 - 10 0.000416 - 13 0.043 - 14 0.0509 - 15 0.00638 - 16 0.000416 - 18 0.0164 - 19 0.0131 - 20 0.0133 - 21 0.0505 - 22 0.000833 - 23 0.000139 - 24 0.000971 - 25 0.000208 - 26 0.00465 - 28 0.0271 - 29 0.0232 - 30 0.0121 - 31 0.021 - 32 0.00965 - 33 0.0153 - 34 6.94e-05 - 35 6.94e-05 - 36 0.000347 - 37 0.000625 - 40 0.000139 - 41 0.0389 - 42 0.00527 - 43 0.000208 - 44 0.0018 - 45 0.0184 - 46 0.000833 - 47 0.0134 - - 0 4 3 0 - 2 0.25 - 13 0.5 - 19 0.25 - - 2 4 3 0 - 0 0.5 - 7 0.25 - 29 0.25 - - 3 814 22 0 - 0 0.0111 - 2 0.0111 - 3 0.00614 - 4 0.63 - 7 0.0934 - 8 0.0639 - 9 0.00123 - 13 0.00369 - 14 0.00123 - 15 0.0319 - 18 0.059 - 20 0.0381 - 24 0.00123 - 26 0.00123 - 28 0.00614 - 30 0.00614 - 31 0.00369 - 32 0.00246 - 33 0.00369 - 41 0.0197 - 42 0.00369 - 45 0.00123 - - 4 55 12 0 - 0 0.327 - 2 0.0727 - 7 0.164 - 13 0.0727 - 21 0.0364 - 28 0.0727 - 29 0.0727 - 30 0.0182 - 31 0.0364 - 41 0.0545 - 42 0.0182 - 47 0.0545 - - 6 8 5 0 - 4 0.25 - 7 0.25 - 20 0.125 - 40 0.125 - 45 0.25 - - 7 60 17 0 - 0 0.267 - 2 0.0167 - 3 0.0333 - 7 0.0333 - 8 0.0333 - 13 0.0833 - 14 0.0833 - 15 0.0333 - 21 0.117 - 28 0.0333 - 29 0.0333 - 30 0.0167 - 31 0.1 - 33 0.0333 - 41 0.0167 - 42 0.0333 - 47 0.0333 - - 8 6320 35 0 - 0 0.424 - 1 0.00364 - 2 0.0198 - 3 0.00301 - 4 0.0399 - 7 0.0562 - 8 0.00918 - 9 0.000316 - 10 0.000949 - 13 0.0546 - 14 0.0835 - 15 0.00411 - 16 0.000475 - 18 0.00475 - 19 0.0158 - 20 0.00443 - 21 0.0685 - 22 0.00127 - 23 0.000158 - 24 0.000475 - 26 0.00459 - 28 0.0309 - 29 0.0267 - 30 0.0101 - 31 0.0258 - 32 0.0114 - 33 0.0184 - 37 0.000633 - 40 0.000158 - 41 0.0375 - 42 0.00301 - 44 0.000475 - 45 0.0209 - 46 0.00111 - 47 0.013 - - 9 432 27 0 - 0 0.449 - 1 0.00463 - 2 0.0648 - 3 0.00926 - 4 0.0394 - 7 0.0347 - 8 0.00231 - 13 0.0509 - 14 0.0417 - 15 0.00463 - 18 0.00231 - 19 0.0417 - 20 0.00231 - 21 0.0255 - 24 0.00231 - 26 0.00231 - 28 0.0278 - 29 0.0486 - 30 0.0347 - 31 0.0139 - 32 0.0185 - 33 0.0208 - 34 0.00231 - 41 0.0301 - 42 0.00231 - 45 0.0139 - 47 0.00926 - - 10 72 9 0 - 0 0.0694 - 2 0.0278 - 4 0.361 - 7 0.167 - 18 0.222 - 20 0.111 - 29 0.0139 - 42 0.0139 - 46 0.0139 - - 13 133 22 0 - 0 0.105 - 2 0.0602 - 3 0.0602 - 4 0.128 - 7 0.0902 - 8 0.0752 - 13 0.18 - 14 0.0226 - 15 0.015 - 18 0.0226 - 20 0.0376 - 21 0.0226 - 25 0.00752 - 26 0.015 - 28 0.0226 - 29 0.015 - 30 0.0226 - 31 0.0376 - 33 0.00752 - 41 0.0226 - 45 0.015 - 47 0.015 - - 14 5 5 0 - 4 0.2 - 14 0.2 - 33 0.2 - 42 0.2 - 47 0.2 - - 15 130 17 0 - 0 0.0231 - 2 0.0462 - 4 0.369 - 7 0.2 - 8 0.0385 - 15 0.0308 - 18 0.0231 - 20 0.0154 - 26 0.00769 - 28 0.0154 - 31 0.0231 - 33 0.0154 - 41 0.0385 - 43 0.00769 - 44 0.00769 - 45 0.0154 - 47 0.123 - - 21 2958 36 0 - 0 0.305 - 1 0.00338 - 2 0.0389 - 3 0.00507 - 4 0.2 - 7 0.069 - 8 0.00541 - 9 0.000338 - 13 0.0433 - 14 0.0237 - 15 0.0027 - 16 0.000338 - 18 0.0112 - 19 0.0128 - 20 0.0128 - 21 0.0541 - 22 0.00101 - 23 0.000338 - 24 0.00169 - 25 0.000338 - 26 0.00676 - 28 0.0284 - 29 0.0274 - 30 0.0145 - 31 0.0213 - 32 0.0139 - 33 0.0176 - 35 0.000338 - 37 0.00169 - 41 0.0311 - 42 0.00541 - 43 0.000338 - 44 0.00135 - 45 0.027 - 46 0.000338 - 47 0.0112 - - 22 451 23 0 - 0 0.275 - 2 0.0466 - 3 0.00222 - 4 0.208 - 7 0.0288 - 13 0.0355 - 14 0.071 - 15 0.0111 - 18 0.00443 - 19 0.0333 - 20 0.00222 - 21 0.0244 - 24 0.00222 - 26 0.00665 - 28 0.0466 - 29 0.0244 - 30 0.0399 - 31 0.0222 - 32 0.00443 - 33 0.0177 - 41 0.0443 - 45 0.02 - 47 0.0288 - - 23 286 18 0 - 0 0.0664 - 2 0.0524 - 3 0.028 - 4 0.647 - 8 0.0035 - 13 0.0105 - 14 0.0035 - 15 0.0035 - 18 0.0559 - 19 0.0035 - 20 0.0559 - 21 0.0105 - 28 0.0035 - 31 0.0035 - 32 0.0035 - 41 0.021 - 42 0.0035 - 47 0.0245 - - 24 7 2 0 - 0 0.857 - 21 0.143 - - 28 9 6 0 - 15 0.111 - 19 0.111 - 21 0.111 - 26 0.333 - 28 0.222 - 45 0.111 - - 29 5 4 0 - 2 0.4 - 13 0.2 - 21 0.2 - 32 0.2 - - 30 38 12 0 - 0 0.553 - 4 0.0526 - 7 0.0263 - 13 0.0263 - 14 0.0263 - 21 0.0789 - 28 0.0263 - 31 0.0526 - 32 0.0263 - 41 0.0526 - 45 0.0263 - 47 0.0526 - - 31 286 25 0 - 0 0.381 - 1 0.0035 - 2 0.0105 - 3 0.00699 - 4 0.042 - 7 0.0245 - 8 0.0035 - 9 0.0035 - 13 0.0385 - 14 0.105 - 15 0.0035 - 19 0.014 - 20 0.0035 - 21 0.119 - 22 0.0035 - 25 0.0035 - 28 0.049 - 29 0.042 - 30 0.0105 - 31 0.0105 - 32 0.0105 - 33 0.0385 - 41 0.014 - 45 0.021 - 47 0.0385 - - 32 2 1 0 - 14 1 - - 39 234 16 0 - 2 0.0128 - 4 0.662 - 7 0.0342 - 8 0.0812 - 9 0.0128 - 13 0.00427 - 18 0.047 - 20 0.0427 - 28 0.0171 - 29 0.00855 - 30 0.00427 - 31 0.0128 - 36 0.0128 - 41 0.0342 - 42 0.00855 - 44 0.00427 - - 44 1 1 0 - 3 1 - - 45 74 15 0 - 0 0.581 - 1 0.0135 - 2 0.027 - 3 0.0135 - 4 0.0541 - 7 0.108 - 8 0.0405 - 13 0.0676 - 14 0.0135 - 18 0.0135 - 19 0.0135 - 21 0.0135 - 28 0.0135 - 30 0.0135 - 31 0.0135 - - 48 753 27 0 - 0 0.493 - 1 0.00531 - 2 0.0372 - 3 0.00133 - 4 0.089 - 7 0.0266 - 8 0.00266 - 13 0.0505 - 14 0.0398 - 15 0.00133 - 18 0.0186 - 19 0.00797 - 20 0.00797 - 21 0.0544 - 24 0.00266 - 26 0.00266 - 28 0.0133 - 29 0.0133 - 30 0.0093 - 31 0.00664 - 32 0.00531 - 33 0.0146 - 41 0.0452 - 42 0.0186 - 45 0.0212 - 46 0.00266 - 47 0.0093 - - 49 148 24 0 - 0 0.412 - 1 0.00676 - 2 0.0405 - 3 0.00676 - 4 0.142 - 7 0.027 - 13 0.00676 - 14 0.0203 - 15 0.0135 - 18 0.0135 - 19 0.00676 - 21 0.0405 - 26 0.00676 - 28 0.0608 - 29 0.0135 - 30 0.00676 - 31 0.0405 - 32 0.0135 - 33 0.0135 - 41 0.0473 - 42 0.00676 - 45 0.0203 - 46 0.00676 - 47 0.027 - - 55 268 22 0 - 0 0.31 - 2 0.0373 - 3 0.00373 - 4 0.00746 - 7 0.0187 - 13 0.0224 - 14 0.0261 - 16 0.00373 - 18 0.00373 - 19 0.00746 - 21 0.0299 - 24 0.00373 - 26 0.0149 - 28 0.0299 - 29 0.056 - 30 0.0261 - 31 0.00746 - 33 0.00746 - 41 0.347 - 42 0.0187 - 45 0.00746 - 47 0.0112 - - 57 3 3 0 - 2 0.333 - 13 0.333 - 41 0.333 - - 60 843 26 0 - 0 0.0119 - 2 0.00949 - 3 0.00356 - 4 0.619 - 7 0.051 - 8 0.0605 - 13 0.00356 - 15 0.013 - 16 0.00119 - 18 0.0652 - 19 0.00119 - 20 0.0522 - 21 0.00237 - 28 0.0142 - 29 0.00119 - 30 0.00593 - 31 0.0225 - 32 0.00237 - 33 0.00119 - 36 0.00237 - 41 0.019 - 42 0.0107 - 43 0.00119 - 44 0.0202 - 45 0.00237 - 47 0.00237 - - 48 771 28 1 - 0 0.481 - 1 0.00519 - 2 0.0389 - 3 0.00259 - 4 0.0908 - 7 0.0259 - 8 0.00259 - 13 0.0493 - 14 0.0389 - 15 0.0013 - 18 0.0182 - 19 0.00778 - 20 0.00778 - 21 0.0584 - 22 0.0013 - 24 0.00259 - 26 0.00259 - 28 0.013 - 29 0.013 - 30 0.00908 - 31 0.00649 - 32 0.00519 - 33 0.0143 - 41 0.0441 - 42 0.0182 - 45 0.0298 - 46 0.00259 - 47 0.00908 - - 8 2 2 0 - 14 0.5 - 29 0.5 - - 49 153 24 9 - 0 0.399 - 1 0.00654 - 2 0.0392 - 3 0.00654 - 4 0.137 - 7 0.0261 - 13 0.00654 - 14 0.0196 - 15 0.0131 - 18 0.0131 - 19 0.00654 - 21 0.0588 - 26 0.00654 - 28 0.0588 - 29 0.0131 - 30 0.00654 - 31 0.0392 - 32 0.0131 - 33 0.0131 - 41 0.0523 - 42 0.00654 - 45 0.0261 - 46 0.00654 - 47 0.0261 - - 4 2 2 0 - 7 0.5 - 47 0.5 - - 8 94 19 0 - 0 0.457 - 1 0.0106 - 2 0.0319 - 4 0.17 - 7 0.0106 - 14 0.0106 - 19 0.0106 - 21 0.0532 - 26 0.0106 - 28 0.0638 - 29 0.0213 - 30 0.0106 - 31 0.0319 - 32 0.0213 - 33 0.0106 - 41 0.0319 - 45 0.0213 - 46 0.0106 - 47 0.0106 - - 9 3 1 0 - 28 1 - - 22 4 4 0 - 2 0.25 - 13 0.25 - 31 0.25 - 47 0.25 - - 30 3 3 0 - 14 0.333 - 18 0.333 - 41 0.333 - - 31 27 11 0 - 0 0.37 - 2 0.037 - 3 0.037 - 4 0.185 - 7 0.0741 - 18 0.037 - 21 0.0741 - 31 0.037 - 33 0.037 - 45 0.0741 - 47 0.037 - - 47 5 5 0 - 0 0.2 - 15 0.2 - 21 0.2 - 31 0.2 - 42 0.2 - - 48 3 3 0 - 0 0.333 - 14 0.333 - 15 0.333 - - 55 2 1 0 - 41 1 - - 50 5 4 0 - 8 0.4 - 13 0.2 - 28 0.2 - 46 0.2 - - 55 276 23 7 - 0 0.301 - 2 0.0362 - 3 0.0109 - 4 0.00725 - 7 0.0181 - 13 0.0217 - 14 0.029 - 16 0.00362 - 18 0.00362 - 19 0.00725 - 21 0.0435 - 24 0.00362 - 26 0.0145 - 28 0.029 - 29 0.0543 - 30 0.0254 - 31 0.00725 - 33 0.00725 - 41 0.337 - 42 0.0181 - 44 0.00362 - 45 0.00725 - 47 0.0109 - - 8 141 15 0 - 0 0.206 - 2 0.0355 - 4 0.00709 - 7 0.0213 - 13 0.0142 - 14 0.00709 - 16 0.00709 - 19 0.0142 - 21 0.0567 - 29 0.00709 - 30 0.0142 - 33 0.00709 - 41 0.582 - 45 0.00709 - 47 0.0142 - - 9 97 15 0 - 0 0.423 - 2 0.0309 - 7 0.0206 - 13 0.0309 - 14 0.0309 - 21 0.0309 - 24 0.0103 - 26 0.0412 - 28 0.0515 - 29 0.144 - 30 0.0412 - 33 0.0103 - 41 0.0722 - 42 0.0515 - 47 0.0103 - - 21 8 6 0 - 0 0.25 - 3 0.125 - 13 0.125 - 14 0.25 - 30 0.125 - 45 0.125 - - 22 12 6 0 - 0 0.333 - 2 0.0833 - 21 0.0833 - 28 0.25 - 31 0.167 - 41 0.0833 - - 47 5 4 0 - 0 0.2 - 3 0.4 - 14 0.2 - 44 0.2 - - 48 1 1 0 - 18 1 - - 55 2 2 0 - 2 0.5 - 4 0.5 - - 57 5 5 0 - 2 0.2 - 9 0.2 - 13 0.2 - 31 0.2 - 41 0.2 - - 58 4 3 0 - 0 0.25 - 2 0.5 - 21 0.25 - - 60 843 26 5 - 0 0.0119 - 2 0.00949 - 3 0.00356 - 4 0.619 - 7 0.051 - 8 0.0605 - 13 0.00356 - 15 0.013 - 16 0.00119 - 18 0.0652 - 19 0.00119 - 20 0.0522 - 21 0.00237 - 28 0.0142 - 29 0.00119 - 30 0.00593 - 31 0.0225 - 32 0.00237 - 33 0.00119 - 36 0.00237 - 41 0.019 - 42 0.0107 - 43 0.00119 - 44 0.0202 - 45 0.00237 - 47 0.00237 - - 9 7 5 0 - 0 0.286 - 15 0.143 - 28 0.286 - 41 0.143 - 45 0.143 - - 13 117 18 0 - 0 0.0256 - 2 0.00855 - 4 0.282 - 7 0.308 - 8 0.00855 - 13 0.00855 - 15 0.0855 - 16 0.00855 - 18 0.0427 - 20 0.0598 - 21 0.00855 - 28 0.0256 - 29 0.00855 - 31 0.0171 - 32 0.00855 - 36 0.00855 - 41 0.0342 - 42 0.0513 - - 14 5 4 0 - 4 0.4 - 18 0.2 - 30 0.2 - 43 0.2 - - 21 4 3 0 - 0 0.5 - 21 0.25 - 28 0.25 - - 47 702 21 0 - 0 0.00285 - 2 0.00997 - 3 0.00427 - 4 0.689 - 7 0.00997 - 8 0.0712 - 13 0.00285 - 18 0.0698 - 19 0.00142 - 20 0.0513 - 28 0.00712 - 30 0.0057 - 31 0.0242 - 32 0.00142 - 33 0.00142 - 36 0.00142 - 41 0.0128 - 42 0.00427 - 44 0.0242 - 45 0.00142 - 47 0.00285 - - 64 4 2 0 - 9 0.25 - 13 0.75 - -49 42427 42 32 - 0 0.124 - 1 0.000896 - 2 0.0365 - 3 0.00983 - 4 0.00596 - 5 0.00099 - 6 0.000165 - 7 0.0272 - 8 0.00695 - 9 0.00104 - 10 0.000754 - 12 0.0316 - 13 0.111 - 14 0.0815 - 15 0.04 - 16 0.00189 - 17 9.43e-05 - 18 0.000707 - 19 0.0424 - 20 4.71e-05 - 21 0.054 - 22 0.00429 - 23 0.00099 - 24 0.00568 - 26 0.00653 - 28 0.0383 - 29 0.0368 - 30 0.025 - 31 0.0372 - 32 0.0107 - 33 0.0115 - 34 0.00938 - 35 0.00481 - 37 0.00033 - 40 9.43e-05 - 41 0.112 - 42 0.0079 - 43 0.000754 - 44 0.00113 - 45 0.00988 - 46 0.00189 - 47 0.0968 - - 2 138 19 10 - 2 0.0145 - 3 0.0145 - 4 0.0725 - 7 0.087 - 8 0.029 - 9 0.0145 - 10 0.00725 - 13 0.029 - 14 0.00725 - 19 0.00725 - 21 0.536 - 22 0.0725 - 24 0.00725 - 26 0.00725 - 31 0.00725 - 41 0.0435 - 45 0.00725 - 46 0.00725 - 47 0.029 - - 2 2 2 0 - 2 0.5 - 3 0.5 - - 7 9 1 0 - 7 1 - - 8 5 2 0 - 7 0.6 - 8 0.4 - - 9 2 1 0 - 9 1 - - 10 1 1 0 - 10 1 - - 13 3 2 0 - 4 0.333 - 13 0.667 - - 21 82 7 0 - 8 0.0122 - 13 0.0122 - 21 0.878 - 22 0.0122 - 26 0.0122 - 41 0.061 - 47 0.0122 - - 22 10 2 0 - 14 0.1 - 22 0.9 - - 24 1 1 0 - 24 1 - - 47 20 10 0 - 2 0.05 - 4 0.45 - 8 0.05 - 13 0.05 - 19 0.05 - 21 0.05 - 31 0.05 - 45 0.05 - 46 0.05 - 47 0.15 - - 3 35 11 3 - 2 0.0286 - 4 0.0286 - 7 0.0286 - 14 0.114 - 16 0.0286 - 26 0.371 - 28 0.0286 - 29 0.114 - 30 0.0286 - 31 0.0286 - 41 0.2 - - 13 3 3 0 - 4 0.333 - 26 0.333 - 28 0.333 - - 26 10 4 0 - 7 0.1 - 14 0.1 - 29 0.1 - 41 0.7 - - 47 20 6 0 - 2 0.05 - 14 0.15 - 26 0.55 - 29 0.15 - 30 0.05 - 31 0.05 - - 4 146 26 8 - 0 0.151 - 1 0.00685 - 2 0.00685 - 3 0.0274 - 4 0.00685 - 7 0.349 - 8 0.0205 - 12 0.00685 - 13 0.0342 - 14 0.0616 - 15 0.0137 - 17 0.0274 - 19 0.0205 - 21 0.0479 - 26 0.00685 - 28 0.0342 - 29 0.0137 - 30 0.0205 - 31 0.0342 - 33 0.00685 - 34 0.00685 - 41 0.0274 - 42 0.0137 - 44 0.00685 - 45 0.0274 - 47 0.0205 - - 2 10 6 0 - 0 0.5 - 1 0.1 - 15 0.1 - 21 0.1 - 26 0.1 - 31 0.1 - - 7 9 8 0 - 8 0.111 - 13 0.222 - 15 0.111 - 21 0.111 - 29 0.111 - 31 0.111 - 45 0.111 - 47 0.111 - - 8 4 3 0 - 8 0.25 - 17 0.5 - 45 0.25 - - 9 4 3 0 - 0 0.5 - 13 0.25 - 31 0.25 - - 13 9 7 0 - 3 0.111 - 7 0.111 - 8 0.111 - 12 0.111 - 19 0.222 - 41 0.222 - 45 0.111 - - 21 17 10 0 - 0 0.294 - 7 0.0588 - 13 0.0588 - 14 0.0588 - 21 0.176 - 29 0.0588 - 30 0.0588 - 41 0.0588 - 42 0.118 - 45 0.0588 - - 22 14 6 0 - 0 0.429 - 17 0.143 - 28 0.214 - 31 0.0714 - 33 0.0714 - 47 0.0714 - - 47 77 16 0 - 0 0.0519 - 2 0.013 - 3 0.039 - 4 0.013 - 7 0.636 - 13 0.013 - 14 0.0909 - 19 0.013 - 21 0.026 - 28 0.013 - 30 0.026 - 31 0.013 - 34 0.013 - 41 0.013 - 44 0.013 - 47 0.013 - - 5 2 2 0 - 7 0.5 - 14 0.5 - - 6 14 7 2 - 2 0.0714 - 6 0.5 - 13 0.0714 - 21 0.0714 - 41 0.143 - 42 0.0714 - 45 0.0714 - - 6 7 6 0 - 2 0.143 - 13 0.143 - 21 0.143 - 41 0.286 - 42 0.143 - 45 0.143 - - 47 7 1 0 - 6 1 - - 7 947 30 7 - 0 0.103 - 2 0.0454 - 3 0.00528 - 4 0.0127 - 7 0.0275 - 8 0.0158 - 9 0.0116 - 12 0.00422 - 13 0.13 - 14 0.106 - 15 0.0106 - 19 0.0106 - 21 0.0232 - 22 0.0422 - 23 0.00106 - 24 0.00528 - 28 0.0465 - 29 0.0232 - 30 0.0338 - 31 0.038 - 32 0.0106 - 33 0.0095 - 34 0.00106 - 35 0.00106 - 41 0.229 - 42 0.0106 - 44 0.00106 - 45 0.00317 - 46 0.00317 - 47 0.0348 - - 2 12 7 0 - 2 0.0833 - 21 0.0833 - 28 0.167 - 30 0.25 - 32 0.0833 - 33 0.167 - 47 0.167 - - 4 49 14 0 - 4 0.0408 - 7 0.0204 - 8 0.0612 - 12 0.0204 - 13 0.286 - 14 0.102 - 15 0.0408 - 19 0.0408 - 21 0.0816 - 24 0.0408 - 28 0.102 - 31 0.102 - 41 0.0408 - 47 0.0204 - - 8 3 3 0 - 9 0.333 - 14 0.333 - 47 0.333 - - 10 127 17 0 - 0 0.0551 - 2 0.134 - 3 0.00787 - 7 0.165 - 8 0.0157 - 12 0.0157 - 13 0.00787 - 14 0.0394 - 15 0.00787 - 21 0.0315 - 28 0.0709 - 30 0.0236 - 31 0.0157 - 34 0.00787 - 41 0.299 - 42 0.0394 - 47 0.063 - - 13 5 3 0 - 0 0.4 - 13 0.2 - 31 0.4 - - 21 75 20 0 - 0 0.107 - 2 0.0133 - 4 0.0267 - 7 0.0133 - 8 0.08 - 13 0.12 - 14 0.0667 - 15 0.0133 - 21 0.0533 - 22 0.107 - 24 0.04 - 28 0.0267 - 29 0.0133 - 31 0.0133 - 32 0.0133 - 35 0.0133 - 41 0.0933 - 42 0.0133 - 46 0.0133 - 47 0.16 - - 47 667 27 0 - 0 0.12 - 2 0.0345 - 3 0.006 - 4 0.012 - 7 0.003 - 8 0.006 - 9 0.015 - 12 0.0015 - 13 0.145 - 14 0.124 - 15 0.009 - 19 0.012 - 21 0.0135 - 22 0.048 - 23 0.0015 - 28 0.0375 - 29 0.0315 - 30 0.039 - 31 0.039 - 32 0.012 - 33 0.0105 - 41 0.25 - 42 0.006 - 44 0.0015 - 45 0.0045 - 46 0.003 - 47 0.0135 - - 8 249 26 3 - 0 0.0723 - 2 0.0723 - 3 0.012 - 4 0.0201 - 7 0.0482 - 8 0.0161 - 13 0.12 - 14 0.108 - 15 0.0281 - 19 0.0161 - 21 0.0281 - 22 0.0201 - 23 0.0161 - 24 0.00803 - 28 0.0683 - 29 0.0482 - 30 0.0442 - 31 0.0281 - 32 0.0161 - 33 0.0161 - 41 0.0643 - 42 0.00402 - 44 0.00402 - 45 0.00803 - 46 0.00402 - 47 0.108 - - 2 3 2 0 - 30 0.333 - 41 0.667 - - 13 11 8 0 - 2 0.0909 - 7 0.0909 - 13 0.273 - 28 0.0909 - 29 0.182 - 31 0.0909 - 41 0.0909 - 47 0.0909 - - 21 2 2 0 - 4 0.5 - 28 0.5 - - 9 115 18 1 - 0 0.0696 - 2 0.0348 - 3 0.0783 - 4 0.0435 - 8 0.0087 - 13 0.2 - 14 0.139 - 15 0.0087 - 21 0.0261 - 28 0.0522 - 29 0.191 - 30 0.0174 - 31 0.0087 - 32 0.0261 - 33 0.0174 - 41 0.0087 - 45 0.0174 - 47 0.0522 - - 7 9 6 0 - 0 0.222 - 4 0.111 - 13 0.111 - 14 0.333 - 28 0.111 - 45 0.111 - - 10 136 9 1 - 2 0.00735 - 4 0.00735 - 7 0.934 - 13 0.00735 - 14 0.00735 - 18 0.00735 - 19 0.00735 - 33 0.00735 - 41 0.0147 - - 2 1 1 0 - 18 1 - - 11 6 1 0 - 47 1 - - 13 104 21 2 - 0 0.0577 - 2 0.0481 - 3 0.0481 - 4 0.0865 - 7 0.0577 - 8 0.135 - 13 0.0865 - 14 0.0385 - 18 0.00962 - 19 0.0192 - 21 0.00962 - 26 0.0288 - 28 0.0577 - 29 0.0385 - 30 0.125 - 31 0.0577 - 32 0.00962 - 33 0.00962 - 34 0.00962 - 41 0.0577 - 42 0.00962 - - 7 12 8 0 - 0 0.25 - 2 0.0833 - 8 0.0833 - 19 0.0833 - 21 0.0833 - 29 0.0833 - 41 0.25 - 42 0.0833 - - 26 3 3 0 - 14 0.333 - 28 0.333 - 30 0.333 - - 14 6 3 0 - 3 0.333 - 13 0.5 - 41 0.167 - - 15 28 4 0 - 15 0.0714 - 18 0.0357 - 45 0.0714 - 47 0.821 - - 17 5 4 0 - 0 0.2 - 7 0.2 - 31 0.2 - 47 0.4 - - 19 7 4 0 - 3 0.143 - 14 0.571 - 34 0.143 - 45 0.143 - - 21 18349 40 5 - 0 0.129 - 1 0.000872 - 2 0.038 - 3 0.00283 - 4 0.00474 - 5 0.00114 - 7 0.0186 - 8 0.0055 - 9 0.000708 - 10 0.00125 - 12 0.0355 - 13 0.106 - 14 0.0861 - 15 0.0422 - 16 0.00202 - 18 0.00049 - 19 0.0463 - 20 5.45e-05 - 21 0.0809 - 22 0.00665 - 23 0.00196 - 24 0.00501 - 26 0.00605 - 28 0.0338 - 29 0.0305 - 30 0.0215 - 31 0.0337 - 32 0.00948 - 33 0.0101 - 34 0.0104 - 35 0.00534 - 37 0.000381 - 40 0.000109 - 41 0.105 - 42 0.00741 - 43 0.000708 - 44 0.00109 - 45 0.00981 - 46 0.00191 - 47 0.0966 - - 2 72 20 0 - 0 0.125 - 2 0.0417 - 4 0.0417 - 8 0.0139 - 13 0.125 - 14 0.111 - 15 0.0139 - 19 0.0556 - 21 0.0694 - 22 0.0278 - 23 0.0139 - 28 0.0556 - 30 0.0556 - 31 0.0556 - 33 0.0139 - 40 0.0139 - 41 0.0694 - 42 0.0278 - 45 0.0278 - 47 0.0417 - - 21 918 33 0 - 0 0.0915 - 2 0.0447 - 3 0.00109 - 4 0.00871 - 7 0.0229 - 8 0.012 - 9 0.00109 - 10 0.00763 - 12 0.0272 - 13 0.127 - 14 0.0915 - 15 0.0196 - 16 0.00218 - 18 0.00109 - 19 0.0272 - 21 0.0664 - 24 0.0185 - 26 0.00218 - 28 0.0566 - 29 0.037 - 30 0.0403 - 31 0.0632 - 32 0.0174 - 33 0.0153 - 34 0.00436 - 35 0.00109 - 41 0.0436 - 42 0.00871 - 43 0.00327 - 44 0.00218 - 45 0.0251 - 46 0.00436 - 47 0.105 - - 22 11 7 0 - 2 0.182 - 13 0.0909 - 19 0.0909 - 24 0.0909 - 28 0.273 - 31 0.182 - 47 0.0909 - - 26 2 2 0 - 2 0.5 - 29 0.5 - - 47 17337 40 0 - 0 0.131 - 1 0.000923 - 2 0.0375 - 3 0.00294 - 4 0.00438 - 5 0.00121 - 7 0.0185 - 8 0.00513 - 9 0.000692 - 10 0.000923 - 12 0.0362 - 13 0.105 - 14 0.0858 - 15 0.0435 - 16 0.00202 - 18 0.000461 - 19 0.0473 - 20 5.77e-05 - 21 0.0817 - 22 0.00692 - 23 0.00202 - 24 0.00427 - 26 0.00629 - 28 0.0322 - 29 0.0302 - 30 0.0204 - 31 0.032 - 32 0.00911 - 33 0.00981 - 34 0.0108 - 35 0.00559 - 37 0.000404 - 40 5.77e-05 - 41 0.109 - 42 0.00727 - 43 0.000577 - 44 0.00104 - 45 0.00894 - 46 0.00179 - 47 0.0964 - - 22 773 27 5 - 0 0.0414 - 1 0.00129 - 2 0.0388 - 3 0.00259 - 4 0.0233 - 7 0.0103 - 8 0.00647 - 12 0.0155 - 13 0.364 - 14 0.0893 - 15 0.0168 - 18 0.00129 - 19 0.0142 - 21 0.0349 - 24 0.00776 - 26 0.0194 - 28 0.0699 - 29 0.066 - 30 0.0401 - 31 0.0375 - 32 0.0233 - 33 0.022 - 35 0.00259 - 41 0.00906 - 42 0.00388 - 45 0.00259 - 47 0.0362 - - 2 10 6 0 - 2 0.2 - 14 0.1 - 26 0.2 - 32 0.2 - 33 0.1 - 41 0.2 - - 7 39 17 0 - 0 0.282 - 2 0.0513 - 4 0.0256 - 7 0.0256 - 8 0.0256 - 12 0.0769 - 13 0.128 - 14 0.0513 - 15 0.0513 - 19 0.0513 - 26 0.0769 - 28 0.0256 - 29 0.0256 - 32 0.0256 - 41 0.0256 - 42 0.0256 - 47 0.0256 - - 8 4 3 0 - 28 0.25 - 41 0.25 - 47 0.5 - - 21 119 22 0 - 0 0.0504 - 1 0.0084 - 2 0.0756 - 4 0.0336 - 7 0.0336 - 12 0.0168 - 13 0.0672 - 14 0.0672 - 15 0.0252 - 19 0.0168 - 21 0.134 - 24 0.0168 - 26 0.0252 - 28 0.109 - 29 0.0084 - 30 0.0588 - 31 0.0588 - 32 0.0252 - 41 0.0168 - 42 0.0168 - 45 0.0168 - 47 0.118 - - 47 601 24 0 - 0 0.025 - 2 0.0283 - 3 0.00333 - 4 0.0216 - 7 0.00499 - 8 0.00666 - 12 0.0116 - 13 0.446 - 14 0.0965 - 15 0.0133 - 18 0.00166 - 19 0.0116 - 21 0.0183 - 24 0.00666 - 26 0.0116 - 28 0.0649 - 29 0.0815 - 30 0.0399 - 31 0.0366 - 32 0.02 - 33 0.0266 - 35 0.00333 - 41 0.00166 - 47 0.0183 - - 23 76 21 2 - 0 0.184 - 2 0.0263 - 3 0.0132 - 4 0.0921 - 7 0.0395 - 12 0.0263 - 13 0.0789 - 14 0.0658 - 18 0.0132 - 19 0.0395 - 21 0.0132 - 26 0.0132 - 28 0.0132 - 29 0.0526 - 30 0.0132 - 31 0.0395 - 32 0.0132 - 33 0.0263 - 41 0.105 - 42 0.0395 - 47 0.0921 - - 21 35 14 0 - 0 0.0571 - 2 0.0571 - 3 0.0286 - 4 0.143 - 13 0.0857 - 14 0.0571 - 18 0.0286 - 19 0.0571 - 21 0.0286 - 29 0.0571 - 30 0.0286 - 41 0.143 - 42 0.0857 - 47 0.143 - - 47 36 15 0 - 0 0.306 - 4 0.0278 - 7 0.0556 - 12 0.0556 - 13 0.0833 - 14 0.0833 - 19 0.0278 - 26 0.0278 - 28 0.0278 - 29 0.0556 - 31 0.0833 - 32 0.0278 - 33 0.0556 - 41 0.0278 - 47 0.0556 - - 24 97 16 1 - 0 0.144 - 2 0.0103 - 4 0.0206 - 8 0.0206 - 9 0.0103 - 13 0.134 - 14 0.0928 - 19 0.0309 - 21 0.0412 - 28 0.155 - 29 0.134 - 30 0.0722 - 31 0.0309 - 32 0.0206 - 33 0.0515 - 41 0.0309 - - 21 3 3 0 - 21 0.333 - 30 0.333 - 33 0.333 - - 26 19 7 2 - 3 0.526 - 8 0.0526 - 13 0.158 - 14 0.0526 - 21 0.105 - 30 0.0526 - 31 0.0526 - - 3 11 2 0 - 3 0.909 - 14 0.0909 - - 13 3 1 0 - 13 1 - - 28 9 5 0 - 2 0.111 - 21 0.111 - 26 0.111 - 41 0.556 - 42 0.111 - - 31 2 2 0 - 28 0.5 - 30 0.5 - - 37 3 2 0 - 28 0.333 - 47 0.667 - - 41 6 3 0 - 7 0.167 - 13 0.167 - 21 0.667 - - 42 2 2 0 - 21 0.5 - 31 0.5 - - 45 5 4 0 - 0 0.4 - 13 0.2 - 14 0.2 - 42 0.2 - - 47 19808 40 27 - 0 0.133 - 1 0.000959 - 2 0.0361 - 3 0.00979 - 4 0.00464 - 5 0.00106 - 7 0.022 - 8 0.00687 - 9 0.000808 - 10 0.000353 - 12 0.0339 - 13 0.105 - 14 0.0777 - 15 0.0428 - 16 0.00202 - 18 0.000757 - 19 0.0454 - 20 5.05e-05 - 21 0.0318 - 22 0.000252 - 23 5.05e-05 - 24 0.00596 - 26 0.00651 - 28 0.0409 - 29 0.0394 - 30 0.0268 - 31 0.0399 - 32 0.0114 - 33 0.0123 - 34 0.01 - 35 0.00515 - 37 0.000353 - 40 0.000101 - 41 0.12 - 42 0.00838 - 43 0.000808 - 44 0.00121 - 45 0.0105 - 46 0.00202 - 47 0.104 - - 2 16 11 0 - 3 0.0625 - 8 0.0625 - 13 0.0625 - 14 0.0625 - 19 0.0625 - 21 0.125 - 31 0.0625 - 41 0.125 - 45 0.0625 - 46 0.0625 - 47 0.25 - - 3 23 10 0 - 4 0.0435 - 7 0.0435 - 14 0.174 - 16 0.0435 - 26 0.087 - 28 0.0435 - 29 0.174 - 30 0.0435 - 31 0.0435 - 41 0.304 - - 4 91 25 0 - 0 0.242 - 1 0.011 - 2 0.011 - 3 0.044 - 4 0.011 - 7 0.022 - 8 0.033 - 12 0.011 - 13 0.0549 - 14 0.0989 - 15 0.022 - 19 0.033 - 21 0.0549 - 26 0.011 - 28 0.0549 - 29 0.022 - 30 0.033 - 31 0.0549 - 33 0.011 - 34 0.011 - 41 0.044 - 42 0.022 - 44 0.011 - 45 0.044 - 47 0.033 - - 6 6 5 0 - 2 0.167 - 13 0.167 - 41 0.333 - 42 0.167 - 45 0.167 - - 7 750 29 0 - 0 0.131 - 2 0.0453 - 3 0.00667 - 4 0.004 - 7 0.0347 - 8 0.0187 - 9 0.00267 - 12 0.00533 - 13 0.0747 - 14 0.056 - 15 0.0133 - 19 0.0133 - 21 0.024 - 22 0.00133 - 24 0.00667 - 28 0.0587 - 29 0.0293 - 30 0.0427 - 31 0.048 - 32 0.0133 - 33 0.012 - 34 0.00133 - 35 0.00133 - 41 0.289 - 42 0.0133 - 44 0.00133 - 45 0.004 - 46 0.004 - 47 0.044 - - 8 223 25 0 - 0 0.0807 - 2 0.0583 - 3 0.0135 - 4 0.00448 - 7 0.0404 - 8 0.0179 - 13 0.13 - 14 0.112 - 15 0.0269 - 19 0.0179 - 21 0.0314 - 22 0.00448 - 24 0.00897 - 28 0.0673 - 29 0.0538 - 30 0.0493 - 31 0.0314 - 32 0.0179 - 33 0.0179 - 41 0.0717 - 42 0.00448 - 44 0.00448 - 45 0.00897 - 46 0.00448 - 47 0.121 - - 9 67 16 0 - 0 0.119 - 2 0.0299 - 4 0.0149 - 13 0.0597 - 14 0.0746 - 15 0.0149 - 21 0.0299 - 28 0.0896 - 29 0.328 - 30 0.0299 - 31 0.0149 - 32 0.0448 - 33 0.0299 - 41 0.0149 - 45 0.0149 - 47 0.0896 - - 10 8 7 0 - 4 0.125 - 13 0.125 - 14 0.125 - 18 0.125 - 19 0.125 - 33 0.125 - 41 0.25 - - 11 6 1 0 - 47 1 - - 13 69 19 0 - 0 0.087 - 2 0.029 - 3 0.029 - 7 0.0145 - 8 0.0435 - 13 0.116 - 14 0.058 - 18 0.0145 - 19 0.029 - 21 0.0145 - 28 0.087 - 29 0.058 - 30 0.188 - 31 0.087 - 32 0.0145 - 33 0.0145 - 34 0.0145 - 41 0.087 - 42 0.0145 - - 14 4 2 0 - 13 0.75 - 41 0.25 - - 15 27 4 0 - 15 0.037 - 18 0.037 - 45 0.0741 - 47 0.852 - - 17 4 3 0 - 0 0.25 - 31 0.25 - 47 0.5 - - 19 7 4 0 - 3 0.143 - 14 0.571 - 34 0.143 - 45 0.143 - - 21 16535 40 0 - 0 0.143 - 1 0.000968 - 2 0.0372 - 3 0.00302 - 4 0.00423 - 5 0.00127 - 7 0.0161 - 8 0.00593 - 9 0.000786 - 10 0.000363 - 12 0.0394 - 13 0.102 - 14 0.0788 - 15 0.0469 - 16 0.00224 - 18 0.000544 - 19 0.0513 - 20 6.05e-05 - 21 0.0339 - 22 0.000181 - 23 6.05e-05 - 24 0.00538 - 26 0.00659 - 28 0.0374 - 29 0.0337 - 30 0.0238 - 31 0.0374 - 32 0.0105 - 33 0.0112 - 34 0.0116 - 35 0.00593 - 37 0.000423 - 40 0.000121 - 41 0.117 - 42 0.00816 - 43 0.000786 - 44 0.00121 - 45 0.0107 - 46 0.00212 - 47 0.107 - - 22 466 26 0 - 0 0.0687 - 1 0.00215 - 2 0.0429 - 4 0.00858 - 7 0.0172 - 8 0.00644 - 12 0.0258 - 13 0.0987 - 14 0.088 - 15 0.0279 - 18 0.00215 - 19 0.0236 - 21 0.0236 - 24 0.0129 - 26 0.0322 - 28 0.116 - 29 0.109 - 30 0.0665 - 31 0.0622 - 32 0.0386 - 33 0.0365 - 35 0.00429 - 41 0.015 - 42 0.00644 - 45 0.00429 - 47 0.0601 - - 23 72 20 0 - 0 0.194 - 2 0.0278 - 3 0.0139 - 4 0.0833 - 12 0.0278 - 13 0.0833 - 14 0.0694 - 18 0.0139 - 19 0.0417 - 21 0.0139 - 26 0.0139 - 28 0.0139 - 29 0.0556 - 30 0.0139 - 31 0.0417 - 32 0.0139 - 33 0.0278 - 41 0.111 - 42 0.0417 - 47 0.0972 - - 24 90 14 0 - 0 0.156 - 4 0.0111 - 8 0.0111 - 13 0.133 - 14 0.1 - 19 0.0333 - 21 0.0333 - 28 0.156 - 29 0.144 - 30 0.0778 - 31 0.0333 - 32 0.0222 - 33 0.0556 - 41 0.0333 - - 26 2 2 0 - 30 0.5 - 31 0.5 - - 28 8 4 0 - 2 0.125 - 21 0.125 - 41 0.625 - 42 0.125 - - 31 2 2 0 - 28 0.5 - 30 0.5 - - 37 3 2 0 - 28 0.333 - 47 0.667 - - 45 4 3 0 - 0 0.5 - 13 0.25 - 14 0.25 - - 48 5 4 0 - 0 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 347 26 0 - 0 0.0519 - 2 0.0202 - 4 0.00288 - 7 0.0202 - 8 0.0144 - 10 0.00288 - 13 0.15 - 14 0.098 - 15 0.0144 - 16 0.00288 - 18 0.00288 - 19 0.0173 - 21 0.0288 - 24 0.0231 - 28 0.0778 - 29 0.0605 - 30 0.0663 - 31 0.107 - 32 0.0288 - 33 0.0403 - 34 0.00288 - 41 0.0951 - 42 0.0173 - 44 0.00288 - 45 0.0115 - 47 0.0403 - - 55 960 29 0 - 0 0.026 - 1 0.00104 - 2 0.0177 - 3 0.132 - 4 0.00208 - 7 0.12 - 8 0.00417 - 9 0.00104 - 13 0.155 - 14 0.0521 - 15 0.0354 - 16 0.00104 - 19 0.00729 - 21 0.00833 - 24 0.00833 - 26 0.00104 - 28 0.0156 - 29 0.0667 - 30 0.00938 - 31 0.0406 - 32 0.00313 - 33 0.00208 - 34 0.00313 - 35 0.00104 - 41 0.142 - 42 0.00313 - 43 0.00313 - 45 0.00938 - 47 0.128 - - 60 5 4 0 - 0 0.2 - 28 0.2 - 29 0.4 - 33 0.2 - - 48 5 4 0 - 0 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 357 27 2 - 0 0.0504 - 2 0.0224 - 4 0.0028 - 7 0.028 - 8 0.014 - 10 0.0028 - 13 0.148 - 14 0.098 - 15 0.014 - 16 0.0028 - 18 0.0028 - 19 0.0168 - 21 0.028 - 24 0.0252 - 26 0.0028 - 28 0.0756 - 29 0.0588 - 30 0.0644 - 31 0.104 - 32 0.028 - 33 0.0392 - 34 0.0028 - 41 0.0924 - 42 0.0196 - 44 0.0028 - 45 0.014 - 47 0.0392 - - 21 15 6 0 - 2 0.133 - 14 0.0667 - 21 0.0667 - 28 0.0667 - 31 0.0667 - 41 0.6 - - 41 3 3 0 - 13 0.333 - 14 0.333 - 42 0.333 - - 55 962 29 6 - 0 0.026 - 1 0.00104 - 2 0.0177 - 3 0.132 - 4 0.00208 - 7 0.121 - 8 0.00416 - 9 0.00104 - 13 0.156 - 14 0.052 - 15 0.0353 - 16 0.00104 - 19 0.00728 - 21 0.00832 - 24 0.00832 - 26 0.00104 - 28 0.0156 - 29 0.0665 - 30 0.00936 - 31 0.0405 - 32 0.00312 - 33 0.00208 - 34 0.00312 - 35 0.00104 - 41 0.141 - 42 0.00312 - 43 0.00312 - 45 0.00936 - 47 0.128 - - 6 1 1 0 - 30 1 - - 7 114 18 0 - 0 0.0263 - 2 0.00877 - 3 0.14 - 7 0.184 - 9 0.00877 - 13 0.132 - 14 0.0439 - 15 0.0614 - 21 0.0175 - 26 0.00877 - 29 0.0351 - 30 0.00877 - 31 0.0439 - 34 0.00877 - 35 0.00877 - 41 0.132 - 45 0.0263 - 47 0.105 - - 9 39 13 0 - 0 0.0769 - 2 0.0256 - 7 0.0769 - 13 0.0513 - 15 0.0256 - 24 0.0256 - 28 0.103 - 29 0.41 - 30 0.0256 - 31 0.0769 - 33 0.0256 - 41 0.0513 - 47 0.0256 - - 21 527 25 0 - 0 0.0266 - 2 0.0152 - 3 0.108 - 4 0.0038 - 7 0.0892 - 8 0.00759 - 13 0.186 - 14 0.0455 - 15 0.0493 - 16 0.0019 - 19 0.00759 - 21 0.0114 - 24 0.0133 - 28 0.00759 - 29 0.0531 - 30 0.00569 - 31 0.055 - 32 0.0038 - 33 0.0019 - 34 0.0038 - 41 0.108 - 42 0.0019 - 43 0.0038 - 45 0.0114 - 47 0.178 - - 22 269 17 0 - 0 0.0186 - 1 0.00372 - 2 0.0112 - 3 0.201 - 7 0.16 - 13 0.123 - 14 0.0743 - 19 0.0112 - 28 0.026 - 29 0.052 - 30 0.0112 - 31 0.00743 - 32 0.00372 - 41 0.227 - 42 0.00743 - 43 0.00372 - 47 0.0595 - - 47 5 3 0 - 2 0.6 - 13 0.2 - 14 0.2 - - 57 3 3 0 - 7 0.333 - 21 0.333 - 47 0.333 - - 60 5 4 0 - 0 0.2 - 28 0.2 - 29 0.4 - 33 0.2 - -50 1035 26 5 - 0 0.0058 - 2 0.0213 - 7 0.0174 - 8 0.0232 - 13 0.111 - 14 0.0889 - 15 0.0193 - 16 0.00193 - 19 0.00193 - 21 0.382 - 22 0.00193 - 24 0.00193 - 26 0.00483 - 28 0.00773 - 29 0.0058 - 30 0.00966 - 31 0.00773 - 32 0.00386 - 33 0.00773 - 41 0.222 - 42 0.0174 - 43 0.00193 - 44 0.00193 - 45 0.00193 - 46 0.00966 - 47 0.0213 - - 2 22 4 0 - 13 0.227 - 14 0.0455 - 22 0.0455 - 41 0.682 - - 7 223 5 3 - 7 0.00897 - 13 0.00897 - 14 0.00448 - 21 0.928 - 41 0.0493 - - 7 2 2 0 - 14 0.5 - 41 0.5 - - 21 11 2 0 - 13 0.182 - 41 0.818 - - 47 209 2 0 - 7 0.00957 - 21 0.99 - - 21 472 24 5 - 0 0.00636 - 2 0.0466 - 7 0.0275 - 8 0.0254 - 13 0.106 - 14 0.0932 - 15 0.0212 - 16 0.00212 - 19 0.00212 - 21 0.373 - 24 0.00212 - 28 0.00847 - 29 0.00636 - 30 0.0106 - 31 0.00847 - 32 0.00424 - 33 0.00847 - 41 0.189 - 42 0.0191 - 43 0.00212 - 44 0.00212 - 45 0.00212 - 46 0.0106 - 47 0.0233 - - 7 206 14 0 - 7 0.00485 - 8 0.0146 - 13 0.117 - 14 0.0922 - 15 0.00971 - 21 0.612 - 28 0.00485 - 29 0.00485 - 30 0.00485 - 31 0.00485 - 32 0.00971 - 41 0.0874 - 42 0.0243 - 46 0.00971 - - 8 4 3 0 - 0 0.25 - 8 0.5 - 33 0.25 - - 21 174 21 0 - 0 0.0115 - 7 0.00575 - 8 0.0402 - 13 0.149 - 14 0.144 - 15 0.046 - 16 0.00575 - 19 0.00575 - 24 0.00575 - 28 0.0172 - 29 0.0115 - 30 0.023 - 31 0.0172 - 33 0.0172 - 41 0.391 - 42 0.0172 - 43 0.00575 - 44 0.00575 - 45 0.00575 - 46 0.0172 - 47 0.0575 - - 26 5 3 0 - 41 0.6 - 42 0.2 - 47 0.2 - - 47 83 3 0 - 2 0.265 - 7 0.133 - 21 0.602 - - 28 5 1 0 - 26 1 - - 47 302 24 2 - 0 0.00993 - 7 0.00662 - 8 0.0397 - 13 0.189 - 14 0.152 - 15 0.0331 - 16 0.00331 - 19 0.00331 - 21 0.00993 - 22 0.00331 - 24 0.00331 - 28 0.0132 - 29 0.00993 - 30 0.0166 - 31 0.0132 - 32 0.00662 - 33 0.0132 - 41 0.381 - 42 0.0298 - 43 0.00331 - 44 0.00331 - 45 0.00331 - 46 0.0166 - 47 0.0364 - - 2 22 4 0 - 13 0.227 - 14 0.0455 - 22 0.0455 - 41 0.682 - - 7 15 4 0 - 13 0.133 - 14 0.0667 - 21 0.0667 - 41 0.733 - -51 1504 36 26 - 0 0.00399 - 2 0.0259 - 3 0.0153 - 4 0.000665 - 6 0.000665 - 7 0.118 - 8 0.00798 - 9 0.00266 - 10 0.000665 - 13 0.0465 - 14 0.0226 - 15 0.0426 - 16 0.00199 - 19 0.00266 - 21 0.0326 - 22 0.000665 - 24 0.00133 - 25 0.00864 - 27 0.00332 - 28 0.0166 - 29 0.00399 - 30 0.000665 - 31 0.00399 - 32 0.00332 - 33 0.00199 - 34 0.00798 - 35 0.00665 - 37 0.00798 - 40 0.00532 - 41 0.0951 - 42 0.0864 - 43 0.00465 - 44 0.00598 - 45 0.0598 - 46 0.00332 - 47 0.347 - - 2 50 6 0 - 13 0.14 - 14 0.02 - 41 0.24 - 42 0.04 - 45 0.02 - 47 0.54 - - 4 3 2 0 - 7 0.667 - 28 0.333 - - 7 7 5 0 - 2 0.143 - 35 0.286 - 41 0.143 - 45 0.143 - 47 0.286 - - 8 5 4 0 - 4 0.2 - 7 0.4 - 21 0.2 - 47 0.2 - - 21 48 11 0 - 2 0.229 - 7 0.167 - 10 0.0208 - 21 0.146 - 28 0.0208 - 35 0.0208 - 37 0.0833 - 41 0.0417 - 42 0.0208 - 45 0.0417 - 47 0.208 - - 35 4 4 0 - 2 0.25 - 21 0.25 - 42 0.25 - 43 0.25 - - 40 3 2 0 - 15 0.667 - 27 0.333 - - 41 96 15 8 - 0 0.0104 - 3 0.167 - 6 0.0104 - 8 0.0521 - 13 0.156 - 14 0.0417 - 15 0.323 - 16 0.0312 - 19 0.0312 - 21 0.0938 - 27 0.0417 - 28 0.0104 - 29 0.0104 - 30 0.0104 - 43 0.0104 - - 2 4 2 0 - 13 0.75 - 28 0.25 - - 45 2 2 0 - 19 0.5 - 29 0.5 - - 49 7 6 0 - 8 0.143 - 13 0.143 - 19 0.143 - 21 0.286 - 27 0.143 - 43 0.143 - - 55 48 9 0 - 3 0.312 - 8 0.0208 - 13 0.146 - 14 0.0208 - 15 0.292 - 16 0.0417 - 19 0.0208 - 21 0.0833 - 27 0.0625 - - 57 16 2 0 - 8 0.0625 - 15 0.938 - - 64 6 4 0 - 0 0.167 - 8 0.167 - 13 0.5 - 30 0.167 - - 69 2 2 0 - 3 0.5 - 6 0.5 - - 71 3 2 0 - 8 0.333 - 21 0.667 - - 42 78 15 4 - 3 0.0128 - 8 0.0128 - 13 0.218 - 14 0.167 - 15 0.269 - 21 0.0385 - 25 0.103 - 28 0.0128 - 29 0.0128 - 31 0.0385 - 32 0.0128 - 33 0.0128 - 43 0.0513 - 46 0.0128 - 47 0.0256 - - 45 24 6 0 - 13 0.125 - 14 0.125 - 15 0.5 - 21 0.0417 - 33 0.0417 - 43 0.167 - - 55 20 10 0 - 3 0.05 - 8 0.05 - 13 0.05 - 14 0.1 - 15 0.15 - 25 0.3 - 28 0.05 - 29 0.05 - 31 0.15 - 46 0.05 - - 62 19 3 0 - 13 0.632 - 14 0.211 - 15 0.158 - - 69 5 3 0 - 14 0.2 - 25 0.4 - 47 0.4 - - 45 37 5 0 - 41 0.0811 - 42 0.649 - 43 0.027 - 44 0.0541 - 47 0.189 - - 47 495 24 19 - 0 0.00404 - 2 0.0283 - 3 0.00202 - 7 0.178 - 13 0.0242 - 14 0.00606 - 15 0.00202 - 21 0.0121 - 24 0.00202 - 28 0.0202 - 29 0.00404 - 31 0.00202 - 32 0.00404 - 33 0.00202 - 34 0.0121 - 35 0.00202 - 37 0.00606 - 40 0.00404 - 41 0.0444 - 42 0.0525 - 44 0.00606 - 45 0.0525 - 46 0.00202 - 47 0.527 - - 2 42 5 0 - 13 0.119 - 41 0.19 - 42 0.0238 - 45 0.0238 - 47 0.643 - - 4 3 2 0 - 7 0.667 - 28 0.333 - - 21 24 7 0 - 2 0.0833 - 7 0.292 - 21 0.0417 - 28 0.0417 - 41 0.0417 - 45 0.0833 - 47 0.417 - - 41 2 2 0 - 13 0.5 - 21 0.5 - - 42 4 3 0 - 13 0.25 - 32 0.25 - 47 0.5 - - 45 8 2 0 - 44 0.125 - 47 0.875 - - 48 41 8 0 - 0 0.0244 - 7 0.439 - 21 0.0488 - 28 0.0244 - 37 0.0488 - 42 0.0244 - 45 0.0488 - 47 0.341 - - 49 47 8 0 - 2 0.0851 - 7 0.255 - 28 0.0213 - 37 0.0213 - 41 0.0638 - 42 0.0213 - 45 0.0213 - 47 0.511 - - 51 5 3 0 - 7 0.2 - 42 0.6 - 47 0.2 - - 52 7 3 0 - 40 0.143 - 45 0.429 - 47 0.429 - - 55 145 12 0 - 2 0.0138 - 7 0.166 - 14 0.0069 - 29 0.0069 - 33 0.0069 - 34 0.0414 - 35 0.0069 - 41 0.0276 - 42 0.0828 - 44 0.0069 - 45 0.0483 - 47 0.586 - - 57 55 15 0 - 0 0.0182 - 3 0.0182 - 7 0.127 - 13 0.0909 - 14 0.0182 - 15 0.0182 - 21 0.0182 - 28 0.0182 - 31 0.0182 - 41 0.0182 - 42 0.0364 - 44 0.0182 - 45 0.0364 - 46 0.0182 - 47 0.527 - - 64 18 4 0 - 2 0.0556 - 7 0.111 - 45 0.111 - 47 0.722 - - 65 1 1 0 - 40 1 - - 69 15 6 0 - 7 0.533 - 21 0.0667 - 29 0.0667 - 41 0.0667 - 42 0.0667 - 47 0.2 - - 71 13 7 0 - 2 0.231 - 14 0.0769 - 24 0.0769 - 28 0.154 - 41 0.0769 - 42 0.0769 - 47 0.308 - - 72 11 5 0 - 2 0.0909 - 28 0.0909 - 42 0.0909 - 45 0.273 - 47 0.455 - - 73 2 1 0 - 28 1 - - 74 17 4 0 - 7 0.0588 - 32 0.0588 - 41 0.0588 - 47 0.824 - - 48 49 12 3 - 0 0.0204 - 7 0.367 - 13 0.0408 - 15 0.0408 - 21 0.0612 - 28 0.0204 - 37 0.0408 - 40 0.0204 - 41 0.0204 - 42 0.0204 - 45 0.0612 - 47 0.286 - - 41 5 2 0 - 42 0.2 - 47 0.8 - - 42 2 2 0 - 15 0.5 - 21 0.5 - - 47 34 10 0 - 0 0.0294 - 7 0.529 - 13 0.0588 - 21 0.0588 - 28 0.0294 - 37 0.0588 - 40 0.0294 - 41 0.0294 - 45 0.0588 - 47 0.118 - - 49 64 14 3 - 2 0.0625 - 7 0.188 - 8 0.0156 - 13 0.0312 - 14 0.0156 - 19 0.0156 - 21 0.0312 - 28 0.0156 - 35 0.0156 - 37 0.0156 - 41 0.156 - 42 0.0469 - 45 0.0156 - 47 0.375 - - 41 8 2 0 - 41 0.125 - 47 0.875 - - 47 35 11 0 - 2 0.0286 - 7 0.314 - 8 0.0286 - 13 0.0571 - 14 0.0286 - 21 0.0571 - 35 0.0286 - 37 0.0286 - 41 0.2 - 42 0.0286 - 47 0.2 - - 49 3 3 0 - 2 0.333 - 7 0.333 - 28 0.333 - - 51 11 5 0 - 7 0.0909 - 41 0.0909 - 42 0.636 - 45 0.0909 - 47 0.0909 - - 52 11 4 0 - 40 0.0909 - 41 0.182 - 45 0.455 - 47 0.273 - - 55 273 23 6 - 2 0.00733 - 7 0.0879 - 8 0.00366 - 9 0.011 - 13 0.0183 - 14 0.0293 - 15 0.00733 - 21 0.033 - 25 0.00733 - 28 0.00366 - 29 0.00366 - 31 0.00366 - 33 0.00366 - 34 0.022 - 35 0.00366 - 37 0.00733 - 40 0.00733 - 41 0.194 - 42 0.117 - 44 0.011 - 45 0.103 - 46 0.00366 - 47 0.311 - - 2 2 2 0 - 33 0.5 - 47 0.5 - - 40 2 2 0 - 40 0.5 - 45 0.5 - - 41 57 7 0 - 2 0.0175 - 13 0.0175 - 21 0.0175 - 41 0.526 - 42 0.0351 - 45 0.0526 - 47 0.333 - - 42 26 3 0 - 42 0.0385 - 44 0.0769 - 47 0.885 - - 47 162 22 0 - 2 0.00617 - 7 0.13 - 8 0.00617 - 9 0.0185 - 13 0.0185 - 14 0.0432 - 15 0.0123 - 21 0.0494 - 25 0.0123 - 28 0.00617 - 29 0.00617 - 31 0.00617 - 34 0.037 - 35 0.00617 - 37 0.0123 - 40 0.00617 - 41 0.13 - 42 0.167 - 44 0.00617 - 45 0.142 - 46 0.00617 - 47 0.173 - - 62 5 2 0 - 7 0.6 - 47 0.4 - - 57 74 16 5 - 0 0.0135 - 3 0.0135 - 7 0.0946 - 8 0.0135 - 13 0.0676 - 14 0.0135 - 15 0.0135 - 21 0.0135 - 28 0.027 - 31 0.0135 - 41 0.243 - 42 0.027 - 44 0.0135 - 45 0.027 - 46 0.0135 - 47 0.392 - - 41 7 5 0 - 41 0.143 - 42 0.143 - 44 0.143 - 45 0.143 - 47 0.429 - - 42 24 3 0 - 41 0.458 - 45 0.0417 - 47 0.5 - - 47 26 12 0 - 0 0.0385 - 3 0.0385 - 7 0.192 - 13 0.192 - 14 0.0385 - 15 0.0385 - 21 0.0385 - 28 0.0385 - 31 0.0385 - 41 0.0385 - 46 0.0385 - 47 0.269 - - 55 9 3 0 - 7 0.222 - 42 0.111 - 47 0.667 - - 58 4 1 0 - 41 1 - - 58 8 5 0 - 13 0.125 - 15 0.5 - 32 0.125 - 46 0.125 - 47 0.125 - - 62 55 11 1 - 3 0.0727 - 7 0.0909 - 8 0.0182 - 9 0.0182 - 13 0.0182 - 14 0.0182 - 22 0.0182 - 35 0.0182 - 42 0.345 - 45 0.236 - 47 0.145 - - 42 3 1 0 - 47 1 - - 64 37 10 1 - 2 0.027 - 7 0.0541 - 8 0.0541 - 13 0.0541 - 21 0.108 - 35 0.0811 - 41 0.162 - 42 0.027 - 45 0.0811 - 47 0.351 - - 41 8 4 0 - 2 0.125 - 7 0.125 - 45 0.125 - 47 0.625 - - 65 1 1 0 - 40 1 - - 69 29 9 1 - 7 0.276 - 14 0.0345 - 21 0.103 - 25 0.103 - 29 0.0345 - 40 0.0345 - 41 0.103 - 42 0.207 - 47 0.103 - - 42 3 1 0 - 47 1 - - 71 17 7 0 - 2 0.235 - 14 0.0588 - 24 0.0588 - 28 0.118 - 41 0.235 - 42 0.0588 - 47 0.235 - - 72 11 5 0 - 2 0.0909 - 28 0.0909 - 42 0.0909 - 45 0.273 - 47 0.455 - - 73 2 1 0 - 28 1 - - 74 19 6 0 - 0 0.0526 - 7 0.0526 - 28 0.0526 - 32 0.0526 - 41 0.0526 - 47 0.737 - -52 280 19 10 - 2 0.0214 - 4 0.0179 - 7 0.00714 - 8 0.0107 - 13 0.00357 - 15 0.00357 - 20 0.00357 - 27 0.0286 - 28 0.05 - 29 0.0143 - 30 0.0143 - 33 0.00714 - 40 0.0107 - 41 0.225 - 42 0.0214 - 44 0.05 - 45 0.175 - 46 0.00714 - 47 0.329 - - 0 3 1 0 - 4 1 - - 13 6 4 0 - 8 0.5 - 41 0.167 - 44 0.167 - 47 0.167 - - 15 3 3 0 - 15 0.333 - 20 0.333 - 47 0.333 - - 21 18 5 0 - 28 0.0556 - 33 0.0556 - 41 0.111 - 42 0.0556 - 47 0.722 - - 27 86 13 0 - 2 0.0233 - 4 0.0116 - 7 0.0116 - 27 0.0349 - 28 0.0349 - 29 0.0233 - 30 0.0233 - 40 0.0233 - 41 0.221 - 42 0.0116 - 44 0.0581 - 45 0.267 - 47 0.256 - - 28 13 4 0 - 41 0.769 - 45 0.0769 - 46 0.0769 - 47 0.0769 - - 41 5 3 0 - 13 0.2 - 27 0.4 - 28 0.4 - - 45 3 3 0 - 2 0.333 - 28 0.333 - 47 0.333 - - 47 127 15 3 - 2 0.0236 - 4 0.00787 - 7 0.00787 - 27 0.00787 - 28 0.0472 - 29 0.0157 - 30 0.0157 - 33 0.00787 - 40 0.00787 - 41 0.228 - 42 0.0236 - 44 0.0551 - 45 0.181 - 46 0.00787 - 47 0.362 - - 21 17 5 0 - 28 0.0588 - 33 0.0588 - 41 0.0588 - 42 0.0588 - 47 0.765 - - 28 11 4 0 - 41 0.727 - 45 0.0909 - 46 0.0909 - 47 0.0909 - - 52 2 2 0 - 28 0.5 - 44 0.5 - - 52 2 2 0 - 28 0.5 - 44 0.5 - -53 81 5 3 - 2 0.0494 - 7 0.0494 - 42 0.173 - 44 0.0617 - 47 0.667 - - 13 2 1 0 - 44 1 - - 44 5 3 0 - 2 0.4 - 7 0.2 - 42 0.4 - - 47 38 4 1 - 2 0.0526 - 7 0.0526 - 42 0.184 - 47 0.711 - - 44 5 3 0 - 2 0.4 - 7 0.2 - 42 0.4 - -54 1410 26 10 - 0 0.00142 - 2 0.0128 - 3 0.0163 - 4 0.351 - 7 0.044 - 8 0.0326 - 13 0.00355 - 14 0.000709 - 15 0.241 - 16 0.00213 - 18 0.0184 - 20 0.0348 - 21 0.00142 - 26 0.00426 - 28 0.00284 - 29 0.00284 - 30 0.00142 - 31 0.000709 - 33 0.00426 - 34 0.00142 - 39 0.000709 - 41 0.178 - 44 0.00284 - 45 0.0163 - 46 0.00142 - 47 0.0227 - - 3 2 2 0 - 4 0.5 - 39 0.5 - - 4 5 4 0 - 7 0.4 - 21 0.2 - 33 0.2 - 41 0.2 - - 8 11 9 0 - 4 0.0909 - 7 0.0909 - 8 0.0909 - 18 0.0909 - 20 0.0909 - 29 0.0909 - 41 0.0909 - 45 0.182 - 47 0.182 - - 13 19 9 0 - 2 0.0526 - 3 0.158 - 4 0.105 - 7 0.0526 - 8 0.211 - 15 0.158 - 30 0.0526 - 31 0.0526 - 45 0.158 - - 15 697 20 3 - 0 0.00143 - 2 0.0115 - 3 0.01 - 4 0.34 - 7 0.0373 - 8 0.0301 - 13 0.0043 - 15 0.135 - 18 0.0158 - 20 0.0316 - 26 0.0043 - 28 0.00287 - 29 0.00143 - 33 0.00143 - 34 0.00143 - 41 0.344 - 44 0.00287 - 45 0.00574 - 46 0.00143 - 47 0.0172 - - 15 89 12 0 - 2 0.0112 - 3 0.0337 - 4 0.629 - 7 0.0787 - 8 0.0449 - 13 0.0112 - 15 0.0674 - 20 0.0674 - 26 0.0112 - 34 0.0112 - 41 0.0225 - 45 0.0112 - - 41 231 8 0 - 2 0.013 - 4 0.61 - 7 0.0216 - 8 0.026 - 15 0.238 - 18 0.0346 - 20 0.0519 - 33 0.00433 - - 47 371 18 0 - 0 0.0027 - 2 0.0108 - 3 0.0108 - 4 0.097 - 7 0.0377 - 8 0.027 - 13 0.00539 - 15 0.0889 - 18 0.00809 - 20 0.0108 - 26 0.00539 - 28 0.00539 - 29 0.0027 - 41 0.639 - 44 0.00539 - 45 0.00809 - 46 0.0027 - 47 0.0323 - - 16 7 2 0 - 3 0.286 - 15 0.714 - - 41 235 2 0 - 15 0.987 - 16 0.0128 - - 47 411 22 5 - 0 0.00243 - 2 0.0219 - 3 0.0268 - 4 0.596 - 7 0.0754 - 8 0.0438 - 13 0.00487 - 15 0.0146 - 18 0.0316 - 20 0.0584 - 21 0.00243 - 26 0.0073 - 28 0.00487 - 29 0.00487 - 30 0.00243 - 33 0.0073 - 34 0.00243 - 41 0.0195 - 44 0.00487 - 45 0.0268 - 46 0.00243 - 47 0.0389 - - 4 5 4 0 - 7 0.4 - 21 0.2 - 33 0.2 - 41 0.2 - - 8 8 6 0 - 7 0.125 - 18 0.125 - 29 0.125 - 41 0.125 - 45 0.25 - 47 0.25 - - 13 11 7 0 - 2 0.0909 - 3 0.182 - 4 0.182 - 7 0.0909 - 15 0.0909 - 30 0.0909 - 45 0.273 - - 15 365 20 0 - 0 0.00274 - 2 0.0219 - 3 0.0192 - 4 0.638 - 7 0.0712 - 8 0.0466 - 13 0.00548 - 15 0.0137 - 18 0.0301 - 20 0.0603 - 26 0.00822 - 28 0.00548 - 29 0.00274 - 33 0.00274 - 34 0.00274 - 41 0.0164 - 44 0.00548 - 45 0.011 - 46 0.00274 - 47 0.0329 - - 16 2 1 0 - 3 1 - - 54 6 4 0 - 4 0.5 - 7 0.167 - 20 0.167 - 33 0.167 - - 55 10 8 0 - 4 0.3 - 8 0.1 - 14 0.1 - 18 0.1 - 20 0.1 - 41 0.1 - 45 0.1 - 47 0.1 - -55 887998 48 60 - 0 0.0273 - 1 0.000351 - 2 0.0385 - 3 0.0187 - 4 0.0895 - 5 1.13e-05 - 6 0.00017 - 7 0.269 - 8 0.0578 - 9 0.00198 - 10 0.00144 - 11 4.5e-06 - 12 0.000276 - 13 0.0448 - 14 0.00865 - 15 0.0601 - 16 0.00132 - 17 0.000474 - 18 0.00933 - 19 0.00118 - 20 0.00947 - 21 0.00895 - 22 0.00032 - 23 7.09e-05 - 24 0.0044 - 25 2.93e-05 - 26 0.0257 - 27 9.01e-06 - 28 0.0421 - 29 0.0397 - 30 0.0252 - 31 0.0126 - 32 0.00881 - 33 0.0183 - 34 0.0013 - 35 0.000993 - 36 2.14e-05 - 37 0.00439 - 38 1.46e-05 - 39 9.01e-06 - 40 0.000164 - 41 0.0609 - 42 0.00956 - 43 0.000404 - 44 0.0025 - 45 0.0118 - 46 0.00365 - 47 0.078 - - 0 15 6 0 - 7 0.0667 - 13 0.133 - 14 0.0667 - 15 0.6 - 19 0.0667 - 44 0.0667 - - 2 4952 33 24 - 0 0.00101 - 2 0.000404 - 3 0.0186 - 4 0.00323 - 6 0.000202 - 7 0.00424 - 8 0.0307 - 9 0.000808 - 10 0.000404 - 13 0.33 - 14 0.202 - 15 0.361 - 16 0.0224 - 18 0.000404 - 19 0.00141 - 20 0.000808 - 21 0.00101 - 26 0.000202 - 28 0.00121 - 29 0.000202 - 30 0.00363 - 31 0.000808 - 32 0.000202 - 33 0.000404 - 34 0.000202 - 40 0.000202 - 41 0.00687 - 42 0.00182 - 43 0.000202 - 44 0.000202 - 45 0.000202 - 46 0.00283 - 47 0.00263 - - 3 95 6 0 - 3 0.884 - 7 0.0105 - 8 0.0105 - 13 0.0632 - 21 0.0105 - 41 0.0211 - - 4 22 10 0 - 0 0.0909 - 3 0.0455 - 4 0.273 - 7 0.227 - 8 0.0455 - 13 0.0909 - 15 0.0909 - 21 0.0455 - 32 0.0455 - 47 0.0455 - - 6 1 1 0 - 6 1 - - 8 278 11 0 - 3 0.0036 - 4 0.0216 - 8 0.432 - 9 0.00719 - 13 0.439 - 14 0.0396 - 15 0.036 - 31 0.00719 - 40 0.0036 - 41 0.0036 - 42 0.00719 - - 9 4 2 0 - 3 0.5 - 9 0.5 - - 10 2 1 0 - 10 1 - - 13 1555 11 0 - 4 0.00257 - 8 0.0167 - 13 0.826 - 14 0.134 - 15 0.00257 - 16 0.000643 - 30 0.0045 - 41 0.00836 - 42 0.00129 - 46 0.00193 - 47 0.00129 - - 14 982 10 0 - 3 0.00102 - 7 0.00102 - 8 0.00204 - 13 0.196 - 14 0.785 - 15 0.0102 - 16 0.00102 - 19 0.00204 - 33 0.00102 - 41 0.00102 - - 15 1822 10 0 - 8 0.0011 - 13 0.00549 - 14 0.000549 - 15 0.945 - 16 0.0406 - 18 0.0011 - 19 0.0011 - 30 0.000549 - 41 0.00384 - 43 0.000549 - - 16 66 3 0 - 14 0.0152 - 15 0.455 - 16 0.53 - - 19 5 3 0 - 7 0.2 - 15 0.2 - 19 0.6 - - 20 5 2 0 - 7 0.2 - 20 0.8 - - 21 4 2 0 - 13 0.5 - 21 0.5 - - 28 4 1 0 - 28 1 - - 30 15 3 0 - 13 0.333 - 14 0.0667 - 30 0.6 - - 31 4 2 0 - 13 0.75 - 31 0.25 - - 45 12 3 0 - 15 0.0833 - 42 0.167 - 46 0.75 - - 47 9 8 0 - 0 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 28 0.111 - 41 0.111 - 45 0.111 - 46 0.111 - - 48 3 2 0 - 13 0.667 - 31 0.333 - - 49 1 1 0 - 41 1 - - 54 2 2 0 - 15 0.5 - 41 0.5 - - 55 57 18 0 - 0 0.0351 - 2 0.0351 - 3 0.0351 - 7 0.193 - 13 0.0877 - 14 0.0526 - 15 0.0877 - 21 0.0175 - 26 0.0175 - 28 0.0175 - 29 0.0175 - 30 0.0175 - 33 0.0175 - 34 0.0175 - 41 0.105 - 42 0.0526 - 46 0.0175 - 47 0.175 - - 56 1 1 0 - 7 1 - - 57 2 2 0 - 41 0.5 - 44 0.5 - - 3 14951 40 22 - 0 0.0276 - 1 0.000334 - 2 0.0587 - 3 0.0198 - 4 0.0795 - 7 0.288 - 8 0.0544 - 9 0.000401 - 10 0.00114 - 12 0.000134 - 13 0.0364 - 14 0.00408 - 15 0.0177 - 16 6.69e-05 - 18 0.0093 - 19 0.001 - 20 0.00816 - 21 0.0375 - 24 0.00294 - 25 6.69e-05 - 26 0.066 - 28 0.0289 - 29 0.106 - 30 0.0142 - 31 0.0122 - 32 0.00375 - 33 0.0142 - 34 0.00127 - 35 0.000201 - 37 0.000936 - 38 0.00087 - 39 0.000535 - 40 0.000334 - 41 0.0413 - 42 0.026 - 43 0.000669 - 44 0.00261 - 45 0.00348 - 46 0.00107 - 47 0.0286 - - 2 89 12 0 - 0 0.0337 - 2 0.0112 - 4 0.124 - 7 0.461 - 8 0.0449 - 13 0.0225 - 20 0.0225 - 21 0.0337 - 28 0.0112 - 41 0.213 - 45 0.0112 - 46 0.0112 - - 3 284 22 0 - 0 0.00704 - 2 0.0141 - 3 0.00352 - 4 0.0141 - 7 0.387 - 8 0.0176 - 13 0.00352 - 14 0.0106 - 15 0.00352 - 21 0.0176 - 26 0.268 - 28 0.0141 - 29 0.13 - 30 0.00352 - 31 0.0211 - 33 0.0106 - 34 0.00704 - 39 0.00704 - 41 0.0141 - 42 0.0352 - 45 0.00352 - 47 0.00704 - - 7 3 1 0 - 4 1 - - 8 787 30 0 - 0 0.0419 - 1 0.00127 - 2 0.0801 - 3 0.0102 - 4 0.131 - 7 0.26 - 8 0.0305 - 13 0.00635 - 14 0.00254 - 15 0.0152 - 18 0.0343 - 20 0.0267 - 21 0.0178 - 24 0.0127 - 26 0.0165 - 28 0.0394 - 29 0.0496 - 30 0.0267 - 31 0.0114 - 32 0.00508 - 33 0.033 - 34 0.00127 - 35 0.00127 - 37 0.00254 - 39 0.00127 - 41 0.0343 - 42 0.0114 - 44 0.00127 - 45 0.00381 - 47 0.0902 - - 9 19 8 0 - 0 0.158 - 7 0.263 - 13 0.0526 - 28 0.0526 - 29 0.158 - 30 0.0526 - 41 0.0526 - 47 0.211 - - 10 28 4 0 - 4 0.643 - 7 0.0357 - 18 0.25 - 20 0.0714 - - 13 4530 37 0 - 0 0.0232 - 1 0.000442 - 2 0.0433 - 3 0.00596 - 4 0.0656 - 7 0.201 - 8 0.0272 - 9 0.000221 - 10 0.000662 - 12 0.000221 - 13 0.0347 - 14 0.00177 - 15 0.034 - 18 0.0102 - 20 0.00927 - 21 0.0408 - 24 0.00419 - 25 0.000221 - 26 0.0682 - 28 0.0563 - 29 0.179 - 30 0.0143 - 31 0.015 - 32 0.00574 - 33 0.0232 - 34 0.000442 - 35 0.000442 - 37 0.0011 - 39 0.000442 - 40 0.0011 - 41 0.0219 - 42 0.07 - 43 0.00177 - 44 0.00287 - 45 0.00419 - 46 0.0011 - 47 0.0302 - - 14 4275 34 0 - 0 0.0262 - 2 0.106 - 3 0.00819 - 4 0.116 - 7 0.244 - 8 0.0952 - 9 0.000234 - 10 0.00257 - 13 0.0732 - 14 0.00444 - 15 0.0133 - 16 0.000234 - 18 0.0101 - 19 0.00211 - 20 0.00959 - 21 0.0428 - 24 0.00281 - 26 0.0414 - 28 0.018 - 29 0.0648 - 30 0.0131 - 31 0.0159 - 32 0.00327 - 33 0.00912 - 34 0.00211 - 37 0.000468 - 39 0.000468 - 41 0.0409 - 42 0.00795 - 43 0.000234 - 44 0.00234 - 45 0.00234 - 46 0.000234 - 47 0.0201 - - 15 275 26 0 - 0 0.0182 - 2 0.0291 - 3 0.00364 - 4 0.2 - 7 0.153 - 8 0.0327 - 13 0.0436 - 15 0.08 - 18 0.04 - 19 0.00364 - 20 0.0291 - 21 0.00727 - 26 0.0182 - 28 0.0473 - 29 0.0509 - 30 0.0109 - 31 0.0145 - 32 0.00364 - 33 0.0545 - 34 0.0109 - 41 0.0582 - 42 0.00727 - 44 0.00727 - 45 0.00364 - 46 0.00364 - 47 0.0691 - - 16 24 11 0 - 0 0.0417 - 2 0.0417 - 4 0.375 - 7 0.167 - 8 0.0417 - 28 0.0417 - 29 0.0833 - 30 0.0833 - 33 0.0417 - 46 0.0417 - 47 0.0417 - - 18 25 6 0 - 4 0.04 - 7 0.64 - 15 0.2 - 26 0.04 - 28 0.04 - 29 0.04 - - 21 20 6 0 - 2 0.05 - 4 0.1 - 7 0.7 - 20 0.05 - 41 0.05 - 44 0.05 - - 30 15 6 0 - 4 0.267 - 7 0.333 - 18 0.0667 - 20 0.0667 - 28 0.133 - 47 0.133 - - 31 22 12 0 - 0 0.0909 - 2 0.0455 - 4 0.0909 - 7 0.273 - 8 0.0455 - 13 0.136 - 20 0.0455 - 29 0.0909 - 30 0.0455 - 39 0.0455 - 41 0.0455 - 47 0.0455 - - 41 29 8 0 - 2 0.0345 - 3 0.0345 - 4 0.069 - 7 0.172 - 8 0.241 - 21 0.069 - 28 0.0345 - 41 0.345 - - 43 1 1 0 - 44 1 - - 45 9 6 0 - 2 0.222 - 4 0.222 - 7 0.222 - 15 0.111 - 20 0.111 - 28 0.111 - - 46 4 3 0 - 8 0.25 - 13 0.25 - 45 0.5 - - 47 4447 34 0 - 0 0.0324 - 1 0.00045 - 2 0.0322 - 3 0.0501 - 4 0.0369 - 7 0.422 - 8 0.0515 - 9 0.000899 - 10 0.000675 - 12 0.000225 - 13 0.0103 - 14 0.00652 - 15 0.00225 - 19 0.00112 - 20 0.000225 - 21 0.0376 - 24 0.000675 - 26 0.0911 - 28 0.00967 - 29 0.0902 - 30 0.0139 - 31 0.00607 - 32 0.00225 - 33 0.00472 - 34 0.00045 - 37 0.000899 - 38 0.00292 - 41 0.0573 - 42 0.00382 - 43 0.000225 - 44 0.00247 - 45 0.00337 - 46 0.00135 - 47 0.0232 - - 48 43 14 0 - 0 0.0233 - 4 0.233 - 7 0.163 - 8 0.0233 - 13 0.0698 - 15 0.0233 - 18 0.093 - 28 0.0233 - 29 0.0233 - 33 0.0233 - 37 0.0233 - 41 0.209 - 46 0.0233 - 47 0.0465 - - 54 7 4 0 - 2 0.143 - 4 0.429 - 7 0.286 - 8 0.143 - - 55 9 8 0 - 2 0.111 - 4 0.222 - 7 0.111 - 8 0.111 - 15 0.111 - 20 0.111 - 32 0.111 - 33 0.111 - - 4 80857 41 32 - 0 0.0477 - 1 0.000742 - 2 0.0329 - 3 0.0128 - 4 0.00155 - 5 2.47e-05 - 6 2.47e-05 - 7 0.398 - 8 0.00234 - 9 0.000247 - 10 0.000371 - 12 0.000408 - 13 0.0102 - 14 0.0123 - 15 0.00247 - 16 9.89e-05 - 17 0.00409 - 18 2.47e-05 - 19 0.00233 - 21 0.0171 - 22 0.002 - 23 1.24e-05 - 24 0.00694 - 26 0.0309 - 28 0.0629 - 29 0.0511 - 30 0.0334 - 31 0.0145 - 32 0.0125 - 33 0.0213 - 34 0.00146 - 35 0.00124 - 37 0.00651 - 40 4.95e-05 - 41 0.0794 - 42 0.0066 - 43 0.00042 - 44 0.00117 - 45 0.0123 - 46 0.0031 - 47 0.107 - - 2 16 6 0 - 7 0.312 - 26 0.0625 - 28 0.25 - 30 0.188 - 32 0.0625 - 47 0.125 - - 3 1180 26 0 - 0 0.0127 - 2 0.0314 - 3 0.00169 - 7 0.618 - 8 0.00169 - 13 0.00678 - 14 0.00254 - 15 0.000847 - 17 0.00169 - 21 0.00763 - 24 0.00254 - 26 0.0178 - 28 0.0356 - 29 0.0322 - 30 0.0322 - 31 0.00847 - 32 0.00339 - 33 0.00763 - 34 0.000847 - 37 0.00508 - 41 0.05 - 42 0.00763 - 44 0.00169 - 45 0.00254 - 46 0.00254 - 47 0.105 - - 4 71 16 0 - 0 0.0423 - 7 0.394 - 8 0.0141 - 13 0.0141 - 21 0.0423 - 24 0.0141 - 28 0.0845 - 29 0.0141 - 30 0.0563 - 31 0.0282 - 32 0.0423 - 33 0.0282 - 41 0.0282 - 42 0.0141 - 45 0.0563 - 47 0.127 - - 6 18 9 0 - 0 0.0556 - 2 0.111 - 7 0.389 - 8 0.0556 - 28 0.111 - 31 0.0556 - 35 0.0556 - 41 0.0556 - 47 0.111 - - 7 1 1 0 - 15 1 - - 8 17405 38 0 - 0 0.078 - 1 0.00109 - 2 0.0307 - 3 0.00167 - 4 0.000862 - 5 0.000115 - 7 0.426 - 8 0.00184 - 9 5.75e-05 - 10 0.000632 - 12 0.000402 - 13 0.00718 - 14 0.00431 - 15 0.00218 - 16 5.75e-05 - 17 0.00287 - 19 0.00247 - 21 0.0196 - 22 5.75e-05 - 24 0.00678 - 26 0.0298 - 28 0.0666 - 29 0.0525 - 30 0.0357 - 31 0.0159 - 32 0.0133 - 33 0.0219 - 34 0.000804 - 35 0.000919 - 37 0.00368 - 40 5.75e-05 - 41 0.0705 - 42 0.00672 - 43 0.000172 - 44 0.000689 - 45 0.0106 - 46 0.00195 - 47 0.0812 - - 9 397 24 0 - 0 0.0907 - 2 0.063 - 7 0.378 - 13 0.00504 - 14 0.00756 - 15 0.00756 - 16 0.00252 - 17 0.00252 - 19 0.0101 - 21 0.0126 - 24 0.00252 - 26 0.0327 - 28 0.0932 - 29 0.0403 - 30 0.0529 - 31 0.0126 - 32 0.0277 - 33 0.0428 - 37 0.00252 - 41 0.0479 - 42 0.00756 - 44 0.00252 - 45 0.00252 - 47 0.0529 - - 10 727 22 0 - 0 0.144 - 1 0.00275 - 2 0.0151 - 7 0.38 - 13 0.00275 - 17 0.00138 - 19 0.00138 - 21 0.0578 - 24 0.00138 - 26 0.0289 - 28 0.0385 - 29 0.0399 - 30 0.00825 - 31 0.0165 - 32 0.0206 - 33 0.0179 - 37 0.00138 - 41 0.0894 - 42 0.011 - 44 0.00275 - 45 0.0179 - 47 0.1 - - 12 2 2 0 - 0 0.5 - 2 0.5 - - 13 38560 39 0 - 0 0.0431 - 1 0.000726 - 2 0.0281 - 3 0.0249 - 4 0.00114 - 6 2.59e-05 - 7 0.377 - 8 0.00319 - 9 0.000441 - 10 0.000363 - 12 0.000441 - 13 0.0138 - 14 0.0218 - 15 0.00265 - 16 7.78e-05 - 17 0.00423 - 18 5.19e-05 - 19 0.00202 - 21 0.0182 - 22 0.00412 - 24 0.00747 - 26 0.0309 - 28 0.0659 - 29 0.0534 - 30 0.0347 - 31 0.0155 - 32 0.0119 - 33 0.0219 - 34 0.00187 - 35 0.00119 - 37 0.00778 - 40 2.59e-05 - 41 0.0783 - 42 0.00578 - 43 0.000622 - 44 0.00137 - 45 0.0108 - 46 0.00371 - 47 0.101 - - 14 5945 33 0 - 0 0.0192 - 2 0.0441 - 4 0.00404 - 7 0.376 - 8 0.00202 - 10 0.000336 - 12 0.000168 - 13 0.00673 - 14 0.00471 - 15 0.000505 - 16 0.000168 - 17 0.0116 - 19 0.000505 - 21 0.0104 - 23 0.000168 - 24 0.00976 - 26 0.031 - 28 0.0833 - 29 0.0474 - 30 0.0368 - 31 0.00908 - 32 0.0172 - 33 0.02 - 34 0.00118 - 35 0.0032 - 37 0.00622 - 41 0.076 - 42 0.00706 - 43 0.000168 - 44 0.00135 - 45 0.0163 - 46 0.00219 - 47 0.152 - - 15 8602 35 0 - 0 0.0117 - 1 0.000465 - 2 0.0398 - 3 0.000581 - 4 0.00221 - 7 0.483 - 8 0.000581 - 12 0.000698 - 13 0.00581 - 14 0.00174 - 15 0.00267 - 16 0.000116 - 17 0.00093 - 19 0.00105 - 21 0.00523 - 22 0.000116 - 24 0.00302 - 26 0.038 - 28 0.0367 - 29 0.031 - 30 0.0208 - 31 0.0086 - 32 0.00732 - 33 0.0166 - 34 0.00221 - 35 0.00105 - 37 0.0086 - 40 0.000116 - 41 0.114 - 42 0.00546 - 43 0.000116 - 44 0.000814 - 45 0.00802 - 46 0.0057 - 47 0.135 - - 16 411 25 0 - 0 0.00243 - 2 0.0706 - 4 0.00243 - 7 0.406 - 13 0.0243 - 14 0.00487 - 17 0.00243 - 21 0.0219 - 24 0.00973 - 26 0.0487 - 28 0.0535 - 29 0.0316 - 30 0.0219 - 31 0.0073 - 32 0.00487 - 33 0.0073 - 34 0.00487 - 35 0.00243 - 37 0.0292 - 40 0.00243 - 41 0.0925 - 42 0.00487 - 44 0.00243 - 45 0.0122 - 47 0.129 - - 19 14 8 0 - 2 0.143 - 7 0.214 - 21 0.0714 - 26 0.143 - 29 0.0714 - 41 0.0714 - 45 0.143 - 47 0.143 - - 20 23 9 0 - 7 0.304 - 21 0.087 - 24 0.087 - 28 0.174 - 30 0.0435 - 31 0.0435 - 32 0.13 - 35 0.0435 - 45 0.087 - - 21 134 19 0 - 0 0.231 - 2 0.0149 - 4 0.00746 - 7 0.291 - 14 0.0224 - 15 0.00746 - 19 0.0224 - 21 0.0448 - 24 0.0149 - 26 0.0224 - 28 0.0522 - 29 0.0299 - 30 0.0522 - 33 0.0299 - 37 0.00746 - 41 0.0746 - 42 0.0149 - 45 0.0373 - 47 0.0224 - - 22 13 7 0 - 0 0.0769 - 4 0.0769 - 7 0.462 - 28 0.0769 - 29 0.0769 - 30 0.154 - 33 0.0769 - - 23 34 11 0 - 0 0.206 - 2 0.0294 - 7 0.235 - 21 0.0294 - 26 0.0294 - 28 0.0294 - 29 0.0588 - 31 0.0882 - 42 0.0294 - 45 0.0588 - 47 0.206 - - 30 600 27 0 - 0 0.0817 - 1 0.00333 - 2 0.0267 - 7 0.398 - 8 0.00167 - 13 0.005 - 14 0.00167 - 15 0.00333 - 17 0.005 - 19 0.00167 - 21 0.015 - 24 0.01 - 26 0.0333 - 28 0.055 - 29 0.0433 - 30 0.0367 - 31 0.00833 - 32 0.0217 - 33 0.045 - 34 0.00167 - 37 0.00667 - 41 0.0767 - 42 0.00833 - 43 0.00167 - 45 0.00833 - 46 0.00167 - 47 0.0983 - - 31 594 25 0 - 0 0.0303 - 2 0.0354 - 4 0.00673 - 7 0.468 - 8 0.00168 - 9 0.00168 - 13 0.00842 - 14 0.00337 - 17 0.00337 - 19 0.00168 - 21 0.00673 - 22 0.00168 - 24 0.0118 - 26 0.0286 - 28 0.0724 - 29 0.0825 - 30 0.0488 - 31 0.0152 - 32 0.0168 - 33 0.0118 - 37 0.00673 - 41 0.0488 - 42 0.00842 - 45 0.00168 - 47 0.0774 - - 39 26 10 0 - 2 0.0769 - 7 0.5 - 13 0.0385 - 14 0.0385 - 21 0.0385 - 26 0.115 - 29 0.0769 - 30 0.0385 - 41 0.0385 - 47 0.0385 - - 44 28 10 0 - 0 0.0714 - 2 0.107 - 7 0.393 - 19 0.0357 - 21 0.0357 - 28 0.0357 - 30 0.0357 - 35 0.0357 - 41 0.0357 - 45 0.214 - - 45 444 26 0 - 0 0.0968 - 1 0.00901 - 2 0.0203 - 7 0.358 - 9 0.00225 - 13 0.027 - 14 0.0045 - 15 0.0113 - 16 0.00225 - 17 0.00676 - 19 0.0113 - 21 0.0158 - 24 0.0045 - 26 0.027 - 28 0.0676 - 29 0.0968 - 30 0.0495 - 31 0.045 - 32 0.00676 - 33 0.0518 - 37 0.00225 - 41 0.0293 - 42 0.0135 - 45 0.00225 - 46 0.00225 - 47 0.036 - - 47 2538 32 0 - 0 0.0303 - 2 0.0693 - 3 0.0146 - 4 0.00473 - 7 0.265 - 8 0.00197 - 10 0.000394 - 12 0.000394 - 13 0.00709 - 14 0.00512 - 15 0.00197 - 17 0.0106 - 19 0.0118 - 21 0.0296 - 24 0.00591 - 26 0.0209 - 28 0.0571 - 29 0.0201 - 30 0.0197 - 31 0.00906 - 32 0.0197 - 33 0.015 - 34 0.000394 - 35 0.00236 - 37 0.00591 - 41 0.0563 - 42 0.0146 - 43 0.00118 - 44 0.00355 - 45 0.0583 - 46 0.00197 - 47 0.235 - - 48 2419 31 0 - 0 0.0864 - 1 0.000413 - 2 0.0364 - 3 0.00165 - 4 0.000827 - 6 0.000413 - 7 0.329 - 8 0.00248 - 10 0.000827 - 12 0.000413 - 13 0.00537 - 14 0.000827 - 15 0.00661 - 17 0.000413 - 19 0.00331 - 21 0.0215 - 24 0.0103 - 26 0.0302 - 28 0.0566 - 29 0.127 - 30 0.0463 - 31 0.0265 - 32 0.012 - 33 0.0294 - 37 0.00248 - 41 0.0744 - 42 0.00951 - 43 0.000413 - 45 0.0112 - 46 0.000827 - 47 0.0661 - - 49 8 4 0 - 0 0.375 - 7 0.375 - 29 0.125 - 32 0.125 - - 54 240 13 0 - 0 0.0125 - 2 0.0125 - 7 0.292 - 13 0.00417 - 26 0.00833 - 28 0.00833 - 29 0.0208 - 30 0.0208 - 31 0.0167 - 33 0.0208 - 41 0.383 - 42 0.00417 - 47 0.196 - - 55 157 17 0 - 0 0.0318 - 2 0.00637 - 7 0.395 - 13 0.00637 - 19 0.00637 - 21 0.00637 - 24 0.0127 - 26 0.0318 - 28 0.0446 - 29 0.0637 - 30 0.0318 - 31 0.0318 - 32 0.00637 - 33 0.0318 - 34 0.00637 - 41 0.146 - 47 0.14 - - 56 123 14 0 - 0 0.065 - 2 0.0325 - 7 0.463 - 21 0.0244 - 26 0.0325 - 28 0.0732 - 30 0.0244 - 31 0.00813 - 32 0.0325 - 33 0.0244 - 41 0.114 - 42 0.0163 - 45 0.00813 - 47 0.0813 - - 58 10 6 0 - 0 0.1 - 7 0.4 - 28 0.1 - 29 0.1 - 45 0.2 - 47 0.1 - - 60 63 9 0 - 0 0.0476 - 2 0.0317 - 7 0.714 - 21 0.0159 - 26 0.0476 - 28 0.0952 - 29 0.0159 - 30 0.0159 - 41 0.0159 - - 68 43 11 0 - 0 0.0465 - 2 0.0233 - 4 0.0465 - 7 0.628 - 26 0.0465 - 28 0.0233 - 29 0.0233 - 30 0.0465 - 33 0.0465 - 41 0.0233 - 47 0.0465 - - 5 861 24 0 - 0 0.00581 - 2 0.0918 - 7 0.18 - 8 0.00465 - 10 0.00348 - 13 0.0186 - 14 0.00465 - 15 0.00232 - 16 0.00116 - 19 0.00232 - 21 0.029 - 28 0.0163 - 29 0.0395 - 30 0.00465 - 31 0.00232 - 32 0.0279 - 33 0.0151 - 34 0.00813 - 37 0.0267 - 41 0.143 - 42 0.00813 - 44 0.00232 - 45 0.167 - 47 0.195 - - 6 150 19 6 - 2 0.0133 - 3 0.00667 - 4 0.127 - 6 0.193 - 7 0.12 - 8 0.02 - 15 0.28 - 18 0.0133 - 19 0.00667 - 20 0.0133 - 25 0.0133 - 26 0.0133 - 28 0.0133 - 29 0.00667 - 32 0.00667 - 33 0.00667 - 41 0.0333 - 45 0.0667 - 47 0.0467 - - 6 29 12 0 - 2 0.0345 - 4 0.241 - 6 0.172 - 7 0.138 - 8 0.0345 - 15 0.0345 - 18 0.069 - 28 0.0345 - 29 0.0345 - 41 0.0345 - 45 0.069 - 47 0.103 - - 13 12 4 0 - 4 0.25 - 6 0.583 - 8 0.0833 - 15 0.0833 - - 14 7 3 0 - 3 0.143 - 6 0.714 - 7 0.143 - - 15 42 2 0 - 6 0.0476 - 15 0.952 - - 46 2 1 0 - 45 1 - - 47 53 14 0 - 2 0.0189 - 4 0.151 - 6 0.17 - 7 0.226 - 19 0.0189 - 20 0.0377 - 25 0.0377 - 26 0.0377 - 28 0.0189 - 32 0.0189 - 33 0.0189 - 41 0.0755 - 45 0.0943 - 47 0.0755 - - 7 318 24 10 - 0 0.044 - 2 0.0314 - 3 0.0157 - 4 0.00314 - 7 0.151 - 8 0.0126 - 10 0.00314 - 13 0.132 - 14 0.0975 - 15 0.0943 - 18 0.00314 - 21 0.0535 - 26 0.0283 - 28 0.0566 - 29 0.0409 - 30 0.022 - 31 0.022 - 32 0.00943 - 33 0.0252 - 35 0.00314 - 41 0.0472 - 42 0.00943 - 45 0.00943 - 47 0.0849 - - 3 47 13 0 - 0 0.0851 - 3 0.0638 - 7 0.468 - 13 0.0426 - 15 0.0213 - 21 0.0213 - 26 0.106 - 29 0.0213 - 30 0.0426 - 31 0.0213 - 41 0.0638 - 42 0.0213 - 47 0.0213 - - 4 30 11 0 - 0 0.167 - 7 0.233 - 15 0.1 - 21 0.1 - 26 0.0667 - 28 0.0333 - 31 0.0333 - 33 0.0667 - 41 0.1 - 45 0.0333 - 47 0.0667 - - 8 19 11 0 - 0 0.0526 - 4 0.0526 - 7 0.0526 - 8 0.0526 - 14 0.0526 - 21 0.105 - 26 0.0526 - 28 0.316 - 29 0.105 - 31 0.105 - 41 0.0526 - - 13 86 17 0 - 0 0.0116 - 2 0.0116 - 3 0.0116 - 7 0.0581 - 8 0.0233 - 10 0.0116 - 13 0.337 - 14 0.267 - 18 0.0116 - 21 0.0698 - 28 0.0116 - 29 0.0349 - 30 0.0116 - 32 0.0116 - 33 0.0233 - 41 0.0581 - 47 0.0349 - - 14 2 2 0 - 45 0.5 - 47 0.5 - - 15 49 8 0 - 7 0.0204 - 13 0.184 - 14 0.102 - 15 0.531 - 28 0.0204 - 30 0.0408 - 31 0.0612 - 47 0.0408 - - 21 3 2 0 - 2 0.333 - 28 0.667 - - 39 2 2 0 - 21 0.5 - 26 0.5 - - 47 67 17 0 - 0 0.0448 - 2 0.119 - 7 0.149 - 8 0.0149 - 13 0.0149 - 14 0.0149 - 21 0.0597 - 28 0.104 - 29 0.0746 - 30 0.0149 - 32 0.0299 - 33 0.0448 - 35 0.0149 - 41 0.0299 - 42 0.0149 - 45 0.0149 - 47 0.239 - - 55 6 5 0 - 7 0.333 - 13 0.167 - 14 0.167 - 41 0.167 - 42 0.167 - - 8 48850 43 29 - 0 0.0133 - 1 0.000184 - 2 0.0351 - 3 0.0255 - 4 0.357 - 6 0.000143 - 7 0.172 - 8 0.0864 - 9 0.00254 - 10 0.00328 - 12 6.14e-05 - 13 0.0137 - 14 0.00282 - 15 0.0132 - 16 0.000246 - 17 2.05e-05 - 18 0.0354 - 19 0.000676 - 20 0.0406 - 21 0.00948 - 22 0.00086 - 23 0.00102 - 24 0.00264 - 25 2.05e-05 - 26 0.0131 - 28 0.0268 - 29 0.0167 - 30 0.0198 - 31 0.0105 - 32 0.00571 - 33 0.0085 - 34 0.000655 - 35 0.000205 - 36 6.14e-05 - 37 0.00192 - 40 4.09e-05 - 41 0.0306 - 42 0.00268 - 43 0.000368 - 44 0.00086 - 45 0.0123 - 46 0.000512 - 47 0.0316 - - 2 152 23 0 - 0 0.00658 - 2 0.0132 - 3 0.0263 - 4 0.289 - 7 0.23 - 8 0.0395 - 9 0.00658 - 13 0.0132 - 15 0.0263 - 18 0.0263 - 20 0.0197 - 21 0.0132 - 24 0.00658 - 26 0.0263 - 28 0.0263 - 30 0.0197 - 32 0.0132 - 33 0.0197 - 41 0.0855 - 42 0.00658 - 44 0.00658 - 45 0.0526 - 47 0.0263 - - 3 710 19 0 - 0 0.00282 - 2 0.00282 - 3 0.00845 - 4 0.785 - 7 0.141 - 8 0.00282 - 14 0.00282 - 18 0.0183 - 20 0.0127 - 21 0.00141 - 26 0.00141 - 28 0.00282 - 29 0.00563 - 30 0.00282 - 32 0.00141 - 33 0.00141 - 41 0.00141 - 42 0.00282 - 45 0.00282 - - 4 67 13 0 - 0 0.134 - 2 0.0299 - 7 0.328 - 21 0.0597 - 24 0.0149 - 26 0.0149 - 28 0.164 - 29 0.0149 - 30 0.0597 - 37 0.0149 - 41 0.0299 - 45 0.0149 - 47 0.119 - - 6 2 2 0 - 3 0.5 - 8 0.5 - - 8 3996 36 0 - 0 0.0133 - 1 0.000501 - 2 0.0511 - 3 0.0198 - 4 0.362 - 7 0.183 - 8 0.0568 - 9 0.00025 - 10 0.0015 - 13 0.00701 - 14 0.000501 - 15 0.00475 - 18 0.0455 - 19 0.001 - 20 0.048 - 21 0.00551 - 22 0.000751 - 23 0.00025 - 24 0.00375 - 26 0.00976 - 28 0.0263 - 29 0.0235 - 30 0.0205 - 31 0.00826 - 32 0.00676 - 33 0.00826 - 35 0.000501 - 37 0.00225 - 40 0.00025 - 41 0.04 - 42 0.00601 - 43 0.000501 - 44 0.000501 - 45 0.01 - 46 0.00025 - 47 0.0313 - - 9 12 8 0 - 0 0.0833 - 2 0.0833 - 4 0.417 - 7 0.0833 - 18 0.0833 - 31 0.0833 - 45 0.0833 - 47 0.0833 - - 10 7 3 0 - 4 0.429 - 7 0.143 - 18 0.429 - - 13 26070 40 0 - 0 0.011 - 1 0.000153 - 2 0.024 - 3 0.0157 - 4 0.465 - 6 0.000192 - 7 0.112 - 8 0.0908 - 9 0.00226 - 10 0.00315 - 13 0.0171 - 14 0.00345 - 15 0.0185 - 16 0.000345 - 18 0.043 - 19 0.000575 - 20 0.0436 - 21 0.00832 - 22 0.000921 - 23 0.000806 - 24 0.00146 - 25 3.84e-05 - 26 0.00809 - 28 0.0181 - 29 0.0136 - 30 0.0134 - 31 0.00951 - 32 0.00326 - 33 0.0061 - 34 0.000614 - 35 0.000115 - 36 7.67e-05 - 37 0.00119 - 41 0.0252 - 42 0.00153 - 43 0.000422 - 44 0.000959 - 45 0.0114 - 46 0.00046 - 47 0.0233 - - 14 13431 41 0 - 0 0.0187 - 1 0.000223 - 2 0.0561 - 3 0.0497 - 4 0.12 - 6 0.000149 - 7 0.281 - 8 0.11 - 9 0.00439 - 10 0.00499 - 12 0.000223 - 13 0.00864 - 14 0.00127 - 15 0.00849 - 16 0.000149 - 18 0.0237 - 19 0.00067 - 20 0.0344 - 21 0.00834 - 22 0.000968 - 23 0.00119 - 24 0.00499 - 26 0.0237 - 28 0.0472 - 29 0.0201 - 30 0.0331 - 31 0.0135 - 32 0.0108 - 33 0.0134 - 34 0.000968 - 35 0.000298 - 36 7.45e-05 - 37 0.00328 - 40 7.45e-05 - 41 0.0369 - 42 0.00335 - 43 0.000298 - 44 0.00067 - 45 0.00752 - 46 0.000819 - 47 0.0462 - - 15 1891 29 0 - 0 0.00635 - 2 0.0212 - 3 0.028 - 4 0.366 - 7 0.24 - 8 0.0317 - 9 0.00159 - 10 0.000529 - 13 0.027 - 14 0.0111 - 15 0.01 - 18 0.0296 - 19 0.000529 - 20 0.0317 - 21 0.00687 - 24 0.000529 - 26 0.0169 - 28 0.0164 - 29 0.0196 - 30 0.0206 - 31 0.0169 - 32 0.00212 - 33 0.0074 - 37 0.00106 - 41 0.0365 - 42 0.0037 - 45 0.0037 - 46 0.000529 - 47 0.0418 - - 16 101 21 0 - 2 0.0594 - 3 0.0396 - 4 0.168 - 7 0.277 - 8 0.0396 - 10 0.0099 - 13 0.0297 - 15 0.0198 - 20 0.0396 - 21 0.0099 - 26 0.0297 - 28 0.0198 - 29 0.0099 - 30 0.0297 - 31 0.0198 - 32 0.0099 - 33 0.0198 - 41 0.0495 - 42 0.0198 - 45 0.0099 - 47 0.0891 - - 18 12 5 0 - 4 0.583 - 7 0.0833 - 8 0.0833 - 13 0.167 - 47 0.0833 - - 21 3 3 0 - 2 0.333 - 4 0.333 - 15 0.333 - - 30 120 24 0 - 0 0.00833 - 2 0.158 - 3 0.0333 - 4 0.267 - 7 0.15 - 8 0.0333 - 10 0.00833 - 13 0.00833 - 14 0.00833 - 15 0.00833 - 18 0.05 - 20 0.05 - 21 0.0167 - 24 0.00833 - 26 0.0167 - 28 0.0333 - 29 0.00833 - 30 0.0333 - 31 0.00833 - 32 0.00833 - 33 0.025 - 41 0.025 - 45 0.00833 - 47 0.025 - - 31 89 15 0 - 0 0.0225 - 2 0.0112 - 3 0.0112 - 4 0.258 - 7 0.247 - 8 0.124 - 13 0.0674 - 15 0.0337 - 18 0.0562 - 20 0.0337 - 21 0.0112 - 28 0.0225 - 29 0.0449 - 30 0.0337 - 47 0.0225 - - 39 13 2 0 - 4 0.923 - 19 0.0769 - - 41 312 24 0 - 0 0.0128 - 2 0.00962 - 3 0.00641 - 4 0.471 - 7 0.17 - 8 0.0417 - 15 0.00321 - 18 0.00641 - 20 0.0577 - 21 0.00641 - 23 0.00321 - 24 0.00321 - 26 0.0128 - 28 0.0128 - 29 0.00641 - 30 0.00962 - 31 0.00321 - 32 0.00962 - 33 0.016 - 34 0.00321 - 41 0.0641 - 42 0.00641 - 45 0.0192 - 47 0.0449 - - 43 3 3 0 - 2 0.333 - 4 0.333 - 44 0.333 - - 44 7 5 0 - 2 0.143 - 4 0.286 - 7 0.286 - 21 0.143 - 29 0.143 - - 45 95 14 0 - 0 0.0105 - 2 0.0211 - 3 0.0105 - 4 0.537 - 7 0.147 - 8 0.0526 - 13 0.0105 - 18 0.0316 - 20 0.0421 - 28 0.0421 - 30 0.0211 - 31 0.0105 - 41 0.0526 - 47 0.0105 - - 46 136 9 0 - 2 0.00735 - 4 0.00735 - 8 0.0221 - 16 0.00735 - 19 0.00735 - 20 0.00735 - 21 0.0147 - 41 0.0147 - 45 0.912 - - 47 1224 33 0 - 0 0.018 - 2 0.0359 - 3 0.0098 - 4 0.393 - 7 0.151 - 8 0.0237 - 9 0.000817 - 10 0.00163 - 13 0.0106 - 14 0.00408 - 18 0.000817 - 19 0.00163 - 20 0.0474 - 21 0.0637 - 22 0.00163 - 23 0.00817 - 24 0.00163 - 26 0.0147 - 28 0.0221 - 29 0.0327 - 30 0.0163 - 31 0.00817 - 32 0.00654 - 33 0.0106 - 34 0.00163 - 35 0.000817 - 37 0.0049 - 41 0.0408 - 42 0.00572 - 43 0.000817 - 44 0.00327 - 45 0.00654 - 47 0.0507 - - 48 199 22 0 - 0 0.0101 - 2 0.0201 - 3 0.00503 - 4 0.533 - 7 0.121 - 8 0.0452 - 17 0.00503 - 18 0.0653 - 20 0.0704 - 21 0.0151 - 23 0.00503 - 24 0.00503 - 26 0.00503 - 28 0.0101 - 30 0.0151 - 31 0.00503 - 32 0.0101 - 33 0.00503 - 41 0.0201 - 42 0.00503 - 45 0.00503 - 47 0.0201 - - 54 13 5 0 - 4 0.385 - 7 0.308 - 8 0.154 - 20 0.0769 - 29 0.0769 - - 55 22 9 0 - 2 0.0455 - 3 0.0455 - 4 0.455 - 7 0.0909 - 8 0.0455 - 18 0.0909 - 20 0.0909 - 21 0.0909 - 30 0.0455 - - 56 68 12 0 - 2 0.0147 - 3 0.0294 - 4 0.309 - 7 0.221 - 8 0.0441 - 20 0.0882 - 26 0.0441 - 28 0.0735 - 29 0.0294 - 30 0.0441 - 31 0.0294 - 41 0.0735 - - 58 17 5 0 - 0 0.118 - 4 0.588 - 7 0.176 - 24 0.0588 - 33 0.0588 - - 60 30 3 0 - 4 0.9 - 7 0.0333 - 20 0.0667 - - 68 40 12 0 - 2 0.025 - 4 0.475 - 7 0.15 - 8 0.025 - 20 0.025 - 26 0.05 - 28 0.075 - 29 0.025 - 30 0.025 - 37 0.025 - 41 0.05 - 47 0.05 - - 9 1597 31 14 - 0 0.0601 - 1 0.00125 - 2 0.0507 - 3 0.015 - 4 0.249 - 7 0.193 - 8 0.0106 - 12 0.000626 - 13 0.0025 - 14 0.00689 - 15 0.0025 - 16 0.000626 - 18 0.0113 - 19 0.0025 - 20 0.0144 - 21 0.0244 - 24 0.00626 - 26 0.0288 - 28 0.102 - 29 0.0394 - 30 0.0557 - 31 0.01 - 32 0.0276 - 33 0.0244 - 34 0.000626 - 37 0.000626 - 41 0.025 - 42 0.00313 - 43 0.000626 - 45 0.01 - 47 0.02 - - 2 4 4 0 - 0 0.25 - 7 0.25 - 28 0.25 - 41 0.25 - - 3 5 1 0 - 4 1 - - 8 103 16 0 - 0 0.0291 - 2 0.117 - 4 0.214 - 7 0.243 - 21 0.0194 - 24 0.00971 - 26 0.0777 - 28 0.0485 - 29 0.0583 - 30 0.0485 - 31 0.0194 - 32 0.0291 - 33 0.0194 - 41 0.0291 - 45 0.0194 - 47 0.0194 - - 13 734 28 0 - 0 0.0436 - 1 0.00136 - 2 0.0354 - 3 0.0109 - 4 0.384 - 7 0.147 - 8 0.00954 - 12 0.00136 - 13 0.00136 - 14 0.00817 - 15 0.00545 - 16 0.00136 - 18 0.0177 - 19 0.00545 - 20 0.0123 - 21 0.0123 - 24 0.0109 - 26 0.03 - 28 0.0858 - 29 0.0245 - 30 0.045 - 31 0.00545 - 32 0.0232 - 33 0.0204 - 41 0.0327 - 42 0.00545 - 45 0.00545 - 47 0.0136 - - 14 473 26 0 - 0 0.0402 - 2 0.0465 - 3 0.0275 - 4 0.0867 - 7 0.296 - 8 0.0148 - 13 0.00211 - 14 0.00423 - 18 0.0106 - 20 0.0169 - 21 0.0127 - 24 0.00211 - 26 0.0317 - 28 0.123 - 29 0.0613 - 30 0.0677 - 31 0.00846 - 32 0.0317 - 33 0.0296 - 34 0.00211 - 37 0.00211 - 41 0.0233 - 42 0.00211 - 43 0.00211 - 45 0.0148 - 47 0.0402 - - 15 39 8 0 - 2 0.0513 - 4 0.513 - 7 0.154 - 20 0.0513 - 28 0.103 - 29 0.0256 - 30 0.0769 - 41 0.0256 - - 16 2 2 0 - 8 0.5 - 29 0.5 - - 30 2 2 0 - 2 0.5 - 26 0.5 - - 41 17 7 0 - 4 0.471 - 7 0.235 - 20 0.0588 - 30 0.0588 - 31 0.0588 - 32 0.0588 - 33 0.0588 - - 45 3 3 0 - 0 0.333 - 4 0.333 - 33 0.333 - - 46 1 1 0 - 45 1 - - 47 201 18 0 - 0 0.194 - 1 0.00498 - 2 0.0896 - 3 0.0149 - 4 0.0746 - 7 0.109 - 8 0.00995 - 13 0.00995 - 14 0.0149 - 20 0.00498 - 21 0.109 - 28 0.154 - 29 0.0398 - 30 0.0647 - 31 0.0249 - 32 0.0398 - 33 0.0299 - 45 0.00995 - - 48 4 3 0 - 4 0.25 - 7 0.25 - 20 0.5 - - 56 5 4 0 - 7 0.2 - 28 0.2 - 30 0.4 - 47 0.2 - - 10 1526 27 9 - 0 0.00197 - 2 0.0262 - 3 0.019 - 4 0.479 - 7 0.106 - 8 0.00524 - 13 0.00262 - 14 0.000655 - 18 0.132 - 19 0.000655 - 20 0.0511 - 21 0.0059 - 24 0.00459 - 26 0.00328 - 28 0.0105 - 29 0.0151 - 30 0.00655 - 31 0.00262 - 32 0.00328 - 33 0.00721 - 34 0.00131 - 35 0.00131 - 37 0.00262 - 41 0.0256 - 42 0.00262 - 45 0.0177 - 47 0.0655 - - 3 13 2 0 - 4 0.923 - 7 0.0769 - - 8 156 15 0 - 2 0.0128 - 3 0.0449 - 4 0.429 - 7 0.147 - 8 0.00641 - 18 0.154 - 20 0.0897 - 21 0.00641 - 28 0.00641 - 29 0.00641 - 35 0.00641 - 41 0.0192 - 42 0.00641 - 45 0.0321 - 47 0.0321 - - 13 661 14 0 - 2 0.00756 - 3 0.0121 - 4 0.632 - 7 0.0242 - 8 0.00756 - 13 0.00151 - 18 0.219 - 19 0.00151 - 20 0.059 - 28 0.00151 - 33 0.00151 - 37 0.00151 - 41 0.00756 - 47 0.0227 - - 14 291 20 0 - 2 0.0447 - 3 0.0412 - 4 0.316 - 7 0.22 - 8 0.00687 - 13 0.00344 - 14 0.00344 - 18 0.0962 - 20 0.0481 - 21 0.00687 - 26 0.00687 - 29 0.00687 - 33 0.0103 - 34 0.00344 - 35 0.00344 - 37 0.00344 - 41 0.055 - 42 0.00344 - 45 0.0447 - 47 0.0756 - - 15 19 9 0 - 2 0.0526 - 3 0.0526 - 4 0.211 - 7 0.263 - 26 0.0526 - 28 0.0526 - 33 0.105 - 41 0.0526 - 47 0.158 - - 16 3 3 0 - 4 0.333 - 7 0.333 - 32 0.333 - - 31 3 3 0 - 3 0.333 - 18 0.333 - 20 0.333 - - 47 359 21 0 - 0 0.00836 - 2 0.0501 - 4 0.351 - 7 0.139 - 13 0.00557 - 20 0.0279 - 21 0.0167 - 24 0.0195 - 26 0.00557 - 28 0.0362 - 29 0.0557 - 30 0.0279 - 31 0.00836 - 32 0.0111 - 33 0.0139 - 34 0.00279 - 37 0.00279 - 41 0.039 - 42 0.00557 - 45 0.0195 - 47 0.153 - - 56 3 3 0 - 4 0.333 - 31 0.333 - 37 0.333 - - 12 5 4 0 - 4 0.4 - 15 0.2 - 45 0.2 - 46 0.2 - - 13 129892 43 24 - 0 0.0054 - 1 0.000123 - 2 0.0201 - 3 0.0473 - 4 0.298 - 6 0.000123 - 7 0.0813 - 8 0.21 - 9 0.00684 - 10 0.00527 - 12 3.85e-05 - 13 0.123 - 14 0.0094 - 15 0.0406 - 16 0.000762 - 18 0.0276 - 19 0.000362 - 20 0.0287 - 21 0.00234 - 22 5.39e-05 - 23 7.7e-06 - 24 0.000993 - 25 1.54e-05 - 26 0.0052 - 27 1.54e-05 - 28 0.0115 - 29 0.00598 - 30 0.0138 - 31 0.00949 - 32 0.00208 - 33 0.00347 - 34 0.000223 - 35 0.000108 - 36 1.54e-05 - 37 0.000908 - 40 0.0001 - 41 0.0179 - 42 0.00142 - 43 0.000508 - 44 0.000608 - 45 0.00449 - 46 0.00184 - 47 0.0122 - - 2 1627 31 0 - 0 0.0086 - 2 0.0172 - 3 0.00738 - 4 0.189 - 7 0.205 - 8 0.144 - 9 0.00553 - 10 0.00246 - 13 0.0688 - 14 0.00738 - 15 0.0277 - 16 0.00123 - 18 0.0332 - 20 0.0424 - 21 0.00307 - 24 0.00123 - 26 0.0117 - 28 0.0203 - 29 0.0086 - 30 0.0178 - 31 0.0135 - 32 0.00246 - 33 0.00676 - 37 0.000615 - 41 0.119 - 42 0.0043 - 43 0.00123 - 44 0.00123 - 45 0.00615 - 46 0.000615 - 47 0.0209 - - 3 92 11 0 - 3 0.0217 - 4 0.478 - 7 0.174 - 8 0.0435 - 13 0.0217 - 15 0.0109 - 18 0.163 - 20 0.0217 - 30 0.0109 - 41 0.0435 - 45 0.0109 - - 4 1 1 0 - 31 1 - - 8 268 24 0 - 0 0.00373 - 2 0.123 - 3 0.0336 - 4 0.243 - 7 0.127 - 8 0.097 - 9 0.00373 - 10 0.0112 - 13 0.104 - 14 0.00373 - 15 0.0373 - 18 0.0672 - 20 0.0299 - 26 0.00746 - 28 0.0187 - 29 0.0149 - 30 0.0149 - 31 0.00373 - 33 0.00373 - 37 0.00373 - 41 0.0261 - 42 0.00373 - 45 0.00746 - 47 0.0112 - - 10 1 1 0 - 45 1 - - 13 15006 38 0 - 0 0.004 - 1 0.0002 - 2 0.0364 - 3 0.0287 - 4 0.304 - 6 0.000267 - 7 0.0826 - 8 0.211 - 9 0.00553 - 10 0.0072 - 13 0.0804 - 14 0.00653 - 15 0.0508 - 16 0.0004 - 18 0.0394 - 19 0.0002 - 20 0.0337 - 21 0.00187 - 22 6.66e-05 - 24 0.0008 - 25 0.000133 - 26 0.00433 - 28 0.0114 - 29 0.00513 - 30 0.0114 - 31 0.011 - 32 0.0022 - 33 0.0046 - 35 0.0002 - 37 0.001 - 40 0.0004 - 41 0.028 - 42 0.00233 - 43 0.0006 - 44 0.000666 - 45 0.0076 - 46 0.0016 - 47 0.0133 - - 14 9907 35 0 - 0 0.00757 - 2 0.0784 - 3 0.0262 - 4 0.0705 - 7 0.178 - 8 0.229 - 9 0.0139 - 10 0.00737 - 13 0.0728 - 14 0.00262 - 15 0.0373 - 16 0.000101 - 18 0.0196 - 19 0.000303 - 20 0.0263 - 21 0.00313 - 23 0.000101 - 24 0.00444 - 26 0.0146 - 28 0.0333 - 29 0.013 - 30 0.028 - 31 0.0133 - 32 0.00616 - 33 0.0125 - 34 0.000808 - 35 0.000202 - 37 0.00384 - 41 0.0365 - 42 0.00303 - 43 0.000202 - 44 0.000505 - 45 0.00757 - 46 0.00212 - 47 0.0461 - - 15 788 27 0 - 0 0.00635 - 2 0.0127 - 3 0.0178 - 4 0.0787 - 7 0.085 - 8 0.184 - 13 0.221 - 14 0.0127 - 15 0.225 - 16 0.0152 - 18 0.0127 - 20 0.019 - 24 0.00127 - 26 0.00888 - 28 0.00381 - 29 0.0114 - 30 0.00888 - 31 0.00381 - 33 0.014 - 35 0.00127 - 37 0.00254 - 41 0.0292 - 42 0.00127 - 44 0.00254 - 45 0.00381 - 46 0.00254 - 47 0.0152 - - 16 9 7 0 - 2 0.222 - 4 0.222 - 7 0.111 - 13 0.111 - 14 0.111 - 15 0.111 - 20 0.111 - - 18 2901 26 0 - 0 0.00103 - 2 0.00483 - 3 0.00345 - 4 0.694 - 7 0.0476 - 8 0.0958 - 9 0.00276 - 10 0.00207 - 13 0.0589 - 14 0.00414 - 15 0.0269 - 19 0.000345 - 20 0.0203 - 21 0.000689 - 26 0.00483 - 28 0.00172 - 29 0.0031 - 30 0.00552 - 31 0.00172 - 32 0.00138 - 33 0.00138 - 41 0.00276 - 42 0.000345 - 44 0.000345 - 45 0.000689 - 47 0.0138 - - 20 2 2 0 - 7 0.5 - 26 0.5 - - 21 3 3 0 - 2 0.333 - 7 0.333 - 21 0.333 - - 26 2 2 0 - 3 0.5 - 29 0.5 - - 29 11 5 0 - 3 0.273 - 4 0.0909 - 7 0.0909 - 8 0.273 - 13 0.273 - - 30 102 12 0 - 2 0.186 - 4 0.412 - 7 0.0392 - 8 0.118 - 10 0.0294 - 13 0.0588 - 15 0.0392 - 18 0.0392 - 20 0.0196 - 31 0.0196 - 41 0.0294 - 45 0.0098 - - 31 13 5 0 - 7 0.538 - 8 0.154 - 13 0.0769 - 15 0.154 - 41 0.0769 - - 41 247 24 0 - 0 0.00405 - 2 0.0162 - 4 0.19 - 7 0.243 - 8 0.0729 - 9 0.00405 - 10 0.00405 - 13 0.0567 - 15 0.00405 - 18 0.0162 - 20 0.0364 - 21 0.00405 - 26 0.0162 - 28 0.0121 - 29 0.0121 - 30 0.0202 - 31 0.0162 - 32 0.00405 - 33 0.0202 - 41 0.174 - 42 0.0162 - 44 0.00405 - 45 0.0202 - 47 0.0324 - - 42 4 2 0 - 4 0.5 - 7 0.5 - - 43 15 3 0 - 2 0.0667 - 8 0.2 - 44 0.733 - - 45 36 10 0 - 2 0.0556 - 3 0.0556 - 4 0.389 - 7 0.25 - 8 0.111 - 15 0.0278 - 26 0.0278 - 30 0.0278 - 42 0.0278 - 47 0.0278 - - 46 101 7 0 - 4 0.0198 - 7 0.0099 - 8 0.307 - 13 0.119 - 15 0.0099 - 20 0.0198 - 45 0.515 - - 47 98717 41 0 - 0 0.0055 - 1 0.000132 - 2 0.0119 - 3 0.0547 - 4 0.312 - 6 0.000122 - 7 0.0697 - 8 0.213 - 9 0.00656 - 10 0.00492 - 12 5.06e-05 - 13 0.137 - 14 0.0107 - 15 0.0387 - 16 0.00079 - 18 0.0272 - 19 0.000405 - 20 0.0283 - 21 0.00239 - 22 6.08e-05 - 24 0.000709 - 26 0.00422 - 27 2.03e-05 - 28 0.00951 - 29 0.00538 - 30 0.013 - 31 0.0091 - 32 0.00169 - 33 0.00229 - 34 0.000213 - 35 8.1e-05 - 36 2.03e-05 - 37 0.000618 - 40 7.09e-05 - 41 0.0127 - 42 0.00106 - 43 0.000537 - 44 0.000476 - 45 0.00321 - 46 0.00193 - 47 0.00844 - - 48 12 4 0 - 4 0.667 - 7 0.0833 - 18 0.167 - 47 0.0833 - - 58 9 5 0 - 2 0.111 - 8 0.222 - 13 0.333 - 14 0.222 - 20 0.111 - - 14 59133 41 12 - 0 0.00551 - 1 8.46e-05 - 2 0.028 - 3 0.0954 - 4 0.101 - 6 0.000135 - 7 0.098 - 8 0.238 - 9 0.00913 - 10 0.00495 - 12 6.76e-05 - 13 0.172 - 14 0.0106 - 15 0.0368 - 16 0.000507 - 18 0.019 - 19 0.000287 - 20 0.0275 - 21 0.00211 - 22 1.69e-05 - 23 3.38e-05 - 24 0.00215 - 26 0.00883 - 28 0.0216 - 29 0.0107 - 30 0.0221 - 31 0.0124 - 32 0.00499 - 33 0.00504 - 34 0.00093 - 35 0.000237 - 36 3.38e-05 - 37 0.00277 - 40 6.76e-05 - 41 0.0213 - 42 0.00235 - 43 0.000541 - 44 0.000321 - 45 0.00424 - 46 0.00194 - 47 0.0282 - - 2 995 29 0 - 0 0.00603 - 2 0.0101 - 3 0.0141 - 4 0.112 - 7 0.22 - 8 0.166 - 9 0.0111 - 10 0.00503 - 13 0.112 - 14 0.00101 - 15 0.0211 - 18 0.0221 - 19 0.00101 - 20 0.0332 - 21 0.00402 - 24 0.00302 - 26 0.0121 - 28 0.0322 - 29 0.00503 - 30 0.0251 - 31 0.0121 - 32 0.00704 - 33 0.00603 - 35 0.00101 - 37 0.00201 - 41 0.109 - 42 0.00201 - 46 0.00201 - 47 0.0442 - - 7 1 1 0 - 21 1 - - 8 4 4 0 - 10 0.25 - 15 0.25 - 31 0.25 - 47 0.25 - - 13 1104 26 0 - 0 0.000906 - 2 0.0435 - 3 0.0154 - 4 0.302 - 7 0.0462 - 8 0.232 - 9 0.00181 - 10 0.00543 - 13 0.137 - 14 0.00996 - 15 0.067 - 18 0.0362 - 20 0.0272 - 21 0.000906 - 26 0.00181 - 28 0.00634 - 29 0.00181 - 30 0.00453 - 31 0.0127 - 33 0.00362 - 40 0.000906 - 41 0.0317 - 42 0.00181 - 44 0.000906 - 45 0.00272 - 47 0.00634 - - 14 561 28 0 - 0 0.00891 - 1 0.00178 - 2 0.082 - 3 0.0321 - 4 0.0731 - 7 0.152 - 8 0.225 - 9 0.00535 - 10 0.0125 - 13 0.0927 - 14 0.00891 - 15 0.0392 - 16 0.00178 - 18 0.0232 - 20 0.0214 - 21 0.00178 - 26 0.016 - 28 0.0107 - 29 0.0214 - 30 0.025 - 31 0.016 - 32 0.0125 - 33 0.00713 - 37 0.00535 - 41 0.0232 - 42 0.00891 - 45 0.00535 - 47 0.0677 - - 15 46 14 0 - 2 0.087 - 4 0.0652 - 7 0.174 - 8 0.0652 - 13 0.152 - 14 0.0217 - 15 0.217 - 24 0.0217 - 26 0.0217 - 30 0.0217 - 34 0.0217 - 37 0.0217 - 41 0.0435 - 47 0.0652 - - 18 545 28 0 - 0 0.00183 - 2 0.0183 - 3 0.0312 - 4 0.27 - 7 0.196 - 8 0.128 - 10 0.00734 - 13 0.0569 - 14 0.00917 - 15 0.0404 - 18 0.00734 - 20 0.0514 - 21 0.00183 - 24 0.00183 - 26 0.0202 - 28 0.0422 - 29 0.0183 - 30 0.0239 - 31 0.0147 - 32 0.00183 - 33 0.011 - 34 0.00183 - 37 0.0055 - 41 0.011 - 42 0.0055 - 45 0.00734 - 46 0.00183 - 47 0.0128 - - 21 2 2 0 - 7 0.5 - 45 0.5 - - 30 5 3 0 - 3 0.2 - 13 0.4 - 28 0.4 - - 41 126 20 0 - 3 0.00794 - 4 0.0794 - 7 0.23 - 8 0.0714 - 13 0.0952 - 14 0.00794 - 15 0.0159 - 18 0.0317 - 20 0.0397 - 21 0.00794 - 26 0.0159 - 28 0.0159 - 29 0.0159 - 30 0.0397 - 32 0.0159 - 33 0.00794 - 41 0.238 - 42 0.0317 - 45 0.0159 - 47 0.0159 - - 46 7 3 0 - 8 0.286 - 14 0.143 - 45 0.571 - - 47 55733 41 0 - 0 0.00562 - 1 7.18e-05 - 2 0.0276 - 3 0.1 - 4 0.0954 - 6 0.000144 - 7 0.095 - 8 0.241 - 9 0.0094 - 10 0.00484 - 12 7.18e-05 - 13 0.176 - 14 0.0108 - 15 0.0363 - 16 0.00052 - 18 0.0186 - 19 0.000287 - 20 0.0273 - 21 0.00208 - 22 1.79e-05 - 23 3.59e-05 - 24 0.00219 - 26 0.0087 - 28 0.0216 - 29 0.0108 - 30 0.0223 - 31 0.0124 - 32 0.00499 - 33 0.00497 - 34 0.000951 - 35 0.000233 - 36 3.59e-05 - 37 0.00278 - 40 5.38e-05 - 41 0.0191 - 42 0.00221 - 43 0.000574 - 44 0.000323 - 45 0.0042 - 46 0.00201 - 47 0.0281 - - 15 90066 40 28 - 0 0.00298 - 1 4.44e-05 - 2 0.0414 - 3 0.00516 - 4 0.0969 - 6 0.000544 - 7 0.163 - 8 0.0247 - 9 0.000611 - 10 0.000244 - 12 7.77e-05 - 13 0.0143 - 14 0.00192 - 15 0.379 - 16 0.00816 - 18 0.00975 - 19 0.000155 - 20 0.0042 - 21 0.00236 - 24 0.000744 - 25 2.22e-05 - 26 0.0111 - 28 0.00883 - 29 0.0172 - 30 0.00653 - 31 0.0057 - 32 0.00205 - 33 0.0132 - 34 0.00101 - 35 0.000489 - 36 2.22e-05 - 37 0.00244 - 40 0.000644 - 41 0.0659 - 42 0.00489 - 43 0.000533 - 44 0.00461 - 45 0.00521 - 46 0.00472 - 47 0.0883 - - 0 7 5 0 - 4 0.143 - 7 0.429 - 8 0.143 - 41 0.143 - 47 0.143 - - 2 1783 31 0 - 0 0.00112 - 2 0.0202 - 3 0.00449 - 4 0.0892 - 6 0.000561 - 7 0.192 - 8 0.0135 - 13 0.00953 - 14 0.0101 - 15 0.306 - 16 0.0107 - 18 0.0129 - 20 0.00449 - 21 0.00112 - 24 0.00224 - 26 0.0107 - 28 0.00729 - 29 0.00897 - 30 0.00897 - 31 0.00168 - 32 0.000561 - 33 0.0028 - 34 0.000561 - 37 0.00112 - 40 0.00449 - 41 0.183 - 42 0.00449 - 44 0.0028 - 45 0.00393 - 46 0.000561 - 47 0.0802 - - 3 170 13 0 - 2 0.0118 - 3 0.0235 - 4 0.494 - 7 0.118 - 8 0.0471 - 15 0.0529 - 18 0.0706 - 20 0.129 - 28 0.0118 - 33 0.00588 - 41 0.0176 - 45 0.00588 - 47 0.0118 - - 4 9 5 0 - 0 0.111 - 2 0.111 - 7 0.222 - 15 0.444 - 45 0.111 - - 6 42 14 0 - 0 0.0238 - 2 0.0238 - 4 0.0476 - 6 0.0714 - 7 0.0952 - 8 0.0476 - 13 0.0238 - 15 0.357 - 26 0.0238 - 30 0.0238 - 33 0.0476 - 40 0.0476 - 41 0.0476 - 47 0.119 - - 7 26 10 0 - 4 0.0769 - 7 0.0769 - 13 0.0385 - 14 0.0385 - 15 0.385 - 18 0.0385 - 26 0.0385 - 41 0.154 - 45 0.115 - 47 0.0385 - - 8 530 25 0 - 0 0.00189 - 2 0.0226 - 3 0.0245 - 4 0.219 - 7 0.117 - 8 0.0528 - 9 0.00377 - 10 0.00377 - 13 0.017 - 15 0.408 - 18 0.00566 - 20 0.0151 - 26 0.00189 - 28 0.00377 - 29 0.00755 - 30 0.00755 - 31 0.00566 - 32 0.00189 - 33 0.00566 - 34 0.00189 - 37 0.00189 - 41 0.0283 - 44 0.00189 - 45 0.00189 - 47 0.0396 - - 13 5143 34 0 - 0 0.00136 - 2 0.0212 - 3 0.0148 - 4 0.396 - 6 0.000194 - 7 0.0609 - 8 0.0791 - 9 0.00331 - 10 0.000972 - 13 0.00719 - 14 0.000778 - 15 0.278 - 16 0.00486 - 18 0.0282 - 19 0.000583 - 20 0.0249 - 21 0.00156 - 24 0.000583 - 26 0.0035 - 28 0.00681 - 29 0.00506 - 30 0.00817 - 31 0.00564 - 32 0.00156 - 33 0.00506 - 37 0.00117 - 40 0.000583 - 41 0.0124 - 42 0.00117 - 43 0.000194 - 44 0.00117 - 45 0.00136 - 46 0.000194 - 47 0.021 - - 14 2150 33 0 - 0 0.00465 - 2 0.0488 - 3 0.0512 - 4 0.107 - 7 0.158 - 8 0.0963 - 9 0.00884 - 10 0.00279 - 13 0.00186 - 14 0.00093 - 15 0.25 - 16 0.00186 - 18 0.00837 - 20 0.0163 - 21 0.00279 - 24 0.00186 - 26 0.0223 - 28 0.0219 - 29 0.0107 - 30 0.0163 - 31 0.00744 - 32 0.00279 - 33 0.00651 - 34 0.00093 - 36 0.000465 - 37 0.0014 - 41 0.047 - 42 0.00279 - 43 0.00093 - 44 0.0014 - 45 0.00233 - 46 0.00093 - 47 0.093 - - 15 33917 38 0 - 0 0.00433 - 1 2.95e-05 - 2 0.0472 - 3 0.00448 - 4 0.102 - 6 0.000383 - 7 0.168 - 8 0.0195 - 9 0.000206 - 10 0.000236 - 12 5.9e-05 - 13 0.0196 - 14 0.00162 - 15 0.265 - 16 0.00363 - 18 0.0144 - 19 0.000147 - 20 0.00419 - 21 0.00242 - 24 0.000885 - 26 0.0134 - 28 0.00867 - 29 0.0286 - 30 0.00678 - 31 0.00436 - 32 0.00236 - 33 0.0287 - 34 0.00115 - 35 0.000649 - 37 0.00327 - 40 0.000472 - 41 0.0754 - 42 0.00669 - 43 0.000118 - 44 0.00313 - 45 0.00566 - 46 0.0108 - 47 0.142 - - 16 1508 30 0 - 0 0.00265 - 2 0.059 - 3 0.0106 - 4 0.115 - 7 0.208 - 8 0.0232 - 13 0.00464 - 14 0.00133 - 15 0.273 - 16 0.00133 - 18 0.0199 - 20 0.00862 - 21 0.000663 - 24 0.00133 - 25 0.000663 - 26 0.00995 - 28 0.00597 - 29 0.00995 - 30 0.00862 - 31 0.00464 - 33 0.00597 - 34 0.000663 - 35 0.000663 - 37 0.00133 - 41 0.0603 - 42 0.0179 - 43 0.000663 - 44 0.000663 - 45 0.00663 - 47 0.137 - - 18 5065 34 0 - 0 0.0101 - 2 0.0369 - 3 0.00118 - 4 0.0539 - 7 0.243 - 8 0.00967 - 9 0.000197 - 13 0.00296 - 14 0.00079 - 15 0.351 - 16 0.00415 - 18 0.00079 - 19 0.000197 - 20 0.000592 - 21 0.00494 - 24 0.00257 - 26 0.017 - 28 0.0265 - 29 0.0186 - 30 0.0128 - 31 0.00731 - 32 0.00592 - 33 0.0113 - 34 0.000592 - 35 0.000395 - 36 0.000197 - 37 0.00138 - 41 0.0661 - 42 0.00415 - 43 0.000197 - 44 0.00118 - 45 0.00395 - 46 0.00237 - 47 0.0971 - - 19 6 3 0 - 7 0.333 - 15 0.5 - 45 0.167 - - 21 4 1 0 - 47 1 - - 29 4 3 0 - 4 0.5 - 15 0.25 - 20 0.25 - - 30 22 6 0 - 2 0.0455 - 4 0.273 - 8 0.0909 - 15 0.5 - 18 0.0455 - 29 0.0455 - - 40 80 12 0 - 2 0.0625 - 4 0.0625 - 7 0.15 - 13 0.0125 - 15 0.463 - 16 0.0375 - 18 0.0125 - 31 0.0125 - 41 0.075 - 44 0.05 - 45 0.0125 - 47 0.05 - - 41 441 25 0 - 0 0.00454 - 2 0.0635 - 3 0.00227 - 4 0.0385 - 7 0.413 - 8 0.00907 - 13 0.0204 - 14 0.00454 - 15 0.0794 - 16 0.00454 - 18 0.00907 - 20 0.00454 - 21 0.00454 - 26 0.0181 - 28 0.00907 - 29 0.00454 - 30 0.00907 - 31 0.00454 - 37 0.00227 - 40 0.00227 - 41 0.204 - 42 0.0136 - 44 0.00227 - 45 0.0068 - 47 0.0658 - - 43 18 4 0 - 4 0.0556 - 13 0.0556 - 15 0.5 - 44 0.389 - - 44 6 5 0 - 2 0.167 - 4 0.167 - 15 0.333 - 26 0.167 - 32 0.167 - - 45 26 8 0 - 3 0.0385 - 4 0.192 - 7 0.154 - 8 0.0385 - 15 0.423 - 33 0.0385 - 41 0.0769 - 45 0.0385 - - 46 51 8 0 - 4 0.0196 - 7 0.0196 - 8 0.0196 - 15 0.333 - 18 0.0196 - 28 0.0196 - 45 0.49 - 47 0.0784 - - 47 38960 39 0 - 0 0.00108 - 1 7.7e-05 - 2 0.0398 - 3 0.00198 - 4 0.0551 - 6 0.000796 - 7 0.158 - 8 0.0203 - 9 0.000231 - 10 2.57e-05 - 12 0.000128 - 13 0.0134 - 14 0.00218 - 15 0.515 - 16 0.0138 - 18 0.0037 - 19 0.000128 - 20 0.000385 - 21 0.00223 - 24 0.000282 - 25 2.57e-05 - 26 0.00893 - 28 0.00649 - 29 0.0102 - 30 0.00454 - 31 0.00685 - 32 0.00149 - 33 0.00249 - 34 0.00113 - 35 0.000488 - 37 0.00223 - 40 0.000719 - 41 0.0599 - 42 0.00357 - 43 0.001 - 44 0.00706 - 45 0.0049 - 46 0.0011 - 47 0.0488 - - 48 41 7 0 - 4 0.146 - 7 0.0488 - 8 0.0244 - 15 0.707 - 18 0.0244 - 28 0.0244 - 47 0.0244 - - 54 5 3 0 - 4 0.6 - 7 0.2 - 47 0.2 - - 55 2 2 0 - 3 0.5 - 8 0.5 - - 58 35 7 0 - 2 0.0571 - 4 0.0857 - 7 0.0857 - 8 0.0857 - 15 0.629 - 20 0.0286 - 30 0.0286 - - 68 6 2 0 - 4 0.5 - 7 0.5 - - 16 2650 32 9 - 0 0.00189 - 2 0.0325 - 3 0.0136 - 4 0.156 - 7 0.0634 - 8 0.0408 - 9 0.000755 - 10 0.00113 - 13 0.00453 - 14 0.000755 - 15 0.57 - 16 0.0158 - 18 0.0125 - 19 0.000377 - 20 0.00189 - 21 0.0034 - 26 0.00377 - 28 0.00453 - 29 0.00113 - 30 0.00415 - 31 0.00151 - 32 0.000377 - 33 0.00226 - 34 0.000377 - 37 0.00113 - 40 0.00189 - 41 0.0208 - 42 0.00189 - 44 0.00113 - 45 0.00528 - 46 0.000377 - 47 0.0298 - - 2 111 10 0 - 3 0.00901 - 4 0.468 - 7 0.0631 - 8 0.018 - 15 0.288 - 18 0.00901 - 26 0.018 - 41 0.0541 - 45 0.018 - 47 0.0541 - - 8 8 3 0 - 3 0.125 - 15 0.75 - 45 0.125 - - 13 94 10 0 - 2 0.0426 - 3 0.0106 - 4 0.0638 - 7 0.0106 - 8 0.0426 - 13 0.0106 - 15 0.787 - 16 0.0106 - 20 0.0106 - 41 0.0106 - - 14 27 7 0 - 2 0.111 - 4 0.111 - 7 0.0741 - 15 0.593 - 16 0.037 - 28 0.037 - 47 0.037 - - 15 731 19 0 - 0 0.00137 - 2 0.0369 - 4 0.0301 - 7 0.0451 - 8 0.00274 - 13 0.0041 - 15 0.774 - 16 0.00684 - 18 0.0301 - 20 0.00274 - 21 0.00274 - 26 0.00137 - 29 0.00137 - 30 0.00137 - 33 0.00274 - 40 0.00547 - 41 0.0219 - 45 0.00137 - 47 0.0274 - - 16 42 11 0 - 3 0.143 - 4 0.119 - 7 0.119 - 8 0.119 - 15 0.167 - 26 0.0238 - 28 0.0238 - 41 0.0714 - 42 0.0238 - 45 0.0238 - 47 0.167 - - 18 66 8 0 - 2 0.0152 - 4 0.439 - 7 0.0303 - 8 0.0303 - 15 0.439 - 20 0.0152 - 26 0.0152 - 47 0.0152 - - 41 8 4 0 - 7 0.125 - 15 0.25 - 41 0.5 - 42 0.125 - - 47 1553 32 0 - 0 0.00258 - 2 0.0328 - 3 0.0174 - 4 0.191 - 7 0.0753 - 8 0.0599 - 9 0.00129 - 10 0.00193 - 13 0.00515 - 14 0.00129 - 15 0.495 - 16 0.0225 - 18 0.00644 - 19 0.000644 - 20 0.000644 - 21 0.00451 - 26 0.00322 - 28 0.00644 - 29 0.00129 - 30 0.00644 - 31 0.00258 - 32 0.000644 - 33 0.00258 - 34 0.000644 - 37 0.00193 - 40 0.000644 - 41 0.0161 - 42 0.00193 - 44 0.00193 - 45 0.0058 - 46 0.000644 - 47 0.0283 - - 17 321 24 2 - 0 0.0592 - 1 0.00312 - 2 0.0436 - 7 0.364 - 8 0.00312 - 9 0.00312 - 13 0.00623 - 14 0.00623 - 15 0.00312 - 19 0.00623 - 21 0.0343 - 24 0.00935 - 26 0.0218 - 28 0.103 - 29 0.0498 - 30 0.0498 - 31 0.0374 - 32 0.0156 - 33 0.0218 - 37 0.0125 - 41 0.0405 - 42 0.00312 - 45 0.0187 - 47 0.0841 - - 20 19 9 0 - 0 0.0526 - 7 0.316 - 26 0.0526 - 28 0.158 - 29 0.105 - 30 0.158 - 32 0.0526 - 42 0.0526 - 47 0.0526 - - 55 18 11 0 - 0 0.0556 - 2 0.0556 - 7 0.333 - 21 0.0556 - 26 0.111 - 28 0.0556 - 30 0.0556 - 31 0.0556 - 37 0.111 - 41 0.0556 - 47 0.0556 - - 18 8667 14 1 - 0 0.000115 - 3 0.00288 - 6 0.000231 - 8 0.00138 - 13 0.335 - 14 0.0631 - 15 0.587 - 16 0.00762 - 19 0.000808 - 21 0.000692 - 28 0.000577 - 30 0.000115 - 31 0.000346 - 32 0.000115 - - 13 4 4 0 - 13 0.25 - 14 0.25 - 15 0.25 - 21 0.25 - - 19 17428 40 9 - 0 0.00947 - 1 0.000115 - 2 0.0516 - 3 0.00138 - 4 0.0023 - 5 5.74e-05 - 7 0.171 - 8 0.00482 - 9 0.000402 - 10 0.000574 - 12 0.00304 - 13 0.0332 - 14 0.0155 - 15 0.00419 - 16 0.00023 - 18 5.74e-05 - 19 0.00161 - 21 0.0168 - 22 0.000402 - 23 5.74e-05 - 24 0.000115 - 26 0.00637 - 27 5.74e-05 - 28 0.0543 - 29 0.101 - 30 0.0205 - 31 0.0106 - 32 0.0237 - 33 0.0276 - 34 0.00861 - 35 0.0122 - 37 0.0274 - 40 5.74e-05 - 41 0.12 - 42 0.011 - 43 0.000516 - 44 0.00161 - 45 0.0876 - 46 0.0315 - 47 0.139 - - 2 7 5 0 - 2 0.286 - 7 0.286 - 26 0.143 - 34 0.143 - 41 0.143 - - 8 10 7 0 - 7 0.1 - 21 0.1 - 28 0.1 - 29 0.2 - 30 0.3 - 33 0.1 - 45 0.1 - - 13 15 7 0 - 2 0.0667 - 7 0.267 - 28 0.133 - 29 0.333 - 32 0.0667 - 33 0.0667 - 47 0.0667 - - 14 6 5 0 - 4 0.167 - 7 0.333 - 41 0.167 - 45 0.167 - 47 0.167 - - 15 4 4 0 - 4 0.25 - 15 0.25 - 18 0.25 - 47 0.25 - - 18 7 5 0 - 26 0.143 - 28 0.143 - 30 0.286 - 41 0.286 - 42 0.143 - - 41 1 1 0 - 15 1 - - 46 1 1 0 - 8 1 - - 48 4 3 0 - 7 0.5 - 33 0.25 - 41 0.25 - - 20 8397 36 20 - 0 0.0151 - 1 0.000357 - 2 0.0497 - 3 0.000357 - 4 0.00691 - 7 0.425 - 8 0.00214 - 9 0.000238 - 10 0.000119 - 12 0.000238 - 13 0.00429 - 14 0.00155 - 15 0.00131 - 16 0.000119 - 17 0.0031 - 18 0.000238 - 19 0.000238 - 21 0.00893 - 24 0.0168 - 26 0.0355 - 28 0.134 - 29 0.0905 - 30 0.0537 - 31 0.022 - 32 0.0139 - 33 0.0257 - 34 0.000834 - 35 0.00143 - 37 0.00631 - 41 0.025 - 42 0.00441 - 43 0.000119 - 44 0.000715 - 45 0.00965 - 46 0.00131 - 47 0.0381 - - 3 122 14 0 - 0 0.0164 - 2 0.0902 - 7 0.549 - 13 0.0082 - 15 0.0082 - 26 0.041 - 28 0.082 - 29 0.107 - 30 0.0246 - 31 0.0082 - 32 0.0082 - 33 0.0082 - 45 0.0082 - 47 0.041 - - 8 1980 30 0 - 0 0.0232 - 2 0.0399 - 3 0.000505 - 4 0.00253 - 7 0.483 - 8 0.00202 - 9 0.000505 - 13 0.00253 - 14 0.00101 - 15 0.00202 - 16 0.000505 - 17 0.00101 - 19 0.000505 - 21 0.00808 - 24 0.0121 - 26 0.0348 - 28 0.122 - 29 0.0884 - 30 0.05 - 31 0.0197 - 32 0.0136 - 33 0.0242 - 35 0.000505 - 37 0.00354 - 41 0.0217 - 42 0.00707 - 44 0.00101 - 45 0.00707 - 46 0.00101 - 47 0.0258 - - 9 23 6 0 - 2 0.0435 - 7 0.696 - 28 0.0435 - 29 0.087 - 41 0.0435 - 47 0.087 - - 10 78 15 0 - 0 0.0641 - 2 0.0256 - 7 0.449 - 8 0.0128 - 14 0.0128 - 26 0.0897 - 28 0.0256 - 29 0.0513 - 30 0.0256 - 31 0.0256 - 32 0.0128 - 37 0.0256 - 41 0.115 - 42 0.0128 - 47 0.0513 - - 13 3723 32 0 - 0 0.0142 - 2 0.047 - 4 0.00967 - 7 0.385 - 8 0.00161 - 9 0.000269 - 12 0.000537 - 13 0.00537 - 14 0.00161 - 15 0.00161 - 17 0.00322 - 18 0.000537 - 19 0.000269 - 21 0.0094 - 24 0.0172 - 26 0.033 - 28 0.132 - 29 0.107 - 30 0.0543 - 31 0.0277 - 32 0.0126 - 33 0.0312 - 34 0.00134 - 35 0.00134 - 37 0.00779 - 41 0.0263 - 42 0.00349 - 43 0.000269 - 44 0.000806 - 45 0.0145 - 46 0.00134 - 47 0.0486 - - 14 1627 27 0 - 0 0.00922 - 1 0.00184 - 2 0.0719 - 4 0.00676 - 7 0.406 - 8 0.00369 - 10 0.000615 - 13 0.00307 - 14 0.00246 - 17 0.00676 - 21 0.0117 - 24 0.0252 - 26 0.0363 - 28 0.154 - 29 0.0615 - 30 0.0639 - 31 0.0191 - 32 0.024 - 33 0.0234 - 34 0.000615 - 35 0.00307 - 37 0.00553 - 41 0.024 - 42 0.00492 - 45 0.00492 - 46 0.00123 - 47 0.0252 - - 15 368 17 0 - 0 0.00272 - 2 0.0272 - 4 0.00815 - 7 0.478 - 13 0.00272 - 24 0.0136 - 26 0.0408 - 28 0.163 - 29 0.111 - 30 0.0489 - 31 0.00815 - 33 0.0163 - 35 0.00272 - 37 0.0109 - 41 0.0109 - 45 0.00272 - 47 0.0516 - - 21 5 4 0 - 0 0.4 - 7 0.2 - 30 0.2 - 41 0.2 - - 29 1 1 0 - 42 1 - - 30 55 11 0 - 2 0.0727 - 7 0.436 - 8 0.0182 - 21 0.0182 - 24 0.0727 - 26 0.0364 - 28 0.218 - 29 0.0182 - 30 0.0545 - 33 0.0182 - 41 0.0364 - - 31 52 13 0 - 0 0.0192 - 2 0.0385 - 7 0.442 - 24 0.0192 - 26 0.0577 - 28 0.173 - 29 0.0962 - 30 0.0385 - 31 0.0192 - 37 0.0192 - 41 0.0192 - 46 0.0192 - 47 0.0385 - - 43 1 1 0 - 44 1 - - 44 5 3 0 - 7 0.6 - 32 0.2 - 45 0.2 - - 45 40 10 0 - 2 0.05 - 7 0.4 - 26 0.1 - 28 0.1 - 29 0.075 - 30 0.125 - 31 0.025 - 33 0.05 - 41 0.025 - 47 0.05 - - 47 34 12 0 - 0 0.0294 - 2 0.0588 - 3 0.0588 - 7 0.5 - 26 0.0294 - 28 0.0294 - 29 0.0294 - 30 0.0588 - 31 0.0294 - 33 0.0294 - 41 0.0294 - 47 0.118 - - 48 185 19 0 - 0 0.00541 - 2 0.027 - 4 0.00541 - 7 0.465 - 13 0.0162 - 17 0.00541 - 21 0.0216 - 24 0.0108 - 26 0.0216 - 28 0.195 - 29 0.0811 - 30 0.0486 - 31 0.0108 - 32 0.00541 - 33 0.0108 - 41 0.0378 - 45 0.00541 - 46 0.00541 - 47 0.0216 - - 54 23 6 0 - 2 0.13 - 7 0.522 - 13 0.0435 - 26 0.087 - 28 0.087 - 47 0.13 - - 56 36 12 0 - 2 0.0278 - 4 0.0278 - 7 0.5 - 26 0.0556 - 28 0.167 - 29 0.0278 - 31 0.0278 - 33 0.0278 - 34 0.0278 - 37 0.0278 - 41 0.0278 - 47 0.0556 - - 60 7 4 0 - 2 0.143 - 7 0.571 - 26 0.143 - 30 0.143 - - 68 4 3 0 - 4 0.25 - 7 0.5 - 28 0.25 - - 21 1703 33 27 - 0 0.102 - 1 0.00176 - 2 0.0552 - 3 0.0182 - 4 0.0804 - 7 0.203 - 8 0.00411 - 10 0.00117 - 12 0.000587 - 13 0.0393 - 14 0.0252 - 15 0.0153 - 18 0.00117 - 19 0.00294 - 20 0.00294 - 21 0.0687 - 23 0.000587 - 24 0.00646 - 26 0.00763 - 28 0.0399 - 29 0.0341 - 30 0.0164 - 31 0.0188 - 32 0.00881 - 33 0.0241 - 34 0.00411 - 37 0.00528 - 41 0.0781 - 42 0.017 - 44 0.00294 - 45 0.0153 - 46 0.00117 - 47 0.0981 - - 2 4 2 0 - 0 0.25 - 7 0.75 - - 3 108 17 0 - 0 0.13 - 1 0.00926 - 2 0.0648 - 7 0.296 - 13 0.0185 - 15 0.037 - 21 0.0463 - 24 0.00926 - 26 0.00926 - 28 0.0463 - 29 0.13 - 32 0.00926 - 33 0.0278 - 37 0.00926 - 41 0.0648 - 44 0.00926 - 47 0.0833 - - 4 458 23 0 - 0 0.138 - 1 0.00437 - 2 0.0852 - 3 0.00437 - 7 0.17 - 13 0.0524 - 14 0.0306 - 15 0.0131 - 21 0.048 - 24 0.00873 - 28 0.0218 - 29 0.0349 - 30 0.024 - 31 0.0284 - 32 0.00873 - 33 0.0328 - 34 0.00437 - 37 0.00218 - 41 0.105 - 42 0.024 - 45 0.0197 - 46 0.00218 - 47 0.138 - - 7 11 7 0 - 0 0.0909 - 7 0.182 - 14 0.364 - 21 0.0909 - 24 0.0909 - 30 0.0909 - 42 0.0909 - - 8 298 28 0 - 0 0.094 - 2 0.0235 - 3 0.0101 - 4 0.225 - 7 0.124 - 8 0.00671 - 10 0.00336 - 13 0.0268 - 14 0.0168 - 15 0.0134 - 18 0.00671 - 19 0.00336 - 20 0.0168 - 21 0.057 - 24 0.0101 - 26 0.0168 - 28 0.057 - 29 0.0436 - 30 0.0268 - 31 0.0101 - 32 0.0201 - 33 0.0302 - 37 0.0101 - 41 0.047 - 42 0.0101 - 45 0.0268 - 46 0.00336 - 47 0.0604 - - 9 27 12 0 - 0 0.148 - 4 0.0741 - 7 0.259 - 8 0.037 - 15 0.037 - 21 0.037 - 26 0.0741 - 28 0.0741 - 29 0.037 - 30 0.0741 - 33 0.037 - 41 0.111 - - 10 5 1 0 - 4 1 - - 13 130 21 0 - 0 0.115 - 2 0.0231 - 3 0.0231 - 4 0.0615 - 7 0.192 - 8 0.00769 - 13 0.0308 - 14 0.0154 - 15 0.0231 - 21 0.0538 - 26 0.00769 - 28 0.0231 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.0154 - 37 0.0154 - 41 0.154 - 42 0.0231 - 44 0.00769 - 47 0.162 - - 14 42 13 0 - 0 0.0714 - 2 0.119 - 7 0.0952 - 13 0.0238 - 15 0.0476 - 19 0.0238 - 21 0.0476 - 33 0.0238 - 34 0.0238 - 41 0.262 - 42 0.0238 - 45 0.0476 - 47 0.19 - - 15 57 11 0 - 2 0.0351 - 3 0.263 - 7 0.0526 - 13 0.105 - 14 0.0702 - 28 0.0175 - 31 0.0175 - 32 0.0351 - 41 0.193 - 42 0.0175 - 47 0.193 - - 16 5 3 0 - 2 0.4 - 15 0.4 - 21 0.2 - - 17 8 5 0 - 7 0.25 - 21 0.125 - 29 0.125 - 33 0.125 - 47 0.375 - - 18 4 1 0 - 13 1 - - 19 3 3 0 - 7 0.333 - 41 0.333 - 45 0.333 - - 20 17 8 0 - 0 0.0588 - 2 0.118 - 7 0.235 - 21 0.118 - 28 0.176 - 41 0.118 - 44 0.0588 - 47 0.118 - - 21 57 20 0 - 0 0.0702 - 2 0.0877 - 4 0.0175 - 7 0.123 - 8 0.0175 - 13 0.0175 - 14 0.0526 - 15 0.0351 - 21 0.0351 - 28 0.158 - 29 0.0351 - 30 0.0175 - 31 0.0702 - 32 0.0351 - 33 0.0351 - 34 0.0175 - 41 0.0175 - 42 0.0351 - 44 0.0175 - 47 0.105 - - 22 8 6 0 - 0 0.25 - 4 0.125 - 7 0.125 - 19 0.25 - 41 0.125 - 47 0.125 - - 28 3 3 0 - 0 0.333 - 45 0.333 - 47 0.333 - - 30 5 4 0 - 0 0.2 - 2 0.4 - 4 0.2 - 28 0.2 - - 31 26 9 0 - 0 0.115 - 3 0.0385 - 4 0.423 - 7 0.192 - 8 0.0385 - 30 0.0385 - 37 0.0385 - 41 0.0385 - 47 0.0769 - - 39 2 2 0 - 2 0.5 - 28 0.5 - - 40 2 1 0 - 3 1 - - 47 369 26 0 - 0 0.0623 - 2 0.0379 - 3 0.0108 - 4 0.106 - 7 0.347 - 8 0.00271 - 10 0.00271 - 12 0.00271 - 13 0.0461 - 14 0.0244 - 15 0.00542 - 19 0.00271 - 21 0.144 - 23 0.00271 - 24 0.00542 - 26 0.0108 - 28 0.0379 - 29 0.0244 - 30 0.00542 - 31 0.0217 - 33 0.0108 - 34 0.00542 - 37 0.00271 - 41 0.019 - 45 0.00813 - 47 0.0515 - - 48 7 5 0 - 0 0.286 - 4 0.143 - 41 0.143 - 42 0.143 - 45 0.286 - - 49 2 2 0 - 33 0.5 - 42 0.5 - - 55 30 12 0 - 0 0.167 - 2 0.0667 - 7 0.1 - 14 0.0333 - 21 0.1 - 28 0.0333 - 30 0.0333 - 33 0.0333 - 41 0.133 - 42 0.167 - 44 0.0333 - 47 0.1 - - 56 3 3 0 - 0 0.333 - 4 0.333 - 34 0.333 - - 22 205 23 5 - 0 0.039 - 2 0.0195 - 3 0.00488 - 4 0.0634 - 7 0.0585 - 8 0.0146 - 13 0.146 - 14 0.0585 - 15 0.0634 - 16 0.00488 - 19 0.00488 - 21 0.0683 - 24 0.0146 - 26 0.00488 - 28 0.0293 - 29 0.0634 - 30 0.0293 - 31 0.0634 - 32 0.00976 - 33 0.0244 - 41 0.0195 - 45 0.0146 - 47 0.18 - - 4 128 16 0 - 0 0.00781 - 2 0.0156 - 3 0.00781 - 7 0.0156 - 8 0.0234 - 13 0.234 - 14 0.0859 - 15 0.102 - 16 0.00781 - 19 0.00781 - 21 0.0391 - 24 0.00781 - 29 0.0859 - 31 0.0781 - 41 0.0156 - 47 0.266 - - 8 34 14 0 - 0 0.0588 - 2 0.0588 - 4 0.265 - 7 0.147 - 14 0.0294 - 21 0.0294 - 24 0.0294 - 28 0.0294 - 30 0.118 - 31 0.0294 - 33 0.0294 - 41 0.0588 - 45 0.0588 - 47 0.0588 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 26 0.25 - 47 0.25 - - 47 34 12 0 - 0 0.118 - 4 0.0588 - 7 0.118 - 21 0.235 - 24 0.0294 - 28 0.0882 - 29 0.0588 - 30 0.0294 - 31 0.0588 - 32 0.0588 - 33 0.118 - 45 0.0294 - - 48 3 3 0 - 4 0.333 - 7 0.333 - 28 0.333 - - 23 73 13 2 - 0 0.0411 - 2 0.0685 - 4 0.466 - 7 0.151 - 8 0.0137 - 13 0.0274 - 18 0.0137 - 20 0.0137 - 29 0.0137 - 32 0.0137 - 33 0.0137 - 41 0.0548 - 47 0.11 - - 8 50 11 0 - 0 0.06 - 2 0.04 - 4 0.6 - 7 0.1 - 8 0.02 - 13 0.02 - 18 0.02 - 20 0.02 - 32 0.02 - 41 0.02 - 47 0.08 - - 47 19 8 0 - 2 0.105 - 4 0.211 - 7 0.263 - 13 0.0526 - 29 0.0526 - 33 0.0526 - 41 0.105 - 47 0.158 - - 24 4 3 0 - 22 0.25 - 24 0.25 - 30 0.5 - - 25 14 3 0 - 15 0.0714 - 42 0.0714 - 47 0.857 - - 26 6 4 0 - 3 0.333 - 13 0.333 - 21 0.167 - 47 0.167 - - 27 8 5 0 - 0 0.125 - 4 0.125 - 26 0.125 - 30 0.125 - 45 0.5 - - 28 126 20 5 - 0 0.0317 - 2 0.0952 - 4 0.0159 - 7 0.0159 - 12 0.00794 - 13 0.00794 - 14 0.00794 - 19 0.00794 - 21 0.0317 - 26 0.46 - 28 0.0952 - 30 0.0238 - 32 0.00794 - 34 0.00794 - 35 0.00794 - 41 0.00794 - 42 0.0238 - 44 0.0238 - 45 0.0556 - 47 0.0635 - - 2 4 3 0 - 26 0.25 - 28 0.25 - 44 0.5 - - 3 4 3 0 - 2 0.25 - 14 0.25 - 26 0.5 - - 13 10 6 0 - 0 0.1 - 2 0.2 - 26 0.2 - 41 0.1 - 42 0.1 - 47 0.3 - - 14 16 7 0 - 2 0.312 - 4 0.0625 - 12 0.0625 - 13 0.0625 - 26 0.312 - 35 0.0625 - 42 0.125 - - 47 80 13 0 - 0 0.0375 - 2 0.0375 - 4 0.0125 - 7 0.025 - 19 0.0125 - 21 0.05 - 26 0.538 - 28 0.125 - 30 0.025 - 32 0.0125 - 34 0.0125 - 45 0.0625 - 47 0.05 - - 29 40 11 2 - 2 0.125 - 4 0.025 - 7 0.025 - 13 0.325 - 14 0.025 - 15 0.15 - 20 0.025 - 21 0.025 - 31 0.025 - 41 0.2 - 42 0.05 - - 8 11 3 0 - 13 0.545 - 31 0.0909 - 41 0.364 - - 14 10 5 0 - 7 0.1 - 13 0.4 - 14 0.1 - 15 0.2 - 42 0.2 - - 30 1783 33 10 - 0 0.00673 - 2 0.0432 - 3 0.0107 - 4 0.337 - 7 0.204 - 8 0.0707 - 9 0.00112 - 10 0.00112 - 13 0.06 - 14 0.00393 - 15 0.0123 - 16 0.00112 - 18 0.0488 - 19 0.000561 - 20 0.0308 - 21 0.00393 - 22 0.000561 - 24 0.00393 - 26 0.0123 - 28 0.0275 - 29 0.0123 - 30 0.0157 - 31 0.00617 - 32 0.00449 - 33 0.00897 - 36 0.000561 - 37 0.0028 - 41 0.0314 - 42 0.0028 - 43 0.000561 - 45 0.00505 - 46 0.000561 - 47 0.0286 - - 2 15 6 0 - 4 0.2 - 7 0.467 - 22 0.0667 - 28 0.0667 - 41 0.133 - 47 0.0667 - - 3 8 1 0 - 4 1 - - 8 96 15 0 - 0 0.0104 - 2 0.0312 - 3 0.0104 - 4 0.417 - 7 0.25 - 8 0.0104 - 13 0.0104 - 15 0.0104 - 18 0.0938 - 20 0.0312 - 26 0.0104 - 28 0.0312 - 29 0.0312 - 30 0.0208 - 47 0.0312 - - 13 884 28 0 - 0 0.00226 - 2 0.0351 - 3 0.00792 - 4 0.436 - 7 0.0995 - 8 0.0735 - 13 0.106 - 14 0.00339 - 15 0.0181 - 16 0.00226 - 18 0.0622 - 20 0.0328 - 21 0.00226 - 24 0.00452 - 26 0.00452 - 28 0.0158 - 29 0.0102 - 30 0.00905 - 31 0.00566 - 32 0.00113 - 33 0.00679 - 36 0.00113 - 37 0.00113 - 41 0.0317 - 42 0.00113 - 43 0.00113 - 45 0.00566 - 47 0.0192 - - 14 489 28 0 - 0 0.0123 - 2 0.0654 - 3 0.0204 - 4 0.131 - 7 0.299 - 8 0.115 - 9 0.00409 - 10 0.00409 - 13 0.0245 - 14 0.00613 - 15 0.0102 - 18 0.0389 - 19 0.00204 - 20 0.0389 - 21 0.00204 - 24 0.00409 - 26 0.0204 - 28 0.0389 - 29 0.00818 - 30 0.0307 - 31 0.00409 - 32 0.0143 - 33 0.0102 - 37 0.00613 - 41 0.0327 - 42 0.00613 - 46 0.00204 - 47 0.0491 - - 15 59 12 0 - 2 0.0339 - 3 0.0169 - 4 0.593 - 7 0.136 - 8 0.0169 - 18 0.0508 - 20 0.0339 - 26 0.0339 - 31 0.0169 - 33 0.0169 - 41 0.0339 - 47 0.0169 - - 30 4 4 0 - 4 0.25 - 7 0.25 - 29 0.25 - 41 0.25 - - 46 3 1 0 - 45 1 - - 47 198 20 0 - 0 0.0152 - 2 0.0455 - 4 0.237 - 7 0.439 - 8 0.00505 - 14 0.00505 - 20 0.00505 - 21 0.0202 - 24 0.00505 - 26 0.0202 - 28 0.0606 - 29 0.0253 - 30 0.0101 - 31 0.0152 - 33 0.0202 - 37 0.00505 - 41 0.0354 - 42 0.00505 - 45 0.00505 - 47 0.0202 - - 48 8 5 0 - 4 0.5 - 8 0.125 - 18 0.125 - 20 0.125 - 26 0.125 - - 31 1447 30 13 - 0 0.0104 - 2 0.0297 - 3 0.02 - 4 0.411 - 7 0.157 - 8 0.0643 - 9 0.00138 - 10 0.00207 - 13 0.0145 - 14 0.00138 - 15 0.00484 - 16 0.000691 - 18 0.0408 - 19 0.000691 - 20 0.0359 - 21 0.0221 - 24 0.00415 - 26 0.0194 - 28 0.0235 - 29 0.0111 - 30 0.027 - 31 0.00484 - 32 0.00346 - 33 0.00898 - 37 0.000691 - 41 0.0235 - 42 0.0152 - 43 0.00138 - 45 0.00829 - 47 0.0318 - - 2 4 2 0 - 4 0.5 - 47 0.5 - - 3 16 4 0 - 4 0.75 - 7 0.125 - 13 0.0625 - 14 0.0625 - - 8 111 18 0 - 0 0.00901 - 2 0.045 - 4 0.342 - 7 0.252 - 8 0.0811 - 9 0.00901 - 18 0.018 - 20 0.027 - 21 0.018 - 26 0.027 - 28 0.027 - 29 0.00901 - 30 0.00901 - 31 0.00901 - 33 0.00901 - 41 0.027 - 45 0.00901 - 47 0.0721 - - 13 747 27 0 - 0 0.00803 - 2 0.0241 - 3 0.0161 - 4 0.483 - 7 0.123 - 8 0.0589 - 9 0.00134 - 10 0.00268 - 13 0.00803 - 14 0.00134 - 15 0.00535 - 18 0.0589 - 19 0.00134 - 20 0.0455 - 21 0.0201 - 24 0.00402 - 26 0.012 - 28 0.0187 - 29 0.012 - 30 0.0228 - 31 0.00268 - 32 0.00402 - 33 0.00669 - 41 0.0214 - 42 0.00669 - 45 0.00669 - 47 0.0241 - - 14 423 27 0 - 0 0.0165 - 2 0.0473 - 3 0.0402 - 4 0.199 - 7 0.215 - 8 0.0922 - 10 0.00236 - 13 0.0331 - 15 0.00709 - 16 0.00236 - 18 0.0284 - 20 0.0213 - 21 0.026 - 24 0.00709 - 26 0.0355 - 28 0.0402 - 29 0.0142 - 30 0.0473 - 31 0.00946 - 32 0.00473 - 33 0.0165 - 37 0.00236 - 41 0.0165 - 42 0.0355 - 43 0.00473 - 45 0.00709 - 47 0.0284 - - 15 45 6 0 - 4 0.711 - 7 0.178 - 20 0.0222 - 21 0.0444 - 30 0.0222 - 41 0.0222 - - 18 3 2 0 - 4 0.333 - 41 0.667 - - 30 4 3 0 - 0 0.25 - 7 0.25 - 41 0.5 - - 41 7 2 0 - 4 0.714 - 41 0.286 - - 46 3 1 0 - 45 1 - - 47 45 6 0 - 4 0.733 - 7 0.0222 - 20 0.0444 - 21 0.0444 - 42 0.0444 - 47 0.111 - - 48 19 4 0 - 4 0.737 - 18 0.0526 - 20 0.158 - 26 0.0526 - - 60 8 1 0 - 4 1 - - 32 7 4 0 - 7 0.571 - 15 0.143 - 16 0.143 - 41 0.143 - - 33 22 11 0 - 0 0.136 - 2 0.227 - 4 0.0909 - 7 0.0909 - 13 0.0455 - 19 0.0909 - 21 0.0909 - 32 0.0455 - 41 0.0909 - 42 0.0455 - 44 0.0455 - - 34 68 18 2 - 2 0.0441 - 7 0.103 - 8 0.0294 - 13 0.0147 - 14 0.0294 - 15 0.0147 - 21 0.0147 - 28 0.0147 - 30 0.0147 - 32 0.0147 - 33 0.0147 - 35 0.0147 - 37 0.0147 - 41 0.397 - 42 0.0441 - 45 0.0147 - 46 0.0147 - 47 0.191 - - 13 4 3 0 - 7 0.5 - 8 0.25 - 28 0.25 - - 14 3 2 0 - 30 0.333 - 47 0.667 - - 35 8 6 0 - 0 0.125 - 2 0.125 - 26 0.125 - 28 0.125 - 33 0.125 - 47 0.375 - - 36 7 3 0 - 13 0.143 - 14 0.143 - 41 0.714 - - 37 5 4 0 - 7 0.2 - 21 0.2 - 28 0.4 - 33 0.2 - - 38 13 6 0 - 7 0.308 - 24 0.0769 - 26 0.385 - 28 0.0769 - 29 0.0769 - 33 0.0769 - - 39 1798 26 1 - 0 0.0289 - 2 0.191 - 4 0.015 - 6 0.00111 - 7 0.391 - 8 0.0106 - 13 0.00334 - 14 0.00167 - 15 0.00278 - 18 0.00222 - 19 0.00167 - 20 0.00222 - 21 0.0384 - 24 0.00222 - 26 0.12 - 28 0.0211 - 29 0.0651 - 30 0.0117 - 31 0.0117 - 32 0.00222 - 33 0.00612 - 41 0.0184 - 42 0.0139 - 43 0.000556 - 44 0.035 - 47 0.00222 - - 3 8 5 0 - 2 0.25 - 4 0.25 - 20 0.25 - 33 0.125 - 41 0.125 - - 40 83 3 0 - 15 0.964 - 16 0.012 - 21 0.0241 - - 41 1289 21 18 - 0 0.000776 - 2 0.000776 - 3 0.0279 - 7 0.00155 - 8 0.26 - 9 0.014 - 10 0.00388 - 11 0.00155 - 13 0.206 - 14 0.102 - 15 0.353 - 16 0.00698 - 19 0.00233 - 21 0.00233 - 22 0.000776 - 24 0.000776 - 29 0.000776 - 30 0.00465 - 31 0.00853 - 33 0.000776 - 43 0.000776 - - 2 27 6 0 - 3 0.0741 - 8 0.037 - 13 0.481 - 14 0.111 - 15 0.259 - 33 0.037 - - 3 25 1 0 - 3 1 - - 8 318 11 0 - 0 0.00314 - 3 0.0252 - 8 0.836 - 9 0.0252 - 13 0.0597 - 14 0.00314 - 15 0.00629 - 16 0.00314 - 24 0.00314 - 30 0.0126 - 31 0.022 - - 9 9 3 0 - 8 0.556 - 9 0.333 - 13 0.111 - - 10 1 1 0 - 10 1 - - 13 240 5 0 - 8 0.05 - 13 0.729 - 14 0.162 - 15 0.0542 - 31 0.00417 - - 14 117 4 0 - 8 0.0256 - 13 0.248 - 14 0.718 - 21 0.00855 - - 15 430 6 0 - 8 0.00233 - 9 0.00233 - 13 0.0093 - 15 0.981 - 19 0.00233 - 43 0.00233 - - 16 9 2 0 - 15 0.222 - 16 0.778 - - 21 9 4 0 - 2 0.111 - 8 0.444 - 13 0.222 - 15 0.222 - - 31 4 3 0 - 8 0.5 - 13 0.25 - 31 0.25 - - 46 11 2 0 - 13 0.727 - 15 0.273 - - 48 53 7 0 - 8 0.698 - 9 0.0943 - 10 0.0755 - 13 0.0566 - 14 0.0189 - 30 0.0189 - 31 0.0377 - - 49 1 1 0 - 21 1 - - 50 1 1 0 - 22 1 - - 55 16 8 0 - 3 0.0625 - 11 0.0625 - 13 0.25 - 14 0.188 - 15 0.188 - 19 0.125 - 29 0.0625 - 30 0.0625 - - 61 1 1 0 - 16 1 - - 64 6 5 0 - 7 0.333 - 11 0.167 - 13 0.167 - 14 0.167 - 21 0.167 - - 42 86 19 4 - 0 0.0116 - 4 0.0233 - 7 0.0233 - 8 0.0581 - 11 0.0233 - 13 0.0698 - 14 0.0233 - 15 0.0116 - 19 0.0116 - 21 0.0116 - 25 0.0116 - 27 0.0233 - 28 0.0116 - 29 0.0116 - 30 0.0116 - 40 0.0116 - 42 0.0116 - 46 0.0116 - 47 0.628 - - 2 6 3 0 - 8 0.333 - 13 0.333 - 27 0.333 - - 15 31 2 0 - 15 0.0323 - 47 0.968 - - 55 24 14 0 - 7 0.0833 - 8 0.0417 - 11 0.0833 - 13 0.0833 - 14 0.0833 - 21 0.0417 - 25 0.0417 - 28 0.0417 - 29 0.0417 - 30 0.0417 - 40 0.0417 - 42 0.0417 - 46 0.0417 - 47 0.292 - - 62 2 2 0 - 0 0.5 - 19 0.5 - - 43 48 9 1 - 3 0.0208 - 4 0.0208 - 8 0.0625 - 13 0.312 - 15 0.396 - 18 0.0625 - 20 0.0208 - 28 0.0208 - 40 0.0833 - - 15 13 4 0 - 4 0.0769 - 13 0.0769 - 15 0.769 - 40 0.0769 - - 44 91 19 7 - 0 0.011 - 2 0.033 - 3 0.011 - 4 0.319 - 7 0.121 - 8 0.0769 - 13 0.033 - 14 0.022 - 15 0.0879 - 20 0.0549 - 23 0.011 - 26 0.033 - 28 0.044 - 30 0.011 - 34 0.011 - 40 0.044 - 41 0.011 - 42 0.011 - 47 0.0549 - - 4 2 2 0 - 0 0.5 - 26 0.5 - - 8 10 5 0 - 4 0.4 - 7 0.2 - 8 0.2 - 26 0.1 - 40 0.1 - - 13 25 9 0 - 3 0.04 - 4 0.44 - 7 0.08 - 8 0.12 - 13 0.04 - 15 0.08 - 20 0.12 - 23 0.04 - 28 0.04 - - 15 33 12 0 - 2 0.0606 - 4 0.303 - 7 0.152 - 8 0.0303 - 13 0.0303 - 15 0.182 - 20 0.0303 - 28 0.0303 - 30 0.0303 - 34 0.0303 - 40 0.0909 - 41 0.0303 - - 19 2 2 0 - 2 0.5 - 13 0.5 - - 55 10 5 0 - 4 0.1 - 7 0.2 - 28 0.1 - 42 0.1 - 47 0.5 - - 60 2 1 0 - 14 1 - - 45 1242 32 20 - 0 0.0266 - 1 0.000805 - 2 0.0282 - 3 0.0121 - 4 0.357 - 7 0.153 - 8 0.0837 - 9 0.00242 - 10 0.00161 - 13 0.0346 - 14 0.00322 - 15 0.0225 - 18 0.0548 - 19 0.00161 - 20 0.0322 - 21 0.00483 - 22 0.000805 - 24 0.00322 - 26 0.00886 - 28 0.0242 - 29 0.0169 - 30 0.0298 - 31 0.0185 - 32 0.00242 - 33 0.0137 - 40 0.000805 - 41 0.0145 - 42 0.00805 - 44 0.00564 - 45 0.000805 - 46 0.00242 - 47 0.0298 - - 3 11 6 0 - 0 0.0909 - 2 0.0909 - 4 0.545 - 7 0.0909 - 8 0.0909 - 33 0.0909 - - 4 35 13 0 - 0 0.143 - 2 0.0286 - 4 0.0286 - 7 0.229 - 13 0.0571 - 21 0.0571 - 28 0.0857 - 29 0.0286 - 30 0.0286 - 33 0.0571 - 41 0.0857 - 42 0.0571 - 47 0.114 - - 6 4 3 0 - 2 0.25 - 4 0.5 - 42 0.25 - - 8 363 25 0 - 0 0.00826 - 2 0.00551 - 3 0.0165 - 4 0.551 - 7 0.107 - 8 0.0606 - 9 0.00275 - 10 0.00275 - 13 0.00826 - 15 0.00275 - 18 0.0468 - 19 0.00275 - 20 0.0358 - 21 0.00551 - 22 0.00275 - 24 0.00551 - 26 0.00826 - 28 0.0275 - 29 0.0193 - 30 0.0303 - 31 0.0193 - 33 0.00551 - 41 0.0138 - 42 0.00275 - 47 0.00826 - - 10 6 2 0 - 4 0.833 - 20 0.167 - - 13 292 19 0 - 2 0.0445 - 3 0.00685 - 4 0.5 - 7 0.0616 - 8 0.12 - 9 0.00342 - 13 0.0753 - 14 0.00685 - 15 0.0103 - 18 0.0651 - 20 0.0342 - 26 0.00685 - 28 0.00685 - 29 0.00342 - 30 0.0103 - 31 0.0205 - 41 0.00342 - 46 0.0103 - 47 0.0103 - - 14 68 17 0 - 0 0.0147 - 2 0.0294 - 3 0.0147 - 4 0.103 - 7 0.0588 - 8 0.338 - 9 0.0147 - 10 0.0147 - 13 0.162 - 15 0.0147 - 18 0.118 - 19 0.0147 - 20 0.0294 - 28 0.0294 - 30 0.0147 - 31 0.0147 - 33 0.0147 - - 15 97 14 0 - 2 0.0103 - 3 0.0103 - 4 0.34 - 7 0.0412 - 8 0.0928 - 13 0.0309 - 15 0.196 - 18 0.134 - 20 0.0412 - 31 0.0103 - 33 0.0103 - 40 0.0103 - 44 0.0103 - 47 0.0619 - - 16 3 3 0 - 8 0.333 - 20 0.333 - 29 0.333 - - 20 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 18 0.167 - 33 0.167 - - 21 5 5 0 - 4 0.2 - 7 0.2 - 24 0.2 - 29 0.2 - 33 0.2 - - 22 2 2 0 - 20 0.5 - 26 0.5 - - 27 4 3 0 - 2 0.5 - 30 0.25 - 32 0.25 - - 30 6 3 0 - 4 0.667 - 7 0.167 - 31 0.167 - - 31 8 6 0 - 0 0.125 - 8 0.25 - 18 0.25 - 20 0.125 - 29 0.125 - 31 0.125 - - 48 28 9 0 - 0 0.0714 - 4 0.5 - 7 0.179 - 8 0.0357 - 13 0.0357 - 18 0.0357 - 29 0.0357 - 30 0.0714 - 31 0.0357 - - 54 10 7 0 - 0 0.1 - 2 0.1 - 3 0.1 - 4 0.2 - 15 0.2 - 18 0.2 - 20 0.1 - - 55 237 25 0 - 0 0.0717 - 1 0.00422 - 2 0.0422 - 3 0.00844 - 4 0.00844 - 7 0.409 - 8 0.00422 - 13 0.00422 - 14 0.00422 - 15 0.00844 - 18 0.00422 - 21 0.00422 - 24 0.00422 - 26 0.0211 - 28 0.0549 - 29 0.0338 - 30 0.0759 - 31 0.0211 - 32 0.00844 - 33 0.0338 - 41 0.038 - 42 0.0211 - 44 0.0211 - 45 0.00422 - 47 0.0886 - - 56 22 6 0 - 3 0.0455 - 4 0.364 - 8 0.318 - 18 0.0909 - 20 0.136 - 21 0.0455 - - 62 21 8 0 - 0 0.0952 - 3 0.0476 - 4 0.286 - 7 0.333 - 14 0.0476 - 20 0.0952 - 42 0.0476 - 44 0.0476 - - 46 382 21 10 - 3 0.0105 - 6 0.00524 - 8 0.387 - 9 0.00262 - 10 0.00524 - 13 0.304 - 14 0.0183 - 15 0.162 - 16 0.0105 - 18 0.00524 - 19 0.00524 - 21 0.00262 - 27 0.00262 - 28 0.00785 - 29 0.00262 - 30 0.0131 - 31 0.0157 - 40 0.00524 - 41 0.0288 - 46 0.00262 - 47 0.00262 - - 2 14 5 0 - 13 0.643 - 14 0.143 - 15 0.0714 - 41 0.0714 - 47 0.0714 - - 3 2 2 0 - 9 0.5 - 15 0.5 - - 8 15 5 0 - 6 0.0667 - 8 0.467 - 13 0.333 - 28 0.0667 - 31 0.0667 - - 13 206 14 0 - 3 0.00971 - 8 0.422 - 10 0.00485 - 13 0.325 - 14 0.0146 - 15 0.136 - 16 0.0146 - 18 0.00971 - 19 0.00971 - 27 0.00485 - 28 0.00971 - 30 0.0194 - 31 0.0146 - 46 0.00485 - - 14 99 11 0 - 3 0.0202 - 6 0.0101 - 8 0.495 - 10 0.0101 - 13 0.333 - 14 0.0202 - 15 0.0606 - 16 0.0101 - 21 0.0101 - 29 0.0101 - 31 0.0202 - - 15 30 5 0 - 8 0.1 - 13 0.0667 - 15 0.767 - 30 0.0333 - 40 0.0333 - - 45 3 1 0 - 41 1 - - 48 1 1 0 - 40 1 - - 55 6 1 0 - 41 1 - - 58 3 1 0 - 15 1 - - 47 311752 45 53 - 0 0.0388 - 1 0.0005 - 2 0.0469 - 3 0.00405 - 4 0.00179 - 5 1.6e-05 - 6 7.7e-05 - 7 0.382 - 8 0.00254 - 9 0.000189 - 10 9.3e-05 - 12 0.000388 - 13 0.0121 - 14 0.00672 - 15 0.00325 - 16 0.000112 - 17 0.000106 - 18 0.000202 - 19 0.00157 - 20 7.7e-05 - 21 0.0104 - 22 0.00016 - 23 1.28e-05 - 24 0.00627 - 25 3.85e-05 - 26 0.0366 - 27 6.42e-06 - 28 0.0599 - 29 0.0565 - 30 0.0332 - 31 0.0151 - 32 0.0125 - 33 0.026 - 34 0.00184 - 35 0.00141 - 36 1.92e-05 - 37 0.00624 - 40 9.94e-05 - 41 0.0842 - 42 0.0135 - 43 0.00033 - 44 0.00341 - 45 0.0148 - 46 0.00455 - 47 0.111 - - 0 3 3 0 - 7 0.333 - 14 0.333 - 44 0.333 - - 2 61 15 0 - 0 0.0656 - 2 0.0328 - 7 0.344 - 21 0.0164 - 26 0.0164 - 29 0.0164 - 30 0.0492 - 32 0.0164 - 33 0.0328 - 34 0.0164 - 41 0.0984 - 42 0.0492 - 44 0.0164 - 45 0.0164 - 47 0.213 - - 3 11856 34 0 - 0 0.0347 - 1 0.000422 - 2 0.066 - 3 0.000506 - 4 0.000759 - 7 0.359 - 8 0.00793 - 13 0.038 - 14 0.00506 - 15 0.00793 - 16 8.43e-05 - 18 0.000169 - 19 0.0011 - 21 0.038 - 24 0.00371 - 25 8.43e-05 - 26 0.083 - 28 0.0361 - 29 0.134 - 30 0.0172 - 31 0.0135 - 32 0.00472 - 33 0.0179 - 34 0.0016 - 35 0.000253 - 37 0.00118 - 40 0.000253 - 41 0.0499 - 42 0.0328 - 43 0.000843 - 44 0.00321 - 45 0.00346 - 46 0.00118 - 47 0.0361 - - 4 79613 41 0 - 0 0.0484 - 1 0.000754 - 2 0.0331 - 3 0.013 - 4 0.000666 - 5 2.51e-05 - 6 2.51e-05 - 7 0.404 - 8 0.00131 - 9 0.000214 - 10 7.54e-05 - 12 0.000415 - 13 0.0103 - 14 0.0123 - 15 0.0024 - 16 0.0001 - 17 0.000301 - 18 1.26e-05 - 19 0.00236 - 21 0.0111 - 22 0.000377 - 23 1.26e-05 - 24 0.00705 - 26 0.0314 - 28 0.0638 - 29 0.0519 - 30 0.0339 - 31 0.0147 - 32 0.0126 - 33 0.0216 - 34 0.00148 - 35 0.00126 - 37 0.00661 - 40 5.02e-05 - 41 0.0806 - 42 0.00671 - 43 0.000427 - 44 0.00117 - 45 0.0121 - 46 0.00315 - 47 0.108 - - 5 861 24 0 - 0 0.00581 - 2 0.0918 - 7 0.18 - 8 0.00465 - 10 0.00348 - 13 0.0186 - 14 0.00465 - 15 0.00232 - 16 0.00116 - 19 0.00232 - 21 0.029 - 28 0.0163 - 29 0.0395 - 30 0.00465 - 31 0.00232 - 32 0.0279 - 33 0.0151 - 34 0.00813 - 37 0.0267 - 41 0.143 - 42 0.00813 - 44 0.00232 - 45 0.167 - 47 0.195 - - 6 48 13 0 - 2 0.0208 - 4 0.0208 - 7 0.375 - 19 0.0208 - 25 0.0417 - 26 0.0417 - 28 0.0417 - 29 0.0208 - 32 0.0208 - 33 0.0208 - 41 0.104 - 45 0.125 - 47 0.146 - - 7 266 22 0 - 0 0.0526 - 2 0.0376 - 3 0.00376 - 7 0.18 - 8 0.0113 - 10 0.00376 - 13 0.147 - 14 0.105 - 15 0.015 - 21 0.0188 - 26 0.0338 - 28 0.0639 - 29 0.0489 - 30 0.0263 - 31 0.0263 - 32 0.0113 - 33 0.0301 - 35 0.00376 - 41 0.0564 - 42 0.0113 - 45 0.0113 - 47 0.102 - - 8 19385 39 0 - 0 0.0334 - 1 0.000464 - 2 0.0742 - 3 0.00284 - 4 0.00212 - 6 0.000258 - 7 0.434 - 8 0.00175 - 9 5.16e-05 - 12 0.000155 - 13 0.0156 - 14 0.00655 - 15 0.00542 - 16 0.000206 - 18 0.000516 - 19 0.00119 - 20 5.16e-05 - 21 0.00774 - 22 0.000155 - 24 0.00665 - 25 5.16e-05 - 26 0.0329 - 28 0.0675 - 29 0.0412 - 30 0.0447 - 31 0.0181 - 32 0.0144 - 33 0.0214 - 34 0.0016 - 35 0.000516 - 36 0.000103 - 37 0.00464 - 41 0.0594 - 42 0.00645 - 43 0.000258 - 44 0.00165 - 45 0.0122 - 46 0.000413 - 47 0.0797 - - 9 1078 30 0 - 0 0.0891 - 1 0.00186 - 2 0.0714 - 3 0.000928 - 4 0.000928 - 7 0.286 - 8 0.00371 - 12 0.000928 - 13 0.00278 - 14 0.00742 - 15 0.00371 - 16 0.000928 - 18 0.00278 - 19 0.00371 - 21 0.0111 - 24 0.00928 - 26 0.0427 - 28 0.151 - 29 0.0584 - 30 0.0826 - 31 0.0139 - 32 0.0408 - 33 0.0362 - 34 0.000928 - 37 0.000928 - 41 0.0288 - 42 0.00464 - 43 0.000928 - 45 0.0121 - 47 0.0297 - - 10 467 25 0 - 0 0.00642 - 2 0.0814 - 3 0.00214 - 4 0.00642 - 7 0.343 - 8 0.00214 - 13 0.00642 - 14 0.00214 - 19 0.00214 - 21 0.00857 - 24 0.015 - 26 0.0107 - 28 0.0343 - 29 0.0493 - 30 0.0214 - 31 0.00857 - 32 0.0107 - 33 0.0236 - 34 0.00428 - 35 0.00428 - 37 0.00857 - 41 0.0814 - 42 0.00857 - 45 0.045 - 47 0.214 - - 12 2 2 0 - 45 0.5 - 46 0.5 - - 13 22292 40 0 - 0 0.0312 - 1 0.000718 - 2 0.0474 - 3 0.000942 - 4 0.00493 - 7 0.47 - 8 0.00287 - 9 0.000449 - 10 8.97e-05 - 12 0.000224 - 13 0.0139 - 14 0.00453 - 15 0.00359 - 16 0.000135 - 18 0.000224 - 19 0.00144 - 20 4.49e-05 - 21 0.00763 - 22 8.97e-05 - 24 0.00574 - 25 8.97e-05 - 26 0.0302 - 27 4.49e-05 - 28 0.0663 - 29 0.0343 - 30 0.0394 - 31 0.0156 - 32 0.012 - 33 0.0202 - 34 0.00112 - 35 0.000538 - 37 0.00529 - 40 4.49e-05 - 41 0.0834 - 42 0.00745 - 43 0.000179 - 44 0.00242 - 45 0.0131 - 46 0.00112 - 47 0.0713 - - 14 14611 37 0 - 0 0.0223 - 1 0.000342 - 2 0.0463 - 3 0.000137 - 4 0.0011 - 6 6.84e-05 - 7 0.397 - 8 0.0024 - 9 0.000274 - 10 6.84e-05 - 12 0.000274 - 13 0.00609 - 14 0.00342 - 15 0.000342 - 18 0.000274 - 19 0.000753 - 21 0.00527 - 22 6.84e-05 - 24 0.00862 - 26 0.0357 - 28 0.0862 - 29 0.0426 - 30 0.0557 - 31 0.0153 - 32 0.0201 - 33 0.0203 - 34 0.00356 - 35 0.000958 - 37 0.0112 - 40 0.000137 - 41 0.0757 - 42 0.00897 - 43 0.000205 - 44 0.00103 - 45 0.0125 - 46 0.000958 - 47 0.114 - - 15 39318 40 0 - 0 0.00677 - 1 0.000102 - 2 0.0486 - 3 0.00145 - 4 0.00305 - 6 0.000178 - 7 0.372 - 8 0.00542 - 9 0.000203 - 10 7.63e-05 - 12 0.000153 - 13 0.0124 - 14 0.0032 - 15 0.0044 - 16 5.09e-05 - 18 0.000382 - 19 0.000254 - 20 0.000254 - 21 0.00387 - 24 0.0017 - 25 2.54e-05 - 26 0.0255 - 28 0.0202 - 29 0.0393 - 30 0.0134 - 31 0.011 - 32 0.00471 - 33 0.0302 - 34 0.00231 - 35 0.00112 - 36 5.09e-05 - 37 0.0056 - 40 0.000203 - 41 0.14 - 42 0.0104 - 43 0.000102 - 44 0.00972 - 45 0.00946 - 46 0.01 - 47 0.202 - - 16 399 24 0 - 0 0.0125 - 2 0.0501 - 4 0.00752 - 7 0.421 - 8 0.00251 - 13 0.00752 - 14 0.00501 - 15 0.00251 - 20 0.00251 - 21 0.01 - 26 0.0251 - 28 0.0301 - 29 0.00752 - 30 0.0226 - 31 0.00501 - 32 0.00251 - 33 0.015 - 34 0.00251 - 37 0.00752 - 41 0.115 - 42 0.0125 - 44 0.00752 - 45 0.0276 - 47 0.198 - - 17 312 24 0 - 0 0.0609 - 1 0.00321 - 2 0.0449 - 7 0.372 - 8 0.00321 - 9 0.00321 - 13 0.00641 - 14 0.00641 - 15 0.00321 - 19 0.00641 - 21 0.00962 - 24 0.00962 - 26 0.0224 - 28 0.106 - 29 0.0513 - 30 0.0513 - 31 0.0385 - 32 0.016 - 33 0.0224 - 37 0.0128 - 41 0.0417 - 42 0.00321 - 45 0.0192 - 47 0.0865 - - 18 4 1 0 - 28 1 - - 19 17392 39 0 - 0 0.00949 - 1 0.000115 - 2 0.0515 - 3 0.00138 - 4 0.00149 - 5 5.75e-05 - 7 0.171 - 8 0.00477 - 9 0.000402 - 10 0.000575 - 12 0.00305 - 13 0.0331 - 14 0.0155 - 15 0.00385 - 16 0.00023 - 19 0.00161 - 21 0.0166 - 22 0.000402 - 23 5.75e-05 - 24 0.000115 - 26 0.00638 - 27 5.75e-05 - 28 0.0544 - 29 0.101 - 30 0.0205 - 31 0.0106 - 32 0.0237 - 33 0.0277 - 34 0.00862 - 35 0.0122 - 37 0.0274 - 40 5.75e-05 - 41 0.12 - 42 0.011 - 43 0.000517 - 44 0.00149 - 45 0.0877 - 46 0.0316 - 47 0.14 - - 20 8301 36 0 - 0 0.0153 - 1 0.000361 - 2 0.0496 - 3 0.000361 - 4 0.00422 - 7 0.429 - 8 0.00169 - 9 0.000241 - 10 0.00012 - 12 0.000241 - 13 0.00361 - 14 0.00108 - 15 0.00133 - 16 0.00012 - 17 0.00012 - 18 0.000241 - 19 0.000241 - 21 0.00675 - 24 0.017 - 26 0.0359 - 28 0.136 - 29 0.0916 - 30 0.0543 - 31 0.0223 - 32 0.0141 - 33 0.026 - 34 0.000723 - 35 0.00145 - 37 0.00638 - 41 0.0253 - 42 0.00446 - 43 0.00012 - 44 0.000602 - 45 0.00904 - 46 0.00133 - 47 0.0385 - - 21 1441 29 0 - 0 0.12 - 1 0.00208 - 2 0.0625 - 3 0.00625 - 4 0.00208 - 7 0.237 - 8 0.00278 - 12 0.000694 - 13 0.0437 - 14 0.0278 - 15 0.0153 - 19 0.00278 - 21 0.0396 - 24 0.00763 - 26 0.00902 - 28 0.0472 - 29 0.0402 - 30 0.0194 - 31 0.0222 - 32 0.0104 - 33 0.0285 - 34 0.00486 - 37 0.00625 - 41 0.0861 - 42 0.0201 - 44 0.00347 - 45 0.0146 - 46 0.00139 - 47 0.116 - - 22 181 22 0 - 0 0.0442 - 2 0.0221 - 3 0.00552 - 7 0.0663 - 8 0.0166 - 13 0.166 - 14 0.0663 - 15 0.0718 - 16 0.00552 - 19 0.00552 - 21 0.0331 - 24 0.0166 - 26 0.00552 - 28 0.0331 - 29 0.0718 - 30 0.0331 - 31 0.0718 - 32 0.011 - 33 0.0276 - 41 0.0166 - 45 0.00552 - 47 0.204 - - 23 35 9 0 - 0 0.0571 - 2 0.143 - 7 0.314 - 13 0.0571 - 29 0.0286 - 32 0.0286 - 33 0.0286 - 41 0.114 - 47 0.229 - - 24 2 2 0 - 22 0.5 - 24 0.5 - - 25 13 2 0 - 42 0.0769 - 47 0.923 - - 27 3 3 0 - 0 0.333 - 26 0.333 - 30 0.333 - - 28 113 18 0 - 0 0.0354 - 2 0.0708 - 7 0.0177 - 12 0.00885 - 14 0.00885 - 19 0.00885 - 21 0.00885 - 26 0.513 - 28 0.106 - 30 0.0265 - 32 0.00885 - 34 0.00885 - 35 0.00885 - 41 0.00885 - 42 0.0265 - 44 0.0177 - 45 0.0442 - 47 0.0708 - - 29 19 7 0 - 2 0.263 - 7 0.0526 - 13 0.0526 - 15 0.0526 - 31 0.0526 - 41 0.421 - 42 0.105 - - 30 714 22 0 - 0 0.0154 - 2 0.0868 - 7 0.51 - 8 0.0014 - 13 0.0028 - 14 0.0028 - 19 0.0014 - 21 0.0028 - 24 0.0098 - 26 0.0308 - 28 0.0672 - 29 0.0308 - 30 0.0336 - 31 0.0084 - 32 0.0112 - 33 0.0224 - 37 0.007 - 41 0.0714 - 42 0.007 - 43 0.0014 - 45 0.0042 - 47 0.0714 - - 31 540 22 0 - 0 0.0278 - 2 0.0722 - 4 0.00185 - 7 0.419 - 13 0.0037 - 14 0.00185 - 15 0.00556 - 21 0.0111 - 24 0.0111 - 26 0.0519 - 28 0.063 - 29 0.0296 - 30 0.0685 - 31 0.00556 - 32 0.00926 - 33 0.0241 - 37 0.00185 - 41 0.0556 - 42 0.0407 - 43 0.0037 - 45 0.00741 - 47 0.0852 - - 32 6 3 0 - 7 0.667 - 15 0.167 - 41 0.167 - - 33 18 9 0 - 0 0.167 - 2 0.278 - 7 0.111 - 19 0.111 - 21 0.0556 - 32 0.0556 - 41 0.111 - 42 0.0556 - 44 0.0556 - - 34 67 17 0 - 2 0.0448 - 7 0.104 - 8 0.0299 - 13 0.0149 - 14 0.0299 - 15 0.0149 - 28 0.0149 - 30 0.0149 - 32 0.0149 - 33 0.0149 - 35 0.0149 - 37 0.0149 - 41 0.403 - 42 0.0448 - 45 0.0149 - 46 0.0149 - 47 0.194 - - 35 8 6 0 - 0 0.125 - 2 0.125 - 26 0.125 - 28 0.125 - 33 0.125 - 47 0.375 - - 36 7 3 0 - 13 0.143 - 14 0.143 - 41 0.714 - - 37 4 3 0 - 7 0.25 - 28 0.5 - 33 0.25 - - 38 13 6 0 - 7 0.308 - 24 0.0769 - 26 0.385 - 28 0.0769 - 29 0.0769 - 33 0.0769 - - 39 1743 25 0 - 0 0.0298 - 2 0.197 - 4 0.000574 - 6 0.00115 - 7 0.402 - 8 0.00344 - 13 0.00229 - 14 0.00172 - 15 0.00287 - 19 0.00172 - 20 0.000574 - 21 0.0384 - 24 0.00229 - 26 0.124 - 28 0.0218 - 29 0.0671 - 30 0.012 - 31 0.0103 - 32 0.00229 - 33 0.00631 - 41 0.0189 - 42 0.0143 - 43 0.000574 - 44 0.0361 - 47 0.00229 - - 41 2 2 0 - 0 0.5 - 3 0.5 - - 42 57 4 0 - 14 0.0175 - 40 0.0175 - 42 0.0175 - 47 0.947 - - 44 39 13 0 - 0 0.0256 - 2 0.0769 - 4 0.0256 - 7 0.282 - 14 0.0513 - 15 0.0513 - 26 0.0769 - 28 0.103 - 34 0.0256 - 40 0.103 - 41 0.0256 - 42 0.0256 - 47 0.128 - - 45 468 24 0 - 0 0.0662 - 1 0.00214 - 2 0.0491 - 3 0.00427 - 7 0.404 - 13 0.0128 - 14 0.00427 - 15 0.00427 - 18 0.00427 - 19 0.00214 - 21 0.00427 - 24 0.00855 - 26 0.0235 - 28 0.0641 - 29 0.0449 - 30 0.0726 - 31 0.0406 - 32 0.00641 - 33 0.0363 - 41 0.0299 - 42 0.0192 - 44 0.015 - 45 0.00214 - 47 0.0791 - - 48 1258 29 0 - 0 0.0819 - 1 0.000795 - 2 0.0429 - 4 0.00238 - 7 0.431 - 13 0.00477 - 14 0.00159 - 15 0.00238 - 18 0.000795 - 19 0.00238 - 21 0.0127 - 23 0.000795 - 24 0.00477 - 25 0.00159 - 26 0.0334 - 28 0.0787 - 29 0.0437 - 30 0.0437 - 31 0.0151 - 32 0.0207 - 33 0.0231 - 35 0.000795 - 36 0.000795 - 37 0.00397 - 41 0.0453 - 42 0.0167 - 45 0.0175 - 46 0.000795 - 47 0.0652 - - 49 116 18 0 - 0 0.0776 - 2 0.0776 - 3 0.0172 - 7 0.241 - 13 0.0517 - 14 0.00862 - 21 0.00862 - 26 0.00862 - 28 0.0517 - 29 0.0431 - 30 0.0345 - 31 0.0345 - 32 0.00862 - 34 0.00862 - 41 0.284 - 42 0.0259 - 46 0.00862 - 47 0.00862 - - 50 10 7 0 - 0 0.2 - 14 0.1 - 28 0.1 - 29 0.1 - 30 0.2 - 33 0.2 - 42 0.1 - - 53 7 4 0 - 2 0.143 - 7 0.143 - 42 0.429 - 47 0.286 - - 54 72 13 0 - 0 0.0139 - 2 0.0556 - 4 0.0139 - 7 0.417 - 26 0.0417 - 28 0.0278 - 29 0.0278 - 30 0.0139 - 33 0.0278 - 34 0.0139 - 41 0.111 - 46 0.0139 - 47 0.222 - - 55 80263 43 0 - 0 0.0575 - 1 0.000536 - 2 0.0458 - 3 0.000461 - 4 0.00156 - 5 2.49e-05 - 6 8.72e-05 - 7 0.377 - 8 0.00127 - 9 9.97e-05 - 10 2.49e-05 - 12 0.00015 - 13 0.00471 - 14 0.00257 - 15 0.00239 - 16 9.97e-05 - 17 9.97e-05 - 18 0.000174 - 19 0.00179 - 20 0.000125 - 21 0.00893 - 22 6.23e-05 - 24 0.00776 - 25 3.74e-05 - 26 0.0369 - 28 0.0637 - 29 0.0564 - 30 0.0373 - 31 0.0168 - 32 0.0133 - 33 0.0337 - 34 0.000648 - 35 0.000336 - 36 1.25e-05 - 37 0.00262 - 40 8.72e-05 - 41 0.0805 - 42 0.0217 - 43 0.000336 - 44 0.00209 - 45 0.00795 - 46 0.00182 - 47 0.111 - - 57 11 7 0 - 2 0.273 - 24 0.0909 - 28 0.182 - 33 0.182 - 41 0.0909 - 42 0.0909 - 44 0.0909 - - 58 14 6 0 - 0 0.0714 - 2 0.0714 - 7 0.643 - 28 0.0714 - 31 0.0714 - 41 0.0714 - - 60 8061 34 0 - 0 0.0514 - 1 0.000124 - 2 0.0294 - 3 0.000496 - 4 0.00062 - 7 0.386 - 8 0.00248 - 9 0.000124 - 13 0.016 - 14 0.00657 - 15 0.00385 - 16 0.000124 - 18 0.000496 - 19 0.00124 - 21 0.0112 - 22 0.000124 - 23 0.000124 - 24 0.00844 - 26 0.154 - 28 0.0624 - 29 0.08 - 30 0.0249 - 31 0.02 - 32 0.00893 - 33 0.0238 - 34 0.000744 - 37 0.00211 - 41 0.0215 - 42 0.0383 - 43 0.000124 - 44 0.0203 - 45 0.00136 - 46 0.000248 - 47 0.0226 - - 62 34 6 0 - 7 0.647 - 26 0.0882 - 30 0.0294 - 42 0.0294 - 45 0.0588 - 47 0.147 - - 64 40 15 0 - 0 0.1 - 2 0.025 - 7 0.2 - 13 0.025 - 19 0.05 - 24 0.025 - 26 0.05 - 28 0.1 - 29 0.05 - 30 0.025 - 31 0.075 - 33 0.075 - 41 0.1 - 45 0.075 - 47 0.025 - - 68 95 14 0 - 0 0.0105 - 2 0.0211 - 7 0.516 - 21 0.0105 - 26 0.0421 - 28 0.0737 - 29 0.0105 - 30 0.0632 - 31 0.0105 - 32 0.0211 - 33 0.0632 - 41 0.0211 - 42 0.0211 - 47 0.116 - - 48 4567 37 18 - 0 0.0274 - 1 0.000219 - 2 0.0125 - 3 0.0103 - 4 0.53 - 7 0.119 - 8 0.0458 - 9 0.00153 - 10 0.000438 - 13 0.00613 - 14 0.000438 - 15 0.0101 - 16 0.000219 - 18 0.0469 - 19 0.00153 - 20 0.0405 - 21 0.00504 - 22 0.000876 - 23 0.000219 - 24 0.00131 - 25 0.000438 - 26 0.0092 - 28 0.0217 - 29 0.0123 - 30 0.0138 - 31 0.00963 - 32 0.00569 - 33 0.00635 - 35 0.000219 - 36 0.000438 - 37 0.00109 - 40 0.000219 - 41 0.0243 - 42 0.0046 - 45 0.0109 - 46 0.000438 - 47 0.018 - - 3 17 2 0 - 4 0.941 - 18 0.0588 - - 4 16 7 0 - 0 0.375 - 7 0.125 - 21 0.188 - 28 0.0625 - 32 0.125 - 37 0.0625 - 45 0.0625 - - 8 500 23 0 - 0 0.03 - 2 0.016 - 3 0.024 - 4 0.448 - 7 0.148 - 8 0.034 - 13 0.014 - 15 0.006 - 18 0.058 - 20 0.064 - 22 0.002 - 26 0.008 - 28 0.012 - 29 0.016 - 30 0.012 - 31 0.02 - 32 0.004 - 33 0.016 - 35 0.002 - 41 0.036 - 42 0.014 - 45 0.004 - 47 0.012 - - 9 5 4 0 - 2 0.2 - 4 0.4 - 7 0.2 - 30 0.2 - - 13 2669 34 0 - 0 0.0217 - 1 0.000375 - 2 0.00712 - 3 0.0045 - 4 0.651 - 7 0.0573 - 8 0.0476 - 9 0.00225 - 10 0.000375 - 13 0.00525 - 14 0.000749 - 15 0.00599 - 18 0.0555 - 19 0.00187 - 20 0.0412 - 21 0.00337 - 22 0.000749 - 23 0.000375 - 24 0.00112 - 25 0.000375 - 26 0.00599 - 28 0.0139 - 29 0.0109 - 30 0.0105 - 31 0.00974 - 32 0.003 - 33 0.003 - 36 0.000749 - 40 0.000375 - 41 0.0161 - 42 0.00187 - 45 0.00599 - 46 0.000749 - 47 0.00862 - - 14 854 30 0 - 0 0.0457 - 2 0.0269 - 3 0.0234 - 4 0.196 - 7 0.292 - 8 0.0679 - 9 0.00117 - 10 0.00117 - 13 0.00468 - 15 0.0304 - 16 0.00117 - 18 0.0222 - 19 0.00117 - 20 0.0293 - 21 0.0082 - 22 0.00117 - 24 0.00351 - 25 0.00117 - 26 0.0152 - 28 0.0504 - 29 0.0222 - 30 0.0258 - 31 0.0082 - 32 0.0129 - 33 0.0141 - 37 0.00351 - 41 0.0293 - 42 0.0082 - 45 0.0152 - 47 0.0386 - - 15 246 19 0 - 0 0.0122 - 2 0.0203 - 3 0.00813 - 4 0.537 - 7 0.142 - 8 0.0122 - 13 0.00407 - 15 0.00407 - 18 0.0407 - 20 0.0325 - 21 0.00407 - 26 0.0285 - 28 0.0163 - 30 0.0163 - 32 0.00813 - 33 0.00407 - 37 0.00407 - 41 0.0407 - 47 0.065 - - 16 8 5 0 - 4 0.25 - 7 0.375 - 26 0.125 - 41 0.125 - 47 0.125 - - 18 2 1 0 - 13 1 - - 30 11 5 0 - 4 0.545 - 7 0.0909 - 20 0.182 - 28 0.0909 - 45 0.0909 - - 31 14 5 0 - 4 0.429 - 7 0.214 - 18 0.143 - 20 0.143 - 42 0.0714 - - 41 40 10 0 - 2 0.025 - 3 0.025 - 4 0.55 - 7 0.075 - 18 0.05 - 20 0.075 - 21 0.025 - 30 0.025 - 41 0.125 - 47 0.025 - - 46 19 2 0 - 4 0.158 - 45 0.842 - - 47 89 12 0 - 0 0.0225 - 4 0.753 - 7 0.0674 - 8 0.0112 - 19 0.0112 - 20 0.0112 - 21 0.0225 - 28 0.0562 - 30 0.0112 - 31 0.0112 - 32 0.0112 - 41 0.0112 - - 48 29 9 0 - 0 0.069 - 4 0.414 - 7 0.069 - 18 0.0345 - 20 0.0345 - 26 0.0345 - 28 0.0345 - 41 0.276 - 45 0.0345 - - 55 7 5 0 - 4 0.286 - 7 0.286 - 20 0.143 - 28 0.143 - 47 0.143 - - 56 9 4 0 - 4 0.444 - 7 0.333 - 8 0.111 - 47 0.111 - - 58 6 4 0 - 4 0.333 - 7 0.333 - 8 0.167 - 42 0.167 - - 49 130 21 9 - 0 0.0692 - 2 0.0769 - 3 0.0154 - 4 0.0615 - 7 0.215 - 13 0.0462 - 14 0.00769 - 18 0.00769 - 21 0.0231 - 26 0.00769 - 28 0.0462 - 29 0.0385 - 30 0.0308 - 31 0.0308 - 32 0.00769 - 34 0.00769 - 41 0.262 - 42 0.0231 - 45 0.00769 - 46 0.00769 - 47 0.00769 - - 3 7 3 0 - 7 0.429 - 30 0.143 - 41 0.429 - - 4 51 12 0 - 0 0.0588 - 2 0.118 - 7 0.294 - 13 0.118 - 28 0.0588 - 29 0.0392 - 30 0.0392 - 31 0.0588 - 32 0.0196 - 41 0.157 - 42 0.0196 - 47 0.0196 - - 8 6 4 0 - 7 0.5 - 28 0.167 - 29 0.167 - 31 0.167 - - 13 19 10 0 - 0 0.0526 - 4 0.368 - 7 0.158 - 14 0.0526 - 28 0.0526 - 29 0.0526 - 30 0.0526 - 41 0.105 - 42 0.0526 - 45 0.0526 - - 14 4 4 0 - 4 0.25 - 7 0.25 - 26 0.25 - 29 0.25 - - 15 5 3 0 - 18 0.2 - 41 0.6 - 42 0.2 - - 41 3 2 0 - 3 0.667 - 7 0.333 - - 47 1 1 0 - 34 1 - - 55 29 7 0 - 0 0.138 - 2 0.138 - 7 0.069 - 21 0.069 - 28 0.0345 - 41 0.517 - 46 0.0345 - - 50 14 10 0 - 0 0.143 - 14 0.143 - 15 0.0714 - 28 0.0714 - 29 0.0714 - 30 0.143 - 32 0.0714 - 33 0.143 - 41 0.0714 - 42 0.0714 - - 53 7 4 0 - 2 0.143 - 7 0.143 - 42 0.429 - 47 0.286 - - 54 390 20 6 - 0 0.00256 - 2 0.0154 - 3 0.0282 - 4 0.618 - 7 0.0769 - 8 0.0359 - 13 0.00256 - 15 0.0128 - 18 0.0308 - 20 0.059 - 26 0.00769 - 28 0.00513 - 29 0.00513 - 30 0.00256 - 33 0.00513 - 34 0.00256 - 41 0.0205 - 45 0.0256 - 46 0.00256 - 47 0.041 - - 8 28 2 0 - 3 0.0714 - 4 0.929 - - 13 239 11 0 - 2 0.00418 - 3 0.0167 - 4 0.762 - 7 0.0251 - 8 0.0418 - 15 0.00837 - 18 0.046 - 20 0.0753 - 33 0.00837 - 41 0.00837 - 47 0.00418 - - 14 26 8 0 - 2 0.0769 - 3 0.115 - 4 0.462 - 18 0.0385 - 20 0.115 - 28 0.0385 - 41 0.0385 - 47 0.115 - - 15 74 17 0 - 0 0.0135 - 2 0.0405 - 3 0.027 - 4 0.189 - 7 0.27 - 8 0.0541 - 13 0.0135 - 15 0.0405 - 26 0.027 - 28 0.0135 - 29 0.027 - 30 0.0135 - 34 0.0135 - 41 0.0676 - 45 0.027 - 46 0.0135 - 47 0.149 - - 18 3 2 0 - 7 0.667 - 26 0.333 - - 46 8 1 0 - 45 1 - - 55 80957 43 26 - 0 0.057 - 1 0.000531 - 2 0.0461 - 3 0.000581 - 4 0.00351 - 5 2.47e-05 - 6 8.65e-05 - 7 0.374 - 8 0.00166 - 9 9.88e-05 - 10 4.94e-05 - 12 0.000148 - 13 0.00473 - 14 0.00267 - 15 0.00241 - 16 9.88e-05 - 17 0.000371 - 18 0.000259 - 19 0.00178 - 20 0.000259 - 21 0.00965 - 22 7.41e-05 - 24 0.0077 - 25 3.71e-05 - 26 0.0366 - 28 0.0632 - 29 0.0559 - 30 0.037 - 31 0.0167 - 32 0.0131 - 33 0.0334 - 34 0.000642 - 35 0.000334 - 36 1.24e-05 - 37 0.00259 - 40 8.65e-05 - 41 0.0801 - 42 0.0218 - 43 0.000371 - 44 0.0022 - 45 0.0108 - 46 0.00188 - 47 0.11 - - 0 4 4 0 - 7 0.25 - 29 0.25 - 30 0.25 - 32 0.25 - - 2 4 3 0 - 4 0.25 - 7 0.5 - 47 0.25 - - 3 137 16 0 - 0 0.0073 - 2 0.0146 - 7 0.577 - 13 0.0073 - 14 0.0146 - 24 0.0146 - 26 0.0292 - 28 0.0438 - 29 0.0365 - 30 0.0073 - 31 0.0073 - 32 0.0438 - 33 0.0365 - 34 0.0073 - 41 0.0803 - 47 0.073 - - 4 2 2 0 - 13 0.5 - 26 0.5 - - 8 1730 27 0 - 0 0.0254 - 2 0.0353 - 3 0.00116 - 4 0.00578 - 7 0.478 - 8 0.000578 - 9 0.000578 - 13 0.00347 - 18 0.00116 - 21 0.00925 - 24 0.00925 - 26 0.0364 - 28 0.0572 - 29 0.041 - 30 0.0272 - 31 0.00925 - 32 0.00578 - 33 0.0168 - 34 0.00116 - 35 0.00173 - 37 0.00173 - 41 0.102 - 42 0.00694 - 44 0.000578 - 45 0.00347 - 46 0.00347 - 47 0.115 - - 9 15 7 0 - 7 0.467 - 26 0.0667 - 28 0.0667 - 29 0.0667 - 31 0.0667 - 33 0.0667 - 41 0.2 - - 10 202 18 0 - 0 0.114 - 2 0.0248 - 3 0.00495 - 7 0.347 - 15 0.00495 - 20 0.00495 - 21 0.0248 - 24 0.00495 - 26 0.00495 - 28 0.0248 - 29 0.0198 - 30 0.0347 - 31 0.0198 - 32 0.00495 - 33 0.00495 - 41 0.262 - 42 0.0099 - 47 0.0842 - - 13 3620 33 0 - 0 0.0177 - 2 0.0282 - 3 0.0011 - 4 0.0113 - 7 0.41 - 8 0.00414 - 10 0.000276 - 13 0.00249 - 14 0.00166 - 15 0.00138 - 17 0.0011 - 18 0.000276 - 19 0.000552 - 20 0.0011 - 21 0.00912 - 24 0.00691 - 26 0.0373 - 28 0.0715 - 29 0.0561 - 30 0.0331 - 31 0.0133 - 32 0.0127 - 33 0.0218 - 34 0.000552 - 35 0.000276 - 37 0.00331 - 41 0.0956 - 42 0.00635 - 43 0.000552 - 44 0.00138 - 45 0.0047 - 46 0.00221 - 47 0.142 - - 14 1127 28 0 - 0 0.00532 - 2 0.024 - 3 0.00177 - 4 0.0071 - 7 0.482 - 8 0.0071 - 13 0.00532 - 14 0.00177 - 15 0.000887 - 17 0.00177 - 21 0.00266 - 24 0.00621 - 26 0.0417 - 28 0.0816 - 29 0.0488 - 30 0.039 - 31 0.0177 - 32 0.0115 - 33 0.0195 - 34 0.00266 - 35 0.00177 - 37 0.00799 - 41 0.0532 - 42 0.00444 - 44 0.00177 - 45 0.00444 - 46 0.000887 - 47 0.117 - - 15 868 28 0 - 0 0.0104 - 2 0.0657 - 3 0.0023 - 4 0.00806 - 7 0.468 - 8 0.00691 - 13 0.0023 - 14 0.00115 - 15 0.00115 - 18 0.00461 - 20 0.00115 - 21 0.0023 - 24 0.00115 - 26 0.0415 - 28 0.0173 - 29 0.0242 - 30 0.0161 - 31 0.00461 - 32 0.00346 - 33 0.0242 - 34 0.0023 - 37 0.00115 - 41 0.0668 - 42 0.0127 - 44 0.00115 - 45 0.00806 - 46 0.0023 - 47 0.199 - - 16 33 9 0 - 2 0.0303 - 7 0.455 - 20 0.0606 - 28 0.0909 - 30 0.0303 - 32 0.0303 - 41 0.0606 - 45 0.0303 - 47 0.212 - - 18 5 4 0 - 2 0.4 - 7 0.2 - 26 0.2 - 45 0.2 - - 23 2 2 0 - 2 0.5 - 33 0.5 - - 30 87 11 0 - 2 0.023 - 7 0.575 - 26 0.046 - 28 0.103 - 29 0.0345 - 30 0.0345 - 31 0.023 - 33 0.023 - 41 0.092 - 42 0.0115 - 47 0.0345 - - 31 59 13 0 - 2 0.0339 - 4 0.0339 - 7 0.475 - 14 0.0169 - 24 0.0169 - 26 0.0339 - 28 0.0508 - 29 0.102 - 30 0.0508 - 31 0.0169 - 41 0.0169 - 46 0.0169 - 47 0.136 - - 41 5 5 0 - 2 0.2 - 4 0.2 - 7 0.2 - 28 0.2 - 41 0.2 - - 43 4 2 0 - 7 0.25 - 44 0.75 - - 45 68 11 0 - 0 0.0441 - 2 0.0147 - 7 0.426 - 15 0.0147 - 26 0.0735 - 28 0.0735 - 29 0.132 - 30 0.0294 - 33 0.0441 - 41 0.0294 - 47 0.118 - - 46 6 2 0 - 19 0.167 - 45 0.833 - - 47 72658 43 0 - 0 0.0614 - 1 0.000592 - 2 0.0476 - 3 0.000495 - 4 0.0029 - 5 2.75e-05 - 6 9.63e-05 - 7 0.366 - 8 0.00143 - 9 9.63e-05 - 10 4.13e-05 - 12 0.000165 - 13 0.00491 - 14 0.00278 - 15 0.00256 - 16 0.00011 - 17 0.00033 - 18 0.000193 - 19 0.00193 - 20 0.000179 - 21 0.00988 - 22 8.26e-05 - 24 0.0078 - 25 4.13e-05 - 26 0.0365 - 28 0.0633 - 29 0.0569 - 30 0.0378 - 31 0.0172 - 32 0.0135 - 33 0.0349 - 34 0.000578 - 35 0.000289 - 36 1.38e-05 - 37 0.00255 - 40 9.63e-05 - 41 0.0789 - 42 0.0236 - 43 0.000385 - 44 0.00228 - 45 0.0115 - 46 0.00183 - 47 0.107 - - 48 235 20 0 - 0 0.0255 - 2 0.0255 - 4 0.00851 - 7 0.417 - 14 0.00851 - 19 0.00426 - 21 0.0128 - 24 0.0128 - 26 0.034 - 28 0.0638 - 29 0.0213 - 30 0.0255 - 31 0.017 - 32 0.00851 - 33 0.0213 - 41 0.0979 - 42 0.00851 - 45 0.00426 - 46 0.00426 - 47 0.179 - - 54 12 2 0 - 7 0.833 - 28 0.167 - - 55 7 6 0 - 7 0.286 - 13 0.143 - 26 0.143 - 28 0.143 - 29 0.143 - 47 0.143 - - 57 19 7 0 - 4 0.0526 - 7 0.526 - 26 0.0526 - 29 0.105 - 30 0.0526 - 33 0.0526 - 41 0.158 - - 60 22 6 0 - 7 0.682 - 21 0.0455 - 28 0.0455 - 30 0.0455 - 41 0.0909 - 47 0.0909 - - 68 8 5 0 - 7 0.375 - 28 0.25 - 30 0.125 - 32 0.125 - 47 0.125 - - 56 295 15 2 - 2 0.00678 - 3 0.0542 - 4 0.42 - 7 0.00339 - 8 0.251 - 9 0.0169 - 10 0.0102 - 15 0.00339 - 20 0.122 - 21 0.0102 - 30 0.00678 - 31 0.0102 - 34 0.00339 - 41 0.00678 - 45 0.0746 - - 15 2 2 0 - 7 0.5 - 8 0.5 - - 46 2 1 0 - 45 1 - - 57 38 11 4 - 2 0.132 - 13 0.0526 - 14 0.0263 - 15 0.5 - 24 0.0263 - 28 0.0526 - 33 0.0526 - 41 0.0526 - 42 0.0263 - 44 0.0263 - 45 0.0526 - - 18 19 2 0 - 13 0.0526 - 15 0.947 - - 41 4 4 0 - 2 0.25 - 24 0.25 - 41 0.25 - 45 0.25 - - 47 4 4 0 - 13 0.25 - 14 0.25 - 28 0.25 - 33 0.25 - - 55 5 4 0 - 2 0.4 - 28 0.2 - 41 0.2 - 44 0.2 - - 58 108 17 5 - 0 0.00926 - 2 0.00926 - 3 0.037 - 4 0.0926 - 6 0.0185 - 7 0.0833 - 8 0.167 - 13 0.102 - 15 0.333 - 16 0.00926 - 18 0.0185 - 20 0.0278 - 28 0.00926 - 31 0.00926 - 40 0.0185 - 41 0.0185 - 46 0.037 - - 8 10 7 0 - 0 0.1 - 2 0.1 - 4 0.1 - 7 0.2 - 8 0.3 - 18 0.1 - 20 0.1 - - 13 37 10 0 - 3 0.0811 - 4 0.216 - 6 0.027 - 7 0.0811 - 8 0.216 - 13 0.135 - 15 0.162 - 18 0.027 - 20 0.027 - 46 0.027 - - 14 21 10 0 - 4 0.0476 - 6 0.0476 - 7 0.0952 - 8 0.238 - 13 0.19 - 15 0.19 - 20 0.0476 - 28 0.0476 - 31 0.0476 - 46 0.0476 - - 15 31 5 0 - 7 0.0645 - 8 0.0323 - 15 0.806 - 16 0.0323 - 40 0.0645 - - 47 5 4 0 - 3 0.2 - 13 0.2 - 41 0.2 - 46 0.4 - - 60 8217 36 21 - 0 0.0504 - 1 0.000122 - 2 0.0288 - 3 0.00231 - 4 0.00828 - 7 0.378 - 8 0.00633 - 9 0.000122 - 10 0.000122 - 13 0.0158 - 14 0.00645 - 15 0.00377 - 16 0.000122 - 18 0.00316 - 19 0.00122 - 20 0.000852 - 21 0.0113 - 22 0.000122 - 23 0.000122 - 24 0.00828 - 26 0.151 - 28 0.0612 - 29 0.0785 - 30 0.0245 - 31 0.0207 - 32 0.00876 - 33 0.0234 - 34 0.00073 - 37 0.00207 - 41 0.0211 - 42 0.0376 - 43 0.000122 - 44 0.0202 - 45 0.00146 - 46 0.000243 - 47 0.0221 - - 2 2 2 0 - 31 0.5 - 41 0.5 - - 3 8 4 0 - 0 0.25 - 26 0.375 - 28 0.125 - 29 0.25 - - 4 63 16 0 - 0 0.143 - 2 0.111 - 7 0.143 - 13 0.0317 - 14 0.0317 - 15 0.0159 - 24 0.0317 - 26 0.0317 - 28 0.0317 - 29 0.0476 - 31 0.0159 - 32 0.0159 - 33 0.0317 - 41 0.206 - 42 0.0159 - 47 0.0952 - - 7 7 5 0 - 0 0.429 - 2 0.143 - 7 0.143 - 13 0.143 - 45 0.143 - - 8 300 22 0 - 0 0.0933 - 2 0.0467 - 4 0.0267 - 7 0.31 - 8 0.00333 - 13 0.01 - 15 0.00667 - 18 0.03 - 20 0.00333 - 21 0.0133 - 24 0.0133 - 26 0.02 - 28 0.0867 - 29 0.05 - 30 0.0367 - 31 0.0267 - 32 0.00667 - 33 0.0333 - 37 0.00333 - 41 0.04 - 42 0.09 - 47 0.05 - - 9 5 5 0 - 2 0.2 - 28 0.2 - 29 0.2 - 32 0.2 - 41 0.2 - - 13 1033 27 0 - 0 0.0552 - 1 0.000968 - 2 0.0387 - 3 0.000968 - 4 0.0155 - 7 0.284 - 8 0.0029 - 13 0.00581 - 14 0.0106 - 15 0.00194 - 18 0.0029 - 19 0.00194 - 21 0.0271 - 24 0.00678 - 26 0.0736 - 28 0.0697 - 29 0.0794 - 30 0.0368 - 31 0.0281 - 32 0.0126 - 33 0.0523 - 37 0.000968 - 41 0.0542 - 42 0.092 - 44 0.00678 - 45 0.00194 - 47 0.0368 - - 14 1393 31 0 - 0 0.0682 - 2 0.0223 - 3 0.00144 - 4 0.0215 - 7 0.363 - 8 0.0223 - 9 0.000718 - 13 0.0625 - 14 0.00718 - 15 0.00287 - 16 0.000718 - 18 0.00718 - 19 0.00287 - 20 0.00359 - 21 0.0122 - 24 0.00861 - 26 0.0818 - 28 0.0653 - 29 0.0639 - 30 0.023 - 31 0.0294 - 32 0.0108 - 33 0.0294 - 34 0.000718 - 37 0.0101 - 41 0.0251 - 42 0.0101 - 43 0.000718 - 44 0.00144 - 45 0.00287 - 47 0.038 - - 15 70 16 0 - 0 0.0143 - 2 0.0286 - 4 0.0857 - 7 0.386 - 8 0.0143 - 18 0.0143 - 20 0.0143 - 28 0.0857 - 29 0.0571 - 30 0.0286 - 31 0.0143 - 33 0.0571 - 41 0.0286 - 42 0.0429 - 46 0.0143 - 47 0.114 - - 16 12 5 0 - 0 0.0833 - 4 0.333 - 7 0.25 - 28 0.167 - 47 0.167 - - 20 18 11 0 - 0 0.111 - 2 0.111 - 7 0.167 - 26 0.0556 - 28 0.0556 - 29 0.111 - 30 0.0556 - 32 0.0556 - 33 0.111 - 41 0.111 - 42 0.0556 - - 21 4 3 0 - 18 0.25 - 31 0.5 - 42 0.25 - - 31 5 3 0 - 0 0.4 - 7 0.4 - 33 0.2 - - 45 1 1 0 - 32 1 - - 46 1 1 0 - 45 1 - - 47 5237 31 0 - 0 0.0405 - 2 0.0258 - 3 0.00306 - 4 0.000573 - 7 0.409 - 8 0.00286 - 10 0.000191 - 13 0.00592 - 14 0.00573 - 15 0.0042 - 18 0.000382 - 19 0.000764 - 21 0.0084 - 22 0.000191 - 23 0.000191 - 24 0.00802 - 26 0.198 - 28 0.0571 - 29 0.0852 - 30 0.0223 - 31 0.0164 - 32 0.00726 - 33 0.0145 - 34 0.000955 - 37 0.000191 - 41 0.00955 - 42 0.0315 - 44 0.03 - 45 0.000382 - 46 0.000191 - 47 0.0107 - - 48 4 4 0 - 7 0.25 - 28 0.25 - 41 0.25 - 47 0.25 - - 55 19 8 0 - 0 0.105 - 2 0.158 - 7 0.368 - 26 0.105 - 28 0.0526 - 42 0.105 - 45 0.0526 - 47 0.0526 - - 56 14 6 0 - 4 0.0714 - 7 0.571 - 24 0.0714 - 29 0.0714 - 33 0.143 - 47 0.0714 - - 58 1 1 0 - 45 1 - - 60 15 4 0 - 7 0.8 - 8 0.0667 - 26 0.0667 - 31 0.0667 - - 62 60 9 3 - 7 0.367 - 18 0.0167 - 26 0.05 - 30 0.0167 - 34 0.0167 - 41 0.0167 - 42 0.05 - 45 0.383 - 47 0.0833 - - 2 10 3 0 - 7 0.7 - 26 0.2 - 30 0.1 - - 46 14 1 0 - 45 1 - - 47 13 6 0 - 7 0.308 - 34 0.0769 - 41 0.0769 - 42 0.154 - 45 0.154 - 47 0.231 - - 64 48 16 4 - 0 0.0833 - 2 0.0208 - 7 0.188 - 13 0.0208 - 19 0.0417 - 24 0.0208 - 26 0.0417 - 28 0.0833 - 29 0.0417 - 30 0.0208 - 31 0.0625 - 33 0.0625 - 41 0.208 - 45 0.0625 - 46 0.0208 - 47 0.0208 - - 2 5 4 0 - 7 0.4 - 28 0.2 - 29 0.2 - 45 0.2 - - 41 9 7 0 - 0 0.222 - 2 0.111 - 7 0.222 - 19 0.111 - 24 0.111 - 26 0.111 - 47 0.111 - - 42 11 8 0 - 0 0.0909 - 7 0.364 - 13 0.0909 - 26 0.0909 - 28 0.0909 - 29 0.0909 - 30 0.0909 - 33 0.0909 - - 47 22 9 0 - 0 0.0455 - 7 0.0455 - 19 0.0455 - 28 0.0455 - 31 0.136 - 33 0.0909 - 41 0.455 - 45 0.0909 - 46 0.0455 - - 68 206 22 3 - 0 0.00971 - 2 0.00971 - 3 0.00971 - 4 0.209 - 7 0.238 - 8 0.194 - 9 0.00485 - 13 0.0146 - 15 0.0291 - 18 0.034 - 20 0.0194 - 21 0.00485 - 26 0.0194 - 28 0.034 - 29 0.00485 - 30 0.0388 - 31 0.0146 - 32 0.00971 - 33 0.0291 - 41 0.00971 - 42 0.00971 - 47 0.0534 - - 8 17 5 0 - 7 0.294 - 8 0.529 - 15 0.0588 - 32 0.0588 - 47 0.0588 - - 13 71 12 0 - 2 0.0282 - 4 0.465 - 7 0.127 - 8 0.183 - 9 0.0141 - 13 0.0423 - 15 0.0423 - 26 0.0141 - 30 0.0141 - 33 0.0282 - 41 0.0141 - 47 0.0282 - - 14 113 19 0 - 0 0.0177 - 3 0.0177 - 4 0.0796 - 7 0.274 - 8 0.159 - 15 0.0177 - 18 0.0619 - 20 0.0354 - 21 0.00885 - 26 0.0265 - 28 0.0619 - 29 0.00885 - 30 0.0619 - 31 0.0265 - 32 0.00885 - 33 0.0354 - 41 0.00885 - 42 0.0177 - 47 0.0708 - - 69 5 3 0 - 4 0.2 - 18 0.4 - 45 0.4 - -56 3353 24 19 - 2 0.24 - 3 0.0289 - 4 0.15 - 6 0.000596 - 7 0.00209 - 8 0.17 - 9 0.00716 - 10 0.00388 - 13 0.0674 - 14 0.0155 - 15 0.0692 - 16 0.00418 - 18 0.0746 - 20 0.0435 - 21 0.00507 - 30 0.00537 - 31 0.00775 - 34 0.00119 - 36 0.00119 - 39 0.000596 - 40 0.000298 - 41 0.0537 - 42 0.000596 - 45 0.0474 - - 2 8 4 0 - 13 0.375 - 14 0.125 - 15 0.375 - 16 0.125 - - 3 22 9 1 - 2 0.318 - 4 0.136 - 8 0.182 - 15 0.0455 - 18 0.0909 - 20 0.0455 - 21 0.0455 - 39 0.0909 - 45 0.0455 - - 47 7 4 0 - 8 0.429 - 21 0.143 - 39 0.286 - 45 0.143 - - 4 10 4 0 - 2 0.1 - 21 0.1 - 41 0.1 - 45 0.7 - - 6 8 2 0 - 6 0.25 - 45 0.75 - - 7 3 1 0 - 15 1 - - 8 253 14 4 - 2 0.506 - 3 0.0356 - 4 0.107 - 7 0.00395 - 8 0.119 - 9 0.0119 - 13 0.00395 - 15 0.00791 - 18 0.0711 - 20 0.0395 - 30 0.00395 - 31 0.00395 - 41 0.0632 - 45 0.0237 - - 8 21 4 0 - 2 0.857 - 18 0.0476 - 41 0.0476 - 45 0.0476 - - 13 140 14 0 - 2 0.464 - 3 0.00714 - 4 0.15 - 7 0.00714 - 8 0.157 - 9 0.00714 - 13 0.00714 - 15 0.00714 - 18 0.0786 - 20 0.0357 - 30 0.00714 - 31 0.00714 - 41 0.0357 - 45 0.0286 - - 14 76 10 0 - 2 0.5 - 3 0.0526 - 4 0.0263 - 8 0.105 - 9 0.0263 - 15 0.0132 - 18 0.0789 - 20 0.0526 - 41 0.132 - 45 0.0132 - - 47 3 1 0 - 3 1 - - 13 596 17 4 - 2 0.201 - 3 0.0185 - 4 0.0839 - 8 0.309 - 9 0.00503 - 10 0.00336 - 13 0.173 - 14 0.0101 - 15 0.0436 - 18 0.0453 - 20 0.0185 - 30 0.0134 - 31 0.0101 - 34 0.00168 - 36 0.00168 - 41 0.052 - 45 0.0101 - - 13 101 12 0 - 2 0.337 - 3 0.0198 - 4 0.129 - 8 0.248 - 9 0.0099 - 10 0.0099 - 13 0.0891 - 15 0.0297 - 20 0.0198 - 31 0.0099 - 41 0.0891 - 45 0.0099 - - 14 94 9 0 - 2 0.479 - 4 0.0638 - 8 0.266 - 9 0.0106 - 13 0.0319 - 15 0.0106 - 20 0.0319 - 31 0.0213 - 41 0.0851 - - 30 4 1 0 - 2 1 - - 47 392 17 0 - 2 0.0893 - 3 0.023 - 4 0.0791 - 8 0.339 - 9 0.00255 - 10 0.00255 - 13 0.23 - 14 0.0153 - 15 0.0536 - 18 0.0689 - 20 0.0153 - 30 0.0204 - 31 0.00765 - 34 0.00255 - 36 0.00255 - 41 0.0357 - 45 0.0128 - - 14 320 16 1 - 2 0.0781 - 3 0.0375 - 4 0.0531 - 8 0.312 - 9 0.00625 - 10 0.00625 - 13 0.306 - 14 0.00313 - 15 0.0281 - 18 0.0188 - 20 0.0281 - 21 0.00938 - 30 0.00938 - 31 0.0281 - 41 0.0719 - 45 0.00313 - - 13 6 4 0 - 2 0.333 - 13 0.167 - 20 0.167 - 41 0.333 - - 15 301 16 6 - 2 0.159 - 3 0.0133 - 4 0.0897 - 7 0.0133 - 8 0.0399 - 9 0.00332 - 13 0.00664 - 14 0.0332 - 15 0.412 - 16 0.00997 - 18 0.0365 - 20 0.0133 - 21 0.00332 - 40 0.00332 - 41 0.0399 - 45 0.123 - - 7 3 3 0 - 2 0.333 - 15 0.333 - 40 0.333 - - 13 17 9 0 - 2 0.0588 - 4 0.294 - 8 0.235 - 14 0.0588 - 15 0.118 - 18 0.0588 - 20 0.0588 - 41 0.0588 - 45 0.0588 - - 14 6 6 0 - 2 0.167 - 3 0.167 - 4 0.167 - 8 0.167 - 9 0.167 - 15 0.167 - - 15 119 11 0 - 2 0.261 - 4 0.118 - 7 0.0084 - 8 0.0336 - 14 0.0672 - 15 0.252 - 16 0.0084 - 18 0.042 - 20 0.0084 - 41 0.0672 - 45 0.134 - - 16 9 5 0 - 2 0.222 - 15 0.222 - 18 0.111 - 20 0.222 - 45 0.222 - - 47 139 13 0 - 2 0.0719 - 3 0.0216 - 4 0.0432 - 7 0.0216 - 8 0.0216 - 13 0.0144 - 14 0.00719 - 15 0.612 - 16 0.0144 - 18 0.0216 - 21 0.00719 - 41 0.0216 - 45 0.122 - - 16 14 4 0 - 2 0.143 - 4 0.143 - 15 0.643 - 41 0.0714 - - 21 5 2 0 - 2 0.8 - 41 0.2 - - 30 11 4 0 - 2 0.273 - 8 0.273 - 13 0.364 - 20 0.0909 - - 31 9 3 0 - 2 0.556 - 4 0.222 - 21 0.222 - - 45 9 6 0 - 2 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 18 0.333 - 20 0.111 - - 47 1311 20 13 - 2 0.304 - 3 0.0297 - 4 0.188 - 7 0.00153 - 8 0.12 - 9 0.00763 - 10 0.00458 - 13 0.00763 - 14 0.0168 - 15 0.0259 - 16 0.00458 - 18 0.0931 - 20 0.0549 - 21 0.00458 - 30 0.00305 - 31 0.00534 - 34 0.00153 - 36 0.00153 - 41 0.0686 - 45 0.0572 - - 4 9 3 0 - 2 0.111 - 41 0.111 - 45 0.778 - - 6 6 1 0 - 45 1 - - 8 224 12 0 - 2 0.571 - 3 0.0268 - 4 0.116 - 7 0.00446 - 8 0.0402 - 9 0.00893 - 15 0.00446 - 18 0.0804 - 20 0.0446 - 30 0.00446 - 41 0.0714 - 45 0.0268 - - 13 298 15 0 - 2 0.396 - 3 0.00671 - 4 0.154 - 8 0.134 - 9 0.00671 - 10 0.00336 - 13 0.00336 - 15 0.0302 - 18 0.0906 - 20 0.0369 - 31 0.00671 - 34 0.00336 - 36 0.00336 - 41 0.104 - 45 0.0201 - - 14 117 13 0 - 2 0.197 - 3 0.0855 - 4 0.12 - 8 0.197 - 9 0.00855 - 10 0.0171 - 13 0.0342 - 15 0.0256 - 18 0.0342 - 20 0.0598 - 30 0.00855 - 31 0.0171 - 41 0.197 - - 15 154 13 0 - 2 0.292 - 4 0.162 - 7 0.00649 - 8 0.039 - 13 0.00649 - 14 0.0649 - 15 0.026 - 16 0.013 - 18 0.0455 - 20 0.026 - 21 0.00649 - 41 0.0779 - 45 0.234 - - 21 5 2 0 - 2 0.8 - 41 0.2 - - 31 9 3 0 - 2 0.556 - 4 0.222 - 21 0.222 - - 45 9 6 0 - 2 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 18 0.333 - 20 0.111 - - 48 10 4 0 - 2 0.6 - 4 0.2 - 18 0.1 - 20 0.1 - - 55 17 5 0 - 2 0.412 - 3 0.0588 - 4 0.0588 - 18 0.0588 - 45 0.412 - - 56 414 19 0 - 2 0.101 - 3 0.0459 - 4 0.297 - 8 0.181 - 9 0.0121 - 10 0.00725 - 13 0.00483 - 14 0.0266 - 15 0.0411 - 16 0.00966 - 18 0.14 - 20 0.087 - 21 0.00725 - 30 0.00483 - 31 0.00725 - 34 0.00242 - 36 0.00242 - 41 0.0121 - 45 0.00966 - - 62 2 1 0 - 45 1 - - 48 11 5 0 - 2 0.545 - 4 0.182 - 8 0.0909 - 18 0.0909 - 20 0.0909 - - 55 22 6 0 - 2 0.318 - 3 0.0909 - 4 0.0455 - 18 0.0455 - 42 0.0909 - 45 0.409 - - 56 419 19 0 - 2 0.1 - 3 0.0453 - 4 0.294 - 8 0.179 - 9 0.0119 - 10 0.00716 - 13 0.00477 - 14 0.0263 - 15 0.0406 - 16 0.00955 - 18 0.138 - 20 0.0859 - 21 0.00716 - 30 0.00477 - 31 0.00716 - 34 0.00239 - 36 0.00239 - 41 0.0119 - 45 0.0215 - - 62 2 1 0 - 45 1 - -57 191766 42 26 - 0 0.0127 - 1 6.26e-05 - 2 0.00876 - 3 0.0413 - 4 0.00784 - 6 9.91e-05 - 7 0.0115 - 8 0.0343 - 9 0.00545 - 10 0.00283 - 12 0.000167 - 13 0.352 - 14 0.15 - 15 0.0378 - 16 0.00175 - 18 0.000245 - 19 0.00638 - 20 5.21e-06 - 21 0.0315 - 22 0.00242 - 23 0.000209 - 24 0.00711 - 25 3.65e-05 - 26 0.000136 - 27 7.3e-05 - 28 0.0277 - 29 0.0264 - 30 0.0277 - 31 0.0819 - 32 0.00613 - 33 0.00986 - 34 0.000375 - 35 0.000261 - 37 9.39e-05 - 40 4.17e-05 - 41 0.0447 - 42 0.00376 - 43 0.00162 - 44 0.00109 - 45 0.00293 - 46 0.00618 - 47 0.0445 - - 2 77 17 3 - 0 0.013 - 3 0.0519 - 4 0.0519 - 8 0.013 - 9 0.013 - 13 0.338 - 14 0.0779 - 15 0.026 - 18 0.013 - 19 0.013 - 21 0.0519 - 24 0.026 - 28 0.026 - 31 0.013 - 41 0.221 - 42 0.026 - 46 0.026 - - 7 4 3 0 - 24 0.25 - 31 0.25 - 41 0.5 - - 47 57 10 0 - 3 0.0702 - 4 0.0702 - 8 0.0175 - 13 0.439 - 14 0.0702 - 15 0.0351 - 18 0.0175 - 21 0.0702 - 41 0.193 - 42 0.0175 - - 57 14 10 0 - 0 0.0714 - 9 0.0714 - 13 0.0714 - 14 0.143 - 19 0.0714 - 24 0.0714 - 28 0.0714 - 41 0.286 - 42 0.0714 - 46 0.0714 - - 4 29 13 2 - 0 0.103 - 7 0.069 - 8 0.103 - 13 0.0345 - 14 0.103 - 24 0.069 - 28 0.0345 - 29 0.0345 - 32 0.069 - 33 0.103 - 41 0.207 - 46 0.0345 - 47 0.0345 - - 7 18 9 0 - 0 0.111 - 7 0.111 - 14 0.0556 - 24 0.111 - 29 0.0556 - 32 0.0556 - 33 0.167 - 41 0.278 - 47 0.0556 - - 57 11 8 0 - 0 0.0909 - 8 0.273 - 13 0.0909 - 14 0.182 - 28 0.0909 - 32 0.0909 - 41 0.0909 - 46 0.0909 - - 6 16 6 1 - 3 0.0625 - 6 0.188 - 13 0.188 - 15 0.188 - 41 0.188 - 44 0.188 - - 6 3 1 0 - 44 1 - - 7 83565 41 0 - 0 0.0129 - 1 7.18e-05 - 2 0.00859 - 3 0.0374 - 4 0.00881 - 6 7.18e-05 - 7 0.0117 - 8 0.0334 - 9 0.00596 - 10 0.00335 - 12 0.000168 - 13 0.369 - 14 0.156 - 15 0.0407 - 16 0.00188 - 18 0.000239 - 19 0.006 - 21 0.0348 - 22 0.00268 - 23 0.000215 - 24 0.00704 - 25 2.39e-05 - 26 0.000132 - 27 1.2e-05 - 28 0.0257 - 29 0.0221 - 30 0.0204 - 31 0.0807 - 32 0.00594 - 33 0.00902 - 34 0.000419 - 35 0.000299 - 37 8.38e-05 - 40 3.59e-05 - 41 0.0318 - 42 0.00281 - 43 0.0017 - 44 0.00107 - 45 0.00294 - 46 0.0061 - 47 0.0473 - - 8 392 18 5 - 0 0.0281 - 2 0.00255 - 3 0.00255 - 8 0.0051 - 13 0.0765 - 14 0.436 - 20 0.00255 - 21 0.0179 - 24 0.00255 - 29 0.00255 - 30 0.00255 - 31 0.00255 - 41 0.342 - 42 0.0281 - 44 0.0051 - 45 0.0051 - 46 0.0332 - 47 0.0051 - - 7 342 7 0 - 8 0.00292 - 13 0.0614 - 14 0.488 - 41 0.377 - 42 0.0322 - 44 0.00585 - 46 0.0322 - - 14 1 1 0 - 20 1 - - 26 12 8 0 - 3 0.0833 - 13 0.167 - 14 0.0833 - 21 0.0833 - 31 0.0833 - 41 0.25 - 45 0.167 - 47 0.0833 - - 47 25 9 0 - 0 0.44 - 2 0.04 - 8 0.04 - 13 0.12 - 14 0.12 - 21 0.12 - 24 0.04 - 29 0.04 - 30 0.04 - - 57 10 5 0 - 13 0.3 - 21 0.3 - 41 0.2 - 46 0.1 - 47 0.1 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 8 5 0 - 3 0.125 - 8 0.125 - 13 0.5 - 28 0.125 - 41 0.125 - - 15 11 5 0 - 15 0.455 - 16 0.0909 - 42 0.0909 - 45 0.273 - 47 0.0909 - - 21 467 30 5 - 0 0.0428 - 2 0.0428 - 3 0.00214 - 4 0.00214 - 7 0.0171 - 8 0.03 - 10 0.00214 - 13 0.107 - 14 0.122 - 15 0.0107 - 18 0.00428 - 19 0.0214 - 21 0.0685 - 22 0.00214 - 24 0.00214 - 28 0.0364 - 29 0.0321 - 30 0.0193 - 31 0.0664 - 32 0.00642 - 33 0.0236 - 34 0.00214 - 37 0.00214 - 41 0.165 - 42 0.0257 - 43 0.00428 - 44 0.00857 - 45 0.0193 - 46 0.00642 - 47 0.105 - - 7 289 25 0 - 0 0.0346 - 2 0.0554 - 3 0.00346 - 7 0.0138 - 8 0.0381 - 10 0.00346 - 13 0.111 - 14 0.135 - 15 0.0138 - 19 0.00692 - 21 0.0554 - 22 0.00346 - 28 0.0208 - 29 0.0138 - 31 0.0727 - 32 0.00692 - 33 0.00346 - 37 0.00346 - 41 0.221 - 42 0.0311 - 43 0.00692 - 44 0.00346 - 45 0.0138 - 46 0.00692 - 47 0.121 - - 21 10 7 0 - 0 0.1 - 13 0.1 - 14 0.2 - 29 0.1 - 41 0.3 - 44 0.1 - 47 0.1 - - 30 4 3 0 - 41 0.5 - 44 0.25 - 47 0.25 - - 47 90 23 0 - 0 0.0556 - 2 0.0333 - 7 0.0444 - 8 0.0111 - 13 0.133 - 14 0.1 - 15 0.0111 - 18 0.0111 - 19 0.0667 - 21 0.144 - 24 0.0111 - 28 0.0444 - 29 0.0444 - 30 0.0556 - 31 0.0667 - 32 0.0111 - 33 0.0667 - 34 0.0111 - 41 0.0111 - 42 0.0111 - 45 0.0111 - 46 0.0111 - 47 0.0333 - - 57 62 18 0 - 0 0.0645 - 4 0.0161 - 8 0.0323 - 13 0.0484 - 14 0.0968 - 18 0.0161 - 19 0.0323 - 21 0.0323 - 28 0.0968 - 29 0.0968 - 30 0.0645 - 31 0.0645 - 33 0.0645 - 41 0.0645 - 42 0.0323 - 44 0.0161 - 45 0.0323 - 47 0.129 - - 22 7 7 0 - 0 0.143 - 21 0.143 - 22 0.143 - 30 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 24 55 11 0 - 0 0.0182 - 13 0.0909 - 14 0.0545 - 19 0.0545 - 28 0.2 - 29 0.109 - 30 0.145 - 31 0.236 - 32 0.0182 - 33 0.0545 - 41 0.0182 - - 26 8661 35 0 - 0 0.00185 - 2 0.00496 - 3 0.0928 - 4 0.00127 - 6 0.000231 - 7 0.00947 - 8 0.068 - 9 0.00266 - 10 0.000115 - 13 0.286 - 14 0.103 - 15 0.02 - 16 0.000924 - 19 0.00935 - 21 0.0461 - 22 0.00173 - 23 0.000231 - 24 0.00877 - 26 0.000115 - 27 0.000693 - 28 0.0462 - 29 0.0701 - 30 0.076 - 31 0.0876 - 32 0.00774 - 33 0.0162 - 35 0.000115 - 40 0.000115 - 41 0.0264 - 42 0.00196 - 43 0.00127 - 44 0.000231 - 45 0.000462 - 46 0.00531 - 47 0.00231 - - 28 3 3 0 - 2 0.333 - 14 0.333 - 41 0.333 - - 29 2 1 0 - 41 1 - - 30 1062 21 2 - 2 0.00847 - 3 0.00659 - 7 0.00282 - 8 0.00282 - 13 0.0574 - 14 0.0433 - 15 0.0122 - 16 0.00188 - 19 0.00282 - 21 0.0104 - 22 0.000942 - 28 0.000942 - 29 0.00188 - 30 0.000942 - 31 0.0132 - 41 0.65 - 42 0.0377 - 44 0.00188 - 45 0.00282 - 46 0.0113 - 47 0.13 - - 47 613 20 0 - 2 0.00326 - 3 0.00979 - 7 0.00326 - 8 0.00489 - 13 0.0897 - 14 0.0669 - 15 0.0212 - 16 0.00326 - 19 0.00326 - 21 0.0179 - 22 0.00163 - 28 0.00163 - 29 0.00326 - 31 0.0179 - 41 0.622 - 42 0.0636 - 44 0.00326 - 45 0.00163 - 46 0.00653 - 47 0.0555 - - 57 448 12 0 - 2 0.0156 - 3 0.00223 - 7 0.00223 - 13 0.0134 - 14 0.0112 - 19 0.00223 - 30 0.00223 - 31 0.0067 - 41 0.69 - 45 0.00446 - 46 0.0179 - 47 0.232 - - 31 361 21 3 - 2 0.0166 - 3 0.036 - 4 0.00554 - 7 0.0166 - 8 0.036 - 9 0.00277 - 13 0.108 - 14 0.0526 - 15 0.00277 - 21 0.0139 - 28 0.00277 - 30 0.00277 - 31 0.0139 - 32 0.00277 - 41 0.593 - 42 0.00554 - 43 0.00277 - 44 0.00277 - 45 0.0111 - 46 0.00277 - 47 0.0693 - - 7 2 1 0 - 14 1 - - 47 57 12 0 - 2 0.105 - 4 0.0175 - 7 0.0351 - 8 0.0702 - 13 0.0351 - 21 0.0351 - 28 0.0175 - 41 0.404 - 42 0.0175 - 44 0.0175 - 45 0.0526 - 47 0.193 - - 57 302 18 0 - 3 0.043 - 4 0.00331 - 7 0.0132 - 8 0.0298 - 9 0.00331 - 13 0.123 - 14 0.0563 - 15 0.00331 - 21 0.00993 - 30 0.00331 - 31 0.0166 - 32 0.00331 - 41 0.632 - 42 0.00331 - 43 0.00331 - 45 0.00331 - 46 0.00331 - 47 0.0464 - - 41 8 6 0 - 2 0.125 - 13 0.125 - 14 0.125 - 15 0.125 - 18 0.25 - 21 0.25 - - 42 3 1 0 - 25 1 - - 45 10 7 0 - 0 0.2 - 3 0.1 - 13 0.2 - 14 0.1 - 19 0.1 - 21 0.2 - 47 0.1 - - 46 2 1 0 - 21 1 - - 47 94690 41 22 - 0 0.0128 - 1 6.34e-05 - 2 0.00877 - 3 0.0418 - 4 0.00773 - 6 8.45e-05 - 7 0.0116 - 8 0.0327 - 9 0.00546 - 10 0.00276 - 12 0.000169 - 13 0.357 - 14 0.151 - 15 0.0383 - 16 0.00177 - 18 0.000232 - 19 0.00646 - 21 0.0268 - 22 0.00233 - 23 0.000211 - 24 0.0072 - 25 2.11e-05 - 26 0.000137 - 27 7.39e-05 - 28 0.0281 - 29 0.0267 - 30 0.0257 - 31 0.0814 - 32 0.00621 - 33 0.00998 - 34 0.00038 - 35 0.000253 - 37 9.5e-05 - 40 4.22e-05 - 41 0.0452 - 42 0.00379 - 43 0.00163 - 44 0.0011 - 45 0.00291 - 46 0.00625 - 47 0.045 - - 2 75 16 0 - 0 0.0133 - 3 0.0533 - 4 0.0533 - 8 0.0133 - 9 0.0133 - 13 0.347 - 14 0.08 - 15 0.0267 - 19 0.0133 - 21 0.0533 - 24 0.0267 - 28 0.0133 - 31 0.0133 - 41 0.227 - 42 0.0267 - 46 0.0267 - - 4 29 13 0 - 0 0.103 - 7 0.069 - 8 0.103 - 13 0.0345 - 14 0.103 - 24 0.069 - 28 0.0345 - 29 0.0345 - 32 0.069 - 33 0.103 - 41 0.207 - 46 0.0345 - 47 0.0345 - - 6 13 5 0 - 3 0.0769 - 13 0.231 - 15 0.231 - 41 0.231 - 44 0.231 - - 7 82196 41 0 - 0 0.0132 - 1 7.3e-05 - 2 0.00869 - 3 0.0379 - 4 0.00861 - 6 7.3e-05 - 7 0.0119 - 8 0.0297 - 9 0.00592 - 10 0.00316 - 12 0.00017 - 13 0.375 - 14 0.158 - 15 0.0413 - 16 0.00191 - 18 0.000243 - 19 0.0061 - 21 0.0258 - 22 0.00248 - 23 0.000219 - 24 0.00715 - 25 2.43e-05 - 26 0.000134 - 27 1.22e-05 - 28 0.0261 - 29 0.0225 - 30 0.0207 - 31 0.082 - 32 0.00603 - 33 0.00917 - 34 0.000426 - 35 0.00028 - 37 8.52e-05 - 40 3.65e-05 - 41 0.0323 - 42 0.00286 - 43 0.0017 - 44 0.00107 - 45 0.00293 - 46 0.00618 - 47 0.0481 - - 8 387 17 0 - 0 0.0284 - 2 0.00258 - 3 0.00258 - 8 0.00258 - 13 0.0775 - 14 0.442 - 21 0.0103 - 24 0.00258 - 29 0.00258 - 30 0.00258 - 31 0.00258 - 41 0.346 - 42 0.0284 - 44 0.00517 - 45 0.00517 - 46 0.0336 - 47 0.00517 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 7 5 0 - 3 0.143 - 8 0.143 - 13 0.429 - 28 0.143 - 41 0.143 - - 15 11 5 0 - 15 0.455 - 16 0.0909 - 42 0.0909 - 45 0.273 - 47 0.0909 - - 21 439 28 0 - 0 0.0456 - 2 0.0456 - 3 0.00228 - 4 0.00228 - 7 0.0182 - 8 0.0296 - 13 0.114 - 14 0.125 - 15 0.0114 - 18 0.00456 - 19 0.0228 - 21 0.0296 - 24 0.00228 - 28 0.0387 - 29 0.0342 - 30 0.0205 - 31 0.0706 - 32 0.00683 - 33 0.0251 - 34 0.00228 - 37 0.00228 - 41 0.173 - 42 0.0273 - 43 0.00456 - 44 0.00911 - 45 0.0137 - 46 0.00683 - 47 0.112 - - 22 7 7 0 - 0 0.143 - 21 0.143 - 22 0.143 - 30 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 24 55 11 0 - 0 0.0182 - 13 0.0909 - 14 0.0545 - 19 0.0545 - 28 0.2 - 29 0.109 - 30 0.145 - 31 0.236 - 32 0.0182 - 33 0.0545 - 41 0.0182 - - 26 8601 35 0 - 0 0.00186 - 2 0.00488 - 3 0.0935 - 4 0.00128 - 6 0.000233 - 7 0.00953 - 8 0.0671 - 9 0.00267 - 10 0.000116 - 13 0.288 - 14 0.103 - 15 0.0201 - 16 0.00093 - 19 0.00942 - 21 0.0414 - 22 0.00163 - 23 0.000233 - 24 0.00884 - 26 0.000116 - 27 0.000698 - 28 0.0465 - 29 0.0706 - 30 0.0765 - 31 0.0882 - 32 0.00779 - 33 0.0163 - 35 0.000116 - 40 0.000116 - 41 0.0265 - 42 0.00198 - 43 0.00128 - 44 0.000233 - 45 0.000465 - 46 0.00535 - 47 0.00233 - - 29 2 1 0 - 41 1 - - 30 1055 21 0 - 2 0.00853 - 3 0.00664 - 7 0.00284 - 8 0.00284 - 13 0.0578 - 14 0.0436 - 15 0.0123 - 16 0.0019 - 19 0.00284 - 21 0.00379 - 22 0.000948 - 28 0.000948 - 29 0.0019 - 30 0.000948 - 31 0.0133 - 41 0.654 - 42 0.0379 - 44 0.0019 - 45 0.00284 - 46 0.0114 - 47 0.131 - - 31 358 21 0 - 2 0.0168 - 3 0.0363 - 4 0.00559 - 7 0.0168 - 8 0.0363 - 9 0.00279 - 13 0.109 - 14 0.0531 - 15 0.00279 - 21 0.00559 - 28 0.00279 - 30 0.00279 - 31 0.014 - 32 0.00279 - 41 0.598 - 42 0.00559 - 43 0.00279 - 44 0.00279 - 45 0.0112 - 46 0.00279 - 47 0.0698 - - 41 2 2 0 - 2 0.5 - 15 0.5 - - 45 9 7 0 - 0 0.222 - 3 0.111 - 13 0.222 - 14 0.111 - 19 0.111 - 21 0.111 - 47 0.111 - - 49 623 28 0 - 0 0.0674 - 2 0.0369 - 3 0.00321 - 4 0.00642 - 7 0.00482 - 8 0.0161 - 9 0.00161 - 12 0.00161 - 13 0.114 - 14 0.0867 - 15 0.0112 - 19 0.00963 - 21 0.0321 - 22 0.00161 - 24 0.00963 - 28 0.0161 - 29 0.0289 - 30 0.0144 - 31 0.0754 - 32 0.00482 - 33 0.0144 - 37 0.00161 - 41 0.319 - 42 0.0385 - 44 0.00321 - 45 0.0161 - 46 0.00482 - 47 0.0594 - - 50 17 10 0 - 8 0.176 - 13 0.118 - 14 0.0588 - 24 0.0588 - 28 0.0588 - 30 0.0588 - 31 0.118 - 33 0.0588 - 41 0.235 - 45 0.0588 - - 55 135 19 0 - 0 0.141 - 2 0.0593 - 7 0.133 - 8 0.0148 - 13 0.0815 - 14 0.0519 - 15 0.00741 - 21 0.037 - 24 0.00741 - 26 0.00741 - 28 0.0444 - 29 0.0444 - 31 0.0741 - 32 0.00741 - 33 0.0296 - 41 0.156 - 42 0.037 - 46 0.00741 - 47 0.0593 - - 57 656 25 0 - 0 0.0244 - 2 0.00915 - 3 0.00457 - 4 0.00305 - 7 0.00457 - 8 0.0457 - 9 0.0061 - 12 0.00152 - 13 0.245 - 14 0.148 - 15 0.0259 - 19 0.00915 - 21 0.0152 - 24 0.0061 - 28 0.0884 - 29 0.0381 - 30 0.061 - 31 0.123 - 32 0.0213 - 33 0.0274 - 41 0.0396 - 42 0.0152 - 45 0.00305 - 46 0.00305 - 47 0.0305 - - 74 5 2 0 - 41 0.2 - 47 0.8 - - 49 628 28 4 - 0 0.0669 - 2 0.0366 - 3 0.00318 - 4 0.00637 - 7 0.00478 - 8 0.0175 - 9 0.00159 - 12 0.00159 - 13 0.113 - 14 0.086 - 15 0.0111 - 19 0.00955 - 21 0.035 - 22 0.00159 - 24 0.00955 - 28 0.0159 - 29 0.0287 - 30 0.0143 - 31 0.0748 - 32 0.00478 - 33 0.0143 - 37 0.00159 - 41 0.318 - 42 0.0382 - 44 0.00318 - 45 0.0175 - 46 0.00478 - 47 0.0589 - - 21 11 6 0 - 0 0.273 - 2 0.0909 - 13 0.0909 - 14 0.182 - 21 0.0909 - 41 0.273 - - 26 36 15 0 - 0 0.0278 - 2 0.0833 - 8 0.0833 - 13 0.306 - 14 0.0833 - 15 0.0278 - 19 0.0278 - 21 0.0556 - 28 0.0278 - 29 0.0556 - 30 0.0278 - 31 0.0833 - 33 0.0278 - 41 0.0556 - 44 0.0278 - - 48 1 1 0 - 7 1 - - 57 6 3 0 - 21 0.333 - 33 0.167 - 42 0.5 - - 50 17 10 0 - 8 0.176 - 13 0.118 - 14 0.0588 - 24 0.0588 - 28 0.0588 - 30 0.0588 - 31 0.118 - 33 0.0588 - 41 0.235 - 45 0.0588 - - 55 142 21 4 - 0 0.134 - 2 0.0563 - 3 0.00704 - 7 0.141 - 8 0.0141 - 13 0.0775 - 14 0.0493 - 15 0.00704 - 21 0.0423 - 24 0.00704 - 26 0.00704 - 28 0.0423 - 29 0.0423 - 30 0.00704 - 31 0.0704 - 32 0.00704 - 33 0.0282 - 41 0.162 - 42 0.0352 - 46 0.00704 - 47 0.0563 - - 41 2 2 0 - 30 0.5 - 41 0.5 - - 47 5 3 0 - 2 0.2 - 3 0.2 - 7 0.6 - - 55 3 2 0 - 8 0.333 - 41 0.667 - - 57 5 4 0 - 2 0.2 - 13 0.2 - 26 0.2 - 41 0.4 - - 57 1537 25 1 - 0 0.0104 - 2 0.013 - 3 0.00195 - 4 0.00846 - 7 0.00195 - 8 0.028 - 9 0.0026 - 12 0.000651 - 13 0.108 - 14 0.0638 - 15 0.0111 - 19 0.0039 - 21 0.0592 - 24 0.0026 - 28 0.0377 - 29 0.0163 - 30 0.318 - 31 0.249 - 32 0.00911 - 33 0.0117 - 41 0.0176 - 42 0.00846 - 45 0.00195 - 46 0.0013 - 47 0.013 - - 7 8 4 0 - 0 0.125 - 4 0.125 - 31 0.125 - 41 0.625 - - 74 5 2 0 - 41 0.2 - 47 0.8 - -58 7648 40 29 - 0 0.00628 - 2 0.0209 - 3 0.0234 - 4 0.0068 - 6 0.00157 - 7 0.0111 - 8 0.028 - 9 0.00144 - 10 0.00105 - 11 0.000262 - 12 0.00144 - 13 0.168 - 14 0.125 - 15 0.117 - 16 0.00405 - 18 0.00131 - 19 0.00902 - 20 0.000785 - 21 0.0369 - 22 0.00105 - 23 0.000262 - 24 0.00105 - 26 0.000785 - 28 0.00732 - 29 0.0034 - 30 0.00288 - 31 0.011 - 32 0.00366 - 33 0.00484 - 34 0.00209 - 35 0.000523 - 37 0.00235 - 40 0.0123 - 41 0.151 - 42 0.0554 - 43 0.000523 - 44 0.132 - 45 0.00392 - 46 0.036 - 47 0.00314 - - 0 2 1 0 - 2 1 - - 2 101 4 0 - 15 0.0099 - 41 0.327 - 42 0.406 - 44 0.257 - - 4 1 1 0 - 28 1 - - 7 6 3 0 - 41 0.333 - 42 0.167 - 44 0.5 - - 8 16 2 0 - 2 0.125 - 44 0.875 - - 13 22 5 0 - 2 0.0909 - 8 0.136 - 13 0.182 - 15 0.0455 - 44 0.545 - - 15 36 5 0 - 2 0.0556 - 15 0.139 - 41 0.0278 - 44 0.75 - 45 0.0278 - - 21 14 6 0 - 2 0.214 - 7 0.143 - 12 0.0714 - 41 0.143 - 42 0.286 - 44 0.143 - - 28 3 2 0 - 2 0.333 - 44 0.667 - - 32 2 1 0 - 2 1 - - 41 1008 32 9 - 0 0.0129 - 2 0.0595 - 3 0.0188 - 4 0.0109 - 6 0.00198 - 7 0.0218 - 8 0.0506 - 9 0.00298 - 10 0.000992 - 11 0.000992 - 12 0.00198 - 13 0.309 - 14 0.143 - 15 0.143 - 16 0.00397 - 18 0.00198 - 19 0.0139 - 21 0.101 - 22 0.00397 - 23 0.000992 - 24 0.00397 - 26 0.00198 - 28 0.0109 - 29 0.00893 - 30 0.00496 - 31 0.0268 - 32 0.00794 - 33 0.0129 - 34 0.00694 - 35 0.00198 - 37 0.00794 - 43 0.000992 - - 2 23 12 0 - 0 0.0435 - 3 0.0435 - 4 0.0435 - 6 0.0435 - 8 0.087 - 13 0.261 - 14 0.087 - 15 0.087 - 21 0.087 - 31 0.087 - 32 0.0435 - 33 0.087 - - 46 99 15 0 - 0 0.0202 - 4 0.0202 - 7 0.0202 - 8 0.121 - 13 0.424 - 14 0.152 - 15 0.0606 - 16 0.0101 - 19 0.0303 - 21 0.0505 - 24 0.0101 - 28 0.0303 - 31 0.0202 - 32 0.0202 - 43 0.0101 - - 49 51 12 0 - 0 0.0196 - 2 0.294 - 3 0.0196 - 7 0.0588 - 8 0.0784 - 13 0.216 - 14 0.118 - 15 0.0588 - 21 0.0588 - 28 0.0196 - 29 0.0196 - 31 0.0392 - - 52 6 3 0 - 7 0.5 - 13 0.333 - 30 0.167 - - 55 139 10 0 - 0 0.0144 - 3 0.0216 - 8 0.0144 - 10 0.00719 - 13 0.122 - 14 0.129 - 15 0.619 - 21 0.0576 - 31 0.00719 - 33 0.00719 - - 57 77 19 0 - 0 0.013 - 2 0.26 - 7 0.0649 - 8 0.039 - 13 0.221 - 14 0.104 - 15 0.0779 - 16 0.039 - 21 0.026 - 22 0.013 - 26 0.013 - 28 0.013 - 29 0.013 - 30 0.013 - 31 0.013 - 33 0.026 - 34 0.013 - 35 0.013 - 37 0.026 - - 62 507 29 0 - 0 0.00789 - 2 0.0375 - 3 0.0256 - 4 0.0158 - 6 0.00197 - 7 0.00986 - 8 0.0375 - 9 0.00592 - 11 0.00197 - 12 0.00197 - 13 0.349 - 14 0.168 - 15 0.0671 - 18 0.00394 - 19 0.0158 - 21 0.142 - 22 0.00592 - 23 0.00197 - 24 0.00592 - 26 0.00197 - 28 0.00789 - 29 0.00986 - 30 0.00394 - 31 0.0355 - 32 0.00789 - 33 0.00986 - 34 0.00592 - 35 0.00197 - 37 0.00986 - - 64 50 16 0 - 0 0.02 - 2 0.08 - 7 0.04 - 8 0.12 - 12 0.02 - 13 0.32 - 14 0.06 - 15 0.04 - 19 0.02 - 21 0.06 - 28 0.04 - 29 0.02 - 32 0.02 - 33 0.06 - 34 0.06 - 37 0.02 - - 66 45 12 0 - 2 0.0444 - 3 0.0222 - 7 0.0444 - 8 0.0222 - 13 0.378 - 14 0.156 - 15 0.0889 - 19 0.0444 - 21 0.133 - 29 0.0222 - 30 0.0222 - 31 0.0222 - - 42 412 25 9 - 0 0.00971 - 2 0.0146 - 3 0.034 - 4 0.00485 - 7 0.0121 - 8 0.0558 - 9 0.00243 - 10 0.00243 - 12 0.00243 - 13 0.354 - 14 0.26 - 15 0.102 - 16 0.00971 - 18 0.00243 - 19 0.00485 - 21 0.034 - 26 0.00243 - 28 0.017 - 29 0.00485 - 30 0.00485 - 31 0.0243 - 32 0.00971 - 33 0.00728 - 43 0.00243 - 46 0.0218 - - 2 40 13 0 - 3 0.05 - 4 0.025 - 8 0.125 - 13 0.325 - 14 0.025 - 15 0.075 - 21 0.1 - 28 0.025 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.075 - 46 0.025 - - 48 11 7 0 - 2 0.0909 - 3 0.0909 - 7 0.0909 - 8 0.0909 - 13 0.182 - 14 0.364 - 15 0.0909 - - 49 27 10 0 - 0 0.037 - 3 0.037 - 8 0.0741 - 12 0.037 - 13 0.481 - 14 0.148 - 15 0.0741 - 18 0.037 - 21 0.037 - 31 0.037 - - 51 3 3 0 - 13 0.333 - 15 0.333 - 26 0.333 - - 55 119 16 0 - 0 0.0168 - 2 0.0084 - 3 0.042 - 7 0.0084 - 8 0.0168 - 9 0.0084 - 13 0.345 - 14 0.319 - 15 0.118 - 16 0.0168 - 19 0.0084 - 21 0.0336 - 28 0.0168 - 31 0.0084 - 43 0.0084 - 46 0.0252 - - 57 81 15 0 - 0 0.0123 - 2 0.037 - 3 0.0617 - 4 0.0123 - 7 0.0247 - 8 0.0247 - 10 0.0123 - 13 0.309 - 14 0.321 - 15 0.037 - 21 0.0494 - 28 0.0123 - 31 0.037 - 33 0.0123 - 46 0.037 - - 62 65 12 0 - 2 0.0154 - 7 0.0154 - 8 0.138 - 13 0.385 - 14 0.277 - 15 0.0308 - 19 0.0154 - 21 0.0154 - 28 0.0154 - 31 0.0462 - 33 0.0308 - 46 0.0154 - - 64 38 8 0 - 8 0.0263 - 13 0.368 - 14 0.158 - 15 0.316 - 16 0.0526 - 28 0.0263 - 32 0.0263 - 46 0.0263 - - 69 15 3 0 - 13 0.467 - 14 0.333 - 15 0.2 - - 44 1007 29 18 - 0 0.00794 - 2 0.000993 - 3 0.0566 - 4 0.0119 - 6 0.00397 - 7 0.0129 - 8 0.0298 - 9 0.000993 - 10 0.000993 - 12 0.00199 - 13 0.183 - 14 0.229 - 15 0.291 - 16 0.00695 - 18 0.00199 - 19 0.0139 - 20 0.00298 - 21 0.00894 - 28 0.00894 - 29 0.00199 - 30 0.00397 - 31 0.00497 - 32 0.00199 - 33 0.00199 - 37 0.000993 - 40 0.0467 - 41 0.00993 - 46 0.0437 - 47 0.00894 - - 2 26 9 0 - 0 0.0769 - 6 0.0385 - 13 0.423 - 14 0.192 - 15 0.0769 - 16 0.0385 - 28 0.0385 - 30 0.0769 - 31 0.0385 - - 8 14 7 0 - 4 0.214 - 7 0.214 - 8 0.214 - 9 0.0714 - 13 0.143 - 15 0.0714 - 40 0.0714 - - 9 1 1 0 - 20 1 - - 13 12 7 0 - 3 0.167 - 4 0.333 - 7 0.167 - 10 0.0833 - 13 0.0833 - 15 0.0833 - 31 0.0833 - - 14 2 2 0 - 8 0.5 - 41 0.5 - - 15 27 6 0 - 4 0.111 - 15 0.667 - 16 0.037 - 19 0.0741 - 28 0.037 - 40 0.0741 - - 21 2 2 0 - 0 0.5 - 14 0.5 - - 28 2 1 0 - 28 1 - - 45 24 5 0 - 13 0.375 - 14 0.0417 - 15 0.458 - 18 0.0417 - 46 0.0833 - - 48 24 10 0 - 0 0.0417 - 2 0.0417 - 3 0.25 - 4 0.0417 - 8 0.125 - 13 0.333 - 14 0.0417 - 15 0.0417 - 16 0.0417 - 40 0.0417 - - 49 12 7 0 - 0 0.0833 - 8 0.25 - 12 0.167 - 13 0.25 - 15 0.0833 - 33 0.0833 - 47 0.0833 - - 51 3 3 0 - 8 0.333 - 15 0.333 - 47 0.333 - - 52 5 2 0 - 13 0.8 - 21 0.2 - - 55 676 20 0 - 3 0.0621 - 4 0.00148 - 6 0.00444 - 7 0.00888 - 8 0.00888 - 13 0.129 - 14 0.266 - 15 0.354 - 16 0.00592 - 18 0.00148 - 19 0.0163 - 20 0.00296 - 21 0.00296 - 28 0.00296 - 29 0.00148 - 31 0.00148 - 40 0.0636 - 41 0.00888 - 46 0.0562 - 47 0.00148 - - 57 52 14 0 - 0 0.0192 - 3 0.0192 - 8 0.0962 - 13 0.385 - 14 0.25 - 15 0.0385 - 19 0.0192 - 21 0.0385 - 28 0.0192 - 29 0.0192 - 30 0.0192 - 31 0.0385 - 41 0.0192 - 46 0.0192 - - 62 63 14 0 - 0 0.0317 - 3 0.0476 - 7 0.0159 - 8 0.0794 - 13 0.302 - 14 0.159 - 15 0.111 - 21 0.0635 - 28 0.0159 - 32 0.0317 - 33 0.0159 - 37 0.0159 - 46 0.0159 - 47 0.0952 - - 64 23 7 0 - 3 0.087 - 8 0.0435 - 13 0.565 - 14 0.174 - 28 0.0435 - 41 0.0435 - 46 0.0435 - - 69 25 5 0 - 3 0.04 - 13 0.16 - 14 0.56 - 15 0.2 - 30 0.04 - - 45 30 4 0 - 41 0.0667 - 42 0.1 - 44 0.8 - 46 0.0333 - - 46 105 4 1 - 13 0.00952 - 33 0.00952 - 41 0.962 - 46 0.019 - - 42 1 1 0 - 13 1 - - 47 2420 38 11 - 0 0.00909 - 2 0.0298 - 3 0.0364 - 4 0.0107 - 6 0.00248 - 7 0.0165 - 8 0.0434 - 9 0.00207 - 10 0.00124 - 11 0.000413 - 12 0.00207 - 13 0.26 - 14 0.194 - 15 0.163 - 16 0.0062 - 18 0.00207 - 19 0.012 - 20 0.00124 - 21 0.0496 - 22 0.00165 - 23 0.000413 - 24 0.00165 - 26 0.00124 - 28 0.0116 - 29 0.00537 - 30 0.00455 - 31 0.0174 - 32 0.00579 - 33 0.00744 - 34 0.00331 - 35 0.000826 - 37 0.00372 - 40 0.0194 - 41 0.0306 - 42 0.00248 - 43 0.000826 - 46 0.0351 - 47 0.00496 - - 2 12 3 0 - 15 0.0833 - 41 0.833 - 42 0.0833 - - 41 884 32 0 - 0 0.0113 - 2 0.0679 - 3 0.0192 - 4 0.0124 - 6 0.00226 - 7 0.0249 - 8 0.0577 - 9 0.00339 - 10 0.00113 - 11 0.00113 - 12 0.00226 - 13 0.337 - 14 0.145 - 15 0.0679 - 16 0.00339 - 18 0.00226 - 19 0.0158 - 21 0.11 - 22 0.00452 - 23 0.00113 - 24 0.00452 - 26 0.00226 - 28 0.0124 - 29 0.0102 - 30 0.00566 - 31 0.0305 - 32 0.00905 - 33 0.0147 - 34 0.00792 - 35 0.00226 - 37 0.00905 - 43 0.00113 - - 42 407 25 0 - 0 0.00983 - 2 0.0147 - 3 0.0344 - 4 0.00491 - 7 0.0123 - 8 0.0565 - 9 0.00246 - 10 0.00246 - 12 0.00246 - 13 0.359 - 14 0.263 - 15 0.0958 - 16 0.00983 - 18 0.00246 - 19 0.00246 - 21 0.0344 - 26 0.00246 - 28 0.0172 - 29 0.00491 - 30 0.00491 - 31 0.0246 - 32 0.00983 - 33 0.00737 - 43 0.00246 - 46 0.0197 - - 44 1007 29 0 - 0 0.00794 - 2 0.000993 - 3 0.0566 - 4 0.0119 - 6 0.00397 - 7 0.0129 - 8 0.0298 - 9 0.000993 - 10 0.000993 - 12 0.00199 - 13 0.183 - 14 0.229 - 15 0.291 - 16 0.00695 - 18 0.00199 - 19 0.0139 - 20 0.00298 - 21 0.00894 - 28 0.00894 - 29 0.00199 - 30 0.00397 - 31 0.00497 - 32 0.00199 - 33 0.00199 - 37 0.000993 - 40 0.0467 - 41 0.00993 - 46 0.0437 - 47 0.00894 - - 49 6 3 0 - 41 0.667 - 42 0.167 - 46 0.167 - - 51 1 1 0 - 42 1 - - 55 5 3 0 - 41 0.4 - 46 0.4 - 47 0.2 - - 57 9 5 0 - 2 0.333 - 14 0.111 - 15 0.111 - 41 0.333 - 42 0.111 - - 62 70 9 0 - 4 0.0143 - 8 0.0143 - 14 0.0286 - 16 0.0143 - 34 0.0143 - 41 0.557 - 42 0.0286 - 46 0.3 - 47 0.0286 - - 64 3 2 0 - 2 0.667 - 46 0.333 - - 66 12 2 0 - 41 0.333 - 46 0.667 - - 48 48 7 0 - 0 0.0208 - 13 0.0417 - 21 0.146 - 41 0.0208 - 42 0.229 - 44 0.5 - 45 0.0417 - - 49 102 7 3 - 7 0.0098 - 14 0.0098 - 21 0.0392 - 41 0.539 - 42 0.275 - 44 0.118 - 46 0.0098 - - 41 4 1 0 - 42 1 - - 47 57 5 0 - 14 0.0175 - 21 0.0526 - 41 0.684 - 42 0.14 - 44 0.105 - - 48 6 3 0 - 21 0.167 - 41 0.333 - 44 0.5 - - 51 8 3 0 - 41 0.125 - 42 0.5 - 44 0.375 - - 52 12 3 0 - 41 0.5 - 42 0.0833 - 44 0.417 - - 55 985 13 2 - 3 0.00102 - 7 0.00203 - 8 0.00102 - 9 0.00102 - 13 0.00102 - 19 0.00203 - 21 0.0223 - 41 0.143 - 42 0.121 - 44 0.686 - 45 0.0122 - 46 0.00609 - 47 0.00102 - - 41 101 4 0 - 41 0.109 - 42 0.0297 - 44 0.851 - 46 0.0099 - - 69 25 2 0 - 41 0.96 - 46 0.04 - - 57 225 9 1 - 2 0.0178 - 13 0.00889 - 14 0.00889 - 15 0.00444 - 41 0.356 - 42 0.364 - 44 0.231 - 45 0.00444 - 46 0.00444 - - 41 12 2 0 - 42 0.917 - 44 0.0833 - - 58 4 3 0 - 13 0.5 - 21 0.25 - 46 0.25 - - 62 781 11 2 - 4 0.00128 - 8 0.00128 - 14 0.00256 - 16 0.00128 - 34 0.00128 - 41 0.699 - 42 0.0858 - 44 0.0807 - 45 0.0128 - 46 0.111 - 47 0.00256 - - 41 5 3 0 - 41 0.2 - 42 0.4 - 45 0.4 - - 46 2 1 0 - 45 1 - - 64 117 8 0 - 2 0.0171 - 10 0.00855 - 15 0.00855 - 21 0.00855 - 41 0.427 - 42 0.325 - 44 0.197 - 46 0.00855 - - 66 86 2 0 - 41 0.57 - 46 0.43 - - 67 6 3 0 - 41 0.167 - 44 0.167 - 45 0.667 - - 68 4 3 0 - 21 0.25 - 42 0.5 - 44 0.25 - - 69 68 9 0 - 10 0.0147 - 13 0.0294 - 14 0.0441 - 15 0.176 - 19 0.118 - 21 0.0147 - 41 0.0147 - 42 0.221 - 44 0.368 - -59 5288 19 7 - 0 0.00265 - 2 0.000378 - 3 0.000378 - 4 0.00151 - 7 0.000378 - 8 0.00227 - 9 0.000378 - 13 0.0223 - 14 0.0129 - 15 0.00227 - 19 0.0318 - 21 0.000756 - 24 0.000756 - 28 0.326 - 29 0.179 - 30 0.151 - 31 0.169 - 32 0.0416 - 33 0.0552 - - 2 2 1 0 - 24 1 - - 7 65 11 0 - 8 0.0154 - 13 0.0308 - 14 0.0154 - 15 0.0154 - 19 0.0769 - 28 0.154 - 29 0.277 - 30 0.108 - 31 0.215 - 32 0.0308 - 33 0.0615 - - 8 6 4 0 - 8 0.167 - 14 0.167 - 28 0.5 - 31 0.167 - - 21 84 12 0 - 0 0.0119 - 3 0.0119 - 13 0.0833 - 14 0.0238 - 15 0.0119 - 19 0.0714 - 28 0.238 - 29 0.107 - 30 0.155 - 31 0.226 - 32 0.0238 - 33 0.0357 - - 23 1 1 0 - 0 1 - - 24 2483 18 1 - 0 0.00201 - 2 0.000805 - 4 0.00161 - 7 0.000403 - 8 0.00161 - 9 0.000403 - 13 0.0201 - 14 0.0117 - 15 0.00161 - 19 0.0294 - 21 0.000805 - 24 0.000403 - 28 0.333 - 29 0.178 - 30 0.153 - 31 0.166 - 32 0.0427 - 33 0.056 - - 2 2 1 0 - 13 1 - - 47 2642 18 4 - 0 0.00265 - 3 0.000379 - 4 0.00151 - 7 0.000379 - 8 0.00227 - 9 0.000379 - 13 0.0223 - 14 0.0129 - 15 0.00227 - 19 0.0318 - 21 0.000757 - 24 0.000379 - 28 0.326 - 29 0.179 - 30 0.151 - 31 0.169 - 32 0.0416 - 33 0.0553 - - 7 65 11 0 - 8 0.0154 - 13 0.0308 - 14 0.0154 - 15 0.0154 - 19 0.0769 - 28 0.154 - 29 0.277 - 30 0.108 - 31 0.215 - 32 0.0308 - 33 0.0615 - - 8 6 4 0 - 8 0.167 - 14 0.167 - 28 0.5 - 31 0.167 - - 21 84 12 0 - 0 0.0119 - 3 0.0119 - 13 0.0833 - 14 0.0238 - 15 0.0119 - 19 0.0714 - 28 0.238 - 29 0.107 - 30 0.155 - 31 0.226 - 32 0.0238 - 33 0.0357 - - 23 1 1 0 - 0 1 - -60 27233 41 25 - 0 0.0313 - 1 7.34e-05 - 2 0.0264 - 3 0.111 - 4 0.0584 - 7 0.296 - 8 0.0205 - 9 0.0164 - 10 0.0061 - 13 0.0187 - 14 0.00639 - 15 0.00323 - 16 0.000147 - 17 0.000257 - 18 0.00804 - 19 0.000808 - 20 0.00463 - 21 0.0559 - 22 0.00382 - 23 7.34e-05 - 24 0.0051 - 25 0.00011 - 26 0.11 - 28 0.038 - 29 0.0476 - 30 0.0154 - 31 0.0166 - 32 0.00543 - 33 0.0142 - 34 0.000441 - 36 0.000147 - 37 0.00125 - 38 0.0047 - 39 0.00683 - 41 0.0143 - 42 0.0234 - 43 0.000184 - 44 0.0134 - 45 0.00114 - 46 0.00022 - 47 0.0135 - - 2 230 9 4 - 3 0.626 - 4 0.0304 - 7 0.00435 - 8 0.00435 - 13 0.265 - 14 0.0565 - 31 0.00435 - 41 0.00435 - 43 0.00435 - - 3 94 4 0 - 3 0.543 - 4 0.0426 - 13 0.404 - 31 0.0106 - - 7 4 3 0 - 3 0.25 - 4 0.5 - 7 0.25 - - 9 51 3 0 - 3 0.627 - 13 0.176 - 14 0.196 - - 39 43 5 0 - 3 0.907 - 4 0.0233 - 14 0.0233 - 41 0.0233 - 43 0.0233 - - 3 6618 35 9 - 0 0.011 - 2 0.0193 - 3 0.317 - 4 0.0252 - 7 0.221 - 8 0.0113 - 9 0.000151 - 10 0.0192 - 13 0.0119 - 14 0.00287 - 15 0.00181 - 16 0.000151 - 18 0.00468 - 19 0.000302 - 20 0.00181 - 21 0.0979 - 22 0.000151 - 24 0.00121 - 25 0.000453 - 26 0.116 - 28 0.00861 - 29 0.0323 - 30 0.00378 - 31 0.00423 - 32 0.00212 - 33 0.00242 - 34 0.000453 - 38 0.0192 - 39 0.0264 - 41 0.0068 - 42 0.0258 - 43 0.000151 - 44 0.000453 - 45 0.000907 - 47 0.00181 - - 2 115 19 0 - 0 0.0261 - 2 0.0435 - 3 0.209 - 4 0.0609 - 7 0.243 - 8 0.0435 - 13 0.0174 - 14 0.0087 - 19 0.0087 - 21 0.0261 - 26 0.0087 - 28 0.0261 - 29 0.0174 - 31 0.0261 - 32 0.0087 - 33 0.0087 - 38 0.0087 - 39 0.191 - 45 0.0174 - - 3 2100 30 0 - 0 0.0229 - 2 0.0143 - 4 0.0305 - 7 0.277 - 8 0.0162 - 10 0.00143 - 13 0.00286 - 14 0.00667 - 15 0.00524 - 16 0.000476 - 18 0.0138 - 20 0.00571 - 21 0.0419 - 22 0.000476 - 24 0.00238 - 25 0.00143 - 26 0.224 - 28 0.0181 - 29 0.0929 - 30 0.00857 - 31 0.00905 - 32 0.000952 - 33 0.00476 - 34 0.00143 - 38 0.0576 - 39 0.0376 - 41 0.0171 - 42 0.0786 - 44 0.000476 - 47 0.00571 - - 7 33 11 0 - 0 0.0303 - 2 0.0606 - 3 0.0303 - 7 0.303 - 13 0.0303 - 21 0.303 - 31 0.0303 - 32 0.0606 - 33 0.0303 - 41 0.0909 - 42 0.0303 - - 8 4 2 0 - 3 0.5 - 4 0.5 - - 9 13 8 0 - 0 0.154 - 2 0.0769 - 10 0.0769 - 28 0.0769 - 29 0.231 - 30 0.0769 - 32 0.0769 - 41 0.231 - - 13 293 22 0 - 0 0.0205 - 2 0.0751 - 3 0.294 - 4 0.0546 - 7 0.171 - 8 0.0102 - 10 0.00341 - 13 0.0102 - 14 0.00683 - 15 0.00341 - 18 0.00341 - 21 0.041 - 26 0.232 - 28 0.0137 - 29 0.00683 - 30 0.00683 - 31 0.0102 - 32 0.0137 - 33 0.00683 - 39 0.00683 - 42 0.00341 - 45 0.00683 - - 14 71 14 0 - 0 0.0986 - 2 0.127 - 3 0.0423 - 4 0.0141 - 7 0.254 - 14 0.0141 - 21 0.127 - 26 0.169 - 28 0.0563 - 29 0.0141 - 41 0.0282 - 42 0.0282 - 44 0.0141 - 45 0.0141 - - 26 310 22 0 - 0 0.0194 - 3 0.171 - 4 0.0258 - 7 0.155 - 8 0.0194 - 9 0.00323 - 10 0.00323 - 13 0.216 - 19 0.00323 - 21 0.0419 - 24 0.00645 - 28 0.0226 - 29 0.0323 - 30 0.0129 - 31 0.00323 - 32 0.0129 - 33 0.00645 - 39 0.232 - 42 0.00323 - 43 0.00323 - 44 0.00323 - 45 0.00323 - - 47 3678 16 0 - 2 0.016 - 3 0.525 - 4 0.0188 - 7 0.198 - 8 0.00734 - 10 0.0329 - 14 0.000272 - 18 0.000272 - 21 0.139 - 24 0.000272 - 26 0.0593 - 29 0.000272 - 31 0.000272 - 38 0.00136 - 41 0.000272 - 42 0.000272 - - 4 242 23 7 - 0 0.0124 - 2 0.0248 - 3 0.00413 - 4 0.00413 - 7 0.343 - 10 0.0289 - 13 0.0207 - 14 0.00413 - 17 0.0289 - 21 0.165 - 24 0.0165 - 26 0.0331 - 28 0.0702 - 29 0.0702 - 30 0.0165 - 31 0.0248 - 32 0.00413 - 33 0.0289 - 41 0.00826 - 42 0.00826 - 44 0.00413 - 46 0.00413 - 47 0.0744 - - 2 7 5 0 - 7 0.286 - 29 0.286 - 31 0.143 - 32 0.143 - 47 0.143 - - 3 79 19 0 - 0 0.0253 - 2 0.038 - 3 0.0127 - 7 0.278 - 10 0.0253 - 13 0.0506 - 17 0.0127 - 21 0.0127 - 24 0.0127 - 26 0.0253 - 28 0.0633 - 29 0.127 - 30 0.0253 - 33 0.038 - 41 0.0253 - 42 0.0253 - 44 0.0127 - 46 0.0127 - 47 0.177 - - 8 39 9 0 - 7 0.154 - 10 0.0769 - 13 0.0256 - 14 0.0256 - 21 0.513 - 26 0.0769 - 28 0.0769 - 29 0.0256 - 30 0.0256 - - 9 7 3 0 - 7 0.429 - 26 0.429 - 28 0.143 - - 13 35 12 0 - 0 0.0286 - 2 0.0571 - 4 0.0286 - 7 0.429 - 17 0.114 - 21 0.143 - 24 0.0286 - 28 0.0286 - 29 0.0286 - 31 0.0286 - 33 0.0571 - 47 0.0286 - - 39 24 9 0 - 7 0.208 - 17 0.0417 - 21 0.0833 - 28 0.25 - 29 0.0833 - 30 0.0417 - 31 0.167 - 33 0.0833 - 47 0.0417 - - 47 41 6 0 - 7 0.634 - 10 0.0488 - 17 0.0244 - 21 0.244 - 24 0.0244 - 47 0.0244 - - 7 1759 31 14 - 0 0.0352 - 1 0.000569 - 2 0.0222 - 3 0.0188 - 4 0.00227 - 7 0.204 - 8 0.0824 - 9 0.252 - 10 0.00114 - 13 0.00569 - 14 0.0131 - 15 0.00114 - 16 0.000569 - 19 0.00114 - 21 0.0495 - 22 0.0563 - 24 0.00682 - 26 0.0324 - 28 0.0591 - 29 0.0233 - 30 0.021 - 31 0.0171 - 32 0.00625 - 33 0.0347 - 37 0.00625 - 41 0.0148 - 42 0.00455 - 44 0.00284 - 45 0.00227 - 46 0.00114 - 47 0.0222 - - 3 910 26 0 - 0 0.0297 - 2 0.0176 - 3 0.0275 - 4 0.0022 - 7 0.137 - 8 0.112 - 9 0.289 - 13 0.0011 - 14 0.0044 - 15 0.0011 - 16 0.0011 - 21 0.0593 - 22 0.0725 - 24 0.0022 - 26 0.0396 - 28 0.0418 - 29 0.0286 - 30 0.0231 - 31 0.0154 - 32 0.0044 - 33 0.0396 - 37 0.0011 - 41 0.0187 - 42 0.00549 - 45 0.0011 - 47 0.0242 - - 4 45 17 0 - 0 0.0222 - 3 0.0444 - 4 0.0222 - 7 0.0889 - 8 0.0222 - 9 0.333 - 10 0.0222 - 13 0.0222 - 14 0.0444 - 21 0.0444 - 22 0.156 - 24 0.0222 - 29 0.0222 - 31 0.0444 - 33 0.0222 - 41 0.0222 - 42 0.0444 - - 7 5 2 0 - 3 0.8 - 9 0.2 - - 8 11 4 0 - 8 0.0909 - 14 0.364 - 21 0.273 - 22 0.273 - - 10 161 20 0 - 0 0.0435 - 1 0.00621 - 2 0.0497 - 7 0.404 - 8 0.00621 - 13 0.00621 - 14 0.00621 - 21 0.00621 - 24 0.0248 - 26 0.0248 - 28 0.137 - 29 0.0248 - 30 0.0435 - 31 0.0248 - 32 0.00621 - 33 0.0186 - 37 0.0621 - 41 0.0248 - 45 0.00621 - 47 0.0745 - - 13 26 13 0 - 0 0.115 - 4 0.0385 - 9 0.346 - 13 0.0385 - 21 0.0769 - 22 0.0769 - 26 0.0385 - 30 0.0385 - 31 0.0385 - 33 0.0769 - 42 0.0385 - 45 0.0385 - 47 0.0385 - - 14 16 5 0 - 2 0.125 - 7 0.0625 - 9 0.375 - 14 0.375 - 46 0.0625 - - 17 27 10 0 - 0 0.0741 - 7 0.111 - 9 0.481 - 21 0.0741 - 22 0.0741 - 26 0.037 - 28 0.037 - 30 0.037 - 32 0.037 - 45 0.037 - - 21 16 8 0 - 0 0.125 - 3 0.0625 - 8 0.0625 - 9 0.438 - 13 0.0625 - 21 0.0625 - 22 0.0625 - 41 0.125 - - 26 53 12 0 - 7 0.472 - 13 0.0377 - 14 0.0566 - 19 0.0189 - 21 0.0189 - 24 0.0189 - 28 0.226 - 31 0.0189 - 32 0.0377 - 33 0.0377 - 41 0.0377 - 47 0.0189 - - 28 2 1 0 - 22 1 - - 38 10 8 0 - 2 0.2 - 8 0.1 - 9 0.1 - 21 0.1 - 26 0.1 - 28 0.2 - 29 0.1 - 33 0.1 - - 39 470 23 0 - 0 0.0404 - 2 0.0213 - 7 0.287 - 8 0.0809 - 9 0.27 - 10 0.00213 - 13 0.00638 - 14 0.00638 - 15 0.00213 - 19 0.00213 - 21 0.0404 - 22 0.034 - 24 0.00851 - 26 0.0298 - 28 0.0596 - 29 0.0191 - 30 0.0149 - 31 0.0149 - 32 0.00638 - 33 0.034 - 44 0.0106 - 46 0.00213 - 47 0.00638 - - 47 3 3 0 - 2 0.333 - 9 0.333 - 21 0.333 - - 8 256 17 9 - 0 0.0117 - 2 0.00391 - 3 0.0156 - 4 0.195 - 7 0.117 - 10 0.00781 - 15 0.00391 - 21 0.594 - 22 0.00391 - 26 0.00781 - 28 0.00391 - 29 0.00391 - 30 0.00781 - 31 0.00781 - 33 0.00781 - 39 0.00391 - 41 0.00391 - - 3 37 9 0 - 0 0.0541 - 4 0.459 - 7 0.297 - 26 0.027 - 28 0.027 - 29 0.027 - 30 0.027 - 31 0.0541 - 33 0.027 - - 7 140 4 0 - 0 0.00714 - 4 0.00714 - 7 0.00714 - 21 0.979 - - 13 4 3 0 - 4 0.5 - 7 0.25 - 41 0.25 - - 14 3 3 0 - 2 0.333 - 7 0.333 - 33 0.333 - - 21 1 1 0 - 30 1 - - 26 4 3 0 - 4 0.25 - 7 0.5 - 15 0.25 - - 39 8 3 0 - 4 0.625 - 7 0.25 - 21 0.125 - - 41 1 1 0 - 39 1 - - 47 56 7 0 - 3 0.0714 - 4 0.411 - 7 0.196 - 10 0.0357 - 21 0.25 - 22 0.0179 - 26 0.0179 - - 9 511 25 2 - 0 0.0509 - 2 0.133 - 3 0.0254 - 4 0.0274 - 7 0.29 - 8 0.00196 - 13 0.0157 - 14 0.00783 - 15 0.00391 - 19 0.00196 - 20 0.00196 - 21 0.047 - 24 0.00391 - 26 0.0391 - 28 0.0685 - 29 0.0705 - 30 0.0352 - 31 0.0391 - 32 0.00587 - 33 0.0235 - 37 0.00391 - 41 0.0509 - 42 0.0157 - 45 0.00196 - 47 0.0352 - - 7 443 23 0 - 0 0.0587 - 2 0.0384 - 4 0.0316 - 7 0.334 - 13 0.0158 - 14 0.00677 - 15 0.00451 - 19 0.00226 - 20 0.00226 - 21 0.0519 - 24 0.00451 - 26 0.0451 - 28 0.079 - 29 0.0813 - 30 0.0406 - 31 0.0451 - 32 0.00677 - 33 0.0271 - 37 0.00451 - 41 0.0587 - 42 0.0181 - 45 0.00226 - 47 0.0406 - - 47 67 5 0 - 2 0.761 - 3 0.194 - 8 0.0149 - 14 0.0149 - 21 0.0149 - - 10 163 2 0 - 2 0.00613 - 7 0.994 - - 13 383 11 5 - 3 0.765 - 4 0.094 - 7 0.0731 - 8 0.0104 - 10 0.00522 - 20 0.00261 - 21 0.0339 - 24 0.00261 - 26 0.00783 - 33 0.00261 - 42 0.00261 - - 2 23 1 0 - 3 1 - - 7 3 2 0 - 4 0.667 - 7 0.333 - - 26 108 3 0 - 3 0.972 - 7 0.0185 - 21 0.00926 - - 39 1 1 0 - 20 1 - - 47 248 10 0 - 3 0.665 - 4 0.137 - 7 0.101 - 8 0.0161 - 10 0.00806 - 21 0.0484 - 24 0.00403 - 26 0.0121 - 33 0.00403 - 42 0.00403 - - 14 104 11 4 - 2 0.00962 - 3 0.683 - 4 0.00962 - 7 0.173 - 8 0.0288 - 15 0.00962 - 21 0.0385 - 26 0.00962 - 28 0.0192 - 41 0.00962 - 45 0.00962 - - 3 1 1 0 - 4 1 - - 7 10 6 0 - 2 0.1 - 3 0.4 - 7 0.1 - 28 0.2 - 41 0.1 - 45 0.1 - - 47 82 4 0 - 3 0.707 - 7 0.207 - 8 0.0366 - 21 0.0488 - - 58 1 1 0 - 15 1 - - 15 2 2 0 - 3 0.5 - 15 0.5 - - 17 43 7 0 - 4 0.0233 - 7 0.628 - 10 0.0698 - 14 0.0233 - 21 0.209 - 28 0.0233 - 31 0.0233 - - 21 1368 30 13 - 0 0.0775 - 2 0.0702 - 3 0.00146 - 4 0.0139 - 7 0.284 - 8 0.00439 - 13 0.0168 - 14 0.0102 - 15 0.00512 - 18 0.00146 - 19 0.00292 - 20 0.00146 - 21 0.0694 - 23 0.000731 - 24 0.0146 - 26 0.0373 - 28 0.0877 - 29 0.0687 - 30 0.0234 - 31 0.0307 - 32 0.0183 - 33 0.0424 - 36 0.000731 - 37 0.00219 - 41 0.0387 - 42 0.0175 - 43 0.000731 - 44 0.00512 - 45 0.00219 - 47 0.0497 - - 3 628 30 0 - 0 0.0955 - 2 0.0446 - 3 0.00318 - 4 0.00796 - 7 0.247 - 8 0.00159 - 13 0.0175 - 14 0.00478 - 15 0.00955 - 18 0.00159 - 19 0.00318 - 20 0.00318 - 21 0.0525 - 23 0.00159 - 24 0.00637 - 26 0.0318 - 28 0.0732 - 29 0.0971 - 30 0.0271 - 31 0.035 - 32 0.0223 - 33 0.0589 - 36 0.00159 - 37 0.00318 - 41 0.0478 - 42 0.0159 - 43 0.00159 - 44 0.00796 - 45 0.00318 - 47 0.0732 - - 4 38 10 0 - 2 0.0526 - 7 0.263 - 14 0.0263 - 21 0.0789 - 28 0.0263 - 29 0.0789 - 31 0.0526 - 33 0.105 - 41 0.132 - 47 0.184 - - 7 71 14 0 - 0 0.0845 - 2 0.0423 - 7 0.183 - 8 0.0423 - 21 0.394 - 24 0.0423 - 26 0.0141 - 28 0.0282 - 29 0.0282 - 32 0.0141 - 33 0.0563 - 41 0.0141 - 42 0.0282 - 47 0.0282 - - 8 152 20 0 - 0 0.0461 - 2 0.0592 - 4 0.00658 - 7 0.375 - 8 0.00658 - 13 0.0132 - 14 0.0263 - 21 0.0461 - 24 0.0329 - 26 0.0526 - 28 0.164 - 29 0.0526 - 30 0.0197 - 31 0.0197 - 32 0.0132 - 33 0.0132 - 37 0.00658 - 41 0.0132 - 42 0.0132 - 47 0.0197 - - 9 15 9 0 - 0 0.0667 - 4 0.133 - 7 0.267 - 21 0.0667 - 26 0.0667 - 28 0.0667 - 32 0.133 - 41 0.133 - 45 0.0667 - - 13 12 8 0 - 2 0.25 - 21 0.0833 - 24 0.0833 - 28 0.0833 - 29 0.0833 - 32 0.0833 - 41 0.0833 - 47 0.25 - - 14 4 3 0 - 7 0.5 - 24 0.25 - 29 0.25 - - 17 9 6 0 - 2 0.111 - 7 0.222 - 24 0.111 - 29 0.222 - 33 0.111 - 47 0.222 - - 21 59 17 0 - 0 0.0508 - 2 0.0169 - 7 0.102 - 13 0.0508 - 14 0.0847 - 19 0.0339 - 21 0.0169 - 24 0.0169 - 26 0.0169 - 28 0.288 - 29 0.0508 - 31 0.0678 - 32 0.0339 - 33 0.0508 - 41 0.0847 - 42 0.0169 - 47 0.0169 - - 26 21 10 0 - 0 0.19 - 2 0.0952 - 7 0.19 - 14 0.0476 - 15 0.0476 - 28 0.19 - 30 0.0952 - 33 0.0476 - 41 0.0476 - 42 0.0476 - - 38 11 8 0 - 7 0.182 - 21 0.0909 - 24 0.0909 - 26 0.182 - 28 0.182 - 29 0.0909 - 31 0.0909 - 42 0.0909 - - 39 296 20 0 - 0 0.0811 - 2 0.0676 - 4 0.0372 - 7 0.409 - 8 0.00338 - 13 0.0236 - 18 0.00338 - 21 0.0304 - 24 0.0101 - 26 0.0608 - 28 0.0709 - 29 0.0405 - 30 0.0338 - 31 0.0338 - 32 0.0101 - 33 0.0203 - 41 0.0203 - 42 0.0236 - 44 0.00676 - 47 0.0135 - - 47 51 3 0 - 2 0.529 - 7 0.255 - 21 0.216 - - 22 108 17 2 - 0 0.0556 - 2 0.0648 - 4 0.037 - 7 0.333 - 8 0.0185 - 13 0.00926 - 14 0.00926 - 21 0.0278 - 24 0.0185 - 26 0.00926 - 28 0.0185 - 29 0.0926 - 30 0.13 - 31 0.0556 - 33 0.037 - 41 0.0463 - 47 0.037 - - 26 2 2 0 - 0 0.5 - 28 0.5 - - 47 6 3 0 - 2 0.667 - 13 0.167 - 14 0.167 - - 24 3 3 0 - 21 0.333 - 28 0.333 - 41 0.333 - - 25 3 2 0 - 7 0.667 - 30 0.333 - - 26 510 10 4 - 3 0.608 - 7 0.104 - 8 0.00784 - 13 0.212 - 14 0.0118 - 21 0.0412 - 22 0.00392 - 24 0.00196 - 28 0.00784 - 32 0.00196 - - 3 345 9 0 - 3 0.539 - 7 0.0957 - 13 0.304 - 14 0.0145 - 21 0.0261 - 22 0.0029 - 24 0.0029 - 28 0.0116 - 32 0.0029 - - 8 1 1 0 - 8 1 - - 39 157 7 0 - 3 0.783 - 7 0.115 - 8 0.0127 - 13 0.00637 - 14 0.00637 - 21 0.0701 - 22 0.00637 - - 47 1 1 0 - 8 1 - - 31 6 2 0 - 4 0.833 - 20 0.167 - - 38 128 14 0 - 2 0.0312 - 4 0.102 - 7 0.43 - 8 0.0312 - 13 0.0156 - 18 0.0391 - 21 0.0859 - 24 0.00781 - 26 0.195 - 28 0.0156 - 29 0.0156 - 31 0.00781 - 42 0.0156 - 47 0.00781 - - 39 5335 31 2 - 0 0.0274 - 2 0.0231 - 3 0.00075 - 4 0.108 - 7 0.384 - 8 0.0249 - 10 0.00394 - 13 0.00506 - 14 0.00281 - 15 0.00356 - 18 0.0135 - 19 0.000375 - 20 0.00862 - 21 0.0583 - 24 0.00375 - 26 0.153 - 28 0.0319 - 29 0.0437 - 30 0.0144 - 31 0.0172 - 32 0.00356 - 33 0.00619 - 34 0.000562 - 36 0.000187 - 37 0.000187 - 41 0.00656 - 42 0.0191 - 44 0.0313 - 45 0.000187 - 46 0.000187 - 47 0.0045 - - 3 165 16 0 - 0 0.0182 - 2 0.0242 - 4 0.103 - 7 0.582 - 8 0.0242 - 15 0.00606 - 18 0.0121 - 20 0.00606 - 21 0.0727 - 26 0.0121 - 28 0.0485 - 29 0.0182 - 31 0.0364 - 33 0.00606 - 42 0.0121 - 44 0.0182 - - 8 1 1 0 - 20 1 - - 41 2 2 0 - 8 0.5 - 38 0.5 - - 45 3 3 0 - 0 0.333 - 21 0.333 - 28 0.333 - - 46 2 2 0 - 9 0.5 - 10 0.5 - - 47 9444 38 17 - 0 0.0451 - 1 0.000106 - 2 0.026 - 3 0.00381 - 4 0.0736 - 7 0.334 - 8 0.019 - 9 0.000106 - 10 0.000106 - 13 0.0197 - 14 0.00805 - 15 0.00455 - 16 0.000212 - 18 0.0115 - 19 0.00116 - 20 0.00667 - 21 0.0109 - 22 0.000106 - 23 0.000106 - 24 0.0072 - 26 0.132 - 28 0.0547 - 29 0.0686 - 30 0.0222 - 31 0.0236 - 32 0.00784 - 33 0.0205 - 34 0.000635 - 36 0.000212 - 37 0.0018 - 39 0.00106 - 41 0.0205 - 42 0.0338 - 43 0.000212 - 44 0.0194 - 45 0.00148 - 46 0.000212 - 47 0.0195 - - 2 79 4 0 - 3 0.367 - 13 0.468 - 14 0.152 - 31 0.0127 - - 3 1998 31 0 - 0 0.0365 - 2 0.017 - 4 0.044 - 7 0.278 - 8 0.019 - 9 0.000501 - 13 0.0395 - 14 0.00901 - 15 0.00601 - 16 0.000501 - 18 0.015 - 19 0.001 - 20 0.00601 - 21 0.01 - 22 0.000501 - 24 0.0035 - 26 0.212 - 28 0.0285 - 29 0.107 - 30 0.0125 - 31 0.0135 - 32 0.00701 - 33 0.00801 - 34 0.0015 - 39 0.00501 - 41 0.022 - 42 0.0856 - 43 0.000501 - 44 0.0015 - 45 0.003 - 47 0.00601 - - 4 139 20 0 - 0 0.0216 - 2 0.0288 - 3 0.00719 - 7 0.273 - 13 0.036 - 14 0.00719 - 21 0.0144 - 24 0.0216 - 26 0.0432 - 28 0.122 - 29 0.122 - 30 0.0288 - 31 0.0432 - 32 0.00719 - 33 0.0504 - 41 0.0144 - 42 0.0144 - 44 0.00719 - 46 0.00719 - 47 0.129 - - 7 944 27 0 - 0 0.0657 - 1 0.00106 - 2 0.0371 - 4 0.00212 - 7 0.374 - 8 0.0053 - 13 0.00636 - 14 0.0138 - 15 0.00212 - 16 0.00106 - 19 0.00212 - 21 0.0169 - 24 0.0127 - 26 0.0604 - 28 0.11 - 29 0.0434 - 30 0.0392 - 31 0.0318 - 32 0.0117 - 33 0.0646 - 37 0.0117 - 41 0.0275 - 42 0.00847 - 44 0.0053 - 45 0.00318 - 46 0.00106 - 47 0.0413 - - 8 45 12 0 - 0 0.0667 - 2 0.0222 - 4 0.244 - 7 0.422 - 15 0.0222 - 26 0.0222 - 28 0.0222 - 29 0.0222 - 30 0.0444 - 31 0.0444 - 33 0.0444 - 41 0.0222 - - 9 422 23 0 - 0 0.0616 - 2 0.0403 - 4 0.0166 - 7 0.351 - 13 0.0166 - 14 0.00711 - 15 0.00474 - 19 0.00237 - 20 0.00237 - 21 0.0213 - 24 0.00474 - 26 0.0474 - 28 0.0829 - 29 0.0853 - 30 0.0427 - 31 0.0474 - 32 0.00711 - 33 0.0284 - 37 0.00474 - 41 0.0616 - 42 0.019 - 45 0.00237 - 47 0.0427 - - 13 8 7 0 - 4 0.125 - 7 0.25 - 20 0.125 - 21 0.125 - 24 0.125 - 33 0.125 - 42 0.125 - - 14 8 6 0 - 2 0.125 - 4 0.125 - 7 0.25 - 26 0.125 - 28 0.25 - 41 0.125 - - 17 3 3 0 - 14 0.333 - 28 0.333 - 31 0.333 - - 21 1259 30 0 - 0 0.0842 - 2 0.054 - 3 0.00159 - 4 0.0127 - 7 0.296 - 8 0.00397 - 13 0.0183 - 14 0.0103 - 15 0.00556 - 18 0.00159 - 19 0.00318 - 20 0.00159 - 21 0.0286 - 23 0.000794 - 24 0.0159 - 26 0.0397 - 28 0.0953 - 29 0.0747 - 30 0.0254 - 31 0.0334 - 32 0.0199 - 33 0.0461 - 36 0.000794 - 37 0.00238 - 41 0.0421 - 42 0.0191 - 43 0.000794 - 44 0.00556 - 45 0.00238 - 47 0.054 - - 22 100 16 0 - 0 0.06 - 2 0.03 - 4 0.01 - 7 0.36 - 8 0.02 - 13 0.01 - 21 0.03 - 24 0.02 - 26 0.01 - 28 0.02 - 29 0.1 - 30 0.14 - 31 0.06 - 33 0.04 - 41 0.05 - 47 0.04 - - 24 2 2 0 - 28 0.5 - 41 0.5 - - 26 5 2 0 - 28 0.8 - 32 0.2 - - 31 6 2 0 - 4 0.833 - 20 0.167 - - 38 105 13 0 - 2 0.019 - 4 0.124 - 7 0.429 - 8 0.0381 - 13 0.019 - 18 0.0476 - 24 0.00952 - 26 0.238 - 28 0.019 - 29 0.019 - 31 0.00952 - 42 0.019 - 47 0.00952 - - 39 4310 30 0 - 0 0.0339 - 2 0.0186 - 3 0.000928 - 4 0.128 - 7 0.366 - 8 0.029 - 10 0.000232 - 13 0.00603 - 14 0.00348 - 15 0.00441 - 18 0.0167 - 19 0.000464 - 20 0.0107 - 21 0.00348 - 24 0.00464 - 26 0.152 - 28 0.0394 - 29 0.0541 - 30 0.0179 - 31 0.0202 - 32 0.00441 - 33 0.00766 - 34 0.000696 - 36 0.000232 - 37 0.000232 - 41 0.00812 - 42 0.0237 - 44 0.0387 - 45 0.000232 - 47 0.00557 - - 45 3 3 0 - 0 0.333 - 21 0.333 - 28 0.333 - - 55 4 3 0 - 7 0.5 - 42 0.25 - 45 0.25 - - 58 1 1 0 - 14 1 - -61 127 13 5 - 2 0.0315 - 3 0.00787 - 4 0.0315 - 8 0.0157 - 13 0.189 - 14 0.0709 - 15 0.00787 - 21 0.15 - 24 0.00787 - 28 0.0157 - 41 0.441 - 42 0.0157 - 46 0.0157 - - 47 47 8 0 - 2 0.0426 - 4 0.0426 - 13 0.191 - 14 0.0851 - 28 0.0213 - 41 0.574 - 42 0.0213 - 46 0.0213 - - 49 32 6 0 - 2 0.0625 - 4 0.0625 - 13 0.0938 - 14 0.0625 - 24 0.0312 - 41 0.688 - - 55 24 7 0 - 8 0.0833 - 13 0.0833 - 14 0.0417 - 15 0.0417 - 21 0.667 - 41 0.0417 - 46 0.0417 - - 57 11 4 0 - 13 0.455 - 14 0.0909 - 28 0.0909 - 41 0.364 - - 64 1 1 0 - 3 1 - -62 295300 46 32 - 0 0.00594 - 1 0.000213 - 2 0.0265 - 3 0.00539 - 4 0.00642 - 5 0.0029 - 6 5.08e-05 - 7 0.092 - 8 0.0115 - 9 0.000735 - 10 0.000362 - 11 4.06e-05 - 12 0.000328 - 13 0.0983 - 14 0.0637 - 15 0.0501 - 16 0.00223 - 17 1.35e-05 - 18 0.000511 - 19 0.0512 - 20 4.74e-05 - 21 0.0258 - 22 0.00043 - 23 4.74e-05 - 24 0.000969 - 25 2.37e-05 - 26 0.00111 - 27 0.000102 - 28 0.0131 - 29 0.035 - 30 0.00893 - 31 0.0163 - 32 0.0106 - 33 0.0136 - 34 0.0284 - 35 0.0149 - 36 6.77e-06 - 37 0.0127 - 40 0.000139 - 41 0.079 - 42 0.0087 - 43 0.000972 - 44 0.00109 - 45 0.0288 - 46 0.00572 - 47 0.275 - - 0 8 5 0 - 2 0.125 - 13 0.375 - 14 0.25 - 15 0.125 - 37 0.125 - - 2 2293 7 5 - 9 0.000436 - 13 0.000436 - 41 0.00741 - 42 0.00174 - 45 0.044 - 46 0.000436 - 47 0.945 - - 55 1575 4 0 - 41 0.0019 - 45 0.047 - 46 0.000635 - 47 0.95 - - 57 241 3 0 - 42 0.0083 - 45 0.0124 - 47 0.979 - - 62 101 4 0 - 41 0.109 - 42 0.0099 - 45 0.0594 - 47 0.822 - - 66 1 1 0 - 41 1 - - 69 19 5 0 - 9 0.0526 - 13 0.0526 - 41 0.0526 - 45 0.105 - 47 0.737 - - 4 32 9 0 - 4 0.0312 - 8 0.0312 - 14 0.156 - 15 0.312 - 19 0.25 - 34 0.0625 - 35 0.0312 - 41 0.0938 - 42 0.0312 - - 7 39 2 0 - 45 0.0256 - 47 0.974 - - 12 4 3 0 - 14 0.25 - 19 0.5 - 37 0.25 - - 21 199 25 5 - 0 0.0101 - 2 0.0201 - 7 0.101 - 8 0.0201 - 12 0.0201 - 13 0.0704 - 14 0.0452 - 15 0.0201 - 19 0.0452 - 21 0.0151 - 23 0.00503 - 24 0.00503 - 25 0.00503 - 28 0.00503 - 29 0.106 - 31 0.0302 - 32 0.00503 - 33 0.00503 - 35 0.00503 - 37 0.00503 - 41 0.0704 - 42 0.0151 - 45 0.0251 - 46 0.0101 - 47 0.337 - - 41 7 2 0 - 45 0.143 - 47 0.857 - - 55 44 5 0 - 2 0.0682 - 37 0.0227 - 41 0.114 - 45 0.0455 - 47 0.75 - - 57 7 1 0 - 47 1 - - 64 5 1 0 - 47 1 - - 69 122 24 0 - 0 0.0164 - 2 0.0082 - 7 0.148 - 8 0.0328 - 12 0.0328 - 13 0.107 - 14 0.0738 - 15 0.0328 - 19 0.0738 - 21 0.0164 - 23 0.0082 - 24 0.0082 - 25 0.0082 - 28 0.0082 - 29 0.172 - 31 0.0492 - 32 0.0082 - 33 0.0082 - 35 0.0082 - 41 0.0656 - 42 0.0246 - 45 0.0164 - 46 0.0164 - 47 0.0574 - - 26 5 3 0 - 8 0.6 - 13 0.2 - 19 0.2 - - 40 10 6 0 - 8 0.1 - 13 0.4 - 14 0.2 - 19 0.1 - 21 0.1 - 27 0.1 - - 41 12917 37 14 - 0 0.00356 - 2 0.00434 - 3 0.0433 - 4 0.0079 - 5 0.000155 - 6 7.74e-05 - 7 0.00596 - 8 0.0321 - 9 0.00341 - 10 0.00147 - 11 0.000387 - 12 0.000774 - 13 0.376 - 14 0.157 - 15 0.124 - 16 0.00426 - 18 0.000387 - 19 0.0109 - 20 7.74e-05 - 21 0.16 - 22 0.00395 - 23 0.000232 - 24 0.00348 - 26 0.000155 - 27 0.00194 - 28 0.00898 - 29 0.00681 - 30 0.00457 - 31 0.0181 - 32 0.00341 - 33 0.00735 - 34 0.000542 - 35 0.000232 - 37 0.000387 - 42 0.000155 - 43 0.00333 - 46 0.000232 - - 2 15 7 0 - 8 0.133 - 13 0.267 - 14 0.133 - 15 0.267 - 18 0.0667 - 19 0.0667 - 27 0.0667 - - 21 6 3 0 - 13 0.667 - 19 0.167 - 28 0.167 - - 45 125 16 0 - 0 0.008 - 2 0.016 - 3 0.016 - 4 0.008 - 8 0.024 - 13 0.256 - 14 0.216 - 15 0.12 - 16 0.008 - 19 0.04 - 21 0.112 - 28 0.008 - 29 0.024 - 30 0.016 - 31 0.032 - 33 0.096 - - 46 950 26 0 - 0 0.0158 - 2 0.00105 - 3 0.0158 - 4 0.0179 - 7 0.00947 - 8 0.0884 - 9 0.00737 - 10 0.00105 - 12 0.00632 - 13 0.379 - 14 0.154 - 15 0.0674 - 16 0.00526 - 19 0.0442 - 21 0.0695 - 22 0.00105 - 24 0.0126 - 26 0.00105 - 28 0.0316 - 29 0.0147 - 30 0.00947 - 31 0.0337 - 32 0.00421 - 33 0.00632 - 42 0.00211 - 43 0.00105 - - 48 3 3 0 - 0 0.333 - 13 0.333 - 14 0.333 - - 49 375 22 0 - 2 0.016 - 3 0.032 - 4 0.008 - 7 0.0107 - 8 0.008 - 9 0.00267 - 10 0.00267 - 13 0.339 - 14 0.216 - 15 0.171 - 16 0.00533 - 18 0.00533 - 19 0.0347 - 21 0.112 - 24 0.008 - 27 0.00267 - 30 0.00267 - 31 0.00533 - 32 0.00533 - 33 0.00533 - 34 0.00267 - 43 0.00533 - - 55 9312 33 0 - 0 0.00268 - 2 0.00129 - 3 0.0493 - 4 0.00709 - 5 0.000215 - 7 0.00473 - 8 0.0306 - 9 0.00365 - 10 0.00183 - 11 0.000537 - 12 0.00043 - 13 0.39 - 14 0.156 - 15 0.113 - 16 0.00397 - 18 0.000107 - 19 0.00655 - 20 0.000107 - 21 0.165 - 22 0.00515 - 23 0.000322 - 24 0.00279 - 26 0.000107 - 27 0.00215 - 28 0.00805 - 29 0.00677 - 30 0.00451 - 31 0.0183 - 32 0.00333 - 33 0.00698 - 37 0.00043 - 43 0.00365 - 46 0.000322 - - 57 600 21 0 - 2 0.0383 - 3 0.035 - 4 0.01 - 7 0.0183 - 8 0.00167 - 13 0.258 - 14 0.132 - 15 0.275 - 16 0.00667 - 19 0.0117 - 21 0.182 - 22 0.00167 - 27 0.00167 - 29 0.00167 - 30 0.00167 - 31 0.00333 - 32 0.00333 - 34 0.00833 - 35 0.005 - 37 0.00167 - 43 0.00333 - - 58 38 9 0 - 2 0.0263 - 8 0.0263 - 9 0.0263 - 13 0.474 - 14 0.132 - 15 0.105 - 21 0.158 - 32 0.0263 - 33 0.0263 - - 62 430 21 0 - 0 0.00465 - 2 0.00233 - 3 0.0256 - 4 0.00233 - 7 0.0093 - 8 0.0209 - 9 0.00233 - 13 0.302 - 14 0.184 - 15 0.258 - 16 0.00233 - 19 0.0093 - 21 0.135 - 24 0.00698 - 28 0.00698 - 29 0.00698 - 30 0.00233 - 31 0.00465 - 32 0.00233 - 33 0.00698 - 43 0.00465 - - 64 201 16 0 - 0 0.00498 - 2 0.0448 - 3 0.0846 - 4 0.00498 - 7 0.0199 - 8 0.0149 - 13 0.269 - 14 0.114 - 15 0.124 - 16 0.0149 - 21 0.269 - 22 0.00498 - 28 0.00995 - 31 0.00995 - 33 0.00498 - 34 0.00498 - - 66 1 1 0 - 2 1 - - 69 839 21 0 - 0 0.00119 - 3 0.0262 - 4 0.00834 - 7 0.00119 - 8 0.0274 - 13 0.398 - 14 0.16 - 15 0.113 - 16 0.00238 - 18 0.00119 - 19 0.00715 - 21 0.205 - 24 0.00119 - 27 0.00238 - 28 0.00477 - 29 0.00358 - 30 0.00358 - 31 0.0238 - 32 0.00238 - 33 0.00477 - 43 0.00238 - - 74 11 7 0 - 6 0.0909 - 13 0.364 - 14 0.182 - 19 0.0909 - 29 0.0909 - 32 0.0909 - 33 0.0909 - - 42 133 20 7 - 3 0.00752 - 4 0.015 - 8 0.0602 - 11 0.0226 - 13 0.233 - 14 0.143 - 15 0.0677 - 19 0.0226 - 21 0.0226 - 24 0.00752 - 25 0.0301 - 28 0.00752 - 29 0.015 - 40 0.00752 - 41 0.015 - 42 0.00752 - 43 0.00752 - 45 0.00752 - 46 0.015 - 47 0.286 - - 45 19 6 0 - 13 0.0526 - 15 0.158 - 19 0.158 - 24 0.0526 - 29 0.0526 - 47 0.526 - - 49 4 4 0 - 8 0.25 - 14 0.25 - 15 0.25 - 28 0.25 - - 55 51 14 0 - 8 0.0392 - 11 0.0392 - 13 0.255 - 14 0.118 - 15 0.0588 - 21 0.0196 - 25 0.0196 - 29 0.0196 - 40 0.0196 - 41 0.0196 - 42 0.0196 - 43 0.0196 - 46 0.0392 - 47 0.314 - - 57 6 3 0 - 4 0.167 - 13 0.167 - 47 0.667 - - 62 17 6 0 - 13 0.353 - 14 0.176 - 15 0.0588 - 21 0.118 - 45 0.0588 - 47 0.235 - - 66 6 3 0 - 4 0.167 - 8 0.667 - 13 0.167 - - 69 22 8 0 - 3 0.0455 - 8 0.0455 - 11 0.0455 - 13 0.227 - 14 0.409 - 15 0.0455 - 25 0.136 - 41 0.0455 - - 43 32 6 0 - 11 0.0938 - 13 0.344 - 14 0.125 - 15 0.281 - 18 0.0312 - 19 0.125 - - 44 156 17 1 - 0 0.00641 - 2 0.0128 - 4 0.00641 - 7 0.0385 - 8 0.00641 - 13 0.0128 - 14 0.0128 - 21 0.0192 - 28 0.0256 - 29 0.00641 - 32 0.00641 - 33 0.00641 - 35 0.00641 - 41 0.0192 - 45 0.0128 - 46 0.00641 - 47 0.795 - - 57 22 1 0 - 47 1 - - 45 2718 26 8 - 0 0.0011 - 2 0.00478 - 3 0.00258 - 4 0.0011 - 7 0.0118 - 8 0.000736 - 13 0.0545 - 14 0.0309 - 15 0.0213 - 16 0.000736 - 18 0.000736 - 19 0.0169 - 21 0.00331 - 28 0.00184 - 29 0.00258 - 31 0.0118 - 32 0.000736 - 33 0.00736 - 37 0.000368 - 40 0.000368 - 41 0.0982 - 42 0.0232 - 44 0.00221 - 45 0.000736 - 46 0.000736 - 47 0.699 - - 2 87 1 0 - 47 1 - - 48 56 9 0 - 2 0.0179 - 4 0.0179 - 13 0.5 - 14 0.25 - 15 0.0179 - 19 0.125 - 31 0.0357 - 33 0.0179 - 42 0.0179 - - 49 64 7 0 - 13 0.0625 - 14 0.0312 - 15 0.0312 - 19 0.0156 - 41 0.0781 - 42 0.0625 - 47 0.719 - - 55 1037 20 0 - 0 0.00193 - 2 0.00964 - 7 0.0251 - 13 0.0135 - 14 0.000964 - 15 0.00193 - 19 0.0116 - 21 0.00482 - 28 0.00386 - 29 0.00482 - 31 0.026 - 32 0.00193 - 33 0.0145 - 37 0.000964 - 40 0.000964 - 41 0.165 - 42 0.0328 - 44 0.00482 - 46 0.00193 - 47 0.673 - - 57 75 6 0 - 2 0.0133 - 7 0.04 - 31 0.0133 - 41 0.0533 - 42 0.0133 - 47 0.867 - - 62 945 9 0 - 7 0.00317 - 29 0.00106 - 31 0.00106 - 33 0.00106 - 41 0.0254 - 42 0.0159 - 44 0.00106 - 45 0.00212 - 47 0.949 - - 64 96 4 0 - 2 0.0104 - 41 0.104 - 42 0.0417 - 47 0.844 - - 69 334 18 0 - 0 0.00299 - 3 0.021 - 4 0.00599 - 8 0.00599 - 13 0.305 - 14 0.198 - 15 0.159 - 16 0.00599 - 18 0.00599 - 19 0.0778 - 21 0.012 - 28 0.00299 - 29 0.00299 - 31 0.00299 - 33 0.00898 - 41 0.15 - 42 0.00599 - 47 0.0269 - - 46 1060 13 6 - 3 0.000943 - 8 0.00283 - 13 0.0236 - 14 0.0123 - 15 0.0236 - 16 0.00189 - 19 0.000943 - 21 0.000943 - 30 0.000943 - 40 0.0151 - 41 0.899 - 46 0.00472 - 47 0.0132 - - 49 3 3 0 - 13 0.333 - 15 0.333 - 47 0.333 - - 55 921 6 0 - 13 0.00217 - 14 0.00217 - 40 0.0163 - 41 0.967 - 46 0.00434 - 47 0.0076 - - 57 3 2 0 - 41 0.333 - 47 0.667 - - 62 10 2 0 - 41 0.7 - 47 0.3 - - 64 3 2 0 - 8 0.667 - 41 0.333 - - 69 99 12 0 - 3 0.0101 - 8 0.0101 - 13 0.222 - 14 0.111 - 15 0.242 - 16 0.0202 - 19 0.0101 - 21 0.0101 - 30 0.0101 - 40 0.0101 - 41 0.333 - 46 0.0101 - - 47 95402 42 25 - 0 0.00867 - 1 0.000325 - 2 0.0289 - 3 0.0027 - 4 0.00311 - 6 1.05e-05 - 7 0.141 - 8 0.0136 - 9 0.00066 - 10 0.000136 - 12 0.000419 - 13 0.0355 - 14 0.0168 - 15 0.00423 - 16 0.000199 - 17 2.1e-05 - 18 3.14e-05 - 19 0.00112 - 21 0.00595 - 22 0.00022 - 23 2.1e-05 - 24 0.00122 - 25 1.05e-05 - 26 0.00167 - 28 0.0194 - 29 0.0534 - 30 0.0131 - 31 0.0233 - 32 0.016 - 33 0.0203 - 34 0.0436 - 35 0.023 - 36 1.05e-05 - 37 0.0196 - 40 2.1e-05 - 41 0.0307 - 42 0.0112 - 43 0.000199 - 44 0.00087 - 45 0.0302 - 46 0.00213 - 47 0.426 - - 2 2188 5 0 - 41 0.000457 - 42 0.00183 - 45 0.0064 - 46 0.000457 - 47 0.991 - - 4 5 4 0 - 8 0.2 - 34 0.4 - 35 0.2 - 41 0.2 - - 7 38 1 0 - 47 1 - - 21 173 25 0 - 0 0.0116 - 2 0.00578 - 7 0.116 - 8 0.0231 - 12 0.0173 - 13 0.0636 - 14 0.0405 - 15 0.0173 - 19 0.0289 - 21 0.00578 - 23 0.00578 - 24 0.00578 - 25 0.00578 - 28 0.00578 - 29 0.121 - 31 0.0347 - 32 0.00578 - 33 0.00578 - 35 0.00578 - 37 0.00578 - 41 0.0462 - 42 0.0173 - 45 0.00578 - 46 0.0116 - 47 0.387 - - 26 5 3 0 - 8 0.6 - 13 0.2 - 19 0.2 - - 41 29 9 0 - 2 0.069 - 4 0.0345 - 7 0.379 - 15 0.0345 - 21 0.0345 - 31 0.069 - 34 0.241 - 35 0.103 - 37 0.0345 - - 42 40 3 0 - 4 0.025 - 45 0.025 - 47 0.95 - - 44 146 14 0 - 0 0.00685 - 2 0.0137 - 4 0.00685 - 7 0.0411 - 8 0.00685 - 14 0.00685 - 21 0.00685 - 28 0.0274 - 29 0.00685 - 32 0.00685 - 33 0.00685 - 35 0.00685 - 45 0.00685 - 47 0.849 - - 45 2081 17 0 - 0 0.00144 - 2 0.000481 - 7 0.0154 - 13 0.000961 - 14 0.000481 - 21 0.000481 - 28 0.0024 - 29 0.00288 - 31 0.0149 - 32 0.000961 - 33 0.00865 - 37 0.000481 - 41 0.0139 - 42 0.0207 - 44 0.00192 - 45 0.000481 - 47 0.914 - - 46 14 1 0 - 47 1 - - 48 401 21 0 - 0 0.00249 - 2 0.0125 - 7 0.0499 - 13 0.0125 - 14 0.00249 - 15 0.00748 - 16 0.00249 - 21 0.00748 - 24 0.00499 - 28 0.0698 - 29 0.122 - 30 0.0374 - 31 0.387 - 32 0.0249 - 33 0.0249 - 34 0.00249 - 37 0.00249 - 41 0.0823 - 42 0.00249 - 45 0.00998 - 47 0.132 - - 49 2499 23 0 - 0 0.0016 - 2 0.0272 - 7 0.0344 - 8 0.0004 - 12 0.0004 - 13 0.0068 - 14 0.0024 - 15 0.0016 - 21 0.006 - 24 0.0008 - 28 0.0012 - 29 0.0012 - 30 0.0012 - 31 0.0016 - 32 0.002 - 33 0.0016 - 34 0.0656 - 35 0.0324 - 37 0.0012 - 41 0.0312 - 42 0.0156 - 45 0.0228 - 47 0.741 - - 50 6 1 0 - 47 1 - - 51 15 6 0 - 2 0.0667 - 7 0.0667 - 32 0.0667 - 33 0.0667 - 45 0.2 - 47 0.533 - - 52 43 8 0 - 2 0.0233 - 28 0.0233 - 41 0.0233 - 42 0.0233 - 44 0.0233 - 45 0.209 - 46 0.0233 - 47 0.651 - - 53 30 4 0 - 2 0.0333 - 7 0.0333 - 42 0.1 - 47 0.833 - - 55 52582 38 0 - 0 0.00203 - 1 0.000342 - 2 0.0449 - 3 0.00038 - 4 0.00443 - 7 0.183 - 8 0.00304 - 9 0.000133 - 10 0.000133 - 12 1.9e-05 - 13 0.0151 - 14 0.00688 - 15 0.000856 - 16 3.8e-05 - 17 3.8e-05 - 18 1.9e-05 - 19 0.000513 - 21 0.00382 - 22 0.000114 - 24 0.000114 - 26 0.000228 - 28 0.0187 - 29 0.071 - 30 0.00837 - 31 0.0106 - 32 0.018 - 33 0.0195 - 34 0.0097 - 35 0.00778 - 36 1.9e-05 - 37 0.0328 - 41 0.0205 - 42 0.0131 - 43 0.000114 - 44 0.00103 - 45 0.0401 - 46 0.00202 - 47 0.461 - - 57 4707 21 0 - 2 0.0191 - 4 0.00085 - 7 0.0416 - 8 0.000212 - 13 0.000637 - 14 0.000212 - 21 0.00085 - 28 0.000637 - 29 0.000212 - 31 0.00106 - 32 0.000212 - 33 0.000425 - 34 0.00722 - 35 0.00297 - 37 0.00149 - 40 0.000212 - 41 0.0161 - 42 0.0117 - 44 0.00085 - 45 0.021 - 47 0.872 - - 58 17 7 0 - 4 0.0588 - 7 0.294 - 34 0.235 - 35 0.118 - 37 0.118 - 42 0.0588 - 47 0.118 - - 62 4872 24 0 - 0 0.00144 - 2 0.00944 - 4 0.00123 - 7 0.0515 - 8 0.000205 - 13 0.00205 - 14 0.000411 - 15 0.000205 - 19 0.000205 - 21 0.00164 - 28 0.00164 - 29 0.0133 - 30 0.00144 - 31 0.00103 - 32 0.00226 - 33 0.00431 - 34 0.00554 - 35 0.00144 - 37 0.00513 - 41 0.00513 - 42 0.016 - 44 0.000821 - 45 0.0525 - 47 0.821 - - 64 1775 16 0 - 0 0.00113 - 2 0.0293 - 4 0.00169 - 7 0.0958 - 21 0.00225 - 29 0.00451 - 30 0.000563 - 32 0.00282 - 33 0.00169 - 34 0.000563 - 35 0.000563 - 37 0.00113 - 41 0.0169 - 42 0.0135 - 45 0.093 - 47 0.735 - - 66 16 3 0 - 2 0.0625 - 42 0.0625 - 47 0.875 - - 68 15 7 0 - 7 0.0667 - 13 0.0667 - 28 0.0667 - 31 0.0667 - 42 0.0667 - 45 0.0667 - 47 0.6 - - 69 23688 39 0 - 0 0.0296 - 1 0.000549 - 2 0.0054 - 3 0.01 - 4 0.00198 - 6 4.22e-05 - 7 0.13 - 8 0.0475 - 9 0.00236 - 10 0.000253 - 12 0.00148 - 13 0.107 - 14 0.0514 - 15 0.0146 - 16 0.000675 - 18 8.44e-05 - 19 0.00308 - 21 0.0139 - 22 0.000633 - 23 4.22e-05 - 24 0.00443 - 26 0.00621 - 28 0.0343 - 29 0.0511 - 30 0.0331 - 31 0.0616 - 32 0.0226 - 33 0.0358 - 34 0.144 - 35 0.0708 - 37 0.00414 - 40 4.22e-05 - 41 0.0661 - 42 0.00515 - 43 0.000549 - 44 0.000675 - 45 0.0068 - 46 0.00393 - 47 0.0277 - - 74 7 5 0 - 2 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - - 48 954 28 7 - 0 0.00105 - 2 0.00629 - 3 0.00314 - 4 0.00524 - 7 0.021 - 8 0.00314 - 13 0.155 - 14 0.142 - 15 0.0304 - 16 0.00314 - 18 0.00105 - 19 0.169 - 21 0.0136 - 22 0.00105 - 24 0.0021 - 28 0.0294 - 29 0.0514 - 30 0.0157 - 31 0.162 - 32 0.0105 - 33 0.0115 - 34 0.00105 - 37 0.00105 - 41 0.0388 - 42 0.0021 - 45 0.0629 - 46 0.00105 - 47 0.0556 - - 41 16 6 0 - 2 0.125 - 21 0.0625 - 41 0.0625 - 42 0.0625 - 45 0.125 - 47 0.562 - - 47 806 26 0 - 0 0.00124 - 2 0.00372 - 3 0.00372 - 4 0.0062 - 7 0.0223 - 8 0.00372 - 13 0.176 - 14 0.164 - 15 0.036 - 16 0.00372 - 19 0.102 - 21 0.0149 - 22 0.00124 - 24 0.00248 - 28 0.0211 - 29 0.0521 - 30 0.0136 - 31 0.185 - 32 0.0124 - 33 0.00993 - 37 0.00124 - 41 0.0397 - 42 0.00124 - 45 0.0682 - 46 0.00124 - 47 0.0533 - - 49 5 4 0 - 2 0.2 - 13 0.4 - 14 0.2 - 18 0.2 - - 55 19 8 0 - 13 0.0526 - 28 0.211 - 29 0.263 - 30 0.105 - 31 0.158 - 33 0.0526 - 41 0.105 - 47 0.0526 - - 62 36 5 0 - 7 0.0278 - 13 0.0278 - 14 0.0278 - 19 0.889 - 45 0.0278 - - 64 63 9 0 - 13 0.0317 - 14 0.0159 - 19 0.683 - 28 0.111 - 29 0.0317 - 30 0.0317 - 31 0.0476 - 33 0.0317 - 41 0.0159 - - 69 2 2 0 - 34 0.5 - 41 0.5 - - 49 6007 36 13 - 0 0.00117 - 2 0.0255 - 3 0.00117 - 4 0.00383 - 5 0.00333 - 7 0.0146 - 8 0.00133 - 9 0.000333 - 10 0.000166 - 12 0.000166 - 13 0.122 - 14 0.107 - 15 0.101 - 16 0.00449 - 18 0.00117 - 19 0.108 - 21 0.0103 - 23 0.000166 - 24 0.000333 - 28 0.000499 - 29 0.000666 - 30 0.000832 - 31 0.000832 - 32 0.000999 - 33 0.000999 - 34 0.0276 - 35 0.0135 - 37 0.000499 - 40 0.000333 - 41 0.106 - 42 0.00916 - 43 0.000832 - 44 0.000666 - 45 0.0201 - 46 0.0025 - 47 0.308 - - 41 1889 16 0 - 2 0.0238 - 4 0.000529 - 7 0.00106 - 13 0.00318 - 14 0.00159 - 15 0.00106 - 19 0.000529 - 21 0.00424 - 32 0.000529 - 40 0.00106 - 41 0.157 - 42 0.00794 - 44 0.00159 - 45 0.0312 - 46 0.000529 - 47 0.764 - - 44 2 2 0 - 2 0.5 - 45 0.5 - - 45 7 4 0 - 7 0.143 - 14 0.286 - 15 0.286 - 47 0.286 - - 47 59 15 0 - 4 0.0169 - 8 0.0339 - 13 0.237 - 14 0.22 - 15 0.102 - 19 0.0169 - 21 0.0339 - 28 0.0169 - 29 0.0339 - 30 0.0339 - 31 0.0339 - 32 0.0169 - 33 0.0169 - 41 0.119 - 47 0.0678 - - 48 9 4 0 - 14 0.111 - 21 0.111 - 41 0.222 - 47 0.556 - - 49 30 9 0 - 2 0.0333 - 7 0.0333 - 13 0.0667 - 14 0.133 - 15 0.2 - 19 0.233 - 41 0.1 - 42 0.0333 - 47 0.167 - - 55 493 13 0 - 2 0.178 - 7 0.0365 - 9 0.00203 - 13 0.00203 - 14 0.00609 - 21 0.0183 - 32 0.00203 - 34 0.00203 - 37 0.00406 - 41 0.0953 - 42 0.0325 - 45 0.069 - 47 0.552 - - 57 31 7 0 - 2 0.161 - 14 0.0323 - 41 0.0645 - 42 0.0323 - 44 0.0323 - 45 0.0645 - 47 0.613 - - 58 78 5 0 - 2 0.0641 - 41 0.0128 - 42 0.0256 - 45 0.0641 - 47 0.833 - - 62 11 4 0 - 2 0.182 - 42 0.0909 - 45 0.182 - 47 0.545 - - 64 6 3 0 - 2 0.167 - 45 0.5 - 47 0.333 - - 66 3 2 0 - 21 0.667 - 47 0.333 - - 69 3383 34 0 - 0 0.00207 - 2 0.00118 - 3 0.00207 - 4 0.00621 - 5 0.00591 - 7 0.0195 - 8 0.00177 - 9 0.000296 - 10 0.000296 - 12 0.000296 - 13 0.21 - 14 0.181 - 15 0.175 - 16 0.00798 - 18 0.00207 - 19 0.189 - 21 0.0118 - 23 0.000296 - 24 0.000591 - 28 0.000591 - 29 0.000591 - 30 0.000887 - 31 0.000887 - 32 0.000887 - 33 0.00148 - 34 0.0488 - 35 0.0239 - 37 0.000296 - 41 0.0822 - 42 0.00562 - 43 0.00148 - 45 0.00414 - 46 0.00414 - 47 0.00739 - - 50 8 3 0 - 14 0.125 - 19 0.125 - 47 0.75 - - 51 20 7 0 - 2 0.05 - 7 0.05 - 32 0.05 - 33 0.05 - 41 0.05 - 45 0.35 - 47 0.4 - - 52 51 9 1 - 2 0.0196 - 27 0.0196 - 28 0.0196 - 41 0.098 - 42 0.0196 - 44 0.0196 - 45 0.235 - 46 0.0196 - 47 0.549 - - 55 4 3 0 - 28 0.25 - 45 0.5 - 46 0.25 - - 53 30 4 0 - 2 0.0333 - 7 0.0333 - 42 0.1 - 47 0.833 - - 55 67719 43 18 - 0 0.00162 - 1 0.000266 - 2 0.0581 - 3 0.000753 - 4 0.0036 - 5 1.48e-05 - 7 0.143 - 8 0.00282 - 9 0.000266 - 10 0.00034 - 12 2.95e-05 - 13 0.019 - 14 0.00755 - 15 0.00347 - 16 8.86e-05 - 17 2.95e-05 - 18 4.43e-05 - 19 0.00157 - 21 0.0104 - 22 0.000192 - 23 1.48e-05 - 24 8.86e-05 - 25 1.48e-05 - 26 0.000177 - 27 1.48e-05 - 28 0.0146 - 29 0.0552 - 30 0.00653 - 31 0.00828 - 32 0.0141 - 33 0.0153 - 34 0.00755 - 35 0.00604 - 36 1.48e-05 - 37 0.0255 - 40 4.43e-05 - 41 0.159 - 42 0.0118 - 43 0.000295 - 44 0.00233 - 45 0.0466 - 46 0.0162 - 47 0.358 - - 4 27 11 0 - 7 0.037 - 8 0.037 - 13 0.037 - 14 0.037 - 28 0.037 - 29 0.0741 - 32 0.037 - 41 0.0741 - 45 0.037 - 46 0.037 - 47 0.556 - - 12 3 3 0 - 2 0.333 - 33 0.333 - 42 0.333 - - 21 9 5 0 - 7 0.111 - 13 0.111 - 28 0.333 - 29 0.222 - 31 0.222 - - 41 1402 27 0 - 0 0.000713 - 2 0.0464 - 4 0.000713 - 7 0.0464 - 8 0.000713 - 10 0.000713 - 13 0.0728 - 14 0.00499 - 15 0.0278 - 19 0.000713 - 21 0.0107 - 27 0.000713 - 28 0.000713 - 29 0.0157 - 30 0.000713 - 31 0.00143 - 32 0.00713 - 33 0.00214 - 34 0.00214 - 37 0.00285 - 41 0.0449 - 42 0.0157 - 43 0.000713 - 44 0.00357 - 45 0.0271 - 46 0.00143 - 47 0.66 - - 42 27 7 0 - 2 0.111 - 7 0.148 - 21 0.037 - 29 0.0741 - 41 0.111 - 45 0.185 - 47 0.333 - - 43 29 2 0 - 7 0.069 - 44 0.931 - - 45 366 17 0 - 2 0.0273 - 7 0.167 - 13 0.0109 - 14 0.00273 - 21 0.00273 - 22 0.00273 - 28 0.0328 - 29 0.29 - 30 0.0355 - 31 0.0082 - 32 0.0109 - 33 0.082 - 34 0.00273 - 37 0.00273 - 41 0.0765 - 42 0.00273 - 47 0.243 - - 46 63 7 0 - 2 0.0159 - 7 0.0159 - 28 0.0317 - 29 0.0159 - 34 0.0159 - 41 0.0159 - 45 0.889 - - 47 833 26 0 - 0 0.0072 - 2 0.0336 - 3 0.0012 - 4 0.0096 - 7 0.0204 - 8 0.0192 - 9 0.0012 - 13 0.0636 - 14 0.0156 - 15 0.048 - 16 0.0012 - 18 0.0024 - 19 0.0876 - 21 0.0168 - 28 0.0396 - 29 0.0564 - 30 0.0072 - 31 0.376 - 32 0.0072 - 33 0.0264 - 34 0.0048 - 41 0.0264 - 42 0.0108 - 43 0.0024 - 45 0.0888 - 47 0.0264 - - 48 482 15 0 - 0 0.00622 - 2 0.027 - 7 0.0373 - 14 0.00207 - 28 0.344 - 29 0.0996 - 30 0.168 - 31 0.0705 - 32 0.0975 - 33 0.104 - 41 0.0228 - 42 0.00415 - 44 0.00415 - 45 0.00207 - 47 0.0104 - - 49 2900 25 0 - 0 0.00069 - 2 0.0714 - 3 0.000345 - 4 0.00103 - 7 0.108 - 8 0.00069 - 13 0.0121 - 14 0.00448 - 15 0.000345 - 21 0.0031 - 28 0.00586 - 29 0.0366 - 30 0.00138 - 31 0.00276 - 32 0.00931 - 33 0.00931 - 34 0.00586 - 35 0.00655 - 37 0.0169 - 41 0.128 - 42 0.0134 - 44 0.0031 - 45 0.0345 - 46 0.0031 - 47 0.521 - - 55 480 19 0 - 2 0.0854 - 4 0.00417 - 7 0.0437 - 13 0.0104 - 15 0.00208 - 21 0.00833 - 28 0.0896 - 29 0.0854 - 30 0.0479 - 31 0.0146 - 32 0.05 - 33 0.0646 - 35 0.00208 - 37 0.0125 - 41 0.102 - 42 0.0333 - 45 0.0167 - 46 0.00208 - 47 0.325 - - 57 150 18 0 - 0 0.0133 - 1 0.00667 - 2 0.0467 - 4 0.00667 - 7 0.06 - 13 0.0467 - 14 0.02 - 29 0.0333 - 30 0.0133 - 32 0.0267 - 33 0.00667 - 34 0.00667 - 37 0.02 - 41 0.187 - 42 0.0133 - 44 0.02 - 45 0.0267 - 47 0.447 - - 58 218 11 0 - 2 0.0505 - 7 0.0275 - 14 0.00459 - 21 0.00459 - 28 0.00459 - 34 0.00459 - 35 0.00459 - 41 0.0367 - 42 0.0183 - 45 0.0826 - 47 0.761 - - 62 10 5 0 - 2 0.1 - 14 0.1 - 19 0.2 - 37 0.1 - 47 0.5 - - 64 14 5 0 - 2 0.143 - 19 0.0714 - 32 0.0714 - 45 0.0714 - 47 0.643 - - 68 3 3 0 - 30 0.333 - 31 0.333 - 32 0.333 - - 69 60692 42 0 - 0 0.00158 - 1 0.00028 - 2 0.0584 - 3 0.000807 - 4 0.00377 - 5 1.65e-05 - 7 0.151 - 8 0.00282 - 9 0.00028 - 10 0.000362 - 12 3.3e-05 - 13 0.0177 - 14 0.00774 - 15 0.00254 - 16 8.24e-05 - 17 3.3e-05 - 18 1.65e-05 - 19 0.000478 - 21 0.0109 - 22 0.000198 - 23 1.65e-05 - 24 9.89e-05 - 25 1.65e-05 - 26 0.000198 - 28 0.0117 - 29 0.0552 - 30 0.00512 - 31 0.00315 - 32 0.0136 - 33 0.0144 - 34 0.00796 - 35 0.00639 - 36 1.65e-05 - 37 0.0274 - 40 4.94e-05 - 41 0.167 - 42 0.0115 - 43 0.00028 - 44 0.00185 - 45 0.047 - 46 0.0179 - 47 0.35 - - 57 5900 27 12 - 2 0.0561 - 3 0.000339 - 4 0.00102 - 7 0.0334 - 8 0.000508 - 9 0.000169 - 13 0.0149 - 14 0.00797 - 15 0.00831 - 16 0.000169 - 19 0.000339 - 21 0.00746 - 28 0.000508 - 29 0.000169 - 31 0.000847 - 32 0.000169 - 33 0.000339 - 34 0.00576 - 35 0.00237 - 37 0.00119 - 40 0.000678 - 41 0.117 - 42 0.0103 - 44 0.00441 - 45 0.0295 - 46 0.000508 - 47 0.696 - - 41 4850 19 0 - 2 0.0485 - 3 0.000206 - 4 0.000412 - 7 0.0221 - 13 0.00536 - 14 0.00103 - 15 0.00227 - 21 0.00515 - 28 0.000206 - 29 0.000206 - 34 0.000206 - 37 0.000412 - 40 0.000619 - 41 0.132 - 42 0.00928 - 44 0.00536 - 45 0.0262 - 46 0.000412 - 47 0.74 - - 42 18 3 0 - 42 0.111 - 45 0.0556 - 47 0.833 - - 44 2 1 0 - 45 1 - - 46 2 1 0 - 45 1 - - 47 28 11 0 - 7 0.107 - 8 0.0357 - 13 0.107 - 14 0.0357 - 31 0.179 - 32 0.0357 - 37 0.0357 - 41 0.0714 - 42 0.0357 - 45 0.0714 - 47 0.286 - - 49 12 5 0 - 2 0.167 - 13 0.167 - 35 0.0833 - 41 0.0833 - 47 0.5 - - 55 612 13 0 - 2 0.126 - 4 0.00327 - 7 0.127 - 13 0.031 - 21 0.0261 - 28 0.00327 - 33 0.00163 - 37 0.00654 - 40 0.00163 - 41 0.0392 - 42 0.018 - 45 0.049 - 47 0.567 - - 57 50 8 0 - 2 0.02 - 7 0.02 - 14 0.02 - 15 0.02 - 41 0.08 - 42 0.02 - 45 0.02 - 47 0.8 - - 58 106 7 0 - 2 0.0755 - 13 0.00943 - 41 0.00943 - 42 0.00943 - 45 0.066 - 46 0.00943 - 47 0.821 - - 62 14 4 0 - 2 0.286 - 9 0.0714 - 21 0.0714 - 47 0.571 - - 64 6 4 0 - 8 0.167 - 19 0.167 - 45 0.167 - 47 0.5 - - 69 196 17 0 - 2 0.0153 - 3 0.0051 - 4 0.0102 - 7 0.0408 - 8 0.0051 - 13 0.189 - 14 0.204 - 15 0.189 - 16 0.0051 - 19 0.0051 - 21 0.0102 - 33 0.0051 - 34 0.168 - 35 0.0663 - 41 0.0714 - 45 0.0051 - 47 0.0051 - - 58 579 32 8 - 0 0.00173 - 2 0.0311 - 3 0.00864 - 4 0.0155 - 7 0.0138 - 8 0.019 - 9 0.00345 - 10 0.00173 - 11 0.00173 - 13 0.337 - 14 0.162 - 15 0.0725 - 16 0.00345 - 18 0.00345 - 19 0.0104 - 21 0.154 - 22 0.00518 - 23 0.00173 - 24 0.00173 - 28 0.00345 - 29 0.00345 - 30 0.00345 - 31 0.0173 - 32 0.00345 - 33 0.00864 - 34 0.00691 - 35 0.00345 - 37 0.00345 - 41 0.0691 - 42 0.00173 - 46 0.0242 - 47 0.00345 - - 41 32 9 0 - 2 0.0312 - 3 0.0312 - 13 0.25 - 14 0.0312 - 21 0.0625 - 32 0.0312 - 41 0.156 - 46 0.375 - 47 0.0312 - - 42 3 3 0 - 21 0.333 - 41 0.333 - 47 0.333 - - 45 95 13 0 - 2 0.0421 - 4 0.0316 - 7 0.0211 - 8 0.0211 - 13 0.368 - 14 0.158 - 15 0.0526 - 19 0.0105 - 21 0.168 - 31 0.0316 - 33 0.0105 - 37 0.0105 - 41 0.0737 - - 55 212 26 0 - 0 0.00472 - 2 0.0425 - 3 0.0142 - 4 0.00943 - 7 0.00943 - 8 0.0236 - 9 0.00472 - 10 0.00472 - 11 0.00472 - 13 0.259 - 14 0.118 - 15 0.0283 - 19 0.0142 - 21 0.278 - 22 0.00943 - 23 0.00472 - 24 0.00472 - 28 0.00472 - 29 0.00943 - 30 0.00472 - 31 0.0236 - 32 0.00472 - 33 0.0189 - 37 0.00472 - 41 0.0849 - 46 0.00943 - - 57 3 3 0 - 2 0.333 - 21 0.333 - 42 0.333 - - 62 13 9 0 - 3 0.0769 - 7 0.0769 - 8 0.0769 - 9 0.0769 - 13 0.308 - 14 0.0769 - 21 0.154 - 31 0.0769 - 41 0.0769 - - 64 6 3 0 - 2 0.5 - 13 0.167 - 21 0.333 - - 69 207 17 0 - 4 0.0193 - 7 0.0145 - 8 0.0145 - 13 0.435 - 14 0.237 - 15 0.14 - 16 0.00966 - 18 0.00966 - 19 0.00966 - 21 0.029 - 22 0.00483 - 28 0.00483 - 30 0.00483 - 31 0.00483 - 34 0.0193 - 35 0.00966 - 41 0.0338 - - 62 6481 29 9 - 0 0.00108 - 2 0.0227 - 4 0.000926 - 7 0.0389 - 8 0.00463 - 9 0.00108 - 13 0.00339 - 14 0.000463 - 15 0.000309 - 19 0.000309 - 21 0.00355 - 22 0.000154 - 28 0.00123 - 29 0.01 - 30 0.00108 - 31 0.000771 - 32 0.0017 - 33 0.00324 - 34 0.00417 - 35 0.00108 - 37 0.00386 - 40 0.000154 - 41 0.0728 - 42 0.0151 - 43 0.000154 - 44 0.00278 - 45 0.186 - 46 0.00154 - 47 0.617 - - 41 2566 9 0 - 2 0.00857 - 7 0.000779 - 21 0.000779 - 41 0.0744 - 42 0.00468 - 44 0.00039 - 45 0.295 - 46 0.00234 - 47 0.613 - - 42 4 2 0 - 42 0.75 - 45 0.25 - - 45 3 1 0 - 7 1 - - 46 10 1 0 - 45 1 - - 47 3515 29 0 - 0 0.00199 - 2 0.0259 - 4 0.00171 - 7 0.0512 - 8 0.00853 - 9 0.00199 - 13 0.00597 - 14 0.000853 - 15 0.000569 - 19 0.000569 - 21 0.00455 - 22 0.000284 - 28 0.00228 - 29 0.0182 - 30 0.00199 - 31 0.00142 - 32 0.00199 - 33 0.00569 - 34 0.00768 - 35 0.00199 - 37 0.00683 - 40 0.000284 - 41 0.0688 - 42 0.0216 - 43 0.000284 - 44 0.00427 - 45 0.118 - 46 0.00114 - 47 0.634 - - 49 6 4 0 - 2 0.167 - 7 0.333 - 41 0.333 - 47 0.167 - - 55 102 6 0 - 2 0.049 - 13 0.0098 - 41 0.0098 - 42 0.0196 - 45 0.0098 - 47 0.902 - - 58 17 3 0 - 2 0.118 - 45 0.0588 - 47 0.824 - - 69 256 12 0 - 2 0.102 - 7 0.254 - 21 0.0195 - 29 0.00391 - 32 0.0156 - 33 0.00391 - 37 0.00391 - 41 0.141 - 42 0.0195 - 44 0.00781 - 45 0.0664 - 47 0.363 - - 64 2370 27 7 - 0 0.000844 - 2 0.0992 - 4 0.00127 - 7 0.0726 - 8 0.0207 - 9 0.00127 - 10 0.000422 - 13 0.00464 - 14 0.00338 - 19 0.000422 - 21 0.00759 - 22 0.00169 - 29 0.00338 - 30 0.000422 - 32 0.00211 - 33 0.00127 - 34 0.000422 - 35 0.000422 - 37 0.000844 - 40 0.000844 - 41 0.101 - 42 0.0122 - 43 0.000422 - 44 0.00127 - 45 0.11 - 46 0.00127 - 47 0.55 - - 41 1979 21 0 - 0 0.000505 - 2 0.099 - 4 0.00152 - 7 0.0753 - 10 0.000505 - 13 0.00152 - 14 0.000505 - 21 0.00707 - 29 0.00303 - 32 0.00202 - 33 0.00101 - 35 0.000505 - 37 0.000505 - 40 0.000505 - 41 0.111 - 42 0.0116 - 43 0.000505 - 44 0.00152 - 45 0.106 - 46 0.000505 - 47 0.576 - - 47 74 10 0 - 8 0.662 - 9 0.0405 - 13 0.0811 - 14 0.0541 - 19 0.0135 - 21 0.0405 - 22 0.0541 - 41 0.0135 - 46 0.027 - 47 0.0135 - - 49 6 4 0 - 32 0.167 - 41 0.333 - 45 0.333 - 47 0.167 - - 55 100 11 0 - 2 0.12 - 7 0.13 - 13 0.01 - 14 0.01 - 21 0.01 - 29 0.02 - 40 0.01 - 41 0.11 - 42 0.03 - 45 0.08 - 47 0.47 - - 58 68 6 0 - 2 0.132 - 7 0.0147 - 41 0.0441 - 42 0.0147 - 45 0.118 - 47 0.676 - - 62 3 2 0 - 2 0.333 - 45 0.667 - - 69 121 13 0 - 0 0.00826 - 2 0.116 - 7 0.0496 - 13 0.00826 - 14 0.0165 - 30 0.00826 - 33 0.00826 - 34 0.00826 - 37 0.00826 - 41 0.00826 - 42 0.00826 - 45 0.231 - 47 0.521 - - 65 8 2 0 - 45 0.5 - 47 0.5 - - 66 35 6 1 - 2 0.0571 - 21 0.286 - 41 0.0286 - 42 0.2 - 44 0.0286 - 47 0.4 - - 47 3 2 0 - 2 0.667 - 42 0.333 - - 67 6 2 0 - 45 0.667 - 47 0.333 - - 68 21 11 0 - 7 0.0476 - 13 0.0476 - 14 0.0476 - 19 0.0952 - 21 0.0476 - 28 0.0476 - 31 0.0476 - 41 0.0476 - 42 0.0476 - 45 0.0952 - 47 0.429 - - 69 90079 42 2 - 0 0.00829 - 1 0.000155 - 2 0.00168 - 3 0.00775 - 4 0.0133 - 5 0.00924 - 6 0.000144 - 7 0.0348 - 8 0.0152 - 9 0.000844 - 10 0.000544 - 12 0.000444 - 13 0.201 - 14 0.151 - 15 0.13 - 16 0.00602 - 18 0.0014 - 19 0.154 - 20 0.000144 - 21 0.0443 - 22 0.000366 - 23 5.55e-05 - 24 0.00124 - 26 0.00173 - 27 2.22e-05 - 28 0.00959 - 29 0.0139 - 30 0.00948 - 31 0.0174 - 32 0.00625 - 33 0.00968 - 34 0.0385 - 35 0.0187 - 37 0.00109 - 40 9.99e-05 - 41 0.0694 - 42 0.00417 - 43 0.00219 - 44 0.000244 - 45 0.00562 - 46 0.0036 - 47 0.00728 - - 41 4 2 0 - 13 0.75 - 15 0.25 - - 69 6 5 0 - 13 0.167 - 14 0.333 - 34 0.167 - 41 0.167 - 46 0.167 - - 74 22 8 0 - 2 0.0909 - 5 0.0455 - 13 0.0455 - 18 0.0455 - 41 0.545 - 42 0.0455 - 45 0.0909 - 47 0.0909 - -63 79666 1 0 - 47 1 - -64 56433 41 26 - 0 0.0151 - 1 3.54e-05 - 2 0.021 - 3 0.00828 - 4 0.00434 - 5 7.09e-05 - 6 3.54e-05 - 7 0.0226 - 8 0.0251 - 9 0.00383 - 10 0.000656 - 12 3.54e-05 - 13 0.178 - 14 0.1 - 15 0.0189 - 16 0.00159 - 17 0.000106 - 18 0.000213 - 19 0.00564 - 21 0.0233 - 22 0.00184 - 24 0.00365 - 26 0.00124 - 28 0.0339 - 29 0.164 - 30 0.0194 - 31 0.0203 - 32 0.0433 - 33 0.0486 - 34 3.54e-05 - 35 0.000284 - 36 1.77e-05 - 37 8.86e-05 - 40 7.09e-05 - 41 0.155 - 42 0.0084 - 43 0.000939 - 44 0.00119 - 45 0.0125 - 46 0.0073 - 47 0.0483 - - 2 17 8 0 - 7 0.176 - 13 0.0588 - 22 0.0588 - 28 0.176 - 30 0.0588 - 41 0.294 - 46 0.0588 - 47 0.118 - - 4 202 17 0 - 0 0.0891 - 2 0.0594 - 3 0.0149 - 8 0.00495 - 13 0.144 - 14 0.00495 - 21 0.0149 - 24 0.0099 - 28 0.0743 - 29 0.342 - 30 0.0396 - 31 0.0347 - 32 0.099 - 33 0.0446 - 41 0.0149 - 42 0.00495 - 45 0.00495 - - 7 10218 35 1 - 0 0.0262 - 2 0.0361 - 3 0.00861 - 4 0.000587 - 7 0.0236 - 8 0.0418 - 9 0.00803 - 10 0.000685 - 12 9.79e-05 - 13 0.141 - 14 0.0686 - 15 0.0234 - 16 0.00147 - 18 0.000294 - 19 0.00832 - 21 0.065 - 22 0.00431 - 24 0.00528 - 26 0.000391 - 28 0.0397 - 29 0.102 - 30 0.0302 - 31 0.0349 - 32 0.0379 - 33 0.0506 - 34 9.79e-05 - 35 0.00108 - 37 9.79e-05 - 41 0.11 - 42 0.00851 - 43 0.00127 - 44 0.00137 - 45 0.019 - 46 0.00617 - 47 0.0931 - - 7 48 15 0 - 0 0.0208 - 8 0.0208 - 13 0.125 - 14 0.125 - 18 0.0208 - 21 0.104 - 28 0.0625 - 29 0.0208 - 30 0.0417 - 32 0.0208 - 33 0.0625 - 41 0.229 - 42 0.0417 - 46 0.0208 - 47 0.0833 - - 12 1 1 0 - 42 1 - - 13 8 7 0 - 2 0.125 - 7 0.125 - 8 0.125 - 13 0.25 - 14 0.125 - 21 0.125 - 30 0.125 - - 15 14 1 0 - 47 1 - - 21 385 23 4 - 0 0.0182 - 2 0.0779 - 3 0.0104 - 4 0.0026 - 7 0.0545 - 8 0.0234 - 13 0.0909 - 14 0.0649 - 15 0.013 - 19 0.0104 - 21 0.0571 - 24 0.013 - 28 0.0234 - 29 0.013 - 30 0.0156 - 31 0.0312 - 32 0.0026 - 33 0.0026 - 41 0.249 - 42 0.026 - 45 0.0416 - 46 0.013 - 47 0.145 - - 7 246 21 0 - 2 0.0813 - 3 0.0122 - 7 0.061 - 8 0.0325 - 13 0.0854 - 14 0.061 - 15 0.0163 - 19 0.0122 - 21 0.0285 - 24 0.00407 - 28 0.00813 - 29 0.0122 - 30 0.0122 - 31 0.0163 - 32 0.00407 - 33 0.00407 - 41 0.297 - 42 0.0407 - 45 0.0407 - 46 0.0203 - 47 0.15 - - 21 13 8 0 - 2 0.0769 - 7 0.0769 - 8 0.0769 - 13 0.231 - 14 0.154 - 21 0.231 - 29 0.0769 - 41 0.0769 - - 47 118 18 0 - 0 0.0508 - 2 0.0678 - 3 0.00847 - 4 0.00847 - 7 0.0424 - 13 0.0932 - 14 0.0593 - 15 0.00847 - 19 0.00847 - 21 0.102 - 24 0.0339 - 28 0.0508 - 29 0.00847 - 30 0.0254 - 31 0.0678 - 41 0.178 - 45 0.0424 - 47 0.144 - - 71 5 5 0 - 2 0.2 - 14 0.2 - 28 0.2 - 45 0.2 - 47 0.2 - - 26 2 1 0 - 30 1 - - 34 10 5 0 - 2 0.1 - 13 0.4 - 14 0.1 - 41 0.2 - 47 0.2 - - 35 5 2 0 - 2 0.4 - 47 0.6 - - 41 8 5 0 - 8 0.25 - 13 0.375 - 14 0.125 - 28 0.125 - 33 0.125 - - 44 5 4 0 - 2 0.2 - 8 0.4 - 14 0.2 - 30 0.2 - - 45 26 7 0 - 2 0.0385 - 13 0.0769 - 14 0.0769 - 28 0.0769 - 29 0.269 - 33 0.192 - 41 0.269 - - 47 27924 40 25 - 0 0.0152 - 1 3.58e-05 - 2 0.0212 - 3 0.00834 - 4 0.00437 - 5 7.16e-05 - 6 3.58e-05 - 7 0.0219 - 8 0.0252 - 9 0.0038 - 10 0.000573 - 12 3.58e-05 - 13 0.18 - 14 0.1 - 15 0.0191 - 16 0.00161 - 17 0.000107 - 18 0.000215 - 19 0.00569 - 21 0.0165 - 22 0.00175 - 24 0.00369 - 26 0.00125 - 28 0.0342 - 29 0.166 - 30 0.0196 - 31 0.0206 - 32 0.0438 - 33 0.0491 - 34 3.58e-05 - 35 0.000179 - 37 7.16e-05 - 40 7.16e-05 - 41 0.156 - 42 0.00849 - 43 0.000931 - 44 0.00111 - 45 0.0122 - 46 0.00734 - 47 0.0488 - - 2 12 7 0 - 7 0.25 - 13 0.0833 - 22 0.0833 - 28 0.25 - 30 0.0833 - 41 0.0833 - 47 0.167 - - 4 201 17 0 - 0 0.0896 - 2 0.0597 - 3 0.0149 - 8 0.00498 - 13 0.144 - 14 0.00498 - 21 0.00995 - 24 0.00995 - 28 0.0746 - 29 0.343 - 30 0.0398 - 31 0.0348 - 32 0.0995 - 33 0.0448 - 41 0.0149 - 42 0.00498 - 45 0.00498 - - 7 9753 35 0 - 0 0.0275 - 2 0.0378 - 3 0.00892 - 4 0.000615 - 7 0.0198 - 8 0.0437 - 9 0.00841 - 10 0.000513 - 12 0.000103 - 13 0.146 - 14 0.0687 - 15 0.0245 - 16 0.00154 - 18 0.000308 - 19 0.00872 - 21 0.0321 - 22 0.00451 - 24 0.00554 - 26 0.00041 - 28 0.0416 - 29 0.107 - 30 0.0317 - 31 0.0366 - 32 0.0397 - 33 0.053 - 34 0.000103 - 35 0.000513 - 37 0.000103 - 41 0.115 - 42 0.00892 - 43 0.00133 - 44 0.00113 - 45 0.0199 - 46 0.00646 - 47 0.0975 - - 12 1 1 0 - 42 1 - - 13 7 6 0 - 2 0.143 - 8 0.143 - 13 0.286 - 14 0.143 - 21 0.143 - 30 0.143 - - 15 14 1 0 - 47 1 - - 21 367 23 0 - 0 0.0191 - 2 0.0817 - 3 0.0109 - 4 0.00272 - 7 0.0572 - 8 0.0245 - 13 0.0899 - 14 0.0654 - 15 0.0136 - 19 0.0109 - 21 0.0191 - 24 0.0136 - 28 0.0245 - 29 0.0136 - 30 0.0163 - 31 0.0327 - 32 0.00272 - 33 0.00272 - 41 0.262 - 42 0.0272 - 45 0.0436 - 46 0.0136 - 47 0.153 - - 26 2 1 0 - 30 1 - - 34 10 5 0 - 2 0.1 - 13 0.4 - 14 0.1 - 41 0.2 - 47 0.2 - - 35 4 2 0 - 2 0.25 - 47 0.75 - - 41 2 2 0 - 28 0.5 - 33 0.5 - - 44 5 4 0 - 2 0.2 - 8 0.4 - 14 0.2 - 30 0.2 - - 45 24 7 0 - 2 0.0417 - 13 0.0833 - 14 0.0833 - 28 0.0833 - 29 0.292 - 33 0.208 - 41 0.208 - - 49 130 21 0 - 0 0.0385 - 2 0.0385 - 7 0.00769 - 8 0.0308 - 13 0.0923 - 14 0.0385 - 15 0.00769 - 19 0.00769 - 21 0.0385 - 24 0.00769 - 28 0.00769 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.00769 - 41 0.369 - 42 0.0615 - 44 0.00769 - 45 0.0308 - 46 0.0154 - 47 0.146 - - 55 50 13 0 - 2 0.02 - 7 0.04 - 13 0.14 - 14 0.08 - 15 0.06 - 21 0.04 - 29 0.1 - 30 0.02 - 31 0.04 - 33 0.12 - 41 0.2 - 42 0.02 - 47 0.12 - - 57 13 9 0 - 8 0.0769 - 13 0.231 - 14 0.154 - 29 0.0769 - 31 0.0769 - 41 0.154 - 42 0.0769 - 46 0.0769 - 47 0.0769 - - 62 7901 29 0 - 0 0.00253 - 2 0.000506 - 3 0.00797 - 4 0.00367 - 7 0.00101 - 8 0.0221 - 9 0.0024 - 10 0.00101 - 13 0.172 - 14 0.078 - 15 0.00848 - 16 0.000127 - 17 0.000253 - 18 0.000127 - 19 0.00329 - 21 0.00633 - 22 0.000127 - 24 0.000759 - 28 0.0291 - 29 0.424 - 30 0.0182 - 31 0.0151 - 32 0.0938 - 33 0.0919 - 41 0.0103 - 42 0.00101 - 43 0.000506 - 45 0.00165 - 46 0.00354 - - 64 337 24 0 - 0 0.0326 - 2 0.0089 - 4 0.00593 - 7 0.0386 - 8 0.0326 - 13 0.131 - 14 0.0504 - 15 0.0089 - 19 0.0119 - 21 0.00297 - 22 0.00297 - 24 0.0119 - 26 0.00297 - 28 0.0801 - 29 0.285 - 30 0.0178 - 31 0.0148 - 32 0.0475 - 33 0.107 - 41 0.0623 - 42 0.0089 - 44 0.00297 - 45 0.0178 - 47 0.0148 - - 66 31 12 0 - 2 0.0645 - 7 0.0323 - 9 0.0645 - 13 0.226 - 14 0.0323 - 15 0.0645 - 18 0.0323 - 28 0.0323 - 29 0.0323 - 31 0.0968 - 41 0.0968 - 47 0.226 - - 68 2 2 0 - 8 0.5 - 47 0.5 - - 70 36 15 0 - 0 0.0278 - 2 0.0833 - 7 0.167 - 13 0.0278 - 19 0.0278 - 24 0.0278 - 28 0.111 - 29 0.0278 - 30 0.0278 - 31 0.0278 - 32 0.111 - 33 0.139 - 42 0.0278 - 45 0.0556 - 47 0.111 - - 71 1934 30 0 - 0 0.0274 - 2 0.0398 - 3 0.015 - 4 0.000517 - 7 0.0729 - 8 0.0217 - 9 0.00103 - 10 0.00103 - 13 0.171 - 14 0.0693 - 15 0.0274 - 18 0.000517 - 19 0.00982 - 21 0.0274 - 22 0.000517 - 24 0.0062 - 26 0.0031 - 28 0.06 - 29 0.0186 - 30 0.0129 - 31 0.0202 - 32 0.0119 - 33 0.0186 - 40 0.00103 - 41 0.204 - 42 0.014 - 44 0.00155 - 45 0.0264 - 46 0.0114 - 47 0.105 - - 72 6740 35 0 - 0 0.00608 - 1 0.000148 - 2 0.0113 - 3 0.00653 - 4 0.012 - 5 0.000297 - 6 0.000148 - 7 0.0323 - 8 0.00445 - 9 0.000148 - 10 0.000148 - 13 0.241 - 14 0.19 - 15 0.0223 - 16 0.00415 - 17 0.000148 - 19 0.00282 - 21 0.00415 - 22 0.000148 - 24 0.00267 - 26 0.00356 - 28 0.02 - 29 0.00341 - 30 0.00564 - 31 0.00356 - 32 0.0046 - 33 0.00401 - 37 0.000148 - 41 0.368 - 42 0.012 - 43 0.00134 - 44 0.00208 - 45 0.00712 - 46 0.0111 - 47 0.0126 - - 73 321 18 0 - 0 0.00312 - 2 0.0125 - 3 0.00935 - 4 0.00623 - 8 0.00623 - 13 0.424 - 14 0.137 - 15 0.0343 - 16 0.00312 - 28 0.0125 - 30 0.00623 - 31 0.00312 - 33 0.00623 - 41 0.277 - 42 0.0187 - 44 0.00312 - 45 0.00935 - 46 0.028 - - 74 14 5 0 - 7 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - - 49 130 21 3 - 0 0.0385 - 2 0.0385 - 7 0.00769 - 8 0.0308 - 13 0.0923 - 14 0.0385 - 15 0.00769 - 19 0.00769 - 21 0.0385 - 24 0.00769 - 28 0.00769 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.00769 - 41 0.369 - 42 0.0615 - 44 0.00769 - 45 0.0308 - 46 0.0154 - 47 0.146 - - 21 2 2 0 - 30 0.5 - 31 0.5 - - 71 10 6 0 - 8 0.1 - 14 0.1 - 41 0.3 - 42 0.2 - 46 0.1 - 47 0.2 - - 72 7 5 0 - 0 0.429 - 21 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 55 50 13 0 - 2 0.02 - 7 0.04 - 13 0.14 - 14 0.08 - 15 0.06 - 21 0.04 - 29 0.1 - 30 0.02 - 31 0.04 - 33 0.12 - 41 0.2 - 42 0.02 - 47 0.12 - - 57 13 9 0 - 8 0.0769 - 13 0.231 - 14 0.154 - 29 0.0769 - 31 0.0769 - 41 0.154 - 42 0.0769 - 46 0.0769 - 47 0.0769 - - 62 7950 30 0 - 0 0.00252 - 2 0.000503 - 3 0.00792 - 4 0.00365 - 7 0.00126 - 8 0.022 - 9 0.00289 - 10 0.00113 - 13 0.172 - 14 0.0776 - 15 0.00843 - 16 0.000126 - 17 0.000252 - 18 0.000126 - 19 0.00327 - 21 0.00654 - 22 0.000881 - 24 0.000755 - 28 0.0289 - 29 0.421 - 30 0.0181 - 31 0.015 - 32 0.0932 - 33 0.0913 - 37 0.000126 - 41 0.0102 - 42 0.00101 - 43 0.000629 - 45 0.00453 - 46 0.00365 - - 64 340 24 0 - 0 0.0324 - 2 0.00882 - 4 0.00588 - 7 0.0382 - 8 0.0324 - 13 0.129 - 14 0.05 - 15 0.00882 - 19 0.0118 - 21 0.0118 - 22 0.00294 - 24 0.0118 - 26 0.00294 - 28 0.0794 - 29 0.282 - 30 0.0176 - 31 0.0147 - 32 0.0471 - 33 0.106 - 41 0.0618 - 42 0.00882 - 44 0.00294 - 45 0.0176 - 47 0.0147 - - 66 31 12 0 - 2 0.0645 - 7 0.0323 - 9 0.0645 - 13 0.226 - 14 0.0323 - 15 0.0645 - 18 0.0323 - 28 0.0323 - 29 0.0323 - 31 0.0968 - 41 0.0968 - 47 0.226 - - 68 2 2 0 - 8 0.5 - 47 0.5 - - 70 36 15 0 - 0 0.0278 - 2 0.0833 - 7 0.167 - 13 0.0278 - 19 0.0278 - 24 0.0278 - 28 0.111 - 29 0.0278 - 30 0.0278 - 31 0.0278 - 32 0.111 - 33 0.139 - 42 0.0278 - 45 0.0556 - 47 0.111 - - 71 1950 30 0 - 0 0.0272 - 2 0.04 - 3 0.0149 - 4 0.000513 - 7 0.0723 - 8 0.0215 - 9 0.00103 - 10 0.00205 - 13 0.169 - 14 0.0687 - 15 0.0272 - 18 0.000513 - 19 0.00974 - 21 0.0338 - 22 0.000513 - 24 0.00615 - 26 0.00308 - 28 0.0595 - 29 0.0185 - 30 0.0128 - 31 0.02 - 32 0.0118 - 33 0.0185 - 40 0.00103 - 41 0.202 - 42 0.0138 - 44 0.00154 - 45 0.0262 - 46 0.0113 - 47 0.105 - - 72 6757 36 0 - 0 0.00607 - 1 0.000148 - 2 0.0112 - 3 0.00651 - 4 0.0121 - 5 0.000296 - 6 0.000148 - 7 0.0323 - 8 0.00474 - 9 0.000148 - 10 0.000148 - 13 0.24 - 14 0.19 - 15 0.0222 - 16 0.00414 - 17 0.000148 - 19 0.00281 - 21 0.00503 - 22 0.000148 - 24 0.00266 - 26 0.00355 - 28 0.02 - 29 0.0034 - 30 0.00562 - 31 0.00355 - 32 0.00459 - 33 0.004 - 36 0.000148 - 37 0.000148 - 41 0.367 - 42 0.012 - 43 0.00133 - 44 0.00237 - 45 0.00755 - 46 0.0111 - 47 0.0126 - - 73 321 18 0 - 0 0.00312 - 2 0.0125 - 3 0.00935 - 4 0.00623 - 8 0.00623 - 13 0.424 - 14 0.137 - 15 0.0343 - 16 0.00312 - 28 0.0125 - 30 0.00623 - 31 0.00312 - 33 0.00623 - 41 0.277 - 42 0.0187 - 44 0.00312 - 45 0.00935 - 46 0.028 - - 74 14 5 0 - 7 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - -65 683 22 14 - 0 0.00878 - 2 0.0293 - 7 0.00293 - 8 0.00586 - 9 0.00146 - 12 0.00146 - 13 0.0293 - 14 0.00732 - 15 0.00146 - 21 0.0351 - 28 0.00439 - 31 0.00146 - 34 0.00146 - 35 0.124 - 37 0.113 - 40 0.00586 - 41 0.0527 - 42 0.0366 - 44 0.00293 - 45 0.133 - 46 0.00293 - 47 0.398 - - 2 12 3 0 - 0 0.0833 - 44 0.0833 - 47 0.833 - - 21 11 3 0 - 0 0.0909 - 45 0.0909 - 47 0.818 - - 41 14 6 0 - 8 0.214 - 13 0.429 - 15 0.0714 - 21 0.143 - 31 0.0714 - 37 0.0714 - - 45 28 3 0 - 41 0.143 - 42 0.0357 - 47 0.821 - - 46 2 1 0 - 41 1 - - 47 198 10 1 - 0 0.00505 - 2 0.0202 - 7 0.00505 - 21 0.00505 - 28 0.00505 - 40 0.0101 - 41 0.0455 - 42 0.0606 - 45 0.157 - 47 0.687 - - 45 27 3 0 - 41 0.111 - 42 0.037 - 47 0.852 - - 58 5 3 0 - 13 0.2 - 28 0.2 - 37 0.6 - - 62 7 4 0 - 14 0.143 - 35 0.429 - 37 0.286 - 47 0.143 - - 64 12 4 0 - 0 0.0833 - 42 0.0833 - 45 0.25 - 47 0.583 - - 65 3 3 0 - 2 0.333 - 41 0.333 - 42 0.333 - - 67 184 13 0 - 0 0.00543 - 2 0.0109 - 8 0.00543 - 9 0.00543 - 12 0.00543 - 13 0.0652 - 14 0.0217 - 21 0.0489 - 34 0.00543 - 35 0.429 - 37 0.37 - 41 0.0217 - 45 0.00543 - - 69 1 1 0 - 0 1 - - 71 83 9 0 - 2 0.0843 - 21 0.0723 - 28 0.012 - 41 0.0723 - 42 0.0361 - 44 0.012 - 45 0.301 - 46 0.012 - 47 0.398 - - 72 108 9 0 - 2 0.0556 - 7 0.00926 - 21 0.0556 - 40 0.0185 - 41 0.0833 - 42 0.0648 - 45 0.278 - 46 0.00926 - 47 0.426 - -66 9695 38 20 - 0 0.00743 - 2 0.00918 - 3 0.0032 - 4 0.00196 - 5 0.000103 - 6 0.000103 - 7 0.0099 - 8 0.0141 - 9 0.00124 - 10 0.000103 - 12 0.00258 - 13 0.0709 - 14 0.033 - 15 0.00949 - 16 0.000413 - 18 0.000309 - 19 0.00825 - 21 0.0228 - 22 0.000825 - 24 0.00175 - 26 0.000413 - 28 0.00495 - 29 0.00155 - 30 0.00196 - 31 0.00495 - 32 0.00155 - 33 0.00134 - 34 0.000413 - 35 0.000722 - 37 0.000206 - 40 0.00144 - 41 0.158 - 42 0.0033 - 43 0.000619 - 44 0.000309 - 45 0.108 - 46 0.14 - 47 0.372 - - 0 88 14 2 - 2 0.227 - 3 0.0227 - 4 0.0114 - 7 0.227 - 9 0.0227 - 13 0.114 - 14 0.0227 - 18 0.0114 - 21 0.205 - 31 0.0341 - 35 0.0114 - 41 0.0227 - 42 0.0114 - 47 0.0568 - - 47 34 7 0 - 2 0.235 - 4 0.0294 - 7 0.559 - 13 0.0588 - 21 0.0588 - 35 0.0294 - 41 0.0294 - - 55 54 12 0 - 2 0.222 - 3 0.037 - 7 0.0185 - 9 0.037 - 13 0.148 - 14 0.037 - 18 0.0185 - 21 0.296 - 31 0.0556 - 41 0.0185 - 42 0.0185 - 47 0.0926 - - 2 31 3 0 - 41 0.0323 - 45 0.0323 - 47 0.935 - - 12 26 8 0 - 2 0.308 - 13 0.154 - 15 0.0769 - 21 0.231 - 35 0.0385 - 37 0.0385 - 41 0.0769 - 47 0.0769 - - 21 7 4 0 - 12 0.143 - 19 0.286 - 42 0.143 - 47 0.429 - - 33 4 2 0 - 21 0.75 - 47 0.25 - - 40 9 5 0 - 8 0.111 - 13 0.556 - 24 0.111 - 30 0.111 - 42 0.111 - - 41 1398 28 4 - 0 0.0122 - 2 0.000715 - 3 0.0179 - 4 0.00787 - 5 0.000715 - 6 0.000715 - 7 0.0114 - 8 0.0858 - 9 0.00572 - 10 0.000715 - 12 0.00143 - 13 0.408 - 14 0.192 - 15 0.0451 - 16 0.00286 - 19 0.0258 - 21 0.0672 - 22 0.00501 - 24 0.0114 - 26 0.00215 - 28 0.0315 - 29 0.00858 - 30 0.0107 - 31 0.0222 - 32 0.00858 - 33 0.00787 - 35 0.000715 - 43 0.00429 - - 46 1150 27 0 - 0 0.0139 - 3 0.0104 - 4 0.00957 - 5 0.00087 - 6 0.00087 - 7 0.013 - 8 0.0957 - 9 0.00522 - 10 0.00087 - 12 0.00174 - 13 0.415 - 14 0.17 - 15 0.0435 - 16 0.00348 - 19 0.0304 - 21 0.0661 - 22 0.00435 - 24 0.0139 - 26 0.00261 - 28 0.0322 - 29 0.0087 - 30 0.013 - 31 0.0235 - 32 0.00957 - 33 0.00609 - 35 0.00087 - 43 0.00435 - - 49 7 6 0 - 3 0.143 - 8 0.143 - 13 0.143 - 14 0.143 - 15 0.143 - 29 0.286 - - 57 6 3 0 - 13 0.333 - 14 0.167 - 21 0.5 - - 69 231 17 0 - 0 0.00433 - 2 0.00433 - 3 0.0519 - 7 0.00433 - 8 0.039 - 9 0.00866 - 13 0.385 - 14 0.303 - 15 0.0519 - 19 0.00433 - 21 0.0606 - 22 0.00866 - 28 0.0303 - 31 0.0173 - 32 0.00433 - 33 0.0173 - 43 0.00433 - - 45 1037 7 1 - 2 0.00193 - 34 0.000964 - 41 0.000964 - 42 0.00193 - 44 0.000964 - 46 0.000964 - 47 0.992 - - 69 1 1 0 - 46 1 - - 46 1179 3 0 - 40 0.0119 - 41 0.978 - 46 0.0102 - - 47 2027 21 10 - 2 0.0143 - 7 0.0192 - 9 0.000987 - 13 0.00345 - 14 0.000493 - 15 0.000987 - 18 0.000493 - 21 0.00691 - 28 0.000493 - 29 0.000493 - 31 0.00148 - 32 0.000493 - 34 0.000987 - 35 0.00148 - 37 0.000493 - 41 0.0276 - 42 0.0074 - 44 0.000493 - 45 0.00296 - 46 0.0183 - 47 0.89 - - 0 52 11 0 - 2 0.115 - 7 0.385 - 9 0.0385 - 13 0.0577 - 14 0.0192 - 18 0.0192 - 21 0.154 - 31 0.0577 - 35 0.0192 - 41 0.0385 - 47 0.0962 - - 2 30 2 0 - 45 0.0333 - 47 0.967 - - 12 20 8 0 - 2 0.25 - 13 0.2 - 15 0.1 - 21 0.15 - 35 0.05 - 37 0.05 - 41 0.1 - 47 0.1 - - 45 1033 4 0 - 2 0.000968 - 34 0.000968 - 42 0.00194 - 47 0.996 - - 49 86 6 0 - 2 0.151 - 28 0.0116 - 42 0.0116 - 44 0.0116 - 45 0.0116 - 47 0.802 - - 51 6 2 0 - 42 0.333 - 47 0.667 - - 55 11 3 0 - 2 0.182 - 42 0.364 - 47 0.455 - - 57 83 5 0 - 2 0.012 - 7 0.012 - 42 0.012 - 45 0.012 - 47 0.952 - - 62 456 3 0 - 34 0.00219 - 42 0.00439 - 47 0.993 - - 69 198 10 0 - 7 0.0909 - 21 0.0152 - 29 0.00505 - 32 0.00505 - 35 0.00505 - 41 0.253 - 42 0.00505 - 45 0.0101 - 46 0.187 - 47 0.424 - - 48 31 3 0 - 2 0.0323 - 21 0.129 - 47 0.839 - - 49 98 8 0 - 2 0.163 - 21 0.0204 - 28 0.0102 - 41 0.0714 - 42 0.0102 - 44 0.0102 - 45 0.0102 - 47 0.704 - - 51 14 3 0 - 42 0.143 - 45 0.571 - 47 0.286 - - 55 97 11 4 - 0 0.567 - 2 0.0309 - 8 0.0103 - 12 0.227 - 15 0.0103 - 21 0.0103 - 33 0.0103 - 42 0.0412 - 45 0.0309 - 46 0.0103 - 47 0.0515 - - 41 5 4 0 - 2 0.2 - 15 0.2 - 45 0.4 - 47 0.2 - - 47 5 2 0 - 2 0.2 - 42 0.8 - - 57 1 1 0 - 33 1 - - 69 83 8 0 - 0 0.639 - 2 0.012 - 8 0.012 - 12 0.265 - 21 0.012 - 45 0.012 - 46 0.012 - 47 0.0361 - - 57 99 10 3 - 2 0.0303 - 7 0.0101 - 8 0.0101 - 13 0.0202 - 14 0.0101 - 21 0.0404 - 41 0.0606 - 42 0.0101 - 45 0.0101 - 47 0.798 - - 0 9 3 0 - 21 0.333 - 42 0.111 - 47 0.556 - - 41 8 2 0 - 41 0.625 - 47 0.375 - - 69 77 7 0 - 2 0.026 - 7 0.013 - 13 0.013 - 14 0.013 - 21 0.013 - 45 0.013 - 47 0.909 - - 58 6 5 0 - 8 0.167 - 13 0.333 - 14 0.167 - 15 0.167 - 19 0.167 - - 62 1478 6 2 - 2 0.00271 - 34 0.000677 - 41 0.000677 - 42 0.00135 - 45 0.688 - 47 0.306 - - 41 1357 6 0 - 2 0.00295 - 34 0.000737 - 41 0.000737 - 42 0.00147 - 45 0.739 - 47 0.255 - - 69 111 2 0 - 45 0.036 - 47 0.964 - - 64 11 5 0 - 2 0.0909 - 13 0.0909 - 41 0.0909 - 45 0.0909 - 47 0.636 - - 65 9 3 0 - 42 0.111 - 45 0.667 - 47 0.222 - - 69 2030 25 4 - 2 0.000493 - 3 0.00197 - 4 0.00345 - 7 0.00985 - 8 0.0064 - 13 0.0404 - 14 0.0227 - 15 0.0113 - 18 0.000493 - 19 0.0202 - 21 0.036 - 22 0.000493 - 26 0.000493 - 28 0.000985 - 29 0.000985 - 30 0.00148 - 31 0.00542 - 32 0.000985 - 33 0.000493 - 35 0.000493 - 41 0.146 - 42 0.000493 - 45 0.00148 - 46 0.645 - 47 0.0414 - - 41 2 2 0 - 19 0.5 - 47 0.5 - - 47 1970 23 0 - 3 0.00203 - 4 0.00355 - 7 0.00964 - 8 0.0066 - 13 0.0416 - 14 0.0228 - 15 0.0117 - 18 0.000508 - 19 0.0203 - 21 0.0315 - 22 0.000508 - 26 0.000508 - 28 0.00102 - 29 0.000508 - 30 0.00152 - 31 0.00558 - 32 0.00102 - 33 0.000508 - 35 0.000508 - 41 0.151 - 45 0.00152 - 46 0.665 - 47 0.0208 - - 58 2 1 0 - 21 1 - - 69 54 6 0 - 2 0.0185 - 7 0.0185 - 21 0.167 - 29 0.0185 - 42 0.0185 - 47 0.759 - -67 759 24 13 - 0 0.00527 - 2 0.0527 - 4 0.00132 - 7 0.00395 - 8 0.00264 - 9 0.00264 - 12 0.00264 - 13 0.0395 - 14 0.0145 - 15 0.00922 - 19 0.00922 - 21 0.0329 - 31 0.00132 - 33 0.00132 - 34 0.00264 - 35 0.215 - 37 0.182 - 40 0.00395 - 41 0.0461 - 42 0.0237 - 44 0.00527 - 45 0.0777 - 46 0.00132 - 47 0.264 - - 0 167 13 0 - 0 0.00599 - 2 0.0778 - 8 0.00599 - 13 0.0359 - 14 0.012 - 21 0.0359 - 35 0.15 - 37 0.228 - 40 0.00599 - 41 0.0659 - 42 0.0359 - 45 0.0958 - 47 0.246 - - 2 15 2 0 - 46 0.0667 - 47 0.933 - - 12 94 11 0 - 2 0.117 - 9 0.0106 - 13 0.0319 - 14 0.0106 - 21 0.0319 - 35 0.128 - 37 0.245 - 41 0.106 - 42 0.0106 - 45 0.0532 - 47 0.255 - - 14 2 1 0 - 45 1 - - 41 17 9 1 - 4 0.0588 - 7 0.0588 - 13 0.235 - 14 0.118 - 15 0.118 - 19 0.0588 - 21 0.235 - 31 0.0588 - 33 0.0588 - - 12 7 5 0 - 4 0.143 - 13 0.286 - 14 0.286 - 19 0.143 - 31 0.143 - - 45 6 5 0 - 2 0.167 - 7 0.167 - 42 0.167 - 44 0.333 - 47 0.167 - - 46 1 1 0 - 40 1 - - 47 342 18 10 - 0 0.00585 - 2 0.038 - 7 0.00292 - 8 0.00292 - 9 0.00292 - 12 0.00292 - 13 0.0351 - 14 0.0117 - 21 0.0263 - 34 0.00292 - 35 0.237 - 37 0.202 - 40 0.00292 - 41 0.0263 - 42 0.0263 - 44 0.00585 - 45 0.076 - 47 0.292 - - 0 148 13 0 - 0 0.00676 - 2 0.0338 - 8 0.00676 - 13 0.0405 - 14 0.00676 - 21 0.0338 - 35 0.169 - 37 0.257 - 40 0.00676 - 41 0.027 - 42 0.0405 - 45 0.0946 - 47 0.277 - - 2 14 1 0 - 47 1 - - 12 82 11 0 - 2 0.0854 - 9 0.0122 - 13 0.0366 - 14 0.0122 - 21 0.0366 - 35 0.146 - 37 0.28 - 41 0.0366 - 42 0.0122 - 45 0.0488 - 47 0.293 - - 14 2 1 0 - 45 1 - - 45 5 4 0 - 7 0.2 - 42 0.2 - 44 0.4 - 47 0.2 - - 49 5 2 0 - 14 0.2 - 47 0.8 - - 55 7 6 0 - 0 0.143 - 2 0.143 - 12 0.143 - 21 0.143 - 35 0.143 - 45 0.286 - - 57 6 2 0 - 37 0.167 - 47 0.833 - - 64 6 3 0 - 41 0.333 - 45 0.167 - 47 0.5 - - 69 56 7 0 - 13 0.0536 - 14 0.0179 - 34 0.0179 - 35 0.768 - 37 0.0714 - 45 0.0357 - 47 0.0357 - - 49 5 2 0 - 14 0.2 - 47 0.8 - - 55 10 7 0 - 0 0.1 - 2 0.1 - 12 0.1 - 15 0.3 - 21 0.1 - 35 0.1 - 45 0.2 - - 57 6 2 0 - 37 0.167 - 47 0.833 - - 64 8 4 0 - 2 0.125 - 41 0.25 - 45 0.25 - 47 0.375 - - 69 67 10 0 - 13 0.0597 - 14 0.0149 - 15 0.0299 - 19 0.0896 - 21 0.0299 - 34 0.0149 - 35 0.642 - 37 0.0597 - 45 0.0299 - 47 0.0299 - -68 1958 35 27 - 0 0.0827 - 1 0.00102 - 2 0.111 - 3 0.0133 - 4 0.0511 - 7 0.072 - 8 0.116 - 9 0.00358 - 13 0.15 - 14 0.0572 - 15 0.0465 - 16 0.000511 - 18 0.00715 - 19 0.00511 - 20 0.00409 - 21 0.0235 - 22 0.00102 - 24 0.00306 - 26 0.00562 - 27 0.000511 - 28 0.0225 - 29 0.00562 - 30 0.0163 - 31 0.0235 - 32 0.00358 - 33 0.0097 - 37 0.00153 - 40 0.00153 - 41 0.0914 - 42 0.0184 - 43 0.00153 - 44 0.00102 - 45 0.00919 - 46 0.00613 - 47 0.0337 - - 2 466 18 9 - 0 0.00429 - 3 0.0343 - 7 0.0172 - 8 0.193 - 9 0.00858 - 13 0.369 - 14 0.0687 - 15 0.122 - 16 0.00215 - 19 0.00215 - 21 0.0343 - 22 0.00215 - 30 0.00429 - 31 0.00429 - 37 0.00644 - 41 0.109 - 43 0.00644 - 46 0.0107 - - 7 1 1 0 - 37 1 - - 8 110 4 0 - 8 0.109 - 13 0.682 - 14 0.0182 - 15 0.191 - - 13 55 4 0 - 8 0.545 - 13 0.345 - 14 0.0727 - 41 0.0364 - - 14 10 2 0 - 8 0.2 - 13 0.8 - - 15 19 3 0 - 8 0.474 - 14 0.0526 - 15 0.474 - - 30 3 1 0 - 8 1 - - 47 253 17 0 - 3 0.0593 - 7 0.0316 - 8 0.119 - 9 0.0158 - 13 0.265 - 14 0.0988 - 15 0.107 - 16 0.00395 - 19 0.00395 - 21 0.0593 - 22 0.00395 - 30 0.00791 - 31 0.00791 - 37 0.00791 - 41 0.182 - 43 0.0119 - 46 0.0158 - - 48 3 2 0 - 0 0.333 - 8 0.667 - - 57 1 1 0 - 0 1 - - 4 9 5 0 - 0 0.222 - 7 0.444 - 13 0.111 - 41 0.111 - 45 0.111 - - 7 4 4 0 - 2 0.25 - 8 0.25 - 21 0.25 - 41 0.25 - - 8 194 20 4 - 0 0.00515 - 2 0.572 - 3 0.0103 - 4 0.0722 - 7 0.0619 - 8 0.067 - 13 0.0155 - 15 0.0155 - 18 0.0206 - 20 0.00515 - 21 0.00515 - 26 0.0103 - 28 0.0206 - 29 0.00515 - 30 0.0155 - 31 0.00515 - 33 0.0155 - 41 0.0464 - 42 0.0103 - 47 0.0206 - - 2 58 17 0 - 0 0.0172 - 2 0.0172 - 3 0.0345 - 4 0.172 - 7 0.121 - 8 0.155 - 13 0.0517 - 15 0.0345 - 18 0.0345 - 21 0.0172 - 28 0.069 - 29 0.0172 - 30 0.0345 - 31 0.0172 - 33 0.0345 - 41 0.103 - 47 0.069 - - 13 3 3 0 - 8 0.333 - 18 0.333 - 26 0.333 - - 41 18 9 0 - 4 0.222 - 7 0.222 - 8 0.0556 - 18 0.0556 - 26 0.0556 - 30 0.0556 - 33 0.0556 - 41 0.167 - 42 0.111 - - 47 111 4 0 - 2 0.973 - 7 0.00901 - 8 0.00901 - 15 0.00901 - - 13 182 19 3 - 0 0.00549 - 2 0.308 - 3 0.00549 - 4 0.11 - 7 0.137 - 8 0.132 - 9 0.00549 - 13 0.022 - 15 0.022 - 18 0.0165 - 20 0.011 - 26 0.011 - 28 0.0165 - 30 0.022 - 31 0.00549 - 32 0.011 - 33 0.011 - 41 0.132 - 47 0.0165 - - 2 103 19 0 - 0 0.00971 - 2 0.00971 - 3 0.00971 - 4 0.136 - 7 0.204 - 8 0.214 - 9 0.00971 - 13 0.0291 - 15 0.0194 - 18 0.0194 - 20 0.00971 - 26 0.0194 - 28 0.0291 - 30 0.0291 - 31 0.00971 - 32 0.00971 - 33 0.00971 - 41 0.204 - 47 0.0194 - - 41 17 10 0 - 4 0.294 - 7 0.176 - 8 0.0588 - 15 0.0588 - 18 0.0588 - 30 0.0588 - 32 0.0588 - 33 0.0588 - 41 0.118 - 47 0.0588 - - 47 51 2 0 - 2 0.98 - 13 0.0196 - - 14 21 6 2 - 2 0.476 - 4 0.143 - 8 0.0952 - 13 0.0952 - 33 0.0476 - 41 0.143 - - 2 7 4 0 - 4 0.429 - 8 0.143 - 33 0.143 - 41 0.286 - - 47 13 3 0 - 2 0.769 - 8 0.0769 - 13 0.154 - - 15 60 9 2 - 2 0.317 - 4 0.15 - 7 0.117 - 8 0.15 - 13 0.0167 - 15 0.133 - 20 0.0167 - 41 0.0333 - 47 0.0667 - - 2 31 7 0 - 4 0.226 - 7 0.194 - 8 0.258 - 13 0.0323 - 15 0.129 - 20 0.0323 - 47 0.129 - - 47 18 2 0 - 2 0.833 - 15 0.167 - - 21 16 5 1 - 0 0.188 - 2 0.5 - 13 0.125 - 21 0.125 - 42 0.0625 - - 48 3 1 0 - 0 1 - - 30 5 3 0 - 2 0.6 - 7 0.2 - 13 0.2 - - 41 124 16 4 - 3 0.0403 - 4 0.00806 - 8 0.29 - 9 0.00806 - 13 0.387 - 14 0.0887 - 15 0.0242 - 19 0.00806 - 21 0.0403 - 22 0.00806 - 26 0.00806 - 29 0.00806 - 30 0.0323 - 31 0.0161 - 33 0.00806 - 40 0.0242 - - 2 50 12 0 - 3 0.08 - 8 0.16 - 13 0.36 - 14 0.12 - 15 0.02 - 19 0.02 - 21 0.1 - 22 0.02 - 29 0.02 - 30 0.04 - 31 0.04 - 33 0.02 - - 13 22 3 0 - 4 0.0455 - 8 0.591 - 13 0.364 - - 46 5 3 0 - 8 0.2 - 13 0.2 - 40 0.6 - - 48 9 4 0 - 3 0.111 - 8 0.667 - 9 0.111 - 30 0.111 - - 42 11 6 0 - 4 0.0909 - 7 0.0909 - 8 0.273 - 13 0.364 - 15 0.0909 - 47 0.0909 - - 45 10 7 0 - 0 0.1 - 2 0.1 - 7 0.2 - 19 0.1 - 24 0.1 - 42 0.1 - 46 0.3 - - 46 9 4 0 - 8 0.222 - 27 0.111 - 32 0.111 - 41 0.556 - - 47 494 29 16 - 0 0.164 - 1 0.00202 - 2 0.00405 - 3 0.00405 - 4 0.0911 - 7 0.132 - 8 0.0891 - 9 0.00202 - 13 0.0587 - 14 0.0688 - 15 0.0202 - 18 0.0142 - 19 0.0081 - 20 0.0081 - 21 0.0121 - 24 0.00607 - 26 0.0101 - 28 0.0445 - 29 0.0101 - 30 0.0263 - 31 0.0425 - 32 0.00607 - 33 0.0182 - 41 0.0547 - 42 0.0243 - 44 0.00202 - 45 0.0081 - 46 0.00202 - 47 0.0668 - - 4 8 4 0 - 0 0.25 - 7 0.5 - 41 0.125 - 45 0.125 - - 8 71 19 0 - 0 0.0141 - 2 0.0141 - 3 0.0282 - 4 0.197 - 7 0.155 - 8 0.155 - 13 0.0423 - 15 0.0282 - 18 0.0563 - 20 0.0141 - 21 0.0141 - 26 0.0282 - 28 0.0563 - 29 0.0141 - 30 0.0423 - 31 0.0141 - 33 0.0423 - 42 0.0282 - 47 0.0563 - - 13 93 17 0 - 0 0.0108 - 2 0.0108 - 4 0.172 - 7 0.269 - 8 0.226 - 9 0.0108 - 15 0.043 - 18 0.0323 - 20 0.0215 - 26 0.0215 - 28 0.0323 - 30 0.043 - 31 0.0108 - 32 0.0215 - 33 0.0215 - 41 0.0215 - 47 0.0323 - - 14 4 2 0 - 4 0.75 - 33 0.25 - - 15 30 5 0 - 4 0.3 - 7 0.233 - 8 0.3 - 20 0.0333 - 47 0.133 - - 21 5 3 0 - 0 0.6 - 13 0.2 - 42 0.2 - - 45 6 5 0 - 0 0.167 - 7 0.333 - 19 0.167 - 24 0.167 - 42 0.167 - - 48 60 12 0 - 0 0.533 - 1 0.0167 - 4 0.0333 - 7 0.0333 - 13 0.05 - 14 0.0667 - 28 0.0333 - 29 0.0167 - 41 0.0833 - 42 0.0333 - 45 0.0167 - 47 0.0833 - - 49 34 12 0 - 0 0.206 - 7 0.0882 - 13 0.0882 - 14 0.147 - 21 0.0294 - 28 0.118 - 29 0.0294 - 30 0.0294 - 31 0.0294 - 41 0.147 - 42 0.0294 - 47 0.0588 - - 50 2 1 0 - 41 1 - - 55 61 17 0 - 0 0.246 - 4 0.0164 - 7 0.148 - 13 0.0328 - 14 0.131 - 19 0.0328 - 21 0.0328 - 26 0.0164 - 28 0.0656 - 30 0.0328 - 31 0.0328 - 32 0.0164 - 33 0.0328 - 41 0.0656 - 42 0.0492 - 44 0.0164 - 47 0.0328 - - 57 68 17 0 - 0 0.147 - 8 0.0147 - 13 0.191 - 14 0.147 - 15 0.0588 - 19 0.0147 - 21 0.0147 - 24 0.0147 - 28 0.0294 - 29 0.0294 - 30 0.0441 - 31 0.162 - 33 0.0147 - 41 0.0441 - 42 0.0147 - 45 0.0147 - 47 0.0441 - - 62 13 6 0 - 7 0.0769 - 14 0.0769 - 31 0.154 - 41 0.0769 - 46 0.0769 - 47 0.538 - - 64 10 8 0 - 0 0.1 - 8 0.1 - 13 0.2 - 24 0.1 - 28 0.1 - 31 0.2 - 42 0.1 - 47 0.1 - - 65 1 1 0 - 45 1 - - 69 17 5 0 - 0 0.353 - 13 0.0588 - 14 0.353 - 21 0.0588 - 41 0.176 - - 48 82 14 3 - 0 0.39 - 1 0.0122 - 2 0.0366 - 4 0.0488 - 7 0.0244 - 13 0.0366 - 14 0.0488 - 21 0.0488 - 28 0.0244 - 29 0.0122 - 41 0.171 - 42 0.0366 - 45 0.0488 - 47 0.061 - - 41 24 7 0 - 0 0.333 - 14 0.0417 - 21 0.0833 - 28 0.0417 - 41 0.333 - 45 0.0417 - 47 0.125 - - 46 2 1 0 - 45 1 - - 47 2 2 0 - 14 0.5 - 42 0.5 - - 49 40 14 1 - 0 0.175 - 2 0.025 - 4 0.05 - 7 0.075 - 13 0.075 - 14 0.125 - 21 0.05 - 28 0.1 - 29 0.025 - 30 0.025 - 31 0.025 - 41 0.175 - 42 0.025 - 47 0.05 - - 41 7 4 0 - 13 0.286 - 21 0.143 - 29 0.143 - 41 0.429 - - 50 4 1 0 - 41 1 - - 51 2 2 0 - 28 0.5 - 42 0.5 - - 52 1 1 0 - 45 1 - - 55 85 19 3 - 0 0.176 - 4 0.0118 - 7 0.106 - 13 0.0235 - 14 0.106 - 19 0.0235 - 21 0.0471 - 26 0.0118 - 28 0.0471 - 30 0.0235 - 31 0.0235 - 32 0.0118 - 33 0.0235 - 41 0.176 - 42 0.118 - 44 0.0118 - 45 0.0118 - 46 0.0235 - 47 0.0235 - - 2 49 17 0 - 0 0.163 - 4 0.0204 - 7 0.143 - 13 0.0408 - 14 0.163 - 19 0.0204 - 21 0.0408 - 26 0.0204 - 28 0.0408 - 30 0.0408 - 31 0.0408 - 32 0.0204 - 33 0.0204 - 41 0.143 - 42 0.0204 - 45 0.0204 - 47 0.0408 - - 41 20 8 0 - 0 0.3 - 7 0.1 - 19 0.05 - 28 0.1 - 33 0.05 - 41 0.25 - 42 0.1 - 44 0.05 - - 47 15 5 0 - 14 0.0667 - 21 0.133 - 41 0.2 - 42 0.467 - 46 0.133 - - 57 75 19 2 - 0 0.133 - 2 0.0133 - 7 0.0133 - 8 0.0133 - 13 0.173 - 14 0.133 - 15 0.0533 - 19 0.0133 - 21 0.04 - 24 0.0133 - 28 0.0267 - 29 0.0267 - 30 0.04 - 31 0.147 - 33 0.0133 - 41 0.08 - 42 0.0133 - 45 0.0133 - 47 0.04 - - 2 53 15 0 - 0 0.113 - 2 0.0189 - 7 0.0189 - 8 0.0189 - 13 0.151 - 14 0.189 - 15 0.0566 - 21 0.0566 - 24 0.0189 - 28 0.0189 - 29 0.0377 - 30 0.0189 - 31 0.151 - 41 0.113 - 47 0.0189 - - 41 19 11 0 - 0 0.211 - 13 0.158 - 15 0.0526 - 19 0.0526 - 28 0.0526 - 30 0.105 - 31 0.158 - 33 0.0526 - 42 0.0526 - 45 0.0526 - 47 0.0526 - - 62 19 9 2 - 7 0.0526 - 14 0.0526 - 21 0.0526 - 31 0.105 - 41 0.158 - 42 0.105 - 45 0.0526 - 46 0.0526 - 47 0.368 - - 2 7 5 0 - 7 0.143 - 14 0.143 - 31 0.286 - 41 0.286 - 46 0.143 - - 42 5 1 0 - 47 1 - - 64 11 8 0 - 0 0.0909 - 8 0.0909 - 13 0.182 - 24 0.0909 - 28 0.0909 - 31 0.182 - 42 0.182 - 47 0.0909 - - 65 3 1 0 - 45 1 - - 67 2 1 0 - 45 1 - - 69 19 5 0 - 0 0.316 - 13 0.0526 - 14 0.316 - 21 0.0526 - 41 0.263 - - 71 2 2 0 - 31 0.5 - 47 0.5 - -69 294981 43 37 - 0 0.105 - 1 0.00265 - 2 0.0256 - 3 0.00552 - 4 0.00905 - 5 0.00567 - 6 9.49e-05 - 7 0.0229 - 8 0.00961 - 9 0.000532 - 10 0.000431 - 12 0.0558 - 13 0.14 - 14 0.108 - 15 0.0833 - 16 0.00388 - 18 0.000919 - 19 0.0976 - 20 9.49e-05 - 21 0.0678 - 22 0.000427 - 23 0.000122 - 24 0.00078 - 25 2.37e-05 - 26 0.0912 - 27 1.36e-05 - 28 0.00706 - 29 0.00917 - 30 0.00623 - 31 0.0111 - 32 0.00412 - 33 0.00631 - 34 0.0243 - 35 0.0121 - 37 0.000692 - 40 7.12e-05 - 41 0.0548 - 42 0.00322 - 43 0.00148 - 44 0.000363 - 45 0.00512 - 46 0.0116 - 47 0.00527 - - 0 33828 41 0 - 0 0.0459 - 1 0.000443 - 2 0.0164 - 3 0.00573 - 4 0.0196 - 5 0.0219 - 6 0.000118 - 7 0.00198 - 8 0.00399 - 9 0.000236 - 10 0.000709 - 12 0.0834 - 13 0.183 - 14 0.139 - 15 0.0942 - 16 0.00562 - 18 0.0013 - 19 0.154 - 20 8.87e-05 - 21 0.0574 - 22 0.000118 - 23 2.96e-05 - 24 0.000177 - 26 0.0434 - 28 0.00121 - 29 0.00127 - 30 0.00139 - 31 0.0018 - 32 0.00106 - 33 0.000709 - 34 0.0345 - 35 0.0178 - 37 5.91e-05 - 40 2.96e-05 - 41 0.0478 - 42 0.00328 - 43 0.00207 - 44 2.96e-05 - 45 0.00532 - 46 0.00316 - 47 0.000207 - - 1 555 24 0 - 0 0.342 - 2 0.018 - 4 0.0036 - 7 0.245 - 8 0.0018 - 13 0.0613 - 14 0.0721 - 15 0.00541 - 19 0.00541 - 20 0.0036 - 21 0.101 - 24 0.00541 - 26 0.0198 - 28 0.0126 - 29 0.0036 - 31 0.0036 - 32 0.0018 - 33 0.0036 - 41 0.0378 - 42 0.0036 - 43 0.0036 - 45 0.0144 - 46 0.0036 - 47 0.027 - - 2 411 19 14 - 0 0.00243 - 7 0.00487 - 8 0.00973 - 12 0.017 - 13 0.00973 - 14 0.0146 - 15 0.00487 - 28 0.338 - 29 0.0779 - 30 0.151 - 31 0.173 - 32 0.0779 - 33 0.09 - 34 0.00243 - 41 0.0146 - 42 0.00243 - 43 0.00243 - 44 0.00243 - 46 0.00487 - - 0 2 2 0 - 8 0.5 - 12 0.5 - - 8 2 1 0 - 8 1 - - 12 3 1 0 - 12 1 - - 13 2 1 0 - 13 1 - - 21 2 2 0 - 28 0.5 - 46 0.5 - - 28 142 4 0 - 28 0.972 - 41 0.0141 - 42 0.00704 - 43 0.00704 - - 29 33 2 0 - 29 0.97 - 41 0.0303 - - 30 64 3 0 - 7 0.0156 - 8 0.0156 - 30 0.969 - - 31 73 3 0 - 31 0.973 - 41 0.0137 - 44 0.0137 - - 32 34 3 0 - 0 0.0294 - 32 0.941 - 41 0.0294 - - 33 37 1 0 - 33 1 - - 45 1 1 0 - 46 1 - - 47 1 1 0 - 15 1 - - 69 13 6 0 - 7 0.0769 - 12 0.231 - 13 0.154 - 14 0.385 - 15 0.0769 - 34 0.0769 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 13 0.111 - 19 0.111 - 26 0.222 - 41 0.333 - - 7 23 6 0 - 0 0.522 - 8 0.0435 - 13 0.087 - 14 0.0435 - 21 0.261 - 41 0.0435 - - 8 152 22 1 - 0 0.283 - 1 0.0132 - 2 0.0329 - 4 0.0197 - 7 0.0658 - 8 0.00658 - 13 0.0329 - 14 0.0724 - 15 0.0132 - 16 0.00658 - 19 0.00658 - 21 0.25 - 22 0.0197 - 23 0.00658 - 26 0.0526 - 28 0.0132 - 29 0.0132 - 32 0.00658 - 41 0.0395 - 45 0.0263 - 46 0.00658 - 47 0.0132 - - 2 3 2 0 - 4 0.667 - 22 0.333 - - 12 9669 37 0 - 0 0.000207 - 2 0.0233 - 3 0.00776 - 4 0.0185 - 5 0.00755 - 6 0.000207 - 7 0.00114 - 8 0.00259 - 9 0.00031 - 10 0.000207 - 12 0.000103 - 13 0.242 - 14 0.173 - 15 0.106 - 16 0.00641 - 18 0.00103 - 19 0.222 - 21 0.0332 - 22 0.00031 - 23 0.000103 - 24 0.000103 - 28 0.00124 - 29 0.00124 - 30 0.000931 - 31 0.00238 - 32 0.00207 - 33 0.00176 - 34 0.0602 - 35 0.0146 - 40 0.000103 - 41 0.0506 - 42 0.00434 - 43 0.00321 - 44 0.000103 - 45 0.00858 - 46 0.0031 - 47 0.000103 - - 13 318 31 3 - 0 0.0252 - 1 0.00943 - 2 0.0629 - 3 0.066 - 4 0.0377 - 7 0.145 - 8 0.0252 - 10 0.0126 - 12 0.00314 - 13 0.164 - 14 0.0283 - 15 0.0377 - 16 0.00943 - 18 0.00314 - 19 0.00314 - 21 0.066 - 24 0.00629 - 26 0.151 - 28 0.0252 - 29 0.0189 - 30 0.00943 - 31 0.0157 - 32 0.00629 - 34 0.00314 - 37 0.00314 - 41 0.0346 - 42 0.00314 - 43 0.00314 - 45 0.00943 - 46 0.00314 - 47 0.00943 - - 2 2 2 0 - 7 0.5 - 31 0.5 - - 28 3 3 0 - 7 0.333 - 12 0.333 - 45 0.333 - - 69 12 6 0 - 2 0.0833 - 3 0.0833 - 13 0.583 - 15 0.0833 - 18 0.0833 - 41 0.0833 - - 14 122 21 0 - 0 0.0656 - 2 0.123 - 3 0.0328 - 4 0.0082 - 7 0.041 - 8 0.0246 - 13 0.262 - 14 0.0164 - 15 0.254 - 18 0.0082 - 19 0.0164 - 21 0.0082 - 30 0.0082 - 34 0.0082 - 35 0.0164 - 41 0.0574 - 42 0.0082 - 43 0.0082 - 45 0.0164 - 46 0.0082 - 47 0.0082 - - 15 37 10 0 - 0 0.108 - 2 0.027 - 7 0.0541 - 15 0.297 - 18 0.027 - 26 0.0541 - 33 0.027 - 42 0.027 - 45 0.162 - 47 0.216 - - 18 30 6 0 - 4 0.1 - 5 0.367 - 7 0.0667 - 13 0.0667 - 19 0.367 - 34 0.0333 - - 21 80 22 8 - 0 0.1 - 1 0.0125 - 2 0.0875 - 7 0.112 - 8 0.025 - 10 0.0125 - 12 0.112 - 13 0.15 - 14 0.0625 - 16 0.0125 - 19 0.0875 - 21 0.0375 - 26 0.0375 - 28 0.0125 - 29 0.0125 - 31 0.0125 - 32 0.0125 - 35 0.0125 - 41 0.05 - 42 0.0125 - 45 0.0125 - 47 0.0125 - - 0 4 2 0 - 12 0.25 - 19 0.75 - - 26 4 3 0 - 2 0.25 - 13 0.5 - 31 0.25 - - 28 9 6 0 - 2 0.444 - 7 0.111 - 12 0.111 - 13 0.111 - 16 0.111 - 42 0.111 - - 30 12 7 0 - 0 0.0833 - 7 0.25 - 13 0.25 - 19 0.0833 - 26 0.0833 - 32 0.0833 - 41 0.167 - - 31 10 5 0 - 0 0.1 - 7 0.1 - 14 0.5 - 41 0.2 - 47 0.1 - - 47 15 10 0 - 0 0.267 - 1 0.0667 - 2 0.0667 - 7 0.0667 - 10 0.0667 - 13 0.0667 - 21 0.133 - 26 0.133 - 28 0.0667 - 29 0.0667 - - 49 7 6 0 - 0 0.143 - 7 0.143 - 8 0.143 - 13 0.286 - 19 0.143 - 45 0.143 - - 69 13 6 0 - 8 0.0769 - 12 0.538 - 13 0.0769 - 19 0.154 - 21 0.0769 - 35 0.0769 - - 22 3 1 0 - 0 1 - - 26 13048 39 0 - 0 0.0513 - 1 0.00107 - 2 0.0104 - 3 0.018 - 4 0.00107 - 5 7.66e-05 - 6 0.000153 - 7 0.00613 - 8 0.084 - 9 0.00429 - 10 0.00046 - 12 0.00245 - 13 0.2 - 14 0.114 - 15 0.0403 - 16 0.00215 - 18 0.000153 - 19 0.0154 - 21 0.0327 - 22 0.000996 - 23 0.000153 - 24 0.00452 - 26 7.66e-05 - 28 0.0401 - 29 0.073 - 30 0.0567 - 31 0.105 - 32 0.0336 - 33 0.0583 - 34 0.000307 - 35 0.00115 - 37 0.00452 - 41 0.0174 - 42 0.00268 - 43 0.00115 - 44 0.000383 - 45 0.00261 - 46 0.0049 - 47 0.00897 - - 28 21028 36 3 - 0 0.00471 - 1 4.76e-05 - 2 0.0342 - 3 4.76e-05 - 4 0.000856 - 7 0.00185 - 8 0.00019 - 10 0.00019 - 12 0.238 - 13 0.00623 - 14 0.00923 - 15 0.00385 - 16 4.76e-05 - 18 0.000143 - 19 0.00956 - 21 0.117 - 22 0.00105 - 23 9.51e-05 - 26 0.538 - 27 9.51e-05 - 28 0.00518 - 29 0.00271 - 30 0.000476 - 31 0.000618 - 32 0.000666 - 33 0.000808 - 34 0.00019 - 35 0.000428 - 40 0.000333 - 41 0.00704 - 42 0.00195 - 43 0.000333 - 44 0.000666 - 45 0.00818 - 46 0.000238 - 47 0.0049 - - 2 139 9 0 - 2 0.0144 - 12 0.137 - 13 0.00719 - 14 0.0144 - 15 0.00719 - 21 0.0719 - 26 0.669 - 41 0.0647 - 45 0.0144 - - 41 17 6 0 - 0 0.0588 - 12 0.294 - 21 0.0588 - 26 0.353 - 33 0.0588 - 41 0.176 - - 46 2 1 0 - 45 1 - - 29 21706 36 1 - 0 0.00438 - 1 0.00101 - 2 0.0333 - 3 0.00604 - 4 0.00392 - 7 0.00143 - 8 0.00207 - 9 0.000184 - 10 9.21e-05 - 12 0.000276 - 13 0.196 - 14 0.136 - 15 0.23 - 16 0.00792 - 18 0.0018 - 19 0.133 - 21 0.0658 - 22 0.000322 - 23 4.61e-05 - 26 0.000138 - 28 9.21e-05 - 29 0.000322 - 30 0.000461 - 31 0.000921 - 32 4.61e-05 - 33 0.000138 - 34 0.0313 - 35 0.0208 - 37 9.21e-05 - 41 0.0885 - 42 0.0024 - 43 0.00147 - 44 9.21e-05 - 45 0.00235 - 46 0.0266 - 47 0.000645 - - 2 32 10 0 - 2 0.0312 - 13 0.156 - 14 0.0625 - 15 0.156 - 19 0.188 - 21 0.188 - 22 0.0312 - 35 0.125 - 41 0.0312 - 45 0.0312 - - 30 11273 33 1 - 0 0.265 - 2 0.0353 - 3 0.00284 - 4 0.00213 - 7 0.227 - 8 0.00319 - 9 8.87e-05 - 10 0.000355 - 13 0.0685 - 14 0.0679 - 15 0.0108 - 16 0.000621 - 18 0.00115 - 19 0.00337 - 20 0.00071 - 21 0.0726 - 22 0.000355 - 24 0.00364 - 26 0.0114 - 28 0.0184 - 29 0.0169 - 30 0.00337 - 31 0.00523 - 32 0.00417 - 33 0.0047 - 37 0.0016 - 41 0.126 - 42 0.00523 - 43 0.000266 - 44 0.000532 - 45 0.00772 - 46 0.00408 - 47 0.0245 - - 2 62 14 0 - 0 0.0968 - 2 0.0161 - 3 0.0161 - 7 0.355 - 13 0.0323 - 14 0.0968 - 15 0.0161 - 19 0.0323 - 21 0.0806 - 22 0.0161 - 26 0.113 - 28 0.0323 - 33 0.0161 - 41 0.0806 - - 31 15631 38 1 - 0 0.586 - 1 0.0204 - 2 0.0168 - 3 0.00448 - 4 0.00435 - 6 6.4e-05 - 7 0.0117 - 8 0.00032 - 9 0.000128 - 10 0.000256 - 12 0.00032 - 13 0.0843 - 14 0.0769 - 15 0.00409 - 16 0.000384 - 18 0.000256 - 19 0.00186 - 21 0.11 - 22 0.000768 - 23 0.00109 - 26 0.000128 - 28 0.00211 - 29 0.00211 - 30 0.000768 - 31 0.00102 - 32 0.000768 - 33 0.00122 - 34 0.000256 - 35 0.000128 - 37 0.00109 - 40 6.4e-05 - 41 0.047 - 42 0.00237 - 43 0.000448 - 44 0.00147 - 45 0.00333 - 46 0.00224 - 47 0.0094 - - 2 71 8 0 - 0 0.69 - 1 0.0563 - 13 0.0141 - 14 0.0423 - 19 0.0141 - 21 0.0986 - 41 0.0704 - 45 0.0141 - - 32 5414 31 1 - 2 0.0296 - 3 0.00166 - 4 0.0133 - 7 0.00129 - 8 0.00332 - 9 0.000369 - 10 0.00222 - 12 0.000185 - 13 0.0334 - 14 0.401 - 15 0.0253 - 16 0.0105 - 18 0.000739 - 19 0.248 - 21 0.0876 - 22 0.000185 - 23 0.000185 - 29 0.000185 - 30 0.000369 - 31 0.00185 - 32 0.000369 - 33 0.000369 - 34 0.0567 - 35 0.0412 - 37 0.000185 - 41 0.0292 - 42 0.00332 - 43 0.00259 - 45 0.00314 - 46 0.00148 - 47 0.000185 - - 2 32 7 0 - 2 0.0312 - 14 0.406 - 19 0.219 - 21 0.0312 - 34 0.156 - 35 0.0625 - 41 0.0938 - - 33 9604 31 2 - 2 0.0311 - 3 0.00281 - 4 0.0167 - 5 0.000625 - 6 0.000416 - 7 0.00198 - 8 0.00167 - 9 0.000104 - 10 0.000104 - 13 0.207 - 14 0.0117 - 15 0.162 - 16 0.0025 - 18 0.000937 - 19 0.192 - 21 0.0798 - 22 0.000312 - 25 0.000312 - 28 0.000104 - 29 0.000625 - 30 0.000416 - 31 0.000521 - 32 0.000312 - 34 0.0715 - 35 0.0271 - 41 0.0868 - 42 0.00344 - 43 0.00281 - 45 0.00573 - 46 0.0842 - 47 0.00375 - - 2 37 10 0 - 8 0.027 - 13 0.189 - 15 0.189 - 16 0.027 - 18 0.027 - 19 0.0811 - 21 0.027 - 34 0.243 - 35 0.0541 - 41 0.135 - - 41 2 2 0 - 2 0.5 - 34 0.5 - - 41 83 16 15 - 0 0.012 - 2 0.0482 - 3 0.012 - 8 0.0241 - 12 0.012 - 13 0.205 - 14 0.012 - 15 0.0482 - 19 0.0361 - 21 0.145 - 28 0.205 - 29 0.0241 - 30 0.0361 - 31 0.0843 - 32 0.0723 - 33 0.0241 - - 0 5 3 0 - 13 0.6 - 14 0.2 - 21 0.2 - - 2 6 4 0 - 28 0.333 - 29 0.167 - 31 0.333 - 32 0.167 - - 12 4 2 0 - 13 0.5 - 19 0.5 - - 26 5 2 0 - 13 0.6 - 21 0.4 - - 28 14 2 0 - 21 0.0714 - 28 0.929 - - 29 7 4 0 - 13 0.286 - 15 0.429 - 21 0.143 - 29 0.143 - - 30 2 1 0 - 30 1 - - 31 6 2 0 - 21 0.167 - 31 0.833 - - 32 4 1 0 - 32 1 - - 33 2 1 0 - 33 1 - - 49 6 5 0 - 2 0.167 - 12 0.167 - 13 0.333 - 21 0.167 - 28 0.167 - - 55 5 3 0 - 3 0.2 - 13 0.6 - 19 0.2 - - 57 5 3 0 - 2 0.6 - 8 0.2 - 21 0.2 - - 64 3 2 0 - 8 0.333 - 21 0.667 - - 69 6 4 0 - 13 0.333 - 15 0.167 - 21 0.333 - 30 0.167 - - 42 7 3 0 - 25 0.143 - 28 0.143 - 47 0.714 - - 44 5 4 0 - 13 0.4 - 19 0.2 - 26 0.2 - 31 0.2 - - 45 119 15 9 - 0 0.193 - 2 0.0336 - 4 0.0168 - 6 0.0084 - 7 0.0336 - 12 0.0924 - 13 0.134 - 14 0.0588 - 15 0.0252 - 19 0.0672 - 21 0.0672 - 26 0.193 - 28 0.0168 - 35 0.0084 - 41 0.0504 - - 0 6 5 0 - 13 0.167 - 14 0.167 - 15 0.167 - 35 0.167 - 41 0.333 - - 28 35 5 0 - 0 0.0286 - 2 0.0286 - 12 0.2 - 21 0.114 - 26 0.629 - - 29 14 5 0 - 13 0.357 - 14 0.143 - 15 0.143 - 19 0.286 - 41 0.0714 - - 30 15 6 0 - 0 0.267 - 7 0.2 - 14 0.0667 - 21 0.2 - 28 0.133 - 41 0.133 - - 31 14 5 0 - 0 0.714 - 2 0.0714 - 13 0.0714 - 14 0.0714 - 21 0.0714 - - 32 4 3 0 - 2 0.25 - 14 0.25 - 19 0.5 - - 33 8 3 0 - 2 0.125 - 13 0.75 - 19 0.125 - - 49 10 7 0 - 0 0.3 - 4 0.1 - 12 0.2 - 13 0.1 - 14 0.1 - 26 0.1 - 41 0.1 - - 69 9 6 0 - 0 0.333 - 4 0.111 - 6 0.111 - 12 0.111 - 13 0.222 - 19 0.111 - - 46 4 3 0 - 0 0.25 - 21 0.25 - 28 0.5 - - 47 145999 43 35 - 0 0.106 - 1 0.00268 - 2 0.0245 - 3 0.00554 - 4 0.00909 - 5 0.00573 - 6 9.59e-05 - 7 0.023 - 8 0.00966 - 9 0.000527 - 10 0.000404 - 12 0.0564 - 13 0.141 - 14 0.109 - 15 0.0841 - 16 0.00392 - 18 0.000918 - 19 0.0986 - 20 9.59e-05 - 21 0.0628 - 22 0.000363 - 23 6.16e-05 - 24 0.000788 - 25 2.05e-05 - 26 0.0921 - 27 1.37e-05 - 28 0.00658 - 29 0.00915 - 30 0.00608 - 31 0.011 - 32 0.00403 - 33 0.00624 - 34 0.0245 - 35 0.0122 - 37 0.000699 - 40 6.85e-05 - 41 0.0551 - 42 0.00323 - 43 0.00149 - 44 0.000349 - 45 0.00476 - 46 0.0117 - 47 0.00533 - - 0 33747 40 0 - 0 0.046 - 1 0.000444 - 2 0.0164 - 3 0.00572 - 4 0.0196 - 5 0.022 - 6 0.000119 - 7 0.00199 - 8 0.004 - 9 0.000237 - 10 0.000711 - 12 0.0836 - 13 0.183 - 14 0.139 - 15 0.0945 - 16 0.00563 - 18 0.0013 - 19 0.155 - 20 8.89e-05 - 21 0.0558 - 22 0.000119 - 23 2.96e-05 - 24 0.000178 - 26 0.0435 - 28 0.00121 - 29 0.00127 - 30 0.00139 - 31 0.00181 - 32 0.00107 - 33 0.000711 - 34 0.0346 - 35 0.0179 - 37 5.93e-05 - 40 2.96e-05 - 41 0.0477 - 42 0.00329 - 43 0.00207 - 45 0.00516 - 46 0.00317 - 47 0.000207 - - 1 547 24 0 - 0 0.347 - 2 0.0183 - 4 0.00366 - 7 0.249 - 8 0.00183 - 13 0.0622 - 14 0.0731 - 15 0.00548 - 19 0.00548 - 20 0.00366 - 21 0.0878 - 24 0.00548 - 26 0.0201 - 28 0.0128 - 29 0.00366 - 31 0.00366 - 32 0.00183 - 33 0.00366 - 41 0.0384 - 42 0.00366 - 43 0.00366 - 45 0.0146 - 46 0.00366 - 47 0.0274 - - 2 16 6 0 - 7 0.125 - 12 0.25 - 13 0.125 - 14 0.312 - 15 0.125 - 34 0.0625 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 13 0.111 - 19 0.111 - 26 0.222 - 41 0.333 - - 7 23 6 0 - 0 0.522 - 8 0.0435 - 13 0.087 - 14 0.0435 - 21 0.261 - 41 0.0435 - - 8 124 20 0 - 0 0.347 - 1 0.0161 - 2 0.0242 - 4 0.0161 - 7 0.0645 - 8 0.00806 - 13 0.0403 - 14 0.0887 - 15 0.0161 - 16 0.00806 - 19 0.00806 - 21 0.169 - 26 0.0645 - 28 0.0161 - 29 0.0161 - 32 0.00806 - 41 0.0484 - 45 0.0161 - 46 0.00806 - 47 0.0161 - - 12 9643 36 0 - 0 0.000207 - 2 0.023 - 3 0.00778 - 4 0.0186 - 5 0.00757 - 6 0.000207 - 7 0.00114 - 8 0.00259 - 9 0.000311 - 10 0.000207 - 12 0.000104 - 13 0.243 - 14 0.174 - 15 0.106 - 16 0.00643 - 18 0.00104 - 19 0.222 - 21 0.0317 - 22 0.000311 - 23 0.000104 - 24 0.000104 - 28 0.00124 - 29 0.00124 - 30 0.000933 - 31 0.00239 - 32 0.00207 - 33 0.00176 - 34 0.0604 - 35 0.0146 - 40 0.000104 - 41 0.0502 - 42 0.00436 - 43 0.00321 - 45 0.00861 - 46 0.00301 - 47 0.000104 - - 13 311 31 0 - 0 0.0257 - 1 0.00965 - 2 0.0579 - 3 0.0675 - 4 0.0386 - 7 0.148 - 8 0.0257 - 10 0.00643 - 12 0.00322 - 13 0.164 - 14 0.0289 - 15 0.0386 - 16 0.00965 - 18 0.00322 - 19 0.00322 - 21 0.0675 - 24 0.00643 - 26 0.154 - 28 0.0257 - 29 0.0193 - 30 0.00965 - 31 0.0161 - 32 0.00643 - 34 0.00322 - 37 0.00322 - 41 0.0354 - 42 0.00322 - 43 0.00322 - 45 0.00322 - 46 0.00322 - 47 0.00965 - - 14 121 21 0 - 0 0.0661 - 2 0.116 - 3 0.0331 - 4 0.00826 - 7 0.0413 - 8 0.0248 - 13 0.264 - 14 0.0165 - 15 0.256 - 18 0.00826 - 19 0.0165 - 21 0.00826 - 30 0.00826 - 34 0.00826 - 35 0.0165 - 41 0.0579 - 42 0.00826 - 43 0.00826 - 45 0.0165 - 46 0.00826 - 47 0.00826 - - 15 37 10 0 - 0 0.108 - 2 0.027 - 7 0.0541 - 15 0.297 - 18 0.027 - 26 0.0541 - 33 0.027 - 42 0.027 - 45 0.162 - 47 0.216 - - 18 30 6 0 - 4 0.1 - 5 0.367 - 7 0.0667 - 13 0.0667 - 19 0.367 - 34 0.0333 - - 21 72 21 0 - 0 0.0972 - 1 0.0139 - 2 0.0694 - 7 0.111 - 8 0.0278 - 12 0.125 - 13 0.153 - 14 0.0694 - 16 0.0139 - 19 0.0972 - 21 0.0139 - 26 0.0417 - 28 0.0139 - 29 0.0139 - 31 0.0139 - 32 0.0139 - 35 0.0139 - 41 0.0556 - 42 0.0139 - 45 0.0139 - 47 0.0139 - - 22 3 1 0 - 0 1 - - 26 13034 39 0 - 0 0.0514 - 1 0.00107 - 2 0.0104 - 3 0.018 - 4 0.000997 - 5 7.67e-05 - 6 0.000153 - 7 0.00606 - 8 0.0841 - 9 0.0043 - 10 0.00046 - 12 0.00246 - 13 0.2 - 14 0.114 - 15 0.0404 - 16 0.00215 - 18 0.000153 - 19 0.0154 - 21 0.0322 - 22 0.000997 - 23 0.000153 - 24 0.00453 - 26 7.67e-05 - 28 0.0401 - 29 0.0731 - 30 0.0568 - 31 0.105 - 32 0.0337 - 33 0.0584 - 34 0.000307 - 35 0.00115 - 37 0.00453 - 41 0.017 - 42 0.00269 - 43 0.00115 - 44 0.000384 - 45 0.00261 - 46 0.00491 - 47 0.00898 - - 28 20589 35 0 - 0 0.00481 - 1 4.86e-05 - 2 0.028 - 3 4.86e-05 - 4 0.000777 - 7 0.0016 - 8 0.000194 - 10 9.71e-05 - 12 0.243 - 13 0.00612 - 14 0.00937 - 15 0.00393 - 16 4.86e-05 - 18 0.000146 - 19 0.00976 - 21 0.109 - 22 0.000486 - 26 0.55 - 27 9.71e-05 - 28 0.00525 - 29 0.00277 - 30 0.000486 - 31 0.000631 - 32 0.00068 - 33 0.000826 - 34 0.000194 - 35 0.000437 - 40 0.000291 - 41 0.00641 - 42 0.00175 - 43 0.000291 - 44 0.000631 - 45 0.00665 - 46 0.000243 - 47 0.005 - - 29 21355 36 0 - 0 0.00445 - 1 0.00103 - 2 0.0322 - 3 0.00609 - 4 0.00393 - 7 0.00103 - 8 0.00206 - 9 0.000187 - 10 4.68e-05 - 12 0.000281 - 13 0.199 - 14 0.138 - 15 0.234 - 16 0.00805 - 18 0.00183 - 19 0.135 - 21 0.0543 - 22 0.000328 - 23 4.68e-05 - 26 0.00014 - 28 9.37e-05 - 29 0.000328 - 30 0.000468 - 31 0.000937 - 32 4.68e-05 - 33 0.00014 - 34 0.0318 - 35 0.0212 - 37 9.37e-05 - 41 0.0896 - 42 0.00244 - 43 0.0015 - 44 4.68e-05 - 45 0.00173 - 46 0.0271 - 47 0.000656 - - 30 10957 33 0 - 0 0.273 - 2 0.0305 - 3 0.00292 - 4 0.0021 - 7 0.234 - 8 0.00301 - 9 9.13e-05 - 10 0.000365 - 13 0.0703 - 14 0.0698 - 15 0.0111 - 16 0.000639 - 18 0.00119 - 19 0.00347 - 20 0.00073 - 21 0.0539 - 22 0.000365 - 24 0.00374 - 26 0.0118 - 28 0.0189 - 29 0.0174 - 30 0.00347 - 31 0.00538 - 32 0.00429 - 33 0.00484 - 37 0.00164 - 41 0.129 - 42 0.00538 - 43 0.000274 - 44 0.000548 - 45 0.00657 - 46 0.0042 - 47 0.0252 - - 31 14933 38 0 - 0 0.613 - 1 0.0214 - 2 0.0127 - 3 0.00469 - 4 0.00449 - 6 6.7e-05 - 7 0.0115 - 8 0.000335 - 9 0.000134 - 10 0.000134 - 12 0.000335 - 13 0.088 - 14 0.0805 - 15 0.00429 - 16 0.000402 - 18 0.000268 - 19 0.00194 - 21 0.0765 - 22 0.000603 - 23 0.000268 - 26 0.000134 - 28 0.00221 - 29 0.00221 - 30 0.000804 - 31 0.00107 - 32 0.000804 - 33 0.00127 - 34 0.000268 - 35 0.000134 - 37 0.00114 - 40 6.7e-05 - 41 0.0488 - 42 0.00248 - 43 0.000469 - 44 0.00154 - 45 0.00254 - 46 0.00234 - 47 0.00984 - - 32 5292 30 0 - 2 0.0238 - 3 0.0017 - 4 0.0136 - 7 0.000945 - 8 0.0034 - 9 0.000378 - 10 0.00227 - 12 0.000189 - 13 0.034 - 14 0.41 - 15 0.0259 - 16 0.0108 - 18 0.000756 - 19 0.254 - 21 0.0752 - 22 0.000189 - 29 0.000189 - 30 0.000378 - 31 0.00189 - 32 0.000378 - 33 0.000378 - 34 0.058 - 35 0.0421 - 37 0.000189 - 41 0.0291 - 42 0.0034 - 43 0.00265 - 45 0.00246 - 46 0.00151 - 47 0.000189 - - 33 9413 30 0 - 2 0.0278 - 3 0.00287 - 4 0.017 - 5 0.000637 - 6 0.000425 - 7 0.00181 - 8 0.0017 - 9 0.000106 - 13 0.212 - 14 0.0119 - 15 0.166 - 16 0.00255 - 18 0.000956 - 19 0.196 - 21 0.0667 - 22 0.000212 - 25 0.000319 - 28 0.000106 - 29 0.000637 - 30 0.000425 - 31 0.000531 - 32 0.000319 - 34 0.073 - 35 0.0276 - 41 0.0882 - 42 0.00351 - 43 0.00287 - 45 0.00499 - 46 0.0859 - 47 0.00382 - - 41 7 4 0 - 0 0.143 - 2 0.571 - 12 0.143 - 21 0.143 - - 42 5 1 0 - 47 1 - - 45 114 15 0 - 0 0.202 - 2 0.0263 - 4 0.00877 - 6 0.00877 - 7 0.0351 - 12 0.0965 - 13 0.14 - 14 0.0614 - 15 0.0263 - 19 0.0702 - 21 0.0439 - 26 0.202 - 28 0.0175 - 35 0.00877 - 41 0.0526 - - 48 40 3 0 - 2 0.925 - 21 0.025 - 41 0.05 - - 49 1672 33 0 - 0 0.197 - 1 0.00538 - 2 0.145 - 3 0.00359 - 4 0.00718 - 7 0.0317 - 8 0.0012 - 10 0.0012 - 12 0.0514 - 13 0.106 - 14 0.103 - 15 0.0532 - 16 0.00239 - 18 0.000598 - 19 0.0371 - 21 0.0568 - 26 0.0359 - 28 0.0012 - 29 0.00239 - 30 0.0012 - 31 0.0012 - 32 0.000598 - 33 0.000598 - 34 0.0179 - 35 0.0102 - 37 0.0012 - 41 0.101 - 42 0.00538 - 43 0.000598 - 44 0.00179 - 45 0.00478 - 46 0.00299 - 47 0.00897 - - 50 8 7 0 - 0 0.125 - 13 0.125 - 14 0.125 - 15 0.25 - 30 0.125 - 33 0.125 - 41 0.125 - - 53 1 1 0 - 42 1 - - 55 113 11 0 - 0 0.0619 - 2 0.708 - 7 0.0177 - 14 0.0177 - 15 0.00885 - 19 0.0177 - 21 0.00885 - 26 0.0177 - 40 0.00885 - 41 0.106 - 42 0.0265 - - 57 77 6 0 - 0 0.234 - 2 0.558 - 12 0.039 - 15 0.013 - 21 0.039 - 41 0.117 - - 58 8 4 0 - 2 0.625 - 12 0.125 - 41 0.125 - 42 0.125 - - 60 2 2 0 - 0 0.5 - 2 0.5 - - 62 5 2 0 - 2 0.8 - 15 0.2 - - 64 7 4 0 - 0 0.286 - 2 0.429 - 7 0.143 - 41 0.143 - - 69 3673 34 0 - 0 0.0792 - 1 0.00136 - 2 0.00327 - 3 0.00163 - 4 0.00517 - 5 0.000817 - 7 0.0343 - 8 0.00463 - 10 0.000545 - 12 0.0686 - 13 0.141 - 14 0.107 - 15 0.116 - 16 0.00436 - 18 0.000545 - 19 0.106 - 20 0.000272 - 21 0.0482 - 24 0.000817 - 26 0.1 - 28 0.00327 - 29 0.0049 - 30 0.00218 - 31 0.0049 - 32 0.00218 - 33 0.00272 - 34 0.0302 - 35 0.0166 - 41 0.0803 - 42 0.00762 - 43 0.00191 - 45 0.00871 - 46 0.00299 - 47 0.00681 - - 74 1 1 0 - 47 1 - - 48 42 4 0 - 2 0.881 - 9 0.0238 - 21 0.0476 - 41 0.0476 - - 49 1717 34 19 - 0 0.192 - 1 0.00524 - 2 0.142 - 3 0.00466 - 4 0.00699 - 7 0.0309 - 8 0.00116 - 10 0.00116 - 12 0.0501 - 13 0.104 - 14 0.102 - 15 0.0524 - 16 0.00233 - 18 0.000582 - 19 0.0361 - 21 0.0658 - 22 0.000582 - 26 0.0349 - 28 0.00116 - 29 0.00233 - 30 0.00116 - 31 0.00116 - 32 0.000582 - 33 0.000582 - 34 0.0175 - 35 0.0099 - 37 0.00116 - 41 0.103 - 42 0.00524 - 43 0.000582 - 44 0.00175 - 45 0.0105 - 46 0.00291 - 47 0.00874 - - 0 55 10 0 - 0 0.0364 - 2 0.491 - 7 0.0182 - 12 0.0545 - 13 0.0909 - 15 0.0909 - 19 0.0727 - 21 0.0727 - 35 0.0182 - 41 0.0545 - - 1 6 4 0 - 2 0.333 - 7 0.167 - 13 0.333 - 14 0.167 - - 8 23 9 0 - 0 0.478 - 2 0.0435 - 12 0.0435 - 13 0.0435 - 14 0.13 - 21 0.13 - 29 0.0435 - 41 0.0435 - 47 0.0435 - - 12 15 4 0 - 2 0.733 - 13 0.133 - 14 0.0667 - 21 0.0667 - - 21 3 3 0 - 13 0.333 - 26 0.333 - 41 0.333 - - 26 4 4 0 - 0 0.25 - 2 0.25 - 8 0.25 - 29 0.25 - - 28 218 14 0 - 2 0.156 - 7 0.00459 - 12 0.362 - 13 0.0183 - 14 0.0229 - 15 0.00917 - 19 0.0183 - 21 0.101 - 26 0.261 - 37 0.00459 - 41 0.0183 - 42 0.00459 - 45 0.0138 - 47 0.00459 - - 29 283 14 0 - 0 0.0247 - 2 0.194 - 13 0.184 - 14 0.0954 - 15 0.205 - 16 0.00707 - 19 0.0777 - 21 0.0565 - 34 0.0283 - 35 0.0212 - 41 0.0883 - 43 0.00353 - 45 0.0106 - 46 0.00353 - - 30 218 18 0 - 0 0.216 - 2 0.078 - 4 0.00459 - 7 0.188 - 13 0.0872 - 14 0.147 - 15 0.0138 - 19 0.0138 - 21 0.0459 - 26 0.00459 - 29 0.00459 - 30 0.00459 - 31 0.00917 - 32 0.00459 - 41 0.128 - 42 0.0183 - 45 0.00917 - 47 0.0229 - - 31 583 24 0 - 0 0.437 - 1 0.0154 - 2 0.048 - 3 0.0103 - 4 0.0103 - 7 0.00858 - 10 0.00343 - 12 0.00172 - 13 0.0978 - 14 0.11 - 15 0.00515 - 18 0.00172 - 19 0.00343 - 21 0.0703 - 28 0.00343 - 29 0.00172 - 34 0.00172 - 37 0.00172 - 41 0.132 - 42 0.00515 - 44 0.00515 - 45 0.0103 - 46 0.00343 - 47 0.012 - - 32 79 12 0 - 2 0.152 - 4 0.0253 - 13 0.0127 - 14 0.392 - 15 0.038 - 16 0.0127 - 19 0.19 - 21 0.0633 - 34 0.0506 - 35 0.038 - 41 0.0127 - 46 0.0127 - - 33 142 15 0 - 2 0.204 - 4 0.0141 - 7 0.0211 - 13 0.232 - 14 0.0141 - 15 0.106 - 16 0.00704 - 19 0.0704 - 21 0.0352 - 30 0.00704 - 34 0.12 - 35 0.0352 - 41 0.106 - 45 0.0211 - 46 0.00704 - - 41 10 2 0 - 2 0.1 - 41 0.9 - - 45 2 2 0 - 7 0.5 - 21 0.5 - - 46 1 1 0 - 4 1 - - 47 29 9 0 - 0 0.172 - 2 0.345 - 3 0.069 - 12 0.0345 - 14 0.103 - 15 0.0345 - 21 0.103 - 22 0.0345 - 41 0.103 - - 49 11 4 0 - 2 0.545 - 14 0.0909 - 35 0.0909 - 41 0.273 - - 55 6 3 0 - 2 0.5 - 41 0.333 - 42 0.167 - - 69 25 13 0 - 0 0.04 - 2 0.12 - 8 0.04 - 13 0.08 - 14 0.2 - 19 0.08 - 21 0.08 - 26 0.04 - 33 0.04 - 35 0.04 - 41 0.16 - 45 0.04 - 47 0.04 - - 50 13 9 0 - 0 0.0769 - 13 0.154 - 14 0.0769 - 15 0.154 - 30 0.0769 - 31 0.0769 - 32 0.0769 - 33 0.0769 - 41 0.231 - - 53 1 1 0 - 42 1 - - 55 130 17 5 - 0 0.0538 - 2 0.615 - 4 0.00769 - 7 0.0154 - 9 0.00769 - 13 0.00769 - 14 0.0231 - 15 0.00769 - 19 0.0154 - 21 0.0462 - 26 0.0154 - 28 0.00769 - 33 0.00769 - 40 0.00769 - 41 0.131 - 42 0.0231 - 46 0.00769 - - 31 6 2 0 - 0 0.833 - 40 0.167 - - 41 3 3 0 - 15 0.333 - 19 0.333 - 41 0.333 - - 47 89 12 0 - 0 0.0225 - 2 0.652 - 4 0.0112 - 9 0.0112 - 13 0.0112 - 21 0.0449 - 26 0.0112 - 28 0.0112 - 33 0.0112 - 41 0.169 - 42 0.0337 - 46 0.0112 - - 55 4 3 0 - 2 0.5 - 19 0.25 - 26 0.25 - - 62 10 4 0 - 2 0.6 - 7 0.2 - 14 0.1 - 41 0.1 - - 57 96 9 6 - 0 0.188 - 2 0.448 - 3 0.0104 - 8 0.0104 - 12 0.0312 - 13 0.115 - 15 0.0208 - 21 0.0312 - 41 0.146 - - 0 7 1 0 - 2 1 - - 29 7 1 0 - 2 1 - - 41 17 2 0 - 2 0.294 - 41 0.706 - - 47 36 8 0 - 0 0.472 - 2 0.167 - 3 0.0278 - 8 0.0278 - 12 0.0833 - 13 0.167 - 15 0.0278 - 21 0.0278 - - 64 3 2 0 - 13 0.667 - 21 0.333 - - 69 2 2 0 - 13 0.5 - 15 0.5 - - 58 10 6 0 - 2 0.5 - 8 0.1 - 12 0.1 - 28 0.1 - 41 0.1 - 42 0.1 - - 62 16 7 0 - 2 0.25 - 3 0.125 - 4 0.0625 - 13 0.25 - 14 0.188 - 15 0.0625 - 41 0.0625 - - 64 18 10 1 - 0 0.111 - 2 0.167 - 3 0.111 - 7 0.0556 - 8 0.0556 - 9 0.0556 - 13 0.111 - 14 0.0556 - 16 0.0556 - 41 0.222 - - 41 4 2 0 - 2 0.75 - 41 0.25 - - 69 3772 35 0 - 0 0.0771 - 1 0.00133 - 2 0.00663 - 3 0.00159 - 4 0.0061 - 5 0.000795 - 7 0.0334 - 8 0.00477 - 10 0.00053 - 12 0.0668 - 13 0.141 - 14 0.104 - 15 0.114 - 16 0.00424 - 18 0.00133 - 19 0.103 - 20 0.000265 - 21 0.0586 - 23 0.000265 - 24 0.000795 - 26 0.0978 - 28 0.00318 - 29 0.00477 - 30 0.00212 - 31 0.00477 - 32 0.00212 - 33 0.00265 - 34 0.0294 - 35 0.0162 - 41 0.0798 - 42 0.00769 - 43 0.00186 - 45 0.0109 - 46 0.00292 - 47 0.00663 - - 74 1 1 0 - 47 1 - -70 128 19 3 - 0 0.0156 - 2 0.0703 - 7 0.156 - 8 0.0234 - 13 0.0312 - 19 0.0156 - 21 0.0547 - 24 0.0312 - 28 0.172 - 29 0.0312 - 30 0.0312 - 31 0.0312 - 32 0.0781 - 33 0.109 - 37 0.00781 - 41 0.0156 - 42 0.0312 - 45 0.0312 - 47 0.0625 - - 8 3 3 0 - 2 0.333 - 21 0.333 - 37 0.333 - - 21 7 6 0 - 2 0.143 - 28 0.286 - 29 0.143 - 33 0.143 - 42 0.143 - 47 0.143 - - 47 59 17 1 - 0 0.0169 - 2 0.0678 - 7 0.169 - 8 0.0169 - 13 0.0339 - 19 0.0169 - 24 0.0339 - 28 0.186 - 29 0.0339 - 30 0.0339 - 31 0.0339 - 32 0.0847 - 33 0.119 - 41 0.0169 - 42 0.0339 - 45 0.0339 - 47 0.0678 - - 21 7 6 0 - 2 0.143 - 28 0.286 - 29 0.143 - 33 0.143 - 42 0.143 - 47 0.143 - -71 4170 32 7 - 0 0.0254 - 2 0.0451 - 3 0.0139 - 4 0.00048 - 7 0.0686 - 8 0.0206 - 9 0.000959 - 10 0.00192 - 13 0.158 - 14 0.0652 - 15 0.0254 - 18 0.00048 - 19 0.00959 - 21 0.0415 - 22 0.00048 - 24 0.00624 - 26 0.00288 - 28 0.058 - 29 0.0177 - 30 0.012 - 31 0.0197 - 32 0.011 - 33 0.0173 - 34 0.00024 - 37 0.00168 - 40 0.000959 - 41 0.194 - 42 0.0149 - 44 0.00192 - 45 0.0367 - 46 0.011 - 47 0.116 - - 2 6 1 0 - 37 1 - - 7 30 8 0 - 0 0.0333 - 3 0.0667 - 13 0.4 - 14 0.2 - 15 0.133 - 21 0.0667 - 41 0.0667 - 46 0.0333 - - 13 1 1 0 - 34 1 - - 21 24 14 0 - 0 0.0417 - 2 0.0833 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0833 - 24 0.0833 - 28 0.125 - 31 0.0833 - 40 0.0417 - 41 0.0417 - 42 0.0833 - 45 0.0417 - 47 0.0833 - - 37 2036 31 1 - 0 0.025 - 2 0.0462 - 3 0.0133 - 4 0.000491 - 7 0.0693 - 8 0.0192 - 9 0.000982 - 10 0.00196 - 13 0.155 - 14 0.0624 - 15 0.0241 - 18 0.000491 - 19 0.00982 - 21 0.0486 - 22 0.000491 - 24 0.0054 - 26 0.00295 - 28 0.057 - 29 0.0182 - 30 0.0123 - 31 0.0192 - 32 0.0113 - 33 0.0172 - 37 0.000491 - 40 0.000491 - 41 0.196 - 42 0.0142 - 44 0.00196 - 45 0.0373 - 46 0.0108 - 47 0.117 - - 2 6 3 0 - 21 0.333 - 28 0.167 - 30 0.5 - - 47 2063 30 3 - 0 0.0257 - 2 0.0441 - 3 0.0141 - 4 0.000485 - 7 0.0693 - 8 0.0208 - 9 0.000969 - 10 0.00194 - 13 0.16 - 14 0.0659 - 15 0.0257 - 18 0.000485 - 19 0.00969 - 21 0.0349 - 22 0.000485 - 24 0.0063 - 26 0.00291 - 28 0.0587 - 29 0.0179 - 30 0.0121 - 31 0.0199 - 32 0.0111 - 33 0.0175 - 40 0.000969 - 41 0.196 - 42 0.015 - 44 0.00194 - 45 0.0368 - 46 0.0111 - 47 0.117 - - 7 30 8 0 - 0 0.0333 - 3 0.0667 - 13 0.4 - 14 0.2 - 15 0.133 - 21 0.0667 - 41 0.0667 - 46 0.0333 - - 21 24 14 0 - 0 0.0417 - 2 0.0833 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0833 - 24 0.0833 - 28 0.125 - 31 0.0833 - 40 0.0417 - 41 0.0417 - 42 0.0833 - 45 0.0417 - 47 0.0833 - - 49 6 5 0 - 2 0.167 - 8 0.333 - 14 0.167 - 28 0.167 - 33 0.167 - - 49 6 5 0 - 2 0.167 - 8 0.333 - 14 0.167 - 28 0.167 - 33 0.167 - -72 14825 39 21 - 0 0.00567 - 1 0.000135 - 2 0.0114 - 3 0.00614 - 4 0.0123 - 5 0.00027 - 6 0.000135 - 7 0.0813 - 8 0.00668 - 9 0.000202 - 10 0.000337 - 13 0.22 - 14 0.173 - 15 0.0205 - 16 0.00378 - 17 0.000135 - 19 0.00256 - 21 0.00621 - 22 0.000135 - 23 0.000135 - 24 0.00243 - 26 0.0058 - 28 0.0188 - 29 0.00351 - 30 0.00513 - 31 0.00351 - 32 0.00445 - 33 0.00391 - 35 6.75e-05 - 36 0.000135 - 37 0.00256 - 40 0.000405 - 41 0.342 - 42 0.0121 - 43 0.00121 - 44 0.00216 - 45 0.0119 - 46 0.0103 - 47 0.0185 - - 3 7 1 0 - 41 1 - - 4 73 16 0 - 2 0.0411 - 3 0.0685 - 7 0.0274 - 13 0.315 - 14 0.0274 - 17 0.0137 - 21 0.0411 - 24 0.0274 - 28 0.0137 - 30 0.0137 - 31 0.0411 - 32 0.0137 - 33 0.0274 - 41 0.274 - 42 0.0274 - 45 0.0274 - - 7 358 17 0 - 2 0.00279 - 3 0.0168 - 4 0.00279 - 6 0.00279 - 8 0.0112 - 9 0.00279 - 10 0.00279 - 13 0.592 - 14 0.291 - 15 0.0223 - 19 0.00559 - 21 0.0112 - 22 0.00279 - 31 0.00279 - 41 0.014 - 42 0.0112 - 46 0.00559 - - 8 33 4 0 - 8 0.0303 - 23 0.0606 - 37 0.848 - 41 0.0606 - - 9 2 1 0 - 8 1 - - 10 5 1 0 - 41 1 - - 13 19 6 0 - 4 0.158 - 8 0.526 - 13 0.105 - 15 0.105 - 35 0.0526 - 41 0.0526 - - 14 19 5 0 - 8 0.789 - 9 0.0526 - 13 0.0526 - 15 0.0526 - 41 0.0526 - - 15 4 3 0 - 2 0.25 - 8 0.5 - 36 0.25 - - 21 17 9 2 - 0 0.0588 - 2 0.0588 - 13 0.0588 - 28 0.0588 - 29 0.0588 - 31 0.0588 - 32 0.118 - 33 0.0588 - 37 0.471 - - 35 5 4 0 - 0 0.2 - 29 0.2 - 32 0.4 - 33 0.2 - - 47 8 1 0 - 37 1 - - 23 2 1 0 - 4 1 - - 34 4214 26 0 - 0 0.00119 - 2 0.00498 - 3 0.00617 - 4 0.0038 - 7 0.0835 - 8 0.00166 - 13 0.245 - 14 0.173 - 15 0.0209 - 16 0.000237 - 19 0.00119 - 21 0.00119 - 26 0.00403 - 28 0.0038 - 29 0.000949 - 30 0.000475 - 31 0.00119 - 32 0.000475 - 33 0.000949 - 41 0.407 - 42 0.0135 - 43 0.00142 - 44 0.00237 - 45 0.00285 - 46 0.014 - 47 0.0038 - - 35 2343 31 0 - 0 0.0149 - 1 0.000427 - 2 0.0201 - 3 0.00299 - 4 0.0282 - 5 0.000854 - 7 0.0973 - 8 0.00683 - 13 0.141 - 14 0.178 - 15 0.023 - 16 0.0111 - 19 0.00469 - 21 0.0145 - 24 0.0064 - 26 0.0107 - 28 0.0405 - 29 0.00683 - 30 0.0141 - 31 0.00512 - 32 0.0102 - 33 0.00598 - 37 0.000427 - 40 0.000854 - 41 0.257 - 42 0.0102 - 43 0.00128 - 44 0.00256 - 45 0.0294 - 46 0.00555 - 47 0.0495 - - 36 159 11 0 - 2 0.0377 - 7 0.0126 - 13 0.145 - 14 0.157 - 16 0.00629 - 28 0.00629 - 32 0.00629 - 41 0.604 - 42 0.00629 - 46 0.0126 - 47 0.00629 - - 37 36 12 1 - 2 0.0556 - 7 0.222 - 8 0.0833 - 13 0.0278 - 19 0.0278 - 21 0.0833 - 28 0.333 - 33 0.0556 - 41 0.0278 - 42 0.0278 - 45 0.0278 - 47 0.0278 - - 21 8 6 0 - 7 0.125 - 8 0.25 - 21 0.125 - 28 0.125 - 33 0.25 - 42 0.125 - - 47 7352 37 14 - 0 0.00571 - 1 0.000136 - 2 0.0114 - 3 0.00598 - 4 0.0112 - 5 0.000272 - 6 0.000136 - 7 0.082 - 8 0.00449 - 9 0.000136 - 10 0.000136 - 13 0.222 - 14 0.174 - 15 0.0204 - 16 0.00381 - 17 0.000136 - 19 0.00258 - 21 0.00558 - 22 0.000136 - 24 0.00245 - 26 0.00585 - 28 0.0189 - 29 0.00354 - 30 0.00517 - 31 0.00354 - 32 0.00449 - 33 0.00394 - 36 0.000136 - 37 0.000136 - 40 0.000408 - 41 0.345 - 42 0.0122 - 43 0.00122 - 44 0.00218 - 45 0.012 - 46 0.0103 - 47 0.0186 - - 3 7 1 0 - 41 1 - - 4 73 16 0 - 2 0.0411 - 3 0.0685 - 7 0.0274 - 13 0.315 - 14 0.0274 - 17 0.0137 - 21 0.0411 - 24 0.0274 - 28 0.0137 - 30 0.0137 - 31 0.0411 - 32 0.0137 - 33 0.0274 - 41 0.274 - 42 0.0274 - 45 0.0274 - - 7 358 17 0 - 2 0.00279 - 3 0.0168 - 4 0.00279 - 6 0.00279 - 8 0.0112 - 9 0.00279 - 10 0.00279 - 13 0.592 - 14 0.291 - 15 0.0223 - 19 0.00559 - 21 0.0112 - 22 0.00279 - 31 0.00279 - 41 0.014 - 42 0.0112 - 46 0.00559 - - 10 5 1 0 - 41 1 - - 15 1 1 0 - 36 1 - - 21 9 8 0 - 0 0.111 - 2 0.111 - 13 0.111 - 28 0.111 - 29 0.111 - 31 0.111 - 32 0.222 - 33 0.111 - - 34 4211 26 0 - 0 0.00119 - 2 0.00499 - 3 0.00617 - 4 0.00356 - 7 0.0836 - 8 0.00166 - 13 0.246 - 14 0.174 - 15 0.0209 - 16 0.000237 - 19 0.00119 - 21 0.000712 - 26 0.00404 - 28 0.0038 - 29 0.00095 - 30 0.000475 - 31 0.00119 - 32 0.000475 - 33 0.00095 - 41 0.407 - 42 0.0135 - 43 0.00142 - 44 0.00237 - 45 0.00285 - 46 0.014 - 47 0.0038 - - 35 2336 31 0 - 0 0.015 - 1 0.000428 - 2 0.0201 - 3 0.003 - 4 0.0283 - 5 0.000856 - 7 0.0976 - 8 0.00642 - 13 0.141 - 14 0.178 - 15 0.0231 - 16 0.0111 - 19 0.00471 - 21 0.012 - 24 0.00642 - 26 0.0107 - 28 0.0407 - 29 0.00685 - 30 0.0141 - 31 0.00514 - 32 0.0103 - 33 0.00599 - 37 0.000428 - 40 0.000856 - 41 0.258 - 42 0.0103 - 43 0.00128 - 44 0.00257 - 45 0.0295 - 46 0.00557 - 47 0.0497 - - 36 159 11 0 - 2 0.0377 - 7 0.0126 - 13 0.145 - 14 0.157 - 16 0.00629 - 28 0.00629 - 32 0.00629 - 41 0.604 - 42 0.00629 - 46 0.0126 - 47 0.00629 - - 37 34 12 0 - 2 0.0588 - 7 0.235 - 8 0.0882 - 13 0.0294 - 19 0.0294 - 21 0.0294 - 28 0.353 - 33 0.0588 - 41 0.0294 - 42 0.0294 - 45 0.0294 - 47 0.0294 - - 55 43 9 0 - 8 0.0233 - 13 0.0233 - 14 0.0233 - 21 0.0233 - 28 0.0233 - 30 0.0233 - 33 0.0465 - 41 0.767 - 47 0.0465 - - 70 20 10 0 - 2 0.05 - 7 0.2 - 8 0.05 - 24 0.05 - 28 0.35 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.05 - 33 0.1 - - 71 7 6 0 - 7 0.143 - 8 0.143 - 14 0.143 - 28 0.286 - 29 0.143 - 31 0.143 - - 72 78 17 0 - 0 0.0128 - 2 0.0128 - 7 0.0769 - 8 0.0128 - 13 0.0513 - 21 0.0128 - 26 0.0128 - 28 0.0385 - 29 0.0385 - 31 0.0256 - 32 0.0256 - 33 0.0256 - 40 0.0128 - 41 0.564 - 42 0.0128 - 45 0.0513 - 47 0.0128 - - 55 44 9 1 - 8 0.0227 - 13 0.0227 - 14 0.0227 - 21 0.0227 - 28 0.0227 - 30 0.0227 - 33 0.0455 - 41 0.773 - 47 0.0455 - - 73 23 2 0 - 21 0.0435 - 41 0.957 - - 70 20 10 0 - 2 0.05 - 7 0.2 - 8 0.05 - 24 0.05 - 28 0.35 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.05 - 33 0.1 - - 71 7 6 0 - 7 0.143 - 8 0.143 - 14 0.143 - 28 0.286 - 29 0.143 - 31 0.143 - - 72 78 17 0 - 0 0.0128 - 2 0.0128 - 7 0.0769 - 8 0.0128 - 13 0.0513 - 21 0.0128 - 26 0.0128 - 28 0.0385 - 29 0.0385 - 31 0.0256 - 32 0.0256 - 33 0.0256 - 40 0.0128 - 41 0.564 - 42 0.0128 - 45 0.0513 - 47 0.0128 - - 73 23 5 0 - 3 0.13 - 4 0.522 - 8 0.087 - 10 0.13 - 13 0.13 - -73 782 20 2 - 0 0.00256 - 2 0.0128 - 3 0.0384 - 4 0.0767 - 8 0.0205 - 10 0.0205 - 13 0.371 - 14 0.115 - 15 0.0281 - 16 0.00256 - 28 0.0153 - 30 0.00512 - 31 0.00256 - 33 0.00512 - 41 0.23 - 42 0.0153 - 44 0.00256 - 45 0.00767 - 46 0.023 - 47 0.00512 - - 26 18 7 0 - 8 0.0556 - 13 0.444 - 14 0.0556 - 28 0.0556 - 31 0.0556 - 41 0.278 - 46 0.0556 - - 47 391 20 1 - 0 0.00256 - 2 0.0128 - 3 0.0384 - 4 0.0767 - 8 0.0205 - 10 0.0205 - 13 0.371 - 14 0.115 - 15 0.0281 - 16 0.00256 - 28 0.0153 - 30 0.00512 - 31 0.00256 - 33 0.00512 - 41 0.23 - 42 0.0153 - 44 0.00256 - 45 0.00767 - 46 0.023 - 47 0.00512 - - 26 18 7 0 - 8 0.0556 - 13 0.444 - 14 0.0556 - 28 0.0556 - 31 0.0556 - 41 0.278 - 46 0.0556 - -74 443 33 26 - 0 0.0113 - 2 0.0113 - 3 0.0361 - 4 0.0971 - 5 0.00451 - 6 0.00677 - 7 0.0474 - 8 0.00677 - 9 0.00677 - 12 0.00451 - 13 0.0564 - 14 0.0271 - 15 0.0113 - 16 0.00226 - 18 0.00451 - 19 0.00903 - 21 0.0113 - 22 0.00226 - 24 0.00451 - 25 0.00677 - 26 0.00226 - 28 0.00903 - 29 0.0226 - 30 0.00451 - 31 0.00903 - 32 0.00451 - 33 0.00226 - 40 0.00226 - 41 0.147 - 42 0.0271 - 44 0.00451 - 45 0.0406 - 47 0.357 - - 0 2 2 0 - 18 0.5 - 28 0.5 - - 2 5 3 0 - 13 0.2 - 14 0.4 - 47 0.4 - - 4 47 10 0 - 0 0.0426 - 2 0.0213 - 4 0.0213 - 7 0.149 - 13 0.0213 - 32 0.0213 - 41 0.447 - 42 0.0638 - 45 0.0851 - 47 0.128 - - 6 5 4 0 - 6 0.4 - 13 0.2 - 41 0.2 - 45 0.2 - - 7 11 9 0 - 2 0.0909 - 3 0.182 - 4 0.0909 - 13 0.0909 - 14 0.182 - 19 0.0909 - 28 0.0909 - 29 0.0909 - 41 0.0909 - - 8 4 4 0 - 14 0.25 - 22 0.25 - 26 0.25 - 44 0.25 - - 9 26 1 0 - 4 1 - - 12 1 1 0 - 12 1 - - 13 5 4 0 - 6 0.2 - 9 0.4 - 41 0.2 - 47 0.2 - - 14 4 3 0 - 2 0.25 - 8 0.5 - 9 0.25 - - 15 7 6 0 - 7 0.143 - 15 0.286 - 16 0.143 - 40 0.143 - 41 0.143 - 47 0.143 - - 21 3 3 0 - 4 0.333 - 7 0.333 - 13 0.333 - - 22 11 1 0 - 4 1 - - 25 39 4 0 - 3 0.0513 - 13 0.0513 - 14 0.0256 - 47 0.872 - - 26 6 5 0 - 3 0.333 - 7 0.167 - 13 0.167 - 14 0.167 - 29 0.167 - - 40 1 1 0 - 8 1 - - 41 9 4 0 - 0 0.111 - 13 0.333 - 21 0.444 - 33 0.111 - - 42 4 2 0 - 13 0.25 - 25 0.75 - - 47 174 22 15 - 0 0.0115 - 2 0.0115 - 3 0.046 - 4 0.0115 - 5 0.00575 - 7 0.0517 - 12 0.00575 - 13 0.0517 - 14 0.0287 - 18 0.00575 - 19 0.0115 - 24 0.00575 - 28 0.0115 - 29 0.0287 - 30 0.00575 - 31 0.0115 - 32 0.00575 - 41 0.161 - 42 0.023 - 44 0.00575 - 45 0.046 - 47 0.454 - - 0 2 2 0 - 18 0.5 - 28 0.5 - - 4 47 10 0 - 0 0.0426 - 2 0.0213 - 4 0.0213 - 7 0.149 - 13 0.0213 - 32 0.0213 - 41 0.447 - 42 0.0638 - 45 0.0851 - 47 0.128 - - 6 2 2 0 - 13 0.5 - 45 0.5 - - 7 10 9 0 - 2 0.1 - 3 0.2 - 4 0.1 - 13 0.1 - 14 0.1 - 19 0.1 - 28 0.1 - 29 0.1 - 41 0.1 - - 8 2 2 0 - 14 0.5 - 44 0.5 - - 12 1 1 0 - 12 1 - - 21 2 2 0 - 7 0.5 - 13 0.5 - - 25 39 4 0 - 3 0.0513 - 13 0.0513 - 14 0.0256 - 47 0.872 - - 26 5 4 0 - 3 0.4 - 13 0.2 - 14 0.2 - 29 0.2 - - 49 7 3 0 - 31 0.143 - 45 0.143 - 47 0.714 - - 55 15 7 0 - 3 0.0667 - 19 0.0667 - 29 0.133 - 31 0.0667 - 41 0.133 - 45 0.0667 - 47 0.467 - - 57 5 4 0 - 3 0.2 - 13 0.4 - 24 0.2 - 30 0.2 - - 64 2 2 0 - 7 0.5 - 42 0.5 - - 69 1 1 0 - 5 1 - - 74 19 3 0 - 41 0.0526 - 45 0.0526 - 47 0.895 - - 49 7 3 0 - 31 0.143 - 45 0.143 - 47 0.714 - - 55 25 12 0 - 3 0.04 - 7 0.04 - 13 0.04 - 15 0.08 - 19 0.04 - 21 0.04 - 29 0.08 - 31 0.04 - 41 0.2 - 42 0.04 - 45 0.08 - 47 0.28 - - 57 5 4 0 - 3 0.2 - 13 0.4 - 24 0.2 - 30 0.2 - - 62 3 3 0 - 29 0.333 - 42 0.333 - 47 0.333 - - 64 5 4 0 - 7 0.2 - 13 0.2 - 41 0.4 - 42 0.2 - - 69 2 2 0 - 5 0.5 - 42 0.5 - - 74 23 3 0 - 41 0.174 - 45 0.087 - 47 0.739 - diff --git a/samples/G-code/rm.g b/samples/G-code/rm.g deleted file mode 100644 index 89c5aa24..00000000 --- a/samples/G-code/rm.g +++ /dev/null @@ -1,29735 +0,0 @@ -48 34015 42 38 - 0 0.0085 - 2 0.0361 - 3 0.0052 - 4 0.00714 - 5 0.000206 - 6 0.000147 - 7 0.166 - 8 0.0349 - 9 0.00138 - 10 5.88e-05 - 12 0.00218 - 13 0.166 - 14 0.0529 - 15 0.0215 - 16 0.000529 - 17 0.000176 - 18 0.000118 - 19 0.00285 - 20 0.000353 - 21 0.0147 - 22 0.00171 - 23 0.000441 - 24 0.000353 - 26 0.0645 - 28 0.000147 - 29 0.0052 - 30 0.00409 - 31 0.003 - 32 0.00171 - 33 0.000823 - 34 0.0005 - 35 0.00047 - 37 0.00318 - 39 0.00173 - 40 0.223 - 41 0.136 - 42 0.0157 - 43 0.00247 - 44 0.00326 - 45 0.00173 - 46 0.00808 - 47 0.001 - - 0 6 4 0 - 21 0.167 - 30 0.167 - 40 0.333 - 41 0.333 - - 2 252 19 5 - 0 0.00397 - 3 0.0357 - 4 0.0238 - 7 0.0159 - 8 0.206 - 9 0.0437 - 10 0.00794 - 13 0.0556 - 14 0.00397 - 15 0.0119 - 21 0.341 - 22 0.0714 - 23 0.0516 - 29 0.0119 - 30 0.0238 - 31 0.0357 - 39 0.0159 - 41 0.0119 - 45 0.0278 - - 8 29 7 0 - 4 0.103 - 13 0.241 - 14 0.0345 - 21 0.138 - 29 0.0345 - 30 0.172 - 31 0.276 - - 41 42 10 0 - 3 0.0714 - 4 0.0238 - 7 0.0476 - 8 0.19 - 9 0.0476 - 10 0.0238 - 13 0.0238 - 21 0.452 - 29 0.0238 - 39 0.0952 - - 42 4 4 0 - 8 0.25 - 10 0.25 - 13 0.25 - 23 0.25 - - 46 4 1 0 - 45 1 - - 48 170 15 0 - 0 0.00588 - 3 0.0353 - 4 0.0118 - 7 0.0118 - 8 0.253 - 9 0.0529 - 13 0.0294 - 15 0.0176 - 21 0.365 - 22 0.106 - 23 0.0647 - 29 0.00588 - 31 0.00588 - 41 0.0176 - 45 0.0176 - - 3 192 10 5 - 3 0.00521 - 4 0.0104 - 7 0.0104 - 8 0.13 - 13 0.703 - 14 0.0573 - 15 0.0521 - 41 0.0156 - 43 0.0104 - 44 0.00521 - - 2 1 1 0 - 43 1 - - 3 19 5 0 - 8 0.105 - 13 0.421 - 14 0.105 - 15 0.263 - 41 0.105 - - 38 1 1 0 - 44 1 - - 39 155 8 0 - 3 0.00645 - 4 0.0129 - 8 0.142 - 13 0.748 - 14 0.0452 - 15 0.0323 - 41 0.00645 - 43 0.00645 - - 47 6 2 0 - 7 0.333 - 13 0.667 - - 4 32 7 1 - 8 0.312 - 13 0.438 - 14 0.0625 - 15 0.0312 - 39 0.0938 - 41 0.0312 - 42 0.0312 - - 47 5 3 0 - 39 0.6 - 41 0.2 - 42 0.2 - - 6 10 6 0 - 7 0.1 - 8 0.1 - 13 0.4 - 40 0.2 - 44 0.1 - 46 0.1 - - 7 50 13 2 - 2 0.04 - 3 0.02 - 7 0.32 - 8 0.02 - 9 0.02 - 13 0.04 - 14 0.04 - 21 0.18 - 26 0.1 - 30 0.02 - 31 0.02 - 40 0.14 - 41 0.04 - - 41 3 2 0 - 8 0.333 - 21 0.667 - - 47 36 10 0 - 2 0.0278 - 3 0.0278 - 7 0.389 - 9 0.0278 - 14 0.0556 - 21 0.111 - 26 0.139 - 30 0.0278 - 40 0.139 - 41 0.0556 - - 8 9595 38 23 - 0 0.00563 - 2 0.0308 - 3 0.0112 - 4 0.00834 - 5 0.000417 - 6 0.000104 - 7 0.235 - 8 0.0211 - 9 0.000208 - 12 0.00104 - 13 0.116 - 14 0.0552 - 15 0.0311 - 16 0.000521 - 19 0.00584 - 20 0.00073 - 21 0.0174 - 22 0.000521 - 24 0.000208 - 26 0.161 - 28 0.000104 - 29 0.000625 - 30 0.00396 - 31 0.00177 - 32 0.000208 - 33 0.000521 - 34 0.000625 - 35 0.000938 - 37 0.00427 - 39 0.00198 - 40 0.132 - 41 0.117 - 42 0.0148 - 43 0.00146 - 44 0.00208 - 45 0.00188 - 46 0.0127 - 47 0.000104 - - 2 518 18 0 - 0 0.00193 - 2 0.00965 - 7 0.0328 - 8 0.029 - 12 0.00193 - 13 0.342 - 14 0.322 - 15 0.00772 - 16 0.00386 - 19 0.00193 - 21 0.00579 - 26 0.0212 - 40 0.0927 - 41 0.0907 - 42 0.0116 - 43 0.00193 - 45 0.00579 - 46 0.0174 - - 3 34 6 0 - 8 0.0588 - 13 0.618 - 14 0.206 - 40 0.0294 - 41 0.0294 - 44 0.0588 - - 4 11 7 0 - 7 0.273 - 8 0.0909 - 13 0.182 - 14 0.0909 - 15 0.0909 - 21 0.0909 - 41 0.182 - - 7 20 7 0 - 7 0.15 - 8 0.05 - 13 0.1 - 14 0.35 - 15 0.05 - 40 0.2 - 41 0.1 - - 8 227 11 0 - 0 0.00441 - 2 0.0132 - 7 0.00441 - 8 0.0793 - 13 0.498 - 14 0.313 - 15 0.0529 - 30 0.00441 - 39 0.00441 - 40 0.00441 - 41 0.022 - - 9 15 3 0 - 2 0.0667 - 13 0.4 - 14 0.533 - - 10 29 4 0 - 8 0.069 - 13 0.621 - 14 0.276 - 41 0.0345 - - 13 23 7 0 - 2 0.13 - 7 0.304 - 8 0.174 - 13 0.087 - 14 0.087 - 40 0.087 - 41 0.13 - - 14 2 1 0 - 41 1 - - 15 54 8 0 - 8 0.111 - 13 0.259 - 14 0.037 - 15 0.519 - 16 0.0185 - 40 0.0185 - 41 0.0185 - 45 0.0185 - - 21 1945 28 0 - 0 0.00463 - 2 0.0221 - 3 0.0072 - 4 0.0118 - 7 0.217 - 8 0.0411 - 9 0.000514 - 13 0.202 - 14 0.074 - 15 0.0226 - 19 0.00308 - 21 0.00977 - 26 0.0833 - 28 0.000514 - 30 0.00463 - 31 0.000514 - 33 0.000514 - 34 0.000514 - 35 0.00103 - 37 0.00411 - 39 0.00103 - 40 0.128 - 41 0.116 - 42 0.0165 - 43 0.00206 - 44 0.00257 - 45 0.00206 - 46 0.0211 - - 22 423 21 0 - 0 0.00946 - 2 0.0402 - 3 0.00473 - 4 0.00946 - 7 0.229 - 8 0.0402 - 13 0.196 - 14 0.0757 - 15 0.00946 - 16 0.00236 - 19 0.00236 - 21 0.00473 - 26 0.13 - 30 0.00236 - 37 0.00709 - 39 0.00473 - 40 0.109 - 41 0.0969 - 42 0.0118 - 45 0.00236 - 46 0.0118 - - 23 263 15 0 - 0 0.0076 - 2 0.0114 - 7 0.076 - 8 0.0875 - 12 0.0038 - 13 0.441 - 14 0.205 - 15 0.0266 - 19 0.0038 - 26 0.0418 - 31 0.0114 - 40 0.0152 - 41 0.0532 - 42 0.0114 - 45 0.0038 - - 26 10 4 0 - 8 0.1 - 13 0.6 - 14 0.1 - 15 0.2 - - 37 1 1 0 - 19 1 - - 39 62 6 0 - 8 0.0968 - 13 0.742 - 14 0.0161 - 15 0.0161 - 31 0.0161 - 41 0.113 - - 41 59 8 0 - 2 0.0339 - 13 0.525 - 14 0.0678 - 15 0.288 - 16 0.0169 - 40 0.0169 - 41 0.0339 - 45 0.0169 - - 45 44 8 0 - 2 0.0227 - 7 0.0227 - 13 0.0455 - 21 0.0227 - 40 0.159 - 41 0.0455 - 42 0.0227 - 46 0.659 - - 47 5604 35 0 - 0 0.00625 - 2 0.0373 - 3 0.0162 - 4 0.00946 - 5 0.000714 - 7 0.294 - 8 0.00428 - 9 0.000178 - 12 0.00143 - 13 0.0121 - 14 0.00178 - 15 0.0316 - 19 0.00821 - 20 0.00125 - 21 0.0244 - 22 0.000892 - 24 0.000357 - 26 0.231 - 29 0.000892 - 30 0.00464 - 31 0.00214 - 32 0.000178 - 33 0.000714 - 34 0.000892 - 35 0.00125 - 37 0.00482 - 39 0.0025 - 40 0.155 - 41 0.118 - 42 0.0162 - 43 0.00161 - 44 0.00214 - 45 0.00125 - 46 0.00642 - 47 0.000178 - - 49 92 12 0 - 0 0.0109 - 2 0.0109 - 6 0.0109 - 7 0.25 - 8 0.0217 - 13 0.141 - 14 0.0761 - 26 0.141 - 40 0.152 - 41 0.141 - 42 0.0217 - 46 0.0217 - - 50 4 2 0 - 2 0.25 - 14 0.75 - - 55 141 13 0 - 0 0.00709 - 2 0.0496 - 7 0.0638 - 13 0.00709 - 21 0.0213 - 29 0.00709 - 30 0.00709 - 32 0.00709 - 37 0.0213 - 40 0.135 - 41 0.652 - 42 0.0142 - 44 0.00709 - - 60 4 2 0 - 13 0.75 - 40 0.25 - - 9 829 25 8 - 0 0.00362 - 2 0.0338 - 3 0.00362 - 4 0.00362 - 7 0.422 - 8 0.0169 - 12 0.00241 - 13 0.171 - 14 0.0627 - 15 0.0109 - 17 0.00121 - 21 0.00965 - 24 0.00483 - 26 0.0627 - 29 0.00241 - 30 0.00121 - 31 0.00121 - 32 0.00241 - 37 0.00241 - 40 0.0953 - 41 0.0724 - 42 0.00844 - 43 0.00121 - 46 0.00241 - 47 0.00121 - - 2 36 12 0 - 2 0.0278 - 7 0.111 - 8 0.0556 - 13 0.167 - 14 0.25 - 15 0.0556 - 21 0.0278 - 26 0.0556 - 40 0.111 - 41 0.0556 - 42 0.0556 - 46 0.0278 - - 4 5 2 0 - 13 0.6 - 14 0.4 - - 8 9 3 0 - 2 0.222 - 13 0.556 - 14 0.222 - - 21 279 14 0 - 2 0.00717 - 3 0.0108 - 4 0.0108 - 7 0.287 - 8 0.0358 - 13 0.348 - 14 0.0932 - 15 0.0179 - 26 0.0358 - 40 0.0824 - 41 0.0573 - 42 0.00717 - 43 0.00358 - 46 0.00358 - - 47 383 20 0 - 0 0.00261 - 2 0.0601 - 7 0.517 - 8 0.00261 - 12 0.00522 - 13 0.0261 - 14 0.00261 - 15 0.00261 - 17 0.00261 - 21 0.0183 - 24 0.0104 - 26 0.102 - 29 0.00522 - 30 0.00261 - 31 0.00261 - 32 0.00522 - 37 0.00522 - 40 0.123 - 41 0.0966 - 42 0.00783 - - 49 3 2 0 - 13 0.333 - 14 0.667 - - 55 96 9 0 - 0 0.0208 - 7 0.656 - 8 0.0104 - 13 0.156 - 14 0.0625 - 26 0.0104 - 40 0.0417 - 41 0.0312 - 47 0.0104 - - 60 7 6 0 - 7 0.143 - 13 0.143 - 14 0.286 - 15 0.143 - 40 0.143 - 41 0.143 - - 10 68 16 4 - 2 0.132 - 4 0.0294 - 7 0.103 - 8 0.0441 - 13 0.294 - 14 0.0147 - 15 0.0147 - 21 0.0147 - 30 0.0441 - 31 0.0294 - 37 0.0147 - 39 0.0147 - 40 0.0147 - 41 0.191 - 42 0.0294 - 46 0.0147 - - 4 2 2 0 - 2 0.5 - 14 0.5 - - 8 12 3 0 - 8 0.167 - 13 0.75 - 41 0.0833 - - 21 12 5 0 - 7 0.0833 - 8 0.0833 - 13 0.417 - 41 0.333 - 46 0.0833 - - 47 39 13 0 - 2 0.205 - 4 0.0513 - 7 0.154 - 13 0.0769 - 15 0.0256 - 21 0.0256 - 30 0.0769 - 31 0.0513 - 37 0.0256 - 39 0.0256 - 40 0.0256 - 41 0.205 - 42 0.0513 - - 13 1034 21 11 - 0 0.0029 - 2 0.00774 - 4 0.00193 - 7 0.0338 - 8 0.088 - 9 0.00677 - 12 0.000967 - 13 0.632 - 14 0.147 - 15 0.0126 - 21 0.000967 - 26 0.0106 - 29 0.000967 - 30 0.00387 - 31 0.00677 - 33 0.000967 - 40 0.0106 - 41 0.0155 - 42 0.000967 - 44 0.0087 - 46 0.00677 - - 2 23 5 0 - 7 0.0435 - 13 0.304 - 14 0.522 - 40 0.0435 - 41 0.087 - - 3 766 12 0 - 2 0.00392 - 8 0.0914 - 9 0.00261 - 13 0.77 - 14 0.106 - 15 0.0117 - 30 0.00392 - 31 0.00522 - 40 0.00131 - 41 0.00131 - 44 0.00131 - 46 0.00131 - - 8 37 10 0 - 0 0.0811 - 2 0.0811 - 7 0.108 - 8 0.027 - 13 0.27 - 14 0.0811 - 15 0.027 - 41 0.135 - 44 0.0811 - 46 0.108 - - 9 7 5 0 - 7 0.286 - 8 0.143 - 14 0.143 - 26 0.143 - 41 0.286 - - 10 2 2 0 - 7 0.5 - 8 0.5 - - 21 7 4 0 - 7 0.429 - 14 0.286 - 40 0.143 - 44 0.143 - - 45 2 1 0 - 46 1 - - 47 48 11 0 - 2 0.0208 - 4 0.0417 - 7 0.396 - 12 0.0208 - 15 0.0417 - 26 0.188 - 30 0.0208 - 31 0.0208 - 40 0.104 - 41 0.125 - 42 0.0208 - - 49 2 2 0 - 26 0.5 - 40 0.5 - - 55 1 1 0 - 40 1 - - 60 117 12 0 - 7 0.0171 - 8 0.154 - 9 0.0427 - 13 0.291 - 14 0.41 - 15 0.00855 - 21 0.00855 - 29 0.00855 - 31 0.0171 - 33 0.00855 - 40 0.00855 - 44 0.0256 - - 14 11 8 0 - 8 0.182 - 9 0.0909 - 13 0.0909 - 14 0.0909 - 15 0.0909 - 40 0.0909 - 41 0.182 - 44 0.182 - - 15 45 14 3 - 2 0.0444 - 7 0.178 - 8 0.0444 - 13 0.2 - 14 0.111 - 15 0.178 - 16 0.0444 - 21 0.0222 - 26 0.0444 - 40 0.0444 - 41 0.0222 - 42 0.0222 - 43 0.0222 - 47 0.0222 - - 2 5 3 0 - 14 0.4 - 15 0.4 - 40 0.2 - - 15 19 8 0 - 2 0.0526 - 8 0.105 - 13 0.368 - 14 0.105 - 15 0.211 - 26 0.0526 - 42 0.0526 - 47 0.0526 - - 47 15 8 0 - 2 0.0667 - 7 0.533 - 16 0.0667 - 21 0.0667 - 26 0.0667 - 40 0.0667 - 41 0.0667 - 43 0.0667 - - 21 402 29 7 - 0 0.0199 - 2 0.0199 - 3 0.0249 - 4 0.0896 - 6 0.00249 - 7 0.216 - 8 0.0224 - 9 0.00249 - 12 0.00249 - 13 0.0249 - 14 0.00249 - 15 0.00249 - 17 0.00249 - 18 0.00498 - 19 0.00249 - 20 0.00249 - 21 0.0373 - 22 0.0522 - 26 0.197 - 28 0.00249 - 29 0.00498 - 30 0.0796 - 31 0.00746 - 33 0.00249 - 40 0.097 - 41 0.0547 - 42 0.0174 - 46 0.00249 - 47 0.00249 - - 2 9 4 0 - 8 0.444 - 21 0.333 - 40 0.111 - 41 0.111 - - 8 48 10 0 - 2 0.0208 - 4 0.0208 - 7 0.229 - 13 0.0208 - 15 0.0208 - 21 0.0208 - 26 0.479 - 40 0.0833 - 41 0.0833 - 42 0.0208 - - 21 41 10 0 - 2 0.0244 - 4 0.0244 - 7 0.439 - 8 0.0732 - 13 0.0244 - 21 0.0244 - 26 0.22 - 40 0.0732 - 41 0.0732 - 42 0.0244 - - 23 2 2 0 - 28 0.5 - 40 0.5 - - 41 3 3 0 - 8 0.333 - 21 0.333 - 30 0.333 - - 47 282 27 0 - 0 0.0248 - 2 0.0142 - 3 0.0355 - 4 0.117 - 6 0.00355 - 7 0.188 - 8 0.00355 - 9 0.00355 - 12 0.00355 - 13 0.0248 - 14 0.00355 - 17 0.00355 - 18 0.00709 - 19 0.00355 - 20 0.00355 - 21 0.0284 - 22 0.0745 - 26 0.16 - 29 0.00709 - 30 0.11 - 31 0.00709 - 33 0.00355 - 40 0.0957 - 41 0.0496 - 42 0.0177 - 46 0.00355 - 47 0.00355 - - 55 6 5 0 - 0 0.167 - 2 0.167 - 4 0.167 - 31 0.167 - 40 0.333 - - 22 62 10 2 - 0 0.0161 - 2 0.0323 - 7 0.452 - 8 0.113 - 21 0.0161 - 22 0.0161 - 26 0.0806 - 31 0.0161 - 40 0.161 - 41 0.0968 - - 21 20 7 0 - 7 0.3 - 8 0.3 - 21 0.05 - 26 0.1 - 31 0.05 - 40 0.15 - 41 0.05 - - 47 34 7 0 - 0 0.0294 - 2 0.0588 - 7 0.5 - 22 0.0294 - 26 0.0882 - 40 0.176 - 41 0.118 - - 24 11 5 0 - 7 0.273 - 21 0.0909 - 30 0.0909 - 40 0.182 - 41 0.364 - - 26 2 2 0 - 13 0.5 - 21 0.5 - - 28 7 6 0 - 4 0.143 - 7 0.286 - 13 0.143 - 19 0.143 - 42 0.143 - 46 0.143 - - 29 12 5 1 - 7 0.167 - 8 0.417 - 13 0.25 - 26 0.0833 - 41 0.0833 - - 47 4 3 0 - 7 0.5 - 26 0.25 - 41 0.25 - - 30 83 12 4 - 0 0.0361 - 2 0.012 - 7 0.157 - 8 0.0482 - 13 0.277 - 14 0.0602 - 15 0.0482 - 26 0.0723 - 40 0.169 - 41 0.0964 - 43 0.012 - 46 0.012 - - 21 28 6 0 - 8 0.143 - 13 0.5 - 14 0.0714 - 15 0.107 - 26 0.107 - 41 0.0714 - - 45 1 1 0 - 46 1 - - 47 34 8 0 - 0 0.0588 - 2 0.0294 - 7 0.294 - 13 0.0294 - 26 0.0882 - 40 0.353 - 41 0.118 - 43 0.0294 - - 49 3 3 0 - 0 0.333 - 7 0.333 - 14 0.333 - - 31 741 29 9 - 0 0.0027 - 2 0.0243 - 3 0.0121 - 4 0.0081 - 7 0.192 - 8 0.0715 - 9 0.00135 - 12 0.00135 - 13 0.19 - 14 0.117 - 15 0.0526 - 16 0.00135 - 17 0.00135 - 19 0.0027 - 21 0.00675 - 24 0.0081 - 26 0.101 - 30 0.00135 - 31 0.00135 - 37 0.00135 - 39 0.0162 - 40 0.0931 - 41 0.0607 - 42 0.0054 - 43 0.0027 - 44 0.00135 - 45 0.00675 - 46 0.0135 - 47 0.00135 - - 2 18 7 0 - 0 0.0556 - 7 0.111 - 8 0.0556 - 13 0.222 - 14 0.389 - 40 0.111 - 46 0.0556 - - 7 1 1 0 - 46 1 - - 13 13 6 0 - 2 0.0769 - 8 0.538 - 13 0.154 - 14 0.0769 - 26 0.0769 - 40 0.0769 - - 21 379 22 0 - 2 0.0132 - 3 0.0132 - 7 0.0633 - 8 0.106 - 9 0.00264 - 13 0.322 - 14 0.201 - 15 0.095 - 16 0.00264 - 21 0.00528 - 24 0.00792 - 26 0.0343 - 30 0.00264 - 31 0.00264 - 37 0.00264 - 39 0.029 - 40 0.0475 - 41 0.0237 - 42 0.00528 - 43 0.00528 - 45 0.0106 - 46 0.00528 - - 22 17 7 0 - 2 0.118 - 7 0.471 - 13 0.0588 - 14 0.0588 - 40 0.118 - 41 0.118 - 46 0.0588 - - 23 8 6 0 - 2 0.25 - 13 0.25 - 14 0.125 - 24 0.125 - 40 0.125 - 41 0.125 - - 47 268 22 0 - 0 0.00373 - 2 0.0299 - 3 0.0112 - 4 0.0224 - 7 0.358 - 8 0.00373 - 12 0.00373 - 13 0.00746 - 15 0.00746 - 17 0.00373 - 19 0.00746 - 21 0.0112 - 24 0.00746 - 26 0.224 - 39 0.00373 - 40 0.153 - 41 0.112 - 42 0.00373 - 44 0.00373 - 45 0.00373 - 46 0.0149 - 47 0.00373 - - 49 27 11 0 - 3 0.037 - 7 0.333 - 8 0.148 - 13 0.148 - 14 0.037 - 15 0.037 - 26 0.037 - 40 0.0741 - 41 0.0741 - 42 0.037 - 46 0.037 - - 55 5 3 0 - 7 0.6 - 40 0.2 - 41 0.2 - - 39 2 1 0 - 3 1 - - 40 8 3 0 - 6 0.125 - 46 0.25 - 47 0.625 - - 41 149 17 7 - 0 0.0134 - 2 0.289 - 3 0.00671 - 7 0.101 - 8 0.134 - 9 0.0134 - 13 0.0805 - 14 0.0671 - 15 0.00671 - 19 0.0268 - 21 0.121 - 22 0.0403 - 23 0.00671 - 26 0.0403 - 31 0.0134 - 39 0.0134 - 46 0.0268 - - 8 19 10 0 - 2 0.105 - 7 0.0526 - 13 0.211 - 14 0.263 - 19 0.0526 - 21 0.105 - 26 0.0526 - 31 0.0526 - 39 0.0526 - 46 0.0526 - - 9 3 1 0 - 14 1 - - 10 1 1 0 - 23 1 - - 13 2 1 0 - 13 1 - - 48 105 16 0 - 0 0.00952 - 2 0.371 - 3 0.00952 - 7 0.0571 - 8 0.162 - 9 0.019 - 13 0.0476 - 14 0.019 - 15 0.00952 - 19 0.019 - 21 0.152 - 22 0.0571 - 26 0.019 - 31 0.00952 - 39 0.00952 - 46 0.0286 - - 55 6 2 0 - 7 0.667 - 26 0.333 - - 57 6 4 0 - 0 0.167 - 7 0.5 - 8 0.167 - 19 0.167 - - 42 16 7 0 - 2 0.375 - 7 0.125 - 14 0.125 - 21 0.188 - 26 0.0625 - 32 0.0625 - 34 0.0625 - - 44 1 1 0 - 39 1 - - 45 9 6 0 - 7 0.222 - 8 0.222 - 9 0.111 - 13 0.111 - 14 0.111 - 31 0.222 - - 46 73 14 5 - 2 0.11 - 4 0.0274 - 7 0.452 - 8 0.0274 - 13 0.0959 - 14 0.0274 - 19 0.0411 - 21 0.0548 - 26 0.0959 - 29 0.0137 - 30 0.0137 - 42 0.0137 - 44 0.0137 - 45 0.0137 - - 8 56 9 0 - 2 0.0893 - 4 0.0357 - 7 0.518 - 8 0.0179 - 13 0.107 - 14 0.0179 - 19 0.0536 - 21 0.0536 - 26 0.107 - - 13 3 3 0 - 8 0.333 - 14 0.333 - 44 0.333 - - 41 3 3 0 - 21 0.333 - 30 0.333 - 45 0.333 - - 48 5 3 0 - 2 0.6 - 7 0.2 - 42 0.2 - - 57 1 1 0 - 29 1 - - 47 14411 39 31 - 0 0.00992 - 2 0.0338 - 3 0.00222 - 4 0.00583 - 5 0.000139 - 6 0.000139 - 7 0.126 - 8 0.038 - 9 0.00104 - 12 0.00257 - 13 0.193 - 14 0.0622 - 15 0.0192 - 16 0.000625 - 17 0.000208 - 18 0.000139 - 19 0.0018 - 20 0.000278 - 21 0.00971 - 22 0.000416 - 26 0.0212 - 28 0.000139 - 29 0.00597 - 30 0.00285 - 31 0.00285 - 32 0.00201 - 33 0.000971 - 34 0.000555 - 35 0.000486 - 37 0.00347 - 39 0.00118 - 40 0.263 - 41 0.155 - 42 0.0176 - 43 0.00285 - 44 0.00298 - 45 0.00167 - 46 0.00701 - 47 0.00118 - - 0 5 3 0 - 30 0.2 - 40 0.4 - 41 0.4 - - 3 187 8 0 - 4 0.0107 - 8 0.134 - 13 0.711 - 14 0.0588 - 15 0.0535 - 41 0.016 - 43 0.0107 - 44 0.00535 - - 4 28 5 0 - 8 0.357 - 13 0.5 - 14 0.0714 - 15 0.0357 - 41 0.0357 - - 6 8 5 0 - 7 0.125 - 8 0.125 - 13 0.5 - 44 0.125 - 46 0.125 - - 7 20 7 0 - 2 0.1 - 7 0.2 - 13 0.05 - 14 0.1 - 21 0.1 - 40 0.35 - 41 0.1 - - 8 6530 37 0 - 0 0.00827 - 2 0.0409 - 3 0.00322 - 4 0.00796 - 5 0.000153 - 6 0.000153 - 7 0.169 - 8 0.0297 - 9 0.000153 - 12 0.00153 - 13 0.163 - 14 0.0809 - 15 0.0204 - 16 0.000766 - 19 0.00337 - 20 0.000613 - 21 0.0139 - 22 0.000613 - 26 0.0383 - 28 0.000153 - 29 0.000919 - 30 0.00383 - 31 0.00214 - 32 0.000306 - 33 0.000766 - 34 0.000919 - 35 0.00107 - 37 0.00551 - 39 0.000766 - 40 0.194 - 41 0.168 - 42 0.0208 - 43 0.00214 - 44 0.00306 - 45 0.00245 - 46 0.0101 - 47 0.000153 - - 9 730 23 0 - 0 0.00411 - 2 0.0384 - 3 0.00411 - 4 0.00411 - 7 0.403 - 8 0.0192 - 12 0.00274 - 13 0.185 - 14 0.0712 - 15 0.0123 - 17 0.00137 - 21 0.00959 - 26 0.037 - 29 0.00274 - 31 0.00137 - 32 0.00274 - 37 0.00274 - 40 0.108 - 41 0.0781 - 42 0.00822 - 43 0.00137 - 46 0.00137 - 47 0.00137 - - 10 56 14 0 - 2 0.143 - 4 0.0357 - 7 0.0714 - 8 0.0536 - 13 0.321 - 14 0.0179 - 15 0.0179 - 21 0.0179 - 37 0.0179 - 39 0.0179 - 40 0.0179 - 41 0.214 - 42 0.0357 - 46 0.0179 - - 13 1001 21 0 - 0 0.003 - 2 0.00799 - 4 0.002 - 7 0.021 - 8 0.0909 - 9 0.00699 - 12 0.000999 - 13 0.651 - 14 0.152 - 15 0.012 - 21 0.000999 - 26 0.000999 - 29 0.000999 - 30 0.003 - 31 0.00699 - 33 0.000999 - 40 0.011 - 41 0.014 - 42 0.000999 - 44 0.00799 - 46 0.004 - - 14 10 7 0 - 8 0.2 - 9 0.1 - 13 0.1 - 14 0.1 - 40 0.1 - 41 0.2 - 44 0.2 - - 15 39 13 0 - 2 0.0513 - 7 0.179 - 8 0.0513 - 13 0.231 - 14 0.128 - 15 0.128 - 16 0.0513 - 21 0.0256 - 40 0.0513 - 41 0.0256 - 42 0.0256 - 43 0.0256 - 47 0.0256 - - 21 161 21 0 - 0 0.0373 - 2 0.0435 - 4 0.0683 - 7 0.224 - 8 0.0373 - 9 0.00621 - 12 0.00621 - 13 0.0124 - 17 0.00621 - 18 0.0124 - 21 0.0559 - 22 0.00621 - 26 0.0248 - 30 0.00621 - 31 0.0186 - 33 0.00621 - 40 0.236 - 41 0.137 - 42 0.0435 - 46 0.00621 - 47 0.00621 - - 22 58 10 0 - 0 0.0172 - 2 0.0345 - 7 0.448 - 8 0.121 - 21 0.0172 - 22 0.0172 - 26 0.0517 - 31 0.0172 - 40 0.172 - 41 0.103 - - 24 9 4 0 - 7 0.222 - 21 0.111 - 40 0.222 - 41 0.444 - - 28 5 5 0 - 4 0.2 - 13 0.2 - 19 0.2 - 42 0.2 - 46 0.2 - - 29 10 4 0 - 7 0.1 - 8 0.5 - 13 0.3 - 41 0.1 - - 30 74 11 0 - 0 0.0405 - 2 0.0135 - 7 0.122 - 8 0.0541 - 13 0.311 - 14 0.0676 - 15 0.0541 - 26 0.027 - 40 0.189 - 41 0.108 - 43 0.0135 - - 31 530 25 0 - 0 0.00377 - 2 0.034 - 3 0.0113 - 7 0.0585 - 8 0.1 - 9 0.00189 - 12 0.00189 - 13 0.266 - 14 0.164 - 15 0.0717 - 16 0.00189 - 17 0.00189 - 21 0.00566 - 26 0.00189 - 30 0.00189 - 31 0.00189 - 37 0.00189 - 39 0.0208 - 40 0.13 - 41 0.083 - 42 0.00755 - 43 0.00377 - 45 0.00755 - 46 0.0151 - 47 0.00189 - - 40 8 3 0 - 6 0.125 - 46 0.25 - 47 0.625 - - 41 29 9 0 - 0 0.069 - 7 0.0345 - 8 0.0345 - 13 0.414 - 14 0.31 - 15 0.0345 - 26 0.0345 - 31 0.0345 - 46 0.0345 - - 42 5 4 0 - 2 0.2 - 7 0.2 - 14 0.4 - 32 0.2 - - 46 27 11 0 - 2 0.148 - 7 0.222 - 8 0.0741 - 13 0.259 - 14 0.0741 - 19 0.037 - 26 0.037 - 29 0.037 - 30 0.037 - 42 0.037 - 44 0.037 - - 48 221 17 0 - 0 0.00452 - 2 0.0136 - 7 0.0588 - 8 0.0452 - 12 0.00452 - 13 0.167 - 14 0.104 - 15 0.0226 - 16 0.00452 - 21 0.00452 - 26 0.0136 - 30 0.0136 - 40 0.385 - 41 0.109 - 42 0.0317 - 44 0.00452 - 46 0.0136 - - 49 12 4 0 - 2 0.0833 - 7 0.0833 - 40 0.5 - 41 0.333 - - 55 300 18 0 - 0 0.0467 - 2 0.0267 - 3 0.00333 - 7 0.03 - 8 0.00333 - 9 0.00333 - 12 0.0133 - 13 0.0233 - 21 0.01 - 26 0.01 - 29 0.0833 - 31 0.03 - 32 0.0133 - 37 0.00333 - 40 0.213 - 41 0.47 - 42 0.0133 - 46 0.00333 - - 57 2237 27 0 - 0 0.0152 - 2 0.0434 - 4 0.00358 - 7 0.0724 - 8 0.00134 - 12 0.00581 - 13 0.00179 - 14 0.00224 - 15 0.000447 - 19 0.000894 - 21 0.00492 - 26 0.00402 - 28 0.000447 - 29 0.0219 - 30 0.000894 - 32 0.00894 - 33 0.00268 - 34 0.000447 - 37 0.00268 - 40 0.553 - 41 0.219 - 42 0.0259 - 43 0.00134 - 44 0.000894 - 45 0.000894 - 46 0.00358 - 47 0.000894 - - 58 36 11 0 - 2 0.0556 - 7 0.0556 - 8 0.0278 - 13 0.528 - 14 0.0556 - 15 0.0278 - 26 0.0278 - 30 0.0278 - 40 0.0833 - 41 0.0833 - 47 0.0278 - - 59 7 5 0 - 3 0.143 - 7 0.286 - 8 0.286 - 21 0.143 - 40 0.143 - - 60 706 15 0 - 2 0.00142 - 4 0.00283 - 8 0.154 - 9 0.00425 - 13 0.687 - 14 0.00992 - 15 0.0793 - 21 0.00142 - 29 0.00142 - 30 0.00283 - 31 0.00567 - 41 0.0142 - 43 0.0241 - 44 0.0085 - 45 0.00283 - - 62 898 17 0 - 0 0.0189 - 2 0.0156 - 7 0.0746 - 12 0.00445 - 13 0.00111 - 21 0.00557 - 29 0.00111 - 30 0.00111 - 33 0.00111 - 34 0.00111 - 37 0.00334 - 40 0.653 - 41 0.199 - 42 0.0134 - 44 0.00111 - 46 0.00223 - 47 0.00334 - - 64 460 11 0 - 0 0.00652 - 2 0.0283 - 4 0.00217 - 5 0.00217 - 7 0.0326 - 21 0.00217 - 40 0.672 - 41 0.222 - 42 0.0283 - 46 0.00217 - 47 0.00217 - - 48 1047 22 10 - 0 0.000955 - 2 0.165 - 4 0.00573 - 7 0.449 - 8 0.0115 - 12 0.000955 - 13 0.0363 - 14 0.022 - 15 0.00478 - 16 0.000955 - 19 0.000955 - 21 0.00955 - 22 0.000955 - 26 0.0229 - 30 0.00287 - 31 0.000955 - 40 0.0812 - 41 0.129 - 42 0.0229 - 43 0.000955 - 44 0.0229 - 46 0.00764 - - 2 207 18 0 - 0 0.00483 - 2 0.0193 - 4 0.00483 - 7 0.0773 - 8 0.0435 - 12 0.00483 - 13 0.164 - 14 0.106 - 15 0.0145 - 16 0.00483 - 21 0.00966 - 26 0.00966 - 30 0.0145 - 40 0.319 - 41 0.135 - 42 0.0483 - 44 0.00966 - 46 0.00966 - - 4 3 1 0 - 2 1 - - 7 5 3 0 - 8 0.4 - 40 0.4 - 41 0.2 - - 21 10 4 0 - 2 0.1 - 15 0.1 - 40 0.4 - 41 0.4 - - 41 42 8 0 - 2 0.452 - 13 0.0238 - 15 0.0238 - 21 0.0476 - 40 0.119 - 41 0.286 - 44 0.0238 - 46 0.0238 - - 42 3 2 0 - 40 0.667 - 41 0.333 - - 44 1 1 0 - 43 1 - - 45 12 5 0 - 2 0.0833 - 7 0.167 - 40 0.167 - 41 0.167 - 46 0.417 - - 47 750 13 0 - 2 0.191 - 4 0.00667 - 7 0.603 - 8 0.00133 - 13 0.00133 - 19 0.00133 - 21 0.008 - 22 0.00133 - 26 0.028 - 31 0.00133 - 41 0.111 - 42 0.0187 - 44 0.028 - - 50 4 2 0 - 14 0.25 - 41 0.75 - - 49 35 9 3 - 2 0.0286 - 7 0.229 - 8 0.0571 - 13 0.0857 - 15 0.0857 - 21 0.0286 - 26 0.114 - 40 0.171 - 41 0.2 - - 8 16 8 0 - 2 0.0625 - 7 0.125 - 8 0.0625 - 13 0.188 - 15 0.188 - 21 0.0625 - 26 0.25 - 40 0.0625 - - 47 5 2 0 - 7 0.8 - 41 0.2 - - 48 7 3 0 - 7 0.143 - 40 0.571 - 41 0.286 - - 50 4 2 0 - 8 0.75 - 31 0.25 - - 55 335 19 8 - 0 0.0418 - 2 0.0239 - 3 0.00299 - 7 0.0478 - 8 0.00299 - 9 0.00299 - 12 0.0119 - 13 0.0209 - 21 0.00896 - 26 0.0716 - 29 0.0746 - 31 0.0269 - 32 0.0119 - 37 0.00299 - 40 0.191 - 41 0.439 - 42 0.0119 - 43 0.00299 - 46 0.00299 - - 7 4 1 0 - 40 1 - - 8 287 17 0 - 0 0.0418 - 2 0.0279 - 3 0.00348 - 7 0.0279 - 8 0.00348 - 12 0.00697 - 13 0.00697 - 21 0.00697 - 26 0.0836 - 29 0.0871 - 31 0.0314 - 32 0.0105 - 37 0.00348 - 40 0.199 - 41 0.446 - 42 0.0105 - 46 0.00348 - - 21 14 6 0 - 0 0.0714 - 7 0.357 - 12 0.0714 - 21 0.0714 - 32 0.0714 - 41 0.357 - - 31 3 3 0 - 0 0.333 - 12 0.333 - 40 0.333 - - 44 1 1 0 - 43 1 - - 47 1 1 0 - 9 1 - - 48 7 4 0 - 7 0.143 - 13 0.429 - 40 0.143 - 41 0.286 - - 49 8 4 0 - 7 0.125 - 40 0.125 - 41 0.625 - 42 0.125 - - 57 2329 28 15 - 0 0.0146 - 2 0.0416 - 4 0.00386 - 7 0.0932 - 8 0.00129 - 9 0.000429 - 12 0.00558 - 13 0.00215 - 14 0.00215 - 15 0.000859 - 19 0.000859 - 21 0.00558 - 26 0.0125 - 28 0.000429 - 29 0.021 - 30 0.000859 - 32 0.00859 - 33 0.00258 - 34 0.000429 - 37 0.00258 - 40 0.532 - 41 0.213 - 42 0.0258 - 43 0.00129 - 44 0.000859 - 45 0.000859 - 46 0.00386 - 47 0.000859 - - 2 1 1 0 - 9 1 - - 7 12 3 0 - 2 0.0833 - 7 0.333 - 40 0.583 - - 8 1515 26 0 - 0 0.0165 - 2 0.0436 - 4 0.00198 - 7 0.0904 - 8 0.00132 - 12 0.00726 - 13 0.00198 - 14 0.00198 - 15 0.00132 - 19 0.00132 - 21 0.00528 - 26 0.0112 - 28 0.00066 - 29 0.0277 - 30 0.00066 - 32 0.00858 - 33 0.00132 - 34 0.00066 - 37 0.00264 - 40 0.525 - 41 0.222 - 42 0.0205 - 43 0.00132 - 44 0.00066 - 46 0.0033 - 47 0.00066 - - 9 57 9 0 - 0 0.0351 - 2 0.0526 - 4 0.0526 - 7 0.228 - 8 0.0175 - 14 0.0175 - 40 0.421 - 41 0.14 - 42 0.0351 - - 13 19 7 0 - 0 0.0526 - 7 0.158 - 26 0.0526 - 37 0.0526 - 40 0.368 - 41 0.263 - 45 0.0526 - - 21 76 13 0 - 0 0.0132 - 2 0.0263 - 7 0.0658 - 21 0.0132 - 26 0.0658 - 29 0.0526 - 32 0.0526 - 33 0.0395 - 37 0.0132 - 40 0.408 - 41 0.224 - 42 0.0132 - 47 0.0132 - - 31 139 13 0 - 0 0.0144 - 2 0.0647 - 4 0.00719 - 7 0.0719 - 21 0.00719 - 29 0.00719 - 32 0.0144 - 33 0.00719 - 40 0.532 - 41 0.245 - 42 0.0144 - 43 0.00719 - 45 0.00719 - - 32 2 2 0 - 29 0.5 - 32 0.5 - - 42 2 2 0 - 40 0.5 - 46 0.5 - - 46 30 5 0 - 2 0.0667 - 7 0.0333 - 40 0.7 - 41 0.167 - 42 0.0333 - - 48 350 15 0 - 0 0.00571 - 2 0.0343 - 4 0.00571 - 7 0.114 - 12 0.00286 - 13 0.00286 - 14 0.00286 - 21 0.00857 - 26 0.0143 - 30 0.00286 - 40 0.569 - 41 0.186 - 42 0.0429 - 44 0.00286 - 46 0.00571 - - 55 27 3 0 - 40 0.815 - 41 0.0741 - 42 0.111 - - 57 54 7 0 - 2 0.0185 - 7 0.0185 - 12 0.0185 - 29 0.0185 - 40 0.685 - 41 0.222 - 42 0.0185 - - 58 1 1 0 - 46 1 - - 60 1 1 0 - 13 1 - - 58 55 15 3 - 2 0.0545 - 4 0.0182 - 7 0.164 - 8 0.0182 - 13 0.345 - 14 0.0364 - 15 0.0182 - 19 0.0182 - 21 0.0182 - 23 0.0182 - 26 0.0909 - 30 0.0182 - 40 0.0545 - 41 0.109 - 47 0.0182 - - 2 2 2 0 - 21 0.5 - 23 0.5 - - 8 10 5 0 - 4 0.1 - 7 0.3 - 13 0.1 - 19 0.1 - 26 0.4 - - 48 37 11 0 - 2 0.0811 - 7 0.108 - 8 0.027 - 13 0.459 - 14 0.027 - 15 0.027 - 26 0.027 - 30 0.027 - 40 0.0541 - 41 0.135 - 47 0.027 - - 59 11 6 0 - 3 0.0909 - 7 0.364 - 8 0.182 - 21 0.0909 - 26 0.182 - 40 0.0909 - - 60 708 16 1 - 2 0.00141 - 4 0.00282 - 7 0.00141 - 8 0.154 - 9 0.00424 - 13 0.685 - 14 0.00989 - 15 0.0791 - 21 0.00141 - 29 0.00141 - 30 0.00282 - 31 0.00565 - 41 0.0155 - 43 0.024 - 44 0.00847 - 45 0.00282 - - 8 1 1 0 - 29 1 - - 62 909 18 4 - 0 0.0187 - 2 0.0154 - 7 0.0781 - 12 0.0044 - 13 0.0011 - 21 0.0066 - 26 0.0011 - 29 0.0011 - 30 0.0011 - 33 0.0011 - 34 0.0011 - 37 0.0066 - 40 0.646 - 41 0.197 - 42 0.0132 - 44 0.0011 - 46 0.0033 - 47 0.0033 - - 9 6 2 0 - 7 0.5 - 40 0.5 - - 21 35 7 0 - 0 0.114 - 2 0.0286 - 33 0.0286 - 40 0.657 - 41 0.114 - 42 0.0286 - 47 0.0286 - - 31 30 2 0 - 40 0.867 - 41 0.133 - - 57 15 3 0 - 37 0.2 - 40 0.533 - 41 0.267 - - 64 463 12 2 - 0 0.00648 - 2 0.0281 - 4 0.00216 - 5 0.00216 - 7 0.0346 - 21 0.00216 - 26 0.00216 - 40 0.667 - 41 0.22 - 42 0.0302 - 46 0.00216 - 47 0.00216 - - 9 16 5 0 - 0 0.0625 - 2 0.0625 - 7 0.25 - 40 0.438 - 41 0.188 - - 58 8 2 0 - 40 0.875 - 47 0.125 - -49 42263 41 35 - 0 0.065 - 1 0.00182 - 2 0.0136 - 3 0.0157 - 4 0.0309 - 5 0.00128 - 7 0.159 - 8 0.0225 - 9 0.00199 - 10 0.000118 - 12 0.0152 - 13 0.00757 - 14 0.00327 - 15 0.00613 - 16 9.46e-05 - 17 7.1e-05 - 19 0.0103 - 20 0.00149 - 21 0.0208 - 22 0.00442 - 23 0.000189 - 24 0.00026 - 26 0.0331 - 28 0.0399 - 29 0.067 - 30 0.0304 - 31 0.063 - 32 0.0227 - 33 0.0363 - 34 0.000284 - 35 0.00133 - 37 0.00338 - 39 0.00251 - 40 0.131 - 41 0.171 - 42 0.00989 - 43 0.000875 - 44 0.000592 - 45 0.00163 - 46 0.00244 - 47 0.00128 - - 2 55 16 5 - 0 0.0182 - 3 0.109 - 4 0.0364 - 7 0.109 - 8 0.0545 - 9 0.0182 - 19 0.0182 - 21 0.236 - 22 0.109 - 26 0.0182 - 28 0.0182 - 29 0.0909 - 31 0.0727 - 39 0.0182 - 41 0.0545 - 45 0.0182 - - 4 9 4 0 - 8 0.111 - 28 0.111 - 29 0.444 - 31 0.333 - - 22 3 1 0 - 22 1 - - 41 7 4 0 - 3 0.286 - 7 0.143 - 21 0.429 - 39 0.143 - - 47 10 9 0 - 0 0.1 - 7 0.1 - 8 0.1 - 19 0.1 - 21 0.1 - 26 0.1 - 29 0.1 - 31 0.1 - 41 0.2 - - 49 23 7 0 - 3 0.174 - 4 0.087 - 7 0.174 - 8 0.0435 - 21 0.348 - 22 0.13 - 45 0.0435 - - 3 20 7 1 - 2 0.05 - 7 0.1 - 14 0.05 - 15 0.05 - 26 0.05 - 40 0.35 - 41 0.35 - - 47 8 4 0 - 2 0.125 - 15 0.125 - 26 0.125 - 41 0.625 - - 4 84 15 3 - 0 0.0357 - 4 0.0119 - 7 0.19 - 8 0.0595 - 13 0.0238 - 14 0.0238 - 26 0.0119 - 28 0.0119 - 29 0.0119 - 30 0.0119 - 31 0.0357 - 32 0.0476 - 40 0.333 - 41 0.179 - 42 0.0119 - - 7 52 8 0 - 0 0.0192 - 4 0.0192 - 7 0.115 - 8 0.0385 - 28 0.0192 - 31 0.0192 - 40 0.481 - 41 0.288 - - 21 4 2 0 - 8 0.5 - 13 0.5 - - 47 28 11 0 - 0 0.0714 - 7 0.357 - 8 0.0357 - 14 0.0714 - 26 0.0357 - 29 0.0357 - 30 0.0357 - 31 0.0714 - 32 0.143 - 40 0.107 - 42 0.0357 - - 5 2 2 0 - 0 0.5 - 35 0.5 - - 6 7 4 0 - 15 0.143 - 41 0.571 - 42 0.143 - 46 0.143 - - 7 697 30 8 - 0 0.0143 - 2 0.0201 - 3 0.187 - 4 0.0459 - 5 0.00143 - 7 0.244 - 8 0.0244 - 12 0.0043 - 13 0.01 - 14 0.00717 - 15 0.01 - 17 0.00143 - 19 0.00717 - 20 0.00574 - 21 0.0301 - 22 0.0043 - 26 0.0301 - 28 0.00717 - 29 0.0258 - 30 0.0115 - 31 0.0359 - 32 0.0043 - 33 0.00717 - 35 0.00143 - 39 0.0258 - 40 0.115 - 41 0.109 - 42 0.00287 - 45 0.00143 - 47 0.00574 - - 2 9 3 0 - 7 0.111 - 21 0.556 - 41 0.333 - - 4 7 5 0 - 0 0.143 - 4 0.143 - 19 0.143 - 40 0.286 - 41 0.286 - - 9 8 4 0 - 8 0.25 - 29 0.25 - 30 0.125 - 31 0.375 - - 13 12 10 0 - 2 0.0833 - 8 0.25 - 13 0.0833 - 29 0.0833 - 30 0.0833 - 31 0.0833 - 33 0.0833 - 40 0.0833 - 41 0.0833 - 42 0.0833 - - 21 28 11 0 - 3 0.0357 - 4 0.25 - 7 0.179 - 8 0.0714 - 13 0.107 - 15 0.0357 - 21 0.0357 - 26 0.0357 - 30 0.0714 - 40 0.107 - 41 0.0714 - - 22 33 8 0 - 8 0.182 - 21 0.0303 - 28 0.152 - 29 0.212 - 30 0.0303 - 31 0.273 - 32 0.0606 - 33 0.0606 - - 47 482 28 0 - 0 0.0145 - 2 0.0228 - 3 0.268 - 4 0.0436 - 7 0.332 - 8 0.00622 - 12 0.00207 - 13 0.00622 - 14 0.0104 - 15 0.0124 - 17 0.00207 - 19 0.0083 - 20 0.00622 - 21 0.0249 - 22 0.00622 - 26 0.0332 - 29 0.00622 - 30 0.00622 - 31 0.0207 - 32 0.00207 - 33 0.00207 - 35 0.00207 - 39 0.0373 - 40 0.0581 - 41 0.0539 - 42 0.00207 - 45 0.00207 - 47 0.0083 - - 55 114 14 0 - 0 0.0175 - 2 0.0175 - 4 0.0263 - 5 0.00877 - 7 0.0351 - 12 0.0175 - 20 0.00877 - 21 0.0175 - 26 0.0351 - 29 0.0439 - 31 0.00877 - 33 0.00877 - 40 0.404 - 41 0.351 - - 8 310 25 8 - 0 0.00323 - 2 0.00968 - 3 0.0129 - 4 0.0161 - 7 0.31 - 8 0.0161 - 9 0.00323 - 12 0.00323 - 13 0.0419 - 14 0.0226 - 15 0.029 - 19 0.00323 - 21 0.00968 - 26 0.142 - 29 0.00968 - 30 0.00645 - 32 0.00323 - 35 0.00645 - 37 0.00323 - 40 0.129 - 41 0.19 - 42 0.0129 - 43 0.00645 - 46 0.00645 - 47 0.00323 - - 2 5 3 0 - 4 0.2 - 7 0.2 - 41 0.6 - - 4 6 4 0 - 7 0.333 - 40 0.167 - 41 0.167 - 42 0.333 - - 7 5 4 0 - 13 0.2 - 29 0.2 - 40 0.4 - 41 0.2 - - 21 71 10 0 - 4 0.0423 - 7 0.451 - 13 0.0845 - 14 0.0141 - 15 0.0282 - 26 0.127 - 29 0.0141 - 35 0.0141 - 40 0.0845 - 41 0.141 - - 22 7 3 0 - 7 0.286 - 41 0.571 - 46 0.143 - - 23 4 4 0 - 9 0.25 - 14 0.25 - 26 0.25 - 41 0.25 - - 28 2 1 0 - 13 1 - - 47 204 24 0 - 0 0.0049 - 2 0.0147 - 3 0.0196 - 4 0.0049 - 7 0.275 - 8 0.0245 - 12 0.0049 - 13 0.0196 - 14 0.0245 - 15 0.0294 - 19 0.0049 - 21 0.0147 - 26 0.167 - 29 0.0049 - 30 0.0098 - 32 0.0049 - 35 0.0049 - 37 0.0049 - 40 0.142 - 41 0.191 - 42 0.0098 - 43 0.0098 - 46 0.0049 - 47 0.0049 - - 9 132 13 4 - 0 0.00758 - 2 0.0152 - 4 0.0303 - 7 0.508 - 8 0.0303 - 13 0.053 - 14 0.0152 - 15 0.0303 - 21 0.00758 - 26 0.053 - 33 0.00758 - 40 0.106 - 41 0.136 - - 4 4 3 0 - 13 0.25 - 15 0.25 - 41 0.5 - - 21 29 10 0 - 0 0.0345 - 4 0.103 - 7 0.379 - 8 0.103 - 13 0.103 - 15 0.069 - 26 0.0345 - 33 0.0345 - 40 0.103 - 41 0.0345 - - 47 55 9 0 - 2 0.0182 - 4 0.0182 - 7 0.473 - 13 0.0364 - 15 0.0182 - 21 0.0182 - 26 0.0545 - 40 0.164 - 41 0.2 - - 55 39 7 0 - 2 0.0256 - 7 0.692 - 13 0.0256 - 14 0.0256 - 26 0.0769 - 40 0.0513 - 41 0.103 - - 10 131 21 1 - 0 0.0229 - 3 0.0382 - 4 0.191 - 5 0.0153 - 7 0.183 - 8 0.0611 - 13 0.0534 - 15 0.0153 - 19 0.0458 - 20 0.00763 - 21 0.107 - 26 0.0153 - 28 0.0229 - 29 0.00763 - 30 0.0153 - 31 0.0229 - 33 0.00763 - 37 0.0153 - 40 0.0305 - 41 0.107 - 42 0.0153 - - 47 7 5 0 - 0 0.143 - 7 0.286 - 26 0.143 - 31 0.286 - 40 0.143 - - 11 6 1 0 - 41 1 - - 13 92 23 6 - 0 0.0217 - 2 0.0543 - 4 0.0326 - 7 0.293 - 8 0.0217 - 9 0.0109 - 13 0.0217 - 15 0.0109 - 19 0.0109 - 21 0.0217 - 26 0.109 - 28 0.0109 - 29 0.0326 - 30 0.0109 - 31 0.0217 - 32 0.0109 - 33 0.0109 - 34 0.0109 - 35 0.0217 - 37 0.0217 - 40 0.13 - 41 0.0978 - 42 0.0109 - - 2 3 2 0 - 7 0.667 - 42 0.333 - - 3 2 2 0 - 9 0.5 - 13 0.5 - - 4 11 9 0 - 0 0.0909 - 7 0.0909 - 13 0.0909 - 28 0.0909 - 30 0.0909 - 33 0.0909 - 35 0.182 - 37 0.182 - 40 0.0909 - - 7 6 5 0 - 7 0.167 - 8 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 8 11 7 0 - 2 0.0909 - 7 0.182 - 8 0.0909 - 19 0.0909 - 26 0.273 - 32 0.0909 - 40 0.182 - - 47 50 12 0 - 0 0.02 - 2 0.04 - 4 0.06 - 7 0.34 - 15 0.02 - 21 0.02 - 26 0.12 - 29 0.06 - 31 0.04 - 34 0.02 - 40 0.12 - 41 0.14 - - 14 5 3 0 - 2 0.4 - 7 0.2 - 26 0.4 - - 15 26 4 0 - 4 0.0385 - 15 0.0769 - 40 0.0385 - 41 0.846 - - 19 6 4 0 - 0 0.333 - 7 0.167 - 40 0.167 - 41 0.333 - - 21 17337 41 14 - 0 0.0758 - 1 0.00225 - 2 0.01 - 3 0.0253 - 4 0.0318 - 5 0.00127 - 7 0.155 - 8 0.0237 - 9 0.00323 - 10 0.000173 - 12 0.018 - 13 0.00675 - 14 0.00271 - 15 0.00583 - 16 0.000115 - 17 5.77e-05 - 19 0.0114 - 20 0.00144 - 21 0.0224 - 22 0.00848 - 23 0.000231 - 24 0.000404 - 26 0.0337 - 28 0.0465 - 29 0.0786 - 30 0.0359 - 31 0.0731 - 32 0.0269 - 33 0.0436 - 34 0.000115 - 35 0.00121 - 37 0.00335 - 39 0.00438 - 40 0.0751 - 41 0.159 - 42 0.00594 - 43 0.000577 - 44 0.00075 - 45 0.00173 - 46 0.0026 - 47 0.000577 - - 2 80 22 0 - 0 0.0125 - 2 0.025 - 3 0.0125 - 4 0.0125 - 7 0.188 - 8 0.0125 - 10 0.0125 - 15 0.0125 - 19 0.0125 - 21 0.05 - 22 0.0125 - 26 0.025 - 28 0.0125 - 29 0.0125 - 30 0.025 - 31 0.0625 - 32 0.0125 - 40 0.175 - 41 0.262 - 42 0.025 - 44 0.0125 - 45 0.0125 - - 4 12 7 0 - 0 0.0833 - 4 0.0833 - 8 0.333 - 19 0.0833 - 22 0.0833 - 26 0.0833 - 40 0.25 - - 7 72 14 0 - 0 0.0417 - 2 0.0278 - 4 0.125 - 7 0.0556 - 8 0.0139 - 9 0.0278 - 15 0.0278 - 21 0.0139 - 26 0.0278 - 30 0.0278 - 31 0.0417 - 40 0.153 - 41 0.389 - 42 0.0278 - - 10 4 2 0 - 4 0.75 - 15 0.25 - - 19 1 1 0 - 13 1 - - 21 886 32 0 - 0 0.044 - 2 0.0135 - 3 0.00113 - 4 0.044 - 5 0.00339 - 7 0.31 - 8 0.0282 - 9 0.00226 - 10 0.00113 - 12 0.00903 - 13 0.00339 - 14 0.00339 - 15 0.00226 - 19 0.0113 - 21 0.0147 - 22 0.00564 - 26 0.035 - 28 0.0181 - 29 0.0169 - 30 0.00677 - 31 0.0406 - 32 0.00903 - 33 0.0169 - 35 0.00339 - 37 0.00564 - 40 0.159 - 41 0.172 - 42 0.0102 - 43 0.00226 - 44 0.00226 - 45 0.00113 - 46 0.00339 - - 22 117 12 0 - 2 0.00855 - 4 0.0171 - 7 0.342 - 8 0.0598 - 26 0.0427 - 28 0.0513 - 30 0.0171 - 31 0.0598 - 37 0.0171 - 40 0.094 - 41 0.274 - 42 0.0171 - - 23 34 13 0 - 0 0.0294 - 2 0.0294 - 7 0.0588 - 8 0.118 - 12 0.0882 - 14 0.0294 - 15 0.0882 - 19 0.0294 - 29 0.0294 - 31 0.235 - 32 0.0294 - 41 0.206 - 43 0.0294 - - 24 3 3 0 - 7 0.333 - 40 0.333 - 46 0.333 - - 41 2 2 0 - 3 0.5 - 4 0.5 - - 45 3 3 0 - 7 0.333 - 21 0.333 - 46 0.333 - - 47 15577 41 0 - 0 0.0812 - 1 0.0025 - 2 0.00905 - 3 0.0279 - 4 0.0315 - 5 0.00122 - 7 0.146 - 8 0.0237 - 9 0.00327 - 10 6.42e-05 - 12 0.0193 - 13 0.00719 - 14 0.00276 - 15 0.00578 - 16 0.000128 - 17 6.42e-05 - 19 0.0115 - 20 0.0016 - 21 0.0236 - 22 0.00899 - 23 0.000257 - 24 0.000449 - 26 0.0343 - 28 0.0503 - 29 0.0859 - 30 0.0391 - 31 0.0774 - 32 0.0293 - 33 0.0475 - 34 0.000128 - 35 0.00116 - 37 0.00308 - 39 0.00488 - 40 0.0583 - 41 0.149 - 42 0.00507 - 43 0.000449 - 44 0.000642 - 45 0.0018 - 46 0.0025 - 47 0.000642 - - 49 10 5 0 - 3 0.1 - 7 0.4 - 9 0.1 - 40 0.2 - 41 0.2 - - 55 526 17 0 - 0 0.0076 - 2 0.0285 - 4 0.00951 - 7 0.12 - 13 0.0019 - 15 0.0038 - 19 0.00951 - 26 0.0152 - 29 0.0152 - 30 0.0019 - 31 0.0019 - 33 0.0019 - 37 0.0057 - 40 0.395 - 41 0.363 - 42 0.0171 - 46 0.0019 - - 22 718 21 5 - 0 0.00418 - 2 0.0334 - 3 0.00139 - 4 0.0432 - 7 0.297 - 8 0.0752 - 12 0.00279 - 13 0.00279 - 21 0.00696 - 26 0.0306 - 28 0.0306 - 29 0.00696 - 30 0.00557 - 31 0.0153 - 32 0.00139 - 33 0.00418 - 40 0.298 - 41 0.127 - 42 0.0111 - 43 0.00139 - 45 0.00139 - - 2 11 5 0 - 7 0.364 - 8 0.0909 - 28 0.0909 - 40 0.0909 - 41 0.364 - - 4 13 6 0 - 7 0.231 - 8 0.385 - 13 0.0769 - 30 0.154 - 32 0.0769 - 42 0.0769 - - 21 114 13 0 - 2 0.0263 - 4 0.0263 - 7 0.289 - 8 0.325 - 12 0.00877 - 21 0.0351 - 26 0.0351 - 28 0.0439 - 30 0.0175 - 31 0.0263 - 33 0.0175 - 40 0.105 - 41 0.0439 - - 47 311 19 0 - 0 0.00322 - 2 0.0482 - 3 0.00322 - 4 0.0836 - 7 0.476 - 8 0.0161 - 12 0.00322 - 13 0.00322 - 21 0.00322 - 26 0.0482 - 28 0.0514 - 29 0.0161 - 31 0.0257 - 33 0.00322 - 40 0.109 - 41 0.09 - 42 0.00965 - 43 0.00322 - 45 0.00322 - - 55 266 9 0 - 0 0.00752 - 2 0.0226 - 4 0.00752 - 7 0.0827 - 8 0.0226 - 26 0.0113 - 40 0.628 - 41 0.203 - 42 0.015 - - 23 36 13 1 - 0 0.0278 - 4 0.0278 - 7 0.194 - 8 0.0278 - 12 0.0278 - 21 0.0278 - 26 0.0556 - 28 0.0556 - 31 0.389 - 32 0.0278 - 40 0.0556 - 41 0.0278 - 42 0.0556 - - 7 2 2 0 - 12 0.5 - 21 0.5 - - 24 95 19 2 - 0 0.0105 - 2 0.0105 - 3 0.0316 - 4 0.0421 - 7 0.232 - 8 0.0105 - 13 0.0211 - 14 0.0421 - 15 0.0105 - 20 0.0211 - 21 0.0421 - 26 0.0632 - 30 0.0316 - 39 0.0105 - 40 0.274 - 41 0.116 - 42 0.0105 - 46 0.0105 - 47 0.0105 - - 2 1 1 0 - 42 1 - - 8 1 1 0 - 0 1 - - 28 6 3 0 - 8 0.167 - 28 0.333 - 41 0.5 - - 29 1 1 0 - 42 1 - - 31 4 3 0 - 13 0.25 - 26 0.5 - 40 0.25 - - 37 3 2 0 - 4 0.333 - 41 0.667 - - 40 10 3 0 - 43 0.1 - 46 0.1 - 47 0.8 - - 41 32 10 2 - 2 0.219 - 3 0.0625 - 4 0.0312 - 7 0.219 - 8 0.0312 - 21 0.0625 - 26 0.0312 - 29 0.0625 - 31 0.0312 - 37 0.25 - - 21 2 1 0 - 29 1 - - 57 3 1 0 - 7 1 - - 42 3 3 0 - 2 0.333 - 7 0.333 - 22 0.333 - - 46 7 4 0 - 7 0.571 - 8 0.143 - 26 0.143 - 47 0.143 - - 47 19808 41 32 - 0 0.0693 - 1 0.00192 - 2 0.0136 - 3 0.00353 - 4 0.0311 - 5 0.00136 - 7 0.139 - 8 0.0218 - 9 0.00121 - 10 0.000101 - 12 0.0163 - 13 0.00777 - 14 0.00343 - 15 0.00631 - 16 0.000101 - 17 5.05e-05 - 19 0.0109 - 20 0.00157 - 21 0.0207 - 22 0.00151 - 23 0.000202 - 24 0.000202 - 26 0.0283 - 28 0.0426 - 29 0.0715 - 30 0.0323 - 31 0.0671 - 32 0.0242 - 33 0.0388 - 34 0.000303 - 35 0.00136 - 37 0.00323 - 39 0.000505 - 40 0.139 - 41 0.181 - 42 0.0104 - 43 0.000909 - 44 0.000606 - 45 0.00172 - 46 0.00242 - 47 0.00136 - - 2 21 10 0 - 0 0.0476 - 7 0.0476 - 8 0.0952 - 19 0.0476 - 21 0.0952 - 26 0.0476 - 28 0.0476 - 29 0.238 - 31 0.19 - 41 0.143 - - 3 20 7 0 - 2 0.05 - 7 0.1 - 14 0.05 - 15 0.05 - 26 0.05 - 40 0.35 - 41 0.35 - - 4 79 14 0 - 0 0.038 - 4 0.0127 - 7 0.19 - 8 0.038 - 14 0.0253 - 26 0.0127 - 28 0.0127 - 29 0.0127 - 30 0.0127 - 31 0.038 - 32 0.0506 - 40 0.354 - 41 0.19 - 42 0.0127 - - 5 2 2 0 - 0 0.5 - 35 0.5 - - 6 6 3 0 - 41 0.667 - 42 0.167 - 46 0.167 - - 7 377 27 0 - 0 0.0265 - 2 0.0371 - 3 0.00531 - 4 0.0398 - 5 0.00265 - 7 0.111 - 8 0.0371 - 12 0.00796 - 13 0.0159 - 14 0.0133 - 15 0.00531 - 19 0.0133 - 20 0.0106 - 21 0.0451 - 26 0.0292 - 28 0.0133 - 29 0.0477 - 30 0.0159 - 31 0.0663 - 32 0.00796 - 33 0.0133 - 35 0.00265 - 40 0.212 - 41 0.202 - 42 0.00531 - 45 0.00265 - 47 0.0106 - - 8 234 25 0 - 0 0.00427 - 2 0.0128 - 3 0.00427 - 4 0.0214 - 7 0.274 - 8 0.00427 - 9 0.00427 - 12 0.00427 - 13 0.047 - 14 0.0299 - 15 0.0342 - 19 0.00427 - 21 0.0128 - 26 0.0427 - 29 0.0128 - 30 0.00855 - 32 0.00427 - 35 0.00855 - 37 0.00427 - 40 0.171 - 41 0.252 - 42 0.0171 - 43 0.00855 - 46 0.00855 - 47 0.00427 - - 9 130 13 0 - 0 0.00769 - 2 0.0154 - 4 0.0308 - 7 0.508 - 8 0.0308 - 13 0.0538 - 14 0.0154 - 15 0.0308 - 21 0.00769 - 26 0.0462 - 33 0.00769 - 40 0.108 - 41 0.138 - - 10 129 21 0 - 0 0.0233 - 3 0.0388 - 4 0.194 - 5 0.0155 - 7 0.178 - 8 0.062 - 13 0.0543 - 15 0.0155 - 19 0.0465 - 20 0.00775 - 21 0.109 - 26 0.00775 - 28 0.0233 - 29 0.00775 - 30 0.0155 - 31 0.0233 - 33 0.00775 - 37 0.0155 - 40 0.031 - 41 0.109 - 42 0.0155 - - 11 6 1 0 - 41 1 - - 13 78 21 0 - 0 0.0256 - 2 0.0641 - 4 0.0385 - 7 0.269 - 8 0.0256 - 9 0.0128 - 13 0.0256 - 15 0.0128 - 19 0.0128 - 21 0.0256 - 26 0.0769 - 28 0.0128 - 29 0.0385 - 30 0.0128 - 31 0.0256 - 32 0.0128 - 33 0.0128 - 34 0.0128 - 40 0.154 - 41 0.115 - 42 0.0128 - - 14 2 1 0 - 2 1 - - 15 26 4 0 - 4 0.0385 - 15 0.0769 - 40 0.0385 - 41 0.846 - - 19 6 4 0 - 0 0.333 - 7 0.167 - 40 0.167 - 41 0.333 - - 21 15861 41 0 - 0 0.0829 - 1 0.0024 - 2 0.0109 - 3 0.00372 - 4 0.033 - 5 0.00139 - 7 0.134 - 8 0.0212 - 9 0.00132 - 10 0.000126 - 12 0.0197 - 13 0.00694 - 14 0.0029 - 15 0.00624 - 16 0.000126 - 17 6.3e-05 - 19 0.0122 - 20 0.00151 - 21 0.0221 - 22 0.00189 - 23 0.000252 - 24 0.000252 - 26 0.0281 - 28 0.0508 - 29 0.0859 - 30 0.039 - 31 0.0798 - 32 0.0294 - 33 0.0477 - 34 0.000126 - 35 0.00132 - 37 0.00347 - 39 0.000567 - 40 0.0816 - 41 0.174 - 42 0.00643 - 43 0.00063 - 44 0.000757 - 45 0.00189 - 46 0.00265 - 47 0.00063 - - 22 659 20 0 - 0 0.00455 - 2 0.0319 - 4 0.0212 - 7 0.284 - 8 0.0774 - 12 0.00303 - 13 0.00303 - 21 0.00759 - 26 0.0212 - 28 0.0334 - 29 0.00759 - 30 0.00607 - 31 0.0167 - 32 0.00152 - 33 0.00455 - 40 0.323 - 41 0.138 - 42 0.0121 - 43 0.00152 - 45 0.00152 - - 23 35 13 0 - 0 0.0286 - 4 0.0286 - 7 0.171 - 8 0.0286 - 12 0.0286 - 21 0.0286 - 26 0.0571 - 28 0.0571 - 31 0.4 - 32 0.0286 - 40 0.0571 - 41 0.0286 - 42 0.0571 - - 24 74 17 0 - 0 0.0135 - 2 0.0135 - 3 0.0135 - 4 0.0541 - 7 0.162 - 8 0.0135 - 13 0.027 - 14 0.0541 - 15 0.0135 - 20 0.027 - 21 0.0405 - 30 0.027 - 39 0.0135 - 40 0.351 - 41 0.149 - 42 0.0135 - 47 0.0135 - - 28 6 3 0 - 8 0.167 - 28 0.333 - 41 0.5 - - 29 1 1 0 - 42 1 - - 31 3 3 0 - 13 0.333 - 26 0.333 - 40 0.333 - - 37 3 2 0 - 4 0.333 - 41 0.667 - - 40 9 2 0 - 43 0.111 - 47 0.889 - - 41 5 4 0 - 7 0.2 - 26 0.2 - 29 0.4 - 31 0.2 - - 46 2 2 0 - 8 0.5 - 47 0.5 - - 49 42 5 0 - 7 0.119 - 12 0.0238 - 40 0.619 - 41 0.19 - 42 0.0476 - - 55 524 14 0 - 0 0.00573 - 2 0.0134 - 4 0.00763 - 7 0.143 - 13 0.00382 - 19 0.00191 - 21 0.00573 - 26 0.0687 - 29 0.00763 - 31 0.00191 - 40 0.458 - 41 0.191 - 42 0.0897 - 43 0.00191 - - 57 1267 29 0 - 0 0.0189 - 2 0.0316 - 3 0.00158 - 4 0.00947 - 5 0.00158 - 7 0.0805 - 8 0.00395 - 9 0.000789 - 12 0.00158 - 13 0.00316 - 15 0.00395 - 19 0.00395 - 21 0.00474 - 26 0.0166 - 29 0.00868 - 30 0.000789 - 31 0.000789 - 32 0.000789 - 33 0.000789 - 34 0.00237 - 35 0.000789 - 37 0.00474 - 40 0.514 - 41 0.257 - 42 0.0213 - 43 0.00158 - 45 0.00158 - 46 0.00158 - 47 0.00158 - - 58 3 2 0 - 30 0.333 - 40 0.667 - - 59 1 1 0 - 35 1 - - 62 30 5 0 - 0 0.0333 - 21 0.0333 - 40 0.7 - 41 0.133 - 42 0.1 - - 64 156 13 0 - 0 0.00641 - 2 0.00641 - 4 0.0128 - 7 0.00641 - 14 0.00641 - 19 0.00641 - 21 0.00641 - 26 0.0192 - 40 0.615 - 41 0.288 - 42 0.0128 - 43 0.00641 - 46 0.00641 - - 48 6 3 0 - 7 0.5 - 40 0.167 - 41 0.333 - - 49 384 14 4 - 2 0.0599 - 4 0.0234 - 7 0.695 - 8 0.00781 - 12 0.0026 - 14 0.0026 - 19 0.00521 - 21 0.0026 - 26 0.0104 - 37 0.00521 - 40 0.0703 - 41 0.0911 - 42 0.0182 - 46 0.00521 - - 2 27 5 0 - 7 0.111 - 12 0.037 - 40 0.556 - 41 0.259 - 42 0.037 - - 21 14 5 0 - 7 0.429 - 40 0.357 - 41 0.0714 - 42 0.0714 - 46 0.0714 - - 41 4 1 0 - 40 1 - - 47 327 12 0 - 2 0.0703 - 4 0.0275 - 7 0.771 - 8 0.00917 - 14 0.00306 - 19 0.00612 - 21 0.00306 - 26 0.0122 - 37 0.00612 - 41 0.0734 - 42 0.0153 - 46 0.00306 - - 55 740 14 5 - 0 0.00405 - 2 0.00946 - 4 0.00541 - 7 0.307 - 13 0.0027 - 19 0.00135 - 21 0.00541 - 26 0.132 - 29 0.00541 - 31 0.00135 - 40 0.324 - 41 0.136 - 42 0.0635 - 43 0.00135 - - 7 178 10 0 - 2 0.0112 - 7 0.275 - 13 0.0112 - 21 0.0112 - 26 0.0787 - 29 0.00562 - 31 0.00562 - 40 0.365 - 41 0.129 - 42 0.107 - - 21 514 10 0 - 2 0.00584 - 4 0.00778 - 7 0.323 - 21 0.00195 - 26 0.15 - 29 0.00195 - 40 0.321 - 41 0.132 - 42 0.0545 - 43 0.00195 - - 22 18 6 0 - 0 0.0556 - 7 0.222 - 26 0.111 - 29 0.111 - 40 0.222 - 41 0.278 - - 47 4 2 0 - 7 0.75 - 21 0.25 - - 49 10 6 0 - 0 0.2 - 2 0.1 - 7 0.1 - 19 0.1 - 26 0.2 - 41 0.3 - - 57 1294 29 10 - 0 0.0185 - 2 0.0309 - 3 0.00232 - 4 0.00927 - 5 0.00155 - 7 0.0927 - 8 0.00386 - 9 0.000773 - 12 0.00155 - 13 0.00309 - 15 0.00386 - 19 0.00386 - 21 0.00464 - 26 0.0185 - 29 0.0085 - 30 0.000773 - 31 0.000773 - 32 0.000773 - 33 0.000773 - 34 0.00232 - 35 0.000773 - 37 0.00464 - 40 0.503 - 41 0.254 - 42 0.0209 - 43 0.00232 - 45 0.00155 - 46 0.00155 - 47 0.00155 - - 7 133 14 0 - 0 0.0226 - 2 0.0226 - 3 0.00752 - 7 0.0602 - 8 0.015 - 12 0.00752 - 19 0.00752 - 26 0.0301 - 34 0.00752 - 40 0.466 - 41 0.323 - 42 0.015 - 43 0.00752 - 47 0.00752 - - 8 63 10 0 - 0 0.0159 - 2 0.0159 - 4 0.0159 - 7 0.127 - 13 0.0159 - 32 0.0159 - 33 0.0159 - 40 0.476 - 41 0.286 - 45 0.0159 - - 13 10 6 0 - 2 0.1 - 7 0.2 - 15 0.1 - 35 0.1 - 40 0.4 - 41 0.1 - - 21 614 22 0 - 0 0.0277 - 2 0.0326 - 3 0.00326 - 4 0.013 - 5 0.00163 - 7 0.0765 - 9 0.00163 - 12 0.00163 - 13 0.00326 - 15 0.00489 - 19 0.00651 - 21 0.00814 - 26 0.0212 - 29 0.013 - 30 0.00163 - 34 0.00326 - 37 0.00651 - 40 0.484 - 41 0.269 - 42 0.0163 - 45 0.00163 - 46 0.00326 - - 22 32 6 0 - 0 0.0625 - 7 0.188 - 29 0.0625 - 40 0.5 - 41 0.156 - 47 0.0312 - - 24 16 6 0 - 2 0.0625 - 7 0.188 - 8 0.0625 - 21 0.0625 - 40 0.25 - 41 0.375 - - 44 1 1 0 - 43 1 - - 49 164 12 0 - 2 0.0244 - 4 0.0122 - 7 0.183 - 8 0.0122 - 15 0.0061 - 26 0.0122 - 29 0.0061 - 37 0.0061 - 40 0.488 - 41 0.207 - 42 0.0366 - 43 0.0061 - - 55 215 9 0 - 0 0.00465 - 2 0.0465 - 5 0.00465 - 7 0.0605 - 26 0.0186 - 31 0.00465 - 40 0.6 - 41 0.223 - 42 0.0372 - - 57 20 6 0 - 7 0.05 - 13 0.05 - 37 0.05 - 40 0.65 - 41 0.15 - 42 0.05 - - 58 6 4 0 - 7 0.333 - 26 0.167 - 30 0.167 - 40 0.333 - - 59 1 1 0 - 35 1 - - 62 30 5 0 - 0 0.0333 - 21 0.0333 - 40 0.7 - 41 0.133 - 42 0.1 - - 64 159 13 2 - 0 0.00629 - 2 0.00629 - 4 0.0126 - 7 0.0126 - 14 0.00629 - 19 0.00629 - 21 0.00629 - 26 0.0189 - 40 0.61 - 41 0.289 - 42 0.0126 - 43 0.00629 - 46 0.00629 - - 21 35 6 0 - 4 0.0286 - 19 0.0286 - 21 0.0286 - 26 0.0286 - 40 0.486 - 41 0.4 - - 41 10 1 0 - 40 1 - -50 604 25 5 - 0 0.0364 - 1 0.00662 - 3 0.0166 - 4 0.212 - 7 0.166 - 8 0.113 - 9 0.00993 - 12 0.00993 - 13 0.0629 - 14 0.0662 - 15 0.0298 - 16 0.00662 - 20 0.0298 - 21 0.0298 - 22 0.00331 - 26 0.043 - 28 0.043 - 29 0.0132 - 30 0.0497 - 31 0.0232 - 32 0.00662 - 33 0.00993 - 35 0.00331 - 39 0.00331 - 45 0.00662 - - 7 209 21 0 - 0 0.00957 - 1 0.00957 - 3 0.0239 - 4 0.22 - 7 0.115 - 8 0.129 - 9 0.0144 - 13 0.0861 - 14 0.0766 - 15 0.0431 - 16 0.00478 - 20 0.0144 - 21 0.0335 - 26 0.0335 - 28 0.0622 - 30 0.0718 - 31 0.0287 - 32 0.00478 - 35 0.00478 - 39 0.00478 - 45 0.00957 - - 8 4 3 0 - 7 0.5 - 8 0.25 - 26 0.25 - - 21 83 15 3 - 0 0.108 - 4 0.181 - 7 0.289 - 8 0.0723 - 12 0.0361 - 14 0.0241 - 16 0.012 - 20 0.0723 - 21 0.0241 - 22 0.012 - 26 0.0602 - 29 0.0482 - 31 0.012 - 32 0.012 - 33 0.0361 - - 2 22 8 0 - 4 0.227 - 7 0.364 - 14 0.0909 - 20 0.0909 - 22 0.0455 - 26 0.0455 - 29 0.0909 - 31 0.0455 - - 7 11 5 0 - 4 0.364 - 7 0.0909 - 8 0.364 - 20 0.0909 - 21 0.0909 - - 21 50 12 0 - 0 0.18 - 4 0.12 - 7 0.3 - 8 0.04 - 12 0.06 - 16 0.02 - 20 0.06 - 21 0.02 - 26 0.08 - 29 0.04 - 32 0.02 - 33 0.06 - - 28 5 3 0 - 4 0.6 - 13 0.2 - 14 0.2 - - 47 302 25 4 - 0 0.0364 - 1 0.00662 - 3 0.0166 - 4 0.212 - 7 0.166 - 8 0.113 - 9 0.00993 - 12 0.00993 - 13 0.0629 - 14 0.0662 - 15 0.0298 - 16 0.00662 - 20 0.0298 - 21 0.0298 - 22 0.00331 - 26 0.043 - 28 0.043 - 29 0.0132 - 30 0.0497 - 31 0.0232 - 32 0.00662 - 33 0.00993 - 35 0.00331 - 39 0.00331 - 45 0.00662 - - 7 209 21 0 - 0 0.00957 - 1 0.00957 - 3 0.0239 - 4 0.22 - 7 0.115 - 8 0.129 - 9 0.0144 - 13 0.0861 - 14 0.0766 - 15 0.0431 - 16 0.00478 - 20 0.0144 - 21 0.0335 - 26 0.0335 - 28 0.0622 - 30 0.0718 - 31 0.0287 - 32 0.00478 - 35 0.00478 - 39 0.00478 - 45 0.00957 - - 8 4 3 0 - 7 0.5 - 8 0.25 - 26 0.25 - - 21 83 15 0 - 0 0.108 - 4 0.181 - 7 0.289 - 8 0.0723 - 12 0.0361 - 14 0.0241 - 16 0.012 - 20 0.0723 - 21 0.0241 - 22 0.012 - 26 0.0602 - 29 0.0482 - 31 0.012 - 32 0.012 - 33 0.0361 - - 28 5 3 0 - 4 0.6 - 13 0.2 - 14 0.2 - -51 1442 32 20 - 0 0.000693 - 2 0.00763 - 3 0.00139 - 4 0.0146 - 7 0.0444 - 8 0.00416 - 9 0.000693 - 12 0.000693 - 13 0.00347 - 14 0.00139 - 15 0.000693 - 19 0.00347 - 20 0.000693 - 21 0.0173 - 22 0.000693 - 26 0.00832 - 27 0.00208 - 28 0.00208 - 29 0.00277 - 30 0.00208 - 33 0.00139 - 34 0.000693 - 35 0.00139 - 37 0.00139 - 39 0.000693 - 40 0.279 - 41 0.164 - 42 0.025 - 43 0.0118 - 44 0.00139 - 46 0.0374 - 47 0.356 - - 2 42 15 1 - 3 0.0238 - 4 0.167 - 7 0.143 - 8 0.0238 - 9 0.0238 - 13 0.0238 - 14 0.0238 - 19 0.0238 - 21 0.333 - 26 0.0238 - 27 0.0238 - 28 0.0238 - 35 0.0476 - 37 0.0238 - 41 0.0714 - - 41 6 5 0 - 3 0.167 - 4 0.333 - 14 0.167 - 21 0.167 - 35 0.167 - - 4 2 2 0 - 27 0.5 - 41 0.5 - - 7 6 4 0 - 4 0.333 - 13 0.333 - 30 0.167 - 34 0.167 - - 21 42 15 5 - 3 0.0238 - 4 0.143 - 7 0.167 - 8 0.0476 - 13 0.0476 - 15 0.0238 - 19 0.0238 - 21 0.19 - 22 0.0238 - 26 0.0476 - 28 0.0476 - 37 0.0238 - 40 0.143 - 41 0.0238 - 42 0.0238 - - 2 9 4 0 - 7 0.333 - 15 0.111 - 21 0.444 - 41 0.111 - - 21 3 1 0 - 4 1 - - 47 19 10 0 - 3 0.0526 - 4 0.105 - 7 0.211 - 8 0.105 - 13 0.105 - 21 0.211 - 22 0.0526 - 26 0.0526 - 40 0.0526 - 42 0.0526 - - 49 3 2 0 - 26 0.333 - 40 0.667 - - 71 3 2 0 - 28 0.667 - 40 0.333 - - 40 210 3 0 - 43 0.00476 - 46 0.176 - 47 0.819 - - 41 31 12 2 - 2 0.0645 - 4 0.0323 - 7 0.548 - 14 0.0323 - 19 0.0323 - 20 0.0323 - 21 0.0323 - 27 0.0323 - 30 0.0645 - 39 0.0323 - 46 0.0645 - 47 0.0323 - - 51 4 3 0 - 2 0.5 - 19 0.25 - 39 0.25 - - 57 5 4 0 - 4 0.2 - 7 0.4 - 14 0.2 - 47 0.2 - - 42 16 4 0 - 7 0.125 - 8 0.0625 - 40 0.188 - 47 0.625 - - 46 38 4 0 - 7 0.0263 - 33 0.0263 - 43 0.0526 - 47 0.895 - - 47 495 14 13 - 2 0.00808 - 4 0.00202 - 7 0.00202 - 19 0.00202 - 26 0.00606 - 29 0.00404 - 33 0.00202 - 40 0.194 - 41 0.208 - 42 0.0202 - 43 0.0141 - 44 0.00202 - 46 0.0162 - 47 0.519 - - 21 5 3 0 - 19 0.2 - 40 0.6 - 41 0.2 - - 40 174 2 0 - 46 0.0115 - 47 0.989 - - 42 10 1 0 - 47 1 - - 46 36 3 0 - 33 0.0278 - 43 0.0278 - 47 0.944 - - 48 32 9 0 - 2 0.0312 - 7 0.0312 - 26 0.0625 - 40 0.188 - 41 0.531 - 42 0.0312 - 43 0.0625 - 46 0.0312 - 47 0.0312 - - 49 26 4 0 - 40 0.385 - 41 0.5 - 43 0.0769 - 47 0.0385 - - 51 4 1 0 - 40 1 - - 55 86 7 0 - 2 0.0116 - 29 0.0233 - 40 0.267 - 41 0.465 - 42 0.0465 - 46 0.0233 - 47 0.163 - - 57 51 6 0 - 26 0.0196 - 40 0.471 - 41 0.196 - 42 0.0588 - 43 0.0196 - 47 0.235 - - 62 13 4 0 - 40 0.385 - 41 0.462 - 46 0.0769 - 47 0.0769 - - 64 11 4 0 - 2 0.0909 - 40 0.455 - 41 0.0909 - 47 0.364 - - 69 17 5 0 - 4 0.0588 - 40 0.471 - 41 0.353 - 46 0.0588 - 47 0.0588 - - 71 9 6 0 - 2 0.111 - 40 0.333 - 41 0.222 - 43 0.111 - 44 0.111 - 47 0.111 - - 48 39 9 0 - 2 0.0256 - 7 0.0256 - 26 0.0513 - 40 0.308 - 41 0.436 - 42 0.0513 - 43 0.0513 - 46 0.0256 - 47 0.0256 - - 49 53 10 2 - 4 0.0377 - 7 0.132 - 8 0.0189 - 12 0.0189 - 21 0.0189 - 40 0.377 - 41 0.321 - 42 0.0189 - 43 0.0377 - 47 0.0189 - - 2 10 6 0 - 4 0.2 - 7 0.3 - 12 0.1 - 21 0.1 - 40 0.2 - 41 0.1 - - 47 21 5 0 - 7 0.0476 - 40 0.429 - 41 0.429 - 42 0.0476 - 47 0.0476 - - 51 16 5 1 - 2 0.0625 - 40 0.562 - 41 0.25 - 42 0.0625 - 46 0.0625 - - 47 5 3 0 - 2 0.2 - 41 0.6 - 42 0.2 - - 52 8 3 0 - 19 0.125 - 40 0.5 - 41 0.375 - - 55 193 13 8 - 0 0.00518 - 2 0.00518 - 7 0.0518 - 8 0.00518 - 21 0.00518 - 26 0.0155 - 29 0.0104 - 40 0.487 - 41 0.259 - 42 0.0622 - 43 0.00518 - 46 0.0155 - 47 0.0725 - - 2 9 3 0 - 0 0.111 - 40 0.778 - 41 0.111 - - 41 21 4 0 - 40 0.714 - 41 0.19 - 42 0.0476 - 46 0.0476 - - 42 17 5 0 - 40 0.706 - 41 0.0588 - 43 0.0588 - 46 0.0588 - 47 0.118 - - 45 17 2 0 - 40 0.941 - 42 0.0588 - - 47 77 9 0 - 7 0.104 - 21 0.013 - 26 0.039 - 29 0.026 - 40 0.221 - 41 0.429 - 42 0.039 - 46 0.013 - 47 0.117 - - 48 1 1 0 - 8 1 - - 52 1 1 0 - 2 1 - - 57 9 3 0 - 40 0.222 - 41 0.111 - 42 0.667 - - 57 89 8 3 - 4 0.0112 - 7 0.0562 - 26 0.0112 - 40 0.551 - 41 0.169 - 42 0.0562 - 43 0.0112 - 47 0.135 - - 47 26 5 0 - 26 0.0385 - 40 0.385 - 41 0.115 - 42 0.0385 - 47 0.423 - - 49 7 2 0 - 4 0.143 - 40 0.857 - - 55 15 4 0 - 7 0.2 - 40 0.467 - 41 0.267 - 43 0.0667 - - 62 54 5 1 - 40 0.815 - 41 0.111 - 42 0.037 - 46 0.0185 - 47 0.0185 - - 47 8 3 0 - 40 0.25 - 41 0.625 - 46 0.125 - - 64 40 4 0 - 2 0.025 - 40 0.8 - 41 0.075 - 47 0.1 - - 69 31 5 0 - 4 0.0323 - 40 0.71 - 41 0.194 - 46 0.0323 - 47 0.0323 - - 71 11 7 0 - 2 0.0909 - 7 0.0909 - 40 0.364 - 41 0.182 - 43 0.0909 - 44 0.0909 - 47 0.0909 - - 72 6 3 0 - 7 0.667 - 40 0.167 - 41 0.167 - -52 275 19 11 - 0 0.00727 - 2 0.0109 - 4 0.00727 - 7 0.0145 - 13 0.00727 - 19 0.0145 - 20 0.00727 - 21 0.00727 - 26 0.04 - 27 0.0109 - 28 0.0291 - 37 0.00727 - 40 0.142 - 41 0.52 - 42 0.00364 - 43 0.0291 - 45 0.00364 - 46 0.0364 - 47 0.102 - - 2 1 1 0 - 45 1 - - 13 5 2 0 - 40 0.8 - 46 0.2 - - 15 2 2 0 - 41 0.5 - 42 0.5 - - 21 18 5 0 - 4 0.0556 - 21 0.0556 - 37 0.0556 - 40 0.0556 - 41 0.778 - - 27 80 9 1 - 13 0.0125 - 19 0.0125 - 26 0.075 - 27 0.0125 - 28 0.025 - 40 0.225 - 41 0.538 - 43 0.0375 - 46 0.0625 - - 45 2 1 0 - 46 1 - - 28 11 4 0 - 0 0.0909 - 20 0.0909 - 28 0.182 - 41 0.636 - - 40 13 1 0 - 47 1 - - 41 1 1 0 - 27 1 - - 46 2 2 0 - 2 0.5 - 7 0.5 - - 47 127 17 7 - 0 0.00787 - 2 0.00787 - 4 0.00787 - 7 0.0157 - 13 0.00787 - 19 0.0157 - 20 0.00787 - 21 0.00787 - 26 0.0394 - 27 0.00787 - 28 0.0315 - 37 0.00787 - 40 0.102 - 41 0.559 - 43 0.0315 - 46 0.0315 - 47 0.11 - - 13 2 2 0 - 40 0.5 - 46 0.5 - - 21 17 4 0 - 4 0.0588 - 21 0.0588 - 37 0.0588 - 41 0.824 - - 27 70 9 0 - 13 0.0143 - 19 0.0143 - 26 0.0714 - 27 0.0143 - 28 0.0286 - 40 0.157 - 41 0.614 - 43 0.0429 - 46 0.0429 - - 28 11 4 0 - 0 0.0909 - 20 0.0909 - 28 0.182 - 41 0.636 - - 40 13 1 0 - 47 1 - - 46 2 2 0 - 2 0.5 - 7 0.5 - - 52 2 2 0 - 7 0.5 - 43 0.5 - - 52 4 4 0 - 2 0.25 - 7 0.25 - 41 0.25 - 43 0.25 - -53 99 14 6 - 4 0.0606 - 7 0.0808 - 8 0.0606 - 14 0.0202 - 15 0.0404 - 19 0.0404 - 21 0.0202 - 28 0.141 - 31 0.0202 - 37 0.0202 - 40 0.121 - 41 0.101 - 42 0.101 - 43 0.172 - - 8 3 1 0 - 41 1 - - 11 30 4 0 - 40 0.4 - 41 0.0667 - 42 0.167 - 43 0.367 - - 40 12 4 0 - 7 0.25 - 21 0.0833 - 28 0.583 - 37 0.0833 - - 42 2 1 0 - 15 1 - - 43 11 6 0 - 4 0.273 - 7 0.0909 - 8 0.273 - 14 0.0909 - 19 0.182 - 31 0.0909 - - 47 38 13 5 - 4 0.0789 - 7 0.105 - 8 0.0789 - 14 0.0263 - 15 0.0526 - 19 0.0526 - 21 0.0263 - 28 0.184 - 31 0.0263 - 37 0.0263 - 41 0.132 - 42 0.132 - 43 0.0789 - - 8 3 1 0 - 41 1 - - 11 10 3 0 - 41 0.2 - 42 0.5 - 43 0.3 - - 40 12 4 0 - 7 0.25 - 21 0.0833 - 28 0.583 - 37 0.0833 - - 42 2 1 0 - 15 1 - - 43 11 6 0 - 4 0.273 - 7 0.0909 - 8 0.273 - 14 0.0909 - 19 0.182 - 31 0.0909 - -54 1254 23 14 - 0 0.00159 - 2 0.00478 - 3 0.0271 - 4 0.00399 - 6 0.00159 - 7 0.112 - 8 0.0478 - 13 0.386 - 14 0.0447 - 15 0.121 - 18 0.00478 - 26 0.00638 - 29 0.00159 - 30 0.00319 - 31 0.00159 - 34 0.000797 - 40 0.00558 - 41 0.203 - 42 0.00159 - 43 0.00319 - 44 0.00239 - 45 0.00159 - 46 0.0136 - - 3 35 5 1 - 7 0.0286 - 13 0.257 - 15 0.0571 - 41 0.629 - 45 0.0286 - - 41 11 1 0 - 41 1 - - 4 4 1 0 - 8 1 - - 8 6 3 0 - 7 0.167 - 13 0.667 - 42 0.167 - - 13 18 4 0 - 7 0.722 - 26 0.167 - 40 0.0556 - 46 0.0556 - - 14 2 2 0 - 2 0.5 - 34 0.5 - - 15 371 10 3 - 3 0.062 - 4 0.0108 - 6 0.00539 - 7 0.299 - 8 0.0027 - 13 0.0108 - 26 0.0135 - 40 0.0027 - 41 0.59 - 43 0.0027 - - 15 29 4 0 - 7 0.897 - 13 0.0345 - 26 0.0345 - 41 0.0345 - - 41 232 4 0 - 3 0.0431 - 8 0.00431 - 13 0.0129 - 41 0.94 - - 47 105 7 0 - 3 0.124 - 4 0.0381 - 6 0.019 - 7 0.762 - 26 0.0381 - 40 0.00952 - 43 0.00952 - - 16 4 1 0 - 7 1 - - 40 1 1 0 - 43 1 - - 41 237 7 3 - 2 0.00844 - 3 0.0464 - 8 0.097 - 13 0.751 - 14 0.0717 - 15 0.0169 - 30 0.00844 - - 3 22 2 0 - 3 0.5 - 13 0.5 - - 15 213 6 0 - 2 0.00469 - 8 0.108 - 13 0.779 - 14 0.0798 - 15 0.0188 - 30 0.00939 - - 54 1 1 0 - 2 1 - - 47 411 18 8 - 0 0.00243 - 2 0.00487 - 7 0.0073 - 8 0.0681 - 13 0.589 - 14 0.0681 - 15 0.182 - 18 0.0073 - 29 0.00243 - 30 0.00487 - 31 0.00243 - 40 0.0073 - 41 0.0219 - 42 0.00243 - 43 0.00487 - 44 0.00243 - 45 0.00243 - 46 0.0195 - - 3 12 3 0 - 13 0.75 - 15 0.167 - 45 0.0833 - - 8 5 2 0 - 13 0.8 - 42 0.2 - - 13 1 1 0 - 40 1 - - 14 1 1 0 - 2 1 - - 15 15 5 0 - 7 0.2 - 8 0.0667 - 13 0.267 - 41 0.4 - 43 0.0667 - - 40 1 1 0 - 43 1 - - 41 225 6 0 - 2 0.00444 - 8 0.102 - 13 0.791 - 14 0.0756 - 15 0.0178 - 30 0.00889 - - 57 143 12 0 - 0 0.00699 - 8 0.021 - 13 0.294 - 14 0.0769 - 15 0.476 - 18 0.021 - 29 0.00699 - 31 0.00699 - 40 0.014 - 41 0.021 - 44 0.00699 - 46 0.049 - - 54 7 5 0 - 2 0.143 - 7 0.429 - 13 0.143 - 41 0.143 - 44 0.143 - - 55 8 5 0 - 4 0.125 - 7 0.375 - 13 0.25 - 15 0.125 - 41 0.125 - - 57 145 13 2 - 0 0.0069 - 7 0.0069 - 8 0.0207 - 13 0.29 - 14 0.0759 - 15 0.476 - 18 0.0207 - 29 0.0069 - 31 0.0069 - 40 0.0138 - 41 0.0207 - 44 0.0069 - 46 0.0483 - - 13 16 6 0 - 8 0.0625 - 13 0.312 - 14 0.0625 - 15 0.25 - 41 0.0625 - 46 0.25 - - 55 3 3 0 - 7 0.333 - 8 0.333 - 46 0.333 - - 64 1 1 0 - 46 1 - -55 743201 48 64 - 0 0.0725 - 1 0.000324 - 2 0.0381 - 3 0.0109 - 4 0.0192 - 5 9.28e-05 - 6 8.48e-05 - 7 0.218 - 8 0.0157 - 9 0.00101 - 10 0.000679 - 11 2.69e-06 - 12 0.0255 - 13 0.0155 - 14 0.00484 - 15 0.0115 - 16 0.000159 - 17 3.5e-05 - 18 0.000148 - 19 0.00383 - 20 0.000667 - 21 0.0224 - 22 0.00163 - 23 0.000167 - 24 0.000495 - 25 3.23e-05 - 26 0.0314 - 27 2.69e-06 - 28 0.00194 - 29 0.0528 - 30 0.00873 - 31 0.013 - 32 0.0128 - 33 0.0187 - 34 0.0103 - 35 0.00461 - 36 0.000354 - 37 0.00247 - 38 2.96e-05 - 39 0.00155 - 40 0.175 - 41 0.167 - 42 0.0181 - 43 0.00332 - 44 0.00367 - 45 0.00252 - 46 0.00333 - 47 0.00429 - - 0 57 13 3 - 0 0.0175 - 7 0.123 - 8 0.0877 - 13 0.0351 - 15 0.0175 - 21 0.246 - 23 0.175 - 29 0.105 - 30 0.0877 - 31 0.0526 - 41 0.0175 - 43 0.0175 - 45 0.0175 - - 13 25 7 0 - 7 0.08 - 8 0.16 - 13 0.04 - 21 0.2 - 23 0.4 - 30 0.08 - 45 0.04 - - 15 26 9 0 - 7 0.154 - 8 0.0385 - 13 0.0385 - 15 0.0385 - 21 0.346 - 29 0.231 - 30 0.0385 - 31 0.0769 - 41 0.0385 - - 19 3 3 0 - 0 0.333 - 7 0.333 - 30 0.333 - - 1 3 2 0 - 26 0.333 - 40 0.667 - - 2 6940 35 14 - 0 0.000144 - 2 0.000144 - 3 0.104 - 4 0.195 - 6 0.000144 - 7 0.0062 - 8 0.168 - 9 0.0107 - 10 0.00072 - 13 0.114 - 14 0.0501 - 15 0.186 - 16 0.00202 - 17 0.00101 - 19 0.00187 - 20 0.0399 - 21 0.0278 - 22 0.000576 - 23 0.000144 - 26 0.000432 - 28 0.000865 - 29 0.000576 - 30 0.0098 - 31 0.00548 - 33 0.00101 - 34 0.000144 - 35 0.00115 - 36 0.000144 - 37 0.000432 - 38 0.000288 - 39 0.0588 - 41 0.00346 - 42 0.000432 - 44 0.000576 - 45 0.00749 - - 3 18 3 0 - 3 0.889 - 7 0.0556 - 21 0.0556 - - 13 15 7 0 - 3 0.133 - 4 0.0667 - 8 0.2 - 21 0.267 - 28 0.133 - 30 0.133 - 33 0.0667 - - 14 6 2 0 - 30 0.167 - 33 0.833 - - 15 3 2 0 - 15 0.667 - 21 0.333 - - 41 1384 25 0 - 3 0.318 - 4 0.103 - 7 0.0224 - 8 0.0412 - 9 0.00939 - 10 0.00145 - 13 0.0549 - 14 0.0253 - 15 0.091 - 16 0.000723 - 19 0.000723 - 20 0.0065 - 21 0.0571 - 22 0.00145 - 23 0.000723 - 26 0.000723 - 28 0.000723 - 29 0.000723 - 30 0.00361 - 31 0.00289 - 34 0.000723 - 35 0.00217 - 39 0.249 - 41 0.00145 - 45 0.00434 - - 42 77 15 0 - 3 0.0649 - 4 0.156 - 8 0.0779 - 9 0.026 - 13 0.0649 - 14 0.0519 - 15 0.286 - 17 0.013 - 21 0.117 - 28 0.013 - 36 0.013 - 39 0.0519 - 41 0.039 - 44 0.013 - 45 0.013 - - 45 5 3 0 - 4 0.6 - 14 0.2 - 20 0.2 - - 46 35 7 0 - 4 0.143 - 8 0.143 - 13 0.0571 - 21 0.0286 - 22 0.0286 - 31 0.0286 - 45 0.571 - - 47 1 1 0 - 0 1 - - 55 5370 31 0 - 2 0.000186 - 3 0.0477 - 4 0.221 - 6 0.000186 - 7 0.00186 - 8 0.204 - 9 0.011 - 10 0.000559 - 13 0.131 - 14 0.0572 - 15 0.212 - 16 0.00242 - 17 0.00112 - 19 0.00223 - 20 0.0497 - 21 0.0177 - 22 0.000186 - 26 0.000372 - 28 0.000372 - 29 0.000559 - 30 0.0101 - 31 0.00615 - 33 0.000186 - 35 0.000931 - 37 0.000186 - 38 0.000372 - 39 0.0112 - 41 0.00354 - 42 0.000559 - 44 0.000559 - 45 0.00447 - - 57 4 3 0 - 7 0.25 - 13 0.5 - 21 0.25 - - 58 6 6 0 - 4 0.167 - 8 0.167 - 15 0.167 - 21 0.167 - 30 0.167 - 45 0.167 - - 62 6 2 0 - 4 0.167 - 30 0.833 - - 64 3 2 0 - 4 0.333 - 37 0.667 - - 3 8212 38 21 - 0 0.0178 - 2 0.0314 - 3 0.00499 - 4 0.0933 - 6 0.000122 - 7 0.167 - 8 0.00402 - 9 0.00244 - 10 0.000365 - 12 0.00706 - 13 0.00426 - 14 0.00146 - 15 0.00402 - 19 0.00231 - 20 0.000244 - 21 0.0108 - 22 0.000487 - 23 0.000122 - 25 0.000122 - 26 0.0899 - 28 0.000122 - 29 0.0141 - 30 0.00329 - 31 0.00548 - 32 0.0011 - 33 0.00329 - 34 0.00256 - 35 0.000852 - 37 0.00317 - 39 0.000122 - 40 0.2 - 41 0.278 - 42 0.0226 - 43 0.0167 - 44 0.0017 - 45 0.00134 - 46 0.000974 - 47 0.00195 - - 2 92 17 0 - 0 0.0326 - 2 0.0326 - 4 0.0109 - 7 0.0652 - 8 0.0109 - 12 0.0109 - 21 0.0109 - 26 0.0109 - 31 0.0109 - 33 0.0109 - 34 0.0109 - 40 0.304 - 41 0.391 - 42 0.0217 - 43 0.0217 - 44 0.0217 - 45 0.0217 - - 3 254 17 0 - 0 0.00787 - 2 0.0197 - 4 0.0276 - 7 0.217 - 8 0.00394 - 9 0.00394 - 12 0.0118 - 13 0.00787 - 14 0.00394 - 15 0.0354 - 26 0.287 - 32 0.00394 - 40 0.201 - 41 0.126 - 42 0.0236 - 43 0.0118 - 47 0.00787 - - 4 159 24 0 - 0 0.164 - 2 0.0377 - 4 0.00629 - 7 0.195 - 8 0.00629 - 10 0.0126 - 12 0.044 - 13 0.0126 - 14 0.00629 - 15 0.00629 - 19 0.00629 - 21 0.044 - 23 0.00629 - 26 0.0252 - 29 0.0314 - 31 0.0189 - 32 0.00629 - 33 0.00629 - 34 0.0126 - 35 0.0126 - 40 0.164 - 41 0.151 - 42 0.0126 - 45 0.0126 - - 7 12 7 0 - 3 0.0833 - 4 0.25 - 7 0.25 - 14 0.0833 - 21 0.0833 - 40 0.0833 - 41 0.167 - - 8 155 14 0 - 0 0.071 - 2 0.0516 - 7 0.116 - 12 0.00645 - 14 0.00645 - 19 0.0129 - 26 0.0323 - 31 0.0194 - 33 0.00645 - 34 0.00645 - 40 0.374 - 41 0.252 - 42 0.0387 - 47 0.00645 - - 9 3 2 0 - 33 0.667 - 34 0.333 - - 10 1 1 0 - 8 1 - - 13 164 20 0 - 0 0.0366 - 2 0.0549 - 4 0.0061 - 7 0.171 - 8 0.0061 - 12 0.0061 - 13 0.0061 - 14 0.0122 - 19 0.0061 - 26 0.0305 - 29 0.0061 - 30 0.0061 - 32 0.0122 - 33 0.0427 - 34 0.0061 - 40 0.14 - 41 0.378 - 42 0.0488 - 43 0.0122 - 46 0.0122 - - 14 12 7 0 - 2 0.167 - 3 0.167 - 7 0.0833 - 26 0.0833 - 30 0.0833 - 40 0.167 - 41 0.25 - - 15 1421 30 0 - 0 0.019 - 2 0.0394 - 3 0.000704 - 4 0.00281 - 7 0.0739 - 8 0.00141 - 9 0.000704 - 12 0.00563 - 13 0.00141 - 15 0.00422 - 19 0.00141 - 20 0.00141 - 21 0.00281 - 26 0.0387 - 28 0.000704 - 29 0.031 - 30 0.00211 - 31 0.00493 - 32 0.000704 - 33 0.00211 - 34 0.000704 - 37 0.00352 - 39 0.000704 - 40 0.251 - 41 0.481 - 42 0.00844 - 43 0.0169 - 44 0.00141 - 45 0.000704 - 47 0.000704 - - 20 1 1 0 - 30 1 - - 21 31 11 0 - 0 0.0323 - 2 0.0323 - 4 0.0323 - 7 0.484 - 14 0.0323 - 21 0.0323 - 26 0.0323 - 29 0.0645 - 37 0.0645 - 40 0.0968 - 41 0.0968 - - 29 1 1 0 - 14 1 - - 31 2 2 0 - 0 0.5 - 26 0.5 - - 38 13 6 0 - 4 0.0769 - 7 0.0769 - 40 0.231 - 41 0.154 - 42 0.0769 - 44 0.385 - - 39 1781 28 0 - 0 0.000561 - 2 0.0247 - 3 0.0202 - 4 0.396 - 6 0.000561 - 7 0.14 - 8 0.0101 - 9 0.000561 - 12 0.000561 - 13 0.0112 - 15 0.00225 - 19 0.00168 - 21 0.00786 - 22 0.00112 - 26 0.0415 - 29 0.000561 - 30 0.00168 - 31 0.00786 - 33 0.000561 - 34 0.00225 - 35 0.000561 - 37 0.00112 - 40 0.12 - 41 0.149 - 42 0.0118 - 43 0.0444 - 44 0.00112 - 47 0.000561 - - 41 320 10 0 - 2 0.025 - 7 0.00313 - 13 0.00313 - 25 0.00313 - 31 0.00313 - 40 0.172 - 41 0.669 - 42 0.0719 - 43 0.0188 - 47 0.0312 - - 45 3 1 0 - 46 1 - - 47 3753 32 0 - 0 0.0181 - 2 0.0306 - 3 0.000266 - 4 0.0107 - 7 0.227 - 8 0.00213 - 9 0.00453 - 10 0.000266 - 12 0.00959 - 13 0.00187 - 14 0.000799 - 15 0.00346 - 19 0.00266 - 21 0.016 - 22 0.000533 - 26 0.137 - 29 0.0168 - 30 0.0048 - 31 0.00426 - 32 0.00107 - 33 0.00293 - 34 0.00266 - 35 0.00107 - 37 0.00453 - 40 0.217 - 41 0.242 - 42 0.028 - 43 0.00533 - 44 0.000799 - 45 0.00133 - 46 0.000799 - 47 0.000266 - - 55 8 4 0 - 14 0.125 - 40 0.375 - 41 0.375 - 45 0.125 - - 60 6 5 0 - 2 0.167 - 21 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 4 2568 37 12 - 0 0.247 - 1 0.000779 - 2 0.00857 - 3 0.00273 - 4 0.00584 - 7 0.274 - 8 0.00935 - 9 0.000389 - 10 0.000389 - 12 0.0666 - 13 0.00701 - 14 0.00117 - 15 0.00156 - 18 0.000779 - 19 0.00857 - 21 0.0238 - 22 0.000389 - 24 0.00195 - 26 0.00701 - 28 0.00389 - 29 0.0269 - 30 0.00701 - 31 0.0245 - 32 0.0218 - 33 0.0592 - 34 0.00584 - 35 0.0253 - 37 0.000389 - 38 0.000779 - 39 0.0343 - 40 0.0401 - 41 0.0666 - 42 0.0101 - 44 0.00117 - 45 0.00117 - 46 0.00117 - 47 0.00195 - - 2 6 1 0 - 7 1 - - 3 4 2 0 - 7 0.5 - 41 0.5 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 12 0.111 - 33 0.222 - 35 0.111 - 41 0.333 - - 7 1 1 0 - 19 1 - - 8 9 4 0 - 7 0.556 - 12 0.111 - 26 0.111 - 29 0.222 - - 13 3 2 0 - 4 0.333 - 7 0.667 - - 15 3 2 0 - 8 0.667 - 42 0.333 - - 17 25 10 0 - 0 0.24 - 2 0.04 - 7 0.08 - 29 0.04 - 30 0.04 - 31 0.04 - 33 0.12 - 35 0.04 - 40 0.12 - 41 0.24 - - 19 8 7 0 - 12 0.125 - 24 0.125 - 29 0.25 - 32 0.125 - 33 0.125 - 40 0.125 - 41 0.125 - - 21 42 9 0 - 0 0.0476 - 7 0.571 - 29 0.0238 - 31 0.0714 - 35 0.0238 - 40 0.143 - 41 0.0238 - 42 0.0714 - 46 0.0238 - - 28 1 1 0 - 8 1 - - 60 3 3 0 - 7 0.333 - 38 0.333 - 40 0.333 - - 5 861 10 0 - 0 0.861 - 4 0.00232 - 12 0.0848 - 18 0.0128 - 19 0.00116 - 21 0.0244 - 26 0.00116 - 33 0.00697 - 35 0.00116 - 41 0.00465 - - 6 75 17 7 - 0 0.0533 - 2 0.0267 - 6 0.107 - 7 0.08 - 8 0.0133 - 12 0.0267 - 26 0.0533 - 31 0.0133 - 33 0.0533 - 39 0.0133 - 40 0.24 - 41 0.173 - 42 0.0267 - 43 0.0133 - 44 0.0267 - 45 0.0133 - 46 0.0667 - - 4 8 5 0 - 7 0.125 - 33 0.5 - 40 0.125 - 41 0.125 - 45 0.125 - - 6 17 6 0 - 6 0.176 - 7 0.235 - 40 0.118 - 41 0.235 - 43 0.0588 - 46 0.176 - - 8 5 4 0 - 0 0.2 - 6 0.4 - 26 0.2 - 44 0.2 - - 41 5 4 0 - 39 0.2 - 40 0.2 - 41 0.2 - 42 0.4 - - 43 1 1 0 - 8 1 - - 45 4 3 0 - 6 0.5 - 40 0.25 - 46 0.25 - - 47 31 9 0 - 0 0.0645 - 2 0.0645 - 12 0.0645 - 26 0.0968 - 31 0.0323 - 40 0.419 - 41 0.194 - 44 0.0323 - 46 0.0323 - - 7 103 24 7 - 0 0.117 - 2 0.00971 - 3 0.0194 - 4 0.117 - 5 0.00971 - 7 0.175 - 8 0.0291 - 12 0.0291 - 13 0.0583 - 14 0.00971 - 15 0.0194 - 18 0.0194 - 19 0.0291 - 21 0.0291 - 22 0.00971 - 24 0.00971 - 26 0.0194 - 29 0.00971 - 31 0.0485 - 33 0.0291 - 39 0.0194 - 40 0.0874 - 41 0.0874 - 47 0.00971 - - 8 2 2 0 - 7 0.5 - 15 0.5 - - 13 8 6 0 - 7 0.125 - 26 0.125 - 33 0.125 - 40 0.375 - 41 0.125 - 47 0.125 - - 21 9 4 0 - 4 0.444 - 8 0.222 - 13 0.222 - 14 0.111 - - 41 2 2 0 - 13 0.5 - 21 0.5 - - 47 62 20 0 - 0 0.177 - 2 0.0161 - 4 0.0484 - 5 0.0161 - 7 0.177 - 8 0.0161 - 12 0.0484 - 15 0.0161 - 18 0.0323 - 19 0.0484 - 21 0.0161 - 22 0.0161 - 24 0.0161 - 26 0.0161 - 29 0.0161 - 31 0.0806 - 33 0.0323 - 39 0.0323 - 40 0.0484 - 41 0.129 - - 55 10 4 0 - 3 0.1 - 4 0.5 - 13 0.3 - 40 0.1 - - 60 4 1 0 - 7 1 - - 8 1338 39 20 - 0 0.059 - 1 0.000747 - 2 0.0329 - 3 0.00673 - 4 0.0112 - 6 0.00374 - 7 0.361 - 8 0.00897 - 9 0.00747 - 10 0.00224 - 12 0.0112 - 13 0.0142 - 14 0.00673 - 15 0.00598 - 19 0.00299 - 21 0.0172 - 22 0.00299 - 24 0.000747 - 26 0.0471 - 27 0.000747 - 28 0.00374 - 29 0.0262 - 30 0.0172 - 31 0.00523 - 32 0.0105 - 33 0.00972 - 34 0.00224 - 35 0.00299 - 37 0.000747 - 38 0.00149 - 39 0.0493 - 40 0.116 - 41 0.116 - 42 0.0179 - 43 0.00448 - 44 0.00448 - 45 0.00374 - 46 0.00374 - 47 0.000747 - - 2 12 5 0 - 0 0.0833 - 7 0.25 - 14 0.167 - 40 0.333 - 41 0.167 - - 3 4 3 0 - 2 0.25 - 9 0.5 - 40 0.25 - - 4 482 34 0 - 0 0.0622 - 2 0.0456 - 3 0.0124 - 4 0.0187 - 6 0.00207 - 7 0.255 - 8 0.0104 - 9 0.0083 - 10 0.00622 - 12 0.0124 - 13 0.0104 - 14 0.00415 - 15 0.00415 - 19 0.00415 - 21 0.0187 - 22 0.00415 - 24 0.00207 - 26 0.0539 - 27 0.00207 - 28 0.00622 - 29 0.0104 - 30 0.0166 - 32 0.00622 - 33 0.0166 - 34 0.00207 - 35 0.00415 - 37 0.00207 - 38 0.00415 - 39 0.135 - 40 0.133 - 41 0.0996 - 42 0.0207 - 44 0.00207 - 45 0.00415 - - 7 4 4 0 - 7 0.25 - 12 0.25 - 21 0.25 - 26 0.25 - - 8 31 13 0 - 1 0.0323 - 7 0.226 - 14 0.0323 - 15 0.0323 - 21 0.0323 - 22 0.0323 - 26 0.0323 - 29 0.0645 - 33 0.0645 - 35 0.0323 - 40 0.161 - 41 0.226 - 44 0.0323 - - 13 49 12 0 - 0 0.0816 - 2 0.0408 - 4 0.0204 - 7 0.327 - 12 0.0612 - 14 0.0204 - 29 0.0204 - 30 0.0204 - 40 0.163 - 41 0.204 - 42 0.0204 - 46 0.0204 - - 14 11 5 0 - 2 0.0909 - 7 0.364 - 40 0.182 - 41 0.273 - 42 0.0909 - - 15 12 7 0 - 2 0.0833 - 7 0.25 - 22 0.0833 - 26 0.0833 - 29 0.333 - 40 0.0833 - 42 0.0833 - - 20 57 10 0 - 2 0.0526 - 7 0.14 - 13 0.0351 - 15 0.0175 - 21 0.0351 - 26 0.0351 - 29 0.0175 - 33 0.0175 - 40 0.368 - 41 0.281 - - 21 63 11 0 - 0 0.0635 - 2 0.0159 - 7 0.603 - 19 0.0159 - 21 0.0159 - 26 0.111 - 32 0.0159 - 40 0.0794 - 41 0.0476 - 44 0.0159 - 46 0.0159 - - 22 2 2 0 - 28 0.5 - 40 0.5 - - 23 10 4 0 - 0 0.1 - 7 0.5 - 40 0.3 - 46 0.1 - - 30 2 2 0 - 13 0.5 - 41 0.5 - - 42 2 2 0 - 14 0.5 - 26 0.5 - - 45 2 2 0 - 19 0.5 - 46 0.5 - - 47 537 30 0 - 0 0.0689 - 2 0.0149 - 3 0.00186 - 4 0.00745 - 6 0.00559 - 7 0.492 - 8 0.00745 - 9 0.00745 - 12 0.00745 - 13 0.0168 - 14 0.00372 - 15 0.00745 - 21 0.0168 - 26 0.0447 - 28 0.00186 - 29 0.0391 - 30 0.0205 - 31 0.00931 - 32 0.0168 - 33 0.00372 - 34 0.00372 - 35 0.00186 - 39 0.00186 - 40 0.0596 - 41 0.102 - 42 0.0186 - 43 0.00931 - 44 0.00559 - 46 0.00186 - 47 0.00186 - - 48 13 6 0 - 0 0.0769 - 2 0.0769 - 7 0.0769 - 31 0.0769 - 40 0.0769 - 41 0.615 - - 54 1 1 0 - 31 1 - - 55 27 14 0 - 0 0.037 - 2 0.0741 - 3 0.0741 - 4 0.037 - 7 0.185 - 8 0.111 - 13 0.0741 - 29 0.037 - 30 0.0741 - 32 0.037 - 40 0.0741 - 41 0.037 - 43 0.037 - 45 0.111 - - 60 8 6 0 - 2 0.25 - 6 0.125 - 7 0.125 - 12 0.125 - 40 0.25 - 41 0.125 - - 9 236 14 6 - 0 0.0212 - 2 0.00847 - 4 0.00847 - 7 0.619 - 12 0.00424 - 21 0.0254 - 26 0.0763 - 29 0.00424 - 30 0.00424 - 31 0.0127 - 40 0.114 - 41 0.089 - 42 0.00847 - 44 0.00424 - - 4 15 5 0 - 4 0.0667 - 7 0.6 - 31 0.0667 - 40 0.133 - 41 0.133 - - 13 7 5 0 - 0 0.143 - 7 0.429 - 12 0.143 - 40 0.143 - 41 0.143 - - 14 2 2 0 - 0 0.5 - 2 0.5 - - 21 19 4 0 - 7 0.737 - 40 0.158 - 41 0.0526 - 42 0.0526 - - 47 160 11 0 - 0 0.0125 - 2 0.00625 - 7 0.606 - 21 0.0375 - 26 0.106 - 29 0.00625 - 30 0.00625 - 40 0.112 - 41 0.0938 - 42 0.00625 - 44 0.00625 - - 55 9 4 0 - 4 0.111 - 7 0.667 - 31 0.111 - 41 0.111 - - 10 370 23 6 - 0 0.0568 - 2 0.0027 - 4 0.00811 - 5 0.0027 - 7 0.705 - 8 0.00541 - 12 0.00541 - 13 0.00811 - 19 0.00811 - 21 0.0162 - 26 0.0135 - 28 0.0027 - 29 0.0027 - 30 0.00811 - 31 0.0027 - 32 0.0324 - 37 0.0027 - 40 0.0459 - 41 0.0486 - 42 0.0135 - 44 0.0027 - 45 0.0027 - 46 0.0027 - - 2 2 2 0 - 26 0.5 - 46 0.5 - - 4 125 17 0 - 0 0.064 - 2 0.008 - 4 0.024 - 5 0.008 - 7 0.552 - 8 0.016 - 12 0.008 - 13 0.024 - 19 0.016 - 21 0.04 - 26 0.016 - 30 0.008 - 32 0.016 - 40 0.112 - 41 0.056 - 42 0.024 - 44 0.008 - - 20 10 6 0 - 7 0.3 - 26 0.2 - 37 0.1 - 40 0.1 - 41 0.2 - 45 0.1 - - 21 5 2 0 - 7 0.4 - 41 0.6 - - 47 216 12 0 - 0 0.0602 - 7 0.838 - 12 0.00463 - 19 0.00463 - 21 0.00463 - 28 0.00463 - 29 0.00463 - 30 0.00926 - 31 0.00463 - 32 0.0463 - 40 0.00926 - 41 0.00926 - - 55 6 3 0 - 7 0.333 - 41 0.5 - 42 0.167 - - 12 3 3 0 - 40 0.333 - 41 0.333 - 43 0.333 - - 13 98717 46 40 - 0 0.0625 - 1 0.000365 - 2 0.0342 - 3 0.00661 - 4 0.0085 - 5 0.000152 - 6 6.08e-05 - 7 0.33 - 8 0.00775 - 9 0.00124 - 10 5.06e-05 - 12 0.0236 - 13 0.004 - 14 0.000952 - 15 0.00478 - 16 3.04e-05 - 17 2.03e-05 - 18 2.03e-05 - 19 0.00561 - 20 0.000274 - 21 0.0242 - 22 0.00352 - 23 0.000111 - 24 0.000537 - 25 4.05e-05 - 26 0.051 - 28 0.00134 - 29 0.0429 - 30 0.00867 - 31 0.0138 - 32 0.00181 - 33 0.0202 - 34 0.0105 - 35 0.00329 - 36 0.000243 - 37 0.00321 - 38 3.04e-05 - 39 0.000263 - 40 0.146 - 41 0.15 - 42 0.015 - 43 0.00203 - 44 0.002 - 45 0.00284 - 46 0.00573 - 47 0.000669 - - 0 3 3 0 - 3 0.333 - 7 0.333 - 41 0.333 - - 2 783 25 0 - 0 0.0396 - 2 0.0179 - 4 0.00383 - 6 0.00128 - 7 0.298 - 8 0.00383 - 12 0.0204 - 21 0.0153 - 26 0.0383 - 29 0.014 - 30 0.00511 - 31 0.0153 - 32 0.014 - 33 0.0115 - 34 0.0102 - 35 0.00255 - 37 0.00383 - 40 0.25 - 41 0.183 - 42 0.0307 - 43 0.00383 - 44 0.00255 - 45 0.00511 - 46 0.00894 - 47 0.00128 - - 3 4034 35 0 - 0 0.0151 - 1 0.000496 - 2 0.0288 - 3 0.0654 - 4 0.0206 - 7 0.335 - 8 0.0107 - 9 0.00868 - 12 0.00645 - 13 0.00372 - 14 0.000496 - 15 0.00843 - 19 0.00347 - 20 0.000744 - 21 0.0121 - 22 0.00198 - 24 0.000496 - 26 0.128 - 28 0.000496 - 29 0.0129 - 30 0.00397 - 31 0.00744 - 32 0.000248 - 33 0.00645 - 34 0.00347 - 35 0.00198 - 37 0.00223 - 40 0.143 - 41 0.127 - 42 0.0273 - 43 0.00322 - 44 0.00545 - 45 0.00223 - 46 0.00149 - 47 0.000992 - - 4 30713 45 0 - 0 0.078 - 1 0.000456 - 2 0.022 - 3 0.00156 - 4 0.00834 - 5 0.000195 - 6 3.26e-05 - 7 0.359 - 8 0.00703 - 9 0.000977 - 10 9.77e-05 - 12 0.0316 - 13 0.00371 - 14 0.00107 - 15 0.00391 - 16 6.51e-05 - 18 6.51e-05 - 19 0.00834 - 20 0.000456 - 21 0.0346 - 22 0.00866 - 23 0.000195 - 24 0.000912 - 25 3.26e-05 - 26 0.0489 - 28 0.00166 - 29 0.0524 - 30 0.00853 - 31 0.0151 - 32 0.00147 - 33 0.0292 - 34 0.013 - 35 0.00293 - 36 0.000293 - 37 0.00414 - 38 3.26e-05 - 39 0.000521 - 40 0.108 - 41 0.125 - 42 0.00856 - 43 0.00143 - 44 0.000814 - 45 0.00378 - 46 0.00199 - 47 0.000358 - - 6 8 6 0 - 0 0.125 - 2 0.125 - 7 0.25 - 40 0.125 - 41 0.125 - 42 0.25 - - 7 79 12 0 - 0 0.0759 - 2 0.038 - 7 0.152 - 12 0.0253 - 15 0.0127 - 21 0.0253 - 26 0.0253 - 30 0.0253 - 31 0.0127 - 33 0.0127 - 40 0.392 - 41 0.203 - - 8 20150 43 0 - 0 0.0496 - 1 0.000397 - 2 0.0359 - 3 0.00179 - 4 0.00794 - 5 0.000199 - 6 4.96e-05 - 7 0.34 - 8 0.00591 - 9 0.000397 - 10 9.93e-05 - 12 0.0205 - 13 0.00437 - 14 0.000794 - 15 0.00536 - 16 4.96e-05 - 19 0.00541 - 20 0.000149 - 21 0.0172 - 22 0.000844 - 23 4.96e-05 - 24 0.000248 - 25 4.96e-05 - 26 0.0461 - 28 0.00124 - 29 0.032 - 30 0.0103 - 31 0.0154 - 32 0.000943 - 33 0.0144 - 34 0.00983 - 35 0.00407 - 36 0.000248 - 37 0.00323 - 39 9.93e-05 - 40 0.175 - 41 0.158 - 42 0.0168 - 43 0.00159 - 44 0.00199 - 45 0.00149 - 46 0.00928 - 47 0.000596 - - 9 517 25 0 - 0 0.0406 - 2 0.0426 - 4 0.00387 - 7 0.453 - 8 0.0058 - 12 0.0174 - 13 0.00193 - 15 0.00193 - 17 0.00193 - 19 0.00387 - 21 0.0193 - 26 0.0754 - 29 0.00774 - 30 0.0155 - 31 0.0058 - 32 0.0058 - 33 0.0193 - 34 0.00387 - 40 0.128 - 41 0.112 - 42 0.0251 - 43 0.00193 - 44 0.00193 - 45 0.00193 - 46 0.00387 - - 10 469 25 0 - 0 0.0768 - 2 0.0171 - 4 0.0149 - 7 0.36 - 8 0.0149 - 12 0.0213 - 13 0.00426 - 14 0.00426 - 15 0.0064 - 19 0.0107 - 21 0.032 - 26 0.0597 - 29 0.064 - 30 0.0107 - 31 0.00426 - 32 0.00426 - 33 0.0235 - 35 0.00426 - 37 0.00213 - 39 0.00213 - 40 0.109 - 41 0.134 - 42 0.0149 - 44 0.00213 - 46 0.00213 - - 13 12677 39 0 - 0 0.0652 - 1 0.000473 - 2 0.0461 - 3 0.00252 - 4 0.00529 - 7 0.248 - 8 0.00718 - 9 0.000631 - 12 0.0242 - 13 0.00363 - 14 0.000631 - 15 0.00552 - 17 7.89e-05 - 19 0.00387 - 20 0.000158 - 21 0.0204 - 22 0.000868 - 24 0.000158 - 26 0.0311 - 28 0.00142 - 29 0.0506 - 30 0.00812 - 31 0.0177 - 32 0.00252 - 33 0.02 - 34 0.0165 - 35 0.00371 - 36 0.000473 - 37 0.00331 - 38 7.89e-05 - 39 0.000237 - 40 0.189 - 41 0.186 - 42 0.0185 - 43 0.00174 - 44 0.00268 - 45 0.00316 - 46 0.00702 - 47 0.0011 - - 14 957 30 0 - 0 0.0742 - 1 0.00104 - 2 0.0366 - 3 0.0115 - 4 0.00522 - 7 0.222 - 8 0.00522 - 12 0.023 - 13 0.00209 - 14 0.00104 - 15 0.00522 - 19 0.00313 - 21 0.023 - 24 0.00104 - 26 0.0303 - 29 0.0815 - 30 0.00104 - 31 0.0219 - 32 0.00418 - 33 0.0136 - 34 0.0167 - 35 0.00209 - 37 0.00104 - 40 0.181 - 41 0.203 - 42 0.0167 - 43 0.00104 - 44 0.00522 - 45 0.00418 - 46 0.00313 - - 15 3706 37 0 - 0 0.0815 - 2 0.0364 - 3 0.0054 - 4 0.00729 - 7 0.181 - 8 0.00648 - 9 0.00108 - 12 0.0324 - 13 0.00863 - 14 0.00054 - 15 0.00405 - 19 0.00189 - 20 0.00027 - 21 0.0216 - 22 0.00189 - 23 0.000809 - 24 0.00027 - 26 0.0321 - 28 0.000809 - 29 0.11 - 30 0.00756 - 31 0.0165 - 32 0.0027 - 33 0.0262 - 34 0.0132 - 35 0.0108 - 36 0.000809 - 37 0.00162 - 39 0.00054 - 40 0.174 - 41 0.186 - 42 0.0135 - 43 0.0027 - 44 0.0027 - 45 0.00513 - 46 0.00243 - 47 0.00027 - - 16 73 10 0 - 0 0.0685 - 2 0.0411 - 7 0.219 - 13 0.0137 - 15 0.0411 - 21 0.0548 - 26 0.0822 - 29 0.123 - 40 0.178 - 41 0.178 - - 18 2 2 0 - 2 0.5 - 21 0.5 - - 19 13 2 0 - 7 0.231 - 41 0.769 - - 20 2788 31 0 - 0 0.0897 - 2 0.0308 - 3 0.000717 - 4 0.00825 - 5 0.00108 - 7 0.303 - 8 0.00933 - 12 0.0233 - 13 0.00287 - 14 0.000717 - 15 0.00323 - 19 0.00143 - 21 0.0326 - 22 0.00179 - 24 0.00251 - 26 0.0976 - 28 0.00395 - 29 0.0334 - 30 0.00825 - 31 0.00753 - 32 0.000717 - 33 0.0197 - 34 0.00108 - 37 0.0043 - 39 0.000359 - 40 0.145 - 41 0.142 - 42 0.0169 - 44 0.00215 - 45 0.00251 - 46 0.00359 - - 21 101 20 0 - 0 0.0693 - 2 0.0396 - 4 0.0297 - 7 0.297 - 8 0.0297 - 12 0.0396 - 14 0.0099 - 15 0.0099 - 19 0.0099 - 21 0.0297 - 26 0.0396 - 29 0.0198 - 33 0.0396 - 35 0.0099 - 40 0.0693 - 41 0.208 - 42 0.0099 - 43 0.0099 - 44 0.0198 - 46 0.0099 - - 22 4 3 0 - 7 0.25 - 8 0.25 - 41 0.5 - - 28 6 5 0 - 7 0.167 - 15 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 29 9 3 0 - 0 0.111 - 7 0.667 - 40 0.222 - - 30 711 25 0 - 0 0.0394 - 1 0.00141 - 2 0.0338 - 4 0.00422 - 7 0.422 - 8 0.00844 - 9 0.00141 - 12 0.0197 - 13 0.00141 - 15 0.00281 - 19 0.00422 - 21 0.0127 - 26 0.0352 - 29 0.038 - 30 0.00985 - 31 0.0155 - 32 0.00422 - 33 0.0113 - 34 0.00844 - 35 0.00281 - 40 0.148 - 41 0.152 - 42 0.0197 - 45 0.00141 - 46 0.00281 - - 31 547 23 0 - 0 0.0622 - 2 0.0329 - 3 0.00183 - 4 0.00366 - 7 0.419 - 8 0.00183 - 12 0.0347 - 13 0.00183 - 14 0.00183 - 15 0.00183 - 19 0.00366 - 21 0.0165 - 26 0.0548 - 29 0.00548 - 30 0.00914 - 31 0.00548 - 33 0.0219 - 34 0.00366 - 35 0.00548 - 40 0.163 - 41 0.126 - 42 0.0201 - 44 0.00366 - - 34 4 4 0 - 2 0.25 - 7 0.25 - 40 0.25 - 44 0.25 - - 35 2 2 0 - 5 0.5 - 7 0.5 - - 40 6 5 0 - 0 0.167 - 40 0.333 - 42 0.167 - 43 0.167 - 47 0.167 - - 41 22 10 0 - 0 0.0455 - 2 0.0455 - 12 0.0455 - 26 0.0455 - 29 0.136 - 31 0.0455 - 34 0.0455 - 40 0.273 - 41 0.227 - 43 0.0909 - - 42 5 2 0 - 7 0.2 - 40 0.8 - - 43 16 9 0 - 0 0.25 - 7 0.125 - 8 0.0625 - 12 0.0625 - 29 0.0625 - 33 0.0625 - 35 0.0625 - 40 0.125 - 41 0.188 - - 44 11 2 0 - 7 0.182 - 43 0.818 - - 45 138 8 0 - 0 0.0145 - 7 0.188 - 8 0.00725 - 21 0.00725 - 26 0.029 - 40 0.116 - 41 0.0725 - 46 0.565 - - 46 169 21 0 - 0 0.0592 - 2 0.0296 - 4 0.0178 - 7 0.325 - 8 0.00592 - 12 0.0237 - 15 0.00592 - 19 0.0118 - 21 0.0118 - 26 0.0237 - 29 0.0355 - 30 0.0296 - 31 0.0118 - 33 0.0355 - 34 0.0473 - 37 0.00592 - 40 0.148 - 41 0.142 - 42 0.0178 - 44 0.00592 - 45 0.00592 - - 47 13978 39 0 - 0 0.0505 - 1 0.000215 - 2 0.0552 - 3 0.0124 - 4 0.0107 - 6 0.000215 - 7 0.343 - 8 0.0098 - 9 0.00114 - 12 0.0152 - 13 0.00501 - 14 0.00157 - 15 0.00558 - 19 0.00622 - 20 0.000215 - 21 0.022 - 22 0.00172 - 23 7.15e-05 - 24 0.000358 - 25 0.000143 - 26 0.0519 - 28 0.00143 - 29 0.028 - 30 0.00959 - 31 0.01 - 32 0.00272 - 33 0.0132 - 34 0.00637 - 35 0.00265 - 37 0.00286 - 38 7.15e-05 - 40 0.131 - 41 0.166 - 42 0.0189 - 43 0.00365 - 44 0.0015 - 45 0.0015 - 46 0.00651 - 47 0.00136 - - 48 2092 30 0 - 0 0.0344 - 2 0.0191 - 3 0.000956 - 4 0.0086 - 5 0.000478 - 7 0.497 - 8 0.0196 - 12 0.012 - 13 0.00287 - 14 0.000478 - 15 0.00191 - 19 0.00335 - 20 0.000478 - 21 0.00956 - 24 0.000478 - 26 0.0531 - 28 0.000478 - 29 0.0129 - 30 0.0139 - 31 0.0167 - 33 0.0163 - 34 0.00717 - 35 0.000956 - 37 0.00239 - 40 0.132 - 41 0.106 - 42 0.0201 - 44 0.000956 - 45 0.00143 - 46 0.00478 - - 49 17 5 0 - 7 0.529 - 21 0.0588 - 30 0.0588 - 40 0.176 - 41 0.176 - - 54 152 19 0 - 0 0.0658 - 2 0.0263 - 4 0.00658 - 7 0.289 - 12 0.0263 - 13 0.00658 - 14 0.00658 - 15 0.0132 - 19 0.00658 - 21 0.0132 - 26 0.0132 - 29 0.132 - 31 0.00658 - 33 0.0132 - 34 0.0461 - 35 0.0132 - 40 0.158 - 41 0.151 - 45 0.00658 - - 55 2721 34 0 - 0 0.0978 - 1 0.000368 - 2 0.0298 - 3 0.0011 - 4 0.00257 - 7 0.27 - 8 0.00551 - 12 0.0305 - 13 0.00147 - 14 0.000735 - 15 0.00368 - 19 0.000735 - 21 0.0243 - 22 0.0011 - 24 0.000368 - 26 0.0724 - 28 0.000368 - 29 0.0592 - 30 0.00515 - 31 0.00368 - 32 0.00147 - 33 0.0287 - 34 0.00331 - 35 0.00147 - 37 0.00184 - 39 0.000368 - 40 0.166 - 41 0.16 - 42 0.0103 - 43 0.00221 - 44 0.0011 - 45 0.00845 - 46 0.00257 - 47 0.0011 - - 57 1 1 0 - 31 1 - - 58 31 13 0 - 0 0.0968 - 2 0.0323 - 4 0.0323 - 7 0.194 - 13 0.0645 - 21 0.0323 - 26 0.0323 - 29 0.0323 - 31 0.0645 - 33 0.0645 - 40 0.194 - 41 0.129 - 46 0.0323 - - 60 950 25 0 - 0 0.0137 - 2 0.0179 - 3 0.0621 - 4 0.0189 - 7 0.479 - 8 0.0211 - 9 0.0211 - 12 0.00211 - 13 0.00105 - 15 0.00316 - 21 0.0189 - 22 0.00632 - 26 0.0653 - 29 0.0105 - 30 0.00211 - 31 0.0105 - 32 0.00526 - 33 0.00211 - 34 0.00211 - 40 0.132 - 41 0.0705 - 42 0.00947 - 43 0.00421 - 44 0.02 - 46 0.00105 - - 68 43 12 0 - 0 0.0465 - 2 0.0233 - 7 0.186 - 8 0.0233 - 12 0.0233 - 26 0.0233 - 29 0.0465 - 31 0.0465 - 36 0.0233 - 40 0.279 - 41 0.233 - 42 0.0465 - - 14 55733 44 33 - 0 0.0834 - 1 0.000718 - 2 0.044 - 3 0.0017 - 4 0.0176 - 5 8.97e-05 - 7 0.251 - 8 0.0175 - 9 0.001 - 10 3.59e-05 - 12 0.0299 - 13 0.00215 - 14 0.000807 - 15 0.0023 - 16 3.59e-05 - 17 5.38e-05 - 18 3.59e-05 - 19 0.00468 - 20 0.000161 - 21 0.0335 - 22 0.00206 - 23 0.000126 - 24 0.000646 - 25 1.79e-05 - 26 0.0419 - 28 0.00355 - 29 0.0527 - 30 0.0145 - 31 0.0224 - 32 0.0385 - 33 0.00206 - 34 0.0131 - 35 0.00736 - 36 0.000467 - 37 0.00224 - 39 0.000323 - 40 0.144 - 41 0.13 - 42 0.0201 - 43 0.00169 - 44 0.00452 - 45 0.00237 - 46 0.00397 - 47 0.00106 - - 2 903 28 0 - 0 0.0709 - 2 0.0244 - 4 0.00443 - 7 0.199 - 8 0.00443 - 9 0.00221 - 12 0.0321 - 19 0.00554 - 21 0.0377 - 22 0.00221 - 26 0.0255 - 28 0.00111 - 29 0.0532 - 30 0.0166 - 31 0.0233 - 32 0.041 - 33 0.00775 - 34 0.0177 - 35 0.00443 - 36 0.00111 - 37 0.00221 - 40 0.229 - 41 0.142 - 42 0.031 - 43 0.00554 - 45 0.00111 - 46 0.00554 - 47 0.00886 - - 3 4221 37 0 - 0 0.0315 - 2 0.0334 - 4 0.129 - 7 0.211 - 8 0.0339 - 9 0.00379 - 12 0.00782 - 13 0.00355 - 14 0.000237 - 15 0.00498 - 16 0.000237 - 19 0.00498 - 20 0.000237 - 21 0.0576 - 22 0.00426 - 23 0.000237 - 25 0.000237 - 26 0.0431 - 28 0.00118 - 29 0.0206 - 30 0.00805 - 31 0.0199 - 32 0.00877 - 33 0.00142 - 34 0.00332 - 35 0.00284 - 36 0.000474 - 37 0.00118 - 39 0.000711 - 40 0.154 - 41 0.137 - 42 0.0566 - 43 0.00237 - 44 0.00877 - 45 0.000474 - 46 0.00118 - 47 0.00166 - - 4 5302 37 0 - 0 0.151 - 1 0.00132 - 2 0.0228 - 3 0.000566 - 4 0.00622 - 7 0.247 - 8 0.0104 - 9 0.000377 - 12 0.0541 - 13 0.0017 - 14 0.00189 - 15 0.00302 - 17 0.000189 - 19 0.0164 - 20 0.000377 - 21 0.0353 - 22 0.00113 - 23 0.000189 - 24 0.00207 - 26 0.0313 - 28 0.00453 - 29 0.0621 - 30 0.00962 - 31 0.0226 - 32 0.0732 - 33 0.00245 - 34 0.0143 - 35 0.00905 - 36 0.000566 - 37 0.00226 - 40 0.101 - 41 0.0934 - 42 0.0106 - 43 0.000943 - 44 0.0017 - 45 0.00245 - 46 0.00264 - - 6 7 5 0 - 7 0.429 - 26 0.143 - 31 0.143 - 40 0.143 - 44 0.143 - - 8 12828 41 0 - 0 0.075 - 1 0.00039 - 2 0.0472 - 3 0.000468 - 4 0.00834 - 5 7.8e-05 - 7 0.251 - 8 0.0159 - 9 0.000312 - 12 0.0288 - 13 0.00195 - 14 0.00101 - 15 0.0014 - 16 7.8e-05 - 17 7.8e-05 - 18 7.8e-05 - 19 0.00366 - 21 0.0241 - 22 0.00148 - 23 7.8e-05 - 24 0.000156 - 26 0.0391 - 28 0.00226 - 29 0.0366 - 30 0.0132 - 31 0.0214 - 32 0.029 - 33 0.00187 - 34 0.0136 - 35 0.0067 - 36 0.000546 - 37 0.00249 - 39 0.000702 - 40 0.18 - 41 0.153 - 42 0.0216 - 43 0.00164 - 44 0.00639 - 45 0.00226 - 46 0.00514 - 47 0.00156 - - 9 459 25 0 - 0 0.0566 - 1 0.00218 - 2 0.0501 - 4 0.00436 - 7 0.322 - 8 0.00871 - 12 0.0392 - 13 0.00654 - 15 0.00218 - 19 0.00654 - 21 0.0349 - 26 0.0588 - 28 0.00436 - 29 0.0174 - 30 0.0174 - 31 0.0109 - 32 0.0196 - 34 0.0131 - 35 0.00654 - 37 0.00436 - 40 0.15 - 41 0.146 - 42 0.0131 - 44 0.00218 - 46 0.00218 - - 10 269 24 0 - 0 0.126 - 2 0.0112 - 4 0.00372 - 7 0.216 - 8 0.0149 - 12 0.0595 - 13 0.00372 - 19 0.0186 - 21 0.0297 - 24 0.00372 - 26 0.0335 - 28 0.00372 - 29 0.0335 - 30 0.0297 - 31 0.0112 - 32 0.1 - 33 0.00743 - 34 0.00372 - 35 0.00372 - 40 0.0818 - 41 0.167 - 42 0.0186 - 43 0.00372 - 45 0.0149 - - 13 9556 39 0 - 0 0.0876 - 1 0.00115 - 2 0.0643 - 3 0.000837 - 4 0.0068 - 5 0.000105 - 7 0.187 - 8 0.0139 - 9 0.000733 - 12 0.0274 - 13 0.00199 - 14 0.000105 - 15 0.00199 - 18 0.000105 - 19 0.00199 - 20 0.000314 - 21 0.0331 - 22 0.00167 - 23 0.000105 - 24 0.000523 - 26 0.0328 - 28 0.00262 - 29 0.0671 - 30 0.013 - 31 0.0202 - 32 0.0419 - 33 0.0023 - 34 0.0142 - 35 0.0045 - 36 0.000209 - 37 0.00188 - 40 0.173 - 41 0.167 - 42 0.0168 - 43 0.00188 - 44 0.0023 - 45 0.0023 - 46 0.00366 - 47 0.000942 - - 14 538 26 0 - 0 0.0874 - 2 0.0502 - 4 0.00929 - 7 0.18 - 8 0.00929 - 10 0.00186 - 12 0.0297 - 13 0.00558 - 15 0.00186 - 21 0.0335 - 26 0.0372 - 28 0.00186 - 29 0.0967 - 30 0.00558 - 31 0.00929 - 32 0.0409 - 33 0.00372 - 34 0.00929 - 35 0.00558 - 40 0.19 - 41 0.139 - 42 0.0353 - 44 0.00186 - 45 0.00743 - 46 0.00558 - 47 0.00186 - - 15 2001 34 0 - 0 0.125 - 1 0.001 - 2 0.037 - 3 0.006 - 4 0.005 - 7 0.147 - 8 0.013 - 12 0.0335 - 13 0.0005 - 14 0.0015 - 15 0.0045 - 19 0.003 - 21 0.026 - 22 0.003 - 23 0.0005 - 26 0.039 - 28 0.0025 - 29 0.141 - 30 0.0155 - 31 0.015 - 32 0.0465 - 33 0.004 - 34 0.0145 - 35 0.008 - 37 0.0025 - 39 0.0005 - 40 0.14 - 41 0.133 - 42 0.0145 - 43 0.0025 - 44 0.0045 - 45 0.004 - 46 0.003 - 47 0.0015 - - 16 26 9 0 - 0 0.115 - 7 0.0769 - 26 0.115 - 29 0.269 - 32 0.0385 - 40 0.231 - 41 0.0769 - 42 0.0385 - 44 0.0385 - - 19 6 5 0 - 12 0.167 - 21 0.333 - 29 0.167 - 35 0.167 - 40 0.167 - - 20 1519 34 0 - 0 0.107 - 1 0.000658 - 2 0.0434 - 3 0.00132 - 4 0.0105 - 5 0.000658 - 7 0.244 - 8 0.00658 - 9 0.00132 - 12 0.0217 - 13 0.00263 - 14 0.00197 - 15 0.000658 - 19 0.00132 - 21 0.0421 - 22 0.00263 - 23 0.000658 - 24 0.00329 - 26 0.0737 - 28 0.0118 - 29 0.029 - 30 0.00592 - 31 0.0151 - 32 0.0263 - 33 0.00197 - 35 0.00263 - 37 0.00395 - 39 0.000658 - 40 0.185 - 41 0.132 - 42 0.0132 - 43 0.000658 - 45 0.00395 - 46 0.00197 - - 21 38 15 0 - 0 0.0789 - 2 0.0263 - 7 0.316 - 12 0.0263 - 21 0.0263 - 26 0.105 - 29 0.0263 - 30 0.0526 - 31 0.0526 - 32 0.0526 - 35 0.0526 - 40 0.0263 - 41 0.105 - 42 0.0263 - 46 0.0263 - - 23 2 1 0 - 21 1 - - 28 16 6 0 - 7 0.562 - 12 0.125 - 26 0.0625 - 28 0.125 - 32 0.0625 - 41 0.0625 - - 29 9 5 0 - 7 0.444 - 12 0.222 - 15 0.111 - 21 0.111 - 40 0.111 - - 30 480 24 0 - 0 0.0562 - 2 0.0542 - 4 0.00417 - 7 0.296 - 8 0.0104 - 12 0.0229 - 13 0.00208 - 15 0.00417 - 19 0.00417 - 21 0.0208 - 22 0.00208 - 26 0.0312 - 29 0.0521 - 30 0.00625 - 31 0.0146 - 32 0.0229 - 33 0.00208 - 34 0.0104 - 35 0.00417 - 39 0.00208 - 40 0.2 - 41 0.169 - 42 0.00625 - 46 0.00208 - - 31 394 24 0 - 0 0.0558 - 2 0.0508 - 4 0.00761 - 5 0.00254 - 7 0.289 - 8 0.0228 - 12 0.0431 - 19 0.00761 - 21 0.0305 - 26 0.0431 - 29 0.0203 - 30 0.0178 - 31 0.0152 - 32 0.0279 - 33 0.00254 - 34 0.0178 - 35 0.00761 - 40 0.15 - 41 0.142 - 42 0.0127 - 43 0.00254 - 44 0.0203 - 45 0.00508 - 46 0.00508 - - 34 3 2 0 - 7 0.667 - 44 0.333 - - 41 4 4 0 - 7 0.25 - 12 0.25 - 26 0.25 - 41 0.25 - - 42 3 3 0 - 7 0.333 - 40 0.333 - 46 0.333 - - 43 15 7 0 - 0 0.0667 - 2 0.133 - 7 0.0667 - 12 0.133 - 21 0.0667 - 40 0.133 - 41 0.4 - - 44 4 1 0 - 43 1 - - 45 61 6 0 - 0 0.0492 - 7 0.115 - 26 0.0328 - 40 0.148 - 41 0.0984 - 46 0.557 - - 46 98 17 0 - 0 0.0408 - 2 0.051 - 4 0.0102 - 7 0.214 - 8 0.0306 - 21 0.0102 - 26 0.0918 - 29 0.0102 - 30 0.0102 - 31 0.0306 - 32 0.0306 - 34 0.0612 - 35 0.0102 - 36 0.0102 - 40 0.163 - 41 0.173 - 42 0.051 - - 47 13576 41 0 - 0 0.0748 - 1 0.000737 - 2 0.0447 - 3 0.00464 - 4 0.00722 - 5 7.37e-05 - 7 0.329 - 8 0.018 - 9 0.00147 - 10 7.37e-05 - 12 0.0322 - 13 0.0025 - 14 0.000958 - 15 0.00214 - 17 7.37e-05 - 19 0.00412 - 20 0.000221 - 21 0.0351 - 22 0.00258 - 23 7.37e-05 - 24 0.000737 - 26 0.0542 - 28 0.00567 - 29 0.0577 - 30 0.022 - 31 0.0306 - 32 0.0463 - 33 0.00147 - 34 0.0171 - 35 0.0127 - 36 0.000737 - 37 0.00302 - 39 0.000221 - 40 0.0806 - 41 0.0854 - 42 0.0123 - 43 0.00125 - 44 0.00133 - 45 0.00243 - 46 0.00258 - 47 0.00081 - - 48 813 27 0 - 0 0.0652 - 1 0.00123 - 2 0.0271 - 4 0.00738 - 7 0.26 - 8 0.0726 - 9 0.00123 - 12 0.0123 - 15 0.00123 - 19 0.00369 - 21 0.0308 - 26 0.0308 - 28 0.00369 - 29 0.0246 - 30 0.0271 - 31 0.0308 - 32 0.0185 - 33 0.00123 - 34 0.00984 - 35 0.00615 - 40 0.194 - 41 0.143 - 42 0.016 - 43 0.00123 - 44 0.00123 - 45 0.00123 - 46 0.00861 - - 54 11 8 0 - 2 0.0909 - 7 0.0909 - 21 0.0909 - 26 0.0909 - 29 0.182 - 32 0.273 - 34 0.0909 - 40 0.0909 - - 55 1044 28 0 - 0 0.136 - 1 0.000958 - 2 0.0345 - 3 0.000958 - 4 0.00287 - 7 0.221 - 8 0.0125 - 12 0.0354 - 13 0.00192 - 15 0.000958 - 21 0.0172 - 22 0.00287 - 24 0.00192 - 26 0.0489 - 28 0.00479 - 29 0.0766 - 30 0.00958 - 31 0.00287 - 32 0.0326 - 33 0.00287 - 34 0.000958 - 35 0.000958 - 37 0.00192 - 40 0.199 - 41 0.126 - 42 0.0153 - 45 0.0067 - 46 0.000958 - - 58 20 11 0 - 0 0.1 - 1 0.05 - 2 0.1 - 7 0.15 - 8 0.05 - 21 0.05 - 31 0.05 - 40 0.2 - 41 0.15 - 42 0.05 - 44 0.05 - - 60 1381 27 0 - 0 0.034 - 2 0.021 - 4 0.0587 - 7 0.254 - 8 0.0391 - 9 0.00145 - 12 0.0101 - 13 0.00217 - 14 0.000724 - 15 0.00579 - 19 0.00145 - 21 0.0434 - 22 0.00362 - 26 0.0268 - 29 0.0224 - 30 0.0101 - 31 0.0203 - 32 0.00507 - 33 0.000724 - 34 0.00434 - 35 0.00217 - 40 0.177 - 41 0.159 - 42 0.0485 - 43 0.00362 - 44 0.0434 - 46 0.000724 - - 68 113 16 0 - 0 0.0619 - 2 0.0265 - 4 0.00885 - 7 0.142 - 8 0.00885 - 12 0.0177 - 21 0.0531 - 26 0.00885 - 29 0.0442 - 31 0.00885 - 32 0.0177 - 33 0.00885 - 34 0.0354 - 40 0.363 - 41 0.177 - 42 0.0177 - - 15 38960 40 26 - 0 0.0826 - 1 7.7e-05 - 2 0.0494 - 3 0.039 - 4 0.00503 - 5 5.13e-05 - 6 2.57e-05 - 7 0.091 - 8 0.00395 - 9 0.000231 - 12 0.0263 - 13 0.00357 - 14 0.00113 - 15 0.00572 - 17 2.57e-05 - 18 0.000642 - 19 0.00167 - 20 0.000282 - 21 0.0216 - 22 0.000796 - 24 7.7e-05 - 26 0.0177 - 28 0.0021 - 29 0.128 - 30 0.00359 - 31 0.00182 - 32 0.00347 - 33 0.0401 - 34 0.00228 - 35 0.00139 - 37 0.00126 - 39 0.000616 - 40 0.125 - 41 0.3 - 42 0.016 - 43 0.00726 - 44 0.00667 - 45 0.00195 - 46 0.00385 - 47 0.00316 - - 2 1047 29 0 - 0 0.0965 - 2 0.0506 - 4 0.00573 - 7 0.085 - 8 0.00669 - 12 0.022 - 13 0.00382 - 14 0.000955 - 15 0.00287 - 18 0.000955 - 19 0.000955 - 21 0.0172 - 26 0.0086 - 28 0.00191 - 29 0.11 - 30 0.00382 - 32 0.0181 - 33 0.0162 - 34 0.00573 - 35 0.000955 - 37 0.000955 - 40 0.226 - 41 0.29 - 42 0.0162 - 43 0.000955 - 44 0.00191 - 45 0.000955 - 46 0.00287 - 47 0.000955 - - 3 26 9 0 - 2 0.0385 - 3 0.0385 - 7 0.154 - 12 0.0385 - 15 0.0385 - 29 0.192 - 40 0.0769 - 41 0.385 - 42 0.0385 - - 4 2090 35 0 - 0 0.116 - 2 0.0656 - 3 0.0172 - 4 0.0067 - 7 0.201 - 8 0.0067 - 9 0.000957 - 12 0.0536 - 13 0.00335 - 14 0.00431 - 15 0.011 - 19 0.00239 - 20 0.00144 - 21 0.0292 - 22 0.00191 - 24 0.000478 - 26 0.0316 - 28 0.00574 - 29 0.0914 - 30 0.00526 - 31 0.00526 - 32 0.00526 - 33 0.0421 - 34 0.00431 - 35 0.00335 - 37 0.000957 - 39 0.000478 - 40 0.106 - 41 0.15 - 42 0.011 - 43 0.00144 - 44 0.00383 - 45 0.00335 - 46 0.00383 - 47 0.00287 - - 6 28 8 0 - 0 0.0714 - 2 0.179 - 7 0.0357 - 29 0.107 - 40 0.0714 - 41 0.464 - 42 0.0357 - 44 0.0357 - - 7 37 9 0 - 2 0.0811 - 3 0.0811 - 12 0.027 - 26 0.027 - 29 0.0541 - 40 0.378 - 41 0.27 - 42 0.027 - 46 0.0541 - - 8 578 29 0 - 0 0.045 - 2 0.0346 - 3 0.0225 - 4 0.00865 - 7 0.133 - 8 0.00346 - 9 0.00173 - 12 0.026 - 13 0.00173 - 14 0.00346 - 15 0.00173 - 19 0.00519 - 21 0.00519 - 26 0.0242 - 28 0.00346 - 29 0.026 - 30 0.00692 - 31 0.00173 - 32 0.00692 - 33 0.0173 - 34 0.0104 - 35 0.00346 - 37 0.00519 - 40 0.253 - 41 0.325 - 42 0.0138 - 44 0.00346 - 46 0.00173 - 47 0.00519 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 164 20 0 - 0 0.0793 - 2 0.0244 - 3 0.0122 - 7 0.0976 - 12 0.0122 - 13 0.0122 - 15 0.0122 - 21 0.0183 - 26 0.0122 - 29 0.122 - 30 0.0061 - 31 0.0061 - 33 0.0427 - 34 0.0061 - 37 0.0122 - 40 0.122 - 41 0.317 - 42 0.0427 - 44 0.0305 - 46 0.0122 - - 15 19923 36 0 - 0 0.0786 - 2 0.0509 - 3 0.00181 - 4 0.00467 - 7 0.0876 - 8 0.00301 - 9 0.000151 - 12 0.0213 - 13 0.00221 - 14 0.000803 - 15 0.00427 - 18 0.000452 - 19 0.00136 - 20 0.000201 - 21 0.0202 - 22 0.000803 - 24 5.02e-05 - 26 0.013 - 28 0.00176 - 29 0.151 - 30 0.00351 - 31 0.00131 - 32 0.00296 - 33 0.0504 - 34 0.00171 - 35 0.00161 - 37 0.000653 - 39 0.000452 - 40 0.113 - 41 0.34 - 42 0.0163 - 43 0.00407 - 44 0.0102 - 45 0.00216 - 46 0.00371 - 47 0.00386 - - 16 534 23 0 - 0 0.0337 - 2 0.073 - 4 0.00375 - 7 0.0974 - 8 0.00187 - 12 0.015 - 13 0.00375 - 15 0.00187 - 21 0.00749 - 26 0.0169 - 28 0.00187 - 29 0.152 - 30 0.00562 - 32 0.00375 - 33 0.0169 - 34 0.00187 - 35 0.00375 - 39 0.00187 - 40 0.204 - 41 0.307 - 42 0.0393 - 44 0.00187 - 47 0.00562 - - 20 11 8 0 - 0 0.0909 - 2 0.0909 - 7 0.182 - 26 0.0909 - 31 0.0909 - 40 0.273 - 41 0.0909 - 44 0.0909 - - 21 37 10 0 - 0 0.0541 - 2 0.027 - 7 0.108 - 13 0.0541 - 15 0.0541 - 29 0.027 - 33 0.027 - 40 0.243 - 41 0.378 - 42 0.027 - - 30 7 3 0 - 0 0.143 - 40 0.571 - 41 0.286 - - 31 8 7 0 - 2 0.125 - 7 0.25 - 12 0.125 - 33 0.125 - 34 0.125 - 41 0.125 - 42 0.125 - - 40 23 10 0 - 2 0.13 - 6 0.0435 - 7 0.13 - 29 0.087 - 33 0.0435 - 40 0.0435 - 41 0.391 - 43 0.0435 - 44 0.0435 - 47 0.0435 - - 41 51 7 0 - 2 0.0392 - 3 0.098 - 7 0.0196 - 29 0.0588 - 40 0.275 - 41 0.471 - 42 0.0392 - - 43 10 4 0 - 0 0.3 - 2 0.2 - 29 0.1 - 41 0.4 - - 44 8 2 0 - 41 0.125 - 43 0.875 - - 45 19 5 0 - 3 0.0526 - 7 0.211 - 40 0.105 - 41 0.211 - 46 0.421 - - 46 22 9 0 - 0 0.0909 - 7 0.0455 - 26 0.0455 - 29 0.0455 - 33 0.0455 - 40 0.0909 - 41 0.545 - 42 0.0455 - 46 0.0455 - - 47 14081 39 0 - 0 0.0871 - 1 0.000213 - 2 0.0447 - 3 0.101 - 4 0.0054 - 5 0.000142 - 7 0.076 - 8 0.0049 - 9 0.000142 - 12 0.0304 - 13 0.0054 - 14 0.00107 - 15 0.00746 - 17 7.1e-05 - 18 0.00107 - 19 0.00206 - 20 0.000284 - 21 0.0248 - 22 0.000781 - 24 7.1e-05 - 26 0.0229 - 28 0.00213 - 29 0.108 - 30 0.0032 - 31 0.00206 - 32 0.00284 - 33 0.0295 - 34 0.0022 - 35 0.00071 - 37 0.00199 - 39 0.000923 - 40 0.127 - 41 0.266 - 42 0.0149 - 43 0.0135 - 44 0.00241 - 45 0.00178 - 46 0.00355 - 47 0.0022 - - 48 43 13 0 - 0 0.14 - 2 0.0698 - 3 0.0233 - 7 0.14 - 8 0.0233 - 12 0.0698 - 26 0.0465 - 29 0.0698 - 31 0.0233 - 33 0.0233 - 40 0.186 - 41 0.163 - 42 0.0233 - - 54 20 6 0 - 0 0.05 - 7 0.3 - 29 0.1 - 33 0.05 - 40 0.3 - 41 0.2 - - 55 144 17 0 - 0 0.0347 - 2 0.0347 - 3 0.0139 - 7 0.236 - 12 0.0208 - 13 0.00694 - 21 0.0139 - 26 0.0208 - 29 0.181 - 30 0.0139 - 33 0.0347 - 40 0.111 - 41 0.25 - 42 0.00694 - 44 0.00694 - 46 0.00694 - 47 0.00694 - - 58 27 6 0 - 7 0.037 - 12 0.037 - 31 0.037 - 33 0.0741 - 40 0.593 - 41 0.222 - - 60 6 5 0 - 0 0.167 - 3 0.167 - 7 0.333 - 9 0.167 - 14 0.167 - - 16 1553 34 14 - 0 0.122 - 2 0.0599 - 3 0.00129 - 4 0.00515 - 5 0.000644 - 7 0.109 - 8 0.00515 - 9 0.000644 - 12 0.0399 - 13 0.00515 - 14 0.00193 - 15 0.00451 - 19 0.00258 - 20 0.000644 - 21 0.0258 - 22 0.000644 - 26 0.0232 - 28 0.000644 - 29 0.111 - 30 0.0058 - 31 0.00386 - 32 0.0367 - 33 0.0155 - 34 0.000644 - 35 0.0167 - 36 0.000644 - 40 0.127 - 41 0.214 - 42 0.0328 - 43 0.00386 - 44 0.00386 - 45 0.00193 - 46 0.00386 - 47 0.0135 - - 2 42 15 0 - 0 0.0714 - 2 0.0238 - 7 0.0952 - 19 0.0238 - 21 0.0714 - 28 0.0238 - 29 0.0238 - 31 0.0238 - 33 0.0238 - 35 0.0238 - 40 0.143 - 41 0.31 - 42 0.0714 - 45 0.0238 - 47 0.0476 - - 3 16 9 0 - 0 0.125 - 2 0.125 - 7 0.25 - 8 0.0625 - 12 0.0625 - 30 0.0625 - 31 0.0625 - 35 0.0625 - 41 0.188 - - 4 295 23 0 - 0 0.183 - 2 0.0542 - 4 0.00339 - 5 0.00339 - 7 0.0881 - 8 0.0136 - 12 0.0746 - 13 0.0102 - 19 0.00339 - 20 0.00339 - 21 0.0475 - 26 0.0373 - 29 0.119 - 30 0.0102 - 31 0.00339 - 32 0.0847 - 33 0.00339 - 35 0.0102 - 40 0.0915 - 41 0.132 - 42 0.0169 - 43 0.00339 - 45 0.00339 - - 8 87 15 0 - 0 0.207 - 2 0.023 - 7 0.115 - 12 0.0345 - 21 0.0115 - 26 0.023 - 29 0.046 - 31 0.0115 - 32 0.0805 - 34 0.0115 - 35 0.069 - 36 0.0115 - 40 0.149 - 41 0.161 - 42 0.046 - - 13 6 5 0 - 0 0.167 - 12 0.167 - 26 0.167 - 30 0.167 - 41 0.333 - - 15 766 24 0 - 0 0.0888 - 2 0.0614 - 3 0.00261 - 4 0.00522 - 7 0.101 - 8 0.00131 - 12 0.017 - 13 0.00392 - 15 0.00261 - 21 0.0157 - 22 0.00131 - 26 0.0144 - 29 0.144 - 30 0.00131 - 32 0.00653 - 33 0.0261 - 35 0.00653 - 40 0.148 - 41 0.273 - 42 0.0405 - 43 0.00392 - 44 0.00783 - 46 0.00522 - 47 0.0235 - - 16 35 13 0 - 0 0.0857 - 2 0.0286 - 4 0.0286 - 7 0.0857 - 12 0.0571 - 21 0.0571 - 26 0.0286 - 29 0.0286 - 32 0.0286 - 33 0.0286 - 40 0.0857 - 41 0.343 - 42 0.114 - - 21 5 4 0 - 0 0.2 - 2 0.2 - 7 0.2 - 42 0.4 - - 30 2 2 0 - 2 0.5 - 32 0.5 - - 45 1 1 0 - 46 1 - - 47 257 24 0 - 0 0.128 - 2 0.0778 - 4 0.00389 - 7 0.152 - 8 0.00778 - 9 0.00389 - 12 0.0623 - 13 0.00778 - 14 0.0117 - 15 0.0195 - 19 0.00778 - 21 0.0272 - 26 0.0389 - 29 0.0739 - 30 0.00778 - 31 0.00778 - 32 0.0661 - 35 0.0311 - 40 0.105 - 41 0.136 - 42 0.00778 - 43 0.00778 - 45 0.00389 - 46 0.00389 - - 48 8 7 0 - 7 0.125 - 12 0.125 - 32 0.125 - 33 0.125 - 40 0.125 - 41 0.25 - 47 0.125 - - 55 10 7 0 - 4 0.1 - 7 0.2 - 12 0.1 - 21 0.1 - 29 0.1 - 40 0.3 - 41 0.1 - - 60 11 6 0 - 0 0.273 - 7 0.0909 - 30 0.0909 - 35 0.182 - 40 0.182 - 41 0.182 - - 17 3 1 0 - 4 1 - - 18 8656 34 12 - 0 0.00508 - 2 0.0067 - 3 0.0261 - 4 0.000231 - 6 0.000231 - 7 0.00208 - 8 0.207 - 9 0.00173 - 10 0.026 - 12 0.00104 - 13 0.417 - 14 0.13 - 15 0.104 - 16 0.00381 - 19 0.000116 - 21 0.00555 - 22 0.000347 - 23 0.00208 - 26 0.000231 - 28 0.000347 - 29 0.00439 - 30 0.0117 - 31 0.00739 - 32 0.000462 - 33 0.00104 - 38 0.000578 - 39 0.0101 - 40 0.00485 - 41 0.00601 - 42 0.000231 - 43 0.000924 - 44 0.000231 - 45 0.0117 - 46 0.000231 - - 3 25 6 0 - 3 0.04 - 8 0.36 - 13 0.36 - 14 0.12 - 40 0.08 - 41 0.04 - - 6 2 2 0 - 13 0.5 - 46 0.5 - - 8 12 4 0 - 13 0.417 - 14 0.417 - 15 0.0833 - 29 0.0833 - - 13 2900 22 0 - 2 0.00103 - 3 0.0238 - 6 0.00069 - 7 0.00103 - 8 0.236 - 9 0.00172 - 10 0.04 - 13 0.477 - 14 0.132 - 15 0.0441 - 16 0.00103 - 21 0.00483 - 22 0.000345 - 23 0.0031 - 30 0.00793 - 31 0.00655 - 39 0.00931 - 40 0.00207 - 41 0.000345 - 42 0.000345 - 43 0.00069 - 45 0.00724 - - 14 544 15 0 - 2 0.00368 - 3 0.011 - 7 0.00184 - 8 0.0974 - 9 0.00184 - 10 0.00184 - 13 0.417 - 14 0.415 - 15 0.0129 - 23 0.00184 - 26 0.00368 - 30 0.0147 - 31 0.00735 - 40 0.00184 - 45 0.00735 - - 15 5059 31 0 - 0 0.0083 - 2 0.0103 - 3 0.0289 - 4 0.000395 - 7 0.00277 - 8 0.205 - 9 0.00178 - 10 0.0213 - 12 0.00178 - 13 0.381 - 14 0.0996 - 15 0.147 - 16 0.00534 - 19 0.000198 - 21 0.00672 - 22 0.000395 - 23 0.00158 - 29 0.00731 - 30 0.0134 - 31 0.00791 - 32 0.000791 - 33 0.00178 - 38 0.000988 - 39 0.0117 - 40 0.00633 - 41 0.00988 - 42 0.000198 - 43 0.00119 - 44 0.000395 - 45 0.015 - 46 0.000198 - - 16 66 9 0 - 0 0.0152 - 3 0.0303 - 8 0.121 - 13 0.545 - 14 0.0455 - 15 0.167 - 16 0.0455 - 30 0.0152 - 31 0.0152 - - 21 3 2 0 - 13 0.667 - 40 0.333 - - 28 1 1 0 - 0 1 - - 47 4 2 0 - 15 0.25 - 28 0.75 - - 55 3 2 0 - 2 0.333 - 13 0.667 - - 57 19 6 0 - 3 0.0526 - 8 0.0526 - 13 0.421 - 15 0.368 - 30 0.0526 - 39 0.0526 - - 19 17366 41 5 - 0 0.301 - 1 0.000173 - 2 0.0076 - 3 0.000864 - 4 0.012 - 5 0.000115 - 6 5.76e-05 - 7 0.0348 - 8 0.00749 - 9 0.00132 - 10 0.000115 - 12 0.124 - 13 0.00202 - 14 0.000749 - 15 0.000576 - 17 0.000115 - 18 0.000633 - 19 0.00161 - 20 0.000115 - 21 0.0537 - 22 0.00155 - 23 0.000173 - 24 0.00455 - 26 0.0163 - 28 0.0117 - 29 0.166 - 30 0.00242 - 31 0.0019 - 32 0.0774 - 33 0.106 - 34 0.000288 - 35 0.000633 - 37 0.00121 - 39 0.000288 - 40 0.0313 - 41 0.021 - 42 0.00334 - 43 0.000461 - 44 0.000921 - 45 0.00346 - 46 0.000461 - - 4 12 6 0 - 0 0.417 - 7 0.0833 - 12 0.25 - 29 0.0833 - 33 0.0833 - 40 0.0833 - - 13 2 2 0 - 26 0.5 - 40 0.5 - - 15 4 4 0 - 0 0.25 - 29 0.25 - 33 0.25 - 37 0.25 - - 21 3 2 0 - 12 0.667 - 41 0.333 - - 44 2 1 0 - 43 1 - - 20 34 11 0 - 0 0.0882 - 1 0.0588 - 13 0.0882 - 15 0.0294 - 21 0.0294 - 30 0.235 - 39 0.324 - 40 0.0294 - 41 0.0588 - 42 0.0294 - 43 0.0294 - - 21 674 33 12 - 0 0.049 - 2 0.0208 - 3 0.0089 - 4 0.0831 - 6 0.00148 - 7 0.2 - 8 0.0386 - 9 0.0134 - 12 0.0119 - 13 0.0326 - 14 0.0208 - 15 0.0208 - 19 0.0163 - 20 0.00148 - 21 0.0371 - 22 0.0089 - 26 0.0252 - 28 0.00297 - 29 0.00445 - 30 0.00593 - 31 0.00742 - 32 0.00445 - 33 0.0104 - 34 0.00148 - 37 0.00148 - 39 0.0089 - 40 0.168 - 41 0.169 - 42 0.0178 - 43 0.00148 - 44 0.00297 - 46 0.00148 - 47 0.00148 - - 2 50 13 0 - 3 0.02 - 4 0.38 - 8 0.02 - 9 0.02 - 13 0.14 - 14 0.08 - 15 0.1 - 21 0.06 - 28 0.02 - 39 0.02 - 40 0.06 - 41 0.06 - 42 0.02 - - 3 49 11 0 - 2 0.0408 - 3 0.0204 - 7 0.0612 - 8 0.0204 - 13 0.0816 - 29 0.0204 - 37 0.0204 - 40 0.571 - 41 0.122 - 42 0.0204 - 47 0.0204 - - 4 39 12 0 - 0 0.0256 - 4 0.0256 - 6 0.0256 - 7 0.0513 - 8 0.359 - 9 0.179 - 21 0.0256 - 22 0.154 - 30 0.0256 - 33 0.0256 - 40 0.0769 - 41 0.0256 - - 13 84 16 0 - 0 0.0714 - 2 0.0476 - 7 0.202 - 12 0.0119 - 13 0.0119 - 14 0.0119 - 19 0.0238 - 21 0.0238 - 26 0.0476 - 31 0.0119 - 33 0.0357 - 40 0.19 - 41 0.226 - 42 0.0595 - 44 0.0119 - 46 0.0119 - - 14 20 6 0 - 7 0.1 - 15 0.05 - 32 0.05 - 40 0.45 - 41 0.3 - 42 0.05 - - 15 7 5 0 - 2 0.143 - 29 0.143 - 40 0.143 - 41 0.429 - 42 0.143 - - 21 46 11 0 - 4 0.0435 - 7 0.674 - 8 0.0217 - 15 0.0217 - 19 0.0435 - 21 0.0435 - 26 0.0217 - 30 0.0217 - 31 0.0217 - 40 0.0652 - 41 0.0217 - - 41 60 12 0 - 3 0.05 - 4 0.333 - 7 0.0167 - 8 0.1 - 9 0.0167 - 13 0.117 - 14 0.117 - 15 0.0833 - 20 0.0167 - 21 0.1 - 33 0.0167 - 41 0.0333 - - 42 7 2 0 - 4 0.857 - 15 0.143 - - 47 289 26 0 - 0 0.0865 - 2 0.0242 - 3 0.00346 - 4 0.0242 - 7 0.263 - 8 0.0104 - 12 0.0242 - 13 0.0104 - 14 0.00346 - 15 0.00346 - 19 0.0242 - 21 0.0138 - 26 0.0346 - 28 0.00346 - 29 0.00346 - 30 0.00692 - 31 0.0104 - 32 0.00692 - 33 0.00692 - 34 0.00346 - 39 0.0173 - 40 0.163 - 41 0.235 - 42 0.0104 - 43 0.00346 - 44 0.00346 - - 49 2 2 0 - 4 0.5 - 14 0.5 - - 55 10 4 0 - 21 0.5 - 26 0.1 - 40 0.1 - 41 0.3 - - 22 48 11 2 - 2 0.0625 - 7 0.521 - 8 0.0417 - 12 0.0208 - 21 0.0208 - 29 0.0208 - 31 0.0208 - 37 0.0208 - 40 0.0833 - 41 0.167 - 42 0.0208 - - 4 2 2 0 - 8 0.5 - 40 0.5 - - 14 2 2 0 - 29 0.5 - 40 0.5 - - 23 19 8 1 - 7 0.579 - 8 0.0526 - 19 0.0526 - 21 0.105 - 29 0.0526 - 31 0.0526 - 40 0.0526 - 41 0.0526 - - 4 4 4 0 - 8 0.25 - 31 0.25 - 40 0.25 - 41 0.25 - - 24 8 3 0 - 7 0.5 - 40 0.25 - 41 0.25 - - 25 13 2 0 - 3 0.0769 - 42 0.923 - - 26 52 5 0 - 3 0.808 - 14 0.0192 - 15 0.0192 - 28 0.0385 - 39 0.115 - - 27 6 4 0 - 40 0.333 - 41 0.167 - 42 0.333 - 46 0.167 - - 28 92 16 2 - 0 0.0109 - 2 0.0326 - 4 0.087 - 7 0.424 - 8 0.0326 - 13 0.0109 - 15 0.0109 - 21 0.0435 - 26 0.0761 - 29 0.0217 - 40 0.0978 - 41 0.087 - 42 0.0217 - 45 0.0109 - 46 0.0217 - 47 0.0109 - - 13 5 4 0 - 7 0.2 - 26 0.4 - 29 0.2 - 45 0.2 - - 21 3 3 0 - 4 0.333 - 7 0.333 - 47 0.333 - - 29 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 29 0.167 - 33 0.167 - - 30 261 26 5 - 0 0.069 - 2 0.0307 - 3 0.00383 - 4 0.00766 - 7 0.429 - 8 0.0192 - 12 0.0268 - 13 0.00383 - 14 0.00383 - 19 0.00383 - 21 0.0307 - 22 0.00383 - 26 0.0307 - 29 0.023 - 30 0.00383 - 31 0.00766 - 32 0.00383 - 33 0.0153 - 37 0.00383 - 39 0.0115 - 40 0.138 - 41 0.0958 - 42 0.0153 - 43 0.00383 - 44 0.00383 - 46 0.0115 - - 2 9 3 0 - 7 0.778 - 21 0.111 - 40 0.111 - - 4 47 12 0 - 0 0.191 - 2 0.0213 - 3 0.0213 - 7 0.277 - 12 0.106 - 21 0.0426 - 29 0.0426 - 33 0.0851 - 39 0.0638 - 40 0.0426 - 41 0.0638 - 42 0.0426 - - 8 17 8 0 - 7 0.353 - 12 0.0588 - 21 0.0588 - 26 0.0588 - 29 0.0588 - 31 0.0588 - 40 0.118 - 41 0.235 - - 13 28 11 0 - 0 0.0357 - 2 0.0714 - 4 0.0357 - 7 0.536 - 8 0.0357 - 13 0.0357 - 14 0.0357 - 22 0.0357 - 26 0.0714 - 41 0.0714 - 44 0.0357 - - 47 136 19 0 - 0 0.0588 - 2 0.0294 - 4 0.00735 - 7 0.397 - 8 0.0221 - 12 0.00735 - 19 0.00735 - 21 0.0294 - 26 0.0368 - 29 0.0147 - 30 0.00735 - 31 0.00735 - 32 0.00735 - 37 0.00735 - 40 0.206 - 41 0.11 - 42 0.0147 - 43 0.00735 - 46 0.0221 - - 31 60 15 7 - 0 0.0333 - 2 0.0333 - 3 0.0167 - 4 0.0167 - 7 0.0833 - 12 0.05 - 14 0.0167 - 24 0.0167 - 26 0.0333 - 29 0.0833 - 30 0.0167 - 39 0.483 - 40 0.0667 - 41 0.0333 - 45 0.0167 - - 3 2 2 0 - 2 0.5 - 14 0.5 - - 4 33 6 0 - 0 0.0303 - 2 0.0303 - 3 0.0303 - 12 0.0303 - 39 0.848 - 40 0.0303 - - 13 7 6 0 - 4 0.143 - 7 0.286 - 12 0.143 - 26 0.143 - 41 0.143 - 45 0.143 - - 15 2 1 0 - 29 1 - - 21 2 2 0 - 7 0.5 - 41 0.5 - - 47 8 5 0 - 0 0.125 - 12 0.125 - 24 0.125 - 29 0.375 - 40 0.25 - - 55 2 2 0 - 26 0.5 - 30 0.5 - - 32 3 3 0 - 0 0.333 - 32 0.333 - 33 0.333 - - 33 65 17 5 - 0 0.0154 - 3 0.0462 - 4 0.169 - 7 0.138 - 8 0.0923 - 10 0.0154 - 13 0.0154 - 14 0.0308 - 19 0.0615 - 21 0.0308 - 22 0.0154 - 26 0.108 - 30 0.0154 - 34 0.0154 - 40 0.0154 - 41 0.2 - 45 0.0154 - - 2 6 3 0 - 4 0.5 - 7 0.333 - 8 0.167 - - 13 24 10 0 - 4 0.125 - 7 0.125 - 8 0.0417 - 13 0.0417 - 14 0.0417 - 19 0.0833 - 21 0.0417 - 26 0.167 - 34 0.0417 - 41 0.292 - - 14 3 3 0 - 8 0.333 - 19 0.333 - 45 0.333 - - 15 8 6 0 - 0 0.125 - 3 0.25 - 4 0.125 - 7 0.125 - 8 0.25 - 41 0.125 - - 47 17 12 0 - 3 0.0588 - 4 0.0588 - 7 0.176 - 8 0.0588 - 10 0.0588 - 19 0.0588 - 21 0.0588 - 22 0.0588 - 26 0.0588 - 30 0.0588 - 40 0.0588 - 41 0.235 - - 34 58 6 0 - 0 0.259 - 4 0.0172 - 12 0.379 - 21 0.0345 - 29 0.19 - 33 0.121 - - 35 6 4 0 - 0 0.333 - 26 0.167 - 40 0.333 - 41 0.167 - - 39 1790 1 0 - 3 1 - - 40 1001 17 7 - 0 0.000999 - 3 0.002 - 4 0.000999 - 12 0.000999 - 13 0.000999 - 14 0.002 - 15 0.00599 - 21 0.000999 - 26 0.000999 - 31 0.000999 - 35 0.000999 - 42 0.004 - 43 0.0679 - 44 0.0509 - 45 0.000999 - 46 0.014 - 47 0.844 - - 3 10 3 0 - 21 0.1 - 26 0.1 - 47 0.8 - - 15 187 8 0 - 0 0.00535 - 12 0.00535 - 15 0.0321 - 43 0.337 - 44 0.267 - 45 0.00535 - 46 0.0214 - 47 0.326 - - 55 492 11 0 - 3 0.00407 - 4 0.00203 - 13 0.00203 - 14 0.00407 - 31 0.00203 - 35 0.00203 - 42 0.00813 - 43 0.00203 - 44 0.00203 - 46 0.0061 - 47 0.965 - - 57 129 3 0 - 43 0.00775 - 46 0.0233 - 47 0.969 - - 62 40 1 0 - 47 1 - - 67 1 1 0 - 46 1 - - 69 35 1 0 - 47 1 - - 41 20629 39 17 - 0 0.0576 - 1 0.000145 - 2 0.0758 - 3 0.0369 - 4 0.147 - 6 0.000436 - 7 0.0581 - 8 0.0435 - 9 0.00145 - 10 0.000436 - 12 0.0155 - 13 0.0636 - 14 0.0132 - 15 0.126 - 16 0.00097 - 17 4.85e-05 - 19 0.00102 - 20 0.00305 - 21 0.044 - 22 0.000291 - 23 0.000242 - 24 0.000145 - 26 0.01 - 27 4.85e-05 - 28 0.000436 - 29 0.0714 - 30 0.0248 - 31 0.0326 - 32 0.00315 - 33 0.0252 - 34 0.0794 - 35 0.028 - 36 0.00499 - 37 0.014 - 39 0.00155 - 42 0.000145 - 44 0.000339 - 45 0.00344 - 46 0.0109 - - 2 7 3 0 - 7 0.429 - 21 0.429 - 22 0.143 - - 3 358 9 0 - 0 0.0112 - 2 0.00559 - 3 0.888 - 4 0.00279 - 7 0.0447 - 26 0.0196 - 31 0.0196 - 32 0.00559 - 46 0.00279 - - 13 26 10 0 - 3 0.0385 - 4 0.0385 - 6 0.0385 - 7 0.269 - 21 0.0385 - 26 0.0385 - 29 0.0385 - 30 0.0385 - 34 0.0385 - 46 0.423 - - 14 11 6 0 - 0 0.0909 - 6 0.0909 - 7 0.0909 - 13 0.0909 - 21 0.273 - 46 0.364 - - 15 18 9 0 - 0 0.0556 - 2 0.0556 - 3 0.0556 - 4 0.0556 - 7 0.278 - 14 0.0556 - 21 0.111 - 29 0.278 - 33 0.0556 - - 27 1 1 0 - 46 1 - - 48 242 18 0 - 0 0.211 - 2 0.0165 - 4 0.0207 - 7 0.128 - 8 0.0165 - 12 0.0868 - 13 0.0165 - 15 0.00826 - 21 0.062 - 22 0.00413 - 26 0.0372 - 29 0.062 - 30 0.0207 - 31 0.215 - 32 0.0124 - 33 0.0579 - 34 0.0207 - 37 0.00413 - - 49 44 13 0 - 0 0.136 - 2 0.159 - 4 0.182 - 7 0.205 - 12 0.0227 - 13 0.0227 - 15 0.0682 - 21 0.0455 - 29 0.0227 - 30 0.0455 - 31 0.0455 - 32 0.0227 - 46 0.0227 - - 55 17277 39 0 - 0 0.0341 - 1 0.000116 - 2 0.0865 - 3 0.0252 - 4 0.17 - 6 0.000347 - 7 0.0512 - 8 0.0478 - 9 0.00145 - 10 0.000463 - 12 0.00666 - 13 0.0737 - 14 0.0153 - 15 0.148 - 16 0.00116 - 17 5.79e-05 - 19 0.000868 - 20 0.00359 - 21 0.0416 - 22 0.000232 - 23 0.000289 - 24 5.79e-05 - 26 0.007 - 27 5.79e-05 - 28 0.000405 - 29 0.0587 - 30 0.0212 - 31 0.0301 - 32 0.00127 - 33 0.0201 - 34 0.0843 - 35 0.0312 - 36 0.00561 - 37 0.0149 - 39 0.00185 - 42 0.000174 - 44 0.000347 - 45 0.00313 - 46 0.0102 - - 56 4 3 0 - 12 0.25 - 30 0.25 - 46 0.5 - - 57 1015 30 0 - 0 0.106 - 1 0.000985 - 2 0.0177 - 3 0.00394 - 4 0.0236 - 6 0.000985 - 7 0.164 - 8 0.0433 - 9 0.00394 - 12 0.0286 - 13 0.00591 - 14 0.00197 - 15 0.0197 - 20 0.000985 - 21 0.07 - 24 0.000985 - 26 0.0424 - 28 0.000985 - 29 0.0562 - 30 0.1 - 31 0.067 - 32 0.00788 - 33 0.0177 - 34 0.144 - 35 0.0256 - 36 0.00493 - 37 0.0246 - 44 0.000985 - 45 0.00296 - 46 0.0118 - - 58 63 17 0 - 0 0.0317 - 2 0.0317 - 3 0.0159 - 4 0.27 - 7 0.0794 - 8 0.0476 - 9 0.0159 - 13 0.159 - 15 0.0159 - 21 0.0317 - 29 0.0317 - 30 0.0317 - 33 0.0159 - 34 0.0317 - 35 0.127 - 37 0.0159 - 45 0.0476 - - 61 13 6 0 - 0 0.308 - 7 0.0769 - 12 0.231 - 29 0.231 - 31 0.0769 - 33 0.0769 - - 62 20 11 0 - 0 0.05 - 2 0.05 - 3 0.05 - 4 0.1 - 7 0.1 - 8 0.1 - 13 0.15 - 21 0.05 - 29 0.05 - 30 0.1 - 46 0.2 - - 64 1038 24 0 - 0 0.286 - 2 0.0231 - 4 0.0116 - 7 0.0222 - 8 0.0106 - 10 0.000963 - 12 0.0983 - 13 0.00771 - 14 0.00482 - 15 0.0154 - 19 0.00482 - 21 0.0626 - 26 0.0125 - 28 0.000963 - 29 0.283 - 30 0.0164 - 31 0.0135 - 32 0.0183 - 33 0.0877 - 34 0.00289 - 35 0.000963 - 37 0.000963 - 45 0.00867 - 46 0.00578 - - 68 2 2 0 - 0 0.5 - 33 0.5 - - 69 481 24 0 - 0 0.254 - 2 0.0187 - 4 0.0125 - 7 0.0915 - 8 0.0166 - 12 0.0977 - 13 0.00832 - 14 0.00208 - 15 0.00832 - 19 0.00208 - 21 0.0478 - 24 0.00208 - 26 0.027 - 29 0.166 - 30 0.0291 - 31 0.0187 - 32 0.0208 - 33 0.0956 - 34 0.0499 - 35 0.00624 - 36 0.00208 - 37 0.00416 - 45 0.00416 - 46 0.0146 - - 42 2040 38 16 - 0 0.0211 - 2 0.0422 - 3 0.259 - 4 0.102 - 5 0.00049 - 7 0.0284 - 8 0.0373 - 9 0.00294 - 10 0.00049 - 11 0.00098 - 12 0.00686 - 13 0.0422 - 14 0.0304 - 15 0.123 - 16 0.00098 - 19 0.00343 - 20 0.00392 - 21 0.0338 - 22 0.00049 - 25 0.00049 - 26 0.00833 - 28 0.00588 - 29 0.0137 - 30 0.0191 - 31 0.0132 - 32 0.00196 - 33 0.00392 - 34 0.0123 - 35 0.00539 - 37 0.00637 - 38 0.00098 - 39 0.0574 - 40 0.00441 - 42 0.00049 - 44 0.00049 - 45 0.0152 - 46 0.00098 - 47 0.0897 - - 3 11 1 0 - 47 1 - - 13 23 4 0 - 7 0.087 - 8 0.0435 - 26 0.13 - 47 0.739 - - 14 55 4 0 - 2 0.0182 - 7 0.0182 - 40 0.127 - 47 0.836 - - 15 54 1 0 - 47 1 - - 16 10 2 0 - 40 0.2 - 47 0.8 - - 40 3 2 0 - 15 0.333 - 39 0.667 - - 41 3 2 0 - 13 0.333 - 39 0.667 - - 46 11 7 0 - 4 0.364 - 7 0.0909 - 8 0.0909 - 12 0.0909 - 13 0.0909 - 14 0.182 - 15 0.0909 - - 48 5 5 0 - 0 0.2 - 2 0.2 - 7 0.2 - 12 0.2 - 21 0.2 - - 49 2 2 0 - 7 0.5 - 29 0.5 - - 55 1709 36 0 - 0 0.0164 - 2 0.0474 - 3 0.305 - 4 0.116 - 5 0.000585 - 7 0.0199 - 8 0.0392 - 9 0.00351 - 10 0.000585 - 11 0.00117 - 12 0.00293 - 13 0.0486 - 14 0.0339 - 15 0.143 - 16 0.00117 - 19 0.00351 - 20 0.00468 - 21 0.0363 - 22 0.000585 - 25 0.000585 - 26 0.00644 - 28 0.00702 - 29 0.00995 - 30 0.0164 - 31 0.0135 - 32 0.000585 - 33 0.0041 - 34 0.0117 - 35 0.00585 - 37 0.00702 - 38 0.00117 - 39 0.0655 - 42 0.000585 - 44 0.000585 - 45 0.0164 - 47 0.00819 - - 57 51 19 0 - 0 0.118 - 2 0.0196 - 4 0.0588 - 7 0.216 - 8 0.0588 - 12 0.0588 - 15 0.0392 - 19 0.0196 - 21 0.0392 - 26 0.0196 - 29 0.0392 - 30 0.0784 - 33 0.0196 - 34 0.0784 - 35 0.0196 - 37 0.0196 - 45 0.0196 - 46 0.0196 - 47 0.0588 - - 58 39 9 0 - 3 0.179 - 7 0.0256 - 8 0.0256 - 21 0.0256 - 29 0.0513 - 31 0.0513 - 34 0.0256 - 45 0.0256 - 47 0.59 - - 62 5 4 0 - 2 0.2 - 7 0.2 - 30 0.4 - 46 0.2 - - 64 34 15 0 - 0 0.176 - 2 0.0294 - 4 0.0882 - 7 0.0882 - 8 0.0588 - 12 0.118 - 13 0.0294 - 14 0.0588 - 21 0.0294 - 26 0.0294 - 29 0.118 - 30 0.0294 - 31 0.0588 - 32 0.0294 - 47 0.0588 - - 69 20 11 0 - 0 0.1 - 4 0.05 - 7 0.1 - 8 0.05 - 21 0.1 - 26 0.05 - 29 0.1 - 30 0.15 - 32 0.1 - 45 0.05 - 47 0.15 - - 43 97 22 8 - 0 0.0928 - 2 0.0825 - 4 0.0206 - 6 0.0103 - 7 0.144 - 12 0.0412 - 15 0.0103 - 19 0.0103 - 21 0.0206 - 26 0.0103 - 29 0.0103 - 30 0.0103 - 31 0.0103 - 32 0.0206 - 33 0.0619 - 34 0.0103 - 35 0.0103 - 40 0.134 - 41 0.113 - 42 0.103 - 44 0.0103 - 47 0.0619 - - 13 12 7 0 - 0 0.0833 - 2 0.0833 - 7 0.0833 - 33 0.333 - 40 0.0833 - 41 0.167 - 42 0.167 - - 14 8 7 0 - 0 0.25 - 7 0.125 - 12 0.125 - 31 0.125 - 32 0.125 - 34 0.125 - 35 0.125 - - 15 12 9 0 - 0 0.167 - 4 0.0833 - 7 0.0833 - 12 0.0833 - 26 0.0833 - 29 0.0833 - 40 0.0833 - 42 0.25 - 47 0.0833 - - 40 2 1 0 - 47 1 - - 55 37 13 0 - 0 0.027 - 2 0.135 - 4 0.027 - 6 0.027 - 7 0.189 - 15 0.027 - 19 0.027 - 33 0.027 - 40 0.216 - 41 0.135 - 42 0.108 - 44 0.027 - 47 0.027 - - 57 16 10 0 - 0 0.188 - 2 0.125 - 7 0.125 - 12 0.125 - 21 0.0625 - 30 0.0625 - 32 0.0625 - 40 0.0625 - 41 0.0625 - 47 0.125 - - 58 2 1 0 - 41 1 - - 69 2 2 0 - 21 0.5 - 40 0.5 - - 44 52 11 0 - 2 0.0769 - 3 0.0192 - 4 0.0577 - 7 0.25 - 8 0.0385 - 13 0.0385 - 15 0.25 - 21 0.0192 - 30 0.0385 - 35 0.0192 - 39 0.192 - - 45 238 22 10 - 0 0.0252 - 2 0.0252 - 3 0.0084 - 4 0.126 - 6 0.0168 - 7 0.0924 - 8 0.0798 - 9 0.0042 - 12 0.0042 - 13 0.0924 - 15 0.311 - 16 0.0084 - 19 0.0546 - 21 0.0294 - 26 0.0042 - 28 0.021 - 30 0.0168 - 31 0.0252 - 32 0.0042 - 34 0.0168 - 35 0.021 - 37 0.0126 - - 2 30 9 0 - 0 0.0333 - 3 0.0333 - 4 0.0667 - 8 0.133 - 9 0.0333 - 13 0.167 - 15 0.467 - 16 0.0333 - 37 0.0333 - - 8 5 4 0 - 6 0.2 - 8 0.2 - 15 0.4 - 21 0.2 - - 13 11 6 0 - 3 0.0909 - 4 0.0909 - 6 0.0909 - 7 0.0909 - 15 0.545 - 30 0.0909 - - 41 40 14 0 - 0 0.025 - 2 0.05 - 4 0.225 - 7 0.05 - 8 0.075 - 12 0.025 - 13 0.125 - 15 0.175 - 16 0.025 - 19 0.05 - 21 0.05 - 28 0.05 - 30 0.025 - 35 0.05 - - 42 21 8 0 - 0 0.143 - 4 0.143 - 7 0.0476 - 8 0.143 - 13 0.0476 - 19 0.381 - 31 0.0476 - 37 0.0476 - - 46 8 3 0 - 4 0.25 - 13 0.125 - 15 0.625 - - 55 107 16 0 - 2 0.00935 - 4 0.121 - 6 0.0187 - 7 0.15 - 8 0.0467 - 13 0.0935 - 15 0.355 - 19 0.028 - 21 0.0187 - 26 0.00935 - 28 0.028 - 30 0.00935 - 31 0.0467 - 34 0.028 - 35 0.028 - 37 0.00935 - - 57 5 4 0 - 2 0.2 - 7 0.4 - 8 0.2 - 34 0.2 - - 58 6 4 0 - 0 0.167 - 2 0.333 - 21 0.333 - 30 0.167 - - 69 1 1 0 - 32 1 - - 46 898 32 13 - 0 0.0635 - 1 0.00223 - 2 0.0668 - 3 0.00445 - 4 0.0568 - 7 0.345 - 8 0.0212 - 12 0.0167 - 13 0.00557 - 14 0.00223 - 15 0.0167 - 19 0.0078 - 20 0.00111 - 21 0.0323 - 26 0.0646 - 29 0.0212 - 30 0.0212 - 31 0.0345 - 32 0.00334 - 33 0.0167 - 34 0.0624 - 35 0.0111 - 36 0.00223 - 37 0.0122 - 40 0.00334 - 41 0.00668 - 42 0.0323 - 43 0.00334 - 44 0.0379 - 45 0.00891 - 46 0.00223 - 47 0.0134 - - 6 2 2 0 - 0 0.5 - 41 0.5 - - 8 3 3 0 - 7 0.333 - 33 0.333 - 42 0.333 - - 13 251 24 0 - 0 0.0598 - 1 0.00398 - 2 0.0478 - 4 0.00797 - 7 0.498 - 8 0.012 - 12 0.0398 - 19 0.00398 - 21 0.0279 - 26 0.0876 - 29 0.012 - 30 0.0159 - 31 0.0359 - 33 0.00797 - 34 0.0518 - 35 0.00797 - 37 0.012 - 40 0.00797 - 41 0.00398 - 42 0.0279 - 43 0.00398 - 44 0.0159 - 46 0.00398 - 47 0.00398 - - 14 66 15 0 - 0 0.0606 - 2 0.0606 - 7 0.333 - 8 0.0303 - 12 0.0152 - 19 0.0152 - 21 0.0455 - 26 0.152 - 29 0.0152 - 31 0.0455 - 32 0.0455 - 34 0.0455 - 35 0.0606 - 37 0.0152 - 42 0.0606 - - 15 21 11 0 - 2 0.0476 - 4 0.0476 - 7 0.286 - 12 0.0952 - 21 0.0952 - 26 0.0476 - 33 0.0952 - 34 0.0476 - 40 0.0476 - 41 0.143 - 46 0.0476 - - 40 11 3 0 - 15 0.182 - 21 0.0909 - 47 0.727 - - 41 222 23 0 - 0 0.0721 - 2 0.045 - 3 0.018 - 4 0.203 - 7 0.0856 - 8 0.0405 - 12 0.0045 - 13 0.018 - 14 0.00901 - 15 0.0541 - 19 0.00901 - 20 0.0045 - 21 0.0495 - 26 0.018 - 29 0.045 - 30 0.036 - 31 0.045 - 33 0.0225 - 34 0.144 - 35 0.018 - 36 0.00901 - 37 0.0135 - 45 0.036 - - 42 2 2 0 - 33 0.5 - 47 0.5 - - 55 241 21 0 - 0 0.0207 - 1 0.00415 - 2 0.12 - 4 0.0124 - 7 0.448 - 8 0.0166 - 15 0.00415 - 19 0.0083 - 21 0.0124 - 26 0.083 - 29 0.0083 - 30 0.0207 - 31 0.0332 - 33 0.0083 - 34 0.0249 - 37 0.0124 - 41 0.00415 - 42 0.0539 - 43 0.0083 - 44 0.0913 - 47 0.00415 - - 56 26 9 0 - 0 0.269 - 7 0.231 - 12 0.0385 - 19 0.0385 - 29 0.115 - 33 0.0385 - 34 0.0385 - 37 0.0385 - 44 0.192 - - 57 34 10 0 - 0 0.147 - 2 0.118 - 7 0.471 - 8 0.0294 - 13 0.0294 - 21 0.0294 - 26 0.0294 - 30 0.0588 - 31 0.0294 - 42 0.0588 - - 62 10 6 0 - 0 0.2 - 7 0.2 - 21 0.1 - 33 0.1 - 42 0.1 - 44 0.3 - - 65 1 1 0 - 47 1 - - 47 311752 46 59 - 0 0.0863 - 1 0.000289 - 2 0.0341 - 3 0.00328 - 4 0.0119 - 5 0.000103 - 6 4.49e-05 - 7 0.192 - 8 0.0132 - 9 0.000908 - 10 0.000763 - 12 0.0303 - 13 0.0146 - 14 0.00451 - 15 0.00615 - 16 0.000122 - 17 2.57e-05 - 18 0.000176 - 19 0.00338 - 20 0.000186 - 21 0.0233 - 22 0.00185 - 23 0.00017 - 24 0.000565 - 25 2.89e-05 - 26 0.031 - 28 0.00225 - 29 0.0626 - 30 0.00728 - 31 0.0105 - 32 0.0152 - 33 0.0222 - 34 0.00651 - 35 0.00307 - 36 0.00017 - 37 0.00209 - 38 1.92e-05 - 39 0.000504 - 40 0.207 - 41 0.166 - 42 0.0179 - 43 0.0038 - 44 0.00306 - 45 0.00251 - 46 0.00252 - 47 0.00512 - - 0 56 13 0 - 0 0.0179 - 7 0.125 - 8 0.0893 - 13 0.0357 - 15 0.0179 - 21 0.25 - 23 0.179 - 29 0.107 - 30 0.0714 - 31 0.0536 - 41 0.0179 - 43 0.0179 - 45 0.0179 - - 1 3 2 0 - 26 0.333 - 40 0.667 - - 2 3 2 0 - 0 0.333 - 21 0.667 - - 3 7697 38 0 - 0 0.019 - 2 0.0298 - 3 0.00065 - 4 0.099 - 6 0.00013 - 7 0.178 - 8 0.00429 - 9 0.00208 - 10 0.00013 - 12 0.00754 - 13 0.00455 - 14 0.00143 - 15 0.00429 - 19 0.00247 - 20 0.00026 - 21 0.0052 - 22 0.00026 - 23 0.00013 - 25 0.00013 - 26 0.0958 - 28 0.00013 - 29 0.0151 - 30 0.00338 - 31 0.00559 - 32 0.00117 - 33 0.00351 - 34 0.00273 - 35 0.000909 - 37 0.00338 - 39 0.00013 - 40 0.212 - 41 0.251 - 42 0.0227 - 43 0.0178 - 44 0.00182 - 45 0.0013 - 46 0.00065 - 47 0.00208 - - 4 2457 34 0 - 0 0.258 - 1 0.000814 - 2 0.00895 - 3 0.00204 - 4 0.00611 - 7 0.286 - 8 0.00773 - 9 0.000407 - 10 0.000407 - 12 0.0696 - 13 0.00692 - 14 0.00122 - 15 0.00122 - 18 0.000814 - 19 0.00895 - 21 0.0232 - 24 0.00204 - 26 0.00733 - 28 0.00407 - 29 0.0281 - 30 0.00692 - 31 0.0248 - 32 0.0228 - 33 0.0619 - 34 0.00611 - 35 0.0265 - 37 0.000407 - 40 0.0419 - 41 0.0696 - 42 0.0106 - 44 0.000407 - 45 0.00122 - 46 0.000814 - 47 0.00204 - - 5 861 10 0 - 0 0.861 - 4 0.00232 - 12 0.0848 - 18 0.0128 - 19 0.00116 - 21 0.0244 - 26 0.00116 - 33 0.00697 - 35 0.00116 - 41 0.00465 - - 6 59 14 0 - 0 0.0678 - 2 0.0339 - 7 0.102 - 12 0.0339 - 26 0.0678 - 31 0.0169 - 33 0.0678 - 40 0.254 - 41 0.203 - 42 0.0339 - 43 0.0169 - 44 0.0339 - 45 0.0169 - 46 0.0508 - - 7 79 19 0 - 0 0.152 - 2 0.0127 - 4 0.0506 - 5 0.0127 - 7 0.228 - 8 0.0127 - 12 0.038 - 18 0.0253 - 19 0.038 - 21 0.0253 - 22 0.0127 - 24 0.0127 - 26 0.0253 - 29 0.0127 - 31 0.0633 - 33 0.038 - 40 0.114 - 41 0.114 - 47 0.0127 - - 8 1187 34 0 - 0 0.0666 - 1 0.000842 - 2 0.0371 - 3 0.00253 - 4 0.00505 - 7 0.405 - 8 0.00758 - 9 0.00421 - 10 0.000842 - 12 0.0118 - 13 0.0143 - 14 0.00505 - 15 0.00421 - 19 0.00337 - 21 0.0177 - 22 0.00337 - 24 0.000842 - 26 0.0497 - 28 0.00168 - 29 0.0286 - 30 0.00505 - 31 0.00505 - 32 0.0118 - 33 0.00927 - 34 0.00253 - 35 0.00253 - 37 0.000842 - 40 0.131 - 41 0.131 - 42 0.0194 - 43 0.00505 - 44 0.00421 - 46 0.00168 - 47 0.000842 - - 9 235 13 0 - 0 0.0213 - 2 0.00851 - 4 0.00851 - 7 0.621 - 12 0.00426 - 21 0.0255 - 26 0.0766 - 29 0.00426 - 30 0.00426 - 31 0.0128 - 40 0.115 - 41 0.0894 - 42 0.00851 - - 10 367 21 0 - 0 0.0572 - 2 0.00272 - 4 0.00817 - 5 0.00272 - 7 0.711 - 8 0.00545 - 12 0.00545 - 13 0.00817 - 19 0.00817 - 21 0.0163 - 26 0.0109 - 28 0.00272 - 29 0.00272 - 30 0.00817 - 31 0.00272 - 32 0.0327 - 37 0.00272 - 40 0.0463 - 41 0.049 - 42 0.0136 - 45 0.00272 - - 12 3 3 0 - 40 0.333 - 41 0.333 - 43 0.333 - - 13 96406 46 0 - 0 0.0637 - 1 0.000353 - 2 0.0345 - 3 0.00505 - 4 0.00829 - 5 0.000145 - 6 5.19e-05 - 7 0.333 - 8 0.00742 - 9 0.00119 - 10 4.15e-05 - 12 0.0242 - 13 0.00407 - 14 0.000944 - 15 0.0048 - 16 3.11e-05 - 17 2.07e-05 - 18 2.07e-05 - 19 0.00561 - 20 0.00027 - 21 0.0238 - 22 0.0035 - 23 0.000114 - 24 0.000467 - 25 4.15e-05 - 26 0.0426 - 28 0.00132 - 29 0.0439 - 30 0.00859 - 31 0.0141 - 32 0.00186 - 33 0.0205 - 34 0.0107 - 35 0.00337 - 36 0.000249 - 37 0.00326 - 38 1.04e-05 - 39 0.000145 - 40 0.149 - 41 0.153 - 42 0.0151 - 43 0.00195 - 44 0.00201 - 45 0.00279 - 46 0.00327 - 47 0.000685 - - 14 55109 44 0 - 0 0.0843 - 1 0.000726 - 2 0.0441 - 3 0.00132 - 4 0.0177 - 5 9.07e-05 - 7 0.251 - 8 0.0175 - 9 0.00098 - 10 3.63e-05 - 12 0.0303 - 13 0.00218 - 14 0.000817 - 15 0.00212 - 16 3.63e-05 - 17 5.44e-05 - 18 3.63e-05 - 19 0.00468 - 20 0.000163 - 21 0.0335 - 22 0.00205 - 23 0.000127 - 24 0.000653 - 25 1.81e-05 - 26 0.0385 - 28 0.00356 - 29 0.0533 - 30 0.0147 - 31 0.0227 - 32 0.0389 - 33 0.00203 - 34 0.0132 - 35 0.00744 - 36 0.000472 - 37 0.00227 - 39 0.000327 - 40 0.146 - 41 0.131 - 42 0.0194 - 43 0.00156 - 44 0.00454 - 45 0.00238 - 46 0.00281 - 47 0.00107 - - 15 37150 40 0 - 0 0.0859 - 1 8.08e-05 - 2 0.0517 - 3 0.00261 - 4 0.0052 - 5 5.38e-05 - 6 2.69e-05 - 7 0.0953 - 8 0.00377 - 9 0.000242 - 12 0.0275 - 13 0.00353 - 14 0.00116 - 15 0.00571 - 17 2.69e-05 - 18 0.000673 - 19 0.00175 - 20 0.000296 - 21 0.0225 - 22 0.000834 - 24 8.08e-05 - 26 0.0186 - 28 0.00221 - 29 0.135 - 30 0.00363 - 31 0.00186 - 32 0.00363 - 33 0.0419 - 34 0.0024 - 35 0.00145 - 37 0.00132 - 39 0.000619 - 40 0.126 - 41 0.315 - 42 0.0153 - 43 0.00729 - 44 0.00686 - 45 0.00202 - 46 0.00347 - 47 0.00331 - - 16 1540 34 0 - 0 0.123 - 2 0.0604 - 3 0.0013 - 4 0.00519 - 5 0.000649 - 7 0.11 - 8 0.00519 - 9 0.000649 - 12 0.0403 - 13 0.00519 - 14 0.00195 - 15 0.00325 - 19 0.0026 - 20 0.000649 - 21 0.026 - 22 0.000649 - 26 0.0234 - 28 0.000649 - 29 0.112 - 30 0.00584 - 31 0.0039 - 32 0.037 - 33 0.0156 - 34 0.000649 - 35 0.0169 - 36 0.000649 - 40 0.128 - 41 0.216 - 42 0.0266 - 43 0.0039 - 44 0.0039 - 45 0.00195 - 46 0.00325 - 47 0.0136 - - 17 3 1 0 - 4 1 - - 18 8655 34 0 - 0 0.00508 - 2 0.00659 - 3 0.0261 - 4 0.000231 - 6 0.000231 - 7 0.00208 - 8 0.207 - 9 0.00173 - 10 0.026 - 12 0.00104 - 13 0.417 - 14 0.13 - 15 0.104 - 16 0.00381 - 19 0.000116 - 21 0.00555 - 22 0.000347 - 23 0.00208 - 26 0.000231 - 28 0.000347 - 29 0.00439 - 30 0.0117 - 31 0.00739 - 32 0.000462 - 33 0.00104 - 38 0.000578 - 39 0.0101 - 40 0.00485 - 41 0.00601 - 42 0.000231 - 43 0.000924 - 44 0.000231 - 45 0.0117 - 46 0.000231 - - 19 17347 41 0 - 0 0.301 - 1 0.000173 - 2 0.00761 - 3 0.000807 - 4 0.0115 - 5 0.000115 - 6 5.76e-05 - 7 0.0349 - 8 0.00738 - 9 0.00133 - 10 0.000115 - 12 0.124 - 13 0.00202 - 14 0.000749 - 15 0.000576 - 17 0.000115 - 18 0.000634 - 19 0.00161 - 20 0.000115 - 21 0.0537 - 22 0.00156 - 23 0.000173 - 24 0.00455 - 26 0.0163 - 28 0.0117 - 29 0.166 - 30 0.00242 - 31 0.0019 - 32 0.0775 - 33 0.106 - 34 0.000288 - 35 0.000634 - 37 0.00121 - 39 0.000288 - 40 0.0313 - 41 0.021 - 42 0.00334 - 43 0.000346 - 44 0.000865 - 45 0.00346 - 46 0.000461 - - 20 22 10 0 - 0 0.136 - 1 0.0909 - 13 0.0909 - 15 0.0455 - 21 0.0455 - 30 0.364 - 40 0.0455 - 41 0.0909 - 42 0.0455 - 43 0.0455 - - 21 515 31 0 - 0 0.0641 - 2 0.0272 - 3 0.00388 - 4 0.0155 - 6 0.00194 - 7 0.243 - 8 0.035 - 9 0.0136 - 12 0.0155 - 13 0.0136 - 14 0.00388 - 15 0.00388 - 19 0.0194 - 21 0.0214 - 22 0.0117 - 26 0.0311 - 28 0.00388 - 29 0.00583 - 30 0.00583 - 31 0.00971 - 32 0.00583 - 33 0.0117 - 34 0.00194 - 37 0.00194 - 40 0.181 - 41 0.217 - 42 0.0214 - 43 0.00194 - 44 0.00388 - 46 0.00194 - 47 0.00194 - - 22 48 11 0 - 2 0.0625 - 7 0.521 - 8 0.0417 - 12 0.0208 - 21 0.0208 - 29 0.0208 - 31 0.0208 - 37 0.0208 - 40 0.0833 - 41 0.167 - 42 0.0208 - - 23 19 8 0 - 7 0.579 - 8 0.0526 - 19 0.0526 - 21 0.105 - 29 0.0526 - 31 0.0526 - 40 0.0526 - 41 0.0526 - - 24 8 3 0 - 7 0.5 - 40 0.25 - 41 0.25 - - 25 13 2 0 - 3 0.0769 - 42 0.923 - - 26 1 1 0 - 28 1 - - 27 4 3 0 - 40 0.5 - 42 0.25 - 46 0.25 - - 28 87 15 0 - 0 0.0115 - 2 0.0345 - 4 0.0805 - 7 0.437 - 8 0.0345 - 13 0.0115 - 15 0.0115 - 21 0.046 - 26 0.069 - 29 0.023 - 40 0.103 - 41 0.092 - 42 0.0115 - 46 0.023 - 47 0.0115 - - 29 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 29 0.167 - 33 0.167 - - 30 255 24 0 - 0 0.0706 - 2 0.0314 - 4 0.00784 - 7 0.435 - 8 0.0196 - 12 0.0275 - 13 0.00392 - 14 0.00392 - 19 0.00392 - 21 0.0275 - 22 0.00392 - 26 0.0314 - 29 0.0235 - 30 0.00392 - 31 0.00784 - 32 0.00392 - 33 0.0157 - 37 0.00392 - 40 0.141 - 41 0.098 - 42 0.0157 - 43 0.00392 - 44 0.00392 - 46 0.0118 - - 31 27 11 0 - 0 0.0741 - 2 0.0741 - 4 0.037 - 7 0.185 - 12 0.111 - 14 0.037 - 24 0.037 - 26 0.037 - 29 0.185 - 40 0.148 - 41 0.0741 - - 32 3 3 0 - 0 0.333 - 32 0.333 - 33 0.333 - - 33 63 17 0 - 0 0.0159 - 3 0.0476 - 4 0.175 - 7 0.127 - 8 0.0952 - 10 0.0159 - 13 0.0159 - 14 0.0317 - 19 0.0635 - 21 0.0317 - 22 0.0159 - 26 0.0952 - 30 0.0159 - 34 0.0159 - 40 0.0159 - 41 0.206 - 45 0.0159 - - 34 58 6 0 - 0 0.259 - 4 0.0172 - 12 0.379 - 21 0.0345 - 29 0.19 - 33 0.121 - - 35 6 4 0 - 0 0.333 - 26 0.167 - 40 0.333 - 41 0.167 - - 40 975 10 0 - 0 0.00103 - 12 0.00103 - 15 0.00615 - 21 0.00103 - 26 0.00103 - 43 0.0677 - 44 0.0513 - 45 0.00103 - 46 0.00308 - 47 0.867 - - 41 4997 30 0 - 0 0.238 - 2 0.0332 - 3 0.0014 - 4 0.0254 - 7 0.0903 - 8 0.0054 - 9 0.0004 - 10 0.0002 - 12 0.064 - 13 0.00981 - 14 0.0036 - 15 0.00961 - 19 0.003 - 21 0.0476 - 22 0.0006 - 23 0.0002 - 26 0.0272 - 28 0.0012 - 29 0.288 - 30 0.00901 - 31 0.0124 - 32 0.013 - 33 0.104 - 34 0.0038 - 35 0.0012 - 36 0.0002 - 37 0.0026 - 39 0.0002 - 45 0.0042 - 46 0.0006 - - 42 330 23 0 - 0 0.115 - 2 0.0212 - 4 0.0152 - 7 0.0485 - 8 0.00303 - 12 0.0424 - 13 0.00303 - 14 0.00606 - 15 0.00606 - 19 0.00606 - 20 0.00303 - 21 0.0273 - 26 0.0121 - 28 0.00606 - 29 0.0758 - 30 0.00303 - 31 0.00606 - 32 0.0121 - 33 0.0212 - 34 0.00303 - 37 0.00606 - 45 0.00303 - 47 0.555 - - 43 92 18 0 - 0 0.0978 - 2 0.087 - 4 0.0217 - 7 0.152 - 12 0.0435 - 21 0.0217 - 26 0.0109 - 29 0.0109 - 30 0.0109 - 31 0.0109 - 32 0.0217 - 33 0.0652 - 34 0.0109 - 35 0.0109 - 40 0.13 - 41 0.12 - 42 0.109 - 47 0.0652 - - 45 4 4 0 - 0 0.25 - 2 0.25 - 7 0.25 - 32 0.25 - - 46 480 27 0 - 0 0.119 - 1 0.00208 - 2 0.0542 - 4 0.0208 - 7 0.365 - 8 0.0104 - 12 0.0292 - 13 0.00417 - 15 0.00833 - 19 0.00833 - 21 0.0396 - 26 0.0521 - 29 0.0396 - 30 0.00833 - 31 0.0292 - 32 0.00625 - 33 0.0292 - 34 0.0417 - 35 0.0125 - 37 0.0125 - 40 0.00625 - 41 0.0104 - 42 0.0333 - 43 0.00625 - 44 0.0229 - 46 0.00417 - 47 0.025 - - 48 1062 27 0 - 0 0.0546 - 2 0.032 - 4 0.000942 - 7 0.0706 - 8 0.000942 - 9 0.000942 - 12 0.0188 - 13 0.00471 - 15 0.000942 - 19 0.000942 - 21 0.00659 - 26 0.0141 - 28 0.000942 - 29 0.0753 - 30 0.000942 - 31 0.00377 - 32 0.0226 - 33 0.00847 - 34 0.000942 - 37 0.00282 - 40 0.469 - 41 0.171 - 42 0.032 - 43 0.000942 - 44 0.000942 - 45 0.00282 - 46 0.000942 - - 49 817 24 0 - 0 0.0673 - 2 0.0171 - 4 0.00367 - 7 0.0355 - 8 0.00245 - 12 0.00857 - 15 0.00122 - 21 0.00857 - 22 0.00122 - 26 0.0122 - 28 0.00245 - 29 0.0257 - 30 0.00367 - 31 0.00122 - 32 0.0147 - 33 0.00612 - 34 0.00122 - 40 0.518 - 41 0.179 - 42 0.071 - 44 0.00122 - 45 0.00367 - 46 0.00245 - 47 0.0122 - - 51 8 5 0 - 2 0.125 - 33 0.125 - 40 0.25 - 41 0.125 - 47 0.375 - - 54 7 4 0 - 0 0.143 - 13 0.143 - 40 0.429 - 41 0.286 - - 55 13149 39 0 - 0 0.0396 - 2 0.00867 - 3 0.00205 - 4 0.0054 - 5 7.61e-05 - 6 0.000152 - 7 0.0588 - 8 0.00342 - 9 0.000456 - 12 0.0129 - 13 0.000913 - 14 0.000152 - 15 0.000913 - 19 0.000532 - 20 0.000152 - 21 0.00829 - 22 0.000456 - 23 7.61e-05 - 24 0.000152 - 25 0.000152 - 26 0.013 - 28 0.000989 - 29 0.0295 - 30 0.00205 - 31 0.0035 - 32 0.0103 - 33 0.00464 - 34 0.00243 - 35 0.000913 - 36 7.61e-05 - 37 0.000608 - 40 0.508 - 41 0.208 - 42 0.0503 - 43 0.00973 - 44 0.00106 - 45 0.000913 - 46 0.00122 - 47 0.01 - - 56 409 24 0 - 0 0.0513 - 2 0.0122 - 3 0.00244 - 4 0.00978 - 7 0.174 - 8 0.00244 - 12 0.0269 - 14 0.00244 - 21 0.00489 - 26 0.0171 - 28 0.00244 - 29 0.0147 - 30 0.00733 - 31 0.00978 - 32 0.0269 - 33 0.00489 - 34 0.0122 - 35 0.00978 - 39 0.00244 - 40 0.35 - 41 0.237 - 42 0.0122 - 44 0.00244 - 46 0.00489 - - 57 38167 39 0 - 0 0.0755 - 1 0.000105 - 2 0.0403 - 3 0.00055 - 4 0.0043 - 5 0.000131 - 6 2.62e-05 - 7 0.0629 - 8 0.00333 - 9 0.000131 - 12 0.0243 - 13 0.0021 - 14 0.000812 - 15 0.0017 - 19 0.00102 - 20 2.62e-05 - 21 0.0137 - 22 0.000786 - 23 2.62e-05 - 24 7.86e-05 - 26 0.0196 - 28 0.000891 - 29 0.0437 - 30 0.00424 - 31 0.00383 - 32 0.0103 - 33 0.0117 - 34 0.00113 - 35 0.00055 - 37 0.00186 - 39 0.000131 - 40 0.432 - 41 0.205 - 42 0.0232 - 43 0.0022 - 44 0.00191 - 45 0.00176 - 46 0.0027 - 47 0.00144 - - 58 873 28 0 - 0 0.123 - 2 0.0767 - 3 0.0115 - 4 0.0275 - 7 0.139 - 8 0.00229 - 12 0.0401 - 13 0.00229 - 14 0.00344 - 15 0.00229 - 19 0.00458 - 20 0.00115 - 21 0.0229 - 26 0.0321 - 28 0.00229 - 29 0.0527 - 30 0.00344 - 31 0.00229 - 32 0.0275 - 33 0.0367 - 34 0.00458 - 35 0.00229 - 39 0.00115 - 40 0.181 - 41 0.136 - 42 0.0504 - 45 0.00115 - 47 0.0103 - - 60 5584 31 0 - 0 0.00985 - 2 0.0177 - 3 0.00681 - 4 0.0518 - 7 0.358 - 8 0.00734 - 9 0.00412 - 12 0.00304 - 13 0.00358 - 14 0.000179 - 15 0.00304 - 19 0.00125 - 20 0.000179 - 21 0.00591 - 22 0.000179 - 25 0.000179 - 26 0.0566 - 29 0.00304 - 30 0.00251 - 31 0.0077 - 34 0.000895 - 35 0.000537 - 37 0.000179 - 40 0.186 - 41 0.219 - 42 0.0136 - 43 0.0279 - 44 0.00663 - 45 0.000358 - 46 0.000179 - 47 0.00125 - - 61 29 6 0 - 0 0.0345 - 29 0.0345 - 33 0.0345 - 40 0.69 - 41 0.138 - 42 0.069 - - 62 1522 28 0 - 0 0.0453 - 2 0.0191 - 3 0.000657 - 4 0.00197 - 7 0.0315 - 8 0.000657 - 12 0.021 - 15 0.00131 - 19 0.000657 - 21 0.00788 - 22 0.00131 - 26 0.00197 - 28 0.000657 - 29 0.0177 - 30 0.000657 - 31 0.00131 - 32 0.00263 - 33 0.00986 - 34 0.000657 - 37 0.00131 - 40 0.633 - 41 0.171 - 42 0.0138 - 43 0.00329 - 44 0.000657 - 45 0.00197 - 46 0.00263 - 47 0.00526 - - 64 8611 29 0 - 0 0.046 - 2 0.0135 - 4 0.00105 - 7 0.0108 - 12 0.017 - 13 0.000465 - 14 0.000116 - 15 0.000232 - 19 0.000929 - 20 0.000116 - 21 0.0043 - 22 0.000348 - 26 0.00325 - 28 0.000697 - 29 0.00975 - 30 0.000813 - 31 0.000581 - 32 0.00499 - 33 0.00325 - 34 0.000116 - 37 0.000232 - 40 0.694 - 41 0.157 - 42 0.0238 - 43 0.00151 - 44 0.00151 - 45 0.00128 - 46 0.00116 - 47 0.00128 - - 65 8 3 0 - 40 0.5 - 46 0.125 - 47 0.375 - - 67 4 4 0 - 40 0.25 - 42 0.25 - 46 0.25 - 47 0.25 - - 68 65 9 0 - 0 0.0308 - 2 0.0308 - 7 0.0769 - 26 0.0308 - 29 0.0308 - 32 0.0462 - 40 0.631 - 41 0.0769 - 42 0.0462 - - 69 4185 30 0 - 0 0.0712 - 2 0.0229 - 3 0.000239 - 4 0.00191 - 7 0.0244 - 8 0.000478 - 12 0.0318 - 13 0.000478 - 15 0.000239 - 21 0.00956 - 22 0.000956 - 26 0.00789 - 28 0.00119 - 29 0.037 - 30 0.00119 - 31 0.0043 - 32 0.0148 - 33 0.0103 - 34 0.000478 - 35 0.000239 - 37 0.000478 - 39 0.000239 - 40 0.542 - 41 0.18 - 42 0.0277 - 43 0.00335 - 44 0.00119 - 45 0.000717 - 46 0.00119 - 47 0.00215 - - 73 3 3 0 - 0 0.333 - 32 0.333 - 41 0.333 - - 74 13 5 0 - 0 0.0769 - 26 0.0769 - 40 0.154 - 41 0.0769 - 47 0.615 - - 48 1396 29 9 - 0 0.0415 - 2 0.0244 - 4 0.00143 - 7 0.0752 - 8 0.00143 - 9 0.00645 - 12 0.0143 - 13 0.0043 - 15 0.000716 - 19 0.00143 - 21 0.00716 - 26 0.0186 - 28 0.00143 - 29 0.0573 - 30 0.00215 - 31 0.00716 - 32 0.0172 - 33 0.00716 - 34 0.00143 - 35 0.000716 - 37 0.00215 - 39 0.0043 - 40 0.362 - 41 0.304 - 42 0.0279 - 43 0.00143 - 44 0.00215 - 45 0.00287 - 46 0.00143 - - 0 1 1 0 - 44 1 - - 4 66 14 0 - 0 0.0455 - 2 0.0152 - 7 0.379 - 8 0.0152 - 12 0.0152 - 13 0.0152 - 19 0.0152 - 26 0.0455 - 29 0.0152 - 30 0.0152 - 39 0.0909 - 40 0.152 - 41 0.136 - 42 0.0455 - - 41 264 6 0 - 2 0.00379 - 7 0.00758 - 26 0.0114 - 40 0.261 - 41 0.705 - 42 0.0114 - - 42 18 3 0 - 40 0.667 - 41 0.0556 - 42 0.278 - - 44 1 1 0 - 43 1 - - 45 6 5 0 - 40 0.333 - 41 0.167 - 42 0.167 - 44 0.167 - 46 0.167 - - 47 19 8 0 - 2 0.0526 - 7 0.211 - 9 0.421 - 13 0.105 - 28 0.0526 - 30 0.0526 - 33 0.0526 - 40 0.0526 - - 55 951 28 0 - 0 0.0568 - 2 0.0326 - 4 0.0021 - 7 0.0747 - 8 0.00105 - 9 0.00105 - 12 0.0189 - 13 0.00315 - 15 0.00105 - 19 0.00105 - 21 0.0105 - 26 0.021 - 28 0.00105 - 29 0.0831 - 30 0.00105 - 31 0.0105 - 32 0.0252 - 33 0.00946 - 34 0.0021 - 35 0.00105 - 37 0.00315 - 40 0.396 - 41 0.209 - 42 0.0263 - 43 0.00105 - 44 0.00105 - 45 0.00421 - 46 0.00105 - - 57 51 5 0 - 7 0.0196 - 12 0.0196 - 40 0.471 - 41 0.451 - 42 0.0392 - - 49 1035 32 6 - 0 0.0531 - 1 0.000966 - 2 0.0145 - 3 0.00483 - 4 0.0386 - 7 0.0725 - 8 0.0145 - 9 0.00193 - 12 0.00676 - 13 0.0164 - 14 0.0116 - 15 0.0116 - 20 0.0029 - 21 0.00966 - 22 0.00193 - 26 0.0184 - 28 0.00193 - 29 0.0203 - 30 0.0029 - 31 0.00193 - 32 0.0116 - 33 0.00483 - 34 0.00386 - 35 0.00386 - 37 0.000966 - 40 0.411 - 41 0.184 - 42 0.058 - 44 0.000966 - 45 0.0029 - 46 0.00193 - 47 0.00966 - - 2 45 9 0 - 4 0.311 - 8 0.133 - 13 0.156 - 14 0.133 - 15 0.0667 - 20 0.0444 - 21 0.0222 - 40 0.0444 - 41 0.0889 - - 41 350 16 0 - 2 0.00286 - 3 0.0143 - 4 0.0629 - 7 0.00286 - 8 0.00857 - 9 0.00571 - 13 0.0229 - 14 0.0171 - 15 0.02 - 20 0.00286 - 21 0.00571 - 22 0.00286 - 40 0.506 - 41 0.166 - 42 0.131 - 47 0.0286 - - 42 10 5 0 - 8 0.2 - 13 0.1 - 40 0.4 - 41 0.1 - 42 0.2 - - 47 1 1 0 - 32 1 - - 55 548 26 0 - 0 0.0912 - 1 0.00182 - 2 0.0237 - 4 0.00547 - 7 0.128 - 8 0.0073 - 12 0.00912 - 13 0.00182 - 15 0.00365 - 21 0.0109 - 22 0.00182 - 26 0.031 - 28 0.00365 - 29 0.0328 - 30 0.00547 - 31 0.00365 - 32 0.0182 - 33 0.0073 - 34 0.00365 - 35 0.00547 - 37 0.00182 - 40 0.369 - 41 0.204 - 42 0.0201 - 45 0.00547 - 46 0.00365 - - 57 73 15 0 - 0 0.0685 - 2 0.0137 - 7 0.0411 - 12 0.0274 - 21 0.0137 - 26 0.0137 - 29 0.0411 - 32 0.0137 - 33 0.0137 - 34 0.0274 - 35 0.0137 - 40 0.534 - 41 0.151 - 42 0.0137 - 44 0.0137 - - 50 146 15 1 - 3 0.0342 - 4 0.384 - 8 0.144 - 9 0.0137 - 13 0.123 - 14 0.13 - 15 0.0548 - 16 0.00685 - 20 0.0411 - 21 0.0137 - 22 0.00685 - 30 0.0137 - 31 0.0137 - 39 0.00685 - 45 0.0137 - - 46 1 1 0 - 45 1 - - 51 8 5 0 - 2 0.125 - 33 0.125 - 40 0.25 - 41 0.125 - 47 0.375 - - 54 8 4 0 - 0 0.125 - 13 0.125 - 40 0.375 - 41 0.375 - - 55 92386 44 25 - 0 0.00569 - 1 0.000487 - 2 0.0599 - 3 0.0061 - 4 0.022 - 5 3.25e-05 - 6 7.58e-05 - 7 0.423 - 8 0.0122 - 9 0.000509 - 10 0.000108 - 12 0.00184 - 13 0.00187 - 14 0.000682 - 15 0.00441 - 16 3.25e-05 - 17 2.16e-05 - 19 0.00704 - 20 0.000216 - 21 0.011 - 22 0.000346 - 23 0.000152 - 24 7.58e-05 - 25 5.41e-05 - 26 0.0266 - 28 0.000162 - 29 0.0062 - 30 0.0132 - 31 0.0246 - 32 0.00149 - 33 0.000671 - 34 0.0181 - 35 0.00889 - 36 0.000563 - 37 0.00232 - 39 0.000433 - 40 0.0776 - 41 0.217 - 42 0.0281 - 43 0.00179 - 44 0.00812 - 45 0.0015 - 46 0.00279 - 47 0.00143 - - 2 6756 35 0 - 0 0.0628 - 2 0.0154 - 3 0.000148 - 4 0.00681 - 5 0.000148 - 7 0.0813 - 8 0.00488 - 9 0.000148 - 12 0.0207 - 13 0.00133 - 14 0.000888 - 15 0.000888 - 19 0.000592 - 21 0.0148 - 22 0.000444 - 23 0.000148 - 26 0.016 - 28 0.00192 - 29 0.0423 - 30 0.00355 - 31 0.00459 - 32 0.017 - 33 0.00266 - 34 0.00429 - 35 0.00148 - 36 0.000148 - 37 0.000888 - 40 0.412 - 41 0.25 - 42 0.0232 - 43 0.00192 - 44 0.00133 - 45 0.00148 - 46 0.00192 - 47 0.00178 - - 4 104 10 0 - 0 0.0192 - 2 0.865 - 3 0.00962 - 7 0.00962 - 9 0.00962 - 12 0.00962 - 21 0.00962 - 29 0.0192 - 40 0.0192 - 41 0.0288 - - 6 2 2 0 - 40 0.5 - 47 0.5 - - 7 24 7 0 - 0 0.0417 - 2 0.0417 - 29 0.0417 - 32 0.0417 - 40 0.5 - 41 0.25 - 42 0.0833 - - 8 5 4 0 - 7 0.2 - 29 0.2 - 40 0.4 - 42 0.2 - - 13 6 4 0 - 4 0.167 - 30 0.167 - 40 0.167 - 41 0.5 - - 15 8 5 0 - 2 0.125 - 7 0.125 - 29 0.125 - 41 0.5 - 42 0.125 - - 17 14 4 0 - 0 0.0714 - 2 0.714 - 40 0.143 - 41 0.0714 - - 20 4 3 0 - 12 0.25 - 40 0.5 - 41 0.25 - - 21 120 9 0 - 0 0.00833 - 2 0.0667 - 7 0.025 - 8 0.0167 - 26 0.00833 - 40 0.55 - 41 0.292 - 42 0.025 - 43 0.00833 - - 26 49 8 0 - 3 0.49 - 4 0.0408 - 7 0.102 - 8 0.0204 - 19 0.0204 - 40 0.224 - 41 0.0408 - 42 0.0612 - - 40 7 2 0 - 40 0.857 - 41 0.143 - - 41 8157 24 0 - 0 0.00356 - 2 0.114 - 4 0.000613 - 7 0.00282 - 12 0.000613 - 14 0.000245 - 20 0.000123 - 21 0.00049 - 22 0.000123 - 26 0.000613 - 29 0.00699 - 31 0.000368 - 32 0.000123 - 33 0.00331 - 34 0.000736 - 35 0.0011 - 40 0.303 - 41 0.527 - 42 0.0177 - 43 0.0116 - 44 0.00147 - 45 0.000123 - 46 0.000245 - 47 0.00368 - - 42 1360 18 0 - 0 0.00147 - 2 0.00588 - 3 0.00368 - 6 0.000735 - 7 0.00515 - 8 0.000735 - 9 0.000735 - 19 0.000735 - 25 0.00221 - 30 0.00147 - 32 0.000735 - 34 0.000735 - 40 0.561 - 41 0.0449 - 42 0.318 - 43 0.011 - 46 0.00441 - 47 0.036 - - 44 37 5 0 - 7 0.0811 - 40 0.027 - 41 0.027 - 42 0.0811 - 43 0.784 - - 45 324 10 0 - 2 0.0185 - 7 0.0494 - 21 0.00309 - 26 0.00309 - 30 0.00309 - 34 0.00309 - 40 0.133 - 41 0.327 - 42 0.00617 - 46 0.454 - - 46 65 5 0 - 7 0.0154 - 40 0.523 - 41 0.431 - 43 0.0154 - 46 0.0154 - - 47 72120 41 0 - 0 6.93e-05 - 1 0.000624 - 2 0.0597 - 3 0.00738 - 4 0.027 - 5 2.77e-05 - 6 6.93e-05 - 7 0.529 - 8 0.0149 - 9 0.000568 - 10 0.000139 - 13 0.0022 - 14 0.000749 - 15 0.00535 - 16 4.16e-05 - 17 2.77e-05 - 19 0.00892 - 20 0.00025 - 21 0.0123 - 22 0.000333 - 23 0.00018 - 24 6.93e-05 - 25 1.39e-05 - 26 0.0315 - 28 2.77e-05 - 29 0.00257 - 30 0.0164 - 31 0.0309 - 32 4.16e-05 - 33 1.39e-05 - 34 0.0226 - 35 0.0111 - 36 0.000707 - 37 0.00284 - 39 0.000527 - 40 0.000111 - 41 0.177 - 42 0.0204 - 44 0.0101 - 45 0.00176 - 46 0.00122 - - 48 4 4 0 - 0 0.25 - 2 0.25 - 12 0.25 - 40 0.25 - - 49 129 11 0 - 0 0.0155 - 2 0.093 - 4 0.00775 - 7 0.093 - 22 0.00775 - 26 0.0233 - 35 0.0155 - 37 0.00775 - 40 0.419 - 41 0.302 - 42 0.0155 - - 50 156 12 0 - 0 0.00641 - 2 0.0385 - 7 0.0449 - 12 0.00641 - 13 0.00641 - 14 0.00641 - 29 0.00641 - 31 0.00641 - 32 0.00641 - 40 0.66 - 41 0.192 - 42 0.0192 - - 55 2717 34 0 - 0 0.0184 - 2 0.0158 - 3 0.000368 - 4 0.00957 - 6 0.000368 - 7 0.119 - 8 0.00405 - 9 0.0011 - 12 0.00626 - 13 0.00147 - 15 0.00552 - 19 0.000368 - 20 0.000368 - 21 0.00589 - 22 0.0011 - 24 0.000736 - 25 0.000368 - 26 0.025 - 29 0.0118 - 30 0.00147 - 31 0.00405 - 32 0.00515 - 33 0.00552 - 34 0.00184 - 35 0.000368 - 37 0.000736 - 40 0.259 - 41 0.342 - 42 0.134 - 43 0.00331 - 44 0.000368 - 45 0.000368 - 46 0.000368 - 47 0.0144 - - 57 160 13 0 - 0 0.0375 - 2 0.0437 - 7 0.0812 - 12 0.025 - 26 0.025 - 29 0.0437 - 31 0.00625 - 32 0.0125 - 33 0.00625 - 35 0.00625 - 40 0.494 - 41 0.206 - 43 0.0125 - - 58 37 7 0 - 0 0.027 - 7 0.0811 - 40 0.541 - 41 0.216 - 42 0.0811 - 44 0.027 - 47 0.027 - - 60 8 5 0 - 2 0.125 - 7 0.125 - 21 0.125 - 39 0.25 - 40 0.375 - - 56 440 24 15 - 0 0.0477 - 2 0.0114 - 3 0.00227 - 4 0.00909 - 7 0.161 - 8 0.00227 - 12 0.025 - 14 0.00227 - 21 0.00455 - 26 0.0159 - 28 0.00227 - 29 0.0136 - 30 0.00909 - 31 0.00909 - 32 0.025 - 33 0.00455 - 34 0.0114 - 35 0.00909 - 39 0.00227 - 40 0.325 - 41 0.23 - 42 0.0114 - 44 0.00227 - 46 0.0636 - - 4 120 16 0 - 0 0.0583 - 2 0.0167 - 7 0.242 - 12 0.0667 - 14 0.00833 - 28 0.00833 - 31 0.025 - 32 0.025 - 33 0.00833 - 34 0.0167 - 35 0.00833 - 40 0.317 - 41 0.167 - 42 0.00833 - 44 0.00833 - 46 0.0167 - - 8 69 14 0 - 0 0.0725 - 3 0.0145 - 4 0.0145 - 7 0.217 - 8 0.0145 - 12 0.0145 - 21 0.0145 - 26 0.0435 - 30 0.0145 - 32 0.0145 - 34 0.0145 - 35 0.0145 - 40 0.333 - 41 0.203 - - 13 3 2 0 - 30 0.667 - 40 0.333 - - 14 11 7 0 - 2 0.0909 - 29 0.0909 - 32 0.0909 - 33 0.0909 - 40 0.364 - 41 0.182 - 46 0.0909 - - 15 14 4 0 - 0 0.143 - 7 0.0714 - 40 0.357 - 41 0.429 - - 20 36 9 0 - 0 0.0278 - 2 0.0278 - 7 0.25 - 26 0.0278 - 29 0.0556 - 32 0.0556 - 40 0.306 - 41 0.222 - 42 0.0278 - - 21 3 3 0 - 12 0.333 - 41 0.333 - 42 0.333 - - 30 2 2 0 - 0 0.5 - 34 0.5 - - 31 2 2 0 - 7 0.5 - 34 0.5 - - 34 1 1 0 - 4 1 - - 45 61 3 0 - 40 0.246 - 41 0.344 - 46 0.41 - - 48 10 6 0 - 4 0.1 - 7 0.2 - 21 0.1 - 32 0.1 - 40 0.4 - 41 0.1 - - 54 2 2 0 - 35 0.5 - 40 0.5 - - 55 75 12 0 - 0 0.0533 - 2 0.0133 - 4 0.0133 - 7 0.107 - 12 0.0133 - 26 0.0267 - 29 0.0267 - 32 0.0133 - 39 0.0133 - 40 0.347 - 41 0.36 - 42 0.0133 - - 60 14 6 0 - 7 0.214 - 30 0.0714 - 31 0.0714 - 32 0.0714 - 35 0.0714 - 40 0.5 - - 57 43057 41 14 - 0 0.0669 - 1 0.000279 - 2 0.0358 - 3 0.00065 - 4 0.00604 - 5 0.000139 - 6 4.65e-05 - 7 0.106 - 8 0.00476 - 9 0.000139 - 12 0.0216 - 13 0.00232 - 14 0.000836 - 15 0.00272 - 19 0.00183 - 20 2.32e-05 - 21 0.0136 - 22 0.000883 - 23 2.32e-05 - 24 6.97e-05 - 25 2.32e-05 - 26 0.0268 - 28 0.00079 - 29 0.039 - 30 0.00595 - 31 0.00711 - 32 0.00917 - 33 0.0104 - 34 0.0066 - 35 0.00249 - 36 2.32e-05 - 37 0.00221 - 39 0.000116 - 40 0.386 - 41 0.206 - 42 0.0223 - 43 0.00232 - 44 0.00221 - 45 0.00167 - 46 0.00318 - 47 0.00128 - - 2 4 4 0 - 4 0.25 - 15 0.25 - 40 0.25 - 41 0.25 - - 13 20 7 0 - 4 0.05 - 12 0.05 - 26 0.1 - 34 0.05 - 40 0.5 - 41 0.2 - 46 0.05 - - 41 1101 20 0 - 0 0.00363 - 2 0.00272 - 4 0.00182 - 7 0.0163 - 12 0.00182 - 15 0.000908 - 21 0.00182 - 26 0.00363 - 29 0.00636 - 31 0.00182 - 32 0.00182 - 33 0.00182 - 34 0.00182 - 40 0.554 - 41 0.378 - 42 0.0145 - 43 0.00182 - 44 0.000908 - 46 0.000908 - 47 0.00363 - - 42 51 5 0 - 7 0.0196 - 40 0.392 - 41 0.0784 - 42 0.471 - 46 0.0392 - - 44 14 2 0 - 0 0.0714 - 43 0.929 - - 45 21 5 0 - 7 0.0476 - 40 0.476 - 41 0.238 - 42 0.0952 - 46 0.143 - - 46 145 15 0 - 0 0.0345 - 2 0.0138 - 4 0.0069 - 7 0.0483 - 8 0.0069 - 21 0.0207 - 26 0.0207 - 29 0.0069 - 33 0.0069 - 34 0.0069 - 40 0.434 - 41 0.331 - 42 0.0345 - 44 0.0138 - 45 0.0138 - - 48 31 5 0 - 2 0.0323 - 7 0.226 - 40 0.419 - 41 0.29 - 42 0.0323 - - 49 43 8 0 - 0 0.0233 - 2 0.0233 - 7 0.0698 - 26 0.0465 - 29 0.0233 - 40 0.419 - 41 0.372 - 42 0.0233 - - 55 39258 41 0 - 0 0.0695 - 1 0.000306 - 2 0.0374 - 3 0.000662 - 4 0.00642 - 5 0.000153 - 6 5.09e-05 - 7 0.111 - 8 0.00497 - 9 0.000153 - 12 0.0224 - 13 0.00242 - 14 0.000917 - 15 0.00285 - 19 0.00199 - 20 2.55e-05 - 21 0.0143 - 22 0.000942 - 23 2.55e-05 - 24 7.64e-05 - 25 2.55e-05 - 26 0.0284 - 28 0.000841 - 29 0.0411 - 30 0.00629 - 31 0.00746 - 32 0.00978 - 33 0.0109 - 34 0.00693 - 35 0.0027 - 36 2.55e-05 - 37 0.00211 - 39 0.000127 - 40 0.374 - 41 0.202 - 42 0.0215 - 43 0.00201 - 44 0.00217 - 45 0.00163 - 46 0.00326 - 47 0.0012 - - 57 2232 30 0 - 0 0.06 - 2 0.0291 - 3 0.000896 - 4 0.00134 - 7 0.0824 - 8 0.00358 - 12 0.0206 - 13 0.00224 - 15 0.00134 - 19 0.000448 - 21 0.00806 - 22 0.000448 - 26 0.0116 - 28 0.000448 - 29 0.0233 - 30 0.00358 - 31 0.00448 - 32 0.00358 - 33 0.00851 - 34 0.00314 - 35 0.000448 - 37 0.00538 - 40 0.5 - 41 0.187 - 42 0.0269 - 43 0.00269 - 44 0.00314 - 45 0.00269 - 46 0.000896 - 47 0.00134 - - 58 51 12 0 - 0 0.0392 - 7 0.0784 - 21 0.0196 - 26 0.0196 - 29 0.0392 - 30 0.0196 - 31 0.0196 - 32 0.0196 - 40 0.431 - 41 0.235 - 42 0.0588 - 47 0.0196 - - 64 38 8 0 - 0 0.0789 - 8 0.0263 - 26 0.0526 - 29 0.0263 - 34 0.0263 - 40 0.474 - 41 0.237 - 42 0.0789 - - 69 41 6 0 - 0 0.0244 - 2 0.0732 - 29 0.0244 - 40 0.707 - 41 0.146 - 42 0.0244 - - 58 1135 32 9 - 0 0.0943 - 1 0.000881 - 2 0.0643 - 3 0.0106 - 4 0.037 - 7 0.157 - 8 0.00705 - 12 0.0308 - 13 0.00617 - 14 0.00352 - 15 0.00617 - 19 0.00352 - 20 0.00352 - 21 0.0194 - 26 0.0326 - 28 0.00176 - 29 0.0405 - 30 0.00529 - 31 0.00705 - 32 0.0211 - 33 0.0282 - 34 0.0167 - 35 0.00705 - 37 0.00176 - 39 0.000881 - 40 0.142 - 41 0.16 - 42 0.074 - 43 0.00176 - 44 0.000881 - 45 0.00617 - 47 0.00793 - - 2 23 9 0 - 4 0.304 - 8 0.087 - 13 0.174 - 14 0.0435 - 15 0.13 - 20 0.13 - 21 0.0435 - 30 0.0435 - 41 0.0435 - - 13 11 5 0 - 0 0.273 - 7 0.273 - 26 0.273 - 33 0.0909 - 40 0.0909 - - 15 4 4 0 - 2 0.25 - 21 0.25 - 26 0.25 - 41 0.25 - - 41 10 6 0 - 2 0.1 - 29 0.1 - 30 0.1 - 33 0.1 - 40 0.4 - 41 0.2 - - 46 32 7 0 - 0 0.125 - 4 0.0312 - 7 0.125 - 35 0.0312 - 40 0.188 - 41 0.469 - 42 0.0312 - - 55 969 32 0 - 0 0.0949 - 1 0.00103 - 2 0.066 - 3 0.00619 - 4 0.0341 - 7 0.161 - 8 0.00413 - 12 0.032 - 13 0.0031 - 14 0.0031 - 15 0.00413 - 19 0.0031 - 20 0.00103 - 21 0.0165 - 26 0.031 - 28 0.00206 - 29 0.0433 - 30 0.0031 - 31 0.00826 - 32 0.0248 - 33 0.0299 - 34 0.0186 - 35 0.00722 - 37 0.00206 - 39 0.00103 - 40 0.143 - 41 0.156 - 42 0.0826 - 43 0.00206 - 44 0.00103 - 45 0.00413 - 47 0.00929 - - 57 57 17 0 - 0 0.0877 - 2 0.0877 - 3 0.105 - 4 0.0175 - 7 0.105 - 8 0.0351 - 12 0.0351 - 21 0.0526 - 26 0.0175 - 29 0.0351 - 30 0.0175 - 33 0.0175 - 34 0.0175 - 40 0.158 - 41 0.123 - 42 0.0351 - 45 0.0526 - - 60 2 2 0 - 0 0.5 - 21 0.5 - - 64 5 4 0 - 0 0.2 - 2 0.4 - 19 0.2 - 41 0.2 - - 59 3 3 0 - 7 0.333 - 14 0.333 - 40 0.333 - - 60 5599 31 16 - 0 0.00982 - 2 0.0179 - 3 0.00679 - 4 0.0516 - 7 0.357 - 8 0.00732 - 9 0.00411 - 12 0.00304 - 13 0.00357 - 14 0.000179 - 15 0.00304 - 19 0.00125 - 20 0.000179 - 21 0.00589 - 22 0.000179 - 25 0.000179 - 26 0.0564 - 29 0.00304 - 30 0.0025 - 31 0.00768 - 34 0.000893 - 35 0.000536 - 37 0.000179 - 40 0.187 - 41 0.219 - 42 0.0136 - 43 0.0282 - 44 0.00679 - 45 0.000357 - 46 0.000179 - 47 0.00125 - - 3 11 8 0 - 0 0.182 - 2 0.0909 - 7 0.0909 - 14 0.0909 - 26 0.0909 - 29 0.0909 - 40 0.0909 - 41 0.273 - - 4 101 15 0 - 0 0.0396 - 2 0.0297 - 4 0.0891 - 7 0.564 - 8 0.0198 - 12 0.0099 - 15 0.0297 - 19 0.0198 - 21 0.0099 - 26 0.0297 - 29 0.0099 - 31 0.0891 - 40 0.0297 - 41 0.0198 - 44 0.0099 - - 8 72 10 0 - 0 0.0278 - 7 0.486 - 12 0.0139 - 13 0.0139 - 21 0.0278 - 26 0.0694 - 31 0.0139 - 40 0.125 - 41 0.208 - 44 0.0139 - - 13 49 7 0 - 4 0.0612 - 7 0.327 - 21 0.0204 - 34 0.0204 - 40 0.224 - 41 0.327 - 44 0.0204 - - 14 21 6 0 - 7 0.0476 - 19 0.0476 - 30 0.0476 - 40 0.714 - 41 0.0952 - 42 0.0476 - - 20 12 3 0 - 7 0.833 - 8 0.0833 - 40 0.0833 - - 21 8 4 0 - 4 0.125 - 7 0.5 - 40 0.25 - 42 0.125 - - 30 4 3 0 - 7 0.5 - 12 0.25 - 40 0.25 - - 31 30 8 0 - 0 0.1 - 4 0.0667 - 7 0.433 - 13 0.0333 - 26 0.0667 - 31 0.0667 - 40 0.133 - 41 0.1 - - 39 9 7 0 - 2 0.111 - 4 0.222 - 26 0.111 - 40 0.222 - 41 0.111 - 43 0.111 - 47 0.111 - - 42 1 1 0 - 47 1 - - 44 2 1 0 - 43 1 - - 47 5218 30 0 - 0 0.00824 - 2 0.0178 - 3 0.00728 - 4 0.0519 - 7 0.353 - 8 0.00709 - 9 0.00422 - 12 0.00268 - 13 0.00345 - 15 0.00268 - 19 0.000767 - 20 0.000192 - 21 0.00556 - 22 0.000192 - 25 0.000192 - 26 0.0583 - 29 0.00268 - 30 0.00249 - 31 0.00594 - 34 0.000767 - 35 0.000575 - 37 0.000192 - 40 0.186 - 41 0.226 - 42 0.0142 - 43 0.0295 - 44 0.00652 - 45 0.000383 - 46 0.000192 - 47 0.000958 - - 48 6 3 0 - 7 0.167 - 40 0.667 - 44 0.167 - - 55 34 8 0 - 0 0.0294 - 2 0.0588 - 7 0.441 - 8 0.0294 - 9 0.0294 - 29 0.0294 - 40 0.265 - 41 0.118 - - 60 16 4 0 - 4 0.0625 - 7 0.125 - 40 0.688 - 41 0.125 - - 61 43 6 0 - 0 0.0233 - 29 0.0233 - 33 0.0233 - 40 0.465 - 41 0.395 - 42 0.0698 - - 62 1601 28 11 - 0 0.0431 - 2 0.02 - 3 0.000625 - 4 0.00187 - 7 0.03 - 8 0.000625 - 12 0.02 - 15 0.00125 - 19 0.000625 - 21 0.0075 - 22 0.00125 - 26 0.00187 - 28 0.000625 - 29 0.0169 - 30 0.000625 - 31 0.00125 - 32 0.0025 - 33 0.00937 - 34 0.000625 - 37 0.00125 - 40 0.626 - 41 0.176 - 42 0.0162 - 43 0.00312 - 44 0.00125 - 45 0.00187 - 46 0.00874 - 47 0.005 - - 2 20 3 0 - 29 0.05 - 40 0.75 - 41 0.2 - - 4 2 2 0 - 40 0.5 - 43 0.5 - - 8 5 4 0 - 40 0.4 - 41 0.2 - 43 0.2 - 46 0.2 - - 13 936 26 0 - 0 0.0513 - 2 0.016 - 3 0.00107 - 4 0.00214 - 7 0.031 - 8 0.00107 - 12 0.0246 - 15 0.00107 - 19 0.00107 - 21 0.00962 - 22 0.00107 - 26 0.00321 - 28 0.00107 - 29 0.0214 - 31 0.00214 - 33 0.0118 - 34 0.00107 - 37 0.00214 - 40 0.607 - 41 0.185 - 42 0.0139 - 43 0.00107 - 44 0.00107 - 45 0.00321 - 46 0.00321 - 47 0.00321 - - 14 215 16 0 - 0 0.0698 - 2 0.0419 - 4 0.00465 - 7 0.0512 - 12 0.0279 - 15 0.00465 - 21 0.0093 - 22 0.00465 - 29 0.0233 - 30 0.00465 - 32 0.014 - 33 0.00465 - 40 0.581 - 41 0.144 - 42 0.00465 - 47 0.0093 - - 41 42 5 0 - 2 0.0714 - 40 0.548 - 41 0.333 - 42 0.0238 - 43 0.0238 - - 42 99 5 0 - 40 0.889 - 41 0.0303 - 42 0.0505 - 46 0.0101 - 47 0.0202 - - 45 38 4 0 - 40 0.553 - 41 0.184 - 42 0.0263 - 46 0.237 - - 47 8 4 0 - 12 0.25 - 33 0.125 - 40 0.5 - 47 0.125 - - 55 65 7 0 - 0 0.0154 - 2 0.0462 - 7 0.0615 - 40 0.569 - 41 0.246 - 42 0.0462 - 44 0.0154 - - 57 132 12 0 - 0 0.0303 - 2 0.00758 - 7 0.0227 - 12 0.00758 - 21 0.00758 - 29 0.00758 - 32 0.00758 - 33 0.0152 - 40 0.689 - 41 0.182 - 42 0.0152 - 43 0.00758 - - 64 9765 30 13 - 0 0.0406 - 2 0.012 - 4 0.00113 - 7 0.0138 - 8 0.000102 - 12 0.015 - 13 0.00041 - 14 0.000102 - 15 0.000307 - 19 0.000819 - 20 0.000102 - 21 0.00379 - 22 0.000307 - 26 0.00379 - 28 0.000614 - 29 0.0086 - 30 0.00102 - 31 0.000512 - 32 0.0044 - 33 0.00287 - 34 0.00041 - 37 0.000205 - 40 0.613 - 41 0.245 - 42 0.0247 - 43 0.00143 - 44 0.00164 - 45 0.00113 - 46 0.00113 - 47 0.00113 - - 2 12 3 0 - 40 0.75 - 41 0.0833 - 42 0.167 - - 8 2 2 0 - 40 0.5 - 44 0.5 - - 13 484 13 0 - 0 0.0331 - 2 0.00826 - 7 0.00413 - 12 0.0145 - 26 0.00207 - 29 0.0124 - 33 0.00826 - 40 0.731 - 41 0.157 - 42 0.0227 - 43 0.00207 - 45 0.00207 - 46 0.00207 - - 14 162 8 0 - 0 0.037 - 2 0.00617 - 12 0.00617 - 29 0.0123 - 32 0.00617 - 40 0.79 - 41 0.136 - 42 0.00617 - - 41 2797 15 0 - 0 0.00465 - 2 0.00107 - 4 0.000358 - 7 0.000358 - 12 0.000715 - 15 0.000358 - 21 0.000715 - 29 0.0025 - 33 0.000715 - 40 0.555 - 41 0.417 - 42 0.0136 - 43 0.000715 - 44 0.000358 - 47 0.00179 - - 42 55 4 0 - 40 0.545 - 41 0.0364 - 42 0.4 - 46 0.0182 - - 44 1 1 0 - 43 1 - - 46 78 5 0 - 2 0.0128 - 40 0.718 - 41 0.244 - 42 0.0128 - 44 0.0128 - - 49 18 3 0 - 22 0.0556 - 40 0.667 - 41 0.278 - - 55 5353 30 0 - 0 0.0616 - 2 0.0189 - 4 0.00187 - 7 0.023 - 8 0.000187 - 12 0.023 - 13 0.000747 - 14 0.000187 - 15 0.000374 - 19 0.00149 - 20 0.000187 - 21 0.00654 - 22 0.000187 - 26 0.00579 - 28 0.000934 - 29 0.0116 - 30 0.00187 - 31 0.000747 - 32 0.0071 - 33 0.00411 - 34 0.000747 - 37 0.000374 - 40 0.611 - 41 0.181 - 42 0.0275 - 43 0.00187 - 44 0.00205 - 45 0.00168 - 46 0.00168 - 47 0.00112 - - 57 678 15 0 - 0 0.0383 - 2 0.00885 - 7 0.0133 - 12 0.0192 - 22 0.00147 - 26 0.00737 - 28 0.00147 - 29 0.00885 - 31 0.00147 - 32 0.0059 - 40 0.715 - 41 0.15 - 42 0.0236 - 44 0.00295 - 45 0.00147 - - 58 36 4 0 - 0 0.0278 - 40 0.806 - 41 0.111 - 42 0.0556 - - 69 29 3 0 - 40 0.862 - 41 0.103 - 42 0.0345 - - 65 9 3 0 - 40 0.444 - 46 0.222 - 47 0.333 - - 67 5 4 0 - 40 0.4 - 42 0.2 - 46 0.2 - 47 0.2 - - 68 68 9 1 - 0 0.0294 - 2 0.0294 - 7 0.0882 - 26 0.0294 - 29 0.0294 - 32 0.0441 - 40 0.603 - 41 0.103 - 42 0.0441 - - 57 10 3 0 - 2 0.2 - 40 0.7 - 42 0.1 - - 69 4817 31 8 - 0 0.0619 - 2 0.0199 - 3 0.000415 - 4 0.00166 - 7 0.0309 - 8 0.00145 - 12 0.0276 - 13 0.000415 - 15 0.000208 - 21 0.0083 - 22 0.00083 - 25 0.000208 - 26 0.00851 - 28 0.00104 - 29 0.0324 - 30 0.00208 - 31 0.00415 - 32 0.0129 - 33 0.00893 - 34 0.00353 - 35 0.000623 - 37 0.000415 - 39 0.000208 - 40 0.478 - 41 0.256 - 42 0.0286 - 43 0.00332 - 44 0.00145 - 45 0.00083 - 46 0.00104 - 47 0.00187 - - 41 789 13 0 - 0 0.00634 - 2 0.00253 - 7 0.0152 - 12 0.00127 - 21 0.00127 - 26 0.00253 - 29 0.0139 - 32 0.00253 - 33 0.00634 - 40 0.326 - 41 0.597 - 42 0.0228 - 47 0.00253 - - 42 8 2 0 - 40 0.25 - 42 0.75 - - 44 2 1 0 - 43 1 - - 45 5 5 0 - 0 0.2 - 8 0.2 - 40 0.2 - 41 0.2 - 44 0.2 - - 46 31 6 0 - 0 0.0323 - 21 0.0323 - 32 0.0323 - 40 0.516 - 41 0.355 - 45 0.0323 - - 48 7 1 0 - 41 1 - - 55 3706 31 0 - 0 0.0739 - 2 0.0237 - 3 0.00054 - 4 0.00216 - 7 0.0351 - 8 0.00162 - 12 0.0351 - 13 0.00054 - 15 0.00027 - 21 0.00944 - 22 0.000809 - 25 0.00027 - 26 0.0105 - 28 0.00135 - 29 0.0364 - 30 0.0027 - 31 0.0054 - 32 0.0159 - 33 0.0103 - 34 0.00459 - 35 0.000809 - 37 0.00054 - 39 0.00027 - 40 0.502 - 41 0.188 - 42 0.0286 - 43 0.00324 - 44 0.00162 - 45 0.000809 - 46 0.00135 - 47 0.00189 - - 57 248 11 0 - 0 0.0645 - 2 0.0202 - 7 0.0282 - 12 0.00806 - 21 0.0121 - 22 0.00403 - 29 0.0403 - 40 0.597 - 41 0.185 - 42 0.0323 - 43 0.00806 - - 73 3 3 0 - 0 0.333 - 32 0.333 - 41 0.333 - - 74 16 7 0 - 0 0.0625 - 26 0.0625 - 35 0.0625 - 40 0.125 - 41 0.125 - 42 0.0625 - 47 0.5 - -56 3639 35 22 - 0 0.0231 - 2 0.288 - 3 0.00302 - 4 0.00769 - 6 0.000275 - 7 0.104 - 8 0.0445 - 9 0.0011 - 12 0.0115 - 13 0.0409 - 14 0.0168 - 15 0.0176 - 16 0.00055 - 18 0.000824 - 20 0.000275 - 21 0.0055 - 23 0.000275 - 26 0.00907 - 28 0.0011 - 29 0.00632 - 30 0.00467 - 31 0.0055 - 32 0.0121 - 33 0.00247 - 34 0.00632 - 35 0.00467 - 37 0.000275 - 39 0.0022 - 40 0.144 - 41 0.192 - 42 0.00714 - 43 0.00055 - 44 0.0118 - 45 0.0011 - 46 0.0231 - - 2 357 16 3 - 3 0.0224 - 4 0.0056 - 8 0.361 - 9 0.0112 - 13 0.325 - 14 0.0728 - 15 0.126 - 16 0.0028 - 20 0.0028 - 21 0.0196 - 23 0.0028 - 30 0.0084 - 31 0.014 - 33 0.0028 - 39 0.0112 - 45 0.0112 - - 41 17 7 0 - 8 0.118 - 13 0.412 - 14 0.0588 - 15 0.118 - 31 0.0588 - 39 0.176 - 45 0.0588 - - 46 3 1 0 - 45 1 - - 56 337 15 0 - 3 0.0237 - 4 0.00593 - 8 0.377 - 9 0.0119 - 13 0.323 - 14 0.0742 - 15 0.128 - 16 0.00297 - 20 0.00297 - 21 0.0208 - 23 0.00297 - 30 0.0089 - 31 0.0119 - 33 0.00297 - 39 0.00297 - - 3 7 5 0 - 2 0.286 - 4 0.286 - 40 0.143 - 41 0.143 - 46 0.143 - - 6 7 3 0 - 40 0.286 - 41 0.286 - 46 0.429 - - 13 392 19 8 - 0 0.0102 - 2 0.416 - 7 0.148 - 12 0.0102 - 14 0.0051 - 21 0.00255 - 26 0.0102 - 29 0.0051 - 30 0.00255 - 31 0.00255 - 32 0.0051 - 33 0.00255 - 34 0.0051 - 35 0.00255 - 39 0.00255 - 40 0.107 - 41 0.24 - 42 0.0051 - 46 0.0179 - - 3 7 5 0 - 2 0.429 - 7 0.143 - 14 0.143 - 31 0.143 - 40 0.143 - - 4 4 2 0 - 41 0.25 - 46 0.75 - - 8 107 13 0 - 0 0.00935 - 2 0.271 - 7 0.15 - 12 0.0187 - 21 0.00935 - 26 0.00935 - 29 0.00935 - 32 0.0187 - 34 0.0187 - 40 0.103 - 41 0.355 - 42 0.00935 - 46 0.0187 - - 9 1 1 0 - 42 1 - - 13 89 11 0 - 0 0.0337 - 2 0.371 - 7 0.169 - 12 0.0112 - 26 0.0112 - 29 0.0112 - 33 0.0112 - 39 0.0112 - 40 0.135 - 41 0.225 - 46 0.0112 - - 14 6 2 0 - 2 0.5 - 40 0.5 - - 30 8 3 0 - 7 0.125 - 40 0.5 - 41 0.375 - - 47 147 10 0 - 2 0.565 - 7 0.156 - 12 0.0068 - 14 0.0068 - 26 0.0136 - 30 0.0068 - 35 0.0068 - 40 0.0544 - 41 0.177 - 46 0.0068 - - 14 312 22 7 - 0 0.0353 - 2 0.385 - 4 0.00321 - 7 0.0994 - 8 0.016 - 12 0.00962 - 14 0.00321 - 21 0.00321 - 26 0.0192 - 28 0.00321 - 29 0.00641 - 30 0.00962 - 31 0.00641 - 32 0.0192 - 34 0.00962 - 35 0.00962 - 40 0.128 - 41 0.212 - 42 0.00321 - 43 0.00321 - 44 0.00641 - 46 0.00962 - - 8 75 12 0 - 0 0.0267 - 2 0.333 - 7 0.0933 - 8 0.0533 - 21 0.0133 - 26 0.04 - 28 0.0133 - 29 0.0133 - 35 0.0133 - 40 0.2 - 41 0.187 - 46 0.0133 - - 13 93 15 0 - 0 0.0753 - 2 0.312 - 4 0.0108 - 7 0.118 - 12 0.0215 - 30 0.0108 - 31 0.0215 - 32 0.0323 - 34 0.0108 - 35 0.0215 - 40 0.172 - 41 0.161 - 43 0.0108 - 44 0.0108 - 46 0.0108 - - 15 6 5 0 - 2 0.333 - 12 0.167 - 26 0.167 - 29 0.167 - 41 0.167 - - 21 3 3 0 - 2 0.333 - 7 0.333 - 14 0.333 - - 31 5 5 0 - 0 0.2 - 2 0.2 - 30 0.2 - 41 0.2 - 44 0.2 - - 45 1 1 0 - 46 1 - - 47 111 10 0 - 2 0.523 - 7 0.0721 - 8 0.00901 - 26 0.018 - 30 0.00901 - 32 0.027 - 34 0.018 - 40 0.0631 - 41 0.252 - 42 0.00901 - - 15 139 12 3 - 0 0.00719 - 2 0.266 - 7 0.0719 - 14 0.00719 - 18 0.0216 - 29 0.00719 - 32 0.0144 - 33 0.00719 - 40 0.194 - 41 0.223 - 44 0.0863 - 46 0.0935 - - 3 3 3 0 - 2 0.333 - 7 0.333 - 14 0.333 - - 15 83 9 0 - 2 0.265 - 7 0.012 - 29 0.012 - 32 0.0241 - 33 0.012 - 40 0.229 - 41 0.253 - 44 0.12 - 46 0.0723 - - 47 45 8 0 - 0 0.0222 - 2 0.244 - 7 0.178 - 18 0.0667 - 40 0.156 - 41 0.156 - 44 0.0444 - 46 0.133 - - 16 12 6 0 - 0 0.0833 - 2 0.417 - 7 0.0833 - 41 0.25 - 42 0.0833 - 46 0.0833 - - 18 3 3 0 - 0 0.333 - 7 0.333 - 12 0.333 - - 30 2 2 0 - 2 0.5 - 4 0.5 - - 33 1 1 0 - 4 1 - - 41 116 15 1 - 0 0.0172 - 2 0.155 - 3 0.00862 - 4 0.0259 - 6 0.00862 - 7 0.0172 - 8 0.138 - 13 0.267 - 14 0.19 - 15 0.103 - 16 0.00862 - 21 0.0172 - 31 0.00862 - 35 0.00862 - 46 0.0259 - - 57 3 3 0 - 0 0.333 - 21 0.333 - 46 0.333 - - 42 3 3 0 - 4 0.333 - 32 0.333 - 37 0.333 - - 45 3 1 0 - 15 1 - - 46 8 4 0 - 2 0.5 - 7 0.125 - 29 0.125 - 34 0.25 - - 47 1311 27 19 - 0 0.032 - 2 0.263 - 3 0.00153 - 4 0.00763 - 7 0.127 - 8 0.00458 - 12 0.016 - 13 0.000763 - 14 0.00381 - 15 0.00153 - 21 0.00381 - 26 0.0114 - 28 0.00153 - 29 0.00839 - 30 0.00534 - 31 0.00534 - 32 0.0168 - 33 0.00305 - 34 0.00763 - 35 0.0061 - 39 0.00153 - 40 0.2 - 41 0.222 - 42 0.00839 - 43 0.000763 - 44 0.0114 - 46 0.029 - - 2 2 2 0 - 3 0.5 - 30 0.5 - - 3 7 5 0 - 2 0.286 - 4 0.286 - 40 0.143 - 41 0.143 - 46 0.143 - - 6 7 3 0 - 40 0.286 - 41 0.286 - 46 0.429 - - 13 389 18 0 - 0 0.0103 - 2 0.419 - 7 0.147 - 12 0.0103 - 14 0.00514 - 21 0.00257 - 26 0.00771 - 29 0.00514 - 31 0.00257 - 32 0.00514 - 33 0.00257 - 34 0.00514 - 35 0.00257 - 39 0.00257 - 40 0.108 - 41 0.242 - 42 0.00514 - 46 0.018 - - 14 310 22 0 - 0 0.0355 - 2 0.387 - 4 0.00323 - 7 0.0968 - 8 0.0161 - 12 0.00968 - 14 0.00323 - 21 0.00323 - 26 0.0194 - 28 0.00323 - 29 0.00645 - 30 0.00968 - 31 0.00645 - 32 0.0194 - 34 0.00968 - 35 0.00968 - 40 0.129 - 41 0.213 - 42 0.00323 - 43 0.00323 - 44 0.00645 - 46 0.00645 - - 15 135 11 0 - 0 0.00741 - 2 0.274 - 7 0.0667 - 14 0.00741 - 29 0.00741 - 32 0.0148 - 33 0.00741 - 40 0.2 - 41 0.23 - 44 0.0889 - 46 0.0963 - - 16 12 6 0 - 0 0.0833 - 2 0.417 - 7 0.0833 - 41 0.25 - 42 0.0833 - 46 0.0833 - - 18 3 3 0 - 0 0.333 - 7 0.333 - 12 0.333 - - 30 2 2 0 - 2 0.5 - 4 0.5 - - 33 1 1 0 - 4 1 - - 41 7 5 0 - 0 0.286 - 2 0.143 - 3 0.143 - 7 0.286 - 31 0.143 - - 46 3 3 0 - 2 0.333 - 7 0.333 - 29 0.333 - - 48 4 1 0 - 40 1 - - 55 8 4 0 - 7 0.125 - 40 0.5 - 41 0.25 - 46 0.125 - - 56 346 23 0 - 0 0.0578 - 2 0.00867 - 4 0.0116 - 7 0.173 - 8 0.00289 - 12 0.0289 - 14 0.00289 - 21 0.00578 - 26 0.0173 - 28 0.00289 - 29 0.0145 - 30 0.00867 - 31 0.00867 - 32 0.0318 - 33 0.00578 - 34 0.0145 - 35 0.0116 - 39 0.00289 - 40 0.344 - 41 0.22 - 42 0.0116 - 44 0.00289 - 46 0.0116 - - 57 45 12 0 - 0 0.0222 - 2 0.0667 - 4 0.0222 - 7 0.0889 - 12 0.0667 - 13 0.0222 - 15 0.0444 - 21 0.0222 - 40 0.333 - 41 0.2 - 42 0.0222 - 46 0.0889 - - 58 13 4 0 - 2 0.308 - 40 0.308 - 41 0.231 - 42 0.154 - - 60 3 1 0 - 41 1 - - 64 5 4 0 - 0 0.2 - 40 0.4 - 41 0.2 - 46 0.2 - - 48 4 1 0 - 40 1 - - 55 20 9 1 - 2 0.05 - 7 0.35 - 29 0.05 - 31 0.05 - 34 0.05 - 40 0.2 - 41 0.1 - 42 0.1 - 46 0.05 - - 47 10 6 0 - 2 0.1 - 7 0.5 - 29 0.1 - 31 0.1 - 34 0.1 - 42 0.1 - - 56 860 23 4 - 0 0.0233 - 2 0.395 - 4 0.00698 - 7 0.11 - 8 0.00581 - 12 0.0116 - 14 0.00465 - 21 0.00349 - 26 0.0093 - 28 0.00116 - 29 0.00581 - 30 0.00349 - 31 0.00349 - 32 0.0128 - 33 0.00233 - 34 0.00581 - 35 0.00465 - 39 0.00116 - 40 0.138 - 41 0.217 - 42 0.00698 - 44 0.0163 - 46 0.0093 - - 2 351 23 0 - 0 0.057 - 2 0.0114 - 4 0.0114 - 7 0.177 - 8 0.00285 - 12 0.0285 - 14 0.0114 - 21 0.0057 - 26 0.0171 - 28 0.00285 - 29 0.0142 - 30 0.00855 - 31 0.00855 - 32 0.0313 - 33 0.0057 - 34 0.0142 - 35 0.0114 - 39 0.00285 - 40 0.328 - 41 0.225 - 42 0.0114 - 44 0.00285 - 46 0.0114 - - 41 83 2 0 - 2 0.675 - 41 0.325 - - 45 8 3 0 - 40 0.25 - 41 0.25 - 46 0.5 - - 47 414 9 0 - 2 0.676 - 4 0.00483 - 7 0.0773 - 8 0.00966 - 21 0.00242 - 26 0.00483 - 41 0.188 - 42 0.00483 - 44 0.0314 - - 57 50 12 0 - 0 0.02 - 2 0.06 - 4 0.02 - 7 0.12 - 12 0.06 - 13 0.02 - 15 0.04 - 21 0.02 - 40 0.3 - 41 0.24 - 42 0.02 - 46 0.08 - - 58 14 4 0 - 2 0.286 - 40 0.286 - 41 0.286 - 42 0.143 - - 60 3 1 0 - 41 1 - - 64 6 4 0 - 0 0.167 - 40 0.333 - 41 0.333 - 46 0.167 - -57 285122 47 41 - 0 0.025 - 1 0.000582 - 2 0.0249 - 3 0.0218 - 4 0.118 - 5 0.000179 - 6 8.77e-05 - 7 0.0779 - 8 0.0345 - 9 0.00187 - 10 0.000544 - 12 0.0081 - 13 0.0408 - 14 0.0204 - 15 0.0544 - 16 0.000593 - 17 0.000368 - 18 0.000154 - 19 0.00467 - 20 0.0129 - 21 0.012 - 22 0.000722 - 23 7.01e-05 - 24 2.1e-05 - 25 1.4e-05 - 26 0.018 - 27 7.01e-06 - 28 0.000656 - 29 0.0139 - 30 0.013 - 31 0.0035 - 32 0.00343 - 33 0.0038 - 34 0.00234 - 35 0.00156 - 36 1.05e-05 - 37 0.00221 - 38 0.000277 - 39 0.0111 - 40 0.28 - 41 0.164 - 42 0.0145 - 43 0.00169 - 44 0.00118 - 45 0.00235 - 46 0.00192 - 47 0.00108 - - 2 472 17 6 - 3 0.00847 - 4 0.0275 - 7 0.684 - 8 0.0424 - 9 0.00636 - 13 0.0169 - 14 0.0169 - 15 0.0106 - 20 0.00212 - 21 0.0826 - 22 0.00212 - 26 0.0742 - 30 0.00424 - 31 0.00424 - 39 0.00212 - 41 0.0127 - 45 0.00212 - - 3 1 1 0 - 3 1 - - 7 33 2 0 - 4 0.0606 - 7 0.939 - - 41 83 8 0 - 3 0.0241 - 4 0.012 - 7 0.602 - 21 0.253 - 22 0.012 - 26 0.0723 - 31 0.012 - 45 0.012 - - 47 56 10 0 - 3 0.0179 - 4 0.179 - 8 0.357 - 9 0.0357 - 13 0.125 - 14 0.143 - 15 0.0714 - 30 0.0357 - 31 0.0179 - 39 0.0179 - - 55 3 3 0 - 13 0.333 - 15 0.333 - 20 0.333 - - 57 280 5 0 - 7 0.807 - 9 0.00357 - 21 0.0643 - 26 0.104 - 41 0.0214 - - 6 13 5 0 - 4 0.154 - 8 0.231 - 14 0.0769 - 15 0.462 - 39 0.0769 - - 7 83957 45 12 - 0 0.000107 - 1 0.00155 - 2 0.00102 - 3 0.0553 - 4 0.345 - 5 3.57e-05 - 6 0.000226 - 7 0.0167 - 8 0.0969 - 9 0.00506 - 10 0.00163 - 12 4.76e-05 - 13 0.119 - 14 0.0601 - 15 0.16 - 16 0.00185 - 17 0.00114 - 19 0.00769 - 20 0.0394 - 21 0.0123 - 22 0.000643 - 23 0.000167 - 25 1.19e-05 - 26 0.000798 - 27 1.19e-05 - 28 0.000119 - 29 2.38e-05 - 30 0.0324 - 31 0.00273 - 32 1.19e-05 - 33 2.38e-05 - 34 0.000226 - 35 0.00219 - 36 1.19e-05 - 37 0.00157 - 38 0.000584 - 39 0.0269 - 40 0.000655 - 41 0.000691 - 42 0.000202 - 43 3.57e-05 - 44 0.00031 - 45 0.00479 - 46 0.000119 - 47 0.000191 - - 2 40 9 0 - 3 0.025 - 4 0.35 - 7 0.1 - 8 0.025 - 13 0.175 - 14 0.05 - 15 0.225 - 19 0.025 - 20 0.025 - - 4 18 7 0 - 2 0.167 - 4 0.278 - 13 0.0556 - 14 0.0556 - 15 0.278 - 20 0.111 - 40 0.0556 - - 7 356 14 0 - 3 0.00562 - 4 0.41 - 8 0.16 - 9 0.0281 - 13 0.129 - 14 0.0927 - 15 0.0365 - 20 0.0871 - 21 0.00281 - 30 0.014 - 31 0.014 - 35 0.00281 - 39 0.00281 - 45 0.014 - - 8 342 16 0 - 3 0.00292 - 4 0.146 - 7 0.00585 - 8 0.12 - 9 0.00585 - 13 0.184 - 14 0.0848 - 15 0.371 - 20 0.00292 - 21 0.00585 - 30 0.0263 - 31 0.00292 - 32 0.00292 - 37 0.00585 - 41 0.00585 - 45 0.0263 - - 21 289 21 0 - 1 0.0138 - 3 0.0346 - 4 0.301 - 7 0.0484 - 8 0.0934 - 9 0.00346 - 10 0.00346 - 13 0.111 - 14 0.0484 - 15 0.0727 - 19 0.00346 - 20 0.0381 - 21 0.0277 - 26 0.0104 - 28 0.00692 - 30 0.163 - 31 0.00346 - 35 0.00346 - 39 0.00346 - 41 0.00346 - 45 0.00692 - - 22 5 4 0 - 4 0.4 - 14 0.2 - 15 0.2 - 28 0.2 - - 44 1 1 0 - 43 1 - - 45 5 4 0 - 4 0.2 - 13 0.4 - 21 0.2 - 30 0.2 - - 47 82196 44 0 - 0 0.000109 - 1 0.0015 - 2 0.00101 - 3 0.0561 - 4 0.345 - 5 3.65e-05 - 6 0.000231 - 7 0.0161 - 8 0.0969 - 9 0.00495 - 10 0.00164 - 12 4.87e-05 - 13 0.118 - 14 0.0599 - 15 0.16 - 16 0.00189 - 17 0.00117 - 19 0.00779 - 20 0.0393 - 21 0.0123 - 22 0.000657 - 23 0.00017 - 25 1.22e-05 - 26 0.000766 - 27 1.22e-05 - 28 8.52e-05 - 29 2.43e-05 - 30 0.032 - 31 0.0027 - 33 1.22e-05 - 34 0.000231 - 35 0.0022 - 36 1.22e-05 - 37 0.00157 - 38 0.000596 - 39 0.0274 - 40 0.000657 - 41 0.000645 - 42 0.000207 - 43 2.43e-05 - 44 0.000316 - 45 0.00467 - 46 0.000109 - 47 0.000182 - - 49 561 20 0 - 1 0.00535 - 3 0.0232 - 4 0.385 - 7 0.0945 - 8 0.0731 - 9 0.00891 - 10 0.00178 - 13 0.171 - 14 0.0624 - 15 0.0838 - 19 0.00713 - 20 0.0285 - 21 0.00535 - 30 0.0357 - 33 0.00178 - 35 0.00178 - 39 0.00357 - 45 0.00357 - 46 0.00178 - 47 0.00178 - - 55 124 13 0 - 3 0.0242 - 4 0.54 - 8 0.0403 - 13 0.0968 - 14 0.00806 - 15 0.0645 - 20 0.105 - 21 0.0161 - 26 0.00806 - 30 0.0645 - 37 0.00806 - 39 0.00806 - 41 0.0161 - - 57 8 4 0 - 4 0.125 - 7 0.625 - 13 0.125 - 21 0.125 - - 8 27 13 0 - 3 0.0741 - 4 0.111 - 9 0.037 - 13 0.148 - 14 0.111 - 15 0.111 - 19 0.037 - 20 0.037 - 26 0.111 - 30 0.111 - 39 0.037 - 40 0.037 - 46 0.037 - - 13 8 4 0 - 3 0.125 - 15 0.375 - 40 0.25 - 41 0.25 - - 14 6 4 0 - 2 0.167 - 32 0.167 - 40 0.333 - 41 0.333 - - 15 12 4 0 - 4 0.25 - 14 0.0833 - 15 0.583 - 16 0.0833 - - 20 2 1 0 - 14 1 - - 21 132 17 5 - 2 0.00758 - 3 0.0227 - 4 0.0985 - 7 0.205 - 8 0.114 - 9 0.00758 - 13 0.0455 - 14 0.00758 - 15 0.0379 - 19 0.0303 - 20 0.0227 - 21 0.197 - 26 0.0455 - 30 0.053 - 31 0.0227 - 40 0.0455 - 41 0.0379 - - 2 14 2 0 - 7 0.714 - 26 0.286 - - 7 10 5 0 - 4 0.1 - 19 0.1 - 21 0.1 - 40 0.3 - 41 0.4 - - 41 14 4 0 - 7 0.786 - 21 0.0714 - 26 0.0714 - 30 0.0714 - - 47 80 15 0 - 2 0.0125 - 3 0.0375 - 4 0.138 - 7 0.05 - 8 0.162 - 9 0.0125 - 13 0.075 - 15 0.0125 - 19 0.025 - 20 0.0375 - 21 0.275 - 26 0.0125 - 30 0.075 - 31 0.0375 - 40 0.0375 - - 49 8 6 0 - 4 0.125 - 8 0.25 - 14 0.125 - 15 0.25 - 19 0.125 - 21 0.125 - - 22 2 2 0 - 8 0.5 - 14 0.5 - - 23 4 2 0 - 26 0.5 - 41 0.5 - - 24 55 14 0 - 0 0.0364 - 3 0.0545 - 4 0.145 - 7 0.182 - 8 0.0545 - 14 0.0364 - 15 0.0727 - 21 0.0364 - 26 0.145 - 30 0.0182 - 31 0.0182 - 40 0.145 - 41 0.0182 - 45 0.0364 - - 26 8661 37 4 - 0 0.000231 - 1 0.00115 - 2 0.00104 - 3 0.158 - 4 0.289 - 6 0.000231 - 7 0.00912 - 8 0.0774 - 9 0.00774 - 10 0.000577 - 13 0.0784 - 14 0.0602 - 15 0.116 - 16 0.00115 - 17 0.000808 - 19 0.0128 - 20 0.0344 - 21 0.0102 - 22 0.000693 - 23 0.000115 - 27 0.000115 - 28 0.00739 - 30 0.0172 - 31 0.00323 - 34 0.000346 - 35 0.00254 - 37 0.000693 - 38 0.00346 - 39 0.1 - 40 0.000462 - 41 0.00104 - 42 0.000115 - 43 0.000115 - 44 0.000346 - 45 0.00323 - 46 0.000115 - 47 0.000462 - - 8 12 6 0 - 4 0.417 - 8 0.0833 - 13 0.167 - 14 0.0833 - 15 0.0833 - 20 0.167 - - 21 8 4 0 - 4 0.625 - 8 0.125 - 14 0.125 - 31 0.125 - - 41 1 1 0 - 28 1 - - 49 36 8 0 - 3 0.0278 - 4 0.556 - 8 0.111 - 9 0.111 - 13 0.0833 - 14 0.0278 - 15 0.0278 - 20 0.0556 - - 28 2 2 0 - 4 0.5 - 37 0.5 - - 29 2 1 0 - 4 1 - - 30 613 21 0 - 3 0.0375 - 4 0.401 - 7 0.00489 - 8 0.106 - 9 0.00816 - 13 0.116 - 14 0.0571 - 15 0.166 - 16 0.00163 - 19 0.00163 - 20 0.0277 - 21 0.00326 - 22 0.00163 - 25 0.00163 - 30 0.0147 - 31 0.00816 - 37 0.00489 - 39 0.0245 - 41 0.00326 - 42 0.00163 - 45 0.00816 - - 31 57 10 0 - 4 0.526 - 7 0.123 - 8 0.0877 - 13 0.0175 - 15 0.0877 - 19 0.0351 - 20 0.0702 - 29 0.0175 - 30 0.0175 - 35 0.0175 - - 40 16 3 0 - 40 0.188 - 46 0.125 - 47 0.688 - - 41 284 20 7 - 0 0.0106 - 2 0.317 - 3 0.00704 - 4 0.173 - 5 0.00352 - 7 0.19 - 8 0.00704 - 13 0.00704 - 15 0.00352 - 19 0.00352 - 20 0.00352 - 21 0.148 - 22 0.00704 - 26 0.0634 - 28 0.00704 - 29 0.0106 - 34 0.00704 - 37 0.00352 - 45 0.0141 - 46 0.0141 - - 2 2 1 0 - 22 1 - - 7 7 3 0 - 21 0.286 - 28 0.286 - 45 0.429 - - 48 2 1 0 - 46 1 - - 49 6 4 0 - 2 0.167 - 4 0.167 - 7 0.5 - 34 0.167 - - 52 3 2 0 - 13 0.667 - 20 0.333 - - 55 71 12 0 - 0 0.0282 - 2 0.0423 - 4 0.62 - 5 0.0141 - 7 0.169 - 8 0.0282 - 15 0.0141 - 19 0.0141 - 21 0.0141 - 26 0.0141 - 29 0.0282 - 46 0.0141 - - 57 189 11 0 - 0 0.00529 - 2 0.45 - 3 0.0106 - 4 0.0212 - 7 0.206 - 21 0.196 - 26 0.0899 - 29 0.00529 - 34 0.00529 - 37 0.00529 - 45 0.00529 - - 42 32 10 3 - 2 0.219 - 4 0.0938 - 7 0.125 - 8 0.0312 - 13 0.0312 - 21 0.125 - 26 0.0312 - 30 0.0312 - 42 0.0312 - 47 0.281 - - 7 5 4 0 - 4 0.4 - 8 0.2 - 30 0.2 - 42 0.2 - - 55 10 2 0 - 13 0.1 - 47 0.9 - - 57 16 4 0 - 2 0.438 - 7 0.25 - 21 0.25 - 26 0.0625 - - 43 7 6 0 - 0 0.143 - 2 0.143 - 3 0.143 - 14 0.143 - 15 0.143 - 41 0.286 - - 44 4 3 0 - 4 0.25 - 15 0.5 - 21 0.25 - - 45 232 15 3 - 1 0.00862 - 3 0.00862 - 4 0.168 - 7 0.00431 - 8 0.22 - 10 0.00431 - 13 0.159 - 14 0.0517 - 15 0.241 - 19 0.00431 - 21 0.0431 - 28 0.0129 - 30 0.056 - 31 0.00431 - 35 0.0129 - - 26 17 8 0 - 3 0.0588 - 4 0.0588 - 8 0.176 - 13 0.235 - 15 0.294 - 21 0.0588 - 28 0.0588 - 30 0.0588 - - 41 2 2 0 - 10 0.5 - 15 0.5 - - 55 1 1 0 - 7 1 - - 46 72 19 4 - 0 0.0139 - 2 0.111 - 4 0.0972 - 7 0.208 - 8 0.0278 - 12 0.0278 - 13 0.0417 - 14 0.0417 - 15 0.0417 - 20 0.0139 - 21 0.0278 - 26 0.0833 - 29 0.0139 - 32 0.0139 - 33 0.0417 - 40 0.0278 - 42 0.0972 - 44 0.0139 - 47 0.0556 - - 7 10 4 0 - 4 0.4 - 14 0.3 - 15 0.2 - 20 0.1 - - 41 4 4 0 - 4 0.25 - 13 0.25 - 15 0.25 - 29 0.25 - - 55 44 14 0 - 0 0.0227 - 2 0.159 - 7 0.318 - 8 0.0455 - 12 0.0455 - 13 0.0227 - 21 0.0227 - 26 0.136 - 32 0.0227 - 33 0.0682 - 40 0.0455 - 42 0.0455 - 44 0.0227 - 47 0.0227 - - 62 2 1 0 - 42 1 - - 47 94690 45 25 - 0 0.0377 - 1 0.000127 - 2 0.0352 - 3 0.000898 - 4 0.00774 - 5 0.000253 - 6 2.11e-05 - 7 0.106 - 8 0.0044 - 9 0.000158 - 10 6.34e-05 - 12 0.0122 - 13 0.00432 - 14 0.000993 - 15 0.00449 - 16 1.06e-05 - 17 1.06e-05 - 18 0.000232 - 19 0.00299 - 20 0.00018 - 21 0.0112 - 22 0.00075 - 23 3.17e-05 - 24 3.17e-05 - 25 1.06e-05 - 26 0.0254 - 28 0.00057 - 29 0.0208 - 30 0.00416 - 31 0.00387 - 32 0.00516 - 33 0.00571 - 34 0.00339 - 35 0.00124 - 36 1.06e-05 - 37 0.00257 - 39 9.5e-05 - 40 0.421 - 41 0.245 - 42 0.0216 - 43 0.0025 - 44 0.00162 - 45 0.0012 - 46 0.00251 - 47 0.00163 - - 7 248 21 0 - 0 0.0282 - 2 0.121 - 4 0.0685 - 7 0.117 - 8 0.0242 - 12 0.0161 - 13 0.0121 - 14 0.0121 - 15 0.0121 - 20 0.00403 - 21 0.0323 - 22 0.00403 - 26 0.0323 - 29 0.00403 - 31 0.00806 - 37 0.00806 - 40 0.222 - 41 0.169 - 42 0.0363 - 43 0.00403 - 47 0.0645 - - 8 4 2 0 - 26 0.75 - 40 0.25 - - 14 6 4 0 - 2 0.167 - 32 0.167 - 40 0.333 - 41 0.333 - - 21 20 8 0 - 2 0.05 - 4 0.05 - 7 0.2 - 19 0.05 - 21 0.05 - 26 0.05 - 40 0.3 - 41 0.25 - - 23 4 2 0 - 26 0.5 - 41 0.5 - - 24 17 7 0 - 0 0.118 - 7 0.176 - 15 0.0588 - 21 0.0588 - 26 0.0588 - 40 0.471 - 41 0.0588 - - 26 38 12 0 - 0 0.0526 - 2 0.0789 - 4 0.0526 - 7 0.237 - 14 0.0263 - 15 0.0526 - 19 0.0263 - 21 0.0526 - 23 0.0263 - 40 0.105 - 41 0.184 - 47 0.105 - - 40 11 1 0 - 47 1 - - 41 27 12 0 - 0 0.111 - 2 0.0741 - 3 0.037 - 4 0.185 - 5 0.037 - 7 0.185 - 15 0.037 - 19 0.037 - 21 0.037 - 26 0.148 - 29 0.0741 - 45 0.037 - - 42 10 2 0 - 13 0.1 - 47 0.9 - - 43 4 3 0 - 0 0.25 - 2 0.25 - 41 0.5 - - 46 58 17 0 - 0 0.0172 - 2 0.138 - 4 0.0345 - 7 0.259 - 8 0.0345 - 12 0.0345 - 13 0.0172 - 15 0.0172 - 21 0.0172 - 26 0.103 - 29 0.0172 - 32 0.0172 - 33 0.0517 - 40 0.0345 - 42 0.121 - 44 0.0172 - 47 0.069 - - 48 254 23 0 - 0 0.0394 - 2 0.0394 - 4 0.0276 - 7 0.157 - 12 0.00787 - 13 0.00394 - 14 0.0157 - 15 0.00394 - 21 0.00787 - 22 0.00394 - 26 0.0394 - 29 0.00787 - 30 0.00394 - 31 0.00787 - 33 0.00394 - 37 0.00787 - 39 0.00394 - 40 0.26 - 41 0.291 - 42 0.0394 - 43 0.00394 - 45 0.0118 - 46 0.0118 - - 49 446 17 0 - 0 0.0112 - 2 0.0202 - 4 0.00897 - 7 0.0336 - 8 0.00224 - 13 0.00224 - 15 0.00673 - 19 0.00448 - 26 0.0224 - 29 0.00448 - 32 0.00224 - 33 0.00224 - 40 0.601 - 41 0.258 - 42 0.0157 - 43 0.00224 - 46 0.00224 - - 51 17 2 0 - 40 0.706 - 41 0.294 - - 55 87632 45 0 - 0 0.0392 - 1 0.000137 - 2 0.0359 - 3 0.000913 - 4 0.0077 - 5 0.000262 - 6 2.28e-05 - 7 0.111 - 8 0.0046 - 9 0.00016 - 10 6.85e-05 - 12 0.0127 - 13 0.00454 - 14 0.000959 - 15 0.00461 - 16 1.14e-05 - 17 1.14e-05 - 18 0.000251 - 19 0.00304 - 20 0.000183 - 21 0.0117 - 22 0.000742 - 23 2.28e-05 - 24 3.42e-05 - 25 1.14e-05 - 26 0.0265 - 28 0.000605 - 29 0.0222 - 30 0.00445 - 31 0.00404 - 32 0.00544 - 33 0.00598 - 34 0.00358 - 35 0.0013 - 36 1.14e-05 - 37 0.00261 - 39 9.13e-05 - 40 0.408 - 41 0.246 - 42 0.0216 - 43 0.00251 - 44 0.00163 - 45 0.00118 - 46 0.00252 - 47 0.00106 - - 57 2302 31 0 - 0 0.0122 - 2 0.0187 - 3 0.0013 - 4 0.00608 - 7 0.0478 - 8 0.0013 - 9 0.000434 - 12 0.00348 - 13 0.00174 - 14 0.000869 - 15 0.00348 - 19 0.00174 - 21 0.00608 - 22 0.0013 - 26 0.0113 - 29 0.00521 - 30 0.000434 - 31 0.00174 - 32 0.00217 - 33 0.000869 - 34 0.000434 - 35 0.0013 - 37 0.00217 - 40 0.595 - 41 0.241 - 42 0.0204 - 43 0.00304 - 44 0.00174 - 45 0.000869 - 46 0.00261 - 47 0.00304 - - 58 9 5 0 - 2 0.111 - 4 0.111 - 7 0.222 - 40 0.333 - 41 0.222 - - 62 3086 28 0 - 0 0.0198 - 2 0.0237 - 3 0.000324 - 4 0.00162 - 7 0.0256 - 8 0.000648 - 12 0.00713 - 15 0.000324 - 19 0.00259 - 21 0.00324 - 22 0.000324 - 26 0.00551 - 28 0.000324 - 29 0.00259 - 30 0.000648 - 31 0.0013 - 32 0.000972 - 33 0.00324 - 34 0.00162 - 37 0.0013 - 40 0.631 - 41 0.239 - 42 0.0185 - 43 0.00194 - 44 0.000972 - 45 0.00162 - 46 0.00162 - 47 0.00259 - - 64 448 14 0 - 0 0.0246 - 2 0.0134 - 7 0.0246 - 12 0.00893 - 21 0.00223 - 26 0.00223 - 32 0.00223 - 34 0.00223 - 40 0.696 - 41 0.192 - 42 0.0223 - 43 0.00223 - 44 0.00446 - 46 0.00223 - - 67 1 1 0 - 46 1 - - 68 17 2 0 - 40 0.765 - 41 0.235 - - 69 14 6 0 - 0 0.0714 - 2 0.0714 - 37 0.0714 - 40 0.571 - 41 0.143 - 42 0.0714 - - 72 5 2 0 - 0 0.6 - 29 0.4 - - 74 3 2 0 - 40 0.333 - 47 0.667 - - 48 259 23 3 - 0 0.0386 - 2 0.0386 - 4 0.027 - 7 0.154 - 12 0.00772 - 13 0.00386 - 14 0.0154 - 15 0.00386 - 21 0.00772 - 22 0.00386 - 26 0.0386 - 29 0.00772 - 30 0.00386 - 31 0.00772 - 33 0.00386 - 37 0.00772 - 39 0.00386 - 40 0.255 - 41 0.293 - 42 0.0386 - 43 0.00386 - 45 0.0116 - 46 0.0232 - - 21 14 5 0 - 4 0.0714 - 7 0.0714 - 40 0.5 - 41 0.214 - 46 0.143 - - 26 22 5 0 - 7 0.5 - 14 0.0455 - 40 0.182 - 41 0.182 - 42 0.0909 - - 45 14 3 0 - 40 0.5 - 41 0.286 - 46 0.214 - - 49 475 17 5 - 0 0.0105 - 2 0.0189 - 4 0.0168 - 7 0.0674 - 8 0.00211 - 13 0.00211 - 15 0.00842 - 19 0.00421 - 26 0.0232 - 29 0.00421 - 32 0.00211 - 33 0.00211 - 40 0.564 - 41 0.255 - 42 0.0147 - 43 0.00211 - 46 0.00211 - - 2 12 3 0 - 4 0.0833 - 7 0.833 - 26 0.0833 - - 7 209 16 0 - 0 0.0191 - 2 0.0287 - 4 0.0335 - 7 0.067 - 8 0.00478 - 15 0.0144 - 19 0.00957 - 26 0.0431 - 29 0.00957 - 32 0.00478 - 33 0.00478 - 40 0.364 - 41 0.368 - 42 0.0191 - 43 0.00478 - 46 0.00478 - - 21 6 5 0 - 0 0.167 - 7 0.167 - 13 0.167 - 40 0.333 - 41 0.167 - - 41 53 4 0 - 7 0.113 - 26 0.0189 - 40 0.755 - 41 0.113 - - 55 186 5 0 - 2 0.0161 - 7 0.00538 - 40 0.785 - 41 0.177 - 42 0.0161 - - 50 38 2 0 - 7 0.842 - 26 0.158 - - 51 18 3 0 - 40 0.667 - 41 0.278 - 46 0.0556 - - 52 3 1 0 - 41 1 - - 55 88258 45 19 - 0 0.0389 - 1 0.000136 - 2 0.0356 - 3 0.000974 - 4 0.00988 - 5 0.000261 - 6 2.27e-05 - 7 0.112 - 8 0.00509 - 9 0.000159 - 10 6.8e-05 - 12 0.0126 - 13 0.00455 - 14 0.000952 - 15 0.00487 - 16 1.13e-05 - 17 1.13e-05 - 18 0.000249 - 19 0.00301 - 20 0.000181 - 21 0.0119 - 22 0.000748 - 23 2.27e-05 - 24 3.4e-05 - 25 1.13e-05 - 26 0.0263 - 28 0.000601 - 29 0.022 - 30 0.00442 - 31 0.00401 - 32 0.0054 - 33 0.00594 - 34 0.00356 - 35 0.00129 - 36 1.13e-05 - 37 0.00261 - 39 9.06e-05 - 40 0.405 - 41 0.245 - 42 0.0216 - 43 0.00253 - 44 0.00162 - 45 0.00118 - 46 0.003 - 47 0.00105 - - 2 62 11 0 - 0 0.0323 - 2 0.0161 - 7 0.0806 - 13 0.0323 - 21 0.0161 - 26 0.0161 - 40 0.258 - 41 0.435 - 42 0.0806 - 43 0.0161 - 47 0.0161 - - 6 13 6 0 - 0 0.0769 - 13 0.0769 - 15 0.0769 - 40 0.385 - 43 0.231 - 47 0.154 - - 7 78674 44 0 - 0 0.0417 - 1 0.000153 - 2 0.0359 - 3 0.000953 - 4 0.01 - 5 0.000267 - 6 2.54e-05 - 7 0.102 - 8 0.0053 - 9 0.000165 - 10 7.63e-05 - 12 0.0136 - 13 0.00469 - 14 0.00103 - 15 0.00516 - 16 1.27e-05 - 17 1.27e-05 - 18 0.00028 - 19 0.00324 - 20 0.000178 - 21 0.0122 - 22 0.000775 - 23 2.54e-05 - 24 3.81e-05 - 26 0.0278 - 28 0.000636 - 29 0.0238 - 30 0.00456 - 31 0.0044 - 32 0.00578 - 33 0.0063 - 34 0.00385 - 35 0.0014 - 36 1.27e-05 - 37 0.00253 - 39 8.9e-05 - 40 0.401 - 41 0.25 - 42 0.0215 - 43 0.00247 - 44 0.00174 - 45 0.00114 - 46 0.00262 - 47 0.00105 - - 8 16 7 0 - 2 0.0625 - 7 0.188 - 21 0.125 - 25 0.0625 - 26 0.125 - 40 0.25 - 41 0.188 - - 13 4 3 0 - 7 0.25 - 29 0.25 - 41 0.5 - - 15 11 4 0 - 40 0.273 - 41 0.364 - 42 0.0909 - 46 0.273 - - 21 54 11 0 - 2 0.111 - 4 0.0185 - 7 0.111 - 8 0.0185 - 15 0.0185 - 19 0.0185 - 26 0.0185 - 32 0.0185 - 40 0.426 - 41 0.185 - 42 0.0556 - - 24 23 7 0 - 2 0.0435 - 4 0.0435 - 7 0.13 - 13 0.0435 - 40 0.435 - 41 0.261 - 43 0.0435 - - 26 8384 35 0 - 0 0.0173 - 2 0.0354 - 3 0.00131 - 4 0.00942 - 5 0.000239 - 7 0.22 - 8 0.0037 - 9 0.000119 - 12 0.00549 - 13 0.00334 - 14 0.000358 - 15 0.00262 - 19 0.00119 - 20 0.000239 - 21 0.0099 - 22 0.000596 - 26 0.0149 - 28 0.000358 - 29 0.00704 - 30 0.0037 - 31 0.000954 - 32 0.00239 - 33 0.00322 - 34 0.00131 - 35 0.000358 - 37 0.0037 - 39 0.000119 - 40 0.433 - 41 0.191 - 42 0.0198 - 43 0.00191 - 44 0.000716 - 45 0.00143 - 46 0.00155 - 47 0.000716 - - 30 598 14 0 - 0 0.00836 - 2 0.00836 - 4 0.00167 - 7 0.0134 - 13 0.00167 - 29 0.0134 - 32 0.00167 - 33 0.00167 - 40 0.562 - 41 0.319 - 42 0.0602 - 43 0.00502 - 45 0.00167 - 47 0.00167 - - 31 45 5 0 - 2 0.0222 - 40 0.267 - 41 0.644 - 42 0.0444 - 43 0.0222 - - 41 10 2 0 - 40 0.8 - 41 0.2 - - 42 5 1 0 - 40 1 - - 44 3 1 0 - 43 1 - - 45 185 5 0 - 2 0.00541 - 7 0.00541 - 40 0.497 - 41 0.259 - 46 0.232 - - 46 12 4 0 - 7 0.0833 - 40 0.583 - 41 0.25 - 45 0.0833 - - 55 121 7 0 - 2 0.0248 - 7 0.0496 - 21 0.00826 - 40 0.736 - 41 0.165 - 42 0.00826 - 43 0.00826 - - 57 10 6 0 - 0 0.2 - 7 0.2 - 21 0.1 - 35 0.1 - 40 0.2 - 41 0.2 - - 58 15 3 0 - 29 0.0667 - 40 0.667 - 41 0.267 - - 57 3084 31 15 - 0 0.00908 - 2 0.105 - 3 0.000973 - 4 0.00681 - 7 0.0516 - 8 0.0013 - 9 0.000324 - 12 0.00259 - 13 0.00162 - 14 0.0013 - 15 0.00292 - 19 0.00162 - 21 0.0123 - 22 0.000973 - 26 0.0717 - 29 0.00389 - 30 0.000324 - 31 0.0013 - 32 0.00162 - 33 0.000649 - 34 0.000324 - 35 0.000973 - 37 0.00195 - 40 0.445 - 41 0.243 - 42 0.0211 - 43 0.00259 - 44 0.00195 - 45 0.000649 - 46 0.00227 - 47 0.00227 - - 2 354 24 0 - 0 0.00847 - 2 0.0254 - 4 0.0169 - 7 0.0508 - 12 0.00282 - 13 0.00282 - 14 0.00282 - 15 0.00282 - 19 0.00282 - 21 0.00847 - 26 0.00847 - 29 0.0169 - 31 0.00282 - 32 0.00282 - 35 0.00282 - 37 0.00282 - 40 0.621 - 41 0.169 - 42 0.0282 - 43 0.00565 - 44 0.00282 - 45 0.00565 - 46 0.00282 - 47 0.00282 - - 4 11 2 0 - 2 0.818 - 41 0.182 - - 7 619 28 0 - 0 0.0226 - 2 0.0468 - 3 0.00162 - 4 0.0162 - 7 0.0565 - 8 0.00485 - 9 0.00162 - 12 0.00808 - 13 0.00485 - 14 0.00323 - 15 0.00646 - 19 0.00485 - 21 0.0162 - 22 0.00162 - 26 0.00808 - 29 0.00969 - 30 0.00162 - 31 0.00162 - 32 0.00485 - 33 0.00162 - 35 0.00323 - 37 0.00646 - 40 0.439 - 41 0.288 - 42 0.0242 - 43 0.00646 - 46 0.00646 - 47 0.00323 - - 8 10 3 0 - 0 0.1 - 40 0.7 - 41 0.2 - - 21 90 8 0 - 2 0.111 - 3 0.0111 - 7 0.0778 - 12 0.0111 - 21 0.0111 - 40 0.444 - 41 0.322 - 46 0.0111 - - 24 12 6 0 - 2 0.0833 - 7 0.167 - 22 0.0833 - 40 0.5 - 41 0.0833 - 42 0.0833 - - 30 448 11 0 - 0 0.00223 - 3 0.00223 - 4 0.00446 - 7 0.0067 - 12 0.00223 - 15 0.0067 - 33 0.00223 - 40 0.629 - 41 0.33 - 42 0.0112 - 44 0.00223 - - 31 302 10 0 - 4 0.00331 - 7 0.00993 - 13 0.00331 - 21 0.00331 - 22 0.00331 - 40 0.788 - 41 0.172 - 42 0.00331 - 44 0.00331 - 47 0.00993 - - 41 66 5 0 - 2 0.227 - 7 0.0152 - 40 0.348 - 41 0.379 - 42 0.0303 - - 44 1 1 0 - 43 1 - - 47 644 10 0 - 2 0.354 - 4 0.00155 - 7 0.0652 - 21 0.0326 - 26 0.289 - 37 0.00155 - 41 0.225 - 42 0.0264 - 44 0.00311 - 46 0.00155 - - 49 25 7 0 - 2 0.04 - 7 0.12 - 19 0.04 - 21 0.04 - 40 0.48 - 41 0.24 - 42 0.04 - - 50 54 5 0 - 2 0.204 - 14 0.0185 - 40 0.537 - 41 0.222 - 42 0.0185 - - 55 185 10 0 - 0 0.00541 - 2 0.0378 - 7 0.151 - 8 0.00541 - 26 0.0541 - 40 0.557 - 41 0.168 - 42 0.0108 - 44 0.00541 - 47 0.00541 - - 57 241 14 0 - 0 0.0332 - 2 0.0166 - 4 0.00415 - 7 0.0705 - 15 0.00415 - 21 0.00415 - 26 0.0705 - 31 0.0083 - 32 0.00415 - 34 0.00415 - 40 0.531 - 41 0.207 - 42 0.0373 - 43 0.00415 - - 58 32 12 3 - 2 0.156 - 3 0.0625 - 4 0.156 - 7 0.0938 - 8 0.125 - 14 0.0312 - 15 0.0938 - 26 0.0625 - 30 0.0312 - 39 0.0312 - 40 0.0938 - 41 0.0625 - - 2 3 2 0 - 7 0.333 - 26 0.667 - - 7 15 9 0 - 2 0.0667 - 3 0.133 - 4 0.0667 - 8 0.2 - 14 0.0667 - 15 0.2 - 30 0.0667 - 39 0.0667 - 41 0.133 - - 57 9 3 0 - 2 0.444 - 7 0.222 - 40 0.333 - - 62 3093 28 4 - 0 0.0197 - 2 0.0236 - 3 0.000323 - 4 0.00162 - 7 0.0259 - 8 0.000647 - 12 0.00711 - 15 0.000323 - 19 0.00259 - 21 0.00323 - 22 0.000323 - 26 0.0055 - 28 0.000323 - 29 0.00259 - 30 0.000647 - 31 0.00129 - 32 0.00097 - 33 0.00323 - 34 0.00162 - 37 0.00129 - 40 0.63 - 41 0.239 - 42 0.0188 - 43 0.00194 - 44 0.00097 - 45 0.00162 - 46 0.00226 - 47 0.00259 - - 26 148 11 0 - 0 0.0135 - 2 0.0135 - 7 0.0338 - 15 0.00676 - 26 0.00676 - 29 0.00676 - 33 0.00676 - 40 0.635 - 41 0.264 - 46 0.00676 - 47 0.00676 - - 41 1 1 0 - 45 1 - - 45 22 3 0 - 40 0.682 - 41 0.227 - 46 0.0909 - - 58 1 1 0 - 12 1 - - 64 449 14 1 - 0 0.0245 - 2 0.0134 - 7 0.0245 - 12 0.00891 - 21 0.00223 - 26 0.00223 - 32 0.00223 - 34 0.00223 - 40 0.695 - 41 0.192 - 42 0.0223 - 43 0.00223 - 44 0.00445 - 46 0.00445 - - 45 2 2 0 - 40 0.5 - 46 0.5 - - 65 2 2 0 - 40 0.5 - 46 0.5 - - 67 1 1 0 - 46 1 - - 68 17 2 0 - 40 0.765 - 41 0.235 - - 69 14 6 0 - 0 0.0714 - 2 0.0714 - 37 0.0714 - 40 0.571 - 41 0.143 - 42 0.0714 - - 72 5 2 0 - 0 0.6 - 29 0.4 - - 74 4 3 0 - 40 0.25 - 46 0.25 - 47 0.5 - -58 7315 39 31 - 0 0.063 - 1 0.000547 - 2 0.0418 - 3 0.00465 - 4 0.0407 - 5 0.000957 - 7 0.0861 - 8 0.0161 - 9 0.000684 - 10 0.00109 - 12 0.0257 - 13 0.0245 - 14 0.0164 - 15 0.0215 - 16 0.000547 - 19 0.0178 - 20 0.0026 - 21 0.0178 - 22 0.000273 - 23 0.000273 - 26 0.0161 - 28 0.00602 - 29 0.0187 - 30 0.00574 - 31 0.00437 - 32 0.00916 - 33 0.0145 - 34 0.00547 - 35 0.00273 - 37 0.00191 - 39 0.000547 - 40 0.0711 - 41 0.194 - 42 0.076 - 43 0.139 - 44 0.00041 - 45 0.0428 - 46 0.00342 - 47 0.00547 - - 2 85 22 4 - 0 0.0235 - 3 0.0353 - 4 0.0824 - 5 0.0118 - 7 0.0941 - 8 0.0353 - 9 0.0118 - 12 0.0235 - 13 0.0706 - 14 0.0471 - 15 0.0118 - 19 0.0353 - 21 0.341 - 22 0.0235 - 26 0.0118 - 29 0.0118 - 30 0.0118 - 31 0.0118 - 32 0.0118 - 33 0.0235 - 41 0.0588 - 45 0.0118 - - 41 20 9 0 - 0 0.05 - 3 0.05 - 7 0.1 - 13 0.1 - 15 0.05 - 21 0.45 - 22 0.1 - 33 0.05 - 45 0.05 - - 42 31 12 0 - 3 0.0323 - 4 0.161 - 5 0.0323 - 7 0.129 - 8 0.0323 - 12 0.0323 - 13 0.0645 - 14 0.0645 - 19 0.0968 - 21 0.29 - 26 0.0323 - 32 0.0323 - - 44 22 13 0 - 0 0.0455 - 4 0.0909 - 7 0.0455 - 8 0.0455 - 12 0.0455 - 13 0.0909 - 14 0.0909 - 21 0.182 - 29 0.0455 - 30 0.0455 - 31 0.0455 - 33 0.0455 - 41 0.182 - - 47 12 6 0 - 3 0.0833 - 7 0.0833 - 8 0.0833 - 9 0.0833 - 21 0.583 - 41 0.0833 - - 4 1 1 0 - 44 1 - - 7 5 4 0 - 9 0.2 - 21 0.2 - 26 0.2 - 43 0.4 - - 8 13 3 0 - 40 0.154 - 42 0.154 - 43 0.692 - - 13 17 3 0 - 41 0.0588 - 42 0.0588 - 43 0.882 - - 14 3 1 0 - 43 1 - - 15 30 4 1 - 40 0.233 - 41 0.1 - 43 0.633 - 46 0.0333 - - 2 2 1 0 - 41 1 - - 21 13 9 0 - 4 0.385 - 7 0.0769 - 8 0.0769 - 13 0.0769 - 20 0.0769 - 26 0.0769 - 31 0.0769 - 42 0.0769 - 43 0.0769 - - 28 3 1 0 - 43 1 - - 32 2 1 0 - 42 1 - - 40 16 3 0 - 4 0.0625 - 43 0.875 - 46 0.0625 - - 41 895 30 11 - 0 0.115 - 2 0.067 - 3 0.00447 - 4 0.0983 - 5 0.00335 - 7 0.124 - 8 0.038 - 9 0.00112 - 10 0.00447 - 12 0.0503 - 13 0.0313 - 14 0.0391 - 15 0.0402 - 16 0.00223 - 19 0.0391 - 20 0.0067 - 21 0.0291 - 23 0.00112 - 26 0.019 - 28 0.0145 - 29 0.0223 - 30 0.0145 - 31 0.00447 - 32 0.0134 - 33 0.019 - 34 0.00223 - 35 0.00559 - 37 0.00335 - 45 0.184 - 46 0.00223 - - 2 5 2 0 - 7 0.8 - 21 0.2 - - 15 3 2 0 - 13 0.667 - 14 0.333 - - 48 5 4 0 - 7 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 33 14 0 - 0 0.0606 - 3 0.0303 - 4 0.121 - 7 0.273 - 8 0.182 - 13 0.0303 - 15 0.0303 - 19 0.0303 - 20 0.0606 - 21 0.0303 - 26 0.0303 - 28 0.0303 - 29 0.0606 - 35 0.0303 - - 52 7 6 0 - 2 0.143 - 4 0.143 - 7 0.143 - 15 0.286 - 26 0.143 - 30 0.143 - - 55 24 12 0 - 0 0.125 - 4 0.0417 - 7 0.417 - 13 0.0417 - 14 0.0417 - 30 0.0417 - 31 0.0417 - 32 0.0833 - 34 0.0417 - 35 0.0417 - 45 0.0417 - 46 0.0417 - - 57 83 23 0 - 0 0.0723 - 2 0.0723 - 3 0.012 - 4 0.157 - 7 0.157 - 8 0.0241 - 12 0.0241 - 13 0.0843 - 14 0.012 - 15 0.0361 - 19 0.012 - 20 0.012 - 21 0.0361 - 23 0.012 - 26 0.0602 - 28 0.0241 - 29 0.0723 - 30 0.012 - 32 0.012 - 33 0.0602 - 35 0.012 - 45 0.012 - 46 0.012 - - 62 585 28 0 - 0 0.126 - 2 0.0786 - 3 0.00342 - 4 0.101 - 5 0.00513 - 7 0.0906 - 8 0.0376 - 9 0.00171 - 10 0.00513 - 12 0.0632 - 13 0.0188 - 14 0.0393 - 15 0.041 - 16 0.00342 - 19 0.0479 - 20 0.00342 - 21 0.0291 - 26 0.0103 - 28 0.012 - 29 0.0171 - 30 0.0154 - 31 0.00513 - 32 0.012 - 33 0.0154 - 34 0.00171 - 35 0.00342 - 37 0.00513 - 45 0.207 - - 64 50 15 0 - 0 0.18 - 2 0.06 - 4 0.06 - 7 0.22 - 12 0.06 - 13 0.02 - 14 0.04 - 15 0.04 - 21 0.08 - 26 0.06 - 28 0.04 - 29 0.02 - 32 0.02 - 33 0.04 - 45 0.06 - - 66 71 15 0 - 0 0.0986 - 2 0.0423 - 7 0.0986 - 8 0.0141 - 10 0.0141 - 12 0.0423 - 13 0.0141 - 14 0.0704 - 15 0.0141 - 19 0.0141 - 28 0.0141 - 29 0.0141 - 32 0.0141 - 33 0.0141 - 45 0.521 - - 69 24 11 0 - 2 0.0417 - 4 0.292 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0417 - 15 0.125 - 19 0.167 - 20 0.0417 - 26 0.0417 - 45 0.0417 - - 42 358 24 11 - 0 0.182 - 2 0.0782 - 3 0.00559 - 4 0.0587 - 7 0.168 - 8 0.0196 - 12 0.0587 - 13 0.0279 - 14 0.0168 - 15 0.0251 - 19 0.0363 - 20 0.00838 - 21 0.0279 - 26 0.0503 - 28 0.014 - 29 0.0531 - 30 0.0168 - 31 0.0168 - 32 0.0307 - 33 0.0419 - 34 0.0363 - 35 0.00838 - 37 0.00559 - 45 0.014 - - 21 1 1 0 - 28 1 - - 32 2 1 0 - 4 1 - - 46 2 2 0 - 31 0.5 - 33 0.5 - - 48 14 10 0 - 0 0.143 - 2 0.0714 - 3 0.0714 - 4 0.0714 - 8 0.0714 - 13 0.143 - 14 0.0714 - 26 0.0714 - 30 0.0714 - 34 0.214 - - 49 11 6 0 - 0 0.0909 - 4 0.0909 - 7 0.455 - 12 0.0909 - 26 0.182 - 30 0.0909 - - 55 125 19 0 - 0 0.232 - 2 0.048 - 4 0.032 - 7 0.152 - 12 0.096 - 14 0.008 - 15 0.032 - 19 0.024 - 20 0.008 - 21 0.048 - 26 0.064 - 28 0.008 - 29 0.064 - 30 0.016 - 31 0.024 - 32 0.04 - 33 0.048 - 34 0.04 - 35 0.016 - - 57 68 22 0 - 0 0.206 - 2 0.0441 - 3 0.0147 - 4 0.0735 - 7 0.162 - 8 0.0294 - 12 0.0441 - 13 0.0441 - 14 0.0147 - 15 0.0294 - 19 0.0147 - 20 0.0147 - 21 0.0294 - 26 0.0294 - 28 0.0147 - 29 0.0735 - 30 0.0147 - 31 0.0294 - 32 0.0294 - 34 0.0441 - 37 0.0147 - 45 0.0294 - - 62 59 19 0 - 0 0.0678 - 2 0.169 - 4 0.0339 - 7 0.203 - 8 0.0508 - 12 0.0169 - 13 0.0678 - 14 0.0169 - 15 0.0339 - 19 0.0847 - 21 0.0169 - 26 0.0508 - 28 0.0169 - 29 0.0169 - 30 0.0169 - 32 0.0169 - 33 0.0678 - 34 0.0169 - 45 0.0339 - - 64 40 12 0 - 0 0.225 - 2 0.1 - 4 0.1 - 7 0.125 - 12 0.075 - 19 0.075 - 26 0.05 - 29 0.075 - 32 0.05 - 33 0.075 - 34 0.025 - 35 0.025 - - 67 1 1 0 - 45 1 - - 69 27 14 0 - 0 0.148 - 2 0.111 - 4 0.0741 - 7 0.259 - 8 0.037 - 12 0.037 - 15 0.037 - 20 0.037 - 21 0.037 - 28 0.037 - 29 0.0741 - 32 0.037 - 33 0.037 - 37 0.037 - - 43 1007 28 21 - 0 0.0487 - 1 0.00199 - 2 0.0616 - 3 0.00993 - 4 0.0248 - 7 0.132 - 8 0.0139 - 12 0.0199 - 13 0.0457 - 14 0.0159 - 15 0.0328 - 19 0.00497 - 21 0.0119 - 26 0.0218 - 28 0.00298 - 29 0.0278 - 30 0.000993 - 31 0.00497 - 32 0.00894 - 33 0.0189 - 34 0.00497 - 35 0.00199 - 39 0.000993 - 40 0.167 - 41 0.206 - 42 0.0894 - 45 0.000993 - 47 0.0189 - - 0 2 2 0 - 13 0.5 - 31 0.5 - - 7 2 2 0 - 7 0.5 - 19 0.5 - - 8 9 3 0 - 8 0.111 - 13 0.556 - 14 0.333 - - 13 15 6 0 - 7 0.267 - 13 0.333 - 14 0.2 - 15 0.0667 - 26 0.0667 - 42 0.0667 - - 14 3 3 0 - 8 0.333 - 21 0.333 - 29 0.333 - - 15 19 6 0 - 12 0.105 - 13 0.211 - 14 0.105 - 15 0.474 - 26 0.0526 - 42 0.0526 - - 20 1 1 0 - 8 1 - - 21 1 1 0 - 8 1 - - 28 3 3 0 - 2 0.333 - 4 0.333 - 13 0.333 - - 40 14 7 0 - 2 0.0714 - 7 0.0714 - 13 0.143 - 14 0.0714 - 15 0.429 - 19 0.0714 - 47 0.143 - - 46 20 8 0 - 0 0.05 - 2 0.15 - 8 0.05 - 12 0.1 - 15 0.05 - 40 0.3 - 41 0.2 - 42 0.1 - - 48 29 7 0 - 2 0.0345 - 8 0.138 - 13 0.552 - 14 0.069 - 15 0.0345 - 40 0.069 - 41 0.103 - - 49 6 5 0 - 1 0.167 - 2 0.167 - 28 0.333 - 40 0.167 - 47 0.167 - - 51 4 3 0 - 40 0.25 - 41 0.5 - 47 0.25 - - 52 3 1 0 - 40 1 - - 54 2 2 0 - 8 0.5 - 15 0.5 - - 55 691 24 0 - 0 0.0507 - 2 0.0651 - 3 0.00289 - 4 0.0304 - 7 0.161 - 8 0.00579 - 12 0.013 - 13 0.013 - 14 0.00434 - 15 0.0188 - 21 0.0116 - 26 0.0232 - 28 0.00145 - 29 0.0347 - 30 0.00145 - 31 0.00289 - 32 0.0101 - 33 0.0232 - 34 0.00579 - 35 0.00145 - 40 0.158 - 41 0.236 - 42 0.113 - 47 0.013 - - 57 52 15 0 - 0 0.173 - 2 0.0577 - 4 0.0385 - 7 0.154 - 12 0.115 - 13 0.0192 - 19 0.0385 - 26 0.0192 - 29 0.0192 - 32 0.0192 - 34 0.0192 - 39 0.0192 - 40 0.135 - 41 0.154 - 47 0.0192 - - 62 68 17 0 - 0 0.0147 - 1 0.0147 - 2 0.0441 - 4 0.0147 - 7 0.0441 - 13 0.0147 - 19 0.0147 - 21 0.0147 - 29 0.0147 - 31 0.0147 - 33 0.0147 - 35 0.0147 - 40 0.382 - 41 0.235 - 42 0.0588 - 45 0.0147 - 47 0.0735 - - 64 23 8 0 - 0 0.13 - 2 0.087 - 7 0.087 - 12 0.0435 - 26 0.0435 - 32 0.0435 - 40 0.261 - 41 0.304 - - 69 30 11 0 - 2 0.0667 - 3 0.267 - 7 0.1 - 21 0.0667 - 26 0.0667 - 29 0.0333 - 31 0.0333 - 33 0.0667 - 40 0.133 - 41 0.0667 - 42 0.1 - - 45 37 11 0 - 0 0.135 - 2 0.0811 - 4 0.135 - 7 0.108 - 8 0.027 - 12 0.135 - 14 0.027 - 19 0.216 - 21 0.0541 - 26 0.027 - 37 0.0541 - - 46 23 3 0 - 29 0.0435 - 42 0.087 - 43 0.87 - - 47 2420 38 14 - 0 0.0946 - 1 0.000826 - 2 0.0632 - 3 0.0062 - 4 0.0583 - 5 0.00124 - 7 0.124 - 8 0.0227 - 9 0.000413 - 10 0.00165 - 12 0.0384 - 13 0.0351 - 14 0.024 - 15 0.0322 - 16 0.000826 - 19 0.026 - 20 0.00372 - 21 0.0198 - 23 0.000413 - 26 0.0236 - 28 0.00909 - 29 0.0281 - 30 0.00785 - 31 0.0062 - 32 0.0136 - 33 0.0215 - 34 0.00826 - 35 0.00413 - 37 0.00289 - 39 0.000826 - 40 0.104 - 41 0.108 - 42 0.0409 - 43 0.00165 - 44 0.000413 - 45 0.057 - 46 0.000413 - 47 0.00826 - - 41 842 30 0 - 0 0.122 - 2 0.0713 - 3 0.00356 - 4 0.102 - 5 0.00356 - 7 0.121 - 8 0.0392 - 9 0.00119 - 10 0.00475 - 12 0.0534 - 13 0.0321 - 14 0.0416 - 15 0.0428 - 16 0.00238 - 19 0.0416 - 20 0.00713 - 21 0.0297 - 23 0.00119 - 26 0.019 - 28 0.0154 - 29 0.0238 - 30 0.0143 - 31 0.00475 - 32 0.0143 - 33 0.0202 - 34 0.00238 - 35 0.00594 - 37 0.00356 - 45 0.154 - 46 0.00119 - - 42 357 24 0 - 0 0.182 - 2 0.0784 - 3 0.0056 - 4 0.0588 - 7 0.168 - 8 0.0196 - 12 0.0588 - 13 0.028 - 14 0.0168 - 15 0.0252 - 19 0.0364 - 20 0.0084 - 21 0.028 - 26 0.0504 - 28 0.014 - 29 0.0532 - 30 0.0168 - 31 0.0168 - 32 0.0308 - 33 0.042 - 34 0.0364 - 35 0.0084 - 37 0.0056 - 45 0.0112 - - 43 1006 28 0 - 0 0.0487 - 1 0.00199 - 2 0.0616 - 3 0.00994 - 4 0.0249 - 7 0.131 - 8 0.0139 - 12 0.0199 - 13 0.0457 - 14 0.0159 - 15 0.0328 - 19 0.00497 - 21 0.0119 - 26 0.0219 - 28 0.00298 - 29 0.0278 - 30 0.000994 - 31 0.00497 - 32 0.00895 - 33 0.0189 - 34 0.00497 - 35 0.00199 - 39 0.000994 - 40 0.167 - 41 0.206 - 42 0.0895 - 45 0.000994 - 47 0.0189 - - 45 36 11 0 - 0 0.139 - 2 0.0833 - 4 0.139 - 7 0.111 - 8 0.0278 - 12 0.139 - 14 0.0278 - 19 0.222 - 21 0.0278 - 26 0.0278 - 37 0.0556 - - 48 7 4 0 - 13 0.143 - 32 0.143 - 40 0.571 - 41 0.143 - - 49 9 2 0 - 40 0.889 - 41 0.111 - - 51 2 2 0 - 41 0.5 - 43 0.5 - - 55 28 4 0 - 13 0.0357 - 40 0.857 - 41 0.0714 - 43 0.0357 - - 57 30 7 0 - 0 0.0333 - 4 0.0333 - 7 0.0333 - 40 0.733 - 41 0.1 - 42 0.0333 - 44 0.0333 - - 62 71 12 0 - 0 0.0423 - 4 0.0282 - 12 0.0282 - 28 0.0141 - 33 0.0141 - 39 0.0141 - 40 0.211 - 41 0.507 - 42 0.0704 - 43 0.0282 - 45 0.0282 - 47 0.0141 - - 64 6 3 0 - 40 0.667 - 41 0.167 - 42 0.167 - - 66 15 6 0 - 0 0.2 - 19 0.133 - 40 0.133 - 41 0.4 - 42 0.0667 - 45 0.0667 - - 68 2 1 0 - 40 1 - - 69 6 3 0 - 40 0.333 - 41 0.5 - 42 0.167 - - 48 57 7 4 - 13 0.0175 - 32 0.0175 - 40 0.0702 - 41 0.105 - 42 0.246 - 43 0.509 - 46 0.0351 - - 42 11 2 0 - 32 0.0909 - 42 0.909 - - 44 24 1 0 - 43 1 - - 45 2 1 0 - 46 1 - - 49 7 4 0 - 13 0.143 - 40 0.143 - 41 0.286 - 43 0.429 - - 49 78 10 5 - 0 0.0128 - 4 0.0256 - 7 0.141 - 8 0.0256 - 9 0.0128 - 21 0.0256 - 40 0.103 - 41 0.436 - 42 0.141 - 43 0.0769 - - 2 17 9 0 - 0 0.0588 - 4 0.118 - 7 0.176 - 8 0.118 - 9 0.0588 - 21 0.118 - 40 0.176 - 41 0.118 - 42 0.0588 - - 41 39 4 0 - 7 0.128 - 40 0.0256 - 41 0.744 - 42 0.103 - - 42 8 3 0 - 7 0.125 - 40 0.125 - 42 0.75 - - 44 6 1 0 - 43 1 - - 49 5 2 0 - 40 0.6 - 41 0.4 - - 51 9 4 0 - 40 0.111 - 41 0.222 - 42 0.111 - 43 0.556 - - 52 11 3 0 - 40 0.0909 - 41 0.636 - 43 0.273 - - 54 3 2 0 - 42 0.333 - 43 0.667 - - 55 884 7 8 - 7 0.00226 - 13 0.00113 - 40 0.0305 - 41 0.0294 - 42 0.141 - 43 0.783 - 46 0.0124 - - 2 18 4 0 - 40 0.167 - 41 0.167 - 42 0.444 - 43 0.222 - - 21 6 4 0 - 40 0.333 - 41 0.333 - 42 0.167 - 43 0.167 - - 41 106 6 0 - 7 0.00943 - 13 0.00943 - 40 0.0566 - 41 0.0472 - 42 0.0377 - 43 0.84 - - 42 115 4 0 - 40 0.0696 - 41 0.0261 - 42 0.878 - 43 0.0261 - - 44 585 2 0 - 41 0.00342 - 43 0.997 - - 45 13 2 0 - 41 0.154 - 46 0.846 - - 47 3 3 0 - 7 0.333 - 40 0.333 - 43 0.333 - - 49 28 4 0 - 40 0.25 - 41 0.25 - 42 0.357 - 43 0.143 - - 57 236 10 8 - 0 0.00424 - 4 0.00424 - 7 0.00424 - 19 0.00424 - 30 0.00847 - 40 0.0932 - 41 0.364 - 42 0.292 - 43 0.22 - 44 0.00424 - - 2 7 4 0 - 19 0.143 - 30 0.286 - 40 0.429 - 42 0.143 - - 21 2 1 0 - 40 1 - - 41 82 4 0 - 40 0.0488 - 41 0.878 - 42 0.0366 - 43 0.0366 - - 42 68 3 0 - 7 0.0147 - 40 0.0588 - 42 0.926 - - 43 1 1 0 - 0 1 - - 44 49 1 0 - 43 1 - - 47 9 4 0 - 4 0.111 - 40 0.222 - 41 0.556 - 44 0.111 - - 49 11 3 0 - 40 0.455 - 41 0.455 - 42 0.0909 - - 58 4 3 0 - 8 0.25 - 41 0.25 - 43 0.5 - - 62 789 13 7 - 0 0.0038 - 4 0.00253 - 12 0.00253 - 28 0.00127 - 33 0.00127 - 39 0.00127 - 40 0.0203 - 41 0.787 - 42 0.0811 - 43 0.0887 - 45 0.00253 - 46 0.00634 - 47 0.00127 - - 2 13 4 0 - 40 0.0769 - 41 0.0769 - 42 0.615 - 43 0.231 - - 41 507 6 0 - 0 0.00197 - 39 0.00197 - 40 0.00789 - 41 0.98 - 42 0.00592 - 43 0.00197 - - 42 62 5 0 - 4 0.0161 - 40 0.129 - 42 0.806 - 43 0.0323 - 47 0.0161 - - 44 64 2 0 - 40 0.0156 - 43 0.984 - - 45 6 2 0 - 41 0.167 - 46 0.833 - - 46 66 3 0 - 4 0.0152 - 41 0.97 - 45 0.0152 - - 47 69 9 0 - 0 0.029 - 12 0.029 - 28 0.0145 - 33 0.0145 - 40 0.0145 - 41 0.841 - 42 0.029 - 43 0.0145 - 45 0.0145 - - 64 119 4 3 - 40 0.0336 - 41 0.429 - 42 0.345 - 43 0.193 - - 41 51 3 0 - 40 0.0392 - 41 0.941 - 42 0.0196 - - 42 38 2 0 - 40 0.0263 - 42 0.974 - - 44 23 1 0 - 43 1 - - 66 86 6 1 - 0 0.0349 - 19 0.0233 - 40 0.0233 - 41 0.895 - 42 0.0116 - 45 0.0116 - - 47 12 4 0 - 0 0.0833 - 19 0.167 - 40 0.167 - 41 0.583 - - 67 7 4 0 - 40 0.286 - 42 0.143 - 43 0.286 - 46 0.286 - - 68 4 2 0 - 40 0.5 - 42 0.5 - - 69 87 4 3 - 40 0.023 - 41 0.31 - 42 0.322 - 43 0.345 - - 42 15 1 0 - 42 1 - - 44 25 1 0 - 43 1 - - 55 25 2 0 - 41 0.96 - 42 0.04 - -59 5284 34 6 - 0 0.00151 - 1 0.00114 - 2 0.0151 - 3 0.0178 - 4 0.211 - 7 0.239 - 8 0.0503 - 9 0.00492 - 10 0.00265 - 12 0.000379 - 13 0.0492 - 14 0.0462 - 15 0.0235 - 17 0.00114 - 19 0.000757 - 20 0.0526 - 21 0.0488 - 22 0.00454 - 24 0.00114 - 26 0.0462 - 30 0.0163 - 31 0.00189 - 35 0.00568 - 37 0.00492 - 38 0.000757 - 39 0.00871 - 40 0.0765 - 41 0.05 - 42 0.00568 - 43 0.000757 - 44 0.000379 - 45 0.00454 - 46 0.0053 - 47 0.000379 - - 7 65 7 0 - 2 0.0615 - 8 0.0154 - 21 0.0154 - 40 0.523 - 41 0.308 - 42 0.0615 - 43 0.0154 - - 8 6 3 0 - 3 0.167 - 7 0.667 - 14 0.167 - - 21 84 9 0 - 0 0.0119 - 2 0.143 - 7 0.0833 - 8 0.0119 - 26 0.0119 - 40 0.464 - 41 0.214 - 42 0.0476 - 47 0.0119 - - 22 1 1 0 - 24 1 - - 24 2481 33 0 - 0 0.00121 - 1 0.00121 - 2 0.00967 - 3 0.0185 - 4 0.225 - 7 0.25 - 8 0.0528 - 9 0.00524 - 10 0.00282 - 12 0.000403 - 13 0.052 - 14 0.0484 - 15 0.025 - 17 0.00121 - 19 0.000806 - 20 0.056 - 21 0.0512 - 22 0.00484 - 24 0.000806 - 26 0.0488 - 30 0.0173 - 31 0.00202 - 35 0.00605 - 37 0.00524 - 38 0.000806 - 39 0.00927 - 40 0.0516 - 41 0.0379 - 42 0.00282 - 43 0.000403 - 44 0.000403 - 45 0.00484 - 46 0.00564 - - 47 2642 34 5 - 0 0.00151 - 1 0.00114 - 2 0.0151 - 3 0.0178 - 4 0.211 - 7 0.239 - 8 0.0503 - 9 0.00492 - 10 0.00265 - 12 0.000379 - 13 0.0492 - 14 0.0462 - 15 0.0235 - 17 0.00114 - 19 0.000757 - 20 0.0526 - 21 0.0488 - 22 0.00454 - 24 0.00114 - 26 0.0462 - 30 0.0163 - 31 0.00189 - 35 0.00568 - 37 0.00492 - 38 0.000757 - 39 0.00871 - 40 0.0765 - 41 0.05 - 42 0.00568 - 43 0.000757 - 44 0.000379 - 45 0.00454 - 46 0.0053 - 47 0.000379 - - 7 65 7 0 - 2 0.0615 - 8 0.0154 - 21 0.0154 - 40 0.523 - 41 0.308 - 42 0.0615 - 43 0.0154 - - 8 6 3 0 - 3 0.167 - 7 0.667 - 14 0.167 - - 21 84 9 0 - 0 0.0119 - 2 0.143 - 7 0.0833 - 8 0.0119 - 26 0.0119 - 40 0.464 - 41 0.214 - 42 0.0476 - 47 0.0119 - - 22 1 1 0 - 24 1 - - 24 2481 33 0 - 0 0.00121 - 1 0.00121 - 2 0.00967 - 3 0.0185 - 4 0.225 - 7 0.25 - 8 0.0528 - 9 0.00524 - 10 0.00282 - 12 0.000403 - 13 0.052 - 14 0.0484 - 15 0.025 - 17 0.00121 - 19 0.000806 - 20 0.056 - 21 0.0512 - 22 0.00484 - 24 0.000806 - 26 0.0488 - 30 0.0173 - 31 0.00202 - 35 0.00605 - 37 0.00524 - 38 0.000806 - 39 0.00927 - 40 0.0516 - 41 0.0379 - 42 0.00282 - 43 0.000403 - 44 0.000403 - 45 0.00484 - 46 0.00564 - -60 29066 33 16 - 0 0.00378 - 2 0.00932 - 3 0.35 - 4 0.0253 - 6 6.88e-05 - 7 0.139 - 8 0.0319 - 9 0.00368 - 12 0.00117 - 13 0.114 - 14 0.0974 - 15 0.0103 - 16 0.000826 - 19 0.000482 - 20 0.00131 - 21 0.0032 - 22 0.000344 - 25 6.88e-05 - 26 0.0221 - 29 0.00131 - 30 0.00124 - 31 0.00365 - 34 0.000344 - 35 0.000482 - 37 6.88e-05 - 40 0.072 - 41 0.0853 - 42 0.00523 - 43 0.012 - 44 0.0031 - 45 0.000344 - 46 0.000172 - 47 0.000482 - - 2 37 4 0 - 3 0.108 - 9 0.73 - 13 0.027 - 21 0.135 - - 3 13760 32 11 - 0 0.00363 - 2 0.00996 - 3 0.356 - 4 0.0206 - 6 7.27e-05 - 7 0.136 - 8 0.0312 - 9 0.00203 - 12 0.00124 - 13 0.115 - 14 0.0988 - 15 0.0102 - 16 0.000872 - 19 0.000436 - 20 7.27e-05 - 21 0.0024 - 22 0.000145 - 25 7.27e-05 - 26 0.0225 - 29 0.00109 - 30 0.00124 - 31 0.00356 - 34 0.000363 - 37 7.27e-05 - 40 0.0715 - 41 0.0883 - 42 0.00516 - 43 0.0126 - 44 0.00327 - 45 0.000363 - 46 7.27e-05 - 47 0.000509 - - 2 62 12 0 - 3 0.0161 - 4 0.0161 - 7 0.113 - 8 0.0323 - 13 0.0323 - 14 0.548 - 21 0.0161 - 31 0.0161 - 34 0.0161 - 40 0.0806 - 41 0.0968 - 45 0.0161 - - 3 6824 31 0 - 0 0.00659 - 2 0.0182 - 3 0.000293 - 4 0.0262 - 6 0.000147 - 7 0.257 - 8 0.0478 - 9 0.00249 - 12 0.00205 - 13 0.119 - 14 0.0928 - 15 0.0147 - 16 0.000879 - 19 0.000879 - 20 0.000147 - 21 0.0041 - 22 0.000147 - 25 0.000147 - 26 0.0441 - 29 0.00147 - 30 0.0022 - 31 0.00659 - 34 0.000586 - 40 0.137 - 41 0.174 - 42 0.00996 - 43 0.0246 - 44 0.00601 - 45 0.00044 - 46 0.000147 - 47 0.00103 - - 4 70 7 0 - 7 0.0286 - 8 0.129 - 13 0.229 - 14 0.486 - 15 0.0857 - 16 0.0286 - 41 0.0143 - - 7 732 17 0 - 0 0.00273 - 2 0.00137 - 3 0.00137 - 4 0.0041 - 7 0.0232 - 8 0.056 - 9 0.00137 - 12 0.00137 - 13 0.493 - 14 0.373 - 15 0.0246 - 29 0.00273 - 31 0.00137 - 37 0.00137 - 40 0.0082 - 41 0.00273 - 44 0.00137 - - 8 27 4 0 - 7 0.037 - 13 0.37 - 14 0.556 - 15 0.037 - - 10 120 8 0 - 7 0.0333 - 8 0.175 - 9 0.0167 - 13 0.233 - 14 0.483 - 15 0.0333 - 30 0.0167 - 40 0.00833 - - 21 513 14 0 - 0 0.00195 - 2 0.00195 - 3 0.00195 - 7 0.0253 - 8 0.0507 - 9 0.00585 - 13 0.567 - 14 0.312 - 15 0.0156 - 16 0.0039 - 29 0.0039 - 31 0.00195 - 40 0.00585 - 41 0.00195 - - 26 226 16 0 - 0 0.00885 - 2 0.00442 - 3 0.00442 - 4 0.00885 - 7 0.0221 - 8 0.0133 - 9 0.00442 - 13 0.23 - 14 0.664 - 15 0.00885 - 16 0.00885 - 21 0.00442 - 22 0.00442 - 40 0.00442 - 41 0.00442 - 42 0.00442 - - 38 5 4 0 - 9 0.2 - 40 0.4 - 41 0.2 - 44 0.2 - - 39 5169 20 0 - 2 0.00193 - 3 0.946 - 4 0.0192 - 7 0.0135 - 8 0.000193 - 9 0.00058 - 12 0.000387 - 13 0.00271 - 14 0.000387 - 15 0.000193 - 21 0.00058 - 26 0.00174 - 29 0.000193 - 31 0.000193 - 40 0.00658 - 41 0.00368 - 42 0.000387 - 43 0.00116 - 44 0.000193 - 45 0.000193 - - 41 1 1 0 - 44 1 - - 4 42 8 0 - 0 0.0238 - 3 0.0238 - 4 0.0476 - 7 0.0952 - 13 0.738 - 15 0.0238 - 35 0.0238 - 42 0.0238 - - 7 10 6 0 - 3 0.4 - 4 0.2 - 8 0.1 - 13 0.1 - 20 0.1 - 40 0.1 - - 8 58 11 2 - 4 0.069 - 7 0.276 - 8 0.0862 - 13 0.103 - 14 0.328 - 15 0.0345 - 20 0.0345 - 29 0.0172 - 31 0.0172 - 35 0.0172 - 40 0.0172 - - 4 23 5 0 - 7 0.348 - 8 0.0435 - 13 0.0435 - 14 0.522 - 29 0.0435 - - 7 12 8 0 - 4 0.167 - 7 0.0833 - 8 0.167 - 13 0.167 - 14 0.167 - 15 0.0833 - 20 0.0833 - 31 0.0833 - - 9 98 14 3 - 0 0.0102 - 2 0.0102 - 4 0.0204 - 7 0.194 - 8 0.0714 - 13 0.112 - 14 0.102 - 15 0.0204 - 19 0.0102 - 26 0.0204 - 29 0.0102 - 40 0.337 - 41 0.0612 - 42 0.0204 - - 2 78 13 0 - 0 0.0128 - 2 0.0128 - 4 0.0256 - 7 0.244 - 8 0.0513 - 13 0.0256 - 14 0.0897 - 19 0.0128 - 26 0.0256 - 29 0.0128 - 40 0.41 - 41 0.0641 - 42 0.0128 - - 3 13 7 0 - 8 0.154 - 13 0.308 - 14 0.154 - 15 0.154 - 40 0.0769 - 41 0.0769 - 42 0.0769 - - 13 4 2 0 - 13 0.75 - 14 0.25 - - 13 248 19 6 - 0 0.00403 - 2 0.0605 - 3 0.153 - 4 0.0282 - 7 0.343 - 8 0.0242 - 9 0.0282 - 13 0.0605 - 14 0.0605 - 20 0.0161 - 21 0.00806 - 26 0.0605 - 31 0.00403 - 35 0.00806 - 40 0.0927 - 41 0.0323 - 42 0.00806 - 43 0.00403 - 46 0.00403 - - 3 165 15 0 - 2 0.0667 - 3 0.218 - 4 0.0242 - 7 0.255 - 8 0.0121 - 9 0.0242 - 13 0.0848 - 14 0.0303 - 21 0.00606 - 26 0.0788 - 31 0.00606 - 40 0.127 - 41 0.0485 - 42 0.0121 - 43 0.00606 - - 4 33 8 0 - 2 0.0606 - 3 0.0606 - 7 0.394 - 8 0.121 - 9 0.0303 - 14 0.273 - 21 0.0303 - 46 0.0303 - - 7 24 8 0 - 0 0.0417 - 4 0.0833 - 7 0.5 - 13 0.0417 - 14 0.0417 - 20 0.125 - 35 0.0833 - 40 0.0833 - - 8 4 2 0 - 7 0.75 - 9 0.25 - - 21 12 3 0 - 4 0.0833 - 7 0.833 - 20 0.0833 - - 47 5 4 0 - 2 0.2 - 7 0.2 - 9 0.2 - 26 0.4 - - 14 83 17 4 - 0 0.012 - 3 0.012 - 4 0.205 - 7 0.229 - 8 0.0843 - 9 0.0723 - 13 0.0361 - 14 0.0602 - 15 0.0602 - 20 0.0482 - 21 0.0602 - 22 0.0361 - 29 0.012 - 31 0.012 - 35 0.0361 - 41 0.012 - 46 0.012 - - 3 59 14 0 - 3 0.0169 - 4 0.288 - 7 0.0339 - 8 0.119 - 9 0.0847 - 13 0.0508 - 14 0.0847 - 15 0.0678 - 20 0.0508 - 21 0.0847 - 22 0.0339 - 29 0.0169 - 31 0.0169 - 35 0.0508 - - 7 16 5 0 - 0 0.0625 - 7 0.75 - 9 0.0625 - 15 0.0625 - 46 0.0625 - - 8 3 2 0 - 7 0.667 - 22 0.333 - - 21 4 2 0 - 7 0.75 - 41 0.25 - - 17 36 2 0 - 4 0.833 - 20 0.167 - - 21 56 10 3 - 0 0.0179 - 4 0.304 - 7 0.0893 - 8 0.143 - 14 0.125 - 20 0.0179 - 21 0.0536 - 31 0.0179 - 40 0.0714 - 41 0.161 - - 2 32 8 0 - 0 0.0312 - 4 0.0625 - 7 0.125 - 8 0.125 - 14 0.219 - 21 0.0312 - 40 0.125 - 41 0.281 - - 7 12 5 0 - 4 0.417 - 7 0.0833 - 8 0.333 - 20 0.0833 - 31 0.0833 - - 21 11 2 0 - 4 0.818 - 21 0.182 - - 22 6 6 0 - 8 0.167 - 9 0.167 - 13 0.167 - 29 0.167 - 30 0.167 - 40 0.167 - - 23 1 1 0 - 21 1 - - 26 12 1 0 - 3 1 - - 28 2 1 0 - 4 1 - - 39 5169 1 0 - 3 1 - - 47 9444 33 13 - 0 0.00582 - 2 0.0125 - 3 0.00498 - 4 0.0389 - 6 0.000106 - 7 0.213 - 8 0.049 - 9 0.00402 - 12 0.0018 - 13 0.175 - 14 0.15 - 15 0.0159 - 16 0.00127 - 19 0.000741 - 20 0.00201 - 21 0.00466 - 22 0.000529 - 25 0.000106 - 26 0.0335 - 29 0.00201 - 30 0.00191 - 31 0.00561 - 34 0.000529 - 35 0.000741 - 37 0.000106 - 40 0.111 - 41 0.131 - 42 0.00805 - 43 0.0185 - 44 0.00476 - 45 0.000529 - 46 0.000212 - 47 0.000741 - - 3 8844 32 0 - 0 0.00565 - 2 0.0131 - 3 0.000905 - 4 0.0321 - 6 0.000113 - 7 0.212 - 8 0.0485 - 9 0.00317 - 12 0.00192 - 13 0.179 - 14 0.154 - 15 0.0158 - 16 0.00136 - 19 0.000678 - 20 0.000113 - 21 0.00373 - 22 0.000226 - 25 0.000113 - 26 0.0351 - 29 0.0017 - 30 0.00192 - 31 0.00554 - 34 0.000565 - 37 0.000113 - 40 0.111 - 41 0.137 - 42 0.00803 - 43 0.0197 - 44 0.00509 - 45 0.000565 - 46 0.000113 - 47 0.000791 - - 4 41 7 0 - 0 0.0244 - 4 0.0488 - 7 0.0976 - 13 0.756 - 15 0.0244 - 35 0.0244 - 42 0.0244 - - 7 3 3 0 - 4 0.333 - 20 0.333 - 40 0.333 - - 8 58 11 0 - 4 0.069 - 7 0.276 - 8 0.0862 - 13 0.103 - 14 0.328 - 15 0.0345 - 20 0.0345 - 29 0.0172 - 31 0.0172 - 35 0.0172 - 40 0.0172 - - 9 98 14 0 - 0 0.0102 - 2 0.0102 - 4 0.0204 - 7 0.194 - 8 0.0714 - 13 0.112 - 14 0.102 - 15 0.0204 - 19 0.0102 - 26 0.0204 - 29 0.0102 - 40 0.337 - 41 0.0612 - 42 0.0204 - - 13 211 19 0 - 0 0.00474 - 2 0.00474 - 3 0.175 - 4 0.0332 - 7 0.37 - 8 0.0284 - 9 0.0142 - 13 0.0711 - 14 0.0711 - 20 0.019 - 21 0.00948 - 26 0.019 - 31 0.00474 - 35 0.00948 - 40 0.109 - 41 0.0379 - 42 0.00948 - 43 0.00474 - 46 0.00474 - - 14 82 16 0 - 0 0.0122 - 3 0.0122 - 4 0.207 - 7 0.232 - 8 0.0854 - 9 0.0732 - 13 0.0366 - 14 0.061 - 15 0.061 - 20 0.0488 - 21 0.061 - 22 0.0366 - 29 0.0122 - 31 0.0122 - 35 0.0366 - 41 0.0122 - - 17 36 2 0 - 4 0.833 - 20 0.167 - - 21 56 10 0 - 0 0.0179 - 4 0.304 - 7 0.0893 - 8 0.143 - 14 0.125 - 20 0.0179 - 21 0.0536 - 31 0.0179 - 40 0.0714 - 41 0.161 - - 22 6 6 0 - 8 0.167 - 9 0.167 - 13 0.167 - 29 0.167 - 30 0.167 - 40 0.167 - - 23 1 1 0 - 21 1 - - 26 1 1 0 - 3 1 - - 28 2 1 0 - 4 1 - -61 113 10 4 - 0 0.0177 - 2 0.0265 - 7 0.133 - 21 0.00885 - 29 0.0177 - 30 0.00885 - 33 0.0177 - 40 0.372 - 41 0.327 - 42 0.0708 - - 2 1 1 0 - 21 1 - - 47 47 7 0 - 0 0.0213 - 2 0.0213 - 29 0.0213 - 33 0.0213 - 40 0.447 - 41 0.383 - 42 0.0851 - - 49 14 4 0 - 7 0.786 - 30 0.0714 - 41 0.0714 - 42 0.0714 - - 57 19 3 0 - 40 0.579 - 41 0.316 - 42 0.105 - -62 239664 43 23 - 0 0.00769 - 1 8.35e-06 - 2 0.0246 - 3 0.000417 - 4 0.00451 - 5 0.000255 - 6 8.35e-06 - 7 0.0107 - 8 0.00105 - 9 7.09e-05 - 10 7.09e-05 - 11 8.35e-06 - 12 0.00318 - 13 0.00107 - 14 0.00113 - 15 0.00279 - 16 2.5e-05 - 17 2.09e-05 - 19 0.00431 - 20 0.000559 - 21 0.00236 - 22 9.6e-05 - 23 2.09e-05 - 26 0.00115 - 27 1.25e-05 - 28 0.000221 - 29 0.0016 - 30 0.000421 - 31 0.000184 - 32 0.00053 - 33 0.0016 - 34 0.0002 - 35 3.34e-05 - 37 0.000526 - 39 3.34e-05 - 40 0.438 - 41 0.154 - 42 0.0193 - 43 0.00174 - 44 0.000538 - 45 0.000726 - 46 0.0115 - 47 0.303 - - 0 1 1 0 - 21 1 - - 2 2635 38 8 - 0 0.00835 - 1 0.00038 - 2 0.00038 - 3 0.022 - 4 0.25 - 5 0.0121 - 7 0.049 - 8 0.0509 - 9 0.0038 - 10 0.00607 - 12 0.00417 - 13 0.055 - 14 0.0687 - 15 0.12 - 16 0.00152 - 17 0.00114 - 19 0.205 - 20 0.0364 - 21 0.0509 - 22 0.00114 - 23 0.00114 - 26 0.00569 - 27 0.00038 - 28 0.00342 - 29 0.00114 - 30 0.00873 - 31 0.00152 - 32 0.00038 - 33 0.00152 - 34 0.00114 - 35 0.000759 - 37 0.00569 - 39 0.00114 - 41 0.0114 - 42 0.00038 - 43 0.00038 - 44 0.00152 - 45 0.00645 - - 41 1755 33 0 - 0 0.00627 - 2 0.00057 - 3 0.0131 - 4 0.271 - 5 0.0114 - 7 0.0581 - 8 0.0541 - 9 0.00399 - 10 0.00513 - 12 0.00399 - 13 0.045 - 14 0.0638 - 15 0.113 - 16 0.00228 - 17 0.00114 - 19 0.226 - 20 0.0336 - 21 0.049 - 22 0.00114 - 23 0.00114 - 26 0.00285 - 28 0.00228 - 29 0.00057 - 30 0.0108 - 31 0.00171 - 34 0.00057 - 35 0.00057 - 37 0.00741 - 39 0.00114 - 41 0.00342 - 42 0.00057 - 44 0.00057 - 45 0.00399 - - 42 83 20 0 - 0 0.0241 - 1 0.012 - 3 0.0361 - 4 0.229 - 7 0.0602 - 8 0.0361 - 10 0.0241 - 12 0.012 - 13 0.0482 - 14 0.0241 - 15 0.108 - 19 0.157 - 20 0.012 - 21 0.0964 - 26 0.012 - 27 0.012 - 28 0.012 - 35 0.012 - 41 0.0602 - 44 0.012 - - 44 1 1 0 - 43 1 - - 45 16 5 0 - 4 0.188 - 13 0.125 - 14 0.0625 - 19 0.562 - 21 0.0625 - - 46 38 11 0 - 4 0.158 - 7 0.0263 - 13 0.0526 - 14 0.0526 - 15 0.0789 - 19 0.316 - 20 0.0526 - 21 0.0526 - 22 0.0263 - 37 0.0263 - 45 0.158 - - 58 43 14 0 - 3 0.0465 - 4 0.256 - 5 0.0465 - 7 0.0233 - 8 0.0698 - 12 0.0233 - 13 0.0698 - 14 0.093 - 15 0.0465 - 19 0.186 - 20 0.0698 - 21 0.0233 - 28 0.0233 - 45 0.0233 - - 62 696 30 0 - 0 0.0129 - 3 0.0388 - 4 0.208 - 5 0.0144 - 7 0.0287 - 8 0.0474 - 9 0.00431 - 10 0.00718 - 12 0.00287 - 13 0.079 - 14 0.0862 - 15 0.149 - 17 0.00144 - 19 0.147 - 20 0.0445 - 21 0.0517 - 23 0.00144 - 26 0.0129 - 28 0.00431 - 29 0.00287 - 30 0.00575 - 31 0.00144 - 32 0.00144 - 33 0.00575 - 34 0.00287 - 37 0.00144 - 39 0.00144 - 41 0.0273 - 44 0.00287 - 45 0.00431 - - 69 2 1 0 - 3 1 - - 7 42 8 1 - 3 0.0238 - 4 0.286 - 5 0.0238 - 7 0.0238 - 13 0.0476 - 14 0.167 - 15 0.0476 - 19 0.381 - - 62 4 3 0 - 3 0.25 - 4 0.25 - 14 0.5 - - 21 32 13 1 - 3 0.0312 - 4 0.156 - 7 0.0312 - 8 0.0312 - 9 0.0312 - 15 0.0625 - 19 0.312 - 20 0.0625 - 21 0.0938 - 26 0.0625 - 28 0.0312 - 37 0.0625 - 41 0.0312 - - 2 7 5 0 - 4 0.429 - 15 0.143 - 19 0.143 - 21 0.143 - 37 0.143 - - 40 35953 5 2 - 40 2.78e-05 - 43 0.00337 - 45 0.000278 - 46 0.06 - 47 0.936 - - 6 1 1 0 - 43 1 - - 62 2516 4 0 - 43 0.00556 - 45 0.000795 - 46 0.0823 - 47 0.911 - - 41 2397 27 8 - 0 0.00167 - 2 0.736 - 3 0.00292 - 4 0.0217 - 5 0.00375 - 6 0.000417 - 7 0.0321 - 8 0.000834 - 9 0.000417 - 12 0.000417 - 13 0.00709 - 14 0.00501 - 15 0.0375 - 19 0.0209 - 20 0.00167 - 21 0.0196 - 23 0.000417 - 26 0.00125 - 27 0.000417 - 28 0.00125 - 29 0.00125 - 30 0.00626 - 33 0.00292 - 34 0.000834 - 45 0.00501 - 46 0.0868 - 47 0.00209 - - 2 26 8 0 - 3 0.0385 - 4 0.0385 - 7 0.615 - 9 0.0385 - 19 0.0769 - 21 0.115 - 27 0.0385 - 30 0.0385 - - 6 1 1 0 - 26 1 - - 21 1 1 0 - 45 1 - - 49 4 3 0 - 2 0.25 - 7 0.5 - 21 0.25 - - 55 8 5 0 - 7 0.25 - 15 0.125 - 21 0.125 - 30 0.125 - 46 0.375 - - 58 7 3 0 - 2 0.143 - 14 0.143 - 45 0.714 - - 62 2139 22 0 - 2 0.813 - 3 0.00234 - 4 0.0229 - 5 0.00421 - 6 0.000468 - 7 0.022 - 8 0.000935 - 13 0.00748 - 14 0.00421 - 15 0.0411 - 19 0.0206 - 20 0.0014 - 21 0.0173 - 23 0.000468 - 26 0.000935 - 28 0.0014 - 29 0.000468 - 30 0.00468 - 33 0.000935 - 34 0.000468 - 45 0.00234 - 46 0.0299 - - 69 206 19 0 - 0 0.0194 - 2 0.0971 - 3 0.00485 - 4 0.00971 - 7 0.0388 - 12 0.00485 - 13 0.00485 - 14 0.00971 - 15 0.00485 - 19 0.0194 - 20 0.00485 - 21 0.0243 - 29 0.00971 - 30 0.0146 - 33 0.0243 - 34 0.00485 - 45 0.00485 - 46 0.675 - 47 0.0243 - - 42 977 35 6 - 0 0.00102 - 1 0.00102 - 2 0.088 - 3 0.0143 - 4 0.148 - 5 0.00614 - 7 0.0645 - 8 0.0287 - 9 0.00409 - 10 0.00102 - 11 0.00205 - 13 0.0409 - 14 0.0409 - 15 0.1 - 16 0.00205 - 17 0.00102 - 19 0.141 - 20 0.0194 - 21 0.0522 - 23 0.00102 - 26 0.00512 - 27 0.00102 - 28 0.00921 - 30 0.00614 - 31 0.00102 - 34 0.00205 - 35 0.00205 - 37 0.00512 - 39 0.00205 - 40 0.0747 - 41 0.00102 - 42 0.00205 - 45 0.0491 - 46 0.00409 - 47 0.0768 - - 42 2 1 0 - 45 1 - - 46 6 1 0 - 47 1 - - 58 4 3 0 - 7 0.25 - 21 0.25 - 45 0.5 - - 62 815 34 0 - 0 0.00123 - 1 0.00123 - 2 0.103 - 3 0.0172 - 4 0.178 - 5 0.00736 - 7 0.0736 - 8 0.0331 - 9 0.00491 - 10 0.00123 - 11 0.00245 - 13 0.0479 - 14 0.0491 - 15 0.119 - 16 0.00245 - 17 0.00123 - 19 0.168 - 20 0.0233 - 21 0.0577 - 23 0.00123 - 26 0.00613 - 27 0.00123 - 28 0.011 - 30 0.00736 - 31 0.00123 - 34 0.00245 - 35 0.00245 - 37 0.00491 - 39 0.00123 - 40 0.00859 - 42 0.00245 - 45 0.0528 - 46 0.00245 - 47 0.00245 - - 66 3 3 0 - 2 0.333 - 8 0.333 - 40 0.333 - - 69 144 13 0 - 2 0.00694 - 7 0.0139 - 13 0.00694 - 15 0.00694 - 19 0.00694 - 21 0.0208 - 37 0.00694 - 39 0.00694 - 40 0.444 - 41 0.00694 - 45 0.00694 - 46 0.0139 - 47 0.451 - - 43 125 4 3 - 20 0.008 - 40 0.032 - 42 0.008 - 47 0.952 - - 2 1 1 0 - 20 1 - - 40 115 2 0 - 42 0.0087 - 47 0.991 - - 69 4 1 0 - 40 1 - - 45 82 15 5 - 0 0.0244 - 2 0.22 - 4 0.134 - 5 0.0122 - 7 0.11 - 8 0.0122 - 13 0.0244 - 14 0.0122 - 15 0.0244 - 19 0.146 - 20 0.0366 - 21 0.0732 - 28 0.0366 - 37 0.0122 - 47 0.122 - - 2 15 7 0 - 0 0.0667 - 4 0.4 - 5 0.0667 - 7 0.133 - 19 0.0667 - 21 0.133 - 28 0.133 - - 40 10 1 0 - 47 1 - - 41 11 4 0 - 2 0.636 - 8 0.0909 - 19 0.182 - 21 0.0909 - - 42 31 11 0 - 0 0.0323 - 4 0.161 - 7 0.194 - 13 0.0645 - 14 0.0323 - 15 0.0645 - 19 0.258 - 20 0.0968 - 21 0.0323 - 28 0.0323 - 37 0.0323 - - 58 13 3 0 - 2 0.846 - 7 0.0769 - 19 0.0769 - - 46 2445 19 7 - 0 0.00164 - 2 0.0225 - 4 0.00204 - 6 0.000409 - 7 0.00573 - 15 0.00777 - 19 0.0151 - 21 0.00164 - 26 0.000818 - 28 0.000409 - 29 0.0139 - 30 0.000409 - 33 0.0278 - 40 0.00409 - 42 0.00327 - 43 0.00368 - 45 0.000409 - 46 0.00859 - 47 0.88 - - 40 2157 5 0 - 2 0.000464 - 42 0.00278 - 43 0.00278 - 46 0.00881 - 47 0.985 - - 41 201 13 0 - 0 0.00995 - 2 0.169 - 4 0.0249 - 6 0.00498 - 7 0.0149 - 15 0.0796 - 19 0.179 - 21 0.00498 - 29 0.169 - 30 0.00498 - 33 0.328 - 45 0.00498 - 46 0.00498 - - 42 4 3 0 - 28 0.25 - 40 0.25 - 47 0.5 - - 48 12 2 0 - 2 0.667 - 7 0.333 - - 55 11 6 0 - 2 0.182 - 7 0.364 - 21 0.0909 - 26 0.0909 - 33 0.0909 - 42 0.182 - - 62 7 4 0 - 2 0.571 - 15 0.143 - 19 0.143 - 47 0.143 - - 69 33 10 0 - 0 0.0606 - 2 0.182 - 7 0.0909 - 15 0.0606 - 21 0.0606 - 26 0.0303 - 40 0.273 - 43 0.0909 - 46 0.0303 - 47 0.121 - - 47 95402 34 17 - 0 0.00953 - 2 0.0171 - 3 8.39e-05 - 4 0.000954 - 5 6.29e-05 - 7 0.0109 - 8 0.000419 - 12 0.00393 - 13 0.000241 - 14 0.000157 - 15 0.000618 - 19 0.00136 - 20 5.24e-05 - 21 0.00164 - 22 0.000105 - 26 0.00125 - 28 0.000136 - 29 0.00199 - 30 0.000293 - 31 0.000199 - 32 0.00066 - 33 0.00197 - 34 0.00021 - 35 2.1e-05 - 37 0.000514 - 39 2.1e-05 - 40 0.361 - 41 0.181 - 42 0.0191 - 43 0.00153 - 44 0.000566 - 45 0.000356 - 46 0.00162 - 47 0.38 - - 40 33670 2 0 - 43 0.000178 - 47 1 - - 41 47 15 0 - 0 0.0851 - 2 0.17 - 4 0.0213 - 7 0.0213 - 12 0.0213 - 13 0.0213 - 14 0.0426 - 15 0.0213 - 19 0.0851 - 20 0.0213 - 29 0.0638 - 33 0.149 - 45 0.0213 - 46 0.149 - 47 0.106 - - 42 78 4 0 - 19 0.0128 - 39 0.0128 - 41 0.0128 - 47 0.962 - - 43 119 1 0 - 47 1 - - 45 10 1 0 - 47 1 - - 46 2350 15 0 - 0 0.0017 - 2 0.00723 - 4 0.00213 - 7 0.00383 - 15 0.00766 - 19 0.014 - 21 0.0017 - 26 0.000851 - 29 0.0145 - 33 0.0277 - 42 0.000851 - 43 0.0017 - 45 0.000426 - 46 0.000426 - 47 0.915 - - 48 773 21 0 - 0 0.0103 - 2 0.0414 - 4 0.00517 - 7 0.19 - 12 0.00517 - 14 0.00129 - 15 0.00129 - 19 0.00259 - 21 0.00517 - 26 0.00129 - 30 0.00129 - 31 0.00129 - 32 0.00129 - 33 0.00129 - 37 0.00259 - 40 0.446 - 41 0.254 - 42 0.0207 - 43 0.00259 - 46 0.00129 - 47 0.00388 - - 49 56 9 0 - 0 0.0357 - 2 0.0357 - 7 0.125 - 15 0.0179 - 40 0.393 - 41 0.304 - 42 0.0536 - 46 0.0179 - 47 0.0179 - - 55 709 22 0 - 0 0.00846 - 2 0.0367 - 4 0.00282 - 7 0.0339 - 8 0.00282 - 12 0.00705 - 15 0.00282 - 21 0.00564 - 22 0.00141 - 26 0.00423 - 29 0.00282 - 30 0.00423 - 32 0.00423 - 33 0.00141 - 34 0.00564 - 37 0.00282 - 40 0.54 - 41 0.288 - 42 0.0339 - 43 0.00282 - 46 0.00423 - 47 0.00423 - - 57 217 12 0 - 0 0.00461 - 2 0.023 - 7 0.0184 - 12 0.00461 - 19 0.00461 - 21 0.0138 - 26 0.0138 - 40 0.479 - 41 0.392 - 42 0.0369 - 46 0.00461 - 47 0.00461 - - 58 11 4 0 - 8 0.0909 - 28 0.0909 - 40 0.545 - 41 0.273 - - 62 880 12 0 - 2 0.00227 - 7 0.00114 - 12 0.00114 - 19 0.00227 - 28 0.00114 - 29 0.00227 - 40 0.512 - 41 0.441 - 42 0.017 - 43 0.00341 - 46 0.00568 - 47 0.0102 - - 64 87 4 0 - 7 0.0115 - 40 0.747 - 41 0.23 - 43 0.0115 - - 65 4 4 0 - 40 0.25 - 41 0.25 - 46 0.25 - 47 0.25 - - 67 7 2 0 - 46 0.143 - 47 0.857 - - 68 12 6 0 - 2 0.0833 - 15 0.0833 - 19 0.0833 - 40 0.417 - 41 0.25 - 42 0.0833 - - 69 56363 34 0 - 0 0.0157 - 2 0.0273 - 3 0.000142 - 4 0.0014 - 5 0.000106 - 7 0.015 - 8 0.000656 - 12 0.00644 - 13 0.00039 - 14 0.000213 - 15 0.000621 - 19 0.00153 - 20 7.1e-05 - 21 0.0025 - 22 0.00016 - 26 0.00195 - 28 0.000195 - 29 0.00264 - 30 0.000426 - 31 0.000319 - 32 0.00105 - 33 0.00202 - 34 0.000284 - 35 3.55e-05 - 37 0.000798 - 39 1.77e-05 - 40 0.587 - 41 0.29 - 42 0.031 - 43 0.00227 - 44 0.000958 - 45 0.000568 - 46 0.00238 - 47 0.00405 - - 48 811 21 4 - 0 0.00986 - 2 0.0395 - 4 0.00493 - 7 0.211 - 12 0.00493 - 14 0.00123 - 15 0.00123 - 19 0.00247 - 21 0.00493 - 26 0.00123 - 30 0.00123 - 31 0.00123 - 32 0.00123 - 33 0.00123 - 37 0.00247 - 40 0.428 - 41 0.242 - 42 0.0197 - 43 0.00247 - 46 0.016 - 47 0.0037 - - 45 54 4 0 - 7 0.037 - 40 0.556 - 41 0.204 - 46 0.204 - - 47 350 14 0 - 2 0.0229 - 4 0.0114 - 7 0.354 - 14 0.00286 - 19 0.00286 - 21 0.00857 - 26 0.00286 - 30 0.00286 - 31 0.00286 - 32 0.00286 - 33 0.00286 - 40 0.291 - 41 0.28 - 42 0.0114 - - 49 8 2 0 - 40 0.125 - 41 0.875 - - 55 393 14 0 - 0 0.0204 - 2 0.0611 - 7 0.115 - 12 0.0102 - 15 0.00254 - 19 0.00254 - 21 0.00254 - 37 0.00509 - 40 0.532 - 41 0.201 - 42 0.0305 - 43 0.00509 - 46 0.00509 - 47 0.00763 - - 49 97 22 6 - 0 0.0309 - 2 0.0206 - 3 0.0103 - 4 0.0515 - 7 0.144 - 8 0.0206 - 12 0.0103 - 13 0.0103 - 14 0.0309 - 15 0.0206 - 19 0.0515 - 21 0.0206 - 26 0.0309 - 28 0.0103 - 33 0.0103 - 37 0.0103 - 40 0.237 - 41 0.216 - 42 0.0309 - 45 0.0103 - 46 0.0103 - 47 0.0103 - - 2 20 13 0 - 0 0.05 - 4 0.1 - 7 0.05 - 8 0.05 - 12 0.05 - 13 0.05 - 14 0.1 - 19 0.2 - 26 0.1 - 33 0.05 - 40 0.05 - 41 0.1 - 45 0.05 - - 41 20 11 0 - 3 0.05 - 4 0.15 - 8 0.05 - 14 0.05 - 15 0.05 - 19 0.05 - 21 0.1 - 28 0.05 - 40 0.2 - 41 0.1 - 42 0.15 - - 47 18 6 0 - 0 0.0556 - 7 0.222 - 40 0.222 - 41 0.389 - 46 0.0556 - 47 0.0556 - - 48 5 2 0 - 40 0.8 - 41 0.2 - - 55 31 7 0 - 0 0.0323 - 2 0.0645 - 7 0.29 - 15 0.0323 - 26 0.0323 - 40 0.258 - 41 0.29 - - 69 2 2 0 - 37 0.5 - 40 0.5 - - 51 13 2 0 - 40 0.846 - 41 0.154 - - 55 895 23 6 - 0 0.0067 - 2 0.0291 - 4 0.00223 - 7 0.15 - 8 0.00223 - 12 0.00559 - 15 0.00223 - 21 0.00559 - 22 0.00112 - 26 0.0101 - 29 0.00223 - 30 0.00335 - 32 0.00335 - 33 0.00112 - 34 0.00447 - 37 0.00223 - 40 0.482 - 41 0.237 - 42 0.0268 - 43 0.00223 - 45 0.00223 - 46 0.0156 - 47 0.00335 - - 45 72 4 0 - 40 0.556 - 41 0.278 - 42 0.0139 - 46 0.153 - - 47 526 22 0 - 0 0.0076 - 2 0.0209 - 4 0.0019 - 7 0.228 - 8 0.0019 - 12 0.0076 - 15 0.0038 - 21 0.0076 - 22 0.0019 - 26 0.0152 - 29 0.0038 - 30 0.0057 - 32 0.0038 - 33 0.0019 - 34 0.0076 - 37 0.0019 - 40 0.376 - 41 0.27 - 42 0.0228 - 43 0.0038 - 45 0.0038 - 46 0.0019 - - 48 18 6 0 - 2 0.0556 - 7 0.167 - 26 0.0556 - 40 0.389 - 41 0.278 - 47 0.0556 - - 49 11 3 0 - 7 0.273 - 40 0.0909 - 41 0.636 - - 55 195 14 0 - 0 0.00513 - 2 0.0718 - 4 0.00513 - 7 0.041 - 8 0.00513 - 12 0.00513 - 21 0.00513 - 32 0.00513 - 37 0.00513 - 40 0.631 - 41 0.159 - 42 0.0462 - 46 0.00513 - 47 0.0103 - - 69 59 4 0 - 0 0.0169 - 40 0.915 - 41 0.0508 - 42 0.0169 - - 57 259 12 4 - 0 0.00386 - 2 0.0193 - 7 0.0502 - 12 0.00386 - 19 0.00386 - 21 0.0116 - 26 0.0154 - 40 0.517 - 41 0.332 - 42 0.0347 - 46 0.00386 - 47 0.00386 - - 41 24 4 0 - 7 0.0417 - 40 0.833 - 41 0.0833 - 42 0.0417 - - 47 26 4 0 - 21 0.0385 - 26 0.0385 - 40 0.269 - 41 0.654 - - 48 24 6 0 - 2 0.0417 - 7 0.167 - 40 0.333 - 41 0.333 - 42 0.0833 - 47 0.0417 - - 69 30 5 0 - 0 0.0333 - 26 0.0333 - 40 0.7 - 41 0.2 - 42 0.0333 - - 58 100 11 4 - 2 0.43 - 7 0.08 - 8 0.02 - 19 0.01 - 21 0.01 - 26 0.01 - 28 0.01 - 40 0.14 - 41 0.1 - 42 0.04 - 45 0.15 - - 2 3 3 0 - 8 0.333 - 19 0.333 - 26 0.333 - - 46 9 4 0 - 40 0.222 - 41 0.556 - 42 0.111 - 45 0.111 - - 62 73 9 0 - 2 0.562 - 7 0.0274 - 8 0.0137 - 21 0.0137 - 28 0.0137 - 40 0.11 - 41 0.0411 - 42 0.0411 - 45 0.178 - - 69 11 4 0 - 7 0.545 - 40 0.273 - 41 0.0909 - 45 0.0909 - - 62 7159 19 11 - 2 0.0976 - 4 0.00014 - 7 0.00279 - 8 0.000419 - 12 0.00014 - 15 0.00014 - 19 0.000419 - 21 0.000419 - 28 0.00014 - 29 0.000279 - 37 0.000279 - 40 0.414 - 41 0.361 - 42 0.116 - 43 0.000419 - 44 0.00182 - 45 0.00014 - 46 0.00168 - 47 0.00126 - - 2 2599 15 0 - 2 0.0104 - 7 0.00577 - 8 0.000385 - 12 0.000385 - 19 0.00077 - 28 0.000385 - 29 0.00077 - 37 0.000385 - 40 0.809 - 41 0.155 - 42 0.0119 - 43 0.00077 - 44 0.000385 - 46 0.00154 - 47 0.00192 - - 7 43 4 0 - 2 0.0233 - 40 0.86 - 41 0.093 - 44 0.0233 - - 21 30 5 0 - 2 0.0333 - 40 0.767 - 41 0.133 - 42 0.0333 - 46 0.0333 - - 41 488 5 0 - 2 0.248 - 40 0.184 - 41 0.514 - 42 0.0492 - 46 0.0041 - - 42 697 6 0 - 2 0.00717 - 40 0.859 - 41 0.0689 - 42 0.0588 - 46 0.00143 - 47 0.0043 - - 44 12 3 0 - 2 0.167 - 41 0.5 - 42 0.333 - - 45 222 7 0 - 2 0.113 - 7 0.0045 - 40 0.189 - 41 0.568 - 42 0.104 - 46 0.018 - 47 0.0045 - - 47 2942 13 0 - 2 0.171 - 4 0.00034 - 7 0.00102 - 8 0.00068 - 15 0.00034 - 19 0.00034 - 21 0.00102 - 37 0.00034 - 40 0.00034 - 41 0.582 - 42 0.238 - 44 0.00374 - 45 0.00034 - - 48 36 3 0 - 7 0.0278 - 40 0.833 - 41 0.139 - - 49 36 4 0 - 2 0.0556 - 40 0.75 - 41 0.167 - 43 0.0278 - - 57 12 3 0 - 2 0.5 - 40 0.167 - 41 0.333 - - 64 106 7 1 - 2 0.00943 - 7 0.00943 - 21 0.00943 - 40 0.755 - 41 0.198 - 42 0.00943 - 43 0.00943 - - 47 1 1 0 - 42 1 - - 66 32 3 0 - 40 0.781 - 41 0.125 - 42 0.0938 - - 67 9 3 0 - 40 0.222 - 46 0.111 - 47 0.667 - - 68 12 6 0 - 2 0.0833 - 15 0.0833 - 19 0.0833 - 40 0.417 - 41 0.25 - 42 0.0833 - - 69 90067 36 14 - 0 0.00981 - 2 0.0171 - 3 0.000111 - 4 0.000999 - 5 6.66e-05 - 7 0.00973 - 8 0.000411 - 9 1.11e-05 - 12 0.00403 - 13 0.000289 - 14 0.000133 - 15 0.000811 - 17 1.11e-05 - 19 0.000966 - 20 4.44e-05 - 21 0.0016 - 22 9.99e-05 - 26 0.00123 - 28 0.000122 - 29 0.00165 - 30 0.000266 - 31 0.000211 - 32 0.000655 - 33 0.00127 - 34 0.000189 - 35 2.22e-05 - 37 0.000522 - 39 1.11e-05 - 40 0.736 - 41 0.184 - 42 0.021 - 43 0.00147 - 44 0.000644 - 45 0.000366 - 46 0.00185 - 47 0.00253 - - 2 19 3 0 - 40 0.895 - 41 0.0526 - 44 0.0526 - - 4 32 4 0 - 7 0.0312 - 12 0.0312 - 40 0.844 - 41 0.0938 - - 21 122 8 0 - 0 0.0082 - 2 0.0082 - 7 0.0246 - 29 0.0164 - 40 0.631 - 41 0.27 - 42 0.0328 - 47 0.0082 - - 41 838 11 0 - 0 0.00119 - 2 0.00477 - 4 0.00119 - 15 0.0143 - 33 0.00119 - 37 0.00119 - 40 0.899 - 41 0.0513 - 42 0.0203 - 43 0.00239 - 47 0.00358 - - 43 28 3 0 - 0 0.0714 - 40 0.464 - 41 0.464 - - 45 334 7 0 - 2 0.00898 - 7 0.00299 - 40 0.557 - 41 0.38 - 42 0.018 - 46 0.0269 - 47 0.00599 - - 46 98 10 0 - 0 0.0102 - 2 0.0102 - 3 0.0102 - 4 0.0204 - 7 0.0102 - 15 0.255 - 40 0.531 - 41 0.122 - 42 0.0204 - 43 0.0102 - - 47 23686 34 0 - 0 0.0246 - 2 0.021 - 3 0.000253 - 4 0.00186 - 5 8.44e-05 - 7 0.0269 - 8 0.00118 - 12 0.0117 - 13 0.00076 - 14 0.000169 - 15 0.000844 - 17 4.22e-05 - 19 0.00101 - 20 4.22e-05 - 21 0.00422 - 22 0.000338 - 26 0.00355 - 28 0.000296 - 29 0.00469 - 30 0.000633 - 31 0.000633 - 32 0.00182 - 33 0.00338 - 34 0.000464 - 37 0.00148 - 39 4.22e-05 - 40 0.625 - 41 0.231 - 42 0.0221 - 43 0.00207 - 44 0.000929 - 45 0.000929 - 46 0.00312 - 47 0.00262 - - 49 3383 23 0 - 0 0.00532 - 2 0.00769 - 3 0.000296 - 4 0.000887 - 7 0.00236 - 9 0.000296 - 12 0.00236 - 13 0.000591 - 15 0.000591 - 19 0.000296 - 21 0.00118 - 26 0.000296 - 29 0.000887 - 30 0.000887 - 32 0.000887 - 33 0.000887 - 40 0.792 - 41 0.156 - 42 0.021 - 43 0.00118 - 44 0.000296 - 46 0.00148 - 47 0.00207 - - 55 60684 33 0 - 0 0.0046 - 2 0.0165 - 3 3.3e-05 - 4 0.000659 - 5 6.59e-05 - 7 0.00369 - 8 0.000148 - 12 0.00125 - 13 9.89e-05 - 14 0.000132 - 15 0.000214 - 19 0.00101 - 20 4.94e-05 - 21 0.000659 - 22 1.65e-05 - 26 0.000428 - 28 6.59e-05 - 29 0.000527 - 30 9.89e-05 - 31 6.59e-05 - 32 0.000214 - 33 0.000478 - 34 9.89e-05 - 35 3.3e-05 - 37 0.000181 - 40 0.774 - 41 0.168 - 42 0.0204 - 43 0.00125 - 44 0.00056 - 45 0.000165 - 46 0.00129 - 47 0.0025 - - 57 196 6 0 - 2 0.0153 - 29 0.0051 - 40 0.811 - 41 0.122 - 42 0.0408 - 45 0.0051 - - 58 207 4 0 - 2 0.00966 - 40 0.928 - 41 0.0338 - 42 0.029 - - 62 256 6 0 - 2 0.00781 - 15 0.00391 - 33 0.00391 - 40 0.793 - 41 0.148 - 42 0.043 - - 64 121 6 0 - 19 0.00826 - 40 0.785 - 41 0.132 - 42 0.0579 - 46 0.00826 - 47 0.00826 - -63 79666 1 0 - 47 1 - -64 76641 43 33 - 0 0.0391 - 1 9.13e-05 - 2 0.0169 - 3 0.00201 - 4 0.0542 - 5 0.0026 - 7 0.0151 - 8 0.011 - 9 0.000692 - 10 0.000665 - 11 1.3e-05 - 12 0.0139 - 13 0.0113 - 14 0.0129 - 15 0.0225 - 16 0.000209 - 17 0.000326 - 18 2.61e-05 - 19 0.0442 - 20 0.00497 - 21 0.00892 - 22 0.000248 - 23 1.3e-05 - 26 0.00343 - 28 0.000613 - 29 0.0176 - 30 0.00316 - 31 0.00274 - 32 0.00857 - 33 0.0137 - 34 0.000626 - 35 0.000535 - 36 5.22e-05 - 37 0.001 - 39 0.000183 - 40 0.488 - 41 0.175 - 42 0.0152 - 43 0.00151 - 44 0.000887 - 45 0.0024 - 46 0.00119 - 47 0.00198 - - 0 1 1 0 - 14 1 - - 2 337 19 7 - 0 0.00297 - 3 0.00297 - 4 0.0623 - 5 0.00297 - 7 0.623 - 8 0.00297 - 14 0.0119 - 15 0.00297 - 19 0.0089 - 20 0.00297 - 21 0.0415 - 22 0.00297 - 26 0.00297 - 34 0.0564 - 35 0.0712 - 36 0.0119 - 37 0.0742 - 41 0.0089 - 45 0.00593 - - 7 2 1 0 - 21 1 - - 41 107 11 0 - 4 0.0467 - 7 0.729 - 14 0.00935 - 19 0.00935 - 21 0.028 - 22 0.00935 - 34 0.0654 - 35 0.0374 - 37 0.0374 - 41 0.00935 - 45 0.0187 - - 42 9 4 0 - 7 0.444 - 34 0.111 - 37 0.333 - 41 0.111 - - 46 8 2 0 - 7 0.875 - 14 0.125 - - 47 10 7 0 - 4 0.2 - 5 0.1 - 8 0.1 - 14 0.2 - 19 0.2 - 20 0.1 - 26 0.1 - - 62 6 2 0 - 15 0.167 - 21 0.833 - - 64 194 10 0 - 0 0.00515 - 3 0.00515 - 4 0.0722 - 7 0.619 - 21 0.0206 - 34 0.0567 - 35 0.103 - 36 0.0206 - 37 0.0928 - 41 0.00515 - - 4 202 13 0 - 3 0.0149 - 7 0.0297 - 8 0.153 - 10 0.0149 - 13 0.411 - 15 0.158 - 20 0.173 - 21 0.0099 - 31 0.00495 - 33 0.00495 - 41 0.00495 - 42 0.0099 - 44 0.0099 - - 7 10169 37 8 - 0 0.00521 - 1 0.000492 - 2 0.00059 - 3 0.0103 - 4 0.305 - 5 0.0145 - 7 0.0308 - 8 0.061 - 9 0.00403 - 10 0.00334 - 11 9.83e-05 - 12 9.83e-05 - 13 0.0558 - 14 0.0677 - 15 0.116 - 16 0.00108 - 17 0.00187 - 19 0.217 - 20 0.0234 - 21 0.0175 - 22 0.000885 - 26 0.00413 - 28 0.000983 - 29 9.83e-05 - 30 0.0177 - 31 0.0146 - 32 0.000295 - 33 0.000492 - 34 0.000197 - 35 0.000787 - 37 0.00256 - 39 0.000787 - 41 0.006 - 42 0.000197 - 43 0.000197 - 44 0.000787 - 45 0.0137 - - 7 48 11 0 - 4 0.25 - 5 0.0208 - 10 0.0208 - 13 0.0625 - 14 0.0625 - 15 0.0208 - 19 0.458 - 20 0.0208 - 26 0.0417 - 30 0.0208 - 42 0.0208 - - 21 246 16 0 - 4 0.341 - 5 0.0163 - 7 0.0203 - 8 0.061 - 9 0.00407 - 13 0.061 - 14 0.0447 - 15 0.0813 - 19 0.285 - 20 0.0203 - 21 0.0163 - 26 0.00407 - 28 0.0244 - 30 0.0122 - 31 0.00407 - 45 0.00407 - - 35 5 2 0 - 4 0.8 - 13 0.2 - - 44 3 2 0 - 15 0.333 - 43 0.667 - - 47 9705 36 0 - 0 0.00546 - 1 0.000515 - 2 0.000618 - 3 0.0108 - 4 0.304 - 5 0.0145 - 7 0.0316 - 8 0.0613 - 9 0.00412 - 10 0.0034 - 11 0.000103 - 12 0.000103 - 13 0.0551 - 14 0.0687 - 15 0.117 - 16 0.00113 - 17 0.00196 - 19 0.214 - 20 0.0236 - 21 0.0177 - 22 0.000927 - 26 0.00402 - 28 0.000412 - 29 0.000103 - 30 0.018 - 31 0.015 - 32 0.000309 - 33 0.000515 - 34 0.000206 - 35 0.000824 - 37 0.00268 - 39 0.000824 - 41 0.00629 - 42 0.000103 - 44 0.000721 - 45 0.0141 - - 49 106 13 0 - 4 0.311 - 5 0.00943 - 7 0.00943 - 8 0.066 - 13 0.0943 - 14 0.066 - 15 0.123 - 19 0.255 - 20 0.0189 - 21 0.0189 - 30 0.00943 - 31 0.00943 - 44 0.00943 - - 55 47 6 0 - 4 0.383 - 8 0.0213 - 13 0.0638 - 15 0.298 - 19 0.213 - 20 0.0213 - - 57 5 3 0 - 4 0.4 - 8 0.4 - 45 0.2 - - 12 1 1 0 - 9 1 - - 13 52 10 2 - 4 0.0385 - 5 0.0192 - 7 0.0385 - 13 0.0192 - 14 0.0192 - 15 0.0192 - 19 0.0385 - 26 0.75 - 30 0.0385 - 41 0.0192 - - 7 45 5 0 - 4 0.0444 - 5 0.0222 - 14 0.0222 - 19 0.0444 - 26 0.867 - - 47 7 5 0 - 7 0.286 - 13 0.143 - 15 0.143 - 30 0.286 - 41 0.143 - - 15 14 3 0 - 4 0.0714 - 15 0.857 - 19 0.0714 - - 21 134 22 5 - 0 0.0224 - 3 0.0149 - 4 0.239 - 5 0.00746 - 7 0.0448 - 8 0.0896 - 9 0.0224 - 10 0.00746 - 13 0.0299 - 14 0.00746 - 15 0.0373 - 19 0.134 - 20 0.0224 - 21 0.112 - 26 0.0149 - 28 0.00746 - 30 0.0149 - 31 0.0821 - 40 0.0224 - 41 0.0373 - 44 0.0149 - 45 0.0149 - - 2 7 4 0 - 19 0.143 - 40 0.429 - 41 0.286 - 45 0.143 - - 7 7 5 0 - 4 0.143 - 7 0.143 - 8 0.143 - 19 0.429 - 26 0.143 - - 21 6 4 0 - 4 0.167 - 15 0.5 - 26 0.167 - 44 0.167 - - 37 1 1 0 - 28 1 - - 47 107 19 0 - 0 0.028 - 3 0.0187 - 4 0.252 - 5 0.00935 - 7 0.0374 - 8 0.103 - 9 0.028 - 10 0.00935 - 13 0.0374 - 14 0.00935 - 15 0.0187 - 19 0.121 - 20 0.028 - 21 0.14 - 30 0.0187 - 31 0.0935 - 41 0.028 - 44 0.00935 - 45 0.00935 - - 26 2 1 0 - 4 1 - - 28 1 1 0 - 26 1 - - 34 10 8 0 - 4 0.1 - 5 0.1 - 8 0.1 - 10 0.1 - 14 0.1 - 15 0.1 - 20 0.1 - 21 0.3 - - 37 1 1 0 - 21 1 - - 40 24 3 0 - 42 0.0417 - 46 0.292 - 47 0.667 - - 41 246 21 8 - 0 0.0122 - 2 0.423 - 3 0.00407 - 4 0.0203 - 7 0.301 - 8 0.0163 - 13 0.00813 - 15 0.00407 - 19 0.0122 - 20 0.00407 - 21 0.0569 - 26 0.00407 - 29 0.00407 - 30 0.0366 - 31 0.0122 - 33 0.00407 - 34 0.0163 - 35 0.00813 - 37 0.0203 - 45 0.00813 - 46 0.0244 - - 7 49 10 0 - 4 0.0204 - 7 0.673 - 8 0.0204 - 20 0.0204 - 21 0.0204 - 26 0.0204 - 30 0.102 - 31 0.0612 - 37 0.0204 - 45 0.0408 - - 49 2 2 0 - 34 0.5 - 37 0.5 - - 55 1 1 0 - 0 1 - - 57 2 1 0 - 19 1 - - 62 7 5 0 - 4 0.143 - 13 0.286 - 19 0.143 - 21 0.286 - 29 0.143 - - 64 136 10 0 - 0 0.0147 - 2 0.765 - 4 0.00735 - 7 0.0809 - 21 0.0221 - 30 0.00735 - 34 0.0221 - 35 0.0147 - 37 0.0221 - 46 0.0441 - - 71 11 5 0 - 4 0.0909 - 7 0.273 - 8 0.273 - 21 0.273 - 30 0.0909 - - 72 36 6 0 - 3 0.0278 - 7 0.75 - 15 0.0278 - 21 0.111 - 30 0.0556 - 33 0.0278 - - 42 22 7 1 - 1 0.0455 - 2 0.409 - 7 0.136 - 21 0.0455 - 37 0.227 - 45 0.0455 - 47 0.0909 - - 62 2 1 0 - 47 1 - - 43 4 4 0 - 4 0.25 - 9 0.25 - 12 0.25 - 29 0.25 - - 44 1 1 0 - 26 1 - - 45 112 19 3 - 0 0.0179 - 1 0.00893 - 3 0.0179 - 4 0.259 - 5 0.0536 - 7 0.0804 - 8 0.0536 - 10 0.0179 - 13 0.0536 - 14 0.0625 - 15 0.0179 - 17 0.00893 - 19 0.259 - 20 0.0268 - 21 0.0179 - 31 0.00893 - 33 0.00893 - 34 0.00893 - 37 0.0179 - - 41 2 2 0 - 15 0.5 - 31 0.5 - - 58 2 2 0 - 10 0.5 - 37 0.5 - - 72 2 2 0 - 0 0.5 - 33 0.5 - - 46 17 5 3 - 2 0.412 - 34 0.0588 - 42 0.0588 - 44 0.0588 - 47 0.412 - - 40 7 1 0 - 47 1 - - 41 6 2 0 - 2 0.833 - 34 0.167 - - 62 2 2 0 - 42 0.5 - 44 0.5 - - 47 27924 33 12 - 0 0.0193 - 2 0.0173 - 4 0.00147 - 5 0.000215 - 7 0.00806 - 8 0.000143 - 12 0.00623 - 13 0.00043 - 14 0.000215 - 15 0.00043 - 19 0.0024 - 20 0.000179 - 21 0.00208 - 22 0.000107 - 26 0.00161 - 28 0.000322 - 29 0.00326 - 30 0.00043 - 31 0.000215 - 32 0.00165 - 33 0.00154 - 34 0.000322 - 35 7.16e-05 - 37 0.000251 - 39 3.58e-05 - 40 0.669 - 41 0.235 - 42 0.0204 - 43 0.00201 - 44 0.000967 - 45 0.000466 - 46 0.00133 - 47 0.00272 - - 40 17 2 0 - 42 0.0588 - 47 0.941 - - 41 9 6 0 - 0 0.222 - 4 0.111 - 13 0.222 - 19 0.111 - 21 0.222 - 29 0.111 - - 42 2 1 0 - 47 1 - - 45 1 1 0 - 19 1 - - 46 9 3 0 - 42 0.111 - 44 0.111 - 47 0.778 - - 51 89 9 0 - 2 0.0112 - 4 0.0112 - 7 0.0112 - 26 0.0225 - 40 0.236 - 41 0.652 - 42 0.0337 - 46 0.0112 - 47 0.0112 - - 62 27364 33 0 - 0 0.0196 - 2 0.0175 - 4 0.00139 - 5 0.000219 - 7 0.00819 - 8 0.000146 - 12 0.00636 - 13 0.000365 - 14 0.000219 - 15 0.000439 - 19 0.00238 - 20 0.000183 - 21 0.00205 - 22 0.00011 - 26 0.00157 - 28 0.000329 - 29 0.00329 - 30 0.000439 - 31 0.000219 - 32 0.00168 - 33 0.00157 - 34 0.000292 - 35 7.31e-05 - 37 0.000256 - 39 3.65e-05 - 40 0.669 - 41 0.236 - 42 0.0203 - 43 0.00201 - 44 0.000914 - 45 0.000475 - 46 0.00132 - 47 0.00175 - - 64 335 5 0 - 40 0.887 - 41 0.0925 - 42 0.0149 - 43 0.00299 - 44 0.00299 - - 65 1 1 0 - 47 1 - - 66 76 6 0 - 2 0.0263 - 4 0.0132 - 34 0.0132 - 40 0.697 - 41 0.237 - 42 0.0132 - - 67 1 1 0 - 47 1 - - 72 3 2 0 - 40 0.333 - 42 0.667 - - 49 5 3 0 - 7 0.4 - 33 0.2 - 41 0.4 - - 50 2 2 0 - 0 0.5 - 7 0.5 - - 51 89 9 1 - 2 0.0112 - 4 0.0112 - 7 0.0112 - 26 0.0225 - 40 0.236 - 41 0.652 - 42 0.0337 - 46 0.0112 - 47 0.0112 - - 21 4 3 0 - 26 0.25 - 41 0.5 - 46 0.25 - - 58 20 13 2 - 0 0.1 - 2 0.05 - 4 0.15 - 7 0.05 - 15 0.1 - 19 0.1 - 20 0.05 - 32 0.05 - 33 0.05 - 35 0.05 - 40 0.05 - 41 0.1 - 45 0.1 - - 2 2 2 0 - 7 0.5 - 35 0.5 - - 72 5 4 0 - 0 0.4 - 4 0.2 - 15 0.2 - 33 0.2 - - 62 27403 33 15 - 0 0.0196 - 2 0.0177 - 4 0.00139 - 5 0.000219 - 7 0.00821 - 8 0.000146 - 12 0.00635 - 13 0.000365 - 14 0.000219 - 15 0.000438 - 19 0.00237 - 20 0.000182 - 21 0.00204 - 22 0.000109 - 26 0.00157 - 28 0.000328 - 29 0.00328 - 30 0.000438 - 31 0.000219 - 32 0.00168 - 33 0.00157 - 34 0.000292 - 35 7.3e-05 - 37 0.000255 - 39 3.65e-05 - 40 0.668 - 41 0.236 - 42 0.0204 - 43 0.00201 - 44 0.000912 - 45 0.000511 - 46 0.00139 - 47 0.00175 - - 4 201 8 0 - 0 0.00995 - 2 0.0498 - 7 0.00498 - 29 0.00498 - 30 0.00498 - 40 0.796 - 41 0.124 - 42 0.00498 - - 7 9838 29 0 - 0 0.00498 - 2 0.0176 - 4 0.00203 - 5 0.000305 - 7 0.00407 - 8 0.000102 - 12 0.00173 - 13 0.000203 - 14 0.000407 - 15 0.000813 - 19 0.00335 - 20 0.000203 - 21 0.00102 - 26 0.000712 - 28 0.000305 - 29 0.00122 - 32 0.000407 - 33 0.00152 - 34 0.000102 - 37 0.000203 - 39 0.000102 - 40 0.665 - 41 0.273 - 42 0.0147 - 43 0.00193 - 44 0.00061 - 45 0.000305 - 46 0.000813 - 47 0.00173 - - 13 50 6 0 - 2 0.02 - 7 0.02 - 40 0.68 - 41 0.22 - 42 0.04 - 46 0.02 - - 15 14 3 0 - 0 0.0714 - 33 0.0714 - 41 0.857 - - 21 118 6 0 - 2 0.00847 - 7 0.0169 - 40 0.525 - 41 0.432 - 42 0.00847 - 47 0.00847 - - 41 95 3 0 - 2 0.0105 - 40 0.905 - 41 0.0842 - - 45 132 6 0 - 35 0.00758 - 40 0.788 - 41 0.136 - 42 0.0303 - 46 0.0152 - 47 0.0227 - - 47 7896 30 0 - 0 0.0215 - 2 0.0193 - 4 0.000887 - 5 0.000127 - 7 0.0146 - 8 0.000253 - 12 0.0057 - 13 0.00038 - 15 0.000253 - 19 0.00127 - 21 0.00177 - 22 0.00038 - 26 0.00203 - 28 0.000253 - 29 0.0019 - 30 0.00076 - 31 0.000127 - 32 0.000633 - 33 0.00127 - 34 0.00038 - 35 0.000127 - 37 0.000633 - 40 0.769 - 41 0.135 - 42 0.0168 - 43 0.000633 - 44 0.00076 - 45 0.000253 - 46 0.00139 - 47 0.0019 - - 58 12 4 0 - 19 0.0833 - 40 0.667 - 41 0.167 - 43 0.0833 - - 68 2 2 0 - 19 0.5 - 46 0.5 - - 70 36 6 0 - 0 0.0278 - 12 0.0278 - 40 0.556 - 41 0.333 - 42 0.0278 - 44 0.0278 - - 71 1931 24 0 - 0 0.0109 - 2 0.0166 - 4 0.00311 - 5 0.000518 - 7 0.0088 - 12 0.00414 - 13 0.00104 - 14 0.00104 - 15 0.000518 - 19 0.00984 - 20 0.00104 - 21 0.00104 - 29 0.000518 - 31 0.000518 - 32 0.00104 - 34 0.000518 - 40 0.572 - 41 0.328 - 42 0.029 - 43 0.00363 - 44 0.00155 - 45 0.000518 - 46 0.00311 - 47 0.00104 - - 72 6697 28 0 - 0 0.0426 - 2 0.0166 - 4 0.000597 - 5 0.000149 - 7 0.00732 - 8 0.000149 - 12 0.0148 - 13 0.000448 - 15 0.000149 - 19 0.000149 - 20 0.000149 - 21 0.00433 - 26 0.00284 - 28 0.000597 - 29 0.00881 - 30 0.000747 - 31 0.000597 - 32 0.00523 - 33 0.00254 - 34 0.000448 - 40 0.579 - 41 0.274 - 42 0.03 - 43 0.00314 - 44 0.00119 - 45 0.00119 - 46 0.00134 - 47 0.00134 - - 73 320 12 0 - 0 0.025 - 2 0.0125 - 12 0.0125 - 21 0.00313 - 26 0.00313 - 29 0.00625 - 40 0.669 - 41 0.216 - 42 0.0406 - 43 0.00625 - 44 0.00313 - 47 0.00313 - - 74 14 2 0 - 4 0.0714 - 41 0.929 - - 64 690 9 3 - 2 0.281 - 7 0.00145 - 35 0.00145 - 40 0.432 - 41 0.243 - 42 0.0348 - 43 0.00145 - 44 0.00145 - 46 0.0029 - - 2 306 6 0 - 7 0.00327 - 40 0.892 - 41 0.0882 - 42 0.0098 - 43 0.00327 - 44 0.00327 - - 42 7 2 0 - 40 0.429 - 42 0.571 - - 47 337 5 0 - 2 0.561 - 35 0.00297 - 41 0.38 - 42 0.0504 - 46 0.00593 - - 65 1 1 0 - 47 1 - - 66 76 6 0 - 2 0.0263 - 4 0.0132 - 34 0.0132 - 40 0.697 - 41 0.237 - 42 0.0132 - - 67 2 2 0 - 40 0.5 - 47 0.5 - - 70 36 7 0 - 4 0.417 - 9 0.0278 - 14 0.0278 - 15 0.0278 - 19 0.444 - 20 0.0278 - 26 0.0278 - - 71 1951 27 2 - 0 0.000513 - 3 0.00718 - 4 0.281 - 5 0.0118 - 7 0.00923 - 8 0.0492 - 9 0.00154 - 10 0.00205 - 13 0.063 - 14 0.0866 - 15 0.121 - 16 0.00154 - 17 0.00205 - 19 0.255 - 20 0.0297 - 21 0.0128 - 26 0.0308 - 28 0.000513 - 29 0.00103 - 30 0.0118 - 31 0.00923 - 34 0.000513 - 35 0.000513 - 39 0.000513 - 40 0.000513 - 41 0.00871 - 45 0.00154 - - 2 1 1 0 - 28 1 - - 21 5 4 0 - 4 0.2 - 8 0.2 - 19 0.4 - 31 0.2 - - 72 6756 35 3 - 0 0.274 - 2 0.000296 - 3 0.00074 - 4 0.0333 - 5 0.000148 - 7 0.00873 - 8 0.00784 - 9 0.000444 - 10 0.000888 - 12 0.106 - 13 0.00562 - 14 0.00977 - 15 0.0255 - 16 0.000148 - 17 0.000148 - 18 0.000296 - 19 0.0598 - 20 0.0037 - 21 0.0465 - 22 0.000444 - 23 0.000148 - 26 0.00296 - 28 0.00252 - 29 0.172 - 30 0.000296 - 31 0.00237 - 32 0.083 - 33 0.141 - 34 0.000296 - 40 0.000148 - 41 0.00918 - 42 0.000296 - 43 0.000296 - 44 0.000296 - 45 0.000888 - - 44 2 1 0 - 43 1 - - 49 7 4 0 - 0 0.143 - 4 0.143 - 15 0.143 - 19 0.571 - - 60 3 2 0 - 4 0.667 - 8 0.333 - - 73 321 15 0 - 0 0.00623 - 3 0.0654 - 4 0.249 - 5 0.0187 - 8 0.0312 - 13 0.0623 - 14 0.112 - 15 0.159 - 16 0.00312 - 19 0.249 - 20 0.0125 - 21 0.00312 - 26 0.0156 - 39 0.00935 - 41 0.00312 - -65 580 13 7 - 2 0.00862 - 4 0.0069 - 19 0.00345 - 29 0.0069 - 30 0.00345 - 33 0.00345 - 37 0.00172 - 40 0.372 - 41 0.0069 - 42 0.0138 - 43 0.00172 - 46 0.0914 - 47 0.479 - - 2 1 1 0 - 37 1 - - 40 158 6 1 - 4 0.00633 - 41 0.00633 - 42 0.00633 - 43 0.00633 - 46 0.215 - 47 0.759 - - 72 1 1 0 - 42 1 - - 46 19 5 0 - 19 0.0526 - 29 0.105 - 33 0.0526 - 46 0.0526 - 47 0.737 - - 47 198 11 3 - 2 0.0101 - 4 0.0101 - 19 0.00505 - 29 0.0101 - 30 0.00505 - 33 0.00505 - 40 0.146 - 41 0.0101 - 42 0.0101 - 46 0.0859 - 47 0.702 - - 40 139 5 0 - 4 0.00719 - 41 0.00719 - 42 0.00719 - 46 0.115 - 47 0.863 - - 46 18 4 0 - 19 0.0556 - 29 0.111 - 33 0.0556 - 47 0.778 - - 67 32 7 0 - 2 0.0625 - 4 0.0312 - 30 0.0312 - 40 0.781 - 41 0.0312 - 42 0.0312 - 46 0.0312 - - 62 6 2 0 - 40 0.833 - 42 0.167 - - 65 2 2 0 - 2 0.5 - 40 0.5 - - 67 184 7 0 - 2 0.0109 - 4 0.00543 - 30 0.00543 - 40 0.946 - 41 0.00543 - 42 0.0217 - 46 0.00543 - -66 8140 31 21 - 0 0.00123 - 2 0.00147 - 3 0.00909 - 4 0.0339 - 5 0.000246 - 7 0.00823 - 8 0.0043 - 9 0.000246 - 13 0.00799 - 14 0.00381 - 15 0.177 - 16 0.000123 - 17 0.000123 - 19 0.00332 - 20 0.00209 - 21 0.00209 - 26 0.00135 - 30 0.00455 - 31 0.000369 - 34 0.000246 - 35 0.000369 - 37 0.000614 - 39 0.000123 - 40 0.239 - 41 0.0378 - 42 0.0108 - 43 0.000123 - 44 0.000123 - 45 0.00639 - 46 0.00541 - 47 0.438 - - 0 38 10 0 - 4 0.263 - 8 0.0789 - 13 0.0789 - 14 0.0526 - 15 0.316 - 17 0.0263 - 19 0.0789 - 20 0.0526 - 21 0.0263 - 31 0.0263 - - 2 4 4 0 - 0 0.25 - 20 0.25 - 21 0.25 - 30 0.25 - - 12 3 3 0 - 4 0.333 - 19 0.333 - 20 0.333 - - 28 1 1 0 - 3 1 - - 29 3 3 0 - 4 0.333 - 13 0.333 - 42 0.333 - - 32 1 1 0 - 13 1 - - 33 3 3 0 - 4 0.333 - 13 0.333 - 15 0.333 - - 40 1764 4 2 - 43 0.000567 - 45 0.0034 - 46 0.0227 - 47 0.973 - - 55 1602 4 0 - 43 0.000624 - 45 0.00375 - 46 0.00936 - 47 0.986 - - 62 82 2 0 - 46 0.293 - 47 0.707 - - 41 62 7 1 - 2 0.0484 - 4 0.0161 - 7 0.194 - 13 0.0161 - 21 0.0484 - 30 0.516 - 45 0.161 - - 64 2 1 0 - 21 1 - - 42 53 8 0 - 3 0.0189 - 4 0.0189 - 15 0.0189 - 21 0.0377 - 31 0.0189 - 40 0.0755 - 45 0.585 - 47 0.226 - - 45 45 9 2 - 4 0.178 - 5 0.0444 - 7 0.111 - 13 0.0444 - 19 0.378 - 35 0.0444 - 37 0.0444 - 44 0.0222 - 47 0.133 - - 40 6 1 0 - 47 1 - - 42 28 6 0 - 4 0.25 - 7 0.143 - 13 0.0357 - 19 0.464 - 35 0.0357 - 37 0.0714 - - 46 40 1 0 - 47 1 - - 47 2027 11 8 - 0 0.00148 - 2 0.00197 - 4 0.000493 - 19 0.000987 - 34 0.000493 - 40 0.0449 - 41 0.0607 - 42 0.00839 - 45 0.000493 - 46 0.000987 - 47 0.879 - - 40 1717 1 0 - 47 1 - - 46 40 1 0 - 47 1 - - 48 4 2 0 - 40 0.5 - 41 0.5 - - 55 174 9 0 - 0 0.0115 - 2 0.00575 - 19 0.0115 - 40 0.333 - 41 0.546 - 42 0.046 - 45 0.00575 - 46 0.0115 - 47 0.0287 - - 57 11 4 0 - 0 0.0909 - 40 0.182 - 41 0.364 - 42 0.364 - - 64 3 2 0 - 40 0.333 - 42 0.667 - - 66 1 1 0 - 42 1 - - 69 55 6 0 - 2 0.0545 - 4 0.0182 - 34 0.0182 - 40 0.491 - 41 0.382 - 42 0.0364 - - 48 6 3 0 - 7 0.167 - 40 0.5 - 41 0.333 - - 49 5 4 0 - 0 0.4 - 13 0.2 - 40 0.2 - 41 0.2 - - 55 1940 18 5 - 0 0.00103 - 2 0.000515 - 4 0.00258 - 7 0.017 - 8 0.00206 - 13 0.000515 - 14 0.000515 - 15 0.000515 - 19 0.00103 - 21 0.00206 - 26 0.00464 - 30 0.00103 - 40 0.856 - 41 0.0778 - 42 0.0278 - 45 0.00155 - 46 0.00103 - 47 0.00258 - - 0 38 7 0 - 2 0.0263 - 4 0.132 - 8 0.105 - 14 0.0263 - 21 0.0526 - 40 0.553 - 41 0.105 - - 12 3 3 0 - 21 0.333 - 40 0.333 - 41 0.333 - - 47 5 1 0 - 26 1 - - 55 8 3 0 - 7 0.25 - 40 0.625 - 41 0.125 - - 69 1873 14 0 - 0 0.00107 - 7 0.0166 - 13 0.000534 - 15 0.000534 - 19 0.00107 - 21 0.000534 - 26 0.0016 - 30 0.00107 - 40 0.868 - 41 0.0758 - 42 0.0278 - 45 0.0016 - 46 0.00107 - 47 0.00267 - - 57 52 9 3 - 0 0.0192 - 4 0.0385 - 7 0.154 - 8 0.0192 - 13 0.0192 - 21 0.0192 - 40 0.538 - 41 0.115 - 42 0.0769 - - 41 9 2 0 - 40 0.667 - 41 0.333 - - 55 34 8 0 - 0 0.0294 - 4 0.0588 - 7 0.235 - 8 0.0294 - 13 0.0294 - 21 0.0294 - 40 0.529 - 41 0.0588 - - 57 8 3 0 - 40 0.375 - 41 0.125 - 42 0.5 - - 62 85 2 0 - 40 0.976 - 42 0.0235 - - 64 28 3 1 - 40 0.786 - 41 0.0714 - 42 0.143 - - 47 3 2 0 - 41 0.667 - 42 0.333 - - 66 6 4 0 - 2 0.167 - 40 0.333 - 41 0.167 - 42 0.333 - - 69 1970 25 11 - 0 0.000508 - 2 0.00152 - 3 0.0365 - 4 0.124 - 7 0.00406 - 8 0.0137 - 9 0.00102 - 13 0.0269 - 14 0.0142 - 15 0.722 - 16 0.000508 - 19 0.00102 - 20 0.0066 - 21 0.00254 - 26 0.00102 - 30 0.00102 - 31 0.000508 - 34 0.000508 - 35 0.000508 - 37 0.00152 - 39 0.000508 - 40 0.0264 - 41 0.0107 - 42 0.00203 - 45 0.000508 - - 21 4 3 0 - 3 0.25 - 4 0.25 - 40 0.5 - - 41 231 7 0 - 3 0.0216 - 4 0.104 - 8 0.013 - 13 0.0346 - 14 0.0346 - 15 0.788 - 16 0.00433 - - 46 1168 6 0 - 3 0.0402 - 4 0.0753 - 8 0.00856 - 13 0.018 - 15 0.854 - 20 0.00342 - - 47 152 13 0 - 0 0.00658 - 3 0.0263 - 4 0.178 - 8 0.0197 - 13 0.0592 - 14 0.0197 - 15 0.605 - 19 0.0132 - 20 0.0395 - 21 0.00658 - 30 0.0132 - 31 0.00658 - 42 0.00658 - - 48 25 7 0 - 3 0.04 - 4 0.56 - 7 0.08 - 8 0.08 - 15 0.16 - 20 0.04 - 35 0.04 - - 49 54 9 0 - 3 0.037 - 4 0.463 - 8 0.037 - 9 0.0185 - 13 0.185 - 14 0.0741 - 15 0.0926 - 21 0.037 - 37 0.0556 - - 55 82 7 0 - 2 0.0366 - 4 0.0488 - 7 0.0122 - 34 0.0122 - 40 0.61 - 41 0.256 - 42 0.0244 - - 57 76 11 0 - 3 0.0526 - 4 0.382 - 7 0.0526 - 8 0.0132 - 13 0.0263 - 14 0.118 - 15 0.289 - 20 0.0132 - 21 0.0263 - 39 0.0132 - 45 0.0132 - - 58 6 4 0 - 4 0.333 - 7 0.167 - 15 0.167 - 26 0.333 - - 62 111 5 0 - 3 0.0541 - 4 0.045 - 8 0.00901 - 13 0.018 - 15 0.874 - - 69 54 9 0 - 3 0.0185 - 4 0.407 - 8 0.0926 - 9 0.0185 - 13 0.0185 - 14 0.0741 - 15 0.333 - 20 0.0185 - 42 0.0185 - -67 1431 33 20 - 0 0.0314 - 1 0.000699 - 2 0.00699 - 4 0.0664 - 5 0.0021 - 7 0.0175 - 8 0.0133 - 12 0.000699 - 13 0.0175 - 14 0.00559 - 15 0.0182 - 16 0.0014 - 17 0.000699 - 19 0.0783 - 20 0.000699 - 21 0.051 - 24 0.000699 - 26 0.0021 - 28 0.0783 - 29 0.0014 - 30 0.0168 - 31 0.00839 - 32 0.0028 - 34 0.000699 - 35 0.0028 - 37 0.0014 - 40 0.366 - 41 0.0175 - 42 0.00978 - 43 0.0028 - 45 0.0014 - 46 0.0266 - 47 0.148 - - 0 167 12 1 - 4 0.299 - 5 0.018 - 7 0.024 - 8 0.018 - 13 0.0599 - 14 0.018 - 15 0.108 - 16 0.00599 - 17 0.00599 - 19 0.311 - 21 0.108 - 30 0.024 - - 2 8 3 0 - 13 0.125 - 15 0.125 - 19 0.75 - - 2 5 4 0 - 0 0.4 - 12 0.2 - 13 0.2 - 35 0.2 - - 12 94 11 0 - 0 0.0426 - 4 0.202 - 8 0.0106 - 13 0.0319 - 14 0.0319 - 15 0.0532 - 19 0.447 - 20 0.0106 - 21 0.106 - 28 0.0532 - 45 0.0106 - - 14 2 1 0 - 4 1 - - 21 28 6 1 - 4 0.286 - 13 0.0714 - 15 0.0357 - 16 0.0357 - 19 0.536 - 30 0.0357 - - 55 2 2 0 - 15 0.5 - 30 0.5 - - 40 130 8 1 - 0 0.00769 - 4 0.00769 - 35 0.00769 - 40 0.0231 - 41 0.0154 - 42 0.0154 - 46 0.146 - 47 0.777 - - 40 3 2 0 - 40 0.667 - 47 0.333 - - 41 11 6 0 - 0 0.0909 - 2 0.273 - 4 0.0909 - 7 0.273 - 21 0.0909 - 28 0.182 - - 45 2 2 0 - 15 0.5 - 37 0.5 - - 46 8 4 0 - 7 0.125 - 28 0.125 - 43 0.125 - 47 0.625 - - 47 342 12 7 - 0 0.00292 - 2 0.00877 - 4 0.00292 - 7 0.00585 - 30 0.00292 - 35 0.00292 - 40 0.576 - 41 0.0175 - 42 0.0205 - 43 0.00585 - 46 0.0439 - 47 0.31 - - 40 120 7 0 - 0 0.00833 - 4 0.00833 - 35 0.00833 - 41 0.0167 - 42 0.0167 - 46 0.1 - 47 0.842 - - 46 7 3 0 - 7 0.143 - 43 0.143 - 47 0.714 - - 48 8 2 0 - 40 0.875 - 41 0.125 - - 55 14 3 0 - 40 0.786 - 42 0.0714 - 46 0.143 - - 57 8 2 0 - 7 0.125 - 40 0.875 - - 69 176 5 0 - 2 0.017 - 30 0.00568 - 40 0.943 - 41 0.017 - 42 0.017 - - 73 1 1 0 - 43 1 - - 48 23 5 0 - 7 0.13 - 21 0.0435 - 26 0.0435 - 40 0.739 - 41 0.0435 - - 49 29 11 0 - 0 0.138 - 4 0.069 - 7 0.0345 - 8 0.069 - 13 0.0345 - 21 0.0345 - 28 0.414 - 29 0.0345 - 30 0.0345 - 40 0.103 - 41 0.0345 - - 55 278 19 8 - 0 0.112 - 4 0.036 - 7 0.0324 - 8 0.0468 - 13 0.0288 - 14 0.00719 - 21 0.144 - 24 0.0036 - 26 0.00719 - 28 0.331 - 29 0.0036 - 30 0.0576 - 31 0.0432 - 32 0.0144 - 37 0.0036 - 40 0.0935 - 41 0.0216 - 42 0.0036 - 46 0.0108 - - 0 145 17 0 - 0 0.0621 - 4 0.0621 - 7 0.0414 - 8 0.0552 - 13 0.0414 - 21 0.193 - 24 0.0069 - 26 0.0138 - 28 0.248 - 29 0.0069 - 30 0.11 - 31 0.0828 - 32 0.0207 - 37 0.0069 - 40 0.0345 - 41 0.0069 - 42 0.0069 - - 12 75 6 0 - 0 0.253 - 21 0.107 - 28 0.587 - 32 0.0133 - 40 0.0133 - 41 0.0267 - - 14 2 1 0 - 13 1 - - 21 27 8 0 - 0 0.111 - 4 0.037 - 8 0.148 - 14 0.037 - 21 0.0741 - 28 0.444 - 40 0.111 - 41 0.037 - - 45 1 1 0 - 46 1 - - 49 4 3 0 - 21 0.25 - 40 0.5 - 41 0.25 - - 55 16 3 0 - 7 0.0625 - 40 0.812 - 46 0.125 - - 69 5 5 0 - 7 0.2 - 8 0.2 - 14 0.2 - 21 0.2 - 41 0.2 - - 57 11 3 0 - 7 0.0909 - 40 0.818 - 41 0.0909 - - 58 2 2 0 - 34 0.5 - 45 0.5 - - 62 6 3 0 - 4 0.167 - 40 0.667 - 41 0.167 - - 64 10 2 0 - 40 0.9 - 41 0.1 - - 67 13 7 1 - 0 0.0769 - 2 0.0769 - 7 0.0769 - 35 0.0769 - 40 0.385 - 41 0.231 - 46 0.0769 - - 47 5 3 0 - 0 0.2 - 2 0.2 - 41 0.6 - - 69 267 9 1 - 1 0.00375 - 2 0.0112 - 15 0.00375 - 19 0.0112 - 21 0.00749 - 30 0.00375 - 40 0.936 - 41 0.0112 - 42 0.0112 - - 47 56 8 0 - 1 0.0179 - 2 0.0179 - 15 0.0179 - 19 0.0357 - 21 0.0357 - 30 0.0179 - 40 0.821 - 42 0.0357 - - 73 1 1 0 - 43 1 - -68 1301 34 22 - 0 0.00692 - 2 0.00692 - 3 0.000769 - 4 0.0208 - 6 0.000769 - 7 0.0653 - 8 0.0507 - 9 0.00922 - 12 0.000769 - 13 0.119 - 14 0.175 - 15 0.00999 - 16 0.00154 - 19 0.00231 - 20 0.00154 - 21 0.0515 - 22 0.00384 - 23 0.000769 - 26 0.0146 - 29 0.00461 - 30 0.0123 - 31 0.0138 - 32 0.00461 - 34 0.000769 - 35 0.000769 - 36 0.000769 - 37 0.00461 - 40 0.271 - 41 0.0953 - 42 0.0238 - 44 0.000769 - 45 0.00231 - 46 0.00384 - 47 0.0184 - - 2 253 25 10 - 0 0.00395 - 3 0.00395 - 4 0.0553 - 6 0.00395 - 7 0.233 - 8 0.103 - 9 0.0474 - 12 0.00395 - 13 0.0356 - 15 0.00395 - 19 0.00395 - 20 0.00791 - 21 0.241 - 22 0.0198 - 23 0.00395 - 26 0.0474 - 29 0.00791 - 30 0.0593 - 31 0.0593 - 35 0.00395 - 36 0.00395 - 37 0.0237 - 41 0.00791 - 44 0.00395 - 45 0.0119 - - 15 2 1 0 - 8 1 - - 41 45 16 0 - 0 0.0222 - 3 0.0222 - 4 0.0667 - 6 0.0222 - 7 0.2 - 8 0.0889 - 9 0.0222 - 13 0.0444 - 21 0.2 - 22 0.0444 - 26 0.0667 - 29 0.0444 - 30 0.0222 - 31 0.0667 - 36 0.0222 - 37 0.0444 - - 46 3 2 0 - 8 0.333 - 45 0.667 - - 48 47 10 0 - 4 0.128 - 7 0.213 - 8 0.0426 - 12 0.0213 - 13 0.0426 - 21 0.234 - 30 0.128 - 31 0.149 - 41 0.0213 - 45 0.0213 - - 49 27 7 0 - 7 0.63 - 8 0.037 - 15 0.037 - 20 0.037 - 21 0.111 - 23 0.037 - 30 0.111 - - 55 47 14 0 - 4 0.0426 - 7 0.106 - 8 0.0851 - 9 0.213 - 13 0.0213 - 19 0.0213 - 21 0.298 - 22 0.0213 - 26 0.0638 - 30 0.0213 - 31 0.0426 - 35 0.0213 - 37 0.0213 - 41 0.0213 - - 57 51 12 0 - 4 0.0588 - 7 0.157 - 8 0.0196 - 9 0.0196 - 13 0.0588 - 21 0.373 - 22 0.0196 - 26 0.118 - 30 0.0784 - 31 0.0588 - 37 0.0196 - 44 0.0196 - - 62 7 2 0 - 7 0.857 - 21 0.143 - - 66 1 1 0 - 20 1 - - 69 15 5 0 - 7 0.0667 - 8 0.6 - 13 0.0667 - 21 0.2 - 22 0.0667 - - 8 111 5 0 - 8 0.117 - 13 0.306 - 14 0.559 - 16 0.00901 - 42 0.00901 - - 13 51 3 0 - 13 0.333 - 14 0.627 - 41 0.0392 - - 14 13 2 0 - 13 0.538 - 14 0.462 - - 15 18 4 0 - 8 0.167 - 13 0.222 - 14 0.389 - 15 0.222 - - 21 9 5 0 - 4 0.222 - 7 0.222 - 8 0.333 - 21 0.111 - 26 0.111 - - 30 4 1 0 - 13 1 - - 40 12 2 0 - 46 0.0833 - 47 0.917 - - 41 10 8 0 - 2 0.1 - 4 0.1 - 7 0.1 - 8 0.1 - 13 0.2 - 19 0.1 - 21 0.2 - 31 0.1 - - 42 2 2 0 - 34 0.5 - 47 0.5 - - 45 3 3 0 - 4 0.333 - 8 0.333 - 30 0.333 - - 46 1 1 0 - 46 1 - - 47 494 20 17 - 0 0.0081 - 2 0.0081 - 4 0.0081 - 7 0.0142 - 8 0.0344 - 13 0.148 - 14 0.231 - 15 0.0101 - 16 0.00202 - 19 0.00202 - 21 0.00202 - 26 0.00607 - 29 0.00405 - 31 0.00202 - 32 0.00607 - 40 0.344 - 41 0.113 - 42 0.0283 - 46 0.00405 - 47 0.0243 - - 7 1 1 0 - 4 1 - - 8 110 4 0 - 8 0.118 - 13 0.309 - 14 0.564 - 16 0.00909 - - 13 49 2 0 - 13 0.347 - 14 0.653 - - 14 13 2 0 - 13 0.538 - 14 0.462 - - 15 18 4 0 - 8 0.167 - 13 0.222 - 14 0.389 - 15 0.222 - - 30 4 1 0 - 13 1 - - 40 12 2 0 - 46 0.0833 - 47 0.917 - - 41 6 5 0 - 4 0.167 - 7 0.167 - 13 0.333 - 19 0.167 - 31 0.167 - - 46 1 1 0 - 46 1 - - 48 45 9 0 - 2 0.0444 - 7 0.0889 - 13 0.0444 - 14 0.0444 - 26 0.0222 - 32 0.0444 - 40 0.533 - 41 0.111 - 42 0.0667 - - 49 46 7 0 - 0 0.0435 - 2 0.0217 - 7 0.0435 - 26 0.0217 - 32 0.0217 - 40 0.63 - 41 0.217 - - 55 38 6 0 - 14 0.0526 - 15 0.0263 - 29 0.0263 - 40 0.605 - 41 0.211 - 42 0.0789 - - 57 69 7 0 - 0 0.0145 - 2 0.0145 - 21 0.0145 - 29 0.0145 - 40 0.652 - 41 0.232 - 42 0.058 - - 62 17 4 0 - 4 0.0588 - 40 0.647 - 41 0.235 - 42 0.0588 - - 64 21 3 0 - 40 0.714 - 41 0.238 - 42 0.0476 - - 69 34 6 0 - 0 0.0294 - 13 0.0588 - 26 0.0294 - 40 0.618 - 41 0.206 - 42 0.0588 - - 71 1 1 0 - 4 1 - - 48 50 10 0 - 2 0.04 - 4 0.02 - 7 0.1 - 13 0.04 - 14 0.04 - 26 0.02 - 32 0.04 - 40 0.48 - 41 0.16 - 42 0.06 - - 49 57 10 0 - 0 0.0351 - 2 0.0175 - 4 0.0175 - 7 0.14 - 8 0.0351 - 26 0.0175 - 31 0.0175 - 32 0.0175 - 40 0.509 - 41 0.193 - - 55 48 6 0 - 14 0.0417 - 15 0.0417 - 29 0.0208 - 40 0.583 - 41 0.229 - 42 0.0833 - - 57 70 7 0 - 0 0.0143 - 2 0.0143 - 21 0.0143 - 29 0.0143 - 40 0.643 - 41 0.243 - 42 0.0571 - - 58 3 2 0 - 7 0.667 - 14 0.333 - - 62 21 4 0 - 4 0.0476 - 40 0.714 - 41 0.19 - 42 0.0476 - - 64 23 4 0 - 7 0.0435 - 40 0.696 - 41 0.217 - 42 0.0435 - - 65 1 1 0 - 46 1 - - 69 35 7 0 - 0 0.0286 - 13 0.0571 - 15 0.0286 - 26 0.0286 - 40 0.6 - 41 0.2 - 42 0.0571 - -69 482293 48 46 - 0 0.0224 - 1 0.00057 - 2 0.0308 - 3 0.00808 - 4 0.0469 - 5 0.000257 - 6 4.15e-05 - 7 0.0864 - 8 0.0202 - 9 0.00219 - 10 0.000199 - 11 2.07e-06 - 12 0.00331 - 13 0.0122 - 14 0.00875 - 15 0.014 - 16 8.5e-05 - 17 0.000261 - 18 8.29e-06 - 19 0.00971 - 20 0.00668 - 21 0.0342 - 22 0.00161 - 23 0.000114 - 24 0.00542 - 25 4.15e-06 - 26 0.0285 - 27 5.81e-05 - 28 0.0407 - 29 0.00358 - 30 0.0133 - 31 0.0242 - 32 0.000977 - 33 0.0015 - 34 0.000506 - 35 0.000666 - 36 4.15e-06 - 37 0.00212 - 38 2.28e-05 - 39 0.00219 - 40 0.418 - 41 0.127 - 42 0.0138 - 43 0.00104 - 44 0.00067 - 45 0.00305 - 46 0.0022 - 47 0.00131 - - 0 33826 40 4 - 0 0.0458 - 1 0.00556 - 2 0.000887 - 3 0.0145 - 4 0.115 - 5 5.91e-05 - 7 0.0456 - 8 0.1 - 9 0.00955 - 10 0.000237 - 12 5.91e-05 - 13 0.021 - 14 0.00958 - 15 0.00695 - 16 0.000118 - 17 0.000562 - 19 0.00251 - 20 0.00364 - 21 0.192 - 22 0.00514 - 23 0.000828 - 24 0.000769 - 26 0.0203 - 27 2.96e-05 - 28 0.00304 - 29 0.00263 - 30 0.0892 - 31 0.274 - 33 8.87e-05 - 34 0.000148 - 35 0.00106 - 37 0.00154 - 39 0.00585 - 40 0.00411 - 41 0.00532 - 42 0.00101 - 43 0.000148 - 44 0.000384 - 45 0.0103 - 46 0.000148 - - 44 1 1 0 - 43 1 - - 45 6 4 0 - 4 0.167 - 8 0.167 - 21 0.5 - 26 0.167 - - 49 55 14 0 - 0 0.0364 - 3 0.0909 - 4 0.127 - 8 0.0727 - 9 0.0364 - 13 0.0545 - 14 0.0182 - 15 0.0182 - 21 0.164 - 26 0.0364 - 30 0.0909 - 31 0.218 - 41 0.0182 - 42 0.0182 - - 57 7 5 0 - 8 0.143 - 13 0.143 - 21 0.429 - 30 0.143 - 31 0.143 - - 1 555 21 1 - 0 0.027 - 3 0.00901 - 4 0.11 - 7 0.0126 - 8 0.0613 - 9 0.00721 - 13 0.0342 - 14 0.00901 - 15 0.00721 - 17 0.0018 - 19 0.0036 - 20 0.00541 - 21 0.0541 - 22 0.0018 - 26 0.0234 - 28 0.0018 - 29 0.0396 - 31 0.577 - 35 0.0018 - 40 0.0018 - 45 0.0108 - - 49 6 3 0 - 0 0.167 - 3 0.167 - 31 0.667 - - 2 3483 26 11 - 0 0.152 - 1 0.00258 - 3 0.00632 - 4 0.00718 - 7 0.0135 - 8 0.0126 - 9 0.00201 - 12 0.0617 - 13 0.00689 - 14 0.00402 - 15 0.00144 - 20 0.00172 - 21 0.0939 - 22 0.00172 - 23 0.000287 - 26 0.0284 - 28 0.159 - 29 0.194 - 30 0.0764 - 31 0.0485 - 32 0.0356 - 33 0.0744 - 39 0.00172 - 41 0.0089 - 42 0.000574 - 45 0.00488 - - 0 2 2 0 - 4 0.5 - 30 0.5 - - 28 1 1 0 - 13 1 - - 31 1 1 0 - 8 1 - - 41 654 21 0 - 0 0.19 - 1 0.00306 - 3 0.00765 - 4 0.00917 - 7 0.0291 - 8 0.00612 - 9 0.00153 - 12 0.0765 - 13 0.00306 - 14 0.00306 - 21 0.15 - 22 0.00459 - 26 0.0352 - 28 0.0703 - 29 0.226 - 30 0.052 - 31 0.0138 - 32 0.0291 - 33 0.081 - 41 0.00306 - 45 0.00612 - - 42 39 13 0 - 0 0.103 - 4 0.0256 - 7 0.0769 - 12 0.103 - 21 0.154 - 26 0.0256 - 28 0.128 - 29 0.154 - 30 0.0513 - 31 0.0513 - 32 0.0513 - 33 0.0256 - 41 0.0513 - - 46 38 9 0 - 0 0.132 - 12 0.0789 - 21 0.105 - 28 0.105 - 29 0.289 - 30 0.0263 - 31 0.0526 - 33 0.158 - 45 0.0526 - - 47 1 1 0 - 4 1 - - 55 4 4 0 - 8 0.25 - 21 0.25 - 29 0.25 - 30 0.25 - - 57 2 2 0 - 3 0.5 - 7 0.5 - - 58 5 5 0 - 12 0.2 - 21 0.2 - 28 0.2 - 30 0.2 - 45 0.2 - - 69 2736 26 0 - 0 0.144 - 1 0.00256 - 3 0.00585 - 4 0.00585 - 7 0.00877 - 8 0.0139 - 9 0.00219 - 12 0.0574 - 13 0.00768 - 14 0.00439 - 15 0.00183 - 20 0.00219 - 21 0.0793 - 22 0.0011 - 23 0.000365 - 26 0.0274 - 28 0.182 - 29 0.186 - 30 0.0826 - 31 0.057 - 32 0.0376 - 33 0.0727 - 39 0.00219 - 41 0.00987 - 42 0.000731 - 45 0.00365 - - 4 42 14 2 - 0 0.0238 - 4 0.0238 - 6 0.0238 - 7 0.143 - 8 0.0952 - 13 0.0238 - 16 0.0238 - 21 0.0952 - 28 0.0952 - 29 0.0952 - 30 0.0952 - 31 0.214 - 32 0.0238 - 45 0.0238 - - 0 34 12 0 - 0 0.0294 - 4 0.0294 - 6 0.0294 - 7 0.118 - 8 0.118 - 13 0.0294 - 16 0.0294 - 21 0.0882 - 29 0.118 - 30 0.118 - 31 0.265 - 45 0.0294 - - 12 4 2 0 - 28 0.75 - 32 0.25 - - 7 36 11 4 - 4 0.139 - 7 0.0556 - 8 0.0833 - 13 0.0278 - 14 0.0278 - 19 0.0278 - 20 0.0278 - 26 0.472 - 28 0.0556 - 37 0.0278 - 41 0.0556 - - 29 2 2 0 - 8 0.5 - 13 0.5 - - 30 3 3 0 - 4 0.333 - 7 0.333 - 41 0.333 - - 47 23 5 0 - 4 0.13 - 8 0.087 - 14 0.0435 - 19 0.0435 - 26 0.696 - - 69 3 2 0 - 28 0.667 - 37 0.333 - - 8 152 17 2 - 2 0.0329 - 3 0.0132 - 4 0.0329 - 7 0.395 - 8 0.0329 - 13 0.0658 - 14 0.0724 - 15 0.0197 - 20 0.0197 - 21 0.0395 - 22 0.00658 - 24 0.0132 - 26 0.0855 - 32 0.00658 - 40 0.125 - 41 0.0263 - 46 0.0132 - - 45 2 1 0 - 46 1 - - 49 22 7 0 - 4 0.0455 - 7 0.5 - 14 0.0455 - 21 0.0455 - 26 0.0909 - 40 0.227 - 41 0.0455 - - 12 9666 21 2 - 0 0.291 - 2 0.000724 - 4 0.000828 - 7 0.00197 - 12 0.000207 - 13 0.00031 - 21 0.171 - 22 0.00124 - 23 0.000207 - 26 0.00331 - 28 0.517 - 29 0.000621 - 31 0.000517 - 32 0.000103 - 40 0.00207 - 41 0.00331 - 42 0.000724 - 43 0.000103 - 44 0.000207 - 45 0.00455 - 46 0.000207 - - 41 4 1 0 - 0 1 - - 44 1 1 0 - 43 1 - - 13 297 26 2 - 0 0.0101 - 2 0.0168 - 3 0.0135 - 4 0.0976 - 7 0.256 - 8 0.0168 - 9 0.00337 - 12 0.0101 - 13 0.0404 - 14 0.111 - 15 0.0202 - 19 0.00673 - 20 0.0101 - 21 0.0438 - 22 0.00337 - 24 0.0707 - 26 0.0606 - 29 0.00337 - 30 0.0135 - 31 0.00337 - 39 0.00337 - 40 0.0707 - 41 0.0909 - 42 0.0135 - 45 0.00337 - 46 0.00673 - - 2 3 3 0 - 7 0.333 - 13 0.333 - 46 0.333 - - 45 1 1 0 - 46 1 - - 14 122 18 0 - 2 0.0164 - 4 0.082 - 7 0.197 - 8 0.0328 - 13 0.0246 - 14 0.082 - 15 0.0164 - 19 0.0082 - 21 0.0246 - 24 0.041 - 26 0.246 - 30 0.0246 - 31 0.0082 - 32 0.0082 - 34 0.0082 - 37 0.0164 - 40 0.0984 - 41 0.0656 - - 15 35 10 0 - 4 0.114 - 7 0.143 - 15 0.514 - 19 0.0286 - 21 0.0286 - 24 0.0286 - 26 0.0286 - 32 0.0286 - 42 0.0286 - 46 0.0571 - - 18 27 10 0 - 3 0.037 - 7 0.185 - 8 0.296 - 9 0.148 - 13 0.0741 - 14 0.0741 - 15 0.037 - 20 0.0741 - 37 0.037 - 45 0.037 - - 21 4005 31 12 - 0 0.146 - 1 0.0035 - 2 0.00025 - 3 0.0015 - 4 0.0442 - 7 0.0215 - 8 0.0662 - 9 0.00025 - 12 0.000749 - 13 0.0115 - 14 0.00175 - 15 0.00125 - 20 0.00225 - 21 0.0969 - 24 0.000499 - 26 0.00449 - 28 0.405 - 29 0.0135 - 30 0.04 - 31 0.118 - 32 0.000749 - 33 0.000749 - 35 0.000749 - 37 0.000749 - 40 0.00874 - 41 0.00524 - 42 0.00125 - 43 0.00025 - 45 0.002 - 46 0.00025 - 47 0.00025 - - 0 2915 27 0 - 0 0.0803 - 1 0.0048 - 2 0.000343 - 3 0.00172 - 4 0.0583 - 7 0.0274 - 8 0.0864 - 9 0.000343 - 13 0.0141 - 14 0.0024 - 15 0.00172 - 20 0.00309 - 21 0.113 - 24 0.000343 - 26 0.0024 - 28 0.352 - 29 0.0151 - 30 0.0528 - 31 0.162 - 32 0.000343 - 35 0.00103 - 37 0.00103 - 40 0.0103 - 41 0.00515 - 42 0.00137 - 43 0.000343 - 45 0.00172 - - 2 30 12 0 - 0 0.0333 - 4 0.0333 - 8 0.0333 - 12 0.1 - 21 0.0667 - 28 0.267 - 29 0.2 - 30 0.0667 - 31 0.0333 - 32 0.0333 - 33 0.0667 - 41 0.0667 - - 12 987 12 0 - 0 0.347 - 3 0.00101 - 4 0.00101 - 7 0.00304 - 21 0.0466 - 26 0.00101 - 28 0.588 - 40 0.00405 - 41 0.00405 - 42 0.00101 - 45 0.00304 - 46 0.00101 - - 21 3 2 0 - 8 0.667 - 28 0.333 - - 28 1 1 0 - 47 1 - - 32 7 6 0 - 4 0.143 - 13 0.286 - 26 0.143 - 29 0.143 - 30 0.143 - 40 0.143 - - 33 1 1 0 - 13 1 - - 41 20 9 0 - 0 0.05 - 7 0.05 - 13 0.05 - 21 0.15 - 26 0.2 - 28 0.25 - 29 0.15 - 30 0.05 - 33 0.05 - - 42 1 1 0 - 32 1 - - 45 4 2 0 - 8 0.5 - 21 0.5 - - 47 12 7 0 - 0 0.0833 - 4 0.167 - 7 0.0833 - 8 0.0833 - 13 0.0833 - 21 0.0833 - 26 0.417 - - 49 21 8 0 - 0 0.143 - 4 0.0952 - 7 0.0476 - 8 0.333 - 21 0.19 - 24 0.0476 - 30 0.0952 - 31 0.0476 - - 22 5 3 0 - 26 0.2 - 41 0.6 - 42 0.2 - - 25 2 1 0 - 6 1 - - 26 13048 19 0 - 0 0.112 - 1 7.66e-05 - 4 0.000307 - 7 0.000153 - 8 0.000613 - 13 0.0036 - 15 0.000153 - 21 0.0082 - 22 0.00107 - 28 0.867 - 29 0.00023 - 30 0.000153 - 31 0.000153 - 40 0.000996 - 41 0.000536 - 42 7.66e-05 - 44 0.000153 - 45 0.00429 - 46 0.000153 - - 28 20867 44 10 - 0 0.00192 - 1 0.000335 - 2 0.00441 - 3 0.0235 - 4 0.245 - 5 0.000671 - 6 9.58e-05 - 7 0.129 - 8 0.073 - 9 0.0104 - 10 0.000767 - 12 0.000575 - 13 0.0718 - 14 0.0604 - 15 0.0381 - 16 0.000575 - 17 0.00163 - 18 0.000192 - 19 0.0453 - 20 0.054 - 21 0.0454 - 22 0.00407 - 23 9.58e-05 - 24 0.0409 - 26 0.0441 - 27 0.000144 - 28 0.00565 - 30 0.0123 - 31 0.00398 - 33 4.79e-05 - 34 0.000863 - 35 0.0046 - 36 4.79e-05 - 37 0.00666 - 38 0.000144 - 39 0.0102 - 40 0.0288 - 41 0.0185 - 42 0.00259 - 43 0.000192 - 44 0.0012 - 45 0.00474 - 46 0.00264 - 47 0.000144 - - 2 142 19 0 - 3 0.0211 - 4 0.296 - 7 0.0493 - 8 0.0915 - 13 0.0704 - 14 0.12 - 15 0.0282 - 16 0.00704 - 19 0.0563 - 20 0.0423 - 21 0.0211 - 31 0.00704 - 35 0.00704 - 37 0.00704 - 40 0.0634 - 41 0.0704 - 42 0.0211 - 44 0.00704 - 45 0.0141 - - 13 3 2 0 - 4 0.667 - 46 0.333 - - 21 8 7 0 - 4 0.25 - 8 0.125 - 13 0.125 - 19 0.125 - 21 0.125 - 41 0.125 - 42 0.125 - - 42 5 3 0 - 4 0.6 - 14 0.2 - 24 0.2 - - 44 1 1 0 - 43 1 - - 45 34 10 0 - 2 0.0294 - 4 0.0882 - 7 0.0294 - 13 0.0294 - 17 0.0294 - 21 0.118 - 24 0.0294 - 35 0.0294 - 40 0.0294 - 46 0.588 - - 47 20444 44 0 - 0 0.00196 - 1 0.000342 - 2 0.0044 - 3 0.0238 - 4 0.243 - 5 0.000685 - 6 9.78e-05 - 7 0.131 - 8 0.0732 - 9 0.0105 - 10 0.000783 - 12 0.000587 - 13 0.072 - 14 0.0602 - 15 0.038 - 16 0.000538 - 17 0.00161 - 18 0.000196 - 19 0.0453 - 20 0.0539 - 21 0.0458 - 22 0.00406 - 23 9.78e-05 - 24 0.0412 - 26 0.0446 - 27 9.78e-05 - 28 0.00577 - 30 0.0125 - 31 0.00401 - 33 4.89e-05 - 34 0.00088 - 35 0.00445 - 36 4.89e-05 - 37 0.00675 - 38 0.000147 - 39 0.0103 - 40 0.0288 - 41 0.018 - 42 0.00235 - 43 0.000147 - 44 0.00113 - 45 0.0047 - 46 0.00157 - 47 0.000147 - - 49 216 24 0 - 2 0.00463 - 4 0.352 - 7 0.0694 - 8 0.0602 - 9 0.00463 - 13 0.0556 - 14 0.0509 - 15 0.0741 - 19 0.0463 - 20 0.088 - 21 0.0185 - 22 0.00926 - 24 0.0417 - 26 0.0417 - 27 0.00463 - 30 0.00926 - 35 0.0139 - 39 0.00463 - 40 0.00463 - 41 0.0185 - 42 0.00926 - 44 0.00463 - 45 0.00463 - 46 0.00926 - - 50 3 3 0 - 4 0.333 - 40 0.333 - 41 0.333 - - 57 3 3 0 - 3 0.333 - 4 0.333 - 8 0.333 - - 29 21672 44 8 - 0 0.00198 - 1 9.23e-05 - 2 0.0024 - 3 0.0832 - 4 0.195 - 5 0.00157 - 6 4.61e-05 - 7 0.138 - 8 0.0454 - 9 0.00655 - 10 0.00111 - 12 0.000554 - 13 0.0358 - 14 0.0287 - 15 0.0713 - 16 0.000138 - 17 0.000738 - 19 0.0812 - 20 0.0351 - 21 0.0391 - 22 0.00401 - 23 0.000231 - 24 0.0213 - 26 0.072 - 27 0.000138 - 28 0.00263 - 29 0.000277 - 30 0.00992 - 31 0.00291 - 32 4.61e-05 - 33 0.000231 - 34 0.000185 - 35 0.000738 - 37 0.00175 - 38 0.000138 - 39 0.0162 - 40 0.0611 - 41 0.0302 - 42 0.00392 - 43 0.000138 - 44 0.000138 - 45 0.00383 - 46 0.000461 - 47 4.61e-05 - - 2 33 13 0 - 3 0.0606 - 4 0.273 - 7 0.152 - 8 0.0909 - 13 0.0303 - 14 0.0303 - 19 0.0606 - 20 0.0606 - 24 0.0303 - 40 0.0303 - 41 0.121 - 42 0.0303 - 45 0.0303 - - 41 6 6 0 - 4 0.167 - 14 0.167 - 20 0.167 - 26 0.167 - 28 0.167 - 42 0.167 - - 44 1 1 0 - 43 1 - - 45 14 7 0 - 4 0.214 - 7 0.143 - 14 0.0714 - 19 0.0714 - 21 0.0714 - 27 0.0714 - 46 0.357 - - 47 21324 44 0 - 0 0.00202 - 1 9.38e-05 - 2 0.00234 - 3 0.0843 - 4 0.193 - 5 0.00159 - 6 4.69e-05 - 7 0.138 - 8 0.0455 - 9 0.00642 - 10 0.00113 - 12 0.000563 - 13 0.0356 - 14 0.0286 - 15 0.0715 - 16 0.000141 - 17 0.00075 - 19 0.0818 - 20 0.0347 - 21 0.039 - 22 0.00394 - 23 0.000234 - 24 0.0213 - 26 0.0718 - 27 9.38e-05 - 28 0.00263 - 29 0.000281 - 30 0.00994 - 31 0.00281 - 32 4.69e-05 - 33 0.000234 - 34 0.000141 - 35 0.000703 - 37 0.00169 - 38 0.000141 - 39 0.0164 - 40 0.0618 - 41 0.0303 - 42 0.00389 - 43 9.38e-05 - 44 0.000141 - 45 0.00385 - 46 0.000141 - 47 4.69e-05 - - 49 281 24 0 - 2 0.00712 - 3 0.0178 - 4 0.267 - 7 0.142 - 8 0.0356 - 9 0.0142 - 13 0.0463 - 14 0.0285 - 15 0.0783 - 19 0.0356 - 20 0.0498 - 21 0.0498 - 22 0.0107 - 24 0.0249 - 26 0.103 - 30 0.0107 - 31 0.0107 - 34 0.00356 - 35 0.00356 - 37 0.00712 - 39 0.00712 - 40 0.0214 - 41 0.0178 - 46 0.00712 - - 55 5 4 0 - 7 0.2 - 13 0.2 - 19 0.4 - 20 0.2 - - 57 7 5 0 - 4 0.429 - 9 0.143 - 14 0.143 - 19 0.143 - 20 0.143 - - 30 11209 39 4 - 0 0.00241 - 2 0.00419 - 3 0.0186 - 4 0.22 - 5 0.000357 - 7 0.173 - 8 0.078 - 9 0.0106 - 10 0.000892 - 12 0.000178 - 13 0.0741 - 14 0.0694 - 15 0.0376 - 16 0.000714 - 17 0.00143 - 19 0.0317 - 20 0.0388 - 21 0.0465 - 22 0.00607 - 23 8.92e-05 - 24 0.0352 - 26 0.0869 - 27 0.000268 - 28 0.00116 - 29 0.000357 - 30 0.00473 - 31 0.00419 - 32 8.92e-05 - 34 0.000268 - 35 0.00294 - 37 0.00205 - 39 0.00714 - 40 0.0168 - 41 0.0121 - 42 0.00223 - 43 0.000268 - 44 0.000446 - 45 0.00598 - 46 0.00223 - - 2 63 12 0 - 4 0.238 - 7 0.127 - 8 0.111 - 13 0.111 - 14 0.206 - 15 0.0317 - 19 0.0159 - 20 0.0635 - 21 0.0159 - 40 0.0317 - 41 0.0317 - 42 0.0159 - - 21 12 9 0 - 3 0.0833 - 4 0.167 - 7 0.25 - 14 0.0833 - 20 0.0833 - 26 0.0833 - 35 0.0833 - 37 0.0833 - 40 0.0833 - - 45 15 4 0 - 4 0.133 - 7 0.0667 - 14 0.0667 - 46 0.733 - - 49 214 24 0 - 2 0.00935 - 3 0.0187 - 4 0.28 - 7 0.136 - 8 0.0888 - 9 0.00467 - 13 0.0561 - 14 0.0654 - 15 0.0467 - 19 0.0234 - 20 0.0514 - 21 0.0374 - 24 0.0327 - 26 0.0794 - 27 0.00467 - 31 0.00935 - 35 0.00467 - 37 0.00935 - 39 0.00935 - 40 0.00935 - 41 0.00935 - 42 0.00467 - 45 0.00467 - 46 0.00467 - - 31 15551 42 7 - 0 0.00386 - 1 0.000129 - 2 0.0102 - 3 0.0112 - 4 0.0743 - 5 0.000129 - 7 0.434 - 8 0.0333 - 9 0.0027 - 10 0.000257 - 12 0.00122 - 13 0.0231 - 14 0.0143 - 15 0.0274 - 16 0.000129 - 17 0.000836 - 19 0.0116 - 20 0.0116 - 21 0.0532 - 22 0.00373 - 23 0.000257 - 24 0.0271 - 26 0.132 - 28 0.000836 - 29 0.000965 - 30 0.00514 - 31 0.00174 - 32 0.000643 - 33 0.000322 - 34 0.000322 - 35 0.000707 - 37 0.00257 - 38 6.43e-05 - 39 0.00367 - 40 0.0578 - 41 0.037 - 42 0.00424 - 43 0.00103 - 44 0.000386 - 45 0.00482 - 46 0.00167 - 47 0.000193 - - 2 72 17 0 - 4 0.0694 - 7 0.417 - 9 0.0139 - 14 0.0278 - 17 0.0139 - 19 0.0139 - 20 0.0139 - 21 0.0417 - 26 0.0278 - 29 0.0139 - 30 0.0278 - 39 0.0139 - 40 0.153 - 41 0.0972 - 42 0.0139 - 43 0.0139 - 46 0.0278 - - 21 9 4 0 - 0 0.111 - 7 0.667 - 12 0.111 - 47 0.111 - - 41 2 2 0 - 2 0.5 - 40 0.5 - - 45 13 6 0 - 7 0.231 - 8 0.0769 - 17 0.0769 - 21 0.0769 - 24 0.0769 - 46 0.462 - - 47 14860 42 0 - 0 0.0035 - 1 0.000135 - 2 0.00976 - 3 0.0116 - 4 0.0758 - 5 0.000135 - 7 0.43 - 8 0.0338 - 9 0.00276 - 10 0.000269 - 12 0.00108 - 13 0.0238 - 14 0.0147 - 15 0.028 - 16 0.000135 - 17 0.00074 - 19 0.0118 - 20 0.0114 - 21 0.0543 - 22 0.00384 - 23 0.000269 - 24 0.0281 - 26 0.134 - 28 0.000875 - 29 0.000875 - 30 0.00518 - 31 0.00182 - 32 0.000673 - 33 0.000336 - 34 0.000336 - 35 0.00074 - 37 0.00262 - 38 6.73e-05 - 39 0.00377 - 40 0.0559 - 41 0.0355 - 42 0.00397 - 43 0.000875 - 44 0.000404 - 45 0.00491 - 46 0.00101 - 47 0.000135 - - 49 583 25 0 - 0 0.012 - 2 0.0223 - 3 0.00172 - 4 0.0429 - 7 0.52 - 8 0.024 - 12 0.00343 - 13 0.0103 - 14 0.00515 - 15 0.0172 - 19 0.00515 - 20 0.0172 - 21 0.0274 - 22 0.00172 - 24 0.00686 - 26 0.0909 - 29 0.00172 - 30 0.00172 - 37 0.00172 - 40 0.0961 - 41 0.0686 - 42 0.0103 - 43 0.00343 - 45 0.00343 - 46 0.00515 - - 55 6 2 0 - 7 0.833 - 40 0.167 - - 32 5375 43 3 - 0 0.00651 - 1 0.000186 - 2 0.00335 - 3 0.0134 - 4 0.192 - 5 0.00447 - 6 0.000186 - 7 0.169 - 8 0.0662 - 9 0.0108 - 10 0.00093 - 12 0.00372 - 13 0.0506 - 14 0.0545 - 15 0.0344 - 16 0.000186 - 17 0.00093 - 19 0.0768 - 20 0.0218 - 21 0.0508 - 22 0.00409 - 23 0.000558 - 24 0.0203 - 26 0.0941 - 28 0.0026 - 29 0.000372 - 30 0.0104 - 31 0.00391 - 32 0.000186 - 33 0.000558 - 34 0.000558 - 35 0.00447 - 36 0.000186 - 37 0.00521 - 39 0.00428 - 40 0.0383 - 41 0.0387 - 42 0.00521 - 43 0.000558 - 44 0.000558 - 45 0.00316 - 46 0.000744 - 47 0.000186 - - 2 34 10 0 - 3 0.0294 - 4 0.0882 - 7 0.235 - 8 0.176 - 13 0.0588 - 14 0.206 - 20 0.0294 - 21 0.0294 - 40 0.0882 - 41 0.0588 - - 45 4 3 0 - 4 0.25 - 24 0.25 - 46 0.5 - - 49 79 19 0 - 3 0.0127 - 4 0.19 - 7 0.19 - 8 0.114 - 9 0.0127 - 12 0.0127 - 13 0.0886 - 14 0.0506 - 19 0.0506 - 20 0.0253 - 21 0.0253 - 24 0.0253 - 26 0.0759 - 30 0.0127 - 37 0.0127 - 40 0.0506 - 41 0.0253 - 42 0.0127 - 43 0.0127 - - 33 9565 42 3 - 0 0.0024 - 1 0.000209 - 2 0.00157 - 3 0.0238 - 4 0.181 - 5 0.00136 - 6 0.000105 - 7 0.141 - 8 0.0558 - 9 0.00659 - 10 0.00115 - 12 0.00178 - 13 0.0474 - 14 0.0311 - 15 0.124 - 16 0.000627 - 17 0.000732 - 19 0.0499 - 20 0.0226 - 21 0.0374 - 22 0.00355 - 23 0.000314 - 24 0.0154 - 26 0.0935 - 28 0.00178 - 29 0.000314 - 30 0.00711 - 31 0.0045 - 32 0.000209 - 34 0.000418 - 35 0.00157 - 37 0.0046 - 38 0.000105 - 39 0.0046 - 40 0.0667 - 41 0.0484 - 42 0.00815 - 43 0.000209 - 44 0.000418 - 45 0.00742 - 46 0.000209 - 47 0.000105 - - 2 37 10 0 - 4 0.243 - 7 0.135 - 8 0.162 - 9 0.027 - 12 0.027 - 13 0.135 - 14 0.135 - 15 0.027 - 21 0.027 - 40 0.0811 - - 45 8 7 0 - 7 0.125 - 8 0.125 - 13 0.125 - 21 0.125 - 24 0.125 - 26 0.25 - 46 0.125 - - 49 142 21 0 - 0 0.00704 - 3 0.0141 - 4 0.324 - 7 0.12 - 8 0.0634 - 10 0.00704 - 13 0.0634 - 14 0.00704 - 15 0.0352 - 17 0.0141 - 19 0.0845 - 20 0.0634 - 21 0.0211 - 24 0.0493 - 26 0.0423 - 30 0.0141 - 39 0.00704 - 40 0.0211 - 41 0.00704 - 42 0.0141 - 45 0.0211 - - 40 18 4 0 - 27 0.0556 - 43 0.0556 - 46 0.333 - 47 0.556 - - 41 6243 35 21 - 0 0.00416 - 1 0.0024 - 2 0.113 - 3 0.00432 - 4 0.0271 - 6 0.000641 - 7 0.276 - 8 0.0128 - 9 0.000481 - 10 0.000481 - 12 0.00176 - 13 0.00449 - 14 0.00384 - 15 0.00144 - 16 0.00016 - 19 0.00256 - 20 0.00176 - 21 0.149 - 22 0.00032 - 24 0.00016 - 26 0.0284 - 27 0.000961 - 28 0.0123 - 29 0.0111 - 30 0.222 - 31 0.0368 - 32 0.00352 - 33 0.00352 - 34 0.0103 - 35 0.00128 - 37 0.00657 - 39 0.000481 - 44 0.00016 - 45 0.0365 - 46 0.0189 - - 0 65 14 0 - 0 0.0154 - 4 0.0154 - 7 0.415 - 13 0.0462 - 15 0.0154 - 16 0.0154 - 19 0.0923 - 21 0.185 - 26 0.0154 - 27 0.0308 - 28 0.0154 - 30 0.0154 - 37 0.0615 - 45 0.0615 - - 2 14 4 0 - 4 0.0714 - 7 0.5 - 21 0.357 - 26 0.0714 - - 12 12 3 0 - 3 0.0833 - 7 0.75 - 21 0.167 - - 13 4 4 0 - 7 0.25 - 27 0.25 - 30 0.25 - 46 0.25 - - 28 63 13 0 - 2 0.0159 - 4 0.0159 - 6 0.0159 - 7 0.286 - 8 0.0476 - 12 0.0159 - 13 0.0159 - 14 0.0317 - 21 0.206 - 28 0.0159 - 30 0.0952 - 31 0.0159 - 45 0.222 - - 29 225 14 0 - 0 0.00444 - 7 0.107 - 13 0.00444 - 14 0.00444 - 15 0.00444 - 19 0.00444 - 20 0.00444 - 21 0.12 - 22 0.00444 - 26 0.0133 - 30 0.249 - 31 0.00444 - 45 0.471 - 46 0.00444 - - 30 30 5 0 - 2 0.0667 - 7 0.433 - 21 0.133 - 30 0.0333 - 45 0.333 - - 31 73 10 0 - 4 0.0274 - 7 0.411 - 8 0.0137 - 12 0.0137 - 14 0.0274 - 21 0.233 - 26 0.0137 - 30 0.205 - 31 0.0274 - 45 0.0274 - - 32 25 9 0 - 4 0.08 - 7 0.2 - 8 0.04 - 15 0.04 - 20 0.04 - 21 0.28 - 30 0.12 - 37 0.04 - 45 0.16 - - 33 92 8 0 - 7 0.152 - 14 0.0217 - 19 0.0109 - 21 0.0978 - 27 0.0109 - 28 0.0217 - 30 0.185 - 45 0.5 - - 48 218 13 0 - 1 0.00459 - 2 0.00459 - 3 0.00459 - 4 0.00917 - 7 0.44 - 8 0.0183 - 15 0.00459 - 21 0.234 - 26 0.00917 - 30 0.202 - 31 0.0275 - 45 0.00459 - 46 0.0367 - - 49 387 22 0 - 0 0.00258 - 1 0.00258 - 2 0.0155 - 3 0.00258 - 4 0.0284 - 7 0.488 - 8 0.0233 - 13 0.00775 - 14 0.00775 - 15 0.00258 - 19 0.00517 - 20 0.00258 - 21 0.106 - 26 0.0362 - 28 0.00775 - 30 0.178 - 31 0.0155 - 34 0.0129 - 35 0.00775 - 37 0.0129 - 45 0.0233 - 46 0.0103 - - 52 8 5 0 - 4 0.125 - 8 0.375 - 13 0.125 - 37 0.125 - 39 0.25 - - 55 1378 26 0 - 1 0.00145 - 2 0.0116 - 3 0.00508 - 4 0.0152 - 6 0.000726 - 7 0.319 - 8 0.00871 - 10 0.00145 - 12 0.000726 - 13 0.00218 - 14 0.0029 - 19 0.00145 - 20 0.000726 - 21 0.166 - 26 0.0689 - 27 0.00145 - 28 0.00145 - 29 0.000726 - 30 0.296 - 31 0.0537 - 33 0.000726 - 34 0.00581 - 35 0.00145 - 37 0.00871 - 45 0.00943 - 46 0.0145 - - 57 1875 30 0 - 0 0.00373 - 1 0.00427 - 2 0.0101 - 3 0.00427 - 4 0.0331 - 6 0.00107 - 7 0.341 - 8 0.0197 - 9 0.000533 - 10 0.000533 - 12 0.00107 - 13 0.00427 - 14 0.00267 - 15 0.00213 - 19 0.0016 - 20 0.00213 - 21 0.202 - 24 0.000533 - 26 0.0235 - 28 0.00267 - 29 0.0016 - 30 0.25 - 31 0.0485 - 32 0.00107 - 34 0.00853 - 35 0.00107 - 37 0.008 - 39 0.000533 - 45 0.00693 - 46 0.0133 - - 58 6 5 0 - 4 0.167 - 7 0.333 - 21 0.167 - 31 0.167 - 45 0.167 - - 59 16 8 0 - 2 0.0625 - 7 0.25 - 8 0.0625 - 13 0.0625 - 21 0.312 - 28 0.0625 - 30 0.125 - 46 0.0625 - - 62 353 19 0 - 0 0.00283 - 2 0.0113 - 3 0.00283 - 4 0.0085 - 7 0.34 - 8 0.0142 - 13 0.00283 - 14 0.00283 - 21 0.122 - 26 0.00567 - 29 0.00567 - 30 0.354 - 31 0.0567 - 34 0.00567 - 35 0.00283 - 37 0.0085 - 44 0.00283 - 45 0.00283 - 46 0.0482 - - 64 171 17 0 - 0 0.0117 - 1 0.00585 - 2 0.0234 - 4 0.0175 - 7 0.327 - 12 0.0117 - 13 0.00585 - 19 0.00585 - 21 0.117 - 26 0.0175 - 28 0.00585 - 29 0.00585 - 30 0.351 - 31 0.0234 - 34 0.0117 - 45 0.0117 - 46 0.0468 - - 68 7 6 0 - 7 0.143 - 21 0.143 - 26 0.143 - 30 0.286 - 45 0.143 - 46 0.143 - - 69 1214 24 0 - 0 0.0107 - 1 0.00165 - 2 0.537 - 3 0.00659 - 4 0.0478 - 7 0.0231 - 8 0.00329 - 9 0.00165 - 12 0.00329 - 13 0.00412 - 14 0.00329 - 20 0.00247 - 21 0.0527 - 22 0.000824 - 26 0.00824 - 28 0.0502 - 29 0.0511 - 30 0.0865 - 31 0.0198 - 32 0.0165 - 33 0.0173 - 34 0.0255 - 45 0.000824 - 46 0.0255 - - 42 485 30 16 - 0 0.00412 - 2 0.0866 - 3 0.0103 - 4 0.136 - 6 0.00206 - 7 0.144 - 8 0.0124 - 9 0.00206 - 11 0.00206 - 12 0.0103 - 13 0.0165 - 14 0.0124 - 15 0.0206 - 19 0.0103 - 21 0.101 - 22 0.00206 - 23 0.00206 - 26 0.00825 - 28 0.0103 - 29 0.00206 - 30 0.0474 - 31 0.0165 - 33 0.00412 - 34 0.00619 - 35 0.00619 - 37 0.00619 - 39 0.00206 - 42 0.00619 - 44 0.00206 - 45 0.307 - - 0 14 10 0 - 0 0.0714 - 2 0.0714 - 4 0.0714 - 7 0.143 - 15 0.143 - 28 0.143 - 30 0.0714 - 35 0.0714 - 42 0.0714 - 45 0.143 - - 12 2 2 0 - 0 0.5 - 11 0.5 - - 28 9 8 0 - 4 0.111 - 13 0.111 - 14 0.111 - 23 0.111 - 26 0.111 - 35 0.111 - 37 0.111 - 45 0.222 - - 29 63 4 0 - 3 0.0159 - 4 0.0317 - 7 0.0159 - 45 0.937 - - 30 12 3 0 - 4 0.0833 - 7 0.0833 - 45 0.833 - - 32 7 4 0 - 4 0.286 - 7 0.286 - 15 0.143 - 42 0.286 - - 33 49 4 0 - 3 0.0204 - 4 0.0204 - 14 0.0204 - 45 0.939 - - 42 3 2 0 - 4 0.333 - 13 0.667 - - 46 2 2 0 - 7 0.5 - 31 0.5 - - 48 16 7 0 - 4 0.125 - 7 0.25 - 21 0.25 - 26 0.0625 - 30 0.188 - 44 0.0625 - 45 0.0625 - - 49 20 8 0 - 4 0.05 - 7 0.3 - 8 0.1 - 12 0.05 - 13 0.05 - 21 0.25 - 37 0.05 - 45 0.15 - - 55 64 10 0 - 4 0.125 - 7 0.328 - 12 0.0156 - 13 0.0156 - 19 0.0312 - 21 0.25 - 28 0.0156 - 30 0.0938 - 35 0.0156 - 45 0.109 - - 57 82 17 0 - 3 0.0122 - 4 0.171 - 6 0.0122 - 7 0.232 - 8 0.0366 - 9 0.0122 - 12 0.0122 - 13 0.0122 - 14 0.0244 - 15 0.061 - 19 0.0122 - 21 0.146 - 26 0.0244 - 30 0.0366 - 31 0.0122 - 39 0.0122 - 45 0.171 - - 62 14 7 0 - 2 0.0714 - 3 0.0714 - 7 0.357 - 15 0.0714 - 19 0.0714 - 21 0.214 - 30 0.143 - - 64 16 7 0 - 4 0.25 - 7 0.25 - 8 0.0625 - 13 0.0625 - 19 0.0625 - 30 0.25 - 45 0.0625 - - 69 99 17 0 - 2 0.394 - 3 0.0101 - 4 0.242 - 7 0.0202 - 12 0.0202 - 13 0.0101 - 14 0.0202 - 21 0.0808 - 22 0.0101 - 28 0.0202 - 29 0.0101 - 30 0.0303 - 31 0.0505 - 33 0.0202 - 34 0.0303 - 37 0.0101 - 45 0.0202 - - 43 36 15 4 - 0 0.0278 - 2 0.0556 - 4 0.0556 - 7 0.167 - 12 0.0278 - 13 0.0278 - 19 0.0278 - 21 0.139 - 26 0.0556 - 28 0.0278 - 30 0.0278 - 31 0.0556 - 40 0.139 - 41 0.139 - 42 0.0278 - - 0 4 3 0 - 21 0.25 - 30 0.25 - 31 0.5 - - 28 2 2 0 - 13 0.5 - 19 0.5 - - 55 13 7 0 - 2 0.154 - 7 0.231 - 12 0.0769 - 21 0.308 - 26 0.0769 - 40 0.0769 - 41 0.0769 - - 57 9 5 0 - 7 0.222 - 26 0.111 - 40 0.222 - 41 0.333 - 42 0.111 - - 44 27 12 2 - 4 0.111 - 7 0.296 - 8 0.0741 - 13 0.111 - 14 0.037 - 15 0.148 - 26 0.037 - 28 0.037 - 31 0.037 - 34 0.037 - 37 0.037 - 45 0.037 - - 28 8 5 0 - 4 0.125 - 7 0.125 - 8 0.25 - 13 0.25 - 15 0.25 - - 55 5 3 0 - 7 0.6 - 13 0.2 - 26 0.2 - - 45 947 30 20 - 0 0.0169 - 1 0.00106 - 2 0.00211 - 3 0.00845 - 4 0.147 - 5 0.0116 - 6 0.00528 - 7 0.0993 - 8 0.119 - 9 0.00739 - 12 0.00845 - 13 0.0401 - 14 0.0201 - 15 0.0264 - 16 0.00211 - 17 0.00106 - 19 0.141 - 20 0.00422 - 21 0.116 - 22 0.00422 - 26 0.0211 - 27 0.0116 - 28 0.0919 - 29 0.00317 - 30 0.0348 - 31 0.0275 - 34 0.00211 - 35 0.0095 - 37 0.0127 - 42 0.00317 - - 0 241 18 0 - 1 0.00415 - 3 0.0083 - 4 0.149 - 7 0.0664 - 8 0.249 - 9 0.0083 - 12 0.00415 - 13 0.0207 - 14 0.0124 - 15 0.0124 - 21 0.224 - 22 0.0083 - 26 0.0124 - 28 0.0124 - 29 0.00415 - 30 0.104 - 31 0.0954 - 37 0.00415 - - 1 4 3 0 - 7 0.5 - 21 0.25 - 31 0.25 - - 2 14 4 0 - 0 0.286 - 12 0.357 - 28 0.214 - 29 0.143 - - 12 33 4 0 - 0 0.0909 - 21 0.0909 - 28 0.788 - 37 0.0303 - - 21 4 3 0 - 21 0.25 - 28 0.5 - 30 0.25 - - 26 33 2 0 - 21 0.0303 - 28 0.97 - - 28 57 16 0 - 3 0.0351 - 4 0.246 - 7 0.0351 - 8 0.228 - 9 0.0351 - 13 0.123 - 14 0.0351 - 15 0.0351 - 19 0.0175 - 20 0.0175 - 21 0.105 - 22 0.0175 - 26 0.0175 - 28 0.0175 - 30 0.0175 - 35 0.0175 - - 29 48 16 0 - 0 0.0208 - 4 0.25 - 5 0.0208 - 6 0.0417 - 7 0.104 - 8 0.125 - 13 0.0625 - 14 0.0208 - 15 0.0833 - 19 0.0417 - 21 0.0833 - 26 0.0417 - 28 0.0417 - 30 0.0208 - 34 0.0208 - 37 0.0208 - - 30 36 11 0 - 4 0.278 - 7 0.0278 - 8 0.194 - 9 0.0278 - 13 0.111 - 14 0.0278 - 15 0.0833 - 17 0.0278 - 21 0.167 - 26 0.0278 - 28 0.0278 - - 31 23 10 0 - 3 0.0435 - 4 0.13 - 6 0.087 - 7 0.087 - 8 0.087 - 13 0.0435 - 14 0.13 - 15 0.0435 - 21 0.304 - 28 0.0435 - - 32 12 7 0 - 4 0.0833 - 7 0.0833 - 8 0.333 - 13 0.0833 - 15 0.167 - 28 0.167 - 30 0.0833 - - 33 30 13 0 - 3 0.0667 - 4 0.167 - 5 0.0333 - 7 0.133 - 8 0.2 - 9 0.0333 - 13 0.0667 - 14 0.0667 - 15 0.0333 - 19 0.1 - 21 0.0333 - 22 0.0333 - 30 0.0333 - - 41 196 20 0 - 0 0.0306 - 2 0.0102 - 4 0.128 - 5 0.0153 - 7 0.0765 - 8 0.0255 - 13 0.0408 - 14 0.0102 - 15 0.0153 - 16 0.0051 - 19 0.398 - 20 0.0102 - 21 0.0714 - 27 0.0357 - 28 0.0459 - 30 0.0051 - 31 0.0051 - 35 0.0357 - 37 0.0255 - 42 0.0102 - - 42 126 18 0 - 4 0.183 - 5 0.0476 - 7 0.0714 - 8 0.0397 - 12 0.0159 - 13 0.0397 - 14 0.0238 - 15 0.0317 - 16 0.00794 - 19 0.381 - 20 0.00794 - 21 0.0397 - 27 0.0317 - 28 0.0317 - 34 0.00794 - 35 0.00794 - 37 0.0238 - 42 0.00794 - - 48 2 2 0 - 7 0.5 - 26 0.5 - - 49 13 9 0 - 0 0.0769 - 4 0.231 - 7 0.0769 - 8 0.154 - 21 0.154 - 28 0.0769 - 30 0.0769 - 31 0.0769 - 37 0.0769 - - 55 39 9 0 - 3 0.0256 - 4 0.103 - 7 0.487 - 8 0.0256 - 9 0.0256 - 13 0.0256 - 14 0.0256 - 21 0.0769 - 26 0.205 - - 57 18 7 0 - 4 0.111 - 7 0.556 - 8 0.0556 - 19 0.0556 - 21 0.0556 - 26 0.111 - 30 0.0556 - - 58 10 5 0 - 0 0.1 - 4 0.1 - 7 0.5 - 21 0.1 - 26 0.2 - - 59 8 7 0 - 6 0.125 - 7 0.125 - 8 0.125 - 13 0.125 - 14 0.125 - 15 0.25 - 19 0.125 - - 46 498 27 21 - 0 0.01 - 2 0.151 - 3 0.00402 - 4 0.0723 - 7 0.398 - 8 0.0161 - 12 0.00201 - 13 0.0161 - 14 0.01 - 15 0.0321 - 19 0.0141 - 20 0.00602 - 21 0.0221 - 26 0.0683 - 28 0.00402 - 29 0.00803 - 30 0.0743 - 31 0.00201 - 33 0.00602 - 35 0.00402 - 37 0.0201 - 40 0.00201 - 41 0.00201 - 42 0.0141 - 44 0.012 - 46 0.0141 - 47 0.0161 - - 13 2 2 0 - 8 0.5 - 15 0.5 - - 26 1 1 0 - 28 1 - - 28 48 12 0 - 3 0.0208 - 4 0.354 - 7 0.229 - 8 0.0625 - 13 0.0417 - 14 0.0417 - 15 0.0833 - 19 0.0417 - 20 0.0417 - 35 0.0208 - 37 0.0417 - 44 0.0208 - - 29 9 6 0 - 4 0.222 - 7 0.111 - 13 0.111 - 21 0.111 - 26 0.222 - 30 0.222 - - 30 21 7 0 - 3 0.0476 - 4 0.333 - 7 0.19 - 13 0.0476 - 14 0.0476 - 15 0.286 - 20 0.0476 - - 31 21 8 0 - 4 0.0952 - 7 0.429 - 13 0.0476 - 14 0.0476 - 15 0.0476 - 19 0.0476 - 26 0.238 - 37 0.0476 - - 40 5 2 0 - 46 0.2 - 47 0.8 - - 41 118 15 0 - 0 0.0169 - 2 0.246 - 4 0.0254 - 7 0.237 - 8 0.00847 - 13 0.00847 - 15 0.00847 - 19 0.0169 - 21 0.0593 - 26 0.0169 - 29 0.0254 - 30 0.28 - 31 0.00847 - 33 0.0254 - 46 0.0169 - - 48 39 7 0 - 0 0.0256 - 2 0.308 - 7 0.487 - 8 0.0256 - 26 0.0513 - 37 0.0513 - 44 0.0513 - - 49 34 11 0 - 0 0.0294 - 2 0.0294 - 4 0.0588 - 7 0.529 - 13 0.0294 - 26 0.176 - 28 0.0294 - 30 0.0294 - 35 0.0294 - 37 0.0294 - 42 0.0294 - - 51 1 1 0 - 44 1 - - 52 2 2 0 - 2 0.5 - 37 0.5 - - 55 98 11 0 - 0 0.0102 - 2 0.0918 - 7 0.724 - 12 0.0102 - 19 0.0102 - 26 0.0816 - 29 0.0102 - 30 0.0102 - 41 0.0102 - 42 0.0306 - 44 0.0102 - - 57 31 9 0 - 2 0.129 - 4 0.0323 - 7 0.516 - 8 0.0323 - 13 0.0323 - 21 0.0323 - 26 0.129 - 37 0.0645 - 40 0.0323 - - 59 13 5 0 - 4 0.0769 - 7 0.462 - 15 0.154 - 21 0.0769 - 26 0.231 - - 62 11 7 0 - 2 0.0909 - 7 0.364 - 26 0.0909 - 42 0.0909 - 44 0.0909 - 46 0.182 - 47 0.0909 - - 64 5 2 0 - 7 0.8 - 8 0.2 - - 65 6 4 0 - 2 0.167 - 15 0.167 - 46 0.333 - 47 0.333 - - 66 2 2 0 - 37 0.5 - 42 0.5 - - 67 3 3 0 - 4 0.333 - 19 0.333 - 47 0.333 - - 69 22 4 0 - 2 0.773 - 7 0.136 - 21 0.0455 - 42 0.0455 - - 47 145999 39 35 - 0 0.0116 - 1 6.85e-06 - 2 0.0386 - 3 0.000603 - 4 0.0028 - 5 6.16e-05 - 7 0.0116 - 8 0.000671 - 9 2.05e-05 - 12 0.00449 - 13 0.000678 - 14 0.000404 - 15 0.0104 - 16 6.85e-06 - 17 6.85e-06 - 19 0.000808 - 20 0.000178 - 21 0.00211 - 22 0.000137 - 25 6.85e-06 - 26 0.0016 - 28 0.000164 - 29 0.00262 - 30 0.000384 - 31 0.000349 - 32 0.00107 - 33 0.00145 - 34 0.000288 - 35 4.11e-05 - 37 0.000623 - 39 2.05e-05 - 40 0.691 - 41 0.188 - 42 0.0209 - 43 0.00159 - 44 0.000692 - 45 0.000336 - 46 0.00192 - 47 0.00216 - - 0 598 28 0 - 0 0.0485 - 1 0.00167 - 2 0.0318 - 3 0.0167 - 4 0.164 - 7 0.0518 - 8 0.0234 - 9 0.00502 - 12 0.00334 - 13 0.0284 - 14 0.0301 - 15 0.0853 - 19 0.00669 - 20 0.00836 - 21 0.0167 - 26 0.01 - 30 0.00502 - 31 0.00167 - 34 0.00167 - 35 0.00167 - 37 0.00836 - 39 0.00167 - 40 0.232 - 41 0.176 - 42 0.0301 - 43 0.00167 - 45 0.00334 - 46 0.00502 - - 2 1 1 0 - 30 1 - - 7 2 2 0 - 13 0.5 - 41 0.5 - - 8 34 7 0 - 2 0.147 - 7 0.118 - 20 0.0294 - 21 0.0294 - 32 0.0294 - 40 0.559 - 41 0.0882 - - 12 59 11 0 - 0 0.0508 - 2 0.0508 - 4 0.0169 - 7 0.0508 - 13 0.0169 - 21 0.0339 - 26 0.0339 - 40 0.339 - 41 0.288 - 42 0.0847 - 46 0.0339 - - 13 57 9 0 - 0 0.0351 - 2 0.0877 - 7 0.0351 - 12 0.0351 - 26 0.0175 - 30 0.0175 - 40 0.368 - 41 0.368 - 42 0.0351 - - 15 4 2 0 - 15 0.5 - 46 0.5 - - 21 60 9 0 - 0 0.0167 - 8 0.0167 - 21 0.0167 - 28 0.0333 - 40 0.583 - 41 0.233 - 42 0.0667 - 46 0.0167 - 47 0.0167 - - 22 3 1 0 - 41 1 - - 26 26 8 0 - 0 0.0385 - 7 0.0769 - 21 0.0385 - 28 0.0385 - 40 0.5 - 41 0.231 - 42 0.0385 - 46 0.0385 - - 28 1249 28 0 - 0 0.028 - 2 0.0697 - 4 0.00961 - 5 0.000801 - 7 0.0641 - 8 0.0032 - 12 0.00881 - 13 0.0056 - 15 0.0016 - 17 0.000801 - 19 0.004 - 20 0.0016 - 21 0.00881 - 26 0.004 - 30 0.000801 - 31 0.000801 - 33 0.000801 - 34 0.000801 - 37 0.0048 - 39 0.000801 - 40 0.481 - 41 0.254 - 42 0.0336 - 43 0.0016 - 44 0.0016 - 45 0.000801 - 46 0.0056 - 47 0.0024 - - 29 2544 28 0 - 0 0.00825 - 2 0.0197 - 3 0.0157 - 4 0.0204 - 7 0.00432 - 8 0.000786 - 12 0.000393 - 13 0.00314 - 14 0.000786 - 15 0.219 - 16 0.000393 - 19 0.000786 - 20 0.000786 - 21 0.00118 - 26 0.00118 - 28 0.000393 - 29 0.00197 - 30 0.000393 - 31 0.000786 - 32 0.000393 - 33 0.00118 - 40 0.521 - 41 0.167 - 42 0.00825 - 43 0.000786 - 45 0.000393 - 46 0.000393 - 47 0.000393 - - 30 440 24 0 - 0 0.0591 - 2 0.0977 - 3 0.00227 - 4 0.00227 - 7 0.0659 - 8 0.00909 - 12 0.00455 - 13 0.0114 - 14 0.00682 - 15 0.00227 - 19 0.00227 - 20 0.00227 - 21 0.00909 - 22 0.00227 - 26 0.00227 - 28 0.00227 - 32 0.00227 - 37 0.00227 - 40 0.427 - 41 0.239 - 42 0.0273 - 43 0.00682 - 44 0.00455 - 46 0.00909 - - 31 1808 30 0 - 0 0.0321 - 2 0.0857 - 3 0.000553 - 4 0.00332 - 7 0.0243 - 8 0.00111 - 12 0.0083 - 13 0.000553 - 14 0.000553 - 15 0.00111 - 19 0.00111 - 20 0.000553 - 21 0.00387 - 22 0.000553 - 26 0.00332 - 29 0.0083 - 30 0.000553 - 31 0.000553 - 32 0.00553 - 33 0.00277 - 35 0.000553 - 37 0.00221 - 40 0.497 - 41 0.269 - 42 0.0321 - 43 0.0083 - 44 0.00111 - 45 0.000553 - 46 0.00277 - 47 0.00166 - - 32 490 22 0 - 0 0.0286 - 2 0.0347 - 4 0.0184 - 7 0.0163 - 8 0.00612 - 12 0.0184 - 13 0.00408 - 14 0.0184 - 15 0.00204 - 19 0.00408 - 21 0.00816 - 26 0.00204 - 29 0.00204 - 32 0.00204 - 35 0.00204 - 40 0.42 - 41 0.361 - 42 0.0347 - 43 0.00612 - 44 0.00408 - 46 0.00408 - 47 0.00204 - - 33 2098 25 0 - 0 0.00763 - 2 0.0062 - 3 0.0114 - 4 0.0472 - 7 0.00477 - 8 0.00477 - 12 0.00191 - 13 0.0124 - 15 0.404 - 19 0.000477 - 20 0.00286 - 21 0.000477 - 26 0.000477 - 29 0.000477 - 30 0.000477 - 31 0.000477 - 32 0.000477 - 40 0.304 - 41 0.173 - 42 0.0129 - 43 0.000953 - 44 0.000953 - 45 0.000477 - 46 0.000477 - 47 0.000477 - - 40 11 2 0 - 46 0.0909 - 47 0.909 - - 41 55 17 0 - 0 0.0727 - 2 0.364 - 4 0.109 - 7 0.0545 - 8 0.0182 - 12 0.109 - 13 0.0182 - 14 0.0364 - 15 0.0182 - 19 0.0364 - 21 0.0364 - 29 0.0182 - 30 0.0182 - 31 0.0182 - 32 0.0182 - 37 0.0364 - 45 0.0182 - - 42 5 4 0 - 4 0.2 - 12 0.2 - 19 0.4 - 31 0.2 - - 43 14 5 0 - 2 0.143 - 12 0.0714 - 40 0.357 - 41 0.357 - 42 0.0714 - - 46 81 16 0 - 0 0.037 - 2 0.42 - 4 0.0247 - 7 0.0864 - 12 0.0123 - 15 0.0247 - 19 0.0494 - 21 0.0123 - 29 0.037 - 33 0.0247 - 40 0.0123 - 41 0.0123 - 42 0.0494 - 44 0.0123 - 46 0.0864 - 47 0.0988 - - 48 4185 23 0 - 0 0.0098 - 2 0.0437 - 5 0.000239 - 7 0.00621 - 8 0.000239 - 12 0.00119 - 19 0.00143 - 20 0.000239 - 21 0.000717 - 26 0.000717 - 29 0.000717 - 30 0.000717 - 32 0.000239 - 33 0.000478 - 34 0.000478 - 40 0.651 - 41 0.249 - 42 0.0284 - 43 0.000956 - 44 0.000478 - 45 0.000239 - 46 0.00143 - 47 0.00143 - - 49 3148 26 0 - 0 0.0156 - 2 0.0594 - 3 0.000318 - 4 0.000635 - 7 0.0133 - 8 0.000318 - 12 0.00762 - 13 0.000318 - 15 0.000318 - 19 0.000953 - 21 0.00254 - 26 0.00159 - 28 0.000318 - 29 0.00349 - 30 0.000635 - 32 0.00127 - 33 0.00222 - 34 0.000318 - 37 0.000635 - 40 0.619 - 41 0.234 - 42 0.027 - 43 0.00286 - 45 0.000318 - 46 0.00191 - 47 0.00222 - - 51 49 5 0 - 40 0.735 - 41 0.102 - 42 0.0204 - 43 0.0408 - 47 0.102 - - 55 29370 35 0 - 0 0.0136 - 2 0.0618 - 3 0.00017 - 4 0.00109 - 5 3.4e-05 - 7 0.0157 - 8 0.000613 - 12 0.00582 - 13 0.000204 - 14 0.000136 - 15 0.000477 - 19 0.000783 - 20 6.81e-05 - 21 0.00289 - 22 0.000238 - 25 3.4e-05 - 26 0.00221 - 28 0.000272 - 29 0.00371 - 30 0.000272 - 31 0.000477 - 32 0.00112 - 33 0.00197 - 34 0.000409 - 35 3.4e-05 - 37 0.000783 - 39 3.4e-05 - 40 0.65 - 41 0.205 - 42 0.0224 - 43 0.0018 - 44 0.000647 - 45 0.000409 - 46 0.00211 - 47 0.00218 - - 57 28760 33 0 - 0 0.0139 - 2 0.0438 - 3 6.95e-05 - 4 0.00104 - 5 6.95e-05 - 7 0.00883 - 8 0.000556 - 12 0.00619 - 13 0.000417 - 14 0.000104 - 15 0.000313 - 19 0.000626 - 20 0.000104 - 21 0.00209 - 22 0.000139 - 26 0.00205 - 28 0.000209 - 29 0.00466 - 30 0.000522 - 31 0.000591 - 32 0.00191 - 33 0.00209 - 34 0.000487 - 35 3.48e-05 - 37 0.000313 - 40 0.684 - 41 0.195 - 42 0.0239 - 43 0.00212 - 44 0.00101 - 45 0.000382 - 46 0.00125 - 47 0.00174 - - 58 125 18 0 - 0 0.04 - 2 0.112 - 4 0.016 - 7 0.008 - 12 0.032 - 15 0.04 - 19 0.04 - 20 0.008 - 21 0.008 - 26 0.008 - 29 0.016 - 33 0.008 - 35 0.008 - 40 0.512 - 41 0.112 - 42 0.016 - 45 0.008 - 47 0.008 - - 59 392 14 0 - 0 0.0102 - 2 0.0969 - 4 0.00765 - 7 0.0255 - 8 0.00255 - 12 0.00255 - 21 0.0051 - 26 0.0051 - 40 0.51 - 41 0.291 - 42 0.0332 - 43 0.0051 - 46 0.00255 - 47 0.00255 - - 62 12424 28 0 - 0 0.00789 - 2 0.0249 - 3 8.05e-05 - 4 0.000644 - 7 0.00539 - 8 0.000241 - 12 0.0037 - 13 8.05e-05 - 14 0.000402 - 15 8.05e-05 - 19 0.000644 - 21 0.00145 - 26 0.000644 - 29 0.00129 - 30 0.000241 - 31 8.05e-05 - 32 0.000805 - 33 0.00121 - 34 0.000402 - 37 0.000322 - 40 0.761 - 41 0.163 - 42 0.0182 - 43 0.000563 - 44 0.000724 - 45 0.000402 - 46 0.0025 - 47 0.00266 - - 64 13381 22 0 - 0 0.00239 - 2 0.0106 - 4 7.47e-05 - 5 7.47e-05 - 7 0.000374 - 8 7.47e-05 - 12 0.00105 - 13 7.47e-05 - 15 7.47e-05 - 19 0.000374 - 21 7.47e-05 - 29 0.000299 - 32 0.000149 - 33 0.000224 - 34 7.47e-05 - 40 0.86 - 41 0.106 - 42 0.0132 - 43 0.000972 - 44 0.000224 - 46 0.000972 - 47 0.00277 - - 65 17 2 0 - 40 0.765 - 47 0.235 - - 67 12 4 0 - 40 0.5 - 42 0.0833 - 46 0.25 - 47 0.167 - - 68 148 8 0 - 0 0.0135 - 2 0.00676 - 4 0.00676 - 31 0.00676 - 40 0.73 - 41 0.189 - 42 0.0405 - 46 0.00676 - - 69 44302 32 0 - 0 0.0102 - 2 0.0279 - 3 6.77e-05 - 4 0.000971 - 5 6.77e-05 - 7 0.0133 - 8 0.000361 - 12 0.00354 - 13 0.000203 - 14 0.000271 - 15 0.000406 - 19 0.000564 - 20 2.26e-05 - 21 0.00185 - 22 0.000158 - 26 0.00144 - 28 9.03e-05 - 29 0.00174 - 30 0.000339 - 31 0.000226 - 32 0.00079 - 33 0.00124 - 34 0.000113 - 37 0.00079 - 40 0.719 - 41 0.189 - 42 0.0194 - 43 0.0012 - 44 0.000632 - 45 0.000248 - 46 0.00192 - 47 0.00156 - - 74 15 3 0 - 40 0.4 - 41 0.0667 - 47 0.533 - - 48 5913 33 15 - 0 0.00727 - 2 0.0313 - 3 0.00101 - 4 0.00643 - 5 0.000169 - 7 0.163 - 8 0.00372 - 12 0.00101 - 13 0.00558 - 14 0.000338 - 15 0.00169 - 17 0.000507 - 19 0.00152 - 20 0.000169 - 21 0.0167 - 22 0.000507 - 26 0.0338 - 29 0.000507 - 30 0.00355 - 31 0.0022 - 32 0.000169 - 33 0.000338 - 34 0.00101 - 35 0.000676 - 37 0.00693 - 40 0.461 - 41 0.214 - 42 0.0237 - 43 0.000676 - 44 0.00152 - 45 0.000507 - 46 0.00761 - 47 0.00101 - - 0 4156 30 0 - 0 0.00794 - 2 0.0337 - 3 0.000722 - 4 0.00553 - 5 0.000241 - 7 0.149 - 8 0.00217 - 12 0.0012 - 13 0.00674 - 14 0.000241 - 15 0.000962 - 17 0.000481 - 19 0.00144 - 21 0.0156 - 26 0.038 - 29 0.000722 - 30 0.00337 - 31 0.00265 - 33 0.000481 - 34 0.0012 - 35 0.000481 - 37 0.00577 - 40 0.474 - 41 0.217 - 42 0.0231 - 43 0.000722 - 44 0.00192 - 45 0.000481 - 46 0.00217 - 47 0.00144 - - 1 36 8 0 - 0 0.0278 - 7 0.194 - 19 0.0278 - 21 0.0278 - 40 0.333 - 41 0.306 - 42 0.0556 - 46 0.0278 - - 21 356 17 0 - 0 0.00562 - 2 0.0169 - 4 0.00281 - 7 0.152 - 8 0.00281 - 19 0.00281 - 21 0.014 - 26 0.014 - 30 0.00281 - 32 0.00281 - 34 0.00281 - 35 0.00281 - 37 0.0225 - 40 0.458 - 41 0.256 - 42 0.0365 - 46 0.00562 - - 28 251 17 0 - 0 0.012 - 2 0.0239 - 4 0.0199 - 7 0.243 - 8 0.0199 - 12 0.00398 - 14 0.00398 - 15 0.00398 - 20 0.00398 - 21 0.0239 - 26 0.0438 - 30 0.00398 - 40 0.394 - 41 0.175 - 42 0.0159 - 43 0.00398 - 45 0.00398 - - 29 218 16 0 - 0 0.00459 - 2 0.0275 - 3 0.00917 - 4 0.0275 - 7 0.284 - 8 0.0229 - 13 0.00917 - 15 0.0138 - 21 0.0275 - 22 0.0138 - 26 0.0275 - 30 0.00917 - 37 0.0138 - 40 0.362 - 41 0.138 - 42 0.00917 - - 30 87 10 0 - 0 0.0115 - 2 0.0345 - 4 0.0115 - 7 0.184 - 15 0.0115 - 17 0.0115 - 21 0.0345 - 26 0.0115 - 40 0.517 - 41 0.172 - - 31 99 12 0 - 2 0.0202 - 4 0.0101 - 7 0.343 - 15 0.0101 - 21 0.0202 - 26 0.0303 - 30 0.0101 - 37 0.0101 - 40 0.374 - 41 0.141 - 42 0.0202 - 44 0.0101 - - 32 99 9 0 - 2 0.0303 - 4 0.0101 - 7 0.172 - 13 0.0101 - 26 0.0101 - 37 0.0101 - 40 0.475 - 41 0.253 - 42 0.0303 - - 33 166 10 0 - 2 0.0301 - 7 0.0904 - 13 0.00602 - 21 0.0361 - 26 0.0241 - 31 0.00602 - 37 0.00602 - 40 0.53 - 41 0.235 - 42 0.0361 - - 41 43 6 0 - 7 0.0698 - 21 0.0233 - 30 0.0233 - 40 0.651 - 41 0.186 - 42 0.0465 - - 45 96 7 0 - 2 0.0104 - 7 0.0312 - 30 0.0104 - 31 0.0104 - 40 0.354 - 41 0.25 - 46 0.333 - - 47 37 1 0 - 7 1 - - 49 232 14 0 - 0 0.00431 - 2 0.0517 - 7 0.142 - 8 0.00862 - 13 0.00431 - 19 0.00431 - 21 0.0172 - 26 0.0474 - 35 0.00431 - 37 0.0129 - 40 0.418 - 41 0.25 - 42 0.0302 - 46 0.00431 - - 59 3 3 0 - 3 0.333 - 40 0.333 - 42 0.333 - - 69 2 2 0 - 0 0.5 - 40 0.5 - - 49 8591 38 29 - 0 0.047 - 1 0.00291 - 2 0.0221 - 3 0.00466 - 4 0.0363 - 7 0.185 - 8 0.0282 - 9 0.00163 - 10 0.000116 - 12 0.00326 - 13 0.00873 - 14 0.00384 - 15 0.00349 - 17 0.000116 - 19 0.00105 - 20 0.00186 - 21 0.0312 - 22 0.00233 - 24 0.000466 - 26 0.0481 - 28 0.0638 - 29 0.00349 - 30 0.0345 - 31 0.076 - 32 0.000931 - 33 0.00128 - 34 0.000233 - 35 0.00151 - 37 0.00442 - 39 0.000698 - 40 0.227 - 41 0.132 - 42 0.0128 - 43 0.00105 - 44 0.000698 - 45 0.0021 - 46 0.00466 - 47 0.000815 - - 0 2149 33 0 - 0 0.0558 - 1 0.0116 - 2 0.00558 - 3 0.00651 - 4 0.0879 - 7 0.102 - 8 0.0814 - 9 0.00605 - 12 0.000465 - 13 0.0172 - 14 0.00745 - 15 0.00465 - 17 0.000465 - 20 0.000465 - 21 0.053 - 22 0.00279 - 24 0.0014 - 26 0.0219 - 28 0.00279 - 29 0.000465 - 30 0.117 - 31 0.276 - 32 0.000465 - 33 0.000465 - 35 0.00372 - 37 0.00233 - 39 0.000931 - 40 0.0749 - 41 0.0433 - 42 0.00465 - 45 0.00558 - 46 0.000465 - 47 0.000465 - - 1 9 3 0 - 0 0.111 - 31 0.778 - 47 0.111 - - 2 61 13 0 - 0 0.115 - 7 0.0328 - 8 0.0164 - 12 0.0492 - 21 0.0164 - 26 0.0656 - 28 0.18 - 29 0.213 - 30 0.0984 - 31 0.082 - 32 0.0492 - 33 0.0656 - 45 0.0164 - - 8 4 2 0 - 7 0.75 - 41 0.25 - - 12 581 7 0 - 0 0.31 - 21 0.0172 - 22 0.00172 - 28 0.664 - 29 0.00172 - 32 0.00172 - 41 0.00344 - - 13 14 7 0 - 7 0.357 - 14 0.143 - 26 0.143 - 30 0.0714 - 37 0.0714 - 40 0.143 - 41 0.0714 - - 21 224 16 0 - 0 0.196 - 3 0.00446 - 4 0.0491 - 7 0.0268 - 8 0.0714 - 13 0.0179 - 20 0.00446 - 21 0.0179 - 26 0.0179 - 28 0.366 - 30 0.0402 - 31 0.156 - 40 0.00893 - 41 0.00893 - 42 0.00893 - 46 0.00446 - - 26 59 4 0 - 0 0.0169 - 21 0.0169 - 28 0.932 - 45 0.0339 - - 28 735 26 0 - 0 0.00544 - 2 0.0667 - 3 0.00272 - 4 0.0517 - 7 0.291 - 8 0.015 - 12 0.00136 - 13 0.0068 - 14 0.00816 - 15 0.00544 - 20 0.0068 - 21 0.0381 - 22 0.00408 - 26 0.0803 - 29 0.00136 - 30 0.00952 - 31 0.00136 - 35 0.00408 - 37 0.0109 - 39 0.00272 - 40 0.215 - 41 0.144 - 42 0.00952 - 44 0.00136 - 46 0.015 - 47 0.00136 - - 29 723 27 0 - 0 0.00138 - 2 0.0277 - 3 0.0166 - 4 0.0194 - 7 0.383 - 8 0.0194 - 9 0.00138 - 12 0.00138 - 13 0.0138 - 14 0.00553 - 15 0.0152 - 19 0.00692 - 20 0.00692 - 21 0.0332 - 22 0.00277 - 26 0.116 - 30 0.00553 - 31 0.00138 - 32 0.00138 - 37 0.00415 - 40 0.169 - 41 0.129 - 42 0.0111 - 43 0.00138 - 44 0.00138 - 45 0.00138 - 46 0.00415 - - 30 476 29 0 - 0 0.0168 - 2 0.0147 - 3 0.0063 - 4 0.0315 - 7 0.332 - 8 0.0105 - 10 0.0021 - 12 0.0126 - 13 0.0126 - 14 0.0105 - 15 0.0021 - 20 0.0021 - 21 0.0441 - 22 0.0021 - 26 0.105 - 28 0.0021 - 29 0.0021 - 30 0.0084 - 31 0.0021 - 33 0.0084 - 34 0.0021 - 35 0.0021 - 37 0.0063 - 39 0.0042 - 40 0.197 - 41 0.139 - 42 0.0126 - 43 0.0042 - 46 0.0042 - - 31 679 25 0 - 0 0.0103 - 2 0.0353 - 3 0.00736 - 4 0.0177 - 7 0.384 - 8 0.00884 - 12 0.0103 - 13 0.00295 - 15 0.00147 - 19 0.00295 - 20 0.00147 - 21 0.0177 - 26 0.0854 - 29 0.0118 - 30 0.00442 - 35 0.00147 - 37 0.00295 - 40 0.225 - 41 0.137 - 42 0.0206 - 43 0.00147 - 44 0.00442 - 45 0.00147 - 46 0.00147 - 47 0.00147 - - 32 203 15 0 - 0 0.0197 - 2 0.0542 - 4 0.0345 - 7 0.31 - 8 0.00985 - 13 0.0148 - 21 0.0394 - 22 0.00493 - 26 0.0788 - 31 0.00493 - 32 0.00493 - 37 0.00493 - 40 0.241 - 41 0.163 - 42 0.0148 - - 33 209 19 0 - 2 0.0287 - 3 0.00957 - 4 0.0383 - 7 0.297 - 8 0.0239 - 13 0.00478 - 19 0.00478 - 20 0.00478 - 21 0.0383 - 22 0.00478 - 26 0.0718 - 34 0.00478 - 37 0.00957 - 40 0.254 - 41 0.167 - 42 0.0191 - 43 0.00478 - 46 0.00478 - 47 0.00957 - - 41 627 13 0 - 0 0.00159 - 2 0.00159 - 7 0.0223 - 20 0.00159 - 21 0.00159 - 26 0.00319 - 29 0.00638 - 30 0.00797 - 31 0.00159 - 40 0.619 - 41 0.313 - 42 0.0191 - 47 0.00159 - - 42 15 6 0 - 7 0.0667 - 26 0.0667 - 40 0.667 - 41 0.0667 - 42 0.0667 - 43 0.0667 - - 43 4 3 0 - 2 0.25 - 7 0.25 - 40 0.5 - - 45 38 7 0 - 7 0.105 - 21 0.105 - 28 0.0526 - 31 0.105 - 40 0.237 - 41 0.0789 - 46 0.316 - - 46 6 2 0 - 40 0.333 - 41 0.667 - - 47 19 5 0 - 2 0.0526 - 7 0.421 - 26 0.0526 - 40 0.263 - 41 0.211 - - 48 81 9 0 - 0 0.0123 - 2 0.0123 - 7 0.173 - 13 0.0123 - 15 0.0247 - 26 0.037 - 40 0.444 - 41 0.247 - 42 0.037 - - 49 150 16 0 - 0 0.0133 - 2 0.0133 - 4 0.02 - 7 0.147 - 8 0.0133 - 13 0.00667 - 21 0.02 - 22 0.0133 - 26 0.0533 - 28 0.0333 - 30 0.02 - 31 0.02 - 40 0.327 - 41 0.267 - 42 0.0133 - 46 0.02 - - 55 1082 27 0 - 0 0.012 - 2 0.0407 - 3 0.000924 - 4 0.0129 - 7 0.174 - 8 0.00277 - 12 0.00555 - 13 0.0037 - 15 0.000924 - 19 0.000924 - 21 0.0213 - 22 0.00185 - 24 0.000924 - 26 0.0434 - 29 0.000924 - 30 0.00277 - 31 0.000924 - 32 0.000924 - 33 0.000924 - 37 0.00555 - 40 0.418 - 41 0.216 - 42 0.0259 - 43 0.00185 - 44 0.000924 - 45 0.000924 - 46 0.00277 - - 57 294 15 0 - 0 0.034 - 2 0.0272 - 7 0.119 - 8 0.0034 - 12 0.0102 - 13 0.0034 - 21 0.0068 - 26 0.0136 - 33 0.0034 - 37 0.0102 - 40 0.497 - 41 0.248 - 42 0.0136 - 43 0.0034 - 46 0.0068 - - 59 95 10 0 - 2 0.0211 - 4 0.0105 - 7 0.242 - 21 0.0316 - 22 0.0105 - 26 0.0737 - 37 0.0316 - 40 0.326 - 41 0.221 - 42 0.0316 - - 62 38 6 0 - 7 0.158 - 21 0.0263 - 26 0.0263 - 40 0.5 - 41 0.237 - 42 0.0526 - - 64 6 3 0 - 2 0.167 - 7 0.333 - 40 0.5 - - 68 1 1 0 - 42 1 - - 69 3 3 0 - 37 0.333 - 40 0.333 - 41 0.333 - - 50 39 9 0 - 0 0.0513 - 1 0.0513 - 13 0.0256 - 21 0.103 - 26 0.0769 - 28 0.256 - 29 0.0513 - 30 0.308 - 31 0.0769 - - 51 53 8 1 - 26 0.0189 - 40 0.679 - 41 0.113 - 42 0.0189 - 43 0.0377 - 44 0.0189 - 46 0.0189 - 47 0.0943 - - 28 8 4 0 - 40 0.5 - 42 0.125 - 43 0.25 - 47 0.125 - - 52 22 6 1 - 7 0.0455 - 21 0.0455 - 26 0.182 - 40 0.273 - 41 0.364 - 46 0.0909 - - 41 9 2 0 - 40 0.111 - 41 0.889 - - 55 47284 43 31 - 0 0.00854 - 1 2.11e-05 - 2 0.0387 - 3 0.00247 - 4 0.0117 - 5 8.46e-05 - 6 4.23e-05 - 7 0.211 - 8 0.00544 - 9 0.000656 - 10 6.34e-05 - 12 0.00364 - 13 0.00398 - 14 0.000613 - 15 0.00271 - 17 0.000106 - 19 0.0018 - 20 0.000338 - 21 0.0256 - 22 0.00235 - 23 6.34e-05 - 24 0.00343 - 25 2.11e-05 - 26 0.0759 - 28 0.000486 - 29 0.00235 - 30 0.00334 - 31 0.00131 - 32 0.000698 - 33 0.00123 - 34 0.000761 - 35 0.000423 - 37 0.00419 - 38 2.11e-05 - 39 0.000952 - 40 0.404 - 41 0.157 - 42 0.0156 - 43 0.0014 - 44 0.000909 - 45 0.00123 - 46 0.00338 - 47 0.00135 - - 0 6750 33 0 - 0 0.00252 - 2 0.0296 - 3 0.000444 - 4 0.00504 - 7 0.114 - 8 0.00296 - 12 0.000889 - 13 0.00207 - 14 0.000148 - 15 0.000593 - 19 0.00119 - 20 0.000296 - 21 0.0169 - 22 0.000148 - 23 0.000148 - 24 0.000148 - 26 0.0105 - 29 0.000593 - 30 0.00222 - 31 0.00207 - 32 0.000296 - 33 0.000148 - 34 0.00207 - 35 0.00148 - 37 0.00252 - 40 0.549 - 41 0.221 - 42 0.0246 - 43 0.00119 - 44 0.00104 - 45 0.000741 - 46 0.00252 - 47 0.00119 - - 1 94 13 0 - 0 0.0426 - 2 0.0532 - 4 0.0319 - 7 0.117 - 12 0.0106 - 21 0.0213 - 26 0.0213 - 30 0.0426 - 31 0.0213 - 33 0.0213 - 40 0.34 - 41 0.255 - 42 0.0213 - - 2 4 4 0 - 2 0.25 - 4 0.25 - 7 0.25 - 40 0.25 - - 8 38 9 0 - 0 0.0526 - 2 0.0263 - 7 0.211 - 19 0.0526 - 21 0.0526 - 26 0.0263 - 40 0.342 - 41 0.184 - 42 0.0526 - - 12 4 3 0 - 0 0.25 - 26 0.25 - 28 0.5 - - 13 94 10 0 - 0 0.0426 - 2 0.0638 - 7 0.234 - 12 0.0213 - 13 0.0106 - 21 0.0106 - 26 0.0957 - 34 0.0106 - 40 0.362 - 41 0.149 - - 14 29 7 0 - 2 0.0345 - 7 0.448 - 21 0.0345 - 26 0.069 - 30 0.0345 - 40 0.276 - 41 0.103 - - 15 17 7 0 - 7 0.0588 - 26 0.0588 - 40 0.294 - 41 0.294 - 42 0.0588 - 46 0.176 - 47 0.0588 - - 18 17 5 0 - 7 0.0588 - 21 0.176 - 26 0.0588 - 40 0.588 - 41 0.118 - - 21 265 16 0 - 0 0.00377 - 2 0.0226 - 3 0.00377 - 7 0.117 - 19 0.00377 - 21 0.0113 - 26 0.0113 - 28 0.00755 - 31 0.00377 - 35 0.00755 - 40 0.494 - 41 0.245 - 42 0.0566 - 44 0.00377 - 46 0.00377 - 47 0.00377 - - 28 12476 38 0 - 0 0.00697 - 2 0.0437 - 3 0.00176 - 4 0.013 - 7 0.248 - 8 0.00601 - 9 0.0012 - 10 8.02e-05 - 12 0.00353 - 13 0.00449 - 14 0.000721 - 15 0.00208 - 17 8.02e-05 - 19 0.00168 - 20 0.000802 - 21 0.0374 - 22 0.00297 - 23 8.02e-05 - 24 0.00513 - 26 0.0612 - 28 0.000641 - 29 0.00224 - 30 0.00313 - 31 0.00104 - 32 0.000321 - 33 0.00128 - 34 0.000481 - 35 0.000321 - 37 0.00529 - 39 0.0016 - 40 0.389 - 41 0.134 - 42 0.0119 - 43 0.0012 - 44 0.000721 - 45 0.00136 - 46 0.00361 - 47 0.00112 - - 29 8581 37 0 - 0 0.00373 - 2 0.0332 - 3 0.00629 - 4 0.0124 - 5 0.000233 - 7 0.253 - 8 0.0107 - 9 0.000699 - 10 0.000117 - 12 0.00105 - 13 0.00594 - 14 0.000583 - 15 0.00886 - 19 0.00408 - 21 0.0198 - 22 0.00431 - 24 0.00408 - 26 0.19 - 28 0.000583 - 29 0.0021 - 30 0.00501 - 31 0.00163 - 32 0.000233 - 33 0.000233 - 34 0.000117 - 35 0.000117 - 37 0.00373 - 38 0.000117 - 39 0.0021 - 40 0.295 - 41 0.117 - 42 0.00979 - 43 0.000932 - 44 0.000233 - 45 0.00128 - 46 0.000583 - 47 0.000699 - - 30 6281 37 0 - 0 0.0275 - 2 0.0393 - 3 0.00271 - 4 0.0146 - 6 0.000159 - 7 0.217 - 8 0.00494 - 9 0.000478 - 12 0.0126 - 13 0.0035 - 14 0.000955 - 15 0.00191 - 17 0.000318 - 19 0.00127 - 20 0.000318 - 21 0.0318 - 22 0.00223 - 24 0.0043 - 26 0.0715 - 28 0.000159 - 29 0.00462 - 30 0.00239 - 31 0.00127 - 32 0.00223 - 33 0.00478 - 34 0.000955 - 35 0.000159 - 37 0.00478 - 39 0.000159 - 40 0.367 - 41 0.154 - 42 0.0135 - 43 0.000955 - 44 0.00127 - 45 0.00191 - 46 0.00191 - 47 0.000478 - - 31 2695 36 0 - 0 0.00631 - 2 0.0445 - 3 0.00223 - 4 0.0137 - 6 0.000371 - 7 0.277 - 8 0.00334 - 12 0.00186 - 13 0.00445 - 14 0.00148 - 15 0.000742 - 19 0.00148 - 20 0.000371 - 21 0.0249 - 22 0.00223 - 24 0.00223 - 25 0.000371 - 26 0.0716 - 28 0.000742 - 29 0.00519 - 30 0.00334 - 31 0.000742 - 32 0.000742 - 33 0.000371 - 34 0.000371 - 35 0.000371 - 37 0.00297 - 39 0.000742 - 40 0.35 - 41 0.157 - 42 0.0122 - 43 0.00223 - 44 0.000742 - 45 0.00148 - 46 0.00148 - 47 0.000742 - - 32 1863 32 0 - 0 0.00966 - 2 0.0446 - 3 0.00215 - 4 0.0193 - 5 0.000537 - 7 0.188 - 8 0.00376 - 9 0.00161 - 10 0.000537 - 12 0.00429 - 13 0.00429 - 15 0.00107 - 17 0.00107 - 19 0.000537 - 21 0.0327 - 22 0.00376 - 24 0.0059 - 26 0.0505 - 28 0.00107 - 29 0.00107 - 30 0.00322 - 32 0.00322 - 37 0.00751 - 39 0.000537 - 40 0.429 - 41 0.144 - 42 0.0247 - 43 0.000537 - 44 0.00161 - 45 0.00161 - 46 0.00215 - 47 0.00429 - - 33 3326 33 0 - 0 0.00301 - 2 0.0427 - 3 0.0018 - 4 0.018 - 7 0.196 - 8 0.00331 - 9 0.0012 - 12 0.0018 - 13 0.00481 - 14 0.000601 - 15 0.0012 - 19 0.000902 - 20 0.000301 - 21 0.0216 - 22 0.0021 - 23 0.000301 - 24 0.00541 - 26 0.0496 - 29 0.0015 - 30 0.0021 - 31 0.000601 - 33 0.000902 - 34 0.000301 - 37 0.00241 - 39 0.000902 - 40 0.442 - 41 0.164 - 42 0.0213 - 43 0.0015 - 44 0.0012 - 45 0.0012 - 46 0.0012 - 47 0.00361 - - 41 223 9 0 - 0 0.00448 - 2 0.00448 - 3 0.00448 - 30 0.00448 - 40 0.807 - 41 0.139 - 42 0.0269 - 43 0.00448 - 46 0.00448 - - 42 82 6 0 - 7 0.0122 - 13 0.0122 - 40 0.939 - 41 0.0122 - 42 0.0122 - 46 0.0122 - - 44 13 2 0 - 40 0.0769 - 43 0.923 - - 45 212 7 0 - 7 0.0425 - 21 0.00472 - 26 0.00943 - 40 0.448 - 41 0.241 - 42 0.0142 - 46 0.241 - - 46 73 8 0 - 0 0.0274 - 2 0.0137 - 7 0.247 - 21 0.0274 - 37 0.0137 - 40 0.479 - 41 0.178 - 42 0.0137 - - 47 75 7 0 - 7 0.693 - 26 0.213 - 31 0.0133 - 40 0.0267 - 41 0.0267 - 42 0.0133 - 46 0.0133 - - 48 97 10 0 - 0 0.0206 - 2 0.0825 - 4 0.0103 - 7 0.134 - 12 0.0103 - 26 0.0619 - 37 0.0103 - 40 0.433 - 41 0.206 - 42 0.0309 - - 49 604 21 0 - 0 0.00331 - 2 0.0348 - 3 0.00166 - 4 0.00828 - 7 0.118 - 8 0.00331 - 13 0.00331 - 21 0.00993 - 26 0.0281 - 29 0.00166 - 33 0.00166 - 34 0.00331 - 35 0.00166 - 37 0.00166 - 40 0.518 - 41 0.214 - 42 0.0315 - 43 0.00331 - 44 0.00166 - 46 0.00497 - 47 0.00662 - - 55 1276 24 0 - 0 0.00549 - 1 0.000784 - 2 0.0353 - 3 0.000784 - 4 0.00392 - 7 0.143 - 8 0.00157 - 12 0.000784 - 13 0.000784 - 21 0.00862 - 26 0.0533 - 28 0.000784 - 29 0.00313 - 30 0.00784 - 31 0.00157 - 32 0.00157 - 34 0.00235 - 37 0.00705 - 40 0.472 - 41 0.226 - 42 0.0188 - 43 0.000784 - 46 0.00157 - 47 0.00235 - - 57 656 22 0 - 0 0.0107 - 2 0.0366 - 4 0.00457 - 7 0.145 - 8 0.00152 - 12 0.00305 - 14 0.00152 - 15 0.00152 - 19 0.00152 - 26 0.0244 - 29 0.00152 - 30 0.00457 - 31 0.00152 - 32 0.00152 - 33 0.00152 - 34 0.00152 - 37 0.0061 - 40 0.486 - 41 0.248 - 42 0.0122 - 43 0.00152 - 44 0.00305 - - 58 23 4 0 - 7 0.087 - 29 0.0435 - 40 0.696 - 41 0.174 - - 59 1272 26 0 - 0 0.0118 - 2 0.0645 - 3 0.000786 - 4 0.0055 - 5 0.000786 - 7 0.21 - 8 0.0055 - 12 0.00629 - 13 0.00314 - 14 0.000786 - 15 0.000786 - 19 0.000786 - 21 0.0204 - 22 0.00157 - 26 0.0558 - 29 0.00314 - 30 0.00393 - 33 0.000786 - 37 0.00472 - 40 0.411 - 41 0.166 - 42 0.0118 - 44 0.00236 - 45 0.00157 - 46 0.00472 - 47 0.00157 - - 62 57 9 0 - 0 0.0351 - 4 0.0175 - 7 0.175 - 21 0.0175 - 31 0.0175 - 37 0.0175 - 40 0.368 - 41 0.316 - 42 0.0351 - - 69 56 6 0 - 2 0.0536 - 7 0.179 - 26 0.0536 - 40 0.5 - 41 0.196 - 44 0.0179 - - 74 2 2 0 - 31 0.5 - 40 0.5 - - 57 37637 38 30 - 0 0.0109 - 2 0.0336 - 3 0.00109 - 4 0.00717 - 5 5.31e-05 - 7 0.128 - 8 0.00438 - 9 2.66e-05 - 10 0.000106 - 12 0.00476 - 13 0.00404 - 14 0.000372 - 15 0.00215 - 17 2.66e-05 - 19 0.000797 - 20 0.000239 - 21 0.0102 - 22 0.000771 - 23 5.31e-05 - 26 0.0253 - 28 0.000345 - 29 0.00361 - 30 0.00321 - 31 0.00138 - 32 0.00149 - 33 0.00159 - 34 0.000824 - 35 0.000159 - 37 0.00343 - 39 7.97e-05 - 40 0.523 - 41 0.199 - 42 0.0209 - 43 0.00186 - 44 0.00104 - 45 0.000824 - 46 0.00178 - 47 0.00133 - - 0 1140 30 0 - 0 0.0105 - 2 0.0184 - 3 0.00175 - 4 0.0123 - 7 0.113 - 8 0.0114 - 10 0.000877 - 12 0.00351 - 13 0.00614 - 15 0.00175 - 19 0.00175 - 21 0.0281 - 22 0.000877 - 26 0.0211 - 28 0.000877 - 29 0.00175 - 30 0.00439 - 31 0.0123 - 32 0.00175 - 33 0.00351 - 34 0.000877 - 35 0.00175 - 37 0.00614 - 39 0.000877 - 40 0.482 - 41 0.218 - 42 0.0281 - 44 0.00351 - 45 0.00175 - 46 0.000877 - - 8 57 8 0 - 0 0.0175 - 2 0.0702 - 7 0.123 - 29 0.0175 - 37 0.0351 - 40 0.491 - 41 0.228 - 42 0.0175 - - 12 9 4 0 - 0 0.111 - 28 0.333 - 31 0.222 - 40 0.333 - - 13 73 10 0 - 0 0.0137 - 2 0.0548 - 7 0.164 - 8 0.0137 - 26 0.0274 - 29 0.0137 - 33 0.0274 - 40 0.534 - 41 0.137 - 42 0.0137 - - 14 26 7 0 - 0 0.0385 - 2 0.0385 - 7 0.192 - 8 0.0385 - 40 0.5 - 41 0.154 - 42 0.0385 - - 15 6 4 0 - 2 0.167 - 7 0.167 - 40 0.5 - 46 0.167 - - 21 68 10 0 - 0 0.0147 - 4 0.0147 - 7 0.0735 - 21 0.0735 - 28 0.0441 - 32 0.0147 - 40 0.471 - 41 0.221 - 42 0.0588 - 46 0.0147 - - 28 2496 32 0 - 0 0.012 - 2 0.0341 - 3 0.0028 - 4 0.018 - 7 0.156 - 8 0.00401 - 10 0.000401 - 12 0.00361 - 13 0.00561 - 14 0.0016 - 15 0.0028 - 19 0.000801 - 20 0.0016 - 21 0.0148 - 26 0.0268 - 29 0.002 - 30 0.002 - 31 0.000401 - 32 0.0016 - 33 0.0012 - 34 0.000401 - 35 0.000401 - 37 0.00801 - 39 0.000401 - 40 0.508 - 41 0.163 - 42 0.018 - 43 0.000801 - 44 0.0016 - 45 0.002 - 46 0.002 - 47 0.002 - - 29 2493 30 0 - 0 0.00682 - 2 0.0253 - 3 0.00201 - 4 0.014 - 7 0.271 - 8 0.0132 - 10 0.000401 - 12 0.00281 - 13 0.01 - 14 0.0012 - 15 0.00722 - 19 0.00361 - 21 0.016 - 22 0.000802 - 23 0.000401 - 26 0.0401 - 29 0.00321 - 30 0.00361 - 31 0.000401 - 32 0.0012 - 34 0.000401 - 37 0.00441 - 39 0.000401 - 40 0.361 - 41 0.192 - 42 0.0136 - 43 0.000802 - 44 0.0012 - 45 0.0012 - 46 0.0016 - - 30 1791 27 0 - 0 0.029 - 2 0.0374 - 3 0.00112 - 4 0.0207 - 7 0.13 - 8 0.00503 - 12 0.014 - 13 0.00838 - 15 0.00391 - 19 0.00168 - 20 0.000558 - 21 0.0151 - 22 0.00279 - 26 0.0352 - 28 0.000558 - 29 0.00335 - 30 0.00391 - 31 0.00168 - 32 0.00447 - 33 0.00558 - 37 0.00112 - 40 0.419 - 41 0.229 - 42 0.0218 - 44 0.00112 - 46 0.00168 - 47 0.00168 - - 31 7097 32 0 - 0 0.0194 - 2 0.0327 - 3 0.000986 - 4 0.00592 - 7 0.131 - 8 0.00535 - 10 0.000141 - 12 0.0069 - 13 0.0038 - 14 0.000564 - 15 0.00268 - 19 0.000423 - 21 0.00972 - 22 0.00127 - 26 0.034 - 28 0.000423 - 29 0.00986 - 30 0.00211 - 31 0.00211 - 32 0.00352 - 33 0.00352 - 34 0.00141 - 35 0.000282 - 37 0.00211 - 40 0.477 - 41 0.215 - 42 0.0201 - 43 0.00366 - 44 0.00113 - 45 0.000705 - 46 0.00155 - 47 0.00127 - - 32 565 24 0 - 0 0.0159 - 2 0.0425 - 3 0.00177 - 4 0.0106 - 7 0.113 - 8 0.00354 - 12 0.0124 - 13 0.00177 - 14 0.00177 - 15 0.00177 - 19 0.00354 - 21 0.0283 - 23 0.00177 - 26 0.023 - 29 0.00531 - 30 0.00354 - 31 0.00177 - 32 0.00177 - 37 0.00708 - 40 0.487 - 41 0.196 - 42 0.0301 - 43 0.00354 - 46 0.00177 - - 33 905 26 0 - 0 0.00663 - 2 0.0365 - 4 0.0133 - 5 0.0011 - 7 0.105 - 8 0.0011 - 9 0.0011 - 12 0.00552 - 13 0.00442 - 14 0.0011 - 15 0.00221 - 19 0.0011 - 20 0.0011 - 21 0.00884 - 26 0.0177 - 29 0.00221 - 30 0.00442 - 31 0.00331 - 37 0.00552 - 40 0.543 - 41 0.19 - 42 0.032 - 43 0.00331 - 44 0.00221 - 46 0.00331 - 47 0.00442 - - 41 1622 14 0 - 2 0.00185 - 7 0.0333 - 8 0.00123 - 13 0.00185 - 15 0.000617 - 19 0.000617 - 21 0.00185 - 26 0.00308 - 40 0.763 - 41 0.179 - 42 0.00863 - 43 0.000617 - 44 0.000617 - 47 0.00308 - - 42 61 6 0 - 4 0.0328 - 21 0.0164 - 40 0.721 - 41 0.082 - 42 0.131 - 46 0.0164 - - 43 6 4 0 - 0 0.167 - 40 0.5 - 41 0.167 - 42 0.167 - - 44 8 1 0 - 43 1 - - 45 65 9 0 - 7 0.0769 - 21 0.0154 - 26 0.0308 - 29 0.0154 - 31 0.0154 - 40 0.569 - 41 0.154 - 42 0.0154 - 46 0.108 - - 46 184 13 0 - 2 0.038 - 4 0.0109 - 7 0.0435 - 13 0.00543 - 21 0.00543 - 26 0.00543 - 30 0.00543 - 33 0.00543 - 40 0.543 - 41 0.304 - 42 0.0109 - 44 0.00543 - 45 0.0163 - - 47 27 4 0 - 0 0.037 - 40 0.815 - 41 0.111 - 42 0.037 - - 48 712 17 0 - 0 0.0014 - 2 0.0435 - 4 0.00281 - 7 0.0955 - 12 0.00421 - 13 0.00281 - 21 0.00843 - 26 0.00983 - 30 0.0014 - 31 0.00281 - 37 0.0014 - 40 0.552 - 41 0.256 - 42 0.0126 - 44 0.0014 - 46 0.00281 - 47 0.0014 - - 49 1600 26 0 - 0 0.00938 - 2 0.0425 - 4 0.00313 - 5 0.000625 - 7 0.109 - 8 0.00187 - 12 0.0025 - 13 0.005 - 15 0.00187 - 20 0.000625 - 21 0.01 - 26 0.0244 - 29 0.000625 - 30 0.0025 - 31 0.000625 - 32 0.000625 - 33 0.00125 - 37 0.00438 - 40 0.514 - 41 0.233 - 42 0.0269 - 43 0.00125 - 44 0.000625 - 45 0.000625 - 46 0.00187 - 47 0.00125 - - 55 11225 30 0 - 0 0.00775 - 2 0.0394 - 3 0.00098 - 4 0.00383 - 7 0.139 - 8 0.00276 - 12 0.00454 - 13 0.00249 - 15 0.00107 - 19 0.000356 - 21 0.00775 - 22 0.000713 - 26 0.0247 - 28 0.000178 - 29 0.00205 - 30 0.0049 - 31 0.000356 - 32 0.000535 - 33 0.000802 - 34 0.00125 - 35 8.91e-05 - 37 0.00365 - 40 0.533 - 41 0.192 - 42 0.0211 - 43 0.00125 - 44 0.000624 - 45 0.000713 - 46 0.00151 - 47 0.00134 - - 57 4244 30 0 - 0 0.00683 - 2 0.028 - 3 0.000943 - 4 0.00259 - 7 0.0738 - 8 0.00448 - 12 0.00212 - 13 0.00259 - 14 0.000236 - 15 0.00212 - 19 0.000707 - 20 0.000236 - 21 0.00448 - 22 0.000943 - 26 0.0179 - 29 0.00283 - 30 0.00259 - 31 0.000707 - 32 0.00118 - 33 0.000236 - 34 0.000943 - 37 0.00283 - 40 0.621 - 41 0.192 - 42 0.0229 - 43 0.00189 - 44 0.000707 - 45 0.000236 - 46 0.000943 - 47 0.00141 - - 58 46 6 0 - 2 0.0652 - 7 0.0217 - 40 0.804 - 41 0.0435 - 42 0.0435 - 44 0.0217 - - 59 626 24 0 - 0 0.00479 - 2 0.0399 - 3 0.00319 - 4 0.0208 - 7 0.128 - 8 0.00319 - 12 0.00799 - 13 0.00479 - 17 0.0016 - 20 0.0016 - 21 0.024 - 26 0.0272 - 29 0.0016 - 30 0.00319 - 31 0.0016 - 33 0.00319 - 37 0.0016 - 40 0.494 - 41 0.193 - 42 0.024 - 43 0.0016 - 44 0.0016 - 45 0.00479 - 46 0.00319 - - 62 377 12 0 - 0 0.00265 - 2 0.0796 - 7 0.0531 - 12 0.00265 - 13 0.00796 - 21 0.00265 - 26 0.00531 - 33 0.00265 - 40 0.637 - 41 0.191 - 42 0.0133 - 46 0.00265 - - 64 28 5 0 - 0 0.0357 - 26 0.0357 - 40 0.714 - 41 0.143 - 42 0.0714 - - 67 1 1 0 - 43 1 - - 69 45 7 0 - 0 0.0222 - 2 0.0222 - 26 0.0222 - 37 0.0222 - 40 0.756 - 41 0.0889 - 42 0.0667 - - 58 317 27 20 - 0 0.0252 - 1 0.00315 - 2 0.0631 - 4 0.0599 - 7 0.271 - 8 0.0126 - 9 0.00315 - 12 0.0126 - 13 0.0158 - 15 0.0158 - 19 0.0158 - 20 0.00631 - 21 0.041 - 26 0.0315 - 28 0.0315 - 29 0.0126 - 30 0.0284 - 31 0.0158 - 32 0.00315 - 33 0.00315 - 35 0.00315 - 37 0.0126 - 40 0.202 - 41 0.0631 - 42 0.00631 - 45 0.0379 - 47 0.00315 - - 0 16 10 0 - 0 0.0625 - 1 0.0625 - 4 0.188 - 7 0.0625 - 9 0.0625 - 13 0.0625 - 29 0.0625 - 31 0.0625 - 40 0.25 - 45 0.125 - - 2 10 7 0 - 0 0.2 - 21 0.1 - 28 0.3 - 29 0.1 - 30 0.1 - 32 0.1 - 45 0.1 - - 12 3 1 0 - 28 1 - - 13 3 3 0 - 7 0.333 - 8 0.333 - 45 0.333 - - 21 3 3 0 - 4 0.333 - 21 0.333 - 28 0.333 - - 28 13 7 0 - 0 0.0769 - 2 0.0769 - 4 0.308 - 7 0.231 - 13 0.154 - 21 0.0769 - 40 0.0769 - - 29 9 4 0 - 0 0.111 - 4 0.111 - 7 0.556 - 26 0.222 - - 30 3 2 0 - 4 0.667 - 40 0.333 - - 31 18 8 0 - 7 0.556 - 15 0.0556 - 20 0.0556 - 21 0.0556 - 30 0.0556 - 37 0.0556 - 40 0.0556 - 41 0.111 - - 32 9 6 0 - 2 0.111 - 4 0.222 - 7 0.222 - 8 0.111 - 21 0.222 - 45 0.111 - - 33 9 7 0 - 4 0.111 - 7 0.333 - 8 0.111 - 13 0.111 - 26 0.111 - 30 0.111 - 40 0.111 - - 41 15 3 0 - 40 0.733 - 41 0.133 - 42 0.133 - - 46 7 4 0 - 2 0.143 - 35 0.143 - 40 0.571 - 41 0.143 - - 48 19 8 0 - 2 0.0526 - 4 0.0526 - 7 0.263 - 12 0.158 - 37 0.0526 - 40 0.211 - 41 0.158 - 45 0.0526 - - 49 14 8 0 - 2 0.0714 - 7 0.357 - 12 0.0714 - 28 0.0714 - 37 0.0714 - 40 0.214 - 41 0.0714 - 45 0.0714 - - 55 63 13 0 - 0 0.0317 - 2 0.0794 - 4 0.0159 - 7 0.365 - 19 0.0159 - 21 0.0317 - 26 0.0794 - 30 0.0317 - 31 0.0159 - 40 0.19 - 41 0.0794 - 45 0.0476 - 47 0.0159 - - 57 50 12 0 - 2 0.08 - 4 0.02 - 7 0.3 - 15 0.02 - 19 0.06 - 29 0.02 - 30 0.06 - 31 0.06 - 37 0.02 - 40 0.26 - 41 0.08 - 45 0.02 - - 62 11 6 0 - 7 0.455 - 15 0.0909 - 21 0.182 - 26 0.0909 - 40 0.0909 - 45 0.0909 - - 64 4 3 0 - 30 0.25 - 40 0.5 - 41 0.25 - - 69 30 16 0 - 0 0.0333 - 2 0.2 - 4 0.0333 - 7 0.167 - 8 0.0333 - 13 0.0333 - 15 0.0667 - 19 0.0333 - 20 0.0333 - 21 0.0667 - 26 0.0333 - 28 0.0333 - 29 0.0333 - 33 0.0333 - 40 0.133 - 41 0.0333 - - 59 2627 34 12 - 0 0.00152 - 1 0.00114 - 2 0.0152 - 3 0.0175 - 4 0.212 - 7 0.239 - 8 0.0499 - 9 0.00495 - 10 0.00266 - 12 0.000381 - 13 0.0495 - 14 0.0461 - 15 0.0236 - 17 0.00114 - 19 0.000761 - 20 0.0529 - 21 0.0487 - 22 0.00457 - 24 0.00114 - 26 0.0457 - 30 0.0164 - 31 0.0019 - 35 0.00533 - 37 0.00495 - 38 0.000761 - 39 0.00876 - 40 0.0761 - 41 0.0502 - 42 0.00571 - 43 0.000761 - 44 0.000381 - 45 0.00457 - 46 0.00533 - 47 0.000381 - - 0 6 5 0 - 4 0.167 - 7 0.333 - 9 0.167 - 21 0.167 - 26 0.167 - - 8 2 2 0 - 13 0.5 - 26 0.5 - - 13 19 8 0 - 4 0.263 - 7 0.0526 - 8 0.0526 - 13 0.158 - 14 0.211 - 20 0.158 - 21 0.0526 - 40 0.0526 - - 14 7 6 0 - 4 0.286 - 7 0.143 - 8 0.143 - 13 0.143 - 14 0.143 - 20 0.143 - - 15 2 2 0 - 4 0.5 - 47 0.5 - - 28 861 27 0 - 1 0.00232 - 2 0.0105 - 3 0.0186 - 4 0.28 - 7 0.163 - 8 0.065 - 9 0.00581 - 10 0.00348 - 13 0.0674 - 14 0.0569 - 15 0.0267 - 17 0.00232 - 20 0.0767 - 21 0.0465 - 22 0.00116 - 24 0.00116 - 26 0.0279 - 30 0.0267 - 31 0.00116 - 35 0.0105 - 37 0.00813 - 38 0.00116 - 39 0.0105 - 40 0.0511 - 41 0.0267 - 45 0.00581 - 46 0.00348 - - 29 473 25 0 - 0 0.00634 - 2 0.0127 - 3 0.0381 - 4 0.22 - 7 0.271 - 8 0.0338 - 10 0.00211 - 13 0.0359 - 14 0.0486 - 15 0.0296 - 19 0.00423 - 20 0.0507 - 21 0.0381 - 22 0.00634 - 24 0.00211 - 26 0.0592 - 30 0.0148 - 31 0.00211 - 35 0.00211 - 39 0.0169 - 40 0.0592 - 41 0.0359 - 42 0.00423 - 45 0.00423 - 46 0.00211 - - 30 399 24 0 - 2 0.0125 - 3 0.01 - 4 0.236 - 7 0.188 - 8 0.0852 - 9 0.00752 - 10 0.00251 - 13 0.0677 - 14 0.0727 - 15 0.0276 - 20 0.0501 - 21 0.0351 - 22 0.00752 - 26 0.0376 - 30 0.015 - 31 0.00501 - 35 0.00752 - 37 0.00501 - 39 0.00752 - 40 0.0652 - 41 0.0376 - 42 0.01 - 45 0.00251 - 46 0.00501 - - 31 440 26 0 - 0 0.00227 - 2 0.0159 - 3 0.00455 - 4 0.132 - 7 0.398 - 8 0.0205 - 9 0.00682 - 12 0.00227 - 13 0.0341 - 14 0.0136 - 15 0.0227 - 17 0.00227 - 20 0.0318 - 21 0.0591 - 22 0.00682 - 26 0.0545 - 30 0.00227 - 31 0.00227 - 37 0.00227 - 39 0.00682 - 40 0.107 - 41 0.0477 - 42 0.00682 - 43 0.00227 - 45 0.00682 - 46 0.00909 - - 32 110 19 0 - 2 0.0273 - 3 0.0364 - 4 0.164 - 7 0.2 - 8 0.0818 - 9 0.00909 - 10 0.00909 - 13 0.0545 - 14 0.0545 - 15 0.0273 - 20 0.0364 - 21 0.0818 - 22 0.00909 - 26 0.00909 - 30 0.0364 - 38 0.00909 - 40 0.0636 - 41 0.0818 - 46 0.00909 - - 33 146 20 0 - 1 0.00685 - 2 0.00685 - 3 0.0137 - 4 0.199 - 7 0.24 - 8 0.0342 - 10 0.00685 - 13 0.0137 - 14 0.0205 - 15 0.00685 - 20 0.0479 - 21 0.0753 - 26 0.089 - 35 0.00685 - 37 0.00685 - 40 0.089 - 41 0.103 - 42 0.0205 - 45 0.00685 - 46 0.00685 - - 55 159 15 0 - 2 0.0566 - 4 0.0252 - 7 0.289 - 21 0.0503 - 22 0.00629 - 24 0.00629 - 26 0.0818 - 30 0.0126 - 37 0.0126 - 40 0.214 - 41 0.201 - 42 0.0189 - 43 0.00629 - 44 0.00629 - 46 0.0126 - - 62 13537 29 20 - 0 0.00731 - 2 0.0228 - 3 0.000443 - 4 0.0017 - 7 0.044 - 8 0.00185 - 12 0.00362 - 13 0.000517 - 14 0.000369 - 15 0.000813 - 19 0.000591 - 21 0.00451 - 22 0.000295 - 26 0.00399 - 29 0.00118 - 30 0.000886 - 31 0.000369 - 32 0.000739 - 33 0.00111 - 34 0.000369 - 37 0.00207 - 40 0.699 - 41 0.177 - 42 0.0179 - 43 0.000517 - 44 0.000739 - 45 0.000369 - 46 0.0031 - 47 0.00244 - - 0 792 16 0 - 0 0.00758 - 2 0.0177 - 4 0.00379 - 7 0.0366 - 8 0.00253 - 13 0.00126 - 19 0.00126 - 21 0.0114 - 26 0.0265 - 33 0.00253 - 37 0.00253 - 40 0.652 - 41 0.206 - 42 0.0215 - 46 0.00379 - 47 0.00379 - - 1 31 8 0 - 0 0.0645 - 2 0.0323 - 7 0.0645 - 12 0.0968 - 37 0.0323 - 40 0.419 - 41 0.258 - 42 0.0323 - - 12 37 3 0 - 40 0.784 - 41 0.189 - 46 0.027 - - 14 26 3 0 - 2 0.0769 - 40 0.885 - 46 0.0385 - - 28 1599 24 0 - 0 0.0075 - 2 0.0275 - 4 0.0025 - 7 0.0619 - 8 0.00375 - 12 0.00313 - 14 0.00125 - 15 0.00188 - 19 0.00125 - 21 0.00813 - 26 0.00375 - 29 0.00125 - 30 0.000625 - 31 0.000625 - 32 0.00125 - 33 0.0025 - 37 0.005 - 40 0.634 - 41 0.204 - 42 0.0219 - 43 0.00125 - 44 0.00125 - 46 0.00375 - 47 0.000625 - - 29 1679 23 0 - 0 0.00596 - 2 0.0381 - 3 0.00179 - 4 0.00357 - 7 0.0643 - 8 0.00596 - 12 0.00119 - 14 0.000596 - 15 0.00357 - 21 0.00357 - 22 0.00119 - 26 0.00238 - 29 0.00179 - 30 0.00179 - 31 0.000596 - 32 0.000596 - 37 0.00238 - 40 0.671 - 41 0.172 - 42 0.0125 - 44 0.000596 - 46 0.00238 - 47 0.00238 - - 30 1088 23 0 - 0 0.0165 - 2 0.0239 - 3 0.000919 - 4 0.00368 - 7 0.0469 - 8 0.000919 - 12 0.011 - 13 0.000919 - 14 0.000919 - 19 0.000919 - 21 0.00368 - 22 0.000919 - 26 0.00276 - 29 0.0046 - 30 0.000919 - 32 0.000919 - 33 0.00184 - 40 0.626 - 41 0.226 - 42 0.0184 - 45 0.00276 - 46 0.00368 - 47 0.000919 - - 31 2064 26 0 - 0 0.00678 - 2 0.0252 - 3 0.000484 - 4 0.000969 - 7 0.0766 - 8 0.000969 - 12 0.00436 - 14 0.000484 - 15 0.000484 - 19 0.000484 - 21 0.00775 - 22 0.000484 - 26 0.00388 - 29 0.00145 - 30 0.00242 - 31 0.000484 - 32 0.00194 - 33 0.00145 - 34 0.00194 - 37 0.00242 - 40 0.636 - 41 0.195 - 42 0.0233 - 43 0.00145 - 46 0.00145 - 47 0.00194 - - 32 768 19 0 - 0 0.0143 - 2 0.0273 - 4 0.0013 - 7 0.0352 - 12 0.00391 - 13 0.0026 - 19 0.0013 - 21 0.00781 - 26 0.00391 - 29 0.0026 - 30 0.0013 - 32 0.0013 - 34 0.0013 - 40 0.647 - 41 0.224 - 42 0.0156 - 44 0.0026 - 46 0.00391 - 47 0.0026 - - 33 1187 17 0 - 0 0.00758 - 2 0.027 - 7 0.0278 - 12 0.00421 - 13 0.000842 - 19 0.000842 - 21 0.00253 - 26 0.00505 - 30 0.000842 - 33 0.00168 - 37 0.00337 - 40 0.732 - 41 0.152 - 42 0.0236 - 44 0.00168 - 46 0.00337 - 47 0.00505 - - 41 1264 6 0 - 7 0.00158 - 40 0.902 - 41 0.087 - 42 0.00791 - 44 0.000791 - 46 0.000791 - - 42 63 5 0 - 7 0.0159 - 40 0.889 - 41 0.0635 - 42 0.0159 - 46 0.0159 - - 45 324 6 0 - 21 0.00309 - 40 0.873 - 41 0.0741 - 42 0.0216 - 46 0.0216 - 47 0.00617 - - 48 188 11 0 - 2 0.00532 - 4 0.00532 - 7 0.0851 - 21 0.00532 - 26 0.00532 - 31 0.00532 - 37 0.0106 - 40 0.574 - 41 0.293 - 42 0.00532 - 46 0.00532 - - 49 234 8 0 - 0 0.00427 - 2 0.0256 - 7 0.0342 - 12 0.00427 - 40 0.701 - 41 0.192 - 42 0.0342 - 46 0.00427 - - 55 1193 18 0 - 0 0.00922 - 2 0.0277 - 3 0.000838 - 4 0.000838 - 7 0.0285 - 8 0.00168 - 12 0.00503 - 26 0.000838 - 33 0.00168 - 37 0.000838 - 40 0.733 - 41 0.163 - 42 0.0142 - 43 0.00168 - 44 0.00168 - 45 0.000838 - 46 0.00168 - 47 0.00587 - - 57 699 16 0 - 0 0.00572 - 2 0.01 - 4 0.00143 - 7 0.0243 - 8 0.00286 - 12 0.00143 - 13 0.00286 - 15 0.00143 - 21 0.00286 - 29 0.00143 - 31 0.00143 - 32 0.00143 - 40 0.758 - 41 0.162 - 42 0.02 - 47 0.00286 - - 58 17 1 0 - 40 1 - - 59 102 11 0 - 0 0.0098 - 2 0.0196 - 7 0.049 - 12 0.0098 - 19 0.0098 - 26 0.0098 - 37 0.0098 - 40 0.667 - 41 0.196 - 42 0.0098 - 47 0.0098 - - 62 50 4 0 - 2 0.06 - 40 0.76 - 41 0.16 - 45 0.02 - - 64 13660 26 19 - 0 0.00234 - 2 0.0104 - 4 0.00022 - 5 7.32e-05 - 7 0.00425 - 8 0.000146 - 12 0.00102 - 13 0.000293 - 15 7.32e-05 - 19 0.000366 - 21 0.000659 - 26 0.00022 - 29 0.000293 - 30 0.000146 - 31 7.32e-05 - 32 0.000146 - 33 0.00022 - 34 0.000146 - 37 0.000366 - 40 0.842 - 41 0.117 - 42 0.0141 - 43 0.0011 - 44 0.000439 - 46 0.00132 - 47 0.00271 - - 0 384 11 0 - 2 0.0026 - 7 0.00781 - 12 0.0026 - 15 0.0026 - 21 0.0026 - 40 0.76 - 41 0.206 - 42 0.00781 - 43 0.0026 - 46 0.0026 - 47 0.0026 - - 21 14 3 0 - 7 0.0714 - 40 0.571 - 41 0.357 - - 28 886 15 0 - 0 0.00903 - 2 0.0158 - 5 0.00113 - 7 0.0147 - 8 0.00113 - 12 0.00226 - 21 0.00339 - 33 0.00113 - 37 0.00226 - 40 0.699 - 41 0.218 - 42 0.0237 - 43 0.00113 - 46 0.00451 - 47 0.00339 - - 29 4524 17 0 - 0 0.00133 - 2 0.0124 - 4 0.000221 - 7 0.00133 - 8 0.000221 - 13 0.000442 - 19 0.000442 - 21 0.000442 - 29 0.000663 - 30 0.000221 - 37 0.000663 - 40 0.914 - 41 0.0573 - 42 0.00685 - 43 0.000442 - 46 0.000663 - 47 0.00287 - - 30 513 12 0 - 0 0.0039 - 2 0.0117 - 7 0.00975 - 12 0.0039 - 21 0.00195 - 30 0.00195 - 32 0.00195 - 40 0.768 - 41 0.183 - 42 0.00585 - 44 0.0039 - 46 0.0039 - - 31 497 12 0 - 2 0.0121 - 7 0.00402 - 12 0.00201 - 26 0.00201 - 29 0.00201 - 40 0.779 - 41 0.171 - 42 0.0181 - 43 0.00201 - 44 0.00201 - 46 0.00201 - 47 0.00402 - - 32 1197 13 0 - 0 0.00251 - 2 0.0109 - 7 0.00334 - 12 0.00167 - 13 0.000835 - 19 0.000835 - 21 0.000835 - 32 0.000835 - 34 0.000835 - 40 0.785 - 41 0.17 - 42 0.0209 - 47 0.00167 - - 33 1314 12 0 - 0 0.00381 - 2 0.0122 - 7 0.00228 - 19 0.000761 - 31 0.000761 - 40 0.867 - 41 0.0883 - 42 0.0183 - 43 0.000761 - 44 0.000761 - 46 0.00152 - 47 0.00381 - - 41 1017 7 0 - 7 0.000983 - 21 0.000983 - 40 0.887 - 41 0.0895 - 42 0.0167 - 43 0.00295 - 47 0.00197 - - 42 45 4 0 - 40 0.844 - 41 0.0444 - 42 0.0889 - 47 0.0222 - - 44 3 2 0 - 40 0.333 - 43 0.667 - - 48 353 6 0 - 2 0.00567 - 7 0.0085 - 40 0.822 - 41 0.159 - 42 0.00283 - 47 0.00283 - - 49 245 9 0 - 0 0.00408 - 2 0.0163 - 7 0.00408 - 19 0.00408 - 26 0.00408 - 33 0.00408 - 40 0.784 - 41 0.167 - 42 0.0122 - - 55 1264 13 0 - 0 0.00158 - 2 0.00791 - 4 0.00158 - 7 0.00949 - 12 0.00316 - 13 0.000791 - 26 0.000791 - 40 0.803 - 41 0.147 - 42 0.019 - 44 0.000791 - 46 0.00237 - 47 0.00237 - - 57 868 12 0 - 0 0.00346 - 2 0.0104 - 7 0.00346 - 12 0.0023 - 33 0.00115 - 34 0.00115 - 40 0.829 - 41 0.121 - 42 0.0219 - 43 0.0023 - 46 0.0023 - 47 0.00115 - - 58 60 3 0 - 40 0.95 - 41 0.0333 - 47 0.0167 - - 59 89 5 0 - 0 0.0112 - 2 0.0225 - 40 0.73 - 41 0.191 - 42 0.0449 - - 62 197 7 0 - 7 0.00508 - 40 0.827 - 41 0.142 - 42 0.0102 - 43 0.00508 - 44 0.00508 - 47 0.00508 - - 64 36 4 0 - 40 0.778 - 41 0.139 - 42 0.0556 - 43 0.0278 - - 65 23 3 0 - 40 0.565 - 46 0.261 - 47 0.174 - - 66 5 2 0 - 40 0.6 - 46 0.4 - - 67 16 5 0 - 7 0.0625 - 40 0.375 - 42 0.0625 - 46 0.375 - 47 0.125 - - 68 161 12 4 - 0 0.0124 - 2 0.00621 - 4 0.00621 - 7 0.00621 - 13 0.0124 - 21 0.00621 - 26 0.00621 - 31 0.00621 - 40 0.671 - 41 0.217 - 42 0.0435 - 46 0.00621 - - 4 1 1 0 - 13 1 - - 29 4 3 0 - 7 0.25 - 26 0.25 - 40 0.5 - - 55 15 4 0 - 21 0.0667 - 40 0.733 - 41 0.0667 - 42 0.133 - - 57 1 1 0 - 31 1 - - 69 48590 32 19 - 0 0.00926 - 2 0.0818 - 3 8.23e-05 - 4 0.00134 - 5 6.17e-05 - 7 0.0134 - 8 0.000535 - 12 0.00323 - 13 0.000288 - 14 0.000391 - 15 0.000412 - 19 0.000535 - 20 0.000185 - 21 0.00241 - 22 0.000144 - 26 0.00161 - 28 0.000144 - 29 0.00158 - 30 0.000391 - 31 0.000206 - 32 0.00072 - 33 0.00113 - 34 0.000144 - 37 0.000782 - 40 0.656 - 41 0.198 - 42 0.02 - 43 0.00111 - 44 0.000741 - 45 0.000226 - 46 0.0022 - 47 0.00142 - - 0 14471 30 0 - 0 0.00947 - 2 0.0333 - 4 0.00104 - 5 6.91e-05 - 7 0.00442 - 8 6.91e-05 - 12 0.00228 - 13 0.000138 - 14 0.000346 - 15 0.000276 - 19 0.000691 - 20 6.91e-05 - 21 0.000829 - 22 6.91e-05 - 26 0.00076 - 28 0.000138 - 29 0.00131 - 30 0.000207 - 31 6.91e-05 - 32 0.00111 - 33 0.000967 - 37 0.000276 - 40 0.728 - 41 0.189 - 42 0.0207 - 43 0.00159 - 44 0.000622 - 45 6.91e-05 - 46 0.00111 - 47 0.00117 - - 1 372 15 0 - 0 0.0188 - 2 0.0457 - 7 0.00538 - 12 0.00538 - 15 0.00269 - 21 0.00538 - 26 0.00538 - 31 0.00269 - 32 0.00538 - 37 0.00269 - 40 0.645 - 41 0.228 - 42 0.0161 - 43 0.00538 - 46 0.00538 - - 2 3353 26 0 - 0 0.00328 - 2 0.00746 - 3 0.000298 - 4 0.00537 - 7 0.0197 - 8 0.00298 - 12 0.000895 - 13 0.00119 - 14 0.00209 - 15 0.000596 - 19 0.000298 - 20 0.00179 - 21 0.00358 - 26 0.00388 - 28 0.000895 - 29 0.000298 - 31 0.000298 - 32 0.000298 - 37 0.000298 - 40 0.775 - 41 0.15 - 42 0.0155 - 43 0.000895 - 45 0.000298 - 46 0.00239 - 47 0.000298 - - 4 29 3 0 - 2 0.172 - 40 0.759 - 41 0.069 - - 12 7932 26 0 - 0 0.00693 - 2 0.0241 - 4 0.000504 - 5 0.000126 - 7 0.00403 - 8 0.000504 - 12 0.00277 - 13 0.000126 - 14 0.000378 - 15 0.000252 - 19 0.000252 - 21 0.00063 - 26 0.000378 - 29 0.00126 - 30 0.000252 - 31 0.000126 - 32 0.000504 - 33 0.00151 - 37 0.000126 - 40 0.759 - 41 0.175 - 42 0.0173 - 43 0.00113 - 44 0.000756 - 46 0.000756 - 47 0.00151 - - 15 2 1 0 - 46 1 - - 21 2998 22 0 - 0 0.006 - 2 0.0317 - 4 0.000667 - 7 0.004 - 12 0.00167 - 14 0.000667 - 15 0.000334 - 19 0.001 - 21 0.000334 - 26 0.000334 - 28 0.000334 - 29 0.001 - 32 0.000334 - 33 0.000334 - 37 0.000334 - 40 0.662 - 41 0.255 - 42 0.027 - 43 0.000667 - 45 0.000334 - 46 0.00367 - 47 0.002 - - 26 12919 31 0 - 0 0.016 - 2 0.0296 - 3 0.000232 - 4 0.0017 - 5 7.74e-05 - 7 0.0358 - 8 0.000774 - 12 0.00658 - 13 0.000464 - 14 0.000155 - 15 0.000697 - 19 0.000774 - 21 0.00441 - 22 0.000464 - 26 0.00348 - 28 7.74e-05 - 29 0.00333 - 30 0.000774 - 31 0.000464 - 32 0.000774 - 33 0.00217 - 34 0.00031 - 37 0.00224 - 40 0.666 - 41 0.197 - 42 0.0184 - 43 0.000697 - 44 0.000851 - 45 0.000542 - 46 0.00279 - 47 0.00224 - - 28 80 8 0 - 0 0.0125 - 2 0.0375 - 7 0.0125 - 8 0.0125 - 40 0.712 - 41 0.188 - 42 0.0125 - 46 0.0125 - - 29 67 6 0 - 2 0.0597 - 7 0.0149 - 26 0.0149 - 40 0.597 - 41 0.254 - 42 0.0597 - - 41 356 8 0 - 2 0.419 - 26 0.00281 - 37 0.00281 - 40 0.242 - 41 0.312 - 42 0.0169 - 46 0.00281 - 47 0.00281 - - 42 25 4 0 - 2 0.04 - 40 0.36 - 41 0.12 - 42 0.48 - - 44 2 2 0 - 40 0.5 - 43 0.5 - - 45 144 6 0 - 2 0.0625 - 40 0.618 - 41 0.215 - 42 0.0139 - 46 0.0833 - 47 0.00694 - - 47 3672 10 0 - 2 0.69 - 4 0.000545 - 7 0.000817 - 21 0.00735 - 30 0.00109 - 34 0.000545 - 41 0.27 - 42 0.0248 - 44 0.00218 - 46 0.00245 - - 49 1916 19 0 - 0 0.00678 - 2 0.0339 - 7 0.00365 - 12 0.00365 - 13 0.000522 - 15 0.000522 - 20 0.000522 - 21 0.000522 - 26 0.000522 - 29 0.000522 - 34 0.000522 - 40 0.724 - 41 0.196 - 42 0.0209 - 43 0.00261 - 44 0.00104 - 45 0.000522 - 46 0.00157 - 47 0.00104 - - 50 47 7 0 - 2 0.0426 - 4 0.0426 - 7 0.0213 - 20 0.0213 - 40 0.574 - 41 0.277 - 42 0.0213 - - 57 48 3 0 - 2 0.0208 - 40 0.875 - 41 0.104 - - 58 21 3 0 - 32 0.0476 - 40 0.857 - 41 0.0952 - - 74 23 8 1 - 4 0.0435 - 7 0.13 - 8 0.0435 - 26 0.087 - 28 0.0435 - 40 0.261 - 41 0.0435 - 47 0.348 - - 29 5 4 0 - 4 0.2 - 8 0.2 - 26 0.2 - 40 0.4 - -70 183 17 7 - 0 0.0109 - 2 0.0109 - 4 0.164 - 6 0.00546 - 7 0.0109 - 8 0.317 - 9 0.0328 - 13 0.0874 - 14 0.109 - 15 0.0109 - 19 0.175 - 20 0.0109 - 21 0.0109 - 26 0.0109 - 41 0.0219 - 45 0.00546 - 46 0.00546 - - 8 58 11 0 - 2 0.0345 - 4 0.259 - 7 0.0345 - 8 0.0172 - 9 0.0517 - 13 0.121 - 14 0.172 - 15 0.0172 - 19 0.259 - 20 0.0172 - 41 0.0172 - - 21 2 2 0 - 0 0.5 - 8 0.5 - - 37 56 3 0 - 8 0.946 - 21 0.0357 - 45 0.0179 - - 45 1 1 0 - 6 1 - - 47 59 11 1 - 0 0.0169 - 4 0.254 - 8 0.0169 - 9 0.0508 - 13 0.136 - 14 0.169 - 15 0.0169 - 19 0.271 - 20 0.0169 - 26 0.0169 - 41 0.0339 - - 57 2 2 0 - 26 0.5 - 41 0.5 - - 48 1 1 0 - 46 1 - - 57 2 2 0 - 26 0.5 - 41 0.5 - -71 4205 34 8 - 0 0.0219 - 2 0.00166 - 3 0.00666 - 4 0.263 - 5 0.0109 - 7 0.00951 - 8 0.0533 - 9 0.00143 - 10 0.0019 - 12 0.0133 - 13 0.0604 - 14 0.0818 - 15 0.113 - 16 0.00143 - 17 0.0019 - 19 0.236 - 20 0.0276 - 21 0.0252 - 26 0.0285 - 28 0.000951 - 29 0.000951 - 30 0.0109 - 31 0.00856 - 32 0.000476 - 34 0.000476 - 35 0.000476 - 39 0.000476 - 40 0.00309 - 41 0.0109 - 43 0.000476 - 44 0.000476 - 45 0.00143 - 46 0.000238 - 47 0.000476 - - 7 30 7 0 - 4 0.3 - 8 0.0667 - 13 0.0333 - 14 0.0667 - 15 0.233 - 19 0.2 - 20 0.1 - - 8 23 7 0 - 4 0.217 - 8 0.087 - 13 0.348 - 14 0.13 - 15 0.13 - 19 0.0435 - 40 0.0435 - - 21 45 14 0 - 0 0.0667 - 2 0.0222 - 4 0.289 - 7 0.0222 - 8 0.0222 - 12 0.0222 - 13 0.0222 - 14 0.0444 - 15 0.133 - 19 0.222 - 20 0.0444 - 21 0.0222 - 28 0.0444 - 40 0.0222 - - 37 2029 31 3 - 0 0.0202 - 2 0.00148 - 3 0.0069 - 4 0.259 - 5 0.0113 - 7 0.00936 - 8 0.0591 - 9 0.00148 - 10 0.00197 - 12 0.0128 - 13 0.0586 - 14 0.0808 - 15 0.108 - 16 0.00148 - 17 0.00197 - 19 0.235 - 20 0.0261 - 21 0.036 - 26 0.0291 - 29 0.000986 - 30 0.0113 - 31 0.00887 - 32 0.000493 - 34 0.000493 - 35 0.000493 - 39 0.000493 - 40 0.00246 - 41 0.0113 - 43 0.000493 - 44 0.000493 - 45 0.00148 - - 2 6 2 0 - 4 0.833 - 26 0.167 - - 21 21 9 0 - 0 0.0476 - 4 0.19 - 8 0.19 - 13 0.0952 - 15 0.0476 - 19 0.238 - 20 0.0952 - 21 0.0476 - 31 0.0476 - - 49 6 3 0 - 4 0.167 - 5 0.333 - 19 0.5 - - 40 1 1 0 - 46 1 - - 46 1 1 0 - 47 1 - - 47 2063 33 5 - 0 0.0223 - 2 0.00145 - 3 0.00679 - 4 0.268 - 5 0.0111 - 7 0.00969 - 8 0.048 - 9 0.00145 - 10 0.00194 - 12 0.0136 - 13 0.0606 - 14 0.0834 - 15 0.115 - 16 0.00145 - 17 0.00194 - 19 0.241 - 20 0.0281 - 21 0.015 - 26 0.0291 - 28 0.000969 - 29 0.000969 - 30 0.0111 - 31 0.00873 - 32 0.000485 - 34 0.000485 - 35 0.000485 - 39 0.000485 - 40 0.00291 - 41 0.0111 - 43 0.000485 - 44 0.000485 - 45 0.00145 - 47 0.000485 - - 7 30 7 0 - 4 0.3 - 8 0.0667 - 13 0.0333 - 14 0.0667 - 15 0.233 - 19 0.2 - 20 0.1 - - 8 18 6 0 - 4 0.278 - 8 0.111 - 13 0.222 - 14 0.167 - 15 0.167 - 19 0.0556 - - 21 43 12 0 - 0 0.0698 - 4 0.302 - 7 0.0233 - 8 0.0233 - 12 0.0233 - 13 0.0233 - 14 0.0465 - 15 0.14 - 19 0.233 - 20 0.0465 - 28 0.0465 - 40 0.0233 - - 46 1 1 0 - 47 1 - - 55 4 3 0 - 0 0.5 - 4 0.25 - 12 0.25 - - 55 4 3 0 - 0 0.5 - 4 0.25 - 12 0.25 - -72 15188 37 29 - 0 0.257 - 2 0.000856 - 3 0.00356 - 4 0.0405 - 5 0.000922 - 7 0.0239 - 8 0.0117 - 9 0.000527 - 10 0.000856 - 12 0.0985 - 13 0.0189 - 14 0.0197 - 15 0.0309 - 16 0.000329 - 17 0.000132 - 18 0.000263 - 19 0.0643 - 20 0.00382 - 21 0.0426 - 22 0.000395 - 23 0.000132 - 26 0.00375 - 28 0.00224 - 29 0.155 - 30 0.000329 - 31 0.0023 - 32 0.0744 - 33 0.128 - 34 0.000263 - 39 0.000593 - 40 0.000658 - 41 0.00974 - 42 0.000263 - 43 0.000395 - 44 0.000461 - 45 0.000988 - 46 0.000132 - - 2 8 3 0 - 7 0.125 - 13 0.625 - 14 0.25 - - 3 9 3 0 - 7 0.778 - 8 0.111 - 14 0.111 - - 4 71 11 1 - 0 0.225 - 7 0.211 - 8 0.0282 - 12 0.0986 - 13 0.169 - 15 0.113 - 18 0.0141 - 21 0.0141 - 29 0.0141 - 32 0.0423 - 33 0.0704 - - 35 4 2 0 - 8 0.5 - 13 0.5 - - 7 358 24 0 - 0 0.00559 - 3 0.00279 - 4 0.154 - 7 0.014 - 8 0.0559 - 9 0.00279 - 10 0.00838 - 13 0.0223 - 14 0.0922 - 15 0.19 - 16 0.00279 - 19 0.237 - 20 0.0279 - 21 0.0447 - 22 0.00279 - 23 0.00279 - 28 0.00279 - 29 0.0279 - 30 0.00559 - 31 0.0251 - 32 0.00838 - 33 0.0168 - 41 0.0447 - 45 0.00279 - - 8 76 17 5 - 0 0.0263 - 4 0.0921 - 7 0.0789 - 8 0.0658 - 13 0.329 - 14 0.171 - 15 0.0395 - 17 0.0132 - 19 0.0658 - 20 0.0263 - 29 0.0132 - 31 0.0132 - 40 0.0132 - 41 0.0132 - 42 0.0132 - 45 0.0132 - 46 0.0132 - - 21 1 1 0 - 17 1 - - 23 2 1 0 - 7 1 - - 36 30 6 0 - 8 0.167 - 13 0.467 - 14 0.267 - 31 0.0333 - 41 0.0333 - 45 0.0333 - - 37 25 10 0 - 0 0.08 - 4 0.28 - 7 0.08 - 13 0.04 - 15 0.12 - 19 0.2 - 20 0.08 - 29 0.04 - 40 0.04 - 42 0.04 - - 47 2 1 0 - 7 1 - - 9 3 3 0 - 12 0.333 - 14 0.333 - 15 0.333 - - 10 6 2 0 - 7 0.833 - 13 0.167 - - 13 186 16 9 - 0 0.269 - 2 0.0108 - 4 0.0806 - 7 0.145 - 8 0.0108 - 12 0.0269 - 13 0.0645 - 14 0.0323 - 15 0.0323 - 19 0.0806 - 21 0.0215 - 26 0.0215 - 29 0.0753 - 33 0.086 - 41 0.0376 - 44 0.00538 - - 2 5 4 0 - 0 0.4 - 13 0.2 - 14 0.2 - 29 0.2 - - 4 5 3 0 - 0 0.2 - 7 0.6 - 19 0.2 - - 8 25 13 0 - 0 0.24 - 2 0.04 - 7 0.04 - 13 0.08 - 14 0.04 - 15 0.04 - 19 0.04 - 21 0.12 - 26 0.04 - 29 0.08 - 33 0.12 - 41 0.08 - 44 0.04 - - 13 13 8 0 - 0 0.231 - 7 0.231 - 8 0.0769 - 12 0.0769 - 19 0.154 - 21 0.0769 - 29 0.0769 - 33 0.0769 - - 34 39 13 0 - 0 0.103 - 2 0.0256 - 4 0.256 - 7 0.128 - 12 0.0256 - 13 0.0513 - 14 0.0256 - 15 0.0513 - 19 0.179 - 26 0.0256 - 29 0.0256 - 33 0.0256 - 41 0.0769 - - 35 14 8 0 - 0 0.286 - 4 0.0714 - 7 0.286 - 14 0.0714 - 19 0.0714 - 26 0.0714 - 29 0.0714 - 41 0.0714 - - 36 58 11 0 - 0 0.362 - 7 0.121 - 12 0.0172 - 13 0.121 - 14 0.0345 - 15 0.0172 - 19 0.0345 - 26 0.0172 - 29 0.103 - 33 0.155 - 41 0.0172 - - 70 7 4 0 - 0 0.286 - 4 0.286 - 8 0.143 - 15 0.286 - - 71 2 1 0 - 4 1 - - 14 114 16 6 - 0 0.307 - 2 0.0439 - 4 0.0263 - 7 0.0526 - 8 0.0175 - 12 0.0439 - 13 0.0175 - 15 0.00877 - 19 0.0965 - 21 0.0175 - 26 0.0351 - 29 0.105 - 32 0.202 - 34 0.00877 - 41 0.00877 - 45 0.00877 - - 8 15 8 0 - 0 0.2 - 12 0.0667 - 19 0.0667 - 21 0.0667 - 29 0.2 - 32 0.267 - 34 0.0667 - 45 0.0667 - - 15 2 2 0 - 4 0.5 - 29 0.5 - - 34 17 9 0 - 0 0.294 - 4 0.0588 - 7 0.176 - 12 0.0588 - 15 0.0588 - 19 0.0588 - 26 0.0588 - 29 0.0588 - 32 0.176 - - 35 5 4 0 - 0 0.2 - 4 0.2 - 12 0.2 - 26 0.4 - - 36 48 8 0 - 0 0.354 - 2 0.104 - 13 0.0417 - 19 0.0833 - 21 0.0208 - 29 0.0833 - 32 0.292 - 41 0.0208 - - 71 3 3 0 - 8 0.333 - 12 0.333 - 19 0.333 - - 15 18 6 0 - 7 0.0556 - 13 0.278 - 14 0.0556 - 15 0.5 - 16 0.0556 - 33 0.0556 - - 21 12 6 0 - 0 0.167 - 4 0.0833 - 7 0.333 - 8 0.0833 - 12 0.167 - 19 0.167 - - 31 2 2 0 - 13 0.5 - 14 0.5 - - 32 1 1 0 - 28 1 - - 34 4214 29 1 - 0 0.274 - 2 0.000475 - 3 0.00522 - 4 0.0282 - 5 0.00142 - 7 0.00878 - 8 0.00807 - 9 0.000475 - 10 0.000237 - 12 0.133 - 13 0.0157 - 14 0.0164 - 15 0.0216 - 16 0.000237 - 18 0.000237 - 19 0.0356 - 20 0.00119 - 21 0.046 - 26 0.000949 - 28 0.00119 - 29 0.159 - 31 0.000949 - 32 0.0729 - 33 0.161 - 39 0.000712 - 41 0.00617 - 42 0.000237 - 44 0.000237 - 45 0.000475 - - 21 2 1 0 - 13 1 - - 35 2343 27 2 - 0 0.268 - 3 0.00128 - 4 0.0448 - 7 0.0128 - 8 0.00512 - 9 0.000427 - 10 0.000854 - 12 0.0657 - 13 0.0111 - 14 0.00896 - 15 0.0188 - 19 0.0905 - 20 0.00512 - 21 0.0448 - 22 0.000854 - 26 0.0064 - 28 0.00427 - 29 0.193 - 31 0.000854 - 32 0.0952 - 33 0.111 - 34 0.000427 - 40 0.000854 - 41 0.00683 - 43 0.00128 - 44 0.000427 - 45 0.000854 - - 21 5 4 0 - 19 0.4 - 20 0.2 - 26 0.2 - 33 0.2 - - 49 1 1 0 - 28 1 - - 36 159 12 0 - 3 0.0126 - 8 0.201 - 9 0.00629 - 10 0.00629 - 13 0.371 - 14 0.302 - 15 0.0566 - 21 0.00629 - 30 0.00629 - 31 0.00629 - 39 0.0189 - 45 0.00629 - - 41 6 6 0 - 0 0.167 - 12 0.167 - 15 0.167 - 31 0.167 - 45 0.167 - 46 0.167 - - 45 2 1 0 - 8 1 - - 47 7352 36 19 - 0 0.266 - 2 0.000408 - 3 0.00354 - 4 0.0415 - 5 0.000952 - 7 0.0181 - 8 0.00871 - 9 0.000408 - 10 0.000816 - 12 0.102 - 13 0.00789 - 14 0.0139 - 15 0.0305 - 16 0.000272 - 17 0.000136 - 18 0.000272 - 19 0.0664 - 20 0.00394 - 21 0.0435 - 22 0.000408 - 23 0.000136 - 26 0.00367 - 28 0.00231 - 29 0.161 - 30 0.000272 - 31 0.00218 - 32 0.0768 - 33 0.132 - 34 0.000272 - 39 0.000408 - 40 0.00068 - 41 0.00952 - 42 0.000272 - 43 0.000408 - 44 0.000408 - 45 0.000816 - - 3 5 1 0 - 7 1 - - 4 61 10 0 - 0 0.262 - 7 0.148 - 12 0.115 - 13 0.164 - 15 0.131 - 18 0.0164 - 21 0.0164 - 29 0.0164 - 32 0.0492 - 33 0.082 - - 7 358 24 0 - 0 0.00559 - 3 0.00279 - 4 0.154 - 7 0.014 - 8 0.0559 - 9 0.00279 - 10 0.00838 - 13 0.0223 - 14 0.0922 - 15 0.19 - 16 0.00279 - 19 0.237 - 20 0.0279 - 21 0.0447 - 22 0.00279 - 23 0.00279 - 28 0.00279 - 29 0.0279 - 30 0.00559 - 31 0.0251 - 32 0.00838 - 33 0.0168 - 41 0.0447 - 45 0.00279 - - 8 31 12 0 - 0 0.0645 - 4 0.226 - 7 0.194 - 13 0.0323 - 15 0.0968 - 17 0.0323 - 19 0.161 - 20 0.0645 - 29 0.0323 - 40 0.0323 - 41 0.0323 - 42 0.0323 - - 9 2 2 0 - 12 0.5 - 15 0.5 - - 10 4 1 0 - 7 1 - - 13 163 13 0 - 0 0.307 - 4 0.092 - 7 0.147 - 8 0.0123 - 12 0.0307 - 15 0.0368 - 19 0.092 - 21 0.0245 - 26 0.0245 - 29 0.0859 - 33 0.0982 - 41 0.0429 - 44 0.00613 - - 14 107 14 0 - 0 0.327 - 4 0.028 - 7 0.0561 - 8 0.0187 - 12 0.0467 - 15 0.00935 - 19 0.103 - 21 0.0187 - 26 0.0374 - 29 0.112 - 32 0.215 - 34 0.00935 - 41 0.00935 - 45 0.00935 - - 15 2 2 0 - 7 0.5 - 33 0.5 - - 21 11 5 0 - 0 0.182 - 4 0.0909 - 7 0.364 - 12 0.182 - 19 0.182 - - 32 1 1 0 - 28 1 - - 34 4153 29 0 - 0 0.278 - 2 0.000482 - 3 0.0053 - 4 0.0287 - 5 0.00144 - 7 0.00891 - 8 0.00722 - 9 0.000482 - 10 0.000241 - 12 0.135 - 13 0.0065 - 14 0.0125 - 15 0.0219 - 16 0.000241 - 18 0.000241 - 19 0.0361 - 20 0.0012 - 21 0.0467 - 26 0.000963 - 28 0.0012 - 29 0.161 - 31 0.000963 - 32 0.0739 - 33 0.164 - 39 0.000722 - 41 0.00602 - 42 0.000241 - 44 0.000241 - 45 0.000482 - - 35 2312 26 0 - 0 0.271 - 3 0.0013 - 4 0.0433 - 7 0.013 - 8 0.00433 - 10 0.000865 - 12 0.0666 - 13 0.00519 - 14 0.00692 - 15 0.019 - 19 0.0917 - 20 0.00519 - 21 0.0437 - 22 0.000865 - 26 0.00649 - 28 0.00433 - 29 0.196 - 31 0.000865 - 32 0.0965 - 33 0.112 - 34 0.000433 - 40 0.000865 - 41 0.00692 - 43 0.0013 - 44 0.000433 - 45 0.000865 - - 49 2 2 0 - 15 0.5 - 19 0.5 - - 55 7 5 0 - 0 0.143 - 21 0.143 - 29 0.143 - 32 0.286 - 41 0.286 - - 57 59 14 0 - 0 0.407 - 4 0.0678 - 5 0.0169 - 12 0.0847 - 14 0.0169 - 15 0.0169 - 19 0.0508 - 21 0.0169 - 29 0.186 - 31 0.0169 - 32 0.0169 - 33 0.0508 - 40 0.0169 - 41 0.0339 - - 60 2 1 0 - 7 1 - - 62 1 1 0 - 40 1 - - 73 62 7 0 - 0 0.581 - 2 0.0161 - 12 0.129 - 19 0.0323 - 29 0.161 - 32 0.0484 - 33 0.0323 - - 48 4 2 0 - 13 0.75 - 19 0.25 - - 49 2 2 0 - 15 0.5 - 19 0.5 - - 55 28 8 4 - 0 0.0357 - 7 0.607 - 13 0.0357 - 21 0.0357 - 26 0.0357 - 29 0.0357 - 32 0.0714 - 41 0.143 - - 36 4 3 0 - 13 0.25 - 21 0.25 - 32 0.5 - - 41 3 1 0 - 41 1 - - 47 18 2 0 - 7 0.944 - 26 0.0556 - - 72 2 2 0 - 0 0.5 - 29 0.5 - - 57 60 15 1 - 0 0.4 - 4 0.0667 - 5 0.0167 - 7 0.0167 - 12 0.0833 - 14 0.0167 - 15 0.0167 - 19 0.05 - 21 0.0167 - 29 0.183 - 31 0.0167 - 32 0.0167 - 33 0.05 - 40 0.0167 - 41 0.0333 - - 55 18 6 0 - 0 0.444 - 4 0.0556 - 5 0.0556 - 12 0.111 - 21 0.0556 - 29 0.278 - - 58 4 4 0 - 0 0.25 - 4 0.25 - 13 0.25 - 19 0.25 - - 60 2 1 0 - 7 1 - - 62 1 1 0 - 40 1 - - 69 1 1 0 - 41 1 - - 72 78 8 0 - 7 0.846 - 8 0.0128 - 15 0.0128 - 19 0.0128 - 21 0.0256 - 26 0.0256 - 41 0.0513 - 44 0.0128 - - 73 62 7 0 - 0 0.581 - 2 0.0161 - 12 0.129 - 19 0.0323 - 29 0.161 - 32 0.0484 - 33 0.0323 - -73 1173 26 5 - 0 0.0682 - 2 0.00171 - 3 0.0358 - 4 0.137 - 5 0.0102 - 8 0.0171 - 12 0.0153 - 13 0.0341 - 14 0.0614 - 15 0.087 - 16 0.00171 - 19 0.14 - 20 0.00682 - 21 0.00171 - 26 0.00853 - 29 0.0171 - 32 0.00682 - 33 0.00341 - 34 0.299 - 35 0.0315 - 36 0.000853 - 37 0.000853 - 39 0.00512 - 40 0.00341 - 41 0.00341 - 43 0.00171 - - 7 373 5 0 - 4 0.00268 - 34 0.903 - 35 0.0885 - 36 0.00268 - 37 0.00268 - - 26 18 2 0 - 34 0.778 - 35 0.222 - - 47 391 22 1 - 0 0.102 - 2 0.00256 - 3 0.0537 - 4 0.205 - 5 0.0153 - 8 0.0256 - 12 0.023 - 13 0.0512 - 14 0.0921 - 15 0.13 - 16 0.00256 - 19 0.21 - 20 0.0102 - 21 0.00256 - 26 0.0128 - 29 0.0256 - 32 0.0102 - 33 0.00512 - 39 0.00767 - 40 0.00512 - 41 0.00512 - 43 0.00256 - - 64 1 1 0 - 41 1 - - 64 1 1 0 - 41 1 - - 72 389 22 1 - 0 0.1 - 2 0.00257 - 3 0.054 - 4 0.206 - 5 0.0154 - 8 0.0257 - 12 0.0231 - 13 0.0514 - 14 0.0925 - 15 0.131 - 16 0.00257 - 19 0.211 - 20 0.0103 - 21 0.00257 - 26 0.0129 - 29 0.0257 - 32 0.0103 - 33 0.00514 - 39 0.00771 - 40 0.00514 - 41 0.00257 - 43 0.00257 - - 26 18 8 0 - 4 0.389 - 13 0.0556 - 14 0.0556 - 15 0.0556 - 19 0.278 - 21 0.0556 - 40 0.0556 - 43 0.0556 - -74 426 24 23 - 0 0.00939 - 4 0.0986 - 7 0.0657 - 8 0.0188 - 10 0.00469 - 13 0.0329 - 14 0.0164 - 15 0.00939 - 19 0.0775 - 20 0.0164 - 21 0.0164 - 22 0.00939 - 26 0.0164 - 28 0.00469 - 31 0.00939 - 33 0.0141 - 34 0.00235 - 35 0.00469 - 40 0.124 - 41 0.0516 - 42 0.12 - 43 0.00469 - 46 0.00939 - 47 0.263 - - 2 4 4 0 - 7 0.25 - 14 0.25 - 19 0.25 - 26 0.25 - - 4 8 4 0 - 7 0.125 - 10 0.125 - 22 0.5 - 47 0.25 - - 6 2 2 0 - 8 0.5 - 40 0.5 - - 7 9 5 0 - 4 0.111 - 7 0.222 - 8 0.111 - 35 0.111 - 47 0.444 - - 9 23 6 0 - 4 0.348 - 7 0.0435 - 13 0.13 - 14 0.13 - 19 0.261 - 20 0.087 - - 12 1 1 0 - 28 1 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 7 0.25 - 41 0.25 - - 14 2 2 0 - 8 0.5 - 40 0.5 - - 15 4 3 0 - 26 0.25 - 40 0.5 - 43 0.25 - - 21 3 3 0 - 20 0.333 - 40 0.333 - 41 0.333 - - 22 10 2 0 - 4 0.3 - 19 0.7 - - 25 39 9 0 - 7 0.0513 - 8 0.0256 - 13 0.0769 - 15 0.0256 - 21 0.0513 - 31 0.0256 - 33 0.0769 - 42 0.538 - 47 0.128 - - 26 5 2 0 - 26 0.4 - 47 0.6 - - 35 2 1 0 - 7 1 - - 40 23 2 0 - 46 0.087 - 47 0.913 - - 41 4 2 0 - 4 0.75 - 7 0.25 - - 42 9 5 0 - 7 0.444 - 13 0.111 - 21 0.111 - 31 0.111 - 47 0.222 - - 47 174 22 17 - 0 0.0115 - 4 0.092 - 7 0.0517 - 8 0.0172 - 10 0.00575 - 13 0.0345 - 14 0.0172 - 15 0.00575 - 19 0.092 - 20 0.0172 - 21 0.0115 - 26 0.0172 - 28 0.00575 - 31 0.00575 - 33 0.0172 - 35 0.00575 - 40 0.0862 - 41 0.0517 - 42 0.121 - 43 0.00575 - 46 0.00575 - 47 0.322 - - 4 4 3 0 - 7 0.25 - 10 0.25 - 47 0.5 - - 7 8 4 0 - 7 0.25 - 8 0.125 - 35 0.125 - 47 0.5 - - 9 22 5 0 - 4 0.364 - 13 0.136 - 14 0.136 - 19 0.273 - 20 0.0909 - - 12 1 1 0 - 28 1 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 7 0.25 - 41 0.25 - - 14 2 2 0 - 8 0.5 - 40 0.5 - - 15 3 3 0 - 26 0.333 - 40 0.333 - 43 0.333 - - 21 3 3 0 - 20 0.333 - 40 0.333 - 41 0.333 - - 22 10 2 0 - 4 0.3 - 19 0.7 - - 25 39 9 0 - 7 0.0513 - 8 0.0256 - 13 0.0769 - 15 0.0256 - 21 0.0513 - 31 0.0256 - 33 0.0769 - 42 0.538 - 47 0.128 - - 26 5 2 0 - 26 0.4 - 47 0.6 - - 35 2 1 0 - 7 1 - - 40 21 1 0 - 47 1 - - 48 5 3 0 - 4 0.4 - 19 0.4 - 47 0.2 - - 55 19 5 0 - 4 0.0526 - 7 0.0526 - 40 0.368 - 41 0.316 - 47 0.211 - - 57 10 3 0 - 40 0.2 - 46 0.1 - 47 0.7 - - 69 1 1 0 - 0 1 - - 48 6 4 0 - 4 0.333 - 19 0.333 - 40 0.167 - 47 0.167 - - 55 33 8 0 - 4 0.0303 - 7 0.0606 - 15 0.0303 - 34 0.0303 - 40 0.485 - 41 0.212 - 42 0.0303 - 47 0.121 - - 57 15 4 0 - 40 0.333 - 42 0.133 - 46 0.0667 - 47 0.467 - - 69 4 2 0 - 0 0.25 - 40 0.75 - - 74 26 11 1 - 4 0.231 - 7 0.0769 - 8 0.0385 - 13 0.0385 - 15 0.0385 - 20 0.0385 - 21 0.0769 - 31 0.0385 - 40 0.0769 - 41 0.115 - 42 0.231 - - 41 6 4 0 - 4 0.333 - 13 0.167 - 20 0.167 - 40 0.333 - diff --git a/samples/Isabelle ROOT/filenames/ROOT b/samples/Isabelle ROOT/filenames/ROOT new file mode 100644 index 00000000..508fde01 --- /dev/null +++ b/samples/Isabelle ROOT/filenames/ROOT @@ -0,0 +1,1104 @@ +chapter HOL + +session HOL (main) = Pure + + description {* + Classical Higher-order Logic. + *} + options [document_graph] + global_theories + Main + Complex_Main + files + "Tools/Quickcheck/Narrowing_Engine.hs" + "Tools/Quickcheck/PNF_Narrowing_Engine.hs" + document_files + "root.bib" + "root.tex" + +session "HOL-Proofs" = Pure + + description {* + HOL-Main with explicit proof terms. + *} + options [document = false, quick_and_dirty = false] + theories Proofs (*sequential change of global flag!*) + theories "~~/src/HOL/Library/Old_Datatype" + files + "Tools/Quickcheck/Narrowing_Engine.hs" + "Tools/Quickcheck/PNF_Narrowing_Engine.hs" + +session "HOL-Library" (main) in Library = HOL + + description {* + Classical Higher-order Logic -- batteries included. + *} + theories + Library + (*conflicting type class instantiations*) + List_lexord + Sublist_Order + Product_Lexorder + Product_Order + Finite_Lattice + (*data refinements and dependent applications*) + AList_Mapping + Code_Binary_Nat + Code_Char + Code_Prolog + Code_Real_Approx_By_Float + Code_Target_Numeral + DAList + DAList_Multiset + RBT_Mapping + RBT_Set + (*legacy tools*) + Refute + Old_Datatype + Old_Recdef + Old_SMT + document_files "root.bib" "root.tex" + +session "HOL-Hahn_Banach" in Hahn_Banach = HOL + + description {* + Author: Gertrud Bauer, TU Munich + + The Hahn-Banach theorem for real vector spaces. + + This is the proof of the Hahn-Banach theorem for real vectorspaces, + following H. Heuser, Funktionalanalysis, p. 228 -232. The Hahn-Banach + theorem is one of the fundamental theorems of functional analysis. It is a + conclusion of Zorn's lemma. + + Two different formaulations of the theorem are presented, one for general + real vectorspaces and its application to normed vectorspaces. + + The theorem says, that every continous linearform, defined on arbitrary + subspaces (not only one-dimensional subspaces), can be extended to a + continous linearform on the whole vectorspace. + *} + options [document_graph] + theories Hahn_Banach + document_files "root.bib" "root.tex" + +session "HOL-Induct" in Induct = HOL + + description {* + Examples of (Co)Inductive Definitions. + + Comb proves the Church-Rosser theorem for combinators (see + http://www.cl.cam.ac.uk/ftp/papers/reports/TR396-lcp-generic-automatic-proof-tools.ps.gz). + + Mutil is the famous Mutilated Chess Board problem (see + http://www.cl.cam.ac.uk/ftp/papers/reports/TR394-lcp-mutilated-chess-board.dvi.gz). + + PropLog proves the completeness of a formalization of propositional logic + (see + http://www.cl.cam.ac.uk/Research/Reports/TR312-lcp-set-II.ps.gz). + + Exp demonstrates the use of iterated inductive definitions to reason about + mutually recursive relations. + *} + theories [document = false] + "~~/src/HOL/Library/Old_Datatype" + theories [quick_and_dirty] + Common_Patterns + theories + QuoDataType + QuoNestedDataType + Term + SList + ABexp + Tree + Ordinals + Sigma_Algebra + Comb + PropLog + Com + document_files "root.tex" + +session "HOL-IMP" in IMP = HOL + + options [document_graph, document_variants=document] + theories [document = false] + "~~/src/Tools/Permanent_Interpretation" + "~~/src/HOL/Library/While_Combinator" + "~~/src/HOL/Library/Char_ord" + "~~/src/HOL/Library/List_lexord" + "~~/src/HOL/Library/Quotient_List" + "~~/src/HOL/Library/Extended" + theories + BExp + ASM + Finite_Reachable + Denotational + Compiler2 + Poly_Types + Sec_Typing + Sec_TypingT + Def_Init_Big + Def_Init_Small + Fold + Live + Live_True + Hoare_Examples + VCG + Hoare_Total + Collecting1 + Collecting_Examples + Abs_Int_Tests + Abs_Int1_parity + Abs_Int1_const + Abs_Int3 + "Abs_Int_ITP/Abs_Int1_parity_ITP" + "Abs_Int_ITP/Abs_Int1_const_ITP" + "Abs_Int_ITP/Abs_Int3_ITP" + "Abs_Int_Den/Abs_Int_den2" + Procs_Dyn_Vars_Dyn + Procs_Stat_Vars_Dyn + Procs_Stat_Vars_Stat + C_like + OO + document_files "root.bib" "root.tex" + +session "HOL-IMPP" in IMPP = HOL + + description {* + Author: David von Oheimb + Copyright 1999 TUM + + IMPP -- An imperative language with procedures. + + This is an extension of IMP with local variables and mutually recursive + procedures. For documentation see "Hoare Logic for Mutual Recursion and + Local Variables" (http://isabelle.in.tum.de/Bali/papers/FSTTCS99.html). + *} + options [document = false] + theories EvenOdd + +session "HOL-Import" in Import = HOL + + options [document_graph] + theories HOL_Light_Maps + theories [condition = HOL_LIGHT_BUNDLE] HOL_Light_Import + +session "HOL-Number_Theory" in Number_Theory = HOL + + description {* + Fundamental Theorem of Arithmetic, Chinese Remainder Theorem, Fermat/Euler + Theorem, Wilson's Theorem, some lemmas for Quadratic Reciprocity. + *} + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/FuncSet" + "~~/src/HOL/Library/Multiset" + "~~/src/HOL/Algebra/Ring" + "~~/src/HOL/Algebra/FiniteProduct" + theories + Pocklington + Gauss + Number_Theory + Euclidean_Algorithm + document_files + "root.tex" + +session "HOL-Old_Number_Theory" in Old_Number_Theory = HOL + + description {* + Fundamental Theorem of Arithmetic, Chinese Remainder Theorem, Fermat/Euler + Theorem, Wilson's Theorem, Quadratic Reciprocity. + *} + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/Infinite_Set" + "~~/src/HOL/Library/Permutation" + theories + Fib + Factorization + Chinese + WilsonRuss + WilsonBij + Quadratic_Reciprocity + Primes + Pocklington + document_files + "root.bib" + "root.tex" + +session "HOL-Hoare" in Hoare = HOL + + description {* + Verification of imperative programs (verification conditions are generated + automatically from pre/post conditions and loop invariants). + *} + theories Hoare + document_files "root.bib" "root.tex" + +session "HOL-Hoare_Parallel" in Hoare_Parallel = HOL + + description {* + Verification of shared-variable imperative programs a la Owicki-Gries. + (verification conditions are generated automatically). + *} + options [document_graph] + theories Hoare_Parallel + document_files "root.bib" "root.tex" + +session "HOL-Codegenerator_Test" in Codegenerator_Test = "HOL-Library" + + options [document = false, document_graph = false, browser_info = false] + theories + Generate + Generate_Binary_Nat + Generate_Target_Nat + Generate_Efficient_Datastructures + Generate_Pretty_Char + theories [condition = ISABELLE_GHC] + Code_Test_GHC + theories [condition = ISABELLE_MLTON] + Code_Test_MLton + theories [condition = ISABELLE_OCAMLC] + Code_Test_OCaml + theories [condition = ISABELLE_POLYML] + Code_Test_PolyML + theories [condition = ISABELLE_SCALA] + Code_Test_Scala + theories [condition = ISABELLE_SMLNJ] + Code_Test_SMLNJ + +session "HOL-Metis_Examples" in Metis_Examples = HOL + + description {* + Author: Lawrence C Paulson, Cambridge University Computer Laboratory + Author: Jasmin Blanchette, TU Muenchen + + Testing Metis and Sledgehammer. + *} + options [document = false] + theories + Abstraction + Big_O + Binary_Tree + Clausification + Message + Proxies + Tarski + Trans_Closure + Sets + +session "HOL-Nitpick_Examples" in Nitpick_Examples = HOL + + description {* + Author: Jasmin Blanchette, TU Muenchen + Copyright 2009 + *} + options [document = false] + theories [quick_and_dirty] Nitpick_Examples + +session "HOL-Algebra" (main) in Algebra = HOL + + description {* + Author: Clemens Ballarin, started 24 September 1999 + + The Isabelle Algebraic Library. + *} + options [document_graph] + theories [document = false] + (* Preliminaries from set and number theory *) + "~~/src/HOL/Library/FuncSet" + "~~/src/HOL/Number_Theory/Primes" + "~~/src/HOL/Number_Theory/Binomial" + "~~/src/HOL/Library/Permutation" + theories + (*** New development, based on explicit structures ***) + (* Groups *) + FiniteProduct (* Product operator for commutative groups *) + Sylow (* Sylow's theorem *) + Bij (* Automorphism Groups *) + + (* Rings *) + Divisibility (* Rings *) + IntRing (* Ideals and residue classes *) + UnivPoly (* Polynomials *) + document_files "root.bib" "root.tex" + +session "HOL-Auth" in Auth = HOL + + description {* + A new approach to verifying authentication protocols. + *} + options [document_graph] + theories + Auth_Shared + Auth_Public + "Smartcard/Auth_Smartcard" + "Guard/Auth_Guard_Shared" + "Guard/Auth_Guard_Public" + document_files "root.tex" + +session "HOL-UNITY" in UNITY = "HOL-Auth" + + description {* + Author: Lawrence C Paulson, Cambridge University Computer Laboratory + Copyright 1998 University of Cambridge + + Verifying security protocols using Chandy and Misra's UNITY formalism. + *} + options [document_graph] + theories + (*Basic meta-theory*) + "UNITY_Main" + + (*Simple examples: no composition*) + "Simple/Deadlock" + "Simple/Common" + "Simple/Network" + "Simple/Token" + "Simple/Channel" + "Simple/Lift" + "Simple/Mutex" + "Simple/Reach" + "Simple/Reachability" + + (*Verifying security protocols using UNITY*) + "Simple/NSP_Bad" + + (*Example of composition*) + "Comp/Handshake" + + (*Universal properties examples*) + "Comp/Counter" + "Comp/Counterc" + "Comp/Priority" + + "Comp/TimerArray" + "Comp/Progress" + + "Comp/Alloc" + "Comp/AllocImpl" + "Comp/Client" + + (*obsolete*) + "ELT" + document_files "root.tex" + +session "HOL-Unix" in Unix = HOL + + options [print_mode = "no_brackets,no_type_brackets"] + theories Unix + document_files "root.bib" "root.tex" + +session "HOL-ZF" in ZF = HOL + + theories MainZF Games + document_files "root.tex" + +session "HOL-Imperative_HOL" in Imperative_HOL = HOL + + options [document_graph, print_mode = "iff,no_brackets"] + theories [document = false] + "~~/src/HOL/Library/Countable" + "~~/src/HOL/Library/Monad_Syntax" + "~~/src/HOL/Library/LaTeXsugar" + theories Imperative_HOL_ex + document_files "root.bib" "root.tex" + +session "HOL-Decision_Procs" in Decision_Procs = HOL + + description {* + Various decision procedures, typically involving reflection. + *} + options [condition = ML_SYSTEM_POLYML, document = false] + theories Decision_Procs + +session "HOL-Proofs-ex" in "Proofs/ex" = "HOL-Proofs" + + options [document = false, parallel_proofs = 0] + theories + Hilbert_Classical + XML_Data + +session "HOL-Proofs-Extraction" in "Proofs/Extraction" = "HOL-Proofs" + + description {* + Examples for program extraction in Higher-Order Logic. + *} + options [condition = ML_SYSTEM_POLYML, parallel_proofs = 0, quick_and_dirty = false] + theories [document = false] + "~~/src/HOL/Library/Code_Target_Numeral" + "~~/src/HOL/Library/Monad_Syntax" + "~~/src/HOL/Number_Theory/Primes" + "~~/src/HOL/Number_Theory/UniqueFactorization" + "~~/src/HOL/Library/State_Monad" + theories + Greatest_Common_Divisor + Warshall + Higman_Extraction + Pigeonhole + Euclid + document_files "root.bib" "root.tex" + +session "HOL-Proofs-Lambda" in "Proofs/Lambda" = "HOL-Proofs" + + description {* + Lambda Calculus in de Bruijn's Notation. + + This session defines lambda-calculus terms with de Bruijn indixes and + proves confluence of beta, eta and beta+eta. + + The paper "More Church-Rosser Proofs (in Isabelle/HOL)" describes the whole + theory (see http://www.in.tum.de/~nipkow/pubs/jar2001.html). + *} + options [document_graph, print_mode = "no_brackets", parallel_proofs = 0, + quick_and_dirty = false] + theories [document = false] + "~~/src/HOL/Library/Code_Target_Int" + theories + Eta + StrongNorm + Standardization + WeakNorm + document_files "root.bib" "root.tex" + +session "HOL-Prolog" in Prolog = HOL + + description {* + Author: David von Oheimb (based on a lecture on Lambda Prolog by Nadathur) + + A bare-bones implementation of Lambda-Prolog. + + This is a simple exploratory implementation of Lambda-Prolog in HOL, + including some minimal examples (in Test.thy) and a more typical example of + a little functional language and its type system. + *} + options [document = false] + theories Test Type + +session "HOL-MicroJava" in MicroJava = HOL + + description {* + Formalization of a fragment of Java, together with a corresponding virtual + machine and a specification of its bytecode verifier and a lightweight + bytecode verifier, including proofs of type-safety. + *} + options [document_graph] + theories [document = false] "~~/src/HOL/Library/While_Combinator" + theories MicroJava + document_files + "introduction.tex" + "root.bib" + "root.tex" + +session "HOL-NanoJava" in NanoJava = HOL + + description {* + Hoare Logic for a tiny fragment of Java. + *} + options [document_graph] + theories Example + document_files "root.bib" "root.tex" + +session "HOL-Bali" in Bali = HOL + + options [document_graph] + theories + AxExample + AxSound + AxCompl + Trans + document_files "root.tex" + +session "HOL-IOA" in IOA = HOL + + description {* + Author: Tobias Nipkow and Konrad Slind and Olaf Müller + Copyright 1994--1996 TU Muenchen + + The meta-theory of I/O-Automata in HOL. This formalization has been + significantly changed and extended, see HOLCF/IOA. There are also the + proofs of two communication protocols which formerly have been here. + + @inproceedings{Nipkow-Slind-IOA, + author={Tobias Nipkow and Konrad Slind}, + title={{I/O} Automata in {Isabelle/HOL}}, + booktitle={Proc.\ TYPES Workshop 1994}, + publisher=Springer, + series=LNCS, + note={To appear}} + ftp://ftp.informatik.tu-muenchen.de/local/lehrstuhl/nipkow/ioa.ps.gz + + and + + @inproceedings{Mueller-Nipkow, + author={Olaf M\"uller and Tobias Nipkow}, + title={Combining Model Checking and Deduction for {I/O}-Automata}, + booktitle={Proc.\ TACAS Workshop}, + organization={Aarhus University, BRICS report}, + year=1995} + ftp://ftp.informatik.tu-muenchen.de/local/lehrstuhl/nipkow/tacas.dvi.gz + *} + options [document = false] + theories Solve + +session "HOL-Lattice" in Lattice = HOL + + description {* + Author: Markus Wenzel, TU Muenchen + + Basic theory of lattices and orders. + *} + theories CompleteLattice + document_files "root.tex" + +session "HOL-ex" in ex = HOL + + description {* + Miscellaneous examples for Higher-Order Logic. + *} + options [condition = ML_SYSTEM_POLYML] + theories [document = false] + "~~/src/HOL/Library/State_Monad" + Code_Binary_Nat_examples + "~~/src/HOL/Library/FuncSet" + Eval_Examples + Normalization_by_Evaluation + Hebrew + Chinese + Serbian + "~~/src/HOL/Library/FinFun_Syntax" + "~~/src/HOL/Library/Refute" + "~~/src/HOL/Library/Transitive_Closure_Table" + Cartouche_Examples + theories + Adhoc_Overloading_Examples + Iff_Oracle + Coercion_Examples + Higher_Order_Logic + Abstract_NAT + Guess + Fundefs + Induction_Schema + LocaleTest2 + Records + While_Combinator_Example + MonoidGroup + BinEx + Hex_Bin_Examples + Antiquote + Multiquote + PER + NatSum + ThreeDivides + Intuitionistic + CTL + Arith_Examples + BT + Tree23 + Bubblesort + MergeSort + Lagrange + Groebner_Examples + MT + Unification + Primrec + Tarski + Classical + Set_Theory + Termination + Coherent + PresburgerEx + Reflection_Examples + Sqrt + Sqrt_Script + Transfer_Ex + Transfer_Int_Nat + Transitive_Closure_Table_Ex + HarmonicSeries + Refute_Examples + Execute_Choice + Gauge_Integration + Dedekind_Real + Quicksort + Birthday_Paradox + List_to_Set_Comprehension_Examples + Seq + Simproc_Tests + Executable_Relation + FinFunPred + Set_Comprehension_Pointfree_Examples + Parallel_Example + IArray_Examples + SVC_Oracle + Simps_Case_Conv_Examples + ML + SAT_Examples + SOS + SOS_Cert + theories [skip_proofs = false] + Meson_Test + theories [condition = SVC_HOME] + svc_test + theories [condition = ISABELLE_FULL_TEST] + Sudoku + document_files "root.bib" "root.tex" + +session "HOL-Isar_Examples" in Isar_Examples = HOL + + description {* + Miscellaneous Isabelle/Isar examples for Higher-Order Logic. + *} + theories [document = false] + "~~/src/HOL/Library/Lattice_Syntax" + "../Number_Theory/Primes" + theories + Basic_Logic + Cantor + Drinker + Expr_Compiler + Fibonacci + Group + Group_Context + Group_Notepad + Hoare_Ex + Knaster_Tarski + Mutilated_Checkerboard + Nested_Datatype + Peirce + Puzzle + Summation + document_files + "root.bib" + "root.tex" + "style.tex" + +session "HOL-SET_Protocol" in SET_Protocol = HOL + + description {* + Verification of the SET Protocol. + *} + options [document_graph] + theories [document = false] "~~/src/HOL/Library/Nat_Bijection" + theories SET_Protocol + document_files "root.tex" + +session "HOL-Matrix_LP" in Matrix_LP = HOL + + description {* + Two-dimensional matrices and linear programming. + *} + options [document_graph] + theories Cplex + document_files "root.tex" + +session "HOL-TLA" in TLA = HOL + + description {* + Lamport's Temporal Logic of Actions. + *} + options [document = false] + theories TLA + +session "HOL-TLA-Inc" in "TLA/Inc" = "HOL-TLA" + + options [document = false] + theories Inc + +session "HOL-TLA-Buffer" in "TLA/Buffer" = "HOL-TLA" + + options [document = false] + theories DBuffer + +session "HOL-TLA-Memory" in "TLA/Memory" = "HOL-TLA" + + options [document = false] + theories MemoryImplementation + +session "HOL-TPTP" in TPTP = HOL + + description {* + Author: Jasmin Blanchette, TU Muenchen + Author: Nik Sultana, University of Cambridge + Copyright 2011 + + TPTP-related extensions. + *} + options [document = false] + theories + ATP_Theory_Export + MaSh_Eval + TPTP_Interpret + THF_Arith + TPTP_Proof_Reconstruction + theories + ATP_Problem_Import + +session "HOL-Multivariate_Analysis" (main) in Multivariate_Analysis = HOL + + options [document_graph] + theories + Multivariate_Analysis + Determinants + PolyRoots + Complex_Analysis_Basics + document_files + "root.tex" + +session "HOL-Probability" in "Probability" = "HOL-Multivariate_Analysis" + + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/Countable" + "~~/src/HOL/Library/Permutation" + "~~/src/HOL/Library/Order_Continuity" + "~~/src/HOL/Library/Diagonal_Subsequence" + theories + Probability + "ex/Dining_Cryptographers" + "ex/Koepf_Duermuth_Countermeasure" + document_files "root.tex" + +session "HOL-Nominal" (main) in Nominal = HOL + + options [document = false] + theories Nominal + +session "HOL-Nominal-Examples" in "Nominal/Examples" = "HOL-Nominal" + + options [condition = ML_SYSTEM_POLYML, document = false] + theories + Nominal_Examples_Base + theories [condition = ISABELLE_FULL_TEST] + Nominal_Examples + theories [quick_and_dirty] + VC_Condition + +session "HOL-Cardinals" in Cardinals = HOL + + description {* + Ordinals and Cardinals, Full Theories. + *} + options [document = false] + theories Cardinals + document_files + "intro.tex" + "root.tex" + "root.bib" + +session "HOL-Datatype_Examples" in Datatype_Examples = HOL + + description {* + (Co)datatype Examples, including large ones from John Harrison. + *} + options [document = false] + theories + "~~/src/HOL/Library/Old_Datatype" + Compat + Lambda_Term + Process + TreeFsetI + "Derivation_Trees/Gram_Lang" + "Derivation_Trees/Parallel" + Koenig + Stream_Processor + Misc_Codatatype + Misc_Datatype + Misc_Primcorec + Misc_Primrec + theories [condition = ISABELLE_FULL_TEST] + Brackin + IsaFoR + Misc_N2M + +session "HOL-Word" (main) in Word = HOL + + options [document_graph] + theories Word + document_files "root.bib" "root.tex" + +session "HOL-Word-Examples" in "Word/Examples" = "HOL-Word" + + options [document = false] + theories WordExamples + +session "HOL-Statespace" in Statespace = HOL + + theories [skip_proofs = false] + StateSpaceEx + document_files "root.tex" + +session "HOL-NSA" in NSA = HOL + + description {* + Nonstandard analysis. + *} + options [document_graph] + theories Hypercomplex + document_files "root.tex" + +session "HOL-NSA-Examples" in "NSA/Examples" = "HOL-NSA" + + options [document = false] + theories NSPrimes + +session "HOL-Mirabelle" in Mirabelle = HOL + + options [document = false] + theories Mirabelle_Test + +session "HOL-Mirabelle-ex" in "Mirabelle/ex" = "HOL-Mirabelle" + + options [document = false, timeout = 60] + theories Ex + +session "HOL-Word-SMT_Examples" in SMT_Examples = "HOL-Word" + + options [document = false, quick_and_dirty] + theories + Boogie + SMT_Examples + SMT_Word_Examples + theories [condition = ISABELLE_FULL_TEST] + SMT_Tests + files + "Boogie_Dijkstra.certs" + "Boogie_Max.certs" + "SMT_Examples.certs" + "SMT_Word_Examples.certs" + "VCC_Max.certs" + +session "HOL-SPARK" (main) in "SPARK" = "HOL-Word" + + options [document = false] + theories SPARK + +session "HOL-SPARK-Examples" in "SPARK/Examples" = "HOL-SPARK" + + options [document = false] + theories + "Gcd/Greatest_Common_Divisor" + + "Liseq/Longest_Increasing_Subsequence" + + "RIPEMD-160/F" + "RIPEMD-160/Hash" + "RIPEMD-160/K_L" + "RIPEMD-160/K_R" + "RIPEMD-160/R_L" + "RIPEMD-160/Round" + "RIPEMD-160/R_R" + "RIPEMD-160/S_L" + "RIPEMD-160/S_R" + + "Sqrt/Sqrt" + files + "Gcd/greatest_common_divisor/g_c_d.fdl" + "Gcd/greatest_common_divisor/g_c_d.rls" + "Gcd/greatest_common_divisor/g_c_d.siv" + "Liseq/liseq/liseq_length.fdl" + "Liseq/liseq/liseq_length.rls" + "Liseq/liseq/liseq_length.siv" + "RIPEMD-160/rmd/f.fdl" + "RIPEMD-160/rmd/f.rls" + "RIPEMD-160/rmd/f.siv" + "RIPEMD-160/rmd/hash.fdl" + "RIPEMD-160/rmd/hash.rls" + "RIPEMD-160/rmd/hash.siv" + "RIPEMD-160/rmd/k_l.fdl" + "RIPEMD-160/rmd/k_l.rls" + "RIPEMD-160/rmd/k_l.siv" + "RIPEMD-160/rmd/k_r.fdl" + "RIPEMD-160/rmd/k_r.rls" + "RIPEMD-160/rmd/k_r.siv" + "RIPEMD-160/rmd/r_l.fdl" + "RIPEMD-160/rmd/r_l.rls" + "RIPEMD-160/rmd/r_l.siv" + "RIPEMD-160/rmd/round.fdl" + "RIPEMD-160/rmd/round.rls" + "RIPEMD-160/rmd/round.siv" + "RIPEMD-160/rmd/r_r.fdl" + "RIPEMD-160/rmd/r_r.rls" + "RIPEMD-160/rmd/r_r.siv" + "RIPEMD-160/rmd/s_l.fdl" + "RIPEMD-160/rmd/s_l.rls" + "RIPEMD-160/rmd/s_l.siv" + "RIPEMD-160/rmd/s_r.fdl" + "RIPEMD-160/rmd/s_r.rls" + "RIPEMD-160/rmd/s_r.siv" + +session "HOL-SPARK-Manual" in "SPARK/Manual" = "HOL-SPARK" + + options [show_question_marks = false] + theories + Example_Verification + VC_Principles + Reference + Complex_Types + files + "complex_types_app/initialize.fdl" + "complex_types_app/initialize.rls" + "complex_types_app/initialize.siv" + "loop_invariant/proc1.fdl" + "loop_invariant/proc1.rls" + "loop_invariant/proc1.siv" + "loop_invariant/proc2.fdl" + "loop_invariant/proc2.rls" + "loop_invariant/proc2.siv" + "simple_greatest_common_divisor/g_c_d.fdl" + "simple_greatest_common_divisor/g_c_d.rls" + "simple_greatest_common_divisor/g_c_d.siv" + document_files + "complex_types.ads" + "complex_types_app.adb" + "complex_types_app.ads" + "Gcd.adb" + "Gcd.ads" + "intro.tex" + "loop_invariant.adb" + "loop_invariant.ads" + "root.bib" + "root.tex" + "Simple_Gcd.adb" + "Simple_Gcd.ads" + +session "HOL-Mutabelle" in Mutabelle = HOL + + options [document = false] + theories MutabelleExtra + +session "HOL-Quickcheck_Examples" in Quickcheck_Examples = HOL + + options [document = false] + theories + Quickcheck_Examples + Quickcheck_Lattice_Examples + Completeness + Quickcheck_Interfaces + theories [condition = ISABELLE_GHC] + Hotel_Example + Quickcheck_Narrowing_Examples + +session "HOL-Quickcheck_Benchmark" in Quickcheck_Benchmark = HOL + + theories [condition = ISABELLE_FULL_TEST, quick_and_dirty] + Find_Unused_Assms_Examples + Needham_Schroeder_No_Attacker_Example + Needham_Schroeder_Guided_Attacker_Example + Needham_Schroeder_Unguided_Attacker_Example + +session "HOL-Quotient_Examples" in Quotient_Examples = HOL + + description {* + Author: Cezary Kaliszyk and Christian Urban + *} + options [document = false] + theories + DList + FSet + Quotient_Int + Quotient_Message + Lift_FSet + Lift_Set + Lift_Fun + Quotient_Rat + Lift_DList + Int_Pow + +session "HOL-Predicate_Compile_Examples" in Predicate_Compile_Examples = HOL + + options [document = false] + theories + Examples + Predicate_Compile_Tests + (* FIXME + Predicate_Compile_Quickcheck_Examples -- should be added again soon (since 21-Oct-2010) *) + Specialisation_Examples + IMP_1 + IMP_2 + (* FIXME since 21-Jul-2011 + Hotel_Example_Small_Generator + IMP_3 + IMP_4 *) + theories [condition = "ISABELLE_SWIPL"] + Code_Prolog_Examples + Context_Free_Grammar_Example + Hotel_Example_Prolog + Lambda_Example + List_Examples + theories [condition = "ISABELLE_SWIPL", quick_and_dirty] + Reg_Exp_Example + +session HOLCF (main) in HOLCF = HOL + + description {* + Author: Franz Regensburger + Author: Brian Huffman + + HOLCF -- a semantic extension of HOL by the LCF logic. + *} + options [document_graph] + theories [document = false] + "~~/src/HOL/Library/Nat_Bijection" + "~~/src/HOL/Library/Countable" + theories + Plain_HOLCF + Fixrec + HOLCF + document_files "root.tex" + +session "HOLCF-Tutorial" in "HOLCF/Tutorial" = HOLCF + + theories + Domain_ex + Fixrec_ex + New_Domain + document_files "root.tex" + +session "HOLCF-Library" in "HOLCF/Library" = HOLCF + + options [document = false] + theories HOLCF_Library + +session "HOLCF-IMP" in "HOLCF/IMP" = HOLCF + + description {* + IMP -- A WHILE-language and its Semantics. + + This is the HOLCF-based denotational semantics of a simple WHILE-language. + *} + options [document = false] + theories HoareEx + document_files "root.tex" + +session "HOLCF-ex" in "HOLCF/ex" = HOLCF + + description {* + Miscellaneous examples for HOLCF. + *} + options [document = false] + theories + Dnat + Dagstuhl + Focus_ex + Fix2 + Hoare + Concurrency_Monad + Loop + Powerdomain_ex + Domain_Proofs + Letrec + Pattern_Match + +session "HOLCF-FOCUS" in "HOLCF/FOCUS" = HOLCF + + description {* + FOCUS: a theory of stream-processing functions Isabelle/HOLCF. + + For introductions to FOCUS, see + + "The Design of Distributed Systems - An Introduction to FOCUS" + http://www4.in.tum.de/publ/html.php?e=2 + + "Specification and Refinement of a Buffer of Length One" + http://www4.in.tum.de/publ/html.php?e=15 + + "Specification and Development of Interactive Systems: Focus on Streams, + Interfaces, and Refinement" http://www4.in.tum.de/publ/html.php?e=321 + *} + options [document = false] + theories + Fstreams + FOCUS + Buffer_adm + +session IOA in "HOLCF/IOA" = HOLCF + + description {* + Author: Olaf Mueller + Copyright 1997 TU München + + A formalization of I/O automata in HOLCF. + + The distribution contains simulation relations, temporal logic, and an + abstraction theory. Everything is based upon a domain-theoretic model of + finite and infinite sequences. + *} + options [document = false] + theories "meta_theory/Abstraction" + +session "IOA-ABP" in "HOLCF/IOA/ABP" = IOA + + description {* + Author: Olaf Mueller + + The Alternating Bit Protocol performed in I/O-Automata. + *} + options [document = false] + theories Correctness + +session "IOA-NTP" in "HOLCF/IOA/NTP" = IOA + + description {* + Author: Tobias Nipkow & Konrad Slind + + A network transmission protocol, performed in the + I/O automata formalization by Olaf Mueller. + *} + options [document = false] + theories Correctness + +session "IOA-Storage" in "HOLCF/IOA/Storage" = IOA + + description {* + Author: Olaf Mueller + + Memory storage case study. + *} + options [document = false] + theories Correctness + +session "IOA-ex" in "HOLCF/IOA/ex" = IOA + + description {* + Author: Olaf Mueller + *} + options [document = false] + theories + TrivEx + TrivEx2 + +session "HOL-Record_Benchmark" in Record_Benchmark = HOL + + description {* + Some benchmark on large record. + *} + options [document = false] + theories [condition = ISABELLE_FULL_TEST] + Record_Benchmark + diff --git a/samples/Linux Kernel Module/bcm4334x.mod b/samples/Linux Kernel Module/bcm4334x.mod new file mode 100644 index 00000000..8b35ba24 --- /dev/null +++ b/samples/Linux Kernel Module/bcm4334x.mod @@ -0,0 +1,2 @@ +/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcm4334x.ko +/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_pno.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_ip.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_custom_gpio.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_sched.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_wq.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/aiutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmevent.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmwifi_channels.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/hndpmu.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/linux_osl.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/sbutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/siutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_android.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfgp2p.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg_btcoex.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wldev_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_linux_mon.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_platdev.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cdc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_wlfc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_sdio.o diff --git a/samples/Linux Kernel Module/mbcache.mod b/samples/Linux Kernel Module/mbcache.mod new file mode 100644 index 00000000..1478b3a1 --- /dev/null +++ b/samples/Linux Kernel Module/mbcache.mod @@ -0,0 +1,2 @@ +fs/mbcache.ko +fs/mbcache.o diff --git a/samples/Linux Kernel Module/md5.mod b/samples/Linux Kernel Module/md5.mod new file mode 100644 index 00000000..85778eb0 --- /dev/null +++ b/samples/Linux Kernel Module/md5.mod @@ -0,0 +1,2 @@ +crypto/md5.ko +crypto/md5.o diff --git a/samples/Modula-2/HuffChan.mod b/samples/Modula-2/HuffChan.mod new file mode 100644 index 00000000..14073609 --- /dev/null +++ b/samples/Modula-2/HuffChan.mod @@ -0,0 +1,329 @@ +IMPLEMENTATION MODULE HuffChan; + +(* + This module shows how to redefine standard IO file functions. It provides + functions for reading and writing packed files opened in Raw mode. +*) + +IMPORT IOChan, IOLink, ChanConsts, IOConsts, SYSTEM, Strings; +FROM Storage IMPORT ALLOCATE, DEALLOCATE; + +CONST + rbldFrq = 512; (* means: every 512 bytes rebuild table *) + +TYPE + charTap = POINTER TO ARRAY [0..MAX(INTEGER)-1] OF CHAR; + smbTp = POINTER TO smbT; + + smbT = RECORD (* Huffman's tree *) + ch : CHAR; + n : CARDINAL; (* frequncy of char ch *) + left,right,next : smbTp; + END; + + tblT = RECORD (* bit sequence for code *) + vl : CARDINAL; (* bit sequence *) + cnt : INTEGER; (* it length *) + END; + + lclDataT = RECORD (* channel's local data *) + tRoot : smbTp; + htbl : ARRAY [0..255] OF tblT; (* code -> bit sequence table *) + ftbl : ARRAY [0..255] OF CARDINAL; (* frequncey table *) + wBf,rb1,rb2 : CARDINAL; + wbc,rbc,smc : INTEGER; + chid : IOChan.ChanId; + END; + lclDataTp = POINTER TO lclDataT; + charp = POINTER TO CHAR; + +VAR + did : IOLink.DeviceId; + ldt : lclDataTp; + + +PROCEDURE Shf(a:CARDINAL; b : INTEGER) : CARDINAL; (* shl a,b (or shr) *) +BEGIN + RETURN SYSTEM.CAST(CARDINAL,SYSTEM.SHIFT(SYSTEM.CAST(BITSET,a),b)); +END Shf; + +PROCEDURE wrDword(a:CARDINAL); (* write 4 bytes to file *) +BEGIN + IOChan.RawWrite(ldt^.chid,SYSTEM.ADR(a),4); +END wrDword; + +PROCEDURE rdDword() : CARDINAL; (* read 4 bytes from file *) +VAR + a,z : CARDINAL; +BEGIN + a:=0; + IOChan.RawRead(ldt^.chid,SYSTEM.ADR(a),4,z); + RETURN a; +END rdDword; + +PROCEDURE wrSmb(ch : CHAR); (* write bit sequence for code ch *) +VAR + v,h : CARDINAL; + b,c : INTEGER; +BEGIN + WITH ldt^ DO + v:=htbl[ORD(ch)].vl; + c:=htbl[ORD(ch)].cnt; + IF c+wbc<=32 THEN + wBf:=Shf(wBf,c); + wBf:=wBf+v; + wbc:=wbc+c; + IF wbc=32 THEN + wrDword(wBf); + wBf:=0; wbc:=0; + END; + RETURN; + END; + b:=c+wbc-32; + h:=Shf(v,-b); + wBf:=Shf(wBf,32-wbc)+h; + wrDword(wBf); + wBf:=v-Shf(h,b); + wbc:=b; + END; +END wrSmb; + +PROCEDURE flush(); (* write data in buffer *) +BEGIN + WITH ldt^ DO + wBf:=Shf(wBf,32-wbc); + wrDword(wBf); + END; +END flush; + +PROCEDURE getSym() : CHAR; (* find code for first bit sequence in buffer *) +VAR + t,i : CARDINAL; + b : INTEGER; +BEGIN + WITH ldt^ DO + IF rbc<=32 THEN + rb2:=rdDword(); + t:=Shf(rb2,-rbc); + IF rbc=32 THEN t:=0; END; + rb1:=rb1+t; + rb2:=Shf(rb2,32-rbc); + IF rbc=0 THEN rb2:=0; END; + rbc:=rbc+32; + END; + FOR i:=0 TO 255 DO + t:=Shf(rb1,htbl[i].cnt-32); + IF t=htbl[i].vl THEN + rb1:=Shf(rb1,htbl[i].cnt); + b:=32-htbl[i].cnt; + t:=Shf(rb2,-b); + rb1:=rb1+t; + rb2:=Shf(rb2,32-b); + rbc:=rbc+b-32; + RETURN CHR(i); + END; + END; + END; +END getSym; + +PROCEDURE Insert(s : smbTp); (* insert new character in Huffman's tree *) +VAR + cr : smbTp; +BEGIN + WITH ldt^ DO + IF tRoot=NIL THEN + cr:=tRoot; + tRoot:=s; + s^.next:=cr; + RETURN; + ELSIF tRoot^.n<=s^.n THEN + cr:=tRoot; + tRoot:=s; + s^.next:=cr; + RETURN; + END; + cr:=tRoot; + WHILE (cr^.next<>NIL) & (cr^.next^.n>s^.n) DO + cr:=cr^.next; + END; + s^.next:=cr^.next; + cr^.next:=s; + END; +END Insert; + +PROCEDURE BuildTree(); (* build Huffman's tree *) +VAR + cr,ocr,ncr : smbTp; +BEGIN + WITH ldt^ DO + LOOP + ocr:=NIL; cr:=tRoot; + WHILE cr^.next^.next<>NIL DO + ocr:=cr; cr:=cr^.next; + END; + NEW(ncr); + ncr^.n:=cr^.n+cr^.next^.n; + ncr^.left:=cr; + ncr^.right:=cr^.next; + IF ocr<>NIL THEN + ocr^.next:=NIL; + Insert(ncr); + ELSE + tRoot:=NIL; + Insert(ncr); + EXIT; + END; + END; + END; +END BuildTree; + +PROCEDURE BuildTable(cr: smbTp; vl,n: CARDINAL); (* build table: code -> bit sequence *) +BEGIN + WITH ldt^ DO + IF cr^.left=NIL THEN + htbl[ORD(cr^.ch)].vl:=vl; + htbl[ORD(cr^.ch)].cnt:=n; + DISPOSE(cr); + RETURN; + END; + vl:=vl*2; + BuildTable(cr^.left,vl,n+1); + BuildTable(cr^.right,vl+1,n+1); + DISPOSE(cr); + END; +END BuildTable; + +PROCEDURE clcTab(); (* build code/bitseq. table from frequency table *) +VAR + i : CARDINAL; + s : smbTp; +BEGIN + WITH ldt^ DO + tRoot:=NIL; + FOR i:=0 TO 255 DO + NEW(s); + s^.ch:=CHR(i); + s^.n:=ftbl[i]; + s^.left:=NIL; s^.right:=NIL; s^.next:=NIL; + Insert(s); + END; + BuildTree(); + BuildTable(tRoot,0,0); + END; +END clcTab; + +PROCEDURE iniHuf(); +VAR + i : CARDINAL; +BEGIN + WITH ldt^ DO + FOR i:=0 TO 255 DO + ftbl[i]:=1; + END; + wBf:=0; wbc:=0; rb1:=0; rb2:=0; rbc:=0; + smc:=0; + clcTab(); + END; +END iniHuf; + + +PROCEDURE RawWrite(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS; + len: CARDINAL); +VAR + i : CARDINAL; + ch : CHAR; + cht : charTap; +BEGIN + IF len = 0 THEN RETURN; END; + ldt:=SYSTEM.CAST(lclDataTp,x^.cd); + cht:=SYSTEM.CAST(charTap,buf); + WITH ldt^ DO + FOR i:=0 TO len-1 DO + ch:=cht^[i]; + wrSmb(ch); + IF ch = 377C THEN wrSmb(ch); END; + ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1; + IF smc=rbldFrq THEN + clcTab(); + smc:=0; + END; + END; + END; + x^.result:=IOChan.ReadResult(ldt^.chid); +END RawWrite; + +PROCEDURE RawRead(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS; + blen: CARDINAL; VAR len: CARDINAL); +VAR + i : CARDINAL; + cht : charTap; + ch : CHAR; +BEGIN + ldt:=SYSTEM.CAST(lclDataTp,x^.cd); + cht:=SYSTEM.CAST(charTap,buf); + IF (blen=0) OR (x^.result<>IOConsts.allRight) THEN len:=0; RETURN; END; + WITH ldt^ DO + FOR i:=0 TO blen-1 DO + ch:=getSym(); + IF ch = 377C THEN + ch:=getSym(); + IF ch = 0C THEN + x^.result:=IOConsts.endOfInput; + len:=i; cht^[i]:=0C; + RETURN; + END; + END; + cht^[i]:=ch; + ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1; + IF smc=rbldFrq THEN + clcTab(); + smc:=0; + END; + END; + len:=blen; + END; +END RawRead; + +PROCEDURE CreateAlias(VAR cid: ChanId; io: ChanId; VAR res: OpenResults); +VAR + x : IOLink.DeviceTablePtr; +BEGIN + IOLink.MakeChan(did,cid); + IF cid = IOChan.InvalidChan() THEN + res:=ChanConsts.outOfChans + ELSE + NEW(ldt); + IF ldt=NIL THEN + IOLink.UnMakeChan(did,cid); + res:=ChanConsts.outOfChans; + RETURN; + END; + x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,""); + ldt^.chid:=io; + x^.cd:=ldt; + x^.doRawWrite:=RawWrite; + x^.doRawRead:=RawRead; + res:=ChanConsts.opened; + iniHuf(); + x^.result:=IOConsts.allRight; + END; +END CreateAlias; + +PROCEDURE DeleteAlias(VAR cid: ChanId); +VAR + x : IOLink.DeviceTablePtr; +BEGIN + x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,""); + ldt:=x^.cd; + IF ldt^.rbc=0 THEN + wrSmb(377C); + wrSmb(0C); + flush(); + END; + DISPOSE(ldt); + IOLink.UnMakeChan(did,cid); +END DeleteAlias; + +BEGIN + IOLink.AllocateDeviceId(did); +END HuffChan. diff --git a/samples/PHP/root.php b/samples/PHP/root.php new file mode 100644 index 00000000..8f8be563 --- /dev/null +++ b/samples/PHP/root.php @@ -0,0 +1,6 @@ + diff --git a/samples/Perl/strict.t b/samples/Perl/strict.t index 04cea2f8..a9d4ec8c 100644 --- a/samples/Perl/strict.t +++ b/samples/Perl/strict.t @@ -1,4 +1,5 @@ use Test::Base; +use Test::More; __DATA__ === Strict Test diff --git a/samples/Perl6/test.p6 b/samples/Perl6/test.p6 index 3d12b56c..65073eb9 100644 --- a/samples/Perl6/test.p6 +++ b/samples/Perl6/test.p6 @@ -73,26 +73,6 @@ Here's some POD! Wooo say('this is not!'); -=table - Of role things - -say('not in your table'); -#= A single line declarator "block" (with a keyword like role) -#| Another single line declarator "block" (with a keyword like role) -#={ - A declarator block (with a keyword like role) - } -#|{ - Another declarator block (with a keyword like role) - } -#= { A single line declarator "block" with a brace (with a keyword like role) -#=« - More declarator blocks! (with a keyword like role) - » -#|« - More declarator blocks! (with a keyword like role) - » - say 'Moar code!'; my $don't = 16; diff --git a/samples/SMT/bignum_lia1.smt2 b/samples/SMT/bignum_lia1.smt2 new file mode 100644 index 00000000..e8eb354a --- /dev/null +++ b/samples/SMT/bignum_lia1.smt2 @@ -0,0 +1,20 @@ +(set-logic QF_LIA) +(set-info :source | SMT-COMP'06 organizers |) +(set-info :smt-lib-version 2.0) +(set-info :category "check") +(set-info :status unsat) +(set-info :notes |This benchmark is designed to check if the DP supports bignumbers.|) +(declare-fun x1 () Int) +(declare-fun x2 () Int) +(declare-fun x3 () Int) +(declare-fun x4 () Int) +(declare-fun x5 () Int) +(declare-fun x6 () Int) +(assert (and (or (>= x1 1000) (>= x1 1002)) + (or (>= x2 (* 1230 x1)) (>= x2 (* 1003 x1))) + (or (>= x3 (* 1310 x2)) (>= x3 (* 1999 x2))) + (or (>= x4 (* 4000 x3)) (>= x4 (* 8000 x3))) + (or (<= x5 (* (- 4000) x4)) (<= x5 (* (- 8000) x4))) + (or (>= x6 (* (- 3) x5)) (>= x6 (* (- 2) x5))) (< x6 0))) +(check-sat) +(exit) diff --git a/samples/SMT/list4.smt2 b/samples/SMT/list4.smt2 new file mode 100644 index 00000000..f2c8e539 --- /dev/null +++ b/samples/SMT/list4.smt2 @@ -0,0 +1,20 @@ +(set-logic AUFLIRA) +(set-info :source | Buggy list theorem |) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status sat) +(declare-sort List 0) +(declare-fun cons (Real List) List) +(declare-fun nil () List) +(declare-fun car (List) Real) +(declare-fun cdr (List) List) +(declare-fun len (List) Int) +(assert (forall ((?x Real) (?y List)) (= (car (cons ?x ?y)) ?x))) +(assert (forall ((?x Real) (?y List)) (= (cdr (cons ?x ?y)) ?y))) +(assert (= (len nil) 0)) +(assert (forall ((?x Real) (?y List)) (= (len (cons ?x ?y)) (+ (len ?y) 1)))) +(declare-fun append (List List) List) +(assert (forall ((?x Real) (?y1 List) (?y2 List)) (= (append (cons ?x ?y1) ?y2) (cons ?x (append ?y1 ?y2))))) +(assert (not (forall ((?x Real) (?y List)) (= (append (cons ?x nil) ?y) (cons ?x ?y))))) +(check-sat) +(exit) diff --git a/samples/SMT/queen10-1.smt2 b/samples/SMT/queen10-1.smt2 new file mode 100644 index 00000000..25c8bd82 --- /dev/null +++ b/samples/SMT/queen10-1.smt2 @@ -0,0 +1,123 @@ +(set-logic QF_IDL) +(set-info :source | +Queens benchmarks generated by Hyondeuk Kim in SMT-LIB format. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status sat) +(declare-fun x0 () Int) +(declare-fun x1 () Int) +(declare-fun x2 () Int) +(declare-fun x3 () Int) +(declare-fun x4 () Int) +(declare-fun x5 () Int) +(declare-fun x6 () Int) +(declare-fun x7 () Int) +(declare-fun x8 () Int) +(declare-fun x9 () Int) +(declare-fun x10 () Int) +(assert + (let + ((?v_0 (- x0 x10)) + (?v_1 (- x1 x10)) + (?v_2 (- x2 x10)) + (?v_3 (- x3 x10)) + (?v_4 (- x4 x10)) + (?v_5 (- x5 x10)) + (?v_6 (- x6 x10)) + (?v_7 (- x7 x10)) + (?v_8 (- x8 x10)) + (?v_9 (- x9 x10)) + (?v_10 (- x0 x1)) + (?v_11 (- x0 x2)) + (?v_12 (- x0 x3)) + (?v_13 (- x0 x4)) + (?v_14 (- x0 x5)) + (?v_15 (- x0 x6)) + (?v_16 (- x0 x7)) + (?v_17 (- x0 x8)) + (?v_18 (- x0 x9)) + (?v_19 (- x1 x2)) + (?v_20 (- x1 x3)) + (?v_21 (- x1 x4)) + (?v_22 (- x1 x5)) + (?v_23 (- x1 x6)) + (?v_24 (- x1 x7)) + (?v_25 (- x1 x8)) + (?v_26 (- x1 x9)) + (?v_27 (- x2 x3)) + (?v_28 (- x2 x4)) + (?v_29 (- x2 x5)) + (?v_30 (- x2 x6)) + (?v_31 (- x2 x7)) + (?v_32 (- x2 x8)) + (?v_33 (- x2 x9)) + (?v_34 (- x3 x4)) + (?v_35 (- x3 x5)) + (?v_36 (- x3 x6)) + (?v_37 (- x3 x7)) + (?v_38 (- x3 x8)) + (?v_39 (- x3 x9)) + (?v_40 (- x4 x5)) + (?v_41 (- x4 x6)) + (?v_42 (- x4 x7)) + (?v_43 (- x4 x8)) + (?v_44 (- x4 x9)) + (?v_45 (- x5 x6)) + (?v_46 (- x5 x7)) + (?v_47 (- x5 x8)) + (?v_48 (- x5 x9)) + (?v_49 (- x6 x7)) + (?v_50 (- x6 x8)) + (?v_51 (- x6 x9)) + (?v_52 (- x7 x8)) + (?v_53 (- x7 x9)) + (?v_54 (- x8 x9))) + (and (<= ?v_0 9) (>= ?v_0 0) (<= ?v_1 9) (>= ?v_1 0) (<= ?v_2 9) (>= ?v_2 0) + (<= ?v_3 9) (>= ?v_3 0) (<= ?v_4 9) (>= ?v_4 0) (<= ?v_5 9) (>= ?v_5 0) + (<= ?v_6 9) (>= ?v_6 0) (<= ?v_7 9) (>= ?v_7 0) (<= ?v_8 9) (>= ?v_8 0) + (<= ?v_9 9) (>= ?v_9 0) + (not (= x0 x1)) (not (= x0 x2)) (not (= x0 x3)) (not (= x0 x4)) + (not (= x0 x5)) (not (= x0 x6)) (not (= x0 x7)) (not (= x0 x8)) + (not (= x0 x9)) (not (= x1 x2)) (not (= x1 x3)) (not (= x1 x4)) + (not (= x1 x5)) (not (= x1 x6)) (not (= x1 x7)) (not (= x1 x8)) + (not (= x1 x9)) (not (= x2 x3)) (not (= x2 x4)) (not (= x2 x5)) + (not (= x2 x6)) (not (= x2 x7)) (not (= x2 x8)) (not (= x2 x9)) + (not (= x3 x4)) (not (= x3 x5)) (not (= x3 x6)) (not (= x3 x7)) + (not (= x3 x8)) (not (= x3 x9)) (not (= x4 x5)) (not (= x4 x6)) + (not (= x4 x7)) (not (= x4 x8)) (not (= x4 x9)) (not (= x5 x6)) + (not (= x5 x7)) (not (= x5 x8)) (not (= x5 x9)) (not (= x6 x7)) + (not (= x6 x8)) (not (= x6 x9)) (not (= x7 x8)) (not (= x7 x9)) + (not (= x8 x9)) + (not (= ?v_10 1)) (not (= ?v_10 (- 1))) (not (= ?v_11 2)) + (not (= ?v_11 (- 2))) (not (= ?v_12 3)) (not (= ?v_12 (- 3))) + (not (= ?v_13 4)) (not (= ?v_13 (- 4))) (not (= ?v_14 5)) + (not (= ?v_14 (- 5))) (not (= ?v_15 6)) (not (= ?v_15 (- 6))) + (not (= ?v_16 7)) (not (= ?v_16 (- 7))) (not (= ?v_17 8)) + (not (= ?v_17 (- 8))) (not (= ?v_18 9)) (not (= ?v_18 (- 9))) + (not (= ?v_19 1)) (not (= ?v_19 (- 1))) (not (= ?v_20 2)) + (not (= ?v_20 (- 2))) (not (= ?v_21 3)) (not (= ?v_21 (- 3))) + (not (= ?v_22 4)) (not (= ?v_22 (- 4))) (not (= ?v_23 5)) + (not (= ?v_23 (- 5))) (not (= ?v_24 6)) (not (= ?v_24 (- 6))) + (not (= ?v_25 7)) (not (= ?v_25 (- 7))) (not (= ?v_26 8)) + (not (= ?v_26 (- 8))) (not (= ?v_27 1)) (not (= ?v_27 (- 1))) + (not (= ?v_28 2)) (not (= ?v_28 (- 2))) (not (= ?v_29 3)) + (not (= ?v_29 (- 3))) (not (= ?v_30 4)) (not (= ?v_30 (- 4))) + (not (= ?v_31 5)) (not (= ?v_31 (- 5))) (not (= ?v_32 6)) + (not (= ?v_32 (- 6))) (not (= ?v_33 7)) (not (= ?v_33 (- 7))) + (not (= ?v_34 1)) (not (= ?v_34 (- 1))) (not (= ?v_35 2)) + (not (= ?v_35 (- 2))) (not (= ?v_36 3)) (not (= ?v_36 (- 3))) + (not (= ?v_37 4)) (not (= ?v_37 (- 4))) (not (= ?v_38 5)) + (not (= ?v_38 (- 5))) (not (= ?v_39 6)) (not (= ?v_39 (- 6))) + (not (= ?v_40 1)) (not (= ?v_40 (- 1))) (not (= ?v_41 2)) + (not (= ?v_41 (- 2))) (not (= ?v_42 3)) (not (= ?v_42 (- 3))) + (not (= ?v_43 4)) (not (= ?v_43 (- 4))) (not (= ?v_44 5)) + (not (= ?v_44 (- 5))) (not (= ?v_45 1)) (not (= ?v_45 (- 1))) + (not (= ?v_46 2)) (not (= ?v_46 (- 2))) (not (= ?v_47 3)) + (not (= ?v_47 (- 3))) (not (= ?v_48 4)) (not (= ?v_48 (- 4))) + (not (= ?v_49 1)) (not (= ?v_49 (- 1))) (not (= ?v_50 2)) + (not (= ?v_50 (- 2))) (not (= ?v_51 3)) (not (= ?v_51 (- 3))) + (not (= ?v_52 1)) (not (= ?v_52 (- 1))) (not (= ?v_53 2)) + (not (= ?v_53 (- 2))) (not (= ?v_54 1)) (not (= ?v_54 (- 1)))))) +(check-sat) +(exit) diff --git a/samples/SMT/shufflevector.smt b/samples/SMT/shufflevector.smt new file mode 100644 index 00000000..6bc79d3a --- /dev/null +++ b/samples/SMT/shufflevector.smt @@ -0,0 +1,2104 @@ +(set-logic QF_ABV) +(define-sort Address () (_ BitVec 64)) +(define-sort Byte () (_ BitVec 8)) +(define-sort Mem () (Array Address Byte)) + +(define-sort I8 () (_ BitVec 8)) +(define-sort I16 () (_ BitVec 16)) +(define-sort I32 () (_ BitVec 32)) +(define-sort I64 () (_ BitVec 64)) +(define-sort I128 () (_ BitVec 128)) + + +;; +;;constants +;; +(define-fun zero () Address (_ bv0 64)) +(define-fun one () Address (_ bv1 64)) +(define-fun two () Address (_ bv2 64)) +(define-fun three () Address (_ bv3 64)) +(define-fun four () Address (_ bv4 64)) +(define-fun five () Address (_ bv5 64)) +(define-fun six () Address (_ bv6 64)) +(define-fun seven () Address (_ bv7 64)) +(define-fun eight () Address (_ bv8 64)) + + +;; +;; Write a little endian 1 bit value (8 bit aligned) at address x in mem +;; +(define-fun write1 ((mem Mem) (x Address) (v Bool)) Mem + (store mem x (ite v #x01 #x00))) + +;; +;; Write a little endian 8bit value at address x in mem +;; +(define-fun write8 ((mem Mem) (x Address) (v I8)) Mem + (store mem x v)) + +;; +;; Write a little endian 16bit value at address x in mem +;; +(define-fun write16 ((mem Mem) (x Address) (v I16)) Mem + (let ((b0 ((_ extract 7 0) v)) + (b1 ((_ extract 15 8) v))) + (store (store mem x b0) (bvadd x one) b1))) + +;; +;; Write a little endian 32bit value at address x in mem +;; +(define-fun write32 ((mem Mem) (x Address) (v I32)) Mem + (let ((b0 ((_ extract 7 0) v)) + (b1 ((_ extract 15 8) v)) + (b2 ((_ extract 23 16) v)) + (b3 ((_ extract 31 24) v))) + (store (store (store (store mem x b0) (bvadd x one) b1) (bvadd x two) b2) (bvadd x three) b3))) + +;; +;; Write a little endian 64bit value at address x in mem +;; +(define-fun write64 ((mem Mem) (x Address) (v I64)) Mem + (let ((b0 ((_ extract 31 0) v)) + (b1 ((_ extract 63 32) v))) + (write32 (write32 mem x b0) (bvadd x four) b1))) + +;; +;; Write a little endian 128bit value at address x in mem +;; +(define-fun write128 ((mem Mem) (x Address) (v I128)) Mem + (let ((b0 ((_ extract 63 0) v)) + (b1 ((_ extract 127 64) v))) + (write64 (write64 mem x b0) (bvadd x eight) b1))) + + +;; +;; Read a little endian 1 bit value (8 bit aligned) at address x in mem +;; - returns a Boolean: true if what's stored at address x is non-zero +;; +(define-fun read1 ((mem Mem) (x Address)) Bool + (not (= (select mem x) #x00))) + +;; +;; Read a little endian 8bit value at address x in mem +;; +(define-fun read8 ((mem Mem) (x Address)) I8 + (select mem x)) + +;; +;; Read a little endian 16bit value at address x in mem +;; +(define-fun read16 ((mem Mem) (x Address)) I16 + (let ((b0 (select mem x)) + (b1 (select mem (bvadd x one)))) + (concat b1 b0))) + +;; +;; Read a little endian 32bit value at address x in mem +;; +(define-fun read32 ((mem Mem) (x Address)) I32 + (let ((b0 (select mem x)) + (b1 (select mem (bvadd x one))) + (b2 (select mem (bvadd x two))) + (b3 (select mem (bvadd x three)))) + (concat b3 (concat b2 (concat b1 b0))))) + +;; +;; Read a little endian 64bit value at address x in mem +;; +(define-fun read64 ((mem Mem) (x Address)) I64 + (let ((b0 (read32 mem x)) + (b1 (read32 mem (bvadd x four)))) + (concat b1 b0))) + +;; +;; Read a little endian 128bit value at address x in mem +;; +(define-fun read128 ((mem Mem) (x Address)) I128 + (let ((b0 (read64 mem x)) + (b1 (read64 mem (bvadd x eight)))) + (concat b1 b0))) + + +;; +;; Vectors of (2^1) int4 elements +;; +(define-sort vector_1_4 () (Array (_ BitVec 1) (_ BitVec 4))) + +(declare-fun vundef_1_4 () vector_1_4) + + +;; +;; Vectors of (2^1) int8 elements +;; +(define-sort vector_1_8 () (Array (_ BitVec 1) (_ BitVec 8))) + +(declare-fun vundef_1_8 () vector_1_8) + + +;; +;; Vectors of (2^1) int16 elements +;; +(define-sort vector_1_16 () (Array (_ BitVec 1) (_ BitVec 16))) + +(declare-fun vundef_1_16 () vector_1_16) + + +;; +;; Vectors of (2^1) int32 elements +;; +(define-sort vector_1_32 () (Array (_ BitVec 1) (_ BitVec 32))) + +(declare-fun vundef_1_32 () vector_1_32) + + +;; +;; Vectors of (2^1) int64 elements +;; +(define-sort vector_1_64 () (Array (_ BitVec 1) (_ BitVec 64))) + +(declare-fun vundef_1_64 () vector_1_64) + + +;; +;; Vectors of (2^2) int4 elements +;; +(define-sort vector_2_4 () (Array (_ BitVec 2) (_ BitVec 4))) + +(declare-fun vundef_2_4 () vector_2_4) + + +;; +;; Vectors of (2^2) int8 elements +;; +(define-sort vector_2_8 () (Array (_ BitVec 2) (_ BitVec 8))) + +(declare-fun vundef_2_8 () vector_2_8) + + +;; +;; Vectors of (2^2) int16 elements +;; +(define-sort vector_2_16 () (Array (_ BitVec 2) (_ BitVec 16))) + +(declare-fun vundef_2_16 () vector_2_16) + + +;; +;; Vectors of (2^2) int32 elements +;; +(define-sort vector_2_32 () (Array (_ BitVec 2) (_ BitVec 32))) + +(declare-fun vundef_2_32 () vector_2_32) + + +;; +;; Vectors of (2^2) int64 elements +;; +(define-sort vector_2_64 () (Array (_ BitVec 2) (_ BitVec 64))) + +(declare-fun vundef_2_64 () vector_2_64) + + +;; +;; Vectors of (2^3) int4 elements +;; +(define-sort vector_3_4 () (Array (_ BitVec 3) (_ BitVec 4))) + +(declare-fun vundef_3_4 () vector_3_4) + + +;; +;; Vectors of (2^3) int8 elements +;; +(define-sort vector_3_8 () (Array (_ BitVec 3) (_ BitVec 8))) + +(declare-fun vundef_3_8 () vector_3_8) + + +;; +;; Vectors of (2^3) int16 elements +;; +(define-sort vector_3_16 () (Array (_ BitVec 3) (_ BitVec 16))) + +(declare-fun vundef_3_16 () vector_3_16) + + +;; +;; Vectors of (2^3) int32 elements +;; +(define-sort vector_3_32 () (Array (_ BitVec 3) (_ BitVec 32))) + +(declare-fun vundef_3_32 () vector_3_32) + + +;; +;; Vectors of (2^3) int64 elements +;; +(define-sort vector_3_64 () (Array (_ BitVec 3) (_ BitVec 64))) + +(declare-fun vundef_3_64 () vector_3_64) + +;; Special case where we use Bool rather than bitvectors of size 1 + +(define-sort vector_1_1 () (Array (_ BitVec 1) Bool)) + +(declare-fun vundef_1_1 () vector_1_1) + +(define-fun vmake_1_1 ((x0 Bool) (x1 Bool)) vector_1_1 + (store (store vundef_1_1 #b0 x0) #b1 x1)) + +(define-sort vector_2_1 () (Array (_ BitVec 2) Bool)) + +(declare-fun vundef_2_1 () vector_2_1) + +(define-fun vmake_2_1 + ((x0 Bool) (x1 Bool) (x2 Bool) (x3 Bool)) vector_2_1 + (store (store (store (store vundef_2_1 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +(define-sort vector_3_1 () (Array (_ BitVec 3) Bool)) + +(declare-fun vundef_3_1 () vector_3_1) + +(define-fun vmake_3_1 + ((x0 Bool) (x1 Bool) (x2 Bool) (x3 Bool) (x4 Bool) (x5 Bool) (x6 Bool) (x7 Bool)) vector_3_1 + (store (store (store (store (store (store (store (store vundef_3_1 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; +;; Vectors of (2^1) i.e. two int4 elements +;; +(define-fun vmake_1_4 ((x0 (_ BitVec 4)) (x1 (_ BitVec 4))) vector_1_4 + (store (store vundef_1_4 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int4 elements +;; +(define-fun vmake_2_4 + ((x0 (_ BitVec 4)) (x1 (_ BitVec 4)) (x2 (_ BitVec 4)) (x3 (_ BitVec 4))) vector_2_4 + (store (store (store (store vundef_2_4 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int4 elements +;; +(define-fun vmake_3_4 + ((x0 (_ BitVec 4)) (x1 (_ BitVec 4)) (x2 (_ BitVec 4)) (x3 (_ BitVec 4))(x4 (_ BitVec 4)) (x5 (_ BitVec 4)) (x6 (_ BitVec 4)) (x7 (_ BitVec 4))) vector_3_4 + (store (store (store (store (store (store (store (store vundef_3_4 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int4 elements + + (define-fun vzero_1_4 () vector_1_4 (vmake_1_4 (_ bv0 4) (_ bv0 4))) + + (define-fun vzero_2_4 () vector_2_4 (vmake_2_4 (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4))) + + (define-fun vzero_3_4 () vector_3_4 (vmake_3_4 (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4))) + + +;; +;; Vectors of (2^1) i.e. two int8 elements +;; +(define-fun vmake_1_8 ((x0 (_ BitVec 8)) (x1 (_ BitVec 8))) vector_1_8 + (store (store vundef_1_8 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int8 elements +;; +(define-fun vmake_2_8 + ((x0 (_ BitVec 8)) (x1 (_ BitVec 8)) (x2 (_ BitVec 8)) (x3 (_ BitVec 8))) vector_2_8 + (store (store (store (store vundef_2_8 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int8 elements +;; +(define-fun vmake_3_8 + ((x0 (_ BitVec 8)) (x1 (_ BitVec 8)) (x2 (_ BitVec 8)) (x3 (_ BitVec 8))(x4 (_ BitVec 8)) (x5 (_ BitVec 8)) (x6 (_ BitVec 8)) (x7 (_ BitVec 8))) vector_3_8 + (store (store (store (store (store (store (store (store vundef_3_8 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int8 elements + + (define-fun vzero_1_8 () vector_1_8 (vmake_1_8 (_ bv0 8) (_ bv0 8))) + + (define-fun vzero_2_8 () vector_2_8 (vmake_2_8 (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8))) + + (define-fun vzero_3_8 () vector_3_8 (vmake_3_8 (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8))) + + +;; +;; Vectors of (2^1) i.e. two int16 elements +;; +(define-fun vmake_1_16 ((x0 (_ BitVec 16)) (x1 (_ BitVec 16))) vector_1_16 + (store (store vundef_1_16 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int16 elements +;; +(define-fun vmake_2_16 + ((x0 (_ BitVec 16)) (x1 (_ BitVec 16)) (x2 (_ BitVec 16)) (x3 (_ BitVec 16))) vector_2_16 + (store (store (store (store vundef_2_16 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int16 elements +;; +(define-fun vmake_3_16 + ((x0 (_ BitVec 16)) (x1 (_ BitVec 16)) (x2 (_ BitVec 16)) (x3 (_ BitVec 16))(x4 (_ BitVec 16)) (x5 (_ BitVec 16)) (x6 (_ BitVec 16)) (x7 (_ BitVec 16))) vector_3_16 + (store (store (store (store (store (store (store (store vundef_3_16 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int16 elements + + (define-fun vzero_1_16 () vector_1_16 (vmake_1_16 (_ bv0 16) (_ bv0 16))) + + (define-fun vzero_2_16 () vector_2_16 (vmake_2_16 (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16))) + + (define-fun vzero_3_16 () vector_3_16 (vmake_3_16 (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16))) + + +;; +;; Vectors of (2^1) i.e. two int32 elements +;; +(define-fun vmake_1_32 ((x0 (_ BitVec 32)) (x1 (_ BitVec 32))) vector_1_32 + (store (store vundef_1_32 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int32 elements +;; +(define-fun vmake_2_32 + ((x0 (_ BitVec 32)) (x1 (_ BitVec 32)) (x2 (_ BitVec 32)) (x3 (_ BitVec 32))) vector_2_32 + (store (store (store (store vundef_2_32 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int32 elements +;; +(define-fun vmake_3_32 + ((x0 (_ BitVec 32)) (x1 (_ BitVec 32)) (x2 (_ BitVec 32)) (x3 (_ BitVec 32))(x4 (_ BitVec 32)) (x5 (_ BitVec 32)) (x6 (_ BitVec 32)) (x7 (_ BitVec 32))) vector_3_32 + (store (store (store (store (store (store (store (store vundef_3_32 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int32 elements + + (define-fun vzero_1_32 () vector_1_32 (vmake_1_32 (_ bv0 32) (_ bv0 32))) + + (define-fun vzero_2_32 () vector_2_32 (vmake_2_32 (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32))) + + (define-fun vzero_3_32 () vector_3_32 (vmake_3_32 (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32))) + + +;; +;; Vectors of (2^1) i.e. two int64 elements +;; +(define-fun vmake_1_64 ((x0 (_ BitVec 64)) (x1 (_ BitVec 64))) vector_1_64 + (store (store vundef_1_64 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int64 elements +;; +(define-fun vmake_2_64 + ((x0 (_ BitVec 64)) (x1 (_ BitVec 64)) (x2 (_ BitVec 64)) (x3 (_ BitVec 64))) vector_2_64 + (store (store (store (store vundef_2_64 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int64 elements +;; +(define-fun vmake_3_64 + ((x0 (_ BitVec 64)) (x1 (_ BitVec 64)) (x2 (_ BitVec 64)) (x3 (_ BitVec 64))(x4 (_ BitVec 64)) (x5 (_ BitVec 64)) (x6 (_ BitVec 64)) (x7 (_ BitVec 64))) vector_3_64 + (store (store (store (store (store (store (store (store vundef_3_64 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int64 elements + + (define-fun vzero_1_64 () vector_1_64 (vmake_1_64 (_ bv0 64) (_ bv0 64))) + + (define-fun vzero_2_64 () vector_2_64 (vmake_2_64 (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64))) + + (define-fun vzero_3_64 () vector_3_64 (vmake_3_64 (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64))) + + +(define-fun vbvadd_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvadd_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvadd_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvadd_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsub_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsub_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsub_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsub_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvmul_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvmul_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvmul_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvmul_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvshl_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvshl_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvshl_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvshl_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsdiv_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsdiv_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsdiv_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsdiv_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvudiv_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvudiv_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvudiv_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvudiv_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvlshr_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvlshr_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvlshr_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvlshr_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvashr_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvashr_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvashr_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvashr_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvurem_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvurem_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvurem_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvurem_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsrem_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsrem_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsrem_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsrem_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvand_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvand_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvand_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvand_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvor_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvor_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvor_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvor_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvxor_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvxor_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvxor_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvxor_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + + (define-fun vbvadd_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvand_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvand_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvand_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvand_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvor_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvor_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvor_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvor_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvadd_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + + +;; conversion to and from (Bitvector 64) +;; this assumes little endian representation +(define-fun cast_vector_1_32_to_bits ((x vector_1_32)) (_ BitVec 64) + (concat (select x #b1) (select x #b0))) + +(define-fun cast_bits_to_vector_1_32 ((w (_ BitVec 64))) vector_1_32 + (let ((z0 ((_ extract 31 0) w)) + (z1 ((_ extract 63 32) w))) + (vmake_1_32 z0 z1))) + +;; conversion to and from (Bitvector 128) +;; this assumes little endian representation +(define-fun cast_vector_2_32_to_bits ((x vector_2_32)) (_ BitVec 128) + (concat (concat (concat (select x #b11) (select x #b10)) (select x #b01)) (select x #b00))) + +(define-fun cast_bits_to_vector_2_32 ((w (_ BitVec 128))) vector_2_32 + (let ((z0 ((_ extract 31 0) w)) + (z1 ((_ extract 63 32) w)) + (z2 ((_ extract 95 64) w)) + (z3 ((_ extract 127 96) w))) + (vmake_2_32 z0 z1 z2 z3))) + +;; conversion to and from (Bitvector 128) to vectors 2 x i64 +(define-fun cast_vector_1_64_to_bits ((x vector_1_64)) (_ BitVec 128) + (concat (select x #b1) (select x #b0))) + +(define-fun cast_bits_to_vector_1_64 ((w (_ BitVec 128))) vector_1_64 + (let ((z0 ((_ extract 63 0) w)) + (z1 ((_ extract 127 64) w))) + (vmake_1_64 z0 z1))) + + + + +;; end of prelude + + +;; @.str [16 x i8] = c"lhs == rhs: %d\0A\00" +(declare-fun |-@.str| () (_ BitVec 64)) +;; @.str1 [22 x i8] = c"lhs = %d != rhs = %d\0A\00" +(declare-fun |-@.str1| () (_ BitVec 64)) +(declare-fun -@lhs () (_ BitVec 64)) +(declare-fun -@rhs () (_ BitVec 64)) +(declare-fun -@main () (_ BitVec 64)) +(declare-fun -@atoi () (_ BitVec 64)) +(declare-fun -@printf () (_ BitVec 64)) + + +;; Function: |-@lhs| +;; (i32 %a, i32 %b) +(declare-fun memory1 () Mem) +(define-fun rsp1 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%a-@lhs| () (_ BitVec 32)) +(declare-fun |%b-@lhs| () (_ BitVec 32)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@lhs_block_0_entry_condition| +(define-fun |-@lhs_block_0_entry_condition| () Bool true) +;; %1 = insertelement <2 x i32> undef, i32 %a, i32 0 +(define-fun |%1-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store vzero_1_32 ((_ extract 0 0) (_ bv0 32)) |%a-@lhs|)) +;; %2 = insertelement <2 x i32> %1, i32 %b, i32 1 +(define-fun |%2-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store |%1-@lhs| ((_ extract 0 0) (_ bv1 32)) |%b-@lhs|)) +;; %3 = shufflevector <2 x i32> %2, <2 x i32> undef, <2 x i32> +(define-fun |%3-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) +(let ((x0 vundef_1_32)) +(let ((x1 (store x0 ((_ extract 0 0) (_ bv0 32)) (select |%2-@lhs| ((_ extract 0 0) (_ bv1 32)))))) + (let ((x2 (store x1 ((_ extract 0 0) (_ bv1 32)) (select |%2-@lhs| ((_ extract 0 0) (_ bv0 32)))))) + x2)))) +;; %4 = shufflevector <2 x i32> %3, <2 x i32> undef, <2 x i32> +(define-fun |%4-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) +(let ((x0 vundef_1_32)) +(let ((x1 (store x0 ((_ extract 0 0) (_ bv0 32)) (select |%3-@lhs| ((_ extract 0 0) (_ bv1 32)))))) + (let ((x2 (store x1 ((_ extract 0 0) (_ bv1 32)) (select |%3-@lhs| ((_ extract 0 0) (_ bv0 32)))))) + x2)))) +;; %5 = extractelement <2 x i32> %4, i32 0 +(define-fun |%5-@lhs| () (_ BitVec 32) (select |%4-@lhs| ((_ extract 0 0) (_ bv0 32)))) +;; ret i32 %5 +;; No backward arrows + + +(define-fun |-@lhs_result| () (_ BitVec 32) |%5-@lhs|) + +;; Function: |-@rhs| +;; (i32 %a, i32 %b) +(declare-fun memory2 () Mem) +(define-fun rsp2 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%a-@rhs| () (_ BitVec 32)) +(declare-fun |%b-@rhs| () (_ BitVec 32)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@rhs_block_0_entry_condition| +(define-fun |-@rhs_block_0_entry_condition| () Bool true) +;; %1 = insertelement <2 x i32> undef, i32 %a, i32 0 +(define-fun |%1-@rhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store vzero_1_32 ((_ extract 0 0) (_ bv0 32)) |%a-@rhs|)) +;; %2 = insertelement <2 x i32> %1, i32 %b, i32 1 +(define-fun |%2-@rhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store |%1-@rhs| ((_ extract 0 0) (_ bv1 32)) |%b-@rhs|)) +;; %3 = extractelement <2 x i32> %2, i32 0 +(define-fun |%3-@rhs| () (_ BitVec 32) (select |%2-@rhs| ((_ extract 0 0) (_ bv0 32)))) +;; ret i32 %3 +;; No backward arrows + + +(define-fun |-@rhs_result| () (_ BitVec 32) |%3-@rhs|) + +;; Function: |-@main| +;; (i32 %argc, i8** %argv) +(declare-fun memory3 () Mem) +(define-fun rsp3 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%argc-@main| () (_ BitVec 32)) +(declare-fun |%argv-@main| () (_ BitVec 64)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@main_block_0_entry_condition| +(define-fun |-@main_block_0_entry_condition| () Bool true) +;; %1 = alloca i32, align 4 +(define-fun rsp4 () Address (bvsub rsp3 (_ bv4 64))) +(define-fun |%1-@main| () (_ BitVec 64) rsp4) +;; %2 = alloca i32, align 4 +(define-fun rsp5 () Address (bvsub rsp4 (_ bv4 64))) +(define-fun |%2-@main| () (_ BitVec 64) rsp5) +;; %3 = alloca i8**, align 8 +(define-fun rsp6 () Address (bvsub rsp5 (_ bv8 64))) +(define-fun |%3-@main| () (_ BitVec 64) rsp6) +;; %a = alloca i32, align 4 +(define-fun rsp7 () Address (bvsub rsp6 (_ bv4 64))) +(define-fun |%a-@main| () (_ BitVec 64) rsp7) +;; %b = alloca i32, align 4 +(define-fun rsp8 () Address (bvsub rsp7 (_ bv4 64))) +(define-fun |%b-@main| () (_ BitVec 64) rsp8) +;; %lhs = alloca i32, align 4 +(define-fun rsp9 () Address (bvsub rsp8 (_ bv4 64))) +(define-fun |%lhs-@main| () (_ BitVec 64) rsp9) +;; %rhs = alloca i32, align 4 +(define-fun rsp10 () Address (bvsub rsp9 (_ bv4 64))) +(define-fun |%rhs-@main| () (_ BitVec 64) rsp10) +;; store i32 0, i32* %1 +(define-fun memory4 () Mem (write32 memory3 |%1-@main| (_ bv0 32))) +;; store i32 %argc, i32* %2, align 4 +(define-fun memory5 () Mem (write32 memory4 |%2-@main| |%argc-@main|)) +;; store i8** %argv, i8*** %3, align 8 +(define-fun memory6 () Mem (write64 memory5 |%3-@main| |%argv-@main|)) +;; %4 = load i32* %2, align 4 +(define-fun |%4-@main| () (_ BitVec 32) (read32 memory6 |%2-@main|)) +;; %5 = icmp eq i32 %4, 3 +(define-fun |%5-@main| () Bool (= |%4-@main| (_ bv3 32))) +;; br i1 %5, label %6, label %32 +;; No backward arrows + +;; BLOCK %6 with index 1 and rank = 2 +;; Predecessors: %0 +;; |-@main_block_1_entry_condition| +(define-fun |-@main_block_1_entry_condition| () Bool + (and |-@main_block_0_entry_condition| |%5-@main|) +) +;;Memory PHI +(define-fun memory7 () Mem memory6) +;; %7 = load i8*** %3, align 8 +(define-fun |%7-@main| () (_ BitVec 64) (read64 memory7 |%3-@main|)) +;; %8 = getelementptr inbounds i8** %7, i64 1 +(define-fun |%8-@main| () (_ BitVec 64) (bvadd |%7-@main| (_ bv8 64))) +;; %9 = load i8** %8, align 8 +(define-fun |%9-@main| () (_ BitVec 64) (read64 memory7 |%8-@main|)) +;; %10 = call i32 @atoi(i8* %9) +(declare-fun |%10-@main| () (_ BitVec 32)) +;; store i32 %10, i32* %a, align 4 +(define-fun memory8 () Mem (write32 memory7 |%a-@main| |%10-@main|)) +;; %11 = load i8*** %3, align 8 +(define-fun |%11-@main| () (_ BitVec 64) (read64 memory8 |%3-@main|)) +;; %12 = getelementptr inbounds i8** %11, i64 2 +(define-fun |%12-@main| () (_ BitVec 64) (bvadd |%11-@main| (_ bv16 64))) +;; %13 = load i8** %12, align 8 +(define-fun |%13-@main| () (_ BitVec 64) (read64 memory8 |%12-@main|)) +;; %14 = call i32 @atoi(i8* %13) +(declare-fun |%14-@main| () (_ BitVec 32)) +;; store i32 %14, i32* %b, align 4 +(define-fun memory9 () Mem (write32 memory8 |%b-@main| |%14-@main|)) +;; %15 = load i32* %a, align 4 +(define-fun |%15-@main| () (_ BitVec 32) (read32 memory9 |%a-@main|)) +;; %16 = load i32* %b, align 4 +(define-fun |%16-@main| () (_ BitVec 32) (read32 memory9 |%b-@main|)) +;; %17 = call i32 @lhs(i32 %15, i32 %16) +(declare-fun |%17-@main| () (_ BitVec 32)) +;; store i32 %17, i32* %lhs, align 4 +(define-fun memory10 () Mem (write32 memory9 |%lhs-@main| |%17-@main|)) +;; %18 = load i32* %a, align 4 +(define-fun |%18-@main| () (_ BitVec 32) (read32 memory10 |%a-@main|)) +;; %19 = load i32* %b, align 4 +(define-fun |%19-@main| () (_ BitVec 32) (read32 memory10 |%b-@main|)) +;; %20 = call i32 @rhs(i32 %18, i32 %19) +(declare-fun |%20-@main| () (_ BitVec 32)) +;; store i32 %20, i32* %rhs, align 4 +(define-fun memory11 () Mem (write32 memory10 |%rhs-@main| |%20-@main|)) +;; %21 = load i32* %lhs, align 4 +(define-fun |%21-@main| () (_ BitVec 32) (read32 memory11 |%lhs-@main|)) +;; %22 = load i32* %rhs, align 4 +(define-fun |%22-@main| () (_ BitVec 32) (read32 memory11 |%rhs-@main|)) +;; %23 = icmp eq i32 %21, %22 +(define-fun |%23-@main| () Bool (= |%21-@main| |%22-@main|)) +;; br i1 %23, label %24, label %27 +;; No backward arrows + +;; BLOCK %24 with index 2 and rank = 3 +;; Predecessors: %6 +;; |-@main_block_2_entry_condition| +(define-fun |-@main_block_2_entry_condition| () Bool + (and |-@main_block_1_entry_condition| |%23-@main|) +) +;;Memory PHI +(define-fun memory12 () Mem memory11) +;; %25 = load i32* %lhs, align 4 +(define-fun |%25-@main| () (_ BitVec 32) (read32 memory12 |%lhs-@main|)) +;; %26 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x i8]* @.str, i32 0, i32 0), i32 %25) +(declare-fun |%26-@main| () (_ BitVec 32)) +;; br label %31 +;; No backward arrows + +;; BLOCK %27 with index 3 and rank = 3 +;; Predecessors: %6 +;; |-@main_block_3_entry_condition| +(define-fun |-@main_block_3_entry_condition| () Bool + (and |-@main_block_1_entry_condition| (not |%23-@main|)) +) +;;Memory PHI +(define-fun memory13 () Mem memory11) +;; %28 = load i32* %lhs, align 4 +(define-fun |%28-@main| () (_ BitVec 32) (read32 memory13 |%lhs-@main|)) +;; %29 = load i32* %rhs, align 4 +(define-fun |%29-@main| () (_ BitVec 32) (read32 memory13 |%rhs-@main|)) +;; %30 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([22 x i8]* @.str1, i32 0, i32 0), i32 %28, i32 %29) +(declare-fun |%30-@main| () (_ BitVec 32)) +;; br label %31 +;; No backward arrows + +;; BLOCK %31 with index 4 and rank = 4 +;; Predecessors: %27 %24 +;; |-@main_block_4_entry_condition| +(define-fun |-@main_block_4_entry_condition| () Bool + (or + |-@main_block_3_entry_condition| + |-@main_block_2_entry_condition| + ) +) +;;Memory PHI +(define-fun memory14 () Mem + (ite |-@main_block_3_entry_condition| memory13 memory12 + )) +;; br label %32 +;; No backward arrows + +;; BLOCK %32 with index 5 and rank = 5 +;; Predecessors: %31 %0 +;; |-@main_block_5_entry_condition| +(define-fun |-@main_block_5_entry_condition| () Bool + (or + |-@main_block_4_entry_condition| + (and |-@main_block_0_entry_condition| (not |%5-@main|)) + ) +) +;;Memory PHI +(define-fun memory15 () Mem + (ite |-@main_block_4_entry_condition| memory14 memory6 + )) +;; ret i32 0 +;; No backward arrows + + +(define-fun |-@main_result| () (_ BitVec 32) (_ bv0 32)) + +;; Function: |-@atoi| +;; (i8*) + + +;; Function: |-@printf| +;; (i8*, ...) + + +(assert (and (= |%a-@lhs| |%a-@rhs|) (= |%b-@lhs| |%b-@rhs|) (not (= |-@lhs_result| |-@rhs_result|)))) + +(check-sat) diff --git a/samples/XML/xhtml-struct-1.mod b/samples/XML/xhtml-struct-1.mod new file mode 100644 index 00000000..08c8b1d7 --- /dev/null +++ b/samples/XML/xhtml-struct-1.mod @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + +]]> + + + +]]> + + + + + + + +]]> + + + + + + +]]> + + + + + + + +]]> + + + +]]> + + + + + + + +]]> + + + + + + + +]]> + + diff --git a/test/fixtures/Generated/ABM8G.mod b/test/fixtures/Generated/ABM8G.mod new file mode 100644 index 00000000..15887130 --- /dev/null +++ b/test/fixtures/Generated/ABM8G.mod @@ -0,0 +1,50 @@ +PCBNEW-LibModule-V1 Wed 10 Aug 2011 05:57:27 PM COT +# encoding utf-8 +$INDEX +ABM8G +$EndINDEX +$MODULE ABM8G +Po 0 0 0 15 4E430CBD 4E430CC5 ~~ +Li ABM8G +Sc 4E430CC5 +AR +Op 0 0 0 +T0 591 -1378 354 354 0 39 N V 21 N "ABM8G" +T1 0 787 354 354 0 39 N V 21 N "VAL**" +DS -591 394 1299 394 79 21 +DS 1299 394 1299 -1063 79 21 +DS 1299 -1063 -472 -1063 79 21 +DS -472 -1063 -472 472 79 21 +DS -472 472 -472 551 79 21 +DS -472 551 -591 551 79 21 +DS -591 551 -591 433 79 21 +$PAD +Sh "1" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 0 0 +$EndPAD +$PAD +Sh "2" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 866 0 +$EndPAD +$PAD +Sh "3" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 866 -669 +$EndPAD +$PAD +Sh "4" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 0 -669 +$EndPAD +$EndMODULE ABM8G +$EndLIBRARY diff --git a/test/fixtures/Generated/ms2.mod b/test/fixtures/Generated/ms2.mod new file mode 100644 index 00000000..1866c8d6 --- /dev/null +++ b/test/fixtures/Generated/ms2.mod @@ -0,0 +1,19 @@ +GFORTRAN module version '0' created from ms2.f90 on Thu Sep 5 10:09:19 2013 +MD5:8a80cd5db1bc612a28603959302dbf37 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +(2 'ms2' 'ms2' 'ms2' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +) + +('ms2' 0 2) diff --git a/test/fixtures/SVG/alg_schema.link.svg b/test/fixtures/SVG/alg_schema.link.svg new file mode 120000 index 00000000..2f2cb2e4 --- /dev/null +++ b/test/fixtures/SVG/alg_schema.link.svg @@ -0,0 +1 @@ +alg_schema.svg \ No newline at end of file diff --git a/test/fixtures/SVG/alg_schema.svg b/test/fixtures/SVG/alg_schema.svg new file mode 100644 index 00000000..cd709914 --- /dev/null +++ b/test/fixtures/SVG/alg_schema.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Sequence KEY256 bits + + + + + Salt96 bits Counter32 bits + + + + + AES Cipher + + + + + + + Secure random data128 bits + + + Division by alphabet lengthrepeated passcode-length times. + + + + Passcode2-16 characters + + + + diff --git a/test/test_blob.rb b/test/test_blob.rb index 3d35e263..51c0398a 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -279,6 +279,9 @@ class TestBlob < Minitest::Test # Rails vendor/ assert sample_blob("vendor/plugins/will_paginate/lib/will_paginate.rb").vendored? + # Vendor/ + assert sample_blob("Vendor/my_great_file.h").vendored? + # 'thirdparty' directory assert sample_blob("thirdparty/lib/main.c").vendored? @@ -480,6 +483,12 @@ class TestBlob < Minitest::Test # Vagrant assert sample_blob("puphpet/file.pp").vendored? + + # Fabric.io + assert sample_blob("Fabric.framework/Fabric.h").vendored? + + # Crashlytics + assert sample_blob("Crashlytics.framework/Crashlytics.h").vendored? end def test_documentation @@ -551,6 +560,8 @@ class TestBlob < Minitest::Test blob = fixture_blob(filepath) if language == 'Data' assert blob.language.nil?, "A language was found for #{filepath}" + elsif language == 'Generated' + assert blob.generated?, "#{filepath} is not a generated file" else assert blob.language, "No language for #{filepath}" assert_equal language, blob.language.name, blob.name diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index e331daf0..60532f35 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit e331daf0597f9df978403520ee8583e08892e9eb +Subproject commit 60532f35cf89ce8d7e3354ed2f81cc131e80b614 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 4ab90608..4acce8b6 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 4ab90608c10745de2cacba7490082ba7871f01e1 +Subproject commit 4acce8b67be537df6e23e9aab92c0427c37437a5 diff --git a/vendor/grammars/SMT.tmbundle b/vendor/grammars/SMT.tmbundle new file mode 160000 index 00000000..5b8231f5 --- /dev/null +++ b/vendor/grammars/SMT.tmbundle @@ -0,0 +1 @@ +Subproject commit 5b8231f5165f0a2147445783705e99f468be7a84 diff --git a/vendor/grammars/Sublime-Modula-2 b/vendor/grammars/Sublime-Modula-2 new file mode 160000 index 00000000..f30f2fbe --- /dev/null +++ b/vendor/grammars/Sublime-Modula-2 @@ -0,0 +1 @@ +Subproject commit f30f2fbe3b103bef939b830261bcd595f8951c28 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index 919a4d89..55785b6a 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit 919a4d895a8be3d97a8dd6eb197350d97b8e1ed1 +Subproject commit 55785b6af0115aa49ed3fc2b3c3edb02a5305068 diff --git a/vendor/grammars/carto-atom b/vendor/grammars/carto-atom index 60c8774b..98959093 160000 --- a/vendor/grammars/carto-atom +++ b/vendor/grammars/carto-atom @@ -1 +1 @@ -Subproject commit 60c8774b025cf5baa2de7d1b31a965f05d01af51 +Subproject commit 989590932359d32462c4904c5a71180aeda409d2 diff --git a/vendor/grammars/css.tmbundle b/vendor/grammars/css.tmbundle index 2ce91736..94f7111c 160000 --- a/vendor/grammars/css.tmbundle +++ b/vendor/grammars/css.tmbundle @@ -1 +1 @@ -Subproject commit 2ce91736ca17bbf72ca13ef82ff23c90cc01bf8f +Subproject commit 94f7111c2953ac7b4cc42d313d9ad9b8701b8468 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index ccb8b6ba..f7953e41 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit ccb8b6ba11def16841d22852cb6e942cbcdd8974 +Subproject commit f7953e41fdf40e49113852b07146478783f08139 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 3705d6e3..0124e630 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 3705d6e387aea3f065581c76e0e0f32eaf1c51ef +Subproject commit 0124e630f014071a35bbea43db745e3aaa3491a6 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 7fb8855d..810b34b2 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 7fb8855dd62691b63aa4e6023780aeaaef7cb977 +Subproject commit 810b34b259f04e6dc30a03096d3cfe16b70f4ba9 diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index 4197de8b..9ad91309 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit 4197de8b70bce0b58202d28f5f824b3ba1cec5a7 +Subproject commit 9ad91309a4e5bbe87fdc0e1e660a82aa94be1794 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index 81e089cc..04e308ae 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit 81e089cc55b6526aca10133372df83b13cd3f6bc +Subproject commit 04e308ae4c70d00eb38cb4d4211b5c27ae5bdce5 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 601cb6cb..e26b8c50 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 601cb6cb8f80e03e7eaa5695515d6366fb2b6d18 +Subproject commit e26b8c50a3ee02cb1d922d82ca66c9b75d06f052 diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq index 20214d61..7a971acf 160000 --- a/vendor/grammars/language-jsoniq +++ b/vendor/grammars/language-jsoniq @@ -1 +1 @@ -Subproject commit 20214d61b412d53c2624f1a385ad27236f05a375 +Subproject commit 7a971acf1c2001e6b2e9afc7b69b6ff8a2ae39ce diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index db14372b..7271315c 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit db14372b475bf41f0f01032076ba53b3940fb80a +Subproject commit 7271315c858451ad302ebce2c5db2eee528013cc diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index 4b768e2c..fd81fe58 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit 4b768e2ce11adc7926fd31cf5c9a3b83e05d05ca +Subproject commit fd81fe586b928b4c2852b43472b37bdc45a6d074 diff --git a/vendor/grammars/sas.tmbundle b/vendor/grammars/sas.tmbundle index a9689f43..43a05b10 160000 --- a/vendor/grammars/sas.tmbundle +++ b/vendor/grammars/sas.tmbundle @@ -1 +1 @@ -Subproject commit a9689f436f49b1aa8f882119bdd8d77172af0501 +Subproject commit 43a05b10fc76b34946a1188fd2a9c2171dbf3fe4 diff --git a/vendor/grammars/sublime-mask b/vendor/grammars/sublime-mask index a7f3baac..bd37c4e7 160000 --- a/vendor/grammars/sublime-mask +++ b/vendor/grammars/sublime-mask @@ -1 +1 @@ -Subproject commit a7f3baacf61d168c59554ccea07e89df016dbfb9 +Subproject commit bd37c4e7537f0fae03d55c02891a5f2500562faf diff --git a/vendor/grammars/sublime-text-ox b/vendor/grammars/sublime-text-ox index 10ca8836..ed96fb6a 160000 --- a/vendor/grammars/sublime-text-ox +++ b/vendor/grammars/sublime-text-ox @@ -1 +1 @@ -Subproject commit 10ca88362c6e4853744fc6b17ed06cc45dc033fa +Subproject commit ed96fb6afc0321c7d3ce219d69b56c591f0938a0 From b0073d461cf65a34ab714c8cbb39937f6d0ad2a2 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 5 Jul 2015 12:47:57 +0200 Subject: [PATCH 556/875] New .inc C++ samples --- samples/C++/ClasspathVMSystemProperties.inc | 57 +++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 samples/C++/ClasspathVMSystemProperties.inc diff --git a/samples/C++/ClasspathVMSystemProperties.inc b/samples/C++/ClasspathVMSystemProperties.inc new file mode 100644 index 00000000..714f19b9 --- /dev/null +++ b/samples/C++/ClasspathVMSystemProperties.inc @@ -0,0 +1,57 @@ +//===- ClasspathVMSystem/Properties.cpp -----------------------------------===// +//===--------------------- GNU classpath gnu/classpath/VMSystemProperties -===// +// +// The VMKit project +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include + +#include "types.h" + +#include "Classpath.h" +#include "JavaArray.h" +#include "JavaClass.h" +#include "JavaObject.h" +#include "JavaThread.h" +#include "JavaUpcalls.h" +#include "Jnjvm.h" + +#include "SetProperties.inc" + +using namespace j3; + +extern "C" { + + +JNIEXPORT void JNICALL Java_gnu_classpath_VMSystemProperties_preInit( +#ifdef NATIVE_JNI +JNIEnv *env, +jclass clazz, +#endif +JavaObject* prop) { + + llvm_gcroot(prop, 0); + + BEGIN_NATIVE_EXCEPTION(0) + + setProperties(prop); + + END_NATIVE_EXCEPTION +} + +extern "C" void Java_gnu_classpath_VMSystemProperties_postInit__Ljava_util_Properties_2(JavaObject* prop) { + + llvm_gcroot(prop, 0); + + BEGIN_NATIVE_EXCEPTION(0) + + setCommandLineProperties(prop); + + END_NATIVE_EXCEPTION +} + +} From 849eb28b01b723a4fd20363a60624be963f85424 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 5 Jul 2015 12:48:12 +0200 Subject: [PATCH 557/875] New .inc SourcePawn samples --- samples/SourcePawn/Check.inc | 246 +++++++++++++++++++++++++++++ samples/SourcePawn/mfile.inc | 289 +++++++++++++++++++++++++++++++++++ 2 files changed, 535 insertions(+) create mode 100644 samples/SourcePawn/Check.inc create mode 100644 samples/SourcePawn/mfile.inc diff --git a/samples/SourcePawn/Check.inc b/samples/SourcePawn/Check.inc new file mode 100644 index 00000000..518ed70d --- /dev/null +++ b/samples/SourcePawn/Check.inc @@ -0,0 +1,246 @@ +// Checkpoint Manager +// (c) João Pedro Lopes, All right's reserved +// +// Feel free to change any line above, as long as you post the 'fix' / 'patch' at the forum +// and send a copy to jplopes@live.com.pt + +/* natives + native CreateCheckpoint(ownerid, chpid, Float:posX, Float:posY, Float:posZ, Float:size); // Creates a checkpoint + native SetCheckpointInterior(chpid, interiorid); // Changes the checkpoint interior + native SetCheckpointVirtualWorld(chpid, VirtualWorldID); // Changes the Checkpoint vWorld + native ToggleCheckpointActive(chpid, bool:active); // Deactivates / Activates the checkpoint + native ChangeCheckpointOwner(chpid, owner); // Change the checkpoint owner + native RemoveCheckpoint(chpid); // Removes the specified checkpoint + native StartCheckpointSeeking(); // Starts seeking for each individual + native StopCheckpointSeeking(); // Stops the system + native VerifyCheckpoint(playerid); // Place this at OnPlayerEnterCheckpoint +*/ + +// Function Forwards +forward public OnCheckpointEnter(playerid, checkpointid); + +#if defined _CHECKPOINT_MANAGER_INCLUDED + #endinput +#endif + +#define _CHECKPOINT_MANAGER_INCLUDED +#pragma library CheckpointManager + +#include + +#define MAX_CHECKPOINTS 200 +#define CHECKPOINT_SEEKER_DELAY 300 + +#define GLOBAL_OWNER_ID -1 + + +// CHECKPOINT ENUMERATION +enum _checkpointEnum{ + _chp_populated, // Is this slot of the memory populated? + + _chp_id, // The ID of the checkpoint + _chp_owner, // The ID of the player who this checkpoint is visible too + + Float:_chp_posX, // The X position of this checkpoint + Float:_chp_posY, // The Y position of this checkpoint + Float:_chp_posZ, // The Z position of this checkpoint + Float:_chp_size, // The checkpoint size + Float:_chp_viewDistance, // The checkpoint view distance + + bool:_chp_active, // Is this checkpoint active? + + _chp_interior_id, // The interior id of this checkpoint + _chp_world_id // The world id of this checkpoint +}; + +// DATA ARRAYS +new _checkpoints[MAX_CHECKPOINTS][_checkpointEnum]; +new _p_VisibleCheckpoint[MAX_PLAYERS]; +new _chp_manager_timer_id; + +// DATA VARIABLES +new _totalCheckpoints; + +// -------------------------------------------------------------------------------------------------------- +// Creates a new checkpoint with some initial data +stock CreateCheckpoint(__ownerid, __chpid, Float:__posX, Float:__posY, Float:__posZ, Float:__size){ + // Max checkpoint reached? + if(_totalCheckpoints == MAX_CHECKPOINTS) return 0; + + // First checkpoint? Setting everything to unpopulated + if(!_totalCheckpoints){ + for(new i; i < MAX_PLAYERS; i++) _p_VisibleCheckpoint[i] = -1; + for(new i; i < MAX_CHECKPOINTS; i++){ + _checkpoints[i][_chp_populated] = false; + } + + // Sending the Initialization Info + printf("[Checkpoint Manager : Version 0.1.1b] System Initialized...", __chpid); + } + + // Getting the first open slot + new _slot; + for(new i = 0; i < MAX_CHECKPOINTS; i++){ + if(!_checkpoints[i][_chp_populated]){ + _slot = i; + break; + } + } + + // Adding the new checkpoint + _checkpoints[_slot][_chp_populated] = true; + _checkpoints[_slot][_chp_id] = __chpid; + _checkpoints[_slot][_chp_owner] = __ownerid; + _checkpoints[_slot][_chp_posX] = __posX; + _checkpoints[_slot][_chp_posY] = __posY; + _checkpoints[_slot][_chp_posZ] = __posZ; + _checkpoints[_slot][_chp_size] = __size; + _checkpoints[_slot][_chp_viewDistance] = 50.0; + _checkpoints[_slot][_chp_active] = true; + _checkpoints[_slot][_chp_interior_id] = 0; + _checkpoints[_slot][_chp_world_id] = 0; + + printf("[Checkpoint Manager] Checkpoint created (%d) at slot %d", __chpid, _slot); + printf("Checkpoint Position: { %f, %f, %f }", _checkpoints[_slot][_chp_posX], _checkpoints[_slot][_chp_posY], _checkpoints[_slot][_chp_posZ]); + + _totalCheckpoints++; + return 1; +} + +//--------------------------------------------------------------------------------------------- +stock SetCheckpointInterior(__chpid, __interiorid){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + // Valid slot? + _checkpoints[_slot][_chp_interior_id] = __interiorid; + return 1; + } + return 0; +} + +//--------------------------------------------------------------------------------------------- +stock SetCheckpointVirtualWorld(__chpid, __virtual_world_id){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + _checkpoints[_slot][_chp_world_id] = __virtual_world_id; + return 1; + } + return 0; +} + +stock ToggleCheckpointActive(__chpid, bool:__active){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + _checkpoints[_slot][_chp_active] = __active; + return 1; + } + return 0; +} + +stock ChangeCheckpointOwner(__chpid, __owner){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + _checkpoints[_slot][_chp_owner] = __owner; + return 1; + } + return 0; +} + +stock RemoveCheckpoint(__chpid){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + // Deleting the checkpoint + _checkpoints[_slot][_chp_populated] = false; + _checkpoints[_slot][_chp_id] = -1; + _checkpoints[_slot][_chp_owner] = 255; + _checkpoints[_slot][_chp_posX] = -1; + _checkpoints[_slot][_chp_posY] = -1; + _checkpoints[_slot][_chp_posZ] = -1; + _checkpoints[_slot][_chp_size] = -1; + _checkpoints[_slot][_chp_viewDistance] = -1; + _checkpoints[_slot][_chp_active] = false; + _checkpoints[_slot][_chp_interior_id] = -1; + _checkpoints[_slot][_chp_world_id] = -1; + _totalCheckpoints--; + printf("\n[Checkpoint Manager] Checkpoint removed (ID: %d)", __chpid); + return 1; + } + return 0; +} + +//--------------------------------------------------------------------------------------------- +// Gets the checkpoint slot by id +stock __ChpSlotByID(__chpid){ + for(new i; i < MAX_CHECKPOINTS; i++){ + if(_checkpoints[i][_chp_id] == __chpid) return i; + } + return -1; +} + + +forward CheckpointSeeker(); +stock StartCheckpointSeeking(){ + _chp_manager_timer_id = SetTimer("CheckpointSeeker", CHECKPOINT_SEEKER_DELAY, 1); + return 1; +} + +stock StopCheckpointSeeking(){ + KillTimer(_chp_manager_timer_id); + return 1; +} + +public CheckpointSeeker(){ + new Float:__posX, Float:__posY, Float:__posZ; + new __interior; + new __virtualWorld; + for(new i; i < MAX_PLAYERS; i++) + { + if(!IsPlayerConnected(i)) continue; + + GetPlayerPos(i, Float:__posX, Float:__posY, Float:__posZ); + // Is the player near a checkpoint? + if(_p_VisibleCheckpoint[i] > -1) + { + // If the player is no longer near that point + if(__posX < (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posX] - _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance]) + || __posX > (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posX] + _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance]) + || __posY < (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posY] - _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance]) + || __posY > (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posY] + _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance])){ + DisablePlayerCheckpoint(i); + _p_VisibleCheckpoint[i] = -1; + } + } + else + { + // Getting the player Interior and virtual world + __interior = GetPlayerInterior(i); + __virtualWorld = GetPlayerVirtualWorld(i); + + // Looking for a new checkpoint + for(new j = 0; j < MAX_CHECKPOINTS; j++){ + if(!_checkpoints[j][_chp_populated]) continue; + if((_checkpoints[j][_chp_owner] != i) && (_checkpoints[j][_chp_owner] != -1)) continue; + if(_checkpoints[j][_chp_interior_id] != __interior) continue; + if(_checkpoints[j][_chp_world_id] != __virtualWorld) continue; + + if(__posX > (_checkpoints[j][_chp_posX] - _checkpoints[j][_chp_viewDistance]) + && __posX < (_checkpoints[j][_chp_posX] + _checkpoints[j][_chp_viewDistance]) + && __posY > (_checkpoints[j][_chp_posY] - _checkpoints[j][_chp_viewDistance]) + && __posY < (_checkpoints[j][_chp_posY] + _checkpoints[j][_chp_viewDistance])){ + SetPlayerCheckpoint(i, _checkpoints[j][_chp_posX], _checkpoints[j][_chp_posY], _checkpoints[j][_chp_posZ], _checkpoints[j][_chp_size]); + _p_VisibleCheckpoint[i] = j; + break; + } + } + } + } + return 1; +} + +stock VerifyCheckpoint(__playerid){ + if(_p_VisibleCheckpoint[__playerid] >= 0){ + OnCheckpointEnter(__playerid, _checkpoints[_p_VisibleCheckpoint[__playerid]][_chp_id]); + return 1; + } + return 0; +} \ No newline at end of file diff --git a/samples/SourcePawn/mfile.inc b/samples/SourcePawn/mfile.inc new file mode 100644 index 00000000..70fd47e0 --- /dev/null +++ b/samples/SourcePawn/mfile.inc @@ -0,0 +1,289 @@ +/* mFile 1.1 by Minokon + * + * (c) Copyright by Minokon 2010 + * (c) y_files Copyright by Y_Less 2010 + * + */ + +#if defined _mfile_included + #endinput +#endif +#define _mfile_included + +//Defines +#define MAX_LINE_SIZE 80 //Max lenght of one line in file +#define MAX_KEY_SIZE 50 //Max lenght of key in line (to =) +#define MAX_VALUE_SIZE 50 //Max lenght of value in line (past =) +#define TMP_FILE "tmpfile.txt" + +//Natives +/* +native mCreateFile(const file[]); +native mRemoveFile(const file[]); +native mClearFile(const file[]); +native bool:mFileExist(const file[]); +native mRenameFile(const file[], const newname[]); +native mFindFile(const name[], dest[], &index, sizename=sizeof dest); +native mCreateDir(const name[]); +native mRenameDir(const dir[], const newname[]); +native mFindDir(const name[], dest[], &index, sizename=sizeof dest); +native mHowLines(const file[]); +native mRemoveNewLine(string[]); //removes "\n" from string +native mGetString(const file[], const key[], bool:ignorecase=false); +native mGetInt(const file[], const key[], bool:ignorecase=false); +native mGetFloat(const file[], const key[], &Float:value); +native mSetString(const file[], const key[], const new_value[]); +native mSetInt(const file[], const key[], new_value); +native mSetFloat(const file[], const key[], Float:new_value); +native mIsSet(const file[], const key[], bool:ignorecase=false); +native mUnSet(const file[], const key[]); +native mIsFileEmpty(const file[]); +native y_files +*/ +//y_files by Y_Less Functions +native ffind(const pattern[], filename[], len, &idx); +native frename(const oldname[], const newname[]); +native dfind(const pattern[], filename[], len, &idx); +native dcreate(const name[]); +native drename(const oldname[], const newname[]); + +//Forwards +forward OnFileCreated(file[]); +forward OnFileRemoved(file[]); +forward OnFileCleared(file[]); +forward OnFileRenamed(oldname[], newname[]); +forward OnDirCreated(dir[]); +forward OnDirRenamed(oldname[], newname[]); + +stock mCreateFile(const file[]) +{ + if(fexist(file)) fremove(file); + new File:mfile = fopen(file, io_write); + fclose(mfile); + CallLocalFunction("OnFileCreated", "s", file); + return 1; +} + +stock mRemoveFile(const file[]) +{ + CallLocalFunction("OnFileRemoved", "s", file); + return fremove(file); +} + +stock mClearFile(const file[]) +{ + if(!fremove(file)) return 0; + new File:mfile = fopen(file, io_write); + fclose(mfile); + CallLocalFunction("OnFileCleared", "s", file); + return 1; +} + +stock bool:mFileExist(const file[]) + if(fexist(file)) return true; //dla ciekawych: fexist nie zwraca booleanu + else return false; + +stock mRenameFile(const file[], const newname[]) +{ + CallLocalFunction("OnFileRenamed", "ss", file, newname); + return frename(file, newname); +} + +stock mFindFile(const name[], dest[], &index, sizename=sizeof dest) + return ffind(name, dest, sizename, index); + +stock mCreateDir(const name[]) +{ + CallLocalFunction("OnDirCreated", "s", name); + return dcreate(name); +} + +stock mRenameDir(const dir[], const newname[]) +{ + CallLocalFunction("OnDirRenamed", "ss", dir, newname); + return drename(dir, newname); +} + +stock mFindDir(const name[], dest[], &index, sizename=sizeof dest) + return dfind(name, dest, sizename, index); + +stock mHowLines(const file[]) +{ + new lines, str[MAX_LINE_SIZE]; + new File:mfile = fopen(file, io_read); + while(fread(mfile, str)) lines++; + fclose(mfile); + return lines; +} + +stock mRemoveNewLine(string[]) +{ + new pos = strfind(string, "\n"); + if(pos != -1) + { + strdel(string, pos, pos+2); + return 1; + } + return 0; +} + +stock mGetString(const file[], const key[], bool:ignorecase=false) +{ + //Create file if not exists + if(!fexist(file)) + { + new File:created = fopen(file, io_write); + fclose(created); + } + new //Variables + File:mfile = fopen(file, io_read), //Open file + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE], + str3[MAX_VALUE_SIZE], + pos; + //Find key in file + while(fread(mfile, str)) + { + pos = strfind(str, "=", ignorecase); + strmid(str2, str, 0, pos); + if(!strcmp(str2, key, ignorecase, strlen(key)+1)) + { + strmid(str3, str, pos+1, strlen(str)); + mRemoveNewLine(str3); + break; + } + } + fclose(mfile); + return str3; +} + +stock mGetInt(const file[], const key[], bool:ignorecase=false) + return strval(mGetString(file, key, ignorecase)); + +stock mGetFloat(const file[], const key[], &Float:value, bool:ignorecase=false) + value = floatstr(mGetString(file, key, ignorecase)); + +stock mSetString(const file[], const key[], const new_value[]) +{ + //Create file if not exists + if(!fexist(file)) + { + new File:created = fopen(file, io_write); + fclose(created); + } + new //Variables + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE], + str3[MAX_LINE_SIZE], + bool:lFinded = false; + //Open file + new File:mfile = fopen(file, io_read); + //Create cache file + new File:tmpfile = fopen(TMP_FILE, io_write); + fclose(tmpfile); + //Open cache file + tmpfile = fopen(TMP_FILE, io_append); + format(str3, sizeof str3, "%s=%s\n", key, new_value); + while(fread(mfile, str)) + { + strmid(str2, str, 0, strfind(str, "=")); + if(!strcmp(str2, key)) + { + fwrite(tmpfile, str3); + lFinded = true; + } + else + fwrite(tmpfile, str); + } + if(!lFinded) //if line not found + fwrite(tmpfile, str3); + //Close and remove old file + fclose(mfile); + fremove(file); + //Close cache file and rename it + fclose(tmpfile); + frename(TMP_FILE, file); + return 1; +} + +stock mSetInt(const file[], const key[], new_value) +{ + new str[MAX_VALUE_SIZE]; + valstr(str, new_value); + mSetString(file, key, str); + return 1; +} + +stock mSetFloat(const file[], const key[], Float:new_value) +{ + new str[MAX_VALUE_SIZE]; + format(str, sizeof str, "%f", new_value); + return mSetString(file, key, str); +} + +stock bool:mIsSet(const file[], const key[], bool:ignorecase=false) +{ + //If fexists return false + if(!fexist(file)) return false; + new //Variables + File:mfile = fopen(file, io_read), //Open file + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE], + bool:finded = false; + //Find key in file + while(fread(mfile, str)) + { + strmid(str2, str, 0, strfind(str, "=")); + if(!strcmp(str2, key, ignorecase, strlen(key)+1)) + { + finded = true; + break; + } + } + fclose(mfile); + return finded; +} + +stock mUnSet(const file[], const key[]) +{ + if(!fexist(file)) return 0; + new //Variables + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE]; + //Open file + new File:mfile = fopen(file, io_read); + //Create cache file + new File:tmpfile = fopen(TMP_FILE, io_write); + fclose(tmpfile); + //Open cache file + tmpfile = fopen(TMP_FILE, io_append); + while(fread(mfile, str)) + { + strmid(str2, str, 0, strfind(str, "=")); + if(strcmp(str2, key) != 0) + fwrite(tmpfile, str); + } + //Close and remove old file + fclose(mfile); + fremove(file); + //Close cache file and rename it + fclose(tmpfile); + frename(TMP_FILE, file); + return 1; +} + +stock bool:mIsFileEmpty(const file[]) +{ + if(!fexist(file)) return true; + new File:mfile = fopen(file, io_read); + if(flength(mfile) <= 1) + { + fclose(mfile); + return true; + } + else + { + fclose(mfile); + return false; + } +} From b94eda18abe59879525d5a582105680c18bfe64c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 5 Jul 2015 12:48:22 +0200 Subject: [PATCH 558/875] New .inc Pascal samples --- samples/Pascal/vmops_impl.inc | 502 ++++++++++++++++++++++++++++++++++ 1 file changed, 502 insertions(+) create mode 100644 samples/Pascal/vmops_impl.inc diff --git a/samples/Pascal/vmops_impl.inc b/samples/Pascal/vmops_impl.inc new file mode 100644 index 00000000..71ab8727 --- /dev/null +++ b/samples/Pascal/vmops_impl.inc @@ -0,0 +1,502 @@ +operator+(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] + b[i mod bn]; +end; + +operator+(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] + b; +end; + +operator+(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a + b[i]; +end; + +operator-(a: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := -a[i]; +end; + +operator-(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] - b[i mod bn]; +end; + +operator-(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] - b; +end; + +operator-(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a - b[i]; +end; + +operator*(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] * b[i mod bn]; +end; + +operator*(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] * b; +end; + +operator*(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a * b[i]; +end; + +operator/(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] / b[i mod bn]; +end; + +operator/(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] / b; +end; + +operator/(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a / b[i]; +end; + +operator**(a, b: Double)res: Double; +begin + if IsNan(a) or IsNan(b) then res := NaN + else if b = Infinity then begin + if a = NegInfinity then res := NaN + else case sign(a) of + 1: res := Infinity; + 0: res := 0; + -1: res := NegInfinity; + end; + end else if b = NegInfinity then begin + if a = NegInfinity then res := NaN + else case sign(a) of + 1: res := 0; + 0: res := Infinity; + -1: res := 0; + end; + end else res := power(a, b); +end; + +operator**(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] ** b[i mod bn]; +end; + +operator**(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] ** b; +end; + +operator**(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a ** b[i]; +end; + +operator><(a: TVector; b: TVector)res: TMatrix; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + if an * bn = 0 then Exit(nil); + rn := math.max(an, bn); + SetLength(res, 1); + SetLength(res[0], 1); + res[0][0] := 0; + for i := 0 to rn - 1 do res[0][0] := res[0][0] + a[i mod an] * b[i mod bn]; +end; + +operator+(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] + b[i]; +end; + +operator+(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] + b; +end; + +operator+(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a + b[i]; +end; + +operator+(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a + matrix(b, Length(a), Length(a[0])); +end; + +operator+(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b + matrix(a, Length(b), Length(b[0])); +end; + +operator-(a: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := -a[i]; +end; + +operator-(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] - b[i]; +end; + +operator-(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] - b; +end; + +operator-(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a - b[i]; +end; + +operator-(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a - matrix(b, Length(a), Length(a[0])); +end; + +operator-(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b - matrix(a, Length(b), Length(b[0])); +end; + +operator*(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] * b[i]; +end; + +operator*(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] * b; +end; + +operator*(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a * b[i]; +end; + +operator*(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a * matrix(b, Length(a), Length(a[0])); +end; + +operator*(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b * matrix(a, Length(b), Length(b[0])); +end; + +operator/(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] / b[i]; +end; + +operator/(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] / b; +end; + +operator/(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a / b[i]; +end; + +operator/(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a / matrix(b, Length(a), Length(a[0])); +end; + +operator/(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b / matrix(a, Length(b), Length(b[0])); +end; + +operator**(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] ** b[i]; +end; + +operator**(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] ** b; +end; + +operator**(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a ** b[i]; +end; + +operator**(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a ** matrix(b, Length(a), Length(a[0])); +end; + +operator**(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b ** matrix(a, Length(b), Length(b[0])); +end; + +operator><(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, j, n, m: Integer; +begin + n := Length(a); + m := Length(b); + if (n = 1) and (m = 1) then Exit(vector(a) >< vector(b)); + SetLength(res, n); + for i := 0 to n - 1 do begin + j := 0; + res[i] := a[i][j] * b[j]; + for j := 1 to m - 1 do res[i] := res[i] + a[i][j] * b[j]; + end; +end; + +operator><(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a >< matrix(b, 1, Length(b)); +end; + +operator><(a: TVector; b: TMatrix)res: TMatrix; +begin + res := matrix(a, 1, Length(a)) >< b; +end; + +function vector(a: array of const): TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(Result, n); + for i := 0 to n - 1 do case a[i].VType of + vtInteger: Result[i] := a[i].VInteger; + vtExtended: Result[i] := a[i].VExtended^; + vtCurrency: Result[i] := a[i].VCurrency^; + vtInt64: Result[i] := a[i].VInt64^; + end; +end; + +function vector(a: TMatrix): TVector; inline; +var + i, j, n, m : Integer; +begin + n := Length(a); + if n = 0 then Exit(nil); + m := Length(a[0]); + if m = 0 then Exit(nil); + SetLength(Result, m * n); + for i := 0 to m - 1 do + for j := 0 to n - 1 do + Result[i * n + j] := a[j][i]; +end; + +function matrix(data: TVector; nrow, ncol: Integer; byrow: Boolean): TMatrix; +var + i, j, n, c: Integer; +begin + n := Length(data); + if n = 0 then Exit(nil); + if (nrow = 0) and (ncol = 0) then ncol := 1; + if nrow = 0 then nrow := (n div ncol) + sign(n mod ncol); + if ncol = 0 then ncol := (n div nrow) + sign(n mod nrow); + SetLength(Result, nrow); + for i := 0 to nrow - 1 do begin + SetLength(Result[i], ncol); + for j := 0 to ncol - 1 do begin + if byrow then c := i * ncol + j else c := j * nrow + i; + Result[i][j] := data[c mod n]; + end; + end; +end; + +function matrix(data: TMatrix; nrow, ncol: Integer; byrow: Boolean): TMatrix; +begin + Result := matrix(vector(data), nrow, ncol, byrow); +end; + +function rep(data: TVector; times: TVector): TVector; +var + i, j, n, m, s, c: Integer; +begin + Result := nil; + n := Length(data); + m := Length(times); + if n * m = 0 then Exit; + s := 0; + for i := 0 to n - 1 do begin + c := trunc(times[i mod m]); + if c > 0 then s += c; + end; + SetLength(Result, s); + c := 0; + for i := 0 to n - 1 do begin + s := trunc(times[i mod m]); + for j := 1 to s do begin + Result[c] := data[i]; + Inc(c); + end; + end; +end; + +function rep(data: TVector; len: Integer): TVector; +var + i, j, n: Integer; +begin + n := Length(data); + SetLength(Result, n * len); + if n = 0 then Exit; + for i := 0 to len - 1 do + for j := 0 to n - 1 do + Result[i * n + j] := data[j]; +end; + +function rep(data: Double; len: Integer): TVector; +var + i: Integer; +begin + SetLength(Result, len); + for i := 0 to len - 1 do Result[i] := data; +end; From 58fd8a5d878eacfa5d50f9fb09f0c43f8c2a7261 Mon Sep 17 00:00:00 2001 From: thorade Date: Tue, 7 Jul 2015 12:40:37 +0200 Subject: [PATCH 559/875] more samples for Modelica language, see issue #2486 --- samples/Modelica/NestedPackages.mo | 26 +++++++++++++++ samples/Modelica/NewtonCooling.mo | 24 ++++++++++++++ samples/Modelica/Pendulum.mo | 47 +++++++++++++++++++++++++++ samples/Modelica/RLC.mo | 16 +++++++++ samples/Modelica/SecondOrderSystem.mo | 29 +++++++++++++++++ samples/Modelica/System.mo | 19 +++++++++++ samples/Modelica/package.mo | 4 +++ samples/Modelica/package2.mo | 3 ++ samples/Modelica/package3.mo | 3 ++ samples/Modelica/package4.mo | 3 ++ 10 files changed, 174 insertions(+) create mode 100644 samples/Modelica/NestedPackages.mo create mode 100644 samples/Modelica/NewtonCooling.mo create mode 100644 samples/Modelica/Pendulum.mo create mode 100644 samples/Modelica/RLC.mo create mode 100644 samples/Modelica/SecondOrderSystem.mo create mode 100644 samples/Modelica/System.mo create mode 100644 samples/Modelica/package.mo create mode 100644 samples/Modelica/package2.mo create mode 100644 samples/Modelica/package3.mo create mode 100644 samples/Modelica/package4.mo diff --git a/samples/Modelica/NestedPackages.mo b/samples/Modelica/NestedPackages.mo new file mode 100644 index 00000000..d57e1134 --- /dev/null +++ b/samples/Modelica/NestedPackages.mo @@ -0,0 +1,26 @@ +within ModelicaByExample.PackageExamples; +package NestedPackages + "An example of how packages can be used to organize things" + package Types + type Rabbits = Real(quantity="Rabbits", min=0); + type Wolves = Real(quantity="Wolves", min=0); + type RabbitReproduction = Real(quantity="Rabbit Reproduction", min=0); + type RabbitFatalities = Real(quantity="Rabbit Fatalities", min=0); + type WolfReproduction = Real(quantity="Wolf Reproduction", min=0); + type WolfFatalities = Real(quantity="Wolf Fatalities", min=0); + end Types; + + model LotkaVolterra "Lotka-Volterra with types" + parameter Types.RabbitReproduction alpha=0.1; + parameter Types.RabbitFatalities beta=0.02; + parameter Types.WolfReproduction gamma=0.4; + parameter Types.WolfFatalities delta=0.02; + parameter Types.Rabbits x0=10; + parameter Types.Wolves y0=10; + Types.Rabbits x(start=x0); + Types.Wolves y(start=y0); + equation + der(x) = x*(alpha-beta*y); + der(y) = -y*(gamma-delta*x); + end LotkaVolterra; +end NestedPackages; diff --git a/samples/Modelica/NewtonCooling.mo b/samples/Modelica/NewtonCooling.mo new file mode 100644 index 00000000..5a24b99f --- /dev/null +++ b/samples/Modelica/NewtonCooling.mo @@ -0,0 +1,24 @@ +within ModelicaByExample.PackageExamples; +model NewtonCooling + "Cooling example importing physical types from the Modelica Standard Library" + import Modelica.SIunits.Temperature; + import Modelica.SIunits.Mass; + import Modelica.SIunits.Area; + import ConvectionCoefficient = Modelica.SIunits.CoefficientOfHeatTransfer; + import SpecificHeat = Modelica.SIunits.SpecificHeatCapacity; + + // Parameters + parameter Temperature T_inf=300.0 "Ambient temperature"; + parameter Temperature T0=280.0 "Initial temperature"; + parameter ConvectionCoefficient h=0.7 "Convective cooling coefficient"; + parameter Area A=1.0 "Surface area"; + parameter Mass m=0.1 "Mass of thermal capacitance"; + parameter SpecificHeat c_p=1.2 "Specific heat"; + + // Variables + Temperature T "Temperature"; +initial equation + T = T0 "Specify initial value for T"; +equation + m*c_p*der(T) = h*A*(T_inf-T) "Newton's law of cooling"; +end NewtonCooling; diff --git a/samples/Modelica/Pendulum.mo b/samples/Modelica/Pendulum.mo new file mode 100644 index 00000000..919cfb5f --- /dev/null +++ b/samples/Modelica/Pendulum.mo @@ -0,0 +1,47 @@ +within ModelicaByExample.Subsystems.Pendula; +model Pendulum "A single individual pendulum" + import Modelica.Mechanics.MultiBody.Parts; + import Modelica.Mechanics.MultiBody.Joints; + + parameter Modelica.SIunits.Position x; + parameter Modelica.SIunits.Mass m "Mass of mass point"; + parameter Modelica.SIunits.Angle phi "Initial angle"; + parameter Modelica.SIunits.Length L "String length"; + parameter Modelica.SIunits.Diameter d=0.01; + + Parts.Fixed ground(r={0,0,x}, animation=false) + annotation (Placement( + transformation( + extent={{-10,-10},{10,10}}, + rotation=270, origin={0,60}))); + Parts.PointMass ball(m=m, sphereDiameter=5*d) + annotation (Placement(transformation(extent={{-10,-90},{10,-70}}))); + Parts.BodyCylinder string(density=0, r={0,L,0}, diameter=d) + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=90, + origin={0,-30}))); + Joints.Revolute revolute(phi(fixed=true, start=phi), + cylinderDiameter=d/2, animation=false) + annotation (Placement( + transformation( + extent={{-10,-10},{10,10}}, + rotation=90, + origin={0,20}))); +equation + connect(string.frame_a, ball.frame_a) annotation (Line( + points={{0,-40},{0,-40},{0,-80}}, + color={95,95,95}, + thickness=0.5, + smooth=Smooth.None)); + connect(revolute.frame_b, ground.frame_b) annotation (Line( + points={{0,30},{0,40},{0,40},{0,50}}, + color={95,95,95}, + thickness=0.5, + smooth=Smooth.None)); + connect(revolute.frame_a, string.frame_b) annotation (Line( + points={{0,10},{0,10},{0,-20},{0,-20}}, + color={95,95,95}, + thickness=0.5, + smooth=Smooth.None)); +end Pendulum; diff --git a/samples/Modelica/RLC.mo b/samples/Modelica/RLC.mo new file mode 100644 index 00000000..fb84728d --- /dev/null +++ b/samples/Modelica/RLC.mo @@ -0,0 +1,16 @@ +within ModelicaByExample.PackageExamples; +model RLC "An RLC circuit referencing types from the Modelica Standard Library" + parameter Modelica.SIunits.Voltage Vb=24 "Battery voltage"; + parameter Modelica.SIunits.Inductance L = 1; + parameter Modelica.SIunits.Resistance R = 100; + parameter Modelica.SIunits.Capacitance C = 1e-3; + Modelica.SIunits.Voltage V; + Modelica.SIunits.Current i_L; + Modelica.SIunits.Current i_R; + Modelica.SIunits.Current i_C; +equation + i_R = V/R; + i_C = C*der(V); + i_L=i_R+i_C; + L*der(i_L) = (Vb-V); +end RLC; diff --git a/samples/Modelica/SecondOrderSystem.mo b/samples/Modelica/SecondOrderSystem.mo new file mode 100644 index 00000000..29d412ec --- /dev/null +++ b/samples/Modelica/SecondOrderSystem.mo @@ -0,0 +1,29 @@ +within ModelicaByExample.PackageExamples; +model SecondOrderSystem + "A second order rotational system importing types from Modelica Standard Library" + import Modelica.SIunits.*; + parameter Angle phi1_init = 0; + parameter Angle phi2_init = 1; + parameter AngularVelocity omega1_init = 0; + parameter AngularVelocity omega2_init = 0; + parameter Inertia J1=0.4; + parameter Inertia J2=1.0; + parameter RotationalSpringConstant k1=11; + parameter RotationalSpringConstant k2=5; + parameter RotationalDampingConstant d1=0.2; + parameter RotationalDampingConstant d2=1.0; + Angle phi1; + Angle phi2; + AngularVelocity omega1; + AngularVelocity omega2; +initial equation + phi1 = phi1_init; + phi2 = phi2_init; + omega1 = omega1_init; + omega2 = omega2_init; +equation + omega1 = der(phi1); + omega2 = der(phi2); + J1*der(omega1) = k1*(phi2-phi1)+d1*der(phi2-phi1); + J2*der(omega2) = k1*(phi1-phi2)+d1*der(phi1-phi2)-k2*phi2-d2*der(phi2); +end SecondOrderSystem; diff --git a/samples/Modelica/System.mo b/samples/Modelica/System.mo new file mode 100644 index 00000000..82d762a5 --- /dev/null +++ b/samples/Modelica/System.mo @@ -0,0 +1,19 @@ +within ModelicaByExample.Subsystems.Pendula; +model System "A system of pendula" + import Modelica.Constants.g_n; + import Modelica.Constants.pi; + + parameter Integer n=15 "Number of pendula"; + parameter Modelica.SIunits.Position x[n] = linspace(0,(n-1)*0.05,n); + parameter Modelica.SIunits.Time T = 54; + parameter Modelica.SIunits.Time X = 30; + parameter Modelica.SIunits.Length lengths[n] = { g_n*(T/(2*pi*(X+(n-i))))^2 for i in 1:n}; + parameter Modelica.SIunits.Angle phi0 = 0.5; + + Pendulum pendulum[n](x=x, each m=1, each phi=phi0, L=lengths) + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + inner Modelica.Mechanics.MultiBody.World world + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); + annotation (experiment(StopTime=54, + Interval=9e-3, Tolerance=1e-008)); +end System; diff --git a/samples/Modelica/package.mo b/samples/Modelica/package.mo new file mode 100644 index 00000000..09cdd4db --- /dev/null +++ b/samples/Modelica/package.mo @@ -0,0 +1,4 @@ +within ; +package ModelicaByExample +annotation (uses(Modelica(version="3.2.1"))); +end ModelicaByExample; diff --git a/samples/Modelica/package2.mo b/samples/Modelica/package2.mo new file mode 100644 index 00000000..98c31810 --- /dev/null +++ b/samples/Modelica/package2.mo @@ -0,0 +1,3 @@ +within ModelicaByExample; +package PackageExamples "Examples of using packages" +end PackageExamples; diff --git a/samples/Modelica/package3.mo b/samples/Modelica/package3.mo new file mode 100644 index 00000000..53cb202e --- /dev/null +++ b/samples/Modelica/package3.mo @@ -0,0 +1,3 @@ +within ModelicaByExample.Subsystems; +package GearSubsystemModel "Build a subsystem model representing a gear with backlash" +end GearSubsystemModel; diff --git a/samples/Modelica/package4.mo b/samples/Modelica/package4.mo new file mode 100644 index 00000000..c0630497 --- /dev/null +++ b/samples/Modelica/package4.mo @@ -0,0 +1,3 @@ +within ModelicaByExample.Subsystems; +package Pendula "Example of using arrays of subsystems to build complete systems" +end Pendula; From 7ed1b9b0b11539f6131a14496a12c72b5718d3f7 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Wed, 8 Jul 2015 14:10:59 -0400 Subject: [PATCH 560/875] Add code of conduct to contributing guidelines --- CONTRIBUTING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 80576ac4..7c8f64e5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,10 @@ # Contributing -Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. The majority of contributions won't need to touch any Ruby code at all. +[code-of-conduct]: http://todogroup.org/opencodeofconduct/#Linguist/opensource@github.com +Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code. + +The majority of contributions won't need to touch any Ruby code at all. ## Adding an extension to a language From 2d392581e20a54284f36b8c20f555eedfa807d3d Mon Sep 17 00:00:00 2001 From: rpavlick Date: Fri, 5 Jun 2015 23:24:35 -0700 Subject: [PATCH 561/875] adding NCL language --- .gitmodules | 3 + Rakefile | 2 +- grammars.yml | 2 + lib/linguist/heuristics.rb | 6 + lib/linguist/languages.yml | 9 + samples/NCL/PrnOscPat_driver.ncl | 109 +++++++++++ samples/NCL/WRF_static_2.ncl | 115 ++++++++++++ samples/NCL/WRF_track_1.ncl | 160 ++++++++++++++++ samples/NCL/cru_8.ncl | 129 +++++++++++++ .../NCL/gsn_csm_xy2_time_series_inputs.ncl | 20 ++ samples/NCL/hdf4sds_7.ncl | 128 +++++++++++++ samples/NCL/mask_12.ncl | 125 +++++++++++++ samples/NCL/mcsst_1.ncl | 115 ++++++++++++ samples/NCL/primero.ncl | 3 + samples/NCL/topo_9.ncl | 172 ++++++++++++++++++ samples/NCL/traj_3.ncl | 120 ++++++++++++ samples/NCL/tsdiagram_1.ncl | 167 +++++++++++++++++ samples/NCL/unique_9.ncl | 141 ++++++++++++++ samples/NCL/viewport_4.ncl | 131 +++++++++++++ samples/NCL/weather_sym_6.ncl | 120 ++++++++++++ samples/NCL/xy_29.ncl | 151 +++++++++++++++ samples/Text/01_top.ncl | 18 ++ samples/Text/LIDARLite.ncl | 34 ++++ samples/Text/Site.local.ncl | 22 +++ samples/Text/main.ncl | 46 +++++ samples/Text/min-help.ncl | 45 +++++ samples/Text/receiver.ncl | 21 +++ samples/Text/rmMonAnnCycLLT-help.ncl | 40 ++++ samples/Text/zonalAve-help.ncl | 35 ++++ test/test_heuristics.rb | 2 +- vendor/grammars/language-ncl | 1 + 31 files changed, 2190 insertions(+), 2 deletions(-) create mode 100644 samples/NCL/PrnOscPat_driver.ncl create mode 100644 samples/NCL/WRF_static_2.ncl create mode 100644 samples/NCL/WRF_track_1.ncl create mode 100644 samples/NCL/cru_8.ncl create mode 100644 samples/NCL/gsn_csm_xy2_time_series_inputs.ncl create mode 100644 samples/NCL/hdf4sds_7.ncl create mode 100644 samples/NCL/mask_12.ncl create mode 100644 samples/NCL/mcsst_1.ncl create mode 100644 samples/NCL/primero.ncl create mode 100644 samples/NCL/topo_9.ncl create mode 100644 samples/NCL/traj_3.ncl create mode 100644 samples/NCL/tsdiagram_1.ncl create mode 100644 samples/NCL/unique_9.ncl create mode 100644 samples/NCL/viewport_4.ncl create mode 100644 samples/NCL/weather_sym_6.ncl create mode 100644 samples/NCL/xy_29.ncl create mode 100644 samples/Text/01_top.ncl create mode 100644 samples/Text/LIDARLite.ncl create mode 100644 samples/Text/Site.local.ncl create mode 100644 samples/Text/main.ncl create mode 100644 samples/Text/min-help.ncl create mode 100644 samples/Text/receiver.ncl create mode 100644 samples/Text/rmMonAnnCycLLT-help.ncl create mode 100644 samples/Text/zonalAve-help.ncl create mode 160000 vendor/grammars/language-ncl diff --git a/.gitmodules b/.gitmodules index edb00607..9feec03b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -644,3 +644,6 @@ [submodule "vendor/grammars/smali-sublime"] path = vendor/grammars/smali-sublime url = https://github.com/ShaneWilton/sublime-smali +[submodule "vendor/grammars/language-ncl"] + path = vendor/grammars/language-ncl + url = https://github.com/rpavlick/language-ncl.git diff --git a/Rakefile b/Rakefile index b38486c0..1936c5f0 100644 --- a/Rakefile +++ b/Rakefile @@ -62,7 +62,7 @@ namespace :benchmark do corpus = File.expand_path(ENV["CORPUS"] || "samples") - require 'linguist/language' + require 'linguist' results = Hash.new Dir.glob("#{corpus}/**/*").each do |file| diff --git a/grammars.yml b/grammars.yml index 21a54c67..fbf3dabc 100644 --- a/grammars.yml +++ b/grammars.yml @@ -320,6 +320,8 @@ vendor/grammars/language-hy: vendor/grammars/language-javascript: - source.js - source.js.regexp +vendor/grammars/language-ncl: +- source.ncl vendor/grammars/language-python: - source.python - source.regexp.python diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 39e286bb..8fb41ced 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -274,6 +274,12 @@ module Linguist end end + disambiguate "Text", "NCL" do |data| + if data.include?("THE_TITLE") + Language["Text"] + end + end + disambiguate "NL", "NewLisp" do |data| if /^(b|g)[0-9]+ /.match(data) Language["NL"] diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ba5c0103..c404baaa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2049,6 +2049,14 @@ Myghty: tm_scope: none ace_mode: text +NCL: + type: programming + color: #28431f + extensions: + - .ncl + tm_scope: source.ncl + ace_mode: text + NL: type: data extensions: @@ -3261,6 +3269,7 @@ Text: extensions: - .txt - .fr + - .ncl tm_scope: none ace_mode: text diff --git a/samples/NCL/PrnOscPat_driver.ncl b/samples/NCL/PrnOscPat_driver.ncl new file mode 100644 index 00000000..9a4ba134 --- /dev/null +++ b/samples/NCL/PrnOscPat_driver.ncl @@ -0,0 +1,109 @@ +undef("PrnOscPat_driver") +function PrnOscPat_driver(eof[*][*][*]:numeric, eof_ts[*][*]:numeric, kPOP[1]:integer) +; ================================================================= +; compute Principal Oscillation Patterns (POPs) +; ================================================================= +local dim_ts, dim_eof, neof, ntim, nlat, mlon, dnam_ts, dnam_eof, neof, j \ + , cov0, cov1, cov0_inverse, A, z, Z, pr, pi, zr, zi, mean, stdev \ + , evlr, eigi, eigr +begin + + dim_ts = dimsizes(eof_ts) ; (neof,ntim) + dim_eof = dimsizes(eof) ; (neof,nlat,mlon) + + ntim = dim_ts(1) + neof = dim_eof(0) + nlat = dim_eof(1) + mlon = dim_eof(2) + + dnam_ts = getvardims(eof_ts) ; dimension names + dnam_eof= getvardims(eof) ; used at end for meta data + +; ================================================================= +; lag-0 and lag-1 matrices +; ================================================================= + + if (get_ncl_version().eq."6.1.2") then ; bug in 6.1.2 + cov0 = covcorm(eof_ts,(/1,0/)) ; lag-0 covariance matrix + else + cov0 = covcorm(eof_ts,(/0,1/)) ; lag-0 covariance matrix (n x n) + end if + ; either + cov1 = covcorm_xy(eof_ts, eof_ts, (/0,1,0/)) ; lag-1 + ;cov1 = covcorm_xy(eof_ts(:,0:ntim-2) \ ; alternative, brute force + ; ,eof_ts(:,1:ntim-1), (/0,0,0/)) + ;printVarSummary(cov1) + +; ================================================================= +; matrix A contains information for evolution of the POP system. +; POPs are eigenvectors of A. +; ================================================================= + + cov0_inverse = inverse_matrix(cov0) + A = cov1#inverse_matrix(cov0) ; [*][*] => neof x neof + +; ================================================================= +; NCL 6.1.1 of dgeevx: evlr(2,2,N,N) ; (left(0)/right(1), real(0)/imag(1),:,:) +; Eigenvalues are returned as attributes: eigi = evlr@eigi ; eigr = evlr@eigr +; ================================================================= + + evlr = dgeevx_lapack(A, "B", "V", "V", "B", False) + +; ================================================================= +; POP time series from eigenvalues and right eigenvectors +; ================================================================= + ;PR = (/ evlr(1,0,:,:) /) ; right ev (1), real part (0) + ;PI = (/ evlr(1,1,:,:) /) ; right ev (1), imag part (1) + ; kPOP is what we want; use righteigenvector + pr = (/ evlr(1,0,kPOP-1,:) /) ; right ev (1), real part (0), row 'kPOP-1' + pi = (/ evlr(1,1,kPOP-1,:) /) ; right ev (1), imag part (1), row 'kPOP-1' + + z = inverse_matrix( (/ (/sum(pr*pr), sum(pr*pi)/) \ + , (/sum(pr*pi), sum(pi*pi)/) /))#(/pr,pi/)#eof_ts + + ; complex conjugate + z = (/z(0,:), -z(1,:)/) ; real & imag series + z = dim_rmvmean_n(z,1) + mean = dim_avg_n(z,1) ; calculate mean + stdev= dim_stddev_n(z,1) ; calculate stdev + z = dim_standardize_n(z,1,1) ; standardize time series + + z!0 = "nPOP" ; add meta data + z!1 = dnam_ts(1) + z&nPOP = (/0,1/) + z&$dnam_ts(1)$ = eof_ts&$dnam_ts(1)$ + z@stdev = stdev + z@mean = mean + z@long_name = "POP timeseries" + ;printVarSummary(z) + +; ================================================================= +; POP spatial patterns +; ================================================================= + + zr = pr(0)*eof(0,:,:) ; construct POP spatial domain + zi = pi(0)*eof(0,:,:) + do j=1,neof-1 + zr = zr + pr(j)*eof(j,:,:) + zi = zi + pi(j)*eof(j,:,:) + end do + + Z = (/zr*stdev(0), -zi*stdev(1)/) ; scale patterns by time series stdev + + Z!0 = "nPOP" ; add meta data + Z!1 = dnam_eof(1) + Z!2 = dnam_eof(2) + + Z&nPOP = (/0,1/) + Z&$dnam_eof(1)$ = eof&$dnam_eof(1)$ + Z&$dnam_eof(2)$ = eof&$dnam_eof(2)$ + Z@long_name = "POP pattern" + ;printVarSummary(Z) + +; ================================================================= +; return POP time series and POP spatial patterns as a +; variable of type 'list' which contains 2 variables +; ================================================================= + + return( [/z, Z/] ) ; this is type "list" +end diff --git a/samples/NCL/WRF_static_2.ncl b/samples/NCL/WRF_static_2.ncl new file mode 100644 index 00000000..3f2eefd6 --- /dev/null +++ b/samples/NCL/WRF_static_2.ncl @@ -0,0 +1,115 @@ +;************************************************* +; WRF static: panel different variables +;************************************************ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRF_contributed.ncl" +begin +;************************************************ +; open file and read in data +;************************************************ + f = addfile("static.wrfsi.nc", "r") +;************************************************ +; Read variables +;************************************************ + use = f->use(0,0,:,:) ; land use dominant category + stl = f->stl(0,0,:,:) ; top layer (0-30cm) dom cat soiltype + sbl = f->sbl(0,0,:,:) ; bottom layer (30-90cm) dom cat soiltype + lat2d = f->lat(0,0,:,:) + lon2d = f->lon(0,0,:,:) + lsMask= f->lnd(0,0,:,:) ; land (1) water (0) mas + +;************************************************ +; Use mask function to set all ocean areas to _FillValue +;************************************************ + use = mask(use,lsMask,1) + stl = mask(stl,lsMask,1) + sbl = mask(sbl,lsMask,1) + +;************************************************ +; Associate 2D coordinates with variables for plotting +;************************************************ + use@lat2d = lat2d + use@lon2d = lon2d + stl@lat2d = lat2d + stl@lon2d = lon2d + sbl@lat2d = lat2d + sbl@lon2d = lon2d + +;************************************************ +; The file should be examined via: ncdump -v grid_type static.wrsi +; This will print the print type. then enter below. +;************************************************ + projection = "mercator" + +;************************************************ +; create plots +;************************************************ + wks = gsn_open_wks("ps" ,"WRF_static") ; ps,pdf,x11,ncgm,eps + gsn_define_colormap(wks ,"BlAqGrYeOrReVi200"); choose colormap + + res = True ; plot mods desired + res@gsnSpreadColors = True ; use full range of colormap + res@cnFillOn = True ; color plot desired + res@cnLinesOn = False ; turn off contour lines + res@cnLineLabelsOn = False ; turn off contour labels + res@cnLevelSpacingF = 1 ; manually specify interval + res@cnFillMode = "RasterFill" ; activate raster mode + res@lbLabelAutoStride = True ; let NCL figure lb stride + +;************************************************ +; Turn on lat / lon labeling +;************************************************ +;;res@pmTickMarkDisplayMode = "Always" ; turn on tickmarks + + dimll = dimsizes(lat2d) + nlat = dimll(0) + mlon = dimll(1) + + res@mpProjection = projection + res@mpLimitMode = "Corners" + res@mpLeftCornerLatF = lat2d(0,0) + res@mpLeftCornerLonF = lon2d(0,0) + res@mpRightCornerLatF = lat2d(nlat-1,mlon-1) + res@mpRightCornerLonF = lon2d(nlat-1,mlon-1) + + res@mpCenterLonF = f->LoV ; set center logitude + + if (projection.eq."LambertConformal") then + res@mpLambertParallel1F = f->Latin1 + res@mpLambertParallel2F = f->Latin2 + res@mpLambertMeridianF = f->LoV + end if + + res@mpFillOn = False ; turn off map fill + res@mpOutlineDrawOrder = "PostDraw" ; draw continental outline last + res@mpOutlineBoundarySets = "GeophysicalAndUSStates" ; state boundaries + +;;res@tfDoNDCOverlay = True ; True only for 'native' grid + res@gsnAddCyclic = False ; data are not cyclic + +;************************************************ +; allocate array for 3 plots +;************************************************ + plts = new (3,"graphic") + +;************************************************ +; Tell NCL not to draw or advance frame for individual plots +;************************************************ + res@gsnDraw = False ; (a) do not draw + res@gsnFrame = False ; (b) do not advance 'frame' + + plts(0) = gsn_csm_contour_map(wks,use,res) + plts(1) = gsn_csm_contour_map(wks,stl,res) + plts(2) = gsn_csm_contour_map(wks,sbl,res) +;************************************************ +; create panel: panel plots have their own set of resources +;************************************************ + resP = True ; modify the panel plot + resP@txString = "Land Use and Soil Type" + resP@gsnMaximize = True ; maximize panel area + resP@gsnPanelRowSpec = True ; specify 1 top, 2 lower level + gsn_panel(wks,plts,(/1,2/),resP) ; now draw as one plot + +end + diff --git a/samples/NCL/WRF_track_1.ncl b/samples/NCL/WRF_track_1.ncl new file mode 100644 index 00000000..9d818519 --- /dev/null +++ b/samples/NCL/WRF_track_1.ncl @@ -0,0 +1,160 @@ +;******************************************************** +; Plot storm stracks from wrfout files. +;******************************************************** +; +; JUN-18-2005 +; So-Young Ha (MMM/NCAR) +; SEP-01-2006 +; Slightly modified by Mary Haley to add some extra comments. +; =========================================== + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRF_contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" + + +begin + +; DATES + date = (/1512,1600,1612,1700,1712,1800,1812,1900/) + ndate = dimsizes(date) + + sdate = sprinti("%4.0i",date) + +; Experiment name (for legend) + EXP = (/"EXP_I"/) ; (/"EXP_I","EXP_II","EXP_III"/) + nexp = dimsizes(EXP) + +; To get lat/lon info. + + a = addfile("wrfout_d01_2003-07-15_00:00:00.nc","r") + + lat2d = a->XLAT(0,:,:) + lon2d = a->XLONG(0,:,:) + dimll = dimsizes(lat2d) + nlat = dimll(0) + mlon = dimll(1) + +; Sea Level Pressure + slp = wrf_user_getvar(a,"slp",0) + dims = dimsizes(slp) + +; Array for track + time = new(ndate,string) + imin = new(ndate,integer) + jmin = new(ndate,integer) + smin = new(ndate,integer) + +; ======= +; ndate +; ======= + fs = systemfunc("ls wrfout*00") + nfs= dimsizes(fs) + if(nfs .ne. ndate) then + print("Check input data:"+nfs+" .ne. "+ndate) + end if + + do ifs=0,nfs-1 + f = addfile(fs(ifs)+".nc","r") + time(ifs) = wrf_user_list_times(f) +; print(time(ifs)) + slp2d = wrf_user_getvar(f,"slp",0) + +; We need to convert 2-D array to 1-D array to find the minima. + slp1d = ndtooned(slp2d) + smin(ifs) = minind(slp1d) + +; Convert the index for 1-D array back to the indeces for 2-D array. + minij = ind_resolve(ind(slp1d.eq.min(slp2d)),dims) + imin(ifs) = minij(0,0) + jmin(ifs) = minij(0,1) + +; print(time(ifs)+" : "+min(slp2d)+" ("+imin(ifs)+","+jmin(ifs)+")") + end do +; + +; Graphics section + + wks=gsn_open_wks("ps","track") ; Open PS file. + gsn_define_colormap(wks,"BlGrYeOrReVi200") ; Change color map. + + res = True + res@gsnDraw = False ; Turn off draw. + res@gsnFrame = False ; Turn off frame advance. + res@gsnMaximize = True ; Maximize plot in frame. + + res@tiMainString = "Hurricane Isabel" ; Main title + + WRF_map_c(a,res,0) ; Set up map resources + ; (plot options) + plot = gsn_csm_map(wks,res) ; Create a map. + +; Set up resources for polymarkers. + gsres = True + gsres@gsMarkerIndex = 16 ; filled dot + ;gsres@gsMarkerSizeF = 0.005 ; default - 0.007 + cols = (/5,160,40/) + +; Set up resources for polylines. + res_lines = True + res_lines@gsLineThicknessF = 3. ; 3x as thick + + dot = new(ndate,graphic) ; Make sure each gsn_add_polyxxx call + line = new(ndate,graphic) ; is assigned to a unique variable. + +; Loop through each date and add polylines to the plot. + do i = 0,ndate-2 + res_lines@gsLineColor = cols(0) + xx=(/lon2d(imin(i),jmin(i)),lon2d(imin(i+1),jmin(i+1))/) + yy=(/lat2d(imin(i),jmin(i)),lat2d(imin(i+1),jmin(i+1))/) + line(i) = gsn_add_polyline(wks,plot,xx,yy,res_lines) + end do + + lon1d = ndtooned(lon2d) + lat1d = ndtooned(lat2d) + +; Loop through each date and add polymarkers to the plot. + do i = 0,ndate-1 + print("dot:"+lon1d(smin(i))+","+lat1d(smin(i))) + gsres@gsMarkerColor = cols(0) + dot(i)=gsn_add_polymarker(wks,plot,lon1d(smin(i)),lat1d(smin(i)),gsres) + end do + +; Date (Legend) + txres = True + txres@txFontHeightF = 0.015 + txres@txFontColor = cols(0) + + txid1 = new(ndate,graphic) +; Loop through each date and draw a text string on the plot. + do i = 0, ndate-1 + txres@txJust = "CenterRight" + ix = smin(i) - 4 + print("Eye:"+ix) + if(i.eq.1) then + txres@txJust = "CenterLeft" + ix = ix + 8 + end if + txid1(i) = gsn_add_text(wks,plot,sdate(i),lon1d(ix),lat1d(ix),txres) + end do + +; Add marker and text for legend. (Or you can just use "pmLegend" instead.) + txres@txJust = "CenterLeft" + + txid2 = new(nexp,graphic) + pmid2 = new(nexp,graphic) + do i = 0,nexp-1 + gsres@gsMarkerColor = cols(i) + txres@txFontColor = cols(i) + ii = ((/129,119,109/)) ; ilat + jj = ((/110,110,110/)) ; jlon + ji = ii*mlon+jj ; col x row + pmid2(i) = gsn_add_polymarker(wks,plot,lon1d(ji(i)),lat1d(ji(i)),gsres) + txid2(i) = gsn_add_text(wks,plot,EXP(i),lon1d(ji(i)+5),lat1d(ji(i)),txres) + end do + + draw(plot) + frame(wks) +end diff --git a/samples/NCL/cru_8.ncl b/samples/NCL/cru_8.ncl new file mode 100644 index 00000000..465a9f85 --- /dev/null +++ b/samples/NCL/cru_8.ncl @@ -0,0 +1,129 @@ +;***************************************************** +; cru_8.ncl +; +; Concepts illustrated: +; - Plotting CRU (Climate Research Unit)/ BADC data +; - Selecting a sub-period +; - calculating a climatology +; - Drawing raster contours; very basic graphics +; +;***************************************************** + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" ; not needed 6.20 onward +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + +; create references (pointers) to the files + + diri = "./" + fcld = addfile(diri+"cru_ts3.21.1901.2012.cld.dat.nc", "r") + fdtr = addfile(diri+"cru_ts3.21.1901.2012.dtr.dat.nc", "r") + ffrs = addfile(diri+"cru_ts3.21.1901.2012.frs.dat.nc", "r") + fpet = addfile(diri+"cru_ts3.21.1901.2012.pet.dat.nc", "r") + fpre = addfile(diri+"cru_ts3.21.1901.2012.pre.dat.nc", "r") + ftmn = addfile(diri+"cru_ts3.21.1901.2012.tmn.dat.nc", "r") + ftmp = addfile(diri+"cru_ts3.21.1901.2012.tmp.dat.nc", "r") + ftmx = addfile(diri+"cru_ts3.21.1901.2012.tmx.dat.nc", "r") + fvap = addfile(diri+"cru_ts3.21.1901.2012.vap.dat.nc", "r") + fwet = addfile(diri+"cru_ts3.21.1901.2012.wet.dat.nc", "r") + +; specify start & last dates (arbitrary) + + ymStrt = 199101 + ymLast = 200012 + +; get index values of start/lat dates + + time = fcld->time + yyyymm = cd_calendar(time, -1) + + ntStrt = ind(yyyymm.eq.ymStrt) ; index values + ntLast = ind(yyyymm.eq.ymLast) + +; read time segment + + cld = fcld->cld(ntStrt:ntLast,:,:) + dtr = fdtr->dtr(ntStrt:ntLast,:,:) + frs = ffrs->frs(ntStrt:ntLast,:,:) + pet = fpet->pet(ntStrt:ntLast,:,:) + pre = fpre->pre(ntStrt:ntLast,:,:) + tmn = ftmn->tmn(ntStrt:ntLast,:,:) + tmp = ftmp->tmp(ntStrt:ntLast,:,:) + tmx = ftmx->tmx(ntStrt:ntLast,:,:) + vap = fvap->vap(ntStrt:ntLast,:,:) + wet = fwet->wet(ntStrt:ntLast,:,:) + + printVarSummary(cld) ; [time | 120] x [lat | 360] x [lon | 720] + +; calculate monthly climatologies + + cldclm = clmMonTLL(cld) + dtrclm = clmMonTLL(dtr) + frsclm = clmMonTLL(frs) + petclm = clmMonTLL(pet) + preclm = clmMonTLL(pre) + tmnclm = clmMonTLL(tmn) + tmpclm = clmMonTLL(tmp) + tmxclm = clmMonTLL(tmx) + vapclm = clmMonTLL(vap) + wetclm = clmMonTLL(wet) + + + printVarSummary(cldclm) ; [month | 12] x [lat | 360] x [lon | 720] + +;************************************ +; create plots ... very simple +;************************************ + + nt = 6 + month = "July" + yrStrt = ymStrt/100 + yrLast = ymLast/100 + title = month+": "+yrStrt+"-"+yrLast + + wks = gsn_open_wks("ps","cru") ; open a ps file + gsn_define_colormap(wks,"ncl_default") ; choose colormap; not needed 6.20 onward + plot = new(2,graphic) ; create graphic array + + res = True + res@cnFillOn = True ; turn on color fill; not needed 6.20 onward + res@cnFillMode = "RasterFill" ; Raster Mode + res@cnLinesOn = False ; Turn off contour lines + + res@gsnDraw = False ; do not draw picture + res@gsnFrame = False ; do not advance frame + res@lbOrientation = "Vertical" ; vertical label bar + + resp = True + resp@gsnMaximize = True ; make ps, eps, pdf large + + resp@txString = title+": CLD, FRS" + plot(0)=gsn_csm_contour_map_ce(wks,cldclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,frsclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": PET, VAP" + plot(0)=gsn_csm_contour_map_ce(wks,petclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,vapclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": TMN, TMX" + plot(0)=gsn_csm_contour_map_ce(wks,tmnclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,tmxclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": TMP, DTR" + plot(0)=gsn_csm_contour_map_ce(wks,tmpclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,dtrclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": WET, PRE" + plot(0)=gsn_csm_contour_map_ce(wks,wetclm(nt,:,:),res) + + ;colors = (/ ... /) + ;res@cnFillPalette = colors ; optional: distinct colors for categories + res@cnLevelSelectionMode = "ExplicitLevels" ; use unequal spacing + res@cnLevels = (/2.0,10,25,37.5,50,75,100,125,150,175,200,300,400,500,750/) + + plot(1)=gsn_csm_contour_map_ce(wks,preclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) diff --git a/samples/NCL/gsn_csm_xy2_time_series_inputs.ncl b/samples/NCL/gsn_csm_xy2_time_series_inputs.ncl new file mode 100644 index 00000000..4efe39ab --- /dev/null +++ b/samples/NCL/gsn_csm_xy2_time_series_inputs.ncl @@ -0,0 +1,20 @@ +;******************** Inputs Regarding Input and Output Data ************************************* + +;netCDFFilePath = "NULL-MYD04_L2.051-MIL2ASAE.0022-AERONET_AOD_L2.2-20112106165049.nc" +;outputFilePath = "plot-output" + +;******************* Inputs Regarding Data Structure *********************************************** + +;lPlotVariablesList = "mean_AERONET_AOD_L2_2_AOD0558intrp_Ames,mean_MIL2ASAE_0022_AOD0866b_Ames" +;rPlotVariablesList = "medn_MYD04_L2_051_AOD0550dpbl_l_Ames" + +;xDimName = "time" +;xDimSize = 365 + +;******************* Inputs Regarding the View Annotations **************************************** + +;title = "MAPSS Time Series" +;yLAxisLabel = "Mean AOD" +;yRAxisLabel = "Median AOD" + +;*******************END INPUTS ******************************************************************** \ No newline at end of file diff --git a/samples/NCL/hdf4sds_7.ncl b/samples/NCL/hdf4sds_7.ncl new file mode 100644 index 00000000..f3aeff77 --- /dev/null +++ b/samples/NCL/hdf4sds_7.ncl @@ -0,0 +1,128 @@ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +;************************************************************** +; User Input +;*************************************************************** + ; INPUT + diri = "./" ; input directory + fili = "wv_LV3_MET08_20050102_12345678_L00013712E00013712.hdf" + + pltDir = "./" ; directory for plot output + sfx = get_file_suffix(fili,1) + ;pltName = sfx@fBase ; output graphic name + pltName = "hdf4sds" + pltType = "ps" + +;*************************************************************** +; End User Input +;*************************************************************** + +;*************************************************************** +; Open SEVIRI L3 'wv' HDF file +;*************************************************************** +; Note the rather unusual data format: flag *prepended* to data value +;*************************************************************** +; integer twc_lv3 ( fakeDim0, fakeDim1 ) +; long_name : total water vapour column + flag +; units : fmmmm +; format : I4 +; valid_range : ( 10000, 38000 ) +; _FillValue : -99 +; legend_01 : f = flag +; legend_02 : f = 1 averaged level 2 values +; legend_03 : f = 2 interpolated from averaged level 2 values +; legend_04 : f = 3 gaps filled with NVAP climatology +; legend_05 : mmmm = water vapour column in mm * 100. as integer +; legend_06 : Example: 11025 means: flag = 1, 10.25 mm water vapour column +; min_lat : -74.75 +; max_lat : 61.75 +; min_lon : -75.25 +; max_lon : 75.25 +; dlat : 0.5 +; dlon : 0.5 +;--------------------------------------------------------------- + + f = addfile (diri+fili, "r") + ifx = f->twc_lv3 ; fmmmm (integer) + printVarSummary(ifx) + + flag = ifx/10000 ; extract flag + ix = ifx - flag*10000 ; extract mmmm + x = ix*0.01 ; scale + +; create meta data for 'x' + + dimx = dimsizes(x) + nlat = dimx(0) ; grid size x(nlat,mlon) + mlon = dimx(1) + + lat = fspan(ifx@min_lat, ifx@max_lat, nlat) + lat@units = "degrees_north" + lon = fspan(ifx@min_lon, ifx@max_lon, mlon) + lon@units = "degrees_east" + + x!0 = "lat" + x!1 = "lon" + x&lat = lat + x&lon = lon + x@long_name = "SEVIRI: Total Water Vapor" + x@units = "mm" + + delete( [/ifx, ix/] ) ; no longer needed + +;*************************************************************** +; Create plot +;*************************************************************** + wks = gsn_open_wks(pltType, pltDir+pltName) + + plot = new (2, "graphic") + + res = True ; plot mods desired + res@gsnAddCyclic = False ; data noty global + res@gsnDraw = False + res@gsnFrame = False + + res@cnFillOn = True ; turn on color fill + res@cnLinesOn = False ; turn of contour lines + res@cnFillMode = "RasterFill" ; Raster Mode + res@cnLinesOn = False ; Turn off contour lines + res@cnLineLabelsOn = False ; Turn off contour lines + res@cnMissingValFillColor= "background" ; "foreground" + + res@mpCenterLonF = 0.5*(min(x&lon) + max(x&lon)) + res@mpMinLatF = min(x&lat) + res@mpMaxLatF = max(x&lat) + res@mpMinLonF = min(x&lon) + res@mpMaxLonF = max(x&lon) + + ;res@lbOrientation = "Vertical" + + plot(0) = gsn_csm_contour_map_ce(wks,x, res) + +; plot flag + + copy_VarCoords(x, flag) + flag@long_name = "Flag" + flag@units = "1=avg(L2), 2=int(L2), 3=NVAP" + print(flag&lat+" "+flag(:,{30})) + + res@cnLevelSelectionMode = "ManualLevels" ; set manual contour levels + res@cnMinLevelValF = 2 ; set min contour level + res@cnMaxLevelValF = 3 ; one less than max + res@cnLevelSpacingF = 1 ; set contour spacing + + res@lbLabelStrings = ispan(1,3,1) ; 1, 2, 3 + res@lbLabelPosition = "Center" ; label position + res@lbLabelAlignment = "BoxCenters" + + res@gsnLeftString = "" + res@gsnRightString = "" + res@gsnCenterString = "flag: 1=avg(L2), 2=int(L2), 3=NVAP" + + plot(1) = gsn_csm_contour_map_ce(wks,flag, res) + + resP = True ; modify the panel plot + resP@txString = fili + resP@gsnMaximize = True + gsn_panel(wks,plot,(/1,2/),resP) ; now draw as one plot diff --git a/samples/NCL/mask_12.ncl b/samples/NCL/mask_12.ncl new file mode 100644 index 00000000..30027c80 --- /dev/null +++ b/samples/NCL/mask_12.ncl @@ -0,0 +1,125 @@ +;---------------------------------------------------------------------- +; mask_12.ncl +; +; Concepts illustrated: +; - Using a worldwide shapefile to create a land/ocean mask +; - Masking a data array based on a geographical area +; - Attaching shapefile polylines to a map plot +; - Attaching lat/lon points to a map using gsn_coordinates +;---------------------------------------------------------------------- +; Downloaded GSHHS shapefiles from: +; +; http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/ +; +; Used the "coarsest" one: "GSHHS_shp/c/GSHHS_c_L1.shp". +;---------------------------------------------------------------------- + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "./shapefile_mask_data.ncl" + +;---------------------------------------------------------------------- +; Main code +;---------------------------------------------------------------------- +begin + WRITE_MASK = True + DEBUG = False + +;---Read data to plot and mask + dir = "$NCARG_ROOT/lib/ncarg/data/cdf/" + cdf_prefix = "uv300" + cdf_file = dir + cdf_prefix + ".nc" + fin = addfile(cdf_file,"r") + u = fin->U(1,:,:) +; +; Create a mask array the same size as "u", using +; lat/lon data read off a shapefile. +; + shpfile = "GSHHS_shp/c/GSHHS_c_L1.shp" + opt = True + opt@return_mask = True + + land_mask = shapefile_mask_data(u,shpfile,opt) + +;---Mask "u" against land and ocean. + u_land_mask = where(land_mask.eq.1,u,u@_FillValue) + u_ocean_mask = where(land_mask.eq.0,u,u@_FillValue) + copy_VarMeta(u,u_land_mask) + copy_VarMeta(u,u_ocean_mask) + +;---Start the graphics + wks = gsn_open_wks("ps","mask") + + res = True + + res@gsnMaximize = True ; maximize plot in frame + res@gsnDraw = False ; don't draw plot yet + res@gsnFrame = False ; don't advance frame yet + + res@cnFillOn = True + res@cnLineLabelsOn = False + res@cnLinesOn = False + +;---Make sure both plots have same contour levels + mnmxint = nice_mnmxintvl(min(u),max(u),25,False) + res@cnLevelSelectionMode = "ManualLevels" + res@cnMinLevelValF = mnmxint(0) + res@cnMaxLevelValF = mnmxint(1) + res@cnLevelSpacingF = mnmxint(2) + + res@lbLabelBarOn = False + res@gsnAddCyclic = False + + res@mpFillOn = False + res@mpOutlineOn = False + + res@gsnRightString = "" + res@gsnLeftString = "" + +;---Create plot of original data and attach shapefile outlines + res@tiMainString = "Original data with shapefile outlines" + map_data = gsn_csm_contour_map(wks,u,res) + dum1 = gsn_add_shapefile_polylines(wks,map_data,shpfile,False) + +;---Create plots of masked data + res@tiMainString = "Original data masked against land" + map_land_mask = gsn_csm_contour_map(wks,u_land_mask,res) + res@tiMainString = "Original data masked against ocean" + map_ocean_mask = gsn_csm_contour_map(wks,u_ocean_mask,res) + + if(DEBUG) then + mkres = True +; mkres@gsMarkerSizeF = 0.007 + mkres@gsnCoordsAttach = True + gsn_coordinates(wks,map_data,u,mkres) + mkres@gsnCoordsNonMissingColor = "yellow" + mkres@gsnCoordsMissingColor = "black" + gsn_coordinates(wks,map_land_mask,u_land_mask,mkres) + gsn_coordinates(wks,map_ocean_mask,u_ocean_mask,mkres) + end if + +;---Add shapefile outlines + dum2 = gsn_add_shapefile_polylines(wks,map_land_mask,shpfile,False) + dum3 = gsn_add_shapefile_polylines(wks,map_ocean_mask,shpfile,False) + +;---Draw all three plots on one page + pres = True + pres@gsnMaximize = True + pres@gsnPanelLabelBar = True + gsn_panel(wks,(/map_data,map_land_mask,map_ocean_mask/),(/3,1/),pres) + + if(WRITE_MASK) then + delete(fin) ; Close file before we open again. +; +; Make copy of file so we don't overwrite original. +; This is not necessary, but it's safer. +; + new_cdf_file = cdf_prefix + "_with_mask.nc" + system("/bin/cp " + cdf_file + " " + new_cdf_file) + finout = addfile(new_cdf_file,"w") + filevardef(finout, "land_mask", typeof(land_mask), (/ "lat", "lon" /) ) + finout->land_mask = (/land_mask/) + end if +end + diff --git a/samples/NCL/mcsst_1.ncl b/samples/NCL/mcsst_1.ncl new file mode 100644 index 00000000..338fe26f --- /dev/null +++ b/samples/NCL/mcsst_1.ncl @@ -0,0 +1,115 @@ +;***************************************************** +; mcsst_1.ncl +; +; Concepts illustrated: +; - Plotting NAVO MCSST data +; - Using fbindirread to read in fortran binary data +; - Converting "byte" data to "float" +; - Adding meta data (attributes and coordinates) to a variable +; - Adding gray to an existing color map +; - Spanning all but the last two colors in a color map for contour fill +; - Drawing raster contours +; +;***************************************************** +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +;*************************************** +; type of data available on file +;*************************************** +; ipar=0 Weekly Binned Sea Surface Temperature +; ipar=1 Number of Points in Bin +; ipar=2 Weekly Binned Sea Surface Temperature Anomaly +; ipar=3 Interpolated Sea Surface Temperature +; ipar=4 Interpolated Sea Surface Temperature Anomaly +;*************************************** +begin + ipar = 3 + fname = "2001311d18N16.dat" + tmp = fbindirread(fname,ipar,(/1024,2048/),"byte") +;*************************************** +; convert to float and then change to true SST +;*************************************** + xslope = 0.15 + if(ipar.eq.4.or.ipar.eq.2)then ; anom has different intercept + yint = -20.0 + end if + if(ipar.eq.3.or.ipar.eq.0)then + yint = -3.0 + end if + sst = new((/1024,2048/),"float") ; create float var + sst = tmp*xslope+yint ; convert to float + delete(tmp) ; delete unecessary array +;*************************************** +; assign missing values. The original missing value was zero, but since it was +; not assigned in NCL, it was not recognized. The new missing values are +; listed below. These will be changed later. +;*************************************** + if(ipar.eq.4)then + sst@_FillValue = -20 + end if + if(ipar.eq.3.or.ipar.eq.0)then + sst@_FillValue = -3 + end if +;*************************************** +; create coordinate variables +;*************************************** + nlat = 1024 + dy = 180./nlat + lat = (90. -(ispan(0,1023,1)*dy))-dy/2 + lat!0 = "lat" + lat&lat = lat + lat@units = "degrees_north" + + nlon = 2048 + dx = 360./nlon + lon = (ispan(0,2047,1)*dx)+dx/2-180. ; note -180. added by sjm to align + lon!0 = "lon" + lon&lon = lon + lon@units = "degrees_east" +;*************************************** +; fill out the netCDF data model +;*************************************** + sst!0 = "lat" ; name dimensions + sst!1 = "lon" ; ditto + sst = sst(::-1,:) ; reverse lat orientation + sst@long_name = "NAVO MCSST" ; assign long_name + sst@units = "deg C" ; assign units + sst&lat = lat ; assign lat cv + sst&lon = lon ; assign lon cv + sst@_FillValue = -999. ; assign missing value +;*************************************** +; get year and day from filename +;*************************************** + res = True ; plot mods desired + title = stringtochar(fname) ; parse file name to get date + year = title(0:3) + jday = title(4:6) + res@gsnCenterString = year+" "+jday ; create center string +;*************************************** +; create plot +;*************************************** + wks = gsn_open_wks("ps","mcsst") ; open workstation (plot destination) + gsn_define_colormap(wks,"BlGrYeOrReVi200") ; choose colormap +; +; This will not be necessary in V6.1.0 and later. Named colors can +; be used without having to first add them to the color map. +; + d = NhlNewColor(wks,0.8,0.8,0.8) ; add gray to colormap + + + res@cnFillOn = True ; turn on color + res@gsnSpreadColors = True ; use full range of colormap + res@gsnSpreadColorStart = 2 ; start at color 2 + res@gsnSpreadColorEnd = -3 ; don't use added gray + res@cnLinesOn = False ; no contour lines + res@cnFillDrawOrder = "PreDraw" ; draw contours before continents + res@gsnMaximize = True ; maximize plot + + +; For a grid this size, it is better to use raster mode. It will be +; significantly faster, and will not go over NCL's 16mb default plot size. + res@cnFillMode = "RasterFill" ; turn on raster mode + + plot = gsn_csm_contour_map_ce(wks,sst,res) ; contour the variable + +end diff --git a/samples/NCL/primero.ncl b/samples/NCL/primero.ncl new file mode 100644 index 00000000..7860ab8d --- /dev/null +++ b/samples/NCL/primero.ncl @@ -0,0 +1,3 @@ +val=102 +a=val/4. +print(a) diff --git a/samples/NCL/topo_9.ncl b/samples/NCL/topo_9.ncl new file mode 100644 index 00000000..e9bd62bf --- /dev/null +++ b/samples/NCL/topo_9.ncl @@ -0,0 +1,172 @@ +;---------------------------------------------------------------------- +; topo_9.ncl +; +; Concepts illustrated: +; - Recreating a jpeg topographic image as an NCL map object +; - Zooming in on a jpeg image +; - Drawing a box around an area of interest on a map +; - Attaching polylines to a map +; - Using "overlay" to overlay multiple contour plots +; - Using more than 256 colors per frame +; - Using functions for cleaner code +;---------------------------------------------------------------------- +; NOTE: This example will only work with NCL V6.1.0 and later. +; +; This script recreates a JPEG image that was converted to a NetCDF +; file with color separated bands using the open source tool +; "gdal_translate": +; +; gdal_translate -ot Int16 -of netCDF EarthMap_2500x1250.jpg \ +; EarthMap_2500x1250.nc +;---------------------------------------------------------------------- +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" + +;---------------------------------------------------------------------- +; This function imports a JPEG image that's on the whole globe, +; and recreates it as an NCL map object that is zoomed in on the +; southern tip of Africa. +;---------------------------------------------------------------------- +undef("recreate_jpeg_image") +function recreate_jpeg_image(wks,minlat,maxlat,minlon,maxlon) +begin + orig_jpg_filename = "EarthMap_2500x1250.jpg" + nc_filename = "EarthMap_2500x1250.nc" + +;--You could use a system call to do the NetCDF conversion +; cmd = "gdal_translate -ot Int16 -of netCDF " + jpeg_filename + \ +; " " + nc_filename) +; system(cmd) + +;---Read the three bands of data + f = addfile(nc_filename,"r") + Band1 = where(f->Band1.gt.255, 255, f->Band1) ; red channel + Band2 = where(f->Band2.gt.255, 255, f->Band2) ; green channel + Band3 = where(f->Band3.gt.255, 255, f->Band3) ; blue channel + + band_dims = dimsizes(Band3) + nlat = band_dims(0) + nlon = band_dims(1) + print("dimensions of image = " + nlat + " x " + nlon) + +; +; Add lat/lon data so we can overlay on a map, and/or +; overlay contours. We know the image is global, +; cylindrical equidistant, and centered about lon=0. +; + lat = fspan( -90, 90,nlat) + lon = fspan(-180,180,nlon) + lat@units = "degrees_north" + lon@units = "degrees_east" + + Band1!0 = "lat" + Band1!1 = "lon" + Band2!0 = "lat" + Band2!1 = "lon" + Band3!0 = "lat" + Band3!1 = "lon" + Band1&lat = lat + Band1&lon = lon + Band2&lat = lat + Band2&lon = lon + Band3&lat = lat + Band3&lon = lon + + res = True + + res@gsnMaximize = True + + res@gsnFrame = False ; Don't draw or advance + res@gsnDraw = False ; frame yet. + + res@cnFillOn = True + res@cnFillMode = "RasterFill" ; Raster fill can be faster + + res@cnLevelSelectionMode = "EqualSpacedLevels" + res@cnMaxLevelCount = 254 + res@cnFillBackgroundColor = (/ 1., 1., 1., 1./) + + res@cnLinesOn = False ; Turn off contour lines . + res@cnLineLabelsOn = False ; Turn off contour labels + res@cnInfoLabelOn = False ; Turn off info label + res@lbLabelBarOn = False ; Turn off labelbar + res@gsnRightString = "" ; Turn off subtitles + res@gsnLeftString = "" + res@pmTickMarkDisplayMode = "Always" + +;---Construct RGBA colormaps... + ramp = fspan(0., 1., 255) + reds = new((/255, 4/), float) + greens = new((/255, 4/), float) + blues = new((/255, 4/), float) + + reds = 0 + greens = 0 + blues = 0 + + reds(:,0) = ramp + greens(:,1) = ramp + blues(:,2) = ramp + + ; The red contour map is plotted fully opaque; the green and blue + ; are plotted completely transparent. When overlain, the colors + ; combine (rather magically). + reds(:,3) = 1. + greens(:,3) = 0 + blues(:,3) = 0 + + res@cnFillColors = greens + greenMap = gsn_csm_contour(wks, Band2, res) + + res@cnFillColors = blues + blueMap = gsn_csm_contour(wks, Band3, res) + +;---This will be our base, so make it a map plot. + res@cnFillColors = reds + res@gsnAddCyclic = False + + res@mpFillOn = False + +;---Zoom in on area of interest + res@mpMinLatF = minlat + res@mpMaxLatF = maxlat + res@mpMinLonF = minlon + res@mpMaxLonF = maxlon + + redMap = gsn_csm_contour_map(wks, Band1, res) + +;---Overlay everything to create the topo map + overlay(redMap, greenMap) + overlay(redMap, blueMap) + + return(redMap) +end + +;---------------------------------------------------------------------- +; Main code +;---------------------------------------------------------------------- +begin +;---Recreating jpeg images only works for X11 and PNG. + wks = gsn_open_wks("png","topo") + +;---Southern part of Africa + minlat = -40 + maxlat = 5 + minlon = 10 + maxlon = 40 + + map = recreate_jpeg_image(wks,minlat,maxlat,minlon,maxlon) + +;---Overlay a red box + lonbox = (/ 15, 35, 35, 15, 15/) + latbox = (/-30,-30,-10,-10,-30/) + + lnres = True + lnres@gsLineColor = "red" ; red box + lnres@gsLineThicknessF = 4.0 ; make box thicker + box = gsn_add_polyline(wks,map,lonbox,latbox,lnres) + + draw(map) ; Drawing the map will draw the red box + frame(wks) + +end diff --git a/samples/NCL/traj_3.ncl b/samples/NCL/traj_3.ncl new file mode 100644 index 00000000..f01304b4 --- /dev/null +++ b/samples/NCL/traj_3.ncl @@ -0,0 +1,120 @@ +;************************************************* +; traj_3.ncl +;************************************************* +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +external TRAJ "./particle.so" +;************************************************* +begin + + path = "./data.asc" + data = asciiread(path,(/500,6/),"float") +;************************************************* +; some parameters +;************************************************* + np = 1 + nq = 500 + ncor= 8 + xrot = new((/np,nq/),float) + yrot = new((/np,nq/),float) + xaxis = new(ncor,float) + yaxis = new(ncor,float) +;************************************************** +; convert data into rotated format +;************************************************** + TRAJ::particle(path,xrot,yrot,nq,np,xaxis,yaxis,ncor) +;************************************************** +; create plot +;************************************************** + wks = gsn_open_wks("ps","traj") ; Open an ps file + + xyres = True + xyres@gsnFrame = False ; don't advance the frame + xyres@gsnDraw = False ; don't draw indivdual plots + xyres@tmXTBorderOn = False ; don't draw top axis + xyres@tmXBBorderOn = False ; don't draw bottom axis + xyres@tmYRBorderOn = False ; don't draw right axis + xyres@tmYLBorderOn = False ; don't draw left axis + xyres@tmXTOn = False ; don't draw top-axis tick marks + xyres@tmXBOn = False ; don't draw bottom-axis tick marks + xyres@tmYROn = False ; don't draw right-axis tick marks + xyres@tmYLOn = False ; don't draw left-axis tick marks + + xyres@xyLineColors = (/"red"/) ; set the line color to red + xyres@xyLineThicknessF = 4.0 ; 4 times the line thickness + + xyres@trXMaxF = 15000 ; choose range of axis even though + xyres@trXMinF = -10000 ; we don't see them + xyres@trYMaxF = 1000 + xyres@trYMinF = -1000 + + plot = gsn_xy(wks,xrot,yrot,xyres) ; Draw trajectory +;********************************************** +; create arrays needed for the bounding box +;********************************************** + a1 = new(5,float) + b1 = new(5,float) + a2 = new(5,float) + b2 = new(5,float) + a3 = new(2,float) + b3 = new(2,float) + a4 = new(2,float) + b4 = new(2,float) + a5 = new(2,float) + b5 = new(2,float) + a6 = new(2,float) + b6 = new(2,float) + a0 = new(2,float) + b0 = new(2,float) +;********************************************** +; determine values of each bounding line from information +; returned from particle.f +;********************************************** + a1(0:3) = xaxis(:3) + b1(0:3) = yaxis(:3) + a1(4) = xaxis(0) + b1(4) = yaxis(0) + + a2(0:3) = xaxis(4:) + b2(0:3) = yaxis(4:) + a2(4) = xaxis(4) + b2(4) = yaxis(4) + + a3 = xaxis(0:4:4) + b3 = yaxis(0:4:4) + a4 = xaxis(1:5:4) + b4 = yaxis(1:5:4) + + a5 = xaxis(2:6:4) + b5 = yaxis(2:6:4) + a6 = xaxis(3:7:4) + b6 = yaxis(3:7:4) + + a0(0) = xaxis(3) + b0(0) = yaxis(3) + a0(1) = xrot(0,0) + b0(1) = yrot(0,0) +;*************************************************************** +; create bounding box by drawing multiple xy plots on top of +; each other. each with their individual axis turned off. +;*************************************************************** + xyres@xyLineColors = (/"black"/) ; line color + xyres@xyLineThicknessF = 1.0 ; regular line thickness + + bottom = gsn_xy(wks,a1,b1,xyres) ; Draw the bottom bounding box. + top = gsn_xy(wks,a2,b2,xyres) ; Draw the top bounding box. + side1 = gsn_xy(wks,a3,b3,xyres) ; Draw a side line. + side2 = gsn_xy(wks,a4,b4,xyres) ; Draw a side line. + side3 = gsn_xy(wks,a5,b5,xyres) ; Draw a side line. + side4 = gsn_xy(wks,a6,b6,xyres) ; Draw a side line. +;*************************************************************** +; now draw a large brown line to represent the chimney +;*************************************************************** + xyres@xyLineColors = (/"brown"/) ; chimney color + xyres@xyLineThicknessF = 9.0 ; thick line + xyres@tiMainString = "Pollutant Trajectory in a 3D Volume" + chimney = gsn_xy(wks,a0,b0,xyres) ; Draw the chimney. + + draw(wks) + frame(wks) + +end diff --git a/samples/NCL/tsdiagram_1.ncl b/samples/NCL/tsdiagram_1.ncl new file mode 100644 index 00000000..be9b2f6f --- /dev/null +++ b/samples/NCL/tsdiagram_1.ncl @@ -0,0 +1,167 @@ +; Read potential temp (TEMP), salinity (SALT) +; Compute potential density (PD) for specified range PD(t,s) +; (use ncl function based on Yeager's algorithm for rho computation) +; Assumes annual and zonally avgeraged input data set (i.e, one time slice) +; Used K.Lindsay's "za" for zonal avg -- already binned into basins +; Plots temp vs salt (scatter plot), pd overlay + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" + +begin +; ================================> ; PARAMETERS + case = "PHC2_gx1v3" + ocnfile = "za_PHC2_T_S_gx1v3.nc" + + depth_min = 14895.82 ; in cm, depth of first layer to be included + depth_max = 537499.9 +; +; plot limits +; + smincn = 32.5 + smaxcn = 37.0 + tmincn = -2. + tmaxcn = 22. +; +; Choose basin index +; +; 0 = global 1 = southern ocean 2 = pacific 3 = indian 6 = atlantic +; 8 = labrador 9 = GIN 10 = arctic +; + bi = 2 + +;=====> basin check + + if(bi.lt.0.or.bi.gt.10) then + print("basin index "+ bi + " not supported") + exit + end if + + if(bi.eq.0) then + basin = "Global" + blab = "global" + end if + if(bi.eq.1) then + basin = "Southern Ocean" + blab = "so" + end if + if(bi.eq.2) then + basin = "Pacific Ocean" + blab = "pacific" + end if + if(bi.eq.3) then + basin = "Indian Ocean" + blab = "indian" + end if + if(bi.eq.6) then + basin = "Atlantic Ocean" + blab = "atlanticn" + end if + if(bi.eq.8) then + basin = "Labrador Sea" + blab = "lab" + end if + if(bi.eq.9) then + basin = "GIN Sea" + blab = "gin" + end if + if(bi.eq.10) then + basin = "Arctic Ocean" + blab = "arctic" + end if + +;=====> initial resource settings + + wks = gsn_open_wks("ps","tsdiagram") ; Open a Postscript file + +;===== data + focn = addfile(ocnfile, "r") + salt = focn->SALT(0,:,{depth_min:depth_max},:) ;(basins, z_t, lat_t) + temp = focn->TEMP(0,:,{depth_min:depth_max},:) + +;====section out choice basin + temp_ba = temp(bi,:,:) + salt_ba = salt(bi,:,:) + +;===== put into scatter array format + tdata_ba = ndtooned(temp_ba) + sdata_ba = ndtooned(salt_ba) + + ydata = tdata_ba + xdata = sdata_ba + +;============== compute potenial density (PD), using rho_mwjf +; +; for potential density, depth = 0. (i.e. density as if brought to surface) +; +;=========================================================================== +; WARNING: T-S diagrams use POTENTIAL DENSITY... if set depth to something +; other then 0, then you will be plotting density contours computed for the +; specified depth layer. +;=========================================================================== + + depth = 0. ;in meters + tspan = fspan(tmincn,tmaxcn,51) + sspan = fspan(smincn,smaxcn,51) + + ; the more points the better... using Yeager's numbers + + t_range = conform_dims((/51,51/),tspan,0) + s_range = conform_dims((/51,51/),sspan,1) + + pd = rho_mwjf(t_range,s_range,depth) + + pd!0 = "temp" + pd!1 = "salt" + pd&temp = tspan + pd&salt = sspan + pd = 1000.*(pd-1.) ; Put into kg/m3 pot den units + +; printVarSummary(pd) +; printVarInfo(pd,"rho_mwjf") + +;=================Graphics + +;--- scatter plot + res = True + res@gsnMaximize = True + res@gsnDraw = False + res@gsnFrame = False + + res@xyMarkLineModes = "Markers" + res@xyMarkers = 16 + res@xyMarkerColors = "black" + res@pmLegendDisplayMode = "Never" + res@txFontHeightF = 0.01 + res@tiMainString = case + " ANN AVG: T-S Diagram" + res@tiXAxisString = salt@units + res@tiXAxisFontHeightF = 0.02 + res@tiYAxisString = temp@units + res@tiYAxisFontHeightF = 0.02 + res@trXMinF = smincn + res@trXMaxF = smaxcn + res@trYMinF = tmincn + res@trYMaxF = tmaxcn + res@gsnRightString = depth_min/100. + "-"+depth_max/100. +"m" + res@gsnLeftString = basin + + plot = gsn_csm_xy(wks,xdata,ydata,res) + +;----- pd overlay + resov = True + resov@gsnDraw = False + resov@gsnFrame = False + resov@cnLevelSelectionMode = "AutomaticLevels" + resov@cnInfoLabelOn = "False" + resov@cnLineLabelPlacementMode = "Constant" + resov@cnLineLabelFontHeightF = ".02" + + plotpd = gsn_csm_contour(wks,pd,resov) + overlay(plot,plotpd) + + draw(plot) + frame(wks) + +end diff --git a/samples/NCL/unique_9.ncl b/samples/NCL/unique_9.ncl new file mode 100644 index 00000000..edcf8285 --- /dev/null +++ b/samples/NCL/unique_9.ncl @@ -0,0 +1,141 @@ +;************************************ +; unique_9.ncl +; +; Concepts illustrated: +; - Drawing raster contours over a map +; - Creating a topography plot using raster contours +; - Reading data from binary files +; - Manually creating lat/lon coordinate arrays +; - Customizing a labelbar for a contour plot +;************************************ +; This example generates a topo map over +; the area of Trinidad, Colorado. +;************************************ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" + +begin + + wks = gsn_open_wks("ps","unique") + +;----------------- read the west binary data ------------------------- + binfile = "trinidad-w.bin" + + quad_name = fbinrecread(binfile,0,60,"character") + + map_cornersW = fbinrecread(binfile,1,4,"double") + + lonW = fbinrecread(binfile,2,(/1201/),"double") + + latW = fbinrecread(binfile,3,(/1201/),"double") + + minmax_elevW = fbinrecread(binfile,4,2,"double") + + tmpW = fbinrecread(binfile,5,(/1201,1201/),"integer") + +;----------------- read the east binary data ------------------------- + binfile = "trinidad-e.bin" + + quad_name = fbinrecread(binfile,0,60,"character") + + map_cornersE = fbinrecread(binfile,1,4,"double") + + lonE = fbinrecread(binfile,2,(/1201/),"double") + + latE = fbinrecread(binfile,3,(/1201/),"double") + + minmax_elevE = fbinrecread(binfile,4,2,"double") + + tmpE = fbinrecread(binfile,5,(/1201,1201/),"integer") + +;---------------------------------------------------------------------- + min_elev = min((/minmax_elevW(0),minmax_elevE(0)/))*3.28 + max_elev = max((/minmax_elevW(1),minmax_elevE(1)/))*3.28 + + lat = new(1201,"double") + lat = latW + lat!0 = "lat" + lat&lat = latW ; same as latE + lat@long_name = "latitude" + lat@units = "degrees_north" + + lon = new(2401,"double") + lon(0:1200) = lonW + lon(1201:2400) = lonE(1:1200) + lon!0 = "lon" + lon&lon = lon + lon@long_name = "longitude" + lon@units = "degrees_east" + + data = new((/1201,2401/),"float") ; (lat,lon) + data!0 = "lat" + data&lat = lat + data!1 = "lon" + data&lon = lon + data(:,0:1200) = (/tmpW*3.28/) ; convert to feet + data(:,1201:2400) = (/tmpE(:,1:1200)*3.28/) ; convert to feet +;------------------------------------------------------------- + +; +; Define colormap. +; + cmap = (/(/1.00, 1.00, 1.00/),(/0.00, 0.00, 0.00/), \ + (/0.51, 0.13, 0.94/),(/0.00, 0.00, 0.59/), \ + (/0.00, 0.00, 0.80/),(/0.25, 0.41, 0.88/), \ + (/0.12, 0.56, 1.00/),(/0.00, 0.75, 1.00/), \ + (/0.63, 0.82, 1.00/),(/0.82, 0.96, 1.00/), \ + (/1.00, 1.00, 0.78/),(/1.00, 0.88, 0.20/), \ + (/1.00, 0.67, 0.00/),(/1.00, 0.43, 0.00/), \ + (/1.00, 0.00, 0.00/),(/0.78, 0.00, 0.00/), \ + (/0.63, 0.14, 0.14/),(/1.00, 0.41, 0.70/)/) + + gsn_define_colormap(wks,cmap) + + res = True + res@gsnMaximize = True + res@gsnAddCyclic = False + +; map plot resources + res@mpFillOn = False + res@mpLimitMode = "Corners" + res@mpDataBaseVersion = "Ncarg4_1" + res@mpOutlineBoundarySets = "AllBoundaries" + res@mpLeftCornerLonF = map_cornersW(0) + res@mpLeftCornerLatF = map_cornersW(1) + res@mpRightCornerLonF = map_cornersE(2) + res@mpRightCornerLatF = map_cornersE(3) + +; contour resources + res@cnFillOn = True + res@cnLinesOn = False + res@cnFillMode = "RasterFill" + res@cnLevelSelectionMode = "ExplicitLevels" + res@cnLevels = (/ 5000., 6000., 7000., 8000., 8500., 9000., \ + 9500.,10000.,10500.,11000.,11500.,12000., \ + 12500.,13000.,13500./) + +; tickmark resources + res@pmTickMarkDisplayMode = "Always" + res@tmXBLabelFontHeightF = 0.010 + +; labelbar resources + res@pmLabelBarWidthF = 0.60 + res@txFontHeightF = 0.012 + res@lbTitleString = "elevation above mean sea level (feet)" + res@lbTitleFontHeightF = 0.012 + res@lbLabelFontHeightF = 0.008 + res@lbTitleOffsetF = -0.27 + res@lbBoxMinorExtentF = 0.15 + res@pmLabelBarOrthogonalPosF = -.05 + +; title resources + res@tiMainString = "USGS DEM TRINIDAD (1 x 2 degrees)" + res@tiMainOffsetYF = -0.02 ; Move title down towards graphic. + res@tiMainFontHeightF = 0.015 + res@gsnLeftString = "Min Elevation: "+min_elev + res@gsnRightString = "Max Elevation: "+max_elev + res@gsnCenterString = "Scale 1:250,000" + + plot = gsn_csm_contour_map(wks,data,res) + +end diff --git a/samples/NCL/viewport_4.ncl b/samples/NCL/viewport_4.ncl new file mode 100644 index 00000000..3635a2fa --- /dev/null +++ b/samples/NCL/viewport_4.ncl @@ -0,0 +1,131 @@ +; *********************************************** +; viewport_4.ncl +; +; Concepts illustrated: +; - Drawing an XY plot with multiple curves +; - Using drawNDCGrid to draw a nicely labeled NDC grid +; - Changing the size/shape of an XY plot using viewport resources +; - Drawing two XY plots on the same page using viewport resources +; - Drawing polylines, polymarkers, and text in NDC space +; - Using "getvalues" to retrieve resource values +; - Maximizing plots after they've been created +; *********************************************** +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" + +;******************************************************************** +; Draw a box around the viewport of the given object.. +;******************************************************************** +procedure draw_vp_box(wks,plot) +local vpx, vpy, vpw, vph, xbox, ybox, lnres, mkres, txres +begin + +; Retrieve the viewport values of the drawable object. + getvalues plot + "vpXF" : vpx + "vpYF" : vpy + "vpWidthF" : vpw + "vpHeightF" : vph + end getvalues + +; Set up some marker resources. + mkres = True + mkres@gsMarkerIndex = 16 ; filled dot + mkres@gsMarkerSizeF = 0.02 ; larger than default + mkres@gsMarkerColor = "Red" + +; Draw a single marker at the vpXF/vpYF location. + gsn_polymarker_ndc(wks,vpx,vpy,mkres) + + +; Set up some text resources. + txres = True + txres@txJust = "BottomLeft" + txres@txFontHeightF = 0.018 + txres@txFontColor = "Blue" + txres@txBackgroundFillColor = "white" + + gsn_text_ndc(wks,"(vpXF="+vpx+", vpYF="+vpy+")",vpx,vpy+0.02,txres) +; Set up some line resources. + lnres = True + lnres@gsLineColor = "Red" ; line color + lnres@gsLineThicknessF = 2.0 ; 3.5 times as thick + +; Draw lines indicating the width and height + xline = (/vpx, vpx+vpw/) + yline = (/vpy-0.05,vpy-0.05/) + gsn_polyline_ndc(wks,xline,yline,lnres) + + xline = (/vpx+0.05,vpx+0.05/) + yline = (/vpy,vpy-vph/) + gsn_polyline_ndc(wks,xline,yline,lnres) + + txres@txJust = "CenterCenter" + gsn_text_ndc(wks,"vpWidthF = " + vpw,vpx+vpw/2.,vpy-0.05,txres) + + txres@txAngleF = 90. + gsn_text_ndc(wks,"vpHeightF = " + vph,vpx+0.05,vpy-vph/2.,txres) +end + +;******************************************************************** +; Main code +;******************************************************************** +begin +;************************************************ +; read in data +;************************************************ + f = addfile ("$NCARG_ROOT/lib/ncarg/data/cdf/uv300.nc","r") + u = f->U ; get u data +;************************************************ +; plotting parameters +;************************************************ + wks = gsn_open_wks ("ps","viewport") ; open workstation + + res = True ; plot mods desired + + res@gsnFrame = False ; don't advance frame yet + + res@vpWidthF = 0.8 ; set width and height + res@vpHeightF = 0.3 + +; First plot + res@tiMainString = "Plot 1" + + res@vpXF = 0.15 + res@vpYF = 0.9 ; Higher on the page + + plot1 = gsn_csm_xy (wks,u&lat,u(0,:,{82}),res) ; create plot + +; Second plot + res@tiMainString = "Plot 2" + + res@vpXF = 0.15 ; Same X location as first plot + res@vpYF = 0.4 ; Lower on the page + + plot2 = gsn_csm_xy (wks,u&lat,u(0,:,{3}),res) ; create plot + +; Advance the frame + frame(wks) + +; Now draw the two plots with illustrations. + + drawNDCGrid(wks) ; Draw helpful grid lines showing NDC square. + + draw(plot1) ; Draw the two plots + draw(plot2) + + draw_vp_box(wks,plot1) ; Draw boxes around the two viewports. + draw_vp_box(wks,plot2) + + frame(wks) ; Advance the frame. + + +; +; Uncomment the next two lines if you want to maximize these plots for +; PS or PDF output. +; +; psres = True +; maximize_output(wks,psres) ; calls draw and frame for you +end diff --git a/samples/NCL/weather_sym_6.ncl b/samples/NCL/weather_sym_6.ncl new file mode 100644 index 00000000..49ed16d1 --- /dev/null +++ b/samples/NCL/weather_sym_6.ncl @@ -0,0 +1,120 @@ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" + +begin +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Example of plotting station model data over a map +; illustrating how the wind barb directions are adjusted +; for the map projection. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; City names. +; + cities = (/ "NCAR", "Seattle", "San Francisco", \ + "Los Angeles", "Billings", "El Paso", \ + "Houston", "Kansas City", "Minneapolis", \ + "Chicago", "Detroit", "Atlanta", \ + "Miami", "New York", "Eugene", \ + "Boise", "Salt Lake", "Phoenix", \ + "Albuquerque", "Bismarck", "Tulsa", \ + "Dallas", "Little Rock", "Lexington", \ + "Charlotte", "Norfolk", "Bangor" \ + /) + city_lats = (/ 40.0, 47.6, 37.8, \ + 34.1, 45.8, 31.8, \ + 29.8, 39.1, 45.0, \ + 41.9, 42.3, 33.8, \ + 25.8, 40.8, 44.1, \ + 43.6, 40.7, 33.5, \ + 35.1, 46.7, 36.0, \ + 32.8, 34.7, 38.1, \ + 35.2, 36.8, 44.8 \ + /) + city_lons = (/ -105.0, -122.3, -122.4, \ + -118.3, -108.5, -106.5, \ + -095.3, -094.1, -093.8, \ + -087.6, -083.1, -084.4, \ + -080.2, -074.0, -123.1, \ + -116.2, -111.9, -112.1, \ + -106.6, -100.8, -096.0, \ + -096.8, -092.3, -084.1, \ + -080.8, -076.3, -068.8 \ + /) +; +; Station model data for the 27 cities. +; + imdat = (/"11000000751126021360300004955054054600007757087712", \ + "11103100011104021080300004959055050600517043080369", \ + "11206200031102021040300004963056046601517084081470", \ + "11309300061000021020300004967057042602017125082581", \ + "11412400091002021010300004971058038602517166083592", \ + "11515500121004020000300004975050034603017207084703", \ + "11618600151006020030300004979051030603507248085814", \ + "11721700181008020050300004983052026604007289086925", \ + "11824800211009020070300004987053022604507323087036", \ + "11927900241011020110300004991054018605017364088147", \ + "11030000271013020130300004995055014605517405089258", \ + "11133100301015020170300004999056010606017446080369", \ + "11236200331017020200300004000057006606517487081470", \ + "11339300361019020230300004004058002607017528082581", \ + "11442400391021020250300004008050000607517569083692", \ + "11545500421023020270300004012051040608017603084703", \ + "11648600451025020290300004017052008608517644085814", \ + "11751700481027020310300004021053012609017685086925", \ + "11854800511029020330300004025054016609507726087036", \ + "11958900541031020360300004029055018610007767088147", \ + "11060000571033020380300004033056030610507808089258", \ + "11163100601035020410300004037057034611007849080369", \ + "11266200631037020430300004041058043611507883081470", \ + "11369300661039020470300004045050041612007924082581", \ + "11472400691041020500300004048051025612507965083692", \ + "11575500721043020530300004051052022613507996084703", \ + "11678600751048021580300004055053013614007337085814" \ + /) + +; +; Define a color map and open a workstation. +; + cmap = (/ \ + (/ 1., 1., 1. /), \ ; color index 0 - white + (/ 0., 0., 0. /) \ ; color index 1 - black + /) + wks = gsn_open_wks("ps","weather_sym") + gsn_define_colormap(wks,cmap) + +; +; Draw a world map. +; + mpres = True + mpres@gsnFrame = False + mpres@mpSatelliteDistF = 1.3 + mpres@mpOutlineBoundarySets = "USStates" + mpres@mpCenterLatF = 40. + mpres@mpCenterLonF = -97. + mpres@mpCenterRotF = 35. + map = gsn_map(wks,"Satellite",mpres) + +; +; Scale the station model plot (all aspects of the station +; model plots are scaled as per the size of the wind barb). +; + wmsetp("wbs",0.018) +; +; In the middle of Nebraska, draw a wind barb for a north wind +; with a magnitude of 15 knots. +; + wmbarbmap(wks,42.,-99.,0.,-15.) + +; +; Draw the station model data at the selected cities. The call +; to wmsetp informs wmstnm that the wind barbs will be drawn over +; a map. To illustrate the adjustment for plotting the model +; data over a map, all winds are from the north. +; + wmsetp("ezf",1) + wmstnm(wks,city_lats,city_lons,imdat) + + frame(wks) + +end diff --git a/samples/NCL/xy_29.ncl b/samples/NCL/xy_29.ncl new file mode 100644 index 00000000..ae231f75 --- /dev/null +++ b/samples/NCL/xy_29.ncl @@ -0,0 +1,151 @@ +; xy_29.ncl +; +; Concepts illustrated: +; - Reading data from an ASCII file with headers +; - Creating a separate procedure to create a specific plot +; - Attaching polymarkers to an XY plot +; +; This script was originally from Dr. Birgit Hassler (NOAA) +;**************************************************** + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + +;************************************************ +; Plot Procedure +;************************************************ +procedure plotTCOPolym(pltName[1]:string, pltType[1]:string, filName[1]:string \ + ,xTitle[1]:string , yTitle[1]:string \ + ,year[*]:numeric, y[*]:numeric) +local wks, res, ntim, gsres, MarkerCol, OldYear, i, xmarker, ymarker + +begin + wks = gsn_open_wks(pltType,pltName) + gsn_define_colormap(wks,"default") + + res = True + res@gsnMaximize = True ; make "ps", "eps", "pdf" large + + res@vpHeightF = 0.5 ; change aspect ratio of plot + res@vpWidthF = 0.75 + res@vpXF = 0.15 ; start plot at x ndc coord + res@tiXAxisString = xTitle + res@tiYAxisString = yTitle + res@tiMainString = filName + + ntim = dimsizes(year) + res@trXMinF = year(0)-1 + res@trXMaxF = year(ntim-1)+1 + + res@gsnDraw = False + res@gsnFrame = False + res@xyMarkLineMode = "markers" + res@xyMarker = 16 + res@xyMarkerColor = "Background" + plot = gsn_csm_xy (wks,year,y,res) ; create plot frame ork + + ; add different color polymarkers for each year + gsres = True + MarkerCol = 2 + OldYear = year(0) + + do i=0,ntim-1 + xmarker = year(i) + ymarker = y(i) + + if (i.gt.0) then + if (year(i).gt.OldYear) then + MarkerCol = MarkerCol+1 + end if + OldYear = year(i) + end if + + gsres@gsMarkerColor = MarkerCol + gsres@gsMarkerIndex = 16 + ;gsres@gsMarkerSizeF = 15.0 + ; add (attach) polymarkers to existing plot object + plot@$unique_string("dum")$ = gsn_add_polymarker(wks,plot,xmarker,ymarker,gsres) + end do + + draw(plot) + frame(wks) +end + +;*********************************************************** +; MAIN +;*********************************************************** + pltType = "ps" ; "ps", "eps", "png", "x11" + + ; read multiple ascii file names + ;;fili = "Southpole_TCOTimeSeries_11.dat" + + diri = "./" + fili = systemfunc("cd "+diri+" ; ls *TCOT*dat") + print(fili) + + nfil = dimsizes(fili) + + nhead= 4 ; number of header lines on ascii file(s) + ncol = 4 ; year, month, day, O3 + + do nf=0,nfil-1 + sfx = get_file_suffix(fili(nf), 0) ; sfx = ".dat" + filx = sfx@fBase ; filx= "Southpole_TCOTimeSeries_11" + ; read ascii files + data = readAsciiTable(diri+fili(nf), ncol, "float", nhead) + dimd = dimsizes(data) + ntim = dimd(0) ; # rows + + year = toint( data(:,0) ) ; user decision ... convert to integer + mon = toint( data(:,1) ) + day = toint( data(:,2) ) + + hour = new (ntim, "integer", "No_FillValue") + mn = new (ntim, "integer", "No_FillValue") + sec = new (ntim, "double" , "No_FillValue") + hour = 0 + mn = 0 + sec = 0d0 + ; create COARDS/udunits time variable + ;;tunits = "days since 1900-01-01 00:00:0.0" + tunits = "days since "+year(0)+"-"+mon(0)+"-"+day(0)+" 00:00:0.0" + time = cd_inv_calendar(year,mon,day,hour,mn,sec,tunits, 0) + time!0 = "time" + time&time = time + ;printVarSummary(time) + + ; create a Gregorin 'date' variable + date = year*10000 + mon*100 + day + date!0 = "time" + date@units = "yyyymmdd" + date&time = time + ;printVarSummary(date) + + O3 = data(:,3) + O3@long_name = "total column ozone" + O3@units = "DU" + + O3!0 = "time" + O3&time = time + ;printVarSummary(O3) + ;print(" ") + ;print(date+" "+time+" "+O3) + + ; plot + yTitle = O3@long_name + year@long_name = "YEAR" + + plotTCOPolym (filx, pltType, fili(nf), year@long_name, yTitle, year, O3) + + delete(time) ; delete ... size (# rows) may change in the next file + delete(date) + delete(year) + delete(mon ) + delete(day ) + delete(mn ) + delete(sec ) + delete(O3 ) + delete(data) + end do + diff --git a/samples/Text/01_top.ncl b/samples/Text/01_top.ncl new file mode 100644 index 00000000..92f12f77 --- /dev/null +++ b/samples/Text/01_top.ncl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/samples/Text/LIDARLite.ncl b/samples/Text/LIDARLite.ncl new file mode 100644 index 00000000..f93f95f7 --- /dev/null +++ b/samples/Text/LIDARLite.ncl @@ -0,0 +1,34 @@ +G04 DipTrace 2.4.0.2* +%INLIDARLite.ncl*% +%MOIN*% +%ADD11C,0.0394*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNBoardOutline*% +%LPD*% +X0Y23622D2* +D11* +X27953D1* +Y0D1* +X0D1* +Y23622D1* +X591Y23110D2* +X13819D1* +X591Y591D2* +Y11614D1* +Y12087D2* +Y23110D1* +X14291D2* +X27520D1* +X591Y591D2* +X13819D1* +X14291D2* +X27520D1* +Y11614D1* +Y12087D2* +Y23110D1* +M02* diff --git a/samples/Text/Site.local.ncl b/samples/Text/Site.local.ncl new file mode 100644 index 00000000..695dfa24 --- /dev/null +++ b/samples/Text/Site.local.ncl @@ -0,0 +1,22 @@ +#define YmakeRoot $(DESTDIR)@prefix@ +#define ManRoot $(DESTDIR)@mandir@ +#define LibRoot $(DESTDIR)@libdir@/ncarg +#define SharePath $(DESTDIR)@datadir@ + +#define BuildWithF90 TRUE +#define IncSearch -I/usr/include/netcdf -I/usr/include/udunits2 -I/usr/include/freetype2 -I/usr/include/gdal +#define LibSearch -L@libdir@/hdf + +#define BuildNetCDF4 1 +#define NetCDF4lib -lnetcdf +#define BuildCAIRO 1 +#define CAIROlib -lcairo -lfreetype +#define BuildGDAL 1 +#define GDALlib -lgdal +#define BuildHDFEOS 0 +#define BuildHDFEOS5 0 +#define BuildTRIANGLE 0 +#define HDFlib -lmfhdf -ldf -ljpeg -lz +#define HDF5lib -lhdf5_hl -lhdf5 +#define BuildUdunits 1 +#define UdUnitslib -ludunits2 diff --git a/samples/Text/main.ncl b/samples/Text/main.ncl new file mode 100644 index 00000000..61bee15d --- /dev/null +++ b/samples/Text/main.ncl @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/Text/min-help.ncl b/samples/Text/min-help.ncl new file mode 100644 index 00000000..9fd20117 --- /dev/null +++ b/samples/Text/min-help.ncl @@ -0,0 +1,45 @@ +THE_URL:file://localhost/Users/hubery/Public/ucar/Document/Functions/Built-in/min.shtml +THE_TITLE:min + NCL Home > Documentation > Functions > General applied math + +min + + Computes the minimum value of a multi-dimensional array. + +Prototype + + function min ( + value : numeric + ) + + return_val [1] : numeric + +Arguments + + value + + An array of one or more numeric values of any dimension. + +Return value + + Returns a scalar of the same type as value. + +Description + + This function returns the minimum value for an array of any dimensionality. Missing values are ignored; a missing value + is returned only if all values are missing. + +See Also + + max, minind, maxind, dim_min, dim_max, dim_min_n, dim_max_n + +Examples + + Example 1 + + f = (/2.1, 3.2, 4.3, 5.4, 6.5, 7.6, 8.7, 9.8/) + min_f = min(f) + print(min_f) ; Should be 2.1 + + + ©2015 UCAR | Privacy Policy | Terms of Use | Contact the Webmaster | Sponsored by NSF diff --git a/samples/Text/receiver.ncl b/samples/Text/receiver.ncl new file mode 100644 index 00000000..83996d66 --- /dev/null +++ b/samples/Text/receiver.ncl @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/Text/rmMonAnnCycLLT-help.ncl b/samples/Text/rmMonAnnCycLLT-help.ncl new file mode 100644 index 00000000..9467861a --- /dev/null +++ b/samples/Text/rmMonAnnCycLLT-help.ncl @@ -0,0 +1,40 @@ +THE_URL:file://localhost/Users/hubery/Public/ucar/Document/Functions/Contributed/rmMonAnnCycLLT.shtml +THE_TITLE:rmMonAnnCycLLT + NCL Home > Documentation > Functions > Climatology + +rmMonAnnCycLLT + + Removes the annual cycle from "monthly" data. + +Prototype + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + + function rmMonAnnCycLLT ( + x [*][*][*] : numeric + ) + + return_val [dimsizes(x)] : typeof(x) + +Arguments + + x + + A three-dimensional array of monthly values, dimensioned lat x lon x time. The time dimension must be a multiple of 12. + +Return value + + The results are returned in an array of the same type and dimensionality as x. If the input data contains metadata, these + will be retained. + +Description + + This function removes the annual cycle from month (number of months = 12) data and subtracts the long term means from + each month. + +See Also + + rmMonAnnCycLLT, rmMonAnnCycTLL, rmMonAnnCycLLLT + + + ©2015 UCAR | Privacy Policy | Terms of Use | Contact the Webmaster | Sponsored by NSF diff --git a/samples/Text/zonalAve-help.ncl b/samples/Text/zonalAve-help.ncl new file mode 100644 index 00000000..20abf5de --- /dev/null +++ b/samples/Text/zonalAve-help.ncl @@ -0,0 +1,35 @@ +THE_URL:file://localhost/Users/hubery/Public/ucar/Document/Functions/Contributed/zonalAve.shtml +THE_TITLE:zonalAve + NCL Home > Documentation > Functions > General applied math + +zonalAve + + Computes a zonal average of the input array. + +Prototype + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + + function zonalAve ( + x : numeric + ) + + return_val : typeof(x) + +Arguments + + x + + An array of any size and type. + +Return value + + The results are returned in an array of the same type and one dimension smaller than x. Metadata are preserved. + +Description + + This function computes a zonal average of the input array x. If the input array has a "long_name" or "short_name" + attribute, it will be updated. + + + ©2015 UCAR | Privacy Policy | Terms of Use | Contact the Webmaster | Sponsored by NSF diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index a13ae12a..010bf587 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -122,7 +122,7 @@ class TestHeuristcs < Minitest::Test assert_heuristics({ "Frege" => all_fixtures("Frege"), "Forth" => all_fixtures("Forth"), - "Text" => all_fixtures("Text") + "Text" => all_fixtures("Text", "*.fr") }) end diff --git a/vendor/grammars/language-ncl b/vendor/grammars/language-ncl new file mode 160000 index 00000000..ae46014e --- /dev/null +++ b/vendor/grammars/language-ncl @@ -0,0 +1 @@ +Subproject commit ae46014e687be08bc4a47012fe3f21a31c081b61 From 3f7ce832abc00d7a3dc19144acba21d1c45ec0a5 Mon Sep 17 00:00:00 2001 From: Mike Walters Date: Sat, 11 Jul 2015 15:09:22 +0100 Subject: [PATCH 562/875] Add .kicad_pcb extension for KiCad PCB design files --- lib/linguist/languages.yml | 1 + samples/KiCad/nrf-bga.kicad_pcb | 928 ++++++++++++++++++++++++++++++++ 2 files changed, 929 insertions(+) create mode 100644 samples/KiCad/nrf-bga.kicad_pcb diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index aab77e17..77ccb301 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1638,6 +1638,7 @@ KiCad: type: programming extensions: - .sch + - .kicad_pcb tm_scope: none ace_mode: text diff --git a/samples/KiCad/nrf-bga.kicad_pcb b/samples/KiCad/nrf-bga.kicad_pcb new file mode 100644 index 00000000..ddd092ce --- /dev/null +++ b/samples/KiCad/nrf-bga.kicad_pcb @@ -0,0 +1,928 @@ +(kicad_pcb (version 4) (host pcbnew "(2014-08-05 BZR 5054)-product") + + (general + (links 36) + (no_connects 0) + (area 146.9984 92.8984 164.465656 112.3572) + (thickness 1.6) + (drawings 0) + (tracks 108) + (zones 0) + (modules 12) + (nets 54) + ) + + (page A4) + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user) + (33 F.Adhes user) + (34 B.Paste user) + (35 F.Paste user) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user) + (41 Cmts.User user) + (42 Eco1.User user) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user) + (46 B.CrtYd user) + (47 F.CrtYd user) + (48 B.Fab user) + (49 F.Fab user) + ) + + (setup + (last_trace_width 0.1016) + (trace_clearance 0.1016) + (zone_clearance 0.2032) + (zone_45_only no) + (trace_min 0.1016) + (segment_width 0.2) + (edge_width 0.1) + (via_size 0.889) + (via_drill 0.635) + (via_min_size 0.889) + (via_min_drill 0.508) + (uvia_size 0.508) + (uvia_drill 0.127) + (uvias_allowed no) + (uvia_min_size 0.508) + (uvia_min_drill 0.127) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.15) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 0.2 0.2) + (pad_drill 0) + (pad_to_mask_clearance 0) + (aux_axis_origin 0 0) + (visible_elements FFFCFF7F) + (pcbplotparams + (layerselection 0x00000_00000001) + (usegerberextensions false) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15) + (hpglpenoverlay 2) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 5) + (mirror true) + (drillshape 0) + (scaleselection 1) + (outputdirectory pdfs/)) + ) + + (net 0 "") + (net 1 "Net-(C1-Pad1)") + (net 2 GND) + (net 3 "Net-(C2-Pad1)") + (net 4 "Net-(C3-Pad1)") + (net 5 "Net-(C4-Pad2)") + (net 6 "Net-(D1-Pad1)") + (net 7 +BATT) + (net 8 SWDIO) + (net 9 SWCLK) + (net 10 LED) + (net 11 "Net-(U1-PadC1)") + (net 12 "Net-(U1-PadD1)") + (net 13 "Net-(U1-PadG1)") + (net 14 "Net-(U1-PadE2)") + (net 15 "Net-(U1-PadF2)") + (net 16 "Net-(U1-PadG2)") + (net 17 "Net-(U1-PadE3)") + (net 18 "Net-(U1-PadF3)") + (net 19 "Net-(U1-PadG3)") + (net 20 "Net-(U1-PadH4)") + (net 21 "Net-(U1-PadA5)") + (net 22 "Net-(U1-PadB5)") + (net 23 "Net-(U1-PadC5)") + (net 24 "Net-(U1-PadH5)") + (net 25 "Net-(U1-PadA6)") + (net 26 "Net-(U1-PadB6)") + (net 27 "Net-(U1-PadC6)") + (net 28 "Net-(U1-PadH6)") + (net 29 "Net-(U1-PadA7)") + (net 30 "Net-(U1-PadB7)") + (net 31 "Net-(U1-PadC7)") + (net 32 "Net-(U1-PadE7)") + (net 33 "Net-(U1-PadF7)") + (net 34 "Net-(U1-PadG7)") + (net 35 "Net-(U1-PadH7)") + (net 36 "Net-(U1-PadA8)") + (net 37 "Net-(U1-PadD8)") + (net 38 "Net-(U1-PadE8)") + (net 39 "Net-(U1-PadF8)") + (net 40 "Net-(U1-PadG8)") + (net 41 "Net-(U1-PadH8)") + (net 42 "Net-(U1-PadE9)") + (net 43 "Net-(U1-PadF9)") + (net 44 "Net-(U1-PadH1)") + (net 45 "Net-(U1-PadJ3)") + (net 46 "Net-(U1-PadJ4)") + (net 47 "Net-(U1-PadJ5)") + (net 48 "Net-(U1-PadJ6)") + (net 49 "Net-(U1-PadJ7)") + (net 50 "Net-(U1-PadJ8)") + (net 51 "Net-(U1-PadH9)") + (net 52 "Net-(C5-Pad1)") + (net 53 "Net-(ANT1-Pad2)") + + (net_class Default "This is the default net class." + (clearance 0.1016) + (trace_width 0.1016) + (via_dia 0.889) + (via_drill 0.635) + (uvia_dia 0.508) + (uvia_drill 0.127) + (add_net +BATT) + (add_net LED) + (add_net "Net-(C1-Pad1)") + (add_net "Net-(C2-Pad1)") + (add_net "Net-(C3-Pad1)") + (add_net "Net-(C4-Pad2)") + (add_net "Net-(C5-Pad1)") + (add_net "Net-(D1-Pad1)") + (add_net "Net-(U1-PadA5)") + (add_net "Net-(U1-PadA6)") + (add_net "Net-(U1-PadA7)") + (add_net "Net-(U1-PadA8)") + (add_net "Net-(U1-PadB5)") + (add_net "Net-(U1-PadB6)") + (add_net "Net-(U1-PadB7)") + (add_net "Net-(U1-PadC1)") + (add_net "Net-(U1-PadC5)") + (add_net "Net-(U1-PadC6)") + (add_net "Net-(U1-PadC7)") + (add_net "Net-(U1-PadD1)") + (add_net "Net-(U1-PadD8)") + (add_net "Net-(U1-PadE2)") + (add_net "Net-(U1-PadE3)") + (add_net "Net-(U1-PadE7)") + (add_net "Net-(U1-PadE8)") + (add_net "Net-(U1-PadE9)") + (add_net "Net-(U1-PadF2)") + (add_net "Net-(U1-PadF3)") + (add_net "Net-(U1-PadF7)") + (add_net "Net-(U1-PadF8)") + (add_net "Net-(U1-PadF9)") + (add_net "Net-(U1-PadG1)") + (add_net "Net-(U1-PadG2)") + (add_net "Net-(U1-PadG3)") + (add_net "Net-(U1-PadG7)") + (add_net "Net-(U1-PadG8)") + (add_net "Net-(U1-PadH1)") + (add_net "Net-(U1-PadH4)") + (add_net "Net-(U1-PadH5)") + (add_net "Net-(U1-PadH6)") + (add_net "Net-(U1-PadH7)") + (add_net "Net-(U1-PadH8)") + (add_net "Net-(U1-PadH9)") + (add_net "Net-(U1-PadJ3)") + (add_net "Net-(U1-PadJ4)") + (add_net "Net-(U1-PadJ5)") + (add_net "Net-(U1-PadJ6)") + (add_net "Net-(U1-PadJ7)") + (add_net "Net-(U1-PadJ8)") + (add_net SWCLK) + (add_net SWDIO) + ) + + (net_class ANT "" + (clearance 0.1016) + (trace_width 0.254) + (via_dia 0.889) + (via_drill 0.635) + (uvia_dia 0.508) + (uvia_drill 0.127) + (add_net GND) + (add_net "Net-(ANT1-Pad2)") + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B59067) + (at 153.75 102.5 270) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B59137) + (attr smd) + (fp_text reference C1 (at 0 -1.7 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 12p (at 0 1.7 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 1 "Net-(C1-Pad1)")) + (pad 2 smd rect (at 0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B58E0D) + (at 159.004 100.711) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B591B6) + (attr smd) + (fp_text reference C2 (at 0 -1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 12p (at 0 1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 3 "Net-(C2-Pad1)")) + (pad 2 smd rect (at 0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B59E9D) + (at 159.004 102.1588) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B58D67) + (attr smd) + (fp_text reference C3 (at 0 -1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 100n (at 0 1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 4 "Net-(C3-Pad1)")) + (pad 2 smd rect (at 0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B58E25) + (at 154.15 106.55 90) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B58DD5) + (attr smd) + (fp_text reference C4 (at 0 -1.7 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 100n (at 0 1.7 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0 90) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 2 smd rect (at 0.55 0 90) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 5 "Net-(C4-Pad2)")) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module SMD_Packages:SMD-0805 (layer F.Cu) (tedit 54B58D88) (tstamp 54B58E32) + (at 162.0266 104.9782 90) + (path /54B599BA) + (attr smd) + (fp_text reference D1 (at 0 -0.3175 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value LED (at 0 0.381 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center -1.651 0.762) (end -1.651 0.635) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.508 0.762) (end -1.524 0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.524 0.762) (end -1.524 -0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.524 -0.762) (end -0.508 -0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start 0.508 -0.762) (end 1.524 -0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.524 -0.762) (end 1.524 0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) + (net 6 "Net-(D1-Pad1)")) + (pad 2 smd rect (at 0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model SMD_Packages/SMD-0805.wrl + (at (xyz 0 0 0)) + (scale (xyz 0.1000000014901161 0.1000000014901161 0.1000000014901161)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Pin_Headers:Pin_Header_Straight_1x04 (layer F.Cu) (tedit 54B58D8A) (tstamp 54B58E41) + (at 156.7942 109.1946 180) + (descr "Through hole pin header") + (tags "pin header") + (path /54B593BB) + (fp_text reference P1 (at 0 -2.286 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value CONN_01X04 (at 0 0 180) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.54 1.27) (end 5.08 1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.54 -1.27) (end 5.08 -1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.08 -1.27) (end -2.54 -1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.08 1.27) (end 5.08 -1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.54 -1.27) (end -2.54 1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.08 -1.27) (end -5.08 1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.08 1.27) (end -2.54 1.27) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole rect (at -3.81 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 2 thru_hole oval (at -1.27 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 7 +BATT)) + (pad 3 thru_hole oval (at 1.27 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 8 SWDIO)) + (pad 4 thru_hole oval (at 3.81 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 9 SWCLK)) + (model Pin_Headers/Pin_Header_Straight_1x04.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603 (layer F.Cu) (tedit 5415CC62) (tstamp 54B59E20) + (at 160.0454 105.0544 270) + (descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)") + (tags "resistor 0603") + (path /54B59A45) + (attr smd) + (fp_text reference R1 (at 0 -1.9 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R (at 0 1.9 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.3 0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.3 -0.8) (end -1.3 0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 0.675) (end -0.5 0.675) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 -0.675) (end 0.5 -0.675) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) + (net 10 LED)) + (pad 2 smd rect (at 0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) + (net 6 "Net-(D1-Pad1)")) + (model Resistors_SMD/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Crystals_Oscillators_SMD:CX2520DB (layer F.Cu) (tedit 544FEDED) (tstamp 54B58E9A) + (at 156.1084 101.3714) + (path /54B5903E) + (fp_text reference X1 (at 0 -2.25) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value CRYSTAL (at 0 2.5) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.25 1) (end 1.25 1) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.25 1) (end 1.25 -1) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.25 -1) (end -1.25 -1) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.25 -1) (end -1.25 1) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.9 0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask) + (net 1 "Net-(C1-Pad1)")) + (pad 2 smd rect (at 0.9 -0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask) + (net 3 "Net-(C2-Pad1)")) + (pad 3 smd rect (at 0.9 0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask)) + (pad 4 smd rect (at -0.9 -0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask)) + ) + + (module NRF51:WLCSP62 (layer F.Cu) (tedit 54B59368) (tstamp 54B59DAD) + (at 156.9212 105.1306) + (path /54B58C30) + (fp_text reference U1 (at 0 3.2) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_text value nRF51x22-CEAA (at 0 -3.2) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_line (start -1.6 -2) (end -2 -1.6) (layer F.SilkS) (width 0.2)) + (fp_line (start -2 -1.6) (end -2 2) (layer F.SilkS) (width 0.2)) + (fp_line (start -2 2) (end 2 2) (layer F.SilkS) (width 0.2)) + (fp_line (start 2 2) (end 2 -2) (layer F.SilkS) (width 0.2)) + (fp_line (start 2 -2) (end -1.6 -2) (layer F.SilkS) (width 0.2)) + (pad A1 smd circle (at -1.6 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 7 +BATT)) + (pad B1 smd circle (at -1.6 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad C1 smd circle (at -1.6 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(U1-PadC1)")) + (pad D1 smd circle (at -1.6 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(U1-PadD1)")) + (pad E1 smd circle (at -1.6 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 52 "Net-(C5-Pad1)")) + (pad F1 smd circle (at -1.6 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 5 "Net-(C4-Pad2)")) + (pad G1 smd circle (at -1.6 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(U1-PadG1)")) + (pad H1 smd circle (at -1.6 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 44 "Net-(U1-PadH1)")) + (pad A2 smd circle (at -1.2 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 1 "Net-(C1-Pad1)")) + (pad E2 smd circle (at -1.2 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(U1-PadE2)")) + (pad F2 smd circle (at -1.2 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 15 "Net-(U1-PadF2)")) + (pad G2 smd circle (at -1.2 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 16 "Net-(U1-PadG2)")) + (pad H2 smd circle (at -1.2 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 9 SWCLK)) + (pad J2 smd circle (at -1.2 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 8 SWDIO)) + (pad A3 smd circle (at -0.8 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 3 "Net-(C2-Pad1)")) + (pad E3 smd circle (at -0.8 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 17 "Net-(U1-PadE3)")) + (pad F3 smd circle (at -0.8 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 18 "Net-(U1-PadF3)")) + (pad G3 smd circle (at -0.8 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(U1-PadG3)")) + (pad H3 smd circle (at -0.8 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad J3 smd circle (at -0.8 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 45 "Net-(U1-PadJ3)")) + (pad A4 smd circle (at -0.4 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 4 "Net-(C3-Pad1)")) + (pad B4 smd circle (at -0.4 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad G4 smd circle (at -0.4 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H4 smd circle (at -0.4 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 20 "Net-(U1-PadH4)")) + (pad J4 smd circle (at -0.4 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 46 "Net-(U1-PadJ4)")) + (pad A5 smd circle (at 0 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 21 "Net-(U1-PadA5)")) + (pad B5 smd circle (at 0 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 22 "Net-(U1-PadB5)")) + (pad C5 smd circle (at 0 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 23 "Net-(U1-PadC5)")) + (pad G5 smd circle (at 0 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H5 smd circle (at 0 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 24 "Net-(U1-PadH5)")) + (pad J5 smd circle (at 0 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 47 "Net-(U1-PadJ5)")) + (pad A6 smd circle (at 0.4 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 25 "Net-(U1-PadA6)")) + (pad B6 smd circle (at 0.4 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 26 "Net-(U1-PadB6)")) + (pad C6 smd circle (at 0.4 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 27 "Net-(U1-PadC6)")) + (pad G6 smd circle (at 0.4 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H6 smd circle (at 0.4 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 28 "Net-(U1-PadH6)")) + (pad J6 smd circle (at 0.4 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 48 "Net-(U1-PadJ6)")) + (pad A7 smd circle (at 0.8 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(U1-PadA7)")) + (pad B7 smd circle (at 0.8 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 30 "Net-(U1-PadB7)")) + (pad C7 smd circle (at 0.8 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 31 "Net-(U1-PadC7)")) + (pad D7 smd circle (at 0.8 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad E7 smd circle (at 0.8 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 32 "Net-(U1-PadE7)")) + (pad F7 smd circle (at 0.8 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 33 "Net-(U1-PadF7)")) + (pad G7 smd circle (at 0.8 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 34 "Net-(U1-PadG7)")) + (pad H7 smd circle (at 0.8 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 35 "Net-(U1-PadH7)")) + (pad J7 smd circle (at 0.8 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 49 "Net-(U1-PadJ7)")) + (pad A8 smd circle (at 1.2 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 36 "Net-(U1-PadA8)")) + (pad B8 smd circle (at 1.2 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 7 +BATT)) + (pad C8 smd circle (at 1.2 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad D8 smd circle (at 1.2 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 37 "Net-(U1-PadD8)")) + (pad E8 smd circle (at 1.2 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 38 "Net-(U1-PadE8)")) + (pad F8 smd circle (at 1.2 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 39 "Net-(U1-PadF8)")) + (pad G8 smd circle (at 1.2 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 40 "Net-(U1-PadG8)")) + (pad H8 smd circle (at 1.2 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 41 "Net-(U1-PadH8)")) + (pad J8 smd circle (at 1.2 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 50 "Net-(U1-PadJ8)")) + (pad A9 smd circle (at 1.6 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)) + (pad B9 smd circle (at 1.6 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 7 +BATT)) + (pad C9 smd circle (at 1.6 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad D9 smd circle (at 1.6 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 10 LED)) + (pad E9 smd circle (at 1.6 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 42 "Net-(U1-PadE9)")) + (pad F9 smd circle (at 1.6 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 43 "Net-(U1-PadF9)")) + (pad G9 smd circle (at 1.6 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H9 smd circle (at 1.6 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 51 "Net-(U1-PadH9)")) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 55048D3E) + (at 153 106.55 270) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /550483E1) + (attr smd) + (fp_text reference C5 (at 0 -1.7 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 2n2 (at 0 1.7 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 52 "Net-(C5-Pad1)")) + (pad 2 smd rect (at 0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module ANT:ANT-2.4GHz (layer F.Cu) (tedit 54517711) (tstamp 55049531) + (at 149.35 106.95 90) + (path /55047C3D) + (fp_text reference ANT1 (at -2.5 1.5 90) (layer F.SilkS) + (effects (font (size 0.4 0.4) (thickness 0.04))) + ) + (fp_text value ANT-2.4GHz (at -2 2 90) (layer F.SilkS) + (effects (font (size 0.4 0.4) (thickness 0.04))) + ) + (pad 1 smd rect (at 0 0 90) (size 0.9 4.9) (layers F.Cu) + (net 2 GND)) + (pad 3 smd rect (at 2.05 -2.7 90) (size 5 0.5) (layers F.Cu)) + (pad 2 smd rect (at 2.1 0 90) (size 0.5 4.9) (layers F.Cu) + (net 53 "Net-(ANT1-Pad2)")) + (pad 3 smd rect (at 4.3 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 6.8 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 5.55 -0.06 90) (size 2 0.5) (layers F.Cu)) + (pad 3 smd rect (at 7.9 -2.7 90) (size 2.7 0.5) (layers F.Cu)) + (pad 3 smd rect (at 12.6 -2.7 90) (size 2.7 0.5) (layers F.Cu)) + (pad 3 smd rect (at 9 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 11.5 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 10.25 -0.06 90) (size 2 0.5) (layers F.Cu)) + (pad 3 smd rect (at 13.7 -0.48 90) (size 0.5 3.94) (layers F.Cu)) + ) + + (module NRF51:BAL-NRF02D3 (layer F.Cu) (tedit 550C7CF1) (tstamp 55048D47) + (at 153.65 104.55 180) + (path /550480A2) + (fp_text reference U2 (at 0 1.95 180) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_text value BAL-NRF02D3 (at 0 -1.95 180) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_circle (center 0.75 -1.25) (end 1 -1.25) (layer F.SilkS) (width 0.15)) + (fp_line (start -1 -0.75) (end -1 0.75) (layer F.SilkS) (width 0.2)) + (fp_line (start -1 0.75) (end 1 0.75) (layer F.SilkS) (width 0.2)) + (fp_line (start 1 0.75) (end 1 -0.75) (layer F.SilkS) (width 0.2)) + (fp_line (start 1 -0.75) (end -1 -0.75) (layer F.SilkS) (width 0.2)) + (pad A3 smd circle (at -0.5 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(U1-PadD1)")) + (pad B3 smd circle (at -0.5 0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(U1-PadC1)")) + (pad A2 smd circle (at 0 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 52 "Net-(C5-Pad1)")) + (pad A1 smd circle (at 0.5 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 53 "Net-(ANT1-Pad2)")) + (pad B1 smd circle (at 0.5 0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + ) + + (segment (start 155.7212 102.5342) (end 155.2084 102.0214) (width 0.1016) (layer F.Cu) (net 1)) + (segment (start 155.7212 103.5306) (end 155.7212 102.5342) (width 0.1016) (layer F.Cu) (net 1)) + (segment (start 155.137 101.95) (end 155.2084 102.0214) (width 0.1016) (layer F.Cu) (net 1) (tstamp 55048FFD)) + (segment (start 153.75 101.95) (end 155.137 101.95) (width 0.1016) (layer F.Cu) (net 1)) + (segment (start 156.947646 104.7306) (end 156.7306 104.7306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.7306 104.7306) (end 156.5212 104.5212) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 104.5212) (end 156.5212 104.072021) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 104.072021) (end 156.5212 103.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.1212 106.3306) (end 156.5212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 105.9306) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 157.3212 105.9306) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 157.7212 104.7306) (end 156.947646 104.7306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 103.9306) (end 155.3212 103.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.9212 104.757046) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.947646 104.7306) (end 156.9212 104.757046) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 157.7212 104.7306) (end 158.1212 104.3306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 158.1212 104.3306) (end 158.5212 104.3306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 161.2265 103.4796) (end 161.7726 104.0257) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.3722 103.4796) (end 161.2265 103.4796) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 161.7726 104.0257) (end 162.0266 104.0257) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 101.0626) (end 159.554 102.1588) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 100.711) (end 159.554 101.0626) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.3722 102.6922) (end 159.3722 103.4796) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 102.5104) (end 159.3722 102.6922) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 102.1588) (end 159.554 102.5104) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.3722 103.621021) (end 159.3722 103.4796) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 158.5212 104.3306) (end 158.662621 104.3306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 158.662621 104.3306) (end 159.3722 103.621021) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 155.0306 103.9306) (end 154.15 103.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55048FDD)) + (segment (start 154.15 103.05) (end 153.75 103.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55048FEF)) + (segment (start 155.3212 103.9306) (end 155.0306 103.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 154.15 107.1) (end 153 107.1) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 160.6042 108.3542) (end 160.6042 109.1946) (width 0.1016) (layer F.Cu) (net 2) (tstamp 5504935E)) + (segment (start 158.5212 105.9306) (end 159.05 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 160.85 105.05) (end 159.4 105.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049373)) + (segment (start 159.4 105.05) (end 159.05 105.4) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049377)) + (segment (start 159.05 105.4) (end 159.05 105.9306) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049378)) + (segment (start 161.8743 104.0257) (end 160.85 105.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049366)) + (segment (start 162.0266 104.0257) (end 161.8743 104.0257) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 149.5 107.1) (end 149.35 106.95) (width 0.1016) (layer F.Cu) (net 2) (tstamp 5504964A) (status 30)) + (segment (start 149.5 107.1) (end 149.35 106.95) (width 0.254) (layer F.Cu) (net 2) (tstamp 5504967F) (status 30)) + (segment (start 153 107.1) (end 149.5 107.1) (width 0.254) (layer F.Cu) (net 2) (status 20)) + (segment (start 158.4436 100.7214) (end 158.454 100.711) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 157.0084 100.7214) (end 158.4436 100.7214) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.6786 100.7214) (end 157.0084 100.7214) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.1084 101.2916) (end 156.6786 100.7214) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.1084 103.5178) (end 156.1084 101.2916) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.1212 103.5306) (end 156.1084 103.5178) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.5212 103.389179) (end 157.014979 102.8954) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 156.5212 103.5306) (end 156.5212 103.389179) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 157.6674 102.8954) (end 158.404 102.1588) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 158.404 102.1588) (end 158.454 102.1588) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 157.014979 102.8954) (end 157.6674 102.8954) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 154.45 106) (end 154.9194 105.5306) (width 0.1016) (layer F.Cu) (net 5) (tstamp 5504901F)) + (segment (start 154.9194 105.5306) (end 155.3212 105.5306) (width 0.1016) (layer F.Cu) (net 5) (tstamp 55049021)) + (segment (start 154.15 106) (end 154.45 106) (width 0.1016) (layer F.Cu) (net 5)) + (segment (start 160.1717 105.9307) (end 160.0454 105.8044) (width 0.1016) (layer F.Cu) (net 6)) + (segment (start 162.0266 105.9307) (end 160.1717 105.9307) (width 0.1016) (layer F.Cu) (net 6)) + (segment (start 159 99.9) (end 159.05 99.9) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159.35 99.6) (end 161.2 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.25 111.15) (end 158.0642 110.9642) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159.05 99.9) (end 159.35 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 161.2 99.6) (end 163.35 101.75) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 163.35 101.75) (end 163.35 110.35) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 163.35 110.35) (end 162.55 111.15) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.0642 110.9642) (end 158.0642 109.1946) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 162.55 111.15) (end 158.25 111.15) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.5212 103.9306) (end 158.1212 103.9306) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.0642 109.347) (end 158.0642 109.1946) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159 99.9) (end 159 103.593221) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.662621 103.9306) (end 158.5212 103.9306) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 154.1 99.6) (end 158.7 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 153 102.3) (end 153 100.7) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 153.2 102.5) (end 153 102.3) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.7 99.6) (end 159 99.9) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 154.2906 102.5) (end 153.2 102.5) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159 103.593221) (end 158.662621 103.9306) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 153 100.7) (end 154.1 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 155.3212 103.5306) (end 154.2906 102.5) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 155.7212 108.9976) (end 155.5242 109.1946) (width 0.1016) (layer F.Cu) (net 8)) + (segment (start 155.7212 106.7306) (end 155.7212 108.9976) (width 0.1016) (layer F.Cu) (net 8)) + (segment (start 152.9842 109.0676) (end 152.9842 109.1946) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 152.9842 109.1946) (end 152.9842 109.0422) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 155.2018 106.85) (end 155.7212 106.3306) (width 0.1016) (layer F.Cu) (net 9) (tstamp 55049280)) + (segment (start 155.1 106.95) (end 155.2 106.85) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 155.1 107.35) (end 155.1 106.95) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 154.55 107.9) (end 155.1 107.35) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 154.1264 107.9) (end 154.55 107.9) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 152.9842 109.0422) (end 154.1264 107.9) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 155.2 106.85) (end 155.2018 106.85) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 160.0454 104.3044) (end 159.4938 104.3044) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 158.662621 104.7306) (end 158.5212 104.7306) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 159.0676 104.7306) (end 158.662621 104.7306) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 159.4938 104.3044) (end 159.0676 104.7306) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 154.1806 104.3306) (end 154.15 104.3) (width 0.1016) (layer F.Cu) (net 11) (tstamp 5504938B)) + (segment (start 155.3212 104.3306) (end 154.1806 104.3306) (width 0.1016) (layer F.Cu) (net 11)) + (segment (start 154.2194 104.7306) (end 154.15 104.8) (width 0.1016) (layer F.Cu) (net 12) (tstamp 55049388)) + (segment (start 155.3212 104.7306) (end 154.2194 104.7306) (width 0.1016) (layer F.Cu) (net 12)) + (segment (start 155.3212 105.1306) (end 154.7194 105.1306) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 154.7194 105.1306) (end 154.6 105.25) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 154.6 105.25) (end 153.65 105.25) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 153.65 105.25) (end 153.65 104.8) (width 0.1016) (layer F.Cu) (net 52) (tstamp 5504901A)) + (segment (start 153.6 105.3) (end 153.65 105.25) (width 0.1016) (layer F.Cu) (net 52) (tstamp 55049386)) + (segment (start 153 105.9) (end 153.6 105.3) (width 0.1016) (layer F.Cu) (net 52) (tstamp 55049018)) + (segment (start 153 106) (end 153 105.9) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 149.4 104.8) (end 149.35 104.85) (width 0.1016) (layer F.Cu) (net 53) (tstamp 55049543) (status 30)) + (segment (start 153.1 104.85) (end 153.15 104.8) (width 0.254) (layer F.Cu) (net 53) (tstamp 550495A4)) + (segment (start 149.35 104.85) (end 153.1 104.85) (width 0.254) (layer F.Cu) (net 53) (status 10)) + + (zone (net 2) (net_name GND) (layer F.Cu) (tstamp 550C7F83) (hatch edge 0.508) + (connect_pads (clearance 0.2032)) + (min_thickness 0.1524) + (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5)) + (polygon + (pts + (xy 164 111.85) (xy 151.5 111.85) (xy 151.5 97.15) (xy 164 97.15) + ) + ) + (filled_polygon + (pts + (xy 163.9238 111.318437) (xy 163.468437 111.7738) (xy 152.031563 111.7738) (xy 151.5762 111.318437) (xy 151.5762 107.6794) + (xy 151.744424 107.6794) (xy 151.855576 107.6794) (xy 151.958267 107.636864) (xy 152.036864 107.558267) (xy 152.0794 107.455576) + (xy 152.0794 107.02112) (xy 152.00955 106.95127) (xy 151.5762 106.95127) (xy 151.5762 106.94873) (xy 152.00955 106.94873) + (xy 152.0794 106.87888) (xy 152.0794 106.444424) (xy 152.036864 106.341733) (xy 151.958267 106.263136) (xy 151.855576 106.2206) + (xy 151.744424 106.2206) (xy 151.5762 106.2206) (xy 151.5762 105.3794) (xy 151.855576 105.3794) (xy 151.958267 105.336864) + (xy 152.036864 105.258267) (xy 152.037637 105.2564) (xy 153.1 105.2564) (xy 153.195652 105.237373) (xy 153.012426 105.4206) + (xy 152.694424 105.4206) (xy 152.591733 105.463136) (xy 152.513136 105.541733) (xy 152.4706 105.644424) (xy 152.4706 105.755576) + (xy 152.4706 106.355576) (xy 152.513136 106.458267) (xy 152.591733 106.536864) (xy 152.623446 106.55) (xy 152.591733 106.563136) + (xy 152.513136 106.641733) (xy 152.4706 106.744424) (xy 152.4706 107.02888) (xy 152.54045 107.09873) (xy 152.99873 107.09873) + (xy 152.99873 107.07873) (xy 153.00127 107.07873) (xy 153.00127 107.09873) (xy 153.45955 107.09873) (xy 153.5294 107.02888) + (xy 153.5294 106.744424) (xy 153.486864 106.641733) (xy 153.408267 106.563136) (xy 153.376553 106.55) (xy 153.408267 106.536864) + (xy 153.486864 106.458267) (xy 153.5294 106.355576) (xy 153.5294 106.244424) (xy 153.5294 105.837574) (xy 153.6206 105.746374) + (xy 153.6206 105.755576) (xy 153.6206 106.355576) (xy 153.663136 106.458267) (xy 153.741733 106.536864) (xy 153.773446 106.55) + (xy 153.741733 106.563136) (xy 153.663136 106.641733) (xy 153.6206 106.744424) (xy 153.6206 107.02888) (xy 153.69045 107.09873) + (xy 154.14873 107.09873) (xy 154.14873 107.07873) (xy 154.15127 107.07873) (xy 154.15127 107.09873) (xy 154.60955 107.09873) + (xy 154.6794 107.02888) (xy 154.6794 106.744424) (xy 154.636864 106.641733) (xy 154.558267 106.563136) (xy 154.526553 106.55) + (xy 154.558267 106.536864) (xy 154.636864 106.458267) (xy 154.6794 106.355576) (xy 154.6794 106.244424) (xy 154.6794 106.236217) + (xy 154.683487 106.233487) (xy 154.7968 106.120174) (xy 154.7968 106.634168) (xy 154.872829 106.710197) (xy 154.866513 106.716513) + (xy 154.794935 106.823638) (xy 154.7698 106.95) (xy 154.7698 107.213226) (xy 154.6794 107.303626) (xy 154.6794 107.17112) + (xy 154.60955 107.10127) (xy 154.15127 107.10127) (xy 154.15127 107.12127) (xy 154.14873 107.12127) (xy 154.14873 107.10127) + (xy 153.69045 107.10127) (xy 153.6206 107.17112) (xy 153.6206 107.455576) (xy 153.663136 107.558267) (xy 153.741733 107.636864) + (xy 153.844424 107.6794) (xy 153.880026 107.6794) (xy 153.5294 108.030025) (xy 153.5294 107.455576) (xy 153.5294 107.17112) + (xy 153.45955 107.10127) (xy 153.00127 107.10127) (xy 153.00127 107.60955) (xy 153.07112 107.6794) (xy 153.194424 107.6794) + (xy 153.305576 107.6794) (xy 153.408267 107.636864) (xy 153.486864 107.558267) (xy 153.5294 107.455576) (xy 153.5294 108.030025) + (xy 153.527705 108.03172) (xy 153.421607 107.960828) (xy 152.99873 107.876712) (xy 152.99873 107.60955) (xy 152.99873 107.10127) + (xy 152.54045 107.10127) (xy 152.4706 107.17112) (xy 152.4706 107.455576) (xy 152.513136 107.558267) (xy 152.591733 107.636864) + (xy 152.694424 107.6794) (xy 152.805576 107.6794) (xy 152.92888 107.6794) (xy 152.99873 107.60955) (xy 152.99873 107.876712) + (xy 152.9842 107.873822) (xy 152.546793 107.960828) (xy 152.175977 108.208599) (xy 151.928206 108.579415) (xy 151.8412 109.016822) + (xy 151.8412 109.372378) (xy 151.928206 109.809785) (xy 152.175977 110.180601) (xy 152.546793 110.428372) (xy 152.9842 110.515378) + (xy 153.421607 110.428372) (xy 153.792423 110.180601) (xy 154.040194 109.809785) (xy 154.1272 109.372378) (xy 154.1272 109.016822) + (xy 154.040194 108.579415) (xy 153.989631 108.503742) (xy 154.263173 108.2302) (xy 154.55 108.2302) (xy 154.676362 108.205065) + (xy 154.783487 108.133487) (xy 155.333483 107.583489) (xy 155.333486 107.583487) (xy 155.333487 107.583487) (xy 155.391 107.497411) + (xy 155.391 107.900317) (xy 155.086793 107.960828) (xy 154.715977 108.208599) (xy 154.468206 108.579415) (xy 154.3812 109.016822) + (xy 154.3812 109.372378) (xy 154.468206 109.809785) (xy 154.715977 110.180601) (xy 155.086793 110.428372) (xy 155.5242 110.515378) + (xy 155.961607 110.428372) (xy 156.332423 110.180601) (xy 156.580194 109.809785) (xy 156.6672 109.372378) (xy 156.6672 109.016822) + (xy 156.580194 108.579415) (xy 156.332423 108.208599) (xy 156.0514 108.020825) (xy 156.0514 107.2532) (xy 158.434168 107.2532) + (xy 159.0532 106.634168) (xy 159.0532 105.0608) (xy 159.0676 105.0608) (xy 159.193962 105.035665) (xy 159.301087 104.964087) + (xy 159.463138 104.802035) (xy 159.539824 104.8338) (xy 159.650976 104.8338) (xy 160.550976 104.8338) (xy 160.653667 104.791264) + (xy 160.732264 104.712667) (xy 160.7748 104.609976) (xy 160.7748 104.498824) (xy 160.7748 103.998824) (xy 160.732264 103.896133) + (xy 160.653667 103.817536) (xy 160.550976 103.775) (xy 160.439824 103.775) (xy 160.1334 103.775) (xy 160.1334 102.464376) + (xy 160.1334 102.353224) (xy 160.1334 102.22992) (xy 160.1334 102.08768) (xy 160.1334 101.964376) (xy 160.1334 101.853224) + (xy 160.1334 101.016576) (xy 160.1334 100.905424) (xy 160.1334 100.78212) (xy 160.1334 100.63988) (xy 160.1334 100.516576) + (xy 160.1334 100.405424) (xy 160.090864 100.302733) (xy 160.012267 100.224136) (xy 159.909576 100.1816) (xy 159.62512 100.1816) + (xy 159.55527 100.25145) (xy 159.55527 100.70973) (xy 160.06355 100.70973) (xy 160.1334 100.63988) (xy 160.1334 100.78212) + (xy 160.06355 100.71227) (xy 159.55527 100.71227) (xy 159.55527 101.17055) (xy 159.62512 101.2404) (xy 159.909576 101.2404) + (xy 160.012267 101.197864) (xy 160.090864 101.119267) (xy 160.1334 101.016576) (xy 160.1334 101.853224) (xy 160.090864 101.750533) + (xy 160.012267 101.671936) (xy 159.909576 101.6294) (xy 159.62512 101.6294) (xy 159.55527 101.69925) (xy 159.55527 102.15753) + (xy 160.06355 102.15753) (xy 160.1334 102.08768) (xy 160.1334 102.22992) (xy 160.06355 102.16007) (xy 159.55527 102.16007) + (xy 159.55527 102.61835) (xy 159.62512 102.6882) (xy 159.909576 102.6882) (xy 160.012267 102.645664) (xy 160.090864 102.567067) + (xy 160.1334 102.464376) (xy 160.1334 103.775) (xy 159.539824 103.775) (xy 159.437133 103.817536) (xy 159.358536 103.896133) + (xy 159.316 103.998824) (xy 159.316 104.033704) (xy 159.260313 104.070913) (xy 159.0532 104.278026) (xy 159.0532 104.006995) + (xy 159.233487 103.826708) (xy 159.305065 103.719583) (xy 159.3302 103.593221) (xy 159.330201 103.593221) (xy 159.3302 103.593215) + (xy 159.3302 102.6882) (xy 159.48288 102.6882) (xy 159.55273 102.61835) (xy 159.55273 102.16007) (xy 159.53273 102.16007) + (xy 159.53273 102.15753) (xy 159.55273 102.15753) (xy 159.55273 101.69925) (xy 159.48288 101.6294) (xy 159.3302 101.6294) + (xy 159.3302 101.2404) (xy 159.48288 101.2404) (xy 159.55273 101.17055) (xy 159.55273 100.71227) (xy 159.53273 100.71227) + (xy 159.53273 100.70973) (xy 159.55273 100.70973) (xy 159.55273 100.25145) (xy 159.48288 100.1816) (xy 159.3302 100.1816) + (xy 159.3302 100.086774) (xy 159.486774 99.9302) (xy 161.063226 99.9302) (xy 163.0198 101.886774) (xy 163.0198 110.213226) + (xy 163.0045 110.228526) (xy 163.0045 106.430776) (xy 163.0045 106.319624) (xy 163.0045 105.430624) (xy 163.0045 104.525776) + (xy 163.0045 104.09682) (xy 163.0045 103.95458) (xy 163.0045 103.525624) (xy 162.961964 103.422933) (xy 162.883367 103.344336) + (xy 162.780676 103.3018) (xy 162.669524 103.3018) (xy 162.09772 103.3018) (xy 162.02787 103.37165) (xy 162.02787 104.02443) + (xy 162.93465 104.02443) (xy 163.0045 103.95458) (xy 163.0045 104.09682) (xy 162.93465 104.02697) (xy 162.02787 104.02697) + (xy 162.02787 104.67975) (xy 162.09772 104.7496) (xy 162.669524 104.7496) (xy 162.780676 104.7496) (xy 162.883367 104.707064) + (xy 162.961964 104.628467) (xy 163.0045 104.525776) (xy 163.0045 105.430624) (xy 162.961964 105.327933) (xy 162.883367 105.249336) + (xy 162.780676 105.2068) (xy 162.669524 105.2068) (xy 162.02533 105.2068) (xy 162.02533 104.67975) (xy 162.02533 104.02697) + (xy 162.02533 104.02443) (xy 162.02533 103.37165) (xy 161.95548 103.3018) (xy 161.383676 103.3018) (xy 161.272524 103.3018) + (xy 161.169833 103.344336) (xy 161.091236 103.422933) (xy 161.0487 103.525624) (xy 161.0487 103.95458) (xy 161.11855 104.02443) + (xy 162.02533 104.02443) (xy 162.02533 104.02697) (xy 161.11855 104.02697) (xy 161.0487 104.09682) (xy 161.0487 104.525776) + (xy 161.091236 104.628467) (xy 161.169833 104.707064) (xy 161.272524 104.7496) (xy 161.383676 104.7496) (xy 161.95548 104.7496) + (xy 162.02533 104.67975) (xy 162.02533 105.2068) (xy 161.272524 105.2068) (xy 161.169833 105.249336) (xy 161.091236 105.327933) + (xy 161.0487 105.430624) (xy 161.0487 105.541776) (xy 161.0487 105.6005) (xy 160.7748 105.6005) (xy 160.7748 105.498824) + (xy 160.732264 105.396133) (xy 160.653667 105.317536) (xy 160.550976 105.275) (xy 160.439824 105.275) (xy 159.539824 105.275) + (xy 159.437133 105.317536) (xy 159.358536 105.396133) (xy 159.316 105.498824) (xy 159.316 105.609976) (xy 159.316 106.109976) + (xy 159.358536 106.212667) (xy 159.437133 106.291264) (xy 159.539824 106.3338) (xy 159.650976 106.3338) (xy 160.550976 106.3338) + (xy 160.653667 106.291264) (xy 160.684031 106.2609) (xy 161.0487 106.2609) (xy 161.0487 106.430776) (xy 161.091236 106.533467) + (xy 161.169833 106.612064) (xy 161.272524 106.6546) (xy 161.383676 106.6546) (xy 162.780676 106.6546) (xy 162.883367 106.612064) + (xy 162.961964 106.533467) (xy 163.0045 106.430776) (xy 163.0045 110.228526) (xy 162.413226 110.8198) (xy 161.7472 110.8198) + (xy 161.7472 110.266176) (xy 161.7472 110.155024) (xy 161.7472 109.26572) (xy 161.7472 109.12348) (xy 161.7472 108.234176) + (xy 161.7472 108.123024) (xy 161.704664 108.020333) (xy 161.626067 107.941736) (xy 161.523376 107.8992) (xy 160.67532 107.8992) + (xy 160.60547 107.96905) (xy 160.60547 109.19333) (xy 161.67735 109.19333) (xy 161.7472 109.12348) (xy 161.7472 109.26572) + (xy 161.67735 109.19587) (xy 160.60547 109.19587) (xy 160.60547 110.42015) (xy 160.67532 110.49) (xy 161.523376 110.49) + (xy 161.626067 110.447464) (xy 161.704664 110.368867) (xy 161.7472 110.266176) (xy 161.7472 110.8198) (xy 160.60293 110.8198) + (xy 160.60293 110.42015) (xy 160.60293 109.19587) (xy 160.60293 109.19333) (xy 160.60293 107.96905) (xy 160.53308 107.8992) + (xy 159.685024 107.8992) (xy 159.582333 107.941736) (xy 159.503736 108.020333) (xy 159.4612 108.123024) (xy 159.4612 108.234176) + (xy 159.4612 109.12348) (xy 159.53105 109.19333) (xy 160.60293 109.19333) (xy 160.60293 109.19587) (xy 159.53105 109.19587) + (xy 159.4612 109.26572) (xy 159.4612 110.155024) (xy 159.4612 110.266176) (xy 159.503736 110.368867) (xy 159.582333 110.447464) + (xy 159.685024 110.49) (xy 160.53308 110.49) (xy 160.60293 110.42015) (xy 160.60293 110.8198) (xy 158.3944 110.8198) + (xy 158.3944 110.449696) (xy 158.501607 110.428372) (xy 158.872423 110.180601) (xy 159.120194 109.809785) (xy 159.2072 109.372378) + (xy 159.2072 109.016822) (xy 159.120194 108.579415) (xy 158.872423 108.208599) (xy 158.501607 107.960828) (xy 158.0642 107.873822) + (xy 157.626793 107.960828) (xy 157.255977 108.208599) (xy 157.008206 108.579415) (xy 156.9212 109.016822) (xy 156.9212 109.372378) + (xy 157.008206 109.809785) (xy 157.255977 110.180601) (xy 157.626793 110.428372) (xy 157.734 110.449696) (xy 157.734 110.9642) + (xy 157.759135 111.090562) (xy 157.830713 111.197687) (xy 158.016513 111.383487) (xy 158.123638 111.455065) (xy 158.25 111.480201) + (xy 158.25 111.4802) (xy 158.250005 111.4802) (xy 162.55 111.4802) (xy 162.676362 111.455065) (xy 162.783487 111.383487) + (xy 163.583487 110.583487) (xy 163.655065 110.476362) (xy 163.6802 110.35) (xy 163.680201 110.35) (xy 163.6802 110.349994) + (xy 163.6802 101.75) (xy 163.655065 101.623638) (xy 163.583487 101.516513) (xy 161.433487 99.366513) (xy 161.326362 99.294935) + (xy 161.2 99.2698) (xy 159.35 99.2698) (xy 159.223638 99.294935) (xy 159.116513 99.366513) (xy 159.025 99.458026) + (xy 158.933487 99.366513) (xy 158.826362 99.294935) (xy 158.7 99.2698) (xy 154.100005 99.2698) (xy 154.1 99.269799) + (xy 153.973638 99.294935) (xy 153.866513 99.366513) (xy 152.766513 100.466513) (xy 152.694935 100.573638) (xy 152.6698 100.7) + (xy 152.6698 102.3) (xy 152.694935 102.426362) (xy 152.766513 102.533487) (xy 152.96651 102.733483) (xy 152.966513 102.733487) + (xy 152.966514 102.733487) (xy 153.073638 102.805065) (xy 153.2 102.830201) (xy 153.2 102.8302) (xy 153.200005 102.8302) + (xy 153.2206 102.8302) (xy 153.2206 102.97888) (xy 153.29045 103.04873) (xy 153.74873 103.04873) (xy 153.74873 103.02873) + (xy 153.75127 103.02873) (xy 153.75127 103.04873) (xy 154.20955 103.04873) (xy 154.2794 102.97888) (xy 154.2794 102.955773) + (xy 154.868129 103.544502) (xy 154.7968 103.615832) (xy 154.7968 104.0004) (xy 154.387007 104.0004) (xy 154.365194 103.978548) + (xy 154.2794 103.942923) (xy 154.2794 103.405576) (xy 154.2794 103.12112) (xy 154.20955 103.05127) (xy 153.75127 103.05127) + (xy 153.75127 103.55955) (xy 153.82112 103.6294) (xy 153.944424 103.6294) (xy 154.055576 103.6294) (xy 154.158267 103.586864) + (xy 154.236864 103.508267) (xy 154.2794 103.405576) (xy 154.2794 103.942923) (xy 154.225798 103.920666) (xy 154.074864 103.920534) + (xy 153.935368 103.978173) (xy 153.887912 104.025544) (xy 153.74873 103.886362) (xy 153.74873 103.55955) (xy 153.74873 103.05127) + (xy 153.29045 103.05127) (xy 153.2206 103.12112) (xy 153.2206 103.405576) (xy 153.263136 103.508267) (xy 153.341733 103.586864) + (xy 153.444424 103.6294) (xy 153.555576 103.6294) (xy 153.67888 103.6294) (xy 153.74873 103.55955) (xy 153.74873 103.886362) + (xy 153.675 103.812632) (xy 153.412173 104.075458) (xy 153.376346 104.076713) (xy 153.376346 103.986301) (xy 153.239069 103.92356) + (xy 153.088231 103.91813) (xy 152.946798 103.970835) (xy 152.923654 103.986301) (xy 152.926759 104.074963) (xy 153.15 104.298204) + (xy 153.373241 104.074963) (xy 153.376346 103.986301) (xy 153.376346 104.076713) (xy 153.375037 104.076759) (xy 153.151796 104.3) + (xy 153.165938 104.314142) (xy 153.164142 104.315938) (xy 153.15 104.301796) (xy 153.135857 104.315938) (xy 153.134061 104.314142) + (xy 153.148204 104.3) (xy 152.924963 104.076759) (xy 152.836301 104.073654) (xy 152.77356 104.210931) (xy 152.76813 104.361769) + (xy 152.798624 104.4436) (xy 152.037637 104.4436) (xy 152.036864 104.441733) (xy 151.958267 104.363136) (xy 151.855576 104.3206) + (xy 151.744424 104.3206) (xy 151.5762 104.3206) (xy 151.5762 97.681563) (xy 152.031563 97.2262) (xy 163.468437 97.2262) + (xy 163.9238 97.681563) (xy 163.9238 111.318437) + ) + ) + ) + (zone (net 0) (net_name "") (layer F.Cu) (tstamp 550C7E3B) (hatch edge 0.508) + (connect_pads (clearance 0.2032)) + (min_thickness 0.1524) + (keepout (tracks allowed) (vias allowed) (copperpour not_allowed)) + (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5)) + (polygon + (pts + (xy 153.9 104.55) (xy 153.45 104.55) (xy 153.45 104.1) (xy 153.9 104.1) + ) + ) + ) + (zone (net 0) (net_name "") (layer F.Cu) (tstamp 550C7E43) (hatch edge 0.508) + (connect_pads (clearance 0.2032)) + (min_thickness 0.1524) + (keepout (tracks allowed) (vias allowed) (copperpour not_allowed)) + (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5)) + (polygon + (pts + (xy 158.85 107.05) (xy 155 107.05) (xy 155 103.2) (xy 158.85 103.2) + ) + ) + ) +) From 89fabd9a89915e7ca413652efff988e67a4cca89 Mon Sep 17 00:00:00 2001 From: Kepler Sticka-Jones Date: Sat, 11 Jul 2015 09:24:22 -0700 Subject: [PATCH 563/875] Use a Crystal grammar over the Ruby grammar for Crystal files. The Crystal does have several little differences which distinguish it from Ruby. Thus it needs it's own grammar. --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/language-crystal | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/language-crystal diff --git a/.gitmodules b/.gitmodules index 67eb93d6..01efd1c7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -653,3 +653,6 @@ [submodule "vendor/grammars/SMT.tmbundle"] path = vendor/grammars/SMT.tmbundle url = https://github.com/SRI-CSL/SMT.tmbundle.git +[submodule "vendor/grammars/language-crystal"] + path = vendor/grammars/language-crystal + url = https://github.com/k2b6s9j/language-crystal diff --git a/grammars.yml b/grammars.yml index a70491a4..9eb3c8c2 100644 --- a/grammars.yml +++ b/grammars.yml @@ -314,6 +314,8 @@ vendor/grammars/language-clojure: vendor/grammars/language-coffee-script: - source.coffee - source.litcoffee +vendor/grammars/language-crystal: +- source.crystal vendor/grammars/language-csharp: - source.cs - source.csx diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index aab77e17..f4b9b4d5 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -670,7 +670,7 @@ Crystal: extensions: - .cr ace_mode: ruby - tm_scope: source.ruby + tm_scope: source.crystal interpreters: - crystal diff --git a/vendor/grammars/language-crystal b/vendor/grammars/language-crystal new file mode 160000 index 00000000..d4f3c1f4 --- /dev/null +++ b/vendor/grammars/language-crystal @@ -0,0 +1 @@ +Subproject commit d4f3c1f43d7e2fdfe7efd40c9585b3e88fbdca58 From 8917f1a91a08ea9c05630519f721cec39ba8df9a Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 12 Jul 2015 20:28:42 +0200 Subject: [PATCH 564/875] MemoryBlob class: wrapper around the content of a file Makes it possible to detect the language of a snippet of code without having an actual file on disk Will allow github-markup to use Linguist without restricting its API --- lib/linguist/memory_blob.rb | 73 +++++++++ test/helper.rb | 21 ++- test/test_memory_blob.rb | 290 ++++++++++++++++++++++++++++++++++++ 3 files changed, 380 insertions(+), 4 deletions(-) create mode 100644 lib/linguist/memory_blob.rb create mode 100644 test/test_memory_blob.rb diff --git a/lib/linguist/memory_blob.rb b/lib/linguist/memory_blob.rb new file mode 100644 index 00000000..c17cf3e2 --- /dev/null +++ b/lib/linguist/memory_blob.rb @@ -0,0 +1,73 @@ +require 'linguist/blob_helper' + +module Linguist + # A MemoryBlob is a wrapper around the content of a file to make it quack + # like a Grit::Blob. It provides the basic interface: `name`, + # `data`, `path` and `size`. + class MemoryBlob + include BlobHelper + + # Public: Initialize a new MemoryBlob. + # + # path - A path String (does not necessarily exists on the file system). + # content - Content of the file. + # + # Returns a FileBlob. + def initialize(path, content) + @path = path + @content = content + end + + # Public: Filename + # + # Examples + # + # MemoryBlob.new("/path/to/linguist/lib/linguist.rb", "").path + # # => "/path/to/linguist/lib/linguist.rb" + # + # Returns a String + attr_reader :path + + # Public: File name + # + # Returns a String + def name + File.basename(@path) + end + + # Public: File contents. + # + # Returns a String. + def data + @content + end + + # Public: Get byte size + # + # Returns an Integer. + def size + @content.bytesize + end + + # Public: Get file extension. + # + # Returns a String. + def extension + extensions.last || "" + end + + # Public: Return an array of the file extensions + # + # >> Linguist::FileBlob.new("app/views/things/index.html.erb").extensions + # => [".html.erb", ".erb"] + # + # Returns an Array + def extensions + basename, *segments = name.downcase.split(".") + + segments.map.with_index do |segment, index| + "." + segments[index..-1].join(".") + end + end + end +end diff --git a/test/helper.rb b/test/helper.rb index ab3cc8fa..71594416 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -3,14 +3,21 @@ require "minitest/autorun" require "mocha/setup" require "linguist" require 'color-proximity' +require "linguist/memory_blob" def fixtures_path File.expand_path("../fixtures", __FILE__) end def fixture_blob(name) - name = File.join(fixtures_path, name) unless name =~ /^\// - Linguist::FileBlob.new(name, fixtures_path) + filepath = (name =~ /^\//)? name : File.join(fixtures_path, name) + Linguist::FileBlob.new(filepath, fixtures_path) +end + +def fixture_blob_memory(name) + filepath = (name =~ /^\//)? name : File.join(fixtures_path, name) + content = File.read(filepath) + Linguist::MemoryBlob.new(name, content) end def samples_path @@ -18,6 +25,12 @@ def samples_path end def sample_blob(name) - name = File.join(samples_path, name) unless name =~ /^\// - Linguist::FileBlob.new(name, samples_path) + filepath = (name =~ /^\//)? name : File.join(samples_path, name) + Linguist::FileBlob.new(filepath, samples_path) +end + +def sample_blob_memory(name) + filepath = (name =~ /^\//)? name : File.join(samples_path, name) + content = File.read(filepath) + Linguist::MemoryBlob.new(name, content) end diff --git a/test/test_memory_blob.rb b/test/test_memory_blob.rb new file mode 100644 index 00000000..1ba856de --- /dev/null +++ b/test/test_memory_blob.rb @@ -0,0 +1,290 @@ +require_relative "./helper" + +class TestBlob < Minitest::Test + include Linguist + + def setup + # git blobs are normally loaded as ASCII-8BIT since they may contain data + # with arbitrary encoding not known ahead of time + @original_external = Encoding.default_external + Encoding.default_external = Encoding.find("ASCII-8BIT") + end + + def teardown + Encoding.default_external = @original_external + end + + def script_blob(name) + blob = sample_blob_memory(name) + blob.instance_variable_set(:@name, 'script') + blob + end + + def test_name + assert_equal "foo.rb", sample_blob_memory("Ruby/foo.rb").name + end + + def test_mime_type + assert_equal "application/postscript", fixture_blob_memory("Binary/octocat.ai").mime_type + assert_equal "application/x-ruby", sample_blob_memory("Ruby/grit.rb").mime_type + assert_equal "application/x-sh", sample_blob_memory("Shell/script.sh").mime_type + assert_equal "text/plain", fixture_blob_memory("Data/README").mime_type + end + + def test_content_type + assert_equal "application/pdf", fixture_blob_memory("Binary/foo.pdf").content_type + assert_equal "image/png", fixture_blob_memory("Binary/foo.png").content_type + assert_equal "text/plain; charset=iso-8859-2", fixture_blob_memory("Data/README").content_type + end + + def test_disposition + assert_equal "attachment; filename=foo+bar.jar", fixture_blob_memory("Binary/foo bar.jar").disposition + assert_equal "attachment; filename=foo.bin", fixture_blob_memory("Binary/foo.bin").disposition + assert_equal "attachment; filename=linguist.gem", fixture_blob_memory("Binary/linguist.gem").disposition + assert_equal "attachment; filename=octocat.ai", fixture_blob_memory("Binary/octocat.ai").disposition + assert_equal "inline", fixture_blob_memory("Data/README").disposition + assert_equal "inline", sample_blob_memory("Text/foo.txt").disposition + assert_equal "inline", sample_blob_memory("Ruby/grit.rb").disposition + assert_equal "inline", fixture_blob_memory("Binary/octocat.png").disposition + end + + def test_data + assert_equal "module Foo\nend\n", sample_blob_memory("Ruby/foo.rb").data + end + + def test_lines + assert_equal ["module Foo", "end", ""], sample_blob_memory("Ruby/foo.rb").lines + assert_equal ["line 1", "line 2", ""], sample_blob_memory("Text/mac.txt").lines + assert_equal 475, sample_blob_memory("Emacs Lisp/ess-julia.el").lines.length + end + + def test_lines_maintains_original_encoding + # Even if the file's encoding is detected as something like UTF-16LE, + # earlier versions of the gem made implicit guarantees that the encoding of + # each `line` is in the same encoding as the file was originally read (in + # practice, UTF-8 or ASCII-8BIT) + assert_equal Encoding.default_external, fixture_blob_memory("Data/utf16le").lines.first.encoding + end + + def test_size + assert_equal 15, sample_blob_memory("Ruby/foo.rb").size + end + + def test_loc + assert_equal 3, sample_blob_memory("Ruby/foo.rb").loc + end + + def test_sloc + assert_equal 2, sample_blob_memory("Ruby/foo.rb").sloc + assert_equal 3, fixture_blob_memory("Data/utf16le-windows").sloc + assert_equal 1, fixture_blob_memory("Data/iso8859-8-i").sloc + end + + def test_encoding + assert_equal "ISO-8859-2", fixture_blob_memory("Data/README").encoding + assert_equal "ISO-8859-2", fixture_blob_memory("Data/README").ruby_encoding + assert_equal "UTF-8", sample_blob_memory("Text/foo.txt").encoding + assert_equal "UTF-8", sample_blob_memory("Text/foo.txt").ruby_encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le").encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le").ruby_encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le-windows").encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le-windows").ruby_encoding + assert_equal "ISO-2022-KR", sample_blob_memory("Text/ISO-2022-KR.txt").encoding + assert_equal "binary", sample_blob_memory("Text/ISO-2022-KR.txt").ruby_encoding + assert_nil fixture_blob_memory("Binary/dog.o").encoding + end + + def test_binary + assert fixture_blob_memory("Binary/git.deb").binary? + assert fixture_blob_memory("Binary/hello.pbc").binary? + assert fixture_blob_memory("Binary/linguist.gem").binary? + assert fixture_blob_memory("Binary/octocat.ai").binary? + assert fixture_blob_memory("Binary/octocat.png").binary? + assert fixture_blob_memory("Binary/zip").binary? + assert !fixture_blob_memory("Data/README").binary? + assert !sample_blob_memory("Ruby/foo.rb").binary? + assert !sample_blob_memory("Perl/script.pl").binary? + end + + def test_all_binary + Samples.each do |sample| + blob = sample_blob_memory(sample[:path]) + assert ! (blob.likely_binary? || blob.binary?), "#{sample[:path]} is a binary file" + end + end + + def test_text + assert fixture_blob_memory("Data/README").text? + assert fixture_blob_memory("Data/md").text? + assert sample_blob_memory("Shell/script.sh").text? + assert fixture_blob_memory("Data/txt").text? + end + + def test_image + assert fixture_blob_memory("Binary/octocat.png").image? + assert !fixture_blob_memory("Binary/octocat.ai").image? + assert !fixture_blob_memory("Binary/octocat.psd").image? + end + + def test_solid + assert fixture_blob_memory("Binary/cube.stl").solid? + assert fixture_blob_memory("Data/cube.stl").solid? + end + + def test_csv + assert fixture_blob_memory("Data/cars.csv").csv? + end + + def test_pdf + assert fixture_blob_memory("Binary/foo.pdf").pdf? + end + + def test_viewable + assert fixture_blob_memory("Data/README").viewable? + assert sample_blob_memory("Ruby/foo.rb").viewable? + assert sample_blob_memory("Perl/script.pl").viewable? + assert !fixture_blob_memory("Binary/linguist.gem").viewable? + assert !fixture_blob_memory("Binary/octocat.ai").viewable? + assert !fixture_blob_memory("Binary/octocat.png").viewable? + end + + def test_generated + assert !fixture_blob_memory("Data/README").generated? + + # Generated .NET Docfiles + assert sample_blob_memory("XML/net_docfile.xml").generated? + + # Long line + assert !sample_blob_memory("JavaScript/uglify.js").generated? + + # Inlined JS, but mostly code + assert !sample_blob_memory("JavaScript/json2_backbone.js").generated? + + # Minified JS + assert !sample_blob_memory("JavaScript/jquery-1.6.1.js").generated? + assert sample_blob_memory("JavaScript/jquery-1.6.1.min.js").generated? + assert sample_blob_memory("JavaScript/jquery-1.4.2.min.js").generated? + + # Composer generated composer.lock file + assert sample_blob_memory("JSON/composer.lock").generated? + + # PEG.js-generated parsers + assert sample_blob_memory("JavaScript/parser.js").generated? + + # Generated PostScript + assert !sample_blob_memory("PostScript/sierpinski.ps").generated? + + # These examples are too basic to tell + assert !sample_blob_memory("JavaScript/hello.js").generated? + + assert sample_blob_memory("JavaScript/intro-old.js").generated? + assert sample_blob_memory("JavaScript/classes-old.js").generated? + + assert sample_blob_memory("JavaScript/intro.js").generated? + assert sample_blob_memory("JavaScript/classes.js").generated? + + # Protocol Buffer generated code + assert sample_blob_memory("C++/protocol-buffer.pb.h").generated? + assert sample_blob_memory("C++/protocol-buffer.pb.cc").generated? + assert sample_blob_memory("Java/ProtocolBuffer.java").generated? + assert sample_blob_memory("Python/protocol_buffer_pb2.py").generated? + assert sample_blob_memory("Go/api.pb.go").generated? + assert sample_blob_memory("Go/embedded.go").generated? + + # Apache Thrift generated code + assert sample_blob_memory("Python/gen-py-linguist-thrift.py").generated? + assert sample_blob_memory("Go/gen-go-linguist-thrift.go").generated? + assert sample_blob_memory("Java/gen-java-linguist-thrift.java").generated? + assert sample_blob_memory("JavaScript/gen-js-linguist-thrift.js").generated? + assert sample_blob_memory("Ruby/gen-rb-linguist-thrift.rb").generated? + assert sample_blob_memory("Objective-C/gen-cocoa-linguist-thrift.m").generated? + + # Generated JNI + assert sample_blob_memory("C/jni_layer.h").generated? + + # Minified CSS + assert !sample_blob_memory("CSS/bootstrap.css").generated? + assert sample_blob_memory("CSS/bootstrap.min.css").generated? + + # Generated VCR + assert sample_blob_memory("YAML/vcr_cassette.yml").generated? + + # Generated by Zephir + assert !sample_blob_memory("Zephir/Router.zep").generated? + + # Cython-generated C/C++ + assert sample_blob_memory("C/sgd_fast.c").generated? + assert sample_blob_memory("C++/wrapper_inner.cpp").generated? + + # Unity3D-generated metadata + assert sample_blob_memory("Unity3D Asset/Tiles.meta").generated? + end + + def test_vendored + assert !fixture_blob_memory("Data/README").vendored? + end + + def test_language + Samples.each do |sample| + blob = sample_blob_memory(sample[:path]) + assert blob.language, "No language for #{sample[:path]}" + assert_equal sample[:language], blob.language.name, blob.name + end + + # Test language detection for files which shouldn't be used as samples + root = File.expand_path('../fixtures', __FILE__) + Dir.entries(root).each do |language| + next if language == '.' || language == '..' || language == 'Binary' || + File.basename(language) == 'ace_modes.json' + + # Each directory contains test files of a language + dirname = File.join(root, language) + Dir.entries(dirname).each do |filename| + # By default blob search the file in the samples; + # thus, we need to give it the absolute path + filepath = File.join(dirname, filename) + next unless File.file?(filepath) + + blob = fixture_blob_memory(filepath) + if language == 'Data' + assert blob.language.nil?, "A language was found for #{filepath}" + elsif language == 'Generated' + assert blob.generated?, "#{filepath} is not a generated file" + else + assert blob.language, "No language for #{filepath}" + assert_equal language, blob.language.name, blob.name + end + end + end + end + + def test_minified_files_not_safe_to_highlight + assert !sample_blob_memory("JavaScript/jquery-1.6.1.min.js").safe_to_colorize? + end + + def test_empty + blob = Struct.new(:data) { include Linguist::BlobHelper } + + assert blob.new("").empty? + assert blob.new(nil).empty? + refute blob.new(" ").empty? + refute blob.new("nope").empty? + end + + def test_include_in_language_stats + generated = sample_blob_memory("CSS/bootstrap.min.css") + assert_predicate generated, :generated? + refute_predicate generated, :include_in_language_stats? + + data = sample_blob_memory("Ant Build System/filenames/ant.xml") + assert_equal :data, data.language.type + refute_predicate data, :include_in_language_stats? + + prose = sample_blob_memory("Markdown/tender.md") + assert_equal :prose, prose.language.type + refute_predicate prose, :include_in_language_stats? + + included = sample_blob_memory("HTML/pages.html") + assert_predicate included, :include_in_language_stats? + end +end From 5a646384f6649474eb539d6c4c7734a244a98ec8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 12 Jul 2015 20:56:51 +0200 Subject: [PATCH 565/875] FileBlob extends MemoryBlob --- lib/linguist/file_blob.rb | 45 ++------------------------------------- 1 file changed, 2 insertions(+), 43 deletions(-) diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 20d87bb0..98ef3825 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -1,10 +1,11 @@ require 'linguist/blob_helper' +require 'linguist/memory_blob' module Linguist # A FileBlob is a wrapper around a File object to make it quack # like a Grit::Blob. It provides the basic interface: `name`, # `data`, `path` and `size`. - class FileBlob + class FileBlob < MemoryBlob include BlobHelper # Public: Initialize a new FileBlob from a path @@ -18,20 +19,6 @@ module Linguist @path = base_path ? path.sub("#{base_path}/", '') : path end - # Public: Filename - # - # Examples - # - # FileBlob.new("/path/to/linguist/lib/linguist.rb").path - # # => "/path/to/linguist/lib/linguist.rb" - # - # FileBlob.new("/path/to/linguist/lib/linguist.rb", - # "/path/to/linguist").path - # # => "lib/linguist.rb" - # - # Returns a String - attr_reader :path - # Public: Read file permissions # # Returns a String like '100644' @@ -39,13 +26,6 @@ module Linguist File.stat(@fullpath).mode.to_s(8) end - # Public: File name - # - # Returns a String - def name - File.basename(@fullpath) - end - # Public: Read file contents. # # Returns a String. @@ -59,26 +39,5 @@ module Linguist def size File.size(@fullpath) end - - # Public: Get file extension. - # - # Returns a String. - def extension - extensions.last || "" - end - - # Public: Return an array of the file extensions - # - # >> Linguist::FileBlob.new("app/views/things/index.html.erb").extensions - # => [".html.erb", ".erb"] - # - # Returns an Array - def extensions - basename, *segments = name.downcase.split(".") - - segments.map.with_index do |segment, index| - "." + segments[index..-1].join(".") - end - end end end From 4dcdb0c79c041e59b2f1d810816e0b823bb83f65 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 13 Jul 2015 10:32:08 +0200 Subject: [PATCH 566/875] xBase: add .ch extension + sample --- lib/linguist/languages.yml | 1 + samples/xBase/sample.ch | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 samples/xBase/sample.ch diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 03a6c6df..85261f69 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3783,5 +3783,6 @@ xBase: color: "#403a40" extensions: - .prg + - .ch tm_scope: none ace_mode: text diff --git a/samples/xBase/sample.ch b/samples/xBase/sample.ch new file mode 100644 index 00000000..308f1e1c --- /dev/null +++ b/samples/xBase/sample.ch @@ -0,0 +1,30 @@ +#ifndef __HARBOUR__ + #ifndef __XPP__ + #ifndef __CLIP__ + #ifndef FlagShip + #define __CLIPPER__ + #endif + #endif + #endif +#endif + +/* File create flags */ +#define FC_NORMAL 0 /* No file attributes are set */ +#define FC_READONLY 1 +#define FC_HIDDEN 2 +#define FC_SYSTEM 4 + +// New-style comment +#command SET DELETED => Set( _SET_DELETED, <(x)> ) +#command SET DELETED () => Set( _SET_DELETED, ) +#command @ , SAY [PICTURE ] [COLOR ] => ; + DevPos( , ) ; DevOutPict( , [, ] ) + +#command ENDIF <*x*> => endif + +#ifdef __CLIPPER__ + #xtranslate hb_MemoWrit( [] ) => MemoWrit( ) + #xtranslate hb_dbExists( ) => File( ) + #xtranslate hb_dbPack() => __dbPack() + #xtranslate hb_default( @, ) => iif( StrTran( ValType( ), "M", "C" ) == StrTran( ValType( ), "M", "C" ),, := , ) +#endif From 4c81c0d90472cfe675fa39d72570a82b9cdfe3ab Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 13 Jul 2015 14:29:02 +0200 Subject: [PATCH 567/875] add grammar for xbase and harbour languages --- .gitmodules | 3 + grammars.yml | 2 + lib/linguist/languages.yml | 5 +- samples/xBase/sample.prg | 167 +++++++++++++++++++++++++++++++++ vendor/grammars/language-xbase | 1 + 5 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 samples/xBase/sample.prg create mode 160000 vendor/grammars/language-xbase diff --git a/.gitmodules b/.gitmodules index 01efd1c7..5d838196 100644 --- a/.gitmodules +++ b/.gitmodules @@ -656,3 +656,6 @@ [submodule "vendor/grammars/language-crystal"] path = vendor/grammars/language-crystal url = https://github.com/k2b6s9j/language-crystal +[submodule "vendor/grammars/language-xbase"] + path = vendor/grammars/language-xbase + url = https://github.com/hernad/atom-language-harbour diff --git a/grammars.yml b/grammars.yml index 9eb3c8c2..412b6eb7 100644 --- a/grammars.yml +++ b/grammars.yml @@ -338,6 +338,8 @@ vendor/grammars/language-python: vendor/grammars/language-shellscript: - source.shell - text.shell-session +vendor/grammars/language-xbase: +- source.harbour vendor/grammars/language-yaml: - source.yaml vendor/grammars/latex.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 03a6c6df..de87df92 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1349,7 +1349,7 @@ Harbour: color: "#0e60e3" extensions: - .hb - tm_scope: none + tm_scope: source.harbour ace_mode: text Haskell: @@ -3783,5 +3783,6 @@ xBase: color: "#403a40" extensions: - .prg - tm_scope: none + - .ch + tm_scope: source.harbour ace_mode: text diff --git a/samples/xBase/sample.prg b/samples/xBase/sample.prg new file mode 100644 index 00000000..33d7a1e6 --- /dev/null +++ b/samples/xBase/sample.prg @@ -0,0 +1,167 @@ +#require "hbtest" + +#pragma linenumber=on + +#include "hbclass.ch" + +#stdout "stdout" +#warning "warning" + +#define MYCONST 100 +#undef MYCONST + +#ifdef __HARBOUR__ +#else +#endif + +#if defined( __HARBOUR__ ) .OR. .T. +#elif defined( __HARBOUR__ ) +#endif + +THREAD STATIC t_var := "thread" + +REQUEST AllTrim +ANNOUNCE my_module + +PROCEDURE Main() + + MEMVAR p_var, m_var + FIELD fld + + STATIC s_test := "static" + LOCAL o := TTest():New( "one", "two" ), tmp + LOCAL oError + LOCAL bBlock := {| tmp | QOut( tmp ) } + LOCAL hHash := { "name" => "value", "name2" => "value2", 2 => 1 } + PUBLIC p_var := "public" + PRIVATE m_var := "private" + PARAMETERS p1 + + Set( _SET_DATEFORMAT, "yyyy-mm-dd" ) + + CLS + @ 10, 10 SAY "Hello world!" + + ? hb_ValToExp( o ) + ? m->p1 + ? hHash[ "name" ], hHash[ 2 ] + + FOR tmp := 1 TO 10 STEP 2 + ? tmp + NEXT + + FOR EACH tmp IN { "a", "b" } DESCEND + ? tmp + NEXT + + ? 10.01 + 2 - 3 / 4 * 5 ^ 6 ** 1 + ? 2 < 1, 2 > 1, 2 >= 1, 2 <= 1, 2 == 1, 2 = 1, 2 != 1, 2 <> 1, 2 # 1 + ? -( 1 + 2 ), "a" $ "ab", 10 % 2 + + tmp := 0 + DO WHILE tmp < 2 + ? tmp++ + ENDDO + + tmp := 0 + WHILE tmp < 2 + ? ++tmp + IF tmp >= 0xFF + LOOP + ENDIF + EXIT + ENDDO + + --tmp + tmp-- + + IF tmp < -10.0 + ? NIL + ELSEIF .F. + ? 0d19800101 + ELSE + ? "string" + ENDIF + + DO CASE + CASE tmp == 1 + ? "A" + OTHERWISE + ? "B" + ENDCASE + + SWITCH tmp + CASE 1 + ? "A" + EXIT + OTHERWISE + ? "B" + ENDSWITCH + + BEGIN SEQUENCE WITH __BreakBlock() + BREAK + RECOVER USING oError + END /* SEQUENCE */ + + local_func( @hHash ) + + RETURN + +INIT PROCEDURE init_proc() + RETURN + +EXIT PROCEDURE exit_proc() + RETURN + +PROCEDURE returning_nothing() + RETURN + +FUNCTION pub_func() + RETURN .T. + +STATIC FUNCTION local_func() + RETURN .F. + +CREATE CLASS TTest INHERIT TParent + VAR One, Two + METHOD New( One ) + METHOD Test() INLINE QOut( "Hello" ) + METHOD MethProc() +ENDCLASS + +METHOD PROCEDURE MethProc() + RETURN + +METHOD New( One ) CLASS TTest + + ::super:New() + ::One := One + + RETURN Self + +CREATE CLASS TParent + VAR One + METHOD New() +ENDCLASS + +METHOD New() CLASS TParent + ? "TParent:New()" + RETURN Self + +// This is a comment +/* This is a comment */ +/* This is +a comment */ +* This is a comment +&& This is a comment +NOTE This is a comment +note This is a comment +NOTE + +FUNCTION pub_func2() + ? "hello world!" + ? 'hello world!' + ? "hello\world!" + ? "\" + ? "hello world!" + RETURN .T. diff --git a/vendor/grammars/language-xbase b/vendor/grammars/language-xbase new file mode 160000 index 00000000..86f0c6c3 --- /dev/null +++ b/vendor/grammars/language-xbase @@ -0,0 +1 @@ +Subproject commit 86f0c6c370c56c95d1b1ac9f3dbdca3b31d482bb From 8742de9a88b881340fcfa23cc94b5886d5575a21 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Mon, 13 Jul 2015 21:11:06 -0500 Subject: [PATCH 568/875] pulling .xsp, .form, .view from PR Per comment in [PR 2438](https://github.com/github/linguist/pull/2438#issuecomment-120588670), pulling all but .xsp-config and .xsp.metadata for uniqueness and non-overlapping assignment based on file extension. This should be set / overridden in the `.gitattributes` file, [as demonstrated here](https://github.com/edm00se/AnAppOfIceAndFire/blob/master/.gitattributes), to assign the XPages language to the project files. --- lib/linguist/languages.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 832e1e7e..23b85226 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3539,9 +3539,6 @@ XML: XPages: type: programming extensions: - - .form - - .view - - .xsp - .xsp-config - .xsp.metadata tm_scope: none From ce8cfed7ff36adcd97a6811d485deb4f6402485a Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Mon, 13 Jul 2015 21:22:54 -0500 Subject: [PATCH 569/875] removed samples --- lib/linguist/languages.yml | 3718 ------------------ samples/XPages/UnpMain.xsp | 83 - samples/XPages/demoServerRESTconsumption.xsp | 64 - samples/XPages/house.form | 65 - samples/XPages/house.xsp | 176 - samples/XPages/houses.view | 54 - samples/XPages/navbar.xsp | 53 - samples/XPages/xLogin.xsp | 38 - 8 files changed, 4251 deletions(-) delete mode 100644 lib/linguist/languages.yml delete mode 100644 samples/XPages/UnpMain.xsp delete mode 100644 samples/XPages/demoServerRESTconsumption.xsp delete mode 100644 samples/XPages/house.form delete mode 100644 samples/XPages/house.xsp delete mode 100644 samples/XPages/houses.view delete mode 100755 samples/XPages/navbar.xsp delete mode 100644 samples/XPages/xLogin.xsp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml deleted file mode 100644 index 23b85226..00000000 --- a/lib/linguist/languages.yml +++ /dev/null @@ -1,3718 +0,0 @@ -# Defines all Languages known to GitHub. -# -# type - Either data, programming, markup, prose, or nil -# aliases - An Array of additional aliases (implicitly -# includes name.downcase) -# ace_mode - A String name of the Ace Mode used for highlighting whenever -# a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. -# Use "text" if a mode does not exist. -# wrap - Boolean wrap to enable line wrapping (default: false) -# extensions - An Array of associated extensions (the first one is -# considered the primary extension) -# interpreters - An Array of associated interpreters -# searchable - Boolean flag to enable searching (defaults to true) -# search_term - Deprecated: Some languages maybe indexed under a -# different alias. Avoid defining new exceptions. -# color - CSS hex color to represent the language. -# tm_scope - The TextMate scope that represents this programming -# language. This should match one of the scopes listed in -# the grammars.yml file. Use "none" if there is no grammar -# for this language. -# group - Name of the parent language. Languages in a group are counted -# in the statistics as the parent language. -# -# Any additions or modifications (even trivial) should have corresponding -# test change in `test/test_blob.rb`. -# -# Please keep this list alphabetized. Capitalization comes before lower case. - -ABAP: - type: programming - color: "#E8274B" - extensions: - - .abap - ace_mode: abap - -AGS Script: - type: programming - color: "#B9D9FF" - aliases: - - ags - extensions: - - .asc - - .ash - tm_scope: source.c++ - ace_mode: c_cpp - -AMPL: - type: programming - color: "#E6EFBB" - extensions: - - .ampl - tm_scope: source.ampl - ace_mode: text - -ANTLR: - type: programming - color: "#9DC3FF" - extensions: - - .g4 - ace_mode: text - -API Blueprint: - type: markup - color: "#2ACCA8" - ace_mode: markdown - extensions: - - .apib - tm_scope: text.html.markdown.source.gfm.apib - -APL: - type: programming - color: "#5A8164" - extensions: - - .apl - - .dyalog - tm_scope: source.apl - ace_mode: text - -ASP: - type: programming - color: "#6a40fd" - search_term: aspx-vb - tm_scope: text.html.asp - aliases: - - aspx - - aspx-vb - extensions: - - .asp - - .asax - - .ascx - - .ashx - - .asmx - - .aspx - - .axd - ace_mode: text - -ATS: - type: programming - color: "#1ac620" - aliases: - - ats2 - extensions: - - .dats - - .hats - - .sats - tm_scope: source.ats - ace_mode: ocaml - -ActionScript: - type: programming - tm_scope: source.actionscript.3 - color: "#882B0F" - search_term: as3 - aliases: - - actionscript 3 - - actionscript3 - - as3 - extensions: - - .as - ace_mode: actionscript - -Ada: - type: programming - color: "#02f88c" - extensions: - - .adb - - .ada - - .ads - aliases: - - ada95 - - ada2005 - ace_mode: ada - -Agda: - type: programming - color: "#315665" - extensions: - - .agda - ace_mode: text - -Alloy: - type: programming # 'modeling' would be more appropiate - color: "#cc5c24" - extensions: - - .als - ace_mode: text - -Ant Build System: - type: data - tm_scope: text.xml.ant - filenames: - - ant.xml - - build.xml - ace_mode: xml - -ApacheConf: - type: markup - aliases: - - aconf - - apache - extensions: - - .apacheconf - - .vhost - tm_scope: source.apache-config - ace_mode: apache_conf - -Apex: - type: programming - extensions: - - .cls - tm_scope: source.java - ace_mode: java - -AppleScript: - type: programming - aliases: - - osascript - extensions: - - .applescript - - .scpt - interpreters: - - osascript - ace_mode: applescript - -Arc: - type: programming - color: "#aa2afe" - extensions: - - .arc - tm_scope: none - ace_mode: text - -Arduino: - type: programming - color: "#bd79d1" - extensions: - - .ino - tm_scope: source.c++ - ace_mode: c_cpp - -AsciiDoc: - type: prose - ace_mode: asciidoc - wrap: true - extensions: - - .asciidoc - - .adoc - - .asc - tm_scope: text.html.asciidoc - -AspectJ: - type: programming - color: "#a957b0" - extensions: - - .aj - tm_scope: none - ace_mode: text - -Assembly: - type: programming - color: "#6E4C13" - search_term: nasm - aliases: - - nasm - extensions: - - .asm - - .a51 - - .nasm - tm_scope: source.asm.x86 - ace_mode: assembly_x86 - -Augeas: - type: programming - extensions: - - .aug - tm_scope: none - ace_mode: text - -AutoHotkey: - type: programming - color: "#6594b9" - aliases: - - ahk - extensions: - - .ahk - - .ahkl - tm_scope: source.ahk - ace_mode: autohotkey - -AutoIt: - type: programming - color: "#1C3552" - aliases: - - au3 - - AutoIt3 - - AutoItScript - extensions: - - .au3 - tm_scope: source.autoit.3 - ace_mode: autohotkey - -Awk: - type: programming - extensions: - - .awk - - .auk - - .gawk - - .mawk - - .nawk - interpreters: - - awk - - gawk - - mawk - - nawk - ace_mode: text - -Batchfile: - type: programming - search_term: bat - aliases: - - bat - - batch - - dosbatch - - winbatch - extensions: - - .bat - - .cmd - tm_scope: source.dosbatch - ace_mode: batchfile - -Befunge: - type: programming - extensions: - - .befunge - ace_mode: text - -Bison: - type: programming - group: Yacc - tm_scope: source.bison - extensions: - - .bison - ace_mode: text - -BitBake: - type: programming - tm_scope: none - extensions: - - .bb - ace_mode: text - -BlitzBasic: - type: programming - aliases: - - b3d - - blitz3d - - blitzplus - - bplus - extensions: - - .bb - - .decls - tm_scope: source.blitzmax - ace_mode: text - -BlitzMax: - type: programming - color: "#cd6400" - extensions: - - .bmx - aliases: - - bmax - ace_mode: text - -Bluespec: - type: programming - extensions: - - .bsv - tm_scope: source.bsv - ace_mode: verilog - -Boo: - type: programming - color: "#d4bec1" - extensions: - - .boo - ace_mode: text - -Brainfuck: - type: programming - color: "#2F2530" - extensions: - - .b - - .bf - tm_scope: source.bf - ace_mode: text - -Brightscript: - type: programming - extensions: - - .brs - tm_scope: source.brightscript - ace_mode: text - -Bro: - type: programming - extensions: - - .bro - ace_mode: text - -C: - type: programming - color: "#555555" - extensions: - - .c - - .cats - - .h - - .idc - - .w - interpreters: - - tcc - ace_mode: c_cpp - -C#: - type: programming - ace_mode: csharp - tm_scope: source.cs - search_term: csharp - color: "#178600" - aliases: - - csharp - extensions: - - .cs - - .cshtml - - .csx - -C++: - type: programming - ace_mode: c_cpp - search_term: cpp - color: "#f34b7d" - aliases: - - cpp - extensions: - - .cpp - - .c++ - - .cc - - .cp - - .cxx - - .h - - .h++ - - .hh - - .hpp - - .hxx - - .inl - - .ipp - - .tcc - - .tpp - -C-ObjDump: - type: data - extensions: - - .c-objdump - tm_scope: objdump.x86asm - ace_mode: assembly_x86 - -C2hs Haskell: - type: programming - group: Haskell - aliases: - - c2hs - extensions: - - .chs - tm_scope: source.haskell - ace_mode: haskell - -CLIPS: - type: programming - extensions: - - .clp - tm_scope: source.clips - ace_mode: text - -CMake: - type: programming - extensions: - - .cmake - - .cmake.in - filenames: - - CMakeLists.txt - ace_mode: text - -COBOL: - type: programming - extensions: - - .cob - - .cbl - - .ccp - - .cobol - - .cpy - ace_mode: cobol - -CSS: - type: markup - tm_scope: source.css - ace_mode: css - color: "#563d7c" - extensions: - - .css - -Cap'n Proto: - type: programming - tm_scope: source.capnp - extensions: - - .capnp - ace_mode: text - -CartoCSS: - type: programming - aliases: - - Carto - extensions: - - .mss - ace_mode: text - tm_scope: source.css.mss - -Ceylon: - type: programming - extensions: - - .ceylon - ace_mode: text - -Chapel: - type: programming - color: "#8dc63f" - aliases: - - chpl - extensions: - - .chpl - ace_mode: text - -ChucK: - type: programming - extensions: - - .ck - tm_scope: source.java - ace_mode: java - -Cirru: - type: programming - color: "#ccccff" - ace_mode: cirru - extensions: - - .cirru - -Clarion: - type: programming - color: "#db901e" - ace_mode: text - extensions: - - .clw - tm_scope: source.clarion - -Clean: - type: programming - color: "#3F85AF" - extensions: - - .icl - - .dcl - tm_scope: none - ace_mode: text - -Clojure: - type: programming - ace_mode: clojure - color: "#db5855" - extensions: - - .clj - - .boot - - .cl2 - - .cljc - - .cljs - - .cljs.hl - - .cljscm - - .cljx - - .hic - filenames: - - riemann.config - -CoffeeScript: - type: programming - tm_scope: source.coffee - ace_mode: coffee - color: "#244776" - aliases: - - coffee - - coffee-script - extensions: - - .coffee - - ._coffee - - .cjsx - - .cson - - .iced - filenames: - - Cakefile - interpreters: - - coffee - -ColdFusion: - type: programming - group: ColdFusion - ace_mode: coldfusion - color: "#ed2cd6" - search_term: cfm - aliases: - - cfm - - cfml - - coldfusion html - extensions: - - .cfm - - .cfml - tm_scope: text.html.cfm - -ColdFusion CFC: - type: programming - group: ColdFusion - ace_mode: coldfusion - color: "#ed2cd6" - search_term: cfc - aliases: - - cfc - extensions: - - .cfc - tm_scope: source.cfscript - -Common Lisp: - type: programming - tm_scope: source.lisp - color: "#3fb68b" - aliases: - - lisp - extensions: - - .lisp - - .asd - - .cl - - .l - - .lsp - - .ny - - .podsl - interpreters: - - lisp - - sbcl - - ccl - - clisp - - ecl - ace_mode: lisp - -Component Pascal: - type: programming - color: "#b0ce4e" - extensions: - - .cp - - .cps - tm_scope: source.pascal - aliases: - - delphi - - objectpascal - ace_mode: pascal - -Cool: - type: programming - extensions: - - .cl - tm_scope: source.cool - ace_mode: text - -Coq: - type: programming - extensions: - - .coq - - .v - ace_mode: text - -Cpp-ObjDump: - type: data - extensions: - - .cppobjdump - - .c++-objdump - - .c++objdump - - .cpp-objdump - - .cxx-objdump - tm_scope: objdump.x86asm - aliases: - - c++-objdumb - ace_mode: assembly_x86 - -Creole: - type: prose - wrap: true - extensions: - - .creole - tm_scope: text.html.creole - ace_mode: text - -Crystal: - type: programming - color: "#776791" - extensions: - - .cr - ace_mode: ruby - tm_scope: source.ruby - interpreters: - - crystal - -Cucumber: - type: programming - extensions: - - .feature - tm_scope: text.gherkin.feature - aliases: - - gherkin - ace_mode: text - -Cuda: - type: programming - extensions: - - .cu - - .cuh - tm_scope: source.cuda-c++ - ace_mode: c_cpp - -Cycript: - type: programming - extensions: - - .cy - tm_scope: source.js - ace_mode: javascript - -Cython: - type: programming - group: Python - extensions: - - .pyx - - .pxd - - .pxi - aliases: - - pyrex - ace_mode: text - -D: - type: programming - color: "#fcd46d" - extensions: - - .d - - .di - ace_mode: d - -D-ObjDump: - type: data - extensions: - - .d-objdump - tm_scope: objdump.x86asm - ace_mode: assembly_x86 - -DIGITAL Command Language: - type: programming - aliases: - - dcl - extensions: - - .com - tm_scope: none - ace_mode: text - -DM: - type: programming - color: "#447265" - extensions: - - .dm - aliases: - - byond - tm_scope: source.c++ - ace_mode: c_cpp - -DTrace: - type: programming - aliases: - - dtrace-script - extensions: - - .d - interpreters: - - dtrace - tm_scope: source.c - ace_mode: c_cpp - -Darcs Patch: - type: data - search_term: dpatch - aliases: - - dpatch - extensions: - - .darcspatch - - .dpatch - tm_scope: none - ace_mode: text - -Dart: - type: programming - color: "#00B4AB" - extensions: - - .dart - ace_mode: dart - -Diff: - type: data - color: "#88dddd" - extensions: - - .diff - - .patch - aliases: - - udiff - tm_scope: source.diff - ace_mode: diff - -Dockerfile: - type: data - tm_scope: source.dockerfile - extensions: - - .dockerfile - filenames: - - Dockerfile - ace_mode: dockerfile - -Dogescript: - type: programming - color: "#cca760" - extensions: - - .djs - tm_scope: none - ace_mode: text - -Dylan: - type: programming - color: "#6c616e" - extensions: - - .dylan - - .dyl - - .intr - - .lid - ace_mode: text - -E: - type: programming - color: "#ccce35" - extensions: - - .E - tm_scope: none - ace_mode: text - -ECL: - type: programming - color: "#8a1267" - extensions: - - .ecl - - .eclxml - tm_scope: none - ace_mode: text - -Eagle: - type: markup - color: "#814C05" - extensions: - - .sch - - .brd - tm_scope: text.xml - ace_mode: xml - -Ecere Projects: - type: data - group: JavaScript - extensions: - - .epj - tm_scope: source.json - ace_mode: json - -Eiffel: - type: programming - color: "#946d57" - extensions: - - .e - ace_mode: eiffel - -Elixir: - type: programming - color: "#6e4a7e" - extensions: - - .ex - - .exs - ace_mode: elixir - filenames: - - mix.lock - -Elm: - type: programming - color: "#60B5CC" - extensions: - - .elm - tm_scope: source.elm - ace_mode: elm - -Emacs Lisp: - type: programming - tm_scope: source.lisp - color: "#c065db" - aliases: - - elisp - - emacs - filenames: - - .emacs - - .emacs.desktop - extensions: - - .el - - .emacs - - .emacs.desktop - ace_mode: lisp - -EmberScript: - type: programming - color: "#FFF4F3" - extensions: - - .em - - .emberscript - tm_scope: source.coffee - ace_mode: coffee - -Erlang: - type: programming - color: "#B83998" - extensions: - - .erl - - .es - - .escript - - .hrl - filenames: - - rebar.config - - rebar.config.lock - - rebar.lock - ace_mode: erlang - interpreters: - - escript - -F#: - type: programming - color: "#b845fc" - search_term: fsharp - aliases: - - fsharp - extensions: - - .fs - - .fsi - - .fsx - tm_scope: source.fsharp - ace_mode: text - -FLUX: - type: programming - color: "#88ccff" - extensions: - - .fx - - .flux - tm_scope: none - ace_mode: text - -FORTRAN: - type: programming - color: "#4d41b1" - extensions: - - .f90 - - .f - - .f03 - - .f08 - - .f77 - - .f95 - - .for - - .fpp - tm_scope: source.fortran.modern - ace_mode: text - -Factor: - type: programming - color: "#636746" - extensions: - - .factor - filenames: - - .factor-boot-rc - - .factor-rc - ace_mode: text - -Fancy: - type: programming - color: "#7b9db4" - extensions: - - .fy - - .fancypack - filenames: - - Fakefile - ace_mode: text - -Fantom: - type: programming - color: "#dbded5" - extensions: - - .fan - tm_scope: source.fan - ace_mode: text - -Filterscript: - type: programming - group: RenderScript - extensions: - - .fs - tm_scope: none - ace_mode: text - -Formatted: - type: data - extensions: - - .for - tm_scope: none - ace_mode: text - -Forth: - type: programming - color: "#341708" - extensions: - - .fth - - .4th - - .f - - .for - - .forth - - .fr - - .frt - - .fs - ace_mode: forth - -Frege: - type: programming - color: "#00cafe" - extensions: - - .fr - tm_scope: source.haskell - ace_mode: haskell - -G-code: - type: data - extensions: - - .g - - .gco - - .gcode - tm_scope: source.gcode - ace_mode: gcode - -GAMS: - type: programming - extensions: - - .gms - tm_scope: none - ace_mode: text - -GAP: - type: programming - extensions: - - .g - - .gap - - .gd - - .gi - - .tst - tm_scope: source.gap - ace_mode: text - -GAS: - type: programming - group: Assembly - extensions: - - .s - tm_scope: source.asm.x86 - ace_mode: assembly_x86 - -GDScript: - type: programming - extensions: - - .gd - tm_scope: source.gdscript - ace_mode: text - -GLSL: - type: programming - extensions: - - .glsl - - .fp - - .frag - - .frg - - .fs - - .fshader - - .geo - - .geom - - .glslv - - .gshader - - .shader - - .vert - - .vrx - - .vshader - ace_mode: glsl - -Game Maker Language: - type: programming - color: "#8fb200" - extensions: - - .gml - tm_scope: source.c++ - ace_mode: c_cpp - -Genshi: - type: programming - extensions: - - .kid - tm_scope: text.xml.genshi - aliases: - - xml+genshi - - xml+kid - ace_mode: xml - -Gentoo Ebuild: - type: programming - group: Shell - extensions: - - .ebuild - tm_scope: source.shell - ace_mode: sh - -Gentoo Eclass: - type: programming - group: Shell - extensions: - - .eclass - tm_scope: source.shell - ace_mode: sh - -Gettext Catalog: - type: prose - search_term: pot - searchable: false - aliases: - - pot - extensions: - - .po - - .pot - tm_scope: source.po - ace_mode: text - -Glyph: - type: programming - color: "#e4cc98" - extensions: - - .glf - tm_scope: source.tcl - ace_mode: tcl - -Gnuplot: - type: programming - color: "#f0a9f0" - extensions: - - .gp - - .gnu - - .gnuplot - - .plot - - .plt - interpreters: - - gnuplot - ace_mode: text - -Go: - type: programming - color: "#375eab" - extensions: - - .go - ace_mode: golang - -Golo: - type: programming - color: "#88562A" - extensions: - - .golo - tm_scope: source.golo - ace_mode: text - -Gosu: - type: programming - color: "#82937f" - extensions: - - .gs - - .gst - - .gsx - - .vark - tm_scope: source.gosu.2 - ace_mode: text - -Grace: - type: programming - extensions: - - .grace - tm_scope: source.grace - ace_mode: text - -Gradle: - type: data - extensions: - - .gradle - tm_scope: source.groovy.gradle - ace_mode: text - -Grammatical Framework: - type: programming - aliases: - - gf - wrap: false - extensions: - - .gf - searchable: true - color: "#79aa7a" - tm_scope: source.haskell - ace_mode: haskell - -Graph Modeling Language: - type: data - extensions: - - .gml - tm_scope: none - ace_mode: text - -Graphviz (DOT): - type: data - tm_scope: source.dot - extensions: - - .dot - - .gv - ace_mode: text - -Groff: - type: markup - extensions: - - .man - - '.1' - - '.2' - - '.3' - - '.4' - - '.5' - - '.6' - - '.7' - - .l - tm_scope: text.groff - aliases: - - nroff - ace_mode: text - -Groovy: - type: programming - ace_mode: groovy - color: "#e69f56" - extensions: - - .groovy - - .grt - - .gtpl - - .gvy - interpreters: - - groovy - -Groovy Server Pages: - type: programming - group: Groovy - aliases: - - gsp - - java server page - extensions: - - .gsp - tm_scope: text.html.jsp - ace_mode: jsp - -HTML: - type: markup - tm_scope: text.html.basic - ace_mode: html - color: "#e44b23" - aliases: - - xhtml - extensions: - - .html - - .htm - - .html.hl - - .st - - .xht - - .xhtml - -HTML+Django: - type: markup - tm_scope: text.html.django - group: HTML - extensions: - - .mustache - - .jinja - aliases: - - html+django/jinja - - html+jinja - - htmldjango - ace_mode: django - -HTML+ERB: - type: markup - tm_scope: text.html.erb - group: HTML - aliases: - - erb - extensions: - - .erb - - .erb.deface - ace_mode: html_ruby - -HTML+PHP: - type: markup - tm_scope: text.html.php - group: HTML - extensions: - - .phtml - ace_mode: php - -HTTP: - type: data - extensions: - - .http - tm_scope: source.httpspec - ace_mode: text - -Hack: - type: programming - ace_mode: php - extensions: - - .hh - - .php - tm_scope: text.html.php - -Haml: - group: HTML - type: markup - extensions: - - .haml - - .haml.deface - ace_mode: haml - -Handlebars: - type: markup - color: "#01a9d6" - aliases: - - hbs - - htmlbars - extensions: - - .handlebars - - .hbs - tm_scope: text.html.handlebars - ace_mode: handlebars - -Harbour: - type: programming - color: "#0e60e3" - extensions: - - .hb - tm_scope: none - ace_mode: text - -Haskell: - type: programming - color: "#29b544" - extensions: - - .hs - - .hsc - ace_mode: haskell - -Haxe: - type: programming - ace_mode: haxe - color: "#f7941e" - extensions: - - .hx - - .hxsl - tm_scope: source.haxe.2 - -Hy: - type: programming - ace_mode: text - color: "#7790B2" - extensions: - - .hy - aliases: - - hylang - tm_scope: source.hy - -HyPhy: - type: programming - ace_mode: text - extensions: - - .bf - tm_scope: none - -IDL: - type: programming - color: "#a3522f" - extensions: - - .pro - - .dlm - ace_mode: text - -IGOR Pro: - type: programming - extensions: - - .ipf - aliases: - - igor - - igorpro - tm_scope: none - ace_mode: text - -INI: - type: data - extensions: - - .ini - - .cfg - - .prefs - - .pro - - .properties - tm_scope: source.ini - aliases: - - dosini - ace_mode: ini - -IRC log: - type: data - search_term: irc - aliases: - - irc - - irc logs - extensions: - - .irclog - - .weechatlog - tm_scope: none - ace_mode: text - -Idris: - type: programming - extensions: - - .idr - - .lidr - ace_mode: text - -Inform 7: - type: programming - wrap: true - extensions: - - .ni - - .i7x - tm_scope: source.Inform7 - aliases: - - i7 - - inform7 - ace_mode: text - -Inno Setup: - type: programming - extensions: - - .iss - tm_scope: source.inno - ace_mode: text - -Io: - type: programming - color: "#a9188d" - extensions: - - .io - ace_mode: io - -Ioke: - type: programming - color: "#078193" - extensions: - - .ik - interpreters: - - ioke - ace_mode: text - -Isabelle: - type: programming - color: "#FEFE00" - extensions: - - .thy - tm_scope: source.isabelle.theory - ace_mode: text - -J: - type: programming - color: "#9EEDFF" - extensions: - - .ijs - tm_scope: source.j - ace_mode: text - -JFlex: - type: programming - color: "#DBCA00" - group: Lex - extensions: - - .flex - - .jflex - tm_scope: source.jflex - ace_mode: text - -JSON: - type: data - tm_scope: source.json - group: JavaScript - ace_mode: json - searchable: false - extensions: - - .json - - .lock - filenames: - - .jshintrc - - composer.lock - -JSON5: - type: data - extensions: - - .json5 - tm_scope: source.js - ace_mode: javascript - -JSONLD: - type: data - group: JavaScript - ace_mode: javascript - extensions: - - .jsonld - tm_scope: source.js - -JSONiq: - type: programming - ace_mode: jsoniq - extensions: - - .jq - tm_scope: source.xquery - -Jade: - group: HTML - type: markup - extensions: - - .jade - tm_scope: source.jade - ace_mode: jade - -Jasmin: - type: programming - ace_mode: java - extensions: - - .j - tm_scope: source.jasmin - -Java: - type: programming - ace_mode: java - color: "#b07219" - extensions: - - .java - -Java Server Pages: - type: programming - group: Java - search_term: jsp - aliases: - - jsp - extensions: - - .jsp - tm_scope: text.html.jsp - ace_mode: jsp - -JavaScript: - type: programming - tm_scope: source.js - ace_mode: javascript - color: "#f1e05a" - aliases: - - js - - node - extensions: - - .js - - ._js - - .bones - - .es6 - - .frag - - .gs - - .jake - - .jsb - - .jsfl - - .jsm - - .jss - - .jsx - - .njs - - .pac - - .sjs - - .ssjs - - .sublime-build - - .sublime-commands - - .sublime-completions - - .sublime-keymap - - .sublime-macro - - .sublime-menu - - .sublime-mousemap - - .sublime-project - - .sublime-settings - - .sublime-theme - - .sublime-workspace - - .sublime_metrics - - .sublime_session - - .xsjs - - .xsjslib - filenames: - - Jakefile - interpreters: - - node - -Julia: - type: programming - extensions: - - .jl - color: "#a270ba" - ace_mode: julia - -KRL: - type: programming - color: "#28431f" - extensions: - - .krl - tm_scope: none - ace_mode: text - -KiCad: - type: programming - extensions: - - .sch - tm_scope: none - ace_mode: text - -Kit: - type: markup - ace_mode: html - extensions: - - .kit - tm_scope: text.html.basic - -Kotlin: - type: programming - color: "#EA4DFA" - extensions: - - .kt - - .ktm - - .kts - tm_scope: source.Kotlin - ace_mode: text - -LFE: - type: programming - extensions: - - .lfe - color: "#004200" - group: Erlang - tm_scope: source.lisp - ace_mode: lisp - -LLVM: - type: programming - extensions: - - .ll - ace_mode: text - -LOLCODE: - type: programming - extensions: - - .lol - color: "#cc9900" - tm_scope: none - ace_mode: text - -LSL: - type: programming - ace_mode: lsl - extensions: - - .lsl - interpreters: - - lsl - color: '#3d9970' - -LabVIEW: - type: programming - extensions: - - .lvproj - tm_scope: none - ace_mode: text - -Lasso: - type: programming - color: "#999999" - extensions: - - .lasso - - .las - - .lasso8 - - .lasso9 - - .ldml - tm_scope: file.lasso - aliases: - - lassoscript - ace_mode: text - -Latte: - type: markup - color: "#A8FF97" - group: HTML - extensions: - - .latte - tm_scope: text.html.smarty - ace_mode: smarty - -Lean: - type: programming - extensions: - - .lean - - .hlean - ace_mode: lean - -Less: - type: markup - group: CSS - extensions: - - .less - tm_scope: source.css.less - ace_mode: less - -Lex: - type: programming - color: "#DBCA00" - aliases: - - flex - extensions: - - .l - - .lex - tm_scope: none - ace_mode: text - -LilyPond: - type: programming - extensions: - - .ly - - .ily - ace_mode: text - -Limbo: - type: programming - extensions: - - .b - - .m - tm_scope: none - ace_mode: text - -Linker Script: - type: data - extensions: - - .ld - - .lds - filenames: - - ld.script - tm_scope: none - ace_mode: text - -Liquid: - type: markup - extensions: - - .liquid - tm_scope: text.html.liquid - ace_mode: liquid - -Literate Agda: - type: programming - group: Agda - extensions: - - .lagda - tm_scope: none - ace_mode: text - -Literate CoffeeScript: - type: programming - tm_scope: source.litcoffee - group: CoffeeScript - ace_mode: markdown - wrap: true - search_term: litcoffee - aliases: - - litcoffee - extensions: - - .litcoffee - ace_mode: text - -Literate Haskell: - type: programming - group: Haskell - search_term: lhs - aliases: - - lhaskell - - lhs - extensions: - - .lhs - tm_scope: text.tex.latex.haskell - ace_mode: text - -LiveScript: - type: programming - color: "#499886" - aliases: - - live-script - - ls - extensions: - - .ls - - ._ls - filenames: - - Slakefile - ace_mode: livescript - -Logos: - type: programming - extensions: - - .xm - - .x - - .xi - ace_mode: text - -Logtalk: - type: programming - extensions: - - .lgt - - .logtalk - ace_mode: text - -LookML: - type: programming - ace_mode: yaml - color: "#652B81" - extensions: - - .lookml - tm_scope: source.yaml - -LoomScript: - type: programming - extensions: - - .ls - tm_scope: source.loomscript - ace_mode: text - -Lua: - type: programming - ace_mode: lua - color: "#000080" - extensions: - - .lua - - .fcgi - - .nse - - .pd_lua - - .rbxs - - .wlua - interpreters: - - lua - -M: - type: programming - aliases: - - mumps - extensions: - - .mumps - - .m - tm_scope: source.lisp - ace_mode: lisp - -MTML: - type: markup - color: "#b7e1f4" - extensions: - - .mtml - tm_scope: text.html.basic - ace_mode: html - -MUF: - type: programming - group: Forth - extensions: - - .muf - - .m - tm_scope: none - ace_mode: forth - -Makefile: - type: programming - color: "#427819" - aliases: - - bsdmake - - make - - mf - extensions: - - .mak - - .d - - .mk - filenames: - - GNUmakefile - - Kbuild - - Makefile - - makefile - interpreters: - - make - ace_mode: makefile - -Mako: - type: programming - extensions: - - .mako - - .mao - tm_scope: text.html.mako - ace_mode: text - -Markdown: - type: prose - ace_mode: markdown - wrap: true - extensions: - - .md - - .markdown - - .mkd - - .mkdn - - .mkdown - - .ron - tm_scope: source.gfm - -Mask: - type: markup - color: "#f97732" - ace_mode: mask - extensions: - - .mask - tm_scope: source.mask - -Mathematica: - type: programming - extensions: - - .mathematica - - .cdf - - .m - - .ma - - .nb - - .nbp - - .wl - - .wlt - aliases: - - mma - ace_mode: text - -Matlab: - type: programming - color: "#bb92ac" - extensions: - - .matlab - - .m - ace_mode: matlab - -Maven POM: - type: data - tm_scope: text.xml.pom - filenames: - - pom.xml - ace_mode: xml - -Max: - type: programming - color: "#c4a79c" - aliases: - - max/msp - - maxmsp - search_term: max/msp - extensions: - - .maxpat - - .maxhelp - - .maxproj - - .mxt - - .pat - tm_scope: source.json - ace_mode: json - -MediaWiki: - type: prose - wrap: true - extensions: - - .mediawiki - tm_scope: text.html.mediawiki - ace_mode: text - -Mercury: - type: programming - color: "#ff2b2b" - ace_mode: prolog - interpreters: - - mmi - extensions: - - .m - - .moo - tm_scope: source.mercury - ace_mode: prolog - -MiniD: # Legacy - type: programming - searchable: false - extensions: - - .minid # Dummy extension - tm_scope: none - ace_mode: text - -Mirah: - type: programming - search_term: mirah - color: "#c7a938" - extensions: - - .druby - - .duby - - .mir - - .mirah - tm_scope: source.ruby - ace_mode: ruby - -Modelica: - type: programming - extensions: - - .mo - tm_scope: source.modelica - ace_mode: text - -Module Management System: - type: programming - extensions: - - .mms - - .mmk - filenames: - - descrip.mmk - - descrip.mms - tm_scope: none - ace_mode: text - -Monkey: - type: programming - extensions: - - .monkey - ace_mode: text - -Moocode: - type: programming - extensions: - - .moo - tm_scope: none - ace_mode: text - -MoonScript: - type: programming - extensions: - - .moon - interpreters: - - moon - ace_mode: text - -Myghty: - type: programming - extensions: - - .myt - tm_scope: none - ace_mode: text - -NL: - type: data - extensions: - - .nl - tm_scope: none - ace_mode: text - -NSIS: - type: programming - extensions: - - .nsi - - .nsh - ace_mode: text - -Nemerle: - type: programming - color: "#3d3c6e" - extensions: - - .n - ace_mode: text - -NetLinx: - type: programming - color: "#0aa0ff" - extensions: - - .axs - - .axi - tm_scope: source.netlinx - ace_mode: text - -NetLinx+ERB: - type: programming - color: "#747faa" - extensions: - - .axs.erb - - .axi.erb - tm_scope: source.netlinx.erb - ace_mode: text - -NetLogo: - type: programming - color: "#ff6375" - extensions: - - .nlogo - tm_scope: source.lisp - ace_mode: lisp - -NewLisp: - type: programming - lexer: NewLisp - color: "#87AED7" - extensions: - - .nl - - .lisp - - .lsp - interpreters: - - newlisp - tm_scope: source.lisp - ace_mode: lisp - -Nginx: - type: markup - extensions: - - .nginxconf - - .vhost - filenames: - - nginx.conf - tm_scope: source.nginx - aliases: - - nginx configuration file - ace_mode: text - -Nimrod: - type: programming - color: "#37775b" - extensions: - - .nim - - .nimrod - ace_mode: text - tm_scope: source.nim - -Ninja: - type: data - tm_scope: source.ninja - extensions: - - .ninja - ace_mode: text - -Nit: - type: programming - color: "#009917" - extensions: - - .nit - tm_scope: source.nit - ace_mode: text - -Nix: - type: programming - color: "#7e7eff" - extensions: - - .nix - aliases: - - nixos - tm_scope: source.nix - ace_mode: nix - -Nu: - type: programming - color: "#c9df40" - aliases: - - nush - extensions: - - .nu - filenames: - - Nukefile - tm_scope: source.scheme - ace_mode: scheme - interpreters: - - nush - -NumPy: - type: programming - group: Python - extensions: - - .numpy - - .numpyw - - .numsc - tm_scope: none - ace_mode: text - -OCaml: - type: programming - ace_mode: ocaml - color: "#3be133" - extensions: - - .ml - - .eliom - - .eliomi - - .ml4 - - .mli - - .mll - - .mly - interpreters: - - ocaml - - ocamlrun - tm_scope: source.ocaml - -ObjDump: - type: data - extensions: - - .objdump - tm_scope: objdump.x86asm - ace_mode: assembly_x86 - -Objective-C: - type: programming - tm_scope: source.objc - color: "#438eff" - aliases: - - obj-c - - objc - - objectivec - extensions: - - .m - - .h - ace_mode: objectivec - -Objective-C++: - type: programming - tm_scope: source.objc++ - color: "#6866fb" - aliases: - - obj-c++ - - objc++ - - objectivec++ - extensions: - - .mm - ace_mode: objectivec - -Objective-J: - type: programming - color: "#ff0c5a" - aliases: - - obj-j - - objectivej - - objj - extensions: - - .j - - .sj - tm_scope: source.js.objj - ace_mode: text - -Omgrofl: - type: programming - extensions: - - .omgrofl - color: "#cabbff" - tm_scope: none - ace_mode: text - -Opa: - type: programming - extensions: - - .opa - ace_mode: text - -Opal: - type: programming - color: "#f7ede0" - extensions: - - .opal - tm_scope: source.opal - ace_mode: text - -OpenCL: - type: programming - group: C - extensions: - - .cl - - .opencl - tm_scope: source.c - ace_mode: c_cpp - -OpenEdge ABL: - type: programming - aliases: - - progress - - openedge - - abl - extensions: - - .p - - .cls - tm_scope: source.abl - ace_mode: text - -OpenSCAD: - type: programming - extensions: - - .scad - tm_scope: source.scad - ace_mode: scad - -Org: - type: prose - wrap: true - extensions: - - .org - tm_scope: none - ace_mode: text - -Ox: - type: programming - extensions: - - .ox - - .oxh - - .oxo - tm_scope: source.ox - ace_mode: text - -Oxygene: - type: programming - color: "#cdd0e3" - extensions: - - .oxygene - tm_scope: none - ace_mode: text - -Oz: - type: programming - color: "#fab738" - extensions: - - .oz - tm_scope: source.oz - ace_mode: text - -PAWN: - type: programming - color: "#dbb284" - extensions: - - .pwn - tm_scope: source.c++ - ace_mode: c_cpp - -PHP: - type: programming - tm_scope: text.html.php - ace_mode: php - color: "#4F5D95" - extensions: - - .php - - .aw - - .ctp - - .fcgi - - .php3 - - .php4 - - .php5 - - .phpt - filenames: - - Phakefile - interpreters: - - php - aliases: - - inc - -#Oracle -PLSQL: - type: programming - ace_mode: sql - tm_scope: source.plsql.oracle - extensions: - - .pls - - .pkb - - .pks - - .plb - - .plsql - - .sql - -#Postgres -PLpgSQL: - type: programming - ace_mode: pgsql - tm_scope: source.sql - extensions: - - .sql - -Pan: - type: programming - color: '#cc0000' - extensions: - - .pan - tm_scope: none - ace_mode: text - -Papyrus: - type: programming - color: "#6600cc" - extensions: - - .psc - tm_scope: source.papyrus - ace_mode: text - -Parrot: - type: programming - color: "#f3ca0a" - extensions: - - .parrot # Dummy extension - tm_scope: none - ace_mode: text - -Parrot Assembly: - group: Parrot - type: programming - aliases: - - pasm - extensions: - - .pasm - interpreters: - - parrot - tm_scope: none - ace_mode: text - -Parrot Internal Representation: - group: Parrot - tm_scope: source.parrot.pir - type: programming - aliases: - - pir - extensions: - - .pir - interpreters: - - parrot - ace_mode: text - -Pascal: - type: programming - color: "#b0ce4e" - extensions: - - .pas - - .dfm - - .dpr - - .lpr - - .pp - ace_mode: pascal - -Perl: - type: programming - tm_scope: source.perl - ace_mode: perl - color: "#0298c3" - extensions: - - .pl - - .al - - .cgi - - .fcgi - - .perl - - .ph - - .plx - - .pm - - .pod - - .psgi - - .t - interpreters: - - perl - -Perl6: - type: programming - color: "#0000fb" - extensions: - - .6pl - - .6pm - - .nqp - - .p6 - - .p6l - - .p6m - - .pl - - .pl6 - - .pm - - .pm6 - - .t - filenames: - - Rexfile - interpreters: - - perl6 - tm_scope: source.perl.6 - ace_mode: perl - -PigLatin: - type: programming - color: "#fcd7de" - extensions: - - .pig - tm_scope: source.pig_latin - ace_mode: text - -Pike: - type: programming - color: "#005390" - extensions: - - .pike - - .pmod - interpreters: - - pike - ace_mode: text - -Pod: - type: prose - ace_mode: perl - wrap: true - extensions: - - .pod - tm_scope: none - -PogoScript: - type: programming - color: "#d80074" - extensions: - - .pogo - tm_scope: source.pogoscript - ace_mode: text - -PostScript: - type: markup - extensions: - - .ps - - .eps - tm_scope: source.postscript - aliases: - - postscr - ace_mode: text - -PowerShell: - type: programming - ace_mode: powershell - aliases: - - posh - extensions: - - .ps1 - - .psd1 - - .psm1 - -Processing: - type: programming - color: "#0096D8" - extensions: - - .pde - ace_mode: text - -Prolog: - type: programming - color: "#74283c" - extensions: - - .pl - - .ecl - - .pro - - .prolog - interpreters: - - swipl - ace_mode: prolog - -Propeller Spin: - type: programming - color: "#7fa2a7" - extensions: - - .spin - tm_scope: source.spin - ace_mode: text - -Protocol Buffer: - type: markup - aliases: - - protobuf - - Protocol Buffers - extensions: - - .proto - tm_scope: source.protobuf - ace_mode: protobuf - -Public Key: - type: data - extensions: - - .asc - - .pub - tm_scope: none - ace_mode: text - -Puppet: - type: programming - color: "#332A77" - extensions: - - .pp - filenames: - - Modulefile - ace_mode: text - -Pure Data: - type: programming - color: "#91de79" - extensions: - - .pd - tm_scope: none - ace_mode: text - -PureBasic: - type: programming - color: "#5a6986" - extensions: - - .pb - - .pbi - tm_scope: none - ace_mode: text - -PureScript: - type: programming - color: "#1D222D" - extensions: - - .purs - tm_scope: source.haskell - ace_mode: haskell - -Python: - type: programming - ace_mode: python - color: "#3572A5" - extensions: - - .py - - .cgi - - .fcgi - - .gyp - - .lmi - - .pyde - - .pyp - - .pyt - - .pyw - - .tac - - .wsgi - - .xpy - filenames: - - BUILD - - SConscript - - SConstruct - - Snakefile - - wscript - interpreters: - - python - - python2 - - python3 - aliases: - - rusthon - -Python traceback: - type: data - group: Python - searchable: false - extensions: - - .pytb - tm_scope: text.python.traceback - ace_mode: text - -QML: - type: programming - color: "#44a51c" - extensions: - - .qml - - .qbs - tm_scope: source.qml - ace_mode: text - -QMake: - type: programming - extensions: - - .pro - - .pri - interpreters: - - qmake - ace_mode: text - -R: - type: programming - color: "#198ce7" - aliases: - - R - - Rscript - - splus - extensions: - - .r - - .rd - - .rsx - filenames: - - .Rprofile - interpreters: - - Rscript - ace_mode: r - -RAML: - type: data - ace_mode: yaml - tm_scope: source.yaml - color: "#77d9fb" - extensions: - - .raml - -RDoc: - type: prose - ace_mode: rdoc - wrap: true - extensions: - - .rdoc - tm_scope: text.rdoc - -REALbasic: - type: programming - extensions: - - .rbbas - - .rbfrm - - .rbmnu - - .rbres - - .rbtbar - - .rbuistate - tm_scope: source.vbnet - ace_mode: text - -RHTML: - type: markup - group: HTML - extensions: - - .rhtml - tm_scope: text.html.erb - aliases: - - html+ruby - ace_mode: rhtml - -RMarkdown: - type: prose - wrap: true - ace_mode: markdown - extensions: - - .rmd - tm_scope: none - -Racket: - type: programming - color: "#22228f" - extensions: - - .rkt - - .rktd - - .rktl - - .scrbl - interpreters: - - racket - tm_scope: source.racket - ace_mode: lisp - -Ragel in Ruby Host: - type: programming - color: "#e17600" - extensions: - - .rl - aliases: - - ragel-rb - - ragel-ruby - tm_scope: none - ace_mode: text - -Raw token data: - type: data - search_term: raw - aliases: - - raw - extensions: - - .raw - tm_scope: none - ace_mode: text - -Rebol: - type: programming - color: "#358a5b" - extensions: - - .reb - - .r - - .r2 - - .r3 - - .rebol - ace_mode: text - tm_scope: source.rebol - -Red: - type: programming - color: "#ee0000" - extensions: - - .red - - .reds - aliases: - - red/system - tm_scope: source.red - ace_mode: text - -Redcode: - type: programming - extensions: - - .cw - tm_scope: none - ace_mode: text - -RenderScript: - type: programming - extensions: - - .rs - - .rsh - tm_scope: none - ace_mode: text - -RobotFramework: - type: programming - extensions: - - .robot - # - .txt - tm_scope: text.robot - ace_mode: text - -Rouge: - type: programming - ace_mode: clojure - color: "#cc0088" - extensions: - - .rg - tm_scope: source.clojure - -Ruby: - type: programming - ace_mode: ruby - color: "#701516" - aliases: - - jruby - - macruby - - rake - - rb - - rbx - extensions: - - .rb - - .builder - - .fcgi - - .gemspec - - .god - - .irbrc - - .jbuilder - - .mspec - - .pluginspec - - .podspec - - .rabl - - .rake - - .rbuild - - .rbw - - .rbx - - .ru - - .ruby - - .thor - - .watchr - interpreters: - - ruby - - macruby - - rake - - jruby - - rbx - filenames: - - .pryrc - - Appraisals - - Berksfile - - Buildfile - - Deliverfile - - Fastfile - - Gemfile - - Gemfile.lock - - Guardfile - - Jarfile - - Mavenfile - - Podfile - - Puppetfile - - Snapfile - - Thorfile - - Vagrantfile - - buildfile - -Rust: - type: programming - color: "#dea584" - extensions: - - .rs - ace_mode: rust - -SAS: - type: programming - color: "#B34936" - extensions: - - .sas - tm_scope: source.sas - ace_mode: text - -SCSS: - type: markup - tm_scope: source.scss - group: CSS - ace_mode: scss - extensions: - - .scss - -SPARQL: - type: data - tm_scope: source.sparql - ace_mode: text - extensions: - - .sparql - - .rq - -SQF: - type: programming - color: "#3F3F3F" - extensions: - - .sqf - - .hqf - tm_scope: source.sqf - ace_mode: text - -SQL: - type: data - tm_scope: source.sql - ace_mode: sql - extensions: - - .sql - - .cql - - .ddl - - .prc - - .tab - - .udf - - .viw - -#IBM DB2 -SQLPL: - type: programming - ace_mode: sql - tm_scope: source.sql - extensions: - - .sql - - .db2 - -STON: - type: data - group: Smalltalk - extensions: - - .ston - tm_scope: source.smalltalk - ace_mode: text - -SVG: - type: data - extensions: - - .svg - tm_scope: text.xml - ace_mode: xml - -Sage: - type: programming - group: Python - extensions: - - .sage - - .sagews - tm_scope: source.python - ace_mode: python - -SaltStack: - type: programming - color: "#646464" - aliases: - - saltstate - - salt - extensions: - - .sls - tm_scope: source.yaml.salt - ace_mode: yaml - -Sass: - type: markup - tm_scope: source.sass - group: CSS - extensions: - - .sass - ace_mode: sass - -Scala: - type: programming - ace_mode: scala - color: "#7dd3b0" - extensions: - - .scala - - .sbt - - .sc - interpreters: - - scala - -Scaml: - group: HTML - type: markup - extensions: - - .scaml - tm_scope: source.scaml - ace_mode: text - -Scheme: - type: programming - color: "#1e4aec" - extensions: - - .scm - - .sld - - .sls - - .sps - - .ss - interpreters: - - guile - - bigloo - - chicken - ace_mode: scheme - -Scilab: - type: programming - extensions: - - .sci - - .sce - - .tst - ace_mode: text - -Self: - type: programming - color: "#0579aa" - extensions: - - .self - tm_scope: none - ace_mode: text - -Shell: - type: programming - search_term: bash - color: "#89e051" - aliases: - - sh - - bash - - zsh - extensions: - - .sh - - .bash - - .bats - - .cgi - - .command - - .fcgi - - .ksh - - .tmux - - .tool - - .zsh - interpreters: - - bash - - rc - - sh - - zsh - ace_mode: sh - -ShellSession: - type: programming - extensions: - - .sh-session - aliases: - - bash session - - console - tm_scope: text.shell-session - ace_mode: sh - -Shen: - type: programming - color: "#120F14" - extensions: - - .shen - tm_scope: none - ace_mode: text - -Slash: - type: programming - color: "#007eff" - extensions: - - .sl - tm_scope: text.html.slash - ace_mode: text - -Slim: - group: HTML - type: markup - color: "#ff8f77" - extensions: - - .slim - ace_mode: text - -Smali: - type: programming - extensions: - - .smali - ace_mode: text - tm_scope: source.smali - -Smalltalk: - type: programming - color: "#596706" - extensions: - - .st - - .cs - aliases: - - squeak - ace_mode: text - -Smarty: - type: programming - extensions: - - .tpl - ace_mode: smarty - tm_scope: text.html.smarty - -SourcePawn: - type: programming - color: "#5c7611" - aliases: - - sourcemod - extensions: - - .sp - - .sma - tm_scope: source.sp - ace_mode: text - -Squirrel: - type: programming - color: "#800000" - extensions: - - .nut - tm_scope: source.c++ - ace_mode: c_cpp - -Standard ML: - type: programming - color: "#dc566d" - aliases: - - sml - extensions: - - .ML - - .fun - - .sig - - .sml - tm_scope: source.ml - ace_mode: text - -Stata: - type: programming - extensions: - - .do - - .ado - - .doh - - .ihlp - - .mata - - .matah - - .sthlp - ace_mode: text - -Stylus: - type: markup - group: CSS - extensions: - - .styl - tm_scope: source.stylus - ace_mode: stylus - -SuperCollider: - type: programming - color: "#46390b" - extensions: - - .scd - - .sc - tm_scope: none - ace_mode: text - -Swift: - type: programming - color: "#ffac45" - extensions: - - .swift - ace_mode: text - -SystemVerilog: - type: programming - color: "#DAE1C2" - extensions: - - .sv - - .svh - - .vh - ace_mode: verilog - -TOML: - type: data - extensions: - - .toml - tm_scope: source.toml - ace_mode: toml - -TXL: - type: programming - extensions: - - .txl - tm_scope: source.txl - ace_mode: text - -Tcl: - type: programming - color: "#e4cc98" - extensions: - - .tcl - - .adp - - .tm - interpreters: - - tclsh - - wish - ace_mode: tcl - -Tcsh: - type: programming - group: Shell - extensions: - - .tcsh - - .csh - tm_scope: source.shell - ace_mode: sh - -TeX: - type: markup - color: "#3D6117" - ace_mode: tex - wrap: true - aliases: - - latex - extensions: - - .tex - - .aux - - .bbx - - .bib - - .cbx - - .cls - - .dtx - - .ins - - .lbx - - .ltx - - .mkii - - .mkiv - - .mkvi - - .sty - - .toc - -Tea: - type: markup - extensions: - - .tea - tm_scope: source.tea - ace_mode: text - -Text: - type: prose - wrap: true - aliases: - - fundamental - extensions: - - .txt - - .fr - tm_scope: none - ace_mode: text - -Textile: - type: prose - ace_mode: textile - wrap: true - extensions: - - .textile - tm_scope: none - -Thrift: - type: programming - tm_scope: source.thrift - extensions: - - .thrift - ace_mode: text - -Turing: - type: programming - color: "#45f715" - extensions: - - .t - - .tu - tm_scope: none - ace_mode: text - -Turtle: - type: data - extensions: - - .ttl - tm_scope: source.turtle - ace_mode: text - -Twig: - type: markup - group: HTML - extensions: - - .twig - tm_scope: text.html.twig - ace_mode: twig - -TypeScript: - type: programming - color: "#2b7489" - aliases: - - ts - extensions: - - .ts - tm_scope: source.ts - ace_mode: typescript - -Unified Parallel C: - type: programming - group: C - ace_mode: c_cpp - color: "#4e3617" - extensions: - - .upc - tm_scope: source.c - -Unity3D Asset: - type: data - ace_mode: yaml - color: "#ab69a1" - extensions: - - .anim - - .asset - - .mat - - .meta - - .prefab - - .unity - tm_scope: source.yaml - -UnrealScript: - type: programming - color: "#a54c4d" - extensions: - - .uc - tm_scope: source.java - ace_mode: java - -VCL: - group: Perl - type: programming - extensions: - - .vcl - tm_scope: source.varnish.vcl - ace_mode: text - -VHDL: - type: programming - color: "#adb2cb" - extensions: - - .vhdl - - .vhd - - .vhf - - .vhi - - .vho - - .vhs - - .vht - - .vhw - ace_mode: vhdl - -Vala: - type: programming - color: "#fbe5cd" - extensions: - - .vala - - .vapi - ace_mode: vala - -Verilog: - type: programming - color: "#b2b7f8" - extensions: - - .v - - .veo - ace_mode: verilog - -VimL: - type: programming - color: "#199f4b" - search_term: vim - aliases: - - vim - - nvim - extensions: - - .vim - filenames: - - .nvimrc - - .vimrc - - _vimrc - - gvimrc - - nvimrc - - vimrc - ace_mode: text - -Visual Basic: - type: programming - color: "#945db7" - extensions: - - .vb - - .bas - - .cls - - .frm - - .frx - - .vba - - .vbhtml - - .vbs - tm_scope: source.vbnet - aliases: - - vb.net - - vbnet - ace_mode: text - -Volt: - type: programming - color: "#1F1F1F" - extensions: - - .volt - tm_scope: source.d - ace_mode: d - -Web Ontology Language: - type: markup - color: "#9cc9dd" - extensions: - - .owl - tm_scope: text.xml - ace_mode: xml - -WebIDL: - type: programming - extensions: - - .webidl - tm_scope: source.webidl - ace_mode: text - -XC: - type: programming - color: "#99DA07" - extensions: - - .xc - tm_scope: source.xc - ace_mode: c_cpp - -XML: - type: data - ace_mode: xml - aliases: - - rss - - xsd - - wsdl - extensions: - - .xml - - .ant - - .axml - - .ccxml - - .clixml - - .cproject - - .csproj - - .ct - - .dita - - .ditamap - - .ditaval - - .dll.config - - .filters - - .fsproj - - .fxml - - .glade - - .gml - - .grxml - - .iml - - .ivy - - .jelly - - .kml - - .launch - - .mdpolicy - - .mm - - .mxml - - .nproj - - .nuspec - - .odd - - .osm - - .plist - - .pluginspec - - .ps1xml - - .psc1 - - .pt - - .rdf - - .rss - - .scxml - - .srdf - - .storyboard - - .stTheme - - .sublime-snippet - - .targets - - .tmCommand - - .tml - - .tmLanguage - - .tmPreferences - - .tmSnippet - - .tmTheme - - .ts - - .ui - - .urdf - - .vbproj - - .vcxproj - - .vxml - - .wsdl - - .wsf - - .wxi - - .wxl - - .wxs - - .x3d - - .xacro - - .xaml - - .xib - - .xlf - - .xliff - - .xmi - - .xml.dist - - .xsd - - .xul - - .zcml - filenames: - - .classpath - - .project - - Settings.StyleCop - - Web.Debug.config - - Web.Release.config - - Web.config - - packages.config - -XPages: - type: programming - extensions: - - .xsp-config - - .xsp.metadata - tm_scope: none - ace_mode: xml - -XProc: - type: programming - extensions: - - .xpl - - .xproc - tm_scope: text.xml - ace_mode: xml - -XQuery: - type: programming - color: "#5232e7" - extensions: - - .xquery - - .xq - - .xql - - .xqm - - .xqy - ace_mode: xquery - -XS: - type: programming - extensions: - - .xs - tm_scope: source.c - ace_mode: c_cpp - -XSLT: - type: programming - aliases: - - xsl - extensions: - - .xslt - - .xsl - tm_scope: text.xml.xsl - ace_mode: xml - -Xojo: - type: programming - extensions: - - .xojo_code - - .xojo_menu - - .xojo_report - - .xojo_script - - .xojo_toolbar - - .xojo_window - tm_scope: source.vbnet - ace_mode: text - -Xtend: - type: programming - extensions: - - .xtend - ace_mode: text - -YAML: - type: data - tm_scope: source.yaml - aliases: - - yml - extensions: - - .yml - - .reek - - .rviz - - .yaml - ace_mode: yaml - -Yacc: - type: programming - extensions: - - .y - - .yacc - - .yy - tm_scope: source.bison - ace_mode: text - -Zephir: - type: programming - color: "#118f9e" - extensions: - - .zep - tm_scope: source.php.zephir - ace_mode: php - -Zimpl: - type: programming - extensions: - - .zimpl - - .zmpl - - .zpl - tm_scope: none - ace_mode: text - -desktop: - type: data - extensions: - - .desktop - - .desktop.in - tm_scope: source.desktop - ace_mode: text - -eC: - type: programming - color: "#913960" - search_term: ec - extensions: - - .ec - - .eh - tm_scope: source.c.ec - ace_mode: text - -edn: - type: data - ace_mode: clojure - color: "#db5855" - extensions: - - .edn - tm_scope: source.clojure - -fish: - type: programming - group: Shell - extensions: - - .fish - tm_scope: source.fish - ace_mode: text - -mupad: - type: programming - extensions: - - .mu - ace_mode: text - -nesC: - type: programming - color: "#94B0C7" - extensions: - - .nc - ace_mode: text - -ooc: - type: programming - color: "#b0b77e" - extensions: - - .ooc - ace_mode: text - -reStructuredText: - type: prose - wrap: true - search_term: rst - aliases: - - rst - extensions: - - .rst - - .rest - ace_mode: text - -wisp: - type: programming - ace_mode: clojure - color: "#7582D1" - extensions: - - .wisp - tm_scope: source.clojure - -xBase: - type: programming - color: "#403a40" - extensions: - - .prg - tm_scope: none - ace_mode: text diff --git a/samples/XPages/UnpMain.xsp b/samples/XPages/UnpMain.xsp deleted file mode 100644 index e0eb6438..00000000 --- a/samples/XPages/UnpMain.xsp +++ /dev/null @@ -1,83 +0,0 @@ - - - -
-
- - -
- - - -
-
-
-
-

- Closed sales by team member - $000s - (December) -

-
-
-
-
-
- -
- -
- -
-
-
-
- - - - - -
\ No newline at end of file diff --git a/samples/XPages/demoServerRESTconsumption.xsp b/samples/XPages/demoServerRESTconsumption.xsp deleted file mode 100644 index 3334c777..00000000 --- a/samples/XPages/demoServerRESTconsumption.xsp +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/XPages/house.form b/samples/XPages/house.form deleted file mode 100644 index 7c47b41c..00000000 --- a/samples/XPages/house.form +++ /dev/null @@ -1,65 +0,0 @@ - -
- -20141225T155631,49-06 -20150306T091952,06-08 -20150306T091952,05-08 -20150306T091952,06-08 -20150305T162153,26-08 -CN=Eric McCormick/O=Eric McCormick -CN=Eric McCormick/O=Eric McCormick - - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - -house
diff --git a/samples/XPages/house.xsp b/samples/XPages/house.xsp deleted file mode 100644 index 3c5a6e13..00000000 --- a/samples/XPages/house.xsp +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -
-
-
-
-

- -

-
-
- - - - -
- - -
-
- - - - - - - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- - - - - - - - - - - - - - - - - -
-
-
-
-
-
-
\ No newline at end of file diff --git a/samples/XPages/houses.view b/samples/XPages/houses.view deleted file mode 100644 index 354c3aa0..00000000 --- a/samples/XPages/houses.view +++ /dev/null @@ -1,54 +0,0 @@ - - - -20141225T155658,43-06 -20150316T150218,60-07 -20150316T150218,59-07 -20150316T150218,60-07 -20150305T162151,76-08 -CN=Eric McCormick/O=Eric McCormick -CN=Eric McCormick/O=Eric McCormickSELECT Form = "house" - - - - - - - - - - - - - - - - - - - - - - - - -@Text(@DocumentUniqueID) diff --git a/samples/XPages/navbar.xsp b/samples/XPages/navbar.xsp deleted file mode 100755 index c7a5669e..00000000 --- a/samples/XPages/navbar.xsp +++ /dev/null @@ -1,53 +0,0 @@ - - - - \ No newline at end of file diff --git a/samples/XPages/xLogin.xsp b/samples/XPages/xLogin.xsp deleted file mode 100644 index 50afc329..00000000 --- a/samples/XPages/xLogin.xsp +++ /dev/null @@ -1,38 +0,0 @@ - - - - - UserID - Login - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 7563bf43e99828f5ef26e4623ae1902331f42da6 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Mon, 13 Jul 2015 21:28:36 -0500 Subject: [PATCH 570/875] Revert "removed samples" This reverts commit ce8cfed7ff36adcd97a6811d485deb4f6402485a. --- lib/linguist/languages.yml | 3718 ++++++++++++++++++ samples/XPages/UnpMain.xsp | 83 + samples/XPages/demoServerRESTconsumption.xsp | 64 + samples/XPages/house.form | 65 + samples/XPages/house.xsp | 176 + samples/XPages/houses.view | 54 + samples/XPages/navbar.xsp | 53 + samples/XPages/xLogin.xsp | 38 + 8 files changed, 4251 insertions(+) create mode 100644 lib/linguist/languages.yml create mode 100644 samples/XPages/UnpMain.xsp create mode 100644 samples/XPages/demoServerRESTconsumption.xsp create mode 100644 samples/XPages/house.form create mode 100644 samples/XPages/house.xsp create mode 100644 samples/XPages/houses.view create mode 100755 samples/XPages/navbar.xsp create mode 100644 samples/XPages/xLogin.xsp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml new file mode 100644 index 00000000..23b85226 --- /dev/null +++ b/lib/linguist/languages.yml @@ -0,0 +1,3718 @@ +# Defines all Languages known to GitHub. +# +# type - Either data, programming, markup, prose, or nil +# aliases - An Array of additional aliases (implicitly +# includes name.downcase) +# ace_mode - A String name of the Ace Mode used for highlighting whenever +# a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. +# Use "text" if a mode does not exist. +# wrap - Boolean wrap to enable line wrapping (default: false) +# extensions - An Array of associated extensions (the first one is +# considered the primary extension) +# interpreters - An Array of associated interpreters +# searchable - Boolean flag to enable searching (defaults to true) +# search_term - Deprecated: Some languages maybe indexed under a +# different alias. Avoid defining new exceptions. +# color - CSS hex color to represent the language. +# tm_scope - The TextMate scope that represents this programming +# language. This should match one of the scopes listed in +# the grammars.yml file. Use "none" if there is no grammar +# for this language. +# group - Name of the parent language. Languages in a group are counted +# in the statistics as the parent language. +# +# Any additions or modifications (even trivial) should have corresponding +# test change in `test/test_blob.rb`. +# +# Please keep this list alphabetized. Capitalization comes before lower case. + +ABAP: + type: programming + color: "#E8274B" + extensions: + - .abap + ace_mode: abap + +AGS Script: + type: programming + color: "#B9D9FF" + aliases: + - ags + extensions: + - .asc + - .ash + tm_scope: source.c++ + ace_mode: c_cpp + +AMPL: + type: programming + color: "#E6EFBB" + extensions: + - .ampl + tm_scope: source.ampl + ace_mode: text + +ANTLR: + type: programming + color: "#9DC3FF" + extensions: + - .g4 + ace_mode: text + +API Blueprint: + type: markup + color: "#2ACCA8" + ace_mode: markdown + extensions: + - .apib + tm_scope: text.html.markdown.source.gfm.apib + +APL: + type: programming + color: "#5A8164" + extensions: + - .apl + - .dyalog + tm_scope: source.apl + ace_mode: text + +ASP: + type: programming + color: "#6a40fd" + search_term: aspx-vb + tm_scope: text.html.asp + aliases: + - aspx + - aspx-vb + extensions: + - .asp + - .asax + - .ascx + - .ashx + - .asmx + - .aspx + - .axd + ace_mode: text + +ATS: + type: programming + color: "#1ac620" + aliases: + - ats2 + extensions: + - .dats + - .hats + - .sats + tm_scope: source.ats + ace_mode: ocaml + +ActionScript: + type: programming + tm_scope: source.actionscript.3 + color: "#882B0F" + search_term: as3 + aliases: + - actionscript 3 + - actionscript3 + - as3 + extensions: + - .as + ace_mode: actionscript + +Ada: + type: programming + color: "#02f88c" + extensions: + - .adb + - .ada + - .ads + aliases: + - ada95 + - ada2005 + ace_mode: ada + +Agda: + type: programming + color: "#315665" + extensions: + - .agda + ace_mode: text + +Alloy: + type: programming # 'modeling' would be more appropiate + color: "#cc5c24" + extensions: + - .als + ace_mode: text + +Ant Build System: + type: data + tm_scope: text.xml.ant + filenames: + - ant.xml + - build.xml + ace_mode: xml + +ApacheConf: + type: markup + aliases: + - aconf + - apache + extensions: + - .apacheconf + - .vhost + tm_scope: source.apache-config + ace_mode: apache_conf + +Apex: + type: programming + extensions: + - .cls + tm_scope: source.java + ace_mode: java + +AppleScript: + type: programming + aliases: + - osascript + extensions: + - .applescript + - .scpt + interpreters: + - osascript + ace_mode: applescript + +Arc: + type: programming + color: "#aa2afe" + extensions: + - .arc + tm_scope: none + ace_mode: text + +Arduino: + type: programming + color: "#bd79d1" + extensions: + - .ino + tm_scope: source.c++ + ace_mode: c_cpp + +AsciiDoc: + type: prose + ace_mode: asciidoc + wrap: true + extensions: + - .asciidoc + - .adoc + - .asc + tm_scope: text.html.asciidoc + +AspectJ: + type: programming + color: "#a957b0" + extensions: + - .aj + tm_scope: none + ace_mode: text + +Assembly: + type: programming + color: "#6E4C13" + search_term: nasm + aliases: + - nasm + extensions: + - .asm + - .a51 + - .nasm + tm_scope: source.asm.x86 + ace_mode: assembly_x86 + +Augeas: + type: programming + extensions: + - .aug + tm_scope: none + ace_mode: text + +AutoHotkey: + type: programming + color: "#6594b9" + aliases: + - ahk + extensions: + - .ahk + - .ahkl + tm_scope: source.ahk + ace_mode: autohotkey + +AutoIt: + type: programming + color: "#1C3552" + aliases: + - au3 + - AutoIt3 + - AutoItScript + extensions: + - .au3 + tm_scope: source.autoit.3 + ace_mode: autohotkey + +Awk: + type: programming + extensions: + - .awk + - .auk + - .gawk + - .mawk + - .nawk + interpreters: + - awk + - gawk + - mawk + - nawk + ace_mode: text + +Batchfile: + type: programming + search_term: bat + aliases: + - bat + - batch + - dosbatch + - winbatch + extensions: + - .bat + - .cmd + tm_scope: source.dosbatch + ace_mode: batchfile + +Befunge: + type: programming + extensions: + - .befunge + ace_mode: text + +Bison: + type: programming + group: Yacc + tm_scope: source.bison + extensions: + - .bison + ace_mode: text + +BitBake: + type: programming + tm_scope: none + extensions: + - .bb + ace_mode: text + +BlitzBasic: + type: programming + aliases: + - b3d + - blitz3d + - blitzplus + - bplus + extensions: + - .bb + - .decls + tm_scope: source.blitzmax + ace_mode: text + +BlitzMax: + type: programming + color: "#cd6400" + extensions: + - .bmx + aliases: + - bmax + ace_mode: text + +Bluespec: + type: programming + extensions: + - .bsv + tm_scope: source.bsv + ace_mode: verilog + +Boo: + type: programming + color: "#d4bec1" + extensions: + - .boo + ace_mode: text + +Brainfuck: + type: programming + color: "#2F2530" + extensions: + - .b + - .bf + tm_scope: source.bf + ace_mode: text + +Brightscript: + type: programming + extensions: + - .brs + tm_scope: source.brightscript + ace_mode: text + +Bro: + type: programming + extensions: + - .bro + ace_mode: text + +C: + type: programming + color: "#555555" + extensions: + - .c + - .cats + - .h + - .idc + - .w + interpreters: + - tcc + ace_mode: c_cpp + +C#: + type: programming + ace_mode: csharp + tm_scope: source.cs + search_term: csharp + color: "#178600" + aliases: + - csharp + extensions: + - .cs + - .cshtml + - .csx + +C++: + type: programming + ace_mode: c_cpp + search_term: cpp + color: "#f34b7d" + aliases: + - cpp + extensions: + - .cpp + - .c++ + - .cc + - .cp + - .cxx + - .h + - .h++ + - .hh + - .hpp + - .hxx + - .inl + - .ipp + - .tcc + - .tpp + +C-ObjDump: + type: data + extensions: + - .c-objdump + tm_scope: objdump.x86asm + ace_mode: assembly_x86 + +C2hs Haskell: + type: programming + group: Haskell + aliases: + - c2hs + extensions: + - .chs + tm_scope: source.haskell + ace_mode: haskell + +CLIPS: + type: programming + extensions: + - .clp + tm_scope: source.clips + ace_mode: text + +CMake: + type: programming + extensions: + - .cmake + - .cmake.in + filenames: + - CMakeLists.txt + ace_mode: text + +COBOL: + type: programming + extensions: + - .cob + - .cbl + - .ccp + - .cobol + - .cpy + ace_mode: cobol + +CSS: + type: markup + tm_scope: source.css + ace_mode: css + color: "#563d7c" + extensions: + - .css + +Cap'n Proto: + type: programming + tm_scope: source.capnp + extensions: + - .capnp + ace_mode: text + +CartoCSS: + type: programming + aliases: + - Carto + extensions: + - .mss + ace_mode: text + tm_scope: source.css.mss + +Ceylon: + type: programming + extensions: + - .ceylon + ace_mode: text + +Chapel: + type: programming + color: "#8dc63f" + aliases: + - chpl + extensions: + - .chpl + ace_mode: text + +ChucK: + type: programming + extensions: + - .ck + tm_scope: source.java + ace_mode: java + +Cirru: + type: programming + color: "#ccccff" + ace_mode: cirru + extensions: + - .cirru + +Clarion: + type: programming + color: "#db901e" + ace_mode: text + extensions: + - .clw + tm_scope: source.clarion + +Clean: + type: programming + color: "#3F85AF" + extensions: + - .icl + - .dcl + tm_scope: none + ace_mode: text + +Clojure: + type: programming + ace_mode: clojure + color: "#db5855" + extensions: + - .clj + - .boot + - .cl2 + - .cljc + - .cljs + - .cljs.hl + - .cljscm + - .cljx + - .hic + filenames: + - riemann.config + +CoffeeScript: + type: programming + tm_scope: source.coffee + ace_mode: coffee + color: "#244776" + aliases: + - coffee + - coffee-script + extensions: + - .coffee + - ._coffee + - .cjsx + - .cson + - .iced + filenames: + - Cakefile + interpreters: + - coffee + +ColdFusion: + type: programming + group: ColdFusion + ace_mode: coldfusion + color: "#ed2cd6" + search_term: cfm + aliases: + - cfm + - cfml + - coldfusion html + extensions: + - .cfm + - .cfml + tm_scope: text.html.cfm + +ColdFusion CFC: + type: programming + group: ColdFusion + ace_mode: coldfusion + color: "#ed2cd6" + search_term: cfc + aliases: + - cfc + extensions: + - .cfc + tm_scope: source.cfscript + +Common Lisp: + type: programming + tm_scope: source.lisp + color: "#3fb68b" + aliases: + - lisp + extensions: + - .lisp + - .asd + - .cl + - .l + - .lsp + - .ny + - .podsl + interpreters: + - lisp + - sbcl + - ccl + - clisp + - ecl + ace_mode: lisp + +Component Pascal: + type: programming + color: "#b0ce4e" + extensions: + - .cp + - .cps + tm_scope: source.pascal + aliases: + - delphi + - objectpascal + ace_mode: pascal + +Cool: + type: programming + extensions: + - .cl + tm_scope: source.cool + ace_mode: text + +Coq: + type: programming + extensions: + - .coq + - .v + ace_mode: text + +Cpp-ObjDump: + type: data + extensions: + - .cppobjdump + - .c++-objdump + - .c++objdump + - .cpp-objdump + - .cxx-objdump + tm_scope: objdump.x86asm + aliases: + - c++-objdumb + ace_mode: assembly_x86 + +Creole: + type: prose + wrap: true + extensions: + - .creole + tm_scope: text.html.creole + ace_mode: text + +Crystal: + type: programming + color: "#776791" + extensions: + - .cr + ace_mode: ruby + tm_scope: source.ruby + interpreters: + - crystal + +Cucumber: + type: programming + extensions: + - .feature + tm_scope: text.gherkin.feature + aliases: + - gherkin + ace_mode: text + +Cuda: + type: programming + extensions: + - .cu + - .cuh + tm_scope: source.cuda-c++ + ace_mode: c_cpp + +Cycript: + type: programming + extensions: + - .cy + tm_scope: source.js + ace_mode: javascript + +Cython: + type: programming + group: Python + extensions: + - .pyx + - .pxd + - .pxi + aliases: + - pyrex + ace_mode: text + +D: + type: programming + color: "#fcd46d" + extensions: + - .d + - .di + ace_mode: d + +D-ObjDump: + type: data + extensions: + - .d-objdump + tm_scope: objdump.x86asm + ace_mode: assembly_x86 + +DIGITAL Command Language: + type: programming + aliases: + - dcl + extensions: + - .com + tm_scope: none + ace_mode: text + +DM: + type: programming + color: "#447265" + extensions: + - .dm + aliases: + - byond + tm_scope: source.c++ + ace_mode: c_cpp + +DTrace: + type: programming + aliases: + - dtrace-script + extensions: + - .d + interpreters: + - dtrace + tm_scope: source.c + ace_mode: c_cpp + +Darcs Patch: + type: data + search_term: dpatch + aliases: + - dpatch + extensions: + - .darcspatch + - .dpatch + tm_scope: none + ace_mode: text + +Dart: + type: programming + color: "#00B4AB" + extensions: + - .dart + ace_mode: dart + +Diff: + type: data + color: "#88dddd" + extensions: + - .diff + - .patch + aliases: + - udiff + tm_scope: source.diff + ace_mode: diff + +Dockerfile: + type: data + tm_scope: source.dockerfile + extensions: + - .dockerfile + filenames: + - Dockerfile + ace_mode: dockerfile + +Dogescript: + type: programming + color: "#cca760" + extensions: + - .djs + tm_scope: none + ace_mode: text + +Dylan: + type: programming + color: "#6c616e" + extensions: + - .dylan + - .dyl + - .intr + - .lid + ace_mode: text + +E: + type: programming + color: "#ccce35" + extensions: + - .E + tm_scope: none + ace_mode: text + +ECL: + type: programming + color: "#8a1267" + extensions: + - .ecl + - .eclxml + tm_scope: none + ace_mode: text + +Eagle: + type: markup + color: "#814C05" + extensions: + - .sch + - .brd + tm_scope: text.xml + ace_mode: xml + +Ecere Projects: + type: data + group: JavaScript + extensions: + - .epj + tm_scope: source.json + ace_mode: json + +Eiffel: + type: programming + color: "#946d57" + extensions: + - .e + ace_mode: eiffel + +Elixir: + type: programming + color: "#6e4a7e" + extensions: + - .ex + - .exs + ace_mode: elixir + filenames: + - mix.lock + +Elm: + type: programming + color: "#60B5CC" + extensions: + - .elm + tm_scope: source.elm + ace_mode: elm + +Emacs Lisp: + type: programming + tm_scope: source.lisp + color: "#c065db" + aliases: + - elisp + - emacs + filenames: + - .emacs + - .emacs.desktop + extensions: + - .el + - .emacs + - .emacs.desktop + ace_mode: lisp + +EmberScript: + type: programming + color: "#FFF4F3" + extensions: + - .em + - .emberscript + tm_scope: source.coffee + ace_mode: coffee + +Erlang: + type: programming + color: "#B83998" + extensions: + - .erl + - .es + - .escript + - .hrl + filenames: + - rebar.config + - rebar.config.lock + - rebar.lock + ace_mode: erlang + interpreters: + - escript + +F#: + type: programming + color: "#b845fc" + search_term: fsharp + aliases: + - fsharp + extensions: + - .fs + - .fsi + - .fsx + tm_scope: source.fsharp + ace_mode: text + +FLUX: + type: programming + color: "#88ccff" + extensions: + - .fx + - .flux + tm_scope: none + ace_mode: text + +FORTRAN: + type: programming + color: "#4d41b1" + extensions: + - .f90 + - .f + - .f03 + - .f08 + - .f77 + - .f95 + - .for + - .fpp + tm_scope: source.fortran.modern + ace_mode: text + +Factor: + type: programming + color: "#636746" + extensions: + - .factor + filenames: + - .factor-boot-rc + - .factor-rc + ace_mode: text + +Fancy: + type: programming + color: "#7b9db4" + extensions: + - .fy + - .fancypack + filenames: + - Fakefile + ace_mode: text + +Fantom: + type: programming + color: "#dbded5" + extensions: + - .fan + tm_scope: source.fan + ace_mode: text + +Filterscript: + type: programming + group: RenderScript + extensions: + - .fs + tm_scope: none + ace_mode: text + +Formatted: + type: data + extensions: + - .for + tm_scope: none + ace_mode: text + +Forth: + type: programming + color: "#341708" + extensions: + - .fth + - .4th + - .f + - .for + - .forth + - .fr + - .frt + - .fs + ace_mode: forth + +Frege: + type: programming + color: "#00cafe" + extensions: + - .fr + tm_scope: source.haskell + ace_mode: haskell + +G-code: + type: data + extensions: + - .g + - .gco + - .gcode + tm_scope: source.gcode + ace_mode: gcode + +GAMS: + type: programming + extensions: + - .gms + tm_scope: none + ace_mode: text + +GAP: + type: programming + extensions: + - .g + - .gap + - .gd + - .gi + - .tst + tm_scope: source.gap + ace_mode: text + +GAS: + type: programming + group: Assembly + extensions: + - .s + tm_scope: source.asm.x86 + ace_mode: assembly_x86 + +GDScript: + type: programming + extensions: + - .gd + tm_scope: source.gdscript + ace_mode: text + +GLSL: + type: programming + extensions: + - .glsl + - .fp + - .frag + - .frg + - .fs + - .fshader + - .geo + - .geom + - .glslv + - .gshader + - .shader + - .vert + - .vrx + - .vshader + ace_mode: glsl + +Game Maker Language: + type: programming + color: "#8fb200" + extensions: + - .gml + tm_scope: source.c++ + ace_mode: c_cpp + +Genshi: + type: programming + extensions: + - .kid + tm_scope: text.xml.genshi + aliases: + - xml+genshi + - xml+kid + ace_mode: xml + +Gentoo Ebuild: + type: programming + group: Shell + extensions: + - .ebuild + tm_scope: source.shell + ace_mode: sh + +Gentoo Eclass: + type: programming + group: Shell + extensions: + - .eclass + tm_scope: source.shell + ace_mode: sh + +Gettext Catalog: + type: prose + search_term: pot + searchable: false + aliases: + - pot + extensions: + - .po + - .pot + tm_scope: source.po + ace_mode: text + +Glyph: + type: programming + color: "#e4cc98" + extensions: + - .glf + tm_scope: source.tcl + ace_mode: tcl + +Gnuplot: + type: programming + color: "#f0a9f0" + extensions: + - .gp + - .gnu + - .gnuplot + - .plot + - .plt + interpreters: + - gnuplot + ace_mode: text + +Go: + type: programming + color: "#375eab" + extensions: + - .go + ace_mode: golang + +Golo: + type: programming + color: "#88562A" + extensions: + - .golo + tm_scope: source.golo + ace_mode: text + +Gosu: + type: programming + color: "#82937f" + extensions: + - .gs + - .gst + - .gsx + - .vark + tm_scope: source.gosu.2 + ace_mode: text + +Grace: + type: programming + extensions: + - .grace + tm_scope: source.grace + ace_mode: text + +Gradle: + type: data + extensions: + - .gradle + tm_scope: source.groovy.gradle + ace_mode: text + +Grammatical Framework: + type: programming + aliases: + - gf + wrap: false + extensions: + - .gf + searchable: true + color: "#79aa7a" + tm_scope: source.haskell + ace_mode: haskell + +Graph Modeling Language: + type: data + extensions: + - .gml + tm_scope: none + ace_mode: text + +Graphviz (DOT): + type: data + tm_scope: source.dot + extensions: + - .dot + - .gv + ace_mode: text + +Groff: + type: markup + extensions: + - .man + - '.1' + - '.2' + - '.3' + - '.4' + - '.5' + - '.6' + - '.7' + - .l + tm_scope: text.groff + aliases: + - nroff + ace_mode: text + +Groovy: + type: programming + ace_mode: groovy + color: "#e69f56" + extensions: + - .groovy + - .grt + - .gtpl + - .gvy + interpreters: + - groovy + +Groovy Server Pages: + type: programming + group: Groovy + aliases: + - gsp + - java server page + extensions: + - .gsp + tm_scope: text.html.jsp + ace_mode: jsp + +HTML: + type: markup + tm_scope: text.html.basic + ace_mode: html + color: "#e44b23" + aliases: + - xhtml + extensions: + - .html + - .htm + - .html.hl + - .st + - .xht + - .xhtml + +HTML+Django: + type: markup + tm_scope: text.html.django + group: HTML + extensions: + - .mustache + - .jinja + aliases: + - html+django/jinja + - html+jinja + - htmldjango + ace_mode: django + +HTML+ERB: + type: markup + tm_scope: text.html.erb + group: HTML + aliases: + - erb + extensions: + - .erb + - .erb.deface + ace_mode: html_ruby + +HTML+PHP: + type: markup + tm_scope: text.html.php + group: HTML + extensions: + - .phtml + ace_mode: php + +HTTP: + type: data + extensions: + - .http + tm_scope: source.httpspec + ace_mode: text + +Hack: + type: programming + ace_mode: php + extensions: + - .hh + - .php + tm_scope: text.html.php + +Haml: + group: HTML + type: markup + extensions: + - .haml + - .haml.deface + ace_mode: haml + +Handlebars: + type: markup + color: "#01a9d6" + aliases: + - hbs + - htmlbars + extensions: + - .handlebars + - .hbs + tm_scope: text.html.handlebars + ace_mode: handlebars + +Harbour: + type: programming + color: "#0e60e3" + extensions: + - .hb + tm_scope: none + ace_mode: text + +Haskell: + type: programming + color: "#29b544" + extensions: + - .hs + - .hsc + ace_mode: haskell + +Haxe: + type: programming + ace_mode: haxe + color: "#f7941e" + extensions: + - .hx + - .hxsl + tm_scope: source.haxe.2 + +Hy: + type: programming + ace_mode: text + color: "#7790B2" + extensions: + - .hy + aliases: + - hylang + tm_scope: source.hy + +HyPhy: + type: programming + ace_mode: text + extensions: + - .bf + tm_scope: none + +IDL: + type: programming + color: "#a3522f" + extensions: + - .pro + - .dlm + ace_mode: text + +IGOR Pro: + type: programming + extensions: + - .ipf + aliases: + - igor + - igorpro + tm_scope: none + ace_mode: text + +INI: + type: data + extensions: + - .ini + - .cfg + - .prefs + - .pro + - .properties + tm_scope: source.ini + aliases: + - dosini + ace_mode: ini + +IRC log: + type: data + search_term: irc + aliases: + - irc + - irc logs + extensions: + - .irclog + - .weechatlog + tm_scope: none + ace_mode: text + +Idris: + type: programming + extensions: + - .idr + - .lidr + ace_mode: text + +Inform 7: + type: programming + wrap: true + extensions: + - .ni + - .i7x + tm_scope: source.Inform7 + aliases: + - i7 + - inform7 + ace_mode: text + +Inno Setup: + type: programming + extensions: + - .iss + tm_scope: source.inno + ace_mode: text + +Io: + type: programming + color: "#a9188d" + extensions: + - .io + ace_mode: io + +Ioke: + type: programming + color: "#078193" + extensions: + - .ik + interpreters: + - ioke + ace_mode: text + +Isabelle: + type: programming + color: "#FEFE00" + extensions: + - .thy + tm_scope: source.isabelle.theory + ace_mode: text + +J: + type: programming + color: "#9EEDFF" + extensions: + - .ijs + tm_scope: source.j + ace_mode: text + +JFlex: + type: programming + color: "#DBCA00" + group: Lex + extensions: + - .flex + - .jflex + tm_scope: source.jflex + ace_mode: text + +JSON: + type: data + tm_scope: source.json + group: JavaScript + ace_mode: json + searchable: false + extensions: + - .json + - .lock + filenames: + - .jshintrc + - composer.lock + +JSON5: + type: data + extensions: + - .json5 + tm_scope: source.js + ace_mode: javascript + +JSONLD: + type: data + group: JavaScript + ace_mode: javascript + extensions: + - .jsonld + tm_scope: source.js + +JSONiq: + type: programming + ace_mode: jsoniq + extensions: + - .jq + tm_scope: source.xquery + +Jade: + group: HTML + type: markup + extensions: + - .jade + tm_scope: source.jade + ace_mode: jade + +Jasmin: + type: programming + ace_mode: java + extensions: + - .j + tm_scope: source.jasmin + +Java: + type: programming + ace_mode: java + color: "#b07219" + extensions: + - .java + +Java Server Pages: + type: programming + group: Java + search_term: jsp + aliases: + - jsp + extensions: + - .jsp + tm_scope: text.html.jsp + ace_mode: jsp + +JavaScript: + type: programming + tm_scope: source.js + ace_mode: javascript + color: "#f1e05a" + aliases: + - js + - node + extensions: + - .js + - ._js + - .bones + - .es6 + - .frag + - .gs + - .jake + - .jsb + - .jsfl + - .jsm + - .jss + - .jsx + - .njs + - .pac + - .sjs + - .ssjs + - .sublime-build + - .sublime-commands + - .sublime-completions + - .sublime-keymap + - .sublime-macro + - .sublime-menu + - .sublime-mousemap + - .sublime-project + - .sublime-settings + - .sublime-theme + - .sublime-workspace + - .sublime_metrics + - .sublime_session + - .xsjs + - .xsjslib + filenames: + - Jakefile + interpreters: + - node + +Julia: + type: programming + extensions: + - .jl + color: "#a270ba" + ace_mode: julia + +KRL: + type: programming + color: "#28431f" + extensions: + - .krl + tm_scope: none + ace_mode: text + +KiCad: + type: programming + extensions: + - .sch + tm_scope: none + ace_mode: text + +Kit: + type: markup + ace_mode: html + extensions: + - .kit + tm_scope: text.html.basic + +Kotlin: + type: programming + color: "#EA4DFA" + extensions: + - .kt + - .ktm + - .kts + tm_scope: source.Kotlin + ace_mode: text + +LFE: + type: programming + extensions: + - .lfe + color: "#004200" + group: Erlang + tm_scope: source.lisp + ace_mode: lisp + +LLVM: + type: programming + extensions: + - .ll + ace_mode: text + +LOLCODE: + type: programming + extensions: + - .lol + color: "#cc9900" + tm_scope: none + ace_mode: text + +LSL: + type: programming + ace_mode: lsl + extensions: + - .lsl + interpreters: + - lsl + color: '#3d9970' + +LabVIEW: + type: programming + extensions: + - .lvproj + tm_scope: none + ace_mode: text + +Lasso: + type: programming + color: "#999999" + extensions: + - .lasso + - .las + - .lasso8 + - .lasso9 + - .ldml + tm_scope: file.lasso + aliases: + - lassoscript + ace_mode: text + +Latte: + type: markup + color: "#A8FF97" + group: HTML + extensions: + - .latte + tm_scope: text.html.smarty + ace_mode: smarty + +Lean: + type: programming + extensions: + - .lean + - .hlean + ace_mode: lean + +Less: + type: markup + group: CSS + extensions: + - .less + tm_scope: source.css.less + ace_mode: less + +Lex: + type: programming + color: "#DBCA00" + aliases: + - flex + extensions: + - .l + - .lex + tm_scope: none + ace_mode: text + +LilyPond: + type: programming + extensions: + - .ly + - .ily + ace_mode: text + +Limbo: + type: programming + extensions: + - .b + - .m + tm_scope: none + ace_mode: text + +Linker Script: + type: data + extensions: + - .ld + - .lds + filenames: + - ld.script + tm_scope: none + ace_mode: text + +Liquid: + type: markup + extensions: + - .liquid + tm_scope: text.html.liquid + ace_mode: liquid + +Literate Agda: + type: programming + group: Agda + extensions: + - .lagda + tm_scope: none + ace_mode: text + +Literate CoffeeScript: + type: programming + tm_scope: source.litcoffee + group: CoffeeScript + ace_mode: markdown + wrap: true + search_term: litcoffee + aliases: + - litcoffee + extensions: + - .litcoffee + ace_mode: text + +Literate Haskell: + type: programming + group: Haskell + search_term: lhs + aliases: + - lhaskell + - lhs + extensions: + - .lhs + tm_scope: text.tex.latex.haskell + ace_mode: text + +LiveScript: + type: programming + color: "#499886" + aliases: + - live-script + - ls + extensions: + - .ls + - ._ls + filenames: + - Slakefile + ace_mode: livescript + +Logos: + type: programming + extensions: + - .xm + - .x + - .xi + ace_mode: text + +Logtalk: + type: programming + extensions: + - .lgt + - .logtalk + ace_mode: text + +LookML: + type: programming + ace_mode: yaml + color: "#652B81" + extensions: + - .lookml + tm_scope: source.yaml + +LoomScript: + type: programming + extensions: + - .ls + tm_scope: source.loomscript + ace_mode: text + +Lua: + type: programming + ace_mode: lua + color: "#000080" + extensions: + - .lua + - .fcgi + - .nse + - .pd_lua + - .rbxs + - .wlua + interpreters: + - lua + +M: + type: programming + aliases: + - mumps + extensions: + - .mumps + - .m + tm_scope: source.lisp + ace_mode: lisp + +MTML: + type: markup + color: "#b7e1f4" + extensions: + - .mtml + tm_scope: text.html.basic + ace_mode: html + +MUF: + type: programming + group: Forth + extensions: + - .muf + - .m + tm_scope: none + ace_mode: forth + +Makefile: + type: programming + color: "#427819" + aliases: + - bsdmake + - make + - mf + extensions: + - .mak + - .d + - .mk + filenames: + - GNUmakefile + - Kbuild + - Makefile + - makefile + interpreters: + - make + ace_mode: makefile + +Mako: + type: programming + extensions: + - .mako + - .mao + tm_scope: text.html.mako + ace_mode: text + +Markdown: + type: prose + ace_mode: markdown + wrap: true + extensions: + - .md + - .markdown + - .mkd + - .mkdn + - .mkdown + - .ron + tm_scope: source.gfm + +Mask: + type: markup + color: "#f97732" + ace_mode: mask + extensions: + - .mask + tm_scope: source.mask + +Mathematica: + type: programming + extensions: + - .mathematica + - .cdf + - .m + - .ma + - .nb + - .nbp + - .wl + - .wlt + aliases: + - mma + ace_mode: text + +Matlab: + type: programming + color: "#bb92ac" + extensions: + - .matlab + - .m + ace_mode: matlab + +Maven POM: + type: data + tm_scope: text.xml.pom + filenames: + - pom.xml + ace_mode: xml + +Max: + type: programming + color: "#c4a79c" + aliases: + - max/msp + - maxmsp + search_term: max/msp + extensions: + - .maxpat + - .maxhelp + - .maxproj + - .mxt + - .pat + tm_scope: source.json + ace_mode: json + +MediaWiki: + type: prose + wrap: true + extensions: + - .mediawiki + tm_scope: text.html.mediawiki + ace_mode: text + +Mercury: + type: programming + color: "#ff2b2b" + ace_mode: prolog + interpreters: + - mmi + extensions: + - .m + - .moo + tm_scope: source.mercury + ace_mode: prolog + +MiniD: # Legacy + type: programming + searchable: false + extensions: + - .minid # Dummy extension + tm_scope: none + ace_mode: text + +Mirah: + type: programming + search_term: mirah + color: "#c7a938" + extensions: + - .druby + - .duby + - .mir + - .mirah + tm_scope: source.ruby + ace_mode: ruby + +Modelica: + type: programming + extensions: + - .mo + tm_scope: source.modelica + ace_mode: text + +Module Management System: + type: programming + extensions: + - .mms + - .mmk + filenames: + - descrip.mmk + - descrip.mms + tm_scope: none + ace_mode: text + +Monkey: + type: programming + extensions: + - .monkey + ace_mode: text + +Moocode: + type: programming + extensions: + - .moo + tm_scope: none + ace_mode: text + +MoonScript: + type: programming + extensions: + - .moon + interpreters: + - moon + ace_mode: text + +Myghty: + type: programming + extensions: + - .myt + tm_scope: none + ace_mode: text + +NL: + type: data + extensions: + - .nl + tm_scope: none + ace_mode: text + +NSIS: + type: programming + extensions: + - .nsi + - .nsh + ace_mode: text + +Nemerle: + type: programming + color: "#3d3c6e" + extensions: + - .n + ace_mode: text + +NetLinx: + type: programming + color: "#0aa0ff" + extensions: + - .axs + - .axi + tm_scope: source.netlinx + ace_mode: text + +NetLinx+ERB: + type: programming + color: "#747faa" + extensions: + - .axs.erb + - .axi.erb + tm_scope: source.netlinx.erb + ace_mode: text + +NetLogo: + type: programming + color: "#ff6375" + extensions: + - .nlogo + tm_scope: source.lisp + ace_mode: lisp + +NewLisp: + type: programming + lexer: NewLisp + color: "#87AED7" + extensions: + - .nl + - .lisp + - .lsp + interpreters: + - newlisp + tm_scope: source.lisp + ace_mode: lisp + +Nginx: + type: markup + extensions: + - .nginxconf + - .vhost + filenames: + - nginx.conf + tm_scope: source.nginx + aliases: + - nginx configuration file + ace_mode: text + +Nimrod: + type: programming + color: "#37775b" + extensions: + - .nim + - .nimrod + ace_mode: text + tm_scope: source.nim + +Ninja: + type: data + tm_scope: source.ninja + extensions: + - .ninja + ace_mode: text + +Nit: + type: programming + color: "#009917" + extensions: + - .nit + tm_scope: source.nit + ace_mode: text + +Nix: + type: programming + color: "#7e7eff" + extensions: + - .nix + aliases: + - nixos + tm_scope: source.nix + ace_mode: nix + +Nu: + type: programming + color: "#c9df40" + aliases: + - nush + extensions: + - .nu + filenames: + - Nukefile + tm_scope: source.scheme + ace_mode: scheme + interpreters: + - nush + +NumPy: + type: programming + group: Python + extensions: + - .numpy + - .numpyw + - .numsc + tm_scope: none + ace_mode: text + +OCaml: + type: programming + ace_mode: ocaml + color: "#3be133" + extensions: + - .ml + - .eliom + - .eliomi + - .ml4 + - .mli + - .mll + - .mly + interpreters: + - ocaml + - ocamlrun + tm_scope: source.ocaml + +ObjDump: + type: data + extensions: + - .objdump + tm_scope: objdump.x86asm + ace_mode: assembly_x86 + +Objective-C: + type: programming + tm_scope: source.objc + color: "#438eff" + aliases: + - obj-c + - objc + - objectivec + extensions: + - .m + - .h + ace_mode: objectivec + +Objective-C++: + type: programming + tm_scope: source.objc++ + color: "#6866fb" + aliases: + - obj-c++ + - objc++ + - objectivec++ + extensions: + - .mm + ace_mode: objectivec + +Objective-J: + type: programming + color: "#ff0c5a" + aliases: + - obj-j + - objectivej + - objj + extensions: + - .j + - .sj + tm_scope: source.js.objj + ace_mode: text + +Omgrofl: + type: programming + extensions: + - .omgrofl + color: "#cabbff" + tm_scope: none + ace_mode: text + +Opa: + type: programming + extensions: + - .opa + ace_mode: text + +Opal: + type: programming + color: "#f7ede0" + extensions: + - .opal + tm_scope: source.opal + ace_mode: text + +OpenCL: + type: programming + group: C + extensions: + - .cl + - .opencl + tm_scope: source.c + ace_mode: c_cpp + +OpenEdge ABL: + type: programming + aliases: + - progress + - openedge + - abl + extensions: + - .p + - .cls + tm_scope: source.abl + ace_mode: text + +OpenSCAD: + type: programming + extensions: + - .scad + tm_scope: source.scad + ace_mode: scad + +Org: + type: prose + wrap: true + extensions: + - .org + tm_scope: none + ace_mode: text + +Ox: + type: programming + extensions: + - .ox + - .oxh + - .oxo + tm_scope: source.ox + ace_mode: text + +Oxygene: + type: programming + color: "#cdd0e3" + extensions: + - .oxygene + tm_scope: none + ace_mode: text + +Oz: + type: programming + color: "#fab738" + extensions: + - .oz + tm_scope: source.oz + ace_mode: text + +PAWN: + type: programming + color: "#dbb284" + extensions: + - .pwn + tm_scope: source.c++ + ace_mode: c_cpp + +PHP: + type: programming + tm_scope: text.html.php + ace_mode: php + color: "#4F5D95" + extensions: + - .php + - .aw + - .ctp + - .fcgi + - .php3 + - .php4 + - .php5 + - .phpt + filenames: + - Phakefile + interpreters: + - php + aliases: + - inc + +#Oracle +PLSQL: + type: programming + ace_mode: sql + tm_scope: source.plsql.oracle + extensions: + - .pls + - .pkb + - .pks + - .plb + - .plsql + - .sql + +#Postgres +PLpgSQL: + type: programming + ace_mode: pgsql + tm_scope: source.sql + extensions: + - .sql + +Pan: + type: programming + color: '#cc0000' + extensions: + - .pan + tm_scope: none + ace_mode: text + +Papyrus: + type: programming + color: "#6600cc" + extensions: + - .psc + tm_scope: source.papyrus + ace_mode: text + +Parrot: + type: programming + color: "#f3ca0a" + extensions: + - .parrot # Dummy extension + tm_scope: none + ace_mode: text + +Parrot Assembly: + group: Parrot + type: programming + aliases: + - pasm + extensions: + - .pasm + interpreters: + - parrot + tm_scope: none + ace_mode: text + +Parrot Internal Representation: + group: Parrot + tm_scope: source.parrot.pir + type: programming + aliases: + - pir + extensions: + - .pir + interpreters: + - parrot + ace_mode: text + +Pascal: + type: programming + color: "#b0ce4e" + extensions: + - .pas + - .dfm + - .dpr + - .lpr + - .pp + ace_mode: pascal + +Perl: + type: programming + tm_scope: source.perl + ace_mode: perl + color: "#0298c3" + extensions: + - .pl + - .al + - .cgi + - .fcgi + - .perl + - .ph + - .plx + - .pm + - .pod + - .psgi + - .t + interpreters: + - perl + +Perl6: + type: programming + color: "#0000fb" + extensions: + - .6pl + - .6pm + - .nqp + - .p6 + - .p6l + - .p6m + - .pl + - .pl6 + - .pm + - .pm6 + - .t + filenames: + - Rexfile + interpreters: + - perl6 + tm_scope: source.perl.6 + ace_mode: perl + +PigLatin: + type: programming + color: "#fcd7de" + extensions: + - .pig + tm_scope: source.pig_latin + ace_mode: text + +Pike: + type: programming + color: "#005390" + extensions: + - .pike + - .pmod + interpreters: + - pike + ace_mode: text + +Pod: + type: prose + ace_mode: perl + wrap: true + extensions: + - .pod + tm_scope: none + +PogoScript: + type: programming + color: "#d80074" + extensions: + - .pogo + tm_scope: source.pogoscript + ace_mode: text + +PostScript: + type: markup + extensions: + - .ps + - .eps + tm_scope: source.postscript + aliases: + - postscr + ace_mode: text + +PowerShell: + type: programming + ace_mode: powershell + aliases: + - posh + extensions: + - .ps1 + - .psd1 + - .psm1 + +Processing: + type: programming + color: "#0096D8" + extensions: + - .pde + ace_mode: text + +Prolog: + type: programming + color: "#74283c" + extensions: + - .pl + - .ecl + - .pro + - .prolog + interpreters: + - swipl + ace_mode: prolog + +Propeller Spin: + type: programming + color: "#7fa2a7" + extensions: + - .spin + tm_scope: source.spin + ace_mode: text + +Protocol Buffer: + type: markup + aliases: + - protobuf + - Protocol Buffers + extensions: + - .proto + tm_scope: source.protobuf + ace_mode: protobuf + +Public Key: + type: data + extensions: + - .asc + - .pub + tm_scope: none + ace_mode: text + +Puppet: + type: programming + color: "#332A77" + extensions: + - .pp + filenames: + - Modulefile + ace_mode: text + +Pure Data: + type: programming + color: "#91de79" + extensions: + - .pd + tm_scope: none + ace_mode: text + +PureBasic: + type: programming + color: "#5a6986" + extensions: + - .pb + - .pbi + tm_scope: none + ace_mode: text + +PureScript: + type: programming + color: "#1D222D" + extensions: + - .purs + tm_scope: source.haskell + ace_mode: haskell + +Python: + type: programming + ace_mode: python + color: "#3572A5" + extensions: + - .py + - .cgi + - .fcgi + - .gyp + - .lmi + - .pyde + - .pyp + - .pyt + - .pyw + - .tac + - .wsgi + - .xpy + filenames: + - BUILD + - SConscript + - SConstruct + - Snakefile + - wscript + interpreters: + - python + - python2 + - python3 + aliases: + - rusthon + +Python traceback: + type: data + group: Python + searchable: false + extensions: + - .pytb + tm_scope: text.python.traceback + ace_mode: text + +QML: + type: programming + color: "#44a51c" + extensions: + - .qml + - .qbs + tm_scope: source.qml + ace_mode: text + +QMake: + type: programming + extensions: + - .pro + - .pri + interpreters: + - qmake + ace_mode: text + +R: + type: programming + color: "#198ce7" + aliases: + - R + - Rscript + - splus + extensions: + - .r + - .rd + - .rsx + filenames: + - .Rprofile + interpreters: + - Rscript + ace_mode: r + +RAML: + type: data + ace_mode: yaml + tm_scope: source.yaml + color: "#77d9fb" + extensions: + - .raml + +RDoc: + type: prose + ace_mode: rdoc + wrap: true + extensions: + - .rdoc + tm_scope: text.rdoc + +REALbasic: + type: programming + extensions: + - .rbbas + - .rbfrm + - .rbmnu + - .rbres + - .rbtbar + - .rbuistate + tm_scope: source.vbnet + ace_mode: text + +RHTML: + type: markup + group: HTML + extensions: + - .rhtml + tm_scope: text.html.erb + aliases: + - html+ruby + ace_mode: rhtml + +RMarkdown: + type: prose + wrap: true + ace_mode: markdown + extensions: + - .rmd + tm_scope: none + +Racket: + type: programming + color: "#22228f" + extensions: + - .rkt + - .rktd + - .rktl + - .scrbl + interpreters: + - racket + tm_scope: source.racket + ace_mode: lisp + +Ragel in Ruby Host: + type: programming + color: "#e17600" + extensions: + - .rl + aliases: + - ragel-rb + - ragel-ruby + tm_scope: none + ace_mode: text + +Raw token data: + type: data + search_term: raw + aliases: + - raw + extensions: + - .raw + tm_scope: none + ace_mode: text + +Rebol: + type: programming + color: "#358a5b" + extensions: + - .reb + - .r + - .r2 + - .r3 + - .rebol + ace_mode: text + tm_scope: source.rebol + +Red: + type: programming + color: "#ee0000" + extensions: + - .red + - .reds + aliases: + - red/system + tm_scope: source.red + ace_mode: text + +Redcode: + type: programming + extensions: + - .cw + tm_scope: none + ace_mode: text + +RenderScript: + type: programming + extensions: + - .rs + - .rsh + tm_scope: none + ace_mode: text + +RobotFramework: + type: programming + extensions: + - .robot + # - .txt + tm_scope: text.robot + ace_mode: text + +Rouge: + type: programming + ace_mode: clojure + color: "#cc0088" + extensions: + - .rg + tm_scope: source.clojure + +Ruby: + type: programming + ace_mode: ruby + color: "#701516" + aliases: + - jruby + - macruby + - rake + - rb + - rbx + extensions: + - .rb + - .builder + - .fcgi + - .gemspec + - .god + - .irbrc + - .jbuilder + - .mspec + - .pluginspec + - .podspec + - .rabl + - .rake + - .rbuild + - .rbw + - .rbx + - .ru + - .ruby + - .thor + - .watchr + interpreters: + - ruby + - macruby + - rake + - jruby + - rbx + filenames: + - .pryrc + - Appraisals + - Berksfile + - Buildfile + - Deliverfile + - Fastfile + - Gemfile + - Gemfile.lock + - Guardfile + - Jarfile + - Mavenfile + - Podfile + - Puppetfile + - Snapfile + - Thorfile + - Vagrantfile + - buildfile + +Rust: + type: programming + color: "#dea584" + extensions: + - .rs + ace_mode: rust + +SAS: + type: programming + color: "#B34936" + extensions: + - .sas + tm_scope: source.sas + ace_mode: text + +SCSS: + type: markup + tm_scope: source.scss + group: CSS + ace_mode: scss + extensions: + - .scss + +SPARQL: + type: data + tm_scope: source.sparql + ace_mode: text + extensions: + - .sparql + - .rq + +SQF: + type: programming + color: "#3F3F3F" + extensions: + - .sqf + - .hqf + tm_scope: source.sqf + ace_mode: text + +SQL: + type: data + tm_scope: source.sql + ace_mode: sql + extensions: + - .sql + - .cql + - .ddl + - .prc + - .tab + - .udf + - .viw + +#IBM DB2 +SQLPL: + type: programming + ace_mode: sql + tm_scope: source.sql + extensions: + - .sql + - .db2 + +STON: + type: data + group: Smalltalk + extensions: + - .ston + tm_scope: source.smalltalk + ace_mode: text + +SVG: + type: data + extensions: + - .svg + tm_scope: text.xml + ace_mode: xml + +Sage: + type: programming + group: Python + extensions: + - .sage + - .sagews + tm_scope: source.python + ace_mode: python + +SaltStack: + type: programming + color: "#646464" + aliases: + - saltstate + - salt + extensions: + - .sls + tm_scope: source.yaml.salt + ace_mode: yaml + +Sass: + type: markup + tm_scope: source.sass + group: CSS + extensions: + - .sass + ace_mode: sass + +Scala: + type: programming + ace_mode: scala + color: "#7dd3b0" + extensions: + - .scala + - .sbt + - .sc + interpreters: + - scala + +Scaml: + group: HTML + type: markup + extensions: + - .scaml + tm_scope: source.scaml + ace_mode: text + +Scheme: + type: programming + color: "#1e4aec" + extensions: + - .scm + - .sld + - .sls + - .sps + - .ss + interpreters: + - guile + - bigloo + - chicken + ace_mode: scheme + +Scilab: + type: programming + extensions: + - .sci + - .sce + - .tst + ace_mode: text + +Self: + type: programming + color: "#0579aa" + extensions: + - .self + tm_scope: none + ace_mode: text + +Shell: + type: programming + search_term: bash + color: "#89e051" + aliases: + - sh + - bash + - zsh + extensions: + - .sh + - .bash + - .bats + - .cgi + - .command + - .fcgi + - .ksh + - .tmux + - .tool + - .zsh + interpreters: + - bash + - rc + - sh + - zsh + ace_mode: sh + +ShellSession: + type: programming + extensions: + - .sh-session + aliases: + - bash session + - console + tm_scope: text.shell-session + ace_mode: sh + +Shen: + type: programming + color: "#120F14" + extensions: + - .shen + tm_scope: none + ace_mode: text + +Slash: + type: programming + color: "#007eff" + extensions: + - .sl + tm_scope: text.html.slash + ace_mode: text + +Slim: + group: HTML + type: markup + color: "#ff8f77" + extensions: + - .slim + ace_mode: text + +Smali: + type: programming + extensions: + - .smali + ace_mode: text + tm_scope: source.smali + +Smalltalk: + type: programming + color: "#596706" + extensions: + - .st + - .cs + aliases: + - squeak + ace_mode: text + +Smarty: + type: programming + extensions: + - .tpl + ace_mode: smarty + tm_scope: text.html.smarty + +SourcePawn: + type: programming + color: "#5c7611" + aliases: + - sourcemod + extensions: + - .sp + - .sma + tm_scope: source.sp + ace_mode: text + +Squirrel: + type: programming + color: "#800000" + extensions: + - .nut + tm_scope: source.c++ + ace_mode: c_cpp + +Standard ML: + type: programming + color: "#dc566d" + aliases: + - sml + extensions: + - .ML + - .fun + - .sig + - .sml + tm_scope: source.ml + ace_mode: text + +Stata: + type: programming + extensions: + - .do + - .ado + - .doh + - .ihlp + - .mata + - .matah + - .sthlp + ace_mode: text + +Stylus: + type: markup + group: CSS + extensions: + - .styl + tm_scope: source.stylus + ace_mode: stylus + +SuperCollider: + type: programming + color: "#46390b" + extensions: + - .scd + - .sc + tm_scope: none + ace_mode: text + +Swift: + type: programming + color: "#ffac45" + extensions: + - .swift + ace_mode: text + +SystemVerilog: + type: programming + color: "#DAE1C2" + extensions: + - .sv + - .svh + - .vh + ace_mode: verilog + +TOML: + type: data + extensions: + - .toml + tm_scope: source.toml + ace_mode: toml + +TXL: + type: programming + extensions: + - .txl + tm_scope: source.txl + ace_mode: text + +Tcl: + type: programming + color: "#e4cc98" + extensions: + - .tcl + - .adp + - .tm + interpreters: + - tclsh + - wish + ace_mode: tcl + +Tcsh: + type: programming + group: Shell + extensions: + - .tcsh + - .csh + tm_scope: source.shell + ace_mode: sh + +TeX: + type: markup + color: "#3D6117" + ace_mode: tex + wrap: true + aliases: + - latex + extensions: + - .tex + - .aux + - .bbx + - .bib + - .cbx + - .cls + - .dtx + - .ins + - .lbx + - .ltx + - .mkii + - .mkiv + - .mkvi + - .sty + - .toc + +Tea: + type: markup + extensions: + - .tea + tm_scope: source.tea + ace_mode: text + +Text: + type: prose + wrap: true + aliases: + - fundamental + extensions: + - .txt + - .fr + tm_scope: none + ace_mode: text + +Textile: + type: prose + ace_mode: textile + wrap: true + extensions: + - .textile + tm_scope: none + +Thrift: + type: programming + tm_scope: source.thrift + extensions: + - .thrift + ace_mode: text + +Turing: + type: programming + color: "#45f715" + extensions: + - .t + - .tu + tm_scope: none + ace_mode: text + +Turtle: + type: data + extensions: + - .ttl + tm_scope: source.turtle + ace_mode: text + +Twig: + type: markup + group: HTML + extensions: + - .twig + tm_scope: text.html.twig + ace_mode: twig + +TypeScript: + type: programming + color: "#2b7489" + aliases: + - ts + extensions: + - .ts + tm_scope: source.ts + ace_mode: typescript + +Unified Parallel C: + type: programming + group: C + ace_mode: c_cpp + color: "#4e3617" + extensions: + - .upc + tm_scope: source.c + +Unity3D Asset: + type: data + ace_mode: yaml + color: "#ab69a1" + extensions: + - .anim + - .asset + - .mat + - .meta + - .prefab + - .unity + tm_scope: source.yaml + +UnrealScript: + type: programming + color: "#a54c4d" + extensions: + - .uc + tm_scope: source.java + ace_mode: java + +VCL: + group: Perl + type: programming + extensions: + - .vcl + tm_scope: source.varnish.vcl + ace_mode: text + +VHDL: + type: programming + color: "#adb2cb" + extensions: + - .vhdl + - .vhd + - .vhf + - .vhi + - .vho + - .vhs + - .vht + - .vhw + ace_mode: vhdl + +Vala: + type: programming + color: "#fbe5cd" + extensions: + - .vala + - .vapi + ace_mode: vala + +Verilog: + type: programming + color: "#b2b7f8" + extensions: + - .v + - .veo + ace_mode: verilog + +VimL: + type: programming + color: "#199f4b" + search_term: vim + aliases: + - vim + - nvim + extensions: + - .vim + filenames: + - .nvimrc + - .vimrc + - _vimrc + - gvimrc + - nvimrc + - vimrc + ace_mode: text + +Visual Basic: + type: programming + color: "#945db7" + extensions: + - .vb + - .bas + - .cls + - .frm + - .frx + - .vba + - .vbhtml + - .vbs + tm_scope: source.vbnet + aliases: + - vb.net + - vbnet + ace_mode: text + +Volt: + type: programming + color: "#1F1F1F" + extensions: + - .volt + tm_scope: source.d + ace_mode: d + +Web Ontology Language: + type: markup + color: "#9cc9dd" + extensions: + - .owl + tm_scope: text.xml + ace_mode: xml + +WebIDL: + type: programming + extensions: + - .webidl + tm_scope: source.webidl + ace_mode: text + +XC: + type: programming + color: "#99DA07" + extensions: + - .xc + tm_scope: source.xc + ace_mode: c_cpp + +XML: + type: data + ace_mode: xml + aliases: + - rss + - xsd + - wsdl + extensions: + - .xml + - .ant + - .axml + - .ccxml + - .clixml + - .cproject + - .csproj + - .ct + - .dita + - .ditamap + - .ditaval + - .dll.config + - .filters + - .fsproj + - .fxml + - .glade + - .gml + - .grxml + - .iml + - .ivy + - .jelly + - .kml + - .launch + - .mdpolicy + - .mm + - .mxml + - .nproj + - .nuspec + - .odd + - .osm + - .plist + - .pluginspec + - .ps1xml + - .psc1 + - .pt + - .rdf + - .rss + - .scxml + - .srdf + - .storyboard + - .stTheme + - .sublime-snippet + - .targets + - .tmCommand + - .tml + - .tmLanguage + - .tmPreferences + - .tmSnippet + - .tmTheme + - .ts + - .ui + - .urdf + - .vbproj + - .vcxproj + - .vxml + - .wsdl + - .wsf + - .wxi + - .wxl + - .wxs + - .x3d + - .xacro + - .xaml + - .xib + - .xlf + - .xliff + - .xmi + - .xml.dist + - .xsd + - .xul + - .zcml + filenames: + - .classpath + - .project + - Settings.StyleCop + - Web.Debug.config + - Web.Release.config + - Web.config + - packages.config + +XPages: + type: programming + extensions: + - .xsp-config + - .xsp.metadata + tm_scope: none + ace_mode: xml + +XProc: + type: programming + extensions: + - .xpl + - .xproc + tm_scope: text.xml + ace_mode: xml + +XQuery: + type: programming + color: "#5232e7" + extensions: + - .xquery + - .xq + - .xql + - .xqm + - .xqy + ace_mode: xquery + +XS: + type: programming + extensions: + - .xs + tm_scope: source.c + ace_mode: c_cpp + +XSLT: + type: programming + aliases: + - xsl + extensions: + - .xslt + - .xsl + tm_scope: text.xml.xsl + ace_mode: xml + +Xojo: + type: programming + extensions: + - .xojo_code + - .xojo_menu + - .xojo_report + - .xojo_script + - .xojo_toolbar + - .xojo_window + tm_scope: source.vbnet + ace_mode: text + +Xtend: + type: programming + extensions: + - .xtend + ace_mode: text + +YAML: + type: data + tm_scope: source.yaml + aliases: + - yml + extensions: + - .yml + - .reek + - .rviz + - .yaml + ace_mode: yaml + +Yacc: + type: programming + extensions: + - .y + - .yacc + - .yy + tm_scope: source.bison + ace_mode: text + +Zephir: + type: programming + color: "#118f9e" + extensions: + - .zep + tm_scope: source.php.zephir + ace_mode: php + +Zimpl: + type: programming + extensions: + - .zimpl + - .zmpl + - .zpl + tm_scope: none + ace_mode: text + +desktop: + type: data + extensions: + - .desktop + - .desktop.in + tm_scope: source.desktop + ace_mode: text + +eC: + type: programming + color: "#913960" + search_term: ec + extensions: + - .ec + - .eh + tm_scope: source.c.ec + ace_mode: text + +edn: + type: data + ace_mode: clojure + color: "#db5855" + extensions: + - .edn + tm_scope: source.clojure + +fish: + type: programming + group: Shell + extensions: + - .fish + tm_scope: source.fish + ace_mode: text + +mupad: + type: programming + extensions: + - .mu + ace_mode: text + +nesC: + type: programming + color: "#94B0C7" + extensions: + - .nc + ace_mode: text + +ooc: + type: programming + color: "#b0b77e" + extensions: + - .ooc + ace_mode: text + +reStructuredText: + type: prose + wrap: true + search_term: rst + aliases: + - rst + extensions: + - .rst + - .rest + ace_mode: text + +wisp: + type: programming + ace_mode: clojure + color: "#7582D1" + extensions: + - .wisp + tm_scope: source.clojure + +xBase: + type: programming + color: "#403a40" + extensions: + - .prg + tm_scope: none + ace_mode: text diff --git a/samples/XPages/UnpMain.xsp b/samples/XPages/UnpMain.xsp new file mode 100644 index 00000000..e0eb6438 --- /dev/null +++ b/samples/XPages/UnpMain.xsp @@ -0,0 +1,83 @@ + + + +
+
+ + +
+ + + +
+
+
+
+

+ Closed sales by team member - $000s + (December) +

+
+
+
+
+
+ +
+ +
+ +
+
+
+
+ + + + + +
\ No newline at end of file diff --git a/samples/XPages/demoServerRESTconsumption.xsp b/samples/XPages/demoServerRESTconsumption.xsp new file mode 100644 index 00000000..3334c777 --- /dev/null +++ b/samples/XPages/demoServerRESTconsumption.xsp @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/XPages/house.form b/samples/XPages/house.form new file mode 100644 index 00000000..7c47b41c --- /dev/null +++ b/samples/XPages/house.form @@ -0,0 +1,65 @@ + +
+ +20141225T155631,49-06 +20150306T091952,06-08 +20150306T091952,05-08 +20150306T091952,06-08 +20150305T162153,26-08 +CN=Eric McCormick/O=Eric McCormick +CN=Eric McCormick/O=Eric McCormick + + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + + +Yg4BAIQAAAAAAAAAAAA= + +house
diff --git a/samples/XPages/house.xsp b/samples/XPages/house.xsp new file mode 100644 index 00000000..3c5a6e13 --- /dev/null +++ b/samples/XPages/house.xsp @@ -0,0 +1,176 @@ + + + + + + + +
+
+
+
+

+ +

+
+
+ + + + +
+ + +
+
+ + + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/samples/XPages/houses.view b/samples/XPages/houses.view new file mode 100644 index 00000000..354c3aa0 --- /dev/null +++ b/samples/XPages/houses.view @@ -0,0 +1,54 @@ + + + +20141225T155658,43-06 +20150316T150218,60-07 +20150316T150218,59-07 +20150316T150218,60-07 +20150305T162151,76-08 +CN=Eric McCormick/O=Eric McCormick +CN=Eric McCormick/O=Eric McCormickSELECT Form = "house" + + + + + + + + + + + + + + + + + + + + + + + + +@Text(@DocumentUniqueID) diff --git a/samples/XPages/navbar.xsp b/samples/XPages/navbar.xsp new file mode 100755 index 00000000..c7a5669e --- /dev/null +++ b/samples/XPages/navbar.xsp @@ -0,0 +1,53 @@ + + + + \ No newline at end of file diff --git a/samples/XPages/xLogin.xsp b/samples/XPages/xLogin.xsp new file mode 100644 index 00000000..50afc329 --- /dev/null +++ b/samples/XPages/xLogin.xsp @@ -0,0 +1,38 @@ + + + + + UserID + Login + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 87eb4577ea4c6d7bf0f078b7f804a824a449f5b0 Mon Sep 17 00:00:00 2001 From: Eric McCormick Date: Mon, 13 Jul 2015 21:31:02 -0500 Subject: [PATCH 571/875] trying this again --- samples/XPages/UnpMain.xsp | 83 --------- samples/XPages/demoServerRESTconsumption.xsp | 64 ------- samples/XPages/house.form | 65 ------- samples/XPages/house.xsp | 176 ------------------- samples/XPages/houses.view | 54 ------ samples/XPages/navbar.xsp | 53 ------ samples/XPages/xLogin.xsp | 38 ---- 7 files changed, 533 deletions(-) delete mode 100644 samples/XPages/UnpMain.xsp delete mode 100644 samples/XPages/demoServerRESTconsumption.xsp delete mode 100644 samples/XPages/house.form delete mode 100644 samples/XPages/house.xsp delete mode 100644 samples/XPages/houses.view delete mode 100755 samples/XPages/navbar.xsp delete mode 100644 samples/XPages/xLogin.xsp diff --git a/samples/XPages/UnpMain.xsp b/samples/XPages/UnpMain.xsp deleted file mode 100644 index e0eb6438..00000000 --- a/samples/XPages/UnpMain.xsp +++ /dev/null @@ -1,83 +0,0 @@ - - - -
-
- - -
- - - -
-
-
-
-

- Closed sales by team member - $000s - (December) -

-
-
-
-
-
- -
- -
- -
-
-
-
- - - - - -
\ No newline at end of file diff --git a/samples/XPages/demoServerRESTconsumption.xsp b/samples/XPages/demoServerRESTconsumption.xsp deleted file mode 100644 index 3334c777..00000000 --- a/samples/XPages/demoServerRESTconsumption.xsp +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/XPages/house.form b/samples/XPages/house.form deleted file mode 100644 index 7c47b41c..00000000 --- a/samples/XPages/house.form +++ /dev/null @@ -1,65 +0,0 @@ - -
- -20141225T155631,49-06 -20150306T091952,06-08 -20150306T091952,05-08 -20150306T091952,06-08 -20150305T162153,26-08 -CN=Eric McCormick/O=Eric McCormick -CN=Eric McCormick/O=Eric McCormick - - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - - -Yg4BAIQAAAAAAAAAAAA= - -house
diff --git a/samples/XPages/house.xsp b/samples/XPages/house.xsp deleted file mode 100644 index 3c5a6e13..00000000 --- a/samples/XPages/house.xsp +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -
-
-
-
-

- -

-
-
- - - - -
- - -
-
- - - - - - - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- - - - - - - - - - - - - - - - - -
-
-
-
-
-
-
\ No newline at end of file diff --git a/samples/XPages/houses.view b/samples/XPages/houses.view deleted file mode 100644 index 354c3aa0..00000000 --- a/samples/XPages/houses.view +++ /dev/null @@ -1,54 +0,0 @@ - - - -20141225T155658,43-06 -20150316T150218,60-07 -20150316T150218,59-07 -20150316T150218,60-07 -20150305T162151,76-08 -CN=Eric McCormick/O=Eric McCormick -CN=Eric McCormick/O=Eric McCormickSELECT Form = "house" - - - - - - - - - - - - - - - - - - - - - - - - -@Text(@DocumentUniqueID) diff --git a/samples/XPages/navbar.xsp b/samples/XPages/navbar.xsp deleted file mode 100755 index c7a5669e..00000000 --- a/samples/XPages/navbar.xsp +++ /dev/null @@ -1,53 +0,0 @@ - - - - \ No newline at end of file diff --git a/samples/XPages/xLogin.xsp b/samples/XPages/xLogin.xsp deleted file mode 100644 index 50afc329..00000000 --- a/samples/XPages/xLogin.xsp +++ /dev/null @@ -1,38 +0,0 @@ - - - - - UserID - Login - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From bcfdbe3616321d5b8a869f807d6b05668045cea8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 14 Jul 2015 08:56:44 -0700 Subject: [PATCH 572/875] Grammars update --- vendor/grammars/Handlebars | 2 +- vendor/grammars/InnoSetup | 2 +- vendor/grammars/Sublime-Modula-2 | 2 +- vendor/grammars/Sublime-Text-2-OpenEdge-ABL | 2 +- vendor/grammars/abap.tmbundle | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-crystal | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/sublime-mask | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 60532f35..85c88773 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 60532f35cf89ce8d7e3354ed2f81cc131e80b614 +Subproject commit 85c88773e83e437187bc9c924257f8e41caa63cf diff --git a/vendor/grammars/InnoSetup b/vendor/grammars/InnoSetup index 417c64d7..e7ca1ee0 160000 --- a/vendor/grammars/InnoSetup +++ b/vendor/grammars/InnoSetup @@ -1 +1 @@ -Subproject commit 417c64d7b301ca08b3deeb24f4355bb806516913 +Subproject commit e7ca1ee0dd99a022dd0bd679f9bdad7cd610432e diff --git a/vendor/grammars/Sublime-Modula-2 b/vendor/grammars/Sublime-Modula-2 index f30f2fbe..9bd5077f 160000 --- a/vendor/grammars/Sublime-Modula-2 +++ b/vendor/grammars/Sublime-Modula-2 @@ -1 +1 @@ -Subproject commit f30f2fbe3b103bef939b830261bcd595f8951c28 +Subproject commit 9bd5077f925ac7a3edc87d45d1f872593ff7377e diff --git a/vendor/grammars/Sublime-Text-2-OpenEdge-ABL b/vendor/grammars/Sublime-Text-2-OpenEdge-ABL index 6e8231cc..dd14b342 160000 --- a/vendor/grammars/Sublime-Text-2-OpenEdge-ABL +++ b/vendor/grammars/Sublime-Text-2-OpenEdge-ABL @@ -1 +1 @@ -Subproject commit 6e8231cca124750b413ee50e8a4ee20e36636a03 +Subproject commit dd14b342cb436cde41752df6a014588110b9c1c0 diff --git a/vendor/grammars/abap.tmbundle b/vendor/grammars/abap.tmbundle index 5d8acce1..5973e78c 160000 --- a/vendor/grammars/abap.tmbundle +++ b/vendor/grammars/abap.tmbundle @@ -1 +1 @@ -Subproject commit 5d8acce13c54650b62556c0b307d9f30ea7ff538 +Subproject commit 5973e78c60d3d7f11fb264b5581bbe492486e771 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index 55785b6a..2a531a5f 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit 55785b6af0115aa49ed3fc2b3c3edb02a5305068 +Subproject commit 2a531a5f7aeb8d7f6ccc99e4cbd6f564a47a7322 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 67f23dfe..8fe7c037 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 67f23dfef284d180da6f9960461c8f48de10a0cb +Subproject commit 8fe7c0370b9d901d24b01cabc47ba7079c0cd5bd diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index 9542bbb6..56efe611 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit 9542bbb684b7241fc39e15af998344fea22b5dde +Subproject commit 56efe6116ff92a6979ba94ff2722486e3f440583 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 0124e630..a5fbd7e3 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 0124e630f014071a35bbea43db745e3aaa3491a6 +Subproject commit a5fbd7e3f89b1f09bd03312aababefb440db99a6 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 810b34b2..ece380e5 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 810b34b259f04e6dc30a03096d3cfe16b70f4ba9 +Subproject commit ece380e599b075255285ee7be0ec4b1a787fd6f8 diff --git a/vendor/grammars/language-crystal b/vendor/grammars/language-crystal index d4f3c1f4..75462302 160000 --- a/vendor/grammars/language-crystal +++ b/vendor/grammars/language-crystal @@ -1 +1 @@ -Subproject commit d4f3c1f43d7e2fdfe7efd40c9585b3e88fbdca58 +Subproject commit 754623023bd556b2bcb927dd8c1fd1ae4153e386 diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 7cb930dc..6202c4e3 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 7cb930dcaf387c9eb2b40e8c20a723c52d717c55 +Subproject commit 6202c4e34d23fd288b639dce598f61e728224077 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index e26b8c50..6e9fb364 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit e26b8c50a3ee02cb1d922d82ca66c9b75d06f052 +Subproject commit 6e9fb364cbc0d1558ce6af404c3de114ee07e1d4 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index a20438e8..2cae8202 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit a20438e8e491933e8cb878f4d8e3015594b135a7 +Subproject commit 2cae820272e4b88141fe3f06adfab620951952fb diff --git a/vendor/grammars/sublime-mask b/vendor/grammars/sublime-mask index bd37c4e7..819f743e 160000 --- a/vendor/grammars/sublime-mask +++ b/vendor/grammars/sublime-mask @@ -1 +1 @@ -Subproject commit bd37c4e7537f0fae03d55c02891a5f2500562faf +Subproject commit 819f743efdcfa0d90a5b935cfaad799bd4ca7e6a From 4dc566e13f1ffcc7c003b67dad144ef53b545a27 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 14 Jul 2015 08:58:59 -0700 Subject: [PATCH 573/875] Updating OpenEdge-ABL grammars --- grammars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/grammars.yml b/grammars.yml index 412b6eb7..f7f71d05 100644 --- a/grammars.yml +++ b/grammars.yml @@ -123,6 +123,7 @@ vendor/grammars/Sublime-SQF-Language: - source.sqf vendor/grammars/Sublime-Text-2-OpenEdge-ABL: - source.abl +- text.html.abl vendor/grammars/Sublime-VimL: - source.viml vendor/grammars/SublimeBrainfuck: From 75f72578ad86ed2ac41a43c77affec535e1b735b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 14 Jul 2015 08:59:32 -0700 Subject: [PATCH 574/875] Bumping version to v4.5.9 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index c63b24c0..ef3f734c 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.8" + VERSION = "4.5.9" end From 6b882438b0af9a1d9bc449e4b4de224222f28500 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 15 Jul 2015 13:39:27 +0200 Subject: [PATCH 575/875] CONTRIBUTING.md: minor URL cleanups use `https://` and `.svg`, follow a redirect. --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c8f64e5..1d358957 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -58,7 +58,7 @@ Syntax highlighting in GitHub is performed using TextMate-compatible grammars. T Assuming your code is being detected as the right language, in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. -You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). +You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](https://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). Once the bug has been fixed upstream, we'll pick it up for GitHub in the next release of Linguist. @@ -74,9 +74,9 @@ To run the tests: bundle exec rake test -Sometimes getting the tests running can be too much work, especially if you don't have much Ruby experience. It's okay: be lazy and let our build bot [Travis](http://travis-ci.org/#!/github/linguist) run the tests for you. Just open a pull request and the bot will start cranking away. +Sometimes getting the tests running can be too much work, especially if you don't have much Ruby experience. It's okay: be lazy and let our build bot [Travis](https://travis-ci.org/#!/github/linguist) run the tests for you. Just open a pull request and the bot will start cranking away. -Here's our current build status: [![Build Status](https://secure.travis-ci.org/github/linguist.png?branch=master)](http://travis-ci.org/github/linguist) +Here's our current build status: [![Build Status](https://api.travis-ci.org/github/linguist.svg?branch=master)](https://travis-ci.org/github/linguist) ## Releasing From 29197736c718802bc21e14780d7229911880e96b Mon Sep 17 00:00:00 2001 From: Harry Garrood Date: Sun, 19 Jul 2015 09:18:09 +0100 Subject: [PATCH 576/875] Use a different grammar for PureScript --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/atom-language-purescript | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/atom-language-purescript diff --git a/.gitmodules b/.gitmodules index fce31b57..dcd94622 100644 --- a/.gitmodules +++ b/.gitmodules @@ -662,3 +662,6 @@ [submodule "vendor/grammars/language-ncl"] path = vendor/grammars/language-ncl url = https://github.com/rpavlick/language-ncl.git +[submodule "vendor/grammars/atom-language-purescript"] + path = vendor/grammars/atom-language-purescript + url = https://github.com/freebroccolo/atom-language-purescript diff --git a/grammars.yml b/grammars.yml index 43507c92..d6d38438 100644 --- a/grammars.yml +++ b/grammars.yml @@ -176,6 +176,8 @@ vendor/grammars/assembly.tmbundle: - source.x86asm vendor/grammars/atom-fsharp/: - source.fsharp +vendor/grammars/atom-language-purescript/: +- source.purescript vendor/grammars/atom-salt: - source.python.salt - source.yaml.salt diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index d0930dab..9b48cc23 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2667,7 +2667,7 @@ PureScript: color: "#1D222D" extensions: - .purs - tm_scope: source.haskell + tm_scope: source.purescript ace_mode: haskell Python: diff --git a/vendor/grammars/atom-language-purescript b/vendor/grammars/atom-language-purescript new file mode 160000 index 00000000..5fd5b646 --- /dev/null +++ b/vendor/grammars/atom-language-purescript @@ -0,0 +1 @@ +Subproject commit 5fd5b6460e906045625fb5bbe7644425c73a3798 From 682cc2d82dd12665085e38e170b37b2d039b32c9 Mon Sep 17 00:00:00 2001 From: Joel Parker Henderson Date: Sun, 19 Jul 2015 19:36:12 -0600 Subject: [PATCH 577/875] Add documentation categorization for CHANGELOG et. al. --- lib/linguist/documentation.yml | 1 + test/test_blob.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index 6e06329f..f95a547d 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -16,6 +16,7 @@ ## Documentation files ## +- (^|/)CHANGE(S|LOG)?(\.|$) - (^|/)CONTRIBUTING(\.|$) - (^|/)COPYING(\.|$) - (^|/)INSTALL(\.|$) diff --git a/test/test_blob.rb b/test/test_blob.rb index 51c0398a..976c83ff 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -513,6 +513,21 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("README.txt"), :documentation? assert_predicate fixture_blob("foo/README"), :documentation? + assert_predicate fixture_blob("CHANGE"), :documentation? + assert_predicate fixture_blob("CHANGE.md"), :documentation? + assert_predicate fixture_blob("CHANGE.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGE"), :documentation? + + assert_predicate fixture_blob("CHANGELOG"), :documentation? + assert_predicate fixture_blob("CHANGELOG.md"), :documentation? + assert_predicate fixture_blob("CHANGELOG.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGELOG"), :documentation? + + assert_predicate fixture_blob("CHANGES"), :documentation? + assert_predicate fixture_blob("CHANGES.md"), :documentation? + assert_predicate fixture_blob("CHANGES.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGES"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING"), :documentation? assert_predicate fixture_blob("CONTRIBUTING.md"), :documentation? assert_predicate fixture_blob("CONTRIBUTING.txt"), :documentation? From 6b747f7d65711dbc5816de644356c29450bc5d3a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 21 Jul 2015 14:59:47 +0100 Subject: [PATCH 578/875] Adding Charity and heuristic for xBase .ch files --- lib/linguist/heuristics.rb | 6 ++++++ lib/linguist/languages.yml | 7 +++++++ samples/Charity/example.ch | 6 ++++++ test/test_heuristics.rb | 28 +++++++++++++++++----------- 4 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 samples/Charity/example.ch diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 23de1b02..d5b92457 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -333,5 +333,11 @@ module Linguist Language["GAS"] end end + + disambiguate "xBase", "Charity" do |data| + if /^\s*#\s*(if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b/i.match(data) + Language["xBase"] + end + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9b48cc23..a734d452 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -501,6 +501,13 @@ Chapel: - .chpl ace_mode: text +Charity: + type: programming + extensions: + - .ch + tm_scope: none + ace_mode: text + ChucK: type: programming extensions: diff --git a/samples/Charity/example.ch b/samples/Charity/example.ch new file mode 100644 index 00000000..d3ee289b --- /dev/null +++ b/samples/Charity/example.ch @@ -0,0 +1,6 @@ +% +% Some very badly written Charity +% + +data LA(A) -> D = ss: A -> D + | ff: -> D. diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 010bf587..8914e4c2 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -22,6 +22,17 @@ class TestHeuristcs < Minitest::Test assert_equal [], results end + def assert_heuristics(hash) + candidates = hash.keys.map { |l| Language[l] } + + hash.each do |language, blobs| + Array(blobs).each do |blob| + result = Heuristics.call(file_blob(blob), candidates) + assert_equal [Language[language]], result, "Failed for #{blob}" + end + end + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues @@ -147,17 +158,6 @@ class TestHeuristcs < Minitest::Test }) end - def assert_heuristics(hash) - candidates = hash.keys.map { |l| Language[l] } - - hash.each do |language, blobs| - Array(blobs).each do |blob| - result = Heuristics.call(file_blob(blob), candidates) - assert_equal [Language[language]], result, "Failed for #{blob}" - end - end - end - def test_ls_by_heuristics assert_heuristics({ "LiveScript" => "LiveScript/hello.ls", @@ -171,4 +171,10 @@ class TestHeuristcs < Minitest::Test "XML" => all_fixtures("XML", "*.ts") }) end + + def test_ch_by_heuristics + assert_heuristics({ + "xBase" => all_fixtures("xBase") + }) + end end From 7b5d1c075d7539e8886df5b599edd434be26fa6a Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 21 Jul 2015 18:51:55 -0400 Subject: [PATCH 579/875] add syntax highlight for *.vue component files --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 8 +++++++ samples/Vue/basic.vue | 21 +++++++++++++++++++ samples/Vue/pre-processors.vue | 31 ++++++++++++++++++++++++++++ vendor/grammars/vue-syntax-highlight | 1 + 6 files changed, 66 insertions(+) create mode 100644 samples/Vue/basic.vue create mode 100644 samples/Vue/pre-processors.vue create mode 160000 vendor/grammars/vue-syntax-highlight diff --git a/.gitmodules b/.gitmodules index dcd94622..7f02b603 100644 --- a/.gitmodules +++ b/.gitmodules @@ -665,3 +665,6 @@ [submodule "vendor/grammars/atom-language-purescript"] path = vendor/grammars/atom-language-purescript url = https://github.com/freebroccolo/atom-language-purescript +[submodule "vendor/grammars/vue-syntax-highlight"] + path = vendor/grammars/vue-syntax-highlight + url = https://github.com/vuejs/vue-syntax-highlight diff --git a/grammars.yml b/grammars.yml index d6d38438..a1bd7069 100644 --- a/grammars.yml +++ b/grammars.yml @@ -544,6 +544,8 @@ vendor/grammars/turtle.tmbundle: - source.turtle vendor/grammars/verilog.tmbundle: - source.verilog +vendor/grammars/vue-syntax-highlight: +- text.html.vue vendor/grammars/x86-assembly-textmate-bundle: - source.asm.x86 vendor/grammars/xc.tmbundle/: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a734d452..03874eaa 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3516,6 +3516,14 @@ Volt: tm_scope: source.d ace_mode: d +Vue: + type: markup + color: "#2c3e50" + extensions: + - .vue + tm_scope: text.html.vue + ace_mode: html + Web Ontology Language: type: markup color: "#9cc9dd" diff --git a/samples/Vue/basic.vue b/samples/Vue/basic.vue new file mode 100644 index 00000000..e5918fe7 --- /dev/null +++ b/samples/Vue/basic.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/samples/Vue/pre-processors.vue b/samples/Vue/pre-processors.vue new file mode 100644 index 00000000..364a1a1c --- /dev/null +++ b/samples/Vue/pre-processors.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/vendor/grammars/vue-syntax-highlight b/vendor/grammars/vue-syntax-highlight new file mode 160000 index 00000000..6cd3ee17 --- /dev/null +++ b/vendor/grammars/vue-syntax-highlight @@ -0,0 +1 @@ +Subproject commit 6cd3ee1743df0cc2d49d66c55437d535dadd579f From 5b187d1f20252218d75660702e268c351c257fc1 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 24 Jul 2015 23:40:43 -0400 Subject: [PATCH 580/875] update vue-syntax-highlight version --- vendor/grammars/vue-syntax-highlight | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/vue-syntax-highlight b/vendor/grammars/vue-syntax-highlight index 6cd3ee17..b98484e7 160000 --- a/vendor/grammars/vue-syntax-highlight +++ b/vendor/grammars/vue-syntax-highlight @@ -1 +1 @@ -Subproject commit 6cd3ee1743df0cc2d49d66c55437d535dadd579f +Subproject commit b98484e787c8658c91832674dbd36c3c23277234 From 90a293727d28bd4d7d239efa667f1b9f37afe0f4 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 29 Jul 2015 13:54:51 +0100 Subject: [PATCH 581/875] Merge branch 'master' into more-encompassing-number-skips --- .gitmodules | 102 +- .travis.yml | 1 - CONTRIBUTING.md | 36 +- README.md | 14 +- Rakefile | 2 +- bin/linguist | 6 +- github-linguist.gemspec | 5 +- grammars.yml | 72 +- lib/linguist.rb | 12 + lib/linguist/blob_helper.rb | 8 +- lib/linguist/documentation.yml | 9 +- lib/linguist/file_blob.rb | 27 +- lib/linguist/generated.rb | 95 +- lib/linguist/heuristics.rb | 140 +- lib/linguist/language.rb | 44 +- lib/linguist/languages.yml | 620 +- lib/linguist/lazy_blob.rb | 10 +- lib/linguist/popular.yml | 12 +- lib/linguist/repository.rb | 5 +- lib/linguist/samples.rb | 7 +- lib/linguist/shebang.rb | 20 +- lib/linguist/strategy/filename.rb | 12 +- lib/linguist/strategy/modeline.rb | 4 +- lib/linguist/tokenizer.rb | 6 + lib/linguist/vendor.yml | 27 +- lib/linguist/version.rb | 2 +- samples/AMPL/CT2.mod | 58 + samples/AMPL/toy.ampl | 25 + samples/API Blueprint/actions.apib | 55 + samples/API Blueprint/attributes.apib | 39 + samples/API Blueprint/simple.apib | 18 + samples/ApacheConf/apache.vhost | 17 + samples/AsciiDoc/list.asc | 3 + samples/Assembly/fp_sqr32_160_comba.inc | 245 + samples/Assembly/lib.inc | 170 + samples/Assembly/macros.inc | 321 + samples/Brainfuck/factor.b | 195 + samples/Brainfuck/fib100.bf | 13 + samples/Brainfuck/hello.bf | 4 + samples/Brainfuck/helloworld.bf | 3 + samples/Brainfuck/rot13.bf | 30 + samples/C++/ClasspathVMSystemProperties.inc | 57 + samples/C++/initClasses.inc | 2764 ++ samples/C++/instances.inc | 34 + samples/C/filenames/script | 2310 ++ samples/C/pqiv.h | 166 + samples/Chapel/distributions.chpl | 90 +- samples/Chapel/lulesh.chpl | 59 +- samples/Charity/example.ch | 6 + samples/Clarion/CStringClass.clw | 172 + samples/Clarion/ConsoleSupport.clw | 68 + samples/Clarion/HelloWorld.clw | 10 + samples/Clarion/hello.clw | 12 + samples/Clojure/build.boot | 15 + samples/Common Lisp/array.l | 164 + samples/Common Lisp/common.l | 1201 + samples/Common Lisp/hello.lisp | 2 + samples/D/mpq.d | 318 + .../fis_gtm_kitinstal.com | 443 + .../ghostpdl_zlib_make_vms.com | 867 + .../libxslt_build.com | 342 + .../vmsbackup_build.com | 10 + samples/DTrace/counts.d | 23 + samples/DTrace/javascript-trace.d | 73 + samples/DTrace/probes.d | 93 + samples/Eiffel/application.e | 44 + samples/Eiffel/book_collection.e | 82 + samples/Eiffel/git_checkout_command.e | 41 + samples/Elixir/filenames/mix.lock | 10 + .../Erlang/{factorial.script! => factorial} | 0 samples/Erlang/filenames/rebar.config | 260 + samples/Erlang/filenames/rebar.config.lock | 158 + samples/Erlang/filenames/rebar.lock | 16 + samples/Erlang/{release.script! => release} | 0 samples/Filterscript/colormatrix.fs | 35 + samples/Filterscript/fs_kernel.fs | 18 + samples/Formatted/long_seq.for | 919 + samples/Formatted/wksst8110.for | 1317 + samples/G-code/lm.g | 25912 -------------- samples/G-code/rm.g | 29735 ---------------- samples/GAS/hello.ms | 91 + samples/Go/api.pb.go | 1157 + samples/Go/embedded.go | 852 + samples/Go/gen-go-linguist-thrift.go | 18 + samples/Groff/Tcl.n | 275 + samples/Groff/create_view.l | 135 + samples/Groff/fsinterface.ms | 1174 + samples/Groovy/{build.script! => build.gvy} | 0 samples/Groovy/{groovy.script! => groovy} | 0 samples/HTML/rpanel.inc | 31 + samples/HTML/tailDel.inc | 5 + samples/Haskell/HsColour.hs | 114 + samples/HyPhy/AAModelComparison.bf | 252 + samples/HyPhy/CodonModelCompare.bf | 1046 + samples/HyPhy/MFPositiveSelection.bf | 1113 + samples/HyPhy/MatrixIndexing.bf | 1 + samples/HyPhy/MolecularClock.bf | 147 + samples/HyPhy/dNdSDistributionComparison.bf | 1025 + samples/HyPhy/hyphy_cmds.bf | 11003 ++++++ samples/HyPhy/profile_test.bf | 1 + samples/INI/MouseKeyboard.pro | 71 + samples/Isabelle ROOT/filenames/ROOT | 1104 + samples/JFlex/LexScan.flex | 742 + samples/JFlex/java.jflex | 305 + samples/Java/gen-java-linguist-thrift.java | 396 + samples/JavaScript/gen-js-linguist-thrift.js | 60 + samples/JavaScript/{js.script! => js} | 0 samples/JavaScript/{js2.script! => js2} | 0 samples/KiCad/Volume.sch | 714 + samples/KiCad/nrf-bga.kicad_pcb | 928 + samples/KiCad/ultimate-temp-controller.sch | 69 + samples/Lean/binary.lean | 75 + samples/Lean/set.hlean | 70 + samples/Lex/zend_ini_scanner.l | 601 + samples/Limbo/cat.b | 48 + samples/Limbo/lock.b | 26 + samples/Limbo/lock.m | 13 + samples/Linker Script/filenames/ld.script | 50 + samples/Linker Script/link.ld | 12 + samples/Linker Script/vmlinux.lds | 373 + samples/Linux Kernel Module/bcm4334x.mod | 2 + samples/Linux Kernel Module/mbcache.mod | 2 + samples/Linux Kernel Module/md5.mod | 2 + samples/MUF/39.m | 278 + samples/MUF/cmd-say.muf | 275 + samples/Makefile/filenames/Kbuild | 23 + samples/Makefile/filenames/Makefile.boot | 159 + samples/Makefile/foo.o.d | 5 + .../Makefile/{makefile.script! => makefile} | 0 samples/Mathematica/Predicates.wl | 150 + samples/Mathematica/UnitTest.wlt | 17 + samples/Modelica/NestedPackages.mo | 26 + samples/Modelica/NewtonCooling.mo | 24 + samples/Modelica/Pendulum.mo | 47 + samples/Modelica/RLC.mo | 16 + samples/Modelica/SecondOrderSystem.mo | 29 + samples/Modelica/System.mo | 19 + samples/Modelica/package.mo | 4 + samples/Modelica/package2.mo | 3 + samples/Modelica/package3.mo | 3 + samples/Modelica/package4.mo | 3 + samples/Modula-2/HuffChan.mod | 329 + samples/Module Management System/descrip.mms | 1204 + samples/Module Management System/openvms.mmk | 563 + .../Module Management System/simh_descrip.mms | 1204 + .../spline_descrip.mms | 31 + .../Module Management System/xv_makefile.mms | 271 + samples/NCL/PrnOscPat_driver.ncl | 109 + samples/NCL/WRF_static_2.ncl | 115 + samples/NCL/WRF_track_1.ncl | 160 + samples/NCL/cru_8.ncl | 129 + .../NCL/gsn_csm_xy2_time_series_inputs.ncl | 20 + samples/NCL/hdf4sds_7.ncl | 128 + samples/NCL/mask_12.ncl | 125 + samples/NCL/mcsst_1.ncl | 115 + samples/NCL/primero.ncl | 3 + samples/NCL/topo_9.ncl | 172 + samples/NCL/traj_3.ncl | 120 + samples/NCL/tsdiagram_1.ncl | 167 + samples/NCL/unique_9.ncl | 141 + samples/NCL/viewport_4.ncl | 131 + samples/NCL/weather_sym_6.ncl | 120 + samples/NCL/xy_29.ncl | 151 + samples/NL/assign0.nl | 84 + samples/NL/balassign0.nl | 2284 ++ samples/NetLinx+ERB/sample.axi.erb | 78 + samples/NetLinx+ERB/sample.axs.erb | 78 + samples/NetLinx/projector.axi | 132 + samples/NetLinx/volume-array.axs | 158 + samples/NewLisp/queens.nl | 49 + samples/Nginx/example.com.vhost | 242 + samples/Nu/{nu.script! => nu} | 0 samples/OCaml/cmdliner.ml | 1344 + samples/OCaml/common.ml | 14 + samples/OCaml/date.ml | 40 + samples/OCaml/map.ml | 337 + samples/OCaml/mirage.ml | 2503 ++ samples/OCaml/reload.ml | 125 + samples/OCaml/sigset.ml | 70 + samples/OCaml/uutf.ml | 810 + .../Objective-C/gen-cocoa-linguist-thrift.m | 176 + samples/PHP/{drupal.script! => drupal.php} | 0 samples/PHP/file_display.inc | 142 + samples/PHP/{php.script! => php} | 0 .../PHP/{php-script.script! => php-script} | 0 samples/PHP/{php2.script! => php2} | 0 samples/PHP/root.php | 6 + samples/PLSQL/myobject.sql | 15 + samples/PLSQL/packagebody.pkb | 58 + samples/PLSQL/packageheader.pks | 28 + samples/PLSQL/prime#.plsql | 93 + samples/PLSQL/who_called_me.sql | 65 + samples/PLpgSQL/plpgsql_lint-8.4.sql | 165 + samples/PLpgSQL/plpgsql_lint-9.0.sql | 165 + samples/PLpgSQL/plpgsql_lint-9.1.sql | 179 + samples/PLpgSQL/plpgsql_lint-9.2.sql | 166 + samples/PLpgSQL/plpgsql_lint-9.3.sql | 166 + samples/Pascal/image_url.inc | 37 + samples/Pascal/libc.inc | 56 + samples/Pascal/vmops_impl.inc | 502 + samples/Perl/exception_handler.pl | 117 + samples/Perl/getchar.al | 13 + samples/Perl/{perl.script! => perl} | 0 samples/Perl/strict.t | 1 + samples/Perl6/test.p6 | 20 - samples/PicoLisp/simul.l | 165 + .../{dleak-report.script! => dleak-report} | 0 samples/Public Key/id_dsa.asc | 1 + samples/Public Key/id_rsa.asc | 1 + samples/Public Key/sshkey1.asc | 7 + samples/Puppet/apacheinit.pp | 378 + samples/Python/gen-py-linguist-thrift.py | 83 + samples/Python/{python.script! => python} | 0 samples/Python/{python2.script! => python2} | 0 samples/Python/{python3.script! => python3} | 0 samples/QML/common.qbs | 155 + samples/QMake/{qmake.script! => qmake} | 0 .../{git-punchcard.script! => git-punchcard} | 0 samples/RenderScript/convolve3x3.rs | 67 + samples/RenderScript/scenegraph_objects.rsh | 323 + samples/Ruby/filenames/Deliverfile | 50 + samples/Ruby/filenames/Fastfile | 115 + samples/Ruby/filenames/Podfile | 18 + samples/Ruby/filenames/Snapfile | 26 + samples/Ruby/gen-rb-linguist-thrift.rb | 9 + samples/Ruby/index.json.jbuilder | 4 + samples/Ruby/{macruby.script! => macruby} | 0 samples/Ruby/rexpl | 4 + samples/Ruby/{ruby.script! => ruby} | 0 samples/Ruby/{ruby2.script! => ruby2} | 0 samples/Ruby/shoes-swt | 11 + samples/SMT/bignum_lia1.smt2 | 20 + samples/SMT/list4.smt2 | 20 + samples/SMT/queen10-1.smt2 | 123 + samples/SMT/shufflevector.smt | 2104 ++ samples/SQL/create_stuff.sql | 21 + samples/SQL/drop_stuff.sql | 13 + samples/SQL/dual.sql | 3 + samples/SQL/hostcache_set_state.inc | 23 + samples/SQLPL/check_reorg.sql | 39 + samples/SQLPL/comm_amount.db2 | 30 + samples/SQLPL/drop_table.db2 | 13 + samples/SQLPL/runstats.sql | 18 + samples/SQLPL/sleep.sql | 9 + samples/SQLPL/trigger.sql | 9 + samples/SaltStack/gimp.sls | 7 + samples/SaltStack/gpg4win-light.sls | 13 + samples/SaltStack/openoffice.sls | 21 + samples/SaltStack/truecrypt.sls | 9 + ...les-of-beer.script! => 99-bottles-of-beer} | 0 samples/Scala/{scala.script! => scala} | 0 ...les-of-beer.script! => 99-bottles-of-beer} | 0 samples/Shell/{bash.script! => bash} | 0 samples/Shell/{plugin.script! => plugin} | 0 samples/Shell/{sbt.script! => sbt} | 0 samples/Shell/{sh.script! => sh} | 0 ...tring-chopping.script! => string-chopping} | 0 samples/Shell/valid-shebang.tool | 280 + samples/Shell/{zsh.script! => zsh} | 0 samples/Smali/ActionBarDrawerToggle.smali | 551 + samples/Smali/DoodleMobileAnaylise.smali | 4235 +++ samples/Smali/ModernAsyncTask.smali | 700 + samples/Smali/PenguinSprite.smali | 781 + samples/Smali/Subject.smali | 1179 + samples/Smali/ViewDragHelper.smali | 4382 +++ samples/Smali/WbxmlSerializer.smali | 1863 + samples/SourcePawn/Check.inc | 246 + samples/SourcePawn/fixed.inc | 91 + samples/SourcePawn/foo.sma | 272 + samples/SourcePawn/mfile.inc | 289 + samples/SourcePawn/y_testing.inc | 633 + samples/Text/01_top.ncl | 18 + samples/Text/LIDARLite.ncl | 34 + samples/Text/Site.local.ncl | 22 + samples/Text/main.ncl | 46 + samples/Text/min-help.ncl | 45 + samples/Text/receiver.ncl | 21 + samples/Text/rmMonAnnCycLLT-help.ncl | 40 + samples/Text/zonalAve-help.ncl | 35 + samples/Thrift/linguist.thrift | 5 + samples/Unity3D Asset/GapTile.mat | 28 + samples/Unity3D Asset/Hover.anim | 157 + samples/Unity3D Asset/Tiles.meta | 5 + samples/Unity3D Asset/TimeManager.asset | 8 + .../canvas_Fullscreen_Fader.prefab | 157 + samples/VimL/filenames/.nvimrc | 10 + samples/VimL/solarized.vim | 1117 + samples/WebIDL/AnimationEvent.webidl | 2 +- samples/WebIDL/Fetch.webidl | 2 +- samples/XML/Application.xib | 20 + samples/XML/Example.mdpolicy | 12 + samples/XML/Storyboard.storyboard | 7 + samples/XML/intellij.iml | 13 + samples/XML/point-3.1.gml | 4 + samples/XML/point-3.2.gml | 4 + samples/XML/tei-odd-sample.odd | 1304 + samples/XML/xhtml-struct-1.mod | 125 + samples/XPages/navbar.xsp-config | 17 + samples/XPages/navbar.xsp.metadata | 22 + samples/XS/CommonMark.xs | 466 + samples/wisp/intro.wisp | 2 +- samples/xBase/sample.ch | 30 + samples/xBase/sample.prg | 167 + script/convert-grammars | 10 +- script/travis/before_install | 5 + .../Data/Modelines/fundamentalEmacs.c | 6 + .../fixtures/Data/Modelines/seeplusplusEmacs1 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs2 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs3 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs4 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs5 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs6 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs7 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs8 | 2 + .../fixtures/Data/Modelines/seeplusplusEmacs9 | 2 + test/fixtures/Data/sourcemap.v1.map | 12 + test/fixtures/Data/sourcemap.v3.map | 1 + test/fixtures/Generated/ABM8G.mod | 50 + test/fixtures/Generated/ms2.mod | 19 + test/fixtures/SVG/alg_schema.link.svg | 1 + test/fixtures/SVG/alg_schema.svg | 269 + test/fixtures/Shell/_bashrc | 175 + test/helper.rb | 1 + test/test_blob.rb | 81 +- test/test_color_proximity.rb | 23 + test/test_generated.rb | 62 +- test/test_grammars.rb | 3 +- test/test_heuristics.rb | 47 +- test/test_instrumentation.rb | 50 + test/test_language.rb | 20 +- test/test_modelines.rb | 20 + test/test_pedantic.rb | 2 +- test/test_samples.rb | 17 +- test/test_shebang.rb | 3 +- test/test_tokenizer.rb | 22 +- vendor/grammars/AutoHotkey | 2 +- vendor/grammars/CLIPS-sublime | 2 +- vendor/grammars/ColdFusion | 2 +- vendor/grammars/Docker.tmbundle | 2 +- vendor/grammars/Elm.tmLanguage | 2 +- vendor/grammars/Handlebars | 2 +- vendor/grammars/IDL-Syntax | 2 +- vendor/grammars/InnoSetup | 2 +- vendor/grammars/Julia.tmbundle | 2 +- vendor/grammars/Lean.tmbundle | 1 + vendor/grammars/Modelica | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/PHP-Twig.tmbundle | 2 +- vendor/grammars/SMT.tmbundle | 1 + vendor/grammars/Stylus | 2 +- vendor/grammars/Sublime-Coq | 2 +- vendor/grammars/Sublime-Logos | 2 +- vendor/grammars/Sublime-Modula-2 | 1 + vendor/grammars/Sublime-REBOL | 2 +- vendor/grammars/Sublime-Red | 1 + vendor/grammars/Sublime-SQF-Language | 2 +- vendor/grammars/Sublime-Text-2-OpenEdge-ABL | 2 +- vendor/grammars/Sublime-VimL | 2 +- vendor/grammars/SublimeClarion | 1 + vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/abap.tmbundle | 2 +- vendor/grammars/ada.tmbundle | 2 +- vendor/grammars/ampl | 1 + vendor/grammars/api-blueprint-sublime-plugin | 1 + vendor/grammars/asciidoc.tmbundle | 2 +- vendor/grammars/atom-fsharp | 1 + vendor/grammars/atom-language-purescript | 1 + vendor/grammars/ats.sublime | 2 +- vendor/grammars/bro-sublime | 2 +- vendor/grammars/carto-atom | 2 +- vendor/grammars/ceylon-sublimetext | 2 +- vendor/grammars/chapel-tmbundle | 2 +- vendor/grammars/css.tmbundle | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/fsharpbinding | 1 - vendor/grammars/gap-tmbundle | 2 +- vendor/grammars/grace-tmbundle | 2 +- vendor/grammars/graphviz.tmbundle | 2 +- vendor/grammars/haskell.tmbundle | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/html.tmbundle | 2 +- vendor/grammars/idl.tmbundle | 2 +- vendor/grammars/jade-tmbundle | 2 +- vendor/grammars/java.tmbundle | 2 +- vendor/grammars/javadoc.tmbundle | 1 - vendor/grammars/jflex.tmbundle | 1 + vendor/grammars/jquery-tmbundle | 1 - vendor/grammars/kotlin-sublime-package | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-coffee-script | 2 +- vendor/grammars/language-crystal | 1 + vendor/grammars/language-csharp | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-jsoniq | 1 + vendor/grammars/language-ncl | 1 + vendor/grammars/language-python | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/language-xbase | 1 + vendor/grammars/language-yaml | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/lisp.tmbundle | 2 +- vendor/grammars/mercury-tmlanguage | 2 +- vendor/grammars/ocaml.tmbundle | 2 +- vendor/grammars/openscad.tmbundle | 1 + vendor/grammars/oracle.tmbundle | 1 + vendor/grammars/perl.tmbundle | 2 +- vendor/grammars/php-smarty.tmbundle | 2 +- vendor/grammars/php.tmbundle | 2 +- vendor/grammars/powershell | 2 +- vendor/grammars/r.tmbundle | 2 +- vendor/grammars/restructuredtext.tmbundle | 2 +- vendor/grammars/ruby-on-rails-tmbundle | 1 - vendor/grammars/sas.tmbundle | 2 +- vendor/grammars/sass-textmate-bundle | 2 +- vendor/grammars/smali-sublime | 1 + vendor/grammars/sublime-better-typescript | 2 +- vendor/grammars/sublime-idris | 2 +- vendor/grammars/sublime-mask | 2 +- vendor/grammars/sublime-netlinx | 1 + vendor/grammars/sublime-nginx | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/sublime-tea | 2 +- vendor/grammars/sublime-text-ox | 2 +- vendor/grammars/sublime-varnish | 1 + vendor/grammars/sublime_cobol | 2 +- vendor/grammars/text.tmbundle | 1 - vendor/grammars/textile.tmbundle | 1 - vendor/grammars/textmate.tmbundle | 1 - vendor/grammars/toml.tmbundle | 2 +- vendor/grammars/xc.tmbundle | 1 + 434 files changed, 79876 insertions(+), 56121 deletions(-) create mode 100644 samples/AMPL/CT2.mod create mode 100644 samples/AMPL/toy.ampl create mode 100644 samples/API Blueprint/actions.apib create mode 100644 samples/API Blueprint/attributes.apib create mode 100644 samples/API Blueprint/simple.apib create mode 100644 samples/ApacheConf/apache.vhost create mode 100644 samples/Assembly/fp_sqr32_160_comba.inc create mode 100644 samples/Assembly/lib.inc create mode 100644 samples/Assembly/macros.inc create mode 100644 samples/Brainfuck/factor.b create mode 100644 samples/Brainfuck/fib100.bf create mode 100644 samples/Brainfuck/hello.bf create mode 100644 samples/Brainfuck/helloworld.bf create mode 100644 samples/Brainfuck/rot13.bf create mode 100644 samples/C++/ClasspathVMSystemProperties.inc create mode 100644 samples/C++/initClasses.inc create mode 100644 samples/C++/instances.inc create mode 100755 samples/C/filenames/script create mode 100644 samples/C/pqiv.h create mode 100644 samples/Charity/example.ch create mode 100644 samples/Clarion/CStringClass.clw create mode 100644 samples/Clarion/ConsoleSupport.clw create mode 100644 samples/Clarion/HelloWorld.clw create mode 100644 samples/Clarion/hello.clw create mode 100644 samples/Clojure/build.boot create mode 100644 samples/Common Lisp/array.l create mode 100644 samples/Common Lisp/common.l create mode 100644 samples/Common Lisp/hello.lisp create mode 100644 samples/D/mpq.d create mode 100644 samples/DIGITAL Command Language/fis_gtm_kitinstal.com create mode 100644 samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com create mode 100644 samples/DIGITAL Command Language/libxslt_build.com create mode 100644 samples/DIGITAL Command Language/vmsbackup_build.com create mode 100644 samples/DTrace/counts.d create mode 100644 samples/DTrace/javascript-trace.d create mode 100644 samples/DTrace/probes.d create mode 100644 samples/Eiffel/application.e create mode 100644 samples/Eiffel/book_collection.e create mode 100644 samples/Eiffel/git_checkout_command.e create mode 100644 samples/Elixir/filenames/mix.lock rename samples/Erlang/{factorial.script! => factorial} (100%) create mode 100644 samples/Erlang/filenames/rebar.config create mode 100644 samples/Erlang/filenames/rebar.config.lock create mode 100644 samples/Erlang/filenames/rebar.lock rename samples/Erlang/{release.script! => release} (100%) create mode 100644 samples/Filterscript/colormatrix.fs create mode 100644 samples/Filterscript/fs_kernel.fs create mode 100644 samples/Formatted/long_seq.for create mode 100644 samples/Formatted/wksst8110.for delete mode 100644 samples/G-code/lm.g delete mode 100644 samples/G-code/rm.g create mode 100644 samples/GAS/hello.ms create mode 100644 samples/Go/api.pb.go create mode 100644 samples/Go/embedded.go create mode 100644 samples/Go/gen-go-linguist-thrift.go create mode 100644 samples/Groff/Tcl.n create mode 100644 samples/Groff/create_view.l create mode 100644 samples/Groff/fsinterface.ms rename samples/Groovy/{build.script! => build.gvy} (100%) rename samples/Groovy/{groovy.script! => groovy} (100%) create mode 100644 samples/HTML/rpanel.inc create mode 100644 samples/HTML/tailDel.inc create mode 100644 samples/Haskell/HsColour.hs create mode 100644 samples/HyPhy/AAModelComparison.bf create mode 100644 samples/HyPhy/CodonModelCompare.bf create mode 100644 samples/HyPhy/MFPositiveSelection.bf create mode 100755 samples/HyPhy/MatrixIndexing.bf create mode 100644 samples/HyPhy/MolecularClock.bf create mode 100644 samples/HyPhy/dNdSDistributionComparison.bf create mode 100644 samples/HyPhy/hyphy_cmds.bf create mode 100755 samples/HyPhy/profile_test.bf create mode 100644 samples/INI/MouseKeyboard.pro create mode 100644 samples/Isabelle ROOT/filenames/ROOT create mode 100644 samples/JFlex/LexScan.flex create mode 100644 samples/JFlex/java.jflex create mode 100644 samples/Java/gen-java-linguist-thrift.java create mode 100644 samples/JavaScript/gen-js-linguist-thrift.js rename samples/JavaScript/{js.script! => js} (100%) rename samples/JavaScript/{js2.script! => js2} (100%) create mode 100644 samples/KiCad/Volume.sch create mode 100644 samples/KiCad/nrf-bga.kicad_pcb create mode 100644 samples/KiCad/ultimate-temp-controller.sch create mode 100644 samples/Lean/binary.lean create mode 100644 samples/Lean/set.hlean create mode 100644 samples/Lex/zend_ini_scanner.l create mode 100644 samples/Limbo/cat.b create mode 100644 samples/Limbo/lock.b create mode 100644 samples/Limbo/lock.m create mode 100644 samples/Linker Script/filenames/ld.script create mode 100644 samples/Linker Script/link.ld create mode 100644 samples/Linker Script/vmlinux.lds create mode 100644 samples/Linux Kernel Module/bcm4334x.mod create mode 100644 samples/Linux Kernel Module/mbcache.mod create mode 100644 samples/Linux Kernel Module/md5.mod create mode 100644 samples/MUF/39.m create mode 100644 samples/MUF/cmd-say.muf create mode 100644 samples/Makefile/filenames/Kbuild create mode 100644 samples/Makefile/filenames/Makefile.boot create mode 100644 samples/Makefile/foo.o.d rename samples/Makefile/{makefile.script! => makefile} (100%) create mode 100644 samples/Mathematica/Predicates.wl create mode 100644 samples/Mathematica/UnitTest.wlt create mode 100644 samples/Modelica/NestedPackages.mo create mode 100644 samples/Modelica/NewtonCooling.mo create mode 100644 samples/Modelica/Pendulum.mo create mode 100644 samples/Modelica/RLC.mo create mode 100644 samples/Modelica/SecondOrderSystem.mo create mode 100644 samples/Modelica/System.mo create mode 100644 samples/Modelica/package.mo create mode 100644 samples/Modelica/package2.mo create mode 100644 samples/Modelica/package3.mo create mode 100644 samples/Modelica/package4.mo create mode 100644 samples/Modula-2/HuffChan.mod create mode 100644 samples/Module Management System/descrip.mms create mode 100644 samples/Module Management System/openvms.mmk create mode 100755 samples/Module Management System/simh_descrip.mms create mode 100644 samples/Module Management System/spline_descrip.mms create mode 100644 samples/Module Management System/xv_makefile.mms create mode 100644 samples/NCL/PrnOscPat_driver.ncl create mode 100644 samples/NCL/WRF_static_2.ncl create mode 100644 samples/NCL/WRF_track_1.ncl create mode 100644 samples/NCL/cru_8.ncl create mode 100644 samples/NCL/gsn_csm_xy2_time_series_inputs.ncl create mode 100644 samples/NCL/hdf4sds_7.ncl create mode 100644 samples/NCL/mask_12.ncl create mode 100644 samples/NCL/mcsst_1.ncl create mode 100644 samples/NCL/primero.ncl create mode 100644 samples/NCL/topo_9.ncl create mode 100644 samples/NCL/traj_3.ncl create mode 100644 samples/NCL/tsdiagram_1.ncl create mode 100644 samples/NCL/unique_9.ncl create mode 100644 samples/NCL/viewport_4.ncl create mode 100644 samples/NCL/weather_sym_6.ncl create mode 100644 samples/NCL/xy_29.ncl create mode 100644 samples/NL/assign0.nl create mode 100644 samples/NL/balassign0.nl create mode 100644 samples/NetLinx+ERB/sample.axi.erb create mode 100644 samples/NetLinx+ERB/sample.axs.erb create mode 100644 samples/NetLinx/projector.axi create mode 100644 samples/NetLinx/volume-array.axs create mode 100644 samples/NewLisp/queens.nl create mode 100644 samples/Nginx/example.com.vhost rename samples/Nu/{nu.script! => nu} (100%) create mode 100644 samples/OCaml/cmdliner.ml create mode 100644 samples/OCaml/common.ml create mode 100644 samples/OCaml/date.ml create mode 100644 samples/OCaml/map.ml create mode 100644 samples/OCaml/mirage.ml create mode 100644 samples/OCaml/reload.ml create mode 100644 samples/OCaml/sigset.ml create mode 100644 samples/OCaml/uutf.ml create mode 100644 samples/Objective-C/gen-cocoa-linguist-thrift.m rename samples/PHP/{drupal.script! => drupal.php} (100%) create mode 100644 samples/PHP/file_display.inc rename samples/PHP/{php.script! => php} (100%) rename samples/PHP/{php-script.script! => php-script} (100%) rename samples/PHP/{php2.script! => php2} (100%) create mode 100644 samples/PHP/root.php create mode 100644 samples/PLSQL/myobject.sql create mode 100644 samples/PLSQL/packagebody.pkb create mode 100644 samples/PLSQL/packageheader.pks create mode 100644 samples/PLSQL/prime#.plsql create mode 100644 samples/PLSQL/who_called_me.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-8.4.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.0.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.1.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.2.sql create mode 100644 samples/PLpgSQL/plpgsql_lint-9.3.sql create mode 100644 samples/Pascal/image_url.inc create mode 100644 samples/Pascal/libc.inc create mode 100644 samples/Pascal/vmops_impl.inc create mode 100644 samples/Perl/exception_handler.pl create mode 100644 samples/Perl/getchar.al rename samples/Perl/{perl.script! => perl} (100%) create mode 100644 samples/PicoLisp/simul.l rename samples/Prolog/{dleak-report.script! => dleak-report} (100%) create mode 100644 samples/Public Key/id_dsa.asc create mode 100644 samples/Public Key/id_rsa.asc create mode 100644 samples/Public Key/sshkey1.asc create mode 100644 samples/Puppet/apacheinit.pp create mode 100644 samples/Python/gen-py-linguist-thrift.py rename samples/Python/{python.script! => python} (100%) rename samples/Python/{python2.script! => python2} (100%) rename samples/Python/{python3.script! => python3} (100%) create mode 100644 samples/QML/common.qbs rename samples/QMake/{qmake.script! => qmake} (100%) rename samples/R/{git-punchcard.script! => git-punchcard} (100%) create mode 100644 samples/RenderScript/convolve3x3.rs create mode 100644 samples/RenderScript/scenegraph_objects.rsh create mode 100644 samples/Ruby/filenames/Deliverfile create mode 100644 samples/Ruby/filenames/Fastfile create mode 100644 samples/Ruby/filenames/Podfile create mode 100644 samples/Ruby/filenames/Snapfile create mode 100644 samples/Ruby/gen-rb-linguist-thrift.rb create mode 100644 samples/Ruby/index.json.jbuilder rename samples/Ruby/{macruby.script! => macruby} (100%) create mode 100755 samples/Ruby/rexpl rename samples/Ruby/{ruby.script! => ruby} (100%) rename samples/Ruby/{ruby2.script! => ruby2} (100%) create mode 100755 samples/Ruby/shoes-swt create mode 100644 samples/SMT/bignum_lia1.smt2 create mode 100644 samples/SMT/list4.smt2 create mode 100644 samples/SMT/queen10-1.smt2 create mode 100644 samples/SMT/shufflevector.smt create mode 100644 samples/SQL/create_stuff.sql create mode 100644 samples/SQL/drop_stuff.sql create mode 100644 samples/SQL/dual.sql create mode 100644 samples/SQL/hostcache_set_state.inc create mode 100644 samples/SQLPL/check_reorg.sql create mode 100644 samples/SQLPL/comm_amount.db2 create mode 100644 samples/SQLPL/drop_table.db2 create mode 100644 samples/SQLPL/runstats.sql create mode 100644 samples/SQLPL/sleep.sql create mode 100644 samples/SQLPL/trigger.sql create mode 100644 samples/SaltStack/gimp.sls create mode 100644 samples/SaltStack/gpg4win-light.sls create mode 100644 samples/SaltStack/openoffice.sls create mode 100644 samples/SaltStack/truecrypt.sls rename samples/Scala/{99-bottles-of-beer.script! => 99-bottles-of-beer} (100%) rename samples/Scala/{scala.script! => scala} (100%) rename samples/Shell/{99-bottles-of-beer.script! => 99-bottles-of-beer} (100%) rename samples/Shell/{bash.script! => bash} (100%) rename samples/Shell/{plugin.script! => plugin} (100%) rename samples/Shell/{sbt.script! => sbt} (100%) rename samples/Shell/{sh.script! => sh} (100%) rename samples/Shell/{string-chopping.script! => string-chopping} (100%) create mode 100755 samples/Shell/valid-shebang.tool rename samples/Shell/{zsh.script! => zsh} (100%) create mode 100644 samples/Smali/ActionBarDrawerToggle.smali create mode 100644 samples/Smali/DoodleMobileAnaylise.smali create mode 100644 samples/Smali/ModernAsyncTask.smali create mode 100644 samples/Smali/PenguinSprite.smali create mode 100644 samples/Smali/Subject.smali create mode 100644 samples/Smali/ViewDragHelper.smali create mode 100644 samples/Smali/WbxmlSerializer.smali create mode 100644 samples/SourcePawn/Check.inc create mode 100644 samples/SourcePawn/fixed.inc create mode 100644 samples/SourcePawn/foo.sma create mode 100644 samples/SourcePawn/mfile.inc create mode 100644 samples/SourcePawn/y_testing.inc create mode 100644 samples/Text/01_top.ncl create mode 100644 samples/Text/LIDARLite.ncl create mode 100644 samples/Text/Site.local.ncl create mode 100644 samples/Text/main.ncl create mode 100644 samples/Text/min-help.ncl create mode 100644 samples/Text/receiver.ncl create mode 100644 samples/Text/rmMonAnnCycLLT-help.ncl create mode 100644 samples/Text/zonalAve-help.ncl create mode 100644 samples/Thrift/linguist.thrift create mode 100644 samples/Unity3D Asset/GapTile.mat create mode 100644 samples/Unity3D Asset/Hover.anim create mode 100644 samples/Unity3D Asset/Tiles.meta create mode 100644 samples/Unity3D Asset/TimeManager.asset create mode 100644 samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab create mode 100644 samples/VimL/filenames/.nvimrc create mode 100644 samples/VimL/solarized.vim create mode 100644 samples/XML/Application.xib create mode 100644 samples/XML/Example.mdpolicy create mode 100644 samples/XML/Storyboard.storyboard create mode 100644 samples/XML/intellij.iml create mode 100644 samples/XML/point-3.1.gml create mode 100644 samples/XML/point-3.2.gml create mode 100644 samples/XML/tei-odd-sample.odd create mode 100644 samples/XML/xhtml-struct-1.mod create mode 100755 samples/XPages/navbar.xsp-config create mode 100755 samples/XPages/navbar.xsp.metadata create mode 100644 samples/XS/CommonMark.xs create mode 100644 samples/xBase/sample.ch create mode 100644 samples/xBase/sample.prg create mode 100644 test/fixtures/Data/Modelines/fundamentalEmacs.c create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs1 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs2 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs3 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs4 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs5 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs6 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs7 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs8 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs9 create mode 100644 test/fixtures/Data/sourcemap.v1.map create mode 100644 test/fixtures/Data/sourcemap.v3.map create mode 100644 test/fixtures/Generated/ABM8G.mod create mode 100644 test/fixtures/Generated/ms2.mod create mode 120000 test/fixtures/SVG/alg_schema.link.svg create mode 100644 test/fixtures/SVG/alg_schema.svg create mode 100644 test/fixtures/Shell/_bashrc create mode 100644 test/test_color_proximity.rb create mode 100644 test/test_instrumentation.rb create mode 160000 vendor/grammars/Lean.tmbundle create mode 160000 vendor/grammars/SMT.tmbundle create mode 160000 vendor/grammars/Sublime-Modula-2 create mode 160000 vendor/grammars/Sublime-Red create mode 160000 vendor/grammars/SublimeClarion create mode 160000 vendor/grammars/ampl create mode 160000 vendor/grammars/api-blueprint-sublime-plugin create mode 160000 vendor/grammars/atom-fsharp create mode 160000 vendor/grammars/atom-language-purescript delete mode 160000 vendor/grammars/fsharpbinding delete mode 160000 vendor/grammars/javadoc.tmbundle create mode 160000 vendor/grammars/jflex.tmbundle delete mode 160000 vendor/grammars/jquery-tmbundle create mode 160000 vendor/grammars/language-crystal create mode 160000 vendor/grammars/language-jsoniq create mode 160000 vendor/grammars/language-ncl create mode 160000 vendor/grammars/language-xbase create mode 160000 vendor/grammars/openscad.tmbundle create mode 160000 vendor/grammars/oracle.tmbundle delete mode 160000 vendor/grammars/ruby-on-rails-tmbundle create mode 160000 vendor/grammars/smali-sublime create mode 160000 vendor/grammars/sublime-netlinx create mode 160000 vendor/grammars/sublime-varnish delete mode 160000 vendor/grammars/text.tmbundle delete mode 160000 vendor/grammars/textile.tmbundle delete mode 160000 vendor/grammars/textmate.tmbundle create mode 160000 vendor/grammars/xc.tmbundle diff --git a/.gitmodules b/.gitmodules index 9fefaa4c..dcd94622 100644 --- a/.gitmodules +++ b/.gitmodules @@ -96,7 +96,7 @@ url = https://github.com/bfad/Sublime-Lasso [submodule "vendor/grammars/chapel-tmbundle"] path = vendor/grammars/chapel-tmbundle - url = https://github.com/bholt/chapel-tmbundle + url = https://github.com/chapel-lang/chapel-tmbundle [submodule "vendor/grammars/sublime-nginx"] path = vendor/grammars/sublime-nginx url = https://github.com/brandonwamboldt/sublime-nginx @@ -118,9 +118,6 @@ [submodule "vendor/grammars/cucumber-tmbundle"] path = vendor/grammars/cucumber-tmbundle url = https://github.com/cucumber/cucumber-tmbundle -[submodule "vendor/grammars/Handlebars"] - path = vendor/grammars/Handlebars - url = https://github.com/daaain/Handlebars [submodule "vendor/grammars/powershell"] path = vendor/grammars/powershell url = https://github.com/SublimeText/PowerShell @@ -136,9 +133,6 @@ [submodule "vendor/grammars/fancy-tmbundle"] path = vendor/grammars/fancy-tmbundle url = https://github.com/fancy-lang/fancy-tmbundle -[submodule "vendor/grammars/fsharpbinding"] - path = vendor/grammars/fsharpbinding - url = https://github.com/fsharp/fsharpbinding [submodule "vendor/grammars/monkey.tmbundle"] path = vendor/grammars/monkey.tmbundle url = https://github.com/gingerbeardman/monkey.tmbundle @@ -169,9 +163,6 @@ [submodule "vendor/grammars/Textmate-Gosu-Bundle"] path = vendor/grammars/Textmate-Gosu-Bundle url = https://github.com/jpcamara/Textmate-Gosu-Bundle -[submodule "vendor/grammars/jquery-tmbundle"] - path = vendor/grammars/jquery-tmbundle - url = https://github.com/kswedberg/jquery-tmbundle [submodule "vendor/grammars/fish-tmbundle"] path = vendor/grammars/fish-tmbundle url = https://github.com/l15n/fish-tmbundle @@ -346,9 +337,6 @@ [submodule "vendor/grammars/java.tmbundle"] path = vendor/grammars/java.tmbundle url = https://github.com/textmate/java.tmbundle -[submodule "vendor/grammars/javadoc.tmbundle"] - path = vendor/grammars/javadoc.tmbundle - url = https://github.com/textmate/javadoc.tmbundle [submodule "vendor/grammars/javascript-objective-j.tmbundle"] path = vendor/grammars/javascript-objective-j.tmbundle url = https://github.com/textmate/javascript-objective-j.tmbundle @@ -397,9 +385,6 @@ [submodule "vendor/grammars/pascal.tmbundle"] path = vendor/grammars/pascal.tmbundle url = https://github.com/textmate/pascal.tmbundle -[submodule "vendor/grammars/perl.tmbundle"] - path = vendor/grammars/perl.tmbundle - url = https://github.com/textmate/perl.tmbundle [submodule "vendor/grammars/php-smarty.tmbundle"] path = vendor/grammars/php-smarty.tmbundle url = https://github.com/textmate/php-smarty.tmbundle @@ -427,9 +412,6 @@ [submodule "vendor/grammars/ruby-haml.tmbundle"] path = vendor/grammars/ruby-haml.tmbundle url = https://github.com/textmate/ruby-haml.tmbundle -[submodule "vendor/grammars/ruby-on-rails-tmbundle"] - path = vendor/grammars/ruby-on-rails-tmbundle - url = https://github.com/textmate/ruby-on-rails-tmbundle [submodule "vendor/grammars/scheme.tmbundle"] path = vendor/grammars/scheme.tmbundle url = https://github.com/textmate/scheme.tmbundle @@ -448,15 +430,6 @@ [submodule "vendor/grammars/tcl.tmbundle"] path = vendor/grammars/tcl.tmbundle url = https://github.com/textmate/tcl.tmbundle -[submodule "vendor/grammars/text.tmbundle"] - path = vendor/grammars/text.tmbundle - url = https://github.com/textmate/text.tmbundle -[submodule "vendor/grammars/textile.tmbundle"] - path = vendor/grammars/textile.tmbundle - url = https://github.com/textmate/textile.tmbundle -[submodule "vendor/grammars/textmate.tmbundle"] - path = vendor/grammars/textmate.tmbundle - url = https://github.com/textmate/textmate.tmbundle [submodule "vendor/grammars/thrift.tmbundle"] path = vendor/grammars/thrift.tmbundle url = https://github.com/textmate/thrift.tmbundle @@ -490,10 +463,6 @@ [submodule "vendor/grammars/sublime-nix"] path = vendor/grammars/sublime-nix url = https://github.com/wmertens/sublime-nix -[submodule "vendor/grammars/ada.tmbundle"] - path = vendor/grammars/ada.tmbundle - url = https://github.com/aroben/ada.tmbundle - branch = better-with-highlighting [submodule "vendor/grammars/oz-tmbundle"] path = vendor/grammars/oz-tmbundle url = https://github.com/eregon/oz-tmbundle @@ -615,6 +584,12 @@ [submodule "vendor/grammars/mediawiki.tmbundle"] path = vendor/grammars/mediawiki.tmbundle url = https://github.com/textmate/mediawiki.tmbundle +[submodule "vendor/grammars/SublimeClarion"] + path = vendor/grammars/SublimeClarion + url = https://github.com/fushnisoft/SublimeClarion +[submodule "vendor/grammars/oracle.tmbundle"] + path = vendor/grammars/oracle.tmbundle + url = https://github.com/mulander/oracle.tmbundle.git [submodule "vendor/grammars/BrightScript.tmbundle"] path = vendor/grammars/BrightScript.tmbundle url = https://github.com/cmink/BrightScript.tmbundle @@ -627,3 +602,66 @@ [submodule "vendor/grammars/sublime-text-pig-latin"] path = vendor/grammars/sublime-text-pig-latin url = https://github.com/goblindegook/sublime-text-pig-latin +[submodule "vendor/grammars/Lean.tmbundle"] + path = vendor/grammars/Lean.tmbundle + url = https://github.com/leanprover/Lean.tmbundle +[submodule "vendor/grammars/ampl"] + path = vendor/grammars/ampl + url = https://github.com/ampl/sublime-ampl +[submodule "vendor/grammars/openscad.tmbundle"] + path = vendor/grammars/openscad.tmbundle + url = https://github.com/tbuser/openscad.tmbundle +[submodule "vendor/grammars/sublime-varnish"] + path = vendor/grammars/sublime-varnish + url = https://github.com/brandonwamboldt/sublime-varnish +[submodule "vendor/grammars/xc.tmbundle"] + path = vendor/grammars/xc.tmbundle + url = https://github.com/graymalkin/xc.tmbundle +[submodule "vendor/grammars/perl.tmbundle"] + path = vendor/grammars/perl.tmbundle + url = https://github.com/textmate/perl.tmbundle +[submodule "vendor/grammars/sublime-netlinx"] + path = vendor/grammars/sublime-netlinx + url = https://github.com/amclain/sublime-netlinx +[submodule "vendor/grammars/Sublime-Red"] + path = vendor/grammars/Sublime-Red + url = https://github.com/Oldes/Sublime-Red +[submodule "vendor/grammars/jflex.tmbundle"] + path = vendor/grammars/jflex.tmbundle + url = https://github.com/jflex-de/jflex.tmbundle.git +[submodule "vendor/grammars/Sublime-Modula-2"] + path = vendor/grammars/Sublime-Modula-2 + url = https://github.com/harogaston/Sublime-Modula-2 +[submodule "vendor/grammars/ada.tmbundle"] + path = vendor/grammars/ada.tmbundle + url = https://github.com/textmate/ada.tmbundle +[submodule "vendor/grammars/api-blueprint-sublime-plugin"] + path = vendor/grammars/api-blueprint-sublime-plugin + url = https://github.com/apiaryio/api-blueprint-sublime-plugin +[submodule "vendor/grammars/Handlebars"] + path = vendor/grammars/Handlebars + url = https://github.com/daaain/Handlebars +[submodule "vendor/grammars/smali-sublime"] + path = vendor/grammars/smali-sublime + url = https://github.com/ShaneWilton/sublime-smali +[submodule "vendor/grammars/language-jsoniq"] + path = vendor/grammars/language-jsoniq + url = http://github.com/wcandillon/language-jsoniq +[submodule "vendor/grammars/atom-fsharp"] + path = vendor/grammars/atom-fsharp + url = https://github.com/fsprojects/atom-fsharp +[submodule "vendor/grammars/SMT.tmbundle"] + path = vendor/grammars/SMT.tmbundle + url = https://github.com/SRI-CSL/SMT.tmbundle.git +[submodule "vendor/grammars/language-crystal"] + path = vendor/grammars/language-crystal + url = https://github.com/k2b6s9j/language-crystal +[submodule "vendor/grammars/language-xbase"] + path = vendor/grammars/language-xbase + url = https://github.com/hernad/atom-language-harbour +[submodule "vendor/grammars/language-ncl"] + path = vendor/grammars/language-ncl + url = https://github.com/rpavlick/language-ncl.git +[submodule "vendor/grammars/atom-language-purescript"] + path = vendor/grammars/atom-language-purescript + url = https://github.com/freebroccolo/atom-language-purescript diff --git a/.travis.yml b/.travis.yml index 4d0c2351..52540b57 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,3 @@ -sudo: false before_install: script/travis/before_install rvm: - 1.9.3 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b1c8a09c..1d358957 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,31 @@ # Contributing -Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. The majority of contributions won't need to touch any Ruby code at all. +[code-of-conduct]: http://todogroup.org/opencodeofconduct/#Linguist/opensource@github.com + +Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code. + +The majority of contributions won't need to touch any Ruby code at all. + +## Adding an extension to a language + +We try only to add new extensions once they have some usage on GitHub. In most cases we prefer that extensions be in use in hundreds of repositories before supporting them in Linguist. + +To add support for a new extension: + +0. Add your extension to the language entry in [`languages.yml`][languages]. +0. Add at least one sample for your extension to the [samples directory][samples] in the correct subdirectory. +0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage. + +In addition, if this extension is already listed in [`languages.yml`][languages] then sometimes a few more steps will need to be taken: + +0. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`. +0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping @arfon or @bkeepers to help with this) to ensure we're not misclassifying files. +0. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help. + ## Adding a language -We try only to add languages once they have some usage on GitHub. In most cases we prefer that languages be in use in hundreds of repositories before supporting them in Linguist. +We try only to add languages once they have some usage on GitHub. In most cases we prefer that each new file extension be in use in hundreds of repositories before supporting them in Linguist. To add support for a new language: @@ -23,21 +44,23 @@ In addition, if your new language defines an extension that's already listed in Remember, the goal here is to try and avoid false positives! + ## Fixing a misclassified language Most languages are detected by their file extension defined in [languages.yml][languages]. For disambiguating between files with common extensions, linguist applies some [heuristics](/lib/linguist/heuristics.rb) and a [statistical classifier](lib/linguist/classifier.rb). This process can help differentiate between, for example, `.h` files which could be either C, C++, or Obj-C. Misclassifications can often be solved by either adding a new filename or extension for the language or adding more [samples][samples] to make the classifier smarter. + ## Fixing syntax highlighting Syntax highlighting in GitHub is performed using TextMate-compatible grammars. These are the same grammars that TextMate, Sublime Text and Atom use. Every language in [languages.yml][languages] is mapped to its corresponding TM `scope`. This scope will be used when picking up a grammar for highlighting. Assuming your code is being detected as the right language, in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report. -You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). +You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](https://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). -Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub. +Once the bug has been fixed upstream, we'll pick it up for GitHub in the next release of Linguist. ## Testing @@ -51,9 +74,10 @@ To run the tests: bundle exec rake test -Sometimes getting the tests running can be too much work, especially if you don't have much Ruby experience. It's okay: be lazy and let our build bot [Travis](http://travis-ci.org/#!/github/linguist) run the tests for you. Just open a pull request and the bot will start cranking away. +Sometimes getting the tests running can be too much work, especially if you don't have much Ruby experience. It's okay: be lazy and let our build bot [Travis](https://travis-ci.org/#!/github/linguist) run the tests for you. Just open a pull request and the bot will start cranking away. + +Here's our current build status: [![Build Status](https://api.travis-ci.org/github/linguist.svg?branch=master)](https://travis-ci.org/github/linguist) -Here's our current build status: [![Build Status](https://secure.travis-ci.org/github/linguist.png?branch=master)](http://travis-ci.org/github/linguist) ## Releasing diff --git a/README.md b/README.md index 6a2447a9..374851fb 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linguist supports a number of different custom overrides strategies for language ### Using gitattributes -Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. +Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language statistics, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-or-vim-modelines). ``` $ cat .gitattributes @@ -35,7 +35,7 @@ $ cat .gitattributes Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. Vendored files are also hidden by default in diffs on github.com. -Use the `linguist-vendored` attribute to vendor or un-vendor paths. +Use the `linguist-vendored` attribute to vendor or un-vendor paths. Please note, overriding the vendored (or un-vendored) status of a file only affects the language statistics for the repository and not the behavior in diffs on github.com. ``` $ cat .gitattributes @@ -53,16 +53,18 @@ project-docs/* linguist-documentation docs/formatter.rb linguist-documentation=false ``` -### Using Emacs and Vim modelines +### Using Emacs or Vim modelines -Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com +Alternatively, you can use Vim or Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com +##### Vim ``` -Vim vim: set filetype=prolog: vim: set ft=cpp: +``` -Emacs +##### Emacs +``` -*- mode: php;-*- ``` diff --git a/Rakefile b/Rakefile index b38486c0..1936c5f0 100644 --- a/Rakefile +++ b/Rakefile @@ -62,7 +62,7 @@ namespace :benchmark do corpus = File.expand_path(ENV["CORPUS"] || "samples") - require 'linguist/language' + require 'linguist' results = Hash.new Dir.glob("#{corpus}/**/*").each do |file| diff --git a/bin/linguist b/bin/linguist index 6ac8f0a7..d1d9c306 100755 --- a/bin/linguist +++ b/bin/linguist @@ -2,10 +2,8 @@ # linguist — detect language type for a file, or, given a directory, determine language breakdown # usage: linguist [<--breakdown>] - -require 'linguist/file_blob' -require 'linguist/language' -require 'linguist/repository' +# +require 'linguist' require 'rugged' path = ARGV[0] || Dir.pwd diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 983db982..ce2303bf 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -14,13 +14,14 @@ Gem::Specification.new do |s| s.executables << 'linguist' s.add_dependency 'charlock_holmes', '~> 0.7.3' - s.add_dependency 'escape_utils', '~> 1.0.1' + s.add_dependency 'escape_utils', '~> 1.1.0' s.add_dependency 'mime-types', '>= 1.19' - s.add_dependency 'rugged', '~> 0.22.0b4' + s.add_dependency 'rugged', '>= 0.23.0b' s.add_development_dependency 'minitest', '>= 5.0' s.add_development_dependency 'mocha' s.add_development_dependency 'pry' s.add_development_dependency 'rake' s.add_development_dependency 'yajl-ruby' + s.add_development_dependency 'color-proximity', '~> 0.2.1' end diff --git a/grammars.yml b/grammars.yml index 109f61cf..d6d38438 100644 --- a/grammars.yml +++ b/grammars.yml @@ -63,6 +63,8 @@ vendor/grammars/JSyntax/: - source.j vendor/grammars/Julia.tmbundle: - source.julia +vendor/grammars/Lean.tmbundle: +- source.lean vendor/grammars/LiveScript.tmbundle: - source.livescript vendor/grammars/Modelica/: @@ -83,6 +85,8 @@ vendor/grammars/Racket: - source.racket vendor/grammars/SCSS.tmbundle: - source.scss +vendor/grammars/SMT.tmbundle: +- source.smt vendor/grammars/Scalate.tmbundle: - source.scaml - text.html.ssp @@ -105,20 +109,27 @@ vendor/grammars/Sublime-Logos: - source.logos vendor/grammars/Sublime-Loom: - source.loomscript +vendor/grammars/Sublime-Modula-2/: +- source.modula2 vendor/grammars/Sublime-Nit: - source.nit vendor/grammars/Sublime-QML: - source.qml vendor/grammars/Sublime-REBOL: - source.rebol +vendor/grammars/Sublime-Red: +- source.red vendor/grammars/Sublime-SQF-Language: - source.sqf vendor/grammars/Sublime-Text-2-OpenEdge-ABL: - source.abl +- text.html.abl vendor/grammars/Sublime-VimL: - source.viml vendor/grammars/SublimeBrainfuck: - source.bf +vendor/grammars/SublimeClarion/: +- source.clarion vendor/grammars/SublimePapyrus/: - source.compiled-papyrus - source.papyrus @@ -141,6 +152,8 @@ vendor/grammars/actionscript3-tmbundle: - text.xml.flex-config vendor/grammars/ada.tmbundle: - source.ada +vendor/grammars/ampl: +- source.ampl vendor/grammars/ant.tmbundle: - text.xml.ant vendor/grammars/antlr.tmbundle: @@ -148,6 +161,9 @@ vendor/grammars/antlr.tmbundle: vendor/grammars/apache.tmbundle: - source.apache-config - source.apache-config.mod_perl +vendor/grammars/api-blueprint-sublime-plugin/: +- text.html.markdown.source.gfm.apib +- text.html.markdown.source.gfm.mson vendor/grammars/applescript.tmbundle: - source.applescript vendor/grammars/asciidoc.tmbundle/: @@ -158,6 +174,10 @@ vendor/grammars/asp.tmbundle: vendor/grammars/assembly.tmbundle: - objdump.x86asm - source.x86asm +vendor/grammars/atom-fsharp/: +- source.fsharp +vendor/grammars/atom-language-purescript/: +- source.purescript vendor/grammars/atom-salt: - source.python.salt - source.yaml.salt @@ -204,6 +224,7 @@ vendor/grammars/d.tmbundle: vendor/grammars/dart-sublime-bundle: - source.dart - source.pubspec +- text.dart-analysis-output - text.dart-doccomments vendor/grammars/desktop.tmbundle: - source.desktop @@ -236,8 +257,6 @@ vendor/grammars/fish-tmbundle: vendor/grammars/fortran.tmbundle: - source.fortran - source.fortran.modern -vendor/grammars/fsharpbinding: -- source.fsharp vendor/grammars/gap-tmbundle/: - source.gap vendor/grammars/gettext.tmbundle: @@ -285,12 +304,10 @@ vendor/grammars/java.tmbundle: - source.java-properties - text.html.jsp - text.junit-test-report -vendor/grammars/javadoc.tmbundle: -- text.html.javadoc vendor/grammars/javascript-objective-j.tmbundle: - source.js.objj -vendor/grammars/jquery-tmbundle: -- source.js.jquery +vendor/grammars/jflex.tmbundle: +- source.jflex vendor/grammars/json.tmbundle: - source.json vendor/grammars/kotlin-sublime-package: @@ -300,6 +317,8 @@ vendor/grammars/language-clojure: vendor/grammars/language-coffee-script: - source.coffee - source.litcoffee +vendor/grammars/language-crystal: +- source.crystal vendor/grammars/language-csharp: - source.cs - source.csx @@ -311,6 +330,11 @@ vendor/grammars/language-hy: vendor/grammars/language-javascript: - source.js - source.js.regexp +vendor/grammars/language-jsoniq/: +- source.jq +- source.xq +vendor/grammars/language-ncl: +- source.ncl vendor/grammars/language-python: - source.python - source.regexp.python @@ -319,6 +343,8 @@ vendor/grammars/language-python: vendor/grammars/language-shellscript: - source.shell - text.shell-session +vendor/grammars/language-xbase: +- source.harbour vendor/grammars/language-yaml: - source.yaml vendor/grammars/latex.tmbundle: @@ -381,14 +407,19 @@ vendor/grammars/ooc.tmbundle: - source.ooc vendor/grammars/opa.tmbundle: - source.opa +vendor/grammars/openscad.tmbundle/: +- source.scad +vendor/grammars/oracle.tmbundle: +- source.plsql.oracle vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: - source.oz vendor/grammars/pascal.tmbundle: - source.pascal -vendor/grammars/perl.tmbundle: +vendor/grammars/perl.tmbundle/: - source.perl +- source.perl.6 vendor/grammars/php-smarty.tmbundle: -- source.smarty +- text.html.smarty vendor/grammars/php.tmbundle: - text.html.php vendor/grammars/pike-textmate: @@ -415,20 +446,14 @@ vendor/grammars/restructuredtext.tmbundle: - text.restructuredtext vendor/grammars/ruby-haml.tmbundle: - text.haml -vendor/grammars/ruby-on-rails-tmbundle: -- source.js.erb.rails -- source.ruby.rails -- source.ruby.rails.rjs -- source.sql.ruby -- text.html.erb.rails vendor/grammars/ruby-slim.tmbundle: - text.slim vendor/grammars/ruby.tmbundle: - source.ruby - text.html.erb vendor/grammars/sas.tmbundle: -- source.SASLog - source.sas +- source.sas_log vendor/grammars/sass-textmate-bundle: - source.sass vendor/grammars/scala.tmbundle: @@ -438,6 +463,8 @@ vendor/grammars/scheme.tmbundle: - source.scheme vendor/grammars/scilab.tmbundle: - source.scilab +vendor/grammars/smali-sublime/smali.tmLanguage: +- source.smali vendor/grammars/smalltalk-tmbundle: - source.smalltalk vendor/grammars/sql.tmbundle: @@ -466,6 +493,9 @@ vendor/grammars/sublime-idris: - source.idris vendor/grammars/sublime-mask: - source.mask +vendor/grammars/sublime-netlinx: +- source.netlinx +- source.netlinx.erb vendor/grammars/sublime-nginx: - source.nginx vendor/grammars/sublime-nix: @@ -488,9 +518,12 @@ vendor/grammars/sublime-text-ox/: - source.ox vendor/grammars/sublime-text-pig-latin/: - source.pig_latin +vendor/grammars/sublime-varnish: +- source.varnish.vcl vendor/grammars/sublime_cobol: - source.acucobol - source.cobol +- source.jcl - source.opencobol vendor/grammars/sublime_man_page_support: - source.man @@ -502,13 +535,6 @@ vendor/grammars/swift.tmbundle: vendor/grammars/tcl.tmbundle: - source.tcl - text.html.tcl -vendor/grammars/text.tmbundle: -- text.plain -vendor/grammars/textile.tmbundle: -- text.html.textile -vendor/grammars/textmate.tmbundle: -- source.regexp.oniguruma -- source.tm-properties vendor/grammars/thrift.tmbundle: - source.thrift vendor/grammars/toml.tmbundle: @@ -520,6 +546,8 @@ vendor/grammars/verilog.tmbundle: - source.verilog vendor/grammars/x86-assembly-textmate-bundle: - source.asm.x86 +vendor/grammars/xc.tmbundle/: +- source.xc vendor/grammars/xml.tmbundle: - text.xml - text.xml.xsl diff --git a/lib/linguist.rb b/lib/linguist.rb index ff9fc3a2..3929efb9 100644 --- a/lib/linguist.rb +++ b/lib/linguist.rb @@ -6,3 +6,15 @@ require 'linguist/repository' require 'linguist/samples' require 'linguist/shebang' require 'linguist/version' + +class << Linguist + attr_accessor :instrumenter + + def instrument(*args, &bk) + if instrumenter + instrumenter.instrument(*args, &bk) + else + yield if block_given? + end + end +end diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index 56c15f02..01a567e0 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -99,7 +99,7 @@ module Linguist elsif name.nil? "attachment" else - "attachment; filename=#{EscapeUtils.escape_url(File.basename(name))}" + "attachment; filename=#{EscapeUtils.escape_url(name)}" end end @@ -233,7 +233,7 @@ module Linguist # # Return true or false def vendored? - name =~ VendoredRegexp ? true : false + path =~ VendoredRegexp ? true : false end documentation_paths = YAML.load_file(File.expand_path("../documentation.yml", __FILE__)) @@ -248,7 +248,7 @@ module Linguist # # Return true or false def documentation? - name =~ DocumentationRegexp ? true : false + path =~ DocumentationRegexp ? true : false end # Public: Get each line of data @@ -316,7 +316,7 @@ module Linguist # # Return true or false def generated? - @_generated ||= Generated.generated?(name, lambda { data }) + @_generated ||= Generated.generated?(path, lambda { data }) end # Public: Detects the Language of the blob. diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index b884cd35..f95a547d 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -7,11 +7,16 @@ # Please add additional test coverage to # `test/test_blob.rb#test_documentation` if you make any changes. -## Documentation Conventions ## +## Documentation directories ## - ^docs?/ -- ^Documentation/ +- (^|/)[Dd]ocumentation/ +- (^|/)javadoc/ +- ^man/ +## Documentation files ## + +- (^|/)CHANGE(S|LOG)?(\.|$) - (^|/)CONTRIBUTING(\.|$) - (^|/)COPYING(\.|$) - (^|/)INSTALL(\.|$) diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 04441935..20d87bb0 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -3,7 +3,7 @@ require 'linguist/blob_helper' module Linguist # A FileBlob is a wrapper around a File object to make it quack # like a Grit::Blob. It provides the basic interface: `name`, - # `data`, and `size`. + # `data`, `path` and `size`. class FileBlob include BlobHelper @@ -14,43 +14,50 @@ module Linguist # # Returns a FileBlob. def initialize(path, base_path = nil) - @path = path - @name = base_path ? path.sub("#{base_path}/", '') : path + @fullpath = path + @path = base_path ? path.sub("#{base_path}/", '') : path end # Public: Filename # # Examples # - # FileBlob.new("/path/to/linguist/lib/linguist.rb").name + # FileBlob.new("/path/to/linguist/lib/linguist.rb").path # # => "/path/to/linguist/lib/linguist.rb" # # FileBlob.new("/path/to/linguist/lib/linguist.rb", - # "/path/to/linguist").name + # "/path/to/linguist").path # # => "lib/linguist.rb" # # Returns a String - attr_reader :name + attr_reader :path # Public: Read file permissions # # Returns a String like '100644' def mode - File.stat(@path).mode.to_s(8) + File.stat(@fullpath).mode.to_s(8) + end + + # Public: File name + # + # Returns a String + def name + File.basename(@fullpath) end # Public: Read file contents. # # Returns a String. def data - File.read(@path) + File.read(@fullpath) end # Public: Get byte size # # Returns an Integer. def size - File.size(@path) + File.size(@fullpath) end # Public: Get file extension. @@ -67,7 +74,7 @@ module Linguist # # Returns an Array def extensions - basename, *segments = File.basename(name).split(".") + basename, *segments = name.downcase.split(".") segments.map.with_index do |segment, index| "." + segments[index..-1].join(".") diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 50dbc58d..f1fb2d19 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -53,18 +53,25 @@ module Linguist def generated? xcode_file? || generated_net_designer_file? || + generated_net_specflow_feature_file? || composer_lock? || node_modules? || godeps? || generated_by_zephir? || minified_files? || + source_map? || compiled_coffeescript? || generated_parser? || generated_net_docfile? || generated_postscript? || + compiled_cython_file? || + generated_go? || generated_protocol_buffer? || + generated_apache_thrift? || generated_jni_header? || - vcr_cassette? + vcr_cassette? || + generated_module? || + generated_unity3d_meta? end # Internal: Is the blob an Xcode file? @@ -94,6 +101,20 @@ module Linguist end end + # Internal: Is the blob a generated source map? + # + # Source Maps usually have .css.map or .js.map extensions. In case they + # are not following the name convention, detect them based on the content. + # + # Returns true or false. + def source_map? + return false unless extname.downcase == '.map' + + name =~ /(\.css|\.js)\.map$/i || # Name convention + lines[0] =~ /^{"version":\d+,/ || # Revision 2 and later begin with the version number + lines[0] =~ /^\/\*\* Begin line maps\. \*\*\/{/ # Revision 1 begins with a magic comment + end + # Internal: Is the blob of JS generated by CoffeeScript? # # CoffeeScript is meant to output JS that would be difficult to @@ -162,6 +183,17 @@ module Linguist name.downcase =~ /\.designer\.cs$/ end + # Internal: Is this a codegen file for Specflow feature file? + # + # Visual Studio's SpecFlow extension generates *.feature.cs files + # from *.feature files, they are not meant to be consumed by humans. + # Let's hide them. + # + # Returns true or false + def generated_net_specflow_feature_file? + name.downcase =~ /\.feature\.cs$/ + end + # Internal: Is the blob of JS a parser generated by PEG.js? # # PEG.js-generated parsers are not meant to be consumed by humans. @@ -202,6 +234,13 @@ module Linguist creator.include?("ImageMagick") end + def generated_go? + return false unless extname == '.go' + return false unless lines.count > 1 + + return lines[0].include?("Code generated by") + end + # Internal: Is the blob a C++, Java or Python source file generated by the # Protocol Buffer compiler? # @@ -213,6 +252,16 @@ module Linguist return lines[0].include?("Generated by the protocol buffer compiler. DO NOT EDIT!") end + # Internal: Is the blob generated by Apache Thrift compiler? + # + # Returns true or false + def generated_apache_thrift? + return false unless ['.rb', '.py', '.go', '.js', '.m', '.java', '.h', '.cc', '.cpp'].include?(extname) + return false unless lines.count > 1 + + return lines[0].include?("Autogenerated by Thrift Compiler") || lines[1].include?("Autogenerated by Thrift Compiler") + end + # Internal: Is the blob a C/C++ header generated by the Java JNI tool javah? # # Returns true of false. @@ -262,5 +311,49 @@ module Linguist # VCR Cassettes have "recorded_with: VCR" in the second last line. return lines[-2].include?("recorded_with: VCR") end + + # Internal: Is this a compiled C/C++ file from Cython? + # + # Cython-compiled C/C++ files typically contain: + # /* Generated by Cython x.x.x on ... */ + # on the first line. + # + # Return true or false + def compiled_cython_file? + return false unless ['.c', '.cpp'].include? extname + return false unless lines.count > 1 + return lines[0].include?("Generated by Cython") + end + + # Internal: Is it a KiCAD or GFortran module file? + # + # KiCAD module files contain: + # PCBNEW-LibModule-V1 yyyy-mm-dd h:mm:ss XM + # on the first line. + # + # GFortran module files contain: + # GFORTRAN module version 'x' created from + # on the first line. + # + # Return true of false + def generated_module? + return false unless extname == '.mod' + return false unless lines.count > 1 + return lines[0].include?("PCBNEW-LibModule-V") || + lines[0].include?("GFORTRAN module version '") + end + + # Internal: Is this a metadata file from Unity3D? + # + # Unity3D Meta files start with: + # fileFormatVersion: X + # guid: XXXXXXXXXXXXXXX + # + # Return true or false + def generated_unity3d_meta? + return false unless extname == '.meta' + return false unless lines.count > 1 + return lines[0].include?("fileFormatVersion: ") + end end end diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b82a5de4..d5b92457 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -33,7 +33,7 @@ module Linguist # disambiguate "Perl", "Prolog" do |data| # if data.include?("use strict") # Language["Perl"] - # elsif data.include?(":-") + # elsif /^[^#]+:-/.match(data) # Language["Prolog"] # end # end @@ -94,23 +94,27 @@ module Linguist Language["Perl6"] elsif data.match(/use strict|use\s+v?5\./) Language["Perl"] - elsif data.include?(":-") + elsif /^[^#]+:-/.match(data) Language["Prolog"] end end disambiguate "ECL", "Prolog" do |data| - if data.include?(":-") + if /^[^#]+:-/.match(data) Language["Prolog"] elsif data.include?(":=") Language["ECL"] end end - disambiguate "IDL", "Prolog" do |data| - if data.include?(":-") + disambiguate "IDL", "Prolog", "INI", "QMake" do |data| + if /^[^#]+:-/.match(data) Language["Prolog"] - else + elsif data.include?("last_client=") + Language["INI"] + elsif data.include?("HEADERS") && data.include?("SOURCES") + Language["QMake"] + elsif /^\s*function[ \w,]+$/.match(data) Language["IDL"] end end @@ -125,7 +129,7 @@ module Linguist end disambiguate "Common Lisp", "OpenCL", "Cool" do |data| - if data.include?("(defun ") + if /^\s*\((defun|in-package|defpackage) /i.match(data) Language["Common Lisp"] elsif /^class/x.match(data) Language["Cool"] @@ -151,16 +155,16 @@ module Linguist end disambiguate "AsciiDoc", "AGS Script", "Public Key" do |data| - if /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) + if /^(----[- ]BEGIN|ssh-(rsa|dss)) /.match(data) + Language["Public Key"] + elsif /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) Language["AsciiDoc"] elsif /^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])/.match(data) Language["AGS Script"] - elsif /^-----BEGIN/.match(data) - Language["Public Key"] end end - disambiguate "FORTRAN", "Forth" do |data| + disambiguate "FORTRAN", "Forth", "Formatted" do |data| if /^: /.match(data) Language["Forth"] elsif /^([c*][^a-z]| (subroutine|program)\s|\s*!)/i.match(data) @@ -168,27 +172,33 @@ module Linguist end end - disambiguate "F#", "Forth", "GLSL" do |data| + disambiguate "F#", "Forth", "GLSL", "Filterscript" do |data| if /^(: |new-device)/.match(data) Language["Forth"] elsif /^\s*(#light|import|let|module|namespace|open|type)/.match(data) Language["F#"] - elsif /^\s*(#include|#pragma|precision|uniform|varying|void)/.match(data) + elsif /^\s*(#version|precision|uniform|varying|vec[234])/.match(data) Language["GLSL"] + elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) + Language["Filterscript"] end end - disambiguate "M", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| + disambiguate "Limbo", "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| if ObjectiveCRegex.match(data) Language["Objective-C"] elsif data.include?(":- module") Language["Mercury"] + elsif /^: /.match(data) + Language["MUF"] elsif /^\s*;/.match(data) Language["M"] elsif /^\s*\(\*/.match(data) Language["Mathematica"] elsif /^\s*%/.match(data) Language["Matlab"] + elsif /^\w+\s*:\s*module\s*{/.match(data) + Language["Limbo"] end end @@ -205,7 +215,7 @@ module Linguist end disambiguate "Common Lisp", "NewLisp" do |data| - if /^\s*\((defun|in-package|defpackage) /.match(data) + if /^\s*\((defun|in-package|defpackage) /i.match(data) Language["Common Lisp"] elsif /^\s*\(define /.match(data) Language["NewLisp"] @@ -229,5 +239,105 @@ module Linguist Language["Text"] end end + + disambiguate "PLSQL", "SQLPL", "PLpgSQL", "SQL" do |data| + if /^\\i\b|AS \$\$|LANGUAGE '+plpgsql'+/i.match(data) || /SECURITY (DEFINER|INVOKER)/i.match(data) || /BEGIN( WORK| TRANSACTION)?;/i.match(data) + #Postgres + Language["PLpgSQL"] + elsif /(alter module)|(language sql)|(begin( NOT)+ atomic)/i.match(data) || /signal SQLSTATE '[0-9]+'/i.match(data) + #IBM db2 + Language["SQLPL"] + elsif /pragma|\$\$PLSQL_|XMLTYPE|sysdate|systimestamp|\.nextval|connect by|AUTHID (DEFINER|CURRENT_USER)/i.match(data) || /constructor\W+function/i.match(data) + #Oracle + Language["PLSQL"] + elsif ! /begin|boolean|package|exception/i.match(data) + #Generic SQL + Language["SQL"] + end + end + + disambiguate "D", "DTrace", "Makefile" do |data| + if /^module /.match(data) + Language["D"] + elsif /^((dtrace:::)?BEGIN|provider |#pragma (D (option|attributes)|ident)\s)/.match(data) + Language["DTrace"] + elsif /(\/.*:( .* \\)$| : \\$|^ : |: \\$)/.match(data) + Language["Makefile"] + end + end + + disambiguate "OCaml", "Standard ML" do |data| + if /(^\s*module)|let rec |match\s+(\S+\s)+with/.match(data) + Language["OCaml"] + elsif /=> |case\s+(\S+\s)+of/.match(data) + Language["Standard ML"] + end + end + + disambiguate "XML", "Modula-2", "Linux Kernel Module", "AMPL" do |data| + if data.include?(')/.match(data) + Language["Lex"] + elsif /^\.[a-z][a-z](\s|$)/i.match(data) + Language["Groff"] + elsif /^\((de|class|rel|code|data|must)\s/.match(data) + Language["PicoLisp"] + end + end + + disambiguate "Groff", "Nemerle" do |data| + if /^[.']/.match(data) + Language["Groff"] + elsif /^(module|namespace|using)\s/.match(data) + Language["Nemerle"] + end + end + + disambiguate "GAS", "Groff" do |data| + if /^[.'][a-z][a-z](\s|$)/i.match(data) + Language["Groff"] + elsif /((^|\s)move?[. ])|\.(include|globa?l)\s/.match(data) + Language["GAS"] + end + end + + disambiguate "xBase", "Charity" do |data| + if /^\s*#\s*(if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b/i.match(data) + Language["xBase"] + end + end end end diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 2490a9f6..d2d44466 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -73,7 +73,7 @@ module Linguist raise ArgumentError, "Extension is missing a '.': #{extension.inspect}" end - @extension_index[extension] << language + @extension_index[extension.downcase] << language end language.interpreters.each do |interpreter| @@ -105,19 +105,31 @@ module Linguist # Bail early if the blob is binary or empty. return nil if blob.likely_binary? || blob.binary? || blob.empty? - # Call each strategy until one candidate is returned. - STRATEGIES.reduce([]) do |languages, strategy| - candidates = strategy.call(blob, languages) - if candidates.size == 1 - return candidates.first - elsif candidates.size > 1 - # More than one candidate was found, pass them to the next strategy. - candidates - else - # No candiates were found, pass on languages from the previous strategy. - languages + Linguist.instrument("linguist.detection", :blob => blob) do + # Call each strategy until one candidate is returned. + languages = [] + returning_strategy = nil + + STRATEGIES.each do |strategy| + returning_strategy = strategy + candidates = Linguist.instrument("linguist.strategy", :blob => blob, :strategy => strategy, :candidates => languages) do + strategy.call(blob, languages) + end + if candidates.size == 1 + languages = candidates + break + elsif candidates.size > 1 + # More than one candidate was found, pass them to the next strategy. + languages = candidates + else + # No candidates, try the next strategy + end end - end.first + + Linguist.instrument("linguist.detected", :blob => blob, :strategy => returning_strategy, :language => languages.first) + + languages.first + end end # Public: Get all Languages @@ -191,7 +203,7 @@ module Linguist # Returns all matching Languages or [] if none were found. def self.find_by_extension(extname) extname = ".#{extname}" unless extname.start_with?(".") - @extension_index[extname] + @extension_index[extname.downcase] end # DEPRECATED @@ -528,8 +540,8 @@ module Linguist if extnames = extensions[name] extnames.each do |extname| - if !options['extensions'].index { |x| x.end_with? extname } - warn "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" unless extname == '.script!' + if !options['extensions'].index { |x| x.downcase.end_with? extname.downcase } + warn "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" options['extensions'] << extname end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index bca601eb..5400e536 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -18,6 +18,8 @@ # language. This should match one of the scopes listed in # the grammars.yml file. Use "none" if there is no grammar # for this language. +# group - Name of the parent language. Languages in a group are counted +# in the statistics as the parent language. # # Any additions or modifications (even trivial) should have corresponding # test change in `test/test_blob.rb`. @@ -26,6 +28,7 @@ ABAP: type: programming + color: "#E8274B" extensions: - .abap ace_mode: abap @@ -41,6 +44,15 @@ AGS Script: tm_scope: source.c++ ace_mode: c_cpp +AMPL: + type: programming + color: "#E6EFBB" + extensions: + - .ampl + - .mod + tm_scope: source.ampl + ace_mode: text + ANTLR: type: programming color: "#9DC3FF" @@ -48,9 +60,17 @@ ANTLR: - .g4 ace_mode: text +API Blueprint: + type: markup + color: "#2ACCA8" + ace_mode: markdown + extensions: + - .apib + tm_scope: text.html.markdown.source.gfm.apib + APL: type: programming - color: "#8a0707" + color: "#5A8164" extensions: - .apl - .dyalog @@ -90,7 +110,7 @@ ATS: ActionScript: type: programming tm_scope: source.actionscript.3 - color: "#e3491a" + color: "#882B0F" search_term: as3 aliases: - actionscript 3 @@ -108,12 +128,13 @@ Ada: - .ada - .ads aliases: - - ada95ada2005 + - ada95 + - ada2005 ace_mode: ada Agda: type: programming - color: "#467C91" + color: "#315665" extensions: - .agda ace_mode: text @@ -140,7 +161,7 @@ ApacheConf: - apache extensions: - .apacheconf - - .conf + - .vhost tm_scope: source.apache-config ace_mode: apache_conf @@ -164,7 +185,7 @@ AppleScript: Arc: type: programming - color: "#ca2afe" + color: "#aa2afe" extensions: - .arc tm_scope: none @@ -190,7 +211,7 @@ AsciiDoc: AspectJ: type: programming - color: "#1957b0" + color: "#a957b0" extensions: - .aj tm_scope: none @@ -204,8 +225,8 @@ Assembly: - nasm extensions: - .asm - - .ASM - .a51 + - .inc - .nasm tm_scope: source.asm.x86 ace_mode: assembly_x86 @@ -230,7 +251,7 @@ AutoHotkey: AutoIt: type: programming - color: "#36699B" + color: "#1C3552" aliases: - au3 - AutoIt3 @@ -257,7 +278,6 @@ Awk: Batchfile: type: programming - group: Shell search_term: bat aliases: - bat @@ -271,15 +291,17 @@ Batchfile: ace_mode: batchfile Befunge: + type: programming extensions: - .befunge ace_mode: text Bison: type: programming + group: Yacc tm_scope: source.bison extensions: - - .y + - .bison ace_mode: text BitBake: @@ -326,6 +348,8 @@ Boo: ace_mode: text Brainfuck: + type: programming + color: "#2F2530" extensions: - .b - .bf @@ -347,15 +371,15 @@ Bro: C: type: programming - color: "#555" + color: "#555555" extensions: - .c - - .C - - .H - .cats - .h - .idc - .w + interpreters: + - tcc ace_mode: c_cpp C#: @@ -389,6 +413,7 @@ C++: - .hh - .hpp - .hxx + - .inc - .inl - .ipp - .tcc @@ -419,6 +444,7 @@ CLIPS: ace_mode: text CMake: + type: programming extensions: - .cmake - .cmake.in @@ -430,8 +456,6 @@ COBOL: type: programming extensions: - .cob - - .COB - - .CPY - .cbl - .ccp - .cobol @@ -477,7 +501,15 @@ Chapel: - .chpl ace_mode: text +Charity: + type: programming + extensions: + - .ch + tm_scope: none + ace_mode: text + ChucK: + type: programming extensions: - .ck tm_scope: source.java @@ -485,14 +517,22 @@ ChucK: Cirru: type: programming - color: "#aaaaff" + color: "#ccccff" ace_mode: cirru extensions: - .cirru +Clarion: + type: programming + color: "#db901e" + ace_mode: text + extensions: + - .clw + tm_scope: source.clarion + Clean: type: programming - color: "#3a81ad" + color: "#3F85AF" extensions: - .icl - .dcl @@ -505,6 +545,7 @@ Clojure: color: "#db5855" extensions: - .clj + - .boot - .cl2 - .cljc - .cljs @@ -571,6 +612,7 @@ Common Lisp: - .lisp - .asd - .cl + - .l - .lsp - .ny - .podsl @@ -631,14 +673,16 @@ Creole: Crystal: type: programming + color: "#776791" extensions: - .cr ace_mode: ruby - tm_scope: source.ruby + tm_scope: source.crystal interpreters: - crystal Cucumber: + type: programming extensions: - .feature tm_scope: text.gherkin.feature @@ -687,9 +731,18 @@ D-ObjDump: tm_scope: objdump.x86asm ace_mode: assembly_x86 +DIGITAL Command Language: + type: programming + aliases: + - dcl + extensions: + - .com + tm_scope: none + ace_mode: text + DM: type: programming - color: "#075ff1" + color: "#447265" extensions: - .dm aliases: @@ -697,7 +750,19 @@ DM: tm_scope: source.c++ ace_mode: c_cpp +DTrace: + type: programming + aliases: + - dtrace-script + extensions: + - .d + interpreters: + - dtrace + tm_scope: source.c + ace_mode: c_cpp + Darcs Patch: + type: data search_term: dpatch aliases: - dpatch @@ -709,17 +774,20 @@ Darcs Patch: Dart: type: programming - color: "#98BAD6" + color: "#00B4AB" extensions: - .dart ace_mode: dart Diff: + type: data + color: "#88dddd" extensions: - .diff - .patch aliases: - udiff + tm_scope: source.diff ace_mode: diff Dockerfile: @@ -741,7 +809,7 @@ Dogescript: Dylan: type: programming - color: "#3ebc27" + color: "#6c616e" extensions: - .dylan - .dyl @@ -768,7 +836,7 @@ ECL: Eagle: type: markup - color: "#3994bc" + color: "#814C05" extensions: - .sch - .brd @@ -797,6 +865,8 @@ Elixir: - .ex - .exs ace_mode: elixir + filenames: + - mix.lock Elm: type: programming @@ -824,7 +894,7 @@ Emacs Lisp: EmberScript: type: programming - color: "#f64e3e" + color: "#FFF4F3" extensions: - .em - .emberscript @@ -833,12 +903,16 @@ EmberScript: Erlang: type: programming - color: "#0faf8d" + color: "#B83998" extensions: - .erl - .es - .escript - .hrl + filenames: + - rebar.config + - rebar.config.lock + - rebar.lock ace_mode: erlang interpreters: - escript @@ -858,7 +932,7 @@ F#: FLUX: type: programming - color: "#33CCFF" + color: "#88ccff" extensions: - .fx - .flux @@ -870,14 +944,6 @@ FORTRAN: color: "#4d41b1" extensions: - .f90 - - .F - - .F03 - - .F08 - - .F77 - - .F90 - - .F95 - - .FOR - - .FPP - .f - .f03 - .f08 @@ -916,14 +982,27 @@ Fantom: tm_scope: source.fan ace_mode: text +Filterscript: + type: programming + group: RenderScript + extensions: + - .fs + tm_scope: none + ace_mode: text + +Formatted: + type: data + extensions: + - .for + tm_scope: none + ace_mode: text + Forth: type: programming color: "#341708" extensions: - .fth - - .4TH - .4th - - .F - .f - .for - .forth @@ -972,7 +1051,7 @@ GAS: group: Assembly extensions: - .s - - .S + - .ms tm_scope: source.asm.x86 ace_mode: assembly_x86 @@ -984,7 +1063,6 @@ GDScript: ace_mode: text GLSL: - group: C type: programming extensions: - .glsl @@ -1005,13 +1083,14 @@ GLSL: Game Maker Language: type: programming - color: "#8ad353" + color: "#8fb200" extensions: - .gml tm_scope: source.c++ ace_mode: c_cpp Genshi: + type: programming extensions: - .kid tm_scope: text.xml.genshi @@ -1021,6 +1100,7 @@ Genshi: ace_mode: xml Gentoo Ebuild: + type: programming group: Shell extensions: - .ebuild @@ -1028,6 +1108,7 @@ Gentoo Ebuild: ace_mode: sh Gentoo Eclass: + type: programming group: Shell extensions: - .eclass @@ -1035,6 +1116,7 @@ Gentoo Eclass: ace_mode: sh Gettext Catalog: + type: prose search_term: pot searchable: false aliases: @@ -1075,7 +1157,7 @@ Go: Golo: type: programming - color: "#f6a51f" + color: "#88562A" extensions: - .golo tm_scope: source.golo @@ -1114,7 +1196,7 @@ Grammatical Framework: extensions: - .gf searchable: true - color: "#ff0000" + color: "#79aa7a" tm_scope: source.haskell ace_mode: haskell @@ -1130,20 +1212,34 @@ Graphviz (DOT): tm_scope: source.dot extensions: - .dot - - .DOT - .gv ace_mode: text Groff: + type: markup extensions: - .man - '.1' + - .1in + - .1m + - .1x - '.2' - '.3' + - .3in + - .3m + - .3qt + - .3x - '.4' - '.5' - '.6' - '.7' + - '.8' + - '.9' + - .l + - .ms + - .n + - .rno + - .roff tm_scope: text.groff aliases: - nroff @@ -1162,6 +1258,7 @@ Groovy: - groovy Groovy Server Pages: + type: programming group: Groovy aliases: - gsp @@ -1182,6 +1279,7 @@ HTML: - .html - .htm - .html.hl + - .inc - .st - .xht - .xhtml @@ -1243,6 +1341,7 @@ Haml: Handlebars: type: markup + color: "#01a9d6" aliases: - hbs - htmlbars @@ -1257,7 +1356,7 @@ Harbour: color: "#0e60e3" extensions: - .hb - tm_scope: none + tm_scope: source.harbour ace_mode: text Haskell: @@ -1271,7 +1370,7 @@ Haskell: Haxe: type: programming ace_mode: haxe - color: "#f7941e" + color: "#df7900" extensions: - .hx - .hxsl @@ -1280,16 +1379,23 @@ Haxe: Hy: type: programming ace_mode: text - color: "#7891b1" + color: "#7790B2" extensions: - .hy aliases: - hylang tm_scope: source.hy +HyPhy: + type: programming + ace_mode: text + extensions: + - .bf + tm_scope: none + IDL: type: programming - color: "#e3592c" + color: "#a3522f" extensions: - .pro - .dlm @@ -1311,6 +1417,7 @@ INI: - .ini - .cfg - .prefs + - .pro - .properties tm_scope: source.ini aliases: @@ -1318,6 +1425,7 @@ INI: ace_mode: ini IRC log: + type: data search_term: irc aliases: - irc @@ -1348,6 +1456,7 @@ Inform 7: ace_mode: text Inno Setup: + type: programming extensions: - .iss tm_scope: source.inno @@ -1371,19 +1480,38 @@ Ioke: Isabelle: type: programming - color: "#fdcd00" + color: "#FEFE00" extensions: - .thy tm_scope: source.isabelle.theory ace_mode: text +Isabelle ROOT: + type: programming + group: Isabelle + filenames: + - ROOT + tm_scope: source.isabelle.root + ace_mode: text + J: type: programming + color: "#9EEDFF" extensions: - .ijs tm_scope: source.j ace_mode: text +JFlex: + type: programming + color: "#DBCA00" + group: Lex + extensions: + - .flex + - .jflex + tm_scope: source.jflex + ace_mode: text + JSON: type: data tm_scope: source.json @@ -1413,11 +1541,12 @@ JSONLD: tm_scope: source.js JSONiq: + color: "#40d47e" type: programming ace_mode: jsoniq extensions: - .jq - tm_scope: source.xquery + tm_scope: source.jq Jade: group: HTML @@ -1442,6 +1571,7 @@ Java: - .java Java Server Pages: + type: programming group: Java search_term: jsp aliases: @@ -1505,12 +1635,20 @@ Julia: KRL: type: programming - color: "#f5c800" + color: "#28431f" extensions: - .krl tm_scope: none ace_mode: text +KiCad: + type: programming + extensions: + - .sch + - .kicad_pcb + tm_scope: none + ace_mode: text + Kit: type: markup ace_mode: html @@ -1520,6 +1658,7 @@ Kit: Kotlin: type: programming + color: "#F18E33" extensions: - .kt - .ktm @@ -1537,6 +1676,7 @@ LFE: ace_mode: lisp LLVM: + type: programming extensions: - .ll ace_mode: text @@ -1567,7 +1707,7 @@ LabVIEW: Lasso: type: programming - color: "#2584c3" + color: "#999999" extensions: - .lasso - .las @@ -1585,9 +1725,16 @@ Latte: group: HTML extensions: - .latte - tm_scope: source.smarty + tm_scope: text.html.smarty ace_mode: smarty +Lean: + type: programming + extensions: + - .lean + - .hlean + ace_mode: lean + Less: type: markup group: CSS @@ -1596,12 +1743,49 @@ Less: tm_scope: source.css.less ace_mode: less +Lex: + type: programming + color: "#DBCA00" + aliases: + - flex + extensions: + - .l + - .lex + tm_scope: none + ace_mode: text + LilyPond: + type: programming extensions: - .ly - .ily ace_mode: text +Limbo: + type: programming + extensions: + - .b + - .m + tm_scope: none + ace_mode: text + +Linker Script: + type: data + extensions: + - .ld + - .lds + filenames: + - ld.script + tm_scope: none + ace_mode: text + +Linux Kernel Module: + type: data + extensions: + - .mod + tm_scope: none + ace_mode: text + Liquid: type: markup extensions: @@ -1688,7 +1872,7 @@ LoomScript: Lua: type: programming ace_mode: lua - color: "#fa1fa1" + color: "#000080" extensions: - .lua - .fcgi @@ -1711,23 +1895,35 @@ M: MTML: type: markup - color: "#0095d9" + color: "#b7e1f4" extensions: - .mtml tm_scope: text.html.basic ace_mode: html +MUF: + type: programming + group: Forth + extensions: + - .muf + - .m + tm_scope: none + ace_mode: forth + Makefile: type: programming + color: "#427819" aliases: - bsdmake - make - mf extensions: - .mak + - .d - .mk filenames: - GNUmakefile + - Kbuild - Makefile - makefile interpreters: @@ -1735,6 +1931,7 @@ Makefile: ace_mode: makefile Mako: + type: programming extensions: - .mako - .mao @@ -1771,6 +1968,8 @@ Mathematica: - .ma - .nb - .nbp + - .wl + - .wlt aliases: - mma ace_mode: text @@ -1792,7 +1991,7 @@ Maven POM: Max: type: programming - color: "#ce279c" + color: "#c4a79c" aliases: - max/msp - maxmsp @@ -1816,7 +2015,7 @@ MediaWiki: Mercury: type: programming - color: "#abcdef" + color: "#ff2b2b" ace_mode: prolog interpreters: - mmi @@ -1827,6 +2026,7 @@ Mercury: ace_mode: prolog MiniD: # Legacy + type: programming searchable: false extensions: - .minid # Dummy extension @@ -1852,6 +2052,24 @@ Modelica: tm_scope: source.modelica ace_mode: text +Modula-2: + type: programming + extensions: + - .mod + tm_scope: source.modula2 + ace_mode: text + +Module Management System: + type: programming + extensions: + - .mms + - .mmk + filenames: + - descrip.mmk + - descrip.mms + tm_scope: none + ace_mode: text + Monkey: type: programming extensions: @@ -1874,12 +2092,29 @@ MoonScript: ace_mode: text Myghty: + type: programming extensions: - .myt tm_scope: none ace_mode: text +NCL: + type: programming + color: #28431f + extensions: + - .ncl + tm_scope: source.ncl + ace_mode: text + +NL: + type: data + extensions: + - .nl + tm_scope: none + ace_mode: text + NSIS: + type: programming extensions: - .nsi - .nsh @@ -1887,14 +2122,32 @@ NSIS: Nemerle: type: programming - color: "#0d3c6e" + color: "#3d3c6e" extensions: - .n ace_mode: text +NetLinx: + type: programming + color: "#0aa0ff" + extensions: + - .axs + - .axi + tm_scope: source.netlinx + ace_mode: text + +NetLinx+ERB: + type: programming + color: "#747faa" + extensions: + - .axs.erb + - .axi.erb + tm_scope: source.netlinx.erb + ace_mode: text + NetLogo: type: programming - color: "#ff2b2b" + color: "#ff6375" extensions: - .nlogo tm_scope: source.lisp @@ -1903,7 +2156,7 @@ NetLogo: NewLisp: type: programming lexer: NewLisp - color: "#eedd66" + color: "#87AED7" extensions: - .nl - .lisp @@ -1917,6 +2170,9 @@ Nginx: type: markup extensions: - .nginxconf + - .vhost + filenames: + - nginx.conf tm_scope: source.nginx aliases: - nginx configuration file @@ -1940,7 +2196,7 @@ Ninja: Nit: type: programming - color: "#0d8921" + color: "#009917" extensions: - .nit tm_scope: source.nit @@ -1948,7 +2204,7 @@ Nit: Nix: type: programming - color: "#7070ff" + color: "#7e7eff" extensions: - .nix aliases: @@ -1971,6 +2227,7 @@ Nu: - nush NumPy: + type: programming group: Python extensions: - .numpy @@ -1991,6 +2248,10 @@ OCaml: - .mli - .mll - .mly + interpreters: + - ocaml + - ocamlrun + tm_scope: source.ocaml ObjDump: type: data @@ -2015,7 +2276,7 @@ Objective-C: Objective-C++: type: programming tm_scope: source.objc++ - color: "#4886FC" + color: "#6866fb" aliases: - obj-c++ - objc++ @@ -2084,7 +2345,7 @@ OpenSCAD: type: programming extensions: - .scad - tm_scope: none + tm_scope: source.scad ace_mode: scad Org: @@ -2106,7 +2367,7 @@ Ox: Oxygene: type: programming - color: "#5a63a3" + color: "#cdd0e3" extensions: - .oxygene tm_scope: none @@ -2114,7 +2375,7 @@ Oxygene: Oz: type: programming - color: "#fcaf3e" + color: "#fab738" extensions: - .oz tm_scope: source.oz @@ -2138,6 +2399,7 @@ PHP: - .aw - .ctp - .fcgi + - .inc - .php3 - .php4 - .php5 @@ -2149,6 +2411,27 @@ PHP: aliases: - inc +#Oracle +PLSQL: + type: programming + ace_mode: sql + tm_scope: source.plsql.oracle + extensions: + - .pls + - .pkb + - .pks + - .plb + - .plsql + - .sql + +#Postgres +PLpgSQL: + type: programming + ace_mode: pgsql + tm_scope: source.sql + extensions: + - .sql + Pan: type: programming color: '#cc0000' @@ -2204,17 +2487,19 @@ Pascal: - .pas - .dfm - .dpr + - .inc - .lpr - .pp ace_mode: pascal Perl: type: programming + tm_scope: source.perl ace_mode: perl color: "#0298c3" extensions: - .pl - - .PL + - .al - .cgi - .fcgi - .perl @@ -2229,7 +2514,7 @@ Perl: Perl6: type: programming - color: "#0298c3" + color: "#0000fb" extensions: - .6pl - .6pm @@ -2246,9 +2531,19 @@ Perl6: - Rexfile interpreters: - perl6 - tm_scope: none + tm_scope: source.perl.6 ace_mode: perl +PicoLisp: + type: programming + extensions: + - .l + interpreters: + - picolisp + - pil + tm_scope: source.lisp + ace_mode: lisp + PigLatin: type: programming color: "#fcd7de" @@ -2259,7 +2554,7 @@ PigLatin: Pike: type: programming - color: "#066ab2" + color: "#005390" extensions: - .pike - .pmod @@ -2305,7 +2600,7 @@ PowerShell: Processing: type: programming - color: "#2779ab" + color: "#0096D8" extensions: - .pde ace_mode: text @@ -2324,7 +2619,7 @@ Prolog: Propeller Spin: type: programming - color: "#2b446d" + color: "#7fa2a7" extensions: - .spin tm_scope: source.spin @@ -2350,7 +2645,7 @@ Public Key: Puppet: type: programming - color: "#cc5555" + color: "#332A77" extensions: - .pp filenames: @@ -2376,16 +2671,16 @@ PureBasic: PureScript: type: programming - color: "#bcdc53" + color: "#1D222D" extensions: - .purs - tm_scope: source.haskell + tm_scope: source.purescript ace_mode: haskell Python: type: programming ace_mode: python - color: "#3581ba" + color: "#3572A5" extensions: - .py - .cgi @@ -2422,14 +2717,16 @@ Python traceback: ace_mode: text QML: - type: markup + type: programming color: "#44a51c" extensions: - .qml + - .qbs tm_scope: source.qml ace_mode: text QMake: + type: programming extensions: - .pro - .pri @@ -2446,8 +2743,6 @@ R: - splus extensions: - .r - - .R - - .Rd - .rd - .rsx filenames: @@ -2500,23 +2795,24 @@ RMarkdown: ace_mode: markdown extensions: - .rmd - - .Rmd tm_scope: none Racket: type: programming - color: "#ae17ff" + color: "#22228f" extensions: - .rkt - .rktd - .rktl - .scrbl + interpreters: + - racket tm_scope: source.racket ace_mode: lisp Ragel in Ruby Host: type: programming - color: "#ff9c2e" + color: "#9d5200" extensions: - .rl aliases: @@ -2526,6 +2822,7 @@ Ragel in Ruby Host: ace_mode: text Raw token data: + type: data search_term: raw aliases: - raw @@ -2544,6 +2841,7 @@ Rebol: - .r3 - .rebol ace_mode: text + tm_scope: source.rebol Red: type: programming @@ -2553,15 +2851,24 @@ Red: - .reds aliases: - red/system - tm_scope: none + tm_scope: source.red ace_mode: text Redcode: + type: programming extensions: - .cw tm_scope: none ace_mode: text +RenderScript: + type: programming + extensions: + - .rs + - .rsh + tm_scope: none + ace_mode: text + RobotFramework: type: programming extensions: @@ -2595,6 +2902,7 @@ Ruby: - .gemspec - .god - .irbrc + - .jbuilder - .mspec - .pluginspec - .podspec @@ -2604,17 +2912,22 @@ Ruby: - .rbw - .rbx - .ru + - .ruby - .thor - .watchr interpreters: - ruby - macruby - rake + - jruby + - rbx filenames: - .pryrc - Appraisals - Berksfile - Buildfile + - Deliverfile + - Fastfile - Gemfile - Gemfile.lock - Guardfile @@ -2622,6 +2935,7 @@ Ruby: - Mavenfile - Podfile - Puppetfile + - Snapfile - Thorfile - Vagrantfile - buildfile @@ -2635,7 +2949,7 @@ Rust: SAS: type: programming - color: "#1E90FF" + color: "#B34936" extensions: - .sas tm_scope: source.sas @@ -2649,6 +2963,25 @@ SCSS: extensions: - .scss +SMT: + type: programming + extensions: + - .smt2 + - .smt + interpreters: + - boolector + - cvc4 + - mathsat5 + - opensmt + - smtinterpol + - smt-rat + - stp + - verit + - yices2 + - z3 + tm_scope: source.smt + ace_mode: text + SPARQL: type: data tm_scope: source.sparql @@ -2659,7 +2992,7 @@ SPARQL: SQF: type: programming - color: "#FFCB1F" + color: "#3F3F3F" extensions: - .sqf - .hqf @@ -2674,11 +3007,21 @@ SQL: - .sql - .cql - .ddl + - .inc - .prc - .tab - .udf - .viw +#IBM DB2 +SQLPL: + type: programming + ace_mode: sql + tm_scope: source.sql + extensions: + - .sql + - .db2 + STON: type: data group: Smalltalk @@ -2704,8 +3047,8 @@ Sage: ace_mode: python SaltStack: - type: data - group: YAML + type: programming + color: "#646464" aliases: - saltstate - salt @@ -2752,7 +3095,6 @@ Scheme: - .ss interpreters: - guile - - racket - bigloo - chicken ace_mode: scheme @@ -2790,6 +3132,7 @@ Shell: - .fcgi - .ksh - .tmux + - .tool - .zsh interpreters: - bash @@ -2827,11 +3170,18 @@ Slash: Slim: group: HTML type: markup - color: "#ff8877" + color: "#ff8f77" extensions: - .slim ace_mode: text +Smali: + type: programming + extensions: + - .smali + ace_mode: text + tm_scope: source.smali + Smalltalk: type: programming color: "#596706" @@ -2843,22 +3193,27 @@ Smalltalk: ace_mode: text Smarty: + type: programming extensions: - .tpl ace_mode: smarty + tm_scope: text.html.smarty SourcePawn: type: programming - color: "#f69e1d" + color: "#5c7611" aliases: - sourcemod extensions: - .sp + - .inc + - .sma tm_scope: source.sp ace_mode: text Squirrel: type: programming + color: "#800000" extensions: - .nut tm_scope: source.c++ @@ -2915,7 +3270,7 @@ Swift: SystemVerilog: type: programming - color: "#343761" + color: "#DAE1C2" extensions: - .sv - .svh @@ -2991,9 +3346,12 @@ Tea: Text: type: prose wrap: true + aliases: + - fundamental extensions: - .txt - .fr + - .ncl tm_scope: none ace_mode: text @@ -3030,7 +3388,7 @@ Turtle: Twig: type: markup - group: PHP + group: HTML extensions: - .twig tm_scope: text.html.twig @@ -3038,7 +3396,7 @@ Twig: TypeScript: type: programming - color: "#31859c" + color: "#2b7489" aliases: - ts extensions: @@ -3050,11 +3408,24 @@ Unified Parallel C: type: programming group: C ace_mode: c_cpp - color: "#755223" + color: "#4e3617" extensions: - .upc tm_scope: source.c +Unity3D Asset: + type: data + ace_mode: yaml + color: "#ab69a1" + extensions: + - .anim + - .asset + - .mat + - .meta + - .prefab + - .unity + tm_scope: source.yaml + UnrealScript: type: programming color: "#a54c4d" @@ -3064,16 +3435,16 @@ UnrealScript: ace_mode: java VCL: + group: Perl type: programming - ace_mode: perl - color: "#0298c3" extensions: - .vcl - tm_scope: source.perl + tm_scope: source.varnish.vcl + ace_mode: text VHDL: type: programming - color: "#543978" + color: "#adb2cb" extensions: - .vhdl - .vhd @@ -3087,7 +3458,7 @@ VHDL: Vala: type: programming - color: "#ee7d06" + color: "#fbe5cd" extensions: - .vala - .vapi @@ -3095,7 +3466,7 @@ Vala: Verilog: type: programming - color: "#848bf3" + color: "#b2b7f8" extensions: - .v - .veo @@ -3103,16 +3474,19 @@ Verilog: VimL: type: programming - color: "#199c4b" + color: "#199f4b" search_term: vim aliases: - vim + - nvim extensions: - .vim filenames: + - .nvimrc - .vimrc - _vimrc - gvimrc + - nvimrc - vimrc ace_mode: text @@ -3136,7 +3510,7 @@ Visual Basic: Volt: type: programming - color: "#0098db" + color: "#1F1F1F" extensions: - .volt tm_scope: source.d @@ -3144,7 +3518,7 @@ Volt: Web Ontology Language: type: markup - color: "#3994bc" + color: "#9cc9dd" extensions: - .owl tm_scope: text.xml @@ -3159,13 +3533,14 @@ WebIDL: XC: type: programming + color: "#99DA07" extensions: - .xc - tm_scope: source.c + tm_scope: source.xc ace_mode: c_cpp XML: - type: markup + type: data ace_mode: xml aliases: - rss @@ -3188,15 +3563,20 @@ XML: - .fsproj - .fxml - .glade + - .gml - .grxml + - .iml - .ivy - .jelly - .kml - .launch + - .mdpolicy - .mm + - .mod - .mxml - .nproj - .nuspec + - .odd - .osm - .plist - .pluginspec @@ -3207,15 +3587,16 @@ XML: - .rss - .scxml - .srdf + - .storyboard - .stTheme - .sublime-snippet - .targets - .tmCommand + - .tml - .tmLanguage - .tmPreferences - .tmSnippet - .tmTheme - - .tml - .ts - .ui - .urdf @@ -3230,6 +3611,7 @@ XML: - .x3d - .xacro - .xaml + - .xib - .xlf - .xliff - .xmi @@ -3246,6 +3628,14 @@ XML: - Web.config - packages.config +XPages: + type: programming + extensions: + - .xsp-config + - .xsp.metadata + tm_scope: none + ace_mode: xml + XProc: type: programming extensions: @@ -3256,7 +3646,7 @@ XProc: XQuery: type: programming - color: "#2700e2" + color: "#5232e7" extensions: - .xquery - .xq @@ -3264,8 +3654,10 @@ XQuery: - .xqm - .xqy ace_mode: xquery + tm_scope: source.xq XS: + type: programming extensions: - .xs tm_scope: source.c @@ -3311,6 +3703,15 @@ YAML: - .yaml ace_mode: yaml +Yacc: + type: programming + extensions: + - .y + - .yacc + - .yy + tm_scope: source.bison + ace_mode: text + Zephir: type: programming color: "#118f9e" @@ -3338,6 +3739,7 @@ desktop: eC: type: programming + color: "#913960" search_term: ec extensions: - .ec @@ -3362,13 +3764,14 @@ fish: ace_mode: text mupad: + type: programming extensions: - .mu ace_mode: text nesC: type: programming - color: "#ffce3b" + color: "#94B0C7" extensions: - .nc ace_mode: text @@ -3401,8 +3804,9 @@ wisp: xBase: type: programming - color: "#3a4040" + color: "#403a40" extensions: - .prg - tm_scope: none + - .ch + tm_scope: source.harbour ace_mode: text diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 5465a71f..78f37b18 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -14,13 +14,15 @@ module Linguist attr_reader :repository attr_reader :oid - attr_reader :name + attr_reader :path attr_reader :mode - def initialize(repo, oid, name, mode = nil) + alias :name :path + + def initialize(repo, oid, path, mode = nil) @repository = repo @oid = oid - @name = name + @path = path @mode = mode end @@ -49,7 +51,7 @@ module Linguist return @language if defined?(@language) @language = if lang = git_attributes['linguist-language'] - Language.find_by_name(lang) + Language.find_by_alias(lang) else super end diff --git a/lib/linguist/popular.yml b/lib/linguist/popular.yml index 1a5cb750..afb68021 100644 --- a/lib/linguist/popular.yml +++ b/lib/linguist/popular.yml @@ -9,21 +9,21 @@ - CSS - Clojure - CoffeeScript -- Common Lisp -- Diff -- Emacs Lisp -- Erlang +- Go - HTML - Haskell - Java - JavaScript - Lua +- Matlab - Objective-C - PHP - Perl - Python +- R - Ruby -- SQL - Scala -- Scheme - Shell +- Swift +- TeX +- VimL diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 895a3754..181ddf0e 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -150,9 +150,10 @@ module Linguist next if delta.binary if [:added, :modified].include? delta.status - # Skip submodules + # Skip submodules and symlinks mode = delta.new_file[:mode] - next if (mode & 040000) != 0 + mode_format = (mode & 0170000) + next if mode_format == 0120000 || mode_format == 040000 || mode_format == 0160000 blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8)) diff --git a/lib/linguist/samples.rb b/lib/linguist/samples.rb index efcba365..a7ecd1bd 100644 --- a/lib/linguist/samples.rb +++ b/lib/linguist/samples.rb @@ -50,16 +50,13 @@ module Linguist end else path = File.join(dirname, filename) - - if File.extname(filename) == "" - raise "#{path} is missing an extension, maybe it belongs in filenames/ subdir" - end + extname = File.extname(filename) yield({ :path => path, :language => category, :interpreter => Shebang.interpreter(File.read(path)), - :extname => File.extname(filename) + :extname => extname.empty? ? nil : extname }) end end diff --git a/lib/linguist/shebang.rb b/lib/linguist/shebang.rb index 6f04e866..5b27532a 100644 --- a/lib/linguist/shebang.rb +++ b/lib/linguist/shebang.rb @@ -23,17 +23,20 @@ module Linguist # First line must start with #! return unless shebang && shebang.start_with?("#!") - # Get the parts of the shebang without the #! - tokens = shebang.sub(/^#!\s*/, '').strip.split(' ') + s = StringScanner.new(shebang) # There was nothing after the #! - return if tokens.empty? + return unless path = s.scan(/^#!\s*\S+/) - # Get the name of the interpreter - script = File.basename(tokens.first) + # Keep going + script = path.split('/').last - # Get next argument if interpreter was /usr/bin/env - script = tokens[1] if script == 'env' + # if /usr/bin/env type shebang then walk the string + if script == 'env' + s.scan(/\s+/) + s.scan(/.*=[^\s]+\s+/) # skip over variable arguments e.g. foo=bar + script = s.scan(/\S+/) + end # Interpreter was /usr/bin/env with no arguments return unless script @@ -41,6 +44,9 @@ module Linguist # "python2.6" -> "python2" script.sub! /(\.\d+)$/, '' + # #! perl -> perl + script.sub! /^#!\s*/, '' + # Check for multiline shebang hacks that call `exec` if script == 'sh' && data.lines.first(5).any? { |l| l.match(/exec (\w+).+\$0.+\$@/) } diff --git a/lib/linguist/strategy/filename.rb b/lib/linguist/strategy/filename.rb index e682863b..b8c819eb 100644 --- a/lib/linguist/strategy/filename.rb +++ b/lib/linguist/strategy/filename.rb @@ -3,17 +3,7 @@ module Linguist # Detects language based on filename and/or extension class Filename def self.call(blob, _) - name = blob.name.to_s - - # A bit of an elegant hack. If the file is executable but extensionless, - # append a "magic" extension so it can be classified with other - # languages that have shebang scripts. - extensions = FileBlob.new(name).extensions - if extensions.empty? && blob.mode && (blob.mode.to_i(8) & 05) == 05 - name += ".script!" - end - - Language.find_by_filename(name) + Language.find_by_filename(blob.name.to_s) end end end diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index e77597f4..44155fc3 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,8 +1,8 @@ module Linguist module Strategy class Modeline - EmacsModeline = /-\*-\s*mode:\s*(\w+);?\s*-\*-/i - VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i + EmacsModeline = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i + VimModeline = /vim:\s*set\s*(?:ft|filetype)=(\w+):/i # Public: Detects language based on Vim and Emacs modelines # diff --git a/lib/linguist/tokenizer.rb b/lib/linguist/tokenizer.rb index dc9fc9da..64a82e67 100644 --- a/lib/linguist/tokenizer.rb +++ b/lib/linguist/tokenizer.rb @@ -22,8 +22,10 @@ module Linguist # Start state on token, ignore anything till the next newline SINGLE_LINE_COMMENTS = [ '//', # C + '--', # Ada, Haskell, AppleScript '#', # Ruby '%', # Tex + '"', # Vim ] # Start state on opening token, ignore anything until the closing @@ -130,6 +132,9 @@ module Linguist # extract_shebang("#!/usr/bin/env node") # # => "node" # + # extract_shebang("#!/usr/bin/env A=B foo=bar awk -f") + # # => "awk" + # # Returns String token or nil it couldn't be parsed. def extract_shebang(data) s = StringScanner.new(data) @@ -138,6 +143,7 @@ module Linguist script = path.split('/').last if script == 'env' s.scan(/\s+/) + s.scan(/.*=[^\s]+\s+/) script = s.scan(/\S+/) end script = script[/[^\d]+/, 0] if script diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 9f6b401b..e9af74e6 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -24,6 +24,9 @@ - (^|/)config.guess$ - (^|/)config.sub$ +# Linters +- cpplint.py + # Node dependencies - node_modules/ @@ -67,6 +70,7 @@ - 3rd[-_]?party/ - vendors?/ - extern(al)?/ +- (^|/)[Vv]+endor/ # Debian packaging - ^debian/ @@ -143,6 +147,9 @@ ## Python ## +# Sphinx +- (^|/)docs?/_?(build|themes?|templates?|static)/ + # django - (^|/)admin_media/ @@ -157,12 +164,22 @@ ## Obj-C ## +# Carthage +- ^Carthage/ + # Cocoapods - ^Pods/ # Sparkle - (^|/)Sparkle/ +# Crashlytics +- Crashlytics.framework/ + +# Fabric +- Fabric.framework/ + + ## Groovy ## # Gradle @@ -221,7 +238,7 @@ - ^readme$ # Test fixtures -- ^[Tt]est/fixtures/ +- ^[Tt]ests?/fixtures/ # PhoneGap/Cordova - (^|/)cordova([^.]*)\.js$ @@ -233,7 +250,7 @@ # Vagrant - ^Vagrantfile$ -# .DS_Store's +# .DS_Stores - .[Dd][Ss]_[Ss]tore$ # R packages @@ -251,3 +268,9 @@ # ProGuard - proguard.pro - proguard-rules.pro + +# PuPHPet +- ^puphpet/ + +# Android Google APIs +- (^|/)\.google_apis/ diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 674a61b9..ef3f734c 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.4.0" + VERSION = "4.5.9" end diff --git a/samples/AMPL/CT2.mod b/samples/AMPL/CT2.mod new file mode 100644 index 00000000..eb936b77 --- /dev/null +++ b/samples/AMPL/CT2.mod @@ -0,0 +1,58 @@ +param num_beams; # number of beams + +param num_rows >= 1, integer; # number of rows +param num_cols >= 1, integer; # number of columns + +set BEAMS := 1 .. num_beams; # set of beams + +set ROWS := 1 .. num_rows; # set of rows +set COLUMNS := 1 .. num_cols; # set of columns + +# values for entries of each beam +param beam_values {BEAMS, ROWS, COLUMNS} >= 0; + +# values of tumor +param tumor_values {ROWS, COLUMNS} >= 0; + +# values of critical area +param critical_values {ROWS, COLUMNS} >= 0; + +# critical maximum dosage requirement +param critical_max; + +# tumor minimum dosage requirement +param tumor_min; + +# dosage scalar of each beam +var X {i in BEAMS} >= 0; + + +# define the tumor area which includes the locations where tumor exists +set tumor_area := {k in ROWS, h in COLUMNS: tumor_values[k,h] > 0}; + +# define critical area +set critical_area := {k in ROWS, h in COLUMNS: critical_values[k,h] > 0}; + +var S {(k,h) in tumor_area} >= 0; +var T {(k,h) in critical_area} >= 0; + +# maximize total dosage in tumor area +maximize total_tumor_dosage: sum {i in BEAMS} sum {(k,h) in tumor_area} X[i] * beam_values[i,k,h]; + +# minimize total dosage in critical area +minimize total_critical_dosage: sum {i in BEAMS} sum {(k,h) in critical_area} X[i] * beam_values[i,k,h]; + +# minimize total tumor slack +minimize total_tumor_slack: sum {(k,h) in tumor_area} S[k,h]; + +# minimize total critical area slack +minimize total_critical_slack: sum {(k,h) in critical_area} T[k,h]; + +# total dosage at each tumor location [k,h] should be >= min tumor dosage with slack variable +subject to tumor_limit {(k,h) in tumor_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == tumor_min - S[k,h]; + +# total dosage at each critical location [k,h] should be = max critical dosage with slack variable +subject to critical_limit {(k,h) in critical_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == critical_max + T[k,h]; + + + diff --git a/samples/AMPL/toy.ampl b/samples/AMPL/toy.ampl new file mode 100644 index 00000000..0ca0c7cf --- /dev/null +++ b/samples/AMPL/toy.ampl @@ -0,0 +1,25 @@ +# A toy knapsack problem from the LocalSolver docs written in AMPL. + +set I; +param Value{I}; +param Weight{I}; +param KnapsackBound; +var Take{I} binary; + +maximize TotalValue: sum{i in I} Take[i] * Value[i]; +s.t. WeightLimit: sum{i in I} Take[i] * Weight[i] <= KnapsackBound; + +data; + +param: +I: Weight Value := +0 10 1 +1 60 10 +2 30 15 +3 40 40 +4 30 60 +5 20 90 +6 20 100 +7 2 15; + +param KnapsackBound := 102; diff --git a/samples/API Blueprint/actions.apib b/samples/API Blueprint/actions.apib new file mode 100644 index 00000000..f94dc67a --- /dev/null +++ b/samples/API Blueprint/actions.apib @@ -0,0 +1,55 @@ +FORMAT: 1A + +# Advanced Action API +A resource action is – in fact – a state transition. This API example demonstrates an action - state transition - to another resource. + +## API Blueprint ++ [Previous: Resource Model](11.%20Resource%20Model.md) ++ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/11.%20Advanced%20Action.md) + +# Tasks [/tasks/tasks{?status,priority}] + ++ Parameters + + status (string) + + priority (number) + +## List All Tasks [GET] + ++ Response 200 (application/json) + + [ + { + "id": 123, + "name": "Exercise in gym", + "done": false, + "type": "task" + }, + { + "id": 124, + "name": "Shop for groceries", + "done": true, + "type": "task" + } + ] + +## Retrieve Task [GET /task/{id}] +This is a state transition to another resource + ++ Parameters + + id (string) + ++ Response 200 (application/json) + + { + "id": 123, + "name": "Go to gym", + "done": false, + "type": "task" + } + +## Delete Task [DELETE /task/{id}] + ++ Parameters + + id (string) + ++ Response 204 diff --git a/samples/API Blueprint/attributes.apib b/samples/API Blueprint/attributes.apib new file mode 100644 index 00000000..ce143f7b --- /dev/null +++ b/samples/API Blueprint/attributes.apib @@ -0,0 +1,39 @@ +FORMAT: 1A + +# Attributes API +This API example demonstrates how to describe body attributes of a request or response message. + +In this case, the description is complementary (and duplicate!) to the provided JSON example in the body section. The [Advanced Attributes](09.%20Advanced%20Attributes.md) API example will demonstrate how to avoid duplicates and how to reuse attributes descriptions. + +## API Blueprint ++ [Previous: Parameters](07.%20Parameters.md) ++ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/08.%20Attributes.md) ++ [Next: Advanced Attributes](09.%20Advanced%20Attributes.md) + +# Group Coupons + +## Coupon [/coupons/{id}] +A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer. + +### Retrieve a Coupon [GET] +Retrieves the coupon with the given ID. + ++ Response 200 (application/json) + + + Attributes (object) + + id: 250FF (string) + + created: 1415203908 (number) - Time stamp + + percent_off: 25 (number) + + A positive integer between 1 and 100 that represents the discount the coupon will apply. + + + redeem_by (number) - Date after which the coupon can no longer be redeemed + + + Body + + { + "id": "250FF", + "created": 1415203908, + "percent_off": 25, + "redeem_by:" null + } diff --git a/samples/API Blueprint/simple.apib b/samples/API Blueprint/simple.apib new file mode 100644 index 00000000..ecee8481 --- /dev/null +++ b/samples/API Blueprint/simple.apib @@ -0,0 +1,18 @@ +FORMAT: 1A + +# The Simplest API +This is one of the simplest APIs written in the **API Blueprint**. +One plain resource combined with a method and that's it! We will explain what is going on in the next installment - [Resource and Actions](02.%20Resource%20and%20Actions.md). + +**Note:** As we progress through the examples, do not also forget to view the [Raw](https://raw.github.com/apiaryio/api-blueprint/master/examples/01.%20Simplest%20API.md) code to see what is really going on in the API Blueprint, as opposed to just seeing the output of the Github Markdown parser. + +Also please keep in mind that every single example in this course is a **real API Blueprint** and as such you can **parse** it with the [API Blueprint parser](https://github.com/apiaryio/drafter) or one of its [bindings](https://github.com/apiaryio/drafter#bindings). + +## API Blueprint ++ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/01.%20Simplest%20API.md) ++ [Next: Resource and Actions](02.%20Resource%20and%20Actions.md) + +# GET /message ++ Response 200 (text/plain) + + Hello World! diff --git a/samples/ApacheConf/apache.vhost b/samples/ApacheConf/apache.vhost new file mode 100644 index 00000000..eb602121 --- /dev/null +++ b/samples/ApacheConf/apache.vhost @@ -0,0 +1,17 @@ +####################### +# HOSTNAME +###################### + + + ServerAdmin patrick@heysparkbox.com + DocumentRoot "/var/www/HOSTNAME" + ServerName HOSTNAME + + + Options Indexes MultiViews FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all + DirectoryIndex index.php + + diff --git a/samples/AsciiDoc/list.asc b/samples/AsciiDoc/list.asc index 066d14fc..3d93ade1 100644 --- a/samples/AsciiDoc/list.asc +++ b/samples/AsciiDoc/list.asc @@ -1,6 +1,9 @@ AsciiDoc Home Page ================== +Title +----- + Example Articles ~~~~~~~~~~~~~~~~ - Item 1 diff --git a/samples/Assembly/fp_sqr32_160_comba.inc b/samples/Assembly/fp_sqr32_160_comba.inc new file mode 100644 index 00000000..ce5a62b8 --- /dev/null +++ b/samples/Assembly/fp_sqr32_160_comba.inc @@ -0,0 +1,245 @@ + + push r2 + dint + nop + bis #MPYDLYWRTEN,&MPY32CTL0 + bic #MPYDLY32,&MPY32CTL0 + mov #SUMEXT,r13 + clr r12 + + mov @r15+,r4 + mov @r15+,r5 + + mov @r15+,r6 + mov @r15+,r7 + + mov @r15+,r8 + mov @r15+,r9 + + mov @r15+,r10 + mov @r15+,r11 + + sub #2*8,r15 + + /* SELF_STEP_FIRST */ + mov r4,&MPY32L + mov r5,&MPY32H + mov r4,&OP2L + mov r5,&OP2H + + /* COLUMN_END */ + mov &RES0,2*0(r14) + mov &RES1,2*(0+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r6,&OP2L + mov r7,&OP2H + add &SUMEXT,r12 + mov r6,&OP2L + mov r7,&OP2H + + /* COLUMN_END */ + mov &RES0,2*2(r14) + add @r13,r12 + mov &RES1,2*(2+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r8,&OP2L + mov r9,&OP2H + add &SUMEXT,r12 + mov r8,&OP2L + mov r9,&OP2H + + /* SELF_STEP */ + mov r6,&MAC32L + mov r7,&MAC32H + add @r13,r12 + mov r6,&OP2L + mov r7,&OP2H + + /* COLUMN_END */ + mov &RES0,2*4(r14) + add @r13,r12 + mov &RES1,2*(4+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r10,&OP2L + mov r11,&OP2H + add &SUMEXT,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* STEP_2MORE */ + mov r6,&MAC32L + mov r7,&MAC32H + add @r13,r12 + mov r8,&OP2L + mov r9,&OP2H + add &SUMEXT,r12 + mov r8,&OP2L + mov r9,&OP2H + + /* COLUMN_END */ + mov &RES0,2*6(r14) + add @r13,r12 + mov &RES1,2*(6+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov 2*8(r15),&OP2L + mov 2*9(r15),&OP2H + add &SUMEXT,r12 + mov 2*8(r15),&OP2L + mov 2*9(r15),&OP2H + + /* STEP_2MORE */ + mov r6,&MAC32L + mov r7,&MAC32H + add @r13,r12 + mov r10,&OP2L + mov r11,&OP2H + add &SUMEXT,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* SELF_STEP */ + mov r8,&MAC32L + mov r9,&MAC32H + add @r13,r12 + mov r8,&OP2L + mov r9,&OP2H + + /* COLUMN_END */ + mov &RES0,2*8(r14) + add @r13,r12 + mov &RES1,2*(8+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + mov 2*8(r15),r4 + mov 2*(8+1)(r15),r5 + + /* STEP_1 */ + mov r6,&MAC32L + mov r7,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + add &SUMEXT,r12 + mov r4,&OP2L + mov r5,&OP2H + + /* STEP_2MORE */ + mov r8,&MAC32L + mov r9,&MAC32H + add @r13,r12 + mov r10,&OP2L + mov r11,&OP2H + add &SUMEXT,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* COLUMN_END */ + mov &RES0,2*10(r14) + add @r13,r12 + mov &RES1,2*(10+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r8,&MAC32L + mov r9,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + add &SUMEXT,r12 + mov r4,&OP2L + mov r5,&OP2H + + /* SELF_STEP */ + mov r10,&MAC32L + mov r11,&MAC32H + add @r13,r12 + mov r10,&OP2L + mov r11,&OP2H + + /* COLUMN_END */ + mov &RES0,2*12(r14) + add @r13,r12 + mov &RES1,2*(12+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* STEP_1 */ + mov r10,&MAC32L + mov r11,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + add &SUMEXT,r12 + mov r4,&OP2L + mov r5,&OP2H + + /* COLUMN_END */ + mov &RES0,2*14(r14) + add @r13,r12 + mov &RES1,2*(14+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* SELF_STEP_1 */ + mov r4,&MAC32L + mov r5,&MAC32H + mov r4,&OP2L + mov r5,&OP2H + + /* COLUMN_END */ + mov &RES0,2*16(r14) + add @r13,r12 + mov &RES1,2*(16+1)(r14) + mov &RES2,&RES0 + mov &RES3,&RES1 + mov r12,&RES2 + clr &RES3 + clr r12 + + /* END */ + mov &RES0,2*18(r14) + mov &RES1,2*(18+1)(r14) + pop r2 + eint diff --git a/samples/Assembly/lib.inc b/samples/Assembly/lib.inc new file mode 100644 index 00000000..1faceead --- /dev/null +++ b/samples/Assembly/lib.inc @@ -0,0 +1,170 @@ + +; ------------------------------------------------------------------------ +; 显示 AL 中的数字 +; ------------------------------------------------------------------------ +DispAL: + push ecx + push edx + push edi + + mov edi, [dwDispPos] + + mov ah, 0Fh ; 0000b: 黑底 1111b: 白字 + mov dl, al + shr al, 4 + mov ecx, 2 +.begin: + and al, 01111b + cmp al, 9 + ja .1 + add al, '0' + jmp .2 +.1: + sub al, 0Ah + add al, 'A' +.2: + mov [gs:edi], ax + add edi, 2 + + mov al, dl + loop .begin + ;add edi, 2 + + mov [dwDispPos], edi + + pop edi + pop edx + pop ecx + + ret +; DispAL 结束------------------------------------------------------------- + + +; ------------------------------------------------------------------------ +; 显示一个整形数 +; ------------------------------------------------------------------------ +DispInt: + mov eax, [esp + 4] + shr eax, 24 + call DispAL + + mov eax, [esp + 4] + shr eax, 16 + call DispAL + + mov eax, [esp + 4] + shr eax, 8 + call DispAL + + mov eax, [esp + 4] + call DispAL + + mov ah, 07h ; 0000b: 黑底 0111b: 灰字 + mov al, 'h' + push edi + mov edi, [dwDispPos] + mov [gs:edi], ax + add edi, 4 + mov [dwDispPos], edi + pop edi + + ret +; DispInt 结束------------------------------------------------------------ + +; ------------------------------------------------------------------------ +; 显示一个字符串 +; ------------------------------------------------------------------------ +DispStr: + push ebp + mov ebp, esp + push ebx + push esi + push edi + + mov esi, [ebp + 8] ; pszInfo + mov edi, [dwDispPos] + mov ah, 0Fh +.1: + lodsb + test al, al + jz .2 + cmp al, 0Ah ; 是回车吗? + jnz .3 + push eax + mov eax, edi + mov bl, 160 + div bl + and eax, 0FFh + inc eax + mov bl, 160 + mul bl + mov edi, eax + pop eax + jmp .1 +.3: + mov [gs:edi], ax + add edi, 2 + jmp .1 + +.2: + mov [dwDispPos], edi + + pop edi + pop esi + pop ebx + pop ebp + ret +; DispStr 结束------------------------------------------------------------ + +; ------------------------------------------------------------------------ +; 换行 +; ------------------------------------------------------------------------ +DispReturn: + push szReturn + call DispStr ;printf("\n"); + add esp, 4 + + ret +; DispReturn 结束--------------------------------------------------------- + + +; ------------------------------------------------------------------------ +; 内存拷贝,仿 memcpy +; ------------------------------------------------------------------------ +; void* MemCpy(void* es:pDest, void* ds:pSrc, int iSize); +; ------------------------------------------------------------------------ +MemCpy: + push ebp + mov ebp, esp + + push esi + push edi + push ecx + + mov edi, [ebp + 8] ; Destination + mov esi, [ebp + 12] ; Source + mov ecx, [ebp + 16] ; Counter +.1: + cmp ecx, 0 ; 判断计数器 + jz .2 ; 计数器为零时跳出 + + mov al, [ds:esi] ; ┓ + inc esi ; ┃ + ; ┣ 逐字节移动 + mov byte [es:edi], al ; ┃ + inc edi ; ┛ + + dec ecx ; 计数器减一 + jmp .1 ; 循环 +.2: + mov eax, [ebp + 8] ; 返回值 + + pop ecx + pop edi + pop esi + mov esp, ebp + pop ebp + + ret ; 函数结束,返回 +; MemCpy 结束------------------------------------------------------------- + diff --git a/samples/Assembly/macros.inc b/samples/Assembly/macros.inc new file mode 100644 index 00000000..dc968ad9 --- /dev/null +++ b/samples/Assembly/macros.inc @@ -0,0 +1,321 @@ +BLARGG_MACROS_INCLUDED = 1 + +; Allows extra error checking with modified version +; of ca65. Otherwise acts like a constant of 0. +ADDR = 0 + +; Switches to Segment and places Line there. +; Line can be an .align directive, .res, .byte, etc. +; Examples: +; seg_data BSS, .align 256 +; seg_data RODATA, {message: .byte "Test",0} +.macro seg_data Segment, Line + .pushseg + .segment .string(Segment) + Line + .popseg +.endmacro + +; Reserves Size bytes in Segment for Name. +; If Size is omitted, reserves one byte. +.macro seg_res Segment, Name, Size + .ifblank Size + seg_data Segment, Name: .res 1 + .else + seg_data Segment, Name: .res Size + .endif +.endmacro + +; Shortcuts for zeropage, bss, and stack +.define zp_res seg_res ZEROPAGE, +.define nv_res seg_res NVRAM, +.define bss_res seg_res BSS, +.define sp_res seg_res STACK, +.define zp_byte zp_res + +; Copies byte from Src to Addr. If Src begins with #, +; it sets Addr to the immediate value. +; Out: A = byte copied +; Preserved: X, Y +.macro mov Addr, Src + lda Src + sta Addr +.endmacro + +; Copies word from Src to Addr. If Src begins with #, +; it sets Addr the immediate value. +; Out: A = high byte of word +; Preserved: X, Y +.macro movw Addr, Src + .if .match( .left( 1, {Src} ), # ) + lda #<(.right( .tcount( {Src} )-1, {Src} )) + sta Addr + lda #>(.right( .tcount( {Src} )-1, {Src} )) + sta 1+(Addr) + .else + lda Src + sta Addr + lda 1+(Src) + sta 1+(Addr) + .endif +.endmacro + +; Increments 16-bit value at Addr. +; Out: EQ/NE based on resulting 16-bit value +; Preserved: A, X, Y +.macro incw Addr + .local @Skip + inc Addr + bne @Skip + inc 1+(Addr) +@Skip: +.endmacro + +; Adds Src to word at Addr. +; Out: A = high byte of result, carry set appropriately +; Preserved: X, Y +.macro addw Addr, Src + .if .match( .left( 1, {Src} ), # ) + addw_ Addr,(.right( .tcount( {Src} )-1, {Src} )) + .else + lda Addr + clc + adc Src + sta Addr + + lda 1+(Addr) + adc 1+(Src) + sta 1+(Addr) + .endif +.endmacro +.macro addw_ Addr, Imm + lda Addr + clc + adc #> 8) <> 0 + lda 1+(Addr) + adc #>Imm + sta 1+(Addr) + ;.else + ; .local @Skip + ; bcc @Skip + ; inc 1+(Addr) + ;@Skip: + ;.endif +.endmacro + +; Splits list of words into tables of low and high bytes +; Example: split_words foo, {$1234, $5678} +; expands to: +; foo_l: $34, $78 +; foo_h: $12, $56 +; foo_count = 2 +.macro split_words Label, Words + .ident (.concat (.string(Label), "_l")): .lobytes Words + .ident (.concat (.string(Label), "_h")): .hibytes Words + .ident (.concat (.string(Label), "_count")) = * - .ident (.concat (.string(Label), "_h")) +.endmacro + +.macro SELECT Bool, True, False, Extra + .ifndef Bool + False Extra + .elseif Bool <> 0 + True Extra + .else + False Extra + .endif +.endmacro + +.macro DEFAULT Name, Value + .ifndef Name + Name = Value + .endif +.endmacro + +.ifp02 + ; 6502 doesn't define these alternate names + .define blt bcc + .define bge bcs +.endif +.define jlt jcc +.define jge jcs + +; Jxx Target = Bxx Target, except it can go farther than +; 128 bytes. Implemented via branch around a JMP. + +; Don't use ca65's longbranch, because they fail for @labels +;.macpack longbranch + +.macro jeq Target + bne *+5 + jmp Target +.endmacro + +.macro jne Target + beq *+5 + jmp Target +.endmacro + +.macro jmi Target + bpl *+5 + jmp Target +.endmacro + +.macro jpl Target + bmi *+5 + jmp Target +.endmacro + +.macro jcs Target + bcc *+5 + jmp Target +.endmacro + +.macro jcc Target + bcs *+5 + jmp Target +.endmacro + +.macro jvs Target + bvc *+5 + jmp Target +.endmacro + +.macro jvc Target + bvs *+5 + jmp Target +.endmacro + + +; Passes constant data to routine in addr +; Preserved: A, X, Y +.macro jsr_with_addr routine,data + .local Addr + pha + lda #Addr + sta addr+1 + pla + jsr routine + seg_data RODATA,{Addr: data} +.endmacro + +; Calls routine multiple times, with A having the +; value 'start' the first time, 'start+step' the +; second time, up to 'end' for the last time. +.macro for_loop routine,start,end,step + .local @for_loop + lda #start +@for_loop: + pha + jsr routine + pla + clc + adc #step + cmp #<((end)+(step)) + bne @for_loop +.endmacro + +; Calls routine n times. The value of A in the routine +; counts from 0 to n-1. +.macro loop_n_times routine,n + for_loop routine,0,n-1,+1 +.endmacro + +; Same as for_loop, except uses 16-bit value in YX. +; -256 <= step <= 255 +.macro for_loop16 routine,start,end,step +.if (step) < -256 || (step) > 255 + .error "Step must be within -256 to 255" +.endif + .local @for_loop_skip + .local @for_loop + ldy #>(start) + lda #<(start) +@for_loop: + tax + pha + tya + pha + jsr routine + pla + tay + pla + clc + adc #step +.if (step) > 0 + bcc @for_loop_skip + iny +.else + bcs @for_loop_skip + dey +.endif +@for_loop_skip: + cmp #<((end)+(step)) + bne @for_loop + cpy #>((end)+(step)) + bne @for_loop +.endmacro + +; Stores byte at addr +; Preserved: X, Y +.macro setb addr, byte + lda #byte + sta addr +.endmacro + +; Stores word at addr +; Preserved: X, Y +.macro setw addr, word + lda #<(word) + sta addr + lda #>(word) + sta addr+1 +.endmacro + +; Loads XY with 16-bit immediate or value at address +.macro ldxy Arg + .if .match( .left( 1, {Arg} ), # ) + ldy #<(.right( .tcount( {Arg} )-1, {Arg} )) + ldx #>(.right( .tcount( {Arg} )-1, {Arg} )) + .else + ldy (Arg) + ldx (Arg)+1 + .endif +.endmacro + +; Increments XY as 16-bit register, in CONSTANT time. +; Z flag set based on entire result. +; Preserved: A +; Time: 7 clocks +.macro inxy + iny ; 2 + beq *+4 ; 3 + ; -1 + bne *+3 ; 3 + ; -1 + inx ; 2 +.endmacro + +; Negates A and adds it to operand +.macro subaf Operand + eor #$FF + sec + adc Operand +.endmacro + +; Initializes CPU registers to reasonable values +; Preserved: A, Y +.macro init_cpu_regs + sei + cld ; unnecessary on NES, but might help on clone + ldx #$FF + txs + .ifndef BUILD_NSF + inx + stx PPUCTRL + .endif +.endmacro diff --git a/samples/Brainfuck/factor.b b/samples/Brainfuck/factor.b new file mode 100644 index 00000000..43f06ba2 --- /dev/null +++ b/samples/Brainfuck/factor.b @@ -0,0 +1,195 @@ +* factor an arbitrarily large positive integer +* +* Copyright (C) 1999 by Brian Raiter +* under the GNU General Public License + +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>- + +* +* read in the number +* + +<<<<<<<<<+ +[-[>>>>>>>>>>][-]<<<<<<<<<<[[->>>>>>>>>>+<<<<<<<<<<]<<<<<<<<<<] + >>>>>>>>>>,----------] +>>>>>>>>>>[------------------------------------->>>>>>>>>->] +<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- + +* +* display the number and initialize the loop variable to two +* + +[>++++++++++++++++++++++++++++++++++++++++++++++++. + ------------------------------------------------<<<<<<<<<<<] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. +--------------------------.[-] +>>>>>>>>>>>>++<<<<+ + +* +* the main loop +* + +[ [-]>> + + * + * make copies of the number and the loop variable + * + + [>>>>[-]>[-]>[-]>[-] + >[-]>[-] + <<<<<<<[->>>+>+<<<<]>>>>>>>>] + <<<<<<<<<<[>>>>>>[-<<<<+>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>[->>>+>>+<<<<<]>>>>>>>>>] + <<<<<<<<<<[>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> + + * + * divide the number by the loop variable + * + + [>>>[-]>>>[-]>[-]>>>] initialize + <<<<<<<<<<[<<<<<<<<<<] + >>>>>>>>>[-]>>>>>>>+<<<<<<<<[+]+ + [ ->> double divisor until above dividend + [>>>>>>[->++<]>>>>]<<<<<<<<<< + [>>>>>>>>[-]>[-] + <<<<[->>>++<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< + [->--------->>>>>>>>>+<<<<<<<<<<[->+<]]]]]]]]]]]>>] + <<<<<<<<<<[>>>>>>>>>[-<+<<<+>>>>]<<<<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+> + [-<--------->>>>>>>>>>>+<<<<<<<<<<[-<+>]]]]]]]]]]]>>>] + <<<<<<<<<< + [>>>>[->>>+>>+<<<<<]<<<<<<<<<<<<<<] + >>>>>>>>>>[>>>>>>>[-<<<+>>>]>>>]<<<<<<<<<< + [>>>>>>>>[->-<]> + [<<<<<<<<<[<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<<] + >>>>>>>>>>>>>>>>>>>] + <<<<<<<<<<<<<<<<<<<] + >>>>>>>>>[+[+[+[+[+[+[+[+[+[+[[-]<+>]]]]]]]]]]]< + ] + >>>>>>>> + [ subtract divisor from dividend + <<<<<< + [>>>>>>>>[-]>[-]<<<<<[->>>+>+<<<<]>>>>>>]<<<<<<<<<< + [>>>>>>>>[-<<<<+>>>>]<<<[->>>+>+<<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>>[-<<<<+>>>>]>]<<<<<<<<<< + [>>>>>>>>[-<->]<<<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< + [++++++++++[+>-<]>>>>>>>>>>-<<<<<<<<<<]]]]]]]]]]]>>>] + >>>>>>>+ + [ if difference is nonnegative then + [-]<<<<<<<<<<<<<<<<< replace dividend and increment quotient + [>>>>[-]>>>>[-<<<<+>>>>]<<[->>+<<]<<<<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>[->+<<<+>>]>>]<<<<<<<<<< + [>>>[->>>>>>+<<<<<<]<<<<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>>[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> + [-<<<<<<+>>>>>>[-<<<<<<--------->>>>>>>>>>>>>>>>+<<<<<<<<<< + [-<<<<<<+>>>>>>]]]]]]]]]]]>] + >>>>>>> + ] halve divisor and loop until zero + <<<<<<<<<<<<<<<<<[<<<<<<<<<<]>>>>>>>>>> + [>>>>>>>>[-]<<[->+<]<[->>>+<<<]>>>>>]<<<<<<<<<< + [+>>>>>>>[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> + [-<<<<<<<+>>>>>>>]]]]]]]]]<<<<<<< + [->>>>>>>+<<<<<<<]-<<<<<<<<<<] + >>>>>>> + [-<<<<<<<<<<<+>>>>>>>>>>>] + >>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<< + [+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> + [-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<< + [->>>>>>>>+<<<<<<<<]-<<<<<<<<<<] + >>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>> + [>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<< + [<<<<<<<<<<]>>>>>>>>>> + >>>>>> + ] + <<<<<< + + * + * make copies of the loop variable and the quotient + * + + [>>>[->>>>+>+<<<<<]>>>>>>>] + <<<<<<<<<< + [>>>>>>>[-<<<<+>>>>]<<<<<[->>>>>+>>+<<<<<<<]<<<<<<<<<<<<] + >>>>>>>>>>[>>>>>>>[-<<<<<+>>>>>]>>>]<<<<<<<<<< + + * + * break out of the loop if the quotient is larger than the loop variable + * + + [>>>>>>>>>[-<->]< + [<<<<<<<< + [<<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] + >>>>>>>>>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] + >>>>>>>>[>-<[+[+[+[+[+[+[+[+[+[[-]>+<]]]]]]]]]]]>+ + + [ [-] + + * + * partially increment the loop variable + * + + <[-]+>>>>+>>>>>>>>[>>>>>>>>>>]<<<<<<<<<< + + * + * examine the remainder for nonzero digits + * + + [<<<<<<[<<<<[<<<<<<<<<<]>>>>+<<<<<<<<<<]<<<<] + >>>>>>>>>>>>>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<[<<<<<<<<<<] + >>>>- + + [ [+] + + * + * decrement the loop variable and replace the number with the quotient + * + + >>>>>>>>-<<[>[-]>>[-<<+>>]>>>>>>>]<<<<<<<<<< + + * + * display the loop variable + * + + [+>>[>>>>>>>>+>>]<<-<<<<<<<<<<]- + [>>++++++++++++++++++++++++++++++++++++++++++++++++. + ------------------------------------------------<<<<<<<<<<<<] + ++++++++++++++++++++++++++++++++.[-]>>>> + + ] + + * + * normalize the loop variable + * + + >>>>>> + [>>[->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>+<<<<< + [->>>>>+<<<<<[->>>>>--------->>>>>+<<<<<<<<<< + [->>>>>+<<<<<]]]]]]]]]]]>>>>>>>>] + <<<<<<<<<<[>>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<<] + >>>>>>>>> + + ]< + +]>> + +* +* display the number and end +* + +[>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- +[>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<] +++++++++++. diff --git a/samples/Brainfuck/fib100.bf b/samples/Brainfuck/fib100.bf new file mode 100644 index 00000000..3359588a --- /dev/null +++ b/samples/Brainfuck/fib100.bf @@ -0,0 +1,13 @@ +# Calculate and output all fibonacci numbers under 100 + ++++++++++++ +>+>>>>++++++++++++++++++++++++++++++++++++++++++++ +>++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+> ++<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[- +<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<< +-]>>[-]]<<]>>>[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]] +>[<<+>>[-]]<<<<<<<]>>>>>[+++++++++++++++++++++++++ ++++++++++++++++++++++++.[-]]++++++++++<[->-<]>++++ +++++++++++++++++++++++++++++++++++++++++++++.[-]<< +<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<< +[-]]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+>-]>[<+>-]<<<-] \ No newline at end of file diff --git a/samples/Brainfuck/hello.bf b/samples/Brainfuck/hello.bf new file mode 100644 index 00000000..6a93a155 --- /dev/null +++ b/samples/Brainfuck/hello.bf @@ -0,0 +1,4 @@ +// More complex version of hello world + +>++++++++[<+++++++++>-]<.>>+>+>++>[-]+<[>[->+<<++++>]<<]>.+++++++..+++.> +>+++++++.<<<[[-]<[-]>]<+++++++++++++++.>>.+++.------.--------.>>+.>++++. \ No newline at end of file diff --git a/samples/Brainfuck/helloworld.bf b/samples/Brainfuck/helloworld.bf new file mode 100644 index 00000000..c7bde23a --- /dev/null +++ b/samples/Brainfuck/helloworld.bf @@ -0,0 +1,3 @@ +// Hello World + +++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. \ No newline at end of file diff --git a/samples/Brainfuck/rot13.bf b/samples/Brainfuck/rot13.bf new file mode 100644 index 00000000..3b9d8e7f --- /dev/null +++ b/samples/Brainfuck/rot13.bf @@ -0,0 +1,30 @@ +# ROT13 cipher + +-,+[ Read first character and start outer character reading loop + -[ Skip forward if character is 0 + >>++++[>++++++++<-] Set up divisor (32) for division loop + (MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) + <+<-[ Set up dividend (x minus 1) and enter division loop + >+>+>-[>>>] Increase copy and remainder / reduce divisor / Normal case: skip forward + <[[>+<-]>>+>] Special case: move remainder back to divisor and increase quotient + <<<<<- Decrement dividend + ] End division loop + ]>>>[-]+ End skip loop; zero former divisor and reuse space for a flag + >--[-[<->+++[-]]]<[ Zero that flag unless quotient was 2 or 3; zero quotient; check flag + ++++++++++++<[ If flag then set up divisor (13) for second division loop + (MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero) + >-[>+>>] Reduce divisor; Normal case: increase remainder + >[+[<+>-]>+>>] Special case: increase remainder / move it back to divisor / increase quotient + <<<<<- Decrease dividend + ] End division loop + >>[<+>-] Add remainder back to divisor to get a useful 13 + >[ Skip forward if quotient was 0 + -[ Decrement quotient and skip forward if quotient was 1 + -<<[-]>> Zero quotient and divisor if quotient was 2 + ]<<[<<->>-]>> Zero divisor and subtract 13 from copy if quotient was 1 + ]<<[<<+>>-] Zero divisor and add 13 to copy if quotient was 0 + ] End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) + <[-] Clear remainder from first division if second division was skipped + <.[-] Output ROT13ed character from copy and clear it + <-,+ Read next character +] End character reading loop \ No newline at end of file diff --git a/samples/C++/ClasspathVMSystemProperties.inc b/samples/C++/ClasspathVMSystemProperties.inc new file mode 100644 index 00000000..714f19b9 --- /dev/null +++ b/samples/C++/ClasspathVMSystemProperties.inc @@ -0,0 +1,57 @@ +//===- ClasspathVMSystem/Properties.cpp -----------------------------------===// +//===--------------------- GNU classpath gnu/classpath/VMSystemProperties -===// +// +// The VMKit project +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include + +#include "types.h" + +#include "Classpath.h" +#include "JavaArray.h" +#include "JavaClass.h" +#include "JavaObject.h" +#include "JavaThread.h" +#include "JavaUpcalls.h" +#include "Jnjvm.h" + +#include "SetProperties.inc" + +using namespace j3; + +extern "C" { + + +JNIEXPORT void JNICALL Java_gnu_classpath_VMSystemProperties_preInit( +#ifdef NATIVE_JNI +JNIEnv *env, +jclass clazz, +#endif +JavaObject* prop) { + + llvm_gcroot(prop, 0); + + BEGIN_NATIVE_EXCEPTION(0) + + setProperties(prop); + + END_NATIVE_EXCEPTION +} + +extern "C" void Java_gnu_classpath_VMSystemProperties_postInit__Ljava_util_Properties_2(JavaObject* prop) { + + llvm_gcroot(prop, 0); + + BEGIN_NATIVE_EXCEPTION(0) + + setCommandLineProperties(prop); + + END_NATIVE_EXCEPTION +} + +} diff --git a/samples/C++/initClasses.inc b/samples/C++/initClasses.inc new file mode 100644 index 00000000..58439af1 --- /dev/null +++ b/samples/C++/initClasses.inc @@ -0,0 +1,2764 @@ +// start +// define cpp macros: SET_SYMBOL, CREATE_CLASS, SET_CLASS, DEFINE_BASE_CLASSES, DEFINE_CLASS_NAMES, EXPOSE_TO_CANDO +// define cpp macro: ALL_STAGES to get the effect of defining all of the macros above +// define cpp macro: EXPOSE_PYTHON to expose python +// Associating namespace(llvmo) with package(LlvmoPkg) + // class DebugLoc_O : public core::T_O + // class InsertPoint_O : public core::T_O + // class LLVMContext_O : public core::ExternalObject_O + // class Pass_O : public core::ExternalObject_O + // class FunctionPass_O : public Pass_O + // class ModulePass_O : public Pass_O + // class ImmutablePass_O : public ModulePass_O + // class PassManagerBase_O : public core::ExternalObject_O + // class Value_O : public core::ExternalObject_O + // class User_O : public Value_O + // class LLVMContext_O : public core::ExternalObject_O + // class Pass_O : public core::ExternalObject_O + // class FunctionPass_O : public Pass_O + // class ModulePass_O : public Pass_O + // class ImmutablePass_O : public ModulePass_O + // class PassManagerBase_O : public core::ExternalObject_O + // class Value_O : public core::ExternalObject_O + // class User_O : public Value_O + // class Attribute_O : public core::T_O + // class DataLayout_O : public ImmutablePass_O + // class Constant_O : public User_O + // class ConstantArray_O : public Constant_O + // class ConstantDataSequential_O : public Constant_O + // class ConstantDataArray_O : public ConstantDataSequential_O + // class ConstantExpr_O : public Constant_O + // class GlobalValue_O : public Constant_O + // class GlobalVariable_O : public GlobalValue_O + // class ExecutionEngine_O : public core::ExternalObject_O + // class Module_O : public core::ExternalObject_O + // class FunctionPassManager_O : public PassManagerBase_O + // class EngineBuilder_O : public core::ExternalObject_O + // class APFloat_O : public core::ExternalObject_O + // class APInt_O : public core::ExternalObject_O + // class IRBuilderBase_O : public core::ExternalObject_O + // class IRBuilder_O : public IRBuilderBase_O + // class Instruction_O : public User_O + // class StoreInst_O : public Instruction_O + // class FenceInst_O : public Instruction_O + // class AtomicCmpXchgInst_O : public Instruction_O + // class AtomicRMWInst_O : public Instruction_O + // class PHINode_O : public Instruction_O + // class CallInst_O : public Instruction_O + // class LandingPadInst_O : public Instruction_O + // class UnaryInstruction_O : public Instruction_O + // class AllocaInst_O : public UnaryInstruction_O + // class VAArgInst_O : public UnaryInstruction_O + // class LoadInst_O : public UnaryInstruction_O + // class TerminatorInst_O : public Instruction_O + // class BranchInst_O : public TerminatorInst_O + // class SwitchInst_O : public TerminatorInst_O + // class IndirectBrInst_O : public TerminatorInst_O + // class InvokeInst_O : public TerminatorInst_O + // class ResumeInst_O : public TerminatorInst_O + // class UnreachableInst_O : public TerminatorInst_O + // class ReturnInst_O : public TerminatorInst_O + // class ConstantFP_O : public Constant_O + // class ConstantInt_O : public Constant_O + // class UndefValue_O : public Constant_O + // class ConstantPointerNull_O : public Constant_O + // class MDNode_O : public Value_O + // class MDString_O : public Value_O + // class Function_O : public GlobalValue_O + // class BasicBlock_O : public Value_O + // class Argument_O : public Value_O + // class Type_O : public core::ExternalObject_O + // class FunctionType_O : public Type_O + // class IntegerType_O : public Type_O + // class CompositeType_O : public Type_O + // class StructType_O : public CompositeType_O + // class SequentialType_O : public CompositeType_O + // class PointerType_O : public SequentialType_O + // class ArrayType_O : public SequentialType_O + // class VectorType_O : public SequentialType_O + // class LLVMContext_O : public core::ExternalObject_O + // class Module_O : public core::ExternalObject_O + // class Builder_O : public core::ExternalObject_O + // class APFloat_O : public core::ExternalObject_O + // class Value_O : public core::ExternalObject_O + // class User_O : public Value_O + // class Constant_O : public User_O + // class ConstantFP_O : public Constant_O +// Associating namespace(llvmo) with package(LlvmoPkg) +#ifdef HEADER_INCLUDES +#include "llvmoExpose.h" +#include "llvmoExpose.scrape_inc.h" +#include "debugLoc.h" +#include "insertPoint.h" +#include "llvmoExpose.generated.h" +#endif // HEADER_INCLUDES +#undef HEADER_INCLUDES +#if defined(SET_SYMBOL) || defined(ALL_STAGES) +// requires LOOKUP_SYMBOL(pkg,symbolName) be defined +llvmo::APFloat_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::APFloat_O::static_packageName(),llvmo::APFloat_O::static_className())); +llvmo::APInt_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::APInt_O::static_packageName(),llvmo::APInt_O::static_className())); +llvmo::Attribute_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Attribute_O::static_packageName(),llvmo::Attribute_O::static_className())); +llvmo::Builder_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Builder_O::static_packageName(),llvmo::Builder_O::static_className())); +llvmo::DebugLoc_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::DebugLoc_O::static_packageName(),llvmo::DebugLoc_O::static_className())); +llvmo::EngineBuilder_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::EngineBuilder_O::static_packageName(),llvmo::EngineBuilder_O::static_className())); +llvmo::ExecutionEngine_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ExecutionEngine_O::static_packageName(),llvmo::ExecutionEngine_O::static_className())); +llvmo::IRBuilderBase_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IRBuilderBase_O::static_packageName(),llvmo::IRBuilderBase_O::static_className())); +llvmo::InsertPoint_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::InsertPoint_O::static_packageName(),llvmo::InsertPoint_O::static_className())); +llvmo::LLVMContext_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::LLVMContext_O::static_packageName(),llvmo::LLVMContext_O::static_className())); +llvmo::Module_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Module_O::static_packageName(),llvmo::Module_O::static_className())); +llvmo::PassManagerBase_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::PassManagerBase_O::static_packageName(),llvmo::PassManagerBase_O::static_className())); +llvmo::Pass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Pass_O::static_packageName(),llvmo::Pass_O::static_className())); +llvmo::Type_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Type_O::static_packageName(),llvmo::Type_O::static_className())); +llvmo::Value_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Value_O::static_packageName(),llvmo::Value_O::static_className())); +llvmo::Argument_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Argument_O::static_packageName(),llvmo::Argument_O::static_className())); +llvmo::BasicBlock_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::BasicBlock_O::static_packageName(),llvmo::BasicBlock_O::static_className())); +llvmo::CompositeType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::CompositeType_O::static_packageName(),llvmo::CompositeType_O::static_className())); +llvmo::FunctionPassManager_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FunctionPassManager_O::static_packageName(),llvmo::FunctionPassManager_O::static_className())); +llvmo::FunctionPass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FunctionPass_O::static_packageName(),llvmo::FunctionPass_O::static_className())); +llvmo::FunctionType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FunctionType_O::static_packageName(),llvmo::FunctionType_O::static_className())); +llvmo::IRBuilder_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IRBuilder_O::static_packageName(),llvmo::IRBuilder_O::static_className())); +llvmo::IntegerType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IntegerType_O::static_packageName(),llvmo::IntegerType_O::static_className())); +llvmo::MDNode_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::MDNode_O::static_packageName(),llvmo::MDNode_O::static_className())); +llvmo::MDString_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::MDString_O::static_packageName(),llvmo::MDString_O::static_className())); +llvmo::ModulePass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ModulePass_O::static_packageName(),llvmo::ModulePass_O::static_className())); +llvmo::User_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::User_O::static_packageName(),llvmo::User_O::static_className())); +llvmo::Constant_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Constant_O::static_packageName(),llvmo::Constant_O::static_className())); +llvmo::ImmutablePass_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ImmutablePass_O::static_packageName(),llvmo::ImmutablePass_O::static_className())); +llvmo::Instruction_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Instruction_O::static_packageName(),llvmo::Instruction_O::static_className())); +llvmo::SequentialType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::SequentialType_O::static_packageName(),llvmo::SequentialType_O::static_className())); +llvmo::StructType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::StructType_O::static_packageName(),llvmo::StructType_O::static_className())); +llvmo::ArrayType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ArrayType_O::static_packageName(),llvmo::ArrayType_O::static_className())); +llvmo::AtomicCmpXchgInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::AtomicCmpXchgInst_O::static_packageName(),llvmo::AtomicCmpXchgInst_O::static_className())); +llvmo::AtomicRMWInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::AtomicRMWInst_O::static_packageName(),llvmo::AtomicRMWInst_O::static_className())); +llvmo::CallInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::CallInst_O::static_packageName(),llvmo::CallInst_O::static_className())); +llvmo::ConstantArray_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantArray_O::static_packageName(),llvmo::ConstantArray_O::static_className())); +llvmo::ConstantDataSequential_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantDataSequential_O::static_packageName(),llvmo::ConstantDataSequential_O::static_className())); +llvmo::ConstantExpr_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantExpr_O::static_packageName(),llvmo::ConstantExpr_O::static_className())); +llvmo::ConstantFP_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantFP_O::static_packageName(),llvmo::ConstantFP_O::static_className())); +llvmo::ConstantInt_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantInt_O::static_packageName(),llvmo::ConstantInt_O::static_className())); +llvmo::ConstantPointerNull_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantPointerNull_O::static_packageName(),llvmo::ConstantPointerNull_O::static_className())); +llvmo::DataLayout_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::DataLayout_O::static_packageName(),llvmo::DataLayout_O::static_className())); +llvmo::FenceInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::FenceInst_O::static_packageName(),llvmo::FenceInst_O::static_className())); +llvmo::GlobalValue_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::GlobalValue_O::static_packageName(),llvmo::GlobalValue_O::static_className())); +llvmo::LandingPadInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::LandingPadInst_O::static_packageName(),llvmo::LandingPadInst_O::static_className())); +llvmo::PHINode_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::PHINode_O::static_packageName(),llvmo::PHINode_O::static_className())); +llvmo::PointerType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::PointerType_O::static_packageName(),llvmo::PointerType_O::static_className())); +llvmo::StoreInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::StoreInst_O::static_packageName(),llvmo::StoreInst_O::static_className())); +llvmo::TerminatorInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::TerminatorInst_O::static_packageName(),llvmo::TerminatorInst_O::static_className())); +llvmo::UnaryInstruction_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::UnaryInstruction_O::static_packageName(),llvmo::UnaryInstruction_O::static_className())); +llvmo::UndefValue_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::UndefValue_O::static_packageName(),llvmo::UndefValue_O::static_className())); +llvmo::VectorType_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::VectorType_O::static_packageName(),llvmo::VectorType_O::static_className())); +llvmo::AllocaInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::AllocaInst_O::static_packageName(),llvmo::AllocaInst_O::static_className())); +llvmo::BranchInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::BranchInst_O::static_packageName(),llvmo::BranchInst_O::static_className())); +llvmo::ConstantDataArray_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ConstantDataArray_O::static_packageName(),llvmo::ConstantDataArray_O::static_className())); +llvmo::Function_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::Function_O::static_packageName(),llvmo::Function_O::static_className())); +llvmo::GlobalVariable_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::GlobalVariable_O::static_packageName(),llvmo::GlobalVariable_O::static_className())); +llvmo::IndirectBrInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::IndirectBrInst_O::static_packageName(),llvmo::IndirectBrInst_O::static_className())); +llvmo::InvokeInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::InvokeInst_O::static_packageName(),llvmo::InvokeInst_O::static_className())); +llvmo::LoadInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::LoadInst_O::static_packageName(),llvmo::LoadInst_O::static_className())); +llvmo::ResumeInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ResumeInst_O::static_packageName(),llvmo::ResumeInst_O::static_className())); +llvmo::ReturnInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::ReturnInst_O::static_packageName(),llvmo::ReturnInst_O::static_className())); +llvmo::SwitchInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::SwitchInst_O::static_packageName(),llvmo::SwitchInst_O::static_className())); +llvmo::UnreachableInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::UnreachableInst_O::static_packageName(),llvmo::UnreachableInst_O::static_className())); +llvmo::VAArgInst_O::___set_static_ClassSymbol(LOOKUP_SYMBOL(llvmo::VAArgInst_O::static_packageName(),llvmo::VAArgInst_O::static_className())); +#endif // SET_SYMBOL +#undef SET_SYMBOL +#if defined(CREATE_CLASS) || defined(ALL_STAGES) +// Depends on undefinedMetaClass + core::MetaClass_sp undefinedMetaClass; undefinedMetaClass.reset(); + + LOG(BF("Creating class[classllvmo__APFloat_Oval]")); + core::BuiltInClass_sp classllvmo__APFloat_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__APFloat_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__APFloat_Oval,_lisp,llvmo::APFloat_O::static_classSymbol()); + llvmo::APFloat_O::___staticMetaClass = classllvmo__APFloat_Oval; + _lisp->setf_findClass(llvmo::APFloat_O::static_classSymbol(),classllvmo__APFloat_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::APFloat_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::APFloat_O::static_className() % (void*)(llvmo::APFloat_O::static_newNil_callback()) ); + classllvmo__APFloat_Oval->setInstance_newNil_callback(llvmo::APFloat_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::APFloat_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::APFloat_O::static_className() ); + llvmo::APFloat_O::_nil = nil_for_class; + classllvmo__APFloat_Oval->setInstanceNil(nil_for_class); + } + classllvmo__APFloat_Oval->setSupportsSlots(llvmo::APFloat_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__APInt_Oval]")); + core::BuiltInClass_sp classllvmo__APInt_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__APInt_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__APInt_Oval,_lisp,llvmo::APInt_O::static_classSymbol()); + llvmo::APInt_O::___staticMetaClass = classllvmo__APInt_Oval; + _lisp->setf_findClass(llvmo::APInt_O::static_classSymbol(),classllvmo__APInt_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::APInt_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::APInt_O::static_className() % (void*)(llvmo::APInt_O::static_newNil_callback()) ); + classllvmo__APInt_Oval->setInstance_newNil_callback(llvmo::APInt_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::APInt_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::APInt_O::static_className() ); + llvmo::APInt_O::_nil = nil_for_class; + classllvmo__APInt_Oval->setInstanceNil(nil_for_class); + } + classllvmo__APInt_Oval->setSupportsSlots(llvmo::APInt_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Attribute_Oval]")); + core::BuiltInClass_sp classllvmo__Attribute_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Attribute_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Attribute_Oval,_lisp,llvmo::Attribute_O::static_classSymbol()); + llvmo::Attribute_O::___staticMetaClass = classllvmo__Attribute_Oval; + _lisp->setf_findClass(llvmo::Attribute_O::static_classSymbol(),classllvmo__Attribute_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Attribute_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Attribute_O::static_className() % (void*)(llvmo::Attribute_O::static_newNil_callback()) ); + classllvmo__Attribute_Oval->setInstance_newNil_callback(llvmo::Attribute_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Attribute_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Attribute_O::static_className() ); + llvmo::Attribute_O::_nil = nil_for_class; + classllvmo__Attribute_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Attribute_Oval->setSupportsSlots(llvmo::Attribute_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Builder_Oval]")); + core::BuiltInClass_sp classllvmo__Builder_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Builder_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Builder_Oval,_lisp,llvmo::Builder_O::static_classSymbol()); + llvmo::Builder_O::___staticMetaClass = classllvmo__Builder_Oval; + _lisp->setf_findClass(llvmo::Builder_O::static_classSymbol(),classllvmo__Builder_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Builder_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Builder_O::static_className() % (void*)(llvmo::Builder_O::static_newNil_callback()) ); + classllvmo__Builder_Oval->setInstance_newNil_callback(llvmo::Builder_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Builder_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Builder_O::static_className() ); + llvmo::Builder_O::_nil = nil_for_class; + classllvmo__Builder_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Builder_Oval->setSupportsSlots(llvmo::Builder_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__DebugLoc_Oval]")); + core::BuiltInClass_sp classllvmo__DebugLoc_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__DebugLoc_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__DebugLoc_Oval,_lisp,llvmo::DebugLoc_O::static_classSymbol()); + llvmo::DebugLoc_O::___staticMetaClass = classllvmo__DebugLoc_Oval; + _lisp->setf_findClass(llvmo::DebugLoc_O::static_classSymbol(),classllvmo__DebugLoc_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::DebugLoc_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::DebugLoc_O::static_className() % (void*)(llvmo::DebugLoc_O::static_newNil_callback()) ); + classllvmo__DebugLoc_Oval->setInstance_newNil_callback(llvmo::DebugLoc_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::DebugLoc_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::DebugLoc_O::static_className() ); + llvmo::DebugLoc_O::_nil = nil_for_class; + classllvmo__DebugLoc_Oval->setInstanceNil(nil_for_class); + } + classllvmo__DebugLoc_Oval->setSupportsSlots(llvmo::DebugLoc_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__EngineBuilder_Oval]")); + core::BuiltInClass_sp classllvmo__EngineBuilder_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__EngineBuilder_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__EngineBuilder_Oval,_lisp,llvmo::EngineBuilder_O::static_classSymbol()); + llvmo::EngineBuilder_O::___staticMetaClass = classllvmo__EngineBuilder_Oval; + _lisp->setf_findClass(llvmo::EngineBuilder_O::static_classSymbol(),classllvmo__EngineBuilder_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::EngineBuilder_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::EngineBuilder_O::static_className() % (void*)(llvmo::EngineBuilder_O::static_newNil_callback()) ); + classllvmo__EngineBuilder_Oval->setInstance_newNil_callback(llvmo::EngineBuilder_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::EngineBuilder_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::EngineBuilder_O::static_className() ); + llvmo::EngineBuilder_O::_nil = nil_for_class; + classllvmo__EngineBuilder_Oval->setInstanceNil(nil_for_class); + } + classllvmo__EngineBuilder_Oval->setSupportsSlots(llvmo::EngineBuilder_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ExecutionEngine_Oval]")); + core::BuiltInClass_sp classllvmo__ExecutionEngine_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ExecutionEngine_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ExecutionEngine_Oval,_lisp,llvmo::ExecutionEngine_O::static_classSymbol()); + llvmo::ExecutionEngine_O::___staticMetaClass = classllvmo__ExecutionEngine_Oval; + _lisp->setf_findClass(llvmo::ExecutionEngine_O::static_classSymbol(),classllvmo__ExecutionEngine_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ExecutionEngine_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ExecutionEngine_O::static_className() % (void*)(llvmo::ExecutionEngine_O::static_newNil_callback()) ); + classllvmo__ExecutionEngine_Oval->setInstance_newNil_callback(llvmo::ExecutionEngine_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ExecutionEngine_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ExecutionEngine_O::static_className() ); + llvmo::ExecutionEngine_O::_nil = nil_for_class; + classllvmo__ExecutionEngine_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ExecutionEngine_Oval->setSupportsSlots(llvmo::ExecutionEngine_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IRBuilderBase_Oval]")); + core::BuiltInClass_sp classllvmo__IRBuilderBase_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IRBuilderBase_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IRBuilderBase_Oval,_lisp,llvmo::IRBuilderBase_O::static_classSymbol()); + llvmo::IRBuilderBase_O::___staticMetaClass = classllvmo__IRBuilderBase_Oval; + _lisp->setf_findClass(llvmo::IRBuilderBase_O::static_classSymbol(),classllvmo__IRBuilderBase_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IRBuilderBase_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IRBuilderBase_O::static_className() % (void*)(llvmo::IRBuilderBase_O::static_newNil_callback()) ); + classllvmo__IRBuilderBase_Oval->setInstance_newNil_callback(llvmo::IRBuilderBase_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IRBuilderBase_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IRBuilderBase_O::static_className() ); + llvmo::IRBuilderBase_O::_nil = nil_for_class; + classllvmo__IRBuilderBase_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IRBuilderBase_Oval->setSupportsSlots(llvmo::IRBuilderBase_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__InsertPoint_Oval]")); + core::BuiltInClass_sp classllvmo__InsertPoint_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__InsertPoint_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__InsertPoint_Oval,_lisp,llvmo::InsertPoint_O::static_classSymbol()); + llvmo::InsertPoint_O::___staticMetaClass = classllvmo__InsertPoint_Oval; + _lisp->setf_findClass(llvmo::InsertPoint_O::static_classSymbol(),classllvmo__InsertPoint_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::InsertPoint_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::InsertPoint_O::static_className() % (void*)(llvmo::InsertPoint_O::static_newNil_callback()) ); + classllvmo__InsertPoint_Oval->setInstance_newNil_callback(llvmo::InsertPoint_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::InsertPoint_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::InsertPoint_O::static_className() ); + llvmo::InsertPoint_O::_nil = nil_for_class; + classllvmo__InsertPoint_Oval->setInstanceNil(nil_for_class); + } + classllvmo__InsertPoint_Oval->setSupportsSlots(llvmo::InsertPoint_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__LLVMContext_Oval]")); + core::BuiltInClass_sp classllvmo__LLVMContext_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__LLVMContext_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__LLVMContext_Oval,_lisp,llvmo::LLVMContext_O::static_classSymbol()); + llvmo::LLVMContext_O::___staticMetaClass = classllvmo__LLVMContext_Oval; + _lisp->setf_findClass(llvmo::LLVMContext_O::static_classSymbol(),classllvmo__LLVMContext_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::LLVMContext_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::LLVMContext_O::static_className() % (void*)(llvmo::LLVMContext_O::static_newNil_callback()) ); + classllvmo__LLVMContext_Oval->setInstance_newNil_callback(llvmo::LLVMContext_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::LLVMContext_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::LLVMContext_O::static_className() ); + llvmo::LLVMContext_O::_nil = nil_for_class; + classllvmo__LLVMContext_Oval->setInstanceNil(nil_for_class); + } + classllvmo__LLVMContext_Oval->setSupportsSlots(llvmo::LLVMContext_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Module_Oval]")); + core::BuiltInClass_sp classllvmo__Module_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Module_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Module_Oval,_lisp,llvmo::Module_O::static_classSymbol()); + llvmo::Module_O::___staticMetaClass = classllvmo__Module_Oval; + _lisp->setf_findClass(llvmo::Module_O::static_classSymbol(),classllvmo__Module_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Module_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Module_O::static_className() % (void*)(llvmo::Module_O::static_newNil_callback()) ); + classllvmo__Module_Oval->setInstance_newNil_callback(llvmo::Module_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Module_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Module_O::static_className() ); + llvmo::Module_O::_nil = nil_for_class; + classllvmo__Module_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Module_Oval->setSupportsSlots(llvmo::Module_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__PassManagerBase_Oval]")); + core::BuiltInClass_sp classllvmo__PassManagerBase_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__PassManagerBase_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__PassManagerBase_Oval,_lisp,llvmo::PassManagerBase_O::static_classSymbol()); + llvmo::PassManagerBase_O::___staticMetaClass = classllvmo__PassManagerBase_Oval; + _lisp->setf_findClass(llvmo::PassManagerBase_O::static_classSymbol(),classllvmo__PassManagerBase_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::PassManagerBase_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::PassManagerBase_O::static_className() % (void*)(llvmo::PassManagerBase_O::static_newNil_callback()) ); + classllvmo__PassManagerBase_Oval->setInstance_newNil_callback(llvmo::PassManagerBase_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::PassManagerBase_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::PassManagerBase_O::static_className() ); + llvmo::PassManagerBase_O::_nil = nil_for_class; + classllvmo__PassManagerBase_Oval->setInstanceNil(nil_for_class); + } + classllvmo__PassManagerBase_Oval->setSupportsSlots(llvmo::PassManagerBase_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Pass_Oval]")); + core::BuiltInClass_sp classllvmo__Pass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Pass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Pass_Oval,_lisp,llvmo::Pass_O::static_classSymbol()); + llvmo::Pass_O::___staticMetaClass = classllvmo__Pass_Oval; + _lisp->setf_findClass(llvmo::Pass_O::static_classSymbol(),classllvmo__Pass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Pass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Pass_O::static_className() % (void*)(llvmo::Pass_O::static_newNil_callback()) ); + classllvmo__Pass_Oval->setInstance_newNil_callback(llvmo::Pass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Pass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Pass_O::static_className() ); + llvmo::Pass_O::_nil = nil_for_class; + classllvmo__Pass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Pass_Oval->setSupportsSlots(llvmo::Pass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Type_Oval]")); + core::BuiltInClass_sp classllvmo__Type_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Type_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Type_Oval,_lisp,llvmo::Type_O::static_classSymbol()); + llvmo::Type_O::___staticMetaClass = classllvmo__Type_Oval; + _lisp->setf_findClass(llvmo::Type_O::static_classSymbol(),classllvmo__Type_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Type_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Type_O::static_className() % (void*)(llvmo::Type_O::static_newNil_callback()) ); + classllvmo__Type_Oval->setInstance_newNil_callback(llvmo::Type_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Type_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Type_O::static_className() ); + llvmo::Type_O::_nil = nil_for_class; + classllvmo__Type_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Type_Oval->setSupportsSlots(llvmo::Type_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Value_Oval]")); + core::BuiltInClass_sp classllvmo__Value_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Value_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Value_Oval,_lisp,llvmo::Value_O::static_classSymbol()); + llvmo::Value_O::___staticMetaClass = classllvmo__Value_Oval; + _lisp->setf_findClass(llvmo::Value_O::static_classSymbol(),classllvmo__Value_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Value_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Value_O::static_className() % (void*)(llvmo::Value_O::static_newNil_callback()) ); + classllvmo__Value_Oval->setInstance_newNil_callback(llvmo::Value_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Value_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Value_O::static_className() ); + llvmo::Value_O::_nil = nil_for_class; + classllvmo__Value_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Value_Oval->setSupportsSlots(llvmo::Value_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Argument_Oval]")); + core::BuiltInClass_sp classllvmo__Argument_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Argument_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Argument_Oval,_lisp,llvmo::Argument_O::static_classSymbol()); + llvmo::Argument_O::___staticMetaClass = classllvmo__Argument_Oval; + _lisp->setf_findClass(llvmo::Argument_O::static_classSymbol(),classllvmo__Argument_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Argument_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Argument_O::static_className() % (void*)(llvmo::Argument_O::static_newNil_callback()) ); + classllvmo__Argument_Oval->setInstance_newNil_callback(llvmo::Argument_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Argument_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Argument_O::static_className() ); + llvmo::Argument_O::_nil = nil_for_class; + classllvmo__Argument_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Argument_Oval->setSupportsSlots(llvmo::Argument_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__BasicBlock_Oval]")); + core::BuiltInClass_sp classllvmo__BasicBlock_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__BasicBlock_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__BasicBlock_Oval,_lisp,llvmo::BasicBlock_O::static_classSymbol()); + llvmo::BasicBlock_O::___staticMetaClass = classllvmo__BasicBlock_Oval; + _lisp->setf_findClass(llvmo::BasicBlock_O::static_classSymbol(),classllvmo__BasicBlock_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::BasicBlock_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::BasicBlock_O::static_className() % (void*)(llvmo::BasicBlock_O::static_newNil_callback()) ); + classllvmo__BasicBlock_Oval->setInstance_newNil_callback(llvmo::BasicBlock_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::BasicBlock_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::BasicBlock_O::static_className() ); + llvmo::BasicBlock_O::_nil = nil_for_class; + classllvmo__BasicBlock_Oval->setInstanceNil(nil_for_class); + } + classllvmo__BasicBlock_Oval->setSupportsSlots(llvmo::BasicBlock_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__CompositeType_Oval]")); + core::BuiltInClass_sp classllvmo__CompositeType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__CompositeType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__CompositeType_Oval,_lisp,llvmo::CompositeType_O::static_classSymbol()); + llvmo::CompositeType_O::___staticMetaClass = classllvmo__CompositeType_Oval; + _lisp->setf_findClass(llvmo::CompositeType_O::static_classSymbol(),classllvmo__CompositeType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::CompositeType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::CompositeType_O::static_className() % (void*)(llvmo::CompositeType_O::static_newNil_callback()) ); + classllvmo__CompositeType_Oval->setInstance_newNil_callback(llvmo::CompositeType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::CompositeType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::CompositeType_O::static_className() ); + llvmo::CompositeType_O::_nil = nil_for_class; + classllvmo__CompositeType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__CompositeType_Oval->setSupportsSlots(llvmo::CompositeType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FunctionPassManager_Oval]")); + core::BuiltInClass_sp classllvmo__FunctionPassManager_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FunctionPassManager_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FunctionPassManager_Oval,_lisp,llvmo::FunctionPassManager_O::static_classSymbol()); + llvmo::FunctionPassManager_O::___staticMetaClass = classllvmo__FunctionPassManager_Oval; + _lisp->setf_findClass(llvmo::FunctionPassManager_O::static_classSymbol(),classllvmo__FunctionPassManager_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FunctionPassManager_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FunctionPassManager_O::static_className() % (void*)(llvmo::FunctionPassManager_O::static_newNil_callback()) ); + classllvmo__FunctionPassManager_Oval->setInstance_newNil_callback(llvmo::FunctionPassManager_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FunctionPassManager_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FunctionPassManager_O::static_className() ); + llvmo::FunctionPassManager_O::_nil = nil_for_class; + classllvmo__FunctionPassManager_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FunctionPassManager_Oval->setSupportsSlots(llvmo::FunctionPassManager_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FunctionPass_Oval]")); + core::BuiltInClass_sp classllvmo__FunctionPass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FunctionPass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FunctionPass_Oval,_lisp,llvmo::FunctionPass_O::static_classSymbol()); + llvmo::FunctionPass_O::___staticMetaClass = classllvmo__FunctionPass_Oval; + _lisp->setf_findClass(llvmo::FunctionPass_O::static_classSymbol(),classllvmo__FunctionPass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FunctionPass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FunctionPass_O::static_className() % (void*)(llvmo::FunctionPass_O::static_newNil_callback()) ); + classllvmo__FunctionPass_Oval->setInstance_newNil_callback(llvmo::FunctionPass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FunctionPass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FunctionPass_O::static_className() ); + llvmo::FunctionPass_O::_nil = nil_for_class; + classllvmo__FunctionPass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FunctionPass_Oval->setSupportsSlots(llvmo::FunctionPass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FunctionType_Oval]")); + core::BuiltInClass_sp classllvmo__FunctionType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FunctionType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FunctionType_Oval,_lisp,llvmo::FunctionType_O::static_classSymbol()); + llvmo::FunctionType_O::___staticMetaClass = classllvmo__FunctionType_Oval; + _lisp->setf_findClass(llvmo::FunctionType_O::static_classSymbol(),classllvmo__FunctionType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FunctionType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FunctionType_O::static_className() % (void*)(llvmo::FunctionType_O::static_newNil_callback()) ); + classllvmo__FunctionType_Oval->setInstance_newNil_callback(llvmo::FunctionType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FunctionType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FunctionType_O::static_className() ); + llvmo::FunctionType_O::_nil = nil_for_class; + classllvmo__FunctionType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FunctionType_Oval->setSupportsSlots(llvmo::FunctionType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IRBuilder_Oval]")); + core::BuiltInClass_sp classllvmo__IRBuilder_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IRBuilder_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IRBuilder_Oval,_lisp,llvmo::IRBuilder_O::static_classSymbol()); + llvmo::IRBuilder_O::___staticMetaClass = classllvmo__IRBuilder_Oval; + _lisp->setf_findClass(llvmo::IRBuilder_O::static_classSymbol(),classllvmo__IRBuilder_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IRBuilder_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IRBuilder_O::static_className() % (void*)(llvmo::IRBuilder_O::static_newNil_callback()) ); + classllvmo__IRBuilder_Oval->setInstance_newNil_callback(llvmo::IRBuilder_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IRBuilder_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IRBuilder_O::static_className() ); + llvmo::IRBuilder_O::_nil = nil_for_class; + classllvmo__IRBuilder_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IRBuilder_Oval->setSupportsSlots(llvmo::IRBuilder_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IntegerType_Oval]")); + core::BuiltInClass_sp classllvmo__IntegerType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IntegerType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IntegerType_Oval,_lisp,llvmo::IntegerType_O::static_classSymbol()); + llvmo::IntegerType_O::___staticMetaClass = classllvmo__IntegerType_Oval; + _lisp->setf_findClass(llvmo::IntegerType_O::static_classSymbol(),classllvmo__IntegerType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IntegerType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IntegerType_O::static_className() % (void*)(llvmo::IntegerType_O::static_newNil_callback()) ); + classllvmo__IntegerType_Oval->setInstance_newNil_callback(llvmo::IntegerType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IntegerType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IntegerType_O::static_className() ); + llvmo::IntegerType_O::_nil = nil_for_class; + classllvmo__IntegerType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IntegerType_Oval->setSupportsSlots(llvmo::IntegerType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__MDNode_Oval]")); + core::BuiltInClass_sp classllvmo__MDNode_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__MDNode_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__MDNode_Oval,_lisp,llvmo::MDNode_O::static_classSymbol()); + llvmo::MDNode_O::___staticMetaClass = classllvmo__MDNode_Oval; + _lisp->setf_findClass(llvmo::MDNode_O::static_classSymbol(),classllvmo__MDNode_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::MDNode_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::MDNode_O::static_className() % (void*)(llvmo::MDNode_O::static_newNil_callback()) ); + classllvmo__MDNode_Oval->setInstance_newNil_callback(llvmo::MDNode_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::MDNode_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::MDNode_O::static_className() ); + llvmo::MDNode_O::_nil = nil_for_class; + classllvmo__MDNode_Oval->setInstanceNil(nil_for_class); + } + classllvmo__MDNode_Oval->setSupportsSlots(llvmo::MDNode_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__MDString_Oval]")); + core::BuiltInClass_sp classllvmo__MDString_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__MDString_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__MDString_Oval,_lisp,llvmo::MDString_O::static_classSymbol()); + llvmo::MDString_O::___staticMetaClass = classllvmo__MDString_Oval; + _lisp->setf_findClass(llvmo::MDString_O::static_classSymbol(),classllvmo__MDString_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::MDString_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::MDString_O::static_className() % (void*)(llvmo::MDString_O::static_newNil_callback()) ); + classllvmo__MDString_Oval->setInstance_newNil_callback(llvmo::MDString_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::MDString_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::MDString_O::static_className() ); + llvmo::MDString_O::_nil = nil_for_class; + classllvmo__MDString_Oval->setInstanceNil(nil_for_class); + } + classllvmo__MDString_Oval->setSupportsSlots(llvmo::MDString_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ModulePass_Oval]")); + core::BuiltInClass_sp classllvmo__ModulePass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ModulePass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ModulePass_Oval,_lisp,llvmo::ModulePass_O::static_classSymbol()); + llvmo::ModulePass_O::___staticMetaClass = classllvmo__ModulePass_Oval; + _lisp->setf_findClass(llvmo::ModulePass_O::static_classSymbol(),classllvmo__ModulePass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ModulePass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ModulePass_O::static_className() % (void*)(llvmo::ModulePass_O::static_newNil_callback()) ); + classllvmo__ModulePass_Oval->setInstance_newNil_callback(llvmo::ModulePass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ModulePass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ModulePass_O::static_className() ); + llvmo::ModulePass_O::_nil = nil_for_class; + classllvmo__ModulePass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ModulePass_Oval->setSupportsSlots(llvmo::ModulePass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__User_Oval]")); + core::BuiltInClass_sp classllvmo__User_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__User_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__User_Oval,_lisp,llvmo::User_O::static_classSymbol()); + llvmo::User_O::___staticMetaClass = classllvmo__User_Oval; + _lisp->setf_findClass(llvmo::User_O::static_classSymbol(),classllvmo__User_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::User_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::User_O::static_className() % (void*)(llvmo::User_O::static_newNil_callback()) ); + classllvmo__User_Oval->setInstance_newNil_callback(llvmo::User_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::User_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::User_O::static_className() ); + llvmo::User_O::_nil = nil_for_class; + classllvmo__User_Oval->setInstanceNil(nil_for_class); + } + classllvmo__User_Oval->setSupportsSlots(llvmo::User_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Constant_Oval]")); + core::BuiltInClass_sp classllvmo__Constant_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Constant_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Constant_Oval,_lisp,llvmo::Constant_O::static_classSymbol()); + llvmo::Constant_O::___staticMetaClass = classllvmo__Constant_Oval; + _lisp->setf_findClass(llvmo::Constant_O::static_classSymbol(),classllvmo__Constant_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Constant_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Constant_O::static_className() % (void*)(llvmo::Constant_O::static_newNil_callback()) ); + classllvmo__Constant_Oval->setInstance_newNil_callback(llvmo::Constant_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Constant_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Constant_O::static_className() ); + llvmo::Constant_O::_nil = nil_for_class; + classllvmo__Constant_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Constant_Oval->setSupportsSlots(llvmo::Constant_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ImmutablePass_Oval]")); + core::BuiltInClass_sp classllvmo__ImmutablePass_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ImmutablePass_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ImmutablePass_Oval,_lisp,llvmo::ImmutablePass_O::static_classSymbol()); + llvmo::ImmutablePass_O::___staticMetaClass = classllvmo__ImmutablePass_Oval; + _lisp->setf_findClass(llvmo::ImmutablePass_O::static_classSymbol(),classllvmo__ImmutablePass_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ImmutablePass_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ImmutablePass_O::static_className() % (void*)(llvmo::ImmutablePass_O::static_newNil_callback()) ); + classllvmo__ImmutablePass_Oval->setInstance_newNil_callback(llvmo::ImmutablePass_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ImmutablePass_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ImmutablePass_O::static_className() ); + llvmo::ImmutablePass_O::_nil = nil_for_class; + classllvmo__ImmutablePass_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ImmutablePass_Oval->setSupportsSlots(llvmo::ImmutablePass_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Instruction_Oval]")); + core::BuiltInClass_sp classllvmo__Instruction_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Instruction_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Instruction_Oval,_lisp,llvmo::Instruction_O::static_classSymbol()); + llvmo::Instruction_O::___staticMetaClass = classllvmo__Instruction_Oval; + _lisp->setf_findClass(llvmo::Instruction_O::static_classSymbol(),classllvmo__Instruction_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Instruction_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Instruction_O::static_className() % (void*)(llvmo::Instruction_O::static_newNil_callback()) ); + classllvmo__Instruction_Oval->setInstance_newNil_callback(llvmo::Instruction_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Instruction_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Instruction_O::static_className() ); + llvmo::Instruction_O::_nil = nil_for_class; + classllvmo__Instruction_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Instruction_Oval->setSupportsSlots(llvmo::Instruction_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__SequentialType_Oval]")); + core::BuiltInClass_sp classllvmo__SequentialType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__SequentialType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__SequentialType_Oval,_lisp,llvmo::SequentialType_O::static_classSymbol()); + llvmo::SequentialType_O::___staticMetaClass = classllvmo__SequentialType_Oval; + _lisp->setf_findClass(llvmo::SequentialType_O::static_classSymbol(),classllvmo__SequentialType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::SequentialType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::SequentialType_O::static_className() % (void*)(llvmo::SequentialType_O::static_newNil_callback()) ); + classllvmo__SequentialType_Oval->setInstance_newNil_callback(llvmo::SequentialType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::SequentialType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::SequentialType_O::static_className() ); + llvmo::SequentialType_O::_nil = nil_for_class; + classllvmo__SequentialType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__SequentialType_Oval->setSupportsSlots(llvmo::SequentialType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__StructType_Oval]")); + core::BuiltInClass_sp classllvmo__StructType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__StructType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__StructType_Oval,_lisp,llvmo::StructType_O::static_classSymbol()); + llvmo::StructType_O::___staticMetaClass = classllvmo__StructType_Oval; + _lisp->setf_findClass(llvmo::StructType_O::static_classSymbol(),classllvmo__StructType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::StructType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::StructType_O::static_className() % (void*)(llvmo::StructType_O::static_newNil_callback()) ); + classllvmo__StructType_Oval->setInstance_newNil_callback(llvmo::StructType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::StructType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::StructType_O::static_className() ); + llvmo::StructType_O::_nil = nil_for_class; + classllvmo__StructType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__StructType_Oval->setSupportsSlots(llvmo::StructType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ArrayType_Oval]")); + core::BuiltInClass_sp classllvmo__ArrayType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ArrayType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ArrayType_Oval,_lisp,llvmo::ArrayType_O::static_classSymbol()); + llvmo::ArrayType_O::___staticMetaClass = classllvmo__ArrayType_Oval; + _lisp->setf_findClass(llvmo::ArrayType_O::static_classSymbol(),classllvmo__ArrayType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ArrayType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ArrayType_O::static_className() % (void*)(llvmo::ArrayType_O::static_newNil_callback()) ); + classllvmo__ArrayType_Oval->setInstance_newNil_callback(llvmo::ArrayType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ArrayType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ArrayType_O::static_className() ); + llvmo::ArrayType_O::_nil = nil_for_class; + classllvmo__ArrayType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ArrayType_Oval->setSupportsSlots(llvmo::ArrayType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__AtomicCmpXchgInst_Oval]")); + core::BuiltInClass_sp classllvmo__AtomicCmpXchgInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__AtomicCmpXchgInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__AtomicCmpXchgInst_Oval,_lisp,llvmo::AtomicCmpXchgInst_O::static_classSymbol()); + llvmo::AtomicCmpXchgInst_O::___staticMetaClass = classllvmo__AtomicCmpXchgInst_Oval; + _lisp->setf_findClass(llvmo::AtomicCmpXchgInst_O::static_classSymbol(),classllvmo__AtomicCmpXchgInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::AtomicCmpXchgInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::AtomicCmpXchgInst_O::static_className() % (void*)(llvmo::AtomicCmpXchgInst_O::static_newNil_callback()) ); + classllvmo__AtomicCmpXchgInst_Oval->setInstance_newNil_callback(llvmo::AtomicCmpXchgInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::AtomicCmpXchgInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::AtomicCmpXchgInst_O::static_className() ); + llvmo::AtomicCmpXchgInst_O::_nil = nil_for_class; + classllvmo__AtomicCmpXchgInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__AtomicCmpXchgInst_Oval->setSupportsSlots(llvmo::AtomicCmpXchgInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__AtomicRMWInst_Oval]")); + core::BuiltInClass_sp classllvmo__AtomicRMWInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__AtomicRMWInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__AtomicRMWInst_Oval,_lisp,llvmo::AtomicRMWInst_O::static_classSymbol()); + llvmo::AtomicRMWInst_O::___staticMetaClass = classllvmo__AtomicRMWInst_Oval; + _lisp->setf_findClass(llvmo::AtomicRMWInst_O::static_classSymbol(),classllvmo__AtomicRMWInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::AtomicRMWInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::AtomicRMWInst_O::static_className() % (void*)(llvmo::AtomicRMWInst_O::static_newNil_callback()) ); + classllvmo__AtomicRMWInst_Oval->setInstance_newNil_callback(llvmo::AtomicRMWInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::AtomicRMWInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::AtomicRMWInst_O::static_className() ); + llvmo::AtomicRMWInst_O::_nil = nil_for_class; + classllvmo__AtomicRMWInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__AtomicRMWInst_Oval->setSupportsSlots(llvmo::AtomicRMWInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__CallInst_Oval]")); + core::BuiltInClass_sp classllvmo__CallInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__CallInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__CallInst_Oval,_lisp,llvmo::CallInst_O::static_classSymbol()); + llvmo::CallInst_O::___staticMetaClass = classllvmo__CallInst_Oval; + _lisp->setf_findClass(llvmo::CallInst_O::static_classSymbol(),classllvmo__CallInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::CallInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::CallInst_O::static_className() % (void*)(llvmo::CallInst_O::static_newNil_callback()) ); + classllvmo__CallInst_Oval->setInstance_newNil_callback(llvmo::CallInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::CallInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::CallInst_O::static_className() ); + llvmo::CallInst_O::_nil = nil_for_class; + classllvmo__CallInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__CallInst_Oval->setSupportsSlots(llvmo::CallInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantArray_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantArray_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantArray_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantArray_Oval,_lisp,llvmo::ConstantArray_O::static_classSymbol()); + llvmo::ConstantArray_O::___staticMetaClass = classllvmo__ConstantArray_Oval; + _lisp->setf_findClass(llvmo::ConstantArray_O::static_classSymbol(),classllvmo__ConstantArray_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantArray_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantArray_O::static_className() % (void*)(llvmo::ConstantArray_O::static_newNil_callback()) ); + classllvmo__ConstantArray_Oval->setInstance_newNil_callback(llvmo::ConstantArray_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantArray_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantArray_O::static_className() ); + llvmo::ConstantArray_O::_nil = nil_for_class; + classllvmo__ConstantArray_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantArray_Oval->setSupportsSlots(llvmo::ConstantArray_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantDataSequential_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantDataSequential_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantDataSequential_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantDataSequential_Oval,_lisp,llvmo::ConstantDataSequential_O::static_classSymbol()); + llvmo::ConstantDataSequential_O::___staticMetaClass = classllvmo__ConstantDataSequential_Oval; + _lisp->setf_findClass(llvmo::ConstantDataSequential_O::static_classSymbol(),classllvmo__ConstantDataSequential_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantDataSequential_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantDataSequential_O::static_className() % (void*)(llvmo::ConstantDataSequential_O::static_newNil_callback()) ); + classllvmo__ConstantDataSequential_Oval->setInstance_newNil_callback(llvmo::ConstantDataSequential_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantDataSequential_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantDataSequential_O::static_className() ); + llvmo::ConstantDataSequential_O::_nil = nil_for_class; + classllvmo__ConstantDataSequential_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantDataSequential_Oval->setSupportsSlots(llvmo::ConstantDataSequential_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantExpr_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantExpr_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantExpr_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantExpr_Oval,_lisp,llvmo::ConstantExpr_O::static_classSymbol()); + llvmo::ConstantExpr_O::___staticMetaClass = classllvmo__ConstantExpr_Oval; + _lisp->setf_findClass(llvmo::ConstantExpr_O::static_classSymbol(),classllvmo__ConstantExpr_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantExpr_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantExpr_O::static_className() % (void*)(llvmo::ConstantExpr_O::static_newNil_callback()) ); + classllvmo__ConstantExpr_Oval->setInstance_newNil_callback(llvmo::ConstantExpr_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantExpr_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantExpr_O::static_className() ); + llvmo::ConstantExpr_O::_nil = nil_for_class; + classllvmo__ConstantExpr_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantExpr_Oval->setSupportsSlots(llvmo::ConstantExpr_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantFP_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantFP_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantFP_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantFP_Oval,_lisp,llvmo::ConstantFP_O::static_classSymbol()); + llvmo::ConstantFP_O::___staticMetaClass = classllvmo__ConstantFP_Oval; + _lisp->setf_findClass(llvmo::ConstantFP_O::static_classSymbol(),classllvmo__ConstantFP_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantFP_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantFP_O::static_className() % (void*)(llvmo::ConstantFP_O::static_newNil_callback()) ); + classllvmo__ConstantFP_Oval->setInstance_newNil_callback(llvmo::ConstantFP_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantFP_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantFP_O::static_className() ); + llvmo::ConstantFP_O::_nil = nil_for_class; + classllvmo__ConstantFP_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantFP_Oval->setSupportsSlots(llvmo::ConstantFP_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantInt_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantInt_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantInt_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantInt_Oval,_lisp,llvmo::ConstantInt_O::static_classSymbol()); + llvmo::ConstantInt_O::___staticMetaClass = classllvmo__ConstantInt_Oval; + _lisp->setf_findClass(llvmo::ConstantInt_O::static_classSymbol(),classllvmo__ConstantInt_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantInt_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantInt_O::static_className() % (void*)(llvmo::ConstantInt_O::static_newNil_callback()) ); + classllvmo__ConstantInt_Oval->setInstance_newNil_callback(llvmo::ConstantInt_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantInt_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantInt_O::static_className() ); + llvmo::ConstantInt_O::_nil = nil_for_class; + classllvmo__ConstantInt_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantInt_Oval->setSupportsSlots(llvmo::ConstantInt_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantPointerNull_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantPointerNull_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantPointerNull_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantPointerNull_Oval,_lisp,llvmo::ConstantPointerNull_O::static_classSymbol()); + llvmo::ConstantPointerNull_O::___staticMetaClass = classllvmo__ConstantPointerNull_Oval; + _lisp->setf_findClass(llvmo::ConstantPointerNull_O::static_classSymbol(),classllvmo__ConstantPointerNull_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantPointerNull_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantPointerNull_O::static_className() % (void*)(llvmo::ConstantPointerNull_O::static_newNil_callback()) ); + classllvmo__ConstantPointerNull_Oval->setInstance_newNil_callback(llvmo::ConstantPointerNull_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantPointerNull_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantPointerNull_O::static_className() ); + llvmo::ConstantPointerNull_O::_nil = nil_for_class; + classllvmo__ConstantPointerNull_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantPointerNull_Oval->setSupportsSlots(llvmo::ConstantPointerNull_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__DataLayout_Oval]")); + core::BuiltInClass_sp classllvmo__DataLayout_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__DataLayout_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__DataLayout_Oval,_lisp,llvmo::DataLayout_O::static_classSymbol()); + llvmo::DataLayout_O::___staticMetaClass = classllvmo__DataLayout_Oval; + _lisp->setf_findClass(llvmo::DataLayout_O::static_classSymbol(),classllvmo__DataLayout_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::DataLayout_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::DataLayout_O::static_className() % (void*)(llvmo::DataLayout_O::static_newNil_callback()) ); + classllvmo__DataLayout_Oval->setInstance_newNil_callback(llvmo::DataLayout_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::DataLayout_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::DataLayout_O::static_className() ); + llvmo::DataLayout_O::_nil = nil_for_class; + classllvmo__DataLayout_Oval->setInstanceNil(nil_for_class); + } + classllvmo__DataLayout_Oval->setSupportsSlots(llvmo::DataLayout_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__FenceInst_Oval]")); + core::BuiltInClass_sp classllvmo__FenceInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__FenceInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__FenceInst_Oval,_lisp,llvmo::FenceInst_O::static_classSymbol()); + llvmo::FenceInst_O::___staticMetaClass = classllvmo__FenceInst_Oval; + _lisp->setf_findClass(llvmo::FenceInst_O::static_classSymbol(),classllvmo__FenceInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::FenceInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::FenceInst_O::static_className() % (void*)(llvmo::FenceInst_O::static_newNil_callback()) ); + classllvmo__FenceInst_Oval->setInstance_newNil_callback(llvmo::FenceInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::FenceInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::FenceInst_O::static_className() ); + llvmo::FenceInst_O::_nil = nil_for_class; + classllvmo__FenceInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__FenceInst_Oval->setSupportsSlots(llvmo::FenceInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__GlobalValue_Oval]")); + core::BuiltInClass_sp classllvmo__GlobalValue_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__GlobalValue_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__GlobalValue_Oval,_lisp,llvmo::GlobalValue_O::static_classSymbol()); + llvmo::GlobalValue_O::___staticMetaClass = classllvmo__GlobalValue_Oval; + _lisp->setf_findClass(llvmo::GlobalValue_O::static_classSymbol(),classllvmo__GlobalValue_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::GlobalValue_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::GlobalValue_O::static_className() % (void*)(llvmo::GlobalValue_O::static_newNil_callback()) ); + classllvmo__GlobalValue_Oval->setInstance_newNil_callback(llvmo::GlobalValue_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::GlobalValue_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::GlobalValue_O::static_className() ); + llvmo::GlobalValue_O::_nil = nil_for_class; + classllvmo__GlobalValue_Oval->setInstanceNil(nil_for_class); + } + classllvmo__GlobalValue_Oval->setSupportsSlots(llvmo::GlobalValue_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__LandingPadInst_Oval]")); + core::BuiltInClass_sp classllvmo__LandingPadInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__LandingPadInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__LandingPadInst_Oval,_lisp,llvmo::LandingPadInst_O::static_classSymbol()); + llvmo::LandingPadInst_O::___staticMetaClass = classllvmo__LandingPadInst_Oval; + _lisp->setf_findClass(llvmo::LandingPadInst_O::static_classSymbol(),classllvmo__LandingPadInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::LandingPadInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::LandingPadInst_O::static_className() % (void*)(llvmo::LandingPadInst_O::static_newNil_callback()) ); + classllvmo__LandingPadInst_Oval->setInstance_newNil_callback(llvmo::LandingPadInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::LandingPadInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::LandingPadInst_O::static_className() ); + llvmo::LandingPadInst_O::_nil = nil_for_class; + classllvmo__LandingPadInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__LandingPadInst_Oval->setSupportsSlots(llvmo::LandingPadInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__PHINode_Oval]")); + core::BuiltInClass_sp classllvmo__PHINode_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__PHINode_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__PHINode_Oval,_lisp,llvmo::PHINode_O::static_classSymbol()); + llvmo::PHINode_O::___staticMetaClass = classllvmo__PHINode_Oval; + _lisp->setf_findClass(llvmo::PHINode_O::static_classSymbol(),classllvmo__PHINode_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::PHINode_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::PHINode_O::static_className() % (void*)(llvmo::PHINode_O::static_newNil_callback()) ); + classllvmo__PHINode_Oval->setInstance_newNil_callback(llvmo::PHINode_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::PHINode_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::PHINode_O::static_className() ); + llvmo::PHINode_O::_nil = nil_for_class; + classllvmo__PHINode_Oval->setInstanceNil(nil_for_class); + } + classllvmo__PHINode_Oval->setSupportsSlots(llvmo::PHINode_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__PointerType_Oval]")); + core::BuiltInClass_sp classllvmo__PointerType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__PointerType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__PointerType_Oval,_lisp,llvmo::PointerType_O::static_classSymbol()); + llvmo::PointerType_O::___staticMetaClass = classllvmo__PointerType_Oval; + _lisp->setf_findClass(llvmo::PointerType_O::static_classSymbol(),classllvmo__PointerType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::PointerType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::PointerType_O::static_className() % (void*)(llvmo::PointerType_O::static_newNil_callback()) ); + classllvmo__PointerType_Oval->setInstance_newNil_callback(llvmo::PointerType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::PointerType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::PointerType_O::static_className() ); + llvmo::PointerType_O::_nil = nil_for_class; + classllvmo__PointerType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__PointerType_Oval->setSupportsSlots(llvmo::PointerType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__StoreInst_Oval]")); + core::BuiltInClass_sp classllvmo__StoreInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__StoreInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__StoreInst_Oval,_lisp,llvmo::StoreInst_O::static_classSymbol()); + llvmo::StoreInst_O::___staticMetaClass = classllvmo__StoreInst_Oval; + _lisp->setf_findClass(llvmo::StoreInst_O::static_classSymbol(),classllvmo__StoreInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::StoreInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::StoreInst_O::static_className() % (void*)(llvmo::StoreInst_O::static_newNil_callback()) ); + classllvmo__StoreInst_Oval->setInstance_newNil_callback(llvmo::StoreInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::StoreInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::StoreInst_O::static_className() ); + llvmo::StoreInst_O::_nil = nil_for_class; + classllvmo__StoreInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__StoreInst_Oval->setSupportsSlots(llvmo::StoreInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__TerminatorInst_Oval]")); + core::BuiltInClass_sp classllvmo__TerminatorInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__TerminatorInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__TerminatorInst_Oval,_lisp,llvmo::TerminatorInst_O::static_classSymbol()); + llvmo::TerminatorInst_O::___staticMetaClass = classllvmo__TerminatorInst_Oval; + _lisp->setf_findClass(llvmo::TerminatorInst_O::static_classSymbol(),classllvmo__TerminatorInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::TerminatorInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::TerminatorInst_O::static_className() % (void*)(llvmo::TerminatorInst_O::static_newNil_callback()) ); + classllvmo__TerminatorInst_Oval->setInstance_newNil_callback(llvmo::TerminatorInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::TerminatorInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::TerminatorInst_O::static_className() ); + llvmo::TerminatorInst_O::_nil = nil_for_class; + classllvmo__TerminatorInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__TerminatorInst_Oval->setSupportsSlots(llvmo::TerminatorInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__UnaryInstruction_Oval]")); + core::BuiltInClass_sp classllvmo__UnaryInstruction_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__UnaryInstruction_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__UnaryInstruction_Oval,_lisp,llvmo::UnaryInstruction_O::static_classSymbol()); + llvmo::UnaryInstruction_O::___staticMetaClass = classllvmo__UnaryInstruction_Oval; + _lisp->setf_findClass(llvmo::UnaryInstruction_O::static_classSymbol(),classllvmo__UnaryInstruction_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::UnaryInstruction_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::UnaryInstruction_O::static_className() % (void*)(llvmo::UnaryInstruction_O::static_newNil_callback()) ); + classllvmo__UnaryInstruction_Oval->setInstance_newNil_callback(llvmo::UnaryInstruction_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::UnaryInstruction_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::UnaryInstruction_O::static_className() ); + llvmo::UnaryInstruction_O::_nil = nil_for_class; + classllvmo__UnaryInstruction_Oval->setInstanceNil(nil_for_class); + } + classllvmo__UnaryInstruction_Oval->setSupportsSlots(llvmo::UnaryInstruction_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__UndefValue_Oval]")); + core::BuiltInClass_sp classllvmo__UndefValue_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__UndefValue_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__UndefValue_Oval,_lisp,llvmo::UndefValue_O::static_classSymbol()); + llvmo::UndefValue_O::___staticMetaClass = classllvmo__UndefValue_Oval; + _lisp->setf_findClass(llvmo::UndefValue_O::static_classSymbol(),classllvmo__UndefValue_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::UndefValue_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::UndefValue_O::static_className() % (void*)(llvmo::UndefValue_O::static_newNil_callback()) ); + classllvmo__UndefValue_Oval->setInstance_newNil_callback(llvmo::UndefValue_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::UndefValue_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::UndefValue_O::static_className() ); + llvmo::UndefValue_O::_nil = nil_for_class; + classllvmo__UndefValue_Oval->setInstanceNil(nil_for_class); + } + classllvmo__UndefValue_Oval->setSupportsSlots(llvmo::UndefValue_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__VectorType_Oval]")); + core::BuiltInClass_sp classllvmo__VectorType_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__VectorType_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__VectorType_Oval,_lisp,llvmo::VectorType_O::static_classSymbol()); + llvmo::VectorType_O::___staticMetaClass = classllvmo__VectorType_Oval; + _lisp->setf_findClass(llvmo::VectorType_O::static_classSymbol(),classllvmo__VectorType_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::VectorType_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::VectorType_O::static_className() % (void*)(llvmo::VectorType_O::static_newNil_callback()) ); + classllvmo__VectorType_Oval->setInstance_newNil_callback(llvmo::VectorType_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::VectorType_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::VectorType_O::static_className() ); + llvmo::VectorType_O::_nil = nil_for_class; + classllvmo__VectorType_Oval->setInstanceNil(nil_for_class); + } + classllvmo__VectorType_Oval->setSupportsSlots(llvmo::VectorType_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__AllocaInst_Oval]")); + core::BuiltInClass_sp classllvmo__AllocaInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__AllocaInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__AllocaInst_Oval,_lisp,llvmo::AllocaInst_O::static_classSymbol()); + llvmo::AllocaInst_O::___staticMetaClass = classllvmo__AllocaInst_Oval; + _lisp->setf_findClass(llvmo::AllocaInst_O::static_classSymbol(),classllvmo__AllocaInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::AllocaInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::AllocaInst_O::static_className() % (void*)(llvmo::AllocaInst_O::static_newNil_callback()) ); + classllvmo__AllocaInst_Oval->setInstance_newNil_callback(llvmo::AllocaInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::AllocaInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::AllocaInst_O::static_className() ); + llvmo::AllocaInst_O::_nil = nil_for_class; + classllvmo__AllocaInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__AllocaInst_Oval->setSupportsSlots(llvmo::AllocaInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__BranchInst_Oval]")); + core::BuiltInClass_sp classllvmo__BranchInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__BranchInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__BranchInst_Oval,_lisp,llvmo::BranchInst_O::static_classSymbol()); + llvmo::BranchInst_O::___staticMetaClass = classllvmo__BranchInst_Oval; + _lisp->setf_findClass(llvmo::BranchInst_O::static_classSymbol(),classllvmo__BranchInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::BranchInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::BranchInst_O::static_className() % (void*)(llvmo::BranchInst_O::static_newNil_callback()) ); + classllvmo__BranchInst_Oval->setInstance_newNil_callback(llvmo::BranchInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::BranchInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::BranchInst_O::static_className() ); + llvmo::BranchInst_O::_nil = nil_for_class; + classllvmo__BranchInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__BranchInst_Oval->setSupportsSlots(llvmo::BranchInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ConstantDataArray_Oval]")); + core::BuiltInClass_sp classllvmo__ConstantDataArray_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ConstantDataArray_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ConstantDataArray_Oval,_lisp,llvmo::ConstantDataArray_O::static_classSymbol()); + llvmo::ConstantDataArray_O::___staticMetaClass = classllvmo__ConstantDataArray_Oval; + _lisp->setf_findClass(llvmo::ConstantDataArray_O::static_classSymbol(),classllvmo__ConstantDataArray_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ConstantDataArray_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ConstantDataArray_O::static_className() % (void*)(llvmo::ConstantDataArray_O::static_newNil_callback()) ); + classllvmo__ConstantDataArray_Oval->setInstance_newNil_callback(llvmo::ConstantDataArray_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ConstantDataArray_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ConstantDataArray_O::static_className() ); + llvmo::ConstantDataArray_O::_nil = nil_for_class; + classllvmo__ConstantDataArray_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ConstantDataArray_Oval->setSupportsSlots(llvmo::ConstantDataArray_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__Function_Oval]")); + core::BuiltInClass_sp classllvmo__Function_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__Function_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__Function_Oval,_lisp,llvmo::Function_O::static_classSymbol()); + llvmo::Function_O::___staticMetaClass = classllvmo__Function_Oval; + _lisp->setf_findClass(llvmo::Function_O::static_classSymbol(),classllvmo__Function_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::Function_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::Function_O::static_className() % (void*)(llvmo::Function_O::static_newNil_callback()) ); + classllvmo__Function_Oval->setInstance_newNil_callback(llvmo::Function_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::Function_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::Function_O::static_className() ); + llvmo::Function_O::_nil = nil_for_class; + classllvmo__Function_Oval->setInstanceNil(nil_for_class); + } + classllvmo__Function_Oval->setSupportsSlots(llvmo::Function_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__GlobalVariable_Oval]")); + core::BuiltInClass_sp classllvmo__GlobalVariable_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__GlobalVariable_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__GlobalVariable_Oval,_lisp,llvmo::GlobalVariable_O::static_classSymbol()); + llvmo::GlobalVariable_O::___staticMetaClass = classllvmo__GlobalVariable_Oval; + _lisp->setf_findClass(llvmo::GlobalVariable_O::static_classSymbol(),classllvmo__GlobalVariable_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::GlobalVariable_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::GlobalVariable_O::static_className() % (void*)(llvmo::GlobalVariable_O::static_newNil_callback()) ); + classllvmo__GlobalVariable_Oval->setInstance_newNil_callback(llvmo::GlobalVariable_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::GlobalVariable_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::GlobalVariable_O::static_className() ); + llvmo::GlobalVariable_O::_nil = nil_for_class; + classllvmo__GlobalVariable_Oval->setInstanceNil(nil_for_class); + } + classllvmo__GlobalVariable_Oval->setSupportsSlots(llvmo::GlobalVariable_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__IndirectBrInst_Oval]")); + core::BuiltInClass_sp classllvmo__IndirectBrInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__IndirectBrInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__IndirectBrInst_Oval,_lisp,llvmo::IndirectBrInst_O::static_classSymbol()); + llvmo::IndirectBrInst_O::___staticMetaClass = classllvmo__IndirectBrInst_Oval; + _lisp->setf_findClass(llvmo::IndirectBrInst_O::static_classSymbol(),classllvmo__IndirectBrInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::IndirectBrInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::IndirectBrInst_O::static_className() % (void*)(llvmo::IndirectBrInst_O::static_newNil_callback()) ); + classllvmo__IndirectBrInst_Oval->setInstance_newNil_callback(llvmo::IndirectBrInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::IndirectBrInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::IndirectBrInst_O::static_className() ); + llvmo::IndirectBrInst_O::_nil = nil_for_class; + classllvmo__IndirectBrInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__IndirectBrInst_Oval->setSupportsSlots(llvmo::IndirectBrInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__InvokeInst_Oval]")); + core::BuiltInClass_sp classllvmo__InvokeInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__InvokeInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__InvokeInst_Oval,_lisp,llvmo::InvokeInst_O::static_classSymbol()); + llvmo::InvokeInst_O::___staticMetaClass = classllvmo__InvokeInst_Oval; + _lisp->setf_findClass(llvmo::InvokeInst_O::static_classSymbol(),classllvmo__InvokeInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::InvokeInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::InvokeInst_O::static_className() % (void*)(llvmo::InvokeInst_O::static_newNil_callback()) ); + classllvmo__InvokeInst_Oval->setInstance_newNil_callback(llvmo::InvokeInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::InvokeInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::InvokeInst_O::static_className() ); + llvmo::InvokeInst_O::_nil = nil_for_class; + classllvmo__InvokeInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__InvokeInst_Oval->setSupportsSlots(llvmo::InvokeInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__LoadInst_Oval]")); + core::BuiltInClass_sp classllvmo__LoadInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__LoadInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__LoadInst_Oval,_lisp,llvmo::LoadInst_O::static_classSymbol()); + llvmo::LoadInst_O::___staticMetaClass = classllvmo__LoadInst_Oval; + _lisp->setf_findClass(llvmo::LoadInst_O::static_classSymbol(),classllvmo__LoadInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::LoadInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::LoadInst_O::static_className() % (void*)(llvmo::LoadInst_O::static_newNil_callback()) ); + classllvmo__LoadInst_Oval->setInstance_newNil_callback(llvmo::LoadInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::LoadInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::LoadInst_O::static_className() ); + llvmo::LoadInst_O::_nil = nil_for_class; + classllvmo__LoadInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__LoadInst_Oval->setSupportsSlots(llvmo::LoadInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ResumeInst_Oval]")); + core::BuiltInClass_sp classllvmo__ResumeInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ResumeInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ResumeInst_Oval,_lisp,llvmo::ResumeInst_O::static_classSymbol()); + llvmo::ResumeInst_O::___staticMetaClass = classllvmo__ResumeInst_Oval; + _lisp->setf_findClass(llvmo::ResumeInst_O::static_classSymbol(),classllvmo__ResumeInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ResumeInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ResumeInst_O::static_className() % (void*)(llvmo::ResumeInst_O::static_newNil_callback()) ); + classllvmo__ResumeInst_Oval->setInstance_newNil_callback(llvmo::ResumeInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ResumeInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ResumeInst_O::static_className() ); + llvmo::ResumeInst_O::_nil = nil_for_class; + classllvmo__ResumeInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ResumeInst_Oval->setSupportsSlots(llvmo::ResumeInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__ReturnInst_Oval]")); + core::BuiltInClass_sp classllvmo__ReturnInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__ReturnInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__ReturnInst_Oval,_lisp,llvmo::ReturnInst_O::static_classSymbol()); + llvmo::ReturnInst_O::___staticMetaClass = classllvmo__ReturnInst_Oval; + _lisp->setf_findClass(llvmo::ReturnInst_O::static_classSymbol(),classllvmo__ReturnInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::ReturnInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::ReturnInst_O::static_className() % (void*)(llvmo::ReturnInst_O::static_newNil_callback()) ); + classllvmo__ReturnInst_Oval->setInstance_newNil_callback(llvmo::ReturnInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::ReturnInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::ReturnInst_O::static_className() ); + llvmo::ReturnInst_O::_nil = nil_for_class; + classllvmo__ReturnInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__ReturnInst_Oval->setSupportsSlots(llvmo::ReturnInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__SwitchInst_Oval]")); + core::BuiltInClass_sp classllvmo__SwitchInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__SwitchInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__SwitchInst_Oval,_lisp,llvmo::SwitchInst_O::static_classSymbol()); + llvmo::SwitchInst_O::___staticMetaClass = classllvmo__SwitchInst_Oval; + _lisp->setf_findClass(llvmo::SwitchInst_O::static_classSymbol(),classllvmo__SwitchInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::SwitchInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::SwitchInst_O::static_className() % (void*)(llvmo::SwitchInst_O::static_newNil_callback()) ); + classllvmo__SwitchInst_Oval->setInstance_newNil_callback(llvmo::SwitchInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::SwitchInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::SwitchInst_O::static_className() ); + llvmo::SwitchInst_O::_nil = nil_for_class; + classllvmo__SwitchInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__SwitchInst_Oval->setSupportsSlots(llvmo::SwitchInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__UnreachableInst_Oval]")); + core::BuiltInClass_sp classllvmo__UnreachableInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__UnreachableInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__UnreachableInst_Oval,_lisp,llvmo::UnreachableInst_O::static_classSymbol()); + llvmo::UnreachableInst_O::___staticMetaClass = classllvmo__UnreachableInst_Oval; + _lisp->setf_findClass(llvmo::UnreachableInst_O::static_classSymbol(),classllvmo__UnreachableInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::UnreachableInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::UnreachableInst_O::static_className() % (void*)(llvmo::UnreachableInst_O::static_newNil_callback()) ); + classllvmo__UnreachableInst_Oval->setInstance_newNil_callback(llvmo::UnreachableInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::UnreachableInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::UnreachableInst_O::static_className() ); + llvmo::UnreachableInst_O::_nil = nil_for_class; + classllvmo__UnreachableInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__UnreachableInst_Oval->setSupportsSlots(llvmo::UnreachableInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ + + LOG(BF("Creating class[classllvmo__VAArgInst_Oval]")); + core::BuiltInClass_sp classllvmo__VAArgInst_Oval = core::BuiltInClass_O::create(undefinedMetaClass); + classllvmo__VAArgInst_Oval->__setup_stage1_with_sharedPtr_lisp_sid(classllvmo__VAArgInst_Oval,_lisp,llvmo::VAArgInst_O::static_classSymbol()); + llvmo::VAArgInst_O::___staticMetaClass = classllvmo__VAArgInst_Oval; + _lisp->setf_findClass(llvmo::VAArgInst_O::static_classSymbol(),classllvmo__VAArgInst_Oval); + { + AllocatorCallback cb = &new_Nil; + llvmo::VAArgInst_O::___set_static_newNil_callback(cb); + } + LOG(BF("Set _newNil_callback for class(%s) to %X")% llvmo::VAArgInst_O::static_className() % (void*)(llvmo::VAArgInst_O::static_newNil_callback()) ); + classllvmo__VAArgInst_Oval->setInstance_newNil_callback(llvmo::VAArgInst_O::static_newNil_callback()); + { + boost::shared_ptr nil_for_class(new llvmo::VAArgInst_O(undefinedMetaClass)); + nil_for_class->__setWeakThis(nil_for_class); + LOG(BF("Created nil for class[%s]") % llvmo::VAArgInst_O::static_className() ); + llvmo::VAArgInst_O::_nil = nil_for_class; + classllvmo__VAArgInst_Oval->setInstanceNil(nil_for_class); + } + classllvmo__VAArgInst_Oval->setSupportsSlots(llvmo::VAArgInst_O::static_supportsSlots()); + /* ----- the class and its nil are now defined but the _class of these objects is undefined - set in next stage ----- */ +#endif // CREATE_CLASS +#undef CREATE_CLASS +#ifdef DUMP_INFO_CLASS // { +// Depends on nothing + + LOG(BF("--- dump_info --- className: llvmo::APFloat_O @ %X") % classllvmo__APFloat_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::APFloat_O::static_className() % llvmo::APFloat_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::APInt_O @ %X") % classllvmo__APInt_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::APInt_O::static_className() % llvmo::APInt_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Attribute_O @ %X") % classllvmo__Attribute_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Attribute_O::static_className() % llvmo::Attribute_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Builder_O @ %X") % classllvmo__Builder_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Builder_O::static_className() % llvmo::Builder_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::DebugLoc_O @ %X") % classllvmo__DebugLoc_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::DebugLoc_O::static_className() % llvmo::DebugLoc_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::EngineBuilder_O @ %X") % classllvmo__EngineBuilder_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::EngineBuilder_O::static_className() % llvmo::EngineBuilder_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ExecutionEngine_O @ %X") % classllvmo__ExecutionEngine_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ExecutionEngine_O::static_className() % llvmo::ExecutionEngine_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IRBuilderBase_O @ %X") % classllvmo__IRBuilderBase_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IRBuilderBase_O::static_className() % llvmo::IRBuilderBase_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::InsertPoint_O @ %X") % classllvmo__InsertPoint_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::InsertPoint_O::static_className() % llvmo::InsertPoint_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::LLVMContext_O @ %X") % classllvmo__LLVMContext_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::LLVMContext_O::static_className() % llvmo::LLVMContext_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Module_O @ %X") % classllvmo__Module_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Module_O::static_className() % llvmo::Module_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::PassManagerBase_O @ %X") % classllvmo__PassManagerBase_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::PassManagerBase_O::static_className() % llvmo::PassManagerBase_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Pass_O @ %X") % classllvmo__Pass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Pass_O::static_className() % llvmo::Pass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Type_O @ %X") % classllvmo__Type_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Type_O::static_className() % llvmo::Type_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Value_O @ %X") % classllvmo__Value_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Value_O::static_className() % llvmo::Value_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Argument_O @ %X") % classllvmo__Argument_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Argument_O::static_className() % llvmo::Argument_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::BasicBlock_O @ %X") % classllvmo__BasicBlock_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::BasicBlock_O::static_className() % llvmo::BasicBlock_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::CompositeType_O @ %X") % classllvmo__CompositeType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::CompositeType_O::static_className() % llvmo::CompositeType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FunctionPassManager_O @ %X") % classllvmo__FunctionPassManager_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FunctionPassManager_O::static_className() % llvmo::FunctionPassManager_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FunctionPass_O @ %X") % classllvmo__FunctionPass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FunctionPass_O::static_className() % llvmo::FunctionPass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FunctionType_O @ %X") % classllvmo__FunctionType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FunctionType_O::static_className() % llvmo::FunctionType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IRBuilder_O @ %X") % classllvmo__IRBuilder_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IRBuilder_O::static_className() % llvmo::IRBuilder_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IntegerType_O @ %X") % classllvmo__IntegerType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IntegerType_O::static_className() % llvmo::IntegerType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::MDNode_O @ %X") % classllvmo__MDNode_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::MDNode_O::static_className() % llvmo::MDNode_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::MDString_O @ %X") % classllvmo__MDString_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::MDString_O::static_className() % llvmo::MDString_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ModulePass_O @ %X") % classllvmo__ModulePass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ModulePass_O::static_className() % llvmo::ModulePass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::User_O @ %X") % classllvmo__User_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::User_O::static_className() % llvmo::User_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Constant_O @ %X") % classllvmo__Constant_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Constant_O::static_className() % llvmo::Constant_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ImmutablePass_O @ %X") % classllvmo__ImmutablePass_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ImmutablePass_O::static_className() % llvmo::ImmutablePass_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Instruction_O @ %X") % classllvmo__Instruction_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Instruction_O::static_className() % llvmo::Instruction_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::SequentialType_O @ %X") % classllvmo__SequentialType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::SequentialType_O::static_className() % llvmo::SequentialType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::StructType_O @ %X") % classllvmo__StructType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::StructType_O::static_className() % llvmo::StructType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ArrayType_O @ %X") % classllvmo__ArrayType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ArrayType_O::static_className() % llvmo::ArrayType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::AtomicCmpXchgInst_O @ %X") % classllvmo__AtomicCmpXchgInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::AtomicCmpXchgInst_O::static_className() % llvmo::AtomicCmpXchgInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::AtomicRMWInst_O @ %X") % classllvmo__AtomicRMWInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::AtomicRMWInst_O::static_className() % llvmo::AtomicRMWInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::CallInst_O @ %X") % classllvmo__CallInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::CallInst_O::static_className() % llvmo::CallInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantArray_O @ %X") % classllvmo__ConstantArray_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantArray_O::static_className() % llvmo::ConstantArray_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantDataSequential_O @ %X") % classllvmo__ConstantDataSequential_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantDataSequential_O::static_className() % llvmo::ConstantDataSequential_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantExpr_O @ %X") % classllvmo__ConstantExpr_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantExpr_O::static_className() % llvmo::ConstantExpr_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantFP_O @ %X") % classllvmo__ConstantFP_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantFP_O::static_className() % llvmo::ConstantFP_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantInt_O @ %X") % classllvmo__ConstantInt_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantInt_O::static_className() % llvmo::ConstantInt_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantPointerNull_O @ %X") % classllvmo__ConstantPointerNull_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantPointerNull_O::static_className() % llvmo::ConstantPointerNull_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::DataLayout_O @ %X") % classllvmo__DataLayout_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::DataLayout_O::static_className() % llvmo::DataLayout_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::FenceInst_O @ %X") % classllvmo__FenceInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::FenceInst_O::static_className() % llvmo::FenceInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::GlobalValue_O @ %X") % classllvmo__GlobalValue_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::GlobalValue_O::static_className() % llvmo::GlobalValue_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::LandingPadInst_O @ %X") % classllvmo__LandingPadInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::LandingPadInst_O::static_className() % llvmo::LandingPadInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::PHINode_O @ %X") % classllvmo__PHINode_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::PHINode_O::static_className() % llvmo::PHINode_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::PointerType_O @ %X") % classllvmo__PointerType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::PointerType_O::static_className() % llvmo::PointerType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::StoreInst_O @ %X") % classllvmo__StoreInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::StoreInst_O::static_className() % llvmo::StoreInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::TerminatorInst_O @ %X") % classllvmo__TerminatorInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::TerminatorInst_O::static_className() % llvmo::TerminatorInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::UnaryInstruction_O @ %X") % classllvmo__UnaryInstruction_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::UnaryInstruction_O::static_className() % llvmo::UnaryInstruction_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::UndefValue_O @ %X") % classllvmo__UndefValue_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::UndefValue_O::static_className() % llvmo::UndefValue_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::VectorType_O @ %X") % classllvmo__VectorType_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::VectorType_O::static_className() % llvmo::VectorType_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::AllocaInst_O @ %X") % classllvmo__AllocaInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::AllocaInst_O::static_className() % llvmo::AllocaInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::BranchInst_O @ %X") % classllvmo__BranchInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::BranchInst_O::static_className() % llvmo::BranchInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ConstantDataArray_O @ %X") % classllvmo__ConstantDataArray_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ConstantDataArray_O::static_className() % llvmo::ConstantDataArray_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::Function_O @ %X") % classllvmo__Function_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::Function_O::static_className() % llvmo::Function_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::GlobalVariable_O @ %X") % classllvmo__GlobalVariable_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::GlobalVariable_O::static_className() % llvmo::GlobalVariable_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::IndirectBrInst_O @ %X") % classllvmo__IndirectBrInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::IndirectBrInst_O::static_className() % llvmo::IndirectBrInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::InvokeInst_O @ %X") % classllvmo__InvokeInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::InvokeInst_O::static_className() % llvmo::InvokeInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::LoadInst_O @ %X") % classllvmo__LoadInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::LoadInst_O::static_className() % llvmo::LoadInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ResumeInst_O @ %X") % classllvmo__ResumeInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ResumeInst_O::static_className() % llvmo::ResumeInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::ReturnInst_O @ %X") % classllvmo__ReturnInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::ReturnInst_O::static_className() % llvmo::ReturnInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::SwitchInst_O @ %X") % classllvmo__SwitchInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::SwitchInst_O::static_className() % llvmo::SwitchInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::UnreachableInst_O @ %X") % classllvmo__UnreachableInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::UnreachableInst_O::static_className() % llvmo::UnreachableInst_O::static_classSymbol() ); + + LOG(BF("--- dump_info --- className: llvmo::VAArgInst_O @ %X") % classllvmo__VAArgInst_Oval.get()); + LOG(BF("%s::static_classSymbol() = %d") % llvmo::VAArgInst_O::static_className() % llvmo::VAArgInst_O::static_classSymbol() ); +#endif // } DUMP_INFO_CLASS +#undef DUMP_INFO_CLASS +#if defined(DEFINE_BASE_CLASSES) || defined(ALL_STAGES) // { +// Depends on nothing +classllvmo__APFloat_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__APInt_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Attribute_Oval->addInstanceBaseClass(core::T_O::static_classSymbol()); +classllvmo__Builder_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__DebugLoc_Oval->addInstanceBaseClass(core::T_O::static_classSymbol()); +classllvmo__EngineBuilder_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__ExecutionEngine_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__IRBuilderBase_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__InsertPoint_Oval->addInstanceBaseClass(core::T_O::static_classSymbol()); +classllvmo__LLVMContext_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Module_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__PassManagerBase_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Pass_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Type_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Value_Oval->addInstanceBaseClass(core::ExternalObject_O::static_classSymbol()); +classllvmo__Argument_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__BasicBlock_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__CompositeType_Oval->addInstanceBaseClass(llvmo::Type_O::static_classSymbol()); +classllvmo__FunctionPassManager_Oval->addInstanceBaseClass(llvmo::PassManagerBase_O::static_classSymbol()); +classllvmo__FunctionPass_Oval->addInstanceBaseClass(llvmo::Pass_O::static_classSymbol()); +classllvmo__FunctionType_Oval->addInstanceBaseClass(llvmo::Type_O::static_classSymbol()); +classllvmo__IRBuilder_Oval->addInstanceBaseClass(llvmo::IRBuilderBase_O::static_classSymbol()); +classllvmo__IntegerType_Oval->addInstanceBaseClass(llvmo::Type_O::static_classSymbol()); +classllvmo__MDNode_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__MDString_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__ModulePass_Oval->addInstanceBaseClass(llvmo::Pass_O::static_classSymbol()); +classllvmo__User_Oval->addInstanceBaseClass(llvmo::Value_O::static_classSymbol()); +classllvmo__Constant_Oval->addInstanceBaseClass(llvmo::User_O::static_classSymbol()); +classllvmo__ImmutablePass_Oval->addInstanceBaseClass(llvmo::ModulePass_O::static_classSymbol()); +classllvmo__Instruction_Oval->addInstanceBaseClass(llvmo::User_O::static_classSymbol()); +classllvmo__SequentialType_Oval->addInstanceBaseClass(llvmo::CompositeType_O::static_classSymbol()); +classllvmo__StructType_Oval->addInstanceBaseClass(llvmo::CompositeType_O::static_classSymbol()); +classllvmo__ArrayType_Oval->addInstanceBaseClass(llvmo::SequentialType_O::static_classSymbol()); +classllvmo__AtomicCmpXchgInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__AtomicRMWInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__CallInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__ConstantArray_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantDataSequential_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantExpr_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantFP_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantInt_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__ConstantPointerNull_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__DataLayout_Oval->addInstanceBaseClass(llvmo::ImmutablePass_O::static_classSymbol()); +classllvmo__FenceInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__GlobalValue_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__LandingPadInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__PHINode_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__PointerType_Oval->addInstanceBaseClass(llvmo::SequentialType_O::static_classSymbol()); +classllvmo__StoreInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__TerminatorInst_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__UnaryInstruction_Oval->addInstanceBaseClass(llvmo::Instruction_O::static_classSymbol()); +classllvmo__UndefValue_Oval->addInstanceBaseClass(llvmo::Constant_O::static_classSymbol()); +classllvmo__VectorType_Oval->addInstanceBaseClass(llvmo::SequentialType_O::static_classSymbol()); +classllvmo__AllocaInst_Oval->addInstanceBaseClass(llvmo::UnaryInstruction_O::static_classSymbol()); +classllvmo__BranchInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__ConstantDataArray_Oval->addInstanceBaseClass(llvmo::ConstantDataSequential_O::static_classSymbol()); +classllvmo__Function_Oval->addInstanceBaseClass(llvmo::GlobalValue_O::static_classSymbol()); +classllvmo__GlobalVariable_Oval->addInstanceBaseClass(llvmo::GlobalValue_O::static_classSymbol()); +classllvmo__IndirectBrInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__InvokeInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__LoadInst_Oval->addInstanceBaseClass(llvmo::UnaryInstruction_O::static_classSymbol()); +classllvmo__ResumeInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__ReturnInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__SwitchInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__UnreachableInst_Oval->addInstanceBaseClass(llvmo::TerminatorInst_O::static_classSymbol()); +classllvmo__VAArgInst_Oval->addInstanceBaseClass(llvmo::UnaryInstruction_O::static_classSymbol()); +#endif // } DEFINE_BASE_CLASSES +#undef DEFINE_BASE_CLASSES +#if defined(DEFINE_CLASS_NAMES) || defined(ALL_STAGES) // { + core::Package_sp _curPkg = _lisp->findPackage(CurrentPkg); +// Depends on nothing + + classllvmo__APFloat_Oval->__setup_stage3_name(llvmo::APFloat_O::static_classSymbol()); + + classllvmo__APInt_Oval->__setup_stage3_name(llvmo::APInt_O::static_classSymbol()); + + classllvmo__Attribute_Oval->__setup_stage3_name(llvmo::Attribute_O::static_classSymbol()); + + classllvmo__Builder_Oval->__setup_stage3_name(llvmo::Builder_O::static_classSymbol()); + + classllvmo__DebugLoc_Oval->__setup_stage3_name(llvmo::DebugLoc_O::static_classSymbol()); + + classllvmo__EngineBuilder_Oval->__setup_stage3_name(llvmo::EngineBuilder_O::static_classSymbol()); + + classllvmo__ExecutionEngine_Oval->__setup_stage3_name(llvmo::ExecutionEngine_O::static_classSymbol()); + + classllvmo__IRBuilderBase_Oval->__setup_stage3_name(llvmo::IRBuilderBase_O::static_classSymbol()); + + classllvmo__InsertPoint_Oval->__setup_stage3_name(llvmo::InsertPoint_O::static_classSymbol()); + + classllvmo__LLVMContext_Oval->__setup_stage3_name(llvmo::LLVMContext_O::static_classSymbol()); + + classllvmo__Module_Oval->__setup_stage3_name(llvmo::Module_O::static_classSymbol()); + + classllvmo__PassManagerBase_Oval->__setup_stage3_name(llvmo::PassManagerBase_O::static_classSymbol()); + + classllvmo__Pass_Oval->__setup_stage3_name(llvmo::Pass_O::static_classSymbol()); + + classllvmo__Type_Oval->__setup_stage3_name(llvmo::Type_O::static_classSymbol()); + + classllvmo__Value_Oval->__setup_stage3_name(llvmo::Value_O::static_classSymbol()); + + classllvmo__Argument_Oval->__setup_stage3_name(llvmo::Argument_O::static_classSymbol()); + + classllvmo__BasicBlock_Oval->__setup_stage3_name(llvmo::BasicBlock_O::static_classSymbol()); + + classllvmo__CompositeType_Oval->__setup_stage3_name(llvmo::CompositeType_O::static_classSymbol()); + + classllvmo__FunctionPassManager_Oval->__setup_stage3_name(llvmo::FunctionPassManager_O::static_classSymbol()); + + classllvmo__FunctionPass_Oval->__setup_stage3_name(llvmo::FunctionPass_O::static_classSymbol()); + + classllvmo__FunctionType_Oval->__setup_stage3_name(llvmo::FunctionType_O::static_classSymbol()); + + classllvmo__IRBuilder_Oval->__setup_stage3_name(llvmo::IRBuilder_O::static_classSymbol()); + + classllvmo__IntegerType_Oval->__setup_stage3_name(llvmo::IntegerType_O::static_classSymbol()); + + classllvmo__MDNode_Oval->__setup_stage3_name(llvmo::MDNode_O::static_classSymbol()); + + classllvmo__MDString_Oval->__setup_stage3_name(llvmo::MDString_O::static_classSymbol()); + + classllvmo__ModulePass_Oval->__setup_stage3_name(llvmo::ModulePass_O::static_classSymbol()); + + classllvmo__User_Oval->__setup_stage3_name(llvmo::User_O::static_classSymbol()); + + classllvmo__Constant_Oval->__setup_stage3_name(llvmo::Constant_O::static_classSymbol()); + + classllvmo__ImmutablePass_Oval->__setup_stage3_name(llvmo::ImmutablePass_O::static_classSymbol()); + + classllvmo__Instruction_Oval->__setup_stage3_name(llvmo::Instruction_O::static_classSymbol()); + + classllvmo__SequentialType_Oval->__setup_stage3_name(llvmo::SequentialType_O::static_classSymbol()); + + classllvmo__StructType_Oval->__setup_stage3_name(llvmo::StructType_O::static_classSymbol()); + + classllvmo__ArrayType_Oval->__setup_stage3_name(llvmo::ArrayType_O::static_classSymbol()); + + classllvmo__AtomicCmpXchgInst_Oval->__setup_stage3_name(llvmo::AtomicCmpXchgInst_O::static_classSymbol()); + + classllvmo__AtomicRMWInst_Oval->__setup_stage3_name(llvmo::AtomicRMWInst_O::static_classSymbol()); + + classllvmo__CallInst_Oval->__setup_stage3_name(llvmo::CallInst_O::static_classSymbol()); + + classllvmo__ConstantArray_Oval->__setup_stage3_name(llvmo::ConstantArray_O::static_classSymbol()); + + classllvmo__ConstantDataSequential_Oval->__setup_stage3_name(llvmo::ConstantDataSequential_O::static_classSymbol()); + + classllvmo__ConstantExpr_Oval->__setup_stage3_name(llvmo::ConstantExpr_O::static_classSymbol()); + + classllvmo__ConstantFP_Oval->__setup_stage3_name(llvmo::ConstantFP_O::static_classSymbol()); + + classllvmo__ConstantInt_Oval->__setup_stage3_name(llvmo::ConstantInt_O::static_classSymbol()); + + classllvmo__ConstantPointerNull_Oval->__setup_stage3_name(llvmo::ConstantPointerNull_O::static_classSymbol()); + + classllvmo__DataLayout_Oval->__setup_stage3_name(llvmo::DataLayout_O::static_classSymbol()); + + classllvmo__FenceInst_Oval->__setup_stage3_name(llvmo::FenceInst_O::static_classSymbol()); + + classllvmo__GlobalValue_Oval->__setup_stage3_name(llvmo::GlobalValue_O::static_classSymbol()); + + classllvmo__LandingPadInst_Oval->__setup_stage3_name(llvmo::LandingPadInst_O::static_classSymbol()); + + classllvmo__PHINode_Oval->__setup_stage3_name(llvmo::PHINode_O::static_classSymbol()); + + classllvmo__PointerType_Oval->__setup_stage3_name(llvmo::PointerType_O::static_classSymbol()); + + classllvmo__StoreInst_Oval->__setup_stage3_name(llvmo::StoreInst_O::static_classSymbol()); + + classllvmo__TerminatorInst_Oval->__setup_stage3_name(llvmo::TerminatorInst_O::static_classSymbol()); + + classllvmo__UnaryInstruction_Oval->__setup_stage3_name(llvmo::UnaryInstruction_O::static_classSymbol()); + + classllvmo__UndefValue_Oval->__setup_stage3_name(llvmo::UndefValue_O::static_classSymbol()); + + classllvmo__VectorType_Oval->__setup_stage3_name(llvmo::VectorType_O::static_classSymbol()); + + classllvmo__AllocaInst_Oval->__setup_stage3_name(llvmo::AllocaInst_O::static_classSymbol()); + + classllvmo__BranchInst_Oval->__setup_stage3_name(llvmo::BranchInst_O::static_classSymbol()); + + classllvmo__ConstantDataArray_Oval->__setup_stage3_name(llvmo::ConstantDataArray_O::static_classSymbol()); + + classllvmo__Function_Oval->__setup_stage3_name(llvmo::Function_O::static_classSymbol()); + + classllvmo__GlobalVariable_Oval->__setup_stage3_name(llvmo::GlobalVariable_O::static_classSymbol()); + + classllvmo__IndirectBrInst_Oval->__setup_stage3_name(llvmo::IndirectBrInst_O::static_classSymbol()); + + classllvmo__InvokeInst_Oval->__setup_stage3_name(llvmo::InvokeInst_O::static_classSymbol()); + + classllvmo__LoadInst_Oval->__setup_stage3_name(llvmo::LoadInst_O::static_classSymbol()); + + classllvmo__ResumeInst_Oval->__setup_stage3_name(llvmo::ResumeInst_O::static_classSymbol()); + + classllvmo__ReturnInst_Oval->__setup_stage3_name(llvmo::ReturnInst_O::static_classSymbol()); + + classllvmo__SwitchInst_Oval->__setup_stage3_name(llvmo::SwitchInst_O::static_classSymbol()); + + classllvmo__UnreachableInst_Oval->__setup_stage3_name(llvmo::UnreachableInst_O::static_classSymbol()); + + classllvmo__VAArgInst_Oval->__setup_stage3_name(llvmo::VAArgInst_O::static_classSymbol()); +#endif // } DEFINE_CLASS_NAMES +#undef DEFINE_CLASS_NAMES +#if defined(EXPOSE_TO_CANDO) || defined(ALL_STAGES) +#ifdef Use_LlvmoPkg +extern void Register_llvmo__APFloat_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__APFloat_O"); + Register_llvmo__APFloat_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__APInt_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__APInt_O"); + Register_llvmo__APInt_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Attribute_O(core::Lisp_sp); // base(s): set(['core::T_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Attribute_O"); + Register_llvmo__Attribute_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Builder_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Builder_O"); + Register_llvmo__Builder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__DebugLoc_O(core::Lisp_sp); // base(s): set(['core::T_O']) +{_BLOCK_TRACE("initializing Register_llvmo__DebugLoc_O"); + Register_llvmo__DebugLoc_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__EngineBuilder_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__EngineBuilder_O"); + Register_llvmo__EngineBuilder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ExecutionEngine_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ExecutionEngine_O"); + Register_llvmo__ExecutionEngine_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IRBuilderBase_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IRBuilderBase_O"); + Register_llvmo__IRBuilderBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__InsertPoint_O(core::Lisp_sp); // base(s): set(['core::T_O']) +{_BLOCK_TRACE("initializing Register_llvmo__InsertPoint_O"); + Register_llvmo__InsertPoint_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__LLVMContext_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__LLVMContext_O"); + Register_llvmo__LLVMContext_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Module_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Module_O"); + Register_llvmo__Module_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__PassManagerBase_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__PassManagerBase_O"); + Register_llvmo__PassManagerBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Pass_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Pass_O"); + Register_llvmo__Pass_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Type_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Type_O"); + Register_llvmo__Type_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Value_O(core::Lisp_sp); // base(s): set(['core::ExternalObject_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Value_O"); + Register_llvmo__Value_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Argument_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Argument_O"); + Register_llvmo__Argument_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__BasicBlock_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__BasicBlock_O"); + Register_llvmo__BasicBlock_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__CompositeType_O(core::Lisp_sp); // base(s): set(['llvmo::Type_O']) +{_BLOCK_TRACE("initializing Register_llvmo__CompositeType_O"); + Register_llvmo__CompositeType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FunctionPassManager_O(core::Lisp_sp); // base(s): set(['llvmo::PassManagerBase_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FunctionPassManager_O"); + Register_llvmo__FunctionPassManager_O(_lisp); // base(s): set(['llvmo::PassManagerBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FunctionPass_O(core::Lisp_sp); // base(s): set(['llvmo::Pass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FunctionPass_O"); + Register_llvmo__FunctionPass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FunctionType_O(core::Lisp_sp); // base(s): set(['llvmo::Type_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FunctionType_O"); + Register_llvmo__FunctionType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IRBuilder_O(core::Lisp_sp); // base(s): set(['llvmo::IRBuilderBase_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IRBuilder_O"); + Register_llvmo__IRBuilder_O(_lisp); // base(s): set(['llvmo::IRBuilderBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IntegerType_O(core::Lisp_sp); // base(s): set(['llvmo::Type_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IntegerType_O"); + Register_llvmo__IntegerType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__MDNode_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__MDNode_O"); + Register_llvmo__MDNode_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__MDString_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__MDString_O"); + Register_llvmo__MDString_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ModulePass_O(core::Lisp_sp); // base(s): set(['llvmo::Pass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ModulePass_O"); + Register_llvmo__ModulePass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__User_O(core::Lisp_sp); // base(s): set(['llvmo::Value_O']) +{_BLOCK_TRACE("initializing Register_llvmo__User_O"); + Register_llvmo__User_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Constant_O(core::Lisp_sp); // base(s): set(['llvmo::User_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Constant_O"); + Register_llvmo__Constant_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ImmutablePass_O(core::Lisp_sp); // base(s): set(['llvmo::ModulePass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ImmutablePass_O"); + Register_llvmo__ImmutablePass_O(_lisp); // base(s): set(['llvmo::ModulePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Instruction_O(core::Lisp_sp); // base(s): set(['llvmo::User_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Instruction_O"); + Register_llvmo__Instruction_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__SequentialType_O(core::Lisp_sp); // base(s): set(['llvmo::CompositeType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__SequentialType_O"); + Register_llvmo__SequentialType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__StructType_O(core::Lisp_sp); // base(s): set(['llvmo::CompositeType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__StructType_O"); + Register_llvmo__StructType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ArrayType_O(core::Lisp_sp); // base(s): set(['llvmo::SequentialType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ArrayType_O"); + Register_llvmo__ArrayType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__AtomicCmpXchgInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__AtomicCmpXchgInst_O"); + Register_llvmo__AtomicCmpXchgInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__AtomicRMWInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__AtomicRMWInst_O"); + Register_llvmo__AtomicRMWInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__CallInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__CallInst_O"); + Register_llvmo__CallInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantArray_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantArray_O"); + Register_llvmo__ConstantArray_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantDataSequential_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantDataSequential_O"); + Register_llvmo__ConstantDataSequential_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantExpr_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantExpr_O"); + Register_llvmo__ConstantExpr_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantFP_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantFP_O"); + Register_llvmo__ConstantFP_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantInt_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantInt_O"); + Register_llvmo__ConstantInt_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantPointerNull_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantPointerNull_O"); + Register_llvmo__ConstantPointerNull_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__DataLayout_O(core::Lisp_sp); // base(s): set(['llvmo::ImmutablePass_O']) +{_BLOCK_TRACE("initializing Register_llvmo__DataLayout_O"); + Register_llvmo__DataLayout_O(_lisp); // base(s): set(['llvmo::ImmutablePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__FenceInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__FenceInst_O"); + Register_llvmo__FenceInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__GlobalValue_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__GlobalValue_O"); + Register_llvmo__GlobalValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__LandingPadInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__LandingPadInst_O"); + Register_llvmo__LandingPadInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__PHINode_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__PHINode_O"); + Register_llvmo__PHINode_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__PointerType_O(core::Lisp_sp); // base(s): set(['llvmo::SequentialType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__PointerType_O"); + Register_llvmo__PointerType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__StoreInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__StoreInst_O"); + Register_llvmo__StoreInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__TerminatorInst_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__TerminatorInst_O"); + Register_llvmo__TerminatorInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__UnaryInstruction_O(core::Lisp_sp); // base(s): set(['llvmo::Instruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__UnaryInstruction_O"); + Register_llvmo__UnaryInstruction_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__UndefValue_O(core::Lisp_sp); // base(s): set(['llvmo::Constant_O']) +{_BLOCK_TRACE("initializing Register_llvmo__UndefValue_O"); + Register_llvmo__UndefValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__VectorType_O(core::Lisp_sp); // base(s): set(['llvmo::SequentialType_O']) +{_BLOCK_TRACE("initializing Register_llvmo__VectorType_O"); + Register_llvmo__VectorType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__AllocaInst_O(core::Lisp_sp); // base(s): set(['llvmo::UnaryInstruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__AllocaInst_O"); + Register_llvmo__AllocaInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__BranchInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__BranchInst_O"); + Register_llvmo__BranchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ConstantDataArray_O(core::Lisp_sp); // base(s): set(['llvmo::ConstantDataSequential_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ConstantDataArray_O"); + Register_llvmo__ConstantDataArray_O(_lisp); // base(s): set(['llvmo::ConstantDataSequential_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__Function_O(core::Lisp_sp); // base(s): set(['llvmo::GlobalValue_O']) +{_BLOCK_TRACE("initializing Register_llvmo__Function_O"); + Register_llvmo__Function_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__GlobalVariable_O(core::Lisp_sp); // base(s): set(['llvmo::GlobalValue_O']) +{_BLOCK_TRACE("initializing Register_llvmo__GlobalVariable_O"); + Register_llvmo__GlobalVariable_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__IndirectBrInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__IndirectBrInst_O"); + Register_llvmo__IndirectBrInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__InvokeInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__InvokeInst_O"); + Register_llvmo__InvokeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__LoadInst_O(core::Lisp_sp); // base(s): set(['llvmo::UnaryInstruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__LoadInst_O"); + Register_llvmo__LoadInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ResumeInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ResumeInst_O"); + Register_llvmo__ResumeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__ReturnInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__ReturnInst_O"); + Register_llvmo__ReturnInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__SwitchInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__SwitchInst_O"); + Register_llvmo__SwitchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__UnreachableInst_O(core::Lisp_sp); // base(s): set(['llvmo::TerminatorInst_O']) +{_BLOCK_TRACE("initializing Register_llvmo__UnreachableInst_O"); + Register_llvmo__UnreachableInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Register_llvmo__VAArgInst_O(core::Lisp_sp); // base(s): set(['llvmo::UnaryInstruction_O']) +{_BLOCK_TRACE("initializing Register_llvmo__VAArgInst_O"); + Register_llvmo__VAArgInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#endif // EXPOSE_TO_CANDO +#undef EXPOSE_TO_CANDO +#ifdef EXPOSE_TO_PYTHON +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__APFloat_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__APFloat_O"); + Call_exposePython_llvmo__APFloat_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__APInt_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__APInt_O"); + Call_exposePython_llvmo__APInt_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Attribute_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Attribute_O"); + Call_exposePython_llvmo__Attribute_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Builder_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Builder_O"); + Call_exposePython_llvmo__Builder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__DebugLoc_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__DebugLoc_O"); + Call_exposePython_llvmo__DebugLoc_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__EngineBuilder_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__EngineBuilder_O"); + Call_exposePython_llvmo__EngineBuilder_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ExecutionEngine_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ExecutionEngine_O"); + Call_exposePython_llvmo__ExecutionEngine_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IRBuilderBase_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IRBuilderBase_O"); + Call_exposePython_llvmo__IRBuilderBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__InsertPoint_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__InsertPoint_O"); + Call_exposePython_llvmo__InsertPoint_O(_lisp); // base(s): set(['core::T_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__LLVMContext_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__LLVMContext_O"); + Call_exposePython_llvmo__LLVMContext_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Module_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Module_O"); + Call_exposePython_llvmo__Module_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__PassManagerBase_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__PassManagerBase_O"); + Call_exposePython_llvmo__PassManagerBase_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Pass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Pass_O"); + Call_exposePython_llvmo__Pass_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Type_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Type_O"); + Call_exposePython_llvmo__Type_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Value_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Value_O"); + Call_exposePython_llvmo__Value_O(_lisp); // base(s): set(['core::ExternalObject_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Argument_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Argument_O"); + Call_exposePython_llvmo__Argument_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__BasicBlock_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__BasicBlock_O"); + Call_exposePython_llvmo__BasicBlock_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__CompositeType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__CompositeType_O"); + Call_exposePython_llvmo__CompositeType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FunctionPassManager_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FunctionPassManager_O"); + Call_exposePython_llvmo__FunctionPassManager_O(_lisp); // base(s): set(['llvmo::PassManagerBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FunctionPass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FunctionPass_O"); + Call_exposePython_llvmo__FunctionPass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FunctionType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FunctionType_O"); + Call_exposePython_llvmo__FunctionType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IRBuilder_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IRBuilder_O"); + Call_exposePython_llvmo__IRBuilder_O(_lisp); // base(s): set(['llvmo::IRBuilderBase_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IntegerType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IntegerType_O"); + Call_exposePython_llvmo__IntegerType_O(_lisp); // base(s): set(['llvmo::Type_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__MDNode_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__MDNode_O"); + Call_exposePython_llvmo__MDNode_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__MDString_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__MDString_O"); + Call_exposePython_llvmo__MDString_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ModulePass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ModulePass_O"); + Call_exposePython_llvmo__ModulePass_O(_lisp); // base(s): set(['llvmo::Pass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__User_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__User_O"); + Call_exposePython_llvmo__User_O(_lisp); // base(s): set(['llvmo::Value_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Constant_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Constant_O"); + Call_exposePython_llvmo__Constant_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ImmutablePass_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ImmutablePass_O"); + Call_exposePython_llvmo__ImmutablePass_O(_lisp); // base(s): set(['llvmo::ModulePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Instruction_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Instruction_O"); + Call_exposePython_llvmo__Instruction_O(_lisp); // base(s): set(['llvmo::User_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__SequentialType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__SequentialType_O"); + Call_exposePython_llvmo__SequentialType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__StructType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__StructType_O"); + Call_exposePython_llvmo__StructType_O(_lisp); // base(s): set(['llvmo::CompositeType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ArrayType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ArrayType_O"); + Call_exposePython_llvmo__ArrayType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__AtomicCmpXchgInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__AtomicCmpXchgInst_O"); + Call_exposePython_llvmo__AtomicCmpXchgInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__AtomicRMWInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__AtomicRMWInst_O"); + Call_exposePython_llvmo__AtomicRMWInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__CallInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__CallInst_O"); + Call_exposePython_llvmo__CallInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantArray_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantArray_O"); + Call_exposePython_llvmo__ConstantArray_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantDataSequential_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantDataSequential_O"); + Call_exposePython_llvmo__ConstantDataSequential_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantExpr_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantExpr_O"); + Call_exposePython_llvmo__ConstantExpr_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantFP_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantFP_O"); + Call_exposePython_llvmo__ConstantFP_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantInt_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantInt_O"); + Call_exposePython_llvmo__ConstantInt_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantPointerNull_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantPointerNull_O"); + Call_exposePython_llvmo__ConstantPointerNull_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__DataLayout_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__DataLayout_O"); + Call_exposePython_llvmo__DataLayout_O(_lisp); // base(s): set(['llvmo::ImmutablePass_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__FenceInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__FenceInst_O"); + Call_exposePython_llvmo__FenceInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__GlobalValue_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__GlobalValue_O"); + Call_exposePython_llvmo__GlobalValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__LandingPadInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__LandingPadInst_O"); + Call_exposePython_llvmo__LandingPadInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__PHINode_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__PHINode_O"); + Call_exposePython_llvmo__PHINode_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__PointerType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__PointerType_O"); + Call_exposePython_llvmo__PointerType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__StoreInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__StoreInst_O"); + Call_exposePython_llvmo__StoreInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__TerminatorInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__TerminatorInst_O"); + Call_exposePython_llvmo__TerminatorInst_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__UnaryInstruction_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__UnaryInstruction_O"); + Call_exposePython_llvmo__UnaryInstruction_O(_lisp); // base(s): set(['llvmo::Instruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__UndefValue_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__UndefValue_O"); + Call_exposePython_llvmo__UndefValue_O(_lisp); // base(s): set(['llvmo::Constant_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__VectorType_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__VectorType_O"); + Call_exposePython_llvmo__VectorType_O(_lisp); // base(s): set(['llvmo::SequentialType_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__AllocaInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__AllocaInst_O"); + Call_exposePython_llvmo__AllocaInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__BranchInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__BranchInst_O"); + Call_exposePython_llvmo__BranchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ConstantDataArray_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ConstantDataArray_O"); + Call_exposePython_llvmo__ConstantDataArray_O(_lisp); // base(s): set(['llvmo::ConstantDataSequential_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__Function_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__Function_O"); + Call_exposePython_llvmo__Function_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__GlobalVariable_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__GlobalVariable_O"); + Call_exposePython_llvmo__GlobalVariable_O(_lisp); // base(s): set(['llvmo::GlobalValue_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__IndirectBrInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__IndirectBrInst_O"); + Call_exposePython_llvmo__IndirectBrInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__InvokeInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__InvokeInst_O"); + Call_exposePython_llvmo__InvokeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__LoadInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__LoadInst_O"); + Call_exposePython_llvmo__LoadInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ResumeInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ResumeInst_O"); + Call_exposePython_llvmo__ResumeInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__ReturnInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__ReturnInst_O"); + Call_exposePython_llvmo__ReturnInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__SwitchInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__SwitchInst_O"); + Call_exposePython_llvmo__SwitchInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__UnreachableInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__UnreachableInst_O"); + Call_exposePython_llvmo__UnreachableInst_O(_lisp); // base(s): set(['llvmo::TerminatorInst_O']) +} +#endif // ifdef Use_LlvmoPkg +#ifdef Use_LlvmoPkg +extern void Call_exposePython_llvmo__VAArgInst_O(::core::Lisp_sp lisp); +{_DBG("exposing to python: llvmo__VAArgInst_O"); + Call_exposePython_llvmo__VAArgInst_O(_lisp); // base(s): set(['llvmo::UnaryInstruction_O']) +} +#endif // ifdef Use_LlvmoPkg +#endif // EXPOSE_TO_PYTHON +#undef EXPOSE_TO_PYTHON +#undef ALL_STAGES diff --git a/samples/C++/instances.inc b/samples/C++/instances.inc new file mode 100644 index 00000000..37591cb5 --- /dev/null +++ b/samples/C++/instances.inc @@ -0,0 +1,34 @@ +#include "QPBO.h" + +#ifdef _MSC_VER +#pragma warning(disable: 4661) +#endif + +// Instantiations + +template class QPBO; +template class QPBO; +template class QPBO; + +template <> + inline void QPBO::get_type_information(char*& type_name, char*& type_format) +{ + type_name = "int"; + type_format = "d"; +} + +template <> + inline void QPBO::get_type_information(char*& type_name, char*& type_format) +{ + type_name = "float"; + type_format = "f"; +} + +template <> + inline void QPBO::get_type_information(char*& type_name, char*& type_format) +{ + type_name = "double"; + type_format = "Lf"; +} + + diff --git a/samples/C/filenames/script b/samples/C/filenames/script new file mode 100755 index 00000000..53006397 --- /dev/null +++ b/samples/C/filenames/script @@ -0,0 +1,2310 @@ +#!/usr/bin/tcc -run -lm +// +// ZyklonB scripting plugin, using a custom stack-based language +// +// Copyright 2014 Přemysl Janouch. All rights reserved. +// See the file LICENSE for licensing information. +// +// Just compile this file as usual (sans #!) if you don't feel like using TCC. +// It is a very basic and portable C99 application. It's not supposed to be +// very sophisticated, for it'd get extremely big. +// +// The main influences of the language were Factor and Joy, stripped of all +// even barely complex stuff. In its current state, it's only really useful as +// a calculator but it's got great potential for extending. +// +// If you don't like something, just change it; this is just an experiment. +// +// NOTE: it is relatively easy to abuse. Be careful. +// + +#define _XOPEN_SOURCE 500 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ADDRESS_SPACE_LIMIT (100 * 1024 * 1024) +#include + +#if defined __GNUC__ +#define ATTRIBUTE_PRINTF(x, y) __attribute__ ((format (printf, x, y))) +#else // ! __GNUC__ +#define ATTRIBUTE_PRINTF(x, y) +#endif // ! __GNUC__ + +#define N_ELEMENTS(a) (sizeof (a) / sizeof ((a)[0])) + +// --- Utilities --------------------------------------------------------------- + +static char *strdup_printf (const char *format, ...) ATTRIBUTE_PRINTF (1, 2); + +static char * +strdup_vprintf (const char *format, va_list ap) +{ + va_list aq; + va_copy (aq, ap); + int size = vsnprintf (NULL, 0, format, aq); + va_end (aq); + if (size < 0) + return NULL; + + char buf[size + 1]; + size = vsnprintf (buf, sizeof buf, format, ap); + if (size < 0) + return NULL; + + return strdup (buf); +} + +static char * +strdup_printf (const char *format, ...) +{ + va_list ap; + va_start (ap, format); + char *result = strdup_vprintf (format, ap); + va_end (ap); + return result; +} + +// --- Generic buffer ---------------------------------------------------------- + +struct buffer +{ + char *s; ///< Buffer data + size_t alloc; ///< Number of bytes allocated + size_t len; ///< Number of bytes used + bool memory_failure; ///< Memory allocation failed +}; + +#define BUFFER_INITIALIZER { NULL, 0, 0, false } + +static bool +buffer_append (struct buffer *self, const void *s, size_t n) +{ + if (self->memory_failure) + return false; + + if (!self->s) + self->s = malloc (self->alloc = 8); + while (self->len + n > self->alloc) + self->s = realloc (self->s, self->alloc <<= 1); + + if (!self->s) + { + self->memory_failure = true; + return false; + } + + memcpy (self->s + self->len, s, n); + self->len += n; + return true; +} + +inline static bool +buffer_append_c (struct buffer *self, char c) +{ + return buffer_append (self, &c, 1); +} + +// --- Data types -------------------------------------------------------------- + +enum item_type +{ + ITEM_STRING, + ITEM_WORD, + ITEM_INTEGER, + ITEM_FLOAT, + ITEM_LIST +}; + +struct item +{ +#define ITEM_HEADER \ + enum item_type type; /**< The type of this object */ \ + struct item *next; /**< Next item on the list/stack */ + + ITEM_HEADER +}; + +struct item_string +{ + ITEM_HEADER + size_t len; ///< Length of the string (sans '\0') + char value[]; ///< The null-terminated string value +}; + +#define get_string(item) \ + (assert ((item)->type == ITEM_STRING), \ + ((struct item_string *)(item))->value) + +/// It looks like a string but it doesn't quack like a string +#define item_word item_string + +#define get_word(item) \ + (assert ((item)->type == ITEM_WORD), \ + ((struct item_word *)(item))->value) + +struct item_integer +{ + ITEM_HEADER + long long value; ///< The integer value +}; + +#define get_integer(item) \ + (assert ((item)->type == ITEM_INTEGER), \ + ((struct item_integer *)(item))->value) + +struct item_float +{ + ITEM_HEADER + long double value; ///< The floating point value +}; + +#define get_float(item) \ + (assert ((item)->type == ITEM_FLOAT), \ + ((struct item_float *)(item))->value) + +struct item_list +{ + ITEM_HEADER + struct item *head; ///< The head of the list +}; + +#define get_list(item) \ + (assert ((item)->type == ITEM_LIST), \ + ((struct item_list *)(item))->head) + +#define set_list(item, head_) \ + (assert ((item)->type == ITEM_LIST), \ + item_free_list (((struct item_list *)(item))->head), \ + ((struct item_list *)(item))->head = (head_)) + +const char * +item_type_to_str (enum item_type type) +{ + switch (type) + { + case ITEM_STRING: return "string"; + case ITEM_WORD: return "word"; + case ITEM_INTEGER: return "integer"; + case ITEM_FLOAT: return "float"; + case ITEM_LIST: return "list"; + } + abort (); +} + +// --- Item management --------------------------------------------------------- + +static void item_free_list (struct item *); +static struct item *new_clone_list (const struct item *); + +static void +item_free (struct item *item) +{ + if (item->type == ITEM_LIST) + item_free_list (get_list (item)); + free (item); +} + +static void +item_free_list (struct item *item) +{ + while (item) + { + struct item *link = item; + item = item->next; + item_free (link); + } +} + +static struct item * +new_clone (const struct item *item) +{ + size_t size; + switch (item->type) + { + case ITEM_STRING: + case ITEM_WORD: + { + const struct item_string *x = (const struct item_string *) item; + size = sizeof *x + x->len + 1; + break; + } + case ITEM_INTEGER: size = sizeof (struct item_integer); break; + case ITEM_FLOAT: size = sizeof (struct item_float); break; + case ITEM_LIST: size = sizeof (struct item_list); break; + } + + struct item *clone = malloc (size); + if (!clone) + return NULL; + + memcpy (clone, item, size); + if (item->type == ITEM_LIST) + { + struct item_list *x = (struct item_list *) clone; + if (x->head && !(x->head = new_clone_list (x->head))) + { + free (clone); + return NULL; + } + } + clone->next = NULL; + return clone; +} + +static struct item * +new_clone_list (const struct item *item) +{ + struct item *head = NULL, *clone; + for (struct item **out = &head; item; item = item->next) + { + if (!(clone = *out = new_clone (item))) + { + item_free_list (head); + return NULL; + } + clone->next = NULL; + out = &clone->next; + } + return head; +} + +static struct item * +new_string (const char *s, ssize_t len) +{ + if (len < 0) + len = strlen (s); + + struct item_string *item = calloc (1, sizeof *item + len + 1); + if (!item) + return NULL; + + item->type = ITEM_STRING; + item->len = len; + memcpy (item->value, s, len); + item->value[len] = '\0'; + return (struct item *) item; +} + +static struct item * +new_word (const char *s, ssize_t len) +{ + struct item *item = new_string (s, len); + if (!item) + return NULL; + + item->type = ITEM_WORD; + return item; +} + +static struct item * +new_integer (long long value) +{ + struct item_integer *item = calloc (1, sizeof *item); + if (!item) + return NULL; + + item->type = ITEM_INTEGER; + item->value = value; + return (struct item *) item; +} + +static struct item * +new_float (long double value) +{ + struct item_float *item = calloc (1, sizeof *item); + if (!item) + return NULL; + + item->type = ITEM_FLOAT; + item->value = value; + return (struct item *) item; +} + +static struct item * +new_list (struct item *head) +{ + struct item_list *item = calloc (1, sizeof *item); + if (!item) + return NULL; + + item->type = ITEM_LIST; + item->head = head; + return (struct item *) item; +} + +// --- Parsing ----------------------------------------------------------------- + +#define PARSE_ERROR_TABLE(XX) \ + XX( OK, NULL ) \ + XX( EOF, "unexpected end of input" ) \ + XX( INVALID_HEXA_ESCAPE, "invalid hexadecimal escape sequence" ) \ + XX( INVALID_ESCAPE, "unrecognized escape sequence" ) \ + XX( MEMORY, "memory allocation failure" ) \ + XX( FLOAT_RANGE, "floating point value out of range" ) \ + XX( INTEGER_RANGE, "integer out of range" ) \ + XX( INVALID_INPUT, "invalid input" ) \ + XX( UNEXPECTED_INPUT, "unexpected input" ) + +enum tokenizer_error +{ +#define XX(x, y) PARSE_ERROR_ ## x, + PARSE_ERROR_TABLE (XX) +#undef XX + PARSE_ERROR_COUNT +}; + +struct tokenizer +{ + const char *cursor; + enum tokenizer_error error; +}; + +static bool +decode_hexa_escape (struct tokenizer *self, struct buffer *buf) +{ + int i; + char c, code = 0; + + for (i = 0; i < 2; i++) + { + c = tolower (*self->cursor); + if (c >= '0' && c <= '9') + code = (code << 4) | (c - '0'); + else if (c >= 'a' && c <= 'f') + code = (code << 4) | (c - 'a' + 10); + else + break; + + self->cursor++; + } + + if (!i) + return false; + + buffer_append_c (buf, code); + return true; +} + +static bool +decode_octal_escape (struct tokenizer *self, struct buffer *buf) +{ + int i; + char c, code = 0; + + for (i = 0; i < 3; i++) + { + c = *self->cursor; + if (c < '0' || c > '7') + break; + + code = (code << 3) | (c - '0'); + self->cursor++; + } + + if (!i) + return false; + + buffer_append_c (buf, code); + return true; +} + +static bool +decode_escape_sequence (struct tokenizer *self, struct buffer *buf) +{ + // Support some basic escape sequences from the C language + char c; + switch ((c = *self->cursor)) + { + case '\0': + self->error = PARSE_ERROR_EOF; + return false; + case 'x': + case 'X': + self->cursor++; + if (decode_hexa_escape (self, buf)) + return true; + + self->error = PARSE_ERROR_INVALID_HEXA_ESCAPE; + return false; + default: + if (decode_octal_escape (self, buf)) + return true; + + self->cursor++; + const char *from = "abfnrtv\"\\", *to = "\a\b\f\n\r\t\v\"\\", *x; + if ((x = strchr (from, c))) + { + buffer_append_c (buf, to[x - from]); + return true; + } + + self->error = PARSE_ERROR_INVALID_ESCAPE; + return false; + } +} + +static struct item * +parse_string (struct tokenizer *self) +{ + struct buffer buf = BUFFER_INITIALIZER; + struct item *item = NULL; + char c; + + while (true) + switch ((c = *self->cursor++)) + { + case '\0': + self->cursor--; + self->error = PARSE_ERROR_EOF; + goto end; + case '"': + if (buf.memory_failure + || !(item = new_string (buf.s, buf.len))) + self->error = PARSE_ERROR_MEMORY; + goto end; + case '\\': + if (decode_escape_sequence (self, &buf)) + break; + goto end; + default: + buffer_append_c (&buf, c); + } + +end: + free (buf.s); + return item; +} + +static struct item * +try_parse_number (struct tokenizer *self) +{ + // These two standard library functions can digest a lot of various inputs, + // including NaN and +/- infinity. That may get a bit confusing. + char *float_end; + errno = 0; + long double float_value = strtold (self->cursor, &float_end); + int float_errno = errno; + + char *int_end; + errno = 0; + long long int_value = strtoll (self->cursor, &int_end, 10); + int int_errno = errno; + + // If they both fail, then this is most probably not a number. + if (float_end == int_end && float_end == self->cursor) + return NULL; + + // Only use the floating point result if it parses more characters: + struct item *item; + if (float_end > int_end) + { + if (float_errno == ERANGE) + { + self->error = PARSE_ERROR_FLOAT_RANGE; + return NULL; + } + self->cursor = float_end; + if (!(item = new_float (float_value))) + self->error = PARSE_ERROR_MEMORY; + return item; + } + else + { + if (int_errno == ERANGE) + { + self->error = PARSE_ERROR_INTEGER_RANGE; + return NULL; + } + self->cursor = int_end; + if (!(item = new_integer (int_value))) + self->error = PARSE_ERROR_MEMORY; + return item; + } +} + +static struct item * +parse_word (struct tokenizer *self) +{ + struct buffer buf = BUFFER_INITIALIZER; + struct item *item = NULL; + char c; + + // Here we accept almost anything that doesn't break the grammar + while (!strchr (" []\"", (c = *self->cursor++)) && (unsigned char) c > ' ') + buffer_append_c (&buf, c); + self->cursor--; + + if (buf.memory_failure) + self->error = PARSE_ERROR_MEMORY; + else if (!buf.len) + self->error = PARSE_ERROR_INVALID_INPUT; + else if (!(item = new_word (buf.s, buf.len))) + self->error = PARSE_ERROR_MEMORY; + + free (buf.s); + return item; +} + +static struct item *parse_item_list (struct tokenizer *); + +static struct item * +parse_list (struct tokenizer *self) +{ + struct item *list = parse_item_list (self); + if (self->error) + { + assert (list == NULL); + return NULL; + } + if (!*self->cursor) + { + self->error = PARSE_ERROR_EOF; + item_free_list (list); + return NULL; + } + assert (*self->cursor == ']'); + self->cursor++; + return new_list (list); +} + +static struct item * +parse_item (struct tokenizer *self) +{ + char c; + switch ((c = *self->cursor++)) + { + case '[': return parse_list (self); + case '"': return parse_string (self); + default:; + } + + self->cursor--; + struct item *item = try_parse_number (self); + if (!item && !self->error) + item = parse_word (self); + return item; +} + +static struct item * +parse_item_list (struct tokenizer *self) +{ + struct item *head = NULL; + struct item **tail = &head; + + char c; + bool expected = true; + while ((c = *self->cursor) && c != ']') + { + if (isspace (c)) + { + self->cursor++; + expected = true; + continue; + } + else if (!expected) + { + self->error = PARSE_ERROR_UNEXPECTED_INPUT; + goto fail; + } + + if (!(*tail = parse_item (self))) + goto fail; + tail = &(*tail)->next; + expected = false; + } + return head; + +fail: + item_free_list (head); + return NULL; +} + +static struct item * +parse (const char *s, const char **error) +{ + struct tokenizer self = { .cursor = s, .error = PARSE_ERROR_OK }; + struct item *list = parse_item_list (&self); + if (!self.error && *self.cursor != '\0') + { + self.error = PARSE_ERROR_UNEXPECTED_INPUT; + item_free_list (list); + list = NULL; + } + +#define XX(x, y) y, + static const char *strings[PARSE_ERROR_COUNT] = + { PARSE_ERROR_TABLE (XX) }; +#undef XX + + static char error_buf[128]; + if (self.error && error) + { + snprintf (error_buf, sizeof error_buf, "at character %d: %s", + (int) (self.cursor - s) + 1, strings[self.error]); + *error = error_buf; + } + return list; +} + +// --- Runtime ----------------------------------------------------------------- + +// TODO: try to think of a _simple_ way to do preemptive multitasking + +struct context +{ + struct item *stack; ///< The current top of the stack + size_t stack_size; ///< Number of items on the stack + + size_t reduction_count; ///< # of function calls so far + size_t reduction_limit; ///< The hard limit on function calls + + char *error; ///< Error information + bool error_is_fatal; ///< Whether the error can be catched + bool memory_failure; ///< Memory allocation failure + + void *user_data; ///< User data +}; + +/// Internal handler for a function +typedef bool (*handler_fn) (struct context *); + +struct fn +{ + struct fn *next; ///< The next link in the chain + + handler_fn handler; ///< Internal C handler, or NULL + struct item *script; ///< Alternatively runtime code + char name[]; ///< The name of the function +}; + +struct fn *g_functions; ///< Maps words to functions + +static void +context_init (struct context *ctx) +{ + ctx->stack = NULL; + ctx->stack_size = 0; + + ctx->reduction_count = 0; + ctx->reduction_limit = 2000; + + ctx->error = NULL; + ctx->error_is_fatal = false; + ctx->memory_failure = false; + + ctx->user_data = NULL; +} + +static void +context_free (struct context *ctx) +{ + item_free_list (ctx->stack); + ctx->stack = NULL; + + free (ctx->error); + ctx->error = NULL; +} + +static bool +set_error (struct context *ctx, const char *format, ...) +{ + free (ctx->error); + + va_list ap; + va_start (ap, format); + ctx->error = strdup_vprintf (format, ap); + va_end (ap); + + if (!ctx->error) + ctx->memory_failure = true; + return false; +} + +static bool +push (struct context *ctx, struct item *item) +{ + // The `item' is typically a result from new_(), thus when it is null, + // that function must have failed. This is a shortcut for convenience. + if (!item) + { + ctx->memory_failure = true; + return false; + } + + assert (item->next == NULL); + item->next = ctx->stack; + ctx->stack = item; + ctx->stack_size++; + return true; +} + +static bool +bump_reductions (struct context *ctx) +{ + if (++ctx->reduction_count >= ctx->reduction_limit) + { + ctx->error_is_fatal = true; + return set_error (ctx, "reduction limit reached"); + } + return true; +} + +static bool execute (struct context *, struct item *); + +static bool +call_function (struct context *ctx, const char *name) +{ + struct fn *iter; + for (iter = g_functions; iter; iter = iter->next) + if (!strcmp (name, iter->name)) + goto found; + return set_error (ctx, "unknown function: %s", name); + +found: + if (!bump_reductions (ctx)) + return false; + + if (iter->handler + ? iter->handler (ctx) + : execute (ctx, iter->script)) + return true; + + // In this case, `error' is NULL + if (ctx->memory_failure) + return false; + + // This creates some form of a stack trace + char *tmp = ctx->error; + ctx->error = NULL; + set_error (ctx, "%s -> %s", name, tmp); + free (tmp); + return false; +} + +static void +free_function (struct fn *fn) +{ + item_free_list (fn->script); + free (fn); +} + +static void +unregister_function (const char *name) +{ + for (struct fn **iter = &g_functions; *iter; iter = &(*iter)->next) + if (!strcmp ((*iter)->name, name)) + { + struct fn *tmp = *iter; + *iter = tmp->next; + free_function (tmp); + break; + } +} + +static struct fn * +prepend_new_fn (const char *name) +{ + struct fn *fn = calloc (1, sizeof *fn + strlen (name) + 1); + if (!fn) + return NULL; + + strcpy (fn->name, name); + fn->next = g_functions; + return g_functions = fn; +} + +static bool +register_handler (const char *name, handler_fn handler) +{ + unregister_function (name); + struct fn *fn = prepend_new_fn (name); + if (!fn) + return false; + fn->handler = handler; + return true; +} + +static bool +register_script (const char *name, struct item *script) +{ + unregister_function (name); + struct fn *fn = prepend_new_fn (name); + if (!fn) + return false; + fn->script = script; + return true; +} + +static bool +execute (struct context *ctx, struct item *script) +{ + for (; script; script = script->next) + { + if (script->type != ITEM_WORD) + { + if (!bump_reductions (ctx) + || !push (ctx, new_clone (script))) + return false; + } + else if (!call_function (ctx, get_word (script))) + return false; + } + return true; +} + +// --- Runtime library --------------------------------------------------------- + +#define defn(name) static bool name (struct context *ctx) + +#define check_stack(n) \ + if (ctx->stack_size < n) { \ + set_error (ctx, "stack underflow"); \ + return 0; \ + } + +inline static bool +check_stack_safe (struct context *ctx, size_t n) +{ + check_stack (n); + return true; +} + +static bool +check_type (struct context *ctx, const void *item_, enum item_type type) +{ + const struct item *item = item_; + if (item->type == type) + return true; + + return set_error (ctx, "invalid type: expected `%s', got `%s'", + item_type_to_str (type), item_type_to_str (item->type)); +} + +static struct item * +pop (struct context *ctx) +{ + check_stack (1); + struct item *top = ctx->stack; + ctx->stack = top->next; + top->next = NULL; + ctx->stack_size--; + return top; +} + +// - - Types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +#define defn_is_type(name, item_type) \ + defn (fn_is_##name) { \ + check_stack (1); \ + struct item *top = pop (ctx); \ + push (ctx, new_integer (top->type == (item_type))); \ + item_free (top); \ + return true; \ + } + +defn_is_type (string, ITEM_STRING) +defn_is_type (word, ITEM_WORD) +defn_is_type (integer, ITEM_INTEGER) +defn_is_type (float, ITEM_FLOAT) +defn_is_type (list, ITEM_LIST) + +defn (fn_to_string) +{ + check_stack (1); + struct item *item = pop (ctx); + char *value; + + switch (item->type) + { + case ITEM_WORD: + item->type = ITEM_STRING; + case ITEM_STRING: + return push (ctx, item); + + case ITEM_FLOAT: + value = strdup_printf ("%Lf", get_float (item)); + break; + case ITEM_INTEGER: + value = strdup_printf ("%lld", get_integer (item)); + break; + + default: + set_error (ctx, "cannot convert `%s' to `%s'", + item_type_to_str (item->type), item_type_to_str (ITEM_STRING)); + item_free (item); + return false; + } + + item_free (item); + if (!value) + { + ctx->memory_failure = true; + return false; + } + + item = new_string (value, -1); + free (value); + return push (ctx, item); +} + +defn (fn_to_integer) +{ + check_stack (1); + struct item *item = pop (ctx); + long long value; + + switch (item->type) + { + case ITEM_INTEGER: + return push (ctx, item); + case ITEM_FLOAT: + value = get_float (item); + break; + + case ITEM_STRING: + { + char *end; + const char *s = get_string (item); + value = strtoll (s, &end, 10); + if (end != s && *s == '\0') + break; + + item_free (item); + return set_error (ctx, "integer conversion error"); + } + + default: + set_error (ctx, "cannot convert `%s' to `%s'", + item_type_to_str (item->type), item_type_to_str (ITEM_INTEGER)); + item_free (item); + return false; + } + + item_free (item); + return push (ctx, new_integer (value)); +} + +defn (fn_to_float) +{ + check_stack (1); + struct item *item = pop (ctx); + long double value; + + switch (item->type) + { + case ITEM_FLOAT: + return push (ctx, item); + case ITEM_INTEGER: + value = get_integer (item); + break; + + case ITEM_STRING: + { + char *end; + const char *s = get_string (item); + value = strtold (s, &end); + if (end != s && *s == '\0') + break; + + item_free (item); + return set_error (ctx, "float conversion error"); + } + + default: + set_error (ctx, "cannot convert `%s' to `%s'", + item_type_to_str (item->type), item_type_to_str (ITEM_FLOAT)); + item_free (item); + return false; + } + + item_free (item); + return push (ctx, new_float (value)); +} + +// - - Miscellaneous - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_length) +{ + check_stack (1); + struct item *item = pop (ctx); + bool success = true; + switch (item->type) + { + case ITEM_STRING: + success = push (ctx, new_integer (((struct item_string *) item)->len)); + break; + case ITEM_LIST: + { + long long length = 0; + struct item *iter; + for (iter = get_list (item); iter; iter = iter->next) + length++; + success = push (ctx, new_integer (length)); + break; + } + default: + success = set_error (ctx, "invalid type"); + } + item_free (item); + return success; +} + +// - - Stack operations - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_dup) +{ + check_stack (1); + return push (ctx, new_clone (ctx->stack)); +} + +defn (fn_drop) +{ + check_stack (1); + item_free (pop (ctx)); + return true; +} + +defn (fn_swap) +{ + check_stack (2); + struct item *second = pop (ctx), *first = pop (ctx); + return push (ctx, second) && push (ctx, first); +} + +defn (fn_call) +{ + check_stack (1); + struct item *script = pop (ctx); + bool success = check_type (ctx, script, ITEM_LIST) + && execute (ctx, get_list (script)); + item_free (script); + return success; +} + +defn (fn_dip) +{ + check_stack (2); + struct item *script = pop (ctx); + struct item *item = pop (ctx); + bool success = check_type (ctx, script, ITEM_LIST) + && execute (ctx, get_list (script)); + item_free (script); + if (!success) + { + item_free (item); + return false; + } + return push (ctx, item); +} + +defn (fn_unit) +{ + check_stack (1); + struct item *item = pop (ctx); + return push (ctx, new_list (item)); +} + +defn (fn_cons) +{ + check_stack (2); + struct item *list = pop (ctx); + struct item *item = pop (ctx); + if (!check_type (ctx, list, ITEM_LIST)) + { + item_free (list); + item_free (item); + return false; + } + item->next = get_list (list); + ((struct item_list *) list)->head = item; + return push (ctx, list); +} + +defn (fn_cat) +{ + check_stack (2); + struct item *scnd = pop (ctx); + struct item *frst = pop (ctx); + if (!check_type (ctx, frst, ITEM_LIST) + || !check_type (ctx, scnd, ITEM_LIST)) + { + item_free (frst); + item_free (scnd); + return false; + } + + // XXX: we shouldn't have to do this in O(n) + struct item **tail = &((struct item_list *) frst)->head; + while (*tail) + tail = &(*tail)->next; + *tail = get_list (scnd); + + ((struct item_list *) scnd)->head = NULL; + item_free (scnd); + return push (ctx, frst); +} + +defn (fn_uncons) +{ + check_stack (1); + struct item *list = pop (ctx); + if (!check_type (ctx, list, ITEM_LIST)) + goto fail; + struct item *first = get_list (list); + if (!first) + { + set_error (ctx, "list is empty"); + goto fail; + } + ((struct item_list *) list)->head = first->next; + first->next = NULL; + return push (ctx, first) && push (ctx, list); +fail: + item_free (list); + return false; +} + +// - - Logical - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static bool +to_boolean (struct context *ctx, struct item *item, bool *ok) +{ + switch (item->type) + { + case ITEM_STRING: + return *get_string (item) != '\0'; + case ITEM_INTEGER: + return get_integer (item) != 0; + case ITEM_FLOAT: + return get_float (item) != 0.; + default: + return (*ok = set_error (ctx, "cannot convert `%s' to boolean", + item_type_to_str (item->type))); + } +} + +defn (fn_not) +{ + check_stack (1); + struct item *item = pop (ctx); + bool ok = true; + bool result = !to_boolean (ctx, item, &ok); + item_free (item); + return ok && push (ctx, new_integer (result)); +} + +defn (fn_and) +{ + check_stack (2); + struct item *op1 = pop (ctx); + struct item *op2 = pop (ctx); + bool ok = true; + bool result = to_boolean (ctx, op1, &ok) && to_boolean (ctx, op2, &ok); + item_free (op1); + item_free (op2); + return ok && push (ctx, new_integer (result)); +} + +defn (fn_or) +{ + check_stack (2); + struct item *op1 = pop (ctx); + struct item *op2 = pop (ctx); + bool ok = true; + bool result = to_boolean (ctx, op1, &ok) + || !ok || to_boolean (ctx, op2, &ok); + item_free (op1); + item_free (op2); + return ok && push (ctx, new_integer (result)); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_if) +{ + check_stack (3); + struct item *else_ = pop (ctx); + struct item *then_ = pop (ctx); + struct item *cond_ = pop (ctx); + + bool ok = true; + bool condition = to_boolean (ctx, cond_, &ok); + item_free (cond_); + + bool success = false; + if (ok + && check_type (ctx, then_, ITEM_LIST) + && check_type (ctx, else_, ITEM_LIST)) + success = execute (ctx, condition + ? get_list (then_) + : get_list (else_)); + + item_free (then_); + item_free (else_); + return success; +} + +defn (fn_try) +{ + check_stack (2); + struct item *catch = pop (ctx); + struct item *try = pop (ctx); + bool success = false; + if (!check_type (ctx, try, ITEM_LIST) + || !check_type (ctx, catch, ITEM_LIST)) + goto fail; + + if (!execute (ctx, get_list (try))) + { + if (ctx->memory_failure || ctx->error_is_fatal) + goto fail; + + success = push (ctx, new_string (ctx->error, -1)); + free (ctx->error); + ctx->error = NULL; + + if (success) + success = execute (ctx, get_list (catch)); + } + +fail: + item_free (try); + item_free (catch); + return success; +} + +defn (fn_map) +{ + check_stack (2); + struct item *fn = pop (ctx); + struct item *list = pop (ctx); + if (!check_type (ctx, fn, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + { + item_free (fn); + item_free (list); + return false; + } + + bool success = false; + struct item *result = NULL, **tail = &result; + for (struct item *iter = get_list (list); iter; iter = iter->next) + { + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (fn)) + || !check_stack_safe (ctx, 1)) + goto fail; + + struct item *item = pop (ctx); + *tail = item; + tail = &item->next; + } + success = true; + +fail: + set_list (list, result); + item_free (fn); + if (!success) + { + item_free (list); + return false; + } + return push (ctx, list); +} + +defn (fn_filter) +{ + check_stack (2); + struct item *fn = pop (ctx); + struct item *list = pop (ctx); + if (!check_type (ctx, fn, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + { + item_free (fn); + item_free (list); + return false; + } + + bool success = false; + bool ok = true; + struct item *result = NULL, **tail = &result; + for (struct item *iter = get_list (list); iter; iter = iter->next) + { + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (fn)) + || !check_stack_safe (ctx, 1)) + goto fail; + + struct item *item = pop (ctx); + bool survived = to_boolean (ctx, item, &ok); + item_free (item); + if (!ok) + goto fail; + if (!survived) + continue; + + if (!(item = new_clone (iter))) + goto fail; + *tail = item; + tail = &item->next; + } + success = true; + +fail: + set_list (list, result); + item_free (fn); + if (!success) + { + item_free (list); + return false; + } + return push (ctx, list); +} + +defn (fn_fold) +{ + check_stack (3); + struct item *op = pop (ctx); + struct item *null = pop (ctx); + struct item *list = pop (ctx); + bool success = false; + if (!check_type (ctx, op, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + { + item_free (null); + goto fail; + } + + push (ctx, null); + for (struct item *iter = get_list (list); iter; iter = iter->next) + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (op))) + goto fail; + success = true; + +fail: + item_free (op); + item_free (list); + return success; +} + +defn (fn_each) +{ + check_stack (2); + struct item *op = pop (ctx); + struct item *list = pop (ctx); + bool success = false; + if (!check_type (ctx, op, ITEM_LIST) + || !check_type (ctx, list, ITEM_LIST)) + goto fail; + + for (struct item *iter = get_list (list); iter; iter = iter->next) + if (!push (ctx, new_clone (iter)) + || !execute (ctx, get_list (op))) + goto fail; + success = true; + +fail: + item_free (op); + item_free (list); + return success; +} + +// - - Arithmetic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// XXX: why not a `struct item_string *` argument? +static bool +push_repeated_string (struct context *ctx, struct item *op1, struct item *op2) +{ + struct item_string *string = (struct item_string *) op1; + struct item_integer *repeat = (struct item_integer *) op2; + assert (string->type == ITEM_STRING); + assert (repeat->type == ITEM_INTEGER); + + if (repeat->value < 0) + return set_error (ctx, "cannot multiply a string by a negative value"); + + char *buf = NULL; + size_t len = string->len * repeat->value; + if (len < string->len && repeat->value != 0) + goto allocation_fail; + + buf = malloc (len); + if (!buf) + goto allocation_fail; + + for (size_t i = 0; i < len; i += string->len) + memcpy (buf + i, string->value, string->len); + struct item *item = new_string (buf, len); + free (buf); + return push (ctx, item); + +allocation_fail: + ctx->memory_failure = true; + return false; +} + +defn (fn_times) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) * get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) * get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) * get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) * get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_STRING) + ok = push_repeated_string (ctx, op2, op1); + else if (op1->type == ITEM_STRING && op2->type == ITEM_INTEGER) + ok = push_repeated_string (ctx, op1, op2); + else + ok = set_error (ctx, "cannot multiply `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_pow) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + // TODO: implement this properly, outputting an integer + ok = push (ctx, new_float (powl (get_integer (op1), get_integer (op2)))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (powl (get_integer (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (powl (get_float (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (powl (get_float (op1), get_integer (op2)))); + else + ok = set_error (ctx, "cannot exponentiate `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_div) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + { + if (get_integer (op2) == 0) + ok = set_error (ctx, "division by zero"); + else + ok = push (ctx, new_integer (get_integer (op1) / get_integer (op2))); + } + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) / get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) / get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) / get_integer (op2))); + else + ok = set_error (ctx, "cannot divide `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_mod) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + { + if (get_integer (op2) == 0) + ok = set_error (ctx, "division by zero"); + else + ok = push (ctx, new_integer (get_integer (op1) % get_integer (op2))); + } + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (fmodl (get_integer (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (fmodl (get_float (op1), get_float (op2)))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (fmodl (get_float (op1), get_integer (op2)))); + else + ok = set_error (ctx, "cannot divide `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +static bool +push_concatenated_string (struct context *ctx, + struct item *op1, struct item *op2) +{ + struct item_string *s1 = (struct item_string *) op1; + struct item_string *s2 = (struct item_string *) op2; + assert (s1->type == ITEM_STRING); + assert (s2->type == ITEM_STRING); + + char *buf = NULL; + size_t len = s1->len + s2->len; + if (len < s1->len || len < s2->len) + goto allocation_fail; + + buf = malloc (len); + if (!buf) + goto allocation_fail; + + memcpy (buf, s1->value, s1->len); + memcpy (buf + s1->len, s2->value, s2->len); + struct item *item = new_string (buf, len); + free (buf); + return push (ctx, item); + +allocation_fail: + ctx->memory_failure = true; + return false; + +} + +defn (fn_plus) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) + get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) + get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) + get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) + get_integer (op2))); + else if (op1->type == ITEM_STRING && op2->type == ITEM_STRING) + ok = push_concatenated_string (ctx, op1, op2); + else + ok = set_error (ctx, "cannot add `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_minus) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) - get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_integer (op1) - get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_float (get_float (op1) - get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_float (get_float (op1) - get_integer (op2))); + else + ok = set_error (ctx, "cannot subtract `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +// - - Comparison - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static int +compare_strings (struct item_string *s1, struct item_string *s2) +{ + // XXX: not entirely correct wrt. null bytes + size_t len = (s1->len < s2->len ? s1->len : s2->len) + 1; + return memcmp (s1->value, s2->value, len); +} + +static bool compare_lists (struct item *, struct item *); + +static bool +compare_list_items (struct item *op1, struct item *op2) +{ + if (op1->type != op2->type) + return false; + + switch (op1->type) + { + case ITEM_STRING: + case ITEM_WORD: + return !compare_strings ((struct item_string *) op1, + (struct item_string *) op2); + case ITEM_FLOAT: + return get_float (op1) == get_float (op2); + case ITEM_INTEGER: + return get_integer (op1) == get_integer (op2); + case ITEM_LIST: + return compare_lists (get_list (op1), get_list (op2)); + } + abort (); +} + +static bool +compare_lists (struct item *op1, struct item *op2) +{ + while (op1 && op2) + { + if (!compare_list_items (op1, op2)) + return false; + + op1 = op1->next; + op2 = op2->next; + } + return !op1 && !op2; +} + +defn (fn_eq) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) == get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_integer (op1) == get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_float (op1) == get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_float (op1) == get_integer (op2))); + else if (op1->type == ITEM_LIST && op2->type == ITEM_LIST) + ok = push (ctx, new_integer (compare_lists + (get_list (op1), get_list (op2)))); + else if (op1->type == ITEM_STRING && op2->type == ITEM_STRING) + ok = push (ctx, new_integer (compare_strings + ((struct item_string *)(op1), (struct item_string *)(op2)) == 0)); + else + ok = set_error (ctx, "cannot compare `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +defn (fn_lt) +{ + check_stack (2); + struct item *op2 = pop (ctx); + struct item *op1 = pop (ctx); + + bool ok; + if (op1->type == ITEM_INTEGER && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_integer (op1) < get_integer (op2))); + else if (op1->type == ITEM_INTEGER && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_integer (op1) < get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_FLOAT) + ok = push (ctx, new_integer (get_float (op1) < get_float (op2))); + else if (op1->type == ITEM_FLOAT && op2->type == ITEM_INTEGER) + ok = push (ctx, new_integer (get_float (op1) < get_integer (op2))); + else if (op1->type == ITEM_STRING && op2->type == ITEM_STRING) + ok = push (ctx, new_integer (compare_strings + ((struct item_string *)(op1), (struct item_string *)(op2)) < 0)); + else + ok = set_error (ctx, "cannot compare `%s' and `%s'", + item_type_to_str (op1->type), item_type_to_str (op2->type)); + + item_free (op1); + item_free (op2); + return ok; +} + +// - - Utilities - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +defn (fn_rand) +{ + return push (ctx, new_float ((long double) rand () + / ((long double) RAND_MAX + 1))); +} + +defn (fn_time) +{ + return push (ctx, new_integer (time (NULL))); +} + +// XXX: this is a bit too constrained; combines strftime() with gmtime() +defn (fn_strftime) +{ + check_stack (2); + struct item *format = pop (ctx); + struct item *time_ = pop (ctx); + bool success = false; + if (!check_type (ctx, time_, ITEM_INTEGER) + || !check_type (ctx, format, ITEM_STRING)) + goto fail; + + if (get_integer (time_) < 0) + { + set_error (ctx, "invalid time value"); + goto fail; + } + + char buf[128]; + time_t time__ = get_integer (time_); + struct tm tm; + gmtime_r (&time__, &tm); + buf[strftime (buf, sizeof buf, get_string (format), &tm)] = '\0'; + success = push (ctx, new_string (buf, -1)); + +fail: + item_free (time_); + item_free (format); + return success; +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static void item_list_to_str (const struct item *, struct buffer *); + +static void +string_to_str (const struct item_string *string, struct buffer *buf) +{ + buffer_append_c (buf, '"'); + for (size_t i = 0; i < string->len; i++) + { + char c = string->value[i]; + if (c == '\n') buffer_append (buf, "\\n", 2); + else if (c == '\r') buffer_append (buf, "\\r", 2); + else if (c == '\t') buffer_append (buf, "\\t", 2); + else if (!isprint (c)) + { + char tmp[8]; + snprintf (tmp, sizeof tmp, "\\x%02x", (unsigned char) c); + buffer_append (buf, tmp, strlen (tmp)); + } + else if (c == '\\') buffer_append (buf, "\\\\", 2); + else if (c == '"') buffer_append (buf, "\\\"", 2); + else buffer_append_c (buf, c); + } + buffer_append_c (buf, '"'); +} + +static void +item_to_str (const struct item *item, struct buffer *buf) +{ + switch (item->type) + { + char *x; + case ITEM_STRING: + string_to_str ((struct item_string *) item, buf); + break; + case ITEM_WORD: + { + struct item_word *word = (struct item_word *) item; + buffer_append (buf, word->value, word->len); + break; + } + case ITEM_INTEGER: + if (!(x = strdup_printf ("%lld", get_integer (item)))) + goto alloc_failure; + buffer_append (buf, x, strlen (x)); + free (x); + break; + case ITEM_FLOAT: + if (!(x = strdup_printf ("%Lf", get_float (item)))) + goto alloc_failure; + buffer_append (buf, x, strlen (x)); + free (x); + break; + case ITEM_LIST: + buffer_append_c (buf, '['); + item_list_to_str (get_list (item), buf); + buffer_append_c (buf, ']'); + break; + } + return; + +alloc_failure: + // This is a bit hackish but it simplifies stuff + buf->memory_failure = true; + free (buf->s); + buf->s = NULL; +} + +static void +item_list_to_str (const struct item *script, struct buffer *buf) +{ + if (!script) + return; + + item_to_str (script, buf); + while ((script = script->next)) + { + buffer_append_c (buf, ' '); + item_to_str (script, buf); + } +} + +// --- IRC protocol ------------------------------------------------------------ + +struct message +{ + char *prefix; ///< Message prefix + char *command; ///< IRC command + char *params[16]; ///< Command parameters (0-terminated) + size_t n_params; ///< Number of parameters present +}; + +inline static char * +cut_word (char **s) +{ + char *start = *s, *end = *s + strcspn (*s, " "); + *s = end + strspn (end, " "); + *end = '\0'; + return start; +} + +static bool +parse_message (char *s, struct message *msg) +{ + memset (msg, 0, sizeof *msg); + + // Ignore IRC 3.2 message tags, if present + if (*s == '@') + { + s += strcspn (s, " "); + s += strspn (s, " "); + } + + // Prefix + if (*s == ':') + msg->prefix = cut_word (&s) + 1; + + // Command + if (!*(msg->command = cut_word (&s))) + return false; + + // Parameters + while (*s) + { + size_t n = msg->n_params++; + if (msg->n_params >= N_ELEMENTS (msg->params)) + return false; + if (*s == ':') + { + msg->params[n] = ++s; + break; + } + msg->params[n] = cut_word (&s); + } + return true; +} + +static struct message * +read_message (void) +{ + static bool discard = false; + static char buf[1025]; + static struct message msg; + + bool discard_this; + do + { + if (!fgets (buf, sizeof buf, stdin)) + return NULL; + size_t len = strlen (buf); + + // Just to be on the safe side, if the line overflows our buffer, + // ignore everything up until the next line. + discard_this = discard; + if (len >= 2 && !strcmp (buf + len - 2, "\r\n")) + { + buf[len -= 2] = '\0'; + discard = false; + } + else + discard = true; + } + // Invalid messages are silently ignored + while (discard_this || !parse_message (buf, &msg)); + return &msg; +} + +// --- Interfacing with the bot ------------------------------------------------ + +#define BOT_PRINT "ZYKLONB print :script: " + +static const char * +get_config (const char *key) +{ + printf ("ZYKLONB get_config :%s\r\n", key); + struct message *msg = read_message (); + if (!msg || msg->n_params <= 0) + exit (EXIT_FAILURE); + return msg->params[0]; +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// TODO: implement more functions; try to avoid writing them in C + +static bool +init_runtime_library_scripts (void) +{ + bool ok = true; + + // It's much cheaper (and more fun) to define functions in terms of other + // ones. The "unit tests" serve a secondary purpose of showing the usage. + struct script + { + const char *name; ///< Name of the function + const char *definition; ///< The defining script + const char *unit_test; ///< Trivial unit test, must return 1 + } + scripts[] = + { + { "nip", "swap drop", "1 2 nip 2 =" }, + { "over", "[dup] dip swap", "1 2 over nip nip 1 =" }, + { "swons", "swap cons", "[2] 1 swons [1 2] =" }, + { "first", "uncons drop", "[1 2 3] first 1 =" }, + { "rest", "uncons swap drop", "[1 2 3] rest [2 3] =" }, + { "reverse", "[] swap [swap cons] each", "[1 2] reverse [2 1] =" }, + { "curry", "cons", "1 2 [+] curry call 3 =" }, + + { "xor", "not swap not + 1 =", "1 1 xor 0 =" }, + { "min", "over over < [drop] [nip] if", "1 2 min 1 =" }, + { "max", "over over > [drop] [nip] if", "1 2 max 2 =" }, + + { "all?", "[and] cat 1 swap fold", "[3 4 5] [> 3] all? 0 =" }, + { "any?", "[or] cat 0 swap fold", "[3 4 5] [> 3] any? 1 =" }, + + { ">", "swap <", "1 2 > 0 =" }, + { "!=", "= not", "1 2 != 1 =" }, + { "<=", "> not", "1 2 <= 1 =" }, + { ">=", "< not", "1 2 >= 0 =" }, + + // XXX: this is a bit crazy and does not work with an empty list + { "join", "[uncons] dip swap [[dup] dip swap [+ +] dip] each drop", + "[1 2 3] [>string] map \" -> \" join \"1 -> 2 -> 3\" =" }, + }; + + for (size_t i = 0; i < N_ELEMENTS (scripts); i++) + { + const char *error = NULL; + struct item *script = parse (scripts[i].definition, &error); + if (error) + { + printf (BOT_PRINT "error parsing internal script `%s': %s\r\n", + scripts[i].definition, error); + ok = false; + } + else + ok &= register_script (scripts[i].name, script); + } + + struct context ctx; + for (size_t i = 0; i < N_ELEMENTS (scripts); i++) + { + const char *error = NULL; + struct item *script = parse (scripts[i].unit_test, &error); + if (error) + { + printf (BOT_PRINT "error parsing unit test for `%s': %s\r\n", + scripts[i].name, error); + ok = false; + continue; + } + context_init (&ctx); + execute (&ctx, script); + item_free_list (script); + + const char *failure = NULL; + if (ctx.memory_failure) + failure = "memory allocation failure"; + else if (ctx.error) + failure = ctx.error; + else if (ctx.stack_size != 1) + failure = "too many results on the stack"; + else if (ctx.stack->type != ITEM_INTEGER) + failure = "result is not an integer"; + else if (get_integer (ctx.stack) != 1) + failure = "wrong test result"; + if (failure) + { + printf (BOT_PRINT "error executing unit test for `%s': %s\r\n", + scripts[i].name, failure); + ok = false; + } + context_free (&ctx); + } + return ok; +} + +static bool +init_runtime_library (void) +{ + bool ok = true; + + // Type detection + ok &= register_handler ("string?", fn_is_string); + ok &= register_handler ("word?", fn_is_word); + ok &= register_handler ("integer?", fn_is_integer); + ok &= register_handler ("float?", fn_is_float); + ok &= register_handler ("list?", fn_is_list); + + // Type conversion + ok &= register_handler (">string", fn_to_string); + ok &= register_handler (">integer", fn_to_integer); + ok &= register_handler (">float", fn_to_float); + + // Miscellaneous + ok &= register_handler ("length", fn_length); + + // Basic stack manipulation + ok &= register_handler ("dup", fn_dup); + ok &= register_handler ("drop", fn_drop); + ok &= register_handler ("swap", fn_swap); + + // Calling stuff + ok &= register_handler ("call", fn_call); + ok &= register_handler ("dip", fn_dip); + + // Control flow + ok &= register_handler ("if", fn_if); + ok &= register_handler ("try", fn_try); + + // List processing + ok &= register_handler ("map", fn_map); + ok &= register_handler ("filter", fn_filter); + ok &= register_handler ("fold", fn_fold); + ok &= register_handler ("each", fn_each); + + // List manipulation + ok &= register_handler ("unit", fn_unit); + ok &= register_handler ("cons", fn_cons); + ok &= register_handler ("cat", fn_cat); + ok &= register_handler ("uncons", fn_uncons); + + // Arithmetic operations + ok &= register_handler ("+", fn_plus); + ok &= register_handler ("-", fn_minus); + ok &= register_handler ("*", fn_times); + ok &= register_handler ("^", fn_pow); + ok &= register_handler ("/", fn_div); + ok &= register_handler ("%", fn_mod); + + // Comparison + ok &= register_handler ("=", fn_eq); + ok &= register_handler ("<", fn_lt); + + // Logical operations + ok &= register_handler ("not", fn_not); + ok &= register_handler ("and", fn_and); + ok &= register_handler ("or", fn_or); + + // Utilities + ok &= register_handler ("rand", fn_rand); + ok &= register_handler ("time", fn_time); + ok &= register_handler ("strftime", fn_strftime); + + ok &= init_runtime_library_scripts (); + return ok; +} + +static void +free_runtime_library (void) +{ + struct fn *next, *iter; + for (iter = g_functions; iter; iter = next) + { + next = iter->next; + free_function (iter); + } +} + +// --- Function database ------------------------------------------------------- + +// TODO: a global variable storing the various procedures (db) +// XXX: defining procedures would ideally need some kind of an ACL + +static void +read_db (void) +{ + // TODO +} + +static void +write_db (void) +{ + // TODO +} + +// --- Main -------------------------------------------------------------------- + +static char *g_prefix; + +struct user_info +{ + char *ctx; ///< Context: channel or user + char *ctx_quote; ///< Reply quotation +}; + +defn (fn_dot) +{ + check_stack (1); + struct item *item = pop (ctx); + struct user_info *info = ctx->user_data; + + struct buffer buf = BUFFER_INITIALIZER; + item_to_str (item, &buf); + item_free (item); + buffer_append_c (&buf, '\0'); + if (buf.memory_failure) + { + ctx->memory_failure = true; + return false; + } + + if (buf.len > 255) + buf.s[255] = '\0'; + + printf ("PRIVMSG %s :%s%s\r\n", info->ctx, info->ctx_quote, buf.s); + free (buf.s); + return true; +} + +static void +process_message (struct message *msg) +{ + if (!msg->prefix + || strcasecmp (msg->command, "PRIVMSG") + || msg->n_params < 2) + return; + char *line = msg->params[1]; + + // Filter out only our commands + size_t prefix_len = strlen (g_prefix); + if (strncmp (line, g_prefix, prefix_len)) + return; + line += prefix_len; + + char *command = cut_word (&line); + if (strcasecmp (command, "script")) + return; + + // Retrieve information on how to respond back + char *msg_ctx = msg->prefix, *x; + if ((x = strchr (msg_ctx, '!'))) + *x = '\0'; + + char *msg_ctx_quote; + if (strchr ("#+&!", *msg->params[0])) + { + msg_ctx_quote = strdup_printf ("%s: ", msg_ctx); + msg_ctx = msg->params[0]; + } + else + msg_ctx_quote = strdup (""); + + if (!msg_ctx_quote) + { + printf (BOT_PRINT "%s\r\n", "memory allocation failure"); + return; + } + + struct user_info info; + info.ctx = msg_ctx; + info.ctx_quote = msg_ctx_quote; + + // Finally parse and execute the macro + const char *error = NULL; + struct item *script = parse (line, &error); + if (error) + { + printf ("PRIVMSG %s :%s%s: %s\r\n", + msg_ctx, msg_ctx_quote, "parse error", error); + goto end; + } + + struct context ctx; + context_init (&ctx); + ctx.user_data = &info; + execute (&ctx, script); + item_free_list (script); + + const char *failure = NULL; + if (ctx.memory_failure) + failure = "memory allocation failure"; + else if (ctx.error) + failure = ctx.error; + if (failure) + printf ("PRIVMSG %s :%s%s: %s\r\n", + msg_ctx, msg_ctx_quote, "runtime error", failure); + context_free (&ctx); +end: + free (msg_ctx_quote); +} + +int +main (int argc, char *argv[]) +{ + freopen (NULL, "rb", stdin); setvbuf (stdin, NULL, _IOLBF, BUFSIZ); + freopen (NULL, "wb", stdout); setvbuf (stdout, NULL, _IOLBF, BUFSIZ); + + struct rlimit limit = + { + .rlim_cur = ADDRESS_SPACE_LIMIT, + .rlim_max = ADDRESS_SPACE_LIMIT + }; + + // Lower the memory limits to something sensible to prevent abuse + (void) setrlimit (RLIMIT_AS, &limit); + + read_db (); + if (!init_runtime_library () + || !register_handler (".", fn_dot)) + printf (BOT_PRINT "%s\r\n", "runtime library initialization failed"); + + g_prefix = strdup (get_config ("prefix")); + printf ("ZYKLONB register\r\n"); + struct message *msg; + while ((msg = read_message ())) + process_message (msg); + + free_runtime_library (); + free (g_prefix); + return 0; +} + diff --git a/samples/C/pqiv.h b/samples/C/pqiv.h new file mode 100644 index 00000000..ea535125 --- /dev/null +++ b/samples/C/pqiv.h @@ -0,0 +1,166 @@ +/** + * pqiv + * + * Copyright (c) 2013-2014, Phillip Berndt + * + * This program 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, either version 3 of the License, or + * (at your option) any later version. + * This program 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 this program. If not, see . + * + */ + +// This file contains the definition of files, image types and +// the plugin infrastructure. It should be included in file type +// handlers. + +#ifndef _PQIV_H_INCLUDED +#define _PQIV_H_INCLUDED + +#include +#include +#include +#include "lib/bostree.h" + +#ifndef PQIV_VERSION +#define PQIV_VERSION "2.3" +#endif + +#define FILE_FLAGS_ANIMATION (guint)(1) +#define FILE_FLAGS_MEMORY_IMAGE (guint)(1<<1) + +// The structure for images {{{ +typedef struct file_type_handler_struct_t file_type_handler_t; +typedef struct { + // File type + const file_type_handler_t *file_type; + + // Special flags + // FILE_FLAGS_ANIMATION -> Animation functions are invoked + // Set by file type handlers + // FILE_FLAGS_MEMORY_IMAGE -> File lives in memory + guint file_flags; + + // The file name to display and to sort by + gchar *display_name; + + // The URI or file name of the file + gchar *file_name; + + // If the file is a memory image, the actual image data + GBytes *file_data; + + // The file monitor structure is used for inotify-watching of + // the files + GFileMonitor *file_monitor; + + // This flag stores whether this image is currently loaded + // and valid. i.e. if it is set, you can assume that + // private_data contains a representation of the image; + // if not, you can NOT assume that it does not. + gboolean is_loaded; + + // Cached image size + guint width; + guint height; + + // File-type specific data, allocated and freed by the file type handlers + void *private; +} file_t; +// }}} +// Definition of the built-in file types {{{ + +// If you want to implement your own file type, you'll have to implement the +// following functions and a non-static initialization function named +// file_type_NAME_initializer that fills a file_type_handler_t with pointers to +// the functions. Store the file in backends/NAME.c and adjust the Makefile to +// add the required libraries if your backend is listed in the $(BACKENDS) +// variable. + +typedef enum { PARAMETER, RECURSION, INOTIFY, BROWSE_ORIGINAL_PARAMETER, FILTER_OUTPUT } load_images_state_t; +// Allocation function: Allocate the ->private structure within a file and add the +// image(s) to the list of available images via load_images_handle_parameter_add_file() +// If an image is not to be loaded for any reason, the file structure should be +// deallocated using file_free() +// Returns a pointer to the first added image +// Optional, you can also set the pointer to this function to NULL. +typedef BOSNode *(*file_type_alloc_fn_t)(load_images_state_t state, file_t *file); + +// Deallocation, if a file is removed from the images list. Free the ->private structure. +// Only called if ->private is non-NULL. +typedef void (*file_type_free_fn_t)(file_t *file); + +// Actually load a file into memory +typedef void (*file_type_load_fn_t)(file_t *file, GInputStream *data, GError **error_pointer); + +// Unload a file +typedef void (*file_type_unload_fn_t)(file_t *file); + +// Animation support: Initialize memory for animations, return ms until first frame +// Optional, you can also set the pointer to this function to NULL. +typedef double (*file_type_animation_initialize_fn_t)(file_t *file); + +// Animation support: Advance to the next frame, return ms until next frame +// Optional, you can also set the pointer to this function to NULL. +typedef double (*file_type_animation_next_frame_fn_t)(file_t *file); + +// Draw the current view to a cairo context +typedef void (*file_type_draw_fn_t)(file_t *file, cairo_t *cr); + +struct file_type_handler_struct_t { + // All files will be filtered with this filter. If it lets it pass, + // a handler is assigned to a file. If none do, the file is + // discarded if it was found during directory traversal or + // loaded using the first image backend if it was an explicit + // parameter. + GtkFileFilter *file_types_handled; + + // Pointers to the functions defined above + file_type_alloc_fn_t alloc_fn; + file_type_free_fn_t free_fn; + file_type_load_fn_t load_fn; + file_type_unload_fn_t unload_fn; + file_type_animation_initialize_fn_t animation_initialize_fn; + file_type_animation_next_frame_fn_t animation_next_frame_fn; + file_type_draw_fn_t draw_fn; +}; + +// Initialization function: Tell pqiv about a backend +typedef void (*file_type_initializer_fn_t)(file_type_handler_t *info); + +// pqiv symbols available to plugins {{{ + +// Global cancellable that should be used for every i/o operation +extern GCancellable *image_loader_cancellable; + +// Current scale level. For backends that don't support cairo natively. +extern gdouble current_scale_level; + +// Load a file from disc/memory/network +GInputStream *image_loader_stream_file(file_t *file, GError **error_pointer); + +// Add a file to the list of loaded files +// Should be called at least once in a file_type_alloc_fn_t, with the state being +// forwarded unaltered. +BOSNode *load_images_handle_parameter_add_file(load_images_state_t state, file_t *file); + +// Load all data from an input stream into memory, conveinience function +GBytes *g_input_stream_read_completely(GInputStream *input_stream, GCancellable *cancellable, GError **error_pointer); + +// Free a file +void file_free(file_t *file); + +// }}} + +// File type handlers, used in the initializer and file type guessing +extern file_type_handler_t file_type_handlers[]; + +/* }}} */ + +#endif diff --git a/samples/Chapel/distributions.chpl b/samples/Chapel/distributions.chpl index a3e5f81d..31040c92 100644 --- a/samples/Chapel/distributions.chpl +++ b/samples/Chapel/distributions.chpl @@ -58,6 +58,34 @@ var BA: [BlockSpace] int; forall ba in BA do ba = here.id; +// +// The 'hasSingleLocalSubdomain' method on arrays will return true if the +// index set for a locale can be represented by a single domain. +// +if !BA.hasSingleLocalSubdomain() then + halt("For a Block distribution, the index set per locale should be \ + represented by a single domain"); + +// +// If the distribution's subdomains can be represented as single subdomain, +// we can use the 'localSubdomain' method to get the index set for the +// current locale. +// +// Below, we'll use the index set to confirm that the array elements have the +// correct locale id. +// + +for L in Locales { + on L { + const indices = BA.localSubdomain(); + for i in indices { + if BA[i] != L.id then + halt("Error: incorrect locale id"); + } + } +} + + // // Output the Block-distributed array to visually see how the elements // are partitioned across the locales. @@ -104,6 +132,14 @@ writeln("Block Array Index Map"); writeln(BA2); writeln(); +// +// We can use the 'targetLocales' method available on an array to get the +// locales array used as targets. +// +for (L, ML) in zip(BA2.targetLocales(), MyLocales) do + if L != ML then + halt("Error: BA2.targetLocales() should equal MyLocales"); + // @@ -126,6 +162,18 @@ writeln("Cyclic Array Index Map"); writeln(CA); writeln(); +// +// The domain returned by 'localSubdomain' need not be a dense block, as is +// the case for the Cyclic Distribution. +// +on Locales[0] { + const indices = CA.localSubdomain(); + for i in indices { + if CA[i] != 0 then + halt("Error: Cyclic array values on Locale 0 should be zero"); + } +} + // // Next, we'll declare a Block-Cyclic distribution. These @@ -134,7 +182,7 @@ writeln(); // of indices. Thus, the BlockCyclic distribution is parameterized // by a starting index (as with Cyclic) and a block size (per // dimension) specifying how large the chunks to be dealt out are. -// +// const BlkCycSpace = Space dmapped BlockCyclic(startIdx=Space.low, blocksize=(2, 3)); var BCA: [BlkCycSpace] int; @@ -146,6 +194,46 @@ writeln("Block-Cyclic Array Index Map"); writeln(BCA); writeln(); +// +// A locale's index set for a Block-Cyclic distribution cannot be represented +// by a single subdomain. +// +if BCA.hasSingleLocalSubdomain() then + halt("A Block-Cyclic index set cannot be represented by a single subdomain"); + +// +// If the local index set cannot be represented by a single subdomain, +// we can use the 'localSubdomains' iterator to yield a number of domains +// that represent the whole index set. +// +// Let's write a function that will use 'localSubdomains' to verify the +// correctness of the array values. +// + +proc verifyID(Data: []) { + for L in Locales { + on L { + for indices in Data.localSubdomains() { + for i in indices { + if Data[i] != L.id then + halt("Error: incorrect locale id"); + } + } + } + } +} +verifyID(BCA); + +// +// The 'localSubdomains' iterator is also available on distributions that +// can represent a locale's index set with a single domain. This allows us to +// write more general code that will work for all distributions. +// +// This means that we can call the 'verifyID' function on any array, like the +// 'BA' array from earlier. +// +verifyID(BA); + // // The ReplicatedDist distribution is different: each of the diff --git a/samples/Chapel/lulesh.chpl b/samples/Chapel/lulesh.chpl index d6480d26..78dab00d 100644 --- a/samples/Chapel/lulesh.chpl +++ b/samples/Chapel/lulesh.chpl @@ -292,14 +292,14 @@ proc main() { LagrangeLeapFrog(); if debug { - // deprint("[[ Forces ]]", fx, fy, fz); + deprintatomic("[[ Forces ]]", fx, fy, fz); deprint("[[ Positions ]]", x, y, z); deprint("[[ p, e, q ]]", p, e, q); } if showProgress then - writeln("time = ", format("%e", time), ", dt=", format("%e", deltatime), - if doTiming then ", elapsed = " + (getCurrentTime()-iterTime) - else ""); + writef("time = %er, dt=%er, %s", time, deltatime, + if doTiming then ", elapsed = " + (getCurrentTime()-iterTime) +"\n" + else "\n"); } if (cycle == maxcycles) { writeln("Stopped early due to reaching maxnumsteps"); @@ -314,12 +314,10 @@ proc main() { if printCoords { var outfile = open("coords.out", iomode.cw); var writer = outfile.writer(); - var fmtstr = if debug then "%1.9e" else "%1.4e"; - for i in Nodes { - writer.writeln(format(fmtstr, x[i]), " ", - format(fmtstr, y[i]), " ", - format(fmtstr, z[i])); - } + var fmtstr = if debug then "%1.9re %1.9er %1.9er\n" + else "%1.4er %1.4er %1.4er\n"; + for i in Nodes do + writer.writef(fmtstr, x[i], y[i], z[i]); writer.close(); outfile.close(); } @@ -479,7 +477,7 @@ inline proc localizeNeighborNodes(eli: index(Elems), y: [] real, ref y_local: 8*real, z: [] real, ref z_local: 8*real) { - for param i in 1..nodesPerElem { + for i in 1..nodesPerElem { const noi = elemToNode[eli][i]; x_local[i] = x[noi]; @@ -670,7 +668,7 @@ proc SumElemStressesToNodeForces(b_x: 8*real, b_y: 8*real, b_z: 8*real, ref fx: 8*real, ref fy: 8*real, ref fz: 8*real) { - for param i in 1..8 { + for i in 1..8 { fx[i] = -(stress_xx * b_x[i]); fy[i] = -(stress_yy * b_y[i]); fz[i] = -(stress_zz * b_z[i]); @@ -725,17 +723,17 @@ inline proc CalcElemFBHourglassForce(xd: 8*real, yd: 8*real, zd: 8*real, var hx, hy, hz: 4*real; // reduction - for param i in 1..4 { - for param j in 1..8 { + for i in 1..4 { + for j in 1..8 { hx[i] += hourgam[j][i] * xd[j]; hy[i] += hourgam[j][i] * yd[j]; hz[i] += hourgam[j][i] * zd[j]; } } - for param i in 1..8 { + for i in 1..8 { var shx, shy, shz: real; - for param j in 1..4 { + for j in 1..4 { shx += hourgam[i][j] * hx[j]; shy += hourgam[i][j] * hy[j]; shz += hourgam[i][j] * hz[j]; @@ -1088,16 +1086,16 @@ proc CalcFBHourglassForceForElems(determ, x8n, y8n, z8n, dvdx, dvdy, dvdz) { /* TODO: Can we enable this local block? */ // local { - for param i in 1..4 { + for i in 1..4 { var hourmodx, hourmody, hourmodz: real; // reduction - for param j in 1..8 { + for j in 1..8 { hourmodx += x8n[eli][j] * gammaCoef[i][j]; hourmody += y8n[eli][j] * gammaCoef[i][j]; hourmodz += z8n[eli][j] * gammaCoef[i][j]; } - for param j in 1..8 { + for j in 1..8 { hourgam[j][i] = gammaCoef[i][j] - volinv * (dvdx[eli][j] * hourmodx + dvdy[eli][j] * hourmody + @@ -1221,7 +1219,7 @@ proc CalcKinematicsForElems(dxx, dyy, dzz, const dt: real) { arealg[k] = CalcElemCharacteristicLength(x_local, y_local, z_local, volume); - for param i in 1..8 { + for i in 1..8 { x_local[i] -= dt2 * xd_local[i]; y_local[i] -= dt2 * yd_local[i]; z_local[i] -= dt2 * zd_local[i]; @@ -1669,7 +1667,7 @@ proc CalcSoundSpeedForElems(vnewc, rho0:real, enewc, pnewc, pbvc, bvc) { iter elemToNodes(elem) { - for param i in 1..nodesPerElem do + for i in 1..nodesPerElem do yield elemToNode[elem][i]; } @@ -1679,14 +1677,19 @@ iter elemToNodesTuple(e) { } -proc deprint(title:string, x:[?D] real, y:[D]real, z:[D]real) { +proc deprint(title:string, x:[?D] real, y:[D] real, z:[D] real) { writeln(title); - for i in D { - writeln(format("%3d", i), ": ", - format("%3.4e", x[i]), " ", - format("%3.4e", y[i]), " ", - format("%3.4e", z[i])); - } + for i in D do + writef("%3i: %3.4er %3.4er %3.4er\n", + if use3DRepresentation then idx3DTo1D(i, D.dim(1).size) else i, + x[i], y[i], z[i]); } +proc deprintatomic(title:string, x:[?D] atomic real, y:[] atomic real, z:[] atomic real) { + writeln(title); + for i in D do + writef("%3i: %3.4er %3.4er %3.4er\n", + if use3DRepresentation then idx3DTo1D(i, D.dim(1).size) else i, + x[i].peek(), y[i].peek(), z[i].peek()); +} diff --git a/samples/Charity/example.ch b/samples/Charity/example.ch new file mode 100644 index 00000000..d3ee289b --- /dev/null +++ b/samples/Charity/example.ch @@ -0,0 +1,6 @@ +% +% Some very badly written Charity +% + +data LA(A) -> D = ss: A -> D + | ff: -> D. diff --git a/samples/Clarion/CStringClass.clw b/samples/Clarion/CStringClass.clw new file mode 100644 index 00000000..7fa3ba98 --- /dev/null +++ b/samples/Clarion/CStringClass.clw @@ -0,0 +1,172 @@ + Member() + omit('***$***',_VER_C55) +_ABCDllMode_ EQUATE(0) +_ABCLinkMode_ EQUATE(1) + ***$*** + Include('Equates.CLW'),ONCE + Include('Keycodes.CLW'),ONCE + Include('Errors.CLW'),ONCE + Map + End ! map + Include('CStringClass.inc'),ONCE +CStringClass.Construct PROCEDURE ! Declare Procedure + CODE + SELF.bufferSize = DEFAULT_CS_BUFFER_SIZE + SELF.CS &= New(CSTRING(SELF.bufferSize)) +CStringClass.Destruct PROCEDURE ! Declare Procedure + CODE + Dispose(SELF.cs) +CStringClass.Cat PROCEDURE (STRING pStr) !,*CSTRING,PROC ! Declare Procedure +newLen LONG,AUTO +oldCS &CSTRING + CODE + newLen = Len(pStr) + IF (newLen+SELF.strLength+2) > SELF.newStrSize + ! Only grow the internal string if the result of the cat will be larger than the string currently is. + ! The reason for the "+2" is because this is used in the string slicing outside this IF. Without this matching +2 there is potential for an out of bounds slice which would be bad! + + ! Save a temporary copy of the old string so we can us it in the concatination after we have grown it! + oldCS &= New(CSTRING(SELF.strLength+1)) + oldCS = SELF.CS + Dispose(SELF.CS) + + SELF.newStrSize = newLen + SELF.strLength + 1 + SELF.bufferSize + SELF.CS &= New(CSTRING(SELF.newStrSize)) + SELF.CS = oldCS + Dispose(oldCS) + END + + ! Append the new string directly to the end of the old one. + SELF.CS[SELF.strLength+1 : SELF.strLength+newLen] = pStr + ! And terminate the CSTRING manually + SELF.CS[SELF.strLength+newLen+1] = '<0>' + + ! This is the same as doing "SELF.strLength = Len(SELF.CS)" but the Len() is _really_ slow on large strings. This is much faster! + SELF.strLength += newLen + + ! This is what it used to be: + ! SELF.Str(SELF.Str() & s) + ! It is a nice and neat solution but performance, especially on large strings was terrible! + + RETURN SELF.Str() +CStringClass.Str PROCEDURE (STRING pStr) !,*CSTRING, PROC ! Declare Procedure + CODE + IF Len(pStr) > SELF.newStrSize + ! Only Dispose/New the internal string if the new one requires it. + ! This might be slightly innefficient in terms of memory usage when the string gets smaller + ! But it is _vasty_ better for performance when the string gets added to a lot. + Dispose(SELF.CS) + SELF.newStrSize = Len(pStr) + 1 + SELF.bufferSize + SELF.CS &= New(CSTRING(SELF.newStrSize)) + END + + SELF.CS = pStr + SELF.strLength = Len(SELF.CS) + + RETURN SELF.CS +CStringClass.Len PROCEDURE !,LONG ! Declare Procedure + CODE + RETURN SELF.strLength +CStringClass.Replace PROCEDURE (STRING pFind, STRING pReplace) !,*CSTRING,PROC ! Declare Procedure +! FindString , ReplaceWith +locate LONG,AUTO +lastLocate LONG + CODE + LOOP + locate = InString(Upper(pFind), Upper(SELF.Str()), 1, lastLocate+1) + IF ~locate + BREAK + END + + ! So we dont end up having recursive replacement. + lastLocate = locate + Len(pReplace)-1 + + SELF.Str(Sub(SELF.Str(), 1, locate-1) & | + pReplace & | + Sub(SELF.Str(), locate+Len(pFind), SELF.Len()) | + ) + END + + RETURN SELF.Str() +CStringClass.Str PROCEDURE () !,*CSTRING ! Declare Procedure 3 + CODE + RETURN SELF.CS +!------------------------------------------------------------------------------ +CStringClass.Contains PROCEDURE (STRING pFind, BYTE pCaseSensitive=TRUE) !,BYTE ! Declare Procedure +! Returns a value (TRUE) indicating whether the specified String occurs within this string. +! Second parameter defaults to a case sensitive search. + CODE + IF pCaseSensitive = TRUE + IF InString(pFind, SELF.Str(), 1 , 1) > 0 + RETURN TRUE + END + ELSE + IF InString(Lower(pFind), SELF.Lower(), 1 , 1) > 0 + RETURN TRUE + END + END + + RETURN FALSE +CStringClass.Lower PROCEDURE () !,STRING ! Declare Procedure +! Returns a "Lowered" version of the self.cs doesnt change the self.cs + CODE + RETURN Lower(SELF.CS) +CStringClass.SubString PROCEDURE (LONG pPosition, LONG pLength) !,STRING,PROC ! Declare Procedure + CODE + RETURN Sub(SELF.Str(), pPosition, pLength) +CStringClass.ToLower PROCEDURE () !,*CSTRING,PROC ! Declare Procedure +! Converts this string to lowercase and returns the converted string + + CODE + RETURN SELF.Str(SELF.Lower()) +CStringClass.ToUpper PROCEDURE () !,*CSTRING,PROC ! Declare Procedure +! Converts this string to uppercase and returns the converted string + + CODE + RETURN SELF.Str(SELF.Upper()) +CStringClass.Trim PROCEDURE () !,*CSTRING,PROC ! Declare Procedure + CODE + SELF.Str(Left(SELF.Str())) + SELF.Str(Clip(SELF.Str())) + RETURN SELF.Str() +CStringClass.Upper PROCEDURE () !,STRING ! Declare Procedure + CODE + RETURN Upper(SELF.Str()) +CStringClass.IndexOf PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) !,LONG ! Declare Procedure +! Returns the index of the first parameter (pLookIn) is found within the SELF.CS +! zero if it is not found + CODE + IF pCaseSensitive = TRUE + RETURN InString(SELF.Str(), pLookIn, 1 , 1) + ELSE + RETURN InString(SELF.Lower(), Lower(pLookIn), 1 , 1) + END +CStringClass.FoundIn PROCEDURE (STRING pLookIn, BYTE pCaseSensitive=TRUE) !,BYTE ! Declare Procedure +! Returns TRUE if the first parameter (pLookIn) is found within the SELF.CS +! FALSE if it is no + CODE + IF SELF.IndexOf(pLookIn, pCaseSensitive) > 0 + RETURN TRUE + ELSE + RETURN FALSE + END +CStringClass.SetBuffer PROCEDURE (LONG pNewBuffer) ! Declare Procedure + CODE + SELF.bufferSize = pNewBuffer +CStringClass.EscapeXml PROCEDURE () !,STRING ! Declare Procedure +CS CStringClass + CODE + IF Omitted(pStr)=FALSE + CS.Str(pStr) + ELSE + ! Make a copy so we don't alter the original + CS.Str(SELF.Str()) + END + CS.Replace('&', '&') + CS.Replace('<', '<') + CS.Replace('>', '>') + CS.Replace('"', '"') + CS.Replace('''', ''') + + RETURN CS.Str() + diff --git a/samples/Clarion/ConsoleSupport.clw b/samples/Clarion/ConsoleSupport.clw new file mode 100644 index 00000000..c7eac1e1 --- /dev/null +++ b/samples/Clarion/ConsoleSupport.clw @@ -0,0 +1,68 @@ + Member() + Include('ConsoleSupport.inc'),ONCE + Map + MODULE('32-bit Windows API') + ! General functions + GetLastError(),DWORD,PASCAL + + ! Console functions + GetStdHandle(DWORD),HANDLE,PASCAL,PROC,RAW + WriteConsole(Handle,Long,Dword,long,long),bool,Raw,Pascal,name('WriteConsoleA') + ReadConsole(Handle,Long,Dword,long,long),bool,Raw,Pascal,name('ReadConsoleA') + SetConsoleTitle(Long),Bool,Raw,Pascal,name('SetConsoleTitleA') + GetConsoleTitle(Long,dword),Bool,Raw,Pascal,name('GetConsoleTitleA') + SetConsoleMode(Handle,dWord),BOOL,RAW,PASCAL + GetConsoleMode(Handle,Long),BOOL,RAW,PASCAL + End + End + +ConsoleSupport.Construct PROCEDURE + + CODE + +ConsoleSupport.Destruct PROCEDURE + + CODE + +ConsoleSupport.Init PROCEDURE () !,BYTE,VIRTUAL + CODE + + SELF.OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE) + If SELF.OutputHandle = INVALID_HANDLE_VALUE + Halt(1,'Unable to get output handle (' & GetLastError() & ')') + RETURN INVALID_HANDLE_VALUE + End + + SELF.InputHandle = GetStdHandle(STD_INPUT_HANDLE) + if SELF.InputHandle = INVALID_HANDLE_VALUE + Halt(2,'Unable to get console input handle (' & GetLastError() & ')') + RETURN INVALID_HANDLE_VALUE + End + + If ~SetConsoleMode(SELF.InputHandle,ENABLE_PROCESSED_INPUT ) + Halt(3,'Unable to set console mode (' & GetLastError() & ')') + RETURN INVALID_OTHER + End + + RETURN FALSE + +ConsoleSupport.WriteLine PROCEDURE (STRING pText) !,BYTE,PROC,VIRTUAL + CODE + SELF.TextBuffer = SELF.Prefix & pText & '<13,10>' + If WriteConsole(SELF.OutputHandle, ADDRESS(SELF.TextBuffer), LEN(SELF.TextBuffer),ADDRESS(SELF.BytesWritten), NULL) = 0 + Halt(4,'WriteConsoleError (' & GetLastError() & ')') + RETURN -1 + End + RETURN FALSE + +Consolesupport.ReadKey PROCEDURE () !,STRING,PROC,VIRTUAL + CODE + SELF.WriteLine('Press any key to continue...') + Clear(SELF.InBuffer) + Loop + IF ReadConsole(SELF.InputHandle,Address(SELF.InBuffer),100,Address(SELF.BytesRead),NULL) = 0 THEN + Halt(5,'Error on read console (' & GetLastError() & ')') + Break + End + Until SELF.BytesRead > 0 + RETURN SELF.InBuffer \ No newline at end of file diff --git a/samples/Clarion/HelloWorld.clw b/samples/Clarion/HelloWorld.clw new file mode 100644 index 00000000..8cad46dc --- /dev/null +++ b/samples/Clarion/HelloWorld.clw @@ -0,0 +1,10 @@ + PROGRAM + + MAP + END + + CODE + + MESSAGE('Hello World!') + + RETURN \ No newline at end of file diff --git a/samples/Clarion/hello.clw b/samples/Clarion/hello.clw new file mode 100644 index 00000000..14328c84 --- /dev/null +++ b/samples/Clarion/hello.clw @@ -0,0 +1,12 @@ + MEMBER() + INCLUDE('HelloClass.inc'),ONCE + MAP + END + +HelloClass.Construct PROCEDURE + CODE +HelloClass.Destruct PROCEDURE() !,VIRTUAL + CODE +HelloClass.SayHello PROCEDURE + CODE + MESSAGE('Hello World!') diff --git a/samples/Clojure/build.boot b/samples/Clojure/build.boot new file mode 100644 index 00000000..6de0bfca --- /dev/null +++ b/samples/Clojure/build.boot @@ -0,0 +1,15 @@ +;; from: https://github.com/boot-clj/boot#configure-task-options + +(set-env! + :source-paths #{"src"} + :dependencies '[[me.raynes/conch "0.8.0"]]) + +(task-options! + pom {:project 'my-project + :version "0.1.0"} + jar {:manifest {"Foo" "bar"}}) + +(deftask build + "Build my project." + [] + (comp (pom) (jar) (install))) diff --git a/samples/Common Lisp/array.l b/samples/Common Lisp/array.l new file mode 100644 index 00000000..a64ac178 --- /dev/null +++ b/samples/Common Lisp/array.l @@ -0,0 +1,164 @@ +;;; -*- Mode: Lisp; Package: LISP -*- +;;; +;;; This file is part of xyzzy. +;;; + +(provide "array") + +(in-package "lisp") + +(export '(make-vector make-array vector array-dimensions array-in-bounds-p + upgraded-array-element-type adjust-array)) + +(defun upgraded-array-element-type (type) + (cond ((or (eq type 't) + (null type)) + 't) + ((member type '(character base-character standard-char + extended-character) :test #'eq) + 'character) + (t + (setq type (car (si:canonicalize-type type))) + (cond ((or (eq type 't) + (null type)) + 't) + ((member type '(character base-character standard-char + extended-character) :test #'eq) + 'character) + (t 't))))) + +(defun check-array-initialize-option (ies-p ics-p displaced-to) + (let ((x 0)) + (and ies-p (incf x)) + (and ics-p (incf x)) + (and displaced-to (incf x)) + (when (> x 1) + (error ":initial-element, :initial-contents, :displaced-to")))) + +(defun make-vector (length &key + (element-type t) + (initial-element nil ies-p) + (initial-contents nil ics-p) + fill-pointer + adjustable + displaced-to + (displaced-index-offset 0)) + (setq element-type (upgraded-array-element-type element-type)) + (check-array-initialize-option ies-p ics-p displaced-to) + (let ((vector (si:*make-vector length element-type initial-element adjustable + fill-pointer displaced-to displaced-index-offset))) + (when ics-p + (si:*copy-into-seq vector initial-contents)) + vector)) + +(defun make-array (dimensions &rest rest + &key + (element-type t) + (initial-element nil ies-p) + (initial-contents nil ics-p) + fill-pointer + adjustable + displaced-to + (displaced-index-offset 0)) + (cond ((integerp dimensions) + (apply #'make-vector dimensions rest)) + ((= (length dimensions) 1) + (apply #'make-vector (car dimensions) rest)) + (t + (setq element-type (upgraded-array-element-type element-type)) + (check-array-initialize-option ies-p ics-p displaced-to) + (when fill-pointer + (error ":fill-pointer")) + (let ((array (si:*make-array dimensions element-type + initial-element adjustable + displaced-to displaced-index-offset))) + (when ics-p + (let ((dims (make-list (array-rank array) + :initial-element 0)) + (stack (list initial-contents)) + (rank (1- (array-rank array)))) + (dolist (x dims) + (push (elt (car stack) 0) stack)) + (dotimes (i (array-total-size array)) + (setf (row-major-aref array i) (car stack)) + (do ((x dims (cdr x)) + (j rank (1- j))) + ((null x)) + (pop stack) + (incf (car x)) + (when (< (car x) (array-dimension array j)) + (do ((r (- rank j) (1- r))) + ((< r 0)) + (push (elt (car stack) (nth r dims)) stack)) + (return)) + (setf (car x) 0))))) + array)))) + +(defun vector (&rest list) + (make-vector (length list) :element-type t :initial-contents list)) + +(defun array-dimensions (array) + (do ((i (1- (array-rank array)) (1- i)) + (dims '())) + ((minusp i) dims) + (push (array-dimension array i) dims))) + +(defun array-in-bounds-p (array &rest subscripts) + (let ((r (array-rank array))) + (when (/= r (length subscripts)) + (error "subscripts: ~S" subscripts)) + (do ((i 0 (1+ i)) + (s subscripts (cdr s))) + ((= i r) t) + (unless (<= 0 (car s) (1- (array-dimension array i))) + (return nil))))) + +(defun adjust-array (old-array + dimensions + &rest rest + &key + (element-type nil ets-p) + initial-element + (initial-contents nil ics-p) + (fill-pointer nil fps-p) + displaced-to + displaced-index-offset) + (when (/= (length dimensions) (array-rank old-array)) + (error "?")) + (unless ets-p + (push (array-element-type old-array) rest) + (push :element-type rest)) + (when (adjustable-array-p old-array) + (push t rest) + (push :adjustable rest)) + (cond (fps-p + (unless (array-has-fill-pointer-p old-array) + (error "?"))) + (t + (when (array-has-fill-pointer-p old-array) + (push (fill-pointer old-array) rest) + (push :fill-pointer rest)))) + (when (eq old-array displaced-to) + (error "?")) + (let ((new-array (apply #'make-array dimensions rest))) + (or ics-p displaced-to + (copy-array-partially old-array new-array)) + (cond ((adjustable-array-p old-array) + (si:*replace-array old-array new-array) + old-array) + (t + new-array)))) + +(defun copy-array-partially (src dst) + (let* ((dims (mapcar #'min (array-dimensions src) (array-dimensions dst))) + (r (array-rank src)) + (s (make-list r :initial-element 0))) + (setq r (1- r)) + (dotimes (x (apply #'* dims)) + (setf (apply #'aref dst s) (apply #'aref src s)) + (do ((i r (1- i))) + ((minusp i)) + (incf (nth i s)) + (when (< (nth i s) (nth i dims)) + (return)) + (setf (nth i s) 0))))) diff --git a/samples/Common Lisp/common.l b/samples/Common Lisp/common.l new file mode 100644 index 00000000..d2c8fa35 --- /dev/null +++ b/samples/Common Lisp/common.l @@ -0,0 +1,1201 @@ +;;; common.l +;;; commonLisp features for eus +;;; +;;; Copyright(c)1988, Toshihiro MATSUI, Electrotechnical Laboratory +;;; 1986-Aug +;;; 1987-Feb +;;; 1988-Jun defclass, setf + +(in-package "LISP") + +(list "@(#)$Id: common.l,v 1.1.1.1 2003/11/20 07:46:30 eus Exp $") + +(export '(lisp-implementation-type lisp-implementation-version)) + +(export '(macroexpand prog1 loop unless until + pop push pushnew inc dec incf decf)) + +(export '(defvar defparameter defconstant deflocal + dotimes dolist + do-symbols do-external-symbols do-all-symbols + psetq do do* prog prog* + case classcase otherwise + string alias + caaar caadr cadar cdaar cdadr cddar cdddr + fourth fifth sixth seventh eighth + cadddr cddddr cadddr caaddr cdaddr caddddr + flatten list-insert list-delete adjoin union intersection + set-difference set-exclusive-or rotate-list last copy-tree + copy-list nreconc rassoc acons member assoc subsetp maplist mapcon)) + +(export '(find find-if find-if-not position position-if position-if-not + count count-if count-if-not member-if member-if-not + pairlis make-list make-sequence fill replace + transpose-list + remove remove-if remove-if-not delete delete-if delete-if-not + substitute substitute-if substitute-if-not + nsubstitute nsubstitute-if nsubstitute-if-not + unique remove-duplicates extream + send-super-lexpr send-lexpr send-super send-all resend + send-super* send* + instance instance* + make-instance defclassmethod delete-method + make-class defstruct defclass readtablep copy-readtable + set-syntax-from-char + collect-if collect-instances +)) + +(export '(keywordp constantp functionp vector-class-p + compiled-function-p input-stream-p output-stream-p io-stream-p + special-form-p macro-function)) + +(export '(zerop plusp minusp oddp evenp /= logandc1 logandc2 + ecase every some reduce merge-list merge expt signum + defsetf define-setf-method + setf multiple-value-bind multiple-value-setq pop push)) +(export '(get-internal-run-time list-length values + first second third bye)) + +(export '(rad2deg deg2rad )) + +;; version +(defun lisp-implementation-type () "EusLisp") +(defun lisp-implementation-version () + (format nil + "EusLisp ~A~A for ~A created on ~A(~A)" + (car lisp-implementation-version) + (cdddr lisp-implementation-version) + *OS-VERSION* + (cadr lisp-implementation-version) + (caddr lisp-implementation-version) + )) +(setq euserror nil) +;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; basic macros +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(eval-when (load eval) + +(defun macroexpand (form) + (let ((r (macroexpand2 form))) + (while (and (listp r) (macro-function (car r))) + (setq r (macroexpand2 r))) + r)) + +;(defmacro defun (fname &rest fdef) +; `(progn +; (setq (',fname . function) (cons 'lambda ',fdef)) +; (remprop ',fname 'builtin-function-entry) +; ',fname)) + +(defmacro prog1 (&rest args) + (let ((first (gensym "PROG1"))) + `(let ((,first ,(car args))) + (progn . ,(cdr args)) ,first))) + +(defmacro loop (&rest forms) + (let ((tag (gensym "LOOP"))) + `(block nil (tagbody ,tag ,@forms (go ,tag))))) +(defmacro unless (pred &rest form) + `(when (not ,pred) . ,form)) +(defmacro until (condition &rest forms) + `(while (not ,condition) ,@forms)) +(defmacro pop (s) `(prog1 (car ,s) (setf ,s (cdr ,s)))) +(defmacro push (item place) `(setf ,place (cons ,item ,place))) +(defmacro pushnew (item place &key test test-not key) + `(progn (if (not (member ,item ,place :test ,test :test-not ,test-not + :key ,key)) + (setf ,place (cons ,item ,place))) + nil)) +(defmacro inc (var &optional h) + (if h (setq h (list '+ var h)) (setq h (list '1+ var))) + (list 'setq var h)) +(defmacro dec (var &optional h) + (if h (setq h (list '- var h)) (setq h (list '1- var))) + (list 'setq var h)) +(defmacro incf (var &optional h) + (if h (setq h (list '+ var h)) (setq h (list '1+ var))) + (list 'setf var h)) +(defmacro decf (var &optional h) + (if h (setq h (list '- var h)) (setq h (list '1- var))) + (list 'setf var h)) + +(defmacro defvar (var &optional (init nil) (doc nil)) + (unless (symbolp var) (error 20)) + `(when (eql (send ',var :vtype) 1) + (send ',var :vtype 2) + (if (not (boundp ',var)) + (send ',var :global ,init ,doc )) + ',var)) + +(defmacro deflocal (var &optional (init nil) (doc nil)) + (unless (symbolp var) (error 20)) + `(progn + (send ',var :special ,init ,doc) + ',var)) + +(defmacro defparameter (var init &optional (doc nil)) + (unless (symbolp var) (error 20)) + `(send ',var :global ,init ,doc)) + +(defmacro defconstant (sym val &optional doc) + (unless (symbolp sym) (error 20)) + `(send ',sym :constant ,val ,doc) ) + + +(defmacro dotimes (vars &rest forms) + (let ((endvar (gensym "DOTIMES"))) + `(let ((,(car vars) 0) (,endvar ,(cadr vars))) + (declare (integer ,(car vars) ,endvar)) + (while (< ,(car vars) ,endvar) + ,@forms + (setq ,(car vars) (1+ ,(car vars)))) + ,(caddr vars)))) + +(defmacro dolist (vars &rest forms) + (let ((lists (gensym "DOLIST")) (decl (car forms))) + (if (and (consp decl) (eq (car decl) 'declare)) + (setq forms (cdr forms)) + (setq decl nil)) + `(let ((,(car vars) nil) (,lists ,(cadr vars))) + ,decl + (while ,lists + (setq ,(car vars) (pop ,lists)) + ,@forms) + ,(caddr vars)))) + +(defmacro do-symbols (vars &rest forms) + (let* ((symbols (gensym "DOSYM")) + (v (car vars)) + (pkg (if (cadr vars) (cadr vars) '*package*)) + (pkgv (gensym)) + (i (gensym)) + (size (gensym)) + (svec (gensym)) + ) + `(let* ((,v nil) + (,pkgv (find-package ,pkg)) + (,i 0) + (,svec (,pkgv . intsymvector)) + (,size (length ,svec))) + (while (< ,i ,size) + (setq ,v (elt ,svec ,i)) + (inc ,i) + (when (symbolp ,v) . ,forms)) + ,(caddr vars)))) + +(defmacro do-external-symbols (vars &rest forms) + (let* ((symbols (gensym "DOEXTSYM")) + (v (car vars)) + (pkg (if (cadr vars) (cadr vars) '*package*)) + (pkgv (gensym)) + (i (gensym)) + (size (gensym)) + (svec (gensym)) + ) + `(let* ((,v nil) + (,pkgv (find-package ,pkg)) + (,i 0) + (,svec (,pkgv . symvector)) + (,size (length ,svec))) + (while (< ,i ,size) + (setq ,v (elt ,svec ,i)) + (inc ,i) + (when (symbolp ,v) . ,forms)) + ,(caddr vars)))) + +(defmacro do-all-symbols (var &rest forms) + (let ((apackage (gensym "DOALLSYM"))) + `(dolist (,apackage (list-all-packages) ,(cadr var)) + (do-symbols (,(car var) ,apackage) . ,forms) ) + )) + +(defmacro psetq (&rest varvals) + (let* (vars vals gvars) + (while varvals + (push (pop varvals) vars) + (push (pop varvals) vals) + (push (gensym "PSETQ") gvars)) + (setq vars (nreverse vars) vals (nreverse vals) gvars (nreverse gvars)) + `(let* ,(mapcar #'list gvars vals) + (setq . ,(mapcan #'list vars gvars)) + nil))) + +(defmacro do (vars endtest &rest body) + (let ((decl (car body)) (tag (gensym "DO"))) + (if (and (consp decl) (eq (car decl) 'declare)) + (setq body (cdr body)) + (setq decl nil)) + `(block nil + (let + ,(mapcar + #'(lambda (v) (list (car v) (cadr v))) + vars) + ,decl + (tagbody + ,tag + (if ,(car endtest) (return (progn . ,(cdr endtest)))) + ,@body + (psetq . ,(mapcan #'(lambda (v) (if (cddr v) (list (car v) (caddr v)))) + vars)) + (go ,tag))) ))) + +(defmacro do* (vars endtest &rest body) + (let ((decl (car body)) (tag (gensym "DO*"))) + (if (and (consp decl) (eq (car decl) 'declare)) + (setq body (cdr body)) + (setq decl nil)) + `(block nil + (let* + ,(mapcar + #'(lambda (v) (list (car v) (cadr v))) + vars) + ,decl + (tagbody + ,tag + (if ,(car endtest) (return (progn . ,(cdr endtest)))) + ,@body + (setq . ,(mapcan #'(lambda (v) (if (cddr v) (list (car v) (caddr v)))) + vars)) + (go ,tag))) ))) + + +(defmacro prog (vars &rest body) + `(block nil + (let ,vars + (tagbody ,@body)))) +(defmacro prog* (vars &rest body) + `(block nil + (let* ,vars + (tagbody ,@body)))) + +) +;; +;; case +;; +(eval-when (load eval) +(defun casebody (body) (if (cdr body) (cons 'progn body) (car body))) + +(defun casehead (keyvar head) + (if (atom head) + (if (memq head '(t otherwise)) + t + (list 'eq keyvar (list 'quote head))) + (list 'memq keyvar (list 'quote head)) )) + +(defun case1 (keyvar clauses) + (if (atom clauses) + nil + (list 'if + (casehead keyvar (caar clauses)) + (casebody (cdar clauses)) + (case1 keyvar (cdr clauses)) nil))) + +(defmacro case (key &rest clauses) + (let ((keyvar (gensym "CASE")) (result nil)) + (list 'let (list (list keyvar key)) (case1 keyvar clauses)) + )) + +(defun classcasehead (keyvar head) + (if (memq head '(t otherwise)) + t + (if (atom head) + `(derivedp ,keyvar ,head) + `(or . ,(mapcar #'(lambda (x) `(derivedp ,keyvar ,x)) head))))) + +(defun classcase1 (keyvar clauses) + (if (atom clauses) + nil + (list 'if + (classcasehead keyvar (caar clauses)) + (casebody (cdar clauses)) + (classcase1 keyvar (cdr clauses)) nil))) + +(defmacro classcase (key &rest clauses) + (let ((kv (gensym "CCASE"))) + `(let ((,kv ,key)) ,(classcase1 kv clauses)))) +) + +;; string + +(defun string (x) + (if (stringp x) x + (if (symbolp x) (copy-seq (x . pname)) + (if (numberp x) (format nil "~d" x) + (error x))))) + +; +; more list functions +; +(eval-when (load eval) + (defun alias (new old) (setslot new symbol 'function + (symbol-function old))) + (alias 'list-length 'length) + (alias 'values 'list) + ) + +(eval-when (load eval) +(defun caaar (x) (car (caar x))) +(defun caadr (x) (car (cadr x))) +(defun cadar (x) (car (cdar x))) +(defun cdaar (x) (cdr (caar x))) +(defun cdadr (x) (cdr (cadr x))) +(defun cddar (x) (cdr (cdar x))) +(defun cdddr (x) (cdr (cddr x))) +(alias 'first 'car) +(alias 'second 'cadr) +(alias 'third 'caddr) +(defun fourth (x) (cadr (cddr x))) +(defun fifth (x) (caddr (cddr x))) +(defun sixth (x) (caddr (cdddr x))) +(defun seventh (x) (caddr (cddddr x))) +(defun eighth (x) (cadddr (cddddr x))) +#| +(defun cadddr (x) (car (cdddr x))) +|# +(defun cddddr (x) (cddr (cddr x))) +(defun cadddr (x) (cadr (cddr x))) +(defun caaddr (x) (caar (cddr x))) +(defun cdaddr (x) (cdar (cddr x))) +(defun caddddr (x) (cadr (cdddr x))) +(defun flatten (l &optional accumulator) + (cond + ((null l) accumulator) + ((atom l) (cons l accumulator)) + (t (flatten (car l) + (flatten (cdr l) accumulator)))) ) + +(defun list-insert (item pos list) + "insert item as the pos'th element in list. +if pos is bigger than the length of list, item is nconc'ed at the tail" + (cond ((null list) (list item)) + ((>= pos (length list)) (nconc list (list item))) + ((= pos 0) (cons item list)) + (t (let ((tail (cons item (nthcdr pos list)))) + (rplacd (nthcdr (1- pos) list) tail) + list)))) + +(defun list-delete (lst n) "(lst n) delete nth element of lst" + (if (= n 0) + (setq lst (cdr lst)) + (rplacd (nthcdr (1- n) lst) (nthcdr (1+ n) lst)) ) + lst) + +(defun adjoin (item list &key (test #'eq) (test-not) (key #'identity)) + (if (member item list :test test :test-not test-not :key key) + list + (cons item list))) + +(defun union (list1 list2 &key (test #'eq) (test-not) (key #'identity)) + (let (result) + (dolist (item list1) + (unless (member (funcall key item) result + :test test :test-not test-not :key key) + (setq result (cons item result)))) + (dolist (item list2) + (unless (member (funcall key item) result + :test test :test-not test-not :key key) + (setq result (cons item result)))) + (reverse result))) + +(defun intersection (list1 list2 &key (test #'eq) (test-not) (key #'identity)) + (let (r) + (dolist (item list1) + (if (member (funcall key item) list2 + :test test :test-not test-not :key key) + (setq r (cons item r)))) + r)) + +(defun set-difference (list1 list2 &key (test #'eq) (test-not) + (key #'identity)) + (let (result) + (dolist (l1 list1) + (unless (member (funcall key l1) list2 + :test test :test-not test-not :key key) + (push l1 result))) + (nreverse result))) + +(defun set-exclusive-or (list1 list2 &key (test #'eq) (test-not) + (key #'identity)) + (let (result1 result2) + (dolist (l1 list1) + (setq l1 (funcall key l1)) + (unless (member l1 list2 :test test :test-not test-not :key key) + (push l1 result1))) + (dolist (l2 list2) + (setq l2 (funcall key l2)) + (unless (member l2 list1 :test test :test-not test-not :key key) + (push l2 result2))) + (nconc result1 result2))) + +(defun rotate-list (l) (append (cdr l) (list (car l)))) +(defun last (x) + (while (consp (cdr x)) (setq x (cdr x))) + x) +(defun copy-tree (x) (subst t t x)) +(defun copy-list (x) (nreverse (reverse x))) +(defun nreconc (x y) (nconc (nreverse x) y)) +(defun rassoc (item alist) + (dolist (a alist) + (if (equal item (cdr a)) (return-from rassoc a)))) +(defun acons (key datum alist) (cons (cons key datum) alist)) +(defun member (item list &key key test test-not) + (supermember item list key test test-not)) +(defun assoc (item alist &key key test test-not) + (superassoc item alist key test test-not)) +(defun subsetp (sub super &key key test test-not) + (every #'(lambda (s) (member s super :key key :test test :test-not test-not)) + sub)) +(defun maplist (func arg &rest more-args &aux result) + (if more-args + (let (arglist margs) + (while arg + (setq arglist nil) + (push arg arglist) + (setq arg (cdr arg)) + (setq margs more-args) + (while margs + (push (car margs) arglist) + (setf (car margs) (cdar margs)) + (setq margs (cdr margs)) ) + (push (apply func (nreverse arglist)) result) )) + (while arg + (push (funcall func arg) result) + (setq arg (cdr arg)))) + (nreverse result)) + +(defun mapcon (func arg &rest more-args &aux result) + (if more-args + (let (arglist margs) + (while arg + (setq arglist nil) + (push arg arglist) + (setq arg (cdr arg)) + (setq margs more-args) + (while margs + (push (car margs) arglist) + (setf (car margs) (cdar margs)) + (setq margs (cdr margs)) ) + (setq result (nconc (apply func (nreverse arglist)) result) )) ) + (while arg + (setq result (nconc (funcall func arg) result)) + (setq arg (cdr arg)))) + (nreverse result)) + +(defun find (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) (key #'identity)) + (system::raw-find item seq test test-not key nil nil start end)) +(defun find-if (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-find nil seq nil nil key pred nil start end)) +(defun find-if-not (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-find nil seq nil nil key nil pred start end)) + +(defun position (item seq &key (start 0) (end (length seq)) (count 1) + (test #'eq) (test-not nil) (key #'identity)) + (system::raw-position item seq test test-not key nil nil start end count)) +(defun position-if (pred seq &key (start 0) (end (length seq)) (count 1) (key #'identity)) + (system::raw-position nil seq nil nil key pred nil start end count)) +(defun position-if-not (pred seq &key (start 0) (end (length seq)) (count 1) (key #'identity)) + (system::raw-position nil seq nil nil key nil pred start end count)) + +(defun count (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) (key #'identity)) + (system::raw-count item seq test test-not key nil nil start end)) +(defun count-if (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-count nil seq nil nil key pred nil start end)) +(defun count-if-not (pred seq &key (start 0) (end (length seq)) (key #'identity)) + (system::raw-count nil seq nil nil key nil pred start end)) +(defun member-if (test list &key (key #'identity)) + (while list + (if (funcall test (funcall key (car list))) + (return-from member-if list) + (setq list (cdr list))))) +(defun member-if-not (test list &key (key #'identity)) + (while list + (if (not (funcall test (funcall key (car list))) ) + (return-from member-if-not list) + (setq list (cdr list))))) +(defun collect-if (func seq &aux r) + (dolist (s seq) + (if (funcall func s) (push s r)) ) + (nreverse r) ) +(defun collect-instances (klass list) + (collect-if #'(lambda (i) (derivedp i klass)) (flatten list))) + +(defun pairlis (l1 l2 &optional alist) + (if l1 + (cons (cons (car l1) (car l2)) (pairlis (cdr l1) (cdr l2) alist)) + alist)) + +(defun transpose-list (dlist) + (let (r) + (dotimes (i (length (car dlist))) + (push (mapcar #'(lambda (x) (nth i x)) dlist) r)) + (nreverse r))) + +(defun make-list (leng &key initial-element) + (let (r) + (unless (integerp leng) (error "integer required for length of make-list")) + (dotimes (i leng r) + (push initial-element r)))) + +(defun make-sequence (type size &key initial-element) + (if (or (memq type '(cons list)) (eq type cons)) + (make-list size :initial-element initial-element) + (make-array size :element-type type :initial-element initial-element))) + +(defun fill (seq item &key (start 0) (end (length seq))) + (system::raw-fill seq item start end)) + +(defun replace (dest src &key (start1 0) (end1 (length dest)) + (start2 0) (end2 (length src))) + (let ((result dest) (count (min (- end1 start1) (- end2 start2)))) + (cond ((listp dest) + (setq dest (nthcdr start1 dest)) + (cond ((listp src) + (setq src (nthcdr start2 src)) + (dotimes (c count) + (setq (dest . car) (pop src)) + (pop dest))) + (t + (dotimes (c count) + (setq (dest . car) (aref src start2)) + (inc start2) (pop dest))))) + ((listp src) ; list --> vector + (setq src (nthcdr start2 src)) + (dotimes (c count) + (aset dest start1 (pop src)) + (inc start1))) + (t (system::vector-replace dest src start1 end1 start2 end2))) + result)) + +(defun remove (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::universal-remove item seq test test-not key nil nil start end count)) +(defun remove-if (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::universal-remove nil seq nil nil key pred nil start end count)) +(defun remove-if-not (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::universal-remove nil seq nil nil key nil pred start end count)) + +(defun delete (item seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::raw-delete item seq test test-not key nil nil start end count)) +(defun delete-if (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-delete nil seq nil nil key pred nil start end count)) +(defun delete-if-not (pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-delete nil seq nil nil key nil pred start end count)) + +(defun substitute (newitem olditem seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::raw-substitute newitem olditem seq test test-not key nil nil start end count)) +(defun substitute-if (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-substitute newitem nil seq nil nil key pred nil start end count)) +(defun substitute-if-not (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-substitute newitem nil seq nil nil key nil pred start end count)) + +(defun nsubstitute (newitem olditem seq &key (start 0) (end (length seq)) + (test #'eq) (test-not nil) + (count 1000000) (key #'identity)) + (system::raw-nsubstitute newitem olditem seq test test-not key nil nil start end count)) +(defun nsubstitute-if (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-nsubstitute newitem nil seq nil nil key pred nil start end count)) +(defun nsubstitute-if-not (newitem pred seq &key (start 0) (end (length seq)) + (count 1000000) (key #'identity)) + (system::raw-nsubstitute newitem nil seq nil nil key nil pred start end count)) + +(defun unique (l) + (cond + ((atom (cdr l)) l) + ((memq (car l) (cdr l)) (unique (cdr l))) + (t (cons (car l) (unique (cdr l)))))) + +(defun remove-duplicates (seq &key (test #'eq) (test-not) (key #'identity) + (start 0) (end 1000000)) + (system::raw-remove-duplicates seq test test-not key start end)) + +(defun extream (seq test &optional (key #'identity)) + (if (null seq) + nil + (let* ((ext (elt seq 0)) (p (funcall key ext)) x) + (if (consp seq) + (dolist (v (cdr seq)) + (when (funcall test (funcall key v) p) + (setq ext v + p (funcall key ext))) ) + (dotimes (i (length seq)) + (when (funcall test + (funcall key (setq x (aref seq i))) + p) + (setq ext x + p (funcall key ext)))) ) + ext)) ) +) ;eval-when + + +;;; +;;; equivalent pairs from WINSTON +;;; + +#| +(eval-when (load eval) +(defun coalesce (pairs) (coalesce-aux pairs nil)) +(defun coalesce-aux (pairs classes) + (cond ((null pairs) classes) + (t (coalesce-aux (cdr pairs) + (absorb (car pairs) classes))))) +(defun stick-in (new classes) + (cond ((member new (car classes)) classes) + (t (cons (cons new (car classes)) + (cdr classes))))) +(defun absorb (pair classes) + (cond ((null classes) (list pair)) + ((member (car pair) (car classes)) + (stick-in (cadr pair) classes)) + ((member (cadr pair) (car classes)) + (stick-in (car pair) classes)) + (t (cons (car classes) + (absorb pair (cdr classes)))))) +) ;eval-when ; end of more list functions +|# + + +;;; +;;; LEO functions +;;; +(eval-when (load eval) +(defmacro send-super-lexpr (selector &rest msgs) + (declare (type metaclass class)) + `(apply #'send-message self (class . super) ,selector . ,msgs) + ) +(defmacro send-super* (&rest msgs) + (declare (type metaclass class)) + `(apply #'send-message self (class . super) . ,msgs) + ) +(defmacro send-lexpr (target selector &rest msgs) + `(apply #'send ,target ,selector . ,msgs) + ) +(defmacro send* (&rest msgs) + `(apply #'send . ,msgs) + ) +(defmacro send-super (selector &rest msgs) + (declare (type metaclass class)) + `(send-message self (class . super) ,selector ,@msgs)) + +(defun send-all (receivers &rest mesg) + (mapcar #'(lambda (r) (apply 'send r mesg)) receivers)) + +(defun resend (obj mesg) + (eval (cons 'send (cons obj mesg)))) + +(defmacro instance (cls &rest message) + (if message + (let ((v (gensym "INST"))) + `(let ((,v (instantiate ,cls))) (send ,v ,@message) ,v)) + `(instantiate ,cls))) + +(defmacro instance* (cls &rest message) + (if message + (let ((v (gensym "INST"))) + `(let ((,v (instantiate ,cls))) (send* ,v ,@message) ,v)) + `(instantiate ,cls))) + +(defun make-instance (klass &rest args) + (let ((inst (instantiate klass))) + (while args + (setslot inst klass (string (pop args)) (pop args))) + inst)) + +(defmacro defclassmethod (classname &rest methods) + `(defmethod ,(metaclass-name (class (symbol-value classname))) + . ,methods)) +(defun delete-method (classobj methodname) + (setf (metaclass-methods classobj) + (delete methodname (metaclass-methods classobj) :key #'car)) + (system::method-cache t)) + +;;; +;;; defclass macro (T.Matsui 1988-Jun) +;;; + +(defun make-class (name &key + (super object) + (include object) + (printer nil) + (constructor nil) + (predicate nil) + (copier nil) + ((:metaclass metaklass) nil) + (element-type nil) + (size -1) + ((:slots varlist) nil) + (documentation nil)) + (if (symbolp super) (setq super (symbol-value super))) + (let ((classobj (if (boundp name) (symbol-value name))) + (variables) (types) (forwards) + (etype) (index 0) (accessor) (p)) + (cond ((null (classp classobj)) + (cond + (metaklass) + ((classp metaklass)) + (super (setq metaklass (class super))) + (t (setq metaklass (symbol-value 'metaclass)))) + (setq classobj (instantiate metaklass))) + (t (setq metaklass (class classobj)))) + (setq variables (nreverse (coerce (super . vars) cons)) + types (nreverse (coerce (super . types) cons)) + forwards (nreverse (coerce (super . forwards) cons))) + (dolist (v varlist) + (cond ((consp v) + (if (member (car v) variables) + (error "duplicated object variable name")) + (push (car v) variables) + (setq p (position :type v)) + (push (if p (elt v (1+ p)) t) types) + (setq p (position :forward v)) + (push (if p (elt v (1+ p)) nil) forwards)) + ((symbolp v) + (if (member v variables) + (error "duplicated object variable name")) + (push v variables) + (push t types) + (push nil forwards)) + (t (error "variable name expected for :slots")))) + (setq variables (coerce (nreverse variables) vector) + types (coerce (nreverse types) vector) + forwards (coerce (nreverse forwards) vector)) + (setq etype (cdr (assq element-type + '((:BIT . 1) (:CHAR . 2) (:BYTE . 3) + (:INTEGER . 4) (:FLOAT . 5) (:FOREIGN . 6))))) + (if (null etype) + (setq etype (if (subclassp metaklass vectorclass) + (vectorclass-element-type super) + 0))) + (setq (classobj . name) name + (classobj . vars) variables + (classobj . types) types + (classobj . forwards) forwards + (classobj . super) super) + (if (subclassp metaklass vectorclass) + (setq (classobj . element-type) etype + (classobj . size) size)) + (if (null (classobj . cix)) (enter-class classobj)) +;;;??? +;;; (proclaim (list 'special name)) +;; (set name classobj) +;; (send name :global classobj) + (putprop name documentation :class-documentation) +;; define slot access functions and setf methods for all variables + (setq variables (coerce variables cons)) + (dolist (v variables) + (setq accessor (intern (concatenate string + (string name) "-" (string v)))) + (setf (symbol-function accessor) + `(macro (obj) (list 'slot obj ',name ,index))) + (incf index)) + classobj )) + + +(defmacro defstruct (name &rest slots) + `(progn + (send ',name :global + (make-class ',name :slots ',slots)) + ',name)) + + +(defmacro defclass (name &key slots + (super 'object) + (size -1) + ((:metaclass metaklass) nil) + element-type + documentation + (doc documentation)) + `(progn + (send ',name :global + (make-class ',name + :super ,super + :slots ',slots + :metaclass ,metaklass + :element-type ,element-type + :size ,size + :documentation ,doc) ) + ',name)) + + +;;; +;;; READTABLES +;;; +(eval-when (load eval) +(defun readtablep (x) (derivedp x readtable)) +(defun copy-readtable (&optional (from *readtable*) (to nil)) + (when (null from) (setq from *default-readtable*)) + (when (null to) + (setq to (instantiate readtable)) + (setf (readtable-syntax to) (instantiate string 256) + (readtable-macro to) (instantiate vector 256) + (readtable-dispatch-macro to) (instantiate vector 256))) + (if (or (null (readtablep from)) (null (readtablep to))) + (error "readtable expected")) + (replace (readtable-syntax to) (readtable-syntax from)) + (replace (readtable-macro to) (readtable-macro from)) + (replace (readtable-dispatch-macro to) (readtable-dispatch-macro from)) + (setf (readtable-case to) (readtable-case from)) + to) + +(defun set-syntax-from-char + (to-char from-char &optional (to-readtable *readtable*) + (from-readtable *default-readtable*)) + (let (syn) + (setq syn (aref (readtable-syntax from-readtable) from-char)) + (aset (readtable-syntax to-readtable) to-char syn) + (if (or (eq syn 7) (eq syn 8)) + (aset (readtable-macro to-readtable) to-char + (aref (readtable-macro from-readtable) from-char))) + syn)) +) + + +;; +;; predicates +;; +(eval-when (load eval) +(defun keywordp (sym) + (declare (type symbol sym)) + (and (symbolp sym) (eq (sym . homepkg) *keyword-package*))) + +(defun constantp (obj) + (declare (type symbol obj)) + (if (symbolp obj) + (if (or (keywordp obj) (eq (obj . vtype) 0)) t nil) + (if (listp obj) + (if (eq (car obj) 'quote) t nil) + (if (atom obj) t nil)))) + +(defun functionp (obj) + (cond ((numberp obj) nil) + ((listp obj) + (if (or (memq (car obj) '(lambda lambda-closure))) t nil)) + ((derivedp obj compiled-code) + (eq (compiled-code-type obj) 0)) + ((and (symbolp obj) (fboundp obj)) + (functionp (symbol-function obj))) + (t nil))) + +(defun vector-class-p (p) (derivedp p vectorclass)) +(defun compiled-function-p (x) (derivedp x compiled-code)) +(defun input-stream-p (obj) + (declare (stream obj)) + (or (and (derivedp obj stream) (eq (obj . direction) :input)) + (derivedp obj io-stream))) +(defun output-stream-p (obj) + (declare (stream obj)) + (or (and (derivedp obj stream) (eq (obj . direction) :output)) + (derivedp obj io-stream))) +(defun io-stream-p (obj) (derivedp obj io-stream)) + +(defun special-form-p (s) + (and (symbolp s) + (fboundp s) + (setq s (symbol-function s)) + (compiled-function-p s) + (eq (s . type) 2))) + +(defun macro-function (s) + (and (symbolp s) + (fboundp s) + (setq s (symbol-function s)) + (if (and (compiled-function-p s) + (eq (s . type) 1)) + s + (if (and (listp s) (eq (car s) 'macro)) s nil) + ))) + +(defun zerop (n) (= n 0)) +(defun plusp (n) (> n 0)) +(defun minusp (n) (< n 0)) +(defun oddp (n) (logbitp 0 n)) +(defun evenp (n) (not (logbitp 0 n))) +(defun /= (n1 n2) (not (= n1 n2))) +(defun logandc1 (x y) (logand (lognot x) y)) +(defun logandc2 (x y) (logand x (lognot y))) +(defmacro ecase (&rest x) (cons 'case x)) + +(defun every (pred arg &rest more-args) + (cond ((and (null more-args) (listp arg)) + (while arg (unless (funcall pred (pop arg)) (return-from every nil)))) + (t + (setq arg (cons arg more-args)) + (dotimes (i (length (car arg))) + (unless (apply pred (mapcar #'(lambda (x) (elt x i)) arg)) + (return-from every nil))))) + t) + +(defun some (pred arg &rest more-args &aux result) + (setq arg (cons arg more-args)) + (dotimes (i (length (car arg))) + (if (setq result (apply pred (mapcar #'(lambda (x) (elt x i)) arg))) + (return-from some result))) + nil) +) + +(eval-when (load eval) +(defun reduce (func seq &key (start 0) (end (length seq)) + from-end initial-value) + (let ((length (- end start))) + (when from-end (setq seq (reverse seq))) + (cond + ((and (= length 1) (null initial-value)) (elt seq start)) + ((= length 0) + (if initial-value initial-value (funcall func))) + (t + (unless initial-value + (setq initial-value + (funcall func (elt seq start) (elt seq (inc start)))) + (dec length 2) (inc start)) + (dotimes (i length) + (setq initial-value + (funcall func initial-value (elt seq (+ start i))))) + initial-value)))) + +(defun merge-list (list1 list2 pred key &aux result p1 e1 e2 pp1 pp2) + (while (and list2 (not (funcall pred (funcall key (car list1)) + (funcall key (car list2))))) + (push (pop list2) result)) + (setq result (nreverse result)) + (setq p1 list1) + (while (and list2 (cdr p1)) + (setq e2 (funcall key (car list2))) + (while (and p1 (funcall pred (funcall key (cadr p1)) e2)) (pop p1)) + (when p1 + (setf pp1 (cdr p1) + pp2 (cdr list2) + (cdr p1) list2 + (cdr list2) pp1 + p1 list2 + list2 pp2)) ) + (nconc result list1 list2)) + +(defun merge (result-class seq1 seq2 pred &key (key #'identity)) + (if (and (eq result-class cons) (listp seq1) (listp seq2)) + (merge-list seq1 seq2 pred key) + (let* ((l1 (length seq1)) (l2 (length seq2)) (l (+ l1 l2)) + (result (make-sequence result-class l)) + (i1 0) (i2 0) (j 0) (e1) (e2) (e)) + (while (< j l) + (cond ((>= i1 l1) (setq e (elt seq2 i2)) (inc i2)) + ((>= i2 l2) (setq e (elt seq1 i1)) (inc i1)) + (t (setq e1 (elt seq1 i1) + e2 (elt seq2 i2)) + (if (funcall pred (funcall key e1) (funcall key e2)) + (progn (inc i1) (setq e e1)) + (progn (inc i2) (setq e e2))))) + (setf (elt result j) e) + (inc j)) + result))) +) + + +;; +;; arithmetics aux +;; + +(defun expt (a x) + (cond ((and (integerp x) (>= x 0)) + (if (zerop x) + 1 + (let ((b a) (y 1) (ix (1- x))) + (declare (integer y ix)) + (while (> ix 0) + (cond ((> ix y) + (setq b (* b b) + ix (- ix y) + y (ash y 1))) + (t (setq b (* b a) ix (1- ix))))) + b))) + (t (exp (* x (log a)))))) +(defun signum (x) (if (zerop x) x (/ x (abs x)))) +(defun rad2deg (rad) (/ (* 360.0 rad) 2pi)) +(defun deg2rad (deg) (/ (* 2pi deg) 360.0)) +) + +;;;; (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. +;;;; +;;;; setf routines +;;;; Modified by T.Matsui to be run on euslisp +;;;; 1988-Jun-27 + +;;; DEFSETF macro. +(defmacro defsetf (access-fn &rest rest) + (cond ((and (car rest) (or (symbolp (car rest)) (functionp (car rest)))) + `(progn (putprop ',access-fn ',(car rest) 'setf-update-fn) + (remprop ',access-fn 'setf-lambda) + (remprop ',access-fn 'setf-method) + (putprop ',access-fn + ,(when (not (endp (cdr rest))) + (unless (stringp (cadr rest)) + (error "A doc-string expected.")) + (unless (endp (cddr rest)) + (error "Extra arguments.")) + (cadr rest)) + 'setf-documentation) + ',access-fn)) + (t + (unless (= (list-length (cadr rest)) 1) + (error "(store-variable) expected.")) + `(progn (putprop ',access-fn ',rest 'setf-lambda) + (remprop ',access-fn 'setf-update-fn) + (remprop ',access-fn 'setf-method) +; (putprop ',access-fn +; ,(find-documentation (cddr rest)) +; 'setf-documentation) + ',access-fn)))) + + +;;; DEFINE-SETF-METHOD macro. +(defmacro define-setf-method (access-fn &rest rest) + `(progn (putprop ',access-fn #'(lambda ,@rest) 'setf-method) + (remprop ',access-fn 'setf-lambda) + (remprop ',access-fn 'setf-update-fn) +; (putprop ',access-fn +; ,(find-documentation (cdr rest)) +; 'setf-documentation) + ',access-fn)) + +;;; The expansion function for SETF. +(defun setf-expand-1 (place newvalue) + (let (g) + (setq place (macroexpand place)) + (cond ((and (consp place) (eq (car place) 'the)) + (setf-expand-1 (caddr place) `(the ,(cadr place) ,newvalue))) + ((symbolp place) `(setq ,place ,newvalue)) + ((and (symbolp (car place)) (setq g (get (car place) 'setf-update-fn))) + `(,g ,@(cdr place) ,newvalue)) + ((and (symbolp (car place)) + (setq g (get (car place) 'structure-access)) + (get (car place) 'setf-lambda) + (not (eq (car g) 'list)) + (not (eq (car g) 'vector))) + `(system::structure-set ,(cadr place) ',(car g) ,(cdr g) ,newvalue)) + ((macro-function (car place)) + (setf-expand-1 (macroexpand place) newvalue)) + ((setq g (get (car place) 'setf-lambda)) + (apply (append '(lambda) (list (append (cadr g) (car g))) (cddr g)) + newvalue (cdr place))) +; ((get (car place) 'setf-method) +; (apply (get (car form) 'setf-method) (cdr place))) + (t (error "SETF?"))))) + +(defun setf-expand (l) + (cond ((endp l) nil) + ((endp (cdr l)) (error "~S is an illegal SETF form." l)) + (t + (cons (setf-expand-1 (car l) (cadr l)) + (setf-expand (cddr l)))))) + + +;;; SETF macro. +(defmacro setf (&rest rest) + (cond ((endp rest) nil) + ((endp (cdr rest)) (error "~S is an illegal SETF form." rest)) + ((endp (cddr rest)) (setf-expand-1 (car rest) (cadr rest))) + (t (cons 'progn (setf-expand rest))))) + +;(defmacro incf (form &optional (d 1)) +; `(setf ,form (+ ,form ,d))) +;(defmacro decf (form &optional (d 1)) +; `(setf ,form (- ,form ,d))) + +;;; +;;; MULTI-VALUE simulation macros +;;; +(defmacro multiple-value-bind (vlist init &rest forms) + (let* ((inits (gensym "MULT")) (vilist) (count 0)) + (dolist (v vlist) + (push (list v `(elt ,inits ,count)) vilist) + (inc count)) + `(let* ((,inits ,init) . ,vilist) . ,forms))) + +(defmacro multiple-value-setq (vlist form) + (let ((i 0) (tempvar (gensym "MULT")) setq-forms) + (dolist (v vlist) + (push (list + (second + (assoc i + '((0 first) (1 second) (2 third) + (3 fourth)(4 fifth) (5 sixth) (6 seventh)))) + tempvar) + setq-forms) + (push v setq-forms) + (incf i)) + `(let ((,tempvar ,form)) + (setq . ,setq-forms)))) + +(alias 'values 'list) + +#| +(defun quick-sort (sequence start end predicate key &aux (j 0) (k 0) exch) + (declare (fixnum start end j k)) + (when (<= end (the fixnum (1+ start))) + (return-from quick-sort sequence)) + (setq j start) + (setq k (1- end)) + (do ((d (aref sequence start))) + ((> j k)) + (do () + ((or (> j k) + (funcall predicate + (funcall key (aref sequence k)) + (funcall key d)))) + (decf k)) + (when (< k start) + (quick-sort sequence (1+ start) end predicate key) + (return-from quick-sort sequence)) + (do () + ((or (> j k) + (not (funcall predicate + (funcall key (aref sequence j)) + (funcall key d))))) + (incf j)) + (when (> j k) (return)) + (setf exch (aref sequence k) + (aref sequence k) (aref sequence j) + (aref sequence j) exch) + (incf j) + (decf k)) + (quick-sort sequence start j predicate key) + (quick-sort sequence j end predicate key) + sequence) + +(defun qsort (seq test &optional (key #'identity) &aux (vec nil) (s nil)) + (cond ((null seq) nil) + ((listp seq) + (setq vec (coerce seq vector)) + (quick-sort vec 0 (length seq) test key) + (setq s seq) + (dotimes (i (length vec)) + (rplaca s (aref vec i)) + (setq s (cdr s))) + seq) + ((vectorp seq) + (quick-sort seq 0 (length seq) test key) + seq) )) +|# + +#| +(eval-when (load eval) + (defmacro pop (s) `(prog1 (car ,s) (setf ,s (cdr ,s)))) + (defmacro push (item place) `(setf ,place (cons ,item ,place))) + ) +|# + + diff --git a/samples/Common Lisp/hello.lisp b/samples/Common Lisp/hello.lisp new file mode 100644 index 00000000..642cdd29 --- /dev/null +++ b/samples/Common Lisp/hello.lisp @@ -0,0 +1,2 @@ +(DEFUN HELLO () + (PRINT 'HELLO)) diff --git a/samples/D/mpq.d b/samples/D/mpq.d new file mode 100644 index 00000000..d72c2d2a --- /dev/null +++ b/samples/D/mpq.d @@ -0,0 +1,318 @@ +/* + * mpq.d -- D programming language module for libmpq + * + * Copyright (c) 2008 Georg Lukas + * + * This program 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; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * This module is written to support Phobos. Patches to allow binding to + * Tango are welcome. + */ + +module mpq; + +/* the following pragma does not work on DMD/Linux, generates a warning on + * GDC/Linux and has not been tested on Windows. Commented out for now. */ +// pragma(lib, "libmpq"); + +import std.string; // for format() and toStringz() +import std.traits; // for ParameterTypeTuple!() + +/* XXX: this assumes that libmpq is compiled with Large File Support on */ +alias long off_t; + +/* libmpq error return values */ +const LIBMPQ_ERROR_OPEN = -1; /* open error on file. */ +const LIBMPQ_ERROR_CLOSE = -2; /* close error on file. */ +const LIBMPQ_ERROR_SEEK = -3; /* lseek error on file. */ +const LIBMPQ_ERROR_READ = -4; /* read error on file. */ +const LIBMPQ_ERROR_WRITE = -5; /* write error on file. */ +const LIBMPQ_ERROR_MALLOC = -6; /* memory allocation error. */ +const LIBMPQ_ERROR_FORMAT = -7; /* format errror. */ +const LIBMPQ_ERROR_NOT_INITIALIZED = -8; /* init() wasn't called. */ +const LIBMPQ_ERROR_SIZE = -9; /* buffer size is to small. */ +const LIBMPQ_ERROR_EXIST = -10; /* file or block does not exist in archive. */ +const LIBMPQ_ERROR_DECRYPT = -11; /* we don't know the decryption seed. */ +const LIBMPQ_ERROR_UNPACK = -12; /* error on unpacking file. */ + +/** libmpq internal meta-data for an archive */ +extern struct mpq_archive_s; + +extern(C) { + +/* libmpq__generic information about library. */ +char *libmpq__version(); + +/* libmpq__generic mpq archive information. */ +int libmpq__archive_open(mpq_archive_s **mpq_archive, char *mpq_filename, off_t archive_offset); +int libmpq__archive_close(mpq_archive_s *mpq_archive); +int libmpq__archive_packed_size(mpq_archive_s *mpq_archive, off_t *packed_size); +int libmpq__archive_unpacked_size(mpq_archive_s *mpq_archive, off_t *unpacked_size); +int libmpq__archive_offset(mpq_archive_s *mpq_archive, off_t *offset); +int libmpq__archive_version(mpq_archive_s *mpq_archive, uint *version_); +int libmpq__archive_files(mpq_archive_s *mpq_archive, uint *files); + +/* libmpq__generic file processing functions. */ +int libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint file_number, off_t *packed_size); +int libmpq__file_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, off_t *unpacked_size); +int libmpq__file_offset(mpq_archive_s *mpq_archive, uint file_number, off_t *offset); +int libmpq__file_blocks(mpq_archive_s *mpq_archive, uint file_number, uint *blocks); +int libmpq__file_encrypted(mpq_archive_s *mpq_archive, uint file_number, uint *encrypted); +int libmpq__file_compressed(mpq_archive_s *mpq_archive, uint file_number, uint *compressed); +int libmpq__file_imploded(mpq_archive_s *mpq_archive, uint file_number, uint *imploded); +int libmpq__file_number(mpq_archive_s *mpq_archive, char *filename, uint *number); +int libmpq__file_read(mpq_archive_s *mpq_archive, uint file_number, ubyte *out_buf, off_t out_size, off_t *transferred); + +/* libmpq__generic block processing functions. */ +int libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint file_number); +int libmpq__block_close_offset(mpq_archive_s *mpq_archive, uint file_number); +int libmpq__block_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, uint block_number, off_t *unpacked_size); +int libmpq__block_read(mpq_archive_s *mpq_archive, uint file_number, uint block_number, ubyte *out_buf, off_t out_size, off_t *transferred); + +} + + +/** exception class for failed libmpq calls */ +class MPQException : Exception { + const string[] Errors = [ + "unknown error", + "open error on file", + "close error on file", + "lseek error on file", + "read error on file", + "write error on file", + "memory allocation error", + "format errror", + "init() wasn't called", + "buffer size is to small", + "file or block does not exist in archive", + "we don't know the decryption seed", + "error on unpacking file"]; + + public int errno; + this(char[] fnname = "unknown_function", int errno = 0) { + + this.errno = errno; + if (-errno >= Errors.length) + errno = 0; + super(std.string.format("Error in %s(): %s (%d)", + fnname, Errors[-errno], errno)); + } +} + + +/** template to wrap function calls and throw exceptions in case of error + * + * thanks for the idea to while(nan) blog, + * http://while-nan.blogspot.com/2007/06/wrapping-functions-for-fun-and-profit.html + * + * use: MPQ_CHECKERR(libmpq__archive_open)(&m, "foo.mpq", -1); + * returns the retval of archive_open on success; + * throws an MPQException on failure. + * + * @param Fn libmpq__function reference + * @param args libmpq__function parameters + * @return return value of libmpq__function on success + * @throw MPQException on error + */ +int MPQ_CHECKERR(alias Fn)(ParameterTypeTuple!(Fn) args) +{ + int result = Fn(args); + if (result < 0) { + /* XXX: relying on non-specified stringof() behaviour */ + throw new MPQException((&Fn).stringof[2..$], result); + } + return result; +} + + +/** mixin alias to wrap library functions into MPQ_CHECKERR. + * + * alias mpq.func_name(...) to MPQ_CHECKERR(libmpq__func_name)(...) + * @param func_name name of the function to be wrapped + */ +template MPQ_FUNC(char[] func_name) { + const char[] MPQ_FUNC = "alias MPQ_CHECKERR!(libmpq__" ~ func_name ~ ") " ~ func_name ~ ";"; +} + +alias libmpq__version libversion; /* must be direct alias because it returns char*, not error int */ +mixin(MPQ_FUNC!("archive_open")); +mixin(MPQ_FUNC!("archive_close")); +mixin(MPQ_FUNC!("archive_packed_size")); +mixin(MPQ_FUNC!("archive_unpacked_size")); +mixin(MPQ_FUNC!("archive_offset")); +mixin(MPQ_FUNC!("archive_version")); +mixin(MPQ_FUNC!("archive_files")); +mixin(MPQ_FUNC!("file_packed_size")); +mixin(MPQ_FUNC!("file_unpacked_size")); +mixin(MPQ_FUNC!("file_offset")); +mixin(MPQ_FUNC!("file_blocks")); +mixin(MPQ_FUNC!("file_encrypted")); +mixin(MPQ_FUNC!("file_compressed")); +mixin(MPQ_FUNC!("file_imploded")); +mixin(MPQ_FUNC!("file_number")); +mixin(MPQ_FUNC!("file_read")); +mixin(MPQ_FUNC!("block_open_offset")); +mixin(MPQ_FUNC!("block_close_offset")); +mixin(MPQ_FUNC!("block_unpacked_size")); +mixin(MPQ_FUNC!("block_read")); + +/** getter function named name for returning archive_* single values: + * + * Archive.() { return libmpq__archive_() } + * + * @param type return type for the original function reference + * @param name name of the original function + * @param name2 name for the prototype (defaults to name, used for "version") + * @return getter function mixin + */ +template MPQ_A_GET(char[] type, char[] name, char[] name2 = name) { + const char[] MPQ_A_GET = type ~ " " ~ name2 ~ "() { " ~ + type ~ " ret; " ~ + "archive_" ~ name ~ "(m, &ret); return ret;" ~ + "}"; +} + +/** wrapper class for an MPQ Archive + * + * syntax: auto a = new mpq.Archive("somefile.mpq"); + */ +class Archive { + mpq_archive_s *m; + File listfile; + char[][] listfiledata; + + this(char[] archivename, off_t offset = -1) { + archive_open(&m, toStringz(archivename), offset); + } + + mixin(MPQ_A_GET!("off_t", "packed_size")); + mixin(MPQ_A_GET!("off_t", "unpacked_size")); + mixin(MPQ_A_GET!("off_t", "offset")); + mixin(MPQ_A_GET!("uint", "version", "version_")); + mixin(MPQ_A_GET!("uint", "files")); + + ~this() { + archive_close(m); + } + + mpq_archive_s* archive() { + return m; + } + + File opIndex(char[] fname) { + return new File(this, fname); + } + File opIndex(int fno) { + return new File(this, fno); + } + + char[][] filelist() { + try { + if (!listfile) { + listfile = this["(listfile)"]; + listfiledata = (cast(char[])listfile.read()).splitlines(); + } + return listfiledata; + } catch (MPQException e) { + return []; + } + } + + /+uint filenumber(char[] filename) { + try { + if (!listfile) { + listfile = this["(listfile)"]; + listfiledata = (cast(char[])listfile.read()).splitlines(); + } + return listfiledata; + } catch (MPQException e) { + return []; + } + }+/ + +} + + +/** getter function named name for returning file_* single values: + * + * File.() { return libmpq__file_() } + * + * @param type return type for the original function reference + * @param name name of the original function + * @param name2 name for the prototype (defaults to name, used for "version") + * @return getter function mixin + */ +template MPQ_F_GET(char[] type, char[] name, char[] name2 = name) { + const char[] MPQ_F_GET = type ~ " " ~ name2 ~ "() { " ~ + type ~ " ret; " ~ + "file_" ~ name ~ "(am, fileno, &ret); " ~ + "return ret;" ~ + "}"; +} + +/** wrapper class for a single file in an MPQ Archive + * + * syntax: + * auto a = new mpq.Archive("somefile.mpq"); + * auto f = a["(listfile)"]; + * auto f2 = a[0]; + * auto f3 = new File(a, "(listfile)"); + */ +class File { + Archive a; + mpq_archive_s* am; + char[] filename; + uint fileno; + + this(Archive a, int fileno) { + this.a = a; + this.am = a.archive(); + if (fileno >= a.files) { + throw new MPQException(format("File(%d)", fileno), + LIBMPQ_ERROR_EXIST); + } + this.filename = format("file%04d.xxx", fileno); + this.fileno = fileno; + } + + this(Archive a, char[] filename) { + this.a = a; + this.am = a.archive(); + this.filename = filename; + /* this line will throw an exception when the file is not there */ + mpq.file_number(am, toStringz(filename), &this.fileno); + } + + mixin(MPQ_F_GET!("off_t", "packed_size")); + mixin(MPQ_F_GET!("off_t", "unpacked_size")); + mixin(MPQ_F_GET!("off_t", "offset")); + mixin(MPQ_F_GET!("uint", "blocks")); + mixin(MPQ_F_GET!("uint", "encrypted")); + mixin(MPQ_F_GET!("uint", "compressed")); + mixin(MPQ_F_GET!("uint", "imploded")); + + uint no() { return fileno; } + char[] name() { return filename; } + + ubyte[] read() { + ubyte[] content; + content.length = this.unpacked_size(); + off_t trans; + mpq.file_read(am, fileno, content.ptr, content.length, &trans); + content.length = trans; + return content; + } +} diff --git a/samples/DIGITAL Command Language/fis_gtm_kitinstal.com b/samples/DIGITAL Command Language/fis_gtm_kitinstal.com new file mode 100644 index 00000000..b4701ff9 --- /dev/null +++ b/samples/DIGITAL Command Language/fis_gtm_kitinstal.com @@ -0,0 +1,443 @@ +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! ! +$! Copyright 2001, 2011 Fidelity Information Services, Inc ! +$! ! +$! This source code contains the intellectual property ! +$! of its copyright holder(s), and is made available ! +$! under a license. If you do not know the terms of ! +$! the license, please stop and do not read further. ! +$! ! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! +$! KITINSTAL.COM PROCEDURE FOR THE GT.M PRODUCT +$! +$ ON CONTROL_Y THEN VMI$CALLBACK CONTROL_Y +$! ON WARNING THEN EXIT $STATUS !! allow warning errors for INSTALL REPLACE +$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL +$ IF P1 .EQS. "VMI$_POSTINSTALL" THEN GOTO POSTINSTALL +$ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP +$ EXIT VMI$_UNSUPPORTED +$! +$INSTALL: +$ TYPE SYS$INPUT + + GT.M (c) COPYRIGHT 1985 - 2000 by Sanchez Computer Associates + ALL RIGHTS RESERVED + +$! the following 2 lines must be maintained +$ GTM$VMS_VERSION :== 072 ! Minimum VMS version required +$ ALPHA = (f$getsyi("arch_name") .eqs. "Alpha") +$ IF ALPHA +$ THEN +$ GTM$DISK_SPACE == 28000 ! Minumum disk space on system disk required +$ ELSE +$ GTM$DISK_SPACE == 16000 ! Minumum disk space on system disk required +$ ENDIF +$ IF F$ELEMENT(0,",",VMI$VMS_VERSION) .EQS. "RELEASED" +$ THEN +$ GTM$VMS_IS == F$ELEMENT(1,",",VMI$VMS_VERSION) +$ IF GTM$VMS_IS .LTS. GTM$VMS_VERSION +$ THEN +$ VMI$CALLBACK MESSAGE E VMSMISMATCH "This GT.M kit requires an existing VMS''GTM$VMS_VERSION' system." +$ EXIT VMI$_FAILURE +$ ENDIF +$ ELSE +$ GTM$VMS_IS :== +$ WRITE SYS$OUTPUT " No VMS version checking performed for field test versions." +$ ENDIF +$ IF (GTM$VMS_IS .GES. "052") THEN T1 = F$VERIFY(VMI$KIT_DEBUG) +$ VMI$CALLBACK CHECK_NET_UTILIZATION GTM$ROOM 'GTM$DISK_SPACE' +$ IF .NOT. GTM$ROOM +$ THEN +$ VMI$CALLBACK MESSAGE E NOSPACE "There is not enough disk space -- GT.M needs ''GTM$DISK_SPACE' blocks." +$ EXIT VMI$_FAILURE +$ ENDIF +$! setup default answers +$ GTM$DOPURGE :== YES +$ GTM$RUN_IVP :== YES +$ GTM$STD_CNF :== YES +$ GTM$DST_OWN :== SYSTEM +$ IF F$IDENTIFIER(GTM$DST_OWN,"NAME_TO_NUMBER") .EQ. 0 THEN GTM$DST_OWN :== 1,4 +$ GTM$SYS_DST :== YES +$ GTM$DST_DIR :== GTM_DIST +$ GTM$DST_CRE == GTM$DST_DIR +$ GTM$DST_DEV :== +$ GTM$STARTDB :== YES +$ GTM$MGR_COM :== YES +$ GTM$HLP_DIR :== NO +$ GTM$DEF_DCL :== YES +$ GTM$DEF_SYS :== YES +$ GTM$LNK_LOG :== YES +$ GTM$INSTALL :== YES +$ GTM$DEF_GLD :== YES +$ GTM$GBL_DIR :== MUMPS.GLD +$ GTM$DEF_RTN :== YES +$ GTM$RTN_DIR :== [],GTM$DIST: +$ GTM$PCT_RTN :== YES +$ VMI$CALLBACK ASK GTM$DOPURGE "Do you want to purge files replaced by this installation" 'GTM$DOPURGE' B - + "@VMI$KWD:GTMKITHLP HELP_PURGE" +$ IF .NOT. GTM$DOPURGE THEN VMI$CALLBACK SET PURGE NO +$ VMI$CALLBACK ASK GTM$STD_CNF "Do you want the standard GT.M configuration (performs INSTALL)" 'GTM$STD_CNF' B - + "@VMI$KWD:GTMKITHLP HELP_STD_CNF" +$ IF GTM$STD_CNF +$ THEN +$ GTM$SYS_DST == 1 +$ GTM$STARTDB == 1 +$ GTM$MGR_COM == 1 +$ GTM$HLP_DIR == 0 +$ GTM$DEF_DCL == 1 +$ GTM$DEF_SYS == 1 +$ GTM$INSTALL == 1 +$ GTM$LNK_LOG == 1 +$ GTM$INSTALL == 1 +$ GTM$DEF_GLD == 1 +$ GTM$DEF_RTN == 1 +$ GTM$PCT_RTN == 1 +$ GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] +$ GTM$DIR_TYPE :== COMMON +$ ELSE ! Not standard configuration +$ VMI$CALLBACK ASK GTM$DST_OWN "What UIC should own the GT.M distribution" 'GTM$DST_OWN' S "@VMI$KWD:GTMKITHLP HELP_DST_OWN" +$ GTM$DST_OWN == GTM$DST_OWN - "[" - "]" +$ VMI$CALLBACK ASK GTM$SYS_DST "Do you want the GT.M distribution to go into a System Directory" 'GTM$SYS_DST' B - + "@VMI$KWD:GTMKITHLP HELP_SYS_DST" +$ IF GTM$SYS_DST +$ THEN +$ VMI$CALLBACK ASK GTM$DST_DIR "In what System Directory do you want to place GT.M" 'GTM$DST_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_SYS_DIR" +$ GTM$DST_DIR == GTM$DST_DIR - "[" - "]" +$ GTM$DST_CRE == GTM$DST_DIR +$ GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] +$ GTM$DIR_TYPE :== COMMON +$ ELSE ! Not system disk +$ VMI$CALLBACK ASK GTM$DST_DEV "On which device do you want to place GT.M" "''GTM$DST_DEV'" S "@VMI$KWD:GTMKITHLP HELP_DST_DEV" +$ VMI$CALLBACK ASK GTM$DST_DIR "In what directory on that device do you want to place GT.M" 'GTM$DST_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_DST_DIR" +$ GTM$DST_DEV == GTM$DST_DEV - ":" +$ GTM$DST_DIR == GTM$DST_DIR - "[" - "]" +$ GTM$DST_LOG :== 'GTM$DST_DEV':['GTM$DST_DIR'] +$ GTM$DST_CRE == GTM$DST_LOG +$ GTM$DIR_TYPE :== USER +$ ENDIF ! system disk +$ VMI$CALLBACK ASK GTM$STARTDB "Do you want GTMSTART.COM in the startup database" 'GTM$STARTDB' B - + "@VMI$KWD:GTMKITHLP HELP_STARTDB" +$ IF .NOT. GTM$STARTDB +$ THEN +$ VMI$CALLBACK ASK GTM$MGR_COM "Do you want the GT.M .COM files in SYS$MANAGER" 'GTM$MGR_COM' B - + "@VMI$KWD:GTMKITHLP HELP_MGR_COM" +$ ENDIF +$ VMI$CALLBACK ASK GTM$HLP_DIR "Do you want the GT.M help files in SYS$HELP" 'GTM$HLP_DIR' B "@VMI$KWD:GTMKITHLP HELP_HLP_DIR" +$ VMI$CALLBACK ASK GTM$DEF_DCL "Do you want to define GT.M commands to the system" 'GTM$DEF_DCL' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_DCL" +$ VMI$CALLBACK ASK GTM$DEF_SYS "Do you want to define GT.M logical names in the System Table" 'GTM$DEF_SYS' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_SYS" +$ VMI$CALLBACK ASK GTM$LNK_LOG "Do you want to define the LNK$LIBRARY logical names" 'GTM$LNK_LOG' B - + "@VMI$KWD:GTMKITHLP HELP_LNK_LOG" +$ VMI$CALLBACK ASK GTM$RUN_IVP "Do you want to run the IVP (performs INSTALL)" 'GTM$RUN_IVP' B - + "@VMI$KWD:GTMKITHLP HELP_RUN_IVP" +$ IF GTM$RUN_IVP +$ THEN +$ GTM$PCT_RTN == 1 +$ ELSE +$ VMI$CALLBACK ASK GTM$PCT_RTN "Do you want to compile the GT.M percent routines (performs INSTALL)" 'GTM$PCT_RTN' B - + "@VMI$KWD:GTMKITHLP HELP_PCT_RTN" +$ ENDIF +$ IF (GTM$RUN_IVP .OR. GTM$PCT_RTN) +$ THEN +$ GTM$INSTALL == 1 +$ ELSE +$ VMI$CALLBACK ASK GTM$INSTALL "Do you want to INSTALL the GT.M shareable images now" 'GTM$INSTALL' B - + "@VMI$KWD:GTMKITHLP HELP_INSTALL" +$ ENDIF +$ VMI$CALLBACK ASK GTM$DEF_RTN "Do you want to have a default definition for GTM$ROUTINES" 'GTM$DEF_RTN' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_RTN" +$ IF GTM$DEF_RTN +$ THEN +$ VMI$CALLBACK ASK GTM$RTN_DIR "What is the search specification for GTM$ROUTINES" 'GTM$RTN_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_RTN_DIR" +$ ENDIF +$ VMI$CALLBACK ASK GTM$DEF_GLD "Do you want to have a default definition for GTM$GBLDIR" 'GTM$DEF_GLD' B - + "@VMI$KWD:GTMKITHLP HELP_DEF_GLD" +$ IF GTM$DEF_GLD +$ THEN +$ VMI$CALLBACK ASK GTM$GBL_DIR "What is the file specification for GTM$GBLDIR" 'GTM$GBL_DIR' S - + "@VMI$KWD:GTMKITHLP HELP_GBL_DIR" +$ ENDIF +$ ENDIF ! standard configuration +$! tell them what's happening +$ IF GTM$MGR_COM +$ THEN +$ WRITE SYS$OUTPUT " The following command files are created and copied to SYS$MANAGER:" +$ ELSE +$ WRITE SYS$OUTPUT " The following command files are created:" +$ ENDIF +$ TYPE SYS$INPUT + + GTMINSTALL.COM + GTMLOGICALS.COM + GTMLOGIN.COM + GTMSTART.COM + GTMSTOP.COM + + Each file contains its own user documentation. + + All the questions have been asked. Installation now proceeds without your + manual intervention for about 10-15 minutes. +$ IF GTM$RUN_IVP THEN WRITE SYS$OUTPUT " Finally the Installation Verification Procedure tests the installation." +$ WRITE SYS$OUTPUT "" +$ VMI$CALLBACK CREATE_DIRECTORY 'GTM$DIR_TYPE' 'GTM$DST_CRE' "/OWNER_UIC=[''GTM$DST_OWN'] /PROTECTION=(WO:RE)" +$ VMI$CALLBACK RESTORE_SAVESET B +$ VMI$CALLBACK RESTORE_SAVESET C +$ WRITE SYS$OUTPUT "" +$ VMI$CALLBACK MESSAGE I CRECOM "Creating command files." +$! Create GTMINSTALL.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMINSTALL.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMINSTALL.COM installs GTMSECSHR and other GT.M images." +$ WRITE OUFILE "$! GTMSECSHR is a small protected image and must be installed." +$ WRITE OUFILE "$! GTMSHR is the run-time library and is installed for performance." +$ WRITE OUFILE "$! GTM$DMOD and MCOMPILE are small images frequently used in development." +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$ INSTALL" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER/PROTECTED GTMSECSHR" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER GTMSHR" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER GTM$DMOD" +$ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER MCOMPILE" +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMLOGICALS.COM +$ GTM$HLP_LOG :== GTM$DIST +$ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== SYS$HELP +$ OPEN /WRITE OUFILE VMI$KWD:GTMLOGICALS.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMLOGICALS.COM defines the logical names required to use GT.M." +$ WRITE OUFILE "$! By default the definitions are placed in the PROCESS table." +$ WRITE OUFILE "$! Parameter 1, if supplied should be the name of a logical name table" +$ WRITE OUFILE "$! and/or the mode of definition." +$ WRITE OUFILE "$! Assignments in a ""permanent"" table reduce GT.M activation time." +$ WRITE OUFILE "$!" +$ IF GTM$LNK_LOG THEN WRITE OUFILE "$! The LNK$LIBRARY names many require adjustment to your environment." +$ IF GTM$DEF_GLD THEN WRITE OUFILE "$! GTM$GBLDIR is defined to provide default access to a global directory." +$ IF GTM$DEF_RTN THEN WRITE OUFILE "$! GTM$ROUTINES is defined to provide access to the GT.M utilities." +$ IF GTM$DEF_RTN THEN WRITE OUFILE "$! You may wish to define a different structure for $ZROUTINES." +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$ IF (P1 .NES. """") .AND. (F$EXTRACT(0,1,P1) .NES. ""/"") THEN P1 := /'P1" +$ WRITE OUFILE "$ DEFINE 'P1' GTM$DIST ''GTM$DST_LOG'" +$ IF GTM$DEF_GLD THEN WRITE OUFILE "$ DEFINE 'P1' GTM$GBLDIR ''GTM$GBL_DIR'" +$ IF GTM$DEF_RTN THEN WRITE OUFILE "$ DEFINE 'P1' GTM$ROUTINES ""''GTM$RTN_DIR'""" +$ WRITE OUFILE "$ DEFINE 'P1' GTM$HELP ''GTM$HLP_LOG'" +$ WRITE OUFILE "$ DEFINE 'P1' GTMSHR GTM$DIST:GTMSHR.EXE" +$ WRITE OUFILE "$ DEFINE 'P1' GTMSECSHR GTM$DIST:GTMSECSHR.EXE" +$ WRITE OUFILE "$ DEFINE 'P1' GTM$DMOD GTM$DIST:GTM$DMOD.EXE" +$ WRITE OUFILE "$ DEFINE 'P1' MCOMPILE GTM$DIST:MCOMPILE.EXE" +$ IF GTM$LNK_LOG +$ THEN +$ N1 = 0 +$ DN = 0 +$ T1 = F$TRNLNM("LNK$LIBRARY") +$ IF (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) +$ THEN +$ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY GTM$DIST:GTMLIB.OLB" +$ DN = 1 +$ ELSE ! lnk$library is in use +$LNK_LOOP: +$ N1 = N1 + 1 +$ T1 = F$TRNLNM("LNK$LIBRARY_''N1'") +$ IF (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) +$ THEN +$ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1' GTM$DIST:GTMLIB.OLB" +$ DN = 1 +$ ENDIF +$ IF (.NOT. DN) .AND. (N1 .LT. 998) THEN GOTO LNK_LOOP +$ ENDIF ! gtmlib handling +$ IF DN ! placed gtmlib +$ THEN +$ N1 = N1 + 1 +$ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1' GTM$DIST:GTMSHR.OLB" +$ ELSE +$ VMI$CALLBACK MESSAGE I NOLNKLOG "No LNK$LIBRARY logical names available" +$ ENDIF +$ ENDIF ! setting up LNK$LIBRARYs +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMLOGIN.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMLOGIN.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMLOGIN.COM performs process specific setup for GT.M." +$ WRITE OUFILE "$! It calls GTMLOGICALS.COM if the logical names are not" +$ WRITE OUFILE "$! in the SYSTEM table." +$ WRITE OUFILE "$! It defines symbols to access GT.M images." +$ WRITE OUFILE "$! It defines GT.M commands locally if they are not defined to the system." +$ WRITE OUFILE "$! When the command and logical names are not defined on a process level," +$ WRITE OUFILE "$! a production user may save start-up time by not using GTMLOGIN." +$ WRITE OUFILE "$! CCE is infrequently used, but may be defined as a foreign command." +$ WRITE OUFILE "$!" +$ IF .NOT. GTM$DEF_SYS +$ THEN +$ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" +$ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" +$ WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" +$ ENDIF +$ IF .NOT. GTM$DEF_DCL THEN WRITE OUFILE "$ SET COMMAND GTM$DIST:GTMCOMMANDS.CLD" +$ WRITE OUFILE "$ DSE :== $GTM$DIST:DSE.EXE ! Database System Editor" +$ WRITE OUFILE "$ GDE :== $GTM$DIST:GDE.EXE ! Global Directory Editor" +$ WRITE OUFILE "$ GTM :== MUMPS/DIRECT ! Direct Mode MUMPS" +$ WRITE OUFILE "$ LKE :== $GTM$DIST:LKE.EXE ! Lock Editor" +$ WRITE OUFILE "$ MUPI*P :== $GTM$DIST:MUPIP.EXE ! MUMPS Peripheral Interchange Program" +$ WRITE OUFILE "$ EXIT" +$ WRITE OUFILE "$ CCE :== $GTM$DIST:CCE.EXE ! GT.CX Operator Interface Program" +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMSTART.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMSTART.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMSTART.COM should be placed in the VMS startup database." +$ WRITE OUFILE "$! It invokes GTMLOGICALS.COM and GTMINSTALL.COM." +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" +$ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" +$ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P1 .EQS. """" .OR. (P1 .EQS. ""FULL"") THEN P1 := SYSTEM/EXEC" +$ WRITE OUFILE "$ @'dir'GTMLOGICALS 'P1'" +$ WRITE OUFILE "$ @'dir'GTMINSTALL" +$ WRITE OUFILE "$ EXIT" +$ CLOSE OUFILE +$! Create GTMSTOP.COM +$ OPEN /WRITE OUFILE VMI$KWD:GTMSTOP.COM +$ WRITE OUFILE "$!" +$ WRITE OUFILE "$! GTMSTOP.COM stops all the active GT.M processes and does a RUNDOWN." +$ WRITE OUFILE "$! Place an invocation or copy of this procedure in the site specific" +$ WRITE OUFILE "$! shutdown: SYS$MANAGER:SYSHUTDWN to ensure all GT.M databases are" +$ WRITE OUFILE "$! properly closed before VMS terminates. GTMSTOP should follow" +$ WRITE OUFILE "$! GTCMSTOP and precede GTCXSTOP, if they are used." +$ WRITE OUFILE "$! If GTMSTOP is not intended to disable subsequent use of GT.M," +$ WRITE OUFILE "$! add a comment (!) before the INSTALL REMOVE GTMSECSHR." +$ WRITE OUFILE "$!" +$ IF .NOT. GTM$DEF_SYS +$ THEN +$ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" +$ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" +$ WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" +$ ENDIF +$ WRITE OUFILE "$ MUPIP := $GTM$DIST:MUPIP.EXE" +$ WRITE OUFILE "$ STOP := $GTM$DIST:GTM$STOP" +$ WRITE OUFILE "$ STOP 'P1'" +$ WRITE OUFILE "$ MUPIP RUNDOWN" +$ WRITE OUFILE "$ INSTALL REMOVE GTMSECSHR" +$ WRITE OUFILE "$ EXIT" +$ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P2 .EQS. """" THEN P2 := /SYSTEM/EXEC" +$ WRITE OUFILE "$ DEASSIGN 'P2' GTMSECSHR" +$ CLOSE OUFILE +$ VMI$CALLBACK MESSAGE I PREINS "Preparing files for installation." +$! GTMFILES.KIT must be maintained as kit contents change +$ GTM$HLP_LOG == GTM$DST_LOG +$ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== VMI$ROOT:[SYSHLP] +$ OPEN /WRITE OUFILE VMI$KWD:GTMFILES.KIT +$ IF GTM$MGR_COM +$ THEN +$ WRITE OUFILE "GTM$ GTMINSTALL.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMLOGICALS.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMLOGIN.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMSTART.COM VMI$ROOT:[SYSMGR] C" +$ WRITE OUFILE "GTM$ GTMSTOP.COM VMI$ROOT:[SYSMGR] C" +$ ENDIF +$ WRITE OUFILE "GTM$ GTMINSTALL.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMLOGICALS.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMLOGIN.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSTART.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSTOP.COM ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ DSE.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ GDE.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ LKE.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ MUMPS.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ MUPIP.HLB ''GTM$HLP_LOG'" +$ WRITE OUFILE "GTM$ GTMLIB.OLB ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSHR.OLB ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMZCALL.MLB ''GTM$DST_LOG'" +$ IF ALPHA +$ THEN +$ WRITE OUFILE "GTM$ GTM$DEFAULTS.M64 ''GTM$DST_LOG'" +$ ELSE +$ WRITE OUFILE "GTM$ GTM$DEFAULTS.MAR ''GTM$DST_LOG'" +$ ENDIF +$ WRITE OUFILE "GTM$ GTM$CE.H ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMCOLLECT.OPT ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMCOMMANDS.CLD ''GTM$DST_LOG' C" +$ WRITE OUFILE "GTM$ *.M ''GTM$DST_LOG'" +$ CLOSE OUFILE +$! GTMIMAGES.KIT must be maintained as kit contents change +$ OPEN /WRITE OUFILE VMI$KWD:GTMIMAGES.KIT +$ WRITE OUFILE "GTM$ GTMSECSHR.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTMSHR.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ DSE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GDE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTM$DMOD.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ LKE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ MCOMPILE.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ MUPIP.EXE ''GTM$DST_LOG'" +$ WRITE OUFILE "GTM$ GTM$STOP.EXE ''GTM$DST_LOG'" +$ CLOSE OUFILE +$! Provide with file.KITs +$ VMI$CALLBACK PROVIDE_FILE "" VMI$KWD:GTMFILES.KIT "" T +$ VMI$CALLBACK PROVIDE_IMAGE "" VMI$KWD:GTMIMAGES.KIT "" T +$ VMI$CALLBACK MESSAGE I FININS "Finalizing the installation." +$ IF GTM$DEF_DCL THEN VMI$CALLBACK PROVIDE_DCL_COMMAND GTMCOMMANDS.CLD +$ IF GTM$STARTDB THEN VMI$CALLBACK MODIFY_STARTUP_DB ADD GTMSTART.COM LPMAIN +$! GTM$INSTALL is TRUE if GTM$RUN_IVP or GTM$PCT_RTN +$ IF GTM$INSTALL THEN VMI$CALLBACK SET POSTINSTALL YES +$ IF GTM$RUN_IVP THEN VMI$CALLBACK SET IVP YES +$ EXIT VMI$_SUCCESS +$! +$POSTINSTALL: +$ ON CONTROL_Y THEN EXIT VMI$_FAILURE +$! remove MUPIP from command tables for change from V2.4 to V2.5 +$ SET NOON +$ DEFINE /USER_MODE SYS$OUTPUT NL: +$ DEFINE /USER_MODE SYS$ERROR NL: +$ SET COMMAND /TABLE=SYS$COMMON:[SYSLIB]DCLTABLES /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES /DELETE=MUPIP +$ DEFINE /USER_MODE SYS$OUTPUT NL: +$ DEFINE /USER_MODE SYS$ERROR NL: +$ SET COMMAND /DELETE=MUPIP +$ SET ON +$ IF GTM$MGR_COM +$ THEN +$ T1 := SYS$MANAGER: +$ ELSE +$ T1 = GTM$DST_LOG +$ ENDIF +$ @'T1'GTMSTART +$ @'T1'GTMLOGIN +$ ON CONTROL_Y THEN EXIT VMI$_FAILURE +$ SET DEFAULT GTM$DIST +$ T2 = F$ENVIRONMENT("PROTECTION") +$ SET PROTECTION=(S=REWD,O=REWD,G=REWD,W=RE)/DEFAULT +$ MUMPS GTM$DMOD.M +$ IF GTM$LNK_LOG +$ THEN +$ T1 := +$ ELSE +$ T1 :=,GTMLIB.OLB/LIB,GTMSHR.OLB/LIB +$ ENDIF +$ LINK GTM$DMOD.OBJ/NOTRACE'T1 +$ IF GTM$PCT_RTN +$ THEN +$ TYPE SYS$INPUT + + Compiling the GT.M percent (%) routines. +$ MUMPS * +$ IF GTM$DOPURGE THEN PURGE *.* +$ SET DEFAULT VMI$KWD +$ ENDIF ! percent routines +$ SET PROTECTION=('T2')/DEFAULT +$ EXIT VMI$_SUCCESS +$! +$IVP: +$! The real Installation Verification Procedure. +$ TYPE SYS$INPUT + + GT.M Installation Verification Procedure + +$! Extract the IVP .COM file from the text library. +$ LIBRARIAN /EXTRACT=GTM$IVP /OUTPUT=GTM$IVP.COM GTM$IVP.TLB +$ @GTM$IVP +$ EXIT $STATUS +$! diff --git a/samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com b/samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com new file mode 100644 index 00000000..65e9d0cb --- /dev/null +++ b/samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com @@ -0,0 +1,867 @@ +$! make libz under VMS written by +$! Martin P.J. Zinser +$! +$! In case of problems with the install you might contact me at +$! zinser@zinser.no-ip.info(preferred) or +$! martin.zinser@eurexchange.com (work) +$! +$! Make procedure history for Zlib +$! +$!------------------------------------------------------------------------------ +$! Version history +$! 0.01 20060120 First version to receive a number +$! 0.02 20061008 Adapt to new Makefile.in +$! 0.03 20091224 Add support for large file check +$! 0.04 20100110 Add new gzclose, gzlib, gzread, gzwrite +$! 0.05 20100221 Exchange zlibdefs.h by zconf.h.in +$! 0.06 20120111 Fix missing amiss_err, update zconf_h.in, fix new exmples +$! subdir path, update module search in makefile.in +$! 0.07 20120115 Triggered by work done by Alexey Chupahin completly redesigned +$! shared image creation +$! 0.08 20120219 Make it work on VAX again, pre-load missing symbols to shared +$! image +$! 0.09 20120305 SMS. P1 sets builder ("MMK", "MMS", " " (built-in)). +$! "" -> automatic, preference: MMK, MMS, built-in. +$! +$ on error then goto err_exit +$! +$ true = 1 +$ false = 0 +$ tmpnam = "temp_" + f$getjpi("","pid") +$ tt = tmpnam + ".txt" +$ tc = tmpnam + ".c" +$ th = tmpnam + ".h" +$ define/nolog tconfig 'th' +$ its_decc = false +$ its_vaxc = false +$ its_gnuc = false +$ s_case = False +$! +$! Setup variables holding "config" information +$! +$ Make = "''p1'" +$ name = "Zlib" +$ version = "?.?.?" +$ v_string = "ZLIB_VERSION" +$ v_file = "zlib.h" +$ ccopt = "/include = []" +$ lopts = "" +$ dnsrl = "" +$ aconf_in_file = "zconf.h.in#zconf.h_in#zconf_h.in" +$ conf_check_string = "" +$ linkonly = false +$ optfile = name + ".opt" +$ mapfile = name + ".map" +$ libdefs = "" +$ vax = f$getsyi("HW_MODEL").lt.1024 +$ axp = f$getsyi("HW_MODEL").ge.1024 .and. f$getsyi("HW_MODEL").lt.4096 +$ ia64 = f$getsyi("HW_MODEL").ge.4096 +$! +$! 2012-03-05 SMS. +$! Why is this needed? And if it is needed, why not simply ".not. vax"? +$! +$!!! if axp .or. ia64 then set proc/parse=extended +$! +$ whoami = f$parse(f$environment("Procedure"),,,,"NO_CONCEAL") +$ mydef = F$parse(whoami,,,"DEVICE") +$ mydir = f$parse(whoami,,,"DIRECTORY") - "][" +$ myproc = f$parse(whoami,,,"Name") + f$parse(whoami,,,"type") +$! +$! Check for MMK/MMS +$! +$ if (Make .eqs. "") +$ then +$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" +$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" +$ else +$ Make = f$edit( Make, "trim") +$ endif +$! +$ gosub find_version +$! +$ open/write topt tmp.opt +$ open/write optf 'optfile' +$! +$ gosub check_opts +$! +$! Look for the compiler used +$! +$ gosub check_compiler +$ close topt +$ close optf +$! +$ if its_decc +$ then +$ ccopt = "/prefix=all" + ccopt +$ if f$trnlnm("SYS") .eqs. "" +$ then +$ if axp +$ then +$ define sys sys$library: +$ else +$ ccopt = "/decc" + ccopt +$ define sys decc$library_include: +$ endif +$ endif +$! +$! 2012-03-05 SMS. +$! Why /NAMES = AS_IS? Why not simply ".not. vax"? And why not on VAX? +$! +$ if axp .or. ia64 +$ then +$ ccopt = ccopt + "/name=as_is/opt=(inline=speed)" +$ s_case = true +$ endif +$ endif +$ if its_vaxc .or. its_gnuc +$ then +$ if f$trnlnm("SYS").eqs."" then define sys sys$library: +$ endif +$! +$! Build a fake configure input header +$! +$ open/write conf_hin config.hin +$ write conf_hin "#undef _LARGEFILE64_SOURCE" +$ close conf_hin +$! +$! +$ i = 0 +$FIND_ACONF: +$ fname = f$element(i,"#",aconf_in_file) +$ if fname .eqs. "#" then goto AMISS_ERR +$ if f$search(fname) .eqs. "" +$ then +$ i = i + 1 +$ goto find_aconf +$ endif +$ open/read/err=aconf_err aconf_in 'fname' +$ open/write aconf zconf.h +$ACONF_LOOP: +$ read/end_of_file=aconf_exit aconf_in line +$ work = f$edit(line, "compress,trim") +$ if f$extract(0,6,work) .nes. "#undef" +$ then +$ if f$extract(0,12,work) .nes. "#cmakedefine" +$ then +$ write aconf line +$ endif +$ else +$ cdef = f$element(1," ",work) +$ gosub check_config +$ endif +$ goto aconf_loop +$ACONF_EXIT: +$ write aconf "" +$ write aconf "/* VMS specifics added by make_vms.com: */" +$ write aconf "#define VMS 1" +$ write aconf "#include " +$ write aconf "#include " +$ write aconf "#ifdef _LARGEFILE" +$ write aconf "# define off64_t __off64_t" +$ write aconf "# define fopen64 fopen" +$ write aconf "# define fseeko64 fseeko" +$ write aconf "# define lseek64 lseek" +$ write aconf "# define ftello64 ftell" +$ write aconf "#endif" +$ write aconf "#if !defined( __VAX) && (__CRTL_VER >= 70312000)" +$ write aconf "# define HAVE_VSNPRINTF" +$ write aconf "#endif" +$ close aconf_in +$ close aconf +$ if f$search("''th'") .nes. "" then delete 'th';* +$! Build the thing plain or with mms +$! +$ write sys$output "Compiling Zlib sources ..." +$ if make.eqs."" +$ then +$ if (f$search( "example.obj;*") .nes. "") then delete example.obj;* +$ if (f$search( "minigzip.obj;*") .nes. "") then delete minigzip.obj;* +$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" - + adler32.c zlib.h zconf.h +$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" - + compress.c zlib.h zconf.h +$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" - + crc32.c zlib.h zconf.h +$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" - + deflate.c deflate.h zutil.h zlib.h zconf.h +$ CALL MAKE gzclose.OBJ "CC ''CCOPT' gzclose" - + gzclose.c zutil.h zlib.h zconf.h +$ CALL MAKE gzlib.OBJ "CC ''CCOPT' gzlib" - + gzlib.c zutil.h zlib.h zconf.h +$ CALL MAKE gzread.OBJ "CC ''CCOPT' gzread" - + gzread.c zutil.h zlib.h zconf.h +$ CALL MAKE gzwrite.OBJ "CC ''CCOPT' gzwrite" - + gzwrite.c zutil.h zlib.h zconf.h +$ CALL MAKE infback.OBJ "CC ''CCOPT' infback" - + infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h +$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" - + inffast.c zutil.h zlib.h zconf.h inffast.h +$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" - + inflate.c zutil.h zlib.h zconf.h infblock.h +$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" - + inftrees.c zutil.h zlib.h zconf.h inftrees.h +$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" - + trees.c deflate.h zutil.h zlib.h zconf.h +$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" - + uncompr.c zlib.h zconf.h +$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" - + zutil.c zutil.h zlib.h zconf.h +$ write sys$output "Building Zlib ..." +$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ +$ write sys$output "Building example..." +$ CALL MAKE example.OBJ "CC ''CCOPT' [.test]example" - + [.test]example.c zlib.h zconf.h +$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb +$ write sys$output "Building minigzip..." +$ CALL MAKE minigzip.OBJ "CC ''CCOPT' [.test]minigzip" - + [.test]minigzip.c zlib.h zconf.h +$ call make minigzip.exe - + "LINK minigzip,libz.olb/lib" - + minigzip.obj libz.olb +$ else +$ gosub crea_mms +$ write sys$output "Make ''name' ''version' with ''Make' " +$ 'make' +$ endif +$! +$! Create shareable image +$! +$ gosub crea_olist +$ write sys$output "Creating libzshr.exe" +$ call map_2_shopt 'mapfile' 'optfile' +$ LINK_'lopts'/SHARE=libzshr.exe modules.opt/opt,'optfile'/opt +$ write sys$output "Zlib build completed" +$ delete/nolog tmp.opt;* +$ exit +$AMISS_ERR: +$ write sys$output "No source for config.hin found." +$ write sys$output "Tried any of ''aconf_in_file'" +$ goto err_exit +$CC_ERR: +$ write sys$output "C compiler required to build ''name'" +$ goto err_exit +$ERR_EXIT: +$ set message/facil/ident/sever/text +$ close/nolog optf +$ close/nolog topt +$ close/nolog aconf_in +$ close/nolog aconf +$ close/nolog out +$ close/nolog min +$ close/nolog mod +$ close/nolog h_in +$ write sys$output "Exiting..." +$ exit 2 +$! +$! +$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES +$ V = 'F$Verify(0) +$! P1 = What we are trying to make +$! P2 = Command to make it +$! P3 - P8 What it depends on +$ +$ If F$Search(P1) .Eqs. "" Then Goto Makeit +$ Time = F$CvTime(F$File(P1,"RDT")) +$arg=3 +$Loop: +$ Argument = P'arg +$ If Argument .Eqs. "" Then Goto Exit +$ El=0 +$Loop2: +$ File = F$Element(El," ",Argument) +$ If File .Eqs. " " Then Goto Endl +$ AFile = "" +$Loop3: +$ OFile = AFile +$ AFile = F$Search(File) +$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl +$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit +$ Goto Loop3 +$NextEL: +$ El = El + 1 +$ Goto Loop2 +$EndL: +$ arg=arg+1 +$ If arg .Le. 8 Then Goto Loop +$ Goto Exit +$ +$Makeit: +$ VV=F$VERIFY(0) +$ write sys$output P2 +$ 'P2 +$ VV='F$Verify(VV) +$Exit: +$ If V Then Set Verify +$ENDSUBROUTINE +$!------------------------------------------------------------------------------ +$! +$! Check command line options and set symbols accordingly +$! +$!------------------------------------------------------------------------------ +$! Version history +$! 0.01 20041206 First version to receive a number +$! 0.02 20060126 Add new "HELP" target +$ CHECK_OPTS: +$ i = 1 +$ OPT_LOOP: +$ if i .lt. 9 +$ then +$ cparm = f$edit(p'i',"upcase") +$! +$! Check if parameter actually contains something +$! +$ if f$edit(cparm,"trim") .nes. "" +$ then +$ if cparm .eqs. "DEBUG" +$ then +$ ccopt = ccopt + "/noopt/deb" +$ lopts = lopts + "/deb" +$ endif +$ if f$locate("CCOPT=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ ccopt = ccopt + f$extract(start,len,cparm) +$ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) - + then s_case = true +$ endif +$ if cparm .eqs. "LINK" then linkonly = true +$ if f$locate("LOPTS=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ lopts = lopts + f$extract(start,len,cparm) +$ endif +$ if f$locate("CC=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ cc_com = f$extract(start,len,cparm) + if (cc_com .nes. "DECC") .and. - + (cc_com .nes. "VAXC") .and. - + (cc_com .nes. "GNUC") +$ then +$ write sys$output "Unsupported compiler choice ''cc_com' ignored" +$ write sys$output "Use DECC, VAXC, or GNUC instead" +$ else +$ if cc_com .eqs. "DECC" then its_decc = true +$ if cc_com .eqs. "VAXC" then its_vaxc = true +$ if cc_com .eqs. "GNUC" then its_gnuc = true +$ endif +$ endif +$ if f$locate("MAKE=",cparm) .lt. f$length(cparm) +$ then +$ start = f$locate("=",cparm) + 1 +$ len = f$length(cparm) - start +$ mmks = f$extract(start,len,cparm) +$ if (mmks .eqs. "MMK") .or. (mmks .eqs. "MMS") +$ then +$ make = mmks +$ else +$ write sys$output "Unsupported make choice ''mmks' ignored" +$ write sys$output "Use MMK or MMS instead" +$ endif +$ endif +$ if cparm .eqs. "HELP" then gosub bhelp +$ endif +$ i = i + 1 +$ goto opt_loop +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Look for the compiler used +$! +$! Version history +$! 0.01 20040223 First version to receive a number +$! 0.02 20040229 Save/set value of decc$no_rooted_search_lists +$! 0.03 20060202 Extend handling of GNU C +$! 0.04 20090402 Compaq -> hp +$CHECK_COMPILER: +$ if (.not. (its_decc .or. its_vaxc .or. its_gnuc)) +$ then +$ its_decc = (f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "") +$ its_vaxc = .not. its_decc .and. (F$Search("SYS$System:VAXC.Exe") .nes. "") +$ its_gnuc = .not. (its_decc .or. its_vaxc) .and. (f$trnlnm("gnu_cc") .nes. "") +$ endif +$! +$! Exit if no compiler available +$! +$ if (.not. (its_decc .or. its_vaxc .or. its_gnuc)) +$ then goto CC_ERR +$ else +$ if its_decc +$ then +$ write sys$output "CC compiler check ... hp C" +$ if f$trnlnm("decc$no_rooted_search_lists") .nes. "" +$ then +$ dnrsl = f$trnlnm("decc$no_rooted_search_lists") +$ endif +$ define/nolog decc$no_rooted_search_lists 1 +$ else +$ if its_vaxc then write sys$output "CC compiler check ... VAX C" +$ if its_gnuc +$ then +$ write sys$output "CC compiler check ... GNU C" +$ if f$trnlnm(topt) then write topt "gnu_cc:[000000]gcclib.olb/lib" +$ if f$trnlnm(optf) then write optf "gnu_cc:[000000]gcclib.olb/lib" +$ cc = "gcc" +$ endif +$ if f$trnlnm(topt) then write topt "sys$share:vaxcrtl.exe/share" +$ if f$trnlnm(optf) then write optf "sys$share:vaxcrtl.exe/share" +$ endif +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! If MMS/MMK are available dump out the descrip.mms if required +$! +$CREA_MMS: +$ write sys$output "Creating descrip.mms..." +$ create descrip.mms +$ open/append out descrip.mms +$ copy sys$input: out +$ deck +# descrip.mms: MMS description file for building zlib on VMS +# written by Martin P.J. Zinser +# + +OBJS = adler32.obj, compress.obj, crc32.obj, gzclose.obj, gzlib.obj\ + gzread.obj, gzwrite.obj, uncompr.obj, infback.obj\ + deflate.obj, trees.obj, zutil.obj, inflate.obj, \ + inftrees.obj, inffast.obj + +$ eod +$ write out "CFLAGS=", ccopt +$ write out "LOPTS=", lopts +$ write out "all : example.exe minigzip.exe libz.olb" +$ copy sys$input: out +$ deck + @ write sys$output " Example applications available" + +libz.olb : libz.olb($(OBJS)) + @ write sys$output " libz available" + +example.exe : example.obj libz.olb + link $(LOPTS) example,libz.olb/lib + +minigzip.exe : minigzip.obj libz.olb + link $(LOPTS) minigzip,libz.olb/lib + +clean : + delete *.obj;*,libz.olb;*,*.opt;*,*.exe;* + + +# Other dependencies. +adler32.obj : adler32.c zutil.h zlib.h zconf.h +compress.obj : compress.c zlib.h zconf.h +crc32.obj : crc32.c zutil.h zlib.h zconf.h +deflate.obj : deflate.c deflate.h zutil.h zlib.h zconf.h +example.obj : [.test]example.c zlib.h zconf.h +gzclose.obj : gzclose.c zutil.h zlib.h zconf.h +gzlib.obj : gzlib.c zutil.h zlib.h zconf.h +gzread.obj : gzread.c zutil.h zlib.h zconf.h +gzwrite.obj : gzwrite.c zutil.h zlib.h zconf.h +inffast.obj : inffast.c zutil.h zlib.h zconf.h inftrees.h inffast.h +inflate.obj : inflate.c zutil.h zlib.h zconf.h +inftrees.obj : inftrees.c zutil.h zlib.h zconf.h inftrees.h +minigzip.obj : [.test]minigzip.c zlib.h zconf.h +trees.obj : trees.c deflate.h zutil.h zlib.h zconf.h +uncompr.obj : uncompr.c zlib.h zconf.h +zutil.obj : zutil.c zutil.h zlib.h zconf.h +infback.obj : infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h +$ eod +$ close out +$ return +$!------------------------------------------------------------------------------ +$! +$! Read list of core library sources from makefile.in and create options +$! needed to build shareable image +$! +$CREA_OLIST: +$ open/read min makefile.in +$ open/write mod modules.opt +$ src_check_list = "OBJZ =#OBJG =" +$MRLOOP: +$ read/end=mrdone min rec +$ i = 0 +$SRC_CHECK_LOOP: +$ src_check = f$element(i, "#", src_check_list) +$ i = i+1 +$ if src_check .eqs. "#" then goto mrloop +$ if (f$extract(0,6,rec) .nes. src_check) then goto src_check_loop +$ rec = rec - src_check +$ gosub extra_filnam +$ if (f$element(1,"\",rec) .eqs. "\") then goto mrloop +$MRSLOOP: +$ read/end=mrdone min rec +$ gosub extra_filnam +$ if (f$element(1,"\",rec) .nes. "\") then goto mrsloop +$MRDONE: +$ close min +$ close mod +$ return +$!------------------------------------------------------------------------------ +$! +$! Take record extracted in crea_olist and split it into single filenames +$! +$EXTRA_FILNAM: +$ myrec = f$edit(rec - "\", "trim,compress") +$ i = 0 +$FELOOP: +$ srcfil = f$element(i," ", myrec) +$ if (srcfil .nes. " ") +$ then +$ write mod f$parse(srcfil,,,"NAME"), ".obj" +$ i = i + 1 +$ goto feloop +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Find current Zlib version number +$! +$FIND_VERSION: +$ open/read h_in 'v_file' +$hloop: +$ read/end=hdone h_in rec +$ rec = f$edit(rec,"TRIM") +$ if (f$extract(0,1,rec) .nes. "#") then goto hloop +$ rec = f$edit(rec - "#", "TRIM") +$ if f$element(0," ",rec) .nes. "define" then goto hloop +$ if f$element(1," ",rec) .eqs. v_string +$ then +$ version = 'f$element(2," ",rec)' +$ goto hdone +$ endif +$ goto hloop +$hdone: +$ close h_in +$ return +$!------------------------------------------------------------------------------ +$! +$CHECK_CONFIG: +$! +$ in_ldef = f$locate(cdef,libdefs) +$ if (in_ldef .lt. f$length(libdefs)) +$ then +$ write aconf "#define ''cdef' 1" +$ libdefs = f$extract(0,in_ldef,libdefs) + - + f$extract(in_ldef + f$length(cdef) + 1, - + f$length(libdefs) - in_ldef - f$length(cdef) - 1, - + libdefs) +$ else +$ if (f$type('cdef') .eqs. "INTEGER") +$ then +$ write aconf "#define ''cdef' ", 'cdef' +$ else +$ if (f$type('cdef') .eqs. "STRING") +$ then +$ write aconf "#define ''cdef' ", """", '''cdef'', """" +$ else +$ gosub check_cc_def +$ endif +$ endif +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Check if this is a define relating to the properties of the C/C++ +$! compiler +$! +$ CHECK_CC_DEF: +$ if (cdef .eqs. "_LARGEFILE64_SOURCE") +$ then +$ copy sys$input: 'tc' +$ deck +#include "tconfig" +#define _LARGEFILE +#include + +int main(){ +FILE *fp; + fp = fopen("temp.txt","r"); + fseeko(fp,1,SEEK_SET); + fclose(fp); +} + +$ eod +$ test_inv = false +$ comm_h = false +$ gosub cc_prop_check +$ return +$ endif +$ write aconf "/* ", line, " */" +$ return +$!------------------------------------------------------------------------------ +$! +$! Check for properties of C/C++ compiler +$! +$! Version history +$! 0.01 20031020 First version to receive a number +$! 0.02 20031022 Added logic for defines with value +$! 0.03 20040309 Make sure local config file gets not deleted +$! 0.04 20041230 Also write include for configure run +$! 0.05 20050103 Add processing of "comment defines" +$CC_PROP_CHECK: +$ cc_prop = true +$ is_need = false +$ is_need = (f$extract(0,4,cdef) .eqs. "NEED") .or. (test_inv .eq. true) +$ if f$search(th) .eqs. "" then create 'th' +$ set message/nofac/noident/nosever/notext +$ on error then continue +$ cc 'tmpnam' +$ if .not. ($status) then cc_prop = false +$ on error then continue +$! The headers might lie about the capabilities of the RTL +$ link 'tmpnam',tmp.opt/opt +$ if .not. ($status) then cc_prop = false +$ set message/fac/ident/sever/text +$ on error then goto err_exit +$ delete/nolog 'tmpnam'.*;*/exclude='th' +$ if (cc_prop .and. .not. is_need) .or. - + (.not. cc_prop .and. is_need) +$ then +$ write sys$output "Checking for ''cdef'... yes" +$ if f$type('cdef_val'_yes) .nes. "" +$ then +$ if f$type('cdef_val'_yes) .eqs. "INTEGER" - + then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_yes) +$ if f$type('cdef_val'_yes) .eqs. "STRING" - + then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_yes) +$ else +$ call write_config f$fao("#define !AS 1",cdef) +$ endif +$ if (cdef .eqs. "HAVE_FSEEKO") .or. (cdef .eqs. "_LARGE_FILES") .or. - + (cdef .eqs. "_LARGEFILE64_SOURCE") then - + call write_config f$string("#define _LARGEFILE 1") +$ else +$ write sys$output "Checking for ''cdef'... no" +$ if (comm_h) +$ then + call write_config f$fao("/* !AS */",line) +$ else +$ if f$type('cdef_val'_no) .nes. "" +$ then +$ if f$type('cdef_val'_no) .eqs. "INTEGER" - + then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_no) +$ if f$type('cdef_val'_no) .eqs. "STRING" - + then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_no) +$ else +$ call write_config f$fao("#undef !AS",cdef) +$ endif +$ endif +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Check for properties of C/C++ compiler with multiple result values +$! +$! Version history +$! 0.01 20040127 First version +$! 0.02 20050103 Reconcile changes from cc_prop up to version 0.05 +$CC_MPROP_CHECK: +$ cc_prop = true +$ i = 1 +$ idel = 1 +$ MT_LOOP: +$ if f$type(result_'i') .eqs. "STRING" +$ then +$ set message/nofac/noident/nosever/notext +$ on error then continue +$ cc 'tmpnam'_'i' +$ if .not. ($status) then cc_prop = false +$ on error then continue +$! The headers might lie about the capabilities of the RTL +$ link 'tmpnam'_'i',tmp.opt/opt +$ if .not. ($status) then cc_prop = false +$ set message/fac/ident/sever/text +$ on error then goto err_exit +$ delete/nolog 'tmpnam'_'i'.*;* +$ if (cc_prop) +$ then +$ write sys$output "Checking for ''cdef'... ", mdef_'i' +$ if f$type(mdef_'i') .eqs. "INTEGER" - + then call write_config f$fao("#define !AS !UL",cdef,mdef_'i') +$ if f$type('cdef_val'_yes) .eqs. "STRING" - + then call write_config f$fao("#define !AS !AS",cdef,mdef_'i') +$ goto msym_clean +$ else +$ i = i + 1 +$ goto mt_loop +$ endif +$ endif +$ write sys$output "Checking for ''cdef'... no" +$ call write_config f$fao("#undef !AS",cdef) +$ MSYM_CLEAN: +$ if (idel .le. msym_max) +$ then +$ delete/sym mdef_'idel' +$ idel = idel + 1 +$ goto msym_clean +$ endif +$ return +$!------------------------------------------------------------------------------ +$! +$! Write configuration to both permanent and temporary config file +$! +$! Version history +$! 0.01 20031029 First version to receive a number +$! +$WRITE_CONFIG: SUBROUTINE +$ write aconf 'p1' +$ open/append confh 'th' +$ write confh 'p1' +$ close confh +$ENDSUBROUTINE +$!------------------------------------------------------------------------------ +$! +$! Analyze the project map file and create the symbol vector for a shareable +$! image from it +$! +$! Version history +$! 0.01 20120128 First version +$! 0.02 20120226 Add pre-load logic +$! +$ MAP_2_SHOPT: Subroutine +$! +$ SAY := "WRITE_ SYS$OUTPUT" +$! +$ IF F$SEARCH("''P1'") .EQS. "" +$ THEN +$ SAY "MAP_2_SHOPT-E-NOSUCHFILE: Error, inputfile ''p1' not available" +$ goto exit_m2s +$ ENDIF +$ IF "''P2'" .EQS. "" +$ THEN +$ SAY "MAP_2_SHOPT: Error, no output file provided" +$ goto exit_m2s +$ ENDIF +$! +$ module1 = "deflate#deflateEnd#deflateInit_#deflateParams#deflateSetDictionary" +$ module2 = "gzclose#gzerror#gzgetc#gzgets#gzopen#gzprintf#gzputc#gzputs#gzread" +$ module3 = "gzseek#gztell#inflate#inflateEnd#inflateInit_#inflateSetDictionary" +$ module4 = "inflateSync#uncompress#zlibVersion#compress" +$ open/read map 'p1 +$ if axp .or. ia64 +$ then +$ open/write aopt a.opt +$ open/write bopt b.opt +$ write aopt " CASE_SENSITIVE=YES" +$ write bopt "SYMBOL_VECTOR= (-" +$ mod_sym_num = 1 +$ MOD_SYM_LOOP: +$ if f$type(module'mod_sym_num') .nes. "" +$ then +$ mod_in = 0 +$ MOD_SYM_IN: +$ shared_proc = f$element(mod_in, "#", module'mod_sym_num') +$ if shared_proc .nes. "#" +$ then +$ write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",- + f$edit(shared_proc,"upcase"),shared_proc) +$ write bopt f$fao("!AS=PROCEDURE,-",shared_proc) +$ mod_in = mod_in + 1 +$ goto mod_sym_in +$ endif +$ mod_sym_num = mod_sym_num + 1 +$ goto mod_sym_loop +$ endif +$MAP_LOOP: +$ read/end=map_end map line +$ if (f$locate("{",line).lt. f$length(line)) .or. - + (f$locate("global:", line) .lt. f$length(line)) +$ then +$ proc = true +$ goto map_loop +$ endif +$ if f$locate("}",line).lt. f$length(line) then proc = false +$ if f$locate("local:", line) .lt. f$length(line) then proc = false +$ if proc +$ then +$ shared_proc = f$edit(line,"collapse") +$ chop_semi = f$locate(";", shared_proc) +$ if chop_semi .lt. f$length(shared_proc) then - + shared_proc = f$extract(0, chop_semi, shared_proc) +$ write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",- + f$edit(shared_proc,"upcase"),shared_proc) +$ write bopt f$fao("!AS=PROCEDURE,-",shared_proc) +$ endif +$ goto map_loop +$MAP_END: +$ close/nolog aopt +$ close/nolog bopt +$ open/append libopt 'p2' +$ open/read aopt a.opt +$ open/read bopt b.opt +$ALOOP: +$ read/end=aloop_end aopt line +$ write libopt line +$ goto aloop +$ALOOP_END: +$ close/nolog aopt +$ sv = "" +$BLOOP: +$ read/end=bloop_end bopt svn +$ if (svn.nes."") +$ then +$ if (sv.nes."") then write libopt sv +$ sv = svn +$ endif +$ goto bloop +$BLOOP_END: +$ write libopt f$extract(0,f$length(sv)-2,sv), "-" +$ write libopt ")" +$ close/nolog bopt +$ delete/nolog/noconf a.opt;*,b.opt;* +$ else +$ if vax +$ then +$ open/append libopt 'p2' +$ mod_sym_num = 1 +$ VMOD_SYM_LOOP: +$ if f$type(module'mod_sym_num') .nes. "" +$ then +$ mod_in = 0 +$ VMOD_SYM_IN: +$ shared_proc = f$element(mod_in, "#", module'mod_sym_num') +$ if shared_proc .nes. "#" +$ then +$ write libopt f$fao("UNIVERSAL=!AS",- + f$edit(shared_proc,"upcase")) +$ mod_in = mod_in + 1 +$ goto vmod_sym_in +$ endif +$ mod_sym_num = mod_sym_num + 1 +$ goto vmod_sym_loop +$ endif +$VMAP_LOOP: +$ read/end=vmap_end map line +$ if (f$locate("{",line).lt. f$length(line)) .or. - + (f$locate("global:", line) .lt. f$length(line)) +$ then +$ proc = true +$ goto vmap_loop +$ endif +$ if f$locate("}",line).lt. f$length(line) then proc = false +$ if f$locate("local:", line) .lt. f$length(line) then proc = false +$ if proc +$ then +$ shared_proc = f$edit(line,"collapse") +$ chop_semi = f$locate(";", shared_proc) +$ if chop_semi .lt. f$length(shared_proc) then - + shared_proc = f$extract(0, chop_semi, shared_proc) +$ write libopt f$fao("UNIVERSAL=!AS",- + f$edit(shared_proc,"upcase")) +$ endif +$ goto vmap_loop +$VMAP_END: +$ else +$ write sys$output "Unknown Architecture (Not VAX, AXP, or IA64)" +$ write sys$output "No options file created" +$ endif +$ endif +$ EXIT_M2S: +$ close/nolog map +$ close/nolog libopt +$ endsubroutine diff --git a/samples/DIGITAL Command Language/libxslt_build.com b/samples/DIGITAL Command Language/libxslt_build.com new file mode 100644 index 00000000..89371f01 --- /dev/null +++ b/samples/DIGITAL Command Language/libxslt_build.com @@ -0,0 +1,342 @@ +$! BUILD_XSLT.COM +$! +$! Build the XSLT library +$! +$! Arguments: +$! +$! p1 - "DEBUG" is you want to build with debug +$! +$! This package requires libxml to have already been installed. You need +$! to ensure that the logical name LIBXML is defined and points to the +$! directory containing libxml's .h files +$! +$! This procedure creates the object libraries +$! +$! XML_LIBDIR:LIBXSLT.OLB +$! XML_LIBDIR:LIBEXSLT.OLB +$! +$! and the program +$! +$! XSLTPROC +$! +$! After the library is built, you can link these routines into +$! your code with the command +$! +$! LINK your_modules,XML_LIBDIR:LIBEXSLT/LIB,LIBXSLT/LIBRARY,LIBXML/LIB +$! +$! Change History +$! -------------- +$! Command file author : John A Fotheringham (jaf@jafsoft.com) +$! Last update : 2 Nov 2001 +$! +$!- configuration ------------------------------------------------------------- +$! +$!- compile command. +$! +$ cc_opts = "/INCLUDE=([],XML_SRCDIR:,[-.libxslt])/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" +$! +$ if p1.eqs."DEBUG" +$ then +$ debug = "Y" +$ cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" +$ else +$ debug = "N" +$ cc_command = "CC''cc_opts'" +$ endif +$! +$!- configure multiple build passes for each library. ------------------------- +$! +$! For each pass: +$! +$! "libname" is the name of the library or module being created +$! +$! "progname" is the name of the program being created +$! +$! "src" is the list of sources to be built into the library or program +$! - This should be compared to the definition of +$! "_la_SOURCES" in the MAKEFILE.IN file in +$! corresponding directory. +$! +$ num_passes = 3 ! two libraries and a program +$! +$!- pass 1 - library LIBXSLT +$! +$ libname_1 = "LIBXSLT" +$ h_file_1 = "xslt.h" +$ progname_1 = "" +$! +$ ! see "libxslt_la_SOURCES" in [.libxslt]makefile.in +$ src_1 = "xslt.c xsltutils.c pattern.c templates.c variables.c keys.c" +$ src_1 = src_1 + " numbers.c extensions.c extra.c functions.c" +$ src_1 = src_1 + " namespaces.c imports.c attributes.c documents.c" +$ src_1 = src_1 + " preproc.c transform.c security.c" +$! +$!- pass 2 - library LIBEXSLT +$! +$ libname_2 = "LIBEXSLT" +$ h_file_2 = "exslt.h" +$ progname_2 = "" +$! +$ ! see "libexslt_la_SOURCES" in [.libexslt]makefile.in +$ src_2 = "exslt.c common.c math.c sets.c functions.c strings.c date.c saxon.c dynamic.c" +$! +$!- pass 3 - program XSLTPROC +$! +$ libname_3 = "" +$ h_file_3 = "" +$ progname_3 = "XSLTPROC" +$! +$ ! see "xsltproc_SOURCES" in [.xsltproc]makefile.in +$ src_3 = "xsltproc.c" +$! +$!- set up and check logicals ----------------------------------------------- +$! +$! XML_LIBDIR - object library directory +$! XML_SRCDIR - top-level build directory of libxml package -- needed for config.h and trio.h +$! LIBXML - source directory containing .h files for libxml package +$! +$ if f$trnlnm("XML_LIBDIR").eqs."" +$ then +$ on error then continue +$ globfile = f$search("[--...]libxml.olb") +$ if globfile.eqs."" +$ then +$ write sys$output "" +$ write sys$output " You need to define the XML_LIBDIR logical name to" +$ write sys$output " point to the directory containing your object" +$ write sys$output " libraries. This should already contain LIBXML.OLB" +$ write sys$output " from the libxml package, and will be the directory" +$ write sys$output " the new LIBXSLT.OLB library will be placed in" +$ write sys$output "" +$ exit +$ else +$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") +$ define/process XML_LIBDIR "''srcdir'" +$ write sys$output "Defining XML_LIBDIR as ""''srcdir'""" +$ endif +$ endif +$! +$ if f$trnlnm("libxml").eqs."" +$ then +$ ! look for globals.h in a directory installed paralle to this one +$ on error then continue +$ globfile = f$search("[--...]globals.h") +$ if globfile.eqs."" +$ then +$ write sys$output "" +$ write sys$output " You need to define a LIBXML logical directory to" +$ write sys$output " point to the directory containing the .h files" +$ write sys$output " for the libxml package" +$ write sys$output "" +$ exit +$ else +$ srcdir = f$element(0,"]",globfile)+ "]" +$ define/process LIBXML "''srcdir'" +$ write sys$output "Defining LIBXML as ""''srcdir'""" +$ endif +$ endif +$! +$ if f$trnlnm("XML_SRCDIR").eqs."" +$ then +$ globfile = f$search("[--...]globals.c") +$ if globfile.eqs."" +$ then +$ write sys$output "Can't locate globals.c. You need to manually define a XML_SRCDIR logical" +$ exit +$ else +$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") +$ define/process XML_SRCDIR "''srcdir'" +$ write sys$output "Defining XML_SRCDIR as ""''srcdir'""" +$ endif +$ endif +$! +$!- set up some working logicals ------------------- +$! +$ pass_no = 1 +$ set_pass_logical: +$! +$ if pass_no.le.num_passes +$ then +$! +$ Libname = libname_'pass_no' +$ progname = progname_'pass_no' +$ if libname.nes."" +$ then +$ logname = "''libname'_SRCDIR" +$ else +$ logname = "''progname'_SRCDIR" +$ endif +$ findfile = f$element(0," ",src_'pass_no') +$! +$!--- set up a source directory logical +$! +$ if f$trnlnm("''logname'").eqs."" +$ then +$ ! look for the target file in a parallel subdirectory +$ globfile = f$search("[-...]''findfile'") +$ if globfile.eqs."" +$ then +$ write sys$output "Can't locate ''findfile'. You need to manually define a ''logname' logical" +$ exit +$ else +$ srcdir = f$element(0,"]",globfile)+ "]" +$ define/process 'logname' "''srcdir'" +$ write sys$output "Defining ''logname' as ""''srcdir'""" +$ endif +$ endif +$! +$!--- if it's a library, set up a logical pointing to the .h files +$! +$ if libname.nes."" +$ then +$ if f$trnlnm("''libname'").eqs."" +$ then +$ ! look for the target .h file in a parallel subdirectory +$ h_file = h_file_'pass_no' +$ globfile = f$search("[-...]''h_file'") +$ if globfile.eqs."" +$ then +$ write sys$output "Can't locate ''h_file'. You need to manually define a ''libname' logical" +$ exit +$ else +$ includedir = f$element(0,"]",globfile)+ "]" +$ define/process 'libname' "''includedir'" +$ write sys$output "Defining ''libname' as ""''includedir'""" +$ endif +$ endif +$ endif +$! +$ pass_no = pass_no +1 +$ goto set_pass_logical +$! +$ endif ! for each pass +$! +$!- set up error handling (such as it is) ------------------------------------- +$! +$ exit_status = 1 +$ saved_default = f$environment("default") +$ on error then goto ERROR_OUT +$ on control_y then goto ERROR_OUT +$! +$ goto start_here +$ start_here: ! move this line to debug/rerun parts of this command file +$! +$!- compile modules into the library ------------------------------------------ +$! +$! +$ pass_no = 1 ! make three passes, one for each library, one for XSLTPROC +$ pass_loop: +$! +$ if pass_no.le.num_passes +$ then +$ Libname = libname_'pass_no' +$ progname = progname_'pass_no' +$ if libname.nes."" +$ then +$ logname = "''libname'_SRCDIR" +$ pass_description = "the XML_LIBDIR:''libname'.OLB object library" +$ else +$ logname = "''progname'_SRCDIR" +$ pass_description = "the programs in ''progname'" +$ endif +$ src = src_'pass_no' +$! +$!- create the library if need +$! +$ if libname.nes."" +$ then +$ if f$search("XML_LIBDIR:''libname'.OLB").eqs."" +$ then +$ write sys$output "Creating new object library XML_LIBDIR:''libname'.OLB..." +$ library/create XML_LIBDIR:'libname'.OLB +$ endif +$ endif +$! +$!- move to the source directory +$! +$ set def 'logname' +$! +$!- define the library and link commands (link command not used as is) +$! +$ if libname.nes."" +$ then +$ lib_command = "LIBRARY/REPLACE XML_LIBDIR:''libname'.OLB" +$ link_command = "" +$ else +$ lib_command = "" +$ link_command = "LINK" +$ endif +$! +$ write sys$output "" +$ write sys$output "Building ''pass_description' +$ write sys$output "" +$! +$ s_no = 0 +$ src = f$edit(src,"COMPRESS") +$! +$ source_loop: +$! +$ next_source = f$element (S_no," ",src) +$ if next_source.nes."" .and. next_source.nes." " +$ then +$ call build 'next_source' +$ s_no = s_no + 1 +$ goto source_loop +$ endif +$! +$ pass_no = pass_no + 1 +$ goto pass_loop +$! +$ endif ! for each pass +$! +$!- Th-th-th-th-th-that's all folks! ------------------------------------------ +$! +$EXIT_OUT: +$! +$ set def 'saved_default +$ exit 'exit_status +$! +$ +$ERROR_OUT: +$ exit_status = $status +$ write sys$output "''f$message(exit_status)'" +$ goto EXIT_OUT +$! +$!- the BUILD subroutine. Compile then insert into library or link as required +$! +$BUILD: subroutine +$ on warning then goto EXIT_BUILD +$ source_file = p1 +$ name = f$element(0,".",source_file) +$ object_file = f$fao("XML_LIBDIR:!AS.OBJ",name) +$! +$!- compile +$ write sys$output "Compiling ",p1,p2,"..." +$ cc_command /object='object_file 'source_file' 'p2' +$! +$!- insert into library if command defined +$! +$ if lib_command.nes."" +$ then +$ lib_command 'object_file' +$ delete/nolog 'object_file';* +$ endif +$! +$!- link module if command defined +$! +$ if link_command.nes."" +$ then +$ text = f$element(0,".",p1) ! lose the ".c" +$ write sys$output "Linking ",text,"..." +$ dbgopts = "" +$ if debug then dbgopts = "/DEBUG" +$ link_command'dbgopts' 'object_file',- + XML_LIBDIR:libexslt/lib,- + XML_LIBDIR:libxslt/lib,- + XML_LIBDIR:libxml/library +$ endif +$! +$EXIT_BUILD: +$ exit $status +$! +$endsubroutine diff --git a/samples/DIGITAL Command Language/vmsbackup_build.com b/samples/DIGITAL Command Language/vmsbackup_build.com new file mode 100644 index 00000000..c6cb4cab --- /dev/null +++ b/samples/DIGITAL Command Language/vmsbackup_build.com @@ -0,0 +1,10 @@ +$! Compiling with VAXC is said to work, but it requires the usual cruft +$! (vaxcrtl and all), and to avoid hair we don't supply said cruft here. +$ CC/DECC/PREFIX=all VMSBACKUP.C/DEFINE=(HAVE_MT_IOCTLS=0,HAVE_UNIXIO_H=1) +$ CC/DECC/PREFIX=all DCLMAIN.C +$! Probably we don't want match as it probably doesn't implement VMS-style +$! matching, but I haven't looking into the issues yet. +$ CC/DECC/PREFIX=all match +$ LINK/exe=VMSBACKUP.EXE - +vmsbackup.obj,dclmain.obj,match.obj,sys$input/opt +identification="VMSBACKUP4.1.1" diff --git a/samples/DTrace/counts.d b/samples/DTrace/counts.d new file mode 100644 index 00000000..13725d99 --- /dev/null +++ b/samples/DTrace/counts.d @@ -0,0 +1,23 @@ +/* + * This software is in the public domain. + * + * $Id: counts.d 10510 2005-08-15 01:46:19Z kateturner $ + */ + +#pragma D option quiet + +self int tottime; +BEGIN { + tottime = timestamp; +} + +php$target:::function-entry + @counts[copyinstr(arg0)] = count(); +} + +END { + printf("Total time: %dus\n", (timestamp - tottime) / 1000); + printf("# calls by function:\n"); + printa("%-40s %@d\n", @counts); +} + diff --git a/samples/DTrace/javascript-trace.d b/samples/DTrace/javascript-trace.d new file mode 100644 index 00000000..0acbaa97 --- /dev/null +++ b/samples/DTrace/javascript-trace.d @@ -0,0 +1,73 @@ +/* -*- Mode: dtrace-script; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Copyright (C) 2007 Sun Microsystems, Inc. All Rights Reserved. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * javascript provider probes + * + * function-entry (filename, classname, funcname) + * function-info (filename, classname, funcname, lineno, + * runfilename, runlineno) + * function-args (filename, classname, funcname, argc, argv, argv0, + * argv1, argv2, argv3, argv4) + * function-rval (filename, classname, funcname, lineno, rval, rval0) + * function-return (filename, classname, funcname) + * object-create-start (filename, classname) + * object-create (filename, classname, *object, rlineno) + * object-create-done (filename, classname) + * object-finalize (NULL, classname, *object) + * execute-start (filename, lineno) + * execute-done (filename, lineno) + */ + +provider javascript { + probe function__entry(char *, char *, char *); + probe function__info(char *, char *, char *, int, char *, int); + probe function__args(char *, char *, char *, int, void *, void *, void *, + void *, void *, void *); + probe function__rval(char *, char *, char *, int, void *, void *); + probe function__return(char *, char *, char *); + probe object__create__start(char *, char *); + probe object__create__done(char *, char *); + /* XXX must use unsigned longs here instead of uintptr_t for OS X + (Apple radar: 5194316 & 5565198) */ + probe object__create(char *, char *, unsigned long, int); + probe object__finalize(char *, char *, unsigned long); + probe execute__start(char *, int); + probe execute__done(char *, int); +}; + +/* +#pragma D attributes Unstable/Unstable/Common provider mozilla provider +#pragma D attributes Private/Private/Unknown provider mozilla module +#pragma D attributes Private/Private/Unknown provider mozilla function +#pragma D attributes Unstable/Unstable/Common provider mozilla name +#pragma D attributes Unstable/Unstable/Common provider mozilla args +*/ + diff --git a/samples/DTrace/probes.d b/samples/DTrace/probes.d new file mode 100644 index 00000000..483f174d --- /dev/null +++ b/samples/DTrace/probes.d @@ -0,0 +1,93 @@ +/* ---------- + * DTrace probes for PostgreSQL backend + * + * Copyright (c) 2006-2009, PostgreSQL Global Development Group + * + * $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.11 2009/04/02 20:59:10 momjian Exp $ + * ---------- + */ + + +/* + * Typedefs used in PostgreSQL. + * + * NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc) + * in probe definitions, as they cause compilation errors on Mac OS X 10.5. + */ +#define LocalTransactionId unsigned int +#define LWLockId int +#define LWLockMode int +#define LOCKMODE int +#define BlockNumber unsigned int +#define Oid unsigned int +#define ForkNumber int +#define bool char + +provider postgresql { + + probe transaction__start(LocalTransactionId); + probe transaction__commit(LocalTransactionId); + probe transaction__abort(LocalTransactionId); + + probe lwlock__acquire(LWLockId, LWLockMode); + probe lwlock__release(LWLockId); + probe lwlock__wait__start(LWLockId, LWLockMode); + probe lwlock__wait__done(LWLockId, LWLockMode); + probe lwlock__condacquire(LWLockId, LWLockMode); + probe lwlock__condacquire__fail(LWLockId, LWLockMode); + + probe lock__wait__start(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE); + probe lock__wait__done(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE); + + probe query__parse__start(const char *); + probe query__parse__done(const char *); + probe query__rewrite__start(const char *); + probe query__rewrite__done(const char *); + probe query__plan__start(); + probe query__plan__done(); + probe query__execute__start(); + probe query__execute__done(); + probe query__start(const char *); + probe query__done(const char *); + probe statement__status(const char *); + + probe sort__start(int, bool, int, int, bool); + probe sort__done(bool, long); + + probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool); + probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool, bool); + probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid); + + probe buffer__checkpoint__start(int); + probe buffer__checkpoint__sync__start(); + probe buffer__checkpoint__done(); + probe buffer__sync__start(int, int); + probe buffer__sync__written(int); + probe buffer__sync__done(int, int, int); + probe buffer__write__dirty__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__write__dirty__done(ForkNumber, BlockNumber, Oid, Oid, Oid); + + probe deadlock__found(); + + probe checkpoint__start(int); + probe checkpoint__done(int, int, int, int, int); + probe clog__checkpoint__start(bool); + probe clog__checkpoint__done(bool); + probe subtrans__checkpoint__start(bool); + probe subtrans__checkpoint__done(bool); + probe multixact__checkpoint__start(bool); + probe multixact__checkpoint__done(bool); + probe twophase__checkpoint__start(); + probe twophase__checkpoint__done(); + + probe smgr__md__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int); + probe smgr__md__write__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int); + + probe xlog__insert(unsigned char, unsigned char); + probe xlog__switch(); + probe wal__buffer__write__dirty__start(); + probe wal__buffer__write__dirty__done(); +}; diff --git a/samples/Eiffel/application.e b/samples/Eiffel/application.e new file mode 100644 index 00000000..16426905 --- /dev/null +++ b/samples/Eiffel/application.e @@ -0,0 +1,44 @@ +note + description : "nino application root class" + date : "$Date$" + revision : "$Revision$" + +class + APPLICATION + +inherit + ARGUMENTS + + HTTP_SERVER_SHARED_CONFIGURATION + +create + make + +feature {NONE} -- Initialization + + make + -- Run application. + local + l_server : HTTP_SERVER + l_cfg: HTTP_SERVER_CONFIGURATION + l_http_handler : HTTP_HANDLER + do + create l_cfg.make + l_cfg.http_server_port := 9_000 + l_cfg.document_root := default_document_root + set_server_configuration (l_cfg) + debug ("nino") + l_cfg.set_is_verbose (True) + end + + create l_server.make (l_cfg) + create {APPLICATION_CONNECTION_HANDLER} l_http_handler.make (l_server) + l_server.setup (l_http_handler) + end + +feature -- Access + + default_document_root: STRING = "webroot" + +end + diff --git a/samples/Eiffel/book_collection.e b/samples/Eiffel/book_collection.e new file mode 100644 index 00000000..8959455a --- /dev/null +++ b/samples/Eiffel/book_collection.e @@ -0,0 +1,82 @@ +class + BOOK_COLLECTION + +create + make + +feature {NONE} -- Initialization + + make (a_name: STRING_32) + -- Create a book collection with `a_name' as `name'. + do + set_name (a_name) + create book_index.make (10) + ensure + name_set: name = a_name + end + +feature -- Access + + name: STRING_32 + -- Name. + + books: LIST [BOOK] + -- collection of book. + do + create {LINKED_LIST [BOOK]} Result.make + across + book_index as it + loop + Result.append (it.item) + end + end + + books_by_author (a_author: STRING_32): LIST [BOOK] + -- Books wrote by `a_author' in this collection. + do + if attached book_index [a_author] as l_result then + Result := l_result + else + create {LINKED_LIST [BOOK]} Result.make + end + end + +feature -- Change + + set_name (a_name: STRING_32) + -- Set `name' with `a_name'. + do + name := a_name + ensure + name_set: name = a_name + end + + add_book (a_book: BOOK) + -- Extend collection with `a_book'. + local + l: detachable LIST [BOOK] + do + l := book_index.at (a_book.author.name) + if l = Void then + create {LINKED_LIST [BOOK]} l.make + book_index.put (l, a_book.author.name) + end + l.force (a_book) + end + + add_books (book_list: like books) + -- Append collection with `book_list'. + do + across + book_list as it + loop + add_book (it.item) + end + end + +feature {NONE} -- Implementation + + book_index: HASH_TABLE [LIST [BOOK], STRING_32] + -- Association of author name and its books. + +end -- class BOOK_COLLECTION diff --git a/samples/Eiffel/git_checkout_command.e b/samples/Eiffel/git_checkout_command.e new file mode 100644 index 00000000..f78747d2 --- /dev/null +++ b/samples/Eiffel/git_checkout_command.e @@ -0,0 +1,41 @@ +note + description: "Git checkout command." + author: "Olivier Ligot" + +class + GIT_CHECKOUT_COMMAND + +inherit + GIT_COMMAND + +create + make, + make_master + +feature {NONE} -- Initialization + + make (a_branch: STRING) + -- Checkout the branch `a_branch'. + do + initialize + arguments.force_last (a_branch) + branch := a_branch + ensure + branch_set: branch = a_branch + end + + make_master + -- Checkout the master branch. + do + make ("master") + end + +feature -- Access + + branch: STRING + -- Branch to checkout + + name: STRING = "checkout" + -- Git subcommand name + +end diff --git a/samples/Elixir/filenames/mix.lock b/samples/Elixir/filenames/mix.lock new file mode 100644 index 00000000..830b074c --- /dev/null +++ b/samples/Elixir/filenames/mix.lock @@ -0,0 +1,10 @@ +%{"cowboy": {:hex, :cowboy, "1.0.0"}, + "cowlib": {:hex, :cowlib, "1.0.1"}, + "hackney": {:hex, :hackney, "0.14.3"}, + "hound": {:hex, :hound, "0.6.0"}, + "httpoison": {:hex, :httpoison, "0.5.0"}, + "idna": {:hex, :idna, "1.0.1"}, + "phoenix": {:hex, :phoenix, "0.10.0"}, + "plug": {:hex, :plug, "0.11.1"}, + "poison": {:hex, :poison, "1.3.1"}, + "ranch": {:hex, :ranch, "1.0.0"}} diff --git a/samples/Erlang/factorial.script! b/samples/Erlang/factorial similarity index 100% rename from samples/Erlang/factorial.script! rename to samples/Erlang/factorial diff --git a/samples/Erlang/filenames/rebar.config b/samples/Erlang/filenames/rebar.config new file mode 100644 index 00000000..91d3dff4 --- /dev/null +++ b/samples/Erlang/filenames/rebar.config @@ -0,0 +1,260 @@ +%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- +%% ex: ts=4 sw=4 ft=erlang et +%% This is a sample rebar.conf file that shows examples of some of rebar's +%% options. + +%% == Core == + +%% Extend list of always recursive commands +{recursive_cmds, []}. + +%% Check required ERTS or OTP release version +{require_erts_vsn, ".*"}. +{require_otp_vsn, ".*"}. +{require_min_otp_vsn, ".*"}. + +%% Additional library directories to add to the code path +{lib_dirs, []}. + +%% == Erlang Compiler == + +%% Erlang files to compile before the rest. Rebar automatically compiles +%% parse_transforms and custom behaviours before anything other than the files +%% in this list. +{erl_first_files, ["src/mymib1.erl", "src/mymib2.erl"]}. + +%% Erlang compiler options +{erl_opts, [no_debug_info, + {i, "myinclude"}, + {src_dirs, ["src", "src2", "src3"]}, + {platform_define, + "(linux|solaris|freebsd|darwin)", 'HAVE_SENDFILE'}, + {platform_define, "(linux|freebsd)", 'BACKLOG', 128}, + {platform_define, "R13", 'old_inets'}]}. + +%% MIB Options? +{mib_opts, []}. + +%% SNMP mibs to compile first? +{mib_first_files, []}. + +%% leex options +{xrl_opts, []}. + +%% leex files to compile first +{xrl_first_files, []}. + +%% yecc options +{yrl_opts, []}. + +%% yecc files to compile first +{yrl_first_files, []}. + +%% == EDoc == + +%% EDoc options +{edoc_opts, []}. + +%% == Port Compiler == + +%% Port compilation environment variables. See rebar_port_compiler.erl for +%% more info. Default is `[]' +{port_env, [{"CFLAGS", "$CFLAGS -Ifoo"}, + {"freebsd", "LDFLAGS", "$LDFLAGS -lfoo"}]}. + +%% port_specs +%% List of filenames or wildcards to be compiled. May also contain a tuple +%% consisting of a regular expression to be applied against the system +%% architecture as a filter. +{port_specs, [{"priv/so_name.so", ["c_src/*.c"]}, + {"linux", "priv/hello_linux", ["c_src/hello_linux.c"]}, + {"linux", "priv/hello_linux", ["c_src/*.c"], [{env, []}]}]}. + +%% == escriptize == +{escript_name, "application"}. +{escript_incl_apps, []}. +{escript_shebang, "#!/usr/bin/env escript\n"}. +{escript_comment, "%%\n"}. +{escript_emu_args, "%%! -pa application/application/ebin\n"}. + +%% == LFE Compiler == + +%% LFE files to compile before the rest +{lfe_first_files, []}. + +%% Options for the LFE compiler: reuse {erl_opts, []} + +%% == ErlyDTL Compiler == + +%% Options for the ErlyDTL compiler +{erlydtl_opts, []}. + +%% == Proto compiler == +{proto_opts, [ + {compiler, protobuffs}, + {src_dirs, ["src"]} +]}. +%% Available compilers for protocol buffer files (*.proto): +%% protobuffs (default) +%% gpb +%% Optional src_dirs which is a list of directories where +%% to look for .proto files, default is src + +%% Options for the gpb protocol buffer compiler, +%% if selected by the proto_compiler option +{gpb_opts, []}. + +%% == EUnit == + +%% Options for eunit:test() +{eunit_opts, []}. + +%% Additional compile options for eunit. erl_opts is also used +{eunit_compile_opts, []}. + +%% Same as erl_first_files, but used only when running 'eunit' +{eunit_first_files, []}. + +%% == Cover == + +%% Whether to enable coverage reporting. Default is `false' +{cover_enabled, false}. + +%% Whether to print coverage report to console. Default is `false' +{cover_print_enabled, false}. + +%% Whether to export coverage report to file. Default is `false' +{cover_export_enabled, false}. + +%% == Common Test == + +%% Override the default "test" directory in which SUITEs are located +{ct_dir, "itest"}. + +%% Override the default "logs" directory in which SUITEs are logged +{ct_log_dir, "test/logs"}. + +%% Option to pass extra parameters when launching Common Test +{ct_extra_params, "-boot start_sasl -s myapp"}. + +%% Option to use short names (i.e., -sname test) when starting ct +{ct_use_short_names, true}. + +%% == QuickCheck == + +%% If qc_mod is unspecified, rebar tries to detect Triq or EQC +{qc_opts, [{qc_mod, module()}, Options]}. + +%% Additional compile options for qc. erl_opts is also used +{qc_compile_opts, []}. + +%% Same as erl_first_files, but used only when running 'qc' +{qc_first_files, []}. + +%% == Cleanup == + +%% Which files to cleanup +{clean_files, ["file", "file2"]}. + +%% == OTP Applications == + +%% Enable validation of the OTP app module list. Default is 'true' +{validate_app_modules, true}. + +%% == Dependencies == + +%% Where to put any downloaded dependencies. Default is "deps" +{deps_dir, "deps"}. + +%% What dependencies we have, dependencies can be of 3 forms, an application +%% name as an atom, eg. mochiweb, a name and a version (from the .app file), or +%% an application name, a version and the SCM details on how to fetch it (SCM +%% type, location and revision). +%% Rebar currently supports git, hg, bzr, svn, rsync, fossil, and p4. +{deps, [app_name, + {rebar, "1.0.*"}, + {rebar, ".*", + {git, "git://github.com/rebar/rebar.git"}}, + {rebar, ".*", + {git, "git://github.com/rebar/rebar.git", "Rev"}}, + {rebar, "1.0.*", + {git, "git://github.com/rebar/rebar.git", {branch, "master"}}}, + {rebar, "1.0.0", + {git, "git://github.com/rebar/rebar.git", {tag, "1.0.0"}}}, + %% Dependencies can be marked as 'raw'. Rebar does not require + %% such dependencies to have a standard Erlang/OTP layout + %% which assumes the presence of either + %% "src/dependency_name.app.src" or "ebin/dependency_name.app" + %% files. + %% + %% 'raw' dependencies can still contain 'rebar.config' and + %% even can have the proper OTP directory layout, but they + %% won't be compiled. + %% + %% Only a subset of rebar commands will be executed on the + %% 'raw' subdirectories: get-deps, update-deps, check-deps, + %% list-deps and delete-deps. + {rebar, "", + {git, "git://github.com/rebar/rebar.git", {branch, "master"}}, + [raw]}, + {app_name, ".*", {hg, "https://www.example.org/url"}}, + {app_name, ".*", {rsync, "Url"}}, + {app_name, ".*", {svn, "https://www.example.org/url"}}, + {app_name, ".*", {svn, "svn://svn.example.org/url"}}, + {app_name, ".*", {bzr, "https://www.example.org/url", "Rev"}}, + {app_name, ".*", {fossil, "https://www.example.org/url"}}, + {app_name, ".*", {fossil, "https://www.example.org/url", "Vsn"}}, + {app_name, ".*", {p4, "//depot/subdir/app_dir"}}]}. + +%% == Subdirectories == + +%% Subdirectories? +{sub_dirs, ["dir1", "dir2"]}. + +%% == Plugins == + +%% Plugins you wish to include. +%% These can include any module on the code path, including deps. +%% Alternatively, plugins can be placed as source files in the plugin_dir, in +%% which case they will be compiled and loaded dynamically at runtime. +{plugins, [plugin1, plugin2]}. + +%% Override the directory in which plugin sources can be found. +%% Defaults to ./plugins +{plugin_dir, "some_other_directory"}. + + +%% == Pre/Post Command Hooks == + +{pre_hooks, [{clean, "./prepare_package_files.sh"}, + {"linux", compile, "c_src/build_linux.sh"}, + {compile, "escript generate_headers"}, + {compile, "escript check_headers"}]}. + +{post_hooks, [{clean, "touch file1.out"}, + {"freebsd", compile, "c_src/freebsd_tweaks.sh"}, + {eunit, "touch file2.out"}, + {compile, "touch postcompile.out"}]}. + +%% == xref == + +{xref_warnings, false}. + +%% optional extra paths to include in xref:set_library_path/2. +%% specified relative location of rebar.config. +%% e.g. {xref_extra_paths,["../gtknode/src"]} +{xref_extra_paths,[]}. + +%% xref checks to run +{xref_checks, [undefined_function_calls, undefined_functions, + locals_not_used, exports_not_used, + deprecated_function_calls, deprecated_functions]}. + +%% Optional custom xref queries (xref manual has details) specified as +%% {xref_queries, [{query_string(), expected_query_result()},...]} +%% The following for example removes all references to mod:*foo/4 +%% functions from undefined external function calls as those are in a +%% generated module +{xref_queries, + [{"(XC - UC) || (XU - X - B" + " - (\"mod\":\".*foo\"/\"4\"))",[]}]}. diff --git a/samples/Erlang/filenames/rebar.config.lock b/samples/Erlang/filenames/rebar.config.lock new file mode 100644 index 00000000..1627a9b1 --- /dev/null +++ b/samples/Erlang/filenames/rebar.config.lock @@ -0,0 +1,158 @@ +%% THIS FILE IS GENERATED. DO NOT EDIT IT MANUALLY %% + +{sub_dirs,["rel","apps/riak"]}. +{require_otp_vsn,"R16|17"}. +{cover_enabled,true}. +{lib_dirs,["apps/riak"]}. +{erl_opts,[debug_info,fail_on_warning]}. +{eunit_opts,[verbose]}. +{erlydtl_opts,[{compiler_options,[report,return,debug_info]}]}. +{deps,[{rebar_lock_deps_plugin,".*", + {git,"git://github.com/seth/rebar_lock_deps_plugin.git", + "7a5835029c42b8138325405237ea7e8516a84800"}}, + {node_package,".*", + {git,"git://github.com/basho/node_package.git", + "a829631eccebe3c1d7657a0075584f55bf342977"}}, + {goldrush,".*", + {git,"git://github.com/DeadZen/goldrush.git", + "71e63212f12c25827e0c1b4198d37d5d018a7fec"}}, + {lager,".*", + {git,"git://github.com/basho/lager.git", + "b6b6cebcb27ccff8acc59ae775acebc2f52e4926"}}, + {syslog,".*", + {git,"git://github.com/Vagabond/erlang-syslog.git", + "918c9b453e0811b24f2c99b35b712b0ef9f29c7e"}}, + {lager_syslog,".*", + {git,"git://github.com/basho/lager_syslog.git", + "fa2e7e3daee0d0a59dadb820fd3381eac4a65770"}}, + {cluster_info,".*", + {git,"git://github.com/basho/cluster_info.git", + "e231144ca32dc83317be3360a4a259c73826b08a"}}, + {sidejob,".*", + {git,"git://github.com/basho/sidejob.git", + "c5aabba2d7daa80c340e110902bbcfcb552ccdcf"}}, + {erlang_js,".*", + {git,"git://github.com/basho/erlang_js.git", + "07467d899ab90a2b719ad19ab0be0048c1c8d873"}}, + {meck,".*", + {git,"git://github.com/basho/meck.git", + "dde759050eff19a1a80fd854d7375174b191665d"}}, + {getopt,".*", + {git,"git://github.com/jcomellas/getopt.git", + "659a28f4145bc9843598972854299dc4ea77e4cb"}}, + {neotoma,".*", + {git,"git://github.com/seancribbs/neotoma.git", + "760928ec8870da02eb11bccb501e2700925d06c6"}}, + {cuttlefish,".*", + {git,"git://github.com/basho/cuttlefish.git", + "c92c8325aeaea6b6ba7516bbd434f8e408f87d60"}}, + {bitcask,".*", + {git,"git://github.com/basho/bitcask.git", + "c74d0c43fdefdd435f7621ddf1fc2995b5bd123c"}}, + {eper,".*", + {git,"git://github.com/basho/eper.git", + "7222ecaebceb5422e74a9c1503043bbc6036f6b7"}}, + {edown,".*", + {git,"git://github.com/uwiger/edown.git", + "d62ec85281e451a46ba30045917c119d65b72a84"}}, + {sext,".*", + {git,"git://github.com/basho/sext.git", + "846b9cc22456287a572efd4c924203d77778670f"}}, + {poolboy,".*", + {git,"git://github.com/basho/poolboy.git", + "8bb45fbc715c5f493642a1cc572ec7017d0d5fa3"}}, + {basho_stats,".*", + {git,"git://github.com/basho/basho_stats.git", + "19c532af235ae675439d491b329c55c2f9b02deb"}}, + {riak_sysmon,".*", + {git,"git://github.com/basho/riak_sysmon.git", + "26a58bcaba96d07df885f7b3db4d4306f995ce14"}}, + {eleveldb,".*", + {git,"git://github.com/basho/eleveldb.git", + "0e4e4e7cf3ddc26523a77f853ea9409c1707b26c"}}, + {riak_ensemble,".*", + {git,"git://github.com/basho/riak_ensemble", + "78dc8f623353a212ca3cf12236d1e9ac824bde16"}}, + {pbkdf2,".*", + {git,"git://github.com/basho/erlang-pbkdf2.git", + "7076584f5377e98600a7e2cb81980b2992fb2f71"}}, + {parse_trans,".*", + {git,"git://github.com/uwiger/parse_trans.git", + "82cc00264aa1bad8fc5c0739b7541feb4a843432"}}, + {bear,".*", + {git,"git://github.com/basho/bear.git", + "da820a13c607c3f816ee8b83c587266da5389761"}}, + {folsom,".*", + {git,"git://github.com/basho/folsom.git", + "72944523b6467c9f7add5f1c96dd5020424a2681"}}, + {setup,".*", + {git,"git://github.com/uwiger/setup.git", + "51ee7c9f64d2bbe9dcbb58c278e8fbfd4d0ca5e2"}}, + {exometer_core,".*", + {git,"git://github.com/basho/exometer_core.git", + "b47a5d65d9500c2b8f6ccc50e34005503589ef77"}}, + {clique,".*", + {git,"git://github.com/basho/clique.git", + "3af4db8ea0f74aca42f6713446dcd5915c795a74"}}, + {riak_core,".*", + {git,"git://github.com/basho/riak_core.git", + "044c4e7f8dbfe8c49c45f2f7090adff4cd5aba50"}}, + {riak_pipe,".*", + {git,"git://github.com/basho/riak_pipe.git", + "3c0abc7ba301d57940c5a9c5de368b70429c28ff"}}, + {protobuffs,".*", + {git,"git://github.com/basho/erlang_protobuffs.git", + "f88fc3c6881687432ddd5546b3c7b08009dfb26f"}}, + {riak_pb,".*", + {git,"git://github.com/basho/riak_pb.git", + "78c50efa698f33f7d6ab1c7f5fa4666ec03b46b4"}}, + {mochiweb,".*", + {git,"git://github.com/basho/mochiweb.git", + "ade2a9b29a11034eb550c1d79b4f991bf5ca05ba"}}, + {webmachine,".*", + {git,"git://github.com/basho/webmachine.git", + "7677c240f4a7ed020f4bab48278224966bb42311"}}, + {riak_api,".*", + {git,"git://github.com/basho/riak_api.git", + "2781e66796903bc6847bffcf71a6ba7a05d69275"}}, + {riak_dt,".*", + {git,"git://github.com/basho/riak_dt.git", + "f7981d4ad7407ddc085f133f204dd71bf9d50c56"}}, + {eunit_formatters,".*", + {git,"git://github.com/seancribbs/eunit_formatters", + "96b6ced4d45ba641cbf2c8a8ae9b350dd300bc10"}}, + {riak_kv,".*", + {git,"git://github.com/basho/riak_kv.git", + "404619cb57574cd43e2dc0dc0453884ec6732a99"}}, + {merge_index,".*", + {git,"git://github.com/basho/merge_index.git", + "b701dde5c28956c3b629411e5ff7e50cbb5cb4b3"}}, + {riak_search,".*", + {git,"git://github.com/basho/riak_search.git", + "8fe4a8c020a74c52ee877bf6dd410824b4f79f8b"}}, + {erlydtl,".*", + {git,"git://github.com/evanmiller/erlydtl.git", + "d20b53f04837a1053ed18987f645cb60eae82453"}}, + {riak_control,".*", + {git,"git://github.com/basho/riak_control.git", + "09073ce672260e1ec0ba3999fabed7f319624ba1"}}, + {riaknostic,".*", + {git,"git://github.com/basho/riaknostic.git", + "101d95bddff4b70afcd1dd5442b8c6651887e0a4"}}, + {kvc,".*", + {git,"git://github.com/etrepum/kvc.git", + "5565fe51857747662410cc3c06362ebcf48a2f04"}}, + {ibrowse,".*", + {git,"git://github.com/cmullaparthi/ibrowse.git", + "e8ae353c16d4f0897abb9f80025b52925b974dd1"}}, + {yokozuna,".*", + {git,"git://github.com/basho/yokozuna.git", + "5868266b11f131d14c85495e50f899f3fe8158ba"}}, + {canola,".*", + {git,"git://github.com/basho/canola.git", + "9bdfee88fce20b3a01b7003696b53eb21913d6fb"}}, + {riak_auth_mods,".*", + {git,"git://github.com/basho/riak_auth_mods.git", + "31b8b30e6c215418522eaa615264ae9769a87410"}}]}. +{plugins,[rebar_lock_deps_plugin]}. + diff --git a/samples/Erlang/filenames/rebar.lock b/samples/Erlang/filenames/rebar.lock new file mode 100644 index 00000000..1d3a3982 --- /dev/null +++ b/samples/Erlang/filenames/rebar.lock @@ -0,0 +1,16 @@ +[{<<"goldrush">>, + {git,"git://github.com/DeadZen/goldrush.git", + {ref,"71e63212f12c25827e0c1b4198d37d5d018a7fec"}}, + 1}, + {<<"riak_dt">>, + {git,"git://github.com/helium/riak_dt.git", + {ref,"15d66cb26c2028c1ad1271c359b1d5da213825c3"}}, + 0}, + {<<"lager">>, + {git,"git://github.com/basho/lager.git", + {ref,"d33ccf3b69de09a628fe38b4d7981bb8671b8a4f"}}, + 0}, + {<<"eleveldb">>, + {git,"git://github.com/helium/eleveldb.git", + {ref,"29a5360dc0365b3330dd0cd45b0b8166f3b854be"}}, + 0}]. diff --git a/samples/Erlang/release.script! b/samples/Erlang/release similarity index 100% rename from samples/Erlang/release.script! rename to samples/Erlang/release diff --git a/samples/Filterscript/colormatrix.fs b/samples/Filterscript/colormatrix.fs new file mode 100644 index 00000000..86fb2482 --- /dev/null +++ b/samples/Filterscript/colormatrix.fs @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ip.rsh" + +static rs_matrix4x4 Mat; + +void init() { + rsMatrixLoadIdentity(&Mat); +} + +void setMatrix(rs_matrix4x4 m) { + Mat = m; +} + +uchar4 __attribute__((kernel)) root(uchar4 in) { + float4 f = convert_float4(in); + f = rsMatrixMultiply(&Mat, f); + f = clamp(f, 0.f, 255.f); + return convert_uchar4(f); +} + diff --git a/samples/Filterscript/fs_kernel.fs b/samples/Filterscript/fs_kernel.fs new file mode 100644 index 00000000..d8f0c4d6 --- /dev/null +++ b/samples/Filterscript/fs_kernel.fs @@ -0,0 +1,18 @@ +#pragma version(1) +#pragma rs java_package_name(foo) + +int __attribute__((kernel)) root(uint32_t ain) { + return 0; +} + +void __attribute__((kernel)) in_only(uint32_t ain) { +} + +int __attribute__((kernel)) out_only() { + return 0; +} + +int __attribute__((kernel)) everything(uint32_t ain, uint32_t x, uint32_t y) { + return 0; +} + diff --git a/samples/Formatted/long_seq.for b/samples/Formatted/long_seq.for new file mode 100644 index 00000000..eadf8036 --- /dev/null +++ b/samples/Formatted/long_seq.for @@ -0,0 +1,919 @@ +ACCEPTABLE LEFT PRIMERS + 1-based # self self hair- qual- + # sequence start ln N GC% Tm any_th end_th pin lity + 0 tgctagctaggcgatgctag 411 20 0 55.00 60.028 23.16 23.16 38.59 0.028 + 1 actgatacgcgatgctagct 476 20 0 50.00 59.957 17.69 1.35 0.00 0.043 + 2 gatcgatgctagctaggcga 405 20 0 55.00 60.100 16.30 16.30 0.00 0.100 + 3 tcgatcgatgctagctaggc 403 20 0 55.00 60.100 18.63 8.45 0.00 0.100 + 4 tagctgatcgatcgtagcgg 565 20 0 55.00 60.101 25.02 17.36 0.00 0.101 + 5 gctgactgatcgatcgatgc 113 20 0 55.00 59.826 24.08 17.09 35.21 0.174 + 6 tatcatctctgcgcgatcga 361 20 0 50.00 59.747 22.07 1.72 38.48 0.253 + 7 agctaggcgatgctagctag 415 20 0 55.00 59.742 17.46 17.46 41.54 0.258 + 8 ctagctaggcgatgctagct 413 20 0 55.00 59.742 18.68 17.35 43.53 0.258 + 9 ggcgatctagctagctgact 583 20 0 55.00 59.671 17.44 7.44 37.58 0.329 + 10 tcgatgctagctaggcgatg 407 20 0 55.00 60.382 14.03 0.00 0.00 0.382 + 11 gctgatcgatcgatgctagc 398 20 0 55.00 59.618 25.97 24.79 35.21 0.382 + 12 gctagctgatcgatcgatgc 394 20 0 55.00 59.618 24.08 21.09 35.21 0.382 + 13 atcatctctgcgcgatcgat 362 20 0 50.00 60.382 22.07 5.02 38.48 0.382 + 14 gactgatacgcgatgctagc 475 20 0 55.00 59.551 8.61 8.61 0.00 0.449 + 15 atcgatgctagctaggcgat 406 20 0 50.00 59.452 18.43 18.43 0.00 0.548 + 16 gctagctgactgatacgcga 468 20 0 55.00 60.589 16.29 0.00 0.00 0.589 + 17 agctagctgactgatacgcg 467 20 0 55.00 60.590 17.99 3.89 0.00 0.590 + 18 atgctagctaggcgatgcta 410 20 0 50.00 59.375 10.59 8.91 0.00 0.625 + 19 ctatcatctctgcgcgatcg 360 20 0 55.00 59.347 12.19 12.19 39.07 0.653 + 20 gatgctagctaggcgatgct 409 20 0 55.00 60.668 7.01 7.53 0.00 0.668 + 21 gctactatcatctctgcgcg 356 20 0 55.00 59.273 0.00 0.00 0.00 0.727 + 22 cgtagcggcgatctagctag 577 20 0 60.00 60.791 15.64 15.64 37.58 0.791 + 23 cggcgatctagctagctgac 582 20 0 60.00 61.003 14.84 7.25 38.70 1.003 + 24 gctagctgatcgatcgtagc 563 20 0 55.00 58.995 23.70 23.70 0.00 1.005 + 25 gatcgatcgatgtgcggcta 81 20 0 55.00 61.006 19.16 0.00 41.65 1.006 + 26 atcgatcgatgtgcggctag 82 20 0 55.00 61.008 29.65 0.00 41.65 1.008 + 27 gctgactgatacgcgatgc 472 19 0 57.89 60.025 0.00 0.00 0.00 1.025 + 28 agctagctgatcatcgatgct 190 21 0 47.62 60.035 17.99 11.09 0.00 1.035 + 29 gctagctagctgactgatcga 105 21 0 52.38 60.037 34.38 0.00 46.11 1.037 + 30 tcatctctgcgcgatcgat 363 19 0 52.63 59.946 22.07 0.12 38.48 1.054 + 31 atcatctctgcgcgatcga 362 19 0 52.63 59.946 22.07 1.72 38.48 1.054 + 32 atcgatcgatgtgcggcta 82 19 0 52.63 59.945 29.65 0.00 41.65 1.055 + 33 gtagcggcgatctagctagc 578 20 0 60.00 61.071 16.97 7.15 39.86 1.071 + 34 gctagctgactgatcgatcg 109 20 0 55.00 58.924 16.84 13.89 0.00 1.076 + 35 gctgatcgatcgatgtgcg 78 19 0 57.89 60.097 29.87 18.15 42.69 1.097 + 36 tatcatctctgcgcgatcgat 361 21 0 47.62 60.172 22.07 11.47 38.48 1.172 + 37 gctagctagctgatcgatcga 390 21 0 52.38 60.172 34.38 22.52 46.11 1.172 + 38 gctagctagctgatcgatcga 70 21 0 52.38 60.172 34.38 22.52 46.11 1.172 + 39 catctctgcgcgatcgatg 364 19 0 57.89 59.810 13.74 13.74 38.48 1.190 + 40 tcgtagcggcgatctagcta 576 20 0 55.00 61.231 11.55 9.27 36.40 1.231 + 41 actgatacgcgatgctagcta 476 21 0 47.62 59.765 17.69 3.08 0.00 1.235 + 42 actgatcgatcgatgctagct 117 21 0 47.62 59.763 23.29 11.70 35.21 1.237 + 43 agctagctgatcgatcgatgt 73 21 0 47.62 59.763 17.99 2.62 35.21 1.237 + 44 tagcggcgatctagctagct 579 20 0 55.00 61.243 23.74 23.74 46.60 1.243 + 45 cgtagcggcgatctagcta 577 19 0 57.89 59.729 11.55 9.27 37.58 1.271 + 46 ctagctgatcgatcgtagcg 564 20 0 55.00 58.727 25.02 15.05 0.00 1.273 + 47 tagcggcgatctagctagc 579 19 0 57.89 59.725 16.97 9.14 39.86 1.275 + 48 catcgatcgatgcatgcatg 442 20 0 50.00 58.722 37.80 23.31 44.93 1.278 + 49 tcatctctgcgcgatcgatg 363 20 0 55.00 61.279 18.01 18.01 38.48 1.279 + 50 gctagctagctgatcgatcg 559 20 0 55.00 58.714 34.38 11.90 46.11 1.286 + 51 gctagctagctgatcgatcg 390 20 0 55.00 58.714 34.38 11.90 46.11 1.286 + 52 gctagctagctgatcgatcg 70 20 0 55.00 58.714 34.38 11.90 46.11 1.286 + 53 agcatcggattagctagctga 3 21 0 47.62 59.689 28.29 20.88 0.00 1.311 + 54 agctgatcgatcgtagcgg 566 19 0 57.89 60.315 25.02 17.36 0.00 1.315 + 55 cggcgatctagctagctga 582 19 0 57.89 59.650 21.57 16.66 38.70 1.350 + 56 ctagctgatcgatcgatgtgc 75 21 0 52.38 59.643 31.83 30.04 35.21 1.357 + 57 gctagctgatcgatcgatgtg 74 21 0 52.38 59.643 12.06 6.93 35.21 1.357 + 58 gctagctaggcgatgctagc 412 20 0 60.00 61.357 30.41 30.41 46.19 1.357 + 59 tagctagctgactgatacgcg 466 21 0 52.38 60.373 28.29 3.89 0.00 1.373 + 60 gctagctgactgatcgatcga 109 21 0 52.38 60.374 22.52 22.52 0.00 1.374 + 61 agctagctgactgatcgatcg 108 21 0 52.38 60.374 17.99 13.89 0.00 1.374 + 62 cgatcgatgctagctaggcg 404 20 0 60.00 61.409 15.59 9.14 0.00 1.409 + 63 gctagctagctgactgatcg 105 20 0 55.00 58.563 34.38 1.84 46.11 1.437 + 64 atgctagctaggcgatgct 410 19 0 52.63 59.561 10.59 7.53 0.00 1.439 + 65 agctagctgatcgatcgtagc 562 21 0 52.38 60.441 26.87 26.87 0.00 1.441 + 66 gctagctagctgatcgatcgt 559 21 0 52.38 60.441 34.38 2.65 46.11 1.441 + 67 tagctaggcgatgctagctag 414 21 0 52.38 59.559 18.42 17.46 42.44 1.441 + 68 ctagctaggcgatgctagcta 413 21 0 52.38 59.559 18.69 17.64 42.44 1.441 + 69 tagctgatcgatcgatgtgc 76 20 0 50.00 58.558 31.83 30.04 35.21 1.442 + 70 gatgctagctaggcgatgcta 409 21 0 52.38 60.444 9.82 8.91 0.00 1.444 + 71 atgctagctaggcgatgctag 410 21 0 52.38 60.444 23.16 23.16 38.59 1.444 + 72 gctagctgatcatcgatgct 191 20 0 50.00 58.539 16.29 12.14 0.00 1.461 + 73 agctagctgatcatcgatgc 190 20 0 50.00 58.539 21.42 9.22 0.00 1.461 + 74 gctgactgatacgcgatgct 472 20 0 55.00 61.494 2.33 0.00 0.00 1.494 + 75 agctgactgatacgcgatgc 471 20 0 55.00 61.494 3.47 0.00 0.00 1.494 + 76 ggcgatctagctagctgacta 583 21 0 52.38 59.491 17.44 5.40 37.58 1.509 + 77 gatcgatgctagctaggcgat 405 21 0 52.38 60.510 21.61 21.61 0.00 1.510 + 78 atcgatcgatgctagctaggc 402 21 0 52.38 60.510 29.65 8.45 33.56 1.510 + 79 ctgatcgatcgatgtgcgg 79 19 0 57.89 59.447 15.54 5.83 41.65 1.553 + 80 agctgatcgatcgatgtgcg 77 20 0 55.00 61.556 31.92 20.26 42.69 1.556 + 81 cgatcatcgatgctagctagc 548 21 0 52.38 59.444 34.89 34.89 46.99 1.556 + 82 tagctaggcgatgctagcta 414 20 0 50.00 58.433 19.37 17.81 42.44 1.567 + 83 agctagctactgatcgatgct 303 21 0 47.62 59.415 17.56 11.51 0.00 1.585 + 84 tcgatcgatgtgcggctag 83 19 0 57.89 60.606 18.63 0.00 41.65 1.606 + 85 gactgatcgatcgatgctagc 116 21 0 52.38 59.378 15.86 8.45 35.21 1.622 + 86 agctagctgactgatcgatca 260 21 0 47.62 59.347 26.99 26.99 35.44 1.653 + 87 ctgactgatacgcgatgctag 473 21 0 52.38 59.312 1.70 0.00 0.00 1.688 + 88 ctagctgactgatacgcgatg 469 21 0 52.38 59.312 0.00 0.00 0.00 1.688 + 89 gctactatcatctctgcgcga 356 21 0 52.38 60.707 2.71 2.71 0.00 1.707 + 90 agctactatcatctctgcgcg 355 21 0 52.38 60.709 0.00 0.00 0.00 1.709 + 91 actatcatctctgcgcgatc 359 20 0 50.00 58.270 4.99 0.00 0.00 1.730 + 92 actgatcgatcgatgctagc 117 20 0 50.00 58.270 23.29 13.61 35.21 1.730 + 93 gctagctgatcgatcgatgt 74 20 0 50.00 58.270 14.29 2.62 35.21 1.730 + 94 ctatcatctctgcgcgatcga 360 21 0 52.38 60.771 22.07 1.72 38.48 1.771 + 95 atcgatgctagctaggcgatg 406 21 0 52.38 60.779 21.16 4.37 0.00 1.779 + 96 tgactgatacgcgatgctag 474 20 0 50.00 58.207 1.70 0.00 0.00 1.793 + 97 ctgactgatacgcgatgcta 473 20 0 50.00 58.207 2.33 0.00 0.00 1.793 + 98 tagctgactgatacgcgatg 470 20 0 50.00 58.207 0.00 0.00 0.00 1.793 + 99 ctgactgatcgatcgatgct 114 20 0 50.00 58.197 26.44 12.40 35.21 1.803 + 100 agctgactgatcgatcgatg 112 20 0 50.00 58.197 23.05 13.21 35.21 1.803 + 101 tcggattagctagctgatgc 7 20 0 50.00 58.176 17.46 17.46 40.05 1.824 + 102 gcatcggattagctagctga 4 20 0 50.00 58.176 28.29 20.88 0.00 1.824 + 103 agcatcggattagctagctg 3 20 0 50.00 58.171 28.29 10.80 0.00 1.829 + 104 gatgctagctaggcgatgc 409 19 0 57.89 59.141 4.18 0.00 0.00 1.859 + 105 ctgatacgcgatgctagctag 477 21 0 52.38 59.113 17.46 17.46 0.00 1.887 + 106 gctagctgactgatacgcg 468 19 0 57.89 59.086 8.21 3.89 0.00 1.914 + 107 ctctgcgcgatcgatgctag 367 20 0 60.00 61.946 21.94 18.16 38.48 1.946 + 108 tctgcgcgatcgatgctag 368 19 0 57.89 60.966 21.94 18.16 38.48 1.966 + 109 ctctgcgcgatcgatgcta 367 19 0 57.89 60.966 26.61 17.10 38.48 1.966 + 110 cgatgctagctaggcgatgc 408 20 0 60.00 61.968 11.09 0.00 0.00 1.968 + 111 gactgatacgcgatgctagct 475 21 0 52.38 60.975 17.69 1.35 0.00 1.975 + 112 gctagctgactgatacgcgat 468 21 0 52.38 60.975 8.21 0.00 0.00 1.975 + 113 tgatacgcgatgctagctag 478 20 0 50.00 57.994 17.46 17.46 0.00 2.006 + 114 ctgatacgcgatgctagcta 477 20 0 50.00 57.994 17.69 3.08 0.00 2.006 + 115 cgcgatcgatgctagctagc 372 20 0 60.00 62.011 34.89 34.89 43.67 2.011 + 116 gcgcgatcgatgctagctag 371 20 0 60.00 62.011 21.66 17.46 38.48 2.011 + 117 ctgatcgatcgatgctagct 399 20 0 50.00 57.983 19.70 2.01 35.21 2.017 + 118 agctgatcgatcgatgctag 397 20 0 50.00 57.983 27.33 18.05 34.69 2.017 + 119 ctagctgatcgatcgatgct 395 20 0 50.00 57.983 33.87 33.38 38.16 2.017 + 120 agctagctgatcgatcgatg 393 20 0 50.00 57.983 21.99 11.03 35.21 2.017 + 121 ctgatcgatcgatgctagct 118 20 0 50.00 57.983 19.70 2.01 35.21 2.017 + 122 agctagctgatcgatcgatg 73 20 0 50.00 57.983 21.99 11.03 35.21 2.017 + 123 catcggattagctagctgatgc 5 22 0 50.00 59.982 24.41 24.41 40.05 2.018 + 124 gcatcggattagctagctgatg 4 22 0 50.00 59.982 27.81 27.81 33.28 2.018 + 125 tcgatgctagctaggcgat 407 19 0 52.63 58.964 14.03 3.01 0.00 2.036 + 126 atcgatgctagctaggcga 406 19 0 52.63 58.964 16.30 16.30 0.00 2.036 + 127 actatcatctctgcgcgatcg 359 21 0 52.38 61.037 12.19 12.19 39.07 2.037 + 128 gcgcgatcgatgctagcta 371 19 0 57.89 61.037 21.66 3.08 38.48 2.037 + 129 gctgatcgatcgatgctagct 398 21 0 52.38 61.044 27.88 12.70 35.21 2.044 + 130 agctgatcgatcgatgctagc 397 21 0 52.38 61.044 27.33 27.90 34.69 2.044 + 131 gctagctgatcgatcgatgct 394 21 0 52.38 61.044 33.87 33.38 38.16 2.044 + 132 agctagctgatcgatcgatgc 393 21 0 52.38 61.044 24.08 21.09 35.21 2.044 + 133 cgcgatcgatgctagctag 372 19 0 57.89 58.947 22.07 17.46 38.48 2.053 + 134 tcgtagcggcgatctagc 576 18 0 61.11 59.936 4.70 0.00 36.40 2.064 + 135 cgtagcggcgatctagct 577 18 0 61.11 59.935 11.03 11.03 37.58 2.065 + 136 gcggcgatctagctagct 581 18 0 61.11 59.933 23.74 23.74 38.05 2.067 + 137 agcggcgatctagctagc 580 18 0 61.11 59.933 16.97 7.15 39.86 2.067 + 138 ctagctgactgatacgcgat 469 20 0 50.00 57.918 1.43 0.00 0.00 2.082 + 139 ctagctgatcgatcgtagcgg 564 21 0 57.14 61.096 20.31 16.15 0.00 2.096 + 140 agctactatcatctctgcgc 355 20 0 50.00 57.898 0.00 0.00 0.00 2.102 + 141 gctagctactgatcgatgct 304 20 0 50.00 57.898 11.51 11.51 0.00 2.102 + 142 agctagctactgatcgatgc 303 20 0 50.00 57.898 17.56 1.76 0.00 2.102 + 143 agcatcggattagctagctgat 3 22 0 45.45 60.108 17.84 15.13 0.00 2.108 + 144 tgctagctaggcgatgcta 411 19 0 52.63 58.881 17.69 8.91 0.00 2.119 + 145 aagcatcggattagctagctg 2 21 0 47.62 58.879 28.29 10.80 0.00 2.121 + 146 tctgcgcgatcgatgcta 368 18 0 55.56 59.857 26.61 16.13 38.48 2.143 + 147 cgatgctagctaggcgatg 408 19 0 57.89 58.856 11.09 0.00 0.00 2.144 + 148 agctagctgatcatcgatgcta 190 22 0 45.45 59.845 17.99 13.09 0.00 2.155 + 149 tagctagctgatcatcgatgct 189 22 0 45.45 59.845 16.29 15.30 0.00 2.155 + 150 atcgatcgatgtgcggct 82 18 0 55.56 60.166 29.65 4.36 41.65 2.166 + 151 gctagctgactgatcgatca 261 20 0 50.00 57.829 26.99 26.99 35.44 2.171 + 152 tagctagctgactgatcgatcg 107 22 0 50.00 60.174 28.29 13.89 0.00 2.174 + 153 agctgatcatcatcgatgct 515 20 0 45.00 57.788 11.25 0.72 40.32 2.212 + 154 agctagctgactgatcgatcat 260 22 0 45.45 59.778 26.67 18.02 36.62 2.222 + 155 tgactgatacgcgatgctagc 474 21 0 52.38 61.238 8.61 8.61 0.00 2.238 + 156 gctgactgatacgcgatgcta 472 21 0 52.38 61.238 2.33 0.00 0.00 2.238 + 157 tagctgactgatacgcgatgc 470 21 0 52.38 61.238 3.47 0.00 0.00 2.238 + 158 tagctagctgatcgatcgtagc 561 22 0 50.00 60.238 26.87 26.87 0.00 2.238 + 159 gctagctagctgatcgatcgta 559 22 0 50.00 60.238 34.38 3.07 46.11 2.238 + 160 tgatcgatcgatgctagctagg 400 22 0 50.00 60.239 26.44 6.29 35.21 2.239 + 161 gctgactgatcgatcgatgct 113 21 0 52.38 61.244 26.44 12.40 35.21 2.244 + 162 agctgactgatcgatcgatgc 112 21 0 52.38 61.244 24.08 19.43 35.21 2.244 + 163 gatcgatcgatgtgcggct 81 19 0 57.89 61.263 19.16 0.00 41.65 2.263 + 164 gctgatcatcgatgctactagc 195 22 0 50.00 59.727 18.08 16.44 45.61 2.273 + 165 gctagctgatcatcgatgctac 191 22 0 50.00 59.727 9.57 5.47 0.00 2.273 + 166 gatcgatcgatgtgcggc 81 18 0 61.11 59.714 18.10 0.95 41.65 2.286 + 167 ctagctagctgactgatacgc 465 21 0 52.38 58.703 14.90 0.00 0.00 2.297 + 168 tagctgatcgatcgatgtgcg 76 21 0 52.38 61.299 31.92 20.26 42.69 2.299 + 169 agctgatcgatcgatgtgc 77 19 0 52.63 58.698 31.83 30.04 35.21 2.302 + 170 gctgatcatcatcgatgctagc 516 22 0 50.00 60.302 10.80 10.34 40.32 2.302 + 171 gctagctgatcatcatcgatgc 512 22 0 50.00 60.302 21.42 7.40 40.32 2.302 + 172 aagcatcggattagctagctga 2 22 0 45.45 60.306 28.29 20.88 0.00 2.306 + 173 gatcgatcgtagcggcga 570 18 0 61.11 60.318 13.01 8.51 45.59 2.318 + 174 atcggattagctagctgatgc 6 21 0 47.62 58.673 17.46 17.46 40.05 2.327 + 175 gcatcggattagctagctgat 4 21 0 47.62 58.673 17.84 15.13 0.00 2.327 + 176 gcggcgatctagctagctg 581 19 0 63.16 61.329 17.07 8.17 38.05 2.329 + 177 tgctagtgatgcatgctagt 24 20 0 45.00 57.636 24.96 11.17 35.89 2.364 + 178 ctactatcatctctgcgcga 357 20 0 50.00 57.636 2.71 2.71 0.00 2.364 + 179 actagctagctgactgatacgc 464 22 0 50.00 60.368 21.52 0.00 0.00 2.368 + 180 gctagctagctgatcatcga 187 20 0 50.00 57.613 34.38 0.24 46.11 2.387 + 181 tctctgcgcgatcgatgcta 366 20 0 55.00 62.413 26.61 17.10 38.48 2.413 + 182 tgatcgatcgatgctagctagt 119 22 0 45.45 59.586 26.44 5.69 35.21 2.414 + 183 actgatcgatcgatgctagcta 117 22 0 45.45 59.586 23.29 7.65 35.21 2.414 + 184 tagctagctgatcgatcgatgt 72 22 0 45.45 59.586 14.29 2.62 35.21 2.414 + 185 agctaggcgatgctagcta 415 19 0 52.63 58.572 17.69 3.08 41.54 2.428 + 186 tagctaggcgatgctagct 414 19 0 52.63 58.572 17.35 17.35 43.53 2.428 + 187 gatcgatcgatgctagctagg 401 21 0 52.38 58.567 23.89 6.29 35.21 2.433 + 188 gctagctagctgactgatcgat 105 22 0 50.00 60.434 34.38 0.00 46.11 2.434 + 189 gatcgatgctagctaggcg 405 19 0 57.89 58.563 15.59 9.02 0.00 2.437 + 190 cgatcgatgctagctaggc 404 19 0 57.89 58.563 14.87 8.45 0.00 2.437 + 191 tagctagctgactgatacgc 466 20 0 50.00 57.549 28.29 0.00 0.00 2.451 + 192 agctagctgactgatcgatc 260 20 0 50.00 57.536 19.32 19.32 0.00 2.464 + 193 agctagctgactgatcgatc 108 20 0 50.00 57.536 19.32 19.32 0.00 2.464 + 194 aaagcatcggattagctagctg 1 22 0 45.45 59.524 28.29 10.80 0.00 2.476 + 195 gctgactgatcgatcatcatgc 265 22 0 50.00 60.493 25.66 25.12 41.77 2.493 + 196 tagctactatcatctctgcgcg 354 22 0 50.00 60.495 0.00 0.00 0.00 2.495 + 197 ctgatcgatcgatgtgcggc 79 20 0 60.00 62.497 15.54 4.15 41.65 2.497 + 198 gctgatcgatcgatgtgcgg 78 20 0 60.00 62.497 29.87 22.23 41.65 2.497 + 199 tcgtagcggcgatctagct 576 19 0 57.89 61.503 11.03 11.03 36.40 2.503 + 200 agcggcgatctagctagct 580 19 0 57.89 61.519 23.74 23.74 42.96 2.519 + 201 ctagctagctgatcatcgatgc 188 22 0 50.00 59.470 21.42 9.22 0.00 2.530 + 202 gctagctagctgatcatcgatg 187 22 0 50.00 59.470 34.38 20.23 46.11 2.530 + 203 tcatctctgcgcgatcga 363 18 0 55.56 59.468 22.07 0.00 38.48 2.532 + 204 tcgatcgatgtgcggcta 83 18 0 55.56 59.465 18.63 0.00 41.65 2.535 + 205 tgatcgatcgatgtgcggc 80 19 0 57.89 61.549 21.27 8.44 41.65 2.549 + 206 ctagctaggcgatgctagctag 413 22 0 54.55 60.561 22.99 22.99 46.84 2.561 + 207 gctagctagctgatcgatcgat 390 22 0 50.00 60.561 34.38 30.53 46.11 2.561 + 208 gctagctagctgatcgatcgat 70 22 0 50.00 60.561 34.38 30.53 46.11 2.561 + 209 ctgcgcgatcgatgctag 369 18 0 61.11 59.415 19.79 13.97 38.48 2.585 + 210 aagcatcggattagctagct 2 20 0 45.00 57.413 23.74 23.74 0.00 2.587 + 211 gctagctgatcatcgatgcta 191 21 0 47.62 58.410 16.61 13.09 0.00 2.590 + 212 tagctagctgatcatcgatgc 189 21 0 47.62 58.410 21.42 9.22 0.00 2.590 + 213 actgatacgcgatgctagc 476 19 0 52.63 58.407 8.61 8.61 0.00 2.593 + 214 gctagctgactgatcgatcatc 261 22 0 50.00 59.406 23.93 21.92 36.62 2.594 + 215 atcgatcgatgctagctagg 402 20 0 50.00 57.396 29.65 6.29 33.56 2.604 + 216 atctctgcgcgatcgatgc 365 19 0 57.89 61.618 22.01 22.01 38.48 2.618 + 217 tgatcgatcgtagcggcg 569 18 0 61.11 60.621 20.58 0.86 0.00 2.621 + 218 atcatctctgcgcgatcgatg 362 21 0 52.38 61.633 18.01 18.01 38.48 2.633 + 219 agctagctgatcgatcgtag 562 20 0 50.00 57.344 17.99 16.86 0.00 2.656 + 220 ctagctagctgatcgatcgt 560 20 0 50.00 57.344 16.40 2.65 0.00 2.656 + 221 gctagctgactgatcgatcat 261 21 0 47.62 58.339 26.67 18.02 36.62 2.661 + 222 ctgatcgatcgtagcggcg 568 19 0 63.16 61.664 14.21 0.86 0.00 2.664 + 223 ctgactgatacgcgatgct 473 19 0 52.63 58.330 2.33 0.00 0.00 2.670 + 224 agctgactgatacgcgatg 471 19 0 52.63 58.330 0.00 0.00 0.00 2.670 + 225 gctagctgatcgatcgtagcg 563 21 0 57.14 61.676 24.18 16.49 0.00 2.676 + 226 ctagctgactgatcgatcga 110 20 0 50.00 57.276 22.52 22.52 0.00 2.724 + 227 agctagctactgatcgatgcta 303 22 0 45.45 59.252 17.56 12.23 0.00 2.748 + 228 tagctagctactgatcgatgct 302 22 0 45.45 59.252 27.80 11.51 0.00 2.748 + 229 gactgatacgcgatgctagcta 475 22 0 50.00 60.751 17.69 3.08 0.00 2.751 + 230 actgatacgcgatgctagctag 476 22 0 50.00 60.752 17.46 17.46 0.00 2.752 + 231 gactgatcgatcgatgctagct 116 22 0 50.00 60.753 18.04 9.56 35.21 2.753 + 232 gctagctgactgatcgatcgat 109 22 0 50.00 60.753 30.53 30.53 37.90 2.753 + 233 tgcgcgatcgatgctagcta 370 20 0 55.00 62.756 26.61 9.85 38.48 2.756 + 234 gcggcgatctagctagctga 581 20 0 60.00 62.765 21.57 16.66 38.70 2.765 + 235 agcggcgatctagctagctg 580 20 0 60.00 62.771 17.07 8.17 44.87 2.771 + 236 ctactatcatctctgcgcgatc 357 22 0 50.00 59.220 4.99 0.00 0.00 2.780 + 237 tatcatctctgcgcgatcg 361 19 0 52.63 58.199 12.19 12.19 39.07 2.801 + 238 tactatcatctctgcgcgatcg 358 22 0 50.00 60.811 12.19 12.19 39.07 2.811 + 239 tagctagctgactgatcgatca 259 22 0 45.45 59.187 28.29 26.99 35.44 2.813 + 240 gctgatcgatcgatgctagcta 398 22 0 50.00 60.816 27.88 12.57 35.21 2.816 + 241 tagctgatcgatcgatgctagc 396 22 0 50.00 60.816 30.84 27.90 36.80 2.816 + 242 gctagctgatcgatcgatgcta 394 22 0 50.00 60.816 34.11 32.56 36.80 2.816 + 243 tagctagctgatcgatcgatgc 392 22 0 50.00 60.816 24.08 21.09 35.21 2.816 + 244 gctaggcgatgctagctag 416 19 0 57.89 58.179 17.46 17.46 35.42 2.821 + 245 ctagctaggcgatgctagc 413 19 0 57.89 58.179 18.68 9.44 36.95 2.821 + 246 gctagctaggcgatgctag 412 19 0 57.89 58.179 23.16 23.16 38.59 2.821 + 247 catctctgcgcgatcgatgc 364 20 0 60.00 62.823 22.01 22.01 38.48 2.823 + 248 aaagcatcggattagctagct 1 21 0 42.86 58.168 23.74 23.74 0.00 2.832 + 249 ctgactgatcgatcgatgctag 114 22 0 50.00 59.155 22.81 19.44 35.21 2.845 + 250 ctagctgactgatcgatcgatg 110 22 0 50.00 59.155 23.05 13.21 35.21 2.845 + 251 tactatcatctctgcgcgatc 358 21 0 47.62 58.155 4.99 0.00 0.00 2.845 + 252 gctagctactgatcgatgctac 304 22 0 50.00 59.151 8.57 4.26 0.00 2.849 + 253 ctactatcatctctgcgcgat 357 21 0 47.62 58.150 4.99 2.52 0.00 2.850 + 254 agctgatcatcgatgctact 194 20 0 45.00 57.134 17.14 8.95 0.00 2.866 + 255 gctagctagctgatcatcgat 187 21 0 47.62 58.132 34.38 0.00 46.11 2.868 + 256 ctgatacgcgatgctagct 477 19 0 52.63 58.107 17.69 1.35 0.00 2.893 + 257 ggcgatctagctagctgac 583 19 0 57.89 58.106 14.84 7.25 37.58 2.894 + 258 tgactgatcgatcgatgctag 115 21 0 47.62 58.084 22.81 19.44 35.21 2.916 + 259 ctgactgatcgatcgatgcta 114 21 0 47.62 58.084 26.44 14.64 35.21 2.916 + 260 tagctgactgatcgatcgatg 111 21 0 47.62 58.084 23.05 13.21 35.21 2.916 + 261 actgatcgatcatcatgctagc 269 22 0 45.45 59.071 26.67 8.61 41.77 2.929 + 262 agctgactgatcgatcatca 264 20 0 45.00 57.064 26.49 26.49 39.98 2.936 + 263 ctagctagctgatcgatcga 391 20 0 50.00 57.060 22.52 22.52 0.00 2.940 + 264 ctagctagctgatcgatcga 71 20 0 50.00 57.060 22.52 22.52 0.00 2.940 + 265 gatcgatcgatgtgcggctag 81 21 0 57.14 61.947 19.16 0.00 41.65 2.947 + 266 tgctagctaggcgatgct 411 18 0 55.56 59.050 17.69 7.53 0.00 2.950 + 267 gctgatcgatcgtagcggc 567 19 0 63.16 61.960 20.49 19.38 0.00 2.960 + 268 cgatcgatgtgcggctag 84 18 0 61.11 59.032 10.82 0.00 41.65 2.968 + 269 tgatcgatcgatgtgcggct 80 20 0 55.00 62.987 22.21 0.00 41.65 2.987 + 270 ctgactgatcgatcatcatgct 266 22 0 45.45 59.004 20.99 6.82 41.77 2.996 + 271 agctgactgatcgatcatcatg 264 22 0 45.45 59.004 22.70 19.51 41.77 2.996 + 272 agctagctgactgatacgcga 467 21 0 52.38 62.000 17.99 0.00 0.00 3.000 + 273 tgactgatcgatcgatgctagc 115 22 0 50.00 61.008 18.17 12.52 35.21 3.008 + 274 gctgactgatcgatcgatgcta 113 22 0 50.00 61.008 26.44 14.64 35.21 3.008 + 275 tagctgactgatcgatcgatgc 111 22 0 50.00 61.008 24.08 19.43 35.21 3.008 + 276 agctagctgatcgatcgatgtg 73 22 0 50.00 61.010 17.99 6.93 35.21 3.010 + 277 ctgatcgatcgatgctagctag 399 22 0 50.00 58.963 19.70 17.46 35.21 3.037 + 278 ctagctgatcgatcgatgctag 395 22 0 50.00 58.963 37.86 37.86 43.17 3.037 + 279 ctagctagctgatcgatcgatg 391 22 0 50.00 58.963 21.99 11.03 35.21 3.037 + 280 ctgatcgatcgatgctagctag 118 22 0 50.00 58.963 19.70 17.46 35.21 3.037 + 281 ctagctagctgatcgatcgatg 71 22 0 50.00 58.963 21.99 11.03 35.21 3.037 + 282 gactgatcgatcatcatgctagc 268 23 0 47.83 60.053 24.51 9.03 41.77 3.053 + 283 gctagtgatgcatgctagtagtg 25 23 0 47.83 59.929 24.96 10.54 0.00 3.071 + 284 gctactatcatctctgcgcgat 356 22 0 50.00 61.073 4.99 2.52 0.00 3.073 + 285 gtagcggcgatctagctag 578 19 0 57.89 57.903 15.64 15.64 37.58 3.097 + 286 tgactgatcgatcatcatgct 267 21 0 42.86 57.900 26.79 12.28 41.77 3.100 + 287 ctagctactatcatctctgcgc 353 22 0 50.00 58.892 0.00 0.00 0.00 3.108 + 288 gctagctactatcatctctgcg 352 22 0 50.00 58.892 8.21 0.00 0.00 3.108 + 289 ctagctagctactgatcgatgc 301 22 0 50.00 58.892 14.00 1.76 0.00 3.108 + 290 gctagctagctactgatcgatg 300 22 0 50.00 58.892 34.38 7.78 46.11 3.108 + 291 catcgatcgatgctagtatgct 325 22 0 45.45 58.885 37.80 10.02 44.93 3.115 + 292 tgatcgatcgatgctagctag 400 21 0 47.62 57.879 26.44 17.46 35.21 3.121 + 293 ctgatcgatcgatgctagcta 399 21 0 47.62 57.879 19.70 3.77 35.21 3.121 + 294 tagctgatcgatcgatgctag 396 21 0 47.62 57.879 34.03 27.12 36.80 3.121 + 295 ctagctgatcgatcgatgcta 395 21 0 47.62 57.879 34.11 32.56 36.80 3.121 + 296 tagctagctgatcgatcgatg 392 21 0 47.62 57.879 21.99 11.03 35.21 3.121 + 297 tgatcgatcgatgctagctag 119 21 0 47.62 57.879 26.44 17.46 35.21 3.121 + 298 ctgatcgatcgatgctagcta 118 21 0 47.62 57.879 19.70 3.77 35.21 3.121 + 299 tagctagctgatcgatcgatg 72 21 0 47.62 57.879 21.99 11.03 35.21 3.121 + 300 gatcgatcgatgctagctagt 120 21 0 47.62 57.878 23.89 3.56 35.21 3.122 + 301 ctatcatctctgcgcgatcgat 360 22 0 50.00 61.132 22.07 11.47 38.48 3.132 + 302 tgatcgatcgtagcggcga 569 19 0 57.89 62.144 20.58 8.51 45.59 3.144 + 303 tcgtagcggcgatctagctag 576 21 0 57.14 62.173 15.64 15.64 36.40 3.173 + 304 tactagctagctgactgatacgc 463 23 0 47.83 60.176 13.17 0.00 0.00 3.176 + 305 ctgatcatcatcgatgctagct 517 22 0 45.45 58.807 17.69 1.76 40.32 3.193 + 306 agctgatcatcatcgatgctag 515 22 0 45.45 58.807 5.93 2.76 40.32 3.193 + 307 ctagctgatcatcatcgatgct 513 22 0 45.45 58.807 14.14 8.34 40.32 3.193 + 308 agctagctgatcatcatcgatg 511 22 0 45.45 58.807 20.23 20.23 41.48 3.193 + 309 ctgatcgatcatcatgctagct 270 22 0 45.45 58.807 26.67 0.00 41.77 3.193 + 310 ctagctgactgatcgatcgat 110 21 0 47.62 57.806 30.53 30.53 37.90 3.194 + 311 ttagctagctgactgatcgatca 258 23 0 43.48 59.798 28.29 26.99 35.44 3.202 + 312 tagctactatcatctctgcgc 354 21 0 47.62 57.798 0.00 0.00 0.00 3.202 + 313 gctagctactgatcgatgcta 304 21 0 47.62 57.798 12.99 12.23 0.00 3.202 + 314 tagctagctactgatcgatgc 302 21 0 47.62 57.798 27.80 1.76 0.00 3.202 + 315 tctctgcgcgatcgatgc 366 18 0 61.11 61.229 22.01 22.01 38.48 3.229 + 316 ctctgcgcgatcgatgct 367 18 0 61.11 61.232 26.61 0.00 38.48 3.232 + 317 agctagctactatcatctctgcg 351 23 0 47.83 60.238 17.56 0.00 0.00 3.238 + 318 ctagctagctactgatcgatgct 301 23 0 47.83 60.238 14.00 11.51 0.00 3.238 + 319 ctgatcgatcgtagcggc 568 18 0 61.11 58.727 14.21 0.00 0.00 3.273 + 320 gctgatcgatcgtagcgg 567 18 0 61.11 58.727 20.49 15.03 0.00 3.273 + 321 agctaggcgatgctagct 415 18 0 55.56 58.725 17.69 13.00 39.84 3.275 + 322 tgctagtgatgcatgctagtagt 24 23 0 43.48 60.302 24.96 12.98 35.89 3.302 + 323 gcgcgatcgatgctagct 371 18 0 61.11 61.306 21.66 1.35 38.48 3.306 + 324 tgatcatcatcgatgctagct 518 21 0 42.86 57.691 17.69 1.76 40.32 3.309 + 325 agctgatcatcatcgatgcta 515 21 0 42.86 57.691 0.24 0.00 40.32 3.309 + 326 tagctgatcatcatcgatgct 514 21 0 42.86 57.691 14.14 8.34 40.32 3.309 + 327 tgatcgatcatcatgctagct 271 21 0 42.86 57.691 27.48 0.00 37.38 3.309 + 328 ctagctagctgactgatacgcg 465 22 0 54.55 61.313 14.90 3.89 0.00 3.313 + 329 tgctagtgatgcatgctagtag 24 22 0 45.45 58.673 24.96 19.76 35.89 3.327 + 330 gctagtgatgcatgctagtagt 25 22 0 45.45 58.672 24.96 12.98 0.00 3.328 + 331 tagctagctgatcatcgatgcta 189 23 0 43.48 59.671 17.82 15.89 0.00 3.329 + 332 agctagctgactgatacgc 467 19 0 52.63 57.642 17.99 0.00 0.00 3.358 + 333 tatcatctctgcgcgatcgatg 361 22 0 50.00 61.383 18.01 18.01 38.48 3.383 + 334 agctgactgatcgatcatcat 264 21 0 42.86 57.616 26.31 18.90 41.77 3.384 + 335 actagctagctgatcatcatcga 508 23 0 43.48 59.607 22.43 0.00 0.00 3.393 + 336 tagctagctgactgatcgatcat 259 23 0 43.48 59.607 28.29 18.02 36.62 3.393 + 337 gatgctagctaggcgatgctag 409 22 0 54.55 61.393 23.16 23.16 38.59 3.393 + 338 cggcgatctagctagctgact 582 21 0 57.14 62.394 17.44 7.44 38.70 3.394 + 339 ctagctagctgatcgatcgat 391 21 0 47.62 57.600 30.53 30.53 37.90 3.400 + 340 ctagctagctgatcgatcgat 71 21 0 47.62 57.600 30.53 30.53 37.90 3.400 + 341 actgatcgatcatcatgctagct 269 23 0 43.48 60.428 26.67 4.70 41.77 3.428 + 342 ctagctagctgactgatcgatc 106 22 0 50.00 58.567 19.32 19.32 0.00 3.433 + 343 ctgactgatcgatcatcatgc 266 21 0 47.62 57.562 20.99 12.19 41.77 3.438 + 344 gctgactgatcgatcatcatg 265 21 0 47.62 57.562 22.70 19.51 41.77 3.438 + 345 gatcgatcgatgctagctaggc 401 22 0 54.55 61.448 23.89 8.45 35.21 3.448 + 346 gtgatgcatgctagtagtgatgt 29 23 0 43.48 59.551 11.60 0.00 0.00 3.449 + 347 tgctagtgatgcatgctagta 24 21 0 42.86 57.546 24.96 21.25 35.89 3.454 + 348 tagcggcgatctagctagctg 579 21 0 57.14 62.457 18.98 9.30 45.57 3.457 + 349 gtagcggcgatctagctagct 578 21 0 57.14 62.458 23.74 23.74 46.60 3.458 + 350 tagctgatcgatcgtagcg 565 19 0 52.63 57.539 25.02 11.96 0.00 3.461 + 351 gctagctagctactgatcgat 300 21 0 47.62 57.517 34.38 0.00 46.11 3.483 + 352 agctagctactgatcgatgctac 303 23 0 47.83 60.487 17.56 7.81 0.00 3.487 + 353 atcgatcgatgctagtatgct 326 21 0 42.86 57.502 29.65 2.17 33.56 3.498 + 354 agctactgatcgatgctacatc 307 22 0 45.45 58.484 7.41 0.00 37.97 3.516 + 355 agtgatgcatgctagtagtga 28 21 0 42.86 57.471 0.00 0.00 0.00 3.529 + 356 gactgatcgatcgatgctagcta 116 23 0 47.83 60.546 18.04 4.19 35.21 3.546 + 357 ctgatcgatcgatgctagctagt 118 23 0 47.83 60.547 22.18 3.56 35.21 3.547 + 358 actgatcgatcgatgctagctag 117 23 0 47.83 60.547 23.29 17.46 35.21 3.547 + 359 ctagctagctgatcgatcgatgt 71 23 0 47.83 60.547 14.29 2.62 35.21 3.547 + 360 catcgatcgatgctagtatgc 325 21 0 47.62 57.452 37.80 0.00 44.93 3.548 + 361 tagctagctgactgatcgatc 259 21 0 47.62 57.451 28.29 19.32 0.00 3.549 + 362 tagctagctgactgatcgatc 107 21 0 47.62 57.451 28.29 19.32 0.00 3.549 + 363 ctagctagctgactgatcgat 106 21 0 47.62 57.445 14.90 0.00 0.00 3.555 + 364 tcgatgctagctaggcga 407 18 0 55.56 58.427 15.59 13.52 0.00 3.573 + 365 tgatcgatcgatgctagctagta 119 23 0 43.48 59.424 26.44 18.77 35.21 3.576 + 366 ctgcgcgatcgatgctagc 369 19 0 63.16 62.586 20.26 12.12 38.48 3.586 + 367 agctagctgatcatcatcgat 511 21 0 42.86 57.405 17.99 0.00 0.00 3.595 + 368 tgcgcgatcgatgctagc 370 18 0 61.11 61.605 26.61 17.77 38.48 3.605 + 369 ctagctagctgatcgatcgtag 560 22 0 50.00 58.387 16.86 16.86 0.00 3.613 + 370 actagctagctgactgatacg 464 21 0 47.62 57.384 21.52 2.77 0.00 3.616 + 371 ctagctgactgatacgcga 469 19 0 52.63 57.370 16.29 0.00 0.00 3.630 + 372 gctactagctagctgactgat 461 21 0 47.62 57.360 15.96 3.00 44.92 3.640 + 373 ctgatcatcatcgatgctagc 517 21 0 47.62 57.358 8.61 8.61 40.32 3.642 + 374 gctgatcatcatcgatgctag 516 21 0 47.62 57.358 5.93 2.76 40.32 3.642 + 375 ctagctgatcatcatcgatgc 513 21 0 47.62 57.358 21.42 7.40 40.32 3.642 + 376 gctagctgatcatcatcgatg 512 21 0 47.62 57.358 20.23 20.23 41.48 3.642 + 377 ctgatcgatcatcatgctagc 270 21 0 47.62 57.358 26.67 8.61 41.77 3.642 + 378 agctactgatcgatgctacat 307 21 0 42.86 57.344 7.41 0.00 0.00 3.656 + 379 tgatcgatcgatgtgcggcta 80 21 0 52.38 62.663 22.21 0.24 41.65 3.663 + 380 atctctgcgcgatcgatg 365 18 0 55.56 58.327 12.03 4.19 38.48 3.673 + 381 catctctgcgcgatcgat 364 18 0 55.56 58.327 22.07 1.26 38.48 3.673 + 382 atcatctctgcgcgatcg 362 18 0 55.56 58.327 12.19 12.19 39.07 3.673 + 383 aagcatcggattagctagctgat 2 23 0 43.48 60.682 17.84 15.13 0.00 3.682 + 384 agtgatgcatgctagtagtgatg 28 23 0 43.48 59.299 7.49 7.49 0.00 3.701 + 385 gatcgatgctagctaggcgatg 405 22 0 54.55 61.702 24.26 6.24 0.00 3.702 + 386 atctctgcgcgatcgatgcta 365 21 0 52.38 62.723 26.61 17.10 38.48 3.723 + 387 tagctagctgactgatacgcga 466 22 0 50.00 61.730 28.29 0.00 0.00 3.730 + 388 tagctagctgatcgatcgtag 561 21 0 47.62 57.269 16.86 16.86 0.00 3.731 + 389 ctagctagctgatcgatcgta 560 21 0 47.62 57.269 11.68 3.07 0.00 3.731 + 390 tcgatcgatgctagctagtag 122 21 0 47.62 57.269 18.63 2.63 0.00 3.731 + 391 gctagctactgatcgatgctaca 304 23 0 47.83 60.734 11.21 0.06 0.00 3.734 + 392 agctagctgactgatcgatcatc 260 23 0 47.83 60.736 23.93 21.92 36.62 3.736 + 393 agctagctgactgatcgatcga 108 22 0 50.00 61.737 22.52 22.52 0.00 3.737 + 394 tctctgcgcgatcgatgct 366 19 0 57.89 62.740 26.61 0.00 38.48 3.740 + 395 tgatgcatgctagtagtgatgt 30 22 0 40.91 58.256 11.60 0.00 0.00 3.744 + 396 tgatcgatcgatgtgcgg 80 18 0 55.56 58.244 21.27 0.00 41.65 3.756 + 397 cgatcgatgctagctaggcga 404 21 0 57.14 62.770 16.30 16.30 0.00 3.770 + 398 tcgatcgatgctagctaggcg 403 21 0 57.14 62.770 18.63 11.67 0.00 3.770 + 399 atcgatcgatgcatgcatg 443 19 0 47.37 57.226 29.65 23.31 37.30 3.774 + 400 catcgatcgatgcatgcat 442 19 0 47.37 57.226 37.80 33.45 44.93 3.774 + 401 actagctagctgatcatcatcg 508 22 0 45.45 58.219 22.43 3.40 0.00 3.781 + 402 ctgatcatcgatgctactagct 196 22 0 45.45 58.219 10.86 0.00 45.92 3.781 + 403 agctgatcatcgatgctactag 194 22 0 45.45 58.219 13.67 9.68 0.00 3.781 + 404 ctagctgatcatcgatgctact 192 22 0 45.45 58.219 14.85 7.80 0.00 3.781 + 405 tttagctagctgactgatcga 257 21 0 42.86 57.216 0.38 0.00 0.00 3.784 + 406 tagctagctgatcgatcgatgtg 72 23 0 47.83 60.793 10.14 4.94 35.21 3.793 + 407 gctagctagctgatcatcatct 146 22 0 45.45 58.203 34.38 0.00 46.11 3.797 + 408 ctagctagctgatcatcgatgct 188 23 0 47.83 60.799 16.29 15.30 0.00 3.799 + 409 agctagctactatcatcgatcga 429 23 0 43.48 59.170 22.52 22.52 0.00 3.830 + 410 ttagctagctgactgatcgatc 258 22 0 45.45 58.159 28.29 19.32 0.00 3.841 + 411 ctagctgactgatcgatcatca 262 22 0 45.45 58.155 26.49 26.49 39.98 3.845 + 412 aaagcatcggattagctagctga 1 23 0 43.48 60.870 28.29 20.88 0.00 3.870 + 413 agctgactgatacgcgatgct 471 21 0 52.38 62.876 7.57 2.13 0.00 3.876 + 414 tagctagctactgatcgatgcta 302 23 0 43.48 59.102 27.80 12.23 0.00 3.898 + 415 tcatcatcgatgctagctagt 521 21 0 42.86 57.067 22.18 3.56 40.32 3.933 + 416 tcgatcatcatgctagctact 274 21 0 42.86 57.067 0.00 0.00 0.00 3.933 + 417 tgatcatcgatgctactagct 197 21 0 42.86 57.067 17.14 0.00 45.92 3.933 + 418 agctgatcatcgatgctacta 194 21 0 42.86 57.067 17.14 4.89 0.00 3.933 + 419 tagctgatcatcgatgctact 193 21 0 42.86 57.067 14.85 7.80 0.00 3.933 + 420 tcgatcgatgctagtatgctag 327 22 0 45.45 58.044 18.63 13.77 46.09 3.956 + 421 gcgatctagctagctgact 584 19 0 52.63 57.034 17.44 7.44 0.00 3.966 + 422 gctactgatcgatgctacatc 308 21 0 47.62 57.028 2.44 0.00 37.97 3.972 + 423 cggcgatctagctagctg 582 18 0 61.11 58.018 17.07 8.17 37.58 3.982 + 424 gctagctgactgatcgatcatca 261 23 0 47.83 60.983 26.49 26.49 39.98 3.983 + 425 actatcatctctgcgcgat 359 19 0 47.37 57.015 4.99 2.52 0.00 3.985 + 426 catcggattagctagctgatg 5 21 0 47.62 57.003 23.69 23.29 0.00 3.997 + 427 tagctgactgatcgatcatca 263 21 0 42.86 57.000 26.49 26.49 39.98 4.000 + 428 actagctagctgatcatcatcgat 508 24 0 41.67 59.995 22.43 0.00 0.00 4.005 + 429 agtgatgcatgctagtagtgat 28 22 0 40.91 57.984 0.00 0.00 0.00 4.016 + 430 ctagctagctgatcatcatcga 509 22 0 45.45 57.958 11.68 0.00 0.00 4.042 + 431 gctgatcatcgatgctactagct 195 23 0 47.83 61.046 20.91 5.24 45.92 4.046 + 432 agctgatcatcgatgctactagc 194 23 0 47.83 61.046 20.78 20.78 45.61 4.046 + 433 gctagctgatcatcgatgctact 191 23 0 47.83 61.046 12.59 8.92 0.00 4.046 + 434 agctagctgatcatcgatgctac 190 23 0 47.83 61.046 17.99 7.99 0.00 4.046 + 435 tagctagctactatcatctctgcg 350 24 0 45.83 60.058 27.80 0.00 0.00 4.058 + 436 ctagctagctactgatcgatgcta 301 24 0 45.83 60.058 14.00 12.23 0.00 4.058 + 437 agctactatcatctctgcgcga 355 22 0 50.00 62.058 2.71 2.71 0.00 4.058 + 438 gctatttagctagctgactgatcg 253 24 0 45.83 60.060 7.27 0.00 46.11 4.060 + 439 tgatcgatcatcatgctagctac 271 23 0 43.48 58.931 27.48 0.00 37.38 4.069 + 440 gtgatgcatgctagtagtgatg 29 22 0 45.45 57.921 7.49 7.49 0.00 4.079 + 441 ctagctagctgactgatcgatcg 106 23 0 52.17 61.091 16.84 13.89 0.00 4.091 + 442 ctagctactgatcgatgctaca 305 22 0 45.45 57.898 13.79 1.61 0.00 4.102 + 443 cggcgatctagctagctgacta 582 22 0 54.55 62.109 17.44 5.40 38.70 4.109 + 444 atgctagctaggcgatgc 410 18 0 55.56 57.890 10.59 0.00 0.00 4.110 + 445 ctgatcgatcatcatgctagctac 270 24 0 45.83 59.882 26.67 0.00 41.77 4.118 + 446 gctactagctagctgatcatca 505 22 0 45.45 57.879 14.37 0.00 44.92 4.121 + 447 gctactagctagctgatcatca 208 22 0 45.45 57.879 14.37 0.00 44.92 4.121 + 448 ctgactgatacgcgatgctagc 473 22 0 54.55 62.128 8.61 8.61 0.00 4.128 + 449 gctgactgatacgcgatgctag 472 22 0 54.55 62.128 1.70 0.00 0.00 4.128 + 450 ctagctgactgatacgcgatgc 469 22 0 54.55 62.128 3.47 0.00 0.00 4.128 + 451 gctagctgactgatacgcgatg 468 22 0 54.55 62.128 8.21 0.00 0.00 4.128 + 452 tgactgatcgatcatcatgctag 267 23 0 43.48 58.866 26.79 18.40 41.77 4.134 + 453 ctgactgatcgatcatcatgcta 266 23 0 43.48 58.866 20.99 8.89 41.77 4.134 + 454 tagctgactgatcgatcatcatg 263 23 0 43.48 58.866 22.70 19.51 41.77 4.134 + 455 ctagctagctgatcgatcgtagc 560 23 0 52.17 61.151 26.87 26.87 0.00 4.151 + 456 gctagctagctgatcgatcgtag 559 23 0 52.17 61.151 34.38 16.86 46.11 4.151 + 457 ctgatcgatcgatgctagctagg 399 23 0 52.17 61.158 22.67 6.29 35.21 4.158 + 458 gatcgatcgatgctagctagtag 120 23 0 47.83 58.829 23.89 2.63 35.21 4.171 + 459 ttagctagctgactgatcgatcat 258 24 0 41.67 60.177 28.29 18.02 36.62 4.177 + 460 ctgactgatcgatcatcatgctag 266 24 0 45.83 59.822 20.99 12.80 41.77 4.178 + 461 ctagctgactgatcgatcatcatg 262 24 0 45.83 59.822 22.70 19.51 41.77 4.178 + 462 ctagctgatcgatcgatgtgcg 75 22 0 54.55 62.180 31.92 20.85 42.69 4.180 + 463 tttagctagctgactgatcgatc 257 23 0 43.48 58.807 19.32 19.32 0.00 4.193 + 464 tgactgatcgatcatcatgcta 267 22 0 40.91 57.803 26.79 13.11 41.77 4.197 + 465 gctagctactatcatcgatcga 430 22 0 45.45 57.783 22.52 22.52 0.00 4.217 + 466 gatcgatcgatgctagctagta 120 22 0 45.45 57.783 23.89 18.77 35.21 4.217 + 467 agctagctactatcatcgatcg 429 22 0 45.45 57.777 17.56 9.87 0.00 4.223 + 468 atcgatcgatgctagctagtag 121 22 0 45.45 57.777 29.65 2.63 33.56 4.223 + 469 tgatcatcatcgatgctagctagt 518 24 0 41.67 60.238 22.18 3.56 40.32 4.238 + 470 tgatcgatcatcatgctagctact 271 24 0 41.67 60.238 27.48 0.00 37.38 4.238 + 471 actgatcgatcatcatgctagcta 269 24 0 41.67 60.238 26.67 2.76 41.77 4.238 + 472 catcgatcgatgctagtatgcta 325 23 0 43.48 58.753 37.80 6.23 44.93 4.247 + 473 tttagctagctgactgatcgat 257 22 0 40.91 57.736 0.38 0.00 0.00 4.264 + 474 atttagctagctgactgatcga 256 22 0 40.91 57.736 4.16 0.00 0.00 4.264 + 475 cgcgatcgatgctagcta 372 18 0 55.56 57.717 22.07 3.08 38.48 4.283 + 476 catcgatcgatgctagtatgctag 325 24 0 45.83 59.708 37.80 16.01 44.93 4.292 + 477 tagctagctactgatcgatgctac 302 24 0 45.83 60.297 27.80 7.81 0.00 4.297 + 478 agcatcggattagctagctgatg 3 23 0 47.83 61.299 27.81 27.81 33.28 4.299 + 479 agctagctgactgatacgcgat 467 22 0 50.00 62.317 17.99 0.00 0.00 4.317 + 480 tgatcatcatcgatgctagctag 518 23 0 43.48 58.678 17.46 17.46 40.32 4.322 + 481 ctgatcatcatcgatgctagcta 517 23 0 43.48 58.678 17.69 2.41 40.32 4.322 + 482 tagctgatcatcatcgatgctag 514 23 0 43.48 58.678 9.90 2.76 40.32 4.322 + 483 ctagctgatcatcatcgatgcta 513 23 0 43.48 58.678 14.58 9.63 40.32 4.322 + 484 tagctagctgatcatcatcgatg 510 23 0 43.48 58.678 20.23 20.23 41.48 4.322 + 485 ctgatcgatcatcatgctagcta 270 23 0 43.48 58.678 26.67 2.76 41.77 4.322 + 486 gatcatcatcgatgctagctagt 519 23 0 43.48 58.677 22.18 3.56 40.32 4.323 + 487 gatcgatcatcatgctagctact 272 23 0 43.48 58.677 21.11 0.00 0.00 4.323 + 488 gctagctagctgactgatcgatc 105 23 0 52.17 61.341 34.38 19.32 46.11 4.341 + 489 tgatcgatcgatgctagctagtag 119 24 0 45.83 60.356 26.44 2.63 35.21 4.356 + 490 ctgatcgatcgatgctagctagta 118 24 0 45.83 60.356 22.18 18.77 35.21 4.356 + 491 ctgatcatcatcgatgctagctag 517 24 0 45.83 59.644 17.46 17.46 40.32 4.356 + 492 ctagctgatcatcatcgatgctag 513 24 0 45.83 59.644 19.54 18.30 42.07 4.356 + 493 ctagctagctgatcatcatcgatg 509 24 0 45.83 59.644 20.23 20.23 41.48 4.356 + 494 tttagctagctgactgatcgatca 257 24 0 41.67 60.358 26.99 26.99 35.44 4.358 + 495 actatcatctctgcgcgatcga 359 22 0 50.00 62.365 22.07 1.72 38.48 4.365 + 496 agctgatcgatcgtagcg 566 18 0 55.56 57.634 25.02 11.96 0.00 4.366 + 497 gctactagctagctgactgatac 461 23 0 47.83 58.626 15.96 1.42 44.92 4.374 + 498 agctgatcgatcgatgctagct 397 22 0 50.00 62.388 30.32 30.32 38.42 4.388 + 499 agctagctgatcgatcgatgct 393 22 0 50.00 62.388 33.87 33.38 38.16 4.388 + 500 ctagctgactgatcgatcatcat 262 23 0 43.48 58.612 26.31 20.43 41.77 4.388 + 501 agctagctactatcatctctgc 351 22 0 45.45 57.608 17.56 0.00 0.00 4.392 + 502 ctagctactatcatctctgcgcg 353 23 0 52.17 61.393 0.00 0.00 0.00 4.393 + 503 tgatcatcatcgatgctagcta 518 22 0 40.91 57.602 17.69 3.08 40.32 4.398 + 504 tagctgatcatcatcgatgcta 514 22 0 40.91 57.602 15.95 9.16 40.32 4.398 + 505 tgatcgatcatcatgctagcta 271 22 0 40.91 57.602 27.48 3.08 37.38 4.398 + 506 atcatcatcgatgctagctagt 520 22 0 40.91 57.595 22.18 3.56 40.32 4.405 + 507 atcgatcatcatgctagctact 273 22 0 40.91 57.595 0.00 0.00 0.00 4.405 + 508 agctagctactatcatcgatcgat 429 24 0 41.67 59.573 25.37 25.37 35.13 4.427 + 509 gctagctgatcgatcgatgtgc 74 22 0 54.55 62.443 31.83 30.04 35.21 4.443 + 510 tagctgactgatcgatcatcat 263 22 0 40.91 57.531 26.31 20.43 41.77 4.469 + 511 tagctagctgactgatcgatcga 107 23 0 47.83 61.487 28.29 22.52 0.00 4.487 + 512 atcgatcgatgctagtatgctag 326 23 0 43.48 58.501 29.65 13.77 46.09 4.499 + 513 ctagtgatgcatgctagtagtga 26 23 0 43.48 58.483 20.00 1.46 0.00 4.517 + 514 tagctagctgactgatcgatcatc 259 24 0 45.83 60.536 28.29 21.92 36.62 4.536 + 515 tactagctagctgatcatcatcga 507 24 0 41.67 59.449 0.00 0.00 0.00 4.551 + 516 gctagctagctactatcatcga 426 22 0 45.45 57.437 34.38 0.00 46.11 4.563 + 517 tgactgatacgcgatgctagct 474 22 0 50.00 62.569 17.69 1.35 0.00 4.569 + 518 agctgactgatacgcgatgcta 471 22 0 50.00 62.569 7.57 0.00 0.00 4.569 + 519 tagctgactgatacgcgatgct 470 22 0 50.00 62.569 10.87 8.44 0.00 4.569 + 520 atcgatcgatgctagtatgcta 326 22 0 40.91 57.423 29.65 0.00 33.56 4.577 + 521 ctagctagctgatcatcatcgat 509 23 0 43.48 58.422 11.68 0.00 0.00 4.578 + 522 agctgactgatcgatcgatgct 112 22 0 50.00 62.580 26.44 23.13 35.21 4.580 + 523 ctagctagctgatcatcgatgcta 188 24 0 45.83 60.596 16.78 15.81 0.00 4.596 + 524 gtgatgcatgctagtagtgatgta 29 24 0 41.67 59.398 11.60 8.84 0.00 4.602 + 525 gctgatcatcatcgatgctagct 516 23 0 47.83 61.603 20.15 8.14 40.32 4.603 + 526 agctgatcatcatcgatgctagc 515 23 0 47.83 61.603 20.04 19.26 40.32 4.603 + 527 gctagctgatcatcatcgatgct 512 23 0 47.83 61.603 14.14 8.34 40.32 4.603 + 528 agctagctgatcatcatcgatgc 511 23 0 47.83 61.603 21.42 7.40 40.32 4.603 + 529 tagtgatgcatgctagtagtga 27 22 0 40.91 57.391 0.01 0.00 0.00 4.609 + 530 ctactagctagctgactgatacg 462 23 0 47.83 58.387 3.12 0.00 0.00 4.613 + 531 tagctactgatcgatgctacatc 306 23 0 43.48 58.368 13.79 0.00 37.97 4.632 + 532 gactgatacgcgatgctagctag 475 23 0 52.17 61.633 17.46 17.46 0.00 4.633 + 533 ctagctactgatcgatgctacat 305 23 0 43.48 58.364 13.79 0.09 0.00 4.636 + 534 gctagctactatcatctctgcgc 352 23 0 52.17 61.644 8.21 0.00 0.00 4.644 + 535 gctagctagctactgatcgatgc 300 23 0 52.17 61.644 34.38 12.71 46.11 4.644 + 536 gctactagctagctgatcatcat 505 23 0 43.48 58.350 14.37 0.00 44.92 4.650 + 537 gctactagctagctgatcatcat 208 23 0 43.48 58.350 14.37 0.00 44.92 4.650 + 538 ctagctactgatcgatgctacatc 305 24 0 45.83 59.349 13.79 0.00 37.97 4.651 + 539 gctactagctagctgatcatcatc 505 24 0 45.83 59.343 14.37 0.00 44.92 4.657 + 540 gctactagctagctgatcatcatc 208 24 0 45.83 59.343 14.37 0.00 44.92 4.657 + 541 gctgatcatcatctagctagtagc 154 24 0 45.83 59.343 15.25 15.25 45.79 4.657 + 542 tagctagctgatcatcatcgat 510 22 0 40.91 57.329 10.14 0.00 0.00 4.671 + 543 ctactatcatctctgcgcgatcg 357 23 0 52.17 61.686 12.19 12.19 39.07 4.686 + 544 tactagctagctgactgatacg 463 22 0 45.45 57.310 13.17 0.00 0.00 4.690 + 545 gctgatcgatcgatgctagctag 398 23 0 52.17 61.697 27.88 18.22 35.21 4.697 + 546 ctagctgatcgatcgatgctagc 395 23 0 52.17 61.697 38.64 35.38 43.05 4.697 + 547 gctagctgatcgatcgatgctag 394 23 0 52.17 61.697 41.07 41.07 46.89 4.697 + 548 ctagctagctgatcgatcgatgc 391 23 0 52.17 61.697 24.08 21.09 35.21 4.697 + 549 gctagctagctgatcgatcgatg 390 23 0 52.17 61.697 34.38 11.03 46.11 4.697 + 550 gctagctagctgatcgatcgatg 70 23 0 52.17 61.697 34.38 11.03 46.11 4.697 + 551 gctactagctagctgactgata 461 22 0 45.45 57.286 15.96 3.69 44.92 4.714 + 552 gatcgatcatcatgctagctac 272 22 0 45.45 57.284 21.11 0.00 0.00 4.716 + 553 cgatgctagctaggcgat 408 18 0 55.56 57.277 10.81 3.01 0.00 4.723 + 554 atcgatgctagctaggcg 406 18 0 55.56 57.277 15.59 9.02 0.00 4.723 + 555 tagctactgatcgatgctacat 306 22 0 40.91 57.270 13.79 0.09 0.00 4.730 + 556 gctagctactatcatcgatcgat 430 23 0 43.48 58.251 25.37 25.37 35.13 4.749 + 557 tgcatgctagtagtgatgtatacg 33 24 0 41.67 59.224 20.79 0.00 0.00 4.776 + 558 gcatgctagtagtgatgtatacgt 34 24 0 41.67 59.223 11.60 0.00 0.00 4.777 + 559 atttagctagctgactgatcgatc 256 24 0 41.67 59.219 19.32 19.32 0.00 4.781 + 560 gactgatcgatcatcatgctag 268 22 0 45.45 57.215 24.51 15.87 41.77 4.785 + 561 atttagctagctgactgatcgat 256 23 0 39.13 58.215 4.16 0.00 0.00 4.785 + 562 gctgactgatcgatcatcatgct 265 23 0 47.83 61.788 27.72 15.10 41.77 4.788 + 563 agctgactgatcgatcatcatgc 264 23 0 47.83 61.788 27.74 27.74 41.77 4.788 + 564 tagctactatcatctctgcgcga 354 23 0 47.83 61.796 2.71 2.71 0.00 4.796 + 565 gctgatcatcgatgctactagcta 195 24 0 45.83 60.834 20.91 7.37 45.92 4.834 + 566 tagctgatcatcgatgctactagc 193 24 0 45.83 60.834 20.78 20.78 45.61 4.834 + 567 gctagctgatcatcgatgctacta 191 24 0 45.83 60.834 11.65 8.83 0.00 4.834 + 568 tagctagctgatcatcgatgctac 189 24 0 45.83 60.834 17.82 12.06 0.00 4.834 + 569 tagtgatgcatgctagtagtgatg 27 24 0 41.67 59.155 11.56 7.49 0.00 4.845 + 570 agtgatgcatgctagtagtgatgt 28 24 0 41.67 60.846 11.60 0.00 0.00 4.846 + 571 tgatgcatgctagtagtgatgta 30 23 0 39.13 58.147 11.60 8.84 0.00 4.853 + 572 ctgactgatcgatcgatgctagc 114 23 0 52.17 61.878 18.17 12.52 35.21 4.878 + 573 gctgactgatcgatcgatgctag 113 23 0 52.17 61.878 22.81 19.44 35.21 4.878 + 574 ctagctgactgatcgatcgatgc 110 23 0 52.17 61.878 24.08 19.43 35.21 4.878 + 575 gctagctgactgatcgatcgatg 109 23 0 52.17 61.878 23.05 13.21 35.21 4.878 + 576 tcatcatcgatgctagctagtag 521 23 0 43.48 58.114 2.81 0.00 40.32 4.886 + 577 tactagctagctgatcatcatcg 507 23 0 43.48 58.114 0.00 0.00 0.00 4.886 + 578 tcgatcatcatgctagctactag 274 23 0 43.48 58.114 0.00 0.00 37.62 4.886 + 579 tgatcatcgatgctactagctag 197 23 0 43.48 58.114 20.04 20.04 45.92 4.886 + 580 ctgatcatcgatgctactagcta 196 23 0 43.48 58.114 10.86 0.00 45.92 4.886 + 581 tagctgatcatcgatgctactag 193 23 0 43.48 58.114 13.67 9.68 0.00 4.886 + 582 ctagctgatcatcgatgctacta 192 23 0 43.48 58.114 11.65 8.83 0.00 4.886 + 583 ctactagctagctgatcatcatcg 506 24 0 45.83 59.110 1.08 0.00 0.00 4.890 + 584 ctgatcatcgatgctactagctag 196 24 0 45.83 59.110 20.04 20.04 45.92 4.890 + 585 ctagctgatcatcgatgctactag 192 24 0 45.83 59.110 15.68 15.68 0.00 4.890 + 586 gctagctagctgatcatcatctag 146 24 0 45.83 59.102 34.38 13.13 44.71 4.898 + 587 gctagctagctgatcatcatcta 146 23 0 43.48 58.097 34.38 0.00 46.11 4.903 + 588 ctagtgatgcatgctagtagtg 26 22 0 45.45 57.072 20.00 3.96 0.00 4.928 + 589 gctactatcatctctgcgcgatc 356 23 0 52.17 61.936 4.99 0.00 0.00 4.936 + 590 gctgatcgatcgatgtgc 78 18 0 55.56 57.052 29.71 26.38 35.21 4.948 + 591 tagctagctactatcatcgatcga 428 24 0 41.67 59.031 27.80 22.52 0.00 4.969 + 592 agctagctgatcgatcgtagcg 562 22 0 54.55 62.971 27.20 18.31 0.00 4.971 + 593 tgactgatacgcgatgct 474 18 0 50.00 57.028 2.33 0.00 0.00 4.972 + 594 gatcatcatcgatgctagctag 519 22 0 45.45 57.019 17.46 17.46 40.32 4.981 + 595 tcatcatcgatgctagctagta 521 22 0 40.91 57.005 22.18 18.77 40.32 4.995 + 596 tcgatcatcatgctagctacta 274 22 0 40.91 57.005 0.00 0.00 0.00 4.995 + 597 tgatcatcgatgctactagcta 197 22 0 40.91 57.005 17.14 1.01 45.92 4.995 + 598 tagctgatcatcgatgctacta 193 22 0 40.91 57.005 12.62 8.42 0.00 4.995 + 599 tagctagctgactgatacgcgat 466 23 0 47.83 62.044 28.29 0.00 0.00 5.044 + 600 ctagctagctactatcatcgatcga 427 25 0 44.00 59.949 27.80 22.52 0.00 5.051 + 601 agctagctgactgatcgatcgat 108 23 0 47.83 62.053 30.53 30.53 37.90 5.053 + 602 ctactagctagctgactgatacgc 462 24 0 50.00 61.062 3.61 0.00 0.00 5.062 + 603 gctactagctagctgactgatacg 461 24 0 50.00 61.062 14.37 0.00 44.92 5.062 + 604 tgatcatcatcgatgctagctagta 518 25 0 40.00 60.062 22.18 18.77 40.32 5.062 + 605 tgatcgatcatcatgctagctacta 271 25 0 40.00 60.062 27.48 0.00 37.38 5.062 + 606 ctagtgatgcatgctagtagtgatg 26 25 0 44.00 60.064 20.00 7.49 0.00 5.064 + 607 gctagctagctactatcatcgatc 426 24 0 45.83 58.932 34.38 4.20 46.11 5.068 + 608 gctagctactgatcgatgctacat 304 24 0 45.83 61.072 11.21 0.00 0.00 5.072 + 609 gctagctagctactatcatcgat 426 23 0 43.48 57.922 34.38 0.00 46.11 5.078 + 610 ctagtgatgcatgctagtagtgat 26 24 0 41.67 58.911 20.00 4.64 0.00 5.089 + 611 tactatcatctctgcgcgatcga 358 23 0 47.83 62.092 22.07 1.72 38.48 5.092 + 612 agctgatcgatcgatgctagcta 397 23 0 47.83 62.111 31.26 14.51 40.03 5.111 + 613 tagctgatcgatcgatgctagct 396 23 0 47.83 62.111 33.22 33.22 42.08 5.111 + 614 agctagctgatcgatcgatgcta 393 23 0 47.83 62.111 34.11 32.56 36.80 5.111 + 615 tagctagctgatcgatcgatgct 392 23 0 47.83 62.111 33.87 33.38 38.16 5.111 + 616 tagtgatgcatgctagtagtgat 27 23 0 39.13 57.886 11.56 0.00 0.00 5.114 + 617 tactagctagctgatcatcatcgat 507 25 0 40.00 59.828 0.00 0.00 0.00 5.172 + 618 gctagctagctgatcatcgatgc 187 23 0 52.17 62.193 34.38 9.22 46.11 5.193 + 619 gctagtgatgcatgctagtagtga 25 24 0 45.83 61.195 24.96 4.57 0.00 5.195 + 620 aaagcatcggattagctagctgat 1 24 0 41.67 61.209 17.84 15.13 0.00 5.209 + 621 gtgatgcatgctagtagtgatgtat 29 25 0 40.00 59.774 1.07 1.07 0.00 5.226 + 622 ctatcatctctgcgcgatcgatg 360 23 0 52.17 62.227 18.01 18.01 38.48 5.227 + 623 tgactgatacgcgatgctagcta 474 23 0 47.83 62.287 17.69 3.08 0.00 5.287 + 624 tagctgactgatacgcgatgcta 470 23 0 47.83 62.287 12.64 9.09 0.00 5.287 + 625 tgctagtagtgatgtatacgtagct 37 25 0 40.00 59.713 9.37 8.73 0.00 5.287 + 626 tgactgatcgatcgatgctagct 115 23 0 47.83 62.296 20.19 11.59 35.21 5.296 + 627 agctgactgatcgatcgatgcta 112 23 0 47.83 62.296 26.44 14.64 35.21 5.296 + 628 tagctgactgatcgatcgatgct 111 23 0 47.83 62.296 31.98 30.27 35.21 5.296 + 629 ctagctagctactatcatcgatcg 427 24 0 45.83 58.703 12.49 9.87 0.00 5.297 + 630 tagctagctactatcatcgatcg 428 23 0 43.48 57.691 27.80 9.87 0.00 5.309 + 631 gactgatcgatcatcatgctagct 268 24 0 45.83 61.313 24.51 7.81 41.77 5.313 + 632 gctagctgactgatcgatcatcat 261 24 0 45.83 61.313 26.31 20.43 41.77 5.313 + 633 ctatttagctagctgactgatcga 254 24 0 41.67 58.679 0.00 0.00 0.00 5.321 + 634 gcatgctagtagtgatgtatacg 34 23 0 43.48 57.659 11.60 0.00 0.00 5.341 + 635 tatttagctagctgactgatcga 255 23 0 39.13 57.650 0.00 0.00 0.00 5.350 + 636 ctactagctagctgatcatcatcga 506 25 0 44.00 60.352 1.08 0.00 0.00 5.352 + 637 agctactatcatctctgcgcgat 355 23 0 47.83 62.360 4.99 2.52 0.00 5.360 + 638 gctgatcatcatcgatgctagcta 516 24 0 45.83 61.370 20.15 8.49 40.32 5.370 + 639 tagctgatcatcatcgatgctagc 514 24 0 45.83 61.370 20.04 19.26 40.32 5.370 + 640 gctagctgatcatcatcgatgcta 512 24 0 45.83 61.370 14.58 9.63 40.32 5.370 + 641 tagctagctgatcatcatcgatgc 510 24 0 45.83 61.370 21.42 7.40 40.32 5.370 + 642 atgcatgctagtagtgatgtatacg 32 25 0 40.00 59.604 11.70 0.00 0.00 5.396 + 643 tgatgcatgctagtagtgatgtat 30 24 0 37.50 58.592 12.66 12.66 0.00 5.408 + 644 gactgatcgatcgatgctagctag 116 24 0 50.00 61.409 18.04 17.46 35.21 5.409 + 645 gctatttagctagctgactgatc 253 23 0 43.48 57.572 7.27 0.00 46.11 5.428 + 646 tgctagtgatgcatgctagtagtg 24 24 0 45.83 61.434 24.96 10.54 35.89 5.434 + 647 ctagctagctactatcatctctgc 349 24 0 45.83 58.562 27.80 0.00 0.00 5.438 + 648 gctagctagctactatcatctctg 348 24 0 45.83 58.562 34.38 6.79 46.11 5.438 + 649 gatcatcatcgatgctagctagta 519 24 0 41.67 58.557 22.18 18.77 40.32 5.443 + 650 gatcgatcatcatgctagctacta 272 24 0 41.67 58.557 21.11 0.00 0.00 5.443 + 651 atcatcatcgatgctagctagtag 520 24 0 41.67 58.554 2.13 0.00 40.32 5.446 + 652 atcgatcatcatgctagctactag 273 24 0 41.67 58.554 0.00 0.00 37.62 5.446 + 653 tagctagctactatcatctctgc 350 23 0 43.48 57.527 27.80 0.00 0.00 5.473 + 654 atcatcatcgatgctagctagta 520 23 0 39.13 57.514 22.18 18.77 40.32 5.486 + 655 atcgatcatcatgctagctacta 273 23 0 39.13 57.514 0.00 0.00 0.00 5.486 + 656 gatcatcatcgatgctagctagtag 519 25 0 44.00 59.494 0.21 0.00 40.32 5.506 + 657 gatcgatcatcatgctagctactag 272 25 0 44.00 59.494 21.11 0.00 37.62 5.506 + 658 actagctagctgatcatcatctact 211 25 0 40.00 59.471 22.43 6.99 0.00 5.529 + 659 tgactgatcgatcatcatgctagc 267 24 0 45.83 61.547 26.79 14.13 41.77 5.547 + 660 gctgactgatcgatcatcatgcta 265 24 0 45.83 61.547 27.72 16.42 41.77 5.547 + 661 tagctgactgatcgatcatcatgc 263 24 0 45.83 61.547 27.74 27.74 41.77 5.547 + 662 tgctagtagtgatgtatacgtagc 37 24 0 41.67 58.446 4.93 4.93 0.00 5.554 + 663 ctagctagctgactgatacgcga 465 23 0 52.17 62.571 14.90 0.00 0.00 5.571 + 664 tagctagctactatcatcgatcgat 428 25 0 40.00 59.423 27.80 25.37 35.13 5.577 + 665 gctactagctagctgatcatcatct 208 25 0 44.00 60.585 14.37 0.00 44.92 5.585 + 666 agctgatcatcatctagctagtagc 153 25 0 44.00 60.585 15.25 15.25 40.45 5.585 + 667 ctagctagctgatcgatcgatgtg 71 24 0 50.00 61.642 11.68 4.94 35.21 5.642 + 668 agtgatgcatgctagtagtgatgta 28 25 0 40.00 60.646 11.60 8.84 0.00 5.646 + 669 tagtgatgcatgctagtagtgatgt 27 25 0 40.00 60.646 11.60 0.00 0.00 5.646 + 670 actatcatctctgcgcgatcgat 359 23 0 47.83 62.652 22.07 11.47 38.48 5.652 + 671 ctatttagctagctgactgatcg 254 23 0 43.48 57.339 0.00 0.00 0.00 5.661 + 672 tagctagctgatcgatcgtagcg 561 23 0 52.17 62.677 27.20 18.31 0.00 5.677 + 673 gcatcggattagctagctgatgc 4 23 0 52.17 62.687 34.10 34.10 41.15 5.687 + 674 tgcatgctagtagtgatgtatacgt 33 25 0 40.00 60.700 20.79 0.00 0.00 5.700 + 675 tttagctagctgactgatcgatcat 257 25 0 40.00 60.702 26.67 18.02 36.62 5.702 + 676 atttagctagctgactgatcgatca 256 25 0 40.00 60.702 26.99 26.99 35.44 5.702 + 677 gctagctagctactatcatctct 348 23 0 43.48 57.266 34.38 0.00 46.11 5.734 + 678 aagcatcggattagctagctgatg 2 24 0 45.83 61.794 27.81 27.81 33.28 5.794 + 679 agtgatgtatacgtagctagtagc 44 24 0 41.67 58.201 15.25 15.25 45.79 5.799 + 680 gctagtagtgatgtatacgtagct 38 24 0 41.67 58.201 5.92 5.92 0.00 5.799 + 681 tagctagctgactgatcgatcgat 107 24 0 45.83 61.800 30.53 30.53 37.90 5.800 + 682 actagctagctgactgatacgcg 464 23 0 52.17 62.816 21.52 3.89 0.00 5.816 + 683 actagctagctgatcatcatctac 211 24 0 41.67 58.178 22.43 0.00 0.00 5.822 + 684 tagctgatcgatcgatgctagcta 396 24 0 45.83 61.857 34.98 33.55 41.05 5.857 + 685 tagctagctgatcgatcgatgcta 392 24 0 45.83 61.857 34.11 32.56 36.80 5.857 + 686 tatttagctagctgactgatcgat 255 24 0 37.50 58.112 1.68 0.00 0.00 5.888 + 687 gcatgctagtagtgatgtatacgta 34 25 0 40.00 59.089 11.60 0.00 0.00 5.911 + 688 tatttagctagctgactgatcgatc 255 25 0 40.00 59.084 19.32 19.32 0.00 5.916 + 689 ctatttagctagctgactgatcgat 254 25 0 40.00 59.082 0.00 0.00 0.00 5.918 + 690 ctagctagctactatcatctctgcg 349 25 0 48.00 60.920 27.80 5.75 0.00 5.920 + 691 tgatcgatcgatgctagctaggc 400 23 0 52.17 62.955 26.44 12.49 35.21 5.955 + 692 agctagctactgatcgatgctaca 303 24 0 45.83 61.988 17.56 3.03 0.00 5.988 + 693 tgactgatcgatcgatgctagcta 115 24 0 45.83 62.034 20.19 11.16 35.21 6.034 + 694 tagctgactgatcgatcgatgcta 111 24 0 45.83 62.034 33.43 30.74 35.21 6.034 + 695 catgctagtagtgatgtatacgtagc 35 26 0 42.31 59.961 4.93 4.93 0.00 6.039 + 696 gcatgctagtagtgatgtatacgtag 34 26 0 42.31 59.961 11.60 0.00 0.00 6.039 + 697 actgatcgatcgatgctagctagt 117 24 0 45.83 62.039 23.29 15.07 35.21 6.039 + 698 ctatttagctagctgactgatcgatc 254 26 0 42.31 59.960 19.32 19.32 0.00 6.040 + 699 ttagctagctgactgatcgatcatc 258 25 0 44.00 61.041 28.29 21.92 36.62 6.041 + 700 atgctagtagtgatgtatacgtagct 36 26 0 38.46 60.068 9.37 8.73 0.00 6.068 + 701 ctagctagctgatcatcatctact 212 24 0 41.67 57.930 11.68 6.99 0.00 6.070 + 702 ctactagctagctgatcatcatct 209 24 0 41.67 57.930 1.08 0.00 0.00 6.070 + 703 agctgatcatcatctagctagtag 153 24 0 41.67 57.930 7.49 3.73 40.45 6.070 + 704 ctagctgatcatcatctagctagt 151 24 0 41.67 57.930 21.70 5.56 46.15 6.070 + 705 tagctactatcatctctgcgcgat 354 24 0 45.83 62.096 4.99 2.52 0.00 6.096 + 706 gactgatcgatcatcatgctagcta 268 25 0 44.00 61.099 24.51 4.57 41.77 6.099 + 707 ctgatcatcatcgatgctagctagt 517 25 0 44.00 61.101 22.18 3.56 40.32 6.101 + 708 actagctagctgatcatcatcgatg 508 25 0 44.00 61.101 22.43 20.23 41.48 6.101 + 709 ctgatcgatcatcatgctagctact 270 25 0 44.00 61.101 26.67 0.00 41.77 6.101 + 710 atgctagtagtgatgtatacgtagc 36 25 0 40.00 58.855 4.93 4.93 0.00 6.145 + 711 ctagctagctactgatcgatgctac 301 25 0 48.00 61.145 14.00 7.81 0.00 6.145 + 712 gctagctagctactatcatctctgc 348 25 0 48.00 61.152 34.38 11.74 46.11 6.152 + 713 agctagctgatcatcatctactatca 214 26 0 38.46 59.840 17.99 0.00 0.00 6.160 + 714 ctgatcgatcgatgctagctagtag 118 25 0 48.00 61.197 19.70 5.49 35.21 6.197 + 715 agctagctgactgatcgatcatca 260 24 0 45.83 62.232 26.49 26.49 39.98 6.232 + 716 gctagctagctactatcatcgatcg 426 25 0 48.00 61.252 34.38 9.87 46.11 6.252 + 717 gctatttagctagctgactgatcga 253 25 0 44.00 61.268 7.27 0.00 46.11 6.268 + 718 ctagctagctactatcatcgatcgat 427 26 0 42.31 60.291 27.80 25.37 35.13 6.291 + 719 agctgatcatcgatgctactagct 194 24 0 45.83 62.294 24.11 23.60 45.92 6.294 + 720 agctagctgatcatcgatgctact 190 24 0 45.83 62.294 17.99 10.88 0.00 6.294 + 721 ctagctagctgactgatcgatcga 106 24 0 50.00 62.312 22.52 22.52 0.00 6.312 + 722 actgatcgatcatcatgctagctac 269 25 0 44.00 61.328 26.67 0.00 41.77 6.328 + 723 tgatgcatgctagtagtgatgtatac 30 26 0 38.46 59.623 9.19 6.43 0.00 6.377 + 724 gtgatgcatgctagtagtgatgtata 29 26 0 38.46 59.623 4.23 0.00 0.00 6.377 + 725 tactatcatctctgcgcgatcgat 358 24 0 45.83 62.379 22.07 11.47 38.48 6.379 + 726 gctagctgatcatcatctactatca 215 25 0 40.00 58.607 8.21 0.00 0.00 6.393 + 727 gctactagctagctgatcatcatcta 208 26 0 42.31 60.404 14.37 0.00 44.92 6.404 + 728 tagctgatcatcatctagctagtagc 152 26 0 42.31 60.404 15.25 15.25 41.48 6.404 + 729 tgctagtagtgatgtatacgtagcta 37 26 0 38.46 59.564 10.00 8.05 0.00 6.436 + 730 gatgcatgctagtagtgatgtatacg 31 26 0 42.31 60.453 7.40 0.00 0.00 6.453 + 731 tagtgatgcatgctagtagtgatgta 27 26 0 38.46 60.461 11.60 8.84 0.00 6.461 + 732 gctagtgatgcatgctagtagtgat 25 25 0 44.00 61.506 24.96 8.51 0.00 6.506 + 733 tgcatgctagtagtgatgtatacgta 33 26 0 38.46 60.515 20.79 0.00 0.00 6.515 + 734 tatttagctagctgactgatcgatca 255 26 0 38.46 60.516 26.99 26.99 35.44 6.516 + 735 tgatgcatgctagtagtgatgtata 30 25 0 36.00 58.479 4.13 0.00 0.00 6.521 + 736 tactagctagctgactgatacgcg 463 24 0 50.00 62.538 13.17 3.89 0.00 6.538 + 737 ctagctactatcatctctgcgcga 353 24 0 50.00 62.603 2.71 2.71 0.00 6.603 + 738 agctagctgatcatcatctactatc 214 25 0 40.00 58.369 17.99 0.00 0.00 6.631 + 739 agctagctgatcatcatctactat 214 24 0 37.50 57.345 17.99 0.00 0.00 6.655 + 740 gctactagctagctgatcatcatcg 505 25 0 48.00 61.656 14.37 0.00 44.92 6.656 + 741 gctgatcatcgatgctactagctag 195 25 0 48.00 61.656 20.91 20.04 45.92 6.656 + 742 ctagctgatcatcgatgctactagc 192 25 0 48.00 61.656 20.78 20.78 45.61 6.656 + 743 gctagctgatcatcgatgctactag 191 25 0 48.00 61.656 20.13 20.13 0.00 6.656 + 744 ctagctagctgatcatcgatgctac 188 25 0 48.00 61.656 17.82 12.06 0.00 6.656 + 745 actagctagctgatcatcatctacta 211 26 0 38.46 59.328 22.43 8.11 0.00 6.672 + 746 tactagctagctgatcatcatctact 210 26 0 38.46 59.328 6.99 6.99 0.00 6.672 + 747 ctactagctagctgatcatcatcgat 506 26 0 42.31 60.681 1.08 0.00 0.00 6.681 + 748 tagctagctactgatcgatgctaca 302 25 0 44.00 61.746 27.80 5.02 0.00 6.746 + 749 gtagtgatgtatacgtagctagtagc 42 26 0 42.31 59.249 15.25 15.25 45.79 6.751 + 750 actgatcgatcgatgctagctagta 117 25 0 44.00 61.797 23.29 18.77 35.21 6.797 + 751 gatgcatgctagtagtgatgtatac 31 25 0 40.00 58.175 20.79 1.70 0.00 6.825 + 752 agctgatcatcatcgatgctagct 515 24 0 45.83 62.835 23.00 22.41 41.74 6.835 + 753 agctagctgatcatcatcgatgct 511 24 0 45.83 62.835 17.99 8.34 40.32 6.835 + 754 ctagctagctgactgatacgcgat 465 24 0 50.00 62.838 14.90 0.00 0.00 6.838 + 755 atgcatgctagtagtgatgtatac 32 24 0 37.50 57.161 11.70 0.53 0.00 6.839 + 756 agctagctactatcatctctgcgc 351 24 0 50.00 62.858 17.56 0.00 0.00 6.858 + 757 gctagctagctactgatcgatgct 300 24 0 50.00 62.858 34.38 11.51 46.11 6.858 + 758 ctactatcatctctgcgcgatcga 357 24 0 50.00 62.878 22.07 1.72 38.48 6.878 + 759 gctagctactgatcgatgctacatc 304 25 0 48.00 61.879 11.21 4.40 37.97 6.879 + 760 tagtgatgtatacgtagctagtagc 43 25 0 40.00 58.104 15.25 15.25 45.79 6.896 + 761 gctagtagtgatgtatacgtagcta 38 25 0 40.00 58.104 7.24 5.34 0.00 6.896 + 762 tgatcatcatcgatgctagctagtag 518 26 0 42.31 60.902 14.93 0.00 40.32 6.902 + 763 ctgatcatcatcgatgctagctagta 517 26 0 42.31 60.902 22.18 18.77 40.32 6.902 + 764 tactagctagctgatcatcatcgatg 507 26 0 42.31 60.902 20.23 20.23 41.48 6.902 + 765 tgatcgatcatcatgctagctactag 271 26 0 42.31 60.902 27.48 0.00 37.38 6.902 + 766 ctgatcgatcatcatgctagctacta 270 26 0 42.31 60.902 26.67 1.37 41.77 6.902 + 767 agctgatcgatcgatgctagctag 397 24 0 50.00 62.904 31.26 19.90 40.03 6.904 + 768 ctagctgatcgatcgatgctagct 395 24 0 50.00 62.904 35.51 33.22 43.05 6.904 + 769 agctagctgatcgatcgatgctag 393 24 0 50.00 62.904 41.07 41.07 46.89 6.904 + 770 ctagctagctgatcgatcgatgct 391 24 0 50.00 62.904 33.87 33.38 38.16 6.904 + 771 tactagctagctgatcatcatctac 210 25 0 40.00 58.081 0.00 0.00 0.00 6.919 + 772 gctagctgatcatcatctactatc 215 24 0 41.67 57.062 8.21 0.00 0.00 6.938 + 773 agtgatgcatgctagtagtgatgtat 28 26 0 38.46 60.969 1.07 1.07 0.00 6.969 + 774 gctagtagtgatgtatacgtagctag 38 26 0 42.31 59.027 8.99 8.99 0.00 6.973 + 775 tagctagctgactgatcgatcatca 259 25 0 44.00 61.981 28.29 26.49 39.98 6.981 + 776 ctactagctagctgatcatcatctac 209 26 0 42.31 59.015 1.08 0.00 0.00 6.985 + 777 agtagtgatgtatacgtagctagt 41 24 0 37.50 57.012 8.68 8.68 0.00 6.988 + 778 gctagctgatcatcatctactatcat 215 26 0 38.46 59.001 8.21 0.00 0.00 6.999 + 779 agctgatcatcatctactatcatca 218 25 0 36.00 57.993 0.00 0.00 0.00 7.007 + 780 atgcatgctagtagtgatgtatacgt 32 26 0 38.46 61.018 11.70 0.00 0.00 7.018 + 781 atttagctagctgactgatcgatcat 256 26 0 38.46 61.022 26.67 18.02 36.62 7.022 + 782 agctgatcatcgatgctactagcta 194 25 0 44.00 62.040 24.59 9.79 45.92 7.040 + 783 tagctgatcatcgatgctactagct 193 25 0 44.00 62.040 27.00 27.00 45.92 7.040 + 784 agctagctgatcatcgatgctacta 190 25 0 44.00 62.040 17.99 11.59 0.00 7.040 + 785 tagctagctgatcatcgatgctact 189 25 0 44.00 62.040 17.55 15.53 0.00 7.040 + 786 atgctagtagtgatgtatacgtagcta 36 27 0 37.04 59.911 10.00 8.05 0.00 7.089 + 787 gctagctgatcatcatctactatcatc 215 27 0 40.74 59.861 8.21 0.00 0.00 7.139 + 788 ctagctagctgatcatcatctacta 212 25 0 40.00 57.842 11.68 8.11 0.00 7.158 + 789 ctactagctagctgatcatcatcta 209 25 0 40.00 57.842 1.08 0.00 0.00 7.158 + 790 tagctgatcatcatctagctagtag 152 25 0 40.00 57.842 13.40 3.73 41.48 7.158 + 791 ctagctgatcatcatctagctagta 151 25 0 40.00 57.842 21.70 7.13 46.15 7.158 + 792 gctgatcatcatcgatgctagctag 516 25 0 48.00 62.165 20.15 17.46 40.32 7.165 + 793 ctagctgatcatcatcgatgctagc 513 25 0 48.00 62.165 19.27 19.26 41.96 7.165 + 794 gctagctgatcatcatcgatgctag 512 25 0 48.00 62.165 23.70 23.70 45.51 7.165 + 795 ctagctagctgatcatcatcgatgc 509 25 0 48.00 62.165 21.42 7.40 40.32 7.165 + 796 agctagctgatcatcatctactatcat 214 27 0 37.04 60.181 17.99 0.00 0.00 7.181 + 797 ctactagctagctgatcatcatctact 209 27 0 40.74 60.181 6.99 6.99 0.00 7.181 + 798 ctagctgatcatcatctagctagtag 151 26 0 42.31 58.789 21.70 10.73 46.15 7.211 + 799 aaagcatcggattagctagctgatg 1 25 0 44.00 62.249 27.81 27.81 33.28 7.249 + 800 agctagctactgatcgatgctacat 303 25 0 44.00 62.272 17.56 6.16 0.00 7.272 + 801 tagctagctgatcatcatctactatca 213 27 0 37.04 59.689 8.31 0.00 0.00 7.311 + 802 actagctagctgatcatcatctactat 211 27 0 37.04 59.688 22.43 2.36 0.00 7.312 + 803 ctgactgatcgatcatcatgctagc 266 25 0 48.00 62.333 20.99 8.86 41.77 7.333 + 804 gctgactgatcgatcatcatgctag 265 25 0 48.00 62.333 27.72 21.73 41.77 7.333 + 805 ctagctgactgatcgatcatcatgc 262 25 0 48.00 62.333 27.74 27.74 41.77 7.333 + 806 gctagctgactgatcgatcatcatg 261 25 0 48.00 62.333 22.70 19.51 41.77 7.333 + 807 tgctagtagtgatgtatacgtagctag 37 27 0 40.74 60.395 8.99 8.99 0.00 7.395 + 808 agtagtgatgtatacgtagctagtagc 41 27 0 40.74 60.395 15.25 15.25 45.79 7.395 + 809 gctagtagtgatgtatacgtagctagt 38 27 0 40.74 60.395 15.55 15.55 0.00 7.395 + 810 ctagtgatgcatgctagtagtgatgt 26 26 0 42.31 61.460 20.00 0.00 0.00 7.460 + 811 gctgatcatcatctactatcatcatca 219 27 0 37.04 59.533 0.00 0.00 0.00 7.467 + 812 agctagctgactgatcgatcatcat 260 25 0 44.00 62.507 26.31 20.43 41.77 7.507 + 813 tttagctagctgactgatcgatcatc 257 26 0 42.31 61.507 23.93 21.92 36.62 7.507 + 814 catgctagtagtgatgtatacgtag 35 25 0 40.00 57.441 4.74 0.00 0.00 7.559 + 815 agctgatcatcatcgatgctagcta 515 25 0 44.00 62.561 23.50 10.90 43.19 7.561 + 816 tagctgatcatcatcgatgctagct 514 25 0 44.00 62.561 26.21 26.21 44.79 7.561 + 817 agctagctgatcatcatcgatgcta 511 25 0 44.00 62.561 17.99 9.63 40.32 7.561 + 818 tagctagctgatcatcatcgatgct 510 25 0 44.00 62.561 14.14 10.38 40.32 7.561 + 819 gctatttagctagctgactgatcgat 253 26 0 42.31 61.564 7.27 0.00 46.11 7.564 + 820 ctagctagctgactgatcgatcgat 106 25 0 48.00 62.579 30.53 30.53 37.90 7.579 + 821 agctgatcatcatctactatcatcat 218 26 0 34.62 58.415 0.00 0.00 0.00 7.585 + 822 tagctagctactatcatctctgcgc 350 25 0 48.00 62.587 27.80 0.00 0.00 7.587 + 823 gctagctagctactgatcgatgcta 300 25 0 48.00 62.587 34.38 12.23 46.11 7.587 + 824 tgctagtgatgcatgctagtagtga 24 25 0 44.00 62.622 24.96 13.57 35.89 7.622 + 825 tagctgatcgatcgatgctagctag 396 25 0 48.00 62.632 33.71 21.46 41.05 7.632 + 826 ctagctgatcgatcgatgctagcta 395 25 0 48.00 62.632 35.51 32.61 43.05 7.632 + 827 tagctagctgatcgatcgatgctag 392 25 0 48.00 62.632 41.07 41.07 46.89 7.632 + 828 ctagctagctgatcgatcgatgcta 391 25 0 48.00 62.632 34.11 32.56 36.80 7.632 + 829 gtgatgcatgctagtagtgatgtatac 29 27 0 40.74 60.659 9.56 7.17 0.00 7.659 + 830 agctgatcatcatctactatcatcatc 218 27 0 37.04 59.314 0.00 0.00 0.00 7.686 + 831 tagctagctgatcatcatctactat 213 25 0 36.00 57.279 8.31 0.00 0.00 7.721 + 832 tagctagctgatcatcatctactatc 213 26 0 38.46 58.269 8.31 0.00 0.00 7.731 + 833 tgactgatcgatcatcatgctagct 267 25 0 44.00 62.733 26.79 10.55 41.77 7.733 + 834 agctgactgatcgatcatcatgcta 264 25 0 44.00 62.733 30.60 18.10 41.77 7.733 + 835 tagctgactgatcgatcatcatgct 263 25 0 44.00 62.733 32.31 32.31 41.77 7.733 + 836 ctagctagctgatcatcatctactat 212 26 0 38.46 58.265 9.41 0.00 0.00 7.735 + 837 agtgatgcatgctagtagtgatgtata 28 27 0 37.04 60.779 4.23 0.00 0.00 7.779 + 838 tagtgatgcatgctagtagtgatgtat 27 27 0 37.04 60.779 11.56 0.00 0.00 7.779 + 839 tgactgatcgatcgatgctagctag 115 25 0 48.00 62.800 20.19 17.46 35.21 7.800 + 840 ctgactgatcgatcgatgctagcta 114 25 0 48.00 62.800 20.19 11.97 35.21 7.800 + 841 tagctgactgatcgatcgatgctag 111 25 0 48.00 62.800 31.45 26.34 35.21 7.800 + 842 ctagctgactgatcgatcgatgcta 110 25 0 48.00 62.800 31.54 29.68 35.21 7.800 + 843 tagctagctgactgatcgatcgatg 107 25 0 48.00 62.800 28.29 13.21 35.21 7.800 + 844 gactgatcgatcgatgctagctagt 116 25 0 48.00 62.802 22.18 12.64 35.21 7.802 + 845 tactagctagctgatcatcatctacta 210 27 0 37.04 59.196 8.79 8.11 0.00 7.804 + 846 tagctgatcatcgatgctactagcta 193 26 0 42.31 61.805 28.86 27.39 45.92 7.805 + 847 tagctagctgatcatcgatgctacta 189 26 0 42.31 61.805 18.93 16.03 0.00 7.805 + 848 atgcatgctagtagtgatgtatacgta 32 27 0 37.04 60.828 11.70 0.00 0.00 7.828 + 849 tatttagctagctgactgatcgatcat 255 27 0 37.04 60.831 26.67 18.02 36.62 7.831 + 850 ctagctagctgatcatcatctactatc 212 27 0 40.74 59.162 9.41 0.06 0.00 7.838 + 851 tagctactatcatctctgcgcgatc 354 25 0 48.00 62.854 0.00 0.00 0.00 7.854 + 852 gctgatcatcatctactatcatcat 219 25 0 36.00 57.142 0.00 0.00 0.00 7.858 + 853 ctagctactatcatctctgcgcgat 353 25 0 48.00 62.859 4.99 2.52 0.00 7.859 + 854 gctgatcatcatctactatcatcatc 219 26 0 38.46 58.126 0.00 0.00 0.00 7.874 + 855 tagctagctactgatcgatgctacat 302 26 0 42.31 62.028 27.80 3.08 0.00 8.028 + 856 agtagtgatgtatacgtagctagtag 41 26 0 38.46 57.950 9.92 1.30 0.00 8.050 + 857 ctagtagtgatgtatacgtagctagt 39 26 0 38.46 57.950 15.52 15.52 0.00 8.050 + 858 catgctagtagtgatgtatacgtagct 35 27 0 40.74 61.089 9.37 8.73 0.00 8.089 + 859 gactgatcgatcatcatgctagctac 268 26 0 46.15 62.094 24.51 8.36 41.77 8.094 + 860 tagctgatcatcatctactatcatca 217 26 0 34.62 57.906 0.00 0.00 0.00 8.094 + 861 ctagctgatcatcatctactatcatca 216 27 0 37.04 58.826 0.00 0.00 0.00 8.174 + 862 ctagctgatcatcatctagctagtagc 151 27 0 44.44 61.196 21.70 15.25 46.15 8.196 + 863 tagctagctgactgatcgatcatcat 259 26 0 42.31 62.255 28.29 20.43 41.77 8.255 + 864 ctagtgatgcatgctagtagtgatgta 26 27 0 40.74 61.255 20.00 8.84 0.00 8.255 + 865 tgcatgctagtagtgatgtatacgtag 33 27 0 40.74 61.300 20.79 0.00 0.00 8.300 + 866 ctatttagctagctgactgatcgatca 254 27 0 40.74 61.304 26.99 26.99 35.44 8.304 + 867 tagctgatcatcatcgatgctagcta 514 26 0 42.31 62.307 28.23 26.63 43.19 8.307 + 868 tagctagctgatcatcatcgatgcta 510 26 0 42.31 62.307 14.58 11.03 40.32 8.307 + 869 gctagctagctactatcatcgatcga 426 26 0 46.15 62.381 34.38 22.52 46.11 8.381 + 870 gctactagctagctgatcatcatctac 208 27 0 44.44 61.407 14.37 0.00 44.92 8.407 + 871 ttagctagctgactgatcgatcatca 258 26 0 42.31 62.416 28.29 26.49 39.98 8.416 + 872 tgactgatcgatcatcatgctagcta 267 26 0 42.31 62.472 26.79 11.24 41.77 8.472 + 873 tagctgactgatcgatcatcatgcta 263 26 0 42.31 62.472 33.83 32.61 41.77 8.472 + 874 actgatcgatcatcatgctagctact 269 26 0 42.31 62.478 26.67 0.00 41.77 8.478 + 875 gctagtgatgcatgctagtagtgatg 25 26 0 46.15 62.484 24.96 9.07 0.00 8.484 + 876 ctagctagctactgatcgatgctaca 301 26 0 46.15 62.503 14.00 5.87 0.00 8.503 + 877 gactgatcgatcgatgctagctagta 116 26 0 46.15 62.543 22.18 18.77 35.21 8.543 + 878 actgatcgatcgatgctagctagtag 117 26 0 46.15 62.548 23.29 12.42 35.21 8.548 + 879 ctagctgatcatcatctactatcatc 216 26 0 38.46 57.395 0.00 0.00 0.00 8.605 + 880 ctgatcatcatcgatgctagctagtag 517 27 0 44.44 61.665 10.30 1.36 40.32 8.665 + 881 ctactagctagctgatcatcatcgatg 506 27 0 44.44 61.665 20.23 20.23 41.48 8.665 + 882 ctgatcgatcatcatgctagctactag 270 27 0 44.44 61.665 26.67 8.14 41.77 8.665 + 883 tagctgatcatcatctactatcatcat 217 27 0 33.33 58.315 0.00 0.00 0.00 8.685 + 884 tgatgcatgctagtagtgatgtatacg 30 27 0 40.74 61.778 9.81 0.00 0.00 8.778 + 885 gatgcatgctagtagtgatgtatacgt 31 27 0 40.74 61.779 7.40 0.00 0.00 8.779 + 886 gctactagctagctgatcatcatcga 505 26 0 46.15 62.779 14.37 0.00 44.92 8.779 + 887 agctgatcatcgatgctactagctag 194 26 0 46.15 62.784 24.59 20.04 45.92 8.784 + 888 ctagctgatcatcgatgctactagct 192 26 0 46.15 62.784 27.00 27.00 45.92 8.784 + 889 agctagctgatcatcgatgctactag 190 26 0 46.15 62.784 20.13 20.13 0.00 8.784 + 890 ctagctagctgatcatcgatgctact 188 26 0 46.15 62.784 17.55 15.53 0.00 8.784 + 891 atttagctagctgactgatcgatcatc 256 27 0 40.74 61.785 23.93 21.92 36.62 8.785 + 892 tctactatcatcatcatctactagct 230 26 0 34.62 57.155 0.00 0.00 0.00 8.845 + 893 tgctagtgatgcatgctagtagtgat 24 26 0 42.31 62.874 24.96 8.51 35.89 8.874 + 894 ctgatcatcatctactatcatcatca 220 26 0 34.62 57.026 0.00 0.00 0.00 8.974 + 895 agctagctactgatcgatgctacatc 303 26 0 46.15 62.999 17.56 7.89 37.97 8.999 + 896 tagtagtgatgtatacgtagctagtag 40 27 0 37.04 57.869 16.78 1.30 0.00 9.131 + 897 ctagtagtgatgtatacgtagctagta 39 27 0 37.04 57.869 16.85 15.97 0.00 9.131 + 898 actgatcgatcatcatgctagctacta 269 27 0 40.74 62.236 26.67 1.37 41.77 9.236 + 899 gcatgctagtagtgatgtatacgtagc 34 27 0 44.44 62.283 11.60 4.93 0.00 9.283 + 900 gctatttagctagctgactgatcgatc 253 27 0 44.44 62.291 19.32 19.32 46.11 9.291 + 901 atctactatcatcatcatctactagct 229 27 0 33.33 57.592 0.00 0.00 0.00 9.408 + 902 catctactatcatcatcatctactagc 228 27 0 37.04 57.549 0.00 0.00 0.00 9.451 + 903 tgatcatcatctactatcatcatcatc 221 27 0 33.33 57.467 0.00 0.00 0.00 9.533 + 904 tagctgatcatcgatgctactagctag 193 27 0 44.44 62.534 27.70 20.04 45.92 9.534 + 905 ctagctgatcatcgatgctactagcta 192 27 0 44.44 62.534 27.76 26.73 45.92 9.534 + 906 tagctagctgatcatcgatgctactag 189 27 0 44.44 62.534 20.13 20.13 0.00 9.534 + 907 ctagctagctgatcatcgatgctacta 188 27 0 44.44 62.534 17.74 15.95 0.00 9.534 + 908 ctgatcatcatctactatcatcatcat 220 27 0 33.33 57.462 0.00 0.00 0.00 9.538 + 909 gctagctagctactatcatcgatcgat 426 27 0 44.44 62.627 34.38 25.37 46.11 9.627 + 910 ttagctagctgactgatcgatcatcat 258 27 0 40.74 62.665 28.29 20.43 41.77 9.665 + 911 tagctagctactgatcgatgctacatc 302 27 0 44.44 62.742 27.80 7.89 37.97 9.742 + 912 ctagctagctactgatcgatgctacat 301 27 0 44.44 62.747 14.00 2.51 0.00 9.747 + 913 gatcatcatctactatcatcatcatct 222 27 0 33.33 57.242 0.00 0.00 0.00 9.758 + 914 tttagctagctgactgatcgatcatca 257 27 0 40.74 62.820 26.49 26.49 39.98 9.820 + 915 tctactatcatcatcatctactagcta 230 27 0 33.33 57.100 0.00 0.00 0.00 9.900 diff --git a/samples/Formatted/wksst8110.for b/samples/Formatted/wksst8110.for new file mode 100644 index 00000000..1ee1a489 --- /dev/null +++ b/samples/Formatted/wksst8110.for @@ -0,0 +1,1317 @@ + Weekly SST data starts week centered on 3Jan1990 + + Nino1+2 Nino3 Nino34 Nino4 + Week SST SSTA SST SSTA SST SSTA SST SSTA + 03JAN1990 23.4-0.4 25.1-0.3 26.6 0.0 28.6 0.3 + 10JAN1990 23.4-0.8 25.2-0.3 26.6 0.1 28.6 0.3 + 17JAN1990 24.2-0.3 25.3-0.3 26.5-0.1 28.6 0.3 + 24JAN1990 24.4-0.5 25.5-0.4 26.5-0.1 28.4 0.2 + 31JAN1990 25.1-0.2 25.8-0.2 26.7 0.1 28.4 0.2 + 07FEB1990 25.8 0.2 26.1-0.1 26.8 0.1 28.4 0.3 + 14FEB1990 25.9-0.1 26.4 0.0 26.9 0.2 28.5 0.4 + 21FEB1990 26.1-0.1 26.7 0.2 27.1 0.3 28.9 0.8 + 28FEB1990 26.1-0.2 26.7-0.1 27.2 0.3 29.0 0.8 + 07MAR1990 26.7 0.3 26.7-0.2 27.3 0.2 28.9 0.7 + 14MAR1990 26.1-0.4 26.9-0.2 27.3 0.1 28.6 0.4 + 21MAR1990 26.1-0.2 27.2 0.0 27.6 0.3 28.7 0.5 + 28MAR1990 25.7-0.4 27.5 0.2 27.8 0.3 28.8 0.5 + 04APR1990 25.6-0.3 27.6 0.3 27.9 0.4 28.8 0.4 + 11APR1990 25.1-0.6 27.6 0.2 27.9 0.2 28.8 0.3 + 18APR1990 25.3 0.0 27.7 0.2 28.0 0.2 28.9 0.4 + 25APR1990 25.1 0.0 27.7 0.4 28.2 0.4 29.2 0.6 + 02MAY1990 24.6-0.2 27.6 0.3 28.1 0.3 29.0 0.4 + 09MAY1990 24.2-0.2 27.5 0.3 28.1 0.3 28.9 0.2 + 16MAY1990 24.3 0.1 27.4 0.3 28.0 0.2 28.8 0.1 + 23MAY1990 23.7-0.2 27.2 0.2 28.1 0.3 29.0 0.2 + 30MAY1990 23.4-0.1 27.1 0.3 27.9 0.2 28.9 0.1 + 06JUN1990 23.2 0.0 26.7 0.1 27.7 0.0 28.9 0.1 + 13JUN1990 22.8-0.2 26.6 0.1 27.7 0.0 29.0 0.1 + 20JUN1990 22.5-0.1 26.4 0.0 27.5-0.1 29.0 0.1 + 27JUN1990 22.1-0.3 26.0-0.1 27.3-0.2 28.9 0.1 + 04JUL1990 21.7-0.4 25.8-0.2 27.3-0.1 28.9 0.1 + 11JUL1990 21.3-0.5 25.4-0.3 27.2-0.1 28.8 0.0 + 18JUL1990 21.0-0.5 25.7 0.1 27.4 0.2 29.1 0.3 + 25JUL1990 20.2-1.1 25.1-0.4 27.3 0.1 29.1 0.3 + 01AUG1990 20.6-0.6 25.1-0.2 27.1 0.1 29.0 0.3 + 08AUG1990 20.4-0.5 25.2 0.1 27.2 0.3 29.3 0.6 + 15AUG1990 20.4-0.3 25.1 0.1 27.0 0.2 29.2 0.5 + 22AUG1990 19.8-0.7 24.9 0.0 27.0 0.2 29.2 0.5 + 29AUG1990 20.2-0.3 25.0 0.1 26.9 0.2 29.0 0.4 + 05SEP1990 19.7-0.8 24.9 0.0 26.7 0.0 28.9 0.3 + 12SEP1990 20.1-0.3 24.7-0.2 26.7 0.0 29.1 0.4 + 19SEP1990 20.3-0.1 24.9 0.1 26.8 0.0 29.1 0.4 + 26SEP1990 20.3-0.2 24.8-0.1 26.7 0.0 29.0 0.3 + 03OCT1990 20.8 0.1 25.1 0.2 26.9 0.2 29.2 0.5 + 10OCT1990 20.1-0.6 24.9 0.0 27.0 0.3 29.1 0.5 + 17OCT1990 20.3-0.6 24.9 0.0 27.0 0.3 29.3 0.6 + 24OCT1990 20.1-0.9 24.9-0.1 27.0 0.4 29.3 0.6 + 31OCT1990 20.2-1.0 24.7-0.2 26.9 0.2 29.2 0.6 + 07NOV1990 20.5-0.8 25.0 0.1 26.9 0.3 29.1 0.5 + 14NOV1990 20.8-0.8 24.8-0.1 26.7 0.0 29.0 0.4 + 21NOV1990 20.9-0.9 24.6-0.4 26.6 0.0 29.0 0.4 + 28NOV1990 21.5-0.6 24.8-0.3 26.5-0.1 28.9 0.4 + 05DEC1990 22.2-0.2 25.2 0.1 26.9 0.3 29.2 0.7 + 12DEC1990 22.1-0.5 25.0-0.1 26.8 0.3 29.3 0.8 + 19DEC1990 22.2-0.8 24.9-0.3 26.9 0.4 29.2 0.7 + 26DEC1990 23.3 0.0 25.3 0.0 27.0 0.4 29.0 0.6 + 02JAN1991 23.2-0.5 25.3-0.1 26.9 0.4 28.9 0.5 + 09JAN1991 23.5-0.6 25.4-0.1 27.0 0.4 29.1 0.8 + 16JAN1991 23.7-0.7 25.7 0.1 27.0 0.5 29.0 0.8 + 23JAN1991 24.2-0.6 25.8 0.0 27.1 0.5 29.0 0.8 + 30JAN1991 24.7-0.5 26.0 0.0 27.0 0.3 28.9 0.7 + 06FEB1991 25.4-0.2 26.1 0.0 27.0 0.3 28.8 0.6 + 13FEB1991 26.0 0.0 26.3 0.0 27.0 0.3 28.8 0.7 + 20FEB1991 26.5 0.3 26.3-0.2 26.9 0.1 28.7 0.6 + 27FEB1991 26.5 0.2 26.5-0.2 26.8-0.1 28.5 0.4 + 06MAR1991 26.5 0.2 26.6-0.3 26.8-0.2 28.5 0.3 + 13MAR1991 26.8 0.4 27.0-0.1 27.1-0.1 28.5 0.3 + 20MAR1991 26.6 0.2 27.1-0.1 27.4 0.1 28.6 0.4 + 27MAR1991 26.2 0.1 27.4 0.1 27.7 0.3 28.9 0.6 + 03APR1991 25.8-0.1 27.3 0.0 27.8 0.2 28.9 0.5 + 10APR1991 25.2-0.5 27.0-0.4 27.8 0.1 29.1 0.7 + 17APR1991 24.9-0.5 27.5 0.0 28.2 0.4 29.2 0.7 + 24APR1991 24.3-0.8 27.4 0.0 28.1 0.3 29.2 0.6 + 01MAY1991 24.6-0.2 27.6 0.4 28.1 0.3 29.1 0.4 + 08MAY1991 24.4-0.2 27.5 0.3 28.3 0.5 29.3 0.6 + 15MAY1991 24.5 0.2 27.5 0.4 28.4 0.5 29.5 0.7 + 22MAY1991 24.3 0.4 27.7 0.7 28.5 0.7 29.5 0.7 + 29MAY1991 24.2 0.5 27.6 0.8 28.5 0.7 29.5 0.7 + 05JUN1991 23.7 0.4 27.5 0.8 28.3 0.6 29.3 0.5 + 12JUN1991 23.2 0.2 27.4 0.9 28.3 0.6 29.3 0.5 + 19JUN1991 23.0 0.3 27.2 0.9 28.4 0.8 29.4 0.5 + 26JUN1991 22.2-0.2 27.3 1.1 28.4 0.9 29.4 0.6 + 03JUL1991 22.8 0.7 27.0 1.0 28.1 0.7 29.2 0.4 + 10JUL1991 22.3 0.4 26.8 1.0 28.1 0.8 29.2 0.4 + 17JUL1991 21.9 0.3 26.6 1.0 27.9 0.7 29.3 0.5 + 24JUL1991 21.6 0.3 26.2 0.7 27.7 0.5 29.2 0.5 + 31JUL1991 21.6 0.5 26.1 0.8 27.9 0.9 29.5 0.7 + 07AUG1991 21.2 0.3 25.6 0.4 27.5 0.6 29.3 0.6 + 14AUG1991 21.3 0.5 25.4 0.4 27.6 0.7 29.3 0.6 + 21AUG1991 20.9 0.3 25.4 0.5 27.4 0.6 29.3 0.6 + 28AUG1991 20.7 0.2 25.2 0.3 27.0 0.3 29.0 0.3 + 04SEP1991 20.9 0.4 25.1 0.2 27.1 0.3 29.1 0.5 + 11SEP1991 20.7 0.3 24.7-0.1 26.9 0.1 29.0 0.4 + 18SEP1991 20.7 0.3 25.1 0.2 27.2 0.5 29.4 0.7 + 25SEP1991 20.8 0.3 25.2 0.3 27.1 0.4 29.2 0.5 + 02OCT1991 20.8 0.2 25.3 0.4 27.2 0.5 29.3 0.6 + 09OCT1991 21.1 0.4 25.6 0.7 27.7 1.0 29.5 0.8 + 16OCT1991 20.7-0.1 25.5 0.6 27.8 1.1 29.6 1.0 + 23OCT1991 21.2 0.2 25.7 0.8 27.6 0.9 29.4 0.7 + 30OCT1991 21.9 0.7 25.9 1.0 27.8 1.1 29.4 0.8 + 06NOV1991 22.0 0.7 25.8 0.9 27.8 1.1 29.5 0.8 + 13NOV1991 21.9 0.4 25.9 1.0 27.8 1.1 29.5 0.9 + 20NOV1991 22.5 0.7 26.1 1.1 27.9 1.3 29.4 0.8 + 27NOV1991 22.3 0.3 26.1 1.1 28.0 1.4 29.4 0.9 + 04DEC1991 22.8 0.5 26.2 1.1 28.1 1.5 29.4 0.9 + 11DEC1991 23.4 0.8 26.5 1.4 28.3 1.7 29.4 0.9 + 18DEC1991 23.7 0.8 26.6 1.5 28.5 2.0 29.5 1.0 + 25DEC1991 23.6 0.3 26.7 1.4 28.5 1.9 29.6 1.2 + 01JAN1992 24.0 0.3 26.7 1.3 28.5 1.9 29.3 1.0 + 08JAN1992 24.2 0.2 26.8 1.3 28.5 1.9 29.2 0.9 + 15JAN1992 24.6 0.2 26.9 1.3 28.4 1.9 29.1 0.8 + 22JAN1992 25.3 0.5 27.1 1.3 28.4 1.8 29.0 0.7 + 29JAN1992 25.9 0.7 27.4 1.4 28.3 1.7 28.7 0.6 + 05FEB1992 26.3 0.8 27.5 1.3 28.4 1.7 28.8 0.7 + 12FEB1992 26.4 0.5 27.6 1.3 28.6 1.9 29.0 0.9 + 19FEB1992 26.8 0.6 27.8 1.3 28.8 2.0 29.2 1.1 + 26FEB1992 27.3 1.1 27.9 1.2 28.8 1.9 29.1 1.0 + 04MAR1992 27.3 1.0 27.9 1.1 28.6 1.6 29.1 0.9 + 11MAR1992 27.7 1.2 28.1 1.0 28.7 1.6 29.2 1.0 + 18MAR1992 27.9 1.4 28.5 1.3 28.8 1.6 28.9 0.7 + 25MAR1992 28.1 1.9 28.7 1.4 29.0 1.6 29.1 0.8 + 01APR1992 27.9 1.9 28.7 1.3 29.1 1.6 29.4 1.0 + 08APR1992 28.3 2.6 28.8 1.4 29.3 1.6 29.6 1.2 + 15APR1992 28.0 2.5 28.8 1.3 29.2 1.4 29.5 1.0 + 22APR1992 27.1 1.9 28.6 1.2 29.0 1.2 29.3 0.8 + 29APR1992 27.0 2.1 28.8 1.5 29.1 1.2 29.2 0.6 + 06MAY1992 27.0 2.4 28.8 1.6 29.2 1.3 29.4 0.7 + 13MAY1992 26.6 2.3 28.6 1.5 29.1 1.2 29.5 0.8 + 20MAY1992 25.8 1.8 28.2 1.2 29.0 1.1 29.5 0.8 + 27MAY1992 25.9 2.2 28.1 1.3 28.8 1.1 29.5 0.7 + 03JUN1992 24.2 0.9 27.5 0.8 28.6 0.9 29.4 0.6 + 10JUN1992 24.2 1.2 26.8 0.3 28.3 0.6 29.4 0.6 + 17JUN1992 23.9 1.1 26.6 0.2 27.8 0.2 29.2 0.4 + 24JUN1992 23.5 1.0 26.2 0.0 27.6 0.1 29.2 0.4 + 01JUL1992 22.3 0.1 25.8-0.2 27.6 0.1 29.2 0.4 + 08JUL1992 23.0 1.1 26.2 0.4 28.0 0.7 29.5 0.7 + 15JUL1992 21.4-0.3 25.7 0.0 27.7 0.5 29.5 0.7 + 22JUL1992 21.6 0.2 25.1-0.4 27.2 0.0 29.2 0.5 + 29JUL1992 21.5 0.3 24.9-0.5 27.1 0.1 29.2 0.5 + 05AUG1992 20.8-0.2 24.6-0.6 26.7-0.2 29.1 0.4 + 12AUG1992 20.8 0.0 24.9-0.2 26.6-0.3 28.8 0.1 + 19AUG1992 20.3-0.4 24.6-0.4 26.6-0.3 28.8 0.2 + 26AUG1992 20.3-0.3 24.8-0.2 26.7-0.1 28.9 0.3 + 02SEP1992 20.3-0.2 24.4-0.5 26.3-0.4 28.6 0.0 + 09SEP1992 19.7-0.8 24.4-0.5 26.4-0.3 28.7 0.1 + 16SEP1992 20.1-0.2 24.5-0.3 26.5-0.2 28.9 0.2 + 23SEP1992 20.1-0.3 24.6-0.3 26.5-0.2 28.9 0.2 + 30SEP1992 20.2-0.4 24.7-0.2 26.6-0.1 28.7 0.0 + 07OCT1992 20.5-0.2 24.5-0.4 26.4-0.3 28.8 0.1 + 14OCT1992 20.7 0.0 24.6-0.3 26.4-0.3 28.6-0.1 + 21OCT1992 20.9 0.0 24.6-0.4 26.2-0.5 28.8 0.1 + 28OCT1992 21.5 0.4 24.8-0.1 26.2-0.4 28.5-0.1 + 04NOV1992 21.2-0.1 24.7-0.2 26.3-0.4 28.6 0.0 + 11NOV1992 21.2-0.3 24.8-0.1 26.6-0.1 28.8 0.2 + 18NOV1992 21.2-0.5 24.7-0.3 26.4-0.2 28.5-0.1 + 25NOV1992 22.1 0.2 24.9-0.2 26.7 0.0 28.8 0.2 + 02DEC1992 22.2 0.0 24.9-0.2 26.7 0.1 28.9 0.4 + 09DEC1992 22.2-0.3 25.1 0.0 26.8 0.2 28.7 0.2 + 16DEC1992 22.3-0.5 24.9-0.3 26.7 0.1 28.7 0.3 + 23DEC1992 22.5-0.7 25.1-0.2 26.8 0.2 28.9 0.4 + 30DEC1992 23.3-0.2 25.1-0.3 26.6 0.0 28.6 0.2 + 06JAN1993 23.6-0.3 25.4-0.1 26.7 0.1 28.5 0.2 + 13JAN1993 24.4 0.1 25.6 0.0 26.8 0.2 28.7 0.4 + 20JAN1993 24.5-0.2 25.5-0.2 26.6 0.0 28.6 0.3 + 27JAN1993 25.2 0.1 25.8-0.2 26.7 0.0 28.6 0.4 + 03FEB1993 26.2 0.8 26.3 0.2 26.9 0.3 28.5 0.3 + 10FEB1993 26.6 0.7 26.4 0.2 26.8 0.1 28.3 0.2 + 17FEB1993 26.6 0.4 26.9 0.5 27.0 0.2 28.3 0.2 + 24FEB1993 26.6 0.4 26.7 0.1 27.1 0.2 28.5 0.4 + 03MAR1993 26.9 0.6 26.9 0.1 27.2 0.2 28.4 0.3 + 10MAR1993 27.2 0.7 27.3 0.3 27.4 0.3 28.4 0.3 + 17MAR1993 27.1 0.6 27.5 0.3 27.7 0.4 28.6 0.4 + 24MAR1993 27.2 1.0 28.0 0.7 28.0 0.7 28.8 0.5 + 31MAR1993 27.7 1.7 28.3 1.0 28.2 0.7 28.9 0.6 + 07APR1993 26.6 0.9 28.4 1.0 28.3 0.6 28.7 0.3 + 14APR1993 26.3 0.7 28.5 1.0 28.8 1.1 29.0 0.5 + 21APR1993 26.3 1.0 28.4 1.0 28.7 0.9 29.0 0.5 + 28APR1993 26.0 1.1 28.5 1.2 28.8 1.0 29.0 0.4 + 05MAY1993 25.9 1.2 28.5 1.2 28.8 1.0 28.9 0.3 + 12MAY1993 25.6 1.2 28.3 1.2 28.9 1.0 29.1 0.4 + 19MAY1993 24.9 0.8 28.1 1.1 28.8 1.0 29.2 0.4 + 26MAY1993 24.3 0.6 27.9 1.0 28.9 1.1 29.2 0.4 + 02JUN1993 24.5 1.1 27.7 0.9 28.6 0.9 29.2 0.4 + 09JUN1993 23.9 0.7 27.2 0.6 28.3 0.6 29.1 0.2 + 16JUN1993 23.6 0.8 27.1 0.6 28.2 0.6 29.1 0.2 + 23JUN1993 23.8 1.3 26.9 0.7 28.2 0.7 29.3 0.5 + 30JUN1993 23.0 0.7 26.7 0.6 28.1 0.6 29.3 0.5 + 07JUL1993 22.4 0.4 26.1 0.3 27.9 0.6 29.3 0.5 + 14JUL1993 22.2 0.5 25.8 0.1 27.4 0.2 29.2 0.4 + 21JUL1993 22.0 0.6 25.6 0.1 27.5 0.4 29.2 0.4 + 28JUL1993 21.3 0.0 25.3-0.1 27.2 0.1 29.1 0.4 + 04AUG1993 21.2 0.2 25.0-0.3 26.8-0.2 28.9 0.2 + 11AUG1993 20.8 0.0 25.0-0.1 26.9 0.0 29.0 0.3 + 18AUG1993 21.1 0.5 24.8-0.1 26.8 0.0 28.7 0.1 + 25AUG1993 21.2 0.6 24.9 0.0 26.9 0.1 29.1 0.4 + 01SEP1993 20.9 0.4 24.9 0.0 26.9 0.2 29.1 0.4 + 08SEP1993 20.8 0.3 25.0 0.1 26.8 0.1 29.0 0.4 + 15SEP1993 20.8 0.4 24.9 0.0 26.9 0.2 29.1 0.5 + 22SEP1993 21.0 0.5 25.0 0.2 27.0 0.3 29.1 0.4 + 29SEP1993 20.7 0.2 25.1 0.2 27.0 0.3 29.0 0.3 + 06OCT1993 20.6-0.1 25.2 0.3 26.9 0.2 28.8 0.1 + 13OCT1993 20.8 0.0 25.3 0.4 27.0 0.3 29.0 0.3 + 20OCT1993 21.2 0.3 25.0 0.1 26.6 0.0 28.9 0.2 + 27OCT1993 21.3 0.2 25.3 0.4 27.1 0.4 29.0 0.3 + 03NOV1993 22.0 0.8 25.4 0.4 27.2 0.5 29.0 0.3 + 10NOV1993 21.4 0.0 25.1 0.1 26.9 0.2 28.8 0.2 + 17NOV1993 21.7 0.0 25.1 0.2 26.9 0.2 28.9 0.3 + 24NOV1993 21.4-0.5 25.1 0.0 26.7 0.1 29.0 0.5 + 01DEC1993 21.8-0.4 25.3 0.2 26.9 0.3 29.2 0.6 + 08DEC1993 22.1-0.3 25.3 0.2 26.9 0.4 29.0 0.5 + 15DEC1993 23.1 0.4 25.3 0.2 26.8 0.3 28.9 0.4 + 22DEC1993 23.0-0.2 25.3 0.1 26.6 0.1 28.9 0.4 + 29DEC1993 23.3-0.2 25.4 0.0 26.5-0.1 28.6 0.2 + 05JAN1994 23.8 0.0 25.7 0.2 26.7 0.1 28.7 0.3 + 12JAN1994 23.9-0.3 25.7 0.1 26.7 0.2 28.5 0.2 + 19JAN1994 24.6 0.0 25.7-0.1 26.5-0.1 28.5 0.2 + 26JAN1994 24.8-0.2 25.8-0.1 26.5-0.2 28.2 0.0 + 02FEB1994 25.4 0.0 25.9-0.1 26.6 0.0 28.2 0.0 + 09FEB1994 25.9 0.1 26.2 0.0 26.7 0.0 28.1 0.0 + 16FEB1994 25.6-0.5 26.1-0.3 26.6-0.1 28.0 0.0 + 23FEB1994 26.1-0.1 25.9-0.7 26.4-0.5 27.9-0.2 + 02MAR1994 26.2-0.1 26.6-0.2 26.6-0.3 27.9-0.2 + 09MAR1994 25.5-0.9 27.0 0.1 27.2 0.1 28.2 0.1 + 16MAR1994 25.7-0.9 27.0-0.1 27.4 0.2 28.4 0.2 + 23MAR1994 25.0-1.2 26.8-0.4 27.3-0.1 28.3 0.0 + 30MAR1994 24.8-1.3 27.0-0.3 27.7 0.2 28.3 0.0 + 06APR1994 24.9-0.9 27.0-0.4 27.6 0.0 28.5 0.1 + 13APR1994 24.7-0.9 27.2-0.3 28.0 0.2 28.6 0.2 + 20APR1994 24.2-1.1 27.0-0.4 28.0 0.2 28.6 0.1 + 27APR1994 23.4-1.6 27.1-0.2 28.1 0.3 28.7 0.2 + 04MAY1994 23.4-1.3 27.0-0.3 27.9 0.1 28.8 0.1 + 11MAY1994 23.6-0.8 26.8-0.3 27.8 0.0 28.9 0.2 + 18MAY1994 23.0-1.1 27.2 0.1 28.2 0.4 29.0 0.2 + 25MAY1994 23.0-0.8 26.9 0.0 28.1 0.3 29.1 0.3 + 01JUN1994 22.8-0.7 26.9 0.1 28.3 0.5 29.3 0.5 + 08JUN1994 22.7-0.5 26.7 0.1 28.0 0.3 29.1 0.3 + 15JUN1994 22.7-0.1 26.8 0.4 28.2 0.6 29.1 0.3 + 22JUN1994 22.2-0.4 26.2-0.1 27.9 0.3 29.2 0.4 + 29JUN1994 21.7-0.6 25.9-0.2 27.6 0.1 29.2 0.4 + 06JUL1994 21.9-0.1 25.6-0.3 27.4 0.1 29.3 0.5 + 13JUL1994 21.3-0.4 25.2-0.5 27.3 0.1 29.4 0.6 + 20JUL1994 20.9-0.6 25.1-0.4 27.4 0.2 29.5 0.8 + 27JUL1994 20.8-0.5 24.8-0.6 27.2 0.1 29.4 0.6 + 03AUG1994 20.1-1.0 24.5-0.8 27.3 0.3 29.4 0.7 + 10AUG1994 19.2-1.6 24.8-0.3 27.6 0.7 29.5 0.8 + 17AUG1994 19.6-1.1 24.8-0.2 27.4 0.6 29.5 0.9 + 24AUG1994 20.0-0.5 24.8-0.2 27.3 0.5 29.5 0.8 + 31AUG1994 19.6-0.9 24.7-0.2 27.1 0.3 29.4 0.7 + 07SEP1994 20.1-0.4 24.6-0.3 26.9 0.2 29.3 0.6 + 14SEP1994 20.0-0.3 24.6-0.2 26.9 0.1 29.2 0.5 + 21SEP1994 20.5 0.1 24.9 0.0 27.0 0.2 29.2 0.5 + 28SEP1994 20.2-0.3 25.2 0.3 27.2 0.5 29.2 0.6 + 05OCT1994 21.0 0.3 25.4 0.5 27.3 0.6 29.4 0.8 + 12OCT1994 21.7 0.9 25.6 0.7 27.5 0.8 29.4 0.8 + 19OCT1994 21.8 0.9 25.6 0.6 27.5 0.8 29.4 0.8 + 26OCT1994 21.7 0.7 25.6 0.6 27.6 1.0 29.5 0.9 + 02NOV1994 22.1 0.9 25.7 0.7 27.8 1.1 29.6 1.0 + 09NOV1994 22.1 0.7 26.0 1.0 27.9 1.3 29.5 0.9 + 16NOV1994 22.3 0.7 25.8 0.8 27.8 1.1 29.6 1.0 + 23NOV1994 22.8 0.9 25.9 0.9 27.9 1.2 29.7 1.1 + 30NOV1994 22.9 0.7 26.0 0.9 28.0 1.4 29.8 1.3 + 07DEC1994 23.3 0.9 26.0 0.9 27.9 1.3 29.6 1.1 + 14DEC1994 23.4 0.7 25.9 0.8 27.9 1.3 29.5 1.1 + 21DEC1994 23.7 0.6 26.2 1.0 27.9 1.3 29.3 0.9 + 28DEC1994 24.3 0.9 26.3 0.9 27.8 1.3 29.3 0.9 + 04JAN1995 24.7 0.8 26.1 0.7 27.6 1.1 29.3 0.9 + 11JAN1995 25.1 0.9 26.2 0.7 27.6 1.0 29.2 0.9 + 18JAN1995 25.3 0.8 26.4 0.7 27.6 1.0 29.3 1.0 + 25JAN1995 25.9 0.9 26.5 0.6 27.5 0.8 29.1 0.8 + 01FEB1995 26.2 0.9 26.7 0.7 27.4 0.8 29.0 0.9 + 08FEB1995 26.7 0.9 26.9 0.7 27.4 0.7 29.1 1.0 + 15FEB1995 26.5 0.4 26.8 0.4 27.3 0.5 28.9 0.8 + 22FEB1995 26.4 0.2 26.9 0.3 27.5 0.7 29.0 0.9 + 01MAR1995 26.0-0.2 26.9 0.2 27.7 0.7 29.0 0.9 + 08MAR1995 26.0-0.4 26.7-0.2 27.4 0.4 28.9 0.7 + 15MAR1995 26.6 0.1 27.1 0.0 27.7 0.5 29.0 0.9 + 22MAR1995 26.4 0.1 27.2-0.1 27.7 0.3 29.0 0.8 + 29MAR1995 25.4-0.6 27.4 0.1 27.7 0.2 28.8 0.5 + 05APR1995 24.9-1.0 27.2-0.2 27.9 0.3 28.8 0.5 + 12APR1995 24.9-0.7 27.3-0.2 27.8 0.1 28.8 0.4 + 19APR1995 24.6-0.7 27.3-0.2 28.2 0.4 28.9 0.3 + 26APR1995 23.5-1.5 26.6-0.7 27.9 0.1 28.9 0.3 + 03MAY1995 23.3-1.4 26.6-0.6 28.0 0.2 29.2 0.6 + 10MAY1995 23.0-1.4 26.3-0.8 27.7-0.1 29.1 0.4 + 17MAY1995 23.0-1.2 26.2-0.8 27.7-0.2 29.2 0.4 + 24MAY1995 23.2-0.6 26.4-0.5 27.6-0.2 29.1 0.3 + 31MAY1995 22.8-0.7 26.4-0.3 27.7 0.0 29.0 0.2 + 07JUN1995 22.9-0.3 26.4-0.2 27.7 0.0 29.1 0.3 + 14JUN1995 22.9 0.0 26.4-0.1 27.7 0.1 29.1 0.3 + 21JUN1995 21.9-0.7 26.0-0.3 27.5 0.0 28.9 0.1 + 28JUN1995 21.8-0.5 25.8-0.3 27.3-0.1 28.8 0.0 + 05JUL1995 22.0 0.0 25.7-0.2 27.3-0.1 29.0 0.2 + 12JUL1995 21.2-0.5 25.6-0.1 27.1-0.2 28.8 0.0 + 19JUL1995 21.0-0.5 25.3-0.2 26.9-0.3 28.7-0.1 + 26JUL1995 20.8-0.5 25.1-0.3 26.8-0.3 28.6-0.1 + 02AUG1995 20.3-0.8 24.8-0.5 26.7-0.3 28.5-0.2 + 09AUG1995 19.9-1.0 24.3-0.8 26.3-0.6 28.3-0.4 + 16AUG1995 20.0-0.7 24.3-0.7 26.4-0.4 28.5-0.2 + 23AUG1995 19.9-0.7 24.3-0.7 26.3-0.5 28.4-0.2 + 30AUG1995 20.1-0.5 24.0-0.9 25.9-0.8 28.2-0.5 + 06SEP1995 20.4 0.0 24.1-0.8 26.0-0.8 28.2-0.5 + 13SEP1995 19.9-0.5 24.1-0.8 26.0-0.7 28.0-0.6 + 20SEP1995 20.2-0.2 24.0-0.9 26.1-0.7 28.4-0.3 + 27SEP1995 20.2-0.3 23.9-1.0 25.9-0.8 28.4-0.3 + 04OCT1995 19.6-1.0 23.9-1.0 25.6-1.1 28.1-0.5 + 11OCT1995 20.2-0.5 24.1-0.8 25.6-1.1 28.0-0.6 + 18OCT1995 20.0-0.8 24.1-0.9 25.8-0.9 28.2-0.5 + 25OCT1995 20.3-0.7 24.0-0.9 25.6-1.1 27.9-0.8 + 01NOV1995 21.0-0.2 24.1-0.8 25.6-1.0 28.0-0.7 + 08NOV1995 20.6-0.8 23.9-1.1 25.8-0.9 28.1-0.5 + 15NOV1995 21.3-0.2 24.1-0.9 25.7-1.0 27.8-0.8 + 22NOV1995 21.4-0.4 24.1-0.9 25.5-1.1 27.7-0.9 + 29NOV1995 21.6-0.5 24.1-1.0 25.7-0.9 28.1-0.5 + 06DEC1995 21.5-0.9 24.1-1.0 25.6-1.0 27.9-0.6 + 13DEC1995 21.7-1.0 24.0-1.1 25.4-1.2 27.9-0.5 + 20DEC1995 22.0-1.0 24.1-1.1 25.6-1.0 28.1-0.3 + 27DEC1995 22.8-0.6 24.5-0.8 25.7-0.9 28.1-0.3 + 03JAN1996 23.4-0.4 24.6-0.8 25.6-1.0 28.1-0.3 + 10JAN1996 23.6-0.6 24.9-0.6 25.6-1.0 27.9-0.4 + 17JAN1996 24.0-0.5 25.2-0.5 25.9-0.7 27.8-0.5 + 24JAN1996 23.9-1.0 25.0-0.8 25.9-0.7 27.9-0.4 + 31JAN1996 24.6-0.7 25.2-0.8 25.8-0.9 27.8-0.4 + 07FEB1996 25.4-0.3 25.4-0.8 25.6-1.1 27.5-0.6 + 14FEB1996 25.9-0.1 25.7-0.6 25.8-0.9 27.5-0.5 + 21FEB1996 26.0-0.2 25.9-0.6 25.8-1.0 27.4-0.7 + 28FEB1996 26.1-0.2 26.3-0.5 26.3-0.6 27.5-0.6 + 06MAR1996 26.6 0.2 26.5-0.4 26.2-0.8 27.5-0.6 + 13MAR1996 26.1-0.3 26.9-0.2 26.6-0.6 27.7-0.5 + 20MAR1996 26.3-0.1 27.0-0.2 26.8-0.5 27.7-0.5 + 27MAR1996 25.7-0.4 26.7-0.6 26.8-0.6 27.8-0.4 + 03APR1996 24.4-1.5 26.5-0.9 27.0-0.6 27.9-0.5 + 10APR1996 23.9-1.7 27.0-0.4 27.4-0.3 27.9-0.5 + 17APR1996 23.8-1.6 26.8-0.7 27.3-0.4 28.0-0.5 + 24APR1996 23.6-1.5 26.7-0.7 27.6-0.1 28.2-0.3 + 01MAY1996 23.0-1.9 26.4-0.9 27.4-0.4 28.2-0.4 + 08MAY1996 23.0-1.6 26.5-0.7 27.6-0.2 28.4-0.3 + 15MAY1996 23.0-1.3 26.3-0.8 27.3-0.5 28.3-0.4 + 22MAY1996 23.0-0.9 26.2-0.7 27.2-0.6 28.5-0.3 + 29MAY1996 22.6-1.1 26.2-0.6 27.3-0.4 28.6-0.2 + 05JUN1996 22.3-1.0 26.0-0.6 27.3-0.4 28.6-0.3 + 12JUN1996 21.9-1.0 26.0-0.5 27.3-0.4 28.5-0.4 + 19JUN1996 21.4-1.3 25.8-0.6 27.3-0.3 28.4-0.4 + 26JUN1996 20.6-1.8 25.7-0.5 27.3-0.2 28.6-0.2 + 03JUL1996 20.4-1.7 25.9 0.0 27.6 0.2 28.6-0.2 + 10JUL1996 20.1-1.8 25.4-0.3 27.1-0.2 28.5-0.3 + 17JUL1996 20.0-1.6 25.4-0.2 27.1-0.1 28.3-0.5 + 24JUL1996 20.2-1.2 25.1-0.4 26.9-0.2 28.5-0.3 + 31JUL1996 19.2-1.9 24.7-0.6 26.6-0.4 28.4-0.3 + 07AUG1996 19.2-1.7 24.8-0.4 26.7-0.3 28.5-0.2 + 14AUG1996 20.0-0.8 24.6-0.5 26.5-0.4 28.6 0.0 + 21AUG1996 20.1-0.5 24.6-0.3 26.5-0.3 28.6-0.1 + 28AUG1996 18.9-1.6 24.4-0.6 26.5-0.2 28.4-0.3 + 04SEP1996 19.1-1.3 24.3-0.6 26.4-0.4 28.5-0.2 + 11SEP1996 19.4-1.0 24.4-0.5 26.2-0.5 28.3-0.4 + 18SEP1996 19.1-1.3 24.3-0.5 26.4-0.3 28.5-0.2 + 25SEP1996 19.3-1.2 24.4-0.4 26.3-0.4 28.4-0.3 + 02OCT1996 19.5-1.2 24.5-0.4 26.2-0.5 28.3-0.4 + 09OCT1996 19.5-1.3 24.3-0.6 26.2-0.5 28.5-0.2 + 16OCT1996 20.2-0.6 24.4-0.5 26.3-0.3 28.5-0.1 + 23OCT1996 20.5-0.5 24.4-0.6 26.2-0.5 28.3-0.3 + 30OCT1996 20.0-1.1 24.3-0.7 26.1-0.5 28.3-0.3 + 06NOV1996 20.2-1.2 24.4-0.6 26.1-0.5 28.1-0.5 + 13NOV1996 20.1-1.4 24.4-0.6 26.2-0.5 28.3-0.3 + 20NOV1996 20.3-1.5 24.4-0.6 26.3-0.3 28.4-0.1 + 27NOV1996 20.4-1.6 24.3-0.7 26.2-0.4 28.3-0.2 + 04DEC1996 20.8-1.5 24.4-0.7 26.3-0.3 28.5 0.0 + 11DEC1996 21.6-1.0 24.1-1.0 26.1-0.5 28.6 0.1 + 18DEC1996 21.6-1.3 24.2-1.0 25.9-0.6 28.3-0.1 + 25DEC1996 22.1-1.1 24.1-1.1 25.9-0.7 28.3-0.1 + 01JAN1997 22.5-1.2 24.3-1.1 25.8-0.8 28.2-0.2 + 08JAN1997 23.0-1.0 24.5-1.0 25.9-0.6 28.4 0.1 + 15JAN1997 23.6-0.8 24.6-1.0 25.8-0.7 28.4 0.1 + 22JAN1997 24.3-0.5 24.8-1.0 25.9-0.7 28.4 0.2 + 29JAN1997 24.6-0.6 25.1-0.8 26.3-0.4 28.4 0.2 + 05FEB1997 25.3-0.2 25.2-0.9 26.2-0.5 28.4 0.2 + 12FEB1997 25.4-0.6 25.8-0.5 26.4-0.3 28.3 0.2 + 19FEB1997 26.3 0.1 25.9-0.6 26.4-0.4 28.2 0.1 + 26FEB1997 26.2-0.1 26.2-0.4 26.5-0.4 28.2 0.1 + 05MAR1997 26.8 0.5 26.6-0.3 26.6-0.4 28.1 0.0 + 12MAR1997 26.9 0.5 26.8-0.3 26.8-0.4 28.3 0.1 + 19MAR1997 27.0 0.6 27.3 0.1 27.4 0.1 28.5 0.3 + 26MAR1997 27.2 1.0 27.4 0.1 27.3-0.1 28.9 0.7 + 02APR1997 27.0 1.1 27.3-0.1 27.5 0.0 29.2 0.8 + 09APR1997 26.4 0.7 27.3-0.1 27.8 0.2 29.2 0.8 + 16APR1997 26.5 1.1 27.6 0.1 28.0 0.3 29.3 0.8 + 23APR1997 26.6 1.4 27.8 0.4 28.4 0.6 29.5 0.9 + 30APR1997 26.8 1.9 28.0 0.7 28.4 0.6 29.5 0.8 + 07MAY1997 26.8 2.2 28.2 1.0 28.6 0.8 29.4 0.8 + 14MAY1997 26.7 2.4 28.0 0.9 28.5 0.6 29.3 0.6 + 21MAY1997 26.6 2.6 27.9 1.0 28.6 0.8 29.5 0.7 + 28MAY1997 26.8 3.1 28.1 1.3 28.8 1.0 29.5 0.7 + 04JUN1997 26.4 3.1 28.0 1.3 28.8 1.1 29.4 0.6 + 11JUN1997 26.5 3.5 28.1 1.6 28.9 1.2 29.3 0.5 + 18JUN1997 26.0 3.3 28.2 1.8 29.0 1.4 29.4 0.6 + 25JUN1997 26.2 3.7 28.2 2.0 29.1 1.6 29.5 0.7 + 02JUL1997 25.9 3.7 28.1 2.1 29.0 1.5 29.4 0.6 + 09JUL1997 25.7 3.8 28.0 2.2 28.9 1.6 29.5 0.7 + 16JUL1997 25.7 4.1 28.1 2.5 29.0 1.8 29.5 0.7 + 23JUL1997 25.5 4.1 27.9 2.4 28.8 1.7 29.5 0.8 + 30JUL1997 25.2 4.0 27.9 2.6 28.9 1.9 29.5 0.8 + 06AUG1997 25.3 4.3 27.8 2.6 28.8 1.8 29.4 0.7 + 13AUG1997 25.4 4.6 27.9 2.9 28.9 2.0 29.3 0.6 + 20AUG1997 24.2 3.6 27.9 2.9 28.9 2.1 29.2 0.5 + 27AUG1997 24.3 3.7 27.7 2.7 28.8 2.0 29.2 0.5 + 03SEP1997 24.6 4.2 27.8 2.9 28.9 2.1 29.2 0.6 + 10SEP1997 24.6 4.2 27.8 2.9 28.9 2.2 29.3 0.6 + 17SEP1997 24.2 3.8 27.8 2.9 28.9 2.2 29.3 0.6 + 24SEP1997 24.4 3.9 27.9 3.0 28.9 2.2 29.5 0.8 + 01OCT1997 24.1 3.5 28.0 3.1 29.1 2.4 29.4 0.7 + 08OCT1997 24.5 3.8 28.1 3.2 29.2 2.6 29.3 0.6 + 15OCT1997 24.5 3.7 28.1 3.2 29.2 2.5 29.3 0.7 + 22OCT1997 24.9 3.9 28.2 3.3 29.3 2.6 29.5 0.8 + 29OCT1997 24.7 3.6 28.3 3.4 29.2 2.6 29.2 0.6 + 05NOV1997 25.0 3.7 28.4 3.4 29.2 2.6 29.2 0.6 + 12NOV1997 25.8 4.3 28.5 3.6 29.3 2.7 29.5 0.8 + 19NOV1997 25.8 4.1 28.6 3.6 29.3 2.7 29.7 1.1 + 26NOV1997 25.9 3.9 28.7 3.7 29.4 2.8 29.7 1.1 + 03DEC1997 26.2 3.9 28.6 3.6 29.2 2.6 29.4 0.9 + 10DEC1997 26.7 4.2 28.7 3.6 29.2 2.7 29.4 0.9 + 17DEC1997 27.0 4.1 28.8 3.6 29.3 2.7 29.3 0.8 + 24DEC1997 27.2 4.0 28.8 3.5 29.3 2.7 29.3 0.9 + 31DEC1997 27.7 4.1 28.9 3.5 29.2 2.7 29.2 0.8 + 07JAN1998 28.0 4.0 28.9 3.4 29.2 2.6 29.1 0.8 + 14JAN1998 28.4 4.0 28.9 3.3 29.1 2.5 29.0 0.7 + 21JAN1998 28.4 3.7 28.9 3.2 29.0 2.4 28.9 0.7 + 28JAN1998 28.3 3.2 29.1 3.1 29.1 2.4 28.9 0.7 + 04FEB1998 28.9 3.4 29.1 3.0 29.2 2.5 29.0 0.9 + 11FEB1998 28.9 3.0 29.0 2.7 29.0 2.3 29.0 0.9 + 18FEB1998 29.1 3.0 28.8 2.3 28.7 1.9 28.8 0.7 + 25FEB1998 29.1 2.9 28.9 2.2 28.6 1.7 28.8 0.7 + 04MAR1998 29.2 2.8 29.0 2.2 28.5 1.5 28.6 0.4 + 11MAR1998 29.2 2.8 29.1 2.1 28.7 1.6 28.8 0.7 + 18MAR1998 29.2 2.7 29.1 2.0 28.6 1.4 28.6 0.4 + 25MAR1998 29.1 2.8 29.2 2.0 28.8 1.5 28.6 0.4 + 01APR1998 29.1 3.1 29.3 1.9 28.7 1.2 28.6 0.2 + 08APR1998 28.8 3.0 29.2 1.8 28.6 1.0 28.5 0.0 + 15APR1998 28.6 3.1 29.1 1.6 28.4 0.6 28.5 0.0 + 22APR1998 28.4 3.2 29.0 1.6 28.5 0.7 28.5-0.1 + 29APR1998 28.3 3.4 28.9 1.6 28.7 0.8 28.7 0.1 + 06MAY1998 27.8 3.2 29.4 2.1 29.1 1.3 28.7 0.1 + 13MAY1998 28.1 3.8 28.7 1.6 28.8 0.9 28.7-0.1 + 20MAY1998 27.9 3.9 27.6 0.7 28.3 0.5 28.6-0.2 + 27MAY1998 27.0 3.3 27.1 0.2 27.9 0.1 28.8 0.0 + 03JUN1998 26.2 2.8 26.1-0.6 27.1-0.6 28.7-0.1 + 10JUN1998 26.1 3.0 26.2-0.3 26.9-0.8 28.6-0.2 + 17JUN1998 24.6 1.8 25.8-0.6 26.7-1.0 28.7-0.1 + 24JUN1998 24.5 2.0 26.0-0.2 26.4-1.1 28.5-0.3 + 01JUL1998 24.1 1.9 25.7-0.3 26.4-1.1 28.3-0.5 + 08JUL1998 23.6 1.7 25.6-0.2 26.2-1.2 28.2-0.6 + 15JUL1998 23.6 2.0 25.3-0.4 25.9-1.4 28.1-0.7 + 22JUL1998 23.0 1.5 24.9-0.6 25.7-1.4 28.0-0.8 + 29JUL1998 23.2 2.0 24.9-0.5 25.7-1.4 27.8-1.0 + 05AUG1998 22.6 1.7 24.8-0.4 25.6-1.4 27.9-0.8 + 12AUG1998 21.8 1.1 24.6-0.5 25.5-1.4 27.8-0.9 + 19AUG1998 21.3 0.7 24.4-0.6 25.2-1.6 27.6-1.0 + 26AUG1998 21.2 0.7 24.7-0.3 25.6-1.2 27.6-1.0 + 02SEP1998 21.1 0.6 24.5-0.4 25.6-1.2 27.8-0.8 + 09SEP1998 20.9 0.5 24.3-0.6 25.9-0.8 28.3-0.4 + 16SEP1998 21.0 0.7 24.2-0.7 25.7-1.0 28.0-0.7 + 23SEP1998 20.5 0.1 24.1-0.7 25.5-1.2 27.6-1.1 + 30SEP1998 20.9 0.3 23.7-1.2 25.1-1.6 27.2-1.4 + 07OCT1998 20.9 0.2 23.9-1.0 25.3-1.4 27.5-1.2 + 14OCT1998 21.2 0.4 24.1-0.8 25.4-1.3 27.3-1.4 + 21OCT1998 21.1 0.1 24.1-0.8 25.3-1.4 27.2-1.5 + 28OCT1998 21.6 0.5 24.2-0.7 25.5-1.2 27.3-1.3 + 04NOV1998 21.4 0.1 24.4-0.6 25.2-1.5 27.2-1.4 + 11NOV1998 21.0-0.4 24.0-0.9 25.2-1.5 27.2-1.4 + 18NOV1998 21.7 0.0 24.1-0.9 25.2-1.4 27.1-1.5 + 25NOV1998 21.5-0.5 24.0-1.0 25.1-1.5 27.2-1.4 + 02DEC1998 21.7-0.5 23.9-1.2 25.1-1.5 27.3-1.2 + 09DEC1998 22.0-0.5 23.8-1.3 24.8-1.8 27.2-1.2 + 16DEC1998 22.5-0.3 23.9-1.3 24.7-1.8 27.1-1.4 + 23DEC1998 23.3 0.2 23.8-1.4 24.6-1.9 27.0-1.4 + 30DEC1998 23.2-0.4 23.9-1.5 24.7-1.9 26.7-1.7 + 06JAN1999 23.4-0.5 24.1-1.4 24.7-1.9 26.7-1.7 + 13JAN1999 23.7-0.6 24.2-1.4 25.0-1.6 26.8-1.5 + 20JAN1999 23.3-1.4 24.5-1.3 25.0-1.6 26.4-1.8 + 27JAN1999 24.5-0.6 24.9-1.0 25.0-1.6 26.2-2.0 + 03FEB1999 24.8-0.6 25.1-1.0 25.2-1.5 26.6-1.6 + 10FEB1999 25.1-0.7 25.0-1.2 25.2-1.5 26.5-1.6 + 17FEB1999 25.5-0.6 25.5-0.9 25.5-1.3 26.3-1.7 + 24FEB1999 26.8 0.6 26.4-0.2 25.7-1.2 26.4-1.7 + 03MAR1999 27.4 1.1 26.7-0.1 26.1-0.9 26.8-1.3 + 10MAR1999 27.0 0.6 26.6-0.4 26.1-1.0 26.7-1.5 + 17MAR1999 26.4 0.0 26.7-0.4 26.2-1.0 26.9-1.2 + 24MAR1999 26.3 0.0 26.7-0.6 26.5-0.9 27.0-1.2 + 31MAR1999 25.8-0.3 26.6-0.7 26.5-1.0 27.0-1.3 + 07APR1999 24.4-1.3 26.7-0.7 26.7-0.9 27.1-1.3 + 14APR1999 24.6-0.9 26.5-0.9 26.8-0.9 27.3-1.1 + 21APR1999 23.8-1.4 26.7-0.7 27.0-0.8 27.4-1.1 + 28APR1999 23.7-1.3 26.8-0.6 27.0-0.8 27.5-1.1 + 05MAY1999 23.6-1.1 26.6-0.6 27.0-0.8 27.8-0.9 + 12MAY1999 23.7-0.7 26.7-0.4 27.1-0.7 27.9-0.8 + 19MAY1999 23.7-0.4 26.5-0.5 26.9-0.9 27.8-0.9 + 26MAY1999 23.2-0.6 26.1-0.8 26.9-0.9 27.9-0.9 + 02JUN1999 22.5-0.9 25.8-0.9 26.7-1.1 28.0-0.8 + 09JUN1999 22.4-0.8 25.8-0.7 26.6-1.1 27.9-0.9 + 16JUN1999 21.6-1.2 25.6-0.9 26.6-1.1 28.0-0.9 + 23JUN1999 21.3-1.2 25.4-0.8 26.5-1.0 28.0-0.8 + 30JUN1999 21.3-1.0 25.3-0.8 26.6-0.8 28.1-0.7 + 07JUL1999 20.4-1.5 25.2-0.7 26.6-0.7 28.1-0.7 + 14JUL1999 20.4-1.3 24.9-0.7 26.4-0.8 27.8-1.0 + 21JUL1999 20.3-1.1 24.8-0.7 26.2-0.9 27.8-1.0 + 28JUL1999 20.2-1.0 24.4-1.0 26.0-1.0 27.8-0.9 + 04AUG1999 20.2-0.8 24.3-0.9 26.0-1.0 27.8-0.9 + 11AUG1999 19.7-1.1 24.1-1.0 25.6-1.3 27.7-1.0 + 18AUG1999 19.5-1.1 23.9-1.1 25.4-1.4 27.8-0.9 + 25AUG1999 19.7-0.9 24.0-1.0 25.5-1.3 27.6-1.1 + 01SEP1999 19.5-1.0 23.6-1.3 25.4-1.4 27.6-1.0 + 08SEP1999 19.2-1.2 23.7-1.2 25.7-1.1 27.7-0.9 + 15SEP1999 18.9-1.5 23.6-1.3 25.7-1.0 27.7-0.9 + 22SEP1999 19.3-1.2 23.8-1.1 25.8-0.9 27.9-0.7 + 29SEP1999 19.5-1.1 24.0-0.8 25.9-0.8 27.8-0.8 + 06OCT1999 19.7-0.9 23.6-1.3 25.7-1.0 27.9-0.8 + 13OCT1999 20.1-0.7 23.7-1.2 25.8-0.9 28.0-0.6 + 20OCT1999 20.0-1.0 23.7-1.2 25.6-1.0 27.8-0.9 + 27OCT1999 20.6-0.5 23.8-1.1 25.4-1.3 27.7-1.0 + 03NOV1999 20.1-1.2 23.6-1.3 25.4-1.3 27.6-1.0 + 10NOV1999 20.1-1.3 23.7-1.2 25.4-1.3 27.5-1.1 + 17NOV1999 20.6-1.0 23.5-1.5 25.2-1.5 27.6-1.0 + 24NOV1999 20.9-1.1 23.1-1.9 24.7-1.9 27.4-1.1 + 01DEC1999 21.0-1.2 23.1-1.9 24.9-1.7 27.3-1.2 + 08DEC1999 21.1-1.4 23.6-1.5 25.1-1.4 27.3-1.2 + 15DEC1999 21.3-1.4 23.4-1.7 24.9-1.7 27.1-1.4 + 22DEC1999 22.0-1.1 23.8-1.4 24.9-1.6 27.1-1.3 + 29DEC1999 23.0-0.5 23.6-1.8 24.6-1.9 27.2-1.2 + 05JAN2000 23.2-0.6 23.4-2.1 24.5-2.0 27.0-1.3 + 12JAN2000 23.8-0.4 23.9-1.7 24.7-1.9 26.9-1.4 + 19JAN2000 23.7-0.9 24.0-1.7 24.8-1.8 26.9-1.4 + 26JAN2000 24.0-1.0 24.0-1.8 24.6-2.0 26.9-1.3 + 02FEB2000 25.0-0.4 24.7-1.3 24.8-1.9 26.7-1.5 + 09FEB2000 25.1-0.7 25.3-0.9 25.1-1.6 26.6-1.5 + 16FEB2000 25.6-0.5 25.5-0.9 25.4-1.4 26.7-1.4 + 23FEB2000 26.2 0.0 25.4-1.2 25.2-1.6 26.6-1.5 + 01MAR2000 26.4 0.1 25.7-1.0 25.5-1.5 26.5-1.6 + 08MAR2000 26.6 0.2 26.2-0.8 25.7-1.4 26.6-1.5 + 15MAR2000 26.2-0.3 26.5-0.6 26.0-1.2 26.7-1.5 + 22MAR2000 25.3-1.0 26.9-0.3 26.3-1.1 26.7-1.5 + 29MAR2000 25.6-0.5 27.5 0.2 26.8-0.7 27.0-1.3 + 05APR2000 25.7-0.1 27.6 0.2 27.0-0.6 27.2-1.2 + 12APR2000 26.1 0.5 27.4-0.1 26.9-0.8 27.3-1.2 + 19APR2000 25.6 0.3 27.5 0.0 27.0-0.8 27.4-1.1 + 26APR2000 25.3 0.3 27.5 0.1 27.1-0.7 27.5-1.0 + 03MAY2000 24.9 0.2 27.3 0.0 27.1-0.7 27.5-1.1 + 10MAY2000 24.3-0.1 27.2 0.0 27.1-0.7 27.7-1.0 + 17MAY2000 23.9-0.3 26.6-0.4 27.1-0.8 27.8-1.0 + 24MAY2000 23.2-0.6 26.4-0.5 27.1-0.7 28.0-0.8 + 31MAY2000 23.2-0.3 26.3-0.4 27.2-0.5 28.1-0.7 + 07JUN2000 22.6-0.6 26.0-0.7 27.0-0.7 28.0-0.8 + 14JUN2000 22.4-0.5 25.9-0.6 27.1-0.6 28.1-0.7 + 21JUN2000 21.7-0.9 25.8-0.5 27.0-0.6 28.2-0.7 + 28JUN2000 21.4-0.9 25.5-0.6 26.9-0.6 28.0-0.8 + 05JUL2000 21.0-1.0 25.6-0.3 26.9-0.5 28.0-0.8 + 12JUL2000 20.6-1.2 25.2-0.5 26.8-0.5 28.1-0.7 + 19JUL2000 20.3-1.2 24.9-0.6 26.7-0.5 28.2-0.5 + 26JUL2000 20.2-1.1 24.9-0.5 26.5-0.6 28.3-0.4 + 02AUG2000 20.2-0.8 24.7-0.5 26.6-0.4 28.4-0.3 + 09AUG2000 20.1-0.8 24.5-0.6 26.6-0.3 28.4-0.3 + 16AUG2000 20.5-0.2 24.4-0.6 26.4-0.4 28.3-0.3 + 23AUG2000 20.1-0.5 24.3-0.7 26.3-0.5 28.1-0.5 + 30AUG2000 19.3-1.2 24.5-0.4 26.4-0.4 28.2-0.4 + 06SEP2000 20.2-0.3 24.4-0.4 26.3-0.5 28.4-0.2 + 13SEP2000 19.7-0.7 24.3-0.6 26.1-0.6 28.4-0.2 + 20SEP2000 20.1-0.3 24.2-0.6 26.1-0.6 28.5-0.2 + 27SEP2000 19.9-0.6 24.4-0.5 26.3-0.4 28.4-0.3 + 04OCT2000 20.2-0.5 24.7-0.2 26.1-0.6 28.1-0.5 + 11OCT2000 20.2-0.5 24.4-0.5 26.0-0.6 28.2-0.4 + 18OCT2000 20.5-0.3 24.3-0.6 25.9-0.8 28.1-0.5 + 25OCT2000 20.7-0.4 24.3-0.6 25.9-0.8 28.1-0.6 + 01NOV2000 20.6-0.6 24.2-0.8 25.6-1.1 28.0-0.6 + 08NOV2000 20.6-0.8 24.0-1.0 25.6-1.1 28.1-0.6 + 15NOV2000 20.3-1.3 24.2-0.7 25.9-0.7 28.2-0.4 + 22NOV2000 20.2-1.7 24.1-0.9 25.9-0.7 28.1-0.5 + 29NOV2000 21.4-0.7 24.4-0.6 25.9-0.7 27.8-0.7 + 06DEC2000 21.8-0.6 24.4-0.7 25.6-1.0 27.5-1.1 + 13DEC2000 22.4-0.2 24.5-0.6 25.6-1.0 27.6-0.9 + 20DEC2000 22.4-0.6 24.4-0.8 25.6-1.0 27.6-0.8 + 27DEC2000 22.2-1.2 24.4-1.0 25.5-1.0 27.5-0.9 + 03JAN2001 22.8-0.9 24.5-0.9 25.6-1.0 27.5-0.8 + 10JAN2001 23.3-0.8 24.7-0.8 25.6-1.0 27.5-0.9 + 17JAN2001 23.7-0.8 25.1-0.6 25.8-0.8 27.5-0.8 + 24JAN2001 24.6-0.3 25.3-0.5 25.9-0.8 27.4-0.8 + 31JAN2001 25.2 0.0 25.4-0.6 26.0-0.7 27.3-0.9 + 07FEB2001 25.6-0.1 25.8-0.4 25.9-0.8 27.1-1.0 + 14FEB2001 25.6-0.4 25.9-0.5 26.0-0.7 27.2-0.9 + 21FEB2001 26.0-0.2 26.4-0.1 26.3-0.6 27.3-0.8 + 28FEB2001 26.7 0.4 26.7 0.0 26.4-0.5 27.4-0.8 + 07MAR2001 27.2 0.8 27.1 0.2 26.6-0.5 27.4-0.7 + 14MAR2001 27.3 0.8 27.2 0.1 26.8-0.4 27.6-0.6 + 21MAR2001 27.6 1.3 27.4 0.2 27.1-0.2 27.7-0.6 + 28MAR2001 27.7 1.6 27.4 0.2 27.0-0.4 27.8-0.5 + 04APR2001 27.3 1.5 27.6 0.2 27.3-0.3 27.9-0.4 + 11APR2001 27.2 1.6 27.7 0.3 27.6-0.1 28.1-0.3 + 18APR2001 26.2 0.8 27.7 0.2 27.7-0.1 28.3-0.2 + 25APR2001 25.9 0.8 27.2-0.1 27.6-0.2 28.2-0.3 + 02MAY2001 24.2-0.6 27.1-0.2 27.5-0.3 28.3-0.3 + 09MAY2001 23.9-0.6 27.0-0.1 27.6-0.2 28.6-0.1 + 16MAY2001 23.6-0.6 26.7-0.4 27.5-0.3 28.6-0.1 + 23MAY2001 23.3-0.6 26.9-0.1 27.7-0.1 28.8 0.0 + 30MAY2001 23.1-0.5 26.7 0.0 27.7-0.1 28.8 0.0 + 06JUN2001 22.1-1.2 26.7 0.1 27.8 0.1 28.8 0.0 + 13JUN2001 21.7-1.3 26.3-0.1 27.7 0.0 28.8 0.0 + 20JUN2001 21.5-1.2 26.3 0.0 27.7 0.1 28.8-0.1 + 27JUN2001 20.7-1.6 25.9-0.2 27.6 0.1 28.9 0.1 + 04JUL2001 20.7-1.4 25.6-0.3 27.5 0.1 29.0 0.2 + 11JUL2001 21.2-0.6 25.5-0.2 27.4 0.1 29.0 0.2 + 18JUL2001 20.9-0.7 25.5-0.1 27.3 0.1 29.1 0.3 + 25JUL2001 20.7-0.6 25.2-0.2 27.2 0.1 29.1 0.3 + 01AUG2001 20.3-0.8 25.0-0.3 27.2 0.1 29.1 0.4 + 08AUG2001 20.1-0.8 25.0-0.1 27.0 0.1 28.9 0.2 + 15AUG2001 19.8-0.9 24.7-0.3 26.8 0.0 28.9 0.2 + 22AUG2001 19.8-0.8 24.6-0.3 26.8 0.0 28.9 0.2 + 29AUG2001 19.7-0.9 24.3-0.6 26.6-0.2 29.0 0.4 + 05SEP2001 19.6-0.8 24.4-0.5 26.6-0.1 29.2 0.5 + 12SEP2001 19.1-1.3 24.2-0.7 26.6-0.2 29.1 0.4 + 19SEP2001 19.4-1.0 24.2-0.6 26.5-0.2 29.2 0.5 + 26SEP2001 19.6-0.9 24.3-0.6 26.5-0.2 29.1 0.4 + 03OCT2001 19.2-1.4 24.4-0.5 26.5-0.2 28.9 0.3 + 10OCT2001 19.6-1.1 24.4-0.5 26.5-0.2 29.0 0.4 + 17OCT2001 19.4-1.4 24.5-0.4 26.6 0.0 29.0 0.3 + 24OCT2001 19.6-1.4 24.5-0.4 26.6 0.0 29.1 0.4 + 31OCT2001 19.9-1.3 24.5-0.5 26.6 0.0 28.9 0.3 + 07NOV2001 20.3-1.1 24.3-0.7 26.6-0.1 29.1 0.5 + 14NOV2001 20.1-1.5 24.3-0.7 26.5-0.1 29.0 0.4 + 21NOV2001 20.6-1.2 24.3-0.7 26.3-0.3 28.8 0.2 + 28NOV2001 21.4-0.7 24.4-0.6 26.3-0.3 28.7 0.2 + 05DEC2001 21.4-1.0 24.5-0.6 26.1-0.5 28.6 0.1 + 12DEC2001 21.6-1.1 24.5-0.7 26.1-0.4 28.6 0.1 + 19DEC2001 22.0-0.9 24.6-0.5 26.2-0.4 28.5 0.0 + 26DEC2001 22.5-0.8 24.8-0.5 26.2-0.3 28.6 0.2 + 02JAN2002 23.2-0.5 24.8-0.7 26.2-0.4 28.6 0.2 + 09JAN2002 23.3-0.8 25.0-0.5 26.5-0.1 28.8 0.5 + 16JAN2002 23.5-1.0 25.0-0.7 26.4-0.1 28.9 0.6 + 23JAN2002 23.8-1.1 25.3-0.5 26.6 0.0 28.9 0.6 + 30JAN2002 24.3-0.9 25.5-0.5 26.7 0.1 28.7 0.6 + 06FEB2002 25.4-0.2 26.0-0.2 26.9 0.3 28.8 0.7 + 13FEB2002 25.9-0.1 26.2-0.2 27.0 0.3 28.9 0.8 + 20FEB2002 26.3 0.1 26.4-0.1 26.8 0.0 28.6 0.5 + 27FEB2002 27.4 1.1 26.7 0.0 27.1 0.1 28.6 0.5 + 06MAR2002 27.1 0.8 27.1 0.2 27.2 0.1 28.5 0.4 + 13MAR2002 27.6 1.2 27.2 0.1 27.3 0.1 28.6 0.4 + 20MAR2002 27.8 1.4 27.3 0.1 27.4 0.1 28.8 0.6 + 27MAR2002 27.4 1.3 27.4 0.2 27.4 0.0 28.7 0.5 + 03APR2002 27.1 1.2 27.6 0.2 27.7 0.2 28.8 0.5 + 10APR2002 27.1 1.5 27.8 0.4 28.0 0.3 29.0 0.6 + 17APR2002 26.3 0.9 27.6 0.1 27.9 0.2 29.1 0.6 + 24APR2002 25.4 0.3 27.3 0.0 28.0 0.2 29.3 0.7 + 01MAY2002 25.4 0.6 27.4 0.1 28.0 0.2 29.2 0.6 + 08MAY2002 25.0 0.5 27.3 0.1 28.0 0.2 29.2 0.5 + 15MAY2002 24.5 0.2 27.2 0.1 28.0 0.1 29.4 0.6 + 22MAY2002 24.4 0.5 27.1 0.2 28.3 0.4 29.6 0.8 + 29MAY2002 24.5 0.9 27.4 0.5 28.4 0.7 29.7 0.9 + 05JUN2002 23.5 0.2 27.3 0.6 28.6 0.9 29.8 1.0 + 12JUN2002 22.7-0.3 27.1 0.6 28.6 0.9 29.7 0.9 + 19JUN2002 22.1-0.6 27.0 0.6 28.4 0.8 29.6 0.8 + 26JUN2002 22.0-0.4 26.9 0.8 28.2 0.7 29.4 0.6 + 03JUL2002 21.8-0.3 26.6 0.6 28.0 0.6 29.4 0.6 + 10JUL2002 21.1-0.8 26.3 0.5 28.0 0.7 29.4 0.6 + 17JUL2002 21.2-0.4 26.0 0.4 28.0 0.8 29.5 0.7 + 24JUL2002 20.5-0.8 25.7 0.2 27.9 0.8 29.5 0.8 + 31JUL2002 20.3-0.8 25.5 0.2 27.9 0.9 29.6 0.9 + 07AUG2002 20.0-0.9 25.3 0.1 27.8 0.9 29.4 0.7 + 14AUG2002 20.3-0.4 25.5 0.5 27.8 0.9 29.4 0.7 + 21AUG2002 19.8-0.8 25.5 0.5 27.8 1.0 29.3 0.7 + 28AUG2002 19.8-0.7 25.6 0.7 27.8 1.0 29.4 0.7 + 04SEP2002 19.3-1.2 25.4 0.5 27.7 0.9 29.3 0.7 + 11SEP2002 20.2-0.2 25.5 0.6 27.8 1.0 29.4 0.7 + 18SEP2002 20.1-0.3 25.5 0.7 27.9 1.2 29.5 0.9 + 25SEP2002 20.1-0.4 25.7 0.8 27.9 1.2 29.5 0.8 + 02OCT2002 20.1-0.5 25.7 0.8 28.0 1.3 29.5 0.8 + 09OCT2002 20.7 0.0 25.6 0.7 27.9 1.2 29.4 0.7 + 16OCT2002 21.7 0.9 25.7 0.8 27.9 1.2 29.4 0.7 + 23OCT2002 21.6 0.6 26.0 1.1 28.2 1.6 29.8 1.2 + 30OCT2002 21.9 0.7 26.3 1.4 28.3 1.7 29.9 1.2 + 06NOV2002 22.0 0.6 26.2 1.3 28.2 1.6 29.8 1.2 + 13NOV2002 21.9 0.4 26.3 1.4 28.3 1.7 29.9 1.3 + 20NOV2002 22.5 0.7 26.5 1.5 28.3 1.7 29.9 1.3 + 27NOV2002 22.6 0.6 26.4 1.4 28.2 1.6 29.7 1.2 + 04DEC2002 23.0 0.7 26.6 1.6 28.2 1.6 29.6 1.0 + 11DEC2002 23.5 0.9 26.5 1.4 28.1 1.5 29.4 1.0 + 18DEC2002 23.3 0.4 26.5 1.3 28.1 1.5 29.4 1.0 + 25DEC2002 23.5 0.2 26.3 1.0 28.0 1.4 29.5 1.1 + 01JAN2003 24.2 0.6 26.6 1.2 28.1 1.5 29.4 1.1 + 08JAN2003 23.9-0.1 26.3 0.8 27.9 1.3 29.2 0.9 + 15JAN2003 24.1-0.3 26.3 0.7 27.7 1.2 29.3 1.0 + 22JAN2003 24.4-0.4 26.5 0.7 27.7 1.1 29.3 1.0 + 29JAN2003 24.9-0.3 26.3 0.3 27.5 0.8 29.1 0.9 + 05FEB2003 25.3-0.3 26.4 0.3 27.3 0.6 28.9 0.7 + 12FEB2003 25.7-0.3 26.6 0.3 27.4 0.7 28.9 0.9 + 19FEB2003 26.2 0.0 27.0 0.6 27.7 0.9 29.1 1.0 + 26FEB2003 26.0-0.3 26.8 0.1 27.6 0.7 29.2 1.1 + 05MAR2003 25.7-0.7 27.0 0.2 27.6 0.6 29.0 0.9 + 12MAR2003 25.7-0.8 27.2 0.1 27.7 0.6 29.0 0.8 + 19MAR2003 26.5 0.1 27.6 0.4 28.0 0.8 29.1 0.9 + 26MAR2003 25.5-0.7 27.4 0.2 27.9 0.5 29.0 0.7 + 02APR2003 25.7-0.3 27.2-0.1 27.8 0.3 28.9 0.6 + 09APR2003 24.8-0.9 27.3-0.1 27.8 0.2 29.0 0.6 + 16APR2003 24.3-1.1 27.3-0.2 27.9 0.1 28.9 0.5 + 23APR2003 23.6-1.6 27.2-0.2 27.8 0.0 28.9 0.4 + 30APR2003 23.2-1.6 26.5-0.8 27.7-0.1 28.9 0.3 + 07MAY2003 23.0-1.6 26.3-0.9 27.4-0.4 28.9 0.2 + 14MAY2003 22.5-1.8 26.2-0.9 27.3-0.5 28.8 0.1 + 21MAY2003 22.3-1.7 26.0-1.0 27.3-0.6 28.8 0.1 + 28MAY2003 22.0-1.6 26.0-0.9 27.4-0.4 29.0 0.2 + 04JUN2003 21.9-1.4 25.7-0.9 27.4-0.3 29.0 0.2 + 11JUN2003 21.6-1.5 25.7-0.8 27.4-0.2 29.1 0.2 + 18JUN2003 21.1-1.6 25.9-0.5 27.5-0.1 29.1 0.3 + 25JUN2003 21.6-0.8 25.9-0.2 27.6 0.0 29.1 0.3 + 02JUL2003 21.4-0.7 25.9-0.1 27.5 0.1 29.2 0.4 + 09JUL2003 21.1-0.8 25.9 0.0 27.6 0.3 29.2 0.4 + 16JUL2003 20.8-0.8 25.8 0.1 27.5 0.3 29.1 0.3 + 23JUL2003 20.2-1.2 25.7 0.2 27.3 0.2 29.1 0.3 + 30JUL2003 20.3-0.9 25.5 0.2 27.1 0.1 29.0 0.3 + 06AUG2003 20.2-0.8 25.3 0.1 27.0 0.0 29.0 0.3 + 13AUG2003 20.0-0.8 25.0 0.0 26.9 0.1 29.1 0.5 + 20AUG2003 20.6 0.0 24.9-0.1 26.7-0.1 29.0 0.4 + 27AUG2003 20.0-0.5 24.8-0.2 26.7-0.1 29.0 0.3 + 03SEP2003 20.4-0.1 25.0 0.1 26.9 0.1 29.0 0.3 + 10SEP2003 19.9-0.5 24.8-0.1 26.8 0.0 28.9 0.2 + 17SEP2003 19.5-0.8 25.0 0.1 26.9 0.2 28.9 0.3 + 24SEP2003 20.5 0.0 25.0 0.2 27.1 0.4 29.1 0.5 + 01OCT2003 20.1-0.5 25.3 0.4 27.3 0.6 29.1 0.4 + 08OCT2003 20.9 0.2 25.5 0.6 27.4 0.7 29.1 0.5 + 15OCT2003 20.9 0.1 25.2 0.3 27.1 0.4 29.1 0.5 + 22OCT2003 21.5 0.6 25.3 0.3 27.1 0.4 29.3 0.6 + 29OCT2003 21.4 0.3 25.4 0.4 27.2 0.5 29.3 0.7 + 05NOV2003 21.6 0.3 25.3 0.4 27.0 0.4 29.4 0.7 + 12NOV2003 21.8 0.3 25.3 0.4 26.9 0.3 29.3 0.7 + 19NOV2003 22.0 0.3 25.4 0.4 27.1 0.4 29.3 0.7 + 26NOV2003 22.3 0.3 25.5 0.5 27.2 0.5 29.2 0.6 + 03DEC2003 22.5 0.2 25.6 0.5 27.1 0.5 29.2 0.6 + 10DEC2003 22.9 0.3 25.5 0.4 27.0 0.4 29.1 0.6 + 17DEC2003 23.0 0.1 25.4 0.3 26.8 0.3 29.0 0.5 + 24DEC2003 23.0-0.2 25.6 0.3 26.8 0.2 28.9 0.4 + 31DEC2003 23.8 0.2 25.7 0.4 26.7 0.1 28.7 0.4 + 07JAN2004 24.2 0.2 25.7 0.2 26.6 0.0 28.7 0.3 + 14JAN2004 24.6 0.2 25.9 0.3 26.6 0.0 28.9 0.6 + 21JAN2004 24.8 0.0 26.0 0.3 27.0 0.4 28.9 0.7 + 28JAN2004 24.7-0.4 26.1 0.1 26.9 0.2 28.8 0.6 + 04FEB2004 25.0-0.5 26.0-0.1 26.8 0.1 28.7 0.6 + 11FEB2004 25.4-0.5 26.4 0.1 26.8 0.1 28.5 0.4 + 18FEB2004 26.1 0.0 26.7 0.2 26.9 0.1 28.5 0.4 + 25FEB2004 26.3 0.1 26.7 0.1 27.0 0.1 28.5 0.4 + 03MAR2004 25.8-0.6 26.7-0.1 26.9-0.1 28.5 0.4 + 10MAR2004 25.4-1.0 27.1 0.1 26.9-0.2 28.3 0.1 + 17MAR2004 25.6-0.8 27.4 0.2 27.1-0.1 28.3 0.1 + 24MAR2004 26.0-0.3 27.4 0.1 27.3-0.1 28.4 0.2 + 31MAR2004 26.1 0.1 27.4 0.1 27.5 0.0 28.5 0.2 + 07APR2004 26.0 0.2 27.4 0.0 27.7 0.1 28.6 0.2 + 14APR2004 25.2-0.3 27.4 0.0 27.8 0.1 28.7 0.2 + 21APR2004 24.8-0.4 27.4 0.0 28.0 0.2 28.8 0.3 + 28APR2004 24.1-0.9 27.2-0.1 28.1 0.3 28.9 0.3 + 05MAY2004 23.6-1.0 26.7-0.5 27.9 0.1 29.0 0.3 + 12MAY2004 23.1-1.3 26.6-0.6 28.0 0.1 29.0 0.3 + 19MAY2004 22.8-1.3 26.8-0.3 28.2 0.4 29.2 0.4 + 26MAY2004 22.7-1.0 26.7-0.2 28.1 0.3 29.4 0.6 + 02JUN2004 22.1-1.4 26.7 0.0 28.1 0.3 29.2 0.4 + 09JUN2004 21.7-1.4 26.6 0.0 28.0 0.3 29.2 0.4 + 16JUN2004 21.5-1.3 26.4-0.1 27.8 0.1 29.2 0.4 + 23JUN2004 21.3-1.2 26.0-0.3 27.5 0.0 29.1 0.2 + 30JUN2004 21.0-1.2 25.6-0.4 27.3-0.1 29.1 0.3 + 07JUL2004 20.8-1.2 25.4-0.4 27.6 0.3 29.4 0.6 + 14JUL2004 20.9-0.8 25.5-0.2 27.7 0.4 29.4 0.6 + 21JUL2004 20.7-0.7 25.2-0.3 27.7 0.6 29.4 0.7 + 28JUL2004 20.3-0.9 25.4 0.0 27.9 0.8 29.4 0.6 + 04AUG2004 19.9-1.1 25.2 0.0 27.8 0.8 29.4 0.7 + 11AUG2004 19.7-1.1 25.1 0.0 27.6 0.7 29.2 0.6 + 18AUG2004 19.6-1.0 24.9 0.0 27.4 0.6 29.2 0.5 + 25AUG2004 19.2-1.4 24.9 0.0 27.4 0.7 29.3 0.7 + 01SEP2004 20.1-0.4 25.0 0.1 27.4 0.7 29.6 0.9 + 08SEP2004 19.8-0.6 25.0 0.1 27.4 0.6 29.6 0.9 + 15SEP2004 19.8-0.5 25.1 0.3 27.5 0.7 29.6 0.9 + 22SEP2004 20.4-0.1 25.3 0.4 27.6 0.9 29.6 0.9 + 29SEP2004 20.5-0.1 25.4 0.5 27.5 0.8 29.5 0.8 + 06OCT2004 20.8 0.1 25.2 0.4 27.4 0.7 29.5 0.8 + 13OCT2004 20.5-0.2 25.2 0.3 27.3 0.6 29.4 0.8 + 20OCT2004 21.4 0.5 25.4 0.5 27.4 0.7 29.6 1.0 + 27OCT2004 21.3 0.2 25.4 0.5 27.4 0.7 29.7 1.0 + 03NOV2004 21.5 0.3 25.4 0.5 27.3 0.6 29.6 1.0 + 10NOV2004 22.0 0.5 25.5 0.5 27.3 0.6 29.5 0.9 + 17NOV2004 22.2 0.5 25.5 0.5 27.3 0.7 29.6 1.0 + 24NOV2004 21.9 0.0 25.4 0.4 27.3 0.7 29.5 1.0 + 01DEC2004 22.4 0.2 25.6 0.6 27.4 0.8 29.4 0.9 + 08DEC2004 22.3-0.2 25.7 0.6 27.4 0.8 29.4 0.8 + 15DEC2004 22.9 0.2 25.8 0.6 27.3 0.7 29.2 0.8 + 22DEC2004 22.9-0.2 25.9 0.6 27.3 0.7 29.5 1.1 + 29DEC2004 23.6 0.2 25.8 0.5 27.2 0.6 29.5 1.1 + 05JAN2005 23.7-0.2 25.7 0.3 27.1 0.5 29.3 0.9 + 12JAN2005 24.2 0.0 25.9 0.3 27.1 0.5 29.2 0.9 + 19JAN2005 25.0 0.3 26.0 0.3 27.1 0.5 29.2 0.9 + 26JAN2005 24.9-0.1 26.0 0.1 27.1 0.5 29.2 1.0 + 02FEB2005 24.6-0.8 25.9-0.2 26.9 0.2 29.0 0.8 + 09FEB2005 25.1-0.6 26.2-0.1 27.0 0.3 28.8 0.7 + 16FEB2005 25.8-0.3 26.4 0.0 27.0 0.3 28.8 0.7 + 23FEB2005 25.7-0.5 26.3-0.3 27.0 0.1 28.7 0.6 + 02MAR2005 25.2-1.1 26.2-0.6 27.0 0.0 28.8 0.6 + 09MAR2005 25.9-0.5 26.7-0.2 27.2 0.1 28.8 0.6 + 16MAR2005 25.9-0.6 27.3 0.2 27.6 0.4 29.0 0.8 + 23MAR2005 25.0-1.3 27.3 0.0 27.9 0.5 28.9 0.7 + 30MAR2005 24.9-1.1 27.4 0.1 28.0 0.5 29.0 0.7 + 06APR2005 24.8-1.0 27.4 0.0 28.0 0.4 28.9 0.5 + 13APR2005 24.6-0.9 27.7 0.2 27.9 0.1 28.8 0.3 + 20APR2005 24.8-0.5 27.9 0.5 28.2 0.4 28.9 0.4 + 27APR2005 25.4 0.4 28.1 0.8 28.3 0.5 29.1 0.5 + 04MAY2005 25.2 0.5 28.1 0.9 28.3 0.4 29.1 0.4 + 11MAY2005 24.6 0.2 27.6 0.5 28.2 0.4 29.1 0.3 + 18MAY2005 24.5 0.4 27.4 0.3 28.2 0.4 29.3 0.5 + 25MAY2005 23.5-0.3 27.1 0.2 28.2 0.4 29.2 0.4 + 01JUN2005 23.0-0.5 26.8 0.0 28.1 0.3 29.2 0.4 + 08JUN2005 22.6-0.5 26.9 0.3 28.1 0.4 29.2 0.4 + 15JUN2005 22.3-0.5 26.8 0.3 28.1 0.4 29.2 0.4 + 22JUN2005 22.2-0.3 26.9 0.6 28.0 0.5 29.1 0.3 + 29JUN2005 21.6-0.7 26.7 0.6 28.0 0.5 29.1 0.3 + 06JUL2005 21.5-0.5 26.3 0.4 27.8 0.4 29.2 0.4 + 13JUL2005 21.5-0.3 26.2 0.5 27.6 0.3 29.1 0.3 + 20JUL2005 20.7-0.8 25.8 0.2 27.3 0.2 29.0 0.2 + 27JUL2005 20.8-0.5 25.4 0.0 27.1 0.1 28.9 0.1 + 03AUG2005 20.8-0.2 25.2-0.1 26.9-0.1 28.8 0.1 + 10AUG2005 20.6-0.2 25.2 0.1 26.9 0.0 28.7 0.0 + 17AUG2005 20.4-0.2 25.4 0.4 27.0 0.2 28.9 0.2 + 24AUG2005 20.8 0.3 25.2 0.3 26.9 0.1 28.9 0.3 + 31AUG2005 20.4-0.1 24.8-0.1 26.7-0.1 28.9 0.2 + 07SEP2005 20.0-0.5 24.5-0.3 26.5-0.3 28.7 0.1 + 14SEP2005 19.7-0.7 24.5-0.4 26.4-0.3 28.7 0.0 + 21SEP2005 19.6-0.9 24.7-0.2 26.8 0.1 28.9 0.3 + 28SEP2005 19.6-0.9 24.5-0.4 26.7 0.0 28.9 0.3 + 05OCT2005 19.4-1.2 24.6-0.3 26.9 0.2 29.0 0.3 + 12OCT2005 20.0-0.8 24.9 0.0 26.9 0.2 28.9 0.3 + 19OCT2005 19.8-1.1 24.7-0.2 26.7 0.0 28.8 0.2 + 26OCT2005 19.9-1.2 24.7-0.2 26.6-0.1 28.8 0.1 + 02NOV2005 19.8-1.4 24.3-0.7 26.5-0.2 28.7 0.1 + 09NOV2005 20.2-1.2 24.2-0.7 26.3-0.4 28.6 0.0 + 16NOV2005 21.0-0.6 24.3-0.7 26.5-0.2 28.6 0.0 + 23NOV2005 21.2-0.7 24.3-0.7 26.3-0.3 28.7 0.1 + 30NOV2005 21.2-0.9 24.2-0.9 26.1-0.5 28.6 0.1 + 07DEC2005 21.4-1.1 24.1-1.0 26.0-0.6 28.6 0.0 + 14DEC2005 21.8-0.9 24.0-1.1 25.8-0.7 28.5 0.0 + 21DEC2005 23.1 0.1 24.3-0.9 25.8-0.8 28.1-0.3 + 28DEC2005 23.3-0.2 24.7-0.6 25.9-0.7 28.0-0.4 + 04JAN2006 23.4-0.4 25.0-0.5 25.8-0.7 27.9-0.5 + 11JAN2006 24.2 0.0 25.0-0.6 25.7-0.9 27.8-0.5 + 18JAN2006 24.3-0.2 24.8-0.9 25.5-1.1 27.6-0.7 + 25JAN2006 24.8-0.1 25.1-0.8 25.5-1.1 27.4-0.8 + 01FEB2006 25.0-0.3 25.5-0.6 25.8-0.9 27.4-0.7 + 08FEB2006 25.9 0.2 25.8-0.4 26.0-0.7 27.3-0.9 + 15FEB2006 27.1 1.0 26.3 0.0 26.1-0.6 27.3-0.8 + 22FEB2006 26.8 0.6 26.4-0.2 26.3-0.5 27.4-0.7 + 01MAR2006 27.0 0.7 26.2-0.6 26.1-0.9 27.4-0.7 + 08MAR2006 26.9 0.5 26.5-0.4 26.4-0.7 27.6-0.6 + 15MAR2006 26.7 0.2 26.5-0.6 26.5-0.7 27.7-0.5 + 22MAR2006 26.6 0.3 26.6-0.6 26.7-0.6 28.0-0.3 + 29MAR2006 26.0-0.1 26.8-0.5 27.0-0.5 28.1-0.2 + 05APR2006 24.9-0.9 27.1-0.3 27.3-0.3 28.1-0.2 + 12APR2006 24.0-1.5 27.6 0.1 27.7 0.0 28.3-0.1 + 19APR2006 23.4-2.0 27.2-0.2 27.7-0.1 28.4-0.1 + 26APR2006 23.1-1.9 27.2-0.2 27.7-0.1 28.5 0.0 + 03MAY2006 23.9-0.8 27.2-0.1 27.7-0.1 28.6-0.1 + 10MAY2006 24.1-0.4 27.1 0.0 27.8 0.0 28.8 0.1 + 17MAY2006 23.8-0.3 27.1 0.0 28.1 0.2 29.1 0.3 + 24MAY2006 23.5-0.3 26.9 0.0 28.0 0.2 29.0 0.2 + 31MAY2006 23.4-0.1 26.8 0.0 28.0 0.3 29.2 0.4 + 07JUN2006 22.6-0.6 26.6 0.0 28.0 0.3 29.2 0.4 + 14JUN2006 22.8-0.1 26.5 0.1 27.9 0.3 29.2 0.3 + 21JUN2006 22.5-0.1 26.3 0.0 27.8 0.2 29.2 0.3 + 28JUN2006 22.4 0.0 26.1 0.0 27.6 0.1 29.0 0.2 + 05JUL2006 22.2 0.1 26.0 0.1 27.5 0.1 29.0 0.1 + 12JUL2006 22.0 0.2 25.8 0.0 27.3 0.0 29.0 0.2 + 19JUL2006 22.3 0.8 25.8 0.2 27.3 0.1 29.1 0.3 + 26JUL2006 22.0 0.7 25.7 0.3 27.3 0.2 29.2 0.4 + 02AUG2006 21.9 0.8 25.5 0.3 27.2 0.2 29.2 0.5 + 09AUG2006 21.7 0.8 25.3 0.2 27.1 0.2 29.1 0.4 + 16AUG2006 21.6 0.9 25.4 0.4 27.2 0.4 29.2 0.6 + 23AUG2006 21.5 1.0 25.5 0.5 27.3 0.5 29.3 0.6 + 30AUG2006 21.1 0.6 25.6 0.6 27.3 0.5 29.3 0.7 + 06SEP2006 21.6 1.2 25.6 0.7 27.4 0.6 29.4 0.8 + 13SEP2006 21.3 0.9 25.8 0.9 27.3 0.6 29.4 0.7 + 20SEP2006 21.2 0.8 25.9 1.1 27.4 0.7 29.4 0.8 + 27SEP2006 21.7 1.1 25.7 0.8 27.2 0.5 29.3 0.7 + 04OCT2006 21.7 1.0 25.7 0.8 27.2 0.5 29.2 0.6 + 11OCT2006 22.2 1.4 26.1 1.2 27.5 0.8 29.4 0.8 + 18OCT2006 22.4 1.5 26.0 1.1 27.5 0.8 29.5 0.8 + 25OCT2006 22.7 1.6 26.1 1.1 27.6 0.9 29.6 1.0 + 01NOV2006 22.4 1.2 25.9 1.0 27.6 0.9 29.5 0.9 + 08NOV2006 22.5 1.1 25.9 0.9 27.6 0.9 29.6 1.0 + 15NOV2006 22.6 1.0 26.1 1.1 27.8 1.2 29.7 1.1 + 22NOV2006 22.7 0.8 26.3 1.2 27.8 1.2 29.6 1.1 + 29NOV2006 23.0 0.9 26.1 1.1 27.8 1.2 29.6 1.0 + 06DEC2006 22.9 0.5 26.1 1.1 27.9 1.3 29.6 1.1 + 13DEC2006 22.9 0.2 26.3 1.2 27.8 1.2 29.5 1.0 + 20DEC2006 23.7 0.6 26.5 1.3 27.7 1.2 29.4 1.0 + 27DEC2006 24.0 0.6 26.6 1.3 27.7 1.1 29.4 1.0 + 03JAN2007 24.3 0.5 26.4 0.9 27.5 0.9 29.2 0.8 + 10JAN2007 24.9 0.7 26.7 1.1 27.5 0.9 29.1 0.8 + 17JAN2007 25.0 0.4 26.4 0.7 27.2 0.6 28.8 0.6 + 24JAN2007 25.2 0.3 26.5 0.7 27.1 0.5 28.7 0.5 + 31JAN2007 25.6 0.3 26.6 0.6 27.0 0.3 28.7 0.5 + 07FEB2007 26.0 0.4 26.6 0.4 26.9 0.2 28.6 0.4 + 14FEB2007 26.3 0.3 26.3-0.1 26.7 0.0 28.6 0.6 + 21FEB2007 26.4 0.3 26.4-0.1 26.8-0.1 28.6 0.5 + 28FEB2007 25.7-0.6 26.4-0.3 26.9 0.0 28.5 0.4 + 07MAR2007 25.8-0.5 26.6-0.3 26.9-0.2 28.5 0.4 + 14MAR2007 26.0-0.5 27.3 0.2 27.3 0.1 28.6 0.4 + 21MAR2007 25.6-0.8 26.8-0.4 27.2-0.1 28.5 0.3 + 28MAR2007 25.1-1.0 26.6-0.7 27.4 0.0 28.5 0.2 + 04APR2007 24.5-1.4 26.7-0.7 27.5 0.0 28.7 0.3 + 11APR2007 24.4-1.2 27.2-0.2 27.8 0.1 28.7 0.3 + 18APR2007 23.9-1.4 27.4-0.1 27.9 0.2 28.7 0.2 + 25APR2007 24.1-1.0 27.3-0.1 27.8 0.0 28.7 0.1 + 02MAY2007 23.6-1.2 26.9-0.4 27.7-0.1 28.6 0.0 + 09MAY2007 23.0-1.5 26.3-0.9 27.4-0.4 28.7 0.0 + 16MAY2007 22.9-1.3 26.3-0.8 27.5-0.4 28.8 0.1 + 23MAY2007 22.3-1.6 26.3-0.6 27.7-0.1 29.0 0.2 + 30MAY2007 21.8-1.8 26.1-0.7 27.6-0.2 29.0 0.2 + 06JUN2007 21.6-1.6 25.8-0.9 27.6-0.1 29.0 0.2 + 13JUN2007 22.2-0.7 26.1-0.4 27.7 0.1 29.1 0.3 + 20JUN2007 21.8-0.8 25.9-0.5 27.6 0.0 28.9 0.1 + 27JUN2007 20.7-1.7 25.5-0.6 27.3-0.1 28.8 0.0 + 04JUL2007 21.2-0.9 25.3-0.6 27.0-0.4 28.7-0.1 + 11JUL2007 20.1-1.7 24.9-0.9 26.8-0.5 28.8 0.0 + 18JUL2007 19.9-1.7 24.8-0.8 26.9-0.3 28.9 0.1 + 25JUL2007 20.3-1.0 24.5-1.0 26.6-0.5 28.9 0.1 + 01AUG2007 19.6-1.5 24.1-1.2 26.4-0.6 28.7 0.0 + 08AUG2007 19.3-1.6 23.8-1.3 26.2-0.7 28.6-0.1 + 15AUG2007 19.7-1.0 24.0-1.0 26.3-0.6 28.6-0.1 + 22AUG2007 19.2-1.4 23.8-1.2 26.1-0.7 28.5-0.1 + 29AUG2007 18.4-2.1 23.7-1.3 26.1-0.7 28.4-0.2 + 05SEP2007 19.4-1.1 23.7-1.2 26.0-0.8 28.3-0.4 + 12SEP2007 18.6-1.8 23.6-1.3 25.8-1.0 28.0-0.6 + 19SEP2007 18.5-2.0 23.6-1.2 25.8-0.9 28.0-0.7 + 26SEP2007 18.4-2.1 23.2-1.7 25.6-1.1 28.0-0.7 + 03OCT2007 18.3-2.3 23.2-1.7 25.4-1.3 27.9-0.7 + 10OCT2007 18.8-1.9 23.3-1.6 24.9-1.8 27.7-1.0 + 17OCT2007 18.6-2.2 23.5-1.4 25.3-1.4 27.9-0.7 + 24OCT2007 19.2-1.8 23.5-1.4 25.3-1.4 27.8-0.8 + 31OCT2007 19.7-1.5 23.2-1.8 25.2-1.5 27.8-0.8 + 07NOV2007 19.3-2.1 23.0-2.0 25.0-1.6 27.5-1.1 + 14NOV2007 19.2-2.3 23.2-1.7 25.2-1.5 27.3-1.3 + 21NOV2007 19.8-2.0 23.2-1.8 24.9-1.7 27.1-1.5 + 28NOV2007 19.8-2.2 23.3-1.8 25.1-1.6 27.4-1.1 + 05DEC2007 20.6-1.8 23.5-1.5 25.1-1.5 27.5-1.0 + 12DEC2007 20.3-2.4 23.3-1.8 24.9-1.7 27.5-1.0 + 19DEC2007 21.3-1.6 23.7-1.5 25.0-1.6 27.2-1.3 + 26DEC2007 21.9-1.4 23.7-1.6 24.9-1.6 27.0-1.4 + 02JAN2008 22.6-1.1 23.9-1.5 25.0-1.6 26.8-1.6 + 09JAN2008 23.3-0.8 24.0-1.5 24.8-1.8 26.6-1.7 + 16JAN2008 24.1-0.4 24.0-1.6 24.6-2.0 26.6-1.7 + 23JAN2008 24.1-0.7 24.1-1.7 24.4-2.2 26.4-1.8 + 30JAN2008 25.1-0.1 24.7-1.3 24.9-1.7 26.5-1.7 + 06FEB2008 25.9 0.3 24.8-1.4 24.6-2.1 26.4-1.8 + 13FEB2008 25.9-0.1 24.7-1.7 24.5-2.2 26.4-1.7 + 20FEB2008 26.7 0.6 25.1-1.4 24.9-2.0 26.4-1.7 + 27FEB2008 27.2 0.9 25.8-0.9 25.3-1.6 26.3-1.8 + 05MAR2008 27.3 1.0 26.3-0.6 25.7-1.3 26.6-1.5 + 12MAR2008 27.2 0.7 26.5-0.5 26.0-1.1 26.7-1.4 + 19MAR2008 27.3 0.9 26.7-0.5 26.2-1.1 26.8-1.4 + 26MAR2008 27.1 0.9 26.8-0.5 26.3-1.0 27.0-1.2 + 02APR2008 27.2 1.2 26.9-0.4 26.5-1.0 27.2-1.2 + 09APR2008 25.9 0.2 27.3-0.2 26.7-1.0 27.3-1.1 + 16APR2008 25.5 0.0 27.3-0.2 26.9-0.9 27.4-1.1 + 23APR2008 25.5 0.4 27.1-0.3 26.9-0.9 27.5-1.1 + 30APR2008 24.5-0.3 27.3 0.0 27.1-0.7 27.7-0.9 + 07MAY2008 24.1-0.5 26.8-0.4 27.0-0.9 27.7-1.0 + 14MAY2008 24.5 0.2 27.1-0.1 27.1-0.7 27.8-0.9 + 21MAY2008 24.1 0.1 27.2 0.2 27.3-0.5 28.0-0.7 + 28MAY2008 24.1 0.5 27.2 0.4 27.3-0.5 28.0-0.8 + 04JUN2008 24.0 0.7 27.0 0.3 27.3-0.4 28.0-0.8 + 11JUN2008 23.7 0.7 26.7 0.2 27.2-0.5 28.0-0.8 + 18JUN2008 23.3 0.6 26.3-0.1 27.1-0.5 28.1-0.8 + 25JUN2008 23.0 0.6 26.2 0.0 27.1-0.4 28.1-0.7 + 02JUL2008 22.7 0.5 26.3 0.4 27.2-0.2 28.2-0.6 + 09JUL2008 22.7 0.8 26.3 0.5 27.3-0.1 28.3-0.5 + 16JUL2008 22.7 1.1 26.2 0.5 27.3 0.0 28.3-0.5 + 23JUL2008 22.6 1.2 25.9 0.5 27.1 0.0 28.2-0.6 + 30JUL2008 22.2 1.1 25.9 0.5 27.1 0.0 28.2-0.5 + 06AUG2008 22.0 1.1 25.9 0.7 27.0 0.1 28.2-0.5 + 13AUG2008 22.5 1.8 25.8 0.8 27.0 0.2 28.2-0.5 + 20AUG2008 21.1 0.5 25.5 0.5 26.7-0.1 28.1-0.6 + 27AUG2008 21.3 0.8 25.3 0.4 26.6-0.2 28.1-0.6 + 03SEP2008 21.3 0.8 25.3 0.4 26.6-0.2 28.1-0.6 + 10SEP2008 21.0 0.6 25.2 0.3 26.6-0.2 28.1-0.6 + 17SEP2008 21.1 0.8 24.9 0.1 26.4-0.4 28.1-0.6 + 24SEP2008 21.3 0.8 25.1 0.2 26.4-0.4 28.1-0.6 + 01OCT2008 21.0 0.4 24.7-0.2 26.2-0.5 28.3-0.4 + 08OCT2008 20.6-0.1 24.9 0.0 26.3-0.4 28.3-0.4 + 15OCT2008 20.7-0.1 24.9-0.1 26.4-0.3 28.3-0.4 + 22OCT2008 21.0 0.0 24.8-0.2 26.3-0.4 28.2-0.4 + 29OCT2008 20.5-0.7 24.6-0.3 26.4-0.2 28.2-0.4 + 05NOV2008 21.3 0.0 24.6-0.3 26.3-0.3 28.2-0.4 + 12NOV2008 21.8 0.3 24.9-0.1 26.5-0.2 28.1-0.5 + 19NOV2008 21.5-0.2 24.9-0.1 26.3-0.3 28.0-0.6 + 26NOV2008 21.2-0.8 24.6-0.4 26.1-0.5 27.9-0.6 + 03DEC2008 21.4-0.9 24.8-0.3 26.0-0.6 27.9-0.6 + 10DEC2008 22.1-0.4 24.6-0.5 25.8-0.8 27.7-0.7 + 17DEC2008 22.6-0.3 24.6-0.6 25.8-0.8 27.7-0.8 + 24DEC2008 22.8-0.5 24.5-0.8 25.6-1.0 27.5-0.9 + 31DEC2008 23.3-0.3 24.4-1.0 25.4-1.2 27.5-0.9 + 07JAN2009 23.4-0.6 24.5-0.9 25.4-1.2 27.4-1.0 + 14JAN2009 24.0-0.3 24.8-0.8 25.4-1.1 27.4-0.9 + 21JAN2009 25.3 0.5 25.5-0.2 25.8-0.8 27.4-0.8 + 28JAN2009 25.3 0.2 25.5-0.4 25.7-1.0 27.3-0.9 + 04FEB2009 25.1-0.4 25.4-0.7 25.7-0.9 27.2-0.9 + 11FEB2009 25.8 0.0 25.6-0.6 25.9-0.8 27.3-0.8 + 18FEB2009 26.3 0.2 26.1-0.4 26.2-0.6 27.4-0.7 + 25FEB2009 26.5 0.2 26.4-0.3 26.3-0.6 27.4-0.7 + 04MAR2009 26.5 0.2 26.1-0.7 26.4-0.7 27.5-0.6 + 11MAR2009 26.1-0.3 26.1-0.9 26.7-0.5 27.7-0.4 + 18MAR2009 26.0-0.4 26.4-0.7 26.7-0.6 27.8-0.4 + 25MAR2009 26.3 0.1 26.7-0.5 26.8-0.6 27.9-0.4 + 01APR2009 26.4 0.5 27.2-0.1 27.1-0.4 28.1-0.2 + 08APR2009 25.7 0.0 27.4 0.0 27.4-0.2 28.3-0.1 + 15APR2009 26.1 0.7 27.5 0.0 27.5-0.2 28.3-0.2 + 22APR2009 25.4 0.2 27.3-0.1 27.6-0.2 28.4-0.2 + 29APR2009 25.3 0.4 27.5 0.2 27.7-0.1 28.6 0.0 + 06MAY2009 25.3 0.7 27.6 0.4 27.9 0.1 28.8 0.1 + 13MAY2009 24.8 0.5 27.4 0.3 28.0 0.2 29.0 0.2 + 20MAY2009 24.4 0.4 27.4 0.4 28.2 0.4 29.1 0.3 + 27MAY2009 24.3 0.6 27.2 0.4 28.1 0.3 29.1 0.3 + 03JUN2009 23.7 0.4 27.1 0.4 27.9 0.2 29.0 0.2 + 10JUN2009 23.7 0.6 27.2 0.6 28.1 0.4 29.1 0.3 + 17JUN2009 23.9 1.1 27.2 0.8 28.2 0.5 29.2 0.4 + 24JUN2009 23.5 1.0 27.1 0.9 28.2 0.7 29.3 0.5 + 01JUL2009 22.9 0.7 26.9 0.9 28.2 0.7 29.3 0.5 + 08JUL2009 23.0 1.1 26.7 0.9 28.0 0.7 29.2 0.4 + 15JUL2009 22.7 1.0 26.6 1.0 28.0 0.7 29.2 0.4 + 22JUL2009 22.2 0.8 26.5 1.0 27.9 0.8 29.2 0.4 + 29JUL2009 22.1 0.9 26.2 0.8 27.7 0.6 29.1 0.4 + 05AUG2009 22.2 1.2 26.0 0.8 27.6 0.6 29.1 0.4 + 12AUG2009 21.4 0.6 25.9 0.8 27.4 0.6 29.1 0.4 + 19AUG2009 21.6 0.9 25.8 0.9 27.4 0.6 29.2 0.6 + 26AUG2009 21.5 1.0 25.9 1.0 27.6 0.8 29.3 0.7 + 02SEP2009 21.4 0.9 25.9 1.0 27.6 0.8 29.3 0.6 + 09SEP2009 21.1 0.6 25.7 0.8 27.5 0.8 29.3 0.6 + 16SEP2009 20.8 0.4 25.6 0.8 27.5 0.8 29.3 0.6 + 23SEP2009 20.5 0.0 25.6 0.7 27.4 0.7 29.2 0.6 + 30SEP2009 20.4-0.2 25.4 0.6 27.3 0.6 29.2 0.6 + 07OCT2009 20.1-0.5 25.5 0.6 27.3 0.6 29.4 0.7 + 14OCT2009 21.0 0.2 25.6 0.7 27.5 0.8 29.6 1.0 + 21OCT2009 21.2 0.3 25.8 0.8 27.7 1.0 29.8 1.2 + 28OCT2009 21.6 0.5 26.1 1.2 28.1 1.4 30.0 1.3 + 04NOV2009 21.8 0.5 26.2 1.3 28.2 1.6 29.9 1.3 + 11NOV2009 22.1 0.6 26.2 1.2 28.2 1.5 29.9 1.3 + 18NOV2009 22.2 0.5 26.2 1.2 28.2 1.6 29.8 1.2 + 25NOV2009 22.2 0.3 26.3 1.2 28.2 1.6 29.9 1.3 + 02DEC2009 22.7 0.4 26.5 1.4 28.2 1.6 29.7 1.2 + 09DEC2009 22.7 0.2 26.6 1.5 28.2 1.7 29.6 1.1 + 16DEC2009 22.6-0.2 26.7 1.5 28.3 1.8 29.7 1.2 + 23DEC2009 23.7 0.5 26.8 1.5 28.4 1.9 29.7 1.3 + 30DEC2009 24.3 0.7 26.7 1.4 28.3 1.7 29.6 1.2 + 06JAN2010 24.3 0.4 26.7 1.2 28.3 1.7 29.7 1.3 + 13JAN2010 24.6 0.3 26.7 1.1 28.2 1.6 29.6 1.3 + 20JAN2010 24.7 0.1 26.5 0.8 28.0 1.4 29.5 1.2 + 27JAN2010 25.5 0.4 26.6 0.7 27.8 1.2 29.3 1.1 + 03FEB2010 25.4 0.0 26.7 0.6 27.8 1.2 29.1 1.0 + 10FEB2010 25.7-0.2 27.0 0.7 27.9 1.2 29.0 0.9 + 17FEB2010 26.4 0.3 27.2 0.8 27.9 1.2 29.0 1.0 + 24FEB2010 26.5 0.3 27.4 0.8 28.0 1.1 29.2 1.1 + 03MAR2010 26.3-0.1 27.5 0.7 28.1 1.1 29.2 1.0 + 10MAR2010 26.0-0.4 27.5 0.5 28.3 1.2 29.3 1.1 + 17MAR2010 26.2-0.3 27.8 0.7 28.4 1.1 29.2 1.1 + 24MAR2010 26.3 0.0 27.9 0.7 28.4 1.0 29.2 0.9 + 31MAR2010 25.9-0.1 28.1 0.8 28.4 0.9 29.2 0.8 + 07APR2010 26.0 0.3 28.1 0.7 28.4 0.8 29.3 0.9 + 14APR2010 26.6 1.0 28.2 0.8 28.5 0.7 29.2 0.7 + 21APR2010 26.0 0.8 28.0 0.6 28.4 0.6 29.2 0.7 + 28APR2010 25.2 0.3 27.8 0.4 28.2 0.4 29.3 0.7 + 05MAY2010 24.8 0.2 27.7 0.5 28.0 0.2 29.1 0.4 + 12MAY2010 24.8 0.5 27.1 0.0 27.7-0.2 29.0 0.3 + 19MAY2010 24.0 0.0 26.8-0.3 27.5-0.3 29.0 0.2 + 26MAY2010 23.2-0.5 26.4-0.4 27.5-0.3 29.0 0.2 + 02JUN2010 23.4 0.0 26.1-0.6 27.3-0.5 28.8 0.0 + 09JUN2010 23.1 0.0 26.0-0.6 27.1-0.6 28.7-0.1 + 16JUN2010 22.3-0.5 25.8-0.6 27.0-0.7 28.6-0.2 + 23JUN2010 22.4-0.2 25.5-0.8 26.9-0.7 28.5-0.3 + 30JUN2010 21.6-0.7 25.3-0.8 26.7-0.8 28.3-0.5 + 07JUL2010 20.9-1.1 24.8-1.0 26.4-0.9 28.2-0.6 + 14JUL2010 20.0-1.6 24.6-1.1 26.1-1.1 28.2-0.6 + 21JUL2010 19.6-1.9 24.4-1.1 26.0-1.2 28.0-0.8 + 28JUL2010 19.5-1.7 24.0-1.4 25.6-1.4 27.8-1.0 + 04AUG2010 19.5-1.5 24.0-1.3 25.8-1.2 27.7-1.0 + 11AUG2010 19.6-1.2 24.1-1.0 25.7-1.2 27.5-1.2 + 18AUG2010 19.2-1.4 23.8-1.1 25.6-1.2 27.5-1.1 + 25AUG2010 19.2-1.4 23.7-1.3 25.2-1.6 27.1-1.5 + 01SEP2010 18.8-1.7 23.4-1.5 25.1-1.7 27.2-1.5 + 08SEP2010 19.1-1.3 23.5-1.4 25.2-1.6 27.1-1.6 + 15SEP2010 18.6-1.8 23.4-1.5 25.1-1.6 27.1-1.6 + 22SEP2010 19.3-1.2 24.0-0.8 25.1-1.6 27.1-1.6 + 29SEP2010 19.2-1.4 23.5-1.3 24.8-1.9 27.1-1.6 + 06OCT2010 18.7-1.9 23.2-1.7 24.8-1.9 27.1-1.6 + 13OCT2010 18.9-1.9 23.0-2.0 25.1-1.6 27.1-1.6 + 20OCT2010 19.1-1.8 23.2-1.7 25.1-1.6 27.0-1.7 + 27OCT2010 19.8-1.3 23.6-1.4 25.2-1.5 27.0-1.6 + 03NOV2010 19.7-1.6 23.4-1.6 25.2-1.4 27.0-1.6 + 10NOV2010 19.5-1.9 23.5-1.5 25.2-1.4 27.2-1.5 + 17NOV2010 20.2-1.5 23.5-1.5 25.0-1.6 27.1-1.5 + 24NOV2010 20.6-1.3 23.3-1.7 24.9-1.7 26.9-1.7 + 01DEC2010 20.5-1.7 23.3-1.7 25.0-1.7 27.0-1.5 + 08DEC2010 20.9-1.5 23.4-1.7 25.0-1.6 26.9-1.6 + 15DEC2010 21.1-1.7 23.5-1.7 25.0-1.5 26.9-1.6 + 22DEC2010 21.7-1.4 23.4-1.8 24.8-1.8 26.8-1.6 + 29DEC2010 22.9-0.6 23.8-1.5 25.0-1.5 26.7-1.7 + 05JAN2011 23.1-0.7 24.1-1.3 25.0-1.5 26.7-1.7 + 12JAN2011 23.6-0.7 24.1-1.5 24.7-1.8 26.6-1.7 + 19JAN2011 24.2-0.5 24.4-1.3 25.0-1.6 26.7-1.6 + 26JAN2011 25.0 0.0 24.5-1.4 24.9-1.7 26.8-1.4 + 02FEB2011 25.3-0.1 24.9-1.1 25.1-1.5 26.6-1.5 + 09FEB2011 25.9 0.2 25.5-0.8 25.5-1.2 26.8-1.3 + 16FEB2011 26.8 0.7 25.6-0.8 25.4-1.3 27.0-1.1 + 23FEB2011 26.4 0.2 25.9-0.7 25.6-1.3 27.0-1.1 + 02MAR2011 25.7-0.6 26.0-0.8 25.7-1.3 27.1-1.1 + 09MAR2011 26.3-0.2 26.2-0.8 26.0-1.1 27.3-0.9 + 16MAR2011 26.6 0.1 26.3-0.8 26.4-0.9 27.5-0.7 + 23MAR2011 25.8-0.5 26.6-0.6 26.4-0.9 27.5-0.7 + 30MAR2011 25.6-0.4 26.9-0.4 26.6-0.9 27.5-0.8 + 06APR2011 25.4-0.4 27.1-0.2 26.9-0.7 27.7-0.6 + 13APR2011 25.8 0.3 27.3-0.2 27.1-0.7 27.9-0.6 + 20APR2011 25.4 0.1 27.2-0.3 27.1-0.7 27.8-0.7 + 27APR2011 25.8 0.8 27.2-0.1 27.1-0.7 27.9-0.7 + 04MAY2011 25.1 0.4 27.0-0.3 27.2-0.6 28.0-0.7 + 11MAY2011 25.3 0.9 27.0-0.2 27.4-0.5 28.3-0.5 + 18MAY2011 24.6 0.5 27.0-0.1 27.6-0.3 28.4-0.4 + 25MAY2011 24.0 0.3 26.8 0.0 27.5-0.3 28.3-0.5 + 01JUN2011 24.3 0.8 26.8 0.1 27.5-0.2 28.4-0.4 + 08JUN2011 24.2 1.1 26.7 0.1 27.5-0.2 28.4-0.4 + 15JUN2011 23.8 1.0 26.6 0.1 27.4-0.2 28.4-0.4 + 22JUN2011 23.2 0.6 26.5 0.2 27.4-0.1 28.4-0.4 + 29JUN2011 22.9 0.6 26.1 0.1 27.4-0.1 28.6-0.2 + 06JUL2011 22.2 0.2 25.8-0.1 27.1-0.3 28.5-0.3 + 13JUL2011 21.9 0.2 25.7 0.0 27.1-0.2 28.5-0.3 + 20JUL2011 22.1 0.6 25.6 0.0 26.9-0.3 28.4-0.4 + 27JUL2011 21.9 0.7 25.3-0.1 26.8-0.3 28.4-0.4 + 03AUG2011 21.5 0.4 25.0-0.3 26.4-0.6 28.3-0.4 + 10AUG2011 20.9 0.0 24.6-0.5 26.3-0.6 28.4-0.3 + 17AUG2011 20.5-0.1 24.5-0.5 26.0-0.8 28.2-0.4 + 24AUG2011 20.2-0.4 24.3-0.6 26.1-0.7 28.3-0.4 + 31AUG2011 20.0-0.5 24.4-0.5 26.1-0.7 28.3-0.4 + 07SEP2011 19.7-0.7 24.2-0.7 26.1-0.7 28.2-0.5 + 14SEP2011 19.6-0.8 24.1-0.7 26.0-0.8 28.0-0.7 + 21SEP2011 19.8-0.6 24.3-0.6 25.9-0.9 27.8-0.9 + 28SEP2011 19.9-0.6 24.1-0.7 26.0-0.7 28.0-0.7 + 05OCT2011 19.8-0.8 24.1-0.8 25.7-1.0 27.7-0.9 + 12OCT2011 19.7-1.0 24.1-0.8 25.8-0.9 27.9-0.8 + 19OCT2011 20.0-0.9 23.9-1.1 25.8-0.8 28.1-0.6 + 26OCT2011 21.2 0.2 23.8-1.1 25.4-1.2 28.0-0.7 + 02NOV2011 20.5-0.8 23.9-1.1 25.6-1.0 27.9-0.8 + 09NOV2011 20.5-0.9 23.9-1.1 25.7-0.9 27.9-0.7 + 16NOV2011 20.5-1.1 23.8-1.1 25.6-1.0 27.9-0.7 + 23NOV2011 21.4-0.5 24.0-1.0 25.6-1.0 27.8-0.8 + 30NOV2011 21.0-1.2 23.8-1.3 25.4-1.2 27.7-0.9 + 07DEC2011 21.4-1.0 23.9-1.2 25.5-1.1 27.5-1.0 + 14DEC2011 21.5-1.2 24.1-1.0 25.6-1.0 27.4-1.1 + 21DEC2011 22.1-1.0 24.5-0.7 25.6-1.0 27.2-1.3 + 28DEC2011 22.6-0.9 24.4-0.9 25.5-1.1 27.1-1.3 + 04JAN2012 22.7-1.1 24.6-0.8 25.5-1.0 27.2-1.2 + 11JAN2012 23.7-0.5 24.8-0.7 25.6-1.0 27.1-1.2 + 18JAN2012 24.0-0.6 24.9-0.8 25.4-1.2 27.1-1.2 + 25JAN2012 24.6-0.4 25.2-0.7 25.5-1.2 26.9-1.3 + 01FEB2012 24.6-0.8 25.2-0.8 25.5-1.2 27.0-1.2 + 08FEB2012 25.2-0.5 25.6-0.6 25.7-1.0 27.1-1.0 + 15FEB2012 26.9 0.8 26.3-0.1 26.1-0.7 27.1-1.0 + 22FEB2012 26.9 0.8 26.8 0.2 26.5-0.4 27.4-0.7 + 29FEB2012 27.3 1.0 27.1 0.4 26.4-0.6 27.2-0.9 + 07MAR2012 26.6 0.2 26.7-0.2 26.4-0.7 27.3-0.9 + 14MAR2012 26.6 0.2 26.6-0.4 26.6-0.6 27.5-0.7 + 21MAR2012 26.7 0.4 27.0-0.2 26.7-0.6 27.8-0.5 + 28MAR2012 26.9 0.8 27.5 0.3 27.1-0.3 27.7-0.6 + 04APR2012 26.2 0.3 27.6 0.3 27.2-0.3 27.9-0.5 + 11APR2012 27.4 1.8 27.8 0.4 27.3-0.4 28.1-0.3 + 18APR2012 26.8 1.4 27.5 0.0 27.3-0.5 28.1-0.4 + 25APR2012 26.6 1.5 27.5 0.1 27.6-0.2 28.4-0.2 + 02MAY2012 26.3 1.6 27.4 0.1 27.7-0.1 28.4-0.2 + 09MAY2012 25.7 1.2 27.3 0.1 27.8 0.0 28.4-0.3 + 16MAY2012 25.2 1.0 27.2 0.1 27.8 0.0 28.5-0.3 + 23MAY2012 24.8 0.9 27.1 0.2 27.8 0.0 28.6-0.2 + 30MAY2012 24.5 0.9 27.2 0.4 27.9 0.2 28.7-0.1 + 06JUN2012 24.7 1.5 27.1 0.4 27.8 0.1 28.6-0.2 + 13JUN2012 24.4 1.5 27.1 0.6 27.9 0.3 28.6-0.2 + 20JUN2012 24.3 1.7 27.1 0.8 28.0 0.4 28.8 0.0 + 27JUN2012 23.8 1.5 27.1 0.9 28.1 0.6 28.9 0.0 + 04JUL2012 23.2 1.1 26.8 0.8 27.9 0.5 28.8 0.0 + 11JUL2012 22.6 0.8 26.6 0.8 27.7 0.4 28.8 0.0 + 18JUL2012 22.6 1.1 26.5 0.9 27.7 0.5 28.8 0.0 + 25JUL2012 22.0 0.7 26.4 1.0 27.7 0.6 28.9 0.1 + 01AUG2012 21.6 0.5 26.1 0.9 27.6 0.6 29.0 0.3 + 08AUG2012 20.9 0.0 25.9 0.8 27.7 0.8 29.1 0.4 + 15AUG2012 20.8 0.1 25.6 0.6 27.4 0.6 29.1 0.4 + 22AUG2012 21.0 0.4 25.5 0.5 27.4 0.6 29.1 0.4 + 29AUG2012 20.3-0.2 25.6 0.7 27.7 0.9 29.1 0.5 + 05SEP2012 20.7 0.3 25.5 0.6 27.5 0.8 29.2 0.5 + 12SEP2012 20.9 0.5 25.3 0.4 27.3 0.5 29.1 0.4 + 19SEP2012 21.0 0.5 25.2 0.3 27.0 0.3 29.0 0.4 + 26SEP2012 21.0 0.5 25.1 0.2 26.9 0.2 29.1 0.4 + 03OCT2012 20.5-0.1 24.8-0.1 26.8 0.1 29.0 0.3 + 10OCT2012 20.2-0.6 24.7-0.2 26.8 0.1 29.1 0.4 + 17OCT2012 20.5-0.4 25.0 0.1 27.0 0.3 29.1 0.5 + 24OCT2012 21.0 0.0 25.0 0.1 27.2 0.5 29.3 0.7 + 31OCT2012 21.5 0.3 25.2 0.2 27.1 0.4 29.2 0.6 + 07NOV2012 21.5 0.2 25.1 0.1 27.0 0.4 29.2 0.6 + 14NOV2012 21.0-0.5 25.2 0.2 27.2 0.5 29.3 0.7 + 21NOV2012 21.1-0.7 25.1 0.1 26.9 0.3 29.1 0.5 + 28NOV2012 20.7-1.4 24.9-0.1 26.8 0.2 28.9 0.4 + 05DEC2012 21.5-0.9 24.9-0.2 26.5-0.1 28.6 0.1 + 12DEC2012 21.8-0.8 24.8-0.3 26.5-0.1 28.8 0.4 + 19DEC2012 22.4-0.6 24.9-0.3 26.4-0.2 28.6 0.2 + 26DEC2012 22.7-0.6 25.0-0.3 26.4-0.1 28.6 0.2 + 02JAN2013 23.3-0.4 25.0-0.4 26.3-0.3 28.4 0.1 + 09JAN2013 23.7-0.4 24.8-0.7 26.0-0.6 28.3 0.0 + 16JAN2013 24.1-0.4 25.0-0.6 26.0-0.6 28.1-0.2 + 23JAN2013 24.2-0.6 25.3-0.5 26.4-0.2 28.2 0.0 + 30JAN2013 24.8-0.5 25.1-0.9 26.1-0.5 28.1 0.0 + 06FEB2013 25.4-0.2 25.5-0.7 26.2-0.5 28.1-0.1 + 13FEB2013 25.9-0.1 25.9-0.4 26.4-0.3 28.1 0.0 + 20FEB2013 25.6-0.6 26.2-0.3 26.3-0.5 27.9-0.1 + 27FEB2013 25.8-0.4 26.5-0.2 26.6-0.3 27.9-0.2 + 06MAR2013 26.7 0.4 27.0 0.1 26.9-0.1 27.9-0.2 + 13MAR2013 27.0 0.5 27.1 0.0 26.8-0.3 27.7-0.4 + 20MAR2013 26.6 0.2 27.6 0.4 27.1-0.1 28.0-0.2 + 27MAR2013 25.6-0.5 27.6 0.3 27.3-0.1 28.1-0.2 + 03APR2013 25.0-0.9 27.3 0.0 27.6 0.1 28.3 0.0 + 10APR2013 24.8-0.9 27.5 0.0 27.7 0.0 28.5 0.1 + 17APR2013 24.6-0.8 27.5 0.0 27.7-0.1 28.5 0.0 + 24APR2013 24.5-0.6 27.3-0.1 27.7-0.1 28.4-0.1 + 01MAY2013 23.6-1.2 26.9-0.4 27.8 0.0 28.7 0.0 + 08MAY2013 22.9-1.6 26.7-0.5 27.7-0.1 28.7 0.0 + 15MAY2013 23.2-1.1 26.5-0.6 27.5-0.4 28.6-0.2 + 22MAY2013 22.3-1.6 25.9-1.0 27.4-0.4 28.7-0.1 + 29MAY2013 21.5-2.1 25.9-0.9 27.5-0.2 28.8 0.0 + 05JUN2013 22.0-1.3 25.9-0.8 27.5-0.2 28.8 0.0 + 12JUN2013 21.9-1.1 25.9-0.6 27.5-0.2 28.8-0.1 + 19JUN2013 21.1-1.6 25.7-0.7 27.3-0.3 28.6-0.2 + 26JUN2013 20.5-1.9 25.6-0.6 27.4-0.1 28.8 0.0 + 03JUL2013 20.6-1.5 25.4-0.5 27.2-0.2 28.8 0.0 + 10JUL2013 20.5-1.3 25.0-0.8 26.9-0.4 28.8 0.0 + 17JUL2013 20.1-1.5 24.8-0.8 26.8-0.4 28.7-0.1 + 24JUL2013 20.3-1.1 24.9-0.6 26.8-0.3 28.7-0.1 + 31JUL2013 19.8-1.3 24.6-0.8 26.8-0.2 28.7 0.0 + 07AUG2013 19.8-1.1 24.5-0.7 26.7-0.3 28.6-0.1 + 14AUG2013 19.6-1.1 24.4-0.7 26.4-0.4 28.7 0.0 + 21AUG2013 19.9-0.8 24.4-0.6 26.4-0.4 28.7 0.0 + 28AUG2013 19.4-1.1 24.5-0.5 26.7-0.1 28.8 0.2 + 04SEP2013 19.6-0.9 24.6-0.3 26.8 0.0 28.8 0.1 + 11SEP2013 20.0-0.4 24.7-0.2 26.8 0.0 28.7 0.0 + 18SEP2013 19.9-0.5 24.9 0.1 26.7-0.1 28.6-0.1 + 25SEP2013 20.1-0.4 24.7-0.2 26.5-0.2 28.5-0.1 + 02OCT2013 19.7-0.9 24.6-0.2 26.4-0.3 28.7 0.0 + 09OCT2013 20.1-0.7 24.6-0.3 26.3-0.3 28.6 0.0 + 16OCT2013 20.3-0.5 24.8-0.1 26.3-0.4 28.6-0.1 + 23OCT2013 20.5-0.4 24.7-0.2 26.3-0.4 28.7 0.1 + 30OCT2013 20.5-0.7 24.8-0.1 26.5-0.2 28.8 0.2 + 06NOV2013 21.0-0.4 24.8-0.1 26.6 0.0 28.9 0.3 + 13NOV2013 21.1-0.4 24.7-0.2 26.6 0.0 28.9 0.3 + 20NOV2013 21.3-0.5 24.8-0.2 26.7 0.1 28.9 0.3 + 27NOV2013 21.7-0.4 24.9-0.1 26.7 0.1 28.8 0.2 + 04DEC2013 22.0-0.3 24.9-0.2 26.8 0.2 28.8 0.3 + 11DEC2013 22.4-0.2 25.1 0.0 26.6 0.0 28.7 0.2 + 18DEC2013 22.4-0.5 25.2 0.0 26.5-0.1 28.6 0.1 + 25DEC2013 22.8-0.4 25.2-0.1 26.4-0.2 28.5 0.1 + 01JAN2014 23.7 0.0 25.2-0.2 26.3-0.3 28.2-0.2 + 08JAN2014 24.2 0.1 25.1-0.5 26.0-0.5 28.2-0.2 + 15JAN2014 25.0 0.6 25.2-0.4 25.9-0.7 28.0-0.3 + 22JAN2014 25.4 0.6 25.6-0.2 26.2-0.4 28.1-0.1 + 29JAN2014 25.4 0.2 25.3-0.7 25.9-0.7 27.9-0.2 + 05FEB2014 25.1-0.4 25.3-0.8 25.9-0.7 28.1 0.0 + 12FEB2014 25.4-0.6 25.4-0.9 26.2-0.5 28.5 0.4 + 19FEB2014 25.1-1.1 25.7-0.7 26.4-0.4 28.5 0.4 + 26FEB2014 25.5-0.7 26.0-0.6 26.3-0.6 28.2 0.1 + 05MAR2014 26.1-0.3 26.4-0.5 26.6-0.4 28.5 0.3 + 12MAR2014 25.8-0.6 26.8-0.3 26.8-0.4 28.7 0.6 + 19MAR2014 25.2-1.2 27.3 0.1 27.4 0.1 28.8 0.6 + 26MAR2014 25.4-0.7 27.6 0.4 27.6 0.2 29.0 0.7 + 02APR2014 25.2-0.7 27.8 0.5 27.8 0.3 29.0 0.7 + 09APR2014 24.9-0.8 27.6 0.1 27.9 0.2 29.1 0.7 + 16APR2014 24.8-0.7 27.7 0.2 28.0 0.2 29.1 0.6 + 23APR2014 25.3 0.1 27.8 0.4 28.2 0.4 29.2 0.6 + 30APR2014 25.7 0.8 27.8 0.5 28.2 0.4 29.3 0.7 + 07MAY2014 25.8 1.2 27.8 0.6 28.3 0.5 29.5 0.8 + 14MAY2014 25.5 1.3 27.7 0.6 28.3 0.4 29.5 0.8 + 21MAY2014 25.4 1.5 27.6 0.7 28.3 0.5 29.6 0.8 + 28MAY2014 25.3 1.6 27.6 0.7 28.4 0.6 29.7 0.9 + 04JUN2014 24.8 1.4 27.5 0.8 28.3 0.5 29.6 0.8 + 11JUN2014 24.6 1.6 27.3 0.8 28.1 0.4 29.5 0.6 + 18JUN2014 24.8 2.1 27.4 1.0 28.1 0.5 29.4 0.5 + 25JUN2014 24.0 1.6 27.2 1.0 28.0 0.5 29.3 0.5 + 02JUL2014 23.6 1.4 27.0 1.0 27.8 0.4 29.1 0.3 + 09JUL2014 23.0 1.1 26.5 0.6 27.6 0.3 29.1 0.3 + 16JUL2014 23.1 1.5 26.2 0.6 27.4 0.2 29.1 0.4 + 23JUL2014 22.9 1.6 26.0 0.5 27.1-0.1 28.9 0.2 + 30JUL2014 21.8 0.6 25.5 0.2 26.9-0.1 29.0 0.3 + 06AUG2014 22.2 1.2 25.6 0.4 27.0 0.0 29.2 0.5 + 13AUG2014 21.9 1.2 25.5 0.5 26.9 0.0 29.0 0.4 + 20AUG2014 22.1 1.4 25.5 0.5 27.1 0.3 29.1 0.4 + 27AUG2014 21.3 0.8 25.4 0.4 27.2 0.4 29.2 0.5 + 03SEP2014 21.7 1.2 25.3 0.4 27.1 0.4 29.2 0.5 + 10SEP2014 21.1 0.7 25.3 0.4 27.3 0.5 29.4 0.7 + 17SEP2014 21.0 0.7 25.2 0.4 27.2 0.5 29.4 0.8 + 24SEP2014 21.2 0.8 25.4 0.5 27.1 0.4 29.3 0.6 + 01OCT2014 21.7 1.1 25.4 0.5 27.1 0.3 29.2 0.5 + 08OCT2014 21.3 0.6 25.5 0.6 27.1 0.4 29.1 0.5 + 15OCT2014 21.5 0.7 25.5 0.5 27.2 0.5 29.4 0.7 + 22OCT2014 21.8 0.8 25.8 0.8 27.2 0.5 29.4 0.7 + 29OCT2014 21.8 0.6 25.8 0.9 27.3 0.6 29.4 0.8 + 05NOV2014 21.9 0.5 25.8 0.9 27.4 0.8 29.5 0.9 + 12NOV2014 22.4 0.9 25.8 0.9 27.5 0.8 29.5 0.9 + 19NOV2014 22.6 0.8 26.0 1.0 27.5 0.9 29.5 0.9 + 26NOV2014 22.4 0.4 25.9 0.9 27.6 1.0 29.5 0.9 + 03DEC2014 22.3 0.0 25.8 0.7 27.4 0.8 29.4 0.9 + 10DEC2014 22.8 0.2 26.0 0.9 27.5 0.9 29.4 0.9 + 17DEC2014 22.9 0.1 26.0 0.8 27.4 0.8 29.4 1.0 + 24DEC2014 23.1-0.2 26.0 0.7 27.3 0.7 29.3 0.9 + 31DEC2014 23.6 0.0 25.9 0.6 27.1 0.5 29.2 0.8 + 07JAN2015 23.7-0.2 25.9 0.4 27.0 0.4 29.1 0.7 + 14JAN2015 24.0-0.4 25.9 0.3 27.1 0.5 29.1 0.9 + 21JAN2015 24.3-0.4 26.1 0.3 27.2 0.6 29.2 1.0 + 28JAN2015 24.8-0.3 26.2 0.3 27.2 0.5 29.1 0.9 + 04FEB2015 25.0-0.5 26.2 0.1 27.2 0.5 29.1 0.9 + 11FEB2015 25.1-0.8 26.6 0.3 27.2 0.5 29.0 0.9 + 18FEB2015 26.1-0.1 26.7 0.3 27.3 0.5 29.0 1.0 + 25FEB2015 26.1-0.1 26.8 0.1 27.5 0.6 29.3 1.2 diff --git a/samples/G-code/lm.g b/samples/G-code/lm.g deleted file mode 100644 index 4b60a136..00000000 --- a/samples/G-code/lm.g +++ /dev/null @@ -1,25912 +0,0 @@ -48 36266 43 38 - 0 0.259 - 1 0.00232 - 2 0.0392 - 3 0.0317 - 4 0.141 - 6 0.000138 - 7 0.0468 - 8 0.036 - 9 0.0021 - 10 0.00146 - 13 0.0395 - 14 0.0443 - 15 0.00874 - 16 0.000331 - 18 0.013 - 19 0.0104 - 20 0.0106 - 21 0.121 - 22 0.0148 - 23 0.00816 - 24 0.000772 - 25 0.000165 - 26 0.004 - 28 0.0217 - 29 0.0184 - 30 0.00976 - 31 0.0173 - 32 0.00767 - 33 0.0122 - 34 5.51e-05 - 35 5.51e-05 - 36 0.000276 - 37 0.000551 - 38 2.76e-05 - 39 0.00645 - 40 0.000138 - 41 0.0352 - 42 0.00447 - 43 0.000221 - 44 0.00149 - 45 0.0171 - 46 0.00105 - 47 0.0106 - - 0 4 3 0 - 2 0.25 - 13 0.5 - 19 0.25 - - 2 619 18 15 - 0 0.00323 - 3 0.00808 - 4 0.00808 - 7 0.00162 - 8 0.784 - 9 0.042 - 10 0.00646 - 13 0.0517 - 14 0.00323 - 15 0.00969 - 20 0.00162 - 28 0.00162 - 29 0.00162 - 30 0.00485 - 31 0.0307 - 41 0.0178 - 42 0.00969 - 46 0.0145 - - 3 1 1 0 - 3 1 - - 4 1 1 0 - 4 1 - - 8 526 12 0 - 4 0.0076 - 7 0.0019 - 8 0.901 - 10 0.0019 - 13 0.0342 - 15 0.0019 - 29 0.0019 - 30 0.0057 - 31 0.019 - 41 0.0114 - 42 0.00951 - 46 0.0038 - - 9 37 5 0 - 3 0.027 - 8 0.162 - 9 0.703 - 41 0.0811 - 42 0.027 - - 10 3 1 0 - 10 1 - - 13 15 4 0 - 3 0.0667 - 13 0.8 - 14 0.0667 - 41 0.0667 - - 14 1 1 0 - 14 1 - - 15 5 1 0 - 15 1 - - 20 1 1 0 - 20 1 - - 21 5 3 0 - 0 0.2 - 8 0.6 - 41 0.2 - - 28 1 1 0 - 28 1 - - 31 10 2 0 - 13 0.1 - 31 0.9 - - 39 1 1 0 - 3 1 - - 45 7 1 0 - 46 1 - - 48 2 2 0 - 0 0.5 - 3 0.5 - - 3 1036 24 8 - 0 0.00869 - 2 0.00965 - 3 0.0425 - 4 0.496 - 7 0.0734 - 8 0.0502 - 9 0.000965 - 13 0.00579 - 14 0.000965 - 15 0.029 - 18 0.0463 - 20 0.0299 - 24 0.000965 - 26 0.000965 - 28 0.00579 - 30 0.00483 - 31 0.0029 - 32 0.00193 - 33 0.0029 - 38 0.000965 - 39 0.166 - 41 0.0154 - 42 0.0029 - 45 0.000965 - - 2 4 4 0 - 7 0.25 - 13 0.25 - 28 0.25 - 39 0.25 - - 3 39 6 0 - 4 0.128 - 7 0.385 - 8 0.0256 - 18 0.0769 - 32 0.0256 - 39 0.359 - - 8 34 10 0 - 0 0.0294 - 2 0.0882 - 3 0.0294 - 4 0.5 - 8 0.0882 - 18 0.0294 - 20 0.0882 - 28 0.0294 - 32 0.0294 - 39 0.0882 - - 9 2 2 0 - 0 0.5 - 13 0.5 - - 13 769 21 0 - 0 0.0065 - 2 0.0065 - 3 0.0325 - 4 0.635 - 7 0.078 - 8 0.0611 - 9 0.0013 - 13 0.0026 - 14 0.0013 - 15 0.0351 - 18 0.0572 - 20 0.0364 - 24 0.0013 - 26 0.0013 - 28 0.0052 - 30 0.0065 - 31 0.0039 - 33 0.0039 - 41 0.0195 - 42 0.0039 - 45 0.0013 - - 14 2 2 0 - 2 0.5 - 41 0.5 - - 41 1 1 0 - 13 1 - - 47 184 9 0 - 0 0.0109 - 2 0.00543 - 3 0.0978 - 4 0.0163 - 8 0.00543 - 13 0.00543 - 15 0.0163 - 38 0.00543 - 39 0.837 - - 4 59 13 4 - 0 0.305 - 2 0.0847 - 7 0.186 - 10 0.0169 - 13 0.0678 - 21 0.0339 - 28 0.0678 - 29 0.0678 - 30 0.0169 - 31 0.0339 - 41 0.0508 - 42 0.0169 - 47 0.0508 - - 2 5 2 0 - 0 0.2 - 7 0.8 - - 21 4 2 0 - 0 0.75 - 31 0.25 - - 47 8 5 0 - 2 0.375 - 7 0.25 - 10 0.125 - 29 0.125 - 47 0.125 - - 48 3 3 0 - 0 0.333 - 41 0.333 - 42 0.333 - - 6 14 7 1 - 4 0.143 - 6 0.357 - 7 0.143 - 13 0.0714 - 20 0.0714 - 40 0.0714 - 45 0.143 - - 6 5 3 0 - 4 0.4 - 7 0.4 - 20 0.2 - - 7 72 19 3 - 0 0.222 - 2 0.0139 - 3 0.0278 - 7 0.0278 - 8 0.0278 - 9 0.0139 - 13 0.0694 - 14 0.0833 - 15 0.0278 - 21 0.153 - 22 0.0139 - 28 0.0278 - 29 0.0417 - 30 0.0139 - 31 0.0833 - 33 0.0278 - 41 0.0694 - 42 0.0278 - 47 0.0278 - - 8 21 10 0 - 0 0.0952 - 9 0.0476 - 13 0.0476 - 14 0.0476 - 21 0.286 - 22 0.0476 - 28 0.0476 - 31 0.19 - 33 0.0476 - 41 0.143 - - 13 5 5 0 - 3 0.2 - 7 0.2 - 13 0.2 - 42 0.2 - 47 0.2 - - 21 6 5 0 - 0 0.333 - 8 0.167 - 14 0.167 - 29 0.167 - 41 0.167 - - 8 10450 37 10 - 0 0.257 - 1 0.0022 - 2 0.0624 - 3 0.00545 - 4 0.0268 - 7 0.0371 - 8 0.0275 - 9 0.00191 - 10 0.00383 - 13 0.0362 - 14 0.0615 - 15 0.00766 - 16 0.000287 - 18 0.00287 - 19 0.00957 - 20 0.00268 - 21 0.235 - 22 0.0462 - 23 0.0262 - 24 0.000287 - 26 0.00373 - 28 0.0187 - 29 0.0162 - 30 0.00612 - 31 0.0156 - 32 0.00689 - 33 0.0111 - 37 0.000574 - 39 0.00593 - 40 0.000191 - 41 0.0333 - 42 0.00201 - 43 9.57e-05 - 44 0.000383 - 45 0.0185 - 46 0.000957 - 47 0.00785 - - 2 485 30 0 - 0 0.103 - 2 0.0206 - 3 0.00412 - 4 0.181 - 7 0.146 - 8 0.0701 - 9 0.00412 - 13 0.00619 - 14 0.00206 - 15 0.00825 - 18 0.0247 - 19 0.00206 - 20 0.0309 - 21 0.0577 - 22 0.0186 - 23 0.0144 - 24 0.00206 - 26 0.0165 - 28 0.0227 - 29 0.0124 - 30 0.0206 - 31 0.00619 - 32 0.00412 - 33 0.0144 - 40 0.00206 - 41 0.126 - 42 0.00825 - 45 0.0454 - 46 0.00206 - 47 0.0227 - - 8 227 22 0 - 0 0.0308 - 2 0.0837 - 3 0.0176 - 4 0.348 - 7 0.185 - 8 0.0617 - 10 0.00881 - 18 0.0176 - 19 0.00441 - 20 0.0352 - 23 0.00441 - 26 0.022 - 28 0.00441 - 29 0.0264 - 30 0.0132 - 31 0.00441 - 32 0.00441 - 33 0.00441 - 41 0.0264 - 42 0.00441 - 46 0.00441 - 47 0.0881 - - 9 9 5 0 - 0 0.222 - 2 0.111 - 4 0.444 - 20 0.111 - 28 0.111 - - 10 12 2 0 - 4 0.5 - 18 0.5 - - 23 4 1 0 - 4 1 - - 26 11 6 0 - 0 0.0909 - 4 0.273 - 7 0.364 - 29 0.0909 - 41 0.0909 - 45 0.0909 - - 41 91 20 0 - 0 0.0879 - 2 0.022 - 3 0.011 - 4 0.187 - 7 0.231 - 8 0.022 - 15 0.011 - 18 0.011 - 20 0.011 - 21 0.033 - 22 0.022 - 23 0.022 - 28 0.011 - 29 0.011 - 30 0.011 - 31 0.011 - 41 0.143 - 42 0.022 - 45 0.0879 - 47 0.033 - - 42 4 3 0 - 4 0.5 - 7 0.25 - 21 0.25 - - 46 9 1 0 - 45 1 - - 47 9595 37 0 - 0 0.272 - 1 0.0024 - 2 0.0646 - 3 0.00521 - 4 0.00803 - 7 0.0258 - 8 0.0247 - 9 0.00188 - 10 0.00396 - 13 0.0391 - 14 0.0669 - 15 0.00782 - 16 0.000313 - 18 0.00073 - 19 0.0102 - 20 0.000313 - 21 0.252 - 22 0.0492 - 23 0.0275 - 24 0.000208 - 26 0.00271 - 28 0.0189 - 29 0.0162 - 30 0.00521 - 31 0.0165 - 32 0.00719 - 33 0.0113 - 37 0.000625 - 39 0.00646 - 40 0.000104 - 41 0.0278 - 42 0.00146 - 43 0.000104 - 44 0.000417 - 45 0.0158 - 46 0.000834 - 47 0.005 - - 9 882 28 4 - 0 0.22 - 1 0.00227 - 2 0.0737 - 3 0.0317 - 4 0.0249 - 7 0.0181 - 8 0.0159 - 13 0.0964 - 14 0.0351 - 15 0.00227 - 18 0.00113 - 19 0.0204 - 20 0.00113 - 21 0.339 - 22 0.00113 - 24 0.00113 - 26 0.00227 - 28 0.0147 - 29 0.0238 - 30 0.017 - 31 0.0068 - 32 0.00907 - 33 0.0102 - 34 0.00113 - 41 0.017 - 42 0.00113 - 45 0.00794 - 47 0.00454 - - 2 26 16 0 - 0 0.0769 - 1 0.0385 - 4 0.0385 - 7 0.0385 - 13 0.0385 - 14 0.115 - 19 0.0385 - 21 0.0385 - 28 0.115 - 29 0.0385 - 30 0.0769 - 32 0.0385 - 33 0.0385 - 41 0.154 - 45 0.0769 - 47 0.0385 - - 8 15 7 0 - 4 0.2 - 7 0.4 - 8 0.0667 - 13 0.0667 - 20 0.0667 - 28 0.0667 - 30 0.133 - - 41 7 7 0 - 0 0.143 - 2 0.143 - 4 0.143 - 7 0.143 - 14 0.143 - 28 0.143 - 32 0.143 - - 47 829 27 0 - 0 0.23 - 1 0.00121 - 2 0.0772 - 3 0.0338 - 4 0.0169 - 7 0.00965 - 8 0.0157 - 13 0.1 - 14 0.0326 - 15 0.00241 - 18 0.00121 - 19 0.0193 - 21 0.359 - 22 0.00121 - 24 0.00121 - 26 0.00241 - 28 0.00844 - 29 0.0241 - 30 0.0133 - 31 0.00724 - 32 0.00724 - 33 0.00965 - 34 0.00121 - 41 0.0133 - 42 0.00121 - 45 0.00603 - 47 0.00362 - - 10 101 11 2 - 0 0.0495 - 2 0.0495 - 4 0.277 - 7 0.119 - 8 0.119 - 18 0.158 - 20 0.0792 - 21 0.119 - 29 0.0099 - 42 0.0099 - 46 0.0099 - - 8 29 4 0 - 2 0.0345 - 4 0.552 - 18 0.241 - 20 0.172 - - 47 68 11 0 - 0 0.0735 - 2 0.0588 - 4 0.162 - 7 0.176 - 8 0.176 - 18 0.103 - 20 0.0294 - 21 0.176 - 29 0.0147 - 42 0.0147 - 46 0.0147 - - 13 1069 25 11 - 0 0.0131 - 2 0.0215 - 3 0.836 - 4 0.0187 - 7 0.0159 - 8 0.00935 - 9 0.00187 - 10 0.000935 - 13 0.0337 - 14 0.00281 - 15 0.00468 - 18 0.00281 - 20 0.00468 - 21 0.00468 - 22 0.000935 - 25 0.000935 - 26 0.00187 - 28 0.00374 - 29 0.00187 - 30 0.00281 - 31 0.00468 - 33 0.000935 - 41 0.00655 - 45 0.00281 - 47 0.00187 - - 2 32 12 0 - 2 0.0938 - 4 0.219 - 7 0.125 - 8 0.0938 - 15 0.0625 - 18 0.0312 - 20 0.0938 - 28 0.0312 - 30 0.0625 - 31 0.0625 - 33 0.0312 - 41 0.0938 - - 3 3 3 0 - 4 0.333 - 26 0.333 - 41 0.333 - - 8 23 10 0 - 0 0.304 - 2 0.13 - 3 0.0435 - 4 0.087 - 8 0.0435 - 13 0.13 - 21 0.13 - 41 0.0435 - 45 0.0435 - 47 0.0435 - - 9 4 2 0 - 0 0.25 - 4 0.75 - - 13 11 5 0 - 3 0.364 - 4 0.0909 - 7 0.182 - 8 0.273 - 26 0.0909 - - 21 1 1 0 - 25 1 - - 29 5 3 0 - 3 0.4 - 4 0.2 - 13 0.4 - - 31 13 6 0 - 0 0.154 - 3 0.308 - 4 0.154 - 7 0.0769 - 13 0.231 - 21 0.0769 - - 41 5 3 0 - 7 0.4 - 8 0.2 - 20 0.4 - - 42 2 2 0 - 18 0.5 - 47 0.5 - - 47 967 20 0 - 0 0.00414 - 2 0.0165 - 3 0.913 - 4 0.00207 - 7 0.00724 - 8 0.00207 - 9 0.00207 - 10 0.00103 - 13 0.029 - 14 0.0031 - 15 0.0031 - 18 0.00103 - 21 0.00103 - 22 0.00103 - 28 0.0031 - 29 0.00207 - 30 0.00103 - 31 0.0031 - 41 0.00207 - 45 0.00207 - - 14 13 7 0 - 2 0.0769 - 3 0.538 - 4 0.0769 - 14 0.0769 - 33 0.0769 - 42 0.0769 - 47 0.0769 - - 15 172 19 7 - 0 0.0174 - 2 0.064 - 3 0.0116 - 4 0.279 - 7 0.157 - 8 0.0291 - 15 0.198 - 18 0.0174 - 20 0.0116 - 26 0.00581 - 28 0.0116 - 31 0.0174 - 33 0.0116 - 41 0.0465 - 42 0.00581 - 43 0.00581 - 44 0.00581 - 45 0.0116 - 47 0.093 - - 2 6 4 0 - 4 0.5 - 7 0.167 - 8 0.167 - 41 0.167 - - 3 4 2 0 - 4 0.5 - 20 0.5 - - 8 54 11 0 - 0 0.0185 - 4 0.37 - 7 0.278 - 8 0.037 - 15 0.0185 - 18 0.037 - 26 0.0185 - 33 0.0185 - 41 0.0556 - 45 0.0185 - 47 0.13 - - 13 3 3 0 - 3 0.333 - 8 0.333 - 15 0.333 - - 15 30 10 0 - 2 0.1 - 3 0.0333 - 4 0.433 - 7 0.133 - 8 0.0333 - 15 0.0667 - 28 0.0333 - 33 0.0333 - 45 0.0333 - 47 0.1 - - 41 35 8 0 - 2 0.0286 - 4 0.286 - 7 0.143 - 15 0.286 - 18 0.0286 - 28 0.0286 - 41 0.0857 - 47 0.114 - - 47 39 10 0 - 0 0.0513 - 2 0.179 - 7 0.0513 - 15 0.487 - 31 0.0769 - 41 0.0256 - 42 0.0256 - 43 0.0256 - 44 0.0256 - 47 0.0513 - - 20 2 2 0 - 2 0.5 - 7 0.5 - - 21 3162 36 12 - 0 0.285 - 1 0.00316 - 2 0.038 - 3 0.00506 - 4 0.189 - 7 0.0664 - 8 0.00538 - 9 0.000633 - 13 0.0417 - 14 0.0237 - 15 0.00253 - 16 0.000316 - 18 0.0104 - 19 0.012 - 20 0.012 - 21 0.0904 - 22 0.00285 - 23 0.0038 - 24 0.00158 - 25 0.000316 - 26 0.00633 - 28 0.0266 - 29 0.0256 - 30 0.0139 - 31 0.0202 - 32 0.013 - 33 0.0164 - 35 0.000316 - 37 0.00158 - 41 0.0332 - 42 0.00506 - 43 0.000633 - 44 0.00127 - 45 0.031 - 46 0.000316 - 47 0.0104 - - 7 3 3 0 - 2 0.333 - 13 0.333 - 24 0.333 - - 8 1970 32 0 - 0 0.342 - 1 0.00305 - 2 0.0396 - 3 0.00457 - 4 0.177 - 7 0.0503 - 8 0.00508 - 9 0.000508 - 13 0.0315 - 14 0.0107 - 15 0.00152 - 18 0.00812 - 19 0.0142 - 20 0.00914 - 21 0.0985 - 22 0.00254 - 23 0.00254 - 24 0.00152 - 26 0.00558 - 28 0.0223 - 29 0.0198 - 30 0.0117 - 31 0.0173 - 32 0.0107 - 33 0.0183 - 37 0.00254 - 41 0.0294 - 42 0.00508 - 43 0.00102 - 44 0.00152 - 45 0.0421 - 47 0.0102 - - 9 279 22 0 - 0 0.305 - 1 0.00358 - 2 0.0287 - 3 0.00358 - 4 0.219 - 7 0.0645 - 13 0.0287 - 14 0.0179 - 19 0.00717 - 21 0.0358 - 26 0.0108 - 28 0.0538 - 29 0.0538 - 30 0.0323 - 31 0.0215 - 32 0.0251 - 33 0.0179 - 41 0.0394 - 42 0.0108 - 45 0.00717 - 46 0.00358 - 47 0.0108 - - 10 12 3 0 - 2 0.0833 - 4 0.667 - 18 0.25 - - 13 2 1 0 - 21 1 - - 21 123 19 0 - 0 0.358 - 1 0.00813 - 2 0.0732 - 4 0.0244 - 7 0.0325 - 13 0.0407 - 14 0.0976 - 15 0.00813 - 20 0.00813 - 21 0.0732 - 28 0.0244 - 29 0.0163 - 31 0.0488 - 32 0.0244 - 35 0.00813 - 41 0.0732 - 42 0.0244 - 45 0.0407 - 47 0.0163 - - 22 35 12 0 - 0 0.4 - 2 0.114 - 4 0.143 - 7 0.0286 - 13 0.0571 - 19 0.0286 - 21 0.0286 - 28 0.0571 - 29 0.0286 - 30 0.0286 - 32 0.0286 - 41 0.0571 - - 23 2 1 0 - 47 1 - - 31 380 26 0 - 0 0.1 - 2 0.0316 - 3 0.0158 - 4 0.395 - 7 0.168 - 8 0.0105 - 9 0.00263 - 13 0.0132 - 14 0.00263 - 18 0.0289 - 20 0.05 - 21 0.0368 - 22 0.00526 - 23 0.0132 - 25 0.00263 - 26 0.0132 - 28 0.0184 - 29 0.0184 - 30 0.00526 - 31 0.00526 - 32 0.00526 - 33 0.0105 - 41 0.0211 - 44 0.00263 - 45 0.0105 - 47 0.0132 - - 41 5 4 0 - 0 0.4 - 4 0.2 - 31 0.2 - 45 0.2 - - 45 6 5 0 - 0 0.167 - 4 0.167 - 7 0.333 - 19 0.167 - 45 0.167 - - 47 339 26 0 - 0 0.112 - 1 0.0059 - 2 0.0206 - 4 0.056 - 7 0.0649 - 8 0.00885 - 13 0.145 - 14 0.106 - 15 0.0118 - 16 0.00295 - 18 0.00885 - 19 0.0177 - 21 0.165 - 22 0.0059 - 23 0.0059 - 24 0.00295 - 26 0.00295 - 28 0.0383 - 29 0.0501 - 30 0.0265 - 31 0.0442 - 32 0.0206 - 33 0.0206 - 41 0.0472 - 45 0.0059 - 47 0.00295 - - 22 504 23 6 - 0 0.246 - 2 0.0417 - 3 0.00198 - 4 0.188 - 7 0.0258 - 13 0.0516 - 14 0.0675 - 15 0.00992 - 18 0.00397 - 19 0.0298 - 20 0.00198 - 21 0.101 - 24 0.00198 - 26 0.00595 - 28 0.0417 - 29 0.0218 - 30 0.0357 - 31 0.0198 - 32 0.00397 - 33 0.0159 - 41 0.0397 - 45 0.0179 - 47 0.0258 - - 8 431 21 0 - 0 0.262 - 2 0.0464 - 4 0.213 - 7 0.0255 - 13 0.0441 - 14 0.0534 - 15 0.00464 - 18 0.00464 - 19 0.0255 - 21 0.111 - 24 0.00232 - 26 0.00696 - 28 0.0394 - 29 0.0116 - 30 0.0302 - 31 0.0186 - 32 0.00464 - 33 0.0139 - 41 0.0418 - 45 0.0162 - 47 0.0232 - - 21 5 5 0 - 2 0.2 - 7 0.2 - 14 0.2 - 30 0.2 - 41 0.2 - - 30 3 2 0 - 0 0.667 - 7 0.333 - - 31 18 8 0 - 0 0.389 - 14 0.111 - 15 0.167 - 20 0.0556 - 29 0.111 - 33 0.0556 - 41 0.0556 - 45 0.0556 - - 45 3 2 0 - 4 0.667 - 30 0.333 - - 47 42 13 0 - 0 0.0476 - 3 0.0238 - 13 0.167 - 14 0.19 - 19 0.0952 - 21 0.0714 - 28 0.0714 - 29 0.0952 - 30 0.0714 - 31 0.0476 - 33 0.0238 - 45 0.0238 - 47 0.0714 - - 23 292 18 1 - 0 0.0651 - 2 0.0514 - 3 0.0274 - 4 0.634 - 8 0.0171 - 13 0.0103 - 14 0.00342 - 15 0.00342 - 18 0.0548 - 19 0.00342 - 20 0.0548 - 21 0.0171 - 28 0.00342 - 31 0.00342 - 32 0.00342 - 41 0.0205 - 42 0.00342 - 47 0.024 - - 21 11 4 0 - 2 0.0909 - 4 0.727 - 31 0.0909 - 41 0.0909 - - 24 7 2 0 - 0 0.857 - 21 0.143 - - 26 11 1 0 - 8 1 - - 28 10 7 0 - 2 0.1 - 15 0.1 - 19 0.1 - 21 0.1 - 26 0.3 - 28 0.2 - 45 0.1 - - 29 10 4 0 - 2 0.2 - 13 0.6 - 21 0.1 - 32 0.1 - - 30 47 15 1 - 0 0.447 - 2 0.0213 - 4 0.0426 - 7 0.0213 - 10 0.0213 - 13 0.0426 - 14 0.0213 - 21 0.106 - 22 0.0638 - 28 0.0213 - 31 0.0426 - 32 0.0213 - 41 0.0426 - 45 0.0426 - 47 0.0426 - - 2 3 2 0 - 4 0.667 - 7 0.333 - - 31 750 26 3 - 0 0.145 - 1 0.00133 - 2 0.0187 - 3 0.00267 - 4 0.0187 - 7 0.00933 - 8 0.00267 - 9 0.00133 - 13 0.0373 - 14 0.04 - 15 0.00133 - 19 0.00533 - 20 0.00133 - 21 0.583 - 22 0.028 - 23 0.0107 - 25 0.00133 - 28 0.0187 - 29 0.016 - 30 0.004 - 31 0.004 - 32 0.004 - 33 0.0147 - 41 0.00667 - 45 0.00933 - 47 0.0147 - - 2 19 10 0 - 2 0.0526 - 4 0.211 - 7 0.0526 - 8 0.105 - 14 0.0526 - 15 0.0526 - 21 0.105 - 22 0.0526 - 41 0.0526 - 47 0.263 - - 41 2 2 0 - 4 0.5 - 41 0.5 - - 47 728 24 0 - 0 0.15 - 1 0.00137 - 2 0.0179 - 3 0.00275 - 4 0.0124 - 7 0.00824 - 9 0.00137 - 13 0.0385 - 14 0.0398 - 19 0.00549 - 20 0.00137 - 21 0.598 - 22 0.0275 - 23 0.011 - 25 0.00137 - 28 0.0192 - 29 0.0151 - 30 0.00412 - 31 0.00412 - 32 0.00412 - 33 0.0151 - 41 0.00412 - 45 0.00962 - 47 0.00824 - - 32 2 1 0 - 14 1 - - 37 1 1 0 - 47 1 - - 39 235 16 2 - 2 0.017 - 4 0.66 - 7 0.034 - 8 0.0809 - 9 0.0128 - 13 0.00426 - 18 0.0468 - 20 0.0426 - 28 0.017 - 29 0.00851 - 30 0.00426 - 31 0.0128 - 36 0.0128 - 41 0.034 - 42 0.00851 - 44 0.00426 - - 3 172 15 0 - 2 0.0233 - 4 0.721 - 7 0.0291 - 8 0.0698 - 9 0.00581 - 13 0.00581 - 18 0.0407 - 20 0.0233 - 28 0.0233 - 29 0.0116 - 30 0.00581 - 31 0.0174 - 41 0.00581 - 42 0.0116 - 44 0.00581 - - 8 62 8 0 - 4 0.484 - 7 0.0484 - 8 0.113 - 9 0.0323 - 18 0.0645 - 20 0.0968 - 36 0.0484 - 41 0.113 - - 41 151 10 6 - 2 0.00662 - 3 0.00662 - 8 0.603 - 9 0.0464 - 13 0.0331 - 14 0.00662 - 15 0.232 - 21 0.0464 - 31 0.0132 - 42 0.00662 - - 2 11 4 0 - 8 0.545 - 9 0.273 - 13 0.0909 - 31 0.0909 - - 8 109 4 0 - 8 0.642 - 13 0.0183 - 15 0.321 - 21 0.0183 - - 9 2 1 0 - 9 1 - - 13 4 3 0 - 3 0.25 - 8 0.25 - 13 0.5 - - 21 13 4 0 - 8 0.385 - 9 0.154 - 14 0.0769 - 21 0.385 - - 49 1 1 0 - 2 1 - - 42 10 6 0 - 7 0.1 - 8 0.4 - 9 0.1 - 13 0.2 - 15 0.1 - 46 0.1 - - 45 91 17 2 - 0 0.473 - 1 0.011 - 2 0.0989 - 3 0.011 - 4 0.044 - 7 0.0879 - 8 0.033 - 9 0.011 - 13 0.0549 - 14 0.011 - 18 0.011 - 19 0.011 - 21 0.0769 - 22 0.033 - 28 0.011 - 30 0.011 - 31 0.011 - - 21 18 5 0 - 0 0.722 - 2 0.0556 - 4 0.0556 - 7 0.0556 - 21 0.111 - - 48 7 3 0 - 0 0.429 - 7 0.143 - 13 0.429 - - 46 13 3 0 - 8 0.692 - 9 0.0769 - 41 0.231 - - 47 14411 40 29 - 0 0.326 - 1 0.00291 - 2 0.0278 - 3 0.005 - 4 0.176 - 7 0.0572 - 8 0.0154 - 9 0.000555 - 10 0.000416 - 13 0.043 - 14 0.0509 - 15 0.00638 - 16 0.000416 - 18 0.0164 - 19 0.0131 - 20 0.0133 - 21 0.0505 - 22 0.000833 - 23 0.000139 - 24 0.000971 - 25 0.000208 - 26 0.00465 - 28 0.0271 - 29 0.0232 - 30 0.0121 - 31 0.021 - 32 0.00965 - 33 0.0153 - 34 6.94e-05 - 35 6.94e-05 - 36 0.000347 - 37 0.000625 - 40 0.000139 - 41 0.0389 - 42 0.00527 - 43 0.000208 - 44 0.0018 - 45 0.0184 - 46 0.000833 - 47 0.0134 - - 0 4 3 0 - 2 0.25 - 13 0.5 - 19 0.25 - - 2 4 3 0 - 0 0.5 - 7 0.25 - 29 0.25 - - 3 814 22 0 - 0 0.0111 - 2 0.0111 - 3 0.00614 - 4 0.63 - 7 0.0934 - 8 0.0639 - 9 0.00123 - 13 0.00369 - 14 0.00123 - 15 0.0319 - 18 0.059 - 20 0.0381 - 24 0.00123 - 26 0.00123 - 28 0.00614 - 30 0.00614 - 31 0.00369 - 32 0.00246 - 33 0.00369 - 41 0.0197 - 42 0.00369 - 45 0.00123 - - 4 55 12 0 - 0 0.327 - 2 0.0727 - 7 0.164 - 13 0.0727 - 21 0.0364 - 28 0.0727 - 29 0.0727 - 30 0.0182 - 31 0.0364 - 41 0.0545 - 42 0.0182 - 47 0.0545 - - 6 8 5 0 - 4 0.25 - 7 0.25 - 20 0.125 - 40 0.125 - 45 0.25 - - 7 60 17 0 - 0 0.267 - 2 0.0167 - 3 0.0333 - 7 0.0333 - 8 0.0333 - 13 0.0833 - 14 0.0833 - 15 0.0333 - 21 0.117 - 28 0.0333 - 29 0.0333 - 30 0.0167 - 31 0.1 - 33 0.0333 - 41 0.0167 - 42 0.0333 - 47 0.0333 - - 8 6320 35 0 - 0 0.424 - 1 0.00364 - 2 0.0198 - 3 0.00301 - 4 0.0399 - 7 0.0562 - 8 0.00918 - 9 0.000316 - 10 0.000949 - 13 0.0546 - 14 0.0835 - 15 0.00411 - 16 0.000475 - 18 0.00475 - 19 0.0158 - 20 0.00443 - 21 0.0685 - 22 0.00127 - 23 0.000158 - 24 0.000475 - 26 0.00459 - 28 0.0309 - 29 0.0267 - 30 0.0101 - 31 0.0258 - 32 0.0114 - 33 0.0184 - 37 0.000633 - 40 0.000158 - 41 0.0375 - 42 0.00301 - 44 0.000475 - 45 0.0209 - 46 0.00111 - 47 0.013 - - 9 432 27 0 - 0 0.449 - 1 0.00463 - 2 0.0648 - 3 0.00926 - 4 0.0394 - 7 0.0347 - 8 0.00231 - 13 0.0509 - 14 0.0417 - 15 0.00463 - 18 0.00231 - 19 0.0417 - 20 0.00231 - 21 0.0255 - 24 0.00231 - 26 0.00231 - 28 0.0278 - 29 0.0486 - 30 0.0347 - 31 0.0139 - 32 0.0185 - 33 0.0208 - 34 0.00231 - 41 0.0301 - 42 0.00231 - 45 0.0139 - 47 0.00926 - - 10 72 9 0 - 0 0.0694 - 2 0.0278 - 4 0.361 - 7 0.167 - 18 0.222 - 20 0.111 - 29 0.0139 - 42 0.0139 - 46 0.0139 - - 13 133 22 0 - 0 0.105 - 2 0.0602 - 3 0.0602 - 4 0.128 - 7 0.0902 - 8 0.0752 - 13 0.18 - 14 0.0226 - 15 0.015 - 18 0.0226 - 20 0.0376 - 21 0.0226 - 25 0.00752 - 26 0.015 - 28 0.0226 - 29 0.015 - 30 0.0226 - 31 0.0376 - 33 0.00752 - 41 0.0226 - 45 0.015 - 47 0.015 - - 14 5 5 0 - 4 0.2 - 14 0.2 - 33 0.2 - 42 0.2 - 47 0.2 - - 15 130 17 0 - 0 0.0231 - 2 0.0462 - 4 0.369 - 7 0.2 - 8 0.0385 - 15 0.0308 - 18 0.0231 - 20 0.0154 - 26 0.00769 - 28 0.0154 - 31 0.0231 - 33 0.0154 - 41 0.0385 - 43 0.00769 - 44 0.00769 - 45 0.0154 - 47 0.123 - - 21 2958 36 0 - 0 0.305 - 1 0.00338 - 2 0.0389 - 3 0.00507 - 4 0.2 - 7 0.069 - 8 0.00541 - 9 0.000338 - 13 0.0433 - 14 0.0237 - 15 0.0027 - 16 0.000338 - 18 0.0112 - 19 0.0128 - 20 0.0128 - 21 0.0541 - 22 0.00101 - 23 0.000338 - 24 0.00169 - 25 0.000338 - 26 0.00676 - 28 0.0284 - 29 0.0274 - 30 0.0145 - 31 0.0213 - 32 0.0139 - 33 0.0176 - 35 0.000338 - 37 0.00169 - 41 0.0311 - 42 0.00541 - 43 0.000338 - 44 0.00135 - 45 0.027 - 46 0.000338 - 47 0.0112 - - 22 451 23 0 - 0 0.275 - 2 0.0466 - 3 0.00222 - 4 0.208 - 7 0.0288 - 13 0.0355 - 14 0.071 - 15 0.0111 - 18 0.00443 - 19 0.0333 - 20 0.00222 - 21 0.0244 - 24 0.00222 - 26 0.00665 - 28 0.0466 - 29 0.0244 - 30 0.0399 - 31 0.0222 - 32 0.00443 - 33 0.0177 - 41 0.0443 - 45 0.02 - 47 0.0288 - - 23 286 18 0 - 0 0.0664 - 2 0.0524 - 3 0.028 - 4 0.647 - 8 0.0035 - 13 0.0105 - 14 0.0035 - 15 0.0035 - 18 0.0559 - 19 0.0035 - 20 0.0559 - 21 0.0105 - 28 0.0035 - 31 0.0035 - 32 0.0035 - 41 0.021 - 42 0.0035 - 47 0.0245 - - 24 7 2 0 - 0 0.857 - 21 0.143 - - 28 9 6 0 - 15 0.111 - 19 0.111 - 21 0.111 - 26 0.333 - 28 0.222 - 45 0.111 - - 29 5 4 0 - 2 0.4 - 13 0.2 - 21 0.2 - 32 0.2 - - 30 38 12 0 - 0 0.553 - 4 0.0526 - 7 0.0263 - 13 0.0263 - 14 0.0263 - 21 0.0789 - 28 0.0263 - 31 0.0526 - 32 0.0263 - 41 0.0526 - 45 0.0263 - 47 0.0526 - - 31 286 25 0 - 0 0.381 - 1 0.0035 - 2 0.0105 - 3 0.00699 - 4 0.042 - 7 0.0245 - 8 0.0035 - 9 0.0035 - 13 0.0385 - 14 0.105 - 15 0.0035 - 19 0.014 - 20 0.0035 - 21 0.119 - 22 0.0035 - 25 0.0035 - 28 0.049 - 29 0.042 - 30 0.0105 - 31 0.0105 - 32 0.0105 - 33 0.0385 - 41 0.014 - 45 0.021 - 47 0.0385 - - 32 2 1 0 - 14 1 - - 39 234 16 0 - 2 0.0128 - 4 0.662 - 7 0.0342 - 8 0.0812 - 9 0.0128 - 13 0.00427 - 18 0.047 - 20 0.0427 - 28 0.0171 - 29 0.00855 - 30 0.00427 - 31 0.0128 - 36 0.0128 - 41 0.0342 - 42 0.00855 - 44 0.00427 - - 44 1 1 0 - 3 1 - - 45 74 15 0 - 0 0.581 - 1 0.0135 - 2 0.027 - 3 0.0135 - 4 0.0541 - 7 0.108 - 8 0.0405 - 13 0.0676 - 14 0.0135 - 18 0.0135 - 19 0.0135 - 21 0.0135 - 28 0.0135 - 30 0.0135 - 31 0.0135 - - 48 753 27 0 - 0 0.493 - 1 0.00531 - 2 0.0372 - 3 0.00133 - 4 0.089 - 7 0.0266 - 8 0.00266 - 13 0.0505 - 14 0.0398 - 15 0.00133 - 18 0.0186 - 19 0.00797 - 20 0.00797 - 21 0.0544 - 24 0.00266 - 26 0.00266 - 28 0.0133 - 29 0.0133 - 30 0.0093 - 31 0.00664 - 32 0.00531 - 33 0.0146 - 41 0.0452 - 42 0.0186 - 45 0.0212 - 46 0.00266 - 47 0.0093 - - 49 148 24 0 - 0 0.412 - 1 0.00676 - 2 0.0405 - 3 0.00676 - 4 0.142 - 7 0.027 - 13 0.00676 - 14 0.0203 - 15 0.0135 - 18 0.0135 - 19 0.00676 - 21 0.0405 - 26 0.00676 - 28 0.0608 - 29 0.0135 - 30 0.00676 - 31 0.0405 - 32 0.0135 - 33 0.0135 - 41 0.0473 - 42 0.00676 - 45 0.0203 - 46 0.00676 - 47 0.027 - - 55 268 22 0 - 0 0.31 - 2 0.0373 - 3 0.00373 - 4 0.00746 - 7 0.0187 - 13 0.0224 - 14 0.0261 - 16 0.00373 - 18 0.00373 - 19 0.00746 - 21 0.0299 - 24 0.00373 - 26 0.0149 - 28 0.0299 - 29 0.056 - 30 0.0261 - 31 0.00746 - 33 0.00746 - 41 0.347 - 42 0.0187 - 45 0.00746 - 47 0.0112 - - 57 3 3 0 - 2 0.333 - 13 0.333 - 41 0.333 - - 60 843 26 0 - 0 0.0119 - 2 0.00949 - 3 0.00356 - 4 0.619 - 7 0.051 - 8 0.0605 - 13 0.00356 - 15 0.013 - 16 0.00119 - 18 0.0652 - 19 0.00119 - 20 0.0522 - 21 0.00237 - 28 0.0142 - 29 0.00119 - 30 0.00593 - 31 0.0225 - 32 0.00237 - 33 0.00119 - 36 0.00237 - 41 0.019 - 42 0.0107 - 43 0.00119 - 44 0.0202 - 45 0.00237 - 47 0.00237 - - 48 771 28 1 - 0 0.481 - 1 0.00519 - 2 0.0389 - 3 0.00259 - 4 0.0908 - 7 0.0259 - 8 0.00259 - 13 0.0493 - 14 0.0389 - 15 0.0013 - 18 0.0182 - 19 0.00778 - 20 0.00778 - 21 0.0584 - 22 0.0013 - 24 0.00259 - 26 0.00259 - 28 0.013 - 29 0.013 - 30 0.00908 - 31 0.00649 - 32 0.00519 - 33 0.0143 - 41 0.0441 - 42 0.0182 - 45 0.0298 - 46 0.00259 - 47 0.00908 - - 8 2 2 0 - 14 0.5 - 29 0.5 - - 49 153 24 9 - 0 0.399 - 1 0.00654 - 2 0.0392 - 3 0.00654 - 4 0.137 - 7 0.0261 - 13 0.00654 - 14 0.0196 - 15 0.0131 - 18 0.0131 - 19 0.00654 - 21 0.0588 - 26 0.00654 - 28 0.0588 - 29 0.0131 - 30 0.00654 - 31 0.0392 - 32 0.0131 - 33 0.0131 - 41 0.0523 - 42 0.00654 - 45 0.0261 - 46 0.00654 - 47 0.0261 - - 4 2 2 0 - 7 0.5 - 47 0.5 - - 8 94 19 0 - 0 0.457 - 1 0.0106 - 2 0.0319 - 4 0.17 - 7 0.0106 - 14 0.0106 - 19 0.0106 - 21 0.0532 - 26 0.0106 - 28 0.0638 - 29 0.0213 - 30 0.0106 - 31 0.0319 - 32 0.0213 - 33 0.0106 - 41 0.0319 - 45 0.0213 - 46 0.0106 - 47 0.0106 - - 9 3 1 0 - 28 1 - - 22 4 4 0 - 2 0.25 - 13 0.25 - 31 0.25 - 47 0.25 - - 30 3 3 0 - 14 0.333 - 18 0.333 - 41 0.333 - - 31 27 11 0 - 0 0.37 - 2 0.037 - 3 0.037 - 4 0.185 - 7 0.0741 - 18 0.037 - 21 0.0741 - 31 0.037 - 33 0.037 - 45 0.0741 - 47 0.037 - - 47 5 5 0 - 0 0.2 - 15 0.2 - 21 0.2 - 31 0.2 - 42 0.2 - - 48 3 3 0 - 0 0.333 - 14 0.333 - 15 0.333 - - 55 2 1 0 - 41 1 - - 50 5 4 0 - 8 0.4 - 13 0.2 - 28 0.2 - 46 0.2 - - 55 276 23 7 - 0 0.301 - 2 0.0362 - 3 0.0109 - 4 0.00725 - 7 0.0181 - 13 0.0217 - 14 0.029 - 16 0.00362 - 18 0.00362 - 19 0.00725 - 21 0.0435 - 24 0.00362 - 26 0.0145 - 28 0.029 - 29 0.0543 - 30 0.0254 - 31 0.00725 - 33 0.00725 - 41 0.337 - 42 0.0181 - 44 0.00362 - 45 0.00725 - 47 0.0109 - - 8 141 15 0 - 0 0.206 - 2 0.0355 - 4 0.00709 - 7 0.0213 - 13 0.0142 - 14 0.00709 - 16 0.00709 - 19 0.0142 - 21 0.0567 - 29 0.00709 - 30 0.0142 - 33 0.00709 - 41 0.582 - 45 0.00709 - 47 0.0142 - - 9 97 15 0 - 0 0.423 - 2 0.0309 - 7 0.0206 - 13 0.0309 - 14 0.0309 - 21 0.0309 - 24 0.0103 - 26 0.0412 - 28 0.0515 - 29 0.144 - 30 0.0412 - 33 0.0103 - 41 0.0722 - 42 0.0515 - 47 0.0103 - - 21 8 6 0 - 0 0.25 - 3 0.125 - 13 0.125 - 14 0.25 - 30 0.125 - 45 0.125 - - 22 12 6 0 - 0 0.333 - 2 0.0833 - 21 0.0833 - 28 0.25 - 31 0.167 - 41 0.0833 - - 47 5 4 0 - 0 0.2 - 3 0.4 - 14 0.2 - 44 0.2 - - 48 1 1 0 - 18 1 - - 55 2 2 0 - 2 0.5 - 4 0.5 - - 57 5 5 0 - 2 0.2 - 9 0.2 - 13 0.2 - 31 0.2 - 41 0.2 - - 58 4 3 0 - 0 0.25 - 2 0.5 - 21 0.25 - - 60 843 26 5 - 0 0.0119 - 2 0.00949 - 3 0.00356 - 4 0.619 - 7 0.051 - 8 0.0605 - 13 0.00356 - 15 0.013 - 16 0.00119 - 18 0.0652 - 19 0.00119 - 20 0.0522 - 21 0.00237 - 28 0.0142 - 29 0.00119 - 30 0.00593 - 31 0.0225 - 32 0.00237 - 33 0.00119 - 36 0.00237 - 41 0.019 - 42 0.0107 - 43 0.00119 - 44 0.0202 - 45 0.00237 - 47 0.00237 - - 9 7 5 0 - 0 0.286 - 15 0.143 - 28 0.286 - 41 0.143 - 45 0.143 - - 13 117 18 0 - 0 0.0256 - 2 0.00855 - 4 0.282 - 7 0.308 - 8 0.00855 - 13 0.00855 - 15 0.0855 - 16 0.00855 - 18 0.0427 - 20 0.0598 - 21 0.00855 - 28 0.0256 - 29 0.00855 - 31 0.0171 - 32 0.00855 - 36 0.00855 - 41 0.0342 - 42 0.0513 - - 14 5 4 0 - 4 0.4 - 18 0.2 - 30 0.2 - 43 0.2 - - 21 4 3 0 - 0 0.5 - 21 0.25 - 28 0.25 - - 47 702 21 0 - 0 0.00285 - 2 0.00997 - 3 0.00427 - 4 0.689 - 7 0.00997 - 8 0.0712 - 13 0.00285 - 18 0.0698 - 19 0.00142 - 20 0.0513 - 28 0.00712 - 30 0.0057 - 31 0.0242 - 32 0.00142 - 33 0.00142 - 36 0.00142 - 41 0.0128 - 42 0.00427 - 44 0.0242 - 45 0.00142 - 47 0.00285 - - 64 4 2 0 - 9 0.25 - 13 0.75 - -49 42427 42 32 - 0 0.124 - 1 0.000896 - 2 0.0365 - 3 0.00983 - 4 0.00596 - 5 0.00099 - 6 0.000165 - 7 0.0272 - 8 0.00695 - 9 0.00104 - 10 0.000754 - 12 0.0316 - 13 0.111 - 14 0.0815 - 15 0.04 - 16 0.00189 - 17 9.43e-05 - 18 0.000707 - 19 0.0424 - 20 4.71e-05 - 21 0.054 - 22 0.00429 - 23 0.00099 - 24 0.00568 - 26 0.00653 - 28 0.0383 - 29 0.0368 - 30 0.025 - 31 0.0372 - 32 0.0107 - 33 0.0115 - 34 0.00938 - 35 0.00481 - 37 0.00033 - 40 9.43e-05 - 41 0.112 - 42 0.0079 - 43 0.000754 - 44 0.00113 - 45 0.00988 - 46 0.00189 - 47 0.0968 - - 2 138 19 10 - 2 0.0145 - 3 0.0145 - 4 0.0725 - 7 0.087 - 8 0.029 - 9 0.0145 - 10 0.00725 - 13 0.029 - 14 0.00725 - 19 0.00725 - 21 0.536 - 22 0.0725 - 24 0.00725 - 26 0.00725 - 31 0.00725 - 41 0.0435 - 45 0.00725 - 46 0.00725 - 47 0.029 - - 2 2 2 0 - 2 0.5 - 3 0.5 - - 7 9 1 0 - 7 1 - - 8 5 2 0 - 7 0.6 - 8 0.4 - - 9 2 1 0 - 9 1 - - 10 1 1 0 - 10 1 - - 13 3 2 0 - 4 0.333 - 13 0.667 - - 21 82 7 0 - 8 0.0122 - 13 0.0122 - 21 0.878 - 22 0.0122 - 26 0.0122 - 41 0.061 - 47 0.0122 - - 22 10 2 0 - 14 0.1 - 22 0.9 - - 24 1 1 0 - 24 1 - - 47 20 10 0 - 2 0.05 - 4 0.45 - 8 0.05 - 13 0.05 - 19 0.05 - 21 0.05 - 31 0.05 - 45 0.05 - 46 0.05 - 47 0.15 - - 3 35 11 3 - 2 0.0286 - 4 0.0286 - 7 0.0286 - 14 0.114 - 16 0.0286 - 26 0.371 - 28 0.0286 - 29 0.114 - 30 0.0286 - 31 0.0286 - 41 0.2 - - 13 3 3 0 - 4 0.333 - 26 0.333 - 28 0.333 - - 26 10 4 0 - 7 0.1 - 14 0.1 - 29 0.1 - 41 0.7 - - 47 20 6 0 - 2 0.05 - 14 0.15 - 26 0.55 - 29 0.15 - 30 0.05 - 31 0.05 - - 4 146 26 8 - 0 0.151 - 1 0.00685 - 2 0.00685 - 3 0.0274 - 4 0.00685 - 7 0.349 - 8 0.0205 - 12 0.00685 - 13 0.0342 - 14 0.0616 - 15 0.0137 - 17 0.0274 - 19 0.0205 - 21 0.0479 - 26 0.00685 - 28 0.0342 - 29 0.0137 - 30 0.0205 - 31 0.0342 - 33 0.00685 - 34 0.00685 - 41 0.0274 - 42 0.0137 - 44 0.00685 - 45 0.0274 - 47 0.0205 - - 2 10 6 0 - 0 0.5 - 1 0.1 - 15 0.1 - 21 0.1 - 26 0.1 - 31 0.1 - - 7 9 8 0 - 8 0.111 - 13 0.222 - 15 0.111 - 21 0.111 - 29 0.111 - 31 0.111 - 45 0.111 - 47 0.111 - - 8 4 3 0 - 8 0.25 - 17 0.5 - 45 0.25 - - 9 4 3 0 - 0 0.5 - 13 0.25 - 31 0.25 - - 13 9 7 0 - 3 0.111 - 7 0.111 - 8 0.111 - 12 0.111 - 19 0.222 - 41 0.222 - 45 0.111 - - 21 17 10 0 - 0 0.294 - 7 0.0588 - 13 0.0588 - 14 0.0588 - 21 0.176 - 29 0.0588 - 30 0.0588 - 41 0.0588 - 42 0.118 - 45 0.0588 - - 22 14 6 0 - 0 0.429 - 17 0.143 - 28 0.214 - 31 0.0714 - 33 0.0714 - 47 0.0714 - - 47 77 16 0 - 0 0.0519 - 2 0.013 - 3 0.039 - 4 0.013 - 7 0.636 - 13 0.013 - 14 0.0909 - 19 0.013 - 21 0.026 - 28 0.013 - 30 0.026 - 31 0.013 - 34 0.013 - 41 0.013 - 44 0.013 - 47 0.013 - - 5 2 2 0 - 7 0.5 - 14 0.5 - - 6 14 7 2 - 2 0.0714 - 6 0.5 - 13 0.0714 - 21 0.0714 - 41 0.143 - 42 0.0714 - 45 0.0714 - - 6 7 6 0 - 2 0.143 - 13 0.143 - 21 0.143 - 41 0.286 - 42 0.143 - 45 0.143 - - 47 7 1 0 - 6 1 - - 7 947 30 7 - 0 0.103 - 2 0.0454 - 3 0.00528 - 4 0.0127 - 7 0.0275 - 8 0.0158 - 9 0.0116 - 12 0.00422 - 13 0.13 - 14 0.106 - 15 0.0106 - 19 0.0106 - 21 0.0232 - 22 0.0422 - 23 0.00106 - 24 0.00528 - 28 0.0465 - 29 0.0232 - 30 0.0338 - 31 0.038 - 32 0.0106 - 33 0.0095 - 34 0.00106 - 35 0.00106 - 41 0.229 - 42 0.0106 - 44 0.00106 - 45 0.00317 - 46 0.00317 - 47 0.0348 - - 2 12 7 0 - 2 0.0833 - 21 0.0833 - 28 0.167 - 30 0.25 - 32 0.0833 - 33 0.167 - 47 0.167 - - 4 49 14 0 - 4 0.0408 - 7 0.0204 - 8 0.0612 - 12 0.0204 - 13 0.286 - 14 0.102 - 15 0.0408 - 19 0.0408 - 21 0.0816 - 24 0.0408 - 28 0.102 - 31 0.102 - 41 0.0408 - 47 0.0204 - - 8 3 3 0 - 9 0.333 - 14 0.333 - 47 0.333 - - 10 127 17 0 - 0 0.0551 - 2 0.134 - 3 0.00787 - 7 0.165 - 8 0.0157 - 12 0.0157 - 13 0.00787 - 14 0.0394 - 15 0.00787 - 21 0.0315 - 28 0.0709 - 30 0.0236 - 31 0.0157 - 34 0.00787 - 41 0.299 - 42 0.0394 - 47 0.063 - - 13 5 3 0 - 0 0.4 - 13 0.2 - 31 0.4 - - 21 75 20 0 - 0 0.107 - 2 0.0133 - 4 0.0267 - 7 0.0133 - 8 0.08 - 13 0.12 - 14 0.0667 - 15 0.0133 - 21 0.0533 - 22 0.107 - 24 0.04 - 28 0.0267 - 29 0.0133 - 31 0.0133 - 32 0.0133 - 35 0.0133 - 41 0.0933 - 42 0.0133 - 46 0.0133 - 47 0.16 - - 47 667 27 0 - 0 0.12 - 2 0.0345 - 3 0.006 - 4 0.012 - 7 0.003 - 8 0.006 - 9 0.015 - 12 0.0015 - 13 0.145 - 14 0.124 - 15 0.009 - 19 0.012 - 21 0.0135 - 22 0.048 - 23 0.0015 - 28 0.0375 - 29 0.0315 - 30 0.039 - 31 0.039 - 32 0.012 - 33 0.0105 - 41 0.25 - 42 0.006 - 44 0.0015 - 45 0.0045 - 46 0.003 - 47 0.0135 - - 8 249 26 3 - 0 0.0723 - 2 0.0723 - 3 0.012 - 4 0.0201 - 7 0.0482 - 8 0.0161 - 13 0.12 - 14 0.108 - 15 0.0281 - 19 0.0161 - 21 0.0281 - 22 0.0201 - 23 0.0161 - 24 0.00803 - 28 0.0683 - 29 0.0482 - 30 0.0442 - 31 0.0281 - 32 0.0161 - 33 0.0161 - 41 0.0643 - 42 0.00402 - 44 0.00402 - 45 0.00803 - 46 0.00402 - 47 0.108 - - 2 3 2 0 - 30 0.333 - 41 0.667 - - 13 11 8 0 - 2 0.0909 - 7 0.0909 - 13 0.273 - 28 0.0909 - 29 0.182 - 31 0.0909 - 41 0.0909 - 47 0.0909 - - 21 2 2 0 - 4 0.5 - 28 0.5 - - 9 115 18 1 - 0 0.0696 - 2 0.0348 - 3 0.0783 - 4 0.0435 - 8 0.0087 - 13 0.2 - 14 0.139 - 15 0.0087 - 21 0.0261 - 28 0.0522 - 29 0.191 - 30 0.0174 - 31 0.0087 - 32 0.0261 - 33 0.0174 - 41 0.0087 - 45 0.0174 - 47 0.0522 - - 7 9 6 0 - 0 0.222 - 4 0.111 - 13 0.111 - 14 0.333 - 28 0.111 - 45 0.111 - - 10 136 9 1 - 2 0.00735 - 4 0.00735 - 7 0.934 - 13 0.00735 - 14 0.00735 - 18 0.00735 - 19 0.00735 - 33 0.00735 - 41 0.0147 - - 2 1 1 0 - 18 1 - - 11 6 1 0 - 47 1 - - 13 104 21 2 - 0 0.0577 - 2 0.0481 - 3 0.0481 - 4 0.0865 - 7 0.0577 - 8 0.135 - 13 0.0865 - 14 0.0385 - 18 0.00962 - 19 0.0192 - 21 0.00962 - 26 0.0288 - 28 0.0577 - 29 0.0385 - 30 0.125 - 31 0.0577 - 32 0.00962 - 33 0.00962 - 34 0.00962 - 41 0.0577 - 42 0.00962 - - 7 12 8 0 - 0 0.25 - 2 0.0833 - 8 0.0833 - 19 0.0833 - 21 0.0833 - 29 0.0833 - 41 0.25 - 42 0.0833 - - 26 3 3 0 - 14 0.333 - 28 0.333 - 30 0.333 - - 14 6 3 0 - 3 0.333 - 13 0.5 - 41 0.167 - - 15 28 4 0 - 15 0.0714 - 18 0.0357 - 45 0.0714 - 47 0.821 - - 17 5 4 0 - 0 0.2 - 7 0.2 - 31 0.2 - 47 0.4 - - 19 7 4 0 - 3 0.143 - 14 0.571 - 34 0.143 - 45 0.143 - - 21 18349 40 5 - 0 0.129 - 1 0.000872 - 2 0.038 - 3 0.00283 - 4 0.00474 - 5 0.00114 - 7 0.0186 - 8 0.0055 - 9 0.000708 - 10 0.00125 - 12 0.0355 - 13 0.106 - 14 0.0861 - 15 0.0422 - 16 0.00202 - 18 0.00049 - 19 0.0463 - 20 5.45e-05 - 21 0.0809 - 22 0.00665 - 23 0.00196 - 24 0.00501 - 26 0.00605 - 28 0.0338 - 29 0.0305 - 30 0.0215 - 31 0.0337 - 32 0.00948 - 33 0.0101 - 34 0.0104 - 35 0.00534 - 37 0.000381 - 40 0.000109 - 41 0.105 - 42 0.00741 - 43 0.000708 - 44 0.00109 - 45 0.00981 - 46 0.00191 - 47 0.0966 - - 2 72 20 0 - 0 0.125 - 2 0.0417 - 4 0.0417 - 8 0.0139 - 13 0.125 - 14 0.111 - 15 0.0139 - 19 0.0556 - 21 0.0694 - 22 0.0278 - 23 0.0139 - 28 0.0556 - 30 0.0556 - 31 0.0556 - 33 0.0139 - 40 0.0139 - 41 0.0694 - 42 0.0278 - 45 0.0278 - 47 0.0417 - - 21 918 33 0 - 0 0.0915 - 2 0.0447 - 3 0.00109 - 4 0.00871 - 7 0.0229 - 8 0.012 - 9 0.00109 - 10 0.00763 - 12 0.0272 - 13 0.127 - 14 0.0915 - 15 0.0196 - 16 0.00218 - 18 0.00109 - 19 0.0272 - 21 0.0664 - 24 0.0185 - 26 0.00218 - 28 0.0566 - 29 0.037 - 30 0.0403 - 31 0.0632 - 32 0.0174 - 33 0.0153 - 34 0.00436 - 35 0.00109 - 41 0.0436 - 42 0.00871 - 43 0.00327 - 44 0.00218 - 45 0.0251 - 46 0.00436 - 47 0.105 - - 22 11 7 0 - 2 0.182 - 13 0.0909 - 19 0.0909 - 24 0.0909 - 28 0.273 - 31 0.182 - 47 0.0909 - - 26 2 2 0 - 2 0.5 - 29 0.5 - - 47 17337 40 0 - 0 0.131 - 1 0.000923 - 2 0.0375 - 3 0.00294 - 4 0.00438 - 5 0.00121 - 7 0.0185 - 8 0.00513 - 9 0.000692 - 10 0.000923 - 12 0.0362 - 13 0.105 - 14 0.0858 - 15 0.0435 - 16 0.00202 - 18 0.000461 - 19 0.0473 - 20 5.77e-05 - 21 0.0817 - 22 0.00692 - 23 0.00202 - 24 0.00427 - 26 0.00629 - 28 0.0322 - 29 0.0302 - 30 0.0204 - 31 0.032 - 32 0.00911 - 33 0.00981 - 34 0.0108 - 35 0.00559 - 37 0.000404 - 40 5.77e-05 - 41 0.109 - 42 0.00727 - 43 0.000577 - 44 0.00104 - 45 0.00894 - 46 0.00179 - 47 0.0964 - - 22 773 27 5 - 0 0.0414 - 1 0.00129 - 2 0.0388 - 3 0.00259 - 4 0.0233 - 7 0.0103 - 8 0.00647 - 12 0.0155 - 13 0.364 - 14 0.0893 - 15 0.0168 - 18 0.00129 - 19 0.0142 - 21 0.0349 - 24 0.00776 - 26 0.0194 - 28 0.0699 - 29 0.066 - 30 0.0401 - 31 0.0375 - 32 0.0233 - 33 0.022 - 35 0.00259 - 41 0.00906 - 42 0.00388 - 45 0.00259 - 47 0.0362 - - 2 10 6 0 - 2 0.2 - 14 0.1 - 26 0.2 - 32 0.2 - 33 0.1 - 41 0.2 - - 7 39 17 0 - 0 0.282 - 2 0.0513 - 4 0.0256 - 7 0.0256 - 8 0.0256 - 12 0.0769 - 13 0.128 - 14 0.0513 - 15 0.0513 - 19 0.0513 - 26 0.0769 - 28 0.0256 - 29 0.0256 - 32 0.0256 - 41 0.0256 - 42 0.0256 - 47 0.0256 - - 8 4 3 0 - 28 0.25 - 41 0.25 - 47 0.5 - - 21 119 22 0 - 0 0.0504 - 1 0.0084 - 2 0.0756 - 4 0.0336 - 7 0.0336 - 12 0.0168 - 13 0.0672 - 14 0.0672 - 15 0.0252 - 19 0.0168 - 21 0.134 - 24 0.0168 - 26 0.0252 - 28 0.109 - 29 0.0084 - 30 0.0588 - 31 0.0588 - 32 0.0252 - 41 0.0168 - 42 0.0168 - 45 0.0168 - 47 0.118 - - 47 601 24 0 - 0 0.025 - 2 0.0283 - 3 0.00333 - 4 0.0216 - 7 0.00499 - 8 0.00666 - 12 0.0116 - 13 0.446 - 14 0.0965 - 15 0.0133 - 18 0.00166 - 19 0.0116 - 21 0.0183 - 24 0.00666 - 26 0.0116 - 28 0.0649 - 29 0.0815 - 30 0.0399 - 31 0.0366 - 32 0.02 - 33 0.0266 - 35 0.00333 - 41 0.00166 - 47 0.0183 - - 23 76 21 2 - 0 0.184 - 2 0.0263 - 3 0.0132 - 4 0.0921 - 7 0.0395 - 12 0.0263 - 13 0.0789 - 14 0.0658 - 18 0.0132 - 19 0.0395 - 21 0.0132 - 26 0.0132 - 28 0.0132 - 29 0.0526 - 30 0.0132 - 31 0.0395 - 32 0.0132 - 33 0.0263 - 41 0.105 - 42 0.0395 - 47 0.0921 - - 21 35 14 0 - 0 0.0571 - 2 0.0571 - 3 0.0286 - 4 0.143 - 13 0.0857 - 14 0.0571 - 18 0.0286 - 19 0.0571 - 21 0.0286 - 29 0.0571 - 30 0.0286 - 41 0.143 - 42 0.0857 - 47 0.143 - - 47 36 15 0 - 0 0.306 - 4 0.0278 - 7 0.0556 - 12 0.0556 - 13 0.0833 - 14 0.0833 - 19 0.0278 - 26 0.0278 - 28 0.0278 - 29 0.0556 - 31 0.0833 - 32 0.0278 - 33 0.0556 - 41 0.0278 - 47 0.0556 - - 24 97 16 1 - 0 0.144 - 2 0.0103 - 4 0.0206 - 8 0.0206 - 9 0.0103 - 13 0.134 - 14 0.0928 - 19 0.0309 - 21 0.0412 - 28 0.155 - 29 0.134 - 30 0.0722 - 31 0.0309 - 32 0.0206 - 33 0.0515 - 41 0.0309 - - 21 3 3 0 - 21 0.333 - 30 0.333 - 33 0.333 - - 26 19 7 2 - 3 0.526 - 8 0.0526 - 13 0.158 - 14 0.0526 - 21 0.105 - 30 0.0526 - 31 0.0526 - - 3 11 2 0 - 3 0.909 - 14 0.0909 - - 13 3 1 0 - 13 1 - - 28 9 5 0 - 2 0.111 - 21 0.111 - 26 0.111 - 41 0.556 - 42 0.111 - - 31 2 2 0 - 28 0.5 - 30 0.5 - - 37 3 2 0 - 28 0.333 - 47 0.667 - - 41 6 3 0 - 7 0.167 - 13 0.167 - 21 0.667 - - 42 2 2 0 - 21 0.5 - 31 0.5 - - 45 5 4 0 - 0 0.4 - 13 0.2 - 14 0.2 - 42 0.2 - - 47 19808 40 27 - 0 0.133 - 1 0.000959 - 2 0.0361 - 3 0.00979 - 4 0.00464 - 5 0.00106 - 7 0.022 - 8 0.00687 - 9 0.000808 - 10 0.000353 - 12 0.0339 - 13 0.105 - 14 0.0777 - 15 0.0428 - 16 0.00202 - 18 0.000757 - 19 0.0454 - 20 5.05e-05 - 21 0.0318 - 22 0.000252 - 23 5.05e-05 - 24 0.00596 - 26 0.00651 - 28 0.0409 - 29 0.0394 - 30 0.0268 - 31 0.0399 - 32 0.0114 - 33 0.0123 - 34 0.01 - 35 0.00515 - 37 0.000353 - 40 0.000101 - 41 0.12 - 42 0.00838 - 43 0.000808 - 44 0.00121 - 45 0.0105 - 46 0.00202 - 47 0.104 - - 2 16 11 0 - 3 0.0625 - 8 0.0625 - 13 0.0625 - 14 0.0625 - 19 0.0625 - 21 0.125 - 31 0.0625 - 41 0.125 - 45 0.0625 - 46 0.0625 - 47 0.25 - - 3 23 10 0 - 4 0.0435 - 7 0.0435 - 14 0.174 - 16 0.0435 - 26 0.087 - 28 0.0435 - 29 0.174 - 30 0.0435 - 31 0.0435 - 41 0.304 - - 4 91 25 0 - 0 0.242 - 1 0.011 - 2 0.011 - 3 0.044 - 4 0.011 - 7 0.022 - 8 0.033 - 12 0.011 - 13 0.0549 - 14 0.0989 - 15 0.022 - 19 0.033 - 21 0.0549 - 26 0.011 - 28 0.0549 - 29 0.022 - 30 0.033 - 31 0.0549 - 33 0.011 - 34 0.011 - 41 0.044 - 42 0.022 - 44 0.011 - 45 0.044 - 47 0.033 - - 6 6 5 0 - 2 0.167 - 13 0.167 - 41 0.333 - 42 0.167 - 45 0.167 - - 7 750 29 0 - 0 0.131 - 2 0.0453 - 3 0.00667 - 4 0.004 - 7 0.0347 - 8 0.0187 - 9 0.00267 - 12 0.00533 - 13 0.0747 - 14 0.056 - 15 0.0133 - 19 0.0133 - 21 0.024 - 22 0.00133 - 24 0.00667 - 28 0.0587 - 29 0.0293 - 30 0.0427 - 31 0.048 - 32 0.0133 - 33 0.012 - 34 0.00133 - 35 0.00133 - 41 0.289 - 42 0.0133 - 44 0.00133 - 45 0.004 - 46 0.004 - 47 0.044 - - 8 223 25 0 - 0 0.0807 - 2 0.0583 - 3 0.0135 - 4 0.00448 - 7 0.0404 - 8 0.0179 - 13 0.13 - 14 0.112 - 15 0.0269 - 19 0.0179 - 21 0.0314 - 22 0.00448 - 24 0.00897 - 28 0.0673 - 29 0.0538 - 30 0.0493 - 31 0.0314 - 32 0.0179 - 33 0.0179 - 41 0.0717 - 42 0.00448 - 44 0.00448 - 45 0.00897 - 46 0.00448 - 47 0.121 - - 9 67 16 0 - 0 0.119 - 2 0.0299 - 4 0.0149 - 13 0.0597 - 14 0.0746 - 15 0.0149 - 21 0.0299 - 28 0.0896 - 29 0.328 - 30 0.0299 - 31 0.0149 - 32 0.0448 - 33 0.0299 - 41 0.0149 - 45 0.0149 - 47 0.0896 - - 10 8 7 0 - 4 0.125 - 13 0.125 - 14 0.125 - 18 0.125 - 19 0.125 - 33 0.125 - 41 0.25 - - 11 6 1 0 - 47 1 - - 13 69 19 0 - 0 0.087 - 2 0.029 - 3 0.029 - 7 0.0145 - 8 0.0435 - 13 0.116 - 14 0.058 - 18 0.0145 - 19 0.029 - 21 0.0145 - 28 0.087 - 29 0.058 - 30 0.188 - 31 0.087 - 32 0.0145 - 33 0.0145 - 34 0.0145 - 41 0.087 - 42 0.0145 - - 14 4 2 0 - 13 0.75 - 41 0.25 - - 15 27 4 0 - 15 0.037 - 18 0.037 - 45 0.0741 - 47 0.852 - - 17 4 3 0 - 0 0.25 - 31 0.25 - 47 0.5 - - 19 7 4 0 - 3 0.143 - 14 0.571 - 34 0.143 - 45 0.143 - - 21 16535 40 0 - 0 0.143 - 1 0.000968 - 2 0.0372 - 3 0.00302 - 4 0.00423 - 5 0.00127 - 7 0.0161 - 8 0.00593 - 9 0.000786 - 10 0.000363 - 12 0.0394 - 13 0.102 - 14 0.0788 - 15 0.0469 - 16 0.00224 - 18 0.000544 - 19 0.0513 - 20 6.05e-05 - 21 0.0339 - 22 0.000181 - 23 6.05e-05 - 24 0.00538 - 26 0.00659 - 28 0.0374 - 29 0.0337 - 30 0.0238 - 31 0.0374 - 32 0.0105 - 33 0.0112 - 34 0.0116 - 35 0.00593 - 37 0.000423 - 40 0.000121 - 41 0.117 - 42 0.00816 - 43 0.000786 - 44 0.00121 - 45 0.0107 - 46 0.00212 - 47 0.107 - - 22 466 26 0 - 0 0.0687 - 1 0.00215 - 2 0.0429 - 4 0.00858 - 7 0.0172 - 8 0.00644 - 12 0.0258 - 13 0.0987 - 14 0.088 - 15 0.0279 - 18 0.00215 - 19 0.0236 - 21 0.0236 - 24 0.0129 - 26 0.0322 - 28 0.116 - 29 0.109 - 30 0.0665 - 31 0.0622 - 32 0.0386 - 33 0.0365 - 35 0.00429 - 41 0.015 - 42 0.00644 - 45 0.00429 - 47 0.0601 - - 23 72 20 0 - 0 0.194 - 2 0.0278 - 3 0.0139 - 4 0.0833 - 12 0.0278 - 13 0.0833 - 14 0.0694 - 18 0.0139 - 19 0.0417 - 21 0.0139 - 26 0.0139 - 28 0.0139 - 29 0.0556 - 30 0.0139 - 31 0.0417 - 32 0.0139 - 33 0.0278 - 41 0.111 - 42 0.0417 - 47 0.0972 - - 24 90 14 0 - 0 0.156 - 4 0.0111 - 8 0.0111 - 13 0.133 - 14 0.1 - 19 0.0333 - 21 0.0333 - 28 0.156 - 29 0.144 - 30 0.0778 - 31 0.0333 - 32 0.0222 - 33 0.0556 - 41 0.0333 - - 26 2 2 0 - 30 0.5 - 31 0.5 - - 28 8 4 0 - 2 0.125 - 21 0.125 - 41 0.625 - 42 0.125 - - 31 2 2 0 - 28 0.5 - 30 0.5 - - 37 3 2 0 - 28 0.333 - 47 0.667 - - 45 4 3 0 - 0 0.5 - 13 0.25 - 14 0.25 - - 48 5 4 0 - 0 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 347 26 0 - 0 0.0519 - 2 0.0202 - 4 0.00288 - 7 0.0202 - 8 0.0144 - 10 0.00288 - 13 0.15 - 14 0.098 - 15 0.0144 - 16 0.00288 - 18 0.00288 - 19 0.0173 - 21 0.0288 - 24 0.0231 - 28 0.0778 - 29 0.0605 - 30 0.0663 - 31 0.107 - 32 0.0288 - 33 0.0403 - 34 0.00288 - 41 0.0951 - 42 0.0173 - 44 0.00288 - 45 0.0115 - 47 0.0403 - - 55 960 29 0 - 0 0.026 - 1 0.00104 - 2 0.0177 - 3 0.132 - 4 0.00208 - 7 0.12 - 8 0.00417 - 9 0.00104 - 13 0.155 - 14 0.0521 - 15 0.0354 - 16 0.00104 - 19 0.00729 - 21 0.00833 - 24 0.00833 - 26 0.00104 - 28 0.0156 - 29 0.0667 - 30 0.00938 - 31 0.0406 - 32 0.00313 - 33 0.00208 - 34 0.00313 - 35 0.00104 - 41 0.142 - 42 0.00313 - 43 0.00313 - 45 0.00938 - 47 0.128 - - 60 5 4 0 - 0 0.2 - 28 0.2 - 29 0.4 - 33 0.2 - - 48 5 4 0 - 0 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 357 27 2 - 0 0.0504 - 2 0.0224 - 4 0.0028 - 7 0.028 - 8 0.014 - 10 0.0028 - 13 0.148 - 14 0.098 - 15 0.014 - 16 0.0028 - 18 0.0028 - 19 0.0168 - 21 0.028 - 24 0.0252 - 26 0.0028 - 28 0.0756 - 29 0.0588 - 30 0.0644 - 31 0.104 - 32 0.028 - 33 0.0392 - 34 0.0028 - 41 0.0924 - 42 0.0196 - 44 0.0028 - 45 0.014 - 47 0.0392 - - 21 15 6 0 - 2 0.133 - 14 0.0667 - 21 0.0667 - 28 0.0667 - 31 0.0667 - 41 0.6 - - 41 3 3 0 - 13 0.333 - 14 0.333 - 42 0.333 - - 55 962 29 6 - 0 0.026 - 1 0.00104 - 2 0.0177 - 3 0.132 - 4 0.00208 - 7 0.121 - 8 0.00416 - 9 0.00104 - 13 0.156 - 14 0.052 - 15 0.0353 - 16 0.00104 - 19 0.00728 - 21 0.00832 - 24 0.00832 - 26 0.00104 - 28 0.0156 - 29 0.0665 - 30 0.00936 - 31 0.0405 - 32 0.00312 - 33 0.00208 - 34 0.00312 - 35 0.00104 - 41 0.141 - 42 0.00312 - 43 0.00312 - 45 0.00936 - 47 0.128 - - 6 1 1 0 - 30 1 - - 7 114 18 0 - 0 0.0263 - 2 0.00877 - 3 0.14 - 7 0.184 - 9 0.00877 - 13 0.132 - 14 0.0439 - 15 0.0614 - 21 0.0175 - 26 0.00877 - 29 0.0351 - 30 0.00877 - 31 0.0439 - 34 0.00877 - 35 0.00877 - 41 0.132 - 45 0.0263 - 47 0.105 - - 9 39 13 0 - 0 0.0769 - 2 0.0256 - 7 0.0769 - 13 0.0513 - 15 0.0256 - 24 0.0256 - 28 0.103 - 29 0.41 - 30 0.0256 - 31 0.0769 - 33 0.0256 - 41 0.0513 - 47 0.0256 - - 21 527 25 0 - 0 0.0266 - 2 0.0152 - 3 0.108 - 4 0.0038 - 7 0.0892 - 8 0.00759 - 13 0.186 - 14 0.0455 - 15 0.0493 - 16 0.0019 - 19 0.00759 - 21 0.0114 - 24 0.0133 - 28 0.00759 - 29 0.0531 - 30 0.00569 - 31 0.055 - 32 0.0038 - 33 0.0019 - 34 0.0038 - 41 0.108 - 42 0.0019 - 43 0.0038 - 45 0.0114 - 47 0.178 - - 22 269 17 0 - 0 0.0186 - 1 0.00372 - 2 0.0112 - 3 0.201 - 7 0.16 - 13 0.123 - 14 0.0743 - 19 0.0112 - 28 0.026 - 29 0.052 - 30 0.0112 - 31 0.00743 - 32 0.00372 - 41 0.227 - 42 0.00743 - 43 0.00372 - 47 0.0595 - - 47 5 3 0 - 2 0.6 - 13 0.2 - 14 0.2 - - 57 3 3 0 - 7 0.333 - 21 0.333 - 47 0.333 - - 60 5 4 0 - 0 0.2 - 28 0.2 - 29 0.4 - 33 0.2 - -50 1035 26 5 - 0 0.0058 - 2 0.0213 - 7 0.0174 - 8 0.0232 - 13 0.111 - 14 0.0889 - 15 0.0193 - 16 0.00193 - 19 0.00193 - 21 0.382 - 22 0.00193 - 24 0.00193 - 26 0.00483 - 28 0.00773 - 29 0.0058 - 30 0.00966 - 31 0.00773 - 32 0.00386 - 33 0.00773 - 41 0.222 - 42 0.0174 - 43 0.00193 - 44 0.00193 - 45 0.00193 - 46 0.00966 - 47 0.0213 - - 2 22 4 0 - 13 0.227 - 14 0.0455 - 22 0.0455 - 41 0.682 - - 7 223 5 3 - 7 0.00897 - 13 0.00897 - 14 0.00448 - 21 0.928 - 41 0.0493 - - 7 2 2 0 - 14 0.5 - 41 0.5 - - 21 11 2 0 - 13 0.182 - 41 0.818 - - 47 209 2 0 - 7 0.00957 - 21 0.99 - - 21 472 24 5 - 0 0.00636 - 2 0.0466 - 7 0.0275 - 8 0.0254 - 13 0.106 - 14 0.0932 - 15 0.0212 - 16 0.00212 - 19 0.00212 - 21 0.373 - 24 0.00212 - 28 0.00847 - 29 0.00636 - 30 0.0106 - 31 0.00847 - 32 0.00424 - 33 0.00847 - 41 0.189 - 42 0.0191 - 43 0.00212 - 44 0.00212 - 45 0.00212 - 46 0.0106 - 47 0.0233 - - 7 206 14 0 - 7 0.00485 - 8 0.0146 - 13 0.117 - 14 0.0922 - 15 0.00971 - 21 0.612 - 28 0.00485 - 29 0.00485 - 30 0.00485 - 31 0.00485 - 32 0.00971 - 41 0.0874 - 42 0.0243 - 46 0.00971 - - 8 4 3 0 - 0 0.25 - 8 0.5 - 33 0.25 - - 21 174 21 0 - 0 0.0115 - 7 0.00575 - 8 0.0402 - 13 0.149 - 14 0.144 - 15 0.046 - 16 0.00575 - 19 0.00575 - 24 0.00575 - 28 0.0172 - 29 0.0115 - 30 0.023 - 31 0.0172 - 33 0.0172 - 41 0.391 - 42 0.0172 - 43 0.00575 - 44 0.00575 - 45 0.00575 - 46 0.0172 - 47 0.0575 - - 26 5 3 0 - 41 0.6 - 42 0.2 - 47 0.2 - - 47 83 3 0 - 2 0.265 - 7 0.133 - 21 0.602 - - 28 5 1 0 - 26 1 - - 47 302 24 2 - 0 0.00993 - 7 0.00662 - 8 0.0397 - 13 0.189 - 14 0.152 - 15 0.0331 - 16 0.00331 - 19 0.00331 - 21 0.00993 - 22 0.00331 - 24 0.00331 - 28 0.0132 - 29 0.00993 - 30 0.0166 - 31 0.0132 - 32 0.00662 - 33 0.0132 - 41 0.381 - 42 0.0298 - 43 0.00331 - 44 0.00331 - 45 0.00331 - 46 0.0166 - 47 0.0364 - - 2 22 4 0 - 13 0.227 - 14 0.0455 - 22 0.0455 - 41 0.682 - - 7 15 4 0 - 13 0.133 - 14 0.0667 - 21 0.0667 - 41 0.733 - -51 1504 36 26 - 0 0.00399 - 2 0.0259 - 3 0.0153 - 4 0.000665 - 6 0.000665 - 7 0.118 - 8 0.00798 - 9 0.00266 - 10 0.000665 - 13 0.0465 - 14 0.0226 - 15 0.0426 - 16 0.00199 - 19 0.00266 - 21 0.0326 - 22 0.000665 - 24 0.00133 - 25 0.00864 - 27 0.00332 - 28 0.0166 - 29 0.00399 - 30 0.000665 - 31 0.00399 - 32 0.00332 - 33 0.00199 - 34 0.00798 - 35 0.00665 - 37 0.00798 - 40 0.00532 - 41 0.0951 - 42 0.0864 - 43 0.00465 - 44 0.00598 - 45 0.0598 - 46 0.00332 - 47 0.347 - - 2 50 6 0 - 13 0.14 - 14 0.02 - 41 0.24 - 42 0.04 - 45 0.02 - 47 0.54 - - 4 3 2 0 - 7 0.667 - 28 0.333 - - 7 7 5 0 - 2 0.143 - 35 0.286 - 41 0.143 - 45 0.143 - 47 0.286 - - 8 5 4 0 - 4 0.2 - 7 0.4 - 21 0.2 - 47 0.2 - - 21 48 11 0 - 2 0.229 - 7 0.167 - 10 0.0208 - 21 0.146 - 28 0.0208 - 35 0.0208 - 37 0.0833 - 41 0.0417 - 42 0.0208 - 45 0.0417 - 47 0.208 - - 35 4 4 0 - 2 0.25 - 21 0.25 - 42 0.25 - 43 0.25 - - 40 3 2 0 - 15 0.667 - 27 0.333 - - 41 96 15 8 - 0 0.0104 - 3 0.167 - 6 0.0104 - 8 0.0521 - 13 0.156 - 14 0.0417 - 15 0.323 - 16 0.0312 - 19 0.0312 - 21 0.0938 - 27 0.0417 - 28 0.0104 - 29 0.0104 - 30 0.0104 - 43 0.0104 - - 2 4 2 0 - 13 0.75 - 28 0.25 - - 45 2 2 0 - 19 0.5 - 29 0.5 - - 49 7 6 0 - 8 0.143 - 13 0.143 - 19 0.143 - 21 0.286 - 27 0.143 - 43 0.143 - - 55 48 9 0 - 3 0.312 - 8 0.0208 - 13 0.146 - 14 0.0208 - 15 0.292 - 16 0.0417 - 19 0.0208 - 21 0.0833 - 27 0.0625 - - 57 16 2 0 - 8 0.0625 - 15 0.938 - - 64 6 4 0 - 0 0.167 - 8 0.167 - 13 0.5 - 30 0.167 - - 69 2 2 0 - 3 0.5 - 6 0.5 - - 71 3 2 0 - 8 0.333 - 21 0.667 - - 42 78 15 4 - 3 0.0128 - 8 0.0128 - 13 0.218 - 14 0.167 - 15 0.269 - 21 0.0385 - 25 0.103 - 28 0.0128 - 29 0.0128 - 31 0.0385 - 32 0.0128 - 33 0.0128 - 43 0.0513 - 46 0.0128 - 47 0.0256 - - 45 24 6 0 - 13 0.125 - 14 0.125 - 15 0.5 - 21 0.0417 - 33 0.0417 - 43 0.167 - - 55 20 10 0 - 3 0.05 - 8 0.05 - 13 0.05 - 14 0.1 - 15 0.15 - 25 0.3 - 28 0.05 - 29 0.05 - 31 0.15 - 46 0.05 - - 62 19 3 0 - 13 0.632 - 14 0.211 - 15 0.158 - - 69 5 3 0 - 14 0.2 - 25 0.4 - 47 0.4 - - 45 37 5 0 - 41 0.0811 - 42 0.649 - 43 0.027 - 44 0.0541 - 47 0.189 - - 47 495 24 19 - 0 0.00404 - 2 0.0283 - 3 0.00202 - 7 0.178 - 13 0.0242 - 14 0.00606 - 15 0.00202 - 21 0.0121 - 24 0.00202 - 28 0.0202 - 29 0.00404 - 31 0.00202 - 32 0.00404 - 33 0.00202 - 34 0.0121 - 35 0.00202 - 37 0.00606 - 40 0.00404 - 41 0.0444 - 42 0.0525 - 44 0.00606 - 45 0.0525 - 46 0.00202 - 47 0.527 - - 2 42 5 0 - 13 0.119 - 41 0.19 - 42 0.0238 - 45 0.0238 - 47 0.643 - - 4 3 2 0 - 7 0.667 - 28 0.333 - - 21 24 7 0 - 2 0.0833 - 7 0.292 - 21 0.0417 - 28 0.0417 - 41 0.0417 - 45 0.0833 - 47 0.417 - - 41 2 2 0 - 13 0.5 - 21 0.5 - - 42 4 3 0 - 13 0.25 - 32 0.25 - 47 0.5 - - 45 8 2 0 - 44 0.125 - 47 0.875 - - 48 41 8 0 - 0 0.0244 - 7 0.439 - 21 0.0488 - 28 0.0244 - 37 0.0488 - 42 0.0244 - 45 0.0488 - 47 0.341 - - 49 47 8 0 - 2 0.0851 - 7 0.255 - 28 0.0213 - 37 0.0213 - 41 0.0638 - 42 0.0213 - 45 0.0213 - 47 0.511 - - 51 5 3 0 - 7 0.2 - 42 0.6 - 47 0.2 - - 52 7 3 0 - 40 0.143 - 45 0.429 - 47 0.429 - - 55 145 12 0 - 2 0.0138 - 7 0.166 - 14 0.0069 - 29 0.0069 - 33 0.0069 - 34 0.0414 - 35 0.0069 - 41 0.0276 - 42 0.0828 - 44 0.0069 - 45 0.0483 - 47 0.586 - - 57 55 15 0 - 0 0.0182 - 3 0.0182 - 7 0.127 - 13 0.0909 - 14 0.0182 - 15 0.0182 - 21 0.0182 - 28 0.0182 - 31 0.0182 - 41 0.0182 - 42 0.0364 - 44 0.0182 - 45 0.0364 - 46 0.0182 - 47 0.527 - - 64 18 4 0 - 2 0.0556 - 7 0.111 - 45 0.111 - 47 0.722 - - 65 1 1 0 - 40 1 - - 69 15 6 0 - 7 0.533 - 21 0.0667 - 29 0.0667 - 41 0.0667 - 42 0.0667 - 47 0.2 - - 71 13 7 0 - 2 0.231 - 14 0.0769 - 24 0.0769 - 28 0.154 - 41 0.0769 - 42 0.0769 - 47 0.308 - - 72 11 5 0 - 2 0.0909 - 28 0.0909 - 42 0.0909 - 45 0.273 - 47 0.455 - - 73 2 1 0 - 28 1 - - 74 17 4 0 - 7 0.0588 - 32 0.0588 - 41 0.0588 - 47 0.824 - - 48 49 12 3 - 0 0.0204 - 7 0.367 - 13 0.0408 - 15 0.0408 - 21 0.0612 - 28 0.0204 - 37 0.0408 - 40 0.0204 - 41 0.0204 - 42 0.0204 - 45 0.0612 - 47 0.286 - - 41 5 2 0 - 42 0.2 - 47 0.8 - - 42 2 2 0 - 15 0.5 - 21 0.5 - - 47 34 10 0 - 0 0.0294 - 7 0.529 - 13 0.0588 - 21 0.0588 - 28 0.0294 - 37 0.0588 - 40 0.0294 - 41 0.0294 - 45 0.0588 - 47 0.118 - - 49 64 14 3 - 2 0.0625 - 7 0.188 - 8 0.0156 - 13 0.0312 - 14 0.0156 - 19 0.0156 - 21 0.0312 - 28 0.0156 - 35 0.0156 - 37 0.0156 - 41 0.156 - 42 0.0469 - 45 0.0156 - 47 0.375 - - 41 8 2 0 - 41 0.125 - 47 0.875 - - 47 35 11 0 - 2 0.0286 - 7 0.314 - 8 0.0286 - 13 0.0571 - 14 0.0286 - 21 0.0571 - 35 0.0286 - 37 0.0286 - 41 0.2 - 42 0.0286 - 47 0.2 - - 49 3 3 0 - 2 0.333 - 7 0.333 - 28 0.333 - - 51 11 5 0 - 7 0.0909 - 41 0.0909 - 42 0.636 - 45 0.0909 - 47 0.0909 - - 52 11 4 0 - 40 0.0909 - 41 0.182 - 45 0.455 - 47 0.273 - - 55 273 23 6 - 2 0.00733 - 7 0.0879 - 8 0.00366 - 9 0.011 - 13 0.0183 - 14 0.0293 - 15 0.00733 - 21 0.033 - 25 0.00733 - 28 0.00366 - 29 0.00366 - 31 0.00366 - 33 0.00366 - 34 0.022 - 35 0.00366 - 37 0.00733 - 40 0.00733 - 41 0.194 - 42 0.117 - 44 0.011 - 45 0.103 - 46 0.00366 - 47 0.311 - - 2 2 2 0 - 33 0.5 - 47 0.5 - - 40 2 2 0 - 40 0.5 - 45 0.5 - - 41 57 7 0 - 2 0.0175 - 13 0.0175 - 21 0.0175 - 41 0.526 - 42 0.0351 - 45 0.0526 - 47 0.333 - - 42 26 3 0 - 42 0.0385 - 44 0.0769 - 47 0.885 - - 47 162 22 0 - 2 0.00617 - 7 0.13 - 8 0.00617 - 9 0.0185 - 13 0.0185 - 14 0.0432 - 15 0.0123 - 21 0.0494 - 25 0.0123 - 28 0.00617 - 29 0.00617 - 31 0.00617 - 34 0.037 - 35 0.00617 - 37 0.0123 - 40 0.00617 - 41 0.13 - 42 0.167 - 44 0.00617 - 45 0.142 - 46 0.00617 - 47 0.173 - - 62 5 2 0 - 7 0.6 - 47 0.4 - - 57 74 16 5 - 0 0.0135 - 3 0.0135 - 7 0.0946 - 8 0.0135 - 13 0.0676 - 14 0.0135 - 15 0.0135 - 21 0.0135 - 28 0.027 - 31 0.0135 - 41 0.243 - 42 0.027 - 44 0.0135 - 45 0.027 - 46 0.0135 - 47 0.392 - - 41 7 5 0 - 41 0.143 - 42 0.143 - 44 0.143 - 45 0.143 - 47 0.429 - - 42 24 3 0 - 41 0.458 - 45 0.0417 - 47 0.5 - - 47 26 12 0 - 0 0.0385 - 3 0.0385 - 7 0.192 - 13 0.192 - 14 0.0385 - 15 0.0385 - 21 0.0385 - 28 0.0385 - 31 0.0385 - 41 0.0385 - 46 0.0385 - 47 0.269 - - 55 9 3 0 - 7 0.222 - 42 0.111 - 47 0.667 - - 58 4 1 0 - 41 1 - - 58 8 5 0 - 13 0.125 - 15 0.5 - 32 0.125 - 46 0.125 - 47 0.125 - - 62 55 11 1 - 3 0.0727 - 7 0.0909 - 8 0.0182 - 9 0.0182 - 13 0.0182 - 14 0.0182 - 22 0.0182 - 35 0.0182 - 42 0.345 - 45 0.236 - 47 0.145 - - 42 3 1 0 - 47 1 - - 64 37 10 1 - 2 0.027 - 7 0.0541 - 8 0.0541 - 13 0.0541 - 21 0.108 - 35 0.0811 - 41 0.162 - 42 0.027 - 45 0.0811 - 47 0.351 - - 41 8 4 0 - 2 0.125 - 7 0.125 - 45 0.125 - 47 0.625 - - 65 1 1 0 - 40 1 - - 69 29 9 1 - 7 0.276 - 14 0.0345 - 21 0.103 - 25 0.103 - 29 0.0345 - 40 0.0345 - 41 0.103 - 42 0.207 - 47 0.103 - - 42 3 1 0 - 47 1 - - 71 17 7 0 - 2 0.235 - 14 0.0588 - 24 0.0588 - 28 0.118 - 41 0.235 - 42 0.0588 - 47 0.235 - - 72 11 5 0 - 2 0.0909 - 28 0.0909 - 42 0.0909 - 45 0.273 - 47 0.455 - - 73 2 1 0 - 28 1 - - 74 19 6 0 - 0 0.0526 - 7 0.0526 - 28 0.0526 - 32 0.0526 - 41 0.0526 - 47 0.737 - -52 280 19 10 - 2 0.0214 - 4 0.0179 - 7 0.00714 - 8 0.0107 - 13 0.00357 - 15 0.00357 - 20 0.00357 - 27 0.0286 - 28 0.05 - 29 0.0143 - 30 0.0143 - 33 0.00714 - 40 0.0107 - 41 0.225 - 42 0.0214 - 44 0.05 - 45 0.175 - 46 0.00714 - 47 0.329 - - 0 3 1 0 - 4 1 - - 13 6 4 0 - 8 0.5 - 41 0.167 - 44 0.167 - 47 0.167 - - 15 3 3 0 - 15 0.333 - 20 0.333 - 47 0.333 - - 21 18 5 0 - 28 0.0556 - 33 0.0556 - 41 0.111 - 42 0.0556 - 47 0.722 - - 27 86 13 0 - 2 0.0233 - 4 0.0116 - 7 0.0116 - 27 0.0349 - 28 0.0349 - 29 0.0233 - 30 0.0233 - 40 0.0233 - 41 0.221 - 42 0.0116 - 44 0.0581 - 45 0.267 - 47 0.256 - - 28 13 4 0 - 41 0.769 - 45 0.0769 - 46 0.0769 - 47 0.0769 - - 41 5 3 0 - 13 0.2 - 27 0.4 - 28 0.4 - - 45 3 3 0 - 2 0.333 - 28 0.333 - 47 0.333 - - 47 127 15 3 - 2 0.0236 - 4 0.00787 - 7 0.00787 - 27 0.00787 - 28 0.0472 - 29 0.0157 - 30 0.0157 - 33 0.00787 - 40 0.00787 - 41 0.228 - 42 0.0236 - 44 0.0551 - 45 0.181 - 46 0.00787 - 47 0.362 - - 21 17 5 0 - 28 0.0588 - 33 0.0588 - 41 0.0588 - 42 0.0588 - 47 0.765 - - 28 11 4 0 - 41 0.727 - 45 0.0909 - 46 0.0909 - 47 0.0909 - - 52 2 2 0 - 28 0.5 - 44 0.5 - - 52 2 2 0 - 28 0.5 - 44 0.5 - -53 81 5 3 - 2 0.0494 - 7 0.0494 - 42 0.173 - 44 0.0617 - 47 0.667 - - 13 2 1 0 - 44 1 - - 44 5 3 0 - 2 0.4 - 7 0.2 - 42 0.4 - - 47 38 4 1 - 2 0.0526 - 7 0.0526 - 42 0.184 - 47 0.711 - - 44 5 3 0 - 2 0.4 - 7 0.2 - 42 0.4 - -54 1410 26 10 - 0 0.00142 - 2 0.0128 - 3 0.0163 - 4 0.351 - 7 0.044 - 8 0.0326 - 13 0.00355 - 14 0.000709 - 15 0.241 - 16 0.00213 - 18 0.0184 - 20 0.0348 - 21 0.00142 - 26 0.00426 - 28 0.00284 - 29 0.00284 - 30 0.00142 - 31 0.000709 - 33 0.00426 - 34 0.00142 - 39 0.000709 - 41 0.178 - 44 0.00284 - 45 0.0163 - 46 0.00142 - 47 0.0227 - - 3 2 2 0 - 4 0.5 - 39 0.5 - - 4 5 4 0 - 7 0.4 - 21 0.2 - 33 0.2 - 41 0.2 - - 8 11 9 0 - 4 0.0909 - 7 0.0909 - 8 0.0909 - 18 0.0909 - 20 0.0909 - 29 0.0909 - 41 0.0909 - 45 0.182 - 47 0.182 - - 13 19 9 0 - 2 0.0526 - 3 0.158 - 4 0.105 - 7 0.0526 - 8 0.211 - 15 0.158 - 30 0.0526 - 31 0.0526 - 45 0.158 - - 15 697 20 3 - 0 0.00143 - 2 0.0115 - 3 0.01 - 4 0.34 - 7 0.0373 - 8 0.0301 - 13 0.0043 - 15 0.135 - 18 0.0158 - 20 0.0316 - 26 0.0043 - 28 0.00287 - 29 0.00143 - 33 0.00143 - 34 0.00143 - 41 0.344 - 44 0.00287 - 45 0.00574 - 46 0.00143 - 47 0.0172 - - 15 89 12 0 - 2 0.0112 - 3 0.0337 - 4 0.629 - 7 0.0787 - 8 0.0449 - 13 0.0112 - 15 0.0674 - 20 0.0674 - 26 0.0112 - 34 0.0112 - 41 0.0225 - 45 0.0112 - - 41 231 8 0 - 2 0.013 - 4 0.61 - 7 0.0216 - 8 0.026 - 15 0.238 - 18 0.0346 - 20 0.0519 - 33 0.00433 - - 47 371 18 0 - 0 0.0027 - 2 0.0108 - 3 0.0108 - 4 0.097 - 7 0.0377 - 8 0.027 - 13 0.00539 - 15 0.0889 - 18 0.00809 - 20 0.0108 - 26 0.00539 - 28 0.00539 - 29 0.0027 - 41 0.639 - 44 0.00539 - 45 0.00809 - 46 0.0027 - 47 0.0323 - - 16 7 2 0 - 3 0.286 - 15 0.714 - - 41 235 2 0 - 15 0.987 - 16 0.0128 - - 47 411 22 5 - 0 0.00243 - 2 0.0219 - 3 0.0268 - 4 0.596 - 7 0.0754 - 8 0.0438 - 13 0.00487 - 15 0.0146 - 18 0.0316 - 20 0.0584 - 21 0.00243 - 26 0.0073 - 28 0.00487 - 29 0.00487 - 30 0.00243 - 33 0.0073 - 34 0.00243 - 41 0.0195 - 44 0.00487 - 45 0.0268 - 46 0.00243 - 47 0.0389 - - 4 5 4 0 - 7 0.4 - 21 0.2 - 33 0.2 - 41 0.2 - - 8 8 6 0 - 7 0.125 - 18 0.125 - 29 0.125 - 41 0.125 - 45 0.25 - 47 0.25 - - 13 11 7 0 - 2 0.0909 - 3 0.182 - 4 0.182 - 7 0.0909 - 15 0.0909 - 30 0.0909 - 45 0.273 - - 15 365 20 0 - 0 0.00274 - 2 0.0219 - 3 0.0192 - 4 0.638 - 7 0.0712 - 8 0.0466 - 13 0.00548 - 15 0.0137 - 18 0.0301 - 20 0.0603 - 26 0.00822 - 28 0.00548 - 29 0.00274 - 33 0.00274 - 34 0.00274 - 41 0.0164 - 44 0.00548 - 45 0.011 - 46 0.00274 - 47 0.0329 - - 16 2 1 0 - 3 1 - - 54 6 4 0 - 4 0.5 - 7 0.167 - 20 0.167 - 33 0.167 - - 55 10 8 0 - 4 0.3 - 8 0.1 - 14 0.1 - 18 0.1 - 20 0.1 - 41 0.1 - 45 0.1 - 47 0.1 - -55 887998 48 60 - 0 0.0273 - 1 0.000351 - 2 0.0385 - 3 0.0187 - 4 0.0895 - 5 1.13e-05 - 6 0.00017 - 7 0.269 - 8 0.0578 - 9 0.00198 - 10 0.00144 - 11 4.5e-06 - 12 0.000276 - 13 0.0448 - 14 0.00865 - 15 0.0601 - 16 0.00132 - 17 0.000474 - 18 0.00933 - 19 0.00118 - 20 0.00947 - 21 0.00895 - 22 0.00032 - 23 7.09e-05 - 24 0.0044 - 25 2.93e-05 - 26 0.0257 - 27 9.01e-06 - 28 0.0421 - 29 0.0397 - 30 0.0252 - 31 0.0126 - 32 0.00881 - 33 0.0183 - 34 0.0013 - 35 0.000993 - 36 2.14e-05 - 37 0.00439 - 38 1.46e-05 - 39 9.01e-06 - 40 0.000164 - 41 0.0609 - 42 0.00956 - 43 0.000404 - 44 0.0025 - 45 0.0118 - 46 0.00365 - 47 0.078 - - 0 15 6 0 - 7 0.0667 - 13 0.133 - 14 0.0667 - 15 0.6 - 19 0.0667 - 44 0.0667 - - 2 4952 33 24 - 0 0.00101 - 2 0.000404 - 3 0.0186 - 4 0.00323 - 6 0.000202 - 7 0.00424 - 8 0.0307 - 9 0.000808 - 10 0.000404 - 13 0.33 - 14 0.202 - 15 0.361 - 16 0.0224 - 18 0.000404 - 19 0.00141 - 20 0.000808 - 21 0.00101 - 26 0.000202 - 28 0.00121 - 29 0.000202 - 30 0.00363 - 31 0.000808 - 32 0.000202 - 33 0.000404 - 34 0.000202 - 40 0.000202 - 41 0.00687 - 42 0.00182 - 43 0.000202 - 44 0.000202 - 45 0.000202 - 46 0.00283 - 47 0.00263 - - 3 95 6 0 - 3 0.884 - 7 0.0105 - 8 0.0105 - 13 0.0632 - 21 0.0105 - 41 0.0211 - - 4 22 10 0 - 0 0.0909 - 3 0.0455 - 4 0.273 - 7 0.227 - 8 0.0455 - 13 0.0909 - 15 0.0909 - 21 0.0455 - 32 0.0455 - 47 0.0455 - - 6 1 1 0 - 6 1 - - 8 278 11 0 - 3 0.0036 - 4 0.0216 - 8 0.432 - 9 0.00719 - 13 0.439 - 14 0.0396 - 15 0.036 - 31 0.00719 - 40 0.0036 - 41 0.0036 - 42 0.00719 - - 9 4 2 0 - 3 0.5 - 9 0.5 - - 10 2 1 0 - 10 1 - - 13 1555 11 0 - 4 0.00257 - 8 0.0167 - 13 0.826 - 14 0.134 - 15 0.00257 - 16 0.000643 - 30 0.0045 - 41 0.00836 - 42 0.00129 - 46 0.00193 - 47 0.00129 - - 14 982 10 0 - 3 0.00102 - 7 0.00102 - 8 0.00204 - 13 0.196 - 14 0.785 - 15 0.0102 - 16 0.00102 - 19 0.00204 - 33 0.00102 - 41 0.00102 - - 15 1822 10 0 - 8 0.0011 - 13 0.00549 - 14 0.000549 - 15 0.945 - 16 0.0406 - 18 0.0011 - 19 0.0011 - 30 0.000549 - 41 0.00384 - 43 0.000549 - - 16 66 3 0 - 14 0.0152 - 15 0.455 - 16 0.53 - - 19 5 3 0 - 7 0.2 - 15 0.2 - 19 0.6 - - 20 5 2 0 - 7 0.2 - 20 0.8 - - 21 4 2 0 - 13 0.5 - 21 0.5 - - 28 4 1 0 - 28 1 - - 30 15 3 0 - 13 0.333 - 14 0.0667 - 30 0.6 - - 31 4 2 0 - 13 0.75 - 31 0.25 - - 45 12 3 0 - 15 0.0833 - 42 0.167 - 46 0.75 - - 47 9 8 0 - 0 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 28 0.111 - 41 0.111 - 45 0.111 - 46 0.111 - - 48 3 2 0 - 13 0.667 - 31 0.333 - - 49 1 1 0 - 41 1 - - 54 2 2 0 - 15 0.5 - 41 0.5 - - 55 57 18 0 - 0 0.0351 - 2 0.0351 - 3 0.0351 - 7 0.193 - 13 0.0877 - 14 0.0526 - 15 0.0877 - 21 0.0175 - 26 0.0175 - 28 0.0175 - 29 0.0175 - 30 0.0175 - 33 0.0175 - 34 0.0175 - 41 0.105 - 42 0.0526 - 46 0.0175 - 47 0.175 - - 56 1 1 0 - 7 1 - - 57 2 2 0 - 41 0.5 - 44 0.5 - - 3 14951 40 22 - 0 0.0276 - 1 0.000334 - 2 0.0587 - 3 0.0198 - 4 0.0795 - 7 0.288 - 8 0.0544 - 9 0.000401 - 10 0.00114 - 12 0.000134 - 13 0.0364 - 14 0.00408 - 15 0.0177 - 16 6.69e-05 - 18 0.0093 - 19 0.001 - 20 0.00816 - 21 0.0375 - 24 0.00294 - 25 6.69e-05 - 26 0.066 - 28 0.0289 - 29 0.106 - 30 0.0142 - 31 0.0122 - 32 0.00375 - 33 0.0142 - 34 0.00127 - 35 0.000201 - 37 0.000936 - 38 0.00087 - 39 0.000535 - 40 0.000334 - 41 0.0413 - 42 0.026 - 43 0.000669 - 44 0.00261 - 45 0.00348 - 46 0.00107 - 47 0.0286 - - 2 89 12 0 - 0 0.0337 - 2 0.0112 - 4 0.124 - 7 0.461 - 8 0.0449 - 13 0.0225 - 20 0.0225 - 21 0.0337 - 28 0.0112 - 41 0.213 - 45 0.0112 - 46 0.0112 - - 3 284 22 0 - 0 0.00704 - 2 0.0141 - 3 0.00352 - 4 0.0141 - 7 0.387 - 8 0.0176 - 13 0.00352 - 14 0.0106 - 15 0.00352 - 21 0.0176 - 26 0.268 - 28 0.0141 - 29 0.13 - 30 0.00352 - 31 0.0211 - 33 0.0106 - 34 0.00704 - 39 0.00704 - 41 0.0141 - 42 0.0352 - 45 0.00352 - 47 0.00704 - - 7 3 1 0 - 4 1 - - 8 787 30 0 - 0 0.0419 - 1 0.00127 - 2 0.0801 - 3 0.0102 - 4 0.131 - 7 0.26 - 8 0.0305 - 13 0.00635 - 14 0.00254 - 15 0.0152 - 18 0.0343 - 20 0.0267 - 21 0.0178 - 24 0.0127 - 26 0.0165 - 28 0.0394 - 29 0.0496 - 30 0.0267 - 31 0.0114 - 32 0.00508 - 33 0.033 - 34 0.00127 - 35 0.00127 - 37 0.00254 - 39 0.00127 - 41 0.0343 - 42 0.0114 - 44 0.00127 - 45 0.00381 - 47 0.0902 - - 9 19 8 0 - 0 0.158 - 7 0.263 - 13 0.0526 - 28 0.0526 - 29 0.158 - 30 0.0526 - 41 0.0526 - 47 0.211 - - 10 28 4 0 - 4 0.643 - 7 0.0357 - 18 0.25 - 20 0.0714 - - 13 4530 37 0 - 0 0.0232 - 1 0.000442 - 2 0.0433 - 3 0.00596 - 4 0.0656 - 7 0.201 - 8 0.0272 - 9 0.000221 - 10 0.000662 - 12 0.000221 - 13 0.0347 - 14 0.00177 - 15 0.034 - 18 0.0102 - 20 0.00927 - 21 0.0408 - 24 0.00419 - 25 0.000221 - 26 0.0682 - 28 0.0563 - 29 0.179 - 30 0.0143 - 31 0.015 - 32 0.00574 - 33 0.0232 - 34 0.000442 - 35 0.000442 - 37 0.0011 - 39 0.000442 - 40 0.0011 - 41 0.0219 - 42 0.07 - 43 0.00177 - 44 0.00287 - 45 0.00419 - 46 0.0011 - 47 0.0302 - - 14 4275 34 0 - 0 0.0262 - 2 0.106 - 3 0.00819 - 4 0.116 - 7 0.244 - 8 0.0952 - 9 0.000234 - 10 0.00257 - 13 0.0732 - 14 0.00444 - 15 0.0133 - 16 0.000234 - 18 0.0101 - 19 0.00211 - 20 0.00959 - 21 0.0428 - 24 0.00281 - 26 0.0414 - 28 0.018 - 29 0.0648 - 30 0.0131 - 31 0.0159 - 32 0.00327 - 33 0.00912 - 34 0.00211 - 37 0.000468 - 39 0.000468 - 41 0.0409 - 42 0.00795 - 43 0.000234 - 44 0.00234 - 45 0.00234 - 46 0.000234 - 47 0.0201 - - 15 275 26 0 - 0 0.0182 - 2 0.0291 - 3 0.00364 - 4 0.2 - 7 0.153 - 8 0.0327 - 13 0.0436 - 15 0.08 - 18 0.04 - 19 0.00364 - 20 0.0291 - 21 0.00727 - 26 0.0182 - 28 0.0473 - 29 0.0509 - 30 0.0109 - 31 0.0145 - 32 0.00364 - 33 0.0545 - 34 0.0109 - 41 0.0582 - 42 0.00727 - 44 0.00727 - 45 0.00364 - 46 0.00364 - 47 0.0691 - - 16 24 11 0 - 0 0.0417 - 2 0.0417 - 4 0.375 - 7 0.167 - 8 0.0417 - 28 0.0417 - 29 0.0833 - 30 0.0833 - 33 0.0417 - 46 0.0417 - 47 0.0417 - - 18 25 6 0 - 4 0.04 - 7 0.64 - 15 0.2 - 26 0.04 - 28 0.04 - 29 0.04 - - 21 20 6 0 - 2 0.05 - 4 0.1 - 7 0.7 - 20 0.05 - 41 0.05 - 44 0.05 - - 30 15 6 0 - 4 0.267 - 7 0.333 - 18 0.0667 - 20 0.0667 - 28 0.133 - 47 0.133 - - 31 22 12 0 - 0 0.0909 - 2 0.0455 - 4 0.0909 - 7 0.273 - 8 0.0455 - 13 0.136 - 20 0.0455 - 29 0.0909 - 30 0.0455 - 39 0.0455 - 41 0.0455 - 47 0.0455 - - 41 29 8 0 - 2 0.0345 - 3 0.0345 - 4 0.069 - 7 0.172 - 8 0.241 - 21 0.069 - 28 0.0345 - 41 0.345 - - 43 1 1 0 - 44 1 - - 45 9 6 0 - 2 0.222 - 4 0.222 - 7 0.222 - 15 0.111 - 20 0.111 - 28 0.111 - - 46 4 3 0 - 8 0.25 - 13 0.25 - 45 0.5 - - 47 4447 34 0 - 0 0.0324 - 1 0.00045 - 2 0.0322 - 3 0.0501 - 4 0.0369 - 7 0.422 - 8 0.0515 - 9 0.000899 - 10 0.000675 - 12 0.000225 - 13 0.0103 - 14 0.00652 - 15 0.00225 - 19 0.00112 - 20 0.000225 - 21 0.0376 - 24 0.000675 - 26 0.0911 - 28 0.00967 - 29 0.0902 - 30 0.0139 - 31 0.00607 - 32 0.00225 - 33 0.00472 - 34 0.00045 - 37 0.000899 - 38 0.00292 - 41 0.0573 - 42 0.00382 - 43 0.000225 - 44 0.00247 - 45 0.00337 - 46 0.00135 - 47 0.0232 - - 48 43 14 0 - 0 0.0233 - 4 0.233 - 7 0.163 - 8 0.0233 - 13 0.0698 - 15 0.0233 - 18 0.093 - 28 0.0233 - 29 0.0233 - 33 0.0233 - 37 0.0233 - 41 0.209 - 46 0.0233 - 47 0.0465 - - 54 7 4 0 - 2 0.143 - 4 0.429 - 7 0.286 - 8 0.143 - - 55 9 8 0 - 2 0.111 - 4 0.222 - 7 0.111 - 8 0.111 - 15 0.111 - 20 0.111 - 32 0.111 - 33 0.111 - - 4 80857 41 32 - 0 0.0477 - 1 0.000742 - 2 0.0329 - 3 0.0128 - 4 0.00155 - 5 2.47e-05 - 6 2.47e-05 - 7 0.398 - 8 0.00234 - 9 0.000247 - 10 0.000371 - 12 0.000408 - 13 0.0102 - 14 0.0123 - 15 0.00247 - 16 9.89e-05 - 17 0.00409 - 18 2.47e-05 - 19 0.00233 - 21 0.0171 - 22 0.002 - 23 1.24e-05 - 24 0.00694 - 26 0.0309 - 28 0.0629 - 29 0.0511 - 30 0.0334 - 31 0.0145 - 32 0.0125 - 33 0.0213 - 34 0.00146 - 35 0.00124 - 37 0.00651 - 40 4.95e-05 - 41 0.0794 - 42 0.0066 - 43 0.00042 - 44 0.00117 - 45 0.0123 - 46 0.0031 - 47 0.107 - - 2 16 6 0 - 7 0.312 - 26 0.0625 - 28 0.25 - 30 0.188 - 32 0.0625 - 47 0.125 - - 3 1180 26 0 - 0 0.0127 - 2 0.0314 - 3 0.00169 - 7 0.618 - 8 0.00169 - 13 0.00678 - 14 0.00254 - 15 0.000847 - 17 0.00169 - 21 0.00763 - 24 0.00254 - 26 0.0178 - 28 0.0356 - 29 0.0322 - 30 0.0322 - 31 0.00847 - 32 0.00339 - 33 0.00763 - 34 0.000847 - 37 0.00508 - 41 0.05 - 42 0.00763 - 44 0.00169 - 45 0.00254 - 46 0.00254 - 47 0.105 - - 4 71 16 0 - 0 0.0423 - 7 0.394 - 8 0.0141 - 13 0.0141 - 21 0.0423 - 24 0.0141 - 28 0.0845 - 29 0.0141 - 30 0.0563 - 31 0.0282 - 32 0.0423 - 33 0.0282 - 41 0.0282 - 42 0.0141 - 45 0.0563 - 47 0.127 - - 6 18 9 0 - 0 0.0556 - 2 0.111 - 7 0.389 - 8 0.0556 - 28 0.111 - 31 0.0556 - 35 0.0556 - 41 0.0556 - 47 0.111 - - 7 1 1 0 - 15 1 - - 8 17405 38 0 - 0 0.078 - 1 0.00109 - 2 0.0307 - 3 0.00167 - 4 0.000862 - 5 0.000115 - 7 0.426 - 8 0.00184 - 9 5.75e-05 - 10 0.000632 - 12 0.000402 - 13 0.00718 - 14 0.00431 - 15 0.00218 - 16 5.75e-05 - 17 0.00287 - 19 0.00247 - 21 0.0196 - 22 5.75e-05 - 24 0.00678 - 26 0.0298 - 28 0.0666 - 29 0.0525 - 30 0.0357 - 31 0.0159 - 32 0.0133 - 33 0.0219 - 34 0.000804 - 35 0.000919 - 37 0.00368 - 40 5.75e-05 - 41 0.0705 - 42 0.00672 - 43 0.000172 - 44 0.000689 - 45 0.0106 - 46 0.00195 - 47 0.0812 - - 9 397 24 0 - 0 0.0907 - 2 0.063 - 7 0.378 - 13 0.00504 - 14 0.00756 - 15 0.00756 - 16 0.00252 - 17 0.00252 - 19 0.0101 - 21 0.0126 - 24 0.00252 - 26 0.0327 - 28 0.0932 - 29 0.0403 - 30 0.0529 - 31 0.0126 - 32 0.0277 - 33 0.0428 - 37 0.00252 - 41 0.0479 - 42 0.00756 - 44 0.00252 - 45 0.00252 - 47 0.0529 - - 10 727 22 0 - 0 0.144 - 1 0.00275 - 2 0.0151 - 7 0.38 - 13 0.00275 - 17 0.00138 - 19 0.00138 - 21 0.0578 - 24 0.00138 - 26 0.0289 - 28 0.0385 - 29 0.0399 - 30 0.00825 - 31 0.0165 - 32 0.0206 - 33 0.0179 - 37 0.00138 - 41 0.0894 - 42 0.011 - 44 0.00275 - 45 0.0179 - 47 0.1 - - 12 2 2 0 - 0 0.5 - 2 0.5 - - 13 38560 39 0 - 0 0.0431 - 1 0.000726 - 2 0.0281 - 3 0.0249 - 4 0.00114 - 6 2.59e-05 - 7 0.377 - 8 0.00319 - 9 0.000441 - 10 0.000363 - 12 0.000441 - 13 0.0138 - 14 0.0218 - 15 0.00265 - 16 7.78e-05 - 17 0.00423 - 18 5.19e-05 - 19 0.00202 - 21 0.0182 - 22 0.00412 - 24 0.00747 - 26 0.0309 - 28 0.0659 - 29 0.0534 - 30 0.0347 - 31 0.0155 - 32 0.0119 - 33 0.0219 - 34 0.00187 - 35 0.00119 - 37 0.00778 - 40 2.59e-05 - 41 0.0783 - 42 0.00578 - 43 0.000622 - 44 0.00137 - 45 0.0108 - 46 0.00371 - 47 0.101 - - 14 5945 33 0 - 0 0.0192 - 2 0.0441 - 4 0.00404 - 7 0.376 - 8 0.00202 - 10 0.000336 - 12 0.000168 - 13 0.00673 - 14 0.00471 - 15 0.000505 - 16 0.000168 - 17 0.0116 - 19 0.000505 - 21 0.0104 - 23 0.000168 - 24 0.00976 - 26 0.031 - 28 0.0833 - 29 0.0474 - 30 0.0368 - 31 0.00908 - 32 0.0172 - 33 0.02 - 34 0.00118 - 35 0.0032 - 37 0.00622 - 41 0.076 - 42 0.00706 - 43 0.000168 - 44 0.00135 - 45 0.0163 - 46 0.00219 - 47 0.152 - - 15 8602 35 0 - 0 0.0117 - 1 0.000465 - 2 0.0398 - 3 0.000581 - 4 0.00221 - 7 0.483 - 8 0.000581 - 12 0.000698 - 13 0.00581 - 14 0.00174 - 15 0.00267 - 16 0.000116 - 17 0.00093 - 19 0.00105 - 21 0.00523 - 22 0.000116 - 24 0.00302 - 26 0.038 - 28 0.0367 - 29 0.031 - 30 0.0208 - 31 0.0086 - 32 0.00732 - 33 0.0166 - 34 0.00221 - 35 0.00105 - 37 0.0086 - 40 0.000116 - 41 0.114 - 42 0.00546 - 43 0.000116 - 44 0.000814 - 45 0.00802 - 46 0.0057 - 47 0.135 - - 16 411 25 0 - 0 0.00243 - 2 0.0706 - 4 0.00243 - 7 0.406 - 13 0.0243 - 14 0.00487 - 17 0.00243 - 21 0.0219 - 24 0.00973 - 26 0.0487 - 28 0.0535 - 29 0.0316 - 30 0.0219 - 31 0.0073 - 32 0.00487 - 33 0.0073 - 34 0.00487 - 35 0.00243 - 37 0.0292 - 40 0.00243 - 41 0.0925 - 42 0.00487 - 44 0.00243 - 45 0.0122 - 47 0.129 - - 19 14 8 0 - 2 0.143 - 7 0.214 - 21 0.0714 - 26 0.143 - 29 0.0714 - 41 0.0714 - 45 0.143 - 47 0.143 - - 20 23 9 0 - 7 0.304 - 21 0.087 - 24 0.087 - 28 0.174 - 30 0.0435 - 31 0.0435 - 32 0.13 - 35 0.0435 - 45 0.087 - - 21 134 19 0 - 0 0.231 - 2 0.0149 - 4 0.00746 - 7 0.291 - 14 0.0224 - 15 0.00746 - 19 0.0224 - 21 0.0448 - 24 0.0149 - 26 0.0224 - 28 0.0522 - 29 0.0299 - 30 0.0522 - 33 0.0299 - 37 0.00746 - 41 0.0746 - 42 0.0149 - 45 0.0373 - 47 0.0224 - - 22 13 7 0 - 0 0.0769 - 4 0.0769 - 7 0.462 - 28 0.0769 - 29 0.0769 - 30 0.154 - 33 0.0769 - - 23 34 11 0 - 0 0.206 - 2 0.0294 - 7 0.235 - 21 0.0294 - 26 0.0294 - 28 0.0294 - 29 0.0588 - 31 0.0882 - 42 0.0294 - 45 0.0588 - 47 0.206 - - 30 600 27 0 - 0 0.0817 - 1 0.00333 - 2 0.0267 - 7 0.398 - 8 0.00167 - 13 0.005 - 14 0.00167 - 15 0.00333 - 17 0.005 - 19 0.00167 - 21 0.015 - 24 0.01 - 26 0.0333 - 28 0.055 - 29 0.0433 - 30 0.0367 - 31 0.00833 - 32 0.0217 - 33 0.045 - 34 0.00167 - 37 0.00667 - 41 0.0767 - 42 0.00833 - 43 0.00167 - 45 0.00833 - 46 0.00167 - 47 0.0983 - - 31 594 25 0 - 0 0.0303 - 2 0.0354 - 4 0.00673 - 7 0.468 - 8 0.00168 - 9 0.00168 - 13 0.00842 - 14 0.00337 - 17 0.00337 - 19 0.00168 - 21 0.00673 - 22 0.00168 - 24 0.0118 - 26 0.0286 - 28 0.0724 - 29 0.0825 - 30 0.0488 - 31 0.0152 - 32 0.0168 - 33 0.0118 - 37 0.00673 - 41 0.0488 - 42 0.00842 - 45 0.00168 - 47 0.0774 - - 39 26 10 0 - 2 0.0769 - 7 0.5 - 13 0.0385 - 14 0.0385 - 21 0.0385 - 26 0.115 - 29 0.0769 - 30 0.0385 - 41 0.0385 - 47 0.0385 - - 44 28 10 0 - 0 0.0714 - 2 0.107 - 7 0.393 - 19 0.0357 - 21 0.0357 - 28 0.0357 - 30 0.0357 - 35 0.0357 - 41 0.0357 - 45 0.214 - - 45 444 26 0 - 0 0.0968 - 1 0.00901 - 2 0.0203 - 7 0.358 - 9 0.00225 - 13 0.027 - 14 0.0045 - 15 0.0113 - 16 0.00225 - 17 0.00676 - 19 0.0113 - 21 0.0158 - 24 0.0045 - 26 0.027 - 28 0.0676 - 29 0.0968 - 30 0.0495 - 31 0.045 - 32 0.00676 - 33 0.0518 - 37 0.00225 - 41 0.0293 - 42 0.0135 - 45 0.00225 - 46 0.00225 - 47 0.036 - - 47 2538 32 0 - 0 0.0303 - 2 0.0693 - 3 0.0146 - 4 0.00473 - 7 0.265 - 8 0.00197 - 10 0.000394 - 12 0.000394 - 13 0.00709 - 14 0.00512 - 15 0.00197 - 17 0.0106 - 19 0.0118 - 21 0.0296 - 24 0.00591 - 26 0.0209 - 28 0.0571 - 29 0.0201 - 30 0.0197 - 31 0.00906 - 32 0.0197 - 33 0.015 - 34 0.000394 - 35 0.00236 - 37 0.00591 - 41 0.0563 - 42 0.0146 - 43 0.00118 - 44 0.00355 - 45 0.0583 - 46 0.00197 - 47 0.235 - - 48 2419 31 0 - 0 0.0864 - 1 0.000413 - 2 0.0364 - 3 0.00165 - 4 0.000827 - 6 0.000413 - 7 0.329 - 8 0.00248 - 10 0.000827 - 12 0.000413 - 13 0.00537 - 14 0.000827 - 15 0.00661 - 17 0.000413 - 19 0.00331 - 21 0.0215 - 24 0.0103 - 26 0.0302 - 28 0.0566 - 29 0.127 - 30 0.0463 - 31 0.0265 - 32 0.012 - 33 0.0294 - 37 0.00248 - 41 0.0744 - 42 0.00951 - 43 0.000413 - 45 0.0112 - 46 0.000827 - 47 0.0661 - - 49 8 4 0 - 0 0.375 - 7 0.375 - 29 0.125 - 32 0.125 - - 54 240 13 0 - 0 0.0125 - 2 0.0125 - 7 0.292 - 13 0.00417 - 26 0.00833 - 28 0.00833 - 29 0.0208 - 30 0.0208 - 31 0.0167 - 33 0.0208 - 41 0.383 - 42 0.00417 - 47 0.196 - - 55 157 17 0 - 0 0.0318 - 2 0.00637 - 7 0.395 - 13 0.00637 - 19 0.00637 - 21 0.00637 - 24 0.0127 - 26 0.0318 - 28 0.0446 - 29 0.0637 - 30 0.0318 - 31 0.0318 - 32 0.00637 - 33 0.0318 - 34 0.00637 - 41 0.146 - 47 0.14 - - 56 123 14 0 - 0 0.065 - 2 0.0325 - 7 0.463 - 21 0.0244 - 26 0.0325 - 28 0.0732 - 30 0.0244 - 31 0.00813 - 32 0.0325 - 33 0.0244 - 41 0.114 - 42 0.0163 - 45 0.00813 - 47 0.0813 - - 58 10 6 0 - 0 0.1 - 7 0.4 - 28 0.1 - 29 0.1 - 45 0.2 - 47 0.1 - - 60 63 9 0 - 0 0.0476 - 2 0.0317 - 7 0.714 - 21 0.0159 - 26 0.0476 - 28 0.0952 - 29 0.0159 - 30 0.0159 - 41 0.0159 - - 68 43 11 0 - 0 0.0465 - 2 0.0233 - 4 0.0465 - 7 0.628 - 26 0.0465 - 28 0.0233 - 29 0.0233 - 30 0.0465 - 33 0.0465 - 41 0.0233 - 47 0.0465 - - 5 861 24 0 - 0 0.00581 - 2 0.0918 - 7 0.18 - 8 0.00465 - 10 0.00348 - 13 0.0186 - 14 0.00465 - 15 0.00232 - 16 0.00116 - 19 0.00232 - 21 0.029 - 28 0.0163 - 29 0.0395 - 30 0.00465 - 31 0.00232 - 32 0.0279 - 33 0.0151 - 34 0.00813 - 37 0.0267 - 41 0.143 - 42 0.00813 - 44 0.00232 - 45 0.167 - 47 0.195 - - 6 150 19 6 - 2 0.0133 - 3 0.00667 - 4 0.127 - 6 0.193 - 7 0.12 - 8 0.02 - 15 0.28 - 18 0.0133 - 19 0.00667 - 20 0.0133 - 25 0.0133 - 26 0.0133 - 28 0.0133 - 29 0.00667 - 32 0.00667 - 33 0.00667 - 41 0.0333 - 45 0.0667 - 47 0.0467 - - 6 29 12 0 - 2 0.0345 - 4 0.241 - 6 0.172 - 7 0.138 - 8 0.0345 - 15 0.0345 - 18 0.069 - 28 0.0345 - 29 0.0345 - 41 0.0345 - 45 0.069 - 47 0.103 - - 13 12 4 0 - 4 0.25 - 6 0.583 - 8 0.0833 - 15 0.0833 - - 14 7 3 0 - 3 0.143 - 6 0.714 - 7 0.143 - - 15 42 2 0 - 6 0.0476 - 15 0.952 - - 46 2 1 0 - 45 1 - - 47 53 14 0 - 2 0.0189 - 4 0.151 - 6 0.17 - 7 0.226 - 19 0.0189 - 20 0.0377 - 25 0.0377 - 26 0.0377 - 28 0.0189 - 32 0.0189 - 33 0.0189 - 41 0.0755 - 45 0.0943 - 47 0.0755 - - 7 318 24 10 - 0 0.044 - 2 0.0314 - 3 0.0157 - 4 0.00314 - 7 0.151 - 8 0.0126 - 10 0.00314 - 13 0.132 - 14 0.0975 - 15 0.0943 - 18 0.00314 - 21 0.0535 - 26 0.0283 - 28 0.0566 - 29 0.0409 - 30 0.022 - 31 0.022 - 32 0.00943 - 33 0.0252 - 35 0.00314 - 41 0.0472 - 42 0.00943 - 45 0.00943 - 47 0.0849 - - 3 47 13 0 - 0 0.0851 - 3 0.0638 - 7 0.468 - 13 0.0426 - 15 0.0213 - 21 0.0213 - 26 0.106 - 29 0.0213 - 30 0.0426 - 31 0.0213 - 41 0.0638 - 42 0.0213 - 47 0.0213 - - 4 30 11 0 - 0 0.167 - 7 0.233 - 15 0.1 - 21 0.1 - 26 0.0667 - 28 0.0333 - 31 0.0333 - 33 0.0667 - 41 0.1 - 45 0.0333 - 47 0.0667 - - 8 19 11 0 - 0 0.0526 - 4 0.0526 - 7 0.0526 - 8 0.0526 - 14 0.0526 - 21 0.105 - 26 0.0526 - 28 0.316 - 29 0.105 - 31 0.105 - 41 0.0526 - - 13 86 17 0 - 0 0.0116 - 2 0.0116 - 3 0.0116 - 7 0.0581 - 8 0.0233 - 10 0.0116 - 13 0.337 - 14 0.267 - 18 0.0116 - 21 0.0698 - 28 0.0116 - 29 0.0349 - 30 0.0116 - 32 0.0116 - 33 0.0233 - 41 0.0581 - 47 0.0349 - - 14 2 2 0 - 45 0.5 - 47 0.5 - - 15 49 8 0 - 7 0.0204 - 13 0.184 - 14 0.102 - 15 0.531 - 28 0.0204 - 30 0.0408 - 31 0.0612 - 47 0.0408 - - 21 3 2 0 - 2 0.333 - 28 0.667 - - 39 2 2 0 - 21 0.5 - 26 0.5 - - 47 67 17 0 - 0 0.0448 - 2 0.119 - 7 0.149 - 8 0.0149 - 13 0.0149 - 14 0.0149 - 21 0.0597 - 28 0.104 - 29 0.0746 - 30 0.0149 - 32 0.0299 - 33 0.0448 - 35 0.0149 - 41 0.0299 - 42 0.0149 - 45 0.0149 - 47 0.239 - - 55 6 5 0 - 7 0.333 - 13 0.167 - 14 0.167 - 41 0.167 - 42 0.167 - - 8 48850 43 29 - 0 0.0133 - 1 0.000184 - 2 0.0351 - 3 0.0255 - 4 0.357 - 6 0.000143 - 7 0.172 - 8 0.0864 - 9 0.00254 - 10 0.00328 - 12 6.14e-05 - 13 0.0137 - 14 0.00282 - 15 0.0132 - 16 0.000246 - 17 2.05e-05 - 18 0.0354 - 19 0.000676 - 20 0.0406 - 21 0.00948 - 22 0.00086 - 23 0.00102 - 24 0.00264 - 25 2.05e-05 - 26 0.0131 - 28 0.0268 - 29 0.0167 - 30 0.0198 - 31 0.0105 - 32 0.00571 - 33 0.0085 - 34 0.000655 - 35 0.000205 - 36 6.14e-05 - 37 0.00192 - 40 4.09e-05 - 41 0.0306 - 42 0.00268 - 43 0.000368 - 44 0.00086 - 45 0.0123 - 46 0.000512 - 47 0.0316 - - 2 152 23 0 - 0 0.00658 - 2 0.0132 - 3 0.0263 - 4 0.289 - 7 0.23 - 8 0.0395 - 9 0.00658 - 13 0.0132 - 15 0.0263 - 18 0.0263 - 20 0.0197 - 21 0.0132 - 24 0.00658 - 26 0.0263 - 28 0.0263 - 30 0.0197 - 32 0.0132 - 33 0.0197 - 41 0.0855 - 42 0.00658 - 44 0.00658 - 45 0.0526 - 47 0.0263 - - 3 710 19 0 - 0 0.00282 - 2 0.00282 - 3 0.00845 - 4 0.785 - 7 0.141 - 8 0.00282 - 14 0.00282 - 18 0.0183 - 20 0.0127 - 21 0.00141 - 26 0.00141 - 28 0.00282 - 29 0.00563 - 30 0.00282 - 32 0.00141 - 33 0.00141 - 41 0.00141 - 42 0.00282 - 45 0.00282 - - 4 67 13 0 - 0 0.134 - 2 0.0299 - 7 0.328 - 21 0.0597 - 24 0.0149 - 26 0.0149 - 28 0.164 - 29 0.0149 - 30 0.0597 - 37 0.0149 - 41 0.0299 - 45 0.0149 - 47 0.119 - - 6 2 2 0 - 3 0.5 - 8 0.5 - - 8 3996 36 0 - 0 0.0133 - 1 0.000501 - 2 0.0511 - 3 0.0198 - 4 0.362 - 7 0.183 - 8 0.0568 - 9 0.00025 - 10 0.0015 - 13 0.00701 - 14 0.000501 - 15 0.00475 - 18 0.0455 - 19 0.001 - 20 0.048 - 21 0.00551 - 22 0.000751 - 23 0.00025 - 24 0.00375 - 26 0.00976 - 28 0.0263 - 29 0.0235 - 30 0.0205 - 31 0.00826 - 32 0.00676 - 33 0.00826 - 35 0.000501 - 37 0.00225 - 40 0.00025 - 41 0.04 - 42 0.00601 - 43 0.000501 - 44 0.000501 - 45 0.01 - 46 0.00025 - 47 0.0313 - - 9 12 8 0 - 0 0.0833 - 2 0.0833 - 4 0.417 - 7 0.0833 - 18 0.0833 - 31 0.0833 - 45 0.0833 - 47 0.0833 - - 10 7 3 0 - 4 0.429 - 7 0.143 - 18 0.429 - - 13 26070 40 0 - 0 0.011 - 1 0.000153 - 2 0.024 - 3 0.0157 - 4 0.465 - 6 0.000192 - 7 0.112 - 8 0.0908 - 9 0.00226 - 10 0.00315 - 13 0.0171 - 14 0.00345 - 15 0.0185 - 16 0.000345 - 18 0.043 - 19 0.000575 - 20 0.0436 - 21 0.00832 - 22 0.000921 - 23 0.000806 - 24 0.00146 - 25 3.84e-05 - 26 0.00809 - 28 0.0181 - 29 0.0136 - 30 0.0134 - 31 0.00951 - 32 0.00326 - 33 0.0061 - 34 0.000614 - 35 0.000115 - 36 7.67e-05 - 37 0.00119 - 41 0.0252 - 42 0.00153 - 43 0.000422 - 44 0.000959 - 45 0.0114 - 46 0.00046 - 47 0.0233 - - 14 13431 41 0 - 0 0.0187 - 1 0.000223 - 2 0.0561 - 3 0.0497 - 4 0.12 - 6 0.000149 - 7 0.281 - 8 0.11 - 9 0.00439 - 10 0.00499 - 12 0.000223 - 13 0.00864 - 14 0.00127 - 15 0.00849 - 16 0.000149 - 18 0.0237 - 19 0.00067 - 20 0.0344 - 21 0.00834 - 22 0.000968 - 23 0.00119 - 24 0.00499 - 26 0.0237 - 28 0.0472 - 29 0.0201 - 30 0.0331 - 31 0.0135 - 32 0.0108 - 33 0.0134 - 34 0.000968 - 35 0.000298 - 36 7.45e-05 - 37 0.00328 - 40 7.45e-05 - 41 0.0369 - 42 0.00335 - 43 0.000298 - 44 0.00067 - 45 0.00752 - 46 0.000819 - 47 0.0462 - - 15 1891 29 0 - 0 0.00635 - 2 0.0212 - 3 0.028 - 4 0.366 - 7 0.24 - 8 0.0317 - 9 0.00159 - 10 0.000529 - 13 0.027 - 14 0.0111 - 15 0.01 - 18 0.0296 - 19 0.000529 - 20 0.0317 - 21 0.00687 - 24 0.000529 - 26 0.0169 - 28 0.0164 - 29 0.0196 - 30 0.0206 - 31 0.0169 - 32 0.00212 - 33 0.0074 - 37 0.00106 - 41 0.0365 - 42 0.0037 - 45 0.0037 - 46 0.000529 - 47 0.0418 - - 16 101 21 0 - 2 0.0594 - 3 0.0396 - 4 0.168 - 7 0.277 - 8 0.0396 - 10 0.0099 - 13 0.0297 - 15 0.0198 - 20 0.0396 - 21 0.0099 - 26 0.0297 - 28 0.0198 - 29 0.0099 - 30 0.0297 - 31 0.0198 - 32 0.0099 - 33 0.0198 - 41 0.0495 - 42 0.0198 - 45 0.0099 - 47 0.0891 - - 18 12 5 0 - 4 0.583 - 7 0.0833 - 8 0.0833 - 13 0.167 - 47 0.0833 - - 21 3 3 0 - 2 0.333 - 4 0.333 - 15 0.333 - - 30 120 24 0 - 0 0.00833 - 2 0.158 - 3 0.0333 - 4 0.267 - 7 0.15 - 8 0.0333 - 10 0.00833 - 13 0.00833 - 14 0.00833 - 15 0.00833 - 18 0.05 - 20 0.05 - 21 0.0167 - 24 0.00833 - 26 0.0167 - 28 0.0333 - 29 0.00833 - 30 0.0333 - 31 0.00833 - 32 0.00833 - 33 0.025 - 41 0.025 - 45 0.00833 - 47 0.025 - - 31 89 15 0 - 0 0.0225 - 2 0.0112 - 3 0.0112 - 4 0.258 - 7 0.247 - 8 0.124 - 13 0.0674 - 15 0.0337 - 18 0.0562 - 20 0.0337 - 21 0.0112 - 28 0.0225 - 29 0.0449 - 30 0.0337 - 47 0.0225 - - 39 13 2 0 - 4 0.923 - 19 0.0769 - - 41 312 24 0 - 0 0.0128 - 2 0.00962 - 3 0.00641 - 4 0.471 - 7 0.17 - 8 0.0417 - 15 0.00321 - 18 0.00641 - 20 0.0577 - 21 0.00641 - 23 0.00321 - 24 0.00321 - 26 0.0128 - 28 0.0128 - 29 0.00641 - 30 0.00962 - 31 0.00321 - 32 0.00962 - 33 0.016 - 34 0.00321 - 41 0.0641 - 42 0.00641 - 45 0.0192 - 47 0.0449 - - 43 3 3 0 - 2 0.333 - 4 0.333 - 44 0.333 - - 44 7 5 0 - 2 0.143 - 4 0.286 - 7 0.286 - 21 0.143 - 29 0.143 - - 45 95 14 0 - 0 0.0105 - 2 0.0211 - 3 0.0105 - 4 0.537 - 7 0.147 - 8 0.0526 - 13 0.0105 - 18 0.0316 - 20 0.0421 - 28 0.0421 - 30 0.0211 - 31 0.0105 - 41 0.0526 - 47 0.0105 - - 46 136 9 0 - 2 0.00735 - 4 0.00735 - 8 0.0221 - 16 0.00735 - 19 0.00735 - 20 0.00735 - 21 0.0147 - 41 0.0147 - 45 0.912 - - 47 1224 33 0 - 0 0.018 - 2 0.0359 - 3 0.0098 - 4 0.393 - 7 0.151 - 8 0.0237 - 9 0.000817 - 10 0.00163 - 13 0.0106 - 14 0.00408 - 18 0.000817 - 19 0.00163 - 20 0.0474 - 21 0.0637 - 22 0.00163 - 23 0.00817 - 24 0.00163 - 26 0.0147 - 28 0.0221 - 29 0.0327 - 30 0.0163 - 31 0.00817 - 32 0.00654 - 33 0.0106 - 34 0.00163 - 35 0.000817 - 37 0.0049 - 41 0.0408 - 42 0.00572 - 43 0.000817 - 44 0.00327 - 45 0.00654 - 47 0.0507 - - 48 199 22 0 - 0 0.0101 - 2 0.0201 - 3 0.00503 - 4 0.533 - 7 0.121 - 8 0.0452 - 17 0.00503 - 18 0.0653 - 20 0.0704 - 21 0.0151 - 23 0.00503 - 24 0.00503 - 26 0.00503 - 28 0.0101 - 30 0.0151 - 31 0.00503 - 32 0.0101 - 33 0.00503 - 41 0.0201 - 42 0.00503 - 45 0.00503 - 47 0.0201 - - 54 13 5 0 - 4 0.385 - 7 0.308 - 8 0.154 - 20 0.0769 - 29 0.0769 - - 55 22 9 0 - 2 0.0455 - 3 0.0455 - 4 0.455 - 7 0.0909 - 8 0.0455 - 18 0.0909 - 20 0.0909 - 21 0.0909 - 30 0.0455 - - 56 68 12 0 - 2 0.0147 - 3 0.0294 - 4 0.309 - 7 0.221 - 8 0.0441 - 20 0.0882 - 26 0.0441 - 28 0.0735 - 29 0.0294 - 30 0.0441 - 31 0.0294 - 41 0.0735 - - 58 17 5 0 - 0 0.118 - 4 0.588 - 7 0.176 - 24 0.0588 - 33 0.0588 - - 60 30 3 0 - 4 0.9 - 7 0.0333 - 20 0.0667 - - 68 40 12 0 - 2 0.025 - 4 0.475 - 7 0.15 - 8 0.025 - 20 0.025 - 26 0.05 - 28 0.075 - 29 0.025 - 30 0.025 - 37 0.025 - 41 0.05 - 47 0.05 - - 9 1597 31 14 - 0 0.0601 - 1 0.00125 - 2 0.0507 - 3 0.015 - 4 0.249 - 7 0.193 - 8 0.0106 - 12 0.000626 - 13 0.0025 - 14 0.00689 - 15 0.0025 - 16 0.000626 - 18 0.0113 - 19 0.0025 - 20 0.0144 - 21 0.0244 - 24 0.00626 - 26 0.0288 - 28 0.102 - 29 0.0394 - 30 0.0557 - 31 0.01 - 32 0.0276 - 33 0.0244 - 34 0.000626 - 37 0.000626 - 41 0.025 - 42 0.00313 - 43 0.000626 - 45 0.01 - 47 0.02 - - 2 4 4 0 - 0 0.25 - 7 0.25 - 28 0.25 - 41 0.25 - - 3 5 1 0 - 4 1 - - 8 103 16 0 - 0 0.0291 - 2 0.117 - 4 0.214 - 7 0.243 - 21 0.0194 - 24 0.00971 - 26 0.0777 - 28 0.0485 - 29 0.0583 - 30 0.0485 - 31 0.0194 - 32 0.0291 - 33 0.0194 - 41 0.0291 - 45 0.0194 - 47 0.0194 - - 13 734 28 0 - 0 0.0436 - 1 0.00136 - 2 0.0354 - 3 0.0109 - 4 0.384 - 7 0.147 - 8 0.00954 - 12 0.00136 - 13 0.00136 - 14 0.00817 - 15 0.00545 - 16 0.00136 - 18 0.0177 - 19 0.00545 - 20 0.0123 - 21 0.0123 - 24 0.0109 - 26 0.03 - 28 0.0858 - 29 0.0245 - 30 0.045 - 31 0.00545 - 32 0.0232 - 33 0.0204 - 41 0.0327 - 42 0.00545 - 45 0.00545 - 47 0.0136 - - 14 473 26 0 - 0 0.0402 - 2 0.0465 - 3 0.0275 - 4 0.0867 - 7 0.296 - 8 0.0148 - 13 0.00211 - 14 0.00423 - 18 0.0106 - 20 0.0169 - 21 0.0127 - 24 0.00211 - 26 0.0317 - 28 0.123 - 29 0.0613 - 30 0.0677 - 31 0.00846 - 32 0.0317 - 33 0.0296 - 34 0.00211 - 37 0.00211 - 41 0.0233 - 42 0.00211 - 43 0.00211 - 45 0.0148 - 47 0.0402 - - 15 39 8 0 - 2 0.0513 - 4 0.513 - 7 0.154 - 20 0.0513 - 28 0.103 - 29 0.0256 - 30 0.0769 - 41 0.0256 - - 16 2 2 0 - 8 0.5 - 29 0.5 - - 30 2 2 0 - 2 0.5 - 26 0.5 - - 41 17 7 0 - 4 0.471 - 7 0.235 - 20 0.0588 - 30 0.0588 - 31 0.0588 - 32 0.0588 - 33 0.0588 - - 45 3 3 0 - 0 0.333 - 4 0.333 - 33 0.333 - - 46 1 1 0 - 45 1 - - 47 201 18 0 - 0 0.194 - 1 0.00498 - 2 0.0896 - 3 0.0149 - 4 0.0746 - 7 0.109 - 8 0.00995 - 13 0.00995 - 14 0.0149 - 20 0.00498 - 21 0.109 - 28 0.154 - 29 0.0398 - 30 0.0647 - 31 0.0249 - 32 0.0398 - 33 0.0299 - 45 0.00995 - - 48 4 3 0 - 4 0.25 - 7 0.25 - 20 0.5 - - 56 5 4 0 - 7 0.2 - 28 0.2 - 30 0.4 - 47 0.2 - - 10 1526 27 9 - 0 0.00197 - 2 0.0262 - 3 0.019 - 4 0.479 - 7 0.106 - 8 0.00524 - 13 0.00262 - 14 0.000655 - 18 0.132 - 19 0.000655 - 20 0.0511 - 21 0.0059 - 24 0.00459 - 26 0.00328 - 28 0.0105 - 29 0.0151 - 30 0.00655 - 31 0.00262 - 32 0.00328 - 33 0.00721 - 34 0.00131 - 35 0.00131 - 37 0.00262 - 41 0.0256 - 42 0.00262 - 45 0.0177 - 47 0.0655 - - 3 13 2 0 - 4 0.923 - 7 0.0769 - - 8 156 15 0 - 2 0.0128 - 3 0.0449 - 4 0.429 - 7 0.147 - 8 0.00641 - 18 0.154 - 20 0.0897 - 21 0.00641 - 28 0.00641 - 29 0.00641 - 35 0.00641 - 41 0.0192 - 42 0.00641 - 45 0.0321 - 47 0.0321 - - 13 661 14 0 - 2 0.00756 - 3 0.0121 - 4 0.632 - 7 0.0242 - 8 0.00756 - 13 0.00151 - 18 0.219 - 19 0.00151 - 20 0.059 - 28 0.00151 - 33 0.00151 - 37 0.00151 - 41 0.00756 - 47 0.0227 - - 14 291 20 0 - 2 0.0447 - 3 0.0412 - 4 0.316 - 7 0.22 - 8 0.00687 - 13 0.00344 - 14 0.00344 - 18 0.0962 - 20 0.0481 - 21 0.00687 - 26 0.00687 - 29 0.00687 - 33 0.0103 - 34 0.00344 - 35 0.00344 - 37 0.00344 - 41 0.055 - 42 0.00344 - 45 0.0447 - 47 0.0756 - - 15 19 9 0 - 2 0.0526 - 3 0.0526 - 4 0.211 - 7 0.263 - 26 0.0526 - 28 0.0526 - 33 0.105 - 41 0.0526 - 47 0.158 - - 16 3 3 0 - 4 0.333 - 7 0.333 - 32 0.333 - - 31 3 3 0 - 3 0.333 - 18 0.333 - 20 0.333 - - 47 359 21 0 - 0 0.00836 - 2 0.0501 - 4 0.351 - 7 0.139 - 13 0.00557 - 20 0.0279 - 21 0.0167 - 24 0.0195 - 26 0.00557 - 28 0.0362 - 29 0.0557 - 30 0.0279 - 31 0.00836 - 32 0.0111 - 33 0.0139 - 34 0.00279 - 37 0.00279 - 41 0.039 - 42 0.00557 - 45 0.0195 - 47 0.153 - - 56 3 3 0 - 4 0.333 - 31 0.333 - 37 0.333 - - 12 5 4 0 - 4 0.4 - 15 0.2 - 45 0.2 - 46 0.2 - - 13 129892 43 24 - 0 0.0054 - 1 0.000123 - 2 0.0201 - 3 0.0473 - 4 0.298 - 6 0.000123 - 7 0.0813 - 8 0.21 - 9 0.00684 - 10 0.00527 - 12 3.85e-05 - 13 0.123 - 14 0.0094 - 15 0.0406 - 16 0.000762 - 18 0.0276 - 19 0.000362 - 20 0.0287 - 21 0.00234 - 22 5.39e-05 - 23 7.7e-06 - 24 0.000993 - 25 1.54e-05 - 26 0.0052 - 27 1.54e-05 - 28 0.0115 - 29 0.00598 - 30 0.0138 - 31 0.00949 - 32 0.00208 - 33 0.00347 - 34 0.000223 - 35 0.000108 - 36 1.54e-05 - 37 0.000908 - 40 0.0001 - 41 0.0179 - 42 0.00142 - 43 0.000508 - 44 0.000608 - 45 0.00449 - 46 0.00184 - 47 0.0122 - - 2 1627 31 0 - 0 0.0086 - 2 0.0172 - 3 0.00738 - 4 0.189 - 7 0.205 - 8 0.144 - 9 0.00553 - 10 0.00246 - 13 0.0688 - 14 0.00738 - 15 0.0277 - 16 0.00123 - 18 0.0332 - 20 0.0424 - 21 0.00307 - 24 0.00123 - 26 0.0117 - 28 0.0203 - 29 0.0086 - 30 0.0178 - 31 0.0135 - 32 0.00246 - 33 0.00676 - 37 0.000615 - 41 0.119 - 42 0.0043 - 43 0.00123 - 44 0.00123 - 45 0.00615 - 46 0.000615 - 47 0.0209 - - 3 92 11 0 - 3 0.0217 - 4 0.478 - 7 0.174 - 8 0.0435 - 13 0.0217 - 15 0.0109 - 18 0.163 - 20 0.0217 - 30 0.0109 - 41 0.0435 - 45 0.0109 - - 4 1 1 0 - 31 1 - - 8 268 24 0 - 0 0.00373 - 2 0.123 - 3 0.0336 - 4 0.243 - 7 0.127 - 8 0.097 - 9 0.00373 - 10 0.0112 - 13 0.104 - 14 0.00373 - 15 0.0373 - 18 0.0672 - 20 0.0299 - 26 0.00746 - 28 0.0187 - 29 0.0149 - 30 0.0149 - 31 0.00373 - 33 0.00373 - 37 0.00373 - 41 0.0261 - 42 0.00373 - 45 0.00746 - 47 0.0112 - - 10 1 1 0 - 45 1 - - 13 15006 38 0 - 0 0.004 - 1 0.0002 - 2 0.0364 - 3 0.0287 - 4 0.304 - 6 0.000267 - 7 0.0826 - 8 0.211 - 9 0.00553 - 10 0.0072 - 13 0.0804 - 14 0.00653 - 15 0.0508 - 16 0.0004 - 18 0.0394 - 19 0.0002 - 20 0.0337 - 21 0.00187 - 22 6.66e-05 - 24 0.0008 - 25 0.000133 - 26 0.00433 - 28 0.0114 - 29 0.00513 - 30 0.0114 - 31 0.011 - 32 0.0022 - 33 0.0046 - 35 0.0002 - 37 0.001 - 40 0.0004 - 41 0.028 - 42 0.00233 - 43 0.0006 - 44 0.000666 - 45 0.0076 - 46 0.0016 - 47 0.0133 - - 14 9907 35 0 - 0 0.00757 - 2 0.0784 - 3 0.0262 - 4 0.0705 - 7 0.178 - 8 0.229 - 9 0.0139 - 10 0.00737 - 13 0.0728 - 14 0.00262 - 15 0.0373 - 16 0.000101 - 18 0.0196 - 19 0.000303 - 20 0.0263 - 21 0.00313 - 23 0.000101 - 24 0.00444 - 26 0.0146 - 28 0.0333 - 29 0.013 - 30 0.028 - 31 0.0133 - 32 0.00616 - 33 0.0125 - 34 0.000808 - 35 0.000202 - 37 0.00384 - 41 0.0365 - 42 0.00303 - 43 0.000202 - 44 0.000505 - 45 0.00757 - 46 0.00212 - 47 0.0461 - - 15 788 27 0 - 0 0.00635 - 2 0.0127 - 3 0.0178 - 4 0.0787 - 7 0.085 - 8 0.184 - 13 0.221 - 14 0.0127 - 15 0.225 - 16 0.0152 - 18 0.0127 - 20 0.019 - 24 0.00127 - 26 0.00888 - 28 0.00381 - 29 0.0114 - 30 0.00888 - 31 0.00381 - 33 0.014 - 35 0.00127 - 37 0.00254 - 41 0.0292 - 42 0.00127 - 44 0.00254 - 45 0.00381 - 46 0.00254 - 47 0.0152 - - 16 9 7 0 - 2 0.222 - 4 0.222 - 7 0.111 - 13 0.111 - 14 0.111 - 15 0.111 - 20 0.111 - - 18 2901 26 0 - 0 0.00103 - 2 0.00483 - 3 0.00345 - 4 0.694 - 7 0.0476 - 8 0.0958 - 9 0.00276 - 10 0.00207 - 13 0.0589 - 14 0.00414 - 15 0.0269 - 19 0.000345 - 20 0.0203 - 21 0.000689 - 26 0.00483 - 28 0.00172 - 29 0.0031 - 30 0.00552 - 31 0.00172 - 32 0.00138 - 33 0.00138 - 41 0.00276 - 42 0.000345 - 44 0.000345 - 45 0.000689 - 47 0.0138 - - 20 2 2 0 - 7 0.5 - 26 0.5 - - 21 3 3 0 - 2 0.333 - 7 0.333 - 21 0.333 - - 26 2 2 0 - 3 0.5 - 29 0.5 - - 29 11 5 0 - 3 0.273 - 4 0.0909 - 7 0.0909 - 8 0.273 - 13 0.273 - - 30 102 12 0 - 2 0.186 - 4 0.412 - 7 0.0392 - 8 0.118 - 10 0.0294 - 13 0.0588 - 15 0.0392 - 18 0.0392 - 20 0.0196 - 31 0.0196 - 41 0.0294 - 45 0.0098 - - 31 13 5 0 - 7 0.538 - 8 0.154 - 13 0.0769 - 15 0.154 - 41 0.0769 - - 41 247 24 0 - 0 0.00405 - 2 0.0162 - 4 0.19 - 7 0.243 - 8 0.0729 - 9 0.00405 - 10 0.00405 - 13 0.0567 - 15 0.00405 - 18 0.0162 - 20 0.0364 - 21 0.00405 - 26 0.0162 - 28 0.0121 - 29 0.0121 - 30 0.0202 - 31 0.0162 - 32 0.00405 - 33 0.0202 - 41 0.174 - 42 0.0162 - 44 0.00405 - 45 0.0202 - 47 0.0324 - - 42 4 2 0 - 4 0.5 - 7 0.5 - - 43 15 3 0 - 2 0.0667 - 8 0.2 - 44 0.733 - - 45 36 10 0 - 2 0.0556 - 3 0.0556 - 4 0.389 - 7 0.25 - 8 0.111 - 15 0.0278 - 26 0.0278 - 30 0.0278 - 42 0.0278 - 47 0.0278 - - 46 101 7 0 - 4 0.0198 - 7 0.0099 - 8 0.307 - 13 0.119 - 15 0.0099 - 20 0.0198 - 45 0.515 - - 47 98717 41 0 - 0 0.0055 - 1 0.000132 - 2 0.0119 - 3 0.0547 - 4 0.312 - 6 0.000122 - 7 0.0697 - 8 0.213 - 9 0.00656 - 10 0.00492 - 12 5.06e-05 - 13 0.137 - 14 0.0107 - 15 0.0387 - 16 0.00079 - 18 0.0272 - 19 0.000405 - 20 0.0283 - 21 0.00239 - 22 6.08e-05 - 24 0.000709 - 26 0.00422 - 27 2.03e-05 - 28 0.00951 - 29 0.00538 - 30 0.013 - 31 0.0091 - 32 0.00169 - 33 0.00229 - 34 0.000213 - 35 8.1e-05 - 36 2.03e-05 - 37 0.000618 - 40 7.09e-05 - 41 0.0127 - 42 0.00106 - 43 0.000537 - 44 0.000476 - 45 0.00321 - 46 0.00193 - 47 0.00844 - - 48 12 4 0 - 4 0.667 - 7 0.0833 - 18 0.167 - 47 0.0833 - - 58 9 5 0 - 2 0.111 - 8 0.222 - 13 0.333 - 14 0.222 - 20 0.111 - - 14 59133 41 12 - 0 0.00551 - 1 8.46e-05 - 2 0.028 - 3 0.0954 - 4 0.101 - 6 0.000135 - 7 0.098 - 8 0.238 - 9 0.00913 - 10 0.00495 - 12 6.76e-05 - 13 0.172 - 14 0.0106 - 15 0.0368 - 16 0.000507 - 18 0.019 - 19 0.000287 - 20 0.0275 - 21 0.00211 - 22 1.69e-05 - 23 3.38e-05 - 24 0.00215 - 26 0.00883 - 28 0.0216 - 29 0.0107 - 30 0.0221 - 31 0.0124 - 32 0.00499 - 33 0.00504 - 34 0.00093 - 35 0.000237 - 36 3.38e-05 - 37 0.00277 - 40 6.76e-05 - 41 0.0213 - 42 0.00235 - 43 0.000541 - 44 0.000321 - 45 0.00424 - 46 0.00194 - 47 0.0282 - - 2 995 29 0 - 0 0.00603 - 2 0.0101 - 3 0.0141 - 4 0.112 - 7 0.22 - 8 0.166 - 9 0.0111 - 10 0.00503 - 13 0.112 - 14 0.00101 - 15 0.0211 - 18 0.0221 - 19 0.00101 - 20 0.0332 - 21 0.00402 - 24 0.00302 - 26 0.0121 - 28 0.0322 - 29 0.00503 - 30 0.0251 - 31 0.0121 - 32 0.00704 - 33 0.00603 - 35 0.00101 - 37 0.00201 - 41 0.109 - 42 0.00201 - 46 0.00201 - 47 0.0442 - - 7 1 1 0 - 21 1 - - 8 4 4 0 - 10 0.25 - 15 0.25 - 31 0.25 - 47 0.25 - - 13 1104 26 0 - 0 0.000906 - 2 0.0435 - 3 0.0154 - 4 0.302 - 7 0.0462 - 8 0.232 - 9 0.00181 - 10 0.00543 - 13 0.137 - 14 0.00996 - 15 0.067 - 18 0.0362 - 20 0.0272 - 21 0.000906 - 26 0.00181 - 28 0.00634 - 29 0.00181 - 30 0.00453 - 31 0.0127 - 33 0.00362 - 40 0.000906 - 41 0.0317 - 42 0.00181 - 44 0.000906 - 45 0.00272 - 47 0.00634 - - 14 561 28 0 - 0 0.00891 - 1 0.00178 - 2 0.082 - 3 0.0321 - 4 0.0731 - 7 0.152 - 8 0.225 - 9 0.00535 - 10 0.0125 - 13 0.0927 - 14 0.00891 - 15 0.0392 - 16 0.00178 - 18 0.0232 - 20 0.0214 - 21 0.00178 - 26 0.016 - 28 0.0107 - 29 0.0214 - 30 0.025 - 31 0.016 - 32 0.0125 - 33 0.00713 - 37 0.00535 - 41 0.0232 - 42 0.00891 - 45 0.00535 - 47 0.0677 - - 15 46 14 0 - 2 0.087 - 4 0.0652 - 7 0.174 - 8 0.0652 - 13 0.152 - 14 0.0217 - 15 0.217 - 24 0.0217 - 26 0.0217 - 30 0.0217 - 34 0.0217 - 37 0.0217 - 41 0.0435 - 47 0.0652 - - 18 545 28 0 - 0 0.00183 - 2 0.0183 - 3 0.0312 - 4 0.27 - 7 0.196 - 8 0.128 - 10 0.00734 - 13 0.0569 - 14 0.00917 - 15 0.0404 - 18 0.00734 - 20 0.0514 - 21 0.00183 - 24 0.00183 - 26 0.0202 - 28 0.0422 - 29 0.0183 - 30 0.0239 - 31 0.0147 - 32 0.00183 - 33 0.011 - 34 0.00183 - 37 0.0055 - 41 0.011 - 42 0.0055 - 45 0.00734 - 46 0.00183 - 47 0.0128 - - 21 2 2 0 - 7 0.5 - 45 0.5 - - 30 5 3 0 - 3 0.2 - 13 0.4 - 28 0.4 - - 41 126 20 0 - 3 0.00794 - 4 0.0794 - 7 0.23 - 8 0.0714 - 13 0.0952 - 14 0.00794 - 15 0.0159 - 18 0.0317 - 20 0.0397 - 21 0.00794 - 26 0.0159 - 28 0.0159 - 29 0.0159 - 30 0.0397 - 32 0.0159 - 33 0.00794 - 41 0.238 - 42 0.0317 - 45 0.0159 - 47 0.0159 - - 46 7 3 0 - 8 0.286 - 14 0.143 - 45 0.571 - - 47 55733 41 0 - 0 0.00562 - 1 7.18e-05 - 2 0.0276 - 3 0.1 - 4 0.0954 - 6 0.000144 - 7 0.095 - 8 0.241 - 9 0.0094 - 10 0.00484 - 12 7.18e-05 - 13 0.176 - 14 0.0108 - 15 0.0363 - 16 0.00052 - 18 0.0186 - 19 0.000287 - 20 0.0273 - 21 0.00208 - 22 1.79e-05 - 23 3.59e-05 - 24 0.00219 - 26 0.0087 - 28 0.0216 - 29 0.0108 - 30 0.0223 - 31 0.0124 - 32 0.00499 - 33 0.00497 - 34 0.000951 - 35 0.000233 - 36 3.59e-05 - 37 0.00278 - 40 5.38e-05 - 41 0.0191 - 42 0.00221 - 43 0.000574 - 44 0.000323 - 45 0.0042 - 46 0.00201 - 47 0.0281 - - 15 90066 40 28 - 0 0.00298 - 1 4.44e-05 - 2 0.0414 - 3 0.00516 - 4 0.0969 - 6 0.000544 - 7 0.163 - 8 0.0247 - 9 0.000611 - 10 0.000244 - 12 7.77e-05 - 13 0.0143 - 14 0.00192 - 15 0.379 - 16 0.00816 - 18 0.00975 - 19 0.000155 - 20 0.0042 - 21 0.00236 - 24 0.000744 - 25 2.22e-05 - 26 0.0111 - 28 0.00883 - 29 0.0172 - 30 0.00653 - 31 0.0057 - 32 0.00205 - 33 0.0132 - 34 0.00101 - 35 0.000489 - 36 2.22e-05 - 37 0.00244 - 40 0.000644 - 41 0.0659 - 42 0.00489 - 43 0.000533 - 44 0.00461 - 45 0.00521 - 46 0.00472 - 47 0.0883 - - 0 7 5 0 - 4 0.143 - 7 0.429 - 8 0.143 - 41 0.143 - 47 0.143 - - 2 1783 31 0 - 0 0.00112 - 2 0.0202 - 3 0.00449 - 4 0.0892 - 6 0.000561 - 7 0.192 - 8 0.0135 - 13 0.00953 - 14 0.0101 - 15 0.306 - 16 0.0107 - 18 0.0129 - 20 0.00449 - 21 0.00112 - 24 0.00224 - 26 0.0107 - 28 0.00729 - 29 0.00897 - 30 0.00897 - 31 0.00168 - 32 0.000561 - 33 0.0028 - 34 0.000561 - 37 0.00112 - 40 0.00449 - 41 0.183 - 42 0.00449 - 44 0.0028 - 45 0.00393 - 46 0.000561 - 47 0.0802 - - 3 170 13 0 - 2 0.0118 - 3 0.0235 - 4 0.494 - 7 0.118 - 8 0.0471 - 15 0.0529 - 18 0.0706 - 20 0.129 - 28 0.0118 - 33 0.00588 - 41 0.0176 - 45 0.00588 - 47 0.0118 - - 4 9 5 0 - 0 0.111 - 2 0.111 - 7 0.222 - 15 0.444 - 45 0.111 - - 6 42 14 0 - 0 0.0238 - 2 0.0238 - 4 0.0476 - 6 0.0714 - 7 0.0952 - 8 0.0476 - 13 0.0238 - 15 0.357 - 26 0.0238 - 30 0.0238 - 33 0.0476 - 40 0.0476 - 41 0.0476 - 47 0.119 - - 7 26 10 0 - 4 0.0769 - 7 0.0769 - 13 0.0385 - 14 0.0385 - 15 0.385 - 18 0.0385 - 26 0.0385 - 41 0.154 - 45 0.115 - 47 0.0385 - - 8 530 25 0 - 0 0.00189 - 2 0.0226 - 3 0.0245 - 4 0.219 - 7 0.117 - 8 0.0528 - 9 0.00377 - 10 0.00377 - 13 0.017 - 15 0.408 - 18 0.00566 - 20 0.0151 - 26 0.00189 - 28 0.00377 - 29 0.00755 - 30 0.00755 - 31 0.00566 - 32 0.00189 - 33 0.00566 - 34 0.00189 - 37 0.00189 - 41 0.0283 - 44 0.00189 - 45 0.00189 - 47 0.0396 - - 13 5143 34 0 - 0 0.00136 - 2 0.0212 - 3 0.0148 - 4 0.396 - 6 0.000194 - 7 0.0609 - 8 0.0791 - 9 0.00331 - 10 0.000972 - 13 0.00719 - 14 0.000778 - 15 0.278 - 16 0.00486 - 18 0.0282 - 19 0.000583 - 20 0.0249 - 21 0.00156 - 24 0.000583 - 26 0.0035 - 28 0.00681 - 29 0.00506 - 30 0.00817 - 31 0.00564 - 32 0.00156 - 33 0.00506 - 37 0.00117 - 40 0.000583 - 41 0.0124 - 42 0.00117 - 43 0.000194 - 44 0.00117 - 45 0.00136 - 46 0.000194 - 47 0.021 - - 14 2150 33 0 - 0 0.00465 - 2 0.0488 - 3 0.0512 - 4 0.107 - 7 0.158 - 8 0.0963 - 9 0.00884 - 10 0.00279 - 13 0.00186 - 14 0.00093 - 15 0.25 - 16 0.00186 - 18 0.00837 - 20 0.0163 - 21 0.00279 - 24 0.00186 - 26 0.0223 - 28 0.0219 - 29 0.0107 - 30 0.0163 - 31 0.00744 - 32 0.00279 - 33 0.00651 - 34 0.00093 - 36 0.000465 - 37 0.0014 - 41 0.047 - 42 0.00279 - 43 0.00093 - 44 0.0014 - 45 0.00233 - 46 0.00093 - 47 0.093 - - 15 33917 38 0 - 0 0.00433 - 1 2.95e-05 - 2 0.0472 - 3 0.00448 - 4 0.102 - 6 0.000383 - 7 0.168 - 8 0.0195 - 9 0.000206 - 10 0.000236 - 12 5.9e-05 - 13 0.0196 - 14 0.00162 - 15 0.265 - 16 0.00363 - 18 0.0144 - 19 0.000147 - 20 0.00419 - 21 0.00242 - 24 0.000885 - 26 0.0134 - 28 0.00867 - 29 0.0286 - 30 0.00678 - 31 0.00436 - 32 0.00236 - 33 0.0287 - 34 0.00115 - 35 0.000649 - 37 0.00327 - 40 0.000472 - 41 0.0754 - 42 0.00669 - 43 0.000118 - 44 0.00313 - 45 0.00566 - 46 0.0108 - 47 0.142 - - 16 1508 30 0 - 0 0.00265 - 2 0.059 - 3 0.0106 - 4 0.115 - 7 0.208 - 8 0.0232 - 13 0.00464 - 14 0.00133 - 15 0.273 - 16 0.00133 - 18 0.0199 - 20 0.00862 - 21 0.000663 - 24 0.00133 - 25 0.000663 - 26 0.00995 - 28 0.00597 - 29 0.00995 - 30 0.00862 - 31 0.00464 - 33 0.00597 - 34 0.000663 - 35 0.000663 - 37 0.00133 - 41 0.0603 - 42 0.0179 - 43 0.000663 - 44 0.000663 - 45 0.00663 - 47 0.137 - - 18 5065 34 0 - 0 0.0101 - 2 0.0369 - 3 0.00118 - 4 0.0539 - 7 0.243 - 8 0.00967 - 9 0.000197 - 13 0.00296 - 14 0.00079 - 15 0.351 - 16 0.00415 - 18 0.00079 - 19 0.000197 - 20 0.000592 - 21 0.00494 - 24 0.00257 - 26 0.017 - 28 0.0265 - 29 0.0186 - 30 0.0128 - 31 0.00731 - 32 0.00592 - 33 0.0113 - 34 0.000592 - 35 0.000395 - 36 0.000197 - 37 0.00138 - 41 0.0661 - 42 0.00415 - 43 0.000197 - 44 0.00118 - 45 0.00395 - 46 0.00237 - 47 0.0971 - - 19 6 3 0 - 7 0.333 - 15 0.5 - 45 0.167 - - 21 4 1 0 - 47 1 - - 29 4 3 0 - 4 0.5 - 15 0.25 - 20 0.25 - - 30 22 6 0 - 2 0.0455 - 4 0.273 - 8 0.0909 - 15 0.5 - 18 0.0455 - 29 0.0455 - - 40 80 12 0 - 2 0.0625 - 4 0.0625 - 7 0.15 - 13 0.0125 - 15 0.463 - 16 0.0375 - 18 0.0125 - 31 0.0125 - 41 0.075 - 44 0.05 - 45 0.0125 - 47 0.05 - - 41 441 25 0 - 0 0.00454 - 2 0.0635 - 3 0.00227 - 4 0.0385 - 7 0.413 - 8 0.00907 - 13 0.0204 - 14 0.00454 - 15 0.0794 - 16 0.00454 - 18 0.00907 - 20 0.00454 - 21 0.00454 - 26 0.0181 - 28 0.00907 - 29 0.00454 - 30 0.00907 - 31 0.00454 - 37 0.00227 - 40 0.00227 - 41 0.204 - 42 0.0136 - 44 0.00227 - 45 0.0068 - 47 0.0658 - - 43 18 4 0 - 4 0.0556 - 13 0.0556 - 15 0.5 - 44 0.389 - - 44 6 5 0 - 2 0.167 - 4 0.167 - 15 0.333 - 26 0.167 - 32 0.167 - - 45 26 8 0 - 3 0.0385 - 4 0.192 - 7 0.154 - 8 0.0385 - 15 0.423 - 33 0.0385 - 41 0.0769 - 45 0.0385 - - 46 51 8 0 - 4 0.0196 - 7 0.0196 - 8 0.0196 - 15 0.333 - 18 0.0196 - 28 0.0196 - 45 0.49 - 47 0.0784 - - 47 38960 39 0 - 0 0.00108 - 1 7.7e-05 - 2 0.0398 - 3 0.00198 - 4 0.0551 - 6 0.000796 - 7 0.158 - 8 0.0203 - 9 0.000231 - 10 2.57e-05 - 12 0.000128 - 13 0.0134 - 14 0.00218 - 15 0.515 - 16 0.0138 - 18 0.0037 - 19 0.000128 - 20 0.000385 - 21 0.00223 - 24 0.000282 - 25 2.57e-05 - 26 0.00893 - 28 0.00649 - 29 0.0102 - 30 0.00454 - 31 0.00685 - 32 0.00149 - 33 0.00249 - 34 0.00113 - 35 0.000488 - 37 0.00223 - 40 0.000719 - 41 0.0599 - 42 0.00357 - 43 0.001 - 44 0.00706 - 45 0.0049 - 46 0.0011 - 47 0.0488 - - 48 41 7 0 - 4 0.146 - 7 0.0488 - 8 0.0244 - 15 0.707 - 18 0.0244 - 28 0.0244 - 47 0.0244 - - 54 5 3 0 - 4 0.6 - 7 0.2 - 47 0.2 - - 55 2 2 0 - 3 0.5 - 8 0.5 - - 58 35 7 0 - 2 0.0571 - 4 0.0857 - 7 0.0857 - 8 0.0857 - 15 0.629 - 20 0.0286 - 30 0.0286 - - 68 6 2 0 - 4 0.5 - 7 0.5 - - 16 2650 32 9 - 0 0.00189 - 2 0.0325 - 3 0.0136 - 4 0.156 - 7 0.0634 - 8 0.0408 - 9 0.000755 - 10 0.00113 - 13 0.00453 - 14 0.000755 - 15 0.57 - 16 0.0158 - 18 0.0125 - 19 0.000377 - 20 0.00189 - 21 0.0034 - 26 0.00377 - 28 0.00453 - 29 0.00113 - 30 0.00415 - 31 0.00151 - 32 0.000377 - 33 0.00226 - 34 0.000377 - 37 0.00113 - 40 0.00189 - 41 0.0208 - 42 0.00189 - 44 0.00113 - 45 0.00528 - 46 0.000377 - 47 0.0298 - - 2 111 10 0 - 3 0.00901 - 4 0.468 - 7 0.0631 - 8 0.018 - 15 0.288 - 18 0.00901 - 26 0.018 - 41 0.0541 - 45 0.018 - 47 0.0541 - - 8 8 3 0 - 3 0.125 - 15 0.75 - 45 0.125 - - 13 94 10 0 - 2 0.0426 - 3 0.0106 - 4 0.0638 - 7 0.0106 - 8 0.0426 - 13 0.0106 - 15 0.787 - 16 0.0106 - 20 0.0106 - 41 0.0106 - - 14 27 7 0 - 2 0.111 - 4 0.111 - 7 0.0741 - 15 0.593 - 16 0.037 - 28 0.037 - 47 0.037 - - 15 731 19 0 - 0 0.00137 - 2 0.0369 - 4 0.0301 - 7 0.0451 - 8 0.00274 - 13 0.0041 - 15 0.774 - 16 0.00684 - 18 0.0301 - 20 0.00274 - 21 0.00274 - 26 0.00137 - 29 0.00137 - 30 0.00137 - 33 0.00274 - 40 0.00547 - 41 0.0219 - 45 0.00137 - 47 0.0274 - - 16 42 11 0 - 3 0.143 - 4 0.119 - 7 0.119 - 8 0.119 - 15 0.167 - 26 0.0238 - 28 0.0238 - 41 0.0714 - 42 0.0238 - 45 0.0238 - 47 0.167 - - 18 66 8 0 - 2 0.0152 - 4 0.439 - 7 0.0303 - 8 0.0303 - 15 0.439 - 20 0.0152 - 26 0.0152 - 47 0.0152 - - 41 8 4 0 - 7 0.125 - 15 0.25 - 41 0.5 - 42 0.125 - - 47 1553 32 0 - 0 0.00258 - 2 0.0328 - 3 0.0174 - 4 0.191 - 7 0.0753 - 8 0.0599 - 9 0.00129 - 10 0.00193 - 13 0.00515 - 14 0.00129 - 15 0.495 - 16 0.0225 - 18 0.00644 - 19 0.000644 - 20 0.000644 - 21 0.00451 - 26 0.00322 - 28 0.00644 - 29 0.00129 - 30 0.00644 - 31 0.00258 - 32 0.000644 - 33 0.00258 - 34 0.000644 - 37 0.00193 - 40 0.000644 - 41 0.0161 - 42 0.00193 - 44 0.00193 - 45 0.0058 - 46 0.000644 - 47 0.0283 - - 17 321 24 2 - 0 0.0592 - 1 0.00312 - 2 0.0436 - 7 0.364 - 8 0.00312 - 9 0.00312 - 13 0.00623 - 14 0.00623 - 15 0.00312 - 19 0.00623 - 21 0.0343 - 24 0.00935 - 26 0.0218 - 28 0.103 - 29 0.0498 - 30 0.0498 - 31 0.0374 - 32 0.0156 - 33 0.0218 - 37 0.0125 - 41 0.0405 - 42 0.00312 - 45 0.0187 - 47 0.0841 - - 20 19 9 0 - 0 0.0526 - 7 0.316 - 26 0.0526 - 28 0.158 - 29 0.105 - 30 0.158 - 32 0.0526 - 42 0.0526 - 47 0.0526 - - 55 18 11 0 - 0 0.0556 - 2 0.0556 - 7 0.333 - 21 0.0556 - 26 0.111 - 28 0.0556 - 30 0.0556 - 31 0.0556 - 37 0.111 - 41 0.0556 - 47 0.0556 - - 18 8667 14 1 - 0 0.000115 - 3 0.00288 - 6 0.000231 - 8 0.00138 - 13 0.335 - 14 0.0631 - 15 0.587 - 16 0.00762 - 19 0.000808 - 21 0.000692 - 28 0.000577 - 30 0.000115 - 31 0.000346 - 32 0.000115 - - 13 4 4 0 - 13 0.25 - 14 0.25 - 15 0.25 - 21 0.25 - - 19 17428 40 9 - 0 0.00947 - 1 0.000115 - 2 0.0516 - 3 0.00138 - 4 0.0023 - 5 5.74e-05 - 7 0.171 - 8 0.00482 - 9 0.000402 - 10 0.000574 - 12 0.00304 - 13 0.0332 - 14 0.0155 - 15 0.00419 - 16 0.00023 - 18 5.74e-05 - 19 0.00161 - 21 0.0168 - 22 0.000402 - 23 5.74e-05 - 24 0.000115 - 26 0.00637 - 27 5.74e-05 - 28 0.0543 - 29 0.101 - 30 0.0205 - 31 0.0106 - 32 0.0237 - 33 0.0276 - 34 0.00861 - 35 0.0122 - 37 0.0274 - 40 5.74e-05 - 41 0.12 - 42 0.011 - 43 0.000516 - 44 0.00161 - 45 0.0876 - 46 0.0315 - 47 0.139 - - 2 7 5 0 - 2 0.286 - 7 0.286 - 26 0.143 - 34 0.143 - 41 0.143 - - 8 10 7 0 - 7 0.1 - 21 0.1 - 28 0.1 - 29 0.2 - 30 0.3 - 33 0.1 - 45 0.1 - - 13 15 7 0 - 2 0.0667 - 7 0.267 - 28 0.133 - 29 0.333 - 32 0.0667 - 33 0.0667 - 47 0.0667 - - 14 6 5 0 - 4 0.167 - 7 0.333 - 41 0.167 - 45 0.167 - 47 0.167 - - 15 4 4 0 - 4 0.25 - 15 0.25 - 18 0.25 - 47 0.25 - - 18 7 5 0 - 26 0.143 - 28 0.143 - 30 0.286 - 41 0.286 - 42 0.143 - - 41 1 1 0 - 15 1 - - 46 1 1 0 - 8 1 - - 48 4 3 0 - 7 0.5 - 33 0.25 - 41 0.25 - - 20 8397 36 20 - 0 0.0151 - 1 0.000357 - 2 0.0497 - 3 0.000357 - 4 0.00691 - 7 0.425 - 8 0.00214 - 9 0.000238 - 10 0.000119 - 12 0.000238 - 13 0.00429 - 14 0.00155 - 15 0.00131 - 16 0.000119 - 17 0.0031 - 18 0.000238 - 19 0.000238 - 21 0.00893 - 24 0.0168 - 26 0.0355 - 28 0.134 - 29 0.0905 - 30 0.0537 - 31 0.022 - 32 0.0139 - 33 0.0257 - 34 0.000834 - 35 0.00143 - 37 0.00631 - 41 0.025 - 42 0.00441 - 43 0.000119 - 44 0.000715 - 45 0.00965 - 46 0.00131 - 47 0.0381 - - 3 122 14 0 - 0 0.0164 - 2 0.0902 - 7 0.549 - 13 0.0082 - 15 0.0082 - 26 0.041 - 28 0.082 - 29 0.107 - 30 0.0246 - 31 0.0082 - 32 0.0082 - 33 0.0082 - 45 0.0082 - 47 0.041 - - 8 1980 30 0 - 0 0.0232 - 2 0.0399 - 3 0.000505 - 4 0.00253 - 7 0.483 - 8 0.00202 - 9 0.000505 - 13 0.00253 - 14 0.00101 - 15 0.00202 - 16 0.000505 - 17 0.00101 - 19 0.000505 - 21 0.00808 - 24 0.0121 - 26 0.0348 - 28 0.122 - 29 0.0884 - 30 0.05 - 31 0.0197 - 32 0.0136 - 33 0.0242 - 35 0.000505 - 37 0.00354 - 41 0.0217 - 42 0.00707 - 44 0.00101 - 45 0.00707 - 46 0.00101 - 47 0.0258 - - 9 23 6 0 - 2 0.0435 - 7 0.696 - 28 0.0435 - 29 0.087 - 41 0.0435 - 47 0.087 - - 10 78 15 0 - 0 0.0641 - 2 0.0256 - 7 0.449 - 8 0.0128 - 14 0.0128 - 26 0.0897 - 28 0.0256 - 29 0.0513 - 30 0.0256 - 31 0.0256 - 32 0.0128 - 37 0.0256 - 41 0.115 - 42 0.0128 - 47 0.0513 - - 13 3723 32 0 - 0 0.0142 - 2 0.047 - 4 0.00967 - 7 0.385 - 8 0.00161 - 9 0.000269 - 12 0.000537 - 13 0.00537 - 14 0.00161 - 15 0.00161 - 17 0.00322 - 18 0.000537 - 19 0.000269 - 21 0.0094 - 24 0.0172 - 26 0.033 - 28 0.132 - 29 0.107 - 30 0.0543 - 31 0.0277 - 32 0.0126 - 33 0.0312 - 34 0.00134 - 35 0.00134 - 37 0.00779 - 41 0.0263 - 42 0.00349 - 43 0.000269 - 44 0.000806 - 45 0.0145 - 46 0.00134 - 47 0.0486 - - 14 1627 27 0 - 0 0.00922 - 1 0.00184 - 2 0.0719 - 4 0.00676 - 7 0.406 - 8 0.00369 - 10 0.000615 - 13 0.00307 - 14 0.00246 - 17 0.00676 - 21 0.0117 - 24 0.0252 - 26 0.0363 - 28 0.154 - 29 0.0615 - 30 0.0639 - 31 0.0191 - 32 0.024 - 33 0.0234 - 34 0.000615 - 35 0.00307 - 37 0.00553 - 41 0.024 - 42 0.00492 - 45 0.00492 - 46 0.00123 - 47 0.0252 - - 15 368 17 0 - 0 0.00272 - 2 0.0272 - 4 0.00815 - 7 0.478 - 13 0.00272 - 24 0.0136 - 26 0.0408 - 28 0.163 - 29 0.111 - 30 0.0489 - 31 0.00815 - 33 0.0163 - 35 0.00272 - 37 0.0109 - 41 0.0109 - 45 0.00272 - 47 0.0516 - - 21 5 4 0 - 0 0.4 - 7 0.2 - 30 0.2 - 41 0.2 - - 29 1 1 0 - 42 1 - - 30 55 11 0 - 2 0.0727 - 7 0.436 - 8 0.0182 - 21 0.0182 - 24 0.0727 - 26 0.0364 - 28 0.218 - 29 0.0182 - 30 0.0545 - 33 0.0182 - 41 0.0364 - - 31 52 13 0 - 0 0.0192 - 2 0.0385 - 7 0.442 - 24 0.0192 - 26 0.0577 - 28 0.173 - 29 0.0962 - 30 0.0385 - 31 0.0192 - 37 0.0192 - 41 0.0192 - 46 0.0192 - 47 0.0385 - - 43 1 1 0 - 44 1 - - 44 5 3 0 - 7 0.6 - 32 0.2 - 45 0.2 - - 45 40 10 0 - 2 0.05 - 7 0.4 - 26 0.1 - 28 0.1 - 29 0.075 - 30 0.125 - 31 0.025 - 33 0.05 - 41 0.025 - 47 0.05 - - 47 34 12 0 - 0 0.0294 - 2 0.0588 - 3 0.0588 - 7 0.5 - 26 0.0294 - 28 0.0294 - 29 0.0294 - 30 0.0588 - 31 0.0294 - 33 0.0294 - 41 0.0294 - 47 0.118 - - 48 185 19 0 - 0 0.00541 - 2 0.027 - 4 0.00541 - 7 0.465 - 13 0.0162 - 17 0.00541 - 21 0.0216 - 24 0.0108 - 26 0.0216 - 28 0.195 - 29 0.0811 - 30 0.0486 - 31 0.0108 - 32 0.00541 - 33 0.0108 - 41 0.0378 - 45 0.00541 - 46 0.00541 - 47 0.0216 - - 54 23 6 0 - 2 0.13 - 7 0.522 - 13 0.0435 - 26 0.087 - 28 0.087 - 47 0.13 - - 56 36 12 0 - 2 0.0278 - 4 0.0278 - 7 0.5 - 26 0.0556 - 28 0.167 - 29 0.0278 - 31 0.0278 - 33 0.0278 - 34 0.0278 - 37 0.0278 - 41 0.0278 - 47 0.0556 - - 60 7 4 0 - 2 0.143 - 7 0.571 - 26 0.143 - 30 0.143 - - 68 4 3 0 - 4 0.25 - 7 0.5 - 28 0.25 - - 21 1703 33 27 - 0 0.102 - 1 0.00176 - 2 0.0552 - 3 0.0182 - 4 0.0804 - 7 0.203 - 8 0.00411 - 10 0.00117 - 12 0.000587 - 13 0.0393 - 14 0.0252 - 15 0.0153 - 18 0.00117 - 19 0.00294 - 20 0.00294 - 21 0.0687 - 23 0.000587 - 24 0.00646 - 26 0.00763 - 28 0.0399 - 29 0.0341 - 30 0.0164 - 31 0.0188 - 32 0.00881 - 33 0.0241 - 34 0.00411 - 37 0.00528 - 41 0.0781 - 42 0.017 - 44 0.00294 - 45 0.0153 - 46 0.00117 - 47 0.0981 - - 2 4 2 0 - 0 0.25 - 7 0.75 - - 3 108 17 0 - 0 0.13 - 1 0.00926 - 2 0.0648 - 7 0.296 - 13 0.0185 - 15 0.037 - 21 0.0463 - 24 0.00926 - 26 0.00926 - 28 0.0463 - 29 0.13 - 32 0.00926 - 33 0.0278 - 37 0.00926 - 41 0.0648 - 44 0.00926 - 47 0.0833 - - 4 458 23 0 - 0 0.138 - 1 0.00437 - 2 0.0852 - 3 0.00437 - 7 0.17 - 13 0.0524 - 14 0.0306 - 15 0.0131 - 21 0.048 - 24 0.00873 - 28 0.0218 - 29 0.0349 - 30 0.024 - 31 0.0284 - 32 0.00873 - 33 0.0328 - 34 0.00437 - 37 0.00218 - 41 0.105 - 42 0.024 - 45 0.0197 - 46 0.00218 - 47 0.138 - - 7 11 7 0 - 0 0.0909 - 7 0.182 - 14 0.364 - 21 0.0909 - 24 0.0909 - 30 0.0909 - 42 0.0909 - - 8 298 28 0 - 0 0.094 - 2 0.0235 - 3 0.0101 - 4 0.225 - 7 0.124 - 8 0.00671 - 10 0.00336 - 13 0.0268 - 14 0.0168 - 15 0.0134 - 18 0.00671 - 19 0.00336 - 20 0.0168 - 21 0.057 - 24 0.0101 - 26 0.0168 - 28 0.057 - 29 0.0436 - 30 0.0268 - 31 0.0101 - 32 0.0201 - 33 0.0302 - 37 0.0101 - 41 0.047 - 42 0.0101 - 45 0.0268 - 46 0.00336 - 47 0.0604 - - 9 27 12 0 - 0 0.148 - 4 0.0741 - 7 0.259 - 8 0.037 - 15 0.037 - 21 0.037 - 26 0.0741 - 28 0.0741 - 29 0.037 - 30 0.0741 - 33 0.037 - 41 0.111 - - 10 5 1 0 - 4 1 - - 13 130 21 0 - 0 0.115 - 2 0.0231 - 3 0.0231 - 4 0.0615 - 7 0.192 - 8 0.00769 - 13 0.0308 - 14 0.0154 - 15 0.0231 - 21 0.0538 - 26 0.00769 - 28 0.0231 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.0154 - 37 0.0154 - 41 0.154 - 42 0.0231 - 44 0.00769 - 47 0.162 - - 14 42 13 0 - 0 0.0714 - 2 0.119 - 7 0.0952 - 13 0.0238 - 15 0.0476 - 19 0.0238 - 21 0.0476 - 33 0.0238 - 34 0.0238 - 41 0.262 - 42 0.0238 - 45 0.0476 - 47 0.19 - - 15 57 11 0 - 2 0.0351 - 3 0.263 - 7 0.0526 - 13 0.105 - 14 0.0702 - 28 0.0175 - 31 0.0175 - 32 0.0351 - 41 0.193 - 42 0.0175 - 47 0.193 - - 16 5 3 0 - 2 0.4 - 15 0.4 - 21 0.2 - - 17 8 5 0 - 7 0.25 - 21 0.125 - 29 0.125 - 33 0.125 - 47 0.375 - - 18 4 1 0 - 13 1 - - 19 3 3 0 - 7 0.333 - 41 0.333 - 45 0.333 - - 20 17 8 0 - 0 0.0588 - 2 0.118 - 7 0.235 - 21 0.118 - 28 0.176 - 41 0.118 - 44 0.0588 - 47 0.118 - - 21 57 20 0 - 0 0.0702 - 2 0.0877 - 4 0.0175 - 7 0.123 - 8 0.0175 - 13 0.0175 - 14 0.0526 - 15 0.0351 - 21 0.0351 - 28 0.158 - 29 0.0351 - 30 0.0175 - 31 0.0702 - 32 0.0351 - 33 0.0351 - 34 0.0175 - 41 0.0175 - 42 0.0351 - 44 0.0175 - 47 0.105 - - 22 8 6 0 - 0 0.25 - 4 0.125 - 7 0.125 - 19 0.25 - 41 0.125 - 47 0.125 - - 28 3 3 0 - 0 0.333 - 45 0.333 - 47 0.333 - - 30 5 4 0 - 0 0.2 - 2 0.4 - 4 0.2 - 28 0.2 - - 31 26 9 0 - 0 0.115 - 3 0.0385 - 4 0.423 - 7 0.192 - 8 0.0385 - 30 0.0385 - 37 0.0385 - 41 0.0385 - 47 0.0769 - - 39 2 2 0 - 2 0.5 - 28 0.5 - - 40 2 1 0 - 3 1 - - 47 369 26 0 - 0 0.0623 - 2 0.0379 - 3 0.0108 - 4 0.106 - 7 0.347 - 8 0.00271 - 10 0.00271 - 12 0.00271 - 13 0.0461 - 14 0.0244 - 15 0.00542 - 19 0.00271 - 21 0.144 - 23 0.00271 - 24 0.00542 - 26 0.0108 - 28 0.0379 - 29 0.0244 - 30 0.00542 - 31 0.0217 - 33 0.0108 - 34 0.00542 - 37 0.00271 - 41 0.019 - 45 0.00813 - 47 0.0515 - - 48 7 5 0 - 0 0.286 - 4 0.143 - 41 0.143 - 42 0.143 - 45 0.286 - - 49 2 2 0 - 33 0.5 - 42 0.5 - - 55 30 12 0 - 0 0.167 - 2 0.0667 - 7 0.1 - 14 0.0333 - 21 0.1 - 28 0.0333 - 30 0.0333 - 33 0.0333 - 41 0.133 - 42 0.167 - 44 0.0333 - 47 0.1 - - 56 3 3 0 - 0 0.333 - 4 0.333 - 34 0.333 - - 22 205 23 5 - 0 0.039 - 2 0.0195 - 3 0.00488 - 4 0.0634 - 7 0.0585 - 8 0.0146 - 13 0.146 - 14 0.0585 - 15 0.0634 - 16 0.00488 - 19 0.00488 - 21 0.0683 - 24 0.0146 - 26 0.00488 - 28 0.0293 - 29 0.0634 - 30 0.0293 - 31 0.0634 - 32 0.00976 - 33 0.0244 - 41 0.0195 - 45 0.0146 - 47 0.18 - - 4 128 16 0 - 0 0.00781 - 2 0.0156 - 3 0.00781 - 7 0.0156 - 8 0.0234 - 13 0.234 - 14 0.0859 - 15 0.102 - 16 0.00781 - 19 0.00781 - 21 0.0391 - 24 0.00781 - 29 0.0859 - 31 0.0781 - 41 0.0156 - 47 0.266 - - 8 34 14 0 - 0 0.0588 - 2 0.0588 - 4 0.265 - 7 0.147 - 14 0.0294 - 21 0.0294 - 24 0.0294 - 28 0.0294 - 30 0.118 - 31 0.0294 - 33 0.0294 - 41 0.0588 - 45 0.0588 - 47 0.0588 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 26 0.25 - 47 0.25 - - 47 34 12 0 - 0 0.118 - 4 0.0588 - 7 0.118 - 21 0.235 - 24 0.0294 - 28 0.0882 - 29 0.0588 - 30 0.0294 - 31 0.0588 - 32 0.0588 - 33 0.118 - 45 0.0294 - - 48 3 3 0 - 4 0.333 - 7 0.333 - 28 0.333 - - 23 73 13 2 - 0 0.0411 - 2 0.0685 - 4 0.466 - 7 0.151 - 8 0.0137 - 13 0.0274 - 18 0.0137 - 20 0.0137 - 29 0.0137 - 32 0.0137 - 33 0.0137 - 41 0.0548 - 47 0.11 - - 8 50 11 0 - 0 0.06 - 2 0.04 - 4 0.6 - 7 0.1 - 8 0.02 - 13 0.02 - 18 0.02 - 20 0.02 - 32 0.02 - 41 0.02 - 47 0.08 - - 47 19 8 0 - 2 0.105 - 4 0.211 - 7 0.263 - 13 0.0526 - 29 0.0526 - 33 0.0526 - 41 0.105 - 47 0.158 - - 24 4 3 0 - 22 0.25 - 24 0.25 - 30 0.5 - - 25 14 3 0 - 15 0.0714 - 42 0.0714 - 47 0.857 - - 26 6 4 0 - 3 0.333 - 13 0.333 - 21 0.167 - 47 0.167 - - 27 8 5 0 - 0 0.125 - 4 0.125 - 26 0.125 - 30 0.125 - 45 0.5 - - 28 126 20 5 - 0 0.0317 - 2 0.0952 - 4 0.0159 - 7 0.0159 - 12 0.00794 - 13 0.00794 - 14 0.00794 - 19 0.00794 - 21 0.0317 - 26 0.46 - 28 0.0952 - 30 0.0238 - 32 0.00794 - 34 0.00794 - 35 0.00794 - 41 0.00794 - 42 0.0238 - 44 0.0238 - 45 0.0556 - 47 0.0635 - - 2 4 3 0 - 26 0.25 - 28 0.25 - 44 0.5 - - 3 4 3 0 - 2 0.25 - 14 0.25 - 26 0.5 - - 13 10 6 0 - 0 0.1 - 2 0.2 - 26 0.2 - 41 0.1 - 42 0.1 - 47 0.3 - - 14 16 7 0 - 2 0.312 - 4 0.0625 - 12 0.0625 - 13 0.0625 - 26 0.312 - 35 0.0625 - 42 0.125 - - 47 80 13 0 - 0 0.0375 - 2 0.0375 - 4 0.0125 - 7 0.025 - 19 0.0125 - 21 0.05 - 26 0.538 - 28 0.125 - 30 0.025 - 32 0.0125 - 34 0.0125 - 45 0.0625 - 47 0.05 - - 29 40 11 2 - 2 0.125 - 4 0.025 - 7 0.025 - 13 0.325 - 14 0.025 - 15 0.15 - 20 0.025 - 21 0.025 - 31 0.025 - 41 0.2 - 42 0.05 - - 8 11 3 0 - 13 0.545 - 31 0.0909 - 41 0.364 - - 14 10 5 0 - 7 0.1 - 13 0.4 - 14 0.1 - 15 0.2 - 42 0.2 - - 30 1783 33 10 - 0 0.00673 - 2 0.0432 - 3 0.0107 - 4 0.337 - 7 0.204 - 8 0.0707 - 9 0.00112 - 10 0.00112 - 13 0.06 - 14 0.00393 - 15 0.0123 - 16 0.00112 - 18 0.0488 - 19 0.000561 - 20 0.0308 - 21 0.00393 - 22 0.000561 - 24 0.00393 - 26 0.0123 - 28 0.0275 - 29 0.0123 - 30 0.0157 - 31 0.00617 - 32 0.00449 - 33 0.00897 - 36 0.000561 - 37 0.0028 - 41 0.0314 - 42 0.0028 - 43 0.000561 - 45 0.00505 - 46 0.000561 - 47 0.0286 - - 2 15 6 0 - 4 0.2 - 7 0.467 - 22 0.0667 - 28 0.0667 - 41 0.133 - 47 0.0667 - - 3 8 1 0 - 4 1 - - 8 96 15 0 - 0 0.0104 - 2 0.0312 - 3 0.0104 - 4 0.417 - 7 0.25 - 8 0.0104 - 13 0.0104 - 15 0.0104 - 18 0.0938 - 20 0.0312 - 26 0.0104 - 28 0.0312 - 29 0.0312 - 30 0.0208 - 47 0.0312 - - 13 884 28 0 - 0 0.00226 - 2 0.0351 - 3 0.00792 - 4 0.436 - 7 0.0995 - 8 0.0735 - 13 0.106 - 14 0.00339 - 15 0.0181 - 16 0.00226 - 18 0.0622 - 20 0.0328 - 21 0.00226 - 24 0.00452 - 26 0.00452 - 28 0.0158 - 29 0.0102 - 30 0.00905 - 31 0.00566 - 32 0.00113 - 33 0.00679 - 36 0.00113 - 37 0.00113 - 41 0.0317 - 42 0.00113 - 43 0.00113 - 45 0.00566 - 47 0.0192 - - 14 489 28 0 - 0 0.0123 - 2 0.0654 - 3 0.0204 - 4 0.131 - 7 0.299 - 8 0.115 - 9 0.00409 - 10 0.00409 - 13 0.0245 - 14 0.00613 - 15 0.0102 - 18 0.0389 - 19 0.00204 - 20 0.0389 - 21 0.00204 - 24 0.00409 - 26 0.0204 - 28 0.0389 - 29 0.00818 - 30 0.0307 - 31 0.00409 - 32 0.0143 - 33 0.0102 - 37 0.00613 - 41 0.0327 - 42 0.00613 - 46 0.00204 - 47 0.0491 - - 15 59 12 0 - 2 0.0339 - 3 0.0169 - 4 0.593 - 7 0.136 - 8 0.0169 - 18 0.0508 - 20 0.0339 - 26 0.0339 - 31 0.0169 - 33 0.0169 - 41 0.0339 - 47 0.0169 - - 30 4 4 0 - 4 0.25 - 7 0.25 - 29 0.25 - 41 0.25 - - 46 3 1 0 - 45 1 - - 47 198 20 0 - 0 0.0152 - 2 0.0455 - 4 0.237 - 7 0.439 - 8 0.00505 - 14 0.00505 - 20 0.00505 - 21 0.0202 - 24 0.00505 - 26 0.0202 - 28 0.0606 - 29 0.0253 - 30 0.0101 - 31 0.0152 - 33 0.0202 - 37 0.00505 - 41 0.0354 - 42 0.00505 - 45 0.00505 - 47 0.0202 - - 48 8 5 0 - 4 0.5 - 8 0.125 - 18 0.125 - 20 0.125 - 26 0.125 - - 31 1447 30 13 - 0 0.0104 - 2 0.0297 - 3 0.02 - 4 0.411 - 7 0.157 - 8 0.0643 - 9 0.00138 - 10 0.00207 - 13 0.0145 - 14 0.00138 - 15 0.00484 - 16 0.000691 - 18 0.0408 - 19 0.000691 - 20 0.0359 - 21 0.0221 - 24 0.00415 - 26 0.0194 - 28 0.0235 - 29 0.0111 - 30 0.027 - 31 0.00484 - 32 0.00346 - 33 0.00898 - 37 0.000691 - 41 0.0235 - 42 0.0152 - 43 0.00138 - 45 0.00829 - 47 0.0318 - - 2 4 2 0 - 4 0.5 - 47 0.5 - - 3 16 4 0 - 4 0.75 - 7 0.125 - 13 0.0625 - 14 0.0625 - - 8 111 18 0 - 0 0.00901 - 2 0.045 - 4 0.342 - 7 0.252 - 8 0.0811 - 9 0.00901 - 18 0.018 - 20 0.027 - 21 0.018 - 26 0.027 - 28 0.027 - 29 0.00901 - 30 0.00901 - 31 0.00901 - 33 0.00901 - 41 0.027 - 45 0.00901 - 47 0.0721 - - 13 747 27 0 - 0 0.00803 - 2 0.0241 - 3 0.0161 - 4 0.483 - 7 0.123 - 8 0.0589 - 9 0.00134 - 10 0.00268 - 13 0.00803 - 14 0.00134 - 15 0.00535 - 18 0.0589 - 19 0.00134 - 20 0.0455 - 21 0.0201 - 24 0.00402 - 26 0.012 - 28 0.0187 - 29 0.012 - 30 0.0228 - 31 0.00268 - 32 0.00402 - 33 0.00669 - 41 0.0214 - 42 0.00669 - 45 0.00669 - 47 0.0241 - - 14 423 27 0 - 0 0.0165 - 2 0.0473 - 3 0.0402 - 4 0.199 - 7 0.215 - 8 0.0922 - 10 0.00236 - 13 0.0331 - 15 0.00709 - 16 0.00236 - 18 0.0284 - 20 0.0213 - 21 0.026 - 24 0.00709 - 26 0.0355 - 28 0.0402 - 29 0.0142 - 30 0.0473 - 31 0.00946 - 32 0.00473 - 33 0.0165 - 37 0.00236 - 41 0.0165 - 42 0.0355 - 43 0.00473 - 45 0.00709 - 47 0.0284 - - 15 45 6 0 - 4 0.711 - 7 0.178 - 20 0.0222 - 21 0.0444 - 30 0.0222 - 41 0.0222 - - 18 3 2 0 - 4 0.333 - 41 0.667 - - 30 4 3 0 - 0 0.25 - 7 0.25 - 41 0.5 - - 41 7 2 0 - 4 0.714 - 41 0.286 - - 46 3 1 0 - 45 1 - - 47 45 6 0 - 4 0.733 - 7 0.0222 - 20 0.0444 - 21 0.0444 - 42 0.0444 - 47 0.111 - - 48 19 4 0 - 4 0.737 - 18 0.0526 - 20 0.158 - 26 0.0526 - - 60 8 1 0 - 4 1 - - 32 7 4 0 - 7 0.571 - 15 0.143 - 16 0.143 - 41 0.143 - - 33 22 11 0 - 0 0.136 - 2 0.227 - 4 0.0909 - 7 0.0909 - 13 0.0455 - 19 0.0909 - 21 0.0909 - 32 0.0455 - 41 0.0909 - 42 0.0455 - 44 0.0455 - - 34 68 18 2 - 2 0.0441 - 7 0.103 - 8 0.0294 - 13 0.0147 - 14 0.0294 - 15 0.0147 - 21 0.0147 - 28 0.0147 - 30 0.0147 - 32 0.0147 - 33 0.0147 - 35 0.0147 - 37 0.0147 - 41 0.397 - 42 0.0441 - 45 0.0147 - 46 0.0147 - 47 0.191 - - 13 4 3 0 - 7 0.5 - 8 0.25 - 28 0.25 - - 14 3 2 0 - 30 0.333 - 47 0.667 - - 35 8 6 0 - 0 0.125 - 2 0.125 - 26 0.125 - 28 0.125 - 33 0.125 - 47 0.375 - - 36 7 3 0 - 13 0.143 - 14 0.143 - 41 0.714 - - 37 5 4 0 - 7 0.2 - 21 0.2 - 28 0.4 - 33 0.2 - - 38 13 6 0 - 7 0.308 - 24 0.0769 - 26 0.385 - 28 0.0769 - 29 0.0769 - 33 0.0769 - - 39 1798 26 1 - 0 0.0289 - 2 0.191 - 4 0.015 - 6 0.00111 - 7 0.391 - 8 0.0106 - 13 0.00334 - 14 0.00167 - 15 0.00278 - 18 0.00222 - 19 0.00167 - 20 0.00222 - 21 0.0384 - 24 0.00222 - 26 0.12 - 28 0.0211 - 29 0.0651 - 30 0.0117 - 31 0.0117 - 32 0.00222 - 33 0.00612 - 41 0.0184 - 42 0.0139 - 43 0.000556 - 44 0.035 - 47 0.00222 - - 3 8 5 0 - 2 0.25 - 4 0.25 - 20 0.25 - 33 0.125 - 41 0.125 - - 40 83 3 0 - 15 0.964 - 16 0.012 - 21 0.0241 - - 41 1289 21 18 - 0 0.000776 - 2 0.000776 - 3 0.0279 - 7 0.00155 - 8 0.26 - 9 0.014 - 10 0.00388 - 11 0.00155 - 13 0.206 - 14 0.102 - 15 0.353 - 16 0.00698 - 19 0.00233 - 21 0.00233 - 22 0.000776 - 24 0.000776 - 29 0.000776 - 30 0.00465 - 31 0.00853 - 33 0.000776 - 43 0.000776 - - 2 27 6 0 - 3 0.0741 - 8 0.037 - 13 0.481 - 14 0.111 - 15 0.259 - 33 0.037 - - 3 25 1 0 - 3 1 - - 8 318 11 0 - 0 0.00314 - 3 0.0252 - 8 0.836 - 9 0.0252 - 13 0.0597 - 14 0.00314 - 15 0.00629 - 16 0.00314 - 24 0.00314 - 30 0.0126 - 31 0.022 - - 9 9 3 0 - 8 0.556 - 9 0.333 - 13 0.111 - - 10 1 1 0 - 10 1 - - 13 240 5 0 - 8 0.05 - 13 0.729 - 14 0.162 - 15 0.0542 - 31 0.00417 - - 14 117 4 0 - 8 0.0256 - 13 0.248 - 14 0.718 - 21 0.00855 - - 15 430 6 0 - 8 0.00233 - 9 0.00233 - 13 0.0093 - 15 0.981 - 19 0.00233 - 43 0.00233 - - 16 9 2 0 - 15 0.222 - 16 0.778 - - 21 9 4 0 - 2 0.111 - 8 0.444 - 13 0.222 - 15 0.222 - - 31 4 3 0 - 8 0.5 - 13 0.25 - 31 0.25 - - 46 11 2 0 - 13 0.727 - 15 0.273 - - 48 53 7 0 - 8 0.698 - 9 0.0943 - 10 0.0755 - 13 0.0566 - 14 0.0189 - 30 0.0189 - 31 0.0377 - - 49 1 1 0 - 21 1 - - 50 1 1 0 - 22 1 - - 55 16 8 0 - 3 0.0625 - 11 0.0625 - 13 0.25 - 14 0.188 - 15 0.188 - 19 0.125 - 29 0.0625 - 30 0.0625 - - 61 1 1 0 - 16 1 - - 64 6 5 0 - 7 0.333 - 11 0.167 - 13 0.167 - 14 0.167 - 21 0.167 - - 42 86 19 4 - 0 0.0116 - 4 0.0233 - 7 0.0233 - 8 0.0581 - 11 0.0233 - 13 0.0698 - 14 0.0233 - 15 0.0116 - 19 0.0116 - 21 0.0116 - 25 0.0116 - 27 0.0233 - 28 0.0116 - 29 0.0116 - 30 0.0116 - 40 0.0116 - 42 0.0116 - 46 0.0116 - 47 0.628 - - 2 6 3 0 - 8 0.333 - 13 0.333 - 27 0.333 - - 15 31 2 0 - 15 0.0323 - 47 0.968 - - 55 24 14 0 - 7 0.0833 - 8 0.0417 - 11 0.0833 - 13 0.0833 - 14 0.0833 - 21 0.0417 - 25 0.0417 - 28 0.0417 - 29 0.0417 - 30 0.0417 - 40 0.0417 - 42 0.0417 - 46 0.0417 - 47 0.292 - - 62 2 2 0 - 0 0.5 - 19 0.5 - - 43 48 9 1 - 3 0.0208 - 4 0.0208 - 8 0.0625 - 13 0.312 - 15 0.396 - 18 0.0625 - 20 0.0208 - 28 0.0208 - 40 0.0833 - - 15 13 4 0 - 4 0.0769 - 13 0.0769 - 15 0.769 - 40 0.0769 - - 44 91 19 7 - 0 0.011 - 2 0.033 - 3 0.011 - 4 0.319 - 7 0.121 - 8 0.0769 - 13 0.033 - 14 0.022 - 15 0.0879 - 20 0.0549 - 23 0.011 - 26 0.033 - 28 0.044 - 30 0.011 - 34 0.011 - 40 0.044 - 41 0.011 - 42 0.011 - 47 0.0549 - - 4 2 2 0 - 0 0.5 - 26 0.5 - - 8 10 5 0 - 4 0.4 - 7 0.2 - 8 0.2 - 26 0.1 - 40 0.1 - - 13 25 9 0 - 3 0.04 - 4 0.44 - 7 0.08 - 8 0.12 - 13 0.04 - 15 0.08 - 20 0.12 - 23 0.04 - 28 0.04 - - 15 33 12 0 - 2 0.0606 - 4 0.303 - 7 0.152 - 8 0.0303 - 13 0.0303 - 15 0.182 - 20 0.0303 - 28 0.0303 - 30 0.0303 - 34 0.0303 - 40 0.0909 - 41 0.0303 - - 19 2 2 0 - 2 0.5 - 13 0.5 - - 55 10 5 0 - 4 0.1 - 7 0.2 - 28 0.1 - 42 0.1 - 47 0.5 - - 60 2 1 0 - 14 1 - - 45 1242 32 20 - 0 0.0266 - 1 0.000805 - 2 0.0282 - 3 0.0121 - 4 0.357 - 7 0.153 - 8 0.0837 - 9 0.00242 - 10 0.00161 - 13 0.0346 - 14 0.00322 - 15 0.0225 - 18 0.0548 - 19 0.00161 - 20 0.0322 - 21 0.00483 - 22 0.000805 - 24 0.00322 - 26 0.00886 - 28 0.0242 - 29 0.0169 - 30 0.0298 - 31 0.0185 - 32 0.00242 - 33 0.0137 - 40 0.000805 - 41 0.0145 - 42 0.00805 - 44 0.00564 - 45 0.000805 - 46 0.00242 - 47 0.0298 - - 3 11 6 0 - 0 0.0909 - 2 0.0909 - 4 0.545 - 7 0.0909 - 8 0.0909 - 33 0.0909 - - 4 35 13 0 - 0 0.143 - 2 0.0286 - 4 0.0286 - 7 0.229 - 13 0.0571 - 21 0.0571 - 28 0.0857 - 29 0.0286 - 30 0.0286 - 33 0.0571 - 41 0.0857 - 42 0.0571 - 47 0.114 - - 6 4 3 0 - 2 0.25 - 4 0.5 - 42 0.25 - - 8 363 25 0 - 0 0.00826 - 2 0.00551 - 3 0.0165 - 4 0.551 - 7 0.107 - 8 0.0606 - 9 0.00275 - 10 0.00275 - 13 0.00826 - 15 0.00275 - 18 0.0468 - 19 0.00275 - 20 0.0358 - 21 0.00551 - 22 0.00275 - 24 0.00551 - 26 0.00826 - 28 0.0275 - 29 0.0193 - 30 0.0303 - 31 0.0193 - 33 0.00551 - 41 0.0138 - 42 0.00275 - 47 0.00826 - - 10 6 2 0 - 4 0.833 - 20 0.167 - - 13 292 19 0 - 2 0.0445 - 3 0.00685 - 4 0.5 - 7 0.0616 - 8 0.12 - 9 0.00342 - 13 0.0753 - 14 0.00685 - 15 0.0103 - 18 0.0651 - 20 0.0342 - 26 0.00685 - 28 0.00685 - 29 0.00342 - 30 0.0103 - 31 0.0205 - 41 0.00342 - 46 0.0103 - 47 0.0103 - - 14 68 17 0 - 0 0.0147 - 2 0.0294 - 3 0.0147 - 4 0.103 - 7 0.0588 - 8 0.338 - 9 0.0147 - 10 0.0147 - 13 0.162 - 15 0.0147 - 18 0.118 - 19 0.0147 - 20 0.0294 - 28 0.0294 - 30 0.0147 - 31 0.0147 - 33 0.0147 - - 15 97 14 0 - 2 0.0103 - 3 0.0103 - 4 0.34 - 7 0.0412 - 8 0.0928 - 13 0.0309 - 15 0.196 - 18 0.134 - 20 0.0412 - 31 0.0103 - 33 0.0103 - 40 0.0103 - 44 0.0103 - 47 0.0619 - - 16 3 3 0 - 8 0.333 - 20 0.333 - 29 0.333 - - 20 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 18 0.167 - 33 0.167 - - 21 5 5 0 - 4 0.2 - 7 0.2 - 24 0.2 - 29 0.2 - 33 0.2 - - 22 2 2 0 - 20 0.5 - 26 0.5 - - 27 4 3 0 - 2 0.5 - 30 0.25 - 32 0.25 - - 30 6 3 0 - 4 0.667 - 7 0.167 - 31 0.167 - - 31 8 6 0 - 0 0.125 - 8 0.25 - 18 0.25 - 20 0.125 - 29 0.125 - 31 0.125 - - 48 28 9 0 - 0 0.0714 - 4 0.5 - 7 0.179 - 8 0.0357 - 13 0.0357 - 18 0.0357 - 29 0.0357 - 30 0.0714 - 31 0.0357 - - 54 10 7 0 - 0 0.1 - 2 0.1 - 3 0.1 - 4 0.2 - 15 0.2 - 18 0.2 - 20 0.1 - - 55 237 25 0 - 0 0.0717 - 1 0.00422 - 2 0.0422 - 3 0.00844 - 4 0.00844 - 7 0.409 - 8 0.00422 - 13 0.00422 - 14 0.00422 - 15 0.00844 - 18 0.00422 - 21 0.00422 - 24 0.00422 - 26 0.0211 - 28 0.0549 - 29 0.0338 - 30 0.0759 - 31 0.0211 - 32 0.00844 - 33 0.0338 - 41 0.038 - 42 0.0211 - 44 0.0211 - 45 0.00422 - 47 0.0886 - - 56 22 6 0 - 3 0.0455 - 4 0.364 - 8 0.318 - 18 0.0909 - 20 0.136 - 21 0.0455 - - 62 21 8 0 - 0 0.0952 - 3 0.0476 - 4 0.286 - 7 0.333 - 14 0.0476 - 20 0.0952 - 42 0.0476 - 44 0.0476 - - 46 382 21 10 - 3 0.0105 - 6 0.00524 - 8 0.387 - 9 0.00262 - 10 0.00524 - 13 0.304 - 14 0.0183 - 15 0.162 - 16 0.0105 - 18 0.00524 - 19 0.00524 - 21 0.00262 - 27 0.00262 - 28 0.00785 - 29 0.00262 - 30 0.0131 - 31 0.0157 - 40 0.00524 - 41 0.0288 - 46 0.00262 - 47 0.00262 - - 2 14 5 0 - 13 0.643 - 14 0.143 - 15 0.0714 - 41 0.0714 - 47 0.0714 - - 3 2 2 0 - 9 0.5 - 15 0.5 - - 8 15 5 0 - 6 0.0667 - 8 0.467 - 13 0.333 - 28 0.0667 - 31 0.0667 - - 13 206 14 0 - 3 0.00971 - 8 0.422 - 10 0.00485 - 13 0.325 - 14 0.0146 - 15 0.136 - 16 0.0146 - 18 0.00971 - 19 0.00971 - 27 0.00485 - 28 0.00971 - 30 0.0194 - 31 0.0146 - 46 0.00485 - - 14 99 11 0 - 3 0.0202 - 6 0.0101 - 8 0.495 - 10 0.0101 - 13 0.333 - 14 0.0202 - 15 0.0606 - 16 0.0101 - 21 0.0101 - 29 0.0101 - 31 0.0202 - - 15 30 5 0 - 8 0.1 - 13 0.0667 - 15 0.767 - 30 0.0333 - 40 0.0333 - - 45 3 1 0 - 41 1 - - 48 1 1 0 - 40 1 - - 55 6 1 0 - 41 1 - - 58 3 1 0 - 15 1 - - 47 311752 45 53 - 0 0.0388 - 1 0.0005 - 2 0.0469 - 3 0.00405 - 4 0.00179 - 5 1.6e-05 - 6 7.7e-05 - 7 0.382 - 8 0.00254 - 9 0.000189 - 10 9.3e-05 - 12 0.000388 - 13 0.0121 - 14 0.00672 - 15 0.00325 - 16 0.000112 - 17 0.000106 - 18 0.000202 - 19 0.00157 - 20 7.7e-05 - 21 0.0104 - 22 0.00016 - 23 1.28e-05 - 24 0.00627 - 25 3.85e-05 - 26 0.0366 - 27 6.42e-06 - 28 0.0599 - 29 0.0565 - 30 0.0332 - 31 0.0151 - 32 0.0125 - 33 0.026 - 34 0.00184 - 35 0.00141 - 36 1.92e-05 - 37 0.00624 - 40 9.94e-05 - 41 0.0842 - 42 0.0135 - 43 0.00033 - 44 0.00341 - 45 0.0148 - 46 0.00455 - 47 0.111 - - 0 3 3 0 - 7 0.333 - 14 0.333 - 44 0.333 - - 2 61 15 0 - 0 0.0656 - 2 0.0328 - 7 0.344 - 21 0.0164 - 26 0.0164 - 29 0.0164 - 30 0.0492 - 32 0.0164 - 33 0.0328 - 34 0.0164 - 41 0.0984 - 42 0.0492 - 44 0.0164 - 45 0.0164 - 47 0.213 - - 3 11856 34 0 - 0 0.0347 - 1 0.000422 - 2 0.066 - 3 0.000506 - 4 0.000759 - 7 0.359 - 8 0.00793 - 13 0.038 - 14 0.00506 - 15 0.00793 - 16 8.43e-05 - 18 0.000169 - 19 0.0011 - 21 0.038 - 24 0.00371 - 25 8.43e-05 - 26 0.083 - 28 0.0361 - 29 0.134 - 30 0.0172 - 31 0.0135 - 32 0.00472 - 33 0.0179 - 34 0.0016 - 35 0.000253 - 37 0.00118 - 40 0.000253 - 41 0.0499 - 42 0.0328 - 43 0.000843 - 44 0.00321 - 45 0.00346 - 46 0.00118 - 47 0.0361 - - 4 79613 41 0 - 0 0.0484 - 1 0.000754 - 2 0.0331 - 3 0.013 - 4 0.000666 - 5 2.51e-05 - 6 2.51e-05 - 7 0.404 - 8 0.00131 - 9 0.000214 - 10 7.54e-05 - 12 0.000415 - 13 0.0103 - 14 0.0123 - 15 0.0024 - 16 0.0001 - 17 0.000301 - 18 1.26e-05 - 19 0.00236 - 21 0.0111 - 22 0.000377 - 23 1.26e-05 - 24 0.00705 - 26 0.0314 - 28 0.0638 - 29 0.0519 - 30 0.0339 - 31 0.0147 - 32 0.0126 - 33 0.0216 - 34 0.00148 - 35 0.00126 - 37 0.00661 - 40 5.02e-05 - 41 0.0806 - 42 0.00671 - 43 0.000427 - 44 0.00117 - 45 0.0121 - 46 0.00315 - 47 0.108 - - 5 861 24 0 - 0 0.00581 - 2 0.0918 - 7 0.18 - 8 0.00465 - 10 0.00348 - 13 0.0186 - 14 0.00465 - 15 0.00232 - 16 0.00116 - 19 0.00232 - 21 0.029 - 28 0.0163 - 29 0.0395 - 30 0.00465 - 31 0.00232 - 32 0.0279 - 33 0.0151 - 34 0.00813 - 37 0.0267 - 41 0.143 - 42 0.00813 - 44 0.00232 - 45 0.167 - 47 0.195 - - 6 48 13 0 - 2 0.0208 - 4 0.0208 - 7 0.375 - 19 0.0208 - 25 0.0417 - 26 0.0417 - 28 0.0417 - 29 0.0208 - 32 0.0208 - 33 0.0208 - 41 0.104 - 45 0.125 - 47 0.146 - - 7 266 22 0 - 0 0.0526 - 2 0.0376 - 3 0.00376 - 7 0.18 - 8 0.0113 - 10 0.00376 - 13 0.147 - 14 0.105 - 15 0.015 - 21 0.0188 - 26 0.0338 - 28 0.0639 - 29 0.0489 - 30 0.0263 - 31 0.0263 - 32 0.0113 - 33 0.0301 - 35 0.00376 - 41 0.0564 - 42 0.0113 - 45 0.0113 - 47 0.102 - - 8 19385 39 0 - 0 0.0334 - 1 0.000464 - 2 0.0742 - 3 0.00284 - 4 0.00212 - 6 0.000258 - 7 0.434 - 8 0.00175 - 9 5.16e-05 - 12 0.000155 - 13 0.0156 - 14 0.00655 - 15 0.00542 - 16 0.000206 - 18 0.000516 - 19 0.00119 - 20 5.16e-05 - 21 0.00774 - 22 0.000155 - 24 0.00665 - 25 5.16e-05 - 26 0.0329 - 28 0.0675 - 29 0.0412 - 30 0.0447 - 31 0.0181 - 32 0.0144 - 33 0.0214 - 34 0.0016 - 35 0.000516 - 36 0.000103 - 37 0.00464 - 41 0.0594 - 42 0.00645 - 43 0.000258 - 44 0.00165 - 45 0.0122 - 46 0.000413 - 47 0.0797 - - 9 1078 30 0 - 0 0.0891 - 1 0.00186 - 2 0.0714 - 3 0.000928 - 4 0.000928 - 7 0.286 - 8 0.00371 - 12 0.000928 - 13 0.00278 - 14 0.00742 - 15 0.00371 - 16 0.000928 - 18 0.00278 - 19 0.00371 - 21 0.0111 - 24 0.00928 - 26 0.0427 - 28 0.151 - 29 0.0584 - 30 0.0826 - 31 0.0139 - 32 0.0408 - 33 0.0362 - 34 0.000928 - 37 0.000928 - 41 0.0288 - 42 0.00464 - 43 0.000928 - 45 0.0121 - 47 0.0297 - - 10 467 25 0 - 0 0.00642 - 2 0.0814 - 3 0.00214 - 4 0.00642 - 7 0.343 - 8 0.00214 - 13 0.00642 - 14 0.00214 - 19 0.00214 - 21 0.00857 - 24 0.015 - 26 0.0107 - 28 0.0343 - 29 0.0493 - 30 0.0214 - 31 0.00857 - 32 0.0107 - 33 0.0236 - 34 0.00428 - 35 0.00428 - 37 0.00857 - 41 0.0814 - 42 0.00857 - 45 0.045 - 47 0.214 - - 12 2 2 0 - 45 0.5 - 46 0.5 - - 13 22292 40 0 - 0 0.0312 - 1 0.000718 - 2 0.0474 - 3 0.000942 - 4 0.00493 - 7 0.47 - 8 0.00287 - 9 0.000449 - 10 8.97e-05 - 12 0.000224 - 13 0.0139 - 14 0.00453 - 15 0.00359 - 16 0.000135 - 18 0.000224 - 19 0.00144 - 20 4.49e-05 - 21 0.00763 - 22 8.97e-05 - 24 0.00574 - 25 8.97e-05 - 26 0.0302 - 27 4.49e-05 - 28 0.0663 - 29 0.0343 - 30 0.0394 - 31 0.0156 - 32 0.012 - 33 0.0202 - 34 0.00112 - 35 0.000538 - 37 0.00529 - 40 4.49e-05 - 41 0.0834 - 42 0.00745 - 43 0.000179 - 44 0.00242 - 45 0.0131 - 46 0.00112 - 47 0.0713 - - 14 14611 37 0 - 0 0.0223 - 1 0.000342 - 2 0.0463 - 3 0.000137 - 4 0.0011 - 6 6.84e-05 - 7 0.397 - 8 0.0024 - 9 0.000274 - 10 6.84e-05 - 12 0.000274 - 13 0.00609 - 14 0.00342 - 15 0.000342 - 18 0.000274 - 19 0.000753 - 21 0.00527 - 22 6.84e-05 - 24 0.00862 - 26 0.0357 - 28 0.0862 - 29 0.0426 - 30 0.0557 - 31 0.0153 - 32 0.0201 - 33 0.0203 - 34 0.00356 - 35 0.000958 - 37 0.0112 - 40 0.000137 - 41 0.0757 - 42 0.00897 - 43 0.000205 - 44 0.00103 - 45 0.0125 - 46 0.000958 - 47 0.114 - - 15 39318 40 0 - 0 0.00677 - 1 0.000102 - 2 0.0486 - 3 0.00145 - 4 0.00305 - 6 0.000178 - 7 0.372 - 8 0.00542 - 9 0.000203 - 10 7.63e-05 - 12 0.000153 - 13 0.0124 - 14 0.0032 - 15 0.0044 - 16 5.09e-05 - 18 0.000382 - 19 0.000254 - 20 0.000254 - 21 0.00387 - 24 0.0017 - 25 2.54e-05 - 26 0.0255 - 28 0.0202 - 29 0.0393 - 30 0.0134 - 31 0.011 - 32 0.00471 - 33 0.0302 - 34 0.00231 - 35 0.00112 - 36 5.09e-05 - 37 0.0056 - 40 0.000203 - 41 0.14 - 42 0.0104 - 43 0.000102 - 44 0.00972 - 45 0.00946 - 46 0.01 - 47 0.202 - - 16 399 24 0 - 0 0.0125 - 2 0.0501 - 4 0.00752 - 7 0.421 - 8 0.00251 - 13 0.00752 - 14 0.00501 - 15 0.00251 - 20 0.00251 - 21 0.01 - 26 0.0251 - 28 0.0301 - 29 0.00752 - 30 0.0226 - 31 0.00501 - 32 0.00251 - 33 0.015 - 34 0.00251 - 37 0.00752 - 41 0.115 - 42 0.0125 - 44 0.00752 - 45 0.0276 - 47 0.198 - - 17 312 24 0 - 0 0.0609 - 1 0.00321 - 2 0.0449 - 7 0.372 - 8 0.00321 - 9 0.00321 - 13 0.00641 - 14 0.00641 - 15 0.00321 - 19 0.00641 - 21 0.00962 - 24 0.00962 - 26 0.0224 - 28 0.106 - 29 0.0513 - 30 0.0513 - 31 0.0385 - 32 0.016 - 33 0.0224 - 37 0.0128 - 41 0.0417 - 42 0.00321 - 45 0.0192 - 47 0.0865 - - 18 4 1 0 - 28 1 - - 19 17392 39 0 - 0 0.00949 - 1 0.000115 - 2 0.0515 - 3 0.00138 - 4 0.00149 - 5 5.75e-05 - 7 0.171 - 8 0.00477 - 9 0.000402 - 10 0.000575 - 12 0.00305 - 13 0.0331 - 14 0.0155 - 15 0.00385 - 16 0.00023 - 19 0.00161 - 21 0.0166 - 22 0.000402 - 23 5.75e-05 - 24 0.000115 - 26 0.00638 - 27 5.75e-05 - 28 0.0544 - 29 0.101 - 30 0.0205 - 31 0.0106 - 32 0.0237 - 33 0.0277 - 34 0.00862 - 35 0.0122 - 37 0.0274 - 40 5.75e-05 - 41 0.12 - 42 0.011 - 43 0.000517 - 44 0.00149 - 45 0.0877 - 46 0.0316 - 47 0.14 - - 20 8301 36 0 - 0 0.0153 - 1 0.000361 - 2 0.0496 - 3 0.000361 - 4 0.00422 - 7 0.429 - 8 0.00169 - 9 0.000241 - 10 0.00012 - 12 0.000241 - 13 0.00361 - 14 0.00108 - 15 0.00133 - 16 0.00012 - 17 0.00012 - 18 0.000241 - 19 0.000241 - 21 0.00675 - 24 0.017 - 26 0.0359 - 28 0.136 - 29 0.0916 - 30 0.0543 - 31 0.0223 - 32 0.0141 - 33 0.026 - 34 0.000723 - 35 0.00145 - 37 0.00638 - 41 0.0253 - 42 0.00446 - 43 0.00012 - 44 0.000602 - 45 0.00904 - 46 0.00133 - 47 0.0385 - - 21 1441 29 0 - 0 0.12 - 1 0.00208 - 2 0.0625 - 3 0.00625 - 4 0.00208 - 7 0.237 - 8 0.00278 - 12 0.000694 - 13 0.0437 - 14 0.0278 - 15 0.0153 - 19 0.00278 - 21 0.0396 - 24 0.00763 - 26 0.00902 - 28 0.0472 - 29 0.0402 - 30 0.0194 - 31 0.0222 - 32 0.0104 - 33 0.0285 - 34 0.00486 - 37 0.00625 - 41 0.0861 - 42 0.0201 - 44 0.00347 - 45 0.0146 - 46 0.00139 - 47 0.116 - - 22 181 22 0 - 0 0.0442 - 2 0.0221 - 3 0.00552 - 7 0.0663 - 8 0.0166 - 13 0.166 - 14 0.0663 - 15 0.0718 - 16 0.00552 - 19 0.00552 - 21 0.0331 - 24 0.0166 - 26 0.00552 - 28 0.0331 - 29 0.0718 - 30 0.0331 - 31 0.0718 - 32 0.011 - 33 0.0276 - 41 0.0166 - 45 0.00552 - 47 0.204 - - 23 35 9 0 - 0 0.0571 - 2 0.143 - 7 0.314 - 13 0.0571 - 29 0.0286 - 32 0.0286 - 33 0.0286 - 41 0.114 - 47 0.229 - - 24 2 2 0 - 22 0.5 - 24 0.5 - - 25 13 2 0 - 42 0.0769 - 47 0.923 - - 27 3 3 0 - 0 0.333 - 26 0.333 - 30 0.333 - - 28 113 18 0 - 0 0.0354 - 2 0.0708 - 7 0.0177 - 12 0.00885 - 14 0.00885 - 19 0.00885 - 21 0.00885 - 26 0.513 - 28 0.106 - 30 0.0265 - 32 0.00885 - 34 0.00885 - 35 0.00885 - 41 0.00885 - 42 0.0265 - 44 0.0177 - 45 0.0442 - 47 0.0708 - - 29 19 7 0 - 2 0.263 - 7 0.0526 - 13 0.0526 - 15 0.0526 - 31 0.0526 - 41 0.421 - 42 0.105 - - 30 714 22 0 - 0 0.0154 - 2 0.0868 - 7 0.51 - 8 0.0014 - 13 0.0028 - 14 0.0028 - 19 0.0014 - 21 0.0028 - 24 0.0098 - 26 0.0308 - 28 0.0672 - 29 0.0308 - 30 0.0336 - 31 0.0084 - 32 0.0112 - 33 0.0224 - 37 0.007 - 41 0.0714 - 42 0.007 - 43 0.0014 - 45 0.0042 - 47 0.0714 - - 31 540 22 0 - 0 0.0278 - 2 0.0722 - 4 0.00185 - 7 0.419 - 13 0.0037 - 14 0.00185 - 15 0.00556 - 21 0.0111 - 24 0.0111 - 26 0.0519 - 28 0.063 - 29 0.0296 - 30 0.0685 - 31 0.00556 - 32 0.00926 - 33 0.0241 - 37 0.00185 - 41 0.0556 - 42 0.0407 - 43 0.0037 - 45 0.00741 - 47 0.0852 - - 32 6 3 0 - 7 0.667 - 15 0.167 - 41 0.167 - - 33 18 9 0 - 0 0.167 - 2 0.278 - 7 0.111 - 19 0.111 - 21 0.0556 - 32 0.0556 - 41 0.111 - 42 0.0556 - 44 0.0556 - - 34 67 17 0 - 2 0.0448 - 7 0.104 - 8 0.0299 - 13 0.0149 - 14 0.0299 - 15 0.0149 - 28 0.0149 - 30 0.0149 - 32 0.0149 - 33 0.0149 - 35 0.0149 - 37 0.0149 - 41 0.403 - 42 0.0448 - 45 0.0149 - 46 0.0149 - 47 0.194 - - 35 8 6 0 - 0 0.125 - 2 0.125 - 26 0.125 - 28 0.125 - 33 0.125 - 47 0.375 - - 36 7 3 0 - 13 0.143 - 14 0.143 - 41 0.714 - - 37 4 3 0 - 7 0.25 - 28 0.5 - 33 0.25 - - 38 13 6 0 - 7 0.308 - 24 0.0769 - 26 0.385 - 28 0.0769 - 29 0.0769 - 33 0.0769 - - 39 1743 25 0 - 0 0.0298 - 2 0.197 - 4 0.000574 - 6 0.00115 - 7 0.402 - 8 0.00344 - 13 0.00229 - 14 0.00172 - 15 0.00287 - 19 0.00172 - 20 0.000574 - 21 0.0384 - 24 0.00229 - 26 0.124 - 28 0.0218 - 29 0.0671 - 30 0.012 - 31 0.0103 - 32 0.00229 - 33 0.00631 - 41 0.0189 - 42 0.0143 - 43 0.000574 - 44 0.0361 - 47 0.00229 - - 41 2 2 0 - 0 0.5 - 3 0.5 - - 42 57 4 0 - 14 0.0175 - 40 0.0175 - 42 0.0175 - 47 0.947 - - 44 39 13 0 - 0 0.0256 - 2 0.0769 - 4 0.0256 - 7 0.282 - 14 0.0513 - 15 0.0513 - 26 0.0769 - 28 0.103 - 34 0.0256 - 40 0.103 - 41 0.0256 - 42 0.0256 - 47 0.128 - - 45 468 24 0 - 0 0.0662 - 1 0.00214 - 2 0.0491 - 3 0.00427 - 7 0.404 - 13 0.0128 - 14 0.00427 - 15 0.00427 - 18 0.00427 - 19 0.00214 - 21 0.00427 - 24 0.00855 - 26 0.0235 - 28 0.0641 - 29 0.0449 - 30 0.0726 - 31 0.0406 - 32 0.00641 - 33 0.0363 - 41 0.0299 - 42 0.0192 - 44 0.015 - 45 0.00214 - 47 0.0791 - - 48 1258 29 0 - 0 0.0819 - 1 0.000795 - 2 0.0429 - 4 0.00238 - 7 0.431 - 13 0.00477 - 14 0.00159 - 15 0.00238 - 18 0.000795 - 19 0.00238 - 21 0.0127 - 23 0.000795 - 24 0.00477 - 25 0.00159 - 26 0.0334 - 28 0.0787 - 29 0.0437 - 30 0.0437 - 31 0.0151 - 32 0.0207 - 33 0.0231 - 35 0.000795 - 36 0.000795 - 37 0.00397 - 41 0.0453 - 42 0.0167 - 45 0.0175 - 46 0.000795 - 47 0.0652 - - 49 116 18 0 - 0 0.0776 - 2 0.0776 - 3 0.0172 - 7 0.241 - 13 0.0517 - 14 0.00862 - 21 0.00862 - 26 0.00862 - 28 0.0517 - 29 0.0431 - 30 0.0345 - 31 0.0345 - 32 0.00862 - 34 0.00862 - 41 0.284 - 42 0.0259 - 46 0.00862 - 47 0.00862 - - 50 10 7 0 - 0 0.2 - 14 0.1 - 28 0.1 - 29 0.1 - 30 0.2 - 33 0.2 - 42 0.1 - - 53 7 4 0 - 2 0.143 - 7 0.143 - 42 0.429 - 47 0.286 - - 54 72 13 0 - 0 0.0139 - 2 0.0556 - 4 0.0139 - 7 0.417 - 26 0.0417 - 28 0.0278 - 29 0.0278 - 30 0.0139 - 33 0.0278 - 34 0.0139 - 41 0.111 - 46 0.0139 - 47 0.222 - - 55 80263 43 0 - 0 0.0575 - 1 0.000536 - 2 0.0458 - 3 0.000461 - 4 0.00156 - 5 2.49e-05 - 6 8.72e-05 - 7 0.377 - 8 0.00127 - 9 9.97e-05 - 10 2.49e-05 - 12 0.00015 - 13 0.00471 - 14 0.00257 - 15 0.00239 - 16 9.97e-05 - 17 9.97e-05 - 18 0.000174 - 19 0.00179 - 20 0.000125 - 21 0.00893 - 22 6.23e-05 - 24 0.00776 - 25 3.74e-05 - 26 0.0369 - 28 0.0637 - 29 0.0564 - 30 0.0373 - 31 0.0168 - 32 0.0133 - 33 0.0337 - 34 0.000648 - 35 0.000336 - 36 1.25e-05 - 37 0.00262 - 40 8.72e-05 - 41 0.0805 - 42 0.0217 - 43 0.000336 - 44 0.00209 - 45 0.00795 - 46 0.00182 - 47 0.111 - - 57 11 7 0 - 2 0.273 - 24 0.0909 - 28 0.182 - 33 0.182 - 41 0.0909 - 42 0.0909 - 44 0.0909 - - 58 14 6 0 - 0 0.0714 - 2 0.0714 - 7 0.643 - 28 0.0714 - 31 0.0714 - 41 0.0714 - - 60 8061 34 0 - 0 0.0514 - 1 0.000124 - 2 0.0294 - 3 0.000496 - 4 0.00062 - 7 0.386 - 8 0.00248 - 9 0.000124 - 13 0.016 - 14 0.00657 - 15 0.00385 - 16 0.000124 - 18 0.000496 - 19 0.00124 - 21 0.0112 - 22 0.000124 - 23 0.000124 - 24 0.00844 - 26 0.154 - 28 0.0624 - 29 0.08 - 30 0.0249 - 31 0.02 - 32 0.00893 - 33 0.0238 - 34 0.000744 - 37 0.00211 - 41 0.0215 - 42 0.0383 - 43 0.000124 - 44 0.0203 - 45 0.00136 - 46 0.000248 - 47 0.0226 - - 62 34 6 0 - 7 0.647 - 26 0.0882 - 30 0.0294 - 42 0.0294 - 45 0.0588 - 47 0.147 - - 64 40 15 0 - 0 0.1 - 2 0.025 - 7 0.2 - 13 0.025 - 19 0.05 - 24 0.025 - 26 0.05 - 28 0.1 - 29 0.05 - 30 0.025 - 31 0.075 - 33 0.075 - 41 0.1 - 45 0.075 - 47 0.025 - - 68 95 14 0 - 0 0.0105 - 2 0.0211 - 7 0.516 - 21 0.0105 - 26 0.0421 - 28 0.0737 - 29 0.0105 - 30 0.0632 - 31 0.0105 - 32 0.0211 - 33 0.0632 - 41 0.0211 - 42 0.0211 - 47 0.116 - - 48 4567 37 18 - 0 0.0274 - 1 0.000219 - 2 0.0125 - 3 0.0103 - 4 0.53 - 7 0.119 - 8 0.0458 - 9 0.00153 - 10 0.000438 - 13 0.00613 - 14 0.000438 - 15 0.0101 - 16 0.000219 - 18 0.0469 - 19 0.00153 - 20 0.0405 - 21 0.00504 - 22 0.000876 - 23 0.000219 - 24 0.00131 - 25 0.000438 - 26 0.0092 - 28 0.0217 - 29 0.0123 - 30 0.0138 - 31 0.00963 - 32 0.00569 - 33 0.00635 - 35 0.000219 - 36 0.000438 - 37 0.00109 - 40 0.000219 - 41 0.0243 - 42 0.0046 - 45 0.0109 - 46 0.000438 - 47 0.018 - - 3 17 2 0 - 4 0.941 - 18 0.0588 - - 4 16 7 0 - 0 0.375 - 7 0.125 - 21 0.188 - 28 0.0625 - 32 0.125 - 37 0.0625 - 45 0.0625 - - 8 500 23 0 - 0 0.03 - 2 0.016 - 3 0.024 - 4 0.448 - 7 0.148 - 8 0.034 - 13 0.014 - 15 0.006 - 18 0.058 - 20 0.064 - 22 0.002 - 26 0.008 - 28 0.012 - 29 0.016 - 30 0.012 - 31 0.02 - 32 0.004 - 33 0.016 - 35 0.002 - 41 0.036 - 42 0.014 - 45 0.004 - 47 0.012 - - 9 5 4 0 - 2 0.2 - 4 0.4 - 7 0.2 - 30 0.2 - - 13 2669 34 0 - 0 0.0217 - 1 0.000375 - 2 0.00712 - 3 0.0045 - 4 0.651 - 7 0.0573 - 8 0.0476 - 9 0.00225 - 10 0.000375 - 13 0.00525 - 14 0.000749 - 15 0.00599 - 18 0.0555 - 19 0.00187 - 20 0.0412 - 21 0.00337 - 22 0.000749 - 23 0.000375 - 24 0.00112 - 25 0.000375 - 26 0.00599 - 28 0.0139 - 29 0.0109 - 30 0.0105 - 31 0.00974 - 32 0.003 - 33 0.003 - 36 0.000749 - 40 0.000375 - 41 0.0161 - 42 0.00187 - 45 0.00599 - 46 0.000749 - 47 0.00862 - - 14 854 30 0 - 0 0.0457 - 2 0.0269 - 3 0.0234 - 4 0.196 - 7 0.292 - 8 0.0679 - 9 0.00117 - 10 0.00117 - 13 0.00468 - 15 0.0304 - 16 0.00117 - 18 0.0222 - 19 0.00117 - 20 0.0293 - 21 0.0082 - 22 0.00117 - 24 0.00351 - 25 0.00117 - 26 0.0152 - 28 0.0504 - 29 0.0222 - 30 0.0258 - 31 0.0082 - 32 0.0129 - 33 0.0141 - 37 0.00351 - 41 0.0293 - 42 0.0082 - 45 0.0152 - 47 0.0386 - - 15 246 19 0 - 0 0.0122 - 2 0.0203 - 3 0.00813 - 4 0.537 - 7 0.142 - 8 0.0122 - 13 0.00407 - 15 0.00407 - 18 0.0407 - 20 0.0325 - 21 0.00407 - 26 0.0285 - 28 0.0163 - 30 0.0163 - 32 0.00813 - 33 0.00407 - 37 0.00407 - 41 0.0407 - 47 0.065 - - 16 8 5 0 - 4 0.25 - 7 0.375 - 26 0.125 - 41 0.125 - 47 0.125 - - 18 2 1 0 - 13 1 - - 30 11 5 0 - 4 0.545 - 7 0.0909 - 20 0.182 - 28 0.0909 - 45 0.0909 - - 31 14 5 0 - 4 0.429 - 7 0.214 - 18 0.143 - 20 0.143 - 42 0.0714 - - 41 40 10 0 - 2 0.025 - 3 0.025 - 4 0.55 - 7 0.075 - 18 0.05 - 20 0.075 - 21 0.025 - 30 0.025 - 41 0.125 - 47 0.025 - - 46 19 2 0 - 4 0.158 - 45 0.842 - - 47 89 12 0 - 0 0.0225 - 4 0.753 - 7 0.0674 - 8 0.0112 - 19 0.0112 - 20 0.0112 - 21 0.0225 - 28 0.0562 - 30 0.0112 - 31 0.0112 - 32 0.0112 - 41 0.0112 - - 48 29 9 0 - 0 0.069 - 4 0.414 - 7 0.069 - 18 0.0345 - 20 0.0345 - 26 0.0345 - 28 0.0345 - 41 0.276 - 45 0.0345 - - 55 7 5 0 - 4 0.286 - 7 0.286 - 20 0.143 - 28 0.143 - 47 0.143 - - 56 9 4 0 - 4 0.444 - 7 0.333 - 8 0.111 - 47 0.111 - - 58 6 4 0 - 4 0.333 - 7 0.333 - 8 0.167 - 42 0.167 - - 49 130 21 9 - 0 0.0692 - 2 0.0769 - 3 0.0154 - 4 0.0615 - 7 0.215 - 13 0.0462 - 14 0.00769 - 18 0.00769 - 21 0.0231 - 26 0.00769 - 28 0.0462 - 29 0.0385 - 30 0.0308 - 31 0.0308 - 32 0.00769 - 34 0.00769 - 41 0.262 - 42 0.0231 - 45 0.00769 - 46 0.00769 - 47 0.00769 - - 3 7 3 0 - 7 0.429 - 30 0.143 - 41 0.429 - - 4 51 12 0 - 0 0.0588 - 2 0.118 - 7 0.294 - 13 0.118 - 28 0.0588 - 29 0.0392 - 30 0.0392 - 31 0.0588 - 32 0.0196 - 41 0.157 - 42 0.0196 - 47 0.0196 - - 8 6 4 0 - 7 0.5 - 28 0.167 - 29 0.167 - 31 0.167 - - 13 19 10 0 - 0 0.0526 - 4 0.368 - 7 0.158 - 14 0.0526 - 28 0.0526 - 29 0.0526 - 30 0.0526 - 41 0.105 - 42 0.0526 - 45 0.0526 - - 14 4 4 0 - 4 0.25 - 7 0.25 - 26 0.25 - 29 0.25 - - 15 5 3 0 - 18 0.2 - 41 0.6 - 42 0.2 - - 41 3 2 0 - 3 0.667 - 7 0.333 - - 47 1 1 0 - 34 1 - - 55 29 7 0 - 0 0.138 - 2 0.138 - 7 0.069 - 21 0.069 - 28 0.0345 - 41 0.517 - 46 0.0345 - - 50 14 10 0 - 0 0.143 - 14 0.143 - 15 0.0714 - 28 0.0714 - 29 0.0714 - 30 0.143 - 32 0.0714 - 33 0.143 - 41 0.0714 - 42 0.0714 - - 53 7 4 0 - 2 0.143 - 7 0.143 - 42 0.429 - 47 0.286 - - 54 390 20 6 - 0 0.00256 - 2 0.0154 - 3 0.0282 - 4 0.618 - 7 0.0769 - 8 0.0359 - 13 0.00256 - 15 0.0128 - 18 0.0308 - 20 0.059 - 26 0.00769 - 28 0.00513 - 29 0.00513 - 30 0.00256 - 33 0.00513 - 34 0.00256 - 41 0.0205 - 45 0.0256 - 46 0.00256 - 47 0.041 - - 8 28 2 0 - 3 0.0714 - 4 0.929 - - 13 239 11 0 - 2 0.00418 - 3 0.0167 - 4 0.762 - 7 0.0251 - 8 0.0418 - 15 0.00837 - 18 0.046 - 20 0.0753 - 33 0.00837 - 41 0.00837 - 47 0.00418 - - 14 26 8 0 - 2 0.0769 - 3 0.115 - 4 0.462 - 18 0.0385 - 20 0.115 - 28 0.0385 - 41 0.0385 - 47 0.115 - - 15 74 17 0 - 0 0.0135 - 2 0.0405 - 3 0.027 - 4 0.189 - 7 0.27 - 8 0.0541 - 13 0.0135 - 15 0.0405 - 26 0.027 - 28 0.0135 - 29 0.027 - 30 0.0135 - 34 0.0135 - 41 0.0676 - 45 0.027 - 46 0.0135 - 47 0.149 - - 18 3 2 0 - 7 0.667 - 26 0.333 - - 46 8 1 0 - 45 1 - - 55 80957 43 26 - 0 0.057 - 1 0.000531 - 2 0.0461 - 3 0.000581 - 4 0.00351 - 5 2.47e-05 - 6 8.65e-05 - 7 0.374 - 8 0.00166 - 9 9.88e-05 - 10 4.94e-05 - 12 0.000148 - 13 0.00473 - 14 0.00267 - 15 0.00241 - 16 9.88e-05 - 17 0.000371 - 18 0.000259 - 19 0.00178 - 20 0.000259 - 21 0.00965 - 22 7.41e-05 - 24 0.0077 - 25 3.71e-05 - 26 0.0366 - 28 0.0632 - 29 0.0559 - 30 0.037 - 31 0.0167 - 32 0.0131 - 33 0.0334 - 34 0.000642 - 35 0.000334 - 36 1.24e-05 - 37 0.00259 - 40 8.65e-05 - 41 0.0801 - 42 0.0218 - 43 0.000371 - 44 0.0022 - 45 0.0108 - 46 0.00188 - 47 0.11 - - 0 4 4 0 - 7 0.25 - 29 0.25 - 30 0.25 - 32 0.25 - - 2 4 3 0 - 4 0.25 - 7 0.5 - 47 0.25 - - 3 137 16 0 - 0 0.0073 - 2 0.0146 - 7 0.577 - 13 0.0073 - 14 0.0146 - 24 0.0146 - 26 0.0292 - 28 0.0438 - 29 0.0365 - 30 0.0073 - 31 0.0073 - 32 0.0438 - 33 0.0365 - 34 0.0073 - 41 0.0803 - 47 0.073 - - 4 2 2 0 - 13 0.5 - 26 0.5 - - 8 1730 27 0 - 0 0.0254 - 2 0.0353 - 3 0.00116 - 4 0.00578 - 7 0.478 - 8 0.000578 - 9 0.000578 - 13 0.00347 - 18 0.00116 - 21 0.00925 - 24 0.00925 - 26 0.0364 - 28 0.0572 - 29 0.041 - 30 0.0272 - 31 0.00925 - 32 0.00578 - 33 0.0168 - 34 0.00116 - 35 0.00173 - 37 0.00173 - 41 0.102 - 42 0.00694 - 44 0.000578 - 45 0.00347 - 46 0.00347 - 47 0.115 - - 9 15 7 0 - 7 0.467 - 26 0.0667 - 28 0.0667 - 29 0.0667 - 31 0.0667 - 33 0.0667 - 41 0.2 - - 10 202 18 0 - 0 0.114 - 2 0.0248 - 3 0.00495 - 7 0.347 - 15 0.00495 - 20 0.00495 - 21 0.0248 - 24 0.00495 - 26 0.00495 - 28 0.0248 - 29 0.0198 - 30 0.0347 - 31 0.0198 - 32 0.00495 - 33 0.00495 - 41 0.262 - 42 0.0099 - 47 0.0842 - - 13 3620 33 0 - 0 0.0177 - 2 0.0282 - 3 0.0011 - 4 0.0113 - 7 0.41 - 8 0.00414 - 10 0.000276 - 13 0.00249 - 14 0.00166 - 15 0.00138 - 17 0.0011 - 18 0.000276 - 19 0.000552 - 20 0.0011 - 21 0.00912 - 24 0.00691 - 26 0.0373 - 28 0.0715 - 29 0.0561 - 30 0.0331 - 31 0.0133 - 32 0.0127 - 33 0.0218 - 34 0.000552 - 35 0.000276 - 37 0.00331 - 41 0.0956 - 42 0.00635 - 43 0.000552 - 44 0.00138 - 45 0.0047 - 46 0.00221 - 47 0.142 - - 14 1127 28 0 - 0 0.00532 - 2 0.024 - 3 0.00177 - 4 0.0071 - 7 0.482 - 8 0.0071 - 13 0.00532 - 14 0.00177 - 15 0.000887 - 17 0.00177 - 21 0.00266 - 24 0.00621 - 26 0.0417 - 28 0.0816 - 29 0.0488 - 30 0.039 - 31 0.0177 - 32 0.0115 - 33 0.0195 - 34 0.00266 - 35 0.00177 - 37 0.00799 - 41 0.0532 - 42 0.00444 - 44 0.00177 - 45 0.00444 - 46 0.000887 - 47 0.117 - - 15 868 28 0 - 0 0.0104 - 2 0.0657 - 3 0.0023 - 4 0.00806 - 7 0.468 - 8 0.00691 - 13 0.0023 - 14 0.00115 - 15 0.00115 - 18 0.00461 - 20 0.00115 - 21 0.0023 - 24 0.00115 - 26 0.0415 - 28 0.0173 - 29 0.0242 - 30 0.0161 - 31 0.00461 - 32 0.00346 - 33 0.0242 - 34 0.0023 - 37 0.00115 - 41 0.0668 - 42 0.0127 - 44 0.00115 - 45 0.00806 - 46 0.0023 - 47 0.199 - - 16 33 9 0 - 2 0.0303 - 7 0.455 - 20 0.0606 - 28 0.0909 - 30 0.0303 - 32 0.0303 - 41 0.0606 - 45 0.0303 - 47 0.212 - - 18 5 4 0 - 2 0.4 - 7 0.2 - 26 0.2 - 45 0.2 - - 23 2 2 0 - 2 0.5 - 33 0.5 - - 30 87 11 0 - 2 0.023 - 7 0.575 - 26 0.046 - 28 0.103 - 29 0.0345 - 30 0.0345 - 31 0.023 - 33 0.023 - 41 0.092 - 42 0.0115 - 47 0.0345 - - 31 59 13 0 - 2 0.0339 - 4 0.0339 - 7 0.475 - 14 0.0169 - 24 0.0169 - 26 0.0339 - 28 0.0508 - 29 0.102 - 30 0.0508 - 31 0.0169 - 41 0.0169 - 46 0.0169 - 47 0.136 - - 41 5 5 0 - 2 0.2 - 4 0.2 - 7 0.2 - 28 0.2 - 41 0.2 - - 43 4 2 0 - 7 0.25 - 44 0.75 - - 45 68 11 0 - 0 0.0441 - 2 0.0147 - 7 0.426 - 15 0.0147 - 26 0.0735 - 28 0.0735 - 29 0.132 - 30 0.0294 - 33 0.0441 - 41 0.0294 - 47 0.118 - - 46 6 2 0 - 19 0.167 - 45 0.833 - - 47 72658 43 0 - 0 0.0614 - 1 0.000592 - 2 0.0476 - 3 0.000495 - 4 0.0029 - 5 2.75e-05 - 6 9.63e-05 - 7 0.366 - 8 0.00143 - 9 9.63e-05 - 10 4.13e-05 - 12 0.000165 - 13 0.00491 - 14 0.00278 - 15 0.00256 - 16 0.00011 - 17 0.00033 - 18 0.000193 - 19 0.00193 - 20 0.000179 - 21 0.00988 - 22 8.26e-05 - 24 0.0078 - 25 4.13e-05 - 26 0.0365 - 28 0.0633 - 29 0.0569 - 30 0.0378 - 31 0.0172 - 32 0.0135 - 33 0.0349 - 34 0.000578 - 35 0.000289 - 36 1.38e-05 - 37 0.00255 - 40 9.63e-05 - 41 0.0789 - 42 0.0236 - 43 0.000385 - 44 0.00228 - 45 0.0115 - 46 0.00183 - 47 0.107 - - 48 235 20 0 - 0 0.0255 - 2 0.0255 - 4 0.00851 - 7 0.417 - 14 0.00851 - 19 0.00426 - 21 0.0128 - 24 0.0128 - 26 0.034 - 28 0.0638 - 29 0.0213 - 30 0.0255 - 31 0.017 - 32 0.00851 - 33 0.0213 - 41 0.0979 - 42 0.00851 - 45 0.00426 - 46 0.00426 - 47 0.179 - - 54 12 2 0 - 7 0.833 - 28 0.167 - - 55 7 6 0 - 7 0.286 - 13 0.143 - 26 0.143 - 28 0.143 - 29 0.143 - 47 0.143 - - 57 19 7 0 - 4 0.0526 - 7 0.526 - 26 0.0526 - 29 0.105 - 30 0.0526 - 33 0.0526 - 41 0.158 - - 60 22 6 0 - 7 0.682 - 21 0.0455 - 28 0.0455 - 30 0.0455 - 41 0.0909 - 47 0.0909 - - 68 8 5 0 - 7 0.375 - 28 0.25 - 30 0.125 - 32 0.125 - 47 0.125 - - 56 295 15 2 - 2 0.00678 - 3 0.0542 - 4 0.42 - 7 0.00339 - 8 0.251 - 9 0.0169 - 10 0.0102 - 15 0.00339 - 20 0.122 - 21 0.0102 - 30 0.00678 - 31 0.0102 - 34 0.00339 - 41 0.00678 - 45 0.0746 - - 15 2 2 0 - 7 0.5 - 8 0.5 - - 46 2 1 0 - 45 1 - - 57 38 11 4 - 2 0.132 - 13 0.0526 - 14 0.0263 - 15 0.5 - 24 0.0263 - 28 0.0526 - 33 0.0526 - 41 0.0526 - 42 0.0263 - 44 0.0263 - 45 0.0526 - - 18 19 2 0 - 13 0.0526 - 15 0.947 - - 41 4 4 0 - 2 0.25 - 24 0.25 - 41 0.25 - 45 0.25 - - 47 4 4 0 - 13 0.25 - 14 0.25 - 28 0.25 - 33 0.25 - - 55 5 4 0 - 2 0.4 - 28 0.2 - 41 0.2 - 44 0.2 - - 58 108 17 5 - 0 0.00926 - 2 0.00926 - 3 0.037 - 4 0.0926 - 6 0.0185 - 7 0.0833 - 8 0.167 - 13 0.102 - 15 0.333 - 16 0.00926 - 18 0.0185 - 20 0.0278 - 28 0.00926 - 31 0.00926 - 40 0.0185 - 41 0.0185 - 46 0.037 - - 8 10 7 0 - 0 0.1 - 2 0.1 - 4 0.1 - 7 0.2 - 8 0.3 - 18 0.1 - 20 0.1 - - 13 37 10 0 - 3 0.0811 - 4 0.216 - 6 0.027 - 7 0.0811 - 8 0.216 - 13 0.135 - 15 0.162 - 18 0.027 - 20 0.027 - 46 0.027 - - 14 21 10 0 - 4 0.0476 - 6 0.0476 - 7 0.0952 - 8 0.238 - 13 0.19 - 15 0.19 - 20 0.0476 - 28 0.0476 - 31 0.0476 - 46 0.0476 - - 15 31 5 0 - 7 0.0645 - 8 0.0323 - 15 0.806 - 16 0.0323 - 40 0.0645 - - 47 5 4 0 - 3 0.2 - 13 0.2 - 41 0.2 - 46 0.4 - - 60 8217 36 21 - 0 0.0504 - 1 0.000122 - 2 0.0288 - 3 0.00231 - 4 0.00828 - 7 0.378 - 8 0.00633 - 9 0.000122 - 10 0.000122 - 13 0.0158 - 14 0.00645 - 15 0.00377 - 16 0.000122 - 18 0.00316 - 19 0.00122 - 20 0.000852 - 21 0.0113 - 22 0.000122 - 23 0.000122 - 24 0.00828 - 26 0.151 - 28 0.0612 - 29 0.0785 - 30 0.0245 - 31 0.0207 - 32 0.00876 - 33 0.0234 - 34 0.00073 - 37 0.00207 - 41 0.0211 - 42 0.0376 - 43 0.000122 - 44 0.0202 - 45 0.00146 - 46 0.000243 - 47 0.0221 - - 2 2 2 0 - 31 0.5 - 41 0.5 - - 3 8 4 0 - 0 0.25 - 26 0.375 - 28 0.125 - 29 0.25 - - 4 63 16 0 - 0 0.143 - 2 0.111 - 7 0.143 - 13 0.0317 - 14 0.0317 - 15 0.0159 - 24 0.0317 - 26 0.0317 - 28 0.0317 - 29 0.0476 - 31 0.0159 - 32 0.0159 - 33 0.0317 - 41 0.206 - 42 0.0159 - 47 0.0952 - - 7 7 5 0 - 0 0.429 - 2 0.143 - 7 0.143 - 13 0.143 - 45 0.143 - - 8 300 22 0 - 0 0.0933 - 2 0.0467 - 4 0.0267 - 7 0.31 - 8 0.00333 - 13 0.01 - 15 0.00667 - 18 0.03 - 20 0.00333 - 21 0.0133 - 24 0.0133 - 26 0.02 - 28 0.0867 - 29 0.05 - 30 0.0367 - 31 0.0267 - 32 0.00667 - 33 0.0333 - 37 0.00333 - 41 0.04 - 42 0.09 - 47 0.05 - - 9 5 5 0 - 2 0.2 - 28 0.2 - 29 0.2 - 32 0.2 - 41 0.2 - - 13 1033 27 0 - 0 0.0552 - 1 0.000968 - 2 0.0387 - 3 0.000968 - 4 0.0155 - 7 0.284 - 8 0.0029 - 13 0.00581 - 14 0.0106 - 15 0.00194 - 18 0.0029 - 19 0.00194 - 21 0.0271 - 24 0.00678 - 26 0.0736 - 28 0.0697 - 29 0.0794 - 30 0.0368 - 31 0.0281 - 32 0.0126 - 33 0.0523 - 37 0.000968 - 41 0.0542 - 42 0.092 - 44 0.00678 - 45 0.00194 - 47 0.0368 - - 14 1393 31 0 - 0 0.0682 - 2 0.0223 - 3 0.00144 - 4 0.0215 - 7 0.363 - 8 0.0223 - 9 0.000718 - 13 0.0625 - 14 0.00718 - 15 0.00287 - 16 0.000718 - 18 0.00718 - 19 0.00287 - 20 0.00359 - 21 0.0122 - 24 0.00861 - 26 0.0818 - 28 0.0653 - 29 0.0639 - 30 0.023 - 31 0.0294 - 32 0.0108 - 33 0.0294 - 34 0.000718 - 37 0.0101 - 41 0.0251 - 42 0.0101 - 43 0.000718 - 44 0.00144 - 45 0.00287 - 47 0.038 - - 15 70 16 0 - 0 0.0143 - 2 0.0286 - 4 0.0857 - 7 0.386 - 8 0.0143 - 18 0.0143 - 20 0.0143 - 28 0.0857 - 29 0.0571 - 30 0.0286 - 31 0.0143 - 33 0.0571 - 41 0.0286 - 42 0.0429 - 46 0.0143 - 47 0.114 - - 16 12 5 0 - 0 0.0833 - 4 0.333 - 7 0.25 - 28 0.167 - 47 0.167 - - 20 18 11 0 - 0 0.111 - 2 0.111 - 7 0.167 - 26 0.0556 - 28 0.0556 - 29 0.111 - 30 0.0556 - 32 0.0556 - 33 0.111 - 41 0.111 - 42 0.0556 - - 21 4 3 0 - 18 0.25 - 31 0.5 - 42 0.25 - - 31 5 3 0 - 0 0.4 - 7 0.4 - 33 0.2 - - 45 1 1 0 - 32 1 - - 46 1 1 0 - 45 1 - - 47 5237 31 0 - 0 0.0405 - 2 0.0258 - 3 0.00306 - 4 0.000573 - 7 0.409 - 8 0.00286 - 10 0.000191 - 13 0.00592 - 14 0.00573 - 15 0.0042 - 18 0.000382 - 19 0.000764 - 21 0.0084 - 22 0.000191 - 23 0.000191 - 24 0.00802 - 26 0.198 - 28 0.0571 - 29 0.0852 - 30 0.0223 - 31 0.0164 - 32 0.00726 - 33 0.0145 - 34 0.000955 - 37 0.000191 - 41 0.00955 - 42 0.0315 - 44 0.03 - 45 0.000382 - 46 0.000191 - 47 0.0107 - - 48 4 4 0 - 7 0.25 - 28 0.25 - 41 0.25 - 47 0.25 - - 55 19 8 0 - 0 0.105 - 2 0.158 - 7 0.368 - 26 0.105 - 28 0.0526 - 42 0.105 - 45 0.0526 - 47 0.0526 - - 56 14 6 0 - 4 0.0714 - 7 0.571 - 24 0.0714 - 29 0.0714 - 33 0.143 - 47 0.0714 - - 58 1 1 0 - 45 1 - - 60 15 4 0 - 7 0.8 - 8 0.0667 - 26 0.0667 - 31 0.0667 - - 62 60 9 3 - 7 0.367 - 18 0.0167 - 26 0.05 - 30 0.0167 - 34 0.0167 - 41 0.0167 - 42 0.05 - 45 0.383 - 47 0.0833 - - 2 10 3 0 - 7 0.7 - 26 0.2 - 30 0.1 - - 46 14 1 0 - 45 1 - - 47 13 6 0 - 7 0.308 - 34 0.0769 - 41 0.0769 - 42 0.154 - 45 0.154 - 47 0.231 - - 64 48 16 4 - 0 0.0833 - 2 0.0208 - 7 0.188 - 13 0.0208 - 19 0.0417 - 24 0.0208 - 26 0.0417 - 28 0.0833 - 29 0.0417 - 30 0.0208 - 31 0.0625 - 33 0.0625 - 41 0.208 - 45 0.0625 - 46 0.0208 - 47 0.0208 - - 2 5 4 0 - 7 0.4 - 28 0.2 - 29 0.2 - 45 0.2 - - 41 9 7 0 - 0 0.222 - 2 0.111 - 7 0.222 - 19 0.111 - 24 0.111 - 26 0.111 - 47 0.111 - - 42 11 8 0 - 0 0.0909 - 7 0.364 - 13 0.0909 - 26 0.0909 - 28 0.0909 - 29 0.0909 - 30 0.0909 - 33 0.0909 - - 47 22 9 0 - 0 0.0455 - 7 0.0455 - 19 0.0455 - 28 0.0455 - 31 0.136 - 33 0.0909 - 41 0.455 - 45 0.0909 - 46 0.0455 - - 68 206 22 3 - 0 0.00971 - 2 0.00971 - 3 0.00971 - 4 0.209 - 7 0.238 - 8 0.194 - 9 0.00485 - 13 0.0146 - 15 0.0291 - 18 0.034 - 20 0.0194 - 21 0.00485 - 26 0.0194 - 28 0.034 - 29 0.00485 - 30 0.0388 - 31 0.0146 - 32 0.00971 - 33 0.0291 - 41 0.00971 - 42 0.00971 - 47 0.0534 - - 8 17 5 0 - 7 0.294 - 8 0.529 - 15 0.0588 - 32 0.0588 - 47 0.0588 - - 13 71 12 0 - 2 0.0282 - 4 0.465 - 7 0.127 - 8 0.183 - 9 0.0141 - 13 0.0423 - 15 0.0423 - 26 0.0141 - 30 0.0141 - 33 0.0282 - 41 0.0141 - 47 0.0282 - - 14 113 19 0 - 0 0.0177 - 3 0.0177 - 4 0.0796 - 7 0.274 - 8 0.159 - 15 0.0177 - 18 0.0619 - 20 0.0354 - 21 0.00885 - 26 0.0265 - 28 0.0619 - 29 0.00885 - 30 0.0619 - 31 0.0265 - 32 0.00885 - 33 0.0354 - 41 0.00885 - 42 0.0177 - 47 0.0708 - - 69 5 3 0 - 4 0.2 - 18 0.4 - 45 0.4 - -56 3353 24 19 - 2 0.24 - 3 0.0289 - 4 0.15 - 6 0.000596 - 7 0.00209 - 8 0.17 - 9 0.00716 - 10 0.00388 - 13 0.0674 - 14 0.0155 - 15 0.0692 - 16 0.00418 - 18 0.0746 - 20 0.0435 - 21 0.00507 - 30 0.00537 - 31 0.00775 - 34 0.00119 - 36 0.00119 - 39 0.000596 - 40 0.000298 - 41 0.0537 - 42 0.000596 - 45 0.0474 - - 2 8 4 0 - 13 0.375 - 14 0.125 - 15 0.375 - 16 0.125 - - 3 22 9 1 - 2 0.318 - 4 0.136 - 8 0.182 - 15 0.0455 - 18 0.0909 - 20 0.0455 - 21 0.0455 - 39 0.0909 - 45 0.0455 - - 47 7 4 0 - 8 0.429 - 21 0.143 - 39 0.286 - 45 0.143 - - 4 10 4 0 - 2 0.1 - 21 0.1 - 41 0.1 - 45 0.7 - - 6 8 2 0 - 6 0.25 - 45 0.75 - - 7 3 1 0 - 15 1 - - 8 253 14 4 - 2 0.506 - 3 0.0356 - 4 0.107 - 7 0.00395 - 8 0.119 - 9 0.0119 - 13 0.00395 - 15 0.00791 - 18 0.0711 - 20 0.0395 - 30 0.00395 - 31 0.00395 - 41 0.0632 - 45 0.0237 - - 8 21 4 0 - 2 0.857 - 18 0.0476 - 41 0.0476 - 45 0.0476 - - 13 140 14 0 - 2 0.464 - 3 0.00714 - 4 0.15 - 7 0.00714 - 8 0.157 - 9 0.00714 - 13 0.00714 - 15 0.00714 - 18 0.0786 - 20 0.0357 - 30 0.00714 - 31 0.00714 - 41 0.0357 - 45 0.0286 - - 14 76 10 0 - 2 0.5 - 3 0.0526 - 4 0.0263 - 8 0.105 - 9 0.0263 - 15 0.0132 - 18 0.0789 - 20 0.0526 - 41 0.132 - 45 0.0132 - - 47 3 1 0 - 3 1 - - 13 596 17 4 - 2 0.201 - 3 0.0185 - 4 0.0839 - 8 0.309 - 9 0.00503 - 10 0.00336 - 13 0.173 - 14 0.0101 - 15 0.0436 - 18 0.0453 - 20 0.0185 - 30 0.0134 - 31 0.0101 - 34 0.00168 - 36 0.00168 - 41 0.052 - 45 0.0101 - - 13 101 12 0 - 2 0.337 - 3 0.0198 - 4 0.129 - 8 0.248 - 9 0.0099 - 10 0.0099 - 13 0.0891 - 15 0.0297 - 20 0.0198 - 31 0.0099 - 41 0.0891 - 45 0.0099 - - 14 94 9 0 - 2 0.479 - 4 0.0638 - 8 0.266 - 9 0.0106 - 13 0.0319 - 15 0.0106 - 20 0.0319 - 31 0.0213 - 41 0.0851 - - 30 4 1 0 - 2 1 - - 47 392 17 0 - 2 0.0893 - 3 0.023 - 4 0.0791 - 8 0.339 - 9 0.00255 - 10 0.00255 - 13 0.23 - 14 0.0153 - 15 0.0536 - 18 0.0689 - 20 0.0153 - 30 0.0204 - 31 0.00765 - 34 0.00255 - 36 0.00255 - 41 0.0357 - 45 0.0128 - - 14 320 16 1 - 2 0.0781 - 3 0.0375 - 4 0.0531 - 8 0.312 - 9 0.00625 - 10 0.00625 - 13 0.306 - 14 0.00313 - 15 0.0281 - 18 0.0188 - 20 0.0281 - 21 0.00938 - 30 0.00938 - 31 0.0281 - 41 0.0719 - 45 0.00313 - - 13 6 4 0 - 2 0.333 - 13 0.167 - 20 0.167 - 41 0.333 - - 15 301 16 6 - 2 0.159 - 3 0.0133 - 4 0.0897 - 7 0.0133 - 8 0.0399 - 9 0.00332 - 13 0.00664 - 14 0.0332 - 15 0.412 - 16 0.00997 - 18 0.0365 - 20 0.0133 - 21 0.00332 - 40 0.00332 - 41 0.0399 - 45 0.123 - - 7 3 3 0 - 2 0.333 - 15 0.333 - 40 0.333 - - 13 17 9 0 - 2 0.0588 - 4 0.294 - 8 0.235 - 14 0.0588 - 15 0.118 - 18 0.0588 - 20 0.0588 - 41 0.0588 - 45 0.0588 - - 14 6 6 0 - 2 0.167 - 3 0.167 - 4 0.167 - 8 0.167 - 9 0.167 - 15 0.167 - - 15 119 11 0 - 2 0.261 - 4 0.118 - 7 0.0084 - 8 0.0336 - 14 0.0672 - 15 0.252 - 16 0.0084 - 18 0.042 - 20 0.0084 - 41 0.0672 - 45 0.134 - - 16 9 5 0 - 2 0.222 - 15 0.222 - 18 0.111 - 20 0.222 - 45 0.222 - - 47 139 13 0 - 2 0.0719 - 3 0.0216 - 4 0.0432 - 7 0.0216 - 8 0.0216 - 13 0.0144 - 14 0.00719 - 15 0.612 - 16 0.0144 - 18 0.0216 - 21 0.00719 - 41 0.0216 - 45 0.122 - - 16 14 4 0 - 2 0.143 - 4 0.143 - 15 0.643 - 41 0.0714 - - 21 5 2 0 - 2 0.8 - 41 0.2 - - 30 11 4 0 - 2 0.273 - 8 0.273 - 13 0.364 - 20 0.0909 - - 31 9 3 0 - 2 0.556 - 4 0.222 - 21 0.222 - - 45 9 6 0 - 2 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 18 0.333 - 20 0.111 - - 47 1311 20 13 - 2 0.304 - 3 0.0297 - 4 0.188 - 7 0.00153 - 8 0.12 - 9 0.00763 - 10 0.00458 - 13 0.00763 - 14 0.0168 - 15 0.0259 - 16 0.00458 - 18 0.0931 - 20 0.0549 - 21 0.00458 - 30 0.00305 - 31 0.00534 - 34 0.00153 - 36 0.00153 - 41 0.0686 - 45 0.0572 - - 4 9 3 0 - 2 0.111 - 41 0.111 - 45 0.778 - - 6 6 1 0 - 45 1 - - 8 224 12 0 - 2 0.571 - 3 0.0268 - 4 0.116 - 7 0.00446 - 8 0.0402 - 9 0.00893 - 15 0.00446 - 18 0.0804 - 20 0.0446 - 30 0.00446 - 41 0.0714 - 45 0.0268 - - 13 298 15 0 - 2 0.396 - 3 0.00671 - 4 0.154 - 8 0.134 - 9 0.00671 - 10 0.00336 - 13 0.00336 - 15 0.0302 - 18 0.0906 - 20 0.0369 - 31 0.00671 - 34 0.00336 - 36 0.00336 - 41 0.104 - 45 0.0201 - - 14 117 13 0 - 2 0.197 - 3 0.0855 - 4 0.12 - 8 0.197 - 9 0.00855 - 10 0.0171 - 13 0.0342 - 15 0.0256 - 18 0.0342 - 20 0.0598 - 30 0.00855 - 31 0.0171 - 41 0.197 - - 15 154 13 0 - 2 0.292 - 4 0.162 - 7 0.00649 - 8 0.039 - 13 0.00649 - 14 0.0649 - 15 0.026 - 16 0.013 - 18 0.0455 - 20 0.026 - 21 0.00649 - 41 0.0779 - 45 0.234 - - 21 5 2 0 - 2 0.8 - 41 0.2 - - 31 9 3 0 - 2 0.556 - 4 0.222 - 21 0.222 - - 45 9 6 0 - 2 0.111 - 3 0.111 - 13 0.222 - 14 0.111 - 18 0.333 - 20 0.111 - - 48 10 4 0 - 2 0.6 - 4 0.2 - 18 0.1 - 20 0.1 - - 55 17 5 0 - 2 0.412 - 3 0.0588 - 4 0.0588 - 18 0.0588 - 45 0.412 - - 56 414 19 0 - 2 0.101 - 3 0.0459 - 4 0.297 - 8 0.181 - 9 0.0121 - 10 0.00725 - 13 0.00483 - 14 0.0266 - 15 0.0411 - 16 0.00966 - 18 0.14 - 20 0.087 - 21 0.00725 - 30 0.00483 - 31 0.00725 - 34 0.00242 - 36 0.00242 - 41 0.0121 - 45 0.00966 - - 62 2 1 0 - 45 1 - - 48 11 5 0 - 2 0.545 - 4 0.182 - 8 0.0909 - 18 0.0909 - 20 0.0909 - - 55 22 6 0 - 2 0.318 - 3 0.0909 - 4 0.0455 - 18 0.0455 - 42 0.0909 - 45 0.409 - - 56 419 19 0 - 2 0.1 - 3 0.0453 - 4 0.294 - 8 0.179 - 9 0.0119 - 10 0.00716 - 13 0.00477 - 14 0.0263 - 15 0.0406 - 16 0.00955 - 18 0.138 - 20 0.0859 - 21 0.00716 - 30 0.00477 - 31 0.00716 - 34 0.00239 - 36 0.00239 - 41 0.0119 - 45 0.0215 - - 62 2 1 0 - 45 1 - -57 191766 42 26 - 0 0.0127 - 1 6.26e-05 - 2 0.00876 - 3 0.0413 - 4 0.00784 - 6 9.91e-05 - 7 0.0115 - 8 0.0343 - 9 0.00545 - 10 0.00283 - 12 0.000167 - 13 0.352 - 14 0.15 - 15 0.0378 - 16 0.00175 - 18 0.000245 - 19 0.00638 - 20 5.21e-06 - 21 0.0315 - 22 0.00242 - 23 0.000209 - 24 0.00711 - 25 3.65e-05 - 26 0.000136 - 27 7.3e-05 - 28 0.0277 - 29 0.0264 - 30 0.0277 - 31 0.0819 - 32 0.00613 - 33 0.00986 - 34 0.000375 - 35 0.000261 - 37 9.39e-05 - 40 4.17e-05 - 41 0.0447 - 42 0.00376 - 43 0.00162 - 44 0.00109 - 45 0.00293 - 46 0.00618 - 47 0.0445 - - 2 77 17 3 - 0 0.013 - 3 0.0519 - 4 0.0519 - 8 0.013 - 9 0.013 - 13 0.338 - 14 0.0779 - 15 0.026 - 18 0.013 - 19 0.013 - 21 0.0519 - 24 0.026 - 28 0.026 - 31 0.013 - 41 0.221 - 42 0.026 - 46 0.026 - - 7 4 3 0 - 24 0.25 - 31 0.25 - 41 0.5 - - 47 57 10 0 - 3 0.0702 - 4 0.0702 - 8 0.0175 - 13 0.439 - 14 0.0702 - 15 0.0351 - 18 0.0175 - 21 0.0702 - 41 0.193 - 42 0.0175 - - 57 14 10 0 - 0 0.0714 - 9 0.0714 - 13 0.0714 - 14 0.143 - 19 0.0714 - 24 0.0714 - 28 0.0714 - 41 0.286 - 42 0.0714 - 46 0.0714 - - 4 29 13 2 - 0 0.103 - 7 0.069 - 8 0.103 - 13 0.0345 - 14 0.103 - 24 0.069 - 28 0.0345 - 29 0.0345 - 32 0.069 - 33 0.103 - 41 0.207 - 46 0.0345 - 47 0.0345 - - 7 18 9 0 - 0 0.111 - 7 0.111 - 14 0.0556 - 24 0.111 - 29 0.0556 - 32 0.0556 - 33 0.167 - 41 0.278 - 47 0.0556 - - 57 11 8 0 - 0 0.0909 - 8 0.273 - 13 0.0909 - 14 0.182 - 28 0.0909 - 32 0.0909 - 41 0.0909 - 46 0.0909 - - 6 16 6 1 - 3 0.0625 - 6 0.188 - 13 0.188 - 15 0.188 - 41 0.188 - 44 0.188 - - 6 3 1 0 - 44 1 - - 7 83565 41 0 - 0 0.0129 - 1 7.18e-05 - 2 0.00859 - 3 0.0374 - 4 0.00881 - 6 7.18e-05 - 7 0.0117 - 8 0.0334 - 9 0.00596 - 10 0.00335 - 12 0.000168 - 13 0.369 - 14 0.156 - 15 0.0407 - 16 0.00188 - 18 0.000239 - 19 0.006 - 21 0.0348 - 22 0.00268 - 23 0.000215 - 24 0.00704 - 25 2.39e-05 - 26 0.000132 - 27 1.2e-05 - 28 0.0257 - 29 0.0221 - 30 0.0204 - 31 0.0807 - 32 0.00594 - 33 0.00902 - 34 0.000419 - 35 0.000299 - 37 8.38e-05 - 40 3.59e-05 - 41 0.0318 - 42 0.00281 - 43 0.0017 - 44 0.00107 - 45 0.00294 - 46 0.0061 - 47 0.0473 - - 8 392 18 5 - 0 0.0281 - 2 0.00255 - 3 0.00255 - 8 0.0051 - 13 0.0765 - 14 0.436 - 20 0.00255 - 21 0.0179 - 24 0.00255 - 29 0.00255 - 30 0.00255 - 31 0.00255 - 41 0.342 - 42 0.0281 - 44 0.0051 - 45 0.0051 - 46 0.0332 - 47 0.0051 - - 7 342 7 0 - 8 0.00292 - 13 0.0614 - 14 0.488 - 41 0.377 - 42 0.0322 - 44 0.00585 - 46 0.0322 - - 14 1 1 0 - 20 1 - - 26 12 8 0 - 3 0.0833 - 13 0.167 - 14 0.0833 - 21 0.0833 - 31 0.0833 - 41 0.25 - 45 0.167 - 47 0.0833 - - 47 25 9 0 - 0 0.44 - 2 0.04 - 8 0.04 - 13 0.12 - 14 0.12 - 21 0.12 - 24 0.04 - 29 0.04 - 30 0.04 - - 57 10 5 0 - 13 0.3 - 21 0.3 - 41 0.2 - 46 0.1 - 47 0.1 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 8 5 0 - 3 0.125 - 8 0.125 - 13 0.5 - 28 0.125 - 41 0.125 - - 15 11 5 0 - 15 0.455 - 16 0.0909 - 42 0.0909 - 45 0.273 - 47 0.0909 - - 21 467 30 5 - 0 0.0428 - 2 0.0428 - 3 0.00214 - 4 0.00214 - 7 0.0171 - 8 0.03 - 10 0.00214 - 13 0.107 - 14 0.122 - 15 0.0107 - 18 0.00428 - 19 0.0214 - 21 0.0685 - 22 0.00214 - 24 0.00214 - 28 0.0364 - 29 0.0321 - 30 0.0193 - 31 0.0664 - 32 0.00642 - 33 0.0236 - 34 0.00214 - 37 0.00214 - 41 0.165 - 42 0.0257 - 43 0.00428 - 44 0.00857 - 45 0.0193 - 46 0.00642 - 47 0.105 - - 7 289 25 0 - 0 0.0346 - 2 0.0554 - 3 0.00346 - 7 0.0138 - 8 0.0381 - 10 0.00346 - 13 0.111 - 14 0.135 - 15 0.0138 - 19 0.00692 - 21 0.0554 - 22 0.00346 - 28 0.0208 - 29 0.0138 - 31 0.0727 - 32 0.00692 - 33 0.00346 - 37 0.00346 - 41 0.221 - 42 0.0311 - 43 0.00692 - 44 0.00346 - 45 0.0138 - 46 0.00692 - 47 0.121 - - 21 10 7 0 - 0 0.1 - 13 0.1 - 14 0.2 - 29 0.1 - 41 0.3 - 44 0.1 - 47 0.1 - - 30 4 3 0 - 41 0.5 - 44 0.25 - 47 0.25 - - 47 90 23 0 - 0 0.0556 - 2 0.0333 - 7 0.0444 - 8 0.0111 - 13 0.133 - 14 0.1 - 15 0.0111 - 18 0.0111 - 19 0.0667 - 21 0.144 - 24 0.0111 - 28 0.0444 - 29 0.0444 - 30 0.0556 - 31 0.0667 - 32 0.0111 - 33 0.0667 - 34 0.0111 - 41 0.0111 - 42 0.0111 - 45 0.0111 - 46 0.0111 - 47 0.0333 - - 57 62 18 0 - 0 0.0645 - 4 0.0161 - 8 0.0323 - 13 0.0484 - 14 0.0968 - 18 0.0161 - 19 0.0323 - 21 0.0323 - 28 0.0968 - 29 0.0968 - 30 0.0645 - 31 0.0645 - 33 0.0645 - 41 0.0645 - 42 0.0323 - 44 0.0161 - 45 0.0323 - 47 0.129 - - 22 7 7 0 - 0 0.143 - 21 0.143 - 22 0.143 - 30 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 24 55 11 0 - 0 0.0182 - 13 0.0909 - 14 0.0545 - 19 0.0545 - 28 0.2 - 29 0.109 - 30 0.145 - 31 0.236 - 32 0.0182 - 33 0.0545 - 41 0.0182 - - 26 8661 35 0 - 0 0.00185 - 2 0.00496 - 3 0.0928 - 4 0.00127 - 6 0.000231 - 7 0.00947 - 8 0.068 - 9 0.00266 - 10 0.000115 - 13 0.286 - 14 0.103 - 15 0.02 - 16 0.000924 - 19 0.00935 - 21 0.0461 - 22 0.00173 - 23 0.000231 - 24 0.00877 - 26 0.000115 - 27 0.000693 - 28 0.0462 - 29 0.0701 - 30 0.076 - 31 0.0876 - 32 0.00774 - 33 0.0162 - 35 0.000115 - 40 0.000115 - 41 0.0264 - 42 0.00196 - 43 0.00127 - 44 0.000231 - 45 0.000462 - 46 0.00531 - 47 0.00231 - - 28 3 3 0 - 2 0.333 - 14 0.333 - 41 0.333 - - 29 2 1 0 - 41 1 - - 30 1062 21 2 - 2 0.00847 - 3 0.00659 - 7 0.00282 - 8 0.00282 - 13 0.0574 - 14 0.0433 - 15 0.0122 - 16 0.00188 - 19 0.00282 - 21 0.0104 - 22 0.000942 - 28 0.000942 - 29 0.00188 - 30 0.000942 - 31 0.0132 - 41 0.65 - 42 0.0377 - 44 0.00188 - 45 0.00282 - 46 0.0113 - 47 0.13 - - 47 613 20 0 - 2 0.00326 - 3 0.00979 - 7 0.00326 - 8 0.00489 - 13 0.0897 - 14 0.0669 - 15 0.0212 - 16 0.00326 - 19 0.00326 - 21 0.0179 - 22 0.00163 - 28 0.00163 - 29 0.00326 - 31 0.0179 - 41 0.622 - 42 0.0636 - 44 0.00326 - 45 0.00163 - 46 0.00653 - 47 0.0555 - - 57 448 12 0 - 2 0.0156 - 3 0.00223 - 7 0.00223 - 13 0.0134 - 14 0.0112 - 19 0.00223 - 30 0.00223 - 31 0.0067 - 41 0.69 - 45 0.00446 - 46 0.0179 - 47 0.232 - - 31 361 21 3 - 2 0.0166 - 3 0.036 - 4 0.00554 - 7 0.0166 - 8 0.036 - 9 0.00277 - 13 0.108 - 14 0.0526 - 15 0.00277 - 21 0.0139 - 28 0.00277 - 30 0.00277 - 31 0.0139 - 32 0.00277 - 41 0.593 - 42 0.00554 - 43 0.00277 - 44 0.00277 - 45 0.0111 - 46 0.00277 - 47 0.0693 - - 7 2 1 0 - 14 1 - - 47 57 12 0 - 2 0.105 - 4 0.0175 - 7 0.0351 - 8 0.0702 - 13 0.0351 - 21 0.0351 - 28 0.0175 - 41 0.404 - 42 0.0175 - 44 0.0175 - 45 0.0526 - 47 0.193 - - 57 302 18 0 - 3 0.043 - 4 0.00331 - 7 0.0132 - 8 0.0298 - 9 0.00331 - 13 0.123 - 14 0.0563 - 15 0.00331 - 21 0.00993 - 30 0.00331 - 31 0.0166 - 32 0.00331 - 41 0.632 - 42 0.00331 - 43 0.00331 - 45 0.00331 - 46 0.00331 - 47 0.0464 - - 41 8 6 0 - 2 0.125 - 13 0.125 - 14 0.125 - 15 0.125 - 18 0.25 - 21 0.25 - - 42 3 1 0 - 25 1 - - 45 10 7 0 - 0 0.2 - 3 0.1 - 13 0.2 - 14 0.1 - 19 0.1 - 21 0.2 - 47 0.1 - - 46 2 1 0 - 21 1 - - 47 94690 41 22 - 0 0.0128 - 1 6.34e-05 - 2 0.00877 - 3 0.0418 - 4 0.00773 - 6 8.45e-05 - 7 0.0116 - 8 0.0327 - 9 0.00546 - 10 0.00276 - 12 0.000169 - 13 0.357 - 14 0.151 - 15 0.0383 - 16 0.00177 - 18 0.000232 - 19 0.00646 - 21 0.0268 - 22 0.00233 - 23 0.000211 - 24 0.0072 - 25 2.11e-05 - 26 0.000137 - 27 7.39e-05 - 28 0.0281 - 29 0.0267 - 30 0.0257 - 31 0.0814 - 32 0.00621 - 33 0.00998 - 34 0.00038 - 35 0.000253 - 37 9.5e-05 - 40 4.22e-05 - 41 0.0452 - 42 0.00379 - 43 0.00163 - 44 0.0011 - 45 0.00291 - 46 0.00625 - 47 0.045 - - 2 75 16 0 - 0 0.0133 - 3 0.0533 - 4 0.0533 - 8 0.0133 - 9 0.0133 - 13 0.347 - 14 0.08 - 15 0.0267 - 19 0.0133 - 21 0.0533 - 24 0.0267 - 28 0.0133 - 31 0.0133 - 41 0.227 - 42 0.0267 - 46 0.0267 - - 4 29 13 0 - 0 0.103 - 7 0.069 - 8 0.103 - 13 0.0345 - 14 0.103 - 24 0.069 - 28 0.0345 - 29 0.0345 - 32 0.069 - 33 0.103 - 41 0.207 - 46 0.0345 - 47 0.0345 - - 6 13 5 0 - 3 0.0769 - 13 0.231 - 15 0.231 - 41 0.231 - 44 0.231 - - 7 82196 41 0 - 0 0.0132 - 1 7.3e-05 - 2 0.00869 - 3 0.0379 - 4 0.00861 - 6 7.3e-05 - 7 0.0119 - 8 0.0297 - 9 0.00592 - 10 0.00316 - 12 0.00017 - 13 0.375 - 14 0.158 - 15 0.0413 - 16 0.00191 - 18 0.000243 - 19 0.0061 - 21 0.0258 - 22 0.00248 - 23 0.000219 - 24 0.00715 - 25 2.43e-05 - 26 0.000134 - 27 1.22e-05 - 28 0.0261 - 29 0.0225 - 30 0.0207 - 31 0.082 - 32 0.00603 - 33 0.00917 - 34 0.000426 - 35 0.00028 - 37 8.52e-05 - 40 3.65e-05 - 41 0.0323 - 42 0.00286 - 43 0.0017 - 44 0.00107 - 45 0.00293 - 46 0.00618 - 47 0.0481 - - 8 387 17 0 - 0 0.0284 - 2 0.00258 - 3 0.00258 - 8 0.00258 - 13 0.0775 - 14 0.442 - 21 0.0103 - 24 0.00258 - 29 0.00258 - 30 0.00258 - 31 0.00258 - 41 0.346 - 42 0.0284 - 44 0.00517 - 45 0.00517 - 46 0.0336 - 47 0.00517 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 7 5 0 - 3 0.143 - 8 0.143 - 13 0.429 - 28 0.143 - 41 0.143 - - 15 11 5 0 - 15 0.455 - 16 0.0909 - 42 0.0909 - 45 0.273 - 47 0.0909 - - 21 439 28 0 - 0 0.0456 - 2 0.0456 - 3 0.00228 - 4 0.00228 - 7 0.0182 - 8 0.0296 - 13 0.114 - 14 0.125 - 15 0.0114 - 18 0.00456 - 19 0.0228 - 21 0.0296 - 24 0.00228 - 28 0.0387 - 29 0.0342 - 30 0.0205 - 31 0.0706 - 32 0.00683 - 33 0.0251 - 34 0.00228 - 37 0.00228 - 41 0.173 - 42 0.0273 - 43 0.00456 - 44 0.00911 - 45 0.0137 - 46 0.00683 - 47 0.112 - - 22 7 7 0 - 0 0.143 - 21 0.143 - 22 0.143 - 30 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 24 55 11 0 - 0 0.0182 - 13 0.0909 - 14 0.0545 - 19 0.0545 - 28 0.2 - 29 0.109 - 30 0.145 - 31 0.236 - 32 0.0182 - 33 0.0545 - 41 0.0182 - - 26 8601 35 0 - 0 0.00186 - 2 0.00488 - 3 0.0935 - 4 0.00128 - 6 0.000233 - 7 0.00953 - 8 0.0671 - 9 0.00267 - 10 0.000116 - 13 0.288 - 14 0.103 - 15 0.0201 - 16 0.00093 - 19 0.00942 - 21 0.0414 - 22 0.00163 - 23 0.000233 - 24 0.00884 - 26 0.000116 - 27 0.000698 - 28 0.0465 - 29 0.0706 - 30 0.0765 - 31 0.0882 - 32 0.00779 - 33 0.0163 - 35 0.000116 - 40 0.000116 - 41 0.0265 - 42 0.00198 - 43 0.00128 - 44 0.000233 - 45 0.000465 - 46 0.00535 - 47 0.00233 - - 29 2 1 0 - 41 1 - - 30 1055 21 0 - 2 0.00853 - 3 0.00664 - 7 0.00284 - 8 0.00284 - 13 0.0578 - 14 0.0436 - 15 0.0123 - 16 0.0019 - 19 0.00284 - 21 0.00379 - 22 0.000948 - 28 0.000948 - 29 0.0019 - 30 0.000948 - 31 0.0133 - 41 0.654 - 42 0.0379 - 44 0.0019 - 45 0.00284 - 46 0.0114 - 47 0.131 - - 31 358 21 0 - 2 0.0168 - 3 0.0363 - 4 0.00559 - 7 0.0168 - 8 0.0363 - 9 0.00279 - 13 0.109 - 14 0.0531 - 15 0.00279 - 21 0.00559 - 28 0.00279 - 30 0.00279 - 31 0.014 - 32 0.00279 - 41 0.598 - 42 0.00559 - 43 0.00279 - 44 0.00279 - 45 0.0112 - 46 0.00279 - 47 0.0698 - - 41 2 2 0 - 2 0.5 - 15 0.5 - - 45 9 7 0 - 0 0.222 - 3 0.111 - 13 0.222 - 14 0.111 - 19 0.111 - 21 0.111 - 47 0.111 - - 49 623 28 0 - 0 0.0674 - 2 0.0369 - 3 0.00321 - 4 0.00642 - 7 0.00482 - 8 0.0161 - 9 0.00161 - 12 0.00161 - 13 0.114 - 14 0.0867 - 15 0.0112 - 19 0.00963 - 21 0.0321 - 22 0.00161 - 24 0.00963 - 28 0.0161 - 29 0.0289 - 30 0.0144 - 31 0.0754 - 32 0.00482 - 33 0.0144 - 37 0.00161 - 41 0.319 - 42 0.0385 - 44 0.00321 - 45 0.0161 - 46 0.00482 - 47 0.0594 - - 50 17 10 0 - 8 0.176 - 13 0.118 - 14 0.0588 - 24 0.0588 - 28 0.0588 - 30 0.0588 - 31 0.118 - 33 0.0588 - 41 0.235 - 45 0.0588 - - 55 135 19 0 - 0 0.141 - 2 0.0593 - 7 0.133 - 8 0.0148 - 13 0.0815 - 14 0.0519 - 15 0.00741 - 21 0.037 - 24 0.00741 - 26 0.00741 - 28 0.0444 - 29 0.0444 - 31 0.0741 - 32 0.00741 - 33 0.0296 - 41 0.156 - 42 0.037 - 46 0.00741 - 47 0.0593 - - 57 656 25 0 - 0 0.0244 - 2 0.00915 - 3 0.00457 - 4 0.00305 - 7 0.00457 - 8 0.0457 - 9 0.0061 - 12 0.00152 - 13 0.245 - 14 0.148 - 15 0.0259 - 19 0.00915 - 21 0.0152 - 24 0.0061 - 28 0.0884 - 29 0.0381 - 30 0.061 - 31 0.123 - 32 0.0213 - 33 0.0274 - 41 0.0396 - 42 0.0152 - 45 0.00305 - 46 0.00305 - 47 0.0305 - - 74 5 2 0 - 41 0.2 - 47 0.8 - - 49 628 28 4 - 0 0.0669 - 2 0.0366 - 3 0.00318 - 4 0.00637 - 7 0.00478 - 8 0.0175 - 9 0.00159 - 12 0.00159 - 13 0.113 - 14 0.086 - 15 0.0111 - 19 0.00955 - 21 0.035 - 22 0.00159 - 24 0.00955 - 28 0.0159 - 29 0.0287 - 30 0.0143 - 31 0.0748 - 32 0.00478 - 33 0.0143 - 37 0.00159 - 41 0.318 - 42 0.0382 - 44 0.00318 - 45 0.0175 - 46 0.00478 - 47 0.0589 - - 21 11 6 0 - 0 0.273 - 2 0.0909 - 13 0.0909 - 14 0.182 - 21 0.0909 - 41 0.273 - - 26 36 15 0 - 0 0.0278 - 2 0.0833 - 8 0.0833 - 13 0.306 - 14 0.0833 - 15 0.0278 - 19 0.0278 - 21 0.0556 - 28 0.0278 - 29 0.0556 - 30 0.0278 - 31 0.0833 - 33 0.0278 - 41 0.0556 - 44 0.0278 - - 48 1 1 0 - 7 1 - - 57 6 3 0 - 21 0.333 - 33 0.167 - 42 0.5 - - 50 17 10 0 - 8 0.176 - 13 0.118 - 14 0.0588 - 24 0.0588 - 28 0.0588 - 30 0.0588 - 31 0.118 - 33 0.0588 - 41 0.235 - 45 0.0588 - - 55 142 21 4 - 0 0.134 - 2 0.0563 - 3 0.00704 - 7 0.141 - 8 0.0141 - 13 0.0775 - 14 0.0493 - 15 0.00704 - 21 0.0423 - 24 0.00704 - 26 0.00704 - 28 0.0423 - 29 0.0423 - 30 0.00704 - 31 0.0704 - 32 0.00704 - 33 0.0282 - 41 0.162 - 42 0.0352 - 46 0.00704 - 47 0.0563 - - 41 2 2 0 - 30 0.5 - 41 0.5 - - 47 5 3 0 - 2 0.2 - 3 0.2 - 7 0.6 - - 55 3 2 0 - 8 0.333 - 41 0.667 - - 57 5 4 0 - 2 0.2 - 13 0.2 - 26 0.2 - 41 0.4 - - 57 1537 25 1 - 0 0.0104 - 2 0.013 - 3 0.00195 - 4 0.00846 - 7 0.00195 - 8 0.028 - 9 0.0026 - 12 0.000651 - 13 0.108 - 14 0.0638 - 15 0.0111 - 19 0.0039 - 21 0.0592 - 24 0.0026 - 28 0.0377 - 29 0.0163 - 30 0.318 - 31 0.249 - 32 0.00911 - 33 0.0117 - 41 0.0176 - 42 0.00846 - 45 0.00195 - 46 0.0013 - 47 0.013 - - 7 8 4 0 - 0 0.125 - 4 0.125 - 31 0.125 - 41 0.625 - - 74 5 2 0 - 41 0.2 - 47 0.8 - -58 7648 40 29 - 0 0.00628 - 2 0.0209 - 3 0.0234 - 4 0.0068 - 6 0.00157 - 7 0.0111 - 8 0.028 - 9 0.00144 - 10 0.00105 - 11 0.000262 - 12 0.00144 - 13 0.168 - 14 0.125 - 15 0.117 - 16 0.00405 - 18 0.00131 - 19 0.00902 - 20 0.000785 - 21 0.0369 - 22 0.00105 - 23 0.000262 - 24 0.00105 - 26 0.000785 - 28 0.00732 - 29 0.0034 - 30 0.00288 - 31 0.011 - 32 0.00366 - 33 0.00484 - 34 0.00209 - 35 0.000523 - 37 0.00235 - 40 0.0123 - 41 0.151 - 42 0.0554 - 43 0.000523 - 44 0.132 - 45 0.00392 - 46 0.036 - 47 0.00314 - - 0 2 1 0 - 2 1 - - 2 101 4 0 - 15 0.0099 - 41 0.327 - 42 0.406 - 44 0.257 - - 4 1 1 0 - 28 1 - - 7 6 3 0 - 41 0.333 - 42 0.167 - 44 0.5 - - 8 16 2 0 - 2 0.125 - 44 0.875 - - 13 22 5 0 - 2 0.0909 - 8 0.136 - 13 0.182 - 15 0.0455 - 44 0.545 - - 15 36 5 0 - 2 0.0556 - 15 0.139 - 41 0.0278 - 44 0.75 - 45 0.0278 - - 21 14 6 0 - 2 0.214 - 7 0.143 - 12 0.0714 - 41 0.143 - 42 0.286 - 44 0.143 - - 28 3 2 0 - 2 0.333 - 44 0.667 - - 32 2 1 0 - 2 1 - - 41 1008 32 9 - 0 0.0129 - 2 0.0595 - 3 0.0188 - 4 0.0109 - 6 0.00198 - 7 0.0218 - 8 0.0506 - 9 0.00298 - 10 0.000992 - 11 0.000992 - 12 0.00198 - 13 0.309 - 14 0.143 - 15 0.143 - 16 0.00397 - 18 0.00198 - 19 0.0139 - 21 0.101 - 22 0.00397 - 23 0.000992 - 24 0.00397 - 26 0.00198 - 28 0.0109 - 29 0.00893 - 30 0.00496 - 31 0.0268 - 32 0.00794 - 33 0.0129 - 34 0.00694 - 35 0.00198 - 37 0.00794 - 43 0.000992 - - 2 23 12 0 - 0 0.0435 - 3 0.0435 - 4 0.0435 - 6 0.0435 - 8 0.087 - 13 0.261 - 14 0.087 - 15 0.087 - 21 0.087 - 31 0.087 - 32 0.0435 - 33 0.087 - - 46 99 15 0 - 0 0.0202 - 4 0.0202 - 7 0.0202 - 8 0.121 - 13 0.424 - 14 0.152 - 15 0.0606 - 16 0.0101 - 19 0.0303 - 21 0.0505 - 24 0.0101 - 28 0.0303 - 31 0.0202 - 32 0.0202 - 43 0.0101 - - 49 51 12 0 - 0 0.0196 - 2 0.294 - 3 0.0196 - 7 0.0588 - 8 0.0784 - 13 0.216 - 14 0.118 - 15 0.0588 - 21 0.0588 - 28 0.0196 - 29 0.0196 - 31 0.0392 - - 52 6 3 0 - 7 0.5 - 13 0.333 - 30 0.167 - - 55 139 10 0 - 0 0.0144 - 3 0.0216 - 8 0.0144 - 10 0.00719 - 13 0.122 - 14 0.129 - 15 0.619 - 21 0.0576 - 31 0.00719 - 33 0.00719 - - 57 77 19 0 - 0 0.013 - 2 0.26 - 7 0.0649 - 8 0.039 - 13 0.221 - 14 0.104 - 15 0.0779 - 16 0.039 - 21 0.026 - 22 0.013 - 26 0.013 - 28 0.013 - 29 0.013 - 30 0.013 - 31 0.013 - 33 0.026 - 34 0.013 - 35 0.013 - 37 0.026 - - 62 507 29 0 - 0 0.00789 - 2 0.0375 - 3 0.0256 - 4 0.0158 - 6 0.00197 - 7 0.00986 - 8 0.0375 - 9 0.00592 - 11 0.00197 - 12 0.00197 - 13 0.349 - 14 0.168 - 15 0.0671 - 18 0.00394 - 19 0.0158 - 21 0.142 - 22 0.00592 - 23 0.00197 - 24 0.00592 - 26 0.00197 - 28 0.00789 - 29 0.00986 - 30 0.00394 - 31 0.0355 - 32 0.00789 - 33 0.00986 - 34 0.00592 - 35 0.00197 - 37 0.00986 - - 64 50 16 0 - 0 0.02 - 2 0.08 - 7 0.04 - 8 0.12 - 12 0.02 - 13 0.32 - 14 0.06 - 15 0.04 - 19 0.02 - 21 0.06 - 28 0.04 - 29 0.02 - 32 0.02 - 33 0.06 - 34 0.06 - 37 0.02 - - 66 45 12 0 - 2 0.0444 - 3 0.0222 - 7 0.0444 - 8 0.0222 - 13 0.378 - 14 0.156 - 15 0.0889 - 19 0.0444 - 21 0.133 - 29 0.0222 - 30 0.0222 - 31 0.0222 - - 42 412 25 9 - 0 0.00971 - 2 0.0146 - 3 0.034 - 4 0.00485 - 7 0.0121 - 8 0.0558 - 9 0.00243 - 10 0.00243 - 12 0.00243 - 13 0.354 - 14 0.26 - 15 0.102 - 16 0.00971 - 18 0.00243 - 19 0.00485 - 21 0.034 - 26 0.00243 - 28 0.017 - 29 0.00485 - 30 0.00485 - 31 0.0243 - 32 0.00971 - 33 0.00728 - 43 0.00243 - 46 0.0218 - - 2 40 13 0 - 3 0.05 - 4 0.025 - 8 0.125 - 13 0.325 - 14 0.025 - 15 0.075 - 21 0.1 - 28 0.025 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.075 - 46 0.025 - - 48 11 7 0 - 2 0.0909 - 3 0.0909 - 7 0.0909 - 8 0.0909 - 13 0.182 - 14 0.364 - 15 0.0909 - - 49 27 10 0 - 0 0.037 - 3 0.037 - 8 0.0741 - 12 0.037 - 13 0.481 - 14 0.148 - 15 0.0741 - 18 0.037 - 21 0.037 - 31 0.037 - - 51 3 3 0 - 13 0.333 - 15 0.333 - 26 0.333 - - 55 119 16 0 - 0 0.0168 - 2 0.0084 - 3 0.042 - 7 0.0084 - 8 0.0168 - 9 0.0084 - 13 0.345 - 14 0.319 - 15 0.118 - 16 0.0168 - 19 0.0084 - 21 0.0336 - 28 0.0168 - 31 0.0084 - 43 0.0084 - 46 0.0252 - - 57 81 15 0 - 0 0.0123 - 2 0.037 - 3 0.0617 - 4 0.0123 - 7 0.0247 - 8 0.0247 - 10 0.0123 - 13 0.309 - 14 0.321 - 15 0.037 - 21 0.0494 - 28 0.0123 - 31 0.037 - 33 0.0123 - 46 0.037 - - 62 65 12 0 - 2 0.0154 - 7 0.0154 - 8 0.138 - 13 0.385 - 14 0.277 - 15 0.0308 - 19 0.0154 - 21 0.0154 - 28 0.0154 - 31 0.0462 - 33 0.0308 - 46 0.0154 - - 64 38 8 0 - 8 0.0263 - 13 0.368 - 14 0.158 - 15 0.316 - 16 0.0526 - 28 0.0263 - 32 0.0263 - 46 0.0263 - - 69 15 3 0 - 13 0.467 - 14 0.333 - 15 0.2 - - 44 1007 29 18 - 0 0.00794 - 2 0.000993 - 3 0.0566 - 4 0.0119 - 6 0.00397 - 7 0.0129 - 8 0.0298 - 9 0.000993 - 10 0.000993 - 12 0.00199 - 13 0.183 - 14 0.229 - 15 0.291 - 16 0.00695 - 18 0.00199 - 19 0.0139 - 20 0.00298 - 21 0.00894 - 28 0.00894 - 29 0.00199 - 30 0.00397 - 31 0.00497 - 32 0.00199 - 33 0.00199 - 37 0.000993 - 40 0.0467 - 41 0.00993 - 46 0.0437 - 47 0.00894 - - 2 26 9 0 - 0 0.0769 - 6 0.0385 - 13 0.423 - 14 0.192 - 15 0.0769 - 16 0.0385 - 28 0.0385 - 30 0.0769 - 31 0.0385 - - 8 14 7 0 - 4 0.214 - 7 0.214 - 8 0.214 - 9 0.0714 - 13 0.143 - 15 0.0714 - 40 0.0714 - - 9 1 1 0 - 20 1 - - 13 12 7 0 - 3 0.167 - 4 0.333 - 7 0.167 - 10 0.0833 - 13 0.0833 - 15 0.0833 - 31 0.0833 - - 14 2 2 0 - 8 0.5 - 41 0.5 - - 15 27 6 0 - 4 0.111 - 15 0.667 - 16 0.037 - 19 0.0741 - 28 0.037 - 40 0.0741 - - 21 2 2 0 - 0 0.5 - 14 0.5 - - 28 2 1 0 - 28 1 - - 45 24 5 0 - 13 0.375 - 14 0.0417 - 15 0.458 - 18 0.0417 - 46 0.0833 - - 48 24 10 0 - 0 0.0417 - 2 0.0417 - 3 0.25 - 4 0.0417 - 8 0.125 - 13 0.333 - 14 0.0417 - 15 0.0417 - 16 0.0417 - 40 0.0417 - - 49 12 7 0 - 0 0.0833 - 8 0.25 - 12 0.167 - 13 0.25 - 15 0.0833 - 33 0.0833 - 47 0.0833 - - 51 3 3 0 - 8 0.333 - 15 0.333 - 47 0.333 - - 52 5 2 0 - 13 0.8 - 21 0.2 - - 55 676 20 0 - 3 0.0621 - 4 0.00148 - 6 0.00444 - 7 0.00888 - 8 0.00888 - 13 0.129 - 14 0.266 - 15 0.354 - 16 0.00592 - 18 0.00148 - 19 0.0163 - 20 0.00296 - 21 0.00296 - 28 0.00296 - 29 0.00148 - 31 0.00148 - 40 0.0636 - 41 0.00888 - 46 0.0562 - 47 0.00148 - - 57 52 14 0 - 0 0.0192 - 3 0.0192 - 8 0.0962 - 13 0.385 - 14 0.25 - 15 0.0385 - 19 0.0192 - 21 0.0385 - 28 0.0192 - 29 0.0192 - 30 0.0192 - 31 0.0385 - 41 0.0192 - 46 0.0192 - - 62 63 14 0 - 0 0.0317 - 3 0.0476 - 7 0.0159 - 8 0.0794 - 13 0.302 - 14 0.159 - 15 0.111 - 21 0.0635 - 28 0.0159 - 32 0.0317 - 33 0.0159 - 37 0.0159 - 46 0.0159 - 47 0.0952 - - 64 23 7 0 - 3 0.087 - 8 0.0435 - 13 0.565 - 14 0.174 - 28 0.0435 - 41 0.0435 - 46 0.0435 - - 69 25 5 0 - 3 0.04 - 13 0.16 - 14 0.56 - 15 0.2 - 30 0.04 - - 45 30 4 0 - 41 0.0667 - 42 0.1 - 44 0.8 - 46 0.0333 - - 46 105 4 1 - 13 0.00952 - 33 0.00952 - 41 0.962 - 46 0.019 - - 42 1 1 0 - 13 1 - - 47 2420 38 11 - 0 0.00909 - 2 0.0298 - 3 0.0364 - 4 0.0107 - 6 0.00248 - 7 0.0165 - 8 0.0434 - 9 0.00207 - 10 0.00124 - 11 0.000413 - 12 0.00207 - 13 0.26 - 14 0.194 - 15 0.163 - 16 0.0062 - 18 0.00207 - 19 0.012 - 20 0.00124 - 21 0.0496 - 22 0.00165 - 23 0.000413 - 24 0.00165 - 26 0.00124 - 28 0.0116 - 29 0.00537 - 30 0.00455 - 31 0.0174 - 32 0.00579 - 33 0.00744 - 34 0.00331 - 35 0.000826 - 37 0.00372 - 40 0.0194 - 41 0.0306 - 42 0.00248 - 43 0.000826 - 46 0.0351 - 47 0.00496 - - 2 12 3 0 - 15 0.0833 - 41 0.833 - 42 0.0833 - - 41 884 32 0 - 0 0.0113 - 2 0.0679 - 3 0.0192 - 4 0.0124 - 6 0.00226 - 7 0.0249 - 8 0.0577 - 9 0.00339 - 10 0.00113 - 11 0.00113 - 12 0.00226 - 13 0.337 - 14 0.145 - 15 0.0679 - 16 0.00339 - 18 0.00226 - 19 0.0158 - 21 0.11 - 22 0.00452 - 23 0.00113 - 24 0.00452 - 26 0.00226 - 28 0.0124 - 29 0.0102 - 30 0.00566 - 31 0.0305 - 32 0.00905 - 33 0.0147 - 34 0.00792 - 35 0.00226 - 37 0.00905 - 43 0.00113 - - 42 407 25 0 - 0 0.00983 - 2 0.0147 - 3 0.0344 - 4 0.00491 - 7 0.0123 - 8 0.0565 - 9 0.00246 - 10 0.00246 - 12 0.00246 - 13 0.359 - 14 0.263 - 15 0.0958 - 16 0.00983 - 18 0.00246 - 19 0.00246 - 21 0.0344 - 26 0.00246 - 28 0.0172 - 29 0.00491 - 30 0.00491 - 31 0.0246 - 32 0.00983 - 33 0.00737 - 43 0.00246 - 46 0.0197 - - 44 1007 29 0 - 0 0.00794 - 2 0.000993 - 3 0.0566 - 4 0.0119 - 6 0.00397 - 7 0.0129 - 8 0.0298 - 9 0.000993 - 10 0.000993 - 12 0.00199 - 13 0.183 - 14 0.229 - 15 0.291 - 16 0.00695 - 18 0.00199 - 19 0.0139 - 20 0.00298 - 21 0.00894 - 28 0.00894 - 29 0.00199 - 30 0.00397 - 31 0.00497 - 32 0.00199 - 33 0.00199 - 37 0.000993 - 40 0.0467 - 41 0.00993 - 46 0.0437 - 47 0.00894 - - 49 6 3 0 - 41 0.667 - 42 0.167 - 46 0.167 - - 51 1 1 0 - 42 1 - - 55 5 3 0 - 41 0.4 - 46 0.4 - 47 0.2 - - 57 9 5 0 - 2 0.333 - 14 0.111 - 15 0.111 - 41 0.333 - 42 0.111 - - 62 70 9 0 - 4 0.0143 - 8 0.0143 - 14 0.0286 - 16 0.0143 - 34 0.0143 - 41 0.557 - 42 0.0286 - 46 0.3 - 47 0.0286 - - 64 3 2 0 - 2 0.667 - 46 0.333 - - 66 12 2 0 - 41 0.333 - 46 0.667 - - 48 48 7 0 - 0 0.0208 - 13 0.0417 - 21 0.146 - 41 0.0208 - 42 0.229 - 44 0.5 - 45 0.0417 - - 49 102 7 3 - 7 0.0098 - 14 0.0098 - 21 0.0392 - 41 0.539 - 42 0.275 - 44 0.118 - 46 0.0098 - - 41 4 1 0 - 42 1 - - 47 57 5 0 - 14 0.0175 - 21 0.0526 - 41 0.684 - 42 0.14 - 44 0.105 - - 48 6 3 0 - 21 0.167 - 41 0.333 - 44 0.5 - - 51 8 3 0 - 41 0.125 - 42 0.5 - 44 0.375 - - 52 12 3 0 - 41 0.5 - 42 0.0833 - 44 0.417 - - 55 985 13 2 - 3 0.00102 - 7 0.00203 - 8 0.00102 - 9 0.00102 - 13 0.00102 - 19 0.00203 - 21 0.0223 - 41 0.143 - 42 0.121 - 44 0.686 - 45 0.0122 - 46 0.00609 - 47 0.00102 - - 41 101 4 0 - 41 0.109 - 42 0.0297 - 44 0.851 - 46 0.0099 - - 69 25 2 0 - 41 0.96 - 46 0.04 - - 57 225 9 1 - 2 0.0178 - 13 0.00889 - 14 0.00889 - 15 0.00444 - 41 0.356 - 42 0.364 - 44 0.231 - 45 0.00444 - 46 0.00444 - - 41 12 2 0 - 42 0.917 - 44 0.0833 - - 58 4 3 0 - 13 0.5 - 21 0.25 - 46 0.25 - - 62 781 11 2 - 4 0.00128 - 8 0.00128 - 14 0.00256 - 16 0.00128 - 34 0.00128 - 41 0.699 - 42 0.0858 - 44 0.0807 - 45 0.0128 - 46 0.111 - 47 0.00256 - - 41 5 3 0 - 41 0.2 - 42 0.4 - 45 0.4 - - 46 2 1 0 - 45 1 - - 64 117 8 0 - 2 0.0171 - 10 0.00855 - 15 0.00855 - 21 0.00855 - 41 0.427 - 42 0.325 - 44 0.197 - 46 0.00855 - - 66 86 2 0 - 41 0.57 - 46 0.43 - - 67 6 3 0 - 41 0.167 - 44 0.167 - 45 0.667 - - 68 4 3 0 - 21 0.25 - 42 0.5 - 44 0.25 - - 69 68 9 0 - 10 0.0147 - 13 0.0294 - 14 0.0441 - 15 0.176 - 19 0.118 - 21 0.0147 - 41 0.0147 - 42 0.221 - 44 0.368 - -59 5288 19 7 - 0 0.00265 - 2 0.000378 - 3 0.000378 - 4 0.00151 - 7 0.000378 - 8 0.00227 - 9 0.000378 - 13 0.0223 - 14 0.0129 - 15 0.00227 - 19 0.0318 - 21 0.000756 - 24 0.000756 - 28 0.326 - 29 0.179 - 30 0.151 - 31 0.169 - 32 0.0416 - 33 0.0552 - - 2 2 1 0 - 24 1 - - 7 65 11 0 - 8 0.0154 - 13 0.0308 - 14 0.0154 - 15 0.0154 - 19 0.0769 - 28 0.154 - 29 0.277 - 30 0.108 - 31 0.215 - 32 0.0308 - 33 0.0615 - - 8 6 4 0 - 8 0.167 - 14 0.167 - 28 0.5 - 31 0.167 - - 21 84 12 0 - 0 0.0119 - 3 0.0119 - 13 0.0833 - 14 0.0238 - 15 0.0119 - 19 0.0714 - 28 0.238 - 29 0.107 - 30 0.155 - 31 0.226 - 32 0.0238 - 33 0.0357 - - 23 1 1 0 - 0 1 - - 24 2483 18 1 - 0 0.00201 - 2 0.000805 - 4 0.00161 - 7 0.000403 - 8 0.00161 - 9 0.000403 - 13 0.0201 - 14 0.0117 - 15 0.00161 - 19 0.0294 - 21 0.000805 - 24 0.000403 - 28 0.333 - 29 0.178 - 30 0.153 - 31 0.166 - 32 0.0427 - 33 0.056 - - 2 2 1 0 - 13 1 - - 47 2642 18 4 - 0 0.00265 - 3 0.000379 - 4 0.00151 - 7 0.000379 - 8 0.00227 - 9 0.000379 - 13 0.0223 - 14 0.0129 - 15 0.00227 - 19 0.0318 - 21 0.000757 - 24 0.000379 - 28 0.326 - 29 0.179 - 30 0.151 - 31 0.169 - 32 0.0416 - 33 0.0553 - - 7 65 11 0 - 8 0.0154 - 13 0.0308 - 14 0.0154 - 15 0.0154 - 19 0.0769 - 28 0.154 - 29 0.277 - 30 0.108 - 31 0.215 - 32 0.0308 - 33 0.0615 - - 8 6 4 0 - 8 0.167 - 14 0.167 - 28 0.5 - 31 0.167 - - 21 84 12 0 - 0 0.0119 - 3 0.0119 - 13 0.0833 - 14 0.0238 - 15 0.0119 - 19 0.0714 - 28 0.238 - 29 0.107 - 30 0.155 - 31 0.226 - 32 0.0238 - 33 0.0357 - - 23 1 1 0 - 0 1 - -60 27233 41 25 - 0 0.0313 - 1 7.34e-05 - 2 0.0264 - 3 0.111 - 4 0.0584 - 7 0.296 - 8 0.0205 - 9 0.0164 - 10 0.0061 - 13 0.0187 - 14 0.00639 - 15 0.00323 - 16 0.000147 - 17 0.000257 - 18 0.00804 - 19 0.000808 - 20 0.00463 - 21 0.0559 - 22 0.00382 - 23 7.34e-05 - 24 0.0051 - 25 0.00011 - 26 0.11 - 28 0.038 - 29 0.0476 - 30 0.0154 - 31 0.0166 - 32 0.00543 - 33 0.0142 - 34 0.000441 - 36 0.000147 - 37 0.00125 - 38 0.0047 - 39 0.00683 - 41 0.0143 - 42 0.0234 - 43 0.000184 - 44 0.0134 - 45 0.00114 - 46 0.00022 - 47 0.0135 - - 2 230 9 4 - 3 0.626 - 4 0.0304 - 7 0.00435 - 8 0.00435 - 13 0.265 - 14 0.0565 - 31 0.00435 - 41 0.00435 - 43 0.00435 - - 3 94 4 0 - 3 0.543 - 4 0.0426 - 13 0.404 - 31 0.0106 - - 7 4 3 0 - 3 0.25 - 4 0.5 - 7 0.25 - - 9 51 3 0 - 3 0.627 - 13 0.176 - 14 0.196 - - 39 43 5 0 - 3 0.907 - 4 0.0233 - 14 0.0233 - 41 0.0233 - 43 0.0233 - - 3 6618 35 9 - 0 0.011 - 2 0.0193 - 3 0.317 - 4 0.0252 - 7 0.221 - 8 0.0113 - 9 0.000151 - 10 0.0192 - 13 0.0119 - 14 0.00287 - 15 0.00181 - 16 0.000151 - 18 0.00468 - 19 0.000302 - 20 0.00181 - 21 0.0979 - 22 0.000151 - 24 0.00121 - 25 0.000453 - 26 0.116 - 28 0.00861 - 29 0.0323 - 30 0.00378 - 31 0.00423 - 32 0.00212 - 33 0.00242 - 34 0.000453 - 38 0.0192 - 39 0.0264 - 41 0.0068 - 42 0.0258 - 43 0.000151 - 44 0.000453 - 45 0.000907 - 47 0.00181 - - 2 115 19 0 - 0 0.0261 - 2 0.0435 - 3 0.209 - 4 0.0609 - 7 0.243 - 8 0.0435 - 13 0.0174 - 14 0.0087 - 19 0.0087 - 21 0.0261 - 26 0.0087 - 28 0.0261 - 29 0.0174 - 31 0.0261 - 32 0.0087 - 33 0.0087 - 38 0.0087 - 39 0.191 - 45 0.0174 - - 3 2100 30 0 - 0 0.0229 - 2 0.0143 - 4 0.0305 - 7 0.277 - 8 0.0162 - 10 0.00143 - 13 0.00286 - 14 0.00667 - 15 0.00524 - 16 0.000476 - 18 0.0138 - 20 0.00571 - 21 0.0419 - 22 0.000476 - 24 0.00238 - 25 0.00143 - 26 0.224 - 28 0.0181 - 29 0.0929 - 30 0.00857 - 31 0.00905 - 32 0.000952 - 33 0.00476 - 34 0.00143 - 38 0.0576 - 39 0.0376 - 41 0.0171 - 42 0.0786 - 44 0.000476 - 47 0.00571 - - 7 33 11 0 - 0 0.0303 - 2 0.0606 - 3 0.0303 - 7 0.303 - 13 0.0303 - 21 0.303 - 31 0.0303 - 32 0.0606 - 33 0.0303 - 41 0.0909 - 42 0.0303 - - 8 4 2 0 - 3 0.5 - 4 0.5 - - 9 13 8 0 - 0 0.154 - 2 0.0769 - 10 0.0769 - 28 0.0769 - 29 0.231 - 30 0.0769 - 32 0.0769 - 41 0.231 - - 13 293 22 0 - 0 0.0205 - 2 0.0751 - 3 0.294 - 4 0.0546 - 7 0.171 - 8 0.0102 - 10 0.00341 - 13 0.0102 - 14 0.00683 - 15 0.00341 - 18 0.00341 - 21 0.041 - 26 0.232 - 28 0.0137 - 29 0.00683 - 30 0.00683 - 31 0.0102 - 32 0.0137 - 33 0.00683 - 39 0.00683 - 42 0.00341 - 45 0.00683 - - 14 71 14 0 - 0 0.0986 - 2 0.127 - 3 0.0423 - 4 0.0141 - 7 0.254 - 14 0.0141 - 21 0.127 - 26 0.169 - 28 0.0563 - 29 0.0141 - 41 0.0282 - 42 0.0282 - 44 0.0141 - 45 0.0141 - - 26 310 22 0 - 0 0.0194 - 3 0.171 - 4 0.0258 - 7 0.155 - 8 0.0194 - 9 0.00323 - 10 0.00323 - 13 0.216 - 19 0.00323 - 21 0.0419 - 24 0.00645 - 28 0.0226 - 29 0.0323 - 30 0.0129 - 31 0.00323 - 32 0.0129 - 33 0.00645 - 39 0.232 - 42 0.00323 - 43 0.00323 - 44 0.00323 - 45 0.00323 - - 47 3678 16 0 - 2 0.016 - 3 0.525 - 4 0.0188 - 7 0.198 - 8 0.00734 - 10 0.0329 - 14 0.000272 - 18 0.000272 - 21 0.139 - 24 0.000272 - 26 0.0593 - 29 0.000272 - 31 0.000272 - 38 0.00136 - 41 0.000272 - 42 0.000272 - - 4 242 23 7 - 0 0.0124 - 2 0.0248 - 3 0.00413 - 4 0.00413 - 7 0.343 - 10 0.0289 - 13 0.0207 - 14 0.00413 - 17 0.0289 - 21 0.165 - 24 0.0165 - 26 0.0331 - 28 0.0702 - 29 0.0702 - 30 0.0165 - 31 0.0248 - 32 0.00413 - 33 0.0289 - 41 0.00826 - 42 0.00826 - 44 0.00413 - 46 0.00413 - 47 0.0744 - - 2 7 5 0 - 7 0.286 - 29 0.286 - 31 0.143 - 32 0.143 - 47 0.143 - - 3 79 19 0 - 0 0.0253 - 2 0.038 - 3 0.0127 - 7 0.278 - 10 0.0253 - 13 0.0506 - 17 0.0127 - 21 0.0127 - 24 0.0127 - 26 0.0253 - 28 0.0633 - 29 0.127 - 30 0.0253 - 33 0.038 - 41 0.0253 - 42 0.0253 - 44 0.0127 - 46 0.0127 - 47 0.177 - - 8 39 9 0 - 7 0.154 - 10 0.0769 - 13 0.0256 - 14 0.0256 - 21 0.513 - 26 0.0769 - 28 0.0769 - 29 0.0256 - 30 0.0256 - - 9 7 3 0 - 7 0.429 - 26 0.429 - 28 0.143 - - 13 35 12 0 - 0 0.0286 - 2 0.0571 - 4 0.0286 - 7 0.429 - 17 0.114 - 21 0.143 - 24 0.0286 - 28 0.0286 - 29 0.0286 - 31 0.0286 - 33 0.0571 - 47 0.0286 - - 39 24 9 0 - 7 0.208 - 17 0.0417 - 21 0.0833 - 28 0.25 - 29 0.0833 - 30 0.0417 - 31 0.167 - 33 0.0833 - 47 0.0417 - - 47 41 6 0 - 7 0.634 - 10 0.0488 - 17 0.0244 - 21 0.244 - 24 0.0244 - 47 0.0244 - - 7 1759 31 14 - 0 0.0352 - 1 0.000569 - 2 0.0222 - 3 0.0188 - 4 0.00227 - 7 0.204 - 8 0.0824 - 9 0.252 - 10 0.00114 - 13 0.00569 - 14 0.0131 - 15 0.00114 - 16 0.000569 - 19 0.00114 - 21 0.0495 - 22 0.0563 - 24 0.00682 - 26 0.0324 - 28 0.0591 - 29 0.0233 - 30 0.021 - 31 0.0171 - 32 0.00625 - 33 0.0347 - 37 0.00625 - 41 0.0148 - 42 0.00455 - 44 0.00284 - 45 0.00227 - 46 0.00114 - 47 0.0222 - - 3 910 26 0 - 0 0.0297 - 2 0.0176 - 3 0.0275 - 4 0.0022 - 7 0.137 - 8 0.112 - 9 0.289 - 13 0.0011 - 14 0.0044 - 15 0.0011 - 16 0.0011 - 21 0.0593 - 22 0.0725 - 24 0.0022 - 26 0.0396 - 28 0.0418 - 29 0.0286 - 30 0.0231 - 31 0.0154 - 32 0.0044 - 33 0.0396 - 37 0.0011 - 41 0.0187 - 42 0.00549 - 45 0.0011 - 47 0.0242 - - 4 45 17 0 - 0 0.0222 - 3 0.0444 - 4 0.0222 - 7 0.0889 - 8 0.0222 - 9 0.333 - 10 0.0222 - 13 0.0222 - 14 0.0444 - 21 0.0444 - 22 0.156 - 24 0.0222 - 29 0.0222 - 31 0.0444 - 33 0.0222 - 41 0.0222 - 42 0.0444 - - 7 5 2 0 - 3 0.8 - 9 0.2 - - 8 11 4 0 - 8 0.0909 - 14 0.364 - 21 0.273 - 22 0.273 - - 10 161 20 0 - 0 0.0435 - 1 0.00621 - 2 0.0497 - 7 0.404 - 8 0.00621 - 13 0.00621 - 14 0.00621 - 21 0.00621 - 24 0.0248 - 26 0.0248 - 28 0.137 - 29 0.0248 - 30 0.0435 - 31 0.0248 - 32 0.00621 - 33 0.0186 - 37 0.0621 - 41 0.0248 - 45 0.00621 - 47 0.0745 - - 13 26 13 0 - 0 0.115 - 4 0.0385 - 9 0.346 - 13 0.0385 - 21 0.0769 - 22 0.0769 - 26 0.0385 - 30 0.0385 - 31 0.0385 - 33 0.0769 - 42 0.0385 - 45 0.0385 - 47 0.0385 - - 14 16 5 0 - 2 0.125 - 7 0.0625 - 9 0.375 - 14 0.375 - 46 0.0625 - - 17 27 10 0 - 0 0.0741 - 7 0.111 - 9 0.481 - 21 0.0741 - 22 0.0741 - 26 0.037 - 28 0.037 - 30 0.037 - 32 0.037 - 45 0.037 - - 21 16 8 0 - 0 0.125 - 3 0.0625 - 8 0.0625 - 9 0.438 - 13 0.0625 - 21 0.0625 - 22 0.0625 - 41 0.125 - - 26 53 12 0 - 7 0.472 - 13 0.0377 - 14 0.0566 - 19 0.0189 - 21 0.0189 - 24 0.0189 - 28 0.226 - 31 0.0189 - 32 0.0377 - 33 0.0377 - 41 0.0377 - 47 0.0189 - - 28 2 1 0 - 22 1 - - 38 10 8 0 - 2 0.2 - 8 0.1 - 9 0.1 - 21 0.1 - 26 0.1 - 28 0.2 - 29 0.1 - 33 0.1 - - 39 470 23 0 - 0 0.0404 - 2 0.0213 - 7 0.287 - 8 0.0809 - 9 0.27 - 10 0.00213 - 13 0.00638 - 14 0.00638 - 15 0.00213 - 19 0.00213 - 21 0.0404 - 22 0.034 - 24 0.00851 - 26 0.0298 - 28 0.0596 - 29 0.0191 - 30 0.0149 - 31 0.0149 - 32 0.00638 - 33 0.034 - 44 0.0106 - 46 0.00213 - 47 0.00638 - - 47 3 3 0 - 2 0.333 - 9 0.333 - 21 0.333 - - 8 256 17 9 - 0 0.0117 - 2 0.00391 - 3 0.0156 - 4 0.195 - 7 0.117 - 10 0.00781 - 15 0.00391 - 21 0.594 - 22 0.00391 - 26 0.00781 - 28 0.00391 - 29 0.00391 - 30 0.00781 - 31 0.00781 - 33 0.00781 - 39 0.00391 - 41 0.00391 - - 3 37 9 0 - 0 0.0541 - 4 0.459 - 7 0.297 - 26 0.027 - 28 0.027 - 29 0.027 - 30 0.027 - 31 0.0541 - 33 0.027 - - 7 140 4 0 - 0 0.00714 - 4 0.00714 - 7 0.00714 - 21 0.979 - - 13 4 3 0 - 4 0.5 - 7 0.25 - 41 0.25 - - 14 3 3 0 - 2 0.333 - 7 0.333 - 33 0.333 - - 21 1 1 0 - 30 1 - - 26 4 3 0 - 4 0.25 - 7 0.5 - 15 0.25 - - 39 8 3 0 - 4 0.625 - 7 0.25 - 21 0.125 - - 41 1 1 0 - 39 1 - - 47 56 7 0 - 3 0.0714 - 4 0.411 - 7 0.196 - 10 0.0357 - 21 0.25 - 22 0.0179 - 26 0.0179 - - 9 511 25 2 - 0 0.0509 - 2 0.133 - 3 0.0254 - 4 0.0274 - 7 0.29 - 8 0.00196 - 13 0.0157 - 14 0.00783 - 15 0.00391 - 19 0.00196 - 20 0.00196 - 21 0.047 - 24 0.00391 - 26 0.0391 - 28 0.0685 - 29 0.0705 - 30 0.0352 - 31 0.0391 - 32 0.00587 - 33 0.0235 - 37 0.00391 - 41 0.0509 - 42 0.0157 - 45 0.00196 - 47 0.0352 - - 7 443 23 0 - 0 0.0587 - 2 0.0384 - 4 0.0316 - 7 0.334 - 13 0.0158 - 14 0.00677 - 15 0.00451 - 19 0.00226 - 20 0.00226 - 21 0.0519 - 24 0.00451 - 26 0.0451 - 28 0.079 - 29 0.0813 - 30 0.0406 - 31 0.0451 - 32 0.00677 - 33 0.0271 - 37 0.00451 - 41 0.0587 - 42 0.0181 - 45 0.00226 - 47 0.0406 - - 47 67 5 0 - 2 0.761 - 3 0.194 - 8 0.0149 - 14 0.0149 - 21 0.0149 - - 10 163 2 0 - 2 0.00613 - 7 0.994 - - 13 383 11 5 - 3 0.765 - 4 0.094 - 7 0.0731 - 8 0.0104 - 10 0.00522 - 20 0.00261 - 21 0.0339 - 24 0.00261 - 26 0.00783 - 33 0.00261 - 42 0.00261 - - 2 23 1 0 - 3 1 - - 7 3 2 0 - 4 0.667 - 7 0.333 - - 26 108 3 0 - 3 0.972 - 7 0.0185 - 21 0.00926 - - 39 1 1 0 - 20 1 - - 47 248 10 0 - 3 0.665 - 4 0.137 - 7 0.101 - 8 0.0161 - 10 0.00806 - 21 0.0484 - 24 0.00403 - 26 0.0121 - 33 0.00403 - 42 0.00403 - - 14 104 11 4 - 2 0.00962 - 3 0.683 - 4 0.00962 - 7 0.173 - 8 0.0288 - 15 0.00962 - 21 0.0385 - 26 0.00962 - 28 0.0192 - 41 0.00962 - 45 0.00962 - - 3 1 1 0 - 4 1 - - 7 10 6 0 - 2 0.1 - 3 0.4 - 7 0.1 - 28 0.2 - 41 0.1 - 45 0.1 - - 47 82 4 0 - 3 0.707 - 7 0.207 - 8 0.0366 - 21 0.0488 - - 58 1 1 0 - 15 1 - - 15 2 2 0 - 3 0.5 - 15 0.5 - - 17 43 7 0 - 4 0.0233 - 7 0.628 - 10 0.0698 - 14 0.0233 - 21 0.209 - 28 0.0233 - 31 0.0233 - - 21 1368 30 13 - 0 0.0775 - 2 0.0702 - 3 0.00146 - 4 0.0139 - 7 0.284 - 8 0.00439 - 13 0.0168 - 14 0.0102 - 15 0.00512 - 18 0.00146 - 19 0.00292 - 20 0.00146 - 21 0.0694 - 23 0.000731 - 24 0.0146 - 26 0.0373 - 28 0.0877 - 29 0.0687 - 30 0.0234 - 31 0.0307 - 32 0.0183 - 33 0.0424 - 36 0.000731 - 37 0.00219 - 41 0.0387 - 42 0.0175 - 43 0.000731 - 44 0.00512 - 45 0.00219 - 47 0.0497 - - 3 628 30 0 - 0 0.0955 - 2 0.0446 - 3 0.00318 - 4 0.00796 - 7 0.247 - 8 0.00159 - 13 0.0175 - 14 0.00478 - 15 0.00955 - 18 0.00159 - 19 0.00318 - 20 0.00318 - 21 0.0525 - 23 0.00159 - 24 0.00637 - 26 0.0318 - 28 0.0732 - 29 0.0971 - 30 0.0271 - 31 0.035 - 32 0.0223 - 33 0.0589 - 36 0.00159 - 37 0.00318 - 41 0.0478 - 42 0.0159 - 43 0.00159 - 44 0.00796 - 45 0.00318 - 47 0.0732 - - 4 38 10 0 - 2 0.0526 - 7 0.263 - 14 0.0263 - 21 0.0789 - 28 0.0263 - 29 0.0789 - 31 0.0526 - 33 0.105 - 41 0.132 - 47 0.184 - - 7 71 14 0 - 0 0.0845 - 2 0.0423 - 7 0.183 - 8 0.0423 - 21 0.394 - 24 0.0423 - 26 0.0141 - 28 0.0282 - 29 0.0282 - 32 0.0141 - 33 0.0563 - 41 0.0141 - 42 0.0282 - 47 0.0282 - - 8 152 20 0 - 0 0.0461 - 2 0.0592 - 4 0.00658 - 7 0.375 - 8 0.00658 - 13 0.0132 - 14 0.0263 - 21 0.0461 - 24 0.0329 - 26 0.0526 - 28 0.164 - 29 0.0526 - 30 0.0197 - 31 0.0197 - 32 0.0132 - 33 0.0132 - 37 0.00658 - 41 0.0132 - 42 0.0132 - 47 0.0197 - - 9 15 9 0 - 0 0.0667 - 4 0.133 - 7 0.267 - 21 0.0667 - 26 0.0667 - 28 0.0667 - 32 0.133 - 41 0.133 - 45 0.0667 - - 13 12 8 0 - 2 0.25 - 21 0.0833 - 24 0.0833 - 28 0.0833 - 29 0.0833 - 32 0.0833 - 41 0.0833 - 47 0.25 - - 14 4 3 0 - 7 0.5 - 24 0.25 - 29 0.25 - - 17 9 6 0 - 2 0.111 - 7 0.222 - 24 0.111 - 29 0.222 - 33 0.111 - 47 0.222 - - 21 59 17 0 - 0 0.0508 - 2 0.0169 - 7 0.102 - 13 0.0508 - 14 0.0847 - 19 0.0339 - 21 0.0169 - 24 0.0169 - 26 0.0169 - 28 0.288 - 29 0.0508 - 31 0.0678 - 32 0.0339 - 33 0.0508 - 41 0.0847 - 42 0.0169 - 47 0.0169 - - 26 21 10 0 - 0 0.19 - 2 0.0952 - 7 0.19 - 14 0.0476 - 15 0.0476 - 28 0.19 - 30 0.0952 - 33 0.0476 - 41 0.0476 - 42 0.0476 - - 38 11 8 0 - 7 0.182 - 21 0.0909 - 24 0.0909 - 26 0.182 - 28 0.182 - 29 0.0909 - 31 0.0909 - 42 0.0909 - - 39 296 20 0 - 0 0.0811 - 2 0.0676 - 4 0.0372 - 7 0.409 - 8 0.00338 - 13 0.0236 - 18 0.00338 - 21 0.0304 - 24 0.0101 - 26 0.0608 - 28 0.0709 - 29 0.0405 - 30 0.0338 - 31 0.0338 - 32 0.0101 - 33 0.0203 - 41 0.0203 - 42 0.0236 - 44 0.00676 - 47 0.0135 - - 47 51 3 0 - 2 0.529 - 7 0.255 - 21 0.216 - - 22 108 17 2 - 0 0.0556 - 2 0.0648 - 4 0.037 - 7 0.333 - 8 0.0185 - 13 0.00926 - 14 0.00926 - 21 0.0278 - 24 0.0185 - 26 0.00926 - 28 0.0185 - 29 0.0926 - 30 0.13 - 31 0.0556 - 33 0.037 - 41 0.0463 - 47 0.037 - - 26 2 2 0 - 0 0.5 - 28 0.5 - - 47 6 3 0 - 2 0.667 - 13 0.167 - 14 0.167 - - 24 3 3 0 - 21 0.333 - 28 0.333 - 41 0.333 - - 25 3 2 0 - 7 0.667 - 30 0.333 - - 26 510 10 4 - 3 0.608 - 7 0.104 - 8 0.00784 - 13 0.212 - 14 0.0118 - 21 0.0412 - 22 0.00392 - 24 0.00196 - 28 0.00784 - 32 0.00196 - - 3 345 9 0 - 3 0.539 - 7 0.0957 - 13 0.304 - 14 0.0145 - 21 0.0261 - 22 0.0029 - 24 0.0029 - 28 0.0116 - 32 0.0029 - - 8 1 1 0 - 8 1 - - 39 157 7 0 - 3 0.783 - 7 0.115 - 8 0.0127 - 13 0.00637 - 14 0.00637 - 21 0.0701 - 22 0.00637 - - 47 1 1 0 - 8 1 - - 31 6 2 0 - 4 0.833 - 20 0.167 - - 38 128 14 0 - 2 0.0312 - 4 0.102 - 7 0.43 - 8 0.0312 - 13 0.0156 - 18 0.0391 - 21 0.0859 - 24 0.00781 - 26 0.195 - 28 0.0156 - 29 0.0156 - 31 0.00781 - 42 0.0156 - 47 0.00781 - - 39 5335 31 2 - 0 0.0274 - 2 0.0231 - 3 0.00075 - 4 0.108 - 7 0.384 - 8 0.0249 - 10 0.00394 - 13 0.00506 - 14 0.00281 - 15 0.00356 - 18 0.0135 - 19 0.000375 - 20 0.00862 - 21 0.0583 - 24 0.00375 - 26 0.153 - 28 0.0319 - 29 0.0437 - 30 0.0144 - 31 0.0172 - 32 0.00356 - 33 0.00619 - 34 0.000562 - 36 0.000187 - 37 0.000187 - 41 0.00656 - 42 0.0191 - 44 0.0313 - 45 0.000187 - 46 0.000187 - 47 0.0045 - - 3 165 16 0 - 0 0.0182 - 2 0.0242 - 4 0.103 - 7 0.582 - 8 0.0242 - 15 0.00606 - 18 0.0121 - 20 0.00606 - 21 0.0727 - 26 0.0121 - 28 0.0485 - 29 0.0182 - 31 0.0364 - 33 0.00606 - 42 0.0121 - 44 0.0182 - - 8 1 1 0 - 20 1 - - 41 2 2 0 - 8 0.5 - 38 0.5 - - 45 3 3 0 - 0 0.333 - 21 0.333 - 28 0.333 - - 46 2 2 0 - 9 0.5 - 10 0.5 - - 47 9444 38 17 - 0 0.0451 - 1 0.000106 - 2 0.026 - 3 0.00381 - 4 0.0736 - 7 0.334 - 8 0.019 - 9 0.000106 - 10 0.000106 - 13 0.0197 - 14 0.00805 - 15 0.00455 - 16 0.000212 - 18 0.0115 - 19 0.00116 - 20 0.00667 - 21 0.0109 - 22 0.000106 - 23 0.000106 - 24 0.0072 - 26 0.132 - 28 0.0547 - 29 0.0686 - 30 0.0222 - 31 0.0236 - 32 0.00784 - 33 0.0205 - 34 0.000635 - 36 0.000212 - 37 0.0018 - 39 0.00106 - 41 0.0205 - 42 0.0338 - 43 0.000212 - 44 0.0194 - 45 0.00148 - 46 0.000212 - 47 0.0195 - - 2 79 4 0 - 3 0.367 - 13 0.468 - 14 0.152 - 31 0.0127 - - 3 1998 31 0 - 0 0.0365 - 2 0.017 - 4 0.044 - 7 0.278 - 8 0.019 - 9 0.000501 - 13 0.0395 - 14 0.00901 - 15 0.00601 - 16 0.000501 - 18 0.015 - 19 0.001 - 20 0.00601 - 21 0.01 - 22 0.000501 - 24 0.0035 - 26 0.212 - 28 0.0285 - 29 0.107 - 30 0.0125 - 31 0.0135 - 32 0.00701 - 33 0.00801 - 34 0.0015 - 39 0.00501 - 41 0.022 - 42 0.0856 - 43 0.000501 - 44 0.0015 - 45 0.003 - 47 0.00601 - - 4 139 20 0 - 0 0.0216 - 2 0.0288 - 3 0.00719 - 7 0.273 - 13 0.036 - 14 0.00719 - 21 0.0144 - 24 0.0216 - 26 0.0432 - 28 0.122 - 29 0.122 - 30 0.0288 - 31 0.0432 - 32 0.00719 - 33 0.0504 - 41 0.0144 - 42 0.0144 - 44 0.00719 - 46 0.00719 - 47 0.129 - - 7 944 27 0 - 0 0.0657 - 1 0.00106 - 2 0.0371 - 4 0.00212 - 7 0.374 - 8 0.0053 - 13 0.00636 - 14 0.0138 - 15 0.00212 - 16 0.00106 - 19 0.00212 - 21 0.0169 - 24 0.0127 - 26 0.0604 - 28 0.11 - 29 0.0434 - 30 0.0392 - 31 0.0318 - 32 0.0117 - 33 0.0646 - 37 0.0117 - 41 0.0275 - 42 0.00847 - 44 0.0053 - 45 0.00318 - 46 0.00106 - 47 0.0413 - - 8 45 12 0 - 0 0.0667 - 2 0.0222 - 4 0.244 - 7 0.422 - 15 0.0222 - 26 0.0222 - 28 0.0222 - 29 0.0222 - 30 0.0444 - 31 0.0444 - 33 0.0444 - 41 0.0222 - - 9 422 23 0 - 0 0.0616 - 2 0.0403 - 4 0.0166 - 7 0.351 - 13 0.0166 - 14 0.00711 - 15 0.00474 - 19 0.00237 - 20 0.00237 - 21 0.0213 - 24 0.00474 - 26 0.0474 - 28 0.0829 - 29 0.0853 - 30 0.0427 - 31 0.0474 - 32 0.00711 - 33 0.0284 - 37 0.00474 - 41 0.0616 - 42 0.019 - 45 0.00237 - 47 0.0427 - - 13 8 7 0 - 4 0.125 - 7 0.25 - 20 0.125 - 21 0.125 - 24 0.125 - 33 0.125 - 42 0.125 - - 14 8 6 0 - 2 0.125 - 4 0.125 - 7 0.25 - 26 0.125 - 28 0.25 - 41 0.125 - - 17 3 3 0 - 14 0.333 - 28 0.333 - 31 0.333 - - 21 1259 30 0 - 0 0.0842 - 2 0.054 - 3 0.00159 - 4 0.0127 - 7 0.296 - 8 0.00397 - 13 0.0183 - 14 0.0103 - 15 0.00556 - 18 0.00159 - 19 0.00318 - 20 0.00159 - 21 0.0286 - 23 0.000794 - 24 0.0159 - 26 0.0397 - 28 0.0953 - 29 0.0747 - 30 0.0254 - 31 0.0334 - 32 0.0199 - 33 0.0461 - 36 0.000794 - 37 0.00238 - 41 0.0421 - 42 0.0191 - 43 0.000794 - 44 0.00556 - 45 0.00238 - 47 0.054 - - 22 100 16 0 - 0 0.06 - 2 0.03 - 4 0.01 - 7 0.36 - 8 0.02 - 13 0.01 - 21 0.03 - 24 0.02 - 26 0.01 - 28 0.02 - 29 0.1 - 30 0.14 - 31 0.06 - 33 0.04 - 41 0.05 - 47 0.04 - - 24 2 2 0 - 28 0.5 - 41 0.5 - - 26 5 2 0 - 28 0.8 - 32 0.2 - - 31 6 2 0 - 4 0.833 - 20 0.167 - - 38 105 13 0 - 2 0.019 - 4 0.124 - 7 0.429 - 8 0.0381 - 13 0.019 - 18 0.0476 - 24 0.00952 - 26 0.238 - 28 0.019 - 29 0.019 - 31 0.00952 - 42 0.019 - 47 0.00952 - - 39 4310 30 0 - 0 0.0339 - 2 0.0186 - 3 0.000928 - 4 0.128 - 7 0.366 - 8 0.029 - 10 0.000232 - 13 0.00603 - 14 0.00348 - 15 0.00441 - 18 0.0167 - 19 0.000464 - 20 0.0107 - 21 0.00348 - 24 0.00464 - 26 0.152 - 28 0.0394 - 29 0.0541 - 30 0.0179 - 31 0.0202 - 32 0.00441 - 33 0.00766 - 34 0.000696 - 36 0.000232 - 37 0.000232 - 41 0.00812 - 42 0.0237 - 44 0.0387 - 45 0.000232 - 47 0.00557 - - 45 3 3 0 - 0 0.333 - 21 0.333 - 28 0.333 - - 55 4 3 0 - 7 0.5 - 42 0.25 - 45 0.25 - - 58 1 1 0 - 14 1 - -61 127 13 5 - 2 0.0315 - 3 0.00787 - 4 0.0315 - 8 0.0157 - 13 0.189 - 14 0.0709 - 15 0.00787 - 21 0.15 - 24 0.00787 - 28 0.0157 - 41 0.441 - 42 0.0157 - 46 0.0157 - - 47 47 8 0 - 2 0.0426 - 4 0.0426 - 13 0.191 - 14 0.0851 - 28 0.0213 - 41 0.574 - 42 0.0213 - 46 0.0213 - - 49 32 6 0 - 2 0.0625 - 4 0.0625 - 13 0.0938 - 14 0.0625 - 24 0.0312 - 41 0.688 - - 55 24 7 0 - 8 0.0833 - 13 0.0833 - 14 0.0417 - 15 0.0417 - 21 0.667 - 41 0.0417 - 46 0.0417 - - 57 11 4 0 - 13 0.455 - 14 0.0909 - 28 0.0909 - 41 0.364 - - 64 1 1 0 - 3 1 - -62 295300 46 32 - 0 0.00594 - 1 0.000213 - 2 0.0265 - 3 0.00539 - 4 0.00642 - 5 0.0029 - 6 5.08e-05 - 7 0.092 - 8 0.0115 - 9 0.000735 - 10 0.000362 - 11 4.06e-05 - 12 0.000328 - 13 0.0983 - 14 0.0637 - 15 0.0501 - 16 0.00223 - 17 1.35e-05 - 18 0.000511 - 19 0.0512 - 20 4.74e-05 - 21 0.0258 - 22 0.00043 - 23 4.74e-05 - 24 0.000969 - 25 2.37e-05 - 26 0.00111 - 27 0.000102 - 28 0.0131 - 29 0.035 - 30 0.00893 - 31 0.0163 - 32 0.0106 - 33 0.0136 - 34 0.0284 - 35 0.0149 - 36 6.77e-06 - 37 0.0127 - 40 0.000139 - 41 0.079 - 42 0.0087 - 43 0.000972 - 44 0.00109 - 45 0.0288 - 46 0.00572 - 47 0.275 - - 0 8 5 0 - 2 0.125 - 13 0.375 - 14 0.25 - 15 0.125 - 37 0.125 - - 2 2293 7 5 - 9 0.000436 - 13 0.000436 - 41 0.00741 - 42 0.00174 - 45 0.044 - 46 0.000436 - 47 0.945 - - 55 1575 4 0 - 41 0.0019 - 45 0.047 - 46 0.000635 - 47 0.95 - - 57 241 3 0 - 42 0.0083 - 45 0.0124 - 47 0.979 - - 62 101 4 0 - 41 0.109 - 42 0.0099 - 45 0.0594 - 47 0.822 - - 66 1 1 0 - 41 1 - - 69 19 5 0 - 9 0.0526 - 13 0.0526 - 41 0.0526 - 45 0.105 - 47 0.737 - - 4 32 9 0 - 4 0.0312 - 8 0.0312 - 14 0.156 - 15 0.312 - 19 0.25 - 34 0.0625 - 35 0.0312 - 41 0.0938 - 42 0.0312 - - 7 39 2 0 - 45 0.0256 - 47 0.974 - - 12 4 3 0 - 14 0.25 - 19 0.5 - 37 0.25 - - 21 199 25 5 - 0 0.0101 - 2 0.0201 - 7 0.101 - 8 0.0201 - 12 0.0201 - 13 0.0704 - 14 0.0452 - 15 0.0201 - 19 0.0452 - 21 0.0151 - 23 0.00503 - 24 0.00503 - 25 0.00503 - 28 0.00503 - 29 0.106 - 31 0.0302 - 32 0.00503 - 33 0.00503 - 35 0.00503 - 37 0.00503 - 41 0.0704 - 42 0.0151 - 45 0.0251 - 46 0.0101 - 47 0.337 - - 41 7 2 0 - 45 0.143 - 47 0.857 - - 55 44 5 0 - 2 0.0682 - 37 0.0227 - 41 0.114 - 45 0.0455 - 47 0.75 - - 57 7 1 0 - 47 1 - - 64 5 1 0 - 47 1 - - 69 122 24 0 - 0 0.0164 - 2 0.0082 - 7 0.148 - 8 0.0328 - 12 0.0328 - 13 0.107 - 14 0.0738 - 15 0.0328 - 19 0.0738 - 21 0.0164 - 23 0.0082 - 24 0.0082 - 25 0.0082 - 28 0.0082 - 29 0.172 - 31 0.0492 - 32 0.0082 - 33 0.0082 - 35 0.0082 - 41 0.0656 - 42 0.0246 - 45 0.0164 - 46 0.0164 - 47 0.0574 - - 26 5 3 0 - 8 0.6 - 13 0.2 - 19 0.2 - - 40 10 6 0 - 8 0.1 - 13 0.4 - 14 0.2 - 19 0.1 - 21 0.1 - 27 0.1 - - 41 12917 37 14 - 0 0.00356 - 2 0.00434 - 3 0.0433 - 4 0.0079 - 5 0.000155 - 6 7.74e-05 - 7 0.00596 - 8 0.0321 - 9 0.00341 - 10 0.00147 - 11 0.000387 - 12 0.000774 - 13 0.376 - 14 0.157 - 15 0.124 - 16 0.00426 - 18 0.000387 - 19 0.0109 - 20 7.74e-05 - 21 0.16 - 22 0.00395 - 23 0.000232 - 24 0.00348 - 26 0.000155 - 27 0.00194 - 28 0.00898 - 29 0.00681 - 30 0.00457 - 31 0.0181 - 32 0.00341 - 33 0.00735 - 34 0.000542 - 35 0.000232 - 37 0.000387 - 42 0.000155 - 43 0.00333 - 46 0.000232 - - 2 15 7 0 - 8 0.133 - 13 0.267 - 14 0.133 - 15 0.267 - 18 0.0667 - 19 0.0667 - 27 0.0667 - - 21 6 3 0 - 13 0.667 - 19 0.167 - 28 0.167 - - 45 125 16 0 - 0 0.008 - 2 0.016 - 3 0.016 - 4 0.008 - 8 0.024 - 13 0.256 - 14 0.216 - 15 0.12 - 16 0.008 - 19 0.04 - 21 0.112 - 28 0.008 - 29 0.024 - 30 0.016 - 31 0.032 - 33 0.096 - - 46 950 26 0 - 0 0.0158 - 2 0.00105 - 3 0.0158 - 4 0.0179 - 7 0.00947 - 8 0.0884 - 9 0.00737 - 10 0.00105 - 12 0.00632 - 13 0.379 - 14 0.154 - 15 0.0674 - 16 0.00526 - 19 0.0442 - 21 0.0695 - 22 0.00105 - 24 0.0126 - 26 0.00105 - 28 0.0316 - 29 0.0147 - 30 0.00947 - 31 0.0337 - 32 0.00421 - 33 0.00632 - 42 0.00211 - 43 0.00105 - - 48 3 3 0 - 0 0.333 - 13 0.333 - 14 0.333 - - 49 375 22 0 - 2 0.016 - 3 0.032 - 4 0.008 - 7 0.0107 - 8 0.008 - 9 0.00267 - 10 0.00267 - 13 0.339 - 14 0.216 - 15 0.171 - 16 0.00533 - 18 0.00533 - 19 0.0347 - 21 0.112 - 24 0.008 - 27 0.00267 - 30 0.00267 - 31 0.00533 - 32 0.00533 - 33 0.00533 - 34 0.00267 - 43 0.00533 - - 55 9312 33 0 - 0 0.00268 - 2 0.00129 - 3 0.0493 - 4 0.00709 - 5 0.000215 - 7 0.00473 - 8 0.0306 - 9 0.00365 - 10 0.00183 - 11 0.000537 - 12 0.00043 - 13 0.39 - 14 0.156 - 15 0.113 - 16 0.00397 - 18 0.000107 - 19 0.00655 - 20 0.000107 - 21 0.165 - 22 0.00515 - 23 0.000322 - 24 0.00279 - 26 0.000107 - 27 0.00215 - 28 0.00805 - 29 0.00677 - 30 0.00451 - 31 0.0183 - 32 0.00333 - 33 0.00698 - 37 0.00043 - 43 0.00365 - 46 0.000322 - - 57 600 21 0 - 2 0.0383 - 3 0.035 - 4 0.01 - 7 0.0183 - 8 0.00167 - 13 0.258 - 14 0.132 - 15 0.275 - 16 0.00667 - 19 0.0117 - 21 0.182 - 22 0.00167 - 27 0.00167 - 29 0.00167 - 30 0.00167 - 31 0.00333 - 32 0.00333 - 34 0.00833 - 35 0.005 - 37 0.00167 - 43 0.00333 - - 58 38 9 0 - 2 0.0263 - 8 0.0263 - 9 0.0263 - 13 0.474 - 14 0.132 - 15 0.105 - 21 0.158 - 32 0.0263 - 33 0.0263 - - 62 430 21 0 - 0 0.00465 - 2 0.00233 - 3 0.0256 - 4 0.00233 - 7 0.0093 - 8 0.0209 - 9 0.00233 - 13 0.302 - 14 0.184 - 15 0.258 - 16 0.00233 - 19 0.0093 - 21 0.135 - 24 0.00698 - 28 0.00698 - 29 0.00698 - 30 0.00233 - 31 0.00465 - 32 0.00233 - 33 0.00698 - 43 0.00465 - - 64 201 16 0 - 0 0.00498 - 2 0.0448 - 3 0.0846 - 4 0.00498 - 7 0.0199 - 8 0.0149 - 13 0.269 - 14 0.114 - 15 0.124 - 16 0.0149 - 21 0.269 - 22 0.00498 - 28 0.00995 - 31 0.00995 - 33 0.00498 - 34 0.00498 - - 66 1 1 0 - 2 1 - - 69 839 21 0 - 0 0.00119 - 3 0.0262 - 4 0.00834 - 7 0.00119 - 8 0.0274 - 13 0.398 - 14 0.16 - 15 0.113 - 16 0.00238 - 18 0.00119 - 19 0.00715 - 21 0.205 - 24 0.00119 - 27 0.00238 - 28 0.00477 - 29 0.00358 - 30 0.00358 - 31 0.0238 - 32 0.00238 - 33 0.00477 - 43 0.00238 - - 74 11 7 0 - 6 0.0909 - 13 0.364 - 14 0.182 - 19 0.0909 - 29 0.0909 - 32 0.0909 - 33 0.0909 - - 42 133 20 7 - 3 0.00752 - 4 0.015 - 8 0.0602 - 11 0.0226 - 13 0.233 - 14 0.143 - 15 0.0677 - 19 0.0226 - 21 0.0226 - 24 0.00752 - 25 0.0301 - 28 0.00752 - 29 0.015 - 40 0.00752 - 41 0.015 - 42 0.00752 - 43 0.00752 - 45 0.00752 - 46 0.015 - 47 0.286 - - 45 19 6 0 - 13 0.0526 - 15 0.158 - 19 0.158 - 24 0.0526 - 29 0.0526 - 47 0.526 - - 49 4 4 0 - 8 0.25 - 14 0.25 - 15 0.25 - 28 0.25 - - 55 51 14 0 - 8 0.0392 - 11 0.0392 - 13 0.255 - 14 0.118 - 15 0.0588 - 21 0.0196 - 25 0.0196 - 29 0.0196 - 40 0.0196 - 41 0.0196 - 42 0.0196 - 43 0.0196 - 46 0.0392 - 47 0.314 - - 57 6 3 0 - 4 0.167 - 13 0.167 - 47 0.667 - - 62 17 6 0 - 13 0.353 - 14 0.176 - 15 0.0588 - 21 0.118 - 45 0.0588 - 47 0.235 - - 66 6 3 0 - 4 0.167 - 8 0.667 - 13 0.167 - - 69 22 8 0 - 3 0.0455 - 8 0.0455 - 11 0.0455 - 13 0.227 - 14 0.409 - 15 0.0455 - 25 0.136 - 41 0.0455 - - 43 32 6 0 - 11 0.0938 - 13 0.344 - 14 0.125 - 15 0.281 - 18 0.0312 - 19 0.125 - - 44 156 17 1 - 0 0.00641 - 2 0.0128 - 4 0.00641 - 7 0.0385 - 8 0.00641 - 13 0.0128 - 14 0.0128 - 21 0.0192 - 28 0.0256 - 29 0.00641 - 32 0.00641 - 33 0.00641 - 35 0.00641 - 41 0.0192 - 45 0.0128 - 46 0.00641 - 47 0.795 - - 57 22 1 0 - 47 1 - - 45 2718 26 8 - 0 0.0011 - 2 0.00478 - 3 0.00258 - 4 0.0011 - 7 0.0118 - 8 0.000736 - 13 0.0545 - 14 0.0309 - 15 0.0213 - 16 0.000736 - 18 0.000736 - 19 0.0169 - 21 0.00331 - 28 0.00184 - 29 0.00258 - 31 0.0118 - 32 0.000736 - 33 0.00736 - 37 0.000368 - 40 0.000368 - 41 0.0982 - 42 0.0232 - 44 0.00221 - 45 0.000736 - 46 0.000736 - 47 0.699 - - 2 87 1 0 - 47 1 - - 48 56 9 0 - 2 0.0179 - 4 0.0179 - 13 0.5 - 14 0.25 - 15 0.0179 - 19 0.125 - 31 0.0357 - 33 0.0179 - 42 0.0179 - - 49 64 7 0 - 13 0.0625 - 14 0.0312 - 15 0.0312 - 19 0.0156 - 41 0.0781 - 42 0.0625 - 47 0.719 - - 55 1037 20 0 - 0 0.00193 - 2 0.00964 - 7 0.0251 - 13 0.0135 - 14 0.000964 - 15 0.00193 - 19 0.0116 - 21 0.00482 - 28 0.00386 - 29 0.00482 - 31 0.026 - 32 0.00193 - 33 0.0145 - 37 0.000964 - 40 0.000964 - 41 0.165 - 42 0.0328 - 44 0.00482 - 46 0.00193 - 47 0.673 - - 57 75 6 0 - 2 0.0133 - 7 0.04 - 31 0.0133 - 41 0.0533 - 42 0.0133 - 47 0.867 - - 62 945 9 0 - 7 0.00317 - 29 0.00106 - 31 0.00106 - 33 0.00106 - 41 0.0254 - 42 0.0159 - 44 0.00106 - 45 0.00212 - 47 0.949 - - 64 96 4 0 - 2 0.0104 - 41 0.104 - 42 0.0417 - 47 0.844 - - 69 334 18 0 - 0 0.00299 - 3 0.021 - 4 0.00599 - 8 0.00599 - 13 0.305 - 14 0.198 - 15 0.159 - 16 0.00599 - 18 0.00599 - 19 0.0778 - 21 0.012 - 28 0.00299 - 29 0.00299 - 31 0.00299 - 33 0.00898 - 41 0.15 - 42 0.00599 - 47 0.0269 - - 46 1060 13 6 - 3 0.000943 - 8 0.00283 - 13 0.0236 - 14 0.0123 - 15 0.0236 - 16 0.00189 - 19 0.000943 - 21 0.000943 - 30 0.000943 - 40 0.0151 - 41 0.899 - 46 0.00472 - 47 0.0132 - - 49 3 3 0 - 13 0.333 - 15 0.333 - 47 0.333 - - 55 921 6 0 - 13 0.00217 - 14 0.00217 - 40 0.0163 - 41 0.967 - 46 0.00434 - 47 0.0076 - - 57 3 2 0 - 41 0.333 - 47 0.667 - - 62 10 2 0 - 41 0.7 - 47 0.3 - - 64 3 2 0 - 8 0.667 - 41 0.333 - - 69 99 12 0 - 3 0.0101 - 8 0.0101 - 13 0.222 - 14 0.111 - 15 0.242 - 16 0.0202 - 19 0.0101 - 21 0.0101 - 30 0.0101 - 40 0.0101 - 41 0.333 - 46 0.0101 - - 47 95402 42 25 - 0 0.00867 - 1 0.000325 - 2 0.0289 - 3 0.0027 - 4 0.00311 - 6 1.05e-05 - 7 0.141 - 8 0.0136 - 9 0.00066 - 10 0.000136 - 12 0.000419 - 13 0.0355 - 14 0.0168 - 15 0.00423 - 16 0.000199 - 17 2.1e-05 - 18 3.14e-05 - 19 0.00112 - 21 0.00595 - 22 0.00022 - 23 2.1e-05 - 24 0.00122 - 25 1.05e-05 - 26 0.00167 - 28 0.0194 - 29 0.0534 - 30 0.0131 - 31 0.0233 - 32 0.016 - 33 0.0203 - 34 0.0436 - 35 0.023 - 36 1.05e-05 - 37 0.0196 - 40 2.1e-05 - 41 0.0307 - 42 0.0112 - 43 0.000199 - 44 0.00087 - 45 0.0302 - 46 0.00213 - 47 0.426 - - 2 2188 5 0 - 41 0.000457 - 42 0.00183 - 45 0.0064 - 46 0.000457 - 47 0.991 - - 4 5 4 0 - 8 0.2 - 34 0.4 - 35 0.2 - 41 0.2 - - 7 38 1 0 - 47 1 - - 21 173 25 0 - 0 0.0116 - 2 0.00578 - 7 0.116 - 8 0.0231 - 12 0.0173 - 13 0.0636 - 14 0.0405 - 15 0.0173 - 19 0.0289 - 21 0.00578 - 23 0.00578 - 24 0.00578 - 25 0.00578 - 28 0.00578 - 29 0.121 - 31 0.0347 - 32 0.00578 - 33 0.00578 - 35 0.00578 - 37 0.00578 - 41 0.0462 - 42 0.0173 - 45 0.00578 - 46 0.0116 - 47 0.387 - - 26 5 3 0 - 8 0.6 - 13 0.2 - 19 0.2 - - 41 29 9 0 - 2 0.069 - 4 0.0345 - 7 0.379 - 15 0.0345 - 21 0.0345 - 31 0.069 - 34 0.241 - 35 0.103 - 37 0.0345 - - 42 40 3 0 - 4 0.025 - 45 0.025 - 47 0.95 - - 44 146 14 0 - 0 0.00685 - 2 0.0137 - 4 0.00685 - 7 0.0411 - 8 0.00685 - 14 0.00685 - 21 0.00685 - 28 0.0274 - 29 0.00685 - 32 0.00685 - 33 0.00685 - 35 0.00685 - 45 0.00685 - 47 0.849 - - 45 2081 17 0 - 0 0.00144 - 2 0.000481 - 7 0.0154 - 13 0.000961 - 14 0.000481 - 21 0.000481 - 28 0.0024 - 29 0.00288 - 31 0.0149 - 32 0.000961 - 33 0.00865 - 37 0.000481 - 41 0.0139 - 42 0.0207 - 44 0.00192 - 45 0.000481 - 47 0.914 - - 46 14 1 0 - 47 1 - - 48 401 21 0 - 0 0.00249 - 2 0.0125 - 7 0.0499 - 13 0.0125 - 14 0.00249 - 15 0.00748 - 16 0.00249 - 21 0.00748 - 24 0.00499 - 28 0.0698 - 29 0.122 - 30 0.0374 - 31 0.387 - 32 0.0249 - 33 0.0249 - 34 0.00249 - 37 0.00249 - 41 0.0823 - 42 0.00249 - 45 0.00998 - 47 0.132 - - 49 2499 23 0 - 0 0.0016 - 2 0.0272 - 7 0.0344 - 8 0.0004 - 12 0.0004 - 13 0.0068 - 14 0.0024 - 15 0.0016 - 21 0.006 - 24 0.0008 - 28 0.0012 - 29 0.0012 - 30 0.0012 - 31 0.0016 - 32 0.002 - 33 0.0016 - 34 0.0656 - 35 0.0324 - 37 0.0012 - 41 0.0312 - 42 0.0156 - 45 0.0228 - 47 0.741 - - 50 6 1 0 - 47 1 - - 51 15 6 0 - 2 0.0667 - 7 0.0667 - 32 0.0667 - 33 0.0667 - 45 0.2 - 47 0.533 - - 52 43 8 0 - 2 0.0233 - 28 0.0233 - 41 0.0233 - 42 0.0233 - 44 0.0233 - 45 0.209 - 46 0.0233 - 47 0.651 - - 53 30 4 0 - 2 0.0333 - 7 0.0333 - 42 0.1 - 47 0.833 - - 55 52582 38 0 - 0 0.00203 - 1 0.000342 - 2 0.0449 - 3 0.00038 - 4 0.00443 - 7 0.183 - 8 0.00304 - 9 0.000133 - 10 0.000133 - 12 1.9e-05 - 13 0.0151 - 14 0.00688 - 15 0.000856 - 16 3.8e-05 - 17 3.8e-05 - 18 1.9e-05 - 19 0.000513 - 21 0.00382 - 22 0.000114 - 24 0.000114 - 26 0.000228 - 28 0.0187 - 29 0.071 - 30 0.00837 - 31 0.0106 - 32 0.018 - 33 0.0195 - 34 0.0097 - 35 0.00778 - 36 1.9e-05 - 37 0.0328 - 41 0.0205 - 42 0.0131 - 43 0.000114 - 44 0.00103 - 45 0.0401 - 46 0.00202 - 47 0.461 - - 57 4707 21 0 - 2 0.0191 - 4 0.00085 - 7 0.0416 - 8 0.000212 - 13 0.000637 - 14 0.000212 - 21 0.00085 - 28 0.000637 - 29 0.000212 - 31 0.00106 - 32 0.000212 - 33 0.000425 - 34 0.00722 - 35 0.00297 - 37 0.00149 - 40 0.000212 - 41 0.0161 - 42 0.0117 - 44 0.00085 - 45 0.021 - 47 0.872 - - 58 17 7 0 - 4 0.0588 - 7 0.294 - 34 0.235 - 35 0.118 - 37 0.118 - 42 0.0588 - 47 0.118 - - 62 4872 24 0 - 0 0.00144 - 2 0.00944 - 4 0.00123 - 7 0.0515 - 8 0.000205 - 13 0.00205 - 14 0.000411 - 15 0.000205 - 19 0.000205 - 21 0.00164 - 28 0.00164 - 29 0.0133 - 30 0.00144 - 31 0.00103 - 32 0.00226 - 33 0.00431 - 34 0.00554 - 35 0.00144 - 37 0.00513 - 41 0.00513 - 42 0.016 - 44 0.000821 - 45 0.0525 - 47 0.821 - - 64 1775 16 0 - 0 0.00113 - 2 0.0293 - 4 0.00169 - 7 0.0958 - 21 0.00225 - 29 0.00451 - 30 0.000563 - 32 0.00282 - 33 0.00169 - 34 0.000563 - 35 0.000563 - 37 0.00113 - 41 0.0169 - 42 0.0135 - 45 0.093 - 47 0.735 - - 66 16 3 0 - 2 0.0625 - 42 0.0625 - 47 0.875 - - 68 15 7 0 - 7 0.0667 - 13 0.0667 - 28 0.0667 - 31 0.0667 - 42 0.0667 - 45 0.0667 - 47 0.6 - - 69 23688 39 0 - 0 0.0296 - 1 0.000549 - 2 0.0054 - 3 0.01 - 4 0.00198 - 6 4.22e-05 - 7 0.13 - 8 0.0475 - 9 0.00236 - 10 0.000253 - 12 0.00148 - 13 0.107 - 14 0.0514 - 15 0.0146 - 16 0.000675 - 18 8.44e-05 - 19 0.00308 - 21 0.0139 - 22 0.000633 - 23 4.22e-05 - 24 0.00443 - 26 0.00621 - 28 0.0343 - 29 0.0511 - 30 0.0331 - 31 0.0616 - 32 0.0226 - 33 0.0358 - 34 0.144 - 35 0.0708 - 37 0.00414 - 40 4.22e-05 - 41 0.0661 - 42 0.00515 - 43 0.000549 - 44 0.000675 - 45 0.0068 - 46 0.00393 - 47 0.0277 - - 74 7 5 0 - 2 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - - 48 954 28 7 - 0 0.00105 - 2 0.00629 - 3 0.00314 - 4 0.00524 - 7 0.021 - 8 0.00314 - 13 0.155 - 14 0.142 - 15 0.0304 - 16 0.00314 - 18 0.00105 - 19 0.169 - 21 0.0136 - 22 0.00105 - 24 0.0021 - 28 0.0294 - 29 0.0514 - 30 0.0157 - 31 0.162 - 32 0.0105 - 33 0.0115 - 34 0.00105 - 37 0.00105 - 41 0.0388 - 42 0.0021 - 45 0.0629 - 46 0.00105 - 47 0.0556 - - 41 16 6 0 - 2 0.125 - 21 0.0625 - 41 0.0625 - 42 0.0625 - 45 0.125 - 47 0.562 - - 47 806 26 0 - 0 0.00124 - 2 0.00372 - 3 0.00372 - 4 0.0062 - 7 0.0223 - 8 0.00372 - 13 0.176 - 14 0.164 - 15 0.036 - 16 0.00372 - 19 0.102 - 21 0.0149 - 22 0.00124 - 24 0.00248 - 28 0.0211 - 29 0.0521 - 30 0.0136 - 31 0.185 - 32 0.0124 - 33 0.00993 - 37 0.00124 - 41 0.0397 - 42 0.00124 - 45 0.0682 - 46 0.00124 - 47 0.0533 - - 49 5 4 0 - 2 0.2 - 13 0.4 - 14 0.2 - 18 0.2 - - 55 19 8 0 - 13 0.0526 - 28 0.211 - 29 0.263 - 30 0.105 - 31 0.158 - 33 0.0526 - 41 0.105 - 47 0.0526 - - 62 36 5 0 - 7 0.0278 - 13 0.0278 - 14 0.0278 - 19 0.889 - 45 0.0278 - - 64 63 9 0 - 13 0.0317 - 14 0.0159 - 19 0.683 - 28 0.111 - 29 0.0317 - 30 0.0317 - 31 0.0476 - 33 0.0317 - 41 0.0159 - - 69 2 2 0 - 34 0.5 - 41 0.5 - - 49 6007 36 13 - 0 0.00117 - 2 0.0255 - 3 0.00117 - 4 0.00383 - 5 0.00333 - 7 0.0146 - 8 0.00133 - 9 0.000333 - 10 0.000166 - 12 0.000166 - 13 0.122 - 14 0.107 - 15 0.101 - 16 0.00449 - 18 0.00117 - 19 0.108 - 21 0.0103 - 23 0.000166 - 24 0.000333 - 28 0.000499 - 29 0.000666 - 30 0.000832 - 31 0.000832 - 32 0.000999 - 33 0.000999 - 34 0.0276 - 35 0.0135 - 37 0.000499 - 40 0.000333 - 41 0.106 - 42 0.00916 - 43 0.000832 - 44 0.000666 - 45 0.0201 - 46 0.0025 - 47 0.308 - - 41 1889 16 0 - 2 0.0238 - 4 0.000529 - 7 0.00106 - 13 0.00318 - 14 0.00159 - 15 0.00106 - 19 0.000529 - 21 0.00424 - 32 0.000529 - 40 0.00106 - 41 0.157 - 42 0.00794 - 44 0.00159 - 45 0.0312 - 46 0.000529 - 47 0.764 - - 44 2 2 0 - 2 0.5 - 45 0.5 - - 45 7 4 0 - 7 0.143 - 14 0.286 - 15 0.286 - 47 0.286 - - 47 59 15 0 - 4 0.0169 - 8 0.0339 - 13 0.237 - 14 0.22 - 15 0.102 - 19 0.0169 - 21 0.0339 - 28 0.0169 - 29 0.0339 - 30 0.0339 - 31 0.0339 - 32 0.0169 - 33 0.0169 - 41 0.119 - 47 0.0678 - - 48 9 4 0 - 14 0.111 - 21 0.111 - 41 0.222 - 47 0.556 - - 49 30 9 0 - 2 0.0333 - 7 0.0333 - 13 0.0667 - 14 0.133 - 15 0.2 - 19 0.233 - 41 0.1 - 42 0.0333 - 47 0.167 - - 55 493 13 0 - 2 0.178 - 7 0.0365 - 9 0.00203 - 13 0.00203 - 14 0.00609 - 21 0.0183 - 32 0.00203 - 34 0.00203 - 37 0.00406 - 41 0.0953 - 42 0.0325 - 45 0.069 - 47 0.552 - - 57 31 7 0 - 2 0.161 - 14 0.0323 - 41 0.0645 - 42 0.0323 - 44 0.0323 - 45 0.0645 - 47 0.613 - - 58 78 5 0 - 2 0.0641 - 41 0.0128 - 42 0.0256 - 45 0.0641 - 47 0.833 - - 62 11 4 0 - 2 0.182 - 42 0.0909 - 45 0.182 - 47 0.545 - - 64 6 3 0 - 2 0.167 - 45 0.5 - 47 0.333 - - 66 3 2 0 - 21 0.667 - 47 0.333 - - 69 3383 34 0 - 0 0.00207 - 2 0.00118 - 3 0.00207 - 4 0.00621 - 5 0.00591 - 7 0.0195 - 8 0.00177 - 9 0.000296 - 10 0.000296 - 12 0.000296 - 13 0.21 - 14 0.181 - 15 0.175 - 16 0.00798 - 18 0.00207 - 19 0.189 - 21 0.0118 - 23 0.000296 - 24 0.000591 - 28 0.000591 - 29 0.000591 - 30 0.000887 - 31 0.000887 - 32 0.000887 - 33 0.00148 - 34 0.0488 - 35 0.0239 - 37 0.000296 - 41 0.0822 - 42 0.00562 - 43 0.00148 - 45 0.00414 - 46 0.00414 - 47 0.00739 - - 50 8 3 0 - 14 0.125 - 19 0.125 - 47 0.75 - - 51 20 7 0 - 2 0.05 - 7 0.05 - 32 0.05 - 33 0.05 - 41 0.05 - 45 0.35 - 47 0.4 - - 52 51 9 1 - 2 0.0196 - 27 0.0196 - 28 0.0196 - 41 0.098 - 42 0.0196 - 44 0.0196 - 45 0.235 - 46 0.0196 - 47 0.549 - - 55 4 3 0 - 28 0.25 - 45 0.5 - 46 0.25 - - 53 30 4 0 - 2 0.0333 - 7 0.0333 - 42 0.1 - 47 0.833 - - 55 67719 43 18 - 0 0.00162 - 1 0.000266 - 2 0.0581 - 3 0.000753 - 4 0.0036 - 5 1.48e-05 - 7 0.143 - 8 0.00282 - 9 0.000266 - 10 0.00034 - 12 2.95e-05 - 13 0.019 - 14 0.00755 - 15 0.00347 - 16 8.86e-05 - 17 2.95e-05 - 18 4.43e-05 - 19 0.00157 - 21 0.0104 - 22 0.000192 - 23 1.48e-05 - 24 8.86e-05 - 25 1.48e-05 - 26 0.000177 - 27 1.48e-05 - 28 0.0146 - 29 0.0552 - 30 0.00653 - 31 0.00828 - 32 0.0141 - 33 0.0153 - 34 0.00755 - 35 0.00604 - 36 1.48e-05 - 37 0.0255 - 40 4.43e-05 - 41 0.159 - 42 0.0118 - 43 0.000295 - 44 0.00233 - 45 0.0466 - 46 0.0162 - 47 0.358 - - 4 27 11 0 - 7 0.037 - 8 0.037 - 13 0.037 - 14 0.037 - 28 0.037 - 29 0.0741 - 32 0.037 - 41 0.0741 - 45 0.037 - 46 0.037 - 47 0.556 - - 12 3 3 0 - 2 0.333 - 33 0.333 - 42 0.333 - - 21 9 5 0 - 7 0.111 - 13 0.111 - 28 0.333 - 29 0.222 - 31 0.222 - - 41 1402 27 0 - 0 0.000713 - 2 0.0464 - 4 0.000713 - 7 0.0464 - 8 0.000713 - 10 0.000713 - 13 0.0728 - 14 0.00499 - 15 0.0278 - 19 0.000713 - 21 0.0107 - 27 0.000713 - 28 0.000713 - 29 0.0157 - 30 0.000713 - 31 0.00143 - 32 0.00713 - 33 0.00214 - 34 0.00214 - 37 0.00285 - 41 0.0449 - 42 0.0157 - 43 0.000713 - 44 0.00357 - 45 0.0271 - 46 0.00143 - 47 0.66 - - 42 27 7 0 - 2 0.111 - 7 0.148 - 21 0.037 - 29 0.0741 - 41 0.111 - 45 0.185 - 47 0.333 - - 43 29 2 0 - 7 0.069 - 44 0.931 - - 45 366 17 0 - 2 0.0273 - 7 0.167 - 13 0.0109 - 14 0.00273 - 21 0.00273 - 22 0.00273 - 28 0.0328 - 29 0.29 - 30 0.0355 - 31 0.0082 - 32 0.0109 - 33 0.082 - 34 0.00273 - 37 0.00273 - 41 0.0765 - 42 0.00273 - 47 0.243 - - 46 63 7 0 - 2 0.0159 - 7 0.0159 - 28 0.0317 - 29 0.0159 - 34 0.0159 - 41 0.0159 - 45 0.889 - - 47 833 26 0 - 0 0.0072 - 2 0.0336 - 3 0.0012 - 4 0.0096 - 7 0.0204 - 8 0.0192 - 9 0.0012 - 13 0.0636 - 14 0.0156 - 15 0.048 - 16 0.0012 - 18 0.0024 - 19 0.0876 - 21 0.0168 - 28 0.0396 - 29 0.0564 - 30 0.0072 - 31 0.376 - 32 0.0072 - 33 0.0264 - 34 0.0048 - 41 0.0264 - 42 0.0108 - 43 0.0024 - 45 0.0888 - 47 0.0264 - - 48 482 15 0 - 0 0.00622 - 2 0.027 - 7 0.0373 - 14 0.00207 - 28 0.344 - 29 0.0996 - 30 0.168 - 31 0.0705 - 32 0.0975 - 33 0.104 - 41 0.0228 - 42 0.00415 - 44 0.00415 - 45 0.00207 - 47 0.0104 - - 49 2900 25 0 - 0 0.00069 - 2 0.0714 - 3 0.000345 - 4 0.00103 - 7 0.108 - 8 0.00069 - 13 0.0121 - 14 0.00448 - 15 0.000345 - 21 0.0031 - 28 0.00586 - 29 0.0366 - 30 0.00138 - 31 0.00276 - 32 0.00931 - 33 0.00931 - 34 0.00586 - 35 0.00655 - 37 0.0169 - 41 0.128 - 42 0.0134 - 44 0.0031 - 45 0.0345 - 46 0.0031 - 47 0.521 - - 55 480 19 0 - 2 0.0854 - 4 0.00417 - 7 0.0437 - 13 0.0104 - 15 0.00208 - 21 0.00833 - 28 0.0896 - 29 0.0854 - 30 0.0479 - 31 0.0146 - 32 0.05 - 33 0.0646 - 35 0.00208 - 37 0.0125 - 41 0.102 - 42 0.0333 - 45 0.0167 - 46 0.00208 - 47 0.325 - - 57 150 18 0 - 0 0.0133 - 1 0.00667 - 2 0.0467 - 4 0.00667 - 7 0.06 - 13 0.0467 - 14 0.02 - 29 0.0333 - 30 0.0133 - 32 0.0267 - 33 0.00667 - 34 0.00667 - 37 0.02 - 41 0.187 - 42 0.0133 - 44 0.02 - 45 0.0267 - 47 0.447 - - 58 218 11 0 - 2 0.0505 - 7 0.0275 - 14 0.00459 - 21 0.00459 - 28 0.00459 - 34 0.00459 - 35 0.00459 - 41 0.0367 - 42 0.0183 - 45 0.0826 - 47 0.761 - - 62 10 5 0 - 2 0.1 - 14 0.1 - 19 0.2 - 37 0.1 - 47 0.5 - - 64 14 5 0 - 2 0.143 - 19 0.0714 - 32 0.0714 - 45 0.0714 - 47 0.643 - - 68 3 3 0 - 30 0.333 - 31 0.333 - 32 0.333 - - 69 60692 42 0 - 0 0.00158 - 1 0.00028 - 2 0.0584 - 3 0.000807 - 4 0.00377 - 5 1.65e-05 - 7 0.151 - 8 0.00282 - 9 0.00028 - 10 0.000362 - 12 3.3e-05 - 13 0.0177 - 14 0.00774 - 15 0.00254 - 16 8.24e-05 - 17 3.3e-05 - 18 1.65e-05 - 19 0.000478 - 21 0.0109 - 22 0.000198 - 23 1.65e-05 - 24 9.89e-05 - 25 1.65e-05 - 26 0.000198 - 28 0.0117 - 29 0.0552 - 30 0.00512 - 31 0.00315 - 32 0.0136 - 33 0.0144 - 34 0.00796 - 35 0.00639 - 36 1.65e-05 - 37 0.0274 - 40 4.94e-05 - 41 0.167 - 42 0.0115 - 43 0.00028 - 44 0.00185 - 45 0.047 - 46 0.0179 - 47 0.35 - - 57 5900 27 12 - 2 0.0561 - 3 0.000339 - 4 0.00102 - 7 0.0334 - 8 0.000508 - 9 0.000169 - 13 0.0149 - 14 0.00797 - 15 0.00831 - 16 0.000169 - 19 0.000339 - 21 0.00746 - 28 0.000508 - 29 0.000169 - 31 0.000847 - 32 0.000169 - 33 0.000339 - 34 0.00576 - 35 0.00237 - 37 0.00119 - 40 0.000678 - 41 0.117 - 42 0.0103 - 44 0.00441 - 45 0.0295 - 46 0.000508 - 47 0.696 - - 41 4850 19 0 - 2 0.0485 - 3 0.000206 - 4 0.000412 - 7 0.0221 - 13 0.00536 - 14 0.00103 - 15 0.00227 - 21 0.00515 - 28 0.000206 - 29 0.000206 - 34 0.000206 - 37 0.000412 - 40 0.000619 - 41 0.132 - 42 0.00928 - 44 0.00536 - 45 0.0262 - 46 0.000412 - 47 0.74 - - 42 18 3 0 - 42 0.111 - 45 0.0556 - 47 0.833 - - 44 2 1 0 - 45 1 - - 46 2 1 0 - 45 1 - - 47 28 11 0 - 7 0.107 - 8 0.0357 - 13 0.107 - 14 0.0357 - 31 0.179 - 32 0.0357 - 37 0.0357 - 41 0.0714 - 42 0.0357 - 45 0.0714 - 47 0.286 - - 49 12 5 0 - 2 0.167 - 13 0.167 - 35 0.0833 - 41 0.0833 - 47 0.5 - - 55 612 13 0 - 2 0.126 - 4 0.00327 - 7 0.127 - 13 0.031 - 21 0.0261 - 28 0.00327 - 33 0.00163 - 37 0.00654 - 40 0.00163 - 41 0.0392 - 42 0.018 - 45 0.049 - 47 0.567 - - 57 50 8 0 - 2 0.02 - 7 0.02 - 14 0.02 - 15 0.02 - 41 0.08 - 42 0.02 - 45 0.02 - 47 0.8 - - 58 106 7 0 - 2 0.0755 - 13 0.00943 - 41 0.00943 - 42 0.00943 - 45 0.066 - 46 0.00943 - 47 0.821 - - 62 14 4 0 - 2 0.286 - 9 0.0714 - 21 0.0714 - 47 0.571 - - 64 6 4 0 - 8 0.167 - 19 0.167 - 45 0.167 - 47 0.5 - - 69 196 17 0 - 2 0.0153 - 3 0.0051 - 4 0.0102 - 7 0.0408 - 8 0.0051 - 13 0.189 - 14 0.204 - 15 0.189 - 16 0.0051 - 19 0.0051 - 21 0.0102 - 33 0.0051 - 34 0.168 - 35 0.0663 - 41 0.0714 - 45 0.0051 - 47 0.0051 - - 58 579 32 8 - 0 0.00173 - 2 0.0311 - 3 0.00864 - 4 0.0155 - 7 0.0138 - 8 0.019 - 9 0.00345 - 10 0.00173 - 11 0.00173 - 13 0.337 - 14 0.162 - 15 0.0725 - 16 0.00345 - 18 0.00345 - 19 0.0104 - 21 0.154 - 22 0.00518 - 23 0.00173 - 24 0.00173 - 28 0.00345 - 29 0.00345 - 30 0.00345 - 31 0.0173 - 32 0.00345 - 33 0.00864 - 34 0.00691 - 35 0.00345 - 37 0.00345 - 41 0.0691 - 42 0.00173 - 46 0.0242 - 47 0.00345 - - 41 32 9 0 - 2 0.0312 - 3 0.0312 - 13 0.25 - 14 0.0312 - 21 0.0625 - 32 0.0312 - 41 0.156 - 46 0.375 - 47 0.0312 - - 42 3 3 0 - 21 0.333 - 41 0.333 - 47 0.333 - - 45 95 13 0 - 2 0.0421 - 4 0.0316 - 7 0.0211 - 8 0.0211 - 13 0.368 - 14 0.158 - 15 0.0526 - 19 0.0105 - 21 0.168 - 31 0.0316 - 33 0.0105 - 37 0.0105 - 41 0.0737 - - 55 212 26 0 - 0 0.00472 - 2 0.0425 - 3 0.0142 - 4 0.00943 - 7 0.00943 - 8 0.0236 - 9 0.00472 - 10 0.00472 - 11 0.00472 - 13 0.259 - 14 0.118 - 15 0.0283 - 19 0.0142 - 21 0.278 - 22 0.00943 - 23 0.00472 - 24 0.00472 - 28 0.00472 - 29 0.00943 - 30 0.00472 - 31 0.0236 - 32 0.00472 - 33 0.0189 - 37 0.00472 - 41 0.0849 - 46 0.00943 - - 57 3 3 0 - 2 0.333 - 21 0.333 - 42 0.333 - - 62 13 9 0 - 3 0.0769 - 7 0.0769 - 8 0.0769 - 9 0.0769 - 13 0.308 - 14 0.0769 - 21 0.154 - 31 0.0769 - 41 0.0769 - - 64 6 3 0 - 2 0.5 - 13 0.167 - 21 0.333 - - 69 207 17 0 - 4 0.0193 - 7 0.0145 - 8 0.0145 - 13 0.435 - 14 0.237 - 15 0.14 - 16 0.00966 - 18 0.00966 - 19 0.00966 - 21 0.029 - 22 0.00483 - 28 0.00483 - 30 0.00483 - 31 0.00483 - 34 0.0193 - 35 0.00966 - 41 0.0338 - - 62 6481 29 9 - 0 0.00108 - 2 0.0227 - 4 0.000926 - 7 0.0389 - 8 0.00463 - 9 0.00108 - 13 0.00339 - 14 0.000463 - 15 0.000309 - 19 0.000309 - 21 0.00355 - 22 0.000154 - 28 0.00123 - 29 0.01 - 30 0.00108 - 31 0.000771 - 32 0.0017 - 33 0.00324 - 34 0.00417 - 35 0.00108 - 37 0.00386 - 40 0.000154 - 41 0.0728 - 42 0.0151 - 43 0.000154 - 44 0.00278 - 45 0.186 - 46 0.00154 - 47 0.617 - - 41 2566 9 0 - 2 0.00857 - 7 0.000779 - 21 0.000779 - 41 0.0744 - 42 0.00468 - 44 0.00039 - 45 0.295 - 46 0.00234 - 47 0.613 - - 42 4 2 0 - 42 0.75 - 45 0.25 - - 45 3 1 0 - 7 1 - - 46 10 1 0 - 45 1 - - 47 3515 29 0 - 0 0.00199 - 2 0.0259 - 4 0.00171 - 7 0.0512 - 8 0.00853 - 9 0.00199 - 13 0.00597 - 14 0.000853 - 15 0.000569 - 19 0.000569 - 21 0.00455 - 22 0.000284 - 28 0.00228 - 29 0.0182 - 30 0.00199 - 31 0.00142 - 32 0.00199 - 33 0.00569 - 34 0.00768 - 35 0.00199 - 37 0.00683 - 40 0.000284 - 41 0.0688 - 42 0.0216 - 43 0.000284 - 44 0.00427 - 45 0.118 - 46 0.00114 - 47 0.634 - - 49 6 4 0 - 2 0.167 - 7 0.333 - 41 0.333 - 47 0.167 - - 55 102 6 0 - 2 0.049 - 13 0.0098 - 41 0.0098 - 42 0.0196 - 45 0.0098 - 47 0.902 - - 58 17 3 0 - 2 0.118 - 45 0.0588 - 47 0.824 - - 69 256 12 0 - 2 0.102 - 7 0.254 - 21 0.0195 - 29 0.00391 - 32 0.0156 - 33 0.00391 - 37 0.00391 - 41 0.141 - 42 0.0195 - 44 0.00781 - 45 0.0664 - 47 0.363 - - 64 2370 27 7 - 0 0.000844 - 2 0.0992 - 4 0.00127 - 7 0.0726 - 8 0.0207 - 9 0.00127 - 10 0.000422 - 13 0.00464 - 14 0.00338 - 19 0.000422 - 21 0.00759 - 22 0.00169 - 29 0.00338 - 30 0.000422 - 32 0.00211 - 33 0.00127 - 34 0.000422 - 35 0.000422 - 37 0.000844 - 40 0.000844 - 41 0.101 - 42 0.0122 - 43 0.000422 - 44 0.00127 - 45 0.11 - 46 0.00127 - 47 0.55 - - 41 1979 21 0 - 0 0.000505 - 2 0.099 - 4 0.00152 - 7 0.0753 - 10 0.000505 - 13 0.00152 - 14 0.000505 - 21 0.00707 - 29 0.00303 - 32 0.00202 - 33 0.00101 - 35 0.000505 - 37 0.000505 - 40 0.000505 - 41 0.111 - 42 0.0116 - 43 0.000505 - 44 0.00152 - 45 0.106 - 46 0.000505 - 47 0.576 - - 47 74 10 0 - 8 0.662 - 9 0.0405 - 13 0.0811 - 14 0.0541 - 19 0.0135 - 21 0.0405 - 22 0.0541 - 41 0.0135 - 46 0.027 - 47 0.0135 - - 49 6 4 0 - 32 0.167 - 41 0.333 - 45 0.333 - 47 0.167 - - 55 100 11 0 - 2 0.12 - 7 0.13 - 13 0.01 - 14 0.01 - 21 0.01 - 29 0.02 - 40 0.01 - 41 0.11 - 42 0.03 - 45 0.08 - 47 0.47 - - 58 68 6 0 - 2 0.132 - 7 0.0147 - 41 0.0441 - 42 0.0147 - 45 0.118 - 47 0.676 - - 62 3 2 0 - 2 0.333 - 45 0.667 - - 69 121 13 0 - 0 0.00826 - 2 0.116 - 7 0.0496 - 13 0.00826 - 14 0.0165 - 30 0.00826 - 33 0.00826 - 34 0.00826 - 37 0.00826 - 41 0.00826 - 42 0.00826 - 45 0.231 - 47 0.521 - - 65 8 2 0 - 45 0.5 - 47 0.5 - - 66 35 6 1 - 2 0.0571 - 21 0.286 - 41 0.0286 - 42 0.2 - 44 0.0286 - 47 0.4 - - 47 3 2 0 - 2 0.667 - 42 0.333 - - 67 6 2 0 - 45 0.667 - 47 0.333 - - 68 21 11 0 - 7 0.0476 - 13 0.0476 - 14 0.0476 - 19 0.0952 - 21 0.0476 - 28 0.0476 - 31 0.0476 - 41 0.0476 - 42 0.0476 - 45 0.0952 - 47 0.429 - - 69 90079 42 2 - 0 0.00829 - 1 0.000155 - 2 0.00168 - 3 0.00775 - 4 0.0133 - 5 0.00924 - 6 0.000144 - 7 0.0348 - 8 0.0152 - 9 0.000844 - 10 0.000544 - 12 0.000444 - 13 0.201 - 14 0.151 - 15 0.13 - 16 0.00602 - 18 0.0014 - 19 0.154 - 20 0.000144 - 21 0.0443 - 22 0.000366 - 23 5.55e-05 - 24 0.00124 - 26 0.00173 - 27 2.22e-05 - 28 0.00959 - 29 0.0139 - 30 0.00948 - 31 0.0174 - 32 0.00625 - 33 0.00968 - 34 0.0385 - 35 0.0187 - 37 0.00109 - 40 9.99e-05 - 41 0.0694 - 42 0.00417 - 43 0.00219 - 44 0.000244 - 45 0.00562 - 46 0.0036 - 47 0.00728 - - 41 4 2 0 - 13 0.75 - 15 0.25 - - 69 6 5 0 - 13 0.167 - 14 0.333 - 34 0.167 - 41 0.167 - 46 0.167 - - 74 22 8 0 - 2 0.0909 - 5 0.0455 - 13 0.0455 - 18 0.0455 - 41 0.545 - 42 0.0455 - 45 0.0909 - 47 0.0909 - -63 79666 1 0 - 47 1 - -64 56433 41 26 - 0 0.0151 - 1 3.54e-05 - 2 0.021 - 3 0.00828 - 4 0.00434 - 5 7.09e-05 - 6 3.54e-05 - 7 0.0226 - 8 0.0251 - 9 0.00383 - 10 0.000656 - 12 3.54e-05 - 13 0.178 - 14 0.1 - 15 0.0189 - 16 0.00159 - 17 0.000106 - 18 0.000213 - 19 0.00564 - 21 0.0233 - 22 0.00184 - 24 0.00365 - 26 0.00124 - 28 0.0339 - 29 0.164 - 30 0.0194 - 31 0.0203 - 32 0.0433 - 33 0.0486 - 34 3.54e-05 - 35 0.000284 - 36 1.77e-05 - 37 8.86e-05 - 40 7.09e-05 - 41 0.155 - 42 0.0084 - 43 0.000939 - 44 0.00119 - 45 0.0125 - 46 0.0073 - 47 0.0483 - - 2 17 8 0 - 7 0.176 - 13 0.0588 - 22 0.0588 - 28 0.176 - 30 0.0588 - 41 0.294 - 46 0.0588 - 47 0.118 - - 4 202 17 0 - 0 0.0891 - 2 0.0594 - 3 0.0149 - 8 0.00495 - 13 0.144 - 14 0.00495 - 21 0.0149 - 24 0.0099 - 28 0.0743 - 29 0.342 - 30 0.0396 - 31 0.0347 - 32 0.099 - 33 0.0446 - 41 0.0149 - 42 0.00495 - 45 0.00495 - - 7 10218 35 1 - 0 0.0262 - 2 0.0361 - 3 0.00861 - 4 0.000587 - 7 0.0236 - 8 0.0418 - 9 0.00803 - 10 0.000685 - 12 9.79e-05 - 13 0.141 - 14 0.0686 - 15 0.0234 - 16 0.00147 - 18 0.000294 - 19 0.00832 - 21 0.065 - 22 0.00431 - 24 0.00528 - 26 0.000391 - 28 0.0397 - 29 0.102 - 30 0.0302 - 31 0.0349 - 32 0.0379 - 33 0.0506 - 34 9.79e-05 - 35 0.00108 - 37 9.79e-05 - 41 0.11 - 42 0.00851 - 43 0.00127 - 44 0.00137 - 45 0.019 - 46 0.00617 - 47 0.0931 - - 7 48 15 0 - 0 0.0208 - 8 0.0208 - 13 0.125 - 14 0.125 - 18 0.0208 - 21 0.104 - 28 0.0625 - 29 0.0208 - 30 0.0417 - 32 0.0208 - 33 0.0625 - 41 0.229 - 42 0.0417 - 46 0.0208 - 47 0.0833 - - 12 1 1 0 - 42 1 - - 13 8 7 0 - 2 0.125 - 7 0.125 - 8 0.125 - 13 0.25 - 14 0.125 - 21 0.125 - 30 0.125 - - 15 14 1 0 - 47 1 - - 21 385 23 4 - 0 0.0182 - 2 0.0779 - 3 0.0104 - 4 0.0026 - 7 0.0545 - 8 0.0234 - 13 0.0909 - 14 0.0649 - 15 0.013 - 19 0.0104 - 21 0.0571 - 24 0.013 - 28 0.0234 - 29 0.013 - 30 0.0156 - 31 0.0312 - 32 0.0026 - 33 0.0026 - 41 0.249 - 42 0.026 - 45 0.0416 - 46 0.013 - 47 0.145 - - 7 246 21 0 - 2 0.0813 - 3 0.0122 - 7 0.061 - 8 0.0325 - 13 0.0854 - 14 0.061 - 15 0.0163 - 19 0.0122 - 21 0.0285 - 24 0.00407 - 28 0.00813 - 29 0.0122 - 30 0.0122 - 31 0.0163 - 32 0.00407 - 33 0.00407 - 41 0.297 - 42 0.0407 - 45 0.0407 - 46 0.0203 - 47 0.15 - - 21 13 8 0 - 2 0.0769 - 7 0.0769 - 8 0.0769 - 13 0.231 - 14 0.154 - 21 0.231 - 29 0.0769 - 41 0.0769 - - 47 118 18 0 - 0 0.0508 - 2 0.0678 - 3 0.00847 - 4 0.00847 - 7 0.0424 - 13 0.0932 - 14 0.0593 - 15 0.00847 - 19 0.00847 - 21 0.102 - 24 0.0339 - 28 0.0508 - 29 0.00847 - 30 0.0254 - 31 0.0678 - 41 0.178 - 45 0.0424 - 47 0.144 - - 71 5 5 0 - 2 0.2 - 14 0.2 - 28 0.2 - 45 0.2 - 47 0.2 - - 26 2 1 0 - 30 1 - - 34 10 5 0 - 2 0.1 - 13 0.4 - 14 0.1 - 41 0.2 - 47 0.2 - - 35 5 2 0 - 2 0.4 - 47 0.6 - - 41 8 5 0 - 8 0.25 - 13 0.375 - 14 0.125 - 28 0.125 - 33 0.125 - - 44 5 4 0 - 2 0.2 - 8 0.4 - 14 0.2 - 30 0.2 - - 45 26 7 0 - 2 0.0385 - 13 0.0769 - 14 0.0769 - 28 0.0769 - 29 0.269 - 33 0.192 - 41 0.269 - - 47 27924 40 25 - 0 0.0152 - 1 3.58e-05 - 2 0.0212 - 3 0.00834 - 4 0.00437 - 5 7.16e-05 - 6 3.58e-05 - 7 0.0219 - 8 0.0252 - 9 0.0038 - 10 0.000573 - 12 3.58e-05 - 13 0.18 - 14 0.1 - 15 0.0191 - 16 0.00161 - 17 0.000107 - 18 0.000215 - 19 0.00569 - 21 0.0165 - 22 0.00175 - 24 0.00369 - 26 0.00125 - 28 0.0342 - 29 0.166 - 30 0.0196 - 31 0.0206 - 32 0.0438 - 33 0.0491 - 34 3.58e-05 - 35 0.000179 - 37 7.16e-05 - 40 7.16e-05 - 41 0.156 - 42 0.00849 - 43 0.000931 - 44 0.00111 - 45 0.0122 - 46 0.00734 - 47 0.0488 - - 2 12 7 0 - 7 0.25 - 13 0.0833 - 22 0.0833 - 28 0.25 - 30 0.0833 - 41 0.0833 - 47 0.167 - - 4 201 17 0 - 0 0.0896 - 2 0.0597 - 3 0.0149 - 8 0.00498 - 13 0.144 - 14 0.00498 - 21 0.00995 - 24 0.00995 - 28 0.0746 - 29 0.343 - 30 0.0398 - 31 0.0348 - 32 0.0995 - 33 0.0448 - 41 0.0149 - 42 0.00498 - 45 0.00498 - - 7 9753 35 0 - 0 0.0275 - 2 0.0378 - 3 0.00892 - 4 0.000615 - 7 0.0198 - 8 0.0437 - 9 0.00841 - 10 0.000513 - 12 0.000103 - 13 0.146 - 14 0.0687 - 15 0.0245 - 16 0.00154 - 18 0.000308 - 19 0.00872 - 21 0.0321 - 22 0.00451 - 24 0.00554 - 26 0.00041 - 28 0.0416 - 29 0.107 - 30 0.0317 - 31 0.0366 - 32 0.0397 - 33 0.053 - 34 0.000103 - 35 0.000513 - 37 0.000103 - 41 0.115 - 42 0.00892 - 43 0.00133 - 44 0.00113 - 45 0.0199 - 46 0.00646 - 47 0.0975 - - 12 1 1 0 - 42 1 - - 13 7 6 0 - 2 0.143 - 8 0.143 - 13 0.286 - 14 0.143 - 21 0.143 - 30 0.143 - - 15 14 1 0 - 47 1 - - 21 367 23 0 - 0 0.0191 - 2 0.0817 - 3 0.0109 - 4 0.00272 - 7 0.0572 - 8 0.0245 - 13 0.0899 - 14 0.0654 - 15 0.0136 - 19 0.0109 - 21 0.0191 - 24 0.0136 - 28 0.0245 - 29 0.0136 - 30 0.0163 - 31 0.0327 - 32 0.00272 - 33 0.00272 - 41 0.262 - 42 0.0272 - 45 0.0436 - 46 0.0136 - 47 0.153 - - 26 2 1 0 - 30 1 - - 34 10 5 0 - 2 0.1 - 13 0.4 - 14 0.1 - 41 0.2 - 47 0.2 - - 35 4 2 0 - 2 0.25 - 47 0.75 - - 41 2 2 0 - 28 0.5 - 33 0.5 - - 44 5 4 0 - 2 0.2 - 8 0.4 - 14 0.2 - 30 0.2 - - 45 24 7 0 - 2 0.0417 - 13 0.0833 - 14 0.0833 - 28 0.0833 - 29 0.292 - 33 0.208 - 41 0.208 - - 49 130 21 0 - 0 0.0385 - 2 0.0385 - 7 0.00769 - 8 0.0308 - 13 0.0923 - 14 0.0385 - 15 0.00769 - 19 0.00769 - 21 0.0385 - 24 0.00769 - 28 0.00769 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.00769 - 41 0.369 - 42 0.0615 - 44 0.00769 - 45 0.0308 - 46 0.0154 - 47 0.146 - - 55 50 13 0 - 2 0.02 - 7 0.04 - 13 0.14 - 14 0.08 - 15 0.06 - 21 0.04 - 29 0.1 - 30 0.02 - 31 0.04 - 33 0.12 - 41 0.2 - 42 0.02 - 47 0.12 - - 57 13 9 0 - 8 0.0769 - 13 0.231 - 14 0.154 - 29 0.0769 - 31 0.0769 - 41 0.154 - 42 0.0769 - 46 0.0769 - 47 0.0769 - - 62 7901 29 0 - 0 0.00253 - 2 0.000506 - 3 0.00797 - 4 0.00367 - 7 0.00101 - 8 0.0221 - 9 0.0024 - 10 0.00101 - 13 0.172 - 14 0.078 - 15 0.00848 - 16 0.000127 - 17 0.000253 - 18 0.000127 - 19 0.00329 - 21 0.00633 - 22 0.000127 - 24 0.000759 - 28 0.0291 - 29 0.424 - 30 0.0182 - 31 0.0151 - 32 0.0938 - 33 0.0919 - 41 0.0103 - 42 0.00101 - 43 0.000506 - 45 0.00165 - 46 0.00354 - - 64 337 24 0 - 0 0.0326 - 2 0.0089 - 4 0.00593 - 7 0.0386 - 8 0.0326 - 13 0.131 - 14 0.0504 - 15 0.0089 - 19 0.0119 - 21 0.00297 - 22 0.00297 - 24 0.0119 - 26 0.00297 - 28 0.0801 - 29 0.285 - 30 0.0178 - 31 0.0148 - 32 0.0475 - 33 0.107 - 41 0.0623 - 42 0.0089 - 44 0.00297 - 45 0.0178 - 47 0.0148 - - 66 31 12 0 - 2 0.0645 - 7 0.0323 - 9 0.0645 - 13 0.226 - 14 0.0323 - 15 0.0645 - 18 0.0323 - 28 0.0323 - 29 0.0323 - 31 0.0968 - 41 0.0968 - 47 0.226 - - 68 2 2 0 - 8 0.5 - 47 0.5 - - 70 36 15 0 - 0 0.0278 - 2 0.0833 - 7 0.167 - 13 0.0278 - 19 0.0278 - 24 0.0278 - 28 0.111 - 29 0.0278 - 30 0.0278 - 31 0.0278 - 32 0.111 - 33 0.139 - 42 0.0278 - 45 0.0556 - 47 0.111 - - 71 1934 30 0 - 0 0.0274 - 2 0.0398 - 3 0.015 - 4 0.000517 - 7 0.0729 - 8 0.0217 - 9 0.00103 - 10 0.00103 - 13 0.171 - 14 0.0693 - 15 0.0274 - 18 0.000517 - 19 0.00982 - 21 0.0274 - 22 0.000517 - 24 0.0062 - 26 0.0031 - 28 0.06 - 29 0.0186 - 30 0.0129 - 31 0.0202 - 32 0.0119 - 33 0.0186 - 40 0.00103 - 41 0.204 - 42 0.014 - 44 0.00155 - 45 0.0264 - 46 0.0114 - 47 0.105 - - 72 6740 35 0 - 0 0.00608 - 1 0.000148 - 2 0.0113 - 3 0.00653 - 4 0.012 - 5 0.000297 - 6 0.000148 - 7 0.0323 - 8 0.00445 - 9 0.000148 - 10 0.000148 - 13 0.241 - 14 0.19 - 15 0.0223 - 16 0.00415 - 17 0.000148 - 19 0.00282 - 21 0.00415 - 22 0.000148 - 24 0.00267 - 26 0.00356 - 28 0.02 - 29 0.00341 - 30 0.00564 - 31 0.00356 - 32 0.0046 - 33 0.00401 - 37 0.000148 - 41 0.368 - 42 0.012 - 43 0.00134 - 44 0.00208 - 45 0.00712 - 46 0.0111 - 47 0.0126 - - 73 321 18 0 - 0 0.00312 - 2 0.0125 - 3 0.00935 - 4 0.00623 - 8 0.00623 - 13 0.424 - 14 0.137 - 15 0.0343 - 16 0.00312 - 28 0.0125 - 30 0.00623 - 31 0.00312 - 33 0.00623 - 41 0.277 - 42 0.0187 - 44 0.00312 - 45 0.00935 - 46 0.028 - - 74 14 5 0 - 7 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - - 49 130 21 3 - 0 0.0385 - 2 0.0385 - 7 0.00769 - 8 0.0308 - 13 0.0923 - 14 0.0385 - 15 0.00769 - 19 0.00769 - 21 0.0385 - 24 0.00769 - 28 0.00769 - 29 0.0154 - 30 0.00769 - 31 0.0231 - 33 0.00769 - 41 0.369 - 42 0.0615 - 44 0.00769 - 45 0.0308 - 46 0.0154 - 47 0.146 - - 21 2 2 0 - 30 0.5 - 31 0.5 - - 71 10 6 0 - 8 0.1 - 14 0.1 - 41 0.3 - 42 0.2 - 46 0.1 - 47 0.2 - - 72 7 5 0 - 0 0.429 - 21 0.143 - 33 0.143 - 41 0.143 - 47 0.143 - - 55 50 13 0 - 2 0.02 - 7 0.04 - 13 0.14 - 14 0.08 - 15 0.06 - 21 0.04 - 29 0.1 - 30 0.02 - 31 0.04 - 33 0.12 - 41 0.2 - 42 0.02 - 47 0.12 - - 57 13 9 0 - 8 0.0769 - 13 0.231 - 14 0.154 - 29 0.0769 - 31 0.0769 - 41 0.154 - 42 0.0769 - 46 0.0769 - 47 0.0769 - - 62 7950 30 0 - 0 0.00252 - 2 0.000503 - 3 0.00792 - 4 0.00365 - 7 0.00126 - 8 0.022 - 9 0.00289 - 10 0.00113 - 13 0.172 - 14 0.0776 - 15 0.00843 - 16 0.000126 - 17 0.000252 - 18 0.000126 - 19 0.00327 - 21 0.00654 - 22 0.000881 - 24 0.000755 - 28 0.0289 - 29 0.421 - 30 0.0181 - 31 0.015 - 32 0.0932 - 33 0.0913 - 37 0.000126 - 41 0.0102 - 42 0.00101 - 43 0.000629 - 45 0.00453 - 46 0.00365 - - 64 340 24 0 - 0 0.0324 - 2 0.00882 - 4 0.00588 - 7 0.0382 - 8 0.0324 - 13 0.129 - 14 0.05 - 15 0.00882 - 19 0.0118 - 21 0.0118 - 22 0.00294 - 24 0.0118 - 26 0.00294 - 28 0.0794 - 29 0.282 - 30 0.0176 - 31 0.0147 - 32 0.0471 - 33 0.106 - 41 0.0618 - 42 0.00882 - 44 0.00294 - 45 0.0176 - 47 0.0147 - - 66 31 12 0 - 2 0.0645 - 7 0.0323 - 9 0.0645 - 13 0.226 - 14 0.0323 - 15 0.0645 - 18 0.0323 - 28 0.0323 - 29 0.0323 - 31 0.0968 - 41 0.0968 - 47 0.226 - - 68 2 2 0 - 8 0.5 - 47 0.5 - - 70 36 15 0 - 0 0.0278 - 2 0.0833 - 7 0.167 - 13 0.0278 - 19 0.0278 - 24 0.0278 - 28 0.111 - 29 0.0278 - 30 0.0278 - 31 0.0278 - 32 0.111 - 33 0.139 - 42 0.0278 - 45 0.0556 - 47 0.111 - - 71 1950 30 0 - 0 0.0272 - 2 0.04 - 3 0.0149 - 4 0.000513 - 7 0.0723 - 8 0.0215 - 9 0.00103 - 10 0.00205 - 13 0.169 - 14 0.0687 - 15 0.0272 - 18 0.000513 - 19 0.00974 - 21 0.0338 - 22 0.000513 - 24 0.00615 - 26 0.00308 - 28 0.0595 - 29 0.0185 - 30 0.0128 - 31 0.02 - 32 0.0118 - 33 0.0185 - 40 0.00103 - 41 0.202 - 42 0.0138 - 44 0.00154 - 45 0.0262 - 46 0.0113 - 47 0.105 - - 72 6757 36 0 - 0 0.00607 - 1 0.000148 - 2 0.0112 - 3 0.00651 - 4 0.0121 - 5 0.000296 - 6 0.000148 - 7 0.0323 - 8 0.00474 - 9 0.000148 - 10 0.000148 - 13 0.24 - 14 0.19 - 15 0.0222 - 16 0.00414 - 17 0.000148 - 19 0.00281 - 21 0.00503 - 22 0.000148 - 24 0.00266 - 26 0.00355 - 28 0.02 - 29 0.0034 - 30 0.00562 - 31 0.00355 - 32 0.00459 - 33 0.004 - 36 0.000148 - 37 0.000148 - 41 0.367 - 42 0.012 - 43 0.00133 - 44 0.00237 - 45 0.00755 - 46 0.0111 - 47 0.0126 - - 73 321 18 0 - 0 0.00312 - 2 0.0125 - 3 0.00935 - 4 0.00623 - 8 0.00623 - 13 0.424 - 14 0.137 - 15 0.0343 - 16 0.00312 - 28 0.0125 - 30 0.00623 - 31 0.00312 - 33 0.00623 - 41 0.277 - 42 0.0187 - 44 0.00312 - 45 0.00935 - 46 0.028 - - 74 14 5 0 - 7 0.286 - 41 0.143 - 42 0.143 - 45 0.143 - 47 0.286 - -65 683 22 14 - 0 0.00878 - 2 0.0293 - 7 0.00293 - 8 0.00586 - 9 0.00146 - 12 0.00146 - 13 0.0293 - 14 0.00732 - 15 0.00146 - 21 0.0351 - 28 0.00439 - 31 0.00146 - 34 0.00146 - 35 0.124 - 37 0.113 - 40 0.00586 - 41 0.0527 - 42 0.0366 - 44 0.00293 - 45 0.133 - 46 0.00293 - 47 0.398 - - 2 12 3 0 - 0 0.0833 - 44 0.0833 - 47 0.833 - - 21 11 3 0 - 0 0.0909 - 45 0.0909 - 47 0.818 - - 41 14 6 0 - 8 0.214 - 13 0.429 - 15 0.0714 - 21 0.143 - 31 0.0714 - 37 0.0714 - - 45 28 3 0 - 41 0.143 - 42 0.0357 - 47 0.821 - - 46 2 1 0 - 41 1 - - 47 198 10 1 - 0 0.00505 - 2 0.0202 - 7 0.00505 - 21 0.00505 - 28 0.00505 - 40 0.0101 - 41 0.0455 - 42 0.0606 - 45 0.157 - 47 0.687 - - 45 27 3 0 - 41 0.111 - 42 0.037 - 47 0.852 - - 58 5 3 0 - 13 0.2 - 28 0.2 - 37 0.6 - - 62 7 4 0 - 14 0.143 - 35 0.429 - 37 0.286 - 47 0.143 - - 64 12 4 0 - 0 0.0833 - 42 0.0833 - 45 0.25 - 47 0.583 - - 65 3 3 0 - 2 0.333 - 41 0.333 - 42 0.333 - - 67 184 13 0 - 0 0.00543 - 2 0.0109 - 8 0.00543 - 9 0.00543 - 12 0.00543 - 13 0.0652 - 14 0.0217 - 21 0.0489 - 34 0.00543 - 35 0.429 - 37 0.37 - 41 0.0217 - 45 0.00543 - - 69 1 1 0 - 0 1 - - 71 83 9 0 - 2 0.0843 - 21 0.0723 - 28 0.012 - 41 0.0723 - 42 0.0361 - 44 0.012 - 45 0.301 - 46 0.012 - 47 0.398 - - 72 108 9 0 - 2 0.0556 - 7 0.00926 - 21 0.0556 - 40 0.0185 - 41 0.0833 - 42 0.0648 - 45 0.278 - 46 0.00926 - 47 0.426 - -66 9695 38 20 - 0 0.00743 - 2 0.00918 - 3 0.0032 - 4 0.00196 - 5 0.000103 - 6 0.000103 - 7 0.0099 - 8 0.0141 - 9 0.00124 - 10 0.000103 - 12 0.00258 - 13 0.0709 - 14 0.033 - 15 0.00949 - 16 0.000413 - 18 0.000309 - 19 0.00825 - 21 0.0228 - 22 0.000825 - 24 0.00175 - 26 0.000413 - 28 0.00495 - 29 0.00155 - 30 0.00196 - 31 0.00495 - 32 0.00155 - 33 0.00134 - 34 0.000413 - 35 0.000722 - 37 0.000206 - 40 0.00144 - 41 0.158 - 42 0.0033 - 43 0.000619 - 44 0.000309 - 45 0.108 - 46 0.14 - 47 0.372 - - 0 88 14 2 - 2 0.227 - 3 0.0227 - 4 0.0114 - 7 0.227 - 9 0.0227 - 13 0.114 - 14 0.0227 - 18 0.0114 - 21 0.205 - 31 0.0341 - 35 0.0114 - 41 0.0227 - 42 0.0114 - 47 0.0568 - - 47 34 7 0 - 2 0.235 - 4 0.0294 - 7 0.559 - 13 0.0588 - 21 0.0588 - 35 0.0294 - 41 0.0294 - - 55 54 12 0 - 2 0.222 - 3 0.037 - 7 0.0185 - 9 0.037 - 13 0.148 - 14 0.037 - 18 0.0185 - 21 0.296 - 31 0.0556 - 41 0.0185 - 42 0.0185 - 47 0.0926 - - 2 31 3 0 - 41 0.0323 - 45 0.0323 - 47 0.935 - - 12 26 8 0 - 2 0.308 - 13 0.154 - 15 0.0769 - 21 0.231 - 35 0.0385 - 37 0.0385 - 41 0.0769 - 47 0.0769 - - 21 7 4 0 - 12 0.143 - 19 0.286 - 42 0.143 - 47 0.429 - - 33 4 2 0 - 21 0.75 - 47 0.25 - - 40 9 5 0 - 8 0.111 - 13 0.556 - 24 0.111 - 30 0.111 - 42 0.111 - - 41 1398 28 4 - 0 0.0122 - 2 0.000715 - 3 0.0179 - 4 0.00787 - 5 0.000715 - 6 0.000715 - 7 0.0114 - 8 0.0858 - 9 0.00572 - 10 0.000715 - 12 0.00143 - 13 0.408 - 14 0.192 - 15 0.0451 - 16 0.00286 - 19 0.0258 - 21 0.0672 - 22 0.00501 - 24 0.0114 - 26 0.00215 - 28 0.0315 - 29 0.00858 - 30 0.0107 - 31 0.0222 - 32 0.00858 - 33 0.00787 - 35 0.000715 - 43 0.00429 - - 46 1150 27 0 - 0 0.0139 - 3 0.0104 - 4 0.00957 - 5 0.00087 - 6 0.00087 - 7 0.013 - 8 0.0957 - 9 0.00522 - 10 0.00087 - 12 0.00174 - 13 0.415 - 14 0.17 - 15 0.0435 - 16 0.00348 - 19 0.0304 - 21 0.0661 - 22 0.00435 - 24 0.0139 - 26 0.00261 - 28 0.0322 - 29 0.0087 - 30 0.013 - 31 0.0235 - 32 0.00957 - 33 0.00609 - 35 0.00087 - 43 0.00435 - - 49 7 6 0 - 3 0.143 - 8 0.143 - 13 0.143 - 14 0.143 - 15 0.143 - 29 0.286 - - 57 6 3 0 - 13 0.333 - 14 0.167 - 21 0.5 - - 69 231 17 0 - 0 0.00433 - 2 0.00433 - 3 0.0519 - 7 0.00433 - 8 0.039 - 9 0.00866 - 13 0.385 - 14 0.303 - 15 0.0519 - 19 0.00433 - 21 0.0606 - 22 0.00866 - 28 0.0303 - 31 0.0173 - 32 0.00433 - 33 0.0173 - 43 0.00433 - - 45 1037 7 1 - 2 0.00193 - 34 0.000964 - 41 0.000964 - 42 0.00193 - 44 0.000964 - 46 0.000964 - 47 0.992 - - 69 1 1 0 - 46 1 - - 46 1179 3 0 - 40 0.0119 - 41 0.978 - 46 0.0102 - - 47 2027 21 10 - 2 0.0143 - 7 0.0192 - 9 0.000987 - 13 0.00345 - 14 0.000493 - 15 0.000987 - 18 0.000493 - 21 0.00691 - 28 0.000493 - 29 0.000493 - 31 0.00148 - 32 0.000493 - 34 0.000987 - 35 0.00148 - 37 0.000493 - 41 0.0276 - 42 0.0074 - 44 0.000493 - 45 0.00296 - 46 0.0183 - 47 0.89 - - 0 52 11 0 - 2 0.115 - 7 0.385 - 9 0.0385 - 13 0.0577 - 14 0.0192 - 18 0.0192 - 21 0.154 - 31 0.0577 - 35 0.0192 - 41 0.0385 - 47 0.0962 - - 2 30 2 0 - 45 0.0333 - 47 0.967 - - 12 20 8 0 - 2 0.25 - 13 0.2 - 15 0.1 - 21 0.15 - 35 0.05 - 37 0.05 - 41 0.1 - 47 0.1 - - 45 1033 4 0 - 2 0.000968 - 34 0.000968 - 42 0.00194 - 47 0.996 - - 49 86 6 0 - 2 0.151 - 28 0.0116 - 42 0.0116 - 44 0.0116 - 45 0.0116 - 47 0.802 - - 51 6 2 0 - 42 0.333 - 47 0.667 - - 55 11 3 0 - 2 0.182 - 42 0.364 - 47 0.455 - - 57 83 5 0 - 2 0.012 - 7 0.012 - 42 0.012 - 45 0.012 - 47 0.952 - - 62 456 3 0 - 34 0.00219 - 42 0.00439 - 47 0.993 - - 69 198 10 0 - 7 0.0909 - 21 0.0152 - 29 0.00505 - 32 0.00505 - 35 0.00505 - 41 0.253 - 42 0.00505 - 45 0.0101 - 46 0.187 - 47 0.424 - - 48 31 3 0 - 2 0.0323 - 21 0.129 - 47 0.839 - - 49 98 8 0 - 2 0.163 - 21 0.0204 - 28 0.0102 - 41 0.0714 - 42 0.0102 - 44 0.0102 - 45 0.0102 - 47 0.704 - - 51 14 3 0 - 42 0.143 - 45 0.571 - 47 0.286 - - 55 97 11 4 - 0 0.567 - 2 0.0309 - 8 0.0103 - 12 0.227 - 15 0.0103 - 21 0.0103 - 33 0.0103 - 42 0.0412 - 45 0.0309 - 46 0.0103 - 47 0.0515 - - 41 5 4 0 - 2 0.2 - 15 0.2 - 45 0.4 - 47 0.2 - - 47 5 2 0 - 2 0.2 - 42 0.8 - - 57 1 1 0 - 33 1 - - 69 83 8 0 - 0 0.639 - 2 0.012 - 8 0.012 - 12 0.265 - 21 0.012 - 45 0.012 - 46 0.012 - 47 0.0361 - - 57 99 10 3 - 2 0.0303 - 7 0.0101 - 8 0.0101 - 13 0.0202 - 14 0.0101 - 21 0.0404 - 41 0.0606 - 42 0.0101 - 45 0.0101 - 47 0.798 - - 0 9 3 0 - 21 0.333 - 42 0.111 - 47 0.556 - - 41 8 2 0 - 41 0.625 - 47 0.375 - - 69 77 7 0 - 2 0.026 - 7 0.013 - 13 0.013 - 14 0.013 - 21 0.013 - 45 0.013 - 47 0.909 - - 58 6 5 0 - 8 0.167 - 13 0.333 - 14 0.167 - 15 0.167 - 19 0.167 - - 62 1478 6 2 - 2 0.00271 - 34 0.000677 - 41 0.000677 - 42 0.00135 - 45 0.688 - 47 0.306 - - 41 1357 6 0 - 2 0.00295 - 34 0.000737 - 41 0.000737 - 42 0.00147 - 45 0.739 - 47 0.255 - - 69 111 2 0 - 45 0.036 - 47 0.964 - - 64 11 5 0 - 2 0.0909 - 13 0.0909 - 41 0.0909 - 45 0.0909 - 47 0.636 - - 65 9 3 0 - 42 0.111 - 45 0.667 - 47 0.222 - - 69 2030 25 4 - 2 0.000493 - 3 0.00197 - 4 0.00345 - 7 0.00985 - 8 0.0064 - 13 0.0404 - 14 0.0227 - 15 0.0113 - 18 0.000493 - 19 0.0202 - 21 0.036 - 22 0.000493 - 26 0.000493 - 28 0.000985 - 29 0.000985 - 30 0.00148 - 31 0.00542 - 32 0.000985 - 33 0.000493 - 35 0.000493 - 41 0.146 - 42 0.000493 - 45 0.00148 - 46 0.645 - 47 0.0414 - - 41 2 2 0 - 19 0.5 - 47 0.5 - - 47 1970 23 0 - 3 0.00203 - 4 0.00355 - 7 0.00964 - 8 0.0066 - 13 0.0416 - 14 0.0228 - 15 0.0117 - 18 0.000508 - 19 0.0203 - 21 0.0315 - 22 0.000508 - 26 0.000508 - 28 0.00102 - 29 0.000508 - 30 0.00152 - 31 0.00558 - 32 0.00102 - 33 0.000508 - 35 0.000508 - 41 0.151 - 45 0.00152 - 46 0.665 - 47 0.0208 - - 58 2 1 0 - 21 1 - - 69 54 6 0 - 2 0.0185 - 7 0.0185 - 21 0.167 - 29 0.0185 - 42 0.0185 - 47 0.759 - -67 759 24 13 - 0 0.00527 - 2 0.0527 - 4 0.00132 - 7 0.00395 - 8 0.00264 - 9 0.00264 - 12 0.00264 - 13 0.0395 - 14 0.0145 - 15 0.00922 - 19 0.00922 - 21 0.0329 - 31 0.00132 - 33 0.00132 - 34 0.00264 - 35 0.215 - 37 0.182 - 40 0.00395 - 41 0.0461 - 42 0.0237 - 44 0.00527 - 45 0.0777 - 46 0.00132 - 47 0.264 - - 0 167 13 0 - 0 0.00599 - 2 0.0778 - 8 0.00599 - 13 0.0359 - 14 0.012 - 21 0.0359 - 35 0.15 - 37 0.228 - 40 0.00599 - 41 0.0659 - 42 0.0359 - 45 0.0958 - 47 0.246 - - 2 15 2 0 - 46 0.0667 - 47 0.933 - - 12 94 11 0 - 2 0.117 - 9 0.0106 - 13 0.0319 - 14 0.0106 - 21 0.0319 - 35 0.128 - 37 0.245 - 41 0.106 - 42 0.0106 - 45 0.0532 - 47 0.255 - - 14 2 1 0 - 45 1 - - 41 17 9 1 - 4 0.0588 - 7 0.0588 - 13 0.235 - 14 0.118 - 15 0.118 - 19 0.0588 - 21 0.235 - 31 0.0588 - 33 0.0588 - - 12 7 5 0 - 4 0.143 - 13 0.286 - 14 0.286 - 19 0.143 - 31 0.143 - - 45 6 5 0 - 2 0.167 - 7 0.167 - 42 0.167 - 44 0.333 - 47 0.167 - - 46 1 1 0 - 40 1 - - 47 342 18 10 - 0 0.00585 - 2 0.038 - 7 0.00292 - 8 0.00292 - 9 0.00292 - 12 0.00292 - 13 0.0351 - 14 0.0117 - 21 0.0263 - 34 0.00292 - 35 0.237 - 37 0.202 - 40 0.00292 - 41 0.0263 - 42 0.0263 - 44 0.00585 - 45 0.076 - 47 0.292 - - 0 148 13 0 - 0 0.00676 - 2 0.0338 - 8 0.00676 - 13 0.0405 - 14 0.00676 - 21 0.0338 - 35 0.169 - 37 0.257 - 40 0.00676 - 41 0.027 - 42 0.0405 - 45 0.0946 - 47 0.277 - - 2 14 1 0 - 47 1 - - 12 82 11 0 - 2 0.0854 - 9 0.0122 - 13 0.0366 - 14 0.0122 - 21 0.0366 - 35 0.146 - 37 0.28 - 41 0.0366 - 42 0.0122 - 45 0.0488 - 47 0.293 - - 14 2 1 0 - 45 1 - - 45 5 4 0 - 7 0.2 - 42 0.2 - 44 0.4 - 47 0.2 - - 49 5 2 0 - 14 0.2 - 47 0.8 - - 55 7 6 0 - 0 0.143 - 2 0.143 - 12 0.143 - 21 0.143 - 35 0.143 - 45 0.286 - - 57 6 2 0 - 37 0.167 - 47 0.833 - - 64 6 3 0 - 41 0.333 - 45 0.167 - 47 0.5 - - 69 56 7 0 - 13 0.0536 - 14 0.0179 - 34 0.0179 - 35 0.768 - 37 0.0714 - 45 0.0357 - 47 0.0357 - - 49 5 2 0 - 14 0.2 - 47 0.8 - - 55 10 7 0 - 0 0.1 - 2 0.1 - 12 0.1 - 15 0.3 - 21 0.1 - 35 0.1 - 45 0.2 - - 57 6 2 0 - 37 0.167 - 47 0.833 - - 64 8 4 0 - 2 0.125 - 41 0.25 - 45 0.25 - 47 0.375 - - 69 67 10 0 - 13 0.0597 - 14 0.0149 - 15 0.0299 - 19 0.0896 - 21 0.0299 - 34 0.0149 - 35 0.642 - 37 0.0597 - 45 0.0299 - 47 0.0299 - -68 1958 35 27 - 0 0.0827 - 1 0.00102 - 2 0.111 - 3 0.0133 - 4 0.0511 - 7 0.072 - 8 0.116 - 9 0.00358 - 13 0.15 - 14 0.0572 - 15 0.0465 - 16 0.000511 - 18 0.00715 - 19 0.00511 - 20 0.00409 - 21 0.0235 - 22 0.00102 - 24 0.00306 - 26 0.00562 - 27 0.000511 - 28 0.0225 - 29 0.00562 - 30 0.0163 - 31 0.0235 - 32 0.00358 - 33 0.0097 - 37 0.00153 - 40 0.00153 - 41 0.0914 - 42 0.0184 - 43 0.00153 - 44 0.00102 - 45 0.00919 - 46 0.00613 - 47 0.0337 - - 2 466 18 9 - 0 0.00429 - 3 0.0343 - 7 0.0172 - 8 0.193 - 9 0.00858 - 13 0.369 - 14 0.0687 - 15 0.122 - 16 0.00215 - 19 0.00215 - 21 0.0343 - 22 0.00215 - 30 0.00429 - 31 0.00429 - 37 0.00644 - 41 0.109 - 43 0.00644 - 46 0.0107 - - 7 1 1 0 - 37 1 - - 8 110 4 0 - 8 0.109 - 13 0.682 - 14 0.0182 - 15 0.191 - - 13 55 4 0 - 8 0.545 - 13 0.345 - 14 0.0727 - 41 0.0364 - - 14 10 2 0 - 8 0.2 - 13 0.8 - - 15 19 3 0 - 8 0.474 - 14 0.0526 - 15 0.474 - - 30 3 1 0 - 8 1 - - 47 253 17 0 - 3 0.0593 - 7 0.0316 - 8 0.119 - 9 0.0158 - 13 0.265 - 14 0.0988 - 15 0.107 - 16 0.00395 - 19 0.00395 - 21 0.0593 - 22 0.00395 - 30 0.00791 - 31 0.00791 - 37 0.00791 - 41 0.182 - 43 0.0119 - 46 0.0158 - - 48 3 2 0 - 0 0.333 - 8 0.667 - - 57 1 1 0 - 0 1 - - 4 9 5 0 - 0 0.222 - 7 0.444 - 13 0.111 - 41 0.111 - 45 0.111 - - 7 4 4 0 - 2 0.25 - 8 0.25 - 21 0.25 - 41 0.25 - - 8 194 20 4 - 0 0.00515 - 2 0.572 - 3 0.0103 - 4 0.0722 - 7 0.0619 - 8 0.067 - 13 0.0155 - 15 0.0155 - 18 0.0206 - 20 0.00515 - 21 0.00515 - 26 0.0103 - 28 0.0206 - 29 0.00515 - 30 0.0155 - 31 0.00515 - 33 0.0155 - 41 0.0464 - 42 0.0103 - 47 0.0206 - - 2 58 17 0 - 0 0.0172 - 2 0.0172 - 3 0.0345 - 4 0.172 - 7 0.121 - 8 0.155 - 13 0.0517 - 15 0.0345 - 18 0.0345 - 21 0.0172 - 28 0.069 - 29 0.0172 - 30 0.0345 - 31 0.0172 - 33 0.0345 - 41 0.103 - 47 0.069 - - 13 3 3 0 - 8 0.333 - 18 0.333 - 26 0.333 - - 41 18 9 0 - 4 0.222 - 7 0.222 - 8 0.0556 - 18 0.0556 - 26 0.0556 - 30 0.0556 - 33 0.0556 - 41 0.167 - 42 0.111 - - 47 111 4 0 - 2 0.973 - 7 0.00901 - 8 0.00901 - 15 0.00901 - - 13 182 19 3 - 0 0.00549 - 2 0.308 - 3 0.00549 - 4 0.11 - 7 0.137 - 8 0.132 - 9 0.00549 - 13 0.022 - 15 0.022 - 18 0.0165 - 20 0.011 - 26 0.011 - 28 0.0165 - 30 0.022 - 31 0.00549 - 32 0.011 - 33 0.011 - 41 0.132 - 47 0.0165 - - 2 103 19 0 - 0 0.00971 - 2 0.00971 - 3 0.00971 - 4 0.136 - 7 0.204 - 8 0.214 - 9 0.00971 - 13 0.0291 - 15 0.0194 - 18 0.0194 - 20 0.00971 - 26 0.0194 - 28 0.0291 - 30 0.0291 - 31 0.00971 - 32 0.00971 - 33 0.00971 - 41 0.204 - 47 0.0194 - - 41 17 10 0 - 4 0.294 - 7 0.176 - 8 0.0588 - 15 0.0588 - 18 0.0588 - 30 0.0588 - 32 0.0588 - 33 0.0588 - 41 0.118 - 47 0.0588 - - 47 51 2 0 - 2 0.98 - 13 0.0196 - - 14 21 6 2 - 2 0.476 - 4 0.143 - 8 0.0952 - 13 0.0952 - 33 0.0476 - 41 0.143 - - 2 7 4 0 - 4 0.429 - 8 0.143 - 33 0.143 - 41 0.286 - - 47 13 3 0 - 2 0.769 - 8 0.0769 - 13 0.154 - - 15 60 9 2 - 2 0.317 - 4 0.15 - 7 0.117 - 8 0.15 - 13 0.0167 - 15 0.133 - 20 0.0167 - 41 0.0333 - 47 0.0667 - - 2 31 7 0 - 4 0.226 - 7 0.194 - 8 0.258 - 13 0.0323 - 15 0.129 - 20 0.0323 - 47 0.129 - - 47 18 2 0 - 2 0.833 - 15 0.167 - - 21 16 5 1 - 0 0.188 - 2 0.5 - 13 0.125 - 21 0.125 - 42 0.0625 - - 48 3 1 0 - 0 1 - - 30 5 3 0 - 2 0.6 - 7 0.2 - 13 0.2 - - 41 124 16 4 - 3 0.0403 - 4 0.00806 - 8 0.29 - 9 0.00806 - 13 0.387 - 14 0.0887 - 15 0.0242 - 19 0.00806 - 21 0.0403 - 22 0.00806 - 26 0.00806 - 29 0.00806 - 30 0.0323 - 31 0.0161 - 33 0.00806 - 40 0.0242 - - 2 50 12 0 - 3 0.08 - 8 0.16 - 13 0.36 - 14 0.12 - 15 0.02 - 19 0.02 - 21 0.1 - 22 0.02 - 29 0.02 - 30 0.04 - 31 0.04 - 33 0.02 - - 13 22 3 0 - 4 0.0455 - 8 0.591 - 13 0.364 - - 46 5 3 0 - 8 0.2 - 13 0.2 - 40 0.6 - - 48 9 4 0 - 3 0.111 - 8 0.667 - 9 0.111 - 30 0.111 - - 42 11 6 0 - 4 0.0909 - 7 0.0909 - 8 0.273 - 13 0.364 - 15 0.0909 - 47 0.0909 - - 45 10 7 0 - 0 0.1 - 2 0.1 - 7 0.2 - 19 0.1 - 24 0.1 - 42 0.1 - 46 0.3 - - 46 9 4 0 - 8 0.222 - 27 0.111 - 32 0.111 - 41 0.556 - - 47 494 29 16 - 0 0.164 - 1 0.00202 - 2 0.00405 - 3 0.00405 - 4 0.0911 - 7 0.132 - 8 0.0891 - 9 0.00202 - 13 0.0587 - 14 0.0688 - 15 0.0202 - 18 0.0142 - 19 0.0081 - 20 0.0081 - 21 0.0121 - 24 0.00607 - 26 0.0101 - 28 0.0445 - 29 0.0101 - 30 0.0263 - 31 0.0425 - 32 0.00607 - 33 0.0182 - 41 0.0547 - 42 0.0243 - 44 0.00202 - 45 0.0081 - 46 0.00202 - 47 0.0668 - - 4 8 4 0 - 0 0.25 - 7 0.5 - 41 0.125 - 45 0.125 - - 8 71 19 0 - 0 0.0141 - 2 0.0141 - 3 0.0282 - 4 0.197 - 7 0.155 - 8 0.155 - 13 0.0423 - 15 0.0282 - 18 0.0563 - 20 0.0141 - 21 0.0141 - 26 0.0282 - 28 0.0563 - 29 0.0141 - 30 0.0423 - 31 0.0141 - 33 0.0423 - 42 0.0282 - 47 0.0563 - - 13 93 17 0 - 0 0.0108 - 2 0.0108 - 4 0.172 - 7 0.269 - 8 0.226 - 9 0.0108 - 15 0.043 - 18 0.0323 - 20 0.0215 - 26 0.0215 - 28 0.0323 - 30 0.043 - 31 0.0108 - 32 0.0215 - 33 0.0215 - 41 0.0215 - 47 0.0323 - - 14 4 2 0 - 4 0.75 - 33 0.25 - - 15 30 5 0 - 4 0.3 - 7 0.233 - 8 0.3 - 20 0.0333 - 47 0.133 - - 21 5 3 0 - 0 0.6 - 13 0.2 - 42 0.2 - - 45 6 5 0 - 0 0.167 - 7 0.333 - 19 0.167 - 24 0.167 - 42 0.167 - - 48 60 12 0 - 0 0.533 - 1 0.0167 - 4 0.0333 - 7 0.0333 - 13 0.05 - 14 0.0667 - 28 0.0333 - 29 0.0167 - 41 0.0833 - 42 0.0333 - 45 0.0167 - 47 0.0833 - - 49 34 12 0 - 0 0.206 - 7 0.0882 - 13 0.0882 - 14 0.147 - 21 0.0294 - 28 0.118 - 29 0.0294 - 30 0.0294 - 31 0.0294 - 41 0.147 - 42 0.0294 - 47 0.0588 - - 50 2 1 0 - 41 1 - - 55 61 17 0 - 0 0.246 - 4 0.0164 - 7 0.148 - 13 0.0328 - 14 0.131 - 19 0.0328 - 21 0.0328 - 26 0.0164 - 28 0.0656 - 30 0.0328 - 31 0.0328 - 32 0.0164 - 33 0.0328 - 41 0.0656 - 42 0.0492 - 44 0.0164 - 47 0.0328 - - 57 68 17 0 - 0 0.147 - 8 0.0147 - 13 0.191 - 14 0.147 - 15 0.0588 - 19 0.0147 - 21 0.0147 - 24 0.0147 - 28 0.0294 - 29 0.0294 - 30 0.0441 - 31 0.162 - 33 0.0147 - 41 0.0441 - 42 0.0147 - 45 0.0147 - 47 0.0441 - - 62 13 6 0 - 7 0.0769 - 14 0.0769 - 31 0.154 - 41 0.0769 - 46 0.0769 - 47 0.538 - - 64 10 8 0 - 0 0.1 - 8 0.1 - 13 0.2 - 24 0.1 - 28 0.1 - 31 0.2 - 42 0.1 - 47 0.1 - - 65 1 1 0 - 45 1 - - 69 17 5 0 - 0 0.353 - 13 0.0588 - 14 0.353 - 21 0.0588 - 41 0.176 - - 48 82 14 3 - 0 0.39 - 1 0.0122 - 2 0.0366 - 4 0.0488 - 7 0.0244 - 13 0.0366 - 14 0.0488 - 21 0.0488 - 28 0.0244 - 29 0.0122 - 41 0.171 - 42 0.0366 - 45 0.0488 - 47 0.061 - - 41 24 7 0 - 0 0.333 - 14 0.0417 - 21 0.0833 - 28 0.0417 - 41 0.333 - 45 0.0417 - 47 0.125 - - 46 2 1 0 - 45 1 - - 47 2 2 0 - 14 0.5 - 42 0.5 - - 49 40 14 1 - 0 0.175 - 2 0.025 - 4 0.05 - 7 0.075 - 13 0.075 - 14 0.125 - 21 0.05 - 28 0.1 - 29 0.025 - 30 0.025 - 31 0.025 - 41 0.175 - 42 0.025 - 47 0.05 - - 41 7 4 0 - 13 0.286 - 21 0.143 - 29 0.143 - 41 0.429 - - 50 4 1 0 - 41 1 - - 51 2 2 0 - 28 0.5 - 42 0.5 - - 52 1 1 0 - 45 1 - - 55 85 19 3 - 0 0.176 - 4 0.0118 - 7 0.106 - 13 0.0235 - 14 0.106 - 19 0.0235 - 21 0.0471 - 26 0.0118 - 28 0.0471 - 30 0.0235 - 31 0.0235 - 32 0.0118 - 33 0.0235 - 41 0.176 - 42 0.118 - 44 0.0118 - 45 0.0118 - 46 0.0235 - 47 0.0235 - - 2 49 17 0 - 0 0.163 - 4 0.0204 - 7 0.143 - 13 0.0408 - 14 0.163 - 19 0.0204 - 21 0.0408 - 26 0.0204 - 28 0.0408 - 30 0.0408 - 31 0.0408 - 32 0.0204 - 33 0.0204 - 41 0.143 - 42 0.0204 - 45 0.0204 - 47 0.0408 - - 41 20 8 0 - 0 0.3 - 7 0.1 - 19 0.05 - 28 0.1 - 33 0.05 - 41 0.25 - 42 0.1 - 44 0.05 - - 47 15 5 0 - 14 0.0667 - 21 0.133 - 41 0.2 - 42 0.467 - 46 0.133 - - 57 75 19 2 - 0 0.133 - 2 0.0133 - 7 0.0133 - 8 0.0133 - 13 0.173 - 14 0.133 - 15 0.0533 - 19 0.0133 - 21 0.04 - 24 0.0133 - 28 0.0267 - 29 0.0267 - 30 0.04 - 31 0.147 - 33 0.0133 - 41 0.08 - 42 0.0133 - 45 0.0133 - 47 0.04 - - 2 53 15 0 - 0 0.113 - 2 0.0189 - 7 0.0189 - 8 0.0189 - 13 0.151 - 14 0.189 - 15 0.0566 - 21 0.0566 - 24 0.0189 - 28 0.0189 - 29 0.0377 - 30 0.0189 - 31 0.151 - 41 0.113 - 47 0.0189 - - 41 19 11 0 - 0 0.211 - 13 0.158 - 15 0.0526 - 19 0.0526 - 28 0.0526 - 30 0.105 - 31 0.158 - 33 0.0526 - 42 0.0526 - 45 0.0526 - 47 0.0526 - - 62 19 9 2 - 7 0.0526 - 14 0.0526 - 21 0.0526 - 31 0.105 - 41 0.158 - 42 0.105 - 45 0.0526 - 46 0.0526 - 47 0.368 - - 2 7 5 0 - 7 0.143 - 14 0.143 - 31 0.286 - 41 0.286 - 46 0.143 - - 42 5 1 0 - 47 1 - - 64 11 8 0 - 0 0.0909 - 8 0.0909 - 13 0.182 - 24 0.0909 - 28 0.0909 - 31 0.182 - 42 0.182 - 47 0.0909 - - 65 3 1 0 - 45 1 - - 67 2 1 0 - 45 1 - - 69 19 5 0 - 0 0.316 - 13 0.0526 - 14 0.316 - 21 0.0526 - 41 0.263 - - 71 2 2 0 - 31 0.5 - 47 0.5 - -69 294981 43 37 - 0 0.105 - 1 0.00265 - 2 0.0256 - 3 0.00552 - 4 0.00905 - 5 0.00567 - 6 9.49e-05 - 7 0.0229 - 8 0.00961 - 9 0.000532 - 10 0.000431 - 12 0.0558 - 13 0.14 - 14 0.108 - 15 0.0833 - 16 0.00388 - 18 0.000919 - 19 0.0976 - 20 9.49e-05 - 21 0.0678 - 22 0.000427 - 23 0.000122 - 24 0.00078 - 25 2.37e-05 - 26 0.0912 - 27 1.36e-05 - 28 0.00706 - 29 0.00917 - 30 0.00623 - 31 0.0111 - 32 0.00412 - 33 0.00631 - 34 0.0243 - 35 0.0121 - 37 0.000692 - 40 7.12e-05 - 41 0.0548 - 42 0.00322 - 43 0.00148 - 44 0.000363 - 45 0.00512 - 46 0.0116 - 47 0.00527 - - 0 33828 41 0 - 0 0.0459 - 1 0.000443 - 2 0.0164 - 3 0.00573 - 4 0.0196 - 5 0.0219 - 6 0.000118 - 7 0.00198 - 8 0.00399 - 9 0.000236 - 10 0.000709 - 12 0.0834 - 13 0.183 - 14 0.139 - 15 0.0942 - 16 0.00562 - 18 0.0013 - 19 0.154 - 20 8.87e-05 - 21 0.0574 - 22 0.000118 - 23 2.96e-05 - 24 0.000177 - 26 0.0434 - 28 0.00121 - 29 0.00127 - 30 0.00139 - 31 0.0018 - 32 0.00106 - 33 0.000709 - 34 0.0345 - 35 0.0178 - 37 5.91e-05 - 40 2.96e-05 - 41 0.0478 - 42 0.00328 - 43 0.00207 - 44 2.96e-05 - 45 0.00532 - 46 0.00316 - 47 0.000207 - - 1 555 24 0 - 0 0.342 - 2 0.018 - 4 0.0036 - 7 0.245 - 8 0.0018 - 13 0.0613 - 14 0.0721 - 15 0.00541 - 19 0.00541 - 20 0.0036 - 21 0.101 - 24 0.00541 - 26 0.0198 - 28 0.0126 - 29 0.0036 - 31 0.0036 - 32 0.0018 - 33 0.0036 - 41 0.0378 - 42 0.0036 - 43 0.0036 - 45 0.0144 - 46 0.0036 - 47 0.027 - - 2 411 19 14 - 0 0.00243 - 7 0.00487 - 8 0.00973 - 12 0.017 - 13 0.00973 - 14 0.0146 - 15 0.00487 - 28 0.338 - 29 0.0779 - 30 0.151 - 31 0.173 - 32 0.0779 - 33 0.09 - 34 0.00243 - 41 0.0146 - 42 0.00243 - 43 0.00243 - 44 0.00243 - 46 0.00487 - - 0 2 2 0 - 8 0.5 - 12 0.5 - - 8 2 1 0 - 8 1 - - 12 3 1 0 - 12 1 - - 13 2 1 0 - 13 1 - - 21 2 2 0 - 28 0.5 - 46 0.5 - - 28 142 4 0 - 28 0.972 - 41 0.0141 - 42 0.00704 - 43 0.00704 - - 29 33 2 0 - 29 0.97 - 41 0.0303 - - 30 64 3 0 - 7 0.0156 - 8 0.0156 - 30 0.969 - - 31 73 3 0 - 31 0.973 - 41 0.0137 - 44 0.0137 - - 32 34 3 0 - 0 0.0294 - 32 0.941 - 41 0.0294 - - 33 37 1 0 - 33 1 - - 45 1 1 0 - 46 1 - - 47 1 1 0 - 15 1 - - 69 13 6 0 - 7 0.0769 - 12 0.231 - 13 0.154 - 14 0.385 - 15 0.0769 - 34 0.0769 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 13 0.111 - 19 0.111 - 26 0.222 - 41 0.333 - - 7 23 6 0 - 0 0.522 - 8 0.0435 - 13 0.087 - 14 0.0435 - 21 0.261 - 41 0.0435 - - 8 152 22 1 - 0 0.283 - 1 0.0132 - 2 0.0329 - 4 0.0197 - 7 0.0658 - 8 0.00658 - 13 0.0329 - 14 0.0724 - 15 0.0132 - 16 0.00658 - 19 0.00658 - 21 0.25 - 22 0.0197 - 23 0.00658 - 26 0.0526 - 28 0.0132 - 29 0.0132 - 32 0.00658 - 41 0.0395 - 45 0.0263 - 46 0.00658 - 47 0.0132 - - 2 3 2 0 - 4 0.667 - 22 0.333 - - 12 9669 37 0 - 0 0.000207 - 2 0.0233 - 3 0.00776 - 4 0.0185 - 5 0.00755 - 6 0.000207 - 7 0.00114 - 8 0.00259 - 9 0.00031 - 10 0.000207 - 12 0.000103 - 13 0.242 - 14 0.173 - 15 0.106 - 16 0.00641 - 18 0.00103 - 19 0.222 - 21 0.0332 - 22 0.00031 - 23 0.000103 - 24 0.000103 - 28 0.00124 - 29 0.00124 - 30 0.000931 - 31 0.00238 - 32 0.00207 - 33 0.00176 - 34 0.0602 - 35 0.0146 - 40 0.000103 - 41 0.0506 - 42 0.00434 - 43 0.00321 - 44 0.000103 - 45 0.00858 - 46 0.0031 - 47 0.000103 - - 13 318 31 3 - 0 0.0252 - 1 0.00943 - 2 0.0629 - 3 0.066 - 4 0.0377 - 7 0.145 - 8 0.0252 - 10 0.0126 - 12 0.00314 - 13 0.164 - 14 0.0283 - 15 0.0377 - 16 0.00943 - 18 0.00314 - 19 0.00314 - 21 0.066 - 24 0.00629 - 26 0.151 - 28 0.0252 - 29 0.0189 - 30 0.00943 - 31 0.0157 - 32 0.00629 - 34 0.00314 - 37 0.00314 - 41 0.0346 - 42 0.00314 - 43 0.00314 - 45 0.00943 - 46 0.00314 - 47 0.00943 - - 2 2 2 0 - 7 0.5 - 31 0.5 - - 28 3 3 0 - 7 0.333 - 12 0.333 - 45 0.333 - - 69 12 6 0 - 2 0.0833 - 3 0.0833 - 13 0.583 - 15 0.0833 - 18 0.0833 - 41 0.0833 - - 14 122 21 0 - 0 0.0656 - 2 0.123 - 3 0.0328 - 4 0.0082 - 7 0.041 - 8 0.0246 - 13 0.262 - 14 0.0164 - 15 0.254 - 18 0.0082 - 19 0.0164 - 21 0.0082 - 30 0.0082 - 34 0.0082 - 35 0.0164 - 41 0.0574 - 42 0.0082 - 43 0.0082 - 45 0.0164 - 46 0.0082 - 47 0.0082 - - 15 37 10 0 - 0 0.108 - 2 0.027 - 7 0.0541 - 15 0.297 - 18 0.027 - 26 0.0541 - 33 0.027 - 42 0.027 - 45 0.162 - 47 0.216 - - 18 30 6 0 - 4 0.1 - 5 0.367 - 7 0.0667 - 13 0.0667 - 19 0.367 - 34 0.0333 - - 21 80 22 8 - 0 0.1 - 1 0.0125 - 2 0.0875 - 7 0.112 - 8 0.025 - 10 0.0125 - 12 0.112 - 13 0.15 - 14 0.0625 - 16 0.0125 - 19 0.0875 - 21 0.0375 - 26 0.0375 - 28 0.0125 - 29 0.0125 - 31 0.0125 - 32 0.0125 - 35 0.0125 - 41 0.05 - 42 0.0125 - 45 0.0125 - 47 0.0125 - - 0 4 2 0 - 12 0.25 - 19 0.75 - - 26 4 3 0 - 2 0.25 - 13 0.5 - 31 0.25 - - 28 9 6 0 - 2 0.444 - 7 0.111 - 12 0.111 - 13 0.111 - 16 0.111 - 42 0.111 - - 30 12 7 0 - 0 0.0833 - 7 0.25 - 13 0.25 - 19 0.0833 - 26 0.0833 - 32 0.0833 - 41 0.167 - - 31 10 5 0 - 0 0.1 - 7 0.1 - 14 0.5 - 41 0.2 - 47 0.1 - - 47 15 10 0 - 0 0.267 - 1 0.0667 - 2 0.0667 - 7 0.0667 - 10 0.0667 - 13 0.0667 - 21 0.133 - 26 0.133 - 28 0.0667 - 29 0.0667 - - 49 7 6 0 - 0 0.143 - 7 0.143 - 8 0.143 - 13 0.286 - 19 0.143 - 45 0.143 - - 69 13 6 0 - 8 0.0769 - 12 0.538 - 13 0.0769 - 19 0.154 - 21 0.0769 - 35 0.0769 - - 22 3 1 0 - 0 1 - - 26 13048 39 0 - 0 0.0513 - 1 0.00107 - 2 0.0104 - 3 0.018 - 4 0.00107 - 5 7.66e-05 - 6 0.000153 - 7 0.00613 - 8 0.084 - 9 0.00429 - 10 0.00046 - 12 0.00245 - 13 0.2 - 14 0.114 - 15 0.0403 - 16 0.00215 - 18 0.000153 - 19 0.0154 - 21 0.0327 - 22 0.000996 - 23 0.000153 - 24 0.00452 - 26 7.66e-05 - 28 0.0401 - 29 0.073 - 30 0.0567 - 31 0.105 - 32 0.0336 - 33 0.0583 - 34 0.000307 - 35 0.00115 - 37 0.00452 - 41 0.0174 - 42 0.00268 - 43 0.00115 - 44 0.000383 - 45 0.00261 - 46 0.0049 - 47 0.00897 - - 28 21028 36 3 - 0 0.00471 - 1 4.76e-05 - 2 0.0342 - 3 4.76e-05 - 4 0.000856 - 7 0.00185 - 8 0.00019 - 10 0.00019 - 12 0.238 - 13 0.00623 - 14 0.00923 - 15 0.00385 - 16 4.76e-05 - 18 0.000143 - 19 0.00956 - 21 0.117 - 22 0.00105 - 23 9.51e-05 - 26 0.538 - 27 9.51e-05 - 28 0.00518 - 29 0.00271 - 30 0.000476 - 31 0.000618 - 32 0.000666 - 33 0.000808 - 34 0.00019 - 35 0.000428 - 40 0.000333 - 41 0.00704 - 42 0.00195 - 43 0.000333 - 44 0.000666 - 45 0.00818 - 46 0.000238 - 47 0.0049 - - 2 139 9 0 - 2 0.0144 - 12 0.137 - 13 0.00719 - 14 0.0144 - 15 0.00719 - 21 0.0719 - 26 0.669 - 41 0.0647 - 45 0.0144 - - 41 17 6 0 - 0 0.0588 - 12 0.294 - 21 0.0588 - 26 0.353 - 33 0.0588 - 41 0.176 - - 46 2 1 0 - 45 1 - - 29 21706 36 1 - 0 0.00438 - 1 0.00101 - 2 0.0333 - 3 0.00604 - 4 0.00392 - 7 0.00143 - 8 0.00207 - 9 0.000184 - 10 9.21e-05 - 12 0.000276 - 13 0.196 - 14 0.136 - 15 0.23 - 16 0.00792 - 18 0.0018 - 19 0.133 - 21 0.0658 - 22 0.000322 - 23 4.61e-05 - 26 0.000138 - 28 9.21e-05 - 29 0.000322 - 30 0.000461 - 31 0.000921 - 32 4.61e-05 - 33 0.000138 - 34 0.0313 - 35 0.0208 - 37 9.21e-05 - 41 0.0885 - 42 0.0024 - 43 0.00147 - 44 9.21e-05 - 45 0.00235 - 46 0.0266 - 47 0.000645 - - 2 32 10 0 - 2 0.0312 - 13 0.156 - 14 0.0625 - 15 0.156 - 19 0.188 - 21 0.188 - 22 0.0312 - 35 0.125 - 41 0.0312 - 45 0.0312 - - 30 11273 33 1 - 0 0.265 - 2 0.0353 - 3 0.00284 - 4 0.00213 - 7 0.227 - 8 0.00319 - 9 8.87e-05 - 10 0.000355 - 13 0.0685 - 14 0.0679 - 15 0.0108 - 16 0.000621 - 18 0.00115 - 19 0.00337 - 20 0.00071 - 21 0.0726 - 22 0.000355 - 24 0.00364 - 26 0.0114 - 28 0.0184 - 29 0.0169 - 30 0.00337 - 31 0.00523 - 32 0.00417 - 33 0.0047 - 37 0.0016 - 41 0.126 - 42 0.00523 - 43 0.000266 - 44 0.000532 - 45 0.00772 - 46 0.00408 - 47 0.0245 - - 2 62 14 0 - 0 0.0968 - 2 0.0161 - 3 0.0161 - 7 0.355 - 13 0.0323 - 14 0.0968 - 15 0.0161 - 19 0.0323 - 21 0.0806 - 22 0.0161 - 26 0.113 - 28 0.0323 - 33 0.0161 - 41 0.0806 - - 31 15631 38 1 - 0 0.586 - 1 0.0204 - 2 0.0168 - 3 0.00448 - 4 0.00435 - 6 6.4e-05 - 7 0.0117 - 8 0.00032 - 9 0.000128 - 10 0.000256 - 12 0.00032 - 13 0.0843 - 14 0.0769 - 15 0.00409 - 16 0.000384 - 18 0.000256 - 19 0.00186 - 21 0.11 - 22 0.000768 - 23 0.00109 - 26 0.000128 - 28 0.00211 - 29 0.00211 - 30 0.000768 - 31 0.00102 - 32 0.000768 - 33 0.00122 - 34 0.000256 - 35 0.000128 - 37 0.00109 - 40 6.4e-05 - 41 0.047 - 42 0.00237 - 43 0.000448 - 44 0.00147 - 45 0.00333 - 46 0.00224 - 47 0.0094 - - 2 71 8 0 - 0 0.69 - 1 0.0563 - 13 0.0141 - 14 0.0423 - 19 0.0141 - 21 0.0986 - 41 0.0704 - 45 0.0141 - - 32 5414 31 1 - 2 0.0296 - 3 0.00166 - 4 0.0133 - 7 0.00129 - 8 0.00332 - 9 0.000369 - 10 0.00222 - 12 0.000185 - 13 0.0334 - 14 0.401 - 15 0.0253 - 16 0.0105 - 18 0.000739 - 19 0.248 - 21 0.0876 - 22 0.000185 - 23 0.000185 - 29 0.000185 - 30 0.000369 - 31 0.00185 - 32 0.000369 - 33 0.000369 - 34 0.0567 - 35 0.0412 - 37 0.000185 - 41 0.0292 - 42 0.00332 - 43 0.00259 - 45 0.00314 - 46 0.00148 - 47 0.000185 - - 2 32 7 0 - 2 0.0312 - 14 0.406 - 19 0.219 - 21 0.0312 - 34 0.156 - 35 0.0625 - 41 0.0938 - - 33 9604 31 2 - 2 0.0311 - 3 0.00281 - 4 0.0167 - 5 0.000625 - 6 0.000416 - 7 0.00198 - 8 0.00167 - 9 0.000104 - 10 0.000104 - 13 0.207 - 14 0.0117 - 15 0.162 - 16 0.0025 - 18 0.000937 - 19 0.192 - 21 0.0798 - 22 0.000312 - 25 0.000312 - 28 0.000104 - 29 0.000625 - 30 0.000416 - 31 0.000521 - 32 0.000312 - 34 0.0715 - 35 0.0271 - 41 0.0868 - 42 0.00344 - 43 0.00281 - 45 0.00573 - 46 0.0842 - 47 0.00375 - - 2 37 10 0 - 8 0.027 - 13 0.189 - 15 0.189 - 16 0.027 - 18 0.027 - 19 0.0811 - 21 0.027 - 34 0.243 - 35 0.0541 - 41 0.135 - - 41 2 2 0 - 2 0.5 - 34 0.5 - - 41 83 16 15 - 0 0.012 - 2 0.0482 - 3 0.012 - 8 0.0241 - 12 0.012 - 13 0.205 - 14 0.012 - 15 0.0482 - 19 0.0361 - 21 0.145 - 28 0.205 - 29 0.0241 - 30 0.0361 - 31 0.0843 - 32 0.0723 - 33 0.0241 - - 0 5 3 0 - 13 0.6 - 14 0.2 - 21 0.2 - - 2 6 4 0 - 28 0.333 - 29 0.167 - 31 0.333 - 32 0.167 - - 12 4 2 0 - 13 0.5 - 19 0.5 - - 26 5 2 0 - 13 0.6 - 21 0.4 - - 28 14 2 0 - 21 0.0714 - 28 0.929 - - 29 7 4 0 - 13 0.286 - 15 0.429 - 21 0.143 - 29 0.143 - - 30 2 1 0 - 30 1 - - 31 6 2 0 - 21 0.167 - 31 0.833 - - 32 4 1 0 - 32 1 - - 33 2 1 0 - 33 1 - - 49 6 5 0 - 2 0.167 - 12 0.167 - 13 0.333 - 21 0.167 - 28 0.167 - - 55 5 3 0 - 3 0.2 - 13 0.6 - 19 0.2 - - 57 5 3 0 - 2 0.6 - 8 0.2 - 21 0.2 - - 64 3 2 0 - 8 0.333 - 21 0.667 - - 69 6 4 0 - 13 0.333 - 15 0.167 - 21 0.333 - 30 0.167 - - 42 7 3 0 - 25 0.143 - 28 0.143 - 47 0.714 - - 44 5 4 0 - 13 0.4 - 19 0.2 - 26 0.2 - 31 0.2 - - 45 119 15 9 - 0 0.193 - 2 0.0336 - 4 0.0168 - 6 0.0084 - 7 0.0336 - 12 0.0924 - 13 0.134 - 14 0.0588 - 15 0.0252 - 19 0.0672 - 21 0.0672 - 26 0.193 - 28 0.0168 - 35 0.0084 - 41 0.0504 - - 0 6 5 0 - 13 0.167 - 14 0.167 - 15 0.167 - 35 0.167 - 41 0.333 - - 28 35 5 0 - 0 0.0286 - 2 0.0286 - 12 0.2 - 21 0.114 - 26 0.629 - - 29 14 5 0 - 13 0.357 - 14 0.143 - 15 0.143 - 19 0.286 - 41 0.0714 - - 30 15 6 0 - 0 0.267 - 7 0.2 - 14 0.0667 - 21 0.2 - 28 0.133 - 41 0.133 - - 31 14 5 0 - 0 0.714 - 2 0.0714 - 13 0.0714 - 14 0.0714 - 21 0.0714 - - 32 4 3 0 - 2 0.25 - 14 0.25 - 19 0.5 - - 33 8 3 0 - 2 0.125 - 13 0.75 - 19 0.125 - - 49 10 7 0 - 0 0.3 - 4 0.1 - 12 0.2 - 13 0.1 - 14 0.1 - 26 0.1 - 41 0.1 - - 69 9 6 0 - 0 0.333 - 4 0.111 - 6 0.111 - 12 0.111 - 13 0.222 - 19 0.111 - - 46 4 3 0 - 0 0.25 - 21 0.25 - 28 0.5 - - 47 145999 43 35 - 0 0.106 - 1 0.00268 - 2 0.0245 - 3 0.00554 - 4 0.00909 - 5 0.00573 - 6 9.59e-05 - 7 0.023 - 8 0.00966 - 9 0.000527 - 10 0.000404 - 12 0.0564 - 13 0.141 - 14 0.109 - 15 0.0841 - 16 0.00392 - 18 0.000918 - 19 0.0986 - 20 9.59e-05 - 21 0.0628 - 22 0.000363 - 23 6.16e-05 - 24 0.000788 - 25 2.05e-05 - 26 0.0921 - 27 1.37e-05 - 28 0.00658 - 29 0.00915 - 30 0.00608 - 31 0.011 - 32 0.00403 - 33 0.00624 - 34 0.0245 - 35 0.0122 - 37 0.000699 - 40 6.85e-05 - 41 0.0551 - 42 0.00323 - 43 0.00149 - 44 0.000349 - 45 0.00476 - 46 0.0117 - 47 0.00533 - - 0 33747 40 0 - 0 0.046 - 1 0.000444 - 2 0.0164 - 3 0.00572 - 4 0.0196 - 5 0.022 - 6 0.000119 - 7 0.00199 - 8 0.004 - 9 0.000237 - 10 0.000711 - 12 0.0836 - 13 0.183 - 14 0.139 - 15 0.0945 - 16 0.00563 - 18 0.0013 - 19 0.155 - 20 8.89e-05 - 21 0.0558 - 22 0.000119 - 23 2.96e-05 - 24 0.000178 - 26 0.0435 - 28 0.00121 - 29 0.00127 - 30 0.00139 - 31 0.00181 - 32 0.00107 - 33 0.000711 - 34 0.0346 - 35 0.0179 - 37 5.93e-05 - 40 2.96e-05 - 41 0.0477 - 42 0.00329 - 43 0.00207 - 45 0.00516 - 46 0.00317 - 47 0.000207 - - 1 547 24 0 - 0 0.347 - 2 0.0183 - 4 0.00366 - 7 0.249 - 8 0.00183 - 13 0.0622 - 14 0.0731 - 15 0.00548 - 19 0.00548 - 20 0.00366 - 21 0.0878 - 24 0.00548 - 26 0.0201 - 28 0.0128 - 29 0.00366 - 31 0.00366 - 32 0.00183 - 33 0.00366 - 41 0.0384 - 42 0.00366 - 43 0.00366 - 45 0.0146 - 46 0.00366 - 47 0.0274 - - 2 16 6 0 - 7 0.125 - 12 0.25 - 13 0.125 - 14 0.312 - 15 0.125 - 34 0.0625 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 13 0.111 - 19 0.111 - 26 0.222 - 41 0.333 - - 7 23 6 0 - 0 0.522 - 8 0.0435 - 13 0.087 - 14 0.0435 - 21 0.261 - 41 0.0435 - - 8 124 20 0 - 0 0.347 - 1 0.0161 - 2 0.0242 - 4 0.0161 - 7 0.0645 - 8 0.00806 - 13 0.0403 - 14 0.0887 - 15 0.0161 - 16 0.00806 - 19 0.00806 - 21 0.169 - 26 0.0645 - 28 0.0161 - 29 0.0161 - 32 0.00806 - 41 0.0484 - 45 0.0161 - 46 0.00806 - 47 0.0161 - - 12 9643 36 0 - 0 0.000207 - 2 0.023 - 3 0.00778 - 4 0.0186 - 5 0.00757 - 6 0.000207 - 7 0.00114 - 8 0.00259 - 9 0.000311 - 10 0.000207 - 12 0.000104 - 13 0.243 - 14 0.174 - 15 0.106 - 16 0.00643 - 18 0.00104 - 19 0.222 - 21 0.0317 - 22 0.000311 - 23 0.000104 - 24 0.000104 - 28 0.00124 - 29 0.00124 - 30 0.000933 - 31 0.00239 - 32 0.00207 - 33 0.00176 - 34 0.0604 - 35 0.0146 - 40 0.000104 - 41 0.0502 - 42 0.00436 - 43 0.00321 - 45 0.00861 - 46 0.00301 - 47 0.000104 - - 13 311 31 0 - 0 0.0257 - 1 0.00965 - 2 0.0579 - 3 0.0675 - 4 0.0386 - 7 0.148 - 8 0.0257 - 10 0.00643 - 12 0.00322 - 13 0.164 - 14 0.0289 - 15 0.0386 - 16 0.00965 - 18 0.00322 - 19 0.00322 - 21 0.0675 - 24 0.00643 - 26 0.154 - 28 0.0257 - 29 0.0193 - 30 0.00965 - 31 0.0161 - 32 0.00643 - 34 0.00322 - 37 0.00322 - 41 0.0354 - 42 0.00322 - 43 0.00322 - 45 0.00322 - 46 0.00322 - 47 0.00965 - - 14 121 21 0 - 0 0.0661 - 2 0.116 - 3 0.0331 - 4 0.00826 - 7 0.0413 - 8 0.0248 - 13 0.264 - 14 0.0165 - 15 0.256 - 18 0.00826 - 19 0.0165 - 21 0.00826 - 30 0.00826 - 34 0.00826 - 35 0.0165 - 41 0.0579 - 42 0.00826 - 43 0.00826 - 45 0.0165 - 46 0.00826 - 47 0.00826 - - 15 37 10 0 - 0 0.108 - 2 0.027 - 7 0.0541 - 15 0.297 - 18 0.027 - 26 0.0541 - 33 0.027 - 42 0.027 - 45 0.162 - 47 0.216 - - 18 30 6 0 - 4 0.1 - 5 0.367 - 7 0.0667 - 13 0.0667 - 19 0.367 - 34 0.0333 - - 21 72 21 0 - 0 0.0972 - 1 0.0139 - 2 0.0694 - 7 0.111 - 8 0.0278 - 12 0.125 - 13 0.153 - 14 0.0694 - 16 0.0139 - 19 0.0972 - 21 0.0139 - 26 0.0417 - 28 0.0139 - 29 0.0139 - 31 0.0139 - 32 0.0139 - 35 0.0139 - 41 0.0556 - 42 0.0139 - 45 0.0139 - 47 0.0139 - - 22 3 1 0 - 0 1 - - 26 13034 39 0 - 0 0.0514 - 1 0.00107 - 2 0.0104 - 3 0.018 - 4 0.000997 - 5 7.67e-05 - 6 0.000153 - 7 0.00606 - 8 0.0841 - 9 0.0043 - 10 0.00046 - 12 0.00246 - 13 0.2 - 14 0.114 - 15 0.0404 - 16 0.00215 - 18 0.000153 - 19 0.0154 - 21 0.0322 - 22 0.000997 - 23 0.000153 - 24 0.00453 - 26 7.67e-05 - 28 0.0401 - 29 0.0731 - 30 0.0568 - 31 0.105 - 32 0.0337 - 33 0.0584 - 34 0.000307 - 35 0.00115 - 37 0.00453 - 41 0.017 - 42 0.00269 - 43 0.00115 - 44 0.000384 - 45 0.00261 - 46 0.00491 - 47 0.00898 - - 28 20589 35 0 - 0 0.00481 - 1 4.86e-05 - 2 0.028 - 3 4.86e-05 - 4 0.000777 - 7 0.0016 - 8 0.000194 - 10 9.71e-05 - 12 0.243 - 13 0.00612 - 14 0.00937 - 15 0.00393 - 16 4.86e-05 - 18 0.000146 - 19 0.00976 - 21 0.109 - 22 0.000486 - 26 0.55 - 27 9.71e-05 - 28 0.00525 - 29 0.00277 - 30 0.000486 - 31 0.000631 - 32 0.00068 - 33 0.000826 - 34 0.000194 - 35 0.000437 - 40 0.000291 - 41 0.00641 - 42 0.00175 - 43 0.000291 - 44 0.000631 - 45 0.00665 - 46 0.000243 - 47 0.005 - - 29 21355 36 0 - 0 0.00445 - 1 0.00103 - 2 0.0322 - 3 0.00609 - 4 0.00393 - 7 0.00103 - 8 0.00206 - 9 0.000187 - 10 4.68e-05 - 12 0.000281 - 13 0.199 - 14 0.138 - 15 0.234 - 16 0.00805 - 18 0.00183 - 19 0.135 - 21 0.0543 - 22 0.000328 - 23 4.68e-05 - 26 0.00014 - 28 9.37e-05 - 29 0.000328 - 30 0.000468 - 31 0.000937 - 32 4.68e-05 - 33 0.00014 - 34 0.0318 - 35 0.0212 - 37 9.37e-05 - 41 0.0896 - 42 0.00244 - 43 0.0015 - 44 4.68e-05 - 45 0.00173 - 46 0.0271 - 47 0.000656 - - 30 10957 33 0 - 0 0.273 - 2 0.0305 - 3 0.00292 - 4 0.0021 - 7 0.234 - 8 0.00301 - 9 9.13e-05 - 10 0.000365 - 13 0.0703 - 14 0.0698 - 15 0.0111 - 16 0.000639 - 18 0.00119 - 19 0.00347 - 20 0.00073 - 21 0.0539 - 22 0.000365 - 24 0.00374 - 26 0.0118 - 28 0.0189 - 29 0.0174 - 30 0.00347 - 31 0.00538 - 32 0.00429 - 33 0.00484 - 37 0.00164 - 41 0.129 - 42 0.00538 - 43 0.000274 - 44 0.000548 - 45 0.00657 - 46 0.0042 - 47 0.0252 - - 31 14933 38 0 - 0 0.613 - 1 0.0214 - 2 0.0127 - 3 0.00469 - 4 0.00449 - 6 6.7e-05 - 7 0.0115 - 8 0.000335 - 9 0.000134 - 10 0.000134 - 12 0.000335 - 13 0.088 - 14 0.0805 - 15 0.00429 - 16 0.000402 - 18 0.000268 - 19 0.00194 - 21 0.0765 - 22 0.000603 - 23 0.000268 - 26 0.000134 - 28 0.00221 - 29 0.00221 - 30 0.000804 - 31 0.00107 - 32 0.000804 - 33 0.00127 - 34 0.000268 - 35 0.000134 - 37 0.00114 - 40 6.7e-05 - 41 0.0488 - 42 0.00248 - 43 0.000469 - 44 0.00154 - 45 0.00254 - 46 0.00234 - 47 0.00984 - - 32 5292 30 0 - 2 0.0238 - 3 0.0017 - 4 0.0136 - 7 0.000945 - 8 0.0034 - 9 0.000378 - 10 0.00227 - 12 0.000189 - 13 0.034 - 14 0.41 - 15 0.0259 - 16 0.0108 - 18 0.000756 - 19 0.254 - 21 0.0752 - 22 0.000189 - 29 0.000189 - 30 0.000378 - 31 0.00189 - 32 0.000378 - 33 0.000378 - 34 0.058 - 35 0.0421 - 37 0.000189 - 41 0.0291 - 42 0.0034 - 43 0.00265 - 45 0.00246 - 46 0.00151 - 47 0.000189 - - 33 9413 30 0 - 2 0.0278 - 3 0.00287 - 4 0.017 - 5 0.000637 - 6 0.000425 - 7 0.00181 - 8 0.0017 - 9 0.000106 - 13 0.212 - 14 0.0119 - 15 0.166 - 16 0.00255 - 18 0.000956 - 19 0.196 - 21 0.0667 - 22 0.000212 - 25 0.000319 - 28 0.000106 - 29 0.000637 - 30 0.000425 - 31 0.000531 - 32 0.000319 - 34 0.073 - 35 0.0276 - 41 0.0882 - 42 0.00351 - 43 0.00287 - 45 0.00499 - 46 0.0859 - 47 0.00382 - - 41 7 4 0 - 0 0.143 - 2 0.571 - 12 0.143 - 21 0.143 - - 42 5 1 0 - 47 1 - - 45 114 15 0 - 0 0.202 - 2 0.0263 - 4 0.00877 - 6 0.00877 - 7 0.0351 - 12 0.0965 - 13 0.14 - 14 0.0614 - 15 0.0263 - 19 0.0702 - 21 0.0439 - 26 0.202 - 28 0.0175 - 35 0.00877 - 41 0.0526 - - 48 40 3 0 - 2 0.925 - 21 0.025 - 41 0.05 - - 49 1672 33 0 - 0 0.197 - 1 0.00538 - 2 0.145 - 3 0.00359 - 4 0.00718 - 7 0.0317 - 8 0.0012 - 10 0.0012 - 12 0.0514 - 13 0.106 - 14 0.103 - 15 0.0532 - 16 0.00239 - 18 0.000598 - 19 0.0371 - 21 0.0568 - 26 0.0359 - 28 0.0012 - 29 0.00239 - 30 0.0012 - 31 0.0012 - 32 0.000598 - 33 0.000598 - 34 0.0179 - 35 0.0102 - 37 0.0012 - 41 0.101 - 42 0.00538 - 43 0.000598 - 44 0.00179 - 45 0.00478 - 46 0.00299 - 47 0.00897 - - 50 8 7 0 - 0 0.125 - 13 0.125 - 14 0.125 - 15 0.25 - 30 0.125 - 33 0.125 - 41 0.125 - - 53 1 1 0 - 42 1 - - 55 113 11 0 - 0 0.0619 - 2 0.708 - 7 0.0177 - 14 0.0177 - 15 0.00885 - 19 0.0177 - 21 0.00885 - 26 0.0177 - 40 0.00885 - 41 0.106 - 42 0.0265 - - 57 77 6 0 - 0 0.234 - 2 0.558 - 12 0.039 - 15 0.013 - 21 0.039 - 41 0.117 - - 58 8 4 0 - 2 0.625 - 12 0.125 - 41 0.125 - 42 0.125 - - 60 2 2 0 - 0 0.5 - 2 0.5 - - 62 5 2 0 - 2 0.8 - 15 0.2 - - 64 7 4 0 - 0 0.286 - 2 0.429 - 7 0.143 - 41 0.143 - - 69 3673 34 0 - 0 0.0792 - 1 0.00136 - 2 0.00327 - 3 0.00163 - 4 0.00517 - 5 0.000817 - 7 0.0343 - 8 0.00463 - 10 0.000545 - 12 0.0686 - 13 0.141 - 14 0.107 - 15 0.116 - 16 0.00436 - 18 0.000545 - 19 0.106 - 20 0.000272 - 21 0.0482 - 24 0.000817 - 26 0.1 - 28 0.00327 - 29 0.0049 - 30 0.00218 - 31 0.0049 - 32 0.00218 - 33 0.00272 - 34 0.0302 - 35 0.0166 - 41 0.0803 - 42 0.00762 - 43 0.00191 - 45 0.00871 - 46 0.00299 - 47 0.00681 - - 74 1 1 0 - 47 1 - - 48 42 4 0 - 2 0.881 - 9 0.0238 - 21 0.0476 - 41 0.0476 - - 49 1717 34 19 - 0 0.192 - 1 0.00524 - 2 0.142 - 3 0.00466 - 4 0.00699 - 7 0.0309 - 8 0.00116 - 10 0.00116 - 12 0.0501 - 13 0.104 - 14 0.102 - 15 0.0524 - 16 0.00233 - 18 0.000582 - 19 0.0361 - 21 0.0658 - 22 0.000582 - 26 0.0349 - 28 0.00116 - 29 0.00233 - 30 0.00116 - 31 0.00116 - 32 0.000582 - 33 0.000582 - 34 0.0175 - 35 0.0099 - 37 0.00116 - 41 0.103 - 42 0.00524 - 43 0.000582 - 44 0.00175 - 45 0.0105 - 46 0.00291 - 47 0.00874 - - 0 55 10 0 - 0 0.0364 - 2 0.491 - 7 0.0182 - 12 0.0545 - 13 0.0909 - 15 0.0909 - 19 0.0727 - 21 0.0727 - 35 0.0182 - 41 0.0545 - - 1 6 4 0 - 2 0.333 - 7 0.167 - 13 0.333 - 14 0.167 - - 8 23 9 0 - 0 0.478 - 2 0.0435 - 12 0.0435 - 13 0.0435 - 14 0.13 - 21 0.13 - 29 0.0435 - 41 0.0435 - 47 0.0435 - - 12 15 4 0 - 2 0.733 - 13 0.133 - 14 0.0667 - 21 0.0667 - - 21 3 3 0 - 13 0.333 - 26 0.333 - 41 0.333 - - 26 4 4 0 - 0 0.25 - 2 0.25 - 8 0.25 - 29 0.25 - - 28 218 14 0 - 2 0.156 - 7 0.00459 - 12 0.362 - 13 0.0183 - 14 0.0229 - 15 0.00917 - 19 0.0183 - 21 0.101 - 26 0.261 - 37 0.00459 - 41 0.0183 - 42 0.00459 - 45 0.0138 - 47 0.00459 - - 29 283 14 0 - 0 0.0247 - 2 0.194 - 13 0.184 - 14 0.0954 - 15 0.205 - 16 0.00707 - 19 0.0777 - 21 0.0565 - 34 0.0283 - 35 0.0212 - 41 0.0883 - 43 0.00353 - 45 0.0106 - 46 0.00353 - - 30 218 18 0 - 0 0.216 - 2 0.078 - 4 0.00459 - 7 0.188 - 13 0.0872 - 14 0.147 - 15 0.0138 - 19 0.0138 - 21 0.0459 - 26 0.00459 - 29 0.00459 - 30 0.00459 - 31 0.00917 - 32 0.00459 - 41 0.128 - 42 0.0183 - 45 0.00917 - 47 0.0229 - - 31 583 24 0 - 0 0.437 - 1 0.0154 - 2 0.048 - 3 0.0103 - 4 0.0103 - 7 0.00858 - 10 0.00343 - 12 0.00172 - 13 0.0978 - 14 0.11 - 15 0.00515 - 18 0.00172 - 19 0.00343 - 21 0.0703 - 28 0.00343 - 29 0.00172 - 34 0.00172 - 37 0.00172 - 41 0.132 - 42 0.00515 - 44 0.00515 - 45 0.0103 - 46 0.00343 - 47 0.012 - - 32 79 12 0 - 2 0.152 - 4 0.0253 - 13 0.0127 - 14 0.392 - 15 0.038 - 16 0.0127 - 19 0.19 - 21 0.0633 - 34 0.0506 - 35 0.038 - 41 0.0127 - 46 0.0127 - - 33 142 15 0 - 2 0.204 - 4 0.0141 - 7 0.0211 - 13 0.232 - 14 0.0141 - 15 0.106 - 16 0.00704 - 19 0.0704 - 21 0.0352 - 30 0.00704 - 34 0.12 - 35 0.0352 - 41 0.106 - 45 0.0211 - 46 0.00704 - - 41 10 2 0 - 2 0.1 - 41 0.9 - - 45 2 2 0 - 7 0.5 - 21 0.5 - - 46 1 1 0 - 4 1 - - 47 29 9 0 - 0 0.172 - 2 0.345 - 3 0.069 - 12 0.0345 - 14 0.103 - 15 0.0345 - 21 0.103 - 22 0.0345 - 41 0.103 - - 49 11 4 0 - 2 0.545 - 14 0.0909 - 35 0.0909 - 41 0.273 - - 55 6 3 0 - 2 0.5 - 41 0.333 - 42 0.167 - - 69 25 13 0 - 0 0.04 - 2 0.12 - 8 0.04 - 13 0.08 - 14 0.2 - 19 0.08 - 21 0.08 - 26 0.04 - 33 0.04 - 35 0.04 - 41 0.16 - 45 0.04 - 47 0.04 - - 50 13 9 0 - 0 0.0769 - 13 0.154 - 14 0.0769 - 15 0.154 - 30 0.0769 - 31 0.0769 - 32 0.0769 - 33 0.0769 - 41 0.231 - - 53 1 1 0 - 42 1 - - 55 130 17 5 - 0 0.0538 - 2 0.615 - 4 0.00769 - 7 0.0154 - 9 0.00769 - 13 0.00769 - 14 0.0231 - 15 0.00769 - 19 0.0154 - 21 0.0462 - 26 0.0154 - 28 0.00769 - 33 0.00769 - 40 0.00769 - 41 0.131 - 42 0.0231 - 46 0.00769 - - 31 6 2 0 - 0 0.833 - 40 0.167 - - 41 3 3 0 - 15 0.333 - 19 0.333 - 41 0.333 - - 47 89 12 0 - 0 0.0225 - 2 0.652 - 4 0.0112 - 9 0.0112 - 13 0.0112 - 21 0.0449 - 26 0.0112 - 28 0.0112 - 33 0.0112 - 41 0.169 - 42 0.0337 - 46 0.0112 - - 55 4 3 0 - 2 0.5 - 19 0.25 - 26 0.25 - - 62 10 4 0 - 2 0.6 - 7 0.2 - 14 0.1 - 41 0.1 - - 57 96 9 6 - 0 0.188 - 2 0.448 - 3 0.0104 - 8 0.0104 - 12 0.0312 - 13 0.115 - 15 0.0208 - 21 0.0312 - 41 0.146 - - 0 7 1 0 - 2 1 - - 29 7 1 0 - 2 1 - - 41 17 2 0 - 2 0.294 - 41 0.706 - - 47 36 8 0 - 0 0.472 - 2 0.167 - 3 0.0278 - 8 0.0278 - 12 0.0833 - 13 0.167 - 15 0.0278 - 21 0.0278 - - 64 3 2 0 - 13 0.667 - 21 0.333 - - 69 2 2 0 - 13 0.5 - 15 0.5 - - 58 10 6 0 - 2 0.5 - 8 0.1 - 12 0.1 - 28 0.1 - 41 0.1 - 42 0.1 - - 62 16 7 0 - 2 0.25 - 3 0.125 - 4 0.0625 - 13 0.25 - 14 0.188 - 15 0.0625 - 41 0.0625 - - 64 18 10 1 - 0 0.111 - 2 0.167 - 3 0.111 - 7 0.0556 - 8 0.0556 - 9 0.0556 - 13 0.111 - 14 0.0556 - 16 0.0556 - 41 0.222 - - 41 4 2 0 - 2 0.75 - 41 0.25 - - 69 3772 35 0 - 0 0.0771 - 1 0.00133 - 2 0.00663 - 3 0.00159 - 4 0.0061 - 5 0.000795 - 7 0.0334 - 8 0.00477 - 10 0.00053 - 12 0.0668 - 13 0.141 - 14 0.104 - 15 0.114 - 16 0.00424 - 18 0.00133 - 19 0.103 - 20 0.000265 - 21 0.0586 - 23 0.000265 - 24 0.000795 - 26 0.0978 - 28 0.00318 - 29 0.00477 - 30 0.00212 - 31 0.00477 - 32 0.00212 - 33 0.00265 - 34 0.0294 - 35 0.0162 - 41 0.0798 - 42 0.00769 - 43 0.00186 - 45 0.0109 - 46 0.00292 - 47 0.00663 - - 74 1 1 0 - 47 1 - -70 128 19 3 - 0 0.0156 - 2 0.0703 - 7 0.156 - 8 0.0234 - 13 0.0312 - 19 0.0156 - 21 0.0547 - 24 0.0312 - 28 0.172 - 29 0.0312 - 30 0.0312 - 31 0.0312 - 32 0.0781 - 33 0.109 - 37 0.00781 - 41 0.0156 - 42 0.0312 - 45 0.0312 - 47 0.0625 - - 8 3 3 0 - 2 0.333 - 21 0.333 - 37 0.333 - - 21 7 6 0 - 2 0.143 - 28 0.286 - 29 0.143 - 33 0.143 - 42 0.143 - 47 0.143 - - 47 59 17 1 - 0 0.0169 - 2 0.0678 - 7 0.169 - 8 0.0169 - 13 0.0339 - 19 0.0169 - 24 0.0339 - 28 0.186 - 29 0.0339 - 30 0.0339 - 31 0.0339 - 32 0.0847 - 33 0.119 - 41 0.0169 - 42 0.0339 - 45 0.0339 - 47 0.0678 - - 21 7 6 0 - 2 0.143 - 28 0.286 - 29 0.143 - 33 0.143 - 42 0.143 - 47 0.143 - -71 4170 32 7 - 0 0.0254 - 2 0.0451 - 3 0.0139 - 4 0.00048 - 7 0.0686 - 8 0.0206 - 9 0.000959 - 10 0.00192 - 13 0.158 - 14 0.0652 - 15 0.0254 - 18 0.00048 - 19 0.00959 - 21 0.0415 - 22 0.00048 - 24 0.00624 - 26 0.00288 - 28 0.058 - 29 0.0177 - 30 0.012 - 31 0.0197 - 32 0.011 - 33 0.0173 - 34 0.00024 - 37 0.00168 - 40 0.000959 - 41 0.194 - 42 0.0149 - 44 0.00192 - 45 0.0367 - 46 0.011 - 47 0.116 - - 2 6 1 0 - 37 1 - - 7 30 8 0 - 0 0.0333 - 3 0.0667 - 13 0.4 - 14 0.2 - 15 0.133 - 21 0.0667 - 41 0.0667 - 46 0.0333 - - 13 1 1 0 - 34 1 - - 21 24 14 0 - 0 0.0417 - 2 0.0833 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0833 - 24 0.0833 - 28 0.125 - 31 0.0833 - 40 0.0417 - 41 0.0417 - 42 0.0833 - 45 0.0417 - 47 0.0833 - - 37 2036 31 1 - 0 0.025 - 2 0.0462 - 3 0.0133 - 4 0.000491 - 7 0.0693 - 8 0.0192 - 9 0.000982 - 10 0.00196 - 13 0.155 - 14 0.0624 - 15 0.0241 - 18 0.000491 - 19 0.00982 - 21 0.0486 - 22 0.000491 - 24 0.0054 - 26 0.00295 - 28 0.057 - 29 0.0182 - 30 0.0123 - 31 0.0192 - 32 0.0113 - 33 0.0172 - 37 0.000491 - 40 0.000491 - 41 0.196 - 42 0.0142 - 44 0.00196 - 45 0.0373 - 46 0.0108 - 47 0.117 - - 2 6 3 0 - 21 0.333 - 28 0.167 - 30 0.5 - - 47 2063 30 3 - 0 0.0257 - 2 0.0441 - 3 0.0141 - 4 0.000485 - 7 0.0693 - 8 0.0208 - 9 0.000969 - 10 0.00194 - 13 0.16 - 14 0.0659 - 15 0.0257 - 18 0.000485 - 19 0.00969 - 21 0.0349 - 22 0.000485 - 24 0.0063 - 26 0.00291 - 28 0.0587 - 29 0.0179 - 30 0.0121 - 31 0.0199 - 32 0.0111 - 33 0.0175 - 40 0.000969 - 41 0.196 - 42 0.015 - 44 0.00194 - 45 0.0368 - 46 0.0111 - 47 0.117 - - 7 30 8 0 - 0 0.0333 - 3 0.0667 - 13 0.4 - 14 0.2 - 15 0.133 - 21 0.0667 - 41 0.0667 - 46 0.0333 - - 21 24 14 0 - 0 0.0417 - 2 0.0833 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0833 - 24 0.0833 - 28 0.125 - 31 0.0833 - 40 0.0417 - 41 0.0417 - 42 0.0833 - 45 0.0417 - 47 0.0833 - - 49 6 5 0 - 2 0.167 - 8 0.333 - 14 0.167 - 28 0.167 - 33 0.167 - - 49 6 5 0 - 2 0.167 - 8 0.333 - 14 0.167 - 28 0.167 - 33 0.167 - -72 14825 39 21 - 0 0.00567 - 1 0.000135 - 2 0.0114 - 3 0.00614 - 4 0.0123 - 5 0.00027 - 6 0.000135 - 7 0.0813 - 8 0.00668 - 9 0.000202 - 10 0.000337 - 13 0.22 - 14 0.173 - 15 0.0205 - 16 0.00378 - 17 0.000135 - 19 0.00256 - 21 0.00621 - 22 0.000135 - 23 0.000135 - 24 0.00243 - 26 0.0058 - 28 0.0188 - 29 0.00351 - 30 0.00513 - 31 0.00351 - 32 0.00445 - 33 0.00391 - 35 6.75e-05 - 36 0.000135 - 37 0.00256 - 40 0.000405 - 41 0.342 - 42 0.0121 - 43 0.00121 - 44 0.00216 - 45 0.0119 - 46 0.0103 - 47 0.0185 - - 3 7 1 0 - 41 1 - - 4 73 16 0 - 2 0.0411 - 3 0.0685 - 7 0.0274 - 13 0.315 - 14 0.0274 - 17 0.0137 - 21 0.0411 - 24 0.0274 - 28 0.0137 - 30 0.0137 - 31 0.0411 - 32 0.0137 - 33 0.0274 - 41 0.274 - 42 0.0274 - 45 0.0274 - - 7 358 17 0 - 2 0.00279 - 3 0.0168 - 4 0.00279 - 6 0.00279 - 8 0.0112 - 9 0.00279 - 10 0.00279 - 13 0.592 - 14 0.291 - 15 0.0223 - 19 0.00559 - 21 0.0112 - 22 0.00279 - 31 0.00279 - 41 0.014 - 42 0.0112 - 46 0.00559 - - 8 33 4 0 - 8 0.0303 - 23 0.0606 - 37 0.848 - 41 0.0606 - - 9 2 1 0 - 8 1 - - 10 5 1 0 - 41 1 - - 13 19 6 0 - 4 0.158 - 8 0.526 - 13 0.105 - 15 0.105 - 35 0.0526 - 41 0.0526 - - 14 19 5 0 - 8 0.789 - 9 0.0526 - 13 0.0526 - 15 0.0526 - 41 0.0526 - - 15 4 3 0 - 2 0.25 - 8 0.5 - 36 0.25 - - 21 17 9 2 - 0 0.0588 - 2 0.0588 - 13 0.0588 - 28 0.0588 - 29 0.0588 - 31 0.0588 - 32 0.118 - 33 0.0588 - 37 0.471 - - 35 5 4 0 - 0 0.2 - 29 0.2 - 32 0.4 - 33 0.2 - - 47 8 1 0 - 37 1 - - 23 2 1 0 - 4 1 - - 34 4214 26 0 - 0 0.00119 - 2 0.00498 - 3 0.00617 - 4 0.0038 - 7 0.0835 - 8 0.00166 - 13 0.245 - 14 0.173 - 15 0.0209 - 16 0.000237 - 19 0.00119 - 21 0.00119 - 26 0.00403 - 28 0.0038 - 29 0.000949 - 30 0.000475 - 31 0.00119 - 32 0.000475 - 33 0.000949 - 41 0.407 - 42 0.0135 - 43 0.00142 - 44 0.00237 - 45 0.00285 - 46 0.014 - 47 0.0038 - - 35 2343 31 0 - 0 0.0149 - 1 0.000427 - 2 0.0201 - 3 0.00299 - 4 0.0282 - 5 0.000854 - 7 0.0973 - 8 0.00683 - 13 0.141 - 14 0.178 - 15 0.023 - 16 0.0111 - 19 0.00469 - 21 0.0145 - 24 0.0064 - 26 0.0107 - 28 0.0405 - 29 0.00683 - 30 0.0141 - 31 0.00512 - 32 0.0102 - 33 0.00598 - 37 0.000427 - 40 0.000854 - 41 0.257 - 42 0.0102 - 43 0.00128 - 44 0.00256 - 45 0.0294 - 46 0.00555 - 47 0.0495 - - 36 159 11 0 - 2 0.0377 - 7 0.0126 - 13 0.145 - 14 0.157 - 16 0.00629 - 28 0.00629 - 32 0.00629 - 41 0.604 - 42 0.00629 - 46 0.0126 - 47 0.00629 - - 37 36 12 1 - 2 0.0556 - 7 0.222 - 8 0.0833 - 13 0.0278 - 19 0.0278 - 21 0.0833 - 28 0.333 - 33 0.0556 - 41 0.0278 - 42 0.0278 - 45 0.0278 - 47 0.0278 - - 21 8 6 0 - 7 0.125 - 8 0.25 - 21 0.125 - 28 0.125 - 33 0.25 - 42 0.125 - - 47 7352 37 14 - 0 0.00571 - 1 0.000136 - 2 0.0114 - 3 0.00598 - 4 0.0112 - 5 0.000272 - 6 0.000136 - 7 0.082 - 8 0.00449 - 9 0.000136 - 10 0.000136 - 13 0.222 - 14 0.174 - 15 0.0204 - 16 0.00381 - 17 0.000136 - 19 0.00258 - 21 0.00558 - 22 0.000136 - 24 0.00245 - 26 0.00585 - 28 0.0189 - 29 0.00354 - 30 0.00517 - 31 0.00354 - 32 0.00449 - 33 0.00394 - 36 0.000136 - 37 0.000136 - 40 0.000408 - 41 0.345 - 42 0.0122 - 43 0.00122 - 44 0.00218 - 45 0.012 - 46 0.0103 - 47 0.0186 - - 3 7 1 0 - 41 1 - - 4 73 16 0 - 2 0.0411 - 3 0.0685 - 7 0.0274 - 13 0.315 - 14 0.0274 - 17 0.0137 - 21 0.0411 - 24 0.0274 - 28 0.0137 - 30 0.0137 - 31 0.0411 - 32 0.0137 - 33 0.0274 - 41 0.274 - 42 0.0274 - 45 0.0274 - - 7 358 17 0 - 2 0.00279 - 3 0.0168 - 4 0.00279 - 6 0.00279 - 8 0.0112 - 9 0.00279 - 10 0.00279 - 13 0.592 - 14 0.291 - 15 0.0223 - 19 0.00559 - 21 0.0112 - 22 0.00279 - 31 0.00279 - 41 0.014 - 42 0.0112 - 46 0.00559 - - 10 5 1 0 - 41 1 - - 15 1 1 0 - 36 1 - - 21 9 8 0 - 0 0.111 - 2 0.111 - 13 0.111 - 28 0.111 - 29 0.111 - 31 0.111 - 32 0.222 - 33 0.111 - - 34 4211 26 0 - 0 0.00119 - 2 0.00499 - 3 0.00617 - 4 0.00356 - 7 0.0836 - 8 0.00166 - 13 0.246 - 14 0.174 - 15 0.0209 - 16 0.000237 - 19 0.00119 - 21 0.000712 - 26 0.00404 - 28 0.0038 - 29 0.00095 - 30 0.000475 - 31 0.00119 - 32 0.000475 - 33 0.00095 - 41 0.407 - 42 0.0135 - 43 0.00142 - 44 0.00237 - 45 0.00285 - 46 0.014 - 47 0.0038 - - 35 2336 31 0 - 0 0.015 - 1 0.000428 - 2 0.0201 - 3 0.003 - 4 0.0283 - 5 0.000856 - 7 0.0976 - 8 0.00642 - 13 0.141 - 14 0.178 - 15 0.0231 - 16 0.0111 - 19 0.00471 - 21 0.012 - 24 0.00642 - 26 0.0107 - 28 0.0407 - 29 0.00685 - 30 0.0141 - 31 0.00514 - 32 0.0103 - 33 0.00599 - 37 0.000428 - 40 0.000856 - 41 0.258 - 42 0.0103 - 43 0.00128 - 44 0.00257 - 45 0.0295 - 46 0.00557 - 47 0.0497 - - 36 159 11 0 - 2 0.0377 - 7 0.0126 - 13 0.145 - 14 0.157 - 16 0.00629 - 28 0.00629 - 32 0.00629 - 41 0.604 - 42 0.00629 - 46 0.0126 - 47 0.00629 - - 37 34 12 0 - 2 0.0588 - 7 0.235 - 8 0.0882 - 13 0.0294 - 19 0.0294 - 21 0.0294 - 28 0.353 - 33 0.0588 - 41 0.0294 - 42 0.0294 - 45 0.0294 - 47 0.0294 - - 55 43 9 0 - 8 0.0233 - 13 0.0233 - 14 0.0233 - 21 0.0233 - 28 0.0233 - 30 0.0233 - 33 0.0465 - 41 0.767 - 47 0.0465 - - 70 20 10 0 - 2 0.05 - 7 0.2 - 8 0.05 - 24 0.05 - 28 0.35 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.05 - 33 0.1 - - 71 7 6 0 - 7 0.143 - 8 0.143 - 14 0.143 - 28 0.286 - 29 0.143 - 31 0.143 - - 72 78 17 0 - 0 0.0128 - 2 0.0128 - 7 0.0769 - 8 0.0128 - 13 0.0513 - 21 0.0128 - 26 0.0128 - 28 0.0385 - 29 0.0385 - 31 0.0256 - 32 0.0256 - 33 0.0256 - 40 0.0128 - 41 0.564 - 42 0.0128 - 45 0.0513 - 47 0.0128 - - 55 44 9 1 - 8 0.0227 - 13 0.0227 - 14 0.0227 - 21 0.0227 - 28 0.0227 - 30 0.0227 - 33 0.0455 - 41 0.773 - 47 0.0455 - - 73 23 2 0 - 21 0.0435 - 41 0.957 - - 70 20 10 0 - 2 0.05 - 7 0.2 - 8 0.05 - 24 0.05 - 28 0.35 - 29 0.05 - 30 0.05 - 31 0.05 - 32 0.05 - 33 0.1 - - 71 7 6 0 - 7 0.143 - 8 0.143 - 14 0.143 - 28 0.286 - 29 0.143 - 31 0.143 - - 72 78 17 0 - 0 0.0128 - 2 0.0128 - 7 0.0769 - 8 0.0128 - 13 0.0513 - 21 0.0128 - 26 0.0128 - 28 0.0385 - 29 0.0385 - 31 0.0256 - 32 0.0256 - 33 0.0256 - 40 0.0128 - 41 0.564 - 42 0.0128 - 45 0.0513 - 47 0.0128 - - 73 23 5 0 - 3 0.13 - 4 0.522 - 8 0.087 - 10 0.13 - 13 0.13 - -73 782 20 2 - 0 0.00256 - 2 0.0128 - 3 0.0384 - 4 0.0767 - 8 0.0205 - 10 0.0205 - 13 0.371 - 14 0.115 - 15 0.0281 - 16 0.00256 - 28 0.0153 - 30 0.00512 - 31 0.00256 - 33 0.00512 - 41 0.23 - 42 0.0153 - 44 0.00256 - 45 0.00767 - 46 0.023 - 47 0.00512 - - 26 18 7 0 - 8 0.0556 - 13 0.444 - 14 0.0556 - 28 0.0556 - 31 0.0556 - 41 0.278 - 46 0.0556 - - 47 391 20 1 - 0 0.00256 - 2 0.0128 - 3 0.0384 - 4 0.0767 - 8 0.0205 - 10 0.0205 - 13 0.371 - 14 0.115 - 15 0.0281 - 16 0.00256 - 28 0.0153 - 30 0.00512 - 31 0.00256 - 33 0.00512 - 41 0.23 - 42 0.0153 - 44 0.00256 - 45 0.00767 - 46 0.023 - 47 0.00512 - - 26 18 7 0 - 8 0.0556 - 13 0.444 - 14 0.0556 - 28 0.0556 - 31 0.0556 - 41 0.278 - 46 0.0556 - -74 443 33 26 - 0 0.0113 - 2 0.0113 - 3 0.0361 - 4 0.0971 - 5 0.00451 - 6 0.00677 - 7 0.0474 - 8 0.00677 - 9 0.00677 - 12 0.00451 - 13 0.0564 - 14 0.0271 - 15 0.0113 - 16 0.00226 - 18 0.00451 - 19 0.00903 - 21 0.0113 - 22 0.00226 - 24 0.00451 - 25 0.00677 - 26 0.00226 - 28 0.00903 - 29 0.0226 - 30 0.00451 - 31 0.00903 - 32 0.00451 - 33 0.00226 - 40 0.00226 - 41 0.147 - 42 0.0271 - 44 0.00451 - 45 0.0406 - 47 0.357 - - 0 2 2 0 - 18 0.5 - 28 0.5 - - 2 5 3 0 - 13 0.2 - 14 0.4 - 47 0.4 - - 4 47 10 0 - 0 0.0426 - 2 0.0213 - 4 0.0213 - 7 0.149 - 13 0.0213 - 32 0.0213 - 41 0.447 - 42 0.0638 - 45 0.0851 - 47 0.128 - - 6 5 4 0 - 6 0.4 - 13 0.2 - 41 0.2 - 45 0.2 - - 7 11 9 0 - 2 0.0909 - 3 0.182 - 4 0.0909 - 13 0.0909 - 14 0.182 - 19 0.0909 - 28 0.0909 - 29 0.0909 - 41 0.0909 - - 8 4 4 0 - 14 0.25 - 22 0.25 - 26 0.25 - 44 0.25 - - 9 26 1 0 - 4 1 - - 12 1 1 0 - 12 1 - - 13 5 4 0 - 6 0.2 - 9 0.4 - 41 0.2 - 47 0.2 - - 14 4 3 0 - 2 0.25 - 8 0.5 - 9 0.25 - - 15 7 6 0 - 7 0.143 - 15 0.286 - 16 0.143 - 40 0.143 - 41 0.143 - 47 0.143 - - 21 3 3 0 - 4 0.333 - 7 0.333 - 13 0.333 - - 22 11 1 0 - 4 1 - - 25 39 4 0 - 3 0.0513 - 13 0.0513 - 14 0.0256 - 47 0.872 - - 26 6 5 0 - 3 0.333 - 7 0.167 - 13 0.167 - 14 0.167 - 29 0.167 - - 40 1 1 0 - 8 1 - - 41 9 4 0 - 0 0.111 - 13 0.333 - 21 0.444 - 33 0.111 - - 42 4 2 0 - 13 0.25 - 25 0.75 - - 47 174 22 15 - 0 0.0115 - 2 0.0115 - 3 0.046 - 4 0.0115 - 5 0.00575 - 7 0.0517 - 12 0.00575 - 13 0.0517 - 14 0.0287 - 18 0.00575 - 19 0.0115 - 24 0.00575 - 28 0.0115 - 29 0.0287 - 30 0.00575 - 31 0.0115 - 32 0.00575 - 41 0.161 - 42 0.023 - 44 0.00575 - 45 0.046 - 47 0.454 - - 0 2 2 0 - 18 0.5 - 28 0.5 - - 4 47 10 0 - 0 0.0426 - 2 0.0213 - 4 0.0213 - 7 0.149 - 13 0.0213 - 32 0.0213 - 41 0.447 - 42 0.0638 - 45 0.0851 - 47 0.128 - - 6 2 2 0 - 13 0.5 - 45 0.5 - - 7 10 9 0 - 2 0.1 - 3 0.2 - 4 0.1 - 13 0.1 - 14 0.1 - 19 0.1 - 28 0.1 - 29 0.1 - 41 0.1 - - 8 2 2 0 - 14 0.5 - 44 0.5 - - 12 1 1 0 - 12 1 - - 21 2 2 0 - 7 0.5 - 13 0.5 - - 25 39 4 0 - 3 0.0513 - 13 0.0513 - 14 0.0256 - 47 0.872 - - 26 5 4 0 - 3 0.4 - 13 0.2 - 14 0.2 - 29 0.2 - - 49 7 3 0 - 31 0.143 - 45 0.143 - 47 0.714 - - 55 15 7 0 - 3 0.0667 - 19 0.0667 - 29 0.133 - 31 0.0667 - 41 0.133 - 45 0.0667 - 47 0.467 - - 57 5 4 0 - 3 0.2 - 13 0.4 - 24 0.2 - 30 0.2 - - 64 2 2 0 - 7 0.5 - 42 0.5 - - 69 1 1 0 - 5 1 - - 74 19 3 0 - 41 0.0526 - 45 0.0526 - 47 0.895 - - 49 7 3 0 - 31 0.143 - 45 0.143 - 47 0.714 - - 55 25 12 0 - 3 0.04 - 7 0.04 - 13 0.04 - 15 0.08 - 19 0.04 - 21 0.04 - 29 0.08 - 31 0.04 - 41 0.2 - 42 0.04 - 45 0.08 - 47 0.28 - - 57 5 4 0 - 3 0.2 - 13 0.4 - 24 0.2 - 30 0.2 - - 62 3 3 0 - 29 0.333 - 42 0.333 - 47 0.333 - - 64 5 4 0 - 7 0.2 - 13 0.2 - 41 0.4 - 42 0.2 - - 69 2 2 0 - 5 0.5 - 42 0.5 - - 74 23 3 0 - 41 0.174 - 45 0.087 - 47 0.739 - diff --git a/samples/G-code/rm.g b/samples/G-code/rm.g deleted file mode 100644 index 89c5aa24..00000000 --- a/samples/G-code/rm.g +++ /dev/null @@ -1,29735 +0,0 @@ -48 34015 42 38 - 0 0.0085 - 2 0.0361 - 3 0.0052 - 4 0.00714 - 5 0.000206 - 6 0.000147 - 7 0.166 - 8 0.0349 - 9 0.00138 - 10 5.88e-05 - 12 0.00218 - 13 0.166 - 14 0.0529 - 15 0.0215 - 16 0.000529 - 17 0.000176 - 18 0.000118 - 19 0.00285 - 20 0.000353 - 21 0.0147 - 22 0.00171 - 23 0.000441 - 24 0.000353 - 26 0.0645 - 28 0.000147 - 29 0.0052 - 30 0.00409 - 31 0.003 - 32 0.00171 - 33 0.000823 - 34 0.0005 - 35 0.00047 - 37 0.00318 - 39 0.00173 - 40 0.223 - 41 0.136 - 42 0.0157 - 43 0.00247 - 44 0.00326 - 45 0.00173 - 46 0.00808 - 47 0.001 - - 0 6 4 0 - 21 0.167 - 30 0.167 - 40 0.333 - 41 0.333 - - 2 252 19 5 - 0 0.00397 - 3 0.0357 - 4 0.0238 - 7 0.0159 - 8 0.206 - 9 0.0437 - 10 0.00794 - 13 0.0556 - 14 0.00397 - 15 0.0119 - 21 0.341 - 22 0.0714 - 23 0.0516 - 29 0.0119 - 30 0.0238 - 31 0.0357 - 39 0.0159 - 41 0.0119 - 45 0.0278 - - 8 29 7 0 - 4 0.103 - 13 0.241 - 14 0.0345 - 21 0.138 - 29 0.0345 - 30 0.172 - 31 0.276 - - 41 42 10 0 - 3 0.0714 - 4 0.0238 - 7 0.0476 - 8 0.19 - 9 0.0476 - 10 0.0238 - 13 0.0238 - 21 0.452 - 29 0.0238 - 39 0.0952 - - 42 4 4 0 - 8 0.25 - 10 0.25 - 13 0.25 - 23 0.25 - - 46 4 1 0 - 45 1 - - 48 170 15 0 - 0 0.00588 - 3 0.0353 - 4 0.0118 - 7 0.0118 - 8 0.253 - 9 0.0529 - 13 0.0294 - 15 0.0176 - 21 0.365 - 22 0.106 - 23 0.0647 - 29 0.00588 - 31 0.00588 - 41 0.0176 - 45 0.0176 - - 3 192 10 5 - 3 0.00521 - 4 0.0104 - 7 0.0104 - 8 0.13 - 13 0.703 - 14 0.0573 - 15 0.0521 - 41 0.0156 - 43 0.0104 - 44 0.00521 - - 2 1 1 0 - 43 1 - - 3 19 5 0 - 8 0.105 - 13 0.421 - 14 0.105 - 15 0.263 - 41 0.105 - - 38 1 1 0 - 44 1 - - 39 155 8 0 - 3 0.00645 - 4 0.0129 - 8 0.142 - 13 0.748 - 14 0.0452 - 15 0.0323 - 41 0.00645 - 43 0.00645 - - 47 6 2 0 - 7 0.333 - 13 0.667 - - 4 32 7 1 - 8 0.312 - 13 0.438 - 14 0.0625 - 15 0.0312 - 39 0.0938 - 41 0.0312 - 42 0.0312 - - 47 5 3 0 - 39 0.6 - 41 0.2 - 42 0.2 - - 6 10 6 0 - 7 0.1 - 8 0.1 - 13 0.4 - 40 0.2 - 44 0.1 - 46 0.1 - - 7 50 13 2 - 2 0.04 - 3 0.02 - 7 0.32 - 8 0.02 - 9 0.02 - 13 0.04 - 14 0.04 - 21 0.18 - 26 0.1 - 30 0.02 - 31 0.02 - 40 0.14 - 41 0.04 - - 41 3 2 0 - 8 0.333 - 21 0.667 - - 47 36 10 0 - 2 0.0278 - 3 0.0278 - 7 0.389 - 9 0.0278 - 14 0.0556 - 21 0.111 - 26 0.139 - 30 0.0278 - 40 0.139 - 41 0.0556 - - 8 9595 38 23 - 0 0.00563 - 2 0.0308 - 3 0.0112 - 4 0.00834 - 5 0.000417 - 6 0.000104 - 7 0.235 - 8 0.0211 - 9 0.000208 - 12 0.00104 - 13 0.116 - 14 0.0552 - 15 0.0311 - 16 0.000521 - 19 0.00584 - 20 0.00073 - 21 0.0174 - 22 0.000521 - 24 0.000208 - 26 0.161 - 28 0.000104 - 29 0.000625 - 30 0.00396 - 31 0.00177 - 32 0.000208 - 33 0.000521 - 34 0.000625 - 35 0.000938 - 37 0.00427 - 39 0.00198 - 40 0.132 - 41 0.117 - 42 0.0148 - 43 0.00146 - 44 0.00208 - 45 0.00188 - 46 0.0127 - 47 0.000104 - - 2 518 18 0 - 0 0.00193 - 2 0.00965 - 7 0.0328 - 8 0.029 - 12 0.00193 - 13 0.342 - 14 0.322 - 15 0.00772 - 16 0.00386 - 19 0.00193 - 21 0.00579 - 26 0.0212 - 40 0.0927 - 41 0.0907 - 42 0.0116 - 43 0.00193 - 45 0.00579 - 46 0.0174 - - 3 34 6 0 - 8 0.0588 - 13 0.618 - 14 0.206 - 40 0.0294 - 41 0.0294 - 44 0.0588 - - 4 11 7 0 - 7 0.273 - 8 0.0909 - 13 0.182 - 14 0.0909 - 15 0.0909 - 21 0.0909 - 41 0.182 - - 7 20 7 0 - 7 0.15 - 8 0.05 - 13 0.1 - 14 0.35 - 15 0.05 - 40 0.2 - 41 0.1 - - 8 227 11 0 - 0 0.00441 - 2 0.0132 - 7 0.00441 - 8 0.0793 - 13 0.498 - 14 0.313 - 15 0.0529 - 30 0.00441 - 39 0.00441 - 40 0.00441 - 41 0.022 - - 9 15 3 0 - 2 0.0667 - 13 0.4 - 14 0.533 - - 10 29 4 0 - 8 0.069 - 13 0.621 - 14 0.276 - 41 0.0345 - - 13 23 7 0 - 2 0.13 - 7 0.304 - 8 0.174 - 13 0.087 - 14 0.087 - 40 0.087 - 41 0.13 - - 14 2 1 0 - 41 1 - - 15 54 8 0 - 8 0.111 - 13 0.259 - 14 0.037 - 15 0.519 - 16 0.0185 - 40 0.0185 - 41 0.0185 - 45 0.0185 - - 21 1945 28 0 - 0 0.00463 - 2 0.0221 - 3 0.0072 - 4 0.0118 - 7 0.217 - 8 0.0411 - 9 0.000514 - 13 0.202 - 14 0.074 - 15 0.0226 - 19 0.00308 - 21 0.00977 - 26 0.0833 - 28 0.000514 - 30 0.00463 - 31 0.000514 - 33 0.000514 - 34 0.000514 - 35 0.00103 - 37 0.00411 - 39 0.00103 - 40 0.128 - 41 0.116 - 42 0.0165 - 43 0.00206 - 44 0.00257 - 45 0.00206 - 46 0.0211 - - 22 423 21 0 - 0 0.00946 - 2 0.0402 - 3 0.00473 - 4 0.00946 - 7 0.229 - 8 0.0402 - 13 0.196 - 14 0.0757 - 15 0.00946 - 16 0.00236 - 19 0.00236 - 21 0.00473 - 26 0.13 - 30 0.00236 - 37 0.00709 - 39 0.00473 - 40 0.109 - 41 0.0969 - 42 0.0118 - 45 0.00236 - 46 0.0118 - - 23 263 15 0 - 0 0.0076 - 2 0.0114 - 7 0.076 - 8 0.0875 - 12 0.0038 - 13 0.441 - 14 0.205 - 15 0.0266 - 19 0.0038 - 26 0.0418 - 31 0.0114 - 40 0.0152 - 41 0.0532 - 42 0.0114 - 45 0.0038 - - 26 10 4 0 - 8 0.1 - 13 0.6 - 14 0.1 - 15 0.2 - - 37 1 1 0 - 19 1 - - 39 62 6 0 - 8 0.0968 - 13 0.742 - 14 0.0161 - 15 0.0161 - 31 0.0161 - 41 0.113 - - 41 59 8 0 - 2 0.0339 - 13 0.525 - 14 0.0678 - 15 0.288 - 16 0.0169 - 40 0.0169 - 41 0.0339 - 45 0.0169 - - 45 44 8 0 - 2 0.0227 - 7 0.0227 - 13 0.0455 - 21 0.0227 - 40 0.159 - 41 0.0455 - 42 0.0227 - 46 0.659 - - 47 5604 35 0 - 0 0.00625 - 2 0.0373 - 3 0.0162 - 4 0.00946 - 5 0.000714 - 7 0.294 - 8 0.00428 - 9 0.000178 - 12 0.00143 - 13 0.0121 - 14 0.00178 - 15 0.0316 - 19 0.00821 - 20 0.00125 - 21 0.0244 - 22 0.000892 - 24 0.000357 - 26 0.231 - 29 0.000892 - 30 0.00464 - 31 0.00214 - 32 0.000178 - 33 0.000714 - 34 0.000892 - 35 0.00125 - 37 0.00482 - 39 0.0025 - 40 0.155 - 41 0.118 - 42 0.0162 - 43 0.00161 - 44 0.00214 - 45 0.00125 - 46 0.00642 - 47 0.000178 - - 49 92 12 0 - 0 0.0109 - 2 0.0109 - 6 0.0109 - 7 0.25 - 8 0.0217 - 13 0.141 - 14 0.0761 - 26 0.141 - 40 0.152 - 41 0.141 - 42 0.0217 - 46 0.0217 - - 50 4 2 0 - 2 0.25 - 14 0.75 - - 55 141 13 0 - 0 0.00709 - 2 0.0496 - 7 0.0638 - 13 0.00709 - 21 0.0213 - 29 0.00709 - 30 0.00709 - 32 0.00709 - 37 0.0213 - 40 0.135 - 41 0.652 - 42 0.0142 - 44 0.00709 - - 60 4 2 0 - 13 0.75 - 40 0.25 - - 9 829 25 8 - 0 0.00362 - 2 0.0338 - 3 0.00362 - 4 0.00362 - 7 0.422 - 8 0.0169 - 12 0.00241 - 13 0.171 - 14 0.0627 - 15 0.0109 - 17 0.00121 - 21 0.00965 - 24 0.00483 - 26 0.0627 - 29 0.00241 - 30 0.00121 - 31 0.00121 - 32 0.00241 - 37 0.00241 - 40 0.0953 - 41 0.0724 - 42 0.00844 - 43 0.00121 - 46 0.00241 - 47 0.00121 - - 2 36 12 0 - 2 0.0278 - 7 0.111 - 8 0.0556 - 13 0.167 - 14 0.25 - 15 0.0556 - 21 0.0278 - 26 0.0556 - 40 0.111 - 41 0.0556 - 42 0.0556 - 46 0.0278 - - 4 5 2 0 - 13 0.6 - 14 0.4 - - 8 9 3 0 - 2 0.222 - 13 0.556 - 14 0.222 - - 21 279 14 0 - 2 0.00717 - 3 0.0108 - 4 0.0108 - 7 0.287 - 8 0.0358 - 13 0.348 - 14 0.0932 - 15 0.0179 - 26 0.0358 - 40 0.0824 - 41 0.0573 - 42 0.00717 - 43 0.00358 - 46 0.00358 - - 47 383 20 0 - 0 0.00261 - 2 0.0601 - 7 0.517 - 8 0.00261 - 12 0.00522 - 13 0.0261 - 14 0.00261 - 15 0.00261 - 17 0.00261 - 21 0.0183 - 24 0.0104 - 26 0.102 - 29 0.00522 - 30 0.00261 - 31 0.00261 - 32 0.00522 - 37 0.00522 - 40 0.123 - 41 0.0966 - 42 0.00783 - - 49 3 2 0 - 13 0.333 - 14 0.667 - - 55 96 9 0 - 0 0.0208 - 7 0.656 - 8 0.0104 - 13 0.156 - 14 0.0625 - 26 0.0104 - 40 0.0417 - 41 0.0312 - 47 0.0104 - - 60 7 6 0 - 7 0.143 - 13 0.143 - 14 0.286 - 15 0.143 - 40 0.143 - 41 0.143 - - 10 68 16 4 - 2 0.132 - 4 0.0294 - 7 0.103 - 8 0.0441 - 13 0.294 - 14 0.0147 - 15 0.0147 - 21 0.0147 - 30 0.0441 - 31 0.0294 - 37 0.0147 - 39 0.0147 - 40 0.0147 - 41 0.191 - 42 0.0294 - 46 0.0147 - - 4 2 2 0 - 2 0.5 - 14 0.5 - - 8 12 3 0 - 8 0.167 - 13 0.75 - 41 0.0833 - - 21 12 5 0 - 7 0.0833 - 8 0.0833 - 13 0.417 - 41 0.333 - 46 0.0833 - - 47 39 13 0 - 2 0.205 - 4 0.0513 - 7 0.154 - 13 0.0769 - 15 0.0256 - 21 0.0256 - 30 0.0769 - 31 0.0513 - 37 0.0256 - 39 0.0256 - 40 0.0256 - 41 0.205 - 42 0.0513 - - 13 1034 21 11 - 0 0.0029 - 2 0.00774 - 4 0.00193 - 7 0.0338 - 8 0.088 - 9 0.00677 - 12 0.000967 - 13 0.632 - 14 0.147 - 15 0.0126 - 21 0.000967 - 26 0.0106 - 29 0.000967 - 30 0.00387 - 31 0.00677 - 33 0.000967 - 40 0.0106 - 41 0.0155 - 42 0.000967 - 44 0.0087 - 46 0.00677 - - 2 23 5 0 - 7 0.0435 - 13 0.304 - 14 0.522 - 40 0.0435 - 41 0.087 - - 3 766 12 0 - 2 0.00392 - 8 0.0914 - 9 0.00261 - 13 0.77 - 14 0.106 - 15 0.0117 - 30 0.00392 - 31 0.00522 - 40 0.00131 - 41 0.00131 - 44 0.00131 - 46 0.00131 - - 8 37 10 0 - 0 0.0811 - 2 0.0811 - 7 0.108 - 8 0.027 - 13 0.27 - 14 0.0811 - 15 0.027 - 41 0.135 - 44 0.0811 - 46 0.108 - - 9 7 5 0 - 7 0.286 - 8 0.143 - 14 0.143 - 26 0.143 - 41 0.286 - - 10 2 2 0 - 7 0.5 - 8 0.5 - - 21 7 4 0 - 7 0.429 - 14 0.286 - 40 0.143 - 44 0.143 - - 45 2 1 0 - 46 1 - - 47 48 11 0 - 2 0.0208 - 4 0.0417 - 7 0.396 - 12 0.0208 - 15 0.0417 - 26 0.188 - 30 0.0208 - 31 0.0208 - 40 0.104 - 41 0.125 - 42 0.0208 - - 49 2 2 0 - 26 0.5 - 40 0.5 - - 55 1 1 0 - 40 1 - - 60 117 12 0 - 7 0.0171 - 8 0.154 - 9 0.0427 - 13 0.291 - 14 0.41 - 15 0.00855 - 21 0.00855 - 29 0.00855 - 31 0.0171 - 33 0.00855 - 40 0.00855 - 44 0.0256 - - 14 11 8 0 - 8 0.182 - 9 0.0909 - 13 0.0909 - 14 0.0909 - 15 0.0909 - 40 0.0909 - 41 0.182 - 44 0.182 - - 15 45 14 3 - 2 0.0444 - 7 0.178 - 8 0.0444 - 13 0.2 - 14 0.111 - 15 0.178 - 16 0.0444 - 21 0.0222 - 26 0.0444 - 40 0.0444 - 41 0.0222 - 42 0.0222 - 43 0.0222 - 47 0.0222 - - 2 5 3 0 - 14 0.4 - 15 0.4 - 40 0.2 - - 15 19 8 0 - 2 0.0526 - 8 0.105 - 13 0.368 - 14 0.105 - 15 0.211 - 26 0.0526 - 42 0.0526 - 47 0.0526 - - 47 15 8 0 - 2 0.0667 - 7 0.533 - 16 0.0667 - 21 0.0667 - 26 0.0667 - 40 0.0667 - 41 0.0667 - 43 0.0667 - - 21 402 29 7 - 0 0.0199 - 2 0.0199 - 3 0.0249 - 4 0.0896 - 6 0.00249 - 7 0.216 - 8 0.0224 - 9 0.00249 - 12 0.00249 - 13 0.0249 - 14 0.00249 - 15 0.00249 - 17 0.00249 - 18 0.00498 - 19 0.00249 - 20 0.00249 - 21 0.0373 - 22 0.0522 - 26 0.197 - 28 0.00249 - 29 0.00498 - 30 0.0796 - 31 0.00746 - 33 0.00249 - 40 0.097 - 41 0.0547 - 42 0.0174 - 46 0.00249 - 47 0.00249 - - 2 9 4 0 - 8 0.444 - 21 0.333 - 40 0.111 - 41 0.111 - - 8 48 10 0 - 2 0.0208 - 4 0.0208 - 7 0.229 - 13 0.0208 - 15 0.0208 - 21 0.0208 - 26 0.479 - 40 0.0833 - 41 0.0833 - 42 0.0208 - - 21 41 10 0 - 2 0.0244 - 4 0.0244 - 7 0.439 - 8 0.0732 - 13 0.0244 - 21 0.0244 - 26 0.22 - 40 0.0732 - 41 0.0732 - 42 0.0244 - - 23 2 2 0 - 28 0.5 - 40 0.5 - - 41 3 3 0 - 8 0.333 - 21 0.333 - 30 0.333 - - 47 282 27 0 - 0 0.0248 - 2 0.0142 - 3 0.0355 - 4 0.117 - 6 0.00355 - 7 0.188 - 8 0.00355 - 9 0.00355 - 12 0.00355 - 13 0.0248 - 14 0.00355 - 17 0.00355 - 18 0.00709 - 19 0.00355 - 20 0.00355 - 21 0.0284 - 22 0.0745 - 26 0.16 - 29 0.00709 - 30 0.11 - 31 0.00709 - 33 0.00355 - 40 0.0957 - 41 0.0496 - 42 0.0177 - 46 0.00355 - 47 0.00355 - - 55 6 5 0 - 0 0.167 - 2 0.167 - 4 0.167 - 31 0.167 - 40 0.333 - - 22 62 10 2 - 0 0.0161 - 2 0.0323 - 7 0.452 - 8 0.113 - 21 0.0161 - 22 0.0161 - 26 0.0806 - 31 0.0161 - 40 0.161 - 41 0.0968 - - 21 20 7 0 - 7 0.3 - 8 0.3 - 21 0.05 - 26 0.1 - 31 0.05 - 40 0.15 - 41 0.05 - - 47 34 7 0 - 0 0.0294 - 2 0.0588 - 7 0.5 - 22 0.0294 - 26 0.0882 - 40 0.176 - 41 0.118 - - 24 11 5 0 - 7 0.273 - 21 0.0909 - 30 0.0909 - 40 0.182 - 41 0.364 - - 26 2 2 0 - 13 0.5 - 21 0.5 - - 28 7 6 0 - 4 0.143 - 7 0.286 - 13 0.143 - 19 0.143 - 42 0.143 - 46 0.143 - - 29 12 5 1 - 7 0.167 - 8 0.417 - 13 0.25 - 26 0.0833 - 41 0.0833 - - 47 4 3 0 - 7 0.5 - 26 0.25 - 41 0.25 - - 30 83 12 4 - 0 0.0361 - 2 0.012 - 7 0.157 - 8 0.0482 - 13 0.277 - 14 0.0602 - 15 0.0482 - 26 0.0723 - 40 0.169 - 41 0.0964 - 43 0.012 - 46 0.012 - - 21 28 6 0 - 8 0.143 - 13 0.5 - 14 0.0714 - 15 0.107 - 26 0.107 - 41 0.0714 - - 45 1 1 0 - 46 1 - - 47 34 8 0 - 0 0.0588 - 2 0.0294 - 7 0.294 - 13 0.0294 - 26 0.0882 - 40 0.353 - 41 0.118 - 43 0.0294 - - 49 3 3 0 - 0 0.333 - 7 0.333 - 14 0.333 - - 31 741 29 9 - 0 0.0027 - 2 0.0243 - 3 0.0121 - 4 0.0081 - 7 0.192 - 8 0.0715 - 9 0.00135 - 12 0.00135 - 13 0.19 - 14 0.117 - 15 0.0526 - 16 0.00135 - 17 0.00135 - 19 0.0027 - 21 0.00675 - 24 0.0081 - 26 0.101 - 30 0.00135 - 31 0.00135 - 37 0.00135 - 39 0.0162 - 40 0.0931 - 41 0.0607 - 42 0.0054 - 43 0.0027 - 44 0.00135 - 45 0.00675 - 46 0.0135 - 47 0.00135 - - 2 18 7 0 - 0 0.0556 - 7 0.111 - 8 0.0556 - 13 0.222 - 14 0.389 - 40 0.111 - 46 0.0556 - - 7 1 1 0 - 46 1 - - 13 13 6 0 - 2 0.0769 - 8 0.538 - 13 0.154 - 14 0.0769 - 26 0.0769 - 40 0.0769 - - 21 379 22 0 - 2 0.0132 - 3 0.0132 - 7 0.0633 - 8 0.106 - 9 0.00264 - 13 0.322 - 14 0.201 - 15 0.095 - 16 0.00264 - 21 0.00528 - 24 0.00792 - 26 0.0343 - 30 0.00264 - 31 0.00264 - 37 0.00264 - 39 0.029 - 40 0.0475 - 41 0.0237 - 42 0.00528 - 43 0.00528 - 45 0.0106 - 46 0.00528 - - 22 17 7 0 - 2 0.118 - 7 0.471 - 13 0.0588 - 14 0.0588 - 40 0.118 - 41 0.118 - 46 0.0588 - - 23 8 6 0 - 2 0.25 - 13 0.25 - 14 0.125 - 24 0.125 - 40 0.125 - 41 0.125 - - 47 268 22 0 - 0 0.00373 - 2 0.0299 - 3 0.0112 - 4 0.0224 - 7 0.358 - 8 0.00373 - 12 0.00373 - 13 0.00746 - 15 0.00746 - 17 0.00373 - 19 0.00746 - 21 0.0112 - 24 0.00746 - 26 0.224 - 39 0.00373 - 40 0.153 - 41 0.112 - 42 0.00373 - 44 0.00373 - 45 0.00373 - 46 0.0149 - 47 0.00373 - - 49 27 11 0 - 3 0.037 - 7 0.333 - 8 0.148 - 13 0.148 - 14 0.037 - 15 0.037 - 26 0.037 - 40 0.0741 - 41 0.0741 - 42 0.037 - 46 0.037 - - 55 5 3 0 - 7 0.6 - 40 0.2 - 41 0.2 - - 39 2 1 0 - 3 1 - - 40 8 3 0 - 6 0.125 - 46 0.25 - 47 0.625 - - 41 149 17 7 - 0 0.0134 - 2 0.289 - 3 0.00671 - 7 0.101 - 8 0.134 - 9 0.0134 - 13 0.0805 - 14 0.0671 - 15 0.00671 - 19 0.0268 - 21 0.121 - 22 0.0403 - 23 0.00671 - 26 0.0403 - 31 0.0134 - 39 0.0134 - 46 0.0268 - - 8 19 10 0 - 2 0.105 - 7 0.0526 - 13 0.211 - 14 0.263 - 19 0.0526 - 21 0.105 - 26 0.0526 - 31 0.0526 - 39 0.0526 - 46 0.0526 - - 9 3 1 0 - 14 1 - - 10 1 1 0 - 23 1 - - 13 2 1 0 - 13 1 - - 48 105 16 0 - 0 0.00952 - 2 0.371 - 3 0.00952 - 7 0.0571 - 8 0.162 - 9 0.019 - 13 0.0476 - 14 0.019 - 15 0.00952 - 19 0.019 - 21 0.152 - 22 0.0571 - 26 0.019 - 31 0.00952 - 39 0.00952 - 46 0.0286 - - 55 6 2 0 - 7 0.667 - 26 0.333 - - 57 6 4 0 - 0 0.167 - 7 0.5 - 8 0.167 - 19 0.167 - - 42 16 7 0 - 2 0.375 - 7 0.125 - 14 0.125 - 21 0.188 - 26 0.0625 - 32 0.0625 - 34 0.0625 - - 44 1 1 0 - 39 1 - - 45 9 6 0 - 7 0.222 - 8 0.222 - 9 0.111 - 13 0.111 - 14 0.111 - 31 0.222 - - 46 73 14 5 - 2 0.11 - 4 0.0274 - 7 0.452 - 8 0.0274 - 13 0.0959 - 14 0.0274 - 19 0.0411 - 21 0.0548 - 26 0.0959 - 29 0.0137 - 30 0.0137 - 42 0.0137 - 44 0.0137 - 45 0.0137 - - 8 56 9 0 - 2 0.0893 - 4 0.0357 - 7 0.518 - 8 0.0179 - 13 0.107 - 14 0.0179 - 19 0.0536 - 21 0.0536 - 26 0.107 - - 13 3 3 0 - 8 0.333 - 14 0.333 - 44 0.333 - - 41 3 3 0 - 21 0.333 - 30 0.333 - 45 0.333 - - 48 5 3 0 - 2 0.6 - 7 0.2 - 42 0.2 - - 57 1 1 0 - 29 1 - - 47 14411 39 31 - 0 0.00992 - 2 0.0338 - 3 0.00222 - 4 0.00583 - 5 0.000139 - 6 0.000139 - 7 0.126 - 8 0.038 - 9 0.00104 - 12 0.00257 - 13 0.193 - 14 0.0622 - 15 0.0192 - 16 0.000625 - 17 0.000208 - 18 0.000139 - 19 0.0018 - 20 0.000278 - 21 0.00971 - 22 0.000416 - 26 0.0212 - 28 0.000139 - 29 0.00597 - 30 0.00285 - 31 0.00285 - 32 0.00201 - 33 0.000971 - 34 0.000555 - 35 0.000486 - 37 0.00347 - 39 0.00118 - 40 0.263 - 41 0.155 - 42 0.0176 - 43 0.00285 - 44 0.00298 - 45 0.00167 - 46 0.00701 - 47 0.00118 - - 0 5 3 0 - 30 0.2 - 40 0.4 - 41 0.4 - - 3 187 8 0 - 4 0.0107 - 8 0.134 - 13 0.711 - 14 0.0588 - 15 0.0535 - 41 0.016 - 43 0.0107 - 44 0.00535 - - 4 28 5 0 - 8 0.357 - 13 0.5 - 14 0.0714 - 15 0.0357 - 41 0.0357 - - 6 8 5 0 - 7 0.125 - 8 0.125 - 13 0.5 - 44 0.125 - 46 0.125 - - 7 20 7 0 - 2 0.1 - 7 0.2 - 13 0.05 - 14 0.1 - 21 0.1 - 40 0.35 - 41 0.1 - - 8 6530 37 0 - 0 0.00827 - 2 0.0409 - 3 0.00322 - 4 0.00796 - 5 0.000153 - 6 0.000153 - 7 0.169 - 8 0.0297 - 9 0.000153 - 12 0.00153 - 13 0.163 - 14 0.0809 - 15 0.0204 - 16 0.000766 - 19 0.00337 - 20 0.000613 - 21 0.0139 - 22 0.000613 - 26 0.0383 - 28 0.000153 - 29 0.000919 - 30 0.00383 - 31 0.00214 - 32 0.000306 - 33 0.000766 - 34 0.000919 - 35 0.00107 - 37 0.00551 - 39 0.000766 - 40 0.194 - 41 0.168 - 42 0.0208 - 43 0.00214 - 44 0.00306 - 45 0.00245 - 46 0.0101 - 47 0.000153 - - 9 730 23 0 - 0 0.00411 - 2 0.0384 - 3 0.00411 - 4 0.00411 - 7 0.403 - 8 0.0192 - 12 0.00274 - 13 0.185 - 14 0.0712 - 15 0.0123 - 17 0.00137 - 21 0.00959 - 26 0.037 - 29 0.00274 - 31 0.00137 - 32 0.00274 - 37 0.00274 - 40 0.108 - 41 0.0781 - 42 0.00822 - 43 0.00137 - 46 0.00137 - 47 0.00137 - - 10 56 14 0 - 2 0.143 - 4 0.0357 - 7 0.0714 - 8 0.0536 - 13 0.321 - 14 0.0179 - 15 0.0179 - 21 0.0179 - 37 0.0179 - 39 0.0179 - 40 0.0179 - 41 0.214 - 42 0.0357 - 46 0.0179 - - 13 1001 21 0 - 0 0.003 - 2 0.00799 - 4 0.002 - 7 0.021 - 8 0.0909 - 9 0.00699 - 12 0.000999 - 13 0.651 - 14 0.152 - 15 0.012 - 21 0.000999 - 26 0.000999 - 29 0.000999 - 30 0.003 - 31 0.00699 - 33 0.000999 - 40 0.011 - 41 0.014 - 42 0.000999 - 44 0.00799 - 46 0.004 - - 14 10 7 0 - 8 0.2 - 9 0.1 - 13 0.1 - 14 0.1 - 40 0.1 - 41 0.2 - 44 0.2 - - 15 39 13 0 - 2 0.0513 - 7 0.179 - 8 0.0513 - 13 0.231 - 14 0.128 - 15 0.128 - 16 0.0513 - 21 0.0256 - 40 0.0513 - 41 0.0256 - 42 0.0256 - 43 0.0256 - 47 0.0256 - - 21 161 21 0 - 0 0.0373 - 2 0.0435 - 4 0.0683 - 7 0.224 - 8 0.0373 - 9 0.00621 - 12 0.00621 - 13 0.0124 - 17 0.00621 - 18 0.0124 - 21 0.0559 - 22 0.00621 - 26 0.0248 - 30 0.00621 - 31 0.0186 - 33 0.00621 - 40 0.236 - 41 0.137 - 42 0.0435 - 46 0.00621 - 47 0.00621 - - 22 58 10 0 - 0 0.0172 - 2 0.0345 - 7 0.448 - 8 0.121 - 21 0.0172 - 22 0.0172 - 26 0.0517 - 31 0.0172 - 40 0.172 - 41 0.103 - - 24 9 4 0 - 7 0.222 - 21 0.111 - 40 0.222 - 41 0.444 - - 28 5 5 0 - 4 0.2 - 13 0.2 - 19 0.2 - 42 0.2 - 46 0.2 - - 29 10 4 0 - 7 0.1 - 8 0.5 - 13 0.3 - 41 0.1 - - 30 74 11 0 - 0 0.0405 - 2 0.0135 - 7 0.122 - 8 0.0541 - 13 0.311 - 14 0.0676 - 15 0.0541 - 26 0.027 - 40 0.189 - 41 0.108 - 43 0.0135 - - 31 530 25 0 - 0 0.00377 - 2 0.034 - 3 0.0113 - 7 0.0585 - 8 0.1 - 9 0.00189 - 12 0.00189 - 13 0.266 - 14 0.164 - 15 0.0717 - 16 0.00189 - 17 0.00189 - 21 0.00566 - 26 0.00189 - 30 0.00189 - 31 0.00189 - 37 0.00189 - 39 0.0208 - 40 0.13 - 41 0.083 - 42 0.00755 - 43 0.00377 - 45 0.00755 - 46 0.0151 - 47 0.00189 - - 40 8 3 0 - 6 0.125 - 46 0.25 - 47 0.625 - - 41 29 9 0 - 0 0.069 - 7 0.0345 - 8 0.0345 - 13 0.414 - 14 0.31 - 15 0.0345 - 26 0.0345 - 31 0.0345 - 46 0.0345 - - 42 5 4 0 - 2 0.2 - 7 0.2 - 14 0.4 - 32 0.2 - - 46 27 11 0 - 2 0.148 - 7 0.222 - 8 0.0741 - 13 0.259 - 14 0.0741 - 19 0.037 - 26 0.037 - 29 0.037 - 30 0.037 - 42 0.037 - 44 0.037 - - 48 221 17 0 - 0 0.00452 - 2 0.0136 - 7 0.0588 - 8 0.0452 - 12 0.00452 - 13 0.167 - 14 0.104 - 15 0.0226 - 16 0.00452 - 21 0.00452 - 26 0.0136 - 30 0.0136 - 40 0.385 - 41 0.109 - 42 0.0317 - 44 0.00452 - 46 0.0136 - - 49 12 4 0 - 2 0.0833 - 7 0.0833 - 40 0.5 - 41 0.333 - - 55 300 18 0 - 0 0.0467 - 2 0.0267 - 3 0.00333 - 7 0.03 - 8 0.00333 - 9 0.00333 - 12 0.0133 - 13 0.0233 - 21 0.01 - 26 0.01 - 29 0.0833 - 31 0.03 - 32 0.0133 - 37 0.00333 - 40 0.213 - 41 0.47 - 42 0.0133 - 46 0.00333 - - 57 2237 27 0 - 0 0.0152 - 2 0.0434 - 4 0.00358 - 7 0.0724 - 8 0.00134 - 12 0.00581 - 13 0.00179 - 14 0.00224 - 15 0.000447 - 19 0.000894 - 21 0.00492 - 26 0.00402 - 28 0.000447 - 29 0.0219 - 30 0.000894 - 32 0.00894 - 33 0.00268 - 34 0.000447 - 37 0.00268 - 40 0.553 - 41 0.219 - 42 0.0259 - 43 0.00134 - 44 0.000894 - 45 0.000894 - 46 0.00358 - 47 0.000894 - - 58 36 11 0 - 2 0.0556 - 7 0.0556 - 8 0.0278 - 13 0.528 - 14 0.0556 - 15 0.0278 - 26 0.0278 - 30 0.0278 - 40 0.0833 - 41 0.0833 - 47 0.0278 - - 59 7 5 0 - 3 0.143 - 7 0.286 - 8 0.286 - 21 0.143 - 40 0.143 - - 60 706 15 0 - 2 0.00142 - 4 0.00283 - 8 0.154 - 9 0.00425 - 13 0.687 - 14 0.00992 - 15 0.0793 - 21 0.00142 - 29 0.00142 - 30 0.00283 - 31 0.00567 - 41 0.0142 - 43 0.0241 - 44 0.0085 - 45 0.00283 - - 62 898 17 0 - 0 0.0189 - 2 0.0156 - 7 0.0746 - 12 0.00445 - 13 0.00111 - 21 0.00557 - 29 0.00111 - 30 0.00111 - 33 0.00111 - 34 0.00111 - 37 0.00334 - 40 0.653 - 41 0.199 - 42 0.0134 - 44 0.00111 - 46 0.00223 - 47 0.00334 - - 64 460 11 0 - 0 0.00652 - 2 0.0283 - 4 0.00217 - 5 0.00217 - 7 0.0326 - 21 0.00217 - 40 0.672 - 41 0.222 - 42 0.0283 - 46 0.00217 - 47 0.00217 - - 48 1047 22 10 - 0 0.000955 - 2 0.165 - 4 0.00573 - 7 0.449 - 8 0.0115 - 12 0.000955 - 13 0.0363 - 14 0.022 - 15 0.00478 - 16 0.000955 - 19 0.000955 - 21 0.00955 - 22 0.000955 - 26 0.0229 - 30 0.00287 - 31 0.000955 - 40 0.0812 - 41 0.129 - 42 0.0229 - 43 0.000955 - 44 0.0229 - 46 0.00764 - - 2 207 18 0 - 0 0.00483 - 2 0.0193 - 4 0.00483 - 7 0.0773 - 8 0.0435 - 12 0.00483 - 13 0.164 - 14 0.106 - 15 0.0145 - 16 0.00483 - 21 0.00966 - 26 0.00966 - 30 0.0145 - 40 0.319 - 41 0.135 - 42 0.0483 - 44 0.00966 - 46 0.00966 - - 4 3 1 0 - 2 1 - - 7 5 3 0 - 8 0.4 - 40 0.4 - 41 0.2 - - 21 10 4 0 - 2 0.1 - 15 0.1 - 40 0.4 - 41 0.4 - - 41 42 8 0 - 2 0.452 - 13 0.0238 - 15 0.0238 - 21 0.0476 - 40 0.119 - 41 0.286 - 44 0.0238 - 46 0.0238 - - 42 3 2 0 - 40 0.667 - 41 0.333 - - 44 1 1 0 - 43 1 - - 45 12 5 0 - 2 0.0833 - 7 0.167 - 40 0.167 - 41 0.167 - 46 0.417 - - 47 750 13 0 - 2 0.191 - 4 0.00667 - 7 0.603 - 8 0.00133 - 13 0.00133 - 19 0.00133 - 21 0.008 - 22 0.00133 - 26 0.028 - 31 0.00133 - 41 0.111 - 42 0.0187 - 44 0.028 - - 50 4 2 0 - 14 0.25 - 41 0.75 - - 49 35 9 3 - 2 0.0286 - 7 0.229 - 8 0.0571 - 13 0.0857 - 15 0.0857 - 21 0.0286 - 26 0.114 - 40 0.171 - 41 0.2 - - 8 16 8 0 - 2 0.0625 - 7 0.125 - 8 0.0625 - 13 0.188 - 15 0.188 - 21 0.0625 - 26 0.25 - 40 0.0625 - - 47 5 2 0 - 7 0.8 - 41 0.2 - - 48 7 3 0 - 7 0.143 - 40 0.571 - 41 0.286 - - 50 4 2 0 - 8 0.75 - 31 0.25 - - 55 335 19 8 - 0 0.0418 - 2 0.0239 - 3 0.00299 - 7 0.0478 - 8 0.00299 - 9 0.00299 - 12 0.0119 - 13 0.0209 - 21 0.00896 - 26 0.0716 - 29 0.0746 - 31 0.0269 - 32 0.0119 - 37 0.00299 - 40 0.191 - 41 0.439 - 42 0.0119 - 43 0.00299 - 46 0.00299 - - 7 4 1 0 - 40 1 - - 8 287 17 0 - 0 0.0418 - 2 0.0279 - 3 0.00348 - 7 0.0279 - 8 0.00348 - 12 0.00697 - 13 0.00697 - 21 0.00697 - 26 0.0836 - 29 0.0871 - 31 0.0314 - 32 0.0105 - 37 0.00348 - 40 0.199 - 41 0.446 - 42 0.0105 - 46 0.00348 - - 21 14 6 0 - 0 0.0714 - 7 0.357 - 12 0.0714 - 21 0.0714 - 32 0.0714 - 41 0.357 - - 31 3 3 0 - 0 0.333 - 12 0.333 - 40 0.333 - - 44 1 1 0 - 43 1 - - 47 1 1 0 - 9 1 - - 48 7 4 0 - 7 0.143 - 13 0.429 - 40 0.143 - 41 0.286 - - 49 8 4 0 - 7 0.125 - 40 0.125 - 41 0.625 - 42 0.125 - - 57 2329 28 15 - 0 0.0146 - 2 0.0416 - 4 0.00386 - 7 0.0932 - 8 0.00129 - 9 0.000429 - 12 0.00558 - 13 0.00215 - 14 0.00215 - 15 0.000859 - 19 0.000859 - 21 0.00558 - 26 0.0125 - 28 0.000429 - 29 0.021 - 30 0.000859 - 32 0.00859 - 33 0.00258 - 34 0.000429 - 37 0.00258 - 40 0.532 - 41 0.213 - 42 0.0258 - 43 0.00129 - 44 0.000859 - 45 0.000859 - 46 0.00386 - 47 0.000859 - - 2 1 1 0 - 9 1 - - 7 12 3 0 - 2 0.0833 - 7 0.333 - 40 0.583 - - 8 1515 26 0 - 0 0.0165 - 2 0.0436 - 4 0.00198 - 7 0.0904 - 8 0.00132 - 12 0.00726 - 13 0.00198 - 14 0.00198 - 15 0.00132 - 19 0.00132 - 21 0.00528 - 26 0.0112 - 28 0.00066 - 29 0.0277 - 30 0.00066 - 32 0.00858 - 33 0.00132 - 34 0.00066 - 37 0.00264 - 40 0.525 - 41 0.222 - 42 0.0205 - 43 0.00132 - 44 0.00066 - 46 0.0033 - 47 0.00066 - - 9 57 9 0 - 0 0.0351 - 2 0.0526 - 4 0.0526 - 7 0.228 - 8 0.0175 - 14 0.0175 - 40 0.421 - 41 0.14 - 42 0.0351 - - 13 19 7 0 - 0 0.0526 - 7 0.158 - 26 0.0526 - 37 0.0526 - 40 0.368 - 41 0.263 - 45 0.0526 - - 21 76 13 0 - 0 0.0132 - 2 0.0263 - 7 0.0658 - 21 0.0132 - 26 0.0658 - 29 0.0526 - 32 0.0526 - 33 0.0395 - 37 0.0132 - 40 0.408 - 41 0.224 - 42 0.0132 - 47 0.0132 - - 31 139 13 0 - 0 0.0144 - 2 0.0647 - 4 0.00719 - 7 0.0719 - 21 0.00719 - 29 0.00719 - 32 0.0144 - 33 0.00719 - 40 0.532 - 41 0.245 - 42 0.0144 - 43 0.00719 - 45 0.00719 - - 32 2 2 0 - 29 0.5 - 32 0.5 - - 42 2 2 0 - 40 0.5 - 46 0.5 - - 46 30 5 0 - 2 0.0667 - 7 0.0333 - 40 0.7 - 41 0.167 - 42 0.0333 - - 48 350 15 0 - 0 0.00571 - 2 0.0343 - 4 0.00571 - 7 0.114 - 12 0.00286 - 13 0.00286 - 14 0.00286 - 21 0.00857 - 26 0.0143 - 30 0.00286 - 40 0.569 - 41 0.186 - 42 0.0429 - 44 0.00286 - 46 0.00571 - - 55 27 3 0 - 40 0.815 - 41 0.0741 - 42 0.111 - - 57 54 7 0 - 2 0.0185 - 7 0.0185 - 12 0.0185 - 29 0.0185 - 40 0.685 - 41 0.222 - 42 0.0185 - - 58 1 1 0 - 46 1 - - 60 1 1 0 - 13 1 - - 58 55 15 3 - 2 0.0545 - 4 0.0182 - 7 0.164 - 8 0.0182 - 13 0.345 - 14 0.0364 - 15 0.0182 - 19 0.0182 - 21 0.0182 - 23 0.0182 - 26 0.0909 - 30 0.0182 - 40 0.0545 - 41 0.109 - 47 0.0182 - - 2 2 2 0 - 21 0.5 - 23 0.5 - - 8 10 5 0 - 4 0.1 - 7 0.3 - 13 0.1 - 19 0.1 - 26 0.4 - - 48 37 11 0 - 2 0.0811 - 7 0.108 - 8 0.027 - 13 0.459 - 14 0.027 - 15 0.027 - 26 0.027 - 30 0.027 - 40 0.0541 - 41 0.135 - 47 0.027 - - 59 11 6 0 - 3 0.0909 - 7 0.364 - 8 0.182 - 21 0.0909 - 26 0.182 - 40 0.0909 - - 60 708 16 1 - 2 0.00141 - 4 0.00282 - 7 0.00141 - 8 0.154 - 9 0.00424 - 13 0.685 - 14 0.00989 - 15 0.0791 - 21 0.00141 - 29 0.00141 - 30 0.00282 - 31 0.00565 - 41 0.0155 - 43 0.024 - 44 0.00847 - 45 0.00282 - - 8 1 1 0 - 29 1 - - 62 909 18 4 - 0 0.0187 - 2 0.0154 - 7 0.0781 - 12 0.0044 - 13 0.0011 - 21 0.0066 - 26 0.0011 - 29 0.0011 - 30 0.0011 - 33 0.0011 - 34 0.0011 - 37 0.0066 - 40 0.646 - 41 0.197 - 42 0.0132 - 44 0.0011 - 46 0.0033 - 47 0.0033 - - 9 6 2 0 - 7 0.5 - 40 0.5 - - 21 35 7 0 - 0 0.114 - 2 0.0286 - 33 0.0286 - 40 0.657 - 41 0.114 - 42 0.0286 - 47 0.0286 - - 31 30 2 0 - 40 0.867 - 41 0.133 - - 57 15 3 0 - 37 0.2 - 40 0.533 - 41 0.267 - - 64 463 12 2 - 0 0.00648 - 2 0.0281 - 4 0.00216 - 5 0.00216 - 7 0.0346 - 21 0.00216 - 26 0.00216 - 40 0.667 - 41 0.22 - 42 0.0302 - 46 0.00216 - 47 0.00216 - - 9 16 5 0 - 0 0.0625 - 2 0.0625 - 7 0.25 - 40 0.438 - 41 0.188 - - 58 8 2 0 - 40 0.875 - 47 0.125 - -49 42263 41 35 - 0 0.065 - 1 0.00182 - 2 0.0136 - 3 0.0157 - 4 0.0309 - 5 0.00128 - 7 0.159 - 8 0.0225 - 9 0.00199 - 10 0.000118 - 12 0.0152 - 13 0.00757 - 14 0.00327 - 15 0.00613 - 16 9.46e-05 - 17 7.1e-05 - 19 0.0103 - 20 0.00149 - 21 0.0208 - 22 0.00442 - 23 0.000189 - 24 0.00026 - 26 0.0331 - 28 0.0399 - 29 0.067 - 30 0.0304 - 31 0.063 - 32 0.0227 - 33 0.0363 - 34 0.000284 - 35 0.00133 - 37 0.00338 - 39 0.00251 - 40 0.131 - 41 0.171 - 42 0.00989 - 43 0.000875 - 44 0.000592 - 45 0.00163 - 46 0.00244 - 47 0.00128 - - 2 55 16 5 - 0 0.0182 - 3 0.109 - 4 0.0364 - 7 0.109 - 8 0.0545 - 9 0.0182 - 19 0.0182 - 21 0.236 - 22 0.109 - 26 0.0182 - 28 0.0182 - 29 0.0909 - 31 0.0727 - 39 0.0182 - 41 0.0545 - 45 0.0182 - - 4 9 4 0 - 8 0.111 - 28 0.111 - 29 0.444 - 31 0.333 - - 22 3 1 0 - 22 1 - - 41 7 4 0 - 3 0.286 - 7 0.143 - 21 0.429 - 39 0.143 - - 47 10 9 0 - 0 0.1 - 7 0.1 - 8 0.1 - 19 0.1 - 21 0.1 - 26 0.1 - 29 0.1 - 31 0.1 - 41 0.2 - - 49 23 7 0 - 3 0.174 - 4 0.087 - 7 0.174 - 8 0.0435 - 21 0.348 - 22 0.13 - 45 0.0435 - - 3 20 7 1 - 2 0.05 - 7 0.1 - 14 0.05 - 15 0.05 - 26 0.05 - 40 0.35 - 41 0.35 - - 47 8 4 0 - 2 0.125 - 15 0.125 - 26 0.125 - 41 0.625 - - 4 84 15 3 - 0 0.0357 - 4 0.0119 - 7 0.19 - 8 0.0595 - 13 0.0238 - 14 0.0238 - 26 0.0119 - 28 0.0119 - 29 0.0119 - 30 0.0119 - 31 0.0357 - 32 0.0476 - 40 0.333 - 41 0.179 - 42 0.0119 - - 7 52 8 0 - 0 0.0192 - 4 0.0192 - 7 0.115 - 8 0.0385 - 28 0.0192 - 31 0.0192 - 40 0.481 - 41 0.288 - - 21 4 2 0 - 8 0.5 - 13 0.5 - - 47 28 11 0 - 0 0.0714 - 7 0.357 - 8 0.0357 - 14 0.0714 - 26 0.0357 - 29 0.0357 - 30 0.0357 - 31 0.0714 - 32 0.143 - 40 0.107 - 42 0.0357 - - 5 2 2 0 - 0 0.5 - 35 0.5 - - 6 7 4 0 - 15 0.143 - 41 0.571 - 42 0.143 - 46 0.143 - - 7 697 30 8 - 0 0.0143 - 2 0.0201 - 3 0.187 - 4 0.0459 - 5 0.00143 - 7 0.244 - 8 0.0244 - 12 0.0043 - 13 0.01 - 14 0.00717 - 15 0.01 - 17 0.00143 - 19 0.00717 - 20 0.00574 - 21 0.0301 - 22 0.0043 - 26 0.0301 - 28 0.00717 - 29 0.0258 - 30 0.0115 - 31 0.0359 - 32 0.0043 - 33 0.00717 - 35 0.00143 - 39 0.0258 - 40 0.115 - 41 0.109 - 42 0.00287 - 45 0.00143 - 47 0.00574 - - 2 9 3 0 - 7 0.111 - 21 0.556 - 41 0.333 - - 4 7 5 0 - 0 0.143 - 4 0.143 - 19 0.143 - 40 0.286 - 41 0.286 - - 9 8 4 0 - 8 0.25 - 29 0.25 - 30 0.125 - 31 0.375 - - 13 12 10 0 - 2 0.0833 - 8 0.25 - 13 0.0833 - 29 0.0833 - 30 0.0833 - 31 0.0833 - 33 0.0833 - 40 0.0833 - 41 0.0833 - 42 0.0833 - - 21 28 11 0 - 3 0.0357 - 4 0.25 - 7 0.179 - 8 0.0714 - 13 0.107 - 15 0.0357 - 21 0.0357 - 26 0.0357 - 30 0.0714 - 40 0.107 - 41 0.0714 - - 22 33 8 0 - 8 0.182 - 21 0.0303 - 28 0.152 - 29 0.212 - 30 0.0303 - 31 0.273 - 32 0.0606 - 33 0.0606 - - 47 482 28 0 - 0 0.0145 - 2 0.0228 - 3 0.268 - 4 0.0436 - 7 0.332 - 8 0.00622 - 12 0.00207 - 13 0.00622 - 14 0.0104 - 15 0.0124 - 17 0.00207 - 19 0.0083 - 20 0.00622 - 21 0.0249 - 22 0.00622 - 26 0.0332 - 29 0.00622 - 30 0.00622 - 31 0.0207 - 32 0.00207 - 33 0.00207 - 35 0.00207 - 39 0.0373 - 40 0.0581 - 41 0.0539 - 42 0.00207 - 45 0.00207 - 47 0.0083 - - 55 114 14 0 - 0 0.0175 - 2 0.0175 - 4 0.0263 - 5 0.00877 - 7 0.0351 - 12 0.0175 - 20 0.00877 - 21 0.0175 - 26 0.0351 - 29 0.0439 - 31 0.00877 - 33 0.00877 - 40 0.404 - 41 0.351 - - 8 310 25 8 - 0 0.00323 - 2 0.00968 - 3 0.0129 - 4 0.0161 - 7 0.31 - 8 0.0161 - 9 0.00323 - 12 0.00323 - 13 0.0419 - 14 0.0226 - 15 0.029 - 19 0.00323 - 21 0.00968 - 26 0.142 - 29 0.00968 - 30 0.00645 - 32 0.00323 - 35 0.00645 - 37 0.00323 - 40 0.129 - 41 0.19 - 42 0.0129 - 43 0.00645 - 46 0.00645 - 47 0.00323 - - 2 5 3 0 - 4 0.2 - 7 0.2 - 41 0.6 - - 4 6 4 0 - 7 0.333 - 40 0.167 - 41 0.167 - 42 0.333 - - 7 5 4 0 - 13 0.2 - 29 0.2 - 40 0.4 - 41 0.2 - - 21 71 10 0 - 4 0.0423 - 7 0.451 - 13 0.0845 - 14 0.0141 - 15 0.0282 - 26 0.127 - 29 0.0141 - 35 0.0141 - 40 0.0845 - 41 0.141 - - 22 7 3 0 - 7 0.286 - 41 0.571 - 46 0.143 - - 23 4 4 0 - 9 0.25 - 14 0.25 - 26 0.25 - 41 0.25 - - 28 2 1 0 - 13 1 - - 47 204 24 0 - 0 0.0049 - 2 0.0147 - 3 0.0196 - 4 0.0049 - 7 0.275 - 8 0.0245 - 12 0.0049 - 13 0.0196 - 14 0.0245 - 15 0.0294 - 19 0.0049 - 21 0.0147 - 26 0.167 - 29 0.0049 - 30 0.0098 - 32 0.0049 - 35 0.0049 - 37 0.0049 - 40 0.142 - 41 0.191 - 42 0.0098 - 43 0.0098 - 46 0.0049 - 47 0.0049 - - 9 132 13 4 - 0 0.00758 - 2 0.0152 - 4 0.0303 - 7 0.508 - 8 0.0303 - 13 0.053 - 14 0.0152 - 15 0.0303 - 21 0.00758 - 26 0.053 - 33 0.00758 - 40 0.106 - 41 0.136 - - 4 4 3 0 - 13 0.25 - 15 0.25 - 41 0.5 - - 21 29 10 0 - 0 0.0345 - 4 0.103 - 7 0.379 - 8 0.103 - 13 0.103 - 15 0.069 - 26 0.0345 - 33 0.0345 - 40 0.103 - 41 0.0345 - - 47 55 9 0 - 2 0.0182 - 4 0.0182 - 7 0.473 - 13 0.0364 - 15 0.0182 - 21 0.0182 - 26 0.0545 - 40 0.164 - 41 0.2 - - 55 39 7 0 - 2 0.0256 - 7 0.692 - 13 0.0256 - 14 0.0256 - 26 0.0769 - 40 0.0513 - 41 0.103 - - 10 131 21 1 - 0 0.0229 - 3 0.0382 - 4 0.191 - 5 0.0153 - 7 0.183 - 8 0.0611 - 13 0.0534 - 15 0.0153 - 19 0.0458 - 20 0.00763 - 21 0.107 - 26 0.0153 - 28 0.0229 - 29 0.00763 - 30 0.0153 - 31 0.0229 - 33 0.00763 - 37 0.0153 - 40 0.0305 - 41 0.107 - 42 0.0153 - - 47 7 5 0 - 0 0.143 - 7 0.286 - 26 0.143 - 31 0.286 - 40 0.143 - - 11 6 1 0 - 41 1 - - 13 92 23 6 - 0 0.0217 - 2 0.0543 - 4 0.0326 - 7 0.293 - 8 0.0217 - 9 0.0109 - 13 0.0217 - 15 0.0109 - 19 0.0109 - 21 0.0217 - 26 0.109 - 28 0.0109 - 29 0.0326 - 30 0.0109 - 31 0.0217 - 32 0.0109 - 33 0.0109 - 34 0.0109 - 35 0.0217 - 37 0.0217 - 40 0.13 - 41 0.0978 - 42 0.0109 - - 2 3 2 0 - 7 0.667 - 42 0.333 - - 3 2 2 0 - 9 0.5 - 13 0.5 - - 4 11 9 0 - 0 0.0909 - 7 0.0909 - 13 0.0909 - 28 0.0909 - 30 0.0909 - 33 0.0909 - 35 0.182 - 37 0.182 - 40 0.0909 - - 7 6 5 0 - 7 0.167 - 8 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 8 11 7 0 - 2 0.0909 - 7 0.182 - 8 0.0909 - 19 0.0909 - 26 0.273 - 32 0.0909 - 40 0.182 - - 47 50 12 0 - 0 0.02 - 2 0.04 - 4 0.06 - 7 0.34 - 15 0.02 - 21 0.02 - 26 0.12 - 29 0.06 - 31 0.04 - 34 0.02 - 40 0.12 - 41 0.14 - - 14 5 3 0 - 2 0.4 - 7 0.2 - 26 0.4 - - 15 26 4 0 - 4 0.0385 - 15 0.0769 - 40 0.0385 - 41 0.846 - - 19 6 4 0 - 0 0.333 - 7 0.167 - 40 0.167 - 41 0.333 - - 21 17337 41 14 - 0 0.0758 - 1 0.00225 - 2 0.01 - 3 0.0253 - 4 0.0318 - 5 0.00127 - 7 0.155 - 8 0.0237 - 9 0.00323 - 10 0.000173 - 12 0.018 - 13 0.00675 - 14 0.00271 - 15 0.00583 - 16 0.000115 - 17 5.77e-05 - 19 0.0114 - 20 0.00144 - 21 0.0224 - 22 0.00848 - 23 0.000231 - 24 0.000404 - 26 0.0337 - 28 0.0465 - 29 0.0786 - 30 0.0359 - 31 0.0731 - 32 0.0269 - 33 0.0436 - 34 0.000115 - 35 0.00121 - 37 0.00335 - 39 0.00438 - 40 0.0751 - 41 0.159 - 42 0.00594 - 43 0.000577 - 44 0.00075 - 45 0.00173 - 46 0.0026 - 47 0.000577 - - 2 80 22 0 - 0 0.0125 - 2 0.025 - 3 0.0125 - 4 0.0125 - 7 0.188 - 8 0.0125 - 10 0.0125 - 15 0.0125 - 19 0.0125 - 21 0.05 - 22 0.0125 - 26 0.025 - 28 0.0125 - 29 0.0125 - 30 0.025 - 31 0.0625 - 32 0.0125 - 40 0.175 - 41 0.262 - 42 0.025 - 44 0.0125 - 45 0.0125 - - 4 12 7 0 - 0 0.0833 - 4 0.0833 - 8 0.333 - 19 0.0833 - 22 0.0833 - 26 0.0833 - 40 0.25 - - 7 72 14 0 - 0 0.0417 - 2 0.0278 - 4 0.125 - 7 0.0556 - 8 0.0139 - 9 0.0278 - 15 0.0278 - 21 0.0139 - 26 0.0278 - 30 0.0278 - 31 0.0417 - 40 0.153 - 41 0.389 - 42 0.0278 - - 10 4 2 0 - 4 0.75 - 15 0.25 - - 19 1 1 0 - 13 1 - - 21 886 32 0 - 0 0.044 - 2 0.0135 - 3 0.00113 - 4 0.044 - 5 0.00339 - 7 0.31 - 8 0.0282 - 9 0.00226 - 10 0.00113 - 12 0.00903 - 13 0.00339 - 14 0.00339 - 15 0.00226 - 19 0.0113 - 21 0.0147 - 22 0.00564 - 26 0.035 - 28 0.0181 - 29 0.0169 - 30 0.00677 - 31 0.0406 - 32 0.00903 - 33 0.0169 - 35 0.00339 - 37 0.00564 - 40 0.159 - 41 0.172 - 42 0.0102 - 43 0.00226 - 44 0.00226 - 45 0.00113 - 46 0.00339 - - 22 117 12 0 - 2 0.00855 - 4 0.0171 - 7 0.342 - 8 0.0598 - 26 0.0427 - 28 0.0513 - 30 0.0171 - 31 0.0598 - 37 0.0171 - 40 0.094 - 41 0.274 - 42 0.0171 - - 23 34 13 0 - 0 0.0294 - 2 0.0294 - 7 0.0588 - 8 0.118 - 12 0.0882 - 14 0.0294 - 15 0.0882 - 19 0.0294 - 29 0.0294 - 31 0.235 - 32 0.0294 - 41 0.206 - 43 0.0294 - - 24 3 3 0 - 7 0.333 - 40 0.333 - 46 0.333 - - 41 2 2 0 - 3 0.5 - 4 0.5 - - 45 3 3 0 - 7 0.333 - 21 0.333 - 46 0.333 - - 47 15577 41 0 - 0 0.0812 - 1 0.0025 - 2 0.00905 - 3 0.0279 - 4 0.0315 - 5 0.00122 - 7 0.146 - 8 0.0237 - 9 0.00327 - 10 6.42e-05 - 12 0.0193 - 13 0.00719 - 14 0.00276 - 15 0.00578 - 16 0.000128 - 17 6.42e-05 - 19 0.0115 - 20 0.0016 - 21 0.0236 - 22 0.00899 - 23 0.000257 - 24 0.000449 - 26 0.0343 - 28 0.0503 - 29 0.0859 - 30 0.0391 - 31 0.0774 - 32 0.0293 - 33 0.0475 - 34 0.000128 - 35 0.00116 - 37 0.00308 - 39 0.00488 - 40 0.0583 - 41 0.149 - 42 0.00507 - 43 0.000449 - 44 0.000642 - 45 0.0018 - 46 0.0025 - 47 0.000642 - - 49 10 5 0 - 3 0.1 - 7 0.4 - 9 0.1 - 40 0.2 - 41 0.2 - - 55 526 17 0 - 0 0.0076 - 2 0.0285 - 4 0.00951 - 7 0.12 - 13 0.0019 - 15 0.0038 - 19 0.00951 - 26 0.0152 - 29 0.0152 - 30 0.0019 - 31 0.0019 - 33 0.0019 - 37 0.0057 - 40 0.395 - 41 0.363 - 42 0.0171 - 46 0.0019 - - 22 718 21 5 - 0 0.00418 - 2 0.0334 - 3 0.00139 - 4 0.0432 - 7 0.297 - 8 0.0752 - 12 0.00279 - 13 0.00279 - 21 0.00696 - 26 0.0306 - 28 0.0306 - 29 0.00696 - 30 0.00557 - 31 0.0153 - 32 0.00139 - 33 0.00418 - 40 0.298 - 41 0.127 - 42 0.0111 - 43 0.00139 - 45 0.00139 - - 2 11 5 0 - 7 0.364 - 8 0.0909 - 28 0.0909 - 40 0.0909 - 41 0.364 - - 4 13 6 0 - 7 0.231 - 8 0.385 - 13 0.0769 - 30 0.154 - 32 0.0769 - 42 0.0769 - - 21 114 13 0 - 2 0.0263 - 4 0.0263 - 7 0.289 - 8 0.325 - 12 0.00877 - 21 0.0351 - 26 0.0351 - 28 0.0439 - 30 0.0175 - 31 0.0263 - 33 0.0175 - 40 0.105 - 41 0.0439 - - 47 311 19 0 - 0 0.00322 - 2 0.0482 - 3 0.00322 - 4 0.0836 - 7 0.476 - 8 0.0161 - 12 0.00322 - 13 0.00322 - 21 0.00322 - 26 0.0482 - 28 0.0514 - 29 0.0161 - 31 0.0257 - 33 0.00322 - 40 0.109 - 41 0.09 - 42 0.00965 - 43 0.00322 - 45 0.00322 - - 55 266 9 0 - 0 0.00752 - 2 0.0226 - 4 0.00752 - 7 0.0827 - 8 0.0226 - 26 0.0113 - 40 0.628 - 41 0.203 - 42 0.015 - - 23 36 13 1 - 0 0.0278 - 4 0.0278 - 7 0.194 - 8 0.0278 - 12 0.0278 - 21 0.0278 - 26 0.0556 - 28 0.0556 - 31 0.389 - 32 0.0278 - 40 0.0556 - 41 0.0278 - 42 0.0556 - - 7 2 2 0 - 12 0.5 - 21 0.5 - - 24 95 19 2 - 0 0.0105 - 2 0.0105 - 3 0.0316 - 4 0.0421 - 7 0.232 - 8 0.0105 - 13 0.0211 - 14 0.0421 - 15 0.0105 - 20 0.0211 - 21 0.0421 - 26 0.0632 - 30 0.0316 - 39 0.0105 - 40 0.274 - 41 0.116 - 42 0.0105 - 46 0.0105 - 47 0.0105 - - 2 1 1 0 - 42 1 - - 8 1 1 0 - 0 1 - - 28 6 3 0 - 8 0.167 - 28 0.333 - 41 0.5 - - 29 1 1 0 - 42 1 - - 31 4 3 0 - 13 0.25 - 26 0.5 - 40 0.25 - - 37 3 2 0 - 4 0.333 - 41 0.667 - - 40 10 3 0 - 43 0.1 - 46 0.1 - 47 0.8 - - 41 32 10 2 - 2 0.219 - 3 0.0625 - 4 0.0312 - 7 0.219 - 8 0.0312 - 21 0.0625 - 26 0.0312 - 29 0.0625 - 31 0.0312 - 37 0.25 - - 21 2 1 0 - 29 1 - - 57 3 1 0 - 7 1 - - 42 3 3 0 - 2 0.333 - 7 0.333 - 22 0.333 - - 46 7 4 0 - 7 0.571 - 8 0.143 - 26 0.143 - 47 0.143 - - 47 19808 41 32 - 0 0.0693 - 1 0.00192 - 2 0.0136 - 3 0.00353 - 4 0.0311 - 5 0.00136 - 7 0.139 - 8 0.0218 - 9 0.00121 - 10 0.000101 - 12 0.0163 - 13 0.00777 - 14 0.00343 - 15 0.00631 - 16 0.000101 - 17 5.05e-05 - 19 0.0109 - 20 0.00157 - 21 0.0207 - 22 0.00151 - 23 0.000202 - 24 0.000202 - 26 0.0283 - 28 0.0426 - 29 0.0715 - 30 0.0323 - 31 0.0671 - 32 0.0242 - 33 0.0388 - 34 0.000303 - 35 0.00136 - 37 0.00323 - 39 0.000505 - 40 0.139 - 41 0.181 - 42 0.0104 - 43 0.000909 - 44 0.000606 - 45 0.00172 - 46 0.00242 - 47 0.00136 - - 2 21 10 0 - 0 0.0476 - 7 0.0476 - 8 0.0952 - 19 0.0476 - 21 0.0952 - 26 0.0476 - 28 0.0476 - 29 0.238 - 31 0.19 - 41 0.143 - - 3 20 7 0 - 2 0.05 - 7 0.1 - 14 0.05 - 15 0.05 - 26 0.05 - 40 0.35 - 41 0.35 - - 4 79 14 0 - 0 0.038 - 4 0.0127 - 7 0.19 - 8 0.038 - 14 0.0253 - 26 0.0127 - 28 0.0127 - 29 0.0127 - 30 0.0127 - 31 0.038 - 32 0.0506 - 40 0.354 - 41 0.19 - 42 0.0127 - - 5 2 2 0 - 0 0.5 - 35 0.5 - - 6 6 3 0 - 41 0.667 - 42 0.167 - 46 0.167 - - 7 377 27 0 - 0 0.0265 - 2 0.0371 - 3 0.00531 - 4 0.0398 - 5 0.00265 - 7 0.111 - 8 0.0371 - 12 0.00796 - 13 0.0159 - 14 0.0133 - 15 0.00531 - 19 0.0133 - 20 0.0106 - 21 0.0451 - 26 0.0292 - 28 0.0133 - 29 0.0477 - 30 0.0159 - 31 0.0663 - 32 0.00796 - 33 0.0133 - 35 0.00265 - 40 0.212 - 41 0.202 - 42 0.00531 - 45 0.00265 - 47 0.0106 - - 8 234 25 0 - 0 0.00427 - 2 0.0128 - 3 0.00427 - 4 0.0214 - 7 0.274 - 8 0.00427 - 9 0.00427 - 12 0.00427 - 13 0.047 - 14 0.0299 - 15 0.0342 - 19 0.00427 - 21 0.0128 - 26 0.0427 - 29 0.0128 - 30 0.00855 - 32 0.00427 - 35 0.00855 - 37 0.00427 - 40 0.171 - 41 0.252 - 42 0.0171 - 43 0.00855 - 46 0.00855 - 47 0.00427 - - 9 130 13 0 - 0 0.00769 - 2 0.0154 - 4 0.0308 - 7 0.508 - 8 0.0308 - 13 0.0538 - 14 0.0154 - 15 0.0308 - 21 0.00769 - 26 0.0462 - 33 0.00769 - 40 0.108 - 41 0.138 - - 10 129 21 0 - 0 0.0233 - 3 0.0388 - 4 0.194 - 5 0.0155 - 7 0.178 - 8 0.062 - 13 0.0543 - 15 0.0155 - 19 0.0465 - 20 0.00775 - 21 0.109 - 26 0.00775 - 28 0.0233 - 29 0.00775 - 30 0.0155 - 31 0.0233 - 33 0.00775 - 37 0.0155 - 40 0.031 - 41 0.109 - 42 0.0155 - - 11 6 1 0 - 41 1 - - 13 78 21 0 - 0 0.0256 - 2 0.0641 - 4 0.0385 - 7 0.269 - 8 0.0256 - 9 0.0128 - 13 0.0256 - 15 0.0128 - 19 0.0128 - 21 0.0256 - 26 0.0769 - 28 0.0128 - 29 0.0385 - 30 0.0128 - 31 0.0256 - 32 0.0128 - 33 0.0128 - 34 0.0128 - 40 0.154 - 41 0.115 - 42 0.0128 - - 14 2 1 0 - 2 1 - - 15 26 4 0 - 4 0.0385 - 15 0.0769 - 40 0.0385 - 41 0.846 - - 19 6 4 0 - 0 0.333 - 7 0.167 - 40 0.167 - 41 0.333 - - 21 15861 41 0 - 0 0.0829 - 1 0.0024 - 2 0.0109 - 3 0.00372 - 4 0.033 - 5 0.00139 - 7 0.134 - 8 0.0212 - 9 0.00132 - 10 0.000126 - 12 0.0197 - 13 0.00694 - 14 0.0029 - 15 0.00624 - 16 0.000126 - 17 6.3e-05 - 19 0.0122 - 20 0.00151 - 21 0.0221 - 22 0.00189 - 23 0.000252 - 24 0.000252 - 26 0.0281 - 28 0.0508 - 29 0.0859 - 30 0.039 - 31 0.0798 - 32 0.0294 - 33 0.0477 - 34 0.000126 - 35 0.00132 - 37 0.00347 - 39 0.000567 - 40 0.0816 - 41 0.174 - 42 0.00643 - 43 0.00063 - 44 0.000757 - 45 0.00189 - 46 0.00265 - 47 0.00063 - - 22 659 20 0 - 0 0.00455 - 2 0.0319 - 4 0.0212 - 7 0.284 - 8 0.0774 - 12 0.00303 - 13 0.00303 - 21 0.00759 - 26 0.0212 - 28 0.0334 - 29 0.00759 - 30 0.00607 - 31 0.0167 - 32 0.00152 - 33 0.00455 - 40 0.323 - 41 0.138 - 42 0.0121 - 43 0.00152 - 45 0.00152 - - 23 35 13 0 - 0 0.0286 - 4 0.0286 - 7 0.171 - 8 0.0286 - 12 0.0286 - 21 0.0286 - 26 0.0571 - 28 0.0571 - 31 0.4 - 32 0.0286 - 40 0.0571 - 41 0.0286 - 42 0.0571 - - 24 74 17 0 - 0 0.0135 - 2 0.0135 - 3 0.0135 - 4 0.0541 - 7 0.162 - 8 0.0135 - 13 0.027 - 14 0.0541 - 15 0.0135 - 20 0.027 - 21 0.0405 - 30 0.027 - 39 0.0135 - 40 0.351 - 41 0.149 - 42 0.0135 - 47 0.0135 - - 28 6 3 0 - 8 0.167 - 28 0.333 - 41 0.5 - - 29 1 1 0 - 42 1 - - 31 3 3 0 - 13 0.333 - 26 0.333 - 40 0.333 - - 37 3 2 0 - 4 0.333 - 41 0.667 - - 40 9 2 0 - 43 0.111 - 47 0.889 - - 41 5 4 0 - 7 0.2 - 26 0.2 - 29 0.4 - 31 0.2 - - 46 2 2 0 - 8 0.5 - 47 0.5 - - 49 42 5 0 - 7 0.119 - 12 0.0238 - 40 0.619 - 41 0.19 - 42 0.0476 - - 55 524 14 0 - 0 0.00573 - 2 0.0134 - 4 0.00763 - 7 0.143 - 13 0.00382 - 19 0.00191 - 21 0.00573 - 26 0.0687 - 29 0.00763 - 31 0.00191 - 40 0.458 - 41 0.191 - 42 0.0897 - 43 0.00191 - - 57 1267 29 0 - 0 0.0189 - 2 0.0316 - 3 0.00158 - 4 0.00947 - 5 0.00158 - 7 0.0805 - 8 0.00395 - 9 0.000789 - 12 0.00158 - 13 0.00316 - 15 0.00395 - 19 0.00395 - 21 0.00474 - 26 0.0166 - 29 0.00868 - 30 0.000789 - 31 0.000789 - 32 0.000789 - 33 0.000789 - 34 0.00237 - 35 0.000789 - 37 0.00474 - 40 0.514 - 41 0.257 - 42 0.0213 - 43 0.00158 - 45 0.00158 - 46 0.00158 - 47 0.00158 - - 58 3 2 0 - 30 0.333 - 40 0.667 - - 59 1 1 0 - 35 1 - - 62 30 5 0 - 0 0.0333 - 21 0.0333 - 40 0.7 - 41 0.133 - 42 0.1 - - 64 156 13 0 - 0 0.00641 - 2 0.00641 - 4 0.0128 - 7 0.00641 - 14 0.00641 - 19 0.00641 - 21 0.00641 - 26 0.0192 - 40 0.615 - 41 0.288 - 42 0.0128 - 43 0.00641 - 46 0.00641 - - 48 6 3 0 - 7 0.5 - 40 0.167 - 41 0.333 - - 49 384 14 4 - 2 0.0599 - 4 0.0234 - 7 0.695 - 8 0.00781 - 12 0.0026 - 14 0.0026 - 19 0.00521 - 21 0.0026 - 26 0.0104 - 37 0.00521 - 40 0.0703 - 41 0.0911 - 42 0.0182 - 46 0.00521 - - 2 27 5 0 - 7 0.111 - 12 0.037 - 40 0.556 - 41 0.259 - 42 0.037 - - 21 14 5 0 - 7 0.429 - 40 0.357 - 41 0.0714 - 42 0.0714 - 46 0.0714 - - 41 4 1 0 - 40 1 - - 47 327 12 0 - 2 0.0703 - 4 0.0275 - 7 0.771 - 8 0.00917 - 14 0.00306 - 19 0.00612 - 21 0.00306 - 26 0.0122 - 37 0.00612 - 41 0.0734 - 42 0.0153 - 46 0.00306 - - 55 740 14 5 - 0 0.00405 - 2 0.00946 - 4 0.00541 - 7 0.307 - 13 0.0027 - 19 0.00135 - 21 0.00541 - 26 0.132 - 29 0.00541 - 31 0.00135 - 40 0.324 - 41 0.136 - 42 0.0635 - 43 0.00135 - - 7 178 10 0 - 2 0.0112 - 7 0.275 - 13 0.0112 - 21 0.0112 - 26 0.0787 - 29 0.00562 - 31 0.00562 - 40 0.365 - 41 0.129 - 42 0.107 - - 21 514 10 0 - 2 0.00584 - 4 0.00778 - 7 0.323 - 21 0.00195 - 26 0.15 - 29 0.00195 - 40 0.321 - 41 0.132 - 42 0.0545 - 43 0.00195 - - 22 18 6 0 - 0 0.0556 - 7 0.222 - 26 0.111 - 29 0.111 - 40 0.222 - 41 0.278 - - 47 4 2 0 - 7 0.75 - 21 0.25 - - 49 10 6 0 - 0 0.2 - 2 0.1 - 7 0.1 - 19 0.1 - 26 0.2 - 41 0.3 - - 57 1294 29 10 - 0 0.0185 - 2 0.0309 - 3 0.00232 - 4 0.00927 - 5 0.00155 - 7 0.0927 - 8 0.00386 - 9 0.000773 - 12 0.00155 - 13 0.00309 - 15 0.00386 - 19 0.00386 - 21 0.00464 - 26 0.0185 - 29 0.0085 - 30 0.000773 - 31 0.000773 - 32 0.000773 - 33 0.000773 - 34 0.00232 - 35 0.000773 - 37 0.00464 - 40 0.503 - 41 0.254 - 42 0.0209 - 43 0.00232 - 45 0.00155 - 46 0.00155 - 47 0.00155 - - 7 133 14 0 - 0 0.0226 - 2 0.0226 - 3 0.00752 - 7 0.0602 - 8 0.015 - 12 0.00752 - 19 0.00752 - 26 0.0301 - 34 0.00752 - 40 0.466 - 41 0.323 - 42 0.015 - 43 0.00752 - 47 0.00752 - - 8 63 10 0 - 0 0.0159 - 2 0.0159 - 4 0.0159 - 7 0.127 - 13 0.0159 - 32 0.0159 - 33 0.0159 - 40 0.476 - 41 0.286 - 45 0.0159 - - 13 10 6 0 - 2 0.1 - 7 0.2 - 15 0.1 - 35 0.1 - 40 0.4 - 41 0.1 - - 21 614 22 0 - 0 0.0277 - 2 0.0326 - 3 0.00326 - 4 0.013 - 5 0.00163 - 7 0.0765 - 9 0.00163 - 12 0.00163 - 13 0.00326 - 15 0.00489 - 19 0.00651 - 21 0.00814 - 26 0.0212 - 29 0.013 - 30 0.00163 - 34 0.00326 - 37 0.00651 - 40 0.484 - 41 0.269 - 42 0.0163 - 45 0.00163 - 46 0.00326 - - 22 32 6 0 - 0 0.0625 - 7 0.188 - 29 0.0625 - 40 0.5 - 41 0.156 - 47 0.0312 - - 24 16 6 0 - 2 0.0625 - 7 0.188 - 8 0.0625 - 21 0.0625 - 40 0.25 - 41 0.375 - - 44 1 1 0 - 43 1 - - 49 164 12 0 - 2 0.0244 - 4 0.0122 - 7 0.183 - 8 0.0122 - 15 0.0061 - 26 0.0122 - 29 0.0061 - 37 0.0061 - 40 0.488 - 41 0.207 - 42 0.0366 - 43 0.0061 - - 55 215 9 0 - 0 0.00465 - 2 0.0465 - 5 0.00465 - 7 0.0605 - 26 0.0186 - 31 0.00465 - 40 0.6 - 41 0.223 - 42 0.0372 - - 57 20 6 0 - 7 0.05 - 13 0.05 - 37 0.05 - 40 0.65 - 41 0.15 - 42 0.05 - - 58 6 4 0 - 7 0.333 - 26 0.167 - 30 0.167 - 40 0.333 - - 59 1 1 0 - 35 1 - - 62 30 5 0 - 0 0.0333 - 21 0.0333 - 40 0.7 - 41 0.133 - 42 0.1 - - 64 159 13 2 - 0 0.00629 - 2 0.00629 - 4 0.0126 - 7 0.0126 - 14 0.00629 - 19 0.00629 - 21 0.00629 - 26 0.0189 - 40 0.61 - 41 0.289 - 42 0.0126 - 43 0.00629 - 46 0.00629 - - 21 35 6 0 - 4 0.0286 - 19 0.0286 - 21 0.0286 - 26 0.0286 - 40 0.486 - 41 0.4 - - 41 10 1 0 - 40 1 - -50 604 25 5 - 0 0.0364 - 1 0.00662 - 3 0.0166 - 4 0.212 - 7 0.166 - 8 0.113 - 9 0.00993 - 12 0.00993 - 13 0.0629 - 14 0.0662 - 15 0.0298 - 16 0.00662 - 20 0.0298 - 21 0.0298 - 22 0.00331 - 26 0.043 - 28 0.043 - 29 0.0132 - 30 0.0497 - 31 0.0232 - 32 0.00662 - 33 0.00993 - 35 0.00331 - 39 0.00331 - 45 0.00662 - - 7 209 21 0 - 0 0.00957 - 1 0.00957 - 3 0.0239 - 4 0.22 - 7 0.115 - 8 0.129 - 9 0.0144 - 13 0.0861 - 14 0.0766 - 15 0.0431 - 16 0.00478 - 20 0.0144 - 21 0.0335 - 26 0.0335 - 28 0.0622 - 30 0.0718 - 31 0.0287 - 32 0.00478 - 35 0.00478 - 39 0.00478 - 45 0.00957 - - 8 4 3 0 - 7 0.5 - 8 0.25 - 26 0.25 - - 21 83 15 3 - 0 0.108 - 4 0.181 - 7 0.289 - 8 0.0723 - 12 0.0361 - 14 0.0241 - 16 0.012 - 20 0.0723 - 21 0.0241 - 22 0.012 - 26 0.0602 - 29 0.0482 - 31 0.012 - 32 0.012 - 33 0.0361 - - 2 22 8 0 - 4 0.227 - 7 0.364 - 14 0.0909 - 20 0.0909 - 22 0.0455 - 26 0.0455 - 29 0.0909 - 31 0.0455 - - 7 11 5 0 - 4 0.364 - 7 0.0909 - 8 0.364 - 20 0.0909 - 21 0.0909 - - 21 50 12 0 - 0 0.18 - 4 0.12 - 7 0.3 - 8 0.04 - 12 0.06 - 16 0.02 - 20 0.06 - 21 0.02 - 26 0.08 - 29 0.04 - 32 0.02 - 33 0.06 - - 28 5 3 0 - 4 0.6 - 13 0.2 - 14 0.2 - - 47 302 25 4 - 0 0.0364 - 1 0.00662 - 3 0.0166 - 4 0.212 - 7 0.166 - 8 0.113 - 9 0.00993 - 12 0.00993 - 13 0.0629 - 14 0.0662 - 15 0.0298 - 16 0.00662 - 20 0.0298 - 21 0.0298 - 22 0.00331 - 26 0.043 - 28 0.043 - 29 0.0132 - 30 0.0497 - 31 0.0232 - 32 0.00662 - 33 0.00993 - 35 0.00331 - 39 0.00331 - 45 0.00662 - - 7 209 21 0 - 0 0.00957 - 1 0.00957 - 3 0.0239 - 4 0.22 - 7 0.115 - 8 0.129 - 9 0.0144 - 13 0.0861 - 14 0.0766 - 15 0.0431 - 16 0.00478 - 20 0.0144 - 21 0.0335 - 26 0.0335 - 28 0.0622 - 30 0.0718 - 31 0.0287 - 32 0.00478 - 35 0.00478 - 39 0.00478 - 45 0.00957 - - 8 4 3 0 - 7 0.5 - 8 0.25 - 26 0.25 - - 21 83 15 0 - 0 0.108 - 4 0.181 - 7 0.289 - 8 0.0723 - 12 0.0361 - 14 0.0241 - 16 0.012 - 20 0.0723 - 21 0.0241 - 22 0.012 - 26 0.0602 - 29 0.0482 - 31 0.012 - 32 0.012 - 33 0.0361 - - 28 5 3 0 - 4 0.6 - 13 0.2 - 14 0.2 - -51 1442 32 20 - 0 0.000693 - 2 0.00763 - 3 0.00139 - 4 0.0146 - 7 0.0444 - 8 0.00416 - 9 0.000693 - 12 0.000693 - 13 0.00347 - 14 0.00139 - 15 0.000693 - 19 0.00347 - 20 0.000693 - 21 0.0173 - 22 0.000693 - 26 0.00832 - 27 0.00208 - 28 0.00208 - 29 0.00277 - 30 0.00208 - 33 0.00139 - 34 0.000693 - 35 0.00139 - 37 0.00139 - 39 0.000693 - 40 0.279 - 41 0.164 - 42 0.025 - 43 0.0118 - 44 0.00139 - 46 0.0374 - 47 0.356 - - 2 42 15 1 - 3 0.0238 - 4 0.167 - 7 0.143 - 8 0.0238 - 9 0.0238 - 13 0.0238 - 14 0.0238 - 19 0.0238 - 21 0.333 - 26 0.0238 - 27 0.0238 - 28 0.0238 - 35 0.0476 - 37 0.0238 - 41 0.0714 - - 41 6 5 0 - 3 0.167 - 4 0.333 - 14 0.167 - 21 0.167 - 35 0.167 - - 4 2 2 0 - 27 0.5 - 41 0.5 - - 7 6 4 0 - 4 0.333 - 13 0.333 - 30 0.167 - 34 0.167 - - 21 42 15 5 - 3 0.0238 - 4 0.143 - 7 0.167 - 8 0.0476 - 13 0.0476 - 15 0.0238 - 19 0.0238 - 21 0.19 - 22 0.0238 - 26 0.0476 - 28 0.0476 - 37 0.0238 - 40 0.143 - 41 0.0238 - 42 0.0238 - - 2 9 4 0 - 7 0.333 - 15 0.111 - 21 0.444 - 41 0.111 - - 21 3 1 0 - 4 1 - - 47 19 10 0 - 3 0.0526 - 4 0.105 - 7 0.211 - 8 0.105 - 13 0.105 - 21 0.211 - 22 0.0526 - 26 0.0526 - 40 0.0526 - 42 0.0526 - - 49 3 2 0 - 26 0.333 - 40 0.667 - - 71 3 2 0 - 28 0.667 - 40 0.333 - - 40 210 3 0 - 43 0.00476 - 46 0.176 - 47 0.819 - - 41 31 12 2 - 2 0.0645 - 4 0.0323 - 7 0.548 - 14 0.0323 - 19 0.0323 - 20 0.0323 - 21 0.0323 - 27 0.0323 - 30 0.0645 - 39 0.0323 - 46 0.0645 - 47 0.0323 - - 51 4 3 0 - 2 0.5 - 19 0.25 - 39 0.25 - - 57 5 4 0 - 4 0.2 - 7 0.4 - 14 0.2 - 47 0.2 - - 42 16 4 0 - 7 0.125 - 8 0.0625 - 40 0.188 - 47 0.625 - - 46 38 4 0 - 7 0.0263 - 33 0.0263 - 43 0.0526 - 47 0.895 - - 47 495 14 13 - 2 0.00808 - 4 0.00202 - 7 0.00202 - 19 0.00202 - 26 0.00606 - 29 0.00404 - 33 0.00202 - 40 0.194 - 41 0.208 - 42 0.0202 - 43 0.0141 - 44 0.00202 - 46 0.0162 - 47 0.519 - - 21 5 3 0 - 19 0.2 - 40 0.6 - 41 0.2 - - 40 174 2 0 - 46 0.0115 - 47 0.989 - - 42 10 1 0 - 47 1 - - 46 36 3 0 - 33 0.0278 - 43 0.0278 - 47 0.944 - - 48 32 9 0 - 2 0.0312 - 7 0.0312 - 26 0.0625 - 40 0.188 - 41 0.531 - 42 0.0312 - 43 0.0625 - 46 0.0312 - 47 0.0312 - - 49 26 4 0 - 40 0.385 - 41 0.5 - 43 0.0769 - 47 0.0385 - - 51 4 1 0 - 40 1 - - 55 86 7 0 - 2 0.0116 - 29 0.0233 - 40 0.267 - 41 0.465 - 42 0.0465 - 46 0.0233 - 47 0.163 - - 57 51 6 0 - 26 0.0196 - 40 0.471 - 41 0.196 - 42 0.0588 - 43 0.0196 - 47 0.235 - - 62 13 4 0 - 40 0.385 - 41 0.462 - 46 0.0769 - 47 0.0769 - - 64 11 4 0 - 2 0.0909 - 40 0.455 - 41 0.0909 - 47 0.364 - - 69 17 5 0 - 4 0.0588 - 40 0.471 - 41 0.353 - 46 0.0588 - 47 0.0588 - - 71 9 6 0 - 2 0.111 - 40 0.333 - 41 0.222 - 43 0.111 - 44 0.111 - 47 0.111 - - 48 39 9 0 - 2 0.0256 - 7 0.0256 - 26 0.0513 - 40 0.308 - 41 0.436 - 42 0.0513 - 43 0.0513 - 46 0.0256 - 47 0.0256 - - 49 53 10 2 - 4 0.0377 - 7 0.132 - 8 0.0189 - 12 0.0189 - 21 0.0189 - 40 0.377 - 41 0.321 - 42 0.0189 - 43 0.0377 - 47 0.0189 - - 2 10 6 0 - 4 0.2 - 7 0.3 - 12 0.1 - 21 0.1 - 40 0.2 - 41 0.1 - - 47 21 5 0 - 7 0.0476 - 40 0.429 - 41 0.429 - 42 0.0476 - 47 0.0476 - - 51 16 5 1 - 2 0.0625 - 40 0.562 - 41 0.25 - 42 0.0625 - 46 0.0625 - - 47 5 3 0 - 2 0.2 - 41 0.6 - 42 0.2 - - 52 8 3 0 - 19 0.125 - 40 0.5 - 41 0.375 - - 55 193 13 8 - 0 0.00518 - 2 0.00518 - 7 0.0518 - 8 0.00518 - 21 0.00518 - 26 0.0155 - 29 0.0104 - 40 0.487 - 41 0.259 - 42 0.0622 - 43 0.00518 - 46 0.0155 - 47 0.0725 - - 2 9 3 0 - 0 0.111 - 40 0.778 - 41 0.111 - - 41 21 4 0 - 40 0.714 - 41 0.19 - 42 0.0476 - 46 0.0476 - - 42 17 5 0 - 40 0.706 - 41 0.0588 - 43 0.0588 - 46 0.0588 - 47 0.118 - - 45 17 2 0 - 40 0.941 - 42 0.0588 - - 47 77 9 0 - 7 0.104 - 21 0.013 - 26 0.039 - 29 0.026 - 40 0.221 - 41 0.429 - 42 0.039 - 46 0.013 - 47 0.117 - - 48 1 1 0 - 8 1 - - 52 1 1 0 - 2 1 - - 57 9 3 0 - 40 0.222 - 41 0.111 - 42 0.667 - - 57 89 8 3 - 4 0.0112 - 7 0.0562 - 26 0.0112 - 40 0.551 - 41 0.169 - 42 0.0562 - 43 0.0112 - 47 0.135 - - 47 26 5 0 - 26 0.0385 - 40 0.385 - 41 0.115 - 42 0.0385 - 47 0.423 - - 49 7 2 0 - 4 0.143 - 40 0.857 - - 55 15 4 0 - 7 0.2 - 40 0.467 - 41 0.267 - 43 0.0667 - - 62 54 5 1 - 40 0.815 - 41 0.111 - 42 0.037 - 46 0.0185 - 47 0.0185 - - 47 8 3 0 - 40 0.25 - 41 0.625 - 46 0.125 - - 64 40 4 0 - 2 0.025 - 40 0.8 - 41 0.075 - 47 0.1 - - 69 31 5 0 - 4 0.0323 - 40 0.71 - 41 0.194 - 46 0.0323 - 47 0.0323 - - 71 11 7 0 - 2 0.0909 - 7 0.0909 - 40 0.364 - 41 0.182 - 43 0.0909 - 44 0.0909 - 47 0.0909 - - 72 6 3 0 - 7 0.667 - 40 0.167 - 41 0.167 - -52 275 19 11 - 0 0.00727 - 2 0.0109 - 4 0.00727 - 7 0.0145 - 13 0.00727 - 19 0.0145 - 20 0.00727 - 21 0.00727 - 26 0.04 - 27 0.0109 - 28 0.0291 - 37 0.00727 - 40 0.142 - 41 0.52 - 42 0.00364 - 43 0.0291 - 45 0.00364 - 46 0.0364 - 47 0.102 - - 2 1 1 0 - 45 1 - - 13 5 2 0 - 40 0.8 - 46 0.2 - - 15 2 2 0 - 41 0.5 - 42 0.5 - - 21 18 5 0 - 4 0.0556 - 21 0.0556 - 37 0.0556 - 40 0.0556 - 41 0.778 - - 27 80 9 1 - 13 0.0125 - 19 0.0125 - 26 0.075 - 27 0.0125 - 28 0.025 - 40 0.225 - 41 0.538 - 43 0.0375 - 46 0.0625 - - 45 2 1 0 - 46 1 - - 28 11 4 0 - 0 0.0909 - 20 0.0909 - 28 0.182 - 41 0.636 - - 40 13 1 0 - 47 1 - - 41 1 1 0 - 27 1 - - 46 2 2 0 - 2 0.5 - 7 0.5 - - 47 127 17 7 - 0 0.00787 - 2 0.00787 - 4 0.00787 - 7 0.0157 - 13 0.00787 - 19 0.0157 - 20 0.00787 - 21 0.00787 - 26 0.0394 - 27 0.00787 - 28 0.0315 - 37 0.00787 - 40 0.102 - 41 0.559 - 43 0.0315 - 46 0.0315 - 47 0.11 - - 13 2 2 0 - 40 0.5 - 46 0.5 - - 21 17 4 0 - 4 0.0588 - 21 0.0588 - 37 0.0588 - 41 0.824 - - 27 70 9 0 - 13 0.0143 - 19 0.0143 - 26 0.0714 - 27 0.0143 - 28 0.0286 - 40 0.157 - 41 0.614 - 43 0.0429 - 46 0.0429 - - 28 11 4 0 - 0 0.0909 - 20 0.0909 - 28 0.182 - 41 0.636 - - 40 13 1 0 - 47 1 - - 46 2 2 0 - 2 0.5 - 7 0.5 - - 52 2 2 0 - 7 0.5 - 43 0.5 - - 52 4 4 0 - 2 0.25 - 7 0.25 - 41 0.25 - 43 0.25 - -53 99 14 6 - 4 0.0606 - 7 0.0808 - 8 0.0606 - 14 0.0202 - 15 0.0404 - 19 0.0404 - 21 0.0202 - 28 0.141 - 31 0.0202 - 37 0.0202 - 40 0.121 - 41 0.101 - 42 0.101 - 43 0.172 - - 8 3 1 0 - 41 1 - - 11 30 4 0 - 40 0.4 - 41 0.0667 - 42 0.167 - 43 0.367 - - 40 12 4 0 - 7 0.25 - 21 0.0833 - 28 0.583 - 37 0.0833 - - 42 2 1 0 - 15 1 - - 43 11 6 0 - 4 0.273 - 7 0.0909 - 8 0.273 - 14 0.0909 - 19 0.182 - 31 0.0909 - - 47 38 13 5 - 4 0.0789 - 7 0.105 - 8 0.0789 - 14 0.0263 - 15 0.0526 - 19 0.0526 - 21 0.0263 - 28 0.184 - 31 0.0263 - 37 0.0263 - 41 0.132 - 42 0.132 - 43 0.0789 - - 8 3 1 0 - 41 1 - - 11 10 3 0 - 41 0.2 - 42 0.5 - 43 0.3 - - 40 12 4 0 - 7 0.25 - 21 0.0833 - 28 0.583 - 37 0.0833 - - 42 2 1 0 - 15 1 - - 43 11 6 0 - 4 0.273 - 7 0.0909 - 8 0.273 - 14 0.0909 - 19 0.182 - 31 0.0909 - -54 1254 23 14 - 0 0.00159 - 2 0.00478 - 3 0.0271 - 4 0.00399 - 6 0.00159 - 7 0.112 - 8 0.0478 - 13 0.386 - 14 0.0447 - 15 0.121 - 18 0.00478 - 26 0.00638 - 29 0.00159 - 30 0.00319 - 31 0.00159 - 34 0.000797 - 40 0.00558 - 41 0.203 - 42 0.00159 - 43 0.00319 - 44 0.00239 - 45 0.00159 - 46 0.0136 - - 3 35 5 1 - 7 0.0286 - 13 0.257 - 15 0.0571 - 41 0.629 - 45 0.0286 - - 41 11 1 0 - 41 1 - - 4 4 1 0 - 8 1 - - 8 6 3 0 - 7 0.167 - 13 0.667 - 42 0.167 - - 13 18 4 0 - 7 0.722 - 26 0.167 - 40 0.0556 - 46 0.0556 - - 14 2 2 0 - 2 0.5 - 34 0.5 - - 15 371 10 3 - 3 0.062 - 4 0.0108 - 6 0.00539 - 7 0.299 - 8 0.0027 - 13 0.0108 - 26 0.0135 - 40 0.0027 - 41 0.59 - 43 0.0027 - - 15 29 4 0 - 7 0.897 - 13 0.0345 - 26 0.0345 - 41 0.0345 - - 41 232 4 0 - 3 0.0431 - 8 0.00431 - 13 0.0129 - 41 0.94 - - 47 105 7 0 - 3 0.124 - 4 0.0381 - 6 0.019 - 7 0.762 - 26 0.0381 - 40 0.00952 - 43 0.00952 - - 16 4 1 0 - 7 1 - - 40 1 1 0 - 43 1 - - 41 237 7 3 - 2 0.00844 - 3 0.0464 - 8 0.097 - 13 0.751 - 14 0.0717 - 15 0.0169 - 30 0.00844 - - 3 22 2 0 - 3 0.5 - 13 0.5 - - 15 213 6 0 - 2 0.00469 - 8 0.108 - 13 0.779 - 14 0.0798 - 15 0.0188 - 30 0.00939 - - 54 1 1 0 - 2 1 - - 47 411 18 8 - 0 0.00243 - 2 0.00487 - 7 0.0073 - 8 0.0681 - 13 0.589 - 14 0.0681 - 15 0.182 - 18 0.0073 - 29 0.00243 - 30 0.00487 - 31 0.00243 - 40 0.0073 - 41 0.0219 - 42 0.00243 - 43 0.00487 - 44 0.00243 - 45 0.00243 - 46 0.0195 - - 3 12 3 0 - 13 0.75 - 15 0.167 - 45 0.0833 - - 8 5 2 0 - 13 0.8 - 42 0.2 - - 13 1 1 0 - 40 1 - - 14 1 1 0 - 2 1 - - 15 15 5 0 - 7 0.2 - 8 0.0667 - 13 0.267 - 41 0.4 - 43 0.0667 - - 40 1 1 0 - 43 1 - - 41 225 6 0 - 2 0.00444 - 8 0.102 - 13 0.791 - 14 0.0756 - 15 0.0178 - 30 0.00889 - - 57 143 12 0 - 0 0.00699 - 8 0.021 - 13 0.294 - 14 0.0769 - 15 0.476 - 18 0.021 - 29 0.00699 - 31 0.00699 - 40 0.014 - 41 0.021 - 44 0.00699 - 46 0.049 - - 54 7 5 0 - 2 0.143 - 7 0.429 - 13 0.143 - 41 0.143 - 44 0.143 - - 55 8 5 0 - 4 0.125 - 7 0.375 - 13 0.25 - 15 0.125 - 41 0.125 - - 57 145 13 2 - 0 0.0069 - 7 0.0069 - 8 0.0207 - 13 0.29 - 14 0.0759 - 15 0.476 - 18 0.0207 - 29 0.0069 - 31 0.0069 - 40 0.0138 - 41 0.0207 - 44 0.0069 - 46 0.0483 - - 13 16 6 0 - 8 0.0625 - 13 0.312 - 14 0.0625 - 15 0.25 - 41 0.0625 - 46 0.25 - - 55 3 3 0 - 7 0.333 - 8 0.333 - 46 0.333 - - 64 1 1 0 - 46 1 - -55 743201 48 64 - 0 0.0725 - 1 0.000324 - 2 0.0381 - 3 0.0109 - 4 0.0192 - 5 9.28e-05 - 6 8.48e-05 - 7 0.218 - 8 0.0157 - 9 0.00101 - 10 0.000679 - 11 2.69e-06 - 12 0.0255 - 13 0.0155 - 14 0.00484 - 15 0.0115 - 16 0.000159 - 17 3.5e-05 - 18 0.000148 - 19 0.00383 - 20 0.000667 - 21 0.0224 - 22 0.00163 - 23 0.000167 - 24 0.000495 - 25 3.23e-05 - 26 0.0314 - 27 2.69e-06 - 28 0.00194 - 29 0.0528 - 30 0.00873 - 31 0.013 - 32 0.0128 - 33 0.0187 - 34 0.0103 - 35 0.00461 - 36 0.000354 - 37 0.00247 - 38 2.96e-05 - 39 0.00155 - 40 0.175 - 41 0.167 - 42 0.0181 - 43 0.00332 - 44 0.00367 - 45 0.00252 - 46 0.00333 - 47 0.00429 - - 0 57 13 3 - 0 0.0175 - 7 0.123 - 8 0.0877 - 13 0.0351 - 15 0.0175 - 21 0.246 - 23 0.175 - 29 0.105 - 30 0.0877 - 31 0.0526 - 41 0.0175 - 43 0.0175 - 45 0.0175 - - 13 25 7 0 - 7 0.08 - 8 0.16 - 13 0.04 - 21 0.2 - 23 0.4 - 30 0.08 - 45 0.04 - - 15 26 9 0 - 7 0.154 - 8 0.0385 - 13 0.0385 - 15 0.0385 - 21 0.346 - 29 0.231 - 30 0.0385 - 31 0.0769 - 41 0.0385 - - 19 3 3 0 - 0 0.333 - 7 0.333 - 30 0.333 - - 1 3 2 0 - 26 0.333 - 40 0.667 - - 2 6940 35 14 - 0 0.000144 - 2 0.000144 - 3 0.104 - 4 0.195 - 6 0.000144 - 7 0.0062 - 8 0.168 - 9 0.0107 - 10 0.00072 - 13 0.114 - 14 0.0501 - 15 0.186 - 16 0.00202 - 17 0.00101 - 19 0.00187 - 20 0.0399 - 21 0.0278 - 22 0.000576 - 23 0.000144 - 26 0.000432 - 28 0.000865 - 29 0.000576 - 30 0.0098 - 31 0.00548 - 33 0.00101 - 34 0.000144 - 35 0.00115 - 36 0.000144 - 37 0.000432 - 38 0.000288 - 39 0.0588 - 41 0.00346 - 42 0.000432 - 44 0.000576 - 45 0.00749 - - 3 18 3 0 - 3 0.889 - 7 0.0556 - 21 0.0556 - - 13 15 7 0 - 3 0.133 - 4 0.0667 - 8 0.2 - 21 0.267 - 28 0.133 - 30 0.133 - 33 0.0667 - - 14 6 2 0 - 30 0.167 - 33 0.833 - - 15 3 2 0 - 15 0.667 - 21 0.333 - - 41 1384 25 0 - 3 0.318 - 4 0.103 - 7 0.0224 - 8 0.0412 - 9 0.00939 - 10 0.00145 - 13 0.0549 - 14 0.0253 - 15 0.091 - 16 0.000723 - 19 0.000723 - 20 0.0065 - 21 0.0571 - 22 0.00145 - 23 0.000723 - 26 0.000723 - 28 0.000723 - 29 0.000723 - 30 0.00361 - 31 0.00289 - 34 0.000723 - 35 0.00217 - 39 0.249 - 41 0.00145 - 45 0.00434 - - 42 77 15 0 - 3 0.0649 - 4 0.156 - 8 0.0779 - 9 0.026 - 13 0.0649 - 14 0.0519 - 15 0.286 - 17 0.013 - 21 0.117 - 28 0.013 - 36 0.013 - 39 0.0519 - 41 0.039 - 44 0.013 - 45 0.013 - - 45 5 3 0 - 4 0.6 - 14 0.2 - 20 0.2 - - 46 35 7 0 - 4 0.143 - 8 0.143 - 13 0.0571 - 21 0.0286 - 22 0.0286 - 31 0.0286 - 45 0.571 - - 47 1 1 0 - 0 1 - - 55 5370 31 0 - 2 0.000186 - 3 0.0477 - 4 0.221 - 6 0.000186 - 7 0.00186 - 8 0.204 - 9 0.011 - 10 0.000559 - 13 0.131 - 14 0.0572 - 15 0.212 - 16 0.00242 - 17 0.00112 - 19 0.00223 - 20 0.0497 - 21 0.0177 - 22 0.000186 - 26 0.000372 - 28 0.000372 - 29 0.000559 - 30 0.0101 - 31 0.00615 - 33 0.000186 - 35 0.000931 - 37 0.000186 - 38 0.000372 - 39 0.0112 - 41 0.00354 - 42 0.000559 - 44 0.000559 - 45 0.00447 - - 57 4 3 0 - 7 0.25 - 13 0.5 - 21 0.25 - - 58 6 6 0 - 4 0.167 - 8 0.167 - 15 0.167 - 21 0.167 - 30 0.167 - 45 0.167 - - 62 6 2 0 - 4 0.167 - 30 0.833 - - 64 3 2 0 - 4 0.333 - 37 0.667 - - 3 8212 38 21 - 0 0.0178 - 2 0.0314 - 3 0.00499 - 4 0.0933 - 6 0.000122 - 7 0.167 - 8 0.00402 - 9 0.00244 - 10 0.000365 - 12 0.00706 - 13 0.00426 - 14 0.00146 - 15 0.00402 - 19 0.00231 - 20 0.000244 - 21 0.0108 - 22 0.000487 - 23 0.000122 - 25 0.000122 - 26 0.0899 - 28 0.000122 - 29 0.0141 - 30 0.00329 - 31 0.00548 - 32 0.0011 - 33 0.00329 - 34 0.00256 - 35 0.000852 - 37 0.00317 - 39 0.000122 - 40 0.2 - 41 0.278 - 42 0.0226 - 43 0.0167 - 44 0.0017 - 45 0.00134 - 46 0.000974 - 47 0.00195 - - 2 92 17 0 - 0 0.0326 - 2 0.0326 - 4 0.0109 - 7 0.0652 - 8 0.0109 - 12 0.0109 - 21 0.0109 - 26 0.0109 - 31 0.0109 - 33 0.0109 - 34 0.0109 - 40 0.304 - 41 0.391 - 42 0.0217 - 43 0.0217 - 44 0.0217 - 45 0.0217 - - 3 254 17 0 - 0 0.00787 - 2 0.0197 - 4 0.0276 - 7 0.217 - 8 0.00394 - 9 0.00394 - 12 0.0118 - 13 0.00787 - 14 0.00394 - 15 0.0354 - 26 0.287 - 32 0.00394 - 40 0.201 - 41 0.126 - 42 0.0236 - 43 0.0118 - 47 0.00787 - - 4 159 24 0 - 0 0.164 - 2 0.0377 - 4 0.00629 - 7 0.195 - 8 0.00629 - 10 0.0126 - 12 0.044 - 13 0.0126 - 14 0.00629 - 15 0.00629 - 19 0.00629 - 21 0.044 - 23 0.00629 - 26 0.0252 - 29 0.0314 - 31 0.0189 - 32 0.00629 - 33 0.00629 - 34 0.0126 - 35 0.0126 - 40 0.164 - 41 0.151 - 42 0.0126 - 45 0.0126 - - 7 12 7 0 - 3 0.0833 - 4 0.25 - 7 0.25 - 14 0.0833 - 21 0.0833 - 40 0.0833 - 41 0.167 - - 8 155 14 0 - 0 0.071 - 2 0.0516 - 7 0.116 - 12 0.00645 - 14 0.00645 - 19 0.0129 - 26 0.0323 - 31 0.0194 - 33 0.00645 - 34 0.00645 - 40 0.374 - 41 0.252 - 42 0.0387 - 47 0.00645 - - 9 3 2 0 - 33 0.667 - 34 0.333 - - 10 1 1 0 - 8 1 - - 13 164 20 0 - 0 0.0366 - 2 0.0549 - 4 0.0061 - 7 0.171 - 8 0.0061 - 12 0.0061 - 13 0.0061 - 14 0.0122 - 19 0.0061 - 26 0.0305 - 29 0.0061 - 30 0.0061 - 32 0.0122 - 33 0.0427 - 34 0.0061 - 40 0.14 - 41 0.378 - 42 0.0488 - 43 0.0122 - 46 0.0122 - - 14 12 7 0 - 2 0.167 - 3 0.167 - 7 0.0833 - 26 0.0833 - 30 0.0833 - 40 0.167 - 41 0.25 - - 15 1421 30 0 - 0 0.019 - 2 0.0394 - 3 0.000704 - 4 0.00281 - 7 0.0739 - 8 0.00141 - 9 0.000704 - 12 0.00563 - 13 0.00141 - 15 0.00422 - 19 0.00141 - 20 0.00141 - 21 0.00281 - 26 0.0387 - 28 0.000704 - 29 0.031 - 30 0.00211 - 31 0.00493 - 32 0.000704 - 33 0.00211 - 34 0.000704 - 37 0.00352 - 39 0.000704 - 40 0.251 - 41 0.481 - 42 0.00844 - 43 0.0169 - 44 0.00141 - 45 0.000704 - 47 0.000704 - - 20 1 1 0 - 30 1 - - 21 31 11 0 - 0 0.0323 - 2 0.0323 - 4 0.0323 - 7 0.484 - 14 0.0323 - 21 0.0323 - 26 0.0323 - 29 0.0645 - 37 0.0645 - 40 0.0968 - 41 0.0968 - - 29 1 1 0 - 14 1 - - 31 2 2 0 - 0 0.5 - 26 0.5 - - 38 13 6 0 - 4 0.0769 - 7 0.0769 - 40 0.231 - 41 0.154 - 42 0.0769 - 44 0.385 - - 39 1781 28 0 - 0 0.000561 - 2 0.0247 - 3 0.0202 - 4 0.396 - 6 0.000561 - 7 0.14 - 8 0.0101 - 9 0.000561 - 12 0.000561 - 13 0.0112 - 15 0.00225 - 19 0.00168 - 21 0.00786 - 22 0.00112 - 26 0.0415 - 29 0.000561 - 30 0.00168 - 31 0.00786 - 33 0.000561 - 34 0.00225 - 35 0.000561 - 37 0.00112 - 40 0.12 - 41 0.149 - 42 0.0118 - 43 0.0444 - 44 0.00112 - 47 0.000561 - - 41 320 10 0 - 2 0.025 - 7 0.00313 - 13 0.00313 - 25 0.00313 - 31 0.00313 - 40 0.172 - 41 0.669 - 42 0.0719 - 43 0.0188 - 47 0.0312 - - 45 3 1 0 - 46 1 - - 47 3753 32 0 - 0 0.0181 - 2 0.0306 - 3 0.000266 - 4 0.0107 - 7 0.227 - 8 0.00213 - 9 0.00453 - 10 0.000266 - 12 0.00959 - 13 0.00187 - 14 0.000799 - 15 0.00346 - 19 0.00266 - 21 0.016 - 22 0.000533 - 26 0.137 - 29 0.0168 - 30 0.0048 - 31 0.00426 - 32 0.00107 - 33 0.00293 - 34 0.00266 - 35 0.00107 - 37 0.00453 - 40 0.217 - 41 0.242 - 42 0.028 - 43 0.00533 - 44 0.000799 - 45 0.00133 - 46 0.000799 - 47 0.000266 - - 55 8 4 0 - 14 0.125 - 40 0.375 - 41 0.375 - 45 0.125 - - 60 6 5 0 - 2 0.167 - 21 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 4 2568 37 12 - 0 0.247 - 1 0.000779 - 2 0.00857 - 3 0.00273 - 4 0.00584 - 7 0.274 - 8 0.00935 - 9 0.000389 - 10 0.000389 - 12 0.0666 - 13 0.00701 - 14 0.00117 - 15 0.00156 - 18 0.000779 - 19 0.00857 - 21 0.0238 - 22 0.000389 - 24 0.00195 - 26 0.00701 - 28 0.00389 - 29 0.0269 - 30 0.00701 - 31 0.0245 - 32 0.0218 - 33 0.0592 - 34 0.00584 - 35 0.0253 - 37 0.000389 - 38 0.000779 - 39 0.0343 - 40 0.0401 - 41 0.0666 - 42 0.0101 - 44 0.00117 - 45 0.00117 - 46 0.00117 - 47 0.00195 - - 2 6 1 0 - 7 1 - - 3 4 2 0 - 7 0.5 - 41 0.5 - - 4 9 6 0 - 0 0.111 - 7 0.111 - 12 0.111 - 33 0.222 - 35 0.111 - 41 0.333 - - 7 1 1 0 - 19 1 - - 8 9 4 0 - 7 0.556 - 12 0.111 - 26 0.111 - 29 0.222 - - 13 3 2 0 - 4 0.333 - 7 0.667 - - 15 3 2 0 - 8 0.667 - 42 0.333 - - 17 25 10 0 - 0 0.24 - 2 0.04 - 7 0.08 - 29 0.04 - 30 0.04 - 31 0.04 - 33 0.12 - 35 0.04 - 40 0.12 - 41 0.24 - - 19 8 7 0 - 12 0.125 - 24 0.125 - 29 0.25 - 32 0.125 - 33 0.125 - 40 0.125 - 41 0.125 - - 21 42 9 0 - 0 0.0476 - 7 0.571 - 29 0.0238 - 31 0.0714 - 35 0.0238 - 40 0.143 - 41 0.0238 - 42 0.0714 - 46 0.0238 - - 28 1 1 0 - 8 1 - - 60 3 3 0 - 7 0.333 - 38 0.333 - 40 0.333 - - 5 861 10 0 - 0 0.861 - 4 0.00232 - 12 0.0848 - 18 0.0128 - 19 0.00116 - 21 0.0244 - 26 0.00116 - 33 0.00697 - 35 0.00116 - 41 0.00465 - - 6 75 17 7 - 0 0.0533 - 2 0.0267 - 6 0.107 - 7 0.08 - 8 0.0133 - 12 0.0267 - 26 0.0533 - 31 0.0133 - 33 0.0533 - 39 0.0133 - 40 0.24 - 41 0.173 - 42 0.0267 - 43 0.0133 - 44 0.0267 - 45 0.0133 - 46 0.0667 - - 4 8 5 0 - 7 0.125 - 33 0.5 - 40 0.125 - 41 0.125 - 45 0.125 - - 6 17 6 0 - 6 0.176 - 7 0.235 - 40 0.118 - 41 0.235 - 43 0.0588 - 46 0.176 - - 8 5 4 0 - 0 0.2 - 6 0.4 - 26 0.2 - 44 0.2 - - 41 5 4 0 - 39 0.2 - 40 0.2 - 41 0.2 - 42 0.4 - - 43 1 1 0 - 8 1 - - 45 4 3 0 - 6 0.5 - 40 0.25 - 46 0.25 - - 47 31 9 0 - 0 0.0645 - 2 0.0645 - 12 0.0645 - 26 0.0968 - 31 0.0323 - 40 0.419 - 41 0.194 - 44 0.0323 - 46 0.0323 - - 7 103 24 7 - 0 0.117 - 2 0.00971 - 3 0.0194 - 4 0.117 - 5 0.00971 - 7 0.175 - 8 0.0291 - 12 0.0291 - 13 0.0583 - 14 0.00971 - 15 0.0194 - 18 0.0194 - 19 0.0291 - 21 0.0291 - 22 0.00971 - 24 0.00971 - 26 0.0194 - 29 0.00971 - 31 0.0485 - 33 0.0291 - 39 0.0194 - 40 0.0874 - 41 0.0874 - 47 0.00971 - - 8 2 2 0 - 7 0.5 - 15 0.5 - - 13 8 6 0 - 7 0.125 - 26 0.125 - 33 0.125 - 40 0.375 - 41 0.125 - 47 0.125 - - 21 9 4 0 - 4 0.444 - 8 0.222 - 13 0.222 - 14 0.111 - - 41 2 2 0 - 13 0.5 - 21 0.5 - - 47 62 20 0 - 0 0.177 - 2 0.0161 - 4 0.0484 - 5 0.0161 - 7 0.177 - 8 0.0161 - 12 0.0484 - 15 0.0161 - 18 0.0323 - 19 0.0484 - 21 0.0161 - 22 0.0161 - 24 0.0161 - 26 0.0161 - 29 0.0161 - 31 0.0806 - 33 0.0323 - 39 0.0323 - 40 0.0484 - 41 0.129 - - 55 10 4 0 - 3 0.1 - 4 0.5 - 13 0.3 - 40 0.1 - - 60 4 1 0 - 7 1 - - 8 1338 39 20 - 0 0.059 - 1 0.000747 - 2 0.0329 - 3 0.00673 - 4 0.0112 - 6 0.00374 - 7 0.361 - 8 0.00897 - 9 0.00747 - 10 0.00224 - 12 0.0112 - 13 0.0142 - 14 0.00673 - 15 0.00598 - 19 0.00299 - 21 0.0172 - 22 0.00299 - 24 0.000747 - 26 0.0471 - 27 0.000747 - 28 0.00374 - 29 0.0262 - 30 0.0172 - 31 0.00523 - 32 0.0105 - 33 0.00972 - 34 0.00224 - 35 0.00299 - 37 0.000747 - 38 0.00149 - 39 0.0493 - 40 0.116 - 41 0.116 - 42 0.0179 - 43 0.00448 - 44 0.00448 - 45 0.00374 - 46 0.00374 - 47 0.000747 - - 2 12 5 0 - 0 0.0833 - 7 0.25 - 14 0.167 - 40 0.333 - 41 0.167 - - 3 4 3 0 - 2 0.25 - 9 0.5 - 40 0.25 - - 4 482 34 0 - 0 0.0622 - 2 0.0456 - 3 0.0124 - 4 0.0187 - 6 0.00207 - 7 0.255 - 8 0.0104 - 9 0.0083 - 10 0.00622 - 12 0.0124 - 13 0.0104 - 14 0.00415 - 15 0.00415 - 19 0.00415 - 21 0.0187 - 22 0.00415 - 24 0.00207 - 26 0.0539 - 27 0.00207 - 28 0.00622 - 29 0.0104 - 30 0.0166 - 32 0.00622 - 33 0.0166 - 34 0.00207 - 35 0.00415 - 37 0.00207 - 38 0.00415 - 39 0.135 - 40 0.133 - 41 0.0996 - 42 0.0207 - 44 0.00207 - 45 0.00415 - - 7 4 4 0 - 7 0.25 - 12 0.25 - 21 0.25 - 26 0.25 - - 8 31 13 0 - 1 0.0323 - 7 0.226 - 14 0.0323 - 15 0.0323 - 21 0.0323 - 22 0.0323 - 26 0.0323 - 29 0.0645 - 33 0.0645 - 35 0.0323 - 40 0.161 - 41 0.226 - 44 0.0323 - - 13 49 12 0 - 0 0.0816 - 2 0.0408 - 4 0.0204 - 7 0.327 - 12 0.0612 - 14 0.0204 - 29 0.0204 - 30 0.0204 - 40 0.163 - 41 0.204 - 42 0.0204 - 46 0.0204 - - 14 11 5 0 - 2 0.0909 - 7 0.364 - 40 0.182 - 41 0.273 - 42 0.0909 - - 15 12 7 0 - 2 0.0833 - 7 0.25 - 22 0.0833 - 26 0.0833 - 29 0.333 - 40 0.0833 - 42 0.0833 - - 20 57 10 0 - 2 0.0526 - 7 0.14 - 13 0.0351 - 15 0.0175 - 21 0.0351 - 26 0.0351 - 29 0.0175 - 33 0.0175 - 40 0.368 - 41 0.281 - - 21 63 11 0 - 0 0.0635 - 2 0.0159 - 7 0.603 - 19 0.0159 - 21 0.0159 - 26 0.111 - 32 0.0159 - 40 0.0794 - 41 0.0476 - 44 0.0159 - 46 0.0159 - - 22 2 2 0 - 28 0.5 - 40 0.5 - - 23 10 4 0 - 0 0.1 - 7 0.5 - 40 0.3 - 46 0.1 - - 30 2 2 0 - 13 0.5 - 41 0.5 - - 42 2 2 0 - 14 0.5 - 26 0.5 - - 45 2 2 0 - 19 0.5 - 46 0.5 - - 47 537 30 0 - 0 0.0689 - 2 0.0149 - 3 0.00186 - 4 0.00745 - 6 0.00559 - 7 0.492 - 8 0.00745 - 9 0.00745 - 12 0.00745 - 13 0.0168 - 14 0.00372 - 15 0.00745 - 21 0.0168 - 26 0.0447 - 28 0.00186 - 29 0.0391 - 30 0.0205 - 31 0.00931 - 32 0.0168 - 33 0.00372 - 34 0.00372 - 35 0.00186 - 39 0.00186 - 40 0.0596 - 41 0.102 - 42 0.0186 - 43 0.00931 - 44 0.00559 - 46 0.00186 - 47 0.00186 - - 48 13 6 0 - 0 0.0769 - 2 0.0769 - 7 0.0769 - 31 0.0769 - 40 0.0769 - 41 0.615 - - 54 1 1 0 - 31 1 - - 55 27 14 0 - 0 0.037 - 2 0.0741 - 3 0.0741 - 4 0.037 - 7 0.185 - 8 0.111 - 13 0.0741 - 29 0.037 - 30 0.0741 - 32 0.037 - 40 0.0741 - 41 0.037 - 43 0.037 - 45 0.111 - - 60 8 6 0 - 2 0.25 - 6 0.125 - 7 0.125 - 12 0.125 - 40 0.25 - 41 0.125 - - 9 236 14 6 - 0 0.0212 - 2 0.00847 - 4 0.00847 - 7 0.619 - 12 0.00424 - 21 0.0254 - 26 0.0763 - 29 0.00424 - 30 0.00424 - 31 0.0127 - 40 0.114 - 41 0.089 - 42 0.00847 - 44 0.00424 - - 4 15 5 0 - 4 0.0667 - 7 0.6 - 31 0.0667 - 40 0.133 - 41 0.133 - - 13 7 5 0 - 0 0.143 - 7 0.429 - 12 0.143 - 40 0.143 - 41 0.143 - - 14 2 2 0 - 0 0.5 - 2 0.5 - - 21 19 4 0 - 7 0.737 - 40 0.158 - 41 0.0526 - 42 0.0526 - - 47 160 11 0 - 0 0.0125 - 2 0.00625 - 7 0.606 - 21 0.0375 - 26 0.106 - 29 0.00625 - 30 0.00625 - 40 0.112 - 41 0.0938 - 42 0.00625 - 44 0.00625 - - 55 9 4 0 - 4 0.111 - 7 0.667 - 31 0.111 - 41 0.111 - - 10 370 23 6 - 0 0.0568 - 2 0.0027 - 4 0.00811 - 5 0.0027 - 7 0.705 - 8 0.00541 - 12 0.00541 - 13 0.00811 - 19 0.00811 - 21 0.0162 - 26 0.0135 - 28 0.0027 - 29 0.0027 - 30 0.00811 - 31 0.0027 - 32 0.0324 - 37 0.0027 - 40 0.0459 - 41 0.0486 - 42 0.0135 - 44 0.0027 - 45 0.0027 - 46 0.0027 - - 2 2 2 0 - 26 0.5 - 46 0.5 - - 4 125 17 0 - 0 0.064 - 2 0.008 - 4 0.024 - 5 0.008 - 7 0.552 - 8 0.016 - 12 0.008 - 13 0.024 - 19 0.016 - 21 0.04 - 26 0.016 - 30 0.008 - 32 0.016 - 40 0.112 - 41 0.056 - 42 0.024 - 44 0.008 - - 20 10 6 0 - 7 0.3 - 26 0.2 - 37 0.1 - 40 0.1 - 41 0.2 - 45 0.1 - - 21 5 2 0 - 7 0.4 - 41 0.6 - - 47 216 12 0 - 0 0.0602 - 7 0.838 - 12 0.00463 - 19 0.00463 - 21 0.00463 - 28 0.00463 - 29 0.00463 - 30 0.00926 - 31 0.00463 - 32 0.0463 - 40 0.00926 - 41 0.00926 - - 55 6 3 0 - 7 0.333 - 41 0.5 - 42 0.167 - - 12 3 3 0 - 40 0.333 - 41 0.333 - 43 0.333 - - 13 98717 46 40 - 0 0.0625 - 1 0.000365 - 2 0.0342 - 3 0.00661 - 4 0.0085 - 5 0.000152 - 6 6.08e-05 - 7 0.33 - 8 0.00775 - 9 0.00124 - 10 5.06e-05 - 12 0.0236 - 13 0.004 - 14 0.000952 - 15 0.00478 - 16 3.04e-05 - 17 2.03e-05 - 18 2.03e-05 - 19 0.00561 - 20 0.000274 - 21 0.0242 - 22 0.00352 - 23 0.000111 - 24 0.000537 - 25 4.05e-05 - 26 0.051 - 28 0.00134 - 29 0.0429 - 30 0.00867 - 31 0.0138 - 32 0.00181 - 33 0.0202 - 34 0.0105 - 35 0.00329 - 36 0.000243 - 37 0.00321 - 38 3.04e-05 - 39 0.000263 - 40 0.146 - 41 0.15 - 42 0.015 - 43 0.00203 - 44 0.002 - 45 0.00284 - 46 0.00573 - 47 0.000669 - - 0 3 3 0 - 3 0.333 - 7 0.333 - 41 0.333 - - 2 783 25 0 - 0 0.0396 - 2 0.0179 - 4 0.00383 - 6 0.00128 - 7 0.298 - 8 0.00383 - 12 0.0204 - 21 0.0153 - 26 0.0383 - 29 0.014 - 30 0.00511 - 31 0.0153 - 32 0.014 - 33 0.0115 - 34 0.0102 - 35 0.00255 - 37 0.00383 - 40 0.25 - 41 0.183 - 42 0.0307 - 43 0.00383 - 44 0.00255 - 45 0.00511 - 46 0.00894 - 47 0.00128 - - 3 4034 35 0 - 0 0.0151 - 1 0.000496 - 2 0.0288 - 3 0.0654 - 4 0.0206 - 7 0.335 - 8 0.0107 - 9 0.00868 - 12 0.00645 - 13 0.00372 - 14 0.000496 - 15 0.00843 - 19 0.00347 - 20 0.000744 - 21 0.0121 - 22 0.00198 - 24 0.000496 - 26 0.128 - 28 0.000496 - 29 0.0129 - 30 0.00397 - 31 0.00744 - 32 0.000248 - 33 0.00645 - 34 0.00347 - 35 0.00198 - 37 0.00223 - 40 0.143 - 41 0.127 - 42 0.0273 - 43 0.00322 - 44 0.00545 - 45 0.00223 - 46 0.00149 - 47 0.000992 - - 4 30713 45 0 - 0 0.078 - 1 0.000456 - 2 0.022 - 3 0.00156 - 4 0.00834 - 5 0.000195 - 6 3.26e-05 - 7 0.359 - 8 0.00703 - 9 0.000977 - 10 9.77e-05 - 12 0.0316 - 13 0.00371 - 14 0.00107 - 15 0.00391 - 16 6.51e-05 - 18 6.51e-05 - 19 0.00834 - 20 0.000456 - 21 0.0346 - 22 0.00866 - 23 0.000195 - 24 0.000912 - 25 3.26e-05 - 26 0.0489 - 28 0.00166 - 29 0.0524 - 30 0.00853 - 31 0.0151 - 32 0.00147 - 33 0.0292 - 34 0.013 - 35 0.00293 - 36 0.000293 - 37 0.00414 - 38 3.26e-05 - 39 0.000521 - 40 0.108 - 41 0.125 - 42 0.00856 - 43 0.00143 - 44 0.000814 - 45 0.00378 - 46 0.00199 - 47 0.000358 - - 6 8 6 0 - 0 0.125 - 2 0.125 - 7 0.25 - 40 0.125 - 41 0.125 - 42 0.25 - - 7 79 12 0 - 0 0.0759 - 2 0.038 - 7 0.152 - 12 0.0253 - 15 0.0127 - 21 0.0253 - 26 0.0253 - 30 0.0253 - 31 0.0127 - 33 0.0127 - 40 0.392 - 41 0.203 - - 8 20150 43 0 - 0 0.0496 - 1 0.000397 - 2 0.0359 - 3 0.00179 - 4 0.00794 - 5 0.000199 - 6 4.96e-05 - 7 0.34 - 8 0.00591 - 9 0.000397 - 10 9.93e-05 - 12 0.0205 - 13 0.00437 - 14 0.000794 - 15 0.00536 - 16 4.96e-05 - 19 0.00541 - 20 0.000149 - 21 0.0172 - 22 0.000844 - 23 4.96e-05 - 24 0.000248 - 25 4.96e-05 - 26 0.0461 - 28 0.00124 - 29 0.032 - 30 0.0103 - 31 0.0154 - 32 0.000943 - 33 0.0144 - 34 0.00983 - 35 0.00407 - 36 0.000248 - 37 0.00323 - 39 9.93e-05 - 40 0.175 - 41 0.158 - 42 0.0168 - 43 0.00159 - 44 0.00199 - 45 0.00149 - 46 0.00928 - 47 0.000596 - - 9 517 25 0 - 0 0.0406 - 2 0.0426 - 4 0.00387 - 7 0.453 - 8 0.0058 - 12 0.0174 - 13 0.00193 - 15 0.00193 - 17 0.00193 - 19 0.00387 - 21 0.0193 - 26 0.0754 - 29 0.00774 - 30 0.0155 - 31 0.0058 - 32 0.0058 - 33 0.0193 - 34 0.00387 - 40 0.128 - 41 0.112 - 42 0.0251 - 43 0.00193 - 44 0.00193 - 45 0.00193 - 46 0.00387 - - 10 469 25 0 - 0 0.0768 - 2 0.0171 - 4 0.0149 - 7 0.36 - 8 0.0149 - 12 0.0213 - 13 0.00426 - 14 0.00426 - 15 0.0064 - 19 0.0107 - 21 0.032 - 26 0.0597 - 29 0.064 - 30 0.0107 - 31 0.00426 - 32 0.00426 - 33 0.0235 - 35 0.00426 - 37 0.00213 - 39 0.00213 - 40 0.109 - 41 0.134 - 42 0.0149 - 44 0.00213 - 46 0.00213 - - 13 12677 39 0 - 0 0.0652 - 1 0.000473 - 2 0.0461 - 3 0.00252 - 4 0.00529 - 7 0.248 - 8 0.00718 - 9 0.000631 - 12 0.0242 - 13 0.00363 - 14 0.000631 - 15 0.00552 - 17 7.89e-05 - 19 0.00387 - 20 0.000158 - 21 0.0204 - 22 0.000868 - 24 0.000158 - 26 0.0311 - 28 0.00142 - 29 0.0506 - 30 0.00812 - 31 0.0177 - 32 0.00252 - 33 0.02 - 34 0.0165 - 35 0.00371 - 36 0.000473 - 37 0.00331 - 38 7.89e-05 - 39 0.000237 - 40 0.189 - 41 0.186 - 42 0.0185 - 43 0.00174 - 44 0.00268 - 45 0.00316 - 46 0.00702 - 47 0.0011 - - 14 957 30 0 - 0 0.0742 - 1 0.00104 - 2 0.0366 - 3 0.0115 - 4 0.00522 - 7 0.222 - 8 0.00522 - 12 0.023 - 13 0.00209 - 14 0.00104 - 15 0.00522 - 19 0.00313 - 21 0.023 - 24 0.00104 - 26 0.0303 - 29 0.0815 - 30 0.00104 - 31 0.0219 - 32 0.00418 - 33 0.0136 - 34 0.0167 - 35 0.00209 - 37 0.00104 - 40 0.181 - 41 0.203 - 42 0.0167 - 43 0.00104 - 44 0.00522 - 45 0.00418 - 46 0.00313 - - 15 3706 37 0 - 0 0.0815 - 2 0.0364 - 3 0.0054 - 4 0.00729 - 7 0.181 - 8 0.00648 - 9 0.00108 - 12 0.0324 - 13 0.00863 - 14 0.00054 - 15 0.00405 - 19 0.00189 - 20 0.00027 - 21 0.0216 - 22 0.00189 - 23 0.000809 - 24 0.00027 - 26 0.0321 - 28 0.000809 - 29 0.11 - 30 0.00756 - 31 0.0165 - 32 0.0027 - 33 0.0262 - 34 0.0132 - 35 0.0108 - 36 0.000809 - 37 0.00162 - 39 0.00054 - 40 0.174 - 41 0.186 - 42 0.0135 - 43 0.0027 - 44 0.0027 - 45 0.00513 - 46 0.00243 - 47 0.00027 - - 16 73 10 0 - 0 0.0685 - 2 0.0411 - 7 0.219 - 13 0.0137 - 15 0.0411 - 21 0.0548 - 26 0.0822 - 29 0.123 - 40 0.178 - 41 0.178 - - 18 2 2 0 - 2 0.5 - 21 0.5 - - 19 13 2 0 - 7 0.231 - 41 0.769 - - 20 2788 31 0 - 0 0.0897 - 2 0.0308 - 3 0.000717 - 4 0.00825 - 5 0.00108 - 7 0.303 - 8 0.00933 - 12 0.0233 - 13 0.00287 - 14 0.000717 - 15 0.00323 - 19 0.00143 - 21 0.0326 - 22 0.00179 - 24 0.00251 - 26 0.0976 - 28 0.00395 - 29 0.0334 - 30 0.00825 - 31 0.00753 - 32 0.000717 - 33 0.0197 - 34 0.00108 - 37 0.0043 - 39 0.000359 - 40 0.145 - 41 0.142 - 42 0.0169 - 44 0.00215 - 45 0.00251 - 46 0.00359 - - 21 101 20 0 - 0 0.0693 - 2 0.0396 - 4 0.0297 - 7 0.297 - 8 0.0297 - 12 0.0396 - 14 0.0099 - 15 0.0099 - 19 0.0099 - 21 0.0297 - 26 0.0396 - 29 0.0198 - 33 0.0396 - 35 0.0099 - 40 0.0693 - 41 0.208 - 42 0.0099 - 43 0.0099 - 44 0.0198 - 46 0.0099 - - 22 4 3 0 - 7 0.25 - 8 0.25 - 41 0.5 - - 28 6 5 0 - 7 0.167 - 15 0.167 - 26 0.167 - 40 0.333 - 41 0.167 - - 29 9 3 0 - 0 0.111 - 7 0.667 - 40 0.222 - - 30 711 25 0 - 0 0.0394 - 1 0.00141 - 2 0.0338 - 4 0.00422 - 7 0.422 - 8 0.00844 - 9 0.00141 - 12 0.0197 - 13 0.00141 - 15 0.00281 - 19 0.00422 - 21 0.0127 - 26 0.0352 - 29 0.038 - 30 0.00985 - 31 0.0155 - 32 0.00422 - 33 0.0113 - 34 0.00844 - 35 0.00281 - 40 0.148 - 41 0.152 - 42 0.0197 - 45 0.00141 - 46 0.00281 - - 31 547 23 0 - 0 0.0622 - 2 0.0329 - 3 0.00183 - 4 0.00366 - 7 0.419 - 8 0.00183 - 12 0.0347 - 13 0.00183 - 14 0.00183 - 15 0.00183 - 19 0.00366 - 21 0.0165 - 26 0.0548 - 29 0.00548 - 30 0.00914 - 31 0.00548 - 33 0.0219 - 34 0.00366 - 35 0.00548 - 40 0.163 - 41 0.126 - 42 0.0201 - 44 0.00366 - - 34 4 4 0 - 2 0.25 - 7 0.25 - 40 0.25 - 44 0.25 - - 35 2 2 0 - 5 0.5 - 7 0.5 - - 40 6 5 0 - 0 0.167 - 40 0.333 - 42 0.167 - 43 0.167 - 47 0.167 - - 41 22 10 0 - 0 0.0455 - 2 0.0455 - 12 0.0455 - 26 0.0455 - 29 0.136 - 31 0.0455 - 34 0.0455 - 40 0.273 - 41 0.227 - 43 0.0909 - - 42 5 2 0 - 7 0.2 - 40 0.8 - - 43 16 9 0 - 0 0.25 - 7 0.125 - 8 0.0625 - 12 0.0625 - 29 0.0625 - 33 0.0625 - 35 0.0625 - 40 0.125 - 41 0.188 - - 44 11 2 0 - 7 0.182 - 43 0.818 - - 45 138 8 0 - 0 0.0145 - 7 0.188 - 8 0.00725 - 21 0.00725 - 26 0.029 - 40 0.116 - 41 0.0725 - 46 0.565 - - 46 169 21 0 - 0 0.0592 - 2 0.0296 - 4 0.0178 - 7 0.325 - 8 0.00592 - 12 0.0237 - 15 0.00592 - 19 0.0118 - 21 0.0118 - 26 0.0237 - 29 0.0355 - 30 0.0296 - 31 0.0118 - 33 0.0355 - 34 0.0473 - 37 0.00592 - 40 0.148 - 41 0.142 - 42 0.0178 - 44 0.00592 - 45 0.00592 - - 47 13978 39 0 - 0 0.0505 - 1 0.000215 - 2 0.0552 - 3 0.0124 - 4 0.0107 - 6 0.000215 - 7 0.343 - 8 0.0098 - 9 0.00114 - 12 0.0152 - 13 0.00501 - 14 0.00157 - 15 0.00558 - 19 0.00622 - 20 0.000215 - 21 0.022 - 22 0.00172 - 23 7.15e-05 - 24 0.000358 - 25 0.000143 - 26 0.0519 - 28 0.00143 - 29 0.028 - 30 0.00959 - 31 0.01 - 32 0.00272 - 33 0.0132 - 34 0.00637 - 35 0.00265 - 37 0.00286 - 38 7.15e-05 - 40 0.131 - 41 0.166 - 42 0.0189 - 43 0.00365 - 44 0.0015 - 45 0.0015 - 46 0.00651 - 47 0.00136 - - 48 2092 30 0 - 0 0.0344 - 2 0.0191 - 3 0.000956 - 4 0.0086 - 5 0.000478 - 7 0.497 - 8 0.0196 - 12 0.012 - 13 0.00287 - 14 0.000478 - 15 0.00191 - 19 0.00335 - 20 0.000478 - 21 0.00956 - 24 0.000478 - 26 0.0531 - 28 0.000478 - 29 0.0129 - 30 0.0139 - 31 0.0167 - 33 0.0163 - 34 0.00717 - 35 0.000956 - 37 0.00239 - 40 0.132 - 41 0.106 - 42 0.0201 - 44 0.000956 - 45 0.00143 - 46 0.00478 - - 49 17 5 0 - 7 0.529 - 21 0.0588 - 30 0.0588 - 40 0.176 - 41 0.176 - - 54 152 19 0 - 0 0.0658 - 2 0.0263 - 4 0.00658 - 7 0.289 - 12 0.0263 - 13 0.00658 - 14 0.00658 - 15 0.0132 - 19 0.00658 - 21 0.0132 - 26 0.0132 - 29 0.132 - 31 0.00658 - 33 0.0132 - 34 0.0461 - 35 0.0132 - 40 0.158 - 41 0.151 - 45 0.00658 - - 55 2721 34 0 - 0 0.0978 - 1 0.000368 - 2 0.0298 - 3 0.0011 - 4 0.00257 - 7 0.27 - 8 0.00551 - 12 0.0305 - 13 0.00147 - 14 0.000735 - 15 0.00368 - 19 0.000735 - 21 0.0243 - 22 0.0011 - 24 0.000368 - 26 0.0724 - 28 0.000368 - 29 0.0592 - 30 0.00515 - 31 0.00368 - 32 0.00147 - 33 0.0287 - 34 0.00331 - 35 0.00147 - 37 0.00184 - 39 0.000368 - 40 0.166 - 41 0.16 - 42 0.0103 - 43 0.00221 - 44 0.0011 - 45 0.00845 - 46 0.00257 - 47 0.0011 - - 57 1 1 0 - 31 1 - - 58 31 13 0 - 0 0.0968 - 2 0.0323 - 4 0.0323 - 7 0.194 - 13 0.0645 - 21 0.0323 - 26 0.0323 - 29 0.0323 - 31 0.0645 - 33 0.0645 - 40 0.194 - 41 0.129 - 46 0.0323 - - 60 950 25 0 - 0 0.0137 - 2 0.0179 - 3 0.0621 - 4 0.0189 - 7 0.479 - 8 0.0211 - 9 0.0211 - 12 0.00211 - 13 0.00105 - 15 0.00316 - 21 0.0189 - 22 0.00632 - 26 0.0653 - 29 0.0105 - 30 0.00211 - 31 0.0105 - 32 0.00526 - 33 0.00211 - 34 0.00211 - 40 0.132 - 41 0.0705 - 42 0.00947 - 43 0.00421 - 44 0.02 - 46 0.00105 - - 68 43 12 0 - 0 0.0465 - 2 0.0233 - 7 0.186 - 8 0.0233 - 12 0.0233 - 26 0.0233 - 29 0.0465 - 31 0.0465 - 36 0.0233 - 40 0.279 - 41 0.233 - 42 0.0465 - - 14 55733 44 33 - 0 0.0834 - 1 0.000718 - 2 0.044 - 3 0.0017 - 4 0.0176 - 5 8.97e-05 - 7 0.251 - 8 0.0175 - 9 0.001 - 10 3.59e-05 - 12 0.0299 - 13 0.00215 - 14 0.000807 - 15 0.0023 - 16 3.59e-05 - 17 5.38e-05 - 18 3.59e-05 - 19 0.00468 - 20 0.000161 - 21 0.0335 - 22 0.00206 - 23 0.000126 - 24 0.000646 - 25 1.79e-05 - 26 0.0419 - 28 0.00355 - 29 0.0527 - 30 0.0145 - 31 0.0224 - 32 0.0385 - 33 0.00206 - 34 0.0131 - 35 0.00736 - 36 0.000467 - 37 0.00224 - 39 0.000323 - 40 0.144 - 41 0.13 - 42 0.0201 - 43 0.00169 - 44 0.00452 - 45 0.00237 - 46 0.00397 - 47 0.00106 - - 2 903 28 0 - 0 0.0709 - 2 0.0244 - 4 0.00443 - 7 0.199 - 8 0.00443 - 9 0.00221 - 12 0.0321 - 19 0.00554 - 21 0.0377 - 22 0.00221 - 26 0.0255 - 28 0.00111 - 29 0.0532 - 30 0.0166 - 31 0.0233 - 32 0.041 - 33 0.00775 - 34 0.0177 - 35 0.00443 - 36 0.00111 - 37 0.00221 - 40 0.229 - 41 0.142 - 42 0.031 - 43 0.00554 - 45 0.00111 - 46 0.00554 - 47 0.00886 - - 3 4221 37 0 - 0 0.0315 - 2 0.0334 - 4 0.129 - 7 0.211 - 8 0.0339 - 9 0.00379 - 12 0.00782 - 13 0.00355 - 14 0.000237 - 15 0.00498 - 16 0.000237 - 19 0.00498 - 20 0.000237 - 21 0.0576 - 22 0.00426 - 23 0.000237 - 25 0.000237 - 26 0.0431 - 28 0.00118 - 29 0.0206 - 30 0.00805 - 31 0.0199 - 32 0.00877 - 33 0.00142 - 34 0.00332 - 35 0.00284 - 36 0.000474 - 37 0.00118 - 39 0.000711 - 40 0.154 - 41 0.137 - 42 0.0566 - 43 0.00237 - 44 0.00877 - 45 0.000474 - 46 0.00118 - 47 0.00166 - - 4 5302 37 0 - 0 0.151 - 1 0.00132 - 2 0.0228 - 3 0.000566 - 4 0.00622 - 7 0.247 - 8 0.0104 - 9 0.000377 - 12 0.0541 - 13 0.0017 - 14 0.00189 - 15 0.00302 - 17 0.000189 - 19 0.0164 - 20 0.000377 - 21 0.0353 - 22 0.00113 - 23 0.000189 - 24 0.00207 - 26 0.0313 - 28 0.00453 - 29 0.0621 - 30 0.00962 - 31 0.0226 - 32 0.0732 - 33 0.00245 - 34 0.0143 - 35 0.00905 - 36 0.000566 - 37 0.00226 - 40 0.101 - 41 0.0934 - 42 0.0106 - 43 0.000943 - 44 0.0017 - 45 0.00245 - 46 0.00264 - - 6 7 5 0 - 7 0.429 - 26 0.143 - 31 0.143 - 40 0.143 - 44 0.143 - - 8 12828 41 0 - 0 0.075 - 1 0.00039 - 2 0.0472 - 3 0.000468 - 4 0.00834 - 5 7.8e-05 - 7 0.251 - 8 0.0159 - 9 0.000312 - 12 0.0288 - 13 0.00195 - 14 0.00101 - 15 0.0014 - 16 7.8e-05 - 17 7.8e-05 - 18 7.8e-05 - 19 0.00366 - 21 0.0241 - 22 0.00148 - 23 7.8e-05 - 24 0.000156 - 26 0.0391 - 28 0.00226 - 29 0.0366 - 30 0.0132 - 31 0.0214 - 32 0.029 - 33 0.00187 - 34 0.0136 - 35 0.0067 - 36 0.000546 - 37 0.00249 - 39 0.000702 - 40 0.18 - 41 0.153 - 42 0.0216 - 43 0.00164 - 44 0.00639 - 45 0.00226 - 46 0.00514 - 47 0.00156 - - 9 459 25 0 - 0 0.0566 - 1 0.00218 - 2 0.0501 - 4 0.00436 - 7 0.322 - 8 0.00871 - 12 0.0392 - 13 0.00654 - 15 0.00218 - 19 0.00654 - 21 0.0349 - 26 0.0588 - 28 0.00436 - 29 0.0174 - 30 0.0174 - 31 0.0109 - 32 0.0196 - 34 0.0131 - 35 0.00654 - 37 0.00436 - 40 0.15 - 41 0.146 - 42 0.0131 - 44 0.00218 - 46 0.00218 - - 10 269 24 0 - 0 0.126 - 2 0.0112 - 4 0.00372 - 7 0.216 - 8 0.0149 - 12 0.0595 - 13 0.00372 - 19 0.0186 - 21 0.0297 - 24 0.00372 - 26 0.0335 - 28 0.00372 - 29 0.0335 - 30 0.0297 - 31 0.0112 - 32 0.1 - 33 0.00743 - 34 0.00372 - 35 0.00372 - 40 0.0818 - 41 0.167 - 42 0.0186 - 43 0.00372 - 45 0.0149 - - 13 9556 39 0 - 0 0.0876 - 1 0.00115 - 2 0.0643 - 3 0.000837 - 4 0.0068 - 5 0.000105 - 7 0.187 - 8 0.0139 - 9 0.000733 - 12 0.0274 - 13 0.00199 - 14 0.000105 - 15 0.00199 - 18 0.000105 - 19 0.00199 - 20 0.000314 - 21 0.0331 - 22 0.00167 - 23 0.000105 - 24 0.000523 - 26 0.0328 - 28 0.00262 - 29 0.0671 - 30 0.013 - 31 0.0202 - 32 0.0419 - 33 0.0023 - 34 0.0142 - 35 0.0045 - 36 0.000209 - 37 0.00188 - 40 0.173 - 41 0.167 - 42 0.0168 - 43 0.00188 - 44 0.0023 - 45 0.0023 - 46 0.00366 - 47 0.000942 - - 14 538 26 0 - 0 0.0874 - 2 0.0502 - 4 0.00929 - 7 0.18 - 8 0.00929 - 10 0.00186 - 12 0.0297 - 13 0.00558 - 15 0.00186 - 21 0.0335 - 26 0.0372 - 28 0.00186 - 29 0.0967 - 30 0.00558 - 31 0.00929 - 32 0.0409 - 33 0.00372 - 34 0.00929 - 35 0.00558 - 40 0.19 - 41 0.139 - 42 0.0353 - 44 0.00186 - 45 0.00743 - 46 0.00558 - 47 0.00186 - - 15 2001 34 0 - 0 0.125 - 1 0.001 - 2 0.037 - 3 0.006 - 4 0.005 - 7 0.147 - 8 0.013 - 12 0.0335 - 13 0.0005 - 14 0.0015 - 15 0.0045 - 19 0.003 - 21 0.026 - 22 0.003 - 23 0.0005 - 26 0.039 - 28 0.0025 - 29 0.141 - 30 0.0155 - 31 0.015 - 32 0.0465 - 33 0.004 - 34 0.0145 - 35 0.008 - 37 0.0025 - 39 0.0005 - 40 0.14 - 41 0.133 - 42 0.0145 - 43 0.0025 - 44 0.0045 - 45 0.004 - 46 0.003 - 47 0.0015 - - 16 26 9 0 - 0 0.115 - 7 0.0769 - 26 0.115 - 29 0.269 - 32 0.0385 - 40 0.231 - 41 0.0769 - 42 0.0385 - 44 0.0385 - - 19 6 5 0 - 12 0.167 - 21 0.333 - 29 0.167 - 35 0.167 - 40 0.167 - - 20 1519 34 0 - 0 0.107 - 1 0.000658 - 2 0.0434 - 3 0.00132 - 4 0.0105 - 5 0.000658 - 7 0.244 - 8 0.00658 - 9 0.00132 - 12 0.0217 - 13 0.00263 - 14 0.00197 - 15 0.000658 - 19 0.00132 - 21 0.0421 - 22 0.00263 - 23 0.000658 - 24 0.00329 - 26 0.0737 - 28 0.0118 - 29 0.029 - 30 0.00592 - 31 0.0151 - 32 0.0263 - 33 0.00197 - 35 0.00263 - 37 0.00395 - 39 0.000658 - 40 0.185 - 41 0.132 - 42 0.0132 - 43 0.000658 - 45 0.00395 - 46 0.00197 - - 21 38 15 0 - 0 0.0789 - 2 0.0263 - 7 0.316 - 12 0.0263 - 21 0.0263 - 26 0.105 - 29 0.0263 - 30 0.0526 - 31 0.0526 - 32 0.0526 - 35 0.0526 - 40 0.0263 - 41 0.105 - 42 0.0263 - 46 0.0263 - - 23 2 1 0 - 21 1 - - 28 16 6 0 - 7 0.562 - 12 0.125 - 26 0.0625 - 28 0.125 - 32 0.0625 - 41 0.0625 - - 29 9 5 0 - 7 0.444 - 12 0.222 - 15 0.111 - 21 0.111 - 40 0.111 - - 30 480 24 0 - 0 0.0562 - 2 0.0542 - 4 0.00417 - 7 0.296 - 8 0.0104 - 12 0.0229 - 13 0.00208 - 15 0.00417 - 19 0.00417 - 21 0.0208 - 22 0.00208 - 26 0.0312 - 29 0.0521 - 30 0.00625 - 31 0.0146 - 32 0.0229 - 33 0.00208 - 34 0.0104 - 35 0.00417 - 39 0.00208 - 40 0.2 - 41 0.169 - 42 0.00625 - 46 0.00208 - - 31 394 24 0 - 0 0.0558 - 2 0.0508 - 4 0.00761 - 5 0.00254 - 7 0.289 - 8 0.0228 - 12 0.0431 - 19 0.00761 - 21 0.0305 - 26 0.0431 - 29 0.0203 - 30 0.0178 - 31 0.0152 - 32 0.0279 - 33 0.00254 - 34 0.0178 - 35 0.00761 - 40 0.15 - 41 0.142 - 42 0.0127 - 43 0.00254 - 44 0.0203 - 45 0.00508 - 46 0.00508 - - 34 3 2 0 - 7 0.667 - 44 0.333 - - 41 4 4 0 - 7 0.25 - 12 0.25 - 26 0.25 - 41 0.25 - - 42 3 3 0 - 7 0.333 - 40 0.333 - 46 0.333 - - 43 15 7 0 - 0 0.0667 - 2 0.133 - 7 0.0667 - 12 0.133 - 21 0.0667 - 40 0.133 - 41 0.4 - - 44 4 1 0 - 43 1 - - 45 61 6 0 - 0 0.0492 - 7 0.115 - 26 0.0328 - 40 0.148 - 41 0.0984 - 46 0.557 - - 46 98 17 0 - 0 0.0408 - 2 0.051 - 4 0.0102 - 7 0.214 - 8 0.0306 - 21 0.0102 - 26 0.0918 - 29 0.0102 - 30 0.0102 - 31 0.0306 - 32 0.0306 - 34 0.0612 - 35 0.0102 - 36 0.0102 - 40 0.163 - 41 0.173 - 42 0.051 - - 47 13576 41 0 - 0 0.0748 - 1 0.000737 - 2 0.0447 - 3 0.00464 - 4 0.00722 - 5 7.37e-05 - 7 0.329 - 8 0.018 - 9 0.00147 - 10 7.37e-05 - 12 0.0322 - 13 0.0025 - 14 0.000958 - 15 0.00214 - 17 7.37e-05 - 19 0.00412 - 20 0.000221 - 21 0.0351 - 22 0.00258 - 23 7.37e-05 - 24 0.000737 - 26 0.0542 - 28 0.00567 - 29 0.0577 - 30 0.022 - 31 0.0306 - 32 0.0463 - 33 0.00147 - 34 0.0171 - 35 0.0127 - 36 0.000737 - 37 0.00302 - 39 0.000221 - 40 0.0806 - 41 0.0854 - 42 0.0123 - 43 0.00125 - 44 0.00133 - 45 0.00243 - 46 0.00258 - 47 0.00081 - - 48 813 27 0 - 0 0.0652 - 1 0.00123 - 2 0.0271 - 4 0.00738 - 7 0.26 - 8 0.0726 - 9 0.00123 - 12 0.0123 - 15 0.00123 - 19 0.00369 - 21 0.0308 - 26 0.0308 - 28 0.00369 - 29 0.0246 - 30 0.0271 - 31 0.0308 - 32 0.0185 - 33 0.00123 - 34 0.00984 - 35 0.00615 - 40 0.194 - 41 0.143 - 42 0.016 - 43 0.00123 - 44 0.00123 - 45 0.00123 - 46 0.00861 - - 54 11 8 0 - 2 0.0909 - 7 0.0909 - 21 0.0909 - 26 0.0909 - 29 0.182 - 32 0.273 - 34 0.0909 - 40 0.0909 - - 55 1044 28 0 - 0 0.136 - 1 0.000958 - 2 0.0345 - 3 0.000958 - 4 0.00287 - 7 0.221 - 8 0.0125 - 12 0.0354 - 13 0.00192 - 15 0.000958 - 21 0.0172 - 22 0.00287 - 24 0.00192 - 26 0.0489 - 28 0.00479 - 29 0.0766 - 30 0.00958 - 31 0.00287 - 32 0.0326 - 33 0.00287 - 34 0.000958 - 35 0.000958 - 37 0.00192 - 40 0.199 - 41 0.126 - 42 0.0153 - 45 0.0067 - 46 0.000958 - - 58 20 11 0 - 0 0.1 - 1 0.05 - 2 0.1 - 7 0.15 - 8 0.05 - 21 0.05 - 31 0.05 - 40 0.2 - 41 0.15 - 42 0.05 - 44 0.05 - - 60 1381 27 0 - 0 0.034 - 2 0.021 - 4 0.0587 - 7 0.254 - 8 0.0391 - 9 0.00145 - 12 0.0101 - 13 0.00217 - 14 0.000724 - 15 0.00579 - 19 0.00145 - 21 0.0434 - 22 0.00362 - 26 0.0268 - 29 0.0224 - 30 0.0101 - 31 0.0203 - 32 0.00507 - 33 0.000724 - 34 0.00434 - 35 0.00217 - 40 0.177 - 41 0.159 - 42 0.0485 - 43 0.00362 - 44 0.0434 - 46 0.000724 - - 68 113 16 0 - 0 0.0619 - 2 0.0265 - 4 0.00885 - 7 0.142 - 8 0.00885 - 12 0.0177 - 21 0.0531 - 26 0.00885 - 29 0.0442 - 31 0.00885 - 32 0.0177 - 33 0.00885 - 34 0.0354 - 40 0.363 - 41 0.177 - 42 0.0177 - - 15 38960 40 26 - 0 0.0826 - 1 7.7e-05 - 2 0.0494 - 3 0.039 - 4 0.00503 - 5 5.13e-05 - 6 2.57e-05 - 7 0.091 - 8 0.00395 - 9 0.000231 - 12 0.0263 - 13 0.00357 - 14 0.00113 - 15 0.00572 - 17 2.57e-05 - 18 0.000642 - 19 0.00167 - 20 0.000282 - 21 0.0216 - 22 0.000796 - 24 7.7e-05 - 26 0.0177 - 28 0.0021 - 29 0.128 - 30 0.00359 - 31 0.00182 - 32 0.00347 - 33 0.0401 - 34 0.00228 - 35 0.00139 - 37 0.00126 - 39 0.000616 - 40 0.125 - 41 0.3 - 42 0.016 - 43 0.00726 - 44 0.00667 - 45 0.00195 - 46 0.00385 - 47 0.00316 - - 2 1047 29 0 - 0 0.0965 - 2 0.0506 - 4 0.00573 - 7 0.085 - 8 0.00669 - 12 0.022 - 13 0.00382 - 14 0.000955 - 15 0.00287 - 18 0.000955 - 19 0.000955 - 21 0.0172 - 26 0.0086 - 28 0.00191 - 29 0.11 - 30 0.00382 - 32 0.0181 - 33 0.0162 - 34 0.00573 - 35 0.000955 - 37 0.000955 - 40 0.226 - 41 0.29 - 42 0.0162 - 43 0.000955 - 44 0.00191 - 45 0.000955 - 46 0.00287 - 47 0.000955 - - 3 26 9 0 - 2 0.0385 - 3 0.0385 - 7 0.154 - 12 0.0385 - 15 0.0385 - 29 0.192 - 40 0.0769 - 41 0.385 - 42 0.0385 - - 4 2090 35 0 - 0 0.116 - 2 0.0656 - 3 0.0172 - 4 0.0067 - 7 0.201 - 8 0.0067 - 9 0.000957 - 12 0.0536 - 13 0.00335 - 14 0.00431 - 15 0.011 - 19 0.00239 - 20 0.00144 - 21 0.0292 - 22 0.00191 - 24 0.000478 - 26 0.0316 - 28 0.00574 - 29 0.0914 - 30 0.00526 - 31 0.00526 - 32 0.00526 - 33 0.0421 - 34 0.00431 - 35 0.00335 - 37 0.000957 - 39 0.000478 - 40 0.106 - 41 0.15 - 42 0.011 - 43 0.00144 - 44 0.00383 - 45 0.00335 - 46 0.00383 - 47 0.00287 - - 6 28 8 0 - 0 0.0714 - 2 0.179 - 7 0.0357 - 29 0.107 - 40 0.0714 - 41 0.464 - 42 0.0357 - 44 0.0357 - - 7 37 9 0 - 2 0.0811 - 3 0.0811 - 12 0.027 - 26 0.027 - 29 0.0541 - 40 0.378 - 41 0.27 - 42 0.027 - 46 0.0541 - - 8 578 29 0 - 0 0.045 - 2 0.0346 - 3 0.0225 - 4 0.00865 - 7 0.133 - 8 0.00346 - 9 0.00173 - 12 0.026 - 13 0.00173 - 14 0.00346 - 15 0.00173 - 19 0.00519 - 21 0.00519 - 26 0.0242 - 28 0.00346 - 29 0.026 - 30 0.00692 - 31 0.00173 - 32 0.00692 - 33 0.0173 - 34 0.0104 - 35 0.00346 - 37 0.00519 - 40 0.253 - 41 0.325 - 42 0.0138 - 44 0.00346 - 46 0.00173 - 47 0.00519 - - 9 2 2 0 - 0 0.5 - 33 0.5 - - 13 164 20 0 - 0 0.0793 - 2 0.0244 - 3 0.0122 - 7 0.0976 - 12 0.0122 - 13 0.0122 - 15 0.0122 - 21 0.0183 - 26 0.0122 - 29 0.122 - 30 0.0061 - 31 0.0061 - 33 0.0427 - 34 0.0061 - 37 0.0122 - 40 0.122 - 41 0.317 - 42 0.0427 - 44 0.0305 - 46 0.0122 - - 15 19923 36 0 - 0 0.0786 - 2 0.0509 - 3 0.00181 - 4 0.00467 - 7 0.0876 - 8 0.00301 - 9 0.000151 - 12 0.0213 - 13 0.00221 - 14 0.000803 - 15 0.00427 - 18 0.000452 - 19 0.00136 - 20 0.000201 - 21 0.0202 - 22 0.000803 - 24 5.02e-05 - 26 0.013 - 28 0.00176 - 29 0.151 - 30 0.00351 - 31 0.00131 - 32 0.00296 - 33 0.0504 - 34 0.00171 - 35 0.00161 - 37 0.000653 - 39 0.000452 - 40 0.113 - 41 0.34 - 42 0.0163 - 43 0.00407 - 44 0.0102 - 45 0.00216 - 46 0.00371 - 47 0.00386 - - 16 534 23 0 - 0 0.0337 - 2 0.073 - 4 0.00375 - 7 0.0974 - 8 0.00187 - 12 0.015 - 13 0.00375 - 15 0.00187 - 21 0.00749 - 26 0.0169 - 28 0.00187 - 29 0.152 - 30 0.00562 - 32 0.00375 - 33 0.0169 - 34 0.00187 - 35 0.00375 - 39 0.00187 - 40 0.204 - 41 0.307 - 42 0.0393 - 44 0.00187 - 47 0.00562 - - 20 11 8 0 - 0 0.0909 - 2 0.0909 - 7 0.182 - 26 0.0909 - 31 0.0909 - 40 0.273 - 41 0.0909 - 44 0.0909 - - 21 37 10 0 - 0 0.0541 - 2 0.027 - 7 0.108 - 13 0.0541 - 15 0.0541 - 29 0.027 - 33 0.027 - 40 0.243 - 41 0.378 - 42 0.027 - - 30 7 3 0 - 0 0.143 - 40 0.571 - 41 0.286 - - 31 8 7 0 - 2 0.125 - 7 0.25 - 12 0.125 - 33 0.125 - 34 0.125 - 41 0.125 - 42 0.125 - - 40 23 10 0 - 2 0.13 - 6 0.0435 - 7 0.13 - 29 0.087 - 33 0.0435 - 40 0.0435 - 41 0.391 - 43 0.0435 - 44 0.0435 - 47 0.0435 - - 41 51 7 0 - 2 0.0392 - 3 0.098 - 7 0.0196 - 29 0.0588 - 40 0.275 - 41 0.471 - 42 0.0392 - - 43 10 4 0 - 0 0.3 - 2 0.2 - 29 0.1 - 41 0.4 - - 44 8 2 0 - 41 0.125 - 43 0.875 - - 45 19 5 0 - 3 0.0526 - 7 0.211 - 40 0.105 - 41 0.211 - 46 0.421 - - 46 22 9 0 - 0 0.0909 - 7 0.0455 - 26 0.0455 - 29 0.0455 - 33 0.0455 - 40 0.0909 - 41 0.545 - 42 0.0455 - 46 0.0455 - - 47 14081 39 0 - 0 0.0871 - 1 0.000213 - 2 0.0447 - 3 0.101 - 4 0.0054 - 5 0.000142 - 7 0.076 - 8 0.0049 - 9 0.000142 - 12 0.0304 - 13 0.0054 - 14 0.00107 - 15 0.00746 - 17 7.1e-05 - 18 0.00107 - 19 0.00206 - 20 0.000284 - 21 0.0248 - 22 0.000781 - 24 7.1e-05 - 26 0.0229 - 28 0.00213 - 29 0.108 - 30 0.0032 - 31 0.00206 - 32 0.00284 - 33 0.0295 - 34 0.0022 - 35 0.00071 - 37 0.00199 - 39 0.000923 - 40 0.127 - 41 0.266 - 42 0.0149 - 43 0.0135 - 44 0.00241 - 45 0.00178 - 46 0.00355 - 47 0.0022 - - 48 43 13 0 - 0 0.14 - 2 0.0698 - 3 0.0233 - 7 0.14 - 8 0.0233 - 12 0.0698 - 26 0.0465 - 29 0.0698 - 31 0.0233 - 33 0.0233 - 40 0.186 - 41 0.163 - 42 0.0233 - - 54 20 6 0 - 0 0.05 - 7 0.3 - 29 0.1 - 33 0.05 - 40 0.3 - 41 0.2 - - 55 144 17 0 - 0 0.0347 - 2 0.0347 - 3 0.0139 - 7 0.236 - 12 0.0208 - 13 0.00694 - 21 0.0139 - 26 0.0208 - 29 0.181 - 30 0.0139 - 33 0.0347 - 40 0.111 - 41 0.25 - 42 0.00694 - 44 0.00694 - 46 0.00694 - 47 0.00694 - - 58 27 6 0 - 7 0.037 - 12 0.037 - 31 0.037 - 33 0.0741 - 40 0.593 - 41 0.222 - - 60 6 5 0 - 0 0.167 - 3 0.167 - 7 0.333 - 9 0.167 - 14 0.167 - - 16 1553 34 14 - 0 0.122 - 2 0.0599 - 3 0.00129 - 4 0.00515 - 5 0.000644 - 7 0.109 - 8 0.00515 - 9 0.000644 - 12 0.0399 - 13 0.00515 - 14 0.00193 - 15 0.00451 - 19 0.00258 - 20 0.000644 - 21 0.0258 - 22 0.000644 - 26 0.0232 - 28 0.000644 - 29 0.111 - 30 0.0058 - 31 0.00386 - 32 0.0367 - 33 0.0155 - 34 0.000644 - 35 0.0167 - 36 0.000644 - 40 0.127 - 41 0.214 - 42 0.0328 - 43 0.00386 - 44 0.00386 - 45 0.00193 - 46 0.00386 - 47 0.0135 - - 2 42 15 0 - 0 0.0714 - 2 0.0238 - 7 0.0952 - 19 0.0238 - 21 0.0714 - 28 0.0238 - 29 0.0238 - 31 0.0238 - 33 0.0238 - 35 0.0238 - 40 0.143 - 41 0.31 - 42 0.0714 - 45 0.0238 - 47 0.0476 - - 3 16 9 0 - 0 0.125 - 2 0.125 - 7 0.25 - 8 0.0625 - 12 0.0625 - 30 0.0625 - 31 0.0625 - 35 0.0625 - 41 0.188 - - 4 295 23 0 - 0 0.183 - 2 0.0542 - 4 0.00339 - 5 0.00339 - 7 0.0881 - 8 0.0136 - 12 0.0746 - 13 0.0102 - 19 0.00339 - 20 0.00339 - 21 0.0475 - 26 0.0373 - 29 0.119 - 30 0.0102 - 31 0.00339 - 32 0.0847 - 33 0.00339 - 35 0.0102 - 40 0.0915 - 41 0.132 - 42 0.0169 - 43 0.00339 - 45 0.00339 - - 8 87 15 0 - 0 0.207 - 2 0.023 - 7 0.115 - 12 0.0345 - 21 0.0115 - 26 0.023 - 29 0.046 - 31 0.0115 - 32 0.0805 - 34 0.0115 - 35 0.069 - 36 0.0115 - 40 0.149 - 41 0.161 - 42 0.046 - - 13 6 5 0 - 0 0.167 - 12 0.167 - 26 0.167 - 30 0.167 - 41 0.333 - - 15 766 24 0 - 0 0.0888 - 2 0.0614 - 3 0.00261 - 4 0.00522 - 7 0.101 - 8 0.00131 - 12 0.017 - 13 0.00392 - 15 0.00261 - 21 0.0157 - 22 0.00131 - 26 0.0144 - 29 0.144 - 30 0.00131 - 32 0.00653 - 33 0.0261 - 35 0.00653 - 40 0.148 - 41 0.273 - 42 0.0405 - 43 0.00392 - 44 0.00783 - 46 0.00522 - 47 0.0235 - - 16 35 13 0 - 0 0.0857 - 2 0.0286 - 4 0.0286 - 7 0.0857 - 12 0.0571 - 21 0.0571 - 26 0.0286 - 29 0.0286 - 32 0.0286 - 33 0.0286 - 40 0.0857 - 41 0.343 - 42 0.114 - - 21 5 4 0 - 0 0.2 - 2 0.2 - 7 0.2 - 42 0.4 - - 30 2 2 0 - 2 0.5 - 32 0.5 - - 45 1 1 0 - 46 1 - - 47 257 24 0 - 0 0.128 - 2 0.0778 - 4 0.00389 - 7 0.152 - 8 0.00778 - 9 0.00389 - 12 0.0623 - 13 0.00778 - 14 0.0117 - 15 0.0195 - 19 0.00778 - 21 0.0272 - 26 0.0389 - 29 0.0739 - 30 0.00778 - 31 0.00778 - 32 0.0661 - 35 0.0311 - 40 0.105 - 41 0.136 - 42 0.00778 - 43 0.00778 - 45 0.00389 - 46 0.00389 - - 48 8 7 0 - 7 0.125 - 12 0.125 - 32 0.125 - 33 0.125 - 40 0.125 - 41 0.25 - 47 0.125 - - 55 10 7 0 - 4 0.1 - 7 0.2 - 12 0.1 - 21 0.1 - 29 0.1 - 40 0.3 - 41 0.1 - - 60 11 6 0 - 0 0.273 - 7 0.0909 - 30 0.0909 - 35 0.182 - 40 0.182 - 41 0.182 - - 17 3 1 0 - 4 1 - - 18 8656 34 12 - 0 0.00508 - 2 0.0067 - 3 0.0261 - 4 0.000231 - 6 0.000231 - 7 0.00208 - 8 0.207 - 9 0.00173 - 10 0.026 - 12 0.00104 - 13 0.417 - 14 0.13 - 15 0.104 - 16 0.00381 - 19 0.000116 - 21 0.00555 - 22 0.000347 - 23 0.00208 - 26 0.000231 - 28 0.000347 - 29 0.00439 - 30 0.0117 - 31 0.00739 - 32 0.000462 - 33 0.00104 - 38 0.000578 - 39 0.0101 - 40 0.00485 - 41 0.00601 - 42 0.000231 - 43 0.000924 - 44 0.000231 - 45 0.0117 - 46 0.000231 - - 3 25 6 0 - 3 0.04 - 8 0.36 - 13 0.36 - 14 0.12 - 40 0.08 - 41 0.04 - - 6 2 2 0 - 13 0.5 - 46 0.5 - - 8 12 4 0 - 13 0.417 - 14 0.417 - 15 0.0833 - 29 0.0833 - - 13 2900 22 0 - 2 0.00103 - 3 0.0238 - 6 0.00069 - 7 0.00103 - 8 0.236 - 9 0.00172 - 10 0.04 - 13 0.477 - 14 0.132 - 15 0.0441 - 16 0.00103 - 21 0.00483 - 22 0.000345 - 23 0.0031 - 30 0.00793 - 31 0.00655 - 39 0.00931 - 40 0.00207 - 41 0.000345 - 42 0.000345 - 43 0.00069 - 45 0.00724 - - 14 544 15 0 - 2 0.00368 - 3 0.011 - 7 0.00184 - 8 0.0974 - 9 0.00184 - 10 0.00184 - 13 0.417 - 14 0.415 - 15 0.0129 - 23 0.00184 - 26 0.00368 - 30 0.0147 - 31 0.00735 - 40 0.00184 - 45 0.00735 - - 15 5059 31 0 - 0 0.0083 - 2 0.0103 - 3 0.0289 - 4 0.000395 - 7 0.00277 - 8 0.205 - 9 0.00178 - 10 0.0213 - 12 0.00178 - 13 0.381 - 14 0.0996 - 15 0.147 - 16 0.00534 - 19 0.000198 - 21 0.00672 - 22 0.000395 - 23 0.00158 - 29 0.00731 - 30 0.0134 - 31 0.00791 - 32 0.000791 - 33 0.00178 - 38 0.000988 - 39 0.0117 - 40 0.00633 - 41 0.00988 - 42 0.000198 - 43 0.00119 - 44 0.000395 - 45 0.015 - 46 0.000198 - - 16 66 9 0 - 0 0.0152 - 3 0.0303 - 8 0.121 - 13 0.545 - 14 0.0455 - 15 0.167 - 16 0.0455 - 30 0.0152 - 31 0.0152 - - 21 3 2 0 - 13 0.667 - 40 0.333 - - 28 1 1 0 - 0 1 - - 47 4 2 0 - 15 0.25 - 28 0.75 - - 55 3 2 0 - 2 0.333 - 13 0.667 - - 57 19 6 0 - 3 0.0526 - 8 0.0526 - 13 0.421 - 15 0.368 - 30 0.0526 - 39 0.0526 - - 19 17366 41 5 - 0 0.301 - 1 0.000173 - 2 0.0076 - 3 0.000864 - 4 0.012 - 5 0.000115 - 6 5.76e-05 - 7 0.0348 - 8 0.00749 - 9 0.00132 - 10 0.000115 - 12 0.124 - 13 0.00202 - 14 0.000749 - 15 0.000576 - 17 0.000115 - 18 0.000633 - 19 0.00161 - 20 0.000115 - 21 0.0537 - 22 0.00155 - 23 0.000173 - 24 0.00455 - 26 0.0163 - 28 0.0117 - 29 0.166 - 30 0.00242 - 31 0.0019 - 32 0.0774 - 33 0.106 - 34 0.000288 - 35 0.000633 - 37 0.00121 - 39 0.000288 - 40 0.0313 - 41 0.021 - 42 0.00334 - 43 0.000461 - 44 0.000921 - 45 0.00346 - 46 0.000461 - - 4 12 6 0 - 0 0.417 - 7 0.0833 - 12 0.25 - 29 0.0833 - 33 0.0833 - 40 0.0833 - - 13 2 2 0 - 26 0.5 - 40 0.5 - - 15 4 4 0 - 0 0.25 - 29 0.25 - 33 0.25 - 37 0.25 - - 21 3 2 0 - 12 0.667 - 41 0.333 - - 44 2 1 0 - 43 1 - - 20 34 11 0 - 0 0.0882 - 1 0.0588 - 13 0.0882 - 15 0.0294 - 21 0.0294 - 30 0.235 - 39 0.324 - 40 0.0294 - 41 0.0588 - 42 0.0294 - 43 0.0294 - - 21 674 33 12 - 0 0.049 - 2 0.0208 - 3 0.0089 - 4 0.0831 - 6 0.00148 - 7 0.2 - 8 0.0386 - 9 0.0134 - 12 0.0119 - 13 0.0326 - 14 0.0208 - 15 0.0208 - 19 0.0163 - 20 0.00148 - 21 0.0371 - 22 0.0089 - 26 0.0252 - 28 0.00297 - 29 0.00445 - 30 0.00593 - 31 0.00742 - 32 0.00445 - 33 0.0104 - 34 0.00148 - 37 0.00148 - 39 0.0089 - 40 0.168 - 41 0.169 - 42 0.0178 - 43 0.00148 - 44 0.00297 - 46 0.00148 - 47 0.00148 - - 2 50 13 0 - 3 0.02 - 4 0.38 - 8 0.02 - 9 0.02 - 13 0.14 - 14 0.08 - 15 0.1 - 21 0.06 - 28 0.02 - 39 0.02 - 40 0.06 - 41 0.06 - 42 0.02 - - 3 49 11 0 - 2 0.0408 - 3 0.0204 - 7 0.0612 - 8 0.0204 - 13 0.0816 - 29 0.0204 - 37 0.0204 - 40 0.571 - 41 0.122 - 42 0.0204 - 47 0.0204 - - 4 39 12 0 - 0 0.0256 - 4 0.0256 - 6 0.0256 - 7 0.0513 - 8 0.359 - 9 0.179 - 21 0.0256 - 22 0.154 - 30 0.0256 - 33 0.0256 - 40 0.0769 - 41 0.0256 - - 13 84 16 0 - 0 0.0714 - 2 0.0476 - 7 0.202 - 12 0.0119 - 13 0.0119 - 14 0.0119 - 19 0.0238 - 21 0.0238 - 26 0.0476 - 31 0.0119 - 33 0.0357 - 40 0.19 - 41 0.226 - 42 0.0595 - 44 0.0119 - 46 0.0119 - - 14 20 6 0 - 7 0.1 - 15 0.05 - 32 0.05 - 40 0.45 - 41 0.3 - 42 0.05 - - 15 7 5 0 - 2 0.143 - 29 0.143 - 40 0.143 - 41 0.429 - 42 0.143 - - 21 46 11 0 - 4 0.0435 - 7 0.674 - 8 0.0217 - 15 0.0217 - 19 0.0435 - 21 0.0435 - 26 0.0217 - 30 0.0217 - 31 0.0217 - 40 0.0652 - 41 0.0217 - - 41 60 12 0 - 3 0.05 - 4 0.333 - 7 0.0167 - 8 0.1 - 9 0.0167 - 13 0.117 - 14 0.117 - 15 0.0833 - 20 0.0167 - 21 0.1 - 33 0.0167 - 41 0.0333 - - 42 7 2 0 - 4 0.857 - 15 0.143 - - 47 289 26 0 - 0 0.0865 - 2 0.0242 - 3 0.00346 - 4 0.0242 - 7 0.263 - 8 0.0104 - 12 0.0242 - 13 0.0104 - 14 0.00346 - 15 0.00346 - 19 0.0242 - 21 0.0138 - 26 0.0346 - 28 0.00346 - 29 0.00346 - 30 0.00692 - 31 0.0104 - 32 0.00692 - 33 0.00692 - 34 0.00346 - 39 0.0173 - 40 0.163 - 41 0.235 - 42 0.0104 - 43 0.00346 - 44 0.00346 - - 49 2 2 0 - 4 0.5 - 14 0.5 - - 55 10 4 0 - 21 0.5 - 26 0.1 - 40 0.1 - 41 0.3 - - 22 48 11 2 - 2 0.0625 - 7 0.521 - 8 0.0417 - 12 0.0208 - 21 0.0208 - 29 0.0208 - 31 0.0208 - 37 0.0208 - 40 0.0833 - 41 0.167 - 42 0.0208 - - 4 2 2 0 - 8 0.5 - 40 0.5 - - 14 2 2 0 - 29 0.5 - 40 0.5 - - 23 19 8 1 - 7 0.579 - 8 0.0526 - 19 0.0526 - 21 0.105 - 29 0.0526 - 31 0.0526 - 40 0.0526 - 41 0.0526 - - 4 4 4 0 - 8 0.25 - 31 0.25 - 40 0.25 - 41 0.25 - - 24 8 3 0 - 7 0.5 - 40 0.25 - 41 0.25 - - 25 13 2 0 - 3 0.0769 - 42 0.923 - - 26 52 5 0 - 3 0.808 - 14 0.0192 - 15 0.0192 - 28 0.0385 - 39 0.115 - - 27 6 4 0 - 40 0.333 - 41 0.167 - 42 0.333 - 46 0.167 - - 28 92 16 2 - 0 0.0109 - 2 0.0326 - 4 0.087 - 7 0.424 - 8 0.0326 - 13 0.0109 - 15 0.0109 - 21 0.0435 - 26 0.0761 - 29 0.0217 - 40 0.0978 - 41 0.087 - 42 0.0217 - 45 0.0109 - 46 0.0217 - 47 0.0109 - - 13 5 4 0 - 7 0.2 - 26 0.4 - 29 0.2 - 45 0.2 - - 21 3 3 0 - 4 0.333 - 7 0.333 - 47 0.333 - - 29 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 29 0.167 - 33 0.167 - - 30 261 26 5 - 0 0.069 - 2 0.0307 - 3 0.00383 - 4 0.00766 - 7 0.429 - 8 0.0192 - 12 0.0268 - 13 0.00383 - 14 0.00383 - 19 0.00383 - 21 0.0307 - 22 0.00383 - 26 0.0307 - 29 0.023 - 30 0.00383 - 31 0.00766 - 32 0.00383 - 33 0.0153 - 37 0.00383 - 39 0.0115 - 40 0.138 - 41 0.0958 - 42 0.0153 - 43 0.00383 - 44 0.00383 - 46 0.0115 - - 2 9 3 0 - 7 0.778 - 21 0.111 - 40 0.111 - - 4 47 12 0 - 0 0.191 - 2 0.0213 - 3 0.0213 - 7 0.277 - 12 0.106 - 21 0.0426 - 29 0.0426 - 33 0.0851 - 39 0.0638 - 40 0.0426 - 41 0.0638 - 42 0.0426 - - 8 17 8 0 - 7 0.353 - 12 0.0588 - 21 0.0588 - 26 0.0588 - 29 0.0588 - 31 0.0588 - 40 0.118 - 41 0.235 - - 13 28 11 0 - 0 0.0357 - 2 0.0714 - 4 0.0357 - 7 0.536 - 8 0.0357 - 13 0.0357 - 14 0.0357 - 22 0.0357 - 26 0.0714 - 41 0.0714 - 44 0.0357 - - 47 136 19 0 - 0 0.0588 - 2 0.0294 - 4 0.00735 - 7 0.397 - 8 0.0221 - 12 0.00735 - 19 0.00735 - 21 0.0294 - 26 0.0368 - 29 0.0147 - 30 0.00735 - 31 0.00735 - 32 0.00735 - 37 0.00735 - 40 0.206 - 41 0.11 - 42 0.0147 - 43 0.00735 - 46 0.0221 - - 31 60 15 7 - 0 0.0333 - 2 0.0333 - 3 0.0167 - 4 0.0167 - 7 0.0833 - 12 0.05 - 14 0.0167 - 24 0.0167 - 26 0.0333 - 29 0.0833 - 30 0.0167 - 39 0.483 - 40 0.0667 - 41 0.0333 - 45 0.0167 - - 3 2 2 0 - 2 0.5 - 14 0.5 - - 4 33 6 0 - 0 0.0303 - 2 0.0303 - 3 0.0303 - 12 0.0303 - 39 0.848 - 40 0.0303 - - 13 7 6 0 - 4 0.143 - 7 0.286 - 12 0.143 - 26 0.143 - 41 0.143 - 45 0.143 - - 15 2 1 0 - 29 1 - - 21 2 2 0 - 7 0.5 - 41 0.5 - - 47 8 5 0 - 0 0.125 - 12 0.125 - 24 0.125 - 29 0.375 - 40 0.25 - - 55 2 2 0 - 26 0.5 - 30 0.5 - - 32 3 3 0 - 0 0.333 - 32 0.333 - 33 0.333 - - 33 65 17 5 - 0 0.0154 - 3 0.0462 - 4 0.169 - 7 0.138 - 8 0.0923 - 10 0.0154 - 13 0.0154 - 14 0.0308 - 19 0.0615 - 21 0.0308 - 22 0.0154 - 26 0.108 - 30 0.0154 - 34 0.0154 - 40 0.0154 - 41 0.2 - 45 0.0154 - - 2 6 3 0 - 4 0.5 - 7 0.333 - 8 0.167 - - 13 24 10 0 - 4 0.125 - 7 0.125 - 8 0.0417 - 13 0.0417 - 14 0.0417 - 19 0.0833 - 21 0.0417 - 26 0.167 - 34 0.0417 - 41 0.292 - - 14 3 3 0 - 8 0.333 - 19 0.333 - 45 0.333 - - 15 8 6 0 - 0 0.125 - 3 0.25 - 4 0.125 - 7 0.125 - 8 0.25 - 41 0.125 - - 47 17 12 0 - 3 0.0588 - 4 0.0588 - 7 0.176 - 8 0.0588 - 10 0.0588 - 19 0.0588 - 21 0.0588 - 22 0.0588 - 26 0.0588 - 30 0.0588 - 40 0.0588 - 41 0.235 - - 34 58 6 0 - 0 0.259 - 4 0.0172 - 12 0.379 - 21 0.0345 - 29 0.19 - 33 0.121 - - 35 6 4 0 - 0 0.333 - 26 0.167 - 40 0.333 - 41 0.167 - - 39 1790 1 0 - 3 1 - - 40 1001 17 7 - 0 0.000999 - 3 0.002 - 4 0.000999 - 12 0.000999 - 13 0.000999 - 14 0.002 - 15 0.00599 - 21 0.000999 - 26 0.000999 - 31 0.000999 - 35 0.000999 - 42 0.004 - 43 0.0679 - 44 0.0509 - 45 0.000999 - 46 0.014 - 47 0.844 - - 3 10 3 0 - 21 0.1 - 26 0.1 - 47 0.8 - - 15 187 8 0 - 0 0.00535 - 12 0.00535 - 15 0.0321 - 43 0.337 - 44 0.267 - 45 0.00535 - 46 0.0214 - 47 0.326 - - 55 492 11 0 - 3 0.00407 - 4 0.00203 - 13 0.00203 - 14 0.00407 - 31 0.00203 - 35 0.00203 - 42 0.00813 - 43 0.00203 - 44 0.00203 - 46 0.0061 - 47 0.965 - - 57 129 3 0 - 43 0.00775 - 46 0.0233 - 47 0.969 - - 62 40 1 0 - 47 1 - - 67 1 1 0 - 46 1 - - 69 35 1 0 - 47 1 - - 41 20629 39 17 - 0 0.0576 - 1 0.000145 - 2 0.0758 - 3 0.0369 - 4 0.147 - 6 0.000436 - 7 0.0581 - 8 0.0435 - 9 0.00145 - 10 0.000436 - 12 0.0155 - 13 0.0636 - 14 0.0132 - 15 0.126 - 16 0.00097 - 17 4.85e-05 - 19 0.00102 - 20 0.00305 - 21 0.044 - 22 0.000291 - 23 0.000242 - 24 0.000145 - 26 0.01 - 27 4.85e-05 - 28 0.000436 - 29 0.0714 - 30 0.0248 - 31 0.0326 - 32 0.00315 - 33 0.0252 - 34 0.0794 - 35 0.028 - 36 0.00499 - 37 0.014 - 39 0.00155 - 42 0.000145 - 44 0.000339 - 45 0.00344 - 46 0.0109 - - 2 7 3 0 - 7 0.429 - 21 0.429 - 22 0.143 - - 3 358 9 0 - 0 0.0112 - 2 0.00559 - 3 0.888 - 4 0.00279 - 7 0.0447 - 26 0.0196 - 31 0.0196 - 32 0.00559 - 46 0.00279 - - 13 26 10 0 - 3 0.0385 - 4 0.0385 - 6 0.0385 - 7 0.269 - 21 0.0385 - 26 0.0385 - 29 0.0385 - 30 0.0385 - 34 0.0385 - 46 0.423 - - 14 11 6 0 - 0 0.0909 - 6 0.0909 - 7 0.0909 - 13 0.0909 - 21 0.273 - 46 0.364 - - 15 18 9 0 - 0 0.0556 - 2 0.0556 - 3 0.0556 - 4 0.0556 - 7 0.278 - 14 0.0556 - 21 0.111 - 29 0.278 - 33 0.0556 - - 27 1 1 0 - 46 1 - - 48 242 18 0 - 0 0.211 - 2 0.0165 - 4 0.0207 - 7 0.128 - 8 0.0165 - 12 0.0868 - 13 0.0165 - 15 0.00826 - 21 0.062 - 22 0.00413 - 26 0.0372 - 29 0.062 - 30 0.0207 - 31 0.215 - 32 0.0124 - 33 0.0579 - 34 0.0207 - 37 0.00413 - - 49 44 13 0 - 0 0.136 - 2 0.159 - 4 0.182 - 7 0.205 - 12 0.0227 - 13 0.0227 - 15 0.0682 - 21 0.0455 - 29 0.0227 - 30 0.0455 - 31 0.0455 - 32 0.0227 - 46 0.0227 - - 55 17277 39 0 - 0 0.0341 - 1 0.000116 - 2 0.0865 - 3 0.0252 - 4 0.17 - 6 0.000347 - 7 0.0512 - 8 0.0478 - 9 0.00145 - 10 0.000463 - 12 0.00666 - 13 0.0737 - 14 0.0153 - 15 0.148 - 16 0.00116 - 17 5.79e-05 - 19 0.000868 - 20 0.00359 - 21 0.0416 - 22 0.000232 - 23 0.000289 - 24 5.79e-05 - 26 0.007 - 27 5.79e-05 - 28 0.000405 - 29 0.0587 - 30 0.0212 - 31 0.0301 - 32 0.00127 - 33 0.0201 - 34 0.0843 - 35 0.0312 - 36 0.00561 - 37 0.0149 - 39 0.00185 - 42 0.000174 - 44 0.000347 - 45 0.00313 - 46 0.0102 - - 56 4 3 0 - 12 0.25 - 30 0.25 - 46 0.5 - - 57 1015 30 0 - 0 0.106 - 1 0.000985 - 2 0.0177 - 3 0.00394 - 4 0.0236 - 6 0.000985 - 7 0.164 - 8 0.0433 - 9 0.00394 - 12 0.0286 - 13 0.00591 - 14 0.00197 - 15 0.0197 - 20 0.000985 - 21 0.07 - 24 0.000985 - 26 0.0424 - 28 0.000985 - 29 0.0562 - 30 0.1 - 31 0.067 - 32 0.00788 - 33 0.0177 - 34 0.144 - 35 0.0256 - 36 0.00493 - 37 0.0246 - 44 0.000985 - 45 0.00296 - 46 0.0118 - - 58 63 17 0 - 0 0.0317 - 2 0.0317 - 3 0.0159 - 4 0.27 - 7 0.0794 - 8 0.0476 - 9 0.0159 - 13 0.159 - 15 0.0159 - 21 0.0317 - 29 0.0317 - 30 0.0317 - 33 0.0159 - 34 0.0317 - 35 0.127 - 37 0.0159 - 45 0.0476 - - 61 13 6 0 - 0 0.308 - 7 0.0769 - 12 0.231 - 29 0.231 - 31 0.0769 - 33 0.0769 - - 62 20 11 0 - 0 0.05 - 2 0.05 - 3 0.05 - 4 0.1 - 7 0.1 - 8 0.1 - 13 0.15 - 21 0.05 - 29 0.05 - 30 0.1 - 46 0.2 - - 64 1038 24 0 - 0 0.286 - 2 0.0231 - 4 0.0116 - 7 0.0222 - 8 0.0106 - 10 0.000963 - 12 0.0983 - 13 0.00771 - 14 0.00482 - 15 0.0154 - 19 0.00482 - 21 0.0626 - 26 0.0125 - 28 0.000963 - 29 0.283 - 30 0.0164 - 31 0.0135 - 32 0.0183 - 33 0.0877 - 34 0.00289 - 35 0.000963 - 37 0.000963 - 45 0.00867 - 46 0.00578 - - 68 2 2 0 - 0 0.5 - 33 0.5 - - 69 481 24 0 - 0 0.254 - 2 0.0187 - 4 0.0125 - 7 0.0915 - 8 0.0166 - 12 0.0977 - 13 0.00832 - 14 0.00208 - 15 0.00832 - 19 0.00208 - 21 0.0478 - 24 0.00208 - 26 0.027 - 29 0.166 - 30 0.0291 - 31 0.0187 - 32 0.0208 - 33 0.0956 - 34 0.0499 - 35 0.00624 - 36 0.00208 - 37 0.00416 - 45 0.00416 - 46 0.0146 - - 42 2040 38 16 - 0 0.0211 - 2 0.0422 - 3 0.259 - 4 0.102 - 5 0.00049 - 7 0.0284 - 8 0.0373 - 9 0.00294 - 10 0.00049 - 11 0.00098 - 12 0.00686 - 13 0.0422 - 14 0.0304 - 15 0.123 - 16 0.00098 - 19 0.00343 - 20 0.00392 - 21 0.0338 - 22 0.00049 - 25 0.00049 - 26 0.00833 - 28 0.00588 - 29 0.0137 - 30 0.0191 - 31 0.0132 - 32 0.00196 - 33 0.00392 - 34 0.0123 - 35 0.00539 - 37 0.00637 - 38 0.00098 - 39 0.0574 - 40 0.00441 - 42 0.00049 - 44 0.00049 - 45 0.0152 - 46 0.00098 - 47 0.0897 - - 3 11 1 0 - 47 1 - - 13 23 4 0 - 7 0.087 - 8 0.0435 - 26 0.13 - 47 0.739 - - 14 55 4 0 - 2 0.0182 - 7 0.0182 - 40 0.127 - 47 0.836 - - 15 54 1 0 - 47 1 - - 16 10 2 0 - 40 0.2 - 47 0.8 - - 40 3 2 0 - 15 0.333 - 39 0.667 - - 41 3 2 0 - 13 0.333 - 39 0.667 - - 46 11 7 0 - 4 0.364 - 7 0.0909 - 8 0.0909 - 12 0.0909 - 13 0.0909 - 14 0.182 - 15 0.0909 - - 48 5 5 0 - 0 0.2 - 2 0.2 - 7 0.2 - 12 0.2 - 21 0.2 - - 49 2 2 0 - 7 0.5 - 29 0.5 - - 55 1709 36 0 - 0 0.0164 - 2 0.0474 - 3 0.305 - 4 0.116 - 5 0.000585 - 7 0.0199 - 8 0.0392 - 9 0.00351 - 10 0.000585 - 11 0.00117 - 12 0.00293 - 13 0.0486 - 14 0.0339 - 15 0.143 - 16 0.00117 - 19 0.00351 - 20 0.00468 - 21 0.0363 - 22 0.000585 - 25 0.000585 - 26 0.00644 - 28 0.00702 - 29 0.00995 - 30 0.0164 - 31 0.0135 - 32 0.000585 - 33 0.0041 - 34 0.0117 - 35 0.00585 - 37 0.00702 - 38 0.00117 - 39 0.0655 - 42 0.000585 - 44 0.000585 - 45 0.0164 - 47 0.00819 - - 57 51 19 0 - 0 0.118 - 2 0.0196 - 4 0.0588 - 7 0.216 - 8 0.0588 - 12 0.0588 - 15 0.0392 - 19 0.0196 - 21 0.0392 - 26 0.0196 - 29 0.0392 - 30 0.0784 - 33 0.0196 - 34 0.0784 - 35 0.0196 - 37 0.0196 - 45 0.0196 - 46 0.0196 - 47 0.0588 - - 58 39 9 0 - 3 0.179 - 7 0.0256 - 8 0.0256 - 21 0.0256 - 29 0.0513 - 31 0.0513 - 34 0.0256 - 45 0.0256 - 47 0.59 - - 62 5 4 0 - 2 0.2 - 7 0.2 - 30 0.4 - 46 0.2 - - 64 34 15 0 - 0 0.176 - 2 0.0294 - 4 0.0882 - 7 0.0882 - 8 0.0588 - 12 0.118 - 13 0.0294 - 14 0.0588 - 21 0.0294 - 26 0.0294 - 29 0.118 - 30 0.0294 - 31 0.0588 - 32 0.0294 - 47 0.0588 - - 69 20 11 0 - 0 0.1 - 4 0.05 - 7 0.1 - 8 0.05 - 21 0.1 - 26 0.05 - 29 0.1 - 30 0.15 - 32 0.1 - 45 0.05 - 47 0.15 - - 43 97 22 8 - 0 0.0928 - 2 0.0825 - 4 0.0206 - 6 0.0103 - 7 0.144 - 12 0.0412 - 15 0.0103 - 19 0.0103 - 21 0.0206 - 26 0.0103 - 29 0.0103 - 30 0.0103 - 31 0.0103 - 32 0.0206 - 33 0.0619 - 34 0.0103 - 35 0.0103 - 40 0.134 - 41 0.113 - 42 0.103 - 44 0.0103 - 47 0.0619 - - 13 12 7 0 - 0 0.0833 - 2 0.0833 - 7 0.0833 - 33 0.333 - 40 0.0833 - 41 0.167 - 42 0.167 - - 14 8 7 0 - 0 0.25 - 7 0.125 - 12 0.125 - 31 0.125 - 32 0.125 - 34 0.125 - 35 0.125 - - 15 12 9 0 - 0 0.167 - 4 0.0833 - 7 0.0833 - 12 0.0833 - 26 0.0833 - 29 0.0833 - 40 0.0833 - 42 0.25 - 47 0.0833 - - 40 2 1 0 - 47 1 - - 55 37 13 0 - 0 0.027 - 2 0.135 - 4 0.027 - 6 0.027 - 7 0.189 - 15 0.027 - 19 0.027 - 33 0.027 - 40 0.216 - 41 0.135 - 42 0.108 - 44 0.027 - 47 0.027 - - 57 16 10 0 - 0 0.188 - 2 0.125 - 7 0.125 - 12 0.125 - 21 0.0625 - 30 0.0625 - 32 0.0625 - 40 0.0625 - 41 0.0625 - 47 0.125 - - 58 2 1 0 - 41 1 - - 69 2 2 0 - 21 0.5 - 40 0.5 - - 44 52 11 0 - 2 0.0769 - 3 0.0192 - 4 0.0577 - 7 0.25 - 8 0.0385 - 13 0.0385 - 15 0.25 - 21 0.0192 - 30 0.0385 - 35 0.0192 - 39 0.192 - - 45 238 22 10 - 0 0.0252 - 2 0.0252 - 3 0.0084 - 4 0.126 - 6 0.0168 - 7 0.0924 - 8 0.0798 - 9 0.0042 - 12 0.0042 - 13 0.0924 - 15 0.311 - 16 0.0084 - 19 0.0546 - 21 0.0294 - 26 0.0042 - 28 0.021 - 30 0.0168 - 31 0.0252 - 32 0.0042 - 34 0.0168 - 35 0.021 - 37 0.0126 - - 2 30 9 0 - 0 0.0333 - 3 0.0333 - 4 0.0667 - 8 0.133 - 9 0.0333 - 13 0.167 - 15 0.467 - 16 0.0333 - 37 0.0333 - - 8 5 4 0 - 6 0.2 - 8 0.2 - 15 0.4 - 21 0.2 - - 13 11 6 0 - 3 0.0909 - 4 0.0909 - 6 0.0909 - 7 0.0909 - 15 0.545 - 30 0.0909 - - 41 40 14 0 - 0 0.025 - 2 0.05 - 4 0.225 - 7 0.05 - 8 0.075 - 12 0.025 - 13 0.125 - 15 0.175 - 16 0.025 - 19 0.05 - 21 0.05 - 28 0.05 - 30 0.025 - 35 0.05 - - 42 21 8 0 - 0 0.143 - 4 0.143 - 7 0.0476 - 8 0.143 - 13 0.0476 - 19 0.381 - 31 0.0476 - 37 0.0476 - - 46 8 3 0 - 4 0.25 - 13 0.125 - 15 0.625 - - 55 107 16 0 - 2 0.00935 - 4 0.121 - 6 0.0187 - 7 0.15 - 8 0.0467 - 13 0.0935 - 15 0.355 - 19 0.028 - 21 0.0187 - 26 0.00935 - 28 0.028 - 30 0.00935 - 31 0.0467 - 34 0.028 - 35 0.028 - 37 0.00935 - - 57 5 4 0 - 2 0.2 - 7 0.4 - 8 0.2 - 34 0.2 - - 58 6 4 0 - 0 0.167 - 2 0.333 - 21 0.333 - 30 0.167 - - 69 1 1 0 - 32 1 - - 46 898 32 13 - 0 0.0635 - 1 0.00223 - 2 0.0668 - 3 0.00445 - 4 0.0568 - 7 0.345 - 8 0.0212 - 12 0.0167 - 13 0.00557 - 14 0.00223 - 15 0.0167 - 19 0.0078 - 20 0.00111 - 21 0.0323 - 26 0.0646 - 29 0.0212 - 30 0.0212 - 31 0.0345 - 32 0.00334 - 33 0.0167 - 34 0.0624 - 35 0.0111 - 36 0.00223 - 37 0.0122 - 40 0.00334 - 41 0.00668 - 42 0.0323 - 43 0.00334 - 44 0.0379 - 45 0.00891 - 46 0.00223 - 47 0.0134 - - 6 2 2 0 - 0 0.5 - 41 0.5 - - 8 3 3 0 - 7 0.333 - 33 0.333 - 42 0.333 - - 13 251 24 0 - 0 0.0598 - 1 0.00398 - 2 0.0478 - 4 0.00797 - 7 0.498 - 8 0.012 - 12 0.0398 - 19 0.00398 - 21 0.0279 - 26 0.0876 - 29 0.012 - 30 0.0159 - 31 0.0359 - 33 0.00797 - 34 0.0518 - 35 0.00797 - 37 0.012 - 40 0.00797 - 41 0.00398 - 42 0.0279 - 43 0.00398 - 44 0.0159 - 46 0.00398 - 47 0.00398 - - 14 66 15 0 - 0 0.0606 - 2 0.0606 - 7 0.333 - 8 0.0303 - 12 0.0152 - 19 0.0152 - 21 0.0455 - 26 0.152 - 29 0.0152 - 31 0.0455 - 32 0.0455 - 34 0.0455 - 35 0.0606 - 37 0.0152 - 42 0.0606 - - 15 21 11 0 - 2 0.0476 - 4 0.0476 - 7 0.286 - 12 0.0952 - 21 0.0952 - 26 0.0476 - 33 0.0952 - 34 0.0476 - 40 0.0476 - 41 0.143 - 46 0.0476 - - 40 11 3 0 - 15 0.182 - 21 0.0909 - 47 0.727 - - 41 222 23 0 - 0 0.0721 - 2 0.045 - 3 0.018 - 4 0.203 - 7 0.0856 - 8 0.0405 - 12 0.0045 - 13 0.018 - 14 0.00901 - 15 0.0541 - 19 0.00901 - 20 0.0045 - 21 0.0495 - 26 0.018 - 29 0.045 - 30 0.036 - 31 0.045 - 33 0.0225 - 34 0.144 - 35 0.018 - 36 0.00901 - 37 0.0135 - 45 0.036 - - 42 2 2 0 - 33 0.5 - 47 0.5 - - 55 241 21 0 - 0 0.0207 - 1 0.00415 - 2 0.12 - 4 0.0124 - 7 0.448 - 8 0.0166 - 15 0.00415 - 19 0.0083 - 21 0.0124 - 26 0.083 - 29 0.0083 - 30 0.0207 - 31 0.0332 - 33 0.0083 - 34 0.0249 - 37 0.0124 - 41 0.00415 - 42 0.0539 - 43 0.0083 - 44 0.0913 - 47 0.00415 - - 56 26 9 0 - 0 0.269 - 7 0.231 - 12 0.0385 - 19 0.0385 - 29 0.115 - 33 0.0385 - 34 0.0385 - 37 0.0385 - 44 0.192 - - 57 34 10 0 - 0 0.147 - 2 0.118 - 7 0.471 - 8 0.0294 - 13 0.0294 - 21 0.0294 - 26 0.0294 - 30 0.0588 - 31 0.0294 - 42 0.0588 - - 62 10 6 0 - 0 0.2 - 7 0.2 - 21 0.1 - 33 0.1 - 42 0.1 - 44 0.3 - - 65 1 1 0 - 47 1 - - 47 311752 46 59 - 0 0.0863 - 1 0.000289 - 2 0.0341 - 3 0.00328 - 4 0.0119 - 5 0.000103 - 6 4.49e-05 - 7 0.192 - 8 0.0132 - 9 0.000908 - 10 0.000763 - 12 0.0303 - 13 0.0146 - 14 0.00451 - 15 0.00615 - 16 0.000122 - 17 2.57e-05 - 18 0.000176 - 19 0.00338 - 20 0.000186 - 21 0.0233 - 22 0.00185 - 23 0.00017 - 24 0.000565 - 25 2.89e-05 - 26 0.031 - 28 0.00225 - 29 0.0626 - 30 0.00728 - 31 0.0105 - 32 0.0152 - 33 0.0222 - 34 0.00651 - 35 0.00307 - 36 0.00017 - 37 0.00209 - 38 1.92e-05 - 39 0.000504 - 40 0.207 - 41 0.166 - 42 0.0179 - 43 0.0038 - 44 0.00306 - 45 0.00251 - 46 0.00252 - 47 0.00512 - - 0 56 13 0 - 0 0.0179 - 7 0.125 - 8 0.0893 - 13 0.0357 - 15 0.0179 - 21 0.25 - 23 0.179 - 29 0.107 - 30 0.0714 - 31 0.0536 - 41 0.0179 - 43 0.0179 - 45 0.0179 - - 1 3 2 0 - 26 0.333 - 40 0.667 - - 2 3 2 0 - 0 0.333 - 21 0.667 - - 3 7697 38 0 - 0 0.019 - 2 0.0298 - 3 0.00065 - 4 0.099 - 6 0.00013 - 7 0.178 - 8 0.00429 - 9 0.00208 - 10 0.00013 - 12 0.00754 - 13 0.00455 - 14 0.00143 - 15 0.00429 - 19 0.00247 - 20 0.00026 - 21 0.0052 - 22 0.00026 - 23 0.00013 - 25 0.00013 - 26 0.0958 - 28 0.00013 - 29 0.0151 - 30 0.00338 - 31 0.00559 - 32 0.00117 - 33 0.00351 - 34 0.00273 - 35 0.000909 - 37 0.00338 - 39 0.00013 - 40 0.212 - 41 0.251 - 42 0.0227 - 43 0.0178 - 44 0.00182 - 45 0.0013 - 46 0.00065 - 47 0.00208 - - 4 2457 34 0 - 0 0.258 - 1 0.000814 - 2 0.00895 - 3 0.00204 - 4 0.00611 - 7 0.286 - 8 0.00773 - 9 0.000407 - 10 0.000407 - 12 0.0696 - 13 0.00692 - 14 0.00122 - 15 0.00122 - 18 0.000814 - 19 0.00895 - 21 0.0232 - 24 0.00204 - 26 0.00733 - 28 0.00407 - 29 0.0281 - 30 0.00692 - 31 0.0248 - 32 0.0228 - 33 0.0619 - 34 0.00611 - 35 0.0265 - 37 0.000407 - 40 0.0419 - 41 0.0696 - 42 0.0106 - 44 0.000407 - 45 0.00122 - 46 0.000814 - 47 0.00204 - - 5 861 10 0 - 0 0.861 - 4 0.00232 - 12 0.0848 - 18 0.0128 - 19 0.00116 - 21 0.0244 - 26 0.00116 - 33 0.00697 - 35 0.00116 - 41 0.00465 - - 6 59 14 0 - 0 0.0678 - 2 0.0339 - 7 0.102 - 12 0.0339 - 26 0.0678 - 31 0.0169 - 33 0.0678 - 40 0.254 - 41 0.203 - 42 0.0339 - 43 0.0169 - 44 0.0339 - 45 0.0169 - 46 0.0508 - - 7 79 19 0 - 0 0.152 - 2 0.0127 - 4 0.0506 - 5 0.0127 - 7 0.228 - 8 0.0127 - 12 0.038 - 18 0.0253 - 19 0.038 - 21 0.0253 - 22 0.0127 - 24 0.0127 - 26 0.0253 - 29 0.0127 - 31 0.0633 - 33 0.038 - 40 0.114 - 41 0.114 - 47 0.0127 - - 8 1187 34 0 - 0 0.0666 - 1 0.000842 - 2 0.0371 - 3 0.00253 - 4 0.00505 - 7 0.405 - 8 0.00758 - 9 0.00421 - 10 0.000842 - 12 0.0118 - 13 0.0143 - 14 0.00505 - 15 0.00421 - 19 0.00337 - 21 0.0177 - 22 0.00337 - 24 0.000842 - 26 0.0497 - 28 0.00168 - 29 0.0286 - 30 0.00505 - 31 0.00505 - 32 0.0118 - 33 0.00927 - 34 0.00253 - 35 0.00253 - 37 0.000842 - 40 0.131 - 41 0.131 - 42 0.0194 - 43 0.00505 - 44 0.00421 - 46 0.00168 - 47 0.000842 - - 9 235 13 0 - 0 0.0213 - 2 0.00851 - 4 0.00851 - 7 0.621 - 12 0.00426 - 21 0.0255 - 26 0.0766 - 29 0.00426 - 30 0.00426 - 31 0.0128 - 40 0.115 - 41 0.0894 - 42 0.00851 - - 10 367 21 0 - 0 0.0572 - 2 0.00272 - 4 0.00817 - 5 0.00272 - 7 0.711 - 8 0.00545 - 12 0.00545 - 13 0.00817 - 19 0.00817 - 21 0.0163 - 26 0.0109 - 28 0.00272 - 29 0.00272 - 30 0.00817 - 31 0.00272 - 32 0.0327 - 37 0.00272 - 40 0.0463 - 41 0.049 - 42 0.0136 - 45 0.00272 - - 12 3 3 0 - 40 0.333 - 41 0.333 - 43 0.333 - - 13 96406 46 0 - 0 0.0637 - 1 0.000353 - 2 0.0345 - 3 0.00505 - 4 0.00829 - 5 0.000145 - 6 5.19e-05 - 7 0.333 - 8 0.00742 - 9 0.00119 - 10 4.15e-05 - 12 0.0242 - 13 0.00407 - 14 0.000944 - 15 0.0048 - 16 3.11e-05 - 17 2.07e-05 - 18 2.07e-05 - 19 0.00561 - 20 0.00027 - 21 0.0238 - 22 0.0035 - 23 0.000114 - 24 0.000467 - 25 4.15e-05 - 26 0.0426 - 28 0.00132 - 29 0.0439 - 30 0.00859 - 31 0.0141 - 32 0.00186 - 33 0.0205 - 34 0.0107 - 35 0.00337 - 36 0.000249 - 37 0.00326 - 38 1.04e-05 - 39 0.000145 - 40 0.149 - 41 0.153 - 42 0.0151 - 43 0.00195 - 44 0.00201 - 45 0.00279 - 46 0.00327 - 47 0.000685 - - 14 55109 44 0 - 0 0.0843 - 1 0.000726 - 2 0.0441 - 3 0.00132 - 4 0.0177 - 5 9.07e-05 - 7 0.251 - 8 0.0175 - 9 0.00098 - 10 3.63e-05 - 12 0.0303 - 13 0.00218 - 14 0.000817 - 15 0.00212 - 16 3.63e-05 - 17 5.44e-05 - 18 3.63e-05 - 19 0.00468 - 20 0.000163 - 21 0.0335 - 22 0.00205 - 23 0.000127 - 24 0.000653 - 25 1.81e-05 - 26 0.0385 - 28 0.00356 - 29 0.0533 - 30 0.0147 - 31 0.0227 - 32 0.0389 - 33 0.00203 - 34 0.0132 - 35 0.00744 - 36 0.000472 - 37 0.00227 - 39 0.000327 - 40 0.146 - 41 0.131 - 42 0.0194 - 43 0.00156 - 44 0.00454 - 45 0.00238 - 46 0.00281 - 47 0.00107 - - 15 37150 40 0 - 0 0.0859 - 1 8.08e-05 - 2 0.0517 - 3 0.00261 - 4 0.0052 - 5 5.38e-05 - 6 2.69e-05 - 7 0.0953 - 8 0.00377 - 9 0.000242 - 12 0.0275 - 13 0.00353 - 14 0.00116 - 15 0.00571 - 17 2.69e-05 - 18 0.000673 - 19 0.00175 - 20 0.000296 - 21 0.0225 - 22 0.000834 - 24 8.08e-05 - 26 0.0186 - 28 0.00221 - 29 0.135 - 30 0.00363 - 31 0.00186 - 32 0.00363 - 33 0.0419 - 34 0.0024 - 35 0.00145 - 37 0.00132 - 39 0.000619 - 40 0.126 - 41 0.315 - 42 0.0153 - 43 0.00729 - 44 0.00686 - 45 0.00202 - 46 0.00347 - 47 0.00331 - - 16 1540 34 0 - 0 0.123 - 2 0.0604 - 3 0.0013 - 4 0.00519 - 5 0.000649 - 7 0.11 - 8 0.00519 - 9 0.000649 - 12 0.0403 - 13 0.00519 - 14 0.00195 - 15 0.00325 - 19 0.0026 - 20 0.000649 - 21 0.026 - 22 0.000649 - 26 0.0234 - 28 0.000649 - 29 0.112 - 30 0.00584 - 31 0.0039 - 32 0.037 - 33 0.0156 - 34 0.000649 - 35 0.0169 - 36 0.000649 - 40 0.128 - 41 0.216 - 42 0.0266 - 43 0.0039 - 44 0.0039 - 45 0.00195 - 46 0.00325 - 47 0.0136 - - 17 3 1 0 - 4 1 - - 18 8655 34 0 - 0 0.00508 - 2 0.00659 - 3 0.0261 - 4 0.000231 - 6 0.000231 - 7 0.00208 - 8 0.207 - 9 0.00173 - 10 0.026 - 12 0.00104 - 13 0.417 - 14 0.13 - 15 0.104 - 16 0.00381 - 19 0.000116 - 21 0.00555 - 22 0.000347 - 23 0.00208 - 26 0.000231 - 28 0.000347 - 29 0.00439 - 30 0.0117 - 31 0.00739 - 32 0.000462 - 33 0.00104 - 38 0.000578 - 39 0.0101 - 40 0.00485 - 41 0.00601 - 42 0.000231 - 43 0.000924 - 44 0.000231 - 45 0.0117 - 46 0.000231 - - 19 17347 41 0 - 0 0.301 - 1 0.000173 - 2 0.00761 - 3 0.000807 - 4 0.0115 - 5 0.000115 - 6 5.76e-05 - 7 0.0349 - 8 0.00738 - 9 0.00133 - 10 0.000115 - 12 0.124 - 13 0.00202 - 14 0.000749 - 15 0.000576 - 17 0.000115 - 18 0.000634 - 19 0.00161 - 20 0.000115 - 21 0.0537 - 22 0.00156 - 23 0.000173 - 24 0.00455 - 26 0.0163 - 28 0.0117 - 29 0.166 - 30 0.00242 - 31 0.0019 - 32 0.0775 - 33 0.106 - 34 0.000288 - 35 0.000634 - 37 0.00121 - 39 0.000288 - 40 0.0313 - 41 0.021 - 42 0.00334 - 43 0.000346 - 44 0.000865 - 45 0.00346 - 46 0.000461 - - 20 22 10 0 - 0 0.136 - 1 0.0909 - 13 0.0909 - 15 0.0455 - 21 0.0455 - 30 0.364 - 40 0.0455 - 41 0.0909 - 42 0.0455 - 43 0.0455 - - 21 515 31 0 - 0 0.0641 - 2 0.0272 - 3 0.00388 - 4 0.0155 - 6 0.00194 - 7 0.243 - 8 0.035 - 9 0.0136 - 12 0.0155 - 13 0.0136 - 14 0.00388 - 15 0.00388 - 19 0.0194 - 21 0.0214 - 22 0.0117 - 26 0.0311 - 28 0.00388 - 29 0.00583 - 30 0.00583 - 31 0.00971 - 32 0.00583 - 33 0.0117 - 34 0.00194 - 37 0.00194 - 40 0.181 - 41 0.217 - 42 0.0214 - 43 0.00194 - 44 0.00388 - 46 0.00194 - 47 0.00194 - - 22 48 11 0 - 2 0.0625 - 7 0.521 - 8 0.0417 - 12 0.0208 - 21 0.0208 - 29 0.0208 - 31 0.0208 - 37 0.0208 - 40 0.0833 - 41 0.167 - 42 0.0208 - - 23 19 8 0 - 7 0.579 - 8 0.0526 - 19 0.0526 - 21 0.105 - 29 0.0526 - 31 0.0526 - 40 0.0526 - 41 0.0526 - - 24 8 3 0 - 7 0.5 - 40 0.25 - 41 0.25 - - 25 13 2 0 - 3 0.0769 - 42 0.923 - - 26 1 1 0 - 28 1 - - 27 4 3 0 - 40 0.5 - 42 0.25 - 46 0.25 - - 28 87 15 0 - 0 0.0115 - 2 0.0345 - 4 0.0805 - 7 0.437 - 8 0.0345 - 13 0.0115 - 15 0.0115 - 21 0.046 - 26 0.069 - 29 0.023 - 40 0.103 - 41 0.092 - 42 0.0115 - 46 0.023 - 47 0.0115 - - 29 6 5 0 - 4 0.167 - 7 0.333 - 8 0.167 - 29 0.167 - 33 0.167 - - 30 255 24 0 - 0 0.0706 - 2 0.0314 - 4 0.00784 - 7 0.435 - 8 0.0196 - 12 0.0275 - 13 0.00392 - 14 0.00392 - 19 0.00392 - 21 0.0275 - 22 0.00392 - 26 0.0314 - 29 0.0235 - 30 0.00392 - 31 0.00784 - 32 0.00392 - 33 0.0157 - 37 0.00392 - 40 0.141 - 41 0.098 - 42 0.0157 - 43 0.00392 - 44 0.00392 - 46 0.0118 - - 31 27 11 0 - 0 0.0741 - 2 0.0741 - 4 0.037 - 7 0.185 - 12 0.111 - 14 0.037 - 24 0.037 - 26 0.037 - 29 0.185 - 40 0.148 - 41 0.0741 - - 32 3 3 0 - 0 0.333 - 32 0.333 - 33 0.333 - - 33 63 17 0 - 0 0.0159 - 3 0.0476 - 4 0.175 - 7 0.127 - 8 0.0952 - 10 0.0159 - 13 0.0159 - 14 0.0317 - 19 0.0635 - 21 0.0317 - 22 0.0159 - 26 0.0952 - 30 0.0159 - 34 0.0159 - 40 0.0159 - 41 0.206 - 45 0.0159 - - 34 58 6 0 - 0 0.259 - 4 0.0172 - 12 0.379 - 21 0.0345 - 29 0.19 - 33 0.121 - - 35 6 4 0 - 0 0.333 - 26 0.167 - 40 0.333 - 41 0.167 - - 40 975 10 0 - 0 0.00103 - 12 0.00103 - 15 0.00615 - 21 0.00103 - 26 0.00103 - 43 0.0677 - 44 0.0513 - 45 0.00103 - 46 0.00308 - 47 0.867 - - 41 4997 30 0 - 0 0.238 - 2 0.0332 - 3 0.0014 - 4 0.0254 - 7 0.0903 - 8 0.0054 - 9 0.0004 - 10 0.0002 - 12 0.064 - 13 0.00981 - 14 0.0036 - 15 0.00961 - 19 0.003 - 21 0.0476 - 22 0.0006 - 23 0.0002 - 26 0.0272 - 28 0.0012 - 29 0.288 - 30 0.00901 - 31 0.0124 - 32 0.013 - 33 0.104 - 34 0.0038 - 35 0.0012 - 36 0.0002 - 37 0.0026 - 39 0.0002 - 45 0.0042 - 46 0.0006 - - 42 330 23 0 - 0 0.115 - 2 0.0212 - 4 0.0152 - 7 0.0485 - 8 0.00303 - 12 0.0424 - 13 0.00303 - 14 0.00606 - 15 0.00606 - 19 0.00606 - 20 0.00303 - 21 0.0273 - 26 0.0121 - 28 0.00606 - 29 0.0758 - 30 0.00303 - 31 0.00606 - 32 0.0121 - 33 0.0212 - 34 0.00303 - 37 0.00606 - 45 0.00303 - 47 0.555 - - 43 92 18 0 - 0 0.0978 - 2 0.087 - 4 0.0217 - 7 0.152 - 12 0.0435 - 21 0.0217 - 26 0.0109 - 29 0.0109 - 30 0.0109 - 31 0.0109 - 32 0.0217 - 33 0.0652 - 34 0.0109 - 35 0.0109 - 40 0.13 - 41 0.12 - 42 0.109 - 47 0.0652 - - 45 4 4 0 - 0 0.25 - 2 0.25 - 7 0.25 - 32 0.25 - - 46 480 27 0 - 0 0.119 - 1 0.00208 - 2 0.0542 - 4 0.0208 - 7 0.365 - 8 0.0104 - 12 0.0292 - 13 0.00417 - 15 0.00833 - 19 0.00833 - 21 0.0396 - 26 0.0521 - 29 0.0396 - 30 0.00833 - 31 0.0292 - 32 0.00625 - 33 0.0292 - 34 0.0417 - 35 0.0125 - 37 0.0125 - 40 0.00625 - 41 0.0104 - 42 0.0333 - 43 0.00625 - 44 0.0229 - 46 0.00417 - 47 0.025 - - 48 1062 27 0 - 0 0.0546 - 2 0.032 - 4 0.000942 - 7 0.0706 - 8 0.000942 - 9 0.000942 - 12 0.0188 - 13 0.00471 - 15 0.000942 - 19 0.000942 - 21 0.00659 - 26 0.0141 - 28 0.000942 - 29 0.0753 - 30 0.000942 - 31 0.00377 - 32 0.0226 - 33 0.00847 - 34 0.000942 - 37 0.00282 - 40 0.469 - 41 0.171 - 42 0.032 - 43 0.000942 - 44 0.000942 - 45 0.00282 - 46 0.000942 - - 49 817 24 0 - 0 0.0673 - 2 0.0171 - 4 0.00367 - 7 0.0355 - 8 0.00245 - 12 0.00857 - 15 0.00122 - 21 0.00857 - 22 0.00122 - 26 0.0122 - 28 0.00245 - 29 0.0257 - 30 0.00367 - 31 0.00122 - 32 0.0147 - 33 0.00612 - 34 0.00122 - 40 0.518 - 41 0.179 - 42 0.071 - 44 0.00122 - 45 0.00367 - 46 0.00245 - 47 0.0122 - - 51 8 5 0 - 2 0.125 - 33 0.125 - 40 0.25 - 41 0.125 - 47 0.375 - - 54 7 4 0 - 0 0.143 - 13 0.143 - 40 0.429 - 41 0.286 - - 55 13149 39 0 - 0 0.0396 - 2 0.00867 - 3 0.00205 - 4 0.0054 - 5 7.61e-05 - 6 0.000152 - 7 0.0588 - 8 0.00342 - 9 0.000456 - 12 0.0129 - 13 0.000913 - 14 0.000152 - 15 0.000913 - 19 0.000532 - 20 0.000152 - 21 0.00829 - 22 0.000456 - 23 7.61e-05 - 24 0.000152 - 25 0.000152 - 26 0.013 - 28 0.000989 - 29 0.0295 - 30 0.00205 - 31 0.0035 - 32 0.0103 - 33 0.00464 - 34 0.00243 - 35 0.000913 - 36 7.61e-05 - 37 0.000608 - 40 0.508 - 41 0.208 - 42 0.0503 - 43 0.00973 - 44 0.00106 - 45 0.000913 - 46 0.00122 - 47 0.01 - - 56 409 24 0 - 0 0.0513 - 2 0.0122 - 3 0.00244 - 4 0.00978 - 7 0.174 - 8 0.00244 - 12 0.0269 - 14 0.00244 - 21 0.00489 - 26 0.0171 - 28 0.00244 - 29 0.0147 - 30 0.00733 - 31 0.00978 - 32 0.0269 - 33 0.00489 - 34 0.0122 - 35 0.00978 - 39 0.00244 - 40 0.35 - 41 0.237 - 42 0.0122 - 44 0.00244 - 46 0.00489 - - 57 38167 39 0 - 0 0.0755 - 1 0.000105 - 2 0.0403 - 3 0.00055 - 4 0.0043 - 5 0.000131 - 6 2.62e-05 - 7 0.0629 - 8 0.00333 - 9 0.000131 - 12 0.0243 - 13 0.0021 - 14 0.000812 - 15 0.0017 - 19 0.00102 - 20 2.62e-05 - 21 0.0137 - 22 0.000786 - 23 2.62e-05 - 24 7.86e-05 - 26 0.0196 - 28 0.000891 - 29 0.0437 - 30 0.00424 - 31 0.00383 - 32 0.0103 - 33 0.0117 - 34 0.00113 - 35 0.00055 - 37 0.00186 - 39 0.000131 - 40 0.432 - 41 0.205 - 42 0.0232 - 43 0.0022 - 44 0.00191 - 45 0.00176 - 46 0.0027 - 47 0.00144 - - 58 873 28 0 - 0 0.123 - 2 0.0767 - 3 0.0115 - 4 0.0275 - 7 0.139 - 8 0.00229 - 12 0.0401 - 13 0.00229 - 14 0.00344 - 15 0.00229 - 19 0.00458 - 20 0.00115 - 21 0.0229 - 26 0.0321 - 28 0.00229 - 29 0.0527 - 30 0.00344 - 31 0.00229 - 32 0.0275 - 33 0.0367 - 34 0.00458 - 35 0.00229 - 39 0.00115 - 40 0.181 - 41 0.136 - 42 0.0504 - 45 0.00115 - 47 0.0103 - - 60 5584 31 0 - 0 0.00985 - 2 0.0177 - 3 0.00681 - 4 0.0518 - 7 0.358 - 8 0.00734 - 9 0.00412 - 12 0.00304 - 13 0.00358 - 14 0.000179 - 15 0.00304 - 19 0.00125 - 20 0.000179 - 21 0.00591 - 22 0.000179 - 25 0.000179 - 26 0.0566 - 29 0.00304 - 30 0.00251 - 31 0.0077 - 34 0.000895 - 35 0.000537 - 37 0.000179 - 40 0.186 - 41 0.219 - 42 0.0136 - 43 0.0279 - 44 0.00663 - 45 0.000358 - 46 0.000179 - 47 0.00125 - - 61 29 6 0 - 0 0.0345 - 29 0.0345 - 33 0.0345 - 40 0.69 - 41 0.138 - 42 0.069 - - 62 1522 28 0 - 0 0.0453 - 2 0.0191 - 3 0.000657 - 4 0.00197 - 7 0.0315 - 8 0.000657 - 12 0.021 - 15 0.00131 - 19 0.000657 - 21 0.00788 - 22 0.00131 - 26 0.00197 - 28 0.000657 - 29 0.0177 - 30 0.000657 - 31 0.00131 - 32 0.00263 - 33 0.00986 - 34 0.000657 - 37 0.00131 - 40 0.633 - 41 0.171 - 42 0.0138 - 43 0.00329 - 44 0.000657 - 45 0.00197 - 46 0.00263 - 47 0.00526 - - 64 8611 29 0 - 0 0.046 - 2 0.0135 - 4 0.00105 - 7 0.0108 - 12 0.017 - 13 0.000465 - 14 0.000116 - 15 0.000232 - 19 0.000929 - 20 0.000116 - 21 0.0043 - 22 0.000348 - 26 0.00325 - 28 0.000697 - 29 0.00975 - 30 0.000813 - 31 0.000581 - 32 0.00499 - 33 0.00325 - 34 0.000116 - 37 0.000232 - 40 0.694 - 41 0.157 - 42 0.0238 - 43 0.00151 - 44 0.00151 - 45 0.00128 - 46 0.00116 - 47 0.00128 - - 65 8 3 0 - 40 0.5 - 46 0.125 - 47 0.375 - - 67 4 4 0 - 40 0.25 - 42 0.25 - 46 0.25 - 47 0.25 - - 68 65 9 0 - 0 0.0308 - 2 0.0308 - 7 0.0769 - 26 0.0308 - 29 0.0308 - 32 0.0462 - 40 0.631 - 41 0.0769 - 42 0.0462 - - 69 4185 30 0 - 0 0.0712 - 2 0.0229 - 3 0.000239 - 4 0.00191 - 7 0.0244 - 8 0.000478 - 12 0.0318 - 13 0.000478 - 15 0.000239 - 21 0.00956 - 22 0.000956 - 26 0.00789 - 28 0.00119 - 29 0.037 - 30 0.00119 - 31 0.0043 - 32 0.0148 - 33 0.0103 - 34 0.000478 - 35 0.000239 - 37 0.000478 - 39 0.000239 - 40 0.542 - 41 0.18 - 42 0.0277 - 43 0.00335 - 44 0.00119 - 45 0.000717 - 46 0.00119 - 47 0.00215 - - 73 3 3 0 - 0 0.333 - 32 0.333 - 41 0.333 - - 74 13 5 0 - 0 0.0769 - 26 0.0769 - 40 0.154 - 41 0.0769 - 47 0.615 - - 48 1396 29 9 - 0 0.0415 - 2 0.0244 - 4 0.00143 - 7 0.0752 - 8 0.00143 - 9 0.00645 - 12 0.0143 - 13 0.0043 - 15 0.000716 - 19 0.00143 - 21 0.00716 - 26 0.0186 - 28 0.00143 - 29 0.0573 - 30 0.00215 - 31 0.00716 - 32 0.0172 - 33 0.00716 - 34 0.00143 - 35 0.000716 - 37 0.00215 - 39 0.0043 - 40 0.362 - 41 0.304 - 42 0.0279 - 43 0.00143 - 44 0.00215 - 45 0.00287 - 46 0.00143 - - 0 1 1 0 - 44 1 - - 4 66 14 0 - 0 0.0455 - 2 0.0152 - 7 0.379 - 8 0.0152 - 12 0.0152 - 13 0.0152 - 19 0.0152 - 26 0.0455 - 29 0.0152 - 30 0.0152 - 39 0.0909 - 40 0.152 - 41 0.136 - 42 0.0455 - - 41 264 6 0 - 2 0.00379 - 7 0.00758 - 26 0.0114 - 40 0.261 - 41 0.705 - 42 0.0114 - - 42 18 3 0 - 40 0.667 - 41 0.0556 - 42 0.278 - - 44 1 1 0 - 43 1 - - 45 6 5 0 - 40 0.333 - 41 0.167 - 42 0.167 - 44 0.167 - 46 0.167 - - 47 19 8 0 - 2 0.0526 - 7 0.211 - 9 0.421 - 13 0.105 - 28 0.0526 - 30 0.0526 - 33 0.0526 - 40 0.0526 - - 55 951 28 0 - 0 0.0568 - 2 0.0326 - 4 0.0021 - 7 0.0747 - 8 0.00105 - 9 0.00105 - 12 0.0189 - 13 0.00315 - 15 0.00105 - 19 0.00105 - 21 0.0105 - 26 0.021 - 28 0.00105 - 29 0.0831 - 30 0.00105 - 31 0.0105 - 32 0.0252 - 33 0.00946 - 34 0.0021 - 35 0.00105 - 37 0.00315 - 40 0.396 - 41 0.209 - 42 0.0263 - 43 0.00105 - 44 0.00105 - 45 0.00421 - 46 0.00105 - - 57 51 5 0 - 7 0.0196 - 12 0.0196 - 40 0.471 - 41 0.451 - 42 0.0392 - - 49 1035 32 6 - 0 0.0531 - 1 0.000966 - 2 0.0145 - 3 0.00483 - 4 0.0386 - 7 0.0725 - 8 0.0145 - 9 0.00193 - 12 0.00676 - 13 0.0164 - 14 0.0116 - 15 0.0116 - 20 0.0029 - 21 0.00966 - 22 0.00193 - 26 0.0184 - 28 0.00193 - 29 0.0203 - 30 0.0029 - 31 0.00193 - 32 0.0116 - 33 0.00483 - 34 0.00386 - 35 0.00386 - 37 0.000966 - 40 0.411 - 41 0.184 - 42 0.058 - 44 0.000966 - 45 0.0029 - 46 0.00193 - 47 0.00966 - - 2 45 9 0 - 4 0.311 - 8 0.133 - 13 0.156 - 14 0.133 - 15 0.0667 - 20 0.0444 - 21 0.0222 - 40 0.0444 - 41 0.0889 - - 41 350 16 0 - 2 0.00286 - 3 0.0143 - 4 0.0629 - 7 0.00286 - 8 0.00857 - 9 0.00571 - 13 0.0229 - 14 0.0171 - 15 0.02 - 20 0.00286 - 21 0.00571 - 22 0.00286 - 40 0.506 - 41 0.166 - 42 0.131 - 47 0.0286 - - 42 10 5 0 - 8 0.2 - 13 0.1 - 40 0.4 - 41 0.1 - 42 0.2 - - 47 1 1 0 - 32 1 - - 55 548 26 0 - 0 0.0912 - 1 0.00182 - 2 0.0237 - 4 0.00547 - 7 0.128 - 8 0.0073 - 12 0.00912 - 13 0.00182 - 15 0.00365 - 21 0.0109 - 22 0.00182 - 26 0.031 - 28 0.00365 - 29 0.0328 - 30 0.00547 - 31 0.00365 - 32 0.0182 - 33 0.0073 - 34 0.00365 - 35 0.00547 - 37 0.00182 - 40 0.369 - 41 0.204 - 42 0.0201 - 45 0.00547 - 46 0.00365 - - 57 73 15 0 - 0 0.0685 - 2 0.0137 - 7 0.0411 - 12 0.0274 - 21 0.0137 - 26 0.0137 - 29 0.0411 - 32 0.0137 - 33 0.0137 - 34 0.0274 - 35 0.0137 - 40 0.534 - 41 0.151 - 42 0.0137 - 44 0.0137 - - 50 146 15 1 - 3 0.0342 - 4 0.384 - 8 0.144 - 9 0.0137 - 13 0.123 - 14 0.13 - 15 0.0548 - 16 0.00685 - 20 0.0411 - 21 0.0137 - 22 0.00685 - 30 0.0137 - 31 0.0137 - 39 0.00685 - 45 0.0137 - - 46 1 1 0 - 45 1 - - 51 8 5 0 - 2 0.125 - 33 0.125 - 40 0.25 - 41 0.125 - 47 0.375 - - 54 8 4 0 - 0 0.125 - 13 0.125 - 40 0.375 - 41 0.375 - - 55 92386 44 25 - 0 0.00569 - 1 0.000487 - 2 0.0599 - 3 0.0061 - 4 0.022 - 5 3.25e-05 - 6 7.58e-05 - 7 0.423 - 8 0.0122 - 9 0.000509 - 10 0.000108 - 12 0.00184 - 13 0.00187 - 14 0.000682 - 15 0.00441 - 16 3.25e-05 - 17 2.16e-05 - 19 0.00704 - 20 0.000216 - 21 0.011 - 22 0.000346 - 23 0.000152 - 24 7.58e-05 - 25 5.41e-05 - 26 0.0266 - 28 0.000162 - 29 0.0062 - 30 0.0132 - 31 0.0246 - 32 0.00149 - 33 0.000671 - 34 0.0181 - 35 0.00889 - 36 0.000563 - 37 0.00232 - 39 0.000433 - 40 0.0776 - 41 0.217 - 42 0.0281 - 43 0.00179 - 44 0.00812 - 45 0.0015 - 46 0.00279 - 47 0.00143 - - 2 6756 35 0 - 0 0.0628 - 2 0.0154 - 3 0.000148 - 4 0.00681 - 5 0.000148 - 7 0.0813 - 8 0.00488 - 9 0.000148 - 12 0.0207 - 13 0.00133 - 14 0.000888 - 15 0.000888 - 19 0.000592 - 21 0.0148 - 22 0.000444 - 23 0.000148 - 26 0.016 - 28 0.00192 - 29 0.0423 - 30 0.00355 - 31 0.00459 - 32 0.017 - 33 0.00266 - 34 0.00429 - 35 0.00148 - 36 0.000148 - 37 0.000888 - 40 0.412 - 41 0.25 - 42 0.0232 - 43 0.00192 - 44 0.00133 - 45 0.00148 - 46 0.00192 - 47 0.00178 - - 4 104 10 0 - 0 0.0192 - 2 0.865 - 3 0.00962 - 7 0.00962 - 9 0.00962 - 12 0.00962 - 21 0.00962 - 29 0.0192 - 40 0.0192 - 41 0.0288 - - 6 2 2 0 - 40 0.5 - 47 0.5 - - 7 24 7 0 - 0 0.0417 - 2 0.0417 - 29 0.0417 - 32 0.0417 - 40 0.5 - 41 0.25 - 42 0.0833 - - 8 5 4 0 - 7 0.2 - 29 0.2 - 40 0.4 - 42 0.2 - - 13 6 4 0 - 4 0.167 - 30 0.167 - 40 0.167 - 41 0.5 - - 15 8 5 0 - 2 0.125 - 7 0.125 - 29 0.125 - 41 0.5 - 42 0.125 - - 17 14 4 0 - 0 0.0714 - 2 0.714 - 40 0.143 - 41 0.0714 - - 20 4 3 0 - 12 0.25 - 40 0.5 - 41 0.25 - - 21 120 9 0 - 0 0.00833 - 2 0.0667 - 7 0.025 - 8 0.0167 - 26 0.00833 - 40 0.55 - 41 0.292 - 42 0.025 - 43 0.00833 - - 26 49 8 0 - 3 0.49 - 4 0.0408 - 7 0.102 - 8 0.0204 - 19 0.0204 - 40 0.224 - 41 0.0408 - 42 0.0612 - - 40 7 2 0 - 40 0.857 - 41 0.143 - - 41 8157 24 0 - 0 0.00356 - 2 0.114 - 4 0.000613 - 7 0.00282 - 12 0.000613 - 14 0.000245 - 20 0.000123 - 21 0.00049 - 22 0.000123 - 26 0.000613 - 29 0.00699 - 31 0.000368 - 32 0.000123 - 33 0.00331 - 34 0.000736 - 35 0.0011 - 40 0.303 - 41 0.527 - 42 0.0177 - 43 0.0116 - 44 0.00147 - 45 0.000123 - 46 0.000245 - 47 0.00368 - - 42 1360 18 0 - 0 0.00147 - 2 0.00588 - 3 0.00368 - 6 0.000735 - 7 0.00515 - 8 0.000735 - 9 0.000735 - 19 0.000735 - 25 0.00221 - 30 0.00147 - 32 0.000735 - 34 0.000735 - 40 0.561 - 41 0.0449 - 42 0.318 - 43 0.011 - 46 0.00441 - 47 0.036 - - 44 37 5 0 - 7 0.0811 - 40 0.027 - 41 0.027 - 42 0.0811 - 43 0.784 - - 45 324 10 0 - 2 0.0185 - 7 0.0494 - 21 0.00309 - 26 0.00309 - 30 0.00309 - 34 0.00309 - 40 0.133 - 41 0.327 - 42 0.00617 - 46 0.454 - - 46 65 5 0 - 7 0.0154 - 40 0.523 - 41 0.431 - 43 0.0154 - 46 0.0154 - - 47 72120 41 0 - 0 6.93e-05 - 1 0.000624 - 2 0.0597 - 3 0.00738 - 4 0.027 - 5 2.77e-05 - 6 6.93e-05 - 7 0.529 - 8 0.0149 - 9 0.000568 - 10 0.000139 - 13 0.0022 - 14 0.000749 - 15 0.00535 - 16 4.16e-05 - 17 2.77e-05 - 19 0.00892 - 20 0.00025 - 21 0.0123 - 22 0.000333 - 23 0.00018 - 24 6.93e-05 - 25 1.39e-05 - 26 0.0315 - 28 2.77e-05 - 29 0.00257 - 30 0.0164 - 31 0.0309 - 32 4.16e-05 - 33 1.39e-05 - 34 0.0226 - 35 0.0111 - 36 0.000707 - 37 0.00284 - 39 0.000527 - 40 0.000111 - 41 0.177 - 42 0.0204 - 44 0.0101 - 45 0.00176 - 46 0.00122 - - 48 4 4 0 - 0 0.25 - 2 0.25 - 12 0.25 - 40 0.25 - - 49 129 11 0 - 0 0.0155 - 2 0.093 - 4 0.00775 - 7 0.093 - 22 0.00775 - 26 0.0233 - 35 0.0155 - 37 0.00775 - 40 0.419 - 41 0.302 - 42 0.0155 - - 50 156 12 0 - 0 0.00641 - 2 0.0385 - 7 0.0449 - 12 0.00641 - 13 0.00641 - 14 0.00641 - 29 0.00641 - 31 0.00641 - 32 0.00641 - 40 0.66 - 41 0.192 - 42 0.0192 - - 55 2717 34 0 - 0 0.0184 - 2 0.0158 - 3 0.000368 - 4 0.00957 - 6 0.000368 - 7 0.119 - 8 0.00405 - 9 0.0011 - 12 0.00626 - 13 0.00147 - 15 0.00552 - 19 0.000368 - 20 0.000368 - 21 0.00589 - 22 0.0011 - 24 0.000736 - 25 0.000368 - 26 0.025 - 29 0.0118 - 30 0.00147 - 31 0.00405 - 32 0.00515 - 33 0.00552 - 34 0.00184 - 35 0.000368 - 37 0.000736 - 40 0.259 - 41 0.342 - 42 0.134 - 43 0.00331 - 44 0.000368 - 45 0.000368 - 46 0.000368 - 47 0.0144 - - 57 160 13 0 - 0 0.0375 - 2 0.0437 - 7 0.0812 - 12 0.025 - 26 0.025 - 29 0.0437 - 31 0.00625 - 32 0.0125 - 33 0.00625 - 35 0.00625 - 40 0.494 - 41 0.206 - 43 0.0125 - - 58 37 7 0 - 0 0.027 - 7 0.0811 - 40 0.541 - 41 0.216 - 42 0.0811 - 44 0.027 - 47 0.027 - - 60 8 5 0 - 2 0.125 - 7 0.125 - 21 0.125 - 39 0.25 - 40 0.375 - - 56 440 24 15 - 0 0.0477 - 2 0.0114 - 3 0.00227 - 4 0.00909 - 7 0.161 - 8 0.00227 - 12 0.025 - 14 0.00227 - 21 0.00455 - 26 0.0159 - 28 0.00227 - 29 0.0136 - 30 0.00909 - 31 0.00909 - 32 0.025 - 33 0.00455 - 34 0.0114 - 35 0.00909 - 39 0.00227 - 40 0.325 - 41 0.23 - 42 0.0114 - 44 0.00227 - 46 0.0636 - - 4 120 16 0 - 0 0.0583 - 2 0.0167 - 7 0.242 - 12 0.0667 - 14 0.00833 - 28 0.00833 - 31 0.025 - 32 0.025 - 33 0.00833 - 34 0.0167 - 35 0.00833 - 40 0.317 - 41 0.167 - 42 0.00833 - 44 0.00833 - 46 0.0167 - - 8 69 14 0 - 0 0.0725 - 3 0.0145 - 4 0.0145 - 7 0.217 - 8 0.0145 - 12 0.0145 - 21 0.0145 - 26 0.0435 - 30 0.0145 - 32 0.0145 - 34 0.0145 - 35 0.0145 - 40 0.333 - 41 0.203 - - 13 3 2 0 - 30 0.667 - 40 0.333 - - 14 11 7 0 - 2 0.0909 - 29 0.0909 - 32 0.0909 - 33 0.0909 - 40 0.364 - 41 0.182 - 46 0.0909 - - 15 14 4 0 - 0 0.143 - 7 0.0714 - 40 0.357 - 41 0.429 - - 20 36 9 0 - 0 0.0278 - 2 0.0278 - 7 0.25 - 26 0.0278 - 29 0.0556 - 32 0.0556 - 40 0.306 - 41 0.222 - 42 0.0278 - - 21 3 3 0 - 12 0.333 - 41 0.333 - 42 0.333 - - 30 2 2 0 - 0 0.5 - 34 0.5 - - 31 2 2 0 - 7 0.5 - 34 0.5 - - 34 1 1 0 - 4 1 - - 45 61 3 0 - 40 0.246 - 41 0.344 - 46 0.41 - - 48 10 6 0 - 4 0.1 - 7 0.2 - 21 0.1 - 32 0.1 - 40 0.4 - 41 0.1 - - 54 2 2 0 - 35 0.5 - 40 0.5 - - 55 75 12 0 - 0 0.0533 - 2 0.0133 - 4 0.0133 - 7 0.107 - 12 0.0133 - 26 0.0267 - 29 0.0267 - 32 0.0133 - 39 0.0133 - 40 0.347 - 41 0.36 - 42 0.0133 - - 60 14 6 0 - 7 0.214 - 30 0.0714 - 31 0.0714 - 32 0.0714 - 35 0.0714 - 40 0.5 - - 57 43057 41 14 - 0 0.0669 - 1 0.000279 - 2 0.0358 - 3 0.00065 - 4 0.00604 - 5 0.000139 - 6 4.65e-05 - 7 0.106 - 8 0.00476 - 9 0.000139 - 12 0.0216 - 13 0.00232 - 14 0.000836 - 15 0.00272 - 19 0.00183 - 20 2.32e-05 - 21 0.0136 - 22 0.000883 - 23 2.32e-05 - 24 6.97e-05 - 25 2.32e-05 - 26 0.0268 - 28 0.00079 - 29 0.039 - 30 0.00595 - 31 0.00711 - 32 0.00917 - 33 0.0104 - 34 0.0066 - 35 0.00249 - 36 2.32e-05 - 37 0.00221 - 39 0.000116 - 40 0.386 - 41 0.206 - 42 0.0223 - 43 0.00232 - 44 0.00221 - 45 0.00167 - 46 0.00318 - 47 0.00128 - - 2 4 4 0 - 4 0.25 - 15 0.25 - 40 0.25 - 41 0.25 - - 13 20 7 0 - 4 0.05 - 12 0.05 - 26 0.1 - 34 0.05 - 40 0.5 - 41 0.2 - 46 0.05 - - 41 1101 20 0 - 0 0.00363 - 2 0.00272 - 4 0.00182 - 7 0.0163 - 12 0.00182 - 15 0.000908 - 21 0.00182 - 26 0.00363 - 29 0.00636 - 31 0.00182 - 32 0.00182 - 33 0.00182 - 34 0.00182 - 40 0.554 - 41 0.378 - 42 0.0145 - 43 0.00182 - 44 0.000908 - 46 0.000908 - 47 0.00363 - - 42 51 5 0 - 7 0.0196 - 40 0.392 - 41 0.0784 - 42 0.471 - 46 0.0392 - - 44 14 2 0 - 0 0.0714 - 43 0.929 - - 45 21 5 0 - 7 0.0476 - 40 0.476 - 41 0.238 - 42 0.0952 - 46 0.143 - - 46 145 15 0 - 0 0.0345 - 2 0.0138 - 4 0.0069 - 7 0.0483 - 8 0.0069 - 21 0.0207 - 26 0.0207 - 29 0.0069 - 33 0.0069 - 34 0.0069 - 40 0.434 - 41 0.331 - 42 0.0345 - 44 0.0138 - 45 0.0138 - - 48 31 5 0 - 2 0.0323 - 7 0.226 - 40 0.419 - 41 0.29 - 42 0.0323 - - 49 43 8 0 - 0 0.0233 - 2 0.0233 - 7 0.0698 - 26 0.0465 - 29 0.0233 - 40 0.419 - 41 0.372 - 42 0.0233 - - 55 39258 41 0 - 0 0.0695 - 1 0.000306 - 2 0.0374 - 3 0.000662 - 4 0.00642 - 5 0.000153 - 6 5.09e-05 - 7 0.111 - 8 0.00497 - 9 0.000153 - 12 0.0224 - 13 0.00242 - 14 0.000917 - 15 0.00285 - 19 0.00199 - 20 2.55e-05 - 21 0.0143 - 22 0.000942 - 23 2.55e-05 - 24 7.64e-05 - 25 2.55e-05 - 26 0.0284 - 28 0.000841 - 29 0.0411 - 30 0.00629 - 31 0.00746 - 32 0.00978 - 33 0.0109 - 34 0.00693 - 35 0.0027 - 36 2.55e-05 - 37 0.00211 - 39 0.000127 - 40 0.374 - 41 0.202 - 42 0.0215 - 43 0.00201 - 44 0.00217 - 45 0.00163 - 46 0.00326 - 47 0.0012 - - 57 2232 30 0 - 0 0.06 - 2 0.0291 - 3 0.000896 - 4 0.00134 - 7 0.0824 - 8 0.00358 - 12 0.0206 - 13 0.00224 - 15 0.00134 - 19 0.000448 - 21 0.00806 - 22 0.000448 - 26 0.0116 - 28 0.000448 - 29 0.0233 - 30 0.00358 - 31 0.00448 - 32 0.00358 - 33 0.00851 - 34 0.00314 - 35 0.000448 - 37 0.00538 - 40 0.5 - 41 0.187 - 42 0.0269 - 43 0.00269 - 44 0.00314 - 45 0.00269 - 46 0.000896 - 47 0.00134 - - 58 51 12 0 - 0 0.0392 - 7 0.0784 - 21 0.0196 - 26 0.0196 - 29 0.0392 - 30 0.0196 - 31 0.0196 - 32 0.0196 - 40 0.431 - 41 0.235 - 42 0.0588 - 47 0.0196 - - 64 38 8 0 - 0 0.0789 - 8 0.0263 - 26 0.0526 - 29 0.0263 - 34 0.0263 - 40 0.474 - 41 0.237 - 42 0.0789 - - 69 41 6 0 - 0 0.0244 - 2 0.0732 - 29 0.0244 - 40 0.707 - 41 0.146 - 42 0.0244 - - 58 1135 32 9 - 0 0.0943 - 1 0.000881 - 2 0.0643 - 3 0.0106 - 4 0.037 - 7 0.157 - 8 0.00705 - 12 0.0308 - 13 0.00617 - 14 0.00352 - 15 0.00617 - 19 0.00352 - 20 0.00352 - 21 0.0194 - 26 0.0326 - 28 0.00176 - 29 0.0405 - 30 0.00529 - 31 0.00705 - 32 0.0211 - 33 0.0282 - 34 0.0167 - 35 0.00705 - 37 0.00176 - 39 0.000881 - 40 0.142 - 41 0.16 - 42 0.074 - 43 0.00176 - 44 0.000881 - 45 0.00617 - 47 0.00793 - - 2 23 9 0 - 4 0.304 - 8 0.087 - 13 0.174 - 14 0.0435 - 15 0.13 - 20 0.13 - 21 0.0435 - 30 0.0435 - 41 0.0435 - - 13 11 5 0 - 0 0.273 - 7 0.273 - 26 0.273 - 33 0.0909 - 40 0.0909 - - 15 4 4 0 - 2 0.25 - 21 0.25 - 26 0.25 - 41 0.25 - - 41 10 6 0 - 2 0.1 - 29 0.1 - 30 0.1 - 33 0.1 - 40 0.4 - 41 0.2 - - 46 32 7 0 - 0 0.125 - 4 0.0312 - 7 0.125 - 35 0.0312 - 40 0.188 - 41 0.469 - 42 0.0312 - - 55 969 32 0 - 0 0.0949 - 1 0.00103 - 2 0.066 - 3 0.00619 - 4 0.0341 - 7 0.161 - 8 0.00413 - 12 0.032 - 13 0.0031 - 14 0.0031 - 15 0.00413 - 19 0.0031 - 20 0.00103 - 21 0.0165 - 26 0.031 - 28 0.00206 - 29 0.0433 - 30 0.0031 - 31 0.00826 - 32 0.0248 - 33 0.0299 - 34 0.0186 - 35 0.00722 - 37 0.00206 - 39 0.00103 - 40 0.143 - 41 0.156 - 42 0.0826 - 43 0.00206 - 44 0.00103 - 45 0.00413 - 47 0.00929 - - 57 57 17 0 - 0 0.0877 - 2 0.0877 - 3 0.105 - 4 0.0175 - 7 0.105 - 8 0.0351 - 12 0.0351 - 21 0.0526 - 26 0.0175 - 29 0.0351 - 30 0.0175 - 33 0.0175 - 34 0.0175 - 40 0.158 - 41 0.123 - 42 0.0351 - 45 0.0526 - - 60 2 2 0 - 0 0.5 - 21 0.5 - - 64 5 4 0 - 0 0.2 - 2 0.4 - 19 0.2 - 41 0.2 - - 59 3 3 0 - 7 0.333 - 14 0.333 - 40 0.333 - - 60 5599 31 16 - 0 0.00982 - 2 0.0179 - 3 0.00679 - 4 0.0516 - 7 0.357 - 8 0.00732 - 9 0.00411 - 12 0.00304 - 13 0.00357 - 14 0.000179 - 15 0.00304 - 19 0.00125 - 20 0.000179 - 21 0.00589 - 22 0.000179 - 25 0.000179 - 26 0.0564 - 29 0.00304 - 30 0.0025 - 31 0.00768 - 34 0.000893 - 35 0.000536 - 37 0.000179 - 40 0.187 - 41 0.219 - 42 0.0136 - 43 0.0282 - 44 0.00679 - 45 0.000357 - 46 0.000179 - 47 0.00125 - - 3 11 8 0 - 0 0.182 - 2 0.0909 - 7 0.0909 - 14 0.0909 - 26 0.0909 - 29 0.0909 - 40 0.0909 - 41 0.273 - - 4 101 15 0 - 0 0.0396 - 2 0.0297 - 4 0.0891 - 7 0.564 - 8 0.0198 - 12 0.0099 - 15 0.0297 - 19 0.0198 - 21 0.0099 - 26 0.0297 - 29 0.0099 - 31 0.0891 - 40 0.0297 - 41 0.0198 - 44 0.0099 - - 8 72 10 0 - 0 0.0278 - 7 0.486 - 12 0.0139 - 13 0.0139 - 21 0.0278 - 26 0.0694 - 31 0.0139 - 40 0.125 - 41 0.208 - 44 0.0139 - - 13 49 7 0 - 4 0.0612 - 7 0.327 - 21 0.0204 - 34 0.0204 - 40 0.224 - 41 0.327 - 44 0.0204 - - 14 21 6 0 - 7 0.0476 - 19 0.0476 - 30 0.0476 - 40 0.714 - 41 0.0952 - 42 0.0476 - - 20 12 3 0 - 7 0.833 - 8 0.0833 - 40 0.0833 - - 21 8 4 0 - 4 0.125 - 7 0.5 - 40 0.25 - 42 0.125 - - 30 4 3 0 - 7 0.5 - 12 0.25 - 40 0.25 - - 31 30 8 0 - 0 0.1 - 4 0.0667 - 7 0.433 - 13 0.0333 - 26 0.0667 - 31 0.0667 - 40 0.133 - 41 0.1 - - 39 9 7 0 - 2 0.111 - 4 0.222 - 26 0.111 - 40 0.222 - 41 0.111 - 43 0.111 - 47 0.111 - - 42 1 1 0 - 47 1 - - 44 2 1 0 - 43 1 - - 47 5218 30 0 - 0 0.00824 - 2 0.0178 - 3 0.00728 - 4 0.0519 - 7 0.353 - 8 0.00709 - 9 0.00422 - 12 0.00268 - 13 0.00345 - 15 0.00268 - 19 0.000767 - 20 0.000192 - 21 0.00556 - 22 0.000192 - 25 0.000192 - 26 0.0583 - 29 0.00268 - 30 0.00249 - 31 0.00594 - 34 0.000767 - 35 0.000575 - 37 0.000192 - 40 0.186 - 41 0.226 - 42 0.0142 - 43 0.0295 - 44 0.00652 - 45 0.000383 - 46 0.000192 - 47 0.000958 - - 48 6 3 0 - 7 0.167 - 40 0.667 - 44 0.167 - - 55 34 8 0 - 0 0.0294 - 2 0.0588 - 7 0.441 - 8 0.0294 - 9 0.0294 - 29 0.0294 - 40 0.265 - 41 0.118 - - 60 16 4 0 - 4 0.0625 - 7 0.125 - 40 0.688 - 41 0.125 - - 61 43 6 0 - 0 0.0233 - 29 0.0233 - 33 0.0233 - 40 0.465 - 41 0.395 - 42 0.0698 - - 62 1601 28 11 - 0 0.0431 - 2 0.02 - 3 0.000625 - 4 0.00187 - 7 0.03 - 8 0.000625 - 12 0.02 - 15 0.00125 - 19 0.000625 - 21 0.0075 - 22 0.00125 - 26 0.00187 - 28 0.000625 - 29 0.0169 - 30 0.000625 - 31 0.00125 - 32 0.0025 - 33 0.00937 - 34 0.000625 - 37 0.00125 - 40 0.626 - 41 0.176 - 42 0.0162 - 43 0.00312 - 44 0.00125 - 45 0.00187 - 46 0.00874 - 47 0.005 - - 2 20 3 0 - 29 0.05 - 40 0.75 - 41 0.2 - - 4 2 2 0 - 40 0.5 - 43 0.5 - - 8 5 4 0 - 40 0.4 - 41 0.2 - 43 0.2 - 46 0.2 - - 13 936 26 0 - 0 0.0513 - 2 0.016 - 3 0.00107 - 4 0.00214 - 7 0.031 - 8 0.00107 - 12 0.0246 - 15 0.00107 - 19 0.00107 - 21 0.00962 - 22 0.00107 - 26 0.00321 - 28 0.00107 - 29 0.0214 - 31 0.00214 - 33 0.0118 - 34 0.00107 - 37 0.00214 - 40 0.607 - 41 0.185 - 42 0.0139 - 43 0.00107 - 44 0.00107 - 45 0.00321 - 46 0.00321 - 47 0.00321 - - 14 215 16 0 - 0 0.0698 - 2 0.0419 - 4 0.00465 - 7 0.0512 - 12 0.0279 - 15 0.00465 - 21 0.0093 - 22 0.00465 - 29 0.0233 - 30 0.00465 - 32 0.014 - 33 0.00465 - 40 0.581 - 41 0.144 - 42 0.00465 - 47 0.0093 - - 41 42 5 0 - 2 0.0714 - 40 0.548 - 41 0.333 - 42 0.0238 - 43 0.0238 - - 42 99 5 0 - 40 0.889 - 41 0.0303 - 42 0.0505 - 46 0.0101 - 47 0.0202 - - 45 38 4 0 - 40 0.553 - 41 0.184 - 42 0.0263 - 46 0.237 - - 47 8 4 0 - 12 0.25 - 33 0.125 - 40 0.5 - 47 0.125 - - 55 65 7 0 - 0 0.0154 - 2 0.0462 - 7 0.0615 - 40 0.569 - 41 0.246 - 42 0.0462 - 44 0.0154 - - 57 132 12 0 - 0 0.0303 - 2 0.00758 - 7 0.0227 - 12 0.00758 - 21 0.00758 - 29 0.00758 - 32 0.00758 - 33 0.0152 - 40 0.689 - 41 0.182 - 42 0.0152 - 43 0.00758 - - 64 9765 30 13 - 0 0.0406 - 2 0.012 - 4 0.00113 - 7 0.0138 - 8 0.000102 - 12 0.015 - 13 0.00041 - 14 0.000102 - 15 0.000307 - 19 0.000819 - 20 0.000102 - 21 0.00379 - 22 0.000307 - 26 0.00379 - 28 0.000614 - 29 0.0086 - 30 0.00102 - 31 0.000512 - 32 0.0044 - 33 0.00287 - 34 0.00041 - 37 0.000205 - 40 0.613 - 41 0.245 - 42 0.0247 - 43 0.00143 - 44 0.00164 - 45 0.00113 - 46 0.00113 - 47 0.00113 - - 2 12 3 0 - 40 0.75 - 41 0.0833 - 42 0.167 - - 8 2 2 0 - 40 0.5 - 44 0.5 - - 13 484 13 0 - 0 0.0331 - 2 0.00826 - 7 0.00413 - 12 0.0145 - 26 0.00207 - 29 0.0124 - 33 0.00826 - 40 0.731 - 41 0.157 - 42 0.0227 - 43 0.00207 - 45 0.00207 - 46 0.00207 - - 14 162 8 0 - 0 0.037 - 2 0.00617 - 12 0.00617 - 29 0.0123 - 32 0.00617 - 40 0.79 - 41 0.136 - 42 0.00617 - - 41 2797 15 0 - 0 0.00465 - 2 0.00107 - 4 0.000358 - 7 0.000358 - 12 0.000715 - 15 0.000358 - 21 0.000715 - 29 0.0025 - 33 0.000715 - 40 0.555 - 41 0.417 - 42 0.0136 - 43 0.000715 - 44 0.000358 - 47 0.00179 - - 42 55 4 0 - 40 0.545 - 41 0.0364 - 42 0.4 - 46 0.0182 - - 44 1 1 0 - 43 1 - - 46 78 5 0 - 2 0.0128 - 40 0.718 - 41 0.244 - 42 0.0128 - 44 0.0128 - - 49 18 3 0 - 22 0.0556 - 40 0.667 - 41 0.278 - - 55 5353 30 0 - 0 0.0616 - 2 0.0189 - 4 0.00187 - 7 0.023 - 8 0.000187 - 12 0.023 - 13 0.000747 - 14 0.000187 - 15 0.000374 - 19 0.00149 - 20 0.000187 - 21 0.00654 - 22 0.000187 - 26 0.00579 - 28 0.000934 - 29 0.0116 - 30 0.00187 - 31 0.000747 - 32 0.0071 - 33 0.00411 - 34 0.000747 - 37 0.000374 - 40 0.611 - 41 0.181 - 42 0.0275 - 43 0.00187 - 44 0.00205 - 45 0.00168 - 46 0.00168 - 47 0.00112 - - 57 678 15 0 - 0 0.0383 - 2 0.00885 - 7 0.0133 - 12 0.0192 - 22 0.00147 - 26 0.00737 - 28 0.00147 - 29 0.00885 - 31 0.00147 - 32 0.0059 - 40 0.715 - 41 0.15 - 42 0.0236 - 44 0.00295 - 45 0.00147 - - 58 36 4 0 - 0 0.0278 - 40 0.806 - 41 0.111 - 42 0.0556 - - 69 29 3 0 - 40 0.862 - 41 0.103 - 42 0.0345 - - 65 9 3 0 - 40 0.444 - 46 0.222 - 47 0.333 - - 67 5 4 0 - 40 0.4 - 42 0.2 - 46 0.2 - 47 0.2 - - 68 68 9 1 - 0 0.0294 - 2 0.0294 - 7 0.0882 - 26 0.0294 - 29 0.0294 - 32 0.0441 - 40 0.603 - 41 0.103 - 42 0.0441 - - 57 10 3 0 - 2 0.2 - 40 0.7 - 42 0.1 - - 69 4817 31 8 - 0 0.0619 - 2 0.0199 - 3 0.000415 - 4 0.00166 - 7 0.0309 - 8 0.00145 - 12 0.0276 - 13 0.000415 - 15 0.000208 - 21 0.0083 - 22 0.00083 - 25 0.000208 - 26 0.00851 - 28 0.00104 - 29 0.0324 - 30 0.00208 - 31 0.00415 - 32 0.0129 - 33 0.00893 - 34 0.00353 - 35 0.000623 - 37 0.000415 - 39 0.000208 - 40 0.478 - 41 0.256 - 42 0.0286 - 43 0.00332 - 44 0.00145 - 45 0.00083 - 46 0.00104 - 47 0.00187 - - 41 789 13 0 - 0 0.00634 - 2 0.00253 - 7 0.0152 - 12 0.00127 - 21 0.00127 - 26 0.00253 - 29 0.0139 - 32 0.00253 - 33 0.00634 - 40 0.326 - 41 0.597 - 42 0.0228 - 47 0.00253 - - 42 8 2 0 - 40 0.25 - 42 0.75 - - 44 2 1 0 - 43 1 - - 45 5 5 0 - 0 0.2 - 8 0.2 - 40 0.2 - 41 0.2 - 44 0.2 - - 46 31 6 0 - 0 0.0323 - 21 0.0323 - 32 0.0323 - 40 0.516 - 41 0.355 - 45 0.0323 - - 48 7 1 0 - 41 1 - - 55 3706 31 0 - 0 0.0739 - 2 0.0237 - 3 0.00054 - 4 0.00216 - 7 0.0351 - 8 0.00162 - 12 0.0351 - 13 0.00054 - 15 0.00027 - 21 0.00944 - 22 0.000809 - 25 0.00027 - 26 0.0105 - 28 0.00135 - 29 0.0364 - 30 0.0027 - 31 0.0054 - 32 0.0159 - 33 0.0103 - 34 0.00459 - 35 0.000809 - 37 0.00054 - 39 0.00027 - 40 0.502 - 41 0.188 - 42 0.0286 - 43 0.00324 - 44 0.00162 - 45 0.000809 - 46 0.00135 - 47 0.00189 - - 57 248 11 0 - 0 0.0645 - 2 0.0202 - 7 0.0282 - 12 0.00806 - 21 0.0121 - 22 0.00403 - 29 0.0403 - 40 0.597 - 41 0.185 - 42 0.0323 - 43 0.00806 - - 73 3 3 0 - 0 0.333 - 32 0.333 - 41 0.333 - - 74 16 7 0 - 0 0.0625 - 26 0.0625 - 35 0.0625 - 40 0.125 - 41 0.125 - 42 0.0625 - 47 0.5 - -56 3639 35 22 - 0 0.0231 - 2 0.288 - 3 0.00302 - 4 0.00769 - 6 0.000275 - 7 0.104 - 8 0.0445 - 9 0.0011 - 12 0.0115 - 13 0.0409 - 14 0.0168 - 15 0.0176 - 16 0.00055 - 18 0.000824 - 20 0.000275 - 21 0.0055 - 23 0.000275 - 26 0.00907 - 28 0.0011 - 29 0.00632 - 30 0.00467 - 31 0.0055 - 32 0.0121 - 33 0.00247 - 34 0.00632 - 35 0.00467 - 37 0.000275 - 39 0.0022 - 40 0.144 - 41 0.192 - 42 0.00714 - 43 0.00055 - 44 0.0118 - 45 0.0011 - 46 0.0231 - - 2 357 16 3 - 3 0.0224 - 4 0.0056 - 8 0.361 - 9 0.0112 - 13 0.325 - 14 0.0728 - 15 0.126 - 16 0.0028 - 20 0.0028 - 21 0.0196 - 23 0.0028 - 30 0.0084 - 31 0.014 - 33 0.0028 - 39 0.0112 - 45 0.0112 - - 41 17 7 0 - 8 0.118 - 13 0.412 - 14 0.0588 - 15 0.118 - 31 0.0588 - 39 0.176 - 45 0.0588 - - 46 3 1 0 - 45 1 - - 56 337 15 0 - 3 0.0237 - 4 0.00593 - 8 0.377 - 9 0.0119 - 13 0.323 - 14 0.0742 - 15 0.128 - 16 0.00297 - 20 0.00297 - 21 0.0208 - 23 0.00297 - 30 0.0089 - 31 0.0119 - 33 0.00297 - 39 0.00297 - - 3 7 5 0 - 2 0.286 - 4 0.286 - 40 0.143 - 41 0.143 - 46 0.143 - - 6 7 3 0 - 40 0.286 - 41 0.286 - 46 0.429 - - 13 392 19 8 - 0 0.0102 - 2 0.416 - 7 0.148 - 12 0.0102 - 14 0.0051 - 21 0.00255 - 26 0.0102 - 29 0.0051 - 30 0.00255 - 31 0.00255 - 32 0.0051 - 33 0.00255 - 34 0.0051 - 35 0.00255 - 39 0.00255 - 40 0.107 - 41 0.24 - 42 0.0051 - 46 0.0179 - - 3 7 5 0 - 2 0.429 - 7 0.143 - 14 0.143 - 31 0.143 - 40 0.143 - - 4 4 2 0 - 41 0.25 - 46 0.75 - - 8 107 13 0 - 0 0.00935 - 2 0.271 - 7 0.15 - 12 0.0187 - 21 0.00935 - 26 0.00935 - 29 0.00935 - 32 0.0187 - 34 0.0187 - 40 0.103 - 41 0.355 - 42 0.00935 - 46 0.0187 - - 9 1 1 0 - 42 1 - - 13 89 11 0 - 0 0.0337 - 2 0.371 - 7 0.169 - 12 0.0112 - 26 0.0112 - 29 0.0112 - 33 0.0112 - 39 0.0112 - 40 0.135 - 41 0.225 - 46 0.0112 - - 14 6 2 0 - 2 0.5 - 40 0.5 - - 30 8 3 0 - 7 0.125 - 40 0.5 - 41 0.375 - - 47 147 10 0 - 2 0.565 - 7 0.156 - 12 0.0068 - 14 0.0068 - 26 0.0136 - 30 0.0068 - 35 0.0068 - 40 0.0544 - 41 0.177 - 46 0.0068 - - 14 312 22 7 - 0 0.0353 - 2 0.385 - 4 0.00321 - 7 0.0994 - 8 0.016 - 12 0.00962 - 14 0.00321 - 21 0.00321 - 26 0.0192 - 28 0.00321 - 29 0.00641 - 30 0.00962 - 31 0.00641 - 32 0.0192 - 34 0.00962 - 35 0.00962 - 40 0.128 - 41 0.212 - 42 0.00321 - 43 0.00321 - 44 0.00641 - 46 0.00962 - - 8 75 12 0 - 0 0.0267 - 2 0.333 - 7 0.0933 - 8 0.0533 - 21 0.0133 - 26 0.04 - 28 0.0133 - 29 0.0133 - 35 0.0133 - 40 0.2 - 41 0.187 - 46 0.0133 - - 13 93 15 0 - 0 0.0753 - 2 0.312 - 4 0.0108 - 7 0.118 - 12 0.0215 - 30 0.0108 - 31 0.0215 - 32 0.0323 - 34 0.0108 - 35 0.0215 - 40 0.172 - 41 0.161 - 43 0.0108 - 44 0.0108 - 46 0.0108 - - 15 6 5 0 - 2 0.333 - 12 0.167 - 26 0.167 - 29 0.167 - 41 0.167 - - 21 3 3 0 - 2 0.333 - 7 0.333 - 14 0.333 - - 31 5 5 0 - 0 0.2 - 2 0.2 - 30 0.2 - 41 0.2 - 44 0.2 - - 45 1 1 0 - 46 1 - - 47 111 10 0 - 2 0.523 - 7 0.0721 - 8 0.00901 - 26 0.018 - 30 0.00901 - 32 0.027 - 34 0.018 - 40 0.0631 - 41 0.252 - 42 0.00901 - - 15 139 12 3 - 0 0.00719 - 2 0.266 - 7 0.0719 - 14 0.00719 - 18 0.0216 - 29 0.00719 - 32 0.0144 - 33 0.00719 - 40 0.194 - 41 0.223 - 44 0.0863 - 46 0.0935 - - 3 3 3 0 - 2 0.333 - 7 0.333 - 14 0.333 - - 15 83 9 0 - 2 0.265 - 7 0.012 - 29 0.012 - 32 0.0241 - 33 0.012 - 40 0.229 - 41 0.253 - 44 0.12 - 46 0.0723 - - 47 45 8 0 - 0 0.0222 - 2 0.244 - 7 0.178 - 18 0.0667 - 40 0.156 - 41 0.156 - 44 0.0444 - 46 0.133 - - 16 12 6 0 - 0 0.0833 - 2 0.417 - 7 0.0833 - 41 0.25 - 42 0.0833 - 46 0.0833 - - 18 3 3 0 - 0 0.333 - 7 0.333 - 12 0.333 - - 30 2 2 0 - 2 0.5 - 4 0.5 - - 33 1 1 0 - 4 1 - - 41 116 15 1 - 0 0.0172 - 2 0.155 - 3 0.00862 - 4 0.0259 - 6 0.00862 - 7 0.0172 - 8 0.138 - 13 0.267 - 14 0.19 - 15 0.103 - 16 0.00862 - 21 0.0172 - 31 0.00862 - 35 0.00862 - 46 0.0259 - - 57 3 3 0 - 0 0.333 - 21 0.333 - 46 0.333 - - 42 3 3 0 - 4 0.333 - 32 0.333 - 37 0.333 - - 45 3 1 0 - 15 1 - - 46 8 4 0 - 2 0.5 - 7 0.125 - 29 0.125 - 34 0.25 - - 47 1311 27 19 - 0 0.032 - 2 0.263 - 3 0.00153 - 4 0.00763 - 7 0.127 - 8 0.00458 - 12 0.016 - 13 0.000763 - 14 0.00381 - 15 0.00153 - 21 0.00381 - 26 0.0114 - 28 0.00153 - 29 0.00839 - 30 0.00534 - 31 0.00534 - 32 0.0168 - 33 0.00305 - 34 0.00763 - 35 0.0061 - 39 0.00153 - 40 0.2 - 41 0.222 - 42 0.00839 - 43 0.000763 - 44 0.0114 - 46 0.029 - - 2 2 2 0 - 3 0.5 - 30 0.5 - - 3 7 5 0 - 2 0.286 - 4 0.286 - 40 0.143 - 41 0.143 - 46 0.143 - - 6 7 3 0 - 40 0.286 - 41 0.286 - 46 0.429 - - 13 389 18 0 - 0 0.0103 - 2 0.419 - 7 0.147 - 12 0.0103 - 14 0.00514 - 21 0.00257 - 26 0.00771 - 29 0.00514 - 31 0.00257 - 32 0.00514 - 33 0.00257 - 34 0.00514 - 35 0.00257 - 39 0.00257 - 40 0.108 - 41 0.242 - 42 0.00514 - 46 0.018 - - 14 310 22 0 - 0 0.0355 - 2 0.387 - 4 0.00323 - 7 0.0968 - 8 0.0161 - 12 0.00968 - 14 0.00323 - 21 0.00323 - 26 0.0194 - 28 0.00323 - 29 0.00645 - 30 0.00968 - 31 0.00645 - 32 0.0194 - 34 0.00968 - 35 0.00968 - 40 0.129 - 41 0.213 - 42 0.00323 - 43 0.00323 - 44 0.00645 - 46 0.00645 - - 15 135 11 0 - 0 0.00741 - 2 0.274 - 7 0.0667 - 14 0.00741 - 29 0.00741 - 32 0.0148 - 33 0.00741 - 40 0.2 - 41 0.23 - 44 0.0889 - 46 0.0963 - - 16 12 6 0 - 0 0.0833 - 2 0.417 - 7 0.0833 - 41 0.25 - 42 0.0833 - 46 0.0833 - - 18 3 3 0 - 0 0.333 - 7 0.333 - 12 0.333 - - 30 2 2 0 - 2 0.5 - 4 0.5 - - 33 1 1 0 - 4 1 - - 41 7 5 0 - 0 0.286 - 2 0.143 - 3 0.143 - 7 0.286 - 31 0.143 - - 46 3 3 0 - 2 0.333 - 7 0.333 - 29 0.333 - - 48 4 1 0 - 40 1 - - 55 8 4 0 - 7 0.125 - 40 0.5 - 41 0.25 - 46 0.125 - - 56 346 23 0 - 0 0.0578 - 2 0.00867 - 4 0.0116 - 7 0.173 - 8 0.00289 - 12 0.0289 - 14 0.00289 - 21 0.00578 - 26 0.0173 - 28 0.00289 - 29 0.0145 - 30 0.00867 - 31 0.00867 - 32 0.0318 - 33 0.00578 - 34 0.0145 - 35 0.0116 - 39 0.00289 - 40 0.344 - 41 0.22 - 42 0.0116 - 44 0.00289 - 46 0.0116 - - 57 45 12 0 - 0 0.0222 - 2 0.0667 - 4 0.0222 - 7 0.0889 - 12 0.0667 - 13 0.0222 - 15 0.0444 - 21 0.0222 - 40 0.333 - 41 0.2 - 42 0.0222 - 46 0.0889 - - 58 13 4 0 - 2 0.308 - 40 0.308 - 41 0.231 - 42 0.154 - - 60 3 1 0 - 41 1 - - 64 5 4 0 - 0 0.2 - 40 0.4 - 41 0.2 - 46 0.2 - - 48 4 1 0 - 40 1 - - 55 20 9 1 - 2 0.05 - 7 0.35 - 29 0.05 - 31 0.05 - 34 0.05 - 40 0.2 - 41 0.1 - 42 0.1 - 46 0.05 - - 47 10 6 0 - 2 0.1 - 7 0.5 - 29 0.1 - 31 0.1 - 34 0.1 - 42 0.1 - - 56 860 23 4 - 0 0.0233 - 2 0.395 - 4 0.00698 - 7 0.11 - 8 0.00581 - 12 0.0116 - 14 0.00465 - 21 0.00349 - 26 0.0093 - 28 0.00116 - 29 0.00581 - 30 0.00349 - 31 0.00349 - 32 0.0128 - 33 0.00233 - 34 0.00581 - 35 0.00465 - 39 0.00116 - 40 0.138 - 41 0.217 - 42 0.00698 - 44 0.0163 - 46 0.0093 - - 2 351 23 0 - 0 0.057 - 2 0.0114 - 4 0.0114 - 7 0.177 - 8 0.00285 - 12 0.0285 - 14 0.0114 - 21 0.0057 - 26 0.0171 - 28 0.00285 - 29 0.0142 - 30 0.00855 - 31 0.00855 - 32 0.0313 - 33 0.0057 - 34 0.0142 - 35 0.0114 - 39 0.00285 - 40 0.328 - 41 0.225 - 42 0.0114 - 44 0.00285 - 46 0.0114 - - 41 83 2 0 - 2 0.675 - 41 0.325 - - 45 8 3 0 - 40 0.25 - 41 0.25 - 46 0.5 - - 47 414 9 0 - 2 0.676 - 4 0.00483 - 7 0.0773 - 8 0.00966 - 21 0.00242 - 26 0.00483 - 41 0.188 - 42 0.00483 - 44 0.0314 - - 57 50 12 0 - 0 0.02 - 2 0.06 - 4 0.02 - 7 0.12 - 12 0.06 - 13 0.02 - 15 0.04 - 21 0.02 - 40 0.3 - 41 0.24 - 42 0.02 - 46 0.08 - - 58 14 4 0 - 2 0.286 - 40 0.286 - 41 0.286 - 42 0.143 - - 60 3 1 0 - 41 1 - - 64 6 4 0 - 0 0.167 - 40 0.333 - 41 0.333 - 46 0.167 - -57 285122 47 41 - 0 0.025 - 1 0.000582 - 2 0.0249 - 3 0.0218 - 4 0.118 - 5 0.000179 - 6 8.77e-05 - 7 0.0779 - 8 0.0345 - 9 0.00187 - 10 0.000544 - 12 0.0081 - 13 0.0408 - 14 0.0204 - 15 0.0544 - 16 0.000593 - 17 0.000368 - 18 0.000154 - 19 0.00467 - 20 0.0129 - 21 0.012 - 22 0.000722 - 23 7.01e-05 - 24 2.1e-05 - 25 1.4e-05 - 26 0.018 - 27 7.01e-06 - 28 0.000656 - 29 0.0139 - 30 0.013 - 31 0.0035 - 32 0.00343 - 33 0.0038 - 34 0.00234 - 35 0.00156 - 36 1.05e-05 - 37 0.00221 - 38 0.000277 - 39 0.0111 - 40 0.28 - 41 0.164 - 42 0.0145 - 43 0.00169 - 44 0.00118 - 45 0.00235 - 46 0.00192 - 47 0.00108 - - 2 472 17 6 - 3 0.00847 - 4 0.0275 - 7 0.684 - 8 0.0424 - 9 0.00636 - 13 0.0169 - 14 0.0169 - 15 0.0106 - 20 0.00212 - 21 0.0826 - 22 0.00212 - 26 0.0742 - 30 0.00424 - 31 0.00424 - 39 0.00212 - 41 0.0127 - 45 0.00212 - - 3 1 1 0 - 3 1 - - 7 33 2 0 - 4 0.0606 - 7 0.939 - - 41 83 8 0 - 3 0.0241 - 4 0.012 - 7 0.602 - 21 0.253 - 22 0.012 - 26 0.0723 - 31 0.012 - 45 0.012 - - 47 56 10 0 - 3 0.0179 - 4 0.179 - 8 0.357 - 9 0.0357 - 13 0.125 - 14 0.143 - 15 0.0714 - 30 0.0357 - 31 0.0179 - 39 0.0179 - - 55 3 3 0 - 13 0.333 - 15 0.333 - 20 0.333 - - 57 280 5 0 - 7 0.807 - 9 0.00357 - 21 0.0643 - 26 0.104 - 41 0.0214 - - 6 13 5 0 - 4 0.154 - 8 0.231 - 14 0.0769 - 15 0.462 - 39 0.0769 - - 7 83957 45 12 - 0 0.000107 - 1 0.00155 - 2 0.00102 - 3 0.0553 - 4 0.345 - 5 3.57e-05 - 6 0.000226 - 7 0.0167 - 8 0.0969 - 9 0.00506 - 10 0.00163 - 12 4.76e-05 - 13 0.119 - 14 0.0601 - 15 0.16 - 16 0.00185 - 17 0.00114 - 19 0.00769 - 20 0.0394 - 21 0.0123 - 22 0.000643 - 23 0.000167 - 25 1.19e-05 - 26 0.000798 - 27 1.19e-05 - 28 0.000119 - 29 2.38e-05 - 30 0.0324 - 31 0.00273 - 32 1.19e-05 - 33 2.38e-05 - 34 0.000226 - 35 0.00219 - 36 1.19e-05 - 37 0.00157 - 38 0.000584 - 39 0.0269 - 40 0.000655 - 41 0.000691 - 42 0.000202 - 43 3.57e-05 - 44 0.00031 - 45 0.00479 - 46 0.000119 - 47 0.000191 - - 2 40 9 0 - 3 0.025 - 4 0.35 - 7 0.1 - 8 0.025 - 13 0.175 - 14 0.05 - 15 0.225 - 19 0.025 - 20 0.025 - - 4 18 7 0 - 2 0.167 - 4 0.278 - 13 0.0556 - 14 0.0556 - 15 0.278 - 20 0.111 - 40 0.0556 - - 7 356 14 0 - 3 0.00562 - 4 0.41 - 8 0.16 - 9 0.0281 - 13 0.129 - 14 0.0927 - 15 0.0365 - 20 0.0871 - 21 0.00281 - 30 0.014 - 31 0.014 - 35 0.00281 - 39 0.00281 - 45 0.014 - - 8 342 16 0 - 3 0.00292 - 4 0.146 - 7 0.00585 - 8 0.12 - 9 0.00585 - 13 0.184 - 14 0.0848 - 15 0.371 - 20 0.00292 - 21 0.00585 - 30 0.0263 - 31 0.00292 - 32 0.00292 - 37 0.00585 - 41 0.00585 - 45 0.0263 - - 21 289 21 0 - 1 0.0138 - 3 0.0346 - 4 0.301 - 7 0.0484 - 8 0.0934 - 9 0.00346 - 10 0.00346 - 13 0.111 - 14 0.0484 - 15 0.0727 - 19 0.00346 - 20 0.0381 - 21 0.0277 - 26 0.0104 - 28 0.00692 - 30 0.163 - 31 0.00346 - 35 0.00346 - 39 0.00346 - 41 0.00346 - 45 0.00692 - - 22 5 4 0 - 4 0.4 - 14 0.2 - 15 0.2 - 28 0.2 - - 44 1 1 0 - 43 1 - - 45 5 4 0 - 4 0.2 - 13 0.4 - 21 0.2 - 30 0.2 - - 47 82196 44 0 - 0 0.000109 - 1 0.0015 - 2 0.00101 - 3 0.0561 - 4 0.345 - 5 3.65e-05 - 6 0.000231 - 7 0.0161 - 8 0.0969 - 9 0.00495 - 10 0.00164 - 12 4.87e-05 - 13 0.118 - 14 0.0599 - 15 0.16 - 16 0.00189 - 17 0.00117 - 19 0.00779 - 20 0.0393 - 21 0.0123 - 22 0.000657 - 23 0.00017 - 25 1.22e-05 - 26 0.000766 - 27 1.22e-05 - 28 8.52e-05 - 29 2.43e-05 - 30 0.032 - 31 0.0027 - 33 1.22e-05 - 34 0.000231 - 35 0.0022 - 36 1.22e-05 - 37 0.00157 - 38 0.000596 - 39 0.0274 - 40 0.000657 - 41 0.000645 - 42 0.000207 - 43 2.43e-05 - 44 0.000316 - 45 0.00467 - 46 0.000109 - 47 0.000182 - - 49 561 20 0 - 1 0.00535 - 3 0.0232 - 4 0.385 - 7 0.0945 - 8 0.0731 - 9 0.00891 - 10 0.00178 - 13 0.171 - 14 0.0624 - 15 0.0838 - 19 0.00713 - 20 0.0285 - 21 0.00535 - 30 0.0357 - 33 0.00178 - 35 0.00178 - 39 0.00357 - 45 0.00357 - 46 0.00178 - 47 0.00178 - - 55 124 13 0 - 3 0.0242 - 4 0.54 - 8 0.0403 - 13 0.0968 - 14 0.00806 - 15 0.0645 - 20 0.105 - 21 0.0161 - 26 0.00806 - 30 0.0645 - 37 0.00806 - 39 0.00806 - 41 0.0161 - - 57 8 4 0 - 4 0.125 - 7 0.625 - 13 0.125 - 21 0.125 - - 8 27 13 0 - 3 0.0741 - 4 0.111 - 9 0.037 - 13 0.148 - 14 0.111 - 15 0.111 - 19 0.037 - 20 0.037 - 26 0.111 - 30 0.111 - 39 0.037 - 40 0.037 - 46 0.037 - - 13 8 4 0 - 3 0.125 - 15 0.375 - 40 0.25 - 41 0.25 - - 14 6 4 0 - 2 0.167 - 32 0.167 - 40 0.333 - 41 0.333 - - 15 12 4 0 - 4 0.25 - 14 0.0833 - 15 0.583 - 16 0.0833 - - 20 2 1 0 - 14 1 - - 21 132 17 5 - 2 0.00758 - 3 0.0227 - 4 0.0985 - 7 0.205 - 8 0.114 - 9 0.00758 - 13 0.0455 - 14 0.00758 - 15 0.0379 - 19 0.0303 - 20 0.0227 - 21 0.197 - 26 0.0455 - 30 0.053 - 31 0.0227 - 40 0.0455 - 41 0.0379 - - 2 14 2 0 - 7 0.714 - 26 0.286 - - 7 10 5 0 - 4 0.1 - 19 0.1 - 21 0.1 - 40 0.3 - 41 0.4 - - 41 14 4 0 - 7 0.786 - 21 0.0714 - 26 0.0714 - 30 0.0714 - - 47 80 15 0 - 2 0.0125 - 3 0.0375 - 4 0.138 - 7 0.05 - 8 0.162 - 9 0.0125 - 13 0.075 - 15 0.0125 - 19 0.025 - 20 0.0375 - 21 0.275 - 26 0.0125 - 30 0.075 - 31 0.0375 - 40 0.0375 - - 49 8 6 0 - 4 0.125 - 8 0.25 - 14 0.125 - 15 0.25 - 19 0.125 - 21 0.125 - - 22 2 2 0 - 8 0.5 - 14 0.5 - - 23 4 2 0 - 26 0.5 - 41 0.5 - - 24 55 14 0 - 0 0.0364 - 3 0.0545 - 4 0.145 - 7 0.182 - 8 0.0545 - 14 0.0364 - 15 0.0727 - 21 0.0364 - 26 0.145 - 30 0.0182 - 31 0.0182 - 40 0.145 - 41 0.0182 - 45 0.0364 - - 26 8661 37 4 - 0 0.000231 - 1 0.00115 - 2 0.00104 - 3 0.158 - 4 0.289 - 6 0.000231 - 7 0.00912 - 8 0.0774 - 9 0.00774 - 10 0.000577 - 13 0.0784 - 14 0.0602 - 15 0.116 - 16 0.00115 - 17 0.000808 - 19 0.0128 - 20 0.0344 - 21 0.0102 - 22 0.000693 - 23 0.000115 - 27 0.000115 - 28 0.00739 - 30 0.0172 - 31 0.00323 - 34 0.000346 - 35 0.00254 - 37 0.000693 - 38 0.00346 - 39 0.1 - 40 0.000462 - 41 0.00104 - 42 0.000115 - 43 0.000115 - 44 0.000346 - 45 0.00323 - 46 0.000115 - 47 0.000462 - - 8 12 6 0 - 4 0.417 - 8 0.0833 - 13 0.167 - 14 0.0833 - 15 0.0833 - 20 0.167 - - 21 8 4 0 - 4 0.625 - 8 0.125 - 14 0.125 - 31 0.125 - - 41 1 1 0 - 28 1 - - 49 36 8 0 - 3 0.0278 - 4 0.556 - 8 0.111 - 9 0.111 - 13 0.0833 - 14 0.0278 - 15 0.0278 - 20 0.0556 - - 28 2 2 0 - 4 0.5 - 37 0.5 - - 29 2 1 0 - 4 1 - - 30 613 21 0 - 3 0.0375 - 4 0.401 - 7 0.00489 - 8 0.106 - 9 0.00816 - 13 0.116 - 14 0.0571 - 15 0.166 - 16 0.00163 - 19 0.00163 - 20 0.0277 - 21 0.00326 - 22 0.00163 - 25 0.00163 - 30 0.0147 - 31 0.00816 - 37 0.00489 - 39 0.0245 - 41 0.00326 - 42 0.00163 - 45 0.00816 - - 31 57 10 0 - 4 0.526 - 7 0.123 - 8 0.0877 - 13 0.0175 - 15 0.0877 - 19 0.0351 - 20 0.0702 - 29 0.0175 - 30 0.0175 - 35 0.0175 - - 40 16 3 0 - 40 0.188 - 46 0.125 - 47 0.688 - - 41 284 20 7 - 0 0.0106 - 2 0.317 - 3 0.00704 - 4 0.173 - 5 0.00352 - 7 0.19 - 8 0.00704 - 13 0.00704 - 15 0.00352 - 19 0.00352 - 20 0.00352 - 21 0.148 - 22 0.00704 - 26 0.0634 - 28 0.00704 - 29 0.0106 - 34 0.00704 - 37 0.00352 - 45 0.0141 - 46 0.0141 - - 2 2 1 0 - 22 1 - - 7 7 3 0 - 21 0.286 - 28 0.286 - 45 0.429 - - 48 2 1 0 - 46 1 - - 49 6 4 0 - 2 0.167 - 4 0.167 - 7 0.5 - 34 0.167 - - 52 3 2 0 - 13 0.667 - 20 0.333 - - 55 71 12 0 - 0 0.0282 - 2 0.0423 - 4 0.62 - 5 0.0141 - 7 0.169 - 8 0.0282 - 15 0.0141 - 19 0.0141 - 21 0.0141 - 26 0.0141 - 29 0.0282 - 46 0.0141 - - 57 189 11 0 - 0 0.00529 - 2 0.45 - 3 0.0106 - 4 0.0212 - 7 0.206 - 21 0.196 - 26 0.0899 - 29 0.00529 - 34 0.00529 - 37 0.00529 - 45 0.00529 - - 42 32 10 3 - 2 0.219 - 4 0.0938 - 7 0.125 - 8 0.0312 - 13 0.0312 - 21 0.125 - 26 0.0312 - 30 0.0312 - 42 0.0312 - 47 0.281 - - 7 5 4 0 - 4 0.4 - 8 0.2 - 30 0.2 - 42 0.2 - - 55 10 2 0 - 13 0.1 - 47 0.9 - - 57 16 4 0 - 2 0.438 - 7 0.25 - 21 0.25 - 26 0.0625 - - 43 7 6 0 - 0 0.143 - 2 0.143 - 3 0.143 - 14 0.143 - 15 0.143 - 41 0.286 - - 44 4 3 0 - 4 0.25 - 15 0.5 - 21 0.25 - - 45 232 15 3 - 1 0.00862 - 3 0.00862 - 4 0.168 - 7 0.00431 - 8 0.22 - 10 0.00431 - 13 0.159 - 14 0.0517 - 15 0.241 - 19 0.00431 - 21 0.0431 - 28 0.0129 - 30 0.056 - 31 0.00431 - 35 0.0129 - - 26 17 8 0 - 3 0.0588 - 4 0.0588 - 8 0.176 - 13 0.235 - 15 0.294 - 21 0.0588 - 28 0.0588 - 30 0.0588 - - 41 2 2 0 - 10 0.5 - 15 0.5 - - 55 1 1 0 - 7 1 - - 46 72 19 4 - 0 0.0139 - 2 0.111 - 4 0.0972 - 7 0.208 - 8 0.0278 - 12 0.0278 - 13 0.0417 - 14 0.0417 - 15 0.0417 - 20 0.0139 - 21 0.0278 - 26 0.0833 - 29 0.0139 - 32 0.0139 - 33 0.0417 - 40 0.0278 - 42 0.0972 - 44 0.0139 - 47 0.0556 - - 7 10 4 0 - 4 0.4 - 14 0.3 - 15 0.2 - 20 0.1 - - 41 4 4 0 - 4 0.25 - 13 0.25 - 15 0.25 - 29 0.25 - - 55 44 14 0 - 0 0.0227 - 2 0.159 - 7 0.318 - 8 0.0455 - 12 0.0455 - 13 0.0227 - 21 0.0227 - 26 0.136 - 32 0.0227 - 33 0.0682 - 40 0.0455 - 42 0.0455 - 44 0.0227 - 47 0.0227 - - 62 2 1 0 - 42 1 - - 47 94690 45 25 - 0 0.0377 - 1 0.000127 - 2 0.0352 - 3 0.000898 - 4 0.00774 - 5 0.000253 - 6 2.11e-05 - 7 0.106 - 8 0.0044 - 9 0.000158 - 10 6.34e-05 - 12 0.0122 - 13 0.00432 - 14 0.000993 - 15 0.00449 - 16 1.06e-05 - 17 1.06e-05 - 18 0.000232 - 19 0.00299 - 20 0.00018 - 21 0.0112 - 22 0.00075 - 23 3.17e-05 - 24 3.17e-05 - 25 1.06e-05 - 26 0.0254 - 28 0.00057 - 29 0.0208 - 30 0.00416 - 31 0.00387 - 32 0.00516 - 33 0.00571 - 34 0.00339 - 35 0.00124 - 36 1.06e-05 - 37 0.00257 - 39 9.5e-05 - 40 0.421 - 41 0.245 - 42 0.0216 - 43 0.0025 - 44 0.00162 - 45 0.0012 - 46 0.00251 - 47 0.00163 - - 7 248 21 0 - 0 0.0282 - 2 0.121 - 4 0.0685 - 7 0.117 - 8 0.0242 - 12 0.0161 - 13 0.0121 - 14 0.0121 - 15 0.0121 - 20 0.00403 - 21 0.0323 - 22 0.00403 - 26 0.0323 - 29 0.00403 - 31 0.00806 - 37 0.00806 - 40 0.222 - 41 0.169 - 42 0.0363 - 43 0.00403 - 47 0.0645 - - 8 4 2 0 - 26 0.75 - 40 0.25 - - 14 6 4 0 - 2 0.167 - 32 0.167 - 40 0.333 - 41 0.333 - - 21 20 8 0 - 2 0.05 - 4 0.05 - 7 0.2 - 19 0.05 - 21 0.05 - 26 0.05 - 40 0.3 - 41 0.25 - - 23 4 2 0 - 26 0.5 - 41 0.5 - - 24 17 7 0 - 0 0.118 - 7 0.176 - 15 0.0588 - 21 0.0588 - 26 0.0588 - 40 0.471 - 41 0.0588 - - 26 38 12 0 - 0 0.0526 - 2 0.0789 - 4 0.0526 - 7 0.237 - 14 0.0263 - 15 0.0526 - 19 0.0263 - 21 0.0526 - 23 0.0263 - 40 0.105 - 41 0.184 - 47 0.105 - - 40 11 1 0 - 47 1 - - 41 27 12 0 - 0 0.111 - 2 0.0741 - 3 0.037 - 4 0.185 - 5 0.037 - 7 0.185 - 15 0.037 - 19 0.037 - 21 0.037 - 26 0.148 - 29 0.0741 - 45 0.037 - - 42 10 2 0 - 13 0.1 - 47 0.9 - - 43 4 3 0 - 0 0.25 - 2 0.25 - 41 0.5 - - 46 58 17 0 - 0 0.0172 - 2 0.138 - 4 0.0345 - 7 0.259 - 8 0.0345 - 12 0.0345 - 13 0.0172 - 15 0.0172 - 21 0.0172 - 26 0.103 - 29 0.0172 - 32 0.0172 - 33 0.0517 - 40 0.0345 - 42 0.121 - 44 0.0172 - 47 0.069 - - 48 254 23 0 - 0 0.0394 - 2 0.0394 - 4 0.0276 - 7 0.157 - 12 0.00787 - 13 0.00394 - 14 0.0157 - 15 0.00394 - 21 0.00787 - 22 0.00394 - 26 0.0394 - 29 0.00787 - 30 0.00394 - 31 0.00787 - 33 0.00394 - 37 0.00787 - 39 0.00394 - 40 0.26 - 41 0.291 - 42 0.0394 - 43 0.00394 - 45 0.0118 - 46 0.0118 - - 49 446 17 0 - 0 0.0112 - 2 0.0202 - 4 0.00897 - 7 0.0336 - 8 0.00224 - 13 0.00224 - 15 0.00673 - 19 0.00448 - 26 0.0224 - 29 0.00448 - 32 0.00224 - 33 0.00224 - 40 0.601 - 41 0.258 - 42 0.0157 - 43 0.00224 - 46 0.00224 - - 51 17 2 0 - 40 0.706 - 41 0.294 - - 55 87632 45 0 - 0 0.0392 - 1 0.000137 - 2 0.0359 - 3 0.000913 - 4 0.0077 - 5 0.000262 - 6 2.28e-05 - 7 0.111 - 8 0.0046 - 9 0.00016 - 10 6.85e-05 - 12 0.0127 - 13 0.00454 - 14 0.000959 - 15 0.00461 - 16 1.14e-05 - 17 1.14e-05 - 18 0.000251 - 19 0.00304 - 20 0.000183 - 21 0.0117 - 22 0.000742 - 23 2.28e-05 - 24 3.42e-05 - 25 1.14e-05 - 26 0.0265 - 28 0.000605 - 29 0.0222 - 30 0.00445 - 31 0.00404 - 32 0.00544 - 33 0.00598 - 34 0.00358 - 35 0.0013 - 36 1.14e-05 - 37 0.00261 - 39 9.13e-05 - 40 0.408 - 41 0.246 - 42 0.0216 - 43 0.00251 - 44 0.00163 - 45 0.00118 - 46 0.00252 - 47 0.00106 - - 57 2302 31 0 - 0 0.0122 - 2 0.0187 - 3 0.0013 - 4 0.00608 - 7 0.0478 - 8 0.0013 - 9 0.000434 - 12 0.00348 - 13 0.00174 - 14 0.000869 - 15 0.00348 - 19 0.00174 - 21 0.00608 - 22 0.0013 - 26 0.0113 - 29 0.00521 - 30 0.000434 - 31 0.00174 - 32 0.00217 - 33 0.000869 - 34 0.000434 - 35 0.0013 - 37 0.00217 - 40 0.595 - 41 0.241 - 42 0.0204 - 43 0.00304 - 44 0.00174 - 45 0.000869 - 46 0.00261 - 47 0.00304 - - 58 9 5 0 - 2 0.111 - 4 0.111 - 7 0.222 - 40 0.333 - 41 0.222 - - 62 3086 28 0 - 0 0.0198 - 2 0.0237 - 3 0.000324 - 4 0.00162 - 7 0.0256 - 8 0.000648 - 12 0.00713 - 15 0.000324 - 19 0.00259 - 21 0.00324 - 22 0.000324 - 26 0.00551 - 28 0.000324 - 29 0.00259 - 30 0.000648 - 31 0.0013 - 32 0.000972 - 33 0.00324 - 34 0.00162 - 37 0.0013 - 40 0.631 - 41 0.239 - 42 0.0185 - 43 0.00194 - 44 0.000972 - 45 0.00162 - 46 0.00162 - 47 0.00259 - - 64 448 14 0 - 0 0.0246 - 2 0.0134 - 7 0.0246 - 12 0.00893 - 21 0.00223 - 26 0.00223 - 32 0.00223 - 34 0.00223 - 40 0.696 - 41 0.192 - 42 0.0223 - 43 0.00223 - 44 0.00446 - 46 0.00223 - - 67 1 1 0 - 46 1 - - 68 17 2 0 - 40 0.765 - 41 0.235 - - 69 14 6 0 - 0 0.0714 - 2 0.0714 - 37 0.0714 - 40 0.571 - 41 0.143 - 42 0.0714 - - 72 5 2 0 - 0 0.6 - 29 0.4 - - 74 3 2 0 - 40 0.333 - 47 0.667 - - 48 259 23 3 - 0 0.0386 - 2 0.0386 - 4 0.027 - 7 0.154 - 12 0.00772 - 13 0.00386 - 14 0.0154 - 15 0.00386 - 21 0.00772 - 22 0.00386 - 26 0.0386 - 29 0.00772 - 30 0.00386 - 31 0.00772 - 33 0.00386 - 37 0.00772 - 39 0.00386 - 40 0.255 - 41 0.293 - 42 0.0386 - 43 0.00386 - 45 0.0116 - 46 0.0232 - - 21 14 5 0 - 4 0.0714 - 7 0.0714 - 40 0.5 - 41 0.214 - 46 0.143 - - 26 22 5 0 - 7 0.5 - 14 0.0455 - 40 0.182 - 41 0.182 - 42 0.0909 - - 45 14 3 0 - 40 0.5 - 41 0.286 - 46 0.214 - - 49 475 17 5 - 0 0.0105 - 2 0.0189 - 4 0.0168 - 7 0.0674 - 8 0.00211 - 13 0.00211 - 15 0.00842 - 19 0.00421 - 26 0.0232 - 29 0.00421 - 32 0.00211 - 33 0.00211 - 40 0.564 - 41 0.255 - 42 0.0147 - 43 0.00211 - 46 0.00211 - - 2 12 3 0 - 4 0.0833 - 7 0.833 - 26 0.0833 - - 7 209 16 0 - 0 0.0191 - 2 0.0287 - 4 0.0335 - 7 0.067 - 8 0.00478 - 15 0.0144 - 19 0.00957 - 26 0.0431 - 29 0.00957 - 32 0.00478 - 33 0.00478 - 40 0.364 - 41 0.368 - 42 0.0191 - 43 0.00478 - 46 0.00478 - - 21 6 5 0 - 0 0.167 - 7 0.167 - 13 0.167 - 40 0.333 - 41 0.167 - - 41 53 4 0 - 7 0.113 - 26 0.0189 - 40 0.755 - 41 0.113 - - 55 186 5 0 - 2 0.0161 - 7 0.00538 - 40 0.785 - 41 0.177 - 42 0.0161 - - 50 38 2 0 - 7 0.842 - 26 0.158 - - 51 18 3 0 - 40 0.667 - 41 0.278 - 46 0.0556 - - 52 3 1 0 - 41 1 - - 55 88258 45 19 - 0 0.0389 - 1 0.000136 - 2 0.0356 - 3 0.000974 - 4 0.00988 - 5 0.000261 - 6 2.27e-05 - 7 0.112 - 8 0.00509 - 9 0.000159 - 10 6.8e-05 - 12 0.0126 - 13 0.00455 - 14 0.000952 - 15 0.00487 - 16 1.13e-05 - 17 1.13e-05 - 18 0.000249 - 19 0.00301 - 20 0.000181 - 21 0.0119 - 22 0.000748 - 23 2.27e-05 - 24 3.4e-05 - 25 1.13e-05 - 26 0.0263 - 28 0.000601 - 29 0.022 - 30 0.00442 - 31 0.00401 - 32 0.0054 - 33 0.00594 - 34 0.00356 - 35 0.00129 - 36 1.13e-05 - 37 0.00261 - 39 9.06e-05 - 40 0.405 - 41 0.245 - 42 0.0216 - 43 0.00253 - 44 0.00162 - 45 0.00118 - 46 0.003 - 47 0.00105 - - 2 62 11 0 - 0 0.0323 - 2 0.0161 - 7 0.0806 - 13 0.0323 - 21 0.0161 - 26 0.0161 - 40 0.258 - 41 0.435 - 42 0.0806 - 43 0.0161 - 47 0.0161 - - 6 13 6 0 - 0 0.0769 - 13 0.0769 - 15 0.0769 - 40 0.385 - 43 0.231 - 47 0.154 - - 7 78674 44 0 - 0 0.0417 - 1 0.000153 - 2 0.0359 - 3 0.000953 - 4 0.01 - 5 0.000267 - 6 2.54e-05 - 7 0.102 - 8 0.0053 - 9 0.000165 - 10 7.63e-05 - 12 0.0136 - 13 0.00469 - 14 0.00103 - 15 0.00516 - 16 1.27e-05 - 17 1.27e-05 - 18 0.00028 - 19 0.00324 - 20 0.000178 - 21 0.0122 - 22 0.000775 - 23 2.54e-05 - 24 3.81e-05 - 26 0.0278 - 28 0.000636 - 29 0.0238 - 30 0.00456 - 31 0.0044 - 32 0.00578 - 33 0.0063 - 34 0.00385 - 35 0.0014 - 36 1.27e-05 - 37 0.00253 - 39 8.9e-05 - 40 0.401 - 41 0.25 - 42 0.0215 - 43 0.00247 - 44 0.00174 - 45 0.00114 - 46 0.00262 - 47 0.00105 - - 8 16 7 0 - 2 0.0625 - 7 0.188 - 21 0.125 - 25 0.0625 - 26 0.125 - 40 0.25 - 41 0.188 - - 13 4 3 0 - 7 0.25 - 29 0.25 - 41 0.5 - - 15 11 4 0 - 40 0.273 - 41 0.364 - 42 0.0909 - 46 0.273 - - 21 54 11 0 - 2 0.111 - 4 0.0185 - 7 0.111 - 8 0.0185 - 15 0.0185 - 19 0.0185 - 26 0.0185 - 32 0.0185 - 40 0.426 - 41 0.185 - 42 0.0556 - - 24 23 7 0 - 2 0.0435 - 4 0.0435 - 7 0.13 - 13 0.0435 - 40 0.435 - 41 0.261 - 43 0.0435 - - 26 8384 35 0 - 0 0.0173 - 2 0.0354 - 3 0.00131 - 4 0.00942 - 5 0.000239 - 7 0.22 - 8 0.0037 - 9 0.000119 - 12 0.00549 - 13 0.00334 - 14 0.000358 - 15 0.00262 - 19 0.00119 - 20 0.000239 - 21 0.0099 - 22 0.000596 - 26 0.0149 - 28 0.000358 - 29 0.00704 - 30 0.0037 - 31 0.000954 - 32 0.00239 - 33 0.00322 - 34 0.00131 - 35 0.000358 - 37 0.0037 - 39 0.000119 - 40 0.433 - 41 0.191 - 42 0.0198 - 43 0.00191 - 44 0.000716 - 45 0.00143 - 46 0.00155 - 47 0.000716 - - 30 598 14 0 - 0 0.00836 - 2 0.00836 - 4 0.00167 - 7 0.0134 - 13 0.00167 - 29 0.0134 - 32 0.00167 - 33 0.00167 - 40 0.562 - 41 0.319 - 42 0.0602 - 43 0.00502 - 45 0.00167 - 47 0.00167 - - 31 45 5 0 - 2 0.0222 - 40 0.267 - 41 0.644 - 42 0.0444 - 43 0.0222 - - 41 10 2 0 - 40 0.8 - 41 0.2 - - 42 5 1 0 - 40 1 - - 44 3 1 0 - 43 1 - - 45 185 5 0 - 2 0.00541 - 7 0.00541 - 40 0.497 - 41 0.259 - 46 0.232 - - 46 12 4 0 - 7 0.0833 - 40 0.583 - 41 0.25 - 45 0.0833 - - 55 121 7 0 - 2 0.0248 - 7 0.0496 - 21 0.00826 - 40 0.736 - 41 0.165 - 42 0.00826 - 43 0.00826 - - 57 10 6 0 - 0 0.2 - 7 0.2 - 21 0.1 - 35 0.1 - 40 0.2 - 41 0.2 - - 58 15 3 0 - 29 0.0667 - 40 0.667 - 41 0.267 - - 57 3084 31 15 - 0 0.00908 - 2 0.105 - 3 0.000973 - 4 0.00681 - 7 0.0516 - 8 0.0013 - 9 0.000324 - 12 0.00259 - 13 0.00162 - 14 0.0013 - 15 0.00292 - 19 0.00162 - 21 0.0123 - 22 0.000973 - 26 0.0717 - 29 0.00389 - 30 0.000324 - 31 0.0013 - 32 0.00162 - 33 0.000649 - 34 0.000324 - 35 0.000973 - 37 0.00195 - 40 0.445 - 41 0.243 - 42 0.0211 - 43 0.00259 - 44 0.00195 - 45 0.000649 - 46 0.00227 - 47 0.00227 - - 2 354 24 0 - 0 0.00847 - 2 0.0254 - 4 0.0169 - 7 0.0508 - 12 0.00282 - 13 0.00282 - 14 0.00282 - 15 0.00282 - 19 0.00282 - 21 0.00847 - 26 0.00847 - 29 0.0169 - 31 0.00282 - 32 0.00282 - 35 0.00282 - 37 0.00282 - 40 0.621 - 41 0.169 - 42 0.0282 - 43 0.00565 - 44 0.00282 - 45 0.00565 - 46 0.00282 - 47 0.00282 - - 4 11 2 0 - 2 0.818 - 41 0.182 - - 7 619 28 0 - 0 0.0226 - 2 0.0468 - 3 0.00162 - 4 0.0162 - 7 0.0565 - 8 0.00485 - 9 0.00162 - 12 0.00808 - 13 0.00485 - 14 0.00323 - 15 0.00646 - 19 0.00485 - 21 0.0162 - 22 0.00162 - 26 0.00808 - 29 0.00969 - 30 0.00162 - 31 0.00162 - 32 0.00485 - 33 0.00162 - 35 0.00323 - 37 0.00646 - 40 0.439 - 41 0.288 - 42 0.0242 - 43 0.00646 - 46 0.00646 - 47 0.00323 - - 8 10 3 0 - 0 0.1 - 40 0.7 - 41 0.2 - - 21 90 8 0 - 2 0.111 - 3 0.0111 - 7 0.0778 - 12 0.0111 - 21 0.0111 - 40 0.444 - 41 0.322 - 46 0.0111 - - 24 12 6 0 - 2 0.0833 - 7 0.167 - 22 0.0833 - 40 0.5 - 41 0.0833 - 42 0.0833 - - 30 448 11 0 - 0 0.00223 - 3 0.00223 - 4 0.00446 - 7 0.0067 - 12 0.00223 - 15 0.0067 - 33 0.00223 - 40 0.629 - 41 0.33 - 42 0.0112 - 44 0.00223 - - 31 302 10 0 - 4 0.00331 - 7 0.00993 - 13 0.00331 - 21 0.00331 - 22 0.00331 - 40 0.788 - 41 0.172 - 42 0.00331 - 44 0.00331 - 47 0.00993 - - 41 66 5 0 - 2 0.227 - 7 0.0152 - 40 0.348 - 41 0.379 - 42 0.0303 - - 44 1 1 0 - 43 1 - - 47 644 10 0 - 2 0.354 - 4 0.00155 - 7 0.0652 - 21 0.0326 - 26 0.289 - 37 0.00155 - 41 0.225 - 42 0.0264 - 44 0.00311 - 46 0.00155 - - 49 25 7 0 - 2 0.04 - 7 0.12 - 19 0.04 - 21 0.04 - 40 0.48 - 41 0.24 - 42 0.04 - - 50 54 5 0 - 2 0.204 - 14 0.0185 - 40 0.537 - 41 0.222 - 42 0.0185 - - 55 185 10 0 - 0 0.00541 - 2 0.0378 - 7 0.151 - 8 0.00541 - 26 0.0541 - 40 0.557 - 41 0.168 - 42 0.0108 - 44 0.00541 - 47 0.00541 - - 57 241 14 0 - 0 0.0332 - 2 0.0166 - 4 0.00415 - 7 0.0705 - 15 0.00415 - 21 0.00415 - 26 0.0705 - 31 0.0083 - 32 0.00415 - 34 0.00415 - 40 0.531 - 41 0.207 - 42 0.0373 - 43 0.00415 - - 58 32 12 3 - 2 0.156 - 3 0.0625 - 4 0.156 - 7 0.0938 - 8 0.125 - 14 0.0312 - 15 0.0938 - 26 0.0625 - 30 0.0312 - 39 0.0312 - 40 0.0938 - 41 0.0625 - - 2 3 2 0 - 7 0.333 - 26 0.667 - - 7 15 9 0 - 2 0.0667 - 3 0.133 - 4 0.0667 - 8 0.2 - 14 0.0667 - 15 0.2 - 30 0.0667 - 39 0.0667 - 41 0.133 - - 57 9 3 0 - 2 0.444 - 7 0.222 - 40 0.333 - - 62 3093 28 4 - 0 0.0197 - 2 0.0236 - 3 0.000323 - 4 0.00162 - 7 0.0259 - 8 0.000647 - 12 0.00711 - 15 0.000323 - 19 0.00259 - 21 0.00323 - 22 0.000323 - 26 0.0055 - 28 0.000323 - 29 0.00259 - 30 0.000647 - 31 0.00129 - 32 0.00097 - 33 0.00323 - 34 0.00162 - 37 0.00129 - 40 0.63 - 41 0.239 - 42 0.0188 - 43 0.00194 - 44 0.00097 - 45 0.00162 - 46 0.00226 - 47 0.00259 - - 26 148 11 0 - 0 0.0135 - 2 0.0135 - 7 0.0338 - 15 0.00676 - 26 0.00676 - 29 0.00676 - 33 0.00676 - 40 0.635 - 41 0.264 - 46 0.00676 - 47 0.00676 - - 41 1 1 0 - 45 1 - - 45 22 3 0 - 40 0.682 - 41 0.227 - 46 0.0909 - - 58 1 1 0 - 12 1 - - 64 449 14 1 - 0 0.0245 - 2 0.0134 - 7 0.0245 - 12 0.00891 - 21 0.00223 - 26 0.00223 - 32 0.00223 - 34 0.00223 - 40 0.695 - 41 0.192 - 42 0.0223 - 43 0.00223 - 44 0.00445 - 46 0.00445 - - 45 2 2 0 - 40 0.5 - 46 0.5 - - 65 2 2 0 - 40 0.5 - 46 0.5 - - 67 1 1 0 - 46 1 - - 68 17 2 0 - 40 0.765 - 41 0.235 - - 69 14 6 0 - 0 0.0714 - 2 0.0714 - 37 0.0714 - 40 0.571 - 41 0.143 - 42 0.0714 - - 72 5 2 0 - 0 0.6 - 29 0.4 - - 74 4 3 0 - 40 0.25 - 46 0.25 - 47 0.5 - -58 7315 39 31 - 0 0.063 - 1 0.000547 - 2 0.0418 - 3 0.00465 - 4 0.0407 - 5 0.000957 - 7 0.0861 - 8 0.0161 - 9 0.000684 - 10 0.00109 - 12 0.0257 - 13 0.0245 - 14 0.0164 - 15 0.0215 - 16 0.000547 - 19 0.0178 - 20 0.0026 - 21 0.0178 - 22 0.000273 - 23 0.000273 - 26 0.0161 - 28 0.00602 - 29 0.0187 - 30 0.00574 - 31 0.00437 - 32 0.00916 - 33 0.0145 - 34 0.00547 - 35 0.00273 - 37 0.00191 - 39 0.000547 - 40 0.0711 - 41 0.194 - 42 0.076 - 43 0.139 - 44 0.00041 - 45 0.0428 - 46 0.00342 - 47 0.00547 - - 2 85 22 4 - 0 0.0235 - 3 0.0353 - 4 0.0824 - 5 0.0118 - 7 0.0941 - 8 0.0353 - 9 0.0118 - 12 0.0235 - 13 0.0706 - 14 0.0471 - 15 0.0118 - 19 0.0353 - 21 0.341 - 22 0.0235 - 26 0.0118 - 29 0.0118 - 30 0.0118 - 31 0.0118 - 32 0.0118 - 33 0.0235 - 41 0.0588 - 45 0.0118 - - 41 20 9 0 - 0 0.05 - 3 0.05 - 7 0.1 - 13 0.1 - 15 0.05 - 21 0.45 - 22 0.1 - 33 0.05 - 45 0.05 - - 42 31 12 0 - 3 0.0323 - 4 0.161 - 5 0.0323 - 7 0.129 - 8 0.0323 - 12 0.0323 - 13 0.0645 - 14 0.0645 - 19 0.0968 - 21 0.29 - 26 0.0323 - 32 0.0323 - - 44 22 13 0 - 0 0.0455 - 4 0.0909 - 7 0.0455 - 8 0.0455 - 12 0.0455 - 13 0.0909 - 14 0.0909 - 21 0.182 - 29 0.0455 - 30 0.0455 - 31 0.0455 - 33 0.0455 - 41 0.182 - - 47 12 6 0 - 3 0.0833 - 7 0.0833 - 8 0.0833 - 9 0.0833 - 21 0.583 - 41 0.0833 - - 4 1 1 0 - 44 1 - - 7 5 4 0 - 9 0.2 - 21 0.2 - 26 0.2 - 43 0.4 - - 8 13 3 0 - 40 0.154 - 42 0.154 - 43 0.692 - - 13 17 3 0 - 41 0.0588 - 42 0.0588 - 43 0.882 - - 14 3 1 0 - 43 1 - - 15 30 4 1 - 40 0.233 - 41 0.1 - 43 0.633 - 46 0.0333 - - 2 2 1 0 - 41 1 - - 21 13 9 0 - 4 0.385 - 7 0.0769 - 8 0.0769 - 13 0.0769 - 20 0.0769 - 26 0.0769 - 31 0.0769 - 42 0.0769 - 43 0.0769 - - 28 3 1 0 - 43 1 - - 32 2 1 0 - 42 1 - - 40 16 3 0 - 4 0.0625 - 43 0.875 - 46 0.0625 - - 41 895 30 11 - 0 0.115 - 2 0.067 - 3 0.00447 - 4 0.0983 - 5 0.00335 - 7 0.124 - 8 0.038 - 9 0.00112 - 10 0.00447 - 12 0.0503 - 13 0.0313 - 14 0.0391 - 15 0.0402 - 16 0.00223 - 19 0.0391 - 20 0.0067 - 21 0.0291 - 23 0.00112 - 26 0.019 - 28 0.0145 - 29 0.0223 - 30 0.0145 - 31 0.00447 - 32 0.0134 - 33 0.019 - 34 0.00223 - 35 0.00559 - 37 0.00335 - 45 0.184 - 46 0.00223 - - 2 5 2 0 - 7 0.8 - 21 0.2 - - 15 3 2 0 - 13 0.667 - 14 0.333 - - 48 5 4 0 - 7 0.2 - 13 0.4 - 14 0.2 - 30 0.2 - - 49 33 14 0 - 0 0.0606 - 3 0.0303 - 4 0.121 - 7 0.273 - 8 0.182 - 13 0.0303 - 15 0.0303 - 19 0.0303 - 20 0.0606 - 21 0.0303 - 26 0.0303 - 28 0.0303 - 29 0.0606 - 35 0.0303 - - 52 7 6 0 - 2 0.143 - 4 0.143 - 7 0.143 - 15 0.286 - 26 0.143 - 30 0.143 - - 55 24 12 0 - 0 0.125 - 4 0.0417 - 7 0.417 - 13 0.0417 - 14 0.0417 - 30 0.0417 - 31 0.0417 - 32 0.0833 - 34 0.0417 - 35 0.0417 - 45 0.0417 - 46 0.0417 - - 57 83 23 0 - 0 0.0723 - 2 0.0723 - 3 0.012 - 4 0.157 - 7 0.157 - 8 0.0241 - 12 0.0241 - 13 0.0843 - 14 0.012 - 15 0.0361 - 19 0.012 - 20 0.012 - 21 0.0361 - 23 0.012 - 26 0.0602 - 28 0.0241 - 29 0.0723 - 30 0.012 - 32 0.012 - 33 0.0602 - 35 0.012 - 45 0.012 - 46 0.012 - - 62 585 28 0 - 0 0.126 - 2 0.0786 - 3 0.00342 - 4 0.101 - 5 0.00513 - 7 0.0906 - 8 0.0376 - 9 0.00171 - 10 0.00513 - 12 0.0632 - 13 0.0188 - 14 0.0393 - 15 0.041 - 16 0.00342 - 19 0.0479 - 20 0.00342 - 21 0.0291 - 26 0.0103 - 28 0.012 - 29 0.0171 - 30 0.0154 - 31 0.00513 - 32 0.012 - 33 0.0154 - 34 0.00171 - 35 0.00342 - 37 0.00513 - 45 0.207 - - 64 50 15 0 - 0 0.18 - 2 0.06 - 4 0.06 - 7 0.22 - 12 0.06 - 13 0.02 - 14 0.04 - 15 0.04 - 21 0.08 - 26 0.06 - 28 0.04 - 29 0.02 - 32 0.02 - 33 0.04 - 45 0.06 - - 66 71 15 0 - 0 0.0986 - 2 0.0423 - 7 0.0986 - 8 0.0141 - 10 0.0141 - 12 0.0423 - 13 0.0141 - 14 0.0704 - 15 0.0141 - 19 0.0141 - 28 0.0141 - 29 0.0141 - 32 0.0141 - 33 0.0141 - 45 0.521 - - 69 24 11 0 - 2 0.0417 - 4 0.292 - 7 0.0833 - 8 0.0833 - 13 0.0417 - 14 0.0417 - 15 0.125 - 19 0.167 - 20 0.0417 - 26 0.0417 - 45 0.0417 - - 42 358 24 11 - 0 0.182 - 2 0.0782 - 3 0.00559 - 4 0.0587 - 7 0.168 - 8 0.0196 - 12 0.0587 - 13 0.0279 - 14 0.0168 - 15 0.0251 - 19 0.0363 - 20 0.00838 - 21 0.0279 - 26 0.0503 - 28 0.014 - 29 0.0531 - 30 0.0168 - 31 0.0168 - 32 0.0307 - 33 0.0419 - 34 0.0363 - 35 0.00838 - 37 0.00559 - 45 0.014 - - 21 1 1 0 - 28 1 - - 32 2 1 0 - 4 1 - - 46 2 2 0 - 31 0.5 - 33 0.5 - - 48 14 10 0 - 0 0.143 - 2 0.0714 - 3 0.0714 - 4 0.0714 - 8 0.0714 - 13 0.143 - 14 0.0714 - 26 0.0714 - 30 0.0714 - 34 0.214 - - 49 11 6 0 - 0 0.0909 - 4 0.0909 - 7 0.455 - 12 0.0909 - 26 0.182 - 30 0.0909 - - 55 125 19 0 - 0 0.232 - 2 0.048 - 4 0.032 - 7 0.152 - 12 0.096 - 14 0.008 - 15 0.032 - 19 0.024 - 20 0.008 - 21 0.048 - 26 0.064 - 28 0.008 - 29 0.064 - 30 0.016 - 31 0.024 - 32 0.04 - 33 0.048 - 34 0.04 - 35 0.016 - - 57 68 22 0 - 0 0.206 - 2 0.0441 - 3 0.0147 - 4 0.0735 - 7 0.162 - 8 0.0294 - 12 0.0441 - 13 0.0441 - 14 0.0147 - 15 0.0294 - 19 0.0147 - 20 0.0147 - 21 0.0294 - 26 0.0294 - 28 0.0147 - 29 0.0735 - 30 0.0147 - 31 0.0294 - 32 0.0294 - 34 0.0441 - 37 0.0147 - 45 0.0294 - - 62 59 19 0 - 0 0.0678 - 2 0.169 - 4 0.0339 - 7 0.203 - 8 0.0508 - 12 0.0169 - 13 0.0678 - 14 0.0169 - 15 0.0339 - 19 0.0847 - 21 0.0169 - 26 0.0508 - 28 0.0169 - 29 0.0169 - 30 0.0169 - 32 0.0169 - 33 0.0678 - 34 0.0169 - 45 0.0339 - - 64 40 12 0 - 0 0.225 - 2 0.1 - 4 0.1 - 7 0.125 - 12 0.075 - 19 0.075 - 26 0.05 - 29 0.075 - 32 0.05 - 33 0.075 - 34 0.025 - 35 0.025 - - 67 1 1 0 - 45 1 - - 69 27 14 0 - 0 0.148 - 2 0.111 - 4 0.0741 - 7 0.259 - 8 0.037 - 12 0.037 - 15 0.037 - 20 0.037 - 21 0.037 - 28 0.037 - 29 0.0741 - 32 0.037 - 33 0.037 - 37 0.037 - - 43 1007 28 21 - 0 0.0487 - 1 0.00199 - 2 0.0616 - 3 0.00993 - 4 0.0248 - 7 0.132 - 8 0.0139 - 12 0.0199 - 13 0.0457 - 14 0.0159 - 15 0.0328 - 19 0.00497 - 21 0.0119 - 26 0.0218 - 28 0.00298 - 29 0.0278 - 30 0.000993 - 31 0.00497 - 32 0.00894 - 33 0.0189 - 34 0.00497 - 35 0.00199 - 39 0.000993 - 40 0.167 - 41 0.206 - 42 0.0894 - 45 0.000993 - 47 0.0189 - - 0 2 2 0 - 13 0.5 - 31 0.5 - - 7 2 2 0 - 7 0.5 - 19 0.5 - - 8 9 3 0 - 8 0.111 - 13 0.556 - 14 0.333 - - 13 15 6 0 - 7 0.267 - 13 0.333 - 14 0.2 - 15 0.0667 - 26 0.0667 - 42 0.0667 - - 14 3 3 0 - 8 0.333 - 21 0.333 - 29 0.333 - - 15 19 6 0 - 12 0.105 - 13 0.211 - 14 0.105 - 15 0.474 - 26 0.0526 - 42 0.0526 - - 20 1 1 0 - 8 1 - - 21 1 1 0 - 8 1 - - 28 3 3 0 - 2 0.333 - 4 0.333 - 13 0.333 - - 40 14 7 0 - 2 0.0714 - 7 0.0714 - 13 0.143 - 14 0.0714 - 15 0.429 - 19 0.0714 - 47 0.143 - - 46 20 8 0 - 0 0.05 - 2 0.15 - 8 0.05 - 12 0.1 - 15 0.05 - 40 0.3 - 41 0.2 - 42 0.1 - - 48 29 7 0 - 2 0.0345 - 8 0.138 - 13 0.552 - 14 0.069 - 15 0.0345 - 40 0.069 - 41 0.103 - - 49 6 5 0 - 1 0.167 - 2 0.167 - 28 0.333 - 40 0.167 - 47 0.167 - - 51 4 3 0 - 40 0.25 - 41 0.5 - 47 0.25 - - 52 3 1 0 - 40 1 - - 54 2 2 0 - 8 0.5 - 15 0.5 - - 55 691 24 0 - 0 0.0507 - 2 0.0651 - 3 0.00289 - 4 0.0304 - 7 0.161 - 8 0.00579 - 12 0.013 - 13 0.013 - 14 0.00434 - 15 0.0188 - 21 0.0116 - 26 0.0232 - 28 0.00145 - 29 0.0347 - 30 0.00145 - 31 0.00289 - 32 0.0101 - 33 0.0232 - 34 0.00579 - 35 0.00145 - 40 0.158 - 41 0.236 - 42 0.113 - 47 0.013 - - 57 52 15 0 - 0 0.173 - 2 0.0577 - 4 0.0385 - 7 0.154 - 12 0.115 - 13 0.0192 - 19 0.0385 - 26 0.0192 - 29 0.0192 - 32 0.0192 - 34 0.0192 - 39 0.0192 - 40 0.135 - 41 0.154 - 47 0.0192 - - 62 68 17 0 - 0 0.0147 - 1 0.0147 - 2 0.0441 - 4 0.0147 - 7 0.0441 - 13 0.0147 - 19 0.0147 - 21 0.0147 - 29 0.0147 - 31 0.0147 - 33 0.0147 - 35 0.0147 - 40 0.382 - 41 0.235 - 42 0.0588 - 45 0.0147 - 47 0.0735 - - 64 23 8 0 - 0 0.13 - 2 0.087 - 7 0.087 - 12 0.0435 - 26 0.0435 - 32 0.0435 - 40 0.261 - 41 0.304 - - 69 30 11 0 - 2 0.0667 - 3 0.267 - 7 0.1 - 21 0.0667 - 26 0.0667 - 29 0.0333 - 31 0.0333 - 33 0.0667 - 40 0.133 - 41 0.0667 - 42 0.1 - - 45 37 11 0 - 0 0.135 - 2 0.0811 - 4 0.135 - 7 0.108 - 8 0.027 - 12 0.135 - 14 0.027 - 19 0.216 - 21 0.0541 - 26 0.027 - 37 0.0541 - - 46 23 3 0 - 29 0.0435 - 42 0.087 - 43 0.87 - - 47 2420 38 14 - 0 0.0946 - 1 0.000826 - 2 0.0632 - 3 0.0062 - 4 0.0583 - 5 0.00124 - 7 0.124 - 8 0.0227 - 9 0.000413 - 10 0.00165 - 12 0.0384 - 13 0.0351 - 14 0.024 - 15 0.0322 - 16 0.000826 - 19 0.026 - 20 0.00372 - 21 0.0198 - 23 0.000413 - 26 0.0236 - 28 0.00909 - 29 0.0281 - 30 0.00785 - 31 0.0062 - 32 0.0136 - 33 0.0215 - 34 0.00826 - 35 0.00413 - 37 0.00289 - 39 0.000826 - 40 0.104 - 41 0.108 - 42 0.0409 - 43 0.00165 - 44 0.000413 - 45 0.057 - 46 0.000413 - 47 0.00826 - - 41 842 30 0 - 0 0.122 - 2 0.0713 - 3 0.00356 - 4 0.102 - 5 0.00356 - 7 0.121 - 8 0.0392 - 9 0.00119 - 10 0.00475 - 12 0.0534 - 13 0.0321 - 14 0.0416 - 15 0.0428 - 16 0.00238 - 19 0.0416 - 20 0.00713 - 21 0.0297 - 23 0.00119 - 26 0.019 - 28 0.0154 - 29 0.0238 - 30 0.0143 - 31 0.00475 - 32 0.0143 - 33 0.0202 - 34 0.00238 - 35 0.00594 - 37 0.00356 - 45 0.154 - 46 0.00119 - - 42 357 24 0 - 0 0.182 - 2 0.0784 - 3 0.0056 - 4 0.0588 - 7 0.168 - 8 0.0196 - 12 0.0588 - 13 0.028 - 14 0.0168 - 15 0.0252 - 19 0.0364 - 20 0.0084 - 21 0.028 - 26 0.0504 - 28 0.014 - 29 0.0532 - 30 0.0168 - 31 0.0168 - 32 0.0308 - 33 0.042 - 34 0.0364 - 35 0.0084 - 37 0.0056 - 45 0.0112 - - 43 1006 28 0 - 0 0.0487 - 1 0.00199 - 2 0.0616 - 3 0.00994 - 4 0.0249 - 7 0.131 - 8 0.0139 - 12 0.0199 - 13 0.0457 - 14 0.0159 - 15 0.0328 - 19 0.00497 - 21 0.0119 - 26 0.0219 - 28 0.00298 - 29 0.0278 - 30 0.000994 - 31 0.00497 - 32 0.00895 - 33 0.0189 - 34 0.00497 - 35 0.00199 - 39 0.000994 - 40 0.167 - 41 0.206 - 42 0.0895 - 45 0.000994 - 47 0.0189 - - 45 36 11 0 - 0 0.139 - 2 0.0833 - 4 0.139 - 7 0.111 - 8 0.0278 - 12 0.139 - 14 0.0278 - 19 0.222 - 21 0.0278 - 26 0.0278 - 37 0.0556 - - 48 7 4 0 - 13 0.143 - 32 0.143 - 40 0.571 - 41 0.143 - - 49 9 2 0 - 40 0.889 - 41 0.111 - - 51 2 2 0 - 41 0.5 - 43 0.5 - - 55 28 4 0 - 13 0.0357 - 40 0.857 - 41 0.0714 - 43 0.0357 - - 57 30 7 0 - 0 0.0333 - 4 0.0333 - 7 0.0333 - 40 0.733 - 41 0.1 - 42 0.0333 - 44 0.0333 - - 62 71 12 0 - 0 0.0423 - 4 0.0282 - 12 0.0282 - 28 0.0141 - 33 0.0141 - 39 0.0141 - 40 0.211 - 41 0.507 - 42 0.0704 - 43 0.0282 - 45 0.0282 - 47 0.0141 - - 64 6 3 0 - 40 0.667 - 41 0.167 - 42 0.167 - - 66 15 6 0 - 0 0.2 - 19 0.133 - 40 0.133 - 41 0.4 - 42 0.0667 - 45 0.0667 - - 68 2 1 0 - 40 1 - - 69 6 3 0 - 40 0.333 - 41 0.5 - 42 0.167 - - 48 57 7 4 - 13 0.0175 - 32 0.0175 - 40 0.0702 - 41 0.105 - 42 0.246 - 43 0.509 - 46 0.0351 - - 42 11 2 0 - 32 0.0909 - 42 0.909 - - 44 24 1 0 - 43 1 - - 45 2 1 0 - 46 1 - - 49 7 4 0 - 13 0.143 - 40 0.143 - 41 0.286 - 43 0.429 - - 49 78 10 5 - 0 0.0128 - 4 0.0256 - 7 0.141 - 8 0.0256 - 9 0.0128 - 21 0.0256 - 40 0.103 - 41 0.436 - 42 0.141 - 43 0.0769 - - 2 17 9 0 - 0 0.0588 - 4 0.118 - 7 0.176 - 8 0.118 - 9 0.0588 - 21 0.118 - 40 0.176 - 41 0.118 - 42 0.0588 - - 41 39 4 0 - 7 0.128 - 40 0.0256 - 41 0.744 - 42 0.103 - - 42 8 3 0 - 7 0.125 - 40 0.125 - 42 0.75 - - 44 6 1 0 - 43 1 - - 49 5 2 0 - 40 0.6 - 41 0.4 - - 51 9 4 0 - 40 0.111 - 41 0.222 - 42 0.111 - 43 0.556 - - 52 11 3 0 - 40 0.0909 - 41 0.636 - 43 0.273 - - 54 3 2 0 - 42 0.333 - 43 0.667 - - 55 884 7 8 - 7 0.00226 - 13 0.00113 - 40 0.0305 - 41 0.0294 - 42 0.141 - 43 0.783 - 46 0.0124 - - 2 18 4 0 - 40 0.167 - 41 0.167 - 42 0.444 - 43 0.222 - - 21 6 4 0 - 40 0.333 - 41 0.333 - 42 0.167 - 43 0.167 - - 41 106 6 0 - 7 0.00943 - 13 0.00943 - 40 0.0566 - 41 0.0472 - 42 0.0377 - 43 0.84 - - 42 115 4 0 - 40 0.0696 - 41 0.0261 - 42 0.878 - 43 0.0261 - - 44 585 2 0 - 41 0.00342 - 43 0.997 - - 45 13 2 0 - 41 0.154 - 46 0.846 - - 47 3 3 0 - 7 0.333 - 40 0.333 - 43 0.333 - - 49 28 4 0 - 40 0.25 - 41 0.25 - 42 0.357 - 43 0.143 - - 57 236 10 8 - 0 0.00424 - 4 0.00424 - 7 0.00424 - 19 0.00424 - 30 0.00847 - 40 0.0932 - 41 0.364 - 42 0.292 - 43 0.22 - 44 0.00424 - - 2 7 4 0 - 19 0.143 - 30 0.286 - 40 0.429 - 42 0.143 - - 21 2 1 0 - 40 1 - - 41 82 4 0 - 40 0.0488 - 41 0.878 - 42 0.0366 - 43 0.0366 - - 42 68 3 0 - 7 0.0147 - 40 0.0588 - 42 0.926 - - 43 1 1 0 - 0 1 - - 44 49 1 0 - 43 1 - - 47 9 4 0 - 4 0.111 - 40 0.222 - 41 0.556 - 44 0.111 - - 49 11 3 0 - 40 0.455 - 41 0.455 - 42 0.0909 - - 58 4 3 0 - 8 0.25 - 41 0.25 - 43 0.5 - - 62 789 13 7 - 0 0.0038 - 4 0.00253 - 12 0.00253 - 28 0.00127 - 33 0.00127 - 39 0.00127 - 40 0.0203 - 41 0.787 - 42 0.0811 - 43 0.0887 - 45 0.00253 - 46 0.00634 - 47 0.00127 - - 2 13 4 0 - 40 0.0769 - 41 0.0769 - 42 0.615 - 43 0.231 - - 41 507 6 0 - 0 0.00197 - 39 0.00197 - 40 0.00789 - 41 0.98 - 42 0.00592 - 43 0.00197 - - 42 62 5 0 - 4 0.0161 - 40 0.129 - 42 0.806 - 43 0.0323 - 47 0.0161 - - 44 64 2 0 - 40 0.0156 - 43 0.984 - - 45 6 2 0 - 41 0.167 - 46 0.833 - - 46 66 3 0 - 4 0.0152 - 41 0.97 - 45 0.0152 - - 47 69 9 0 - 0 0.029 - 12 0.029 - 28 0.0145 - 33 0.0145 - 40 0.0145 - 41 0.841 - 42 0.029 - 43 0.0145 - 45 0.0145 - - 64 119 4 3 - 40 0.0336 - 41 0.429 - 42 0.345 - 43 0.193 - - 41 51 3 0 - 40 0.0392 - 41 0.941 - 42 0.0196 - - 42 38 2 0 - 40 0.0263 - 42 0.974 - - 44 23 1 0 - 43 1 - - 66 86 6 1 - 0 0.0349 - 19 0.0233 - 40 0.0233 - 41 0.895 - 42 0.0116 - 45 0.0116 - - 47 12 4 0 - 0 0.0833 - 19 0.167 - 40 0.167 - 41 0.583 - - 67 7 4 0 - 40 0.286 - 42 0.143 - 43 0.286 - 46 0.286 - - 68 4 2 0 - 40 0.5 - 42 0.5 - - 69 87 4 3 - 40 0.023 - 41 0.31 - 42 0.322 - 43 0.345 - - 42 15 1 0 - 42 1 - - 44 25 1 0 - 43 1 - - 55 25 2 0 - 41 0.96 - 42 0.04 - -59 5284 34 6 - 0 0.00151 - 1 0.00114 - 2 0.0151 - 3 0.0178 - 4 0.211 - 7 0.239 - 8 0.0503 - 9 0.00492 - 10 0.00265 - 12 0.000379 - 13 0.0492 - 14 0.0462 - 15 0.0235 - 17 0.00114 - 19 0.000757 - 20 0.0526 - 21 0.0488 - 22 0.00454 - 24 0.00114 - 26 0.0462 - 30 0.0163 - 31 0.00189 - 35 0.00568 - 37 0.00492 - 38 0.000757 - 39 0.00871 - 40 0.0765 - 41 0.05 - 42 0.00568 - 43 0.000757 - 44 0.000379 - 45 0.00454 - 46 0.0053 - 47 0.000379 - - 7 65 7 0 - 2 0.0615 - 8 0.0154 - 21 0.0154 - 40 0.523 - 41 0.308 - 42 0.0615 - 43 0.0154 - - 8 6 3 0 - 3 0.167 - 7 0.667 - 14 0.167 - - 21 84 9 0 - 0 0.0119 - 2 0.143 - 7 0.0833 - 8 0.0119 - 26 0.0119 - 40 0.464 - 41 0.214 - 42 0.0476 - 47 0.0119 - - 22 1 1 0 - 24 1 - - 24 2481 33 0 - 0 0.00121 - 1 0.00121 - 2 0.00967 - 3 0.0185 - 4 0.225 - 7 0.25 - 8 0.0528 - 9 0.00524 - 10 0.00282 - 12 0.000403 - 13 0.052 - 14 0.0484 - 15 0.025 - 17 0.00121 - 19 0.000806 - 20 0.056 - 21 0.0512 - 22 0.00484 - 24 0.000806 - 26 0.0488 - 30 0.0173 - 31 0.00202 - 35 0.00605 - 37 0.00524 - 38 0.000806 - 39 0.00927 - 40 0.0516 - 41 0.0379 - 42 0.00282 - 43 0.000403 - 44 0.000403 - 45 0.00484 - 46 0.00564 - - 47 2642 34 5 - 0 0.00151 - 1 0.00114 - 2 0.0151 - 3 0.0178 - 4 0.211 - 7 0.239 - 8 0.0503 - 9 0.00492 - 10 0.00265 - 12 0.000379 - 13 0.0492 - 14 0.0462 - 15 0.0235 - 17 0.00114 - 19 0.000757 - 20 0.0526 - 21 0.0488 - 22 0.00454 - 24 0.00114 - 26 0.0462 - 30 0.0163 - 31 0.00189 - 35 0.00568 - 37 0.00492 - 38 0.000757 - 39 0.00871 - 40 0.0765 - 41 0.05 - 42 0.00568 - 43 0.000757 - 44 0.000379 - 45 0.00454 - 46 0.0053 - 47 0.000379 - - 7 65 7 0 - 2 0.0615 - 8 0.0154 - 21 0.0154 - 40 0.523 - 41 0.308 - 42 0.0615 - 43 0.0154 - - 8 6 3 0 - 3 0.167 - 7 0.667 - 14 0.167 - - 21 84 9 0 - 0 0.0119 - 2 0.143 - 7 0.0833 - 8 0.0119 - 26 0.0119 - 40 0.464 - 41 0.214 - 42 0.0476 - 47 0.0119 - - 22 1 1 0 - 24 1 - - 24 2481 33 0 - 0 0.00121 - 1 0.00121 - 2 0.00967 - 3 0.0185 - 4 0.225 - 7 0.25 - 8 0.0528 - 9 0.00524 - 10 0.00282 - 12 0.000403 - 13 0.052 - 14 0.0484 - 15 0.025 - 17 0.00121 - 19 0.000806 - 20 0.056 - 21 0.0512 - 22 0.00484 - 24 0.000806 - 26 0.0488 - 30 0.0173 - 31 0.00202 - 35 0.00605 - 37 0.00524 - 38 0.000806 - 39 0.00927 - 40 0.0516 - 41 0.0379 - 42 0.00282 - 43 0.000403 - 44 0.000403 - 45 0.00484 - 46 0.00564 - -60 29066 33 16 - 0 0.00378 - 2 0.00932 - 3 0.35 - 4 0.0253 - 6 6.88e-05 - 7 0.139 - 8 0.0319 - 9 0.00368 - 12 0.00117 - 13 0.114 - 14 0.0974 - 15 0.0103 - 16 0.000826 - 19 0.000482 - 20 0.00131 - 21 0.0032 - 22 0.000344 - 25 6.88e-05 - 26 0.0221 - 29 0.00131 - 30 0.00124 - 31 0.00365 - 34 0.000344 - 35 0.000482 - 37 6.88e-05 - 40 0.072 - 41 0.0853 - 42 0.00523 - 43 0.012 - 44 0.0031 - 45 0.000344 - 46 0.000172 - 47 0.000482 - - 2 37 4 0 - 3 0.108 - 9 0.73 - 13 0.027 - 21 0.135 - - 3 13760 32 11 - 0 0.00363 - 2 0.00996 - 3 0.356 - 4 0.0206 - 6 7.27e-05 - 7 0.136 - 8 0.0312 - 9 0.00203 - 12 0.00124 - 13 0.115 - 14 0.0988 - 15 0.0102 - 16 0.000872 - 19 0.000436 - 20 7.27e-05 - 21 0.0024 - 22 0.000145 - 25 7.27e-05 - 26 0.0225 - 29 0.00109 - 30 0.00124 - 31 0.00356 - 34 0.000363 - 37 7.27e-05 - 40 0.0715 - 41 0.0883 - 42 0.00516 - 43 0.0126 - 44 0.00327 - 45 0.000363 - 46 7.27e-05 - 47 0.000509 - - 2 62 12 0 - 3 0.0161 - 4 0.0161 - 7 0.113 - 8 0.0323 - 13 0.0323 - 14 0.548 - 21 0.0161 - 31 0.0161 - 34 0.0161 - 40 0.0806 - 41 0.0968 - 45 0.0161 - - 3 6824 31 0 - 0 0.00659 - 2 0.0182 - 3 0.000293 - 4 0.0262 - 6 0.000147 - 7 0.257 - 8 0.0478 - 9 0.00249 - 12 0.00205 - 13 0.119 - 14 0.0928 - 15 0.0147 - 16 0.000879 - 19 0.000879 - 20 0.000147 - 21 0.0041 - 22 0.000147 - 25 0.000147 - 26 0.0441 - 29 0.00147 - 30 0.0022 - 31 0.00659 - 34 0.000586 - 40 0.137 - 41 0.174 - 42 0.00996 - 43 0.0246 - 44 0.00601 - 45 0.00044 - 46 0.000147 - 47 0.00103 - - 4 70 7 0 - 7 0.0286 - 8 0.129 - 13 0.229 - 14 0.486 - 15 0.0857 - 16 0.0286 - 41 0.0143 - - 7 732 17 0 - 0 0.00273 - 2 0.00137 - 3 0.00137 - 4 0.0041 - 7 0.0232 - 8 0.056 - 9 0.00137 - 12 0.00137 - 13 0.493 - 14 0.373 - 15 0.0246 - 29 0.00273 - 31 0.00137 - 37 0.00137 - 40 0.0082 - 41 0.00273 - 44 0.00137 - - 8 27 4 0 - 7 0.037 - 13 0.37 - 14 0.556 - 15 0.037 - - 10 120 8 0 - 7 0.0333 - 8 0.175 - 9 0.0167 - 13 0.233 - 14 0.483 - 15 0.0333 - 30 0.0167 - 40 0.00833 - - 21 513 14 0 - 0 0.00195 - 2 0.00195 - 3 0.00195 - 7 0.0253 - 8 0.0507 - 9 0.00585 - 13 0.567 - 14 0.312 - 15 0.0156 - 16 0.0039 - 29 0.0039 - 31 0.00195 - 40 0.00585 - 41 0.00195 - - 26 226 16 0 - 0 0.00885 - 2 0.00442 - 3 0.00442 - 4 0.00885 - 7 0.0221 - 8 0.0133 - 9 0.00442 - 13 0.23 - 14 0.664 - 15 0.00885 - 16 0.00885 - 21 0.00442 - 22 0.00442 - 40 0.00442 - 41 0.00442 - 42 0.00442 - - 38 5 4 0 - 9 0.2 - 40 0.4 - 41 0.2 - 44 0.2 - - 39 5169 20 0 - 2 0.00193 - 3 0.946 - 4 0.0192 - 7 0.0135 - 8 0.000193 - 9 0.00058 - 12 0.000387 - 13 0.00271 - 14 0.000387 - 15 0.000193 - 21 0.00058 - 26 0.00174 - 29 0.000193 - 31 0.000193 - 40 0.00658 - 41 0.00368 - 42 0.000387 - 43 0.00116 - 44 0.000193 - 45 0.000193 - - 41 1 1 0 - 44 1 - - 4 42 8 0 - 0 0.0238 - 3 0.0238 - 4 0.0476 - 7 0.0952 - 13 0.738 - 15 0.0238 - 35 0.0238 - 42 0.0238 - - 7 10 6 0 - 3 0.4 - 4 0.2 - 8 0.1 - 13 0.1 - 20 0.1 - 40 0.1 - - 8 58 11 2 - 4 0.069 - 7 0.276 - 8 0.0862 - 13 0.103 - 14 0.328 - 15 0.0345 - 20 0.0345 - 29 0.0172 - 31 0.0172 - 35 0.0172 - 40 0.0172 - - 4 23 5 0 - 7 0.348 - 8 0.0435 - 13 0.0435 - 14 0.522 - 29 0.0435 - - 7 12 8 0 - 4 0.167 - 7 0.0833 - 8 0.167 - 13 0.167 - 14 0.167 - 15 0.0833 - 20 0.0833 - 31 0.0833 - - 9 98 14 3 - 0 0.0102 - 2 0.0102 - 4 0.0204 - 7 0.194 - 8 0.0714 - 13 0.112 - 14 0.102 - 15 0.0204 - 19 0.0102 - 26 0.0204 - 29 0.0102 - 40 0.337 - 41 0.0612 - 42 0.0204 - - 2 78 13 0 - 0 0.0128 - 2 0.0128 - 4 0.0256 - 7 0.244 - 8 0.0513 - 13 0.0256 - 14 0.0897 - 19 0.0128 - 26 0.0256 - 29 0.0128 - 40 0.41 - 41 0.0641 - 42 0.0128 - - 3 13 7 0 - 8 0.154 - 13 0.308 - 14 0.154 - 15 0.154 - 40 0.0769 - 41 0.0769 - 42 0.0769 - - 13 4 2 0 - 13 0.75 - 14 0.25 - - 13 248 19 6 - 0 0.00403 - 2 0.0605 - 3 0.153 - 4 0.0282 - 7 0.343 - 8 0.0242 - 9 0.0282 - 13 0.0605 - 14 0.0605 - 20 0.0161 - 21 0.00806 - 26 0.0605 - 31 0.00403 - 35 0.00806 - 40 0.0927 - 41 0.0323 - 42 0.00806 - 43 0.00403 - 46 0.00403 - - 3 165 15 0 - 2 0.0667 - 3 0.218 - 4 0.0242 - 7 0.255 - 8 0.0121 - 9 0.0242 - 13 0.0848 - 14 0.0303 - 21 0.00606 - 26 0.0788 - 31 0.00606 - 40 0.127 - 41 0.0485 - 42 0.0121 - 43 0.00606 - - 4 33 8 0 - 2 0.0606 - 3 0.0606 - 7 0.394 - 8 0.121 - 9 0.0303 - 14 0.273 - 21 0.0303 - 46 0.0303 - - 7 24 8 0 - 0 0.0417 - 4 0.0833 - 7 0.5 - 13 0.0417 - 14 0.0417 - 20 0.125 - 35 0.0833 - 40 0.0833 - - 8 4 2 0 - 7 0.75 - 9 0.25 - - 21 12 3 0 - 4 0.0833 - 7 0.833 - 20 0.0833 - - 47 5 4 0 - 2 0.2 - 7 0.2 - 9 0.2 - 26 0.4 - - 14 83 17 4 - 0 0.012 - 3 0.012 - 4 0.205 - 7 0.229 - 8 0.0843 - 9 0.0723 - 13 0.0361 - 14 0.0602 - 15 0.0602 - 20 0.0482 - 21 0.0602 - 22 0.0361 - 29 0.012 - 31 0.012 - 35 0.0361 - 41 0.012 - 46 0.012 - - 3 59 14 0 - 3 0.0169 - 4 0.288 - 7 0.0339 - 8 0.119 - 9 0.0847 - 13 0.0508 - 14 0.0847 - 15 0.0678 - 20 0.0508 - 21 0.0847 - 22 0.0339 - 29 0.0169 - 31 0.0169 - 35 0.0508 - - 7 16 5 0 - 0 0.0625 - 7 0.75 - 9 0.0625 - 15 0.0625 - 46 0.0625 - - 8 3 2 0 - 7 0.667 - 22 0.333 - - 21 4 2 0 - 7 0.75 - 41 0.25 - - 17 36 2 0 - 4 0.833 - 20 0.167 - - 21 56 10 3 - 0 0.0179 - 4 0.304 - 7 0.0893 - 8 0.143 - 14 0.125 - 20 0.0179 - 21 0.0536 - 31 0.0179 - 40 0.0714 - 41 0.161 - - 2 32 8 0 - 0 0.0312 - 4 0.0625 - 7 0.125 - 8 0.125 - 14 0.219 - 21 0.0312 - 40 0.125 - 41 0.281 - - 7 12 5 0 - 4 0.417 - 7 0.0833 - 8 0.333 - 20 0.0833 - 31 0.0833 - - 21 11 2 0 - 4 0.818 - 21 0.182 - - 22 6 6 0 - 8 0.167 - 9 0.167 - 13 0.167 - 29 0.167 - 30 0.167 - 40 0.167 - - 23 1 1 0 - 21 1 - - 26 12 1 0 - 3 1 - - 28 2 1 0 - 4 1 - - 39 5169 1 0 - 3 1 - - 47 9444 33 13 - 0 0.00582 - 2 0.0125 - 3 0.00498 - 4 0.0389 - 6 0.000106 - 7 0.213 - 8 0.049 - 9 0.00402 - 12 0.0018 - 13 0.175 - 14 0.15 - 15 0.0159 - 16 0.00127 - 19 0.000741 - 20 0.00201 - 21 0.00466 - 22 0.000529 - 25 0.000106 - 26 0.0335 - 29 0.00201 - 30 0.00191 - 31 0.00561 - 34 0.000529 - 35 0.000741 - 37 0.000106 - 40 0.111 - 41 0.131 - 42 0.00805 - 43 0.0185 - 44 0.00476 - 45 0.000529 - 46 0.000212 - 47 0.000741 - - 3 8844 32 0 - 0 0.00565 - 2 0.0131 - 3 0.000905 - 4 0.0321 - 6 0.000113 - 7 0.212 - 8 0.0485 - 9 0.00317 - 12 0.00192 - 13 0.179 - 14 0.154 - 15 0.0158 - 16 0.00136 - 19 0.000678 - 20 0.000113 - 21 0.00373 - 22 0.000226 - 25 0.000113 - 26 0.0351 - 29 0.0017 - 30 0.00192 - 31 0.00554 - 34 0.000565 - 37 0.000113 - 40 0.111 - 41 0.137 - 42 0.00803 - 43 0.0197 - 44 0.00509 - 45 0.000565 - 46 0.000113 - 47 0.000791 - - 4 41 7 0 - 0 0.0244 - 4 0.0488 - 7 0.0976 - 13 0.756 - 15 0.0244 - 35 0.0244 - 42 0.0244 - - 7 3 3 0 - 4 0.333 - 20 0.333 - 40 0.333 - - 8 58 11 0 - 4 0.069 - 7 0.276 - 8 0.0862 - 13 0.103 - 14 0.328 - 15 0.0345 - 20 0.0345 - 29 0.0172 - 31 0.0172 - 35 0.0172 - 40 0.0172 - - 9 98 14 0 - 0 0.0102 - 2 0.0102 - 4 0.0204 - 7 0.194 - 8 0.0714 - 13 0.112 - 14 0.102 - 15 0.0204 - 19 0.0102 - 26 0.0204 - 29 0.0102 - 40 0.337 - 41 0.0612 - 42 0.0204 - - 13 211 19 0 - 0 0.00474 - 2 0.00474 - 3 0.175 - 4 0.0332 - 7 0.37 - 8 0.0284 - 9 0.0142 - 13 0.0711 - 14 0.0711 - 20 0.019 - 21 0.00948 - 26 0.019 - 31 0.00474 - 35 0.00948 - 40 0.109 - 41 0.0379 - 42 0.00948 - 43 0.00474 - 46 0.00474 - - 14 82 16 0 - 0 0.0122 - 3 0.0122 - 4 0.207 - 7 0.232 - 8 0.0854 - 9 0.0732 - 13 0.0366 - 14 0.061 - 15 0.061 - 20 0.0488 - 21 0.061 - 22 0.0366 - 29 0.0122 - 31 0.0122 - 35 0.0366 - 41 0.0122 - - 17 36 2 0 - 4 0.833 - 20 0.167 - - 21 56 10 0 - 0 0.0179 - 4 0.304 - 7 0.0893 - 8 0.143 - 14 0.125 - 20 0.0179 - 21 0.0536 - 31 0.0179 - 40 0.0714 - 41 0.161 - - 22 6 6 0 - 8 0.167 - 9 0.167 - 13 0.167 - 29 0.167 - 30 0.167 - 40 0.167 - - 23 1 1 0 - 21 1 - - 26 1 1 0 - 3 1 - - 28 2 1 0 - 4 1 - -61 113 10 4 - 0 0.0177 - 2 0.0265 - 7 0.133 - 21 0.00885 - 29 0.0177 - 30 0.00885 - 33 0.0177 - 40 0.372 - 41 0.327 - 42 0.0708 - - 2 1 1 0 - 21 1 - - 47 47 7 0 - 0 0.0213 - 2 0.0213 - 29 0.0213 - 33 0.0213 - 40 0.447 - 41 0.383 - 42 0.0851 - - 49 14 4 0 - 7 0.786 - 30 0.0714 - 41 0.0714 - 42 0.0714 - - 57 19 3 0 - 40 0.579 - 41 0.316 - 42 0.105 - -62 239664 43 23 - 0 0.00769 - 1 8.35e-06 - 2 0.0246 - 3 0.000417 - 4 0.00451 - 5 0.000255 - 6 8.35e-06 - 7 0.0107 - 8 0.00105 - 9 7.09e-05 - 10 7.09e-05 - 11 8.35e-06 - 12 0.00318 - 13 0.00107 - 14 0.00113 - 15 0.00279 - 16 2.5e-05 - 17 2.09e-05 - 19 0.00431 - 20 0.000559 - 21 0.00236 - 22 9.6e-05 - 23 2.09e-05 - 26 0.00115 - 27 1.25e-05 - 28 0.000221 - 29 0.0016 - 30 0.000421 - 31 0.000184 - 32 0.00053 - 33 0.0016 - 34 0.0002 - 35 3.34e-05 - 37 0.000526 - 39 3.34e-05 - 40 0.438 - 41 0.154 - 42 0.0193 - 43 0.00174 - 44 0.000538 - 45 0.000726 - 46 0.0115 - 47 0.303 - - 0 1 1 0 - 21 1 - - 2 2635 38 8 - 0 0.00835 - 1 0.00038 - 2 0.00038 - 3 0.022 - 4 0.25 - 5 0.0121 - 7 0.049 - 8 0.0509 - 9 0.0038 - 10 0.00607 - 12 0.00417 - 13 0.055 - 14 0.0687 - 15 0.12 - 16 0.00152 - 17 0.00114 - 19 0.205 - 20 0.0364 - 21 0.0509 - 22 0.00114 - 23 0.00114 - 26 0.00569 - 27 0.00038 - 28 0.00342 - 29 0.00114 - 30 0.00873 - 31 0.00152 - 32 0.00038 - 33 0.00152 - 34 0.00114 - 35 0.000759 - 37 0.00569 - 39 0.00114 - 41 0.0114 - 42 0.00038 - 43 0.00038 - 44 0.00152 - 45 0.00645 - - 41 1755 33 0 - 0 0.00627 - 2 0.00057 - 3 0.0131 - 4 0.271 - 5 0.0114 - 7 0.0581 - 8 0.0541 - 9 0.00399 - 10 0.00513 - 12 0.00399 - 13 0.045 - 14 0.0638 - 15 0.113 - 16 0.00228 - 17 0.00114 - 19 0.226 - 20 0.0336 - 21 0.049 - 22 0.00114 - 23 0.00114 - 26 0.00285 - 28 0.00228 - 29 0.00057 - 30 0.0108 - 31 0.00171 - 34 0.00057 - 35 0.00057 - 37 0.00741 - 39 0.00114 - 41 0.00342 - 42 0.00057 - 44 0.00057 - 45 0.00399 - - 42 83 20 0 - 0 0.0241 - 1 0.012 - 3 0.0361 - 4 0.229 - 7 0.0602 - 8 0.0361 - 10 0.0241 - 12 0.012 - 13 0.0482 - 14 0.0241 - 15 0.108 - 19 0.157 - 20 0.012 - 21 0.0964 - 26 0.012 - 27 0.012 - 28 0.012 - 35 0.012 - 41 0.0602 - 44 0.012 - - 44 1 1 0 - 43 1 - - 45 16 5 0 - 4 0.188 - 13 0.125 - 14 0.0625 - 19 0.562 - 21 0.0625 - - 46 38 11 0 - 4 0.158 - 7 0.0263 - 13 0.0526 - 14 0.0526 - 15 0.0789 - 19 0.316 - 20 0.0526 - 21 0.0526 - 22 0.0263 - 37 0.0263 - 45 0.158 - - 58 43 14 0 - 3 0.0465 - 4 0.256 - 5 0.0465 - 7 0.0233 - 8 0.0698 - 12 0.0233 - 13 0.0698 - 14 0.093 - 15 0.0465 - 19 0.186 - 20 0.0698 - 21 0.0233 - 28 0.0233 - 45 0.0233 - - 62 696 30 0 - 0 0.0129 - 3 0.0388 - 4 0.208 - 5 0.0144 - 7 0.0287 - 8 0.0474 - 9 0.00431 - 10 0.00718 - 12 0.00287 - 13 0.079 - 14 0.0862 - 15 0.149 - 17 0.00144 - 19 0.147 - 20 0.0445 - 21 0.0517 - 23 0.00144 - 26 0.0129 - 28 0.00431 - 29 0.00287 - 30 0.00575 - 31 0.00144 - 32 0.00144 - 33 0.00575 - 34 0.00287 - 37 0.00144 - 39 0.00144 - 41 0.0273 - 44 0.00287 - 45 0.00431 - - 69 2 1 0 - 3 1 - - 7 42 8 1 - 3 0.0238 - 4 0.286 - 5 0.0238 - 7 0.0238 - 13 0.0476 - 14 0.167 - 15 0.0476 - 19 0.381 - - 62 4 3 0 - 3 0.25 - 4 0.25 - 14 0.5 - - 21 32 13 1 - 3 0.0312 - 4 0.156 - 7 0.0312 - 8 0.0312 - 9 0.0312 - 15 0.0625 - 19 0.312 - 20 0.0625 - 21 0.0938 - 26 0.0625 - 28 0.0312 - 37 0.0625 - 41 0.0312 - - 2 7 5 0 - 4 0.429 - 15 0.143 - 19 0.143 - 21 0.143 - 37 0.143 - - 40 35953 5 2 - 40 2.78e-05 - 43 0.00337 - 45 0.000278 - 46 0.06 - 47 0.936 - - 6 1 1 0 - 43 1 - - 62 2516 4 0 - 43 0.00556 - 45 0.000795 - 46 0.0823 - 47 0.911 - - 41 2397 27 8 - 0 0.00167 - 2 0.736 - 3 0.00292 - 4 0.0217 - 5 0.00375 - 6 0.000417 - 7 0.0321 - 8 0.000834 - 9 0.000417 - 12 0.000417 - 13 0.00709 - 14 0.00501 - 15 0.0375 - 19 0.0209 - 20 0.00167 - 21 0.0196 - 23 0.000417 - 26 0.00125 - 27 0.000417 - 28 0.00125 - 29 0.00125 - 30 0.00626 - 33 0.00292 - 34 0.000834 - 45 0.00501 - 46 0.0868 - 47 0.00209 - - 2 26 8 0 - 3 0.0385 - 4 0.0385 - 7 0.615 - 9 0.0385 - 19 0.0769 - 21 0.115 - 27 0.0385 - 30 0.0385 - - 6 1 1 0 - 26 1 - - 21 1 1 0 - 45 1 - - 49 4 3 0 - 2 0.25 - 7 0.5 - 21 0.25 - - 55 8 5 0 - 7 0.25 - 15 0.125 - 21 0.125 - 30 0.125 - 46 0.375 - - 58 7 3 0 - 2 0.143 - 14 0.143 - 45 0.714 - - 62 2139 22 0 - 2 0.813 - 3 0.00234 - 4 0.0229 - 5 0.00421 - 6 0.000468 - 7 0.022 - 8 0.000935 - 13 0.00748 - 14 0.00421 - 15 0.0411 - 19 0.0206 - 20 0.0014 - 21 0.0173 - 23 0.000468 - 26 0.000935 - 28 0.0014 - 29 0.000468 - 30 0.00468 - 33 0.000935 - 34 0.000468 - 45 0.00234 - 46 0.0299 - - 69 206 19 0 - 0 0.0194 - 2 0.0971 - 3 0.00485 - 4 0.00971 - 7 0.0388 - 12 0.00485 - 13 0.00485 - 14 0.00971 - 15 0.00485 - 19 0.0194 - 20 0.00485 - 21 0.0243 - 29 0.00971 - 30 0.0146 - 33 0.0243 - 34 0.00485 - 45 0.00485 - 46 0.675 - 47 0.0243 - - 42 977 35 6 - 0 0.00102 - 1 0.00102 - 2 0.088 - 3 0.0143 - 4 0.148 - 5 0.00614 - 7 0.0645 - 8 0.0287 - 9 0.00409 - 10 0.00102 - 11 0.00205 - 13 0.0409 - 14 0.0409 - 15 0.1 - 16 0.00205 - 17 0.00102 - 19 0.141 - 20 0.0194 - 21 0.0522 - 23 0.00102 - 26 0.00512 - 27 0.00102 - 28 0.00921 - 30 0.00614 - 31 0.00102 - 34 0.00205 - 35 0.00205 - 37 0.00512 - 39 0.00205 - 40 0.0747 - 41 0.00102 - 42 0.00205 - 45 0.0491 - 46 0.00409 - 47 0.0768 - - 42 2 1 0 - 45 1 - - 46 6 1 0 - 47 1 - - 58 4 3 0 - 7 0.25 - 21 0.25 - 45 0.5 - - 62 815 34 0 - 0 0.00123 - 1 0.00123 - 2 0.103 - 3 0.0172 - 4 0.178 - 5 0.00736 - 7 0.0736 - 8 0.0331 - 9 0.00491 - 10 0.00123 - 11 0.00245 - 13 0.0479 - 14 0.0491 - 15 0.119 - 16 0.00245 - 17 0.00123 - 19 0.168 - 20 0.0233 - 21 0.0577 - 23 0.00123 - 26 0.00613 - 27 0.00123 - 28 0.011 - 30 0.00736 - 31 0.00123 - 34 0.00245 - 35 0.00245 - 37 0.00491 - 39 0.00123 - 40 0.00859 - 42 0.00245 - 45 0.0528 - 46 0.00245 - 47 0.00245 - - 66 3 3 0 - 2 0.333 - 8 0.333 - 40 0.333 - - 69 144 13 0 - 2 0.00694 - 7 0.0139 - 13 0.00694 - 15 0.00694 - 19 0.00694 - 21 0.0208 - 37 0.00694 - 39 0.00694 - 40 0.444 - 41 0.00694 - 45 0.00694 - 46 0.0139 - 47 0.451 - - 43 125 4 3 - 20 0.008 - 40 0.032 - 42 0.008 - 47 0.952 - - 2 1 1 0 - 20 1 - - 40 115 2 0 - 42 0.0087 - 47 0.991 - - 69 4 1 0 - 40 1 - - 45 82 15 5 - 0 0.0244 - 2 0.22 - 4 0.134 - 5 0.0122 - 7 0.11 - 8 0.0122 - 13 0.0244 - 14 0.0122 - 15 0.0244 - 19 0.146 - 20 0.0366 - 21 0.0732 - 28 0.0366 - 37 0.0122 - 47 0.122 - - 2 15 7 0 - 0 0.0667 - 4 0.4 - 5 0.0667 - 7 0.133 - 19 0.0667 - 21 0.133 - 28 0.133 - - 40 10 1 0 - 47 1 - - 41 11 4 0 - 2 0.636 - 8 0.0909 - 19 0.182 - 21 0.0909 - - 42 31 11 0 - 0 0.0323 - 4 0.161 - 7 0.194 - 13 0.0645 - 14 0.0323 - 15 0.0645 - 19 0.258 - 20 0.0968 - 21 0.0323 - 28 0.0323 - 37 0.0323 - - 58 13 3 0 - 2 0.846 - 7 0.0769 - 19 0.0769 - - 46 2445 19 7 - 0 0.00164 - 2 0.0225 - 4 0.00204 - 6 0.000409 - 7 0.00573 - 15 0.00777 - 19 0.0151 - 21 0.00164 - 26 0.000818 - 28 0.000409 - 29 0.0139 - 30 0.000409 - 33 0.0278 - 40 0.00409 - 42 0.00327 - 43 0.00368 - 45 0.000409 - 46 0.00859 - 47 0.88 - - 40 2157 5 0 - 2 0.000464 - 42 0.00278 - 43 0.00278 - 46 0.00881 - 47 0.985 - - 41 201 13 0 - 0 0.00995 - 2 0.169 - 4 0.0249 - 6 0.00498 - 7 0.0149 - 15 0.0796 - 19 0.179 - 21 0.00498 - 29 0.169 - 30 0.00498 - 33 0.328 - 45 0.00498 - 46 0.00498 - - 42 4 3 0 - 28 0.25 - 40 0.25 - 47 0.5 - - 48 12 2 0 - 2 0.667 - 7 0.333 - - 55 11 6 0 - 2 0.182 - 7 0.364 - 21 0.0909 - 26 0.0909 - 33 0.0909 - 42 0.182 - - 62 7 4 0 - 2 0.571 - 15 0.143 - 19 0.143 - 47 0.143 - - 69 33 10 0 - 0 0.0606 - 2 0.182 - 7 0.0909 - 15 0.0606 - 21 0.0606 - 26 0.0303 - 40 0.273 - 43 0.0909 - 46 0.0303 - 47 0.121 - - 47 95402 34 17 - 0 0.00953 - 2 0.0171 - 3 8.39e-05 - 4 0.000954 - 5 6.29e-05 - 7 0.0109 - 8 0.000419 - 12 0.00393 - 13 0.000241 - 14 0.000157 - 15 0.000618 - 19 0.00136 - 20 5.24e-05 - 21 0.00164 - 22 0.000105 - 26 0.00125 - 28 0.000136 - 29 0.00199 - 30 0.000293 - 31 0.000199 - 32 0.00066 - 33 0.00197 - 34 0.00021 - 35 2.1e-05 - 37 0.000514 - 39 2.1e-05 - 40 0.361 - 41 0.181 - 42 0.0191 - 43 0.00153 - 44 0.000566 - 45 0.000356 - 46 0.00162 - 47 0.38 - - 40 33670 2 0 - 43 0.000178 - 47 1 - - 41 47 15 0 - 0 0.0851 - 2 0.17 - 4 0.0213 - 7 0.0213 - 12 0.0213 - 13 0.0213 - 14 0.0426 - 15 0.0213 - 19 0.0851 - 20 0.0213 - 29 0.0638 - 33 0.149 - 45 0.0213 - 46 0.149 - 47 0.106 - - 42 78 4 0 - 19 0.0128 - 39 0.0128 - 41 0.0128 - 47 0.962 - - 43 119 1 0 - 47 1 - - 45 10 1 0 - 47 1 - - 46 2350 15 0 - 0 0.0017 - 2 0.00723 - 4 0.00213 - 7 0.00383 - 15 0.00766 - 19 0.014 - 21 0.0017 - 26 0.000851 - 29 0.0145 - 33 0.0277 - 42 0.000851 - 43 0.0017 - 45 0.000426 - 46 0.000426 - 47 0.915 - - 48 773 21 0 - 0 0.0103 - 2 0.0414 - 4 0.00517 - 7 0.19 - 12 0.00517 - 14 0.00129 - 15 0.00129 - 19 0.00259 - 21 0.00517 - 26 0.00129 - 30 0.00129 - 31 0.00129 - 32 0.00129 - 33 0.00129 - 37 0.00259 - 40 0.446 - 41 0.254 - 42 0.0207 - 43 0.00259 - 46 0.00129 - 47 0.00388 - - 49 56 9 0 - 0 0.0357 - 2 0.0357 - 7 0.125 - 15 0.0179 - 40 0.393 - 41 0.304 - 42 0.0536 - 46 0.0179 - 47 0.0179 - - 55 709 22 0 - 0 0.00846 - 2 0.0367 - 4 0.00282 - 7 0.0339 - 8 0.00282 - 12 0.00705 - 15 0.00282 - 21 0.00564 - 22 0.00141 - 26 0.00423 - 29 0.00282 - 30 0.00423 - 32 0.00423 - 33 0.00141 - 34 0.00564 - 37 0.00282 - 40 0.54 - 41 0.288 - 42 0.0339 - 43 0.00282 - 46 0.00423 - 47 0.00423 - - 57 217 12 0 - 0 0.00461 - 2 0.023 - 7 0.0184 - 12 0.00461 - 19 0.00461 - 21 0.0138 - 26 0.0138 - 40 0.479 - 41 0.392 - 42 0.0369 - 46 0.00461 - 47 0.00461 - - 58 11 4 0 - 8 0.0909 - 28 0.0909 - 40 0.545 - 41 0.273 - - 62 880 12 0 - 2 0.00227 - 7 0.00114 - 12 0.00114 - 19 0.00227 - 28 0.00114 - 29 0.00227 - 40 0.512 - 41 0.441 - 42 0.017 - 43 0.00341 - 46 0.00568 - 47 0.0102 - - 64 87 4 0 - 7 0.0115 - 40 0.747 - 41 0.23 - 43 0.0115 - - 65 4 4 0 - 40 0.25 - 41 0.25 - 46 0.25 - 47 0.25 - - 67 7 2 0 - 46 0.143 - 47 0.857 - - 68 12 6 0 - 2 0.0833 - 15 0.0833 - 19 0.0833 - 40 0.417 - 41 0.25 - 42 0.0833 - - 69 56363 34 0 - 0 0.0157 - 2 0.0273 - 3 0.000142 - 4 0.0014 - 5 0.000106 - 7 0.015 - 8 0.000656 - 12 0.00644 - 13 0.00039 - 14 0.000213 - 15 0.000621 - 19 0.00153 - 20 7.1e-05 - 21 0.0025 - 22 0.00016 - 26 0.00195 - 28 0.000195 - 29 0.00264 - 30 0.000426 - 31 0.000319 - 32 0.00105 - 33 0.00202 - 34 0.000284 - 35 3.55e-05 - 37 0.000798 - 39 1.77e-05 - 40 0.587 - 41 0.29 - 42 0.031 - 43 0.00227 - 44 0.000958 - 45 0.000568 - 46 0.00238 - 47 0.00405 - - 48 811 21 4 - 0 0.00986 - 2 0.0395 - 4 0.00493 - 7 0.211 - 12 0.00493 - 14 0.00123 - 15 0.00123 - 19 0.00247 - 21 0.00493 - 26 0.00123 - 30 0.00123 - 31 0.00123 - 32 0.00123 - 33 0.00123 - 37 0.00247 - 40 0.428 - 41 0.242 - 42 0.0197 - 43 0.00247 - 46 0.016 - 47 0.0037 - - 45 54 4 0 - 7 0.037 - 40 0.556 - 41 0.204 - 46 0.204 - - 47 350 14 0 - 2 0.0229 - 4 0.0114 - 7 0.354 - 14 0.00286 - 19 0.00286 - 21 0.00857 - 26 0.00286 - 30 0.00286 - 31 0.00286 - 32 0.00286 - 33 0.00286 - 40 0.291 - 41 0.28 - 42 0.0114 - - 49 8 2 0 - 40 0.125 - 41 0.875 - - 55 393 14 0 - 0 0.0204 - 2 0.0611 - 7 0.115 - 12 0.0102 - 15 0.00254 - 19 0.00254 - 21 0.00254 - 37 0.00509 - 40 0.532 - 41 0.201 - 42 0.0305 - 43 0.00509 - 46 0.00509 - 47 0.00763 - - 49 97 22 6 - 0 0.0309 - 2 0.0206 - 3 0.0103 - 4 0.0515 - 7 0.144 - 8 0.0206 - 12 0.0103 - 13 0.0103 - 14 0.0309 - 15 0.0206 - 19 0.0515 - 21 0.0206 - 26 0.0309 - 28 0.0103 - 33 0.0103 - 37 0.0103 - 40 0.237 - 41 0.216 - 42 0.0309 - 45 0.0103 - 46 0.0103 - 47 0.0103 - - 2 20 13 0 - 0 0.05 - 4 0.1 - 7 0.05 - 8 0.05 - 12 0.05 - 13 0.05 - 14 0.1 - 19 0.2 - 26 0.1 - 33 0.05 - 40 0.05 - 41 0.1 - 45 0.05 - - 41 20 11 0 - 3 0.05 - 4 0.15 - 8 0.05 - 14 0.05 - 15 0.05 - 19 0.05 - 21 0.1 - 28 0.05 - 40 0.2 - 41 0.1 - 42 0.15 - - 47 18 6 0 - 0 0.0556 - 7 0.222 - 40 0.222 - 41 0.389 - 46 0.0556 - 47 0.0556 - - 48 5 2 0 - 40 0.8 - 41 0.2 - - 55 31 7 0 - 0 0.0323 - 2 0.0645 - 7 0.29 - 15 0.0323 - 26 0.0323 - 40 0.258 - 41 0.29 - - 69 2 2 0 - 37 0.5 - 40 0.5 - - 51 13 2 0 - 40 0.846 - 41 0.154 - - 55 895 23 6 - 0 0.0067 - 2 0.0291 - 4 0.00223 - 7 0.15 - 8 0.00223 - 12 0.00559 - 15 0.00223 - 21 0.00559 - 22 0.00112 - 26 0.0101 - 29 0.00223 - 30 0.00335 - 32 0.00335 - 33 0.00112 - 34 0.00447 - 37 0.00223 - 40 0.482 - 41 0.237 - 42 0.0268 - 43 0.00223 - 45 0.00223 - 46 0.0156 - 47 0.00335 - - 45 72 4 0 - 40 0.556 - 41 0.278 - 42 0.0139 - 46 0.153 - - 47 526 22 0 - 0 0.0076 - 2 0.0209 - 4 0.0019 - 7 0.228 - 8 0.0019 - 12 0.0076 - 15 0.0038 - 21 0.0076 - 22 0.0019 - 26 0.0152 - 29 0.0038 - 30 0.0057 - 32 0.0038 - 33 0.0019 - 34 0.0076 - 37 0.0019 - 40 0.376 - 41 0.27 - 42 0.0228 - 43 0.0038 - 45 0.0038 - 46 0.0019 - - 48 18 6 0 - 2 0.0556 - 7 0.167 - 26 0.0556 - 40 0.389 - 41 0.278 - 47 0.0556 - - 49 11 3 0 - 7 0.273 - 40 0.0909 - 41 0.636 - - 55 195 14 0 - 0 0.00513 - 2 0.0718 - 4 0.00513 - 7 0.041 - 8 0.00513 - 12 0.00513 - 21 0.00513 - 32 0.00513 - 37 0.00513 - 40 0.631 - 41 0.159 - 42 0.0462 - 46 0.00513 - 47 0.0103 - - 69 59 4 0 - 0 0.0169 - 40 0.915 - 41 0.0508 - 42 0.0169 - - 57 259 12 4 - 0 0.00386 - 2 0.0193 - 7 0.0502 - 12 0.00386 - 19 0.00386 - 21 0.0116 - 26 0.0154 - 40 0.517 - 41 0.332 - 42 0.0347 - 46 0.00386 - 47 0.00386 - - 41 24 4 0 - 7 0.0417 - 40 0.833 - 41 0.0833 - 42 0.0417 - - 47 26 4 0 - 21 0.0385 - 26 0.0385 - 40 0.269 - 41 0.654 - - 48 24 6 0 - 2 0.0417 - 7 0.167 - 40 0.333 - 41 0.333 - 42 0.0833 - 47 0.0417 - - 69 30 5 0 - 0 0.0333 - 26 0.0333 - 40 0.7 - 41 0.2 - 42 0.0333 - - 58 100 11 4 - 2 0.43 - 7 0.08 - 8 0.02 - 19 0.01 - 21 0.01 - 26 0.01 - 28 0.01 - 40 0.14 - 41 0.1 - 42 0.04 - 45 0.15 - - 2 3 3 0 - 8 0.333 - 19 0.333 - 26 0.333 - - 46 9 4 0 - 40 0.222 - 41 0.556 - 42 0.111 - 45 0.111 - - 62 73 9 0 - 2 0.562 - 7 0.0274 - 8 0.0137 - 21 0.0137 - 28 0.0137 - 40 0.11 - 41 0.0411 - 42 0.0411 - 45 0.178 - - 69 11 4 0 - 7 0.545 - 40 0.273 - 41 0.0909 - 45 0.0909 - - 62 7159 19 11 - 2 0.0976 - 4 0.00014 - 7 0.00279 - 8 0.000419 - 12 0.00014 - 15 0.00014 - 19 0.000419 - 21 0.000419 - 28 0.00014 - 29 0.000279 - 37 0.000279 - 40 0.414 - 41 0.361 - 42 0.116 - 43 0.000419 - 44 0.00182 - 45 0.00014 - 46 0.00168 - 47 0.00126 - - 2 2599 15 0 - 2 0.0104 - 7 0.00577 - 8 0.000385 - 12 0.000385 - 19 0.00077 - 28 0.000385 - 29 0.00077 - 37 0.000385 - 40 0.809 - 41 0.155 - 42 0.0119 - 43 0.00077 - 44 0.000385 - 46 0.00154 - 47 0.00192 - - 7 43 4 0 - 2 0.0233 - 40 0.86 - 41 0.093 - 44 0.0233 - - 21 30 5 0 - 2 0.0333 - 40 0.767 - 41 0.133 - 42 0.0333 - 46 0.0333 - - 41 488 5 0 - 2 0.248 - 40 0.184 - 41 0.514 - 42 0.0492 - 46 0.0041 - - 42 697 6 0 - 2 0.00717 - 40 0.859 - 41 0.0689 - 42 0.0588 - 46 0.00143 - 47 0.0043 - - 44 12 3 0 - 2 0.167 - 41 0.5 - 42 0.333 - - 45 222 7 0 - 2 0.113 - 7 0.0045 - 40 0.189 - 41 0.568 - 42 0.104 - 46 0.018 - 47 0.0045 - - 47 2942 13 0 - 2 0.171 - 4 0.00034 - 7 0.00102 - 8 0.00068 - 15 0.00034 - 19 0.00034 - 21 0.00102 - 37 0.00034 - 40 0.00034 - 41 0.582 - 42 0.238 - 44 0.00374 - 45 0.00034 - - 48 36 3 0 - 7 0.0278 - 40 0.833 - 41 0.139 - - 49 36 4 0 - 2 0.0556 - 40 0.75 - 41 0.167 - 43 0.0278 - - 57 12 3 0 - 2 0.5 - 40 0.167 - 41 0.333 - - 64 106 7 1 - 2 0.00943 - 7 0.00943 - 21 0.00943 - 40 0.755 - 41 0.198 - 42 0.00943 - 43 0.00943 - - 47 1 1 0 - 42 1 - - 66 32 3 0 - 40 0.781 - 41 0.125 - 42 0.0938 - - 67 9 3 0 - 40 0.222 - 46 0.111 - 47 0.667 - - 68 12 6 0 - 2 0.0833 - 15 0.0833 - 19 0.0833 - 40 0.417 - 41 0.25 - 42 0.0833 - - 69 90067 36 14 - 0 0.00981 - 2 0.0171 - 3 0.000111 - 4 0.000999 - 5 6.66e-05 - 7 0.00973 - 8 0.000411 - 9 1.11e-05 - 12 0.00403 - 13 0.000289 - 14 0.000133 - 15 0.000811 - 17 1.11e-05 - 19 0.000966 - 20 4.44e-05 - 21 0.0016 - 22 9.99e-05 - 26 0.00123 - 28 0.000122 - 29 0.00165 - 30 0.000266 - 31 0.000211 - 32 0.000655 - 33 0.00127 - 34 0.000189 - 35 2.22e-05 - 37 0.000522 - 39 1.11e-05 - 40 0.736 - 41 0.184 - 42 0.021 - 43 0.00147 - 44 0.000644 - 45 0.000366 - 46 0.00185 - 47 0.00253 - - 2 19 3 0 - 40 0.895 - 41 0.0526 - 44 0.0526 - - 4 32 4 0 - 7 0.0312 - 12 0.0312 - 40 0.844 - 41 0.0938 - - 21 122 8 0 - 0 0.0082 - 2 0.0082 - 7 0.0246 - 29 0.0164 - 40 0.631 - 41 0.27 - 42 0.0328 - 47 0.0082 - - 41 838 11 0 - 0 0.00119 - 2 0.00477 - 4 0.00119 - 15 0.0143 - 33 0.00119 - 37 0.00119 - 40 0.899 - 41 0.0513 - 42 0.0203 - 43 0.00239 - 47 0.00358 - - 43 28 3 0 - 0 0.0714 - 40 0.464 - 41 0.464 - - 45 334 7 0 - 2 0.00898 - 7 0.00299 - 40 0.557 - 41 0.38 - 42 0.018 - 46 0.0269 - 47 0.00599 - - 46 98 10 0 - 0 0.0102 - 2 0.0102 - 3 0.0102 - 4 0.0204 - 7 0.0102 - 15 0.255 - 40 0.531 - 41 0.122 - 42 0.0204 - 43 0.0102 - - 47 23686 34 0 - 0 0.0246 - 2 0.021 - 3 0.000253 - 4 0.00186 - 5 8.44e-05 - 7 0.0269 - 8 0.00118 - 12 0.0117 - 13 0.00076 - 14 0.000169 - 15 0.000844 - 17 4.22e-05 - 19 0.00101 - 20 4.22e-05 - 21 0.00422 - 22 0.000338 - 26 0.00355 - 28 0.000296 - 29 0.00469 - 30 0.000633 - 31 0.000633 - 32 0.00182 - 33 0.00338 - 34 0.000464 - 37 0.00148 - 39 4.22e-05 - 40 0.625 - 41 0.231 - 42 0.0221 - 43 0.00207 - 44 0.000929 - 45 0.000929 - 46 0.00312 - 47 0.00262 - - 49 3383 23 0 - 0 0.00532 - 2 0.00769 - 3 0.000296 - 4 0.000887 - 7 0.00236 - 9 0.000296 - 12 0.00236 - 13 0.000591 - 15 0.000591 - 19 0.000296 - 21 0.00118 - 26 0.000296 - 29 0.000887 - 30 0.000887 - 32 0.000887 - 33 0.000887 - 40 0.792 - 41 0.156 - 42 0.021 - 43 0.00118 - 44 0.000296 - 46 0.00148 - 47 0.00207 - - 55 60684 33 0 - 0 0.0046 - 2 0.0165 - 3 3.3e-05 - 4 0.000659 - 5 6.59e-05 - 7 0.00369 - 8 0.000148 - 12 0.00125 - 13 9.89e-05 - 14 0.000132 - 15 0.000214 - 19 0.00101 - 20 4.94e-05 - 21 0.000659 - 22 1.65e-05 - 26 0.000428 - 28 6.59e-05 - 29 0.000527 - 30 9.89e-05 - 31 6.59e-05 - 32 0.000214 - 33 0.000478 - 34 9.89e-05 - 35 3.3e-05 - 37 0.000181 - 40 0.774 - 41 0.168 - 42 0.0204 - 43 0.00125 - 44 0.00056 - 45 0.000165 - 46 0.00129 - 47 0.0025 - - 57 196 6 0 - 2 0.0153 - 29 0.0051 - 40 0.811 - 41 0.122 - 42 0.0408 - 45 0.0051 - - 58 207 4 0 - 2 0.00966 - 40 0.928 - 41 0.0338 - 42 0.029 - - 62 256 6 0 - 2 0.00781 - 15 0.00391 - 33 0.00391 - 40 0.793 - 41 0.148 - 42 0.043 - - 64 121 6 0 - 19 0.00826 - 40 0.785 - 41 0.132 - 42 0.0579 - 46 0.00826 - 47 0.00826 - -63 79666 1 0 - 47 1 - -64 76641 43 33 - 0 0.0391 - 1 9.13e-05 - 2 0.0169 - 3 0.00201 - 4 0.0542 - 5 0.0026 - 7 0.0151 - 8 0.011 - 9 0.000692 - 10 0.000665 - 11 1.3e-05 - 12 0.0139 - 13 0.0113 - 14 0.0129 - 15 0.0225 - 16 0.000209 - 17 0.000326 - 18 2.61e-05 - 19 0.0442 - 20 0.00497 - 21 0.00892 - 22 0.000248 - 23 1.3e-05 - 26 0.00343 - 28 0.000613 - 29 0.0176 - 30 0.00316 - 31 0.00274 - 32 0.00857 - 33 0.0137 - 34 0.000626 - 35 0.000535 - 36 5.22e-05 - 37 0.001 - 39 0.000183 - 40 0.488 - 41 0.175 - 42 0.0152 - 43 0.00151 - 44 0.000887 - 45 0.0024 - 46 0.00119 - 47 0.00198 - - 0 1 1 0 - 14 1 - - 2 337 19 7 - 0 0.00297 - 3 0.00297 - 4 0.0623 - 5 0.00297 - 7 0.623 - 8 0.00297 - 14 0.0119 - 15 0.00297 - 19 0.0089 - 20 0.00297 - 21 0.0415 - 22 0.00297 - 26 0.00297 - 34 0.0564 - 35 0.0712 - 36 0.0119 - 37 0.0742 - 41 0.0089 - 45 0.00593 - - 7 2 1 0 - 21 1 - - 41 107 11 0 - 4 0.0467 - 7 0.729 - 14 0.00935 - 19 0.00935 - 21 0.028 - 22 0.00935 - 34 0.0654 - 35 0.0374 - 37 0.0374 - 41 0.00935 - 45 0.0187 - - 42 9 4 0 - 7 0.444 - 34 0.111 - 37 0.333 - 41 0.111 - - 46 8 2 0 - 7 0.875 - 14 0.125 - - 47 10 7 0 - 4 0.2 - 5 0.1 - 8 0.1 - 14 0.2 - 19 0.2 - 20 0.1 - 26 0.1 - - 62 6 2 0 - 15 0.167 - 21 0.833 - - 64 194 10 0 - 0 0.00515 - 3 0.00515 - 4 0.0722 - 7 0.619 - 21 0.0206 - 34 0.0567 - 35 0.103 - 36 0.0206 - 37 0.0928 - 41 0.00515 - - 4 202 13 0 - 3 0.0149 - 7 0.0297 - 8 0.153 - 10 0.0149 - 13 0.411 - 15 0.158 - 20 0.173 - 21 0.0099 - 31 0.00495 - 33 0.00495 - 41 0.00495 - 42 0.0099 - 44 0.0099 - - 7 10169 37 8 - 0 0.00521 - 1 0.000492 - 2 0.00059 - 3 0.0103 - 4 0.305 - 5 0.0145 - 7 0.0308 - 8 0.061 - 9 0.00403 - 10 0.00334 - 11 9.83e-05 - 12 9.83e-05 - 13 0.0558 - 14 0.0677 - 15 0.116 - 16 0.00108 - 17 0.00187 - 19 0.217 - 20 0.0234 - 21 0.0175 - 22 0.000885 - 26 0.00413 - 28 0.000983 - 29 9.83e-05 - 30 0.0177 - 31 0.0146 - 32 0.000295 - 33 0.000492 - 34 0.000197 - 35 0.000787 - 37 0.00256 - 39 0.000787 - 41 0.006 - 42 0.000197 - 43 0.000197 - 44 0.000787 - 45 0.0137 - - 7 48 11 0 - 4 0.25 - 5 0.0208 - 10 0.0208 - 13 0.0625 - 14 0.0625 - 15 0.0208 - 19 0.458 - 20 0.0208 - 26 0.0417 - 30 0.0208 - 42 0.0208 - - 21 246 16 0 - 4 0.341 - 5 0.0163 - 7 0.0203 - 8 0.061 - 9 0.00407 - 13 0.061 - 14 0.0447 - 15 0.0813 - 19 0.285 - 20 0.0203 - 21 0.0163 - 26 0.00407 - 28 0.0244 - 30 0.0122 - 31 0.00407 - 45 0.00407 - - 35 5 2 0 - 4 0.8 - 13 0.2 - - 44 3 2 0 - 15 0.333 - 43 0.667 - - 47 9705 36 0 - 0 0.00546 - 1 0.000515 - 2 0.000618 - 3 0.0108 - 4 0.304 - 5 0.0145 - 7 0.0316 - 8 0.0613 - 9 0.00412 - 10 0.0034 - 11 0.000103 - 12 0.000103 - 13 0.0551 - 14 0.0687 - 15 0.117 - 16 0.00113 - 17 0.00196 - 19 0.214 - 20 0.0236 - 21 0.0177 - 22 0.000927 - 26 0.00402 - 28 0.000412 - 29 0.000103 - 30 0.018 - 31 0.015 - 32 0.000309 - 33 0.000515 - 34 0.000206 - 35 0.000824 - 37 0.00268 - 39 0.000824 - 41 0.00629 - 42 0.000103 - 44 0.000721 - 45 0.0141 - - 49 106 13 0 - 4 0.311 - 5 0.00943 - 7 0.00943 - 8 0.066 - 13 0.0943 - 14 0.066 - 15 0.123 - 19 0.255 - 20 0.0189 - 21 0.0189 - 30 0.00943 - 31 0.00943 - 44 0.00943 - - 55 47 6 0 - 4 0.383 - 8 0.0213 - 13 0.0638 - 15 0.298 - 19 0.213 - 20 0.0213 - - 57 5 3 0 - 4 0.4 - 8 0.4 - 45 0.2 - - 12 1 1 0 - 9 1 - - 13 52 10 2 - 4 0.0385 - 5 0.0192 - 7 0.0385 - 13 0.0192 - 14 0.0192 - 15 0.0192 - 19 0.0385 - 26 0.75 - 30 0.0385 - 41 0.0192 - - 7 45 5 0 - 4 0.0444 - 5 0.0222 - 14 0.0222 - 19 0.0444 - 26 0.867 - - 47 7 5 0 - 7 0.286 - 13 0.143 - 15 0.143 - 30 0.286 - 41 0.143 - - 15 14 3 0 - 4 0.0714 - 15 0.857 - 19 0.0714 - - 21 134 22 5 - 0 0.0224 - 3 0.0149 - 4 0.239 - 5 0.00746 - 7 0.0448 - 8 0.0896 - 9 0.0224 - 10 0.00746 - 13 0.0299 - 14 0.00746 - 15 0.0373 - 19 0.134 - 20 0.0224 - 21 0.112 - 26 0.0149 - 28 0.00746 - 30 0.0149 - 31 0.0821 - 40 0.0224 - 41 0.0373 - 44 0.0149 - 45 0.0149 - - 2 7 4 0 - 19 0.143 - 40 0.429 - 41 0.286 - 45 0.143 - - 7 7 5 0 - 4 0.143 - 7 0.143 - 8 0.143 - 19 0.429 - 26 0.143 - - 21 6 4 0 - 4 0.167 - 15 0.5 - 26 0.167 - 44 0.167 - - 37 1 1 0 - 28 1 - - 47 107 19 0 - 0 0.028 - 3 0.0187 - 4 0.252 - 5 0.00935 - 7 0.0374 - 8 0.103 - 9 0.028 - 10 0.00935 - 13 0.0374 - 14 0.00935 - 15 0.0187 - 19 0.121 - 20 0.028 - 21 0.14 - 30 0.0187 - 31 0.0935 - 41 0.028 - 44 0.00935 - 45 0.00935 - - 26 2 1 0 - 4 1 - - 28 1 1 0 - 26 1 - - 34 10 8 0 - 4 0.1 - 5 0.1 - 8 0.1 - 10 0.1 - 14 0.1 - 15 0.1 - 20 0.1 - 21 0.3 - - 37 1 1 0 - 21 1 - - 40 24 3 0 - 42 0.0417 - 46 0.292 - 47 0.667 - - 41 246 21 8 - 0 0.0122 - 2 0.423 - 3 0.00407 - 4 0.0203 - 7 0.301 - 8 0.0163 - 13 0.00813 - 15 0.00407 - 19 0.0122 - 20 0.00407 - 21 0.0569 - 26 0.00407 - 29 0.00407 - 30 0.0366 - 31 0.0122 - 33 0.00407 - 34 0.0163 - 35 0.00813 - 37 0.0203 - 45 0.00813 - 46 0.0244 - - 7 49 10 0 - 4 0.0204 - 7 0.673 - 8 0.0204 - 20 0.0204 - 21 0.0204 - 26 0.0204 - 30 0.102 - 31 0.0612 - 37 0.0204 - 45 0.0408 - - 49 2 2 0 - 34 0.5 - 37 0.5 - - 55 1 1 0 - 0 1 - - 57 2 1 0 - 19 1 - - 62 7 5 0 - 4 0.143 - 13 0.286 - 19 0.143 - 21 0.286 - 29 0.143 - - 64 136 10 0 - 0 0.0147 - 2 0.765 - 4 0.00735 - 7 0.0809 - 21 0.0221 - 30 0.00735 - 34 0.0221 - 35 0.0147 - 37 0.0221 - 46 0.0441 - - 71 11 5 0 - 4 0.0909 - 7 0.273 - 8 0.273 - 21 0.273 - 30 0.0909 - - 72 36 6 0 - 3 0.0278 - 7 0.75 - 15 0.0278 - 21 0.111 - 30 0.0556 - 33 0.0278 - - 42 22 7 1 - 1 0.0455 - 2 0.409 - 7 0.136 - 21 0.0455 - 37 0.227 - 45 0.0455 - 47 0.0909 - - 62 2 1 0 - 47 1 - - 43 4 4 0 - 4 0.25 - 9 0.25 - 12 0.25 - 29 0.25 - - 44 1 1 0 - 26 1 - - 45 112 19 3 - 0 0.0179 - 1 0.00893 - 3 0.0179 - 4 0.259 - 5 0.0536 - 7 0.0804 - 8 0.0536 - 10 0.0179 - 13 0.0536 - 14 0.0625 - 15 0.0179 - 17 0.00893 - 19 0.259 - 20 0.0268 - 21 0.0179 - 31 0.00893 - 33 0.00893 - 34 0.00893 - 37 0.0179 - - 41 2 2 0 - 15 0.5 - 31 0.5 - - 58 2 2 0 - 10 0.5 - 37 0.5 - - 72 2 2 0 - 0 0.5 - 33 0.5 - - 46 17 5 3 - 2 0.412 - 34 0.0588 - 42 0.0588 - 44 0.0588 - 47 0.412 - - 40 7 1 0 - 47 1 - - 41 6 2 0 - 2 0.833 - 34 0.167 - - 62 2 2 0 - 42 0.5 - 44 0.5 - - 47 27924 33 12 - 0 0.0193 - 2 0.0173 - 4 0.00147 - 5 0.000215 - 7 0.00806 - 8 0.000143 - 12 0.00623 - 13 0.00043 - 14 0.000215 - 15 0.00043 - 19 0.0024 - 20 0.000179 - 21 0.00208 - 22 0.000107 - 26 0.00161 - 28 0.000322 - 29 0.00326 - 30 0.00043 - 31 0.000215 - 32 0.00165 - 33 0.00154 - 34 0.000322 - 35 7.16e-05 - 37 0.000251 - 39 3.58e-05 - 40 0.669 - 41 0.235 - 42 0.0204 - 43 0.00201 - 44 0.000967 - 45 0.000466 - 46 0.00133 - 47 0.00272 - - 40 17 2 0 - 42 0.0588 - 47 0.941 - - 41 9 6 0 - 0 0.222 - 4 0.111 - 13 0.222 - 19 0.111 - 21 0.222 - 29 0.111 - - 42 2 1 0 - 47 1 - - 45 1 1 0 - 19 1 - - 46 9 3 0 - 42 0.111 - 44 0.111 - 47 0.778 - - 51 89 9 0 - 2 0.0112 - 4 0.0112 - 7 0.0112 - 26 0.0225 - 40 0.236 - 41 0.652 - 42 0.0337 - 46 0.0112 - 47 0.0112 - - 62 27364 33 0 - 0 0.0196 - 2 0.0175 - 4 0.00139 - 5 0.000219 - 7 0.00819 - 8 0.000146 - 12 0.00636 - 13 0.000365 - 14 0.000219 - 15 0.000439 - 19 0.00238 - 20 0.000183 - 21 0.00205 - 22 0.00011 - 26 0.00157 - 28 0.000329 - 29 0.00329 - 30 0.000439 - 31 0.000219 - 32 0.00168 - 33 0.00157 - 34 0.000292 - 35 7.31e-05 - 37 0.000256 - 39 3.65e-05 - 40 0.669 - 41 0.236 - 42 0.0203 - 43 0.00201 - 44 0.000914 - 45 0.000475 - 46 0.00132 - 47 0.00175 - - 64 335 5 0 - 40 0.887 - 41 0.0925 - 42 0.0149 - 43 0.00299 - 44 0.00299 - - 65 1 1 0 - 47 1 - - 66 76 6 0 - 2 0.0263 - 4 0.0132 - 34 0.0132 - 40 0.697 - 41 0.237 - 42 0.0132 - - 67 1 1 0 - 47 1 - - 72 3 2 0 - 40 0.333 - 42 0.667 - - 49 5 3 0 - 7 0.4 - 33 0.2 - 41 0.4 - - 50 2 2 0 - 0 0.5 - 7 0.5 - - 51 89 9 1 - 2 0.0112 - 4 0.0112 - 7 0.0112 - 26 0.0225 - 40 0.236 - 41 0.652 - 42 0.0337 - 46 0.0112 - 47 0.0112 - - 21 4 3 0 - 26 0.25 - 41 0.5 - 46 0.25 - - 58 20 13 2 - 0 0.1 - 2 0.05 - 4 0.15 - 7 0.05 - 15 0.1 - 19 0.1 - 20 0.05 - 32 0.05 - 33 0.05 - 35 0.05 - 40 0.05 - 41 0.1 - 45 0.1 - - 2 2 2 0 - 7 0.5 - 35 0.5 - - 72 5 4 0 - 0 0.4 - 4 0.2 - 15 0.2 - 33 0.2 - - 62 27403 33 15 - 0 0.0196 - 2 0.0177 - 4 0.00139 - 5 0.000219 - 7 0.00821 - 8 0.000146 - 12 0.00635 - 13 0.000365 - 14 0.000219 - 15 0.000438 - 19 0.00237 - 20 0.000182 - 21 0.00204 - 22 0.000109 - 26 0.00157 - 28 0.000328 - 29 0.00328 - 30 0.000438 - 31 0.000219 - 32 0.00168 - 33 0.00157 - 34 0.000292 - 35 7.3e-05 - 37 0.000255 - 39 3.65e-05 - 40 0.668 - 41 0.236 - 42 0.0204 - 43 0.00201 - 44 0.000912 - 45 0.000511 - 46 0.00139 - 47 0.00175 - - 4 201 8 0 - 0 0.00995 - 2 0.0498 - 7 0.00498 - 29 0.00498 - 30 0.00498 - 40 0.796 - 41 0.124 - 42 0.00498 - - 7 9838 29 0 - 0 0.00498 - 2 0.0176 - 4 0.00203 - 5 0.000305 - 7 0.00407 - 8 0.000102 - 12 0.00173 - 13 0.000203 - 14 0.000407 - 15 0.000813 - 19 0.00335 - 20 0.000203 - 21 0.00102 - 26 0.000712 - 28 0.000305 - 29 0.00122 - 32 0.000407 - 33 0.00152 - 34 0.000102 - 37 0.000203 - 39 0.000102 - 40 0.665 - 41 0.273 - 42 0.0147 - 43 0.00193 - 44 0.00061 - 45 0.000305 - 46 0.000813 - 47 0.00173 - - 13 50 6 0 - 2 0.02 - 7 0.02 - 40 0.68 - 41 0.22 - 42 0.04 - 46 0.02 - - 15 14 3 0 - 0 0.0714 - 33 0.0714 - 41 0.857 - - 21 118 6 0 - 2 0.00847 - 7 0.0169 - 40 0.525 - 41 0.432 - 42 0.00847 - 47 0.00847 - - 41 95 3 0 - 2 0.0105 - 40 0.905 - 41 0.0842 - - 45 132 6 0 - 35 0.00758 - 40 0.788 - 41 0.136 - 42 0.0303 - 46 0.0152 - 47 0.0227 - - 47 7896 30 0 - 0 0.0215 - 2 0.0193 - 4 0.000887 - 5 0.000127 - 7 0.0146 - 8 0.000253 - 12 0.0057 - 13 0.00038 - 15 0.000253 - 19 0.00127 - 21 0.00177 - 22 0.00038 - 26 0.00203 - 28 0.000253 - 29 0.0019 - 30 0.00076 - 31 0.000127 - 32 0.000633 - 33 0.00127 - 34 0.00038 - 35 0.000127 - 37 0.000633 - 40 0.769 - 41 0.135 - 42 0.0168 - 43 0.000633 - 44 0.00076 - 45 0.000253 - 46 0.00139 - 47 0.0019 - - 58 12 4 0 - 19 0.0833 - 40 0.667 - 41 0.167 - 43 0.0833 - - 68 2 2 0 - 19 0.5 - 46 0.5 - - 70 36 6 0 - 0 0.0278 - 12 0.0278 - 40 0.556 - 41 0.333 - 42 0.0278 - 44 0.0278 - - 71 1931 24 0 - 0 0.0109 - 2 0.0166 - 4 0.00311 - 5 0.000518 - 7 0.0088 - 12 0.00414 - 13 0.00104 - 14 0.00104 - 15 0.000518 - 19 0.00984 - 20 0.00104 - 21 0.00104 - 29 0.000518 - 31 0.000518 - 32 0.00104 - 34 0.000518 - 40 0.572 - 41 0.328 - 42 0.029 - 43 0.00363 - 44 0.00155 - 45 0.000518 - 46 0.00311 - 47 0.00104 - - 72 6697 28 0 - 0 0.0426 - 2 0.0166 - 4 0.000597 - 5 0.000149 - 7 0.00732 - 8 0.000149 - 12 0.0148 - 13 0.000448 - 15 0.000149 - 19 0.000149 - 20 0.000149 - 21 0.00433 - 26 0.00284 - 28 0.000597 - 29 0.00881 - 30 0.000747 - 31 0.000597 - 32 0.00523 - 33 0.00254 - 34 0.000448 - 40 0.579 - 41 0.274 - 42 0.03 - 43 0.00314 - 44 0.00119 - 45 0.00119 - 46 0.00134 - 47 0.00134 - - 73 320 12 0 - 0 0.025 - 2 0.0125 - 12 0.0125 - 21 0.00313 - 26 0.00313 - 29 0.00625 - 40 0.669 - 41 0.216 - 42 0.0406 - 43 0.00625 - 44 0.00313 - 47 0.00313 - - 74 14 2 0 - 4 0.0714 - 41 0.929 - - 64 690 9 3 - 2 0.281 - 7 0.00145 - 35 0.00145 - 40 0.432 - 41 0.243 - 42 0.0348 - 43 0.00145 - 44 0.00145 - 46 0.0029 - - 2 306 6 0 - 7 0.00327 - 40 0.892 - 41 0.0882 - 42 0.0098 - 43 0.00327 - 44 0.00327 - - 42 7 2 0 - 40 0.429 - 42 0.571 - - 47 337 5 0 - 2 0.561 - 35 0.00297 - 41 0.38 - 42 0.0504 - 46 0.00593 - - 65 1 1 0 - 47 1 - - 66 76 6 0 - 2 0.0263 - 4 0.0132 - 34 0.0132 - 40 0.697 - 41 0.237 - 42 0.0132 - - 67 2 2 0 - 40 0.5 - 47 0.5 - - 70 36 7 0 - 4 0.417 - 9 0.0278 - 14 0.0278 - 15 0.0278 - 19 0.444 - 20 0.0278 - 26 0.0278 - - 71 1951 27 2 - 0 0.000513 - 3 0.00718 - 4 0.281 - 5 0.0118 - 7 0.00923 - 8 0.0492 - 9 0.00154 - 10 0.00205 - 13 0.063 - 14 0.0866 - 15 0.121 - 16 0.00154 - 17 0.00205 - 19 0.255 - 20 0.0297 - 21 0.0128 - 26 0.0308 - 28 0.000513 - 29 0.00103 - 30 0.0118 - 31 0.00923 - 34 0.000513 - 35 0.000513 - 39 0.000513 - 40 0.000513 - 41 0.00871 - 45 0.00154 - - 2 1 1 0 - 28 1 - - 21 5 4 0 - 4 0.2 - 8 0.2 - 19 0.4 - 31 0.2 - - 72 6756 35 3 - 0 0.274 - 2 0.000296 - 3 0.00074 - 4 0.0333 - 5 0.000148 - 7 0.00873 - 8 0.00784 - 9 0.000444 - 10 0.000888 - 12 0.106 - 13 0.00562 - 14 0.00977 - 15 0.0255 - 16 0.000148 - 17 0.000148 - 18 0.000296 - 19 0.0598 - 20 0.0037 - 21 0.0465 - 22 0.000444 - 23 0.000148 - 26 0.00296 - 28 0.00252 - 29 0.172 - 30 0.000296 - 31 0.00237 - 32 0.083 - 33 0.141 - 34 0.000296 - 40 0.000148 - 41 0.00918 - 42 0.000296 - 43 0.000296 - 44 0.000296 - 45 0.000888 - - 44 2 1 0 - 43 1 - - 49 7 4 0 - 0 0.143 - 4 0.143 - 15 0.143 - 19 0.571 - - 60 3 2 0 - 4 0.667 - 8 0.333 - - 73 321 15 0 - 0 0.00623 - 3 0.0654 - 4 0.249 - 5 0.0187 - 8 0.0312 - 13 0.0623 - 14 0.112 - 15 0.159 - 16 0.00312 - 19 0.249 - 20 0.0125 - 21 0.00312 - 26 0.0156 - 39 0.00935 - 41 0.00312 - -65 580 13 7 - 2 0.00862 - 4 0.0069 - 19 0.00345 - 29 0.0069 - 30 0.00345 - 33 0.00345 - 37 0.00172 - 40 0.372 - 41 0.0069 - 42 0.0138 - 43 0.00172 - 46 0.0914 - 47 0.479 - - 2 1 1 0 - 37 1 - - 40 158 6 1 - 4 0.00633 - 41 0.00633 - 42 0.00633 - 43 0.00633 - 46 0.215 - 47 0.759 - - 72 1 1 0 - 42 1 - - 46 19 5 0 - 19 0.0526 - 29 0.105 - 33 0.0526 - 46 0.0526 - 47 0.737 - - 47 198 11 3 - 2 0.0101 - 4 0.0101 - 19 0.00505 - 29 0.0101 - 30 0.00505 - 33 0.00505 - 40 0.146 - 41 0.0101 - 42 0.0101 - 46 0.0859 - 47 0.702 - - 40 139 5 0 - 4 0.00719 - 41 0.00719 - 42 0.00719 - 46 0.115 - 47 0.863 - - 46 18 4 0 - 19 0.0556 - 29 0.111 - 33 0.0556 - 47 0.778 - - 67 32 7 0 - 2 0.0625 - 4 0.0312 - 30 0.0312 - 40 0.781 - 41 0.0312 - 42 0.0312 - 46 0.0312 - - 62 6 2 0 - 40 0.833 - 42 0.167 - - 65 2 2 0 - 2 0.5 - 40 0.5 - - 67 184 7 0 - 2 0.0109 - 4 0.00543 - 30 0.00543 - 40 0.946 - 41 0.00543 - 42 0.0217 - 46 0.00543 - -66 8140 31 21 - 0 0.00123 - 2 0.00147 - 3 0.00909 - 4 0.0339 - 5 0.000246 - 7 0.00823 - 8 0.0043 - 9 0.000246 - 13 0.00799 - 14 0.00381 - 15 0.177 - 16 0.000123 - 17 0.000123 - 19 0.00332 - 20 0.00209 - 21 0.00209 - 26 0.00135 - 30 0.00455 - 31 0.000369 - 34 0.000246 - 35 0.000369 - 37 0.000614 - 39 0.000123 - 40 0.239 - 41 0.0378 - 42 0.0108 - 43 0.000123 - 44 0.000123 - 45 0.00639 - 46 0.00541 - 47 0.438 - - 0 38 10 0 - 4 0.263 - 8 0.0789 - 13 0.0789 - 14 0.0526 - 15 0.316 - 17 0.0263 - 19 0.0789 - 20 0.0526 - 21 0.0263 - 31 0.0263 - - 2 4 4 0 - 0 0.25 - 20 0.25 - 21 0.25 - 30 0.25 - - 12 3 3 0 - 4 0.333 - 19 0.333 - 20 0.333 - - 28 1 1 0 - 3 1 - - 29 3 3 0 - 4 0.333 - 13 0.333 - 42 0.333 - - 32 1 1 0 - 13 1 - - 33 3 3 0 - 4 0.333 - 13 0.333 - 15 0.333 - - 40 1764 4 2 - 43 0.000567 - 45 0.0034 - 46 0.0227 - 47 0.973 - - 55 1602 4 0 - 43 0.000624 - 45 0.00375 - 46 0.00936 - 47 0.986 - - 62 82 2 0 - 46 0.293 - 47 0.707 - - 41 62 7 1 - 2 0.0484 - 4 0.0161 - 7 0.194 - 13 0.0161 - 21 0.0484 - 30 0.516 - 45 0.161 - - 64 2 1 0 - 21 1 - - 42 53 8 0 - 3 0.0189 - 4 0.0189 - 15 0.0189 - 21 0.0377 - 31 0.0189 - 40 0.0755 - 45 0.585 - 47 0.226 - - 45 45 9 2 - 4 0.178 - 5 0.0444 - 7 0.111 - 13 0.0444 - 19 0.378 - 35 0.0444 - 37 0.0444 - 44 0.0222 - 47 0.133 - - 40 6 1 0 - 47 1 - - 42 28 6 0 - 4 0.25 - 7 0.143 - 13 0.0357 - 19 0.464 - 35 0.0357 - 37 0.0714 - - 46 40 1 0 - 47 1 - - 47 2027 11 8 - 0 0.00148 - 2 0.00197 - 4 0.000493 - 19 0.000987 - 34 0.000493 - 40 0.0449 - 41 0.0607 - 42 0.00839 - 45 0.000493 - 46 0.000987 - 47 0.879 - - 40 1717 1 0 - 47 1 - - 46 40 1 0 - 47 1 - - 48 4 2 0 - 40 0.5 - 41 0.5 - - 55 174 9 0 - 0 0.0115 - 2 0.00575 - 19 0.0115 - 40 0.333 - 41 0.546 - 42 0.046 - 45 0.00575 - 46 0.0115 - 47 0.0287 - - 57 11 4 0 - 0 0.0909 - 40 0.182 - 41 0.364 - 42 0.364 - - 64 3 2 0 - 40 0.333 - 42 0.667 - - 66 1 1 0 - 42 1 - - 69 55 6 0 - 2 0.0545 - 4 0.0182 - 34 0.0182 - 40 0.491 - 41 0.382 - 42 0.0364 - - 48 6 3 0 - 7 0.167 - 40 0.5 - 41 0.333 - - 49 5 4 0 - 0 0.4 - 13 0.2 - 40 0.2 - 41 0.2 - - 55 1940 18 5 - 0 0.00103 - 2 0.000515 - 4 0.00258 - 7 0.017 - 8 0.00206 - 13 0.000515 - 14 0.000515 - 15 0.000515 - 19 0.00103 - 21 0.00206 - 26 0.00464 - 30 0.00103 - 40 0.856 - 41 0.0778 - 42 0.0278 - 45 0.00155 - 46 0.00103 - 47 0.00258 - - 0 38 7 0 - 2 0.0263 - 4 0.132 - 8 0.105 - 14 0.0263 - 21 0.0526 - 40 0.553 - 41 0.105 - - 12 3 3 0 - 21 0.333 - 40 0.333 - 41 0.333 - - 47 5 1 0 - 26 1 - - 55 8 3 0 - 7 0.25 - 40 0.625 - 41 0.125 - - 69 1873 14 0 - 0 0.00107 - 7 0.0166 - 13 0.000534 - 15 0.000534 - 19 0.00107 - 21 0.000534 - 26 0.0016 - 30 0.00107 - 40 0.868 - 41 0.0758 - 42 0.0278 - 45 0.0016 - 46 0.00107 - 47 0.00267 - - 57 52 9 3 - 0 0.0192 - 4 0.0385 - 7 0.154 - 8 0.0192 - 13 0.0192 - 21 0.0192 - 40 0.538 - 41 0.115 - 42 0.0769 - - 41 9 2 0 - 40 0.667 - 41 0.333 - - 55 34 8 0 - 0 0.0294 - 4 0.0588 - 7 0.235 - 8 0.0294 - 13 0.0294 - 21 0.0294 - 40 0.529 - 41 0.0588 - - 57 8 3 0 - 40 0.375 - 41 0.125 - 42 0.5 - - 62 85 2 0 - 40 0.976 - 42 0.0235 - - 64 28 3 1 - 40 0.786 - 41 0.0714 - 42 0.143 - - 47 3 2 0 - 41 0.667 - 42 0.333 - - 66 6 4 0 - 2 0.167 - 40 0.333 - 41 0.167 - 42 0.333 - - 69 1970 25 11 - 0 0.000508 - 2 0.00152 - 3 0.0365 - 4 0.124 - 7 0.00406 - 8 0.0137 - 9 0.00102 - 13 0.0269 - 14 0.0142 - 15 0.722 - 16 0.000508 - 19 0.00102 - 20 0.0066 - 21 0.00254 - 26 0.00102 - 30 0.00102 - 31 0.000508 - 34 0.000508 - 35 0.000508 - 37 0.00152 - 39 0.000508 - 40 0.0264 - 41 0.0107 - 42 0.00203 - 45 0.000508 - - 21 4 3 0 - 3 0.25 - 4 0.25 - 40 0.5 - - 41 231 7 0 - 3 0.0216 - 4 0.104 - 8 0.013 - 13 0.0346 - 14 0.0346 - 15 0.788 - 16 0.00433 - - 46 1168 6 0 - 3 0.0402 - 4 0.0753 - 8 0.00856 - 13 0.018 - 15 0.854 - 20 0.00342 - - 47 152 13 0 - 0 0.00658 - 3 0.0263 - 4 0.178 - 8 0.0197 - 13 0.0592 - 14 0.0197 - 15 0.605 - 19 0.0132 - 20 0.0395 - 21 0.00658 - 30 0.0132 - 31 0.00658 - 42 0.00658 - - 48 25 7 0 - 3 0.04 - 4 0.56 - 7 0.08 - 8 0.08 - 15 0.16 - 20 0.04 - 35 0.04 - - 49 54 9 0 - 3 0.037 - 4 0.463 - 8 0.037 - 9 0.0185 - 13 0.185 - 14 0.0741 - 15 0.0926 - 21 0.037 - 37 0.0556 - - 55 82 7 0 - 2 0.0366 - 4 0.0488 - 7 0.0122 - 34 0.0122 - 40 0.61 - 41 0.256 - 42 0.0244 - - 57 76 11 0 - 3 0.0526 - 4 0.382 - 7 0.0526 - 8 0.0132 - 13 0.0263 - 14 0.118 - 15 0.289 - 20 0.0132 - 21 0.0263 - 39 0.0132 - 45 0.0132 - - 58 6 4 0 - 4 0.333 - 7 0.167 - 15 0.167 - 26 0.333 - - 62 111 5 0 - 3 0.0541 - 4 0.045 - 8 0.00901 - 13 0.018 - 15 0.874 - - 69 54 9 0 - 3 0.0185 - 4 0.407 - 8 0.0926 - 9 0.0185 - 13 0.0185 - 14 0.0741 - 15 0.333 - 20 0.0185 - 42 0.0185 - -67 1431 33 20 - 0 0.0314 - 1 0.000699 - 2 0.00699 - 4 0.0664 - 5 0.0021 - 7 0.0175 - 8 0.0133 - 12 0.000699 - 13 0.0175 - 14 0.00559 - 15 0.0182 - 16 0.0014 - 17 0.000699 - 19 0.0783 - 20 0.000699 - 21 0.051 - 24 0.000699 - 26 0.0021 - 28 0.0783 - 29 0.0014 - 30 0.0168 - 31 0.00839 - 32 0.0028 - 34 0.000699 - 35 0.0028 - 37 0.0014 - 40 0.366 - 41 0.0175 - 42 0.00978 - 43 0.0028 - 45 0.0014 - 46 0.0266 - 47 0.148 - - 0 167 12 1 - 4 0.299 - 5 0.018 - 7 0.024 - 8 0.018 - 13 0.0599 - 14 0.018 - 15 0.108 - 16 0.00599 - 17 0.00599 - 19 0.311 - 21 0.108 - 30 0.024 - - 2 8 3 0 - 13 0.125 - 15 0.125 - 19 0.75 - - 2 5 4 0 - 0 0.4 - 12 0.2 - 13 0.2 - 35 0.2 - - 12 94 11 0 - 0 0.0426 - 4 0.202 - 8 0.0106 - 13 0.0319 - 14 0.0319 - 15 0.0532 - 19 0.447 - 20 0.0106 - 21 0.106 - 28 0.0532 - 45 0.0106 - - 14 2 1 0 - 4 1 - - 21 28 6 1 - 4 0.286 - 13 0.0714 - 15 0.0357 - 16 0.0357 - 19 0.536 - 30 0.0357 - - 55 2 2 0 - 15 0.5 - 30 0.5 - - 40 130 8 1 - 0 0.00769 - 4 0.00769 - 35 0.00769 - 40 0.0231 - 41 0.0154 - 42 0.0154 - 46 0.146 - 47 0.777 - - 40 3 2 0 - 40 0.667 - 47 0.333 - - 41 11 6 0 - 0 0.0909 - 2 0.273 - 4 0.0909 - 7 0.273 - 21 0.0909 - 28 0.182 - - 45 2 2 0 - 15 0.5 - 37 0.5 - - 46 8 4 0 - 7 0.125 - 28 0.125 - 43 0.125 - 47 0.625 - - 47 342 12 7 - 0 0.00292 - 2 0.00877 - 4 0.00292 - 7 0.00585 - 30 0.00292 - 35 0.00292 - 40 0.576 - 41 0.0175 - 42 0.0205 - 43 0.00585 - 46 0.0439 - 47 0.31 - - 40 120 7 0 - 0 0.00833 - 4 0.00833 - 35 0.00833 - 41 0.0167 - 42 0.0167 - 46 0.1 - 47 0.842 - - 46 7 3 0 - 7 0.143 - 43 0.143 - 47 0.714 - - 48 8 2 0 - 40 0.875 - 41 0.125 - - 55 14 3 0 - 40 0.786 - 42 0.0714 - 46 0.143 - - 57 8 2 0 - 7 0.125 - 40 0.875 - - 69 176 5 0 - 2 0.017 - 30 0.00568 - 40 0.943 - 41 0.017 - 42 0.017 - - 73 1 1 0 - 43 1 - - 48 23 5 0 - 7 0.13 - 21 0.0435 - 26 0.0435 - 40 0.739 - 41 0.0435 - - 49 29 11 0 - 0 0.138 - 4 0.069 - 7 0.0345 - 8 0.069 - 13 0.0345 - 21 0.0345 - 28 0.414 - 29 0.0345 - 30 0.0345 - 40 0.103 - 41 0.0345 - - 55 278 19 8 - 0 0.112 - 4 0.036 - 7 0.0324 - 8 0.0468 - 13 0.0288 - 14 0.00719 - 21 0.144 - 24 0.0036 - 26 0.00719 - 28 0.331 - 29 0.0036 - 30 0.0576 - 31 0.0432 - 32 0.0144 - 37 0.0036 - 40 0.0935 - 41 0.0216 - 42 0.0036 - 46 0.0108 - - 0 145 17 0 - 0 0.0621 - 4 0.0621 - 7 0.0414 - 8 0.0552 - 13 0.0414 - 21 0.193 - 24 0.0069 - 26 0.0138 - 28 0.248 - 29 0.0069 - 30 0.11 - 31 0.0828 - 32 0.0207 - 37 0.0069 - 40 0.0345 - 41 0.0069 - 42 0.0069 - - 12 75 6 0 - 0 0.253 - 21 0.107 - 28 0.587 - 32 0.0133 - 40 0.0133 - 41 0.0267 - - 14 2 1 0 - 13 1 - - 21 27 8 0 - 0 0.111 - 4 0.037 - 8 0.148 - 14 0.037 - 21 0.0741 - 28 0.444 - 40 0.111 - 41 0.037 - - 45 1 1 0 - 46 1 - - 49 4 3 0 - 21 0.25 - 40 0.5 - 41 0.25 - - 55 16 3 0 - 7 0.0625 - 40 0.812 - 46 0.125 - - 69 5 5 0 - 7 0.2 - 8 0.2 - 14 0.2 - 21 0.2 - 41 0.2 - - 57 11 3 0 - 7 0.0909 - 40 0.818 - 41 0.0909 - - 58 2 2 0 - 34 0.5 - 45 0.5 - - 62 6 3 0 - 4 0.167 - 40 0.667 - 41 0.167 - - 64 10 2 0 - 40 0.9 - 41 0.1 - - 67 13 7 1 - 0 0.0769 - 2 0.0769 - 7 0.0769 - 35 0.0769 - 40 0.385 - 41 0.231 - 46 0.0769 - - 47 5 3 0 - 0 0.2 - 2 0.2 - 41 0.6 - - 69 267 9 1 - 1 0.00375 - 2 0.0112 - 15 0.00375 - 19 0.0112 - 21 0.00749 - 30 0.00375 - 40 0.936 - 41 0.0112 - 42 0.0112 - - 47 56 8 0 - 1 0.0179 - 2 0.0179 - 15 0.0179 - 19 0.0357 - 21 0.0357 - 30 0.0179 - 40 0.821 - 42 0.0357 - - 73 1 1 0 - 43 1 - -68 1301 34 22 - 0 0.00692 - 2 0.00692 - 3 0.000769 - 4 0.0208 - 6 0.000769 - 7 0.0653 - 8 0.0507 - 9 0.00922 - 12 0.000769 - 13 0.119 - 14 0.175 - 15 0.00999 - 16 0.00154 - 19 0.00231 - 20 0.00154 - 21 0.0515 - 22 0.00384 - 23 0.000769 - 26 0.0146 - 29 0.00461 - 30 0.0123 - 31 0.0138 - 32 0.00461 - 34 0.000769 - 35 0.000769 - 36 0.000769 - 37 0.00461 - 40 0.271 - 41 0.0953 - 42 0.0238 - 44 0.000769 - 45 0.00231 - 46 0.00384 - 47 0.0184 - - 2 253 25 10 - 0 0.00395 - 3 0.00395 - 4 0.0553 - 6 0.00395 - 7 0.233 - 8 0.103 - 9 0.0474 - 12 0.00395 - 13 0.0356 - 15 0.00395 - 19 0.00395 - 20 0.00791 - 21 0.241 - 22 0.0198 - 23 0.00395 - 26 0.0474 - 29 0.00791 - 30 0.0593 - 31 0.0593 - 35 0.00395 - 36 0.00395 - 37 0.0237 - 41 0.00791 - 44 0.00395 - 45 0.0119 - - 15 2 1 0 - 8 1 - - 41 45 16 0 - 0 0.0222 - 3 0.0222 - 4 0.0667 - 6 0.0222 - 7 0.2 - 8 0.0889 - 9 0.0222 - 13 0.0444 - 21 0.2 - 22 0.0444 - 26 0.0667 - 29 0.0444 - 30 0.0222 - 31 0.0667 - 36 0.0222 - 37 0.0444 - - 46 3 2 0 - 8 0.333 - 45 0.667 - - 48 47 10 0 - 4 0.128 - 7 0.213 - 8 0.0426 - 12 0.0213 - 13 0.0426 - 21 0.234 - 30 0.128 - 31 0.149 - 41 0.0213 - 45 0.0213 - - 49 27 7 0 - 7 0.63 - 8 0.037 - 15 0.037 - 20 0.037 - 21 0.111 - 23 0.037 - 30 0.111 - - 55 47 14 0 - 4 0.0426 - 7 0.106 - 8 0.0851 - 9 0.213 - 13 0.0213 - 19 0.0213 - 21 0.298 - 22 0.0213 - 26 0.0638 - 30 0.0213 - 31 0.0426 - 35 0.0213 - 37 0.0213 - 41 0.0213 - - 57 51 12 0 - 4 0.0588 - 7 0.157 - 8 0.0196 - 9 0.0196 - 13 0.0588 - 21 0.373 - 22 0.0196 - 26 0.118 - 30 0.0784 - 31 0.0588 - 37 0.0196 - 44 0.0196 - - 62 7 2 0 - 7 0.857 - 21 0.143 - - 66 1 1 0 - 20 1 - - 69 15 5 0 - 7 0.0667 - 8 0.6 - 13 0.0667 - 21 0.2 - 22 0.0667 - - 8 111 5 0 - 8 0.117 - 13 0.306 - 14 0.559 - 16 0.00901 - 42 0.00901 - - 13 51 3 0 - 13 0.333 - 14 0.627 - 41 0.0392 - - 14 13 2 0 - 13 0.538 - 14 0.462 - - 15 18 4 0 - 8 0.167 - 13 0.222 - 14 0.389 - 15 0.222 - - 21 9 5 0 - 4 0.222 - 7 0.222 - 8 0.333 - 21 0.111 - 26 0.111 - - 30 4 1 0 - 13 1 - - 40 12 2 0 - 46 0.0833 - 47 0.917 - - 41 10 8 0 - 2 0.1 - 4 0.1 - 7 0.1 - 8 0.1 - 13 0.2 - 19 0.1 - 21 0.2 - 31 0.1 - - 42 2 2 0 - 34 0.5 - 47 0.5 - - 45 3 3 0 - 4 0.333 - 8 0.333 - 30 0.333 - - 46 1 1 0 - 46 1 - - 47 494 20 17 - 0 0.0081 - 2 0.0081 - 4 0.0081 - 7 0.0142 - 8 0.0344 - 13 0.148 - 14 0.231 - 15 0.0101 - 16 0.00202 - 19 0.00202 - 21 0.00202 - 26 0.00607 - 29 0.00405 - 31 0.00202 - 32 0.00607 - 40 0.344 - 41 0.113 - 42 0.0283 - 46 0.00405 - 47 0.0243 - - 7 1 1 0 - 4 1 - - 8 110 4 0 - 8 0.118 - 13 0.309 - 14 0.564 - 16 0.00909 - - 13 49 2 0 - 13 0.347 - 14 0.653 - - 14 13 2 0 - 13 0.538 - 14 0.462 - - 15 18 4 0 - 8 0.167 - 13 0.222 - 14 0.389 - 15 0.222 - - 30 4 1 0 - 13 1 - - 40 12 2 0 - 46 0.0833 - 47 0.917 - - 41 6 5 0 - 4 0.167 - 7 0.167 - 13 0.333 - 19 0.167 - 31 0.167 - - 46 1 1 0 - 46 1 - - 48 45 9 0 - 2 0.0444 - 7 0.0889 - 13 0.0444 - 14 0.0444 - 26 0.0222 - 32 0.0444 - 40 0.533 - 41 0.111 - 42 0.0667 - - 49 46 7 0 - 0 0.0435 - 2 0.0217 - 7 0.0435 - 26 0.0217 - 32 0.0217 - 40 0.63 - 41 0.217 - - 55 38 6 0 - 14 0.0526 - 15 0.0263 - 29 0.0263 - 40 0.605 - 41 0.211 - 42 0.0789 - - 57 69 7 0 - 0 0.0145 - 2 0.0145 - 21 0.0145 - 29 0.0145 - 40 0.652 - 41 0.232 - 42 0.058 - - 62 17 4 0 - 4 0.0588 - 40 0.647 - 41 0.235 - 42 0.0588 - - 64 21 3 0 - 40 0.714 - 41 0.238 - 42 0.0476 - - 69 34 6 0 - 0 0.0294 - 13 0.0588 - 26 0.0294 - 40 0.618 - 41 0.206 - 42 0.0588 - - 71 1 1 0 - 4 1 - - 48 50 10 0 - 2 0.04 - 4 0.02 - 7 0.1 - 13 0.04 - 14 0.04 - 26 0.02 - 32 0.04 - 40 0.48 - 41 0.16 - 42 0.06 - - 49 57 10 0 - 0 0.0351 - 2 0.0175 - 4 0.0175 - 7 0.14 - 8 0.0351 - 26 0.0175 - 31 0.0175 - 32 0.0175 - 40 0.509 - 41 0.193 - - 55 48 6 0 - 14 0.0417 - 15 0.0417 - 29 0.0208 - 40 0.583 - 41 0.229 - 42 0.0833 - - 57 70 7 0 - 0 0.0143 - 2 0.0143 - 21 0.0143 - 29 0.0143 - 40 0.643 - 41 0.243 - 42 0.0571 - - 58 3 2 0 - 7 0.667 - 14 0.333 - - 62 21 4 0 - 4 0.0476 - 40 0.714 - 41 0.19 - 42 0.0476 - - 64 23 4 0 - 7 0.0435 - 40 0.696 - 41 0.217 - 42 0.0435 - - 65 1 1 0 - 46 1 - - 69 35 7 0 - 0 0.0286 - 13 0.0571 - 15 0.0286 - 26 0.0286 - 40 0.6 - 41 0.2 - 42 0.0571 - -69 482293 48 46 - 0 0.0224 - 1 0.00057 - 2 0.0308 - 3 0.00808 - 4 0.0469 - 5 0.000257 - 6 4.15e-05 - 7 0.0864 - 8 0.0202 - 9 0.00219 - 10 0.000199 - 11 2.07e-06 - 12 0.00331 - 13 0.0122 - 14 0.00875 - 15 0.014 - 16 8.5e-05 - 17 0.000261 - 18 8.29e-06 - 19 0.00971 - 20 0.00668 - 21 0.0342 - 22 0.00161 - 23 0.000114 - 24 0.00542 - 25 4.15e-06 - 26 0.0285 - 27 5.81e-05 - 28 0.0407 - 29 0.00358 - 30 0.0133 - 31 0.0242 - 32 0.000977 - 33 0.0015 - 34 0.000506 - 35 0.000666 - 36 4.15e-06 - 37 0.00212 - 38 2.28e-05 - 39 0.00219 - 40 0.418 - 41 0.127 - 42 0.0138 - 43 0.00104 - 44 0.00067 - 45 0.00305 - 46 0.0022 - 47 0.00131 - - 0 33826 40 4 - 0 0.0458 - 1 0.00556 - 2 0.000887 - 3 0.0145 - 4 0.115 - 5 5.91e-05 - 7 0.0456 - 8 0.1 - 9 0.00955 - 10 0.000237 - 12 5.91e-05 - 13 0.021 - 14 0.00958 - 15 0.00695 - 16 0.000118 - 17 0.000562 - 19 0.00251 - 20 0.00364 - 21 0.192 - 22 0.00514 - 23 0.000828 - 24 0.000769 - 26 0.0203 - 27 2.96e-05 - 28 0.00304 - 29 0.00263 - 30 0.0892 - 31 0.274 - 33 8.87e-05 - 34 0.000148 - 35 0.00106 - 37 0.00154 - 39 0.00585 - 40 0.00411 - 41 0.00532 - 42 0.00101 - 43 0.000148 - 44 0.000384 - 45 0.0103 - 46 0.000148 - - 44 1 1 0 - 43 1 - - 45 6 4 0 - 4 0.167 - 8 0.167 - 21 0.5 - 26 0.167 - - 49 55 14 0 - 0 0.0364 - 3 0.0909 - 4 0.127 - 8 0.0727 - 9 0.0364 - 13 0.0545 - 14 0.0182 - 15 0.0182 - 21 0.164 - 26 0.0364 - 30 0.0909 - 31 0.218 - 41 0.0182 - 42 0.0182 - - 57 7 5 0 - 8 0.143 - 13 0.143 - 21 0.429 - 30 0.143 - 31 0.143 - - 1 555 21 1 - 0 0.027 - 3 0.00901 - 4 0.11 - 7 0.0126 - 8 0.0613 - 9 0.00721 - 13 0.0342 - 14 0.00901 - 15 0.00721 - 17 0.0018 - 19 0.0036 - 20 0.00541 - 21 0.0541 - 22 0.0018 - 26 0.0234 - 28 0.0018 - 29 0.0396 - 31 0.577 - 35 0.0018 - 40 0.0018 - 45 0.0108 - - 49 6 3 0 - 0 0.167 - 3 0.167 - 31 0.667 - - 2 3483 26 11 - 0 0.152 - 1 0.00258 - 3 0.00632 - 4 0.00718 - 7 0.0135 - 8 0.0126 - 9 0.00201 - 12 0.0617 - 13 0.00689 - 14 0.00402 - 15 0.00144 - 20 0.00172 - 21 0.0939 - 22 0.00172 - 23 0.000287 - 26 0.0284 - 28 0.159 - 29 0.194 - 30 0.0764 - 31 0.0485 - 32 0.0356 - 33 0.0744 - 39 0.00172 - 41 0.0089 - 42 0.000574 - 45 0.00488 - - 0 2 2 0 - 4 0.5 - 30 0.5 - - 28 1 1 0 - 13 1 - - 31 1 1 0 - 8 1 - - 41 654 21 0 - 0 0.19 - 1 0.00306 - 3 0.00765 - 4 0.00917 - 7 0.0291 - 8 0.00612 - 9 0.00153 - 12 0.0765 - 13 0.00306 - 14 0.00306 - 21 0.15 - 22 0.00459 - 26 0.0352 - 28 0.0703 - 29 0.226 - 30 0.052 - 31 0.0138 - 32 0.0291 - 33 0.081 - 41 0.00306 - 45 0.00612 - - 42 39 13 0 - 0 0.103 - 4 0.0256 - 7 0.0769 - 12 0.103 - 21 0.154 - 26 0.0256 - 28 0.128 - 29 0.154 - 30 0.0513 - 31 0.0513 - 32 0.0513 - 33 0.0256 - 41 0.0513 - - 46 38 9 0 - 0 0.132 - 12 0.0789 - 21 0.105 - 28 0.105 - 29 0.289 - 30 0.0263 - 31 0.0526 - 33 0.158 - 45 0.0526 - - 47 1 1 0 - 4 1 - - 55 4 4 0 - 8 0.25 - 21 0.25 - 29 0.25 - 30 0.25 - - 57 2 2 0 - 3 0.5 - 7 0.5 - - 58 5 5 0 - 12 0.2 - 21 0.2 - 28 0.2 - 30 0.2 - 45 0.2 - - 69 2736 26 0 - 0 0.144 - 1 0.00256 - 3 0.00585 - 4 0.00585 - 7 0.00877 - 8 0.0139 - 9 0.00219 - 12 0.0574 - 13 0.00768 - 14 0.00439 - 15 0.00183 - 20 0.00219 - 21 0.0793 - 22 0.0011 - 23 0.000365 - 26 0.0274 - 28 0.182 - 29 0.186 - 30 0.0826 - 31 0.057 - 32 0.0376 - 33 0.0727 - 39 0.00219 - 41 0.00987 - 42 0.000731 - 45 0.00365 - - 4 42 14 2 - 0 0.0238 - 4 0.0238 - 6 0.0238 - 7 0.143 - 8 0.0952 - 13 0.0238 - 16 0.0238 - 21 0.0952 - 28 0.0952 - 29 0.0952 - 30 0.0952 - 31 0.214 - 32 0.0238 - 45 0.0238 - - 0 34 12 0 - 0 0.0294 - 4 0.0294 - 6 0.0294 - 7 0.118 - 8 0.118 - 13 0.0294 - 16 0.0294 - 21 0.0882 - 29 0.118 - 30 0.118 - 31 0.265 - 45 0.0294 - - 12 4 2 0 - 28 0.75 - 32 0.25 - - 7 36 11 4 - 4 0.139 - 7 0.0556 - 8 0.0833 - 13 0.0278 - 14 0.0278 - 19 0.0278 - 20 0.0278 - 26 0.472 - 28 0.0556 - 37 0.0278 - 41 0.0556 - - 29 2 2 0 - 8 0.5 - 13 0.5 - - 30 3 3 0 - 4 0.333 - 7 0.333 - 41 0.333 - - 47 23 5 0 - 4 0.13 - 8 0.087 - 14 0.0435 - 19 0.0435 - 26 0.696 - - 69 3 2 0 - 28 0.667 - 37 0.333 - - 8 152 17 2 - 2 0.0329 - 3 0.0132 - 4 0.0329 - 7 0.395 - 8 0.0329 - 13 0.0658 - 14 0.0724 - 15 0.0197 - 20 0.0197 - 21 0.0395 - 22 0.00658 - 24 0.0132 - 26 0.0855 - 32 0.00658 - 40 0.125 - 41 0.0263 - 46 0.0132 - - 45 2 1 0 - 46 1 - - 49 22 7 0 - 4 0.0455 - 7 0.5 - 14 0.0455 - 21 0.0455 - 26 0.0909 - 40 0.227 - 41 0.0455 - - 12 9666 21 2 - 0 0.291 - 2 0.000724 - 4 0.000828 - 7 0.00197 - 12 0.000207 - 13 0.00031 - 21 0.171 - 22 0.00124 - 23 0.000207 - 26 0.00331 - 28 0.517 - 29 0.000621 - 31 0.000517 - 32 0.000103 - 40 0.00207 - 41 0.00331 - 42 0.000724 - 43 0.000103 - 44 0.000207 - 45 0.00455 - 46 0.000207 - - 41 4 1 0 - 0 1 - - 44 1 1 0 - 43 1 - - 13 297 26 2 - 0 0.0101 - 2 0.0168 - 3 0.0135 - 4 0.0976 - 7 0.256 - 8 0.0168 - 9 0.00337 - 12 0.0101 - 13 0.0404 - 14 0.111 - 15 0.0202 - 19 0.00673 - 20 0.0101 - 21 0.0438 - 22 0.00337 - 24 0.0707 - 26 0.0606 - 29 0.00337 - 30 0.0135 - 31 0.00337 - 39 0.00337 - 40 0.0707 - 41 0.0909 - 42 0.0135 - 45 0.00337 - 46 0.00673 - - 2 3 3 0 - 7 0.333 - 13 0.333 - 46 0.333 - - 45 1 1 0 - 46 1 - - 14 122 18 0 - 2 0.0164 - 4 0.082 - 7 0.197 - 8 0.0328 - 13 0.0246 - 14 0.082 - 15 0.0164 - 19 0.0082 - 21 0.0246 - 24 0.041 - 26 0.246 - 30 0.0246 - 31 0.0082 - 32 0.0082 - 34 0.0082 - 37 0.0164 - 40 0.0984 - 41 0.0656 - - 15 35 10 0 - 4 0.114 - 7 0.143 - 15 0.514 - 19 0.0286 - 21 0.0286 - 24 0.0286 - 26 0.0286 - 32 0.0286 - 42 0.0286 - 46 0.0571 - - 18 27 10 0 - 3 0.037 - 7 0.185 - 8 0.296 - 9 0.148 - 13 0.0741 - 14 0.0741 - 15 0.037 - 20 0.0741 - 37 0.037 - 45 0.037 - - 21 4005 31 12 - 0 0.146 - 1 0.0035 - 2 0.00025 - 3 0.0015 - 4 0.0442 - 7 0.0215 - 8 0.0662 - 9 0.00025 - 12 0.000749 - 13 0.0115 - 14 0.00175 - 15 0.00125 - 20 0.00225 - 21 0.0969 - 24 0.000499 - 26 0.00449 - 28 0.405 - 29 0.0135 - 30 0.04 - 31 0.118 - 32 0.000749 - 33 0.000749 - 35 0.000749 - 37 0.000749 - 40 0.00874 - 41 0.00524 - 42 0.00125 - 43 0.00025 - 45 0.002 - 46 0.00025 - 47 0.00025 - - 0 2915 27 0 - 0 0.0803 - 1 0.0048 - 2 0.000343 - 3 0.00172 - 4 0.0583 - 7 0.0274 - 8 0.0864 - 9 0.000343 - 13 0.0141 - 14 0.0024 - 15 0.00172 - 20 0.00309 - 21 0.113 - 24 0.000343 - 26 0.0024 - 28 0.352 - 29 0.0151 - 30 0.0528 - 31 0.162 - 32 0.000343 - 35 0.00103 - 37 0.00103 - 40 0.0103 - 41 0.00515 - 42 0.00137 - 43 0.000343 - 45 0.00172 - - 2 30 12 0 - 0 0.0333 - 4 0.0333 - 8 0.0333 - 12 0.1 - 21 0.0667 - 28 0.267 - 29 0.2 - 30 0.0667 - 31 0.0333 - 32 0.0333 - 33 0.0667 - 41 0.0667 - - 12 987 12 0 - 0 0.347 - 3 0.00101 - 4 0.00101 - 7 0.00304 - 21 0.0466 - 26 0.00101 - 28 0.588 - 40 0.00405 - 41 0.00405 - 42 0.00101 - 45 0.00304 - 46 0.00101 - - 21 3 2 0 - 8 0.667 - 28 0.333 - - 28 1 1 0 - 47 1 - - 32 7 6 0 - 4 0.143 - 13 0.286 - 26 0.143 - 29 0.143 - 30 0.143 - 40 0.143 - - 33 1 1 0 - 13 1 - - 41 20 9 0 - 0 0.05 - 7 0.05 - 13 0.05 - 21 0.15 - 26 0.2 - 28 0.25 - 29 0.15 - 30 0.05 - 33 0.05 - - 42 1 1 0 - 32 1 - - 45 4 2 0 - 8 0.5 - 21 0.5 - - 47 12 7 0 - 0 0.0833 - 4 0.167 - 7 0.0833 - 8 0.0833 - 13 0.0833 - 21 0.0833 - 26 0.417 - - 49 21 8 0 - 0 0.143 - 4 0.0952 - 7 0.0476 - 8 0.333 - 21 0.19 - 24 0.0476 - 30 0.0952 - 31 0.0476 - - 22 5 3 0 - 26 0.2 - 41 0.6 - 42 0.2 - - 25 2 1 0 - 6 1 - - 26 13048 19 0 - 0 0.112 - 1 7.66e-05 - 4 0.000307 - 7 0.000153 - 8 0.000613 - 13 0.0036 - 15 0.000153 - 21 0.0082 - 22 0.00107 - 28 0.867 - 29 0.00023 - 30 0.000153 - 31 0.000153 - 40 0.000996 - 41 0.000536 - 42 7.66e-05 - 44 0.000153 - 45 0.00429 - 46 0.000153 - - 28 20867 44 10 - 0 0.00192 - 1 0.000335 - 2 0.00441 - 3 0.0235 - 4 0.245 - 5 0.000671 - 6 9.58e-05 - 7 0.129 - 8 0.073 - 9 0.0104 - 10 0.000767 - 12 0.000575 - 13 0.0718 - 14 0.0604 - 15 0.0381 - 16 0.000575 - 17 0.00163 - 18 0.000192 - 19 0.0453 - 20 0.054 - 21 0.0454 - 22 0.00407 - 23 9.58e-05 - 24 0.0409 - 26 0.0441 - 27 0.000144 - 28 0.00565 - 30 0.0123 - 31 0.00398 - 33 4.79e-05 - 34 0.000863 - 35 0.0046 - 36 4.79e-05 - 37 0.00666 - 38 0.000144 - 39 0.0102 - 40 0.0288 - 41 0.0185 - 42 0.00259 - 43 0.000192 - 44 0.0012 - 45 0.00474 - 46 0.00264 - 47 0.000144 - - 2 142 19 0 - 3 0.0211 - 4 0.296 - 7 0.0493 - 8 0.0915 - 13 0.0704 - 14 0.12 - 15 0.0282 - 16 0.00704 - 19 0.0563 - 20 0.0423 - 21 0.0211 - 31 0.00704 - 35 0.00704 - 37 0.00704 - 40 0.0634 - 41 0.0704 - 42 0.0211 - 44 0.00704 - 45 0.0141 - - 13 3 2 0 - 4 0.667 - 46 0.333 - - 21 8 7 0 - 4 0.25 - 8 0.125 - 13 0.125 - 19 0.125 - 21 0.125 - 41 0.125 - 42 0.125 - - 42 5 3 0 - 4 0.6 - 14 0.2 - 24 0.2 - - 44 1 1 0 - 43 1 - - 45 34 10 0 - 2 0.0294 - 4 0.0882 - 7 0.0294 - 13 0.0294 - 17 0.0294 - 21 0.118 - 24 0.0294 - 35 0.0294 - 40 0.0294 - 46 0.588 - - 47 20444 44 0 - 0 0.00196 - 1 0.000342 - 2 0.0044 - 3 0.0238 - 4 0.243 - 5 0.000685 - 6 9.78e-05 - 7 0.131 - 8 0.0732 - 9 0.0105 - 10 0.000783 - 12 0.000587 - 13 0.072 - 14 0.0602 - 15 0.038 - 16 0.000538 - 17 0.00161 - 18 0.000196 - 19 0.0453 - 20 0.0539 - 21 0.0458 - 22 0.00406 - 23 9.78e-05 - 24 0.0412 - 26 0.0446 - 27 9.78e-05 - 28 0.00577 - 30 0.0125 - 31 0.00401 - 33 4.89e-05 - 34 0.00088 - 35 0.00445 - 36 4.89e-05 - 37 0.00675 - 38 0.000147 - 39 0.0103 - 40 0.0288 - 41 0.018 - 42 0.00235 - 43 0.000147 - 44 0.00113 - 45 0.0047 - 46 0.00157 - 47 0.000147 - - 49 216 24 0 - 2 0.00463 - 4 0.352 - 7 0.0694 - 8 0.0602 - 9 0.00463 - 13 0.0556 - 14 0.0509 - 15 0.0741 - 19 0.0463 - 20 0.088 - 21 0.0185 - 22 0.00926 - 24 0.0417 - 26 0.0417 - 27 0.00463 - 30 0.00926 - 35 0.0139 - 39 0.00463 - 40 0.00463 - 41 0.0185 - 42 0.00926 - 44 0.00463 - 45 0.00463 - 46 0.00926 - - 50 3 3 0 - 4 0.333 - 40 0.333 - 41 0.333 - - 57 3 3 0 - 3 0.333 - 4 0.333 - 8 0.333 - - 29 21672 44 8 - 0 0.00198 - 1 9.23e-05 - 2 0.0024 - 3 0.0832 - 4 0.195 - 5 0.00157 - 6 4.61e-05 - 7 0.138 - 8 0.0454 - 9 0.00655 - 10 0.00111 - 12 0.000554 - 13 0.0358 - 14 0.0287 - 15 0.0713 - 16 0.000138 - 17 0.000738 - 19 0.0812 - 20 0.0351 - 21 0.0391 - 22 0.00401 - 23 0.000231 - 24 0.0213 - 26 0.072 - 27 0.000138 - 28 0.00263 - 29 0.000277 - 30 0.00992 - 31 0.00291 - 32 4.61e-05 - 33 0.000231 - 34 0.000185 - 35 0.000738 - 37 0.00175 - 38 0.000138 - 39 0.0162 - 40 0.0611 - 41 0.0302 - 42 0.00392 - 43 0.000138 - 44 0.000138 - 45 0.00383 - 46 0.000461 - 47 4.61e-05 - - 2 33 13 0 - 3 0.0606 - 4 0.273 - 7 0.152 - 8 0.0909 - 13 0.0303 - 14 0.0303 - 19 0.0606 - 20 0.0606 - 24 0.0303 - 40 0.0303 - 41 0.121 - 42 0.0303 - 45 0.0303 - - 41 6 6 0 - 4 0.167 - 14 0.167 - 20 0.167 - 26 0.167 - 28 0.167 - 42 0.167 - - 44 1 1 0 - 43 1 - - 45 14 7 0 - 4 0.214 - 7 0.143 - 14 0.0714 - 19 0.0714 - 21 0.0714 - 27 0.0714 - 46 0.357 - - 47 21324 44 0 - 0 0.00202 - 1 9.38e-05 - 2 0.00234 - 3 0.0843 - 4 0.193 - 5 0.00159 - 6 4.69e-05 - 7 0.138 - 8 0.0455 - 9 0.00642 - 10 0.00113 - 12 0.000563 - 13 0.0356 - 14 0.0286 - 15 0.0715 - 16 0.000141 - 17 0.00075 - 19 0.0818 - 20 0.0347 - 21 0.039 - 22 0.00394 - 23 0.000234 - 24 0.0213 - 26 0.0718 - 27 9.38e-05 - 28 0.00263 - 29 0.000281 - 30 0.00994 - 31 0.00281 - 32 4.69e-05 - 33 0.000234 - 34 0.000141 - 35 0.000703 - 37 0.00169 - 38 0.000141 - 39 0.0164 - 40 0.0618 - 41 0.0303 - 42 0.00389 - 43 9.38e-05 - 44 0.000141 - 45 0.00385 - 46 0.000141 - 47 4.69e-05 - - 49 281 24 0 - 2 0.00712 - 3 0.0178 - 4 0.267 - 7 0.142 - 8 0.0356 - 9 0.0142 - 13 0.0463 - 14 0.0285 - 15 0.0783 - 19 0.0356 - 20 0.0498 - 21 0.0498 - 22 0.0107 - 24 0.0249 - 26 0.103 - 30 0.0107 - 31 0.0107 - 34 0.00356 - 35 0.00356 - 37 0.00712 - 39 0.00712 - 40 0.0214 - 41 0.0178 - 46 0.00712 - - 55 5 4 0 - 7 0.2 - 13 0.2 - 19 0.4 - 20 0.2 - - 57 7 5 0 - 4 0.429 - 9 0.143 - 14 0.143 - 19 0.143 - 20 0.143 - - 30 11209 39 4 - 0 0.00241 - 2 0.00419 - 3 0.0186 - 4 0.22 - 5 0.000357 - 7 0.173 - 8 0.078 - 9 0.0106 - 10 0.000892 - 12 0.000178 - 13 0.0741 - 14 0.0694 - 15 0.0376 - 16 0.000714 - 17 0.00143 - 19 0.0317 - 20 0.0388 - 21 0.0465 - 22 0.00607 - 23 8.92e-05 - 24 0.0352 - 26 0.0869 - 27 0.000268 - 28 0.00116 - 29 0.000357 - 30 0.00473 - 31 0.00419 - 32 8.92e-05 - 34 0.000268 - 35 0.00294 - 37 0.00205 - 39 0.00714 - 40 0.0168 - 41 0.0121 - 42 0.00223 - 43 0.000268 - 44 0.000446 - 45 0.00598 - 46 0.00223 - - 2 63 12 0 - 4 0.238 - 7 0.127 - 8 0.111 - 13 0.111 - 14 0.206 - 15 0.0317 - 19 0.0159 - 20 0.0635 - 21 0.0159 - 40 0.0317 - 41 0.0317 - 42 0.0159 - - 21 12 9 0 - 3 0.0833 - 4 0.167 - 7 0.25 - 14 0.0833 - 20 0.0833 - 26 0.0833 - 35 0.0833 - 37 0.0833 - 40 0.0833 - - 45 15 4 0 - 4 0.133 - 7 0.0667 - 14 0.0667 - 46 0.733 - - 49 214 24 0 - 2 0.00935 - 3 0.0187 - 4 0.28 - 7 0.136 - 8 0.0888 - 9 0.00467 - 13 0.0561 - 14 0.0654 - 15 0.0467 - 19 0.0234 - 20 0.0514 - 21 0.0374 - 24 0.0327 - 26 0.0794 - 27 0.00467 - 31 0.00935 - 35 0.00467 - 37 0.00935 - 39 0.00935 - 40 0.00935 - 41 0.00935 - 42 0.00467 - 45 0.00467 - 46 0.00467 - - 31 15551 42 7 - 0 0.00386 - 1 0.000129 - 2 0.0102 - 3 0.0112 - 4 0.0743 - 5 0.000129 - 7 0.434 - 8 0.0333 - 9 0.0027 - 10 0.000257 - 12 0.00122 - 13 0.0231 - 14 0.0143 - 15 0.0274 - 16 0.000129 - 17 0.000836 - 19 0.0116 - 20 0.0116 - 21 0.0532 - 22 0.00373 - 23 0.000257 - 24 0.0271 - 26 0.132 - 28 0.000836 - 29 0.000965 - 30 0.00514 - 31 0.00174 - 32 0.000643 - 33 0.000322 - 34 0.000322 - 35 0.000707 - 37 0.00257 - 38 6.43e-05 - 39 0.00367 - 40 0.0578 - 41 0.037 - 42 0.00424 - 43 0.00103 - 44 0.000386 - 45 0.00482 - 46 0.00167 - 47 0.000193 - - 2 72 17 0 - 4 0.0694 - 7 0.417 - 9 0.0139 - 14 0.0278 - 17 0.0139 - 19 0.0139 - 20 0.0139 - 21 0.0417 - 26 0.0278 - 29 0.0139 - 30 0.0278 - 39 0.0139 - 40 0.153 - 41 0.0972 - 42 0.0139 - 43 0.0139 - 46 0.0278 - - 21 9 4 0 - 0 0.111 - 7 0.667 - 12 0.111 - 47 0.111 - - 41 2 2 0 - 2 0.5 - 40 0.5 - - 45 13 6 0 - 7 0.231 - 8 0.0769 - 17 0.0769 - 21 0.0769 - 24 0.0769 - 46 0.462 - - 47 14860 42 0 - 0 0.0035 - 1 0.000135 - 2 0.00976 - 3 0.0116 - 4 0.0758 - 5 0.000135 - 7 0.43 - 8 0.0338 - 9 0.00276 - 10 0.000269 - 12 0.00108 - 13 0.0238 - 14 0.0147 - 15 0.028 - 16 0.000135 - 17 0.00074 - 19 0.0118 - 20 0.0114 - 21 0.0543 - 22 0.00384 - 23 0.000269 - 24 0.0281 - 26 0.134 - 28 0.000875 - 29 0.000875 - 30 0.00518 - 31 0.00182 - 32 0.000673 - 33 0.000336 - 34 0.000336 - 35 0.00074 - 37 0.00262 - 38 6.73e-05 - 39 0.00377 - 40 0.0559 - 41 0.0355 - 42 0.00397 - 43 0.000875 - 44 0.000404 - 45 0.00491 - 46 0.00101 - 47 0.000135 - - 49 583 25 0 - 0 0.012 - 2 0.0223 - 3 0.00172 - 4 0.0429 - 7 0.52 - 8 0.024 - 12 0.00343 - 13 0.0103 - 14 0.00515 - 15 0.0172 - 19 0.00515 - 20 0.0172 - 21 0.0274 - 22 0.00172 - 24 0.00686 - 26 0.0909 - 29 0.00172 - 30 0.00172 - 37 0.00172 - 40 0.0961 - 41 0.0686 - 42 0.0103 - 43 0.00343 - 45 0.00343 - 46 0.00515 - - 55 6 2 0 - 7 0.833 - 40 0.167 - - 32 5375 43 3 - 0 0.00651 - 1 0.000186 - 2 0.00335 - 3 0.0134 - 4 0.192 - 5 0.00447 - 6 0.000186 - 7 0.169 - 8 0.0662 - 9 0.0108 - 10 0.00093 - 12 0.00372 - 13 0.0506 - 14 0.0545 - 15 0.0344 - 16 0.000186 - 17 0.00093 - 19 0.0768 - 20 0.0218 - 21 0.0508 - 22 0.00409 - 23 0.000558 - 24 0.0203 - 26 0.0941 - 28 0.0026 - 29 0.000372 - 30 0.0104 - 31 0.00391 - 32 0.000186 - 33 0.000558 - 34 0.000558 - 35 0.00447 - 36 0.000186 - 37 0.00521 - 39 0.00428 - 40 0.0383 - 41 0.0387 - 42 0.00521 - 43 0.000558 - 44 0.000558 - 45 0.00316 - 46 0.000744 - 47 0.000186 - - 2 34 10 0 - 3 0.0294 - 4 0.0882 - 7 0.235 - 8 0.176 - 13 0.0588 - 14 0.206 - 20 0.0294 - 21 0.0294 - 40 0.0882 - 41 0.0588 - - 45 4 3 0 - 4 0.25 - 24 0.25 - 46 0.5 - - 49 79 19 0 - 3 0.0127 - 4 0.19 - 7 0.19 - 8 0.114 - 9 0.0127 - 12 0.0127 - 13 0.0886 - 14 0.0506 - 19 0.0506 - 20 0.0253 - 21 0.0253 - 24 0.0253 - 26 0.0759 - 30 0.0127 - 37 0.0127 - 40 0.0506 - 41 0.0253 - 42 0.0127 - 43 0.0127 - - 33 9565 42 3 - 0 0.0024 - 1 0.000209 - 2 0.00157 - 3 0.0238 - 4 0.181 - 5 0.00136 - 6 0.000105 - 7 0.141 - 8 0.0558 - 9 0.00659 - 10 0.00115 - 12 0.00178 - 13 0.0474 - 14 0.0311 - 15 0.124 - 16 0.000627 - 17 0.000732 - 19 0.0499 - 20 0.0226 - 21 0.0374 - 22 0.00355 - 23 0.000314 - 24 0.0154 - 26 0.0935 - 28 0.00178 - 29 0.000314 - 30 0.00711 - 31 0.0045 - 32 0.000209 - 34 0.000418 - 35 0.00157 - 37 0.0046 - 38 0.000105 - 39 0.0046 - 40 0.0667 - 41 0.0484 - 42 0.00815 - 43 0.000209 - 44 0.000418 - 45 0.00742 - 46 0.000209 - 47 0.000105 - - 2 37 10 0 - 4 0.243 - 7 0.135 - 8 0.162 - 9 0.027 - 12 0.027 - 13 0.135 - 14 0.135 - 15 0.027 - 21 0.027 - 40 0.0811 - - 45 8 7 0 - 7 0.125 - 8 0.125 - 13 0.125 - 21 0.125 - 24 0.125 - 26 0.25 - 46 0.125 - - 49 142 21 0 - 0 0.00704 - 3 0.0141 - 4 0.324 - 7 0.12 - 8 0.0634 - 10 0.00704 - 13 0.0634 - 14 0.00704 - 15 0.0352 - 17 0.0141 - 19 0.0845 - 20 0.0634 - 21 0.0211 - 24 0.0493 - 26 0.0423 - 30 0.0141 - 39 0.00704 - 40 0.0211 - 41 0.00704 - 42 0.0141 - 45 0.0211 - - 40 18 4 0 - 27 0.0556 - 43 0.0556 - 46 0.333 - 47 0.556 - - 41 6243 35 21 - 0 0.00416 - 1 0.0024 - 2 0.113 - 3 0.00432 - 4 0.0271 - 6 0.000641 - 7 0.276 - 8 0.0128 - 9 0.000481 - 10 0.000481 - 12 0.00176 - 13 0.00449 - 14 0.00384 - 15 0.00144 - 16 0.00016 - 19 0.00256 - 20 0.00176 - 21 0.149 - 22 0.00032 - 24 0.00016 - 26 0.0284 - 27 0.000961 - 28 0.0123 - 29 0.0111 - 30 0.222 - 31 0.0368 - 32 0.00352 - 33 0.00352 - 34 0.0103 - 35 0.00128 - 37 0.00657 - 39 0.000481 - 44 0.00016 - 45 0.0365 - 46 0.0189 - - 0 65 14 0 - 0 0.0154 - 4 0.0154 - 7 0.415 - 13 0.0462 - 15 0.0154 - 16 0.0154 - 19 0.0923 - 21 0.185 - 26 0.0154 - 27 0.0308 - 28 0.0154 - 30 0.0154 - 37 0.0615 - 45 0.0615 - - 2 14 4 0 - 4 0.0714 - 7 0.5 - 21 0.357 - 26 0.0714 - - 12 12 3 0 - 3 0.0833 - 7 0.75 - 21 0.167 - - 13 4 4 0 - 7 0.25 - 27 0.25 - 30 0.25 - 46 0.25 - - 28 63 13 0 - 2 0.0159 - 4 0.0159 - 6 0.0159 - 7 0.286 - 8 0.0476 - 12 0.0159 - 13 0.0159 - 14 0.0317 - 21 0.206 - 28 0.0159 - 30 0.0952 - 31 0.0159 - 45 0.222 - - 29 225 14 0 - 0 0.00444 - 7 0.107 - 13 0.00444 - 14 0.00444 - 15 0.00444 - 19 0.00444 - 20 0.00444 - 21 0.12 - 22 0.00444 - 26 0.0133 - 30 0.249 - 31 0.00444 - 45 0.471 - 46 0.00444 - - 30 30 5 0 - 2 0.0667 - 7 0.433 - 21 0.133 - 30 0.0333 - 45 0.333 - - 31 73 10 0 - 4 0.0274 - 7 0.411 - 8 0.0137 - 12 0.0137 - 14 0.0274 - 21 0.233 - 26 0.0137 - 30 0.205 - 31 0.0274 - 45 0.0274 - - 32 25 9 0 - 4 0.08 - 7 0.2 - 8 0.04 - 15 0.04 - 20 0.04 - 21 0.28 - 30 0.12 - 37 0.04 - 45 0.16 - - 33 92 8 0 - 7 0.152 - 14 0.0217 - 19 0.0109 - 21 0.0978 - 27 0.0109 - 28 0.0217 - 30 0.185 - 45 0.5 - - 48 218 13 0 - 1 0.00459 - 2 0.00459 - 3 0.00459 - 4 0.00917 - 7 0.44 - 8 0.0183 - 15 0.00459 - 21 0.234 - 26 0.00917 - 30 0.202 - 31 0.0275 - 45 0.00459 - 46 0.0367 - - 49 387 22 0 - 0 0.00258 - 1 0.00258 - 2 0.0155 - 3 0.00258 - 4 0.0284 - 7 0.488 - 8 0.0233 - 13 0.00775 - 14 0.00775 - 15 0.00258 - 19 0.00517 - 20 0.00258 - 21 0.106 - 26 0.0362 - 28 0.00775 - 30 0.178 - 31 0.0155 - 34 0.0129 - 35 0.00775 - 37 0.0129 - 45 0.0233 - 46 0.0103 - - 52 8 5 0 - 4 0.125 - 8 0.375 - 13 0.125 - 37 0.125 - 39 0.25 - - 55 1378 26 0 - 1 0.00145 - 2 0.0116 - 3 0.00508 - 4 0.0152 - 6 0.000726 - 7 0.319 - 8 0.00871 - 10 0.00145 - 12 0.000726 - 13 0.00218 - 14 0.0029 - 19 0.00145 - 20 0.000726 - 21 0.166 - 26 0.0689 - 27 0.00145 - 28 0.00145 - 29 0.000726 - 30 0.296 - 31 0.0537 - 33 0.000726 - 34 0.00581 - 35 0.00145 - 37 0.00871 - 45 0.00943 - 46 0.0145 - - 57 1875 30 0 - 0 0.00373 - 1 0.00427 - 2 0.0101 - 3 0.00427 - 4 0.0331 - 6 0.00107 - 7 0.341 - 8 0.0197 - 9 0.000533 - 10 0.000533 - 12 0.00107 - 13 0.00427 - 14 0.00267 - 15 0.00213 - 19 0.0016 - 20 0.00213 - 21 0.202 - 24 0.000533 - 26 0.0235 - 28 0.00267 - 29 0.0016 - 30 0.25 - 31 0.0485 - 32 0.00107 - 34 0.00853 - 35 0.00107 - 37 0.008 - 39 0.000533 - 45 0.00693 - 46 0.0133 - - 58 6 5 0 - 4 0.167 - 7 0.333 - 21 0.167 - 31 0.167 - 45 0.167 - - 59 16 8 0 - 2 0.0625 - 7 0.25 - 8 0.0625 - 13 0.0625 - 21 0.312 - 28 0.0625 - 30 0.125 - 46 0.0625 - - 62 353 19 0 - 0 0.00283 - 2 0.0113 - 3 0.00283 - 4 0.0085 - 7 0.34 - 8 0.0142 - 13 0.00283 - 14 0.00283 - 21 0.122 - 26 0.00567 - 29 0.00567 - 30 0.354 - 31 0.0567 - 34 0.00567 - 35 0.00283 - 37 0.0085 - 44 0.00283 - 45 0.00283 - 46 0.0482 - - 64 171 17 0 - 0 0.0117 - 1 0.00585 - 2 0.0234 - 4 0.0175 - 7 0.327 - 12 0.0117 - 13 0.00585 - 19 0.00585 - 21 0.117 - 26 0.0175 - 28 0.00585 - 29 0.00585 - 30 0.351 - 31 0.0234 - 34 0.0117 - 45 0.0117 - 46 0.0468 - - 68 7 6 0 - 7 0.143 - 21 0.143 - 26 0.143 - 30 0.286 - 45 0.143 - 46 0.143 - - 69 1214 24 0 - 0 0.0107 - 1 0.00165 - 2 0.537 - 3 0.00659 - 4 0.0478 - 7 0.0231 - 8 0.00329 - 9 0.00165 - 12 0.00329 - 13 0.00412 - 14 0.00329 - 20 0.00247 - 21 0.0527 - 22 0.000824 - 26 0.00824 - 28 0.0502 - 29 0.0511 - 30 0.0865 - 31 0.0198 - 32 0.0165 - 33 0.0173 - 34 0.0255 - 45 0.000824 - 46 0.0255 - - 42 485 30 16 - 0 0.00412 - 2 0.0866 - 3 0.0103 - 4 0.136 - 6 0.00206 - 7 0.144 - 8 0.0124 - 9 0.00206 - 11 0.00206 - 12 0.0103 - 13 0.0165 - 14 0.0124 - 15 0.0206 - 19 0.0103 - 21 0.101 - 22 0.00206 - 23 0.00206 - 26 0.00825 - 28 0.0103 - 29 0.00206 - 30 0.0474 - 31 0.0165 - 33 0.00412 - 34 0.00619 - 35 0.00619 - 37 0.00619 - 39 0.00206 - 42 0.00619 - 44 0.00206 - 45 0.307 - - 0 14 10 0 - 0 0.0714 - 2 0.0714 - 4 0.0714 - 7 0.143 - 15 0.143 - 28 0.143 - 30 0.0714 - 35 0.0714 - 42 0.0714 - 45 0.143 - - 12 2 2 0 - 0 0.5 - 11 0.5 - - 28 9 8 0 - 4 0.111 - 13 0.111 - 14 0.111 - 23 0.111 - 26 0.111 - 35 0.111 - 37 0.111 - 45 0.222 - - 29 63 4 0 - 3 0.0159 - 4 0.0317 - 7 0.0159 - 45 0.937 - - 30 12 3 0 - 4 0.0833 - 7 0.0833 - 45 0.833 - - 32 7 4 0 - 4 0.286 - 7 0.286 - 15 0.143 - 42 0.286 - - 33 49 4 0 - 3 0.0204 - 4 0.0204 - 14 0.0204 - 45 0.939 - - 42 3 2 0 - 4 0.333 - 13 0.667 - - 46 2 2 0 - 7 0.5 - 31 0.5 - - 48 16 7 0 - 4 0.125 - 7 0.25 - 21 0.25 - 26 0.0625 - 30 0.188 - 44 0.0625 - 45 0.0625 - - 49 20 8 0 - 4 0.05 - 7 0.3 - 8 0.1 - 12 0.05 - 13 0.05 - 21 0.25 - 37 0.05 - 45 0.15 - - 55 64 10 0 - 4 0.125 - 7 0.328 - 12 0.0156 - 13 0.0156 - 19 0.0312 - 21 0.25 - 28 0.0156 - 30 0.0938 - 35 0.0156 - 45 0.109 - - 57 82 17 0 - 3 0.0122 - 4 0.171 - 6 0.0122 - 7 0.232 - 8 0.0366 - 9 0.0122 - 12 0.0122 - 13 0.0122 - 14 0.0244 - 15 0.061 - 19 0.0122 - 21 0.146 - 26 0.0244 - 30 0.0366 - 31 0.0122 - 39 0.0122 - 45 0.171 - - 62 14 7 0 - 2 0.0714 - 3 0.0714 - 7 0.357 - 15 0.0714 - 19 0.0714 - 21 0.214 - 30 0.143 - - 64 16 7 0 - 4 0.25 - 7 0.25 - 8 0.0625 - 13 0.0625 - 19 0.0625 - 30 0.25 - 45 0.0625 - - 69 99 17 0 - 2 0.394 - 3 0.0101 - 4 0.242 - 7 0.0202 - 12 0.0202 - 13 0.0101 - 14 0.0202 - 21 0.0808 - 22 0.0101 - 28 0.0202 - 29 0.0101 - 30 0.0303 - 31 0.0505 - 33 0.0202 - 34 0.0303 - 37 0.0101 - 45 0.0202 - - 43 36 15 4 - 0 0.0278 - 2 0.0556 - 4 0.0556 - 7 0.167 - 12 0.0278 - 13 0.0278 - 19 0.0278 - 21 0.139 - 26 0.0556 - 28 0.0278 - 30 0.0278 - 31 0.0556 - 40 0.139 - 41 0.139 - 42 0.0278 - - 0 4 3 0 - 21 0.25 - 30 0.25 - 31 0.5 - - 28 2 2 0 - 13 0.5 - 19 0.5 - - 55 13 7 0 - 2 0.154 - 7 0.231 - 12 0.0769 - 21 0.308 - 26 0.0769 - 40 0.0769 - 41 0.0769 - - 57 9 5 0 - 7 0.222 - 26 0.111 - 40 0.222 - 41 0.333 - 42 0.111 - - 44 27 12 2 - 4 0.111 - 7 0.296 - 8 0.0741 - 13 0.111 - 14 0.037 - 15 0.148 - 26 0.037 - 28 0.037 - 31 0.037 - 34 0.037 - 37 0.037 - 45 0.037 - - 28 8 5 0 - 4 0.125 - 7 0.125 - 8 0.25 - 13 0.25 - 15 0.25 - - 55 5 3 0 - 7 0.6 - 13 0.2 - 26 0.2 - - 45 947 30 20 - 0 0.0169 - 1 0.00106 - 2 0.00211 - 3 0.00845 - 4 0.147 - 5 0.0116 - 6 0.00528 - 7 0.0993 - 8 0.119 - 9 0.00739 - 12 0.00845 - 13 0.0401 - 14 0.0201 - 15 0.0264 - 16 0.00211 - 17 0.00106 - 19 0.141 - 20 0.00422 - 21 0.116 - 22 0.00422 - 26 0.0211 - 27 0.0116 - 28 0.0919 - 29 0.00317 - 30 0.0348 - 31 0.0275 - 34 0.00211 - 35 0.0095 - 37 0.0127 - 42 0.00317 - - 0 241 18 0 - 1 0.00415 - 3 0.0083 - 4 0.149 - 7 0.0664 - 8 0.249 - 9 0.0083 - 12 0.00415 - 13 0.0207 - 14 0.0124 - 15 0.0124 - 21 0.224 - 22 0.0083 - 26 0.0124 - 28 0.0124 - 29 0.00415 - 30 0.104 - 31 0.0954 - 37 0.00415 - - 1 4 3 0 - 7 0.5 - 21 0.25 - 31 0.25 - - 2 14 4 0 - 0 0.286 - 12 0.357 - 28 0.214 - 29 0.143 - - 12 33 4 0 - 0 0.0909 - 21 0.0909 - 28 0.788 - 37 0.0303 - - 21 4 3 0 - 21 0.25 - 28 0.5 - 30 0.25 - - 26 33 2 0 - 21 0.0303 - 28 0.97 - - 28 57 16 0 - 3 0.0351 - 4 0.246 - 7 0.0351 - 8 0.228 - 9 0.0351 - 13 0.123 - 14 0.0351 - 15 0.0351 - 19 0.0175 - 20 0.0175 - 21 0.105 - 22 0.0175 - 26 0.0175 - 28 0.0175 - 30 0.0175 - 35 0.0175 - - 29 48 16 0 - 0 0.0208 - 4 0.25 - 5 0.0208 - 6 0.0417 - 7 0.104 - 8 0.125 - 13 0.0625 - 14 0.0208 - 15 0.0833 - 19 0.0417 - 21 0.0833 - 26 0.0417 - 28 0.0417 - 30 0.0208 - 34 0.0208 - 37 0.0208 - - 30 36 11 0 - 4 0.278 - 7 0.0278 - 8 0.194 - 9 0.0278 - 13 0.111 - 14 0.0278 - 15 0.0833 - 17 0.0278 - 21 0.167 - 26 0.0278 - 28 0.0278 - - 31 23 10 0 - 3 0.0435 - 4 0.13 - 6 0.087 - 7 0.087 - 8 0.087 - 13 0.0435 - 14 0.13 - 15 0.0435 - 21 0.304 - 28 0.0435 - - 32 12 7 0 - 4 0.0833 - 7 0.0833 - 8 0.333 - 13 0.0833 - 15 0.167 - 28 0.167 - 30 0.0833 - - 33 30 13 0 - 3 0.0667 - 4 0.167 - 5 0.0333 - 7 0.133 - 8 0.2 - 9 0.0333 - 13 0.0667 - 14 0.0667 - 15 0.0333 - 19 0.1 - 21 0.0333 - 22 0.0333 - 30 0.0333 - - 41 196 20 0 - 0 0.0306 - 2 0.0102 - 4 0.128 - 5 0.0153 - 7 0.0765 - 8 0.0255 - 13 0.0408 - 14 0.0102 - 15 0.0153 - 16 0.0051 - 19 0.398 - 20 0.0102 - 21 0.0714 - 27 0.0357 - 28 0.0459 - 30 0.0051 - 31 0.0051 - 35 0.0357 - 37 0.0255 - 42 0.0102 - - 42 126 18 0 - 4 0.183 - 5 0.0476 - 7 0.0714 - 8 0.0397 - 12 0.0159 - 13 0.0397 - 14 0.0238 - 15 0.0317 - 16 0.00794 - 19 0.381 - 20 0.00794 - 21 0.0397 - 27 0.0317 - 28 0.0317 - 34 0.00794 - 35 0.00794 - 37 0.0238 - 42 0.00794 - - 48 2 2 0 - 7 0.5 - 26 0.5 - - 49 13 9 0 - 0 0.0769 - 4 0.231 - 7 0.0769 - 8 0.154 - 21 0.154 - 28 0.0769 - 30 0.0769 - 31 0.0769 - 37 0.0769 - - 55 39 9 0 - 3 0.0256 - 4 0.103 - 7 0.487 - 8 0.0256 - 9 0.0256 - 13 0.0256 - 14 0.0256 - 21 0.0769 - 26 0.205 - - 57 18 7 0 - 4 0.111 - 7 0.556 - 8 0.0556 - 19 0.0556 - 21 0.0556 - 26 0.111 - 30 0.0556 - - 58 10 5 0 - 0 0.1 - 4 0.1 - 7 0.5 - 21 0.1 - 26 0.2 - - 59 8 7 0 - 6 0.125 - 7 0.125 - 8 0.125 - 13 0.125 - 14 0.125 - 15 0.25 - 19 0.125 - - 46 498 27 21 - 0 0.01 - 2 0.151 - 3 0.00402 - 4 0.0723 - 7 0.398 - 8 0.0161 - 12 0.00201 - 13 0.0161 - 14 0.01 - 15 0.0321 - 19 0.0141 - 20 0.00602 - 21 0.0221 - 26 0.0683 - 28 0.00402 - 29 0.00803 - 30 0.0743 - 31 0.00201 - 33 0.00602 - 35 0.00402 - 37 0.0201 - 40 0.00201 - 41 0.00201 - 42 0.0141 - 44 0.012 - 46 0.0141 - 47 0.0161 - - 13 2 2 0 - 8 0.5 - 15 0.5 - - 26 1 1 0 - 28 1 - - 28 48 12 0 - 3 0.0208 - 4 0.354 - 7 0.229 - 8 0.0625 - 13 0.0417 - 14 0.0417 - 15 0.0833 - 19 0.0417 - 20 0.0417 - 35 0.0208 - 37 0.0417 - 44 0.0208 - - 29 9 6 0 - 4 0.222 - 7 0.111 - 13 0.111 - 21 0.111 - 26 0.222 - 30 0.222 - - 30 21 7 0 - 3 0.0476 - 4 0.333 - 7 0.19 - 13 0.0476 - 14 0.0476 - 15 0.286 - 20 0.0476 - - 31 21 8 0 - 4 0.0952 - 7 0.429 - 13 0.0476 - 14 0.0476 - 15 0.0476 - 19 0.0476 - 26 0.238 - 37 0.0476 - - 40 5 2 0 - 46 0.2 - 47 0.8 - - 41 118 15 0 - 0 0.0169 - 2 0.246 - 4 0.0254 - 7 0.237 - 8 0.00847 - 13 0.00847 - 15 0.00847 - 19 0.0169 - 21 0.0593 - 26 0.0169 - 29 0.0254 - 30 0.28 - 31 0.00847 - 33 0.0254 - 46 0.0169 - - 48 39 7 0 - 0 0.0256 - 2 0.308 - 7 0.487 - 8 0.0256 - 26 0.0513 - 37 0.0513 - 44 0.0513 - - 49 34 11 0 - 0 0.0294 - 2 0.0294 - 4 0.0588 - 7 0.529 - 13 0.0294 - 26 0.176 - 28 0.0294 - 30 0.0294 - 35 0.0294 - 37 0.0294 - 42 0.0294 - - 51 1 1 0 - 44 1 - - 52 2 2 0 - 2 0.5 - 37 0.5 - - 55 98 11 0 - 0 0.0102 - 2 0.0918 - 7 0.724 - 12 0.0102 - 19 0.0102 - 26 0.0816 - 29 0.0102 - 30 0.0102 - 41 0.0102 - 42 0.0306 - 44 0.0102 - - 57 31 9 0 - 2 0.129 - 4 0.0323 - 7 0.516 - 8 0.0323 - 13 0.0323 - 21 0.0323 - 26 0.129 - 37 0.0645 - 40 0.0323 - - 59 13 5 0 - 4 0.0769 - 7 0.462 - 15 0.154 - 21 0.0769 - 26 0.231 - - 62 11 7 0 - 2 0.0909 - 7 0.364 - 26 0.0909 - 42 0.0909 - 44 0.0909 - 46 0.182 - 47 0.0909 - - 64 5 2 0 - 7 0.8 - 8 0.2 - - 65 6 4 0 - 2 0.167 - 15 0.167 - 46 0.333 - 47 0.333 - - 66 2 2 0 - 37 0.5 - 42 0.5 - - 67 3 3 0 - 4 0.333 - 19 0.333 - 47 0.333 - - 69 22 4 0 - 2 0.773 - 7 0.136 - 21 0.0455 - 42 0.0455 - - 47 145999 39 35 - 0 0.0116 - 1 6.85e-06 - 2 0.0386 - 3 0.000603 - 4 0.0028 - 5 6.16e-05 - 7 0.0116 - 8 0.000671 - 9 2.05e-05 - 12 0.00449 - 13 0.000678 - 14 0.000404 - 15 0.0104 - 16 6.85e-06 - 17 6.85e-06 - 19 0.000808 - 20 0.000178 - 21 0.00211 - 22 0.000137 - 25 6.85e-06 - 26 0.0016 - 28 0.000164 - 29 0.00262 - 30 0.000384 - 31 0.000349 - 32 0.00107 - 33 0.00145 - 34 0.000288 - 35 4.11e-05 - 37 0.000623 - 39 2.05e-05 - 40 0.691 - 41 0.188 - 42 0.0209 - 43 0.00159 - 44 0.000692 - 45 0.000336 - 46 0.00192 - 47 0.00216 - - 0 598 28 0 - 0 0.0485 - 1 0.00167 - 2 0.0318 - 3 0.0167 - 4 0.164 - 7 0.0518 - 8 0.0234 - 9 0.00502 - 12 0.00334 - 13 0.0284 - 14 0.0301 - 15 0.0853 - 19 0.00669 - 20 0.00836 - 21 0.0167 - 26 0.01 - 30 0.00502 - 31 0.00167 - 34 0.00167 - 35 0.00167 - 37 0.00836 - 39 0.00167 - 40 0.232 - 41 0.176 - 42 0.0301 - 43 0.00167 - 45 0.00334 - 46 0.00502 - - 2 1 1 0 - 30 1 - - 7 2 2 0 - 13 0.5 - 41 0.5 - - 8 34 7 0 - 2 0.147 - 7 0.118 - 20 0.0294 - 21 0.0294 - 32 0.0294 - 40 0.559 - 41 0.0882 - - 12 59 11 0 - 0 0.0508 - 2 0.0508 - 4 0.0169 - 7 0.0508 - 13 0.0169 - 21 0.0339 - 26 0.0339 - 40 0.339 - 41 0.288 - 42 0.0847 - 46 0.0339 - - 13 57 9 0 - 0 0.0351 - 2 0.0877 - 7 0.0351 - 12 0.0351 - 26 0.0175 - 30 0.0175 - 40 0.368 - 41 0.368 - 42 0.0351 - - 15 4 2 0 - 15 0.5 - 46 0.5 - - 21 60 9 0 - 0 0.0167 - 8 0.0167 - 21 0.0167 - 28 0.0333 - 40 0.583 - 41 0.233 - 42 0.0667 - 46 0.0167 - 47 0.0167 - - 22 3 1 0 - 41 1 - - 26 26 8 0 - 0 0.0385 - 7 0.0769 - 21 0.0385 - 28 0.0385 - 40 0.5 - 41 0.231 - 42 0.0385 - 46 0.0385 - - 28 1249 28 0 - 0 0.028 - 2 0.0697 - 4 0.00961 - 5 0.000801 - 7 0.0641 - 8 0.0032 - 12 0.00881 - 13 0.0056 - 15 0.0016 - 17 0.000801 - 19 0.004 - 20 0.0016 - 21 0.00881 - 26 0.004 - 30 0.000801 - 31 0.000801 - 33 0.000801 - 34 0.000801 - 37 0.0048 - 39 0.000801 - 40 0.481 - 41 0.254 - 42 0.0336 - 43 0.0016 - 44 0.0016 - 45 0.000801 - 46 0.0056 - 47 0.0024 - - 29 2544 28 0 - 0 0.00825 - 2 0.0197 - 3 0.0157 - 4 0.0204 - 7 0.00432 - 8 0.000786 - 12 0.000393 - 13 0.00314 - 14 0.000786 - 15 0.219 - 16 0.000393 - 19 0.000786 - 20 0.000786 - 21 0.00118 - 26 0.00118 - 28 0.000393 - 29 0.00197 - 30 0.000393 - 31 0.000786 - 32 0.000393 - 33 0.00118 - 40 0.521 - 41 0.167 - 42 0.00825 - 43 0.000786 - 45 0.000393 - 46 0.000393 - 47 0.000393 - - 30 440 24 0 - 0 0.0591 - 2 0.0977 - 3 0.00227 - 4 0.00227 - 7 0.0659 - 8 0.00909 - 12 0.00455 - 13 0.0114 - 14 0.00682 - 15 0.00227 - 19 0.00227 - 20 0.00227 - 21 0.00909 - 22 0.00227 - 26 0.00227 - 28 0.00227 - 32 0.00227 - 37 0.00227 - 40 0.427 - 41 0.239 - 42 0.0273 - 43 0.00682 - 44 0.00455 - 46 0.00909 - - 31 1808 30 0 - 0 0.0321 - 2 0.0857 - 3 0.000553 - 4 0.00332 - 7 0.0243 - 8 0.00111 - 12 0.0083 - 13 0.000553 - 14 0.000553 - 15 0.00111 - 19 0.00111 - 20 0.000553 - 21 0.00387 - 22 0.000553 - 26 0.00332 - 29 0.0083 - 30 0.000553 - 31 0.000553 - 32 0.00553 - 33 0.00277 - 35 0.000553 - 37 0.00221 - 40 0.497 - 41 0.269 - 42 0.0321 - 43 0.0083 - 44 0.00111 - 45 0.000553 - 46 0.00277 - 47 0.00166 - - 32 490 22 0 - 0 0.0286 - 2 0.0347 - 4 0.0184 - 7 0.0163 - 8 0.00612 - 12 0.0184 - 13 0.00408 - 14 0.0184 - 15 0.00204 - 19 0.00408 - 21 0.00816 - 26 0.00204 - 29 0.00204 - 32 0.00204 - 35 0.00204 - 40 0.42 - 41 0.361 - 42 0.0347 - 43 0.00612 - 44 0.00408 - 46 0.00408 - 47 0.00204 - - 33 2098 25 0 - 0 0.00763 - 2 0.0062 - 3 0.0114 - 4 0.0472 - 7 0.00477 - 8 0.00477 - 12 0.00191 - 13 0.0124 - 15 0.404 - 19 0.000477 - 20 0.00286 - 21 0.000477 - 26 0.000477 - 29 0.000477 - 30 0.000477 - 31 0.000477 - 32 0.000477 - 40 0.304 - 41 0.173 - 42 0.0129 - 43 0.000953 - 44 0.000953 - 45 0.000477 - 46 0.000477 - 47 0.000477 - - 40 11 2 0 - 46 0.0909 - 47 0.909 - - 41 55 17 0 - 0 0.0727 - 2 0.364 - 4 0.109 - 7 0.0545 - 8 0.0182 - 12 0.109 - 13 0.0182 - 14 0.0364 - 15 0.0182 - 19 0.0364 - 21 0.0364 - 29 0.0182 - 30 0.0182 - 31 0.0182 - 32 0.0182 - 37 0.0364 - 45 0.0182 - - 42 5 4 0 - 4 0.2 - 12 0.2 - 19 0.4 - 31 0.2 - - 43 14 5 0 - 2 0.143 - 12 0.0714 - 40 0.357 - 41 0.357 - 42 0.0714 - - 46 81 16 0 - 0 0.037 - 2 0.42 - 4 0.0247 - 7 0.0864 - 12 0.0123 - 15 0.0247 - 19 0.0494 - 21 0.0123 - 29 0.037 - 33 0.0247 - 40 0.0123 - 41 0.0123 - 42 0.0494 - 44 0.0123 - 46 0.0864 - 47 0.0988 - - 48 4185 23 0 - 0 0.0098 - 2 0.0437 - 5 0.000239 - 7 0.00621 - 8 0.000239 - 12 0.00119 - 19 0.00143 - 20 0.000239 - 21 0.000717 - 26 0.000717 - 29 0.000717 - 30 0.000717 - 32 0.000239 - 33 0.000478 - 34 0.000478 - 40 0.651 - 41 0.249 - 42 0.0284 - 43 0.000956 - 44 0.000478 - 45 0.000239 - 46 0.00143 - 47 0.00143 - - 49 3148 26 0 - 0 0.0156 - 2 0.0594 - 3 0.000318 - 4 0.000635 - 7 0.0133 - 8 0.000318 - 12 0.00762 - 13 0.000318 - 15 0.000318 - 19 0.000953 - 21 0.00254 - 26 0.00159 - 28 0.000318 - 29 0.00349 - 30 0.000635 - 32 0.00127 - 33 0.00222 - 34 0.000318 - 37 0.000635 - 40 0.619 - 41 0.234 - 42 0.027 - 43 0.00286 - 45 0.000318 - 46 0.00191 - 47 0.00222 - - 51 49 5 0 - 40 0.735 - 41 0.102 - 42 0.0204 - 43 0.0408 - 47 0.102 - - 55 29370 35 0 - 0 0.0136 - 2 0.0618 - 3 0.00017 - 4 0.00109 - 5 3.4e-05 - 7 0.0157 - 8 0.000613 - 12 0.00582 - 13 0.000204 - 14 0.000136 - 15 0.000477 - 19 0.000783 - 20 6.81e-05 - 21 0.00289 - 22 0.000238 - 25 3.4e-05 - 26 0.00221 - 28 0.000272 - 29 0.00371 - 30 0.000272 - 31 0.000477 - 32 0.00112 - 33 0.00197 - 34 0.000409 - 35 3.4e-05 - 37 0.000783 - 39 3.4e-05 - 40 0.65 - 41 0.205 - 42 0.0224 - 43 0.0018 - 44 0.000647 - 45 0.000409 - 46 0.00211 - 47 0.00218 - - 57 28760 33 0 - 0 0.0139 - 2 0.0438 - 3 6.95e-05 - 4 0.00104 - 5 6.95e-05 - 7 0.00883 - 8 0.000556 - 12 0.00619 - 13 0.000417 - 14 0.000104 - 15 0.000313 - 19 0.000626 - 20 0.000104 - 21 0.00209 - 22 0.000139 - 26 0.00205 - 28 0.000209 - 29 0.00466 - 30 0.000522 - 31 0.000591 - 32 0.00191 - 33 0.00209 - 34 0.000487 - 35 3.48e-05 - 37 0.000313 - 40 0.684 - 41 0.195 - 42 0.0239 - 43 0.00212 - 44 0.00101 - 45 0.000382 - 46 0.00125 - 47 0.00174 - - 58 125 18 0 - 0 0.04 - 2 0.112 - 4 0.016 - 7 0.008 - 12 0.032 - 15 0.04 - 19 0.04 - 20 0.008 - 21 0.008 - 26 0.008 - 29 0.016 - 33 0.008 - 35 0.008 - 40 0.512 - 41 0.112 - 42 0.016 - 45 0.008 - 47 0.008 - - 59 392 14 0 - 0 0.0102 - 2 0.0969 - 4 0.00765 - 7 0.0255 - 8 0.00255 - 12 0.00255 - 21 0.0051 - 26 0.0051 - 40 0.51 - 41 0.291 - 42 0.0332 - 43 0.0051 - 46 0.00255 - 47 0.00255 - - 62 12424 28 0 - 0 0.00789 - 2 0.0249 - 3 8.05e-05 - 4 0.000644 - 7 0.00539 - 8 0.000241 - 12 0.0037 - 13 8.05e-05 - 14 0.000402 - 15 8.05e-05 - 19 0.000644 - 21 0.00145 - 26 0.000644 - 29 0.00129 - 30 0.000241 - 31 8.05e-05 - 32 0.000805 - 33 0.00121 - 34 0.000402 - 37 0.000322 - 40 0.761 - 41 0.163 - 42 0.0182 - 43 0.000563 - 44 0.000724 - 45 0.000402 - 46 0.0025 - 47 0.00266 - - 64 13381 22 0 - 0 0.00239 - 2 0.0106 - 4 7.47e-05 - 5 7.47e-05 - 7 0.000374 - 8 7.47e-05 - 12 0.00105 - 13 7.47e-05 - 15 7.47e-05 - 19 0.000374 - 21 7.47e-05 - 29 0.000299 - 32 0.000149 - 33 0.000224 - 34 7.47e-05 - 40 0.86 - 41 0.106 - 42 0.0132 - 43 0.000972 - 44 0.000224 - 46 0.000972 - 47 0.00277 - - 65 17 2 0 - 40 0.765 - 47 0.235 - - 67 12 4 0 - 40 0.5 - 42 0.0833 - 46 0.25 - 47 0.167 - - 68 148 8 0 - 0 0.0135 - 2 0.00676 - 4 0.00676 - 31 0.00676 - 40 0.73 - 41 0.189 - 42 0.0405 - 46 0.00676 - - 69 44302 32 0 - 0 0.0102 - 2 0.0279 - 3 6.77e-05 - 4 0.000971 - 5 6.77e-05 - 7 0.0133 - 8 0.000361 - 12 0.00354 - 13 0.000203 - 14 0.000271 - 15 0.000406 - 19 0.000564 - 20 2.26e-05 - 21 0.00185 - 22 0.000158 - 26 0.00144 - 28 9.03e-05 - 29 0.00174 - 30 0.000339 - 31 0.000226 - 32 0.00079 - 33 0.00124 - 34 0.000113 - 37 0.00079 - 40 0.719 - 41 0.189 - 42 0.0194 - 43 0.0012 - 44 0.000632 - 45 0.000248 - 46 0.00192 - 47 0.00156 - - 74 15 3 0 - 40 0.4 - 41 0.0667 - 47 0.533 - - 48 5913 33 15 - 0 0.00727 - 2 0.0313 - 3 0.00101 - 4 0.00643 - 5 0.000169 - 7 0.163 - 8 0.00372 - 12 0.00101 - 13 0.00558 - 14 0.000338 - 15 0.00169 - 17 0.000507 - 19 0.00152 - 20 0.000169 - 21 0.0167 - 22 0.000507 - 26 0.0338 - 29 0.000507 - 30 0.00355 - 31 0.0022 - 32 0.000169 - 33 0.000338 - 34 0.00101 - 35 0.000676 - 37 0.00693 - 40 0.461 - 41 0.214 - 42 0.0237 - 43 0.000676 - 44 0.00152 - 45 0.000507 - 46 0.00761 - 47 0.00101 - - 0 4156 30 0 - 0 0.00794 - 2 0.0337 - 3 0.000722 - 4 0.00553 - 5 0.000241 - 7 0.149 - 8 0.00217 - 12 0.0012 - 13 0.00674 - 14 0.000241 - 15 0.000962 - 17 0.000481 - 19 0.00144 - 21 0.0156 - 26 0.038 - 29 0.000722 - 30 0.00337 - 31 0.00265 - 33 0.000481 - 34 0.0012 - 35 0.000481 - 37 0.00577 - 40 0.474 - 41 0.217 - 42 0.0231 - 43 0.000722 - 44 0.00192 - 45 0.000481 - 46 0.00217 - 47 0.00144 - - 1 36 8 0 - 0 0.0278 - 7 0.194 - 19 0.0278 - 21 0.0278 - 40 0.333 - 41 0.306 - 42 0.0556 - 46 0.0278 - - 21 356 17 0 - 0 0.00562 - 2 0.0169 - 4 0.00281 - 7 0.152 - 8 0.00281 - 19 0.00281 - 21 0.014 - 26 0.014 - 30 0.00281 - 32 0.00281 - 34 0.00281 - 35 0.00281 - 37 0.0225 - 40 0.458 - 41 0.256 - 42 0.0365 - 46 0.00562 - - 28 251 17 0 - 0 0.012 - 2 0.0239 - 4 0.0199 - 7 0.243 - 8 0.0199 - 12 0.00398 - 14 0.00398 - 15 0.00398 - 20 0.00398 - 21 0.0239 - 26 0.0438 - 30 0.00398 - 40 0.394 - 41 0.175 - 42 0.0159 - 43 0.00398 - 45 0.00398 - - 29 218 16 0 - 0 0.00459 - 2 0.0275 - 3 0.00917 - 4 0.0275 - 7 0.284 - 8 0.0229 - 13 0.00917 - 15 0.0138 - 21 0.0275 - 22 0.0138 - 26 0.0275 - 30 0.00917 - 37 0.0138 - 40 0.362 - 41 0.138 - 42 0.00917 - - 30 87 10 0 - 0 0.0115 - 2 0.0345 - 4 0.0115 - 7 0.184 - 15 0.0115 - 17 0.0115 - 21 0.0345 - 26 0.0115 - 40 0.517 - 41 0.172 - - 31 99 12 0 - 2 0.0202 - 4 0.0101 - 7 0.343 - 15 0.0101 - 21 0.0202 - 26 0.0303 - 30 0.0101 - 37 0.0101 - 40 0.374 - 41 0.141 - 42 0.0202 - 44 0.0101 - - 32 99 9 0 - 2 0.0303 - 4 0.0101 - 7 0.172 - 13 0.0101 - 26 0.0101 - 37 0.0101 - 40 0.475 - 41 0.253 - 42 0.0303 - - 33 166 10 0 - 2 0.0301 - 7 0.0904 - 13 0.00602 - 21 0.0361 - 26 0.0241 - 31 0.00602 - 37 0.00602 - 40 0.53 - 41 0.235 - 42 0.0361 - - 41 43 6 0 - 7 0.0698 - 21 0.0233 - 30 0.0233 - 40 0.651 - 41 0.186 - 42 0.0465 - - 45 96 7 0 - 2 0.0104 - 7 0.0312 - 30 0.0104 - 31 0.0104 - 40 0.354 - 41 0.25 - 46 0.333 - - 47 37 1 0 - 7 1 - - 49 232 14 0 - 0 0.00431 - 2 0.0517 - 7 0.142 - 8 0.00862 - 13 0.00431 - 19 0.00431 - 21 0.0172 - 26 0.0474 - 35 0.00431 - 37 0.0129 - 40 0.418 - 41 0.25 - 42 0.0302 - 46 0.00431 - - 59 3 3 0 - 3 0.333 - 40 0.333 - 42 0.333 - - 69 2 2 0 - 0 0.5 - 40 0.5 - - 49 8591 38 29 - 0 0.047 - 1 0.00291 - 2 0.0221 - 3 0.00466 - 4 0.0363 - 7 0.185 - 8 0.0282 - 9 0.00163 - 10 0.000116 - 12 0.00326 - 13 0.00873 - 14 0.00384 - 15 0.00349 - 17 0.000116 - 19 0.00105 - 20 0.00186 - 21 0.0312 - 22 0.00233 - 24 0.000466 - 26 0.0481 - 28 0.0638 - 29 0.00349 - 30 0.0345 - 31 0.076 - 32 0.000931 - 33 0.00128 - 34 0.000233 - 35 0.00151 - 37 0.00442 - 39 0.000698 - 40 0.227 - 41 0.132 - 42 0.0128 - 43 0.00105 - 44 0.000698 - 45 0.0021 - 46 0.00466 - 47 0.000815 - - 0 2149 33 0 - 0 0.0558 - 1 0.0116 - 2 0.00558 - 3 0.00651 - 4 0.0879 - 7 0.102 - 8 0.0814 - 9 0.00605 - 12 0.000465 - 13 0.0172 - 14 0.00745 - 15 0.00465 - 17 0.000465 - 20 0.000465 - 21 0.053 - 22 0.00279 - 24 0.0014 - 26 0.0219 - 28 0.00279 - 29 0.000465 - 30 0.117 - 31 0.276 - 32 0.000465 - 33 0.000465 - 35 0.00372 - 37 0.00233 - 39 0.000931 - 40 0.0749 - 41 0.0433 - 42 0.00465 - 45 0.00558 - 46 0.000465 - 47 0.000465 - - 1 9 3 0 - 0 0.111 - 31 0.778 - 47 0.111 - - 2 61 13 0 - 0 0.115 - 7 0.0328 - 8 0.0164 - 12 0.0492 - 21 0.0164 - 26 0.0656 - 28 0.18 - 29 0.213 - 30 0.0984 - 31 0.082 - 32 0.0492 - 33 0.0656 - 45 0.0164 - - 8 4 2 0 - 7 0.75 - 41 0.25 - - 12 581 7 0 - 0 0.31 - 21 0.0172 - 22 0.00172 - 28 0.664 - 29 0.00172 - 32 0.00172 - 41 0.00344 - - 13 14 7 0 - 7 0.357 - 14 0.143 - 26 0.143 - 30 0.0714 - 37 0.0714 - 40 0.143 - 41 0.0714 - - 21 224 16 0 - 0 0.196 - 3 0.00446 - 4 0.0491 - 7 0.0268 - 8 0.0714 - 13 0.0179 - 20 0.00446 - 21 0.0179 - 26 0.0179 - 28 0.366 - 30 0.0402 - 31 0.156 - 40 0.00893 - 41 0.00893 - 42 0.00893 - 46 0.00446 - - 26 59 4 0 - 0 0.0169 - 21 0.0169 - 28 0.932 - 45 0.0339 - - 28 735 26 0 - 0 0.00544 - 2 0.0667 - 3 0.00272 - 4 0.0517 - 7 0.291 - 8 0.015 - 12 0.00136 - 13 0.0068 - 14 0.00816 - 15 0.00544 - 20 0.0068 - 21 0.0381 - 22 0.00408 - 26 0.0803 - 29 0.00136 - 30 0.00952 - 31 0.00136 - 35 0.00408 - 37 0.0109 - 39 0.00272 - 40 0.215 - 41 0.144 - 42 0.00952 - 44 0.00136 - 46 0.015 - 47 0.00136 - - 29 723 27 0 - 0 0.00138 - 2 0.0277 - 3 0.0166 - 4 0.0194 - 7 0.383 - 8 0.0194 - 9 0.00138 - 12 0.00138 - 13 0.0138 - 14 0.00553 - 15 0.0152 - 19 0.00692 - 20 0.00692 - 21 0.0332 - 22 0.00277 - 26 0.116 - 30 0.00553 - 31 0.00138 - 32 0.00138 - 37 0.00415 - 40 0.169 - 41 0.129 - 42 0.0111 - 43 0.00138 - 44 0.00138 - 45 0.00138 - 46 0.00415 - - 30 476 29 0 - 0 0.0168 - 2 0.0147 - 3 0.0063 - 4 0.0315 - 7 0.332 - 8 0.0105 - 10 0.0021 - 12 0.0126 - 13 0.0126 - 14 0.0105 - 15 0.0021 - 20 0.0021 - 21 0.0441 - 22 0.0021 - 26 0.105 - 28 0.0021 - 29 0.0021 - 30 0.0084 - 31 0.0021 - 33 0.0084 - 34 0.0021 - 35 0.0021 - 37 0.0063 - 39 0.0042 - 40 0.197 - 41 0.139 - 42 0.0126 - 43 0.0042 - 46 0.0042 - - 31 679 25 0 - 0 0.0103 - 2 0.0353 - 3 0.00736 - 4 0.0177 - 7 0.384 - 8 0.00884 - 12 0.0103 - 13 0.00295 - 15 0.00147 - 19 0.00295 - 20 0.00147 - 21 0.0177 - 26 0.0854 - 29 0.0118 - 30 0.00442 - 35 0.00147 - 37 0.00295 - 40 0.225 - 41 0.137 - 42 0.0206 - 43 0.00147 - 44 0.00442 - 45 0.00147 - 46 0.00147 - 47 0.00147 - - 32 203 15 0 - 0 0.0197 - 2 0.0542 - 4 0.0345 - 7 0.31 - 8 0.00985 - 13 0.0148 - 21 0.0394 - 22 0.00493 - 26 0.0788 - 31 0.00493 - 32 0.00493 - 37 0.00493 - 40 0.241 - 41 0.163 - 42 0.0148 - - 33 209 19 0 - 2 0.0287 - 3 0.00957 - 4 0.0383 - 7 0.297 - 8 0.0239 - 13 0.00478 - 19 0.00478 - 20 0.00478 - 21 0.0383 - 22 0.00478 - 26 0.0718 - 34 0.00478 - 37 0.00957 - 40 0.254 - 41 0.167 - 42 0.0191 - 43 0.00478 - 46 0.00478 - 47 0.00957 - - 41 627 13 0 - 0 0.00159 - 2 0.00159 - 7 0.0223 - 20 0.00159 - 21 0.00159 - 26 0.00319 - 29 0.00638 - 30 0.00797 - 31 0.00159 - 40 0.619 - 41 0.313 - 42 0.0191 - 47 0.00159 - - 42 15 6 0 - 7 0.0667 - 26 0.0667 - 40 0.667 - 41 0.0667 - 42 0.0667 - 43 0.0667 - - 43 4 3 0 - 2 0.25 - 7 0.25 - 40 0.5 - - 45 38 7 0 - 7 0.105 - 21 0.105 - 28 0.0526 - 31 0.105 - 40 0.237 - 41 0.0789 - 46 0.316 - - 46 6 2 0 - 40 0.333 - 41 0.667 - - 47 19 5 0 - 2 0.0526 - 7 0.421 - 26 0.0526 - 40 0.263 - 41 0.211 - - 48 81 9 0 - 0 0.0123 - 2 0.0123 - 7 0.173 - 13 0.0123 - 15 0.0247 - 26 0.037 - 40 0.444 - 41 0.247 - 42 0.037 - - 49 150 16 0 - 0 0.0133 - 2 0.0133 - 4 0.02 - 7 0.147 - 8 0.0133 - 13 0.00667 - 21 0.02 - 22 0.0133 - 26 0.0533 - 28 0.0333 - 30 0.02 - 31 0.02 - 40 0.327 - 41 0.267 - 42 0.0133 - 46 0.02 - - 55 1082 27 0 - 0 0.012 - 2 0.0407 - 3 0.000924 - 4 0.0129 - 7 0.174 - 8 0.00277 - 12 0.00555 - 13 0.0037 - 15 0.000924 - 19 0.000924 - 21 0.0213 - 22 0.00185 - 24 0.000924 - 26 0.0434 - 29 0.000924 - 30 0.00277 - 31 0.000924 - 32 0.000924 - 33 0.000924 - 37 0.00555 - 40 0.418 - 41 0.216 - 42 0.0259 - 43 0.00185 - 44 0.000924 - 45 0.000924 - 46 0.00277 - - 57 294 15 0 - 0 0.034 - 2 0.0272 - 7 0.119 - 8 0.0034 - 12 0.0102 - 13 0.0034 - 21 0.0068 - 26 0.0136 - 33 0.0034 - 37 0.0102 - 40 0.497 - 41 0.248 - 42 0.0136 - 43 0.0034 - 46 0.0068 - - 59 95 10 0 - 2 0.0211 - 4 0.0105 - 7 0.242 - 21 0.0316 - 22 0.0105 - 26 0.0737 - 37 0.0316 - 40 0.326 - 41 0.221 - 42 0.0316 - - 62 38 6 0 - 7 0.158 - 21 0.0263 - 26 0.0263 - 40 0.5 - 41 0.237 - 42 0.0526 - - 64 6 3 0 - 2 0.167 - 7 0.333 - 40 0.5 - - 68 1 1 0 - 42 1 - - 69 3 3 0 - 37 0.333 - 40 0.333 - 41 0.333 - - 50 39 9 0 - 0 0.0513 - 1 0.0513 - 13 0.0256 - 21 0.103 - 26 0.0769 - 28 0.256 - 29 0.0513 - 30 0.308 - 31 0.0769 - - 51 53 8 1 - 26 0.0189 - 40 0.679 - 41 0.113 - 42 0.0189 - 43 0.0377 - 44 0.0189 - 46 0.0189 - 47 0.0943 - - 28 8 4 0 - 40 0.5 - 42 0.125 - 43 0.25 - 47 0.125 - - 52 22 6 1 - 7 0.0455 - 21 0.0455 - 26 0.182 - 40 0.273 - 41 0.364 - 46 0.0909 - - 41 9 2 0 - 40 0.111 - 41 0.889 - - 55 47284 43 31 - 0 0.00854 - 1 2.11e-05 - 2 0.0387 - 3 0.00247 - 4 0.0117 - 5 8.46e-05 - 6 4.23e-05 - 7 0.211 - 8 0.00544 - 9 0.000656 - 10 6.34e-05 - 12 0.00364 - 13 0.00398 - 14 0.000613 - 15 0.00271 - 17 0.000106 - 19 0.0018 - 20 0.000338 - 21 0.0256 - 22 0.00235 - 23 6.34e-05 - 24 0.00343 - 25 2.11e-05 - 26 0.0759 - 28 0.000486 - 29 0.00235 - 30 0.00334 - 31 0.00131 - 32 0.000698 - 33 0.00123 - 34 0.000761 - 35 0.000423 - 37 0.00419 - 38 2.11e-05 - 39 0.000952 - 40 0.404 - 41 0.157 - 42 0.0156 - 43 0.0014 - 44 0.000909 - 45 0.00123 - 46 0.00338 - 47 0.00135 - - 0 6750 33 0 - 0 0.00252 - 2 0.0296 - 3 0.000444 - 4 0.00504 - 7 0.114 - 8 0.00296 - 12 0.000889 - 13 0.00207 - 14 0.000148 - 15 0.000593 - 19 0.00119 - 20 0.000296 - 21 0.0169 - 22 0.000148 - 23 0.000148 - 24 0.000148 - 26 0.0105 - 29 0.000593 - 30 0.00222 - 31 0.00207 - 32 0.000296 - 33 0.000148 - 34 0.00207 - 35 0.00148 - 37 0.00252 - 40 0.549 - 41 0.221 - 42 0.0246 - 43 0.00119 - 44 0.00104 - 45 0.000741 - 46 0.00252 - 47 0.00119 - - 1 94 13 0 - 0 0.0426 - 2 0.0532 - 4 0.0319 - 7 0.117 - 12 0.0106 - 21 0.0213 - 26 0.0213 - 30 0.0426 - 31 0.0213 - 33 0.0213 - 40 0.34 - 41 0.255 - 42 0.0213 - - 2 4 4 0 - 2 0.25 - 4 0.25 - 7 0.25 - 40 0.25 - - 8 38 9 0 - 0 0.0526 - 2 0.0263 - 7 0.211 - 19 0.0526 - 21 0.0526 - 26 0.0263 - 40 0.342 - 41 0.184 - 42 0.0526 - - 12 4 3 0 - 0 0.25 - 26 0.25 - 28 0.5 - - 13 94 10 0 - 0 0.0426 - 2 0.0638 - 7 0.234 - 12 0.0213 - 13 0.0106 - 21 0.0106 - 26 0.0957 - 34 0.0106 - 40 0.362 - 41 0.149 - - 14 29 7 0 - 2 0.0345 - 7 0.448 - 21 0.0345 - 26 0.069 - 30 0.0345 - 40 0.276 - 41 0.103 - - 15 17 7 0 - 7 0.0588 - 26 0.0588 - 40 0.294 - 41 0.294 - 42 0.0588 - 46 0.176 - 47 0.0588 - - 18 17 5 0 - 7 0.0588 - 21 0.176 - 26 0.0588 - 40 0.588 - 41 0.118 - - 21 265 16 0 - 0 0.00377 - 2 0.0226 - 3 0.00377 - 7 0.117 - 19 0.00377 - 21 0.0113 - 26 0.0113 - 28 0.00755 - 31 0.00377 - 35 0.00755 - 40 0.494 - 41 0.245 - 42 0.0566 - 44 0.00377 - 46 0.00377 - 47 0.00377 - - 28 12476 38 0 - 0 0.00697 - 2 0.0437 - 3 0.00176 - 4 0.013 - 7 0.248 - 8 0.00601 - 9 0.0012 - 10 8.02e-05 - 12 0.00353 - 13 0.00449 - 14 0.000721 - 15 0.00208 - 17 8.02e-05 - 19 0.00168 - 20 0.000802 - 21 0.0374 - 22 0.00297 - 23 8.02e-05 - 24 0.00513 - 26 0.0612 - 28 0.000641 - 29 0.00224 - 30 0.00313 - 31 0.00104 - 32 0.000321 - 33 0.00128 - 34 0.000481 - 35 0.000321 - 37 0.00529 - 39 0.0016 - 40 0.389 - 41 0.134 - 42 0.0119 - 43 0.0012 - 44 0.000721 - 45 0.00136 - 46 0.00361 - 47 0.00112 - - 29 8581 37 0 - 0 0.00373 - 2 0.0332 - 3 0.00629 - 4 0.0124 - 5 0.000233 - 7 0.253 - 8 0.0107 - 9 0.000699 - 10 0.000117 - 12 0.00105 - 13 0.00594 - 14 0.000583 - 15 0.00886 - 19 0.00408 - 21 0.0198 - 22 0.00431 - 24 0.00408 - 26 0.19 - 28 0.000583 - 29 0.0021 - 30 0.00501 - 31 0.00163 - 32 0.000233 - 33 0.000233 - 34 0.000117 - 35 0.000117 - 37 0.00373 - 38 0.000117 - 39 0.0021 - 40 0.295 - 41 0.117 - 42 0.00979 - 43 0.000932 - 44 0.000233 - 45 0.00128 - 46 0.000583 - 47 0.000699 - - 30 6281 37 0 - 0 0.0275 - 2 0.0393 - 3 0.00271 - 4 0.0146 - 6 0.000159 - 7 0.217 - 8 0.00494 - 9 0.000478 - 12 0.0126 - 13 0.0035 - 14 0.000955 - 15 0.00191 - 17 0.000318 - 19 0.00127 - 20 0.000318 - 21 0.0318 - 22 0.00223 - 24 0.0043 - 26 0.0715 - 28 0.000159 - 29 0.00462 - 30 0.00239 - 31 0.00127 - 32 0.00223 - 33 0.00478 - 34 0.000955 - 35 0.000159 - 37 0.00478 - 39 0.000159 - 40 0.367 - 41 0.154 - 42 0.0135 - 43 0.000955 - 44 0.00127 - 45 0.00191 - 46 0.00191 - 47 0.000478 - - 31 2695 36 0 - 0 0.00631 - 2 0.0445 - 3 0.00223 - 4 0.0137 - 6 0.000371 - 7 0.277 - 8 0.00334 - 12 0.00186 - 13 0.00445 - 14 0.00148 - 15 0.000742 - 19 0.00148 - 20 0.000371 - 21 0.0249 - 22 0.00223 - 24 0.00223 - 25 0.000371 - 26 0.0716 - 28 0.000742 - 29 0.00519 - 30 0.00334 - 31 0.000742 - 32 0.000742 - 33 0.000371 - 34 0.000371 - 35 0.000371 - 37 0.00297 - 39 0.000742 - 40 0.35 - 41 0.157 - 42 0.0122 - 43 0.00223 - 44 0.000742 - 45 0.00148 - 46 0.00148 - 47 0.000742 - - 32 1863 32 0 - 0 0.00966 - 2 0.0446 - 3 0.00215 - 4 0.0193 - 5 0.000537 - 7 0.188 - 8 0.00376 - 9 0.00161 - 10 0.000537 - 12 0.00429 - 13 0.00429 - 15 0.00107 - 17 0.00107 - 19 0.000537 - 21 0.0327 - 22 0.00376 - 24 0.0059 - 26 0.0505 - 28 0.00107 - 29 0.00107 - 30 0.00322 - 32 0.00322 - 37 0.00751 - 39 0.000537 - 40 0.429 - 41 0.144 - 42 0.0247 - 43 0.000537 - 44 0.00161 - 45 0.00161 - 46 0.00215 - 47 0.00429 - - 33 3326 33 0 - 0 0.00301 - 2 0.0427 - 3 0.0018 - 4 0.018 - 7 0.196 - 8 0.00331 - 9 0.0012 - 12 0.0018 - 13 0.00481 - 14 0.000601 - 15 0.0012 - 19 0.000902 - 20 0.000301 - 21 0.0216 - 22 0.0021 - 23 0.000301 - 24 0.00541 - 26 0.0496 - 29 0.0015 - 30 0.0021 - 31 0.000601 - 33 0.000902 - 34 0.000301 - 37 0.00241 - 39 0.000902 - 40 0.442 - 41 0.164 - 42 0.0213 - 43 0.0015 - 44 0.0012 - 45 0.0012 - 46 0.0012 - 47 0.00361 - - 41 223 9 0 - 0 0.00448 - 2 0.00448 - 3 0.00448 - 30 0.00448 - 40 0.807 - 41 0.139 - 42 0.0269 - 43 0.00448 - 46 0.00448 - - 42 82 6 0 - 7 0.0122 - 13 0.0122 - 40 0.939 - 41 0.0122 - 42 0.0122 - 46 0.0122 - - 44 13 2 0 - 40 0.0769 - 43 0.923 - - 45 212 7 0 - 7 0.0425 - 21 0.00472 - 26 0.00943 - 40 0.448 - 41 0.241 - 42 0.0142 - 46 0.241 - - 46 73 8 0 - 0 0.0274 - 2 0.0137 - 7 0.247 - 21 0.0274 - 37 0.0137 - 40 0.479 - 41 0.178 - 42 0.0137 - - 47 75 7 0 - 7 0.693 - 26 0.213 - 31 0.0133 - 40 0.0267 - 41 0.0267 - 42 0.0133 - 46 0.0133 - - 48 97 10 0 - 0 0.0206 - 2 0.0825 - 4 0.0103 - 7 0.134 - 12 0.0103 - 26 0.0619 - 37 0.0103 - 40 0.433 - 41 0.206 - 42 0.0309 - - 49 604 21 0 - 0 0.00331 - 2 0.0348 - 3 0.00166 - 4 0.00828 - 7 0.118 - 8 0.00331 - 13 0.00331 - 21 0.00993 - 26 0.0281 - 29 0.00166 - 33 0.00166 - 34 0.00331 - 35 0.00166 - 37 0.00166 - 40 0.518 - 41 0.214 - 42 0.0315 - 43 0.00331 - 44 0.00166 - 46 0.00497 - 47 0.00662 - - 55 1276 24 0 - 0 0.00549 - 1 0.000784 - 2 0.0353 - 3 0.000784 - 4 0.00392 - 7 0.143 - 8 0.00157 - 12 0.000784 - 13 0.000784 - 21 0.00862 - 26 0.0533 - 28 0.000784 - 29 0.00313 - 30 0.00784 - 31 0.00157 - 32 0.00157 - 34 0.00235 - 37 0.00705 - 40 0.472 - 41 0.226 - 42 0.0188 - 43 0.000784 - 46 0.00157 - 47 0.00235 - - 57 656 22 0 - 0 0.0107 - 2 0.0366 - 4 0.00457 - 7 0.145 - 8 0.00152 - 12 0.00305 - 14 0.00152 - 15 0.00152 - 19 0.00152 - 26 0.0244 - 29 0.00152 - 30 0.00457 - 31 0.00152 - 32 0.00152 - 33 0.00152 - 34 0.00152 - 37 0.0061 - 40 0.486 - 41 0.248 - 42 0.0122 - 43 0.00152 - 44 0.00305 - - 58 23 4 0 - 7 0.087 - 29 0.0435 - 40 0.696 - 41 0.174 - - 59 1272 26 0 - 0 0.0118 - 2 0.0645 - 3 0.000786 - 4 0.0055 - 5 0.000786 - 7 0.21 - 8 0.0055 - 12 0.00629 - 13 0.00314 - 14 0.000786 - 15 0.000786 - 19 0.000786 - 21 0.0204 - 22 0.00157 - 26 0.0558 - 29 0.00314 - 30 0.00393 - 33 0.000786 - 37 0.00472 - 40 0.411 - 41 0.166 - 42 0.0118 - 44 0.00236 - 45 0.00157 - 46 0.00472 - 47 0.00157 - - 62 57 9 0 - 0 0.0351 - 4 0.0175 - 7 0.175 - 21 0.0175 - 31 0.0175 - 37 0.0175 - 40 0.368 - 41 0.316 - 42 0.0351 - - 69 56 6 0 - 2 0.0536 - 7 0.179 - 26 0.0536 - 40 0.5 - 41 0.196 - 44 0.0179 - - 74 2 2 0 - 31 0.5 - 40 0.5 - - 57 37637 38 30 - 0 0.0109 - 2 0.0336 - 3 0.00109 - 4 0.00717 - 5 5.31e-05 - 7 0.128 - 8 0.00438 - 9 2.66e-05 - 10 0.000106 - 12 0.00476 - 13 0.00404 - 14 0.000372 - 15 0.00215 - 17 2.66e-05 - 19 0.000797 - 20 0.000239 - 21 0.0102 - 22 0.000771 - 23 5.31e-05 - 26 0.0253 - 28 0.000345 - 29 0.00361 - 30 0.00321 - 31 0.00138 - 32 0.00149 - 33 0.00159 - 34 0.000824 - 35 0.000159 - 37 0.00343 - 39 7.97e-05 - 40 0.523 - 41 0.199 - 42 0.0209 - 43 0.00186 - 44 0.00104 - 45 0.000824 - 46 0.00178 - 47 0.00133 - - 0 1140 30 0 - 0 0.0105 - 2 0.0184 - 3 0.00175 - 4 0.0123 - 7 0.113 - 8 0.0114 - 10 0.000877 - 12 0.00351 - 13 0.00614 - 15 0.00175 - 19 0.00175 - 21 0.0281 - 22 0.000877 - 26 0.0211 - 28 0.000877 - 29 0.00175 - 30 0.00439 - 31 0.0123 - 32 0.00175 - 33 0.00351 - 34 0.000877 - 35 0.00175 - 37 0.00614 - 39 0.000877 - 40 0.482 - 41 0.218 - 42 0.0281 - 44 0.00351 - 45 0.00175 - 46 0.000877 - - 8 57 8 0 - 0 0.0175 - 2 0.0702 - 7 0.123 - 29 0.0175 - 37 0.0351 - 40 0.491 - 41 0.228 - 42 0.0175 - - 12 9 4 0 - 0 0.111 - 28 0.333 - 31 0.222 - 40 0.333 - - 13 73 10 0 - 0 0.0137 - 2 0.0548 - 7 0.164 - 8 0.0137 - 26 0.0274 - 29 0.0137 - 33 0.0274 - 40 0.534 - 41 0.137 - 42 0.0137 - - 14 26 7 0 - 0 0.0385 - 2 0.0385 - 7 0.192 - 8 0.0385 - 40 0.5 - 41 0.154 - 42 0.0385 - - 15 6 4 0 - 2 0.167 - 7 0.167 - 40 0.5 - 46 0.167 - - 21 68 10 0 - 0 0.0147 - 4 0.0147 - 7 0.0735 - 21 0.0735 - 28 0.0441 - 32 0.0147 - 40 0.471 - 41 0.221 - 42 0.0588 - 46 0.0147 - - 28 2496 32 0 - 0 0.012 - 2 0.0341 - 3 0.0028 - 4 0.018 - 7 0.156 - 8 0.00401 - 10 0.000401 - 12 0.00361 - 13 0.00561 - 14 0.0016 - 15 0.0028 - 19 0.000801 - 20 0.0016 - 21 0.0148 - 26 0.0268 - 29 0.002 - 30 0.002 - 31 0.000401 - 32 0.0016 - 33 0.0012 - 34 0.000401 - 35 0.000401 - 37 0.00801 - 39 0.000401 - 40 0.508 - 41 0.163 - 42 0.018 - 43 0.000801 - 44 0.0016 - 45 0.002 - 46 0.002 - 47 0.002 - - 29 2493 30 0 - 0 0.00682 - 2 0.0253 - 3 0.00201 - 4 0.014 - 7 0.271 - 8 0.0132 - 10 0.000401 - 12 0.00281 - 13 0.01 - 14 0.0012 - 15 0.00722 - 19 0.00361 - 21 0.016 - 22 0.000802 - 23 0.000401 - 26 0.0401 - 29 0.00321 - 30 0.00361 - 31 0.000401 - 32 0.0012 - 34 0.000401 - 37 0.00441 - 39 0.000401 - 40 0.361 - 41 0.192 - 42 0.0136 - 43 0.000802 - 44 0.0012 - 45 0.0012 - 46 0.0016 - - 30 1791 27 0 - 0 0.029 - 2 0.0374 - 3 0.00112 - 4 0.0207 - 7 0.13 - 8 0.00503 - 12 0.014 - 13 0.00838 - 15 0.00391 - 19 0.00168 - 20 0.000558 - 21 0.0151 - 22 0.00279 - 26 0.0352 - 28 0.000558 - 29 0.00335 - 30 0.00391 - 31 0.00168 - 32 0.00447 - 33 0.00558 - 37 0.00112 - 40 0.419 - 41 0.229 - 42 0.0218 - 44 0.00112 - 46 0.00168 - 47 0.00168 - - 31 7097 32 0 - 0 0.0194 - 2 0.0327 - 3 0.000986 - 4 0.00592 - 7 0.131 - 8 0.00535 - 10 0.000141 - 12 0.0069 - 13 0.0038 - 14 0.000564 - 15 0.00268 - 19 0.000423 - 21 0.00972 - 22 0.00127 - 26 0.034 - 28 0.000423 - 29 0.00986 - 30 0.00211 - 31 0.00211 - 32 0.00352 - 33 0.00352 - 34 0.00141 - 35 0.000282 - 37 0.00211 - 40 0.477 - 41 0.215 - 42 0.0201 - 43 0.00366 - 44 0.00113 - 45 0.000705 - 46 0.00155 - 47 0.00127 - - 32 565 24 0 - 0 0.0159 - 2 0.0425 - 3 0.00177 - 4 0.0106 - 7 0.113 - 8 0.00354 - 12 0.0124 - 13 0.00177 - 14 0.00177 - 15 0.00177 - 19 0.00354 - 21 0.0283 - 23 0.00177 - 26 0.023 - 29 0.00531 - 30 0.00354 - 31 0.00177 - 32 0.00177 - 37 0.00708 - 40 0.487 - 41 0.196 - 42 0.0301 - 43 0.00354 - 46 0.00177 - - 33 905 26 0 - 0 0.00663 - 2 0.0365 - 4 0.0133 - 5 0.0011 - 7 0.105 - 8 0.0011 - 9 0.0011 - 12 0.00552 - 13 0.00442 - 14 0.0011 - 15 0.00221 - 19 0.0011 - 20 0.0011 - 21 0.00884 - 26 0.0177 - 29 0.00221 - 30 0.00442 - 31 0.00331 - 37 0.00552 - 40 0.543 - 41 0.19 - 42 0.032 - 43 0.00331 - 44 0.00221 - 46 0.00331 - 47 0.00442 - - 41 1622 14 0 - 2 0.00185 - 7 0.0333 - 8 0.00123 - 13 0.00185 - 15 0.000617 - 19 0.000617 - 21 0.00185 - 26 0.00308 - 40 0.763 - 41 0.179 - 42 0.00863 - 43 0.000617 - 44 0.000617 - 47 0.00308 - - 42 61 6 0 - 4 0.0328 - 21 0.0164 - 40 0.721 - 41 0.082 - 42 0.131 - 46 0.0164 - - 43 6 4 0 - 0 0.167 - 40 0.5 - 41 0.167 - 42 0.167 - - 44 8 1 0 - 43 1 - - 45 65 9 0 - 7 0.0769 - 21 0.0154 - 26 0.0308 - 29 0.0154 - 31 0.0154 - 40 0.569 - 41 0.154 - 42 0.0154 - 46 0.108 - - 46 184 13 0 - 2 0.038 - 4 0.0109 - 7 0.0435 - 13 0.00543 - 21 0.00543 - 26 0.00543 - 30 0.00543 - 33 0.00543 - 40 0.543 - 41 0.304 - 42 0.0109 - 44 0.00543 - 45 0.0163 - - 47 27 4 0 - 0 0.037 - 40 0.815 - 41 0.111 - 42 0.037 - - 48 712 17 0 - 0 0.0014 - 2 0.0435 - 4 0.00281 - 7 0.0955 - 12 0.00421 - 13 0.00281 - 21 0.00843 - 26 0.00983 - 30 0.0014 - 31 0.00281 - 37 0.0014 - 40 0.552 - 41 0.256 - 42 0.0126 - 44 0.0014 - 46 0.00281 - 47 0.0014 - - 49 1600 26 0 - 0 0.00938 - 2 0.0425 - 4 0.00313 - 5 0.000625 - 7 0.109 - 8 0.00187 - 12 0.0025 - 13 0.005 - 15 0.00187 - 20 0.000625 - 21 0.01 - 26 0.0244 - 29 0.000625 - 30 0.0025 - 31 0.000625 - 32 0.000625 - 33 0.00125 - 37 0.00438 - 40 0.514 - 41 0.233 - 42 0.0269 - 43 0.00125 - 44 0.000625 - 45 0.000625 - 46 0.00187 - 47 0.00125 - - 55 11225 30 0 - 0 0.00775 - 2 0.0394 - 3 0.00098 - 4 0.00383 - 7 0.139 - 8 0.00276 - 12 0.00454 - 13 0.00249 - 15 0.00107 - 19 0.000356 - 21 0.00775 - 22 0.000713 - 26 0.0247 - 28 0.000178 - 29 0.00205 - 30 0.0049 - 31 0.000356 - 32 0.000535 - 33 0.000802 - 34 0.00125 - 35 8.91e-05 - 37 0.00365 - 40 0.533 - 41 0.192 - 42 0.0211 - 43 0.00125 - 44 0.000624 - 45 0.000713 - 46 0.00151 - 47 0.00134 - - 57 4244 30 0 - 0 0.00683 - 2 0.028 - 3 0.000943 - 4 0.00259 - 7 0.0738 - 8 0.00448 - 12 0.00212 - 13 0.00259 - 14 0.000236 - 15 0.00212 - 19 0.000707 - 20 0.000236 - 21 0.00448 - 22 0.000943 - 26 0.0179 - 29 0.00283 - 30 0.00259 - 31 0.000707 - 32 0.00118 - 33 0.000236 - 34 0.000943 - 37 0.00283 - 40 0.621 - 41 0.192 - 42 0.0229 - 43 0.00189 - 44 0.000707 - 45 0.000236 - 46 0.000943 - 47 0.00141 - - 58 46 6 0 - 2 0.0652 - 7 0.0217 - 40 0.804 - 41 0.0435 - 42 0.0435 - 44 0.0217 - - 59 626 24 0 - 0 0.00479 - 2 0.0399 - 3 0.00319 - 4 0.0208 - 7 0.128 - 8 0.00319 - 12 0.00799 - 13 0.00479 - 17 0.0016 - 20 0.0016 - 21 0.024 - 26 0.0272 - 29 0.0016 - 30 0.00319 - 31 0.0016 - 33 0.00319 - 37 0.0016 - 40 0.494 - 41 0.193 - 42 0.024 - 43 0.0016 - 44 0.0016 - 45 0.00479 - 46 0.00319 - - 62 377 12 0 - 0 0.00265 - 2 0.0796 - 7 0.0531 - 12 0.00265 - 13 0.00796 - 21 0.00265 - 26 0.00531 - 33 0.00265 - 40 0.637 - 41 0.191 - 42 0.0133 - 46 0.00265 - - 64 28 5 0 - 0 0.0357 - 26 0.0357 - 40 0.714 - 41 0.143 - 42 0.0714 - - 67 1 1 0 - 43 1 - - 69 45 7 0 - 0 0.0222 - 2 0.0222 - 26 0.0222 - 37 0.0222 - 40 0.756 - 41 0.0889 - 42 0.0667 - - 58 317 27 20 - 0 0.0252 - 1 0.00315 - 2 0.0631 - 4 0.0599 - 7 0.271 - 8 0.0126 - 9 0.00315 - 12 0.0126 - 13 0.0158 - 15 0.0158 - 19 0.0158 - 20 0.00631 - 21 0.041 - 26 0.0315 - 28 0.0315 - 29 0.0126 - 30 0.0284 - 31 0.0158 - 32 0.00315 - 33 0.00315 - 35 0.00315 - 37 0.0126 - 40 0.202 - 41 0.0631 - 42 0.00631 - 45 0.0379 - 47 0.00315 - - 0 16 10 0 - 0 0.0625 - 1 0.0625 - 4 0.188 - 7 0.0625 - 9 0.0625 - 13 0.0625 - 29 0.0625 - 31 0.0625 - 40 0.25 - 45 0.125 - - 2 10 7 0 - 0 0.2 - 21 0.1 - 28 0.3 - 29 0.1 - 30 0.1 - 32 0.1 - 45 0.1 - - 12 3 1 0 - 28 1 - - 13 3 3 0 - 7 0.333 - 8 0.333 - 45 0.333 - - 21 3 3 0 - 4 0.333 - 21 0.333 - 28 0.333 - - 28 13 7 0 - 0 0.0769 - 2 0.0769 - 4 0.308 - 7 0.231 - 13 0.154 - 21 0.0769 - 40 0.0769 - - 29 9 4 0 - 0 0.111 - 4 0.111 - 7 0.556 - 26 0.222 - - 30 3 2 0 - 4 0.667 - 40 0.333 - - 31 18 8 0 - 7 0.556 - 15 0.0556 - 20 0.0556 - 21 0.0556 - 30 0.0556 - 37 0.0556 - 40 0.0556 - 41 0.111 - - 32 9 6 0 - 2 0.111 - 4 0.222 - 7 0.222 - 8 0.111 - 21 0.222 - 45 0.111 - - 33 9 7 0 - 4 0.111 - 7 0.333 - 8 0.111 - 13 0.111 - 26 0.111 - 30 0.111 - 40 0.111 - - 41 15 3 0 - 40 0.733 - 41 0.133 - 42 0.133 - - 46 7 4 0 - 2 0.143 - 35 0.143 - 40 0.571 - 41 0.143 - - 48 19 8 0 - 2 0.0526 - 4 0.0526 - 7 0.263 - 12 0.158 - 37 0.0526 - 40 0.211 - 41 0.158 - 45 0.0526 - - 49 14 8 0 - 2 0.0714 - 7 0.357 - 12 0.0714 - 28 0.0714 - 37 0.0714 - 40 0.214 - 41 0.0714 - 45 0.0714 - - 55 63 13 0 - 0 0.0317 - 2 0.0794 - 4 0.0159 - 7 0.365 - 19 0.0159 - 21 0.0317 - 26 0.0794 - 30 0.0317 - 31 0.0159 - 40 0.19 - 41 0.0794 - 45 0.0476 - 47 0.0159 - - 57 50 12 0 - 2 0.08 - 4 0.02 - 7 0.3 - 15 0.02 - 19 0.06 - 29 0.02 - 30 0.06 - 31 0.06 - 37 0.02 - 40 0.26 - 41 0.08 - 45 0.02 - - 62 11 6 0 - 7 0.455 - 15 0.0909 - 21 0.182 - 26 0.0909 - 40 0.0909 - 45 0.0909 - - 64 4 3 0 - 30 0.25 - 40 0.5 - 41 0.25 - - 69 30 16 0 - 0 0.0333 - 2 0.2 - 4 0.0333 - 7 0.167 - 8 0.0333 - 13 0.0333 - 15 0.0667 - 19 0.0333 - 20 0.0333 - 21 0.0667 - 26 0.0333 - 28 0.0333 - 29 0.0333 - 33 0.0333 - 40 0.133 - 41 0.0333 - - 59 2627 34 12 - 0 0.00152 - 1 0.00114 - 2 0.0152 - 3 0.0175 - 4 0.212 - 7 0.239 - 8 0.0499 - 9 0.00495 - 10 0.00266 - 12 0.000381 - 13 0.0495 - 14 0.0461 - 15 0.0236 - 17 0.00114 - 19 0.000761 - 20 0.0529 - 21 0.0487 - 22 0.00457 - 24 0.00114 - 26 0.0457 - 30 0.0164 - 31 0.0019 - 35 0.00533 - 37 0.00495 - 38 0.000761 - 39 0.00876 - 40 0.0761 - 41 0.0502 - 42 0.00571 - 43 0.000761 - 44 0.000381 - 45 0.00457 - 46 0.00533 - 47 0.000381 - - 0 6 5 0 - 4 0.167 - 7 0.333 - 9 0.167 - 21 0.167 - 26 0.167 - - 8 2 2 0 - 13 0.5 - 26 0.5 - - 13 19 8 0 - 4 0.263 - 7 0.0526 - 8 0.0526 - 13 0.158 - 14 0.211 - 20 0.158 - 21 0.0526 - 40 0.0526 - - 14 7 6 0 - 4 0.286 - 7 0.143 - 8 0.143 - 13 0.143 - 14 0.143 - 20 0.143 - - 15 2 2 0 - 4 0.5 - 47 0.5 - - 28 861 27 0 - 1 0.00232 - 2 0.0105 - 3 0.0186 - 4 0.28 - 7 0.163 - 8 0.065 - 9 0.00581 - 10 0.00348 - 13 0.0674 - 14 0.0569 - 15 0.0267 - 17 0.00232 - 20 0.0767 - 21 0.0465 - 22 0.00116 - 24 0.00116 - 26 0.0279 - 30 0.0267 - 31 0.00116 - 35 0.0105 - 37 0.00813 - 38 0.00116 - 39 0.0105 - 40 0.0511 - 41 0.0267 - 45 0.00581 - 46 0.00348 - - 29 473 25 0 - 0 0.00634 - 2 0.0127 - 3 0.0381 - 4 0.22 - 7 0.271 - 8 0.0338 - 10 0.00211 - 13 0.0359 - 14 0.0486 - 15 0.0296 - 19 0.00423 - 20 0.0507 - 21 0.0381 - 22 0.00634 - 24 0.00211 - 26 0.0592 - 30 0.0148 - 31 0.00211 - 35 0.00211 - 39 0.0169 - 40 0.0592 - 41 0.0359 - 42 0.00423 - 45 0.00423 - 46 0.00211 - - 30 399 24 0 - 2 0.0125 - 3 0.01 - 4 0.236 - 7 0.188 - 8 0.0852 - 9 0.00752 - 10 0.00251 - 13 0.0677 - 14 0.0727 - 15 0.0276 - 20 0.0501 - 21 0.0351 - 22 0.00752 - 26 0.0376 - 30 0.015 - 31 0.00501 - 35 0.00752 - 37 0.00501 - 39 0.00752 - 40 0.0652 - 41 0.0376 - 42 0.01 - 45 0.00251 - 46 0.00501 - - 31 440 26 0 - 0 0.00227 - 2 0.0159 - 3 0.00455 - 4 0.132 - 7 0.398 - 8 0.0205 - 9 0.00682 - 12 0.00227 - 13 0.0341 - 14 0.0136 - 15 0.0227 - 17 0.00227 - 20 0.0318 - 21 0.0591 - 22 0.00682 - 26 0.0545 - 30 0.00227 - 31 0.00227 - 37 0.00227 - 39 0.00682 - 40 0.107 - 41 0.0477 - 42 0.00682 - 43 0.00227 - 45 0.00682 - 46 0.00909 - - 32 110 19 0 - 2 0.0273 - 3 0.0364 - 4 0.164 - 7 0.2 - 8 0.0818 - 9 0.00909 - 10 0.00909 - 13 0.0545 - 14 0.0545 - 15 0.0273 - 20 0.0364 - 21 0.0818 - 22 0.00909 - 26 0.00909 - 30 0.0364 - 38 0.00909 - 40 0.0636 - 41 0.0818 - 46 0.00909 - - 33 146 20 0 - 1 0.00685 - 2 0.00685 - 3 0.0137 - 4 0.199 - 7 0.24 - 8 0.0342 - 10 0.00685 - 13 0.0137 - 14 0.0205 - 15 0.00685 - 20 0.0479 - 21 0.0753 - 26 0.089 - 35 0.00685 - 37 0.00685 - 40 0.089 - 41 0.103 - 42 0.0205 - 45 0.00685 - 46 0.00685 - - 55 159 15 0 - 2 0.0566 - 4 0.0252 - 7 0.289 - 21 0.0503 - 22 0.00629 - 24 0.00629 - 26 0.0818 - 30 0.0126 - 37 0.0126 - 40 0.214 - 41 0.201 - 42 0.0189 - 43 0.00629 - 44 0.00629 - 46 0.0126 - - 62 13537 29 20 - 0 0.00731 - 2 0.0228 - 3 0.000443 - 4 0.0017 - 7 0.044 - 8 0.00185 - 12 0.00362 - 13 0.000517 - 14 0.000369 - 15 0.000813 - 19 0.000591 - 21 0.00451 - 22 0.000295 - 26 0.00399 - 29 0.00118 - 30 0.000886 - 31 0.000369 - 32 0.000739 - 33 0.00111 - 34 0.000369 - 37 0.00207 - 40 0.699 - 41 0.177 - 42 0.0179 - 43 0.000517 - 44 0.000739 - 45 0.000369 - 46 0.0031 - 47 0.00244 - - 0 792 16 0 - 0 0.00758 - 2 0.0177 - 4 0.00379 - 7 0.0366 - 8 0.00253 - 13 0.00126 - 19 0.00126 - 21 0.0114 - 26 0.0265 - 33 0.00253 - 37 0.00253 - 40 0.652 - 41 0.206 - 42 0.0215 - 46 0.00379 - 47 0.00379 - - 1 31 8 0 - 0 0.0645 - 2 0.0323 - 7 0.0645 - 12 0.0968 - 37 0.0323 - 40 0.419 - 41 0.258 - 42 0.0323 - - 12 37 3 0 - 40 0.784 - 41 0.189 - 46 0.027 - - 14 26 3 0 - 2 0.0769 - 40 0.885 - 46 0.0385 - - 28 1599 24 0 - 0 0.0075 - 2 0.0275 - 4 0.0025 - 7 0.0619 - 8 0.00375 - 12 0.00313 - 14 0.00125 - 15 0.00188 - 19 0.00125 - 21 0.00813 - 26 0.00375 - 29 0.00125 - 30 0.000625 - 31 0.000625 - 32 0.00125 - 33 0.0025 - 37 0.005 - 40 0.634 - 41 0.204 - 42 0.0219 - 43 0.00125 - 44 0.00125 - 46 0.00375 - 47 0.000625 - - 29 1679 23 0 - 0 0.00596 - 2 0.0381 - 3 0.00179 - 4 0.00357 - 7 0.0643 - 8 0.00596 - 12 0.00119 - 14 0.000596 - 15 0.00357 - 21 0.00357 - 22 0.00119 - 26 0.00238 - 29 0.00179 - 30 0.00179 - 31 0.000596 - 32 0.000596 - 37 0.00238 - 40 0.671 - 41 0.172 - 42 0.0125 - 44 0.000596 - 46 0.00238 - 47 0.00238 - - 30 1088 23 0 - 0 0.0165 - 2 0.0239 - 3 0.000919 - 4 0.00368 - 7 0.0469 - 8 0.000919 - 12 0.011 - 13 0.000919 - 14 0.000919 - 19 0.000919 - 21 0.00368 - 22 0.000919 - 26 0.00276 - 29 0.0046 - 30 0.000919 - 32 0.000919 - 33 0.00184 - 40 0.626 - 41 0.226 - 42 0.0184 - 45 0.00276 - 46 0.00368 - 47 0.000919 - - 31 2064 26 0 - 0 0.00678 - 2 0.0252 - 3 0.000484 - 4 0.000969 - 7 0.0766 - 8 0.000969 - 12 0.00436 - 14 0.000484 - 15 0.000484 - 19 0.000484 - 21 0.00775 - 22 0.000484 - 26 0.00388 - 29 0.00145 - 30 0.00242 - 31 0.000484 - 32 0.00194 - 33 0.00145 - 34 0.00194 - 37 0.00242 - 40 0.636 - 41 0.195 - 42 0.0233 - 43 0.00145 - 46 0.00145 - 47 0.00194 - - 32 768 19 0 - 0 0.0143 - 2 0.0273 - 4 0.0013 - 7 0.0352 - 12 0.00391 - 13 0.0026 - 19 0.0013 - 21 0.00781 - 26 0.00391 - 29 0.0026 - 30 0.0013 - 32 0.0013 - 34 0.0013 - 40 0.647 - 41 0.224 - 42 0.0156 - 44 0.0026 - 46 0.00391 - 47 0.0026 - - 33 1187 17 0 - 0 0.00758 - 2 0.027 - 7 0.0278 - 12 0.00421 - 13 0.000842 - 19 0.000842 - 21 0.00253 - 26 0.00505 - 30 0.000842 - 33 0.00168 - 37 0.00337 - 40 0.732 - 41 0.152 - 42 0.0236 - 44 0.00168 - 46 0.00337 - 47 0.00505 - - 41 1264 6 0 - 7 0.00158 - 40 0.902 - 41 0.087 - 42 0.00791 - 44 0.000791 - 46 0.000791 - - 42 63 5 0 - 7 0.0159 - 40 0.889 - 41 0.0635 - 42 0.0159 - 46 0.0159 - - 45 324 6 0 - 21 0.00309 - 40 0.873 - 41 0.0741 - 42 0.0216 - 46 0.0216 - 47 0.00617 - - 48 188 11 0 - 2 0.00532 - 4 0.00532 - 7 0.0851 - 21 0.00532 - 26 0.00532 - 31 0.00532 - 37 0.0106 - 40 0.574 - 41 0.293 - 42 0.00532 - 46 0.00532 - - 49 234 8 0 - 0 0.00427 - 2 0.0256 - 7 0.0342 - 12 0.00427 - 40 0.701 - 41 0.192 - 42 0.0342 - 46 0.00427 - - 55 1193 18 0 - 0 0.00922 - 2 0.0277 - 3 0.000838 - 4 0.000838 - 7 0.0285 - 8 0.00168 - 12 0.00503 - 26 0.000838 - 33 0.00168 - 37 0.000838 - 40 0.733 - 41 0.163 - 42 0.0142 - 43 0.00168 - 44 0.00168 - 45 0.000838 - 46 0.00168 - 47 0.00587 - - 57 699 16 0 - 0 0.00572 - 2 0.01 - 4 0.00143 - 7 0.0243 - 8 0.00286 - 12 0.00143 - 13 0.00286 - 15 0.00143 - 21 0.00286 - 29 0.00143 - 31 0.00143 - 32 0.00143 - 40 0.758 - 41 0.162 - 42 0.02 - 47 0.00286 - - 58 17 1 0 - 40 1 - - 59 102 11 0 - 0 0.0098 - 2 0.0196 - 7 0.049 - 12 0.0098 - 19 0.0098 - 26 0.0098 - 37 0.0098 - 40 0.667 - 41 0.196 - 42 0.0098 - 47 0.0098 - - 62 50 4 0 - 2 0.06 - 40 0.76 - 41 0.16 - 45 0.02 - - 64 13660 26 19 - 0 0.00234 - 2 0.0104 - 4 0.00022 - 5 7.32e-05 - 7 0.00425 - 8 0.000146 - 12 0.00102 - 13 0.000293 - 15 7.32e-05 - 19 0.000366 - 21 0.000659 - 26 0.00022 - 29 0.000293 - 30 0.000146 - 31 7.32e-05 - 32 0.000146 - 33 0.00022 - 34 0.000146 - 37 0.000366 - 40 0.842 - 41 0.117 - 42 0.0141 - 43 0.0011 - 44 0.000439 - 46 0.00132 - 47 0.00271 - - 0 384 11 0 - 2 0.0026 - 7 0.00781 - 12 0.0026 - 15 0.0026 - 21 0.0026 - 40 0.76 - 41 0.206 - 42 0.00781 - 43 0.0026 - 46 0.0026 - 47 0.0026 - - 21 14 3 0 - 7 0.0714 - 40 0.571 - 41 0.357 - - 28 886 15 0 - 0 0.00903 - 2 0.0158 - 5 0.00113 - 7 0.0147 - 8 0.00113 - 12 0.00226 - 21 0.00339 - 33 0.00113 - 37 0.00226 - 40 0.699 - 41 0.218 - 42 0.0237 - 43 0.00113 - 46 0.00451 - 47 0.00339 - - 29 4524 17 0 - 0 0.00133 - 2 0.0124 - 4 0.000221 - 7 0.00133 - 8 0.000221 - 13 0.000442 - 19 0.000442 - 21 0.000442 - 29 0.000663 - 30 0.000221 - 37 0.000663 - 40 0.914 - 41 0.0573 - 42 0.00685 - 43 0.000442 - 46 0.000663 - 47 0.00287 - - 30 513 12 0 - 0 0.0039 - 2 0.0117 - 7 0.00975 - 12 0.0039 - 21 0.00195 - 30 0.00195 - 32 0.00195 - 40 0.768 - 41 0.183 - 42 0.00585 - 44 0.0039 - 46 0.0039 - - 31 497 12 0 - 2 0.0121 - 7 0.00402 - 12 0.00201 - 26 0.00201 - 29 0.00201 - 40 0.779 - 41 0.171 - 42 0.0181 - 43 0.00201 - 44 0.00201 - 46 0.00201 - 47 0.00402 - - 32 1197 13 0 - 0 0.00251 - 2 0.0109 - 7 0.00334 - 12 0.00167 - 13 0.000835 - 19 0.000835 - 21 0.000835 - 32 0.000835 - 34 0.000835 - 40 0.785 - 41 0.17 - 42 0.0209 - 47 0.00167 - - 33 1314 12 0 - 0 0.00381 - 2 0.0122 - 7 0.00228 - 19 0.000761 - 31 0.000761 - 40 0.867 - 41 0.0883 - 42 0.0183 - 43 0.000761 - 44 0.000761 - 46 0.00152 - 47 0.00381 - - 41 1017 7 0 - 7 0.000983 - 21 0.000983 - 40 0.887 - 41 0.0895 - 42 0.0167 - 43 0.00295 - 47 0.00197 - - 42 45 4 0 - 40 0.844 - 41 0.0444 - 42 0.0889 - 47 0.0222 - - 44 3 2 0 - 40 0.333 - 43 0.667 - - 48 353 6 0 - 2 0.00567 - 7 0.0085 - 40 0.822 - 41 0.159 - 42 0.00283 - 47 0.00283 - - 49 245 9 0 - 0 0.00408 - 2 0.0163 - 7 0.00408 - 19 0.00408 - 26 0.00408 - 33 0.00408 - 40 0.784 - 41 0.167 - 42 0.0122 - - 55 1264 13 0 - 0 0.00158 - 2 0.00791 - 4 0.00158 - 7 0.00949 - 12 0.00316 - 13 0.000791 - 26 0.000791 - 40 0.803 - 41 0.147 - 42 0.019 - 44 0.000791 - 46 0.00237 - 47 0.00237 - - 57 868 12 0 - 0 0.00346 - 2 0.0104 - 7 0.00346 - 12 0.0023 - 33 0.00115 - 34 0.00115 - 40 0.829 - 41 0.121 - 42 0.0219 - 43 0.0023 - 46 0.0023 - 47 0.00115 - - 58 60 3 0 - 40 0.95 - 41 0.0333 - 47 0.0167 - - 59 89 5 0 - 0 0.0112 - 2 0.0225 - 40 0.73 - 41 0.191 - 42 0.0449 - - 62 197 7 0 - 7 0.00508 - 40 0.827 - 41 0.142 - 42 0.0102 - 43 0.00508 - 44 0.00508 - 47 0.00508 - - 64 36 4 0 - 40 0.778 - 41 0.139 - 42 0.0556 - 43 0.0278 - - 65 23 3 0 - 40 0.565 - 46 0.261 - 47 0.174 - - 66 5 2 0 - 40 0.6 - 46 0.4 - - 67 16 5 0 - 7 0.0625 - 40 0.375 - 42 0.0625 - 46 0.375 - 47 0.125 - - 68 161 12 4 - 0 0.0124 - 2 0.00621 - 4 0.00621 - 7 0.00621 - 13 0.0124 - 21 0.00621 - 26 0.00621 - 31 0.00621 - 40 0.671 - 41 0.217 - 42 0.0435 - 46 0.00621 - - 4 1 1 0 - 13 1 - - 29 4 3 0 - 7 0.25 - 26 0.25 - 40 0.5 - - 55 15 4 0 - 21 0.0667 - 40 0.733 - 41 0.0667 - 42 0.133 - - 57 1 1 0 - 31 1 - - 69 48590 32 19 - 0 0.00926 - 2 0.0818 - 3 8.23e-05 - 4 0.00134 - 5 6.17e-05 - 7 0.0134 - 8 0.000535 - 12 0.00323 - 13 0.000288 - 14 0.000391 - 15 0.000412 - 19 0.000535 - 20 0.000185 - 21 0.00241 - 22 0.000144 - 26 0.00161 - 28 0.000144 - 29 0.00158 - 30 0.000391 - 31 0.000206 - 32 0.00072 - 33 0.00113 - 34 0.000144 - 37 0.000782 - 40 0.656 - 41 0.198 - 42 0.02 - 43 0.00111 - 44 0.000741 - 45 0.000226 - 46 0.0022 - 47 0.00142 - - 0 14471 30 0 - 0 0.00947 - 2 0.0333 - 4 0.00104 - 5 6.91e-05 - 7 0.00442 - 8 6.91e-05 - 12 0.00228 - 13 0.000138 - 14 0.000346 - 15 0.000276 - 19 0.000691 - 20 6.91e-05 - 21 0.000829 - 22 6.91e-05 - 26 0.00076 - 28 0.000138 - 29 0.00131 - 30 0.000207 - 31 6.91e-05 - 32 0.00111 - 33 0.000967 - 37 0.000276 - 40 0.728 - 41 0.189 - 42 0.0207 - 43 0.00159 - 44 0.000622 - 45 6.91e-05 - 46 0.00111 - 47 0.00117 - - 1 372 15 0 - 0 0.0188 - 2 0.0457 - 7 0.00538 - 12 0.00538 - 15 0.00269 - 21 0.00538 - 26 0.00538 - 31 0.00269 - 32 0.00538 - 37 0.00269 - 40 0.645 - 41 0.228 - 42 0.0161 - 43 0.00538 - 46 0.00538 - - 2 3353 26 0 - 0 0.00328 - 2 0.00746 - 3 0.000298 - 4 0.00537 - 7 0.0197 - 8 0.00298 - 12 0.000895 - 13 0.00119 - 14 0.00209 - 15 0.000596 - 19 0.000298 - 20 0.00179 - 21 0.00358 - 26 0.00388 - 28 0.000895 - 29 0.000298 - 31 0.000298 - 32 0.000298 - 37 0.000298 - 40 0.775 - 41 0.15 - 42 0.0155 - 43 0.000895 - 45 0.000298 - 46 0.00239 - 47 0.000298 - - 4 29 3 0 - 2 0.172 - 40 0.759 - 41 0.069 - - 12 7932 26 0 - 0 0.00693 - 2 0.0241 - 4 0.000504 - 5 0.000126 - 7 0.00403 - 8 0.000504 - 12 0.00277 - 13 0.000126 - 14 0.000378 - 15 0.000252 - 19 0.000252 - 21 0.00063 - 26 0.000378 - 29 0.00126 - 30 0.000252 - 31 0.000126 - 32 0.000504 - 33 0.00151 - 37 0.000126 - 40 0.759 - 41 0.175 - 42 0.0173 - 43 0.00113 - 44 0.000756 - 46 0.000756 - 47 0.00151 - - 15 2 1 0 - 46 1 - - 21 2998 22 0 - 0 0.006 - 2 0.0317 - 4 0.000667 - 7 0.004 - 12 0.00167 - 14 0.000667 - 15 0.000334 - 19 0.001 - 21 0.000334 - 26 0.000334 - 28 0.000334 - 29 0.001 - 32 0.000334 - 33 0.000334 - 37 0.000334 - 40 0.662 - 41 0.255 - 42 0.027 - 43 0.000667 - 45 0.000334 - 46 0.00367 - 47 0.002 - - 26 12919 31 0 - 0 0.016 - 2 0.0296 - 3 0.000232 - 4 0.0017 - 5 7.74e-05 - 7 0.0358 - 8 0.000774 - 12 0.00658 - 13 0.000464 - 14 0.000155 - 15 0.000697 - 19 0.000774 - 21 0.00441 - 22 0.000464 - 26 0.00348 - 28 7.74e-05 - 29 0.00333 - 30 0.000774 - 31 0.000464 - 32 0.000774 - 33 0.00217 - 34 0.00031 - 37 0.00224 - 40 0.666 - 41 0.197 - 42 0.0184 - 43 0.000697 - 44 0.000851 - 45 0.000542 - 46 0.00279 - 47 0.00224 - - 28 80 8 0 - 0 0.0125 - 2 0.0375 - 7 0.0125 - 8 0.0125 - 40 0.712 - 41 0.188 - 42 0.0125 - 46 0.0125 - - 29 67 6 0 - 2 0.0597 - 7 0.0149 - 26 0.0149 - 40 0.597 - 41 0.254 - 42 0.0597 - - 41 356 8 0 - 2 0.419 - 26 0.00281 - 37 0.00281 - 40 0.242 - 41 0.312 - 42 0.0169 - 46 0.00281 - 47 0.00281 - - 42 25 4 0 - 2 0.04 - 40 0.36 - 41 0.12 - 42 0.48 - - 44 2 2 0 - 40 0.5 - 43 0.5 - - 45 144 6 0 - 2 0.0625 - 40 0.618 - 41 0.215 - 42 0.0139 - 46 0.0833 - 47 0.00694 - - 47 3672 10 0 - 2 0.69 - 4 0.000545 - 7 0.000817 - 21 0.00735 - 30 0.00109 - 34 0.000545 - 41 0.27 - 42 0.0248 - 44 0.00218 - 46 0.00245 - - 49 1916 19 0 - 0 0.00678 - 2 0.0339 - 7 0.00365 - 12 0.00365 - 13 0.000522 - 15 0.000522 - 20 0.000522 - 21 0.000522 - 26 0.000522 - 29 0.000522 - 34 0.000522 - 40 0.724 - 41 0.196 - 42 0.0209 - 43 0.00261 - 44 0.00104 - 45 0.000522 - 46 0.00157 - 47 0.00104 - - 50 47 7 0 - 2 0.0426 - 4 0.0426 - 7 0.0213 - 20 0.0213 - 40 0.574 - 41 0.277 - 42 0.0213 - - 57 48 3 0 - 2 0.0208 - 40 0.875 - 41 0.104 - - 58 21 3 0 - 32 0.0476 - 40 0.857 - 41 0.0952 - - 74 23 8 1 - 4 0.0435 - 7 0.13 - 8 0.0435 - 26 0.087 - 28 0.0435 - 40 0.261 - 41 0.0435 - 47 0.348 - - 29 5 4 0 - 4 0.2 - 8 0.2 - 26 0.2 - 40 0.4 - -70 183 17 7 - 0 0.0109 - 2 0.0109 - 4 0.164 - 6 0.00546 - 7 0.0109 - 8 0.317 - 9 0.0328 - 13 0.0874 - 14 0.109 - 15 0.0109 - 19 0.175 - 20 0.0109 - 21 0.0109 - 26 0.0109 - 41 0.0219 - 45 0.00546 - 46 0.00546 - - 8 58 11 0 - 2 0.0345 - 4 0.259 - 7 0.0345 - 8 0.0172 - 9 0.0517 - 13 0.121 - 14 0.172 - 15 0.0172 - 19 0.259 - 20 0.0172 - 41 0.0172 - - 21 2 2 0 - 0 0.5 - 8 0.5 - - 37 56 3 0 - 8 0.946 - 21 0.0357 - 45 0.0179 - - 45 1 1 0 - 6 1 - - 47 59 11 1 - 0 0.0169 - 4 0.254 - 8 0.0169 - 9 0.0508 - 13 0.136 - 14 0.169 - 15 0.0169 - 19 0.271 - 20 0.0169 - 26 0.0169 - 41 0.0339 - - 57 2 2 0 - 26 0.5 - 41 0.5 - - 48 1 1 0 - 46 1 - - 57 2 2 0 - 26 0.5 - 41 0.5 - -71 4205 34 8 - 0 0.0219 - 2 0.00166 - 3 0.00666 - 4 0.263 - 5 0.0109 - 7 0.00951 - 8 0.0533 - 9 0.00143 - 10 0.0019 - 12 0.0133 - 13 0.0604 - 14 0.0818 - 15 0.113 - 16 0.00143 - 17 0.0019 - 19 0.236 - 20 0.0276 - 21 0.0252 - 26 0.0285 - 28 0.000951 - 29 0.000951 - 30 0.0109 - 31 0.00856 - 32 0.000476 - 34 0.000476 - 35 0.000476 - 39 0.000476 - 40 0.00309 - 41 0.0109 - 43 0.000476 - 44 0.000476 - 45 0.00143 - 46 0.000238 - 47 0.000476 - - 7 30 7 0 - 4 0.3 - 8 0.0667 - 13 0.0333 - 14 0.0667 - 15 0.233 - 19 0.2 - 20 0.1 - - 8 23 7 0 - 4 0.217 - 8 0.087 - 13 0.348 - 14 0.13 - 15 0.13 - 19 0.0435 - 40 0.0435 - - 21 45 14 0 - 0 0.0667 - 2 0.0222 - 4 0.289 - 7 0.0222 - 8 0.0222 - 12 0.0222 - 13 0.0222 - 14 0.0444 - 15 0.133 - 19 0.222 - 20 0.0444 - 21 0.0222 - 28 0.0444 - 40 0.0222 - - 37 2029 31 3 - 0 0.0202 - 2 0.00148 - 3 0.0069 - 4 0.259 - 5 0.0113 - 7 0.00936 - 8 0.0591 - 9 0.00148 - 10 0.00197 - 12 0.0128 - 13 0.0586 - 14 0.0808 - 15 0.108 - 16 0.00148 - 17 0.00197 - 19 0.235 - 20 0.0261 - 21 0.036 - 26 0.0291 - 29 0.000986 - 30 0.0113 - 31 0.00887 - 32 0.000493 - 34 0.000493 - 35 0.000493 - 39 0.000493 - 40 0.00246 - 41 0.0113 - 43 0.000493 - 44 0.000493 - 45 0.00148 - - 2 6 2 0 - 4 0.833 - 26 0.167 - - 21 21 9 0 - 0 0.0476 - 4 0.19 - 8 0.19 - 13 0.0952 - 15 0.0476 - 19 0.238 - 20 0.0952 - 21 0.0476 - 31 0.0476 - - 49 6 3 0 - 4 0.167 - 5 0.333 - 19 0.5 - - 40 1 1 0 - 46 1 - - 46 1 1 0 - 47 1 - - 47 2063 33 5 - 0 0.0223 - 2 0.00145 - 3 0.00679 - 4 0.268 - 5 0.0111 - 7 0.00969 - 8 0.048 - 9 0.00145 - 10 0.00194 - 12 0.0136 - 13 0.0606 - 14 0.0834 - 15 0.115 - 16 0.00145 - 17 0.00194 - 19 0.241 - 20 0.0281 - 21 0.015 - 26 0.0291 - 28 0.000969 - 29 0.000969 - 30 0.0111 - 31 0.00873 - 32 0.000485 - 34 0.000485 - 35 0.000485 - 39 0.000485 - 40 0.00291 - 41 0.0111 - 43 0.000485 - 44 0.000485 - 45 0.00145 - 47 0.000485 - - 7 30 7 0 - 4 0.3 - 8 0.0667 - 13 0.0333 - 14 0.0667 - 15 0.233 - 19 0.2 - 20 0.1 - - 8 18 6 0 - 4 0.278 - 8 0.111 - 13 0.222 - 14 0.167 - 15 0.167 - 19 0.0556 - - 21 43 12 0 - 0 0.0698 - 4 0.302 - 7 0.0233 - 8 0.0233 - 12 0.0233 - 13 0.0233 - 14 0.0465 - 15 0.14 - 19 0.233 - 20 0.0465 - 28 0.0465 - 40 0.0233 - - 46 1 1 0 - 47 1 - - 55 4 3 0 - 0 0.5 - 4 0.25 - 12 0.25 - - 55 4 3 0 - 0 0.5 - 4 0.25 - 12 0.25 - -72 15188 37 29 - 0 0.257 - 2 0.000856 - 3 0.00356 - 4 0.0405 - 5 0.000922 - 7 0.0239 - 8 0.0117 - 9 0.000527 - 10 0.000856 - 12 0.0985 - 13 0.0189 - 14 0.0197 - 15 0.0309 - 16 0.000329 - 17 0.000132 - 18 0.000263 - 19 0.0643 - 20 0.00382 - 21 0.0426 - 22 0.000395 - 23 0.000132 - 26 0.00375 - 28 0.00224 - 29 0.155 - 30 0.000329 - 31 0.0023 - 32 0.0744 - 33 0.128 - 34 0.000263 - 39 0.000593 - 40 0.000658 - 41 0.00974 - 42 0.000263 - 43 0.000395 - 44 0.000461 - 45 0.000988 - 46 0.000132 - - 2 8 3 0 - 7 0.125 - 13 0.625 - 14 0.25 - - 3 9 3 0 - 7 0.778 - 8 0.111 - 14 0.111 - - 4 71 11 1 - 0 0.225 - 7 0.211 - 8 0.0282 - 12 0.0986 - 13 0.169 - 15 0.113 - 18 0.0141 - 21 0.0141 - 29 0.0141 - 32 0.0423 - 33 0.0704 - - 35 4 2 0 - 8 0.5 - 13 0.5 - - 7 358 24 0 - 0 0.00559 - 3 0.00279 - 4 0.154 - 7 0.014 - 8 0.0559 - 9 0.00279 - 10 0.00838 - 13 0.0223 - 14 0.0922 - 15 0.19 - 16 0.00279 - 19 0.237 - 20 0.0279 - 21 0.0447 - 22 0.00279 - 23 0.00279 - 28 0.00279 - 29 0.0279 - 30 0.00559 - 31 0.0251 - 32 0.00838 - 33 0.0168 - 41 0.0447 - 45 0.00279 - - 8 76 17 5 - 0 0.0263 - 4 0.0921 - 7 0.0789 - 8 0.0658 - 13 0.329 - 14 0.171 - 15 0.0395 - 17 0.0132 - 19 0.0658 - 20 0.0263 - 29 0.0132 - 31 0.0132 - 40 0.0132 - 41 0.0132 - 42 0.0132 - 45 0.0132 - 46 0.0132 - - 21 1 1 0 - 17 1 - - 23 2 1 0 - 7 1 - - 36 30 6 0 - 8 0.167 - 13 0.467 - 14 0.267 - 31 0.0333 - 41 0.0333 - 45 0.0333 - - 37 25 10 0 - 0 0.08 - 4 0.28 - 7 0.08 - 13 0.04 - 15 0.12 - 19 0.2 - 20 0.08 - 29 0.04 - 40 0.04 - 42 0.04 - - 47 2 1 0 - 7 1 - - 9 3 3 0 - 12 0.333 - 14 0.333 - 15 0.333 - - 10 6 2 0 - 7 0.833 - 13 0.167 - - 13 186 16 9 - 0 0.269 - 2 0.0108 - 4 0.0806 - 7 0.145 - 8 0.0108 - 12 0.0269 - 13 0.0645 - 14 0.0323 - 15 0.0323 - 19 0.0806 - 21 0.0215 - 26 0.0215 - 29 0.0753 - 33 0.086 - 41 0.0376 - 44 0.00538 - - 2 5 4 0 - 0 0.4 - 13 0.2 - 14 0.2 - 29 0.2 - - 4 5 3 0 - 0 0.2 - 7 0.6 - 19 0.2 - - 8 25 13 0 - 0 0.24 - 2 0.04 - 7 0.04 - 13 0.08 - 14 0.04 - 15 0.04 - 19 0.04 - 21 0.12 - 26 0.04 - 29 0.08 - 33 0.12 - 41 0.08 - 44 0.04 - - 13 13 8 0 - 0 0.231 - 7 0.231 - 8 0.0769 - 12 0.0769 - 19 0.154 - 21 0.0769 - 29 0.0769 - 33 0.0769 - - 34 39 13 0 - 0 0.103 - 2 0.0256 - 4 0.256 - 7 0.128 - 12 0.0256 - 13 0.0513 - 14 0.0256 - 15 0.0513 - 19 0.179 - 26 0.0256 - 29 0.0256 - 33 0.0256 - 41 0.0769 - - 35 14 8 0 - 0 0.286 - 4 0.0714 - 7 0.286 - 14 0.0714 - 19 0.0714 - 26 0.0714 - 29 0.0714 - 41 0.0714 - - 36 58 11 0 - 0 0.362 - 7 0.121 - 12 0.0172 - 13 0.121 - 14 0.0345 - 15 0.0172 - 19 0.0345 - 26 0.0172 - 29 0.103 - 33 0.155 - 41 0.0172 - - 70 7 4 0 - 0 0.286 - 4 0.286 - 8 0.143 - 15 0.286 - - 71 2 1 0 - 4 1 - - 14 114 16 6 - 0 0.307 - 2 0.0439 - 4 0.0263 - 7 0.0526 - 8 0.0175 - 12 0.0439 - 13 0.0175 - 15 0.00877 - 19 0.0965 - 21 0.0175 - 26 0.0351 - 29 0.105 - 32 0.202 - 34 0.00877 - 41 0.00877 - 45 0.00877 - - 8 15 8 0 - 0 0.2 - 12 0.0667 - 19 0.0667 - 21 0.0667 - 29 0.2 - 32 0.267 - 34 0.0667 - 45 0.0667 - - 15 2 2 0 - 4 0.5 - 29 0.5 - - 34 17 9 0 - 0 0.294 - 4 0.0588 - 7 0.176 - 12 0.0588 - 15 0.0588 - 19 0.0588 - 26 0.0588 - 29 0.0588 - 32 0.176 - - 35 5 4 0 - 0 0.2 - 4 0.2 - 12 0.2 - 26 0.4 - - 36 48 8 0 - 0 0.354 - 2 0.104 - 13 0.0417 - 19 0.0833 - 21 0.0208 - 29 0.0833 - 32 0.292 - 41 0.0208 - - 71 3 3 0 - 8 0.333 - 12 0.333 - 19 0.333 - - 15 18 6 0 - 7 0.0556 - 13 0.278 - 14 0.0556 - 15 0.5 - 16 0.0556 - 33 0.0556 - - 21 12 6 0 - 0 0.167 - 4 0.0833 - 7 0.333 - 8 0.0833 - 12 0.167 - 19 0.167 - - 31 2 2 0 - 13 0.5 - 14 0.5 - - 32 1 1 0 - 28 1 - - 34 4214 29 1 - 0 0.274 - 2 0.000475 - 3 0.00522 - 4 0.0282 - 5 0.00142 - 7 0.00878 - 8 0.00807 - 9 0.000475 - 10 0.000237 - 12 0.133 - 13 0.0157 - 14 0.0164 - 15 0.0216 - 16 0.000237 - 18 0.000237 - 19 0.0356 - 20 0.00119 - 21 0.046 - 26 0.000949 - 28 0.00119 - 29 0.159 - 31 0.000949 - 32 0.0729 - 33 0.161 - 39 0.000712 - 41 0.00617 - 42 0.000237 - 44 0.000237 - 45 0.000475 - - 21 2 1 0 - 13 1 - - 35 2343 27 2 - 0 0.268 - 3 0.00128 - 4 0.0448 - 7 0.0128 - 8 0.00512 - 9 0.000427 - 10 0.000854 - 12 0.0657 - 13 0.0111 - 14 0.00896 - 15 0.0188 - 19 0.0905 - 20 0.00512 - 21 0.0448 - 22 0.000854 - 26 0.0064 - 28 0.00427 - 29 0.193 - 31 0.000854 - 32 0.0952 - 33 0.111 - 34 0.000427 - 40 0.000854 - 41 0.00683 - 43 0.00128 - 44 0.000427 - 45 0.000854 - - 21 5 4 0 - 19 0.4 - 20 0.2 - 26 0.2 - 33 0.2 - - 49 1 1 0 - 28 1 - - 36 159 12 0 - 3 0.0126 - 8 0.201 - 9 0.00629 - 10 0.00629 - 13 0.371 - 14 0.302 - 15 0.0566 - 21 0.00629 - 30 0.00629 - 31 0.00629 - 39 0.0189 - 45 0.00629 - - 41 6 6 0 - 0 0.167 - 12 0.167 - 15 0.167 - 31 0.167 - 45 0.167 - 46 0.167 - - 45 2 1 0 - 8 1 - - 47 7352 36 19 - 0 0.266 - 2 0.000408 - 3 0.00354 - 4 0.0415 - 5 0.000952 - 7 0.0181 - 8 0.00871 - 9 0.000408 - 10 0.000816 - 12 0.102 - 13 0.00789 - 14 0.0139 - 15 0.0305 - 16 0.000272 - 17 0.000136 - 18 0.000272 - 19 0.0664 - 20 0.00394 - 21 0.0435 - 22 0.000408 - 23 0.000136 - 26 0.00367 - 28 0.00231 - 29 0.161 - 30 0.000272 - 31 0.00218 - 32 0.0768 - 33 0.132 - 34 0.000272 - 39 0.000408 - 40 0.00068 - 41 0.00952 - 42 0.000272 - 43 0.000408 - 44 0.000408 - 45 0.000816 - - 3 5 1 0 - 7 1 - - 4 61 10 0 - 0 0.262 - 7 0.148 - 12 0.115 - 13 0.164 - 15 0.131 - 18 0.0164 - 21 0.0164 - 29 0.0164 - 32 0.0492 - 33 0.082 - - 7 358 24 0 - 0 0.00559 - 3 0.00279 - 4 0.154 - 7 0.014 - 8 0.0559 - 9 0.00279 - 10 0.00838 - 13 0.0223 - 14 0.0922 - 15 0.19 - 16 0.00279 - 19 0.237 - 20 0.0279 - 21 0.0447 - 22 0.00279 - 23 0.00279 - 28 0.00279 - 29 0.0279 - 30 0.00559 - 31 0.0251 - 32 0.00838 - 33 0.0168 - 41 0.0447 - 45 0.00279 - - 8 31 12 0 - 0 0.0645 - 4 0.226 - 7 0.194 - 13 0.0323 - 15 0.0968 - 17 0.0323 - 19 0.161 - 20 0.0645 - 29 0.0323 - 40 0.0323 - 41 0.0323 - 42 0.0323 - - 9 2 2 0 - 12 0.5 - 15 0.5 - - 10 4 1 0 - 7 1 - - 13 163 13 0 - 0 0.307 - 4 0.092 - 7 0.147 - 8 0.0123 - 12 0.0307 - 15 0.0368 - 19 0.092 - 21 0.0245 - 26 0.0245 - 29 0.0859 - 33 0.0982 - 41 0.0429 - 44 0.00613 - - 14 107 14 0 - 0 0.327 - 4 0.028 - 7 0.0561 - 8 0.0187 - 12 0.0467 - 15 0.00935 - 19 0.103 - 21 0.0187 - 26 0.0374 - 29 0.112 - 32 0.215 - 34 0.00935 - 41 0.00935 - 45 0.00935 - - 15 2 2 0 - 7 0.5 - 33 0.5 - - 21 11 5 0 - 0 0.182 - 4 0.0909 - 7 0.364 - 12 0.182 - 19 0.182 - - 32 1 1 0 - 28 1 - - 34 4153 29 0 - 0 0.278 - 2 0.000482 - 3 0.0053 - 4 0.0287 - 5 0.00144 - 7 0.00891 - 8 0.00722 - 9 0.000482 - 10 0.000241 - 12 0.135 - 13 0.0065 - 14 0.0125 - 15 0.0219 - 16 0.000241 - 18 0.000241 - 19 0.0361 - 20 0.0012 - 21 0.0467 - 26 0.000963 - 28 0.0012 - 29 0.161 - 31 0.000963 - 32 0.0739 - 33 0.164 - 39 0.000722 - 41 0.00602 - 42 0.000241 - 44 0.000241 - 45 0.000482 - - 35 2312 26 0 - 0 0.271 - 3 0.0013 - 4 0.0433 - 7 0.013 - 8 0.00433 - 10 0.000865 - 12 0.0666 - 13 0.00519 - 14 0.00692 - 15 0.019 - 19 0.0917 - 20 0.00519 - 21 0.0437 - 22 0.000865 - 26 0.00649 - 28 0.00433 - 29 0.196 - 31 0.000865 - 32 0.0965 - 33 0.112 - 34 0.000433 - 40 0.000865 - 41 0.00692 - 43 0.0013 - 44 0.000433 - 45 0.000865 - - 49 2 2 0 - 15 0.5 - 19 0.5 - - 55 7 5 0 - 0 0.143 - 21 0.143 - 29 0.143 - 32 0.286 - 41 0.286 - - 57 59 14 0 - 0 0.407 - 4 0.0678 - 5 0.0169 - 12 0.0847 - 14 0.0169 - 15 0.0169 - 19 0.0508 - 21 0.0169 - 29 0.186 - 31 0.0169 - 32 0.0169 - 33 0.0508 - 40 0.0169 - 41 0.0339 - - 60 2 1 0 - 7 1 - - 62 1 1 0 - 40 1 - - 73 62 7 0 - 0 0.581 - 2 0.0161 - 12 0.129 - 19 0.0323 - 29 0.161 - 32 0.0484 - 33 0.0323 - - 48 4 2 0 - 13 0.75 - 19 0.25 - - 49 2 2 0 - 15 0.5 - 19 0.5 - - 55 28 8 4 - 0 0.0357 - 7 0.607 - 13 0.0357 - 21 0.0357 - 26 0.0357 - 29 0.0357 - 32 0.0714 - 41 0.143 - - 36 4 3 0 - 13 0.25 - 21 0.25 - 32 0.5 - - 41 3 1 0 - 41 1 - - 47 18 2 0 - 7 0.944 - 26 0.0556 - - 72 2 2 0 - 0 0.5 - 29 0.5 - - 57 60 15 1 - 0 0.4 - 4 0.0667 - 5 0.0167 - 7 0.0167 - 12 0.0833 - 14 0.0167 - 15 0.0167 - 19 0.05 - 21 0.0167 - 29 0.183 - 31 0.0167 - 32 0.0167 - 33 0.05 - 40 0.0167 - 41 0.0333 - - 55 18 6 0 - 0 0.444 - 4 0.0556 - 5 0.0556 - 12 0.111 - 21 0.0556 - 29 0.278 - - 58 4 4 0 - 0 0.25 - 4 0.25 - 13 0.25 - 19 0.25 - - 60 2 1 0 - 7 1 - - 62 1 1 0 - 40 1 - - 69 1 1 0 - 41 1 - - 72 78 8 0 - 7 0.846 - 8 0.0128 - 15 0.0128 - 19 0.0128 - 21 0.0256 - 26 0.0256 - 41 0.0513 - 44 0.0128 - - 73 62 7 0 - 0 0.581 - 2 0.0161 - 12 0.129 - 19 0.0323 - 29 0.161 - 32 0.0484 - 33 0.0323 - -73 1173 26 5 - 0 0.0682 - 2 0.00171 - 3 0.0358 - 4 0.137 - 5 0.0102 - 8 0.0171 - 12 0.0153 - 13 0.0341 - 14 0.0614 - 15 0.087 - 16 0.00171 - 19 0.14 - 20 0.00682 - 21 0.00171 - 26 0.00853 - 29 0.0171 - 32 0.00682 - 33 0.00341 - 34 0.299 - 35 0.0315 - 36 0.000853 - 37 0.000853 - 39 0.00512 - 40 0.00341 - 41 0.00341 - 43 0.00171 - - 7 373 5 0 - 4 0.00268 - 34 0.903 - 35 0.0885 - 36 0.00268 - 37 0.00268 - - 26 18 2 0 - 34 0.778 - 35 0.222 - - 47 391 22 1 - 0 0.102 - 2 0.00256 - 3 0.0537 - 4 0.205 - 5 0.0153 - 8 0.0256 - 12 0.023 - 13 0.0512 - 14 0.0921 - 15 0.13 - 16 0.00256 - 19 0.21 - 20 0.0102 - 21 0.00256 - 26 0.0128 - 29 0.0256 - 32 0.0102 - 33 0.00512 - 39 0.00767 - 40 0.00512 - 41 0.00512 - 43 0.00256 - - 64 1 1 0 - 41 1 - - 64 1 1 0 - 41 1 - - 72 389 22 1 - 0 0.1 - 2 0.00257 - 3 0.054 - 4 0.206 - 5 0.0154 - 8 0.0257 - 12 0.0231 - 13 0.0514 - 14 0.0925 - 15 0.131 - 16 0.00257 - 19 0.211 - 20 0.0103 - 21 0.00257 - 26 0.0129 - 29 0.0257 - 32 0.0103 - 33 0.00514 - 39 0.00771 - 40 0.00514 - 41 0.00257 - 43 0.00257 - - 26 18 8 0 - 4 0.389 - 13 0.0556 - 14 0.0556 - 15 0.0556 - 19 0.278 - 21 0.0556 - 40 0.0556 - 43 0.0556 - -74 426 24 23 - 0 0.00939 - 4 0.0986 - 7 0.0657 - 8 0.0188 - 10 0.00469 - 13 0.0329 - 14 0.0164 - 15 0.00939 - 19 0.0775 - 20 0.0164 - 21 0.0164 - 22 0.00939 - 26 0.0164 - 28 0.00469 - 31 0.00939 - 33 0.0141 - 34 0.00235 - 35 0.00469 - 40 0.124 - 41 0.0516 - 42 0.12 - 43 0.00469 - 46 0.00939 - 47 0.263 - - 2 4 4 0 - 7 0.25 - 14 0.25 - 19 0.25 - 26 0.25 - - 4 8 4 0 - 7 0.125 - 10 0.125 - 22 0.5 - 47 0.25 - - 6 2 2 0 - 8 0.5 - 40 0.5 - - 7 9 5 0 - 4 0.111 - 7 0.222 - 8 0.111 - 35 0.111 - 47 0.444 - - 9 23 6 0 - 4 0.348 - 7 0.0435 - 13 0.13 - 14 0.13 - 19 0.261 - 20 0.087 - - 12 1 1 0 - 28 1 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 7 0.25 - 41 0.25 - - 14 2 2 0 - 8 0.5 - 40 0.5 - - 15 4 3 0 - 26 0.25 - 40 0.5 - 43 0.25 - - 21 3 3 0 - 20 0.333 - 40 0.333 - 41 0.333 - - 22 10 2 0 - 4 0.3 - 19 0.7 - - 25 39 9 0 - 7 0.0513 - 8 0.0256 - 13 0.0769 - 15 0.0256 - 21 0.0513 - 31 0.0256 - 33 0.0769 - 42 0.538 - 47 0.128 - - 26 5 2 0 - 26 0.4 - 47 0.6 - - 35 2 1 0 - 7 1 - - 40 23 2 0 - 46 0.087 - 47 0.913 - - 41 4 2 0 - 4 0.75 - 7 0.25 - - 42 9 5 0 - 7 0.444 - 13 0.111 - 21 0.111 - 31 0.111 - 47 0.222 - - 47 174 22 17 - 0 0.0115 - 4 0.092 - 7 0.0517 - 8 0.0172 - 10 0.00575 - 13 0.0345 - 14 0.0172 - 15 0.00575 - 19 0.092 - 20 0.0172 - 21 0.0115 - 26 0.0172 - 28 0.00575 - 31 0.00575 - 33 0.0172 - 35 0.00575 - 40 0.0862 - 41 0.0517 - 42 0.121 - 43 0.00575 - 46 0.00575 - 47 0.322 - - 4 4 3 0 - 7 0.25 - 10 0.25 - 47 0.5 - - 7 8 4 0 - 7 0.25 - 8 0.125 - 35 0.125 - 47 0.5 - - 9 22 5 0 - 4 0.364 - 13 0.136 - 14 0.136 - 19 0.273 - 20 0.0909 - - 12 1 1 0 - 28 1 - - 13 4 4 0 - 0 0.25 - 4 0.25 - 7 0.25 - 41 0.25 - - 14 2 2 0 - 8 0.5 - 40 0.5 - - 15 3 3 0 - 26 0.333 - 40 0.333 - 43 0.333 - - 21 3 3 0 - 20 0.333 - 40 0.333 - 41 0.333 - - 22 10 2 0 - 4 0.3 - 19 0.7 - - 25 39 9 0 - 7 0.0513 - 8 0.0256 - 13 0.0769 - 15 0.0256 - 21 0.0513 - 31 0.0256 - 33 0.0769 - 42 0.538 - 47 0.128 - - 26 5 2 0 - 26 0.4 - 47 0.6 - - 35 2 1 0 - 7 1 - - 40 21 1 0 - 47 1 - - 48 5 3 0 - 4 0.4 - 19 0.4 - 47 0.2 - - 55 19 5 0 - 4 0.0526 - 7 0.0526 - 40 0.368 - 41 0.316 - 47 0.211 - - 57 10 3 0 - 40 0.2 - 46 0.1 - 47 0.7 - - 69 1 1 0 - 0 1 - - 48 6 4 0 - 4 0.333 - 19 0.333 - 40 0.167 - 47 0.167 - - 55 33 8 0 - 4 0.0303 - 7 0.0606 - 15 0.0303 - 34 0.0303 - 40 0.485 - 41 0.212 - 42 0.0303 - 47 0.121 - - 57 15 4 0 - 40 0.333 - 42 0.133 - 46 0.0667 - 47 0.467 - - 69 4 2 0 - 0 0.25 - 40 0.75 - - 74 26 11 1 - 4 0.231 - 7 0.0769 - 8 0.0385 - 13 0.0385 - 15 0.0385 - 20 0.0385 - 21 0.0769 - 31 0.0385 - 40 0.0769 - 41 0.115 - 42 0.231 - - 41 6 4 0 - 4 0.333 - 13 0.167 - 20 0.167 - 40 0.333 - diff --git a/samples/GAS/hello.ms b/samples/GAS/hello.ms new file mode 100644 index 00000000..b063c296 --- /dev/null +++ b/samples/GAS/hello.ms @@ -0,0 +1,91 @@ +# output(): Hello, world.\n +# mach(): all + +# Emit hello world while switching back and forth between arm/thumb. +# ??? Unfinished + + .macro invalid +# This is "undefined" but it's not properly decoded yet. + .word 0x07ffffff +# This is stc which isn't recognized yet. + stc 0,cr0,[r0] + .endm + + .global _start +_start: +# Run some simple insns to confirm the engine is at least working. + nop + +# Skip over output text. + + bl skip_output + +hello_text: + .asciz "Hello, world.\n" + + .p2align 2 +skip_output: + +# Prime loop. + + mov r4, r14 + +output_next: + +# Switch arm->thumb to output next chacter. +# At this point r4 must point to the next character to output. + + adr r0, into_thumb + 1 + bx r0 + +into_thumb: + .thumb + +# Output a character. + + mov r0,#3 @ writec angel call + mov r1,r4 + swi 0xab @ ??? Confirm number. + +# Switch thumb->arm. + + adr r5, back_to_arm + bx r5 + + .p2align 2 +back_to_arm: + .arm + +# Load next character, see if done. + + add r4,r4,#1 + sub r3,r3,r3 + ldrb r5,[r4,r3] + teq r5,#0 + beq done + +# Output a character (in arm mode). + + mov r0,#3 + mov r1,r4 + swi #0x123456 + +# Load next character, see if done. + + add r4,r4,#1 + sub r3,r3,r3 + ldrb r5,[r4,r3] + teq r5,#0 + bne output_next + +done: + mov r0,#0x18 + ldr r1,exit_code + swi #0x123456 + +# If that fails, try to die with an invalid insn. + + invalid + +exit_code: + .word 0x20026 diff --git a/samples/Go/api.pb.go b/samples/Go/api.pb.go new file mode 100644 index 00000000..a4fe4921 --- /dev/null +++ b/samples/Go/api.pb.go @@ -0,0 +1,1157 @@ +// Code generated by protoc-gen-gogo. +// source: api.proto +// DO NOT EDIT! + +/* + Package proto is a generated protocol buffer package. + + It is generated from these files: + api.proto + config.proto + data.proto + errors.proto + gossip.proto + heartbeat.proto + internal.proto + + It has these top-level messages: + ClientCmdID + RequestHeader + ResponseHeader + ContainsRequest + ContainsResponse + GetRequest + GetResponse + PutRequest + PutResponse + ConditionalPutRequest + ConditionalPutResponse + IncrementRequest + IncrementResponse + DeleteRequest + DeleteResponse + DeleteRangeRequest + DeleteRangeResponse + ScanRequest + ScanResponse + EndTransactionRequest + EndTransactionResponse + ReapQueueRequest + ReapQueueResponse + EnqueueUpdateRequest + EnqueueUpdateResponse + EnqueueMessageRequest + EnqueueMessageResponse + RequestUnion + ResponseUnion + BatchRequest + BatchResponse + AdminSplitRequest + AdminSplitResponse + AdminMergeRequest + AdminMergeResponse +*/ +package proto + +import proto1 "github.com/gogo/protobuf/proto" +import math "math" + +// discarding unused import gogoproto "github.com/gogo/protobuf/gogoproto/gogo.pb" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto1.Marshal +var _ = math.Inf + +// ClientCmdID provides a unique ID for client commands. Clients which +// provide ClientCmdID gain operation idempotence. In other words, +// clients can submit the same command multiple times and always +// receive the same response. This is common on retries over flaky +// networks. However, the system imposes a limit on how long +// idempotence is provided. Retries over an hour old are not +// guaranteed idempotence and may be executed more than once with +// potentially different results. +// +// ClientCmdID contains the client's timestamp and a client-generated +// random number. The client Timestamp is specified in unix +// nanoseconds and is used for some uniqueness but also to provide a +// rough ordering of requests, useful for data locality on the +// server. The Random is specified for additional uniqueness. +// NOTE: An accurate time signal IS NOT required for correctness. +type ClientCmdID struct { + // Nanoseconds since Unix epoch. + WallTime int64 `protobuf:"varint,1,opt,name=wall_time" json:"wall_time"` + Random int64 `protobuf:"varint,2,opt,name=random" json:"random"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ClientCmdID) Reset() { *m = ClientCmdID{} } +func (m *ClientCmdID) String() string { return proto1.CompactTextString(m) } +func (*ClientCmdID) ProtoMessage() {} + +func (m *ClientCmdID) GetWallTime() int64 { + if m != nil { + return m.WallTime + } + return 0 +} + +func (m *ClientCmdID) GetRandom() int64 { + if m != nil { + return m.Random + } + return 0 +} + +// RequestHeader is supplied with every storage node request. +type RequestHeader struct { + // Timestamp specifies time at which read or writes should be + // performed. If the timestamp is set to zero value, its value + // is initialized to the wall time of the receiving node. + Timestamp Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp"` + // CmdID is optionally specified for request idempotence + // (i.e. replay protection). + CmdID ClientCmdID `protobuf:"bytes,2,opt,name=cmd_id" json:"cmd_id"` + // The key for request. If the request operates on a range, this + // represents the starting key for the range. + Key Key `protobuf:"bytes,3,opt,name=key,customtype=Key" json:"key"` + // End key is empty if request spans only a single key. + EndKey Key `protobuf:"bytes,4,opt,name=end_key,customtype=Key" json:"end_key"` + // User is the originating user. Used to lookup priority when + // scheduling queued operations at target node. + User string `protobuf:"bytes,5,opt,name=user" json:"user"` + // Replica specifies the destination for the request. This is a specific + // instance of the available replicas belonging to RangeID. + Replica Replica `protobuf:"bytes,6,opt,name=replica" json:"replica"` + // RaftID specifies the ID of the Raft consensus group which the key + // range belongs to. This is used by the receiving node to route the + // request to the correct range. + RaftID int64 `protobuf:"varint,7,opt,name=raft_id" json:"raft_id"` + // UserPriority specifies priority multiple for non-transactional + // commands. This value should be a positive integer [1, 2^31-1). + // It's properly viewed as a multiple for how likely this + // transaction will be to prevail if a write conflict occurs. + // Commands with UserPriority=100 will be 100x less likely to be + // aborted as conflicting transactions or non-transactional commands + // with UserPriority=1. This value is ignored if Txn is + // specified. If neither this value nor Txn is specified, the value + // defaults to 1. + UserPriority *int32 `protobuf:"varint,8,opt,name=user_priority,def=1" json:"user_priority,omitempty"` + // Txn is set non-nil if a transaction is underway. To start a txn, + // the first request should set this field to non-nil with name and + // isolation level set as desired. The response will contain the + // fully-initialized transaction with txn ID, priority, initial + // timestamp, and maximum timestamp. + Txn *Transaction `protobuf:"bytes,9,opt,name=txn" json:"txn,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RequestHeader) Reset() { *m = RequestHeader{} } +func (m *RequestHeader) String() string { return proto1.CompactTextString(m) } +func (*RequestHeader) ProtoMessage() {} + +const Default_RequestHeader_UserPriority int32 = 1 + +func (m *RequestHeader) GetTimestamp() Timestamp { + if m != nil { + return m.Timestamp + } + return Timestamp{} +} + +func (m *RequestHeader) GetCmdID() ClientCmdID { + if m != nil { + return m.CmdID + } + return ClientCmdID{} +} + +func (m *RequestHeader) GetUser() string { + if m != nil { + return m.User + } + return "" +} + +func (m *RequestHeader) GetReplica() Replica { + if m != nil { + return m.Replica + } + return Replica{} +} + +func (m *RequestHeader) GetRaftID() int64 { + if m != nil { + return m.RaftID + } + return 0 +} + +func (m *RequestHeader) GetUserPriority() int32 { + if m != nil && m.UserPriority != nil { + return *m.UserPriority + } + return Default_RequestHeader_UserPriority +} + +func (m *RequestHeader) GetTxn() *Transaction { + if m != nil { + return m.Txn + } + return nil +} + +// ResponseHeader is returned with every storage node response. +type ResponseHeader struct { + // Error is non-nil if an error occurred. + Error *Error `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` + // Timestamp specifies time at which read or write actually was + // performed. In the case of both reads and writes, if the timestamp + // supplied to the request was 0, the wall time of the node + // servicing the request will be set here. Additionally, in the case + // of writes, this value may be increased from the timestamp passed + // with the RequestHeader if the key being written was either read + // or written more recently. + Timestamp Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp"` + // Transaction is non-nil if the request specified a non-nil + // transaction. The transaction timestamp and/or priority may have + // been updated, depending on the outcome of the request. + Txn *Transaction `protobuf:"bytes,3,opt,name=txn" json:"txn,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } +func (m *ResponseHeader) String() string { return proto1.CompactTextString(m) } +func (*ResponseHeader) ProtoMessage() {} + +func (m *ResponseHeader) GetError() *Error { + if m != nil { + return m.Error + } + return nil +} + +func (m *ResponseHeader) GetTimestamp() Timestamp { + if m != nil { + return m.Timestamp + } + return Timestamp{} +} + +func (m *ResponseHeader) GetTxn() *Transaction { + if m != nil { + return m.Txn + } + return nil +} + +// A ContainsRequest is arguments to the Contains() method. +type ContainsRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ContainsRequest) Reset() { *m = ContainsRequest{} } +func (m *ContainsRequest) String() string { return proto1.CompactTextString(m) } +func (*ContainsRequest) ProtoMessage() {} + +// A ContainsResponse is the return value of the Contains() method. +type ContainsResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Exists bool `protobuf:"varint,2,opt,name=exists" json:"exists"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ContainsResponse) Reset() { *m = ContainsResponse{} } +func (m *ContainsResponse) String() string { return proto1.CompactTextString(m) } +func (*ContainsResponse) ProtoMessage() {} + +func (m *ContainsResponse) GetExists() bool { + if m != nil { + return m.Exists + } + return false +} + +// A GetRequest is arguments to the Get() method. +type GetRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GetRequest) Reset() { *m = GetRequest{} } +func (m *GetRequest) String() string { return proto1.CompactTextString(m) } +func (*GetRequest) ProtoMessage() {} + +// A GetResponse is the return value from the Get() method. +// If the key doesn't exist, returns nil for Value.Bytes. +type GetResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Value *Value `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GetResponse) Reset() { *m = GetResponse{} } +func (m *GetResponse) String() string { return proto1.CompactTextString(m) } +func (*GetResponse) ProtoMessage() {} + +func (m *GetResponse) GetValue() *Value { + if m != nil { + return m.Value + } + return nil +} + +// A PutRequest is arguments to the Put() method. Note that to write +// an empty value, the value parameter is still specified, but both +// Bytes and Integer are set to nil. +type PutRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Value Value `protobuf:"bytes,2,opt,name=value" json:"value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *PutRequest) Reset() { *m = PutRequest{} } +func (m *PutRequest) String() string { return proto1.CompactTextString(m) } +func (*PutRequest) ProtoMessage() {} + +func (m *PutRequest) GetValue() Value { + if m != nil { + return m.Value + } + return Value{} +} + +// A PutResponse is the return value from the Put() method. +type PutResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *PutResponse) Reset() { *m = PutResponse{} } +func (m *PutResponse) String() string { return proto1.CompactTextString(m) } +func (*PutResponse) ProtoMessage() {} + +// A ConditionalPutRequest is arguments to the ConditionalPut() method. +// +// - Returns true and sets value if ExpValue equals existing value. +// - If key doesn't exist and ExpValue is nil, sets value. +// - If key exists, but value is empty and ExpValue is not nil but empty, sets value. +// - Otherwise, returns error and the actual value of the key in the response. +type ConditionalPutRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // The value to put. + Value Value `protobuf:"bytes,2,opt,name=value" json:"value"` + // ExpValue.Bytes empty to test for non-existence. Specify as nil + // to indicate there should be no existing entry. This is different + // from the expectation that the value exists but is empty. + ExpValue *Value `protobuf:"bytes,3,opt,name=exp_value" json:"exp_value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ConditionalPutRequest) Reset() { *m = ConditionalPutRequest{} } +func (m *ConditionalPutRequest) String() string { return proto1.CompactTextString(m) } +func (*ConditionalPutRequest) ProtoMessage() {} + +func (m *ConditionalPutRequest) GetValue() Value { + if m != nil { + return m.Value + } + return Value{} +} + +func (m *ConditionalPutRequest) GetExpValue() *Value { + if m != nil { + return m.ExpValue + } + return nil +} + +// A ConditionalPutResponse is the return value from the +// ConditionalPut() method. +type ConditionalPutResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ConditionalPutResponse) Reset() { *m = ConditionalPutResponse{} } +func (m *ConditionalPutResponse) String() string { return proto1.CompactTextString(m) } +func (*ConditionalPutResponse) ProtoMessage() {} + +// An IncrementRequest is arguments to the Increment() method. It +// increments the value for key, and returns the new value. If no +// value exists for a key, incrementing by 0 is not a noop, but will +// create a zero value. IncrementRequest cannot be called on a key set +// by Put() or ConditionalPut(). Similarly, Get(), Put() and +// ConditionalPut() cannot be invoked on an incremented key. +type IncrementRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Increment int64 `protobuf:"varint,2,opt,name=increment" json:"increment"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *IncrementRequest) Reset() { *m = IncrementRequest{} } +func (m *IncrementRequest) String() string { return proto1.CompactTextString(m) } +func (*IncrementRequest) ProtoMessage() {} + +func (m *IncrementRequest) GetIncrement() int64 { + if m != nil { + return m.Increment + } + return 0 +} + +// An IncrementResponse is the return value from the Increment +// method. The new value after increment is specified in NewValue. If +// the value could not be decoded as specified, Error will be set. +type IncrementResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + NewValue int64 `protobuf:"varint,2,opt,name=new_value" json:"new_value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *IncrementResponse) Reset() { *m = IncrementResponse{} } +func (m *IncrementResponse) String() string { return proto1.CompactTextString(m) } +func (*IncrementResponse) ProtoMessage() {} + +func (m *IncrementResponse) GetNewValue() int64 { + if m != nil { + return m.NewValue + } + return 0 +} + +// A DeleteRequest is arguments to the Delete() method. +type DeleteRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } +func (m *DeleteRequest) String() string { return proto1.CompactTextString(m) } +func (*DeleteRequest) ProtoMessage() {} + +// A DeleteResponse is the return value from the Delete() method. +type DeleteResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } +func (m *DeleteResponse) String() string { return proto1.CompactTextString(m) } +func (*DeleteResponse) ProtoMessage() {} + +// A DeleteRangeRequest is arguments to the DeleteRange method. It +// specifies the range of keys to delete. +type DeleteRangeRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // If 0, *all* entries between Key (inclusive) and EndKey + // (exclusive) are deleted. Must be >= 0 + MaxEntriesToDelete int64 `protobuf:"varint,2,opt,name=max_entries_to_delete" json:"max_entries_to_delete"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteRangeRequest) Reset() { *m = DeleteRangeRequest{} } +func (m *DeleteRangeRequest) String() string { return proto1.CompactTextString(m) } +func (*DeleteRangeRequest) ProtoMessage() {} + +func (m *DeleteRangeRequest) GetMaxEntriesToDelete() int64 { + if m != nil { + return m.MaxEntriesToDelete + } + return 0 +} + +// A DeleteRangeResponse is the return value from the DeleteRange() +// method. +type DeleteRangeResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Number of entries removed. + NumDeleted int64 `protobuf:"varint,2,opt,name=num_deleted" json:"num_deleted"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DeleteRangeResponse) Reset() { *m = DeleteRangeResponse{} } +func (m *DeleteRangeResponse) String() string { return proto1.CompactTextString(m) } +func (*DeleteRangeResponse) ProtoMessage() {} + +func (m *DeleteRangeResponse) GetNumDeleted() int64 { + if m != nil { + return m.NumDeleted + } + return 0 +} + +// A ScanRequest is arguments to the Scan() method. It specifies the +// start and end keys for the scan and the maximum number of results. +type ScanRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Must be > 0. + MaxResults int64 `protobuf:"varint,2,opt,name=max_results" json:"max_results"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ScanRequest) Reset() { *m = ScanRequest{} } +func (m *ScanRequest) String() string { return proto1.CompactTextString(m) } +func (*ScanRequest) ProtoMessage() {} + +func (m *ScanRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + +// A ScanResponse is the return value from the Scan() method. +type ScanResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Empty if no rows were scanned. + Rows []KeyValue `protobuf:"bytes,2,rep,name=rows" json:"rows"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ScanResponse) Reset() { *m = ScanResponse{} } +func (m *ScanResponse) String() string { return proto1.CompactTextString(m) } +func (*ScanResponse) ProtoMessage() {} + +func (m *ScanResponse) GetRows() []KeyValue { + if m != nil { + return m.Rows + } + return nil +} + +// An EndTransactionRequest is arguments to the EndTransaction() method. +// It specifies whether to commit or roll back an extant transaction. +type EndTransactionRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // False to abort and rollback. + Commit bool `protobuf:"varint,2,opt,name=commit" json:"commit"` + // Optional commit triggers. Note that commit triggers are for + // internal use only and will be ignored if requested through the + // public-facing KV API. + SplitTrigger *SplitTrigger `protobuf:"bytes,3,opt,name=split_trigger" json:"split_trigger,omitempty"` + MergeTrigger *MergeTrigger `protobuf:"bytes,4,opt,name=merge_trigger" json:"merge_trigger,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EndTransactionRequest) Reset() { *m = EndTransactionRequest{} } +func (m *EndTransactionRequest) String() string { return proto1.CompactTextString(m) } +func (*EndTransactionRequest) ProtoMessage() {} + +func (m *EndTransactionRequest) GetCommit() bool { + if m != nil { + return m.Commit + } + return false +} + +func (m *EndTransactionRequest) GetSplitTrigger() *SplitTrigger { + if m != nil { + return m.SplitTrigger + } + return nil +} + +func (m *EndTransactionRequest) GetMergeTrigger() *MergeTrigger { + if m != nil { + return m.MergeTrigger + } + return nil +} + +// An EndTransactionResponse is the return value from the +// EndTransaction() method. The final transaction record is returned +// as part of the response header. In particular, transaction status +// and timestamp will be updated to reflect final committed +// values. Clients may propagate the transaction timestamp as the +// final txn commit timestamp in order to preserve causal ordering +// between subsequent transactions. CommitWait specifies the commit +// wait, which is the remaining time the client MUST wait before +// signalling completion of the transaction to another distributed +// node to maintain consistency. +type EndTransactionResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Remaining time (ns). + CommitWait int64 `protobuf:"varint,2,opt,name=commit_wait" json:"commit_wait"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EndTransactionResponse) Reset() { *m = EndTransactionResponse{} } +func (m *EndTransactionResponse) String() string { return proto1.CompactTextString(m) } +func (*EndTransactionResponse) ProtoMessage() {} + +func (m *EndTransactionResponse) GetCommitWait() int64 { + if m != nil { + return m.CommitWait + } + return 0 +} + +// A ReapQueueRequest is arguments to the ReapQueue() method. It +// specifies the recipient inbox key to which messages are waiting +// to be reapted and also the maximum number of results to return. +type ReapQueueRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Maximum results to return; must be > 0. + MaxResults int64 `protobuf:"varint,2,opt,name=max_results" json:"max_results"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ReapQueueRequest) Reset() { *m = ReapQueueRequest{} } +func (m *ReapQueueRequest) String() string { return proto1.CompactTextString(m) } +func (*ReapQueueRequest) ProtoMessage() {} + +func (m *ReapQueueRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + +// A ReapQueueResponse is the return value from the ReapQueue() method. +type ReapQueueResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Messages []Value `protobuf:"bytes,2,rep,name=messages" json:"messages"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ReapQueueResponse) Reset() { *m = ReapQueueResponse{} } +func (m *ReapQueueResponse) String() string { return proto1.CompactTextString(m) } +func (*ReapQueueResponse) ProtoMessage() {} + +func (m *ReapQueueResponse) GetMessages() []Value { + if m != nil { + return m.Messages + } + return nil +} + +// An EnqueueUpdateRequest is arguments to the EnqueueUpdate() method. +// It specifies the update to enqueue for asynchronous execution. +// Update is an instance of one of the following messages: PutRequest, +// IncrementRequest, DeleteRequest, DeleteRangeRequest, or +// AccountingRequest. +type EnqueueUpdateRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueUpdateRequest) Reset() { *m = EnqueueUpdateRequest{} } +func (m *EnqueueUpdateRequest) String() string { return proto1.CompactTextString(m) } +func (*EnqueueUpdateRequest) ProtoMessage() {} + +// An EnqueueUpdateResponse is the return value from the +// EnqueueUpdate() method. +type EnqueueUpdateResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueUpdateResponse) Reset() { *m = EnqueueUpdateResponse{} } +func (m *EnqueueUpdateResponse) String() string { return proto1.CompactTextString(m) } +func (*EnqueueUpdateResponse) ProtoMessage() {} + +// An EnqueueMessageRequest is arguments to the EnqueueMessage() method. +// It specifies the recipient inbox key and the message (an arbitrary +// byte slice value). +type EnqueueMessageRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + // Message value to delivery to inbox. + Msg Value `protobuf:"bytes,2,opt,name=msg" json:"msg"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueMessageRequest) Reset() { *m = EnqueueMessageRequest{} } +func (m *EnqueueMessageRequest) String() string { return proto1.CompactTextString(m) } +func (*EnqueueMessageRequest) ProtoMessage() {} + +func (m *EnqueueMessageRequest) GetMsg() Value { + if m != nil { + return m.Msg + } + return Value{} +} + +// An EnqueueMessageResponse is the return value from the +// EnqueueMessage() method. +type EnqueueMessageResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnqueueMessageResponse) Reset() { *m = EnqueueMessageResponse{} } +func (m *EnqueueMessageResponse) String() string { return proto1.CompactTextString(m) } +func (*EnqueueMessageResponse) ProtoMessage() {} + +// A RequestUnion contains exactly one of the optional requests. +type RequestUnion struct { + Contains *ContainsRequest `protobuf:"bytes,1,opt,name=contains" json:"contains,omitempty"` + Get *GetRequest `protobuf:"bytes,2,opt,name=get" json:"get,omitempty"` + Put *PutRequest `protobuf:"bytes,3,opt,name=put" json:"put,omitempty"` + ConditionalPut *ConditionalPutRequest `protobuf:"bytes,4,opt,name=conditional_put" json:"conditional_put,omitempty"` + Increment *IncrementRequest `protobuf:"bytes,5,opt,name=increment" json:"increment,omitempty"` + Delete *DeleteRequest `protobuf:"bytes,6,opt,name=delete" json:"delete,omitempty"` + DeleteRange *DeleteRangeRequest `protobuf:"bytes,7,opt,name=delete_range" json:"delete_range,omitempty"` + Scan *ScanRequest `protobuf:"bytes,8,opt,name=scan" json:"scan,omitempty"` + EndTransaction *EndTransactionRequest `protobuf:"bytes,9,opt,name=end_transaction" json:"end_transaction,omitempty"` + ReapQueue *ReapQueueRequest `protobuf:"bytes,10,opt,name=reap_queue" json:"reap_queue,omitempty"` + EnqueueUpdate *EnqueueUpdateRequest `protobuf:"bytes,11,opt,name=enqueue_update" json:"enqueue_update,omitempty"` + EnqueueMessage *EnqueueMessageRequest `protobuf:"bytes,12,opt,name=enqueue_message" json:"enqueue_message,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RequestUnion) Reset() { *m = RequestUnion{} } +func (m *RequestUnion) String() string { return proto1.CompactTextString(m) } +func (*RequestUnion) ProtoMessage() {} + +func (m *RequestUnion) GetContains() *ContainsRequest { + if m != nil { + return m.Contains + } + return nil +} + +func (m *RequestUnion) GetGet() *GetRequest { + if m != nil { + return m.Get + } + return nil +} + +func (m *RequestUnion) GetPut() *PutRequest { + if m != nil { + return m.Put + } + return nil +} + +func (m *RequestUnion) GetConditionalPut() *ConditionalPutRequest { + if m != nil { + return m.ConditionalPut + } + return nil +} + +func (m *RequestUnion) GetIncrement() *IncrementRequest { + if m != nil { + return m.Increment + } + return nil +} + +func (m *RequestUnion) GetDelete() *DeleteRequest { + if m != nil { + return m.Delete + } + return nil +} + +func (m *RequestUnion) GetDeleteRange() *DeleteRangeRequest { + if m != nil { + return m.DeleteRange + } + return nil +} + +func (m *RequestUnion) GetScan() *ScanRequest { + if m != nil { + return m.Scan + } + return nil +} + +func (m *RequestUnion) GetEndTransaction() *EndTransactionRequest { + if m != nil { + return m.EndTransaction + } + return nil +} + +func (m *RequestUnion) GetReapQueue() *ReapQueueRequest { + if m != nil { + return m.ReapQueue + } + return nil +} + +func (m *RequestUnion) GetEnqueueUpdate() *EnqueueUpdateRequest { + if m != nil { + return m.EnqueueUpdate + } + return nil +} + +func (m *RequestUnion) GetEnqueueMessage() *EnqueueMessageRequest { + if m != nil { + return m.EnqueueMessage + } + return nil +} + +// A ResponseUnion contains exactly one of the optional responses. +type ResponseUnion struct { + Contains *ContainsResponse `protobuf:"bytes,1,opt,name=contains" json:"contains,omitempty"` + Get *GetResponse `protobuf:"bytes,2,opt,name=get" json:"get,omitempty"` + Put *PutResponse `protobuf:"bytes,3,opt,name=put" json:"put,omitempty"` + ConditionalPut *ConditionalPutResponse `protobuf:"bytes,4,opt,name=conditional_put" json:"conditional_put,omitempty"` + Increment *IncrementResponse `protobuf:"bytes,5,opt,name=increment" json:"increment,omitempty"` + Delete *DeleteResponse `protobuf:"bytes,6,opt,name=delete" json:"delete,omitempty"` + DeleteRange *DeleteRangeResponse `protobuf:"bytes,7,opt,name=delete_range" json:"delete_range,omitempty"` + Scan *ScanResponse `protobuf:"bytes,8,opt,name=scan" json:"scan,omitempty"` + EndTransaction *EndTransactionResponse `protobuf:"bytes,9,opt,name=end_transaction" json:"end_transaction,omitempty"` + ReapQueue *ReapQueueResponse `protobuf:"bytes,10,opt,name=reap_queue" json:"reap_queue,omitempty"` + EnqueueUpdate *EnqueueUpdateResponse `protobuf:"bytes,11,opt,name=enqueue_update" json:"enqueue_update,omitempty"` + EnqueueMessage *EnqueueMessageResponse `protobuf:"bytes,12,opt,name=enqueue_message" json:"enqueue_message,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ResponseUnion) Reset() { *m = ResponseUnion{} } +func (m *ResponseUnion) String() string { return proto1.CompactTextString(m) } +func (*ResponseUnion) ProtoMessage() {} + +func (m *ResponseUnion) GetContains() *ContainsResponse { + if m != nil { + return m.Contains + } + return nil +} + +func (m *ResponseUnion) GetGet() *GetResponse { + if m != nil { + return m.Get + } + return nil +} + +func (m *ResponseUnion) GetPut() *PutResponse { + if m != nil { + return m.Put + } + return nil +} + +func (m *ResponseUnion) GetConditionalPut() *ConditionalPutResponse { + if m != nil { + return m.ConditionalPut + } + return nil +} + +func (m *ResponseUnion) GetIncrement() *IncrementResponse { + if m != nil { + return m.Increment + } + return nil +} + +func (m *ResponseUnion) GetDelete() *DeleteResponse { + if m != nil { + return m.Delete + } + return nil +} + +func (m *ResponseUnion) GetDeleteRange() *DeleteRangeResponse { + if m != nil { + return m.DeleteRange + } + return nil +} + +func (m *ResponseUnion) GetScan() *ScanResponse { + if m != nil { + return m.Scan + } + return nil +} + +func (m *ResponseUnion) GetEndTransaction() *EndTransactionResponse { + if m != nil { + return m.EndTransaction + } + return nil +} + +func (m *ResponseUnion) GetReapQueue() *ReapQueueResponse { + if m != nil { + return m.ReapQueue + } + return nil +} + +func (m *ResponseUnion) GetEnqueueUpdate() *EnqueueUpdateResponse { + if m != nil { + return m.EnqueueUpdate + } + return nil +} + +func (m *ResponseUnion) GetEnqueueMessage() *EnqueueMessageResponse { + if m != nil { + return m.EnqueueMessage + } + return nil +} + +// A BatchRequest contains one or more requests to be executed in +// parallel, or if applicable (based on write-only commands and +// range-locality), as a single update. +type BatchRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Requests []RequestUnion `protobuf:"bytes,2,rep,name=requests" json:"requests"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *BatchRequest) Reset() { *m = BatchRequest{} } +func (m *BatchRequest) String() string { return proto1.CompactTextString(m) } +func (*BatchRequest) ProtoMessage() {} + +func (m *BatchRequest) GetRequests() []RequestUnion { + if m != nil { + return m.Requests + } + return nil +} + +// A BatchResponse contains one or more responses, one per request +// corresponding to the requests in the matching BatchRequest. The +// error in the response header is set to the first error from the +// slice of responses, if applicable. +type BatchResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + Responses []ResponseUnion `protobuf:"bytes,2,rep,name=responses" json:"responses"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *BatchResponse) Reset() { *m = BatchResponse{} } +func (m *BatchResponse) String() string { return proto1.CompactTextString(m) } +func (*BatchResponse) ProtoMessage() {} + +func (m *BatchResponse) GetResponses() []ResponseUnion { + if m != nil { + return m.Responses + } + return nil +} + +// An AdminSplitRequest is arguments to the AdminSplit() method. The +// existing range which contains RequestHeader.Key is split by +// split_key. If split_key is not specified, then this method will +// determine a split key that is roughly halfway through the +// range. The existing range is resized to cover only its start key to +// the split key. The new range created by the split starts at the +// split key and extends to the original range's end key. If split_key +// is known, header.key should also be set to split_key. +// +// New range IDs for each of the split range's replica and a new Raft +// ID are generated by the operation. Split requests are done in the +// context of a distributed transaction which updates range addressing +// records, range metadata and finally, provides a commit trigger to +// update bookkeeping and instantiate the new range on commit. +// +// The new range contains range replicas located on the same stores; +// no range data is moved during this operation. The split can be +// thought of as a mostly logical operation, though some other +// metadata (e.g. response cache and range stats must be copied or +// recomputed). +type AdminSplitRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + SplitKey Key `protobuf:"bytes,2,opt,name=split_key,customtype=Key" json:"split_key"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminSplitRequest) Reset() { *m = AdminSplitRequest{} } +func (m *AdminSplitRequest) String() string { return proto1.CompactTextString(m) } +func (*AdminSplitRequest) ProtoMessage() {} + +// An AdminSplitResponse is the return value from the AdminSplit() +// method. +type AdminSplitResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminSplitResponse) Reset() { *m = AdminSplitResponse{} } +func (m *AdminSplitResponse) String() string { return proto1.CompactTextString(m) } +func (*AdminSplitResponse) ProtoMessage() {} + +// An AdminMergeRequest is arguments to the AdminMerge() method. A +// merge is always performed by calling AdminMerge on the range +// that is subsuming the passed in subsumed_range. The ranges must +// be consecutive in the key space, such that the end_key of the +// subsuming range must match the start_key of the range being subsumed. +// After the merge operation, the subsumed_range will no longer exist and +// the subsuming range will now encompass all keys from its original +// start_key to the end_key of the subsumed_range. +type AdminMergeRequest struct { + RequestHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + SubsumedRange RangeDescriptor `protobuf:"bytes,2,opt,name=subsumed_range" json:"subsumed_range"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminMergeRequest) Reset() { *m = AdminMergeRequest{} } +func (m *AdminMergeRequest) String() string { return proto1.CompactTextString(m) } +func (*AdminMergeRequest) ProtoMessage() {} + +func (m *AdminMergeRequest) GetSubsumedRange() RangeDescriptor { + if m != nil { + return m.SubsumedRange + } + return RangeDescriptor{} +} + +// An AdminMergeResponse is the return value from the AdminMerge() +// method. +type AdminMergeResponse struct { + ResponseHeader `protobuf:"bytes,1,opt,name=header,embedded=header" json:"header"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *AdminMergeResponse) Reset() { *m = AdminMergeResponse{} } +func (m *AdminMergeResponse) String() string { return proto1.CompactTextString(m) } +func (*AdminMergeResponse) ProtoMessage() {} + +func init() { +} +func (this *RequestUnion) GetValue() interface{} { + if this.Contains != nil { + return this.Contains + } + if this.Get != nil { + return this.Get + } + if this.Put != nil { + return this.Put + } + if this.ConditionalPut != nil { + return this.ConditionalPut + } + if this.Increment != nil { + return this.Increment + } + if this.Delete != nil { + return this.Delete + } + if this.DeleteRange != nil { + return this.DeleteRange + } + if this.Scan != nil { + return this.Scan + } + if this.EndTransaction != nil { + return this.EndTransaction + } + if this.ReapQueue != nil { + return this.ReapQueue + } + if this.EnqueueUpdate != nil { + return this.EnqueueUpdate + } + if this.EnqueueMessage != nil { + return this.EnqueueMessage + } + return nil +} + +func (this *RequestUnion) SetValue(value interface{}) bool { + switch vt := value.(type) { + case *ContainsRequest: + this.Contains = vt + case *GetRequest: + this.Get = vt + case *PutRequest: + this.Put = vt + case *ConditionalPutRequest: + this.ConditionalPut = vt + case *IncrementRequest: + this.Increment = vt + case *DeleteRequest: + this.Delete = vt + case *DeleteRangeRequest: + this.DeleteRange = vt + case *ScanRequest: + this.Scan = vt + case *EndTransactionRequest: + this.EndTransaction = vt + case *ReapQueueRequest: + this.ReapQueue = vt + case *EnqueueUpdateRequest: + this.EnqueueUpdate = vt + case *EnqueueMessageRequest: + this.EnqueueMessage = vt + default: + return false + } + return true +} +func (this *ResponseUnion) GetValue() interface{} { + if this.Contains != nil { + return this.Contains + } + if this.Get != nil { + return this.Get + } + if this.Put != nil { + return this.Put + } + if this.ConditionalPut != nil { + return this.ConditionalPut + } + if this.Increment != nil { + return this.Increment + } + if this.Delete != nil { + return this.Delete + } + if this.DeleteRange != nil { + return this.DeleteRange + } + if this.Scan != nil { + return this.Scan + } + if this.EndTransaction != nil { + return this.EndTransaction + } + if this.ReapQueue != nil { + return this.ReapQueue + } + if this.EnqueueUpdate != nil { + return this.EnqueueUpdate + } + if this.EnqueueMessage != nil { + return this.EnqueueMessage + } + return nil +} + +func (this *ResponseUnion) SetValue(value interface{}) bool { + switch vt := value.(type) { + case *ContainsResponse: + this.Contains = vt + case *GetResponse: + this.Get = vt + case *PutResponse: + this.Put = vt + case *ConditionalPutResponse: + this.ConditionalPut = vt + case *IncrementResponse: + this.Increment = vt + case *DeleteResponse: + this.Delete = vt + case *DeleteRangeResponse: + this.DeleteRange = vt + case *ScanResponse: + this.Scan = vt + case *EndTransactionResponse: + this.EndTransaction = vt + case *ReapQueueResponse: + this.ReapQueue = vt + case *EnqueueUpdateResponse: + this.EnqueueUpdate = vt + case *EnqueueMessageResponse: + this.EnqueueMessage = vt + default: + return false + } + return true +} diff --git a/samples/Go/embedded.go b/samples/Go/embedded.go new file mode 100644 index 00000000..6d6dba8a --- /dev/null +++ b/samples/Go/embedded.go @@ -0,0 +1,852 @@ +// Code generated by go-bindata. +// sources: +// ui/css/app.css +// ui/css/graph.css +// ui/css/libs/nvd3/1.7.1/nv.d3.min.css +// ui/css/rest_explorer.css +// ui/index.html +// ui/js/app.js +// ui/js/libs/d3/3.3.5/d3.min.js +// ui/js/libs/mithriljs/0.2.0/mithril.min.js +// ui/js/libs/mithriljs/0.2.0/mithril.min.js.map +// ui/js/libs/nvd3/1.7.1/nv.d3.min.js +// ui/ts/app.ts +// ui/ts/components/metrics.ts +// ui/ts/header.ts +// ui/ts/models/node_status.ts +// ui/ts/models/stats.ts +// ui/ts/models/store_status.ts +// ui/ts/models/timeseries.ts +// ui/ts/pages/graph.ts +// ui/ts/pages/monitor.ts +// ui/ts/pages/nodes.ts +// ui/ts/pages/rest_explorer.ts +// ui/ts/pages/stores.ts +// ui/ts/tsconfig.json +// ui/ts/typings/d3/d3.d.ts +// ui/ts/typings/jquery/jquery.d.ts +// ui/ts/typings/mithriljs/mithril.d.ts +// DO NOT EDIT! +package resource + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "os" + "path" + "path/filepath" + "strings" + "time" +) + +func bindataRead(data []byte, name string) ([]byte, error) { + gz, err := gzip.NewReader(bytes.NewBuffer(data)) + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, gz) + clErr := gz.Close() + + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + if clErr != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +type asset struct { + bytes []byte + info os.FileInfo +} + +type bindataFileInfo struct { + name string + size int64 + mode os.FileMode + modTime time.Time +} + +func (fi bindataFileInfo) Name() string { + return fi.name +} +func (fi bindataFileInfo) Size() int64 { + return fi.size +} +func (fi bindataFileInfo) Mode() os.FileMode { + return fi.mode +} +func (fi bindataFileInfo) ModTime() time.Time { + return fi.modTime +} +func (fi bindataFileInfo) IsDir() bool { + return false +} +func (fi bindataFileInfo) Sys() interface{} { + return nil +} + +var _uiCssAppCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x54\xdb\x6e\xdb\x38\x10\x7d\xe7\x57\x0c\x52\x2c\x72\x81\x65\x3b\x4e\x16\x58\xd8\x2f\xab\xba\x59\xc4\x68\xa1\x2c\x22\x67\x8b\x3e\x52\xd2\x48\x22\x42\x91\x5c\x92\xb2\xec\x2e\xfa\xef\x3b\x94\xe4\x34\xee\xcd\x0f\x86\x67\xe6\x78\xe6\x9c\xb9\x70\x76\x75\xc5\xd6\xda\x1c\xac\xa8\x6a\x0f\x8b\xf9\xf5\x2d\x6c\x6b\x84\xb5\xce\x9f\xad\xe6\x79\x0d\x71\xeb\x6b\x6d\xdd\x94\xb1\x0f\x22\x47\xe5\xb0\x80\x56\x15\x68\xc1\x13\x2c\x36\x04\x41\x18\x23\x13\xf8\x07\xad\x13\x5a\xc1\x62\x3a\x87\x8b\x00\x38\x1b\x43\x67\x97\x2b\x76\xd0\x2d\x34\xfc\x00\x4a\x7b\x68\x1d\x52\x02\xe1\xa0\x14\x12\x01\xf7\x39\x1a\x0f\x42\x41\xae\x1b\x23\x05\x57\x39\x42\x27\x7c\xdd\x17\x19\x53\x4c\xd9\xa7\x31\x81\xce\x3c\x27\x2c\x27\xb4\x21\xab\x7c\x8d\x02\xee\x19\x03\xfa\xd4\xde\x9b\xe5\x6c\xd6\x75\xdd\x94\xf7\x2c\xa7\xda\x56\x33\x39\xa0\xdc\xec\xc3\x66\x7d\x97\xa4\x77\x11\x31\x65\xec\x49\x49\x74\x0e\x2c\xfe\xdb\x0a\x4b\x02\xb3\x03\x70\x43\x3c\x72\x9e\x11\x3b\xc9\x3b\xd0\x16\x78\x65\x91\x62\x5e\x07\x9e\x9d\x15\x5e\xa8\x6a\x02\x4e\x97\xbe\xe3\x16\x59\x21\x9c\xb7\x22\x6b\xfd\x49\x83\x8e\xac\x48\xe9\x6b\x00\xb5\x88\x2b\x38\x8b\x53\xd8\xa4\x67\xf0\x36\x4e\x37\xe9\x84\x7d\xdc\x6c\xef\x1f\x9e\xb6\xf0\x31\x7e\x7c\x8c\x93\xed\xe6\x2e\x85\x87\x47\x58\x3f\x24\xef\x36\xdb\xcd\x43\x42\xd6\x5f\x10\x27\x9f\xe0\xfd\x26\x79\x37\x01\xa4\xf6\x50\x11\xdc\x1b\x1b\xb8\x6b\xcb\x44\x68\x1d\x16\x53\x48\x11\x4f\x8a\x97\x7a\x20\xe3\x0c\xe6\xa2\x14\x39\x29\x52\x55\xcb\x2b\x84\x4a\xef\xd0\x2a\x12\xc2\x0c\xda\x46\xb8\x30\x3c\x47\xd4\x0a\x90\xa2\x11\x9e\xfb\xde\xfe\x4e\xce\xd7\x12\xf1\x13\x71\x7e\x4c\xfb\x31\xb2\x50\x47\xf1\x06\x5d\x98\x49\xae\xd5\x20\x77\x58\x9e\x61\x8d\x96\x10\xab\xc2\x62\x07\x6f\xb5\xda\x21\x01\x10\x2e\xa8\xda\x21\xa3\x32\x7f\x56\x0d\x17\x72\x4a\x1b\x70\xc9\xae\x66\xec\x0a\xfe\xa3\x39\x36\xdc\x56\x42\x2d\x61\xbe\x22\xc3\xf0\xa2\x20\xae\xa3\x15\x35\xfa\x73\x94\xe9\x7d\xe4\xc4\xe7\xde\x9b\x69\x4b\x3c\x83\xab\x0f\x77\x98\x3d\x0b\xff\x0b\xc4\xcf\x22\x5f\x58\xed\x1b\x39\x61\x99\x2e\x0e\x3d\x89\x1a\xc3\x71\x2c\xe1\x7a\x3e\xff\xed\x5b\x1e\x5f\xbe\xc2\x32\x9e\x3f\x57\x56\x53\xb7\xa2\x5c\xcb\x20\xf6\x4d\x79\x5d\x2e\xca\x9b\xf0\x9f\xa3\xe7\xe6\xa6\x37\x4b\xea\x4e\x54\xf2\x46\xc8\xc3\x12\xce\x53\xdd\x5a\xda\xf8\x94\x53\xb3\xff\xb6\xfa\x7c\x02\xe7\xf7\x28\x77\xe8\x69\x03\x21\xc1\x16\xc9\xf3\xe2\xa0\x9d\x23\x5c\xe4\xd0\x8a\xf2\x25\x55\x37\x52\xbc\x9d\xcf\x5f\x7c\xa4\x0d\x89\xf4\xad\xe9\x35\x4d\xcb\x56\xca\xfb\x1e\xb6\xa6\x28\x1d\x10\xcd\xf4\xb5\xba\x9c\xcb\xfc\x22\x48\x84\x08\x7e\x9f\x9b\xfd\xe5\x0a\x66\x57\xf0\x1e\xd1\x84\x85\x97\x84\x1f\x4e\x72\xc0\x87\x11\xd3\x61\x99\x84\xef\x80\xa6\x45\xf9\x47\xe3\x75\xca\x90\x66\xf5\x93\xce\x94\xe5\x30\x83\xb1\xef\xde\xeb\x86\xc8\x9a\x3d\x5d\x94\x14\x05\xbc\x29\x8a\xe2\xa4\xd7\xd7\x94\x8b\xde\xa7\x51\xcc\x50\x2c\x22\x56\xcf\xcb\xf0\x35\x39\x75\xed\x84\x13\xe1\xce\x02\x19\x8f\x7b\x1f\x15\x98\x6b\xdb\xaf\xf3\x92\xde\x1f\x85\xab\x63\xc0\x5b\x6a\x26\x2d\x2e\x15\x6f\x0d\x1d\x41\xce\x1d\xfe\x60\x5e\x74\xbc\x46\x72\x9a\x95\x50\xa1\x13\x51\x26\xe9\x81\x5c\xbd\x2c\x68\x64\x07\xc1\x3f\xe2\x77\xfc\x5d\xeb\x06\x13\xba\x8e\x9e\xd4\xc9\xd0\xfe\xf8\x6e\x68\x8b\xc5\xd0\xb8\x6f\x29\x1e\xa9\xd3\xd5\x86\x55\x90\x11\x97\xa2\x22\x49\xd1\x62\xa8\xfb\x7f\x00\x00\x00\xff\xff\x4c\xec\x61\x77\xce\x05\x00\x00") + +func uiCssAppCssBytes() ([]byte, error) { + return bindataRead( + _uiCssAppCss, + "ui/css/app.css", + ) +} + +func uiCssAppCss() (*asset, error) { + bytes, err := uiCssAppCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/app.css", size: 1486, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiCssGraphCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x8d\x31\x0e\xc2\x30\x0c\x45\xf7\x9c\xc2\x12\x2b\xad\xd2\x81\x25\x9d\x39\x48\x20\x9f\xc6\x22\x72\x23\x27\x88\x4a\x88\xbb\x03\x29\x12\x4c\xdd\xfc\xf4\x9e\xed\x3e\xb1\x80\x1e\x86\xe8\xc2\x29\x39\x92\x59\x30\xbe\xa9\x54\x9d\xaf\xe8\xee\x1c\x6a\x74\x34\xf4\x87\xbc\x8c\xe6\x69\x4c\xeb\x6d\x5b\x58\x13\xa7\x08\x3f\x33\xfc\x9b\x53\xba\x61\x55\x7e\xe1\x42\xd9\xd7\xb8\xff\xce\x9b\x5f\x1d\xed\xac\xb5\x8d\xa3\xcf\xe8\x14\x12\xa0\x2c\x93\xa3\xb3\x72\xc9\xc7\x30\xa1\x7c\x0e\xbf\x02\x00\x00\xff\xff\xd9\x8a\x57\x81\xbd\x00\x00\x00") + +func uiCssGraphCssBytes() ([]byte, error) { + return bindataRead( + _uiCssGraphCss, + "ui/css/graph.css", + ) +} + +func uiCssGraphCss() (*asset, error) { + bytes, err := uiCssGraphCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/graph.css", size: 189, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiCssLibsNvd3171NvD3MinCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xcc\x5a\x4f\x6f\xe3\xba\x11\xff\x2a\x2a\x16\x05\x1a\x40\x12\x24\xc5\x4e\x62\xe9\xf4\x5e\x1b\xb4\x87\x3e\xa0\x87\xa2\x77\x5a\xa2\x6d\xc2\x94\x28\x50\x74\x6c\xc7\xd8\xef\x5e\xfe\x11\x25\x52\xa4\x64\x67\x91\xc3\x83\x91\x0d\x43\xfe\x66\x38\x1c\xce\x5f\x7a\xe3\xe6\xa3\x7a\x0e\xf8\xbf\x11\xb8\xa0\xee\xd6\x12\xd4\x30\x48\x23\xf8\x01\x1b\xd6\xe5\x0d\x69\x60\x41\x5a\x50\x22\x76\xcd\xd3\x9f\x36\x38\x68\x01\x3b\xdc\x76\x08\x63\x85\xeb\x18\x25\x47\x98\xff\x48\x92\xa4\x1f\x47\x9a\x34\x7e\x5d\x17\xdd\x01\xb4\x30\xa2\xb0\xa9\x20\x45\xcd\x3e\x2f\x29\xea\xda\xf7\x6a\x0f\x3b\x1f\xdf\xb8\x22\x35\x40\xcd\xcd\x65\x34\x41\x8b\xdf\x97\x25\x92\x64\xca\x1e\xa3\x06\x7a\xc4\x86\x6b\xf1\xf9\x82\x98\xf1\x27\xa4\x44\x72\x0b\x3d\x3b\xc8\xd5\xfb\xe2\x0f\x83\x3f\xc0\xe5\x0f\xd4\x04\x0c\x5e\xd8\x6d\x47\x1a\x16\x9d\x21\xda\x1f\x58\xfe\x9a\x0c\x07\xb8\x2c\x52\x69\x21\x2e\xd9\x63\xb0\x3b\x32\x88\x7f\x22\xd0\x94\x07\x42\xf3\x1a\x55\x15\x86\x1e\xc5\x57\xa8\x03\x5b\x0c\xab\x9b\x4f\xd9\x5b\x40\xbb\x80\xc2\x92\x49\x65\x5b\xb6\xc0\x28\x68\x3a\xc4\x10\x69\x72\x73\x2d\xc8\xd6\x49\xad\xd4\x07\x68\x11\xd5\xe4\x33\x7a\x0c\x79\x86\xdb\x23\x62\x0f\x81\x7d\x02\xc6\x07\xf2\x01\xa9\x2d\x66\x3a\x05\x2a\xd0\x78\xa0\xfc\x07\xa8\xaa\x37\xf8\x32\xc5\xa9\x1b\x14\x00\xba\xdf\x82\xbf\x25\xa1\xfc\x3c\xcd\xb0\xf3\xa2\x53\x13\x5d\x9f\x30\x43\x9c\x44\xfe\xb1\xa7\xe4\xd4\x2a\xa1\x43\x17\xf2\x2f\x42\xd1\x27\xb7\x1d\x80\x17\xc0\xfc\xce\x4a\x0a\x19\xf4\xb0\x74\x5c\xe7\x4f\x72\x51\x73\x2a\xc8\xa5\x0e\xbf\xa4\x08\x87\x64\x41\x1d\xf9\x1d\xb3\x98\x21\x35\xbd\xec\xae\x4c\x3e\x7f\x2f\x5c\x7b\xd0\x51\xca\x63\x52\xd2\xa2\x4e\x18\x43\xc5\x27\x4f\x93\xf6\x12\x74\x5c\xbf\x51\xc7\x23\xd8\x6e\x0a\x52\x32\x41\xd0\x9d\x28\x9c\x38\xe6\xdb\x12\x76\x41\x19\x53\x02\x40\x8f\x1c\xe9\x49\x07\x67\x54\xb1\x43\x9e\xb5\x97\x05\xba\xff\x52\x04\x9a\x3d\x86\x16\xbd\xf2\xb7\xdd\x6e\x67\x73\x4a\xe3\xf5\x0c\x2f\x86\xca\xa3\x0a\xf4\x9a\xcd\xcb\xcb\x8b\x4d\x3c\x4b\xcb\x6d\x73\x0f\xc5\xa0\x4b\x7a\x47\x87\x10\xde\x41\xa6\x3d\xb2\xaa\xaa\x3b\xc8\xac\x47\x96\x65\x39\x23\x39\xe3\x87\x97\x16\xd1\xa1\x4f\x98\xa7\xab\xf6\x52\x78\x13\xc2\x84\xb0\x3b\x6d\x7b\x5a\xc9\x7f\xb3\xd9\xcc\x4b\xd2\x63\xb6\x40\x7c\x0a\xdb\x0a\x56\xf3\x64\x3e\x1b\x88\x5f\x47\xbc\x50\xf8\x7f\xf0\xa9\xfb\xbd\x77\x08\xe1\x18\xde\x04\x70\x9f\xe4\x9e\xef\xf5\xee\x23\xf3\x7e\xcf\x66\xcc\xe9\xf3\x38\x40\x21\xd0\x26\x31\x22\x35\x87\x60\xf8\xab\x2b\x01\xe3\x75\x90\xc9\x42\x0c\x65\x79\x64\x0b\xe5\xd4\x3a\xc6\xed\xf4\x5c\xe4\x10\x09\xa3\x56\x0c\x1e\xe0\x1a\xaf\xff\x82\xea\x96\x50\x06\x1a\xe6\x14\x53\xc6\xda\xcf\xf8\x8c\xd8\xc1\x88\xa7\x5d\xe0\x9c\x7d\xdc\xc2\x08\xbb\xa6\x2b\x58\x61\x37\xb4\x77\x5b\x8e\xf4\xbf\xc8\xc5\xcd\x02\xbf\xc4\xc8\x51\xb4\xf7\xd4\xf1\x34\xe2\xfb\x01\x37\x2b\x38\xbc\x0a\xa7\xb3\x2e\x64\xb3\x74\x23\x1b\xeb\x4a\x86\x9d\x24\xfb\x48\xd8\x5e\x5f\x2c\xeb\x60\x04\x00\x70\xcc\xa6\x18\x62\x8d\xbd\xb3\x59\x52\x21\x5e\x95\x5e\xfe\x2d\x6c\xbd\x3c\xd1\x8e\x57\x66\xf0\xcc\x4b\x55\x11\x27\x7e\x76\x1f\x7b\x89\x8b\xf8\xe0\x36\x68\x98\x9c\xca\x43\x54\x02\x8c\xc9\x89\xa9\x72\x57\x2f\x9d\x78\x76\xe0\x19\x02\x0b\x5f\x53\x0b\xc7\x03\xab\xb1\x67\xbe\xee\x7c\x93\xdc\x10\x9c\x59\x67\x82\x67\xc8\x16\x83\x6b\xbe\xc5\xa4\x3c\x16\x7d\xd0\x4e\x92\xbf\x16\x07\x15\xcb\xc4\x58\x1c\x8f\x11\xc2\x93\x64\xab\x8c\xf9\xb9\x8a\x78\x11\x5e\x91\x73\x38\xf9\x3b\x18\x91\x37\x29\xc0\x96\x5c\xfa\xa5\x3c\x09\x78\x38\x0f\x64\xee\x33\x72\x64\x9c\x3d\x0d\x07\x7e\x08\xfc\x45\x8e\x94\x37\x09\x3c\x34\x56\xe8\xd4\xe5\x1c\x5d\xf4\x52\x4d\xa7\x9d\x99\xfe\x4a\x87\xe4\x9f\xaf\x92\x24\x48\x79\x62\x0c\x7e\xe3\xe9\x0f\xeb\x1b\x1f\x73\x81\x88\xfa\x81\x48\x05\x36\x40\x06\xcc\xf2\x28\x2c\xba\xa9\x6e\x63\x96\xf4\x19\x90\x00\x37\xe4\x1f\x80\x01\x33\xbb\xbc\xf9\xb3\x4b\xb4\xa5\xa7\xee\x10\xc4\x5c\x40\xe8\xc4\xa6\x34\xbb\xd7\x26\x69\x72\x65\x9b\x46\xa3\x28\xcd\xdb\x48\xc9\xc6\x41\x30\xdc\x73\x6e\x2a\x95\x71\x9e\xb0\xd3\x36\xde\xf7\xa4\x7e\xa8\xee\x40\x82\x12\xd1\x12\x4f\x2a\x1a\xab\x1b\x99\x3f\x50\xe2\x75\x5e\x49\xf0\xfb\xa0\x5d\xb3\x40\xf6\x14\x35\xf1\xaa\x98\x51\xbf\x99\x20\xc9\x01\x97\x3a\xd3\x89\x12\xa5\x1b\x46\x76\xf8\x49\xcd\xd2\x64\x9e\xc8\x17\xb9\xb2\x07\x49\x5b\x22\x42\xef\xc7\x58\x20\x65\x25\x48\xb2\xf2\x21\xda\x06\xee\x81\x45\x5b\xbd\x64\xaf\xd9\x9b\x56\xde\x68\x92\x73\x4f\x04\xef\xef\xef\x4e\x0c\x5d\x3d\xd0\x7a\xef\x08\x85\x4b\x9c\x1d\xa5\xab\x30\x0c\x28\x8f\x80\x10\xff\x9d\x70\x3f\x44\x0d\x60\xb0\xf3\x98\x83\xef\xea\x74\xc9\x98\xef\x29\xb8\x3e\xf6\x34\xe0\xd9\x2c\xf0\xf6\x97\xb6\xfd\x3c\x0f\x41\x21\xae\x51\x27\xaa\x85\xff\x01\x7c\x82\x9d\x2c\x4b\x66\x5e\x2c\x1c\x23\x4c\xa7\x6a\x18\x26\x2a\xc0\x85\xa7\xfc\x10\xf9\x3a\x34\xaa\xaf\x16\x41\x33\x31\x7d\xb1\xf1\x0b\xbf\xa7\x88\xf8\x76\xfe\x5f\x68\x32\x7f\x6d\x0b\x5b\x81\xfd\x6f\xa7\x72\xcf\x56\x7d\x11\xa1\xba\xb6\x74\x13\xa6\x9b\x97\x30\x5b\x6d\xc2\x78\xbd\x79\x72\x79\xf0\xbb\x2e\xa1\xca\x09\xb3\x37\x9c\xcc\xde\x9d\xaf\x3d\xe2\xfb\x4f\x0d\x62\xb2\xad\x7a\x84\x18\x7c\xc9\x1b\xb4\xb4\x7c\x18\x6c\x21\xf6\xbd\x10\xce\x40\x3d\xa5\xff\x5c\xb1\xfc\x70\x5d\x96\x25\xee\x99\x62\xf3\x4d\xcd\xac\x04\x4d\x2e\x6e\x23\xc1\x93\x61\x23\x8f\x02\x4a\x19\xcb\x66\x0e\x26\x32\x0c\xbb\x84\x7a\x74\x5d\x56\x40\xc7\xdd\xff\x28\x7d\xd6\x8e\x4f\x1e\x44\xcb\xbb\x9e\x40\xd4\x6c\x91\x94\x50\xba\xfb\x83\xcc\x25\xa9\x4d\x69\x37\xbb\xcf\xcf\xcf\x8b\x9d\xb2\xc5\x29\x9c\x93\x6d\x2a\x0d\x8f\x6b\x86\xa6\xe5\xde\xbf\x89\x7e\xea\xf1\x7e\xc8\x39\xc0\x45\x0a\x3f\x27\x81\x98\xb9\x2a\xc5\xd8\x5e\x50\x8c\x5e\x16\x6f\x60\x6d\x55\x30\xab\x64\x71\x47\x8b\x1f\x77\x1a\x5d\x83\xf8\xd1\x35\xb8\xd8\x78\x95\x25\xfb\x5c\x3f\x4d\x99\x1e\x7a\xd4\xd8\xf4\x2a\x53\xf6\xf4\x66\xda\xf4\xd3\xf3\x12\x88\xe7\x1b\xa6\x78\x38\xcf\x44\x63\x19\x17\xa7\xb0\x36\xf8\x30\x9e\x81\x61\x25\x9a\x5d\xbb\xf3\x9d\xf8\xb8\xdb\x83\x7c\x25\x66\x7e\x4f\x70\xff\xb6\x10\x7e\xa7\x43\x9c\x51\x89\x2f\x3c\xc4\x1b\x3f\x9d\xb7\xa7\xf6\xb6\x71\xb6\xf1\xeb\x9e\x45\x95\x5c\xfc\x2c\x60\xdb\x11\x7c\x62\xb0\x18\x2b\xa5\xa8\x24\x98\xd7\xba\x32\x53\x64\xeb\x75\xa8\x7f\xd2\xa7\xc2\x58\x19\x9e\x03\x5b\x50\x55\xa2\x04\x49\x87\xee\x42\x0c\x03\xce\x16\x55\xd3\x76\xe5\x53\xb5\x8d\xa2\xd9\xe2\x46\x63\xb7\x64\xd2\x84\x76\xa0\x46\xf8\x9a\xcb\xce\xc2\x34\x2a\x5e\x93\x14\xea\x6b\x00\x8c\xf6\x4d\x8e\xe1\x8e\x15\xbe\x2f\x88\xce\x07\xc4\xa0\x30\xde\x52\x3c\xaa\x9c\x29\x68\x8b\xef\x6d\x40\x7d\xbd\xa6\xb7\x2d\x9d\x4e\x98\xda\x1f\x75\xed\x6a\x39\x7e\x7b\x5a\x56\xe3\xfa\x69\xd2\xc4\xad\x54\x38\xb5\x1a\x57\xe3\x15\x26\xf4\xbe\xcb\x68\x51\x0c\xb3\xd6\x56\xbb\xe4\x43\x5e\x8c\xeb\x21\x3e\xd8\xb8\x1c\x55\x50\x5c\x7b\x96\xf0\xd5\xe9\x0e\xf6\x9a\xc3\xd9\x5c\x36\x0f\x7d\x89\x86\x71\x68\x4c\x5f\x23\xc3\xe4\x7b\x3b\x7d\xb3\xd4\x15\x1c\x9e\x6f\x35\xa0\x7b\xd4\x70\x7f\xd1\x10\xd1\xdc\xca\xc7\x4e\x21\x7a\xa4\x1f\x08\xa6\xfd\x29\x8f\xee\x73\x5e\xb3\x7a\x0d\xf5\x4f\xfc\xba\xf6\xfb\x8d\x61\xce\x25\x14\x86\xac\xaf\x75\x4b\x18\x23\xb5\x71\xfb\x3f\xe0\x56\x7c\xe6\x9b\x7d\xf9\x3c\x90\x04\xc9\x4c\xd3\x3f\x2c\xdb\x2b\xe9\xb8\x62\x2a\xa4\x75\xf5\xb1\xd6\xfa\x70\x64\x36\x09\xb9\xd7\x35\x37\xed\xd3\xa8\x91\xba\x53\xae\xdd\x33\x14\x8f\x0a\xd6\x56\x4c\xf4\xcb\x7a\xbb\x97\xf1\x75\x42\xf8\xaf\xd8\xd7\x05\x07\xac\x1a\x2e\x52\xb0\xdb\xf0\x1f\xc9\xb6\xe0\xa1\x93\x37\x84\x00\xf7\xe2\x8d\xdf\x13\x4e\xe9\xe3\x23\xbc\xde\x3c\x59\xda\xc1\x7d\xc8\x4c\x67\x1c\x99\x0a\xb8\xef\x89\x62\x42\x4a\xe3\x03\x5f\xc5\x02\x61\xca\x9b\xf6\xf2\xa6\x52\x5e\xeb\xb2\x79\x6c\xbf\x62\x98\xcb\xeb\x9e\xac\x8c\xf5\x73\x3f\xcf\x48\xeb\x83\x8b\x69\xab\x63\x77\xce\xa3\x9e\x2a\x94\x9d\x46\xfb\x13\xaa\x60\x50\xa1\x8f\x9b\x22\x12\xc6\xdd\x1b\xba\x18\x3e\xae\xcd\x45\xae\xe2\x1d\x69\x78\x60\xcb\x7c\x09\x42\x7f\x39\xa0\xf9\xf2\xbe\x9a\x70\xbb\x1a\x94\xf6\x7c\xc7\xea\xa2\x96\xef\xce\x81\xbc\x17\xae\x09\xbf\x31\xef\x7f\x1b\xd0\x46\x39\x79\x90\x37\x4a\xee\x7f\x0a\xc1\xe5\x6b\xe6\x6c\xd9\xab\xbe\x4a\x17\x79\x57\x60\xad\x1a\x57\x7c\x81\xf2\xff\x00\x00\x00\xff\xff\x04\x28\x3d\x62\xbe\x20\x00\x00") + +func uiCssLibsNvd3171NvD3MinCssBytes() ([]byte, error) { + return bindataRead( + _uiCssLibsNvd3171NvD3MinCss, + "ui/css/libs/nvd3/1.7.1/nv.d3.min.css", + ) +} + +func uiCssLibsNvd3171NvD3MinCss() (*asset, error) { + bytes, err := uiCssLibsNvd3171NvD3MinCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/libs/nvd3/1.7.1/nv.d3.min.css", size: 8382, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiCssRest_explorerCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x54\xdd\x6f\xdb\x36\x10\x7f\xe7\x5f\x71\xc8\x30\xa4\x0d\xfc\x91\xb6\xdb\x8b\x02\x0c\x53\xdc\x0c\x13\x16\x38\x83\xe5\xac\xe8\x23\x45\x9d\x24\xa2\x14\x8f\x23\xa9\xc8\xc6\xb0\xff\x7d\x47\xc9\xd9\x9a\x64\x5f\xf5\x93\x8f\xbc\xbb\xdf\xc7\x1d\xb5\xbe\xb8\x10\x1b\x72\x47\xaf\xdb\x2e\xc2\xdb\xcb\x37\xdf\xc0\xbe\x43\xd8\x90\xfa\xe4\x49\xaa\x0e\xf2\x21\x76\xe4\xc3\x4a\x88\x5b\xad\xd0\x06\xac\x61\xb0\x35\x7a\x88\x9c\x96\x3b\x4e\x41\x38\xdd\x2c\xe0\x17\xf4\x41\x93\x85\xb7\xab\x4b\x78\x95\x12\xce\x4e\x57\x67\xaf\xaf\xc4\x91\x06\xe8\xe5\x11\x2c\x45\x18\x02\x72\x03\x1d\xa0\xd1\x06\x01\x0f\x0a\x5d\x04\x6d\x41\x51\xef\x8c\x96\x56\x21\x8c\x3a\x76\x13\xc8\xa9\xc5\x4a\x7c\x3c\x35\xa0\x2a\x4a\xce\x95\x9c\xed\x38\x6a\x3e\xcf\x02\x19\x85\x00\xfe\x75\x31\xba\x6c\xbd\x1e\xc7\x71\x25\x27\x96\x2b\xf2\xed\xda\xcc\x59\x61\x7d\x5b\x6c\x6e\xb6\xe5\xcd\x92\x99\x0a\x71\x6f\x0d\x86\x00\x1e\x7f\x1d\xb4\x67\x81\xd5\x11\xa4\x63\x1e\x4a\x56\xcc\xce\xc8\x11\xc8\x83\x6c\x3d\xf2\x5d\xa4\xc4\x73\xf4\x3a\x6a\xdb\x2e\x20\x50\x13\x47\xe9\x51\xd4\x3a\x44\xaf\xab\x21\x3e\x31\xe8\x91\x15\x2b\xfd\x3c\x81\x2d\x92\x16\xce\xf2\x12\x8a\xf2\x0c\xae\xf3\xb2\x28\x17\xe2\x43\xb1\xff\xf1\xee\x7e\x0f\x1f\xf2\xdd\x2e\xdf\xee\x8b\x9b\x12\xee\x76\xb0\xb9\xdb\xbe\x2f\xf6\xc5\xdd\x96\xa3\x1f\x20\xdf\x7e\x84\x9f\x8a\xed\xfb\x05\x20\xdb\xc3\x20\x78\x70\x3e\x71\x27\x2f\x74\xb2\x0e\xeb\x15\x94\x88\x4f\xc0\x1b\x9a\xc9\x04\x87\x4a\x37\x5a\xb1\x22\xdb\x0e\xb2\x45\x68\xe9\x01\xbd\x65\x21\xc2\xa1\xef\x75\x48\xc3\x0b\x4c\xad\x06\xa3\x7b\x1d\x65\x9c\xe2\x17\x72\xfe\x82\xc8\xef\x99\xf3\xae\x9c\xc6\x28\x12\x8e\x95\x3d\x86\x34\x13\x45\x76\x96\x3b\x2f\xcf\xbc\x46\x19\xe4\xb6\xf6\x38\xc2\x35\xd9\x07\xe4\x04\x84\x57\x8c\x76\xac\x18\xe6\xfb\xb6\x97\xda\xac\x78\x03\x5e\x8b\x8b\xb5\x58\xb1\xac\x78\x73\x70\x86\x3c\xfa\xc5\xd3\x70\x93\x7a\x93\x09\xcf\x8e\x6f\xa9\x85\xdf\x78\xf8\x1d\xa6\x65\xce\xe0\xcd\xe5\xe5\xd7\x57\xe2\xf7\x2f\xaa\x6d\x0c\x49\x2e\x35\xd8\xc4\x2b\x0e\x9d\xac\x6b\xb6\x27\xf5\x72\x07\x7e\x1e\xee\x90\x4e\x47\x5d\xc7\x2e\x83\x6f\xff\xa5\xfd\xd4\xac\x92\xea\x53\xeb\x89\xfd\x5b\x2a\x32\x49\xfe\x57\x4d\xd3\xfc\x63\xcd\x52\xcd\x7f\xa6\xda\x5e\xfa\x56\xdb\x65\x45\x31\x52\x9f\x9d\xa0\xff\xab\xf0\x3b\xe8\xde\xcd\x32\xf8\x60\x39\x9e\x7c\xb0\xe4\x7b\x69\x12\xf1\x88\x87\xb8\x8c\x5e\xda\xc0\xb3\xe2\xae\x83\xe3\xb9\x2b\x19\xf0\xea\x25\xe2\xbb\xff\x03\xa8\xad\x1b\xe2\x9f\x88\x19\xc7\xbc\x94\x3a\xbe\x28\x7c\xb4\xd7\x51\xd0\x69\xa9\x32\x7e\x6c\x86\xd7\xeb\x61\x42\x9e\xd8\x36\xb2\xd7\xe6\x98\xc1\x79\x49\x83\x57\xe9\x13\x54\x23\xfc\xec\xe9\x7c\x01\xe7\x1b\x3e\xd2\xbc\x83\x5b\x1c\x39\x3c\x45\x0b\xe8\xc9\x52\xe0\xc7\x8d\x7f\x87\xb7\x54\x06\xa5\xbf\x1e\x58\x8d\x7d\x86\x2d\xab\x40\x86\x1f\x62\xc2\xf6\xb3\x47\x8f\xa3\x8d\xe4\xe6\x61\xa7\x96\x7f\x04\x00\x00\xff\xff\x29\xec\xd5\x5f\x1d\x05\x00\x00") + +func uiCssRest_explorerCssBytes() ([]byte, error) { + return bindataRead( + _uiCssRest_explorerCss, + "ui/css/rest_explorer.css", + ) +} + +func uiCssRest_explorerCss() (*asset, error) { + bytes, err := uiCssRest_explorerCssBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/css/rest_explorer.css", size: 1309, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x55\x51\x93\x9b\x36\x10\x7e\xe7\x57\x6c\xe8\x83\x93\x89\x0d\xbe\x5c\x3a\x6d\xaf\xf6\xb5\xc4\x71\x1b\x4f\x53\xae\x63\x7c\xcd\xe4\xa9\x23\xc3\x02\x4a\x84\x44\x25\x61\x1f\x33\xfd\xf1\x5d\x01\xbe\xf8\x5a\x2e\x93\xf8\xc5\x48\xfb\xed\xee\xb7\xbb\xdf\xc2\xe2\xc9\x6c\xe6\xad\x54\xdd\x6a\x5e\x94\x16\x5e\xcc\x2f\x5e\xc2\xae\x44\x58\xa9\xf4\xa3\x56\x2c\x2d\x21\x6a\x6c\xa9\xb4\x09\x3c\xef\x2d\x4f\x51\x1a\xcc\xa0\x91\x19\x6a\xb0\x04\x8b\x6a\x82\x20\x0c\x96\x29\xfc\x89\xda\x70\x25\xe1\x45\x30\x87\xa7\x0e\xe0\x0f\x26\xff\xd9\x8f\x5e\xab\x1a\xa8\x58\x0b\x52\x59\x68\x0c\x52\x00\x6e\x20\xe7\x02\x01\xef\x52\xac\x2d\x70\x09\xa9\xaa\x6a\xc1\x99\x4c\x11\x8e\xdc\x96\x5d\x92\x21\x44\xe0\xbd\x1f\x02\xa8\xbd\x65\x84\x65\x84\xae\xe9\x94\x9f\xa3\x80\x59\xcf\x03\xfa\x95\xd6\xd6\x57\x61\x78\x3c\x1e\x03\xd6\xb1\x0c\x94\x2e\x42\xd1\xa3\x4c\xf8\x76\xb3\x5a\xc7\xc9\x7a\x46\x4c\x3d\xef\x56\x0a\x34\x06\x34\xfe\xdd\x70\x4d\x05\xee\x5b\x60\x35\xf1\x48\xd9\x9e\xd8\x09\x76\x04\xa5\x81\x15\x1a\xc9\x66\x95\xe3\x79\xd4\xdc\x72\x59\x4c\xc1\xa8\xdc\x1e\x99\x46\x2f\xe3\xc6\x6a\xbe\x6f\xec\x83\x06\x9d\x58\x51\xa5\xe7\x00\x6a\x11\x93\xe0\x47\x09\x6c\x12\x1f\x5e\x45\xc9\x26\x99\x7a\xef\x36\xbb\x37\x37\xb7\x3b\x78\x17\x6d\xb7\x51\xbc\xdb\xac\x13\xb8\xd9\xc2\xea\x26\x7e\xbd\xd9\x6d\x6e\x62\x3a\xfd\x02\x51\xfc\x1e\x7e\xdb\xc4\xaf\xa7\x80\xd4\x1e\x4a\x82\x77\xb5\x76\xdc\x95\xf6\xb8\x6b\x1d\x66\x01\x24\x88\x0f\x92\xe7\xaa\x27\x63\x6a\x4c\x79\xce\x53\xaa\x48\x16\x0d\x2b\x10\x0a\x75\x40\x2d\xa9\x10\xaf\x46\x5d\x71\xe3\x86\x67\x88\x5a\x06\x82\x57\xdc\x32\xdb\x9d\xff\x57\xce\xa7\x14\xd1\x2d\x71\xde\x26\xdd\x18\x3d\x97\x47\xb2\x0a\x8d\x9b\x49\xaa\x64\x5f\x6e\x2f\x9e\x5e\x46\x57\x10\xc9\x4c\xe3\x11\x5e\x29\x79\x40\x02\x20\x3c\xa5\x6c\xed\x9e\xd2\xfc\x5c\x54\x8c\x8b\x80\x14\xf0\xcc\x9b\xcd\xae\xbd\xc5\x93\x4c\xa5\xb6\xad\x91\x46\x59\x09\x3a\xf7\x7f\x00\x8b\x12\x59\x76\xdd\x0d\x79\x51\xa1\x25\x19\x94\x4c\x1b\xb4\x4b\xbf\xb1\xf9\xec\x7b\x7f\x30\x09\x2e\x3f\x42\xa9\x31\x5f\x4e\x9c\x16\x0c\x89\x21\x27\x4e\x26\x28\x94\x2a\x04\xb2\x9a\x1b\x97\x2c\x4c\x8d\xf9\x29\x67\x15\x17\xed\x32\x51\x8d\x4e\xf1\x79\xc2\xa4\x79\xfe\x87\x56\x57\x2f\xe7\xf3\xe9\x0f\xf3\xf9\x3f\xc3\xfd\x4a\x65\xe8\xee\x27\xa4\x14\xb1\x9c\x18\xdb\x92\x6c\x4a\x44\x3b\x01\xc7\x73\x39\xb1\x78\x67\x5d\xbc\xc9\x39\x05\x87\xf5\x3f\x61\xfd\x9e\x93\xef\x70\x24\xc7\xbd\x09\xe5\x21\xbb\x0c\x2f\x82\xef\x82\x0b\x7a\x0c\xb2\xcb\xa0\xe2\x32\x20\xab\xff\xa5\x51\x48\xab\x5f\x85\x27\xc1\xd8\xbf\x48\x38\x42\x69\xd4\x5f\xe5\x59\x68\x56\x97\xe7\x1e\x26\xd5\x9c\x36\xd7\xe8\x94\x10\x1f\x86\x82\xa8\x9c\xcb\xe0\x32\xf8\x36\x1c\x6a\xf9\x40\xf0\x45\xd8\x43\x3f\xe7\x37\xda\x88\x2f\x75\x26\xb9\x96\x9a\x0b\x3a\xce\x03\x5a\xea\xd3\xf9\xb1\x18\x96\x5b\x81\xd7\xf7\xaf\xb9\x45\xd8\x5f\x38\x79\x85\x27\x7d\x2d\xf6\x2a\x6b\x07\xbc\xbb\xa3\x25\x48\x05\x33\x66\xe9\x53\xc7\x63\x76\x18\x9a\x40\x56\x36\x34\xe9\x9b\xd0\x7f\x08\x99\x75\x2d\x1d\x9e\x4b\x55\x61\x4c\xfb\xe1\x9f\xe7\x65\x23\x41\x2a\x25\x39\xed\xcd\x58\x2c\xff\xfa\xf7\xde\x38\xee\xe9\x46\x3b\x3b\x8d\x76\xdc\x7f\xbb\x4e\x76\xb0\x1e\x20\xe3\x51\x24\x09\xdd\x8c\x7b\xc7\xce\x34\xee\x65\x88\xd5\x63\x6e\x49\x67\x1b\xf7\xeb\x44\x35\xee\xf6\xab\x33\xdd\x7b\xf5\x93\x41\x3d\x9c\x32\x7e\x00\x9e\x2d\x7d\xad\x94\xbd\x77\xcf\x1b\x21\xde\xa0\xfb\x98\xad\x68\xd9\xe9\x33\x41\x6d\xa0\xd9\x13\xf6\x11\xf1\xb8\xe5\xf9\xaf\x3e\x16\x61\x3f\x79\x4a\xd8\xbd\x73\xfe\x0d\x00\x00\xff\xff\xee\xd4\x3d\x5f\x26\x07\x00\x00") + +func uiIndexHtmlBytes() ([]byte, error) { + return bindataRead( + _uiIndexHtml, + "ui/index.html", + ) +} + +func uiIndexHtml() (*asset, error) { + bytes, err := uiIndexHtmlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/index.html", size: 1830, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsAppJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x3d\x7f\x73\xdb\x36\xb2\x7f\x5f\x3f\x05\xaa\x99\x9c\xa9\x8b\x4c\xd9\xed\xdc\xcd\x7b\xf2\xb9\x77\x6e\xec\xa6\xbe\x4b\xec\x3c\xdb\xc9\xbd\x8e\xc7\xe3\xa1\x45\x58\x62\x4b\x91\x2a\x49\xf9\xc7\xf5\xfc\xdd\xdf\x2e\x7e\x90\x00\x08\x90\x94\x6c\x39\x69\x5e\x38\x99\x48\x02\x17\x8b\xc5\x62\xb1\xd8\x5d\x00\xeb\xe1\x90\xbc\xa6\x09\xcd\x82\x82\x86\xe4\xea\x9e\x14\xf9\xd8\xff\x0a\x0a\xf3\x74\x91\x8d\xe9\x88\x8c\xd3\xf1\x2f\x59\x1a\x8c\xa7\xc3\x8c\xf2\xb2\xe1\x22\x1f\x16\xf9\xd0\xf7\x19\xdc\xfe\x31\x39\x3a\x3e\x23\x07\xfb\x87\x67\x5f\xc3\x6f\x2c\x7a\x95\xce\xef\xb3\x68\x32\x2d\xc8\x37\x5b\xdb\x7f\x26\x67\x53\x0a\x45\x02\x0b\xd9\x5b\x14\xd3\x34\xcb\x7d\x01\xfb\x26\x1a\xd3\x24\x87\xa6\x17\x49\x48\x33\x52\x00\xec\xde\x1c\xe0\xa8\x7c\x33\x20\x1f\x68\x96\x47\x69\x42\xbe\xf1\xb7\x88\x87\x00\x3d\xf1\xaa\xd7\xdf\x41\x14\xf7\xe9\x82\xcc\x82\x7b\x92\xa4\x05\x59\xe4\x14\x70\x44\x39\xb9\x8e\x62\x4a\xe8\xdd\x98\xce\x0b\x12\x25\xd0\x8b\xd9\x3c\x8e\x82\x64\x4c\xc9\x6d\x54\x4c\x59\x3b\x02\x0b\xeb\xc5\x4f\x02\x47\x7a\x55\x04\x00\x1e\x40\x85\x39\xfc\xba\x56\x01\x49\x50\x08\xa2\xf1\x99\x16\xc5\x7c\x34\x1c\xde\xde\xde\xfa\x01\x23\xd8\x4f\xb3\xc9\x30\xe6\xa0\xf9\xf0\xcd\xe1\xab\x83\xa3\xd3\x83\x4d\x20\x5a\x54\x7a\x9f\xc4\x34\xcf\x49\x46\x7f\x5d\x44\x19\xe7\x75\x30\x07\xa2\xc6\xc1\x15\x90\x1a\x07\xb7\x24\xcd\x48\x30\xc9\x28\xbc\x2b\x52\x24\xfa\x36\x8b\x8a\x28\x99\x0c\x60\x2c\xae\x8b\xdb\x20\xa3\x88\x26\x8c\xf2\x22\x8b\xae\x16\x85\xc6\x33\x49\x22\xf4\x5c\x05\x00\xae\x05\x09\xe9\xed\x9d\x92\xc3\xd3\x1e\xf9\x7e\xef\xf4\xf0\x74\x80\x48\xfe\x75\x78\xf6\xe3\xf1\xfb\x33\xf2\xaf\xbd\x93\x93\xbd\xa3\xb3\xc3\x83\x53\x72\x7c\x42\x5e\x1d\x1f\xc1\x28\x1e\x1e\x1f\xc1\xaf\x1f\xc8\xde\xd1\x4f\xe4\x9f\x87\x47\xfb\x03\x42\x81\x63\xd0\x0e\xbd\x9b\x67\xd8\x83\x34\x43\x14\x11\x32\x94\x86\x3e\x39\xa5\x54\x23\xe1\x3a\xe5\x24\xe5\x73\x3a\x8e\xae\xa3\x31\x74\x2d\x99\x2c\x82\x09\x25\x93\xf4\x86\x66\x09\xf4\x08\xeb\xcf\x69\x36\x8b\x72\x1c\xd8\x1c\x68\x0c\x49\x1c\xcd\xa2\x22\x28\xd8\xef\x5a\xbf\xaa\x56\xf6\xde\x03\xe5\x27\xa7\x6c\x7c\x11\x0d\xb6\x96\x04\x33\x9a\xe3\x60\x8d\xd3\x84\x77\x5d\x11\x30\x21\x6f\x23\xf2\x7d\x16\xcc\xc8\xeb\x6c\x91\xd0\x28\x23\xde\x15\xfc\xf2\x27\xfc\xd7\xdf\x27\xb3\x20\x8a\x7d\x90\x91\x3e\xd4\xf8\xc3\x1f\x70\x78\xf7\x92\x30\xa3\xb7\xe4\xfb\x34\xb9\xa1\x80\x94\x12\x0f\x88\xbc\xbf\x02\xea\x6c\xd0\x6f\x83\xa2\x20\x67\x59\x30\xbe\x27\xde\x0c\xbe\xff\xbd\x9c\x35\x71\x70\x95\x4b\xd8\xaf\x6e\x82\x8c\x4c\x69\x00\x9d\xdb\xa7\xf9\x38\x8b\xe6\xd8\x5d\xb2\x4b\x36\xce\x4a\x91\xc5\x01\xa4\x79\x34\x49\xb8\x14\x04\x61\xc8\xba\xcd\x6b\x61\x09\xfe\x2a\xd2\xb9\x94\x4d\x40\x7d\x15\x21\xf0\xcf\x1c\x81\xbf\xb1\xa3\xce\xde\x59\x1a\xd2\x18\xa6\x6b\x04\x1c\xa2\x59\x44\x73\xbf\xc8\xe1\xfd\x90\xfc\x35\xa3\xd7\x34\xa3\x38\x21\xe6\x41\x31\xdd\xed\xf9\xfe\xb0\xb8\x9f\xc3\xe0\xe4\x43\x18\x88\x69\x16\xc5\x3f\x97\xdf\xfc\x10\xaa\xf5\xc8\xf0\xbb\x8a\xa1\xa3\x4e\x7d\xc6\x0e\xbf\x65\x24\xec\x7c\xe5\x5d\x2f\x92\x31\xeb\xb0\xc7\x8b\xfa\xe4\xb7\xaf\x90\x79\x0c\x88\xc2\xc0\x8d\x01\x0a\x0b\x54\x48\x5e\x2e\x41\x8d\xb7\xff\xb3\xa0\xd9\xfd\xde\x04\xe6\xcc\x24\x80\x31\x57\xa1\xf0\x31\x5e\x9f\x9b\xbf\x7b\x7b\x1f\x5e\xf7\x2e\x80\xff\xdb\xf8\x1f\xfb\xb5\xb3\x34\x82\xcb\x93\xbd\xb3\x03\x86\xe5\x1b\x89\x85\x17\x55\xa8\x1e\xfa\xb2\x1f\xbe\x81\x81\xfc\xe7\x3f\xc4\xf9\x6e\x97\xfc\xf6\xd0\xef\x57\x68\x90\x4f\x75\x18\x47\xed\xaa\x5a\xc9\xae\x5f\x11\xc2\xcb\x8b\x20\x2b\x60\x4e\x27\xe1\x00\xb4\x0d\x2a\x17\x26\x17\x26\xef\xb0\xb1\x45\x16\x63\x8f\x50\xd9\xb3\xba\x06\x77\x10\x24\x0c\x8a\x00\x09\xd5\x5e\xe0\xc3\x9a\xb9\x4c\x82\x24\x85\xa9\xc7\x7e\xf8\x13\x5a\x9c\x81\x1c\x7a\x7d\xf2\x27\xb2\xed\x6f\xd1\xbf\x0c\x6a\xb5\x80\x2a\x59\x07\xbe\x76\xa9\x81\x84\x01\xf9\x23\xd1\x0d\x7f\x16\xcc\x15\x01\xa9\x89\x84\x7c\x32\x5a\x2c\xb2\xc4\xf1\x12\x1f\xd4\x29\x23\x92\xd5\x1b\x94\x4f\x50\xb2\x7a\xc4\xf8\x68\x05\x7c\xd8\xa9\x15\x3f\xf4\x75\x50\x03\x44\x10\x36\xf3\x71\x9d\xa0\x79\xe1\xfd\x86\xc3\x30\xc2\xff\x06\x64\x46\x61\xea\x85\x23\xd2\x7b\x77\x7c\x7a\xd6\x83\x41\xbc\x2b\x60\xfe\x15\x23\x58\xfa\x92\x7f\xe4\x69\x72\x90\x65\xa0\xea\x06\x6c\x54\x46\x7c\x6c\x1e\xfa\x35\x0a\x7c\xd0\x1b\x89\xc2\xa4\xd0\xc6\xa4\xe8\x9a\x78\x5f\x87\x40\x45\xbe\x88\x8b\x9a\x74\xc8\xa7\x04\x00\x19\x38\xbf\xb0\x74\xb6\x56\x52\xd6\xf0\x41\x73\x1f\x80\xb2\xe8\x32\x5a\x8c\x98\xcc\xc7\x0e\xcd\xd3\x28\x71\xd3\xc3\x38\xa8\xc0\x39\xc8\xb2\x93\xf6\xd0\xaf\x43\x8a\xe1\x08\xf5\x37\x2a\xe4\x83\x36\x3f\x4f\x28\xac\x57\x05\x9b\x8b\xd0\xb6\xd2\x37\x93\xe2\xf2\x8d\x52\xc3\xbb\x8d\x92\x30\xbd\xdd\x5f\x64\x6c\x1d\x1c\x90\x4b\x10\x2c\x5b\x57\xb1\x25\x2e\xef\x8e\x0e\xe2\xaa\xe8\x21\xd4\x65\x84\x8a\x69\x07\x3f\xff\x4a\x82\x6c\xb2\x98\x41\x63\xb9\x1f\xd3\x64\x52\x4c\xb1\xf8\xe5\x4b\x17\x2f\x79\x03\xe7\x50\x73\x93\xab\xb6\xb2\x3a\x94\x75\x1a\x6b\x34\xc4\x7c\xbd\x4f\x80\x46\x2f\xa8\xe3\x61\xb5\xb0\xe7\x00\x8b\x1f\x2e\x88\x92\x01\xfc\x8b\x31\x42\xda\x2f\x85\xc7\xfe\x3c\x4b\x8b\x14\x56\x3a\xea\xff\x2a\x46\xc9\x3d\x48\x92\xd7\xa0\x8b\x50\x0f\x01\x6c\x02\x36\xc1\x3e\x98\xca\x9e\x45\x56\xd8\xa8\xa0\xa6\x33\x61\x45\x75\x45\x9d\x6d\xda\x78\xe3\x16\x3f\x45\x73\x23\x82\x81\x24\x68\x50\x31\x6b\xa0\x71\xc5\x40\x65\xd7\x31\x0a\x57\xb4\xb5\x4a\xa9\x2c\x17\x17\x5d\xac\xad\x15\xcb\xd5\xe9\x6d\x90\x80\xb1\x97\x75\x14\x7f\xb5\x8a\x77\xc9\x3a\x6a\x1b\x05\xde\x39\x39\x62\xfc\x8b\x4b\x30\xb8\x82\xc1\x01\x58\xc4\xb1\x0b\x88\xa2\xaa\x6c\x81\xe1\x88\x0e\xe6\x29\xb8\x2d\xbb\x64\xcb\x05\x96\x2e\x0a\x18\x9a\x24\x04\xdb\xc9\x8a\xf0\xa1\x6e\x53\x88\x0e\x2b\xc2\x08\xdf\xc6\x60\x5c\x1f\x6b\xb8\x9a\x25\x13\xb5\x62\x8d\x02\xd7\x6c\xc6\xe1\x61\x4e\x10\x45\xbf\x60\xd7\x52\xd3\x67\x2c\x81\x96\xbe\xe6\x9d\x40\xdb\xa4\x0e\xc4\x79\x52\x41\x59\x84\x56\xd2\x56\x36\xd7\xa4\xad\x8d\x21\x73\x37\x68\x6f\xa7\x42\x21\x07\xd4\xd9\xaf\x36\x04\x6d\xc3\xe8\xa2\x9a\xc9\xc7\xcb\x97\x9d\x57\x99\xa6\x99\xe9\x10\x8e\x9c\x96\x73\xaf\x12\x89\x5f\xdb\xe7\xc9\xaf\x8d\x6a\xc0\xd1\x58\x39\x16\xcd\xd2\xc7\x5a\xaa\x4b\xad\x8d\xcf\x42\xdf\xa8\x4c\x5b\x85\x30\x2a\x26\xe2\x3a\xe9\x62\x83\xb9\x12\x71\x42\xfc\xd6\x43\x1c\xc3\xbe\xda\x60\x5e\x43\xc7\x3a\x72\xcd\x3d\xd5\x98\x01\xd6\x59\xd7\xd8\xe6\x53\x83\xbd\xc6\x5a\x1d\xa9\xa2\xcb\x97\x66\xaf\xef\xb6\xbe\x19\x43\xc0\xbd\xc5\xae\xce\x3d\xa6\x88\x3a\x5b\xe0\x56\x12\x45\xe7\xb9\x6d\x8c\xf8\x06\x2e\x4d\x62\x61\x4f\x7d\x96\x6b\xa3\x57\x6f\xa6\xcb\xf2\xac\x8e\x68\xdb\xfa\x6c\x2c\xbc\xf6\xaa\xa5\x04\x68\xde\x82\x77\x37\xcd\x06\x24\x9d\xd7\x8d\x6a\x41\x07\xbc\xf7\x81\xfc\x62\x91\x93\xef\xc8\x37\x5b\x5b\xe4\x6f\xe4\x1f\xa7\xc7\x47\x3e\x46\x99\x92\x49\x74\x7d\x8f\x18\xb0\x5f\xf3\x34\xc9\xe9\x19\xf8\x24\x7d\x32\x22\x66\x99\x69\x30\x57\x3e\x31\xfa\xb0\x2c\x1e\xe0\xcb\x02\xe6\x14\xeb\x45\xd2\x17\xc6\x6a\xec\x8d\x02\x54\xbe\xd4\xa2\x96\x33\x68\x1a\x8d\xd5\xe1\x4c\xf0\xe8\xb1\x81\x8f\xe6\xaa\xe1\xb7\xf0\xaf\x1d\xdc\x16\x8f\x61\x15\x70\x7d\x7e\x55\x12\xad\x45\x4b\xaa\xe2\x15\x23\x26\x08\xfe\x26\x4a\xe8\xeb\x2c\x98\x2b\xca\x4d\xa9\x54\xbe\xb5\x85\x01\x5e\x61\x54\x2d\x8d\xe3\x36\x9b\x4e\x93\xb1\xaa\x92\x77\x33\x6b\x32\x4a\x2e\x59\xb8\x96\xaf\xdb\x0d\x73\xf5\x66\x06\x30\x37\xb3\x06\x88\xf1\x14\xcc\x63\x5c\xb9\x6f\x7c\xce\x65\x3f\x86\x5e\xbd\xc2\x52\xaf\xee\x04\xcb\xc7\xbf\x33\x3c\x61\x29\xf6\xa5\xf5\x0e\x63\x8a\xa3\x55\x04\xb3\x39\x8f\x4d\x90\x21\x0f\x46\xf4\x77\x6c\xde\x75\x89\xf8\xde\x81\x38\xf4\x6f\x82\x78\x41\x9b\x2b\x2f\x72\x7a\x98\x14\x14\xbd\xfb\xe8\x86\xbe\x5e\x44\xd0\x21\xe8\x8d\x57\x64\x0b\xda\x50\x2d\x9f\xa6\xb7\x6f\xe8\x04\xdc\x83\x2e\x90\x3f\xed\xdd\x45\x79\x17\xc0\xff\xed\x02\x78\x77\x3a\x0e\x62\x60\xd7\xb7\x8c\x5f\x7e\xce\x7e\xf5\x1d\x66\x17\x1b\xb1\x30\x0b\x6e\x99\xd4\x69\xcb\x13\x8d\x29\x7a\x99\x03\x12\xe5\x87\x49\x54\x44\x41\x1c\xfd\x9b\x86\x03\x16\xdc\x65\xca\xc5\xbd\x94\xb0\x65\x4a\xab\xd6\x04\x8d\x0f\x08\x4b\x10\x86\x8c\x08\xef\xb2\x12\xa3\x06\x63\xb1\xae\xeb\xd5\xd6\x39\x0e\xe0\xd9\x22\x0e\x4f\x28\x86\xb1\x41\x86\x02\x60\x43\x0b\x1d\x38\x13\xc0\x69\xc7\x38\x2a\x0d\xf7\x79\x50\xcd\x15\xb9\xa8\xb7\x77\x33\xe3\x2b\x66\xb9\x82\xb7\x35\x87\x8f\xd9\x9c\x03\x55\x19\xaf\xd1\x23\x6b\xad\x9c\x95\x4f\x6b\xa4\xad\xce\x0a\x98\x1d\xf9\x08\xe6\x49\x15\xc7\x71\x1b\x02\xe6\xf3\x0b\xbd\xc7\xaa\x18\xbe\xeb\x5e\x69\x9c\xc6\x68\x4d\x54\x3a\xcb\x67\x25\xb9\xc7\x11\x35\xd8\x21\xe6\x13\x64\x34\x00\x53\x06\x66\x4a\xf7\x3a\xd7\x51\x1c\x1f\xcf\x83\x71\x54\x00\xe9\xfe\x76\xb7\x8a\x0e\xbb\x46\x03\x69\x90\x62\xf6\xbe\xf1\x2d\xcc\xe3\x1c\xa6\xe2\xb8\x90\x13\xd2\x3d\xf5\xe5\x83\x03\xb6\x98\x79\x9a\x60\x75\xa8\x55\x64\x41\x92\x47\x28\x56\x20\x6d\xa1\x08\x86\x78\x7f\xde\xda\xea\x50\x17\x94\x4c\xfc\xa8\x89\xdb\x64\x1f\x32\x8c\xfe\x1d\x2a\x3f\xb7\xda\x2b\xa2\xf1\x2f\x3f\xb0\x1e\x97\xaa\x8f\x33\xc0\xdb\x78\x71\x38\x7a\xf1\x76\xf4\xe2\x74\xa3\xdf\xa2\x5f\xdf\x06\x77\x6f\xa3\xc4\xbb\x0e\xe2\x9c\x76\x32\x2f\x15\x49\x55\xbc\x44\x43\xeb\xb4\x1a\xfd\xf8\xb0\xf0\x96\x70\xac\x74\x05\xc0\x4a\x5d\x6e\x33\xea\x1e\x5e\xed\xbb\xb2\x5a\x1c\xe4\xdc\x7f\x6a\xf5\xf7\x55\x60\x68\x97\xd6\x9d\x2e\xf5\x91\xb6\x34\x4c\xaa\xae\x4e\xb6\x52\x8d\x31\xd5\xc2\xd3\x7a\x91\x95\xa9\xd3\x20\xef\xcc\x4b\xd5\xe8\x37\xd9\x08\x7c\xb2\x04\x90\x9a\xa9\xe0\x4a\x08\x9a\xc6\xb9\x88\xcb\x29\x88\x7b\x41\x27\x69\x76\xbf\xbd\xd5\xe0\x32\x56\x18\xcc\xa8\xb5\x59\xa9\xec\xd2\xb8\xb2\xd6\x98\xed\x64\xeb\xa1\x62\x17\xbd\x32\xc1\x9b\x02\x5e\xa5\x6d\xe9\x8f\x55\x43\x72\xec\xa0\xb2\xa4\xe9\x26\xa2\xb7\xde\xb8\xc8\xac\xc4\xb0\xf8\x12\xbc\x93\xe3\xe3\x5e\xf2\xe4\x86\x8a\xd7\x63\xf6\xe0\x04\x29\xe9\x0d\xc0\x1c\xcb\x8b\xfb\x18\x3c\x85\xde\x6d\x14\x16\xd3\x11\xa8\x9b\xf9\xdd\xce\x94\xe2\xb1\x85\xd1\xb7\xec\x47\x8f\x3c\x0c\xb0\x5e\x7e\x33\xf1\xab\x6a\x40\xf7\x75\x34\x01\x0f\x03\x5b\xaf\x2c\x98\x07\x9b\xa5\x53\x17\x4c\x30\x4b\x69\x2b\xa1\xd0\x4e\x2f\x4e\x03\xe6\x2f\xfa\x7e\xaf\x15\xb1\x8b\xdf\xc8\x41\xb4\x9a\xe1\xc3\x35\xee\xb0\x5c\x81\x89\xcb\x24\x75\x80\x6b\xa7\x2b\x02\xce\xcc\xef\xdf\x48\x39\x6b\x47\x64\x6b\xc0\xc3\xd2\x23\xfe\x61\x13\x65\x1c\x24\x07\x4e\x86\x77\xe6\xc3\x5b\xc0\x0b\xff\x2f\xe1\x53\xcf\xfc\xd2\xb9\xab\xfc\x96\x01\x60\xeb\x2a\x85\xac\xcf\x28\x81\xec\x8b\xe6\x5a\x97\x50\xca\xc6\x6a\x55\xa6\x6e\xd6\xaa\x90\xd5\x36\xad\xe6\xd5\x56\x7e\x9b\xe6\xd9\x5a\x8a\x15\xef\xb6\x7a\x6b\x00\xdb\xbc\xdc\x39\x38\xf8\xf9\x90\xc9\xe6\x27\xee\xde\xba\x2a\x58\xfd\xf4\xd2\x21\xde\x0b\x67\x51\xf2\x01\xc4\x57\x77\x88\xab\x62\xd5\x21\x56\xbc\x5b\x05\xb6\xe6\xd5\x22\xe8\x3b\xe0\x9b\xd5\x0f\xc6\x17\xeb\x70\x81\x9f\xc0\x01\xce\x17\x33\x19\xd6\x45\x15\xac\xc7\x47\xd4\x0d\x1a\x6f\x7b\x8b\xfc\x89\xfc\x05\xff\xdb\xde\xda\x82\x69\x6a\x80\x1a\x07\x05\xfc\xbd\x0f\xaf\x41\xdf\x8c\x33\x3f\x01\x38\x66\x50\x61\x63\x63\x0c\x51\xfa\xdb\x36\xe5\x53\x92\x84\x67\xc6\xd6\x46\x13\x3b\x44\xb1\x22\x61\x45\x3a\x99\xc4\xb4\xee\x5a\x36\x19\x26\xa5\xe7\x76\x7b\x02\xdd\xc2\x01\xf9\xda\x28\x72\x5b\x28\x9a\xe7\xc7\x81\xdb\xdc\x23\x0e\x3e\x13\x01\x5b\x19\xe0\x17\x58\x4a\xc6\xae\xe4\x87\x36\xac\x31\x9d\x5a\x97\x92\xb6\x52\xe3\x3a\x66\x11\x7e\x76\x59\x91\x4d\xc6\xf7\xac\x8c\x66\x5a\x44\x4b\xdb\x35\xec\x42\xf4\x32\x54\x31\xd8\x08\xa3\x2f\xe0\x8a\xb2\xfd\xe5\xe2\x50\xfc\xd2\xa7\xbe\x5c\x91\x5c\x7d\x46\xfb\x01\xc5\x7d\x6b\x75\x9b\x3e\x4d\x16\x09\x9a\x02\x9d\xc4\x78\x1c\xd3\x20\x2b\x49\xd5\xba\x61\xa3\x60\x4d\x06\x64\x77\xdb\xb1\x71\xc1\x46\x55\xfc\x94\x16\x23\xaa\xda\xab\x45\x51\xa4\x89\x1e\x8e\x96\x4f\x69\x51\xb6\x4e\xe1\x0a\x0b\x9e\x8e\x3a\x05\x70\x72\x96\x16\xe0\x66\xf4\x1e\x69\x01\x5a\x10\x33\x42\x3a\xe1\x55\xec\x5c\x66\x10\x20\xff\xc0\x90\x3c\xb7\xb6\x04\x50\x3f\x7e\x8b\x66\x26\xd7\x91\xfb\x74\x96\xf6\x1c\x51\x8e\xba\xb9\xe2\x9b\xb6\x14\xe7\x9b\x90\xff\xf5\xa2\xe1\xd6\x31\xfc\x1f\x25\xf3\x45\x71\x8e\x73\x64\x97\xb3\xed\x02\xad\x73\xa7\x5a\x62\x41\xa5\x91\xc2\x61\x77\x94\x25\x4d\xc6\x31\xf8\xf4\xc2\xc2\x57\x96\x12\xc7\x06\x53\xdf\x42\xea\x45\xbb\x68\x5b\x8d\x73\x98\x61\xf8\x12\xca\x39\x63\xd8\x0f\xb4\x03\x95\x9f\x86\xbd\x29\x57\xb9\xca\x28\xf2\x2b\x6b\xb5\x56\xa8\x58\x9a\xd5\x3b\x03\xd4\x6d\x69\xce\xd2\x24\xc2\xe5\xf9\x71\xb6\xe6\xd2\x96\xdd\x5b\xde\x6c\x7d\xab\x83\x97\x3f\xca\xba\x73\x68\xb0\x27\x52\x46\x0d\xba\x10\x64\x78\xca\xa6\xa0\xe8\x05\x79\x17\x07\x63\x3a\x4d\xe3\x90\x66\xa6\x71\xb3\xbc\xf8\x08\xa4\x95\x00\x69\x05\xa6\xcb\x22\x28\xd0\x84\x48\x16\x1a\x62\x54\xc1\xae\x26\x48\xc2\x43\xc0\x0d\xc5\x27\x3c\x8b\xdc\xf5\x6c\xb7\x49\x06\x5a\x96\x97\x7c\x73\x73\x1d\x0e\x94\xec\xe5\x6a\xe4\x76\x3e\x3c\x7d\x04\x25\xa7\xac\x13\xb5\x29\x52\xbd\x32\x67\x09\xbe\xc9\x3b\x1e\xd2\x62\xb0\xee\x73\x03\x97\xe2\x14\xb0\xd8\x8d\xff\xcd\x16\x78\xe6\x1b\x3e\x34\x1f\x77\x81\xe3\x23\xc2\xc8\x73\xc1\xea\x53\x82\x11\xa8\x98\x4d\xf5\xd3\x32\x2e\x93\xa0\xd9\xfb\x52\x4f\x41\x0b\x39\x61\x32\x93\x0f\x2d\x6b\x72\xb7\xa3\xbb\xaf\x0f\xdc\x27\x77\x5d\x5b\x82\xe6\x89\xdd\x96\x53\xb9\x72\xc7\x26\xb4\x9c\xb1\xcd\x6b\xc2\x60\xeb\x33\xf6\xf1\x10\x8d\x4e\x31\x37\x70\xe0\x98\x1b\x76\x19\x85\x5d\xdc\x20\x26\x11\x5e\xff\x9c\xe3\xb9\x20\xbb\xe2\xb0\x58\x27\xb7\xa4\x56\xb9\x71\x27\xcc\xed\x8a\x88\xf3\x98\x40\xff\x9b\x28\x2f\xca\x1d\x2e\x03\x7d\x73\x77\xbc\x0a\x81\x38\x34\x8b\x7d\xd9\xea\x83\xa6\x6b\xec\x89\x52\xef\xbc\x8e\x62\x93\x6c\x5f\xf8\x8b\x79\x88\x77\xae\x2e\x83\x82\xfc\x55\xf2\xb9\x2a\x6b\xdd\xc2\xb3\x76\xc6\x9f\x2f\xc0\xf3\x10\x63\xdc\xbc\xfb\x73\xa9\xcd\x34\x8d\xdd\xb9\xa2\x4b\x6c\x8f\x63\x27\xc5\xd1\xa0\x20\x74\x8e\x0a\xee\x38\x0e\x0f\xf0\x8a\x0e\x36\xd8\x08\xcd\x19\xa1\xdc\x92\x71\x56\x10\xb3\x4e\xc8\xbc\xc5\x52\x6e\x3e\x0b\x6b\x6a\x0e\x4b\xcb\xdd\x0e\x4f\xe1\x14\xb1\xab\xb4\x6a\x42\xd5\xdf\xb1\x83\xda\x62\xb6\x45\x09\x51\xc7\xb4\xf1\x74\x15\x6b\x4d\x1d\x33\x9b\x34\x9c\x5b\x45\x44\x95\x41\x44\xd3\x1a\x5d\x6e\x61\x98\x31\xb0\x9d\xb4\xee\x13\xb2\xa3\x9a\xe5\x0e\x2e\xb8\x37\xb0\xc4\xa4\x13\x0c\xf9\x4e\x74\x8d\x55\x7f\x83\xb7\xd1\x9a\xa6\x60\xd9\xa4\x40\x92\xa3\xd3\x40\x0d\x94\x9b\x2a\xca\x77\xc8\xa7\xf0\x34\xfa\x37\x1d\x10\x13\x6c\xdb\x15\x20\x79\xe4\xd8\x04\x37\x60\x4d\x04\x57\x51\x1c\x15\xfa\x72\xc8\x79\xd3\x34\x3c\x92\x9b\x75\x0d\x61\xf7\x9d\x59\x90\x2e\x66\xd7\xd4\x2e\xb3\x20\x99\xd0\xcb\x71\xba\x48\x0a\xa1\x2e\x1b\xb7\x3c\x7a\xdb\x5b\x5b\x2f\x96\x71\x72\x79\x63\xa2\x73\x31\xd5\xda\x1b\x12\x17\x25\x2c\xf6\xd8\x07\x8f\xee\x94\x9d\x5c\x03\xe1\x7c\x49\x7a\x66\xbb\x6d\x1c\xcd\x28\xbb\xb2\xc9\x0f\x51\x7f\x5e\xfc\xac\xba\xb6\x76\x86\x5e\xf2\x2d\xf2\x7d\xbe\x11\xa3\xb0\x11\xcf\x57\xb9\xb8\x88\x7a\xb9\x30\xae\x56\x18\x07\xb2\x5c\x1d\xac\xa6\x21\xc3\xc0\xf7\xeb\xc1\xd3\x93\x05\xcb\xad\x11\xfb\xb4\x00\xc9\xcb\x9f\x41\x00\xda\x0c\xa7\xca\x97\x0c\xa3\x1b\x74\x26\x8f\x52\x7e\xed\x0b\x6f\xea\x52\x18\xa2\x7b\x5a\x74\xd8\x40\xb4\xa1\x72\x06\x8e\x0a\x9c\x72\x4e\x00\x09\x94\x21\x04\x7e\x09\x91\xac\x53\x70\x19\x61\x69\xf0\x7a\x20\x21\x4c\x9a\x72\x2c\x00\x63\xb2\xd4\x81\x20\x39\xfd\x91\x2b\x06\xa5\x22\x46\x7c\xe7\x06\x0e\xfd\x68\x12\x2b\xb7\x8f\x45\x17\x1e\xba\xfb\x65\x21\x27\x38\x9f\x82\xd3\xb7\x3b\x64\x6d\x82\x57\x00\xfd\x10\xcd\x63\x8f\x2e\xb4\x1d\x63\x70\x0c\xd2\x05\x08\xfc\xc3\x40\xc2\x2c\x71\xb0\xa8\x07\xd8\x5a\x2c\x3a\x7c\x1e\xfa\x17\xee\xb3\x26\x17\x0d\xed\xd5\xc7\xec\x88\x16\xb7\x69\xf6\x0b\x0e\x4a\xc9\x78\xc6\x77\xe6\x0c\x04\x61\x88\x97\xc1\xfd\x84\x43\xf5\x97\xc3\xbd\xc7\x6b\xb7\xe0\x16\x9f\x4b\xe2\x3e\xc5\x6b\x52\xa0\x9e\x83\x42\x43\x5f\x53\x3c\x9e\x10\x22\x06\xcd\x2c\xee\xe5\xda\x79\xcf\x6d\xf5\x8e\xed\xa8\x96\xfd\x72\xed\x9c\xa0\xc6\xb5\xb0\x4a\xd1\xc4\x4b\x62\x7c\xc3\x2f\x93\xbb\x10\xd7\x35\xfd\xb2\xa3\x2b\x17\x66\x67\x13\xd6\xa5\x7b\xc5\x56\x98\x71\xa3\x35\x21\x2e\xc5\x29\xb6\x8f\x54\xcf\xcb\x0e\x31\x1e\xa5\xda\x3c\xa9\x96\xfc\xee\x2c\x03\xa3\xae\x61\x51\x5d\x92\x8e\x1f\x60\x09\xb8\x27\x15\x1d\x96\xde\x56\xed\x28\x7d\xb5\x36\x61\x29\xae\x85\xab\xad\x6b\x76\x69\x17\xe3\x8d\x79\xdc\xd6\xda\x72\x82\x55\xb6\x2e\xc0\xfe\x77\x13\xa8\xb6\x1e\xf3\xa3\x4e\xea\x19\xba\xde\x8b\x9f\x36\x5f\xcc\x36\x5f\x84\xe4\xc5\x8f\xfc\x30\x9d\xb9\x9a\xa9\x2b\xbc\x16\x09\x55\xe0\xaa\x28\x98\x2f\xc3\x5e\x06\xfc\xa7\x76\x37\xa2\xa2\xb8\xba\x1e\xa1\x94\x29\x37\x24\x34\xc8\xe5\x2e\x49\xf0\xa0\x3e\x8b\x67\xad\xe9\xf8\x88\x35\xcc\xba\xda\x26\x80\x32\x60\x46\x7c\x53\x1b\x1c\x2e\x59\x49\xc9\x14\x36\xd8\xca\x0e\xb2\x29\x0a\x9e\x91\x60\xa1\xeb\x49\x8f\xae\xa7\x3c\xea\xf4\xf0\xe0\xa4\x2d\x9c\xc1\x67\xf2\x32\x3b\xcf\x0d\xd8\xd1\xcc\x50\xb6\x94\xf9\xc5\xaa\x83\x1b\xdc\x37\x3f\x6d\x8c\xa5\x3e\x6e\x1f\xda\xb2\x07\x7d\xe9\xd8\x84\x36\xb4\x8c\x8b\x58\xa9\x6d\xac\xd3\xde\xb6\x55\x5d\x9f\xfb\xb9\xaf\x0d\xab\xad\x52\x29\x62\xce\xdd\xa3\xf2\x6d\xc7\x2d\x24\x97\x85\xbd\xcc\x26\x78\xd9\xe6\xd3\x6f\x3e\xb5\x58\xf9\xd3\x6f\xb8\x3b\x81\xda\x12\x43\x97\x2e\xd3\x1c\x40\x17\x71\xa3\xd5\x7c\x7c\xf5\x33\x1d\x17\x78\xd4\x2f\xf7\x2c\xf2\xca\x23\x59\x7d\x3f\x4f\xf1\x9e\x8e\x61\xca\xbb\xbd\x2a\xf5\x61\xce\x21\xdf\x5a\x70\x36\xd0\x1e\xee\xd5\xd9\x13\x47\xcc\x76\xe7\xd7\x09\x94\xe8\xb7\x38\x13\xda\xd5\x55\x98\xf9\x45\xb6\xc8\x61\x1d\xfb\x63\x72\x95\xcf\x77\xfe\x78\x85\xd7\x8a\xf9\xf7\x36\x67\x87\x55\xaf\x3c\x0c\xb1\xed\x00\x6e\x85\x46\x4e\x93\x97\xc1\x86\x6f\x64\x56\xe9\xd0\x6c\x8f\x27\xc9\x2a\xad\x74\x89\xc1\x30\xfa\xb1\xf1\xcd\xda\x4b\xf1\xd9\xd8\xc8\x85\xeb\x5e\x10\x3e\x66\x86\x94\xaa\xd2\xb2\x1b\xed\xd5\xf4\x71\x6d\x97\x96\x10\xa5\xec\x54\x25\xb8\x78\x9a\x65\xb6\x9c\x3c\xf8\xb6\x51\x6b\x7c\x04\xa5\xf1\x94\x3a\x43\xdb\x10\x12\xe2\xe5\xcf\x83\x2c\x00\xe9\x14\x32\x65\x0b\x31\xac\xa0\x6a\x08\x9f\xb4\x0d\xba\xa6\x6d\xde\x95\xbb\xea\x4c\xf4\x89\x8c\x37\x34\xba\xda\x16\x9d\x21\x22\x3c\x52\xff\xac\x6c\x47\xdb\xc7\xa5\x49\x18\x6b\xb2\x68\x11\x45\xdb\x1e\xbe\xb4\x6b\x95\xad\x7a\x5e\x64\xec\xdf\x4b\xb8\xc7\x1c\x03\x81\xe9\x5d\x5c\xd2\xbb\x79\x9c\x66\xf4\xd9\x0f\x83\x9c\x40\xe3\x07\xa2\xed\x9a\x39\xa8\xbe\x34\x37\xbc\x99\x01\x68\x9d\xa3\xec\x8d\x29\xf9\xac\xd0\xcf\x81\xfe\x98\xfe\x93\x1d\x53\x17\x5b\xd1\x3d\x53\xd8\x55\xc8\x0f\x78\xce\xa8\x23\xec\x2b\xf4\x04\xd9\xdc\x14\xd0\xe6\x39\x41\x0e\xcc\xdc\x46\x16\xd4\x68\xc5\xcb\x40\x0f\x92\xb0\x1d\x50\x78\x1f\x6f\xd2\x49\x05\x7b\x6e\x8a\x6f\xc9\xa1\x38\x9d\x9c\x88\x1a\x6e\x97\x48\xf2\x19\xfd\x3f\x7b\x44\x53\xf3\x7b\xc0\xaa\x24\xbb\xbb\xbb\xa4\xf7\x33\xb8\x5b\x3d\x67\x82\x29\x7e\xb2\xa0\xc1\xa9\x7a\xec\xb5\x0b\xd1\x82\xdb\x27\x73\x63\x15\x55\xf1\xa3\xda\x44\x42\x1f\x90\xbd\x00\xed\x03\xfa\x83\x48\xa4\xe4\x2a\x0d\xef\xfb\x96\xa8\xbc\xc0\x72\xbe\x71\xbe\xc1\x19\xeb\xf3\xb3\x02\x03\xb2\x71\x41\xa0\xa8\xf2\x31\xa1\x84\x48\x18\x76\xa8\x60\x63\x84\xbf\x11\xc1\x85\xff\x73\x1a\x25\xde\xc6\x86\x85\x1d\xb5\x21\x07\x33\x8b\xed\x13\x63\x45\xb7\xe2\x36\x78\x6e\x01\x7e\xb0\x4b\x4b\x3e\x0e\x12\x8f\xf7\xa1\x21\xa1\x12\xbb\xd8\xc9\x0e\x56\xfc\x72\xc3\x34\xca\x90\x49\xef\xdf\x58\x40\x6e\x17\x15\x37\xe8\x12\xa0\xfc\xfd\xc9\x61\x79\x76\xd0\x33\x67\x84\xf5\x7e\x31\xbb\x05\xfc\xb5\x3e\x23\xdc\xfb\x87\x25\x29\x2f\x77\xc9\xc6\x1f\xe1\xd7\xee\x46\x6b\xdb\x1c\xe1\x32\x51\xf5\xea\x4c\x88\x7d\x65\x13\xa7\x43\xc4\xc8\x5b\x61\xd8\x59\x12\x49\xad\x1d\xa4\x3c\x55\xa2\x4c\xd8\x3a\x64\xf3\x51\x1a\xa1\xa1\x60\x0c\xd1\x01\x85\x0f\x87\x4e\xc0\xac\x98\xf7\xab\x0c\x33\xab\xc8\x0c\x59\x43\xc5\xba\x72\x6a\x09\xd6\x39\x93\x88\x3c\x2b\xf3\xf0\xc1\xab\x2d\xec\x7a\xf9\x48\x71\x86\xd9\xfc\x50\x6e\xf9\xa3\x16\x04\x23\xbc\xce\x7d\xbb\xc0\x72\xe2\xb9\x46\x64\xd9\xfd\xdc\x5b\x3e\x8c\x1b\x3e\xb7\xf7\x35\x7f\xbc\x51\x35\xcb\x87\xa9\x13\x5a\x9c\x70\x34\x3f\xb2\xc0\xa5\xd7\x43\xdb\x12\x06\x66\x13\xd5\x32\x9a\x4f\x78\xd3\x7e\x38\x8f\x83\x28\xd9\x21\x78\x0d\x16\x6a\xec\xbe\x3f\xfb\x61\xf3\xbf\x5c\xf7\x2e\x38\x69\x32\x28\xe6\xd8\xcd\xb6\x17\xcb\x1e\x09\x45\x58\x5b\x4e\x6d\x72\xd1\x61\xa6\x89\xcf\x0e\xc2\xce\x24\x12\xef\xa1\xe2\xa7\x43\xdc\xc7\x7c\xb1\x5e\x45\xe0\x45\xd5\x2f\x22\xaf\x3c\x9f\xa0\xc8\x8b\x64\xcc\x88\x77\x78\xb7\x79\x7b\x7b\xbb\x89\x31\xe8\x4d\x60\x23\x5f\x0c\xc2\x8f\x3a\x13\x84\xb1\xb8\xf6\xb9\x30\x2e\x8d\x52\xf1\xcd\x35\x1f\x30\xce\xc7\x6c\x09\x0b\xe3\xeb\x16\x47\xcd\xb6\xb4\xb6\x2d\x70\x62\xe3\xe2\xab\x5e\x49\xf3\x96\x58\x9d\x2a\xc2\x5d\x73\xcd\x4b\x52\xf9\xa1\x7f\x0f\x55\xda\x40\x9e\xee\x1f\x60\x9a\x6c\xdc\x80\xaa\x4d\xe5\xca\x6d\xed\x78\xc5\x40\x5c\x2d\x28\xac\x97\x0a\x64\x2b\xa3\xf2\x9b\x2d\xab\x55\x79\xe5\x40\x52\xa7\xb3\xca\x9a\x6d\xb4\xec\xde\x75\x44\xe3\x50\xf4\x8e\xd1\xb2\x64\xdf\xb0\xa6\xbd\x67\xf3\xea\x44\xfa\xe3\xfa\x27\x58\x74\xc3\xb5\xb9\xb5\xff\x53\xb4\xab\x30\x7a\x85\x91\xa7\xbd\xa2\x80\x09\xca\xc0\x7b\xa2\x53\x66\xd6\x5c\x67\x06\x56\x3c\x86\x76\x5f\x5a\x6d\x56\x7f\x4f\x07\xf9\x44\xef\x7b\xca\xd9\xf3\x8e\xca\x14\x6a\xc2\x4d\x73\x65\x89\x28\x6b\xf2\x4b\xd5\xc6\x4a\xd3\x00\xcf\xf7\x1a\x6a\xcb\x6e\x43\x0d\x99\xd9\xd1\xdc\x0d\xd0\x2f\xc4\x19\x3d\x90\x84\x37\xde\xfa\x9b\xd0\x5a\xe6\x41\x13\x29\xd7\x68\xec\x1c\x75\x0b\xb2\x79\x9a\x77\xc5\xc6\xd7\x9f\x66\x74\x98\x83\xbd\x23\xba\x1f\x0f\xf6\xf6\xdb\xd0\x01\xbb\x3b\xb0\x50\x20\xdc\x3f\x78\x73\x70\x76\xe0\x40\xd9\xf1\x2e\x61\x65\x54\x54\x2d\xba\xcd\x99\x92\x4e\x73\x18\x59\x1a\x28\x7b\xbf\x14\x73\x4a\x62\xe6\x47\xd7\x35\xa9\x19\xe8\x42\xf4\xfb\xbb\x9a\xa8\xeb\x8f\xa7\xbc\xa4\x58\x29\xe8\x9c\x32\x70\xe4\x7e\x19\xd1\x12\xf4\xe5\x9b\xa2\x91\xc6\xa0\x2a\x8b\x82\xfe\x73\xf8\x81\xbc\x0b\xa2\xac\x21\xa2\x8a\x46\x4e\x63\x48\x95\xaf\x2f\x3d\xd0\x21\x00\xc6\xee\xc4\x81\x82\x11\xdf\x0c\xd9\x68\x3a\xd4\x50\x6e\x84\x64\x41\x96\x35\x6e\x7e\x88\x06\x3f\x08\xf5\xcf\x1a\x02\x1d\xb5\x74\x93\x62\xdd\xef\xbd\xa6\x85\x44\x03\xea\x65\x65\x34\x68\x37\x4a\x3c\xa8\x0a\x56\x46\xf4\x6e\x51\xd2\x83\x1a\x6a\x65\x3c\xfb\x4c\x81\x48\x54\x5c\x9d\x2c\x85\x6c\xe9\x08\xb6\x21\xf8\xae\x38\xb6\x0e\xc6\x4c\x34\xa3\xc8\xb6\x8d\xc2\xce\xd6\x34\x2f\xdc\x3a\xc8\x67\xb7\x70\x6b\x91\x5e\x33\xd4\xd5\x56\x8f\x87\x7d\xf5\x20\xd5\xef\x7f\x09\xff\x6c\x17\x49\x35\x48\xfa\x39\xae\x91\xfa\x54\xfd\x94\xd7\x48\x46\xe9\x13\x2c\x90\x6c\x96\x4a\x6d\x5c\xcd\xdb\x67\x58\x29\x61\xa6\x6b\xed\x1e\x24\xab\x2f\x4e\x4f\xb4\x58\x3e\xff\xda\x64\x08\x9c\x6b\x6d\xd2\xc1\xd8\xda\x64\x14\xd9\xd6\x26\x11\x7d\x69\x5e\x9d\x4c\xa0\xcf\x6e\x7d\x7a\xbc\x63\xf9\xca\x16\x53\xd2\xea\xfc\x4e\xd6\xa5\x2f\xae\xe5\x47\x59\x35\x8d\x28\xfc\xe7\xb8\x70\x9a\x5a\xe4\x53\x5e\x3a\x05\xad\x5f\xbc\xcb\x2f\xde\x65\xfd\x59\x7a\x05\xaf\x49\xbe\x6b\x0d\x37\x01\x45\xa6\x44\xa3\xd0\xb6\x8e\xbf\x49\x27\xcd\x6b\xb8\x0a\xf0\xc8\x23\x7b\x76\xbd\x17\xa7\x93\x51\x7d\x7f\xc4\xce\x41\xb6\x09\x32\x32\x36\x47\x5a\xb7\xd7\x8c\xbc\x97\x4a\x87\xd6\xa3\x4a\x34\x1d\x02\xcd\x75\x51\x1b\x49\x9e\xc6\x4e\x9b\x5b\x4a\xe0\x2b\xec\xb1\x14\x40\xd6\xfd\x81\x7d\x41\xe3\x29\x7e\x9d\xe7\x46\x59\xfd\x98\x1d\x7b\x31\x2f\x0a\x3a\xff\xe2\x9c\xde\xc5\x1e\xde\xd8\xb3\xfd\xe1\x0f\xc6\xef\x65\xe5\x5c\x1b\x12\x97\x8c\xab\x40\x4c\xbe\xb5\x02\x9b\x6c\xff\x6e\xd2\x1e\x69\x02\xd3\x24\x2d\xd6\xd5\xa9\x71\x35\xd1\xc3\x4c\x6e\x25\xa7\x9b\xfc\x6e\x38\x53\xa9\x74\x3f\x98\x8c\x8f\x3a\x64\xeb\xc8\x11\xa6\x9e\x76\xac\x32\x3d\xd5\x4b\x8d\xa3\xa2\x2a\x80\x7e\x62\x54\x7b\x63\x1c\x1c\x35\x6a\x3d\x32\xfb\x13\xde\xdc\x5d\x5f\xde\xa5\x25\x13\xd7\x5a\xae\x27\x7d\xcc\x74\x4e\xec\xb2\xb4\x23\x9f\x93\xf2\xce\x3c\xdf\x2a\xee\x58\x77\xbb\xb5\xc4\x81\x3f\xe5\x94\x4e\x9c\xc2\x67\xca\xe9\x24\xaf\x6f\x3b\x5d\x83\xcf\x21\xa9\x93\xbc\x98\xae\x67\x75\x92\xb7\xe8\xed\x8b\x1b\x3e\xf5\xb4\x4e\x02\xd3\x8a\x79\x9d\xaa\xda\xeb\x49\xec\x24\xf1\x37\xf7\xe8\xf7\x92\xd9\x49\xf6\xe6\x31\xa9\x9d\x14\x8e\xff\x7f\xca\xed\x54\x53\x21\x5f\x92\x3b\xb5\x24\x10\xaa\x73\xec\xf3\xc9\xee\x24\xfa\xf6\xa4\xe9\x9d\x54\x9c\xcf\x90\xdf\xa9\x3e\x3c\xce\x04\x4f\x0d\x49\x50\xca\xb5\xc0\x92\x91\xc6\xad\x3b\x39\x4b\xe1\xed\xb3\x25\x25\xe2\xad\xb9\xb2\x3c\x39\x69\x59\x25\x2b\x51\x9d\xb1\x8e\x3c\x4f\x9f\x0d\x5b\x9d\xc9\x9e\xd6\xc1\xd7\xe7\x4e\xf7\xa4\x4c\xcb\x55\xf2\x3d\xd5\xa4\xc1\x96\xf0\x69\x7d\x92\xf0\xb9\x24\x7d\x62\x37\x3a\x0f\xf5\x64\x25\xd6\x0b\xcd\x5c\xe4\xca\x3b\xca\x9d\xee\x36\x3b\xea\x2c\x9b\xe1\x85\xd1\x68\xcb\x74\x64\xe2\x7f\x5c\xbe\x23\xd6\x8c\x2d\xe9\x91\xab\x99\x27\x4d\x7d\x54\x9f\x85\x42\x09\x3c\x79\xf2\x23\x67\x4b\x4f\x9a\xfe\x48\x68\xb0\x35\xe4\x3f\x72\x29\xbf\xa7\x4c\x80\xd4\xb0\xac\xad\x33\x03\x92\xd4\x57\x6b\x48\x81\xe4\x5c\x32\x36\x49\xd3\x62\xb3\xd6\x24\x48\x4a\x77\x57\xde\x9d\xb0\xaf\x65\x6d\x69\x90\xec\x36\xa1\x3d\x0f\x92\x6b\xa1\x7a\x44\x22\x24\x8e\x52\x0b\x17\x2a\x80\x4a\xfc\xc8\x2f\x03\x46\x66\x95\x4f\x2d\x19\x92\x42\x74\x95\x0d\x49\x2d\x54\xd2\x21\xe9\xb0\xab\xe4\x43\xe2\xb1\xa0\xf5\x26\x44\x32\x02\xa0\xab\xdd\x84\x57\x87\xcd\x0c\x11\x6a\x63\x24\xa4\x2c\xaf\x58\x63\x66\x45\xaa\x8b\xc5\xba\xf3\x22\xd9\x68\x7a\xca\xcc\x48\x8d\xf8\xbf\xe4\x46\xd2\x06\xa1\x53\x72\x24\x0e\xeb\xdc\x64\xaa\x5e\x3f\x63\xa6\x93\xaa\xd1\x8f\x94\x1f\x49\xa8\xd0\xa7\x4b\x90\x64\x15\xdb\xc6\x14\x49\x1d\xb3\x9d\x2a\x39\x92\x1a\xda\xe8\x10\x3b\xd5\xb9\x54\x4b\x93\x24\xc3\xc9\x1f\x2d\x4f\xd2\x92\x99\x58\xf9\x10\x8e\x14\xf0\x4e\xf9\x91\x80\xf3\xbd\xc7\xa6\x6f\x5a\x35\x87\xd3\x13\x24\x72\xb2\xb9\x34\x7a\x36\x27\x9b\x37\xd2\xd8\xdc\x33\xa5\x74\x52\xa6\xbc\x6b\x77\xb4\x02\xa9\x84\x5d\x29\x43\x1b\xa0\x5e\x6a\xdb\x51\x67\xaf\x9b\x35\xde\xc7\x50\x78\x4f\x9d\xdb\xa9\xda\x17\x32\x92\x3b\xc9\xb9\xfc\x04\xd9\x9d\x18\xe1\x4f\x98\xde\x89\xcf\x5a\xd2\x6d\xda\x5a\x15\x9e\x4c\xf1\x24\xab\xaf\xec\x25\x38\x06\xa8\x51\x3a\x2d\xc2\x69\x95\x4d\xdb\xf6\x7d\x69\xb6\x2b\x9b\xf3\xa2\xcc\xd8\xb2\x2f\x21\x57\xdb\xac\x0f\xe6\x73\xa7\x15\xbc\xaa\x09\xac\xff\xc5\xda\x36\xb8\xea\xef\x8d\xb5\x41\xca\x24\xa6\x6d\x70\x66\xea\xaa\x36\xf8\xd2\x19\x60\x80\x72\x7e\xa0\x15\x8f\xfb\xc7\xd3\x20\x9f\xf6\x76\x64\xb1\x17\xa6\xe3\x05\xfe\xa5\x7c\x3c\x08\x78\xc0\xff\x68\xfe\xf7\xf7\x87\xa1\xd7\xcb\xd2\x14\xed\x03\xd2\x63\xed\x6f\xd2\xea\xec\x0b\x9f\x91\x3d\xce\x91\xde\xa8\xf6\x57\xdc\xd8\x01\x8e\x81\x00\x12\xec\xd0\xc1\xd4\x3f\xec\x25\x01\x91\x1b\x3a\x94\x91\xc7\x4e\x05\xcc\x3b\x43\x0e\x47\x32\xdd\x9b\xa3\x46\x0d\xf5\x52\x35\x74\xde\x8c\x5c\x07\x53\xb4\x9e\xb2\xf1\xd1\x61\xcd\xf9\xa3\x81\xe6\x6e\xd8\xbc\x06\x3c\x1c\x95\x1a\x70\x89\x16\xba\xd6\xfa\x0a\xb7\x13\xff\x2f\x00\x00\xff\xff\x1f\x41\x30\x6b\x7e\x9d\x00\x00") + +func uiJsAppJsBytes() ([]byte, error) { + return bindataRead( + _uiJsAppJs, + "ui/js/app.js", + ) +} + +func uiJsAppJs() (*asset, error) { + bytes, err := uiJsAppJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/app.js", size: 40318, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsD3335D3MinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\x69\x77\xdb\x46\xd2\x28\xfc\xfd\xfd\x15\x16\x6f\xa2\x83\xa5\xc1\x4d\xde\x02\xaa\xc9\xe3\x38\xce\x32\xb1\x1c\xc7\xca\xce\x61\x74\x20\xb0\x49\x22\x06\x01\x1a\x8b\x44\xda\xd2\xf3\xdb\xdf\xaa\xea\x6e\xa0\x01\x52\xb2\x3d\xf3\xdc\x3b\x19\x8b\x00\x7a\xdf\x6a\xaf\xea\xa3\x45\x99\x84\x45\x94\x26\x96\xfd\x41\x3f\x3e\x48\xac\xc4\xfe\x90\x89\xa2\xcc\xe0\xf9\xf8\xd8\x4a\xba\xe9\x75\x22\xb2\x6f\xd2\xb0\x5c\x8b\xa4\xb8\xb9\x49\xba\xf3\xfa\xd9\xae\x5e\x5e\xc4\x02\x7f\x6e\xab\x8a\x8a\xfb\x2b\x3a\x3e\x6e\x7d\xe8\xce\xc5\x22\x28\xe3\xe2\xb7\x48\x5c\x9b\xad\x40\x46\x7a\xad\x53\xed\xba\x11\x61\x25\xac\xa8\x9a\x29\xc6\xc9\xc4\x1b\xf8\xc9\xb8\x98\xe0\x5f\x5e\x4c\xfa\x7e\xbf\xd7\xaf\xb3\x67\x66\x9f\xca\x38\xe6\x9c\x27\x13\xc8\xe1\xbb\x49\x9d\xa9\xac\x33\x1d\x45\xf9\xab\xe0\x15\xbc\xd7\xa9\x51\x9d\xfa\x21\x16\x8b\xc2\xaf\x26\xb1\x60\x82\x65\xac\x84\xb9\x4c\x33\x2b\xc8\x96\xd4\xfb\xbc\x1b\x8b\x64\x59\xac\x4e\x4f\x60\x0a\x32\xde\xb7\xd9\x5e\xca\x43\x48\x29\x79\xa1\x5e\xed\x51\x39\xce\x46\xf6\x87\xab\x20\x7b\x10\xf1\xcc\x2d\xc7\xe3\xf1\x60\x04\xb5\x4f\xa3\x19\x13\xf6\x69\x7f\x92\xf1\xc8\x1d\xf8\x25\x8f\x6e\xd5\x48\xb2\x5b\x96\x45\xcb\xd5\xff\xeb\xae\x8c\xfb\x13\xe8\x84\x4f\xdd\xa9\xbb\x72\x5b\x4f\x55\x6a\xce\xb6\xaa\xb3\x4e\x0d\x30\x15\xfb\x87\xd5\x17\x1c\x2a\x76\x8a\x2f\x07\x23\xbb\x70\xf8\xa0\x3f\xd2\x2b\x5a\xe7\x0f\xe5\x52\xeb\x12\xe2\x41\x04\xc9\xf6\x4f\x97\xff\x88\x90\xf6\x4e\x94\x88\xd7\x59\xba\x11\x59\xb1\x83\xbd\xb6\xc9\xd2\x22\x2d\x76\x1b\x01\x33\x01\x03\x88\x4b\xe1\x17\x53\x01\xdd\x4e\x60\xc4\x59\x70\x19\x0b\xff\x68\x70\x6b\xac\x6b\x0c\x87\xa0\x58\x45\x79\xf7\x82\xab\x3a\xc3\x4c\x04\x05\x6c\x30\xd8\x27\x46\xbe\xbc\x1e\x94\x95\xb8\xbc\xd3\xb1\x61\x13\x6d\x02\xd8\xa2\xd3\xfe\x0c\x1e\xaf\x82\xc9\x55\xe0\x26\xbe\xb1\xa1\x16\x7b\x45\xaa\xac\x49\x37\x8f\xa3\x50\x58\x03\xdb\x2c\xb0\x32\x26\x0e\xdb\xc3\x91\x52\xd7\xea\x2c\x4b\xb3\x4e\x8e\x99\xea\x5c\xc7\xc7\x73\x11\x8b\x42\xa8\xd7\x69\x32\xab\xcb\x6d\x2c\xb9\x9e\x09\x9f\xce\x46\xd5\xec\x3f\xa8\xca\xda\x30\x75\x65\xbe\xb2\x16\x56\x61\xdb\x7a\x15\x8c\xae\x5d\x55\xe5\xfb\x07\x8b\xbb\x6e\x72\xa0\xd4\xdc\xaa\x17\x2e\x31\x72\xab\x53\x36\x50\x45\x8e\x8c\xa3\xba\xfe\xc4\xf5\xd8\x99\x9b\xac\xfe\x7c\x86\xbb\x05\x36\xa9\x4e\x32\x40\x1d\x76\x22\xe3\xa2\x1b\x6c\x36\xf1\x0e\x8e\x4a\x75\x0a\xaa\xf1\x66\xb0\x38\xc5\x24\xf1\x33\x63\x33\x6f\xe5\xf6\x8b\x60\x62\x70\x00\x89\xad\x77\xe8\xa8\x80\x03\x13\xae\x82\xec\x59\x61\xf5\xed\x6e\x91\xfe\xba\x81\x4d\xf8\x3c\xc8\x85\x65\xbb\x45\xb5\xbe\xd5\x6c\x09\xde\x67\x19\x9f\x07\xea\x40\x8c\xb2\xb1\x18\xb9\xae\x90\xfd\x2a\x21\x01\xb6\xa9\x5b\x8c\xa0\xa1\xb2\xd1\x50\x69\x74\xe6\x12\x86\x51\xbf\x5d\x34\xde\xae\xe9\x5c\xd5\x50\xd8\x38\x64\xd0\xae\x60\x25\xf7\x06\x0c\x8e\xb3\x6e\xdf\x75\xcb\xd3\x68\x64\x5b\x05\xcf\xa6\xe5\xac\x9b\x26\xf6\xf1\x71\xa1\x27\x07\x16\xe0\xc0\xfc\x24\xb7\x72\x20\xd3\x19\xd4\x98\x88\xeb\x07\x71\x75\x5e\xa1\x3c\x37\xc0\x50\xa9\xa0\x07\x4b\xa1\xc1\xa5\x28\x60\x57\xe9\xac\x7b\xc0\x67\x38\x49\x8f\x8f\x53\xa8\xc0\xb7\xe0\xc1\xc2\x27\x8e\x8b\xcd\x04\x2c\x96\x9c\xc6\x3e\x74\x5c\x74\xa3\x64\x2e\xb6\x3f\x2d\xac\xd4\xb6\xbb\x61\x9a\x84\x41\x61\xe9\x0c\x00\x8a\x6c\x9b\x65\xdd\x4c\xac\xd3\x2b\x81\x7b\x98\x95\xc7\xc7\x42\xee\xe9\xac\x9b\x63\x0f\xd8\x07\x68\xa2\xbc\x85\x24\x80\xeb\xcc\x80\x30\xe7\xb8\xe5\x82\xae\xb8\x42\x6c\xb4\xc9\xe8\xf7\x1b\x89\x76\x2c\x63\xc7\xbd\x35\x37\x33\x83\xd5\x57\x45\x46\x09\x6c\x84\x3c\x2d\xb3\x50\xbc\xa0\x77\xbb\xe0\xc9\x01\x40\xf6\xa2\x09\xf8\x70\xfe\x2e\x98\xdc\x15\xed\x39\xc1\x8d\x71\x0a\x20\xb8\x98\x56\x29\xb0\x3b\x66\xfc\xda\x98\x47\x98\xf2\x45\x3d\xe5\x00\xf7\xf7\xf7\x3c\xac\x42\x91\xed\x14\x1c\x2f\xcd\x3e\xd6\x9d\x2f\xbb\x05\xb4\x21\xa0\x3f\x4c\x7f\xe3\x25\x2b\xa6\xf0\x1d\xa0\xe8\x4c\x6d\x08\xac\xfe\x16\x40\x6d\x10\xc7\xbb\x6a\xae\x00\x13\xdd\x36\x26\xf2\x99\x71\x26\x77\x00\xe7\xd9\x45\x00\x93\x5d\xa7\xbf\xaa\xd3\x3b\xfa\x63\x07\x8e\x1c\x34\x94\x2e\x1e\x24\x70\xf2\x8c\xe3\xaa\xea\x39\xc3\x7a\x70\x3f\xda\xc6\x39\x78\xfe\x1f\x54\xb4\x3d\x54\xd1\x7b\x85\x5c\x6a\xba\x42\x41\x1f\xb9\x91\x9e\x15\x45\x16\x5d\x96\x08\x7d\x6c\x93\x9a\x38\x9c\xe9\xd5\x39\x20\xa0\x7c\x13\x84\x82\x01\xda\x4b\xc3\xc0\x84\x57\xa5\x2e\x04\x7b\xd1\xa8\x16\x5a\x37\x69\x8c\x03\x79\xf6\x6b\x6d\x94\x49\x15\x64\x13\xfc\xae\xc3\x2b\x09\x1e\x31\xb9\x63\x5c\xfe\xa1\x5e\x09\xdb\x44\xd8\xff\x4d\x0b\x07\x26\x65\xbf\xc5\x03\x63\x84\x1e\x68\xa8\x83\x9b\x35\xc9\xbb\xef\xca\x20\x8e\x16\x08\xf7\x99\x6c\x10\x40\xb5\xcc\x3c\xc9\x7c\xe1\x1f\xd8\x08\x75\x86\xc0\x4f\x7d\xfd\x1c\x01\x10\xa8\x06\xf7\xae\x41\xab\x40\x77\x00\xff\xc0\x10\x36\x31\xf4\xc5\xea\xfd\x3b\x77\x7b\x4b\xd6\x79\xd0\x31\xa6\xe3\xa5\x59\x02\xce\xf0\x1b\xb1\x7c\xb1\xdd\x58\x1d\x6b\xe2\xff\x7d\xf3\x6f\x28\x61\x77\x5c\xe8\x70\x26\xde\x95\x29\x4d\xb0\x8b\x49\x98\x70\xf3\x85\xdd\x61\x9d\xa5\x59\xd9\x2f\x0d\x12\x01\x28\x04\xdd\x85\x7c\x13\x47\x85\xd5\x83\x1a\xa1\x0b\x46\x81\x37\x07\x36\x6c\x8d\x61\xbc\x01\x41\x8e\x72\x64\x27\x00\x2f\xe4\x3a\x15\xad\x9d\x6b\xe6\x06\xd0\x73\xd7\x9a\xee\xd5\x03\x00\x20\xe1\xd8\xdf\xee\x3a\xd8\x58\xdf\xd8\x23\x89\xb7\x92\x0a\x9f\xdd\x75\x1c\x0b\x5c\x9e\xba\x0f\xdf\xe0\x90\x25\x08\xc4\xa9\x1c\xb5\x81\x16\x41\x32\xc4\x82\x00\xf1\xc3\x38\xc8\xf3\x97\x51\x5e\x68\x64\x98\x4d\xca\x6e\x30\x9f\xe3\xb6\x2d\x35\xb0\x4f\x74\x57\x04\x62\x9a\x7a\x17\x77\xa8\x74\xc7\xbe\xb9\xe9\x74\x46\xd9\xc4\x02\xf2\x36\xc8\x8b\x1f\x10\x89\x00\xd0\x2d\xba\x85\xc8\x0b\x00\x91\x37\x37\xa2\xb9\xfb\x55\x39\xf6\xce\x2a\x5d\x58\x7a\x17\x48\x2c\xdb\xbf\x3b\x4f\xb5\x5b\x0a\xda\x28\xb6\x09\x5e\x5e\x6b\x6a\x64\x1f\x76\xe4\xc5\x2e\x16\x6a\x08\x35\xfd\x7a\x10\x60\x50\x4e\x68\xbe\xce\x46\x95\x36\xe1\x86\xa4\x6e\xee\x3f\xa1\xd9\xe4\xbe\xa6\xfd\x3b\x5b\xcb\xcc\xd3\xa8\x8e\x5e\x76\xf8\xc0\x35\x0e\xd7\xaf\x07\x36\xab\x41\xa2\x36\x08\x54\x3d\x31\xf0\x91\x17\xcd\x59\xf8\x34\xe0\xd3\xac\xd8\xd7\x75\x89\x76\xc7\xef\x80\x14\x25\x50\x7d\x55\xab\xff\xec\xd1\x52\x72\xc3\xd2\x0c\x35\xb8\x57\x40\xe0\xf4\x31\x09\xd6\x82\x00\xd8\xaf\x6f\x7e\xd0\x5b\x1a\x00\xa2\x22\x5e\x15\x93\x0c\x60\x0e\x00\x1c\x4c\x74\xf3\x73\x63\xd9\x45\x8d\xb1\xf6\x5b\xdb\xab\x6e\x0f\xdf\xdc\x8b\x14\xad\x7d\x50\x6a\x2b\xa0\x08\x6c\x52\xdd\x87\x6f\x2b\x62\x9f\xba\xb0\x09\x32\x6c\x2d\x9d\x8b\x51\x82\xec\xbb\xdc\x39\xcf\x57\x51\x3c\xb7\x24\x42\xad\x4a\x7e\x6f\x70\xc9\x17\x17\xf3\xa0\x08\x2e\x2e\x80\xc3\xa9\x33\xfc\x64\x40\xcf\x7d\x1c\x7d\x19\xc8\xe5\x4d\xcc\x43\xf4\x83\x51\xa4\x4d\x28\xdd\xdc\xc0\x98\x84\xcd\x4c\x0e\xb8\x9e\x3f\xa0\x00\x27\xf0\xa9\xab\x7b\xc2\x44\xf5\x68\xfb\x47\x85\x77\x24\x8c\x66\xfe\x6c\xf1\x99\x44\x98\x25\x26\xb5\x2e\x5c\xd7\xd6\xc9\x25\x50\xa4\x08\x1b\x81\xc0\xed\xb3\x80\x47\x3a\x5f\x30\x4e\x47\x29\xe4\x03\xf0\x15\x4d\xd3\x19\xd2\xd4\x56\xc9\x52\xe8\xd5\x01\xf6\xe8\xaf\x36\xbd\x74\xde\xa4\x97\x7e\xab\x40\x25\x13\x7b\x70\x12\xf8\x7c\x16\xc9\xe4\x14\x7a\x90\x00\x73\xde\x2d\x37\x30\x3a\xc1\x42\x5e\x71\x19\xd8\xdf\xe8\x88\x0b\x20\xac\x05\x8f\x80\x6a\x05\xf6\xbf\x1c\x73\x98\x1a\x20\xfc\x4b\xa0\x9a\x47\x47\x56\xca\x83\x69\x81\x5d\x75\xdd\xe2\x34\x1c\x55\x3d\x4d\x8d\xd9\xf9\xe3\x20\x24\xab\x4f\x05\x8c\x75\x44\x95\xd6\x24\x00\x11\x9a\x08\xbc\x05\xec\x60\x2a\x5e\x74\xbf\xb0\x99\x79\x4e\x61\x82\xf6\x8f\x7a\xc9\x43\x58\xc6\x2c\xa8\x05\x18\xc8\x91\x76\x61\x97\xc6\x72\xbb\x11\x15\x87\x68\x60\xaf\x05\x59\x27\xd0\xaf\x65\xf7\x0b\xdc\x16\x25\x70\x91\xc5\x3e\x9c\xc4\x53\x6b\xa2\xee\xbf\x2f\x2e\x60\x42\xa7\x7f\x77\x67\x07\x90\xf7\x17\x9d\x9a\x87\xcb\x34\x0f\x6b\x23\x3f\x08\xac\xcd\x3a\x28\xc2\x95\x25\x6c\xdd\x73\xea\x41\x06\x53\x71\xd7\x34\x14\xd3\xc1\x8c\x51\xff\x9a\x33\x91\xcd\x6e\x89\xb9\x4a\x79\x07\x3b\x03\x58\x07\xd7\xb4\x62\x79\x3a\xdd\x8e\x0d\xcb\xfa\x05\xec\xaf\x3e\xca\xd4\x78\x52\x71\x46\x81\x2d\xf1\x5f\xcc\xdf\x06\xc4\x6a\xd5\x38\x35\xa6\xac\x31\x14\xfc\xda\x66\xc1\x84\x80\x9c\x5f\x4c\x2e\xfd\xa8\x9e\x93\x2f\x1a\x92\xb4\x1a\x0b\x57\x18\x45\x33\x0a\x15\xd5\x2f\x80\x3b\xe8\xcf\x24\x68\xd0\xc7\x69\x84\x7c\x46\x62\x42\xe8\xe2\x00\xbf\xd0\x90\x12\x7d\x2d\x1b\x96\x67\x4d\xf6\x62\x6f\x8f\x27\xe6\x16\xa3\xe3\x98\x89\x18\x76\xf8\xfc\x17\xe2\x59\x46\x19\x49\xb4\x00\xc6\xdd\xdc\x3c\x3d\x86\x2d\x92\xae\x11\x56\x69\x68\xf9\x3a\xcd\x23\x09\x14\x6c\xc2\xf2\x72\x07\x35\x81\xcb\xef\xf5\x48\x3b\xdd\x79\x16\x2c\xf3\x72\x03\x2c\x60\x9e\x7b\x1d\xf7\x81\xeb\x3e\x0b\x80\x6f\x06\x64\x1f\x85\x6f\x3b\x6e\x06\x67\x1e\xc6\x92\xc3\xb2\x85\xc0\x4f\xe2\xb2\x03\xaf\x6a\x75\x8a\xb4\x0c\x57\xb8\xd4\x98\xe5\x5c\x7e\xa3\xaa\x80\xb3\x2a\x8c\x6f\xb2\xa0\xf1\x15\x99\x7d\x89\x96\x5e\x04\x30\x92\x17\x01\xef\xa4\x89\x99\x2b\x42\x24\x72\x34\xf0\xb7\xc8\xe8\x22\x62\x66\x9d\x32\x17\xd9\x39\x65\x01\x5a\x83\xbd\x08\x14\x04\xe0\xb8\x64\x2a\x4f\xc0\xd3\xe9\x8b\x60\x36\xa2\xbf\xbc\x93\xa4\x89\xe8\xdc\x1e\x98\x5a\x68\x3d\xea\x12\x24\x21\xd9\x0a\xa3\x4e\xc8\x42\x08\x87\xf4\xdc\x1b\x60\x9a\xb2\x97\x32\xfb\xed\x48\xbd\x19\xe9\xc0\x49\x33\xe4\x99\xd9\x11\x80\x19\xa0\x21\x7e\x89\xd6\x22\x2d\x91\xf7\xee\xdb\xe6\xda\xff\x8b\x58\x8c\x0f\x02\xe5\x27\xc9\x12\x96\x13\x67\x50\xe4\x04\xa4\xda\x1f\x61\xaf\xc9\x0d\x8e\xcb\x4f\xd8\xf0\xfc\xb7\xef\x14\x06\xbc\xb9\x49\x70\x0e\x33\x85\x17\x21\xe1\x75\x1a\x25\x85\x3e\x8d\xed\xef\x16\xcd\x78\x7f\xfc\x2a\xd0\xc2\x4d\x3a\x2d\x34\x0f\x79\x98\xa5\x71\xfc\xc7\xcd\x8d\x7e\xfc\x13\x0e\x85\xb1\xdc\x9d\xcb\x74\xbe\x03\xfa\x1c\xb6\xb8\x48\xe6\xb0\x98\x57\x40\xc8\xcb\x09\xb7\x3e\x6c\xd4\x4e\xf3\x3b\xc1\x65\x9e\xc6\x40\x21\x76\x58\x91\x6e\xfc\x3e\x23\x51\x71\x9f\xad\x61\xbf\x46\x09\x3c\x6c\x00\x6c\x45\xc9\x12\x9e\x2e\xd3\x6c\x2e\x80\x8a\x92\xcb\xc3\x3a\xd1\x7a\x93\x66\x45\x90\xc0\xba\x8e\xe4\x92\x66\x30\x74\xf8\x3f\x1e\xea\x73\x18\x88\x48\x9e\xff\x72\x06\x43\x78\x15\x70\x80\xd9\xdd\xc5\xcd\x4d\xda\x15\x86\xd0\x03\x66\x58\x2d\xf2\xab\x60\x02\x74\xe9\x16\xa6\x72\x13\x2c\xc5\x1f\x00\x6d\x76\xea\xf9\x4f\xdb\x57\x29\xb0\xa7\x61\x02\x75\x9a\x7c\xfb\x13\x20\x26\x2f\x11\xa8\x65\xd1\xf6\x97\x2c\x48\x72\x00\x7c\x6b\x20\x32\x9a\x3d\x00\xa8\x74\x25\x32\x94\x73\xd9\x6c\x0a\xb5\x61\x1d\x33\x82\x5e\x08\xb2\x20\xef\xd7\x69\x99\xe0\x28\x9f\x53\xad\x6f\x70\xfa\xf4\xd9\x9e\x56\x2d\x7b\x88\xa3\x16\x85\x97\xa8\x0f\x2f\xe1\x85\x55\x3d\x81\x54\x98\xc0\x2a\xf1\x97\x74\x63\xd0\x8a\xdf\x19\x34\x92\x96\xdb\xec\x6d\x9a\x6e\x34\x87\xef\xd1\x22\x12\x06\x61\xf7\xa3\xc9\xbc\x8d\xfb\x93\x81\xdf\x97\xba\x03\x43\x02\xf9\x73\x53\x84\x68\x21\xb4\xf3\x50\xca\x6b\x3b\x96\x00\xf0\x0d\xcf\x83\x99\xed\x11\x28\x97\xcf\xf8\x5d\xe7\xa9\xeb\x49\x1a\x9a\x90\xf1\x60\xd2\xf7\xbd\x01\xb4\xf6\x2e\xf0\xcf\x82\x62\xd5\x0d\xc2\x34\x6f\x90\x7e\x45\xbb\xc0\x9b\x40\x96\xf0\xde\xe8\x22\x79\x94\x34\xa9\x45\xa3\x88\x05\xb0\x9e\x72\x09\xc0\x69\x40\xd9\x79\x83\x5e\x62\xf7\x86\x06\x89\x7d\x4f\x66\xb7\x9d\xb9\xbc\x2b\xf3\xd0\xa1\xba\xed\x1e\x30\xac\x03\x93\x09\x29\x1a\xa2\x69\xca\x4f\xdd\xed\x0d\x6d\xdb\x31\xa8\x9a\xb4\x68\xc8\x2d\x83\xa2\x25\xb2\x45\x58\x0f\x78\x16\x20\x60\x12\x22\xe5\x1a\x14\x13\x49\x56\xac\xb8\x2b\x71\x7c\x37\xe7\x6e\xc1\xae\xd2\x48\xd2\x9f\xdd\x98\xbb\x00\x8b\xfd\x03\x92\xc5\xa4\x55\x11\x62\x7d\x6c\xb0\xbb\x02\x92\x39\x47\xb2\xd9\xf6\x2f\xe1\x70\x23\xbe\xbd\x28\x58\x50\xd8\xbe\xce\xd2\xe2\xb1\xc2\xe2\x00\x05\x64\x2e\xd7\xc9\xe3\xfe\x24\xf1\x38\xfc\xe0\x9e\x42\xcc\xeb\xe2\x8b\xcd\x1e\xe3\x16\x8b\x5c\x2b\xf5\x22\x98\x87\x1e\xa4\x0f\x9e\xe2\xa7\xd4\x1f\x3e\x34\x93\x2c\x78\xf5\x60\x11\x20\x43\x74\x50\x2b\xf5\x80\xe6\x34\xc3\xc3\x65\x0d\x1f\x3d\x72\xb0\x7d\xfb\x56\xc9\x59\x2b\xf2\x92\x6b\xdd\x15\xec\x37\x2b\xf9\x92\xfa\x70\x0a\x5d\x73\xb1\x67\x28\xb7\x94\xe9\x05\xa6\xf7\xc7\xa8\x2a\x2b\x60\xab\x0d\x7c\x24\x8a\xfa\x63\x01\xef\x82\xde\x05\x90\xb6\xdd\x47\x63\xe0\xac\x84\x63\x0d\x5c\x98\x19\xe1\x16\x9e\x70\x0a\xc0\x82\x43\x47\x78\x29\xc3\x99\x5a\x03\x79\x8b\x1b\x61\x88\x74\x25\x8a\x66\xe0\x8f\x87\x6f\xa6\x8a\xe5\x63\x2b\x1c\xef\xaf\x70\xf8\x1f\xad\x70\x2c\x57\x38\xd6\x2b\x1c\xca\x15\x6e\xe4\x59\x14\x93\x25\xa6\xc7\x90\x16\xc0\xbf\x4b\xdb\x87\x77\xd8\xb1\xd7\xf4\x17\xa9\xbf\xe5\x25\x71\x46\x80\x17\xbb\x4b\xca\x61\x9b\xb9\x75\x0b\xad\x0d\x92\xb7\x47\xa9\xd7\x81\x88\x30\x98\x1e\x3d\xef\x44\x7a\xc3\x3b\xd6\xb3\x00\x2a\x82\xd1\xb2\x12\x30\x70\xf8\x37\x81\x0d\x33\x5c\x1f\x1e\x78\x33\xda\x58\x7c\x6c\x26\x17\x7a\x26\xe3\x6a\x26\x83\xe6\x4c\x5e\x7e\xda\x4c\x2e\xe4\x4c\x2e\x5a\x33\xd5\x9e\xed\xbc\x35\xd3\x72\x0e\xd7\x45\x6b\xfe\x7c\x5d\x57\x6b\xce\x56\xd5\x78\x24\x82\xc7\x9d\xf4\xd8\xee\x0d\x06\x8f\x01\x11\x65\x6e\xd1\x7b\xd4\x47\xd1\x7f\xe6\x89\xde\xb0\x5f\x29\x07\x4b\xbe\x41\xc1\x8d\xf3\x47\x00\x24\x21\x3c\x66\xb6\xf3\x45\x00\xd9\xe0\x11\x8e\xd1\xd7\x81\xde\x98\xf3\xc2\x3a\xe9\xc2\xa1\x7a\xf8\xe8\xe1\xd0\x29\xbd\x41\xf7\xd1\xc9\x93\xc1\xc9\x53\x38\x38\x5e\xf7\xe1\x57\x4f\x1f\x9d\x0c\x1e\x3a\x11\x90\xe1\x85\xe5\x75\xbf\x7a\xfc\xd5\xf0\xf1\x63\x07\x38\xa2\xee\xd3\x27\x8f\xfb\x83\xfe\x53\x27\x73\xbb\xfd\x87\x83\x47\x8f\x1e\xab\x4c\xdd\x3e\x3c\x3f\x3c\x79\x08\x55\x75\x87\xfd\x87\xfd\xe1\xa3\xaf\x20\xcf\x00\x3e\x3f\x19\x0e\x1f\x0d\x21\x97\x31\xb2\x65\x7b\xa5\x10\xdb\xa8\x9d\x23\x41\x39\xcc\xe2\x10\x16\xbf\xb0\x9d\xd7\x81\x5a\xf0\x77\x00\xa1\x0b\xa7\x70\x85\x23\x90\xfe\xd2\x3b\xad\xdf\xeb\x33\xfc\x67\x02\xfe\x4d\x13\x57\x40\x87\x1e\x3f\xfd\xea\xa4\x7f\xf2\x70\x92\x38\xf0\x1f\x9c\x7c\xef\x61\x6f\xf8\x95\xdd\x7b\xd2\x7d\xf2\xf4\x49\xff\xe4\x89\xa1\xca\x6b\x15\xed\xf7\x9f\x3e\x7d\xf4\x78\x42\x5d\xd8\xa4\xd7\xd0\xef\x41\xef\xc4\xf6\x75\x41\x27\x71\xb1\x26\x43\xa9\x57\xdc\x0d\x92\x60\x92\xfa\x27\xfd\x87\x63\x9e\x4c\x06\xc3\xee\x57\x80\x2b\x7c\x9c\xa0\x47\x4e\xa3\xf6\x61\xf7\xa1\xed\xe1\x67\x73\xc6\xd6\x1f\xdb\xdb\x6b\xbd\xb7\x33\xfe\x3f\xff\xa3\x36\xf7\x12\x1e\x9b\xbb\xfb\x7f\xfe\xe7\x53\xb6\xf7\x5a\x6e\x6f\x6c\xd3\xdc\xa6\x1a\x15\xac\x0b\x16\x2a\x54\xb0\xde\xdf\xb5\xbb\xa2\x25\x02\xc6\x3c\xe3\x31\x6c\x5a\xf8\xfb\xf4\x18\xe6\x81\xc1\xbf\x63\x73\xb9\xce\xcc\x22\x54\xde\xed\x74\x0c\x25\xa3\x99\x3c\x78\x0c\x48\xa1\xd3\xef\xb8\x34\x67\xeb\x60\x6b\xe1\xd2\x03\x39\x74\x0e\x64\x59\xb2\xb4\xe0\x84\x48\x6a\x60\x0d\x00\x02\x1b\x6b\x25\x1a\xea\xc2\xe6\xf1\x42\x81\x81\x92\x57\xf4\x81\x27\xec\x13\xe9\xcc\x7b\xd6\x34\xf0\xde\x03\xe7\xfb\x6f\xcb\xea\x3a\xf6\xbf\xed\x5e\x04\x78\x5e\x84\x78\x84\xf3\xeb\x08\xf9\x5b\x38\x8b\xd3\xe1\x4c\xc9\xa4\x3b\x0c\x58\xd1\x0c\xc9\x9e\x0f\x61\x90\x8b\xce\x2a\x8f\x3b\xbe\x96\x78\x59\xc0\x7f\xe5\xe2\xdb\x38\x05\x0c\x5a\x22\x39\xc4\x1a\x1f\xa0\x50\x6f\xd0\xef\x37\x3f\x0e\xe5\x47\x7b\x44\xd5\x01\xf0\xad\xaa\x2b\xac\xb7\xba\x9a\xb7\xaa\xb8\x7c\x80\x22\x5a\xd4\x65\x45\xfc\x3b\xc5\xf7\xc2\x2c\xbc\x4c\xaf\xb5\x0e\xd6\xb6\x27\x00\x0f\x60\x75\x23\x58\xdd\x08\x57\x57\xf1\x5a\xc9\xcd\x4d\xe7\xff\x74\x8e\xe0\xa1\x56\xdf\x02\xd9\x4f\xd0\x19\x80\x08\x76\xed\x07\xa4\xdd\x2a\x15\x2e\x83\x49\x85\x1c\xd6\x43\x34\x1b\x51\x1b\x6a\x62\xa5\xdc\x3a\x79\xfa\xb0\x7f\x1c\xd9\xe3\xf1\x43\x98\xd6\x14\x7e\x6e\x50\x12\x33\xc4\x8f\xf0\x1b\xe0\x87\x00\x26\x7a\xf0\x08\xde\x43\x1e\x9e\x9e\x3e\xbc\x09\xe1\x60\x19\xd5\x20\xc3\xc5\x61\xd1\x9e\x00\xc8\x7b\x2a\xeb\x82\x6d\x14\x70\xeb\xf1\xa3\xa1\x7a\x7f\x0a\x45\x71\x3b\x01\x78\x01\xde\x0a\x1a\x60\xa1\x79\x6c\x2e\xf6\xd7\x98\x57\xbb\x23\xe9\x61\x51\x56\xc8\x1f\x41\x3f\x36\xf4\xb5\xda\x59\xb2\x28\x72\x8c\x1e\x76\xd1\x4a\xdd\x08\xa8\xc0\x4a\x55\x0b\x6c\x04\xd2\x00\xe1\x24\xe8\x51\x92\x0f\xbf\x43\x0f\xa9\x15\x64\xc6\x39\x4f\xe1\x44\x7a\xc2\xee\x05\xae\x25\x80\x94\x78\xec\xf7\x6d\xbf\xa0\xcf\x02\x29\x99\xc0\x1d\x22\x20\x2a\xf0\xe9\x21\xcb\x1c\x0e\xa4\x88\x8f\x26\x28\x00\xcc\x4a\x1e\xa2\x28\x63\x00\x95\xf7\xfd\x4c\x62\x43\xd8\x0e\x38\x80\xd0\x18\xde\x75\x35\xbc\x84\x9f\xe3\x29\x01\x02\xe6\x1c\xd5\xc9\x40\xad\x9c\x23\x0b\xae\x58\x43\x00\x6a\x56\xf7\xe1\x60\xf8\x10\x40\x34\x40\xac\xee\xc9\xa3\x27\x8f\x9e\x3c\x1e\x00\x30\xed\x02\xb5\xf5\xf0\xe4\xc9\x23\x80\xa9\xbd\x3f\x02\xe4\x70\x28\xef\x70\x30\x7c\xfc\x64\xf8\x15\xe6\x7d\x32\x78\x34\x78\x34\x1c\x62\xde\xfe\x93\xe1\x40\x66\xfd\x02\xb2\x46\x32\x6b\x7f\xf0\xd5\xc9\xc9\x09\x65\x1d\x0c\xbe\x1a\x7c\x45\x39\xbf\x7a\x84\x80\x6e\x80\x59\xbf\x0e\x6a\xc9\x45\x61\xc1\x4a\x22\xb2\x79\xcc\x00\x77\x39\x56\xe6\x95\x36\x1b\xe2\x53\xe9\x35\x10\xc4\x79\x83\x5c\x96\x2b\x73\xca\x01\xe3\x00\xba\x9a\x24\x3d\x82\x9e\x7e\x05\x35\x01\x31\x12\xbc\xec\x11\x34\x65\x08\x40\x0d\xc5\x74\x51\x0b\x4a\x8c\x93\x55\xc9\x81\x3a\x5f\x76\xb8\xb1\xdb\xf5\xde\x03\x1a\x7e\x62\x82\xef\x2e\x80\x69\x00\x7a\xa6\xc6\xba\xf8\x0f\xf4\xac\xa6\xb4\xf7\x59\x71\x48\xdc\x4b\x56\x4a\xd5\xe7\x21\xf4\xad\x0d\xae\x8f\x8f\x0f\x34\x27\x48\xd8\x23\x50\x76\x47\xe2\x8a\x57\x05\xd5\x94\xa0\x66\xca\xd0\x31\xab\x0d\x83\x2d\xec\x89\x16\x91\xfc\x0d\x81\x69\x0f\x8a\x32\x47\xe8\x77\x54\x1c\x1f\xbf\x2f\xac\x10\x4e\x77\x31\xe6\xb0\x4c\xc7\xc7\x27\x7d\x20\x8a\x6f\x6e\x60\x6d\x51\xae\x24\x15\xe8\x09\x57\xc2\xa3\x08\xf7\x66\x48\x32\xbf\x7a\x00\x88\x7d\x1e\x00\x2b\x9e\x65\x69\xa6\xb3\x41\x97\xd2\x2e\xac\xc2\x5c\x7f\x00\x64\x20\xe2\x5c\xb4\xf3\x85\x8a\x7e\xe7\x1f\x6e\xe1\x58\x02\xed\x39\x8f\xf2\x0d\xd5\xdf\xb9\x14\xc0\x7c\x8b\x5c\x24\x73\x80\xb8\x9b\x2c\x5d\xa2\x54\x0a\x1e\xb1\x56\xf8\xa1\x6a\x3a\x78\x74\xa1\x68\x48\xe2\xcc\x3f\xce\x5e\x7e\x5f\x14\x9b\x37\xe2\x5d\x29\xf2\x82\xc5\x34\x4f\xda\xc4\x86\xd0\xe3\x1f\xdf\xa4\xeb\x20\x4a\x54\x0e\x80\x83\x00\xdf\x57\xcf\x33\x41\x9c\x72\x10\xe7\x28\x70\x0a\x6f\x6e\x8e\x7a\x7f\x5b\x2b\xa8\xc9\xca\xed\x89\x6f\x4f\xfe\xdd\xfb\x77\xaf\x27\xd5\x65\x09\xc2\x41\xd5\x5a\xa3\x2e\x9b\x75\xd2\x84\xba\x86\x55\x4c\xc2\xae\x7c\xe3\xf8\x40\x5d\xe5\xa5\x8f\xcf\x99\x08\xe6\x3b\x5c\x00\x21\x19\x76\x53\xba\x14\x76\x29\xf5\x1c\x53\xc7\x27\xc7\xc7\x25\x4a\x92\xb0\x90\x1e\x3d\x3f\x20\x18\xdc\x13\x4f\x26\x24\x8b\x4c\xbb\xba\x90\x31\xd5\x7b\x02\xc9\xe2\xf6\x16\x50\xc3\x0a\x5a\x15\x99\x51\xb9\x21\x10\x4d\xb8\xd6\xcb\x9a\xb8\x65\xdf\x82\x6e\x38\x09\x50\xeb\x64\x69\x2d\x93\x92\xed\xd2\xc7\x80\x74\x5a\x50\x0b\x8b\x6c\x6c\x6f\x1d\xad\xc5\x2f\xb0\xa7\x1b\xc3\xb9\x43\xc1\x01\x00\x96\x2b\xb4\x35\xc1\x5f\x3f\x91\xf5\xc0\x31\x85\x9a\x60\x7c\x1b\x94\x18\x7e\x7a\x6d\xb0\x29\xb0\x74\x6c\x96\x3e\x54\x52\x60\xbe\x5b\x36\xed\x00\x66\xc5\xfd\x97\xe6\x45\x67\xd6\x85\x1d\xf9\x22\x80\xcd\xd9\x90\x22\xe2\xe8\xf6\xc1\x40\xd4\xc5\xad\xab\x24\xc2\x11\x83\x4c\xda\x66\xa7\x29\xd9\x87\xb3\x0b\x80\x96\x32\x37\xac\x59\xd0\x84\x08\x4e\xe8\x27\x43\x87\x8c\x4c\x18\x33\xc4\x4b\x04\x1d\x60\xdf\x6c\x04\xd6\x94\x90\x30\x52\xad\x0b\x6c\xf9\x20\x0c\xc5\x86\x44\xab\x01\xec\xe5\xa0\x2b\xdf\x71\x7d\x98\xd3\x73\x50\xcc\x8e\xda\x4f\xb5\xad\xbf\xa7\xad\x51\x69\x7d\x90\x1e\x7d\x10\xd8\xfb\x39\xac\x9c\x05\xd3\x7c\x56\x2b\x79\xa0\xb9\x23\xd4\xb2\x40\x37\xae\x60\xff\x47\x73\x71\xa6\x56\xfd\xd0\x37\xc4\x67\xb2\x08\x8a\xec\xc3\xe6\xba\xc6\x3a\xad\x3c\x3e\x26\x91\xab\x3a\xfb\x30\x43\xf4\x26\x01\x82\xb9\x24\x25\x6d\x43\x84\x39\x80\xec\xbb\x35\x20\xa9\x8f\x02\x0d\x12\x80\xbe\xd6\x0b\xd3\xd6\x02\x2c\x1c\xe1\xbe\x08\x2e\xd3\xac\x38\xb0\xa4\xa1\x4c\xb1\x28\x1b\x69\x49\x2e\x23\xa8\x03\x68\x4a\x3c\xfc\x1d\x3d\xc9\xd9\x24\xf2\x23\xa2\xc8\x9e\x23\x6f\x66\x20\xaa\xe7\x0d\x32\xd7\xa4\xa6\x9a\xfa\xbb\xc4\xaa\x95\xb5\x52\xd6\x6c\x5a\x49\xbe\x37\xd0\x5d\xd2\x98\xaa\x51\xad\xf8\xeb\x14\x62\x5b\x20\x91\x87\x36\x20\x3a\x8f\x6f\x64\x87\x64\xc3\x0a\xa4\xa8\x34\x9e\x2f\x71\x7c\x05\xff\x05\x7e\x3c\x00\x25\xe3\xe1\xc3\x89\x15\xe5\xdf\x46\x49\x54\x08\xc9\xbc\x87\xb1\x08\xb2\x4a\xb2\x0d\x73\x59\x84\xdc\x90\x75\xbf\x2b\x18\x9a\x9f\x25\x40\x60\x23\xc9\x09\xe4\x1f\xcb\x42\xf8\x6a\x4e\xc4\xcb\xba\xbd\x6f\x00\xd8\x75\x13\x40\xf1\x52\xcb\x24\x42\xfe\x63\x30\x12\xe1\xc8\x4e\xc6\x5c\x84\x5d\xd4\xa9\xc1\xcf\x02\x9f\x81\x24\xf7\xf0\x13\xd4\x0e\xd9\xe0\xe9\x90\xc9\xe5\x2f\x45\xcb\x4c\xed\xc7\x00\x30\xe6\xa0\xd7\x1f\xa1\x61\x5a\x77\x31\x29\x10\x92\x74\xd1\x66\x2d\xf1\x7f\x0c\xe8\xc7\x2a\xba\xc5\xa9\x54\x11\xc2\x13\x0e\x1f\x05\x21\x76\xb7\xd6\x24\xfd\x1c\x00\x3c\x30\x8c\x38\xde\x14\x4d\x03\x6c\xcf\x4a\x24\x2d\x11\x8a\x28\x96\x0c\x6e\x9c\xa2\xad\x6a\x8f\x9e\x5f\xbe\x1a\xc0\x64\x98\xd2\xc2\x6f\x0a\x53\xfd\x53\xd1\x39\x83\x3e\x3b\x71\x96\x81\xf5\xd4\xab\xcd\x50\x3f\xe4\xb0\x6d\x85\x5f\x8c\x9f\x4e\x0e\x00\xaa\xa4\x27\x6e\xfd\x43\xdf\x1d\x71\xcb\xf2\xdd\xfa\x32\x8d\x1b\x0a\xe8\xd7\x8d\xdd\x33\x17\x61\xb4\x46\x6b\x23\x78\x2e\x56\x69\x99\x07\xc9\x5c\x2a\x9a\x96\x40\x15\x6d\x80\xa3\x62\x68\xe2\x12\x96\x59\x26\x92\x70\x87\xb2\x08\x54\x2a\x37\x51\x45\xa5\x13\xae\xf6\x33\xe4\x9b\x6a\xd5\x30\x4a\xf1\x89\xdb\x2a\x91\xde\x95\xfa\xbb\xd0\x0d\xdc\xc1\x18\xd7\x36\xa8\x69\xf1\x01\x2b\x3c\x20\xed\xe1\x00\x92\xd5\x22\xf0\x1f\xe5\x65\x2e\xb9\xba\xd2\xe3\x01\x2b\xdd\x00\x52\x8f\x2c\x28\xcd\xa1\xb8\x3d\xc6\x29\xb2\xb1\x81\x14\x09\xf7\x81\xfd\xa5\xb6\xed\x9c\x8d\x2a\x20\x8c\xd6\x8c\x24\xaa\xef\xfe\x93\x46\xa8\x23\xba\xf5\x77\x77\xa9\xd9\x04\x8f\x42\xcd\xfa\xa1\xc9\x28\xf0\x5b\x00\x2f\x1f\x74\x60\x20\x02\x58\x2e\x78\x1e\x77\x60\x40\x62\x7a\x82\xcf\x5e\x07\x46\x25\xa6\x0f\xf1\xb9\x03\xc4\x86\x98\x3e\x9a\xb1\x9c\xbb\x62\xfa\x78\xc6\x60\xbf\x4e\x9f\xcc\xd8\x0a\x7e\x9e\xce\xd8\x12\x7e\xbe\x9a\xb1\x0d\x1c\x85\x2b\x0e\x99\xe7\xf8\x67\xcd\x8f\x06\x6c\xc7\x8f\xfa\x23\xc5\x65\x22\x33\xb4\xe2\xee\xca\x18\x37\x1a\x75\x5a\x31\x34\xd0\x47\x0a\x16\xa6\xbe\xc3\xf1\x21\xc5\x63\x18\xf3\x8c\xc3\x77\xe8\x1c\x7c\xb4\xd9\x52\xb1\xa3\x49\xc7\x5f\x40\xa5\xd0\x66\x67\xd9\x19\x5d\x02\x45\xf1\x56\x32\x96\x5f\x76\x7c\xe8\x00\x30\x9f\xd0\xfa\x97\x1d\x4c\x5f\x34\xd2\x37\x7b\xe9\x59\x23\x1d\xd8\x52\xfa\x4d\xd5\xef\x56\xfd\xfe\xd1\xf1\x81\x9d\x84\x5e\x85\xd0\xa9\x2b\xec\x92\xbb\x6c\x71\xa2\xb2\x82\xb0\xe3\xc3\x70\x07\xf2\x65\xde\xf1\xd7\xd8\xcd\x15\x6c\x0c\xa3\x91\x1c\x3b\xe1\x0d\x64\xeb\xb7\x9d\x2f\xea\x7a\x91\x0d\x86\xae\x49\x26\x18\x12\x8f\xf8\xf2\xe6\x06\xed\x1f\x68\xa0\x1a\x45\xe0\x1c\xc2\x2b\xe7\xcb\xc9\xca\xdc\x59\xb5\xbc\x60\xc0\x56\x36\xc0\xa5\x8e\xc0\x4c\x30\xb3\x0b\xfc\xb5\x69\xea\x0d\x79\x43\x9d\xbf\x8f\xf9\x61\x19\x96\x3c\x0d\x09\xa8\x2f\x81\x04\xfc\xb5\x20\xb6\xeb\x0c\xd1\xd5\xe2\xee\xed\x34\x47\x1a\x7b\x7d\x7c\x9c\x7c\x39\x50\x06\x5c\x9d\x8e\xb2\xd5\xea\x8f\x81\x0d\xef\x23\x0a\x38\x3e\xee\x8f\x07\xbd\x64\x02\x20\xc7\x4b\x18\x6c\x2b\xdb\x87\x3f\x88\xf6\x27\x9d\x8e\x1f\x48\x8d\xdd\x46\x56\x19\x22\xbd\x87\x3a\xa9\xa0\x78\x9d\x89\x45\x84\x0c\xec\xca\x1e\x25\x48\xd4\x23\x90\xc0\x8d\x2b\xf0\x85\xce\xbd\x3b\x97\x34\x77\xe2\xf0\x0d\xe4\x59\xca\xcc\x58\xcf\x96\x5d\xb2\x0b\x3c\xad\xda\x20\x4c\xa9\xd8\x65\x63\x17\xb2\xb1\x6b\xbe\x9b\xb4\xb2\x08\xe8\x9c\x37\x18\xf5\xc7\xd7\x13\x6b\x0b\x10\xf1\x12\x8d\xfa\x7d\x7c\x34\x36\x6d\x9f\x5d\xdb\x90\x62\x7e\xba\xb6\x15\xf9\xdf\xce\x79\x81\x39\x0b\xd7\xfc\x78\x41\x46\x19\x38\xb1\xb0\x28\x5b\x1e\x59\x5b\x06\xd0\x5b\x29\xf9\xcf\xf9\x95\x3a\xe3\xee\x56\x3f\x5c\xea\x07\xeb\x0c\x58\xe9\x52\x3b\x71\xb0\xb7\x3c\x1f\x9f\x93\x98\xeb\x59\x96\x05\x3b\xeb\x9c\xe7\xde\x39\x54\x2e\x21\x41\x06\xd3\xdc\xd1\x4b\x77\xa6\x9a\x7a\xeb\x6e\xd9\x5b\x8d\x93\x73\x4f\xd7\xec\x53\x07\x00\x00\xf1\x2b\x96\xf0\xad\x7b\xc9\xac\xce\x29\x1d\xc4\x49\xe9\x26\xee\x5b\x1f\x00\x03\xbd\xbd\x75\xe1\xdd\xef\xfc\xad\xde\x1a\x43\x3d\x1f\x8f\xf9\xc0\x76\xa9\x80\x91\x70\x6e\xfb\x25\xf6\x3c\xf1\xdf\xa2\xa5\x9d\x2b\x4c\x3d\xf1\xaf\x0d\x49\x5b\x43\x64\xf6\x4f\x51\x3b\x0a\xe0\x18\x11\x8f\xee\xb9\xbc\x8c\x07\x13\xc2\xaf\xbf\xfe\xf2\xfc\xb0\xf5\x58\x2d\x28\x6c\xea\xee\xbe\x3d\xa4\xed\xa9\xd0\x15\x5a\x14\x00\x80\x8c\x80\xba\x1c\xd4\xce\x03\x5e\x31\x2e\x3c\x01\x24\x4b\x66\x6a\x6f\x0c\x79\xa6\x85\x25\xb1\xaf\x61\x68\x09\x0f\x61\xdb\xc0\x36\x91\x6a\x24\xb5\xe2\x55\xf6\x84\xab\xcc\x2e\x6e\xeb\x86\x65\x50\x4a\x56\x79\xda\xfc\x87\x93\xe6\x25\x40\xd7\x0e\xd4\x65\x8f\x07\x44\xb0\x8e\xb2\x71\x3a\xb2\x85\x95\xda\x5f\x46\x37\x37\x81\xc2\x2a\x7a\xaa\xdc\x54\xc9\x93\x60\x04\xb4\x35\xeb\x22\xf7\x65\xd5\x8c\x45\xc3\x9f\x47\xce\x14\xb2\x5d\x61\xc8\xff\x29\xb4\xb6\x1e\xca\xc3\x8b\x9e\x1e\x5c\x27\x96\x5a\x99\x12\xa6\x2a\x56\x0c\x0a\x60\x1b\xb7\xb7\x49\x77\x11\xa7\xc0\x26\x26\x2c\x91\x02\x09\x8e\x72\x59\x24\x27\x78\x09\x0f\xe9\x62\x01\x34\x16\x8f\x30\x95\xf8\xc6\x74\x24\x01\x42\xd2\x2d\x81\xfe\xfa\xde\x34\x7b\x09\x55\x55\x21\x50\xb9\xb2\xaa\xef\x91\x10\x85\x37\xaa\xee\x7b\x54\x1e\x20\x7f\x20\xab\xfc\x1e\xb5\x06\x98\x93\xaa\x0d\xcc\x59\xfe\xfe\x2e\xf1\xc5\xa7\x0c\xb6\x60\x68\x59\x21\x6c\xf4\xde\x69\x0f\xd6\xb0\x87\x2b\x5a\xa6\x86\xcd\x37\xd3\x20\x4d\x89\x6f\x81\xb0\x08\x10\x45\x20\x49\xe1\xba\x01\xba\x09\x9c\x3c\xa9\xe4\x3b\xcf\xd3\xb9\x78\x56\x58\x81\x4d\x9e\x14\x9a\x90\x20\x41\x66\x88\xa6\x42\x0a\x4f\x00\xab\x94\x87\x53\x51\x0b\x85\xa0\x26\x1b\x4d\xc0\xac\xd6\x37\xc0\xbf\x11\x7f\x35\x15\x2a\x2d\x42\xfb\x19\xa2\xcd\xcb\x09\xa1\x10\x2e\x26\x40\x21\xf8\x80\xf5\xfc\xd2\x46\x6e\x83\x9a\x14\x68\xac\x84\x34\x4a\x65\x4a\x76\xa8\x2b\xa9\x84\x44\x00\x42\x6f\xb5\x7d\x47\xc3\x96\xf8\x41\xd1\x25\x71\x96\xe1\x58\xa2\x15\x45\x1f\x76\xfe\xe0\x2b\xc0\xd5\x6b\x1f\xf0\xb5\x3f\x60\xdf\xc3\xef\x19\xfc\x3b\x87\x7f\x2f\xe1\xdf\x5f\xc4\x37\xdc\x02\xf1\x26\xd0\xbc\x85\xa1\x01\x0a\xb9\xd6\x1c\xd5\x5e\x6e\x06\xab\x36\x02\xec\x0f\x9c\x1d\x99\x13\x75\xbf\xe7\xf0\xef\xcb\xc1\xd0\x1d\x0c\x9d\xac\xbb\x91\x80\x37\xe2\x72\xe2\xb2\xee\x5f\xc0\xc0\x85\xc0\x58\xfc\x53\xc0\x62\xc0\xb2\x5b\xd1\xe4\x9f\xc2\x0f\xc3\x4a\xda\xf6\x0f\x55\x35\x49\x91\x49\xfc\x16\x0a\xfd\x09\xec\x02\x54\xbb\x63\x7d\x96\x75\xff\x01\xb0\x7b\xad\xdb\xea\xfc\x4e\x4f\x80\x85\x7f\xa5\x07\x7b\x62\x1d\x2a\x35\xc0\xa9\xda\xff\xac\x4a\x4f\xe0\xf5\xda\x7d\x6c\x7f\xf9\xc4\x7d\x02\xfd\xfd\xdd\x83\x3a\x00\x4f\x7f\x03\x10\xdf\x76\x1f\xc1\x67\x1f\xd3\x31\xe9\xd7\x46\x12\x96\x00\x4a\x60\xbf\xe6\xac\xbb\x86\x7f\x73\xd5\xe8\xf7\x69\x99\xe5\x38\x2b\x2e\xfc\xf9\x0b\x05\xf5\x37\x7d\x34\x3a\x39\x73\xe1\xf5\x4b\xa4\x97\xb2\xee\x39\xfc\x7b\x09\x84\x2b\x8c\xf9\xc2\x4f\x6f\xd1\xb6\x5a\xe9\x23\x0e\x70\x91\x49\xc3\x65\x44\x18\xd2\xba\xda\xb4\x92\xa5\x4a\x47\xa1\x17\x0b\xe9\x4b\xbd\x39\xc2\x71\x30\x22\xd9\x40\x36\x06\xde\x58\xd6\x0a\x48\x99\x4c\xc6\x8b\xc6\x21\x70\x5d\x9b\xd1\xd9\x90\xb2\x84\xb4\x76\xd8\xa2\xa4\x88\x3f\x9f\xa6\xc8\xd1\xe7\xe1\xa4\x91\xe2\xa7\x33\x76\x04\x30\xd3\x42\x18\x9f\x50\xef\xec\xd3\x7e\xd5\x94\x44\xe5\x72\x37\x09\xb3\xc1\x0c\xca\xd6\xb9\x34\x2c\x68\xb8\xa1\x4a\x50\x79\x61\x9a\xa2\x2b\x08\x72\x21\x49\x6f\xed\x39\x26\x6a\x37\x3c\x58\xe2\xa4\x7b\xcd\xaf\x89\xfc\x42\x76\xa2\x45\x5e\x32\xe1\xd2\x57\xb5\xaf\x81\x42\x69\x98\x0f\xc8\x26\xb7\x07\x9a\xdc\x7e\xac\xc9\xcb\xff\xa4\xc9\x48\x37\xf9\xe2\x40\x93\x2f\xee\x6f\x72\xcd\x9f\xfd\x27\x4d\xa6\xba\xc9\xf3\x03\x4d\x9e\x7f\xac\xc9\xb7\xff\x49\x93\x12\xed\xd5\x52\x60\xdc\xc8\xaf\xba\x61\xad\x89\xb3\x29\xb9\xe5\xc7\xba\x57\x60\x7b\x77\x81\xf8\x60\x81\x3f\xee\x2e\x90\x37\x95\xe9\x67\xd2\xf1\x4e\x0f\x1b\x06\xc3\x87\x76\x9b\x33\x69\x18\xc7\x67\x68\x09\x85\x4e\xb4\x9c\x2c\xfe\xb1\x9a\x05\x32\xc9\x80\xb3\x50\xba\x01\xcc\x8a\x7c\x01\x66\x00\xd8\x65\xfc\xb2\x81\x87\x8d\xc8\xa2\x14\xb8\xe6\x2b\x4a\xdd\xe5\xc0\xa5\x00\x9c\x5f\xa5\x19\x02\x9a\x1c\xf8\x3c\x98\xe3\x34\x29\x56\x39\x70\x7b\x2a\xe1\x8c\xde\x47\x05\xe1\x6e\x93\x6f\x30\xe1\x42\x1b\xc9\x16\x8a\x1c\xaa\xb1\x03\x52\x14\x48\x96\xed\x23\x58\x65\xbb\x6a\x10\x05\xa2\x8d\x4b\x0e\xd4\x9f\xc9\x3c\x46\xa9\x02\x7d\x22\x0f\x20\x70\x26\x6a\x10\x97\x55\x8f\x40\xcc\x01\xec\x5b\x97\x71\x11\x71\x1a\x9b\x7a\x0e\x84\x62\x97\x80\x7b\x41\xe7\x19\x9b\x6d\xf9\x9f\x85\x75\x85\xc4\xff\x5f\xf4\x7b\x81\xef\x00\x72\xaf\xf1\x1d\x7e\xcf\xf1\x7d\x8d\x34\xfc\x5f\xf4\xfb\x02\xdf\x77\x36\x7b\x86\xef\x3b\x7b\xb4\x39\x20\x8a\x45\x51\xc4\x19\xb9\x3a\xb6\x34\xa1\x68\x8b\x2b\xb1\xd8\x2b\xfe\x21\x38\x24\x2c\x99\x4f\x93\x0a\x31\xcc\x6e\xd9\xb3\x43\x79\xae\x9a\x79\x2e\x0f\xe5\xd9\xc9\x3c\xb4\xbc\x94\xeb\xeb\x43\xb9\xd6\xed\x5c\xa1\x5f\x58\x0b\x1b\x10\xf9\x41\x11\xfc\x0f\x85\xa5\x5a\x2e\x68\x30\x6c\x68\xc3\xfc\x7f\x46\xde\xef\xef\xcf\x2b\x31\x9c\xce\xfc\xc3\x27\x65\x06\xf2\xe0\xe6\x66\x30\x54\x65\xfe\xb9\xb3\xcc\xc0\x0d\x42\x3c\x14\x3f\x2d\x08\xbd\xa2\xfa\x92\x9d\x40\x89\x97\xf7\xb7\x72\x16\xc5\x71\x94\x8b\x30\x4d\xe6\xb2\x67\x58\x66\xfd\x91\x32\x72\x3a\xdd\x81\xea\xd4\xd9\xc7\x9a\x48\xca\x42\xd4\xe3\xde\x1c\x5a\xa9\xcd\xd4\x6d\x0c\x1b\x38\xb8\x21\x2e\xd8\xf9\xfd\x75\x9f\x1b\x3d\xc7\xba\x7f\xbd\x33\x3b\xcc\x4e\x0e\x04\x7a\x73\x82\xb0\xc8\xf5\x41\x99\x5e\xb5\x01\x6f\xd9\xef\xf7\xd5\x09\xf0\xe6\x40\x9d\x5b\xd8\x66\xc0\x17\xff\xe1\xa3\x10\x83\xed\xee\x1f\x43\x45\x12\xd9\x44\xe4\xc8\x1a\xfe\xfc\xf4\x32\xe2\x21\x94\x79\x08\x65\xfe\xf2\x23\xc1\x50\xfa\xb4\x47\x0a\xc1\x47\x80\x24\xcf\xf1\x4c\x66\x70\xe6\x4a\x38\x53\x11\x9c\x98\x14\xce\x43\x00\x87\xe1\x67\x80\xe5\xf8\xe7\x7b\x1f\x20\xee\x0f\xf8\xe7\x1f\x3f\x11\xb0\x75\x4a\x01\x7b\xe1\xc7\x02\x56\x58\x00\x04\xf6\x73\x58\x8e\x4c\xc0\x24\xff\x51\xc0\xb4\xfd\x56\xc0\xd4\x7c\x51\xc0\x60\x43\x18\x69\x0c\xc3\xfc\xbd\x80\x7e\x7f\x5d\x40\x47\xfe\x55\x50\x47\x52\x71\x7b\xc0\x3d\xf9\x87\x96\x2d\x16\x9a\x26\x76\x3c\x20\xed\x3b\x40\x45\x5b\x80\x1a\x12\x9f\xac\x56\x18\xba\x12\x37\xe9\xf4\x0c\xd5\xff\x91\x21\x6a\x10\x5e\x54\x09\x1a\x0a\xe0\xf9\x81\x37\x30\x1c\x6d\xda\xe6\x33\x95\x1b\x86\x35\xf1\x3b\x6e\x42\x20\xb2\x76\xc2\x50\xd5\x74\x6e\x3a\xd0\x3a\x3a\x50\x46\xa6\x03\xe5\x5f\xc5\xbe\x57\x35\x8a\x73\xc9\xb7\x31\x69\xbb\x53\x4b\xe8\x08\xdc\x4c\x0b\x40\xd6\xde\x39\xc6\x84\xfc\x56\xcb\x00\xc2\x03\x64\xc5\x22\x6c\xd1\x15\x80\x60\x07\x7b\x14\x14\x11\x10\xf7\xd1\x11\x7f\x7c\x66\x2b\xad\x16\x7e\xfd\x78\x0b\x5f\xfc\x77\x2d\xfc\xfe\xf1\x16\xbe\xfe\xfc\x99\x7a\xd8\x6a\x65\xf7\xf1\x56\x7e\xff\xfc\x56\x86\x7b\xad\x7c\x07\x6c\x6d\x46\x16\x45\xf7\xb4\xf4\xaf\x96\x29\x5a\xef\xef\xa9\xeb\xcd\xfe\x3d\xff\xf0\xf0\xf6\x0b\xa5\x08\xc7\xe0\x0f\x75\x3b\x8f\x6c\x1b\xab\xff\x8b\x7b\x05\xbd\x35\x6a\xfb\xae\x29\xc4\xb2\x92\xf1\xe3\xa7\x13\xe4\x5e\xfd\xa1\x38\x31\xb6\xf2\x8f\xff\xfd\xf8\xd6\xa4\x6d\x80\xbd\x7f\xcf\xe0\x7e\xfe\xef\x9b\x99\x7f\x7c\xb1\x12\xf1\xd9\xad\x9c\xb4\x5a\xf9\xe7\xe3\xad\x14\x9f\xdf\x4a\x7b\x2c\xdf\x7f\xbc\x15\xf1\xdf\xb7\x72\xf6\xf1\x56\xb2\xff\xbe\x95\xf3\x8f\xb7\x52\xfe\xf7\xeb\xf2\xf2\xe3\xad\x44\xc2\x54\xb2\x2d\xa5\x72\xf4\x7d\x9a\x88\x9f\x48\xe6\x86\x10\x97\x17\xe3\xbe\xc4\x2f\x6e\x07\x40\xf5\x32\x00\x44\xd1\x7b\xdc\xbf\x41\xcb\x30\x7a\xf9\xf2\x71\x65\xf0\x2b\xdc\x1f\xd0\x32\x0c\xb5\x3d\x43\x1b\x9f\x4b\xf5\x6c\x70\x80\xd5\xb8\x56\x87\xc6\xb5\xfa\x18\xb0\x6e\x0c\xa6\xc9\xe8\x89\x16\x86\xd1\x22\x89\xca\xdd\xbe\x90\x6e\xf2\xda\x29\xce\x52\x2f\xfb\xee\x6c\xfb\xee\xa5\x90\x73\x74\x84\xc6\x94\x18\xd8\xc3\xc6\x0f\x50\x61\xa5\xbe\xc3\x2e\x21\x7b\x63\x30\x91\xa2\xe1\x3b\x11\x8b\x26\xce\x16\xdd\x9c\x27\x6e\x81\xc6\xd3\x5e\x42\x86\xd3\xe5\x08\x38\x15\x9e\x00\x3e\xb6\x0a\xcf\xc4\xc2\xb9\x0a\xa1\x95\x1c\x1f\xcf\xc3\xee\x2a\xc8\x7f\xba\x4e\x8c\x38\x4a\x68\x55\x61\x63\xd2\x54\x3e\xcf\x5a\xa1\x2a\x16\xa2\x65\x76\x28\xa3\xcb\x54\xb6\x65\x82\xb4\xd9\x45\x37\x8e\x12\x71\x8e\xbe\x6c\x96\xad\x23\xce\xe0\x28\xcb\x19\x30\x4a\x1b\xf2\xc9\xa2\xbd\x84\x53\xc0\xd0\xc8\xd4\x1e\xc9\x32\x2f\x92\xb9\x19\x7b\x65\x25\x4c\x75\x71\x13\xb9\xcb\x86\x36\x69\xbc\x5b\xa6\x49\xdd\x16\x61\x7c\xec\x26\x7a\xe9\x16\x28\xbb\xae\x32\xb5\x2a\x5f\x8a\x56\x20\x34\x9a\x17\xb4\xc5\xc7\x28\x2f\xce\x37\x41\x6f\xe8\xbe\x0b\x7a\x0f\x47\x4a\xfa\xef\x65\xa8\x11\x1d\x73\x74\x1f\x82\xae\x04\x3c\x75\xd0\xe7\xb6\x32\xe3\x2f\x6c\x16\xd7\xfe\x2f\xf0\x96\xf3\xc8\x89\xd9\x82\x97\x4e\xe8\xe6\x4e\x95\x2f\xb0\x81\xa3\xce\x9d\xd4\xa9\xf2\x06\xf6\x68\x17\x52\x80\x03\xc3\x46\x7c\xc5\x16\x36\xd9\x5b\xa2\xcd\x24\xcc\x71\x7c\xab\x7c\x58\x19\x59\x7b\x8e\xce\x42\x39\x93\x35\x6b\x9b\xb2\x00\x58\x41\xfd\x19\x78\x64\x0e\xf8\x2a\xb5\x61\x24\x50\x45\xdd\x3c\xb7\x04\x0f\xec\x7a\x7c\xb6\x36\x1d\x95\x5d\x01\x16\x22\xd4\x6b\x61\xca\xf1\xa4\x04\xdc\xd8\x94\x1b\xf3\xb4\x13\x64\xe0\x09\xad\x67\xdd\x56\x45\x60\x4d\x33\xc7\x9c\xa7\xcc\x31\xe7\xa9\x7a\x16\xb6\xe1\xed\x75\xd5\x0c\xf6\x86\x2d\x38\xe8\x93\xe5\x62\x23\x0e\x7a\x61\xc1\xd3\x10\x9f\x86\x46\xa9\x79\xa3\xd4\x54\xe5\x1d\xa2\x97\xd6\x50\x96\x62\xea\x49\x79\x6e\x51\x2a\x53\x4f\xca\xb3\x8b\x52\x8d\x4a\xd7\xfa\xd0\x60\xf3\x1c\x13\x19\x66\xc3\x47\x55\x1f\x3e\x9a\xdd\xd8\xb5\xbb\x81\xd5\x33\x59\xb7\xea\x80\x91\xfb\xcc\x98\xc9\xda\x25\x80\x0a\x25\xd5\x88\x93\x6a\xc4\x09\x1d\x18\x4c\xe9\x71\x59\xa9\xfc\x1d\xe2\xaf\x61\x5d\x2e\x6a\x02\x64\x6a\x6c\xac\x44\x76\x1a\x89\x21\x74\x3d\xc3\xca\x8c\xbe\x5c\x36\xa7\x1d\x60\x32\x66\xf5\x70\xd0\xf6\xe9\xf3\xe0\xf8\x98\xbe\x0c\xf0\xcb\x80\xbe\x18\x36\xc9\xc2\x38\x43\x23\xc3\xc4\x83\x56\x9d\x9c\x5c\x46\xd7\x00\x84\xeb\xad\x80\x0a\x2e\xc7\xf0\x7a\x61\xc6\xb6\x30\xad\x81\x2b\xa8\xe3\xba\xdb\x90\x5d\x84\x2e\xb7\x12\xef\x22\xb4\x7b\xf0\x76\x8d\x6f\x85\x77\x2d\xdf\xce\xf1\x4d\x78\xe7\xf4\x66\x98\xdd\xee\x9d\xf5\xd2\xec\x67\x54\xf7\xb3\xa4\x7e\xc2\x49\x8f\x1a\xdd\x0c\xf4\xbb\xea\x68\x58\x1f\x99\xb2\x3a\xf7\x72\x7e\xeb\x15\xb4\x62\x2e\x9c\xd0\xcb\x1c\x38\x6e\xb1\x8b\xa6\x0b\x4e\xea\x15\x4e\xa8\xde\x0a\x27\xf0\x84\x03\x07\x34\x86\x95\x70\x52\x57\x38\x81\x9b\x41\xea\xe8\x12\x06\x11\xb3\xb7\xf8\xd7\xb1\x0a\x97\x4e\xb1\xcd\x5e\xc8\x77\xe1\xd2\xf9\xb5\xd9\x33\xf9\x0e\x5c\x58\xc6\xd1\x80\xe4\x5a\x28\x13\xdb\x1a\x50\x8c\xde\xed\x01\x09\x8a\x1e\x50\x56\x23\x4f\xeb\x91\x47\x72\x85\xa0\xb1\x7a\xe4\x25\xa2\x6c\x03\x52\x95\xb6\x3e\xde\xf8\x16\xd9\xec\x5d\x0d\x6e\xea\xf6\x0d\x1b\x65\x9c\xf7\x2a\xcf\x85\xa1\xf5\x7c\x71\x27\xf4\x3d\xbc\x73\x10\xf6\xb6\x56\x44\xdc\xb5\x22\x04\x89\x01\xea\x7a\x91\x13\x10\x14\x4e\x61\x0d\x42\x80\xc4\xb0\x12\x5e\xe9\xa4\x6c\x65\x1c\xb3\x18\x16\x23\x77\x72\x77\xe1\x2c\xd0\xdc\x01\x96\xc8\x2d\x61\x21\x22\x28\xb0\x41\xc3\x0a\x2f\x41\xb9\x41\x6f\xc5\xae\x78\x03\x3a\x2f\xed\xd1\x2b\x58\x81\x0d\x80\xf8\xe7\xf4\x9b\xb3\xf7\xf4\xbb\x60\xb8\x7e\x57\xb4\x7e\x57\x6a\x7d\xf4\xfa\xc1\x7b\xe9\x5a\x65\xb5\x7e\xf0\x0e\x28\x3a\xd2\xeb\x27\x83\x3b\xb4\x00\xfd\xfe\x1a\x12\xa0\x87\x75\x62\xa8\xb8\x34\x56\x20\xad\xa6\xcf\x40\x4b\x81\x5c\x56\xd8\x23\xf5\xf4\xa5\x68\x0f\x1f\xd6\xd3\x97\xb6\x70\x80\xd1\x17\xac\xff\x4e\x6c\x60\x26\xbe\x15\xcc\x5c\x68\xc3\x1a\x5c\xec\xc5\x83\x31\x0d\xc1\x51\x3b\x8e\xef\xac\x20\x77\x5a\x86\xf6\x47\x75\xd8\x19\xe9\x74\x4c\xf2\x58\xfd\x64\x09\xf5\xd8\x30\x1c\x35\xea\xd3\x59\x65\xb5\x02\x63\x97\xe8\x0f\x75\x03\x0d\x15\xfc\xab\x3a\xfc\x8a\x19\x94\xf0\x79\xa5\xa6\xaa\x22\xdb\x49\x03\x2f\xa9\x71\x4f\x0e\x1b\xc6\x2e\xac\x23\xcb\xaa\x09\x46\x6f\x60\x9f\xf2\xbe\x6d\x84\xa0\x20\xca\x07\x7e\x0a\xaa\xe5\x52\x4e\x07\x1c\xca\x06\xd5\xa4\x29\xc6\x00\x88\xd9\x62\x1c\xa0\xce\xd7\x2e\x15\xed\x84\xda\xda\x69\x30\xb3\xab\xd1\x8c\x4c\x9b\xf4\xd2\xa0\xa4\x94\xb2\x5c\x5c\x3f\x78\x27\xc8\x28\x96\x2c\x44\xd1\x32\x36\x36\xbe\xe2\xb7\x90\x1d\x01\xad\x14\x76\x53\x80\x3c\xca\x14\x2d\xac\x14\xbb\x68\x58\xab\xf3\x67\x55\x2d\x03\xa3\x96\xac\xaa\xa5\x4f\x4a\xf6\xc3\xb5\xdc\x92\x65\x6a\x8e\xd6\xa4\x70\x46\xdf\x0b\x84\x20\xef\x05\x6d\x3f\xcd\x50\x7c\x30\x06\x8e\x96\x66\xd0\x44\xaa\x49\xbe\x58\xcd\x43\x0a\x83\xef\x0a\x1e\xf2\xa3\xb0\x9a\xa7\x9c\x2d\xe0\x58\x47\x30\x25\xa3\x51\x5d\xc9\x92\xaf\xe0\x14\x1f\xf5\x47\xcb\xee\xd5\x08\xa3\x77\x58\x4b\xbe\xec\x26\x18\xc4\x53\x6b\x82\x47\x39\x7c\x79\xcf\x9a\xb3\x3f\x4f\x71\x1d\xa1\x10\xa4\xa5\xf0\x17\x2d\xcb\xba\x82\x16\x77\x63\x9b\x3d\x8c\x79\xde\xee\x5d\xb5\x4a\x0b\x9e\xeb\x55\x5a\xd0\x2a\x91\x02\x31\x83\x6a\xb7\x50\x5b\x02\x7f\x07\xb0\xaf\x46\xd4\x23\x52\x2e\xca\xea\x3f\x60\x87\x36\xdd\xf7\xc6\x16\xc8\xab\xbd\x34\x0a\x80\x00\x1d\x79\xde\x3d\xcd\xdc\x36\x9a\xd9\xc0\x5f\xaf\x6a\x67\x73\x8b\x7f\x53\x26\xc7\x0c\x33\xb3\xb9\xbd\x5e\x45\xc0\x4f\x1c\xc1\x58\xed\x91\xb9\x75\xcc\x70\x79\x42\x6d\xec\x7a\x57\x9b\x61\x26\x61\xfb\x72\xe4\xdf\x70\x63\xc3\x0c\x64\xc8\x19\x95\xdd\x84\xe3\x2e\xcd\x60\x87\x76\x37\x18\x9a\x85\x8b\x91\xfe\xd8\x57\x1f\x8d\x26\xde\x19\x1a\x61\x32\xef\x41\x3b\x2b\x7a\x78\x0f\xb4\x8d\x0c\x89\x84\x21\x48\xf0\x41\xf0\x4c\x3e\x5c\xa1\x2d\xa1\x8c\xc3\xa4\x42\x16\x91\xba\xde\x30\xb8\x35\x6a\x6d\x73\x65\x84\x08\x0d\x55\xa2\xc1\x4f\x95\xf4\x82\xa1\x6f\xa5\x19\x27\x34\x88\x13\x8b\x76\xd8\x72\xce\x8b\x56\xa4\x3c\x83\x49\x29\x65\x48\x93\xb9\xca\x69\x40\x1c\x43\x25\x68\x7f\xd8\x29\x48\x19\xb0\xb9\xb9\xf1\x4c\x35\x60\x9d\x29\x55\x99\x5a\x0c\x4c\xae\xda\x95\xa7\x6b\x0a\x2f\x2a\x64\x46\xd5\x8b\xed\x3d\xbd\x58\x58\xa4\x1d\xae\xdb\x06\x04\x37\x35\x08\xc1\x15\xa4\xe7\xd6\x95\x0c\x46\xc1\xe8\x17\x6d\x10\xb7\x75\x4f\x46\xda\xd6\x78\xdb\x45\xe3\xe8\x84\xf8\xfb\xb3\xee\x65\xb9\x58\x88\xcc\x22\x5b\x52\x7d\x36\x60\xef\x40\x37\x53\xd4\x81\x6d\x64\x77\xaf\xb0\x3d\x82\x19\x19\x9e\xcb\xc1\x31\xa2\x7f\x8e\x1d\x95\xa6\x82\x06\xab\x07\xdb\x37\xe5\x52\xd5\x9f\x8d\xfb\x72\xe7\x5d\xde\xdc\x58\x51\x8b\xfb\x63\x97\x1c\xa1\x4f\xd4\xe2\x3e\x53\xe4\x08\xf5\xca\x59\xb8\x4d\x53\x79\x5a\xc8\xa8\x72\x14\x99\x7b\x5e\x1e\x9d\xf1\xe0\xf8\x78\x78\x5c\x54\x91\x44\x85\xec\xba\x11\x7d\x74\x15\x2d\x0a\x8b\xec\x23\x75\x8e\x45\x14\x17\x30\xea\x5f\x84\xf2\xcd\x5f\xb2\x0d\xbb\x62\x73\x4e\x66\x46\x6b\x5e\x6a\x14\x54\xf1\xbd\x36\xdb\xf1\x0f\xd4\x29\x3f\x65\x55\x8f\xfd\x90\xa9\xee\xf8\x31\x33\x87\x67\xea\x11\xf4\xbe\xc8\xd9\xae\x1e\x2b\x5f\xa8\x37\x44\xc6\x40\x9e\x20\xa6\xda\xe0\x8a\xb2\x9a\xfd\x3d\x54\x49\xda\xa8\x24\x34\x2a\x89\xa1\x12\x54\x5d\x8a\x0c\x58\xe5\xa5\x5a\x6e\xfe\xad\xb0\xd6\x6c\x03\xe0\xa4\x72\x2e\xb9\x67\x2d\x00\x83\x2e\xd9\x37\x88\x78\x04\x1c\x37\xdb\xc7\x00\x09\x9f\xba\x74\x4c\x28\x7f\x06\xfc\x33\x80\xe2\xcc\x58\x2a\x28\x01\x55\x45\x0d\xd6\x1e\x2b\x19\x20\x0d\xa7\xc0\x00\xcb\x37\x2b\x91\x09\x73\xd0\x7b\xed\x7e\x7a\x8b\xac\xd9\xd8\x2d\xf0\xc9\xfc\x8d\x20\xa5\x6e\x61\x9d\xc9\xc6\x35\x1e\xde\x19\x90\xed\x17\x71\x20\x2e\xf6\xd8\x90\x34\x61\x25\x95\x9b\xda\x54\x4b\x81\x3e\xd4\x5b\xc2\xe8\x7f\xa1\x0c\xaa\x20\x1f\x2a\xef\x68\xf7\x34\x2d\xd4\x54\x40\xe7\x29\xbc\x60\x16\xbd\x99\x2e\x99\x3c\x96\x66\x65\x2a\xc0\x5e\xa5\x03\xc1\x1d\xa3\x63\xf0\xde\xb2\x4c\xa0\x02\xa6\xd9\xb8\xee\x3c\x92\x63\xd4\x4c\xd1\x3c\x19\x45\x7d\x32\x4c\xfc\xf1\x4d\x83\xa7\xb4\x28\x8e\xd5\x16\x8f\x20\x06\xa8\x40\x5e\xf2\x4d\xe0\x3d\x0f\x7c\xf8\xab\x62\xac\x90\x9c\x5d\xe7\x28\x1a\x39\x8a\x26\x14\x7b\x2d\x8c\x60\x69\xe4\x61\xaa\xfd\x4c\xe1\xef\xbd\x53\x99\x34\x56\xbe\xe0\x83\xbd\xf9\x8c\x58\x2a\xab\x06\xe6\x6f\xdc\xc7\x00\x2e\xde\x3b\x74\xec\x05\x0e\x38\xf2\x00\x3f\xc0\x6f\x08\x5f\x90\x09\x46\x01\xa9\x02\xb5\x28\x76\xc9\xdc\xd4\xee\x0d\xa1\x0c\x86\x72\x79\x83\x51\x95\x54\x6a\x89\x14\x69\x62\x6c\xaa\x66\x2f\x74\xb6\x40\x66\x93\x2f\x11\x11\xc7\xe8\x56\x52\x1e\x71\x0e\x1c\x78\x38\xe6\xef\x30\x66\x13\xb4\x2f\xbc\x52\x72\xe5\xf0\x04\x1c\xcf\x73\x68\x8a\x7a\x17\xa8\xaf\x91\xc7\x03\xfa\x9a\xf1\x5f\x89\xce\x44\x23\xab\xff\xac\x3b\x32\x78\x85\x1e\x25\x87\x5e\x71\x62\x23\x82\x7a\x93\xed\xcd\xae\xac\x14\xd0\x27\xae\xc6\x2d\x23\x2c\x71\xc0\x77\x74\xe8\x15\x0d\xf3\x5f\x03\x6b\x57\x96\x61\x46\x64\x19\xaf\xd6\xdb\xc1\x60\x53\x7b\x0c\xf3\x5f\xb1\x66\x96\x65\xb0\x81\xc0\x5d\xd5\x8c\x10\xd0\xd8\x8e\x21\x6a\xf2\xaa\xe7\x0c\xf2\x95\xa6\x1c\xcf\x36\x19\x4b\xbb\x67\x95\x0e\xb0\x90\x68\x3e\x5f\xb8\x59\x23\x5a\xce\x3f\xed\x9e\xd6\xa1\xbd\x12\x1b\x28\x1e\xe7\x0d\x4c\x9d\x9a\x32\xdc\x3b\xc8\x3e\xab\xd7\xbe\xf9\xd2\x4c\x82\xb7\x7e\xe3\xcd\x6b\x94\x33\xdf\xbc\x56\xaa\xd7\x2c\x2b\xdb\x1c\x69\xc3\xb5\x86\x30\x07\x66\x4d\xf3\x34\xf8\xf1\x14\x3f\xaa\x3d\x3e\xc2\xae\x47\xbd\x61\x5d\x4f\x74\x67\xd7\x31\x45\xa1\x4d\x4d\x1c\x21\x86\x6b\x1d\xd3\x6f\x1b\x82\xdc\x8a\x03\xc2\xa0\x78\x7c\x6a\x2c\x0a\xf3\x0c\xd9\x21\x83\x5c\x11\x50\x96\x29\x50\xbc\x3b\xf2\x8e\x13\x2d\xce\xc8\x30\x15\x24\xfb\x40\x24\xbf\x3f\xc8\xa8\x78\x05\xd0\xc4\x40\xe6\xc6\x06\x05\x92\x57\x94\xfb\x82\xc7\xd8\x85\x15\x5f\xe0\xcf\x92\x23\xdd\xac\xa4\xa1\x80\x33\xab\xfe\x2c\x6d\xcd\xf4\x63\x87\xe0\x6d\xce\x07\xc8\x5d\xcc\x81\x7d\xc0\xa8\x65\x73\x3a\x12\x50\xd7\x5c\x12\x2d\x6b\x39\xb2\x1d\x8d\x4c\xd7\x77\x56\xd7\xb7\x43\x64\x51\xd5\xb7\x43\x9c\xb1\xf6\x56\xec\x82\x5f\x56\x52\xe5\x6b\x7e\xe1\x5c\xb2\x73\x7e\x3d\x86\xa5\x7b\xcb\x37\xce\x19\xf6\x7c\x5f\x3a\xfc\xd6\xb9\xa8\x37\xe9\x35\xf4\xd3\xd9\xba\x6f\x6b\x06\xff\x1a\x69\x93\xc8\xe5\xe7\x93\x4b\xf7\xc2\x79\x19\x00\xfc\x3f\xff\x7b\x35\xe6\xe2\xef\x35\xfc\x91\x73\xf4\x82\xcf\x85\xb5\x11\x68\x82\x43\xa2\x5c\x7b\x74\x26\xac\x17\x12\xcd\x3f\xc3\xb4\x92\xbd\xa0\x6f\xcf\xb4\x15\x91\x75\xfe\x37\xf5\xd4\x1b\xf8\x03\xdb\x29\x0a\xeb\x19\x49\x22\x81\x2a\x7b\x75\x73\x83\x01\xf9\x5e\x61\x38\x3b\x98\x82\x9b\x9b\x17\xb8\xfe\x64\x8d\x0c\x9d\xf8\xbb\x1a\x9f\x7d\x8b\xec\xf1\xdc\x75\x6d\xe9\xfd\xb2\xe2\x6b\x9c\x70\x98\xe6\x2d\x5b\xf0\x44\x87\x32\xb3\x00\xd8\x8f\xa3\x9b\x1b\xfc\x8b\x8e\x22\xbb\xd0\xfe\x7b\x70\x9c\x1a\x26\xda\xa2\x6d\x3f\x6d\xc8\x2c\x0d\x29\x91\x29\x75\x1e\x47\xb7\x4d\x3b\x33\x69\x5e\x1d\x01\xd3\x1a\xb3\xfc\x5e\x5c\x11\x23\xaf\x39\x80\xed\xb4\x8f\x24\x80\xeb\x94\x35\x2d\x91\xda\x82\x37\xa0\x95\x81\x20\xc0\xcf\xb0\x5d\xd2\xc9\x15\x3a\x67\xd0\xab\x7f\x35\x81\x07\xd7\xea\x8f\x17\xea\x9c\xd9\xf8\x95\xe2\x71\x1c\x09\x72\x6d\x0a\xf9\x95\x8d\xe2\x8a\x06\x55\x7e\x24\x7d\x81\x96\x3c\x03\x00\xbe\xb1\x99\x94\x18\xa0\x3f\x0e\x3c\x6c\xe0\x01\xa7\x79\x43\xa2\xe9\xe7\x01\xdb\x90\x60\x1a\x1e\xb0\x17\xf8\x95\xbe\xe0\x76\xa0\x8a\xec\x1c\x4e\xcd\x15\xa2\x2b\xb3\x0d\xac\x7b\x43\xbe\x06\xea\x0c\x2f\xe9\x5c\x50\x41\xbf\x6e\x79\x3f\xd5\x44\x1e\x08\xe8\x97\x15\xac\x01\xec\x03\x63\x4a\xff\xbe\x92\xb3\xb3\x1e\xcd\x8f\x61\x41\x8f\xac\xb5\x6c\x0a\xe5\x04\xe8\x54\x8e\xdd\x49\xdb\xdd\xd1\xed\xac\x15\xf3\xb1\xd6\xcc\x47\x9d\x30\x50\x09\x83\xd9\x5e\x37\x7c\xeb\x53\xb2\xdd\x81\xea\xda\x4d\x02\x21\x73\x74\x75\x73\x03\x43\xa1\x59\xdf\xd8\x78\x39\x8d\xcc\x5a\x4f\x2e\x0c\x7c\x03\xa0\xe8\x0a\xa0\xd5\xfc\x20\x36\x0c\xf5\xa2\x6a\x84\x28\xe9\xd3\xbb\xf0\x61\x7e\x63\xc5\x80\xe6\xed\xd3\xd3\x81\x89\x17\xb3\xa6\xd6\x8f\x0e\x2d\xc0\x4f\xe9\x47\x9c\xf2\xe9\x80\xf5\x11\x64\x06\x78\x76\x51\x62\x85\x5d\x12\x80\xbc\x03\x94\xd3\x04\xd8\xdb\x9c\x87\x5e\xec\xc4\xb4\xe3\x72\x7d\x1d\x07\x0a\xc8\x46\x12\x2a\x46\x4e\xd8\xcb\x01\x2c\x7a\x91\x13\xc3\xc3\x12\x6b\x42\x61\x23\x6c\xed\x1d\x3e\x2d\x10\x20\xee\xb0\xce\x95\x3d\x5a\xe3\xee\xbb\x92\xb0\x61\xce\x97\xc0\xe4\x5c\xe1\x97\x39\x32\x36\xf0\x34\xc7\xa7\x33\xbe\x76\xd6\xde\xce\xb1\x28\x69\x83\x01\xe4\xa8\x71\x38\x04\x67\x4a\x24\xb6\x35\x64\xb1\x44\x46\xef\xb0\xac\xe5\xad\xbd\xad\xdd\xdb\x51\x76\x68\xe9\x12\xf7\xdf\x25\xdf\xc2\x93\xcd\x8e\x84\xb6\xe2\xbf\xa4\xd6\x2f\x00\x6c\x12\xe4\x3d\x97\xca\x99\xb7\x12\xb5\xbc\x20\xfd\xcc\xe8\x7a\x7c\x0e\x07\xe4\x82\x5f\x43\xae\x73\xc8\x72\xa1\x41\xdc\xb9\x77\xcd\x5e\x21\x35\xf7\x4c\x51\x71\xec\x39\x7f\x45\x40\xe7\x19\x75\x12\xa0\xd9\xdb\xf1\x0b\x2a\xfb\x16\xea\x7c\x01\x15\x5e\x00\x4b\x33\x79\x35\x79\xeb\xbe\x18\xf7\xff\xbe\x84\xda\x4f\x11\xa9\x5e\x22\x52\xbd\x26\x3a\xf0\xad\xff\xc2\xf6\xdf\x9e\x72\x4c\x83\x3d\x83\x39\xf8\x0b\xff\x19\x40\xf3\xbf\xad\x6b\xfc\xdc\xa7\xcf\x80\x6f\xf9\xb9\x9a\x80\xf7\xd5\x88\x5d\x39\x62\x6d\x2f\x29\xac\xf7\x38\xea\xe9\x25\x83\x61\xbf\xb7\x67\xe6\x5e\x28\x4d\x79\x45\x3a\x49\xfc\x77\x40\x3c\x23\xd5\xab\x4a\x7b\xd9\xb8\x98\x94\x37\x7c\xe0\x17\x63\xf2\x91\xbf\xe1\x43\xc0\xae\xd9\x58\xe0\xd7\x87\xbe\xd0\x5f\x9f\xc2\x16\xba\x6d\xe9\x40\x12\xd2\x7f\x8c\xd1\x8d\x15\xa9\x49\x24\x15\x90\xec\xc5\xfd\xf7\xd8\xf9\xa6\x0e\x7b\xf2\x52\x4a\xfc\x43\x38\xc1\x53\xa0\x4b\x92\x99\x3f\x45\x8a\x23\x81\x3f\x26\xf2\xff\xe9\x3e\x29\x4c\x7d\x63\x48\xd9\x85\xad\x0a\x7f\x2f\xa1\xad\xb4\xbb\x25\xc1\xdf\x0e\xb6\x6c\xd0\x45\xdc\x10\xc0\xf3\x8a\xa3\x83\xe7\x00\x76\x63\xee\x85\xb0\x13\x17\x1e\x6d\x65\x20\x60\xe0\x75\x83\xd0\x05\x3a\x6d\xcb\x08\xa7\x3d\x38\x92\xe4\x40\x08\x2f\xab\x71\xa4\x85\x7d\x4b\x44\x28\x00\xd1\x22\xbb\x32\xe7\xdf\xa0\x4c\x81\x1c\xa8\x96\x3a\x57\x34\x96\x5e\xa9\x11\xe1\xab\x88\x0b\x5d\x7f\x1f\x6a\xda\xaf\xff\x70\xc9\x76\xfd\x87\x7b\x41\xf5\x17\x5e\xcc\xae\xda\xfd\xbf\x82\xfa\xaf\x3e\xa1\xff\x57\x1f\xef\x7f\xa6\xeb\x37\xfb\x5f\xd7\x7f\x7f\xff\xaf\xee\xed\xbf\x5a\xd0\x15\x39\x38\xc3\x12\xf2\x0f\x5b\x3f\x74\x57\xce\x86\xed\xfc\x18\x7e\xaf\x6e\x6d\x36\x18\x2f\x29\xf1\x52\x26\x2e\x55\xe2\x92\x12\xcb\x5b\xfa\x5f\x6d\x90\x28\x0e\x46\x72\x21\x11\x7c\x4d\xf5\x93\xc1\x53\x42\x47\xae\x04\x3e\xab\xef\x9f\xf8\xfa\xab\xa8\xbe\x0e\xfd\x81\xfc\x8a\xea\xca\xea\xeb\xc0\x07\x8c\x0c\xbf\x27\xfe\xb0\xe5\xbd\x50\x35\x90\x5a\x28\x9d\x45\x16\xb4\xe5\x6c\x60\x4a\xf9\x06\xc8\x55\xe1\x39\xac\xfd\x9d\xc4\x11\x5a\xd3\x0b\x2f\xf3\xfb\xe4\x23\x55\x69\x94\xfd\x01\xbd\x57\xd4\xb7\x3f\x54\xef\x4a\x91\xea\x57\xfa\xe8\xbd\x88\xbd\x81\x31\x0d\x61\xd3\x26\xa5\x0f\x98\x64\xae\xed\x52\x2a\x7a\xba\x3f\x12\xe3\x12\xad\x2e\x2a\x72\x17\x4f\x17\x1a\x2c\xcc\xd1\x00\xa3\x8e\x12\xae\xb0\x02\x50\xce\x29\x8a\xc9\xec\x08\x5e\xd3\x19\x8b\x09\x68\x65\x93\x08\x7e\x11\x4a\xfc\x6c\xc5\x0c\x23\xd9\xe0\x0a\xbb\x6e\xe1\x47\x32\xbd\x4e\x38\x85\x04\xcf\xc3\xc8\x33\x91\x9e\x88\x3e\x86\x60\x30\x85\x99\x11\x06\xb0\x62\xb1\x9c\x3f\x44\xfa\x0b\x19\x88\x4c\x32\x4b\x11\x51\x02\x25\xc5\xa8\xb0\xa1\xa8\xb5\x80\x17\x8a\x78\x75\x73\x93\x62\x59\x68\xe3\xef\x10\xf7\xe1\x3c\x7d\x10\x6b\x36\x04\xa9\xf0\x9b\x9b\x13\xfc\x01\x00\x28\x58\x3e\x1e\x4c\x32\xbf\xb0\x47\x52\xa4\x0d\x35\x5a\xb9\x1b\xba\x0f\xed\x2f\x1f\x62\xa5\x0b\xb5\xa5\x75\x79\xc2\x88\x41\x93\x4f\xc9\xa5\x58\x58\x8d\xa2\x1c\xa3\x9f\xb2\x18\x53\x08\x0e\x8a\x9e\x9e\x8d\x79\x64\x8a\x50\x69\x4b\x48\x39\xec\xf1\x71\xa0\x2a\x6e\x9a\xcc\xa0\x1c\xf5\xb9\x92\xb5\x01\x76\x3c\x3e\x9e\x4b\xd1\xc9\x1a\x65\x38\x80\x8e\x8e\xfa\x80\x97\x80\xb8\xbc\xe4\x17\xbc\x71\x7b\xdd\x12\x45\x34\x48\xda\x59\x3b\x06\x88\x71\x7b\x7c\x7c\x7d\x7c\xfc\xac\x2b\xe5\x32\x48\x18\xca\x7a\x9e\x55\x02\x57\xa0\xc0\x74\x43\x0b\x76\x8d\xfd\x39\x20\x34\xde\x28\x4d\x6b\xed\xf6\xed\xfd\x12\xd6\x8e\xdf\xf0\x9c\xa0\xdb\xe7\xdd\xc9\x85\xad\x85\xcc\x72\xdc\xb8\x8a\x30\xaa\xb5\x29\x85\x66\xe7\x36\x30\x41\x80\xfd\x0b\x60\x78\x04\x0e\x72\x80\x7a\x38\x2b\x68\xd0\x5c\xe6\x7c\xd5\x4c\x2a\xe4\xbb\xb6\xcd\x24\x4a\xd1\x0e\x80\x81\x0f\x20\xe4\x12\xc0\xc7\x05\xfa\x22\xc0\x73\x02\xcf\xc5\xed\xed\xe8\x95\x85\x7e\x74\xd7\x14\xdb\xe5\x50\x23\x59\x17\xf1\x08\xfe\xdd\xd9\xe6\xd7\x4b\xfa\x7a\x09\x5f\x99\x40\x77\xd9\x9a\x4a\x7b\x8b\xd2\x44\xff\xfe\x6e\xcb\x4c\xb7\x97\x30\x58\x74\xfd\xbc\xe6\x82\x70\xe9\x15\x9b\xb3\x35\x83\x65\x63\xe4\x72\xce\xae\xd9\x39\x7b\x0b\xe4\x43\xc0\x9e\x49\x99\xe1\x2b\x6e\x20\x45\xb4\x05\x57\x5c\x85\x21\x08\x5e\x55\x84\xe4\xf2\x4e\x41\x70\xc0\x9f\x91\xd4\x1e\x38\x8d\x29\x92\x3d\x47\xfd\xbb\xa4\xbd\x01\x90\x2f\x57\xb5\x34\x57\x91\x6d\x05\x0f\x71\xc5\x32\x22\x61\xdf\x1e\x1f\xa3\x09\x99\xf6\x34\x1f\x59\x30\x1f\xa5\x4d\xc3\x6f\x09\x4d\xf7\xe7\x24\x6e\x08\x4e\x03\x9c\x24\x83\x2f\x80\xe3\xf3\x1c\xda\x04\x60\x01\x40\x42\xa6\x9a\xa2\x54\x24\x2a\xe7\x7c\x2d\x89\xe2\xca\x46\xfd\xb9\x79\x49\x83\x61\x20\x83\x40\x0f\x18\xeb\x13\xf4\xc4\xce\x24\x05\x9c\x49\x7d\x8d\x3e\xb5\xe8\xce\x13\xc4\x31\x6c\x9b\x4f\x0a\x8e\x94\x59\xd2\x7e\xc9\x81\x5a\x07\x4f\xfb\xca\x8c\x49\xbd\xd9\xfe\xb4\xe8\xbd\x0b\x1c\x4a\x50\x0f\xb3\x5b\x66\xdc\x76\xf2\xd7\xbe\x7a\xbb\x1d\xe2\x84\x68\xdb\xc8\x1b\x3a\xa5\x69\xf7\x64\xf7\x4a\x6d\x1d\x65\x5a\x32\x38\x1c\x28\xf7\xd4\x6b\x18\x3b\xcc\x94\x67\x93\x69\xef\x80\xd6\xf9\x6e\xa3\xba\x21\xf0\x1f\x03\x37\x73\x2c\x0c\x7b\x9a\x55\x01\xff\x64\xeb\x75\x6b\x0f\xf6\xf5\xe7\x46\x87\x53\x4f\x0b\x84\x1b\x36\x43\x30\xbf\xbd\x12\xed\x85\x60\x1c\xd0\xc7\x84\x82\x95\xc2\x78\x4a\xbb\x87\xcd\xd9\xe8\x1e\x62\x28\xd4\x7f\x3b\x64\xdd\xf1\x4d\xe8\xf2\xd2\x01\xd2\xd4\x29\x94\x5d\x5b\x61\x9a\x3a\x8c\xbe\xdf\x33\x74\x20\x09\xec\xf7\xb5\x81\x43\xc1\x61\xd1\x61\x81\x4a\x9e\xde\xb2\xef\x3f\xcd\x4c\xed\x0f\xb5\x1e\xaf\x43\x0a\xcf\xfc\x3a\xe4\x78\x93\xd4\xf8\x1f\xe4\xa9\xff\xa1\x97\x5f\x43\x8a\xc9\xf2\x6b\xc8\x31\x08\xce\xf8\x5b\x4c\xf9\x16\x5f\x0c\x63\xfa\x43\xe3\x51\x6a\xed\xce\x59\x87\x25\xac\x03\xff\x15\x68\x30\xd1\x16\x4a\xec\xe7\xaa\x40\x08\x17\xb7\xed\x5d\xa3\x73\xbf\xac\x73\x9b\x0c\x20\x1c\x64\x3d\x19\x26\x2f\x50\x97\xfb\xab\xa3\x43\xcb\x7d\x2d\xac\x87\x5d\x0a\xfb\x48\xae\xe3\x0a\xc2\x24\xec\xa0\x80\x43\xd7\x5a\xd4\xec\x6b\x76\x37\xd4\xa9\xe6\xbd\xbc\x13\xdc\x54\x59\x32\x56\xf7\x58\xca\x4e\xde\x04\xf3\xa8\xcc\x0f\x39\xfa\x50\xa7\xd1\xb4\x07\xb5\x0f\x79\x19\x37\x5a\x45\x4f\xde\x4a\xf9\x2c\x55\x51\xb5\x27\x79\xe5\x70\x4e\x3a\x8c\xdb\x1a\x8a\x18\xe6\x69\x5f\x1b\x8a\x98\xce\xba\xcf\x3a\x6e\xe2\x76\x02\xfa\x2b\x9f\x1f\xf4\x1f\x0c\xd8\xe0\x01\xa6\xc0\x59\xbd\x3b\x91\xd2\xde\x1b\x41\x29\x7e\x57\x8b\x87\x86\x69\x09\x19\xa4\x15\xcc\x75\xcf\x0d\xfb\xb3\x7f\xed\xed\x1f\x2d\x31\x06\xde\xa5\x90\xb1\x8e\x1b\xe7\x15\x4e\x96\x1b\x39\x91\x3d\x42\x2b\xa2\x14\xad\xc0\x30\x4e\x3b\xd9\x10\xa5\x68\x03\x86\x72\x68\xb2\x20\x4a\x19\xb4\x8e\x67\x43\xf0\xda\xf2\x6b\xf4\xc3\xde\x51\x22\xfa\xf9\x87\xfa\x28\x51\xa9\x0c\xcf\x92\x79\x58\xbe\xc3\x7e\x56\xb9\x7e\x37\xf6\xe7\x8f\x87\x4e\x40\x6d\x19\x8b\x3c\x4c\xd9\x18\x01\x00\x88\xc6\x08\xb2\xc6\x08\x4a\xb7\xa8\x47\x90\x56\x60\xe1\x55\x9d\x97\xac\xaa\x54\x4e\xb2\xac\x3a\x71\x68\xac\x0a\x72\x34\xac\xa4\x0e\x8c\x97\x40\xc7\xde\x78\x35\xf4\x40\x8f\xbf\x4f\x03\x1f\x3f\xb7\x25\x8d\x4a\xcb\x86\x77\x2f\xfc\x92\xc2\xba\xa4\x52\x6e\x16\x64\x21\x31\xc3\x29\xeb\xb3\x97\x41\xe3\x66\xa7\x56\x09\x8a\xbc\xaa\xfa\xd5\xf0\x12\x57\xf9\xb0\x57\x2a\x5f\xf3\x8c\xd7\x87\xd4\x60\x5b\xb0\x44\x18\xa7\xb9\x78\x1d\xa0\x1f\xa0\xba\x4d\x06\x4e\x7e\x7d\xe6\x8b\xfb\xcf\xbc\xa8\xcf\x7c\xf9\x09\x67\x3e\xfa\xf8\x99\x2f\x99\x01\x4f\x3e\x72\xe6\x53\x58\x9b\xfa\xbc\x5f\x1e\x3a\xb8\x49\xb6\x1f\x2c\x43\xc9\x89\x03\xbc\x64\xce\x6e\xdd\xa4\x55\xf3\x71\x19\x4e\x6a\xd3\x4a\xac\x36\x37\xdb\xb7\x8d\x68\x80\xda\x03\x16\x6b\xf7\x95\x6d\x00\xe9\x33\xd2\x41\x9e\xab\x49\x00\xb2\xe7\xb0\x8d\x47\x64\x55\x9a\xa3\x08\xc5\x78\x53\x41\xa4\x58\xaa\x9a\x19\x95\x16\x12\x90\x3b\x45\x42\x9e\xf1\x14\x9b\xdb\xc2\xcf\x00\x95\x0c\x02\x58\x06\xb4\x77\x02\xca\x13\x59\x32\x20\x3e\x23\x34\x65\x0e\x10\xc1\xe8\x0e\x42\xf9\xd6\xa5\x91\xba\x53\x82\x1d\xb4\xb8\x47\xdb\x14\xb4\xdd\xd0\xd9\x62\x78\xd2\xcb\x9a\xb7\x9c\xd4\x01\x26\x03\xa3\x96\xb0\x15\xe2\xcd\x25\x3f\x63\x1b\xbe\x05\x52\xee\x12\xa8\xd1\x0b\xb6\xe6\xd7\xf5\x04\x98\x0c\x16\xc6\x29\x34\x87\x85\x86\x12\x0b\x26\x29\x66\xea\x7b\xdd\x20\x40\x06\xb5\xa3\x17\x6c\xc5\x94\x45\x45\x9b\xb0\xd6\xbb\x5c\x18\xbb\x3c\xab\x76\x74\x7a\xe7\x8e\x6e\xfb\x0e\xa8\x76\x95\x19\xc4\xff\x77\xd7\x2e\x6f\x7a\x13\x34\x0a\x65\x35\xda\x39\x6f\x49\xea\x00\x48\x05\x52\xcf\xc0\x1a\x43\x91\x8b\xbf\xe3\x39\x20\x81\x33\xbe\x00\x24\xb0\xe5\x3b\x67\xe7\x9e\x49\xbd\xcf\x76\xfc\xd0\x89\x80\x63\xf4\x3c\x99\xf1\x92\x07\xee\x12\xd6\x3b\x74\x37\xb0\xdc\xb1\x7b\x05\xc3\xaf\x21\xee\xa5\x83\xca\x9e\x0b\xf7\xda\xb9\x46\xc6\xa4\xbe\x3a\xe4\xba\xc7\xcf\xd1\x99\x7c\x19\xa0\xb4\xf2\x1a\xa5\xb0\xa7\xcf\x83\x9b\x1b\x94\x8d\x78\x2b\xa9\xbf\xce\xdc\x15\x00\x64\xdf\xa0\xf9\x2e\xd8\x25\x7a\x9e\x27\xd6\x0b\xf6\x16\x39\x96\x67\xb8\xd7\x9e\xc3\x0f\xec\xb5\xf7\xfc\x15\xf4\xf8\x1d\x7f\x0e\x3d\x7e\xc9\xcf\x9c\xf7\xde\xce\x79\x37\xb2\x5e\x3a\x2f\x7b\x5b\x54\xdc\x40\xcd\xd6\xce\x79\x0f\xe3\x78\x67\xf7\xb6\x1e\xd0\x21\xe3\xee\x09\xf0\xf2\xe3\xc0\x59\xba\xa1\xb3\x71\x63\x07\x35\x1d\x56\x73\x72\x5e\xb1\xe7\xec\x05\xbb\x84\xde\xb2\x0b\xfc\x73\x4d\x53\xc4\xd6\x6a\x33\x43\x32\x5e\x34\xa1\x72\xd1\xea\xb7\xa7\xd3\xbe\x55\xd4\x0f\xc0\x3f\xc3\xb4\xf9\xa4\x8f\x62\x4b\x80\x88\x83\xc7\x46\x90\x99\x4c\x84\x51\x1e\x99\x37\x18\xdf\x17\x42\x35\xe0\x28\x68\x74\xa4\x1c\x64\xf0\x18\x76\xaa\x6f\x92\xd7\x8d\xf0\x26\x45\x66\xb8\x46\x64\x56\xd3\x42\x43\x9b\x82\x58\xd3\x02\xef\x00\x10\xf0\x07\x61\xcf\xa1\x78\x6a\x1a\x46\x02\x34\xa2\x4b\x3f\x0c\x28\x47\x2d\xa8\xab\x1b\x33\x11\xac\x4d\x82\x30\xcb\x4c\x69\x56\x85\x05\xf6\xcd\x61\xf0\x1e\x41\xfc\x66\x29\x4b\x91\xfb\x8d\x24\x3e\xa6\xe8\xbf\xbd\xf3\xac\x25\xad\xb3\x76\xd7\xe1\x4a\x5a\x26\x36\xc6\x29\x32\x6f\x5d\x89\x8c\x29\x35\x02\xcc\xd8\x0d\xd8\x7a\x27\xd2\x00\xc2\x51\xea\xc1\xd1\x31\x86\x58\x3d\xdc\x1b\xd2\x47\x63\xe5\xc2\x3e\x94\x3e\x20\xab\x59\x4b\x5d\x58\x97\xd6\xb6\x5c\x52\x9b\x1e\xa2\x71\xb8\x25\x4b\xc1\x23\x10\x03\xc7\xc7\xb2\xb6\xd7\xaa\x7e\x58\xe0\x16\x11\xcf\x9f\x09\x2b\xe5\x71\x66\xad\x11\x94\xd9\xc0\x37\x28\xeb\xaa\x08\xd8\xe4\x79\x1d\xd2\x8a\x2f\xa5\x93\x0a\xca\xea\x36\xd2\x0f\x64\xc5\x4a\xab\x45\x18\x68\xb5\x11\x1c\xa8\xbc\x7b\x15\xc4\xd1\x5c\x6a\x2b\x65\x48\xdc\x42\xdf\x15\x53\x83\xa0\xc6\xa6\x6c\xc6\x3d\x96\x82\xd0\x83\xd3\x81\x7e\x4b\x83\x47\x28\x82\x7f\x08\xdc\xf0\x86\x0f\xe1\xf9\x8a\x63\xe4\xc4\x3e\x80\xfb\x3e\x00\xb0\x3e\xc3\x3b\x56\x2f\xf9\xcb\x10\x80\xd4\x0e\xb5\x32\x28\x10\x38\x37\x23\x52\xc3\xc1\x53\x1b\xf6\xc0\x46\x6f\x8e\x00\x3d\xa8\xd0\xd4\x0f\x15\x4f\xd6\x05\x1e\x00\x1b\x3e\xe9\xe4\x3e\xcb\x31\xec\x46\x18\x47\x9b\x67\xc9\x32\xfe\xc4\x40\xc8\x97\x55\x58\x65\x0b\x7a\xc7\x5e\x86\xb6\xff\xbd\xb0\xe0\x19\x28\x4e\xda\x07\x25\x6a\x10\xaf\x75\xcd\x2f\xb6\x85\x30\xa9\xca\xfb\xaa\x3e\x27\x21\x50\x32\x41\x01\xb6\xd2\x22\x26\x52\x8b\x48\xbb\x40\x7b\x0d\xe1\x2e\xf1\x77\xb2\x9d\x73\x6c\x87\x42\x18\x7e\x5a\x13\x74\x51\x0e\x4a\xfa\xfc\x15\x85\x5b\xc2\xbb\xba\xf0\x62\xbc\x4f\x2b\xbd\x84\xd2\xa4\xb3\xe4\xae\x74\xd4\xc2\x8a\xa6\x00\x3c\x67\x34\x5c\xc8\xdb\x08\x87\x7d\x4f\x4d\x57\x24\x30\xf9\xf2\xe4\x31\xc2\x55\x0c\xfc\x02\xd5\xe9\x37\x59\xeb\x15\x6e\xfe\x39\xed\x7c\xa8\x3b\x4b\x8b\x4f\xee\xe5\xba\x51\xf7\x59\xa3\xee\x6d\x65\x13\x3a\x1e\x4e\xd0\x73\x49\x25\xf8\x7d\xd5\xec\x9a\x6e\x55\xc1\x3f\x5b\xd5\x76\x15\xaf\x18\x08\x41\x0c\xa8\xae\x60\x7e\xc7\x66\xfb\x20\x04\x1d\x19\x0f\xc6\x0b\x64\xda\xa5\x80\x47\x95\x1b\x82\xc0\x26\x0d\x08\x95\x9a\x10\x8a\x20\xf0\x9e\x61\x9e\x34\x8f\xc1\x81\x08\xdc\x6b\x26\xbd\x19\x64\x4d\x87\x31\x66\xfa\x87\x85\xad\xc4\xf1\xbb\x60\x92\x78\x2f\xc9\x86\x60\x9c\x4c\x12\x17\x1e\x9b\x25\xe2\xac\x7d\x0f\xcd\xa4\xb8\xb9\x11\x13\x00\x3b\x0b\x12\x9a\xad\x24\xbb\x61\xfb\xf4\xea\x53\xa2\xfa\xe6\x87\x06\x57\x92\x67\x77\xc6\xc2\xd3\xe7\x19\x79\xde\x69\x81\x7d\x2a\x74\x9f\x8a\x49\x81\x7d\x42\x1b\x44\x63\x86\x16\x06\x56\xa4\x7a\x6b\x90\xa0\x66\x17\xbe\x7a\x18\xb7\xc3\x90\x9e\x67\x1f\x95\xae\x29\x9f\xc2\xc0\xd4\x5f\xd6\x9e\x99\xea\x3a\x25\xb1\xe7\x9b\x19\x3b\x99\x1b\x38\xe5\x01\x61\x57\xe8\x44\x5e\x0e\xcc\x66\xe0\x64\x5e\xec\x94\xe4\x26\x97\x3b\x11\xd0\x2d\x69\x53\x12\xa7\x74\xa5\x65\x43\x2e\x17\x35\x7a\x95\x9a\xad\x7e\x92\x00\xee\xbf\x1b\x53\xe4\x41\x2f\x0f\x8f\x09\x68\x2e\x1a\x93\x9b\x57\x63\xca\x3c\x98\x81\x96\xe8\x6e\x99\x1d\xec\x4d\xd2\xf0\xfc\x3a\x70\x81\xb7\x8a\xdf\xa6\x23\xb6\xa6\x4e\x31\x52\xf1\xcb\xf1\x3a\x91\x0d\x9a\x90\x94\x38\x3b\xf4\x14\xd9\xcc\x4a\xc7\xfd\x49\x34\x2e\xfd\x72\x1c\x11\x29\x88\xdc\x3e\x70\xce\x78\x55\x21\x4f\x5c\x7c\x46\xcf\x62\xa0\x1d\xd1\x25\x4e\xab\xb2\x00\x7d\xf1\x72\x84\x45\xf3\x71\xe4\x47\xe3\x7c\x94\x7b\x3c\xac\xf4\x05\x56\x8c\x26\x02\xc0\x47\x79\x86\xc3\x69\x6e\x57\xaf\xd8\xf7\xdc\x9e\xd9\x64\xff\x1d\x13\xe3\x66\xa8\x46\x1a\x23\x27\xb3\x8a\x11\xdd\xf0\x87\xaa\x0c\x51\x5f\x3a\x82\x06\x71\xa6\xdb\x8d\x85\xaf\x43\x34\x55\xf5\x32\x3f\xb3\xdd\xa1\x6c\xeb\xf5\x0f\xde\xf3\xc0\xfe\xd2\xaa\x5e\x8d\xe3\x7e\xd5\xb2\xe5\x40\x30\x85\x81\x28\xf1\x2b\x94\xc2\xf8\x91\xda\xa4\xf6\x3e\xc2\x30\xa3\xa0\x29\xf5\xb1\x6c\xc2\x0f\x73\x6c\xf3\xff\xcb\x0d\x16\x2c\x69\x36\xb8\x6e\x5c\x93\xd7\xcd\xd3\x32\x0b\x8d\x5d\xb6\x6b\x26\x17\x74\xb1\xab\xe1\x11\x9b\xb5\x0c\x2b\x1b\xc7\x22\x6a\x6c\xfb\xd4\x34\xf1\xd4\x47\x46\xda\x75\xc2\x81\x29\x1b\x4e\x83\x31\x2f\x1b\x4e\x83\xb9\xe9\xec\x88\x17\x4a\x9b\xce\x8e\x02\x09\x1e\xb5\x7a\xc4\x47\x19\xf4\x7e\x01\x9c\x13\x86\xb8\x71\x52\x07\x9e\xf1\xda\x1b\x0a\x96\x3c\xe8\x55\xa5\x57\x68\x35\xb3\x6a\xc4\x2e\x37\x3d\x7c\xa5\xa8\x7f\x65\x3b\x4b\x26\xea\x4f\x2b\xa8\x08\xbe\x64\xe8\x37\xea\x16\x4e\x8e\x6e\x33\x4e\x0c\x4f\x0b\xf2\x7f\x8c\xe0\x29\x38\x70\xba\xd1\x8e\xb7\xba\x4f\x4c\x7e\x4a\x8d\xcb\xc5\x32\x38\xf4\x28\xaa\xb7\x09\x27\xee\x1b\x1c\x4d\x13\x2c\x5c\x50\xaa\x5e\xfc\x0d\xde\x49\x42\xf7\x66\xa1\x0b\x95\xe1\x55\x9c\x1d\xf0\xa4\x35\xec\x47\xc8\x4b\x54\x7b\x6c\x9a\x7e\xa4\x64\x4b\xa2\xee\xba\x83\xa9\x33\x3d\xe7\x03\x7b\xf4\x67\xe8\xde\xe1\x43\x1b\xf0\x86\xa7\xbc\xed\x04\x2e\x7c\xcb\x00\xd2\x09\x98\xfc\x10\xde\xd1\x89\x38\x72\x33\x7a\x63\x52\x14\x4a\xd6\xc9\x86\x1f\xec\x5f\x87\xfd\x60\x0b\xd8\x0e\x88\x8d\x0d\x97\x56\xd9\x75\x03\xc0\x03\xa8\xaa\x4a\x27\xb7\xf8\x7c\x40\x6c\x58\xe5\x30\x92\x2f\x8d\xd3\x70\xb9\x8f\xc6\xcc\x90\x7d\xc6\xde\x2e\x4d\xef\x79\x04\x80\xb0\x7a\x65\xe5\x46\x1f\x35\x55\x48\x2c\x72\x1a\xce\xf3\xf7\xe0\x97\x66\x63\xd2\xc1\x5c\xa9\x71\x50\x9c\x8a\x87\x25\x6a\xf8\x34\x37\x56\xef\x90\x4a\xc8\x81\x49\x06\x8c\xc8\xea\xf3\x81\x41\xf2\x9d\xa8\x97\xb5\x30\xca\xc5\x1d\x38\x1c\xa1\xb8\xf7\x26\x70\x9f\x07\x63\x79\x31\xb9\x7c\x01\x6a\x64\x4c\xe6\xfe\xf4\x8d\x9e\xb4\xc6\x39\x95\xc7\x0b\xaf\x0c\x28\x69\xf8\xf6\x01\x0d\x5a\xe4\x24\x2d\x05\x1a\x7e\x39\x8c\xb8\x0f\x80\x38\xca\x80\x86\xe4\x68\xbd\xeb\xe2\x35\xa6\xb7\xb8\x0c\x78\x2d\xd0\xc4\x00\x1d\x92\xf9\xc7\xdb\x0e\xb2\x9e\x69\x3a\xde\xab\xbe\x63\x0f\x7b\x18\xa2\x19\xe7\x32\x73\x8c\x9e\x23\x95\x60\xf7\x2a\x63\x89\x68\x72\xc0\xa5\xb5\xa9\x92\x83\x0d\xf9\x23\xde\x72\xb8\xbf\x78\x77\x29\xeb\x22\xa6\x21\x17\x8e\xa5\x6a\x3c\xed\x65\x6c\xd0\x8b\x6c\x1b\xe6\x1a\x57\x09\x78\x10\x83\xda\xbb\xbe\x97\xda\x8a\x6a\xd5\xa0\x31\xdd\x25\x4e\x77\x64\x4e\x77\x79\xe7\x74\xef\xcf\x22\x80\xd1\xc6\xec\x59\x85\x47\x34\x54\xd6\x2b\xdd\xc4\xb0\xf2\x27\x37\x87\x49\x90\xf9\xf7\x4f\x55\x74\x9f\xf6\x32\xf2\x7e\xc4\xfb\x23\xf7\xe7\x90\x26\xc2\x08\x16\xd0\xa6\xc5\xab\x25\x6d\xee\x8d\x02\xaf\xb8\x35\x88\xee\xb7\x99\xe9\x8b\x42\x12\x0b\xf2\x81\x23\x06\x0f\x21\x79\xcd\xb0\xc1\x08\x85\xc1\x60\xd6\x84\x61\x8b\x19\xd4\x9a\xae\x4c\xf1\x25\xc2\x60\x4a\x46\x15\xcf\x4e\xa6\x46\x13\xb3\x42\x52\xc7\xdb\xbe\xf0\x13\x8a\x59\xb9\xcf\x27\xea\x8a\xcb\xff\xaa\xe2\x3b\x58\x64\xa9\x83\x88\x0e\x55\x4d\xf1\x78\x39\x17\xda\x9d\x54\xf9\x4a\x28\x37\x9b\x77\x40\x9e\x5a\x84\xb5\xf1\xce\x6e\x6b\x3a\x0d\x91\xfc\x0a\x58\x88\x76\x52\xc1\x8c\xd1\xbb\x2b\xdf\xdd\x60\x36\xd3\x1e\x7b\x05\x5d\xa8\x47\x5d\xab\x34\x81\xcd\xfe\xc9\x7e\x1b\xe1\x07\x9a\x6b\x7c\xdf\x0a\xa3\x61\xa3\xe1\xcd\xde\x20\x5c\xd0\x60\xab\x4a\x7a\xd5\x4c\x1a\x18\x49\xcf\xb3\x3b\xa3\x09\x4d\xfb\x8c\x82\xa6\x0c\x61\x87\x0c\x47\xc5\xb8\x1c\x95\xae\x2b\xf3\x8e\xc8\x13\xf1\x67\x8c\x65\x33\xcd\xbc\xe1\x0c\x05\x08\xf8\x34\xa0\xa7\x72\x86\x8e\xe5\x23\xdb\xf3\x32\x20\x53\x33\xd7\x9d\xf1\xb2\xc6\x00\x32\xe0\x51\xbf\x11\x29\xf6\x7d\xb6\x17\x52\x85\xac\xd1\x6e\x6e\x2a\x43\x34\xc3\x23\xb7\xc5\x42\xca\xcb\xae\xc9\x75\xc4\x31\x23\x80\xc8\xcb\xb1\x0b\x79\x21\x76\xed\x5e\x62\x38\xe1\xee\xd1\x72\x24\x85\x88\xc8\xd9\x13\xaf\x3f\xc3\x32\xa5\xba\x32\x85\xee\x23\x24\xe9\x44\x4c\x37\x91\x00\x85\x46\x46\x74\x14\xbd\x01\x1f\x62\xa0\xc9\xac\xc0\xb1\x42\x2f\xb6\xbd\x85\xba\x5f\xaf\x67\x2d\x9c\x14\x78\x99\x6a\xef\x4e\x4b\x77\x05\xdc\x0e\x1a\x22\xe6\xc6\x98\x7e\xc9\x0e\x84\xac\xa9\xdd\x4c\xb5\xef\xdd\x91\xbc\xfc\x5b\xd0\xd4\x50\xf3\x2d\x1d\xcf\x1b\x24\x82\x8a\x92\xc4\x04\xb6\x72\x4a\x9e\x2f\x85\x74\x42\xce\xa3\x42\x3d\x85\x51\x16\xc6\xa2\xe5\x93\xfc\x8d\xd1\x07\x11\x4b\xff\x39\x58\x00\x0c\x88\x98\x19\x32\x32\xac\x24\x31\x39\xe1\xd7\x54\xee\x0f\x82\x2a\x3f\x87\xfa\xf6\x77\x8c\xa0\x12\x2b\xa7\x40\xe8\x49\xd9\x50\x85\xfd\x6a\x0e\x57\xf5\x06\x43\x70\xa1\xc9\x13\x06\xc5\xde\xc1\x96\xfb\xb0\xf5\x05\xdb\xf9\x19\x21\xb9\xee\x6b\x54\x3e\x75\x5f\xe1\xa5\x02\xc9\x6c\x44\x4d\x56\xac\x57\xc8\xa3\x51\xa8\x6a\xa1\x30\x30\xc2\xd3\xaf\xdd\x6d\x15\x1b\x26\xab\x3f\x86\x3b\xfc\x3a\xb2\x23\x1e\x42\xc5\x41\xb7\x4c\xa4\x77\x20\x50\x69\x50\x33\xde\x46\x05\x35\x36\x3e\xff\x81\x9f\x6b\x5e\x8f\xa7\xa3\xb8\xd9\x60\x7c\xa8\xc1\xb8\xdd\x60\xca\x63\x1c\x43\x15\xbb\x00\x5a\x8b\x91\xf6\x4f\x47\xf5\xb7\x3f\xf0\xdb\x48\x45\x0e\xa8\x4c\x22\xa9\xed\x9c\x0f\x46\x0b\xe0\x2c\x5d\x37\xb7\xd1\x44\x32\x27\xa3\xc9\x69\x0e\x1b\x84\xfd\x08\xc5\x68\xad\xf1\x2a\x2d\x58\x23\x16\xcb\x1f\x20\x91\x42\x69\x63\x8f\x25\x16\x98\x55\xe6\xe3\xff\x82\x31\x35\xb2\x92\x4c\x14\x08\xac\xdf\x68\x0e\x7e\xc3\x7e\x18\x1e\x65\x4d\x40\xa1\x83\x80\xa0\xc3\x24\x2d\xcd\x0e\x96\x06\x56\xff\x62\x14\x50\x38\x83\x8c\x7f\x9b\x59\x01\x4b\x6d\x38\x37\x19\x7a\x74\x05\x30\x94\x97\x23\x1d\x4c\xa0\x04\x84\xf8\xbd\xcc\xc0\x8e\xac\x12\x33\xc0\x71\x1e\x7b\xa8\xf0\x29\x20\xe7\x6b\x8c\x20\x62\x03\x07\xae\xbf\xe0\x7b\xf7\x15\xde\xe6\x09\x0f\xf2\x86\x1a\xf2\xd8\x09\xba\x6f\x90\x5a\xd6\x9f\xb0\x95\x37\x2a\xb8\x04\xed\x67\x84\xeb\xd0\xad\x28\xc9\x51\x2e\x5e\xe0\x55\x63\x28\x52\x52\x50\x1e\xe1\xbd\xda\xd9\x7f\x64\xf2\x12\xcf\x6f\x30\x78\x17\x4e\x07\x6d\x66\x55\x2e\x44\xd5\x78\x28\xa7\x4d\x54\xb3\x27\xf3\xa9\xf9\xa6\x09\x83\x1a\x28\xd2\x05\x3c\x0a\xe9\x4f\x50\xd5\x4f\x77\x02\x87\x77\x94\xb5\x47\xb2\xf9\x3f\x32\xcd\xcc\xc7\x5c\xe5\x40\x4f\x31\x34\x33\x8f\xc9\xcc\x1c\x66\xdb\xcb\x29\xdc\xf5\xce\x5b\x00\x1b\x27\x64\xa6\x2b\xbe\xa1\x84\x39\xfc\x62\xc2\x1a\xb8\x43\x6b\xe5\xcc\xbd\xa5\x73\x85\x5e\x0f\x2b\x67\xe5\x2e\x81\x7d\x3b\xe3\x57\xce\x95\x3b\x77\xe6\x6c\x8b\xe7\xcb\x9a\x3b\x3b\xc8\x72\x66\xf7\xd6\x6e\x0e\x67\x0d\x8a\x9c\x79\x57\xce\x0e\xdf\x17\xb7\x23\xd8\x52\x72\xb0\x2c\x66\x1b\x54\x06\xd4\xdd\x8f\x75\xac\x0d\xf8\x5a\x4f\x48\x02\xd9\xf4\x57\x39\x1b\x34\x11\x06\xbb\xf1\x6d\x43\x92\x91\xc8\xde\x23\x29\xb2\x25\x32\x04\x2f\xb4\x2a\x81\x52\xc2\x99\xd3\x36\xdd\x0f\x32\x15\x0f\x08\x80\x00\x25\xa4\x55\x48\xfb\x5e\x7f\x04\x44\x28\x55\x32\x92\x78\x1a\x2b\x0a\xa9\xa2\x98\x87\xaa\x22\x1d\x93\xff\x81\x8c\x40\x93\xf3\xc0\xcb\x60\x42\x81\xd8\x84\x1a\x10\x6a\xe7\xbd\x4a\x07\xb0\x98\x58\xde\xca\xad\x09\x31\x98\x38\x6f\xe8\x00\x34\xcf\x9d\xbc\x67\xc1\x23\xc0\xf6\xd0\x8d\x7b\x43\x17\xc0\x3b\xe2\x60\xbb\xb7\x70\x81\xf6\xcb\xdc\xa0\xe1\x7f\xf9\x7d\x6b\x9c\xaf\xb0\x27\xd5\x5e\xf8\x36\xa3\x8b\xb6\xb5\xd4\x46\x0e\xa0\x12\x64\xec\x88\x16\xcd\xba\x5b\xbc\xe6\xc6\x70\x56\x30\x14\x6b\x0a\x06\x6b\xf0\x9e\x37\xe2\x23\xfc\x70\xf8\xa4\x36\xd5\x2c\x4a\x0f\xb0\xe2\x5a\x03\xb0\xe4\x5a\x27\xb0\xe1\x4a\x1b\x00\xdb\xea\xc7\x10\xf6\x54\x65\x78\x39\xf7\x3c\x3a\xdc\x11\xbf\x9a\xce\x01\x51\x52\xdc\x89\x4c\x6c\x02\x54\xd4\x91\x51\x77\x00\xc4\x15\xf5\xc8\xb4\xe6\x46\x37\x49\x34\xe5\xb6\x73\xb2\xe3\xee\x0a\x52\x50\x67\x3c\xa7\x55\xcf\x69\xb1\x82\xa9\xeb\xa6\x5f\x86\x33\xbc\x0c\x55\xf9\x3d\xe3\xbe\x17\xb4\xef\x2d\x82\xa6\x05\xba\x7b\x90\x06\xb7\xf4\x04\x79\x89\x92\xb5\x27\xde\x02\x1d\xa2\x0f\x50\x9f\xee\xec\xfd\x39\xb3\xbe\xcb\xac\x48\x1d\x1e\x46\x25\x17\x12\x26\x6f\x3c\x04\x34\x13\xd8\xf8\x0b\xd8\xec\x18\xd4\x51\xa6\x4c\x84\xbf\xb9\xf5\xa9\xde\x8d\xcc\xb9\xf2\x32\x95\x93\x80\x3b\x7d\x9d\xa0\xe5\xeb\x4e\xe5\x54\xda\xe9\xe3\xe3\xd2\x5b\xaa\x9c\x2b\x5d\xe7\x4a\xd5\xb9\x54\x75\x2e\x65\x4e\xe8\x86\x59\xe7\x52\xd5\x49\x5d\xb9\x95\xd7\x0a\xb2\xa8\x06\xc4\x40\xde\xb9\xae\x79\xf3\xf0\x9f\x4d\x1a\xa9\xe8\x06\xa8\x5c\xf2\x12\xf9\x6b\x98\x7d\xee\x93\x00\x5b\x89\xf5\x77\xf2\x27\xc8\xc2\x3d\x7a\x60\xd7\xa2\x05\x7e\x6b\x20\xe8\xd7\xac\xda\xc3\xa8\x5f\xa8\x44\x75\x0a\xc3\xe8\x73\x1c\x29\x70\x44\xf1\x30\x8e\x38\xaf\xaf\x03\x82\x95\x44\x07\x9a\x1d\xec\x0a\xd8\xd7\x5e\x0a\x0b\x0e\xfb\xdc\xa3\x18\x58\xf4\xbe\x80\x5f\x7c\x47\xb1\x96\x15\x3a\x0b\x2f\x76\x72\xe5\x90\xb5\x1a\x73\xef\x7d\xa0\x5c\x92\x96\x3c\x74\xe0\xfc\x39\x31\xba\xda\xc8\xd8\x58\xb0\x4b\x81\xc8\x5a\x42\x89\x0d\xea\x3b\xe7\x1c\xca\x6f\xbc\xdc\xa1\xd0\x58\x0b\x3e\x07\xaa\x7c\xcd\xb3\x06\x3d\xf3\x57\x36\x5a\xd3\x34\x24\x6c\x2d\x67\xa1\x84\x87\x2d\xbf\x72\x53\xf8\xdd\xf1\x85\x01\x01\x14\xc0\x44\x65\x3f\xcc\xd2\x82\x69\x72\x85\xaf\x2b\x72\x40\x4e\x1e\x1a\x95\xc7\x80\xff\xce\xe8\x88\x40\x35\xa7\x67\xdd\xdd\xcd\xcd\x9a\xce\x33\x3c\xa2\x25\xfa\xf6\x14\x9e\xb6\x32\x14\xd3\x59\xf7\xa5\xfd\x61\x07\xef\xaf\x15\xee\x3a\x83\xe7\x97\x55\xb8\x1d\x48\x7f\x43\xe9\x46\xea\x9b\x5b\x68\x41\xa1\xa4\x1d\x1a\x20\x40\xfd\x56\x12\xf3\xb5\xdd\x70\x54\xf9\xe3\x00\x75\x35\x22\x41\x46\xf7\xb5\x2c\x50\x00\x2a\x65\x50\x97\xa2\xd5\x30\xf0\xa1\xa2\xd5\x0a\xa2\xd5\xf0\xfa\x4f\x93\x48\x34\x0d\x4e\xdb\xd0\x85\x7f\x17\xc2\x59\xfe\xe9\xe3\xba\x45\x82\xf0\x0a\x92\x94\x08\x49\x00\x97\xa3\xdf\x87\x75\xf4\x35\xea\x77\xf0\x2a\xdf\x23\x44\x1a\x74\xc4\x0b\xb4\x8a\xf7\x0a\xb4\x82\xaf\x08\x2a\xfc\xb6\xa3\x6f\x44\x4e\xd9\x34\x22\xbc\x31\xf2\x52\xc5\x86\xd0\xb0\xa0\x64\x03\x33\x4a\xdf\xd7\x2d\x60\x7c\x69\x02\xe3\x23\x15\x92\x55\x11\x33\x81\xa2\xfb\xc9\x05\x83\x28\xfc\x29\x5d\x97\x58\xa8\x41\xc5\xf2\x1b\xd1\xff\x40\x9f\x23\x28\xed\x66\x88\x43\x30\xa6\x11\xc1\xb2\x0d\x5f\x74\xd1\xda\x68\x01\xcf\xb0\x19\x57\xee\x06\xed\x09\xd7\xdc\x5a\xba\x57\x78\x97\x39\x3a\x2e\x71\xbc\xe3\x8e\x0c\x47\xc7\xf3\x9b\x9b\xf9\x18\x68\x1d\xed\xe6\x84\xee\x4c\xca\x79\x4b\xfe\xed\xee\xea\x6b\x65\x94\xeb\x13\xe2\xee\x39\xc0\x8d\xf0\x16\xf0\x9f\x7a\x8e\x6f\xab\xad\x53\x15\x3c\x0d\x0f\x97\x8b\x8d\x72\xe1\xed\x6d\xe5\x50\x95\x41\x77\x01\xd8\xf5\xac\x2b\x00\x4f\xb0\x5c\x6b\x2f\x03\x52\xc1\x1b\x8c\xb3\x9b\x1b\xe0\xf8\xec\x4f\xee\x1c\x30\x41\xa5\xdd\xcb\x8c\x2e\x5a\xb1\xfe\xf2\xa9\x1d\x35\x4b\xa8\x3a\x8c\x5a\x0d\x27\xb0\x65\xa3\x43\xdb\x7a\x32\x8d\xca\x52\xe4\x24\x30\x80\x9e\xaa\x2a\xa0\xf7\x00\xde\xf7\x3a\xb3\x3d\x4d\xf7\xcb\xd7\xf9\x65\xf9\xba\xbe\x3a\x20\x5c\x40\xb7\x81\x5d\x72\x74\x21\x36\x4c\x70\xd5\xe6\x23\x38\x1b\x6b\xac\x9d\xe9\xd8\x51\x81\x04\xc0\x97\x2d\xf8\xfb\xaf\x7d\xd6\x14\xe0\x96\xaa\x4b\x93\x0a\xdf\x85\xf2\xcc\x96\xe4\xf8\x00\xd4\x5a\xc9\x24\x63\xcc\x32\xf5\x5a\xd0\x6d\xe4\xec\x47\x8c\x9a\x1b\xcd\x24\x66\xae\x2f\x53\xfb\x59\x95\xb0\x29\x47\x71\x57\x8e\x82\x1c\x6f\x0c\xc7\x82\xef\x5a\x2a\x9b\xaa\x6b\x0d\x39\x47\x86\x63\x43\x0f\x16\x98\x10\xdd\x53\xe8\x8b\x21\xd4\xfb\xd1\x18\x24\x4c\x1f\x3a\x30\x5f\xe2\x0d\x87\xd2\x03\x0d\x0a\x66\x3e\xce\x6a\x86\x7e\xd3\x01\x5d\xbf\x16\x63\x38\x51\x98\x3c\x53\x28\xf6\x73\xbb\x37\xdd\x80\x50\xd2\xe5\xa8\x66\x7f\xd5\xac\x4b\x84\xa7\x26\x9e\x4c\x33\xc4\xc4\x90\xc6\x09\x82\x2e\x3b\x80\x23\x08\x79\xb6\xb6\x2f\xfb\x52\x98\x79\x00\x95\x79\x19\x79\xe6\xec\x3c\x40\x68\xb6\x69\x97\x86\xa8\x0d\x51\x1d\x7c\x87\x3c\x3b\xa3\x8f\x49\x69\x5c\x0e\xd8\x58\x68\x62\x8c\x3f\x60\xdc\xfc\xa4\xfb\x9c\x63\x30\xeb\xa4\xfb\x06\x51\x2e\x22\xdc\x56\x5e\x51\x9a\x70\xac\x20\x56\xf9\x0d\x41\xd5\x5f\x47\xe5\xa4\x84\xb2\x38\x71\xf8\x9b\xf9\x25\xd4\x82\xd3\x77\x81\x57\x50\x43\xed\x25\x8c\xea\x57\x34\xab\xc6\xef\xdd\x97\xf8\x4b\x01\x0b\xdf\xc0\x57\xdc\x30\x50\xc8\xa0\x21\xb2\x03\x2d\xbd\xfc\xec\x96\x20\x15\xfa\x07\xbf\xd4\xd2\x4b\xdd\xd2\x1b\xb3\xa5\xb2\xd4\xe8\x64\x04\x83\x1f\xd9\x18\x81\xe7\x65\x25\xe7\x33\xac\xa6\xcc\x1e\x55\xac\x27\x05\xec\x4b\x4b\x5b\x22\x77\x42\xc8\xdf\x85\x68\x69\xff\xa3\x8c\x0a\x28\x6f\x7f\xa8\x42\xc3\x01\x47\x47\x9f\x13\xd8\xd4\xb1\x7a\x1a\x11\xba\x86\x0d\x13\x23\x3d\x6b\x1d\x95\x37\x37\x08\x90\x4a\xc4\xdd\x11\xe1\xee\x12\x71\x37\xc2\x05\x58\x5b\xdb\x46\x08\x01\xb4\x8d\xa0\x54\xf4\xaa\x44\x34\x04\xc7\x27\x82\xe3\x43\x55\x02\x9d\x1e\xd9\xec\x1f\xfa\x2b\x90\xbc\x41\x7f\x20\xf4\xe2\xc2\x0e\xcb\x7e\x56\x38\xbe\x54\xd1\x26\x7e\xcd\xd0\x43\x35\x03\x72\x0f\xd1\xf4\x17\xc4\x3a\xfd\x80\x7f\x6d\xc5\xfb\x7c\x08\x45\x1c\xe7\x3e\x90\xe3\x74\x42\xfd\xef\xc2\x4a\x1f\x06\x63\x82\xc1\xc0\xb0\x71\xcc\x88\x06\x8d\x68\x14\x69\xd9\xa2\x19\x77\x40\x2f\xc2\xc0\x60\x77\xc3\xc3\xd6\xb0\xf2\x28\x5b\x32\x35\x64\x34\x51\x98\xe1\x58\xaa\x90\xed\xd1\xb7\x82\xbe\x09\xf5\xcd\xb0\x04\x29\x1b\x6a\x53\xa3\xea\xb8\x99\xb2\x33\x4c\x38\x6a\x13\xb1\x0f\xb1\x08\x16\xfe\x11\x90\xf0\xe9\x1c\x86\x87\x11\xc2\xa4\x57\x08\x71\x93\xf2\x67\x27\xef\xd0\x33\xcc\x36\xca\x3a\x0a\x26\x93\xe0\xfb\x28\xb1\xea\x0f\x9a\xfc\xec\x3e\x42\xc7\x04\xd2\xf4\xe1\x63\xe6\xe2\xfd\x8a\x78\xd1\x34\xb6\x35\x0a\xc9\xf3\x9d\xea\x0a\x49\xf2\x06\xa5\x29\xb4\x40\x48\x9e\xf2\x2a\x01\x10\x7e\x4a\xd5\x52\xc2\xb0\x4e\x18\x62\x09\xa0\x1a\xd0\x72\x20\x9c\x9e\xd4\x09\x27\x33\xe2\xb8\x28\x56\xa9\x61\x36\xd2\xe8\x73\x15\xc7\x09\xfa\x33\xa8\xc2\x42\x3d\x68\x58\x33\x2b\x4b\x52\x15\xbf\x33\x47\x23\xd6\xc5\x38\x45\x84\xbc\xba\xb9\x29\x01\xfb\xc9\xe0\x8f\x5c\x99\xf1\xc8\x0a\x37\xe8\x53\x87\x4b\x0c\x24\x08\xf2\x08\x3b\x0c\x82\x20\x29\x59\x24\x31\xc2\x71\x65\xe0\x5b\x53\xba\x21\xd0\x91\x23\x38\xe9\x1e\x4a\xdf\x84\x87\xbc\x78\xe1\xee\x50\xbd\xeb\xa2\x70\x67\x03\xa3\x50\x54\xdf\x19\x34\x46\x93\xc7\xb6\x34\xa3\xb9\xbb\xc2\x18\x08\xf8\xb8\x70\x97\x78\x7b\x54\x31\xe6\x5b\x74\x3a\x1c\x73\x8a\x19\x73\x7a\x3a\xb8\xb9\x60\x6f\xf9\xb9\xfb\x70\xf4\x76\x7c\x3e\x72\xdd\x73\x3c\x75\x09\x3f\x9b\x9e\x1c\x9f\xcf\x6c\x75\xe3\x32\x3c\xcb\x5b\x93\x1f\xf4\x7d\x3d\xf4\x2d\xbb\xb4\x8d\x1b\x89\x1f\x0c\x28\x65\x4b\x93\xd2\x4c\x19\xaa\x32\x97\x90\xba\x6c\xa4\x9c\xa8\x32\x97\x34\x91\x40\xf0\xa0\x9b\x8b\x9a\x7f\x66\xd8\xf3\x2f\x4b\xed\x83\x8a\x56\x08\xcb\x4b\x92\x5c\xea\xe7\x42\xeb\xfa\x90\xe0\xa3\x1b\xb9\x25\x9a\xc1\x69\xea\x4a\x2f\x99\xa2\xbb\xf4\x32\x46\x14\xa9\x57\xde\x6d\xac\xd0\xf9\x3f\x1d\x77\x5b\x48\x89\x3e\xdd\x07\x6a\xa1\x43\x0a\x5e\x36\xdb\xfc\x9a\xb9\xe9\x81\xaf\xa5\x1b\x38\x4d\x93\xdb\x4d\x13\x36\xf2\x0f\x78\xcf\xe4\x87\x5b\x79\x7f\x3b\xde\x27\x98\xd8\xf4\x53\x4c\xb2\xa9\x98\xf1\x75\xa9\x62\xd0\xe3\x2d\x9a\x7e\x89\x9f\x28\xee\x7f\x95\xbd\x90\xd9\x13\xe0\x15\x28\x95\x32\x1e\x1a\x4e\x55\x22\xb3\x29\x23\x56\x6f\x58\xe0\x98\x61\x34\xaf\xca\x96\x39\xa7\x8b\x4e\x73\xae\xe9\x04\x61\x5c\x95\x6e\x0d\x80\xc3\x77\x0b\xc7\x8c\xd6\x3b\x3f\x80\x01\xa2\xd8\xb8\x5b\x21\x35\x5f\xfa\x14\x99\x91\xee\xa0\x65\x88\x11\x68\x74\x89\x8b\x17\x7d\x17\xf8\x77\x84\x91\xc2\x62\x7d\xbb\x38\xc2\xf0\x0c\x2b\x90\x97\x32\xe0\x3d\xe6\x80\x12\x32\xe0\xb5\xa0\x2e\x9b\x62\x0a\x94\xd5\x05\x2b\x14\x72\x0a\x05\x19\x13\xfc\xe3\xf2\xd2\x27\xe1\xc5\x0c\xdd\x23\xa1\x56\x14\xce\x63\x18\x57\xa8\x90\x2e\x76\x99\x18\x59\x33\x9d\x15\x68\x1a\xf5\x24\xa3\xd3\x4a\xf2\xe8\x43\x04\x84\xe5\xd6\x87\xb9\xa2\x68\xd5\x18\x29\xa9\x31\xaa\x4a\x2f\x7b\xaa\x83\x4b\x35\x3b\x76\x67\xb7\xb4\x28\xe6\x74\x38\x41\x18\x87\x12\x55\xfc\x45\xc1\xe2\xbe\x9e\x19\x2d\x92\xf1\x6a\x63\xfb\x40\x00\x98\xe2\xd6\xc7\xb2\x5a\xb2\xd3\xde\x0c\x7a\x07\x62\x64\xe0\x0c\x23\xae\xda\xc1\x14\xa6\x24\x9c\x66\x33\x1b\xf1\x23\x60\x14\x63\x7f\x04\xf5\x7d\xab\x06\x26\x59\xab\x75\x36\xeb\x2b\xd0\xb2\xb9\x10\xd9\x26\x8d\x83\x22\xcd\xaa\xc8\xb6\x9e\x97\x8d\x79\xff\xf8\xf8\x08\x1a\x69\xe7\x81\x36\x95\x03\x77\x6d\xde\x66\x98\xf9\xb4\xce\xcc\x94\x02\x7e\xcd\x8c\x2b\x23\xe8\x3c\xab\x47\x7d\x2b\x3e\xaa\x86\xf5\xb7\xea\xde\x56\x79\x70\x60\xcc\xc1\x58\xe0\x3d\x0f\x76\xa6\xfc\xe8\xcd\x73\x26\x73\x8d\x22\x95\xa5\x79\xea\x46\xa9\xf9\x19\xf3\xdf\x79\xda\x8c\x66\x3e\x76\xe4\xce\xca\x83\x16\x92\xd5\xa7\xfe\x18\x48\xdb\xbe\x0f\xa0\x7a\x30\x19\xf8\x49\xf3\x62\x8f\xed\x47\x0a\x0f\xbc\x04\x0e\x69\xa3\xc8\xe5\xfd\x45\x10\x3b\x74\x1f\x8d\x8b\x49\x62\x0d\x9d\xc2\xf6\x87\x50\xc3\xd0\xc3\x47\xb3\x92\x8b\x06\xb5\xe0\x18\x14\xe0\x75\x2b\xc5\x4c\x3b\x2f\x55\x1c\x60\x18\x53\xa2\xa5\xac\x32\x8c\x03\x5e\xf2\xad\xfb\xac\x5c\xcb\xa1\x28\x2a\x9b\x9c\x4a\x8d\xff\x90\x7a\x96\x4c\x84\x7f\xe2\x58\x09\x9a\x4f\x09\xaf\xfb\xe4\x91\xb1\x29\xdf\x7e\x64\x3a\x2a\x33\x06\x64\x96\x8c\xe1\xbc\x30\xcb\x0d\x6a\x8b\x82\xc4\x79\x63\xba\xe2\x3d\x2b\xdb\x76\x1e\x58\xd7\x90\x0d\xfa\xd8\x9f\x86\x30\xe3\xd5\x81\x1a\x09\x7d\xc3\x8a\x38\xa6\x8e\xed\xb9\xb9\xc3\x47\x77\x58\x35\x9f\x0e\xc9\x96\xa5\xfb\xf0\x91\xcd\xf6\x2c\x9e\x61\x8e\x7a\x2f\x03\xc3\xcc\x6c\xd0\x43\xc3\x88\x84\x0f\x70\xfa\xf0\x7e\x8e\x6a\x26\xea\x00\x3a\x03\x37\x71\x8c\x11\x78\x30\x84\xcc\x08\x5b\x68\x01\xa6\xb4\x9d\x97\x41\xaf\xb1\x75\xde\x37\xd6\x16\x65\x54\x7c\xd0\x7d\xd2\x1f\x3c\x7a\x6a\xb4\x61\xd0\xb1\x4e\xe1\x58\x00\xcd\x31\xd6\x9b\xd7\x98\xef\x77\x8d\xd9\xe9\x0d\x61\x15\x61\x5d\x9f\x74\x1f\x3d\x1e\x3e\xc2\x2d\xe3\x0f\x5b\xdf\x60\x7a\xa1\xa9\x47\xf4\xd5\x76\x12\x17\x7e\xfc\xa1\x7a\x6f\xe6\x1a\x76\x87\x46\xb6\xaf\x4e\x20\x63\x23\xf5\x71\x23\xf9\xe9\x43\xc8\x60\xa8\x9a\x4d\xca\x62\x15\xc6\x15\x65\x81\xcf\x06\x65\x41\xd1\x52\xba\x21\x51\x16\x31\x51\x16\x2b\x45\x59\x84\x8a\xb2\x88\x6b\xca\x22\xca\x5f\x05\xaf\xac\x94\x82\xd9\xd1\xf5\x3d\xf2\x43\x66\xe3\xed\xc1\x3e\xda\x4d\xd1\x7b\x64\x4f\xac\x88\xa2\x13\xc8\x77\x81\xe9\x2b\x5f\xd8\x7e\x34\x1e\x3c\xed\x4f\x22\x8f\x9f\x3c\xee\xfb\x1e\x3c\x13\xa6\x8b\x5c\x7c\xb7\x0f\xa1\x86\xbc\x90\xa4\x0a\x23\xd2\x84\x49\x52\x04\x71\x85\xa1\xc9\x6e\x8c\x34\x37\x46\x9a\x1f\x18\x69\x7e\x60\xa4\xf9\xe7\x8d\x34\xff\xbf\x32\xd2\xf0\xe3\x23\x7d\x63\x8e\x34\x0e\x6a\x6a\x11\x9f\x8d\x91\xc6\xcc\x10\x4a\xd0\x48\x63\x35\xd2\xe0\x53\xa8\xc5\x07\xab\x8f\x77\xe5\x9b\x16\x9f\x87\x86\xc1\x07\x08\x2b\x83\x8a\x4c\x90\xba\x32\x4f\xce\xeb\xb2\x16\x1a\x4f\xb1\xbb\xd0\x59\x34\x43\x98\xe2\x76\x4c\xba\x73\xb4\x04\xf9\xa7\x94\x86\x80\xbf\xca\x20\x5f\x30\x16\xf8\xf2\x2d\x52\x2b\x05\x06\xfb\xb4\x6f\x6e\x00\xf1\xa3\x7b\x0e\x5a\x25\x9c\x0a\x7d\x75\x0d\x82\x18\x7c\x46\x82\x0c\xdf\xe9\x21\xa3\xbf\x25\xfe\x55\x5a\x0a\xe5\x8b\x61\x65\xa6\xbc\x85\x2e\xb2\x21\xbb\x0d\x53\xd2\xe2\xd5\xfe\xad\x64\x5e\x4a\xe5\x6b\x63\x22\xe8\xb3\x80\x3e\x2f\x66\x4a\xec\x43\xa6\x4b\xd3\x8c\x45\xfa\xc3\x5b\x71\xcd\xa3\x86\x58\x07\xb8\x34\xa8\xc8\x37\x04\x77\xbf\x96\x1f\xbb\xe6\xc7\x50\x8e\x97\x6d\x2b\x5a\x84\xc8\x54\x43\x62\x9b\x97\xf7\x5a\xad\xcb\x71\x1a\x2e\x05\xdf\x96\x6d\xdf\x08\x8a\x9d\x28\x1c\xe3\x62\x1f\xa1\xae\x0a\x32\x54\x8d\x77\x52\x32\xb0\x15\x69\x4e\x80\x70\x58\xcb\xd0\x69\x8d\x2f\x64\xc6\x1f\x19\xa6\x5f\x18\xdd\xac\x7e\x8b\x21\x4d\x2e\x09\x1a\x23\xeb\x47\x54\xd4\xe0\xf4\xb1\x15\x2a\x5e\xf1\x61\x89\x5f\xc8\x90\x6c\x83\x9f\xf0\xa9\xc2\x36\xd0\xef\x23\xa2\x34\x6f\x6e\x30\x9e\x11\x3e\x0f\x66\x78\x41\xbc\x8c\x09\x51\x35\x66\x75\xa4\xde\x18\xe3\x4a\xc8\x07\xbb\x03\x1b\xad\xa2\x8a\x07\x92\x2a\x26\x33\x86\x90\x8c\x78\x18\x7c\x3d\xd1\x5f\x07\x33\xe2\xd0\x91\x62\xf6\x55\xdd\xb2\x51\x6a\xce\x6c\xc6\x0d\xf1\xce\x4e\x1f\x48\x4e\x16\x1f\xf1\x7c\x62\xc5\x5e\x4e\xa0\x21\x27\x50\xe0\xe7\x5e\x8c\xaf\x18\xf3\x52\xc1\x86\xba\x13\xaa\xe6\x4c\x0a\x71\xdc\x8e\x9c\x11\xcb\xe8\xb1\x37\x94\x3d\x8a\x59\x4e\x7d\xc9\x8f\x8f\xef\x2a\xe4\xe6\x2e\x8d\x71\x71\xc4\x57\x93\xbb\xdb\xc0\x19\xfe\xe3\x50\x13\x18\xb7\x13\x28\xf4\xd5\x7e\x0b\xaa\x88\xbb\x92\x0d\x2c\x69\x0d\x36\x34\x1d\x4b\x5a\x83\x0d\xad\x81\xe0\x7b\x05\x71\xe9\x3e\xb6\x12\xc2\x7b\x28\x3b\xb0\x94\x41\x26\xf5\x5a\x08\xdd\xb1\x25\xa9\x90\xf5\x6a\x58\x03\xdd\xf6\x40\x36\x6c\x1f\xe8\xb0\x6c\xd7\xdd\xc8\x0e\x8b\xea\x3a\xd7\x83\xec\x05\xc6\xa4\xa0\x7b\xee\xa2\x53\x31\xb2\xb3\x29\x50\x2f\xe5\x34\x92\xec\x45\xd1\x60\x2f\xb2\x9a\xbd\x30\xb4\xe8\x2d\x48\x89\x37\x34\x71\xe4\x46\x01\x78\x0d\x7a\x87\xd8\x51\xb2\xa1\xef\x15\x66\x20\xb8\xcf\xae\xe3\x41\x15\xb4\xaa\x5f\x87\xac\x1a\x30\x55\x75\x83\x00\xfe\xb3\x6c\x1b\xe4\x49\x0f\x05\x52\xc1\x4a\x6f\x04\x38\xe4\xbf\x29\x08\x0c\x27\xbd\x98\x8d\x0a\x94\x43\xa2\x3e\xad\xc0\x08\x43\x40\xc2\xe9\x05\x2b\x6a\x9b\x25\xe3\x96\x5c\x21\xb3\x97\x5a\x5d\x16\xb1\x3e\xd6\x85\xa6\x2d\xb2\x78\xcd\x4d\xd4\x5a\xe5\x56\xb7\xa6\x64\xa2\xa6\xf3\x4b\x7f\x1a\x81\x37\xda\x6a\x8b\xaf\x84\x8b\x03\x35\xd6\xe9\xe6\xc5\xb6\x6a\x3e\x49\x22\xc4\x01\x28\x6a\xf0\x37\xaa\x6f\x27\xa4\xf6\x61\xe0\x7f\x29\x14\xa4\x6e\x3e\x40\x83\x5c\xf5\x24\xcd\x2c\x47\x25\xd4\x10\xa1\xa5\x55\x79\x28\x57\x6d\x84\x59\x6b\x4b\x95\x04\x7e\x11\x6d\xc5\xfc\x86\x1b\x46\x1c\x5f\x98\x29\xc7\xdc\x7b\x62\xa8\x14\x9b\x85\x1e\x62\x98\xd6\x2d\xd9\x42\xc1\x03\x5e\x2b\x6f\x88\x39\x7f\x6f\x55\x63\x90\x85\xff\x2a\x9b\xba\x0b\x0a\x0f\x2f\x6f\xf0\x09\x57\xb8\xd6\xf0\xe5\x08\x39\xce\x60\xd1\x88\x99\xa7\xc5\x6f\x41\x75\x05\x0d\x00\x6f\x3a\x15\xe1\x29\xd9\xb5\xa5\xd3\x70\xc6\xe4\xaa\x20\xa1\xf3\x2f\x8c\x60\x57\xc8\x78\x20\xb2\x62\x17\xa0\xb6\x7c\x02\xb2\xa2\x7a\x76\xe0\x61\x0b\x14\x46\xe3\x83\x0c\x75\x5a\x89\x17\x65\x77\x90\x46\x97\x5f\xba\x5b\xe5\x20\x01\x50\x76\x9e\xae\x2d\xdb\xeb\x3e\xd2\x51\x6b\xbb\xbb\xfd\xb4\xca\xbe\x09\xa8\x04\x9d\x8d\xe4\x2c\xb3\x51\xdd\x39\x95\xf0\x5c\x4e\x42\x8c\x7d\x8c\x9d\xaa\x41\xec\x61\xfd\xba\xbb\x85\x72\x5b\x9e\xf5\x74\x71\x1c\xe4\x8e\x97\xd5\xbb\xa1\xb9\x6a\x9d\xdc\xca\x07\x13\x57\xa1\x83\xda\x04\x80\x7b\xe1\x2a\x8a\xe7\xb0\x69\xe1\xf1\x2a\x88\x4b\xd1\xc1\x59\xa3\xf9\x06\xaa\x8a\xbc\xca\xdf\xe6\x3c\x8b\x4c\x1c\xfc\x63\x5b\x66\x41\x56\x8a\x72\xfe\x61\x4f\xab\x6d\x68\x93\xaa\x01\xc5\x2b\x0c\x15\x0e\x5d\xdd\x90\x94\x3e\xe9\xe3\x69\x57\x2b\x8d\xf1\x63\xa4\x84\x63\x64\xab\x0b\x3f\x4a\x94\xa4\x18\xba\xaf\x43\xed\x12\x0d\x70\x47\xe3\x59\x75\xfe\x30\x66\x40\xa3\x07\x25\x8f\xf6\x7a\x20\x03\xdc\xd3\xc6\x4a\x4f\xcb\xaa\x17\x11\x5e\x54\x22\x25\x17\x55\x33\x59\xd5\x4c\xd1\x30\xf5\x4c\xa2\x86\xf8\x5f\xb7\x68\x68\xc0\x9a\x19\x68\xca\x0d\x9d\x57\xd4\xd2\x60\x50\xba\xb7\x97\x2f\x33\x6b\xa9\xa2\xc9\x25\x4d\xaf\xb0\xc4\x50\x6f\xe8\x8e\xdc\xdc\x4c\x01\x79\x1c\x76\x1e\xfb\x20\x41\x2f\xba\xb0\x12\xe0\xc5\x78\x7e\x88\xd6\x0c\xf5\x55\x74\x97\xda\x23\x8a\xee\x52\x7b\xa4\x91\x3e\xf4\xf0\xb9\x4f\x1a\xcd\x9d\xa9\x12\x0b\x5a\x43\x51\xee\x70\x7a\x71\x0c\x9d\x4b\xd4\x84\xc9\x78\xcf\x32\x59\x71\xd5\x91\x37\xa7\x78\xef\x51\x21\x31\x65\x31\xab\x82\xf0\x3e\x30\xb4\xb0\x71\xd4\x36\xe8\x18\x18\xd7\x26\x21\x36\xaf\x65\x62\x95\xfc\x8a\x22\xd3\x09\x32\xeb\x18\x97\xb4\x7d\x05\xc5\x3e\x3a\x50\x7f\xde\x9c\x88\x4c\xcc\x4b\xc0\x39\x0b\x40\x3a\xe6\x9d\x3f\xcd\x65\x06\xee\xa4\x41\x5f\xaf\x9a\xc9\x4b\x7c\x95\xb2\x14\x11\xc5\x56\x65\x23\x5f\x89\xe4\xa4\xaf\xcb\xcb\x57\x43\xb7\x21\x3b\x59\x46\xed\xe3\x42\x37\xb7\x4a\xe7\xf3\x92\x4b\xe3\xf1\x0c\x30\x32\x8b\xe4\xcc\x89\x53\x5e\xc0\xb9\x41\x41\x5b\xe9\x08\xb7\x32\x83\x36\xe2\xc6\x6c\x8c\xe1\x4d\x71\xe3\x49\xff\x3d\x7c\x0a\x90\x1a\x31\x2f\x0e\x6d\x0d\x52\xed\xe5\xa2\xbd\x97\xe7\x51\xd3\x5e\xe5\x62\x13\x84\x6f\x2f\x12\xb1\x05\x44\x6b\xbc\xa0\x26\x5b\xbd\x6e\x32\x71\x85\x4a\x6e\x33\x15\xd0\xaf\x99\x6a\xe0\xdb\xb5\xaa\xff\xde\xca\x0c\x51\x69\xa3\x3b\x4a\x75\x48\x2a\x61\x52\x02\x12\x5f\x9b\xb9\x45\x57\xcf\x4e\xf7\xab\xaf\xbe\xc2\x00\x7c\x63\x0c\xb4\x95\x39\xc6\x56\x38\x8b\xf6\x43\x5f\xe4\xa6\x68\x15\xab\xce\x80\x78\x06\x36\xa3\xa2\x98\xe0\xab\x8b\x5f\x17\xb6\xbe\x1d\x51\xe6\xdd\x51\xde\x15\x05\xf8\xa9\xf3\xee\x28\xef\x92\xc2\x0b\xe3\x6d\x74\x0d\x10\x17\x57\x06\x48\x76\x43\x8f\x50\x9b\x46\xa2\x16\x0e\x1a\x47\xd3\x52\x8c\x29\xd1\xc3\x98\x12\x64\x67\x8a\x16\x43\xd5\xad\x7a\xdb\x88\xfc\x67\xe8\xb2\x88\xee\x96\x7b\x19\x6a\x84\xe0\x10\xf7\x19\xb9\xab\xc5\xe8\x1c\x01\xf0\x94\xdc\x04\x4a\xc8\x50\x42\x7a\xa9\xd2\xf1\x52\xce\xf1\x50\x82\x58\xf4\x34\x18\xce\xd8\x75\xa4\xee\x34\x64\x74\x27\xd3\x1c\x5f\xb1\x05\x73\x3d\x22\xfc\x4c\x9a\x07\xd4\x4b\xd4\xeb\x06\xe0\xf9\x64\x14\x8f\xd3\x51\x8a\xbe\x19\xba\x26\xa8\x37\x55\x57\x6e\x6d\x30\xac\x3e\x1c\x69\xbc\x21\x42\x5a\x68\x96\xe6\x86\x0a\x80\x16\x2c\x47\x68\x36\x6d\xd4\x79\x05\x75\xe1\xe5\x0e\x91\x15\x90\x1a\x75\x03\x65\x2b\x93\xeb\x01\xe7\xf2\xa6\xb9\x90\x9b\x3d\x1c\x85\x78\x07\x8c\xf1\xe1\xf8\xf8\x08\x2a\x08\xd1\x15\x2e\xe4\xa1\x91\xc0\xf0\x96\x85\xd1\x66\x62\xcd\xc7\x57\x37\x37\x57\x9c\xcf\x8f\x8f\x61\x86\x4e\x61\x16\x27\x6b\x1a\x00\x9a\x7e\xe3\x13\x0f\x19\x85\x9c\xf4\x80\x91\xd0\xb3\x52\x62\xd4\x2a\x98\x26\x19\x7e\x69\x8d\x91\x74\x17\x68\x60\xb5\x43\x53\xab\x25\x3e\x9d\x01\x98\xc3\xfe\xa1\xd9\xa9\x9e\x19\x39\x23\x0c\x8d\x0d\xf9\x9a\xa1\xad\x21\xdf\xe9\x0b\x30\x70\xe3\x9c\xc1\xb7\xcc\xb0\xfa\x83\x8c\x40\xfa\x6c\x5d\xc8\xe9\xa0\xf2\xde\x1e\xa1\xd9\xc9\x19\xab\xf7\xc0\x65\x43\xad\xbb\x8d\x24\x8d\x67\x1c\xa8\xe4\x8e\xe3\x74\x49\x59\xe7\x22\x16\x85\x78\x60\x96\x60\xad\x6f\x58\xd0\x10\x8c\x47\x7b\x16\x41\xd5\xde\x96\xf4\xd9\x96\x17\x2e\xcf\x1c\x49\x84\x02\x46\x91\x2f\x3b\x34\x98\x71\x38\x46\xd9\xab\x59\x01\xba\xb8\xac\xe2\x07\x90\x97\x4a\x47\x36\xb4\x80\x9c\x94\x6a\xc4\x10\xbc\x47\x6d\x03\x9b\xcc\x15\xb8\xa3\x2b\x58\x10\x69\x58\x40\x96\x9f\x14\xbe\xfd\xa6\x56\xbf\x17\x2a\x3f\xec\x3c\x19\x3b\x70\x94\x3a\x3c\x45\x01\x50\xa6\xae\x04\xed\x3e\x72\xad\xcc\x4b\x29\x62\x67\x50\x5f\x56\x4d\x81\xf7\x6b\xc6\x69\xe8\x50\x00\xbe\xc0\xf6\x20\x33\x5e\x14\x0d\x45\xf0\xf6\x1b\x59\x6a\x24\xba\x44\x80\xbb\x21\x34\x12\x3b\x11\x2c\x15\xd1\xe1\x2e\x06\x4d\x88\x9d\x52\x1a\x73\xe9\x4c\x99\x4e\x36\x74\x08\x6d\xe8\x2c\x39\x17\x5e\x31\x55\x93\x81\x19\x97\xfb\x6d\xd4\x30\xb2\xd4\x2b\x51\xd1\x29\x4a\x86\x4e\x31\xb5\x81\x71\x33\x54\x02\x91\xe9\x8c\xb7\x57\x14\x30\x6b\x05\xa4\x26\x62\x5a\x78\x83\x56\xf9\x67\xad\xe5\x10\x3d\xc0\x7b\x11\xcc\x7e\x84\x37\x8a\x87\x1e\xde\x41\xd8\xcd\x5d\x4e\x64\xb0\x4b\x6f\xef\x5d\x8a\xaa\xb6\x76\x4d\x32\xe3\xd5\x1e\xde\xef\x6b\xbc\x5f\xf5\x89\x19\x5c\xa3\xe7\x45\x44\x89\x4a\x7e\xbb\x59\x2b\x83\xcd\x86\x8d\xc2\xf2\xa0\xa8\xda\xd4\x42\x44\x6d\x99\x56\x37\xa8\x66\xb6\x9e\x5a\xf8\xea\x1b\x7d\x7b\x6f\xd2\x0c\x03\x57\x23\xd3\x43\x82\x5a\x5c\x43\xa3\xbd\x77\x87\xa9\x8d\xaa\x5c\x93\xc8\x00\x82\x0d\xc8\x90\x9e\x26\x6f\x0c\x79\xfd\xfd\xab\x8b\xd7\x8c\xa9\x05\x86\x9c\x52\x3c\x69\x1c\xf1\x5f\xee\x5f\xe2\x07\x82\x94\x2e\xf5\x32\x43\x7e\xb9\xd2\x8d\x5a\xde\x18\x43\xc1\x78\xd2\x70\xd0\x76\x3e\x1e\xe8\x39\xbe\xcc\xb7\x6c\x8e\xaf\x73\xf3\x4a\xb7\x6f\x5a\x94\xc3\x16\xe8\xa8\x13\xba\xd1\x08\x0e\x42\x21\xa9\x1c\x2c\x4a\x5e\x71\x1e\xa5\x21\x71\x37\xdf\x91\x6b\x9c\x87\x57\x85\x8f\x2a\xed\x20\xd2\x75\xb0\xae\x65\x0f\x1d\x00\xfb\x36\x93\x32\x73\xe4\x16\x29\xa0\x2f\x7c\xd1\x2e\x5a\xd8\xa3\x12\xbb\x13\x99\x02\xe5\xe8\x93\x5c\xda\x1e\x88\x71\x31\xa1\x4b\xe1\xfc\xa9\x68\x84\x8a\xf9\xb5\xb5\x94\x48\x06\x4b\x9f\xc9\x49\xe3\xcd\xb2\x7d\x6c\x4b\xd1\xc9\x26\xbd\xf7\xcf\x1e\xcc\x94\x56\xca\x24\x4b\x25\xa9\x80\x71\x27\xd4\x3d\x12\xf8\x88\x5c\xa3\x1b\x7e\x2c\x51\x53\xe8\x2a\x8f\x4d\x75\x2b\x64\x24\x2f\x18\x05\x46\x7d\x5a\x56\x03\x8d\xc6\x29\xce\x28\x9a\xc9\x49\xe1\x04\x85\x03\x88\x28\xcc\x28\x72\xe6\x50\x02\x0e\xc4\x22\x4e\x53\xb2\x1d\xc3\xa2\x78\x98\x90\xc2\xc5\x9b\xd1\x0c\x89\x6f\x63\x62\x26\x1f\xa8\x88\x7f\x97\x56\x52\x56\x58\xf4\x12\xdb\x49\x6e\x19\x56\x77\x67\x56\x6a\x4b\xe5\xbc\xf5\xd7\x86\xe9\xe1\x4f\x7b\x33\x49\x12\x66\xba\x73\xb8\x7f\xbf\x7a\xdc\x93\x74\x07\xde\x0b\x7c\x9a\x90\xad\x15\x5d\xb3\x27\x4d\x16\x6c\x38\xa1\x57\x22\xcb\x05\x79\x7c\x14\xfb\x5f\xe5\x3d\x99\x3c\x40\x71\x95\xbc\xd0\x12\x6a\x4a\x3d\x32\x2f\x07\x12\xc7\xd6\x97\xf9\xe2\x4a\xd2\xe7\x82\x3e\xef\x2d\x66\x4d\xbf\x06\xdd\xcb\x28\x17\x21\x05\x41\xa6\x90\xe0\x5e\x75\x3b\x22\x12\xfa\x64\xf2\x62\x35\x65\x72\x3f\x18\xa3\xaf\x59\x3f\xab\x11\x01\xe4\xf0\xe0\xc7\xc3\xc9\x4f\x91\xff\x0f\xfa\x8e\x66\x93\x1f\x4a\xff\xa7\x4a\xd1\x93\xca\xab\x50\x19\xb9\x96\x05\x74\x5d\x43\x02\x2f\x6b\x0c\x45\x63\x70\x91\xc6\x4a\xa7\xc8\x57\x13\x4a\x65\x41\xd5\xe3\x7d\x9f\xf3\x3a\x82\x15\xe6\x87\xf9\x99\xa7\xeb\x20\x32\x62\x09\x16\xf7\xc4\xb8\x4a\x60\x0d\x90\x17\x7e\x55\xae\x2f\x45\xa6\x82\x8e\x25\x58\x0b\x9d\xae\x83\xcd\xec\x55\x82\x91\x2e\xa8\x60\x51\x15\x7c\x83\x4a\xa7\x43\xa5\x23\xcd\xde\xda\x86\xf5\x86\xb0\xbe\x29\xa9\xeb\x61\x1c\xac\x37\x9f\xd6\x68\xa6\x1b\x45\x87\x51\xb3\xae\x4f\x2b\x2e\x74\x71\x81\xc5\x8b\x28\x7c\x9b\x1f\x9a\xb1\x3f\xe4\xb9\xd7\x79\xbe\x4d\xb3\x75\x60\x4c\xbe\x89\xe8\xbe\xd0\x98\x0f\x33\x27\xb0\xad\x0f\xd5\xf7\x97\x8a\x6a\x87\x91\xf3\x70\xbc\xe9\x66\xc7\xf7\xad\x6e\x8c\xfd\x77\xdb\x0c\xb2\xf7\x67\x74\x9f\x40\x8b\xa6\xb6\xa3\x7e\x69\x09\xe0\xc5\x98\x1a\x14\x76\xe1\x0c\x77\x8c\x1a\xff\x6a\xd6\x48\x80\x0e\x00\xce\x6f\xf2\x33\x5e\xab\x66\x64\xfe\x4d\x73\x92\xe4\x2d\x2f\x63\x65\x0c\xfa\x5a\xf5\x49\x18\x80\x18\xa5\x81\xf4\x59\xd6\x31\x44\xd0\x34\x60\xa0\x24\xe1\x12\x3c\x19\x31\x2b\x8a\x8a\x7b\x87\x9a\x10\x48\x17\xbd\xac\x8a\x86\xd5\x1d\x3c\x1a\xf3\x68\x52\x3a\xd0\x8c\xdf\x3d\xd1\x2f\x8f\x7c\x54\xd7\x93\xa8\x13\xde\x86\x36\xc3\xd6\x78\x0d\xd3\xf0\xb5\x57\xda\x4e\x49\x3a\x43\x6e\x34\x8c\xef\x94\xe2\x76\x1f\x51\xf2\x70\x86\x16\xcc\x86\x78\x78\x7f\x86\x71\x36\x75\x38\xb6\x80\xa9\x39\x30\x5d\x64\x5a\x14\x9a\xca\x21\xbd\x4e\x14\xcc\x88\x42\x69\x6b\x26\xdd\x44\x4b\x7d\x3d\x29\xeb\xe4\x1d\x34\x39\x9e\x3e\x9d\xe9\xe0\x35\xd0\xe2\x82\xb6\xd9\xeb\x4c\x2c\xa2\x6d\x4d\x11\xab\x6b\x65\xe8\x62\xcd\x4c\x5e\x09\x56\x09\xee\xa7\x4f\x66\x64\xbd\xf7\x64\xc6\x3b\xdd\x8e\xfb\x75\x64\x29\x25\x1d\xe4\x1c\xd2\xa5\x6b\xd8\x04\xef\x2c\x3a\x4c\xd4\x2d\x40\x3f\xb4\xca\xe4\xa0\x52\x5c\x54\xb5\xa0\x59\x22\x3c\xef\xd6\x97\x69\x7c\x7b\xdb\x6e\xee\x77\xe4\x24\x9e\xce\xf0\xf2\x78\x52\xe7\x54\x7a\x18\x49\x83\xf3\x0e\x93\x7d\xa2\xbe\xb8\xd0\x89\x51\x3d\xbb\xaa\x27\xa6\x85\xff\xd7\x06\x14\xf4\x0e\x6d\x9a\xc4\xd8\x32\x6e\xb7\x3f\x30\xca\xfe\xde\xa0\x88\xbe\x46\x62\x6d\x58\xe3\xfa\x04\x8d\x17\x77\xb1\xd2\x04\x5f\xe6\x96\xf0\x20\x8b\x39\xc3\x85\x9e\xe1\x42\xce\xb0\xed\x3e\x70\xad\x8e\xe8\x1c\x61\x70\x08\xd4\x7a\x39\x56\xe7\x4b\x5c\x32\x53\xe6\xf9\xaf\xc3\xf8\xa2\x16\x3f\x2a\xb7\x03\xec\x7b\x7f\x9c\x4c\xfa\x3e\xd4\xe5\xd5\xc3\xa1\x7b\x83\x30\x72\x53\x1d\xb3\xa5\xb0\x0f\x23\x05\x55\x93\x36\x3d\x52\xb5\xc8\x57\x2f\x69\x84\x58\x36\x28\x5f\x0a\x01\x53\x5d\x91\x94\xee\x21\x91\xc2\x20\x7d\x12\x1d\x54\x14\x4b\xb0\xf4\xb3\xd0\x89\x20\xbf\x29\x60\x1b\xd0\x82\x80\xca\x59\x56\xd6\x44\x31\x52\xf6\x5a\x62\x2c\x1a\x82\xdd\x69\xf7\x32\xc8\x0d\x58\x29\xee\x45\x34\xae\xa8\x6b\xce\xcc\x9a\x0a\xac\xa9\x09\x75\x35\x31\x0a\x20\x4d\x67\x65\x72\xfa\xfc\x6d\xed\xb6\x52\x55\x87\x4e\x71\xaa\xab\x40\x8d\xa5\x58\x5f\x0b\x2d\xe8\x50\x25\x00\xe7\xb2\xea\x3a\x83\x44\xfa\x8b\xa9\x48\x11\xc6\x6e\x2d\x31\x46\x14\xcb\x0d\xa8\x54\x5a\x21\x9e\x33\x5e\x7c\x39\x98\x0c\x7d\x72\x56\x8e\xf2\x6f\xa3\x24\x02\x04\x98\x7b\xb1\x34\xec\x16\xca\x3b\x22\x1f\xc7\xa3\xd8\x75\x2b\x26\x7e\x45\xb1\x00\x56\xa3\x15\x7c\x53\x77\x2c\x44\x56\x6c\x3b\x2b\x7b\x64\xbc\xaa\x23\x47\xe2\x10\xe3\x2b\xd6\x74\x9a\x8f\x8c\xca\x16\x40\x05\xad\xc6\xfd\xd1\xca\xf3\xda\xd5\x61\xa6\x18\x38\xbf\x74\x1a\xcf\x4e\x03\xea\x84\x8a\x46\xa0\x95\x4f\x90\x84\x31\x08\xc6\xe1\x28\x87\xe2\xa3\x14\xed\x00\x88\x90\x23\x45\x78\xa5\x72\x53\x33\xd8\x46\x9a\x5a\xf7\x77\xd4\x5e\x60\xad\x07\x3c\x8b\x47\xfb\x76\x6b\x93\x82\x9f\xc5\x7e\x47\xd7\x02\x07\xb2\xd8\x6d\x44\xba\x78\x20\xb1\x50\x0d\x49\xb4\x13\x45\x56\x91\xa9\x70\xb2\xbb\x03\x96\xf4\xd4\x82\x02\xb9\xa9\xfd\x43\x42\x2e\x90\x92\x18\x08\x6f\x30\xac\x05\xcc\x18\x0c\x88\x7b\xc6\x47\x5a\xd0\xfb\x18\x86\xa4\x17\x59\x21\x31\x0d\x2e\xec\x70\x20\x5f\x27\x28\xeb\xf4\xd1\x66\x07\x26\xe1\x0e\x2c\x8f\x50\x83\xd2\x90\x16\x56\xc8\x1e\xf0\x7b\xca\xcc\x63\xfc\x5d\x85\x5b\x6a\xd5\xc7\x81\x93\x2d\x91\xcc\x8f\x91\x0c\x4a\x07\xbf\x83\x9e\x21\x9c\xff\x8c\xf3\x9e\x7d\x1e\xf9\x58\x9d\x72\x71\xd7\x29\xcf\x88\xc4\xca\xda\x67\x29\x31\x49\x2c\x81\x43\x56\x79\x0e\xee\x96\x9a\xc4\x12\x4c\xd2\x63\x59\xeb\xb0\x9b\x91\x01\x55\x9f\xfe\x92\x15\x53\x66\xb1\xdd\xa4\x49\x23\x3a\x50\x7a\xcf\xb0\xe4\x4c\xe2\xad\xd2\xd5\x5c\xd6\x60\x47\x98\x43\x2b\xb0\xf2\x3b\xd6\xf7\xbb\xe6\xfa\xca\xd5\xcd\x1a\xab\xfb\x63\xf4\x31\x93\xdd\x62\x52\x43\x78\x8f\x20\xfe\x5d\xa6\xa7\x3f\x47\x7b\x21\xb3\x6a\x58\x1a\x4d\x2d\x40\xf6\x4b\x81\x88\x16\x30\xb7\xa2\x14\x49\x22\x53\x4c\x80\x1a\xc1\x04\xa6\x6e\x6c\xc7\x60\xac\xfd\x1e\xd0\x62\xde\xc0\xfe\x52\xeb\x08\x1b\x71\xa3\x1b\x51\x57\xf7\x14\x56\x77\xe8\xe0\x1e\x14\xae\x00\x3e\x53\xed\x55\x14\xc2\x57\x12\x81\xbd\x3d\x97\xdd\x0f\x20\x92\x51\x22\xcd\x9e\xd0\xff\x2a\x1e\x99\x9a\x72\xf2\x01\xc8\x6a\x49\x67\x7a\x4a\xac\xe4\x2a\xc8\xf1\xf6\x41\xe4\x15\x6f\x6e\xe4\x78\x23\x3d\xde\xa8\xa6\xa3\xc4\x14\xe6\x63\x56\x85\x8b\x2a\xba\x81\x8d\xd1\x9b\x3e\x83\x17\x8a\x80\xaf\x40\x16\xb9\xe0\x1f\x0a\x5f\x13\xe4\x81\x5f\x65\xa4\x48\x67\x51\x55\xe9\x6b\xd4\x68\x1b\xc7\x02\xfd\x8d\x3e\x1c\x34\xda\x0d\xb8\xa2\xb3\x43\xa0\x16\x29\xba\x4b\x59\x79\x25\x6b\x10\x69\x85\xdc\x0a\xdd\x18\x85\xe2\x7d\x1b\x1d\x6a\x43\xbb\x67\xd5\x62\x0a\xb7\xbe\x30\x13\x45\x21\xa1\x9b\x3b\x01\x64\xcd\xed\x76\x8f\x65\xaf\xda\xfd\xae\x3a\x4d\x9c\xc5\xff\x7a\xcf\x15\xf2\x94\xe6\x8a\x6a\x18\xf6\x5d\xe3\xb8\xe9\x37\x47\x62\x14\xa5\x41\xb9\x58\xc8\x6b\x96\x71\x72\xaa\x71\x7f\xb8\xc6\x78\xee\x1c\xf3\xd7\x41\x32\x6f\x8e\x96\x85\xf7\x8c\x77\xcf\xb8\xfa\xf4\x04\x52\x42\x1e\x68\x6b\x08\x9c\x82\xd3\x52\x5e\x85\x5b\x4e\x63\x0f\x1e\x16\xf8\xd1\x8b\x31\x48\x87\xb5\xf0\x72\x73\xc8\x81\x3b\xc4\xd8\xb3\xc6\x90\x73\x77\xe5\x84\xa8\x0d\x8b\xd1\x57\xb1\x16\xaa\xa4\x7c\x85\xde\x34\x81\x6d\x0e\x90\x3a\x7f\xff\x72\xfe\xbf\x1d\x9f\x41\x26\x1d\x1e\x6a\x6b\xac\xe6\xce\x80\xfc\xc6\xc2\x06\x48\xb2\xe0\xb2\x1e\x9a\x0a\xa3\x98\x9a\x15\x7b\x6f\xdd\xef\x9f\x1b\x4c\x3d\x00\xda\xd3\x2a\x43\x3b\xe8\x5c\x95\x05\x88\x44\x00\x1f\xd2\x5e\x4e\xdc\x85\x22\x7e\xd6\xe2\x05\x0d\x02\x9b\xa6\x14\x69\x0b\xa2\x47\x96\x66\x6c\xfa\x44\xab\x1a\xa1\xa2\x02\xad\xc0\xce\x46\x76\x30\x05\xd2\x65\x86\x24\xd1\xbb\x32\x48\x0a\xbc\x82\x32\x61\xa2\x97\x1d\xb2\x86\x4a\x4d\xd9\x0c\x19\x51\x93\x61\xdb\x84\xc2\x1a\xf5\xfd\x62\x5a\xcb\xcf\x02\xa6\xa3\x29\x56\xe2\xa8\xcf\xe3\x0e\xb4\xb0\x29\xb3\xbb\x8b\x28\x2e\x04\xd0\xc8\xb6\x74\xe9\x45\xdb\x62\x25\x79\x4a\x3f\x57\xf2\x14\x29\xc9\x53\x5a\x8d\x36\x3f\x30\xd3\x01\x66\x90\x84\x4e\x7b\xc9\x6a\x5c\x86\x44\x0c\x99\x26\xfd\xb4\xa0\x5b\xff\xc7\x62\x32\xc5\xfb\x73\xe0\x1f\x4a\xab\x81\x4d\x93\x53\xeb\x4b\xf9\xf6\xa9\x76\xb3\xc2\xcf\xf8\xd1\x90\x76\xcf\xee\x21\xfc\xd4\xba\xde\x62\xd7\x0d\xbb\x98\xf4\x5e\x4a\x4f\x4c\x0f\xd9\x14\xa6\xa6\x50\x25\x72\x28\x68\xa5\xdd\x88\x05\x59\x9a\x51\xe5\xb5\x0a\x42\x45\xb7\x4c\xab\x0f\x68\x17\xa1\x6f\x67\x18\xb5\x08\xa9\x4f\xe3\xcd\x60\xdb\x90\xc8\x07\x79\xb4\x69\x5d\xed\x4c\x4a\xd9\x64\x1c\x68\xa0\x95\x3e\x63\x71\x4d\x11\x5d\x76\xc7\xda\x99\x56\x99\xa2\x5a\x3b\x34\xb3\xe6\x48\x3b\xc1\xc2\xf9\x45\x2f\x72\x31\x2e\x3c\x2b\xdc\x41\x2f\x9a\xdd\x43\xb0\x55\x2b\xd0\x12\xba\x89\xf6\x39\x34\x29\x2b\x31\xa6\xeb\x75\x4d\x31\xb3\xb0\x67\xbe\x3c\x3f\xb7\x77\x52\x38\x1f\x39\x27\x48\x25\x24\x9f\x49\x7a\x50\xc0\x61\x3a\x0a\xe2\x73\x77\xfa\x34\xa1\x7d\x8d\x51\x1d\x71\xe7\xde\x09\xaf\x84\xde\xb9\xa6\x25\x56\xba\x6f\xe4\x21\xb3\xbb\xc9\x6d\xa5\x1e\x55\x1c\x08\x5a\x9d\xa8\xa9\x28\xda\x63\xbb\x7f\x77\x49\xb2\x1b\x57\x96\x66\xa6\xf8\x04\x99\x6d\xf1\x39\x32\xdb\xe2\xae\x31\xd3\xf8\x1a\x97\xea\x94\x69\x9d\x6a\x38\x10\x44\x69\x43\x7f\x15\x25\x89\xc8\xe4\x75\x63\x06\xb8\x6d\xe6\x49\xcb\x62\x3f\x4f\xd0\xcc\x43\x01\xb2\x9e\x35\x63\x3e\x85\xcd\x2c\x22\x99\xb7\x32\xc4\x8d\x0c\x78\xe9\xff\x26\x68\xe7\xc9\xd3\x5a\x6a\xa5\xe4\x54\x09\x3a\x6b\x15\x1e\x40\x87\xcc\x76\xa4\x58\x6a\x60\x18\x6d\xa5\xb5\x2f\xbb\x96\x56\x56\x71\x36\x49\xf9\xa5\xe2\x6f\x02\x09\x6e\x95\x93\xcc\x47\xdb\x2a\xc3\xc6\xc2\x89\x5c\x54\xe0\x63\xa8\x30\x07\x43\x42\x79\x81\x13\x21\x19\x88\x5e\x0f\x21\x05\x29\x1b\xcc\x5c\x0c\xd0\x56\xc8\x2f\x4b\x8a\xbd\xe3\x62\xec\x27\x72\x39\x07\x5a\x15\x63\x3f\x49\xab\x8f\x39\x5f\x79\x39\x5b\xf3\xa5\xb7\x60\x3b\x3e\x77\xe6\xee\xda\x59\xb3\x33\x2e\xbc\x8c\x6d\x79\xee\x2c\xbd\x95\xb3\x60\x97\xdc\xea\x8f\xd7\x13\x6f\xe0\x0f\xcc\x78\xbb\x67\xce\x99\xb3\xf3\xb6\xce\x16\x7d\xd7\xad\xad\xb3\xf6\xe6\xce\xa5\xdd\xc3\x8b\x62\x2c\xf8\x3c\xf7\xd6\xf2\xf5\x9c\x12\x5d\x95\xf8\x56\x26\xba\x2a\xf1\x05\xbf\xf0\x36\xec\x19\xbf\xf6\xae\xd8\x2b\x7e\x0e\xcf\xcf\xf9\x5b\xef\x4a\x83\xcf\x17\xce\x0b\xf7\x99\xf3\x6c\xfc\xca\x79\xe5\x3e\x77\x9e\xd3\xed\xfd\xe7\xd0\xc0\x5b\x38\x6e\xd3\x0b\x2f\x64\xd7\x48\x0b\x4d\x2f\x1c\xd1\x3b\x63\xd7\xf8\x77\x66\x5a\xc0\xb5\x4f\x95\x09\x7f\x70\xff\xc5\xf5\x6d\x9e\xb0\x89\xf1\x6a\x81\x00\x65\xd2\x3a\x44\x26\x4c\xef\x14\x69\xaf\xe9\x8c\xcc\x9b\x70\x52\xb5\xb2\x6a\xc9\x5f\x10\xc6\xdd\xe0\x6f\x86\x0a\xb7\xc5\xe9\x0a\x99\xa4\x30\x88\x63\x79\xe1\x08\xc6\x3f\x5a\x40\x49\x7b\xa2\x82\xc3\x4c\xdd\xa5\x99\x8c\xc6\x59\xee\xa6\xf5\x65\x66\xfb\x79\xed\xa6\x0c\x7d\xa4\xe6\x2b\xa2\xa3\x4e\xc3\xa4\x58\x1f\xed\xb8\x92\x16\xcb\x70\x0f\x92\xbe\x79\x86\x4a\xd3\x57\x68\x73\xf2\x0a\xe3\x8c\x2d\x51\x67\x1a\x75\xdf\x0a\x0c\x4c\xd0\x7d\x52\x5b\x5d\x6c\x3f\x1d\x95\x14\x84\x48\x8a\xee\xee\xd3\xf5\x4b\x05\x49\x28\x01\x62\x89\x45\x94\x88\x83\xfa\xac\x43\xc2\x03\x2a\x58\xde\xd2\x5d\x2d\x9f\xa9\x96\x4a\x79\x2d\xe1\xe2\x5a\xc2\x95\x4c\xe0\x9c\xf9\xc0\x5a\xbe\x88\x89\x85\x47\xbf\x83\x65\x6a\xd3\x74\x40\x4b\x29\x41\x3a\x91\x7c\xce\x0d\x62\xd4\xc5\xa0\x01\xd5\x96\x4d\x98\x22\x57\xe5\xa5\xa9\x2a\xda\x98\x39\x28\xbb\xdb\xf9\xcb\xb8\x7d\xf4\x2a\x6d\xda\xa7\xd2\x0d\xc6\xe6\xad\xf0\xa4\x11\x9a\xa2\x12\x83\xfc\x4d\x50\x89\x51\xd9\xab\x2a\x75\x6f\xe7\xfb\x0e\x23\x35\x87\x8b\x2b\x30\x2d\x66\x78\x41\x06\x9e\xf7\xce\x6f\xb2\x40\xcd\xab\xa3\xd5\x9d\x51\x4a\xea\x46\x0c\xe5\x43\xd5\xaf\xf5\xff\x46\xbf\x7e\xc3\x7e\xa9\x1e\x01\x84\xab\x5a\xac\x54\x30\x07\x1a\xde\xfd\xaf\x4d\x48\x35\x15\xfb\xf3\x70\xa8\xe1\xb3\xb4\x65\xdb\xa4\x98\xb4\x87\x13\x5a\x36\x9f\x20\xed\x05\x3c\x2a\xb9\xed\x80\xa1\x57\xde\x75\xda\xd6\x6c\x6d\xef\xa8\xe7\xa4\xaa\xa7\x4f\xf5\x58\x4a\x94\x92\xd0\x1a\x24\x54\xd5\xd4\xa0\x87\x87\xb3\x99\xbe\xd5\x23\x41\x62\x03\x86\x69\x37\x5b\xba\xfc\xc4\x96\x92\x03\xbd\xbc\x48\x2b\x99\xb2\x06\x72\xa7\x03\x8c\x2e\x25\x9f\x8f\x78\x1d\x3d\x61\xff\x9b\x3b\xb4\xcd\x1d\x5d\x7b\x71\xb6\xf2\xc1\x7a\x75\x3a\xac\x0a\x19\x4d\xf2\x7e\x19\x3a\x0e\xbd\x32\x30\x9e\xcb\x48\xde\x19\x8f\x16\x33\x9d\x9f\x3b\xae\x85\x57\x62\x7a\x43\x07\xef\xca\xec\x9d\xd8\x74\x7d\xaf\x85\xf7\x63\xd2\xb7\x41\xf5\x0d\xb3\xa9\x87\x01\xc9\xb4\xc8\xbd\x0d\x95\x9a\xba\xe9\xf1\x00\x2f\x6a\x2b\x94\x69\x36\x7a\x7a\x84\xae\x8b\x2e\x12\x9d\xe7\x50\x25\x32\xd9\x2e\x36\xa2\x9a\x40\xce\xdb\xc5\x06\xaa\x26\x31\x72\x79\x9d\x4e\x5d\x08\xaa\xf4\x46\xf3\x46\xc4\xe3\xe1\x28\xae\xa2\x4e\xa0\x0e\x00\xdb\xb4\x55\xf3\xd8\x19\xc0\x5d\xd8\x83\xf3\xcf\x6c\xe1\xb6\x56\x8a\xe6\x54\xd9\xc8\x9c\x2e\xe0\xfd\x83\xf6\x74\xd1\xb7\x7a\xba\x72\x5d\x5b\x8e\xb5\x69\x1a\xcd\xb0\x5e\x4c\xf7\xc3\x49\x90\xac\x90\xc2\x17\x90\x25\x53\x52\x93\x2b\x78\x13\x23\x6a\x6f\x6a\x81\x61\x70\x1a\x8e\xec\xda\x50\x07\xcd\x58\x98\xf2\xa2\x98\x96\x8e\x95\xea\x78\xdc\x00\x6a\xf0\x4d\x87\xe4\x9e\x1d\x32\x85\x3f\x4f\x55\x98\x82\x7a\x3b\xef\x6f\xb6\x82\xdc\xeb\xf7\xc1\x42\x26\x37\x5a\x26\x37\xda\xb4\x64\xf8\x1f\x41\x82\x01\x41\x02\xec\xfb\x14\xba\x09\xff\x11\xdc\xc0\xb0\x27\x25\x81\x91\x88\xe1\xad\xdd\xaf\x52\xeb\x79\x8c\x01\x6f\xf0\x93\x7c\x09\x6c\x15\x17\x45\x9f\x56\x24\xfa\x6d\x02\x38\xe8\xcc\x25\xa1\x0c\xf0\xad\x5a\x39\xad\x14\x43\x12\xb2\x06\xd5\xe7\x40\x7f\x46\xa3\xaa\xe7\xa9\x15\x52\xfc\xa4\x5a\xa1\x26\x7d\xb0\xc2\xfa\x02\x71\xbc\xff\xe6\x00\x94\x7a\xbb\x37\x3d\x0f\x9b\xd3\x63\x1a\x2b\x4e\xd1\xac\x0d\x3d\x88\xeb\xa9\x8a\xb8\x5c\x48\xf8\x8b\xb1\x47\x4e\x4f\xd0\x58\x91\x0c\xb1\x94\x91\x90\x54\xe6\xa6\xfa\x65\xa0\x9c\x58\x94\x57\x8b\x9c\x93\x48\x6e\x2b\x3d\x5b\x36\xc3\x28\xf6\x58\x5b\x69\xd4\xa6\x47\xde\xaa\xb7\x35\x4f\x85\x9e\x10\x41\x91\x86\x6a\xf1\xf6\xfe\xd0\x5f\xa4\x56\x3b\x66\xef\xde\xe0\x4a\xf7\xa1\x56\x32\x4e\xe5\x00\x1f\xe2\xce\x84\x2e\x7d\x59\xce\x74\x9b\x42\xad\x8d\x7a\xd1\x43\x2c\xf8\xf4\xf0\xfa\x57\xc3\x8b\x1a\x75\xb5\x46\x22\x0e\xaf\xb8\xd0\x03\x2c\x1a\x2b\x5e\x1c\x18\xe0\xb3\xb4\x69\x99\xa8\xe5\x01\xd2\x28\xc2\xf0\x78\x52\xe7\x51\x1f\x49\xe9\x81\x12\x48\x6f\x93\x2a\x0a\x3f\x79\x9e\x50\x18\x59\xf2\x4d\x8a\xab\xed\x1a\xe3\x49\x89\x7b\x82\x70\x31\x2f\x1c\x49\x39\xe0\x49\x77\xac\xc8\x2d\xd1\xba\x18\xb7\x29\xa5\x0c\xaa\x94\x14\x52\x6a\x71\x2a\x9d\x52\xc3\x4e\x36\xfd\x98\x1f\xb8\x8b\x17\xfe\x39\x68\x58\x00\x4f\x27\xf8\x74\x62\xde\xb0\x90\xd6\xee\x3e\xf2\x04\x3c\xa7\xf9\x7f\x16\xa3\xe1\x8f\x5a\x0c\x78\x11\xd5\xcb\x2b\x33\xe5\x95\x99\xf2\xdc\x4c\x79\x8e\x29\xe6\x25\x0a\x8d\x8e\xd2\xee\x53\x57\x7f\xca\x5b\x03\x08\x19\x1b\x96\xb2\xf7\x10\x23\xe4\x16\x23\x35\x2a\x0d\xf4\x46\xb3\x0a\xed\xa0\xb3\x42\xc3\xb1\x08\xa6\x10\x68\x55\x4c\x21\x48\x09\x70\xc3\x25\x73\x89\xde\xb0\x02\x83\x98\x2d\x35\xc3\x3f\xbe\xdc\xdf\xf3\xb4\xfc\x64\x54\x48\xbd\x83\x75\xf7\x4c\x70\x4c\x8b\x4d\x00\xb9\xc0\xb6\x08\x16\xc3\x1f\x6c\x8a\x4c\x34\x28\xa4\x72\x0a\x5f\x79\x4a\x5f\x79\xdf\x07\x52\x1f\x3f\xf4\xd0\x69\x56\x7e\x84\x47\xbc\xbb\x8a\x5c\x53\x58\x39\xfe\x8a\x5c\x35\x4e\x9c\xc2\xe0\x4c\xd1\xe9\x00\x6b\x29\x1d\xc1\x54\x4d\xa5\x93\xa9\x18\x3e\x01\x57\xdd\xe0\xd0\x0f\x72\x1a\xaa\xa4\x6f\x21\x83\xbc\xf6\x4c\x4e\xb6\x21\x9e\x0b\x3c\xf9\x15\x56\xe2\xb1\x63\x0d\x5c\xac\xdc\xc1\x3f\xb5\xfd\xe2\xb4\xbc\xb9\xe9\x53\xab\x0e\x3e\xd5\xe8\xc3\x30\x06\xfc\xa5\x49\x91\xdf\x49\x11\xd1\xc4\x9a\x97\x42\x1c\x9a\x68\x2e\xcd\x54\x6b\x44\x57\x22\x08\x28\xc8\x62\x95\x49\xbb\x0d\x94\x29\xe3\x26\x7a\x13\x50\x04\x06\x6e\xdc\xa4\x83\x57\x8d\xe3\x39\x32\xae\xdb\xa9\xc5\xc9\x86\xa9\xea\x37\xf7\xb1\xad\x78\xa5\xf7\x55\xcd\xb6\x06\xc0\xb6\xae\x6d\x64\x25\x73\x16\xc3\xf3\xdc\xb0\x02\xc5\xaf\xc0\x5b\xd4\x0c\xad\xba\x5b\x19\x37\xcb\x1c\xff\xac\xf1\xcf\x0e\x07\x75\x56\x93\x68\x5b\xc5\xd9\x5e\xe2\x6f\x89\xbc\xbd\xe0\x9c\x67\x93\x7d\xa1\xce\xf2\xd6\x27\xe6\x17\xf8\x71\x72\x20\x3e\x90\x65\x43\x59\x68\xdf\xef\x4e\xcf\x46\x76\x6a\xb0\xbb\x28\xa2\xd8\x41\xfb\xf6\x04\x7a\x2d\xd7\x73\xc9\xdd\xad\x99\x03\x12\xf1\x7e\xd3\xcb\xd6\xb7\x19\xdd\x22\x2d\x59\xea\x8b\x76\x7e\xf7\x7a\x2f\xb7\xed\xcf\x6b\x9e\x1a\x26\xb0\x1e\x7d\x35\xfd\x75\x06\x4c\xd7\xc1\xdb\x27\x57\x77\x33\xd6\xcf\x70\x3f\xf4\x61\x3b\x00\x87\x9d\x22\x87\x1d\x20\x87\x8d\x11\xdc\x91\xa5\x8c\x39\xc6\xe9\x46\xbc\xbd\xf8\xcf\x78\x6d\x93\x75\xde\xf6\x3f\x9f\x43\xdf\x0e\x3e\x8f\x45\xff\xff\x3e\x83\xad\x07\x78\x25\x4b\x45\x54\xe8\x13\x7b\x67\xf2\xf4\xbb\x4f\xec\x9d\xd9\xce\x67\x09\x10\x52\x59\x30\xfd\x8f\x04\x08\xe1\x61\x01\x42\x80\x02\x84\xe0\x90\x00\x01\x56\x5b\x9f\xbb\x9b\x1b\x5c\xf8\xa0\x1b\xc6\x69\x2e\xe6\x13\x38\xa3\x3e\xee\x02\xe8\x4b\xf8\xd9\x22\x86\x85\x1c\xc4\xa2\x21\x62\x78\x9d\xb6\x2c\xfc\x9b\x82\xcf\x5f\x8d\xe4\xa9\x72\x6b\x32\x83\xae\xa4\x87\x8c\x25\x6a\xaf\x8d\xc3\x17\xe6\xb6\x41\x9b\xda\xcf\xd3\x26\x70\x6b\xc0\x35\xf3\xaa\xd8\x6f\x0d\x59\xef\xe3\x87\x86\x4d\x7e\xfd\xbd\x23\x03\xa7\x1b\x82\x90\x9f\xd2\x43\xe1\x61\x92\xde\xbb\x8a\x66\xea\x9c\xf5\x81\xe8\x2c\xdc\xce\x33\xfa\x2b\x9f\x1f\xf4\x1f\x0c\xd8\xe0\x01\xa6\x78\x77\x27\x15\x4d\xa1\xcb\x0f\xf7\xcd\x0a\x13\x23\xb4\x8d\x82\x29\x99\x26\x18\x8a\x83\x0c\xf4\x8a\x6e\x00\x99\xae\x04\x7d\xf0\x3c\x14\x7c\x97\x49\x31\x51\xde\x68\x46\xba\xaf\x3f\xc9\xf2\x4c\x27\xb8\x78\xa9\xbd\xe8\xc2\xa6\x49\xf0\x7a\x00\xf9\x20\xb7\x6a\x56\x6e\x0a\x03\x86\xc9\x10\xc8\x17\xf3\xa0\x08\x2e\x2e\x98\x52\xd0\x34\xc3\x5f\xa4\x2d\x7f\xa1\x1d\xa0\x05\xf6\x3a\x26\x1f\xfc\x60\x2d\xf2\x4d\x10\x0a\xf2\x99\x8e\xe6\xe8\xe2\x64\x18\x2e\xa7\xfb\x0e\x72\xd1\x9c\x70\x5c\x55\x50\x03\xaf\x3f\x21\xeb\x81\x73\x21\x8c\x4b\x31\xe5\x95\xb1\xc9\x34\x9a\x01\x42\xec\x16\xd7\x42\x24\x64\x26\x02\x84\x04\x30\x0c\x34\x24\x8c\x06\x50\x0d\x06\xb3\xc3\x48\x90\xe0\xc8\xe8\xc2\x4e\xe3\x54\x1c\xaa\x45\x34\x1d\xc9\x7f\x6b\x1c\x05\x79\xf9\x18\x79\x4a\x74\x9a\x17\x42\xcb\x48\x47\x62\x5b\x3c\x4f\x13\x52\xe6\x24\x66\xe0\xff\x03\x95\x4c\x3a\x17\x17\x14\x00\x27\xc2\x2c\x17\x17\x70\x86\x1b\x1f\x3a\x6e\xe2\xc2\x17\x63\x07\x7d\x71\x50\xac\x2f\xd0\xc2\x17\x7f\xf8\x07\xb9\xea\x7e\x9f\xd1\x46\xf1\xfb\xb7\xa8\x39\x8c\x80\x33\x52\xd7\xb3\xa8\x3b\xd3\xca\x6e\x11\xad\xc5\x48\x26\xf1\x0f\x34\x78\x9f\x2c\x74\x18\x26\xf8\x01\x3a\x3c\x06\x3b\xbf\xec\xd2\x2f\x9b\x97\x59\x80\x1d\xc0\x0f\xea\x91\x89\x20\x17\xf0\x8e\x3f\x8c\x36\x0b\xaa\xb3\x4a\x19\x34\xd3\x75\x23\xb9\x55\xd1\xd9\x1a\x6b\x34\xae\x8e\x2f\x1b\x64\x86\x50\xa1\xdd\x65\xc7\xc7\x99\xe6\x2a\x73\x4b\xb2\xdc\x80\x04\xa6\x3a\x75\x36\x2a\xe9\x18\xe8\xba\xd5\x9e\x37\x32\xb0\x52\x6f\xf5\xf2\xf0\x56\x6f\xec\x8b\x52\x6f\x72\xa6\x2b\xe0\x80\x64\x75\x0d\xea\x41\x2a\x75\x0e\x94\xc6\x5b\x64\xd5\xb6\xd1\x8e\xa7\xb5\x7e\x0c\x77\x3a\x46\x19\x3d\x58\x0e\x0e\xf3\x95\x0e\xba\x4e\x17\xe4\xa7\x72\x16\x17\xf0\x50\x4d\xef\xfe\xc4\xd5\xe4\x4e\x37\xe4\xb1\x05\x38\x60\x60\x4f\x5e\x09\x3f\x66\x83\x5b\x06\x94\xac\xb1\x65\xe3\xd6\xbc\x52\x30\x6c\x55\x7a\x50\xf1\xea\x40\x6b\xf7\x16\x40\x50\x50\x98\xfa\xb0\xbe\x4b\x26\x1c\xf7\x47\xf6\xd5\xd4\xf3\xc2\x99\xee\x7f\xcd\x41\x96\x18\x93\xd2\xda\x9b\x25\x91\xcc\x0f\xcf\x51\x8e\x6a\x61\xa5\x62\xad\xf5\x59\xd5\x60\xaa\xd5\x9c\x54\xab\x99\x55\xd0\xec\xff\x67\xee\xcf\xbb\xdb\xc6\x91\x87\x51\xf8\xef\xf7\xf9\x14\x1d\xfd\xa6\x3d\xa4\x04\x49\xd4\x6a\x9b\x0a\xac\x93\x49\xd2\xdb\xc4\xe9\x74\x9c\x5e\x15\x8d\x0f\x4d\x51\x12\xdb\x14\xa9\x70\xb1\xad\xd8\xfa\xee\x6f\x55\x01\x20\x41\x89\x72\x9c\xb9\xbf\xfb\x9c\x3b\xd3\xb1\x48\x10\x6b\x01\x28\x54\x15\x6a\x21\x1f\x9d\x1d\x22\x87\xc8\xd1\x32\xc2\x87\xd6\xe3\x9a\x7b\x2e\x51\x98\xa3\x1c\x24\x29\x5f\x34\x1c\x60\x1a\xf8\x62\xec\x52\x64\x17\x6a\xd4\x40\x58\xb9\xa6\x84\x8f\xa6\xb7\xae\x71\x7e\x4e\x9a\xc6\xd2\xe1\x15\xea\xa5\xd6\x4a\xf8\x41\x86\x53\x31\x72\xdf\x45\x25\x97\x55\x85\x52\x70\x6c\x8e\x63\x5b\x28\xdf\xd7\x98\x65\xd6\x74\xc3\xc7\xdf\xff\x37\x1a\xb3\xd8\xa1\xe6\xca\x8d\xfd\x54\x3e\xb8\xd3\xe8\xc7\x8b\x9f\x2f\xd2\xd8\x0f\x17\xfa\x3d\xf9\xf7\x8f\x6b\x30\x84\x25\xa5\xf6\xcc\xd0\x42\xc1\x86\x82\x77\x15\x72\xaf\xb6\x27\x7c\x99\xc9\xfb\xf4\xdf\x30\x46\x59\xa1\x0e\xc4\x7f\xcb\xaf\x8e\xe0\xa4\xda\x78\x4e\x4c\x16\x19\x87\x94\x0e\xc3\x76\xaf\x33\xe8\x0d\xbd\x21\xec\x09\x0f\xcd\x59\xa6\xb6\x3f\x4e\x27\x59\xfb\xb7\x60\xe2\x37\x3b\xd3\xe7\xf8\x3b\x6d\x67\x63\x78\xb1\xfd\xa9\x3d\xf9\x57\x20\x2c\x3c\x44\xe6\xed\x13\x54\x68\xff\x1d\xfd\xef\xe8\xd0\xa6\xa4\x51\x9a\xbf\x0a\x3d\xca\x7f\x47\x55\xca\xae\x87\xb4\x11\x9e\x29\x3f\x88\x47\x47\xcf\x94\x81\xa4\xc7\xa0\x83\x0d\xaf\x81\x6e\xf7\x94\xe6\xb3\x50\xf5\xe0\xb9\xaa\x2c\x22\xf4\x77\x3e\x39\x14\x56\x91\x30\xc7\x99\x11\xb1\x8e\x65\xda\xb5\x90\x54\x7a\x35\x6a\x12\x10\x21\x69\x29\xab\x49\x71\xe8\xe0\x72\x84\xf6\x07\xc9\x7d\x73\x10\x18\xdf\xa1\x17\x83\xf4\xac\x53\x65\xb5\x48\x7a\xee\x1e\xea\x2d\x28\xa3\x45\x72\x27\xc3\xa1\xbf\x29\x70\xd0\x39\xe7\x51\x61\xc5\xa8\x15\x15\x46\x8c\x79\x49\xa0\x8f\xf4\xa2\x5b\x5b\x6a\x00\xef\xea\x1f\x17\xc2\x29\x54\xe7\xcf\x01\x41\x6e\xfb\x73\x08\x78\x07\x20\x40\x9f\x80\x07\x57\x40\x3e\x3a\x9a\xdc\xd3\x03\xa9\x26\x14\x16\xa0\x04\x18\x5f\x00\xc6\x27\xc0\xe4\xb3\x82\x89\x34\x31\x28\x50\x82\xb9\xe9\x9c\xa1\xc1\x79\x7a\x50\x0f\xba\xd0\xc1\x78\x4c\xe5\x38\xfa\xb2\xca\x71\x69\x2b\xc3\xe9\xfc\x0a\x11\x81\x9e\xe3\x17\x3d\xc7\x4f\x17\x3f\xbf\x45\xa3\xed\x04\x15\x7c\x63\xa0\xaa\xa2\x30\xf1\x3e\x00\x3d\xa2\xeb\xa9\x39\x05\xb9\x9b\x01\xfb\x10\x7b\x50\xe5\x7b\x61\x9d\x5b\xb0\x8f\x09\xa0\x5f\x37\x7d\x1b\xcd\x3c\x03\x32\x5d\x45\xb3\x0d\xde\x70\x88\xcc\x44\xdc\xdc\xa5\x99\x13\x7c\x17\x3b\x8b\x15\x85\x49\xdd\x69\x8d\xaa\x77\xf8\x3d\x72\x2a\x48\x34\xd4\x7a\xad\x41\x6b\x50\xdb\x02\xc9\x00\x28\x5b\xdc\x63\xb1\xd8\xa9\xe2\x4e\x3c\x47\x9e\x22\xa8\xd8\x23\x03\xb0\xcc\x22\x97\xf6\x21\x59\x63\x39\x66\x1a\x6f\x60\x02\xb1\x63\xea\xc3\xeb\xc0\xc3\x1f\x61\xcb\x8d\xbd\x4e\x50\xe8\x4e\x7e\xa1\x3e\xc0\x2a\xd8\xba\x0e\x7a\xb0\xf7\x81\x66\xdc\x69\xb4\x32\xb6\x6a\x11\x9c\x22\x35\x47\x29\x06\x43\xf2\x50\x3e\x86\xf2\xf6\x5c\x4c\xbc\xc5\xbb\x11\x9c\x0d\x68\xe4\x16\x88\x2f\xf5\xb8\x3f\xcf\x0d\x35\x6f\x80\xd4\x64\xe7\x73\xb8\xcb\x7e\x1b\xb5\x57\x3f\xfe\x56\x33\x81\xd0\xd8\x04\x1e\x92\xa0\xef\xe2\x68\x0d\x18\x6a\x63\xd4\x22\xa0\x8c\xfd\x74\x03\x27\x0a\x43\x91\xad\x18\x48\xe4\x48\x32\x4e\xc2\x47\x0d\x7f\x1d\x47\x69\x84\xcb\x9e\xb9\x0e\x77\x1c\xac\xe9\x05\x9c\x36\xfe\x55\x86\x2e\x23\xf7\x92\xde\x5e\xb0\x44\xd6\xf0\xf2\xe2\xe2\x02\x1b\x7f\xe5\xb9\x81\x23\xe8\x0f\xad\xb6\xb9\xc3\x13\x47\xef\xd7\x68\xa7\xa6\x9d\xad\xea\x3a\x1a\x5b\x01\x29\x0d\xec\x3a\xdb\x6b\xbd\x54\x0a\xcf\x97\x60\xa7\x1c\xf3\x44\xc9\x72\xe3\x7b\xc5\xe6\xfb\xcd\xe1\x76\xda\xc2\xb1\xe4\x24\x2e\xd0\x25\x70\xf4\xa1\x37\x04\x58\x2f\x5e\xfe\x5e\xee\xb1\xda\x62\xa8\xc2\x0f\x1b\xfb\x2c\xc4\xed\x7d\xc6\xd1\xfa\xcb\x6a\x5b\x5b\x26\x7c\x07\x55\x61\xa4\x0a\x71\x9d\xf0\xc3\xc2\xf7\x14\xe2\x05\x22\x94\xc2\x3c\xbc\x49\x11\xee\xb9\x62\x12\xeb\xa1\xef\xc5\x33\xa0\xd1\xee\x81\x04\x95\xfe\x5c\xf4\xec\xbb\x79\x81\x50\x16\xf6\xea\xc2\x88\xe8\x60\xd5\x05\xdd\x8a\xa2\xc3\xcc\x7c\x6a\x33\x15\xe5\xb4\x26\x0b\xec\x26\xbc\x3f\xfc\x7f\x08\x30\xf1\x99\xf7\x7f\x1b\x30\x5a\x93\x25\xc0\x78\xbb\x31\xae\x77\x23\x24\x90\xa7\x97\x27\x43\x87\xfc\xc0\x94\xa1\xe3\xeb\xd0\xc9\x76\x3b\x4e\x05\x76\x73\x1b\xc5\x34\xb2\x98\xdc\x48\x40\x39\xb3\x0c\xac\xbd\x96\xb4\x41\xfb\x53\xf4\x3a\xf4\xe4\x56\x2b\x4a\x1e\xea\x81\x92\xf5\xb0\x6c\x4a\xe0\x4b\xb2\x55\x35\xec\x48\x1a\xaa\x45\x02\x10\x17\x55\x95\xb0\x93\x7d\x8a\x70\x0a\x81\x0c\x40\x6f\x62\x11\x41\x21\x6e\x70\x4f\xc4\xfa\xf9\x66\x2f\x8f\xd6\xe7\x68\x8a\xd7\x8c\x79\xfe\xfc\xd6\x98\xd6\xbd\xe7\x54\x63\x04\x9f\x02\x5c\xe4\x1d\x94\xf7\x24\xd1\x97\x3a\xe9\x20\xe0\x32\x12\x51\x84\x74\xfd\x30\xf6\xa1\x51\x1b\x98\xb0\x52\x3f\xb5\x6c\x5a\x47\x9d\x29\x89\x38\x8a\x22\xb2\xab\xee\xd8\x6f\xbb\x8a\xfb\x62\x9a\x96\x79\x25\x75\xa5\xd9\x60\x98\x75\xa0\xcd\x58\x5c\x32\xc7\x46\x07\x4f\x00\x41\x0c\x25\x8e\x6e\xac\x9a\x85\xcb\xb5\x31\xfa\x0e\x32\xf0\x02\xb6\x99\x09\xd1\x2b\xc2\x67\xe6\x57\x42\xc8\xcf\xcd\x31\x15\x88\xdc\x27\xcc\x21\x39\xcf\xcc\xd0\x30\xc8\x40\x55\x04\x9c\x15\x65\x0b\x59\x9e\x48\x2d\xa3\x06\x20\x54\xc4\x30\xcb\x85\x72\xbd\x78\xe5\x0e\x48\xd3\xc1\x8f\x72\x5d\xf7\xd6\xc0\xd4\xe1\x07\x03\x80\x51\xed\x11\xf8\x72\xe6\xcb\xf3\x6e\xc1\xc0\x2c\xba\x07\x65\x89\x70\x1d\xfa\xd8\x00\x03\x7d\xfe\x03\x1a\x20\x3a\x21\x6b\x3a\xcc\x41\xb7\x2e\x8d\x46\xc2\x5c\x78\xa8\x1b\x1e\xda\x46\x94\x86\x1c\x54\xae\x89\x60\xca\x02\xf3\x4b\xd5\x28\x69\x0b\x50\xfd\x6e\xdb\x48\x60\xe2\xf5\xd1\xce\xbc\x1b\x9f\xa8\x01\xbe\x23\xad\x24\xbf\xea\x0a\x16\xd5\xd2\xdc\xfc\xc6\x69\xac\x89\x55\x51\x1f\x98\xc4\x3a\x4b\x87\xfb\x68\x60\x9f\xf3\x8e\x6f\xbc\x79\xca\x97\xa8\xa5\x3f\x27\xa1\x91\x48\x2d\x78\xcb\xf7\xfe\x62\x49\x19\x62\x7c\x28\x72\x44\x71\x15\x19\xe9\x13\xa8\xd5\x5c\x8c\x35\x85\xe2\x58\xb3\x98\x97\x7c\x1c\xf2\x1d\x02\xe5\x2c\xb3\xf9\x7c\x67\x6f\x20\x85\x01\x00\xdc\x9b\x35\x32\xa2\xd1\x74\x41\xba\xe4\x81\x27\xe5\x96\x59\xe8\x42\x48\x7f\x6f\x18\xeb\x18\xaf\x23\x4b\xde\x56\xeb\x7e\xb3\xf9\x60\x91\x0a\x89\xdf\x48\xf1\xae\x14\x7f\xf0\x18\x13\x6f\xf8\xc3\xe3\xe2\xda\x0e\xfb\x07\xf4\xcf\x6a\x9f\xdc\x2a\x3c\x26\x6a\xfa\x4f\x05\x11\x8b\x78\x0e\x89\xd8\x58\x84\x35\xc1\x08\x26\xd3\x32\x26\x5b\x3b\x7e\x9c\x54\xd3\xc5\xd2\xf3\x94\x76\xf7\x5c\x5c\x3b\xe7\x2d\x58\x67\x31\x10\x4a\x78\xc7\x78\xe6\x49\x8f\x8c\x93\x94\xdc\xe8\x84\x93\x46\x43\x6b\xce\xa7\xe6\x3e\xfb\x6b\x7d\x39\x51\xe8\xac\x78\x1f\xc0\x52\x5c\x35\x29\x14\x9d\x42\x72\x52\xcf\xa5\x23\xc7\xbc\x00\xea\x4d\xec\x50\xed\x8d\x46\xf8\x3c\x1d\xe9\xaa\x0b\x82\x14\xf1\x26\xe1\x54\xcb\x49\x0a\xb5\x19\x9a\xe1\xf8\xe8\xd0\x27\xaf\x11\x5e\xd0\x47\x6c\xe9\x34\x27\x41\xcc\x3a\x4a\x2a\xef\x76\xc4\xa8\x0a\xbf\x13\x72\x3d\x5d\x7b\x9b\x32\x5c\x95\x7f\xe6\xc2\x79\xb2\x08\x01\x95\x2a\x6b\x4e\x8d\x8f\xa6\x0d\x16\x64\xde\x57\xd5\x10\xea\xe1\xa0\x44\x25\x30\xa0\xd8\xff\xba\x5a\xee\xa1\xe3\xb6\xc7\xa8\x79\x1b\xab\xdc\xee\xd4\x49\x1e\x5c\x0f\xad\x18\xa2\xfc\x34\xdd\x18\x22\x73\x2c\x22\x0d\xb2\x91\x19\x35\x88\x14\xd1\xed\xa1\xf4\xc9\x8b\xcc\x51\xb3\x99\x91\x33\x33\xfc\x24\xe8\x3a\x98\xf4\xdc\x4c\xb4\xd9\x4c\x85\xd3\xdd\x49\xb3\x89\xc1\x9a\x4a\x5c\x19\xa1\x96\x85\xb4\x25\x77\xae\x92\x91\xb2\x78\xdd\xdb\xd2\xb0\xea\x2a\xcd\xe2\xd0\xc3\xea\x81\x40\x2c\x80\x53\x71\x77\x33\xb2\xc7\x69\xe3\x6d\x75\xa7\x6d\x99\xe9\x32\x8e\x6e\x89\x39\x7f\x1d\xc7\xd0\xe3\x9a\x1f\xce\x49\x44\xf7\x8d\x30\x28\x55\x06\xee\xd2\x2b\x93\x83\x8e\x2b\x3c\xf4\x83\x20\xcf\xbc\xb0\x8e\x4e\x13\xf1\x8f\x87\x7f\xac\x33\xa1\x71\x33\xc2\xa1\x37\xbc\x3a\x10\x26\xe6\x59\x9a\x6b\x98\xc6\xed\xd2\x69\xa7\x65\x7a\xbe\x93\x49\x49\x6b\x25\x8d\xbe\xae\x3c\xf0\x85\x4d\x2e\xf6\x02\xe6\x3f\x49\x11\x99\x47\xf3\x6f\x02\xb3\x42\xa2\x4d\xa5\x88\x3b\x15\x16\x1b\xb2\x1b\x50\x96\x26\xae\xe5\x27\x32\xa0\xa3\xf4\x2d\xf8\x74\xf2\x5f\xa7\xb3\x45\x03\x19\x51\xd7\xe5\x33\x4e\xfb\x9c\x9f\x71\x72\x75\x64\x84\xc4\xf3\xcc\xe4\x86\x49\x86\x56\xa3\xfc\x91\xf0\x47\xb5\xb3\x4c\xd6\x0e\xaf\x5d\x5e\x12\x97\x7b\x79\x59\x83\xc5\xce\x6b\x1f\xef\x2c\xab\x36\x72\x8d\x80\xdd\x2f\x9d\xc4\x5e\x32\xf4\x2b\x5c\xb5\xdd\xe9\xaa\x6c\x92\x18\x68\x64\xc7\x92\x52\x26\xdd\x1f\x8d\x96\x8d\xa3\xf5\x39\x45\x74\xb6\x17\x0c\xf1\x82\xbd\x16\xfb\x2b\xb1\xf7\x8e\x56\x6d\x5f\xa6\x14\xf3\x8d\xea\x31\xa5\x8a\x92\xac\x35\xd5\x3c\xa5\x6c\x99\xdc\xe4\x5f\x5b\x17\x6d\x74\xb2\xc1\x12\x7b\x3d\xaf\x7b\xab\x57\x9e\xf8\x9f\x3d\xfb\x86\x79\xab\x75\xba\xb1\x67\x4c\x2e\x0d\xbb\x72\xfb\x97\xda\x28\xd8\x72\x61\xe7\x95\xf7\x7c\xbb\x25\x2f\xbc\xa1\x97\x94\xa4\x66\x85\x94\x4a\x6a\xad\xd1\x36\x3d\x2b\x9c\x5f\xab\x63\x6b\x2c\xef\x55\x32\x74\x27\xe2\x8d\x73\x6a\xcd\x8e\x46\x85\x55\x85\x0c\xce\x88\xab\x70\x5d\xf8\x62\xbf\xe1\xfe\xc4\x69\x34\x50\x35\x45\xac\xfe\x46\x63\xf1\x7c\x3d\x32\x8d\x25\x9f\xd1\x85\xbb\xcb\x6f\xd0\x7d\xc6\x64\x81\x3a\x52\xe3\xa5\x00\x54\x82\xba\x1d\xb8\x96\x5c\x36\x49\x34\x0c\x3b\x86\xac\xa8\x74\x37\xe7\xe5\xab\x9f\x44\x99\xe9\x23\xc5\x41\xd6\x1e\xa6\x0d\x59\xef\xb7\xfb\x39\xe9\x58\x96\xd9\x00\x2c\xb3\x62\xeb\x99\x4c\xbb\x70\x17\xc6\x6a\xe4\x75\x64\x1f\x20\xa1\x40\x32\x42\x2d\x2c\x9a\x78\x30\xbe\x42\xc5\xb3\x62\x2b\x67\xb0\x46\xb5\x15\x10\xaa\xa5\x88\x5b\x0f\x2f\x3f\x51\x56\x05\x30\x26\xa8\x56\x2e\xed\x0c\x58\x05\x32\x69\xc0\xbf\x38\x38\x61\x91\x28\x70\x3f\x8c\x52\x6a\x8a\x15\xf7\x33\x59\x19\x07\x95\xbc\x4e\x52\x8c\x1a\x0b\x05\x7e\xfb\x87\x95\xe6\xbc\x00\xc9\x35\x42\x65\x70\xc4\xa0\xcb\x43\x2a\x00\xcd\x57\xd2\x7f\xb9\x2f\xf5\x0c\x73\xe1\x40\xfe\xbd\x7b\x18\x2b\xfa\x7f\xe2\x17\x16\x90\x68\xc6\xa8\x0a\xfc\xb6\x7f\xfa\x2a\x0c\xa2\xb2\xc5\x51\x10\x64\x95\x4e\xd0\x62\x99\x45\xd0\x95\x5e\x5a\x71\xfc\xe2\xf2\x5b\x11\xf2\x35\x0b\x12\x4e\xa7\xb6\x88\x9e\x42\x8f\xde\x69\xcb\x99\xcd\xf6\xce\x76\xd7\x58\x29\x3c\x05\x9f\x1f\xc7\x53\x18\x56\x11\x90\x10\x06\x71\xd5\xf0\x90\x9c\xf5\xf5\xff\xd6\x0e\x57\xfb\xfa\xca\x5b\x3a\x37\x7e\x44\xd1\x2e\x73\xb7\x67\x87\xa8\x56\x18\x30\x52\x95\xbb\xc7\x82\xd2\xeb\x85\x51\x6b\x84\x59\x3c\x9d\xf2\x73\x3a\xc3\x4b\x81\x2f\x25\x53\x31\x73\xf8\xa4\x76\xeb\x5d\x5d\xfb\x18\x2b\x60\x95\xe0\x9f\xe8\x33\xfc\x3d\xa7\xbf\x11\xfc\xfb\xb9\x36\x45\xa2\x60\xe6\x27\x6b\x94\xa5\x96\xb0\x4f\x4e\x66\xe2\xcc\x5c\x32\xe9\xb4\xbd\xa2\x63\xa4\x5b\x09\x4c\x77\xde\xad\x14\xba\x75\x5b\xdc\xda\x21\xd2\xbc\x2c\x04\xa8\xad\xa8\x52\x50\x80\x3a\x10\xd2\xac\xb3\xd6\xaa\x99\x64\xb4\x30\x12\xfb\xdb\x22\xb7\xed\xca\xe2\x83\xee\x83\x0a\xbf\x8c\x18\x10\x04\x0d\x37\x0e\xdc\x52\xa1\xfb\x1d\xa1\x04\xd2\x22\xef\x1c\xb6\xfe\x26\x5d\x9d\x75\x2b\x05\x4d\x52\xe4\x83\x51\x3e\x48\xf3\x5c\xcd\xb4\x49\xd3\x0d\x2b\xed\xe7\xdb\x30\x17\x4d\xa3\xd3\xee\x52\xcd\xa5\x00\xe3\xf8\x65\x2b\xc8\xcf\x1b\xd2\x84\x40\xa5\x00\x5a\x0a\x9f\xb2\xa8\x5a\x3f\x0a\x2f\x11\xd6\x81\x03\x03\x5c\x39\xac\xf6\xf1\xe3\x3f\x8e\x6a\xa6\x98\xd6\x95\xc3\xdb\x93\x8f\x1f\x3f\xfe\xe7\xe3\x3f\x3e\xd6\x3f\x36\x3e\x8e\x3f\x3e\x7c\x9c\x7c\x9c\x7e\x34\x3e\x9a\x1f\x5b\x1f\xef\x3f\x6e\xa7\xed\x05\xdb\x38\xb0\xda\x5a\xf9\x81\x3e\x2e\x03\x3c\x2c\xbe\xc0\x49\x6c\x1f\x58\x8a\x22\xc0\x6a\xa8\x02\x3d\x6e\xd9\xb9\x53\x2d\x28\x4e\x5b\x9f\x32\x2f\xde\x5c\xd0\x35\x09\x82\x0a\x70\xd1\xdd\xd3\xf2\xbe\x90\x97\x1b\x57\xbb\xd9\xd5\x9a\x58\xe1\xba\xf4\x92\x87\x87\x70\x82\x6e\x75\x6b\xf2\x5d\x95\x87\x6d\x2c\x81\x6c\xec\x55\x91\x2b\xb1\x4b\xfa\x08\xc9\x34\xf1\x33\xaa\xd0\xa8\xb9\xf0\x3f\x7f\x0e\x50\x74\x79\x68\x94\x22\x83\xf0\x2d\x88\x61\x82\x48\x35\x11\xc7\x29\x3e\xe0\x10\xc4\x53\x6b\xa7\x8f\xa6\x40\x7a\xf8\xb2\x23\x3b\x28\xf8\x25\xf1\xb9\xe2\x16\x47\x4e\xfa\xa5\xc3\xf5\x4a\x8a\xdd\x84\x87\xca\xa5\xfa\xb2\x8f\x56\x35\x55\xe5\x51\xc8\xdf\xea\xa6\x09\xd2\xe3\x8c\x88\xf6\x5f\x72\x3a\x73\xaf\x8c\x05\x50\x57\x93\x29\xcf\xc7\x78\x93\x44\x42\x4c\x5c\xe6\x40\x40\x6a\xc9\x05\x99\x81\x75\x06\xba\x17\x1b\xf7\x79\x20\x22\xd4\xa2\x94\x6a\x6c\x28\xd6\x8e\x87\x8a\x64\xc9\x0a\xf5\x08\x97\xac\x18\x60\x0e\x6a\x2a\x09\xd8\x87\x6f\xc8\xb9\x6f\x9e\x89\x17\xf9\xd1\x79\x82\x3c\xd8\x70\xb3\x29\x71\xf3\x0b\xc3\x87\x05\x95\xc3\x04\x56\x58\x35\x58\x04\x48\x5e\xea\x20\x91\x34\x7a\x19\x24\x44\x6a\x17\x40\xa3\xe1\x67\xd3\x5c\x90\xb9\x63\x7f\x23\xb5\xb8\x49\x4a\xaa\xa0\x18\x3b\x86\x1c\x2e\x45\x3a\x50\xc3\x75\x50\x60\xbe\x03\xdf\x82\xe7\x7d\x81\xda\x30\x34\xf7\xb7\xb0\x97\x93\x9b\x85\x5d\x5b\xa6\xe9\xda\x6e\xb7\x6f\x6f\x6f\x5b\xb7\xbd\x56\x14\x2f\xda\x5d\xcb\xb2\xda\xf0\xad\xc6\xee\x96\xe9\x2a\xa8\xca\xd2\x39\x3d\x3d\x6d\xd3\x57\xc8\x84\x11\x61\x0e\x67\xc2\xaf\x90\xa9\xba\x9e\x3f\xce\xdf\x60\xb6\x93\x76\xae\xa2\x46\x59\xc3\xe4\x60\xbf\xe8\x6b\xbb\xb6\xc5\x13\x26\x04\x6a\x6f\x4d\x5e\x21\xed\x5b\x87\x7d\xca\x9c\xc0\x9f\x6f\xec\x0a\x2a\xa0\x38\x04\x6c\x8a\xb0\x55\x78\xb2\x16\xe7\x80\xa7\x21\xfe\x54\x3f\x07\xf0\xf2\xdc\x64\xb7\xce\x2e\x66\xf6\xcc\xf1\x3d\x75\x17\x1a\x46\xfd\x99\x20\x82\x99\xb0\xc3\x2d\xfc\x47\xab\x04\x35\x50\x76\x36\x7c\x15\x37\xdc\xa5\xe4\x5a\x42\xaa\x23\xda\x7d\x7a\xee\xac\x17\xd7\x0c\x5e\xb1\x16\x17\xc7\x24\x15\x0c\x93\x96\x1c\x2d\x92\x5f\x40\xcb\x60\xf3\x63\x0f\x69\x6b\xed\xf2\x0f\xcd\x19\xb1\x8f\x2a\x03\x90\xf1\xa5\x1c\x74\xcb\x8d\x6a\x06\x52\x30\x81\x8d\x79\x48\xc5\x7e\x46\x5f\x5a\xc8\x43\x94\xcf\x1a\x9d\xe2\x91\xf9\x84\xe5\x21\x8e\xd8\x0d\x9c\x24\xf1\x76\x29\x90\xff\x87\x83\x86\xfd\x64\x84\xfc\x03\x32\xbc\x8a\xb7\xc8\x24\x4f\x8f\xfe\x2d\xa8\xcd\x37\x7e\x92\x6a\xd7\x5b\x31\x5d\xab\x3c\x43\x2d\xce\x30\x75\x80\xe3\x36\x88\xcf\x95\x27\xf9\xb3\x4e\xc1\xc3\x62\x0d\x25\x70\xd4\xa8\xbe\x9a\xa9\xd7\xf3\x46\x14\x6f\xa5\xc0\x46\x21\xf5\xa5\xaa\x91\x80\x79\x66\x55\x43\xf0\xfd\x13\x21\xf8\x5e\x83\x20\x5d\x4d\xeb\xf0\xd3\x54\x39\xf7\x08\x24\xe8\x5b\xef\x2c\x2b\x41\xf2\x99\x06\xc9\xae\xf0\x5e\x8e\x14\x29\xe1\xa1\x78\xb7\x83\xef\x90\x9a\x40\x63\x2e\x6f\xa7\x8b\x48\xb9\x9c\xe5\x7a\x8f\x15\x0b\x10\x6d\x00\x10\x6e\x2f\xa3\xd5\x1a\xa0\x36\xa3\x4b\x6d\xf4\x1e\x86\xe8\x12\x3f\xa8\x4d\x42\xb4\x3d\xae\x31\x24\xba\xf6\x87\xfe\x4e\x8e\x50\x0c\x7e\x5d\x75\xf3\xfc\x95\xeb\x47\x6f\x42\xf4\x19\x25\x8c\x95\xf3\xf3\xeb\x13\xe7\xe7\x57\x6d\x7e\x50\x23\xe3\x49\xca\xde\x45\xf1\x4a\xdd\xf3\xa7\xaa\x6a\x8f\xf6\x75\x5d\x05\xe5\x38\xae\xd5\x6c\x20\xb0\x94\x5a\xce\x63\xda\xb1\x00\x78\xfb\x71\xed\x59\x41\xbb\x4a\x78\xe9\xdf\x68\xcc\x88\xe1\xff\xef\x8f\x99\x5c\x85\xfc\xf0\xe1\xfc\xcd\x13\x47\x5c\xe4\xaf\x1a\xaf\x56\xdb\xce\x68\xf3\x2f\x02\x67\xaf\xd7\x5e\xb5\x93\xee\x90\xff\x8d\x78\x56\xc4\x4e\x15\x34\x55\x05\xbd\x85\x5f\x45\x1d\x2f\x51\x47\xc6\x38\x30\x44\x64\xfd\xb1\x39\x40\x4d\x65\xc7\xe5\xba\x92\x84\x6c\x10\x68\xab\xf4\x49\xed\x8a\xca\xfe\xe5\xc1\x62\xf7\x0e\x35\x8c\xfa\xea\x55\xe9\x82\xe8\x54\xdd\x12\x8c\x6b\x15\x3d\x99\xcf\xf0\x77\x22\x27\x12\x1c\x87\x75\xf0\x0a\x6d\x46\x11\x61\xa8\x90\x56\xcf\x73\x2f\x4b\x7a\x40\xa3\x08\x4d\x9c\x16\x9a\x94\x7a\x8e\xf6\x42\xa5\xd7\x9b\xb2\x0c\x1b\x0f\x01\xd1\xc4\x8c\xad\x84\xa0\x89\x6d\xca\x59\x84\x78\x9b\xec\xd5\x62\xbc\xbf\x5b\x91\xe3\xc3\x99\xba\x32\xcf\x84\x3d\xab\x46\x2c\x02\x3a\x1a\xdf\xa0\xba\x76\x66\xaf\x48\xbc\x34\x43\xc9\xe7\x06\x53\x66\xe5\xda\xe6\x44\x80\xae\x48\x9c\x95\x57\xe8\xd1\xfd\x47\x4c\x9e\x9f\xcd\x71\xf6\x8c\xf3\x67\x48\x5e\x2c\xa8\x46\xad\x1d\xee\x9b\xf6\x1a\x13\x7f\x40\x1d\x43\xd5\xd2\x33\xab\xaa\xc7\xd8\x00\x76\xc0\x54\xb5\x51\xff\x42\x0a\x84\x97\x6b\x14\xe4\x45\xd0\x71\x89\xb4\xd2\x15\x3d\xc9\xc6\x86\xde\x2e\x13\x7d\xd1\x9a\x17\x71\xec\xe6\x67\x64\x06\x6b\xca\x64\x2c\x6a\xaa\xd8\xfc\xe2\x4b\xde\xec\x76\xdd\xca\xd6\x33\xb4\xc0\x59\xb0\xb5\x4e\x66\x2e\xf4\x97\x1b\xfd\x25\xd4\x5e\x94\xf1\xec\x3a\x37\x89\x5e\x98\x4c\xba\x55\xb9\x11\x7a\x6d\x9a\xea\x86\x4e\x35\x57\xba\xc0\xa4\xe1\x87\xfa\xb4\xe7\xec\x84\x35\xcd\x3d\xdb\x2a\xa5\x09\xe2\x19\x84\x92\x06\xde\x90\xe8\x74\x7f\x21\x57\x10\xea\xfb\x7f\x19\xc8\xa7\xb8\xfc\x05\xfd\x26\xe2\x17\xfb\x50\x85\xe0\x4c\x5d\x33\xc3\x53\x1d\xf0\xa7\x4c\x92\xe8\x18\x1f\xab\x00\x41\xb1\xde\xfc\x9d\x5b\xe6\xfd\xf2\x79\xbf\x5c\x14\xdc\x79\x71\xc5\xce\x74\xb6\x0c\xbd\xa9\xfb\x55\xda\x91\x09\x7c\x53\xbb\xb5\xa4\xec\xf1\x05\x54\xbe\xce\xd5\xe3\x72\xae\x09\x15\x3c\x0f\x7d\x13\x18\x41\x78\xb1\x3b\xc4\x2f\x22\x6b\x54\xe1\xaf\x58\x98\x79\xfc\x8c\x34\x9e\x16\xac\xd5\xda\x99\xfb\xe8\xcc\x1f\xf9\x18\xe2\x2b\x3b\xcc\x45\x7a\x0a\x6a\x95\x5c\xa4\xd0\x15\xf0\x0a\xfd\x7b\x67\xe4\x40\x85\x18\xba\x4f\xb0\x56\xda\x54\x69\xdc\x94\x8f\x32\x98\xdc\x90\x20\x67\xa3\x32\x31\xe2\x28\x9e\x95\xa7\x64\xf7\x1e\xb5\xc4\xf4\x95\x2e\x4c\x91\x59\x54\x96\x44\x59\xce\xdc\x12\xab\x18\x63\xd4\x14\x75\x45\x87\x2a\x07\x42\xef\xca\xf0\x8f\x8e\x7c\xc0\x02\x5e\x0b\xc3\x65\x5d\xf8\x57\xc0\x5a\x2d\xd0\xc7\xa3\xb6\xb2\x4a\x07\x81\x87\x01\xc3\x7c\x8d\xfd\x23\x22\x87\x68\xcd\x68\x27\x66\x46\xc8\x7f\x3c\x70\x22\xcf\xcb\xf1\x15\xcb\x23\x22\x29\x1d\x8d\x22\x9d\x0a\x51\x76\x58\x6a\x4c\x00\xc8\x10\xc0\xc2\xc3\xa3\x6a\x05\xfe\x29\xa5\x9b\x9a\xe0\x1a\x29\x5f\x25\xf9\xc4\xc0\x7c\xb9\xc9\x14\xde\x42\x49\x86\xc3\xa9\xe2\xc1\x91\x2d\xae\xd0\x8f\x50\x63\x23\xab\x78\xb2\xc4\x12\xc7\xaa\xe8\x17\x8a\x64\xf7\xf7\xce\x33\x8d\x54\xa0\x7c\xf8\x58\x3d\xd7\xd6\xce\x54\xa7\x67\xe1\x28\xd4\x9c\x95\x7b\xf9\x4c\x8b\x50\x39\xf9\x2a\xcc\x00\xb9\xc6\xb8\xac\xc5\xaa\xf7\xa4\x11\x91\x6f\xe6\xb7\xf9\x9a\x35\x93\x98\x39\xff\xf3\x9e\x4f\xf7\xb0\x08\x6c\xb9\x0b\x4b\xf3\x1e\x96\xdd\x16\xc3\xe7\x10\xd7\x7f\x41\xbe\x13\x4a\x42\x1f\x81\x55\xfe\x62\xfb\x89\x9a\x3c\xe8\xc2\x61\x17\x39\x85\x94\xd3\x4a\x98\x26\x80\xa7\xa0\x88\x29\x04\x26\x09\x2e\x7c\xa7\x89\x92\x13\x86\xef\x34\x02\x39\x12\x7a\xdf\x97\x32\xed\x19\xc5\x2b\x75\x26\x92\x8e\x94\x97\x20\x09\x48\xee\x81\x51\xcc\x04\x90\x61\x2f\xcb\xf3\x29\xf7\x43\xb1\x8f\x2b\xb2\x2a\x0c\x21\xb5\x88\xb4\xb8\x70\x01\x3a\x89\x37\x7c\xf4\xd8\xaa\xc9\x99\x62\x78\xe3\x85\xb0\x49\x3f\xdb\xfc\x62\xa9\xa2\x7b\x09\x53\x93\xcc\xf0\xe2\xdb\x21\x11\x13\xda\x36\x5c\x3c\x4e\x19\x1e\xb8\x37\xff\x8d\xa6\x1d\xda\xcb\x09\xcb\xb2\xbe\xae\xd4\xbd\xd9\x81\xb4\x92\x88\x2a\x43\x98\x5d\x96\x2a\x45\x3b\xe4\xc9\xb9\x03\x7b\x30\x43\x5f\x19\x5e\x09\x84\xfb\x52\x45\x34\xfe\x43\x8f\x29\xa5\x7c\xd8\x8c\xc9\xe0\xf4\xf4\xa6\x7a\x2f\x2a\x25\x68\x87\x3a\x12\x8e\x85\xc0\xeb\x0e\x8d\x21\x33\x67\x57\xbe\x55\xd9\x95\x94\x02\x82\xea\x1d\x41\x60\x63\x47\xf0\x72\x94\x90\x77\xb8\xa7\xb2\x20\xae\xf8\xaa\xb9\xed\xf8\x11\x6e\x3b\xa6\x59\x78\xd6\x91\x0e\x55\x76\xd9\xcd\x3f\xf0\x9a\x12\xe5\x44\x69\x15\xb7\xad\xac\xc6\xe4\xb1\xaf\x78\x57\x38\x5d\xe1\x9c\x6c\x84\x22\x66\xfc\xe5\xc8\x83\xfa\xf7\x39\xd4\x3f\x64\xd7\xa5\x58\xef\x9a\x44\xba\x68\x29\x73\xbf\x8a\xb2\xc4\xa3\x8d\x6c\xd7\xe8\x19\xe8\xfa\xb8\xc6\xe8\x31\xf0\x9c\x1b\x4f\x25\x67\x69\x6d\x6b\x8e\x32\xe7\xe8\xe8\xda\xa9\xb8\xc9\x34\xef\x6b\xd4\x0f\x1c\x94\xcc\x24\x98\x04\xe4\xed\x85\xea\xc5\x6b\x87\xbd\x80\xf3\x15\x11\x0b\x55\x59\x85\xe5\x7f\x82\x8e\x5e\x1b\xaa\x9f\x6f\xa5\x8c\x38\x74\x6e\xfc\x85\x93\x46\x00\xc0\xf6\xef\xde\xd5\xbf\xfd\xb4\x2d\x65\x2d\xa5\xaf\x2d\xa8\x34\x7e\xb1\xc0\x99\x45\xed\x71\x6a\x29\x8d\xb2\xd2\x79\xf2\x25\xa5\x13\x38\x48\x38\x74\x00\x83\x62\x87\x0b\x6f\xf6\x01\x8b\x7b\xc8\x16\x95\x74\x98\x2c\x8a\xe6\xa8\xe6\xfd\x2c\x43\x61\x10\x4a\x82\x70\x72\x48\x12\xe4\xcf\xa0\x6a\x7f\xee\x03\xd2\x84\xa3\xd8\xd4\x46\x17\x8b\xf5\xad\x6e\xe6\x5a\xb3\xd8\x59\x1c\xb8\x7a\x97\xac\x29\x24\x8b\x39\x98\x45\xb7\x21\xe5\xaf\xc1\x91\x4d\xc9\x34\x3a\x61\x16\x29\xd2\x23\xdd\x03\xab\xb4\x50\x45\xb7\x3a\x15\xb6\xce\x79\x3e\x47\x1d\x10\x24\x9a\x4e\x8d\x25\xbb\x81\xf5\x47\x04\x17\xba\x32\x69\x9e\x8b\xb8\x74\xe8\x0b\x06\x9e\x3b\x53\xb6\x7e\xe0\xe1\x83\xc7\xce\x79\xcc\x16\xc6\x3d\xae\x70\xbb\x26\x9a\xbf\xb3\xc9\x97\x4c\x80\x25\x36\x36\x79\x8f\x09\xb0\x04\x06\xe3\xc3\xd0\x77\x5e\xc9\x9c\x17\x5d\x5b\x88\xe6\xa0\xb1\x15\x0e\xc8\x6f\xcc\xa4\x88\x08\x5e\x22\xf5\xc2\x36\xc6\x1a\xe8\x2b\x79\x85\x25\xe3\xfb\x03\x5c\x91\x17\xd4\xdb\x87\xc3\xa6\xb6\x95\x71\x1d\x30\x4c\xad\x38\xe4\xf8\x4e\x41\xe0\x27\x13\x1d\x1b\x2f\x80\xac\x8a\xe6\x46\x89\x09\x16\xf1\x60\x43\xf2\x1c\x51\x13\xa0\x6d\xc8\x2b\xb9\x1b\x14\x33\xd4\x9a\xb5\xc6\x0d\xf0\x64\xc5\xcd\x88\xe1\x01\xf3\x69\xaa\x31\x38\xf9\x00\x5c\xe8\x3d\xff\x1d\x19\xd3\x73\x05\x5a\x60\xb6\x02\x38\x3f\x04\xb1\x51\x6a\x36\xe0\x93\xa0\x75\x27\x00\x1e\xb4\x36\x04\xed\xa9\x69\x43\xb2\xc5\x20\xa9\x34\x58\x9a\x75\xb4\x37\x14\xcc\x10\x7f\x8d\x57\x54\x62\x16\xb4\xef\x2c\x07\x8c\xa9\x2c\x82\x81\x80\x30\xae\x98\xda\x84\x18\x01\x8b\x1e\x70\xaf\xd6\xe4\x73\xb6\xae\x91\x9f\x63\xe3\x7b\xa6\xb6\x10\xdb\x30\xb1\xda\x64\x3e\x7a\xa6\x7a\x0b\xf2\x29\x8a\xfd\xc5\x53\x0d\xf8\x32\x4e\x71\x19\x32\xed\x5e\x1a\x37\x07\x43\x2c\x22\x76\x88\x68\x61\xd7\xfa\xec\xf1\x13\x0e\x77\x6e\x9a\x6f\xd9\x71\x8c\xee\x6e\xf6\xc2\x96\x0b\x5a\xeb\x27\x11\x6e\x2a\xbf\xa9\xd3\x76\x6c\xaa\xbd\x30\x58\xb2\xf6\x64\x2a\xf0\xd1\x4b\x07\xa3\x9e\x0c\xd9\x67\x87\xbf\x74\xea\x2f\x1d\xf6\x49\x6a\xb8\xbd\xfb\x91\xbd\x71\x78\xb7\xfe\xc9\x61\x1f\x1c\xfe\xc6\x69\xc2\xb7\xf7\x0e\xff\x84\x91\x02\x5e\xd1\x6f\xe7\xc4\x62\xef\xa0\xf8\x89\xd5\x86\x4c\xbf\xca\x72\x17\xbf\xbc\xff\xd0\x65\x7f\x43\x51\xf6\x9d\xc3\xfb\x88\xb0\x34\xe7\x15\x7f\x45\xd1\xae\xe6\xbd\xbe\xb9\x73\x29\x59\x9d\x42\xca\xae\xd4\xc8\x80\xbe\xbe\x21\x63\xf3\xb6\xf1\xb7\x53\x5f\x9a\x75\xc3\xab\x67\xa9\xf1\xab\x53\x4f\x61\xd1\x36\x3d\xfc\xac\x06\x3e\x89\x1b\x51\x3d\x60\x19\xfc\x4d\x98\x5f\xf7\xda\x71\x9e\x51\x99\x71\x42\x96\x90\xb2\x84\x94\x85\xfa\xed\xdd\xad\x29\x9b\x74\x6d\x9e\xbb\x5f\x0b\x95\xbb\xbd\xae\xe6\xe7\x2f\x15\xbe\xf9\xd0\xf5\x13\xac\xf0\xa8\x19\xa3\xbf\x8c\x66\x06\x3b\x33\xa8\x07\x8d\xa4\x9e\x28\x09\x0f\x69\x26\x93\x80\xc7\x70\xeb\x6e\x13\x5d\xdf\x7e\xe7\xd4\xe7\x14\xbb\xd6\xaf\xd3\x58\xd0\xab\xad\xfc\xd6\xcc\xbf\xb9\xf2\xdb\x0d\xcf\x23\x41\x15\xf5\x2d\xea\x8b\x46\xc7\x6c\x2e\x70\x2b\x57\x7c\x5e\xd7\xd7\xf8\x79\x8d\x9b\x79\xd6\xbc\xc1\x08\xc9\xab\x87\x87\x3c\xa3\xdb\x06\xe6\xbb\xfd\xab\x53\xac\x13\x65\x16\x0e\x2b\xa1\x57\xdf\x30\xaf\x8c\xcd\x3f\x97\xa6\xac\x84\xcd\x29\xf4\x31\x24\x7e\x62\x73\xc2\x0e\x3f\x3b\x8d\x1a\xe5\xaf\xb1\x85\xc0\xe6\xb3\xab\xc0\x0d\x7c\xf7\x5a\xa6\xae\x29\xf5\x3d\x5b\x96\x71\x7a\xee\xec\x83\x1c\x47\x36\xaf\x5b\x77\x66\xfb\xba\x75\xcd\x44\x60\xf6\xeb\xd6\x86\x5e\x4b\xa1\x47\x34\x07\x21\xe8\x98\x0b\x3e\x37\xae\xd1\x53\x08\xfa\xe6\x12\x2f\x9b\x92\xf3\x73\xc8\x0f\xc9\x45\x20\xa0\xb7\x38\x91\xb9\x10\xee\x2d\xce\x67\xc9\x77\x92\x0c\xa2\x92\xa2\xda\xbb\xc9\xa0\xea\x86\xe6\xe2\x18\x2a\x6f\x14\x5e\x8e\x8b\x42\x91\x60\xe1\xf0\x70\x42\xde\x0d\x0e\xdc\x38\x05\x02\xf8\xfe\xce\xbe\xa6\x20\xae\x50\x8e\x5d\xc3\xdf\x6b\x74\x2c\x9e\xc7\x6f\xe9\xd2\x45\xad\x6f\xa0\x5f\x8b\xd8\x14\x4a\xc8\x12\x03\x43\xd3\x2f\xcf\x2c\x11\xd8\xa8\x55\x38\x6f\x00\x94\xa0\xe6\xcc\x78\x49\x44\xa1\xb8\x94\x17\x87\x82\x36\x0a\x3c\x07\xaf\x8e\x8e\xae\x94\x59\xeb\x9d\x0a\x96\x7a\xc0\x4c\xda\x08\x73\xe0\x6f\x45\x9e\x3b\x69\xd1\x8c\xb7\x81\x47\x47\xb7\xaa\xa2\xcb\xa7\x54\xb4\xd1\x2b\xba\xcc\x2b\xd2\x4f\x4b\x28\xf0\xb9\xd1\x78\x78\x08\xd5\x39\x80\xeb\x24\x3f\x07\xf2\x8c\xa8\xd6\x70\x0f\x83\x61\xa5\x7c\x35\x46\x41\xe9\x10\xa0\x2c\xb7\x65\xb7\x27\x08\x6b\x9a\x7e\x53\xf7\x09\x00\x15\x34\x9b\x9f\x77\x5a\x12\xc7\x2b\xaa\xeb\x21\x9b\x99\xe7\x9e\xef\x12\x2d\x73\xde\x81\x09\x52\x07\x0c\x7a\x34\x80\xcd\x17\x18\xba\x57\x04\x60\xf6\xef\x97\xb8\xba\xdf\x14\xc7\xfd\x07\x79\xd8\x03\x84\xaa\x0e\xfb\x08\x1d\x18\x38\x2a\x68\x13\x1d\xed\xd1\xde\xd1\xee\xf0\x57\x78\x96\x67\xfa\xa1\x3a\xe7\x18\xa5\x5e\x5b\x26\x18\x86\x48\xb6\x2d\x1b\x8e\x11\xe7\x78\x7a\x97\x11\xd1\xfc\x0e\xbf\xa3\x57\x81\x64\xe0\x4c\xe6\x96\x86\xb0\xdc\x1d\x76\x6e\x8d\x21\x0f\x20\x63\x9d\x9f\x2e\x0b\x8e\x50\xaf\x52\x00\x44\x9c\x50\x1c\x36\x48\x3c\xcf\x60\x01\xcf\x26\x7a\xea\x94\x93\x7b\x81\x6d\x29\xbc\x6d\x9a\x5f\x92\xec\xc0\x60\xa4\x6f\x08\x1c\xde\x1d\x0c\x0f\x7f\xaf\x80\x2a\x41\x65\x28\x62\x76\x0b\x89\x8d\x57\x54\x50\xa6\x79\x25\x99\xeb\xed\x92\xb9\xb3\x89\x87\x6e\x5a\xf4\xfe\xe1\xc4\xc9\x60\x35\x48\x33\x05\x5c\x59\xe1\x1a\xa6\x52\x36\x76\x75\xe5\xa6\x81\x65\x9d\x05\xcd\x73\xe5\xd1\xd4\x45\x5f\x94\x91\xb1\x66\x09\x9b\x4d\x12\xbd\xe6\xca\xe8\x97\x00\xcb\x3c\x94\x61\xd7\x44\x95\xac\x0b\xc3\xdc\x9e\xf3\x60\xab\x14\xa1\x5d\xcd\x07\x6c\xd1\x04\xac\x04\x17\x51\x17\xd0\x7f\x88\x9c\xe6\x98\xb4\xe0\xe8\x11\x15\x9e\x3b\xd3\xd1\x8a\x2f\xeb\xcb\x06\x9c\x17\xdb\xf2\x42\x15\xb4\xb1\x44\x56\x3b\x13\xac\x96\xc7\xda\xdc\x11\x21\x46\xba\x08\xb1\xd1\x70\x50\x9b\x10\x97\x37\xaa\x95\x91\x9a\x06\x24\x00\x24\xf5\xc1\x0a\x5f\xbc\x26\x19\xf1\x8d\x42\x34\x94\xe5\x31\xf2\x7e\xb1\x1a\x84\x91\x70\x2f\xf7\x51\x58\x4f\x1a\xf4\xae\xfc\x17\xd6\x91\xd4\x5d\x1d\x1d\x15\x47\x5b\xd2\x5e\x99\x18\xf3\x89\xce\x09\x8a\x33\x81\x9e\x5c\xe9\x98\x20\x03\x7a\x78\x43\x85\xfe\x09\x09\xbc\x1a\xb1\xfa\x4e\xce\x1a\x63\xf5\x3d\x33\xe6\xf5\x05\x42\x57\xd0\x8e\x84\xe8\x61\x33\xdf\xec\xe0\x4d\xec\x79\xbe\x0e\x05\x78\x4a\xb2\xf7\x9d\xa5\xba\xb3\xd2\x76\x42\xb3\x28\x6d\x4b\xe9\x7b\x64\x46\xa6\x32\x3a\xa4\x0a\xad\x19\xda\x31\x8a\xbd\x22\x7b\x29\x58\x80\x5b\x5d\x7e\x60\x5c\xd2\xea\xdf\x48\xec\x72\xab\x1f\xc1\x78\xb6\xb2\xd7\xe8\x73\x5d\x5d\x2a\x2c\x60\xdf\x13\x6e\xb9\x11\x98\x64\xad\x63\x92\x19\xaa\x51\xae\xa0\xaf\x1b\x2e\x4e\x6e\xe0\x02\x0e\x0c\x09\xad\xde\x35\x22\xf2\x8e\x6b\xc4\x73\x63\xc3\xae\x78\x41\x40\xc3\xeb\x25\xca\xad\x6e\x35\x1c\x05\xe4\xc8\x6b\xc0\x3f\xb0\xaa\x50\xa7\xd9\x45\x7a\x4e\x76\x3c\x47\x97\xef\x99\x7e\x76\x2d\x72\x04\x44\xdd\xde\x15\xcf\x6e\xc6\x2e\x30\xf3\xf1\x07\x7f\x85\x8c\xbc\xb1\x31\x6d\xe3\x06\xb0\xca\x8c\x03\xad\x93\x63\x3d\x29\x1c\x52\x4b\x9a\x5e\x19\x9e\x3a\xc8\xc2\x24\x5e\xaa\x4a\x6b\xe4\xcd\x46\x2c\x8b\x84\x14\xe9\x06\x16\xed\xc4\xf2\x69\xdd\xb2\xac\x6e\xfd\x07\x58\x22\x26\x52\x1a\x74\x72\x03\x0f\xc4\x82\x92\xf3\x84\xb5\x8e\x3e\xb5\xce\xb0\x94\x57\xef\x7a\xc0\x16\x52\x68\xe5\xd1\x15\xa8\x9a\x04\x72\xbd\xfa\x6f\x6f\x33\xd6\x22\x75\x9b\xcd\x8e\xad\xc7\xf8\x46\x8c\x41\x73\x7d\xc3\x66\x6c\x05\x7c\xcd\x39\xbb\x63\x57\xec\x92\xdd\xb2\x6b\xa4\x3e\x60\x7a\xe1\xdf\xb5\xdd\xd9\xb2\x17\x7c\x72\x3a\xb4\x60\x60\x80\x29\xde\xf2\x1f\x1d\xf6\x92\x77\x07\x16\xfb\x0c\x4b\xe0\x13\xd7\x78\x72\x71\xbe\xbe\xe1\x05\x27\x25\x93\x3e\x70\xc5\x50\xc9\x84\xf7\x5c\xe7\xd9\x45\xda\x2b\xc1\xbb\x15\x87\x39\x93\x07\x76\x7e\xea\xe6\x07\xc9\xcf\xce\xc3\x03\x10\x8e\x1c\xb8\xa4\xdb\xa5\xe7\x05\xa4\xa4\xe6\x8c\x8d\x1f\x9c\x7d\xc9\x74\x33\x87\x0a\xec\xa3\xd4\xf9\xb3\x6e\x94\x13\xce\x81\xf9\x1d\x77\xba\x96\x0d\xe0\x60\x35\x51\x9d\x69\x43\xcd\xd4\xe3\x2f\x56\xff\x4d\x5e\x1b\x65\x7d\x85\x55\x6e\x25\xff\xa8\x2a\xfb\x62\xbf\x52\xc7\x0f\xb6\xa4\x15\x7c\x8e\xe5\xde\xf9\x77\x5e\x70\xe1\xa2\x32\x37\x06\xd7\x95\x24\x5a\xf9\x0a\x42\x08\xb4\xf6\x64\xdb\x55\xcb\x1e\x45\x39\xa3\x0f\xc1\x58\x3b\x11\x71\x55\x95\x69\x43\xa1\x8e\xa0\xcf\x87\x56\xf7\x35\x97\xce\xd8\x24\x75\xfa\xf0\x50\x5e\x20\x2e\x49\xb7\x84\xef\x29\x83\xa6\xcb\xde\xab\x43\x1c\xb2\x2f\x84\x3f\xbd\x17\xc2\x5d\xf9\x6c\x3c\x83\x77\xdb\x23\xcf\xda\xf8\xd2\x99\xda\x31\xbc\xd0\xf1\xb2\xc3\x01\x1a\x13\x23\xd3\xa8\x7c\x3f\xa7\x15\x99\x47\x84\x3e\xc3\xef\x29\x7e\x4f\xc5\xf7\x14\xbf\xa7\xf4\x1d\xfe\x56\xc4\xec\x4f\x95\x08\x13\xc3\xdd\x02\xcd\x04\x5c\x1f\xf0\x66\xa3\xf2\x50\x39\x6d\x86\xac\x89\xe7\x42\xdd\x81\x21\xfb\x4d\x3c\x14\xe0\xf1\x1a\x63\x20\xd0\x06\xde\x2a\xf0\x15\xbe\xbd\xf6\x86\x9f\x08\x10\x89\x7c\xe8\x9b\xea\x40\x0e\xdb\xd8\x6d\x9f\xa0\x4b\x0d\x11\x82\xa1\x2b\x9d\xb0\x95\xd3\xae\x4f\x93\x33\xd0\x28\x1a\xa9\x10\x48\x35\x88\x15\x95\x4c\x05\x51\xc8\xa6\x46\x01\x43\xe5\x44\x22\x7f\x45\xc5\x3a\xa7\xd2\x48\xf3\x3a\xa9\x7e\x59\xdb\xe1\xe0\x4b\xfb\x75\xbe\xcd\x55\x59\x7e\x74\xec\x89\xe8\x35\xf5\x19\xf9\x2d\xfb\x2d\xd6\xe9\xee\xdc\xef\x3e\x56\xdd\x0a\x83\x8d\xef\x55\xb3\xa2\xae\x95\x2e\x88\x1e\xab\xe4\x45\x65\x25\x2f\xb0\x92\x9c\x15\x7e\x52\x45\x2f\x79\x83\x44\x3e\x2f\xb1\xe8\xdd\xd3\xca\x5c\xf1\x14\xce\xce\x54\x79\xe7\xd9\xc5\xcf\x50\xdb\x15\xd6\xb6\x79\x5a\x6d\x70\xc2\xc2\x51\xfb\x58\x6d\xb7\x65\x71\xd4\x2b\x29\x8e\x22\xda\xf6\x07\x87\xfd\xec\xb0\x1f\x1d\x14\xc6\x75\xda\x16\x5d\x90\xb9\x51\x10\xc1\x36\x4a\x59\xa4\x39\x7d\x01\x02\x48\xb8\xf9\x3a\xa4\x1f\x13\x2f\xae\x0c\xb3\x51\xab\x51\x63\xcb\x24\xe0\x4e\x4a\x2d\xfc\xe9\xc0\x93\x76\x9f\x86\xea\x0a\x51\x3a\xfa\xd3\x69\x5d\x91\xad\xb5\x57\x69\x61\x1d\x16\xe1\xe2\x5b\xc7\x7b\x26\x93\xe3\xd0\x46\x9b\x05\xa8\xc9\x91\xe2\xf2\xa5\x54\x15\x12\x3f\x41\x1b\x8f\xee\x3f\xf1\xea\x3f\xbe\xfe\x5f\x6e\x20\xac\x8b\x26\x44\x03\x30\xea\x0a\x80\xb8\xd5\xbd\x12\x22\xc0\xa5\x1b\xf0\x40\xc0\xe6\x2f\x07\x9e\xf6\x61\xf3\xd7\x17\x60\x83\xfa\x3e\xe5\x16\xdc\x42\x90\xd1\xb1\x2c\xd9\x5c\xe3\x37\xa7\xbe\x77\x23\x40\x23\x43\xb5\xbe\xbf\x1e\x85\xce\xe1\x26\xc8\xad\xb5\x68\xa0\xf9\xa5\x06\xaa\xa1\x93\xec\x56\x2c\xa1\x23\x96\x10\xc1\x28\x70\xa0\xa0\x80\xd1\x6f\x28\x5f\x64\x7f\x38\xbc\x75\x3a\xb0\xfa\xc7\xec\x1f\x18\xa7\xe1\x5f\xf0\xa7\x65\x9d\x9c\x9c\xf4\xd8\xef\x70\x1a\x57\xc0\xf0\xf7\x2f\xc3\x70\x9e\x1a\x5f\x07\x35\x91\xc3\x11\x3f\x57\xd0\xd3\xdf\xbf\x04\xc3\xbc\x89\xa7\x41\xad\xaa\x81\x6a\x18\x2e\x25\x0c\x83\xbd\x22\xa9\x28\xb2\x12\xd0\xfb\xc9\x81\xa7\x7d\xe8\xfc\x74\x00\x3a\x4f\xd8\x15\x32\x52\x85\xd8\xf3\x4a\x2b\x62\x21\x35\x3a\x5a\x57\x40\x07\xf4\xf2\x2b\xf9\xf4\xe1\xc1\x7b\x78\x88\xc7\x06\x7a\xcc\x3c\x13\xe1\xb9\x33\xb2\x48\xc8\xa4\x57\x1b\x34\xae\xc5\xb7\x98\x4c\x92\x32\xb1\xe7\x56\xda\xc4\x74\x07\x03\x96\xc2\x76\x66\xa5\x14\x6f\x2f\x25\x6e\x63\xb8\x43\x5b\x16\xa7\x10\x19\x00\x8c\x9f\xfe\x37\x50\x00\xd4\x27\x37\x7d\xac\x76\xff\x42\x3d\x5c\x89\x46\x10\xdf\xed\x4f\xd2\xa5\x9c\xa4\x98\xc9\x42\x7a\x91\xc3\xf8\xb4\xf6\x3f\xb5\xc6\x9d\x2a\x6a\xe6\x8f\x8b\xe2\xf1\x4a\x62\xef\xef\x8b\x2b\x4f\x07\x95\xf6\xaf\xd0\xca\xb6\x33\x38\x3e\xed\xf6\x60\x67\xa0\xb3\x91\x4f\x19\xd0\xad\x7e\x0a\xa9\xc3\x7e\xbf\xdf\x3b\x1e\x30\xe7\x53\xe6\xd8\xc3\xc1\xa0\x27\x1e\x57\x0e\x74\xc2\xb3\x4f\x7a\x27\x27\x83\x61\x9f\x39\x9f\xb3\x58\x54\xd1\xef\x40\xe6\x2b\xcf\x5f\x60\xd9\x4e\xe7\xb4\x0b\x3c\xc3\x95\x9f\x7c\xc2\x16\x86\xc7\xc7\x56\xb7\xdf\x67\x57\x81\xe3\x5e\xc3\x49\x03\xbf\x21\xf0\x7d\x33\x27\x58\x45\xe1\x8c\xbe\x77\xad\x3e\x14\xc7\xfe\xe0\xec\xe0\xc3\x8d\x1f\x01\xe7\x6b\x9f\x5a\x83\x41\xd7\xea\xb2\xab\x18\x98\x0c\xbb\x63\x9d\x74\xfb\xdd\x1e\x54\x95\xc5\xc1\xe6\x36\x8a\xa0\x74\x7f\x70\x3a\xec\xf6\x3a\xcc\x75\x80\x96\xa6\x2a\x86\xdd\xe1\x70\xd0\x3d\x61\x44\x45\xc5\x1e\x10\xd5\xd4\xe1\xde\xa0\x0b\x49\x91\x4b\x54\xa5\xdd\xe9\x1d\x9f\x9c\xf6\x8f\xd1\x37\x6d\xec\x04\xd8\x89\x7e\xbf\x7b\xdc\xc5\xd7\x10\xb8\xa4\x5b\x2f\x16\x75\x0d\x4e\x3b\xa7\x27\x1d\x4a\x4e\xfc\xe0\x9a\x7a\x3b\x80\xda\x98\x1b\xfb\xab\x24\x82\x3e\x41\xb9\x1e\x22\x04\x77\xe3\x84\x12\x54\xb8\x8a\x04\x74\x7b\xa7\xf4\x42\xdf\x7a\x83\xe3\x6e\x8f\x5e\x17\x51\x00\x8c\x71\x8c\xdd\xef\x5a\xa7\xdd\x53\x99\x6b\x11\x3b\x1b\xbb\x03\xff\x3b\xb5\x3a\xc7\x32\x05\x7d\xe1\x76\x07\x43\xa8\x5f\xbe\xef\xe4\xb8\x5e\x3a\xd7\x3e\x54\xd3\xef\xf5\xba\x03\x51\xcd\x0a\x6f\xbb\x52\xc7\x3e\xed\x58\xa7\xc3\xbe\x68\x31\x0a\xfc\x1b\x4f\xd4\x36\x18\x9c\x1e\x9f\x9e\x8a\xac\x91\x70\x3e\x88\xa3\x3f\x06\x38\xcb\x34\x77\xe9\x43\xcf\x2c\xab\x6f\x59\x9d\x2e\xa5\xc5\xde\x8c\xaa\x03\x9c\x4a\xef\x09\xcd\x1d\xcc\x7c\xcf\x3a\xe9\x77\x44\xb9\xc4\x73\x44\x03\xb0\x18\x4e\x01\x6a\x22\x11\x81\x4d\xa0\xe8\x1f\xf7\xfa\xbd\xfe\x71\x91\x4a\xa3\x45\xc8\xf5\x4f\x07\x7a\xaa\x57\x4e\x85\x35\xfe\x29\x8b\x7c\x98\xc4\x41\xf7\xb4\x2f\xd2\xd4\xe2\x18\x9e\x9e\x0e\x10\x76\x9e\xb7\x5e\xa3\x6d\x0d\x8c\xa3\x33\x3c\xc5\x46\x20\x25\xb9\xde\x88\x86\x4f\x3b\x83\x0e\x9b\xf9\x2b\x6a\x70\x78\x0a\x6b\x68\x38\x10\xef\x9e\xf6\x1e\xcd\x16\x72\xce\xbb\x96\xd5\x83\x11\xb0\xb9\x0f\x54\x50\xec\xc3\x9a\xed\x20\x80\x3a\xfd\x21\x83\x95\x01\xab\x45\xed\x11\x58\x09\xa7\x00\x34\x54\x21\x4b\x52\x39\x55\xdd\x61\xef\xa4\xdf\x05\xda\x1e\x18\x5c\xdf\xa1\x1e\x75\x4e\x61\x49\x2c\xd0\xc4\xe2\x2a\x8a\x23\x5c\x30\xb0\xd6\x60\x7f\x2c\x96\x51\x92\xaa\xba\x7a\x9d\x21\x64\x65\xb8\x32\xb0\x10\xbc\x40\xcd\xda\x3a\xe9\xf7\xba\xa7\x1d\x4c\xc2\x41\x40\x0b\x1d\x9c\x0a\xd1\x66\xaf\x7b\x3c\x3c\x11\xcf\x1b\x2f\x80\xb5\x0b\xfd\xed\x5b\x3d\xd8\x39\x8c\x86\xa8\x72\x2f\xa3\xd0\xdb\xcc\xbc\x5b\xb9\x61\xa1\x07\xcb\x28\x55\x70\xeb\x9d\x1c\xf7\x2d\x74\x9d\xec\x3b\x21\xce\x76\xa7\xd7\x1f\x9c\x0c\xba\x7d\x4a\x5a\x44\x04\xc5\x5e\x0f\x72\xdc\x44\xf1\x86\xc6\x0e\x1d\x04\xaa\x51\x2c\xbf\xc1\xf1\x09\x74\xd9\x62\x81\x03\xdc\xea\xcc\x8b\x21\xa5\xd3\xeb\xe2\xca\x50\x29\x00\xd9\x64\x49\xe5\x7a\x3d\x00\x77\xe0\xdc\x86\xa2\xf7\x27\xb0\x96\x4f\x8f\x87\x2c\xf0\x60\x45\xc1\xca\x9b\xcf\x71\x61\x21\x6c\x01\xc7\xb0\x00\x8f\x1d\xb1\x95\x60\x2f\xc1\x12\xef\x8b\x24\xb9\x6b\x07\xc7\x43\xf4\xd2\x2a\xd3\x70\x93\x75\x00\xb8\xb0\xc2\x4f\x45\x52\x0e\x40\x05\x18\xc0\x6b\x27\x5d\xec\x16\x7d\xa5\xfd\x06\x9b\xb9\xdb\x83\x8d\x29\x93\xc4\x0a\x3e\x3d\x81\x4d\x97\x27\xed\xe6\x52\x40\x1b\x9c\xf4\x87\xb2\x8f\x6a\x47\x40\x22\x4c\x47\x57\x26\xaa\x2d\xd1\xed\xf4\xbb\x27\xa7\xb2\x59\xb5\x30\x21\xc1\xea\xf5\x65\x2b\xc5\x96\x38\x3e\xe9\x01\xe6\xed\x95\x92\xbd\xdd\xe4\xd4\xf3\x02\x09\x16\xe8\x04\x6c\x2d\x91\x9e\x0f\x13\xa6\xa7\x73\x82\x89\x2b\xc4\x61\xdd\x13\x8b\x1e\xe5\x7a\x81\xa5\x84\x53\x19\x00\x2a\x0f\x09\x24\x83\x21\x20\x42\x85\x36\xf2\x25\x0b\xc8\x3e\x82\x21\x21\xee\x1c\x5a\x27\x0c\x7d\x68\x65\x2b\xed\x14\x80\x45\x73\xdc\xeb\x76\xe5\x07\xb9\x75\x06\xf2\x55\x61\x91\x6e\xb7\x83\x2b\x5b\xa6\xae\xb3\x78\x1d\x78\xb0\x71\x01\x47\xc3\x99\x23\x12\x73\x28\xf5\x4e\x8f\x4f\x60\x2d\xa8\xe4\x1c\x75\x9c\x58\x27\xc7\xc7\x00\x3d\x99\xbe\xc6\x83\x50\x94\x18\xf6\x3b\xb0\x22\x44\x7a\x81\x28\xfa\xb0\x36\x7b\x96\xca\x2f\x90\x85\x58\xd3\x40\x12\x76\x8e\xa1\x5d\x7f\x16\x16\x0b\x0b\x00\x00\x5b\x0b\x12\xc3\x14\x5d\x61\xae\xf0\x04\xeb\x76\x4e\x06\x50\x81\x9f\xa4\x9b\x38\x4a\xd4\x21\x86\x45\x23\xd7\x75\x12\x3f\x94\x29\xdd\x53\x16\x3a\x37\xce\xdf\x51\x8e\x13\x86\x27\x43\x58\xb7\x90\x08\x8b\x06\x0e\x21\x58\x80\x68\x47\x0c\x5f\x00\x15\x0f\x06\x98\x80\x3e\xd1\x71\x4f\xf6\x60\xd5\xd3\xdb\x2c\x76\xae\xec\x63\xab\x7f\x72\x0c\xc8\xac\x40\xc9\x80\xda\x60\xc3\x8b\x77\xea\x3e\xe0\x84\xd3\x1e\x1c\xa4\x0a\xb6\xfd\x1e\x6c\x00\x98\xfa\x35\xf0\xd8\x1a\xaa\x18\x0c\x07\xc7\x30\x54\x91\x4c\x60\x02\x74\xda\x85\xed\x24\x92\x0a\x38\xc1\xda\xe9\x9e\xc2\x5c\x50\xb2\x06\xa6\x7e\xef\x04\x50\x4d\x0f\x92\xd7\xce\xc6\x81\x91\xad\xc5\xc6\xb5\x8e\x8f\xd9\x1a\xa5\x18\xeb\x6c\x3e\xa7\xb1\xc2\xff\x21\x9b\x17\x67\x88\x2f\x86\x27\x80\xf6\x99\xda\x1b\xc3\x8e\x05\x6b\x68\x1d\x64\x2b\x3c\xa3\xbb\xfd\x61\x0f\x0a\x47\xb7\x33\x89\x64\xa1\x6d\x38\x23\x60\x27\xca\x25\x81\xab\xec\x18\x76\x32\xa0\x5c\x0f\x20\x2c\x53\x87\x43\x58\x12\x70\xfc\xca\xe1\xc3\x52\x82\x41\xc0\x84\x6c\x24\x3d\xd0\x85\x33\x75\x00\x47\x4d\x1c\x6d\x1c\xb1\x1f\x60\x9f\x0d\xf1\x98\x48\x9c\xd9\x2c\xf0\x44\x36\x98\x5d\xd8\x0d\xc7\x2c\xdf\xa3\x80\xfc\x60\x3b\xc3\x7b\x38\x53\x35\x0d\xad\x1e\x94\xec\xb3\x62\x31\x5a\x03\x48\x3a\xc6\x84\x64\x09\xdb\x8a\x40\x00\xa3\x38\x61\x89\xef\x85\x21\xec\x13\xc8\x30\x3c\x86\xe5\x0a\x74\xc1\x0d\xa2\x3c\x40\xfd\x5d\xc4\x1a\xa5\xfd\x0d\x94\x49\xb1\x90\x61\x34\x96\x35\x94\x29\x62\xb3\xf7\x60\x4e\x61\x4a\xb5\x7d\xae\x52\x42\xb9\x91\x07\xa7\x30\x97\xa5\x45\x3f\xe8\x5b\xd0\x6a\x8e\x02\xfa\x43\x20\x22\x00\x2e\x29\xa2\xbf\x1e\x6e\x16\x7c\xf1\x00\x3f\xc2\x90\x4e\x87\x44\x47\xa6\x00\x4c\xc0\x41\xb0\xc6\x80\x74\x49\xa3\x95\x93\x46\x84\xf5\x8f\xe1\x4c\x67\xda\xce\xe9\x0e\x60\xe1\x0f\x99\x3c\x60\x61\x29\xc1\x51\x7c\x32\x64\xb7\x4b\xcf\x49\x89\xb2\xeb\xe1\x88\x8a\x03\xf0\x18\x8e\x16\xf1\x9a\xac\xa2\x6b\x45\xfc\xc1\x06\xd0\x30\xd1\x10\x05\xc8\xe2\x5d\x2d\x47\x58\x11\xd6\x71\x7f\x6b\x8e\xbe\xaf\x52\xa4\xc3\x8b\xf4\xef\x1d\xe9\xde\x67\x23\x9c\x63\x93\x84\x9b\xb2\x44\x31\x7f\x4d\x3e\xd7\xee\x96\x31\x7f\x81\x92\x7c\xf2\x0e\x97\xdc\x3c\x6a\x63\xc3\x7c\xf3\xbe\x52\xdf\xcd\xe7\x1e\x93\x3a\x8f\x23\x61\x63\xfc\x96\xbc\x0a\x31\x21\x87\xf2\xc6\xb1\x9d\x51\x9c\x79\xcd\x49\x5f\xac\x3b\xd7\x7d\xc4\x42\x20\xca\x7d\x11\x4b\xcd\x29\x34\xa0\x35\xa9\xc6\x50\xc4\x27\x8f\x2a\x75\x14\xbe\xf1\xbe\xe4\x3a\x39\xab\x0a\xde\x91\xee\x95\x4f\x4b\xe5\xd1\x15\x98\xae\xb1\xa0\xfb\x05\x40\xb6\x20\x32\x45\xe8\x1f\xfd\x5e\x42\xf7\xe9\xec\x08\x8d\x43\x18\xc1\x3f\x6b\xff\x6c\x14\x3e\x12\xda\x1f\x6b\xed\x05\xfb\x67\xad\xf6\x4f\xb3\x01\x5f\x6c\x65\x19\x82\xec\xd0\x7b\x6f\xf1\xfa\x6e\x6d\xfc\x73\x82\x25\x1a\xb5\x8f\xe1\xb4\x66\x52\xa4\x2e\xa4\xce\x5f\x46\x33\x0f\x66\xd0\xd2\x74\x90\xa8\xdf\x15\xde\x08\xe2\x9d\x2c\xef\xa3\xdb\x04\xbe\xea\x56\xa0\x74\x05\x97\x47\x16\x88\x31\xa9\xd9\x51\x81\x1b\xb0\x2f\xdf\xa9\xcc\xb5\x59\x8d\xd5\x64\xbe\xfb\x5a\x63\xd7\x09\xbc\xa6\x64\x45\x6e\xac\x85\x26\xab\x30\x22\x6e\xd4\xec\x6f\x66\x13\x8a\xa6\x32\xad\x6d\x25\xc0\xa0\x36\xf8\xb0\xc5\x4b\x0a\x9e\x8e\xcb\x7d\xca\xad\x41\x71\xca\xd0\xa1\x8d\x9d\xa1\x14\x57\x1b\xc6\xe1\x75\x4b\x23\x4a\xce\x78\xa0\x06\x45\x8e\x3b\x33\xf5\x96\xf1\x67\x1d\xe6\x4b\x16\x3b\x21\xe5\xdb\x3e\x79\x1a\xd4\x60\x0b\x7b\x47\x77\xca\x37\xf2\x1a\x0d\xf4\x09\x50\x99\xd7\x33\xa9\xc1\x5e\xff\xd9\xee\x07\xb4\xee\x16\x97\xb2\x8d\x86\xb7\x4d\xb8\xd7\xe8\x4a\x2f\x3f\x7b\xf9\xd4\x3c\x75\x7a\x14\x42\xcb\xc8\xd0\xd1\x4b\xc7\xda\x6b\xab\xd1\x35\x8f\x8e\x1a\x8d\xc4\xb4\xe9\x63\x4c\xbe\x57\x9f\x59\x78\xe5\x91\x9b\x94\x03\xb8\x8a\x45\x56\x13\x8b\xec\x9f\xc2\x16\x7b\x14\x9c\x25\xa3\x3c\x0c\x80\x5e\x73\xd2\x68\xa0\x44\x5f\x38\xf1\xa4\xaa\x4d\xac\x38\x77\x11\x26\x3a\x66\x1e\xe8\x57\x82\x8a\x98\xe8\x98\xb2\xd1\x70\x0a\xb7\x62\x31\x40\xc4\x35\xd1\x52\xda\x0f\x33\xaf\x50\xf7\x93\x3d\x65\x49\xd3\xc9\xd5\xd3\xf3\xd4\x22\x08\x99\xb0\xd3\xba\x87\xed\x8e\x7f\xd0\xb4\x80\x05\x85\x9d\x5f\xc2\x2d\xd4\xd0\x40\x07\x6a\x18\xc2\x0c\x9a\x8a\x46\xc5\xa4\x2d\xc9\x71\x11\x24\xfa\x47\x47\xb1\xf8\xb6\x54\x66\x36\x8c\x4a\x8c\xd2\xa3\x23\x89\x5e\x96\xa4\x60\x39\x07\x08\x98\x0f\x0f\xd2\x7e\x6c\x99\xf7\xcc\xc1\x65\x37\xdf\x0d\x6b\x4f\x73\x5e\xf6\x9b\x46\x71\x2a\xcd\x7c\xc3\x89\x22\xb4\xe3\x52\x53\xcd\x3b\x8a\x3a\x84\xad\x52\x8e\x43\xaa\x74\x3b\x4a\xae\x7a\x42\x33\x26\xc3\xc2\x14\x7a\xa7\xfc\xc3\x91\x3b\x21\x81\xe1\x27\xd9\x0e\x1a\xca\x83\xff\xa6\x7b\x1a\x8c\x6a\x0b\x1c\x8a\xdf\x10\xc1\x20\xc2\xa9\xb9\x2d\x50\x9a\xa9\x36\xeb\x47\x52\xaf\xd4\x87\x55\xed\x02\x06\x6b\xf6\x77\x0a\x91\xc4\xcc\x85\xb3\x46\x1c\x39\xb8\xf3\x59\x0d\x8d\x81\xdb\x90\x58\xa3\x93\x28\xd5\xbe\xfe\xff\xd4\xd7\xd4\xb9\x6a\x26\xde\x1a\xfd\x99\x7b\xb3\xa6\xf0\x75\x24\xdd\xf1\xfd\xdb\x61\xbf\x38\x2c\x74\x59\xea\x32\xcf\x65\xb1\xb0\xdb\x98\xdc\x89\xab\xbc\x1a\x7a\xa9\x01\xac\xfb\x22\xf4\x57\x74\xd3\xf0\x5d\xec\xac\xbc\x9a\x39\x7d\x78\xd0\x3b\xad\xdd\x4d\x87\xac\x73\x6c\x92\xdb\x07\x0a\xd9\xf2\x54\xd5\x7d\xa5\x9b\x0f\x3b\xb0\x27\x9d\x22\x17\x2a\x2c\x0a\x8b\x7a\x8d\x14\x17\xb2\x6b\x43\x5d\x76\xc6\xe6\x36\x20\xa0\x50\x84\x89\x1b\xfd\xe2\x8c\x7f\x71\x5a\x21\xf7\xed\x7f\x3b\xdc\x87\x31\xc1\x9f\xd0\x7d\x78\x30\x52\x97\x97\xae\xde\x53\x17\x36\xb9\xcb\x81\xaa\x73\x8d\x4f\x64\x34\xae\xfa\xda\x9a\x23\x97\xa8\xcb\xb8\xde\xe0\xe5\xff\x87\x54\x0a\x7a\xe3\x28\xdb\xf3\xdd\xa4\x56\x9f\xb8\xef\xa6\x1c\x46\x58\x37\xd2\x42\x5c\xd7\x41\x5f\x15\xa6\xd9\x4e\x6d\x3d\x8b\x14\x8a\x65\x2e\x9f\xd4\x36\x78\xd1\x0c\xff\x1c\xf8\x37\x87\x7f\x6b\xf8\x17\xc2\xbf\x8f\x77\x57\x03\x54\x08\x86\x7f\xf0\xdf\x35\x3a\x6f\x82\x7f\xdf\xc3\xbf\x0f\xf0\xef\x1d\xfc\x7b\x5d\xc3\x70\x83\xac\xf6\x67\x6d\x4a\xeb\xe5\x55\x4a\x6e\x64\xc5\xd2\x7a\x47\x2e\x37\x2a\x5d\xeb\xe4\x42\x4f\xb4\xea\xb3\xce\xc8\xb6\xaf\xce\x31\x98\x76\x4a\x5a\xe7\x6a\xb0\x50\xe6\xbd\x70\x72\x88\x36\x32\xbc\xd3\xd0\xae\xf1\x3b\x70\xbc\x75\x1b\xb9\x76\x40\x98\xeb\x06\x74\x2c\xcc\x9b\x8b\x92\x9b\xc0\xc5\x17\xd2\xcf\x3e\xeb\xd5\xb5\x4a\x0c\x3c\x23\xdb\x3d\x13\xeb\xcf\xdc\xc9\x49\xc3\x6b\xf7\xa4\xaa\xaf\xef\xf2\xb6\x31\xb6\x8d\xc9\x7f\xee\xd1\xa8\x67\xf2\xfc\x8c\xff\x07\x5d\x41\x1b\x93\xc6\xc7\xe6\x37\x94\xf4\x8f\xff\xc1\x1f\x0b\xfe\x7d\x9c\x35\xe0\x2f\xc3\xa7\x56\x73\x2c\xde\x26\x4e\xf3\xf3\xb7\x90\xa1\xed\xb3\xc8\xcd\x65\x8f\x57\x55\xde\xc1\xc2\x5c\xc2\x69\x74\x61\xae\xdd\xaa\x3c\xe2\x7b\x6b\x1e\x47\xab\x97\x12\x61\x93\xd2\x45\xf4\x85\x0a\x4f\xd0\x21\xd2\x17\xf2\x74\x86\x90\xe9\x8f\x2f\x67\x82\x97\x5f\xd7\xc0\xf0\xbc\x74\x12\xb2\x76\x5b\x54\x7b\x5b\xc4\x42\x30\xfb\xae\x9f\x08\x74\x05\x98\xe3\x70\x46\xa0\x8f\xa2\x10\xf5\x64\x9c\x80\xb2\xce\x0f\x67\xfd\xce\xbf\xf3\x66\x94\x29\xae\xcc\x74\x60\xe5\xe4\x25\xb5\xeb\x85\x62\x45\x58\x94\x11\xe3\x8d\xe2\x8a\x1a\x50\x80\x75\xe1\x3e\xcd\xa1\x59\xc3\xad\x89\xe7\x96\xeb\x12\x46\x18\xfd\xad\x5f\x11\xdc\x2f\xbc\x14\x53\xed\x03\x17\x7d\x97\x68\x97\xfd\xeb\x87\x97\x14\x2d\x04\x01\x86\xd9\x37\x5f\xce\xbd\x91\x99\xbf\x03\xdc\xf2\x27\x20\x8f\x2f\x95\x50\xf9\x64\xb1\x1f\xa2\x2c\x4e\xbe\x54\x86\x32\xc9\x02\xe7\x7e\x10\xa0\x0f\xe7\x28\x9c\x7d\xb1\x9c\x9e\x37\x2f\x1e\x66\xa9\xf7\x84\x92\x94\x4d\x15\x02\x7a\x62\xf9\xc5\x22\x98\x49\x16\xb8\x78\x5a\xff\x2e\x4a\x5d\x43\xb4\xfb\x68\x09\xcc\xa0\xe5\xfd\x0c\x8b\xf1\xe7\xf9\xbc\xe4\x49\x34\x2f\x65\x6d\x85\xa3\xbe\x9f\xe7\x87\xab\x94\x19\xb0\xca\x64\x7f\x71\x04\x2e\x32\x76\x72\x45\x68\xa6\xb4\xad\x4b\x4d\x6d\x45\x96\xdc\x1c\x28\xb8\x79\xb4\x5c\xd5\x92\xc9\x0b\xab\x8f\x8f\xd6\xb0\xb7\x7a\xf2\xe2\xf4\xe5\xd1\xb2\x87\x16\x52\x5e\x85\x9e\xe1\x0b\x35\xed\xad\x29\xad\x12\xfa\xf6\x78\xf9\xdd\xe5\x55\x94\xc6\x2f\x8f\x96\xad\x58\x69\x79\xe9\x8b\x27\xf4\x7d\x77\xd1\x89\xc2\x98\x7a\xb0\x98\x38\x74\x02\x81\x64\x0a\x0c\x33\x72\x5c\x8a\xd6\xc5\xbf\x4b\x2b\xe3\x74\x71\xf8\x3e\x73\xa4\x7f\x27\x35\x6a\xc0\x6f\x78\x1d\xb7\x65\x65\x24\x49\x19\x72\x4c\x11\xb6\x34\xfc\x62\x98\x0d\xc2\xbd\x55\x07\x40\x29\x1b\xa1\x45\xea\x51\xc2\xe5\x83\xd0\x6d\xcf\x93\x5b\x19\x50\x3c\xea\x13\x3c\x17\x9f\xa1\x9f\xbb\xc3\x28\xdc\x6f\xba\xae\xd1\xf5\x7a\xcc\x2a\x85\x3e\x3a\xd8\x5b\x46\xef\x12\x39\x88\x17\x81\x62\x01\x7d\x57\x0e\x5b\x84\x6b\x2a\xf2\x3d\x3a\x5c\x91\xa5\xd9\x11\x83\x85\x6e\x27\x12\xcc\xa5\xb1\xe4\x23\xc5\x0f\xbb\x03\xfd\x79\x8e\x1d\xad\x30\x3c\x97\x90\xd1\x0c\xe0\x75\x72\x24\x6c\xa6\xcd\xa1\xd7\xaf\x8b\xae\x96\xf1\x11\xf4\x28\xad\x4a\x05\xda\xee\x64\xd8\xf7\x06\x30\xa0\x49\x2d\x81\xb3\xcf\xd9\x90\x19\x97\x7c\x48\x81\x7e\x16\x4f\xb7\xde\x2c\x54\xcf\xe9\x12\x76\xb2\x78\x9c\xc7\xbe\x78\x48\x1c\xe8\x0f\x3e\x4e\x0f\x48\xa5\x52\x7e\xdc\x14\x57\xe5\x1e\x8c\x03\x1d\xb8\x57\xae\x4a\x43\x5b\x95\x66\x15\xf0\x9b\xea\x65\x43\x13\xf1\xed\xf1\xa1\xc5\xba\x37\x6b\xc7\xf5\x92\x22\xe7\xce\x1c\xaa\x9e\x29\x08\xe7\x8d\x54\x81\x5a\x9f\x27\x94\x6c\x00\x4f\x4e\x5d\x69\x1f\x43\xff\x30\x4a\x23\x79\xd6\xc6\x61\x36\x6a\x49\x6d\xca\xbd\x7c\x7e\x65\x0a\x4d\xbf\x57\x9a\x79\xfc\x22\x6a\x84\x02\xff\x6f\xf4\x4c\x90\x25\xad\x5b\xcf\xbb\xc6\xda\xc4\x6c\xab\x94\xa4\x48\x2a\xd6\x22\x7d\x50\x2b\x55\x7e\x2c\x2d\x56\xcc\x20\x57\x6b\x9e\x43\xbc\xd3\x4c\x27\x2e\xbf\xaf\x35\x6b\x36\xb0\x00\x97\x76\xed\x9b\x1a\xb3\xec\x9a\x55\x03\xb8\x03\x79\xfc\x9f\x8f\x49\x1d\x68\xdd\x36\x5b\xe2\xcb\xb7\x6d\xa4\xfd\xc9\x85\x5c\x95\x65\xef\xbd\x08\x07\x27\x02\xb4\xd9\xef\x52\x52\xdb\x85\xa5\x2c\x13\x7e\x4e\x49\x9f\x50\xb8\x8d\x27\xc2\x4b\xd4\x64\xdc\xcf\x80\x90\x5c\x39\x81\x5d\x6b\xd5\x58\xba\x8c\x32\x94\x5b\x27\x36\xb2\x9e\x0b\x20\xf5\xd6\x40\x9a\xda\x93\xde\x94\xb9\x59\x1c\x7b\xa1\xbb\xb1\x27\xb5\x7f\x20\xc7\x32\x65\x68\xdc\x4f\x98\xb8\xf6\xad\xf3\xcd\xb7\x57\xdf\x7c\xeb\x7d\xf3\xed\x1f\xdf\x7c\xfb\x67\x8d\xbe\x40\xea\xaa\xfd\xed\xac\x8d\xef\xa9\xc8\xf5\x83\xfd\xed\xb9\xfd\xed\x45\x0d\x65\xfa\x7e\x04\x8d\x4c\x6a\x2f\x90\xe5\x79\x77\x4e\xb5\x6d\x30\xe1\x42\x6d\xb0\x73\xb5\xc1\x3e\xe4\x1b\xec\x77\x6d\x83\x7d\x28\x36\xd8\x77\x6a\x83\x5d\xe4\x1b\x8c\x25\xcb\x28\xc6\x15\x20\xab\x14\xf5\x89\xca\x44\x45\xa2\x0a\x51\x5a\x14\x85\x52\x2b\x44\x78\x58\xe4\x27\x27\xcc\x9c\x98\x2a\xf7\xae\x62\xf9\x78\xee\xc4\xee\x12\x7e\x5f\xac\x63\x3f\xa0\x77\x4c\xfd\x29\x0b\x3d\xfa\x09\xf0\xed\x45\xb6\xc8\x12\x54\x30\xbe\xf0\xd6\xa9\x47\xf1\xf9\x58\xed\x67\x37\x8d\xc4\xd3\xdb\xe8\x46\x25\xbe\xf2\x5c\xf1\x28\x3b\x7b\xae\xb5\x2d\xda\x15\x4d\x8a\x06\xf5\xe6\x44\x6b\xa2\x31\xd1\x92\x68\x43\xd4\x2f\xaa\xae\xa1\x5f\xf3\x9c\x55\xe4\x0b\xb7\xa5\x2f\x0f\xe4\x76\x17\x1e\x89\x8b\x5c\x4f\x27\xb7\x13\x1b\xb8\x59\xf8\xb7\xeb\x65\x59\xf8\x46\x25\xb7\x65\x6c\x0d\x0c\x36\xbc\xaf\x5d\xa5\x4b\x26\x7e\x94\x83\x2c\xe1\xb8\x26\x6d\x70\xc8\x90\x0a\x4f\x35\x09\x3d\xff\x1f\x74\xc7\xbc\x43\xf7\xc9\xcf\xa2\x08\xff\x32\xf9\x97\xc8\x15\xbc\x76\xc5\xa1\xe6\x8d\xc4\x48\x50\x88\xea\x39\xbb\xb6\x9c\xc0\xf7\xde\xb8\x7b\xde\x7c\x5b\x38\x54\x73\x7c\x03\xd8\x84\x1e\xa7\x94\xd9\x4e\x3c\xe9\x3f\x96\x34\xd7\x61\x57\x7e\xe7\xe1\x72\xda\xe5\xac\x12\x81\x30\xa3\x95\x97\xc6\x1b\xf2\xe8\x20\xf3\xbd\x8c\x02\xe9\xb6\xe3\x90\xcf\x5d\x0c\x28\x29\xf2\x26\x0c\x3d\x45\xe9\x1e\x48\xa4\x0b\xe8\xc4\x23\x9f\x4f\xa5\x06\xb6\x6c\x06\xbd\xb9\x58\x2f\xbd\xbd\xce\xc0\x19\x4e\xc9\x48\x0c\xbf\x8b\xfc\x70\xd7\x3b\x3f\x7a\xd0\x74\x01\xe7\xcd\xfc\x10\x76\x64\x82\x8e\x18\x30\x17\xd9\xab\x90\x71\x22\x43\x43\x52\x28\x7c\x9e\x05\xa9\x5f\x55\x83\xde\x79\xbd\xa6\x03\xfd\x0f\x85\xb7\xab\x83\xed\xbc\xf1\x43\x4f\xb0\xbb\xbb\xed\x78\xc6\x4e\x57\xc9\xeb\x39\xf5\xeb\x70\xa1\xaf\xeb\xdc\x5c\x00\x57\x56\xfd\x2e\x0a\x36\x8b\xbd\xc9\x5a\xee\xf5\xa3\x80\x4e\x55\xfe\xaf\xec\xc2\x52\x75\x01\x6a\xfd\x5e\xce\xf1\x93\x16\x8e\x5c\x10\xfe\x17\x97\x0e\xad\x18\xb5\x2b\x1c\xd8\x14\x55\xd2\xc7\x15\x46\x6b\x2a\xed\x1c\x68\xf1\x1c\xf6\xf5\xca\x95\x7e\xa8\x5d\xb6\x51\x5b\x0c\x3e\x00\x62\xd8\x59\x7e\xe6\xfd\xca\x6d\xf0\x7e\xfd\x93\xb3\x65\x34\xd7\xf6\x15\xdd\xf8\x5f\xa0\x9a\xbf\x7c\x7e\x1d\xce\xe0\x69\x2d\xe0\x26\x3e\xe8\x96\x2d\x6e\x8b\xd0\x01\xd0\x97\xe7\x6e\x2b\x2f\xcb\x17\xde\x56\x95\xc1\x0a\xf6\xec\x10\xba\xf5\x8d\x3b\xc2\xc6\xad\xb3\x70\x8c\x1d\x68\x84\x76\x58\xae\x42\xbe\x40\x71\x7c\xa4\xee\xf1\xab\x02\x2a\x57\x28\xc0\x48\x0e\x19\x11\x23\xe4\xcf\x85\xf4\xf8\x8e\x4f\x12\x1e\xb2\x25\x0f\xa7\x26\x9b\x93\xce\xe0\x9c\xa3\xcb\xa2\xb3\x05\xba\x93\xe3\xfa\x95\x99\x08\xa6\x2e\xc5\x9f\x6b\xcf\x98\xa4\xf5\x57\x0e\xf3\xe0\x8f\x70\x57\xb6\x52\x3e\x44\x67\x9e\xb1\x42\x7b\x48\x9f\x4f\x32\xdc\x19\xcd\x0c\x37\x89\x85\xe6\xdc\x33\x74\xe0\x99\x99\xa3\x73\xcf\x88\xd0\xbe\xfc\x0e\x7f\xa5\xd9\x5f\xda\x5c\xb3\x80\xbb\x67\xd6\xb8\x63\xc3\xfc\xdf\xf0\x08\xcd\x06\xde\x39\xf5\x80\xcd\xf8\xc2\x31\x5c\xf3\xac\x73\x42\x91\xb7\x66\xff\x31\x6e\xce\x82\xfa\xfa\xe8\x28\xa8\xa7\x67\x37\x32\x48\xc9\x06\x0a\x74\xb0\xc0\x68\x23\x7b\xbf\x31\x73\x73\xbe\x1b\x6e\xdc\x34\x7a\x43\xcb\xfc\x16\xfe\x34\xd1\x92\xfe\x50\x25\x4d\x55\xcb\xfc\x6c\x43\xe0\x50\xb5\xcc\x49\x89\x72\xce\x3d\x93\x79\xb2\x01\xcf\x1c\xcd\xc6\xeb\xb3\x74\xec\x18\xb8\x8f\xce\xf0\x67\x89\x17\x20\x4b\x80\x9c\x8d\xee\x6c\x96\x5a\x62\x82\x89\xcb\x33\x9e\x8c\x8d\x84\x40\x9d\x08\x50\x2f\x65\x01\xd3\x4e\xcf\xd6\x4f\xaf\x4a\xf4\x4a\x84\x5f\x18\xad\x78\x8c\x66\x67\xdb\xd2\xe5\xd7\x95\x5c\x19\x69\xd9\x18\xf1\x0e\x9d\x53\x25\xec\x0e\xc6\xc9\x97\x4c\x65\x0a\xd1\xb7\x61\xc9\x2a\x37\xcb\x2f\x05\x57\xf9\x45\x51\x73\x3d\xda\x34\x70\x36\x62\x9a\x8d\x71\xdc\x30\x62\x98\x31\x00\xaa\xdd\x44\xf0\xda\xb1\xe8\xd6\x0d\xd4\x37\xe3\xde\x48\xad\x4e\xaa\x8a\x89\x1f\xfd\x0a\x15\x56\xa2\xb6\xae\x8d\xd2\xc5\xa9\x79\x9f\x19\x37\x6c\x96\xef\x1e\x58\xed\xb0\x95\xa0\xed\x8d\x79\xf6\xd2\x21\x28\x34\x01\x3c\xd0\x0d\x60\xda\xca\x83\xda\x1d\x8a\x53\x12\xf2\xa5\x4d\x1e\x9a\xcf\xad\x71\x8a\x2b\xc2\x4e\x4b\xf6\xd1\xba\xc0\x50\xd9\x9f\x97\xec\xa2\x75\x99\x39\x7c\x7b\x4e\xbe\x09\xc6\xe2\x11\x8e\xe3\x50\x24\xd8\xe1\xf3\x94\xfc\xac\xe3\xcb\x73\x71\xa1\x2b\x63\x98\xb0\x35\x2b\x99\x8d\xf1\x7b\x81\x5e\x42\x0d\xbd\x78\x39\x7a\x89\x0f\xa2\x17\x35\x71\x19\x4c\x61\x81\x19\x7c\xf9\x86\xa8\x21\x62\x1b\xc0\x82\x34\x05\x45\x15\x78\x92\x56\x63\x9f\x22\xa3\x80\x74\xb1\x32\xf4\x06\x3c\xad\x81\x98\x59\x67\x1b\x77\xac\x4d\x04\x9b\xc3\xe3\x82\x9f\xc2\x94\xd8\x1b\x98\xa5\x31\x3e\xdb\xcd\x97\x8e\xdc\x4c\x4d\xf8\x52\x9e\x2b\xc0\x5a\xbb\xf7\xf0\x80\xc6\x17\x7c\x09\x15\x01\x0a\xa3\xb8\x4c\xec\x1c\xaf\xfc\x76\xd1\xf9\x95\xd2\x8e\x3e\xd7\xdc\x27\x11\x6e\x23\x07\x71\xae\x66\xa0\x2c\xe3\x52\x9c\x8b\x68\x67\xe8\xf5\x2e\x95\xde\x26\x3d\x48\x84\x33\x25\x10\x81\xa1\x33\xf3\xe1\x01\x1f\xd1\xc2\xca\x1c\x1b\x8e\x41\xa8\x8b\x2c\x5d\xcf\xe4\x0b\xa2\x34\xdc\x82\xf8\x4b\xb6\xb3\xc0\x4f\xc9\xc2\xd5\xd9\xac\x29\x99\xdc\x02\x40\xa4\x63\xfa\x0c\xf1\x46\xee\x92\x9d\x79\xb0\x71\x9b\x30\x4a\x0c\x55\x5d\x38\xe7\x13\xfe\xdb\x7c\x8c\x88\x95\x9e\xf1\x78\x04\x85\x98\xe8\x2f\xc6\xd4\x67\x46\xc4\x1d\xea\x02\x13\x75\x9f\x01\x1e\x33\xd6\x30\xe3\xc2\xbe\x17\x30\x3a\x75\x40\xdd\x5c\x9e\xf3\x3b\x61\x66\x09\xed\x70\xce\x93\x87\x07\xf1\x30\x1f\x4f\x26\x16\x34\x0d\xff\xa6\x2c\x7f\x9a\xda\x93\x09\x2c\x56\x48\x81\xe5\x3a\x9d\x6e\xb7\x86\xa9\x80\x8f\xb6\x43\x71\xe4\x97\xbd\xd7\xde\xb9\xfc\xca\xe5\x97\x2e\xbf\x75\xf9\x85\xcb\xaf\x5d\xfe\xda\xe5\x2f\x5c\xfe\xd6\xe5\x2f\x5d\xfe\xb9\xea\x28\xfe\xe4\xaa\xc9\x7b\xeb\x32\x0f\xb2\xc1\x80\x3f\xbb\x30\xe2\xb4\x9e\x36\xbc\xba\xd7\x88\xeb\xb9\xc6\xc2\x67\x87\x9c\x4c\xa7\x50\x31\x64\x7d\x8d\x59\x5f\xb8\x0c\x96\xd4\x95\x4b\xc9\x97\x98\x7c\x8b\xc9\x17\xae\x59\xae\x82\x61\x59\x73\x9c\x8f\xcc\x9e\x88\x68\x62\xa9\x13\x76\x31\x52\x8d\x09\x88\x9e\xa5\xa9\x11\xb7\x0b\x9b\xe7\xcc\xc4\x54\x79\x87\x73\xe7\xb2\x2b\x97\x41\x0b\x50\xff\x85\xcb\xa0\x07\xd0\x3e\xb4\x0e\xbd\x86\x3e\x43\x8f\x3f\x15\xa4\xc3\x95\xa4\x13\x2e\x3d\x6d\x27\x5f\x14\x5b\xf9\xda\x3b\xb8\x97\x3f\xe9\x87\xfb\xeb\x83\xf4\x41\x29\xdb\x85\x07\x84\xf3\x1b\x97\xbf\xf1\x8c\xb7\x1e\x7b\xe7\xb1\xbf\x3d\x36\x69\x7e\x72\x58\x13\x7d\xc6\xc0\xb2\xfc\xe0\xf2\x8e\x77\xaa\x68\x02\x37\xf0\xd7\xbb\x86\x64\x65\xc3\x74\xe1\xfe\xee\x5e\xcc\x51\xd5\x55\x0e\xc5\x77\x45\xf1\x34\xcc\xff\xb3\x0e\x82\xda\xa7\xa8\x3c\x2a\xc9\xc2\x10\x39\x22\x52\x6e\x51\xdc\x79\xc4\x9a\xca\xe7\x3f\x02\x35\xca\x1b\x18\xc2\x5e\x04\x6b\x17\x8f\xb8\xac\xf1\xb1\x33\x15\x26\x8f\xe2\x11\xb7\x5a\xb9\x0b\xd2\x1f\x91\x89\x91\xa3\x26\x13\x18\x07\x2c\x59\x18\x09\x2e\xd9\x42\xd9\x48\x74\xc8\x98\x08\x07\x48\xb9\x35\x2e\x12\xeb\x86\x82\x4d\x14\xfa\xee\x6b\xf4\x74\xff\xa2\x44\x4f\x16\x9e\x23\x3d\xe3\x2f\x8c\xa5\xd4\x8a\x9d\x5b\xfe\x97\xa7\x96\xb3\x13\x00\xc3\x99\x54\x1b\xb6\xee\xd7\x6b\x40\xf1\x28\x45\x31\x14\x74\x82\xa1\xd3\x58\x61\x89\x67\x4c\x9a\xad\x21\xeb\x9d\xb4\x8e\x85\x43\x51\x07\xa8\xe5\x20\x31\x26\xdd\xd3\xd6\x80\xf5\x07\xad\x01\x24\x93\x1d\xa0\xd1\xb1\x8e\x2d\x71\x93\x5b\xb4\xfe\x6b\xe2\x1c\xf6\x16\x23\xbc\x3d\x12\x93\x12\x91\x03\x95\x5c\x36\x2a\xd0\x01\x92\x63\x40\x88\xa5\x0f\x0f\x46\x2c\x1f\x51\xb5\x40\x3e\x6e\xcb\x41\x38\x4a\xcd\x1a\xa6\xb0\x34\x7d\x74\x98\xa8\x5c\x5a\x1a\x67\x97\x0d\x4e\x68\x3c\xda\x30\x07\x03\x36\x1c\x20\x16\x7d\x42\x75\xc7\xe5\xea\x7a\xac\x73\xda\x3a\x2d\x57\x77\xc2\x3a\x27\xe4\x4f\x57\x1e\xab\x65\x6d\xa2\x94\xc3\x32\xf1\xb4\xf5\x11\x4a\x37\x29\x15\x82\x56\x5f\x42\x1d\x2f\x83\xfd\xc2\x68\x54\x46\x0b\x40\xe2\x40\x38\x44\x48\x61\x19\x0a\xcf\x39\xc2\x25\x82\xf2\x2e\x68\x64\x67\xbc\xd5\xe9\x1e\x1d\xb5\xba\xbd\x3e\xa2\xb0\xf8\x8c\x37\x5b\xfd\xee\xe0\xe8\xa8\xd9\xea\x76\xfa\x67\xf1\x38\xb2\x29\xcf\x70\xb8\x93\x09\xbe\x62\xa6\x4e\x67\x00\x99\x1c\xdb\x37\x65\x2f\xe9\xbe\x36\xdc\x97\x05\x68\x5d\x96\x18\x16\x3b\x1d\x69\x6f\x31\x77\x8a\x37\xd9\xc1\x7d\x08\x65\xc8\x71\x2b\x82\x0d\x6d\x87\xf4\x97\x58\x7b\xd9\xb2\x7d\x7e\xa9\xe0\xd5\xa1\x5c\xfe\x18\x6b\x1c\x7c\x81\x16\x4b\xc5\x34\xfa\x0f\x4a\xea\x6f\x71\x89\x36\xcc\x31\xe9\x5e\x69\x41\xb0\x78\xda\x73\x5c\x3c\x6f\x0f\xa2\xdd\x74\x87\x32\xa2\xf1\x96\x12\xe2\x27\xd2\x4e\x69\x99\x74\xf2\xca\xaf\x71\xe9\x75\xbb\xc5\x39\x5c\xab\xeb\xed\xa7\x19\x9e\xfa\x45\x01\xb4\xb8\x8e\xca\xaf\x4e\xf9\x35\x24\x5a\x23\x4f\x31\xbf\xd2\x2e\x59\x2d\x7c\x6a\x47\x3c\xb6\x7a\x83\x3a\xb5\x93\x7f\xd1\xcc\xa8\x8d\xd2\xee\x20\x42\x47\xee\x9c\xc3\xd6\xd6\x95\x3e\xb6\x95\x33\x5a\xbd\x3a\x71\xab\xa5\x6d\xc6\x84\x0b\x4b\xe2\x39\x27\x5b\xe2\x5c\xaf\xb1\xb4\x47\x53\x53\x3b\xf0\x00\xf7\x27\xb0\xf1\x06\x03\x60\x25\xe7\xb0\xb9\x7a\x27\xf5\x00\x4e\x82\xa4\xa1\xd2\x1a\x32\x0d\x11\xad\xd8\x23\xae\x29\x16\x3b\xec\x9b\x48\xab\x16\xeb\xe9\x59\xc7\xb2\x8c\xd5\x81\x32\x15\x0d\x75\xa1\xd2\xc6\x4b\x07\xf3\x74\xba\xf4\x88\xad\xd1\xae\xae\x07\x4d\xf1\x01\x76\x3b\x3d\x57\xb5\x99\x71\x67\xa7\xcd\xae\xa5\xfa\x89\x15\x56\xb4\x49\x55\xab\x36\x87\x43\xad\x51\xc0\x21\x4f\x6a\x34\xcc\x17\x89\x3c\x66\x08\xf0\xef\x5d\xf6\xca\x65\xef\x5c\xf6\xab\xcb\xfe\x76\xd9\x77\x2e\xfb\x21\xc7\xac\x5f\x2b\x0f\x79\x85\x84\xe0\x0f\x3a\x09\xf3\xdb\x41\x4a\xa7\x94\xed\x87\x42\xda\xf1\x43\x2e\xed\x60\xef\x5d\x62\x44\x5f\xb9\xed\x2e\x8a\x10\x7f\xce\xfb\xf5\x87\xf7\x94\x8e\x5d\xe9\x2d\x5f\x6d\xd9\x8f\x79\xf9\xdf\xf5\xf2\x3f\x15\xf4\xdb\xf7\x87\xe9\xb7\x1f\xf5\xee\xfe\xfb\xe0\xa8\x7e\x54\xbd\x87\x26\x4a\x45\x7e\xca\xdf\x71\x90\xdf\x7b\x85\x28\x67\x0d\x74\xe9\xe1\xf3\x5d\x53\x82\xaa\xf0\x16\xef\x90\xcf\x6e\x6c\xf0\xbd\x33\xf3\xb3\xc4\x68\x38\x07\x42\x45\xb0\x08\x83\xa9\x13\x59\x05\xa4\x40\xc4\x81\x02\x30\xcd\x3d\xa2\x9d\xdc\xa6\xa1\x4c\x2b\x0b\x4a\xac\x7a\x5a\x10\x3e\x91\xa0\x2b\xc2\x22\x82\x24\x12\x95\x70\xb6\xf7\x5b\x03\xcd\x49\xf6\x01\xa9\xdd\xfb\x2a\x56\x21\x33\x7e\x70\xa1\xe1\xf7\xae\xf2\x5d\xb0\xc7\x7f\x28\x03\xd0\xaf\x61\x40\x32\xe3\x47\xac\xf5\xb3\x3b\x9e\xbc\x75\xdb\x9f\x91\x9c\x87\xbf\x53\xfb\x05\x24\x5c\xbb\xed\x17\x48\xe8\xc3\xdf\xa9\x7d\x01\x09\x97\x6e\xfb\x02\x59\x00\xf8\x0b\x2c\x84\x62\x26\xb0\x3f\xbb\x92\xb6\xa2\x37\x7f\xbb\xfc\x3b\x17\x78\xd8\x77\x2e\xff\xd5\x15\x5c\xec\x7e\x1f\x7e\xc6\x3e\x4c\x26\xb4\xbf\x60\xbb\xd2\x0e\x9b\x4e\xc5\xf1\x10\xfd\xbd\x1b\x72\xed\x11\x4d\x79\x60\x2a\x85\x6e\xbc\x22\x0e\x1e\x1e\x52\xbc\xfa\xb3\x37\x0c\x2f\x78\x51\x55\x3e\xa4\x48\x45\x4f\x8d\x2d\x03\xb4\xb9\xd4\x89\x8d\xa9\x5a\xef\xf6\x9b\x7f\x78\x64\xf0\xfb\x0b\xf9\xcb\xa9\x70\xb0\xbf\xb7\xdc\x1c\x53\x34\x1e\xd3\x80\x8a\x0f\x4f\x3b\x85\x1c\x5e\xb1\xa4\xd3\x71\x6a\x1b\x3b\x8b\x1a\x0e\xa3\x86\x38\xf4\x9c\x32\xe4\x8c\x5d\x42\x19\x3a\xa3\x80\x20\x5d\x62\xab\x39\x21\x74\x8b\x57\x49\x55\xf7\x8e\xbb\x1c\x51\x29\xe4\xb2\x17\xeb\xae\xd0\x64\xfc\x23\x4f\xc5\xb0\xc8\x4f\x27\x3c\xf4\x4b\x9e\xce\xf7\x89\xaf\x54\xdd\x16\x51\x73\x39\xb1\x95\x56\x13\x5b\x5a\xce\x2f\x11\x58\x5a\xd6\x2f\x92\x53\x3b\x79\xbf\x44\x40\x95\xfa\xfb\x24\x42\x69\xbf\x84\x24\x8a\xd4\x54\x68\x2b\x3f\x8b\xf7\x13\xcf\xb3\x14\x1d\x35\x73\x3f\xce\xd9\x37\xef\x53\xe6\x03\xb1\x03\x4c\xfd\x22\x0b\x9c\xaa\xc8\x15\x59\x6c\x38\xb1\xe2\xdf\x9c\x58\xd1\xfc\x4e\x5e\x3f\xb1\x18\xbb\x9b\x4d\x17\x7d\x17\xac\x1d\x3a\x1a\x47\xc9\xf4\x2b\x87\x21\xfd\x01\xbf\xb0\xcc\x31\x81\xbf\x93\x29\xf4\x90\xab\xb3\xf3\x20\x26\x6e\x01\x25\xcf\x58\x28\x14\x85\x98\xd2\x5f\x3f\xeb\x8e\xf1\xee\x08\x92\x6c\xc4\x11\x7b\xfc\x48\xa9\x69\xc5\x07\x3c\xa9\x07\xf8\x9f\x5b\x31\x58\xd7\x8f\xdd\xc0\x3b\xe8\x31\x5a\xdc\x42\x54\x6c\x3e\x0c\xd5\x5c\x79\x7e\xd8\x50\x35\x0e\x93\xdc\xca\x61\xb7\x9a\x6a\x90\x96\xe2\x5c\x4a\xaa\xee\xc2\x9c\x87\x09\x89\x14\xab\x64\xd4\xa4\x7a\x7b\xc8\x85\xcc\x18\xb6\xb7\x1a\x60\x28\x07\x88\x9a\x0c\xd2\xb5\xa4\xbc\xb9\xaa\x31\xed\x82\xca\x9e\x64\xd3\xed\x56\x8b\x97\x48\xec\x7f\xc6\x87\xff\x9d\xb3\xe1\x58\x38\x1b\x26\x54\x06\xeb\x4c\x07\x5f\xfc\x48\x31\x8f\x2f\x62\xc3\x48\x79\x23\x36\x11\x1c\x19\xcd\x15\xc6\x37\x39\xc0\x02\x7c\xb1\x2e\xba\x74\x01\x6c\x2f\x2a\x34\xa5\x03\x64\xd9\x27\xe3\x54\x13\x0f\xcc\x7c\x11\x04\xbe\x4a\x7f\x1a\x39\xd8\xb4\xf0\x03\x88\x3d\xe3\x6a\xca\x7c\x2e\x17\x15\x30\xf8\x42\x2a\xe6\x63\xbf\x98\xf4\x37\xec\x46\x09\xbe\xb9\xc5\xb7\x0c\xdd\x35\xe6\xdf\x32\xa4\xd0\xf3\x6f\x3e\x4a\x84\xf3\x6f\x7e\x59\x5b\x45\x88\xe1\x0a\xc9\x1b\x8c\x70\x5e\x8f\xcc\xba\xd7\x80\xa7\xa0\x9e\x34\xdd\xfa\xbc\xee\xc0\x3b\x34\x57\x4f\x1a\x01\xbd\xe5\xe3\x5b\xa0\xe7\x20\x37\x7b\x64\x21\x4b\xf4\x2d\xd6\xc8\xce\x45\x6b\x79\xad\x20\xc2\xaa\xa4\x67\x50\x1b\x98\x1c\xaf\x16\xde\xe0\xfc\xf6\xcc\xac\xcf\x80\xb0\x99\x09\x47\xab\x4b\x33\xb7\xb2\xd8\xcf\x1c\xb4\x57\x66\x7d\xc5\x5c\xb6\x12\x99\x17\xe6\x63\xb9\xe3\xf6\xda\xac\x63\x48\xec\xb5\x29\x63\xdc\x54\xa9\xec\x01\xd1\x1b\x7e\x3b\xc3\x3b\x10\xe9\xea\x35\x79\xb4\x52\xa7\x7d\x63\xd6\x6f\x80\x08\xbb\xf9\x62\xa5\x2b\xad\xd2\xb9\xf4\x82\xae\x11\x71\x30\x8c\x80\xe5\xb7\x18\xbc\x83\x0e\xce\xd7\x6c\xc6\xd1\xb4\x98\xf7\xd0\x48\x91\x77\x75\x32\x0f\x0f\x90\x4a\xe9\xd8\x41\x37\xb6\x72\xae\x0e\x4d\x53\xb8\x15\x0e\xbc\xa2\x2c\xc5\xba\xf7\xab\x7e\x14\x1f\x2c\xd1\x1a\x45\xc2\x69\x81\x8c\x8f\xb0\x33\xea\x98\x6c\x09\xab\x16\xe8\x5a\xc0\x53\xa8\x95\x5e\xa4\x2f\x8c\xa0\x2a\xdd\x9c\x12\x07\xef\x3d\xdd\x2d\x17\x1a\xc3\xfc\x1d\xc5\x92\x63\x43\x87\xe2\x7e\xa8\xbd\xda\x61\x29\x81\xc6\xa8\x15\x78\x22\xd7\x2e\xf8\x62\xe1\x45\x9b\x58\x63\xf2\x01\x2f\x53\xc9\x7f\xb6\x48\x45\xff\xda\x52\xa2\xee\xc3\x6e\xcf\x50\x64\x0e\x5b\xf8\x4c\x48\xd3\x03\xbc\x84\x45\x5f\xdb\xa6\x8e\xa1\x8c\x8d\x89\x22\x56\x9f\x21\xe3\x9c\x31\x49\xa4\x6a\x9d\x7e\x2a\x16\xcd\xfb\xe8\x15\x7d\x74\x8a\x3e\x46\x45\x1f\x63\xba\x6f\x4d\x79\x8c\x56\x5a\xe8\xfa\x06\x50\xd0\x59\x44\x49\x0e\x14\x89\x50\xfe\x58\xd5\xc7\x98\x39\x24\x06\x8e\x44\x1f\x93\xd4\x5b\x7f\xcd\x1c\x5d\x40\xfe\x7c\x86\xe4\x8b\x9a\x1f\x7a\x2d\x66\xe7\xe2\xa9\x55\x1b\x33\x29\xb3\x58\x89\xe1\x91\xd3\xb8\x19\x5b\x15\x40\x7c\x7a\x55\x6b\x59\xd5\x8d\x56\xd5\x9a\xdd\x4c\xff\x0b\x99\xd2\x06\xdd\xa9\x25\xfc\x06\x88\x23\xd8\xde\xa7\x74\x7b\x37\x8b\x8d\x18\x10\xd0\x06\x36\x05\x7e\x08\x60\xcf\xe3\x87\x05\x7e\xf0\x01\x11\x6c\xe8\xc8\xd9\xec\xac\x50\x63\x32\xa1\x4b\xf5\xe6\xa9\x25\x04\x0f\xf8\x72\x6a\x49\x51\x83\xbe\xb6\x55\xc6\x13\xfa\x28\x32\x9e\x50\xa1\xa9\x8e\xda\x3d\x27\x7d\x11\xbb\x4f\xc3\xec\x87\xb0\xc5\x24\x7d\x78\x38\x40\xb0\x30\x0f\x0d\xe8\x2a\x3f\x95\x88\x86\x15\x46\xea\xd8\xc4\x05\x4a\xdb\x3f\x54\x77\x65\xfe\x2a\x87\xf1\x5f\xb5\x2e\x44\x75\x51\x16\xeb\x4d\x78\x8f\xee\x28\x74\xf2\x5b\x41\xac\x79\x63\x24\xaf\x6c\x2f\xa7\x5a\xa4\x1b\xec\x27\xad\x0c\x0c\xad\xe0\x55\xf3\x5f\x54\x6b\x9a\xd3\x1d\x15\x4b\xee\x91\x2d\x66\x5b\x5b\x14\x34\x49\x50\x69\x5e\x2a\xab\x8d\xd2\xce\x05\xe5\xac\x53\xcd\xbb\x84\x6f\x5e\x99\x68\xa2\x8a\xb7\xfd\xb3\x8a\xff\xff\xcb\x35\xd9\x9f\x52\x17\xe8\x4f\x17\x5e\xf7\xae\xf1\x74\xf1\xd6\x5d\xfc\x54\x31\xd2\x6f\x2e\xbf\xaa\x3c\x60\x0b\x32\xa7\xdb\x36\x3a\x8d\x70\x57\xf5\x58\x66\xeb\x0a\xfd\x64\x74\x91\x61\x84\x28\xd9\x32\x47\x39\x1b\xfb\xd9\x5f\x65\xe9\xd2\x09\x1e\xbb\xa9\x02\x4e\xe7\x37\x57\x71\x3a\xbf\xb9\x34\xbe\x3f\xf6\xfa\x24\xef\xcd\xa9\x25\x24\xcc\xb4\x60\x6a\x47\x47\x69\x3b\x27\xdf\x90\xf7\xdc\x54\xf7\xc0\x17\x0b\xbd\x2a\x16\x20\xf4\xe1\x8f\xbc\x0f\x7f\xb8\xe5\x6b\xb6\x97\x51\x48\x2a\x9b\x55\x2e\xbc\xfe\xf4\x8c\xcb\x9c\x4d\xbb\x8c\xf7\xee\xe7\x1e\x69\x13\x8a\xde\xe6\x45\x6f\x85\xe6\xf1\x3f\x0e\xcd\x45\xa7\x0d\x8b\x30\x27\x41\x8b\xf1\x2d\xc2\x68\x85\x4d\x55\x8f\xe9\x1f\xf9\x98\xfe\xe1\xb2\x8b\x78\xff\xe2\xa8\x58\xb9\x93\x90\xa9\x89\x84\x06\x8c\x3c\xe0\x45\x6a\x9a\xcd\xf7\xce\xb4\xb8\x79\x5c\x79\xb1\x4b\xec\xec\x7e\x8b\xd7\xb1\x71\x91\x8f\xe8\x42\x8c\xe8\x5f\xe5\x11\x15\x03\x52\xc3\x81\x49\x2b\x86\x13\xc5\xe9\x32\x02\x32\x79\xbd\x3c\x34\xa4\x7f\xe5\x43\xfa\x97\x58\x2a\xbf\x1f\x06\x19\x2d\xda\x47\xd7\x2c\x0e\x35\xd4\x57\x2c\x9c\xbd\xb1\xf7\x78\x0f\x7e\xcf\x7b\xf0\xbb\xcb\x5e\x3f\x0e\xd4\x66\x5a\x0d\xd5\x70\x17\xaa\x24\xcd\x21\xaa\xed\xbc\x02\xbe\x82\xbf\x05\xf0\xbe\xa6\xe8\x0f\xca\x21\x2a\x7a\xb1\x90\x57\x8d\x05\xbe\xdf\xf5\x95\xaa\xc9\x5c\xc7\x70\x98\x35\xa5\xea\x27\x5e\x27\xdb\xc4\xac\x9a\x6c\x42\x69\x4d\x91\x88\x28\x52\xd4\x59\x5d\x87\x67\x4c\x34\x15\xd2\xb2\x44\xa0\x71\x6a\xd9\xa7\x96\xa8\xd8\x13\x15\xeb\xca\xa6\x4d\xfc\xb6\x65\x50\x03\x70\xb6\x8c\x5e\x04\x20\x5f\x2b\x46\x7f\x85\xea\xcf\xf2\xb1\xb5\xcc\x76\x02\xa1\x69\xec\x4e\x48\xf7\x31\x61\xee\xd6\x43\x5e\xc4\x00\xc3\x2e\x8e\xc2\x8c\xbf\x4e\xc9\x87\x07\xfe\xc6\xa6\x1e\x64\x97\x8c\xf1\x5d\xe4\xed\x45\xa8\x73\x6b\x14\x9d\xa5\xa3\xb4\xd1\x30\xa5\xf9\xfc\xa4\x91\xe9\x21\xe2\x30\x6c\x1b\x0a\xec\xfc\x8a\xc4\x54\x86\x82\x15\x61\x23\x8d\xcf\x34\x3d\x45\x85\x32\x8a\xeb\xc4\x81\xec\x08\x89\x26\x3d\x60\x78\x23\x79\x47\xf4\x32\x46\x91\x63\x82\xbf\x2e\xd2\x32\xe8\x42\x9d\x73\x1e\x08\x85\x98\x64\x92\xe4\xea\x35\x22\x39\x28\xde\x81\xc0\xc9\x87\x50\x24\xa3\xea\x8d\x35\x6a\x36\x53\x73\x21\xc5\x11\xd0\x78\x00\xad\x4e\x01\xfe\xb2\xb3\xc0\xdb\xcf\x47\xe9\xf3\xbc\x6e\x8a\x56\xa9\xe7\x4f\x8a\xfc\x8a\xd7\xda\x4a\x87\xce\x48\xda\xbe\xcd\xa9\x8b\xfd\x00\xa9\x28\xc0\x35\x52\xdd\xd3\xed\x63\x12\x5b\x8f\x93\x9a\x37\xda\xd8\xeb\xee\x6c\x1f\x2b\x12\x8b\x22\x40\x1f\xa4\x66\xb1\x54\xe4\x89\x56\x55\xc5\x06\x35\xe9\x7e\x72\xf3\x38\x8f\x3f\xb9\x7c\xa7\x94\x26\xe2\x04\x88\xfe\xe4\xee\x08\xfb\xb5\x68\x96\x6c\x3f\xd2\xa7\x0a\x55\xea\x35\xc9\xc7\xb5\xa5\x22\x7f\x86\xc4\x05\xc8\xf8\x9f\x2c\x13\xc1\x60\xea\xb1\x92\x60\xd4\xe3\xe2\x22\xb0\x35\xa8\x03\x61\x02\xed\x56\x5e\x15\x14\xa4\x1d\xa9\x18\xeb\x4d\x8b\x58\xb0\x16\x13\x01\xe3\x26\x19\x74\x41\xac\xc6\x1d\xa8\x3d\x3c\x18\x18\x74\xb5\x6d\x0c\x85\x53\x4a\x87\x94\x14\x4c\x53\xa9\x29\x0b\xf6\x84\xea\xc0\xb0\xf7\x14\xc2\xa8\x8e\x0a\x2c\x4d\xd4\x6d\xa9\x13\xd1\xee\x37\x84\xfc\x85\xd4\x5d\xcc\x3a\x30\x2b\x94\xd0\x99\x92\xa6\x0b\x24\xc8\xc1\x4c\xfc\x7a\xc8\xa2\x7a\x38\x15\x23\x0a\xfc\x75\x79\x0b\xef\x87\xaf\x84\xa6\x3f\xa0\xe0\x1f\xf6\x24\x8c\x30\xd0\x47\xd8\x84\x0f\xc2\x8e\x41\xd8\x23\x4c\x02\x1c\x62\xa3\xe1\xa2\x43\x93\x7b\xb1\x96\x95\xf3\x0d\x33\x47\x46\xa4\x87\x46\xd9\xdd\x29\xc9\x86\x8c\x22\xcc\x42\xd3\x31\x9b\xa4\xab\x43\x41\xa1\xbd\xe7\xf1\xc8\xc4\x90\x4d\xde\x94\x7d\x8a\x8d\x88\x25\xa4\x44\xf7\x09\x19\x87\x84\x54\xeb\x42\xb1\x2b\xde\x90\xae\x09\xa5\x11\x03\x87\x69\x11\xf0\x6e\x79\x4e\x8c\x91\xbb\x9f\xd3\xe7\xd1\xc8\xc9\x3f\x91\xe4\x0a\xa3\x68\xe6\x82\x56\xe9\xa5\xd3\x65\xff\x76\xd9\x2f\x2e\x0b\x03\x96\x06\xcc\x0b\x10\x41\xc5\xf8\x77\xf4\xb3\x26\x7f\x47\xc2\x15\x23\xb8\x1d\x5a\x99\x22\xf0\xe1\x6c\x41\xa1\x25\xf2\xb0\x12\x5e\xb3\x89\x8b\x91\x82\x49\xe0\x47\xbc\x01\xc2\x1e\x39\x0f\x0f\xa8\xfd\x40\xa0\xf3\x58\x47\x37\x41\x44\x4c\xf6\x27\x62\x32\x59\xc7\x96\xfd\x52\xba\x06\x48\x76\x65\xea\xba\x35\x08\xb6\xd1\x0a\x00\x59\x09\xb1\xb9\x9f\x7a\xe3\x22\xdd\xb1\x8b\x67\xa0\x3c\xbd\xb2\xa0\xfd\xc9\xd5\x5c\x69\xd5\x38\x28\xd8\xc8\xf4\xee\x89\x20\x9f\x76\xa5\x0c\x91\x65\xa8\x71\x29\x0e\x8f\xb4\xf5\x8e\xe2\x60\xbe\x85\x25\xf4\x16\xc0\xf2\x16\xdd\x30\xb4\xde\x42\x2a\x31\xe9\x6f\x51\x7c\xda\x7a\x9f\x47\xd1\x6e\xbd\x1f\x85\xad\x37\x08\x4b\xfc\x81\x7f\x3c\x95\xfa\xcc\xad\xf7\xe8\x65\x87\x87\xe2\x55\x98\xb9\x8e\xa1\x48\x96\x49\x9b\x57\x04\xe5\x3b\x71\xcd\x48\xcd\x41\xbd\xef\x38\xd5\x80\x27\x38\x21\x4c\x68\xb4\xf5\x56\x66\xa1\x32\xe2\x1b\xf9\xa8\xa2\x75\x8e\xb9\xa1\x21\x59\xc9\xaf\xc8\x43\xb5\x5e\xa2\x02\x5b\x88\x8d\x1f\x1d\x79\xad\x97\x23\x13\x58\xab\xd6\xaf\x50\x8e\xf3\xb8\xf5\x06\x79\xa2\xb8\xf5\x1e\x15\xd0\xb2\xd6\x4b\x40\xb6\x90\x3f\xc3\x32\x1d\x16\xab\xa2\x31\x1d\xd5\x18\x37\xf9\x3d\xfa\xff\x10\x1d\x46\xbd\xe7\x50\xf8\xc8\x6a\xfd\x8a\x9a\x21\x7a\x99\x58\xe6\xc1\x30\xee\x36\xb5\xf0\xe6\x89\x2d\xbc\x41\x17\xbe\x4f\x68\xc1\xd3\x5a\x10\x39\xa4\x93\x7e\xca\x85\x06\x4b\x18\x6b\xa2\xa4\xed\xa7\x4f\x1e\xc0\x16\xa7\xef\x1d\x25\xbc\x13\xb3\x2b\xe6\x33\x94\x93\x30\xd2\x10\x10\x56\x8f\xb1\xdb\x60\x14\x11\xcd\x31\x85\xaa\xf1\xc7\xd1\x18\x66\x2f\x32\x6d\xdf\x8e\x58\x36\xce\x00\xfa\x9c\x87\xf4\xeb\xd9\x19\xcc\x83\x67\xcb\x69\xf2\x98\x7f\x74\x14\x11\x57\xdb\x7a\x49\x23\x09\xe9\xf7\x0d\x4a\xaa\x68\x9e\xd0\xae\x32\xc2\xc9\xa0\xb9\x81\x24\x6c\x32\x44\x90\x33\xac\x2f\x84\xb4\xf7\x28\x1b\xc2\xcc\x18\x27\x16\x7e\x51\xc0\xe5\x89\x3c\x08\xe5\x98\xea\x0c\x51\x8f\x9f\xdc\x86\x60\x0e\x93\x3d\x13\x51\x57\x51\x83\xbb\xf5\x52\x8f\x06\x03\x19\x5e\x52\xc0\xd5\x59\x44\x19\xd4\x2e\xba\x94\x0e\x9d\x64\x1a\x34\x2e\xf6\x01\x3c\xbd\xc7\xd5\x84\x82\x2a\x31\x13\x59\x79\x26\x32\xa4\x6a\x20\x13\xae\xe3\x37\x18\xf3\xfb\x4d\xeb\x25\xa2\x8f\xf7\xf8\xfc\x1e\x1a\xbf\x2f\x9e\xd1\xfb\x0b\x7e\xc7\x6a\xd2\xf2\x92\x49\xb5\x6a\x68\xa1\x50\x3b\x54\x0a\x73\x6b\xad\x85\xb2\xc3\x23\xea\xf0\x36\xb7\x89\xc0\xe2\x6f\x2a\xbb\x1a\x97\xbb\xfa\xe6\xb1\xae\x16\xe9\x46\xde\x78\x5a\x1e\x71\xaa\x55\xa3\x77\x55\x0e\x2c\x3e\xd8\xd5\x7c\x53\xe2\x14\x66\xad\x5f\xb7\xb7\x4b\x3f\xf0\x8c\x67\x38\x45\x23\x31\x79\x34\x37\xdb\x6d\x41\xbc\xdc\x44\x71\x14\x46\xfe\x23\xa4\x6e\x61\x32\x2e\xbc\x35\xa9\x93\x8e\x94\xe4\x72\x09\xaa\x52\x44\xf5\xb9\xd2\x43\x8d\xb8\x54\x43\x55\xd8\xdd\xcf\x0c\xba\x0b\x77\x50\x25\x31\x08\x92\x7d\xa3\x67\x0f\xbe\xdd\x0b\xf3\x16\x4f\x9e\x26\x01\x3c\x21\x06\xc6\x43\x78\xe2\x4c\xf3\xa8\x56\x63\x77\x4f\x26\x2e\x3b\xda\x4a\xc4\x95\xaa\xa2\x09\x80\x20\x44\x0a\x6f\xba\x35\xed\xa0\x75\x77\x86\xae\xbf\xe0\xf7\x39\x3a\xb8\x0a\x5a\x9b\x33\x9e\xd1\xef\x73\xd8\x26\x28\x0c\x8d\xa6\x6c\xe2\xcb\xbf\x19\xfc\x85\x6d\x8a\x0a\xde\xd3\x51\xa2\xd4\xfb\xa1\x17\xe8\x1e\x50\xb7\x1d\xd9\x75\xe3\x54\xc5\x8e\xdd\xdf\xe9\xfe\x80\x44\x58\xa7\xf6\x4b\xc7\xc4\xa0\x96\x1b\xfd\x53\x54\xfa\xe4\xdb\x29\x4a\xf1\x85\x3d\xc9\x0b\x44\x1a\x6f\x63\x0c\x45\x0f\xe0\xcd\x80\x78\xc9\x82\x91\xc6\x60\x09\x74\x1e\xf8\xe1\x75\xa5\x8e\x85\x9c\x00\x53\x80\xf6\x91\xdb\x0d\x98\x62\xdc\xd8\xf1\x76\x3f\x94\xa7\xba\xe3\x27\x99\x9b\x8d\xd0\x0d\x5a\x3e\x1a\x1b\xa0\xb4\x8c\xde\x81\x29\x9d\xd2\xc5\x03\x86\x04\xf4\xe9\xa2\x2d\xa9\xd0\xbd\x9c\xec\xae\x8b\x47\x56\x45\x5c\x10\x1b\x42\xeb\x5a\xae\x09\x47\x2d\x93\x82\x6e\x90\x74\x9c\x53\x78\x3b\x73\x88\x70\x13\xf4\x07\x30\x39\x74\xb0\x47\xe3\xa4\x15\xdb\xf0\xac\xe8\xb9\x8c\x27\x00\xd5\x39\x65\x77\x0f\x65\x66\xf1\x73\xbf\x85\x7e\xd1\x9e\xcf\xf1\xc7\x01\x24\x0d\xbd\x99\x9b\xcf\x2d\xdc\xd4\x82\xdb\x42\x2d\x06\xe0\xd0\x7c\x04\x4a\x38\x81\x7c\xc8\xd5\x92\x93\x84\x27\x33\x26\x82\x6d\xe4\x68\xae\x2d\x78\x8d\xa7\xb2\x27\x11\x16\xcc\x64\x41\x8c\xf3\x5a\xa9\xc5\xfe\x58\x0d\x8e\xd4\x62\x81\xd3\x26\xb0\x89\xd7\x71\x10\x59\x07\x42\x8c\xe9\x60\x95\xe5\x38\x26\x8f\x54\xa6\xb7\x8e\x07\x85\xd4\x28\x0f\xa7\x3b\x95\x02\x20\x31\x4a\x65\x6e\x6a\x9b\x01\xf1\x39\x69\x76\xbc\x21\xc3\x3f\x28\xf3\x86\x47\x7c\x9a\x8e\x14\xd2\x9a\x79\x81\x93\x85\x4e\x25\x58\x76\x10\x1b\x86\xa7\x55\xab\x90\xd4\x81\xd5\xf7\x4f\x99\x33\x4b\x63\xcf\xdb\x71\x58\x86\xe7\xb2\x86\x01\xfd\x12\x3e\xf4\x8d\x92\xf2\x3f\x62\x2b\x54\xcc\xf4\x93\xb7\xce\x5b\x60\xf8\x8f\x8e\xe4\x23\x50\x0f\x52\x40\xe0\xcc\x15\x42\x0b\x01\x0d\x25\xf0\x97\x22\xc7\xe2\xc8\x9f\x71\x17\x73\xa1\xa9\x5e\xd3\x33\x1b\xf0\x9b\x34\x63\xf3\x79\xcb\xea\x98\xc1\x5e\x3b\xe4\x1a\x90\x6a\x9a\x73\xa9\x1c\x34\xc2\x98\x2e\x18\x89\x25\x54\x98\x09\xc9\x33\x2c\x3a\x67\x2e\xf2\x00\xb2\x28\xdb\xaf\x4d\xd1\x8e\x77\x78\xd0\x43\x0d\xb1\x52\x38\x52\x64\x65\x45\x91\x1c\x08\xfa\x37\xba\xe5\x14\x23\x0c\x38\xb0\x92\x46\xd6\x20\x91\x02\x3e\x46\x0d\x92\x2a\x78\x67\x3c\x60\x4b\x1e\x9f\xc1\x0e\x5b\xf0\xe5\xf3\xe7\x9d\x87\xf9\x48\x80\x06\x4f\x33\xa4\x68\x31\xb0\x7a\x32\x59\x4c\x91\x55\xcc\x5f\x78\x92\xa1\x77\x91\xf9\x38\xe3\xb0\x48\xb0\x8e\x71\xc4\x13\xdb\xc5\x8d\xba\xd7\x83\x43\x06\x63\xb8\x21\xa0\x43\x77\xf8\xeb\x9a\x05\xe4\x53\xf3\x06\x68\x5c\x8c\x68\x8a\x96\x80\x1b\x9e\xe5\xae\x17\x57\x7c\xc3\x9b\xc6\x0d\x9f\x09\x1d\xb4\x39\xb2\x43\xe8\x13\x91\xad\x0b\x21\x4e\x44\x91\xc9\x17\xc0\x6f\xaf\xcf\x16\x80\x41\x16\x26\x4c\x2c\x74\x99\x25\x70\xae\xdc\xc0\x39\x7b\x03\x98\xe3\x0e\xe0\x00\xc7\x0a\x05\x97\x84\xd7\x0d\xbe\xde\x9d\xad\x30\xee\x76\xfe\x95\xac\xbc\x36\xe2\xeb\x5c\x20\x10\xfa\xb4\x54\xcf\x1b\xe9\x13\x72\xb7\x3d\x82\xf8\x15\x6f\x9c\x1b\xb2\xe5\x85\xc9\x2e\x79\xe3\xce\x00\x18\x9b\xa3\x9b\xb3\x2b\xea\xc4\x95\xc9\x66\x67\x97\xd4\x01\x60\x03\xae\x64\xe3\x90\x7a\x29\x1b\xbe\xcc\x9b\xbd\xca\x1b\xbd\x14\xc0\xbc\xe5\xab\xe6\x0d\xbb\xe0\x9b\xe6\x6c\x74\x7b\x76\x31\xde\xf0\x59\xe3\xd6\x5e\xf1\x9b\xc6\x85\x08\x68\x4f\xf3\x83\x10\xbd\x46\x97\x8a\xa5\x9d\xe8\x1b\xd7\x2c\x64\xd0\x39\xf8\x03\x9d\x65\xd0\xaf\x10\x7b\x28\xa7\x05\x36\xe1\x75\xeb\xc6\x07\x0c\xbe\x43\x75\x60\x24\xfa\x52\xa6\xb9\x1f\x56\xaa\x2e\x2e\x33\x6c\x21\x17\xef\x15\x45\x16\x88\xfd\x65\x44\x27\x71\x66\x20\xb8\x9e\xaf\x47\x26\xf5\x09\x21\x35\xc7\x3f\x4b\xfc\xa3\x8a\x8d\x9a\xcd\x85\xda\x11\xea\xf0\xa1\x41\x15\x71\xbc\xf8\x92\x87\x3c\x11\x3b\xec\x7a\x2b\x0c\xd1\x1c\x3c\x8e\xdd\x42\x20\x85\x36\x66\xbb\x1a\xda\x88\x51\xdd\x0c\x72\x05\x19\x43\x3f\xa0\x11\xb9\x1d\xa5\xa0\xef\xc8\x27\xa3\xf7\x43\x9f\x7c\xf3\x1a\xfe\x53\x4f\x07\x40\xd1\xcc\x27\xdd\x3d\xff\xa9\xe7\x82\x2b\x8a\xb8\x58\x64\xf7\x16\xfe\xb1\x72\xea\x2c\x48\xb9\xc7\x63\x2e\x8c\x87\x6c\x94\xe0\x85\xc5\xa5\x74\x28\xe9\xbe\x18\x1f\x3b\xea\x3a\x3d\x54\x06\x48\xd0\xac\x0a\xb0\x45\xa5\x27\x13\x18\xb8\x22\xab\xb0\x3f\x4f\x3e\x4e\x0e\xf6\x46\x84\xb2\x6c\x84\x5a\xd3\x15\xed\xc6\xcd\x94\x65\x4d\x0f\xdb\x14\x87\x80\x76\x9b\xf6\x7e\x71\xc5\x17\xd9\x4e\xe2\xcf\x57\xa8\x41\xc7\xd7\xbb\xe9\x6f\xc9\x6d\x06\xbf\xd9\x4d\x97\x01\x53\x66\x99\x70\x66\x18\xf0\xf6\xa4\xd9\x98\x8e\x8d\xb1\xfd\x71\xd6\xf8\xd8\x1a\x7f\x9c\xd5\x1f\xe8\xa7\x61\x42\xda\xc4\x7b\x3d\xa5\xef\xe4\xba\xb0\xbd\x60\x51\xa0\xfb\x2f\xf6\x03\x79\xab\xc9\x6a\x8b\x9a\xb9\x13\xa4\x9c\xaf\x76\xda\x8e\xe2\x84\x4f\x2a\x44\x0e\xf9\x2d\xa4\x5a\xa1\x35\xe1\x5a\xb8\x86\x2c\xf1\xf8\x7b\x27\x77\x8e\xda\xfe\x8f\xf1\x3f\x0f\xf1\xe2\xea\xa3\xf1\xb0\x4c\x82\x8f\x86\xd9\x16\xae\x97\x53\x73\xbc\xc8\xec\x59\x66\xa3\x3b\x55\x71\x4f\x0b\xd5\x45\x29\xa6\xee\xb8\x70\x35\xc7\x9b\xcc\xae\x45\x04\x34\xaa\xff\xe8\x48\x9c\x85\xf0\x65\x9d\xd9\x37\x99\x29\x74\x33\xa7\x3b\x60\xa3\xe2\x7c\x23\xa0\x56\x79\xcb\xb5\xd9\x32\x37\xc8\xdd\x39\xe2\xbd\xa2\x13\xdb\x4e\x40\x17\x89\xf6\x75\xc6\xf0\x20\xaf\x90\xe4\x5c\x02\x01\xe4\x66\x57\xbe\x5b\xf1\xed\x16\xbe\xa1\x53\xfd\xfd\x2f\xaf\xc9\x24\x6f\x5d\xf1\xe5\x05\xd6\x47\x9a\x80\x15\x1f\xdf\x62\xb1\xc0\x49\x52\x68\xee\x65\xc6\xae\x30\xf2\xcc\x67\xf8\x05\x82\xde\xad\xca\xff\x29\x43\x75\xbc\xa0\x18\x56\xcd\x0f\x6b\xf6\x86\x45\x59\x6a\xdf\x65\x0c\xde\x9a\xf0\x58\xb3\xaf\xe0\x19\x1e\x9a\xf8\xb5\x62\x93\x5c\x65\xc6\x1d\xf9\xf6\xde\x0a\xe7\x2e\x9e\x93\x78\x15\xa4\x36\xaa\x41\xce\xbc\xbb\x9f\xe7\x46\xad\x59\x43\xb1\x06\xca\xe9\xc7\x4a\x76\x89\xee\x4a\x81\xd6\x8b\xcb\xa9\x69\xa3\x63\xda\xd8\xab\xc2\x60\xc4\x0d\xd0\x8b\x12\xd0\x39\x0f\x0f\x00\xfe\x98\x07\xe2\x3d\x86\x77\x38\x6a\x33\x23\x36\x94\xb7\x35\x61\x2c\xe7\x88\x3b\x8b\x7c\x27\xb3\x0e\x39\x7a\xdc\x59\x00\x3f\xc0\xe4\xbe\xd9\xdd\x4c\x3f\x24\x01\xff\xb0\x9b\xf8\xc6\xb9\xe2\xef\x77\x13\xdf\x93\x8f\xd6\x57\x94\x5c\xad\x95\x2c\x60\x90\x41\x6f\x50\x4d\xc2\x7b\x1d\x78\xd8\x9b\xb7\x17\x78\xfb\x15\x26\x28\xd8\x9c\xfb\x77\xad\xe4\x66\x21\xf6\x9a\x32\x7a\x3f\x54\x5d\x4e\x43\x84\x64\xc2\xe5\xa5\x2f\x52\xd8\x54\x57\x59\xea\x19\xb5\xbc\x44\x8d\x85\xa6\xf4\xdb\x95\x16\xf5\xb4\xae\x60\x7e\x7e\x73\x02\xbc\xa0\x4d\xa2\xc0\x9f\x09\x27\x95\x8a\xe9\x82\xed\xff\x0e\x58\xa1\xb1\x07\x4b\x02\xaa\xbc\xb3\x93\x00\x58\x07\x22\x5a\xdf\x65\x4f\x0a\x76\x57\x2b\xcc\x60\x6a\x0d\xe1\x43\x47\x25\x34\x6a\xa6\xb4\x0b\x94\x5f\xc4\x1b\x24\x27\xd7\xde\xed\x1f\x2a\x15\x5f\x30\x8d\x0c\x5b\x54\x1a\xbe\x40\x62\x4d\xd0\xe7\x30\x35\xf7\x8e\xdd\x61\x57\xb6\xc5\x5c\xf8\x37\x83\x67\x0f\x7e\xe7\xb6\xb5\xdd\xc1\x54\x1f\x72\x08\xfe\x90\x89\xc8\x69\x1b\x58\xcd\xf2\x9a\x4d\xbc\xb4\xae\x60\xfe\x82\x2a\x05\x91\x4a\xc9\x3d\x52\x62\x28\x3f\xc7\xe0\xce\x85\xbf\x13\x12\xa5\x4b\x0e\xec\x4f\xd8\x10\x13\x6f\x6a\x16\x42\xe5\xad\xde\x9c\xbb\x8c\xe2\xd9\xe3\xba\xbc\x2c\xc8\x75\xf6\xa0\xa7\x37\xd8\xe4\x8c\xe7\x9a\x82\xbe\x09\x34\xa3\xbc\xfc\xf2\x48\x58\x8e\x7f\x42\x0a\x79\x4e\x72\xfd\xe5\x73\x5f\xde\x0f\x04\x90\xb8\x10\x89\x0b\x4c\x0c\x1a\x3c\x9b\x2c\xa7\x40\x7b\x8c\x6e\x44\x67\x03\xa8\x4c\xc6\x07\x2f\xea\x37\x59\xd8\xe0\x01\x79\xf3\x06\x7a\x61\x26\x78\xdb\x4a\x85\x8f\xc8\xb8\x99\x84\x40\xc8\x4c\x52\x62\x32\x81\x95\x5a\x1d\xf0\x24\x17\xee\xd5\xa2\x69\xc9\x18\x19\xde\x0c\x86\x68\x85\x0f\xbf\x1e\xd6\x85\xa1\xcf\xb9\xf1\xc6\x69\x26\x75\xdf\x6c\x03\x48\xaa\xc6\x37\x07\xaa\x5c\x1f\x9f\x74\x09\x32\x83\x31\x02\xe9\xbd\x9a\x6c\x70\xa8\x40\x7c\x67\xf8\x74\x3e\x65\x57\x90\xff\x92\x03\x14\xee\xea\xe1\x68\x3d\xd9\x34\x00\x1d\x35\xce\xa7\x28\x35\x07\xf4\x04\xe8\x2f\xc9\xae\xc4\xe3\x39\x23\x21\xce\x0b\x64\xdb\xec\x2b\x94\xd5\x8b\xc7\x4b\xe1\x0f\xca\xbe\xdb\x6e\x63\xa8\x54\x2b\x59\x64\x9f\x17\xd9\x03\x99\xdd\x08\x9a\x73\x13\x95\x18\xa0\xed\x84\x00\xab\x8f\x45\x10\xd7\xcb\x9d\x71\xdc\xf2\xf5\x64\x49\x3d\x84\x31\x5c\xc0\xcb\x82\x5e\x96\xd3\x91\x71\x2b\x7c\x8e\x3e\x3c\x5c\x88\x07\x13\x25\xe0\x34\x8b\xf2\xcb\x73\xf9\x61\xac\xe4\x24\x17\x4a\x40\x72\xbb\xb5\x55\xda\xad\x4a\xbb\x00\x70\xbb\x47\x47\x7b\x36\x42\xde\x23\x33\xef\x1a\x86\x52\x7c\x12\x4d\x35\x94\xc6\x92\xec\x12\xc5\x15\x2f\xe7\x48\x77\x73\x98\xdb\x4a\x9d\x55\x5c\xf5\x49\xe1\x32\x3a\x90\xe8\xe8\xa9\xc2\x0b\x92\x40\xa0\x50\x5e\x72\x4b\x48\xad\x09\xd6\x94\x84\x12\x41\x6b\x0d\xa4\x75\x09\x7d\x3d\x56\x1f\xfa\xdb\xd1\x6b\x48\xb0\x06\x84\xcb\xf7\xe8\x8b\xae\x52\xcc\x55\x25\x18\x29\x57\x12\xa9\x4a\x2e\xb2\xab\xc5\x57\xd4\xe3\x50\x3d\xaa\x16\x47\xd5\xf2\x12\x71\xca\x13\xab\x40\x5a\xdc\xa3\xc9\xc6\x2a\x5c\xac\xc2\xdd\x29\x9e\x97\x86\x15\x86\xc1\xfd\x3d\xcc\xb4\xdb\xcd\x3c\x53\x2c\x32\xc5\x90\x49\xc7\x73\xb0\xa8\xdd\x43\xaa\xde\x55\xb1\x3c\x94\xe4\x83\xee\xa6\x48\x16\x80\x51\x19\x94\x49\x3c\xe0\xcd\xbb\x26\x4a\x30\x22\x7c\xdc\xc0\xe3\x06\x85\x8f\x4d\x0f\x58\x1b\xbf\xee\x37\xa2\x3a\x85\x8a\x70\xcf\x9c\xba\xd3\x9e\x51\x2d\xeb\xb3\x5c\x30\x40\xa1\xda\x61\xe5\xb5\x5d\x60\xfc\xd7\x77\x4d\x28\x12\xa0\xc4\x61\xd3\xe4\x51\x3d\x90\xe7\xdf\x33\x6b\x5b\xb4\x7d\x74\x04\x1b\xa2\x54\x03\x25\xbf\x7c\xac\x1a\x55\x8f\x6a\xad\xa4\xa1\x4e\xf7\x34\xeb\xbb\x22\x1e\xfe\x1d\x95\x2c\xde\x61\x3c\x64\xaa\x47\xbe\x89\x77\xad\xf1\xd0\x2d\x1e\x39\xd9\xf7\x93\xb5\x93\xe6\xd1\xab\xd1\xad\xa7\xef\xa2\x9f\x76\x0a\x19\x0e\x3b\x67\xd2\x61\xc0\x0b\x25\xbc\x75\xca\xe6\x7c\x8e\x72\x8f\x25\xa1\x48\x0c\x8f\xc4\x17\x80\x8e\x78\xab\x03\x87\x49\x6b\xd8\xa7\x43\x84\x1c\xb5\xe4\xfa\x0c\x2d\xac\x4c\x9f\x32\x80\x87\x11\xd7\xa1\xb2\x53\x14\x0b\x59\x03\x75\xcf\xe2\xb6\xa0\x3d\x43\xaa\x73\x62\xd3\xcc\x09\xd6\x4b\xc7\x8e\xb9\x05\x78\xfb\x99\x95\xdf\x31\x39\x74\x90\xad\x81\xcf\xdd\x90\xeb\x9c\x95\xda\x93\x97\x85\x13\x18\x71\x8e\x59\xa3\xcb\x33\x0f\x4f\x52\xd3\xe1\xe7\x78\x23\x3d\x47\x03\x78\xc1\x82\x2c\xd1\xbe\x96\x30\x07\xdb\xf0\x65\xeb\xae\x39\x07\xe8\xdd\xc1\xd3\x06\x9e\x36\xcc\x58\xf3\x4d\x7d\xd3\xb8\xab\xdf\x99\xe4\x54\x25\xae\xfb\x50\x41\xdd\x80\xc7\x42\x89\x6f\x6d\x9a\xcd\x0c\x8f\x96\xf6\x9a\x6d\xea\x7c\xcd\xee\xf0\x0f\x56\x06\x85\x0d\x38\x90\x5b\xb7\x1e\x86\xc8\x6a\x1b\x4b\xf9\xd4\x50\x49\x26\x8a\x26\x60\x8e\xef\xea\x33\x06\x2d\x37\x44\x81\x4e\x73\x86\xc2\x8b\x0d\x1e\x26\x33\x92\x43\x40\x62\x5c\xbf\x31\x49\xb0\x81\x3a\x2c\x80\x01\xef\xe0\xa1\x83\x0f\x44\x32\xcc\x4c\x53\x4a\x04\xbc\xe7\x57\x23\x18\xe8\x0a\x07\xea\x60\x95\xc6\xa6\x09\xbf\x68\xa7\xe0\x60\x95\xc6\x1d\xbc\x6e\xe0\x15\xeb\x5d\x50\xa9\x9f\x32\x60\x35\x77\x65\x87\xc6\x0a\x36\x1e\xfa\x7e\xc8\xaf\xf4\xa1\x5e\x43\x54\x8c\xd6\x03\x77\xde\x0c\xef\x7f\x48\xd6\x61\xa0\x6f\x0f\x53\x82\xbb\xc8\x9d\xf7\x82\x72\x03\x8a\x69\xdd\x01\xb8\xd7\x77\xd8\x11\x7c\xd8\x98\x36\xa6\x35\xb9\x81\xa9\x4d\xfa\xcb\xb1\xaf\x66\x3d\xc1\x3c\xe2\xc3\x86\x3e\x60\x81\x0d\x7e\x30\x47\x2e\x2d\x26\xb5\x46\xc4\x2a\x95\x8b\x04\x45\xf3\x8e\x10\xb3\x3d\x0d\x65\xad\x00\x65\x39\x14\xc5\xda\x39\x7c\xb7\xb0\x5f\xec\x5c\x14\x3b\xc7\x62\x4f\xe7\xf2\x03\x51\x2a\x50\x8d\xbd\xda\x37\xcb\x79\xa4\xf4\xbc\x4a\x09\x37\x1c\x87\x76\x83\x6a\x9d\x63\xad\xb9\x4e\x72\xb9\x01\xd9\x1e\x90\xd6\x07\x35\x63\xf7\xdb\x5b\x3e\xde\xde\x12\xdb\x9b\xc7\x3e\x65\x78\xea\x79\x27\x8a\x26\x58\x54\x20\xb2\xa7\x15\x5c\x3c\xde\x95\x45\x51\xdf\xd7\x81\x74\xcd\xc3\xba\x98\x48\x6d\x33\x63\x65\x8b\xd8\xb9\xf1\xd3\x27\x8a\xa0\x6e\xe4\xb0\x6e\xb0\x64\xba\xf4\xd2\x4a\x83\xe6\x2a\x4b\x80\xbd\xd6\x67\xd4\x3a\x2d\xe6\x27\x0a\x8e\xb0\xed\x78\x0c\xc7\xff\x99\x85\x3a\xd5\x36\xfc\x02\x96\x70\xe5\x45\xa1\xdc\x23\x12\xa3\x2b\x4c\x1a\x8a\x10\x60\x14\x27\xc4\x10\xa8\xd9\xc4\xab\x4b\xbc\x90\x71\x44\xc9\x83\x0e\x03\xc5\xdd\xf8\x33\x4f\x50\xc9\x9e\x76\x77\xea\xa2\x5d\x98\x35\x82\x73\x72\x84\x01\x7f\x3c\xbc\xd1\x94\xbc\x04\xa6\x27\x32\x5d\x7a\x06\x3c\x87\xcf\x23\x6f\x92\x29\x32\x8e\x88\xdd\xa9\xf4\x8a\x25\x51\x32\xe0\x9e\x89\x7a\xde\xc9\x20\x4a\xa1\xa5\x96\xe4\x9e\xe8\xe6\x0c\x35\xc2\x1c\x71\x49\x16\x15\x1c\x94\x23\xa3\x34\xc9\x0b\x0c\x9f\x47\xd0\x36\x46\xb4\xc9\x9d\x4c\x94\x4c\xd1\x80\x55\x99\x45\x2b\xc3\xac\xc7\x9a\xd3\x1b\xb7\x38\x5f\x92\xfc\x7c\x81\x73\x2f\x10\xf6\x17\x88\x8a\x73\xad\x47\xf7\x2c\x25\xc5\x3f\x23\x06\xfc\x07\xdc\x8b\xe8\x3a\x4f\x59\x2c\xb1\x3e\xe4\x51\x79\x13\x99\x37\x06\x80\x40\xe7\x6b\xc2\x71\xad\x66\x67\x29\x47\x8a\x2a\x1e\xca\x18\x60\x35\x51\x8f\x53\xb3\xaa\x84\x00\x18\x95\x90\x8a\xfe\x58\x42\x3c\x42\x89\x46\x43\x15\x97\xdd\xa1\x14\x09\x65\x91\xb2\x37\x14\x31\x12\x26\x6f\x80\x5a\x74\x1a\xc6\x78\x45\x63\xd4\xee\x6a\x6c\x8d\x1a\x59\xf2\xd3\x46\x7c\xda\xe0\xa7\x4d\x8d\xdd\x68\x9f\xd6\xb2\x18\x20\x79\xac\xa2\x48\x97\x65\x00\xc7\x63\x79\x8a\xcb\x85\x04\x44\xc5\x9e\x9f\x9b\xbb\x80\x43\xb6\x8e\xc3\x79\x5a\xa8\x90\x9e\x0b\x15\xd2\xe2\x72\x61\x2f\xfb\x1c\x9b\xf0\x0f\x34\xb1\xdc\x6b\xc2\xa7\x26\x96\x4f\x6d\x82\xb2\x93\x03\xba\xe8\x40\x13\x0b\x73\x17\xbe\x11\x35\xb1\xd0\x9a\x58\x55\x35\x51\xca\xbe\x28\x88\xab\x9c\xb8\xcb\x09\xbd\x2a\x13\x0c\x81\x57\x8c\x56\xc7\x14\xdb\x3c\x5a\x3f\x92\xcb\xa2\x4c\xb3\xd8\xa9\x10\xc5\x20\xf1\x0e\x5b\x1f\x50\xc8\x95\xb7\x04\x44\x19\xc5\x94\xd1\x30\xa5\x19\xad\xb1\x81\x27\x0c\x0d\x07\x89\x84\x4d\x04\xc5\x5e\x63\x7f\x64\xc5\x07\x95\x96\x16\x49\x40\xee\xa9\xd4\x7f\xa0\x96\xdf\x1e\xba\x43\x25\x1c\xa1\x07\x86\x45\x56\x51\x96\x78\xd1\x0d\xc6\x3a\x12\x85\xfe\x25\xab\x17\x1f\xb2\xbc\xd9\xdf\x21\x9d\x20\xeb\x09\x95\x58\x04\x12\x32\xe3\x06\xb2\x84\xb5\x08\xc3\x51\x11\x59\x39\x0f\x78\xd7\x62\xcb\x80\x77\xd8\x22\xc0\x3b\xb2\x51\xc1\x73\x2c\x7d\x2f\x46\x97\xd8\x9b\x03\x98\x31\x93\xec\x04\xa0\xa1\x49\x36\x25\x5d\x68\xda\x45\x59\x6b\xe6\xad\x51\x75\x72\x24\x24\x6b\x88\x7e\x80\xe0\x5f\x63\x20\x28\x44\x4a\x52\x35\xda\x37\x99\x81\xea\x20\xd4\xcd\x90\xa1\x8a\x13\x95\x33\x71\x6b\xb8\xb9\x1e\xb2\x16\x81\x8e\x0c\x30\x47\xcd\xa6\x8b\x7a\xc9\x66\x24\x6f\xd5\x00\x13\xb9\xa8\x0b\x89\x6e\xb0\xf0\x2e\xc4\x87\x47\xd1\x01\x59\x61\xa3\x33\xc2\x88\x54\xbe\x60\x94\xe9\x92\x06\x8e\x4e\x3f\x98\x41\x76\x1e\x88\xab\x22\x3d\x03\xa0\x86\xbd\x3e\x3d\x3c\x40\xb1\x99\x17\x78\xa9\xf7\x4d\x51\x5a\x2d\xc7\x5f\x32\x23\xdb\xf7\xa4\xcf\x32\x8c\xad\x66\x90\xeb\x60\x59\x80\x44\x0b\x24\x06\x48\x29\x18\x3d\x32\xd7\xb2\xdf\xa6\xf2\xed\x06\xac\x3d\x24\x0a\xa6\x1e\xa5\x40\x02\x25\x73\xcf\x47\x5e\xd5\x47\xc1\xae\x5f\x68\xe8\x63\x5d\x4f\x33\x95\x42\xdf\x95\xca\xf4\x3a\x1f\xfd\x93\xcc\xa1\x3c\x61\xfc\x4d\x4e\x34\x04\x84\x9e\x54\x4c\xb7\x19\x8f\xbd\x83\x05\x11\x0a\xff\x06\x6a\x9c\x95\x95\xf0\x54\x17\x49\xcd\x49\x4d\x1c\x80\xe3\x97\x52\x56\x75\x35\x32\x4a\xf3\x02\xa4\x89\xb5\x3b\x91\x29\x4b\xf5\x89\xc4\x21\x69\x60\x57\x12\x15\x9e\xe6\x60\x27\x15\x8f\x50\xe7\xc0\x21\x7b\xea\x97\x09\xbf\xd2\x6e\xc8\x59\xee\x9c\xc5\x56\x8b\x84\xf8\xe0\x3b\xd2\xb2\x04\x0e\x55\xf4\xa3\x9e\x61\x8f\xe0\x54\xc0\x9f\x0d\xcf\x50\xf3\x0f\x90\xa7\x5f\x2c\x7a\x79\x2b\x49\x12\x1c\xe0\x2f\x70\x0f\xc4\xaa\x83\xe3\xb8\x2d\x9f\x6c\x54\x12\x0f\x9e\x47\x23\x13\xf8\x11\xee\x4f\x82\x29\x43\x26\xde\x11\x5f\xeb\x31\xb9\x31\x6b\x70\x77\x97\x7b\xce\x7d\x5a\xcb\x4e\xa2\xc7\x4d\xd2\x57\x14\x37\x9a\x79\x37\x34\x3d\x1d\xc1\xe5\xf8\xa8\xe4\x1d\x17\xe1\xc1\x60\x00\x86\x37\xf1\x35\x01\x6d\xa7\x11\xeb\xca\x54\x14\x3b\x55\x84\x46\x8d\x35\x64\xef\x69\x21\x51\x43\x23\x22\x1f\xc9\x2c\xf7\x1d\xda\x4e\x29\x09\x5d\xf3\x48\x5d\xa9\x0a\xb4\x64\xa0\x0f\x46\x62\xd1\xf3\x4b\x8d\xaf\xe0\x4c\x32\x94\xdc\x90\x08\xeb\xfb\x8c\x74\x92\x4a\x93\xed\x1f\x12\xb6\x44\x62\x30\x30\x2f\x39\xbd\x45\xa4\x57\x49\xb1\x8a\x54\x9c\x44\xcb\x8d\x54\xad\x41\x6a\x83\x1c\x78\x55\x79\x2b\x7a\xc4\xbb\x04\xaa\x2d\x54\x15\x41\x5d\xd2\xea\x22\x99\xd9\x4c\x80\xcf\xcf\x83\x74\x09\xab\xa1\xab\xc4\x98\x9b\x6d\x97\x55\xb6\xef\x8f\xfd\x03\x95\xa1\x04\x7b\xc1\x97\x75\xc3\x3a\x9b\x8f\x9b\x1d\xbb\x63\x02\x11\x68\xcc\x9b\x6e\x7d\x61\xb6\x01\x64\x70\xf6\xa2\xe0\xfb\xa6\x90\xa9\x03\x59\x3c\xd3\x24\x21\xe2\x14\x80\x95\x75\x23\x50\x1f\xea\x14\xaf\x83\x71\xa5\x20\x14\xcd\x4b\x9a\x01\x50\xaa\xdb\xea\x30\x66\x1e\xac\x8b\x70\xca\x22\x29\x22\xbf\xa9\x8c\x1a\x39\xc3\xd0\x2a\xf7\x33\x27\x75\x6c\xca\x2d\x76\x8a\xc3\xb1\x5e\x5d\xb4\x9c\x14\xa2\xe5\xa4\xc1\x9d\xfa\xba\xb1\x60\x6b\x47\xa6\x2c\xf1\x4a\x6f\x26\x91\xaf\xb8\x25\x06\x04\xbc\x0e\xa4\x6f\xda\x37\xe8\x2a\xa2\x88\xc3\xb7\x8b\x18\x9f\x8a\x89\xcb\xf8\xfb\xa9\x58\xb8\x18\xc3\xd7\xa3\x62\x35\xe4\xa7\x9b\xc2\xe6\xc6\xae\xce\xd7\x94\xf4\x45\x49\x7f\xab\x8c\x65\xd6\x28\x89\xd6\xc8\x0b\x18\x44\x59\x3e\xa6\xed\x32\x52\x43\x42\xfe\xc5\x58\xe6\xba\x7f\x39\xef\xe2\x48\x83\x27\xe7\xe0\xa6\xfb\x66\x7f\xd3\x05\x87\x62\x80\xee\x06\x07\x2d\x6e\x52\x26\x7e\x71\x7c\x78\xe8\x0c\x50\x7b\x9b\xd2\x9d\xca\xbc\x20\x5f\x12\xe8\xf1\x88\x2e\x80\xd7\x5e\xbc\xc2\xeb\xc3\x80\xcd\xc9\xd6\xa4\x48\x49\x20\x85\xfa\x9e\xab\x35\xf1\x58\x2f\xcf\x56\xc4\x5c\xe9\xa2\xbc\x35\xac\xb1\xd5\xd9\x1a\x10\xef\xda\x14\xb4\x95\xcc\x8f\x19\x27\x6b\x64\xc4\x66\xf8\x93\x88\x57\x52\x96\x58\xf0\xce\x68\x29\x35\x8b\xb4\xfc\x0b\x91\xbf\xc1\x93\xc9\xa2\xd9\x91\xb9\x59\x22\xd2\xb1\x60\x4e\x5c\xcb\x45\xbf\x81\xf5\xee\x20\xc1\xe1\xfa\xb0\xe0\x23\xf2\x96\x80\xc4\x9e\xef\xef\x2c\xfb\xe4\xeb\xd7\x7d\x14\xcf\x74\xc3\xc2\xc7\x17\xfe\x01\x4f\x58\x37\xe2\xc2\x1a\x35\x1e\xa0\x9b\x6a\x6f\x44\x14\xd6\xe9\xa9\xfb\xe2\x40\xd5\xb3\xa2\x6a\xd7\xcf\xb7\xce\xdd\x57\xaf\x7c\x5d\xa5\xe7\xb1\x22\x91\x28\x12\x49\xf7\x1e\x5f\xbd\x37\x65\x54\x93\x92\x02\x42\xe2\xcf\x3c\xa1\x76\xb0\x77\x7d\x4e\x26\x60\xb9\xfe\x1b\xd2\xa0\x58\x28\xf0\x4d\x32\x5f\x20\xa7\x2a\xbe\xf4\x70\x2b\x30\x7a\x6c\x3e\x72\x79\x95\x01\x5a\x6d\x22\x97\xb9\x25\x71\x08\x43\x83\x73\xb2\x3b\x4a\x74\xc3\xc8\x58\x32\x72\x1e\x47\xe4\xcd\xdc\x33\x67\x6c\x38\x0d\x8e\xc2\x65\xbc\x44\x42\x52\xde\x43\xcd\x29\x57\xa6\x25\x79\x9a\x5a\x6d\x89\xe6\x8c\x44\x3a\x32\x41\x1f\x66\x32\xb1\x4a\xa1\x22\xef\x7f\xae\xe4\x5e\x54\xb1\x65\xb5\x99\x37\x77\xb2\x00\x00\xe4\xf8\x88\xeb\x0b\xe8\x25\x7e\xb0\x8c\x32\x2f\x4d\xbd\x6a\xd8\x11\xc8\x72\xc3\xb9\xb0\xd8\xb3\x8c\xf8\x5f\x01\x84\xfc\x52\x19\x08\x2b\x29\x8c\x97\x66\x66\x16\x51\x5b\x99\x34\xec\x8c\xd1\x9e\x8f\x2e\x6a\x49\xb9\xfe\x0c\x7d\xfb\x3b\x3c\x26\x2f\xa7\x22\x50\xf3\x76\xb7\x1e\x17\x32\x73\xc3\x69\x46\x24\x82\xef\x2a\x00\xb9\x5b\x76\xeb\x2f\x16\xc1\xc1\x5e\xeb\x8e\x6c\x8a\x11\xcc\x85\x8b\xe4\x25\x9f\xab\x94\xdc\x1c\x74\x81\x36\xa4\xc0\x8b\x41\x97\x3d\xc2\x2a\x3b\xe3\xc8\x74\x39\x43\x69\x1c\x2a\x87\x4f\x36\x85\x73\x4c\xb5\xa6\xcd\x39\xd9\x36\xc2\x53\x5e\xea\x5e\x10\xb6\x68\x7c\x68\x14\xc5\x9b\xe2\xb1\x29\xd4\xce\xda\x46\xb7\xee\x98\xb9\xd3\x7a\xb4\x16\x44\xbd\xec\x3c\x6b\xac\x65\x75\x46\x7e\x83\x47\xf5\xa2\xaa\xed\x02\x81\xe5\x36\x79\x36\xf6\xdb\x59\xdd\xb1\x2d\xe9\xec\x25\xe0\x6e\x01\x59\x35\x32\xcc\xdc\xe4\x41\x61\xab\x8a\xea\x43\x4e\x38\xfb\xfa\x75\xd0\x69\x67\x05\x4b\xfc\x95\x8b\x80\x22\xd1\xab\x8d\xa3\xb2\x14\xdf\xdb\x3c\x2e\x0b\x49\xf6\xb3\xf0\x68\x6f\xd1\x38\x08\x07\xab\x40\xf2\xec\xb3\x17\x47\xb6\xeb\x0b\x5d\xa3\x9c\xb8\x4e\x52\x34\x59\x5f\x1d\x94\x86\xfa\x05\x3f\x4e\x6b\x49\x85\x23\xc7\x8d\xe3\x31\x65\x61\xa9\x93\xfa\x01\x23\x3f\x58\xba\x21\xb4\x4c\x44\x9e\x02\xd6\x5d\x50\xac\xbb\x79\x11\x03\x60\xcd\xd3\x31\x50\x9b\xed\x25\x71\x1d\x0b\x34\xae\x74\x81\xd1\xc0\xf6\x22\x64\x9d\xe6\x13\xbf\x01\xd3\x6f\x44\x2d\x7a\x9e\xe2\x86\xd9\x08\x2e\x66\x71\x66\x11\xf8\x72\x9e\x65\x89\x37\x33\x01\x64\x62\xce\x19\x19\x46\x1f\x1d\x39\xcf\xe1\xa1\x33\x25\xb6\xcb\x9d\xa0\x60\x07\xc3\x6a\x02\x8a\x83\x41\x75\xd8\x82\x4c\x3b\x23\xbc\x3d\x5a\xab\x8d\x18\x96\xd8\x1c\x57\x9e\x92\x68\xe9\xa3\xe8\xc3\x98\xaf\xf1\xa8\x5c\xee\x1e\x90\x5f\x4f\xe1\x11\xda\x7a\xea\x21\xf6\x3a\x95\x6e\x8f\xe9\x94\xba\x02\xd4\xff\xd4\x03\x64\x4f\x94\x9a\x8e\x2b\xd0\xe8\x42\x98\xb7\x6c\xed\xbc\x21\xa2\x07\xe7\x14\x5c\x3c\x74\x37\x4f\x3d\xfe\x9f\x3d\xcb\x09\x80\x32\x67\x7d\x90\x0e\x0c\x0b\xe6\xd1\xd3\x4d\xe6\x71\xf1\x38\x14\x22\x07\x16\x60\x26\x3c\x3d\x51\x3c\x88\x84\x2b\x3d\xd1\xfc\x86\xc1\x3e\x70\xc6\xef\xcb\xf8\xd2\xed\x88\xc4\x53\x78\x23\x87\xb1\x43\x7e\xc9\x80\x10\x2d\x8b\x25\x62\xde\x48\x0c\x4d\x3a\x43\x59\xce\xa1\x37\xb1\x29\xd5\xf9\xe3\xba\x81\xeb\x36\x67\x90\x01\x75\xb5\x62\xe0\xba\xc4\x6f\x60\x22\xbe\xae\xaa\xb8\xc1\xe7\x7a\x7d\x55\x59\x9a\x98\x45\xe9\x97\x5d\xfa\x48\x25\xb7\xbb\x2c\x80\x7f\x62\xa7\x1c\x6e\x53\xb2\xd1\xa4\xa5\x5c\xc5\x48\x8b\xd3\xfd\x06\xc7\x41\x58\xbd\xc4\x55\x87\x3b\x5c\xf5\x53\xf9\x85\x78\xc7\xdd\xe9\xe3\x8b\x43\xcc\x9b\xf7\xf0\x50\xe9\xcd\xc7\xb3\x1b\x05\xf1\xb8\xa7\x71\xf2\x25\xa7\x5b\x72\x6f\x7c\x2f\x62\xfa\xe8\x6b\xaf\x6c\x32\xb2\xb3\xf6\xa4\x30\x27\xe1\x51\x69\xed\x65\xca\xbb\x02\xa0\x2e\xc0\x17\x24\xbd\x87\xe9\x5a\x22\x93\xb0\x94\x62\xa5\xd6\x8a\x37\x97\xad\xcf\xec\xdf\x98\x1e\xa3\x72\x08\x3c\xcd\x51\xe6\x91\x5b\x7e\x40\xff\x01\xc7\xcd\x81\x82\x9f\x8f\xe8\x63\x79\xb6\xef\x9e\x2f\x5a\x77\x14\x67\x89\x62\xd3\xde\x9d\xad\xe9\x75\x2d\x5e\x49\x88\x74\x76\x23\x7e\xc9\x3a\x80\x5c\x8f\x60\xbd\x33\xee\x18\xc0\x5e\xc0\x3a\x6b\x42\x0d\xc0\x53\xb8\x78\x7b\x6e\x40\xf1\x86\x63\xac\x01\xb3\xb5\xbb\x8d\x99\xc9\x36\x90\x0e\x47\x89\x21\xeb\x78\x78\xe8\x98\x95\xdd\x80\xb3\x16\x4a\xce\xd0\x8f\x9f\xb0\x4e\x11\xf2\xab\x4d\xb1\x12\x93\x1d\xd9\x92\x66\x97\xcf\xef\x5f\x90\xe2\x36\x53\x72\x26\x1b\x59\x7b\xd4\xb1\xf3\xa6\x4a\x3a\x9c\xf2\x38\x97\x0e\xeb\xe2\xa6\x42\x82\x26\x1d\x13\x28\xe1\xd8\xc8\x39\x8b\x00\xab\x47\x66\x2c\xf0\xb2\xe1\x4f\xa2\x29\xcf\xf8\xfd\xa5\x8d\x4f\x4c\xcc\x80\x9d\x16\x8d\x1a\x18\x4b\x26\x9a\xea\x62\xd8\x4c\x99\xfa\x3f\x3c\xc0\x81\x22\x7b\xe9\x88\x9f\xcf\x40\x23\xac\xa4\x3a\xa4\x88\x98\x48\xc9\x3e\xd0\xe7\x66\xcb\xe1\x99\x59\xc8\x9b\x54\x8d\xa5\x38\x49\x9e\xae\xab\x9b\x0f\xc2\xcb\x45\xbd\xba\xd4\x2d\x6c\xf9\x63\x6f\x02\x7f\x9b\x18\x36\x09\x2d\x8a\x49\x5c\x28\xc9\xd5\xfb\xb7\x68\x4f\x20\x54\xd0\x85\xcf\x84\xd6\xe7\x46\x3a\x49\x0b\xd7\x1d\xad\xcf\x44\x00\x8e\x61\x96\x3e\x03\x20\x3f\xc3\x1c\x87\xad\x4b\x16\xa3\xa5\x38\x1c\xca\x50\xff\xe7\x26\x6a\xcf\xc3\x57\xbf\x10\x75\xef\x67\x36\x47\x79\xef\x5e\x70\xdc\x27\x64\x44\x24\x13\x1e\x1e\x28\xd6\x43\x31\xc2\x58\x2c\x8e\x4b\x32\x59\xfa\xdc\xc8\x73\xe2\x1a\x59\x35\x8a\x81\xae\x8a\x22\x99\xe4\x9c\xef\x45\x98\xa2\xdc\x65\x30\xd2\x50\x48\x3c\x21\xbb\x81\xc8\x7c\x17\x46\x12\xb9\x43\xd5\x09\xac\x80\x15\x6c\xbd\x08\xfe\x2e\xb9\xdb\x5a\x8d\x22\xfe\xda\xc7\x50\x6a\x19\xbf\xf6\xd1\xf5\x66\x04\xf3\x3a\x32\x5d\x7c\x73\xc9\x5f\x8b\x8f\xb7\x0c\x7e\x0b\x15\xbd\xd0\x95\xfd\xe7\xc6\xbc\x99\x01\x40\x02\x18\x78\x04\x03\xcf\x10\x4a\x31\x5d\x1f\xbf\xf0\x8d\x97\x50\x17\xa3\x48\x5d\x21\x6d\xd9\x06\x8f\x59\xd2\x40\x4a\x7c\xde\xa0\x46\x51\xe1\x13\xdb\x6e\x60\xe3\xf8\xc9\xc7\x3e\x1c\x1d\x3d\xa3\x76\xe8\x06\x21\xe5\x11\xb4\x07\x20\x98\x37\x13\x8a\xd7\xf2\x8c\xfa\x42\xf7\xd3\x18\xac\xca\xc5\x6f\x41\x73\x49\xc6\xfa\x6a\x03\x79\x05\x94\x7c\xb9\xeb\xea\xb4\x6b\x4b\x3b\x0e\xb7\xab\xb0\x55\x79\x0c\x87\x93\x99\xbf\x38\x9f\xc4\x33\x6c\x9c\x0b\x1f\xc9\x34\xd2\x65\x0a\x84\xd5\x7a\x81\xd9\xd1\x0d\xc4\x8e\xef\xdf\xc7\xdd\x52\xa7\xb9\xab\xe9\xa7\x9f\x0a\x81\xf2\xa6\x8d\x8e\x15\xc7\xbe\xd8\x4e\x50\x8d\xb4\x19\x24\xdf\xe6\xa8\xc1\x72\xf1\x5f\xd6\x48\xb5\xf8\xa2\x46\x97\x6a\x97\xc8\x3e\x2a\x21\x7b\x37\xc8\x92\x92\x3f\xa3\x03\xb4\x06\x3a\x30\xd9\xa5\x36\x5c\x32\x89\x46\xc5\x59\x3c\xbd\xdd\xbd\xdb\x1e\x7d\xab\xe3\xb5\x4f\x5a\xe8\x2b\xc0\x26\xf9\xe4\x8b\xa0\x11\x1b\xfe\x19\x9f\xd0\x8f\x01\xa4\x46\x63\x58\x51\x1e\x75\x13\xb0\x4c\x48\x34\x47\x54\x20\xf2\x84\xbf\xf1\x85\x2b\x9f\x0f\xf4\xbb\x44\x43\xb3\xa6\x10\x23\xc1\x99\x8f\xc4\xf2\x5d\xc3\x03\x8c\x9d\x68\x3c\x20\x75\x2e\x1b\x57\x21\xf1\xa6\x8b\x3a\x51\xb1\x5a\x57\xb0\x22\x49\xf3\xcf\x24\xff\x31\x5b\xbb\xb2\xc8\x12\x98\xaf\x05\xfc\xd5\x8a\x75\x9a\x58\x72\x0c\xcf\x6d\xf8\xb5\x3b\xa6\xac\xa0\xb8\xaa\xfa\xaa\xe5\xe9\xe1\xf2\x8c\xe5\xf2\xcc\xf8\xb3\xce\x7f\xbf\x38\x4b\x22\xd2\xaf\x20\x59\x72\x57\xef\x92\xb8\x15\xeb\x29\xfe\xfa\x55\x29\xaa\x7a\xa6\x57\x15\xeb\xcb\x31\xdd\xa3\x3d\x80\x6b\x3a\xb8\x1c\xf5\x10\xa1\xc4\x6b\x02\x53\xe4\xeb\x7a\xf2\x19\x6a\x37\xc7\xe4\xfa\x7e\x92\x4d\x25\x58\x51\x4e\x9f\x8e\x2d\x1b\x55\x49\x84\xf7\x21\x65\xc4\xfa\xf0\x60\x9d\xf1\x18\x3e\xc5\xfa\x81\xed\xa9\x1b\x2b\xaf\x74\x63\xe5\xa3\x3b\x7b\x75\x0a\xe9\x77\x51\x73\x74\x85\x95\x08\x3b\x4a\x3f\xf7\x97\xb3\xc6\xbb\x63\x20\x65\x6a\x94\x80\x16\x43\x8b\x71\x00\x5c\x9a\x5d\x9b\xe9\xef\x1b\x5b\x64\x68\x16\xa9\x9d\x23\x4f\x20\x38\xf1\x9d\x0a\xe5\x17\x17\xf8\xc6\x30\x5d\x68\xda\x85\x40\x4c\x61\x52\x1d\x93\xda\xf2\xda\x0e\xaf\x7e\x69\x9c\xd6\x08\xb0\xc1\x52\x75\xfa\xcc\x1a\x99\x52\x86\x14\xf1\xe5\xc4\x6d\x76\xa6\x2a\x27\x62\x73\xfc\x65\xb5\xe4\x53\xe6\xc4\xfe\x7c\x53\x7b\x06\x5d\x79\x78\x40\xb9\x0b\x6c\xaf\x1b\xd3\x7c\xce\xd7\x63\x63\x29\xe8\x12\x18\x9c\x03\x3b\x56\x94\x6d\xf2\x44\xa4\x8a\x1a\x32\xcc\x0e\xcc\x2c\x06\x04\xbb\xe1\x15\xfd\x66\x6a\x75\x70\xd5\x4b\x01\x2b\x73\xa4\x3e\xe0\x8d\x9b\xaa\xc5\xaa\xc8\x8f\x07\x98\xba\xe5\x48\x75\x47\xcd\x9e\xba\xfe\x8c\x77\x6e\x1b\xe1\x84\x8f\x4b\x73\x87\x52\xdb\x39\x45\xca\x81\x53\x5f\x4d\x59\x2e\xa1\x42\x71\x3b\x72\xd4\xf5\x08\xa1\xaa\xee\x40\x99\xab\xa0\xea\xa3\xe2\x22\x0e\x79\xa4\x9c\x90\xf9\xea\x2b\x1e\x81\x04\x07\xb1\xee\xfd\xd6\x67\x1a\x8d\x0b\x5d\xfe\x3c\xc6\x3a\x6d\xac\x93\x45\xec\x59\x2e\xc5\x67\xca\xe5\x03\x57\x0d\x00\x39\x95\x0f\xd0\xd3\x07\x18\xef\x6d\x02\x1e\x4a\xb0\x93\x64\x09\x97\x5c\x84\xbb\xc2\xd1\x77\x45\xf4\xdc\x19\x99\xb4\x27\x80\xe2\xc3\xdc\x74\x32\x93\x3b\x5d\x5f\x84\x2f\xcd\xc4\x25\x67\xc1\xcb\xc7\x75\xbc\x88\xad\xa3\xbe\xd2\x38\x67\xa2\xd2\x7a\x56\x5f\xb7\x81\xa9\x6f\xc3\xa3\x5f\x5f\x03\xd6\x86\x06\xf7\x08\x1a\xc5\xf9\x89\x1b\xd2\xb2\x73\x38\x0f\xe8\x6f\x54\x71\xd8\xe0\x3d\xc0\xd8\x35\x44\xef\xdb\x29\xa0\x7b\x22\xf3\xd0\x95\xcd\xec\x4e\x8c\xd0\x88\x1f\x1e\x92\x33\x0f\xd7\x0c\x05\xf7\xa4\x27\x12\x5e\x44\xe8\xcf\x00\x85\x0f\x40\xaf\x00\x6b\x0a\x7f\x37\x3c\x80\xbf\xb3\x0d\x4f\x98\x83\x34\xc9\xec\xae\x58\x7a\x1e\x1e\x0a\x90\xd2\x74\x58\x02\x4d\x66\xa2\xc9\x04\x9a\x34\x47\x40\xfb\x50\x9c\x3a\xf8\xdc\xe0\x5a\x46\x0f\xe5\x1c\x09\xc3\x26\x61\x7d\x13\x99\x58\xee\xd3\x5d\xde\xa7\xbb\x2f\xf4\xe9\x0e\xea\x21\x3a\x09\x7a\xa7\xf5\x69\xd3\xa0\xca\x83\x03\x7d\xea\xd0\x70\xb0\x4f\x79\x46\xec\x9e\xe8\xd3\x1d\xf6\x49\x27\x91\x14\xc4\x79\xf4\xf0\x80\xb1\x58\xf1\x62\x02\x65\x8a\x4a\xb7\x0d\x7a\x64\x91\x39\x2d\xfe\x9d\xdd\x09\x8d\x35\x1f\x7b\x14\x90\x97\xe5\xa3\x23\x47\x69\x24\xe0\x52\x0e\x0d\x1c\x07\xe6\xac\x63\xa6\xb6\xaf\x76\x80\x11\x01\xdf\x99\x9a\x98\x67\x49\x72\x22\x20\x31\xb3\xdc\x5c\xb8\xfa\x46\x5a\x7a\x86\x27\xdf\x1f\x9a\x06\x39\x51\x3c\x73\xfe\xde\x07\xac\x09\xa3\x5d\xf0\x02\xf5\x00\x3e\x40\xfb\xfa\x4e\xa3\xd0\x89\x1c\xc0\xd2\xfc\x3f\xf9\x68\xbe\x4e\xdb\xd6\x27\x6d\x5b\xbf\xd2\x2c\x43\x43\xfb\xa9\xa6\x03\x80\x94\x8e\xaf\xe9\x48\xe8\x17\xb7\x68\x5a\xfa\x1e\x69\x16\xfb\x15\xfc\xdd\xd7\xbd\xf3\xc6\x13\x8f\xd1\xff\xa7\xb6\x1e\xdc\xd6\xd3\x0e\x4a\x2a\x09\x64\xcd\x63\x51\xaf\x12\x22\x79\xe2\xc2\x44\x5b\x1e\xca\x09\xc6\x5f\x79\xef\x97\x84\x38\x78\xbc\x4a\x85\x58\x73\x9c\xda\x45\x9f\x38\xf2\x41\x18\xe3\x8e\xfe\x3f\xc5\xfb\x7d\x8f\xf9\x08\x0d\x9a\x8f\x27\x9b\x74\x8c\x8b\x39\xb4\xa5\x68\x0f\x0d\xae\x9f\x49\x39\x1f\x19\x3a\xa3\x0a\xe9\x13\xb5\x65\x97\xc4\xdd\x08\x1e\x92\xb4\x88\xa1\x3f\x48\xd6\x3c\x59\x63\x17\x8b\xad\xb1\xd8\x0a\xc8\x91\xa7\xea\x0f\x87\x8d\x5a\x0d\x0b\x2e\x88\xf8\xf0\x99\xf4\x16\x2c\x74\x3d\xf9\x7d\x48\x6e\x68\xab\x5c\x9b\xed\xd9\xbd\xab\x49\xe9\x4a\x9f\xe4\x70\xd6\x75\xe8\x31\xc4\xd3\x49\x23\x5f\x0a\xcf\x68\xb3\x08\xea\x91\xee\x4a\x95\x76\x29\x99\xf9\xed\xa7\x01\x26\x96\x11\x4f\xa5\x7f\xa3\xec\xe1\x21\x3b\x2b\xbc\xc8\x85\x8d\xb4\xee\xd5\x8b\xcd\xd1\x94\x55\x04\xd1\x02\x78\xbe\x76\x86\xc1\x53\xe0\xf9\xed\xce\x78\x94\xa7\xd3\x7c\xc8\x2d\x31\x62\xa5\xe5\xe0\x68\x3a\x0e\xa3\x5d\xfb\x99\xb2\xdf\x62\xf2\xb2\x6a\xa0\x59\x2e\xbb\x22\xdf\xda\xfb\xc4\x7f\xd1\x8a\x1f\xdf\xfa\xe1\x0f\x74\xe9\xfa\x48\xbd\xa9\x81\x06\x6c\x30\xa5\x2a\x77\xd5\xf5\x95\x4e\x18\xe6\x16\x93\x28\x6e\xb6\x46\xe1\x99\x37\xf2\x1a\x0d\x33\x6d\xf0\x12\x3c\x35\x2b\x49\x9a\x6d\x11\xf7\xee\x5e\x46\x7d\x0f\xf8\xfd\x3c\x88\xa2\xd8\xde\x30\x0c\x8e\x60\x6f\xe8\x3e\x9e\xf2\xb4\x84\x25\x76\x85\xe6\xe3\x8f\x3e\xfa\x58\xed\x60\x84\x5c\xfc\xbb\xca\x90\xd8\x11\x15\x6e\xa0\xc2\xc4\x06\x74\x06\xff\xd6\xf0\x2f\x26\xdb\xd1\x8e\x5e\x6b\x54\xa5\x4c\xf9\x93\x6f\xec\xb4\x0b\xf4\x14\xf4\xdf\x81\xb3\x82\x5a\x81\x05\x66\x01\x35\xc4\x10\x7d\xa2\xe0\x81\x5a\x3b\xa7\x0b\x3a\x72\x9f\x9c\x1a\xb5\x96\xe5\xd5\x4c\x76\x97\x0f\x69\x1f\x7e\xcd\x22\x0a\x44\x13\xad\x6e\x69\xc8\x87\xb2\x51\x25\x94\x4f\xeb\xfd\x3a\xba\xad\xe8\xfd\xf7\x15\xbd\x67\x1d\x01\x1e\xb3\x80\x3a\xad\xd6\x8a\xe2\x7a\xed\x30\x6c\x58\x5c\x51\x88\x3e\x75\x5a\x03\xbd\xb0\x70\xe4\x5e\x65\x40\xff\x0b\xcc\xc7\x94\xdd\x03\xde\xa3\x4b\x82\x1a\x73\xec\xc9\x64\x3a\xdd\xea\xa5\x5d\x58\xa6\x8b\x28\xde\x74\xac\xc7\x3a\x20\xdb\xc0\x18\xa3\x74\x4b\x7a\x15\x54\xd5\xd1\xfd\xaa\x3a\x2e\x0f\xd4\x71\xf5\x35\x95\xdc\x1e\xa8\xa4\xca\x8b\xf2\xc1\x4a\x2e\x02\xb9\x6e\xae\xe0\x18\xee\x5a\xc3\x6e\x77\x08\x33\x34\x3c\xee\xf7\xe1\x85\x75\x4f\xbb\xfd\xc1\xc9\x09\xeb\xf4\xad\x5e\xff\xb8\x7b\xc2\x4e\x8f\xbb\xf0\x3e\x60\xa7\x9d\xd3\xe3\x4e\x0f\xd6\x5d\xff\xd4\x3a\xee\xf5\x2c\x76\xd2\x1b\x0c\x8e\x3b\x90\xd0\xed\x0d\x4f\x3b\x27\x43\xd6\x19\x0c\x86\x9d\xe3\xc1\x94\xae\xbc\xce\x81\xaa\xbe\xd4\x1b\xe8\xf4\x07\xfd\x7e\x5f\x6b\x09\x1e\x06\xa7\xc3\xe3\x6e\xd1\xa4\x65\x41\x35\xa7\x5a\xdb\x98\xc5\x3a\xee\x77\xf3\x4e\x74\xba\xa7\x83\xc1\xc9\xb0\x53\xf4\xa6\x0b\xc9\x1d\xac\x56\x75\xab\x33\xec\xf6\xfa\x9d\xd3\x7e\xd1\xbf\x9e\x75\xda\x3d\xb1\x8e\xb5\x8e\x42\x3f\x4e\x06\x27\xa7\xaa\xc7\xd0\x72\xbf\x63\x41\x13\x45\xd7\x6f\xa1\xeb\x3d\x6c\xfc\xf8\x98\x0d\x7a\xa7\x90\xed\x94\x1d\x5b\x7d\xeb\x18\x7e\x3b\x56\x77\xd8\xef\x42\x3d\xc3\x41\xe7\xd4\x3a\x3d\x66\xa7\xdd\xce\x70\x00\x2d\x76\x3a\xa7\x9d\x41\xa7\x03\xf5\x41\xd3\xc3\x61\x6f\x08\x5f\xac\xee\xe9\x69\x0f\x9a\xee\x77\x87\x27\x16\xb6\x08\x1d\x80\x0e\xe3\x03\x94\xed\x75\xd9\xc9\x70\x38\xec\x0c\xe1\x0b\x14\x1a\xc2\x20\x70\xf4\xfd\xd3\x61\xbf\x87\x59\x8e\x8f\x7b\x00\x20\xe8\xfc\xf1\xf0\x04\x12\xac\x93\x5e\xbf\xd7\xed\x63\xfd\xdd\x93\x01\x56\x07\x80\x3b\x1d\x0e\xfa\x45\xc7\x2f\xb0\xe3\xdd\x7e\x1f\x60\x01\x1d\x46\x00\x58\x38\x3c\x6b\x38\xec\x62\xbf\x2c\xf8\x86\x60\x83\xc2\x03\x6b\x00\x55\x62\xe3\xc7\xc3\x3e\x3e\x74\x07\xdd\xc1\x29\x3e\xf4\xfa\x30\x11\xac\xd7\x1d\xf4\xac\xe3\x21\x3b\x1e\x0e\xba\xfd\x63\xac\x65\x68\x1d\x5b\x16\x94\xe9\x75\x2c\xa8\xa0\x0f\x5f\x4e\xa1\x1f\x88\x8a\x7a\xa7\x50\x6b\x57\x40\x18\x7b\xdc\xe9\xf7\x00\x42\xa7\x1d\x04\x51\x0f\xa0\xc8\x4e\x4f\x86\x27\xd0\x22\x02\xa2\xd7\x3f\x01\xa0\x76\xfa\xdd\xe3\x63\xeb\xa4\x93\xf7\xbc\xc0\x2e\x40\x00\x86\xa9\x5f\x69\x2c\x1f\x46\xb8\xc7\x27\x25\x74\x22\xb2\x7f\xae\x0c\xbe\x10\x19\x56\x15\x06\x4a\x97\xb1\x97\x2c\xa3\x60\x56\xa5\xd0\x0e\x4d\xb4\x06\xd3\xfd\x42\xfe\x0c\xb0\x51\xc9\x12\xa8\xd0\xd5\x8d\x0c\x3d\xfb\xcd\x42\xda\xfe\xc3\x13\x90\xf4\x87\x03\x56\x88\x93\x38\xe7\xac\x2c\xd6\xf0\x0e\x85\x62\x0c\x4a\xd9\x0e\xe8\x44\xa2\x00\x22\xaa\xfe\xd4\x7c\xef\x90\xb1\xe3\xc1\x8f\x52\x2d\x92\xb4\x21\x51\x46\xbb\xe0\xc9\xd9\x7c\x6c\xd9\x1d\x72\x27\x75\x16\xd0\x1d\x0b\x86\x81\x01\x0a\x92\xaf\x81\xf2\x3f\xe3\x1f\x1c\x33\x3f\xb6\x03\xb6\x30\x1b\x06\x79\xe7\x63\x9d\xe6\xc2\xb4\x6b\x35\xb3\x51\xfb\xab\x26\x54\xdc\x0a\x57\x55\x68\xa0\xc9\x2e\xd9\x2d\xbb\x60\xd7\xec\x35\x9c\xda\x2f\xe0\xdf\x5b\x64\xb9\xd1\xb6\x71\xc5\x8d\x86\x5b\xdd\x47\x54\x50\x6e\x77\x4d\x72\xf3\xe4\x03\x49\x7b\x1d\x14\x57\x99\x46\x58\x0f\x1b\x41\x3d\x30\xed\xc6\x01\x6d\x4d\x86\x52\x8c\x17\x75\xe0\x44\x01\x94\x28\xd6\xe6\x69\x6a\xcc\xda\x41\x3d\x0f\x6a\xb0\x42\x57\xa8\xa8\x56\xfd\x5a\x7c\x0a\xcb\x9f\xf0\xaa\xea\x1e\x18\xa5\x7a\x1e\xb6\x2a\x69\xbc\x30\xd9\x39\xd7\xaa\xa0\x94\x3b\x3d\xcf\xbc\x09\x29\x57\x7a\x1e\x4c\x21\x98\xbc\x2c\xc1\x1b\x88\xb7\x17\xe6\x73\xfe\xc9\x51\x10\x7f\x71\x74\x94\x44\x86\x04\x98\x89\x12\xa1\xff\xbc\x14\x0b\xe6\x33\x10\xff\x0d\x94\x74\x8e\x4a\xdd\xf9\xbc\xd3\x99\xcf\xd8\x95\x2b\xa2\xae\xa5\x73\x4f\x60\x3c\x85\x1a\x00\x1c\xf1\x97\x3c\xd4\x7b\xf9\x1a\x30\x1e\x0f\xf5\x5e\x42\xca\x85\x9e\x27\x69\x40\xca\xb5\x9e\x07\x53\x68\x24\x9f\x8a\x91\x24\xcd\x79\xa3\x5b\x7f\x5d\x1a\xc9\x6b\x1a\x89\x9c\x72\x1c\x09\x2c\x8f\xff\x7c\x12\x63\x79\x93\x8f\xa5\xd4\xa1\x37\x3b\xdd\x79\x83\x9d\xb9\xd6\xc7\x72\xc9\x6f\xc5\x58\x94\xf9\x6d\x49\x9d\x37\x00\x7a\xa5\xdd\x65\x8d\x43\xe1\x54\xcc\xb3\x16\x9c\x35\xd0\x05\x1e\x9c\x85\xff\x59\x50\x4f\xb1\x3b\x1f\x24\x77\x75\x31\x9e\x40\x7f\xa7\xd2\xb7\xd2\xdd\x78\x02\xf3\x30\xb5\xdf\xc4\x06\x3d\xb0\x09\x0c\x04\xfe\xc2\xc4\xc0\x5f\xcc\x68\xb2\xf7\x7c\xd3\xfc\x80\xec\xf4\x2b\x7e\x0e\x0f\x40\x0f\xbe\xe3\x77\x22\xe5\x57\x7e\x25\x52\xfe\xe6\x9d\x22\x86\x46\x11\x65\xc3\x78\x5f\x7f\xd7\x78\x55\xff\xd5\x6c\x6b\x41\xcf\xde\xd7\xdf\x43\xda\x2b\x53\xa3\xef\xdf\x41\xb6\x5f\x21\x1b\xde\x94\x9b\xec\x3b\xcd\xea\x18\x9b\xa9\xe3\x9f\x06\xb6\x53\xff\x40\x4a\x8b\xb9\x03\x97\x3b\x01\xea\x1f\x0a\x38\xad\x19\x40\xe8\x3b\x68\xef\xef\x46\x07\x16\xf6\xcf\x7c\x1e\x19\xe5\x81\xcb\x11\xd2\x68\x03\xf6\x03\x7a\x35\xfb\x11\x73\x69\x63\x96\xe9\xa3\x35\xcc\xe8\x0f\xe3\xb7\x42\x00\x56\x3b\xaf\xb1\x9f\x71\xd0\xb5\x17\x35\xf8\x5c\x63\xf4\xf7\x1b\xeb\x1b\x0b\x9e\x6e\xe0\x09\x3f\x77\xc4\xe7\x80\x3e\x07\xf4\xb9\x86\x38\xe3\x3f\xb0\x4c\x7e\x96\xce\xb5\x7e\x96\xe1\x9e\x7e\x94\xef\x3f\x2a\x4f\x5b\x58\x66\x41\x15\xfd\xa8\x2a\xaa\x6e\xe7\x47\xbc\x99\xb3\xbf\xd4\xaf\x4e\x39\xbf\x58\x5c\x5a\xa1\x0d\xe5\x3d\xd7\xc0\x79\x21\xc0\xf9\x67\x09\x9c\xa1\x00\x67\x13\xc1\xf9\x17\x01\x4a\x5b\x28\x21\x6b\xfe\x89\x10\xfc\x8d\x3e\x10\xec\xca\x0b\x4b\x40\x55\x66\x23\x80\xfe\x99\x03\xf4\x4d\x8d\xfd\xa6\x3a\xfe\x27\x75\xe6\xcf\x9d\x81\xfe\xa6\xe0\x10\xd2\xe7\x50\x02\x94\xc0\xf9\x9b\x04\xdf\x6f\x12\x9c\x7f\xc9\xf7\xbf\x74\x70\x02\xe8\xa9\xa2\xbf\x54\x45\xd5\xed\xfc\x55\x02\xe8\x97\xfb\xf5\xd7\x3e\x40\xa1\xd0\x25\xe5\xbd\x3d\x0c\x69\x29\x32\xbd\x3b\x3a\x52\x1f\xf7\xd6\xca\x4b\x6d\x15\xdc\xd1\xf3\x95\xc9\x2a\xda\x90\x55\x5d\x94\xaa\x2a\x43\xe9\x53\x09\x02\x17\xf4\x76\x9d\x73\x8b\xaa\xd8\x5f\x35\xac\xff\xef\x08\x26\x1b\x8e\xb5\xd2\xb5\x7e\xa1\xef\x59\x3b\x87\xb1\x37\xc2\x06\x34\x82\x7f\xc5\xb3\x58\x62\x8d\x14\x9f\xe0\xb7\xf9\xf8\x67\x19\x20\x99\xfb\x11\x5e\xcb\x46\xe8\xde\x38\x62\x3e\x1c\x75\xe8\x65\x18\x65\x6b\x6e\x84\x4e\xf6\xa2\xe2\x2a\xc8\x0f\x43\x2f\xfe\x9a\xf8\xb9\x5e\xa1\x15\xe5\x49\xad\xda\xaf\xab\x60\x57\xad\xca\x8d\xe2\xaf\xec\x42\xc6\xcb\xfa\x52\x6b\x67\xf6\x35\xc5\x7d\x9e\xd2\xe9\x7f\x1d\x14\x7a\x57\xfe\x7f\xa3\xfd\x1f\x15\xfd\x88\xbe\xde\x02\xc0\x29\x4a\x3b\x5f\x6f\x05\xe0\x16\xa5\x0f\x44\xb0\x56\xd4\xa1\x71\x88\x26\x6c\x7c\x73\x90\x0c\x44\xcd\x27\x28\x78\x80\x14\x84\x82\x87\x22\x7e\xb7\xbb\x40\x0a\xca\xd5\x35\xc9\x8f\xe3\xd4\xac\x87\x4c\x8b\xfe\x44\x91\x27\xa4\x6e\xf5\x75\xc0\x6b\x4e\x96\x46\xb5\x91\xa4\x77\xab\x43\x30\x7e\xb3\x04\x62\x46\xf2\x9d\xaf\xf7\xdc\xdc\x2d\x22\x56\x13\x8f\x4d\x37\x88\x12\x6f\x56\xb3\xd7\x11\xc3\x18\x7d\xf6\x0d\x7c\xc2\x87\xe6\x95\x37\x8f\x62\xaf\x66\xaf\x54\x82\x33\x87\x95\x5b\xb3\x37\x11\xbb\x72\x12\x3f\xb1\x2f\xe0\x03\x3d\x35\xa3\xb5\x17\xd6\xec\xeb\xfc\x5d\xd5\xf9\x1a\xb2\x92\x1b\x2e\xfb\x05\xec\x23\x47\xf0\xc5\xf6\x15\xe4\x53\x2f\xb2\xe8\xb9\x9e\xa4\x4a\xdf\x45\x6c\x15\x85\x51\x1a\x85\x9e\xfd\x21\xda\x9a\xa3\xd7\xc1\x01\x2f\x54\x69\xeb\xda\xdb\x50\xdc\x03\x51\x96\xb7\x65\x25\xff\x90\x0e\x07\xf3\xab\xec\x17\x01\x46\xa0\xed\xb6\x81\xa9\x82\x7f\x80\x4e\xdf\x52\x02\xbe\x74\x45\xc2\x4b\x99\x30\x94\xb9\x86\x53\x1d\xd0\xa4\x4b\x56\x96\x86\x88\x55\x03\xe0\x7e\x1f\x15\xa2\x42\xa5\x73\x86\xbe\x6d\xa4\xb5\x66\x48\xbe\x61\x44\xd0\x5a\xf4\x73\x93\x27\x6f\x50\x0b\x71\x15\x29\x8d\x70\x0e\x00\xde\x14\x6f\x00\xfe\x9c\xb1\xa9\x0c\x35\xf6\x8a\x26\x5a\xcf\x74\xb0\x93\xaf\x9e\xd8\x49\x1d\xc9\x41\x8a\xa5\x7d\xb5\x76\x50\x18\x24\x75\xb4\xcf\x9d\x83\x43\xd4\xb1\x05\x24\x68\x75\x6e\x2c\x1d\x17\xc0\xbb\x56\x21\x3c\x87\xf9\xd8\x1e\xf3\xb1\x16\x16\x2e\xde\x53\xb1\xcb\x7c\x16\x92\x97\x62\xf5\x1e\xd1\xfb\x48\x9d\x1d\x35\xe0\x7b\xd6\x56\x23\x36\xdc\x56\xcc\xe0\xb1\x83\x37\x89\x9d\x26\xfc\xb1\x80\xaf\xf2\x0c\x17\xf8\x8f\x71\xa6\x7f\xa5\x07\x0b\x70\x68\x91\x18\xc0\x43\x80\x89\x50\x8f\x7c\xc6\x44\xa8\x27\xa0\x7a\xb2\x22\x35\x2f\x4f\x5c\xda\xce\x91\xa6\xdd\xde\xf1\x92\xc9\x10\xfa\xbd\x57\xef\x19\xa3\x98\x4f\xae\xfe\x8e\x8c\x24\xda\x14\x95\x93\xe4\x20\xef\x63\xdb\x67\x8e\x65\xc3\x41\xd6\xb1\x13\xb6\xb6\xec\x89\x5f\xd0\xfc\x11\x54\x5e\x50\xfc\x91\x39\x65\xeb\x4e\x29\x43\x52\xca\x40\x21\x19\x75\xcd\x32\xcd\xf0\x02\xe6\xdc\xe2\xd0\x71\xc7\xa2\x28\x2c\x1d\x7a\xee\xec\xdc\x9f\x16\xf6\x4c\xbb\x27\x72\x0d\x10\xa4\xe1\x9d\x7d\x72\x00\x34\xac\x03\xaf\x69\xe5\xe5\xa6\x2c\xfc\x0b\x9c\xdc\x58\x46\xb8\x88\xf0\x31\x38\x64\xc4\x37\x31\x1c\xd6\xef\xf0\xb0\x86\x63\x3b\x80\x63\x7b\x6f\x91\xff\x57\x67\xcc\x6e\x08\xc8\xc7\x8f\xc9\xf2\xe9\xf8\x35\x81\x1e\x77\x4f\xc6\xaf\x3d\x59\x77\x4f\xb7\xaf\x3b\x59\x83\xa2\x74\xb0\xd5\xf6\x1b\x20\x91\x45\xb4\x23\xfb\xad\xd2\x4b\xf5\x77\xb4\x94\x50\x01\x6e\x47\x4d\x3a\xc3\x2b\x7f\xc3\x6f\x6d\xe0\x8c\xdc\xe0\x71\xe9\xf2\x89\xcf\xee\xef\x6c\x1f\x10\xce\x06\x81\x7d\x8f\x57\xf4\xf2\x39\xca\xaf\x50\x5d\x2e\xe2\x31\xc0\xca\xa7\x2d\x8b\x3c\x57\xed\xff\x4f\xdb\xd5\x38\xb5\xad\x2b\xfb\x7f\xa5\x78\x2e\x8c\xdd\x38\x21\x90\x53\x7a\x6f\xa8\xc9\xf4\xd0\x76\xe8\xb9\xd0\xf6\x95\x94\x7e\x30\x39\x8c\x49\x1c\xe2\xd6\xb1\x53\x7f\x00\x29\xe1\x7f\x7f\xfb\x5b\x49\xb6\xec\x38\x9c\xd0\x79\x6f\xce\x29\xb1\xbe\x77\xa5\xd5\x6a\x25\xad\x76\x0f\xf1\xb1\x43\x1f\x4f\xf0\xb1\xab\x3e\x3a\x03\xa9\xf6\x33\xc5\x03\xc9\x39\xb4\xe0\x3f\x45\xfa\x0b\xf5\xf5\xdd\x79\xa6\xd2\xd3\x9a\x52\xf4\x7d\xcc\x58\x56\x05\x3e\xcd\x91\xfe\x9a\xf2\x5e\xfe\x46\x72\x69\x24\x56\x72\xf6\x4a\x3e\x13\xae\x3e\x3e\x45\x42\xd5\x33\x6f\xbf\xe8\x8b\x3a\x98\x1e\xb8\xc4\xf3\xcc\xef\x11\x34\xa3\x2d\x4d\x67\x1e\xcd\x25\xf3\xe9\x65\xb4\x9a\x3c\xf2\x39\x6b\xfe\x92\xcf\xd8\x4a\x34\x11\x5b\xd6\x62\xf1\x3e\xb2\x4c\xaf\x1a\x2d\xc7\xf1\x08\x08\xbc\xd1\x86\x90\x7d\x21\xfd\xd6\x00\xae\xaf\x85\x55\x19\x3e\x21\x41\xfd\x2a\x24\x28\x69\xab\xf7\x3d\xf1\x9a\x38\x4a\xea\xae\xe0\xb4\x53\xb2\xed\x67\x85\x46\x1c\xe8\xb7\xd9\x79\x9a\x32\xe3\x6b\xd2\xcf\x91\xf8\x39\x53\xd1\x47\xbc\x2f\x39\xcb\x13\x39\xf2\x8c\x23\xf3\x24\x95\xb1\xa9\x27\x89\xe2\xb4\xa8\xd8\x34\xfe\x24\x32\xd5\x3c\x12\x2a\x01\x65\xee\x3e\x3d\x0e\xd8\x0f\x51\x4a\x1f\xfb\xfa\x6e\x0a\xf5\x1e\x1b\x0d\x8f\x80\xe4\xad\x25\xef\x94\x28\x9a\x23\xd0\x02\x6b\x0b\xd4\xbc\xeb\xd2\x1b\xa8\xe0\x5c\x60\x7c\xcc\xf5\xc9\xc0\x13\x15\x90\x4d\xe4\x01\x34\x63\x28\xe7\x0a\xcd\x51\x74\x13\xd6\xbc\x1c\x2c\x21\xf4\x33\x10\xc8\xfc\x0c\xb4\x96\x01\xbd\xa7\xb7\xe9\xe9\xed\x20\x54\x6e\x28\x9b\xfd\x76\x33\x4d\xbd\x9d\x52\x33\xa2\x15\xf1\xb2\xa9\x98\x31\x7d\xa2\xe3\xc4\xa1\x49\x41\x62\x6b\x62\xca\x43\xbd\x40\x6b\xab\x63\xd9\xc7\x32\x0c\x17\x9b\x9d\x36\x7c\xec\xee\x5f\x48\xdb\xc1\xfe\xd2\xc4\x2d\x79\xa0\x73\xfa\xc1\x62\xd1\x68\x7c\x0a\x68\x3b\xfb\x25\x82\x67\x1c\xb6\xb7\x13\x39\x1f\x29\xfe\x0e\x96\xa7\xba\xaf\xdc\xd4\x6b\x85\xb8\xf6\xb3\x61\xdb\xb9\x7b\x9a\x41\xe4\x72\xe7\x30\xbb\x9b\x09\x4d\xc7\xee\xee\xb3\xf6\xbd\xb0\xe8\x34\xd4\xdd\xd7\xb1\x51\xa7\xe1\xbe\x75\xe7\x4b\x03\xb3\x54\xb7\x50\x8a\x93\x26\x15\xe1\xa3\xce\x85\xaa\x09\x95\x1c\xe7\x4f\xaa\xa8\x58\xf2\x62\xcc\xfa\x50\xc1\x79\x32\xb0\xb6\xb6\xfe\x15\x99\x1e\xbb\x93\x60\x4b\x77\xa9\x7a\x65\xa9\x74\x91\xbf\x46\xec\xe8\x1a\xe6\x10\x2e\xa4\xf1\xdf\x38\x9b\xd5\x5a\x98\x17\x8e\xd3\xb0\x2d\x50\xb6\xdc\x5f\x05\xdd\xb7\x91\xc9\xc8\x5b\x72\x13\xd4\x0f\xec\x8f\x81\xfd\x2a\x70\x44\x02\x91\xff\x07\x7e\x1b\xfa\x09\x9a\xb4\x1f\x84\x04\xe5\x5c\x08\x61\x8b\x92\x5a\xde\x74\x96\xce\x11\xc1\x1f\x88\x81\x0a\x26\x22\xf0\x8b\x30\xf3\x94\x0b\x61\x84\x2e\x37\x13\x5d\x1d\x1b\x5d\x4a\x82\x70\x54\x64\xea\xf5\x83\x9e\x1e\x66\x07\xe7\x5d\xd0\x09\x09\xbf\x92\x9f\xea\xc9\xd2\xc9\x48\x11\xa3\xf9\x87\xfb\xc0\x20\x8b\x82\xce\xaa\x17\x82\xdc\x4d\xfe\x08\x2f\x1a\xf0\x15\xba\x53\x2f\x99\xb9\x43\x8f\xdf\x8a\xee\x87\xce\x3b\x28\x0a\xa8\x81\x7c\x60\xe0\xa3\xdf\x1b\xf8\x58\x0d\xbc\x99\xeb\xfa\xc4\xd0\xf8\xbf\x80\x7d\x84\x8b\x0b\x22\x05\xd7\xb2\x7a\xa6\xa1\x22\x0c\x5f\xd8\x64\xf1\xf2\x2c\x4e\x91\xdb\xb2\x25\xf9\x30\x8d\x9c\xfb\x03\xe8\x9d\x16\x44\x44\x5c\x5f\x3e\x95\x83\x6a\xaf\x46\x52\x70\xac\x93\xc1\xf0\xb5\xea\xad\x97\x15\x77\xac\x95\x47\xaa\x79\xa7\xb9\xd5\x4e\x1b\x8a\x4e\x3b\xd4\x3b\x0d\x06\x52\xa4\x57\xc7\x02\xfb\xe0\x45\x52\xbc\x27\x19\x4b\x97\x8f\x03\xb6\x7a\xac\xbd\x33\x64\xa3\xc1\x57\x6c\x96\x28\x76\xc6\xe7\x93\x01\x4d\x30\x27\x86\xb1\xb4\x68\x60\xd7\x77\xd8\x84\x76\x28\xf6\xb0\x6e\x30\x66\xa8\xfb\x3a\xb7\x9e\x82\x47\xfb\x2f\xae\x69\x08\x32\xc7\x3b\x9f\xc9\xb9\x97\xd9\x33\x1b\xfe\xe6\xfd\xbc\xdb\x32\xbd\xa3\x86\x48\x14\x1d\x25\xfc\x39\xad\x24\x2b\xea\x86\x42\x27\x6a\x23\x57\x88\x62\xad\x9c\xf7\x98\x80\x39\x58\xc2\xb5\xa7\xde\x3b\xd1\x81\xbf\xef\x37\x1a\xd6\x5d\x56\x87\x86\xf0\x49\xca\x8f\x25\xf9\x21\x73\x8e\x0f\xec\xdc\xb9\x54\x0c\x0e\xea\xa8\x8b\xd8\x51\xe5\x72\xff\xb8\x36\xde\x42\xa4\xf9\xe3\xe5\x02\xb9\xcc\xae\x0c\xa6\x1c\x65\x81\x6f\x7a\xe3\x79\xd5\x29\x5c\x80\x03\x62\x88\x2b\xc4\xb0\xbf\x42\x9a\x78\xb1\x2b\x1c\x3c\x82\x63\x98\x96\x78\x29\x2c\xaa\x67\x71\x88\x44\x8c\xaf\x52\xea\x91\x6f\x05\x75\x09\x25\x2d\xe5\x17\x0e\x02\xc1\x04\x8a\x45\x8a\xc4\xef\xac\x94\x29\xf1\xc4\x01\xe9\xbd\x40\xc4\x4d\xd3\xb8\x82\x87\xb6\x81\xa3\x16\xd8\x5e\x3b\x57\x5c\x18\x9b\x77\x4b\xaf\x6b\xea\x33\xbd\x3b\x85\x73\x60\xee\x39\xb7\x15\x44\xd4\xf5\x56\x69\xc7\x56\xb0\x3c\xc9\x8f\xbd\xae\x19\x36\x1c\xc3\xa8\xea\x68\xa5\xca\xef\xec\x95\x6e\xef\xde\x2d\xde\x35\xc1\x58\x30\xab\x7a\x61\xb6\x87\x56\xe9\xb5\x83\x30\x22\x5f\x2a\x68\xa7\xec\xb5\x00\xff\x95\x5f\xb2\x54\xe0\x89\x1f\x03\x4f\x0d\xb6\xbf\x07\xdf\x72\x45\x1a\xbc\x78\xf0\xb9\x44\x3e\xf2\x8d\xf6\x13\x62\x85\xa1\x25\xdc\xdc\x52\x65\x50\x62\x84\xdd\x99\x7d\x6d\xfd\x93\x0f\x72\x34\x57\x01\xc0\xf3\x28\xeb\x4e\x33\xa1\x22\x1a\x26\xb8\xb8\x0f\xfc\xf1\x5c\xd3\x07\xfb\x16\x09\xfa\x33\x50\x6d\x8b\xf6\xe3\xb4\xd7\x96\xa0\xf5\xfc\x6e\x56\x90\x51\xbf\x66\x4e\x94\x0e\x03\x3c\x4d\x03\x5c\x13\xe6\xe5\xd4\x2a\x0d\x6f\xa6\xe9\x3b\x6f\x6d\x3d\x3c\xa2\xc4\xdc\x85\x1f\x8a\xd2\x59\xc2\xfa\x8d\x51\x97\x67\xb2\xcb\x33\x39\x76\x6b\x37\xbe\x5c\x56\x01\x23\x0f\x6a\x56\x74\xaa\x70\x90\x80\x0e\x33\x8b\x7e\x95\x35\x10\xe5\x79\x72\xf9\x49\xe7\x41\xc9\x49\x98\x70\x47\x57\xcc\x22\x05\x11\xf2\xc9\x09\xf8\x21\x8e\x66\x5e\x9c\xa2\x31\x9d\xbe\xbd\x0a\x7d\x7b\xbd\xac\x6b\x7a\x75\xf4\xcd\xcf\x19\x85\xf7\x61\x74\xd3\x61\x34\x9d\x11\xa2\xa3\x53\xb4\x51\x70\x22\x4e\x53\x6d\x9d\x89\x27\x32\x39\x76\xfe\x06\x3b\x61\xa1\xb5\x64\x0a\x65\x4e\xcf\x2a\x19\x41\xd3\x40\x4e\x8a\x3a\x70\x54\xc0\x86\xe6\x04\xa9\x0b\x52\x5d\x52\xee\xa4\x19\xd0\x39\x88\xf8\x5d\x9e\x72\x28\x53\x2c\x27\xd6\xdd\xee\x41\xc4\xb2\x83\x61\x88\x15\x22\xd6\x66\x05\xb7\x48\xdc\x9f\xbd\xe4\x79\xe5\x89\x11\x53\x89\xfb\x2a\xbd\x0b\x10\x31\x30\x1e\x3b\xee\x51\x03\xb2\x44\xe7\xd5\x51\xc9\xea\x1f\x82\x43\x58\xf8\xcd\x8e\xcd\xa1\x8d\x34\x7a\x7c\xa8\x2b\x23\xd9\x95\xf7\xab\x56\x9d\x0e\x4c\x7a\xa2\x9f\x6c\x9d\x14\x0b\x94\xe5\xbc\x4e\xbd\xdb\x5a\x71\x3a\xef\x24\x64\xc0\xcd\xdd\x99\x14\x04\x04\x11\xd6\x1c\x3e\xd4\x2e\x86\x85\x54\x0e\x5b\xe2\x9a\xdc\xba\xcc\x75\xd9\x17\xee\x79\x38\x68\x0d\xa3\x2c\x4c\x5f\xec\x32\x47\xe5\xf2\xe2\x0d\xe6\x3b\x5a\x3f\x79\x29\x17\x10\x1c\xe2\x89\x89\xe8\x6c\xb9\xd2\xad\x70\x50\xa3\xd6\x6b\x6f\xdd\xf5\x7a\xa7\xb4\x5e\x7b\x03\xe2\xb2\x5c\x77\xd7\x5c\x29\xe2\x48\xf7\x38\x75\xda\xbc\x96\x2d\x97\xf7\x1c\x32\x9c\x88\x68\xd5\xc2\x1a\xb0\x40\x80\x77\x5f\xff\x5f\x18\x88\xad\x9d\x84\xa5\xd6\x9a\x73\x01\xa0\xcd\x04\x1e\xeb\x25\x9d\x46\x9d\x74\x85\x7c\xf7\x5d\x61\x04\xb9\x0e\x3f\x51\xb4\x40\x30\xab\x3e\xa0\xfb\x3f\xc6\x51\x6d\x5b\x7f\x0b\x4d\x05\x5c\xae\xf2\x85\x7b\x8c\x7a\x9c\x05\xd2\x7a\x46\xab\x1e\x7f\x55\x67\xde\x05\x98\x0b\x8f\x13\x2b\x57\xc8\x04\x62\xf9\xa1\xdd\xac\x4f\x5b\xfd\xfd\x34\x9e\xdf\xf5\x03\xc7\x5b\x22\xb6\x54\x20\xf9\x91\xb6\x66\x42\x4a\x54\x38\xe1\x81\x45\x79\x1c\x69\x39\xc1\xd5\x5b\x30\x47\xee\xcc\xa6\xea\x7c\xa9\xf7\x53\xad\x34\x3f\xf2\x95\x92\xe7\xbe\xe9\x0b\x4f\x07\x8b\x85\xfa\xaa\xf7\x68\xc0\xfe\x04\x8c\x7c\x1f\x6f\xd0\xc6\xbc\x25\xbb\xe1\xbe\xcc\xb0\x99\x37\xd5\xec\xa5\x4b\x9e\xe1\x97\xf6\xb4\x7c\xe0\x11\x55\x77\x69\x30\x7c\x23\xed\x40\xe9\xfb\x8e\xe0\x60\xb8\x3f\xc4\xbe\x43\x9a\x80\x0d\x4b\xfb\x8e\x34\x77\xb4\x9f\x50\xc9\x71\xe1\x77\x7e\x7c\x90\xec\x27\xd8\x77\xd0\x98\xc9\xbd\x2c\x76\x20\x11\x76\x9f\x6a\x43\x8a\x1d\xa6\x38\x64\x89\xd9\xca\xb7\x38\x60\x89\x79\xbe\xcb\x43\x96\x58\x4c\x8e\x46\x9c\x13\x49\x71\xea\x52\xc4\xdd\x17\x5e\xf9\x4b\xa7\x22\x62\xd3\x56\x5c\xf8\xdd\xfa\xc9\xaa\x13\x58\xbc\x9f\xf5\x4a\xd7\xa5\xb9\x2b\x22\x27\x3f\x68\x30\x95\xa9\x1c\xe1\xf3\xf9\x02\xc6\xdc\xd3\x8b\x8b\xc5\x02\x9e\x6a\xcb\x71\x58\xf2\xa2\x19\x5e\x17\x4d\xa4\xe2\xd6\xb0\x37\x66\x1b\xe6\x89\xfa\x95\x7c\x70\xcc\x66\xf1\x95\x2a\xbd\xd5\x1d\xd2\x56\x37\xdf\xe4\x70\xce\x37\xac\x3e\x5f\x0a\xe8\x65\xe7\xdd\x14\x26\xbe\x8b\x5d\xba\x69\x70\x4e\xc3\x6a\x81\x70\xcd\x09\x8c\xda\x5d\x3b\xb3\x96\x07\x8a\x32\x61\xe8\x1b\x1e\xf2\x4d\xe3\x8a\xa8\x4c\xb6\x4b\x79\x59\x5c\x36\x86\x81\x9b\x24\xca\xab\x86\x25\xa5\x05\x23\x22\x0a\xf1\xd3\xb9\x61\x1f\xba\x96\xf0\xc4\xa4\x9d\xb6\x50\xc5\xb7\x7e\x6a\x5a\xb5\xb9\xd5\x6e\x0c\x86\xf2\xaa\xc5\xd8\xa0\x5c\x5d\xb9\x1d\xe8\x0b\xe6\x7c\x23\xb3\xdb\x56\x23\xb2\x6f\x9d\x4f\xbe\x39\x66\x95\xc5\x12\xaa\x39\x02\x8c\x2c\x14\x7b\xec\x0b\xc7\xbc\xcc\xb1\xa5\x9e\x82\xaf\x0e\x83\x26\xd9\x64\x09\x4d\x55\xb8\x7c\x5c\x64\x5e\x92\xa8\x71\x9d\x97\xc4\x6d\xb6\x01\xc3\x95\x2a\x82\x57\x7b\x71\x16\x29\x95\x45\xed\x97\xce\xb5\x22\x12\x95\xff\x9d\x33\xad\x46\x1d\xd2\x28\xa8\x28\x51\x09\x8b\x16\xe6\x95\x65\xff\xd2\x2a\x10\x49\xf6\x4f\xad\x02\x19\x75\x4c\xdb\x96\x68\xc6\xcf\xa6\x16\x0b\x23\xf0\xc6\xa9\x78\x42\x05\x1b\x9f\xe0\x81\xc6\x65\x94\xa6\xd1\x54\x65\x50\x79\xf1\xc4\xea\xcf\xc8\xbe\x71\x60\x07\xfd\x87\x03\x93\xe7\xa7\xf4\xbd\x6b\xd8\xaf\x29\x40\x3f\x87\xb2\x5f\x46\x94\xd2\x3e\x38\xee\x19\x6d\x6f\x6a\x74\x8d\xd6\xf3\x1d\xfa\xcd\x07\x08\x40\x34\xdd\x10\x97\xcb\xd4\x77\x53\x7f\x34\x0a\x80\xd5\x85\x2a\x6c\xf0\xcd\xd3\x2d\xdf\x3c\xd9\x46\xe3\xf8\xa9\xdf\x30\xce\xda\x47\x88\xc2\x1d\xd4\x19\x47\xf1\x4b\x7a\xe7\x33\x43\x33\x67\x68\x6e\x19\x9a\xb9\x80\xe6\xb6\x02\x8d\xd1\xea\xec\xae\x84\x81\x41\x05\xbb\x54\xce\x03\x96\x80\x61\x18\x6c\x05\xd4\x51\xfb\x4c\x01\x73\x24\x81\xb1\x5f\x8a\x02\xaf\xed\xe3\xa7\x19\x0d\x83\x08\xfd\xa0\xd0\x09\x14\xab\x38\x74\x4a\x14\x58\xca\xf5\x53\x84\x6e\xf2\x78\x99\x7f\x2c\xde\x31\xfc\xe9\x86\x23\xc1\x3e\xfa\xce\xd8\xfe\xe8\xf4\x8b\x68\x13\x27\xfe\xc4\x85\xea\xa4\xc9\x3e\x7d\x37\x3e\xca\xd5\x24\x29\xca\xf4\x28\x7f\x77\xa4\x2e\xae\x61\x3b\x80\x88\x33\xb7\x41\x39\x86\x03\xb3\x3c\x6d\xac\x76\x0d\xd2\x6e\x50\xe5\xc9\x4b\xec\x7c\xc7\x59\xf7\x1e\xad\x02\x7b\xb4\x04\x74\xc0\xf5\x77\xd8\x22\x53\xc5\xc6\x04\xbf\x41\x5a\xf3\x16\xa8\x78\xc1\x1f\xc5\x7e\xc9\xb5\xe9\x3f\x5c\xde\x61\x5b\xf2\x26\xe8\xa5\x0d\xc3\xe8\x7e\x0f\x72\xb5\x2d\xe6\x8e\x35\xea\x1b\x75\x97\xd0\x85\x6b\x43\x75\x11\x8d\xd2\x67\x15\x13\x97\x0f\x5f\x08\xa7\xf9\x65\x70\xc1\x60\x1f\x6f\x1e\x13\x65\x97\xcc\x0e\x3c\xfc\x38\xcf\x83\xc2\x59\x23\xc5\x92\x9c\x67\x61\xb3\x78\xb9\xfe\x19\xab\x97\xf4\xeb\x6a\x7e\x40\x85\xad\x51\xd8\x73\x62\xfd\x93\xc7\x95\xf7\x65\x79\x5f\x21\xf5\xe1\x31\xa6\x9b\x22\x59\x3a\xca\xbb\x24\xbb\x1c\xf9\xd7\xfe\xa8\xd6\xd6\x7f\xa5\xf8\xd6\x56\x98\xdf\x23\x7e\x0f\x1c\xc5\xcc\xec\x37\x81\x73\x47\xac\x0c\xaf\xd5\xe0\xf7\x01\x9e\x0f\x39\x85\x3e\xc0\x02\xd5\xeb\x35\x5a\xe2\x2f\x63\x12\x02\x56\xac\xf1\xac\xfd\x54\xb7\xc6\xa7\xd5\x15\x5e\xf1\x1a\xf6\x78\xe5\xc5\x4d\x96\xd5\xb0\x5c\xd0\x2c\x2b\x38\x51\xf3\xc6\xbb\xfc\xe1\xa7\xcd\xd4\x9d\x35\x27\x04\x57\x00\xd8\x9a\xc3\x28\x60\xee\x18\x5f\x5d\xba\x66\xdb\xe6\xff\x2c\x43\xb3\xf8\x8f\x5b\x3a\x01\x27\x9e\x7a\x72\x7c\x1a\x65\xc3\x89\x70\x41\x90\x27\xb0\x9f\x2f\x7d\x9d\x83\x47\xd3\x2b\x7e\xdf\xaa\xaf\x75\xfb\xd1\xd2\x42\x17\xc3\xff\x6b\x75\xa1\x2b\x95\x96\x08\xc0\x29\xd2\xa5\x1f\xf0\x92\x6b\x4c\x88\x9b\x7b\x61\x91\x38\xcc\xe2\x84\x11\xe1\xbb\xdb\x89\xeb\xc7\x58\x25\x4b\x10\x09\x47\xc6\x3a\x34\xeb\xc1\x92\x97\xab\x36\x05\x49\x41\xae\xab\x6e\x05\xfb\xd8\xc3\xdd\x91\x6a\xeb\x1a\x3e\xa3\x5d\x29\x77\x14\x22\x86\xbb\xd4\xfe\x55\xb5\xf1\x65\xb6\x6b\x88\xaa\x9f\x40\xc5\x75\x09\xa4\x1a\x2e\x7d\xc4\xa6\xae\x57\xa0\x78\x5b\x57\x64\xfb\xdc\xbb\x19\x14\xfa\x75\xbd\x66\x47\x18\x18\x51\x85\xe6\xb5\x85\xfe\x3e\x0f\x93\xc1\xea\x42\x37\xfe\x88\xe4\x19\x7b\x4f\x85\x27\xec\x12\x85\x23\x1e\x1a\x5e\x76\xa9\xc1\xc9\xd8\x77\x90\x68\x6d\x40\x07\x06\xf7\x76\xa6\xd5\x33\xc2\x88\xc4\x14\x6e\x47\x8c\xc2\x10\x72\xad\x5b\xbe\x79\x83\x05\xb5\x52\x54\x64\xed\x07\xec\xfe\x81\xe4\xb3\x00\xe6\xd4\xf2\xae\x18\x32\x4d\x94\xe0\x85\x36\x4a\x93\xe3\xed\x98\xa4\x39\x12\xa6\x55\xd1\xa4\x28\x3a\x2f\x17\x55\xa8\x69\x65\x33\x2e\xeb\x99\xe3\xd2\xf9\xb5\x27\xe4\xf8\x5a\xba\x11\x55\x69\xee\x61\x6b\x28\x41\xf7\xdd\x3a\x3e\x6f\x6c\x7b\xc5\xa0\x09\x89\x66\x42\x91\x7f\x27\x7a\xa4\x65\xdc\x2f\xdb\xd8\x52\x42\x5b\x31\x43\x0a\xea\x60\xf0\xc3\x9a\x79\x64\xb7\xc2\x03\xd0\x92\xdd\x4a\x0e\x4a\x34\x25\x7b\x6e\x0c\xec\xc7\x65\x9b\x5e\xd9\xc3\xed\x51\x3f\x4e\x1e\x68\xcf\x93\xed\xdd\x94\xdb\x53\xdd\x3d\x41\x83\x93\x72\x83\xbe\xce\x52\x11\xe8\xec\x3a\x85\x07\xbf\x1f\xde\xfc\x30\x1a\xe1\xc8\xf3\x90\xf6\xb8\x27\xe2\xf9\xfc\x4f\x18\x91\x75\x00\x3d\x7d\x52\x8d\x0e\xea\x25\x49\x78\xd7\xb2\x4f\xf1\x40\x3b\xaf\xee\x7a\x65\x75\x14\x79\x48\x95\xa2\xa6\x46\x51\x53\x43\xd5\xd4\xae\x54\x34\xd2\x75\x7d\x98\xe7\xc2\xb9\x7e\x0a\x3b\x45\x30\xc7\x17\x72\x35\xb7\xca\x77\x3d\x3e\xf1\xdc\x00\x20\xe7\x4d\xbb\x41\xfa\x5f\x6f\xde\x33\x4f\x18\x8f\x73\x13\xfd\xde\x18\xb3\xb5\xda\x5d\xdb\x44\xa7\x34\x26\x22\x44\x25\x01\x17\x81\xd5\xe0\x9a\x5f\x9c\xa0\xc7\x04\x84\x04\x20\x22\x77\x10\x49\x99\x07\x56\x57\xf4\x09\x09\x9d\x5b\x5b\x53\x58\xf8\xa6\xb5\x01\x3b\x63\xf3\x07\xc3\xd7\x26\x89\x53\x24\xc0\x53\x33\x9b\x65\xc9\x13\xd8\x2d\x09\x82\x37\xca\x5d\x96\x5c\x2a\x60\x5f\xa0\x7b\xd8\x13\xcc\xb3\x2b\xb9\x99\x71\xaf\x77\xc8\x54\x29\x15\x4a\xeb\x6d\x24\x70\x7c\x62\xeb\x56\x43\xc7\x17\x16\xb2\x7c\x61\x88\xf3\x27\x8e\x3e\xae\x1d\xaf\x37\xe9\x8e\x69\x9f\x77\x8d\xf1\xba\xd6\xcc\x74\x60\x14\x86\x4d\x98\x0b\x69\x3a\xa3\x46\x02\x79\xd2\xf4\x7a\xb3\xee\x95\x55\xd8\x60\x19\xda\x85\x49\x1d\x5b\xf8\x01\xee\xe2\xc7\x3e\xec\x65\x8e\x19\x37\x9c\xc4\x6a\x8c\xba\xe6\x09\x5b\x27\xa9\x2f\xb5\xfb\x14\x0e\x10\x9b\x31\x9e\xb6\xc5\x07\x09\x64\x1a\xa8\xa8\xc1\x4b\x02\xfd\xb1\x01\xd1\x06\xf6\x37\x80\x6f\xc3\xc9\x48\x06\xed\xb9\xc2\x19\xbd\x34\xd9\x80\x1c\x54\x04\xe9\x4e\x06\x13\x3d\x5d\xf6\xc9\xa3\x59\x82\x21\x76\x77\x47\x74\x62\xff\xf8\xa7\xb5\xbe\x8e\x97\xac\xc7\x41\xed\x42\xaa\x20\x49\x86\xf6\x32\x4b\xab\x8b\xc8\x76\x5c\xc8\x06\x18\x43\x25\x02\x88\x53\xf0\x3c\x29\x9b\x2d\x27\xb0\xdc\x50\x5f\x86\x93\x70\x98\xbc\x94\x42\xb3\x4a\x17\x41\x4a\x09\x95\x46\xec\x5f\x66\x95\xde\xb0\xd9\x92\x3b\x0c\x7e\xfe\xc7\xc7\x1e\xb4\xe1\xd6\x24\x28\x35\x87\x94\x77\xb4\x1b\x67\xd8\x8a\xc6\xe6\xa5\xfe\xe4\xf1\x87\x56\x80\xe6\xe6\x6b\xe7\x02\x0b\x7b\x36\xa5\xf6\x5e\x3a\x1b\xdb\x7f\x9b\xe1\x22\xb1\x14\xf7\x7d\x4d\x53\x21\xa0\xed\x34\xe2\xbd\xc5\x4d\x29\x3e\xa1\xf9\x7f\xd1\xe2\xc5\xdd\xa3\xc5\x58\x31\x40\xda\x4e\x7f\x46\xc5\x3f\x4b\x2c\xe0\x58\x07\x13\x9b\xfc\xba\x0e\xf1\x6b\x7a\xe3\x9a\x1f\x59\xe5\x98\x0d\x27\xd8\x9a\x8d\xfa\xdc\xc7\x49\xef\xb8\x7e\x30\x46\xf5\x23\x31\xb7\xba\x2b\x46\x7c\x54\x3b\xdc\x73\x10\x69\x7e\x18\x68\x96\x48\xf2\xa9\x61\xe9\x49\xf6\xa1\x25\x79\x11\xb1\x5c\x7c\x29\x2e\xc4\xc1\x9d\x81\xb0\x40\x8d\x77\x8f\x6a\x77\xda\xd8\xbe\x29\x7a\x93\x76\xaa\xb4\xbc\x85\x79\x78\xff\xd6\x39\x27\x9e\xd7\xec\xcb\xca\x88\xe3\x35\x3f\x8a\x9a\x06\x8a\xe9\xf5\xf3\x36\x3e\x0e\xc4\xc6\xb5\xc2\x43\x69\x9a\x9f\x38\x3f\x95\x05\x2b\x6b\x7f\xf5\x84\xe3\xa9\xb3\xee\x8c\x5b\x6f\x82\x5d\x54\x22\xac\x2a\x39\x8b\x53\x03\x58\x92\x97\x3e\x67\x85\x7d\xec\xd7\xc4\x30\xf5\x0c\xb6\x62\xb6\xc5\x24\xb0\xa4\x5d\xc6\xc2\x50\xd0\x79\xdb\x66\xfb\xb2\xe2\xf7\x0a\x56\x9b\x66\xf8\x73\xed\xbc\x0f\x34\x1e\x1a\xca\xa3\x5f\x5d\xfe\x58\x71\xf6\x28\x26\x4e\xf5\xb9\x70\xea\xdc\xdd\x12\x7b\x9e\x77\x27\x30\x6f\x6a\x7f\xc7\xb6\xd7\x5b\x3a\x92\x14\x37\x45\xda\x81\x64\x6a\xf7\x69\xab\x5d\xd9\xe8\x68\x62\x9c\x25\x6f\xa0\x4a\xfb\x10\x0d\x22\xdc\xe2\xf9\x6c\x20\xeb\x3b\x3b\xd1\xb8\x25\x54\x61\x26\x2b\xac\xed\x50\x92\x53\xe5\x65\x1a\x47\x77\x97\xeb\x13\x5b\xe3\x39\xcc\xd7\xa6\xf0\xb3\x17\xe3\x7b\x02\x87\x4b\xc5\x35\x9f\xe3\xca\xce\xd5\xce\xd4\x71\xc8\x7c\xeb\xe0\x6e\x1c\x92\x68\x6b\xee\xc4\xf8\x0c\xeb\x56\xc5\x62\x31\xbc\xbf\xb7\xb4\x0b\xb6\x3a\xe4\x52\x46\x2e\x25\xe4\xfe\xa1\xaa\x4a\xba\x64\x88\x38\xd4\xaa\xa7\xac\xdf\xa9\x8e\x2f\xeb\xd6\x76\x5e\x11\xd0\xd8\x32\x91\x6d\x04\x2f\x5e\xec\x2c\x36\x92\x81\xd2\x4f\x5f\xd7\x97\x45\x52\x5b\x43\xc2\xaf\xbf\x02\x77\x3a\x5b\x13\x0e\x62\xc7\xb0\x62\xb4\xb1\x01\xab\xb7\x20\x7e\xfa\x20\xb9\xa7\x1b\xf4\x38\xb2\x9b\xf0\x43\x7d\xfa\x12\x0a\xf4\xc8\x7e\x7e\x65\xcf\x06\xc8\xd0\x4d\x48\x8e\x10\x76\x17\x43\x29\xa1\x2e\x9f\xa4\x48\x5d\xb3\xe1\xaa\xfb\x2e\x86\x81\xaf\x1c\xa8\xfd\xd8\x49\x59\xaa\xe1\x18\x4f\xc4\xc4\x2c\x0e\x47\xce\x39\x55\x05\x1f\x16\x7e\x78\xed\xc5\xc2\xe3\x1b\xfc\xee\x51\x8e\xc0\x8c\xb1\xb3\x38\x88\x79\x5f\xe2\xc1\x69\x39\xdc\xa9\xc0\x01\xd9\x06\x33\xd6\xc5\x22\xde\x60\x21\x14\x02\xda\x58\xd4\x24\xf7\x31\x99\x68\xd8\x17\x0d\x07\x1c\xc3\x26\xce\x7d\x16\xb0\xa0\xd8\x7f\x4e\xf0\xc3\x51\x46\xde\x30\x49\x34\xa0\x5f\x9f\x7e\x70\x1a\x99\x1d\xf8\xdc\x70\x66\x67\x0e\xbc\xb7\xa0\xe1\x6c\x83\x59\xf8\x62\xe1\x6f\xb0\xc8\x8b\x86\x27\xa2\x26\x8b\x7b\x92\xb1\x8e\x70\x14\x17\x09\x34\x23\xee\x76\x0a\x8f\x45\x98\x65\xe6\x32\xb6\x32\x20\x91\x56\xa1\x7a\xdc\x25\x7a\x2e\x04\x31\x57\x60\xe8\x8a\x16\x32\x86\x8c\xc2\x2c\x8a\x97\xd1\x52\x75\x0a\xec\x54\xa8\x1e\x49\x8b\x4d\x1f\x10\x39\x50\x77\x66\x03\xfb\x3c\x26\xdc\x40\x16\xdc\xbb\xa0\x1b\x81\xad\x20\xc8\x7a\x9b\x47\xb9\x10\x46\x22\x7b\x95\x19\x2b\x46\x62\x41\x23\x5f\x66\x5c\xae\x62\x63\x83\x60\x40\x8f\x39\xdc\x61\x8b\xc5\xc6\x06\xb5\x3c\xe1\x08\xe0\xa7\xfb\x64\x0c\xcb\x3e\x19\x8f\x02\xe7\x2e\xec\x1a\x61\xd2\x94\x13\xdb\x86\x5f\xf0\x9b\x3c\x94\x94\xd2\x6e\x4a\x69\x21\x05\xc3\x9b\xc4\x2b\x22\xa8\x6c\xe8\x25\x5a\x69\xaf\x92\x23\xb9\x29\xe7\xb8\xb7\xdf\x07\xce\xf9\xb9\x11\xe2\x74\x85\xfe\x61\x39\xbd\xc1\x92\xca\x7f\x38\x86\xff\xdc\x18\xd4\xb7\x9c\x43\x7c\x85\x9c\x17\x56\x4b\x06\xf6\xdb\xc0\x71\x87\xd2\x54\x93\x73\x35\xe4\x1b\x39\x71\x16\x6a\x7f\x0d\x9c\xb7\x41\x2b\x4b\x87\xf6\xb7\xc0\xf9\x4a\x0b\xf3\xe6\xd7\xe6\xe6\xb4\xb9\x39\xea\x6f\x1e\x75\x37\x4f\xba\x9b\xa7\xad\xcd\xe3\x6f\x86\xb5\x4f\xb9\xfc\x24\x72\x58\x67\x3a\x57\xb9\x6d\xa5\xd1\xdb\xd3\xf7\xa7\xac\xa6\xb2\xb5\xd5\x80\x2b\xde\x57\xbc\xc7\xde\x6d\xb7\xdb\xcd\xf6\x0e\xfd\xdf\x6f\xb7\xbb\xfc\x7f\x8b\xa2\xa8\xa2\xde\x5f\x51\xf7\x5b\x60\xff\x15\x41\xab\xa1\x56\x5f\x21\xaf\x45\x53\xb7\x61\x9b\xa9\xca\xb4\x70\x7a\x8f\xe2\x69\x24\xda\x75\xbe\x05\xf9\xb7\x4d\x68\x26\xde\x30\x0a\x47\xce\x9b\xd4\xac\x39\xe1\x41\xdd\xc3\xa1\xb9\xe3\x75\x9e\x6a\x76\xa6\xc2\x6d\x8a\xc0\xfd\x74\xf9\x5e\x9a\x55\x09\xfb\xd4\x57\x26\x6b\x2a\xf2\x97\xd5\xa8\x94\x4d\xcb\xe5\x34\x9a\xa5\x22\xa7\x0c\x4b\x62\xb2\xe7\x48\x05\x5a\xe2\xe4\x9f\xe2\x22\x40\x4b\xc2\x48\x68\xc9\x14\x2a\xb2\xd0\x06\x2a\x4b\xbd\x87\x11\xdb\xf3\xfe\x28\x23\x46\x11\xeb\x22\x56\x29\xfb\x20\x62\x27\x0c\x4b\x8e\x98\x00\x8d\x11\x13\x9f\x55\xa8\x73\xc4\x64\x72\x09\xb1\x49\x94\xc5\x55\xb4\x94\x11\x67\x09\xde\x2f\x12\x20\xdf\xb3\x2b\x29\xd3\xda\xde\x2b\x1c\xbd\x09\xac\x3b\x7b\xde\xb3\xa7\x66\x09\x6f\x44\x35\x53\xab\x91\xae\x8b\x3d\xd7\xb1\x2e\xfa\x47\x04\x71\x8e\x3c\xc0\x67\xd4\xf1\x51\xc6\x2a\x47\x9b\x93\xca\xa3\x19\x85\xe9\x64\xd5\x60\xa2\xc8\xc8\x85\x86\x1b\x9f\xef\xa4\x3c\x1d\x76\x98\xc5\xd5\xe0\x72\x82\xaa\x04\x32\xe2\x13\x68\x3f\x30\x76\x22\x8f\x1c\x39\x04\xc4\xc0\xe1\xab\x02\x5f\x31\x6c\x9c\x98\x23\xc0\x8c\xf1\x0c\xf6\x34\xbd\x8e\xfd\xcc\x83\xd1\x28\xfa\xd3\xf1\xfe\xb0\x89\x88\xe8\xf7\x99\xfd\x1f\xfa\xb7\xf3\x6f\xfa\x83\x7e\x85\x09\x29\xfa\xbb\xbb\x83\xef\x3f\x3a\xbb\xf4\xf7\xdf\x7b\x7f\x20\xfe\xf9\x2e\x12\xf6\xda\x7f\x70\xfa\xb3\xff\xec\x7a\x7b\xf6\xf3\xe7\xcf\xf7\xe8\xa7\xb3\xf3\x8c\xca\xee\x0d\xec\x2f\xe0\x7f\xf9\x9c\x60\xd3\x77\x45\xe8\x59\x29\xb4\x53\x0e\x76\xda\x22\x28\x88\x4e\x95\x94\xa1\x67\xe5\xb4\x72\x50\x95\xc4\xb8\xa9\x72\xfc\xdd\xd1\xbe\xf7\xf4\x3c\xbb\x22\x40\xa3\xa6\xf2\xe3\x53\xc6\x92\xb8\xfc\x23\x6f\x1e\x5d\x59\x0e\xc8\x4a\xe7\xb4\xfa\xd9\xd8\x80\xfd\x8b\x99\xf2\x34\x0b\x52\xdf\x24\xd6\x4f\x1c\xb8\xf6\xb8\x5a\xce\xc4\x20\xf0\x93\x9c\xcf\x80\xf5\x13\xd3\x5e\x9d\xff\xb4\x94\x75\xf3\x2d\x31\xf9\x87\x2a\x57\xd3\x5c\x64\x7e\xb2\x39\x5b\x9d\x59\x4d\x0a\xce\xea\x3e\xd9\x1c\xad\xce\xfa\x8a\x68\x9b\x44\x9d\x9d\x0d\x47\x06\x53\x4f\x15\xbc\x5c\x55\xb0\x2e\xf3\x9f\x0f\x80\x2e\xa9\x9c\xf3\x7d\x35\xec\x77\xde\x80\xa4\xb4\x3f\x69\x31\x67\x0a\x2e\x59\xda\x2c\x1e\xe5\x16\x3e\xca\x0a\x6b\x85\xe1\xb6\x67\x3d\xf5\xec\x06\xb2\xf1\xeb\xb7\xff\x42\x13\xb0\x6a\xb9\xf1\x4b\xc0\xe3\xe7\xa8\x71\x04\x15\x96\x6f\x5a\x0b\x8b\x85\x51\x8d\xc5\xc2\x2f\x01\x0d\xbb\x14\x39\x3e\x07\xce\x97\x8a\x87\xc4\x1c\xbb\x73\xf6\x6b\x85\x05\x1b\xa7\x8f\xb0\xf3\xfe\x17\x16\xee\x35\xa9\xe5\x53\xff\xf0\xb1\x04\x43\x45\x1e\x45\x33\xdc\xc4\x23\xc8\x86\xf2\x3f\x82\x72\x28\x77\x85\x78\x38\xe6\x11\xf4\x53\xc9\xff\x00\x09\x01\x93\x3a\x2a\xda\xff\x5c\x1e\x6b\x1e\x0d\x35\xde\xcc\x31\xd7\x1c\xf3\xcf\x24\x07\x49\xdb\x8a\xac\x86\xfa\xb2\x7e\x35\xc0\x59\xc9\x2c\x0a\x13\xaf\x4f\x99\xee\xf9\x6c\xe4\x7b\xb2\xea\x7d\xd5\x3b\x3c\x7e\x30\xa0\x43\xe4\x0f\x59\x83\x6a\x1b\x79\x0d\xfb\x7f\x22\x65\xef\x7e\x92\x4e\x83\x87\xca\x02\x94\x6d\x64\x22\x71\xd5\x55\x85\x6e\xa9\xcc\x3f\x81\xf7\xe5\xe4\x98\xa0\xab\xd1\x39\x1c\x79\x63\x42\x79\x6b\x4b\xfc\xb6\xdc\xe9\xa8\x27\x3e\xa9\x4f\xac\xae\x11\x5d\xe2\x19\x6e\x91\x9d\xb6\xd1\x59\x40\xd9\xc5\x2f\x9b\xe4\x8c\x53\xec\x52\xca\x11\x0e\x15\x16\xba\xbd\xa3\x0e\x7d\xdf\x9b\xd6\xfe\xff\x06\x00\x00\xff\xff\x3b\xc1\xeb\x31\x55\x4e\x02\x00") + +func uiJsLibsD3335D3MinJsBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsD3335D3MinJs, + "ui/js/libs/d3/3.3.5/d3.min.js", + ) +} + +func uiJsLibsD3335D3MinJs() (*asset, error) { + bytes, err := uiJsLibsD3335D3MinJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/d3/3.3.5/d3.min.js", size: 151125, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsMithriljs020MithrilMinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x7c\x79\x77\xdb\xb6\xd2\xf7\xff\xf9\x14\x32\xeb\xe3\x97\xac\x60\x5a\x4e\x9e\xf7\x9e\xe7\x52\x41\x78\x9c\xc4\x59\xda\x38\x8b\xe3\xb4\x4d\x14\x35\xe5\x02\x89\x94\xb9\xa8\x22\xe5\x25\x26\xbf\xfb\x33\x33\x00\xb8\x48\x72\x7a\xef\xe9\xa9\x45\x62\x1d\x0c\x66\xf9\xcd\x00\xcc\xd1\xcf\x0f\xce\xe2\x32\x5a\xc5\xc9\xe0\x6a\x64\x3f\xb4\x47\x0f\xa2\xb2\x5c\x3a\x47\x47\x73\x28\x5d\xfb\x76\x90\xa7\x47\x49\x94\xaf\x62\x71\x94\xca\x76\xf6\xa2\x78\x60\x06\xd6\xe0\x8d\xc8\x07\xaf\xb0\xe2\xc1\x9b\x38\x10\x59\x21\x9c\xc1\xd9\xeb\x8b\x07\x3f\x1f\x3d\xb8\xf2\x56\x83\x94\xcf\xd6\x59\x50\xc6\x79\x36\xf0\x4c\x9f\x05\xd6\x5d\xf3\x1e\x9a\x9e\x75\xf7\x9c\x7b\x76\x98\x07\xeb\x54\x64\x25\x3b\x85\x97\x24\x0f\x3c\xac\x66\x2f\xe1\x25\xf0\xb2\x40\x24\x27\x59\x9c\x52\xd9\x8b\x95\x97\x8a\xaa\x82\xf2\x44\x78\xab\x8b\x38\x15\xf9\xba\x64\x2f\xa0\xe1\x4a\xfc\xbd\x16\x45\xb9\xdd\xb2\x10\xa5\x6a\x57\x37\x13\x0b\xd3\xba\x43\xda\x3c\xe6\xf3\xc9\xd4\x2e\x12\xa0\x1b\xa6\x4a\x12\xd3\x5b\xcd\x89\x92\xc2\x62\x01\xdf\x33\xb3\x75\x92\x70\xee\x4f\x8e\xa7\x55\xf5\x46\xb6\xc0\x17\x6b\x8f\xf3\x57\x55\x65\x94\xde\xdc\x88\xb3\x81\xac\x37\xae\x62\x71\xdd\x79\x2d\xd6\x7e\xb9\x12\x42\x97\x58\x2c\xe4\x81\x8b\x4f\xce\x5d\xcd\x04\x37\x82\xc4\x2b\x0a\xac\x0d\x5d\xf5\xec\xc8\xdf\xb7\x40\xb9\xc1\x66\xfc\x0e\x86\x77\x8c\x30\xbe\x32\x98\x57\x96\xab\x02\xfa\xd5\x6c\x0e\x04\x8f\xe3\x99\xd9\x50\x33\x42\x6a\x7e\xb1\x60\x47\xf2\xeb\x41\x26\xae\x07\xa7\xab\x55\xbe\x32\x8d\x42\x24\x22\x28\xf3\xd5\x00\x66\x48\x4d\xfd\xc6\x06\x34\x14\x1b\x04\x51\x9c\x84\x2b\x91\x59\x83\x22\xca\xd7\x49\x38\xf0\xc5\xc0\x1b\x14\xe5\x2a\xce\xe6\x86\x35\x9e\xc1\x10\x63\x8f\x9f\xd9\xe2\x46\x04\x72\x96\xb1\x05\xd3\x1a\x06\xe7\xdc\x83\x45\x1c\x1c\x78\x93\x87\x53\x6b\x66\x03\x91\x1c\x1f\xc7\x22\x29\xc4\x00\x9b\xfc\xa4\xdb\x40\x2d\xcd\x66\xc7\xe1\x46\x13\xbb\x69\x32\xb7\x97\xeb\x22\x32\x69\xb0\xb6\x7e\x22\xeb\x1f\x4d\x71\x62\xda\xaa\x88\xbf\x95\xb4\x60\x29\xd0\x27\x47\x9e\x44\x30\xc6\x94\x47\x50\x56\x55\x66\x04\x83\xb8\x86\xe1\xec\x8d\xac\x1a\xfb\xc4\xdc\x97\x7b\x6b\x06\xee\x43\xe7\x18\x7b\xe9\x65\xf3\x63\x98\x20\xb6\x13\x91\xcd\xcb\xe8\xe0\x40\x71\x33\xc6\xe9\xa0\xe2\xb5\x8b\x4f\x4e\x4c\x6c\xc0\x91\x16\xc8\xc5\xd0\x0a\xed\xc8\x2b\xde\x5d\x67\xef\x57\xf9\x52\xac\xca\x5b\x73\x61\x1d\x1c\x98\x0b\xe8\x21\x0e\x0e\x50\x56\xf6\x78\x38\x59\x00\x6f\x0c\x03\x24\x04\x1f\x5d\x53\x2d\x10\x5f\x2c\xa6\xc9\x5e\x4c\xb9\x61\x58\x4e\xe7\x95\xea\xc7\x2b\x51\xae\x57\xd9\x60\xae\x08\x7b\x32\x82\xe1\x75\x23\x31\xe5\x73\x7b\x91\xc7\x99\x69\x0c\x0c\x0b\xc6\x6a\xe5\x79\x66\x82\x24\xb3\x90\x2d\x58\xc2\x52\x96\xb1\x9c\x2d\xd9\xdf\x6c\x65\xdd\x95\xab\xdb\x3b\x25\xc4\x49\x55\xa9\x07\xbb\xcc\x3f\xd2\x3e\x9b\x16\x92\x9f\x20\x29\x35\xe8\x5c\x10\x99\x85\x75\x87\xaf\x35\xee\x01\xd0\xe2\xc5\x19\x6e\x44\x62\x2b\x59\xb6\x14\x7d\xe9\x18\x99\x52\x72\xc5\xb6\xd4\x62\x6b\xfd\x9c\x58\x28\x9d\x72\xa6\xb4\xaa\x4a\xe0\xc3\xda\xba\x53\x45\x7b\x3c\x45\x21\x0a\x0f\x0e\x42\x3b\xcb\x43\x51\xc8\xbd\xbd\xe2\xf9\xe1\x82\x5d\xf3\xab\xa1\xb9\x26\xee\x27\x4e\xaa\xea\x15\x23\xc6\xb1\xa9\x7a\xa8\x0d\xbd\x62\xd7\xa0\x50\x9d\x17\xab\x26\xe1\x51\xfd\x0e\x0e\x62\x53\x3d\xb2\xd4\x1a\xa7\x1c\x15\x23\x01\x1b\x96\x81\x84\xaf\x49\x11\x52\x94\x5c\x58\x7e\xca\xef\x6a\x8b\xa9\xc6\xa0\x5c\xb8\x76\xa2\x02\x0c\x95\xda\xfd\x1b\x3e\x62\xb7\xc0\x05\x45\xcb\xed\x93\x9b\xf1\xcd\x70\x68\xe9\x15\x4f\x6e\xa4\xd0\x10\x2f\x69\x12\x60\xa6\xed\x2d\x97\xc9\xad\x39\x99\xb2\xc4\x62\x37\x87\x87\x9d\x01\xac\x46\xac\xbe\xc3\x7c\xec\x84\xa7\xaa\x82\x58\x2d\x1f\xd9\x53\x98\xf3\x19\x3f\x06\x8b\xf8\x10\xec\xdb\x23\x30\x86\x60\x35\xce\xf8\xde\x31\x03\x6a\xc6\x37\x8f\x75\x1f\xa2\x24\x05\x12\x0e\x0e\xf0\xaf\x94\x15\x2d\x8c\x6d\x89\x7d\x29\x6e\x81\x3e\x18\x60\xc4\x5e\x4e\xfa\xe5\x53\x7e\xe7\x91\x1c\x39\xcf\x58\x9c\x85\xe2\xc6\xb9\xa9\x5b\x1a\xdf\x02\x21\xf7\x30\x00\x38\x95\xd0\xcc\xc9\xd6\xcc\x49\x6f\x86\x96\x95\x1f\x36\x47\xfa\x30\xfe\x00\x23\x25\x93\x0f\x34\xcc\x87\xde\x30\xc0\x8e\xa6\x44\x2d\xa0\x5f\xc0\x8d\x6f\xdf\x94\x33\xfa\xf6\xcd\x18\xbe\x85\x91\xc6\xfe\x4a\x78\x97\xb8\x89\x67\x52\xb8\xce\x81\x67\x28\x92\x7a\xce\xbd\x86\xdd\x16\x54\x8d\xa4\xcd\xd1\xe4\x7d\x64\x17\xc4\xdf\x8f\xc4\x3a\x76\x41\xeb\xd0\x6b\xfd\xa8\x69\xbb\xd0\x0f\x1f\x5b\x52\xf6\xf8\x45\x77\xbd\x34\x74\x43\xca\xf9\x3f\xca\xd2\x7f\xc1\x4a\x1c\xe5\xd3\x46\xe9\xf8\xe5\xe4\xd3\x94\xe3\x1f\x57\xef\xe5\x0b\xbd\x97\x6c\xb6\xca\x53\x07\xeb\x6c\x2a\x61\xe0\x0a\xd0\xc5\x69\x1d\x9b\xb4\x55\x60\x44\x9f\xdb\x01\x50\x5d\x8a\x53\xd9\xc8\x24\xff\x63\xd5\x8e\x1e\xf6\xb4\x11\x11\x32\xb1\xbf\xa1\x3b\xd2\x6b\xfb\x1d\xad\xe4\x4b\xeb\x37\x69\xf1\x5e\x4e\x7e\x07\x8b\x86\xe5\x7f\xf0\xdf\xec\x22\x5f\x95\xe6\xdc\x62\x9f\x49\x15\x4f\x56\x2b\xef\xd6\x6c\x36\x62\xfc\x59\xa9\x5f\xda\x53\xf2\x56\x08\xbf\xd0\xae\x7c\xe1\x7f\xe8\xed\x40\x8b\xf2\xc5\x96\x34\x81\xda\x3c\x03\xd1\x00\x8d\x9f\x7c\x51\xeb\xd0\xaa\xdf\x14\xc0\xc4\x76\xb1\xa4\x51\x55\x11\x3b\x06\x1b\xda\x19\xe2\x54\x72\x76\x9f\xef\xe6\xc0\x78\x9f\x04\x2e\x69\xa7\x68\x98\xcf\x3c\x28\x2a\xc0\x1f\x3c\x15\x40\xaf\x30\xf7\xa1\x80\xfc\xcc\x5b\x62\xef\x97\x86\xb7\xb8\x9f\x3b\x08\x19\xb1\x3b\xe5\xdf\x61\x30\x67\xd7\x0c\x35\xa3\xf5\x38\x93\xfd\x69\x8d\x03\x64\xbd\x81\xf9\x7e\xdd\x59\xc7\x0b\x60\xc5\xce\xf9\xc1\x12\x7f\xb1\xd5\xde\x6b\xd9\xea\x96\x6c\xac\xa2\xa9\xf9\x87\xd5\xb4\x64\x20\xb7\x51\xd6\xa6\xdb\x14\x36\x83\x59\x75\xca\x3f\xd7\x75\x57\x1b\xbe\xed\xd6\x08\xda\x0d\xdf\xe7\xd2\xb7\xa5\xe0\xd3\x50\xe4\x61\x4b\xbf\x4d\xd1\xc3\x0d\x9f\x56\xd5\x53\xe5\xe6\xc6\xbe\x0f\x4b\x09\x60\xe1\xbe\xaf\x04\x28\xce\x4a\xe0\x08\x60\x82\x13\x50\x7f\x8b\x3d\x1d\x72\xa8\xda\x07\xdb\x5f\x94\x22\x74\xb1\x5d\x4a\x0e\xef\xe8\xf1\xe4\xcf\xaf\x47\xd3\xea\xeb\x93\xaf\xc5\xcf\x93\x3f\x1f\x4f\x8f\xe6\x56\x55\x21\x0c\x50\xf4\x38\x1a\x68\xf9\x12\x18\x40\x4f\x55\x71\x8c\xb4\x0c\x87\x53\x18\xd9\x42\x25\xdf\x3b\xf9\x47\x2d\x6f\xad\xf2\xc1\xc1\x77\xd2\x12\xe5\x26\xbe\x33\x32\xc9\xd2\xe7\x35\x52\x1f\xf8\x24\xf6\x81\xaf\xf5\x42\x4b\xbf\x1c\x27\xf0\xed\xa5\x07\x58\xa6\xc4\x9d\xc1\x01\x89\xd9\xef\x66\x66\xe0\x5b\x8f\x47\xe8\x02\x27\x81\x3f\x65\x64\xed\x41\x13\x35\x35\x8d\xeb\x40\xe7\xa7\x3d\x4f\xe3\x9b\x1a\x4f\xf8\xbd\xae\x35\x1c\x53\x76\xe8\xe0\x00\xfd\xe2\xab\x76\x95\x02\xd1\x33\x9b\xe1\x5f\x18\x1d\xe1\xef\x58\x6e\xdb\xdc\xe7\xf2\xdd\xde\x87\xb8\x60\x1e\x67\x1e\xa0\x0f\x59\xc2\x22\x9f\x83\x46\xcd\x66\x00\x2c\x04\xa0\xf6\x70\xe5\x5d\xdb\xe0\x94\x41\xe1\xe6\xb7\x26\xe0\x91\x94\x9a\x15\xae\xfa\x6d\x16\x35\xf7\x2d\xe7\xf0\x98\xc5\x3e\x8f\xfc\x27\x87\xc7\x50\x0f\x8e\xb6\x5c\xe5\x49\x22\x10\x07\xfa\x53\x07\x0c\x8b\x99\x74\x4a\xab\xea\xbd\xc5\x3e\x21\xdd\x89\xb6\xa8\x49\xc7\x64\xa2\xc9\xe5\x23\x80\x69\x7e\x55\xa5\x38\x6f\x67\xbc\x8d\xd7\x86\x88\xd8\xb7\x70\x6e\xb9\x14\x7c\x73\x24\x48\x5f\x26\x5e\x20\xa2\x3c\x09\xc5\xca\xa8\xd9\x8f\xa1\xd3\x27\x74\x63\x92\x0e\x90\x4f\xf5\x44\x20\xa4\x43\x1d\xff\x64\xc1\x52\xed\x3c\x5b\x67\x49\xee\x01\x60\xf2\x7c\x69\x55\xef\x5a\xb2\x9c\xd8\x67\x91\x97\x85\xf2\xb1\x69\x0b\x03\x09\xd5\x18\x78\x06\xdb\x23\x9f\x63\x25\xa5\x89\xc4\x3d\x33\x2d\xc7\xdb\x91\xc3\xb3\x3c\x5d\xe6\x19\xc8\xd5\xa0\x14\x29\xac\xac\x04\x58\x05\x7a\x33\x50\x2b\xf0\x06\x57\xf1\xaa\x5c\x7b\xc9\x40\x1b\x88\x41\x96\x97\x03\x0f\x6a\xd0\xaa\x33\x15\x44\xb0\x81\x28\x03\xdb\x40\xb9\xdb\xb5\xd6\xb4\x29\x4d\xdb\x52\xf2\x16\x0b\x9f\xbf\xf3\x17\x10\xad\x20\x1f\x0a\xdd\xc9\x62\x97\x3e\x5f\x68\xa2\x9f\x98\x06\x54\x62\xf0\xa4\xaa\xdd\x63\x67\x44\xc8\xd3\xa4\xf5\xa1\x93\x87\x9f\xaa\x82\x1e\xe4\x79\x2c\x89\x9c\x21\x54\xea\x8e\xad\xa6\xb6\xfa\x6d\x50\x54\x75\xdc\x82\x03\xe9\xe7\xb6\x9c\xfc\x7d\xda\xbe\x40\xb4\x07\x36\xe2\x3e\x89\x36\xf7\x48\x98\x66\xf1\xfc\x19\xec\x9d\xb8\x01\xb3\xb4\x51\x60\x4b\x81\x01\x23\x06\xa1\x0b\x0c\xf6\x63\xfd\xe8\x75\xdd\x2a\x50\x63\x81\xec\x81\xe1\x23\x15\x97\x16\x51\xeb\x7c\x03\x8c\x71\x0f\x36\x86\x2a\x6f\x97\x22\x9f\x0d\x36\x47\xd4\x92\x05\x63\xfe\xba\x3d\x9f\xae\x35\xd5\x80\x5a\x69\x2c\x4b\xdb\x89\x58\xda\xb1\x18\xed\x58\x57\x69\x95\x35\x53\xb3\x76\x44\x58\x4e\xd4\x29\x30\xef\x96\x2b\x71\x05\xb2\xf6\x5c\xcc\xbc\x75\x52\x3a\xef\x6b\xab\x13\x05\xd3\x9e\x53\x18\x2c\x65\x74\xac\xac\x67\xe2\xa3\x82\xf3\x3e\x0b\x24\x18\x94\x7b\x77\x93\x26\x59\xe1\xfe\xcd\x7b\xef\x8e\x51\x5c\xcd\xa5\xf2\xc2\xb0\x50\x6b\xa8\x4c\xc8\xf5\xf5\xb5\x7d\xfd\xc8\xce\x57\xf3\xa3\x87\xa3\xd1\xe8\x08\x9b\x39\x06\x38\x92\xa8\x69\x0d\x0c\xdf\xd9\xfe\xf8\xdf\xff\xfe\xdf\xa3\x33\x68\x49\x7f\xce\xde\x18\xa0\xed\x3e\xa1\x98\xc0\x6f\x66\x8f\x91\x14\x70\x64\xee\x26\x04\xa1\xa1\x59\xdb\xcc\x72\x36\x5a\xbc\xfd\x68\xfe\xcd\xb6\x5b\xfd\x60\xb4\x1f\x0c\x01\xfb\x28\x73\x0f\x72\x40\x89\x4d\x2e\x7d\x37\x32\x91\xa5\xdd\x49\x18\xc4\x24\x7f\x5b\x8e\x7e\xd3\xc1\xb5\xa3\x1c\x46\x13\x6d\xa3\xe1\xd5\xcf\x4d\x68\xeb\xce\xda\xf1\x02\xf8\xaf\x6d\x82\x72\xa4\x1f\x21\x5e\x19\x35\x6b\x42\xe1\x01\x52\x45\x18\x97\x9e\x9f\x08\x37\xf0\x1d\x89\x00\x9c\x4e\x67\x05\x95\xc0\xf5\xd5\xac\xb5\x72\x77\xca\x9f\x70\xe1\xf7\xc5\x94\xcf\xfc\xf1\xb6\xa0\xce\xfc\x0e\xf0\xef\x19\xe2\xce\x0b\x78\xb7\x24\x44\xe4\xd9\x91\xdc\xcd\x6a\x88\x52\xfd\x5e\x27\xe9\x21\x53\xbf\xdb\x72\xdc\x1d\xe1\x3d\xdb\x1c\x83\xa7\x7e\x5d\xa7\x1d\x6e\xee\xb5\x2f\x3a\xde\x35\x37\x8b\xc0\x29\x5b\x4c\x65\x81\x3a\xe2\x69\x5c\x79\xc9\x5a\x74\x2c\xe7\xc1\x41\x67\x5f\xef\xa8\x56\x6f\xa8\x4d\x6f\xb5\xdc\xe5\x4d\x94\x0b\x7d\x7a\xc0\x30\xd7\x90\x50\xc2\x86\x0e\x68\x19\x4d\xc1\x76\xf7\xa6\xd1\x02\xa3\x4c\x28\x8e\xde\x92\xcf\xff\x33\xb9\x38\xfe\x4f\xe4\x42\xa3\x19\x85\x07\x31\xfa\x6d\x44\x82\x78\x76\xaf\x4c\x58\x8c\x4c\xe8\x48\x23\xe5\xc0\xdf\x42\xc8\xf7\x72\x00\x2d\x8c\x32\x6a\x1d\x0a\xc1\x64\xa2\x5d\x93\xfb\x9f\x29\x5b\xd8\xda\xd1\xcd\xf7\xaa\x02\xb6\xe7\x7e\x93\x3d\x45\x18\x6c\xdd\x29\x1f\xdc\x14\x36\x25\x5e\x6f\x22\x05\x2b\xb1\x4b\x5d\x8f\x57\x12\x01\xe4\xbe\x99\x30\xd0\x0b\xb6\x97\xf8\x2c\x83\x25\x4f\x2d\xab\x05\x79\x9a\xe0\x3d\x4d\xe2\xf7\xf1\xb6\xed\x74\xc1\x78\x34\x28\xfa\x3b\xbf\x84\x19\x00\x97\x5b\x8e\xf9\x9d\x4f\xb4\x3d\xb9\x00\xe2\x91\x21\x66\x62\x4d\x81\x41\xd8\x1d\x33\x9a\x0a\x70\xbf\xb3\x30\x29\xdb\xe3\xe3\x77\x94\x90\xdd\x9c\x44\x53\x64\x48\x3c\x31\xc8\xd6\xa9\x2f\x20\x24\xc8\xf3\x44\x78\x99\xd1\x60\x32\x4d\x38\x21\xb3\xad\x3c\x0f\x50\xe1\x24\x2d\xa8\xb5\x20\xea\x25\xa9\x86\x8e\x98\xc5\x4d\xda\x37\x98\x92\x76\xdc\x85\xc5\xe8\xdc\xd1\xf2\xe0\x60\x09\x85\xcf\x29\xbc\xba\xd2\xa6\x92\xa0\x4c\x1b\x4c\xc4\x08\xdf\x2d\xd6\xb2\xc3\x72\x0c\xdc\x41\xc0\xe6\x1e\x6a\x9e\xef\x7a\x72\x16\x9e\x38\x4b\x77\x09\x84\x67\x62\xf5\xea\xe2\xec\x0d\xbc\x9b\x26\x26\x22\x91\x03\x34\xe3\x05\xac\xa5\xaa\xbe\x6b\x1b\x49\x0e\xbc\x9b\xc9\x62\xf7\xf0\x79\x4b\x3b\x7f\xc0\x53\xd6\xcc\xf6\x9b\x24\x8a\xb8\xbc\x8b\x71\x7d\xb6\x6d\x28\x52\xad\x01\x6d\x9b\x86\x9c\xf7\x64\xd4\x53\x31\xe9\xa1\xaf\x1e\xe4\xc6\xc3\xa6\x41\x09\xfd\xb6\x3d\x23\x0a\xf2\x02\x16\x32\xd1\x86\x17\x33\x4c\x27\x04\x2a\xa2\xe0\xc1\x64\x36\x65\x11\x0f\xe1\x07\xf5\x8b\x2a\xc1\xf8\x62\xd2\x6c\x6e\x29\xab\x06\xcf\x33\x30\x71\x71\xb6\x5c\x93\xcd\x23\x9d\xa5\xaa\x3d\x3e\xa7\xb8\x58\xee\xc3\x5c\xa6\x9a\xef\x70\x30\x3e\x1f\x63\x96\x14\x33\x9e\x52\x77\x68\x14\x00\x61\x08\x30\xe1\xc9\x42\xbb\x10\x67\x6b\xd1\xd1\xea\xb9\x04\x28\xa8\x1f\xb3\x46\x0e\x8d\x3c\x33\x2c\xcb\xc3\x21\x13\x13\xdc\x66\x27\x9d\x5d\x94\xb7\x89\xa6\x4e\x9a\x93\x79\x93\x73\x9e\x5b\xfd\xa0\x2a\xc6\x85\xcd\x2d\x95\x42\x8d\xaa\x2a\x9a\xc4\x18\xbb\xcf\xe1\xc7\xa2\x35\xd0\x68\xf0\x26\x8b\xc6\xbd\x8e\x91\x25\xfb\x83\x88\x76\x1a\x62\x82\x97\x88\x91\x93\x0b\xd7\x88\x56\x62\x46\x04\xb9\x74\x42\x72\x02\xb6\x23\xf6\xd7\xa5\x00\x14\xb0\x1b\xbd\xfc\xfb\xe8\x26\x89\xb3\x4b\x83\xc9\xae\x0c\x00\x44\xe7\xb4\x62\xc7\x48\xa6\x3a\xd4\xc0\x96\x1b\x35\x33\x2c\xa3\x0d\xf4\x60\xb7\x92\xb8\x28\x31\x5d\x8e\x3b\x27\x19\xa5\x5e\x60\x61\xa9\x7e\x46\xc6\xeb\xe7\xeb\x38\x04\xc4\xa5\x5e\x22\x11\xcf\x23\xd9\xdf\x35\xd5\xce\xc3\x0b\xc4\x74\xb8\x13\xc8\x37\x62\x1a\x6d\xf4\x4e\x42\x54\xe6\x7b\x41\x60\x6c\x61\xa7\xa2\x28\xbc\xb9\x68\x77\xf5\x75\x06\x32\x13\x87\x03\x7d\x32\x64\x40\x6c\xad\x62\xa6\x45\x5d\x6b\x2d\x08\x5b\x59\x8e\xa5\x16\x34\x41\x3c\x1e\x69\x91\x3a\x1f\x1e\x8f\x83\x27\xf8\xe7\xf0\x10\x51\x85\x37\x09\xe8\x14\x25\x98\x76\xc2\x78\x99\xb2\xdf\x28\x04\x48\x9f\xe6\x57\xe2\x19\x2a\x33\x75\xd3\x44\x03\x98\xa8\xe9\x04\x4b\xe6\x9c\x4d\xf0\x5a\x3e\x8d\xba\x30\x7d\x6a\x36\xda\x6b\x66\x27\xd1\x51\xd1\xfe\xc8\x6a\xc9\x5d\xe0\x21\x1c\x92\x73\x4f\x30\xe0\xfd\x30\x18\xd8\xec\xd6\x8d\x06\xee\xed\x29\xcd\x90\xd7\x0b\x16\x34\xbb\xc0\x0a\x00\x02\xf3\x79\xaf\x16\xd6\x32\x0e\xda\x48\x61\x33\x50\xf8\xe7\x38\xc1\x6b\x80\x83\xd5\x46\x0d\x9d\x42\xca\xf7\x6b\x12\x42\x22\x21\xe4\x6d\xbd\x9e\x7f\x01\x1c\x97\x5a\xdd\xd6\x49\x58\xb5\xe8\x8e\xd6\x32\xf7\x52\xda\x35\x69\xc3\x9a\x11\xa5\x41\xf6\xc9\x8e\x29\x3c\x28\xf8\xf1\x1e\x0f\x1b\x1f\xc0\x66\xdb\x69\xc8\x62\x09\x5e\x0f\xa6\x77\xcd\x0d\x5b\x3f\x63\xa1\x36\xed\x33\x55\x73\x12\x2e\xbc\x00\x7a\xa1\x97\x31\x0d\x9f\xda\xf9\x62\x1e\x67\x06\x10\xc3\xbc\x9e\x40\xcd\xc0\x5f\x85\xff\x49\xbf\x5a\xad\xfc\xfe\xa6\x22\x0b\xb1\x61\x63\x92\xe8\xb0\x72\x63\xd1\x78\x30\x36\x6e\x8e\xfd\xfa\x75\x20\xbe\xc3\x61\x73\x08\xd6\xb2\x31\xd9\x0d\x7e\x80\xaf\x01\x0f\xaa\x8a\x76\x9c\x6d\x47\xcb\x32\x8e\xb6\xa0\xa6\x00\x67\x5c\x62\x5e\x63\x5d\x7a\x12\x37\x91\xd1\x6f\x3c\x95\x4c\xf1\xe1\x1a\x67\x98\xac\x4a\x6e\xef\x84\x6f\x02\x38\x6a\x49\x48\x51\x4d\x48\x40\xf9\xc7\xc6\x38\x78\xcd\x89\xdd\xe8\x89\xef\x7e\x54\x6b\xb2\x0e\x8f\x1d\xbf\xed\x99\xb5\x3d\x77\xc0\x36\x7d\xde\xdc\xd1\x52\xde\x14\x62\x1e\x92\x79\xb5\x9e\xc4\xb7\xcb\xfc\x97\x8f\xef\xde\xee\x1a\xa7\x66\x9d\x29\x73\xc9\x2f\x69\x7e\xb6\x1a\x9b\xde\x46\x92\x4c\xa1\xc5\x32\x8a\x0b\xe8\x56\x55\xf8\x50\xb3\x90\x77\x19\x7d\x0f\xbd\x4f\x8e\x31\xeb\xca\x7d\x6d\x81\xee\x39\x4d\xc7\x64\x3b\xca\x1d\xe5\x04\x1b\x6c\xea\xa2\x99\x6b\x4c\x97\x43\x16\x6b\x1c\xb6\x39\x43\x2e\x3b\x8c\xa5\x82\x74\x33\x5f\x01\xc3\x0a\x27\x6c\x59\x03\xac\xd2\xbe\x15\x9f\xd5\x71\x91\xd0\xb9\x25\xcc\xac\xeb\x72\x4c\x90\xb5\xbc\x5a\x02\x5f\xf6\xa1\xe9\x3e\x58\xac\x7d\x69\x9a\x1a\xf9\xc5\xfb\x01\xa3\xb1\xc7\x7f\x43\x65\xf5\x65\x30\xf8\x07\xca\xa9\x62\xed\xef\xf0\xdc\xe1\xe5\xc1\xc1\x46\x81\xbd\xbf\x0f\x2c\x28\xdc\x09\x76\x6a\x96\xba\xbb\x11\xac\x9f\x5a\x8d\x51\x8e\x41\xbe\x56\xc0\x21\x6a\x89\x2b\x75\x9b\x27\x9a\x1f\x04\xd5\x41\x9f\xfe\x0d\xe8\xfe\x06\x74\x7f\x53\x26\xf5\x33\xfd\xb2\x2f\x84\xe6\x9e\x83\x12\xdc\xaf\x14\x2d\x03\xfe\x46\xf9\x6c\x34\x41\x9e\xbc\x44\xfe\x04\x7a\xe6\xe0\x23\xed\x14\x74\x73\xaa\xa3\xe8\xb6\xd7\x4a\x5b\xb6\x99\xcf\xef\xea\xb1\xb4\x6f\x41\xeb\x36\x5d\x30\x55\x87\xc7\xa8\xec\x78\x84\xed\xf3\x2b\x33\xc0\x54\x28\x90\x61\x86\xc3\x63\x16\xe8\x11\xf1\x9e\x45\x53\x33\x62\xa1\x25\x93\x80\xb3\x5e\x9e\x0e\xfc\xda\xbc\x83\xb4\x02\xb2\xe9\x34\xfa\x5c\xe7\x55\x91\xd0\x35\x98\x49\xa0\x6a\x32\x9b\xcc\xa7\xa0\x38\x7b\xa3\x66\x23\x23\x04\x1b\x32\xdf\x82\x80\x31\xd8\xd5\x2b\x92\x5d\xe4\xc5\x01\x64\xe0\xb9\x98\x9f\xde\x2c\x4d\xe3\x4f\x63\x18\x01\x1b\x29\xc7\x6b\x1e\x39\x74\x60\x30\x74\xbf\xda\x77\x8f\xea\xa3\x39\x33\x4c\xfb\x67\xd7\x32\xac\xad\x16\x54\x07\x8f\xf8\x0c\xf5\x43\xe3\xc8\xdd\x37\x88\xf2\xd8\x2e\x45\x51\xc2\x32\x34\x19\x41\xd3\x39\x66\x1d\x75\x6d\x21\x44\xa4\x8f\x2b\x9a\xb1\xf1\x94\x62\x0a\x3a\x7a\xaf\xc2\xb1\xc3\x87\xe0\x0f\xf8\x08\x38\xa7\x99\x3d\x9e\x3f\x99\x8d\x67\x20\xc6\x33\x40\x07\x80\x88\x3a\x24\x57\x5f\x6d\xa4\xd7\xb0\xa6\x3c\x14\x01\x6c\xf9\xa7\xf3\xd7\x4d\x1e\xd8\x44\x9c\x0c\x9e\xa7\xcf\xac\x1a\xd9\xd5\xb1\x90\x85\x06\x12\xdc\xd3\x26\x79\x0f\x2c\x4d\xb9\x4a\x7e\x45\x5d\x84\xe7\x54\x94\x1e\x3d\x3f\x84\x9d\xf3\xec\xeb\x28\x0e\x22\xeb\xce\xb3\xfb\x3e\xdb\xdd\x2c\x30\x11\xb7\x49\x4e\xc9\x88\x65\xef\xb8\xd9\x58\x02\x0a\xeb\x15\x22\xa5\x0b\x58\xbc\x28\xe9\xca\xcf\x2a\x50\x5e\x13\x84\xcb\x58\x7a\x65\x94\x29\x90\xda\x15\x6a\xc4\x0d\x85\xf0\x56\x41\xe4\x5e\x99\xfa\x51\xc9\x3f\x98\x2b\x07\xa4\x1a\xe2\x07\xe3\x04\xe0\xa4\xdf\x46\xb1\x65\xfe\x69\xb9\x14\xab\x67\x5e\x81\xe7\x93\x16\x9a\xbe\x16\xa8\x8d\xd5\xf8\xe6\xa6\xfa\xfc\x58\xab\xd0\xef\xb4\x7c\x84\xf5\xde\x19\x91\x57\x20\xc4\xed\xd3\x7b\x8a\xd7\x4f\x22\x57\xfe\x70\xf9\xe3\x00\xe5\x01\x1a\x92\x8b\x1c\xd4\xa7\x0b\xec\xd6\xad\x13\x08\x39\x5d\x39\xea\x1c\xd5\x4a\xf4\xad\x63\x2b\xdf\xf5\x87\xc6\xc4\x18\xce\x86\xc6\xd4\x70\x66\x10\x66\x21\x60\x66\xb1\xbe\xd4\x01\x24\x2e\xb8\x0c\x48\x78\xe4\x8a\x6c\x4b\x40\x00\x5a\xc7\x18\xc6\xb8\x6b\x33\x62\xea\xe5\xb5\x8b\x5a\x13\xae\x61\xe1\x3b\x73\x18\x21\x68\x29\x84\x29\xf8\x43\x27\x02\xf8\x00\xb6\xcd\xf5\x1c\x53\x3d\x62\xba\xc6\xd3\x56\x73\xe7\xac\x43\x83\x1b\xc3\x1d\x35\x3e\xb8\x9b\x9a\x4d\xa6\x2a\xa5\x6f\x1c\x18\x96\xf3\x5f\x0d\x10\x59\xe3\x48\x9e\x29\x0a\xe9\xd5\x17\x56\xdd\xd8\x8c\x66\xcc\x96\xd9\x57\x28\xfc\x60\xf4\xf0\xda\x12\x60\x1a\x6f\x75\x52\x9a\x23\x4b\x7a\x73\x65\xdd\xf0\xc2\x0d\xc8\x55\x4f\x74\xf1\x24\xb8\xa4\xa1\x40\x52\xef\xd0\xe7\x8e\x60\x9f\x74\x86\x6a\x2c\x9e\x84\xe3\x50\x9f\x85\xce\xc0\xb1\x85\x53\xdd\x85\x1b\x68\x13\x77\xe8\xea\x8c\x40\x43\xc4\x1f\x62\x6c\xaa\xb2\x36\x3b\x9b\x1d\x4f\x2d\x4a\xd4\x8e\x55\x82\x0b\x78\xee\x6a\x68\x8c\x2f\x98\x1e\xc1\x3b\x2d\xf8\xcc\x27\x81\xb4\xa9\xf8\x23\x19\x02\xa6\xdb\xa1\xaa\x48\x33\x26\x68\xd9\x71\xdd\x62\x1e\x04\x4e\xe3\xb8\x87\xf4\xd8\x05\x61\x3d\xfc\xcb\x3b\x9d\x6e\xba\xa8\x05\xd8\xbe\xca\x97\xb0\x91\xe3\xc6\x35\x95\x91\x40\x28\x02\xbe\x03\x9f\x3a\xe8\x04\xbc\x86\x16\x2a\x18\x43\xb5\x83\x42\xcc\x7e\xb1\xce\x04\xb7\x2a\x32\xd3\xef\x01\x52\x99\xa0\xb9\x5a\xb0\x0c\x2c\xec\xb2\x23\xa8\x58\xc1\x79\x8c\x09\x84\x95\x28\xf2\xe4\x4a\x98\x29\xa5\xae\x56\x02\xfd\x12\xbc\xd4\x9d\xed\x0f\x75\xfe\x82\x2c\xa0\xbe\xeb\xd4\xc4\xf8\x29\xc5\xf8\x00\xac\xd4\xf9\x0a\xe5\x01\xdb\x08\x8b\x5e\x11\x8f\xca\x6d\x1e\x8d\x15\x20\x4d\x59\x97\x1e\x30\xdc\x78\x5a\xc6\x61\x26\x13\xa5\x7b\x77\x5d\x80\x75\x3a\x3e\x9c\x5b\x77\xc2\x0e\xc5\x4c\x80\x81\x0c\x21\x48\x12\x74\xc0\x47\x09\xfe\x39\xb6\x94\x88\x1e\x62\xb5\xee\x55\x32\xb9\x03\x0b\x02\xc8\x0b\x4e\x27\xa3\xc8\x51\x35\x64\xd6\xb0\x7a\xc7\xc8\x19\x65\x92\x58\xc2\x23\x06\xe3\xd4\xa1\xb9\xe8\xba\xb3\x04\x26\xc5\xe2\x7e\x59\xb4\x55\x86\x13\x23\xf3\xe7\x7d\x0e\xb9\xb0\x3c\xe0\xa4\x43\x46\x08\xd3\x03\xaa\x07\xe8\x9c\x8e\x0b\xe9\x3a\x97\x8f\xf7\xd1\x60\x2e\xcd\x84\xd9\x8f\x28\x9e\x21\xc5\x33\xe2\x05\xee\xca\xa5\x0b\x03\x60\x00\x26\x8f\x42\x2d\x62\xa7\xb3\xb1\x8e\xc0\x8c\x51\xae\xfa\x45\x8a\xe0\x18\x99\x2f\x6f\x1f\xce\xf9\x31\xaa\x21\x58\xd1\x47\x60\x3d\xff\x87\x5d\x72\x02\xd8\x09\xa8\x78\x0a\xff\x67\x68\x8e\x2f\x51\xca\xd3\xb8\x10\xa8\xfc\x97\x5a\xd2\x78\x77\x6b\x15\xed\x89\xda\x5f\xc5\x44\x8b\x49\x90\x7e\xa9\xe4\xf1\xc7\x5d\xa2\x7e\x17\x35\xe7\x86\x1a\x75\x94\x0f\xd1\x8f\x54\x16\xad\x7d\xa4\x0c\x6e\xd0\xd1\x05\xda\x87\x05\x15\x29\x85\x70\x32\x69\x19\x48\x45\xd5\x1c\x1d\xbf\xf6\xbd\x8b\x33\xdb\xe2\x13\x05\x1b\x00\x1f\x84\x5e\xe9\xc9\x0c\xa8\xb1\x28\xf2\x6c\x69\x10\x4c\xd0\xa5\xe0\x7a\xdf\xe4\xd7\xda\xf5\x6a\xc7\x86\xa4\xfa\xf6\x1f\x67\x6f\x5e\x95\xe5\xf2\x5c\x5e\x02\xa6\xb8\xda\xce\x97\x02\x43\x1d\x00\x1d\x51\x1e\x82\x1f\x59\xaf\x12\x46\x0e\x65\x0d\xe1\x2b\xfc\x2c\xbd\xa2\xb8\xce\x57\x78\x42\x03\xe2\x00\xb1\x76\x78\x0b\x61\x62\x29\xc0\x7a\x67\x73\xd1\x0d\x9b\xfe\x07\x56\x1a\xda\xd4\xe2\x23\xb6\x00\x31\x0b\x31\xa4\x2c\xd7\xc5\x13\xfe\x70\x34\xc2\xeb\x8c\xf2\xf5\xf1\xa3\xd1\x08\xf0\x4b\xae\x92\x11\x28\x97\x8e\x81\xcf\x06\x2b\x09\x9e\x40\xc8\x82\x68\x46\x8b\x9f\x6a\x41\x2f\xdd\x26\x20\x5f\x98\xaa\x5a\xc5\x5e\x12\x7f\x17\x30\x3d\x86\x7d\xb6\x74\x22\xf1\xec\x16\xad\x12\xb2\x05\xb4\xe0\xe5\xe9\x85\x64\x93\x5c\x27\x91\x22\x4a\xc5\x88\x57\x40\xb2\xa0\x13\x7d\x3a\x1f\x39\x44\x36\x1a\xcc\xc0\x00\x2c\x96\x97\xac\x8f\x90\xd1\xe3\x01\x7a\x2c\xe8\xc6\xd7\xe5\xec\xf0\x7f\x0d\x8c\xd4\xc0\x4c\x6f\x4e\xbf\xc4\x36\xbb\x27\x38\x09\x02\xb1\x2c\x77\x0c\xcd\x06\x98\xfa\x39\xfa\x19\xc6\xdc\xc8\x27\xb5\x67\x21\x82\xeb\x32\x33\xc4\xb4\xa9\x4a\x52\x22\x97\xb9\x90\xba\x34\xe3\xdb\x0b\x95\x2c\x70\xe5\x0f\x84\x43\x94\x15\x6e\x4c\xee\x0c\x8f\x83\x0f\x0e\x66\xdd\x94\x36\x02\xb9\x17\xf9\x2a\x85\xc8\xc8\x93\x29\x3c\x43\xad\x63\x80\x63\x74\x6e\x42\x8b\x18\x74\x63\xd5\xbd\x13\x3d\xc8\x57\x03\xdd\xd7\x1e\x3c\x8b\x44\x70\x39\x80\x36\x83\xbf\x1a\x36\xfd\x35\xc8\x97\x32\x01\x98\x0d\xfe\x4a\xf5\x85\xf4\xbf\x0c\xad\x42\xc8\xb7\x0c\xd3\x2d\x2c\x54\xf6\xc1\xd0\x77\x17\x91\x62\xdf\x0b\x2e\xbf\x19\x43\x53\x87\x6e\x96\x3d\x97\x37\xd7\x4d\x00\x29\x50\x81\xe7\xc6\x88\x06\x61\x88\x63\x71\xfc\xaf\x9f\xe5\xbb\x97\x85\x79\x0a\xda\xd0\xde\xe9\x7d\xf4\x2f\xf4\xfe\xdb\xd9\xa3\x60\x15\xc3\x0e\x59\x63\x1f\x7d\x76\x23\xdc\xe0\xb0\xa2\xfb\x32\x8d\x11\xca\xc1\x0f\x44\x19\x94\xb9\x00\x34\x51\xd0\x49\x04\x48\x6d\x8d\xd9\xc7\x39\xba\x74\x16\x69\x09\xdf\x91\xaa\xf8\xa7\xf9\x7e\xa0\x19\x77\x52\xcb\x9c\xff\x3f\x1a\xb1\xde\xe4\x7d\xf5\x30\xef\xa8\x9b\x63\x90\x15\x1f\xa4\xde\x25\x6e\x20\x99\x94\x81\xda\x16\x03\x8c\x74\x43\x2f\xdb\x3b\x96\x24\x53\x4a\x71\x8b\x62\x59\x0b\x41\x05\x27\x23\x32\x34\xe9\xa7\x17\xea\x3e\x19\xb9\x00\xe2\x1c\x7c\xc4\x6a\xbd\x9f\x10\xec\xb8\xbd\x37\xc7\xd0\x2f\x86\x84\x9e\xf3\x21\xf4\x1b\x02\x54\x27\x29\xc6\x33\x3f\x8b\x3d\xb7\xfd\x3c\xbc\xc5\x34\x09\xc8\x8b\x66\x4d\x6b\x30\x9f\xea\xc8\x1b\x4f\x16\x50\x2b\x78\x57\x2b\x1a\xcb\xd9\x1a\xce\x36\xfb\xb8\x49\xf6\x63\x20\xdb\x05\xb2\x0f\x0c\x40\x9d\x6b\x04\x5b\xd4\x46\xaf\x53\xb8\xe1\x50\x38\xcd\xe1\x81\x1c\x91\x07\x5d\x50\xd6\x92\xf5\xac\xeb\x40\xbc\x36\x5e\xf5\x0e\xbf\x4f\xbf\x5e\x43\xc4\x1a\x53\xec\x0b\x88\xda\x6f\x33\xad\x98\x67\x7d\xdc\x84\xa7\x0d\xd4\x15\x80\x46\xc3\x69\x13\x8b\x8d\x3d\xfa\xc0\x43\xc6\xaa\x58\x03\xfb\x26\xf0\x83\x0a\x91\x88\x52\x0c\xf0\xa5\x6e\x08\xc2\xfe\xcf\xd9\x29\x7b\xc1\x5e\xb2\x57\xdc\x98\xe4\x94\x47\x18\xc8\x74\xc2\xd4\x60\xaf\xdb\x32\xba\x85\x0a\x45\xbf\xb4\x45\x52\x89\xa0\xec\x57\xde\x02\x0c\xf6\x06\xdc\x73\xa3\x61\xec\x8c\x1f\x99\xae\x63\xfe\x59\xfd\x04\x51\xb3\x05\x21\xfe\x4f\x5f\xed\xaf\x93\xaf\x53\x08\xf3\xad\xca\xfc\x3a\xb1\x87\xee\xd7\xa9\x05\xe1\xf4\x5b\x7e\xf4\x75\x62\xc2\xab\x05\xed\xb9\x69\x54\xff\xaf\xb2\x28\x5b\xf0\xf5\xa1\x05\x4d\x8e\xd8\x3b\x7e\xf4\xa7\x79\x72\x7e\x7a\x52\x3d\x3d\xf9\x78\x5a\x3d\x3d\xaf\x9e\xbd\x7b\x03\xff\x9f\x9d\x9d\xbc\x7d\x5e\x9d\x9e\x3d\x3d\x7d\x5e\xbd\x3a\xaf\x5e\x9f\xbd\xac\x5e\xbf\x7d\xff\xe9\xa2\xfa\xf5\xf4\xf3\xcb\xd3\xb7\xd5\x9b\xd7\x6f\x7f\xad\xce\x4e\x2f\x4e\xaa\xf7\x27\xe7\x27\x67\xd5\xc7\x77\x9f\xce\x9f\x9d\x56\x17\xe7\x27\xcf\x7e\xad\x7e\x7f\x7a\x6e\xed\x1f\xb1\xf7\x5d\x41\xae\xc7\x21\xee\x1a\xdd\xc0\x66\xe7\xfc\xae\x23\x5b\x4e\x17\x39\x7c\xe0\xf2\x1e\xe5\x87\x6d\x03\x12\x95\x69\x82\x9f\x1d\x3c\x6f\xbe\xd6\x39\xd5\x37\x47\xb7\x8a\xd0\x4e\xbb\xcf\xf5\x96\xa9\x73\x8b\xed\x9e\x78\x07\xa5\x2b\xe5\x9e\x84\x28\x9d\x48\x01\xc9\x68\x5e\x6a\xd6\x4d\x7b\xf7\xe8\xa6\x6e\xfd\xa1\x6a\xd6\xf6\x74\x26\xd3\x9a\x7d\xc4\xcb\x8a\x17\x98\xac\xd2\x19\xb6\x1e\xf6\x61\x4d\x26\x5e\x7e\x60\xb3\xe7\x6d\xdf\x8c\x3b\xcd\x8a\xf5\x4a\x90\xdd\x7f\xfe\xee\x4c\xdf\x7f\x03\x37\x81\xf6\x05\xf1\x84\x08\x07\x65\x3e\x48\x65\xd4\x7e\x94\xca\x84\xc9\x51\xaa\xe6\x1b\xc4\x05\x5d\x95\x03\x1b\x2e\x66\x71\x06\x30\xd4\x90\x7b\x32\xa7\x28\x09\xc3\x6e\x3c\x6c\x06\xb4\x18\x41\xa4\x41\xe7\xce\x1b\x1c\x73\xcf\x1d\x6f\x8c\xe0\x97\x76\x03\xfd\x99\xbc\x73\xe4\xab\x8f\x85\xa8\xb8\xf9\x5a\xa8\xbd\x90\xe3\xd7\x18\x6e\x81\xad\xa3\xed\x8d\xcd\x45\x87\xad\xf8\x61\x92\xbc\xe9\x80\x51\x9b\x6c\x36\x03\xc4\x4b\xa9\x44\xbc\x80\xe1\x53\x99\xbc\x71\xa1\x0a\x45\x1b\xc6\x5e\x02\x96\x4d\x20\x5c\x53\x3a\x9c\x3c\xb9\x1c\x5f\x82\x1e\x8b\xc9\xe5\x14\x71\x3d\xc0\x36\x3c\x27\xdf\x85\x4f\x3d\x02\x6f\xca\x6d\x79\x68\xfc\xf5\x99\x3a\x05\xfe\xd8\x17\x63\xc0\x1d\x5d\x55\x80\xe5\x35\xde\xde\xeb\x07\x58\xde\x46\x80\x25\x91\x2e\xc6\x10\x10\x1f\x02\x4e\x45\xf1\x20\xc6\x7f\x62\x78\x81\x9d\xfd\x8e\x7f\xfe\xc0\x3f\x4d\x06\x75\xa4\x92\xc1\x2a\xb7\xca\x3c\xba\xeb\xea\xfb\xfc\xf8\x5f\x20\x3f\x81\x8e\xa3\x77\xad\x0b\xb3\xef\x3f\xc8\x83\xe3\xba\x48\x2e\x38\xe5\x75\xd6\x89\xd8\xc0\xe0\xf7\x08\xdf\xfb\x44\x00\xf2\x1d\x88\xdd\x32\x28\x6e\xe2\xa2\x2c\x06\xf2\x1c\x66\x20\xe5\x0d\xa5\xd2\x6b\x2f\x71\xc6\x19\xc8\x66\x5c\x6a\xa1\x0b\xf8\x6f\xdd\x83\x8c\xd1\x13\x54\x7c\x2c\xdc\xfc\x4a\x25\x64\x33\xfc\xee\x64\xce\x37\x0f\xd7\xba\xa9\x4a\xdc\xb2\x7d\x2e\x99\x55\x83\xbf\x94\x27\x68\x98\x28\x1c\x47\x20\x0e\xf8\xe5\x14\xdd\x54\x95\x0c\x09\x3b\xf9\x6f\x36\x47\x04\xde\xc9\x87\xf7\xce\x09\x09\xd5\x75\x8e\xe6\xb6\x07\xde\xd5\xb3\x99\x4e\x9d\xd6\xf9\x4a\xa9\xff\xa0\xd3\x51\x25\x16\xf8\xb2\x71\x92\xd8\x2b\xc2\x40\x79\x6f\x86\x21\xf4\x56\x0e\x1d\x6f\x7b\xee\x3e\x57\x62\xbf\xc1\x10\x10\x74\x6d\x1d\x94\x3c\x24\x35\x2d\xd6\x7e\xd0\x66\xa9\xee\x15\x93\x87\x96\xca\x83\xc7\xfc\x13\xf7\xf1\x34\xbb\x7b\xfa\xd1\x35\xec\x35\x58\x0b\xbf\x7f\x9e\x03\x91\x26\x8a\xcd\x42\x3b\x69\x4c\xc6\xe1\xa5\x63\x5c\x1c\xbf\x64\xbf\xe3\x8f\x8f\x97\x84\x81\x5a\x2c\xab\x6b\x75\x5f\x12\x13\xab\x7a\xb1\x3d\xc1\x0e\x80\x00\xbc\xa8\x08\x7b\xfc\x19\x80\xf7\x9e\xbc\x26\xf3\x02\x6f\x58\xdc\xf7\xe1\xa5\x86\xb1\x87\x5f\x9e\xf8\x3e\x26\xc2\x3e\xe3\xc7\x6c\x2f\xcd\xcf\x78\x4a\xf1\xc2\x5c\x82\x2a\x41\x64\x6d\x2e\x4d\xf9\xde\x59\x92\x54\xc1\x9a\x1a\x30\x22\x8a\x54\x66\x63\x0f\x74\x82\x48\xb2\x29\xc4\x73\x9a\xed\xed\xe8\xba\xc0\xd0\x1f\x0e\x71\x1c\x74\x11\xf7\xb5\xe0\x04\xaa\x53\xef\xc6\x0c\xfd\x43\x30\x77\x16\xc3\x2b\x1e\x78\x81\x4f\xcf\x6f\x2a\xc3\x21\x7a\x87\x79\x46\x06\x1b\xba\xfb\xc2\xae\x8b\x43\x1d\xde\x7f\x0e\x63\x39\x9b\x24\xe1\x14\xc2\xbe\x86\xd0\x00\x2f\x2a\xfc\xc3\xfd\xaf\xde\x11\x68\x73\x0a\xb3\x91\x11\x47\xef\x38\xf6\x4d\x8f\xae\xcc\xb8\xe1\xc4\x9b\x3a\x21\x46\x17\xed\x45\x08\x0f\x6f\x82\xc9\x83\x17\x9f\xcd\x7d\xbc\xa4\x7f\xa7\xf3\xe6\x00\x00\x19\x65\x9a\x8d\x9f\x0c\x26\xb3\xe4\x08\x74\x6b\xbc\x8a\xff\x9e\x2d\x48\x6a\x9a\x04\x0b\x39\xbe\x2e\x6b\x40\xe9\x90\x87\x9b\xea\xa0\x4f\x3e\xe6\x3e\xaa\xe5\xa3\x1d\x2d\x5a\xdb\xde\x9c\x86\x1e\xd3\x77\x76\xbf\xa8\x6f\x77\x7b\xc7\xa4\x2c\xe0\xdd\x76\xe0\xd2\xda\xd7\x87\x53\xba\xd1\xa9\x69\xf2\x75\x3a\x75\xee\xf3\xbf\x11\x15\xa1\xbd\xc5\xe3\x2c\xb0\x73\x96\xbc\x05\xe2\xff\xd0\xf5\x87\xd2\xfc\x0d\x68\xad\x03\x02\xba\xa2\x18\x80\x04\x0c\xc0\xa8\x60\x03\xaa\x28\x06\xca\xc9\xd3\x07\xb8\x92\x31\x60\x79\x17\xa4\x45\xfa\x9c\x00\x42\x0f\x10\x32\xe2\xa1\xe6\x3f\x97\xb9\xff\x8d\xc3\x0a\xd7\xc8\x33\x2c\x97\xc9\x09\x80\xec\x00\xf2\xf3\x25\xe5\x2b\x0c\x08\xe9\x66\xd3\x2e\xcf\x25\x7b\x4e\xfb\x87\x0d\xe3\x1f\x1c\x84\x98\xde\x90\x9f\xaa\x13\x10\x0b\xf6\x7f\x8f\xe3\xa1\x20\x5e\x5b\x25\x20\xb5\xcf\x4b\x3c\x55\x9b\xea\x84\x21\x1e\xf2\x74\x78\x6f\x7b\x61\x78\x8a\xf2\xf7\x06\x5c\x90\xc8\xd0\x06\xf5\xab\xcb\xd2\x0b\x22\x6a\xa1\x0f\x1c\x7a\x5b\x17\xf1\xde\x1e\xb3\xee\xce\x75\x5e\xf0\xb3\xdf\xb9\x8d\xb7\x8f\x00\x4a\x37\x6b\xd9\xdb\xe0\xd3\xa9\xdd\x91\x5b\x6b\xb8\x79\xe4\x32\x8c\xd4\x3d\x49\x1c\x87\xcd\xb7\x48\xc7\xef\x75\x65\x4c\xda\x2b\xc6\xcb\x4c\x31\x04\x6d\x0c\xd0\xd2\x76\xa7\x4e\x2d\x98\xb4\xb9\x1d\x8a\x66\xc1\x78\x2b\xac\xd7\xb5\xdc\x5d\xd5\x72\x76\x4b\xea\x47\x5d\xa9\x8f\x41\x6a\xc7\x20\xb8\xdd\x6a\xf9\xd5\x44\x4f\xfe\xe9\xf2\xe8\x25\xb4\xed\x85\x7b\x80\xd3\x2e\xf1\x92\xe4\x95\x39\xd7\x1f\x46\x5f\x0e\xd5\x51\x97\xf6\xb0\x29\x8a\xeb\xc2\x4a\x26\xe9\x94\x2f\xe0\x0f\x0d\x9e\x41\x70\x98\x58\x2c\x97\xdd\x9b\xce\x23\x76\x69\x39\x40\x4f\x06\x12\x04\x34\xe5\x43\xf3\x10\x6f\x33\xe6\xbd\x49\x75\x84\x69\x0d\x33\x69\xab\x97\x7c\xa7\xbe\xbb\xdd\x6d\x77\x36\x95\x7e\x6f\x54\x55\x71\xb7\x17\xae\xdb\xb7\xc1\xb0\x95\xf9\xea\x96\xf2\x8e\x94\x9a\x73\x4d\x14\xd6\x6f\x5d\x6d\x68\x5a\x4d\x96\xae\xa1\x42\x12\x6a\x0b\x64\x35\xfd\x8c\x29\x61\x4a\x88\x51\xca\xb8\x4c\x04\xdb\x92\x9b\x39\x9e\x25\x80\x3e\xec\xaa\x80\x4d\xdf\x50\x36\xe0\xfc\xbd\x8d\xeb\x5a\xab\x3f\x26\x42\xbc\xb4\xe7\x69\xd1\x16\xcd\x76\x98\x9f\xcf\xf9\x5a\x7e\x84\x83\xc2\xa1\xcd\x89\xd9\x7c\x80\xa3\x4c\xd2\x39\x96\x32\x65\x7f\x2c\x0d\x06\xb1\x0b\x42\xc1\xb4\x3b\xab\x69\x19\x4d\x14\x3f\xf3\xc1\x25\xb4\x54\x21\xa9\xdc\x90\xd6\xc0\x68\x4a\xfd\x35\x04\x0c\x1f\xd6\x62\x75\x2b\x11\x3b\x5f\x77\x97\x51\x88\x6e\xd5\x15\x6b\x53\xed\xdb\x86\x89\xb2\xcb\xed\xb1\x8e\xce\x80\xe3\xd1\x8d\x7a\xb6\x24\xfa\xdf\xcc\xd6\x6f\x72\xaa\x89\xda\x89\x49\x53\xb4\x6b\x4d\x3c\x40\x07\xce\x9d\xdc\x5f\xe7\xa3\x77\x9d\x9b\x90\xdd\x8e\x2c\xc5\x6d\x9a\xb2\xb8\xcd\x82\xde\x34\x4d\x7e\xc3\xdf\xed\x80\x45\x53\x34\x07\x26\x72\xc1\x08\x2a\x71\x43\x66\xc5\x0d\x89\x20\x0e\x0f\x67\x94\x33\x56\xcb\x43\x60\x19\x02\xf0\x82\x5f\xbc\x8a\x52\x4b\x34\x6e\xa8\xdc\xba\x01\xce\xab\x5d\xbb\x89\x87\xf8\xfa\xe2\x1e\x60\xf0\xf6\xeb\xd9\x99\xba\xd9\xa6\xbf\xa7\x68\x40\x32\x42\xe4\xe8\xb1\xae\x20\x94\xec\x01\x5c\x96\xe7\x62\x20\x94\xe4\x73\xe8\x17\x8f\x23\xe5\x11\x50\x93\xd8\x9f\xb4\xff\x0a\x41\x43\xaf\x84\x5f\x04\xf3\x7a\xbc\xf1\x6c\xcc\x64\xcd\x29\x29\xb9\x27\x43\xc8\x9d\x57\xad\xe4\x41\x20\x6d\x3b\xfa\xe9\x26\x31\xd5\x64\xab\xf8\xfd\x79\x7e\xf4\xe4\x9d\x4c\x78\xe0\x7e\x77\x3a\xef\x55\xd5\xcf\xfc\x11\xaf\xba\xa9\x6b\xd9\xbe\x53\xa2\x7a\x90\xc8\xe2\xd5\x08\x77\x57\x60\x6a\x77\x93\x8b\x35\x0c\x00\x3f\x2b\xfa\x9e\x74\x47\x6b\x82\x37\xbd\x1e\x0d\x82\x99\xf5\x52\xe7\x2e\x5a\x18\x67\x63\xf0\x56\x0f\x64\x06\x8f\x37\x47\x16\x55\x45\xd9\x3d\xab\x7f\xe5\x40\x1e\x64\xf0\x67\x32\x09\xc9\x24\xdb\xa0\x94\x63\x5a\x50\xbe\xe1\xc9\xa7\x4e\xdc\x72\x6f\x5b\x79\x02\x79\xc4\xb6\x85\x1b\x4d\x99\xde\xc5\x1c\x81\x8d\x21\x92\x0b\x53\x64\xd7\x2b\x6f\xf9\x71\x1d\x04\xa2\x28\x1c\xfd\x4e\x7a\x63\x55\xd5\x77\xbc\x8f\x6d\xce\xcc\xb9\x09\x1d\x08\x6b\x32\xcf\xa2\xf3\x59\x7a\x21\xf9\xdc\x18\xb3\x73\xfd\x32\x52\xff\x68\x82\x27\x2b\x9a\x6b\xcc\xf8\x01\xce\xe3\xa8\xf9\x58\x0b\xa4\x17\x6f\x40\x93\xf8\xc8\xa6\x66\x44\xf7\x9e\x55\x4e\xb2\x24\x41\x32\xa3\x5e\x03\x0b\xf3\xdc\x9b\xcb\x69\x14\xcc\xd1\xda\x39\xc5\xc4\xaa\x3c\x25\x0c\x76\x1e\x95\x06\xa0\x28\xfa\x80\x2b\xb0\xea\x9d\x02\xbf\x85\xde\x19\x1e\x69\x41\xbf\xd6\xb0\x35\xcf\x74\x4d\x3f\x2e\x41\x14\xe9\x26\x4b\xa7\x95\xb4\x77\xcb\x62\x57\x42\x21\x84\xc0\xd1\xab\x2a\xbc\xdd\xab\x9b\xd9\x33\x0f\xad\xda\x2d\x44\x9a\xa2\x36\x8d\x26\xa3\x04\x78\x48\x45\xb7\xd7\xe0\x84\xf3\x6b\x57\xfe\x38\xf8\x71\xe5\xae\x56\x32\x01\xd1\x7c\x0e\xae\x5f\xe5\x2f\x88\xfd\x32\x5f\x95\x85\xdb\x7f\xe5\xa9\xb3\xe3\xf0\x55\x0e\x7d\x70\x20\x7f\x6d\x2f\x0d\xf5\xb3\xb9\x7d\x06\x90\x02\x39\x0f\x8e\x8e\x7e\x1a\x14\xf9\x7a\x15\x88\x33\x6f\xb9\x04\x05\xfe\x74\xfe\x86\xeb\x7f\x5b\x28\x8d\x33\x7b\x51\xe0\xa1\xfc\x83\xff\x0b\x00\x00\xff\xff\x5e\x87\x38\xfe\x9a\x48\x00\x00") + +func uiJsLibsMithriljs020MithrilMinJsBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsMithriljs020MithrilMinJs, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js", + ) +} + +func uiJsLibsMithriljs020MithrilMinJs() (*asset, error) { + bytes, err := uiJsLibsMithriljs020MithrilMinJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/mithriljs/0.2.0/mithril.min.js", size: 18586, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsMithriljs020MithrilMinJsMap = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\xbc\x5b\x53\xea\x4e\xdb\x27\xfc\x5d\x56\xdd\x67\x5a\x8f\xa2\xe2\xe6\x7e\x8f\x92\x4e\x08\x31\x46\x84\x88\xc8\x7a\x6b\x6a\x0a\x21\x42\xd8\x04\x0c\x01\xd1\xa9\xf9\xee\xd3\xd7\xef\xd7\x21\x41\x5d\xff\x7b\x3d\x53\xb3\x0e\x96\x49\x77\xa7\x37\xd7\x7e\xd7\xfc\xaf\x5f\xdb\x38\x5b\x27\xcb\xf4\xd7\xbf\xcf\x8f\x7f\xbd\x26\xf3\xf8\xd7\xbf\x7f\x2d\x92\x7c\x92\x25\xf3\xff\x5a\x24\xe9\x7f\x4d\xd7\xbf\x8e\x7f\xad\x97\x9b\x6c\x18\xaf\x7f\xfd\xfb\xff\xdf\xf7\xe9\xf6\xff\x71\xfc\x2b\x1d\x2c\x4c\xb3\x1e\x35\x58\xad\xf4\xff\xef\x49\x3a\x5a\xbe\xeb\x87\x4d\x3a\x8a\x5f\x93\x34\x1e\xe9\xe7\x24\x4d\xf2\x64\x30\x4f\x3e\x63\xfd\xf2\xaf\xd1\x72\xb8\x59\xc4\x69\xae\x9f\x2b\x8f\xff\x9a\x2f\x87\x83\x5c\xb6\x72\xfc\xab\xf2\xf8\xaf\xe1\x20\x1d\xc6\x73\x2b\x4d\x16\x68\x6a\x64\x7a\x4d\xdd\xfe\xa7\xe6\x79\x3c\xc8\x1e\x93\x45\xbc\xdc\x60\xd2\x2c\x7e\xdb\xc4\xeb\xfc\xdb\xb8\x3f\xb5\xaf\xe3\xbc\xfc\x5a\x77\x0d\x27\x72\xb2\x6c\x0c\x30\xcc\x93\x21\x97\x9e\xcf\xd9\x8a\xbd\x4b\xd7\x64\xb0\xb6\xf2\x3c\x93\xc7\xfc\x63\x25\x83\x5a\xf6\xad\xab\x1e\x65\x98\x69\x1f\xce\x07\x6b\x0c\xba\x37\x3b\x8d\x31\x4b\x3e\x18\x17\x9d\xb1\x0c\x8b\x1e\x3b\xfe\xbd\xa7\x1f\xdc\x2c\x5b\x66\xfa\xef\x6a\x90\xad\x63\x79\x88\x77\xf1\x50\x60\x29\x00\x5d\x6d\xd6\x13\xf4\x25\x99\x59\xe2\xa1\x18\x36\x9c\x24\xf3\x51\x16\x03\x8c\x71\x3a\xce\x65\x9c\xd5\xe9\x58\x7d\x33\xd0\x2c\xaf\x77\xdc\x7a\x4f\x1f\xb2\xe5\x2a\xce\xf2\x0f\xdd\x30\x5d\x26\xf2\xcd\xcb\x46\x7f\xce\x65\xf5\xd9\xdc\x79\x6c\xd0\xc3\xf7\x47\xec\x96\xcf\x6a\x30\x9c\xc4\xfb\x37\x5f\xa3\x7b\x27\x18\x1d\xe4\x03\xc0\x48\x77\xca\x3c\xeb\xc9\x72\x33\x1f\x75\x62\xbd\xf4\x00\xc0\x4c\xcc\xc0\x78\x94\xe4\x83\x97\xb9\xcc\x00\x32\x5a\x0d\x08\xdc\x65\xfa\x9a\x00\xdc\xf9\x32\xca\xb3\x24\x95\x05\x81\x99\xcd\x4b\x9e\xc5\xf1\x7e\xee\x47\xc2\x59\xd6\x33\x8f\xe9\x72\x04\x10\x2e\x5f\x5f\x35\x1a\xe5\xb3\x74\x54\x90\x04\x67\x5e\xe7\xd9\x66\x98\x03\xac\x09\xe1\xc3\x76\x4d\x6d\x24\xe0\xf9\x07\x76\xa8\xb7\x9a\x73\x49\x2b\xcb\x06\x1f\x6a\xb9\x01\x0c\x1c\xf7\xce\x7d\xf4\x5b\xf7\xfa\xd1\xbf\x8f\xdc\x8e\x79\x0e\x5b\x4f\x2e\xf0\x93\xac\x73\xee\x97\x87\x0e\x07\x32\x53\x92\xfa\x23\x0d\x1f\xcd\x00\xd8\xdc\x2c\x96\x25\xf4\xfc\x24\xef\xf1\x06\xf8\x9c\xb2\x67\xed\x24\xaf\xaf\xc4\x22\xce\xa8\x48\x23\x72\x46\xf3\xf8\x9a\x2d\x85\xd7\xe2\x3d\x5e\x86\x99\x06\x6d\x5c\xe2\x89\x33\xcb\x4a\x2b\x8d\x5b\xd0\xc3\x20\x1d\xc7\x64\xe3\x2c\x37\x7f\xd4\xbe\x31\x8d\xdf\x55\x81\x2b\x1c\x76\xff\x89\x0c\x5d\x19\x92\x1f\x6d\x16\x0b\x82\x46\x13\x59\x6e\xc7\xaf\xcb\x2c\x2e\x68\xed\xde\x80\x1d\x5b\x2e\x40\x95\xe4\xb1\xec\xf3\x5f\x1a\xe0\xeb\x1c\x93\x0b\x76\xf6\xd4\x72\xcf\x17\xd0\x42\xeb\x55\x3f\x6d\x93\xf8\x7d\x4d\x64\xe4\xd9\x72\x3e\x8f\xc1\x33\xd2\x2a\xb3\x2c\xb3\x64\x9c\xa4\x83\xf9\xc1\x80\x82\xe2\xb2\x78\x94\x0d\x64\x98\xc6\xae\x06\xc5\xf8\xe3\x60\x14\x56\x06\x20\x56\x9a\x1c\x34\x7a\x3a\xe4\x7c\x10\x4a\xba\x49\xe7\xcb\xc1\x08\xd2\x4a\x1e\xb8\xaa\x3e\xfd\x88\x5f\x0a\xe0\x85\x65\x03\x8d\x1a\xe1\xe9\x97\x69\x0c\xc2\x98\xf1\x5d\xf3\x90\xe9\x21\xd5\x2a\xbd\x6a\xbc\xcb\xb1\x27\x41\xbc\x7e\x68\x74\xef\x95\x21\x93\x55\x16\x6f\xf5\xd1\x9d\xf8\x75\xb0\x99\x03\x46\xeb\x7b\x1c\x6f\xb7\x98\x03\x61\xc9\xfa\x2b\x3e\xef\x23\x8a\x24\xd9\x43\xf2\xb2\xc9\xe3\x02\x44\xba\xaf\xc2\x3f\xff\x5a\x82\x65\xb7\x83\xf9\x26\x2e\x06\x60\x1b\x22\xa9\x5e\x06\xc3\x19\x40\x2d\x7b\x6f\x3e\x86\x77\xfb\x45\x1e\xf5\x20\x83\x08\x41\x8e\x11\x0c\xdb\x65\x32\x32\xcb\xaf\x8b\x49\x81\x22\xa1\xac\x6d\x85\xd2\x92\x34\x8d\x33\x33\xa1\x7c\x5f\xe1\xc2\x27\xb3\x13\x91\x04\x2f\x15\x38\xee\xc9\x64\x54\xbc\x15\x3d\x07\x1d\xf2\xe5\x46\xb3\x69\x81\xd8\x6c\x83\x63\xae\xf3\x8f\x79\xfc\x05\x20\xdf\x20\xa4\x5f\xb5\x30\x59\x0f\xc6\x94\xf2\x8b\xe5\x36\x56\x13\x8a\xb4\x3d\xb2\x87\xa6\x21\xd5\x00\x88\x92\x97\x39\x99\x36\x59\x57\xa4\xdd\x5c\x4b\xa3\x89\x06\x2b\xc8\x80\x54\x6f\x8d\xa6\xba\x31\x2d\x60\xb8\x2c\x88\x01\x58\xc5\xf6\x06\x9a\xb1\x96\x8b\xd5\x26\x2f\x94\x97\xa6\xb8\x46\x92\xad\xbf\xb4\x8e\xe3\x5c\xb8\x19\x6c\x17\x40\x1c\x08\xcc\x0a\x71\xaa\x7b\x73\x4d\x87\xf8\x1f\xb3\x92\xd5\xf2\xe5\x6d\x44\x32\x1a\x88\xaa\xd2\x9d\xd4\xa6\x43\x3d\xf5\x32\xe5\x0e\xf2\x09\x49\x28\xcf\x84\x53\xb4\x0e\x5b\x41\x8d\x0d\xb1\x7a\xfc\x90\xc5\x1d\x40\xb4\xb9\x5c\x0a\x45\x64\xcb\x65\x6e\xfe\xac\xab\x13\xc9\xcb\xbf\xfe\x65\x74\x9e\x66\x56\xc2\xa0\x98\x64\xb9\xce\x0f\x66\xd1\x8a\xcb\x34\xf8\xa3\x83\x57\xa5\x69\x4f\x54\xa9\xc8\xcd\x41\x4e\xca\xc8\x16\x30\x02\x3a\x4b\x22\x2a\x33\x7f\x17\x46\x82\x2c\x48\x8c\x68\xb6\x3f\x0a\x22\xc2\x2b\x35\x21\x94\x19\xde\x1f\x04\x0a\xf2\x8d\x66\xe6\xec\x23\x12\xd0\xff\x32\xba\xb2\xcd\x16\xa3\x3a\xb4\x0c\x5f\x83\xa2\x16\x46\x32\x41\xa9\x63\xbe\x4e\x3c\x76\x77\x2b\x1c\x12\xf8\x16\x08\x6a\xc9\x50\x10\x3d\xc8\x33\x1e\xea\x3d\x75\x3b\xbe\xaa\x80\x19\x1b\xe8\xa6\xcb\x17\x11\x6e\x9a\x25\x0c\xc8\x89\x4a\x8d\x9a\x01\x9f\xde\x27\x09\x14\x9e\x96\x05\x9b\x2c\x2d\x4e\x33\xdc\x64\x54\xa4\xd9\x18\x3a\x6a\x9d\x0d\x4b\xb2\x5b\x6b\x4d\x85\x6f\xf2\x65\x77\xa5\x15\xb3\x1a\xac\x0d\xc1\x47\x43\x11\x67\x94\x39\x32\x60\x8d\xf7\xc7\xe5\x2f\xa3\xb1\x0f\x0f\xad\x45\xcd\x6b\x02\x6d\xbc\x11\x09\x3e\xa0\xe0\x20\x1c\x70\x36\xc3\xab\x71\xfa\xd3\xf1\xe2\xd1\x66\x48\x3e\x5a\x2c\xc1\x2d\x83\xcc\xca\xf7\xa0\x34\x2b\x68\xcb\x03\x73\xea\xf9\xf3\x82\x2a\x49\x30\xd4\xbd\xc3\x92\xba\x87\x05\xb1\xff\xa2\x52\x4a\x5e\x3f\xf8\xb4\x48\xd6\xd4\x02\xb0\x0e\x0b\x08\xe5\x13\xa8\x65\x3d\xd1\x72\xbe\x25\x17\x1b\x4e\xd3\xa2\x33\xd6\xd0\x83\x59\xb1\x19\x6a\x8b\x74\xad\x4a\x01\xf7\x3a\x48\xe6\x9b\x2c\xae\xb6\xe8\x89\x09\xac\x9c\x04\xd8\x71\xc5\x26\x73\x1d\xc3\xfa\x20\x86\x15\xb0\xbc\x9f\xb7\xe3\x46\xad\xbb\x27\x0c\x31\x1b\xac\x6e\x2b\x2d\x0c\x96\x65\xfe\x58\xbc\x56\x16\x1c\x1a\x12\xd3\x90\x34\xc6\xdb\x6b\x92\x95\x0b\xd3\xae\xe3\x0a\x7c\x5e\xc7\x73\x91\xac\x82\x8d\xc2\xdc\x4b\x68\x2c\xc0\x48\x98\x0e\x04\x87\xcb\x55\xa1\xd1\xf3\xe5\xdd\xf2\x7d\x4f\x15\xbb\x89\x8c\x7f\x0e\xef\x9a\x79\xbe\x32\x5a\x0d\xc3\x01\x3e\x4d\x87\x93\x25\xa4\x1e\x84\xc1\x66\x6d\x58\x68\xbd\x7e\x5f\x66\x23\x6c\x52\x2b\x81\xd1\x07\x60\xb3\x57\xf8\x68\x8a\x0c\xb8\xa4\x6b\x43\x3d\x69\x04\x67\xbe\xa7\x5a\x2d\x7e\x0a\x7b\xde\xc8\x25\x92\x06\x71\xab\x49\xc0\x6c\xa8\x19\x0f\x28\x3f\x34\x87\x57\xbe\x01\xa3\xfe\x2a\xf4\x26\x10\xf1\xf1\x12\x3f\xe3\x44\x0d\x2d\x26\x1c\x5a\x91\x6b\x63\xc1\x19\x10\x93\x9c\xc6\x34\xd1\xf5\x53\xb8\x17\x08\x18\x96\x69\xbd\x0d\xeb\x48\x33\x47\xb2\x22\x29\xaf\x57\xe6\x8f\x86\x20\x14\x9e\x50\xbd\x01\xb5\x66\x3d\x61\x9f\xe5\x08\xc0\x5e\x89\x7d\x50\xa8\x8a\x17\x6d\x99\x98\x3d\x68\x30\xb7\xf6\x18\x80\xb4\xa9\x30\x41\x29\x8a\xbb\x00\x73\xbe\x9c\xc5\x18\x38\xc9\x17\xb0\xdc\x8c\x7f\x63\xd4\x6c\xf1\x5a\x72\xbc\x11\x3d\xc5\xba\xda\xae\x1a\x6a\x29\x0d\xfd\x4c\x65\x91\xac\x1d\xf3\x51\x87\xf2\x1a\x16\x95\xfe\xbb\x67\xf6\x7c\xb9\xaa\xb2\x6f\xa3\x63\x85\xee\xff\xb4\xbb\x8e\xe7\x3e\x52\xa6\x52\x7b\x16\x16\x0e\xe6\x7c\xa0\x2d\x62\x58\xe9\xa5\xaa\x44\x8c\x80\xfa\x22\x11\xb4\x40\xe7\x6a\xd8\x21\x44\xc7\xe8\x50\xab\x2d\x40\xac\xef\xda\x3f\x34\x2a\xbc\x78\xac\x30\xc8\xf8\x50\x51\x9b\xa5\x0a\x75\x20\xf2\x3d\x2d\xdc\xb3\x91\xe6\x9c\x21\xad\x24\x63\x31\x15\xc3\x46\x87\xaf\x74\x4e\xf5\xc3\x5c\x9b\xdf\x71\x8a\x03\x0e\x46\x23\x57\xce\x77\x57\x69\x82\xff\xe1\x1a\x5d\xbd\x25\xa1\x4c\xb4\x9c\xfc\x55\x98\x09\x5f\xbf\x18\xc5\xd5\x2f\xb4\x2d\x50\xac\x08\x22\x28\xac\x4f\x73\x86\x07\x92\x62\xe1\xed\x00\xa9\xcd\x44\x94\xf7\x87\xab\x4d\x51\xa1\xb0\x09\x5f\x7f\xd1\x7b\x2b\x98\x4c\xf3\xfa\x3c\x2e\x68\x49\x66\xf8\x48\x87\xe6\xcf\x24\x5b\xa6\x9a\xb2\xc0\xb7\xcb\x75\x29\x12\x47\x7c\xd4\x30\x00\x73\x6e\x72\xcd\xa8\x30\x6d\x7f\xed\xfd\x5a\x21\x61\x0d\xf2\x71\xc1\x1a\xc9\x5a\xb8\xf4\x41\xf0\xb6\xd3\x56\x32\x00\x3b\x5d\x2f\xd3\x15\x08\xe3\x3d\x1b\x94\x0f\x11\x25\xeb\xfe\xbd\x10\x4c\x05\x13\x01\x32\x2b\xaa\x6b\x23\x78\x87\xe6\x5c\xf1\x6e\xa5\x7d\x0b\xea\x4d\x71\xfd\x05\xec\x8b\x91\x04\x0a\xb4\x9c\x5d\xe9\x0d\xae\x7f\xfd\xfb\xd7\xff\x87\x7f\x96\xfe\x77\xec\x59\x96\xcf\xff\x8f\xdb\x96\xd5\x55\x78\x54\xc7\xae\x65\xb5\xe5\xb9\x77\x65\x4b\x7b\x84\xf6\x5e\x43\xff\xaf\x52\xdb\x93\xee\x7e\x53\xfe\x6f\xf9\xc7\x91\x34\xe1\x8b\xfe\x1d\x9a\xc2\x4a\xd3\xbb\xfd\x80\xb6\xf6\xf1\xda\x96\xb7\x0e\xde\xa2\xe3\x81\xa5\x6e\x1c\x8c\xf8\xb0\x9f\xd0\xd6\x3b\xde\xd8\xf2\xf6\x8c\xb7\xfe\x71\xcf\x5a\xd8\x53\x17\x8b\x8f\x8e\x03\x4b\x75\xf4\xda\x81\x1f\xeb\xff\xef\x2c\xa5\x1b\x64\xaf\xa1\x65\x85\x78\x0e\x94\x1e\xaf\x32\xbd\xa6\x6f\x59\x6b\x5b\x3a\x9e\x6f\x65\xa2\x40\x1a\x86\x01\x1e\x9b\x18\xd9\x60\xb3\x1e\xd1\x0e\xe5\x50\xfd\xe3\x96\x5e\xe2\x5e\x1e\x31\x38\x04\x1c\xac\xfd\x7b\xa4\x67\xb6\x06\xfb\x77\x75\xd2\x6c\x01\x3a\x38\x7e\xef\xb6\x98\x4d\xed\xec\xb6\x3c\x8f\x6d\x7d\x7a\xab\xe7\xc8\xf8\x36\xa6\x3a\xee\x5b\xea\x4a\xb9\x68\xc0\xfe\xb0\x78\xab\x79\xdc\xb5\xd4\x8b\x2f\x53\x3e\x4b\xab\x7f\xff\x7d\x93\x01\x20\x21\xab\xc9\x63\x88\x61\x4a\xf6\x1b\x1e\x5f\x3b\x96\x9a\x3b\x98\x69\x84\x11\x31\xe0\x46\x68\xbc\x16\x9f\xab\x13\x5b\xd6\x4d\x6c\x69\x7e\x71\xa4\x19\xb3\xe8\xf3\xe0\x51\x90\xdd\xc5\x60\xec\x2c\x7c\x66\x73\x4b\x76\x2c\x0d\x09\x40\xf9\x52\x8e\xee\x73\x74\x03\xa0\x8f\x00\x94\xa9\xbd\xff\xa8\xfe\x87\x8f\x78\x86\x10\x7b\x9b\x9b\xe1\x6d\x4b\x7d\x62\xf8\x12\xc3\x27\x76\x39\xde\x23\x5e\x94\xde\x05\xb6\xef\x2f\xf0\xa7\xa5\x0c\xc8\x65\x9a\x89\x5d\x0c\x57\x53\xd5\xc5\x46\xb8\xa9\xde\x1e\xed\xa1\x55\x42\xd1\x3c\x16\x48\xf5\xf5\x93\x3f\x07\x92\x7c\x60\x66\x6d\xaf\x6c\x03\x07\x6c\x06\x24\xbe\xb6\x0d\x46\x5d\xcb\x5d\x39\xfc\xba\xa7\xd1\xeb\xcc\x6c\x99\x64\xc5\x2d\x6b\xde\x68\xcb\x28\xee\xc8\x20\x70\x86\x97\x08\x64\xe6\xea\x47\xb5\x55\x0d\xb6\x78\x96\xf7\x68\xe9\xb3\x79\x53\x20\x05\xb3\xfa\x9e\x3c\xf6\x27\x72\x4c\x55\x40\x42\x83\x31\xb6\xac\xd8\x11\x34\xca\x52\x82\xb6\x57\x19\xbd\xc4\x1e\x53\x9b\xe8\x1c\x63\x2f\x1f\x40\xfc\xca\x6c\x82\x8d\x6a\xee\xfe\xae\x00\xfe\xa9\xd2\x93\xda\xa3\x0a\x1e\xc7\x36\x01\xee\x5b\xee\x8f\x1d\xe5\xa4\x9a\x05\x57\x42\x80\x0d\xff\x37\xe8\xb9\x0b\xe6\x91\x0d\x78\xbf\x2b\xdf\x29\x12\x1d\x80\xd8\x1e\xf2\x98\xa1\xe5\xd6\x1c\xcc\xe4\x76\xc0\xd5\x09\x26\x0f\x81\xd4\x98\xa8\xc5\xff\x83\xca\xff\x61\x21\x89\x80\x07\x65\x48\xdc\x05\xf3\xf3\x03\xcf\x3a\xb3\xeb\x80\x39\xc9\xae\x03\x4e\x5e\x18\x10\x11\xed\xad\xe3\xa1\x90\x19\x25\x51\xc9\x81\x6d\x80\x9e\x12\x09\x80\x17\xf1\x66\xbd\xd9\xc2\xf0\x53\xf3\x69\x24\x5b\xa5\x40\x69\xc9\x48\x95\x83\x66\x7d\x90\xfe\x60\xa5\x2a\x28\xbf\xc6\x79\x22\x30\x48\x2f\xab\xf6\x5c\xca\xa9\xd5\xa7\x03\x59\x24\x53\x3d\x01\x40\x33\x1b\x90\xe3\xd9\xbb\x42\xee\x37\x68\xe7\x10\x41\x97\x6a\x62\x8b\xf8\x3f\xc6\x86\xfa\xe8\x6c\xc9\xe0\xac\x90\xd5\xb2\x2a\x90\xdb\x16\x69\xa4\xa6\x36\x44\x41\x08\xea\xee\x36\x40\x37\x24\xee\x76\x54\x02\x50\xcb\x5b\x8d\xba\x56\x2e\x47\xd3\xa2\xf8\x83\xc8\x20\x2f\x73\x91\xb0\x46\x01\x7b\x56\x6a\x03\x2b\x24\x29\xf4\xeb\xf6\x61\x57\xdb\x72\x6f\x9c\x17\x30\x29\xe7\x05\xea\xc3\x91\x59\x49\xb6\x2c\xa2\xc5\xad\x2b\x08\x52\x40\xcf\xc7\x06\x03\x4d\x55\x5a\x40\x8e\x20\xb2\xb8\x1d\x2b\x00\xc0\x0b\x46\x68\x09\xcb\x79\x1d\xf3\x49\x79\x1a\x01\x82\xbb\xb5\x89\x4f\xe9\x3c\xa5\xb0\x90\x3e\x8f\xd4\x43\x59\xa3\x29\x5f\x6f\xa9\x7f\x81\x97\x5b\x70\x4d\x24\xec\xa4\x79\xf2\xfc\x1b\x9a\xac\x80\x74\xd4\xae\x81\x51\x6a\x36\x61\x46\x6a\xd0\x72\xa8\x05\x00\x6a\x11\xdf\x5d\x81\x5b\xaf\xec\x04\x03\xad\x6f\x2b\x0e\x5e\x0a\xfe\x7e\x74\x48\x41\x7d\xcc\x15\x99\xed\x3f\x43\x51\x74\xcb\x1d\xb6\xc7\x6a\x2f\x6f\x5a\x2b\x97\x14\x5e\x9e\x06\x42\x94\xaa\x59\x34\x90\xc6\x3f\x78\x3e\x06\x62\xce\x6c\x36\x81\x0e\x08\x02\x6c\xd9\x9f\x14\x8b\xc9\x02\x67\xd8\xea\x8d\x91\x12\x2d\x8a\x8e\xb0\x7c\x13\xd9\xfb\x09\x05\x33\x06\xee\xb7\xf6\xc7\xd7\x3e\x41\xfb\x52\xf4\x8e\x4a\x1d\xa7\x5c\xf9\x9c\xd2\x28\xfa\xfc\xe3\x78\x21\x13\xd9\x03\xd4\x9c\x00\x4f\x88\x62\x28\x12\xa5\xee\x14\x80\x72\x9c\x01\x68\x48\x66\x6c\xbc\x94\x47\xf9\x2b\x6c\x9e\x93\x1f\xa6\x7b\x2c\xfa\x7b\x82\x0e\x92\xea\xd9\xae\xb1\x76\x66\xbf\x7f\xed\x33\x7b\x15\x12\x13\x06\xab\x39\x25\x6d\x79\x25\x69\xbd\xfc\x71\x33\x83\x2a\x69\x9d\x70\xc0\x11\xf7\x51\xbe\xc9\x5a\x5b\xe7\x87\x7d\x94\x7d\x25\xcc\x06\xf5\x3f\xf4\xc1\x50\x19\x0a\xb1\xb8\x22\xb6\x27\x9e\x9e\xd0\x6f\x18\x69\xa1\xbf\xd0\xbc\x50\xaa\xcf\x60\x7f\xa4\x29\x76\xe3\x4f\x94\xd9\xbc\xd8\x27\xbd\x0a\x81\x9c\x02\x86\x03\x41\x6f\x4d\xed\xd5\x13\xc4\xac\xd5\xc7\x47\xa9\x4d\x90\x02\x16\x1f\x36\x88\xd5\x1a\x70\x42\x83\x76\x3f\x41\x63\x6f\xae\x2a\xf0\xf5\x01\x96\x9c\x5b\xe4\x57\xbd\x4f\x80\x21\x3a\x25\x12\x6b\x7c\xfb\x70\x8a\x3e\x73\xd4\x00\x26\xa5\x19\x51\x1e\x3f\x80\x0c\x6c\xf8\xdc\xb0\x7e\x7e\x29\x41\x40\x51\x29\x8d\xaf\x25\x0a\x5f\xff\x9b\xd2\xe1\x6f\xe9\x49\x79\x7f\x47\x4e\x37\x76\x69\x6c\x87\xf5\x3f\x0c\xf6\x44\x05\xe3\x10\x91\xd8\x25\xce\x23\xad\x06\x20\xf9\x85\x0c\x04\x21\xdf\xc9\x0b\x06\xd2\x2f\x0f\x33\x98\x12\xe1\xa3\x19\x2b\x62\xf5\x13\x22\x74\x65\x27\xb0\x4e\xa2\x54\x95\xa2\x38\x1c\x1e\x8e\x13\x22\xb8\xa2\x12\x3a\x72\x85\xa8\x86\x5a\x32\xdd\xcd\xb5\xc5\x2d\xcb\xdd\x51\x9f\x95\xfc\xda\x9d\xe3\x4b\xff\x4d\x16\x55\xb7\xa5\x11\x03\x82\x69\x43\x0b\x74\x69\xf1\xad\xc8\xd9\xef\x98\x3c\x1a\xc0\x58\x73\x8c\x15\x4b\xe5\x24\xa3\x3c\x63\xc1\xeb\xde\xad\x71\x24\xcc\x7c\x62\xe9\x52\x44\x83\x3e\xb5\xa5\xf7\x46\xad\x76\x42\x19\xfd\x5c\x39\x54\x4d\x86\xbb\x27\xa5\x51\xd5\x3b\xc3\x3e\x1f\xea\x25\xbd\xf6\x88\xe5\x08\x67\x6a\x6f\x4b\xc2\x04\x35\x05\x53\x99\xfc\xd6\xe7\xa0\xd6\x84\x96\xfc\xbd\xd0\x42\x46\xc7\xc5\x28\xb4\x0b\x6e\x09\x2b\x8a\x33\x53\xa8\xb7\x6a\x8f\x36\x6f\x27\x0e\x0f\xde\xf5\x30\xce\x29\xba\x42\x5a\x21\x6e\xdd\x3e\x55\xd5\x95\x08\x69\x21\x95\x09\x49\x6f\x83\x0d\xb6\x3f\x1b\x07\xb8\x11\xb4\xd2\xe2\x0d\x53\x12\xa5\x21\xa6\xcb\x83\x6d\x9d\xdb\x25\x01\x6a\xc5\x40\x0e\x1d\xea\xd7\x81\xa6\x47\xee\x25\xc5\x9f\xa1\x86\x69\xaf\x70\x65\xb8\x75\x6d\x8d\xe8\x55\xea\xee\x3f\xec\x5f\xf6\x77\x0e\x75\xd8\x36\xfc\xf8\x1f\x76\x11\x50\xd3\xc8\x07\x0b\xa1\x14\xb5\x6d\x60\x45\x83\xcb\x30\xa9\x7e\x17\x01\x90\xde\x95\xdd\xa8\x02\xe8\x56\x8e\x32\xb5\xaf\xec\x1f\xb7\x2d\x23\x0c\x40\x1f\xe5\xe5\x1a\x8b\xa5\x46\x81\x4b\x93\xda\xba\xbb\x03\x30\x34\x4d\x97\x70\x88\xe9\xf9\x03\x30\xdc\xbc\x61\x80\xe1\x56\xb7\xd9\xa8\x62\xfd\x09\x6e\xa0\x6a\xff\xf9\x54\x95\xed\x69\x9e\x27\x4f\x46\x90\xb9\xc1\x73\x29\xa8\x6a\x15\x3b\x86\xdf\x43\xb1\x78\x93\xbf\x11\x5b\xa0\x64\x77\x42\x16\x9d\xc1\x58\x6d\xed\xe8\x29\x54\x2d\x6d\xcc\xde\xe6\x59\x9a\x55\x31\x6d\x8c\x81\x04\x7c\x36\x98\xe0\x4b\x63\x79\xb7\x17\xc6\x99\x84\x78\x8d\xb9\x8f\x6e\x69\xb9\xab\x89\x20\x5f\x9f\x3a\x3a\x11\xab\x53\x75\x8e\x20\xc8\x82\xad\x32\xde\xa2\x46\x4a\x7b\x6f\xff\x05\x13\x25\x07\xbf\xf5\x2e\x31\xab\xe6\xff\xae\xf6\x45\x69\x13\xa6\x74\x23\x4c\x44\x00\x02\x63\x2d\xd8\x74\x35\x1d\x57\xbd\xac\x31\xc6\x75\xeb\xd8\x65\xfb\x82\x1f\x5f\x51\x8f\x60\x43\x6e\xaf\x38\x4d\xc0\x63\x68\xb6\xdb\xd1\x64\xbc\xa1\x49\xac\xa1\xa5\x7d\x99\x3d\xec\x6f\xff\x9b\x4a\xa2\x46\x5f\xf7\xc0\xa0\x62\x18\x24\xac\x51\x14\xcd\x78\xfa\x8e\x91\x62\xa5\x9a\xf4\xee\x74\x87\x5f\x73\x4a\x81\xf5\x01\x74\x3d\xd0\xab\xc0\x26\xa2\x25\x24\x41\x6b\xe5\x54\x24\x5d\x50\xd1\xa7\x36\xfd\x1c\x0e\xd3\x30\xec\x8b\xb7\x52\xe3\xd6\xcf\x40\xbd\x6d\x78\x00\xf0\x75\xbc\x9c\xb3\xad\x29\xa9\xcd\xa4\xd8\xb4\x7b\xee\x4e\x89\x07\x9c\x34\x2a\x8c\x02\x41\x59\xc5\x40\x88\xba\x7b\xc3\x41\xe5\x4e\xaf\xdc\x94\xc6\x6b\x4b\x7c\x40\x39\x3e\xdc\x30\xf8\x87\x63\xbb\x47\x83\x5d\x15\xb0\x76\x11\x57\x70\x18\x71\x4a\x1a\x80\xaa\x00\x48\x3d\x7e\x62\x37\xc1\x29\x75\xbc\x31\x56\xf6\xf2\xb9\x55\xdb\x77\x17\xe1\x1e\x6b\x70\x5e\x69\xd3\xdc\x04\x9a\xff\xc0\xa1\xb7\xf6\x39\x3c\x10\xf7\xc2\x33\x16\x7b\x5f\xa2\x4f\x57\x3c\xf1\x86\xf6\xe8\xb6\xfa\xa6\xdd\xa5\x36\x74\x91\x01\x96\x3a\x69\x00\xce\x83\x26\x5d\x35\xc0\x86\x0b\xb6\xde\x1d\x99\xae\x8f\xb1\x0b\x52\x13\x49\x30\x38\x42\xcf\x10\xba\x6c\xee\xf1\xd8\x22\x9e\x3d\x40\x48\x46\xec\x20\x95\x22\x63\x2c\xec\xec\x8a\xe2\x3f\x27\x68\x28\x47\xe9\xcc\xa4\x76\xe2\xc2\xbd\xb7\xc9\xd1\x5d\xab\xd8\x80\x16\x5f\xf1\xee\x60\x3b\x0d\x1c\xa0\x4d\x27\x53\xb4\xc3\xc9\x01\xc8\x10\x07\x89\x57\x0d\xd2\x7a\xac\x25\x55\x93\x8e\xee\x1b\xb7\xf2\xcd\xd3\x9d\xab\x33\x68\x78\xb7\xbe\xdf\x6b\x5b\x56\xdb\xbf\x75\x85\xfe\xbe\x1d\x84\x81\x17\x7d\x9c\xd1\x82\x41\x43\x4f\x0f\x34\x81\xc5\xee\x94\x8c\x7d\xe9\xca\xd2\x7d\x50\x41\x3f\x80\xf8\xbd\x33\x63\x25\x8c\xd7\x78\xc2\xfe\x73\x97\xd6\x83\x8b\x18\x19\x98\xbb\xbf\x65\xdb\x25\x0c\xa2\x39\x61\x6f\xce\x99\x81\xdf\x5a\xd7\x00\x54\x3f\x75\xa1\x6a\xca\xb8\x59\x87\x71\xb3\x23\x11\x0b\x8e\xc1\xe7\x4f\x47\x9a\x16\x3e\x0f\x2d\xa3\x56\xf9\x16\x59\x6e\x8d\xc2\xe8\xb2\x61\x1c\xf7\xd6\x3e\xe4\xb6\x75\x4b\xf4\x6a\x65\x3b\x86\xc3\xd0\x05\xf1\x0c\x4e\x5c\xaa\x11\x32\x90\xb7\x07\x57\xbb\xe0\x73\xf7\x04\x38\xf2\xcd\x46\xcc\x49\x18\x7e\x12\x9f\x58\xde\x4e\x21\x4c\xc5\x21\x90\x45\x4f\xa8\x99\x2e\xdc\xca\x16\x72\xb7\xd8\xa9\xb4\x25\x6e\x75\x60\x58\xc5\x12\xc2\x0e\xe1\x78\x7f\xb0\xb2\x2d\xfe\x82\xcc\x80\x2a\xbc\x32\x8e\x8d\x47\x58\x43\x73\x99\x7b\xc8\x65\x43\x21\x55\xc3\x65\x1a\x6f\xb1\x68\x8b\x9d\x5b\xbc\x0e\xc1\x1a\x5d\x31\x72\xf4\x62\x33\xc3\xa9\x9f\xcd\x3f\x73\xea\x3f\xce\xa1\x69\xf3\xbc\xf7\xe9\x56\x24\x63\x0e\x94\xb5\x89\xb2\x7d\xf4\xa1\x25\xb4\xfc\x5c\x4c\xf0\x86\x38\xf4\x0e\x54\x52\x4c\xf8\x00\x71\x82\xa8\x44\xb7\x76\xb0\x94\xf4\xa8\x89\x37\x75\x4b\xbe\xd3\x3e\x76\xa1\x2e\x7a\x20\xad\x87\x9b\x52\x60\xc7\xd7\xf4\xa0\x6e\x0e\x58\x73\xa7\x8c\x24\xd3\xf4\xb5\x72\xae\x21\xe6\x41\xeb\xc5\xa2\xbf\x2b\x9c\xd2\x95\x23\x8f\x6d\x69\xf2\x33\x10\x9a\x5f\x6b\x54\x94\xde\xe5\x9e\x48\x8a\xe0\xa2\x26\x24\x6d\xa1\xa4\x8c\x4c\x81\x5d\xac\xf0\x1d\x14\x3e\x46\xdb\xce\xae\x7f\x81\x52\xa8\xb9\x46\x48\xf9\xd6\x44\x7f\x0d\xc6\xd7\x70\x65\x5a\x84\x29\xd5\xd8\x41\x97\xb6\xcf\x05\xc0\x2f\x37\x6e\xb1\x05\x61\x83\x53\xc6\x84\x8e\x2f\x6d\x09\x2c\x8a\xca\x78\xb9\xab\x6c\x71\x6c\x17\x03\xd6\x5a\xfe\xe7\xea\x9d\xa0\xd7\x12\xbe\x2f\x7c\xfe\xbc\xb0\x77\xd8\xeb\x6b\xe6\x54\x17\xdc\x80\x83\x7a\x35\x1c\x67\x38\x45\x5f\x1f\xeb\x16\x96\xb0\x89\xb1\x71\x17\xc1\x9b\xfd\xe5\x6b\x81\x02\x69\xab\x7b\xda\x3c\x1e\xdb\xb2\x13\xd2\x6b\xef\xee\x3f\x7c\xa8\xb2\xdb\xbf\x5a\x57\xd8\x23\xb3\xff\x79\x09\x89\xde\x36\xd7\x88\x15\x89\xba\xae\xac\x88\xf5\xdd\xa7\x26\x60\x6e\x04\x06\x8c\xd5\x21\x35\x46\x98\x39\x3f\xef\x53\x2c\x5d\x5a\x4d\x83\x0a\x8e\xd4\xb4\x31\x90\xae\x33\x1c\x64\x6a\x33\x10\xfe\x2c\x34\xb5\xdc\xbf\x44\x88\x57\x17\xf6\xd1\xa7\x83\xcc\x48\x78\xea\xfc\xb0\xde\x96\x4e\x3a\x34\x4e\x8f\x26\x2e\x27\xa0\x73\xd7\xfa\x0d\x6a\xc5\xf7\xb0\x97\x7a\x55\x30\x9e\x7a\x00\xc7\xcc\x66\x08\xa2\x45\x38\x56\xa2\xb6\xea\xc6\x24\x3c\x64\x4a\x75\xbf\xa1\x67\x80\x30\xb6\x7b\xe7\x1f\x88\x70\x25\x74\xd7\xab\x6a\x6e\x51\x1c\xea\x75\x5b\xe5\xb1\xa1\xec\x53\x65\x15\xf7\xef\x8f\xbc\x89\x08\x71\xc9\x93\x62\x12\xca\xf9\x1d\xff\xba\xa2\xb0\xfa\x4d\xf3\x1c\x31\x54\x2d\xca\x03\x11\x3f\xd3\xd6\xfb\xd2\xaf\xe1\x7f\xde\xa0\x42\x5a\xd0\x81\x67\x1f\xe2\xba\xe7\xe5\x5a\xe5\x87\x6d\xb1\x1e\x9b\x46\x14\x44\xc8\xae\x49\x7c\xd9\x76\x0e\x27\x16\x1a\x43\xd8\x26\xa8\xd9\x46\x0c\xfd\x86\xe4\x28\xb0\x20\xe3\x36\xd4\x55\xcf\x87\x4d\x5d\xcb\xbd\x81\xa5\xf4\xf2\xbb\x42\xb1\x4b\x12\xd0\xdb\x5e\x05\x8a\xd8\xfd\xf0\x7e\x26\x3c\x51\x9f\x1f\x94\x0a\xab\x46\x15\xc1\x17\x84\xd2\x89\x0b\xa7\xbe\x89\xd0\x43\xe1\x56\x01\xfe\xe1\xe7\x81\x77\x79\x03\x49\xd4\xd5\x1f\x79\x2b\x77\x06\x33\xe1\xd0\xaa\x3d\x46\xea\xe3\x02\x3d\xd1\x5f\xb1\x41\x78\xa0\x9d\xe5\x0d\x4c\xa1\x32\xf7\xb6\x84\x43\x2f\xfc\x7f\x41\xe1\xad\xff\x1b\x0a\x9f\x06\x77\x95\xf3\xc1\xbe\x02\xd7\xcd\x8d\xb9\x2e\x04\xae\x69\xff\xf5\x2f\x48\x1b\xc6\xce\x16\xaa\x97\x4e\xd8\x98\xc9\x8e\x05\x73\x0a\x06\xd4\x7f\x01\xfe\xc0\xf2\xe6\x4d\xa8\xcf\x66\xc5\x10\x91\x80\x8f\x15\x2e\x40\x03\x20\xd8\x2b\x12\x6c\x17\x1f\x11\xf1\x46\x23\x8e\x2b\xba\x78\x66\x5b\xde\x4e\x21\x64\xdb\x03\xcd\xe5\x18\x19\x9e\x98\xc8\x38\x23\x05\x7d\xcd\xde\x78\x3a\xb2\x0f\x96\x6c\x89\xd2\xa7\x73\xc4\x88\x78\x08\x95\xe4\xd5\xd4\x1b\x56\x6f\xaf\xc8\xcc\x4b\x48\xc6\x88\xa1\xc3\xd6\x1b\x49\x87\xea\x8d\x29\x9c\x48\x6f\x50\x93\x95\x46\x40\x17\x99\x57\xb1\xe0\xcf\xdc\xe2\x2c\xee\x94\x67\x81\x95\xa8\xde\x31\xe7\xce\x7e\xfe\x6a\x35\xa8\xdf\xd4\x84\x1a\x86\x1a\x27\x1d\x46\x03\xcc\x34\xbd\x73\x9c\x2b\x06\x15\xb4\x84\x65\xb5\xf7\xde\xe7\xae\x88\xf5\x99\x8f\x5c\xdd\x0e\x7e\xef\x95\x0d\xfa\x1b\x6a\x2b\x51\x80\xf2\xd9\x24\xbd\x80\xd5\xe3\x9b\x46\x15\x55\xc6\x43\xa8\x78\xde\x5f\x11\xa6\x9d\xde\x5a\xd3\xa4\x0e\xdf\x61\xba\xac\x1d\xc1\x43\xbc\x75\xf6\x7e\x5d\xe1\x10\xca\x23\xd2\x29\x26\x95\x48\x9f\x43\xd5\x1a\x95\xe0\x1f\x08\xcc\x7d\xe0\xf9\xb5\x4d\x29\xf4\xc5\xe3\x05\x67\x0d\xc8\x95\xcf\xc6\x9e\xcc\xd4\xdc\x05\x54\x2a\x81\x36\xf5\x84\x4c\x4c\x9f\xf9\x48\x4a\xd7\xee\xda\x17\x5e\xd0\x2e\x58\xbd\x51\x00\x51\x5b\x3a\x1d\x2a\xca\x90\x51\x96\x67\x99\xef\xa5\xf7\x8f\x60\x15\x8e\xd4\x60\x19\x99\x10\x36\x29\xf8\x1d\x3e\x43\x1b\x54\xa8\x25\x29\x44\x39\xfd\xa0\xe8\xa3\x01\x21\x74\xd5\x40\x78\x54\x76\x94\xdb\xfd\x3d\x44\xbd\x19\xba\x67\xf6\x9c\x64\x99\xd3\xf5\x12\x8d\x7c\xa5\xbe\xd8\x88\x61\xb1\xc3\x95\xd6\x34\x3f\x22\x36\x10\x0b\xeb\xf6\xbf\x87\x3c\x89\x07\xb9\x51\xb9\xa1\x05\xf7\x8b\xf0\x88\xbf\x63\x54\xe5\x5b\x2e\xac\xc8\x03\xdf\xd8\xdf\xd0\xf6\xfc\xfc\x93\x40\xf1\x98\x8d\x6b\x41\x3d\x99\xe4\xea\x07\x25\xcc\x1a\xa7\xf0\xc8\x01\x18\x84\x85\x5c\xaa\xd6\x68\x49\xf3\x7d\x45\xff\x64\xc1\xb7\x2b\xc2\xfb\x1a\x40\x73\x6f\xe4\x4d\xe5\x2c\xc4\xa0\x6f\x35\xa4\x43\x18\xd2\x52\x0e\x36\x4d\x23\xf2\x5c\x21\x08\x94\x88\x7c\x56\x32\x27\xc8\x82\xf5\x4f\x69\xcd\x89\x6c\x61\x49\x02\xd3\xee\x3d\x86\x36\x6b\x1e\xe4\xb6\x7d\x09\x09\x34\x40\x63\x1f\x1e\xbc\x48\x11\x7a\x94\x12\x59\x38\x83\x55\x97\x20\xe7\x21\x99\x71\xd7\xda\xa8\xba\xe8\x39\xeb\xa5\xee\x19\x7b\x57\xbf\x74\x10\x83\x5e\xd8\xa7\xdc\x20\x9d\x95\x88\x99\xef\xa9\x7b\xa2\x8a\x56\x39\xe6\x58\x3a\x77\xea\x48\xc9\xd6\xea\x8e\x53\x2c\x2d\xd0\xd3\x3a\x4e\x49\x61\x87\xe0\xde\xa4\xb4\xa1\x4d\xb9\xd6\x1b\xec\xa8\xdf\xa0\xc4\x85\x88\x10\x71\xe0\x45\x02\x5d\x20\xa0\x3d\xf8\xc4\x39\x37\x20\x85\x73\x3b\x25\x0f\x1f\x31\xcc\x20\x30\xfd\x74\xc8\x2c\x57\xf4\x6c\xaf\x71\x76\x03\x90\x13\x99\xdb\x9b\x17\xe5\x14\x72\x40\x0e\x63\xee\xff\xf7\x05\x76\xb0\xb4\x6f\x18\xbb\xa3\x63\x90\xf8\xf2\x67\x78\x85\x36\x98\x4d\x85\xb7\x2f\xf0\x1e\xa3\xb7\x2d\x6c\xa6\x5c\x99\x64\x84\x23\xad\x19\xcd\xeb\xc1\xaf\xee\xe2\xd3\x88\xfa\x7e\x4e\x5d\xb9\x28\xc2\x23\x5e\x51\xf4\x12\xc9\xe2\x6e\xbd\x51\x46\xfe\x2d\x4c\x0d\xd4\x3f\x01\x37\x6d\xec\xa8\x67\x40\x7d\x30\x85\x3e\xbf\x4f\xa3\xe3\x65\x0e\x0c\x23\x2e\xf8\x82\xac\xda\x9b\x7d\xe9\x14\x02\x44\xd8\xee\xf8\xc8\x06\x4e\x99\x87\x90\xa0\x0c\x64\x9f\x20\x00\x02\xc2\x8c\x7e\x23\x3f\x82\x44\xef\x49\x7f\x66\x65\xd3\x33\xa7\x1b\x00\xa8\x05\x9f\x76\x1d\x64\xd4\xbf\x04\x95\x6e\xe8\xb1\xec\xc1\xdb\x45\xe9\x0a\xf1\x1b\x15\xcf\xcb\xc3\xe7\xea\x98\x9e\x79\x76\xb7\xfe\x0f\xb4\x77\x05\x9d\x3d\x24\x49\x74\xcd\xae\x0c\xc6\xb1\x1d\x77\x4f\x90\x3f\xec\xd5\x9d\x33\xda\x5e\x17\xd0\xba\xf7\x06\xd6\xc2\x96\x0b\x0f\x74\xb4\x32\xe4\xb4\xb4\x8b\x6a\x15\x2c\x14\x9e\x88\x1d\xdd\xde\xb1\x3e\xe8\xac\x51\xca\x85\x15\xb4\x68\x55\x24\x67\x95\x0c\xba\xc9\xdf\xdd\x1d\x88\x4b\x99\xf4\xcc\xe4\x50\xca\xc0\xa3\xaa\x8c\x64\xb5\x4d\xf1\x2c\x82\x8e\x70\x41\x06\x6e\xc5\x9a\x27\x13\x93\xac\x76\xf7\xd6\xf4\x8e\x27\xde\x7e\x16\xb1\x94\x43\x44\xc8\xf5\xf3\xc3\x03\x44\xc7\x8c\x16\xea\x1c\x42\xf1\x95\x01\x30\x06\x5a\xfd\x0b\x5a\x26\x24\x07\x36\x7a\x72\x28\x6b\x62\xef\xcf\xa0\xf1\x36\x20\x68\xf6\x27\x12\x64\x31\x2d\xb6\x81\x15\xd4\x02\x43\x07\x92\x20\xbc\xf5\xad\xc2\xba\xf9\xa7\x40\x81\xde\xdd\xca\xfd\x21\x52\x90\x15\x26\xfa\xbe\x51\x4c\x50\xf1\xce\xaf\xec\x32\x86\xd0\xff\x12\x43\xf0\xbe\xfb\x29\xee\x7f\x8e\x21\x78\xdf\x62\x08\xee\x4f\x31\x04\x8f\x42\x80\xf6\x0f\x8d\x62\x85\xf8\x9a\xff\x5a\x91\x1d\xd7\xb6\xe9\x15\x7b\x00\x05\x4b\x73\x55\x6e\x91\x60\x7a\xb8\x6a\xec\xf7\xd8\xbd\x64\xee\xee\xca\xdb\xcf\x6a\x45\x17\xd5\x84\x9a\xc1\x0d\xb2\x72\x5b\xe7\x0a\x02\xcb\x8c\x7b\x62\x60\xdc\xaf\x22\x4f\x6c\x6d\xef\x86\x58\x99\x51\x59\x7c\x31\x0f\x3c\x14\x8c\xc9\x02\x47\xe8\x1f\xa6\xcd\x2f\x3a\x17\xf6\x01\x09\x83\x8a\x04\xb9\x34\x6e\x4a\x19\xd6\xf5\xc4\xfa\xa3\x94\x9f\x0a\x71\x68\xf1\xbe\xa0\xee\x3e\x67\x3a\xaa\x48\xb3\xb5\x84\xc8\xcf\x10\x7b\x6c\xae\x9a\x55\xbd\x9f\xb8\x46\x4b\x79\x22\xa2\x24\x2a\xe2\x30\x60\xa2\x8e\x17\x36\x74\x81\xd8\x67\x73\xec\xf8\xc6\x98\x0c\xe3\x26\x90\x28\x34\xee\xe6\xcc\x6a\xf5\xbd\x2f\xc3\x25\x7d\xa9\x90\x80\x18\xae\x9b\x45\x5f\xbf\x10\x09\x6e\x2a\xa2\xc4\x44\xce\x25\xc6\xae\xbc\x6f\x46\x47\x40\xed\xe3\x49\xf6\x3e\x25\x57\x99\x2c\x44\xf7\x9b\x79\xa2\x19\x13\x62\xcb\x31\x49\xcc\xbd\x88\x60\xa0\xb1\xc7\xc9\xbb\x97\x07\xb6\xbc\xa6\xad\x08\xca\xd1\x30\xa2\x31\x3a\x2f\x10\x1c\x7a\x4c\x11\x4d\x28\x23\x79\x82\x6b\x31\xad\xe7\x36\xc9\xc4\x5d\x06\xe2\x33\xa8\x46\x51\x11\x66\xb5\x68\x0c\x44\xa9\xc9\xe7\x00\x58\x6d\xae\x30\x47\x12\x55\x5d\xcb\x6c\x89\x6a\x96\x65\xa8\x63\x51\xa6\x1e\x14\xb3\xc0\x82\xf6\x7d\xfb\x8d\x72\x93\x25\xa3\xed\x14\x55\x29\x37\x60\x78\xa9\x19\xb5\x3a\x53\x66\x96\xcd\xb0\xdc\x27\x0d\xd2\xd9\xc6\x51\x30\x20\x9a\x43\xa2\x46\x6b\x46\x6e\x95\x91\x90\xb2\x4e\x4a\x07\x44\x43\xd0\x95\x4c\x9f\xe3\xa7\x88\x62\x77\x67\x90\x31\xed\x25\x53\x6a\xf9\x2d\x9d\x46\x31\x35\xd4\x5a\xce\xd3\x92\xc8\xf3\xad\xc5\xcf\x83\x65\x83\x32\xa8\x27\x05\x0b\x34\xc8\xb4\xd0\x72\x60\x1e\x0c\x89\x80\xb7\x86\x59\x5b\xf8\xb9\x2e\x04\x51\x24\x84\xaf\xd9\x83\x98\x24\x03\x26\xd7\x34\x53\x6f\xca\xbc\x83\x15\xd6\x55\xe1\xa0\x8a\x2a\xb8\xba\x85\x47\x7d\x79\x2b\x52\x68\xe7\xac\x28\x85\x80\x9b\x37\x91\x6d\x6e\x6a\xe3\x34\x9a\xfc\xcd\x69\xf6\x25\x7d\x0c\x6d\x99\xda\xa7\x19\xdc\xab\xee\x94\xba\xbc\xa8\xba\x2d\x02\xb1\x27\xce\x07\xd9\x27\x65\x80\x3e\xe7\x1e\x18\x56\xe0\x21\xf4\x66\x6f\xb9\x3f\xd2\xc7\x9c\xae\xfe\xf5\x2d\x78\xc2\xcd\x58\x8f\x80\x29\xfb\x33\xb7\x98\x4c\x74\x82\xc9\x00\xc2\xb2\x10\x04\x33\x77\xe0\x22\x44\x19\x58\xac\xf3\x74\xeb\x22\x69\x1c\xff\x93\x60\x96\xa1\x6f\x20\xda\xd7\xb2\xf4\xd3\x3b\x63\x51\xcd\x92\x22\x67\x77\x4b\x23\x98\xc6\xaa\x49\x26\x95\xe3\x54\xcd\xc1\xc0\x85\xe1\x0b\x9c\x4c\xdd\x2e\x29\x12\xa0\x05\x2d\xcc\xbd\x81\x81\xb8\xb3\xbf\xd4\xcb\x3c\x4c\x9b\x7b\x71\x19\x25\x4d\x23\x0d\x85\x27\xe7\xcd\x6f\x8a\x94\xc9\xe5\x42\xc8\x8b\xdc\x4a\x4d\x3e\x16\x14\xda\x5a\x80\xb5\x7a\x29\xbe\xf4\xae\x11\x25\x1f\xbe\xb9\x5f\x1a\xa1\x54\x69\xcc\x33\xe2\x2b\x13\xfa\x30\xb6\x91\x12\x68\xfe\x3c\x5e\x74\x54\x39\x5e\x22\x17\xb7\x4c\x37\xb9\x6f\x77\xf8\x10\xa8\x0d\x0f\x56\x63\xc1\x69\xeb\xf4\x87\xc6\xc0\xa9\x9e\x65\x62\xcc\x3e\xed\xf1\x5c\xb9\xeb\xe0\x2b\xf0\xde\x05\x49\xee\x27\x7d\x9d\x58\x20\xfc\xaa\x68\x0a\x1a\xb1\x2d\x96\xb2\xfd\x79\xf7\xa3\x64\x59\x7b\x29\xcb\xd3\x2f\xb1\xdd\xd8\xd4\x90\x80\xaf\x58\x67\x53\x83\x98\x09\xcf\x18\x13\xa9\x73\x9a\xb3\x3b\x34\xc2\x0a\x0e\x35\x15\x68\xd3\x7d\x47\xcd\xf3\x01\x0a\x1d\xb0\xc4\x0b\x65\x32\xa8\x7b\xd4\x9e\x2d\x02\x93\xd0\x6c\x54\x25\x74\x52\x82\x1a\xb3\x6e\xc8\x50\x81\xda\x2e\x10\x02\x68\xe2\xd0\x50\xa4\xda\x7e\xa7\x91\xee\x63\xef\x0d\x2a\x26\x31\xaa\x38\x83\xe6\xbb\x48\x32\xd5\x67\xb7\x15\x66\xe3\x58\x33\xca\x83\x5f\x2c\x2b\xd7\x69\x8c\x38\x95\xa4\xcf\x07\x02\x70\xa9\x7d\x45\xf1\x43\x8f\x4e\xaa\xa3\x65\x5b\xa7\xf0\x99\x3f\xf1\xf1\x40\x86\x3f\xdd\x20\xdd\x24\x3e\x9d\x63\xb1\xfe\xd9\x7d\x0b\xab\x31\x18\x1c\xda\x64\x00\xc2\x95\xcb\x22\x22\x29\x57\xee\x94\xe6\xfe\x07\x84\x67\xe4\x13\xb1\x0a\x2b\x78\x48\x9e\x0b\x83\x0a\xa5\xba\x2f\x58\x61\x12\xfe\x71\x05\xa9\x1b\x52\x23\x4e\x2c\x47\x83\xd7\xdd\x35\x38\x97\x58\x26\x6c\x4a\xd8\x34\xe1\x80\x30\x4e\x10\x6e\x03\xee\x2d\xb6\xc0\xc6\x1c\x50\x0b\xbb\xe7\xb0\xea\xfd\x6a\x4d\xd1\xa3\x9e\x4f\x8a\x47\x42\xeb\x9e\x57\x1d\x82\xb6\x49\x89\xbb\x94\xc1\x5e\x69\xfd\x36\x9c\x89\x89\x30\xf1\xec\x75\x52\x0e\x03\x1b\xf6\x19\x24\x4d\xff\xf3\xee\xbb\xf4\x83\xd1\xed\x8b\x8c\xbe\x2c\x6d\x38\x53\x3d\xf0\x46\xa1\x32\x6d\xfc\xa9\x58\x23\x61\xa8\x9b\x49\x83\x20\x07\x46\xbc\x77\x9f\xc7\x6b\x33\x5a\x21\xd5\xb4\xb4\x06\x4c\x09\x8e\x0f\x32\x6f\x16\x3c\xfa\x23\x74\xb5\x31\x21\xf6\xac\xff\x54\xa9\xb5\x4e\xec\x4c\xe8\xdb\x05\xba\x1c\xeb\x8b\x06\xd7\x06\xcf\x1d\x8d\x31\x77\x0d\x25\xd6\xcb\x41\x92\xee\x46\x28\x54\xa4\x9c\xde\xf0\xef\x2d\xdb\xde\x45\x9d\x58\x13\x78\xcd\xfe\x8e\x6d\x4b\x97\x56\x27\x55\x8c\xbc\x26\x80\x9d\x79\xd7\xbc\x35\x10\xc3\x4a\x01\xea\x81\xd5\xb0\x4a\xc3\x6c\x6c\xd7\x38\xc7\xe9\x2d\x13\x7e\xe6\xf5\xec\x16\x56\xb5\x9a\x87\x46\x56\x0c\x24\xb3\x41\xd3\xe4\x80\x8d\x37\xf6\x92\xc6\x10\x03\x1b\x1c\x91\xd8\xc3\xb2\xad\x35\x27\x9c\x60\xd8\x79\x63\x50\xe6\x07\xbc\xb3\x9d\x02\x24\x86\x9f\x2e\xad\x58\x1c\x63\x4d\xae\x1d\xd3\x3d\x1e\xd6\xc5\xae\xd6\x36\x55\x06\xd3\xb3\x58\x9a\x7e\xc5\x70\x7a\xff\x5d\xac\xd4\xff\x4e\xf0\x58\x11\xb3\x40\x3b\x06\x58\xde\xa4\x54\x5f\xf5\xe5\x79\x62\x67\xdf\xa7\x9d\xd9\xf9\x1d\xad\xd4\x90\x7e\x5e\x58\x79\x6b\x55\xdf\xb4\x7f\xb2\xc2\xf7\xad\xb7\x7b\x8a\x4b\x97\x17\x2b\xdc\xcf\xca\x8d\x9e\xc4\x66\x9c\xab\xbd\x71\x20\xf7\x55\x29\x74\x2d\x18\x89\x95\xf2\xbe\x8c\x01\x84\x0b\x77\xcf\xf6\xc6\x00\xdb\xd2\xa7\xbc\xf6\x0d\x5d\xbb\xc6\x7e\x08\x53\x5a\xf8\x26\x80\x03\xeb\x9c\x2c\xd2\x3e\xa2\x65\x01\x79\xa6\x5e\xd7\x18\xd7\xdf\x32\x49\x6d\x82\x19\x30\x9f\x73\x7b\x0a\x8a\xa4\x55\xf2\x94\x98\x17\x2d\xd7\xc8\x10\x73\x5a\x47\x4e\x02\xd1\x33\xcc\x59\x27\x3a\x0b\x89\xfd\x8c\x2e\x08\xb2\x3b\xea\x44\x15\x83\x58\xfd\x47\x07\x26\x3c\x6b\x50\xd4\x32\x31\x26\x2d\x57\xb2\xb2\x0b\x3b\xc7\x09\xde\x99\xad\x39\xc1\xd9\xc3\x23\x56\x11\x9e\xf8\xb8\xec\x62\x97\xaf\xc2\x42\xa8\xd6\xf3\x47\x97\xf2\x45\xf3\xfe\xee\x4b\x97\xcf\x74\xbf\x9a\xda\x97\x54\x07\x57\xb0\x3e\x5a\x9a\xc2\x2b\x47\x31\xc0\x9a\x15\x8d\xe7\x4d\x44\xb6\xdd\x4f\x53\x25\xa4\xf1\xfa\x7b\x79\xf7\x4f\x5f\x20\x55\xac\x21\x82\x90\x4c\x77\x82\xf5\x7b\xef\xa0\x04\xbf\x76\xb7\xaf\xb4\x94\x6c\x31\xf2\x27\xa8\xbb\xf0\xe7\x77\xc5\xfc\x52\x06\x04\x2f\xe0\x96\xf4\x81\x40\xbb\x42\x08\x7b\x4e\x5e\xf0\x03\x42\x2c\xd8\x57\x3a\xb1\x39\xa4\xe1\xab\x3d\xce\x13\x55\x16\x74\xd3\x38\xc7\xd5\x0b\xbf\x4d\x06\x0c\x8c\x04\x15\xd1\x10\x7c\x95\x98\x09\x33\x92\x57\x77\xff\x50\xde\xa6\xa6\xbc\xb9\xc3\x8a\xda\xd6\x98\x29\x9e\x39\x6d\xb7\x45\x50\xac\xa2\xa9\x87\x92\x29\x1c\xfb\x06\x3a\x9f\xbc\x09\x76\x8c\x2a\x78\x52\x13\x8b\x2c\x5f\x49\x67\x01\x0c\x8c\xa1\x36\x53\xbe\x8e\x47\x15\x89\x62\x1d\xdf\x2b\x09\xac\xf5\x89\x82\xc4\x7b\xb2\x50\x71\xf1\xe7\xbe\xe8\x92\xca\xb4\x8c\x05\x78\xd7\x77\xe5\x78\xab\x4d\x4b\x59\xde\x02\x09\x39\x96\xaf\x1e\xe3\x24\x98\xc6\x43\x48\x9b\x5b\x34\x7d\x12\x09\x90\x9b\x48\xb4\x6f\x12\xc4\x2c\x3a\x25\x2f\x87\x2b\xd0\xf9\x08\xa0\x61\x9d\x6c\x6f\xe2\x52\x88\x89\x96\x52\x27\x36\xcd\xb4\x70\xd1\x2c\xb4\x92\x28\xd0\x0d\x1d\x7a\x87\x2e\x8b\x32\x2f\xa2\x95\x52\xb1\x40\xda\xcc\xf9\x47\x6f\xa8\xf9\xe4\x55\x1c\x2c\x58\x68\xfd\x15\x37\xc7\xdc\x8f\xbb\xa6\x73\xb7\x94\x43\xc9\x5d\x2f\x71\x7d\x68\x01\xd2\x31\x80\x06\x52\xbc\x1c\x16\xbc\x41\xbc\x54\x98\x8f\x13\x1b\x6f\xf3\xae\x5c\xd0\x7c\x5c\x8e\xb1\xa2\x26\xc4\xa6\x5a\xc9\x42\x21\xc1\xf0\x8e\x9d\x70\xa6\xc4\x96\x61\xef\xf4\x22\xcd\x37\xad\x3a\xa2\x83\xaf\x97\xc0\x51\xfb\xea\x9e\x5e\xc9\x3d\x38\x86\x16\x28\xef\xc1\xf9\x66\x47\x22\x12\xed\xc2\xaa\x11\x88\x90\x10\xa1\x53\xdb\x7d\x06\x67\x69\x4b\x3c\x82\x27\xc4\x15\xf2\x6b\x6e\xb9\x62\x17\xf9\x85\xd0\x2f\x76\x84\x3f\xc2\x23\xe6\x72\xc1\xda\xdc\x7d\x83\x04\x7d\xb7\x01\xf0\x82\x92\xd6\x60\xb1\x99\x3d\x07\x7c\x66\xf6\x0c\xef\x89\xc4\x7c\x91\xd2\x4f\x30\x2c\x82\x97\xa1\x3e\x01\x0e\x8a\xef\xa4\x34\xcc\x7e\x33\xfa\x11\x7c\xde\x17\x53\xba\x26\xdb\x17\x65\x10\xb0\x75\xfb\x5d\x78\x5b\xdd\x82\x24\xe2\x0c\x93\xbd\xd2\x9f\x87\x3a\xec\x22\x36\xa6\x3a\x3f\x0d\xbb\x14\x6e\xf1\x1a\xac\x19\x41\x7c\xf6\x9e\x89\x4b\x77\x8d\xc0\x57\x84\xbb\x94\xed\x2c\xa4\x89\x9a\x80\x6b\xe2\x69\x88\x8f\xb5\xe4\x69\x6b\xc7\x57\x52\x92\x3e\x8c\xe8\x48\x6c\x36\x97\xf7\x7c\x50\x75\x09\xe5\xa3\xa8\x9c\x5b\x03\x9a\x09\x78\xc1\xcd\x1a\x37\xa3\x04\x5b\xc9\xc2\xbe\x64\x18\x9b\xd6\x96\x16\xed\x5f\xac\x7e\x46\x25\x20\xc9\x22\xe5\x08\x2a\xdc\x0e\xfd\x57\x22\x4c\xac\x8e\x57\xde\xf3\x14\x5b\x5d\x75\x1a\xa8\x84\x93\xe6\xc6\x73\xf9\x65\xc7\x29\x9b\x85\x7d\x58\xc5\xdb\x45\x19\xc6\x52\xcc\x14\xa4\xdb\x09\xad\xcc\xb9\x26\xf0\x1e\xc9\x92\x0c\x43\xda\xf7\xf8\x02\xc9\x44\xed\x03\xce\x6c\xb9\xc4\x87\xfb\xae\x39\x0b\x89\xe3\x0e\x87\xb3\x26\xd1\xbe\x37\x7b\xd2\x52\xf6\x09\xc7\xdf\xc9\xf1\x3c\x39\x7e\xe3\xef\x8f\xdf\x39\xbd\x93\xa8\xc3\x6d\x8b\x24\x8c\xb9\x57\x2c\x71\x8f\x23\x09\x4f\xbe\x62\xef\x1e\x2b\xd4\xaa\x30\xa1\xe0\x83\x2c\xbc\xe3\x5e\xa4\xf9\x89\x38\x52\xe6\xf4\xe2\x1e\x49\xd0\x63\xda\x9c\x93\x22\x91\xa5\x44\x62\xce\xa3\x6f\x88\x47\x28\x05\xda\xcf\xb7\xc5\xa3\xda\x3a\x70\x8e\x5a\x29\xe4\x48\xf8\x66\xea\x9b\x64\x10\x4f\x60\xc6\xfb\x52\xdb\x00\xb0\x0d\x25\x22\x33\xa2\x99\x26\x47\x26\xf3\x42\x8b\xb7\x50\x9e\x7b\x1f\x1c\x79\x70\xdd\xc3\x2a\xf1\x1e\x79\x7b\xf4\xba\x40\xaf\x1b\x4e\x84\x94\xbd\xce\xc2\xf8\x68\xad\xc3\xb9\x3e\xff\xe3\x5c\x7d\xcc\xe5\x7c\x9f\x2b\xa0\x0c\xc5\x4d\x48\xdf\x20\x67\x2f\xa3\x14\x3d\x64\x1f\x16\x29\xdc\x20\xbf\x73\x28\xc7\x5c\xdc\xcf\x68\x59\x8f\x3e\xb3\x34\xa2\x94\xd4\xcb\xa1\x2c\xd2\xc4\xf4\x48\x5a\x42\x1c\x74\xce\xcb\x97\x7b\xb9\xa4\x69\x64\xc2\xb4\x74\x90\x52\x16\xbc\x89\xf4\x73\x6f\x69\xae\xbd\xe8\x4d\x25\xcd\x39\x25\x3d\xef\x02\x46\x27\x4d\x8a\x91\xc2\x99\x96\x44\xba\x74\x8f\x69\xd3\x60\xeb\xc8\xb9\x32\x64\xde\xae\xc1\x00\x38\x82\x57\x94\xaa\xd3\xb0\x68\x94\xe3\x9e\xc9\x65\xa5\x0f\xc9\x05\x28\x8b\x21\x4e\xda\xfd\x4c\x9e\xae\xda\x74\xbc\xda\x7a\xd0\x10\xf6\xf0\x8b\x85\xd3\xf1\xbc\x01\xa3\x82\x41\x79\x1d\xc5\xdc\x68\x05\x59\x92\x0a\x21\x1b\x43\x50\x54\xbb\x2d\xa6\xfa\xdc\xa5\xcd\xd3\x82\x26\xc7\xa5\x4e\x05\x91\x9b\xda\x85\x31\x32\xd0\x76\x0d\x68\xde\x8f\x58\x9f\x19\x20\xf3\xc0\x86\x22\x08\x16\x14\xec\x2e\x60\x3e\x7f\x60\x3d\xa9\x6c\xe4\xe2\x01\x7f\x84\xe3\x55\xdd\xa5\xd7\xd9\xc1\x61\xb7\xdc\x0c\x80\xb5\x1f\xa5\x89\xe1\x9c\x57\x80\xdb\x43\x13\xab\x2b\x0b\x99\xe9\xae\xb4\x33\xd4\x49\x9c\x01\x0b\xa9\xfd\x76\x6f\x8e\xdd\xd6\xfc\xeb\x32\x96\x14\xc3\x09\xe6\xcd\xe0\xb1\x7d\xbc\x50\x92\x22\xe2\x9d\xa4\xf6\xcc\x66\x7d\x06\xb5\x87\xcf\x3a\x54\x73\x59\x6b\xff\x1d\x2a\x92\x66\xfa\xb3\xcc\x66\x79\x75\xdb\x94\x03\xdd\x50\xfc\xa1\xd8\xca\x44\xd9\x81\xa7\x1e\x83\x80\x32\xcc\x64\x61\x84\x86\x60\x64\xa6\x68\xfa\xfd\x06\xe3\x76\x66\xa7\x74\x40\x51\x38\xe0\x99\x9b\x67\x35\x18\x0d\xa7\xdf\x4f\xa4\x31\x72\x57\x9c\x59\x0c\x49\xd3\xc5\xb7\x17\x0a\x02\x43\x5b\x42\x8b\xb5\x6a\xd5\xff\x25\x16\x8c\x18\x20\xeb\x32\x7a\x2f\xa9\x73\x09\x04\x14\x75\xa3\x82\x09\xed\x02\x11\x11\x4b\x4f\x84\x4d\x4b\xbb\xbc\xac\xe0\xe2\xd5\x25\x2b\xa8\xe3\xda\x6f\x63\x23\x6b\x4f\xdd\x07\x74\xa1\x52\x4f\x73\xea\x1b\x33\x6a\x08\xfc\x32\xea\xb4\x64\xc5\x13\x0c\xba\x02\x79\x21\x06\x05\xa2\xc2\x69\xa1\xbb\xac\x38\xa8\xd1\xa6\x41\x35\x88\x77\x06\x45\x12\xd5\x41\x6b\x95\x2b\x56\x5a\x83\xcd\x19\x72\x38\x05\xc3\xc7\x46\x32\x20\xf7\xcf\x73\x68\xbf\xb1\x92\x28\x5b\xfb\xec\xe3\x05\x18\xd0\xa4\x7a\x28\x69\x52\xdd\x6b\x6a\x93\x90\xf9\x0c\xb0\x18\xca\x8e\x34\xd7\x4f\x78\x01\xc6\xac\xf1\x29\x7f\xbc\xad\x7d\xcd\x0b\x09\x99\xb9\xe1\xd2\x43\xd5\x41\x68\x3d\x5b\x6f\xc6\x54\xfa\xbe\xb2\xbb\x5f\x19\xd0\x7d\x28\xe9\x7c\xbf\x72\x83\x15\x7b\x72\xf9\x63\xc9\x4d\x50\x09\x92\xce\x7b\x63\x93\x46\xd0\x04\xe8\x6d\xd5\xfc\xfb\xc6\x10\xb3\xf0\x3a\x66\x73\x53\x7b\x1f\x2b\x7f\xa5\xcf\x21\x9d\xbc\x5d\xd8\xf2\x61\x94\x33\xaa\x0f\x79\xa0\x69\xfd\xde\xbc\x08\xe1\xac\x02\x06\x51\x02\x13\x48\xe3\x78\x31\x62\x32\x75\x4d\x89\xf2\x8e\xf4\xca\x70\x67\x57\xdf\xf8\x73\x0d\xa5\xcf\x0a\xa1\x1a\xae\x4c\x28\x8f\x55\x62\x42\xa7\x22\x63\x14\xb3\x9a\xdd\x24\x32\x87\x14\x58\x89\x5c\xbd\xb6\xcd\xef\x66\xb4\x4a\x49\xde\xaf\x3d\x90\x41\x40\x75\xa9\x2a\x39\x23\xb7\x37\xac\x44\x9b\x00\x1b\x67\x88\x6f\x6e\x6d\x5e\x07\xee\x9d\x80\x96\xde\x70\xa1\xd3\x5c\xbd\x23\x6b\x46\xe3\x06\x07\xd8\xff\x74\x60\xb1\xea\x9d\x25\xa4\xf1\x90\x85\x30\x09\xdd\x1a\xbd\x85\xd3\x07\x7a\xb7\xac\xb1\xa0\x53\xde\xe3\x15\xba\x16\x57\x1f\x4e\x69\xdf\x26\x8d\x42\xbf\xba\x2b\x97\xbe\x45\x0d\x84\xd7\x5a\x60\xb1\x2e\x4c\x57\x09\x20\x08\x9e\x30\xaf\x09\x9b\xbb\x34\xdc\x88\xa8\xe0\xfc\xde\x18\xf8\x72\x8c\x4b\x2c\x1f\xf1\x9e\xa8\xaf\x09\x19\x8e\xdb\x10\x21\x5c\x94\xd9\x83\x32\xba\x57\x0f\xd0\x77\x65\x9a\x3a\xa9\x5c\x90\xa2\xef\x79\xc1\x24\xe1\xb6\x5d\x5e\x73\xa6\xa7\x68\x64\x19\xd4\x6a\x98\x70\x14\xd8\x1e\x5e\x6a\xc8\xda\x55\x55\xb3\x3f\xb0\x15\xe3\xc9\xce\x99\x43\x32\x69\x02\x0e\x2f\xee\x81\x5e\xe0\x92\xc0\xb9\xcd\xda\xc4\x00\x29\x4f\x6f\xc4\xfa\x36\xb1\x44\xe7\x73\xfc\x52\x49\xcb\xcf\xa0\xd4\x7a\x8c\x8f\x43\x55\xbd\x23\xa4\xf4\x70\xa3\x78\x4f\x18\xc6\xde\xc2\xdc\xa0\x2d\xa2\x9b\x4f\xd5\x2e\x96\xe0\xf4\x84\xfe\xaf\x1a\x19\x4b\x08\x12\x85\x04\x2e\x69\x36\x3a\xde\x28\xb1\x1b\x03\x1a\x2c\x47\xb6\x5c\xe5\x5f\x7b\xb4\x93\x4e\x1b\x9a\x6d\x6a\xe6\xaa\x7c\xdf\x1a\x3c\xb3\xaa\x05\x15\x26\xeb\x11\x7f\x73\xe4\x4c\xac\x50\x09\xf5\x88\x8f\xff\x80\x64\x23\x84\x50\xca\x1f\xd6\xb0\x3f\xc0\x4b\x51\x0d\xaa\xb0\x77\x4a\x86\xdd\x45\x5f\x04\x99\x4a\x9d\x13\x26\x6c\xf4\x88\x84\x61\x88\xa8\x78\x97\xa3\x2c\xed\x73\xc0\xf9\xc6\x39\x61\x7d\xcb\x59\x84\x4c\x6a\x9d\x9e\xbb\x69\xe4\xc7\x6e\xaa\xcc\xc7\xb3\x08\xfc\xc4\xbd\x9c\xdb\x1f\x34\x06\xae\x5c\xde\xfd\x31\x13\x49\x05\x9b\x7b\x65\x3b\x8c\x2d\xca\xde\x85\x46\xb4\xeb\x6f\x86\x9f\x36\x8b\x49\x50\x43\x29\xe1\x45\xd7\xdb\xa0\x6f\x6c\x8f\x91\xcb\x59\xd9\x5b\xa0\xd8\x64\x3b\x50\x8f\x12\x31\x70\x60\xe2\x07\xef\x1d\x5a\xdf\x20\x84\xfa\xc3\xf1\xfe\xde\xeb\x05\xd4\x32\x43\x1a\x64\xc2\x5b\x5e\x33\x59\x36\xf6\x79\x2b\x40\x3d\x60\x8c\x6b\x8c\xea\x32\x95\xd9\x89\x71\x09\xa7\xe0\xd2\xa8\x1e\x90\x0c\x8f\x18\xb1\xba\x86\x5d\x34\x3b\xe8\x05\x7c\x58\x71\x0a\xdd\x10\x6b\xab\x54\x2a\x35\xdd\x04\x83\xae\x21\x49\x7e\x7f\x42\x72\x52\x33\xc5\x8e\x71\xa0\xc1\x0c\x2d\x54\xe5\x88\xaa\x07\x8a\xbb\x30\x5c\x26\x8d\x6b\xc6\x0c\xb7\x38\x43\x9b\x8c\xd9\x3b\xe3\x85\xc1\x35\x79\xf6\x56\x44\xe2\x4e\x25\xf7\x74\x67\xc0\x28\x75\x93\x20\x40\xc8\x61\xa5\x58\x67\x26\xb3\x48\x27\x8b\xc2\x4f\x9d\x12\x36\x8c\xae\x98\x4a\x5b\x53\x8d\x51\xae\xec\x1b\x5b\x8e\x09\x0f\x66\x2d\x29\x8b\x66\x28\xda\xdc\x79\x65\x14\xb2\x57\xb2\x3e\x03\x46\xfc\x89\x13\xa6\x43\x7f\x8a\x17\xd1\x7e\x93\x1a\x8c\xd6\x95\xc3\x78\x88\xbb\x78\x44\xed\x17\x10\x3d\x11\xae\xf5\xe6\x36\x3c\x28\x8b\x26\x2f\x84\xcc\x1d\xd2\x10\xd3\x3b\xfa\x4f\xfc\x4d\x96\xc9\x3e\xe6\xaf\x9e\xc6\xc2\x35\x63\xbb\xc3\x28\xa7\x09\x7c\x40\x56\x77\x17\xa8\xb8\x99\x9b\xec\xb3\x5e\xea\x11\x13\x27\xf6\xea\xb6\x62\xc7\x6c\x40\x43\xbd\xf4\x96\xfe\xfd\xe2\xb6\xa8\x11\x82\x7b\x7f\x44\x03\x79\xc6\x80\x36\xbd\xfc\xd4\x63\x95\x58\xfb\x44\xe0\xee\x3d\xe2\x9c\x48\x52\x9b\x44\xc6\x75\x70\x01\xeb\xbc\x16\xa4\x88\x58\xf6\x15\x63\x06\xe7\x2e\x63\x09\x47\x2e\x65\x03\x43\x70\x2e\xd4\x8a\x80\x12\x54\xb3\x61\xb9\x77\x11\x6a\x0f\xa4\x78\x8d\x19\xa0\xdd\xdd\x32\xa4\x85\xe2\x5a\xc3\xd4\xce\x1f\xc1\x2e\x17\x01\x0d\x22\x26\x64\xbc\xe2\x36\x22\x4b\x0c\x07\x58\x59\x8a\x2a\x7e\x48\x17\xbb\x9f\x0e\xad\x45\x93\xbc\x10\x2f\x55\xde\x36\x8f\x25\x03\xe6\x00\x6b\x78\x67\x94\xa5\xa0\x32\xf8\x03\xb3\x5d\xb8\x7b\x66\x63\xda\xb0\x3d\xe6\xc7\x75\x0a\x72\x94\x9b\x32\x30\xd6\x39\x61\xc5\x3d\x5d\x16\x33\xec\x4a\x8c\xe5\xd6\x55\x25\x81\xbb\x10\x86\xbf\xfb\x6d\x7e\x8e\x45\x3e\xce\xa9\x72\x77\xca\x98\xde\x3d\x89\x9d\x5c\xdf\x95\x03\x3e\x7d\xc2\xb0\x00\x9f\x94\xbd\xa8\xbc\x4c\x01\x0f\xde\xe9\xef\xe6\x80\x64\xd7\xfc\xf8\x10\x32\xa1\x73\x87\x7d\x51\x46\x9f\x7d\x4a\x7a\x5f\xf3\xe7\x42\x6a\x21\xc2\x74\x88\xe8\xa9\x73\xf5\x76\x5b\x69\x35\x37\x07\x44\xb6\x4d\xcc\xf5\x1f\x08\xda\x66\x59\xbb\x83\x75\x1e\x76\x0f\x7f\xb1\x11\x2b\x30\xfb\x38\x98\x7c\x13\x16\x7b\xeb\x4b\xd5\x9f\xc4\xc5\x43\x09\x1f\xdc\xfa\x50\x56\xfd\x1c\x85\x01\x89\xd4\x25\x7b\x7c\x15\xfb\xf1\xc8\xd9\x97\x26\xa9\x89\x4b\xb7\xa1\xd2\x27\x18\xc6\x2d\x00\x6f\x67\xa3\x4a\xa2\xf8\x7d\x8a\x4f\x38\x60\x5f\x32\xbd\xad\xc3\x1a\x92\x85\xd4\x90\x0c\xc9\x90\x20\xf7\xe8\x08\xec\xf1\x7c\xc3\xe2\x8b\x6a\x0d\x03\xa3\x9b\xfd\x6b\x1f\x0a\xe7\xc6\xff\x23\x55\xca\x8f\x76\xb0\x52\xea\x1d\xf5\x54\x0b\x5a\x93\x31\xf1\xca\x7a\xe7\xe1\x8d\xc3\x9c\xe3\x50\x0a\x7b\x59\xb7\x37\x64\xd1\x6a\x59\x82\x81\x1f\x09\x22\x67\x02\xb2\x18\xd6\xce\x64\x4f\x77\xfe\x05\x8c\xa6\x37\x84\x7d\xd4\xce\xbe\x0a\x2b\x70\x89\x2e\x20\xed\x32\xdb\xe4\xf5\xa7\x3c\xdb\x29\xf2\x11\x99\x0d\xb5\xd3\xa2\x83\x23\x5f\xf8\x05\xd3\xfb\xa7\x30\xfa\xfa\xac\x76\xaa\x1b\xe6\xf4\x4a\x56\x4a\x18\xf6\x44\xb0\xea\x96\x95\xb4\x7a\x12\xaf\x93\xf9\xb4\xcd\xd6\x80\x0a\x42\xf7\x9f\xf6\x54\x6a\xef\xb4\x13\x7a\xf8\xab\x6c\x38\xc9\x45\x60\xf8\x1b\x82\xe3\x1a\x11\xc1\x5a\xe3\x84\x61\x2d\xd8\x54\x37\x60\xd1\xb5\x7d\x0d\x25\x5c\x67\xec\x2e\x3e\x0f\xc8\x1a\x63\x0a\xaf\x53\xe1\x79\x0d\x96\x1a\x8c\x53\x8b\xc5\xe0\xfb\x41\x00\xf0\x59\xc0\x39\x61\x56\x35\x21\x31\xdc\x90\x1b\x97\xb0\x78\xfd\x3b\x91\xf4\x0c\x79\xac\x25\xee\xb2\xb6\x73\x03\x19\xe3\x9b\x0a\x68\x72\x7b\x82\x88\x86\x50\x10\x8d\x14\x2c\xb5\x42\xad\xc7\x54\x4d\x78\x0d\xf1\xfa\x91\x09\x48\x61\xf0\xb9\x7d\x63\x14\xf1\x75\xc0\xa4\x14\x79\xec\xc4\xb4\x52\x5d\xb1\x12\xc9\xe7\xef\x81\xa1\xa0\x74\xb2\xbf\xd1\x18\x89\xd3\x84\x6f\x3e\x8a\x78\x6f\x4f\x02\x86\xb8\xf8\x98\x7d\x29\x97\xd2\x5a\xf6\x37\x82\x4b\xd6\xa4\xf9\x03\x13\xe8\xb9\x46\xe6\x90\x7a\x93\xfa\x04\x5e\xe7\x86\xb8\x1e\x77\x29\x05\x64\x58\x0d\x4a\x34\x3c\x6b\xd1\x68\x2a\xcb\xb6\x6a\x88\xf2\x7d\x2d\xdb\xd2\xab\x01\xdf\xe6\xee\xd3\xb7\x3c\x2c\xaa\x37\xb5\x15\xbd\x34\xe9\xa0\x73\x84\x0c\xdb\x67\xcd\xe3\x32\x1c\x3b\x3c\x67\xa4\xe8\x8c\x55\x72\x49\x93\xb6\x9d\x78\x87\x41\x1d\x71\xd1\x37\x9b\x95\xdb\x83\x99\x50\x9c\x73\x63\x6f\x69\xd8\xbc\xfb\x0c\x48\x08\x71\xdd\x78\x7b\xc1\x1e\x34\x8b\xbb\xbb\xda\xc1\x9a\x31\x03\x97\x83\x1b\x13\xb5\xb9\x67\xcc\x52\x63\x74\x1c\x4f\x45\x39\x9e\x8c\xac\x1c\x53\x98\x4c\xa9\x44\x24\x5d\x00\x86\x3f\x1d\x90\xd9\xbb\xa0\x22\x16\xf8\x03\x5a\xd7\x1d\x3a\xb4\x32\xa0\x18\x36\x79\x2c\x86\x7d\xff\x3d\x37\xc5\xe4\x96\x4c\x0f\xa9\x8c\xe8\x7a\x6e\x7e\x08\x85\x09\x10\x23\x7c\xd0\xb4\x04\x81\xc6\xab\xc7\xb2\xe9\x02\xd8\x16\x5b\xce\x5c\x2a\x52\x9f\xee\x0c\xb0\x27\xe2\x3c\xda\x19\x18\xbb\x03\x63\xb6\x16\x3e\x3d\x63\x53\x15\xea\xe3\x23\x0a\xad\x1a\x45\xf9\xd7\x42\x15\xfe\x32\x98\xa9\x29\x5a\x1b\xf6\x2e\x15\xe6\x67\x44\x85\xf9\xee\x8a\xd1\xf6\x11\xd1\x38\x38\x46\x5a\x32\x87\xd5\x56\x64\x9b\x69\x46\x0c\xa9\xd5\x1d\x03\x72\x2d\x1f\xd2\x8a\x4d\x7b\x81\xc8\x91\x16\xd9\x07\x5f\x1a\x4b\xc3\x70\x51\x5f\x32\x1d\xe7\x50\x93\xad\x0d\x00\xd1\x27\x67\x61\x87\x9f\x3c\x27\xab\x7b\xba\x0f\x5f\xa7\xd1\x9e\xd4\x50\x16\xb8\xfa\x92\x3d\x6f\x89\xf8\xc1\x16\xda\xe6\xd3\x0b\x44\x21\x4e\xd4\x18\x8a\x6f\x6c\x1b\x90\x41\xc0\xcc\xd5\x1b\x05\x69\x26\x44\xe7\x3d\x13\xaf\x1b\xfb\x0d\xa2\x7a\x6b\xa7\xcc\xd8\x6d\x84\x89\x3c\x7c\xef\xe7\x25\xde\x3c\x6d\x93\xd0\x85\xd9\x56\x1a\xdf\x1f\xe9\x2b\x49\x9d\x16\x89\x60\x07\x07\xb2\x3b\x71\xf7\x59\xd0\x95\xfd\x21\x54\xd8\x18\x8b\x4e\x33\x8d\xf8\x4d\xb3\xe2\xf9\xa5\x7c\xcc\xc4\x15\x91\xf3\x9c\xc2\x09\xfe\x30\x85\x0e\x57\xdf\x21\xbb\x2e\x2a\x00\x2e\x1f\x0b\xd5\xaf\xdd\x14\x9f\x46\xf9\xf7\x2a\x83\x36\x73\xd4\x41\xf6\xc8\x82\x85\x47\xa4\x16\x3c\x86\x22\xda\x9b\x07\xd4\x63\x3e\x6f\xf9\x7a\xf6\x80\x42\xf2\x25\x43\x17\x73\x44\x9b\x32\xc5\x3b\xb4\x32\xd6\xc4\x10\xa5\xf3\x46\xd8\xc2\x9b\x17\x9d\x17\xf0\x1d\xfb\xd0\xa4\xa9\x4f\x67\xc9\x74\xbd\x57\xba\x4e\xa4\x8a\xd3\xaf\x93\x86\xb6\x77\xff\x89\xbf\xea\xaa\x60\x26\x91\x00\x88\x0a\xbe\x42\xc4\xc6\x86\x55\x8f\xf7\xd5\x4d\xfc\x8d\xbc\x16\xab\x9f\xc5\x5e\x98\xda\xd7\xe0\xc1\x01\xcc\xbe\xc1\xd5\x7d\x11\x1c\xd1\xf4\xc0\x44\x4c\x64\x6e\x9b\x40\x14\xde\x18\x7f\x8c\xc1\xed\xc1\x9c\xe0\x1a\x77\x39\x22\xc4\x8f\x03\xee\x7d\x90\x29\x6b\xa1\x18\xb7\x0f\x97\xa4\x9f\x15\x7f\x1f\x92\xbf\x98\x12\x8c\xa9\xca\xa9\x2f\x4e\xe1\x5e\xee\xa3\x2f\x7d\xc2\x87\xa6\xfc\xb0\xb4\x14\x82\x51\x75\x6d\x28\x97\x31\xc8\x6d\x28\x09\x18\x6d\x8a\x7f\x82\x95\x07\xd4\xc6\x31\x34\xee\x05\xc4\xc1\x15\x05\x71\x5f\xcb\xdc\x22\x04\x34\x64\xf4\x47\x5c\x12\x04\x7f\xe4\x22\x0f\xf4\x10\xb6\xc4\x0b\x98\x5a\xe4\x75\x2b\x92\x51\x7e\xd1\xa5\xa0\xf0\xc0\x2a\x20\x49\x77\xa8\x7d\x09\x51\x35\xb8\xda\x03\xde\xcd\x9b\x8c\x20\xb7\x66\xcc\x41\x28\x32\x76\x16\x1c\xb2\x17\x7f\xf9\xec\x1d\x8a\x6f\x6b\xaf\x98\x09\x37\x9f\xe0\xec\x17\x85\xac\x18\x98\x22\xb5\xf0\x06\x60\xef\x26\xcc\x70\xd5\x6e\xff\x48\xdc\x30\x5c\xdc\x6d\x13\xbc\x13\x7d\xfe\x99\x0b\xd6\x72\xf9\xc9\x3b\xb1\x69\x38\x7c\x95\x34\x66\x84\x64\x65\xed\xbf\x99\xaa\x65\xf9\x73\x95\x1e\xca\xcb\xdb\xd2\xa3\xac\xb7\x4b\x9b\x20\x30\x85\xc4\x15\xa7\x25\xa0\x0c\x5e\x37\x50\xe2\x8c\xc8\x32\x0a\x0c\xfa\x39\x72\xb8\xab\xe2\x47\x15\xaa\x5c\x2f\x6e\xe5\x65\xe3\xf5\x50\x10\x5e\xda\xc6\x8e\x61\x6d\x8d\xbd\x3b\xa8\x17\x6a\x57\x3a\xdb\xe7\x76\x4a\x0f\x6b\x6d\x6e\x24\x68\x64\xfc\x36\x76\xbf\x57\x66\x9d\x5c\x54\x03\x4b\xa0\x9c\x17\x2b\x5f\x10\x1c\x66\x85\x10\x7f\x34\x4c\x12\x45\xea\xca\x16\x7a\x5d\xfb\x9d\xfc\xa1\x32\x29\x13\x8e\x5d\x26\x97\x11\xb3\x61\x34\x41\xbb\x64\x92\x82\x99\xda\xf3\xea\x8f\x2d\xbe\x81\x70\x2f\x48\xb8\x6e\x1b\x32\xe2\x11\x5e\x87\xf9\xb9\xa0\xc2\x57\xb4\xc2\x77\x21\x59\xef\xbc\x61\x72\xcb\xef\x4f\x65\xd1\xc0\x4e\x88\xb5\x28\x59\xf9\xe8\x1a\xc7\xd3\x2d\xd2\x53\xb5\x8a\xfd\xb3\x13\x23\xb8\xf5\x8a\x5a\xc0\x0f\x66\xfe\x19\x7c\xdf\x22\xff\xff\xf4\xce\xec\xd9\xdc\xd4\x06\x76\x25\xa5\x8b\xdc\xfc\x12\x26\xcc\xdd\xd6\x33\x00\x10\xc2\x5d\x20\x79\xae\x95\x26\x1b\x79\x27\xb7\xbd\xc0\x3d\xc4\xe7\x4f\x99\xfd\xf1\xb1\xa2\x83\x65\xba\xc1\x23\x5d\xde\x5e\x09\x34\xa9\x01\xdf\x50\x0a\x50\xd2\xcb\xe5\xe6\x96\x58\x01\x1b\xd2\x29\xa5\x0d\x82\x9a\xe1\x0c\xe5\x43\xa4\x2a\xbf\x3a\x9c\x97\x8a\xa7\x95\x6b\x3c\x67\xdf\xe2\xa3\x46\x2a\x71\xbc\xf9\x19\xc8\x89\x2a\x65\x95\xe8\xb4\x33\xda\xb8\x14\x4b\x03\x84\xe3\xf9\x4b\xbc\xad\x8f\xce\x41\x53\x5b\xee\xda\xae\xa1\xd3\xa3\x27\x24\x5f\x41\xc5\x5d\x43\x32\x91\x75\xd4\xd0\x46\x41\x8b\x96\xea\x53\x85\x28\x9c\xe3\xf2\xe7\x6d\x7b\xe6\x1a\x2b\xf8\xec\x04\xce\x46\x71\x3d\xc0\xfc\xc4\xea\xac\x51\x25\x4d\xb1\x5d\x67\xac\xdd\x27\x1d\x48\x5c\xbc\x0b\x49\xa6\xff\xcf\xd5\x51\xab\x68\xdc\xe7\x1b\x55\xc6\x5c\x72\xdf\x44\xd7\xb7\x10\x6f\xfd\x6b\x86\x2a\x79\x11\xb7\xb7\x51\x45\x5f\xaf\x08\x5a\x40\x19\xa9\xac\x81\x71\x43\xe6\x97\x7a\x29\xb3\x03\xa7\x3f\x7d\x9c\x32\xf7\x54\x24\xde\xf0\x53\x00\x66\x20\xe3\x62\xd8\x93\xa9\x9b\x2b\x6b\x93\x79\x99\x6d\xcc\x88\x41\xef\xdd\x29\x8d\xf8\x73\xdc\x6f\x58\xe1\x1e\x1e\x7e\x2c\xcd\xaa\x9b\xda\xab\x4b\x8a\xc9\x9b\x07\xda\xa8\xc9\x03\xed\x9d\x72\x69\x93\x00\x30\x79\x3f\x0c\x3f\xb5\x51\x7f\xba\xb3\x99\x6e\x35\x59\x86\xae\x49\x2f\x98\x37\xa0\x30\x93\x1d\xa9\xa9\xf3\x56\x4d\x2c\x98\xdf\x30\x1b\xdb\xd5\xc6\xc0\x24\x0b\x6a\x62\xaf\xa8\xba\x73\x0a\xa2\xe6\xef\xca\x99\x74\x87\x55\x0c\x08\xca\xa4\x87\x63\x50\xc1\xdf\xa8\x89\x78\x09\xb7\x77\xa5\xbe\x4a\x0e\xfc\x4a\xa0\x29\xfd\xf8\xc1\x59\x19\x43\x94\xbe\xc1\xfe\x7c\xae\xc3\x60\x90\xab\x72\x30\x3c\x97\x20\x56\x09\x61\x02\xb8\x2c\xeb\xef\x5d\x98\x57\xdc\x8a\x51\xab\x06\x63\xfb\x3d\x56\xe5\x5f\xb1\xf6\x9d\x8e\x68\x9b\xd1\x67\xf7\xf4\x1e\xbc\xf2\x8e\xe3\x0e\xe7\x0f\x65\xa3\x04\xc5\x7c\x93\xae\x7b\xae\xdd\x97\xab\xab\x3b\x23\x52\x4b\x31\xb7\x84\xb0\x1a\x4e\xc8\x1c\x0b\x14\x32\xf4\x56\x62\x3f\x68\x6b\xb5\xc2\xb1\xea\x2b\xc7\x9a\xe0\xcf\xb4\x5b\xcd\x68\x98\xc6\x9c\x3f\xbc\x8d\x4f\x3e\x60\x5b\x70\x4a\xed\xa0\x3e\x15\x03\xda\x96\x7b\xe5\x96\x9d\x22\x41\xd8\x49\x86\xe2\x15\xc4\xca\x67\x1e\x7e\x9e\x19\xca\x8a\x19\xe1\xe7\x93\xbb\x03\xb8\x32\xd6\xd7\xa5\x5e\xf6\xe4\x07\xb1\x41\xca\x27\x88\xf0\xfc\x63\xdd\xcf\x11\x26\x32\xa5\x08\xb9\xc0\xc8\x7d\x99\x3d\xfc\x49\x08\x5c\xc3\xde\x76\xb7\xca\x5c\xc8\x58\x43\x92\xdf\xf1\xb7\x0a\x7f\xd4\x48\x28\x4a\x60\xc8\xe4\xc4\x10\x70\x7f\xaf\xac\xfc\xbd\x28\xda\xf4\x8e\x2b\xc5\x66\x54\x1b\x52\xa4\xbe\x02\x44\x78\xf1\x36\x5a\xe3\xa5\x9d\x9b\x30\xbd\x90\x9e\xd7\x69\x54\xbe\x0f\x78\xbd\x62\x27\x31\x60\xf7\x09\x12\xad\x0f\xfd\xf6\x84\x8e\x77\xd8\xf7\xee\x0b\x0c\xe9\xa7\x37\xd8\xe8\x4b\x68\xf9\x67\xd4\xac\x8b\x3e\x16\x30\x2c\x78\xcd\x28\x75\x2a\x6f\xdd\x1a\x02\xcb\x1a\x35\xe2\x70\x3c\x9f\x41\x16\x7c\x98\x0f\x8a\x9b\x15\x48\x83\xf6\xcc\xaf\xac\xb5\xce\x7b\xbf\xfe\xf7\xff\x09\x00\x00\xff\xff\x2a\x55\x00\x86\x40\x70\x00\x00") + +func uiJsLibsMithriljs020MithrilMinJsMapBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsMithriljs020MithrilMinJsMap, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js.map", + ) +} + +func uiJsLibsMithriljs020MithrilMinJsMap() (*asset, error) { + bytes, err := uiJsLibsMithriljs020MithrilMinJsMapBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/mithriljs/0.2.0/mithril.min.js.map", size: 28736, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiJsLibsNvd3171NvD3MinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\xf7\x76\xe3\x48\x92\x2f\xfc\xff\x3e\x85\xc4\x99\xd5\x02\xc5\x24\x8b\x54\x55\xf5\xcc\x90\x0d\xf1\xc8\x95\x77\xd3\xd5\x76\x74\x74\xfa\x02\x20\xe8\x49\x50\xf4\x54\x89\x0f\xf5\xbd\xc2\xf7\x64\x37\x22\x0d\x90\x09\x64\x02\xa0\x4a\xea\xde\xdd\x3b\xa7\x4f\x97\x88\x44\x7a\xa4\x09\xf3\x8b\x88\xa7\x4f\x0e\x26\xab\xf6\xb3\x83\x55\x30\x9b\xf7\xc3\xc9\x41\xbd\xfa\xf7\x6a\xfd\xc0\xea\x2d\x16\xd3\x79\xe3\xe9\xd3\x6e\x7f\xd1\x5b\x7a\x55\x3f\x1c\x3f\x9d\x84\xab\xe5\xfc\x29\x66\xb6\x0f\x8e\x6b\xf5\x17\x95\xda\xb3\xca\xf1\xb3\x83\x27\x4f\xff\xe3\xb0\xb3\x9c\xf8\x0b\x28\x6d\xd9\x5f\x57\xee\xec\xc0\x75\xbe\xee\x9a\x6e\xb5\x1d\xac\x9c\xc3\x3a\x71\xab\x8b\x30\x1c\x2d\xfa\x53\x27\xfa\x75\x77\xf7\x75\x07\xe9\xcb\x45\x7f\x34\x77\xf8\x5f\x9e\x36\x0e\xdb\x01\x4d\x64\x3f\x78\xaa\xdf\x73\x67\x8b\xb9\x43\x7f\x77\x67\xee\xb4\x37\x77\xae\xae\xe1\xf7\x28\xec\xf2\xd4\x76\x38\xe6\x3f\xfa\xf3\xa9\xbb\xf0\x7b\x4e\xfb\x59\xf4\xdb\x2a\xcd\x82\x49\x3b\x98\xfd\x3e\x5f\x40\x3d\x25\x22\x1e\xe1\xdf\x92\x4d\x5e\xf2\xde\x57\xa7\xb3\x70\x11\x2e\xb6\xd3\xa0\xea\xf5\x27\xed\xbb\x3b\xcb\xf0\xc6\x89\xc6\xeb\xda\x5f\xfb\x1d\xab\x24\x9e\x4b\x87\x0e\x66\x0a\x3b\x07\x8b\x5e\x7f\x6e\x2f\x7a\xb3\x70\x7d\x30\x09\xd6\x07\x3f\x42\xea\xe5\x6c\x16\xce\xac\x92\xa1\xce\x83\xca\xc1\xba\xe7\x2e\x0e\xfa\xf3\x83\xc5\x6c\xdb\x9f\x74\x0f\x16\xe1\x81\x17\x1c\x78\xe1\x12\x5e\x42\xea\x24\x5c\x1c\xf8\xee\x68\xe4\x7a\xa3\xa0\x64\x37\x71\x9e\x3d\xe7\x74\x36\x73\xb7\x52\x4d\xf3\x51\xdf\x0f\xaa\x98\xcd\x72\x67\xdd\xe5\x38\x98\x2c\xe6\xa4\x6e\x13\xdf\xc1\x0e\x11\xa9\xe7\x36\x4c\x56\x20\x3f\xce\x82\xc5\x72\x36\x39\xf0\xab\xee\x74\x3a\xda\x5a\x98\xff\xa0\x3f\x81\x09\x9b\xf8\x38\xa0\xf6\xd1\x91\xdb\xc2\xc4\x86\x4b\x70\x3d\x4c\x7c\x77\x61\x15\x69\xde\xb6\xed\x5d\x93\x57\xde\x8e\xf3\xd2\x0e\xc5\x8f\x24\x90\x5e\xe1\x8c\xb5\x49\xb0\xb3\x09\x5d\x44\x47\x47\x56\xfc\x59\xab\xd0\xd9\xc4\xd7\x94\x06\xc1\x56\x44\x95\xbe\xf8\xb1\x3f\x0e\x9c\x32\xd6\x75\xe1\x2e\x78\x65\x9a\x4a\x70\x0d\x68\xaa\x80\x64\xb5\x02\xbe\xda\x60\x09\x2f\xdc\x11\x7d\xa5\xe6\xac\x24\xdb\x66\x05\xac\x12\x2d\x50\x4a\x15\xb7\x77\xb6\xcd\x12\xe5\xaf\x00\xab\x89\x8f\x79\x0d\x8b\x22\x5c\xe3\x4c\xcf\xc3\x51\x70\x74\xc4\x7f\x60\x01\xe5\x81\x7d\x2f\x3b\x95\x62\xf1\x14\x12\x7f\x89\x26\x6c\xa8\xe0\xc0\xdc\x44\xbc\x8e\x1d\xb1\x8e\x95\x56\x0d\x4b\x97\x6d\x7a\xcf\x31\xbc\x66\xeb\x41\xaa\x88\xf0\xdf\x76\xd3\x33\x76\x75\xc7\x57\x4c\x94\x72\x15\xfd\xaa\x8e\x82\x49\x77\xd1\xab\xd4\xaf\xe9\x76\x0f\xa6\xb3\x00\xd6\x62\x20\xef\x4a\xe2\xd9\x5f\x53\x13\xb7\x76\x67\x13\xf5\xc9\x2a\xd1\xa3\x0f\x7f\xc2\x86\x6b\x1c\xfc\x9f\x52\xd9\x2d\x97\xfe\xcf\x41\xcf\x9d\xc3\xd6\x0b\x60\xbd\x46\x95\x57\x0f\x4a\xc4\xbb\xbb\x2b\x95\x6c\x6c\x94\x2d\x9d\xb8\x41\x68\xce\x73\xe0\x75\x3d\x7a\x57\x75\xe1\xcd\x2a\x70\x0e\x6b\xf2\xb2\x93\xd7\xad\xc5\xf6\xb0\x2f\x7f\xfd\x0e\x1c\x10\x98\x08\x8b\x9f\x74\x9c\x5a\xd3\x3b\xe9\xc0\xe2\xc7\x95\xc6\x6b\xbd\x59\x06\xcb\xe0\xaa\x73\x6d\x37\x3b\xe5\xb2\xdd\x76\x82\x6a\x37\x98\x04\x33\xe8\xa1\x65\x13\xfe\xc9\xd8\x06\xf4\x5c\x7f\x18\x7d\x45\xf1\x65\x8e\x8e\xe2\x97\x56\xdb\x8e\x0e\xd3\xea\x74\x39\xef\x41\x42\x53\x6d\xa8\x3a\x9f\xe2\x86\xb6\x6a\xa4\x63\x93\xc4\x2b\xf6\x11\x5a\xf3\x80\xae\xf5\x70\xb9\xb0\x7c\xbb\x61\xa5\xc7\x0a\xff\x5a\x76\x7a\x5a\xea\x70\x28\x28\x65\x77\x9a\x3c\x89\x36\xd9\x91\xef\xb6\xdb\xaf\xb0\xd3\xca\xec\xf3\x71\xc6\xab\xa5\x76\xad\x19\xbc\xe5\x39\x5f\xc5\x7c\x35\xe4\xbc\x44\x4c\x8a\x94\x0a\xcb\x2b\x35\x68\x3a\x4d\x5e\x6a\x38\x77\x77\x22\xc1\x82\x71\x94\xe0\xc0\x0e\x3a\xfd\x49\xd0\x8e\xaf\x03\xb8\xcc\x96\x74\x87\x69\xde\x05\x9b\x69\x08\x97\x1b\x74\x8f\xe5\xaa\xf2\x04\xc7\xb5\xb5\x75\xb1\x5d\x0b\xd9\xf9\xf6\x9d\xac\x30\x27\xbd\x01\xab\xeb\x59\x7f\x11\x28\xd7\x13\xdf\x47\xab\xb0\xdf\x3e\xa8\x1d\x3a\x0e\x2f\xd4\x71\xe7\x0b\x28\xd0\xe2\x7f\x59\x41\xc8\xdf\x70\x2d\x9b\x5f\xa7\x30\x24\xb7\x7d\x9f\xba\xb0\x9c\x54\x55\x7f\xb2\x80\x19\xa7\x13\xf5\x6a\xd9\x87\x4b\x1d\x86\x23\x2f\xfa\xd2\x12\x0e\xa5\xf9\x62\xd6\xf7\x17\xa5\xa6\x48\x3f\xf0\xac\x91\xfd\x75\x54\x0d\x5c\xb8\xbd\xa3\xcc\x90\x14\x65\x18\x47\xc4\x06\x5c\xf4\xe3\x10\x2a\xa1\x77\x96\x0d\x97\x9c\x8b\x9f\x14\x76\x0d\x7c\x43\xd2\xc7\x2d\x38\x80\xc5\xd4\x84\x73\x6f\x08\xb3\xd6\xc6\xfc\xc1\x0a\xbe\x71\x35\xec\x74\x60\x0d\xfe\x0a\x59\x13\x49\xbf\x91\xd2\x7c\xd5\x85\x29\x8f\x5f\xc0\x96\xed\x06\xf8\xa7\xfb\xd1\x1d\xc3\x97\xb4\xfa\xb8\x88\x49\xf2\xbd\x3f\x72\xe7\x73\xcc\x51\xf5\xdc\x79\xf0\xb3\x3b\xaa\x8e\x19\x01\x32\x59\x55\x46\x41\x97\x12\x1c\x50\x18\x3a\x54\x83\xe3\xbf\x8f\xfd\xa9\x38\x1d\xd8\x4d\x9d\x05\x09\xf0\xd7\x22\x9c\xda\xa4\x76\x02\xd4\x47\xed\x04\x16\x56\xfb\x24\xbc\xbb\x0b\x4e\x80\x62\x8a\x5a\x9a\x05\x23\x3c\x91\x7e\xa4\x0d\x1e\x1d\xb1\xaf\xe1\x48\x5d\x55\x32\x54\xc3\x35\x2c\xf8\x2f\x3f\xbf\xba\x1c\x05\xb8\xb0\xef\xee\x06\xf4\x96\x81\xa9\x78\xa0\x1a\x61\x0c\x79\x25\xa2\x59\x31\x0d\x43\x9a\x37\x36\x5f\x3e\x2c\xeb\xcf\x21\x5d\x3a\x97\x98\x7d\x7e\x8e\x19\x80\x96\x60\x6b\x50\x10\x14\xbd\x6a\xc0\x3a\xf1\x01\x17\x00\x9e\x24\x5f\xe9\x52\xf8\xb5\xd1\x26\xf4\xc7\x6f\x0d\xbc\xf9\x3d\xbe\x3d\xe9\xfa\x7b\x0f\xeb\xcf\x9a\x2c\x47\x23\x9b\xd0\x7e\xfb\xd5\x5e\xbf\xdd\x0e\x26\x16\x7c\x92\x5d\xfc\x50\x67\xe7\xf3\xc8\xe9\xc2\x0a\x06\xea\x78\x81\xe7\xa3\xda\xde\x38\x5c\x05\x9a\x06\xc9\x14\x3b\xfe\x2b\x7c\xfc\x65\xd0\x18\x41\xf3\xa5\xb6\x37\xf2\xe1\x24\x1d\x96\xe4\x29\xc2\xed\x7c\x74\x14\xd5\x78\xc1\xf3\x14\xaa\x30\xb7\xb6\xf3\x82\x55\xed\x70\x8c\x13\xac\x66\x0e\x25\xfd\x05\xdf\x43\xa1\x03\x0b\xf0\x1f\xdf\xd5\xc8\xd4\x81\x6f\xf6\xbc\x56\x23\x37\xce\x84\x67\x39\x85\xdb\xbc\xd4\x85\xef\x53\x59\xc3\x39\x8c\x7f\xa5\x1d\x8e\x93\xfb\xde\xdd\x06\xb3\x92\x5d\x6d\xbb\x0b\xd7\xba\x1a\x5d\xdb\x64\xe6\xdc\x00\x99\xb4\xc0\xf3\x11\x6f\x7c\xbc\x13\x4a\x5d\xc8\xe1\x2e\x16\x40\x11\xd3\x6f\x0f\x44\xf9\x01\xaf\xf2\xc0\x58\x65\x73\x96\x51\x5c\x2d\x15\x7d\x6a\x20\xf0\x07\xb8\xe3\x28\xcd\xb7\x08\x97\x7e\x0f\x3f\x5b\x89\x8c\x6d\x9a\x32\x16\x1f\x12\x52\x08\xac\x80\x38\x11\x56\x93\x9c\x16\x7d\x43\x51\x32\x7a\x82\xe5\xd5\x15\xad\x39\xb8\xb0\xd2\xeb\x2d\x3e\xef\x7c\xd8\x7d\x78\x13\xc5\x45\x8e\x8e\xa4\x07\x3e\xa6\x4d\xbd\x64\xc3\xd7\xf5\xf1\x66\x89\x8f\xe7\x04\x9b\xe5\xc1\xac\xf2\xaf\x56\xaa\x1a\x47\x2f\x7f\xb5\x11\x4b\xa1\x1f\x06\x3b\x7a\xe8\xf8\xad\x2b\xce\x7f\x55\x3f\xba\x1f\x17\xe1\xbf\x82\x59\x08\x7d\xbc\x6e\xc0\x5d\xfb\x05\xce\xe4\x49\x17\xa9\xb4\xe4\xb7\xe3\xf5\xa4\xe6\xbf\x2b\xce\xf7\xe8\x25\x0c\x84\x68\xae\x10\x77\x17\x65\x38\xce\xc9\xb0\x85\x1a\xa6\xd1\x03\xe4\xae\xe1\x84\x07\x9b\x3e\x50\x50\x30\xcd\x74\x0f\x22\x2d\xbd\xb3\xf9\x6a\xf6\x23\xe6\x51\xb0\x9b\x40\x6a\xf9\xd5\xf6\x12\xae\x7d\x6c\x04\xbe\x27\xec\xf1\xe0\x02\xce\x9f\x2d\x3e\xfc\xde\x9f\xbf\x91\x56\x1b\xae\x34\x3c\x0a\x92\x07\x41\x9b\x7d\x5a\xfe\x85\x3b\xce\x57\x3c\xb3\x1b\x35\x02\x07\x76\xa3\xb6\x23\x5d\xba\x87\x80\x8e\x00\xd2\x08\x26\xc0\x85\xe9\x22\x09\x1e\x34\x79\x74\xc0\x9c\x25\x4e\xaf\x38\xe5\x9c\x2d\xae\x52\xe2\x70\x80\xc5\xcc\x2f\x34\xda\x8b\xa1\x53\x3a\xa5\xbd\xfe\xf5\x93\x37\x80\x8f\x5c\xea\x4f\x38\x79\x20\x0e\x48\x2f\xe6\x87\x7b\x30\x6d\x82\x13\xf7\xe1\xf7\x18\x4e\xde\xfe\x44\x77\xc1\x27\x49\xed\x96\x45\xef\x25\x47\x47\x8d\x20\x4f\x3f\x6d\xd1\x7f\x1b\x34\x17\x61\xb7\x99\x21\x33\xbe\x6a\xb1\x3f\x0d\x7e\xed\x79\x76\xa3\xb3\x83\xfe\xac\xfb\xed\x45\xaf\x58\x77\xe0\x8a\xc7\x62\x6d\x2c\xd6\x0b\xfa\xdd\xde\xa2\x58\xb9\x80\x95\x0b\xb0\xdc\xe6\x0b\x7e\xac\x62\xe5\xba\xac\x5c\x17\xcb\xcd\x7b\xe1\x5a\xb3\xaf\xb3\x8a\xf7\x59\xf1\x3e\x2d\xbe\xea\x9e\x87\x93\x85\x0b\x85\x67\xc5\x4a\x0f\x58\xe9\x01\x94\x4e\x90\x53\x67\xfd\x39\x7c\x74\x85\xef\x21\x7e\x82\xa0\x82\xab\xfe\xd0\x72\x65\x4e\x9e\x32\xed\xe2\x22\x3d\xc0\x75\xc4\xd6\x77\xb3\xed\x68\x04\x19\x7e\x4b\xd7\xc9\xea\x66\xd7\xf0\x69\xb1\x20\xc1\x76\x09\x4e\x1f\x72\x57\xa0\xbf\x1d\xdc\x02\x1e\xed\x27\xf0\x36\x81\xcd\x3e\x39\xdd\x2c\x63\x77\x63\x5d\x01\x6b\x41\xcb\x01\x37\x47\xf7\x8b\xe5\x5e\x75\x81\xbb\x41\xa1\x4a\xbc\x7e\x22\x52\xbe\x07\x27\x67\xcf\xe9\x62\x4e\xc7\xf1\xc4\x10\xba\xb4\x23\x7d\x5a\x67\x7f\x62\x5d\x75\xcb\xc8\x39\x44\x5c\x22\x9c\xff\xb4\xde\x3e\xd4\xcb\x4a\xe8\xaa\xa6\x77\x84\xd3\xb7\xc9\x07\x77\xd1\xab\xba\xde\xdc\x1a\x54\x3c\xfb\xc4\x89\x1e\x7b\xf0\xd8\xea\xe2\x47\x74\xab\xb8\xbf\x83\xf9\x82\xde\xa2\x6f\xa0\xae\x4d\xf6\x37\x60\xc7\x47\xfd\x69\x8d\x9f\x1e\xcd\x68\x1a\x81\xe1\xbb\x54\x28\x5c\x17\x58\x2d\x7a\xb8\x77\xe3\x96\xbd\x8a\x6b\x37\xdb\x27\x0e\xf2\xfd\x27\x5d\x4a\xc2\x76\x51\x76\x03\x07\x1e\x81\xa5\x6c\x22\xa5\x93\xa7\xa0\xc2\x68\xc6\x64\x36\xa3\x06\x25\x5a\x9a\x5f\x29\x43\xbb\x29\x88\x60\x18\x30\xd4\x04\xc7\x6d\x4c\xfd\xba\x90\x28\xee\x1e\xcc\x65\x0b\x89\x94\xc8\x0b\x9b\x9c\x1d\xd9\xab\x7e\xb0\x3e\x0b\x37\x25\xbb\x41\x87\x0e\x8d\x31\x6e\x99\x32\x97\x50\xfa\xa0\x24\x18\xe1\xa9\x3b\x9b\xc3\x74\x2e\x80\x8b\x9c\x2f\xb6\xa3\xc0\x2a\xd1\x23\x01\xce\xbc\x7a\xcd\x7e\xea\x5d\x1d\x5f\x37\xa7\xec\x6c\x61\x7f\x9e\xf8\x64\x4a\xcf\x25\xfa\xef\x13\x7f\xb7\xdb\x45\xe3\xf2\xd9\xb8\x0e\x27\x7c\x60\x4d\xd7\x19\xb6\x86\x8d\x76\xe8\xd3\xdd\x55\xf5\xc2\xf6\x96\xc8\x74\x8f\x1b\xdf\x6e\xed\xfe\x4a\x73\xb9\xf1\x59\x3c\x28\x95\xad\x41\x6b\xd0\x28\x6d\xb6\x15\x9e\x04\x83\xe7\xb9\xfb\xed\x12\x59\xd9\x64\x22\xfa\x0f\xdd\xc2\xfb\x4a\x3c\x62\xa7\xe9\xfd\x15\x65\x08\xa7\xae\xdf\x5f\x6c\x45\x62\x7c\x53\x43\x1f\xc8\xc1\x02\x65\x7d\xf0\xa7\x0d\xff\x23\x41\x45\x3b\x13\xb4\xad\x35\x12\x25\x90\x5f\x7d\x0e\x81\x42\x63\x73\x2f\xcd\x43\x9b\xcd\xc3\xec\xe8\xe8\x0c\x76\x1f\x4c\x3c\x17\x3b\x74\xf8\x1c\xc2\x56\x64\x84\x80\xd3\x6f\xf5\x1b\x74\x22\xe3\xd5\xa9\xa5\x3c\x7c\x2b\x12\x3e\x5a\x28\xc2\x81\xc5\x10\xc2\xa1\x04\xc7\xd9\xeb\x1f\x3f\xbc\x87\x5d\x49\x80\xb5\x58\xb6\x62\x16\x32\x49\xb6\xc0\x97\xa8\x02\xc9\xcf\xb9\x87\xf9\xd9\xf6\x47\xb6\xaa\xf8\x42\x42\xde\xcd\x4b\xdc\xae\xb8\x6a\x5c\x56\x1a\x6f\x77\x28\x7d\x86\x62\x51\xa0\x4e\xe0\x9e\x84\x4a\x7e\xc0\x2f\x88\x9c\xdf\xd0\xf8\x2e\x70\x7c\x3a\x38\xa8\x09\x18\x2b\x56\x57\xdf\x9c\xbf\x19\xc4\xfb\x2f\xb0\x4f\xfa\xfc\x9a\x69\xd5\xe0\xf2\xf0\xe8\xa2\x8b\x5f\x57\xda\x8c\x6b\xf3\xd8\xe2\x8c\x5e\xf8\xf4\x19\xde\xe2\x1f\x7b\xd7\x29\x43\x73\x8c\xbf\x7c\x0f\x09\x65\x96\xbd\x72\xfc\x64\x08\x74\xc3\x2c\x1c\x8d\xde\xd3\xef\x11\xe7\xfa\x31\x9c\x96\x69\x5b\x52\x1e\x48\x23\x70\x0a\xf6\x4e\x6a\x30\xef\xfc\x8c\xe8\x8c\x42\x38\x5b\xbb\x4f\x7b\xf6\x93\x9e\x4d\xce\xad\xab\x0e\x81\x33\x74\x67\x37\xe2\x9f\xa4\xbd\xdb\xb1\xd3\x9a\x53\x2f\xa5\x75\x09\x3e\xfd\xf1\x0b\x38\x49\x6b\x40\x52\xd0\xd4\x88\xa8\xa0\x7f\x46\x48\x67\x8c\x1d\xa4\xfd\x27\x2c\x25\x64\x7f\xa6\xfc\xe3\xd0\x07\xfc\x3e\xf8\x63\x07\x0c\x42\x82\x22\x9a\x61\x05\x73\xa7\x0e\x15\x2c\xf0\xe7\x12\x25\x3a\x2b\x27\xde\x4a\x95\x52\x59\xea\x7f\x3d\x78\xf1\x84\x3e\xce\x5c\x20\x60\x80\xbb\xb7\xc9\x1a\x33\x57\xa6\x8c\x0d\xac\x50\x3e\x67\x5e\x99\x84\x40\x5e\x92\x8d\xf6\xee\xdc\x91\xad\x21\xfd\xd6\x90\x7e\x9a\x94\xe5\xe3\x60\xe0\x72\x71\xf9\xe5\x52\x2a\xf1\xc5\x1e\x9f\x14\xd1\x19\xe2\xc3\xea\x5e\x04\x7c\x1d\xc3\x66\x67\x92\x79\x7a\x79\x2d\xc4\x62\xf5\xe4\x4d\xbd\xe8\xc1\x76\x88\x18\x23\xf7\xda\x4e\x11\xd6\x3c\x47\xd3\x8f\x53\x70\xe3\x47\x0f\xed\xf8\x60\x0a\x47\x40\xd7\x4d\x4a\xe4\x59\xfc\x1a\x4e\xfe\x70\xd2\x95\x0e\x8a\xd2\xa6\xb2\xc2\x3b\xaa\x44\xb9\x98\xde\x62\x3c\xb2\xb6\x70\xba\xd2\x34\x9b\x51\xcb\xed\x44\x17\xf1\x60\xcc\xee\x22\xcb\x81\x42\x13\xa5\x60\xc4\xf1\x69\xe9\x85\x79\x30\xeb\x07\xf3\x9d\xa6\x3a\xf9\x60\x2b\xf5\x60\x93\x8d\x70\xa3\xe9\x99\x82\x6a\xf4\x7e\x07\x3b\x54\x9d\x96\xa8\x0e\x26\x66\xa9\xc0\x04\x85\x33\xc6\x91\xb0\xe1\xab\xc7\x3b\x3f\x80\x51\xe8\xd7\x9d\xe1\x01\xc0\x0a\x18\xda\xa5\xef\xf0\xba\x35\xb4\x39\x0c\xb6\xd2\x1c\x6b\x29\xa2\x5b\x98\x78\xc8\x06\x29\x19\xf5\x24\xbf\x96\xb6\xa6\x8d\xf8\x84\xa2\x2e\xf9\x33\x60\x75\xaa\xd0\xcc\xe5\x5a\x85\x68\xee\x04\xf7\x98\x62\x58\xf0\xc8\x76\x91\x82\xaa\x11\x20\x9b\x70\x23\x76\x03\xeb\xaa\xf4\x97\x4e\xa7\x83\xfa\x0b\x3a\x09\xd7\xa8\x4c\xaa\x7e\xd7\x4c\x48\x0c\xa2\xf9\x0c\x67\xc0\xf7\x56\xbc\x70\xb1\x08\xc7\x62\x4a\x3d\xe0\x28\x93\x39\xf0\x58\x93\x5f\xef\x76\xe2\x62\xf2\x04\xb5\x01\x0c\x11\xbb\x54\x9a\x49\xc1\x23\x12\x4e\x21\xbc\x84\x33\x10\x4e\xd5\xd2\xf7\xf0\x49\x0f\xe8\x1c\x3a\xff\xc5\x5e\xfc\xd7\x49\xa9\x2c\x32\x95\x4b\xdf\x3f\x85\x0c\x27\xb0\x66\x81\xcf\x38\x4b\x6e\x78\xf7\xe8\x48\x2c\x4f\x3e\x51\xec\x21\x4d\x32\xb3\x5e\x1c\x1e\x8a\x1c\x9c\xc4\x6c\x1a\x0a\x31\x96\xcc\x4e\x6c\x01\xe7\x4a\xfc\xba\x86\xcf\xcc\xd5\x1c\x87\xf5\x1d\x39\x57\x04\xda\x21\xf6\xca\x74\x83\xfa\xa4\x0d\xdb\x2f\x22\x97\x42\x7e\x5f\xbc\xa6\x57\x14\x12\x4b\x70\xaa\xa7\xde\xfe\x82\xb4\x14\x7d\xd9\x17\x2a\xd7\x2a\xe3\x15\xbf\xf4\x6f\x71\xba\x29\xb1\x05\x97\x80\xf6\x25\xbb\xfe\xe0\x6e\xe0\x32\xdf\xa9\xdb\x0d\x7e\xfb\x44\x2b\x86\x0b\x41\x4a\xfc\x95\x25\x36\x07\x22\x91\x92\x06\xb4\xf1\x13\x47\x21\xbf\xf8\x8d\x46\x5f\x01\x41\x35\xa8\xd4\xbf\x83\xae\xc9\xa5\xd8\x80\xf4\xc5\xd8\x3b\xa0\x59\xfa\x50\x8e\xae\x9c\x19\x59\xc0\x1d\x23\x7f\x5d\xbe\xcc\x9b\xed\xf0\xa0\x3f\xff\xe8\x7e\x84\xcf\x14\xdd\xac\xf6\xdd\x9d\xe5\x95\x1d\x39\x85\xb8\xd1\xe3\x67\xa0\xef\x27\x8b\xe6\xba\xd7\x1f\xa1\x54\x3c\xe2\xa6\x77\x70\x81\xa5\x5b\xf0\xd3\x2d\xe0\x5d\x9e\x68\x82\x26\x15\x69\xa3\x39\x5f\xf7\x51\x60\x00\x9c\x80\xef\xce\x83\x52\x50\x6a\xc0\x45\x02\x74\x51\xa5\x57\xe9\x02\x91\xe3\x5d\xd5\xaf\x2b\xc1\xd3\x63\xb8\x61\x57\x56\x68\xc3\xed\xba\xc4\x3f\xd3\x13\xdc\x0f\x2c\x67\xb9\x7b\x32\x6d\xb1\x1f\x8d\x69\x65\x56\xf6\x81\x2a\x3b\x59\x50\xd6\x61\x58\x59\x94\xdb\x50\xa8\x1c\x9c\x0c\xcb\x03\x96\x54\x1e\x60\x62\x05\xc9\x39\x58\x6f\xc3\x26\x6d\x76\x2d\x9a\x2d\x67\x34\x3a\x2b\xf7\x4e\xfa\x51\xb3\xd8\x41\xa9\xa5\xf2\x8b\x22\xed\x4c\xe2\xe1\x3d\x3d\xae\xbc\xe0\x6d\x41\xa3\xfa\xe1\x4d\xb1\xd6\xb8\x59\x1f\x4b\x15\x6b\x68\x2e\x37\x14\x0d\xa9\xb2\x6f\x43\xd1\xf0\xd4\x51\x20\x59\xc2\xeb\x17\x75\x27\x6a\xde\xf9\x15\xe7\x86\x51\xdd\x6d\xfc\x85\xe4\x28\x2e\xa0\xb5\x13\x1a\xc9\x56\xdd\x86\xbb\xbb\x8b\x36\x84\xf8\xc1\x89\x10\x89\x48\xd4\x6d\xca\xdc\x82\x94\x02\xdd\x38\x70\x29\xbb\x93\x39\x8a\xe7\x2d\xe0\x76\xd6\xb4\xcb\xe5\xa9\x5d\x2e\x4d\x37\xe4\x80\xa6\x40\xd7\xcb\x43\x9a\x60\x97\x80\xe6\x52\x0a\xf8\x22\x5f\x9b\xbf\xbf\xc5\x9b\x86\xd2\x70\xd3\x10\xf3\x30\xb9\xa2\xb5\x21\x5b\x1b\xe8\xaf\x14\x2f\x64\x7f\x5f\xad\x37\x47\xad\x49\x95\x56\xda\x67\xe7\x5e\xb5\x4d\xc5\x75\x63\x5b\x91\xe3\xa5\xb9\xa8\xc6\x84\xb5\x34\x5b\x4e\x51\x3e\xa8\x56\x21\x4a\x9e\x02\x19\x2f\xae\xac\x1f\xd7\x41\x80\x82\x61\xcc\x08\xdc\xf8\x58\xc1\x02\x88\xab\x7b\x47\x4a\xfd\x31\x2a\xe5\xdc\xc9\x22\xa6\x1d\x2a\xeb\xc0\x1b\xf6\x17\x15\xa9\xec\x36\xdd\xa7\x3a\xca\x25\x63\x00\x84\x4e\xad\xe1\xac\x49\xbb\x1a\x4e\xb1\xd1\x08\x0e\x23\x9e\x51\x7b\x49\xd5\xe8\xa8\xaf\x6d\x57\x7f\x17\xd9\xd8\xed\xc2\x69\x50\xeb\xeb\x8e\x7c\x15\xc3\x6b\x7c\x85\xc5\xd4\x48\x8f\x62\xbe\x23\x73\xf9\x05\x1c\x5f\xd0\xda\x6e\x47\xba\x33\x77\x05\x5d\x35\x95\xeb\xa4\xcb\x75\x68\xb9\x76\x9f\xdd\x75\xa6\x82\xdd\x74\xc1\x2e\x2d\x38\x9f\xb8\xd3\x8b\x9c\xc2\xbd\x74\xe1\x1e\x2d\xcc\x68\xa5\xb9\xa9\xdc\x20\x5d\x6e\xc0\xca\x21\x84\x28\x12\xbd\x99\x8a\x0f\xd3\xc5\x87\xb4\x78\xa7\xbf\x09\xda\xb0\xb1\x4c\x05\xfb\xe9\x82\x7d\x5a\x30\x98\x20\x5f\xd0\x36\x95\x9b\xa5\xcb\xcd\x68\xb9\x48\x46\x6d\x2a\x39\x4e\x97\x1c\xb3\x91\xc2\x20\x61\x6d\xbd\x62\x9a\xee\xd0\x38\xd6\xd3\x74\x05\xa7\xb4\x02\x4a\x5c\xbe\x84\x05\x0d\xac\x86\x79\xaa\x36\xe9\xe2\x1b\xd6\x73\x20\x59\x82\x59\x6e\xf9\x6d\xba\xfc\x96\x96\x07\x2a\x39\xb7\xf0\x6d\xba\xf0\xad\xd4\xf8\x65\xf6\xa4\x2f\xd2\xa5\x17\xb4\xb4\x46\x17\x60\xaa\x63\x99\xae\x03\x38\xdc\x43\xac\x65\x1a\xb2\x33\xc7\x54\x74\x9a\x2e\xca\x05\x5b\x12\x85\x2b\x4b\xca\xb9\xac\x86\x49\xbb\xa4\x3c\xb1\xe8\x9d\xbe\x82\xa6\x19\x69\x61\x6a\xf8\x26\xdd\xf0\x4d\x66\xc3\xfc\xba\xba\x31\x37\x7c\xc3\x1b\x66\xda\x12\x53\xc3\xa3\x74\xc3\xa3\x43\x07\x48\x6f\x6b\x84\x73\x46\xda\x16\x72\x00\x04\xf9\x47\x53\x15\x41\xba\x0a\xb7\x4a\x65\x03\x14\x1f\x46\xd7\xac\xc3\x53\xaa\x1b\x12\xd1\xdb\xe2\x07\x47\x12\x72\xd2\x5d\xcd\xbe\x8d\x5f\x50\x9e\x24\x7a\x41\x9f\x50\x09\x27\xbf\x45\xde\x17\x3f\x33\x17\x63\xe0\x15\x6a\xea\x74\x98\xe8\xb4\xfd\x15\xca\xf5\x8d\xeb\x72\xa5\xc9\x4e\x51\x28\xec\x4a\xe8\x4f\xfa\x8b\x4f\xec\xfc\xa7\xb7\xc1\x6e\x67\xc5\x2f\x63\x72\xdd\x49\xc3\x31\x29\x6d\xdf\xf8\xee\x79\x8d\x30\x42\xbe\xf1\xfc\xef\xb5\xe8\x52\x4a\x11\xea\x11\x32\x4c\xa2\xc2\x5b\x30\xc7\x4c\x43\x93\xca\x0e\x5d\xe0\x4a\x98\x74\x31\xe2\xda\x8d\xd2\xf9\x97\x2f\xf5\xf3\x70\x3c\x75\x17\x25\x27\x26\xe6\x7d\x9a\xf2\x01\x78\xbd\xa3\x23\x13\x5d\x62\x7e\x23\x73\x35\x71\xdf\x8a\xe4\x8e\xbb\x9b\x93\x3b\x1e\x81\xc2\x80\x48\x7d\xa2\xfc\x48\x76\x47\x92\x59\x34\xad\x4b\x59\xe2\x26\xdd\x5d\xe2\xcb\xfe\x10\xcc\x95\x6f\x1b\xcb\x03\xf8\xac\xbb\xed\x36\xa5\x29\xde\xc3\xcd\x8a\x47\x7f\xcb\x90\x8e\xc8\x47\xac\xaa\x84\x5a\x25\x8e\x51\xbc\xfc\xe1\x87\x4f\x3f\x34\x0e\x5e\xba\xc0\x8b\xb4\x29\xf2\x14\x21\xa9\xf0\x97\xd7\xc1\x4a\xc0\x13\xac\x22\x44\xc2\xd9\xe4\x6b\x04\x99\xf2\xe0\x4a\x0e\xdc\x99\xbc\x6a\xa3\x52\xa8\xe6\x34\x36\x0e\x6b\x3b\x1a\x23\xec\x87\x73\xba\xf3\xe4\xf1\x01\x63\x1d\x21\x4b\xbc\x98\x91\x66\x25\xda\x41\xc7\x5d\x8e\x58\x29\x8b\x0a\xdd\x18\x1a\xb5\x3f\xa7\x7f\xa1\xbc\x90\xc1\x45\x72\x8e\x70\x06\xf4\xb5\x3b\xb2\x84\x68\xc3\x8b\x98\x2e\x55\xce\xc2\xe4\x62\x71\xd3\x2d\xb7\xe1\x35\x55\x59\xd0\xdd\x9d\x0f\x5b\x70\xb7\x8b\x19\x43\x5d\xbf\x34\xf8\xda\xe4\x80\xad\xa8\x77\x88\x33\xec\x86\xb3\xed\x71\x2d\xea\xa0\x6d\xc7\xf5\xfa\xcb\xf9\x22\x1c\xff\xd8\x83\x15\x9a\xd2\x36\x51\xf0\xa1\x56\x70\x05\x77\x29\x10\x04\x08\x24\xc8\x6c\x87\xab\xa8\x7c\x21\xd2\x48\x4e\x0b\x17\x98\x77\x1c\x0f\x65\xfe\x5c\x34\x9a\x46\x8b\xba\x57\x9d\xeb\x16\xfe\x63\xd9\x8d\xf8\xb6\x10\x89\x0d\x0b\x31\xd5\x71\x2b\x36\xb2\x41\x75\xe2\x5f\xb5\xaf\x6d\x69\x29\x4c\x07\xae\x24\xdd\xa5\xe3\x63\xbd\x8b\xd2\xda\xf6\x57\x18\x0d\x15\x90\xb5\x89\x9c\xca\x44\xdc\xb1\x68\xca\xb7\xb9\x2c\xa9\x19\x00\x1f\x84\xec\xf6\x47\x78\x84\x75\x39\x1d\xb9\x7e\x70\x0e\x9c\x77\xdb\x92\x04\xbb\x76\xaa\x1c\x09\x6c\xa5\x5f\xb4\x3b\x48\xcf\x47\xa5\x50\xea\xe6\x29\x80\x10\xe9\x9b\xf7\x60\xd5\xc3\x4c\x53\xdc\xe0\x97\x05\x12\xea\x14\xf5\xdc\x9b\x05\x1d\x42\x7f\x2d\x82\x0d\xa5\x49\xa1\x67\x24\x7a\x05\xf3\x62\xc9\x0f\x02\xe2\x33\x9d\xd1\xbf\x17\x6c\x81\x59\x54\xac\x1f\x75\x9e\x6d\x39\xd6\x91\x69\x38\x9d\x63\x6b\x4a\x5f\xa2\x6a\xe8\x2b\x38\xc4\x2c\x35\x05\x87\x15\x2f\x36\x77\xe4\x9f\x4e\xa7\xb3\x70\xf3\x23\xf4\xf0\x97\x94\x66\x5e\x01\xbd\xc7\x9f\x9f\x31\x3f\x5a\x20\xb1\x4b\xc7\x2a\x24\x26\x69\x55\x5f\x07\x66\xa1\x42\x4f\x06\x5b\x7c\x1f\x18\xc8\xa6\x44\x4a\x4c\xff\x47\x50\xf1\x83\x55\x58\x76\x62\x91\xfa\x4f\xbc\x27\xd5\x17\x62\x27\xd6\xe2\x41\x44\x80\x16\x8d\xec\xbf\x34\x59\x8e\xbd\x60\x26\x41\x13\xee\xee\xb8\x04\xc7\xbe\xbb\x13\x4a\x80\xbb\xbb\xfa\xd3\x1a\xfb\xe1\xc2\x9f\x0a\x3c\x01\xeb\x08\x47\x73\x34\xef\x2a\xdc\x79\x8d\x40\x8b\x1f\x23\x9e\x53\x23\x2a\xba\xc2\x0f\x7b\x2d\xf0\xf3\x57\xd7\x26\xc4\xbe\x1d\x9f\x37\x31\x0f\xcb\xd1\xd2\x78\x46\xc5\xa3\x64\x48\xa3\x5f\x28\xc4\x43\xdd\x35\x54\xf5\x9f\xc4\xf1\x6b\x8a\xc5\x58\x80\x60\xad\x7b\x4f\x6b\x6b\xca\x87\x22\xec\x6a\xbf\xe5\x37\x8e\x5f\xa0\x46\xfb\xea\x9a\x74\x28\x9a\xbf\x49\x17\x2d\x37\xe0\xd0\x9d\x46\x8e\x69\xbc\x35\xdc\x65\x69\x5d\x38\x52\x78\xbf\xff\xce\x7a\x12\xb4\x51\x7d\xa4\xbe\xd3\xc0\xf9\x2f\x53\x68\x7e\xb9\x82\x1a\xe9\x54\xa3\x7c\x08\xf3\x82\xae\x96\x70\xe1\x43\x7d\x24\x00\xba\xa5\x1d\x6c\x3e\xa1\xaa\xf1\xfb\x1a\x42\xa5\x29\xdc\xd7\xc5\x7d\x86\x23\xdb\xb1\x1d\x0a\xf7\x57\xa0\xc2\x4d\xe2\x93\x8e\xca\x85\xb0\x2a\x18\x29\xcf\xbe\xd0\xad\x06\x22\xbe\x8f\xe7\x24\xf1\x1e\x27\xf5\x96\x79\x55\x20\x2a\x0b\x75\x4a\x51\x56\x0f\xe8\xd4\xa9\x7c\xd8\xb6\x5b\x6d\xfa\x59\x92\x13\x67\x1c\x1c\xc1\xf5\xed\xc7\x97\xab\x3a\x5d\x2e\x93\xbb\x68\xee\x31\x36\x23\x6e\x24\x54\x31\x67\x69\x2a\x95\xd2\xed\x24\xb0\x2d\x87\xb0\x99\xf0\x0c\x9a\x6d\x35\x5a\xa3\x43\x91\x6d\x67\x63\xc6\xc3\x7a\x93\xe1\x22\x6a\xba\xad\x21\x8b\x77\xfc\xa4\x06\xc4\xfe\x5a\x2e\x77\x77\x3c\xb5\x94\x34\xf8\xc0\x1e\x55\x2a\x5d\xca\x45\x18\x17\x8b\x64\x15\x03\xbb\x8f\x9e\x95\x7c\x35\xf0\x0c\xf2\xf8\x03\xe3\x98\x94\x09\xde\x21\x12\x38\x28\xb2\xee\x25\x08\x6b\xa2\x2f\x92\x99\xcd\x4e\xa6\x41\x82\xe9\xe5\x06\x6e\x95\xb6\x42\x4f\x71\xfd\xf9\x9e\x2b\xae\xe9\xa7\xbb\xe8\x4b\xb6\x0a\x70\xba\x1c\xf8\xe2\xee\xf5\xe0\x32\x4f\x2a\x4e\x50\xdd\x1c\x32\x7c\x5a\x74\x1d\x60\x3e\xd2\x4d\xa7\x23\x31\xd0\xec\x1c\x1d\x1d\xc2\x2d\xd2\x6d\xa5\xc7\x63\xd1\x82\x94\x64\x68\xe0\x4f\x07\x7f\xee\xe4\xab\x8b\x5e\x66\x09\x93\x1a\xf3\x31\xc8\xae\x3e\xdd\x01\x48\xdf\x70\xe5\xef\x57\xa4\xa1\x64\xae\x4c\xb5\xa4\x62\xa5\x91\xb5\x8b\xf4\xeb\x14\xeb\x42\x57\x88\xde\x1e\xcd\xef\x21\xe1\x05\xb7\x1b\x1c\x26\x25\x76\xbe\xa8\xc7\x19\xa6\x2b\xc7\x9d\x0f\xc7\x06\x22\x94\x79\x66\xa0\x1f\x17\x7a\x04\x19\x82\xe3\xa4\xf3\x6a\x9e\xcc\x28\x69\x12\x3d\xd4\x50\x28\x03\xb3\xe5\x81\xfa\x04\x68\x2a\x17\x3e\x36\x69\x1f\x1d\x79\x16\x5f\xf3\xbc\x5e\x64\x46\x95\xd5\x15\x20\x54\xf8\xab\x6e\x11\x5a\x54\x53\xc9\xb7\x6f\x8a\x39\x6d\x33\xea\xfd\xed\x97\x4f\x1f\xab\x73\x2a\x1a\xee\x77\xe0\x92\x43\xfc\x6b\x22\xcd\x13\x1f\x0a\xce\x02\xb1\xfc\x7c\x5c\x7e\xae\x1d\x13\xeb\x57\xfe\x35\xe2\x6b\xe1\x8f\x83\xc3\xa1\x3f\x5c\xf8\x07\x3e\xca\xa1\x38\x3a\x0e\x81\xf9\xa5\x83\x58\x4e\xdb\x89\xd5\x82\xe0\x26\x1f\x3a\x8c\xe0\x7e\xf6\x35\x6d\xd2\x65\xfb\x82\x2a\x3a\x8f\x8e\xd4\x6f\xc5\x3e\xa4\xe5\xc9\xdb\x4f\x12\xdd\x6a\xef\x41\x0a\xbd\x1f\xbb\x53\x04\x1d\x69\x10\x60\x30\x97\x1a\x02\x0a\x9b\xbd\x72\xaf\x59\xfb\xf0\x03\x9b\x64\x82\x61\xda\x2f\x71\x47\xc9\x14\xdc\x8f\x40\x8f\xce\x7f\xd5\xd2\xd2\x70\x23\xc0\x41\x8a\x93\x18\x34\x83\xef\x23\xba\x3f\x28\x3b\x75\x41\xea\xfb\x57\x01\xb4\x86\xff\x32\x69\xc9\xbc\x25\xfd\xe6\x05\x1a\xb5\x26\xec\x84\x93\x76\xab\xd3\x68\x47\x26\x5b\x8c\xa5\xfc\x21\xb8\x81\x7c\x0b\x60\x27\x19\xa9\x75\x80\x63\xc0\x0e\x71\x06\x92\x67\x3b\x87\x7e\x2e\xa9\x25\xc0\xc1\xd8\xdd\x1c\xb0\xda\x99\xed\x23\x66\x6c\xc3\x17\x74\x3c\x68\xc0\x73\xda\x95\x3a\xf0\x9a\x9e\x53\x3f\xf1\x5a\xec\x97\x84\x1e\x49\x57\x48\x4d\x28\xa1\xbd\x03\x3f\x5c\x4e\x16\x07\xae\x68\xd7\xd3\xcc\xd1\x6f\x89\x39\x4a\xf0\x6a\xf1\x5c\x32\xfa\x5f\x23\x90\x49\xec\x2f\xf7\xca\x83\x55\x57\xfd\x1d\xd7\xcd\x1c\x55\xb9\xec\x17\xa4\xb6\xa4\xdf\x0d\xf9\x3c\x35\xe2\x3f\xdd\x48\xe8\x8f\x95\xfa\x54\x38\x20\x27\xed\x74\xfd\x99\x6b\x0e\x7e\xae\x32\x80\x93\xe3\xd3\x7a\xf2\x79\x16\x4e\x83\xd9\x62\x8b\xc8\xab\xb9\xe5\x45\x15\xe2\x16\x46\x24\x55\x76\x66\x3a\x02\x9a\xb5\x09\xcc\xa5\x20\x67\xdb\x76\xb4\x2d\x03\x76\x2b\xa4\x3b\x86\x33\x08\xcb\x48\x99\xc4\x5e\x30\x8b\xfa\x7d\xf1\x2c\x45\x27\xc1\x68\xdb\xcf\x84\xde\x23\x6a\x4c\x4e\xbd\xbb\xbb\x42\x5c\x42\x75\x39\x99\xf7\xfa\x9d\x05\xae\x86\xf8\xc1\xa5\x6c\xd2\x2c\xa0\xb6\x88\xd2\xd5\x29\x7f\x48\x17\xef\xa9\x9f\x26\x7d\x58\xb2\xda\x1d\x5b\x9d\x87\x68\xb1\x57\xed\xf4\x47\x08\x5f\xd1\xad\x96\x43\xe0\xb1\xbd\x43\x3c\x6a\xd0\x32\x51\xbe\x90\xb6\x63\x2f\x1c\x7d\x70\xa7\x0e\xdf\xf5\x76\xe2\x95\x01\x98\xe9\x91\x88\xeb\xf6\xe3\x03\x88\x60\x32\x02\x68\x13\x49\xfc\x64\xab\xd4\x99\xd1\xd2\x7c\xd5\xe5\xb5\xa3\xe9\xf1\x3c\xa2\xfe\x3a\x76\x4b\x79\x8b\x3a\x32\xc8\x00\xe9\x55\x64\xbe\xac\xae\x6d\xe1\xf2\x4a\xf4\x1c\x97\x01\x64\x81\xb7\x3b\x8e\x3f\x70\xbe\x7b\x1e\x43\xcc\xa9\xd1\xae\x6e\xda\x52\x6b\x99\x0a\x63\x68\x4e\x58\x27\xf0\x61\x3c\xbb\xe1\x53\x54\xb4\x22\xda\xca\x86\x7e\xa7\x6a\x68\xef\xe4\x4d\xad\x2e\x27\xed\xe1\x97\xb1\xb6\xfd\xc4\x46\x08\x72\x32\xc7\x1b\x81\xe0\x67\xfa\x9d\xb7\x1e\xb4\x71\x49\xc2\x67\xf2\x13\xab\x14\x31\xce\x62\x05\x07\xb6\xf8\xd5\x89\x7e\x75\xd1\xc6\x48\xac\x5c\xb8\x78\x7b\xf2\x9a\xd6\x2e\xe3\x1e\xd2\x86\x71\xbb\x8e\x66\x49\x5b\x99\x4d\xb6\xa3\x5f\x5e\xa2\xff\x36\xad\x3a\xde\x7b\xba\xaa\xbb\x52\x61\x75\x3f\x26\xce\xc9\x2f\x3f\xbf\x72\x54\x12\x57\xa0\x9e\xbe\x52\x33\xdc\x0a\xa2\x3f\x1b\x70\x33\xcb\x5b\xc7\x85\x82\xb0\x34\x5e\x27\x31\xfe\x12\x0d\x03\xbc\x79\x24\x4d\xf0\x84\x34\x81\x89\x58\x4b\xb6\x4d\x8d\x97\xd2\x15\x26\x25\x1a\x79\xf5\x71\x20\xb2\x4d\x8d\xa2\xa4\x63\x63\xe5\xf6\xa9\x41\x7e\xb2\x83\xb0\xd8\x90\x76\x4a\xdc\x23\xea\x70\xe8\x8a\x64\xd8\x51\xf8\x97\x21\xa6\x34\x55\x27\xba\x9a\x5d\x33\xcd\x2c\x2a\xe6\xe8\xd3\x19\xc5\xcb\x45\x15\x4f\xc2\x0b\x77\xe1\x6a\xf7\x85\x27\x28\x17\x8b\xc1\xfb\x98\x85\x88\x85\x4b\xbb\xcd\xcb\x59\x36\x47\x0c\x3b\x4e\xa7\x75\x55\xfa\x18\xa2\x6d\xbc\x7b\x70\x2a\x7a\x5b\x2d\x5d\x37\xae\x3a\xb8\xcc\x0d\x73\x04\x6b\x91\x7d\x1c\xa8\xc9\xc7\xa3\xac\x9f\xce\xc9\x46\xd1\x66\xa2\x74\x91\x6f\xe0\x04\x0c\x88\xd0\x7f\x7a\x4c\x86\xf0\x80\x18\x84\xde\xd3\x63\x60\x4f\x64\xbb\xb4\x52\x6c\x14\xc4\xed\xf7\x94\xf7\x68\x27\xc5\x46\x22\xe0\x8a\xb0\xe3\x46\x69\x54\x62\xb0\x59\x68\x30\xe0\xed\x67\x07\x72\x79\xf6\xba\xbd\x85\x77\x95\xea\xdf\x82\x71\x0c\x0d\xc0\xf2\x15\x60\x35\x7a\x88\x6f\x2b\x8d\xfb\xed\x36\x42\x43\xc9\x48\x18\x3d\x95\xc8\x20\x32\x69\x2a\x91\xa1\xcd\x24\x5b\xba\x03\x90\x6d\x07\x8e\xe4\x77\x37\xfd\x79\x11\xd3\xd9\x6e\xac\xf4\x67\xf2\x0a\xfc\x6c\x09\xa6\xd8\x13\x76\x06\x09\x24\x5f\x33\xb1\x69\x71\x82\x30\xe3\xd4\xe9\x1a\x0d\x00\xb1\x5f\x11\x68\xd4\x83\xab\xf8\xc6\x99\x16\x30\xf8\x13\x13\x2a\x8c\xfe\x58\x35\x64\xe1\x58\x37\x72\x29\x32\x8d\x4c\x0d\xa8\xa1\x01\x07\xac\x4f\x5a\x7e\x95\x12\x94\xd6\xc4\x6e\x30\xac\xbd\x03\x1f\x3b\x9c\x21\x7c\xc6\x82\xad\x5a\x62\x7b\x4a\x49\x05\xfa\x5d\x94\x8a\x70\xda\x6d\x21\x05\x47\xcc\x4e\xfc\x50\xbb\xb6\x9f\xd6\x6b\x35\xe8\x4f\x52\xae\x67\xcd\x49\x89\x0f\x99\xf9\x36\x40\x0b\x47\x54\x09\x30\x09\x3b\x5f\x79\x4b\x87\xb5\xc4\x74\xd9\x16\xeb\xb7\xe3\x2c\x81\xc1\x58\x3a\x33\xe5\x15\x2b\xb0\x72\x16\x0a\x94\x13\x96\x84\x98\x5c\xd8\x16\x28\xa9\xe2\x33\xdc\x63\x12\xca\x6b\x28\x96\x34\x84\x63\x80\x22\xb2\x21\x5b\x81\x22\x93\xc6\xce\xe0\x64\x38\x51\x8d\x55\xd1\x25\x2f\x37\x4f\xb6\x4e\x34\x3d\xfc\x42\xfe\xfe\xb8\x55\x6b\x1c\xa3\x21\x6a\xe2\x45\x4b\x9e\xd5\x46\xfc\x90\xcc\x07\xc4\x52\x39\xe3\x0b\x90\x15\xef\x91\x7e\x47\xc5\x7b\xa8\x66\xc7\x7b\x6b\xfb\xf4\x98\xd9\x56\x6f\x9c\x69\x6a\xcd\xe2\x78\x3e\xb8\x9b\x0f\xfd\x89\x98\xcf\xb6\xc0\xbd\xc2\x7d\xb7\x29\xb4\x6c\xd5\x4a\xd4\x19\xc4\x2a\xd4\x6f\x02\x29\x7c\x0c\x1a\x90\x51\x74\xf1\x28\x18\xaa\xb4\x4d\x66\x1b\xb9\xdf\x32\x8e\xb3\xb4\x8b\xf4\x14\xea\x47\x63\x07\x51\xad\xfa\x82\x9e\x44\xd1\xcc\x54\xd8\x32\xfc\xec\xb6\x11\x5d\x66\x45\xc6\x2a\x86\x19\x4d\x9d\x44\x4c\x04\xb2\x8c\x21\x8a\x56\xa9\x54\xf6\x6c\x61\xd8\x0e\x5d\x2c\xd9\xad\x52\xa9\xe1\xed\x70\xa4\x9a\xad\x32\xee\x4f\x2a\xc8\xdb\xe1\xc2\xb3\xb3\xa6\x22\x26\xa6\xf3\x26\x23\x5a\x22\xfe\x75\x34\x29\x0a\x1c\x8f\x6f\xfd\xc6\xda\x09\xcb\xcf\x18\x3e\xf4\xd6\x79\x56\x23\xa7\x4e\x8d\x9c\xa9\xfb\xac\x5b\x4a\xce\x27\x39\x77\x4a\xd4\x72\x6e\xf0\x9f\xcf\xbe\xab\xd9\x5f\xcf\x52\xf2\x44\x26\xb9\x10\x82\x18\x2d\x72\x0f\x4d\xa1\xe8\x05\xd6\x3c\x75\x84\xce\x97\x78\x27\xb7\xb0\x2c\x6f\x1d\x0a\xdc\x86\x56\x66\xe1\x82\x8d\x71\x50\x2e\x1d\xd4\x48\xa9\x6c\x9d\x3e\x3d\x2e\x27\x3f\x58\xb9\x64\x33\x33\x84\x8b\xd8\xb8\x84\xfe\x98\xc3\xa2\x1d\x30\xab\x89\xcf\x6f\x9e\xd6\xff\x5e\x83\x49\x58\x3b\xd6\x45\xeb\xe2\xc9\x6d\xe3\xd6\x2e\xc3\x80\xcf\xd2\x13\x7e\xae\xbf\xa6\xe8\x60\x4f\x6a\xad\x12\x73\xab\xd3\xa0\x82\x52\x20\xf8\xff\xb7\x9d\x14\xeb\xfb\x9f\x14\x57\xf1\x51\x41\x61\x9e\xf1\x53\xfc\x33\xee\xed\xf5\x7f\xf3\xe3\xa4\x6c\x8d\xc5\xdc\x9f\xb9\xe8\xa6\xe5\xe9\x71\xa3\x56\xe8\x90\xa9\xfe\xad\xae\x9e\x31\xa6\x23\x26\x7f\xd1\xb5\xb4\xcb\xae\xf1\x47\x9c\x47\xfc\x8c\xc8\x3c\x92\x1e\x6e\x3a\x81\xfa\x3b\x3a\xd2\xec\x46\x1d\x13\x22\xb5\x46\x0f\x05\xef\x3f\x61\xe3\xc0\x14\xd5\x60\x62\xea\xc7\x25\x7a\x20\xec\x94\xf3\x8e\x12\xf9\xf7\xbd\xd6\x57\xda\x4f\x33\x6c\x89\x8f\xd0\x28\x79\x41\x97\xad\xcd\x64\xef\x21\x13\x3f\xc3\xfe\x01\xa3\x6c\x94\xe4\x45\x31\x6c\x55\xe8\xd1\x84\x86\xbe\x01\x63\x43\x48\xc7\x2e\xd7\x8f\x1b\x95\xba\x7c\x5d\x0f\x5b\xdc\x1a\x38\xda\xcf\x38\x75\xc9\x25\xf5\xa7\x5d\xe8\x3a\x5b\xcd\x6f\xdf\x94\xf8\x5d\x8d\xb7\x7c\xde\xf6\x7b\x76\xac\x6e\x3f\x79\x36\x53\x5b\x51\xcb\x92\xb0\xcd\xf6\x98\xbb\x8b\xad\xc8\xfd\xef\x7b\xc3\xc4\xa8\x37\xbe\x6e\x82\xd2\xc0\x6b\x65\x87\x50\xe3\xdb\x47\xdb\x20\xf4\xae\xcc\xda\x1e\x95\xbc\xfd\x41\x81\x96\xb0\x3d\x8e\x5f\x54\xac\xf0\xee\xae\x66\xa7\x76\x49\x45\xb7\x4d\x52\xd4\xdd\xff\x13\xfb\x64\xf6\xed\xfb\xa4\x18\x59\xcc\xbe\xeb\xff\xee\x5d\xb2\x43\x9c\x5d\x96\x04\x82\x1c\xf6\x81\x9b\xa6\x1b\xe8\x50\x66\xa6\x8f\x8e\xf8\xbd\x73\xa8\x32\xde\x56\x8a\xbe\x4e\x59\x24\xa6\xcc\x07\x75\x1f\x51\xea\x24\xb1\xd0\xa3\xc4\xf7\x32\xf9\x57\xae\xd7\xee\xee\x30\xf5\x44\xa6\x03\x71\xd3\xc0\x06\xb0\xdc\x93\x7a\x50\xc1\x1c\x15\xfa\xf7\xc4\xb5\xa9\xd6\x4d\x69\x34\xd1\x4a\x4d\xc6\x53\x15\xe9\x56\xcd\xa6\x18\x2c\x99\x26\x44\xf2\x36\x7a\xac\x5f\x1f\x1d\xd5\x94\x94\x1a\xa4\xe4\xec\xcc\xe4\x07\xd2\x2b\x6e\x81\x96\xae\xef\xf8\x66\xe7\xa2\x0f\x83\xec\x43\x16\x7e\xb0\x85\x7b\xe9\x5c\xa1\x27\x85\xcc\x5e\x04\x69\x9d\xe4\x62\xb6\xfd\x7a\xc9\x5d\xe0\xb5\xa8\x7f\x8f\x2c\xfe\x87\xf1\x3e\x95\xe7\x0d\xcc\x59\xce\xcf\x59\x7e\x6e\xef\x7c\xe6\xfa\xcb\x4e\x34\xc3\xeb\x78\x8e\x36\xa2\x24\x7f\x69\xb1\x95\x72\x09\x73\xcd\x97\xc7\x25\x7c\x08\x5c\x13\xa9\x25\xd1\x4a\x7e\x6e\x71\x4a\x35\x72\xd6\x81\xc8\x87\x38\x10\xa5\x43\xf4\x48\x29\xa5\xf5\x44\x31\xa8\x85\xca\x96\x5f\x8e\x42\x77\xc1\x58\x38\x6a\x7b\x4c\x8d\xdf\x5d\xfb\x69\x3d\xf8\xce\x16\xfe\xd7\x10\x4f\xb4\x93\x4c\x83\x6f\x61\x83\x53\xcb\x60\x32\xa3\x2a\x84\xe9\x96\x22\x00\xe7\x32\xa0\x09\x3f\xe1\x41\x7f\x3c\x0e\xda\x7d\x84\xff\xa1\xb2\x33\x86\xc0\xae\xba\x54\x7e\x48\xfd\x24\xa4\x7d\x15\x05\xce\x57\x6a\xb7\x4f\xe8\x8e\x86\xbf\x6c\x01\xc1\x0f\x66\xd5\x8f\xae\x5c\xfe\xf6\x82\x74\x9d\xef\x6a\xa4\xc7\x50\x0e\xdc\x13\x51\x8d\x0c\xf1\xc7\x08\x61\x46\x63\xfc\x27\x72\x17\x80\xee\xc3\x10\x8c\x74\xa3\xf3\xc5\x8b\x48\x2d\x34\x74\x67\x22\xb3\xb6\x2d\x56\x69\x29\x22\xcb\x25\x09\x99\xfe\x5c\xe2\x66\x9f\xb1\x62\x42\x06\xad\xdd\x90\x69\x6c\x53\xc9\x24\xa7\xe8\xf5\x28\x82\x63\xdc\x10\x2f\xdf\xe6\xca\xa3\x1a\x10\xb3\xcd\x15\x56\xfb\x1e\x89\x84\x3c\x73\xa6\xa4\x21\x00\x8c\x23\x64\xb6\x50\x0b\xb7\xdb\x0d\x66\xb4\x12\xa3\x51\x93\xce\x7c\x82\x96\x66\xc4\x45\x76\x61\xa3\x45\x14\x2b\xfc\x1b\x2d\xbd\xb7\x3d\x14\xba\x41\x62\xa7\xc5\xde\x16\x51\xd1\xa4\xed\x6d\xfb\xc5\x8d\x17\xf6\xb5\x37\x63\xb0\x03\x43\xa9\x49\xba\xd4\x84\x96\x62\x36\x13\xfb\x1a\xc5\x31\x9d\xc9\x1e\x46\x2c\x81\xd9\xb6\x86\xbe\x22\x9c\x75\x92\xb3\xd0\x84\x16\xff\xdb\x10\xbc\x55\xc0\x95\x48\x72\x4e\x96\xd2\x12\x3f\x1a\x22\x0f\x09\x32\xed\x7e\xd8\x5b\xb4\xc8\xc9\x31\x2a\xd4\x99\x32\x39\x2e\x11\x6a\x87\x29\xc2\x62\xe8\x0e\x37\x55\xd0\x4e\x54\x10\x00\x6d\xe0\x04\x24\x3e\x17\xe0\x4c\xd1\xa0\x61\x24\x46\x7b\x6e\x44\x12\x00\xed\xd4\x26\x57\x25\x76\xfb\xa2\xd7\x6f\x8e\xb9\x8a\x8a\xca\xbf\xe7\x25\x44\xa1\x1b\xac\x6d\x3c\x3b\xab\x11\x1f\x1a\x61\xa7\x17\x54\x88\x8b\x8d\x3a\x86\x9a\xf3\x87\x2f\x4b\xaf\xdd\x5f\x51\x37\x14\xec\x99\x9a\x3f\x94\x24\xe2\x93\x3f\xb1\xb3\x0e\xba\xf1\x70\x03\x62\x8a\x71\xae\x3d\xf2\xe0\x54\x96\xa1\xab\x66\xfd\x51\xac\x60\x6c\x27\xb5\x46\x84\xc3\xec\x43\x67\x5c\xe1\x0e\x6e\x7c\xbe\xfe\x66\xce\xa4\x42\x9d\xec\xc0\xbf\x7c\x95\xcd\x73\xb5\x4b\x90\x44\xeb\x83\x7e\x29\x88\x06\x04\xe3\x53\xe7\xc3\x36\xc3\x5e\xe0\x0d\x12\xcc\xfd\x80\x92\x0f\x36\x59\x3a\xdd\x7d\xb2\xaf\x9c\xde\x3e\xd9\xd7\x4e\xdf\x90\x9d\x6c\x9c\x81\xe9\xd5\xd6\x19\x9a\x5e\xdd\x9a\x9d\x6d\x20\x0a\x1f\x51\x72\xb4\x13\xe3\x60\x86\x2e\x37\x46\x64\x71\x0d\xd4\x1a\x27\x6b\x83\xd6\x55\x48\x6a\xd7\x8d\xab\x1a\x09\xaf\x6d\x06\x5c\xfb\xfd\x77\x6a\xcf\xfa\xfb\xef\x92\x61\x87\xce\x8d\xc7\xd3\x5a\xe4\xc8\xe3\x36\x36\x2a\x51\xab\x70\x6e\xe9\x45\x7a\x2a\x1c\xa8\x2d\x6c\x72\x26\x1c\xb4\x2d\x50\x4c\xbd\x40\x47\xba\x17\xce\xdc\xa8\xff\x63\x2b\x4b\xd1\x00\x5e\x3a\x17\xf7\xd0\x00\x8a\x8a\xc8\x4b\xe7\x52\x51\x01\xbe\x82\xea\x24\x25\x60\xf3\x65\xf4\x76\x86\xf8\x51\x0d\xa7\x4a\x07\x7b\x20\x7e\xc0\x55\x85\xb5\xee\x59\xea\x14\x1d\x52\xed\x5d\x8a\x52\xd0\x05\x4a\x8d\x03\x77\xbe\x9c\x05\x4a\x5e\xa0\x4d\x7a\xda\xbc\xee\x6c\x18\xcc\x7e\x9c\xf5\xa1\x01\xaa\x4a\xbe\x48\xb3\x8c\xaa\x15\x3e\x53\x96\x43\x6a\x99\xee\x49\xe4\x06\x19\xc1\xf4\x5a\x07\xb4\x89\xf4\x0a\xb7\x48\x71\xdf\x5a\xc8\xda\x90\x37\xba\x9c\xf0\x0e\x28\x67\xb7\x51\xb3\x77\xcd\x57\xd1\x37\xc1\x31\x56\x95\xc9\xe6\xfd\xe3\x48\x0c\x32\x13\x09\x0c\x4a\x41\x5e\x5b\x67\x27\xb5\xd6\x59\xe3\xd4\x96\x78\xf2\x37\x52\x22\x2c\xa5\xe5\x38\x7a\x26\x86\xa6\xe8\x17\xca\x6d\xea\x5c\x6d\xe4\x3c\xaa\xfe\xdc\x58\xf1\x07\x49\xde\x99\x31\x86\x44\xef\x6d\xed\x28\x4f\x1b\xc9\x7c\x51\x62\x3c\x4a\x7c\xd6\x74\x26\x5a\x24\x91\xa1\x4c\x7f\x34\x92\x3c\xa2\x46\x7d\x7b\xfa\x4c\x12\x74\x48\x4f\xbc\x27\xb5\x93\x55\x0b\x3f\x2b\x7c\xdb\x15\xaa\x4b\x1a\xfc\x2f\xfb\xd6\x72\xe7\x56\xb6\xec\x04\x77\x15\xcc\x14\xb4\xfc\x8d\xea\x71\x19\x5e\x5b\x5f\x29\x68\xb3\x81\xd5\x11\x2a\x31\x6b\x6c\x29\xf3\x55\x3a\x5f\xce\x66\xf4\x52\xa4\x26\x73\x69\xa6\x4a\x1a\x10\x75\xdf\x9a\x74\xc8\x6b\x6c\x96\x39\x5e\x7e\xf8\x66\xa9\x0b\x56\xf3\x60\xd1\xbd\xf4\x43\x35\x4a\xb7\xe2\x5b\x67\xf6\xf4\xbb\xe6\x12\x6a\x68\xbd\x92\x0f\x57\x3c\x05\xaa\x9a\x5d\x9f\x21\x26\xd2\x2a\x2a\x6e\x2d\xac\xdb\xa6\xa7\xc0\xec\xe9\x31\x97\x08\x71\x09\x19\x24\x7e\x40\x31\xd2\xdb\x72\xe9\x3d\xfd\x17\x7e\x57\xe0\xcf\x01\xfb\xc3\x9f\xfe\x55\xba\xdf\x6a\x58\xc6\x33\xb4\x61\x33\xf4\x79\x16\xac\xfa\x90\xed\x8f\x5e\x0e\xdf\xd0\x6e\xe1\xf5\xf0\x00\xa3\x6d\x14\x5b\x01\x91\x20\xf5\x22\x09\x6b\x62\xc4\xa0\xf9\x6b\x45\xa6\xad\xbe\xb3\x86\x2b\x1a\xa1\xff\xad\x3a\x5a\xb7\x96\x3e\x04\xee\xa4\xd4\x28\xc1\x91\xd7\x1f\x2f\xc7\xf8\x0b\x58\x34\xfc\x65\x37\xcd\x1f\xd8\xe5\xe3\xf5\xff\xa7\x7e\xce\x87\x98\x8f\x78\x05\xec\x3d\x1d\xbb\x58\x3a\x93\x27\x79\x69\x3b\xdc\x75\x28\x0d\x8a\xd1\xd1\x23\x94\xe9\xe7\x9f\xa3\x23\x6a\xed\x6b\xb6\x90\xe6\xad\xe8\x17\x90\x93\xd7\xc0\x51\x1b\x72\xb3\x5b\x07\xaa\xeb\x67\xb4\xc6\xe4\x0e\x2d\xe5\xa9\x81\x96\x6f\x83\xac\x3e\x44\xa5\xe4\x47\x5a\x6c\x98\xd9\x99\xb8\x9c\xfc\x4c\x0b\x8e\x1c\x5c\x26\x63\xe7\xd9\xdf\xd1\x59\xe5\xb3\x5a\xec\xaa\x32\x65\x6e\x7d\x55\xfa\x4b\xbd\xf3\xb7\xbf\x79\xcf\x4b\x14\xa6\x66\x74\xd0\xcd\x36\x8f\xd9\x41\x77\xec\xc5\xdb\xd6\xf8\xda\x7e\x10\xe1\x12\xfb\xa2\xf7\x91\x40\xd0\xef\xbb\xaf\x94\x44\x7c\xf3\xbd\xa5\x32\x70\x13\xf9\xc1\xaf\x7b\xcb\xae\x32\xe5\x2b\x46\xe7\x36\xd9\x22\x20\xa3\x30\x27\xe6\xaf\xf7\x96\xd0\x65\x4b\x74\xfc\x74\x31\xdf\x2c\xd1\xa1\xaf\x88\x9f\x27\xd1\x11\x1c\xb5\x5f\x40\xa2\x13\xf1\xda\x7e\xa6\x44\xc7\x17\x12\x1d\x26\xa8\x28\x2a\x8e\x41\x55\x8d\xe3\xc2\xc1\xc3\x35\x3d\x0e\x06\x86\x88\x95\x0b\x6d\xea\x6e\x68\x64\xf6\x31\x94\x94\x0f\x79\x54\x3e\x94\xdc\x94\x5e\xa6\xe4\x25\x2d\xc3\x38\x47\xc6\xf5\xdb\x04\x19\x01\x99\x08\x41\x46\x9e\x88\x22\x14\x00\x58\x03\x50\x79\x48\x42\xd2\xc5\xc3\x64\x54\xe9\x52\xf1\x47\x97\x7f\x12\xea\xec\x5a\x63\x63\x86\xfd\xda\xb1\x28\x6a\xdc\x11\x3c\x95\x18\x1c\x06\x77\x77\x87\xb2\x9c\x02\xfb\x98\x74\x7b\xc1\x61\xd8\x1e\x09\x61\x62\x9a\xa1\x11\xdb\xac\x00\x42\x67\x4e\xb2\xda\x4c\xf1\xc7\x5c\x11\x7f\xe4\x66\x5f\x28\x22\x91\xdc\xec\x4b\x27\xcc\x11\x24\xd0\xcf\x1b\x49\x13\x02\xc4\x76\x39\xcb\x7b\x4b\x13\x78\x6d\x64\xed\xac\x14\x91\xc2\x06\xea\x94\x45\x0a\xeb\x6c\xcd\x37\xab\xec\x17\xa8\x1a\xeb\xca\xce\xbb\xe8\x2f\x46\x01\x42\x99\x97\x39\x5c\x7a\x37\xe6\xd2\xbb\x2a\x97\xbe\xcd\x74\xcf\x1a\xe1\x06\x66\x78\xf1\xd1\x10\x56\x0b\xa4\xf4\x23\x61\x4f\xa7\x75\x35\xe5\x32\xa3\xe9\x35\xca\x9f\xee\x2b\x35\xda\x46\x52\xa3\x84\xe0\xc9\xd9\x72\xa9\xd1\x5a\x09\x42\x22\x86\xae\x99\x20\x9d\x66\x3d\x6b\x7a\x2a\xdf\x21\xf6\x29\xb9\xa9\x6c\xc6\xc7\xd8\xcd\xd3\x5c\x08\x07\xed\x8b\x4e\x7d\x1f\x1b\x90\x63\x0e\x38\x79\xf2\xeb\x9a\x2f\x3d\x51\x9d\x84\x30\x60\x30\x38\x73\xfd\xa2\x14\xda\xd5\x72\x73\x86\xa9\x70\xa6\x6a\xdd\xb0\x2f\x7d\xe6\x6c\x94\x19\x94\x17\x1a\xfa\x19\x91\x8c\xdc\xcf\x22\xc0\x39\x2d\x79\xee\x8c\xef\xee\xb6\xb2\x9e\x6c\xca\x10\xeb\x17\x51\x95\xf1\x16\xe3\x9a\x49\xba\xa7\xb6\x1c\x02\x3f\x7d\xfa\x02\x72\x6b\x7a\x9e\x74\x4e\x72\x77\x77\xce\x1c\x21\x14\x15\xeb\x89\xe6\x32\xe0\x6e\x06\x8e\xd5\x95\x00\x88\x49\xac\x42\x50\xf9\xce\x6e\x5e\xea\xc3\xd0\x60\x9c\x98\x1b\x39\x4e\xcc\xdf\x9e\xdc\x3c\xfd\x0e\x7a\xac\xff\xb4\x99\x28\x51\xe9\xdb\x46\x22\x15\x56\x1d\xfb\xd6\xe7\x6c\xfe\x5f\x3a\xea\xe7\xb9\xd8\x7f\xbc\xdb\xcc\xf1\xa2\x9c\x53\x2c\x8d\x42\x83\x7d\xa9\x47\x2c\x44\xdd\x27\x89\x0e\x73\x78\xce\x43\xf7\x1b\xbf\x93\x14\x9b\x87\xb6\xda\x1f\x07\xb3\x6a\x67\x84\x7a\xfd\x98\xf3\x49\xdc\xeb\x54\x37\x9d\x8e\xde\x83\xe4\x07\x63\x80\x3a\xc8\x00\x75\x19\xc3\xf4\x82\x33\x4c\xcf\x23\x8e\xe9\x98\xb3\x4c\xf5\xe3\x9a\x91\xb3\x11\x6c\x92\x81\xaf\x31\xb0\x49\x26\x86\x26\x62\x93\x22\xa7\xf9\x2f\x5e\x00\x1f\x42\x7f\x47\x6a\x70\x85\xc7\xe0\x83\xfa\xd2\x0b\xd7\x78\xd8\xb1\xa7\xd7\xa8\x1d\xb2\x63\x27\xa1\x4a\xac\x22\xd9\xa1\x21\x46\x23\x82\x93\x44\xf1\x14\x90\xe4\x5a\xc4\xbc\x95\x12\xde\x52\xb8\x3f\xbc\xaf\xc3\x60\x8b\x6e\xbf\x90\x7b\x22\x9c\x77\xe5\xee\xc4\x19\x25\x27\xbc\x9d\x23\xb0\x05\x0f\x0b\x57\x0e\x85\xb4\xcb\x6e\x7e\xb9\xd0\xb4\x0e\x24\xa4\x1c\x62\x2d\xb3\x06\x5c\x32\x86\x2a\x84\x57\x45\x8b\x7e\xfd\xd8\x2b\x12\x3a\xc6\x65\xdf\x5d\x49\xfb\x75\x67\xd3\xb5\xe7\x09\xbd\x97\xa2\xfd\x0f\xa5\x60\x48\xed\xc7\x67\xd6\x8c\xbc\x53\x0e\xb3\x66\xd4\xa1\xe7\x31\x6b\x46\xa5\x7f\x26\xd7\x65\xd4\xf6\x67\x73\x5d\x46\x16\x2f\x9f\xeb\x32\xf2\x79\x8c\x90\xdd\x9f\xcf\x63\xdf\xd4\x38\x2f\xc0\x06\xf0\x9d\x64\xa7\x39\x13\x39\x9a\x6c\xb4\x53\xf1\x3e\x43\xee\x82\x92\x3d\x62\xcd\xc4\xb5\x50\xa7\x22\x34\x68\x03\x89\xeb\x3e\x3c\xa4\xfe\x20\x78\x66\x7e\x87\x9a\xbb\x94\x74\xd8\x5a\xb8\x6f\xbc\x66\x6d\x0f\xd3\x95\x2a\x5d\x4d\xbd\xa6\x3d\xce\xe6\x75\x75\xa2\x03\x33\xaf\x4b\x5f\x91\x6e\x1e\xaf\xcb\x33\x90\x6e\x01\x5e\x57\xe4\x21\xdd\x4c\x5e\xb7\x5b\x8c\xd7\xd5\x81\x31\x80\xd7\xed\xc4\xbc\x6e\x20\xf3\xba\x41\x82\x47\x95\x55\xf3\x14\xa5\x69\xe4\x5f\xff\x43\x62\x60\xfd\xe5\x98\x7a\xa7\x60\x71\x0d\x0b\x33\xb2\xa3\xa8\xd7\xaf\x23\x8b\xce\xd7\xbc\x4e\xab\x63\x93\xd9\xd1\x51\xf4\x88\x1c\x9c\xf4\xd8\x43\xbb\x53\x73\x1c\xd5\x53\x4b\x46\x63\x4a\x4c\x69\x74\xaf\xfb\xcb\xd9\x9c\x91\xec\xeb\x0a\xf7\xde\x68\xc7\x11\x86\x2e\xa1\xfc\xab\xea\x26\x8e\x44\xb9\x21\xaf\xaa\x7d\x47\x02\xb7\xbd\x14\x01\x34\x21\x9b\x6d\x93\x77\x96\x54\xfa\x75\xf1\xd6\xdd\xe5\x22\x44\xcb\x22\xe6\xcb\xc0\x81\x46\xc8\x39\xf3\xd2\x73\xce\x7c\xb0\x6c\xa5\x7a\xdf\x21\x9b\xed\x71\x0e\xf2\xd5\x35\xa3\xd7\x5c\xc7\x8b\xaf\x56\x8c\x6b\x28\xdd\xb3\x44\x30\xea\x48\x9d\xc4\x2f\x5c\xe6\xf1\xe0\x7d\xae\x90\xe0\xbd\x4d\xde\xc7\x60\x3d\x20\x80\xe9\x6e\xac\x94\xca\x1b\xc4\xec\xd1\xe6\x3f\x30\x36\xff\xa3\x49\x8e\x10\x92\xf7\x18\x4d\xf2\x93\xd1\x74\x7a\x4a\x33\x98\xa4\x0a\xe8\xfd\xe6\xa2\xf5\x9e\x71\x08\x9e\xdd\x78\x6f\x70\x8f\x75\x61\x8b\x2c\x1a\x19\xc4\x96\xfb\x0b\xb2\xde\xc2\x22\x89\xe6\xc4\xe6\xee\x86\xac\x37\x90\x6a\xc7\x13\xb5\xc5\x0b\x95\x1e\x79\xce\x88\xba\xb6\xd0\x00\x1e\x0f\xdd\x28\x13\x22\x89\x6f\x99\xd4\xe5\x73\xf3\xd6\xf9\xba\xa3\xee\x42\x3e\xa3\xab\x90\xad\x7d\x7b\xf5\xf9\xda\xd9\xc2\x3f\x49\xf7\x51\x2d\x4c\xe4\x12\x85\x9a\xdd\xc0\x27\xfa\x4d\xfe\x49\x43\xcb\x05\x3d\x77\xd5\x0f\x67\xd5\xf6\xcc\xed\x5a\x3c\x52\x27\xfc\xe4\xa1\xe1\x4f\xe3\x94\x12\xb9\x8c\x1f\xa8\x0f\xb0\xd7\x36\x8b\x8e\x37\x3a\x3a\x1a\x71\xab\x2d\xfc\x65\xc4\x6e\x1e\xb8\xaa\xf3\x9b\x9d\xb0\xf5\x32\x0b\x69\xde\xa3\x90\x06\x1a\x79\x9f\x2b\xa7\x41\x8f\x52\x3c\x26\x21\x25\x78\x3b\xd5\xad\x78\x58\xdb\xf0\x70\xc1\xb8\x73\xea\x90\x88\xc6\x71\xa7\xd3\xf8\x83\x93\xd1\x5f\x65\xe6\x53\x9f\x27\x8a\x01\xc3\xd1\x27\x62\x70\x04\x1a\xb3\x62\xff\x83\x18\xcf\xe0\xfb\x4a\xf5\x1f\x2f\xa8\x53\xa5\xda\xb5\x83\xbf\x6d\x72\x45\x1f\x2a\x18\xe6\xc0\x7e\x6a\xd5\xcb\xf4\x07\xb1\x68\xd8\x03\x8f\x9a\x4e\xd3\x44\x14\x49\xc0\x57\xff\xe2\x5c\x71\x6c\xc9\x0f\xda\xf8\x3a\x48\x63\x53\x2e\x01\x45\x1a\x86\x2c\xe8\x54\xe5\xba\x19\xcf\xc4\x17\x7b\xf7\x52\x92\x59\x8c\xa0\x0e\xf5\xf3\x54\xa4\x18\x36\x35\xf2\xf1\x9a\x62\x69\xc7\x53\x4b\x6c\xc7\x91\xe3\x5b\x78\x88\xc0\x3a\xff\xd1\x59\xb5\x78\x04\x87\x92\x8b\xea\xf5\x9f\x9c\xf7\x46\x19\x95\x7a\x82\x2b\x71\x6e\x7f\x76\x7e\xba\x87\x98\x2a\x55\xa1\x2c\xa5\xfa\x05\xaa\x94\xa5\x54\xb0\x98\x7e\x2e\x1c\x04\x17\xca\xe7\x64\xde\xc4\x76\xf7\xe2\xc0\x55\xe3\x6d\x61\xb6\x70\x52\xa0\xa6\xad\x64\xc1\x9f\x93\x35\x0e\xba\x94\x9f\x17\xd9\xde\x39\x13\x86\x98\x3a\xf8\x63\x6e\x25\xee\xaa\xfb\x3e\xbf\x9e\x82\x03\x65\xf1\xa5\xb8\x20\x30\x27\x2f\x9e\xae\xb3\x70\xc4\x1b\x26\x37\x18\x37\x9c\xcb\x81\x3e\xc2\xb7\x55\xe4\x3e\x72\xbd\x1c\x17\x32\xe2\x47\x75\xdf\x26\x63\xa4\xa6\x0e\x9d\x7e\xe4\x3d\x03\xe3\xc5\x53\xe2\x2b\x4e\xca\xbd\x3a\x32\x9b\xcc\x12\xc5\x21\x4e\xa0\x32\x8e\x24\x94\x36\x59\xb2\x03\xe4\x57\xe7\x8a\xf2\x93\xa5\x1f\x82\x0a\x15\x27\x1e\x6c\xd9\x1a\x20\xe2\xe4\x69\x1c\xae\x77\xd7\xcd\x01\x1f\x74\xfd\x79\xcd\x66\xec\x25\x2a\xe2\x9e\x3f\x7f\x0e\xad\xc8\x7f\x70\xc7\x62\x7f\x4f\x47\xfd\x2e\xe5\x37\x85\x0f\x12\x85\xe3\x8f\x18\xfe\x17\x8c\xef\x03\x76\x3f\x39\x32\x75\xe2\xf9\x74\xfe\xba\xd7\x20\xd9\xd4\x0f\xec\xdd\x4f\x39\x42\xdc\x71\x2c\xc4\x8d\x4b\x93\xc5\xd1\x91\xda\xa5\xad\xe4\x29\x23\xbb\xc2\x8f\x4c\xb2\xc2\x8e\xa9\xdf\xb2\x8e\x78\xea\x56\x77\x8c\xc1\x34\xf8\x31\xdf\x8c\x4f\x0b\xe5\x8d\x7c\xd3\xfc\x16\x5d\x76\x3f\x65\x8b\x3d\x13\x15\x44\x18\xa1\x8f\x4f\x8f\x25\xc9\x12\xfa\x3e\xa9\x9b\x9d\x9f\x48\x16\x54\xbf\x19\x68\x04\xee\xa7\xda\xae\x0e\x60\x47\x5a\x25\x72\x80\x16\xae\xc2\x15\x9c\xef\x4e\x26\xe1\xe2\xc0\x03\xfe\x26\x76\x15\x07\x93\x46\x65\x94\x07\x28\x56\x3a\x98\x02\x25\x1e\xb6\xab\x68\xa8\x07\xbb\x62\x18\x6d\x30\xb1\x31\x3e\xc5\xcb\x88\xae\x17\xf6\xc1\x68\x9c\x42\xfa\xc1\x50\x84\x25\x85\xe5\x05\x5a\x4e\xdc\xc4\x6d\x9b\xfc\x64\x8a\xb1\x2d\x56\xc8\xd0\xc6\x63\x40\x91\xe0\x4a\xe7\x5b\x02\x05\x98\x58\xa6\x71\xce\x03\x05\x25\xc8\x41\x5b\x1f\x93\x28\xaf\x4f\x36\xbd\x9e\xb5\x53\x88\xb2\x8d\x91\xbb\xad\xe2\x44\x6a\x66\x80\xed\xba\x24\x99\x26\x3b\x3e\x12\x9e\xcd\x59\xf2\x4e\x63\xc5\x12\xe7\x3e\x1c\x5d\x79\xd7\x11\x79\x71\x74\xc4\x9e\xd5\xb5\xc8\xd6\xef\xbf\x9c\xc4\x99\x23\x1d\xc4\xfc\x94\x2b\x44\xc2\x40\x1b\xc9\xc5\x6e\x37\xff\xc5\x3e\x41\x07\x59\x1c\xbd\x27\x45\x21\xf7\x62\x61\x7a\x3d\x0e\xbc\xfa\x6b\x41\xba\x09\x1a\x3d\x3c\x63\x92\xef\xdf\x13\xe3\x48\xde\x29\xfa\x28\xeb\x7f\xd5\xc7\x13\xa4\xcb\x9d\xb8\x9e\xc6\x43\x74\x60\x61\x83\x11\xfd\x55\x3b\x41\x5b\x2f\xef\xe4\x53\xeb\x53\xc3\xdb\x35\x7f\x37\xc5\x62\xe7\x7b\x0f\x43\x40\x0e\x83\x0a\x5f\x3f\xc7\xc9\xf4\xb6\x3b\xef\x51\xef\x5d\x28\xdf\xae\x91\x7a\x2d\x59\x52\x1b\xff\xb0\xc3\x17\x8f\x0d\x53\xaa\xcc\xa7\x1d\x87\x71\xaf\xcb\xd6\x95\xc7\xd2\xd2\x45\x51\xb5\xeb\xc9\xb2\x6a\x78\x22\xbf\x27\x3a\xa6\x31\x77\x33\x4f\xc8\xdd\x1d\xce\x07\xb5\x80\xbb\x77\xf3\x3a\xbf\x39\x9e\xe7\xfc\x2b\x49\xa8\x53\x66\x53\x21\xf4\x90\x9b\xf4\xd2\x31\xf1\x4d\x28\x5f\xb9\x02\x65\x73\x3f\x93\x8d\x51\xa3\x03\x95\xc1\x3b\xa1\xb6\xf8\xc4\xc5\xa4\x78\x82\xaa\x2f\xcc\x04\x0c\xd2\xae\xfc\x54\xfa\x27\x70\x1e\xde\xde\x62\xfd\x97\xc0\x06\xf4\x63\xc1\x7e\xea\xf0\xc1\xc8\x68\xdd\xd8\x64\x8b\x69\x91\xba\xfc\xaf\xdd\x8a\x7e\x35\x34\xae\x33\x3f\x3e\xfd\x1b\x90\xe9\x36\x2b\x45\xc3\x0a\x56\x3e\xa1\xcd\xa5\xba\xad\x36\x05\x6f\x49\xbc\xac\x03\xc9\xee\x93\x5d\xba\xe6\xba\xe8\xa4\x74\x6d\x2a\x1a\xb1\x7a\x7c\x08\x81\x18\x42\x2f\x1a\x42\xcf\x3c\x84\xdf\xac\x4f\x4f\x9f\x7d\x97\x18\xc2\xc7\xf4\x10\xb6\xc9\x66\x7b\x29\xc2\x2b\x7d\xee\x87\xda\x00\x02\x5c\xb0\x42\xd1\x6b\x4c\xf0\x80\xaa\xde\x6c\xf9\x4a\x96\x80\x84\x0a\x5f\xf0\x0e\xd1\x09\xe0\xcf\x13\xcd\xbb\xd8\x7e\x5f\xc4\xc2\xa1\x1b\x9e\x60\x87\x5e\x22\xdb\x54\xa8\x9d\x81\xda\x0e\x23\x37\x35\xcd\xc4\x07\xae\x23\x1d\xbe\x64\xad\x3c\x6d\x51\xf0\x85\x9f\xed\x37\x67\x9d\x6e\x30\x16\xdf\x40\xbb\xfd\x84\x2f\xe5\x38\xab\xda\x6e\xc2\x89\xf0\x56\xf8\x0a\x6e\x66\x57\x3f\xcc\xd6\x5f\x48\x6d\xa0\x9f\xec\x2a\x0d\x8f\xf2\x5a\x44\x5f\x9d\x8b\x68\x1b\x24\x20\x7d\x32\x40\x5b\x5c\xe0\xe9\x34\xd7\x91\x72\x35\x2b\x97\x18\x51\x39\xfb\xd4\xc5\xd7\x25\x3d\x2a\xca\xac\x4a\xd4\xca\x19\x8d\xc1\x0f\x7b\x95\x73\xf9\x3e\xfb\xaa\xbf\xfe\xcc\x02\xc9\x56\x37\xe8\x04\xa0\x13\x07\x89\xa5\x51\xea\xac\x1e\x74\x52\xf0\xcb\x43\x47\x14\xbe\x0a\xae\x9b\x52\x0c\xfd\x28\x86\xc2\x10\x8d\x91\x35\xb1\xf5\xdb\x3c\x5e\x22\xd1\xbd\x44\x0b\xe6\xbe\xe3\x45\xb2\x0f\x8b\xf6\xc5\x1a\x92\xc0\xb6\x71\x05\x51\x4b\x60\xca\x64\x74\x69\xfc\x5c\xa6\xb2\xf2\x50\x48\x41\x33\x71\xad\x15\x8e\xba\x9b\xb8\x9b\xd8\x12\xe4\x5e\xce\x8f\x05\xdc\xc7\x8b\x24\x2b\x62\xdf\xf8\x6c\x83\xfd\x66\x13\x29\xac\xb7\x94\x4d\x32\xdf\xae\xe8\x92\xeb\x14\x4a\x58\xad\x3d\x7b\x32\x25\x18\x3b\x0a\x01\x15\xc1\x7c\x41\xa7\x96\xf6\xc5\x1a\x98\x29\x5f\x3a\x1e\xe8\x68\x48\x6e\x22\xd7\x76\x78\xcc\x0e\xae\x66\xd7\xf1\xe7\x70\x50\x73\x86\xfd\x9f\x3b\x5d\xc5\x75\x1c\x9f\xae\x36\xce\x44\x60\x37\x87\x91\xfc\x3f\x56\x97\x51\x9a\xb7\x5f\x96\xa8\x5e\x31\xe0\xb2\x20\x7f\xd5\xe0\x78\xd6\x07\x29\x5a\x8a\x5d\x55\xc3\xc1\xe9\x46\xd1\x53\xbb\x84\xf4\x12\xbb\x2c\x39\x38\x76\x4e\xd8\x87\x69\x0c\x50\x29\x07\xfb\x87\x19\xea\xbe\xc2\xe0\xcc\x78\x35\x02\x83\x9b\xbd\xad\x92\x40\x6c\xcd\xa6\x42\x87\x5a\xec\x14\xa5\x9b\xf6\x4b\x22\x00\x8a\x8b\xb2\xf5\xf4\x92\x95\x49\x3d\x4b\x43\x43\xb2\xf0\x3a\xf1\xf1\x14\xe7\x87\x63\x62\xa7\x48\x40\xe3\x57\xca\x42\x97\x9a\xa2\xe7\x25\xb4\xc3\x4e\xd5\xbe\xe9\x40\x15\xaf\x64\xf9\xb5\xa9\x4a\x71\x24\x42\xad\x6b\x27\x7e\x54\x0f\xac\x1d\xea\x0a\x24\x33\x71\x8d\x0e\x22\x61\x35\x1e\xc9\xd1\x7d\xe5\x1c\x7a\x77\x77\x67\xbd\x73\x98\x80\x10\x5a\x50\xd6\x34\x8b\xd7\x74\xe8\xf1\x33\x42\x88\x44\xbd\xa6\x08\x84\xce\xcf\x0e\x97\x9e\x77\xcc\x17\xa2\xaf\xe6\x6a\x3b\xef\x2c\xf4\x6f\x2d\x7c\x19\x57\xff\xf1\xe2\x04\x49\xf0\xcb\x16\xac\x72\x99\xf4\x47\x7b\x73\xcf\x6e\xa4\x52\xeb\x44\x34\x13\xb5\x97\xc5\xef\x70\x8e\xc9\xf9\xba\x6d\x58\xef\xe8\xbb\x4a\x9b\x0a\x2e\x11\x9e\x87\x7e\x2f\x90\x0b\xda\x89\xc3\xba\x13\x23\x13\x90\xe6\xa6\x9e\x50\x15\xcf\x9c\x96\x4d\xdd\x9e\xaa\x29\x7d\xa9\x14\xbd\xfe\x2c\x9b\xc6\x58\x4e\xa6\x0d\xd5\xe3\x9a\x6e\x0d\xde\xcc\x48\x07\x89\x18\x33\x10\xc4\x33\x01\x1b\x7f\x16\x0b\x45\x38\x0a\x02\x1d\xd5\x4e\x1c\x7d\xb8\xac\x18\x20\x4d\xff\xdc\xe0\x84\xf2\x78\xfd\x87\x34\x5c\x7f\x1d\xc3\xf5\xd7\xc8\x0a\x7f\xad\xf1\xd7\x06\x3e\x7b\xbf\x4d\xad\x1c\x95\x08\x09\xd4\xb8\x91\x56\x72\xca\xfe\x9c\xe9\xa1\x12\x2e\x9c\xb4\x6e\x37\xc0\x38\xd7\x0a\x1e\x42\xb9\x9b\xd5\xbd\x2b\x3b\x0a\x20\x17\xd4\x93\xc0\x25\xf4\xa7\x29\xf6\x49\x4d\x25\x09\xba\x7a\x0f\x02\xc2\xc1\xcb\xdf\xd0\x99\x32\xcf\xb1\x68\x09\x87\x59\x0c\x57\x82\xec\xa3\xf1\x94\x93\x96\x4c\xf2\x9c\x63\x6c\x72\x22\xde\xa5\xbe\x68\x57\x57\x14\x6e\x27\xb6\x4b\x59\x70\xa8\xc3\xba\x84\x2b\x4a\xf8\x67\x78\xe5\x7c\xed\x37\xe0\x33\xa0\x3d\xc0\x6b\xad\xc3\x83\x73\x72\x61\xeb\x4d\xf6\x52\xaa\xcf\xaf\x6c\x91\x35\x5c\x93\xd2\x46\xd1\xd9\xd0\xd9\x6e\x20\x99\x27\x66\xbb\xb1\xc6\xd8\x6d\x6f\x33\xdb\xf2\xa4\xc0\x38\x9e\x72\xf4\xf1\x27\x9b\x48\xef\x95\x73\xcc\x93\xce\x31\x29\x0f\xeb\x34\x7a\xd3\xd7\xb0\xfa\xbe\x4a\x45\x8a\xdc\xf4\x94\xde\xed\x9a\x7a\x8a\x37\x07\x33\xc3\xad\x33\x36\x0d\x76\xc7\x72\x42\x18\xb6\x00\x27\x3f\xa2\x04\x01\x9c\x91\x82\x46\xee\x9a\xfc\xd1\xf1\x61\x71\x09\x20\x4d\x74\x29\xe3\xcb\x79\x02\x58\x93\xd5\x47\x03\xb0\x66\xa4\x00\x6b\xe8\xe2\x79\xc7\x62\x8f\xa4\x6d\x12\xce\xe1\x70\xa4\xc2\x17\xa7\x83\xbf\xe8\xc1\xe3\xf4\xb9\x0a\x10\x65\xa5\xce\x00\xe9\xc0\x53\xf4\x94\xd1\x85\x5f\x5b\xfa\xab\x47\x3c\xf9\x5c\xa2\x21\x51\x9d\x21\xba\x6c\xa7\x71\x56\xb6\x12\x8e\x66\xf4\x10\x38\x9a\x4c\x7c\x8a\x11\xa3\x9f\x8d\x4f\xd1\x3b\x29\x40\x0f\x18\x62\x3d\x1b\x0a\xae\xd3\x05\xd7\x91\xf7\x8b\x73\x3e\x6d\x7b\x05\x88\x15\x85\xdf\xd3\xe9\xdf\x27\x4e\x2b\x73\x9d\xc1\x4e\x51\x53\xb9\xb3\x74\xb9\x33\x16\xaa\x99\x9d\xfe\xf4\x98\xd9\x3b\xa4\x6e\x36\x14\xc7\x18\x45\x18\x87\xf9\x2b\xae\xa1\xbd\x43\x1f\x63\xc9\xdf\xb2\x4a\x1a\x43\x59\x4f\xc2\xcb\xd9\x2c\x9c\x9d\xf7\x02\x7f\x68\x2a\x7c\x99\x2e\x7c\x59\x08\x3b\x34\x7a\x44\xec\xd0\xe8\x7e\xd8\xa1\xd1\x9f\x80\x1d\xd2\xb4\x59\x00\x3b\xa4\x03\x7a\x99\xb1\x43\xf4\x15\x19\xe7\x61\x87\x78\x06\xc8\x98\x8f\x1d\x12\x79\xc8\x38\x13\x3b\x34\x16\xd8\xa1\x4c\xb3\x96\x24\xfe\xcc\xa3\xf8\xb3\xb4\x59\x0b\xe9\x73\xd1\xe9\x04\x67\x68\x49\xa3\x0a\xa4\x48\xbc\xa2\xd1\x80\xf1\x46\x72\x5c\x82\x91\x08\x0f\x6b\xa8\x8e\x97\x0f\x66\x8a\x0c\x05\xa2\x7f\x1e\xfc\x1c\xce\xc2\x49\xd8\xc7\x04\x6c\x34\xd6\xa7\x65\x6e\x29\x7d\x48\xec\x98\x64\x72\x93\x24\x53\x01\xe7\x30\x17\xe9\x3a\x2f\x10\x60\x25\x63\x51\x80\x6c\x93\x9f\x7a\xca\x93\xc0\x3a\x5d\x24\xed\x83\x12\xd8\xab\x4e\x21\xdb\x21\xb8\x09\xe1\xa2\x59\x04\x67\xee\x6c\x3f\xc8\xd5\x26\x82\x5c\x25\x81\x54\xdc\x82\x74\xe4\x0c\x2a\x7d\xe6\x0c\xa5\xcf\x97\xe4\xda\x19\xc2\x6f\x34\x5c\xe8\x8b\x85\xb7\xcd\x05\x11\x51\x41\x93\x49\x8f\xc1\xf9\x19\x7d\xb8\x38\x0e\xee\xf5\x22\xd3\xf2\x5b\xc7\x3f\x3a\x6a\xb7\xae\xae\x1b\x5e\x8e\xec\xc1\xcc\x22\x01\xe5\x13\xd2\x67\xa0\x78\xa6\xfc\x07\x46\xec\xdb\xd6\x76\xb4\x9d\xb1\x10\x81\xb0\xf0\xb2\xcc\x79\xc9\x6d\x1a\x6a\x12\xb5\xb7\xd9\x09\xa7\x26\xd4\x41\x8d\x15\xdc\xdd\x21\x74\xe3\x9a\x54\x61\xf1\x4e\x22\x8f\x28\xb4\xb6\xa4\x53\x94\xac\x7a\x51\xe5\xc5\xc3\x90\xdc\xa0\xd4\x68\xc2\x05\xc3\xf3\x56\x07\x5a\x58\x57\xac\x89\x2c\xc3\xf9\xbe\xd6\xaa\xa3\x6b\x5e\x32\x91\x45\x38\x27\x2c\xf5\xba\x41\x8b\x10\xf4\x28\xdd\x75\xba\x77\x77\x63\x60\xea\xd0\xe1\x3e\x77\xb9\x26\x10\x25\x14\x33\x86\xff\x5c\x73\x07\x36\xa7\xce\xd6\x08\x19\x11\x2b\xcf\x73\x67\x8a\x93\x94\x33\xe7\xf4\x1e\x78\x11\xa5\x36\xe0\xa7\xce\xe4\xb2\xcd\x53\x19\x2e\xb2\x3b\xcf\xc6\x27\xa0\x0c\x7a\x8a\x88\x8d\xd3\x1c\x95\x74\x3f\xd6\x71\xf7\x55\x43\xa5\x0b\xe7\x54\x11\x6d\x8b\x2a\x93\x8a\x14\x9a\x2e\x46\xaf\xfb\x8a\xbb\x0c\x55\x59\x53\x6f\x75\x62\xd0\x21\x31\xfb\x03\xc9\xe2\x3a\xf1\x8a\x08\xbb\x87\x94\x67\xce\x0d\x29\x49\xa7\x44\xe3\x00\xb3\x1d\xc4\x23\xba\x5f\x73\xb2\xcd\xbe\xf2\x05\x74\x7b\x2e\xfa\x2a\xf8\xa5\xd9\xae\xae\x94\xca\x9e\xec\x09\xb0\x97\x34\xec\x97\x66\x8b\xbe\xdb\x61\x4b\x79\x43\xcb\x1d\x95\x61\x48\xd5\xbf\xbd\x60\x1f\xfe\xd2\xb9\x48\x2d\x78\x69\x81\x67\x1c\x38\x3b\x34\xe2\xd1\x29\xe0\xd0\xeb\x8f\x79\x3f\x14\x77\x9a\x5d\x2a\x5b\x63\x8b\x1d\x5d\x76\xb9\x5a\x7b\xf1\x64\x2c\xfb\xe5\x46\xfd\xd6\x41\xa9\x8c\x9b\x97\x7b\xc4\x08\xb3\x5c\x26\x24\x2d\xf9\x93\xdf\x01\x5d\x32\x2e\x35\x6e\x12\x70\x16\x1a\x2e\xe7\x9e\xbd\x07\xf1\x56\x90\xdb\x95\x7a\xaa\x2b\xe8\xa1\xe0\x5b\x7b\x92\x50\x6a\xd0\xae\x2c\x35\x2e\x1b\xbe\xa1\x9d\xa4\xea\x4b\x6d\x83\xaa\x8c\xee\x57\x3f\x91\xa2\x5c\x87\x53\x8c\xdf\xe5\x76\x39\x00\x98\x37\xdd\xf6\x46\xd9\xad\x5f\x78\xa3\xc7\xea\x80\xc9\x8f\x95\x50\xb9\xd6\x12\x3a\xe3\xea\x3f\xd4\xa5\xfc\xd4\x8b\x62\xa9\xcf\x5b\xd6\xcb\x7d\x4c\xdd\xc8\x65\xd2\x56\x2c\x61\xc6\x28\x09\xaf\x16\x16\xbb\xfe\x71\xca\xf2\xce\x15\x38\x02\xe6\x07\x4a\xfb\x1b\x4d\xbf\x65\x00\x91\xb6\x49\xd6\x20\x5c\xd5\x13\xd1\x76\x85\x6e\x58\xf4\x1e\xff\x1c\xc8\x88\xc6\x65\x32\x56\x8e\x0c\x71\xba\xcc\x3f\x68\xe3\x16\x18\x24\x71\x76\x30\x09\xba\x54\x28\x0e\x24\x2e\x4f\x61\xe2\x1a\x48\xd9\x25\xdc\x2f\x65\x03\x68\x66\x42\x32\x68\x84\x56\x64\x97\x92\x5c\x40\x25\x2f\xed\x55\xc1\x0f\xa0\x43\x13\x65\x2c\x9e\xcb\x42\xb5\xe6\x9f\xc4\x4c\x62\x96\x71\xf6\x92\xb6\x23\x7d\xd9\x9a\xdd\xc0\x7f\x2a\xd1\x37\xfe\xbe\x4e\x53\x2b\xf5\x46\x94\xd4\xd4\x9c\xee\x3e\x3b\xc1\xdb\x09\x17\xd7\xda\x2d\xa4\x9d\xf4\xc8\x7e\x3a\x52\xf7\xc9\xcb\xac\x0d\x94\x33\x75\x36\x53\xc3\x88\x6f\x54\x36\xd7\x75\xc6\x9c\x00\x44\xef\xb7\xb1\xfb\xdd\x8d\xac\x57\x91\x26\x4c\xe7\x85\x97\x50\x2d\x02\xe9\x92\x1e\xe9\xe7\xfa\x7c\x19\x38\xff\xf8\x0e\x3d\xeb\xbe\xa8\xa1\x6b\x5d\x29\xd2\x69\x3d\x78\xce\x22\xbe\xc0\x7c\x00\xf9\x8a\x9a\x98\x71\x2c\x2f\x0e\x67\xed\xfe\xc4\x1d\x41\x37\x27\x1a\x21\xb2\x2e\x12\x3e\x25\xcb\xc9\x54\xff\x66\xbb\x23\x37\xd4\xb7\xca\xcc\xa4\x48\x98\xa3\x86\x60\x41\x83\x32\x32\xd9\x36\xac\xb3\xe3\x0e\x9a\xbe\xa7\x02\x1e\xcf\x04\xc2\x20\x01\x38\x28\x25\xce\xd9\xa4\xdb\x95\xc2\x9e\x58\x54\x8d\xc1\xca\x91\x3f\x48\x09\x38\x32\xd4\x20\x6c\xb4\xb2\xf3\x25\x59\xeb\xdc\xb8\x2c\x1f\x5d\xa2\x69\xb4\xd3\xcb\x96\x68\x1a\x0d\xf5\xa8\x2f\x16\xa3\x3c\xd3\x28\x57\x44\x89\x1b\x73\x5a\xba\xb7\xc8\x6d\xb3\xb7\xb0\x76\xbb\xb7\x9c\x96\x61\x03\xf6\xb6\x21\xdc\x66\x16\x33\xda\x10\x6e\x98\x85\xc1\x3e\x1e\x5f\x58\x73\xd9\xe5\xf4\xae\x55\xb0\xbd\x1f\xf0\x7c\xdc\xcf\x4a\x0d\x9b\xcb\x2c\x66\x74\x0f\x24\xe9\xb9\xf6\x93\x05\x41\xd9\xbe\x51\x62\x6d\xf6\x50\x0d\xbb\xe1\x1c\xef\xae\xfd\xa4\x5c\xb9\xf2\x44\x9d\x65\xac\x59\x9e\x48\x5f\x91\x7e\x9e\x3c\x51\x08\x6f\xfa\x05\xe4\x89\x91\x58\xa7\x9f\x29\x4f\xec\x17\x92\x27\x26\x45\xe1\x1e\x15\x85\xeb\xdc\xe4\xe4\x0a\xdd\xf4\x3a\x0b\x22\x64\x58\xeb\xc2\xae\x76\xa4\xc3\xb3\xb0\x99\x62\x2f\x5e\x43\x91\xcc\x6c\x21\x0c\x11\x03\xb8\xa9\x8e\x8e\x16\x92\xd5\xe2\x44\x7a\xec\xa2\xf0\x4f\x95\xae\xf5\x84\x74\x2d\x4f\x6e\x36\x62\xec\xe3\x8d\xc9\xb2\x6e\x40\x46\xa4\x8f\x8e\x6a\x4c\xe6\x11\x43\x9a\xc1\x64\x59\x37\xab\x7a\x01\x1c\xac\xc1\x4f\xc2\xee\x6d\x64\x30\xad\x9b\x67\x99\xd6\x1d\x5a\xbd\xa3\xa3\x5e\x84\xbd\xef\x3d\xa8\xa1\x19\x1a\xeb\x35\x47\xf9\x56\x66\xbe\x13\xc4\x56\x66\x6d\x78\x88\xd0\x4c\xaa\x71\xd4\xd2\x19\xe5\x4a\xb3\x60\x61\xfc\xd2\x5f\xf4\x4e\x37\x41\x1c\xfc\xb3\x77\x6f\x67\x3d\xfa\x5a\x65\x53\x28\xd9\x81\x0f\x50\x21\x73\x8d\x0f\x9f\x55\x61\x6b\x27\x92\x93\x55\x32\x67\xca\xce\x88\x71\x19\x12\x76\x5b\x0c\x92\x9d\xd7\x02\x52\xd4\xdc\x2e\x48\x13\x14\x27\x5f\xfa\x46\xc2\xa3\xa3\xcd\x3d\x2d\x4c\x6e\xb8\x85\x09\x09\xb8\xa9\xc0\x4d\x64\x2a\xb0\x10\xfe\x87\x12\x5e\x69\xa2\xde\x72\xd4\x7e\xc6\xfa\x55\xe0\x03\x74\x57\x6d\xd5\x0d\x43\x37\x49\x20\xbb\x51\x02\x0e\x7c\xfa\x59\xf6\x7d\xdc\x6f\xf3\x4f\x56\xa1\x9e\x2a\x2a\x98\xa1\x82\x90\x5f\x04\xa1\xa4\xac\x2a\xe2\xbe\xfe\xc5\x54\xa6\x5c\xd2\x32\x45\xbe\xcc\x9d\x3c\xb1\xa6\xad\xe3\x46\xdd\x4e\xf2\x10\xf5\xef\xd4\xc0\x41\x32\x13\x05\x45\xea\x8d\x63\xa4\xc2\x11\x96\xc6\x70\xc5\xbe\xc0\x15\x77\x22\x5c\x71\x27\x0b\x1a\x7d\x83\x6e\x7b\x48\x4f\x01\x16\x2f\x58\xfc\xa4\xfb\x62\xa3\x2d\x39\x28\x4e\xd9\x0a\xaa\x31\x89\x87\xb6\x63\xed\xa4\x40\xfc\x3b\x16\xab\xce\x2e\x65\x35\xca\x8d\x2d\xb8\x82\xc1\x9c\x4f\x0d\xd1\xd2\x9c\x1e\x1d\xdd\x6a\xb8\xf5\x4c\x5e\xd2\x18\xf5\xc8\xf2\x79\x30\xbc\x17\x18\x0c\xef\x6f\x22\x18\xde\x6e\x72\x6f\x68\xfa\x6f\xd6\x02\x71\xdd\xea\xf4\xdf\xa4\xa7\x3f\x85\xeb\xee\xda\xc9\x2c\xe2\x30\x38\x50\xbc\xf5\xa4\xac\x13\x6e\x64\xeb\x84\xb6\xe4\x80\x19\xed\x13\xe8\x33\x8d\x74\x63\x60\x2d\x7d\x0d\x60\x2f\x62\x30\x1d\xdd\xfd\x4d\x43\x78\x27\x91\x69\x99\xe8\xb5\x18\x68\xc6\x59\xd5\xba\x30\xbe\xab\x6b\x81\x66\x03\x06\xfe\x8a\xdc\xe0\xa4\x68\x17\xe4\x52\x0f\xd1\x3b\xe7\x21\x7a\xe7\x04\x9e\x71\x8a\xff\xdc\xb0\xfc\x33\x95\x57\x94\x6f\xdb\x04\x53\x37\x47\x26\xae\xd9\x49\x43\xbd\xe2\x78\x24\xd4\x6c\x30\x37\x76\x4c\x0c\x17\x0b\x93\x9a\x4d\xb9\xb0\xc2\xd7\xd6\x3b\x68\xfa\xd8\xcb\x76\xcf\x53\x08\x48\xa6\x45\x83\xa1\xaa\x23\xa7\x5c\x47\x57\xae\xc9\xe2\x27\xe8\xf8\xda\x19\x99\x47\x7c\x6d\xf0\xed\x6e\x83\x04\x0e\x0a\xef\x7a\x5b\x41\x62\x8b\xb4\x84\x0b\xa1\x9e\xde\x85\x50\x56\x57\x0c\x48\xa7\x9e\xea\x42\x28\xa3\x06\xa3\x0b\xa1\xde\xfd\x5d\x08\x45\x12\x81\x19\x7b\x10\xfa\x37\x27\x88\x20\x53\x9d\x08\x32\xd5\x95\x30\x51\xbd\xff\x71\x12\x84\x42\x01\x89\x8c\x9c\x7a\x2e\xe8\xc7\xc8\xac\xe7\x82\x7e\x8c\xfc\x7a\x36\x3e\xc9\x28\xf3\xc8\x83\xfb\xf4\x1e\x11\xee\xd3\xbb\x1f\xdc\xa7\xf7\x27\xc0\x7d\x34\x6d\x16\x80\xfb\xfc\x8f\x63\xcf\xf3\xd8\x6a\xbd\xfc\x8b\x08\x36\x77\x4e\x8f\xa4\x98\x0f\x94\x41\x2e\x73\x05\xe4\x32\xb7\xf3\x84\x01\x49\x59\x8a\x47\x65\x29\x1a\x70\x51\x20\x8c\x7a\xf7\xc0\xf9\xe8\xa5\x72\xf1\x6d\xa8\xc1\xf9\x64\x21\x6f\x82\xa2\xa2\x84\xc5\xac\xef\x2d\xf1\x65\x11\x31\xc2\x30\x3e\x2e\x22\x31\xc2\x50\x0f\xbd\x19\x3a\x56\x50\x41\xba\xdc\x71\x9c\x6e\xab\xcd\x18\xa5\x36\x5f\x30\x6d\xca\x2c\xb5\x85\xe7\x50\x42\xb3\x75\x5b\xa5\x2d\x8c\x0e\xe3\xc1\x14\x91\x2c\x00\xcb\xec\xdf\xdd\x0d\xe8\x25\x3b\xd1\x70\xc5\xf2\xd8\x14\x70\x47\xe8\x4c\xf6\x60\x83\xd5\x6a\x80\x3a\xb2\x42\x85\xf9\x9d\xc8\x7c\xae\xdd\x9c\xe4\x30\x78\xed\x98\x63\x6c\xab\x78\x8d\x1b\x4d\x68\x58\x6c\xfc\xde\xd0\x8c\x1b\xdd\x28\xc9\x4d\x31\xa8\x03\xb6\x9c\x42\x3a\x14\x51\x9b\xf5\x65\xe2\x67\xe6\xdc\x24\x0d\xb0\xa3\x61\x95\xbb\x85\x00\x09\x33\x93\x61\x35\x1d\x46\xb7\x5c\xaa\x1b\x3a\xe2\x5b\xbd\x48\x37\x2a\xf2\x1e\xe7\xe7\x45\x87\x1e\x31\x4b\x7c\x23\xe0\x10\x19\xa3\xa0\x0a\xb9\x05\x85\xa4\x14\xe8\xd6\x60\x8f\x6e\xc9\x79\x0d\x68\x90\x9a\x24\x43\x9a\x15\xff\xb4\xd0\x6f\xe0\xbb\xe5\x07\xfe\x89\x69\x0d\x43\xda\xfd\x5a\xfc\x84\x1d\x4c\xcc\xcc\x8c\x0d\xfb\xf1\x46\x0c\xfb\x7b\x10\xeb\xf3\xc6\x09\xa6\x2b\xda\x93\x7a\x7e\x2b\x57\x8d\x17\x38\xcf\x81\xb3\xef\x38\x7f\x07\x76\x0b\x85\x07\x7a\xaf\xa4\x57\xdd\xeb\x1d\xb5\x14\xd2\xaa\xd8\x06\x1a\x4d\xde\x90\x2a\xb3\x46\xc6\xc0\x9a\xc0\x6d\xe9\xf8\x01\xe0\xd0\x24\x3d\x57\x31\xc2\x34\xa2\x7d\x47\xd4\xe4\x0b\x6f\x7d\xed\x20\x66\xdd\x25\xd2\xe0\x42\x68\xd9\xb2\xe8\xc1\xe3\xe8\xed\xd6\xe2\xbb\x9f\xe6\x22\xfc\xc4\x36\xe4\x56\xc9\x00\x9e\x97\x88\x73\xdd\x50\x28\x49\x11\x88\xec\x84\x9d\x8d\x86\x52\x32\x71\xc0\x32\xa2\xa5\x59\x1b\xe5\xb9\x94\x0c\x2f\x36\x74\xf4\x23\x08\xc5\x02\x2c\x46\x43\x8f\x16\x2a\xd5\x65\xa5\xba\x58\x0a\xdd\xec\x15\x2b\xd5\x61\xa5\x3a\x58\x0a\xee\x7c\xa4\x85\x8b\x15\xec\x51\xad\x2d\xe6\x84\x65\xe6\xa2\xb5\x5b\xa3\x47\x9b\xc6\xa5\x56\xac\x8a\x01\x6b\x7b\xc0\xc4\xdd\xb0\x5c\xe3\x62\x7e\x46\xb1\x7e\x9a\x9c\xf1\x69\xfb\xfd\x9d\xe4\x7c\xaf\x58\x17\x80\x6b\x21\x82\x4a\x18\xd2\x4a\x80\xb5\x91\x89\x0f\xb8\xd7\x61\x80\x7d\x18\x54\x41\xe0\xef\x3a\xd6\xa5\x68\x68\x0e\x41\x90\xd0\x8b\x67\x9d\x24\x20\x24\xfd\x72\x42\x07\xd1\x23\x6b\x8c\x12\xb0\x35\xea\x20\xfa\x34\x43\x8a\x02\x59\x53\xc3\x58\x19\x67\xcb\x91\xb1\x9e\xe4\xf1\x0c\x91\xb1\xe3\x08\x03\x1b\x22\x06\x76\xc8\xe5\x7f\x37\x2d\x44\xd9\x56\x5f\x3c\xd9\x3c\xf5\x52\x3e\xd2\xc8\xe6\x89\x95\x4e\xad\x54\x5f\xd8\x9a\xcc\xd7\x0d\x86\xd7\xdd\x5c\xa3\x06\x44\x07\xd6\x4d\x76\x69\x12\x75\x69\x1a\x87\x33\x44\x7c\xed\x96\xe2\x6b\x87\x6a\xe4\x6c\x67\xa8\x86\xce\x8e\x1e\x95\x7c\xad\x2b\xe5\xb1\x52\xad\xd5\x9f\x28\x29\x44\xa9\xa6\x9c\x78\x5f\xbf\xbe\x6e\x5c\x55\xea\xa4\x2e\x0f\x82\xb7\x3f\x52\xdb\x8f\x1e\x47\x6a\xfb\xca\x23\xad\x5f\x49\x21\x4a\x35\x95\xc4\x7b\xa9\x7d\x2e\x46\x5d\x1b\x15\x2d\xca\xca\x85\x8b\x73\x10\x91\x97\xf1\x3c\xc3\x30\x4e\x9d\xdb\x7b\xe8\x5b\xd2\x95\x53\x38\x72\x42\xc1\x72\x2e\x25\x75\xa9\x19\xe6\xad\xa2\x70\xc9\xc1\x17\x33\xd4\x10\xb9\xbd\x4f\x18\x04\xb2\x36\x23\x03\x17\xd5\x18\x4f\x92\x82\xe5\x4d\xc3\x79\x24\xc7\x41\x95\xf5\x80\x5a\x40\x9f\xe5\xeb\x1a\x98\xcb\x4e\xaa\x35\xc0\xf8\x5b\x6c\xc6\x13\x9a\x86\x5b\x45\xd3\xa0\x29\x61\xd0\x33\x6c\x92\x3a\x85\xad\x0c\x07\xe6\xe5\x4b\x64\xd6\x2a\x2d\x67\x23\xcb\x58\xb7\x0d\x9c\x4b\x49\xe0\x6f\x6f\x53\x1a\x9a\x34\xec\x3a\x07\x91\xbb\xd3\xd3\x47\x63\x41\x5d\xa7\x70\xba\x24\x8d\xd0\x55\x86\xbb\x91\x44\xdd\x32\xb6\x4f\x12\xe8\x47\xda\xcb\x8f\xee\xc7\x45\xf8\xaf\x60\x16\x5a\x23\x2b\x42\x64\xd5\x08\xcb\x6c\xc7\x84\x5c\x1a\xcb\x95\x5d\x5b\x04\xea\x1a\x59\xbc\xae\xca\x08\x85\xea\x71\x85\x7a\xa5\x83\x4e\xe5\x50\x2a\x5b\x43\x6b\x4c\x5f\xda\x15\xdd\x11\xfa\xa4\xfa\xfc\x45\xec\x31\x27\xcc\x42\x12\x2f\xd1\x0f\x46\x01\x34\xf1\xe2\x81\xd0\xc4\x79\x70\xe2\x42\xfd\xa9\xa7\xfa\x73\x5f\x48\x71\x3e\xa6\x18\xe1\x00\x7f\x00\xac\x18\x86\xbd\x78\x5c\x68\x71\x2e\xb6\x58\xee\xc2\xa3\xe1\x8b\x69\xc0\x0e\xc5\xaf\x94\x76\xb3\xcf\x85\xfe\xc1\xc8\xd6\xc5\x3b\xc3\x9a\xec\x81\x9a\xb5\x19\xef\xe7\xd1\xfb\xc5\x8f\x78\xbf\x24\xd4\x74\x45\x4a\x05\xd0\xa5\x0f\xb0\x39\xd5\x03\x59\x9b\xfd\x1f\x3a\x2c\x6c\xb2\x83\xa9\x73\x8d\x39\xaf\x60\x0f\x30\x35\x78\xd8\x34\xf0\x9f\x4a\x74\x00\x7d\x5f\xa7\xa9\x95\x7a\x23\x4a\x6a\x1a\xcf\xaf\xf6\xb7\x9d\x7c\x0a\xae\x35\x71\x04\x12\x34\x0a\xc4\x75\xb1\x92\x19\x5d\x85\x16\xc8\x82\xae\xe6\xf2\xbb\x3d\xa6\xd0\xeb\xb3\x3f\x83\x1c\xe0\xea\x50\xc3\xd9\x8e\x34\x69\x63\x23\x6e\x55\xcf\x24\x20\x6e\x35\x74\xae\xae\xc9\x94\x82\x57\x6f\x50\xd5\xc8\xdd\x5b\x18\x78\xec\xc5\x9f\x8d\x56\xe5\xee\x36\x74\x4c\x3b\x22\x01\x62\xa6\x5d\xf5\xd0\xe4\xa8\x3b\x3a\x3e\x2b\x4a\x06\x02\x32\x49\x31\x1c\xf0\x1f\x95\x1a\xbc\x77\xd3\xe7\x3f\x87\x32\xa9\xde\x76\x64\x2e\xea\xfe\x4d\x32\x63\xa5\x92\xf6\xce\xd9\xc9\x82\x87\xc5\xa3\x2b\xd1\x8c\xf1\x39\xb2\x95\x68\xc6\xf0\x1c\xd9\x21\x11\x8d\xc8\xd8\x6c\xf4\xae\x51\xe9\x36\x75\xdb\xf7\xd2\x80\x19\xa1\xbb\x66\x44\xed\xfe\x60\xda\x4c\x0c\xae\x51\x0b\x99\x0d\xdd\x35\xa2\x4d\xff\x77\x43\x77\x91\x17\xb8\x6c\x9b\x0b\x1a\x1d\x2a\x98\x71\xbb\x46\xed\xb1\x64\x5a\xbe\xb7\x83\x8b\xff\x65\x51\x44\x32\x95\x75\x49\xbd\xa0\x47\xf5\x82\xf7\x0f\x70\xa9\x9c\x9f\x09\xdc\xad\x67\x92\x59\xf9\x56\x4c\xcd\x79\x09\x99\xd5\xd0\xfe\x7a\x1b\x29\xd1\x6e\x25\xf0\xed\x0d\xa2\xb2\x62\xf0\xed\x4c\x7a\xec\x99\xa4\x5b\xa7\x14\xca\xaa\x91\x51\xf1\x48\x76\x06\xd9\xd7\x84\xac\x11\xa1\x7a\x6e\x94\x7d\x85\x34\x03\x22\x05\x7d\x0d\xfe\x76\x6d\x80\xdb\x6e\xa3\x70\x78\xf0\x91\x92\x70\xdb\x65\xec\x0d\x68\x58\x30\x36\xc5\x8a\x51\x72\x17\xcd\x95\x88\x4d\x71\x81\x8e\x21\x97\xf6\xea\xea\xe2\xda\x59\xc2\x3f\xa9\xd8\x14\x98\x18\xc7\xa6\xc0\xa7\x1d\x8d\x29\x31\x44\xf1\x95\x80\xfa\x0e\x1f\x10\xea\xeb\x93\xb5\x4d\xfc\xe6\xfa\x1b\x02\x4a\x70\xe9\x41\x41\xb9\x93\x1a\x8c\x73\x78\x6d\x93\x6c\x2b\xdd\x42\xf2\x26\x51\xa9\x2c\x5a\x7a\xe5\x5c\x2a\xa2\xa5\x97\xc5\xb1\xbc\x39\x59\xb7\xc5\xb3\x4a\xa0\xdc\x9c\x9c\x4a\x18\x80\x9c\xbc\x6a\x48\x86\xa9\x14\x05\xe0\x0c\xc6\x9d\x17\x05\x60\x18\x47\x01\x18\x69\xa2\x00\x8c\x92\x51\x00\xf2\xb6\x99\x6c\xfa\xb9\x7f\x14\x80\x91\x14\x05\xe0\x32\x47\xae\x37\x8a\xe5\x7a\x71\x31\xf4\xc0\xfb\xea\x9e\xb8\xe5\x33\x81\x5b\x5e\xa0\x87\xcc\x68\x0e\xc5\xd8\xcf\x13\x8e\xde\x47\xb1\xcb\xcb\x91\xce\xd1\xfb\x5a\x76\xf4\x7e\x99\xe7\xe8\x7d\x40\x3d\xa4\x6a\xda\x64\x28\x8c\xe4\x29\xa3\xb3\xf1\x1c\x17\x71\xad\x3e\x94\x5d\xab\x0b\x37\xea\xaf\x9d\x57\xd9\x78\xec\x8c\x43\x26\x81\xc7\x7e\xad\x01\x63\xb3\xfb\xe0\xde\xbe\x9d\xcf\x28\x80\x79\xa8\x20\x68\xcf\x11\x41\xfb\xea\x01\x9d\x3b\x9b\xeb\x4a\x8f\x07\xa1\xb9\xb3\x6f\xf0\xf4\x7c\x8e\x88\x60\x75\x3c\x67\xe9\xf1\x6c\x33\xfb\xd0\xb3\x53\x1e\x90\x33\x5c\x05\x7b\x79\xae\x82\x27\xe8\x2a\x58\xf3\x95\xbf\xc1\x4f\x70\xae\x97\x60\x4f\xf1\x12\xec\x1b\xbc\x04\xc7\x3e\x82\x7b\x8a\x8f\xe0\x88\xb0\x82\x3b\xd0\x62\x0f\x8e\xe3\x30\x6f\xc0\x3d\xe1\xda\x0f\x52\x98\x0b\x60\x3f\x76\x01\x4c\x1b\x42\xe7\xc3\xcc\x99\x8b\xde\x05\xb0\x4f\x81\xa7\xbd\xd8\x05\xf0\x38\xe5\x02\x98\x50\x81\x9a\xd4\x25\x2a\x84\x6c\x32\x3f\xc0\x09\x0c\xae\x1f\xf9\xd1\xb5\x9b\x03\xb3\x17\x5d\xe9\x48\xf1\x84\x17\xdd\x91\xde\x8b\xee\xe9\x03\x7b\xd1\x0d\x85\x17\xdd\x09\xf5\xa2\x3b\xd0\x7b\xd1\xcd\x58\x71\x49\x2f\xba\x9b\xaa\x14\x7f\x14\x31\xe2\x5a\xaf\xba\xfd\x6f\x73\xe2\x5d\xf4\x5c\xe2\x74\xcf\xdd\x9d\x89\x5a\x3b\x90\x1b\xa8\x93\xcb\x24\x05\xc4\x26\x47\x16\x27\x88\xec\x4c\x8a\x8d\xa0\xef\xfd\x89\xc2\x8d\xe2\x09\x7c\x89\x42\x86\xf4\x4e\xf7\x8d\xf3\x74\xa1\x11\x00\x03\x8f\x6b\xf0\xe2\x14\x8f\xaf\x46\xb9\x05\x79\xbc\x0f\xd0\x75\x5f\x76\x62\xbe\xf9\x46\x67\xc9\x9a\x31\xe4\x39\x4b\x5e\xea\x9d\x25\xfb\xaa\xab\xe2\x5b\xa3\x64\x32\xed\xa9\xd8\x97\xbc\xf3\x7a\x77\x77\x7a\x2e\xea\x1b\x3d\xf5\x1a\xbc\xf2\x0e\x75\xc6\x12\xa3\x84\x57\xde\x7f\xa4\x8c\x25\xfe\x51\xdb\x49\xd8\x9c\x84\x14\x32\x0a\x19\xcc\x9d\xf3\x52\x0b\x09\xc9\x35\x6f\x5d\xb8\xe6\xfd\xba\x23\x2b\x96\x69\xcd\xfe\x6c\xee\xe7\x55\x77\x4b\xcd\x29\xf6\xf0\x9c\x3b\x4f\x79\xce\x1d\x3e\x80\x39\xc4\x43\xfb\xd5\xe5\x9a\x75\x9d\x30\x75\x23\x09\x53\xef\xe5\x14\x56\xb5\x88\xf0\x35\x16\x11\x7e\x96\x45\xc4\x50\x6f\x11\x71\x0f\xdf\xaf\x43\xd5\x22\x22\xa3\x06\xa3\x45\xc4\xf0\xbe\x16\x11\x71\x04\x67\x67\x03\x0f\x48\x8c\x3a\x1d\xf8\x11\x79\x95\xf5\x23\x47\xb2\x7e\xe4\x48\xd6\x4f\x3b\x92\x1d\x40\xa2\x30\x95\x18\xc2\xef\x5c\x29\xaf\x8f\x6d\xdf\x57\xca\x6b\x14\x52\x66\x4b\x79\x8d\xe2\xda\x7c\x47\xae\xf7\xb7\x93\xc8\x74\xd5\x90\x89\xf0\x36\x4a\x01\x8b\x38\x81\x35\x5a\xe3\x67\x1b\x59\x18\x1d\xe5\xe6\x19\x59\x0c\x1f\xd1\xc8\x62\x78\x3f\x23\x8b\xe1\x9f\x60\x64\xa1\x69\xb3\x80\x91\x85\x4e\x0c\x6e\x96\xa4\xd2\x57\x64\x94\x27\x49\xe5\x19\x20\x63\xbe\x24\x55\xe4\x21\xa3\x4c\x49\xea\xa8\x90\x24\x35\xa9\x74\xf0\xa8\xd2\x21\xc3\xa7\xea\x98\x52\xac\xfc\x67\x01\x13\x8e\x6d\x7a\xba\xb6\x8e\x4b\x84\x74\x74\xab\x98\xf6\x6d\x15\xa3\x8d\xed\x1e\x16\x16\x06\x4b\x91\x4c\x4f\xaa\x7b\x7a\x86\x35\x38\x6b\x15\x9e\x61\xfd\xa4\x63\xd8\x2c\x1b\x0e\xdf\xe4\x3d\x15\x8f\x5a\x49\x30\x1d\xf6\x46\xbe\xce\x15\x04\x0b\xd2\x95\x21\xbf\xb6\x92\x55\xc8\xd1\x65\xab\x86\x91\xe3\xa5\xa6\xf1\x3c\x6e\xde\x4d\xca\x89\x45\xbd\x50\x89\x8b\x1a\xb5\xfc\x78\xe7\x92\xb6\x83\x17\x4c\x30\xf9\xde\x07\x16\x21\x9c\x07\xad\xd2\xb1\xef\xd6\x8e\x7d\xf8\x10\xed\xef\x8e\xff\x76\xfc\xf7\x12\xef\xd6\x7f\x7d\xdf\x7b\x76\x40\x61\x16\x4e\x89\x2d\xd9\x83\xbf\xfc\x57\xb9\x5d\xfe\xaf\xd2\xc9\x7f\x95\xb9\xc0\xb6\x5c\xfa\xfe\x69\xef\xd9\xc9\xf7\x0b\x3c\x61\xe0\xcf\x0c\xfe\x6f\x9f\x60\xf5\x8d\xef\x9f\xc2\x2f\x7c\x2a\x95\xb9\x49\x60\x92\xd3\xc4\x6c\x36\xd6\x80\x19\x9f\xd2\xb2\xac\x3c\xed\x57\x81\x0a\x68\x3e\x6d\x0d\xc8\x9a\xe7\x97\xc7\x5c\xda\xe2\xa3\x70\x5d\xa0\x79\xc8\xa5\x96\x7e\xca\xa6\xa1\xb4\x53\x95\x19\x9c\x1c\x30\x61\x6e\xff\x43\x02\xdd\x4e\xe2\x5b\x5a\x6f\xe8\x33\x71\xda\x15\x9f\xf9\xd8\xf5\xf9\x11\x15\xe6\x9a\xef\x84\x8c\x14\x9c\x3a\x61\x4a\xd8\xcd\xfa\xa6\x58\xec\xdc\x38\xd6\x74\x0f\xc9\x76\x54\x83\x2c\xc5\x9e\xaa\x76\x3a\xd3\x1c\x81\xa6\x1f\x4b\x48\x7d\xd5\x4e\x27\x61\xd3\xa2\x70\xb8\x66\x38\x1f\x5a\x48\xa7\x4d\x59\xb4\x42\x69\x51\x1b\x6a\x5d\xe6\x31\x38\xb2\x3f\xf3\x47\x59\x01\x05\x0d\x82\xf0\xca\x7c\x3b\xf6\xc2\x51\xd4\xd0\xac\x44\x5e\x40\x67\x8a\x78\x24\x64\xb1\xba\xcd\x35\x2b\x45\xdb\x18\xba\xb0\xfa\xec\x98\x06\x1c\xe5\x49\x1b\x48\xfa\x7b\x09\x0d\x53\xc2\x2c\xf8\xdd\x98\xaf\xc7\x18\x55\xc7\x19\x8d\x30\x03\x23\xa7\x16\x5a\x2e\xe4\x32\x5a\x68\x97\x28\xc0\x20\x5d\x98\xc4\x23\xe0\xcc\xd8\x67\xb3\x9b\x18\x26\x6b\xd4\x82\x6d\xb4\xb7\x10\xc0\x6e\x58\x06\x29\x8b\x8f\x44\xfa\xcc\x1c\x19\x94\xcb\x04\xf0\x6e\xc8\x6b\xb5\xbe\x43\x67\x16\x8a\xec\xe0\x6b\x14\xcd\xd7\x2f\x24\x7a\xd8\xe5\x02\xe0\x60\xcd\x89\x89\x12\x22\x12\xe6\x60\x7a\x28\x8e\xef\x68\xba\xee\x31\x4f\xdf\xdc\x7d\xbc\x2f\x67\xb1\x20\x89\x19\x30\x71\x59\x52\xce\x14\x43\xb9\x24\x64\x76\x16\x9d\x09\xc9\xdd\x55\xc4\x9b\x64\xf7\x5e\xde\x24\x45\x29\xa9\x71\xc5\xcd\xa7\x4d\xb8\x77\xa5\x05\x8a\x95\x67\x89\x33\x97\x5f\xeb\xc4\x4f\x9e\xb0\x89\xca\x9a\x8b\xd9\x16\xbf\xa5\x07\x57\xeb\x24\x44\x21\x22\xa3\xd4\xc6\xd3\x25\xd0\xc5\x3f\x42\x9e\xf7\x54\xaa\x07\x93\x50\x3b\x71\x3c\x7b\xd1\x9b\x85\xeb\x03\x1a\xa3\x01\x88\x6a\x9f\x72\xe4\x6d\xfb\xab\xe7\xc8\x22\xf8\xd3\xe9\x74\x16\x6e\xb0\x30\xd3\x1e\xfb\xf6\x6e\xc1\x64\xc0\x5e\x19\x45\x9c\x4d\x11\xb6\x6f\xe9\x20\x64\xaa\x46\xd6\x38\x84\xc9\xc9\xea\xe8\x68\xf9\xfd\x82\xcb\x11\x9b\xf6\xfa\x6a\x79\xed\x2c\xe0\x1f\xb2\x2a\xe3\xdf\x72\xf9\x9a\x96\x44\x89\x33\xe2\x2f\x97\x0e\x86\xdb\x39\x99\x40\xa9\x93\x7a\x13\x19\x96\xab\x6b\xb2\xac\x54\xa2\xea\x37\x4e\xad\xb9\x89\x2b\xdc\x94\xcb\xf6\xe2\x6a\x73\x7d\x62\xad\xaf\x36\xff\xb9\xa4\xee\x21\x31\x5c\x0d\x7d\x70\xf0\x0d\x54\xe7\xac\xe1\xb3\xb7\x97\x7e\x60\x10\xd0\x23\x00\x72\x27\x1a\xd8\x62\x8b\xb7\x30\x80\x53\x68\x69\x79\x72\xdb\xbc\x85\x26\xb6\x57\xb7\xd7\xce\x29\x39\x2d\x3b\x6b\xf8\xd5\x9c\xdd\xc3\xf9\xf1\xf6\xca\x83\x2e\xd1\x4b\xc5\x7a\x51\x3e\xae\x3d\x91\x50\x78\xde\xd3\xa5\xcd\x5d\xa6\x90\x41\xeb\x26\xe7\x7a\xb2\xda\xe2\xb2\xad\xac\xec\xc4\x2d\xd5\xc8\x2e\x5c\x53\x32\x93\xc0\x61\x0f\x3e\x67\x19\xa2\x6e\xf9\x41\x7f\x64\x89\x49\x86\xce\xed\x80\x70\x08\xe8\xf2\x3b\x23\xe7\xce\x0b\x72\x01\xff\x5f\xc2\xfc\x64\x4d\x04\x5b\xae\x6e\xce\x62\xcd\x59\xa1\xe5\xbe\xa0\x4a\xcf\x9c\x0b\xd2\xfe\x9e\x5f\xcd\x7c\xfc\xe5\xb3\xb2\x0b\x5f\xfb\xc2\x39\x83\xfe\x9c\x97\x9d\x63\xa0\x4f\x2f\xca\x40\x74\x5f\x9c\x5c\x42\xfa\xa5\x73\x61\xa7\x55\x95\xa5\xf2\x39\x9f\xea\x3d\x26\xfa\x32\x39\xd1\xe9\xb9\x3b\x2f\xd7\x5f\xec\x76\x11\x3a\xd3\xc9\x8c\x8e\x5e\x03\xce\x88\x5a\x21\x06\xd0\x69\xd2\xd1\x03\x26\xd1\x94\x97\x4a\x49\xb5\x72\xc9\x1e\xca\x1f\xfb\xce\xf1\xdf\xc9\x00\x7f\x0d\xf1\x9f\x11\x3d\x67\x55\xb1\xa3\xa2\x1b\x48\x49\xc0\x4b\x89\xeb\x37\x91\x42\x51\x92\xb2\xe0\x52\xe7\x91\x73\xfc\xe8\x50\x40\x23\xd6\x2b\x5b\x48\x64\xc4\x7a\xa1\x94\x70\x5f\xa0\x97\x8b\x4c\xe6\xde\x58\xc5\x98\x3f\xdd\x1b\xed\x35\x65\xa2\xde\xbd\x71\x8e\x52\xf4\xb2\xbd\x21\x7e\x33\xb7\xdd\x0f\xcf\x96\xb0\x54\x27\x1f\x60\x63\xee\x8d\xf5\xcb\x96\x8d\xe8\xa0\x7e\x66\xd9\x08\x7d\x45\xfc\x3c\xd9\x88\x60\x3c\xfc\x02\xb2\x11\x91\x87\xf8\x99\xb2\x11\xbf\x90\x6c\x24\x89\x99\x83\x73\xbf\xfb\x2d\x28\x33\x64\xb1\x8b\x98\x42\xde\xc4\x60\xbf\x08\x43\xb6\x94\xfc\x39\xde\xe8\x79\xb5\x1b\xa7\x5b\xe9\x30\x5e\xad\xc3\xa7\x6c\xe6\xf4\xe0\x37\xc6\x43\xe9\x88\x89\x59\xe5\xb2\x6f\xab\x0c\x87\x85\xc0\xe8\xcc\xef\xee\x7c\xb2\x70\x16\x77\x77\x6d\x8e\x57\x5b\x19\x31\x4d\x72\x50\x76\xca\xec\x6d\xe0\xaa\xde\x1f\xc5\xc4\x5d\xfb\xa1\x77\xbc\x84\xa5\xdc\xad\x94\x84\x8c\xe0\x69\x04\xb0\x62\x70\xa6\xdb\x82\x91\x38\x72\xf2\xcd\x7d\xaa\x0c\xe1\xb8\xa3\x75\xce\xb5\xd2\x89\xd9\xcb\x8e\x74\x9f\xa4\x9c\xfe\xcd\x04\x80\x6f\xad\xe0\x1b\x94\xc6\x9a\x67\x91\xdf\xbe\x6d\xbe\x2d\x5d\xd0\xee\x06\x39\x4e\xfb\xd6\x8a\x29\x5d\xba\x80\xc1\x92\xee\x26\x69\x1b\x31\x3b\xa9\xb5\x66\x18\xcf\xe5\x34\x6d\x4f\x17\xc6\xf6\x74\xba\x06\x98\x39\x1d\xda\x06\xde\xab\x20\x9d\xb4\xf3\xc4\xa4\x3d\x4e\x00\x94\xf3\x7b\x07\x40\x51\x39\x78\x6d\x13\x2c\x0b\xa5\xb6\xef\xee\xfa\xbb\xcc\xd8\x29\xe7\x29\xf6\xe6\x3c\xdf\x1f\x04\xb0\xad\x9c\x99\xba\xbb\x2b\x09\xbb\xa0\x6f\x0f\x73\x52\x80\x8d\x1a\xec\xc3\x3d\x89\xcc\x30\xa4\xa4\x0d\xd0\x92\x50\x87\x1c\xf7\x8f\x9b\xa2\x1d\x07\x66\xf9\xc4\x72\xdc\xdd\x55\x5f\xec\x44\x48\x9d\x73\x79\xf1\xe0\x82\xa4\x40\x23\xa0\x60\x32\xd6\x0f\xfe\x6e\x5d\xb9\xd7\x8d\xab\x6b\x6d\xc0\x9c\xa9\xbc\x4d\xa5\x13\x85\x57\xcb\x65\x29\x2a\x22\x49\xd0\x44\xcf\x10\x37\x57\xc5\x9c\x34\x6a\x36\x54\x3c\x0d\xe9\x11\x33\xb5\xab\x1c\x26\x80\xf6\xe7\x9b\x04\x16\xc0\x68\xa7\x34\xb7\x86\xdc\xc8\x13\xbe\xcc\xb6\x56\xb4\xd8\xc2\x1a\x49\xc5\xea\x96\x46\x32\x6e\xa9\x9e\x2d\x9d\x5a\xab\xad\x44\x79\x82\x84\x5a\x43\x49\x6a\x28\x25\xa8\xe9\xd5\x74\x3a\xda\xd2\x2b\x89\x5c\x79\x91\x9d\xf5\x4e\x5a\xfb\xe6\xaf\x23\xc5\xfa\x31\x2e\x21\xcc\x8a\x87\xe6\xfc\x31\xa6\xbd\x9d\x31\x7f\x3e\x9d\xf6\xf6\xbe\xd3\xde\xce\x9d\xf6\xf6\x63\x4e\x3b\xc7\x2b\x6b\xf7\x84\x7c\xad\xa7\xf7\xc4\x95\x40\x57\x5f\x33\x53\xe6\x82\x3b\x42\x71\xde\x09\x9f\x86\x7f\x07\x06\xfc\x78\xf8\xe5\x7f\x9f\xd5\xaf\x33\x53\x8c\xd6\x17\xfe\x9b\x5a\x5f\xf7\x1a\x44\xf1\xc5\x74\x9f\xb5\x84\x34\x9c\x2f\xc2\x6a\x2c\x9c\x76\xec\x86\x67\x29\x63\x80\xb0\xcb\xf9\xee\x4e\x39\xad\x42\x5d\x9d\xe6\x59\x29\x76\x69\x70\x8d\x1e\x0d\xae\xd1\x77\xea\xd5\x17\x14\xe8\xa3\x65\x7d\x87\x46\xd3\xc3\x91\xd1\xf4\x70\xec\x68\x71\xbd\xfd\x39\x4c\x03\x0c\x9f\x3a\x1e\x3a\x3a\xe2\xb1\xfe\xd9\xb3\xd1\x92\x11\x37\xff\x4e\x78\x4c\x2d\x31\x8b\x48\xa0\x81\xa8\xfb\x9f\x84\xdb\x54\xbd\x9d\x62\xb6\x55\xa2\x04\x06\x6a\x06\x0c\xec\x49\xd1\xae\xe8\xf1\x98\x3e\x31\xc3\x28\xeb\xaa\xfe\x1d\x39\x7e\xf1\x1d\x77\x5a\x31\x27\x0b\xb2\x34\x38\x1c\xbd\xd1\xb1\xed\x33\xe6\x56\x06\x3f\x90\x13\x18\x9c\x77\x26\x21\x85\x30\x09\x8a\x91\xb6\x7c\x3e\x44\x6e\x60\xf2\xbc\x89\xaa\x24\x84\x54\x65\x8c\xf2\xb9\x4f\xb5\x09\x20\xe5\x2c\x69\x20\x6f\xac\xf4\xb1\xa5\x17\x3a\xe3\xaa\x02\xd2\x0b\xa3\x4c\x81\x1f\x0c\x7b\x1b\x0a\x4a\xe7\xcb\xde\xd8\x98\x3c\x33\x37\x23\x1e\x27\x5b\x22\xa0\x93\xb6\x98\x25\x02\xf4\x15\xe9\xe4\x49\x04\x04\x7b\xdb\x29\x20\x11\x88\x18\xdf\x4e\xa6\x44\xa0\x53\xd4\x25\xa5\x1e\x22\x44\x04\xa7\x7e\xa3\xb8\xa4\xbc\x41\x98\x41\x7f\x7e\x0a\xeb\x68\x2f\x78\x94\xe2\x22\x2a\xcb\x66\x54\x2f\xe7\x81\x2e\x6c\x58\x41\xa3\x14\x4c\x2f\xe0\x81\x82\x5b\x56\x30\x53\x30\x92\x94\x68\x79\x54\xa2\x95\xe1\x2b\x73\xf0\x20\x0e\x2d\xf1\x1c\x2e\x1c\x14\x63\x10\x23\x50\x22\x21\xca\x56\x12\xa2\x4c\x8f\x8e\xb6\xaa\x5d\xde\x56\xb2\xcb\x1b\x24\x44\x2c\x03\x26\x62\x49\x09\x4f\xc8\x56\x6f\x9b\xb7\xca\xb1\xcd\x1b\x93\x15\x19\x66\x19\x0d\x4d\x68\x06\x53\x6c\x0c\xd4\xa6\x6c\x5a\x2b\x11\xf7\xa2\xb1\x32\xd8\xea\x6d\xb2\x42\x63\x2c\x60\x24\xf4\xf2\x3e\x85\xe1\x11\xd1\x0c\x95\xd4\x63\xea\x2d\x9a\xde\x44\x20\x61\xc8\x1d\xa9\xfa\x06\x05\x2d\xfb\x96\xc2\xb2\x6f\xa9\x58\xf6\x2d\x6c\xb4\xd8\x73\x16\x3a\xcb\xbe\x85\x62\xd9\xb7\x88\x2c\xfb\x06\x47\x47\x83\xc8\xb2\x6f\xf0\xa0\x41\x3c\x56\x18\xc4\x63\xf5\x0d\x41\x3c\x38\xa5\x9c\x2d\x05\x53\x0d\xfa\x06\xf7\x36\xe8\x93\xeb\x2a\x66\xc7\xc7\xa5\x39\x9c\x3d\x96\x7c\x4b\xe6\xd9\xcf\x3d\x8e\xad\x1f\x0e\xe0\xd1\x8d\xfd\x5e\xe9\xa3\xd3\x71\x69\xcc\x59\x52\x96\x75\x7e\x52\x6b\x9d\xa3\x2c\x2b\xa4\xc6\x4b\xc5\x8d\x04\x07\x91\xd1\x11\x19\x32\x23\xc1\x9e\x6c\x24\x48\xd3\xa4\xa4\xdc\xfd\xfe\x6d\x46\x82\xc3\x3d\x8c\x04\x87\xb1\x8c\x32\x2e\x86\xc6\x5b\xdf\x6c\x24\x38\x57\x0c\x2d\x4d\x46\x82\xc3\xd8\xa2\x67\xa8\x33\x12\x5c\x45\x46\x82\x7e\x01\x23\xc1\xbe\x1d\xcb\x57\x35\x46\x82\xc9\x03\x4b\xa7\xba\x1f\x15\x31\x12\x1c\x14\x31\x12\x94\x56\xb8\x58\x26\x7b\x58\x09\x0a\x69\x2f\xda\xab\xde\x37\xb2\x09\x33\x0c\x1c\x3c\xa4\x61\x60\x7b\x0f\xc3\x40\x6e\xdb\xf8\x2d\xc6\x8d\xdc\x16\x70\xb0\x8f\x2d\x60\x64\x82\xd8\x53\x79\x08\xc5\x2c\x43\x21\x44\x39\x22\xc0\xc7\x5b\xc9\xb5\x17\x57\xfe\xb5\xe3\xc2\x3f\x68\xe7\x2d\x01\x59\x16\xf1\xe5\xa8\x33\xcd\xca\xb0\x2e\x04\x96\x3c\x30\x5a\x17\xf6\xc8\x98\x59\x17\xc2\x05\xa7\x59\x20\xf7\x37\x30\xec\x90\x2e\x65\x24\x34\x26\x86\x1d\x61\x62\xe8\x2b\x26\x86\x1e\x33\x31\x0c\x92\x26\x86\x18\x34\x53\x18\x19\xf6\x1d\x51\xf8\xaa\x27\x19\x19\xf6\xd3\x46\x86\x7d\xc9\xc8\x70\x0c\x29\x63\xc7\x8b\x8d\x0c\x59\x30\x8b\x3e\xc6\x7d\x51\x8d\x0c\x3b\x92\x91\x21\x8b\x6e\x81\x99\x38\x1d\x0a\xcb\x09\xe8\x77\xd9\xc8\x90\x82\x9d\xa0\x02\x76\xbb\x9f\x1c\x33\x52\x23\x84\xa6\xa2\xd8\x5a\xfd\x09\x30\x9a\x0b\xcb\xe7\x06\x83\xe8\xde\x3b\x72\xd0\x24\x65\x93\xdd\x5a\xea\x92\xeb\x14\xa3\x58\xad\x3d\x7b\x32\xa5\x01\x39\x51\x16\x10\xcc\x17\x74\xe6\x68\x5f\xac\x49\x4e\xac\x7f\xe8\x68\x88\x1c\x3a\x97\x3d\xa0\x85\xec\xe4\x6a\x76\x1d\xcf\xb6\x83\xc6\x24\x94\xc5\x77\x12\xb1\x46\x3c\x6e\x1f\xd9\xc3\x88\x4e\x26\xfb\x48\x3e\xc2\x5f\xcb\xd2\xa1\x2a\x46\x5d\x1e\xea\xcd\x24\xb7\x7b\x9a\x49\x26\x2d\x7e\x92\x66\x92\x73\xd5\x4c\xb2\x9f\x32\x93\x1c\x9b\xb7\x4e\x52\x06\x21\x7c\x7b\x91\x0e\x6e\x8f\x07\xdd\x1b\x01\xab\xba\xab\xdd\x1d\x41\xe6\xee\xe8\x39\xe2\xfd\x55\x97\x6e\x5a\x9d\xb1\x5e\x4f\xb1\xe1\x73\x44\x32\xdb\x18\xa9\x6d\xd0\x83\x9d\x6a\x8b\xed\x15\xaf\x3d\xcb\xe3\x46\xb6\xf0\xb6\xd9\xe1\x7b\x84\xf6\xa8\xd1\x23\xf4\x2f\x1d\x6d\xa3\x4b\x9d\x6e\x5e\xb5\x49\xff\x9a\x48\xb3\xd0\x08\xe4\x39\x11\xdf\x25\x60\xf8\x3a\x49\xbe\xa2\xf8\xe2\xeb\xe4\x9c\x6c\x49\xe1\x8b\xe6\x5c\xdb\x45\xce\x43\xef\x6b\xde\x28\x48\x7c\xc7\x91\x4c\x15\x23\xb2\x1f\x4f\xc9\x7d\x8d\x1f\x17\x7a\xe3\x47\x4f\x35\x7e\xdc\x26\x05\x9f\x69\x9b\x47\xad\xf4\x93\x1b\x25\xee\x19\xe5\x29\xb2\x73\xec\x9b\xed\x1c\x07\x3a\x3b\xc7\x61\xc2\xce\xf1\x58\x1b\x14\x6a\x64\x12\xaa\x8e\x99\xd1\x62\x64\xee\x78\x58\x43\x63\xc7\x5a\x64\xec\x58\x17\xc6\x8e\xa2\x3c\xbd\x04\x11\x7b\xc0\x4a\x44\xb6\x8f\x8a\xfc\x93\x77\xef\x4b\x2f\x5c\x23\xd1\x10\x9b\x36\x27\x70\x45\x59\x06\x91\x1b\x53\x7c\xa9\x84\x41\x64\x64\x32\x39\x4b\x19\x44\x0e\xbe\x21\x02\x54\x21\x93\x47\x73\x10\xa8\xad\x56\x26\xbb\x26\x1b\x84\x27\x68\x8e\xd2\x94\x3c\xe5\x2b\xf7\xf8\xe4\x9a\xf8\x6a\x05\x26\xbb\xdb\x91\xd3\xcc\x6a\x11\x0e\x22\xae\x67\xaf\xca\xea\x3e\x3a\x72\x35\x80\x5e\xdc\x3c\x32\x84\x57\xe4\xa6\x7b\x67\xb7\x13\x22\xe5\x7b\xc5\xb0\x1a\x44\x26\x97\xd1\x6d\xe5\xe2\xcf\x6f\x0f\x4a\x35\x50\x4d\x30\x25\x81\xf7\x1a\x1e\x28\xf5\x4d\x23\x44\x71\x3b\x88\x9e\x21\x58\x54\xca\x2c\xb2\x2f\x45\x90\x1a\x24\xab\x7d\x5c\x01\xb2\x51\xa2\x9b\x2d\x40\x36\x9a\x56\xe6\xdb\x48\x66\x9a\x57\x66\xda\x48\x66\x5a\x57\x66\xda\x68\x19\xad\x2b\x8b\xd8\x48\x1a\xfd\x9e\x65\xdb\x48\x1a\x4d\x2b\xf3\x6c\x24\x07\x8f\x68\x23\x39\xb8\x9f\x8d\xe4\xe0\x4f\xb0\x91\xd4\xb4\x59\xc0\x46\x52\x27\x96\x36\x4b\xfd\xe9\x2b\x74\x9d\x9f\x2d\xf5\xe7\x19\x20\x63\xbe\xd4\x5f\xe4\x21\xc3\x4c\xa9\xff\xb0\xa8\xd4\x7f\x93\x1e\xd0\xc6\x71\x89\x10\x2d\x6f\x14\xa9\xff\x46\x09\x44\xb5\x51\x6c\x1a\x37\x0f\x17\x88\xaa\x17\x05\xa2\xba\x57\x4c\x2a\xbd\xc5\x72\xc6\x1d\xbb\xbf\xc5\xa4\xc1\x28\x13\x25\x44\x41\xd2\x5a\x12\xc6\x00\xb5\xff\x1c\xce\xc2\x49\xd8\xc7\x84\x07\x53\x19\x7c\x1e\x2d\xe7\xfb\x84\xd3\x5e\xc5\x87\x47\x42\x0b\x00\x6f\xa2\x7c\x6f\x85\xcd\xa3\xe7\x94\xe1\xde\x02\x5a\x1f\xdd\x0e\x38\x5e\xab\xde\xa8\xd4\x49\xdb\xf9\xf5\xe9\x33\x7e\x7f\x96\x3e\x94\xca\xd5\x17\x4f\x7c\x16\x17\xaa\x5c\x3a\xfd\x8e\x7c\x77\x50\x83\xff\x4a\x65\xaf\x5c\x82\x7f\xbf\x8b\xde\x5a\xed\xf2\x77\x76\xb9\xf4\x33\xfc\x3a\x7e\xd2\xae\xe0\xef\x54\xee\x28\x33\xe4\x28\x97\xfe\x05\x95\x1f\xcb\xe5\xff\x2e\x95\xc7\xdf\xf0\xfe\xb9\xf9\xfd\x2e\x1a\xcf\x17\x98\x91\x65\x35\x18\x4f\x17\xc0\x7b\xdc\xdd\x2d\x45\x74\x89\x37\x40\x77\x7a\x5c\x6c\x1d\xbd\x6f\x05\x11\x7f\xdc\x78\x73\x6d\x27\xa6\x29\x9a\x98\xc0\x72\x11\x65\x52\x91\xbd\x4a\x51\x39\xba\x78\xac\x5f\x57\x30\x0f\x86\x65\x30\x59\x11\x54\x79\x78\x50\x45\x82\x5b\x3b\xf1\x5a\xb5\x86\x47\xdd\x70\xeb\x4b\xb1\xa5\x2b\xf9\xc7\xe7\xed\xa4\x2a\xf2\xa1\x22\xf4\x24\x13\xcf\xc4\x8f\x30\x13\x6f\x9c\x78\xac\x48\xf5\x36\xa2\xf9\xc0\x8f\xac\x9d\x07\x29\xc7\xbb\xaa\x37\xa3\x4c\x1b\x4b\x69\xf8\x84\x3e\x37\x96\xb0\xa0\xbf\xd0\x48\xe6\x4c\x54\xf9\x73\x24\xaa\xfc\x45\x88\x2a\x57\x05\x44\x95\xe7\x45\x44\x95\x2b\x59\x54\x79\x74\x44\x1f\x3d\x77\xb6\xa3\xee\xb1\xfe\xf0\xe6\x0f\xa5\xf6\x9b\x6c\x71\xb4\x3d\x45\x92\xd7\x09\xfd\x65\xe4\xa4\x58\x15\x9f\xfe\x4b\x84\x9d\xf9\x97\x81\x40\xa6\x02\x24\x37\x16\x20\xcd\x1b\x91\x1a\x28\x4b\x76\x30\x62\x6e\x44\x20\xe5\xc4\xf1\x61\x69\x62\xf0\x11\x91\xf2\x3d\xa4\xd4\x29\x15\x6c\x37\xae\xbe\xf2\x5a\xaf\xae\x77\xd7\xc8\xca\x19\xbb\x9e\x16\xfd\xfe\x95\x1a\x42\xf3\x79\x68\x29\x35\x35\xfe\x6a\x1a\x0e\xc2\x4f\x1a\x0c\x85\x42\x24\xb0\x62\x43\x81\x2e\x92\xfb\x0d\x7a\x90\x1a\xf4\x40\x37\x68\xd8\x90\x4e\x34\xef\xa3\x48\x70\xd1\x18\xc4\x3a\xb0\x49\x52\xb2\x3b\x89\x24\xbb\x93\x2c\xe9\xf4\xcf\x54\x3a\xbd\x52\x44\xbb\xbf\xa0\x68\x77\x22\x36\xd3\x55\x6c\xa3\x84\x5d\xb4\x89\x64\x4a\x85\x3d\xb4\x21\x29\xf1\x0d\x8c\x8e\xe9\xa2\x9b\xf7\x3d\x97\x10\x4f\x52\xde\xa4\x52\x59\x46\x78\xb9\x66\x67\x19\xa4\x7a\x10\xaf\x82\x7d\xe4\xea\x9d\x94\x5c\x7d\xca\xa7\xb5\x23\xa6\x75\x1a\x4d\xeb\x34\x4b\x60\xfe\x0b\x0a\xcc\xd5\x59\xfd\x19\x67\xf5\x86\xd7\xd7\x15\xf5\xdd\x44\xf5\xdd\xec\x57\x5f\xb4\x1e\x6a\x0d\x56\xb5\x71\x06\xb6\x75\x39\x2e\x79\x42\xf3\x18\x55\x53\x6f\x64\xd6\x71\x9c\x51\xc7\x5f\x23\xa9\xd0\xa1\xba\xc3\xb0\xce\xdc\x28\x8d\xf1\xf5\x23\x94\x56\xc5\x46\x92\xbd\x24\xa6\x45\x07\x93\x5d\xcd\x0d\x13\x05\xff\x94\x6b\xa7\xf1\x13\x3b\x49\x7f\x36\x61\x0c\xb6\xe4\x27\x74\x5b\xfb\x8b\x51\xe7\x78\x4b\x33\x54\xac\xcb\xd6\x6b\xfc\x12\xbf\x3a\xaf\x2b\x1b\x6a\x2c\xb2\xe1\xd4\xb3\x09\x7e\xf0\x53\xce\x10\xb4\x70\x83\x0f\x02\x6e\xf0\x03\x5a\x98\xa4\xe0\x06\xff\xb4\x56\x32\xdc\xe0\x43\x2c\x96\x48\xde\x49\x26\xb8\xc1\x47\x46\x76\xfc\xd6\xfc\x28\xe0\x06\xbf\xa1\x62\xe7\x83\xfd\xf1\xea\xb7\x6b\xe7\x03\xfc\x93\x82\x1b\x60\x62\x0c\x37\xc0\x27\x06\x37\x58\xc1\x85\x19\xad\xb0\xd5\x83\xc2\x0d\x7e\x42\xb8\xc1\x4f\xb9\x70\x03\xfa\x69\xff\xe5\x64\xb4\x7d\x28\x4b\x4e\x5d\x76\xb7\x92\xbf\xe6\x94\xa0\xb9\xe0\x68\x1f\xc9\x4e\x8a\x43\x7e\x42\xa0\x24\x73\x14\x9b\xfa\x74\x9d\x41\xfc\xd0\x73\xc6\xf1\x43\xdf\x19\xaa\xe8\x87\xdf\xf7\xed\x68\x8e\xc6\x64\x6e\x24\x43\xbe\x6e\x1a\xa7\xcc\x66\x7d\xdb\x38\x63\x84\x08\x15\xe1\xba\x5e\xe1\x2e\x1c\x3e\x52\x1f\x9a\xe2\x60\xb9\xaa\x91\x9f\xaf\x29\x47\xc8\xa3\xb5\x45\xa1\xda\xe0\xd7\x38\x98\x41\x96\xdf\x45\x88\x36\xd7\x43\xdf\x9e\x7a\xb0\x6b\x14\xbc\x8d\x55\xc8\xe8\x26\xcf\xf9\x29\x13\x68\xc2\xb9\x9d\x08\x6a\xb2\x82\x9e\xf8\x9e\xe3\x79\xf7\x04\x9b\xc4\xf5\xc9\x70\x93\x36\xad\x51\x06\x9c\xf8\x5e\x71\x30\x07\x1d\x49\xe0\x39\x79\x65\xe8\xf9\x89\x18\xd9\x9c\x7c\x32\x52\x25\x2f\xef\xb6\xbe\x4f\xe6\xe3\x3d\x32\x4b\x5e\xac\xf3\xb2\x4a\x74\x22\x9d\x8b\x4e\xfe\x5c\x50\x31\x0c\xb5\xfe\x87\x13\xaa\xb3\xc7\x84\xe4\xe5\x55\x26\x24\x37\xf3\xf1\x1e\x99\xa5\x09\xc9\xcb\x2a\xa3\x82\x72\xab\x45\x5e\xea\xcc\xf5\x87\x68\x14\x44\xf5\x07\x85\xa6\x83\x16\xc3\x60\x7a\x5c\x05\xe8\x39\x8b\x2a\x35\xf9\x05\x42\xe8\xe7\xa7\xc7\x8d\x9f\x49\x4f\x4e\xea\x7a\x8d\x5a\x73\xc1\x39\xa5\xae\x97\xba\xdb\x35\x68\x20\xd3\x45\x05\x9b\x39\x04\x7e\xb4\x3f\x71\x47\xef\x82\xad\x13\x29\xc7\x95\xe4\x16\x25\xe5\x1b\x4a\x1a\xa1\x69\x6a\xbe\xb2\x45\x8f\xaf\xd6\xa7\xc6\x67\xea\x5d\x95\x5f\xb9\x0b\x54\xbe\x51\x04\xd2\x42\x46\x20\xd1\x34\x29\x29\x9f\x1a\x78\x9d\x3d\xd2\x6c\xd2\xaa\xe7\x51\x31\x43\x65\x1d\x41\x8a\x76\x70\x4c\x64\x97\x59\xc7\x48\xa4\xb8\x58\xb2\x0f\xd1\xea\x17\x94\x20\x0a\xe7\x47\x2e\x50\x82\x97\xad\x12\x12\x44\x7d\x77\x84\xb1\xb0\x42\x6a\x28\x3a\x4e\x31\xb8\xbf\xfe\x91\xfc\xf5\xf0\x8f\x6f\x3e\xc5\x5f\xf7\x53\x0c\x36\x9f\xc2\x3c\x16\x3b\xc9\xed\x0e\x32\x2b\xda\x93\xe1\x85\x3b\xd2\xf4\x5d\xf3\x18\x25\xeb\x17\x58\x1e\xdc\x13\x03\xa5\x52\x6d\xb6\x50\xfa\x3a\xd7\xc0\x63\xec\xb7\x26\x7d\x68\x93\x57\xb0\x2b\x42\xce\xf7\x84\x11\x27\x14\xee\xcb\xb0\xfe\xaa\xe1\x7f\xe4\x89\xd9\x87\x07\xec\xa5\x78\xc0\x82\x15\xa7\x07\x18\xc2\xf2\x7b\x09\x23\x9c\x71\x92\xae\x27\x98\xbe\x59\x34\xd4\xe8\x57\xe3\x57\xe0\xf0\x52\xec\xe2\x9c\x97\xec\x8b\x92\xf3\xa8\xe4\xdc\x54\x32\x8f\x31\x94\xfb\xbf\x7d\x56\x94\x35\xbc\x87\xb3\xfa\xac\x76\x8b\xb0\x93\x45\xd8\xc7\x20\x9f\x7d\x54\xda\x35\x32\x90\xf4\x83\xcd\x8a\x77\x3a\x5d\x78\x6e\xa3\xd1\xd6\x06\xfd\xec\xa3\xf2\x94\xdd\x70\xe4\x47\x9b\xbc\x39\x3a\x92\x04\xb8\xf4\x40\x18\xa6\xf6\x71\xea\x1e\x55\xe8\xca\x88\x80\x7c\x23\x09\x83\x51\xf0\x32\xf2\x9c\xa1\x96\x98\x6c\x8e\x3c\x7d\x74\x52\x71\x13\x2b\x92\xdc\x44\xc8\xd2\x5a\x12\x93\xfb\x2b\xb6\x94\x5d\x5f\x4a\xc6\x9b\x53\x21\x9d\x87\x71\x6a\x1e\x36\xd5\x98\x3a\x60\xf3\xba\xb4\x9b\x63\x4f\x9e\x0d\xa5\x79\xa9\x87\x6a\x2e\x54\x06\xc1\x76\x28\x19\x6c\x1d\xdb\x25\xf2\x96\x23\x52\xf6\x07\x27\x7e\x88\xc0\x89\xef\x14\x70\xe2\x87\x04\x38\xf1\xdd\x37\x3a\x18\x5f\xed\x8f\xb1\xf9\x90\x8f\xb1\x21\x3f\xd2\x7f\x13\x71\x0d\x49\x8f\xf4\x65\xa4\x4b\xda\xc7\x37\x4f\x19\x19\x3c\x5d\x5a\x2c\xe2\xbe\xe1\xd5\x24\x05\xc2\x09\x53\x29\xd3\x54\xca\x4d\x2a\x65\x96\x4a\x99\xa7\x52\x16\x1a\x78\xcf\xd2\xe1\xd6\x9f\x4c\x19\x60\xd3\x40\x83\x29\x50\xcf\x3a\x01\xea\x79\x16\x81\x7a\x9e\x49\xa0\x9e\x8d\x6a\x5d\x19\x67\x3a\x96\x32\x6d\x19\x40\xe7\x96\xfd\xd1\x82\x44\xa8\x0d\xe5\x99\xd1\x86\xf2\xdc\x84\x1d\xba\x40\x8c\xd0\x25\xfe\xf3\x12\x31\x42\xaf\xf0\xd7\x6b\xe7\x45\x8d\xbc\x61\x8d\xbd\x65\x7f\xde\xa9\xd8\x20\x7e\x20\x65\xe0\x80\x6c\xf2\xde\xa9\x91\x0f\x29\xc8\xd1\x47\x56\xdf\x27\xa7\x74\x60\xe1\xf8\x0e\x70\x9e\xed\x12\xf9\x8c\x09\x74\x0e\x78\x4a\x73\x50\x15\x96\x6b\xd4\x7b\xe9\x30\xa5\x57\x9c\x64\xc3\x8a\x5e\xa0\xc4\x55\xe4\xe0\x60\xa2\x9b\x28\x81\x1f\x31\x24\xcc\xad\x64\x96\xac\x64\x9e\xaa\x64\x95\x74\xd4\x5e\x2b\x88\x3d\x9a\x18\xb1\x47\xff\x7c\x1c\x80\xd1\x0f\x7f\x2c\xc0\x28\x2b\x7a\x86\x11\x60\xb4\x8a\xe5\x8e\x40\x9e\x15\x73\x79\x7f\xa3\xc5\x7f\x15\x02\x2a\x65\x47\xf8\xd0\x02\x95\x56\x2a\x50\x69\x74\x3f\xc7\xf7\x74\x5c\x8e\xa7\xb8\xbc\x8f\xdd\xe1\xcb\x80\x69\x83\xf3\xfb\x95\x12\x2b\xa0\xc8\x34\x4d\x33\xa7\x49\x99\x96\xac\x41\x7d\xf3\xb4\x18\x5d\xe8\xaf\xee\xeb\x42\x5f\x42\x75\xbd\x8b\x21\x62\x8b\x08\x37\x36\x10\xbf\x8e\x9d\x21\xfc\xa4\x2e\xf6\x47\xfc\xc7\x31\xf5\x83\xc6\xa0\x64\x13\xfc\x75\x4c\x7f\x86\x88\x2a\xab\xd3\x9f\x53\xfc\xc9\x52\x6f\xf0\xe7\x33\xfa\x13\xcd\xb0\xb7\xcf\xe9\xcf\xb9\x04\x31\x5b\x3d\x3a\xaa\x4c\xef\x7a\x3b\x17\x55\x76\x9b\x2e\x76\x5b\x10\x55\x76\x91\x2e\x7a\x41\x8b\xd2\x9b\xe0\x72\x93\x85\x6e\x7a\x93\x2e\xfb\xa6\x00\xc0\xeb\x6d\xba\xd8\x5b\x1e\xd6\xd5\x5f\xce\xd9\x51\x6b\x2a\x7b\x99\x2e\x7b\x19\x97\x7d\x9d\x39\x4b\xaf\xd3\x65\x5f\xc7\x65\x11\x0e\x8b\x5f\xdc\x18\x8d\xf6\x55\xba\xf8\xab\x74\x71\x63\x54\xda\x97\xe9\xe2\x2f\x69\x71\xb6\xa2\xdf\xc3\x06\xc0\xf2\xaf\xfb\xe6\xf9\xfe\x94\xae\xe2\x93\x54\xc5\x0f\x14\x45\x94\x53\xc7\xe7\x74\x1d\x9f\x0b\xa1\xeb\x56\x8f\x88\xae\x5b\xdd\x0f\x5d\xb7\xfa\x13\xd0\x75\x9a\x36\x0b\xa0\xeb\x74\x71\x1f\xcc\xe8\x3a\xfa\x8a\xac\xf3\xd0\x75\x3c\x03\x59\x17\x40\xd7\x89\x3c\x64\x9d\x89\xae\x5b\x17\x45\xd7\xbd\x4f\x0f\xe8\x3d\x73\x4a\x90\x05\x94\x3b\x4f\x7f\x9d\x73\x2d\x50\x6e\xc1\x85\x6f\xe7\x99\xa6\xf4\xa7\xe9\x4e\x9c\x3a\x2e\x19\x50\x53\x7a\xa0\x2b\xe9\x9f\x11\xfb\x33\xce\xb5\xaf\x3f\x4b\xd7\x76\x46\x6b\xdb\xb2\xda\xb6\xac\xb6\x2d\xab\x8d\x19\xdd\x67\xc1\xdd\x06\x85\xe1\x6e\xbf\xf4\x17\xbd\x97\x78\x88\x14\x06\xbc\x85\x31\x2a\x38\x81\xe4\x0a\x25\xc0\xdb\x26\x07\xf0\xf6\xf6\x7f\x18\xe0\xed\x12\x66\x64\x12\x03\xde\x26\x42\xc6\xb1\xb6\xc9\x0f\x5c\xf4\x31\xd1\xe1\xbc\xd6\xf9\x78\x37\x5f\xc6\xbb\xb5\x9d\xd7\x7f\x3a\xc8\xad\x8d\x7e\xa0\x14\x90\xdb\x4b\x8c\xf0\xeb\x4c\x54\x90\x5b\x34\x07\x8c\xb9\x70\x1d\xed\x04\x48\xb9\xa8\xb2\x3c\x32\xaa\xc3\xc1\x57\x68\x07\xbe\x77\xea\x36\x10\x1b\x09\x18\x9c\xcb\x61\x70\x13\x58\xe8\x97\x96\xc0\x81\x7d\x2c\x8c\xa5\x0a\x8b\x06\xb5\x53\xb8\x1c\x4f\x41\x89\x79\x14\x30\x45\x01\x56\x1e\x03\x58\x71\x01\xb5\x67\x02\x4f\xc9\x9e\x95\xba\x94\x0a\xc7\x94\x13\xc7\xa5\xe0\xa9\x38\xe5\x7b\xc7\x8d\xc1\x53\x26\x84\xd1\x6d\x64\xa6\x4a\x4c\xe3\xce\x47\x32\xdd\xc6\xa1\x69\x4d\x95\x18\x63\x64\xa6\x2a\x41\xd7\x1c\xf8\x21\x5e\xe5\xe2\x4d\x5e\x09\x73\x67\x03\xde\x64\x4e\x5e\x91\xa9\x4d\xde\x18\x35\x4c\x0b\x9a\xa1\xb2\x24\x6f\x9d\x65\xe5\x86\x22\x4d\x6e\x72\x90\x26\xaf\x72\x7a\xaf\x45\x9a\x9c\x0a\xa4\xc9\x05\x1c\x60\x69\xa4\xc9\x39\x4a\xc9\x63\xa4\xc9\x69\xcc\x9f\x86\x05\x91\x26\x67\x6c\xc3\xbf\x6b\x9e\x09\xa4\xc9\x3b\x94\xd2\x9d\xda\x67\x57\xef\xae\x9d\x53\xf8\x27\x85\x34\xc1\xc4\x18\x69\x82\x4f\x0c\x69\x12\x1e\x1d\x85\x11\xd2\x24\x63\x81\xdf\x03\x69\xf2\x0a\x91\x26\xaf\x8a\x38\xb6\xe8\xca\x8e\x2d\xba\x31\xce\x23\x70\x7a\xf1\x9b\x0e\x3c\x28\xa0\x8f\xf7\xce\xab\x4c\x24\x82\x7a\x11\x45\xf2\xe4\x10\xf1\x7c\xce\xfb\x7b\xc2\x11\x52\x95\xca\xa8\x84\x8f\x50\xad\x8c\x49\xf8\xb0\x27\x24\xe1\x93\x93\x53\x42\x00\x12\x3e\x15\x57\xbf\xe7\x64\xdd\x16\xcf\x9a\x04\x0d\x7c\xce\xeb\x6d\x0c\x19\xf8\x5c\xbc\xbf\x39\x59\xb7\xc5\xb3\xca\x3a\xfd\x9c\xac\x69\x95\x7e\x91\x1e\x0b\x8d\xfe\x0a\x8d\xcc\xb9\xce\xf5\x75\xf2\x4c\xd4\xe8\xe9\xc3\x58\x4b\x38\x65\x3a\xf3\xb1\xac\x33\xa7\x69\x52\x52\x81\x13\x2d\xb3\xd1\x5c\xbf\x1d\x53\xc9\x6f\xc7\xfb\x1c\xed\xd3\x34\xd6\x96\xc7\xc5\x48\x37\x1a\xbd\xe8\xf5\x1b\xa1\x71\x4e\x9e\x69\x3a\x8d\xf3\xac\x88\xc6\x39\x4c\xf8\xbe\x40\x37\x0b\xdc\x81\x61\x37\xfa\x05\x07\x6b\xb2\x27\x6f\x1f\xbf\x27\x1f\xef\xab\x53\x7e\x03\x93\xc8\x75\xca\x37\xb1\x4e\x99\x4b\x56\xb5\xb5\x7e\x23\x69\x42\x49\x40\xe9\x4a\xfb\x67\xec\x40\xa6\x9f\x74\xf6\xd1\x8f\x14\xaf\xfd\x2c\xed\xf4\x6b\xaa\x9d\x0e\x15\xed\xf4\x1b\x54\xc2\x0e\x92\xf8\xec\x41\x54\xe1\x20\x0b\xf8\xfb\x06\x81\xbf\x6a\x7d\xaf\xb1\xbe\x22\x04\x4b\xde\x8c\xbf\x61\xeb\x75\x92\x52\x5a\x4a\x77\xfe\x4b\x66\x4a\x7e\x74\x24\x91\xe4\xf4\x93\xfc\x90\xf8\x24\x05\x15\x98\x6b\x89\xb8\x47\x05\xe6\x17\xe7\x07\xad\xfa\xf2\xcb\x03\x6a\x2f\xdf\x42\x33\x0f\xa9\xbc\x7c\xcb\x66\xe0\xc7\xc4\x0c\xa4\x55\x97\x13\xbb\xf9\x63\xae\xe6\x12\x7a\xf7\xe3\x7e\x8a\xcb\x8d\x4d\x5e\xa2\x6a\x2e\x19\xd8\x7d\x18\x2d\xa9\xe1\xbe\x6b\xf4\x6d\x7a\x4d\xdd\x17\x40\x91\x06\xd1\xab\xbb\xac\x50\x2b\x31\x44\x64\x94\x44\xe0\x8f\xa2\x51\x8e\xb2\x36\xce\x5b\xc3\xc6\x29\xda\x99\x6d\xaa\x33\xa3\xc7\x9b\xa1\xf1\xfd\xf4\xd0\xa7\x91\x1e\x7a\xab\xe8\xa1\x4f\x13\x0a\xdf\xed\xb7\xe9\xa1\xc3\xfd\xd5\xd0\x09\x9f\x0e\x09\x5d\x73\x4a\xa7\xdc\x4b\xa5\xf4\x53\x5a\xdd\x41\x2a\x65\x98\x4a\x19\xa5\x52\xc6\x1a\x5d\xf0\x24\xa9\x0b\x0e\x75\xba\xe0\x69\x21\x5d\xf0\x4d\x11\x5d\xf0\xcc\xa4\xc9\x9d\x33\xcd\xea\x82\xfd\x59\xa2\x0e\x77\x85\xda\xdc\x28\xa4\x35\xfd\xb3\xdd\x5f\x91\x7b\x4b\xbd\xe3\x9e\xa6\x54\xb9\x67\xb4\xc6\x66\x57\xd1\xd3\xca\x2a\x29\x20\x24\x92\x3a\xdb\x7e\xae\xba\x75\x90\x54\xb7\x0e\x73\x8b\x8c\x92\x45\xc2\x42\xca\xb0\xc1\xfd\x7d\x46\xf4\x8d\x7a\xdb\xf3\xc7\xd1\xdb\x5e\xfc\xb1\x7a\xdb\xee\x7d\x34\x9a\x61\x31\x7d\x6b\x56\xdd\x06\xc5\x62\x68\x74\x0c\xb1\x8d\x75\x7d\xe3\x48\xd7\xd7\x8d\x75\x7d\xb1\x8f\x88\x7e\xe4\x23\x62\x10\xab\xf8\x86\xb1\x5e\x6f\x24\x69\xf0\xc2\x47\xd7\xe0\xe9\x0d\xa8\x73\x35\x78\xfa\x48\xb5\xc5\xf4\x5a\x46\x3f\x0b\xf9\xda\x3f\xa3\xaf\x85\x02\xda\x3f\x63\x2c\xeb\x22\xbe\x21\xf4\xc2\xf6\x5c\xd5\xa1\xde\xa8\xbf\x80\xf6\x2a\x7c\x44\xed\x55\x78\x3f\xed\x55\xf8\x27\x68\xaf\x34\x6d\x16\xd0\x5e\xe9\xfc\x87\x98\xb5\x57\xf4\x15\xb0\xe9\x39\xda\x2b\x9e\x81\x4c\x0b\x68\xaf\x44\x1e\x32\xcd\xd4\x5e\x4d\x0b\xc5\x88\x4a\x7a\x51\xf0\xa8\x17\x05\x8d\x12\x6a\xcc\xb9\xe0\x99\x5d\xcc\x51\x77\x57\x89\x16\x90\xfc\x96\xe8\x61\x5c\xc9\xe0\x46\xd7\x68\x94\x80\xca\xae\x1f\xa3\xfb\xc7\x18\x65\xac\x2a\x65\xd2\xb5\xa3\x66\x60\xaa\x30\x25\x01\xd5\x60\xf9\xed\x0c\xaa\xdb\xec\x76\xd4\x0c\x4c\x3b\x96\x6c\x27\x4f\x91\xa8\x87\x2e\x20\x76\x27\x16\x1c\xa3\x97\xb3\xf8\x29\x4b\x23\x48\x65\xfb\xba\x89\xdf\xb0\xe9\xce\xd3\x01\x76\x11\x95\xa3\x2b\xbf\x65\xe5\xf3\xb5\x7e\xdd\x42\x5a\xbf\x31\x9c\x8f\xfd\x33\x77\x56\x44\xd7\x77\x11\x1f\x9a\x91\x5b\xec\x0b\x7d\x3c\xb1\x0b\x67\x58\x19\xb0\x78\x62\x03\xbe\xbd\x2e\x9d\x11\xfc\x46\xc1\xfd\x40\x6c\xa2\x97\xb9\x7a\x83\x97\x76\x13\x98\x79\x2f\xf6\xe3\xb6\x76\x22\xb3\x00\x0f\xad\x05\xb4\xe6\x76\x92\xb1\x9d\x5b\xdd\xc0\x24\xd7\x84\x27\x3b\x01\x7e\x22\xc8\xb3\x36\xaa\xb5\x3a\x5a\xdf\x01\x5f\xbf\x80\xaa\x3d\xec\xcd\xc8\xdd\x22\x89\x00\x04\xa8\x3f\x04\x1e\x3f\xec\x74\x70\x9c\x4b\x8e\x7d\x9a\x67\x49\xd7\x69\x50\x8d\x1b\xdb\x3a\x8c\xbb\xbb\x6e\xad\x1b\x68\xa4\xe7\xe9\xe8\x24\x2f\x42\x68\xcd\xd3\xaf\x7d\x8c\x7e\xc7\x81\x5a\xc0\xbd\x70\x5b\x1e\x1a\x59\x6a\x47\xbb\x6b\x1e\x3d\x11\x3e\x10\x1d\x8c\x20\x59\x6b\x7a\xa9\xd9\x11\x11\xe0\xb9\x4b\x42\x60\xc8\xbc\x2a\x4e\x88\xe2\xe3\x12\x7b\xbd\xfd\xbe\xd6\xc2\xdf\x75\x8c\x01\x51\x71\x58\x2e\xbb\xc1\x92\xd8\x53\xb9\x4d\xda\x65\xf1\x66\x27\x68\xd4\x57\xe8\xcf\x33\x68\x5d\x5d\x37\xd2\xad\xef\x61\x2a\x39\x15\xa6\x92\x37\xfc\x47\x0d\xbe\xe0\xb6\x46\xb6\x75\xfc\x5b\x67\xa6\x93\xe3\xc8\x56\xf2\xee\x2e\x32\x92\x7c\x95\x61\xa2\x19\x5b\x47\x9e\xb9\x93\x36\x7c\xd3\xbb\xbb\xab\x1a\xb9\xb8\x26\xb7\x92\x1f\x81\x80\x56\x96\xb4\xbd\x34\x57\x8b\x67\xff\xf6\xa4\x86\xff\xb2\xce\x95\xe1\x1f\xfc\xf1\x1f\xe8\x40\x93\x19\x6c\xce\xec\xc8\x2c\xb3\x0b\x6d\x5e\x12\xf4\x4f\x30\x96\xbd\x88\xa2\xdb\x53\xd9\x7d\xe8\xd1\x51\xf4\xa8\xe4\x6b\x5d\x29\x8f\x15\x58\xc9\x4f\x94\x14\xa2\x54\x53\x4e\xbc\xaf\x5f\x5f\x37\xae\x2a\x75\x82\xfe\x49\x27\x89\xf6\x27\x6a\xfb\xd1\xe3\x44\x6d\x5f\x79\xa4\xf5\x2b\x29\x44\xa9\xa6\x92\x78\x2f\xb7\xdf\x73\x7a\x77\x77\x63\xe0\xa0\xfb\x77\x77\x13\xae\x25\x7c\x69\x54\x0e\xd1\xf3\xca\x93\x6c\x54\x31\x32\xe0\x1b\xe7\xf5\x3d\x54\x42\x71\x55\xe4\xad\xf3\x26\x19\x1d\xf0\x9d\x94\xd4\xa5\x58\xe3\xd7\x8a\x7e\xe8\x5d\xc1\xe8\x80\xaf\x73\x84\xf2\x83\x58\x28\x3f\x88\x85\xf2\x6f\xf7\x8b\xd7\x17\xa6\x42\xf5\xbd\x36\x86\xea\x0b\x0d\x51\xfa\x2e\x92\x92\xbe\xcb\x58\xa3\x20\x85\xd9\x9b\xeb\xc3\xec\x85\x4a\x84\xbd\x0f\xd2\x64\x3d\x58\x84\x3d\x89\x39\xf6\x76\xa8\xa0\xbb\x6f\x7c\x3d\x4d\x90\x3c\xda\xeb\x8f\xce\x99\x2c\x6c\xfb\xa0\x89\x1d\x86\x13\xc7\x8d\xe0\x60\x92\x4b\x62\x09\x5d\x42\xc6\x12\xf3\x34\x32\xee\x53\x4c\x31\xd9\xda\x92\x4c\x56\x33\xb4\xbe\x45\x4f\x8c\x5a\xa3\x66\xdf\xdd\xd5\x76\xc9\xc9\xaf\x49\xe6\xfc\x1f\x81\xf2\x86\x7b\xe9\xe8\x88\xff\x48\x9c\x96\x2c\xa2\xb0\xf7\xc4\xda\x3e\xb5\xce\xcb\x75\xdb\xae\x78\x82\xc9\xf6\xa9\x89\x45\x6e\xb0\xbf\x68\xc1\x3e\x76\x6c\xbf\xd5\x3e\xb1\xfd\x44\x66\xf4\xfe\xb0\x5f\xe4\xbe\xea\xdf\x5e\xc4\x4a\x59\xd3\xd7\x33\x2e\x3a\x20\x38\xa2\x2b\xbc\xb5\xae\x26\x1c\xe4\xec\x50\x83\x9b\x08\xa8\x88\x29\x89\xb5\xa8\x93\xdb\x6b\x47\xc9\x6e\x36\xb8\x67\xb9\xd5\xf3\xc1\x24\xe8\xba\xd4\x3f\x7d\x43\xa4\x30\x59\x07\xa4\xec\x24\x91\xbf\x7c\xdf\x4b\x51\xbf\x16\x88\xd6\x81\xa3\x3e\xba\xde\x2c\xfb\xa9\x17\xeb\xfd\xbf\x6d\x45\x2a\xe7\x85\xda\x06\x94\xad\x37\xbc\x08\x57\x70\x8f\x18\xe8\x63\x8b\xdd\xf6\x36\x33\x8c\xa3\xf3\x6c\x5c\x51\x12\xae\x66\x45\x67\x20\x6f\x55\xe9\x0b\xa0\x74\x68\xac\x09\x3b\x45\xfb\x98\x84\x4e\x25\xf7\xc2\x21\x0d\x60\x9a\x14\x5c\x59\x5f\x71\x5d\x35\x5c\xe0\xd3\xd0\x9f\xb2\xc7\x59\xc0\x14\x0e\x4b\x1a\x19\x25\x9b\xa4\xbe\x28\xee\x92\x8b\x75\xa5\x9e\xea\xca\x72\xf1\xed\x3d\x49\xb8\xa4\xa7\x5d\x51\x9b\xa1\xeb\xff\x5b\xda\xf1\x13\xfe\xbb\xd5\x36\x98\x7f\xe9\x7b\xd5\x4f\x22\x0c\xff\x1c\x6e\xd5\xcf\x33\x38\x1c\xba\x8c\x71\x13\x4d\xb7\xa3\x38\xe7\x86\xd6\x2f\xbc\xd1\x63\x75\x00\xf1\x1a\x8f\x73\x34\x7c\xd3\x96\x23\x1b\xe0\x83\xfc\xbb\x3b\x0b\xee\x13\x95\xd0\x8d\xc4\xc6\x35\x54\x9a\x67\xed\xcc\xf8\x2c\x82\x09\x98\x75\x3d\x6b\xc3\xda\x80\xf3\x76\x36\x84\xfd\xe1\x9b\x55\xf9\x5e\x8e\xf2\xde\x07\x6a\x6f\x67\x5f\xb5\xaf\x6d\xa0\x94\xbe\x00\x83\x3a\xe9\x5a\x79\xfb\xfe\x8f\xef\x8e\x40\xd8\x7c\x4a\xc5\x7b\x3c\x8b\x29\x06\x89\x5a\x40\xd5\x07\x52\x0b\xa9\xbb\x3d\x3e\xb2\xfc\x27\xdb\xa7\x32\xc3\x27\xce\xf3\xe6\xa2\xf5\x39\xf3\x4c\x47\xf9\xf8\xb6\x6e\xa7\x0e\x73\x4d\x56\xd6\x1f\x77\x13\x63\x32\x69\x61\x64\x63\x6a\x76\x85\xfe\xae\xc1\xa7\x97\x2a\xdb\xa8\x21\xf5\x58\x35\xf1\xc5\xa1\xbb\x27\xec\xc6\x67\xdd\x15\x26\x11\x13\x8c\xfc\xc8\xbb\xc1\xb4\x77\x50\x74\xfd\xe8\xa6\x44\xb7\xaf\x50\x83\xd4\xc0\x7f\x60\x78\x2c\xd1\xfe\xbe\x4e\x53\x2b\xf5\x46\x94\xa4\xbb\x0c\xb5\xf5\xea\x66\x90\xd7\x51\xc1\x4a\x71\xf2\x68\x65\xd4\x23\x12\x8f\xa2\xd9\x07\x86\x8b\xff\xf4\x28\x2a\x54\xfa\xce\xb0\x19\xcf\x9d\xf4\x77\xc7\xf3\xe3\x4c\x76\x3b\x2f\x16\x95\xc9\xeb\xbc\x64\x30\x9b\x17\x68\x73\x48\x03\x6d\x8e\x68\xa0\xcd\x31\x15\xcf\xa0\x3a\xbb\x1a\xce\xda\xe8\x43\x24\xd2\x46\xd2\x44\x16\xdb\x92\x2a\x24\x25\x27\x7b\xf5\xe0\xf9\x13\xfa\x08\x9f\x06\x18\x3e\x0c\x7f\x30\x35\x9a\x93\xde\x18\xcd\x49\x67\x0e\x72\x91\x73\x54\x2f\x2e\xd0\x6c\x74\xe9\x94\x6e\x83\x59\x58\xa2\x96\xb0\x5a\xed\xe4\x1a\xb3\x45\x3a\x48\x1c\xc0\xad\x53\xad\x93\x53\x55\x1d\xc9\x62\x59\xa8\x11\x37\x13\x8f\xe2\xdc\x2f\x1a\x92\x33\x1d\xc5\x45\xf1\x50\x7f\xa6\xf5\xf1\x7e\x0a\x7b\x9e\x9c\x3b\x35\x41\xaa\x4b\x1a\xa7\xd3\x47\xd7\x0d\xe9\x43\xff\xe5\xea\x86\xf4\x81\xff\xb2\xc4\xa0\x46\x87\xdf\x46\xc1\xa7\xd1\xd1\x37\x03\x93\xee\xed\x05\x7d\x9b\x59\xcc\xe8\x05\x7d\xc3\xc2\xa8\x9a\xca\xb5\xd3\xe5\xda\xac\xb9\xec\x72\x41\xba\x5c\xc0\xda\xfb\x01\x0f\xb2\x7d\x22\x61\xb2\xe6\x32\x8b\x19\x63\x8b\x02\x7d\xe0\x07\x46\x03\x31\xbd\x77\x67\x54\xe3\xa1\x54\xd4\x1c\x5b\xd4\xa8\x3a\xa4\xe5\x3e\x51\x51\xea\xde\xaa\xc3\xbc\xd8\xa2\x46\x35\xa7\xd0\x40\x9b\x0a\xfa\xe9\x82\x3e\x8b\x84\xba\xbf\xe3\xfb\x5e\xbf\x1d\x64\x19\x0b\x1a\x35\x94\x94\xeb\xfe\x82\x7c\xeb\xa4\xbb\xb7\x4d\x65\xb6\xae\x2c\x19\x68\x93\xaa\x49\x8c\xba\x32\xfa\x8a\x0c\xf2\x74\x65\x42\x98\x3f\x28\xa0\x2b\x8b\xc4\xfc\x83\x4c\x5d\xd9\xa0\xa8\xa5\x97\xde\x24\x95\x08\x5d\xc4\x36\xd7\x3b\x7a\x52\xc7\xec\x51\x1d\x73\x5a\xdf\x86\x5a\x67\x77\x76\x9e\x55\x55\x52\xfd\xeb\xa1\xfa\xd7\x6b\x69\x2a\x6b\xe0\x7d\x94\xd0\xd4\xe4\x6a\x63\xee\x11\xa9\xf4\x42\x52\xc9\xc4\x91\x4a\x67\x47\x47\x17\x52\xa4\xd2\xb9\xf4\x68\x8e\x54\x7a\x9b\xab\x96\xb9\x65\x34\xee\x85\xc9\x9c\x63\x44\x6e\x31\x44\xa9\xc6\xdc\x83\x83\x9f\xc7\x34\x43\x56\x88\xd2\xf3\xd6\x6d\x14\xa2\xf4\xd6\x60\xc9\x71\x9e\x65\xc9\xb1\x11\x96\x1c\xaf\xb4\x21\x4a\x5f\xaa\x21\x4a\x37\xfb\x87\x28\xdd\xb2\xd9\x7a\xd3\xdc\x0a\x4b\x8e\x37\x88\x73\xdb\xd8\xdb\xab\x37\xd7\xce\x06\xfe\x49\x59\x72\x60\x62\x6c\xc9\x81\x4f\x8f\x1e\xa2\xf4\x16\x2d\x39\x6e\xbf\x35\x44\xe9\x5b\xe7\x36\x5b\x24\x0f\x8b\x16\xcd\x2b\x18\xc8\x43\x89\x55\xfa\xce\x79\x7b\x5f\xe1\x7c\xb2\x52\x55\x1e\xff\x56\x91\xc7\xc3\x3c\xe6\x88\xe4\x65\x4b\x85\x9c\xac\xdb\xe2\x59\x25\x47\x85\x39\x39\x95\x90\xa4\x39\x79\x71\x2d\xcf\xc2\x91\xa8\xf9\x46\x8a\x2d\x7a\x51\x39\xb3\x28\xd8\xff\x81\xe3\x8b\xe6\x6d\xd6\xcc\x26\x73\xe2\x7b\x5a\x36\xf3\xed\x27\x47\x19\x0d\xd9\xf6\xf9\xe0\x5c\x51\xe3\xba\x69\x95\xde\x85\x41\xfb\xee\xae\xf4\x8a\xfd\x2a\xc5\x77\x78\x50\xe5\xb4\x07\x2a\xc5\x79\x7e\x9e\x02\xf9\xbf\xb0\x5f\x52\xfe\x43\xb9\xc0\x75\x33\x8a\x29\x8a\x46\x06\x0c\x4b\x71\x55\xfa\xcb\xf3\xe7\xcf\xa1\x57\xf2\x9f\xeb\xe4\x20\xd5\xef\xc0\x67\xf6\xc3\x5e\xf1\x54\x85\xbd\xdd\xee\xed\xbd\xc2\xaa\x2e\x8e\x8e\xde\xdf\x33\xac\xea\x85\x70\x31\x16\x44\xe7\x56\x2a\x9c\xa9\x74\xb2\x48\x96\x06\x62\xa9\x45\x86\x18\xaf\xf7\x09\x87\x3a\xb9\x77\x38\x54\xd9\x08\x4b\xeb\x6b\xb0\x78\x34\x54\x38\x0f\x3e\x46\x01\x51\x67\x18\x39\xfe\x7e\xf1\x50\x2f\x34\xf1\x50\x29\x32\xfb\xfd\x03\xc6\x43\x35\xd7\xc5\xe3\xa1\x72\x6d\x86\x21\xdf\xc1\xc9\x41\x37\x65\xc1\x80\x33\xf0\x49\x4e\x43\x76\x9d\x1c\xa8\xae\x30\x25\x55\x0a\x59\xb1\x0d\xf9\xd9\xc9\x95\x1b\xba\x74\x91\x7a\xd8\xf7\x1d\xf9\xa7\xf3\x82\xfc\xe0\xd4\xff\xd6\x54\x1a\x33\x59\xd1\x18\x64\xf2\x9f\x61\x62\xfc\xff\x3c\x76\x9c\x5a\xeb\x9f\x8d\x1f\x04\x8a\xe0\x4b\x4c\x88\x44\x37\x57\x3c\x68\x71\x07\x1d\x74\xe1\x3f\xd6\x1e\x8a\x4a\xd8\x85\xd8\x7c\x9f\x5d\x10\x7f\x7c\x70\x37\x1f\x30\xa6\x78\x81\xae\x2a\x1d\x45\xf2\xc4\xbb\xbb\xfb\xf2\x9f\xc7\x87\xd8\xe1\x1f\x1a\xff\x44\x79\xf6\xf2\xe8\xe8\x53\x66\xf4\x04\xef\x3f\xe3\xd0\x04\x83\x94\x50\xe7\x29\x5b\x69\xb6\x8d\x75\xee\xec\xe4\x5c\x92\x03\xfc\x7c\x9a\x0f\x57\xa3\xe6\x2e\xca\xdc\xd3\x95\x6a\x1c\x56\x69\x16\x2e\xb8\xf7\xd4\x72\xe9\xa0\x46\x4f\x08\x51\x2b\x96\xa9\x00\xc5\xd2\x0b\x67\x25\xb2\x3e\xa9\xb5\x10\xb5\x3d\xc3\x30\x3e\xf4\x02\xce\x58\xa7\x49\xe2\x20\x3d\xbf\xe9\x15\xb7\x9b\x7f\x43\x8c\xdf\xd7\xe9\x18\xbf\x17\xe9\x6d\xf9\x90\x31\x7e\x37\x91\xf9\xc2\xa9\x62\xbe\xb0\xc9\x8e\xf1\xcb\xee\xc9\x64\x9c\x52\x04\xc7\x75\x2c\xc9\xe7\xdd\xd7\xf9\xba\x8f\x72\xa1\x0f\xce\x87\xfc\x23\x1a\xa5\x62\x2e\x65\x29\xe2\x94\x3a\xf3\xf8\x0b\x5c\xac\x3b\x0f\xa2\x2b\xb4\x81\x4f\x07\xd1\xe5\x2a\x5d\xa4\x87\x75\xbb\xe9\xcd\x02\x77\xd8\xa4\x05\xc4\x1d\x2a\x0a\x08\x5e\x5f\x2a\x50\xb3\x77\x1b\xf1\xe4\x48\x17\x2c\xc9\x9a\x8f\x1d\xbe\x0e\xbf\xc9\xaf\xe0\x3d\x62\x77\x6e\xf4\x7e\x05\xf5\x4d\xf1\x81\xd0\xc8\x52\x62\x50\x51\x2a\xd6\x25\xc6\x1c\x25\x92\x4b\x47\xca\x90\xb0\x1e\xb9\xd0\x89\x66\xfd\x62\x51\x41\x05\xd9\xfb\x8d\x91\x41\x93\x69\xdf\x14\x12\x94\x0a\x54\xa3\x00\xa0\x06\xe1\x2b\x0f\x09\xfa\x75\x17\x85\x04\xad\x29\xc2\xdb\x43\x6a\x2a\x52\x27\x6b\xa7\x46\x36\x29\x3b\x8f\xa4\xf7\x41\x45\x62\x5b\x34\x12\xe8\x99\xa3\x91\xd8\xb4\xea\x7f\xaf\xa1\x5c\xfb\x9c\x86\x09\x8d\x3f\x25\x74\x45\xd9\x0a\x24\x37\x82\x68\x15\x41\xec\xec\x48\xc3\x02\xb2\x79\x86\x16\xb9\x22\x85\x1c\x5d\x24\xc3\xa1\xc9\x85\x61\xac\x1d\xf6\xab\x44\xaa\xf5\x4e\x89\x06\x59\xda\xd7\xeb\xda\x43\x07\x27\x85\x43\x8c\xad\x69\x3a\xd1\xf4\xac\x50\x19\x7e\x45\x94\x6d\xa3\x7b\xc7\x3a\x79\xf9\xf0\x86\x29\x91\xc8\xf1\x12\x4d\x54\x5e\xed\x61\xa2\x12\x6f\xea\xcb\xf8\x49\x44\x17\xff\x53\xa3\x9b\xe6\xb9\xe5\x63\xae\xdc\x31\x35\x15\xd6\xdc\xe0\xa5\x6f\xa0\xf7\xaf\xf7\xed\xf1\x51\x33\x6a\x30\xfa\xd7\x1b\x3c\x80\x7f\x3d\xd4\x80\x88\x93\x33\x19\x8f\x55\xb0\x64\xd4\xdc\x46\x17\x9c\x95\x9e\x17\xce\x26\x11\x91\xf5\x71\x15\x2a\x46\xcd\x48\xb6\x42\xc5\xa8\xb5\xc8\x37\x98\x31\xea\x49\xb0\xe8\x39\x9f\xa3\xbd\x05\xd9\x7c\x72\xdf\xbb\x5e\x60\x2e\x9d\x19\xc5\x35\x33\xfe\xab\x59\xb3\x90\x17\xff\xd5\x2c\xe6\x2f\x60\xe3\x63\x74\x66\x98\x6d\xe3\x63\x14\xbc\xcf\x82\xf6\xd2\x0f\x7e\xa5\x94\xe8\xde\x0a\x0d\x46\x7e\x67\xcf\xb0\x51\x5f\x00\x6b\xbb\xdb\x0d\x66\xd9\xa5\xff\x1d\xb7\xf6\xdf\x71\x6b\x1f\x20\x6e\x6d\xd2\x47\x9e\x4b\x7d\xe4\xc9\xc1\x6a\xcf\x95\x60\xb5\xe7\x4a\xb0\xda\x73\x46\x08\xa3\x4a\xe2\x3c\x57\x33\x93\x54\xc3\x7a\x54\x0d\x9b\x11\xb7\x76\xb2\x47\xb0\x5a\xbd\x5a\x32\x83\x3a\x2b\xa0\xff\x09\xaa\x22\x87\x46\xa1\x1b\xbd\x63\xa6\x3a\xac\xc7\x5a\xda\x8b\x43\x92\x4a\x7f\xf1\x7d\xbf\x14\x41\x92\xea\xd5\x17\x4f\x3c\x15\x53\xf4\x10\xf1\x6c\x05\x6f\xf1\x1a\xc6\x7d\x8b\xba\x92\x51\x11\x0d\xd3\x58\xa3\x61\x1a\xeb\x8d\x7e\xc6\x69\xa3\x9f\xb3\xb4\xd1\xcf\x65\xae\x76\xe9\x92\xb9\xe5\xc9\xb0\xc7\x61\x50\x90\x7d\x8c\x72\x1e\xc3\x0a\x67\xf5\xc7\x5b\xe1\x54\x58\x96\xb4\x31\x8e\xd6\x0a\xe7\xe5\x1f\x68\x85\x33\xd1\x59\xe1\xbc\xdc\xdb\x0a\xe7\x8c\x5a\xe1\x84\xd9\x56\x38\xe6\x6a\x57\x92\x15\x8e\x30\xc0\xa1\xbd\x8c\x8d\x70\xe6\x36\x2a\x1f\xb8\x08\x16\xb1\xde\xab\x16\x1a\xe3\x84\xb2\xf5\x0a\x4c\x38\x1a\x8d\x8d\x2b\x56\x28\x1b\xad\x9c\xd0\x64\xfb\xba\xd1\xa5\x7d\x1d\x0b\xeb\x95\x09\xb3\x5e\x49\x01\xa3\x44\xd9\xb8\x92\x28\x2a\x5b\x88\xce\x0b\xf0\x9f\x6b\xbb\xf9\x55\xeb\x43\x2f\xd7\x04\x26\xde\xc7\x8a\x31\xcc\x6b\xe7\xd5\x37\x18\xc3\xc8\x95\x92\x37\x8e\xf5\x3a\x69\x17\xf3\x5a\xae\xd4\x8e\x7c\xc4\xd1\xc7\xdd\x9b\x82\x46\x31\xaf\xee\x63\x14\xc3\x15\x91\xaf\x1e\xdd\xb2\x44\xaf\xaf\xbc\xa7\x65\x09\x79\x2b\xac\x05\x92\x68\xd0\x8b\x18\x0d\xda\x8b\x66\xbd\x71\x80\xb9\x0f\xe2\x61\xdd\xaf\xd5\x58\xaf\xfb\xf6\xbf\x91\xf9\xc7\x62\x1f\xf3\x0f\x91\x19\x46\x50\x70\xe6\x72\x27\x2d\xcf\x5c\xe4\x5d\xa4\x53\x8e\x77\x5d\xb6\xad\x88\x64\x15\xf2\x2e\x65\x15\xc2\x1c\x1d\xbe\xcb\xd8\x8d\x7a\x6d\x83\x64\xcf\xa1\xec\x8a\xbe\xb5\x12\x06\x1a\xcc\x41\xed\x8a\x1a\x7b\x4c\xb4\x20\xd8\xf2\x84\x82\xbb\x7d\xdb\xa6\x8e\xc9\xa0\x83\xef\xf5\xc6\x29\xc2\xd1\x6b\x12\xe2\xaa\x56\x0b\x6d\xc9\xf6\x1d\x3c\x56\xcc\x37\xd9\x4e\x9c\xff\xf7\xb1\x9d\x38\x7f\x78\xdb\x09\x4d\x4f\x1e\xa1\x15\x9d\x85\xc6\xf9\x1f\x60\xa1\x71\xfe\xa7\x5a\x68\x9c\xff\x11\x16\x1a\xc0\x6f\x20\x02\xb9\x86\x60\x89\x78\xeb\x4c\xc3\xd1\x96\x69\xe2\x60\x0b\x88\x8b\x28\x4e\xe4\x7b\x88\x9d\x81\x3c\xa4\x20\x4f\x9b\x86\xfd\xc9\x42\x3d\x81\x23\x12\x71\x46\x1f\x80\x4e\xac\xfe\x3d\xb1\x9d\xad\xe3\x27\x89\xad\xd7\x6c\x3b\x6d\x61\x9d\xd6\x6e\x5c\x55\x22\x6a\xb1\xcd\x63\x9d\xb3\xdf\xe8\x3c\xba\x6d\x22\x93\x42\xf8\x5d\x41\xea\x83\x13\x8a\x1d\xe7\xea\xaa\x8d\xa3\xad\x04\xd7\x84\xfd\x8a\x7e\xd4\xe8\x8f\xba\xf4\x83\x67\xaa\x63\xa6\xeb\x66\x24\x46\x36\x52\x7a\x03\x18\xb9\x05\xd3\x81\x9f\x95\xfd\x3e\x28\xd9\x39\x06\x2b\xd1\xd4\xe4\x4e\x87\xe6\xa0\xa4\xa8\x7b\x1f\x11\xfe\xb5\x46\xc8\x1f\xd8\x78\xf1\xe0\x3c\xa0\x8e\xc5\xf1\x48\xa4\x06\xae\xfc\xc3\x32\x2d\x25\x61\x04\xa1\x15\x7f\x5b\x55\x8d\x2a\xeb\x47\xb5\xb7\x56\x6c\xb3\x83\x1a\xd3\x06\xd7\x9f\xca\x96\x77\xa9\x01\xa5\xac\xe6\xda\x90\xab\x54\x7d\x76\x1c\x50\x25\x04\x34\xa9\x35\xf8\x3c\x15\xb6\x05\x84\xad\x1f\x4f\x4c\xc5\x41\x14\x24\xb4\xdd\xf2\x1b\xd1\x5a\xf1\xcb\x25\xf8\xef\x34\x36\x4e\x68\x53\x77\xdf\xe5\x52\x25\x91\x5a\x83\xd4\x06\xe4\xfe\xff\xff\x3f\xf5\x85\xcd\x62\x84\x15\xbc\x8c\x11\xba\x51\xb2\xf5\xd3\xb8\xc9\x9b\xbc\xca\x73\xfe\xdd\x3c\xfe\xdd\xca\xcf\xe1\x6b\x35\xde\x69\x10\x06\x74\x7e\x4a\x25\x6a\xba\x84\x5f\x2e\xf9\x45\xe3\xf3\x9e\x5d\xe6\x95\x11\xca\xce\xd8\x0d\xa4\x7e\xe5\xaa\x92\xe1\x3e\x9f\x5c\x56\x96\x3f\xec\x27\x17\x92\x57\x41\x13\x7d\xcb\x67\xd0\x8f\x33\xf7\x9b\xe0\x67\xa8\x44\x5f\xa5\xfc\xbc\x51\xd1\x7f\x93\x64\xf5\xd1\x07\x7a\xf7\xe0\x26\x6f\x64\x59\xcc\x5c\xed\xdd\x3e\xe6\x6a\xcb\xff\x5e\xe6\x6a\x8f\xde\x1d\x9b\xac\x5a\xfb\x2e\xa7\xfd\x4d\x0d\x43\x66\x88\x46\xe9\xd6\x49\x6c\x76\x88\xa7\x70\xb4\x38\x75\x64\xa9\x76\xa4\xd1\x99\x24\x96\x23\x37\x52\x0b\xb9\x91\x5a\xca\x5c\x6b\xa2\xda\xa0\x3d\xe4\x70\x7d\xc3\x70\xa3\x2b\x88\xfd\x88\x68\xf6\xc8\xc2\xad\x20\xd9\xae\x9f\x1d\x3d\x91\x9e\x34\x80\xcb\x9d\x43\xc5\x58\x4d\x3d\x71\x99\xa5\x1f\xe9\xc5\xe6\x69\x7d\x27\xe4\x3f\x4d\x20\x87\x58\x78\xf0\xe0\x96\x68\xd9\x06\x66\x13\x9d\xa5\x5a\xa8\xb1\x54\xbb\x9f\x25\x9a\xfe\xcd\xe5\x0c\x85\xbf\xd4\x4c\x6d\x61\x82\x45\x2c\x19\xa2\x81\x43\x1f\xa8\x7d\x1a\xfc\xb3\x75\xbe\x93\x8d\xd3\x62\xf5\xff\x71\x87\xe2\x18\xd0\x22\xf4\xfc\xcf\x36\x5b\xd3\xeb\xfa\xcf\xc9\x99\xad\x31\x59\x3b\xff\xb7\xc9\x9a\x46\x15\x8b\x4b\x64\x6f\x55\x68\xb6\x9d\x9b\xd1\x60\x2d\xdb\xce\xcd\xa8\xf0\xfd\x7f\xd9\xce\xcd\xa8\x53\xce\xb1\x73\x33\xea\x57\x51\x8b\xfd\x33\x73\x17\xb2\xb7\xab\xca\x87\xb7\x56\x33\x82\x0b\x24\x40\xd1\x7e\x01\xad\x44\x59\x0e\x8a\xda\x5b\xdd\xfe\x6f\x6b\xb7\xe2\xd6\x6e\x86\x20\x60\x42\x09\x77\x96\xab\x53\x4d\xaa\x3d\x3d\xaa\xf6\xbc\x97\xb5\x5b\x12\xcb\xe0\x21\x96\xe1\xe1\xac\xdd\x62\xb2\xe1\x1e\x76\x6f\xe7\x91\x56\xf2\x5c\xb5\x7b\x3b\x57\xed\xde\xce\xf3\xed\xde\xd6\xb9\x9a\xc9\xb5\xf0\xc0\x6c\xb4\x7b\x5b\xa3\xdd\x9b\xc6\x2e\x2e\x32\xa5\x59\x67\xd8\xbd\xad\xef\x13\xb1\x68\xa1\x40\x71\x97\xc2\xea\xed\x4c\x6b\xf5\x76\xaa\x5a\xbd\x2d\xf7\xb7\x7a\xe3\x56\x02\x97\xcd\x95\xb0\x7a\xbb\x44\x78\xf4\xd2\x5e\x5d\x5d\x5e\x3b\x4b\xf8\x27\x65\xf5\x86\x89\xb1\xd5\x1b\x3e\x3d\xba\xd5\xdb\x1a\xad\xde\xd6\xdf\x6a\xf5\xf6\xd2\x59\xe7\x5a\xbd\x25\x16\xaf\x62\xfa\xf6\xca\x79\xf9\x0d\xa6\x6f\xe9\x9a\x65\xfb\xb7\xd8\x49\x5e\x64\xed\xf1\xaa\xb8\xfd\x5b\x4e\x56\xc9\xfe\x2d\x3b\x23\xea\xe1\xdf\x73\xc9\x27\xcf\xc7\xa5\xa3\x39\x2d\x48\x66\x73\x39\x39\x15\xb3\xb9\x9c\xbc\x19\x66\x73\xe7\x95\x2d\x72\x0a\xaf\x1f\xda\x6c\x2e\x6f\xaf\x67\x36\x99\xad\x05\xdd\x66\x98\xcd\xbd\xf9\x23\xcd\xe6\xb6\xf9\x66\x73\xaf\xf3\xcd\xe6\xde\xdc\xcf\x6c\xee\xe5\xbd\xcc\xe6\xee\x6b\xf2\x76\x1e\x99\xbc\x5d\xfc\x31\x26\x6f\x6f\x13\xae\x12\xbf\xcd\xe4\xed\xad\x7a\x83\x7c\xb3\xfd\xdb\x6f\xd6\xc5\xd3\xe3\xe7\x09\x3b\x9b\x73\xb4\xb3\x79\x5d\xc8\x64\xed\x9d\x63\xce\x97\x30\x57\x7b\x67\xb2\x55\xfb\x06\x33\xa1\x5f\xad\x73\x8d\xf9\xde\x45\xba\xff\x45\x8d\x2a\x71\x91\x5e\xb0\x15\x66\xae\x20\x32\x34\x52\xb3\x88\xb3\xf2\x40\x51\x15\x6d\xea\xb0\xff\x50\xde\x22\x9e\x8f\xd5\xe7\x6d\x5d\x0e\xef\x03\x2f\x2b\x17\xf7\xb6\x60\x5a\x46\x16\x4c\x1b\xc5\x62\x67\xf9\xa0\x16\x4c\x6f\x9c\x37\x0f\x6a\xc1\x94\x6f\xb2\xa4\xda\x28\x2d\xb5\x36\x4a\xa9\x11\xab\x74\x93\x6a\xb1\xb4\xf9\xe3\x2d\x96\x96\x0f\x68\xb1\xb4\xd4\x58\x2c\x2d\x32\x2c\x96\xce\xb5\xce\xa4\x62\x41\xe8\xc1\x9e\xd6\x4b\x31\xe5\x72\x7f\x3b\x26\x71\x0c\x3f\xab\x69\x4d\x9a\xe4\xd7\x7f\xbe\x75\x53\xd2\x9e\x69\xc5\xea\x8b\xe2\xe2\xdc\xcb\x9e\x69\x9b\x65\xcf\x44\x23\xe6\x34\x97\x7a\x7b\xa6\x85\x6c\xce\x24\x59\x1c\xc5\x01\x6d\xbe\xc1\x98\x49\xb5\x8f\xfa\x1f\x68\xc4\x74\xfa\x88\x66\x4a\x0b\x34\x53\x3a\xbb\x97\x99\xd2\xe2\xe1\xcd\x94\xc8\xb9\x56\x86\xbb\x21\xb7\xf6\xbf\x2d\x98\x1e\xd7\x82\x69\xf3\xed\x16\x4c\xcb\x7f\x5b\x30\xfd\xdb\x82\x29\x4f\xe4\x9c\x6d\xc1\x64\x14\x37\xff\xdb\x12\xe8\xdf\x96\x40\xc5\x2d\x81\x0c\xa1\x71\x84\xe8\xf5\xd6\x96\x8d\x82\x6e\x15\xa3\xa0\x5b\xc5\x28\xe8\xf6\x91\x2c\x81\xfe\xd7\x9a\xeb\xdc\x43\x20\xae\x11\x6e\x47\xf9\x86\xb1\xdd\xc9\xb1\xe3\x38\x83\x2b\x71\x67\xbf\x41\xdc\xe4\x35\xbb\x82\x5a\xb7\x8d\x6d\x53\x5c\xf1\x18\x5e\xaf\x0f\xd7\xdc\x46\xba\xde\xd9\x7d\x2e\xde\x6c\xa3\xbb\x9c\x3d\xf3\x1b\xfd\x2c\xfe\xea\xe8\xd6\x24\x83\x00\x8c\xbd\xc0\x78\x49\x2a\xce\x47\x02\xb0\x40\xc8\xbf\x68\x80\xa3\x3d\x06\xc8\x07\xe6\xac\x38\x15\x43\x9f\xf1\xd3\xf0\x71\xc1\x8b\xad\xfc\xe2\xcf\x19\xd1\x24\x3d\x22\x4a\x58\xb1\x61\xe9\x3e\xd9\xc2\x40\x95\xb1\xcf\xb6\xc8\x22\xc3\xce\x0a\xd2\xec\x45\x07\x28\x0d\x88\xe9\x4d\xf2\x14\x2c\xe7\x31\x6f\x2a\xaf\xfa\x73\x8d\x58\x4b\xa7\x0c\xc9\xf6\x4a\xd8\x25\xe7\xb8\xf7\x2e\x8d\x12\xdb\x1e\xcb\xf0\xd2\xc9\x90\xb9\x31\xf9\x36\x3d\xc2\x81\x1b\x3f\x3a\xaa\xe3\x4f\xfa\x11\x76\x28\xf0\xdf\xa3\xe4\xb1\x5c\xf2\x75\x66\x49\x34\x42\x30\x34\xf9\x66\x8f\x82\x4a\x8b\x6f\x33\x0b\xba\x40\x36\x9a\x9a\x7c\xb7\x4f\x49\xb9\xcd\xe6\x63\xab\x7d\x70\xf9\x34\xcf\x73\xd5\x3e\xdc\x32\xa3\x98\x64\x55\x1d\xfc\x9e\x76\x74\x92\x15\x1d\x8b\x44\x86\x88\x22\x2a\x73\xf9\x50\xb8\xf9\xe3\x47\x68\xbe\x19\x99\xa4\x69\xcc\xeb\xde\x0b\x53\xb9\x0f\xc0\xc6\x6b\x1b\x8b\x6d\xf7\x2c\x1a\x39\x4b\x78\x6f\x3b\x57\xd5\x65\x54\x57\x16\xdf\x63\x8a\x6e\xec\x93\xf3\xb1\x80\x6e\x8c\xeb\xc4\xda\xcf\x0e\x94\x6a\xe4\xd0\xeb\x9f\x8a\x6b\xbd\x72\xb2\x6e\xeb\x7b\xe4\x3d\x2e\x98\x97\x46\x89\xad\x73\x85\x54\x6e\xc6\xe3\x02\x19\x51\x43\x50\xa4\x42\xcc\x57\xa4\x3e\x2a\x74\x28\x52\x21\xcd\x58\xa4\x46\x59\xc7\xc5\x83\x21\x7c\x94\x95\x95\xe4\x9f\x29\x75\xb3\x1c\x34\x19\xd5\x24\x5c\xaf\xd2\xe1\xa2\x1c\x3c\x39\xfa\xec\x1e\xfc\xc1\x39\xad\xba\x68\xf4\x6d\xd9\xad\x8b\xa7\xc7\x8d\x0b\xf2\x45\x4a\xf9\xa1\x51\x6b\x9e\x72\x5d\xce\x0f\xe8\x7a\x8a\x91\x73\xff\xb4\xc9\xe7\x58\x18\xaf\x53\xfb\x99\x77\x56\x08\x84\x37\x42\x0a\xdf\x05\x5b\x27\x82\xd6\x2b\xc9\x2d\x2a\xe7\x68\x28\x69\x4c\x96\xad\xe6\x2b\x5b\xf1\x51\xd2\x2a\x95\x1a\xa5\x03\x8b\x12\xf5\x07\xb8\x8e\x50\xa7\xe0\xee\x44\xf4\xf6\x53\xa4\xa9\xa9\xfa\xf1\x54\x56\x3f\xd2\x34\x29\x29\xf7\x32\x33\x8f\x3b\x5b\xab\xf6\x85\x69\x1e\x83\x48\xa3\xb6\x9b\xa5\x9c\x42\x5e\xda\x4a\xd4\xd0\xb1\x50\x98\xfd\xb3\xb8\x16\x8c\x1e\xae\x34\x85\x4e\xca\xd1\x91\xb8\x24\x69\x1a\xde\x20\x08\x50\x9e\x3f\x4e\xd3\xc7\x05\x9a\x5e\xe8\x9a\x7e\x80\x61\xb2\x8b\x59\x69\x6a\xf9\x40\x4d\x25\x87\xa5\x69\x6a\xf5\x48\xa3\xe2\x77\xbf\xd2\xd6\xfa\x91\x86\xa5\x6b\xeb\x73\xce\xaa\x0e\x62\x5d\x71\xa0\xda\x15\xff\xe8\xc8\xfb\x44\x3a\xb3\xf9\xf9\xf0\xb2\xa8\x16\x96\xfc\x24\xd7\x24\x9d\xd5\xbc\xa2\xd7\x85\x2b\xfa\x59\xae\x48\x3e\xa4\x79\x4d\x6f\x0b\xd7\xf4\x4b\x6a\x70\xc7\x4a\x4d\xaf\x0a\xd7\xf4\x6b\x72\x70\x6a\x45\x6f\x0a\x57\xf4\x5b\x6a\x70\x6a\x4d\xef\x0a\xd7\xf4\x2f\xe7\xad\x30\x71\x7a\x9b\x47\x1e\xed\x90\x06\x44\xdf\x3d\x26\x75\x7e\xda\x87\x43\x9a\x80\x2a\x7b\x57\xfe\x35\xa7\xa3\x04\xa5\x74\x05\x19\x6a\x18\x68\x76\x77\x6d\x37\xae\xae\xc9\x5f\x9d\x77\xa2\x53\xef\xfe\xbb\x74\xaa\x39\x15\x34\x9f\xaf\xf5\xaa\xf0\x3e\x2a\xf8\x2f\x03\xd9\xb7\x55\xc8\xbe\x4b\xa0\xe2\x6e\x54\xaf\x0f\xc9\x2a\x3f\x44\x55\xfe\xb5\x70\x95\xb3\x2a\xc7\x16\x5b\xd3\xd8\x6d\x02\x9c\xc3\xba\xd4\x95\x36\x75\x1e\xa5\xde\x48\xa9\x4b\x6d\xea\x5a\x9b\xfa\x36\xe2\x4f\x60\x28\x12\xeb\xf9\x33\xbf\x9d\x57\x68\x53\xa4\xcf\xf2\x1b\xcf\xb2\x46\xf5\xbf\x3e\xcb\x4f\x3c\xcb\x02\xb8\x37\x43\x96\x5f\x79\x96\x25\x70\xa3\x86\x2c\x3f\xf2\x2c\x33\x44\x45\xe9\xb3\xfc\xc2\xb3\xcc\x51\xa3\xcd\x40\x12\x05\x3d\x1c\x5f\x22\x44\xe2\xf3\xbd\x3d\x1c\x5f\x32\x88\x84\xda\x1b\x63\x75\xbc\x97\x1b\x9b\x6c\x4d\xbd\xfc\xcd\xba\x34\xf8\x7b\xcd\x6a\x63\x5b\x4f\x35\xb2\xb5\xc9\xed\x03\x37\x72\x9c\x6a\xe4\x36\x39\x77\x72\x47\x14\x83\x44\x71\x90\x95\xc8\x7b\x71\x5e\x1c\xd6\x1b\x87\xb5\x3c\xf2\x2c\x54\x5c\x48\x33\x2f\xdf\xe6\x6e\x19\x9a\xfc\x70\xcf\x26\xeb\x51\x93\xa7\x45\x70\x28\x08\x7b\x90\xc0\x25\xb3\xa2\x1a\xc7\x21\xee\xe4\xe2\x79\xb3\xea\x35\xe8\x0a\xcf\x54\x5d\x61\x56\x6b\xc5\x6a\x58\x15\xed\xef\x08\x4f\x9e\xe2\x79\xb3\xea\x2d\xd6\xb3\xac\xd6\x8a\xd5\xb0\x28\xda\xdf\x09\x07\xb3\x14\xcc\x9b\x55\x6f\xb1\x9e\x65\xb5\xf6\xcd\x63\x33\x6a\x89\xcf\xee\xab\x25\xce\xe8\xee\x83\x37\xb6\x53\x91\x3a\x45\x20\x31\x1d\x13\x08\xa6\xcb\xd0\x2c\x3d\xf6\xa7\x8f\xf0\x97\x01\xfb\x3d\x34\x5a\xd5\x8d\x0c\xb6\x73\xff\xb1\x23\x63\xa7\x34\x0e\x27\xe1\x02\x7d\x24\x90\x09\xd6\xa6\x37\xd8\x4b\xa7\xdd\x68\xd2\x66\x12\x44\x08\xd2\x2c\x5b\x20\xb9\xa7\xb0\xaf\x4d\xef\x6e\x6c\x0a\x8b\x4a\xf9\x5e\x96\x01\x67\x52\x3d\xcb\xa2\x79\x6f\x6c\x1a\xa5\x8e\xe7\xe5\x19\x4e\x81\x5f\x51\xba\xb5\xce\xc9\x02\xb5\x6c\x92\x48\x29\x8e\x82\x0c\xed\x6c\x6f\xc5\x2f\x10\x3d\xa4\x2f\x3a\xb5\x13\xc8\x20\x72\x6b\xc8\x79\x13\xe7\x64\xfe\xf1\xe0\xbc\xcf\x06\x62\x9d\xe9\x80\x58\xaa\x21\xa3\xc9\x78\x90\xb1\x5c\xce\x4c\xfc\x3c\x76\xe6\xf0\x93\xb2\x4f\xce\x82\xff\x3a\xa6\x90\x08\xc6\x09\x39\x2b\xf1\xf3\xd8\x59\x47\x30\x8a\x8d\x80\x51\xd4\x9d\xad\xf8\x79\xec\xdc\x4a\x40\x8a\xb3\x47\x07\x52\x18\x8d\xd1\xb2\x81\x14\xbd\x74\xb1\x5e\x41\x20\x45\x3f\x5d\xb4\x2f\x1b\xe9\xd5\xf7\x36\x2a\xe3\x05\x8f\xf7\x36\x0b\xcc\x86\x23\xe8\x8c\xb4\x98\x11\x5b\x2c\xcb\xd9\x1b\x68\x92\x07\x65\x38\x7b\x44\x28\xc3\xd9\xfd\xa0\x0c\x67\x7f\x02\x94\x41\xd3\x66\x01\x28\x83\xce\x8e\xd3\x0c\x65\xa0\xaf\x48\x90\x07\x65\xe0\x19\x20\x63\x3e\x94\x41\xe4\x21\x41\x26\x94\x21\x10\x50\x86\x4c\x70\x41\xd2\xbc\xd4\xa3\xe6\xa5\x5a\x93\x38\xa3\x79\xb0\xde\x0e\x19\xa8\xcf\x0d\xc2\x07\xe6\xec\xcf\x82\xfd\x59\xb2\x3f\x2b\xf6\x67\x4d\xff\x64\x19\x12\xeb\x31\x58\xc8\x11\xb3\xba\xb7\xac\xb6\x2d\xab\x6d\xcb\x5a\xda\xb2\x96\xb6\xac\x6e\x58\x15\x3f\x87\x33\xb8\x57\xfb\xfb\x59\x10\x43\x23\x71\x51\xd6\x9a\xfa\xbc\x4a\x3c\xaf\xd5\xe7\xa2\x36\x7f\x61\x6f\xe4\xc3\xbd\x59\x04\xd2\xb0\x89\xba\xbc\xd1\xfb\x1b\xdd\x24\xd5\xc9\xf4\x2a\xd3\xaa\x7e\x7b\x64\x43\xba\xec\xfe\xd2\x4b\xcb\xfb\x34\x43\x4a\x1f\xbd\x41\x2b\x20\x9d\xd4\x24\xe9\xf8\x73\xac\xfa\x97\x1c\x72\x66\x69\xd9\x0a\xee\xee\xae\xaa\x2f\x9e\xdc\x6a\xe2\x37\x93\xdb\x27\x56\x3a\xb5\x52\x7d\x61\x6b\x32\x5f\x37\x02\xea\x74\xf2\xf6\xda\x26\x23\x49\xea\x72\x85\xc2\x16\xf8\x99\xec\xd0\x2c\xea\xd0\xc2\xa6\x0c\x2c\xfa\x7a\x48\x66\xba\x91\x33\x5d\x0b\x41\x0c\x7a\xe2\x3c\x25\xb5\x6b\x69\xec\xc8\x67\x3a\x8e\x33\x94\xbd\x61\x1e\x1d\x45\x8f\x4a\xbe\xd6\x95\xf2\x58\xa9\xd6\xea\x4f\x94\x14\xa2\x54\x53\x4e\xbc\xaf\x5f\x5f\x37\xae\x2a\x75\x52\x97\x07\xca\xdb\x1f\xa9\xed\x47\x8f\x23\xb5\x7d\xe5\x91\xd6\xaf\xa4\x10\xa5\x9a\x4a\xe2\xbd\xd4\x3e\x95\x0c\x9f\x15\x76\xcc\xc9\xd7\x76\xec\x8d\x33\x9e\xed\x6b\xa4\x83\xce\xee\x61\x0c\x18\xd5\x49\x2e\x9c\xf3\xa4\x2f\xce\x4b\x29\x09\xd5\x6a\x2f\xa1\x09\xd9\x26\xf0\x32\x5b\x87\x49\xc5\x20\xf4\x6a\xc8\xe6\xfc\xbb\xb1\xd4\xbc\x1b\x5b\x58\x6d\xcc\xde\xe1\xb6\xd5\xd8\x5d\x45\xca\x35\x1b\x30\x32\x11\xab\x82\xd6\xeb\x03\x1e\x34\x45\x74\x15\x03\xbe\x7e\x76\x17\xbd\xa8\xc7\xfd\x36\x37\xee\xc3\x3a\x2b\xf8\xba\x02\x74\x63\xaf\x52\x2a\x0f\xec\x84\x4b\x43\x12\x8f\xff\x2f\xfa\x12\xe5\xd2\x81\xce\xcd\xcc\x6d\xd2\xb1\xca\x29\x0a\xde\xc4\x8c\xf1\xf2\x25\xb2\x6a\x95\x96\xb3\x91\x65\xac\xfb\xff\x92\xf7\xa5\xdd\x6d\xdb\x5a\xbb\xdf\xef\xaf\xb0\x75\xfa\x7a\x91\x31\xe4\x48\x6e\xd3\xd3\x4a\x65\xbc\x1c\xcf\x89\x9d\xa4\x49\xda\x93\xd4\x4b\x2b\x4b\x03\x25\x51\xa2\x06\x6b\xb0\x25\xc7\xfa\xef\x17\x7b\x63\x20\x40\x02\x24\x25\x3b\xed\x7d\xcf\xfd\x60\x4b\x22\x01\x10\x04\x41\x60\x8f\xcf\xe3\x16\x2a\x05\xee\x50\x38\x53\x9e\xc5\x5e\x34\xd8\xf1\xd8\x04\x38\x9c\x0a\x53\x0a\x10\xab\x31\x60\x49\x92\x04\x78\x1d\xab\x03\x66\x00\x58\x8a\x8c\xc6\xce\x08\x9f\xd1\x4b\x06\xc1\x73\x20\xe6\x41\x0c\x68\x09\x0f\x49\xa4\x25\x97\x8e\x1a\x3f\x48\xef\xb3\x89\x90\x61\x0d\x09\xb2\xd3\x32\x03\xb7\x99\x56\xbc\x67\x7b\xbf\x72\xf9\xbf\x30\x28\x91\x52\x08\xb6\x42\x27\xc4\x2e\x01\x42\x5b\x28\xb0\xda\xe8\x05\xc3\xc2\x6e\xb1\xf5\x7c\x1f\x2c\x4d\xf4\xab\xf8\xc6\x2b\x4c\x64\x85\x51\x54\x81\x9f\x1b\xcb\x73\x13\xb5\xb1\xa8\x2d\xd1\xec\x7d\x21\x03\x83\xce\x8c\x64\xd4\x77\x06\x02\xbd\x88\x5e\x30\x94\x80\x58\x0c\xad\x47\xc5\xff\x33\xc4\xe3\xd2\x11\x91\x85\x12\xf8\x4f\xe6\x62\x0b\x35\xff\xcb\x02\xe6\x13\x3a\x12\xce\xa7\x44\xd8\x29\x03\x0a\x92\xb1\xaa\x84\xff\x09\x1d\x5e\x91\x8e\x1c\x62\x28\x49\x94\xde\xbf\x6b\x3e\xc5\xcc\xac\x67\xdf\xeb\xe9\xfc\x6f\x9e\xb0\xab\x04\x9c\x52\x26\x90\x92\x34\xd8\xe0\x47\x2f\x03\x4a\xa9\x6f\x30\xae\x84\x86\x63\x03\xab\xcd\x67\x68\x45\x52\x1a\x99\xcf\x8c\xe8\x1a\xb6\xb2\x41\x33\x35\xc3\xd1\xd4\xb7\xc2\x33\x75\xe9\x4d\x5b\x11\x9a\xc2\xd1\x1d\x02\x34\x01\x3e\x13\xfd\x37\x87\x24\xa9\x5b\x30\x34\xdd\xd9\x4c\x5c\x1c\x9d\x49\x4b\xd7\xe2\xda\xd5\x47\xaa\x86\xc3\xbe\xc8\x7e\x9d\x07\x2d\x9f\x45\xc4\xe4\x48\xe5\x22\x7f\x0b\x7a\x93\x62\x59\x81\x51\x09\x61\x3a\xbc\x87\xc8\x55\x4f\x9f\xec\x0d\x3a\xa4\xf4\x11\x9e\x8b\x32\x90\x7f\x17\x49\x38\x05\x45\x90\xd9\x12\x1b\x54\xb1\x44\x5f\xd0\x7a\x12\x3a\xb7\xc9\x42\x30\xf5\xe6\x54\xd1\x3e\xa3\x5d\x06\x1d\x5d\x30\x62\xf2\xae\xd4\x6c\x9a\xe5\x77\xb7\xda\x58\xcd\x2f\xe9\x56\x1b\xab\xe9\x25\x1d\xc5\xc9\x0a\x66\x95\x8e\xe2\x64\x07\xb3\x4a\x47\x63\xca\xb2\xf3\xac\x6d\xe6\x49\x47\x71\xb2\x82\x3f\xa5\xa3\x38\x59\xc1\x9f\x10\xc5\xe9\xf3\xda\x79\x35\xe9\xe0\x4f\x66\x56\x10\x5a\x6d\x5c\x6f\xa5\xd9\xb0\xac\xbc\x3e\x20\x0a\x9e\xb4\xec\xb7\x67\x4d\xe1\xb1\x23\x38\xa5\xdb\xcb\x78\x82\x62\x4e\x86\xfa\x3a\x30\xd4\xa7\x02\x9f\x59\x2d\x6c\x56\x7b\x85\x15\x8c\x0c\x56\x74\x6b\xe6\x56\xc2\xd6\x15\xe5\x6e\xc1\x5a\x6f\xcd\xd9\x32\xd5\x63\x59\x5b\xb0\xde\xad\x9d\x65\x46\x77\x87\xb5\x93\xbc\xd2\x8d\x65\x26\xcb\xaf\x66\x2c\x53\x6d\x65\x78\x86\x74\x62\xb6\xb2\xb8\xa9\x8c\x9f\xa7\xe5\x62\xa6\xb2\xa4\xa5\x4c\x14\x21\x1d\xdd\x52\xa6\x1b\xca\x3a\xb9\x0c\x65\xf1\xbc\xb1\x06\xe6\x8d\x99\x0c\x65\xf9\xac\x3e\xe3\xfa\xa4\x1e\x86\x7e\x78\x34\x62\xf0\x8c\x33\x7f\x9a\xc7\x02\x34\x8e\x1e\x7e\xd2\x02\x24\xcb\x8d\x95\x4d\xff\xd4\xe9\xea\xe1\x32\x0d\x44\x29\x08\xa6\x6f\xeb\x6f\x9d\x3a\xf0\x63\x3c\x3c\xb0\x1f\xb4\x4b\x53\xff\x34\x1c\xd5\x67\xec\xb8\x2b\x70\x95\x3b\x18\x76\xc6\xad\x01\xa4\xc5\x7e\x73\xd7\x37\xf1\xbd\x26\x98\x34\x9c\x26\x18\x0e\xe0\xab\xfb\xfc\x57\x86\xbb\x81\xea\xed\xbb\xb6\x03\xe8\xb5\xac\xa9\x6e\x52\x6a\x12\xed\x5e\xfb\x04\x5a\x90\x16\x97\xeb\x45\xb1\xbc\x4f\x5a\x78\xa8\x8a\x17\x6c\x4c\xe6\xd3\xee\xde\x12\x60\x68\x5e\xef\x8d\xe9\x77\x18\x6d\x76\x93\xd7\x70\x11\x02\xa5\x1c\xdf\xad\xf1\x83\x5b\x22\x64\xe5\x65\xe9\xc0\x39\x16\x10\xb3\xb0\x81\x86\x75\xc0\x16\x0e\x86\x1c\x97\xe7\xc4\x7e\xce\xad\x98\x6a\x32\x10\x73\x53\x3d\x76\xc6\x25\x4a\x87\x70\x28\xa9\xee\xa2\x24\xb0\xdc\x38\x6c\x38\xea\x5e\x37\x25\xa6\xab\x73\x5d\x17\x37\xed\x0f\xc6\x33\x06\x32\x0a\xec\x38\x96\xe0\x29\xb5\x3c\xb3\xc8\x41\x94\x70\x1f\xe4\x3c\x5b\xa2\x74\x1f\xd0\x2f\xbe\xb5\x02\x2a\x36\x4d\xe9\xc1\x4a\x9d\xb0\x9a\x15\x08\x9d\x82\x89\x1c\x42\xed\xab\xc4\x7d\xca\x56\xa4\xa6\x50\x07\xeb\xc5\x64\xa9\xb6\x1f\xe1\xf6\xb2\xe9\xd5\xa4\xfd\x73\x81\x1f\xa8\x55\x43\xd3\x95\xd2\xdf\x65\x34\x0f\xd0\x5c\xb5\x5d\xaa\xf0\x62\xbf\x79\x50\x6d\x67\x07\xfe\xff\xe6\xe1\xc1\x32\x1d\x4c\x21\xd8\xb5\xc0\xe2\x85\x73\xa1\x49\x27\xe6\x01\x88\xf3\x15\xf6\x10\x56\xc0\x68\x83\xad\x3b\xdf\xd8\x18\x4f\x2b\x7d\xc2\x37\x88\x70\xa5\x3c\x8d\x09\x2e\xeb\xb4\x7d\xcc\x97\x81\x17\x93\x8e\xc0\x5b\xfa\x96\xee\x7d\xfd\xca\x22\x95\xbf\x7e\xf5\xda\x60\xe0\xbd\xe4\xda\xd2\x6d\x30\x0d\x1a\x41\x88\x4c\x19\x05\xe6\x35\x2f\x28\x0d\x4e\x65\x83\x4c\x05\xa5\x77\x75\x47\x14\x6d\xd4\x7e\x99\x5d\x4f\x7a\xac\x17\x74\x16\x5d\x45\xda\xd9\x18\xf2\xf0\xa6\xa3\x89\x05\x05\x7b\x4e\x2f\x59\x9c\x3b\x98\xe2\xdf\x16\x43\x49\x5f\x94\xb7\x69\xfa\xa2\x51\x5b\x84\x96\x98\x6a\x18\xdd\xd0\x0c\xc5\x1c\x2a\xb5\xce\xfc\x2d\x7b\xe7\x09\x2f\x01\x77\x4e\x74\x03\xa1\x52\x21\x2b\xa6\xa6\xcd\xaf\x1f\xbf\xfb\x4b\xf5\x97\xe1\x39\xc0\xa3\x57\xba\x3c\x8f\x72\xc4\xa0\x3f\x62\xbe\x40\x29\xcf\x6b\x1c\xc0\x55\x2a\x4c\x6b\xbc\x4d\x98\xcc\xef\x6c\x26\xf3\x16\xb9\x05\x4e\x82\x85\xd5\x64\xee\x63\x81\x84\xc9\xfc\x16\x5e\xa4\x06\x7d\x30\xb8\xb4\xa1\x06\x32\x85\xd8\xbe\xbb\x1a\x10\xb0\xc8\xa7\x85\x46\xb2\x25\x60\xc8\x75\x0d\xef\xab\x58\x8c\x15\x83\x3b\x51\xd7\x74\x76\x87\xbb\x0d\x7a\xb7\xd1\xfb\xb1\x84\x59\x08\x3a\x9e\x08\xd2\x87\x05\x7a\x67\xc7\x61\xc7\x4b\x04\x7e\x7a\x25\x5c\x79\xbd\x92\xcb\x7e\x42\x21\x30\x25\x3b\xf8\x0b\x17\xf7\x32\x2b\x01\xff\x76\xcb\xb0\xae\xd1\xda\xd6\x95\xbc\x29\x97\xf0\xbd\x5f\x9f\x39\xb0\x8c\xbb\x68\x39\x8f\xde\x77\xac\x7b\xdb\xe1\xaf\x27\xd0\x91\xc1\x39\x46\x70\x81\xc7\x0a\xe4\xc6\xa5\x8b\x69\x7d\xe0\x17\xe8\x6e\xcd\x19\x19\xee\xbd\x5b\xab\x9d\xd9\xb0\x9b\x6a\x0c\x50\x87\xde\xfd\x06\x96\x66\x63\xab\xe4\x15\xe4\x56\x28\x26\xe6\x23\xda\xb6\x6a\x62\x7e\x95\x6e\x62\x36\x34\xba\xd5\xa8\x37\xfb\x00\x5a\xc6\x48\x9b\xd7\xaf\x4f\x67\x8b\xff\x98\xfa\x83\x60\x3a\x0d\x86\x1d\x06\xd4\xca\x77\xc5\xfb\x8c\x17\xb5\x19\x99\xc0\x9b\x7a\xe0\xf8\x31\x39\x21\xa7\xe2\x19\xf3\xf0\x12\x35\x35\xa1\xd0\xac\x33\x44\x6a\x84\xc2\xc7\x9d\xc7\x19\x42\xa6\x20\xaf\xc2\x43\x2e\x62\x31\x19\xe7\x70\xba\xe1\x77\xeb\xb7\xc1\x68\xb2\xd7\x9a\xd4\x3b\x0e\xa7\x44\xa1\x5f\x19\xcd\x00\x99\x44\x47\x0a\x64\x1a\xfd\x00\xf6\x01\x02\xb1\xa5\x5e\x5b\x09\xd9\x2b\xb6\x95\x90\x41\xf2\x1a\xb6\xba\x37\xde\x75\x69\xf7\xe2\xf9\x3e\x41\xe9\xe3\xae\x28\xbe\xd6\xaa\xc7\xca\x53\xde\x33\x8c\x57\x1c\xaa\x4b\x4e\xbf\x37\x35\x30\xe5\xc7\x27\x1f\x1f\xe4\xe3\x84\x21\xfb\x58\x01\xc1\x32\x99\x70\x54\x3b\xe8\xd2\x56\xa6\xac\xd8\x4a\xf7\x2d\x65\xf6\x95\x76\x6c\x65\x7e\x04\x18\xa6\x93\x35\xee\x9c\x13\x4c\xb0\x3b\x8f\x80\x9a\xb6\x98\x05\x11\x50\xf1\x4e\xe2\x64\x14\xa9\x65\xe3\xc3\xc6\x29\x49\x4e\x12\xc3\x76\x12\x99\x83\x17\x8a\x99\xf8\xae\xf8\xeb\x3e\x3c\xc4\x04\x83\x84\xe6\x4e\x60\xb9\x8f\xf7\x6a\x18\x7f\xf4\x3e\xaa\xb7\xc7\x7d\x0a\xd8\xe5\x06\xd0\x47\x99\x9d\x0e\x74\xb3\x8a\xf7\x4f\xdb\xbe\xf0\x82\x57\xea\x05\xd5\x17\x38\xe5\x82\x57\xb6\x0b\x5e\x25\x2e\x78\x65\xd8\x2f\x85\x79\xbd\x07\xa7\x47\x8f\x25\xab\x1a\x19\xc8\xaa\x90\xe1\xa2\x52\xdf\x83\xa5\x9b\x30\x2f\x17\x76\x5e\x73\x75\xa1\x7f\x16\xea\x24\x64\x03\x78\x0f\xed\x27\xa9\x2a\xc0\xf2\x44\x1f\x4d\x6e\x35\x4a\xd2\x4e\x65\xf5\x5c\x32\x48\xc6\x52\x3a\xf7\xa4\xf4\x2c\x9e\x53\x37\x6f\x26\xa7\x65\x31\x56\x1a\xcc\xca\xe4\x34\x55\xcf\x9d\xaf\x69\xa8\x5c\x64\xbb\xaf\x5a\x55\x63\xa9\xc9\xbe\x34\xa7\x38\xd9\x40\xf0\x64\x82\x1f\x04\x51\xaf\xa0\x7a\x7c\x3e\xbf\xd5\x21\x43\x39\x93\x0a\x57\x4c\x9a\xf3\xc9\x14\xc8\x68\x0a\xcc\xec\xab\x32\xc8\x14\xcb\x48\x20\x63\x60\xae\x29\x0c\xa8\xe4\x1e\xfa\x82\x8f\x85\x41\x55\xb8\xf6\xf7\xc2\xfd\x66\x9a\xf1\xf4\x69\x51\xb5\x29\x75\x5a\xe7\x9d\xe1\xa6\xc9\x6e\x9d\xea\x89\xde\x20\x77\x1a\x74\x86\xe5\xbb\x40\xd0\xfd\x79\x7c\xd8\x78\xec\xbb\x9f\x24\x7c\x4d\xbc\x35\x50\xff\x8c\x87\x3d\x32\xe9\xcc\x88\x6d\x16\x30\x43\xc1\x2a\x7e\xa5\x94\xc9\x15\xbf\xbc\xe5\xe2\x91\xb8\xe8\xae\xb4\x35\x51\x73\x56\xd3\x35\xbe\xf8\x4b\xcc\x73\x5d\xfe\x59\xf1\x09\xc5\x02\x7c\xa5\x33\xa8\x1c\x79\x83\x5a\xcc\x0d\xe4\xb3\x8f\xb6\x89\x38\xa3\x03\x40\x77\x5d\x90\x10\x02\xf8\xd7\xb3\x79\x4b\x50\xdb\x46\xa5\x79\x00\xff\x86\x5e\x99\x85\xf0\x46\xbe\x13\x2e\xdf\xe6\xf1\x68\x98\x02\x43\x47\xdf\xdd\xec\x6f\xb5\x70\xa7\x9b\xfd\xad\x16\x6e\xb9\x9c\xbd\xa5\x2b\xab\x35\x24\xd1\xea\x6c\x90\xd5\xd9\xd4\xb3\x36\x60\x75\x3b\x80\x90\xf2\x89\xdb\x37\xd6\x35\xda\xca\x8b\xe7\xee\x77\x22\x48\x31\x6a\x82\x07\x28\xea\xe3\xa1\x84\x23\x76\xbd\x46\xa6\x3d\xd5\xe4\xb6\xb0\x07\x1f\xe2\x29\xd2\xcc\x0a\x3e\xe4\x05\x68\xc1\xec\xe0\x43\x51\x86\x34\x53\x83\x0f\x9b\xb9\x6c\xaa\x71\x63\x7e\x03\x8d\xf9\x8f\xb0\xa9\x06\x7e\x1e\x1b\xea\xb1\xec\x40\x84\x94\x7f\x9c\x62\x4d\x3d\x16\x9c\xd8\x74\x43\x3c\x1c\x76\x42\xdf\xe3\xc6\x53\x79\xc0\x3d\x00\xfe\x67\xf1\x8b\x20\xac\xe8\x64\xa6\x97\x8d\x0e\xb1\xd2\xd1\x6f\x32\x7a\x78\xa0\x05\x82\xe1\xd0\x9f\x7c\xa8\xb7\x82\xf9\x94\xea\xe2\x55\xa9\xed\xab\xaa\x13\xee\x18\x5f\xe9\x76\x07\x1b\x05\xa9\xcb\x15\x42\x3b\xee\x35\x81\x49\xd9\x20\xeb\x1e\x82\x3d\xb2\x49\x0f\xd0\x11\x45\xc4\x7a\xaf\x55\x64\x4f\xaa\x28\xe6\xc0\xa9\xe7\x17\x71\xda\x14\xe5\x93\x3e\x8b\xcc\x58\x54\xaf\x73\xa9\x46\x74\x0e\x6b\xdb\x05\xfc\x7b\x9d\x80\xaf\x09\xda\x0e\xd8\x19\x96\x02\x98\x44\xe0\xed\xbe\xf1\xce\x8a\x67\xcf\x5f\x90\x4b\x6f\xf1\xec\x8c\x5c\x79\xa5\xea\xd5\x6f\x18\x5c\xc0\xca\x55\xaf\x76\x77\xdd\x73\x66\xca\x7b\x03\x49\x80\xf8\xed\xd2\xad\xd2\xe7\xea\x6f\x9d\xd3\xf6\xcc\x56\x4f\x3a\x6e\x74\xa9\xf4\x27\x45\xfe\xf9\xfc\x85\xfb\xec\x0c\x31\x60\x52\x6a\xe0\x48\x17\xf9\xa7\xa8\x81\xa1\x93\x70\x93\xb6\x8a\x5b\x89\x8a\x80\x30\x1d\xb7\xf5\xbc\x16\x52\xe2\xeb\x78\x5c\x93\xb4\x55\x04\x7e\x24\xd2\xe7\x16\x15\x63\x96\x89\xc0\xdf\x92\x11\x57\x85\x5d\x2a\x72\xbe\xf7\x34\x71\x8f\xfc\x1e\xc3\x97\xf8\xe0\xbd\xcf\x10\x07\xa1\x5b\xd5\xec\x42\x0c\x46\xd0\x2c\xe2\x65\x1b\x08\xc8\xef\xba\x98\x10\xf8\x99\xb8\x0b\x27\x18\xea\x51\xd8\x3d\x85\x4f\x63\x13\xa2\x4b\xeb\x36\xf4\xda\x1e\xaf\x77\xbf\x4e\xbc\x5e\x17\xd5\x92\x43\x78\x21\x5e\xd1\x7f\x55\x31\xe7\xcd\xb3\x1c\xed\x78\x1f\xa5\xb1\x63\xd2\x04\x3b\x06\xcc\x5d\xf6\xee\x3b\xe7\xd7\x57\x54\xf7\xfd\x94\x5e\x60\xf7\x85\x5b\x9d\xd1\x65\x77\xbb\xbc\xb3\xe3\x7c\x54\x16\x13\x48\xa1\xfd\xa4\xff\x76\xc9\x6d\x54\x52\x2c\x52\x60\x94\xfc\xa4\xfe\xa2\x5a\x11\x16\x50\x96\x21\xe7\x82\x75\x25\x79\xcc\x25\x1f\xf7\x9a\xa3\x89\x3c\xba\xb3\x73\x87\x95\xd5\x63\x90\xef\xfb\x29\x7e\x04\x12\x24\xf1\xd5\xfe\x08\x86\x2a\xfc\xf6\x89\x21\x61\xfd\x01\x37\x1c\xd6\x97\x90\x9f\x46\x9f\x29\xe4\xdc\x80\xb9\x1b\xed\xba\x2c\x02\x29\x1d\x3e\x9b\x2e\xaa\x1d\x88\xba\x76\xab\x7f\x50\x41\x9a\xdd\xd6\xce\xce\x7c\x67\x27\xfa\x09\xb9\xc3\xf4\x26\xc7\xb4\xab\x1f\xb2\x15\x9c\xc0\x2f\xce\x82\x19\x28\x08\x71\xd9\x36\x3a\x23\x14\x90\x34\xc5\xc2\xe0\xb7\x55\xa8\xc1\x47\xc3\x59\x71\x1a\xdc\x53\xad\x5c\x5b\x65\x9f\x2d\x9e\xed\x3f\x77\xc6\x82\x02\x6f\x9f\xaa\x46\xe3\x85\xae\xd9\x94\xf6\x7e\x7c\xa1\xea\x36\x06\x4d\xcb\xa0\x68\x95\x80\xec\x75\xc2\xc9\x5e\x71\xa9\xfa\xd3\x4b\xdc\x5e\x32\x28\x13\xb9\x4a\xc4\xb2\xf5\x07\xe0\x27\x24\x2a\xc9\xb7\x30\x56\x55\xe8\x6a\xbc\x6a\xf5\xcf\x84\x6e\xf7\x1f\x23\x4f\xf8\x67\xef\x4f\xd3\xca\x58\xfd\x9c\x7c\x56\xbc\x77\xe4\xf3\xe3\xad\x1a\x37\x98\x31\x6e\x08\x6e\x96\xc6\x18\x33\x21\xcd\xbf\x4b\x4a\x2c\xdd\x2b\x34\x3a\xdf\x5b\xd9\xbc\x75\x9b\x48\x4e\xea\x69\xed\xee\x36\xb3\x7b\x6c\x7a\x73\x2f\xd4\x9b\x3b\x34\xdd\x5c\xc4\xdc\x9d\xb0\x9a\xa8\xfd\x36\x91\x73\xdf\x5b\xc9\xb9\x6d\x4d\x59\x56\x6c\xdf\xc0\xbf\xfd\x98\x91\xb6\x71\x6d\xdf\xdb\xb8\xb6\x37\xbb\xd8\x9f\xe6\x08\x59\xd5\xbd\x17\x70\x74\x42\x86\xe1\xfd\xa7\x2d\x5a\xd6\x5a\x05\xde\x19\x3d\x2c\x3a\xa1\x83\xeb\x12\x64\x9d\xe1\x4b\xfd\x99\x3a\x3d\x4c\xa1\xa3\x0d\x5d\xd8\xac\x8b\x90\xdb\x4f\x77\xbe\x3f\xc4\xc2\xc7\x54\x4b\x8e\x68\x18\xbe\xa0\x83\xd9\xb8\x4f\x7e\x61\xdb\x83\xb6\x0d\xaa\x1b\x11\x10\x72\x86\x74\x29\x1f\x1d\x38\x5f\xe8\x9e\x64\xdf\x2f\x0f\xe9\x59\xed\x00\x80\x67\xf0\x1d\x11\x6a\xc6\x76\xcf\x5b\xf5\x94\xba\x41\x56\xf0\x32\xd0\x9a\x5b\xfd\x8f\x51\x68\x53\x41\x05\x22\x52\xe5\xe4\x60\x33\xc7\x64\x5c\x74\x6e\x64\x05\xf7\xd2\x27\x32\x05\x3d\x44\xb9\x17\xef\x9c\x0e\xf3\x6e\xb9\x44\x74\xfd\x81\x1d\x7d\xc1\x95\x08\x4d\xfb\xd8\x55\xd4\x96\xe7\xfb\xcf\x9c\xf2\x2f\xa5\xe7\xb8\xf5\xbc\xbf\x10\xea\x44\x4a\xf9\xdf\x78\xd1\x83\x66\xd1\xfb\xb5\x54\x69\xee\xd2\xff\xba\x94\xf5\x05\xb1\xca\x7c\x80\x9c\x0e\x5a\xcc\x99\xbb\x35\x19\xcd\xb8\x4c\x88\x1b\x4f\x14\xe6\xaa\xdc\xc8\x59\xf2\x2e\xe8\xa1\x17\x99\x8d\x17\x10\x65\x5c\x4f\x7a\x88\xf3\x09\x17\xfe\xd5\x6e\xb7\x0b\xfa\xcb\x27\x0f\xb2\x41\x9f\x2c\x0a\xe4\x47\xf9\x63\x09\x3f\x94\x66\xb9\x90\x60\xda\xed\xa7\x07\x79\x86\x4b\x23\xc2\xae\x44\x12\x42\xac\x47\xa5\x52\xa9\x20\x0c\xcd\x7f\x81\xcd\xe9\x07\xaf\xfc\x13\xf9\x4a\xff\xd1\xb1\x69\x98\x62\x7a\x95\xd0\x65\xf0\x0d\x3d\xff\xea\x3e\xfb\x8a\x52\xae\x76\xa2\x5c\x7b\xfe\x83\xfb\xec\x87\x15\x9d\xb7\x71\x9e\xdf\x23\x52\x00\x6d\x22\xb4\xca\xd0\xff\x9d\x73\x30\xd7\xe4\xab\xb2\xe0\x96\x78\x73\x55\x64\x79\x41\x99\x94\xbd\xcb\xbe\x57\x6f\x38\x2d\xb7\xfa\xd7\xb5\x0f\x8e\x73\x88\x5a\x2a\x7a\x3f\xb8\xe4\xaf\x6b\x3c\x0e\xae\xf6\x95\xc1\xe4\xcd\x39\xf7\xa9\xfc\x93\xb0\x6d\x6f\xa5\xcc\x38\xc3\x2c\x78\xcc\x24\x5c\x19\x9c\x63\x6c\x81\x52\x2c\x1c\x45\xcd\x80\x01\x84\xed\xe2\x79\x91\xa6\x57\x28\x20\x8c\x29\x1f\x92\x87\x87\xe1\xcb\x06\xc7\x23\xa5\x67\x38\x05\xce\x80\x73\xd8\xf4\xfd\x65\xa1\xd2\xf4\xda\x02\x6f\x57\x65\xaf\xc1\xea\x70\xb6\xe7\x74\xc4\x79\xad\xc0\xd8\x9f\xc0\x63\x60\x45\x64\xf4\xd7\x56\x73\x85\x14\x35\x1a\x67\x0b\xcc\x69\x03\x3b\x4b\x66\x6a\x40\x0b\xd9\x95\x7d\xfc\xdf\xb6\x06\xf4\x77\xac\x01\xfd\xdd\x8c\x64\x82\xc0\x66\x3a\xee\x19\x78\x8f\xfb\x10\xa3\x11\x42\x00\xc7\xc0\xc3\x91\x23\x43\x6f\xaf\xb4\x0f\xe4\x2b\x65\x32\x86\x7f\x9c\x7c\x05\xb9\x57\xca\x82\x7b\x85\x05\xf5\x03\xbd\x72\x89\x2c\xbc\xbd\x17\x64\x09\xbb\xec\xfd\x3f\x4d\x9f\x2c\x15\x64\x0b\x09\xc7\xbd\xc9\xe0\x7d\xff\x14\x06\x6f\x2a\x13\x4c\xd9\x6b\xbd\x36\x41\xeb\xdf\x6a\x2b\x47\x60\x83\x54\x9a\x06\x6b\x98\x3c\x2a\xa4\x6b\x93\x3b\x60\xad\x77\xed\x36\x9c\x5d\x37\xf2\x17\xd7\xa9\x4f\xdd\x89\x4f\x7b\x1d\x5a\x03\xb6\xad\xb6\xf5\x1c\x94\xbb\xd6\x60\x6f\x6b\xc0\xb6\x35\x60\xde\x1e\x51\x6e\xf5\x3c\x88\xa5\x6f\x7d\xce\x63\xb9\x50\x6e\x12\x69\x9f\x5a\xd1\x1e\x6a\xaf\x98\x59\xd6\x67\x5a\x1e\x0d\xe7\xb3\x0f\xa0\xea\xad\x1d\x3a\xcf\xc4\x86\x77\xf3\xd9\x34\x68\xad\x9f\xa4\x81\xb5\x3f\xce\x87\x0d\xbf\x3e\xb8\x44\xd3\xcf\xfa\x54\x21\xd0\xf7\xb5\x29\x51\x3a\x93\xd1\xdd\xbb\xe1\x39\xac\x64\x6b\x47\xc9\x4b\x53\xc7\x9a\x77\xdd\x80\xbb\x6e\x10\xdd\x3d\x14\x6f\x8c\x3b\x89\xb4\x61\x8d\x7c\x44\xe2\x7e\x9f\xee\xfa\xc9\xe6\x32\x7b\x80\x67\xd6\x7b\x71\xd1\xb1\x13\xbf\xb4\xd2\x0e\xbf\xa6\xb2\x24\x68\x57\xdc\xd0\x27\x66\x26\x8a\xb3\xb9\xc7\xcc\xa5\x33\x3c\x65\xe6\x4a\x59\x4e\x33\x73\x2d\xa3\xff\xcc\x9a\x68\x62\xc4\xd4\x01\x09\x02\x0e\x20\x71\x47\x96\xf7\x2d\xee\x31\x6d\xa0\xc7\xd4\x08\xfd\xc1\x96\x7a\xda\xd1\xf5\x12\x65\x1e\x1e\x50\x68\x59\xc3\x7d\x97\x9b\xdc\xc3\x8f\xde\x53\xe9\xc3\xbb\x11\x7c\xd6\x4d\x40\x8a\xd6\x95\x6e\x2e\xa8\xf7\x33\xe9\x16\xfa\x4c\xf9\x1a\xda\x19\x13\xfa\xa4\x0d\xf4\x77\x76\x90\x69\x28\x60\xe3\xb3\xee\xe7\xa4\x6d\x20\xa1\x60\xad\x46\xf2\xee\x04\x6b\xf5\x84\x1e\x55\x58\xab\xc3\x88\xf1\xcc\xcf\xc9\x5a\x3d\x60\x23\x72\x53\x1d\x08\xd6\xea\x1b\xa0\xc4\x0c\xdd\xc1\xf5\x4d\xcd\x0b\xe9\xbf\x04\x6b\x35\x1c\x8c\x58\xab\xe1\x17\xb2\x56\x53\x89\x7f\xdb\x17\xfe\x3e\x29\x0b\xc7\x78\x08\xfa\xc0\x43\xd0\xcf\xc7\x43\x30\xf3\xfa\xf6\x48\x5f\x3e\x49\x64\xe4\xa0\x5f\x03\x18\xb2\xd9\x66\x4e\x34\x13\x8d\xf4\x2d\x6d\x4c\x8d\xe7\x9d\x67\xba\xc4\x38\xfe\x7b\x46\x41\x8d\xb5\x39\xa0\x6a\x62\x81\x2e\x3f\x05\x20\x30\x39\x70\x5a\x1c\x11\x7a\xe8\x02\x44\xba\xd3\x04\xbe\x12\x40\xb2\xc9\x60\x66\xf6\xf9\x0c\x6a\x41\xd4\x3f\x42\xa3\xb7\x54\x68\x74\x3c\xa6\x1c\xca\x9c\xb5\xa9\x97\xcc\x64\x2a\x6e\x47\x9c\xcc\x15\x8e\x8f\x06\x77\x07\x0a\xb1\xe8\xc2\x48\xbb\xbf\x36\x5b\x4e\xa1\xd7\xec\xf6\x5d\x2c\xcb\xbf\xbf\x1c\x3e\xdf\x57\x7e\xd3\x5f\x2e\x19\x16\xa3\xb2\xb2\xbe\x7a\x68\x8d\x21\xcb\xf0\x16\x0e\x39\xa2\x27\x36\x9a\x91\xb3\x10\x79\x3a\xa3\x31\xa0\x8b\xbd\x7c\xa6\xf2\xee\xab\x8c\x54\xff\x36\xee\x3b\xd1\xba\x08\x53\xba\xaa\x27\xfe\xdf\xf1\x5e\x43\x96\xcb\x66\x44\xb7\xa1\x24\xba\x1d\x6b\xb4\xaf\x61\x8c\xe8\x76\xfc\x48\x9e\x57\x7f\x7d\x9e\xd7\xd0\xcc\xf3\x1a\x63\x64\xbd\x89\x69\xf7\x47\x36\x02\x56\x4f\xdd\x50\x30\x5f\x2d\x81\xd0\xa7\x32\xb4\x46\xb0\x7c\x6d\x2b\x18\xe4\x3e\xb7\x0f\xec\x97\x56\x66\xcc\x47\x7c\x95\xa9\xba\x6e\xd1\xed\xc3\x04\x1d\xaa\xa4\x57\xc5\x8f\x11\x50\x97\x32\x60\xc7\xa7\xcc\xb2\x77\xab\x3e\xe7\x0a\x3d\x11\x98\x6c\x65\x77\x6d\x0e\xd2\xa6\x5a\x4a\x32\x89\xe2\x4c\xbe\x31\xea\xf1\x63\xd7\x0c\x3f\x90\x10\x1b\xd6\x22\x14\x05\x1a\xd1\xe9\x1a\x34\xa2\x8f\x20\x09\xad\xca\x3b\xdf\x88\x09\x54\xe5\xfc\xd4\xf9\x40\x73\xd0\x7e\xfa\x66\xda\xcf\xb4\xae\x58\x00\x5d\x7d\x1d\xd0\x35\xa5\x05\x2b\xc6\xaa\xbf\x39\xed\x27\x27\xf7\x6c\xa9\x98\x05\x63\xfa\x03\x62\xb4\x9a\x0a\xfa\xa4\xff\x14\xf6\x9d\x74\x8c\x45\xab\x09\xe2\x11\x38\x92\xec\xf6\xde\xf3\xd1\x59\xdb\x80\x91\x87\xe0\x72\x63\x78\x47\xff\x3b\xc2\x3b\xfa\x9b\xc1\x3b\xfa\xff\x00\xbc\xa3\xe1\x9a\x8d\x4c\xa5\xc8\x82\x65\xd8\xe2\xf4\x1c\x7d\x78\x8f\xc4\xd7\x1c\x34\x91\x66\x03\x04\x11\x3a\xcb\x28\x5b\xbb\x35\x59\xb4\xec\x11\x9f\x78\x4a\xca\x45\xd6\x88\x4f\x5e\x80\x16\xcc\x8e\xf8\x14\x65\x48\x3b\x35\xe2\xb3\xcd\x35\xd6\x34\x96\xc7\x66\x2e\x35\x70\xda\xc4\xcd\x28\x8f\x16\x78\x25\x87\xe9\x9d\xd4\x02\xaf\x52\x22\x39\xaf\x1c\x74\x60\xbd\x05\xe3\xf8\xf6\x2d\xd7\x55\xb6\xcb\x55\x96\x8c\x2d\x39\x1a\x1a\x76\x26\x26\x0b\xab\x58\x04\x99\xc4\xc0\x8c\xa8\x80\xc1\x30\x8c\xf8\x56\x72\x0d\x02\xe7\x6e\xd9\x2f\xc6\xfc\x01\x04\x04\x52\xd3\x71\x3a\x58\x04\x12\x39\xd3\xe8\x60\xb6\xee\x9c\xfa\xf5\x4f\x35\xdc\x8e\x21\x98\x87\xde\xd9\x25\x15\xb8\xe9\x72\xff\x8d\x45\x61\xd6\x75\xa5\x8c\xde\xa8\x38\xf2\xdb\x8f\x54\x54\xab\x33\x07\xfb\x75\xa8\xa4\xc1\x15\xa9\xa8\x33\x88\xfd\x66\x92\x0a\xfd\x57\x43\x2a\xc8\x58\x9d\x72\x6d\x57\xab\xc3\x7e\xa7\xd7\x49\x5e\x27\xbb\x4e\xf2\x3a\xb1\xbe\x29\x21\xb3\x1d\x7f\x34\xa0\x5b\x57\xb8\xec\xd0\x11\xbb\xbe\x2e\x96\x4b\x84\xfe\xd5\x08\x7e\x0b\x76\xf1\x6b\x77\x37\xf6\x1d\x4a\xd4\x40\x5c\x14\x0d\xdc\x4a\x28\xcf\x18\x80\x42\x94\xda\xce\x02\x3f\xe8\x92\x10\x52\x09\x92\xce\x63\xb6\xf5\x57\xea\x90\xa7\xbe\x5f\x23\x48\x93\xc9\x7e\xfd\x08\xf9\xf4\xd5\x3f\x74\xc1\x1f\x4e\x23\x56\xde\xd4\x98\xf6\xa5\x29\xc5\xbe\xb7\x5e\x65\x14\x23\x40\x31\xf4\xfc\x84\x6e\x3c\xbd\xed\x54\x34\x7c\xbc\x96\x39\x01\x10\xa4\x27\x68\x67\x67\x87\xbd\xf0\x48\xb3\xc9\x19\x12\x0a\x57\x85\x5d\x7e\xa4\x47\xbb\xe2\xd0\x05\xda\xdd\x2d\xfc\x55\xa8\x14\xae\xb6\x4a\x5b\xa5\x08\x5b\x2c\xb0\x44\x88\xb0\x2c\x22\xc4\x09\x8c\x90\xf3\x14\x64\x41\x63\x1d\x89\x35\x08\xe5\x68\x45\xe6\x41\x85\xa9\xff\x6a\x67\xa7\xad\xbb\xd3\x39\x37\xed\x3e\x15\xe8\xf9\x9f\xab\x39\xdc\x8b\xa3\x71\xbd\x89\xc9\xe3\x7b\x3f\xc5\x42\x06\xa2\x53\xe5\x44\x30\x81\x68\xb6\x44\x9b\x64\x7f\x10\xd5\xe8\x7e\xfb\x43\x03\x5a\x64\x8f\x07\xba\x39\x8d\x3f\xc9\x3e\x7d\x92\xea\x93\xe8\x24\x70\x1d\xb5\xca\xba\xd5\x44\xc1\x82\x14\x82\xa2\xe9\xe9\x1a\x21\x23\x6d\x4f\x41\x0c\xe6\x2a\xd6\x46\x30\x69\x86\x51\x7c\x6e\x73\x91\x9d\x91\xda\x5c\x66\x67\xa4\x4e\x0a\xe4\x88\x85\x7c\x0e\x63\x38\x5c\xb0\x34\x0b\x03\x52\x89\xfb\xde\x1b\x92\xaf\xb6\x06\x4f\x59\xee\x3e\x2d\xe1\x79\x6f\xf1\x15\xf9\x9a\xb3\xd2\xd6\xaa\x3e\xdb\xa1\xbd\x9e\xd3\x92\x5c\xaf\x20\x0e\x2c\xe8\xe2\xec\xc3\x97\x25\x5d\x9c\x7d\xf6\x2c\xda\xde\xef\x7b\x43\xba\xef\x38\x68\x59\x7b\x05\x19\x98\xc1\xb0\x73\x14\x42\xea\xf1\x07\x78\x98\x90\x97\x71\x47\x65\xd0\xd1\x1d\x13\x7a\x99\xb3\xec\xe1\xa1\x35\x6a\xce\x41\x80\xde\x13\x5f\x4e\x98\x40\x4d\xb7\xaf\xc9\x28\x0c\x3f\xd1\x6d\x38\x50\x2b\x7e\xce\x59\xf1\x92\xee\xa2\x54\x91\xfc\x86\x9b\x2a\x60\xe3\xf9\x82\x7e\xd7\x75\x85\xa1\x21\x10\xf8\xa3\x74\xd5\x82\x5d\x7f\xe0\x8c\x63\xc5\xc0\x08\xd1\xe5\xd0\xa4\xe5\xd2\xaa\xda\x74\xbe\xb1\xb5\xc8\x17\x4b\x54\x0b\xa3\x98\xfb\x44\xe1\x02\xae\x88\xc1\x62\xeb\x96\x38\x86\x3f\x50\x2d\xf2\xcd\xd1\x77\x54\x9c\xa6\xcf\xef\x8d\x16\x7f\x27\x52\xd7\x4c\x31\x74\xb1\xf2\xc2\xcb\xac\x67\xbb\x25\x92\xef\xb4\x3a\x52\x07\x4b\x4f\x91\x33\xd4\x99\xcf\x60\xb7\xc4\xac\x02\x7d\x3d\x85\xf4\xdb\xb1\x21\x7c\x15\x8f\x27\x0f\xe3\xa8\x14\x5c\x4b\x3c\x22\x9f\xcc\x0f\x0f\xdb\xca\xfc\x4d\x99\xda\x44\x99\xc7\xcd\x5a\xf5\x4d\x2c\x96\xd1\xf8\xec\xae\xd9\xec\x68\xd2\x07\xce\xa6\x03\x61\xf3\x80\x1d\xa0\x4f\xbe\x96\xf9\x70\x9b\xab\xb4\xe7\xf4\x64\x77\x11\xc5\x49\x7e\xff\x1b\x31\x07\xff\x3e\xd5\x9d\x28\x91\xbc\xdf\xed\x56\xb8\x82\xd2\xe3\xcc\xd1\x29\x13\xfc\x89\x6f\x0b\x62\x78\x13\x77\xb5\x7e\x77\x71\x69\xff\x3d\x81\xaa\xf2\xc1\x0e\x44\xfe\x3b\x00\x91\x7f\x4c\x01\x22\xff\xdd\x04\x44\xfe\x3b\x18\x05\x0c\xb6\x1d\x54\x24\xb9\x94\x6e\x82\x51\x91\x06\x9a\x28\xa7\xfb\x93\x77\xbc\xb3\x73\xb2\xb3\x73\x7e\x70\x5d\xab\x58\xd5\x80\x4c\x25\x40\x6e\xaa\xdf\x16\x15\x86\x01\x4b\x96\x15\x86\x02\x4b\x20\xc6\xbf\xc2\xa0\x57\x57\x4c\x5c\x97\x00\xdb\xc7\x2a\x8a\xfa\x27\xfb\x45\x17\x2b\x1d\x51\x5d\xc8\xc6\x0b\x00\x55\x2a\xd5\x0e\x4e\x1f\x1e\xae\x9d\x0f\xcf\x96\xbb\x1f\x30\x40\x2b\x09\xdd\x4a\x1f\x42\xf1\xc3\x33\xa7\xbc\xbb\xb4\x15\xa8\x55\x4e\x11\x52\xfd\x03\x15\x84\x07\xa2\x7f\x27\x39\xfb\xb7\x5c\xa9\xd8\xe9\x02\x05\xe6\x8c\x36\xf8\x11\x01\x60\x86\xa2\xc1\xf3\x9c\x0d\xc2\x98\x45\x6d\xce\xa3\x36\x2f\x1e\x1e\xde\x03\x5d\x77\x2a\x18\xfa\xc3\xc3\x20\x76\x7a\xa0\x9e\x7e\x12\x24\xf5\x38\x52\x7a\x1c\x49\x3d\x8e\xb4\xae\x22\xb9\xa7\xf6\x6e\x67\x47\xfe\x1c\xe8\xd7\x1f\x24\xae\xaf\x1d\x21\x83\xc4\xf5\x07\xe6\xeb\xb3\xc4\x44\xad\xf3\xae\x72\xdb\x7a\xb1\x41\xac\xd8\x20\x5e\xac\xe9\x35\x1f\x1e\x42\xd0\x9e\xe8\xb8\xd3\x75\x06\xc2\x00\xab\x2c\xaf\xe7\x77\xab\x33\x8f\xab\xfa\x1a\x54\xcf\x9f\x54\x3a\x5e\xdf\x97\xc7\x5b\x52\x93\xe2\xfa\x90\xa5\xf2\x67\x1c\x20\xfe\xb3\x72\x08\xbc\x7d\x5f\x14\xb5\x0a\xbc\x7d\x7f\x68\x41\xdc\x80\x75\x12\xfa\x7c\xb3\x27\xaf\x21\x33\x20\xd5\xc7\x27\x84\x88\xac\x72\x9a\xf2\x46\xfe\xd8\x08\x6d\xfe\x3f\xd9\xf8\xf0\x7e\xab\xe3\x0b\xe9\xbe\x9f\x40\x86\xd7\x15\x16\xad\xac\x05\x13\xfe\x43\x1c\x3f\xfb\xe3\xcb\xd2\xc1\xc7\x4a\x89\x0e\x63\x52\x7f\xbb\x8f\x90\xe1\x63\x6d\x33\x4c\x78\xf2\xd6\xdb\x2e\xf1\x48\xe7\xf5\x44\x31\x3b\x34\xbc\x99\x51\xb3\xef\xd3\xa5\xa9\xfa\x97\x71\x5a\xd9\xd4\x3e\xbf\xf8\xb3\x45\x59\xc4\x53\xe4\xaf\x44\x16\xd3\x5f\x76\x6c\x70\x55\xd9\xc2\x9b\xc0\x29\x8b\xbb\x10\xd7\xbb\xe2\xd9\x3a\xc6\xfb\xc0\x73\x2b\xb8\x52\x3c\x88\xfb\x1d\x29\xf0\x37\xa0\xb2\x15\x8d\x9e\xaa\x0c\x1b\x0d\x48\x3d\xee\xcc\x89\xab\xb8\x6b\x14\x36\x69\xca\x31\xe5\xfa\x05\xdb\x64\x7f\xf0\xfe\x8a\x9b\x29\x54\x41\xda\xfa\x50\xb3\x36\xdb\x6b\xfa\x3d\x8f\xa5\xac\x24\x2c\x65\xd5\x1f\x6c\x64\x01\x96\x11\x53\xfa\xc2\xbc\x34\x29\x03\x66\x28\xbb\x2e\x12\x4a\x13\x10\xd1\xa1\xbb\xa0\x36\x73\xd8\xf6\x16\x60\xa2\xab\xc7\x74\xf0\x76\xe9\x5e\x5c\x0e\x1a\xa3\x90\xde\x18\xb8\x66\x4d\xa3\xc9\xb2\x04\xf0\x29\x02\x97\xa7\xa1\xc4\x10\x00\xdc\xa3\x2b\x01\x9f\xf0\x0f\x86\xb9\xce\x8f\xa4\x3c\x50\xfb\x1c\xdd\x82\xca\xe9\xa9\x06\xc6\x81\x09\x0d\x03\x33\x30\x0e\x8c\xec\xe8\x0f\x39\xd0\x46\x94\xf5\x9e\x2f\xf4\x90\xb4\x93\x38\x0c\x80\xdf\x20\x37\xc4\x4f\x0e\x47\x43\x05\x7c\xb8\x00\x86\x65\x23\x7a\x37\x74\x26\x65\x4c\xf0\x1a\x19\x09\x18\x8f\x1c\x95\xbf\x69\xba\x20\xfa\xf9\xa7\x60\x80\x1a\x45\x1b\x2c\x90\x53\x7f\x26\x7e\x5f\x91\x1f\x4b\x80\x34\x48\xc5\xad\xe6\x68\xbc\x44\xff\xfc\x40\x7c\xf5\xbd\x21\xff\xba\x02\x0c\x22\xc5\xe1\x2f\x46\xc9\xe0\xef\xdf\x18\xf5\xdf\x8a\xe1\xa2\x45\xf0\xbf\x88\x47\xf0\x9b\xa1\xff\x93\xc7\x86\x86\x63\x16\xb8\xff\x85\x15\xeb\x7f\x69\xc5\xf9\x87\x07\xf2\xf0\x50\xb6\x42\xfd\x4f\xbb\xf5\x31\x2d\x50\xe0\x56\x3c\x1d\xf6\x9f\xfe\xe3\xb0\xff\x46\xaf\xfb\x70\x34\x3b\xc4\xd9\xbc\x12\xf8\xff\x7b\x65\x72\x0f\xdf\x0e\xa1\xd6\x2b\xf8\x76\xe4\x25\x9d\x55\xfb\x2f\x56\xe4\x98\x0d\xef\x09\xfb\x38\x65\x1f\x67\xec\xe3\x9c\x7d\x5c\xb0\x8f\xd7\xd0\xcc\x1b\x3d\xe8\xe1\x69\x12\x11\xd4\xac\x83\x4b\xe8\xf1\x15\x06\x58\xa0\xdf\xe7\x9d\x31\x66\xe1\x0d\xb9\x02\x0c\x85\xeb\xf2\xcf\x64\xff\xc5\xcf\x35\x43\x22\xc2\x9b\xfc\x8e\x6a\x08\xd5\x99\x7a\x43\xff\x4e\x0d\x79\xc0\x04\xcb\x14\x62\x80\x28\xa1\x7d\x34\xd8\xbb\x9b\x04\x33\x5f\xcd\x1c\x97\x8b\x96\x14\x86\xa4\x98\x4b\x65\x35\xb9\xec\xa6\xd2\x07\xb8\xe8\x28\x59\x31\xfc\x59\x1b\x21\x02\x38\x9e\x5a\xe8\x8a\x35\x75\x83\x3b\xca\x84\x09\xf3\x66\xee\x4f\x96\x1f\xb1\x5f\xf4\x5d\x31\x76\x2b\x92\x72\xd4\x7e\x02\xc7\x09\xc6\x38\xf1\x95\xd8\xc0\xa4\xd0\x82\xbd\x7a\x45\xde\x98\x43\x2f\xf8\x42\xad\xce\xde\x5b\xaa\x06\xf3\xb1\x8f\xdd\x9d\x23\x54\x7e\x34\x59\x08\x43\x29\xfb\xc1\x82\x23\x0c\x57\x01\x18\x82\x27\xbb\x48\x99\x05\x45\xfc\xef\xa0\x62\xb0\x86\xeb\xa7\x53\x31\x58\xe3\x15\x70\x20\x52\xab\x5a\x23\x34\x32\x58\x1c\x8e\x93\xf5\x8e\xf3\xb0\x38\x9c\x24\xeb\x9d\x44\x5d\x4d\xaf\x7b\x9e\xac\x7b\x9e\x83\x01\xe2\x34\x59\xed\x34\x07\x03\xc4\x59\xb2\xda\x59\xd4\xd3\xd4\xaa\x17\xc9\xaa\x17\xff\x00\x79\x04\x56\xc3\x37\x64\xed\xa4\x96\x1c\x9c\x0e\xd6\x24\x1c\x1c\x9f\xc3\xd4\xba\xd6\x7c\x18\xce\x77\xf1\x0e\x12\x44\xd7\x4e\x18\xcb\x20\xcb\xb0\x66\xd2\x64\x91\x65\xdc\x27\x2b\xde\xcb\x8a\x19\x04\x97\x87\xc9\xba\x87\xb2\x6e\x7a\xd2\xd0\x51\xb2\xea\x91\x0c\x9e\xca\xb8\xec\xab\x64\xdd\x57\x19\xd9\x58\xd6\xfc\x36\x6b\xca\x97\x31\xc4\x26\x9e\x08\x61\x4d\xa3\x30\x66\xc6\xc5\x6b\xb3\x05\x0c\x0c\xb8\xeb\xe4\x0a\x99\x5b\x01\xa9\x6c\xad\x54\xbb\x78\x33\x8f\x24\xdc\xc8\xc1\xb8\x91\x9f\x72\x63\x0d\xce\x0d\x1b\xe9\x46\x56\x04\xd5\xd5\xff\x49\xde\xd1\x95\x57\x27\x22\xe0\xe7\x2a\x33\xa4\x2b\x3f\xca\x5c\x0e\xaa\xd8\xcb\x64\x6f\x2e\x69\x6f\x30\xee\x06\x00\x96\xa8\x7c\x5c\xce\x8d\x57\xc7\x95\x9a\xdc\x49\x2f\xcb\xe8\xad\x94\xe1\x4e\x47\x4a\xd2\xcb\x74\x67\x47\xfe\x6c\xb9\x64\xa6\xfc\xf4\x5d\x32\x56\x7e\x76\x10\x0b\x46\xfe\xec\xba\x64\x19\x53\x94\x97\x4c\xd8\x3b\xcd\x4c\x98\x39\x15\xe4\x8e\x16\xf7\x4e\x9f\x9c\x02\xe0\xf0\xb9\xd5\xbd\x13\x62\x01\x5b\xc2\x0c\x80\xc9\xdd\x1f\x9c\x8a\x4c\x99\xca\xa9\x05\xa2\xe6\x3e\x2d\x99\xe6\x56\x24\xd3\x9c\xd0\xfb\x4a\x26\xd3\x1c\xd3\xa3\x4a\x32\xcd\x6d\x14\x19\x6c\xc3\x82\x8b\x27\xd3\xdc\xb1\xd1\xba\xa8\xde\x89\x64\x9a\x0b\x08\xbb\xbf\x75\xef\xae\x2f\x6a\xde\x2d\xfd\x97\x48\xa6\x81\x83\x51\x32\x0d\xfc\xc2\x64\x1a\x67\xb9\xb3\x23\xc0\xf3\xe0\x9b\x95\x1f\x24\x32\x8c\xb1\xc2\x54\x47\xe7\x4e\x1c\x6b\x0e\xce\x69\x2c\x47\xde\xa8\x54\x57\x4f\x33\x93\x74\xa8\x6a\xdb\xdc\x63\x32\x24\xea\xb4\x4d\xc1\xcf\xcf\xa6\xc2\x6b\xef\x34\xcb\xe2\xaf\xa7\xf0\x2c\x6b\x54\x02\xf7\x5e\x6f\x6e\xf6\x67\xb9\x00\x8a\xf6\xd1\xdc\x0b\x5a\xa0\xab\x5f\x7a\x6f\x34\x6b\xff\x95\x84\xe5\x63\xd6\x7e\x08\x99\x8b\x63\x87\x98\xaf\xa8\x43\x82\x33\xeb\x1f\xae\xe8\xfe\xa4\x88\xf1\xcf\xd3\x88\x18\xe6\x32\xdd\xf8\xbf\x50\x30\x9a\x33\x8a\x2e\xf3\x17\xe5\x43\xc1\xf3\x8b\x32\x0a\x03\xda\xb8\x3f\x05\x14\xd2\x4b\xfa\x96\x4c\xf3\x55\xa2\x13\x7e\x96\xaf\xa4\x96\xea\x34\xdf\xd9\xb9\xd2\xcc\xfb\x4b\x05\x8a\x38\xdd\xf1\x71\xc6\x73\x70\xc8\x84\xbd\x5f\x6f\xbd\xb3\x6a\x9b\xa7\xd5\xbc\x05\xfc\xbe\x8c\x64\x9f\x25\x5f\x14\xda\x2e\xe9\xb1\xfc\xa8\xb6\x9a\x1f\x85\xc7\x94\x43\x99\x8b\x54\xea\x25\x33\xf3\xa3\x7a\xd2\x77\xb3\x7a\x9d\x71\xe3\xbd\xc8\xe3\xd3\x4b\x66\x14\x9d\xc9\x8c\xa2\x73\x97\x47\x23\xc7\x17\x2a\x2d\x64\x15\x8b\x3c\x3c\x0c\x84\x01\x3f\xc5\x52\xbe\xbd\x44\xae\x27\xb9\xb4\xc5\xef\x58\x9b\x65\x62\x94\x53\x48\x8c\xd4\x65\x32\xca\x61\xd2\xdb\x34\x4e\xc6\xa4\x3f\xc9\xe8\x4d\x62\x2f\x7a\xc4\x3d\xf1\xce\xcb\xd3\x76\x6c\x81\xa3\x85\xf0\x6c\x06\xeb\xf0\xbb\x7c\x98\xee\x51\x6b\xd8\x23\x00\xe6\x34\x5f\xcf\x7e\x39\xc6\xe1\xf2\xde\xc2\x1a\x61\xbd\xa4\xdd\x9d\x55\x72\xc9\xfb\xd4\xad\x04\x17\xb2\xa6\x3f\x9e\x41\xc8\xe7\x34\x1c\x8d\xc1\xf1\x6e\x80\x0a\xe2\xcf\xff\x7d\x38\x9f\xc2\x15\x71\xe1\xad\x6c\xd1\xeb\x6b\x5d\x03\xf2\x8a\xa1\x12\xdd\xab\x92\x51\x0c\x95\x08\xde\x0c\x22\x8b\x91\x33\x54\xdd\xce\xcf\x78\xcf\x76\x95\xee\xba\x59\x24\x16\x5a\x1b\x65\x6b\x1b\x29\x0e\xb0\x88\xd8\x77\x6b\xc0\x83\x5c\x6c\xc3\x6c\x1c\x5a\xf1\x02\x3c\x3c\x28\xc9\x73\x5e\x94\x3c\x87\xfd\xb1\x9d\x94\x9d\x3c\x28\x55\xca\x2b\x14\xf1\x9c\x16\x87\x65\x1f\x32\x4c\x76\x2a\xeb\xf1\x4f\xf7\x40\x7e\xab\x88\x85\x8c\x96\x6c\x7e\x82\x63\x9f\x9d\xb3\xe7\xe5\x52\x89\x80\xa8\x03\x85\x40\x9f\x71\x8a\xe7\x30\x35\xf4\xe5\x79\x91\x73\x79\x86\x35\x6d\xa4\x86\x70\xc3\x4b\x28\x92\x2b\x51\xfa\x74\x7c\xde\xd3\x91\xe8\xa9\x2f\x7b\xea\xdb\x7b\xfa\xc5\x39\x7f\xfe\xe3\xcf\xb1\x8e\x9e\x25\x3b\xaa\xee\x23\x78\x59\xdf\x45\x29\xd7\xe9\x80\x60\x87\x32\x0f\x4b\x34\x8d\xc6\x4b\xae\x9f\xdf\x7b\xd5\xbc\xd4\x7a\x1a\xed\x9c\xd9\x3b\xec\x24\x68\xcc\xa1\xfd\xcf\x85\xf8\xfd\xc6\xce\x6e\xf0\x70\x36\x5a\xaf\x3b\x2e\x2a\x0b\x4e\x57\x19\xd5\x65\x34\xaa\x23\x31\xaa\x7f\xc3\x5e\xf4\xf8\x51\xfd\x92\x3a\xaa\x5f\x32\x25\x12\x67\x7e\x70\x56\x29\x76\x99\x3b\xcc\xe5\x84\x15\x1b\x0e\x6c\x17\x53\x98\x37\xca\xe6\xbd\x95\xd9\xbc\x0b\x2d\x9b\xf7\x36\x96\xcd\xbb\x78\x64\x36\xef\x72\xfd\x6c\xde\xdb\xec\x6c\xde\xf5\xb3\x19\xc1\x72\xad\xa4\x33\xc6\xd9\x99\x75\xb1\x3f\xee\x79\xd0\x0c\xf3\xfc\x24\x3c\xf5\x05\x9e\x8b\xcc\xf4\xea\x6e\xf4\x54\xd7\x58\x5a\xae\x01\x3b\xa1\x9c\x45\x19\x23\x62\x4d\x35\xfd\xee\xa3\x00\xc7\xa7\x88\x06\x7f\xce\xa4\xd7\xbf\x61\x54\xd8\x35\x51\xfc\xed\xf0\x01\x2a\x32\x71\xd8\x25\x41\x94\x8f\x8a\xc5\x5c\x73\xb2\xec\xa1\x74\x23\x93\x57\xde\x28\xf2\x28\x1b\x95\xdf\xbb\x60\xd6\xdd\x02\xe9\x25\x3d\x97\x9c\x17\xd7\xf3\xc9\x19\x53\x99\x9a\x4d\xce\x8f\xb4\x0d\x39\xe7\x9d\xe8\x98\xba\xe6\x60\x86\x81\xed\x4c\x60\xca\x53\xef\x59\xf3\xd4\x5f\x70\x67\xf7\xbf\x5f\xac\x48\x9f\x39\x59\x43\xf6\x31\xb0\x79\xbb\xad\xaa\xbc\xc4\x97\x2b\x93\x09\xb8\x50\xa7\xf0\x6f\x06\xff\x38\xc0\x5c\x3c\xa5\xfd\x8e\x5d\x69\xa1\x3b\x74\x73\x66\xaa\x93\x25\xab\x7d\x0f\x8e\xda\xaa\xec\x12\xdd\xb2\x79\x7f\x46\x80\x7c\x20\x28\xe1\xd8\xed\x16\x98\x7c\xf0\xbe\xde\x82\x9c\x0d\xa7\x5c\x82\xdc\x0e\x5e\x64\x7e\xc0\x11\x28\x2a\x9c\x3f\x2e\x51\x94\xf3\xcc\x15\x16\x40\xbd\xc1\xbf\x2f\x01\x99\x83\xa7\xcc\x67\x64\xc5\xb7\x54\x3e\x1c\x91\x14\x9f\x2b\x9f\xde\x37\xd5\x44\x55\xe1\x90\xbc\xb2\x40\xe3\x2d\xc8\xbd\x4b\x8e\xbf\x4f\x52\xfd\xc9\xdf\x9b\x54\xaf\xb8\xd4\x17\x74\x57\x10\xd9\x9e\xcd\x28\x67\xbc\x4d\xbf\x2e\x0e\xe9\x03\xc1\xec\xf1\x25\x7e\xf3\x59\x1e\xf9\xec\xb3\xd7\xe1\xdf\xbe\x78\x5d\x25\x8d\x3c\xf8\xee\xbc\x38\x56\xcf\x44\xba\x0f\xd6\xea\x4c\x05\xff\xc9\x31\xdc\xd1\xda\xa0\x7d\xa2\xa6\xd5\x17\x67\x85\x2e\xcb\x4e\x78\xb7\xa2\xfd\x41\xd5\xcf\xf0\x28\xd6\xf6\x1b\x42\xcd\x2f\x69\x35\xad\xae\xc3\x3c\x59\xf2\x56\x27\x5e\x3a\x26\x80\xd5\x7d\x97\xe5\x8f\xb0\xba\xe1\xb2\xb2\xf2\x83\xef\x98\x95\x1f\x6c\x96\x95\x1f\xfc\x03\x59\xf9\x86\x6b\xaa\x3d\xfe\xfc\xf8\x2e\x67\xf6\xf8\x53\x37\x98\x6e\xb1\x55\x60\x8b\x7e\x63\x56\xed\x16\xd9\x1a\xcf\x67\x9c\x7c\x92\xf6\x77\x36\xda\x02\xa3\xc1\x96\xb8\xa9\x82\xd2\xc9\x2f\xff\x4f\x77\x32\xdd\x41\x68\x82\xa4\xb0\x3b\x08\xf1\x14\xe9\x65\x39\x08\x79\x01\x5a\x30\xdb\x41\x28\xca\x90\x5e\xaa\x83\xb0\x27\x1c\x84\xd8\xf2\x61\x18\x74\x86\xa9\x8b\x88\x39\x88\x20\x12\x08\xea\x71\x81\x20\xcb\x6d\x18\x0f\x67\x69\x60\x38\x4b\xd2\x6d\x48\x55\x38\xa6\xf6\x0e\x40\xa6\x90\x5f\xbb\xf2\xeb\x93\x60\x22\x8c\xeb\x93\x3e\x08\xa9\x79\xdc\x84\xbd\xe8\x61\x27\xb1\x10\x40\xce\xe8\x79\xdd\x22\x73\xc0\x16\x85\x6b\x97\xee\xa0\x45\xf4\x06\x17\xa5\x03\xf7\x26\xd3\xf5\x77\xe3\x92\xbe\x64\x7d\x56\x73\x7a\x1a\x64\x20\x73\x75\x7c\x4c\x28\xea\xd5\xdc\x28\x33\xa6\xa5\x97\x1d\xca\xb2\x6d\x5a\x76\x0c\xb9\x42\x55\xec\xe7\xc4\xbb\xb1\x3b\x92\xc4\x88\x68\xc9\x23\x53\x6f\xb2\x89\x17\x29\x6a\xab\x3a\xd5\xfc\x45\x13\xd5\x5b\xb4\x9a\x6c\x92\xa7\xc1\x11\xed\x26\xb6\x14\x7d\x9b\xf5\x37\x89\x68\xc7\xb9\x5e\x67\x89\x68\xec\x59\xae\xf8\x7d\x69\x7b\x19\x09\x69\x55\xc6\x03\xeb\x5c\xcd\x0b\xb3\xdc\xda\x77\x98\xd1\x06\x6a\x2e\xcd\x45\x42\x67\x28\x8a\xb0\xfb\x9e\xeb\xf7\xcd\x62\x51\x53\xa3\xfe\x95\x79\xcc\xd0\xe6\x8b\xe5\x6d\xaf\x21\xc8\xcf\xeb\xf4\x29\x0b\x41\xb2\xa9\x28\x90\x1e\x7d\x91\x04\x1a\x38\x06\x39\x4a\xed\xcd\x66\x89\x1a\xf2\x41\xa0\xea\x5c\xc3\x69\xee\xd1\x99\xc1\x5a\x7a\xd7\x76\xb4\x7c\x2d\x17\xd4\x3b\x28\x11\x24\xcf\x96\xe0\x6c\x9b\xd5\x47\xd7\x6b\xb1\x2c\x01\x3f\x7c\xd2\x22\xed\x5a\x8a\xcd\x1d\xba\x89\xe4\xe6\x2b\x80\x18\x8c\x3f\x6b\x91\x7b\x4f\xe6\x89\xa7\x3d\x4f\xcf\xc7\x67\x8f\x49\xd3\xae\xdd\xac\xfc\x7c\xf6\xdc\x2c\x75\x26\x05\xb2\xef\xda\x72\x5b\x34\xd3\xb8\xd6\x80\xe7\xf5\xd5\x71\x3c\x90\x71\xf4\xe8\xa7\x65\x3c\x23\x7f\x32\xc0\xf7\xc4\xc5\x3d\x3d\xb3\x4f\xaf\x3b\x08\x86\xbc\x9e\x7e\xb8\xbe\x60\x87\x57\x0a\xfb\xa7\x1e\x1b\xbe\x1f\x8f\x0d\xdf\x57\x62\xc3\x7f\x2a\x95\xa8\xba\xfd\xe3\x3e\x55\xaf\xa9\x8e\xdb\x37\x04\x6f\x9b\x03\xbf\x8d\x36\xff\x05\x95\x3f\xad\x01\xdd\xa3\xe4\x36\x72\xcd\xa8\x1f\x6a\x0a\x02\xfa\xf7\xd5\x66\x9e\x3c\xa2\x34\x3d\x68\xd2\x84\xd1\x9b\x27\x50\xd3\x0a\xb0\x9e\x1e\x6c\x69\x05\x58\x4f\x0f\xb6\xb4\xa2\x87\xa7\xc7\xcb\x5a\x35\xc3\xf4\x78\x59\xab\x66\x58\x1f\x06\x83\x14\x8d\x67\x7d\x54\x74\x63\x64\x6e\xee\x10\x39\x63\x70\xee\x7f\x79\x54\x5a\xaa\x64\x18\x8f\x38\x6c\x20\xa8\xd7\xe6\xb4\xa5\x52\xfc\x00\xaf\x6a\x1e\x01\x6f\x1c\xd9\x08\x62\x02\xde\x8d\xb2\x81\x4e\x18\xd8\xd5\x76\x4f\x84\xed\x1f\xc6\xfd\xd0\x18\x69\xcf\x16\x4d\xbe\x13\x07\xb4\x67\x5e\x3d\x9f\x9f\x5b\xab\x6d\xf5\x3b\x9b\x73\x02\x4b\x20\x4c\xf2\x8d\xcd\x1c\xcf\xb5\xff\xa2\xb4\x41\xab\xd1\x2e\x59\xdf\x20\xed\xce\x47\xb0\xc6\x1b\x2a\x7f\x91\xba\x2b\xc9\xc8\x37\xe8\xa0\x2d\x15\xb2\x0c\xfa\xaf\x88\xed\x72\x1a\x66\xbf\xfe\x02\xdd\x0f\x8a\x15\x9e\x01\xeb\xaa\x36\xf2\x92\xea\xf4\xbe\x35\x10\x15\x25\x63\x8e\xc4\x83\x8a\x68\xb3\x7f\x96\x8d\xc4\x2f\xa1\xb3\x19\xfa\x18\xf2\xa4\x10\x0f\xee\xfd\x0a\xb4\x83\xe4\x50\x73\x04\x44\xb3\x01\xad\xfc\xf2\x7a\x48\x2d\xd3\x97\x43\x1b\xd0\xed\xbc\x46\x02\x14\x9d\xf2\xf4\x7b\x99\xe8\x77\xde\x6e\x33\xae\x9b\xb5\x3b\xbe\xd4\x3a\x1e\xd2\x8e\x2f\x93\x1d\xa7\xaf\xb6\x7c\xcd\xa6\x8e\xf2\xce\xd5\x99\x8c\x29\xbd\x75\x2c\x95\xac\xde\x98\xf2\x01\xc0\x4c\xb9\x92\x5b\x6c\x80\xdc\x09\x04\x33\xa5\x6a\xfb\x37\x01\xa9\x55\x6d\xef\xee\xba\x89\x0a\xed\x1a\x69\x43\x85\xdf\x9a\x74\xca\x18\x1a\x14\xe7\x69\x83\x6d\x29\x3e\xb4\x56\xca\x9b\x8f\x4c\x63\x11\xe3\x3c\xe2\x06\x30\x24\xa1\x6a\xe0\x5d\xd7\x9d\x1b\x46\x3d\x89\xc1\x6d\x28\xe8\xd2\x01\xa1\x7a\x19\xbd\xcd\x1a\x01\xcb\xc5\x8a\x69\x30\x59\xda\xe0\x4c\x88\xfc\x56\xe4\xf4\x19\x20\xa7\xdf\xa6\x60\x50\xcf\x52\x90\xd3\x61\xd9\x33\x84\x76\x6e\xdf\x3c\x3c\x6c\xdf\x64\xa1\x8f\xcf\x20\xb0\x71\x96\x0f\x7d\xfc\xce\x13\xcf\xfc\x46\x8a\xf5\x35\x72\xa3\x88\xf8\x4d\x5a\x42\xfa\x4c\x00\x71\x5d\x0b\x7f\x5c\x78\xb3\x6c\xad\x75\x4c\x97\x7a\xa9\xb9\xde\xd4\xc0\xff\xb1\x78\x8c\xe6\xca\xda\x23\xf7\xde\x52\xd3\x5f\x0f\x69\xab\x6a\xbc\xe3\x7d\x46\x0c\xa1\x68\x8e\x87\xee\x65\x14\x47\x3b\x54\xbe\xa2\xf8\x96\x1d\x52\xe1\xb4\x00\x4e\xe9\x0d\xe0\xb4\x71\x68\x5f\x79\xfa\xbb\x1b\xeb\x2f\x4c\x1d\x9f\x47\x23\xcc\x65\x8c\xdc\x2d\x30\xcd\xf2\xf8\x10\xc2\x51\xef\x8f\x62\x0d\xa9\x77\x72\xec\x1d\x25\x72\xed\x54\x75\x45\x3c\xb5\x3b\x2a\xad\x1f\x27\x9e\x99\x6d\x21\x8b\x35\xc1\x57\x25\xba\x9e\x8d\x0e\x8a\xbf\x54\x7e\x31\xac\x53\x46\xee\xaf\xd1\x01\x27\xef\xe2\xcb\x1b\x39\x8e\x56\xc6\xf9\xae\x33\x3a\xe0\xd0\x9e\x15\xc0\xba\x93\xeb\xe4\xf0\xc0\xa0\x8b\x00\x93\xd9\xaa\x52\x8a\x65\xbd\x73\xf0\xb4\xb4\xf9\x2f\xd7\xc6\x3b\xba\x10\xde\x27\x17\x53\xf6\x98\xe3\x61\xb5\x23\x9d\x03\x74\x6a\x86\xce\x02\x59\x76\xbb\x67\xc7\x3c\x02\x7d\xe3\x9a\x2d\x4b\xc6\x85\x1c\xae\xad\x43\x57\xe4\xe4\xc5\x45\xfc\x7a\x39\xef\x22\x2c\xfb\x55\x0c\x02\x63\x2e\xa6\x27\x1f\xe8\x38\x22\xc6\x2d\x9b\xb3\x31\x1d\xd4\x4b\x0a\x7b\x11\xe0\x78\xf9\x05\xd7\x4b\x21\x3c\x8b\x0b\xac\x65\xee\xc9\x7d\x61\x40\x1c\xa7\xf7\xdf\x03\x17\x6c\x5f\x63\x0c\x9b\x14\xb8\x86\x1a\xe3\x10\x1b\x80\x3a\x3b\x84\x7f\x9c\x35\x0c\x5a\x89\xd4\xcc\xc8\xb2\xf8\x24\x48\xcc\xa9\x4a\xa7\x91\xb3\x24\x5b\xe9\xb4\xea\xaa\x8b\x4f\xd2\x91\xba\xbe\x6e\x96\x5d\x37\xd5\x75\x77\x59\x9f\xb2\x97\x79\xed\x74\xc8\x3a\xd8\xb2\x53\xab\x5a\xd3\x21\x23\x5b\x78\x6a\x7d\x2b\xed\x51\xba\x4f\xcc\xea\x70\xfc\xff\x07\xa1\xd8\xcf\xa7\xb0\xcd\xea\xcd\xbe\xdf\x82\xb5\x26\x8f\xba\x16\x46\x9e\x4e\x99\xb6\x33\x13\xa9\x37\x37\x60\x17\xd7\x95\xb8\xd0\xe5\xd6\xef\x76\xd1\x67\x56\x7a\x9f\x8f\xc6\xdc\xeb\x14\x7d\xb4\xd2\xfb\xe2\x9e\x6f\x33\xe5\xb2\x5b\x40\x5b\xb8\x51\x05\x96\x1b\x5d\x60\xb9\xf3\xc2\x6a\x68\x45\x52\x53\x22\x78\x90\xc2\x89\x39\x9f\xbc\x14\x20\x64\x25\xa8\x18\x2a\x35\x49\xa2\x11\x09\xbc\xb6\xf0\xc2\x9c\x31\x73\xd5\x50\xe1\x87\xc7\x07\x00\x2c\xbf\x93\x16\xad\x39\xa4\x5f\x10\x5c\xd3\x19\xf0\x08\x8c\x69\x5a\xbe\xcc\x0a\x2c\xdc\x3d\xb0\x61\xf7\x91\x27\x58\xbb\xe3\x08\xc8\x19\x12\x8f\xfa\xb4\xfa\x41\xa9\xd2\xac\x62\x4f\xc6\xf4\xea\xde\xb7\x65\xa5\x45\x96\xa5\x4a\x83\xce\x23\x67\xc1\xee\x62\x29\x09\x3d\x0c\x12\x1f\x9b\x2b\x75\xb6\x27\x32\xc9\x01\x00\x8e\x41\x52\xdb\x40\xde\x53\x5b\xa3\xd2\xdd\x7d\x1c\xde\xea\x95\xa7\x09\x62\xe4\x88\x5e\x46\x15\x00\x5f\xa5\x8b\x69\xd0\x30\x17\x83\x32\x4a\xea\xe9\x26\xcb\x0c\x91\xce\x8f\xb6\x56\x3f\xca\x67\xb8\xe1\xb2\xda\x44\xca\x6a\x73\xf9\x6c\x8c\x0f\x90\x3f\x84\xbd\xe5\xae\xf2\xbd\x04\x51\xa4\x98\x9b\xec\x60\xa8\x39\x93\x5f\x42\x3b\xac\x1c\x77\x83\x74\xd1\xea\xac\xcc\x4c\xe9\xb5\x88\x24\x40\x7b\xd2\x43\x08\xc2\x1f\x4a\x95\x37\x20\x88\xac\x05\xc5\x15\x24\xa0\xb8\x96\x56\x28\xae\xc0\x02\xc5\x35\x89\x0b\x1e\x73\x88\x6f\x4b\x24\x4d\x8c\xcd\x20\x5c\x81\x00\xe1\xc2\xfb\x3d\x89\xb8\xb3\xfd\xba\xdd\x01\xd4\x74\x7a\x91\x03\xa8\x64\x1a\xdb\x96\xa3\x3e\x17\x2c\x57\xce\x2c\xb7\x1b\xaf\x83\x31\xef\xe3\x11\x4e\x9d\x91\x4b\x4e\xff\xd1\xde\x21\x3c\xc4\x59\x6c\x42\x44\xaf\x89\x09\x00\x49\x7d\xd7\x4d\x13\x90\x2e\x66\x67\x36\x04\xaa\x5c\x10\x62\x70\x81\x2d\xfe\xa9\xa1\x67\x9b\x61\xbc\x4f\x05\x59\xf1\x34\x31\xdf\xd3\x00\x77\xad\x38\x49\x02\x52\xa4\xe4\x92\x29\x3e\x94\x04\x2a\x6a\x5d\x02\xa1\x03\xf6\x1a\x43\x46\xd5\x79\x42\x88\x4e\x25\x62\x86\x45\xc5\x5f\xa9\x08\xa8\x39\x7a\x59\xd6\x7b\x19\x81\x9c\x7e\x97\x4e\x1a\xc0\x8e\xf3\xf7\x50\x03\xc9\x7d\xea\xee\x91\xb3\x84\x27\xf1\x2c\x2f\xe0\x99\x79\xb1\xcc\x0f\x82\x66\xae\x4f\xaf\x1f\xcf\x30\x9a\xa1\xdd\x4e\x08\x57\x5b\x76\x8c\x7a\xe5\xc5\x3f\x89\xa6\x77\x83\x11\x45\xa5\x87\x52\xe3\xeb\xa9\x75\xf6\xc8\x18\xd2\x1c\xf0\x80\x65\xfe\x96\xe9\xbd\x37\xbd\x0d\x19\xd7\xa6\x72\xcb\x77\xba\x34\x47\x97\x69\xfd\xf8\x95\x0f\x1e\xc3\x1a\x67\xbf\xde\x33\xce\x6c\xcd\x1b\x89\x56\x41\x22\x34\x53\xa6\xd8\x43\xcc\x32\x00\xc2\xf2\x5f\x1d\xaf\xfc\xdc\xa7\x3a\xe7\x75\x0d\xd3\x99\x9b\x60\xa9\x7c\xd9\xac\xee\xee\x36\x99\x79\xb3\xe1\x95\xc0\x84\x59\x6d\xfc\x76\x27\xcc\x97\x8d\xdd\x5d\xb7\xb5\x4b\x85\xa6\x3b\xc8\xdb\x90\x30\xc3\x68\x96\x69\xb9\xbc\x52\xd5\x7f\xd9\xc0\x92\xe0\xca\xa7\x67\x81\x9a\xde\x6b\x55\x11\x90\xdb\x5e\xc4\xeb\xac\xe2\xbd\xe8\x42\x0a\x44\xa9\x2a\x75\xc4\x15\x08\xd5\x6a\x7c\xb7\x32\x8f\x2c\xa8\x61\x99\x88\x61\x6d\xef\xd7\x9f\x4b\x74\x28\x80\x0c\xbc\x6b\x8b\xa0\x0e\x32\xf0\xc2\x7a\x56\x17\x71\xdf\xea\x22\x0e\x3d\xd6\xff\x02\x10\x7f\xdf\xfb\x93\x11\x30\x7f\x17\xf8\x85\x0b\x54\x93\x2f\x30\x0f\x74\x41\x44\x69\x1b\xe2\xd4\x27\x88\x79\x35\xd5\xc3\xb1\xe5\x32\x43\xa5\x12\x6d\xe9\xd6\x7e\xc7\x40\xb4\x6c\xfc\xe0\x69\x20\x5c\x6e\xf5\x66\x4f\xe2\x66\x38\xfb\x7b\xfb\xee\x9e\x02\xae\xe3\x5c\xd3\x23\x84\xfe\xd5\x44\x7c\x8c\x29\xea\x79\x4a\xa5\x1c\x43\xd8\xf0\x54\x09\x1b\xbe\xb1\xbc\x72\x47\x09\xbb\xd2\x54\xc3\x54\x87\x7d\x37\x5c\xe2\x8a\x4c\xa8\x76\x8b\x70\x56\xd3\x1c\xab\x87\xb9\x49\x65\x71\xd9\xa0\xd9\x98\x81\x6b\x1a\x47\xe5\xb6\x36\xda\x50\x45\x25\xe3\x5c\x12\xa5\x05\x69\x87\x03\xec\x43\x0d\xb7\x32\x02\x4b\xba\x70\x65\xe5\xab\x39\xa1\x35\x85\xfe\x3a\xc1\x1b\x12\x9e\x30\xfa\x8b\x36\x39\x59\x11\xeb\x33\xfa\xde\x86\x25\xab\xe3\x3e\xdd\xb0\x64\xb5\x47\x65\x61\xf1\x58\x2d\x25\xa3\x54\x2a\x75\xab\x49\x08\xf5\xd8\xb5\xad\x41\xca\xc3\x5f\xdb\x12\x64\x8d\x15\x30\x46\x17\xe4\x8e\x15\x30\x9a\xdb\xd6\x8b\x15\x30\xc5\x6e\xd8\xcd\x49\x78\x8a\xf8\x59\xe6\x24\x61\x40\xf1\x73\x98\x93\xa4\x69\xc5\x4f\x35\x27\xf9\xb9\x62\x05\xe2\xb6\xcb\x06\xda\x2e\x8d\xe0\x33\x28\x4d\xad\x61\x8b\x9c\xde\x05\xb0\x48\x86\x1e\x04\xd3\xd4\xa7\x3e\xdf\x31\x2a\x0d\x61\x0d\x61\x1b\x07\xbc\x57\xcc\x4e\x22\xf7\x0f\xb7\xda\xa0\x2f\x56\xbf\xca\x6b\xd1\xef\x03\xb5\xda\x5d\xd0\xe9\x60\xec\x99\xac\x18\x0c\x81\x05\xbc\xc8\xd6\xf5\x44\xdd\x62\x13\x95\x19\xb5\x89\x69\x10\x76\x47\x73\x40\x57\xc9\xd3\x8c\xbf\x18\xd7\xc1\xa9\x11\xd5\xe7\x47\xb2\xfb\x4e\xef\xf8\xeb\x98\x49\x38\x4a\xfd\x0c\x59\xc8\xd4\xec\x2a\x47\xec\xbf\x39\x39\xc2\xba\x2a\xa6\x9b\x1a\x6f\xd6\x35\x35\xe6\x86\x09\xea\x47\xa2\xb1\xb4\x37\x9e\x28\x40\x40\x93\x9d\x1d\xf9\xb3\x8d\x29\xe5\x27\x0a\x2e\x50\x3f\x66\x8d\xec\x33\x71\x71\x91\x20\x74\x38\x41\x07\x6c\xc2\xdc\xc8\x6d\x62\x17\x36\x37\xf0\x80\x2c\x48\x08\xe0\xfd\x36\x37\xf0\x10\x0b\xd8\xdc\xc0\x0b\x4b\x38\xc6\x51\x2e\xfc\x9f\x73\x60\xf0\x4b\xe0\xff\x00\xeb\xb7\x19\xff\xa7\xbf\x1e\xfe\xcf\x9b\x08\xff\xe7\x8d\xc0\xff\x79\x03\xf8\x3f\x6f\x4c\xf8\x3f\x6f\x34\xfc\x9f\x37\x1c\xff\xa7\xbf\xb3\xd3\x97\x31\x22\xfd\x27\xc5\xff\x59\x80\x17\x7c\x91\x0d\xef\x93\xee\xdf\xbe\xf4\x16\x59\xd6\x4e\x39\x5d\xa5\xc9\xb3\x5f\x03\xf0\x9d\xcb\xcd\x4d\x9e\x6a\x93\xaa\x81\xf3\xad\x77\x19\x47\xf4\xb9\x8a\xbb\x1e\xb9\x9e\xaa\xa2\x61\x5c\xe5\x87\xe8\xc9\x28\xba\xcc\x5f\x94\xdf\x0a\xb7\x99\x66\x14\xd6\x30\x74\x32\xca\xc2\x74\x9f\x8c\xc2\x69\xbe\xd2\x2a\x5a\x35\x1d\x40\x39\x7c\x26\x33\xe3\x45\xdc\xcc\xf8\x9a\x2e\x72\x6c\xb2\xbf\xf3\xc6\x07\x17\xc5\xfb\xca\x45\xb5\xcb\xed\xb8\xef\xd4\xd6\x2c\x90\x3c\x7d\x99\xfc\x4e\x42\x06\xc9\xd3\x55\x21\x79\xf0\x98\x72\x28\x73\x9d\x48\xbd\x64\x46\x2e\xff\x45\xf1\x1d\x83\xcb\x2e\x86\x11\x34\x0f\x9d\x40\x63\x76\x83\xef\xbd\x6b\xe4\xf0\x7d\x25\x56\xe1\x87\x87\xc2\x47\xf6\x8d\xea\x65\xfe\xac\xfe\x86\x9e\x8c\x8e\x88\xf5\xa0\xc2\x37\xe2\x6d\xfa\xe2\xb0\x99\xe7\xf2\xbd\x9d\x9f\xa0\xd2\xac\x68\x16\xb6\x4f\x6c\x15\xf7\x60\xb5\x51\x76\x40\x6d\x13\x8f\x18\x1b\xc5\x33\xb2\x55\xb6\x77\x62\x6f\x4f\xf8\x57\xa5\xe5\xe8\x50\xd4\x36\xdf\x6d\x0d\x6d\xf3\x33\x4a\x8f\x95\x0d\x57\x0c\xc7\xd6\xff\xc4\x87\xe3\x2b\xdf\x68\x13\x83\x22\xf7\x6a\xdb\xe0\xc8\x02\xab\x5a\xf5\xde\x3b\xe4\x4b\xda\xf3\x1f\x9f\xed\x53\x45\xfc\xbd\x97\x02\x62\x03\x79\x02\xb4\x82\x08\xd3\xa7\x3b\x28\xeb\x12\x28\x4a\x01\x9f\xa0\xf7\xc2\x3b\x70\x5d\xf8\xd7\x4f\x3f\xfd\x44\x1f\xbd\xfa\x51\x8b\xcf\x25\xfd\xb5\xe2\x13\xf8\x3d\x9f\xc0\x81\x9c\xc0\xa8\xef\x0f\xea\x0b\x27\x88\xa6\x6d\x34\x83\xa3\x59\x9d\x51\x6e\xed\xa9\x1e\xeb\x5e\x26\xfe\x94\x32\xc9\x2f\x33\x5e\x8d\x30\xf2\xd7\x44\xb5\x00\xd2\xe5\xed\x86\x48\x5e\x17\x02\xc9\x6b\x8e\xb8\x5b\xec\x71\x5c\x48\xbf\xcf\x6b\xa0\xd8\x04\xad\xc0\xe1\xc4\x77\x8c\x3c\x0b\x24\x7c\xbc\x3e\x18\x1b\x6f\x3b\x47\x62\x57\xa7\x42\x86\xd8\xa0\x9a\x71\x54\x10\x6d\x75\x63\x8f\x0a\x80\xbb\x7c\xc3\x35\xab\x8c\xa9\x4a\xbf\x27\x6d\x91\x96\x8b\x16\xec\x2b\xbf\xeb\xa2\x87\x08\x29\xa2\xe2\x94\xd3\xe6\x60\x28\x4d\x01\x74\xd3\x96\x40\x37\xed\x34\x48\x9e\x0b\x84\xe4\xe9\x6b\x48\x37\xaf\x61\x7f\x7a\xbb\x31\x24\xcf\x6b\xf6\xac\xec\x0d\x98\xe5\xa7\x92\x84\x4a\xa3\x2f\x24\x5b\xff\x3e\x54\x3f\x78\x42\x19\xf0\x3c\xfa\xc2\x72\xe9\x1a\x5c\xa2\x1d\x79\x7f\x9d\x34\x20\x9f\xd7\x00\xe4\xd3\x87\xc4\x38\x36\x3e\x2d\x31\x3e\x1f\xd4\x3b\xbe\x80\x3b\x16\x6b\x0d\x5e\x89\x2f\x0d\x74\x85\xd1\x57\x05\xf5\xe4\x81\x73\xec\x75\xb4\x5c\x7a\xa2\xfd\x54\x42\x61\xfe\xa7\xe0\xba\x6e\xe5\x78\x67\x47\x2b\x70\x1c\x1f\xa5\x65\xee\x51\xea\xb8\x2b\x5f\xb7\xe8\x48\xc3\x1a\x9d\xae\x38\x62\x9a\x99\xb7\x2f\xdd\xeb\x65\x70\x2b\xe7\xf4\x79\x0b\xdb\x8b\x5a\x4c\xcd\xb0\x2f\xaf\x14\xc5\x32\x06\xcb\xd2\xdc\xf6\x62\x2e\x80\x0d\xe4\xda\x65\x2a\xb8\x4c\xf7\xb1\xd8\x35\xe9\xcd\x07\x7a\xf3\x6c\x63\x8f\xdb\xf5\xb4\x11\xa1\x2f\x22\x6c\x11\x56\xc7\x6f\x34\x72\x25\x88\x41\x20\xda\x58\x12\x31\xb1\xea\xec\x13\xc6\x0b\xbf\x28\x3b\x55\x4a\x87\xa1\xc7\xbd\x74\x8a\x7d\xa5\xdb\x4d\x30\x6a\xc4\xc8\x00\xb8\x78\xdd\x22\x5d\x12\x90\x01\x18\xde\xe9\x9a\x63\x98\x2a\x5a\x4a\x9f\x1e\x58\xa1\xcf\x9e\x44\x44\x47\x9b\x74\x98\xf9\x41\x59\x23\x5f\x05\x53\x98\xff\x6d\xe1\x42\xe1\x59\x75\x9f\x31\xc0\x08\x80\x18\x1c\x5c\x3c\x63\x58\xf7\x1d\xda\xc9\xed\x12\xeb\x70\xcf\x13\x95\xaf\xbb\xd8\x67\x13\xaa\x50\x4f\x03\x1b\x92\x00\x67\xf0\xc8\x5a\x5e\x8f\xbe\xfd\x86\x93\x01\x3d\x19\x78\x0d\xa9\x8a\x38\xd8\x1b\xa7\x47\xa8\x8a\x23\x98\x74\xa3\x55\x23\x5a\x17\x7a\x91\xf7\xb6\xd2\xc0\x50\x5e\xa8\x52\x1d\x30\x4a\x69\x94\x64\xda\xe8\x53\xc3\x5e\x57\xfa\xdc\x82\x33\xa2\xe3\xd3\xd6\x3c\x2d\x84\xef\x05\x2c\xd8\x4a\x36\x0b\x68\x16\x40\xdf\x36\xf1\x6f\xfd\xc9\x14\xe6\xc5\x80\xbf\xa9\x2f\xf7\xd9\xca\x39\xa4\xbd\x16\x3a\x93\x88\xa7\x6e\xb2\x10\xec\x2f\xae\x08\xc1\x1b\x58\x42\x6e\x86\x51\x8c\xf7\x50\x70\x5a\xcb\x23\xf5\x3d\xb5\x4f\xe0\x9e\xa6\x0a\x9a\xf5\xac\xb4\x9e\x0f\x5f\x7a\xcd\x9d\x9d\xd6\x6e\xf3\xa5\x37\x3c\x00\x83\x96\x33\xf6\x1a\x54\xeb\x44\xd3\x16\x27\x86\xd8\xf6\x00\x3b\x6d\x70\x3d\xae\x45\x4f\x1b\xc8\xc4\xd1\x5f\x72\xe3\xb5\x75\xd8\x12\xf6\x2c\x5a\xf0\x2c\xc8\xc4\xf8\x18\x4c\x9e\xf5\x68\x49\xde\x2b\xd3\x45\x19\x23\x50\x0d\xe5\x3a\x31\x88\x14\x77\x55\xed\x49\x78\x01\x09\x01\xc4\x44\x85\x60\x57\x11\x16\xc4\x20\xef\x0a\xa9\x01\x3d\x6a\x91\xdc\x70\xb2\x37\xae\x43\x18\xee\xdb\x51\xcb\x4f\xa0\xb5\x4c\xb8\xb2\xfa\x8d\xcd\x8b\x1b\xe1\x80\x1d\xac\x5c\x40\xdd\xe1\xae\x89\xb3\x79\xd0\xf2\x01\xfb\x90\x4a\x80\xe9\xef\x7c\xdc\xb0\x6f\x78\xe3\x71\x8d\x1d\x3d\x06\xa2\x4b\xd8\x0a\x3c\x4f\x81\xdb\x8a\x72\x4c\xfa\x4f\x06\xe0\x65\xee\x08\x3e\x6c\x86\xf4\xa7\x2f\x9e\xa7\x9e\xfc\xaa\xae\xea\x2b\x30\x45\x25\xbd\x74\x5b\xe8\xa6\xc3\x87\x65\x75\xd6\x99\x6c\x62\x3a\xd4\x12\x07\x5f\xea\x24\x8e\x74\x0d\x70\x4c\x81\xe1\x58\x4f\x5f\x1b\xf1\x51\xf3\x58\xdd\xbe\x09\x89\x29\x8c\x23\x31\xbd\x88\x23\x31\xfd\x5c\x5a\xd1\xb5\x9c\xb1\xd4\xb3\x8f\x91\xcd\x8f\x38\x86\x6d\xe9\x06\xfe\x69\x78\x4b\xe5\x4c\xbc\x25\xfc\x58\x6e\x06\xbb\x84\x78\x4b\xe4\xd0\xbb\x8e\xf4\x58\xa9\x7c\x46\xba\x62\x8d\xbc\xf2\xbe\xad\xc8\x11\x82\x33\x25\xb7\xc5\x76\x3a\x30\xd3\xbf\x41\x30\xe3\x25\x66\x71\x18\x06\xd2\xcf\x87\xb7\xd4\xde\x18\x6f\x29\xbe\x98\x44\x78\x4b\x8c\xaa\xa8\x1a\xf0\xf9\x89\xe3\x03\x10\x62\x3c\x28\xca\xe4\x92\x5c\xc2\xcc\x8e\xee\xfc\xec\xe9\x21\x99\xb8\x3a\x2c\xaf\x01\x86\xe9\xf3\x35\x20\x9a\xc4\x1b\x79\x2a\xbe\xd3\x37\xfa\x49\x01\x9c\xfc\x4d\xa0\xea\x78\x7a\xf7\xde\xc2\xe3\x79\x4b\x9c\xac\x5c\xe4\x7d\xef\x2d\x79\xd6\x8d\x3c\xd1\x97\xd8\x6e\x71\xcc\x37\x0d\xeb\x2d\xad\x37\x46\x28\x41\x10\xc6\x23\x24\x41\x16\x38\x21\xbc\x96\x4b\xf0\x5a\xb2\xf7\x00\xc3\xe1\x39\x20\x55\x97\x5b\x94\x41\xd9\x46\xa4\x29\x86\x4e\xd5\x96\xe8\x54\x1d\xe1\x8a\x65\x03\x76\x59\x5f\xfa\x13\xaf\xa7\xc0\x53\xf5\xe3\x57\xf9\xbe\xfe\x50\xab\xa3\x31\xdd\x1f\x6a\xf5\x34\x66\xe3\x46\xa5\x42\x4e\xa5\xe2\x46\xa5\x22\x4e\xa5\x42\xbe\x58\x11\xa7\xbe\x23\x6e\x94\x95\xbe\x05\x7a\x7b\xc4\xe7\xc8\xda\x6e\x63\x3e\xb9\x2e\xeb\x0d\xdf\x5e\xdb\xca\xa6\x92\x85\x3c\xd5\xff\x8e\xc8\x53\xfd\xcd\x90\xa7\xfa\xff\x00\xf2\x94\xe1\x9a\x8d\x6c\x77\xb4\x29\x09\xc4\xee\x8e\xc6\x53\x40\xcc\x9d\xee\x8e\xe6\x05\x68\xc1\x6c\x77\xb4\x28\x43\xc2\x54\x77\x74\x98\x97\x50\xc5\x4c\xe8\x43\x84\xab\xf0\x08\x97\xd4\xc8\xab\x06\x08\xb5\xca\xaf\x8e\xfa\xeb\xa9\x12\xe5\x25\x58\xd2\xc8\x95\xf9\x67\x23\x37\x3f\xf6\x93\x19\x40\x2e\x45\xe8\x60\x54\x2f\x17\x06\x49\x6f\x2d\x78\xa9\xed\xed\xba\xbe\xf0\x3b\xdb\x75\x14\x77\x25\x8d\x0c\x1e\xf0\x45\x24\x4c\xbc\xe8\x93\xe4\xa2\xcc\x87\x8d\xf9\x64\x9a\xcb\x31\x1c\xe1\x06\x8c\xa4\x63\x38\x8e\x20\xd0\x50\xb2\x99\x47\x6c\xe7\x5e\x94\xe8\x43\x03\x46\xbb\x16\x7e\x6b\x2d\xa2\xe4\xe7\xb1\x8c\x26\x04\xf1\x53\x0d\xdc\x8e\xc0\x5f\xc8\x35\xab\xbd\x80\x40\xef\x05\x52\x85\xc7\xca\x86\x5a\xd9\x25\xf2\x89\xb7\x92\x85\x38\x9a\x35\x96\x39\xd8\x2f\x55\x4a\x64\x1e\x01\xa6\x28\x62\x8c\x1f\xc5\x92\x1c\x18\x36\x39\x5d\xe9\xf4\x95\x35\x89\xf7\xa2\x81\x40\xe2\xb2\x53\x4d\xf8\xc9\x2f\xde\xc2\x53\xd8\x04\x4b\x8b\xbe\x21\x93\x84\x63\x7c\x6a\x73\x7d\xfb\x64\x42\x80\x97\xc7\x6a\xe7\x6f\xb3\x02\x73\xee\x2a\xa0\x17\x9f\x92\x99\xfb\x7c\x3f\xe1\x64\x9f\x30\x19\xf5\x56\x87\x57\xd2\x3c\xb1\x7c\x5e\x08\x0f\x6c\x03\x14\x86\xdb\x4d\xfc\xaf\xbc\x21\x95\x5e\xa5\xe3\x52\xb5\xe3\x4e\xbd\xb4\x76\x45\xaa\x22\xa4\x7b\x03\xa6\xcf\xf7\xd1\xb7\x30\x83\x4f\xe4\xf7\x30\x07\x4f\x83\x14\xdf\xe3\x3a\x3c\x8b\x8d\x86\x7b\xa9\xd4\x09\x7a\x79\x2a\x0d\x8c\x8a\x16\x51\xd0\xc0\x2a\xd6\x41\x0d\x53\x4c\x95\x6b\x9c\x21\x8c\x9a\xbe\x41\x55\xab\x05\x1b\x8a\xc1\xde\x90\xbe\x3b\x54\x90\x4c\x8d\xc1\xa7\x9a\xd0\x30\x9b\x11\xba\xeb\x50\xa9\xb4\xd9\x0d\xc2\x16\xd5\x12\x0e\x68\xd7\xb8\x81\xc1\xdd\x1b\xd6\x07\xbe\x21\x48\xba\xf0\xaf\xd3\xd3\xd3\x82\x35\x58\xbc\x49\xd7\xad\x1b\x8b\xf1\x39\x60\x5d\xfb\x74\xe7\x53\xd9\x15\xfa\x07\x6f\x1f\x5c\x02\xdf\xe0\xd1\x63\x83\xf9\x13\x6e\xf2\xbd\x5f\xc0\xbc\x11\x97\xef\xe5\x33\x60\x4b\x7f\xbc\x61\x75\xc0\xdc\xc7\xc7\xee\x27\x3a\x55\x4e\xf4\x09\x22\xfa\x59\x97\xf4\xcb\xc5\x4c\xae\x08\x74\x18\x37\xc9\xaa\x35\xe9\xc4\x19\x69\xa6\x09\x31\xf1\x8d\x06\x89\xcc\xd8\x61\x9f\xe9\xe5\x6d\xf6\xd1\xd1\x83\x84\x7f\x8a\x07\x09\xa7\x44\x17\x43\xf0\x71\x4f\xd7\xee\xa3\x37\xc2\x1a\x9b\x6b\xa1\xcc\x65\x83\xb2\x3e\x8b\xae\x01\x0f\x2b\x7a\xc9\xf6\xd9\xdd\xbc\xbf\xa8\x69\x20\x59\xd3\x9b\xc9\x4c\x70\x23\xf3\xc4\x3d\xfa\x72\xcc\xc4\xbc\x9e\x8e\xe8\x69\x18\x1c\xae\xc6\x3b\xc9\xb5\x1a\x18\x2f\x86\x51\xfa\x4f\x13\x6a\x41\xde\xfb\xe1\xb0\x13\x1a\xd9\xa8\xa5\x8b\xb5\x44\xe4\x12\x2a\x7b\x47\xfa\xf4\x5d\x5d\xb8\xec\x95\x19\xb6\x1e\xd3\x08\x6e\x65\xac\xa5\x60\x48\xa5\x49\xc6\xa1\x98\xd1\x58\x48\x6b\x2e\xb1\xce\x08\x98\x25\xf3\xd7\x81\xab\x61\x45\xc5\x78\xa4\x1a\x25\x7a\xa6\x28\xe9\xde\x77\xd7\x32\xad\x28\x5b\xe9\x5a\xa6\x35\x58\xd7\xce\x0a\x69\x0d\xd4\xcd\x12\x76\xad\x78\x65\xe9\x42\xbf\x09\x76\x4c\x13\xfa\x55\x99\x1f\xcf\x90\x56\x4c\xe6\x8f\x8b\xfc\xfc\x3c\x2d\x17\x13\xf9\x93\x12\xbf\x28\x42\x5a\xba\xc4\xaf\x0b\xfc\xad\x27\x8e\x3f\xcd\x89\x55\xc5\x17\xc5\xdc\xc1\x88\xad\xc8\x28\x21\x65\xce\x81\xc2\x59\xd8\x8a\xc9\x9f\x2d\x26\x4f\x76\x33\xd3\x9a\xbb\x4c\x04\x0a\x6c\xc2\x56\x9b\x74\x41\x84\xee\x59\x85\xad\x0e\x16\x48\xe3\x1d\xec\x1f\x74\x25\xef\x60\xd7\xb2\x29\xf7\xd3\xe2\x0e\xb7\x5b\x0f\x0f\xdb\xad\x2c\x70\x9a\x2e\x84\xe5\x75\xf3\x81\xd3\x84\x5e\xd7\x1e\x7c\xa7\x3e\x1b\x21\xf7\xb5\x60\x01\x0e\x1f\x21\xf7\x99\x82\xee\x86\xb4\x45\x35\xe8\x6e\x90\x11\xf7\xc6\x9b\xe2\xe1\x69\xe1\x46\xc9\xc2\x82\xfc\x2c\x90\x01\x1c\x3d\x36\x24\x23\x6f\xa8\x07\x70\x68\x57\xe3\x11\x1c\x2d\x64\x1b\x57\x1e\xe1\x48\xb2\x91\x71\x5f\x5e\x62\xdf\x3f\xb2\x79\x23\xbc\xc4\xdb\xa0\xb3\x42\x44\xfe\x01\xdf\xca\xd4\xb0\xcf\x05\x85\x7d\xcc\x32\xe2\x22\x02\x87\xf9\xb0\x4a\x02\x8e\x82\xd3\x64\x48\x34\xc2\xbd\x94\x4e\x78\x6c\xa6\x8f\x86\xfd\x50\x97\x1b\x78\xcf\x3e\x76\x47\x77\x30\xe6\xec\xd7\x39\x55\x7d\x19\x5e\x56\x2e\x8f\xc1\xc0\xb8\x05\x85\x11\xf4\x14\xb7\xe7\x9f\x08\xbb\x50\x59\x8f\x9f\xb0\x9a\xec\xd5\x04\xd9\xcd\xf8\x50\x84\x3b\xdc\x43\x1f\x6f\x1d\x5f\x00\x94\xc3\xb9\xa7\x97\x1f\x01\x52\x11\xbe\x6a\xf2\xfc\x44\xba\x91\x98\x99\x44\xd6\x26\xaa\x81\x8d\x42\xb3\x2e\xa7\xb4\x00\xaf\xb5\xa5\x89\xc8\xc7\x89\x3b\x8c\x96\xe7\xc9\x26\x8e\x9e\x0a\x0a\x1e\x4a\xdd\x94\x1d\x82\x29\x5b\xd8\x06\x9a\x4f\x21\x0b\xa4\x1b\x46\xad\xa8\x94\x79\x8c\xb1\xd6\x6d\x7a\xad\xbd\x8d\xe1\xc2\xd0\x11\x67\x16\xa4\xae\x9b\x43\x40\x30\xe3\xc3\x10\xb1\x57\xf5\xff\xfb\xf2\x55\x1e\x01\x46\x0e\xe1\x0e\xf4\x80\x57\x28\xef\xfd\xb2\x57\x2e\xac\xe8\x9e\xf4\x7f\x03\x00\x00\xff\xff\xdc\x02\x04\xb3\x7b\xeb\x02\x00") + +func uiJsLibsNvd3171NvD3MinJsBytes() ([]byte, error) { + return bindataRead( + _uiJsLibsNvd3171NvD3MinJs, + "ui/js/libs/nvd3/1.7.1/nv.d3.min.js", + ) +} + +func uiJsLibsNvd3171NvD3MinJs() (*asset, error) { + bytes, err := uiJsLibsNvd3171NvD3MinJsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/js/libs/nvd3/1.7.1/nv.d3.min.js", size: 191355, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsAppTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x92\xcf\x6e\xe2\x30\x10\xc6\xef\x79\x8a\x91\x4f\x41\x62\xe3\x7b\x58\x56\x0b\x12\x42\x7b\xd8\xaa\x6a\xa5\x5e\x91\x89\xa7\x89\x2b\x6c\x47\x63\xa7\x14\x55\x7d\xf7\x1a\x43\xda\xa4\x29\x28\xcd\xc1\xff\xf2\xfb\x3c\x9e\x6f\x86\x73\x70\xb6\xa1\x02\x73\x10\x75\x9d\x79\x97\xf0\x70\xf4\x9b\xf0\x11\x09\x4d\x81\x50\x0b\x5f\xcd\x99\x3f\xd4\xca\x94\x8e\x6b\xe5\x2b\x52\xbb\xa7\x8f\x55\x26\x83\x86\x01\xff\x93\x7c\x2f\xac\x45\x89\x8e\x97\x24\xea\xaa\x05\xaf\x70\xda\x1a\xe5\x2d\x8d\x20\x8d\x95\xe8\x46\x70\x84\xce\x6f\xf0\xa5\xde\x59\xc2\x31\xf7\xba\x10\xfe\xf3\xe2\x40\xc2\xa2\xf1\x95\xa5\x1c\x16\x46\x12\xee\x61\x69\xcd\x33\x1a\x4f\x08\xa9\x30\xf2\xb0\xb5\xc6\xfd\x2d\xb5\x08\x4e\x14\x56\x4f\xba\x82\x25\x09\x0d\x6b\x6a\x0c\x2a\x82\x74\x1b\x76\xe5\x69\xd3\xe5\x13\x9d\x91\x6d\x3c\x66\x3a\x24\x04\x73\x60\x95\x70\x15\x9b\xb5\xc7\xa9\xb4\x45\xa3\x43\xbc\xac\x44\xbf\xda\xe1\x71\xb9\x3c\xfc\x93\x29\x23\x6b\x3d\x9b\x4c\x81\xc5\x14\x7f\xb5\x29\xb2\x29\xbc\x26\x10\x3e\x76\x32\x9d\x85\x87\x4b\xad\xcc\x83\xc2\xbd\xcb\xd6\xb1\x0e\xb7\x21\xd3\xe9\x19\x3a\x3b\xde\xc7\xfe\x9f\xcb\xd0\x05\x8f\x86\xf7\xa9\x9b\x58\x82\x38\x7e\x05\xdd\x68\x92\xe7\xc7\x71\xa3\xe4\x25\xc5\xe0\xea\x1f\x29\xfa\xde\xf4\x04\x77\xe1\xd7\xaa\x6d\x8c\xae\x26\xb6\x40\x9f\xbd\x3f\x75\x45\x9c\x06\xa8\xbb\xcc\xba\x01\xcc\xf3\x38\x0d\x9e\x7f\x3d\xc2\x58\x55\xf2\x36\x99\x25\xef\x01\x00\x00\xff\xff\x27\x3f\x35\x45\xd3\x03\x00\x00") + +func uiTsAppTsBytes() ([]byte, error) { + return bindataRead( + _uiTsAppTs, + "ui/ts/app.ts", + ) +} + +func uiTsAppTs() (*asset, error) { + bytes, err := uiTsAppTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/app.ts", size: 979, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsComponentsMetricsTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xa4\x58\x6b\x8f\xdb\xb8\x15\xfd\xee\x5f\xc1\x1a\x08\x56\x0e\x66\xe9\x09\x06\xed\x07\xa5\x93\xb6\x48\xb6\x8b\x00\x3b\xbb\x68\x53\xa4\x2d\x8a\xa2\xa0\x25\xda\x66\x86\x12\x55\x92\xf2\xa3\x03\xff\xf7\x9e\x4b\x4a\xf2\x43\xb2\x3c\x45\x89\x20\x63\x49\x97\xe7\x92\xf7\x79\xc8\xf9\x9c\x39\x53\xdb\x4c\xa6\x2c\x33\x45\x65\x4a\x59\x7a\x37\x2f\xa4\xb7\x2a\x73\xdc\xbb\xc9\x1c\x12\xbf\xb5\x72\x29\xad\x2c\x33\xc9\x2a\xe1\xd7\x8f\x53\xce\xe7\x7e\x5f\xa9\x72\x05\x51\xe5\xd7\x56\xe9\x6f\xdd\x2f\x9e\x63\xda\x94\xcd\x3f\xdc\x9c\x9a\x3f\xe0\xdf\x6d\xf1\xc2\xe4\x52\xbb\xb9\x57\x85\x74\xd2\x2a\xe9\xda\x09\x93\xc9\xfc\xed\x5b\x36\x61\x6f\xd9\xc7\x6e\xe9\x2c\x97\x4b\x55\x4a\xc7\xac\xac\x9d\x58\x68\x79\xb2\x2d\xb6\x5d\xab\x6c\xcd\x0a\xb1\x67\x0b\xc9\x6a\x27\x73\x66\x4a\x56\xd4\xda\xab\x4a\x93\xc2\x95\x74\x77\x04\x67\xec\xf1\x6d\x50\x4b\x72\x7e\x2d\x99\x13\x45\x94\xe3\x10\x9b\x4f\xb0\xb2\x1a\x22\x27\xda\x5f\x26\x0c\x03\xcb\x0a\x7f\x01\x55\x6e\x58\xb6\x16\x16\x9f\x1a\xe1\xdc\x00\xae\x34\x9e\x65\xb5\xc5\x46\xbd\xde\xb3\xb5\xd8\x48\x26\x18\xcc\x22\x5d\x66\x55\xe5\xe3\x26\x94\x57\xa6\xe4\x0d\xd0\x3c\xfc\xcd\x65\xa6\x85\x95\x6c\x23\x2c\x90\x53\x51\xee\xdf\x4f\x2e\x35\x3e\x45\xdf\x61\xdf\xa5\x17\xaa\x74\xa7\x06\x08\x7b\xf6\x86\xe5\xca\x55\x1a\x66\x68\xfc\xcc\x72\xe1\xc5\xb9\x26\xb9\xab\x8c\xf5\xed\xa2\x5b\xcc\xb8\xbd\x33\x85\x51\xe9\x4f\xb0\xf9\x8f\x56\x54\xeb\x16\xda\x61\x43\x1a\x2f\xd9\x2a\xbc\x35\xcb\x60\x3f\xd2\x03\xcf\xf8\xda\x96\x58\xc8\xd2\x9a\x82\xf6\x0d\x0b\x9f\x62\x45\x27\xb3\x7f\xd7\xd2\xee\xf9\xc9\x87\x79\xf7\xfb\x7c\x71\x47\xdd\xc7\xe5\xf5\x96\x18\xa1\xbf\x2a\xb9\x7d\xa2\x70\x62\xca\x85\x05\x85\xd8\x62\x4b\x38\x5c\x30\x57\xc9\x4c\x2d\x55\x76\x02\xf8\x3d\x53\x25\x13\x79\x1e\x5c\x01\xc3\x5d\xe2\x11\xc4\x42\x64\xcf\x08\x67\xf6\x27\x5a\x2f\x33\x8b\x6f\x32\xf3\x77\x4c\x79\x26\xb4\x33\x08\x36\xd5\xb8\xc1\x40\xd8\xb2\x4a\xda\xef\x3b\x87\x5c\xc2\xb5\x6e\x31\x15\xe9\x73\xfc\xe2\xfb\xfc\xec\x19\xb8\xd2\x2e\x05\x32\xe5\xb8\xab\x73\x03\xd0\x08\x56\x4c\xc3\x57\xc7\x1b\x37\xf2\xb0\xd4\x27\x51\x22\x90\xed\xfb\xde\x14\x2d\x9c\xff\xa1\x32\xd9\x3a\x2d\xeb\x62\x31\x24\xf1\x2c\xf7\xbf\x1b\xfc\x78\x98\xdc\xf2\xc0\x47\x44\xa5\x35\x5a\xc3\x14\x5d\x80\x06\x2b\xd6\xfa\x99\xa2\x64\x59\x97\x19\x6d\x5e\x68\xe5\xf7\xac\x94\x32\x8f\x11\x8b\x54\xc9\x31\x47\x5c\xe2\x75\xbe\x1a\x37\x16\xd2\xc6\xb9\x53\xe5\x7d\x4b\xa1\xfa\x94\x9b\xfc\x21\xa6\x2b\xef\x7d\x0e\xaf\xd9\x23\x64\x78\x2c\x48\x9c\xc2\xfb\x23\xbd\x4d\x66\x3d\x69\x1a\x7c\x97\x24\xf9\x8c\x3d\x7e\xc0\x36\xb6\xec\x93\xf0\x32\x41\xad\xa3\x72\xe2\x45\x51\xfd\xab\x14\xa5\x71\xf3\x77\xfc\x5e\xfe\x66\x76\x05\x60\xdf\x02\xe4\x7c\x23\x74\x2d\x87\xc5\xe6\x73\x1e\x62\x41\xc0\x70\x1b\x99\x78\x7b\x4d\x90\x23\xfd\x3f\x1f\x25\x7f\xac\x15\xf6\x81\x4d\xc4\x29\x6c\x78\x8e\x5b\x9b\xed\x4f\x72\x05\xf3\x8f\x21\x93\xd4\xdf\xff\xb0\x53\xee\x96\xd0\xdf\x6e\x09\xed\xbe\x64\x42\xc3\x52\x0f\xc1\x54\xdc\x85\xa7\xd9\xec\xfd\xa4\x27\x0e\x33\x7a\x64\x6b\x66\xb4\xb1\x0e\x9e\xc1\x94\x20\xcd\x33\x98\x7a\x65\xec\xfe\xdd\x7d\x32\x34\x0f\x71\xe7\xb0\x80\xcc\x1b\x9b\x54\xf5\x42\x03\x63\x53\xa4\x5d\x12\xcd\x06\x62\x83\x06\xe2\xe3\x8b\xf4\x6c\x47\x1b\x40\xcd\xca\x9e\x1d\xc5\x65\x65\x0d\x52\x1a\x45\x1c\x35\xa4\x10\x03\x71\x43\xc3\xaf\x95\xe3\x31\xae\xc2\xf4\x41\xa1\xb0\x7b\xc2\xfd\x63\x40\xea\x2c\x10\x81\x93\xef\xde\x7c\x4e\xdf\x3c\xa5\x6f\xbe\x7c\x77\x25\x5a\x3a\x13\x3f\x89\xdd\x93\x2a\x93\x25\xea\x8f\x9c\xf5\x93\xf7\xd0\xb7\x48\x2f\x4f\x69\xa0\x10\xaf\x4d\xad\xf3\x3f\x87\xcc\xfb\x74\xac\xdc\xd8\x37\xdc\xc7\x54\x28\xe9\x68\x46\x30\x07\x05\x78\xa8\xed\x5d\xa6\x0e\x18\xe2\x22\x25\x69\x5c\x6a\x48\x66\xe9\xc2\x18\x2d\x45\x79\xc5\x09\xd4\xf8\x24\xd5\x26\xf8\x3b\x58\x75\x53\xf0\xd8\x28\xc2\xdb\x2b\x99\x88\xa5\x26\x71\xd6\x87\x6e\x56\x57\xe5\xae\xf9\x9b\x46\x4f\x18\x6a\x03\xd0\xd5\x19\xd1\x44\xc1\x42\x7d\xd3\xd3\x38\x0c\xbe\x6d\xa6\x05\x9f\xbd\xd6\x65\x03\x09\xfb\x16\x5c\xc2\x0d\xba\x2a\xb6\xe1\xe0\x23\xf8\x4b\x6c\x84\xd2\x81\x1d\xfd\x8f\x0e\x6b\xe0\x6f\xfa\xa9\x35\xc3\x90\x8b\xe0\x84\xfb\xff\x67\x8b\xb9\x15\xdb\xd8\x9e\x57\x92\x08\x9f\xb2\xe8\xb8\x4c\x64\x99\x74\x21\x25\x03\x51\xdb\xac\x98\xd4\xb2\x40\x93\x6d\xb9\x47\xb0\xc0\x10\x9e\x58\xa2\x24\x52\xc3\x26\xc3\xe4\x4d\xbf\xf9\xf4\xcb\x13\x67\x7f\x0d\x2c\x91\xfd\xfc\xf5\xd3\x43\x60\x4d\x50\x7c\xa4\x31\xc4\x5e\x86\xe0\x48\xe0\x92\xbb\x8c\x58\xf4\xb8\x9b\x47\x04\x69\x5c\x72\xfa\x43\xfc\x0b\x1a\xe1\x3e\x13\x0f\x44\x37\xfc\x8f\xcc\x5b\x9b\xdf\x85\xd6\x29\x77\x9e\x08\x60\xe8\x0f\xc3\x4e\xa0\xb0\xff\xd5\x19\xc2\x58\xac\xa3\xb1\x61\xf7\x61\x29\xc9\xb1\x60\x0d\x14\x10\x1a\x07\xd6\xf7\x57\xab\x32\x4c\xee\x67\xf6\x98\x6e\x4a\xeb\x58\xe7\xbc\xcc\x43\xfc\x3e\xb2\x7f\xfc\xf3\xaa\x38\x4a\xf1\x5f\x60\x65\x2b\x1d\x58\x3a\x02\x2a\x16\x61\xf0\x85\xad\xd2\x9a\xb8\xbd\x2c\x2a\x3c\x61\x31\x08\x50\x69\xad\xb1\x63\x50\x26\x03\x15\x97\x39\x67\x28\xbc\x60\xe6\xdb\x3b\xb6\x95\x11\xe9\x5b\xed\x7c\x47\xca\xc8\xaf\xd3\x9f\x0d\x35\x72\x31\x1d\xc3\x43\x83\x77\x60\x56\xac\x2e\xbd\xd2\x84\x05\xd6\xae\xf2\x78\xd8\x20\x90\xb8\x5a\xb6\x25\xcc\x8e\x8a\x8f\x01\x86\x1d\xb4\xb0\x97\xac\xf0\x64\x74\xc6\xef\x32\xae\xb5\xd0\x98\xed\x69\x5c\xda\x7e\x18\xa5\xf9\xe1\x78\x21\xaa\x96\x99\x8c\xe3\xd2\x68\x4a\xc1\x6d\x41\x1a\x81\xe6\xb8\x14\x84\x87\x72\xac\x32\x20\x36\x74\x24\x7b\xc5\x00\x27\xa5\x69\x25\x4e\x68\xaf\x9b\x10\x78\x43\x7a\xc2\x09\x79\x64\x12\x49\x04\x99\xbd\x0e\x05\xa7\x31\x91\x52\x91\x7d\x9d\xf8\x12\x61\xf5\x4b\x25\x32\x90\xdb\x94\xbf\xbb\x3d\xe7\x30\x9c\x7e\xdd\xe7\x2b\xe9\x19\xbe\x5d\xfd\x42\x44\x09\x95\x26\xf3\x6d\xbd\xb9\x4e\x28\x68\x90\x2b\xea\x22\x39\x8b\x91\x11\x0a\xe2\xad\x28\x5d\x38\x30\x21\x62\xf2\xda\x8a\xf0\xf3\xd7\xf7\xf7\x37\xb4\x80\xba\xe9\x57\x14\x9e\x81\xce\x71\xfe\x74\xf6\xd8\x9c\x14\xdb\x53\x45\x28\x9c\xd1\xdb\x49\x60\xf1\xe3\xb4\xaf\x09\x5d\x62\x37\x1f\x2f\x26\xce\x46\x0f\x3e\x97\x6a\x37\xd0\x92\x64\xde\xea\xf4\x88\x33\xa4\x90\x32\x98\xc4\x78\xd7\x67\xaf\x65\x6e\xb3\xb4\x22\x99\x86\x73\x48\x68\x6e\xd3\xbb\x61\x0e\xdf\x8e\x17\xe7\xf7\x5a\xa6\xd3\xad\xca\xfd\x3a\x85\x47\xaa\xdd\xfb\xb5\x54\xab\xb5\x4f\x1f\xc2\xc3\xf4\x30\x1e\x91\xd0\x86\xc6\xca\x5b\x65\x2f\xb0\xe6\x52\xad\x52\x16\x96\xdc\x35\xb2\xc3\xb8\xa3\x87\x28\x29\x7a\x35\xfa\xec\xad\x9d\x42\xe5\x54\x1b\x91\xe3\xb4\xcd\x39\x9f\x0e\x72\xdb\xf3\xa7\x5b\xa7\xd1\x0c\xd9\xeb\xc1\x8f\x70\x20\x10\xa8\xd6\xf8\x4d\xf7\x16\x0e\x0a\x74\xfb\x16\xe7\xeb\x86\x40\x1c\xaf\x05\xae\x1e\xe0\xe3\x05\x53\x77\x05\xd2\xf1\x84\xc8\x49\xea\xaa\xd2\x0a\x7d\xe0\xec\x18\xde\xdc\x18\x5c\x1e\x5f\x2f\x91\x7f\x5f\x09\x2b\x0a\xaa\x72\xa1\xf5\xd1\xdf\xf8\x46\x35\xb7\x3a\x8b\x3d\x6b\x2e\xe0\x02\x07\xc2\x19\xef\xb9\x81\x76\x74\x89\xa1\x95\xeb\x2e\xc0\x32\x74\xc5\x05\xb5\x4f\x61\x91\xab\x2b\xb4\xbe\xd1\xb3\x73\x2f\x87\x82\xd1\x92\x9b\x37\x0b\x77\xa7\xf7\x04\xb3\xbe\x73\xa9\xe9\x9f\x1e\xbc\xd0\x77\x5e\x8e\x77\x0f\xf7\x77\xcd\xdd\x45\xf8\xbf\x9f\xf6\x94\x2a\xc0\xbf\x96\x1f\x68\x5e\x64\xa3\x47\x5a\xc3\xad\x38\xa1\xd1\x46\x19\xef\x7c\x9b\x74\xfe\xbe\x03\xda\x6c\x32\x3c\x3f\xfe\x3a\x4c\x0e\x93\xff\x06\x00\x00\xff\xff\x8c\xe7\x71\x33\x4a\x15\x00\x00") + +func uiTsComponentsMetricsTsBytes() ([]byte, error) { + return bindataRead( + _uiTsComponentsMetricsTs, + "ui/ts/components/metrics.ts", + ) +} + +func uiTsComponentsMetricsTs() (*asset, error) { + bytes, err := uiTsComponentsMetricsTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/components/metrics.ts", size: 5450, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsHeaderTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x6c\x53\x41\x6f\x9b\x4c\x10\x3d\xc7\xbf\x62\x3e\x5f\xe2\x48\xfe\x20\x8d\xd4\x4b\xa2\x4a\x21\xb1\x9b\xa2\xa6\x58\x32\xa4\x51\x8e\xcb\x32\x86\x6d\x61\x97\xce\x2e\x21\xfc\xfb\xce\x02\x4e\x13\xb5\x3e\x79\x66\xdf\xbc\x79\x6f\x66\x08\x43\xb8\x43\x8d\x24\x1c\x16\x90\x0f\xe0\xac\x0c\x16\x9c\xb4\xa6\x23\x89\x97\x20\x8d\xfc\x49\x46\xc8\x2a\x24\x9c\x72\x61\x67\x43\x67\xc3\x20\x18\x71\x9b\x1d\x24\xbb\x0c\xb6\x9b\x38\xfb\x8f\x63\x9f\xba\x35\xed\x40\xaa\xac\x1c\x5c\x9c\x7f\xf8\x08\x59\x85\x9c\x9a\x59\x20\xea\x5c\x65\xc8\x06\x33\xf6\x5e\x49\xd4\x96\x5b\x77\xba\x40\x02\xc7\xd8\xa8\x65\x1c\x1e\x5f\xd6\xf0\x1d\xc9\x2a\xa3\xe1\x22\x38\x87\x95\x07\x2c\xe7\xa7\xe5\xd9\x95\xa7\x18\x4c\x07\x8d\x18\x40\x1b\x07\x9d\x45\xe6\x50\x16\x0e\xaa\x46\xc0\x17\x89\xad\x03\xa5\xd9\x45\xd3\xd6\x4a\x68\x89\xd0\x2b\x57\x8d\x7d\x66\x96\xd1\xc5\xd3\xcc\x61\x72\x27\x18\x2e\xb8\xa0\xe5\xe8\xf0\x16\x08\xc2\xcd\xa2\xfd\xaf\x72\xae\xbd\x0c\xc3\xbe\xef\x03\x31\x0a\x0e\x0c\x95\x61\x3d\x41\x6d\x78\x1f\xdf\x6e\x93\x74\xfb\x3f\x8b\x9e\x8b\x1e\x74\x8d\xd6\x02\xe1\xaf\x4e\xd1\x34\x6b\xd1\xb2\x28\x29\x72\x96\x5a\x8b\x1e\x0c\x81\x28\x09\xf9\xcd\x19\x2f\xba\x27\xe5\x94\x2e\xd7\xbc\x8b\x83\xeb\x05\xa1\xa7\x29\x94\x75\xa4\xf2\xce\xbd\x9b\xd9\x51\x22\x3b\x7f\x0b\xe0\xa9\x09\x0d\xcb\x28\x85\x38\x5d\xc2\x4d\x94\xc6\xe9\xda\x93\x3c\xc6\xd9\x97\xdd\x43\x06\x8f\xd1\x7e\x1f\x25\x59\xbc\x4d\x61\xb7\x87\xdb\x5d\xc2\x5b\x8c\x77\x09\x47\x9f\x21\x4a\x9e\xe0\x6b\x9c\x6c\xd6\x80\x3c\x31\xee\x83\x2f\x2d\x79\x07\x86\x3c\x85\xf2\x03\xc5\x22\x80\x14\xf1\x9d\x84\x83\x99\x24\xd9\x16\xa5\x3a\x28\xc9\xd6\x74\xd9\x89\x12\xa1\x34\xcf\x48\x9a\x1d\xf9\xfa\x16\xa9\x51\xd6\x2f\xd6\xb2\xc6\x02\x6a\xd5\x28\x27\xdc\x18\xff\xe5\xeb\x4f\x97\xe8\x81\x95\xef\xd3\x71\xbf\x9e\xc6\x77\xd3\xa2\x41\xeb\x97\x25\x8d\x9e\xac\xbf\x39\xb0\xf9\xde\x2e\xe1\x86\x44\x03\x77\xd4\x69\x54\x04\xab\x9c\xa3\xa0\x9c\xa2\xeb\xb2\x11\xaa\x0e\xf8\x46\xce\xb8\xe2\xe4\xc4\xaf\x37\xd2\x05\x61\x0f\x37\x46\x3f\x23\x93\x22\xac\x58\xe4\x90\xb3\xba\x7f\xa1\xbf\x09\xe7\x20\x23\x21\x07\x58\x35\xfc\xff\xfa\xf5\xab\xa9\x45\x6e\x8f\xd8\xc5\xe2\x59\x10\x54\x28\xd8\xdd\x06\xad\x24\xd5\x7a\xbf\xf0\x09\x4e\xb3\xd7\x9b\xf5\x1b\x44\xab\x4a\x3d\x9d\x81\x28\x8a\xd1\xf7\x54\xe5\x33\x3e\x72\xa6\x3d\x1e\x27\x73\xe7\xca\x83\x7f\x4c\x04\xc1\xe9\xd5\xe2\x77\x00\x00\x00\xff\xff\x05\xd5\x4c\x27\xd4\x03\x00\x00") + +func uiTsHeaderTsBytes() ([]byte, error) { + return bindataRead( + _uiTsHeaderTs, + "ui/ts/header.ts", + ) +} + +func uiTsHeaderTs() (*asset, error) { + bytes, err := uiTsHeaderTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/header.ts", size: 980, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsNode_statusTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xdc\x19\xe9\x6e\xdb\x36\xf8\x7f\x9e\x82\x10\x60\x40\xca\x12\x39\xd9\x80\x01\x53\x8e\xad\x6b\xd2\x0b\x39\xba\xb8\x2b\x3a\x18\x46\xc0\x58\x74\xcc\x4d\xa2\x34\x92\x72\xeb\xa5\x7e\xf7\x7d\xa4\x28\x4b\x96\x68\xc9\x0a\x36\x60\x18\x7f\xd4\x0a\xf9\xdd\x37\xd9\xe1\x10\x89\x24\xe3\x53\x12\xa0\x38\x09\x49\x24\x86\x0c\x7e\xee\x85\xc4\x32\x13\xbe\x14\x7b\x43\x80\x38\xe5\x64\x46\x38\x61\x53\x82\x52\x2c\xe7\x67\x8e\xef\x0f\xe5\x32\xa5\xec\x51\x0c\x63\x2a\xe7\x9c\x46\xbf\xaf\xbf\xfc\x10\xd0\x1c\x34\x3c\xb7\xa3\x2a\xca\xa2\x84\x40\x2f\x32\x39\x4f\x78\x80\x7e\xe6\x38\x46\xaf\x79\xc6\x08\xe5\xc8\x7d\x80\xbf\xfc\xc7\xfc\xaf\x9f\x1e\x63\x0c\x64\xa7\x49\xec\xed\xed\x81\x90\x59\x44\xd0\xb5\x96\x15\x3d\xed\x21\x58\xe4\x4b\x9a\x70\x89\xcc\xd1\x0d\x1c\x8d\xb4\xf8\xe6\x58\x2d\x1a\x6b\x90\x94\x27\x31\x15\x04\x9d\xa1\xfb\x42\xda\xeb\xfc\xf7\x7d\x7e\x72\xb2\xb7\x46\x31\x54\x29\x93\x84\xcf\x30\xc8\xff\x22\x0c\x39\x11\x55\xaa\x6a\x31\x22\x3f\x27\xfc\x8f\x00\x09\xc9\xc1\x20\x27\x1b\x87\x38\x47\x69\x1e\xae\x5a\xf8\x28\x05\x2e\x88\x98\x72\x9a\x4a\x9a\xb0\x3a\x3f\xe5\x1e\x1a\x06\x88\x65\xf1\x03\xe1\x5b\xf8\x19\x59\x6b\xa7\x52\x72\x38\xc3\x6c\xb9\xbb\x20\x0d\x4b\xaa\x15\x82\x74\x41\x5d\xce\x4d\x5e\x42\x26\x5c\xc9\x29\x0a\x41\xc7\x93\x4d\x00\x8e\xd9\x23\xb9\x9f\x26\x19\x93\x76\x5d\x20\x50\xb8\x24\xe1\x3d\xde\x72\x9e\xa5\x21\x6e\x3b\xd7\x81\x16\x98\x48\xf1\x47\x3a\xec\xae\x3f\xbe\x7c\xa9\xbf\x36\x41\x23\x82\x43\xc2\xef\x3b\x45\xe2\x24\x8d\xe8\x54\x73\xed\x84\xc5\x0b\x08\x5a\xfc\x10\x91\x76\xd0\xdd\xec\x7f\x47\x44\x9a\x30\x41\x46\x44\xd6\x5d\x11\x54\xc0\xc6\x93\x9e\x74\xaf\xa8\x90\xd7\x38\xad\xd1\x1c\xab\x18\x7b\xbb\x0e\xb1\xc9\x33\x59\x54\x62\x63\x57\x1e\x15\x94\x9e\x9a\xf4\xd3\xa2\x85\xf8\x34\xc2\x90\xe3\x0a\xb4\x1e\xf5\x29\xa7\x0b\xf0\xbd\x0e\x2c\x3a\x45\xf7\x10\x7e\xf8\x8a\x42\x1d\x81\x72\x72\x7c\xa4\xd6\x49\x27\xfc\x7b\x55\xd2\xc2\x11\xfd\x4b\xd5\xa0\x1f\xb6\xe3\x68\xe0\xc0\x56\xa5\x52\xc2\xe5\xf2\xb4\xe1\xc2\x73\xa0\x17\xfb\x50\xdf\x52\xd7\x76\xf8\xb4\xf2\x2a\xa5\x4d\x73\xca\x1e\x20\x96\x4d\x2a\xb7\xf2\xd9\xf4\x63\x9d\x51\xfd\x54\x73\xb2\x30\xca\x3b\x0a\x11\x3b\x29\xb5\x55\xa1\x2d\xca\xfc\x92\x11\xbe\x74\x3d\x2b\x6d\x55\xd6\x4f\xad\xa9\x74\x5e\x73\xb0\x5a\x0b\xcc\x51\xc6\x23\x60\xee\x0c\x4d\x17\xd4\x1d\x51\x0c\x9d\x93\x06\x30\x27\x32\xe3\x0c\xc4\xe4\xe4\xcf\x8c\x08\xe9\x3e\x29\xdc\x40\xfd\x73\x80\x62\x02\x8d\x0d\xc2\xcf\x79\x7d\xf9\xc1\x39\x80\xf0\x92\x1c\x4f\x55\x05\x48\xd8\x3b\x91\xb0\x4b\xce\x13\x2e\xd0\xca\x6b\x50\x55\xcb\x97\x73\xc2\x5c\x17\x6a\x78\x16\xa9\x2a\x66\x95\xdf\x43\x67\x36\x15\x4a\xe9\x34\x32\xf4\xe3\x59\xc2\x2f\xf1\x74\xee\xba\xb9\x42\x1d\x78\x85\x19\xf2\xfc\x01\x4b\x98\x61\x40\x85\x8a\x6f\xda\x4f\xd3\x16\xd5\x45\x67\xc8\x95\x73\x2a\x7c\x1d\xc6\xae\x67\x52\x71\x82\xce\xce\x20\x1b\xa3\xc8\xeb\xe0\xae\x96\x1d\x1f\xd5\xdb\x48\x7d\xad\x3a\xd5\x12\xeb\xcc\x00\x72\x36\x2e\xdd\xba\xb9\x25\x0d\x3f\x22\xec\x51\xce\x95\x66\x47\x1e\xfa\xfa\xb5\x53\xaf\x0a\xee\xb8\x49\xe6\x10\x1d\x4f\xfc\xb2\xb3\xa1\xd3\xc2\xf8\xe5\x9e\xf7\x5c\xeb\xf9\x69\x26\xe6\x45\x08\xb4\x2b\xb9\x26\x51\x64\xed\x86\x0f\xf2\xcd\xe7\xfa\xa1\x5e\x1f\x9a\x62\xa7\xaa\x48\xde\x46\xe1\x25\x83\xa9\x49\xf1\xee\x42\xc8\x8d\x53\xa9\x44\xad\x38\x26\x6b\x4d\x7a\xd8\xe1\xea\x42\xae\xf6\xec\x65\xda\xc6\x39\x40\x8b\x84\x86\x16\x27\x69\x61\x55\x16\xed\x58\x39\xd5\x2a\x13\xd1\x3e\x61\xaa\x05\xe9\x8d\x5c\x93\xad\x94\x6d\xf8\x7e\x5b\xac\x94\xa2\x54\x1d\x6b\x8b\x9a\xb1\x35\x94\xaa\xe1\xaa\xc8\x34\x85\x5a\xed\x64\xbf\x86\xab\xb7\x1a\xef\x5f\x32\x44\x59\x11\x7a\x55\x03\x55\x05\x4c\x66\x1a\x53\x9c\xe7\x33\x83\x5f\x8e\x05\x6d\x79\xba\x66\x69\x88\x88\x29\xf4\x48\x52\x23\x79\x58\x25\x59\x4e\x0e\x07\x75\xa8\x63\x7b\x0f\x69\xa6\x60\xab\x4f\xe0\x2e\xf6\xe1\xf6\xe2\xd6\x55\x17\x31\x4f\xcd\xcd\x0b\x82\x64\x82\x32\x49\x23\x2a\x97\xf9\x5c\xe4\xdb\xbd\x68\x66\x5d\x0d\xe8\x6e\x3a\xc9\x2b\x3e\x5a\x5c\x5a\x58\xbe\x59\x6c\x9a\xc6\x57\x86\x57\x87\x7e\x73\x66\x37\x35\xd8\x6e\x74\x93\xf4\x0e\x0c\x6a\x03\x4b\x27\x6f\xda\xca\x20\xe4\xcc\xac\xc3\x3c\x1a\xa2\x6d\x92\xec\xab\x81\xd0\xf3\x65\x32\xd2\xba\xbb\x1e\xfa\x06\x39\x75\xbe\xff\x9c\xfd\xcb\x7b\xc9\xff\xd2\xfa\xf6\x6b\xd7\x7f\xc6\xfc\x95\xf9\x9e\x48\x1a\x93\x57\x09\x8f\xe1\x93\x83\x61\xc3\xef\x7c\xb5\xa3\x06\x30\xd8\x72\x9d\xc1\x6f\x87\x83\xf8\x70\x10\xa2\xc1\x9b\x60\x70\x1d\x0c\x46\x8e\xd7\x4a\x32\xc7\xbb\x80\x2d\x97\x61\x96\xac\x2f\xd3\x5d\x7e\x2d\x44\x01\x11\x18\xf9\x8c\x4a\x02\x60\xb4\x63\xff\x88\x7c\x6f\xe9\x34\xc6\xe4\x65\xc9\xd9\x50\xc6\x2d\x36\x3a\x1a\x63\x3e\xec\x5f\x10\x09\x09\x23\x9a\xd1\x58\x9f\xcf\x3f\x52\x2e\x33\x1c\x5d\x46\x24\x26\xac\x7e\xb7\x2d\xb4\x79\x6e\x94\x76\x8d\x9b\xc5\xf8\xee\x3a\x21\x5d\xc0\x88\xee\xdc\x24\xca\x72\x18\xdc\x40\x84\x12\x67\x49\xa4\xef\x34\x8b\x6b\x4d\x67\x1b\xa9\xb1\x95\x21\x1c\x4b\x55\x45\xb6\x02\x14\x40\x5c\x41\xa8\x8f\x50\x89\x35\x52\x6f\x29\x02\xb9\x0e\x84\xb1\x0e\xf9\xf5\xe3\x4a\xd1\x03\x20\xbc\xbd\xc0\xf1\x0e\x5a\x47\xb2\x82\xde\xb8\x46\x23\xc6\xa9\x3b\xcb\xd8\x54\x0d\x22\xae\xde\x7e\x1b\xee\x32\x63\xee\xa6\xb3\x45\x0a\x3c\x9e\x73\x32\x3b\x1b\x6a\x5e\x70\xb1\x02\xf1\x0d\x5b\xa5\xc8\x04\x48\x3d\xa1\x69\xc2\x66\xf4\x31\x50\x77\xab\x24\x83\x8c\x58\x1d\x14\x30\x1d\x5a\x16\xcb\x01\x4a\x1d\x53\xee\xca\x9b\xd8\x3b\xa7\x5a\x93\x16\x3e\x4d\x17\xdd\x98\x57\x40\xf0\xc1\xda\xce\xda\xcc\xfa\xd2\x64\x9e\xe5\x7c\xf3\x56\xe8\xf5\xa3\x6d\xde\xf2\x3a\x68\x9b\xdf\x9e\xb4\x47\xf9\x23\x1b\xc2\x72\x83\xbc\x29\x02\xd5\xf2\x93\xc7\x4c\xf1\x24\xe7\xf5\xe4\xf3\x6b\x7e\x7d\xd9\x91\x4f\xf5\xb2\xd3\x8f\xcf\x9d\xea\x02\x16\x53\x55\xba\x43\x4f\x8a\x57\xba\xbd\xa0\x6d\x84\x9b\xdd\xa7\xaf\x77\x8b\xd1\x62\x2b\x0b\xeb\xf0\xf1\x4c\x2e\xba\x99\x6d\xb0\xc8\x67\x5e\xcb\x04\xd7\xdb\xc5\x0c\x0c\x71\x78\xb7\xee\xd5\x3d\x4c\x06\x33\x6c\x4b\xa3\xef\x29\xc7\x2b\xa8\xf8\x4b\x54\xca\x61\xd1\xb6\x31\x2f\x79\xdb\x2a\x81\x65\xbb\x5e\x55\x56\xb6\xc7\xc4\xe1\xfe\x7e\x09\xb4\x5f\x7b\xf3\x21\x4c\x64\xaa\xa0\xcb\x39\xdc\xf0\x89\xda\x43\x31\xa4\x2e\x06\x6b\x99\xa2\x0a\xd6\x9b\xf1\x24\x06\x08\x98\x05\x08\x5f\x10\x5e\xa5\x86\xb9\xfa\xcf\x14\x2e\x88\x0e\x1b\x2c\xd0\xbb\xd1\xed\x8d\xe9\xb1\xd5\x19\x65\x7f\xb8\xfe\x2e\xea\xfb\xa6\x24\xee\x97\x39\x0f\xd0\xa7\xeb\xab\x37\x52\xa6\x77\xf9\x1b\xd6\x01\x4a\x52\x69\x79\xa5\xfb\xf4\xe6\xee\x36\xbf\xe1\x6e\x1b\x3e\x4c\x3f\x00\x9a\xa6\x4b\xc3\x9d\xe8\xdb\xa3\x23\xf4\xa3\x96\xcf\xcf\x71\xe8\x6c\xa9\xb8\x82\xab\xf3\x67\xac\x0f\xe4\x0b\x5c\x94\x02\x54\xdf\xab\xbe\x90\xe7\xff\xae\xf6\xfe\x0e\x00\x00\xff\xff\x68\xfa\x72\xbe\xac\x1a\x00\x00") + +func uiTsModelsNode_statusTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsNode_statusTs, + "ui/ts/models/node_status.ts", + ) +} + +func uiTsModelsNode_statusTs() (*asset, error) { + bytes, err := uiTsModelsNode_statusTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/node_status.ts", size: 6828, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsStatsTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x84\x92\x3f\x4f\xc3\x30\x10\xc5\x77\x7f\x8a\x53\x27\xe8\x10\xef\xe5\x8f\x80\x0e\x4c\x9d\x90\x58\xab\xab\x73\x4d\x42\xfd\x27\x3a\x9f\x2b\x22\xd4\xef\x8e\xd3\x06\x04\xa8\x35\x37\x58\x3e\xfd\xde\xf3\xbb\x93\xac\x35\xc4\x90\xd8\xd0\x02\x5c\xa8\xc9\x46\x1d\x05\x25\x56\x12\x95\xce\xec\x96\x69\x4b\x4c\xde\x10\xf4\x28\xed\xdd\xac\xaa\xb4\x0c\x7d\xe7\x9b\xa8\x5d\x27\x2d\x77\xf6\xed\xfb\x56\xd5\xd9\x36\x03\x7d\x9f\xad\xf0\x98\xa4\x0d\xbc\x80\x27\x46\x07\xcf\x9c\x3c\x75\x0c\x57\x9b\xdc\x55\xcd\xa9\x7b\x68\x1c\x66\x93\x09\xee\x5a\x29\x3d\x9f\x2b\x98\xc3\xea\x38\x03\x98\xe0\x05\x3b\x1f\xa1\x46\xc1\x69\x30\xe8\x93\xb5\x54\xc3\x96\x83\xcb\x02\xb3\xe3\x80\xa6\xad\xb2\x4b\xab\xac\x48\x96\xbe\xdc\x1f\x0a\x72\xd1\x7b\x1f\x58\x60\x42\x2f\xe3\x56\x13\xf9\x41\x3b\x2f\xc4\x5b\xcc\xeb\xad\x5e\x97\xcb\xbf\xa2\xb1\x6c\xb7\xa7\xf5\x66\x10\x8a\x0b\xf0\xc9\x6d\x88\x6f\x7e\xf1\x1d\x0d\x25\xbc\x47\x5b\xc2\x63\xbe\x97\x92\xe2\x98\x6f\x42\xf2\x72\x39\xbf\x80\xc7\xfc\x02\x9e\xf2\xff\x57\x60\x43\xe7\x79\x63\x4e\xd3\x5f\x56\xc4\x21\x96\x16\x1c\x71\x21\xdf\x62\x94\x75\xea\xf3\x47\xa0\xb5\x47\x1f\xce\xbc\x72\x50\xa7\xf3\xa0\x3e\x03\x00\x00\xff\xff\xf7\xb6\xa5\x6d\xce\x02\x00\x00") + +func uiTsModelsStatsTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsStatsTs, + "ui/ts/models/stats.ts", + ) +} + +func uiTsModelsStatsTs() (*asset, error) { + bytes, err := uiTsModelsStatsTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/stats.ts", size: 718, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsStore_statusTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xdc\x19\x69\x6f\xdb\x36\xfb\xbb\x7f\x05\x21\xc0\x80\x94\xd7\x91\x93\xb7\xc0\x80\x29\xc7\xd6\x25\x69\xbb\x22\x47\x17\x77\x45\x07\xc3\x08\x18\x89\xb6\xb5\xe9\x1a\x49\xb9\xf1\x52\xff\xf7\x3d\x3c\x64\x5d\x94\x8f\x6c\x03\x86\x09\x85\xa5\x92\xcf\x7d\x93\x19\x0e\x11\x4b\x73\xea\x13\x0f\xc5\x69\x40\x22\x36\x64\x3c\xa5\xe4\x81\x71\xcc\x73\xe6\x72\xd6\x1b\x02\xc8\x29\x25\x53\x42\x49\xe2\x13\x94\x61\x3e\x3f\xb3\x5c\x77\xc8\x97\x59\x98\xcc\xd8\x30\x0e\xf9\x9c\x86\xd1\xaf\xeb\x2f\x37\x00\x34\x0b\x0d\xcf\xb7\xa2\x06\xaf\xe0\xdf\x16\xf0\x04\xa4\x2a\xa5\xe9\x86\x13\x20\x15\x08\xf4\x3a\xe7\xf3\x94\x7a\xe8\x07\x8a\x63\xf4\x96\xe6\x09\x09\x29\xb2\x1f\xe1\x7f\xee\x4c\xfd\xef\xfb\x59\x8c\x41\x5a\x3f\x8d\x9d\x5e\x0f\x94\xcf\x23\x82\x6e\xa4\x0d\xd0\x73\x0f\xc1\x43\x9e\xb2\x94\x72\xa4\xb7\x46\xc2\x2e\x23\x29\x88\xde\x17\x4f\x18\x4b\x98\x8c\xa6\x71\xc8\x08\x3a\x43\x0f\x85\x15\x6e\xd4\xfb\x83\xda\x39\xe9\xad\x51\x34\xd9\x30\xe1\x84\x4e\xb1\xaf\x29\x5f\x12\xe6\xd3\x30\xe3\x61\x9a\x54\xc8\x8b\x47\x39\x24\x0c\x3c\x94\xe4\xf1\x23\xa1\x27\xb5\x5d\x61\x1f\x4f\xcb\xed\xde\xc2\x4b\x89\x28\x3f\x2b\x34\xeb\x48\x98\x73\xca\x3c\x84\x93\x65\xb9\xbe\xda\x20\xe1\x05\xce\xb0\x1f\xf2\x65\x43\xb2\x62\xd9\x2c\xd9\xeb\x05\x98\x17\x3f\x46\xc4\xbc\x7d\x8f\x93\x19\xb9\x48\xf3\x84\xb7\xf7\x37\xc9\x62\xf6\x83\x78\x02\x50\xd7\x6b\x59\xb3\xce\x95\x0a\xae\x0f\xbe\x99\xad\xb2\x36\xa6\x9c\x04\x0f\xb8\x63\x3f\xcf\x02\xbc\x69\x5f\xc6\xe1\xda\x21\x23\x19\x95\x37\x9f\x2e\x2e\xe4\x57\x1d\x34\x22\x38\x20\xf4\x61\xab\x48\x94\x64\x51\xe8\x4b\xae\x5b\x61\x71\x61\xf4\xcd\xa0\x3b\x1a\xf8\x9e\xb0\x2c\x4d\x18\x19\x11\xde\xb4\xb5\x57\x85\x1b\x4f\xf6\xa5\x7c\x1d\x32\x7e\x83\xb3\x06\xd5\xb1\x8c\xf5\x1f\xd7\xa1\x3e\x79\x31\x97\x4a\x00\xec\xce\xa6\x82\xb4\xaf\x3e\xfb\xea\xb2\x81\xbe\x1f\x61\xc6\x14\x6c\x33\xc2\x33\x1a\x2e\x20\x0e\x64\x90\x85\x3e\x7a\x80\x50\xc4\xd7\x21\x54\x1c\x28\x3c\xc7\x47\xe2\x39\xd9\x0a\xff\x41\x54\xbf\x60\x14\xfe\x21\xaa\xd5\xb7\xdd\x38\x12\xd8\x33\xd5\xb3\x8c\x50\xbe\x3c\x6d\x3b\xf3\x1c\x08\xc6\x2e\x94\xc2\xcc\x36\xee\x3e\xaf\x9c\x4a\x19\x94\xbc\xf2\x47\x88\x6c\x9d\xb8\x9b\x39\xd5\x1d\xda\x62\xd5\xdc\x96\xbc\x0c\xac\x54\x27\x21\x6c\x37\xc5\xba\x95\xea\x50\xe8\xa7\x9c\xd0\xa5\xed\x18\xa9\x8b\x36\x70\x6a\x4e\xae\xf3\x86\x9f\xc5\xb3\xc0\x14\xe5\x34\x02\xf6\xd6\x50\x37\x40\xd5\x9b\xd9\xd0\x3a\x69\x41\x53\xc2\x73\x9a\x80\xa4\x94\xfc\x9e\x13\xc6\xed\x67\x81\xec\x89\x9f\x01\x8a\x09\xf4\x42\x08\x44\xeb\xed\xd5\x47\x6b\x00\x71\xc6\x29\xf6\x45\x55\x48\x93\xf7\x2c\x4d\xae\x28\x4d\x29\x43\x2b\xa7\x45\x55\x3c\x2e\x9f\x93\xc4\xb6\x81\x6f\x1e\x89\xca\x66\xd6\xc0\x41\x67\x26\x25\x4a\xf1\x24\x36\xf4\xfa\x69\x4a\xaf\xb0\x3f\xb7\x6d\xa5\xd2\x16\xbc\xc2\x10\x3a\x97\xc0\x18\x7a\x14\x10\x21\xe3\x16\x9d\xb1\x6d\x8e\xea\x13\x4e\x91\xcd\xe7\x21\x73\x65\x44\xdb\x4e\x91\x98\x13\x74\x76\x06\xb9\x19\x45\xce\x16\x01\xc4\xd3\x41\x00\x8d\x27\x9b\x99\xaf\x76\x50\xad\x48\x12\x20\x67\x64\xb3\x5d\x3d\xbb\x24\xe2\x46\x24\x99\xf1\xb9\xd0\xed\xc8\x41\x5f\xbf\x6e\xd5\xac\x82\x3b\x6e\x93\x39\x44\xc7\x13\xb7\xec\x79\xe8\xb4\x70\x40\xb9\xe6\xbc\xd8\x7e\x6e\x96\xb3\x79\x11\x08\x9b\xb5\x5c\xd3\x28\x12\xb8\xee\x06\xb5\xfa\x52\x57\x34\x6b\x45\x5b\xf0\x4c\x14\xcd\xbb\x28\xb8\x4a\x38\x0d\x05\xf3\x6d\x08\xca\x3c\x95\xaa\xb4\x11\x47\x67\xaf\xce\x12\x33\x5c\x53\xc8\x55\xcf\x5c\xb6\x4d\x9c\x3d\xb4\x48\xc3\xc0\xe0\x26\x29\xac\xc8\xa5\x5d\xcb\xa8\x78\x44\xd4\x8a\xb1\x53\xf4\x36\x06\xf6\x48\x66\x6d\x18\x48\x73\x64\x2b\x20\x68\x98\x35\xf7\x77\x85\x4b\x29\x8b\x33\x56\x98\x93\x66\x46\xe8\xe5\xb1\x69\xb1\x16\xb1\x82\x4c\x5b\xa8\xd5\x4e\x06\x6c\xf9\xba\xd3\x7a\xff\x90\x21\xca\xaa\xd0\xa1\xbf\x39\x40\x44\x21\xd0\xc9\xa9\x4d\x71\xae\xa7\x08\xb7\x1c\x14\x36\xe5\xea\x9a\xa7\xa6\xc2\x7c\xe8\x98\xa4\x41\xf3\xb0\x46\xb3\x1c\x26\x06\xa8\x09\x77\x6c\xee\x27\xed\x34\xdc\xe8\x16\x38\xca\x7d\xbc\xbb\xbc\xb3\xc5\x39\xce\x11\x73\xf5\x82\x20\x9e\xa2\x9c\x87\x91\x38\x90\xc8\x61\xc9\x35\x3b\x52\xcf\xc2\x12\xd0\x2e\xa6\x31\xe5\x27\x47\xbf\x3b\x9c\x2a\x81\x0b\xe3\x1b\x2a\x4e\xdb\x01\xca\xf8\xb0\xeb\xb6\xa7\x7a\x5d\x8b\xcd\x86\xd7\xa9\x6f\xc1\xf8\xd6\x37\xf4\xf5\xb6\xb5\x34\x82\xe6\x66\x9c\xf7\xd1\x10\x75\xca\x72\x20\x06\x45\xc7\xe5\xe9\x48\x1a\xc0\x76\xd0\xff\x90\xd5\xe4\xfc\xf7\xf9\xa0\x3c\xbb\xac\x3d\x80\x0a\x17\xa0\xff\x88\x0f\xcc\xe7\xb3\x7f\x8f\x13\x2a\xd3\x3f\xe1\x61\x4c\xde\xa4\x34\x86\x4f\x0a\xc6\x0d\x5e\xb9\x62\x45\x4c\x65\xb0\x64\x5b\xfd\x5f\x0e\xfb\xf1\x61\x3f\x40\xfd\x77\x5e\xff\xc6\xeb\x8f\x2c\x67\x23\x49\x85\x77\x09\x4b\x76\x82\x93\x94\x15\x87\x9d\x6d\xce\x2d\x44\x01\x11\x12\xf2\x05\x95\x04\xc0\x6a\xc7\xee\x11\xf9\xc6\xd0\x76\xb4\xd1\x2b\xe5\xa7\xa6\x8d\x5d\x2c\x6c\xe9\x93\xea\x1c\x70\x49\x38\x24\x0e\x6b\x95\x85\xe6\xdc\xfe\x29\xa4\x3c\xc7\xd1\x55\x44\x62\x92\x34\x0f\xc1\x85\x36\x7f\x21\x54\xb7\xcd\xa0\xc5\x5c\x6f\x5b\x41\xb8\x80\xd9\xdd\xba\x4d\x85\xf1\x30\x78\x82\x30\x21\xd1\x92\x70\xd7\x6a\x57\xda\xce\x98\x2d\x28\x8d\x8d\xec\x60\x97\x8b\x6a\x02\x9c\xcc\x00\x0a\x84\x8a\x7d\xf1\x11\x28\x91\x02\x82\xc0\x86\x96\x33\x40\xc5\x22\xbc\xf1\x78\x4e\xc9\xf4\x6c\x28\x9a\x16\x9c\x59\x20\xc4\x55\x3e\xc8\xd1\x5d\x2c\xca\x1f\x18\xdf\x45\xf0\x4f\x00\xe7\x19\xf9\x69\x32\x0d\x67\x9e\x38\xc6\xa4\x39\x84\xd9\x6a\xd0\x85\xe3\x38\x13\x67\xb0\x9f\x84\xb7\x84\x7f\x49\xe9\x6f\x35\x31\x9b\xd4\x71\x10\x80\x5d\x99\x9b\x28\xd8\xfd\x99\xbc\x56\x04\x76\x62\xa2\xdf\x7b\x31\x19\xa9\xeb\x29\x84\x79\x8d\x45\x91\x14\x95\x7c\x54\x5c\xcb\xeb\xac\xfd\x2c\xf6\xb3\x1a\xef\x77\xe6\x53\x3d\x0e\xec\xc3\x47\xde\x02\x9a\xcc\x55\x29\x97\x7b\x11\xbc\x96\xd5\x16\x75\xd2\x6d\x57\xe3\xbd\xc8\xaf\x2f\x35\xbb\x39\x18\x5b\xf2\x8b\x98\xc8\xca\x5e\xe3\xa0\xa6\x41\xd3\x60\xb3\xa7\x7b\x13\x30\xc2\xe1\xfd\xba\x71\xed\x63\x2f\x18\xed\x36\xf5\xbd\xbd\xe4\x78\x03\xa5\x6f\x89\x4a\x39\x0c\xca\xb6\x27\x08\xa1\xaa\x91\x83\x61\x79\xd2\xea\x06\xe5\xd7\xfa\x73\x78\x70\x50\x02\x1d\x34\xae\x45\x48\xc2\x72\x71\x13\xc7\xe7\x70\xfc\x25\x62\x0d\xc5\x90\xb5\x18\xcc\xa5\x6b\x2a\x98\x6f\x4a\xd3\x18\x20\xa0\x31\x12\xba\x20\xb4\x4a\x0d\x53\xf1\x27\x0a\xca\x88\x8c\x1a\xcc\xd0\xfb\xd1\xdd\xad\xee\x8e\xd5\x86\x7d\x30\x5c\x7f\x4f\xf3\xc4\x97\x7f\x08\xa8\x49\x62\x3f\xcd\xa9\x87\x3e\xdf\x5c\xbf\xe3\x3c\xbb\x57\xd7\x3c\x03\x94\x66\xdc\x70\x99\xf5\xf9\xdd\xfd\x9d\x3a\xfc\x75\x75\x62\xdd\x0e\x80\xa6\xee\x58\x70\x5a\xf8\xff\xd1\x11\xfa\x4e\xca\xe7\x2a\x9c\x70\xba\x14\x5c\xc1\xd3\xea\xa2\xe7\x23\x79\x82\x13\x84\x87\x9a\x6b\xd5\x8b\x65\xf5\xbb\xea\xfd\x19\x00\x00\xff\xff\xdb\xd1\xe8\xc5\x5a\x1a\x00\x00") + +func uiTsModelsStore_statusTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsStore_statusTs, + "ui/ts/models/store_status.ts", + ) +} + +func uiTsModelsStore_statusTs() (*asset, error) { + bytes, err := uiTsModelsStore_statusTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/store_status.ts", size: 6746, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsModelsTimeseriesTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x59\xdf\x6f\xdc\xb8\x11\x7e\xf7\x5f\xc1\xf3\x93\x94\xdb\x68\x93\x7b\xe8\x83\x1c\xa7\x0d\xee\x82\x1e\x0e\x75\x93\x3a\x46\x7b\x40\x10\x18\x5c\x89\xbb\xab\x46\xa2\x14\x92\xb2\xb3\xbd\xdb\xff\xbd\xdf\x90\xd4\x6f\x69\xb3\x06\x0e\x38\x01\x71\x64\x89\x1c\xce\x7c\xf3\xf1\x9b\xa1\xbc\x5e\x33\x5d\xd6\x2a\x11\x31\x2b\xca\x54\xe4\x7a\x6d\xb2\x42\x68\xa1\x32\xa1\x23\xa3\x2f\xd6\x18\xf0\x4a\x89\xad\x50\x42\x26\x82\x55\xdc\xec\xaf\x2f\xa3\x68\x6d\x0e\x55\x26\x77\x7a\x5d\x64\x66\xaf\xb2\xfc\xbf\xed\x5d\x94\x62\xda\x25\x5b\xbf\xc6\x54\xf6\xa6\x36\xfb\x52\xc5\xec\x86\x1b\xc3\xee\x14\x4f\x0e\x2c\x28\x70\xff\xb7\xa4\x4c\x3e\xab\x92\x27\xfb\x9c\x6f\x74\x94\x94\x45\x78\x71\xb1\x7e\xf6\xec\x82\x3d\x63\x37\xd6\x0d\x96\x94\xd2\xf0\x4c\x6a\x96\x72\xc3\xbd\x6f\xac\xaa\xf3\x5c\xa4\x6c\xab\xca\x82\xb5\x26\x22\xcc\x5a\x5f\x60\x44\x9d\x8b\x66\xf6\x6f\x17\x0c\x97\xf8\x5a\x95\xca\xb0\xe6\x95\x30\x2a\x4b\x9a\x77\x74\x65\x85\x7d\x5f\xc1\x5c\xa6\x05\xbb\x66\xf7\x4d\x10\x37\xee\xff\xf7\xee\xcd\xd5\x45\x3b\x05\x4e\xb2\xf6\x17\x78\xfb\xaf\x5a\xa8\xc3\x9b\xdd\x4e\x89\x1d\x37\xa5\x62\x99\x66\x5c\x32\x21\xeb\x42\x28\x6e\xb2\x52\xb2\x72\xcb\xcc\x5e\x30\xfe\xc0\x33\x04\x0b\x3f\x78\x3b\xba\x6f\x68\x5b\xcb\x84\xc6\x6b\xb6\x85\x19\x4a\x02\x73\x59\x60\x5f\x6a\x97\x0d\x76\xb7\x87\x75\x29\x44\xaa\x99\x29\xd9\x46\xb0\xcf\xa2\x32\x2c\x93\x4c\x1f\x64\xc2\x1e\xe1\x72\xdf\x20\x2d\x7a\x07\x33\x1f\xec\xec\xb1\x9f\x03\x0f\xa5\x1d\x8c\xe5\x1e\x84\x8a\xfa\x36\x82\x35\xb0\x31\xe5\x80\x14\xf6\x49\xd8\x1b\xb5\x6e\xef\x3d\xde\x64\x7b\x02\x4c\x87\x3a\x5d\x6f\xfe\xfd\x77\xc0\xfd\x72\x35\x7e\x78\x7f\xfb\xe6\xee\x2d\xde\xfc\xd0\xbd\x39\x0e\xc0\xef\x7b\xf7\x13\x98\x51\x95\x99\x34\x16\x75\xa6\x41\x48\xc0\x9b\x76\x4f\x25\x9e\x12\x7a\x07\xa6\x84\xae\x80\xad\x98\x82\xd8\x37\x38\xc1\x73\x04\x62\xb7\xa0\x05\x61\x53\x6f\xb1\x2f\x18\x90\xd1\x7c\x27\x3c\x8c\x7d\x7b\x1e\xd1\x13\x30\x46\xa7\x70\xc4\x42\x42\x6d\x39\xb6\x5d\xb7\xf0\x10\x46\x6b\xcf\xf0\xa2\xba\x97\x5c\x96\x3a\x66\x40\x7e\x23\xd4\xd5\x60\xd0\x03\xcf\x6b\x31\x7d\xb5\x8c\xab\x4d\xdd\xad\xd0\x75\x3e\x44\xb6\x85\x12\x2f\xbe\xc1\xc6\xbe\xb9\x19\x20\x7b\x2b\x44\xf6\xfe\x04\xa0\x4f\xe3\xe5\x99\x80\xf6\x43\x1c\x42\x2a\x79\x21\x62\x0d\xa5\x90\xbb\x21\x8c\x2d\xaf\x00\x73\x9b\x8f\x8f\x9f\x9e\x86\xe7\x07\x01\x39\xe2\x26\xd9\x63\x5f\xdb\xd8\xea\x24\x41\xb4\xdb\x3a\x67\x65\x6d\xaa\xda\x34\x72\xb1\x36\x7a\x6d\xf1\xee\x1b\x12\x32\xb5\xab\x9e\x23\x05\x63\x2e\xce\x82\xff\x27\xc2\x4e\x48\x0c\x91\x77\xc4\x02\xba\xbd\x51\x1f\x3f\x9d\x4d\x58\x47\x55\x94\x92\x02\x01\x74\x4b\x42\xe3\x73\x51\x08\xfc\x9e\xb2\xcd\xc1\x46\xe6\x78\x8c\x0a\x86\x24\x00\x32\x92\x4a\xcc\x75\x55\xe2\x29\x81\x8c\xfc\xb7\x66\xe3\x20\xbc\x7e\xed\x0b\xca\xab\x61\xb8\xaf\xcf\x0f\x25\xcd\x74\xe5\x59\xd2\xee\xbe\x71\x49\x38\x50\xe6\xe7\x13\xd5\x39\xde\x54\x15\x37\x23\x80\x56\x28\x13\x83\xbd\x62\x45\x64\xf2\x77\x28\x48\xf1\x48\xae\x57\x7e\x25\xbf\x13\x3e\x7e\x0a\xe3\x85\xa0\x46\x20\x3c\x70\xc5\x6a\x95\x43\xc2\x2f\x5b\x0a\x5f\x8e\xf5\x48\xb9\xa2\x7e\x3d\x9a\x4b\x97\xf5\xb0\x51\x33\xfb\x4b\xb4\x13\x86\xc8\x1b\x84\x80\xe7\x65\xf4\x42\xfc\x65\x35\x99\x85\x58\x9a\x39\xb8\x3d\x67\x86\x2f\xaa\xb1\x8f\x33\x2a\x78\x15\x04\x2a\x64\xd7\x08\x48\x09\x53\x2b\x39\xe3\x1c\x5d\x56\x1f\x98\x9a\x5a\xa4\xab\x2b\xed\x31\xdd\x4f\x07\x1d\xaf\x8e\xe1\xf0\xe9\xb1\xfd\x6d\xb4\x19\xac\x0f\x45\xa4\x04\x5c\xd5\x26\xf8\x0d\xa8\xc6\xf8\xb7\xc2\x3e\x45\x53\x95\xc6\x97\xef\xdf\x7d\xb8\xbb\x44\x1e\xbf\x1a\x34\x56\x26\x96\xa5\xfc\x45\x97\xf2\xad\x52\xa5\xd2\x2b\x8b\x70\x4c\x3f\x8e\xe1\xc4\x8b\x08\xb4\x91\x41\x90\xc6\xc3\x5c\xba\xe8\x67\x03\x43\x2f\xf7\xbe\x44\xf7\x05\xbe\x30\xb0\x80\x28\x89\xad\x86\x66\xcc\xb1\x6b\x9b\x89\x1c\x52\x64\x75\x47\x14\x95\x39\x30\xae\x14\x3f\xe8\x68\xd6\x58\xb6\x65\xc1\x77\x69\xe4\xf7\x7b\xb8\xb0\x24\x5d\xed\x20\x70\xa5\x2f\x05\xf3\x00\xce\xce\x8c\xd0\x4e\xbd\x45\x97\xd8\x66\x77\x71\x31\xeb\x96\x8a\x3a\x9d\x3f\xe5\x19\x5d\xfd\xb1\xd6\xc1\xc5\xd1\xf3\x3e\x1e\xc3\xf9\x88\x7c\xee\xd3\xe9\xdb\xfe\x8c\xe3\x72\x53\x7a\x2b\x12\x08\x5e\x4f\x15\x9d\x5e\x3c\xee\xb3\x64\x0f\x9d\x93\x19\x08\x4a\x8f\xd3\xba\xeb\x51\xd1\x6f\x63\xbb\xa1\xc3\xd0\xd9\xff\x06\x85\x03\xfc\xc2\x9e\xa2\x84\x6f\x78\xf2\xf9\x91\x2b\x24\xda\x36\xe0\xa4\x3d\x49\xad\x70\x30\x30\x56\x9c\x22\xf6\x1f\xd0\x0a\xde\x6f\x01\xfd\x5e\xa4\xab\x4e\x6c\x87\xed\x40\x9e\x53\xc5\x52\xe2\x39\x88\x54\x43\x96\xa1\x63\x6e\x91\x46\xd1\x06\x56\x4f\x09\x72\x92\x73\xad\x07\xe1\x0e\x33\x56\xa9\xec\x81\x28\x7b\x3f\x52\xb3\x21\xb2\x36\x74\x55\x27\x40\x25\xa8\xea\x4d\x9e\x51\x05\x95\x69\xf9\xf8\x93\xc7\x27\x76\xbd\xd3\xaa\xb3\x37\x2b\x99\x51\x14\x8d\x55\x73\x86\x41\x54\x6c\x22\xef\x10\x58\xe3\x6e\xae\x46\x9a\x30\x2d\x2c\xc1\xb9\x0a\x4c\x17\x49\x2c\xf0\x24\x11\xc4\x12\x52\x3c\x52\xc7\x02\x3d\x9c\x32\x8a\x46\x5a\x99\x1d\x8f\xf5\xd3\x7b\x5a\xfa\xdc\xb9\x3e\x84\x66\xc6\xa4\xa7\x6f\xaf\xe2\x90\x81\x55\xe3\xd0\xca\x23\x40\xfa\x38\x00\x23\x1c\x83\x30\x03\xc7\x5c\xb5\xbc\xe1\x12\x6d\x0b\xc2\xa8\x2b\x22\x85\x6f\xac\xf6\x9c\x52\x40\xcc\xee\xb7\xad\xae\xf0\x6c\x84\x79\x14\x42\xf6\x2d\x15\x78\x99\xa1\x53\xa0\x06\x02\x27\x05\xf0\x49\x9f\xc1\xbc\xc1\xfa\x0b\xd4\x73\x0b\x8f\xa4\x96\x90\xc6\x59\xf6\x6a\x7e\x8a\x20\x0d\x8f\xad\x92\x9f\x1e\xe8\x6c\xbf\xad\xca\x64\xef\x39\x8a\xf1\x2f\xae\x86\xf4\x81\x76\xdb\x76\xd1\x71\xbc\x56\xa2\xdd\x82\x28\x19\xcf\xc9\x3a\x94\x41\x74\x67\xa5\x8c\xba\xa2\xe7\xdb\x3c\xdb\xed\xcd\x8a\xc1\x85\x3d\xd7\x63\x83\x84\x52\x2e\x6c\x4f\x85\x9e\x55\x96\x06\xe6\x60\x02\x0c\xa5\x76\x56\xa4\x5e\x0b\xb8\xec\x4c\x8d\x95\x60\x68\x08\x15\xab\x94\xf9\x01\x3f\x84\x6f\x81\x71\x20\x6f\xcb\x0a\x5c\xf4\xdf\x03\xe0\xa5\x3d\xcf\x44\xf3\x80\xa0\x89\x26\x15\x23\xb9\x8a\xa7\xdb\xc2\xa7\xe2\x9b\xed\x59\x9b\x6b\x9b\x87\x99\x8f\x02\x95\x50\xe6\xf0\xca\x26\x68\x34\xed\xe8\x13\x36\x4a\x41\x9f\xb6\x74\x3d\x63\x3f\x36\xa2\x83\x88\x68\xd3\x0d\xa8\xe4\x94\xba\xdc\xb8\x2f\x20\x4d\x0d\x6c\x54\x77\x6c\x8a\x88\x9f\x67\xc8\x85\x45\x78\x54\x73\x7b\xd4\xa5\x6b\xa0\x75\x0d\x6a\xae\x73\xb5\x1e\x40\xb1\x46\xea\xd3\x8c\xf2\xb9\x7d\xd7\x21\x1c\x84\x53\x88\xa9\x88\xba\x4d\xdd\x4b\xc5\x52\x21\x25\xf1\xe9\x98\x74\xcd\x16\xeb\xe7\xd4\x64\x64\x73\x03\x55\xfa\xce\xe1\xcd\x7e\xff\x9d\x4d\x07\x39\xe4\xba\x51\xe1\x68\x6b\xf4\xbd\x6e\x1d\x39\x55\xf6\xdd\x12\x5e\x4b\xae\x4f\xac\x38\x5f\xd9\x3b\x13\xc2\x6f\xee\xc5\xc0\xbe\x65\xa0\x37\xa5\xa1\xdc\x39\x4e\x5b\xad\xf8\xfe\xfb\x73\x5b\xa9\xe3\xa9\xba\x34\xc3\x6a\x2d\x7c\x1d\x4e\xf6\x5c\xee\xfc\x21\xd7\xc9\x4a\x2d\x53\xa1\xf2\x03\xf9\xeb\xce\x5b\x8e\xeb\xa7\xe9\xda\xd8\x0b\xbe\x78\x7a\x2e\xd5\x53\xb7\xc6\x35\xfb\x72\xb2\x92\xce\x78\xec\x73\xe9\x8a\x96\xf3\xb7\x28\x35\x3d\xa0\xa6\xa2\x79\xed\x4f\xe5\x76\x95\x15\xd1\x85\x4b\x12\xca\xb1\xb1\x0a\xc3\x31\xeb\x74\x4c\x0d\x45\xc6\x25\x61\x21\xb4\xb9\x7d\xb7\x58\x74\xfb\xa9\x7e\x2a\x12\x82\xa8\x31\x00\xc2\x3d\xf1\xb1\x37\x4d\x59\xbf\x9c\x5e\xb9\x54\x52\x8f\x39\xb6\x86\x36\xb3\x34\x68\x35\x13\x9e\x43\xd6\x33\x99\x28\xc1\xfd\xb1\xa1\xa6\x63\xb4\xd7\x38\x5b\x6c\xf0\xce\x9f\xd0\xdd\x09\x02\xed\xfa\xd8\x9c\x5b\x35\x40\xa1\x82\x2f\x6a\xf0\xdd\x44\x51\xfd\x09\xe9\x9b\x08\x55\x0c\xa5\x87\x2e\x52\xf5\x42\xb6\xe6\x83\x45\x68\x2f\x4f\x27\xcb\x8e\x43\xae\x7c\x75\xfd\xa3\x73\x64\xb7\xe3\x93\x13\x65\xb5\x63\x90\x28\xff\x84\x4c\x12\xc6\x6d\x7f\xde\xa7\x32\x65\x02\x1d\xf6\x74\x03\xd8\x7e\x3d\x08\x5b\x5e\x97\x09\x72\x8d\x1a\x7e\x1a\x18\x27\x53\xbe\x4b\xf9\xe3\x70\xb1\x76\x4f\x22\xd2\x3a\xfc\x84\x86\x18\x9d\xc6\x8f\xb9\x40\xb9\xe9\xcb\xa6\x3f\x5a\x53\xd8\x99\xe7\x49\x0e\x96\xa6\x07\xef\xd1\x04\x82\x26\xac\x65\x91\xb7\x67\xc8\xb3\xeb\xdf\x9c\x92\x2f\xd7\x1e\xdf\xbd\xf4\xf4\x2e\xf2\x27\x83\xf9\x8f\x11\x74\xb9\x0e\xa6\xa0\x44\x54\x81\x6f\x58\x5c\x25\x5c\xcd\x57\xdb\xf9\x93\xea\x52\x9d\x73\x1f\x12\xc8\xde\x6a\xa9\x92\xcd\x80\x34\x5d\x63\xc0\x80\xe9\x32\x4f\x3f\x18\x0c\x3e\x86\xe0\xe4\xa1\x41\x68\xda\x2a\xdc\xf8\xbd\xe2\x3f\x76\xea\x36\xd5\xdd\x9e\x71\xdf\xd3\xfa\xd6\xb8\xa2\xbf\x7c\x29\x2d\xdc\xdf\x6f\x34\xfb\xe5\xc3\xbb\x7f\x32\x77\xc8\x5b\x38\x26\xb4\x1f\xde\x06\x9e\x04\x5f\xf7\x2a\x66\xbf\xde\xfc\xe3\x67\x63\xaa\x5b\x47\x3f\x34\xbe\x15\x7d\xf5\x1c\xb7\x99\xbf\xfe\x7c\xfb\xae\xb2\x7f\x11\x0a\xfd\x79\x72\xf2\xbd\xd4\x82\x06\x93\x11\xf0\x32\xb5\x66\xaf\xd9\x0f\x2f\x5e\xb0\xbf\x5a\xf7\x22\x37\x27\xdb\x1e\x68\xd1\xa8\xf9\x03\xc8\x1d\x4e\xda\x21\x8b\xd9\xf8\x59\xff\xbb\x82\xfb\x79\xbc\xf8\x7f\x00\x00\x00\xff\xff\x24\x88\x6a\xd1\x1c\x1c\x00\x00") + +func uiTsModelsTimeseriesTsBytes() ([]byte, error) { + return bindataRead( + _uiTsModelsTimeseriesTs, + "ui/ts/models/timeseries.ts", + ) +} + +func uiTsModelsTimeseriesTs() (*asset, error) { + bytes, err := uiTsModelsTimeseriesTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/models/timeseries.ts", size: 7196, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesGraphTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x56\x51\x8f\xe2\x36\x10\x7e\xe7\x57\x4c\xf3\x14\x4e\xc8\x61\x75\x52\x1f\xb8\x72\x3a\xba\xad\xb6\x95\x8a\xd4\x6e\x57\xf7\x72\x3a\x9d\x8c\x19\x12\xf7\x1c\x9b\xda\x0e\x1c\xaa\xf8\xef\x1d\x3b\x21\x1b\x42\x58\xaa\x95\x6a\x21\x48\xf0\xcc\x37\x9f\xe7\x1b\x8f\x9d\x65\xe0\x4c\x65\x05\xce\x60\xcb\x73\x74\x59\x6e\xf9\xb6\x60\xde\x8d\x32\x9a\xfa\xc1\xe2\x06\x2d\x6a\x81\x34\xeb\x8b\x79\xc2\x58\xe6\x0f\x5b\xa9\x73\x97\x95\xd2\x17\x56\xaa\xbf\xda\x27\xb6\x26\xb7\x04\xb2\xf7\x37\x5d\xd7\x6f\xe9\x73\xdb\xbc\x34\x6b\x54\x2e\xf3\xb2\x44\x87\x56\xa2\xbb\xe5\x20\x4c\xb9\x35\x1a\xb5\x27\x4e\xe8\xad\x14\xad\x07\xb9\xc0\xa2\xf2\x85\xb1\x33\xf8\xd1\xf2\x12\x1e\x6c\xa5\x51\x5a\x48\x57\xf4\xc6\xf2\xfa\xed\x43\x5e\x72\x5a\x07\xc1\x8c\xbb\x0e\x4b\xee\x3d\x3c\x59\x2e\x0e\x90\x96\xf4\xfc\x41\x18\xf1\xd5\x1a\x2e\x0a\xc5\x57\xae\x36\x1f\x65\x6f\xde\x8c\xe0\x0d\x2c\xd6\xa5\xd4\x1f\x25\xee\x1d\x48\x07\xbe\x20\x76\x56\x96\xdc\x1e\x80\x56\x53\x29\x84\x8d\xb1\x70\x7f\xf2\x47\x07\x3c\x38\x48\xe7\x2d\xf7\x72\x87\xb0\xc7\x55\x80\x91\xda\xa3\xdd\x70\x81\x8c\xde\xb2\x51\xe3\xdb\x01\xff\x67\x04\x10\x43\x02\x59\x3f\x04\xcd\x42\x3c\x4e\xd1\x8c\xd9\x00\x7d\x84\xa1\xd4\x6c\x7d\x8c\x17\x32\x08\x75\x0a\x21\xea\xeb\x58\x74\xcc\xe8\x1b\xbf\x6d\x8d\xf5\x27\x76\x35\x52\x00\x0f\xa3\x09\x00\x31\xc8\x02\x5c\xc9\x95\x82\x35\x96\x46\xd7\x7c\x8d\x0e\x91\x38\x88\x82\x5b\x3f\x81\x7d\x21\x45\x01\x6b\xe9\xb6\x8a\x1f\x02\x19\xbf\x37\xf5\x9c\x7b\x86\x69\xa6\xa9\x0e\x62\x76\x1c\x27\x6a\x6b\xee\x39\xf1\xf3\xc0\x1d\xd8\x20\x1c\xee\x70\x0d\xab\x03\x41\xfc\x51\xa1\x3d\x2c\xb9\xa6\xda\xb4\xac\x45\xc9\x9a\xa7\x73\xf2\xbf\x93\x51\xcb\x3d\x0c\xa1\xb8\x73\x94\x6d\xed\xad\x51\x0a\x2d\xc8\x72\xab\xb0\x0c\x05\x02\x5f\x4e\x55\xbb\xac\x7f\x3b\x56\x5d\x88\x30\xca\x3a\xfc\x6c\x19\xeb\x91\x2d\x9b\xd2\xea\x52\x7b\xd7\x73\x71\x85\xd9\x3f\x72\x8f\x6e\xb6\x32\x46\x21\xd7\x7d\x83\x28\xf0\x8e\xab\x99\xae\xca\x55\xf0\xef\x03\x54\xe5\xdf\x01\x1f\xe6\xa0\x71\x0f\xbd\xd0\x8f\x28\x68\x11\x91\x40\x7a\x37\xa5\xac\x7e\x1f\xbe\xee\xa6\xd3\xe9\x04\x7a\x40\xf5\x18\xa2\xbe\xc8\x73\x8b\x39\xf7\xc6\xb2\xc5\xc7\x87\x09\x24\xc2\x32\x4d\x76\x4c\x90\xcc\x8e\xb9\x4a\x08\x74\x8e\xdd\x25\xe3\x3e\x79\xd2\x1e\x5f\xc7\x6e\x80\xdc\x6d\x6a\x5f\x1e\x17\x4f\x3f\xbf\xcc\xaf\x87\x2b\x62\x85\x56\x82\x00\xd2\x71\x5f\xce\x30\x7c\x21\x1d\x6b\x74\x1d\x5e\x44\x57\xdd\x34\x9a\x9f\x24\xb9\x48\x47\x1f\x90\x51\x6b\xb2\xe8\x8a\xf4\xba\xe5\x49\x7e\x8a\x4d\x75\xff\x6b\xf3\x96\xa6\x63\x98\xbf\xbf\x82\x35\x89\x19\x9c\x5e\x60\x1e\xfb\x8b\x37\xba\xd2\xca\xf0\x35\x81\x0d\x2d\x5d\x50\x39\xda\x36\xe2\x19\x9b\xdb\xd8\xde\xe4\xb9\xc2\xba\x4b\xcc\xa1\xa6\x7b\x35\xbf\xed\x26\x20\xd3\xef\xce\xff\x19\x4a\x8c\xdc\x40\x7a\x6e\x35\xbc\x80\x16\xff\x94\x22\xca\x60\x5d\x6c\xf1\xdf\xb6\x38\x07\xb3\x7f\x04\x12\x19\x5f\x83\xfb\xa2\xfc\xc7\x57\x97\x44\xd7\xf3\x2c\xdd\x4d\x6f\xdb\x54\x5a\xc4\x4e\x2b\xda\x06\x95\x8e\x67\x2f\x74\x2b\x6a\xa0\x95\xd5\xb1\xa4\xef\x3b\x2e\xef\xfe\x6b\x9c\x1d\x9d\x2f\xa9\xf0\x56\x75\x82\x5c\x0a\xb1\xe3\x16\x56\x95\xf7\x46\x3f\xe1\x37\x3f\xa3\xdd\x46\x1d\xfd\xa2\xc9\x91\xa2\x01\xe9\x96\xa2\xcf\x40\x54\x29\xc9\x9f\x64\x0c\x4f\xc6\x73\xe5\x92\x8b\x6c\x5d\x97\x6f\x00\x24\x86\xbc\xc4\x18\x4e\x58\x99\x26\x2c\x1e\x8e\xe1\x18\x49\x26\xf0\xe9\x4a\x89\x90\xdd\x2f\x6f\x69\x3e\xa9\x77\xc1\x4f\x74\x1c\x26\xe3\xa1\xc6\x16\xc6\x7d\x7b\x23\x69\x1b\xcb\x6f\x52\xd7\x1b\x88\x09\x8b\x44\xb0\xce\x50\x53\x27\xff\x3f\x10\xd1\x4f\xae\x1c\x12\xad\x81\xd4\xdb\xca\x7f\xa2\xdb\x1a\xce\xeb\xac\x7e\x26\x97\x6b\x5b\xe6\x34\xa8\x7f\x54\x74\x8b\x7c\x96\xe1\x1a\x83\xd3\xa0\x0b\x8a\x92\xe2\xeb\x0c\x22\xef\x4e\x67\x79\xc9\xf1\x38\xbe\x58\xd9\xe7\x5e\x6d\x3f\xff\x1e\x47\xc7\xd1\xbf\x01\x00\x00\xff\xff\x47\xd6\x5d\x9c\xe1\x0a\x00\x00") + +func uiTsPagesGraphTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesGraphTs, + "ui/ts/pages/graph.ts", + ) +} + +func uiTsPagesGraphTs() (*asset, error) { + bytes, err := uiTsPagesGraphTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/graph.ts", size: 2785, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesMonitorTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x91\xbb\xce\xdb\x30\x0c\x85\x77\x3d\x05\xe1\xc9\x09\x0a\x6b\xe8\x96\x5e\x90\xb4\x43\xa7\x00\x19\x8a\xee\x8a\x4c\xdb\x6a\x75\x09\x28\x2a\x69\x10\xe4\xdd\x4b\x25\x75\xe0\x7f\xf9\x35\xd8\x22\xce\xf9\x0e\x09\x4a\x6b\xc8\xa9\x90\xc5\x0d\x9c\xcc\x88\x59\x87\x14\x1d\x27\xea\x38\x2b\x2d\xe2\x67\xc2\x01\x09\xa3\x45\xd1\x79\xfa\xd2\x74\x9d\xe6\xeb\xc9\xc5\x51\xac\x8e\x27\x72\xfe\xf7\xeb\xd6\xf5\x82\x35\xa0\xbf\x2a\x61\x61\x57\x78\x4a\xb4\x81\x6f\x64\x02\xfc\xa0\x12\xd1\x11\xb4\x47\xa9\xba\xf1\x59\x6d\xc7\x60\x84\xb2\x29\xac\x96\xc0\xde\x30\xc3\x4f\x32\xf6\x0a\x6d\x90\xfb\xd6\x26\xfb\x87\x92\xb1\x93\x37\xc7\xfc\xb4\x2b\xbd\x5e\x2b\x58\xc3\xae\x0f\x2e\xfe\x72\x78\xc9\xe0\x32\xf0\x24\x63\x92\x0b\x86\xae\x10\x52\x5f\x3c\xc2\x90\x08\xbe\xcf\x3c\x66\x30\x15\x70\x99\xc9\xb0\x3b\x23\x5c\xf0\x58\x63\x5c\x64\xa4\xc1\x58\xec\xa4\xd2\xea\x3f\xbb\x08\xbf\x29\x80\x47\x4b\x10\xf7\xfe\xb9\xa3\xb9\xe3\x59\x1c\x8f\x3e\xf8\xf7\xe4\x13\xc9\x6e\xc0\xfa\x92\x25\x11\x32\x1b\x2e\xb9\x7b\x60\x5a\xbe\xe2\x48\xc4\xf3\x6c\x73\x4e\x0d\xaf\xe7\xad\x7a\x90\xf7\x78\x49\x0b\x79\x28\xd1\xb2\x4b\x11\x6c\x8a\x4c\xc9\x7b\xa4\x76\x05\xb7\xfb\x3b\xce\x3a\x61\xf5\x2c\x2c\xf5\x10\x72\xa1\x08\xa1\x6d\xa6\x8f\xcd\x07\x68\xe6\x79\x0e\x5e\x36\x31\x25\xdf\x23\x35\xab\x4f\x0b\x68\xee\x51\xff\x77\x75\x57\xff\x02\x00\x00\xff\xff\xd6\xb1\x96\xcc\x3e\x02\x00\x00") + +func uiTsPagesMonitorTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesMonitorTs, + "ui/ts/pages/monitor.ts", + ) +} + +func uiTsPagesMonitorTs() (*asset, error) { + bytes, err := uiTsPagesMonitorTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/monitor.ts", size: 574, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesNodesTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x55\x5d\x6f\xa3\x38\x14\x7d\xcf\xaf\xb8\xe2\xa1\x82\x36\x6b\xf6\xe3\x8d\x6c\xaa\xed\x76\x57\xab\x4a\xdb\xce\x8c\x2a\xcd\x4b\x15\x45\x06\x9c\xe0\xd6\xd8\x19\xdb\x90\x89\xaa\xfc\xf7\xb9\xc6\x40\x20\x49\x67\xfa\x36\x48\x0d\xd8\xd7\xe7\xdc\xaf\x73\xdd\x38\x06\xa3\x2a\x9d\xb1\x04\x36\x74\xcd\x4c\x2c\x55\xce\x0c\xb1\x66\x12\xa3\xe9\x4f\xcd\x56\x4c\x33\x99\x31\xb4\xda\x62\x1e\x10\x12\xdb\xdd\x86\xcb\xb5\x89\x4b\x6e\x0b\xcd\xc5\x73\xff\x45\x72\x84\x05\x10\x5f\xbf\x09\x2d\x91\x5b\x78\x17\x4b\x63\xa9\xad\x4c\x87\x40\x08\xdc\x54\xb6\x50\x3a\x81\xbf\x35\x2d\xe1\x3f\x5d\x49\xc6\x35\x84\x29\xae\xc8\xda\xaf\xfe\x5a\x97\x14\xfd\x64\xaa\x8c\x10\x71\x79\x39\x81\x4b\xb8\xc9\x4b\x2e\x3f\x73\xb6\x35\xc0\x0d\xd8\x02\xdd\x69\x5e\x52\xbd\x03\xf4\x56\x09\x06\x2b\xa5\xe1\x56\x65\x2f\x5a\xd1\xac\x60\x06\xa8\x03\x70\x63\x35\xb5\xbc\x66\xb0\x65\xa9\xa3\xe1\xd2\x32\xbd\xa2\x19\x23\xb8\x8a\x27\x2d\x76\x40\xfe\x3a\x01\x68\x5c\x02\x9e\x7e\x70\x45\xea\xfc\xd5\x68\x6f\xbc\xb0\xaf\x1b\xa1\x34\x16\xa7\xd9\xf6\x09\x82\x5a\x01\x15\x02\x7c\x59\x1b\x74\x8c\xbf\x78\x54\x69\xdb\x85\xe8\xe9\x9c\x87\xde\x52\x53\xdd\x60\x1e\x1b\x16\x66\x12\xb8\x6f\x8a\x47\x1e\xfa\x4d\xe2\x61\x73\x90\xe8\xff\x0d\x6b\x18\xcd\x86\xac\x99\xa0\xc6\x60\x35\xa4\xd5\x4a\x08\xa6\x81\x97\x1b\xc1\x4a\x26\xad\x81\x65\xd7\xc6\x7b\xff\x1e\x9c\xf2\x91\x81\xab\x6c\x4d\xad\x4f\x8d\x67\xb0\xfc\x52\x31\xbd\xfb\xb7\xc6\x9f\xfb\x47\x8c\xe3\xb7\x5f\xf1\x99\x1d\x9d\x5d\x36\x95\xad\xa9\x48\x40\x56\x65\xca\xf4\x6c\xd2\x9d\xa8\x52\x81\x2c\x99\x92\xd8\x8c\x2a\xb3\x4a\x87\x51\xef\x0a\x46\xd9\x93\x4f\xce\x53\x97\x8c\x7b\x6c\xc1\x0d\xe9\xb9\xd1\xb9\x61\xf6\xae\x5d\x85\xc8\x33\xbf\x3e\x4b\x30\x1d\x24\x4f\x46\xf1\xf7\xdc\xfb\xa3\xf8\x94\xac\xa4\x50\x34\x1f\x05\x97\x09\x46\x75\xef\x6f\x1c\xcc\x80\x69\xc0\xd7\x6a\xa7\x57\xcf\x47\x9c\x36\x30\x85\xda\x02\x05\x81\x72\xec\x84\xe2\xa4\x43\x6b\x94\x39\x4d\x51\x19\x07\xd9\xb4\xc2\x39\x2b\x9d\x86\xab\x0b\xae\xb5\xaf\x2a\x99\x59\xae\xa4\xab\x6f\x9b\xf0\x28\x03\xcd\x6c\xa5\x65\xa3\x9d\xdb\xc1\x89\x71\xec\xa7\x6c\x4e\xec\xe7\x78\xca\x30\xc8\x79\x1d\x4c\xe1\xa9\xb7\x80\xdb\x2c\x7e\xc7\xbd\xc0\x2b\xf5\x7f\x4c\x33\x88\xa6\xe3\x03\x95\x38\x02\x01\x7c\x48\x9f\x59\x66\xc9\x0b\xdb\x99\x70\xd4\x44\x24\xc9\xc2\x28\x22\x06\x43\x0a\x23\x52\xd2\x4d\xd8\x05\xd6\x1c\xbc\xcb\x87\x91\xf9\xc7\x0d\x92\xc3\xb9\x39\x39\xe5\x7a\xf2\xb0\xc5\xec\x08\x75\xc8\x4a\x70\x8c\xef\x15\x30\x98\xa4\xe1\x21\xcd\xed\xc5\x73\xd8\x4f\x8f\x30\x70\xbe\x08\xbd\x91\xa0\xca\x8d\x0d\x83\x0b\x99\x9a\xcd\xec\x22\xad\x84\x98\xf9\xef\x71\x51\x06\x6c\xf4\xa9\xc0\x6b\x74\xee\x2f\xe5\x38\x80\xab\x71\x08\x57\x10\x2c\x9a\xe8\xb0\xc7\x2b\xbe\x4e\xd0\x87\x56\x15\x0e\xdd\xbe\xad\x79\x72\x0c\x39\xeb\x28\x80\x2d\x8e\x3c\x5e\x76\xb9\x66\xc6\x1c\x30\xd4\x6f\x10\xc9\xec\x56\xe9\x17\xe7\xee\x97\x13\x63\xfb\x3e\xa1\x5d\x44\xd1\xb8\xa8\xfb\x91\xef\xc5\x60\xb5\x78\xd7\xc4\x1c\x06\xc6\x8d\x48\xce\x2c\xce\x88\xbf\x5e\xc1\xe0\x9d\xdb\x0e\xcb\x8f\x66\xe5\x67\x8e\x4a\x77\xa7\xdf\xe5\x28\xc6\xb6\x55\x64\x43\xf1\x1f\x5c\x18\xb4\xfd\x09\x06\x45\x7b\xf7\x64\x81\x17\xf5\xc9\x68\x9d\xd3\xa2\x03\xfe\xd1\x01\x13\x70\xed\x6c\x27\x67\xac\x8c\xd1\xac\xfc\xe3\x8b\xdd\xcd\xd8\xa8\x8d\xdf\xe9\xa2\xfb\xdb\x4f\xbe\x05\x00\x00\xff\xff\xec\xae\xf6\xff\x62\x08\x00\x00") + +func uiTsPagesNodesTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesNodesTs, + "ui/ts/pages/nodes.ts", + ) +} + +func uiTsPagesNodesTs() (*asset, error) { + bytes, err := uiTsPagesNodesTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/nodes.ts", size: 2146, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesRest_explorerTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x5a\x5f\x6f\xdb\x38\x12\x7f\xcf\xa7\x98\xd5\xc3\x46\xea\x26\xf2\x02\xf7\x72\x70\xea\xec\xf5\xd2\x74\x7b\xb7\xed\x35\x48\xbd\xc5\x02\x41\xb0\xa0\x25\xda\x52\x23\x8b\x3a\x92\xb2\xeb\x2b\xf2\xdd\x6f\x86\xa4\x24\x4a\x76\xfe\x15\x49\x6f\xb1\xd7\x87\x36\x92\x38\xff\x38\xfc\xcd\x6f\x48\x26\xa3\x11\x28\x51\xcb\x84\x8f\xa1\x62\x0b\xae\x46\x92\x2b\xfd\x3b\xff\x54\x15\x42\x72\x19\x6b\xb5\x37\x42\x91\xe7\x92\xcf\xb9\xe4\x65\xc2\x51\x4a\x67\x93\x20\x8e\x47\x7a\x53\xe5\xe5\x42\x8d\x96\xb9\xce\x64\x5e\x7c\x6c\x9f\xe2\x14\xd5\x02\x18\x1d\xef\xa1\x2e\xbc\xa8\x75\x26\xe4\x18\xde\x32\xad\x61\x2a\x59\xb2\x81\x70\x89\xcf\x7f\x4b\x44\x72\x25\x05\x4b\xb2\x82\xcd\x54\x9c\x88\x65\x84\xf2\xcf\x9e\xed\xc1\x33\x78\x91\x2e\xf3\xf2\x43\xce\xd7\x0a\x72\x05\x3a\x43\xaf\x32\x5f\x32\xb9\x81\xa5\x48\xeb\x82\xc3\x5c\x48\x38\x69\xf4\xb9\x02\x46\x0a\xb9\xd2\x92\xe9\x7c\xc5\x61\xcd\x67\x64\x26\x2f\x35\x97\x73\x96\xf0\x18\xdf\x46\x7b\x4e\xd7\x33\xfe\x79\x0f\xc0\xb8\x04\x94\x3e\xc7\x89\x9f\xba\x79\x93\x5b\x06\x2b\x8e\x1e\x55\xbe\xac\x50\xab\xb5\x65\x7c\xdb\xfc\xe0\xf4\x81\xd2\x05\x2b\x56\xd4\x5c\xc5\x30\xcd\x72\x8a\xd8\xda\x63\xa8\x5a\x2e\x0a\xae\x45\x09\x67\xac\xe4\x45\x6c\xbe\x8f\xf0\x7f\x54\x17\x52\x37\x93\xe9\x39\xa6\x90\xda\xa0\xc8\xcc\x5b\x91\xf2\x02\x12\x51\x6a\x96\x97\x36\x19\x4a\xe3\x34\x13\x52\xc7\x11\x0a\x87\x3e\xf6\xac\x54\xad\x3f\xe7\x11\x1a\x67\xd6\x9c\xf5\xe2\xf9\x21\x4f\x67\x52\x54\x5c\xea\x1c\xf3\xd9\x18\x35\x2e\xe2\x56\x64\xe4\x9e\x5c\xfc\x2b\x26\xdd\x1c\x7f\xe1\x1b\x98\xc0\x32\xae\xd0\x44\x18\x04\xd1\xd1\x4d\x82\x1f\x28\x53\xf7\x13\x3d\x11\x35\xe5\xbc\x13\xfe\x71\x97\xac\x64\xe5\x82\xbf\xd7\x0c\x5f\xef\xb0\x6a\x24\x4f\xcb\xf4\x4e\x39\xae\x2a\x51\x2a\xfe\x46\x2c\x3a\xd1\x8b\x4b\x14\xdd\x95\xb4\x42\x2c\xce\x9d\x82\x05\x0d\x86\x8c\x8f\xf3\xba\x4c\x74\x8e\x2b\xbf\xce\xf2\x24\x83\x94\x27\x98\x49\xbb\x7a\x8d\x7d\xd0\x02\x58\xd9\x59\xfa\xed\xed\x9b\xd7\x5a\x57\xe7\xfc\xdf\x35\x61\x8a\x61\xa4\x0b\x5e\x72\x84\x34\x01\x9c\x1c\xc1\x92\x2b\x85\x45\x9a\x6e\xaf\x48\xeb\xcf\x8b\x27\xfc\x94\x61\xdd\xf5\xcd\x1e\x80\xa8\xb4\x1a\xc3\xef\x4d\xad\xbe\xb5\x3f\x7f\x7b\x7d\xfe\xae\x22\x03\x2a\x1a\x63\x19\x11\xb2\x1b\x8c\x80\xc9\x4a\xca\x34\x73\x23\x47\xed\x40\x3e\x07\x72\x12\x37\x53\x9a\x6e\x2a\x5c\xdc\xc9\x04\x82\x8f\x4a\x94\x41\xe4\xd9\x00\x63\x01\x13\xfa\xcf\xf7\xef\xfe\x15\x5b\x43\xf9\x7c\xd3\x53\x8f\x3a\xcb\xd7\xc0\x0b\x4c\xd1\x0e\xfd\x9e\x3f\xfe\x49\x7b\x3a\x7b\x03\x51\xfa\x11\x17\xbc\x5c\xe8\x0c\x8e\xe1\x47\xf8\xc9\x0e\x8c\x21\x08\x4b\xd1\xad\xc3\x4c\xa4\x9b\x28\x38\x1a\x6a\x5f\xec\x5f\xec\xdb\x74\xc5\x4b\x8e\x1c\x96\x1e\xc0\xfe\x25\xe0\x27\x8a\x80\x4a\xb0\x56\xf8\x05\x1a\x99\x5a\x16\xf8\x3a\xa6\x77\x32\x70\x19\x7f\x14\x79\x19\xee\xef\x7b\x93\xf2\x90\x15\x46\x71\x55\xab\x2c\x24\xd1\xc8\x13\xd0\xb5\x2c\x87\x29\xf2\x65\xae\x77\x82\x50\x25\xac\x84\x34\x57\xc8\xcd\x96\x0e\xed\x17\xe9\xa0\x84\x40\x33\xb4\xc1\x25\x32\x1a\xcc\x98\xe2\x29\x20\x54\xe8\x5b\x52\x4b\xa4\x75\xdd\x99\xb2\x54\x06\x62\xee\x57\x16\x61\xb1\x29\x1f\x62\x39\xde\x9a\x5e\xe7\x45\x01\x35\x81\x99\x1c\xd4\x55\x55\xe4\x3c\xed\xac\x65\x88\x3c\xb0\xd9\x6b\xf4\x5c\xd2\x8d\xe2\x8c\x13\x5e\x11\xd0\x4d\x88\xed\x30\x7e\xbe\x91\x76\x5a\xac\xd3\x24\x43\x6b\x7d\x0c\x36\x5f\xd1\x78\x88\x6c\x64\xb5\x65\xae\xf8\x73\x56\x6e\x8e\x07\x98\xe6\x65\x5a\xe1\x22\x11\x73\x04\xa3\xab\x95\x69\x7d\x23\x33\xcf\x9f\x14\xcd\x7b\x12\xc0\x0f\x28\x44\xa5\xfb\xeb\xf9\x3f\x4e\xc4\x12\x63\xc3\x64\x85\x5d\x66\xc2\x28\xea\x57\xc3\x77\xdf\x35\x79\xc2\xa1\x1e\x7c\x5b\x67\x3f\x4c\x60\xff\x7b\x7c\x9b\xec\xdf\x62\xdd\x1a\xd8\x85\x6d\x87\x91\x65\xec\x96\x20\xf4\x9d\x34\xc9\x70\x80\xf5\x46\x10\x9e\xe3\x36\x06\x7f\x00\x4b\x08\x9b\xb2\x1e\xfb\xcc\xd1\x8d\x5f\xb7\x31\xec\x46\x1e\x06\x8c\x3d\xb2\x07\xbd\x16\x75\x4c\x2e\xb8\x26\x26\x69\x3a\xa1\x93\xee\xc1\xf1\xc0\xe2\xb1\xb3\xd8\x07\xa6\x87\xc7\xae\xd3\x10\x1c\xbd\x76\xb2\x8d\xc8\xce\xda\x10\x9a\x0f\x45\x64\x67\xe9\x61\xd0\x34\x33\x7d\x74\x6c\x1a\xab\x23\x42\x65\x9b\x8c\xd0\x03\x89\xed\x5e\x26\x0d\x5b\xae\x3a\x82\x47\x8b\x4f\x0a\x19\xa0\x95\xcd\x59\x91\xff\x07\xf7\x94\x4d\x42\x2c\x89\xc1\xe7\x06\xbe\x86\x63\xaf\x3d\x9c\xf5\xcb\xc8\x06\x63\x5b\xc9\xd9\xbb\xf7\xd3\x41\x2b\x71\x93\xc4\x4d\x63\x39\xcf\xa9\x4b\xb7\x6e\x90\x9b\x2d\x1f\xf7\x15\xc0\x92\x36\xd7\xae\x0d\xbe\xe6\x2c\xe5\x32\x0c\x4e\x70\x5b\x85\x49\x3d\xa4\xc6\x15\x1c\x40\xa0\x71\x6a\xa3\xaa\xc0\x9d\xd6\x11\x24\x19\xc3\x4e\xae\x27\xbf\x4e\x5f\x1d\xfe\x15\x03\x38\xea\xd9\x73\xf3\x40\xb3\xfe\xf7\xeb\x1d\x41\xba\x76\xe2\x01\x36\xec\x15\xf6\xcd\x95\xed\x7e\xde\x51\x82\x89\xdb\x27\xfd\xcf\x8a\xd0\x6d\xd4\xfe\x88\x65\xe8\x72\xf3\xe8\x85\xe8\xec\x7e\x2b\xc5\xa7\x2b\x45\x46\x48\x49\x18\x99\x1a\x7d\x3a\x5c\xaf\xd7\x87\x78\x28\x59\x1e\x62\x26\x6c\xcf\x4c\x9f\xa8\x42\x1d\x9a\x1f\xb9\x46\x0b\xce\x24\x1d\x28\xcc\x83\xfa\x82\xbd\x4e\x63\x21\xf4\xb3\xe9\x6f\x28\xcd\x09\xa5\x5d\xc1\x3d\x2f\x16\xef\x30\x39\xab\x35\x1d\x47\xcd\x41\x25\xe3\x05\x1e\xf7\x3a\x0f\x3a\x63\xba\x77\xe2\x48\x30\xff\x57\x6c\x86\x94\xe1\xd4\xdc\xa9\xb0\x31\x36\x38\x71\x2e\x78\xff\xc0\xd9\x1a\xb6\xda\x21\x71\xab\x3b\x41\x20\x2e\x4a\x63\x7d\x1c\x46\x93\x63\x2c\xba\x03\x62\x2f\x72\x95\x9a\x2f\x33\x21\x70\xba\x65\x37\xd5\x26\xed\x61\x90\x97\x55\xad\x2f\x34\x82\x64\x62\xed\x5e\x22\x58\xfc\x8a\x45\xa6\x1a\x03\xf9\xea\x10\xdd\xda\x6e\x9f\xc2\xa8\x1b\x6d\x42\x69\x1e\x9a\x91\x66\xeb\xb3\x9d\x45\x3b\x89\x57\x39\x2f\xd2\xfb\xa5\x12\x33\x4e\x61\xc3\xdc\xa8\x7c\x61\x1a\x8d\xf2\xf3\xe9\x71\x3f\x91\x76\xc2\x94\xb4\xe9\x17\x25\x91\x8c\xf5\x53\x88\xed\x2f\xe1\x99\x28\xb0\x2a\x1f\x96\x48\x97\xfb\x95\x6d\x71\xbd\x04\x67\xb4\xa7\x45\x62\x8b\xd7\x48\x81\x2f\xb4\xc6\x7a\x37\x62\x81\x9b\x40\x74\x43\xd2\xdd\xa5\xc5\x29\xb5\xac\x76\x87\xdc\xc6\x9a\x14\x4c\x29\x20\xe2\x90\xa2\x28\xda\xcb\x13\xb3\x5a\x23\xef\x3a\x23\xde\x2a\x98\x33\xe4\x52\x6a\x8a\xed\xf9\x7e\xce\x8a\xde\xf9\xf3\xca\x5c\x68\x98\xcb\x92\xb8\x25\x78\x9f\xde\x8b\xc1\xb0\x69\xec\x47\x7b\x7e\x00\xaf\xdc\xca\xf5\xfc\x5b\xd6\x70\x4c\xef\xda\x51\x8f\x1f\x75\x96\xab\x78\x10\x67\xa8\x65\xed\x47\x07\xce\xb5\xbf\xcb\x8c\x62\xc4\x14\x56\x19\xa9\x27\x82\xee\xac\x34\x3f\x80\xde\xeb\x6e\x4a\xc3\x48\xff\x8e\x9c\x97\xb6\x48\x53\xee\xd2\x82\x49\x4e\x8d\x1b\x31\x8e\xf4\xc3\x8a\x62\xc6\x92\x2b\x6f\x2e\x95\xcc\x57\x08\x6f\x68\xac\x63\x42\x90\x9c\x26\xc7\xbb\x67\x30\x4c\x30\xee\x4a\x86\x0a\x36\x35\xc1\xcf\xa7\xd3\xc0\x13\xac\x84\xba\x49\xd2\xb6\xa3\x4e\x34\xc3\x56\x72\x83\xe8\xeb\xd3\x17\x2f\x7d\x51\xcc\xde\x8e\x90\x9d\xf0\xcb\xd3\x37\xa7\xd3\xd3\x60\x9b\xd3\xb7\xb7\x17\x0d\xf4\xc2\x68\xbc\x13\x87\xae\xe6\x4a\xbe\xf6\x70\x1a\xde\x6d\x79\x95\xf3\x75\x98\x68\x6c\xfb\x9d\x5a\xb4\x6d\x17\x6b\x59\x71\xa3\x41\x09\x6f\x69\xc4\xe9\xa8\x43\x17\x20\x96\xd9\x45\xaf\x37\xa2\x5e\xf6\x17\xea\xb2\xbf\x8c\x3e\xc0\x19\xcb\x65\x10\x1d\x0c\x05\xa8\xdd\x6e\x29\x82\xa5\xa1\x30\xc0\x72\xc0\x41\x8a\x30\xc6\x5a\x71\x4f\x83\x45\x1f\xd8\x44\xab\x31\x02\x99\x32\xfc\xbd\x64\x52\x1e\x0d\x9d\xb6\xc6\x3f\x38\x6e\x30\x46\xb1\xd6\xee\x69\xde\x35\x9a\xe0\x67\xae\x1b\x65\x84\xd9\x03\x95\x69\x3f\xd2\x68\x13\xa0\x1e\xa8\x7e\x56\xb7\xbe\x09\xb9\x0f\xd4\x7e\x69\x60\xd9\x18\xb0\x20\xbd\x97\x89\xcb\xee\x12\xc9\xdb\x07\xec\xa0\xd2\x73\x62\xe2\xaf\x4a\xa5\xbd\x1b\x5a\xcb\x5b\xdd\xa7\x81\x98\xbd\x9e\xf5\x84\xf0\xc3\xd7\x26\x55\xef\x56\xe9\xcf\xca\xa9\xdf\xd8\xcf\xb2\x9f\x29\x86\x07\x53\x9f\x01\x6e\x53\xa3\x1d\x94\x1f\x99\x03\x11\xf9\x3d\x1f\xf8\xfe\x35\x69\xf0\xe9\x99\xc8\x1d\xb4\xfe\xd8\xdb\x3a\x17\xe4\x9d\x1c\xd4\x14\xee\x23\x73\x51\xff\xfe\xe2\xcf\x4a\x47\xdf\xb6\x78\x4f\x49\x72\x0e\xc2\xdf\x76\x78\xff\x27\x3b\xbc\x37\x62\xb1\xcd\xa9\xdd\x9f\x2f\xec\xc4\x70\x21\x16\xdb\xbf\x13\x76\x4c\xbb\x79\x6e\x59\xec\xe2\xf2\xb8\x2b\x2e\x73\x1d\x35\x06\xba\x67\x58\x89\x3c\x7d\xbc\x32\xf2\x99\xd2\x44\xe5\x36\x83\xdd\x4d\x97\x9f\x16\x17\x86\x23\x4b\x77\x45\xe6\x5d\x65\x3e\x5e\x0d\xf6\x8a\x0f\x9d\xdc\x56\x6f\xa5\x12\xc5\xd6\xb6\xa2\x01\xc0\x09\x45\xd9\xac\xbf\x09\xf9\xc0\x31\x94\xe5\xcf\xbe\x96\x91\x2a\xcc\xef\x8b\x97\x0c\xfb\x59\x13\x78\x88\x6b\x32\xbc\x57\xf5\xc3\x45\x07\x24\xd1\x1b\xbf\xf6\x11\xb4\x0b\x40\xfd\x3f\x4b\x39\x63\x8b\xee\x17\xf0\xb7\xad\x27\x7c\xbe\xbe\x2d\xbd\xf7\xc8\xe7\xae\x64\xee\x64\xbb\x1d\x6c\xd5\xbf\x1b\x1a\x96\x5d\xff\xb8\x33\x1c\x1d\x6e\x41\x86\x15\xd7\x7f\xf7\x0b\xeb\xe0\x96\x62\xa4\x7f\xd7\x7b\xff\x0d\x00\x00\xff\xff\x29\xf7\x5b\xb6\x59\x25\x00\x00") + +func uiTsPagesRest_explorerTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesRest_explorerTs, + "ui/ts/pages/rest_explorer.ts", + ) +} + +func uiTsPagesRest_explorerTs() (*asset, error) { + bytes, err := uiTsPagesRest_explorerTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/rest_explorer.ts", size: 9561, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsPagesStoresTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x55\x4b\x6f\xdb\x38\x10\xbe\xfb\x57\x0c\x74\x08\xa4\xac\x97\xda\xc7\x4d\x5e\x07\x9b\xa6\x45\x11\xa0\xe9\x03\x06\x7a\x09\x0c\x83\x96\x68\x8b\x09\x45\xba\x24\x65\xd7\x08\xfc\xdf\x3b\xa4\x1e\x96\x1c\x39\xc9\xad\x02\x2c\x8b\xe4\x7c\xdf\x7c\x33\x9c\x21\xe3\x18\x8c\x2a\x75\xca\x12\xd8\xd0\x35\x33\xb1\xb1\x4a\x33\x43\xac\x19\xc5\xb8\xf6\x9f\x66\x2b\xa6\x99\x4c\x19\x2e\xdb\x7c\x1a\x10\x12\xdb\xfd\x86\xcb\xb5\x89\x0b\x6e\x73\xcd\xc5\x43\xfb\x45\x32\x84\x05\x10\x5f\x9d\x85\x16\x2a\x63\xa2\xf6\xb1\x30\x96\xda\xd2\x34\x10\xc4\xc0\x75\x69\x73\xa5\x13\x78\xa7\x69\x01\x1f\x75\x29\x19\xd7\x10\x2e\x71\x44\xd6\xd5\xe8\xff\x75\x41\xd1\x51\xaa\x8a\x08\x11\x97\x97\x23\xb8\x84\xeb\xac\xe0\xf2\x3b\x67\x3b\x03\xdc\x80\xcd\xd1\x9f\xe6\x05\xd5\x7b\x40\x77\xa5\x60\xb0\x52\x1a\x6e\x54\xfa\xa8\x15\x4d\x73\x66\x80\x3a\x00\x37\x56\x53\xcb\xb7\x0c\x76\x6c\xe9\x68\xb8\xb4\x4c\xaf\x68\xca\x08\x8e\xe2\x51\x8d\xed\x90\x3f\x8d\x00\xbc\x4b\x40\xeb\x99\x4f\x53\xe3\x70\x8b\x06\xde\x0d\xfb\xb9\x11\x4a\x63\x7a\xfc\x74\x15\x21\xa8\x15\x50\x21\x6a\x08\xf1\xf8\x18\xdf\x68\xab\xb4\x6d\x44\xd6\x84\xce\x49\xbb\xb4\xa5\x1a\x7c\xae\x66\x9e\x88\x99\x04\xee\x7c\x06\xc9\xec\x38\x4b\x6a\xe4\x14\x24\x8a\x38\xbb\x1e\x46\x93\x2e\x75\x2a\xa8\x31\x98\x15\x69\xb5\x12\x82\x69\xe0\xc5\x46\xb0\x82\x49\x6b\x60\xd1\xec\xe7\x5d\xf5\xdf\xb1\xaa\xe4\x81\xcb\xf0\x96\xda\x2a\x42\x9e\xc2\xe2\x47\xc9\xf4\xfe\xc3\x16\x5f\x77\x33\x54\xf2\xf7\x5f\xf8\x4c\x4e\x6c\x17\x3e\xc3\x5b\x2a\x12\x90\x65\xb1\x64\x7a\x32\x6a\x2c\xca\xa5\x40\x96\x54\x49\xdc\x94\x32\x45\xbd\x61\xd4\xba\x82\x7e\x0a\xc8\x37\xe7\xaa\x89\xc6\x3d\x36\xe7\x86\xb4\xe4\xe8\xdd\x30\x7b\x5b\x8f\x42\x24\x9a\x5e\x0d\x33\x8c\x3b\xe1\x93\x5e\x04\x2d\xf9\xe1\x44\xa1\x92\xa5\x14\x8a\x66\x3d\x79\xa9\x60\x54\xb7\x0e\xfb\x6a\x3a\x4c\x1d\xbe\xba\x8a\x8e\x75\xf4\x15\x5b\x0f\x4c\xae\x76\x40\x41\x60\x65\x36\x25\x43\x53\x5f\xa1\xe6\x58\x39\x75\xed\x0c\x57\x8f\xa7\x69\x84\xd5\x06\xab\x52\x22\x89\x92\x2e\xbb\x75\xb0\x3d\xf5\x9a\xd9\x52\x4b\x5f\x3b\x37\x1d\x8b\xbe\xee\xe7\x6c\xae\xe2\x87\x78\x8a\x30\xc8\xf8\x36\x18\xc3\x7d\xbb\x02\x6e\x32\xff\x07\xe7\x82\xba\x54\x3f\x61\x88\x41\x34\xee\x5b\x94\xe2\x04\x05\xf0\x65\xf9\xc0\x52\x4b\x1e\xd9\xde\x84\xfd\x2d\xcc\x98\x49\xc3\x28\x22\x06\x45\x85\x11\x29\xe8\x26\x6c\xa4\x55\x96\xb7\x59\x57\x5c\xf5\xb8\x76\x72\x40\x57\x22\x03\x6c\xf7\x35\x70\x3e\x39\xc1\x1d\x43\x13\x1c\x35\x3e\x01\x0a\x4a\x3c\x13\xa9\x4e\x32\x9e\xc1\x61\x7c\x02\x82\xe1\x54\xb4\x8b\x04\x2b\xdd\xd8\x30\xb8\x90\x4b\xb3\x99\x5c\x2c\x4b\x21\x26\xd5\x77\x3f\x33\x1d\x36\x7a\x9f\xe3\x99\x3a\xad\x8f\xe8\x38\x80\x3f\xa0\x96\x8c\x5f\xc1\xdc\x4b\xc3\x5d\x5e\xf1\x75\x82\xfc\x5a\x95\xd8\x74\x87\x26\xeb\x49\xc7\x7c\xd0\x41\x80\xd5\x0d\xc1\x2b\xae\x25\x1e\x2f\x95\x67\x1f\xbe\x1b\xfa\x97\x4b\xc1\x0b\x1a\x82\xcf\x68\x93\x0c\xc2\xce\x68\xd9\xe1\xd1\x83\x87\x6f\x86\x81\x9a\x13\x20\xad\x66\x89\x64\x76\xa7\xf4\xa3\xf3\xfb\xe7\xb0\x45\xfd\xff\xcc\xc1\x3c\x8a\xfa\x7b\x7c\xe8\xa9\x98\x77\x46\xf3\xb7\x75\xf0\xb1\x81\xdd\xb9\x9f\x31\x8b\xb7\x54\x75\xf0\x83\xc1\xdb\x00\x3b\xd4\x0b\x7b\xad\x83\x7f\x67\x03\xb7\x97\x0d\x96\xd3\xb4\xd9\x3b\xb2\xa1\x78\xfb\x86\x41\x53\xe7\x41\x27\x71\x6f\xef\x78\xa8\x3a\xed\x59\xcb\x0f\xb5\x87\x43\xfe\xdb\x22\x13\x38\x5f\xb6\xfd\x1e\x7e\x5f\xe5\xbc\xed\xfe\xde\x7e\xbe\xb0\x9d\xee\x77\x18\xfd\x0a\x00\x00\xff\xff\x2a\xcc\x4b\x96\x07\x09\x00\x00") + +func uiTsPagesStoresTsBytes() ([]byte, error) { + return bindataRead( + _uiTsPagesStoresTs, + "ui/ts/pages/stores.ts", + ) +} + +func uiTsPagesStoresTs() (*asset, error) { + bytes, err := uiTsPagesStoresTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/pages/stores.ts", size: 2311, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTsconfigJson = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x84\x92\x41\x4b\x3b\x31\x10\xc5\xef\xfd\x14\x65\xcf\x7f\x12\x0a\x7f\x2f\xde\x44\x7a\x10\x94\x7e\x00\x91\x12\xb7\xd3\x36\x25\xc9\x84\x99\x49\x51\xa4\xdf\xdd\x49\x5a\xb1\x75\xbb\xba\x97\x85\xfc\xde\x7b\x93\x79\xbb\x1f\x93\xa9\x3e\xdd\x1e\x88\x3d\xa6\xee\x76\xda\xcd\xcc\x7f\x33\xeb\xfe\x1d\xcf\x7b\x8c\xd9\x07\xa0\x45\x16\xc5\xac\xfc\x68\x68\x50\x1c\x6d\x40\xaa\x07\xf8\xe6\xe4\x68\x20\xe2\xaa\x04\xa8\x40\xfd\x11\xd3\x8e\xcf\xe9\x0a\xfa\xe0\xc8\xc9\x71\xde\xda\x05\x86\x33\x9a\xf0\x21\xe6\xe0\x7b\x2f\x77\xe9\xfd\x2a\x9f\x47\x2f\x8b\x34\x27\x42\x52\x2e\x54\xce\x31\x41\xc4\x3d\xdc\xeb\x58\x48\xc2\x43\x9e\xf0\xd1\xbf\x5e\x89\xc5\xd2\x16\x31\xb6\x78\xbb\x63\xeb\x72\x36\x97\xb7\x66\x2c\xd4\xc3\x93\xcb\x5f\xe6\x86\x0e\xa7\x9e\xd6\x5a\x52\x9d\xf6\xfc\x6d\x30\x76\x0b\x6e\x05\x64\xe4\x22\xc7\xb4\xec\x9f\x67\xda\x18\x04\xb6\x49\x5f\x4b\x16\x27\x85\xc7\x24\x95\xfe\x02\x91\xfe\x0a\x10\x1f\x81\x81\x3c\x0c\x15\xf5\x6b\x63\xaa\xc5\xd9\x08\x42\xbe\x1f\x4a\xb2\xdb\x00\xdb\x0d\xb9\xbc\x1d\x61\x75\x87\x31\x5f\xbb\xdf\x18\xd4\x1f\xc5\x2b\x1f\xa1\xea\x93\x25\xbc\xe5\xa0\x09\x4d\xd3\x24\x2f\x93\xc3\xe4\x33\x00\x00\xff\xff\x2f\x17\x33\x4e\xc3\x02\x00\x00") + +func uiTsTsconfigJsonBytes() ([]byte, error) { + return bindataRead( + _uiTsTsconfigJson, + "ui/ts/tsconfig.json", + ) +} + +func uiTsTsconfigJson() (*asset, error) { + bytes, err := uiTsTsconfigJsonBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/tsconfig.json", size: 707, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTypingsD3D3DTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\xeb\x72\xdc\xb6\xb2\x28\xfc\x3f\x4f\xc1\x4a\x55\x6a\x8d\x52\xb2\x9c\x4b\x7d\x5f\x9d\x92\xb3\xa3\xe3\xf8\x96\xec\x6d\x27\xde\x1e\x39\x95\xac\xd4\xaa\x55\x18\x12\x33\xc3\x98\x43\x4e\x40\x52\xd2\x24\xdb\x0f\x74\x9e\xe3\xbc\xd8\x41\x37\x00\x12\x04\x01\x10\xe4\x8c\x2c\x59\x91\xaa\x6c\xcd\x08\x40\xdf\x70\xeb\x6e\x34\x1a\x0f\x1f\x46\xe7\xbb\x2d\x8d\x12\xba\x4c\xf3\xb4\x4a\x8b\xbc\x8c\x96\x05\x8b\x92\xaf\xff\x73\xfe\x09\x2f\x7c\xcd\x8a\xdf\x69\x5c\x9d\x46\xeb\xaa\xda\x9e\x3e\x7c\x98\x7c\xfd\x7b\x79\x52\xb0\xd5\x43\x28\x7c\xaa\x35\x5a\xec\x4e\xa3\xef\x0a\x96\x96\xd1\xaf\x24\x7f\x57\x5c\x44\xdf\x40\x8b\x92\x37\x59\xa5\xd5\xba\x5e\x9c\xc4\xc5\xe6\xe1\x02\x2a\xec\xb0\xfc\x5b\x03\x80\xc0\xe0\xae\xff\x50\xd6\xa5\xd9\x0e\x08\x4e\x3e\xf9\x24\xa1\x71\x46\x18\x8d\x36\x45\x52\x67\x34\x7a\xfa\x75\xf4\xd7\x27\x11\xff\xa1\x57\xdb\x82\x55\x51\x9a\x57\x94\x2d\x49\x4c\xa3\x39\xcd\x38\x0b\x05\x2b\x65\x05\xf8\x79\xf8\xf9\xe7\xcd\xe7\xcf\x65\x8d\x88\xe4\x11\xff\xb0\xa1\x79\x15\x2d\x59\xb1\x89\xaa\x35\x8d\xe2\x9a\x31\xf8\x43\x52\xc4\x35\x94\xb4\xad\x1e\x36\x1f\x4b\x6c\x7e\xaa\x81\x37\x51\x08\x34\x6f\x68\x55\x33\x2e\x2b\x80\x4b\x37\xdb\x6a\x27\x5b\x72\xfe\xbb\x35\x1f\x76\xbe\xce\x8e\x4e\xa3\x7f\xcf\x55\xcd\x6f\x48\xbe\xfb\xf6\xd1\x00\x26\x51\x5b\x60\x5a\xa6\xac\xac\x1a\xc6\xaa\x35\xa9\xa2\x0d\xa9\xe2\x35\x15\xc5\xe5\x96\xc6\xe9\x32\xa5\x89\x24\x86\x77\x7e\x59\xb1\x34\x5f\x75\x41\x1a\x08\xfe\xf7\x96\x30\xb2\x69\x9b\x34\xe4\x45\x73\x6c\x1c\x55\x85\xc0\xe2\x65\x4c\x35\x3f\x95\x28\xf7\x63\xb4\xe5\x24\x2f\x12\x1a\x42\xbe\x12\xca\x8f\xbc\x7e\x2b\xa1\x42\xb2\xe5\x25\x5d\xd6\x3e\x8d\x9e\x5d\xf0\x5f\xe7\x84\xad\x68\xe5\x23\xff\xfd\xa3\x4f\xfc\x83\x6f\x53\x67\x55\xba\xcd\x1a\x3a\xca\x29\x63\xf0\x71\x96\x0d\x0f\x43\x25\x33\x92\x65\x2d\xb2\x76\x5c\x38\x46\xc5\x47\x3c\x1c\x08\x63\x64\x17\x15\xcb\x86\xdb\x11\x63\xa3\x8c\x1e\xab\xd6\xb9\x36\x4a\xca\x71\xc3\xa4\xec\x8c\x93\xdf\xfe\x35\x30\x52\xf0\xd7\x27\xf6\xd5\xec\xe9\xd7\x08\x89\x17\x54\x34\x4f\x4a\x01\x57\xeb\xf3\xe4\xea\x34\xca\xeb\xcd\x82\xb2\x16\x64\xb2\xeb\xff\x2d\xce\x52\xde\xf0\x17\x57\xc1\xaf\xfd\x82\x8a\x91\xbc\xcc\x48\x45\x55\xd1\x6f\xff\x6a\x0b\xcb\x98\x64\xb4\xdf\xa6\x2c\x6a\x16\x53\xa4\xf1\x54\x91\xde\x96\x5a\x48\xb5\x50\xfa\x8e\xee\x9e\x70\xd1\xf7\x0b\x48\x56\xfd\x17\xdd\x9d\x9d\x46\x8b\xa2\xc8\x28\xc9\x35\x1e\x2a\x96\x39\x8a\x36\xb4\x22\x8e\xa2\x72\x9d\x2e\x5d\x10\x2b\xbe\xe9\xa8\x71\xe9\xef\xa0\xef\x48\x49\x9b\xde\x19\xde\x7b\x9e\x30\xca\x45\x1a\x91\x68\x41\xd7\xe4\x22\xd5\x26\x9a\x36\x96\x54\x19\xdf\x63\xe5\xa7\x13\xf5\xe1\x91\x03\xee\xe3\x38\xa6\x65\xd9\x59\x3f\xea\x92\xb2\x88\xe2\x78\x81\x3d\x1e\x49\x26\xdd\xed\x47\xc3\x49\x8d\x4e\x73\xd1\x5f\x6c\xb6\xb0\x0d\x57\x97\x45\x74\x41\xb2\x9a\x0a\x05\xa2\xe4\x42\xe1\xa2\x3a\xd1\x6a\xaa\xed\xef\xc1\x97\x51\xba\xe4\x0c\x73\x5d\x21\x13\x24\xf2\x8d\x77\x71\x1c\xf1\x56\x6d\xc9\x0a\xc5\xc2\xf4\xc2\x2f\x5a\x58\x1a\x54\x39\x5d\x49\xf4\x1c\xf7\x39\x24\xa1\x5f\xbc\xe0\x3d\x11\x17\x79\x62\x96\xb7\xec\x92\x32\xe6\x3d\xc6\x49\xfe\xe6\xfc\xdb\x19\x39\x8d\xce\x8f\xa3\x05\xff\xff\xa8\x3f\xec\x0e\xc8\xbf\x85\x4b\xb7\x70\xae\x97\xff\x84\x4e\x14\xc0\xf3\x94\x83\x85\x61\xb6\xe1\xfa\xd9\xa6\xde\x08\x14\x7c\x74\x81\x3e\x85\x4b\xaf\x97\x6e\xc6\xe4\x0a\x8b\x0b\x2a\x61\xda\x1e\xd1\x54\xda\x90\x2d\x8c\xe7\x92\x0b\x84\xcb\x61\x59\xe7\xce\x41\xcb\x69\xf8\x86\x13\xfe\x96\x73\xc0\xf8\x6c\x39\xff\xed\x5f\xc7\xd0\xfa\x34\x9a\x5d\x9c\x21\x4b\xe9\x99\xe2\xe7\x28\xfa\x8f\x6f\xa3\xb7\x9c\xbd\xb7\x37\xc0\x99\x41\x71\x4b\x2e\xa7\xe7\x7c\x98\x1e\x72\x75\xf3\x92\x26\x57\xd7\x21\xe9\x83\x73\x66\x50\x3c\x56\xd2\xb2\xe7\x09\xff\x7e\x1b\xa4\x8e\xfb\x4a\xe5\x12\x3c\x4c\xd7\x46\xd6\xfa\xee\x7c\x23\xdc\xf5\xa9\xee\x0a\xdf\x4d\x20\xac\xa9\x35\xdf\x14\x51\x8d\xe3\x34\x71\xe5\x4b\x51\x83\x8a\x18\x8e\xaa\xf2\x03\x8a\x9d\x13\xa1\x53\xdf\x13\xb8\x1c\xe7\x21\x7b\xc5\x35\xf2\xd5\xa1\x57\x10\xab\x14\xb5\x51\xa4\x11\xc6\x4d\x70\xae\x27\xa5\x31\xd7\x96\x38\x81\x37\x2e\x7e\xa0\xe2\xd0\xf2\xbf\x66\x26\xbb\xc4\xef\xd1\x19\x1b\x9a\xa4\x4e\xf2\xa2\x19\x54\xf9\xe2\xe4\xff\x7b\xf0\x47\x4d\xf2\x2a\xcd\xe8\xd1\xc9\x07\xed\x17\xa0\xed\xd0\x3d\xf3\xe1\x38\x36\x39\x99\xd8\x4d\x24\x52\xb4\xa0\xea\x47\x50\xf9\xd3\xed\x4e\x49\xfb\xfe\x5d\xb3\x8d\xce\x39\xf7\x0d\x36\x5e\x93\xa1\x52\x69\x63\x49\xd5\xe2\xbd\xd1\x61\xeb\x38\xda\x76\x36\x66\x3f\x8f\x2f\x8b\x98\xc8\x7e\x49\x73\x6e\x3f\xa0\x51\xbf\x2d\x52\x69\x43\x5c\xe1\x4e\xa1\xc8\xde\x10\xfe\x77\xfe\x4f\x09\xa0\x60\x09\x65\x7b\x33\x7d\x15\xfd\x8c\x7b\x52\x53\x45\x5a\x2f\x1d\x6a\xfa\xcd\xb2\xe2\x32\x7a\xd5\x51\xdc\x60\x44\x21\xb2\xb2\x5e\x94\xd4\xd2\x64\x9d\xae\x57\xd1\xab\xce\x46\xe8\x6c\xa3\x19\x67\x69\xc9\x6d\xbc\xee\x2c\xb8\x42\x15\x88\x93\xd0\x28\x41\xc7\x1c\xfa\x6a\xdd\xea\x44\x43\x83\xeb\xb6\x09\xfe\x7a\xe5\xbe\x5a\x4f\x95\xfb\x4b\xba\xbc\x97\xfd\x0d\xc9\xfe\x0d\x6f\x7b\x70\xe1\x7f\x87\xa0\xa3\xba\x04\xbf\x21\xec\x00\xe8\xc8\x28\x98\x7f\xf5\x94\x95\xa4\xdb\x63\x60\xdf\x12\xd4\x17\x6c\xa6\x9a\xf1\x35\x32\x21\x15\x37\x7a\x49\xbe\xe3\x96\x4b\x9e\xd0\xab\xce\x1a\xc9\xff\x7c\x84\x85\x2e\xa2\xdf\x70\x15\xba\xd8\xa4\x7f\x8a\x41\x83\x43\x40\xdf\xc0\xc2\x57\x7e\xa6\x00\x59\xd5\xba\x75\xbd\x5c\x66\x34\x5c\x91\x7e\x43\x05\x29\xfa\x46\xda\x78\x30\x39\xf3\xbc\x54\x7a\x67\xf5\x1a\xc8\x3f\x0d\xd7\x7d\x18\x35\xc6\xbc\xaa\x25\x01\xc9\x9a\x71\x81\xf3\x04\x11\x36\x42\xc2\xb3\x10\x45\x51\xb9\x2e\xea\x2c\x89\x16\x54\x6e\x6b\x7c\x36\xa5\xd6\x0e\xdc\x52\xb6\xe1\x3b\xaf\x90\x02\xef\x16\x18\x79\x12\x99\xfc\x7e\x24\x7f\xbb\x24\x73\x0e\xce\xcc\x6d\x51\xc2\xee\x7d\xc1\x75\x41\xb2\xe0\xfb\xa9\xe8\xf1\x66\xfc\x0f\x6e\xd8\x92\x33\x74\x06\x57\x0a\xa0\x8d\xde\x3f\xd3\xed\xec\xe4\xe4\x04\x9a\x04\xd2\xf7\x9a\xb0\x52\x0c\xa6\x55\x7a\x41\xf3\xe8\xab\xa7\x11\x59\x2e\xd3\x9c\x0a\x44\x7c\x35\xd8\x48\x6f\xe4\x71\x44\x4a\x71\x7e\xc7\xc5\xb5\xd8\x45\xf3\x9f\x5f\xfc\xa3\xd4\x6a\x91\x8a\x57\x5b\x70\x69\x79\xb9\x69\x0f\x00\x3d\xa8\x6c\xac\x35\x75\x66\x2d\x08\xcd\x81\xef\x99\x33\x5a\x17\x68\x83\x2f\x40\xf2\x1b\xc2\xa1\x5f\x45\xe7\x97\x45\x94\xa4\x7c\xe4\x94\x1c\x25\xc9\xda\x15\xd9\xdb\x15\x4d\xe1\x4c\x80\x09\xec\x0f\xe1\xa6\x2d\x5b\x52\xf5\xd1\x5c\x6f\x33\x5e\x04\xc4\x27\xbf\x93\x18\xfc\xab\x5b\x92\x06\x18\x0f\x16\x58\xbc\x31\x4b\x29\x8e\x28\x80\xa1\x37\x64\xd2\x7f\x88\x74\xfe\xf6\xaf\xb6\x39\x47\xfc\xd5\x83\xe6\xf8\x4a\x10\x03\xdb\x05\x25\x7c\xdf\xe8\x42\xd1\xa6\x10\x50\xa8\x4d\x20\x25\x00\xb7\x08\x5e\xa6\x65\x85\x23\xf2\x1d\xdd\x95\x6a\x75\xe3\xab\x67\x9c\x92\x8a\x8f\xd1\x80\x95\x0e\x2d\x0b\x45\x72\xb1\xf8\x5d\x9c\xd5\x14\xd1\x8a\x36\x80\x1b\x1f\x2a\x2b\x36\x36\xb2\x01\xf7\x0c\x6d\x0c\xb1\x26\x8b\x81\x16\x40\xb4\x84\x7b\x1d\x64\x0f\x90\x2c\x8a\x75\xa2\xbd\x23\x4d\x17\xf3\x03\xb1\x21\xab\x41\x71\x4d\x32\x97\x58\x70\x44\x38\xb9\x90\x34\x04\xb3\xb1\xa1\x6c\x45\xdb\x53\x4d\x31\xad\xe1\xcc\xa1\x88\x8a\x9c\x0e\xbb\x96\x1a\xba\x91\x5a\x84\x66\x37\xdc\x78\x01\xac\xad\x8a\xae\xe1\xa9\xfc\x82\xe6\x94\x89\x33\x17\xbe\x16\xac\xa8\xb4\xd0\x28\x4b\x63\xd9\x57\x27\x36\x4c\x58\x77\xf8\x74\x75\x18\xba\x38\xd8\xfd\xe2\xa4\xdb\xd0\x00\xa3\x4e\x54\xab\x62\xdb\x6a\x82\x2b\x05\x1b\x3a\x4e\x40\xaf\x0a\x57\x43\xba\x8d\xe6\xf0\xdf\x82\x56\x97\x94\xef\x20\xb8\x1a\x74\xdd\xff\x06\x87\xf0\x33\x03\x8c\xad\xea\x06\x60\xfa\xaa\x9b\x2e\xdb\xa9\x52\x08\x64\x9f\xb0\x4a\xd3\x84\xe1\xeb\xed\x11\x14\x27\x46\x97\x54\xb1\x3d\x1b\x23\xb8\xf7\xfe\xad\x26\xca\xe9\x25\xff\xc7\xd7\x82\x62\x0b\xbc\xd8\x0f\x06\xa1\x02\xc4\x87\xfc\xc8\x7f\xbb\x95\xc0\x3f\x6a\x80\xc3\xbb\x82\x8a\xf3\x58\xa9\x5c\xff\xf2\xea\xe5\xf7\x55\xb5\x95\xe5\xd6\x41\x7f\xb5\x66\xc3\x43\x5e\xdf\x1b\xcb\x5d\x1e\xaf\x59\x91\x17\x75\xc9\xd1\x09\xc4\x78\x1e\xd6\x9c\xc6\xd7\x2c\x0b\xe9\x7a\x5e\x2d\x7a\xcb\xff\xa1\x7e\x89\x70\xec\xf5\x62\x92\x65\x0b\x12\xbf\x8b\x9e\x4b\x85\x1f\x5a\xa4\xf9\x45\xf1\x8e\x46\x97\x6b\xde\x9d\x0d\xd3\x70\xa4\x56\x90\x04\x4d\x34\x31\x30\x14\x7d\x24\xcd\x4a\x6f\x5f\x73\x62\x4e\x1b\x75\x4b\x61\xe4\xdd\x3b\x43\xf9\x74\xe5\x88\x06\xc3\x45\x91\x26\xbc\x5b\x7e\x59\xb3\xa1\x99\x72\xa3\xc2\xdb\x70\xf5\x29\x7a\xf5\xc3\xab\x67\x78\xbe\x7d\x0b\x65\x0d\x04\xee\x2f\x79\xe7\x54\x6b\xa7\x46\x45\xaf\x38\x71\x69\x66\xd7\x19\x79\x61\x48\x78\x97\x1b\xd8\x01\xfa\xea\x66\x07\x3a\x07\xbe\x2d\xf2\xb2\xe9\x8c\x91\xa3\xfc\x9a\x65\xf3\x11\x8f\xe3\x60\xc1\x06\x0c\xe2\xff\x9c\xff\xf4\x63\xb4\xc8\x8a\x85\x4f\xb1\xf2\xc8\xf4\xfa\x04\xa4\x09\xe7\xf7\x12\x0c\x44\xf7\x48\xa3\x8c\x15\x4c\x7a\x62\x1a\xa7\x4c\x2b\x15\xf8\xd0\x91\x8b\x43\x18\x79\xf4\xfd\xf9\xab\x97\x4d\xcc\x1c\x57\xba\xc8\x0a\x3e\xd8\xb7\xb9\x4d\x40\xdc\xdc\x08\xd0\x5d\xd1\x87\x8a\xff\x7a\xbb\xc0\x60\x19\x7e\x42\xa6\xfb\x53\xc9\xe5\xd4\x09\xff\x41\x84\x75\x27\xe6\xff\xa0\xa4\x87\x57\x80\x1c\x76\x44\xef\x98\xbf\x7d\xeb\xc1\xba\x82\xc9\x37\x66\x28\x3e\x97\x6c\x8d\x5f\x14\xa2\xb8\xd8\x6c\xc8\x83\x92\x02\x5b\xe0\xac\x97\x16\xd9\xec\xc9\xfc\xe7\x23\xdc\x95\xac\xcb\x43\x5c\x5e\x70\xec\xe5\x85\x33\x08\x4e\xeb\x00\xc2\x16\x69\xc5\x08\xdb\x45\xf1\x9a\xb0\x3e\x2a\x40\xc2\x4d\x6d\x56\x82\x95\x90\xa5\x5c\x80\x25\xdd\xa4\x71\x91\x71\xa1\x72\x91\x5d\x42\x1c\x2e\xbd\xa0\x56\x6d\x3f\x09\xa6\x23\xaa\xc8\xc2\xc2\xe6\xb9\x62\xd3\xaa\xe5\x34\xd0\xed\xc0\xcf\x61\x92\xa9\x01\x60\xed\xca\x0a\x47\x39\xd4\x3b\x81\xff\x5c\x80\xe6\x10\x2b\x6a\x05\x20\xa3\x48\xb1\xc2\x09\xfe\x0f\xd1\x94\x3a\x1c\x0d\xcc\x0f\x10\xbf\xb8\x2d\x32\xb4\xf3\x9a\xe8\x3b\x1b\xd8\xb4\xad\x79\x2a\xdc\x8e\xe8\xa6\x3c\x01\xe0\x1a\x94\x40\x3c\xbd\xd0\x00\x2b\xa2\x1f\xb1\xd6\x01\xd0\x01\xcc\xd5\x30\xbe\x37\x45\x9d\x27\x07\x40\x27\xa6\xe0\x10\x36\x11\xd6\x7d\x00\x74\x6f\x5e\x7c\x17\xc1\xe0\x1f\xe6\x6f\xb5\x38\x00\xba\xef\xe7\x2f\xc3\xd0\x7d\x5f\x66\x87\x40\xf7\x24\x14\x5d\x7c\x08\x74\x2f\x3f\x27\x9f\x2f\x3e\x0f\xc3\xf8\x92\x1c\x42\x9e\xd2\xad\x57\x2c\xc3\x66\x1f\x3a\xf4\x0e\x82\x96\x2f\xb2\xb0\xc6\x4a\x87\xe6\x00\xda\x9f\x16\xe2\x12\xd3\xde\x78\xbf\x7a\xaa\x0e\x1f\x9a\x63\x8f\x21\xdc\xe7\xaa\xe2\x04\xf4\xe7\x6b\xda\xba\xf8\x17\x75\x9a\x55\x0f\xd2\x5c\x03\x0e\xc7\x9c\x04\x0e\x32\xd3\x21\xc9\x17\x70\xf0\xa4\xe1\xd7\x70\x3f\x47\x08\x3e\x87\x34\xd9\x15\xb5\x5d\xc6\x19\x16\x9d\xca\x2a\x27\xe2\x97\x73\xd9\xbf\x58\xfd\xc3\xbe\xea\x5f\xf0\x95\x84\x97\x9e\xf0\x7f\xfe\x03\x56\x75\x42\x27\xfd\x7b\x8e\x51\x2e\xce\x50\x4f\x65\x9b\x01\x37\x1b\x69\x4e\x8a\x41\xa7\x81\x8e\x22\xb0\x7f\x4a\x44\xa4\x84\x70\x1e\xe3\xf0\xab\xaf\x1f\x29\x07\x0d\xc3\x2e\x93\x40\xda\x3f\x72\xc0\xb5\xfd\x34\x4a\x54\x9d\x35\x55\xb5\x93\xb3\x19\xce\xa8\xce\x31\xb4\x7e\xfd\xc0\x22\x22\xed\x7a\xd9\xfc\x87\x68\xcb\xe8\x92\x0f\xd4\xa5\xd4\xc3\x5a\x1f\x92\xf0\xf6\x93\xca\xf8\x33\xaf\x1f\xa7\xa5\xe3\xc4\x5c\xd0\xf9\x1a\x41\x76\x09\x3b\x6e\x1b\xea\xfe\xce\x57\x94\xd3\x1a\x8b\x06\x4e\x85\x02\xce\x4e\xf8\xce\x06\xb2\xe7\x03\x1c\xc8\x49\xbe\xe6\x3a\xd1\x02\xd4\x27\x1b\x15\xb2\xf2\xe9\x08\x41\xb0\xa2\xa8\x2c\xd7\xec\x7a\x37\xa7\x78\xa1\xf7\x9e\x1d\xdc\x50\x1c\x32\x10\xcf\x31\x80\x79\x0b\xbc\x30\xba\x4a\x4b\x3e\xc5\xe0\x32\x1a\xd9\x70\x0d\x16\x6e\x86\x88\x1e\xa1\x5e\xb3\x41\xd4\x31\x71\x21\x9d\x30\x4b\x4c\xc6\xd5\xcf\x95\xd0\xa2\x9d\xc5\x59\x9a\xbf\xf3\x14\x7b\xdb\x6e\x32\x60\xde\x56\xfc\x7e\xc8\x0a\xfc\xef\x9a\x64\x30\xba\x7a\x17\xf4\xb8\x4c\x7c\x52\xf8\x03\xdb\xed\x66\x50\x4f\x9b\x12\x7f\x45\x28\xc8\x86\x18\x6e\x6a\x70\x1d\xb1\xfd\xfa\x3e\xc8\x56\x92\xa7\xa8\xed\x82\x4a\x09\xba\xc3\x9b\x75\x40\x8e\xc5\x96\x5c\x30\x2a\x6d\x43\x87\x37\x84\xf0\x3a\xfd\x6e\xd0\x71\x64\x9c\xf3\xc3\xbc\x7d\xfa\xf5\x89\xb6\xf6\xb6\x1f\xdd\x81\x85\x39\x87\x56\xe3\x25\x3d\x3c\x07\x68\xb4\x24\xfb\xc9\x14\xa8\x46\x83\x4e\x7a\x27\xcc\xe8\x32\xad\xcc\x5b\x7f\x7c\x5a\xaf\x30\x2c\x7c\x01\x66\x4c\x9e\xd3\xcc\xdc\xe0\x2d\xbd\x36\x63\xed\xa2\xb0\x6a\x3f\x2e\xb4\x65\x81\x4b\xe2\x09\xf2\xc1\xb1\xe3\x87\x41\xf7\xb8\x9b\xec\xc5\x0e\xed\x28\x15\x4f\xd2\x12\x2f\x8a\x6d\xb7\x58\x0d\x7a\xb1\xa2\x36\xbe\x3c\xd4\xb9\x4f\x6b\x4c\x02\x1b\x9d\xcf\xda\x57\xeb\x38\xc0\xd3\x14\x02\xd3\xc6\xcf\xba\x15\x7a\xdc\x7e\xcc\x34\xf9\x0b\xf6\x38\xb8\x69\xc2\x6f\xe8\xb8\x06\xe1\xbb\x48\x1b\x21\xf9\xb9\x57\xf2\xe5\x24\xc9\x2b\x98\xb6\x59\xb2\xe6\xfb\xe8\xfa\x38\x2a\x09\x5f\x52\x08\x2e\x1d\x25\x4e\x9a\x0c\xe2\xe2\x72\xb8\xbe\x95\x85\xf6\x57\xe9\xed\xaf\xf9\xd4\xfe\x9a\x5f\x7b\x7f\xf5\x48\x0b\xef\x2f\xff\xaa\x96\x91\x29\xab\xda\xcb\xc7\x3d\x98\x36\x66\xb2\x56\xdc\xc4\xbe\x52\x09\xf6\x38\xb8\x69\x92\x6f\xe8\xb8\x36\xc9\xf7\x49\xd3\x24\xbf\xa2\xc5\x69\xf4\x82\x16\x27\xfc\x5f\xe7\xaf\x1b\xfc\xf3\x06\xfe\xee\xd4\x8c\x57\x54\x5e\xa1\xde\x14\x5c\x6d\x8d\xb6\x85\xd8\xad\xb8\x52\x93\x89\xa8\x13\x88\x17\xec\x30\x82\xe1\x4b\xd4\xde\x8f\x08\x64\xd6\xd4\x51\xc1\x23\xfd\x03\x71\x07\x11\x55\x51\x43\x18\x93\x24\xa2\x9c\x48\x05\x42\xa1\xa5\x9b\x0e\xa0\xc4\x41\xca\x0f\xa6\x3e\x20\xef\x48\x95\x9a\xf1\x70\x1c\x31\x4d\xeb\x34\xaa\xea\xb7\x40\x7f\xe2\xe5\xec\x32\x2d\x69\xdb\x42\x37\x41\xc0\xfd\x17\x06\x49\x53\xce\xa1\x75\xc1\xbe\x79\x73\x1c\x9d\x7f\xab\xb4\xf3\xd9\x96\x1b\x40\xa8\x7d\xc0\x15\x4e\xed\xdb\xa3\x5e\xbb\xb6\x91\xaa\xaa\x4e\x5c\xce\x35\x99\x60\x80\x4d\x77\x3e\x82\xc6\xfc\x8a\x6c\x2d\x57\xf3\x01\x66\x21\xad\xee\xbf\xa2\xdf\xde\xd1\x9d\x1a\xbf\xff\x82\x6b\x77\xd1\x7b\xd9\xf2\xdc\xd2\x0e\x11\x89\x42\x4f\x2d\x22\x5d\x09\x18\xef\x33\x5c\xe9\x18\x02\x9d\x9e\xc3\xc1\x93\x22\xeb\x5c\x86\x8c\x9e\x59\x4c\x2c\x0b\x48\x6d\x72\x95\xb4\x77\x1a\x0c\x92\x98\xd3\xca\x21\x89\x0e\xad\x50\xcd\x01\x38\x49\xb9\x7e\x5b\xc5\x6b\x88\x67\x02\xa5\xb2\x6c\xe3\xdb\x40\x3b\x91\xa5\x6d\x7d\x46\x17\x9c\x85\x59\x85\x59\x05\xe4\x91\x99\xf0\xc3\xcb\x2f\x1c\x0e\x9a\x1f\x9d\xc8\x28\xbd\xfd\x1f\x75\x51\xd1\x19\x47\xa2\x2d\x2f\xa6\xa6\x0f\x5e\xdd\x5e\x14\xc8\x0c\x07\x0f\x17\x27\x4a\x4d\x5e\x97\x3f\x8e\x12\x3e\x39\x77\x5a\x18\xcc\x86\xb0\x77\xba\x59\x08\xde\xfa\xae\x7c\x96\x59\x5d\xae\x67\xbd\xa2\xf7\x2d\xfa\x46\x5d\x86\x5a\x0e\x3d\xba\x65\x09\xdc\xa0\xb3\xab\x96\x82\xdc\x11\x78\xee\xcc\xaf\x20\xa5\xac\xf1\xfb\x9b\xbc\x0a\xdf\x0c\xe0\x8e\x10\xc1\x1e\x35\x64\xa3\x1b\x04\xa6\xcc\x7b\x15\xe0\x14\x80\x9b\x8a\xda\x92\xd4\xa9\xff\xde\x4b\xad\x6e\x66\x3b\x53\x0c\xe0\x3a\x02\xce\x74\x6d\xb5\x02\xb7\x00\x5f\x0b\x2f\x28\x5e\x53\x6f\x6e\x57\x41\xf4\x2c\x38\x9d\xb6\x5b\x56\x6c\x59\x0a\x0e\x12\x69\xb5\x26\x02\x84\x75\x01\x92\x6e\xfb\x59\x32\xe2\x62\x11\xa0\x91\x2e\x8a\x72\xb7\x59\x14\x99\x15\x30\x96\x84\xe5\x5d\xf8\x65\xcd\x9c\x12\x78\x41\x2b\x38\x5c\xe1\x13\xb7\x39\x8f\x5a\x53\x92\xd8\x4f\x59\x44\x49\x48\xa4\x9f\x16\xfe\x09\x46\xa3\x66\x3e\xd9\x91\x60\x3b\x03\x8a\xf4\x20\xc1\x34\x8d\x7e\x84\xff\x38\x20\xd1\xac\x17\x62\x0a\x9d\xe6\x55\x14\x0c\x73\xd9\x66\xb2\xdb\x72\xa6\x5c\x3f\x1b\xa5\x9f\x0d\xd5\x5a\x14\x6b\x17\x5f\x44\xab\x06\x4e\x30\xf3\xc7\x91\xdc\xd0\x1a\x59\x84\x1d\xa4\x6a\xe3\x04\x4f\x93\xcf\x1d\x86\x3f\x1c\xe7\x9e\xe3\x1c\x0e\x1d\x24\x2a\x07\x47\x1f\xac\x8d\x97\xd1\x9d\xd7\x80\x6d\xfc\x7d\xd6\x03\x70\xbb\xd8\xf1\xcc\xfc\x7c\xad\x9f\xa0\x7b\xa1\x3c\xf4\xae\x76\x6e\x49\xf7\x05\xad\xc8\x6f\xf4\x1f\xae\x2a\x26\xe2\x52\xd5\x56\xe2\x17\x87\xbf\xcd\xc2\x24\x63\x9f\x79\x2d\x88\x0d\x71\xa7\xb3\x68\x4f\x8d\x43\x7a\xe8\x40\xf8\x6d\xd2\x39\xf2\xc4\xaa\xf5\x36\x06\x7b\x07\x1f\x92\x3a\xdf\xc4\x3b\x0f\xed\x09\x12\xca\xbc\xd2\x45\x3d\x02\x08\x9e\x9b\x3f\x94\x65\x4d\x3b\x21\x05\x75\x63\x54\xbd\x78\x76\x0e\x89\x7d\xd6\x45\xf2\x49\x9f\xd3\xa0\x28\x06\xfe\x25\x2e\x36\xdb\x8c\x2a\x0f\x60\x2f\x16\xe2\xa1\x66\x46\x55\xb3\xa9\xa1\x88\xe1\x3c\xbd\xfe\x69\xde\x67\x4a\xbb\xbf\x51\x94\x01\x31\x89\x63\x11\x78\xc6\xc8\x5e\xd2\xb3\x0d\x8e\xc3\xc6\xd1\x1e\x90\x53\x1c\xdc\x4f\xe1\x3f\xb8\x85\xc3\xe5\x1c\x21\xdf\x69\xee\x5e\x12\xaf\x4d\x48\xda\xb5\xc4\x83\x47\xbf\xa2\xc8\xc0\xcc\x4c\x4b\x8b\xd0\x5a\x35\xc0\x3d\x08\x4b\x0a\x31\x07\x41\x83\x70\x3c\x1e\x4f\x0f\x89\x9a\xa0\xfd\xc2\x2f\x71\xbc\x26\x16\xab\x77\xf4\x06\x3a\x49\x90\x73\x5d\x11\xe2\xb7\x4d\x7c\xb7\x69\x7a\x98\x92\xbf\xce\xe9\xf2\x78\xc1\x0d\x8e\x6e\x3f\x1c\x43\xb2\xae\xb4\x02\x57\x90\x54\xf0\xb2\x1d\xe7\xe7\xc1\x12\x3d\xc0\xb6\x19\x43\x00\xc8\xcc\xbf\x2b\xbc\x91\x87\x87\xe0\x19\x52\xb6\xa1\x08\xcf\x8b\x29\x38\xbe\xd0\x1c\xf5\xde\x2e\x44\x1d\xee\x59\x0e\x0a\x27\x6a\xe4\xb0\x67\x57\x15\x91\xc9\x1d\x35\x98\xfd\xa6\x4d\xa1\xde\x45\xaa\x71\x21\x70\xdb\x18\xc3\xa0\x5e\x97\x5d\xdb\xbb\x5d\x7d\xd6\xbb\x5e\xdd\x09\xe1\x73\x1a\xe7\xe5\x85\xd3\xc6\x6b\x63\xdf\x12\x9a\xa5\x9b\xd4\x88\xb9\xf3\x89\xeb\xa6\x43\x20\xc3\x82\xa1\x5b\x95\xb6\x3d\x59\x1c\x56\x31\x1e\x37\xf1\x88\x4f\xa5\x58\x58\x79\xaa\x95\xf7\x3c\xd7\x22\x36\xb1\xb1\x00\xc4\xf5\x63\x25\x52\x26\x72\x45\x41\x24\x20\xf4\xf5\x49\xf4\x1c\xee\x99\x5e\x11\x98\xb7\xc7\xe2\xd2\x2a\xdc\x5b\x96\x72\x6f\x03\x10\x17\xbb\xe8\xd3\xff\xf9\xf4\x58\x18\x81\xe0\x73\xe0\x4c\xf2\x65\x83\x61\x90\x24\x89\x2b\xf0\xd4\xf0\x45\x48\x27\xec\x82\x97\x26\xbc\xbf\xff\x23\x4a\xbe\x3e\xe1\x1f\x66\x08\xe0\x53\xb8\x3f\xf0\x70\x9b\x91\x34\xff\xf4\xe8\x91\xb5\x53\x75\xf7\x69\xcb\x90\xaf\xff\x25\x9d\x68\xf9\xc9\xcb\x56\x2d\x61\x96\xa1\x50\xe4\x90\xcf\xca\x65\x1c\xce\x1a\x70\x5a\x9f\xb6\x4d\xf4\x10\x8f\xfd\xfa\x7d\x20\xea\x55\x5c\x21\xd7\xa7\x83\xc0\x24\x2f\x61\xca\xab\xa0\xed\x4e\x22\xcd\x6c\x56\x5c\x7a\xe3\x85\x25\x90\x16\xaa\x88\x0d\xd1\xe0\xab\x61\xd0\x6f\xdb\xa4\x69\x80\xcd\xa6\x48\xd2\xe5\x2e\x02\x47\x13\x0c\x08\x71\xbd\x15\xef\xde\x71\x0a\xac\x1a\x2f\xc0\x9c\x95\x32\xf2\xb0\xb9\xfc\x2e\x41\x62\xa8\x70\x71\xe9\x5f\x64\x82\x2e\xdd\xbb\x24\x26\x6e\x56\x73\xd8\xab\xbc\x60\x1f\x40\x68\x06\xe7\x6f\x8a\xcb\xd2\xc9\xbd\xc6\x7c\x93\x0b\x61\x5c\x06\x8b\xe7\x32\xf2\x49\xbb\x54\x2e\xaf\x92\x23\xf3\x7d\xa1\x78\xf9\xe5\xc4\x94\x6d\x82\x08\xe9\x68\x8c\xac\x70\x6c\x0c\xcb\xb0\x28\x80\xd2\xba\xae\x43\x9c\x80\x5a\xfc\xce\xf9\xb7\xfd\x2c\xac\xc7\x82\x26\x74\xd3\x6b\x1b\x09\xa4\x48\xe8\x39\x71\x03\x9c\x69\x76\x9f\x93\x10\x75\x87\x92\xe1\x66\x6a\x57\x69\xf6\xca\x73\x77\x2f\xfa\x40\x03\x2b\xe8\x40\x7b\x05\xa7\x28\x22\xf0\xd1\xdd\x44\xcf\x4a\x1d\x67\xa4\xe4\x36\xff\x90\x1c\x7a\x99\x71\x6f\xa9\x20\x90\x9d\x69\x92\x28\xab\x5d\xd6\x73\x1c\xed\x35\x1e\x20\x48\x2e\xe5\x8b\x46\x05\x67\x23\xb6\xe4\xd6\x07\x95\xcc\x78\x6c\xc8\xf1\x34\x61\xc9\xf5\x7b\x37\x24\xaf\xfe\xc9\xcf\x2d\x1c\x34\x8a\x99\x69\xa2\xb0\x5d\x13\x75\xb9\x72\x67\xc1\xec\x1e\x8a\x41\x9d\x52\x11\x2d\xf8\x31\x50\x4a\xb6\x5b\x8b\x8f\xc1\x1c\x5c\x3e\xaa\x64\x62\x94\x43\xd0\xd5\x92\x25\x32\x71\x79\xc9\x3a\x8e\x16\x94\xef\x63\xa1\x64\x0a\x88\xcf\x46\x12\x3b\x12\x89\x8d\xbe\xb1\x28\xaf\x95\x8f\xc3\x11\xa3\x75\x16\xa3\x9b\xe2\x82\xaa\xb3\x6a\x47\x7d\x7c\x90\xc3\x38\xcf\xd6\xc6\xa1\x20\xa3\xdb\xdd\xdf\xbc\x95\x81\x13\x65\x8f\x4e\x23\xf7\xb1\x8c\x3f\x38\x6b\xea\xbd\xf5\xa8\xa8\xff\x7e\xbb\x4d\xe0\x8a\x4d\x43\xe6\x5b\x33\xa4\x40\xc3\x7b\x60\xd0\x33\x33\x9f\xd8\xfb\xae\x0c\xea\xcd\x90\xbb\x4f\x9c\x59\x94\x7a\x62\xaf\x7f\x94\x5c\xa0\x75\x2e\x0f\x25\xe4\x59\x85\xb0\xd2\xda\x53\xc7\xae\x2f\xab\x39\x86\xa0\x50\x01\x4c\x48\x13\x49\x93\xe0\x48\xc4\x6f\xf3\x36\x12\xdb\x89\x59\xf3\x6d\x8e\xd7\xec\x00\xc1\xd3\xaf\x4f\x1a\xde\x4f\x90\x1a\xe1\x40\x3a\x16\x5e\x1d\xe9\x17\x4b\x0a\xae\xf5\xe6\x45\x85\xfe\x28\x91\xe0\xf3\xf7\x22\xcd\xb9\x72\x85\x79\x93\xeb\xd2\xc4\xd0\x6b\x40\x73\x65\x2a\xd3\xab\x54\x8b\x3f\x2f\x8f\x7a\xd4\xe9\x27\x30\x65\xf7\x08\x86\x4b\x6a\x41\x5b\x09\xb8\x59\x86\xd9\x03\x36\xc4\x16\x35\x38\xe0\xd4\xc4\xb2\x65\xf4\x22\x85\xb4\x12\xd8\x87\x51\x12\x11\x99\x02\x5a\x9d\x4b\xe2\x90\x89\xd2\xe3\x36\xcc\x11\x25\x82\x76\xeb\x55\x05\xf7\x20\xf4\xda\x4f\x7f\x7a\x65\x62\x50\xd2\xef\xb2\x90\x62\xbb\xf6\x34\x09\x4e\x56\x91\x85\x76\x68\x40\x37\x9c\x44\x8f\xf9\x60\xcd\x64\x90\x31\xa7\x21\xcb\x7a\x32\xe6\x2d\x64\x42\x97\x76\x30\x01\x36\x8e\x42\x65\x48\x89\xd6\x04\xfa\x21\xa2\xcb\x25\xa4\x10\x2c\x72\x99\xc2\x91\xb3\x66\xca\xfd\xe1\xd0\x4c\x7e\xeb\x59\x71\x86\x66\xd1\xd4\x39\x61\x46\x98\x71\x06\xe0\x91\x16\xb3\xbb\xcb\x8f\x7e\x88\x97\xe0\x94\x54\x9c\x2f\x94\x93\x09\xcc\x43\xed\x4d\x9a\xf0\x2e\x7b\x3b\xb1\x53\xf4\x8b\x22\x4d\x6f\xf0\xe9\xa1\x7c\x5f\xe2\xe9\xa4\xbc\xc8\x1f\xe0\xe0\x54\x29\xd6\xa4\xa7\xbb\x61\xb9\xc7\x30\x0e\x4a\x78\xde\x01\xaf\x29\x65\xd9\x0e\xc6\xff\xb2\xce\x78\x87\x82\x7f\x78\x19\xed\x8a\x3a\x7a\x97\x17\x97\x5d\x38\x2a\x84\xb1\x04\x8f\x5a\x0c\xae\x64\xc8\x94\xe5\x58\xd6\xfa\xc7\xcc\xe7\xf6\x55\x7b\x99\x66\x95\x2d\x7e\x4b\xfe\xd9\xb7\xc1\x36\x61\x5d\x30\x74\x1e\xb3\xd5\xd9\xa9\x6b\x06\xf4\xd4\x00\x05\xbe\x55\x4b\x7c\x4d\x3a\x76\x28\x17\x58\x73\x36\x78\xaa\x5e\x05\x42\x65\xa0\xb3\x75\xcb\x9b\x16\xab\xd2\xf4\x8b\xf5\x0a\x9c\x3a\x02\xac\x44\x33\xf8\xef\x00\xfa\xc6\x70\x18\xd8\x60\x8a\xd1\xc0\x20\xb1\x41\x38\xe0\x4a\xdc\xf2\x91\x4d\xdb\x87\x6c\xc2\x94\x6d\xf7\x35\xaa\xaa\xa8\x48\xa6\xe5\xc7\x6c\x52\x76\xca\xb9\xa0\x36\x06\xcb\x9c\xd0\x8f\x0b\xd3\x3f\xe9\x4c\x8b\xc3\x73\x20\x9e\x43\x66\x2d\x70\x47\xb7\xa1\x7f\xcd\x94\xec\x23\xd2\x42\x02\x4b\xf1\x50\x0e\xa4\x9d\xe3\x5b\x8c\xbc\x5c\xaf\xd6\xa5\x63\x0d\x03\xbd\x8a\xe9\xb6\xcd\xac\x05\x51\xfb\xe9\x06\x82\xdd\xca\x4d\x51\x54\x6b\x98\x79\x17\x70\x3e\x02\x7e\x6e\x5e\x63\xad\x9e\x68\xe1\xd6\x48\xb6\x13\x0e\xc1\xb2\x22\x7c\xb2\xe6\x94\x6f\xaa\xd9\xce\x1e\x72\x3c\x2a\x70\xd1\x10\x81\x3c\x6a\xa2\xc3\x92\xee\xe6\x71\x35\x43\xcc\x37\xd2\x15\xad\xc1\x56\x9b\xb3\xd7\x81\xd7\xb6\x14\x59\x13\xf8\x97\xb4\x84\x7e\x68\x22\x08\x2f\xd7\x29\x17\x32\x6c\xd5\xb0\x82\x2b\xd5\x03\x72\x72\xc2\xba\xde\x66\x99\x15\xd7\x88\x34\x0c\xe8\x10\xc4\x47\x73\x8e\xb1\x4c\x66\x7d\x95\x0a\x21\x4d\x51\xdc\x70\x16\xb1\xc2\x38\xef\x63\x19\xfb\x0d\x9f\x38\x35\x7f\x52\x26\xaf\xfa\x8b\x03\x98\x24\x85\x5c\xcd\x3a\xf8\x35\x4d\x59\x1b\x25\x8e\x69\x66\xed\xa3\x11\x4e\xe2\x5a\x3e\x41\x83\xd6\x9e\xbd\xe9\x24\xaf\x37\xe6\x8e\x73\xc2\x3c\x10\xd6\x4f\xa9\xf7\x9a\xec\x94\x26\x29\x47\x59\xe3\x31\x9c\xbc\x7f\xd9\xfc\x59\xa4\xc3\xed\xbc\xcc\xd7\xbf\xb5\x28\xb9\x69\x36\x18\xfa\x47\x9d\x72\x59\xc8\x67\xeb\x60\xd1\x84\x61\x80\x8c\x1d\xc1\x3e\x83\x18\xa0\x3b\x20\x56\x3d\x63\x94\x24\x3b\x99\xa6\x9a\x73\x59\x57\x38\x4f\xf4\x91\x41\xe0\xd8\xd1\x2a\x2c\x44\xec\x30\xa1\x02\xd6\x0f\xff\x4e\x6a\x99\xd4\x2a\xe6\xbe\x19\xe5\xc0\x2d\x98\x68\xfa\x34\x56\x27\x3d\x00\xd3\x4a\x75\x8e\xef\x86\x7d\xf3\xac\x7d\x2d\x4d\x20\xfe\x56\xf0\xf1\xcc\xef\x4c\x6e\x5f\xb1\x53\xcd\x8d\xeb\xa1\xd1\x5f\x6e\x47\xf4\x33\xf8\xd8\xf1\x46\xff\x75\x87\x9c\x1a\xa1\x8e\xc5\xfd\xbc\x01\xd3\x9c\xa5\x56\x4f\xc2\xd9\xad\xf2\x6b\xec\x43\x8d\xd6\x61\xea\xe1\xd1\xfe\xcb\x89\xa3\x1d\x1d\xdd\x19\x23\xa7\x87\x20\xfa\x51\x47\x35\x3b\x8d\x5c\xca\x59\x6f\xc4\x77\x4f\x2a\xfb\xe5\x8f\x3a\x8a\x81\xc2\x1a\x12\xa4\xdf\x05\xd5\x4e\x4f\x03\xc5\xd0\x1c\xed\xab\xa4\xb6\x99\xde\x99\xba\x68\xf6\x34\xeb\xa0\x87\xa5\x1a\x61\x0f\x39\x9d\xb8\xe9\xe4\xa9\xe2\x22\xdc\xa0\xbb\x25\xda\x64\x68\x40\x00\x90\x35\xf4\xbf\xa8\xf0\x76\x6b\x3c\x6a\xb7\x75\x5a\x52\x95\xad\xd5\xe8\xa9\x3e\xa0\x5d\x60\x33\xb8\x7a\x63\xce\x18\x87\xfa\xda\xcc\xf7\x6e\x46\x53\xd8\xb4\xfe\x0b\x52\x3f\xb7\xfb\x35\x40\xfa\x52\xe5\x89\xfb\xaa\xbd\xb3\xd4\x6c\xda\x7d\x08\x3f\x8b\x4c\xcc\x93\x61\xb0\x22\xcb\xea\xed\x4c\xfc\x0a\xe5\x48\x4c\xe6\x2e\xa0\x0d\xd9\xce\x34\x81\xca\x77\x73\x20\x3a\xe0\xcc\x7a\x09\x44\x25\x5f\xee\xb4\x91\x50\x55\x07\x2a\xaf\x9d\xf3\xaa\x08\xd9\xaa\xaa\xdd\x21\xed\xee\xee\xc6\xa6\xf4\xc0\xec\xc2\x5a\x93\x72\xa6\xc1\xb3\x9d\x17\x42\xf4\x6c\xb7\x8a\x66\xb8\x96\xdd\xc2\xe6\x54\xe8\xbc\x5b\x4d\x78\x74\x87\x30\x61\xae\x70\x6b\x8e\x70\x99\x92\xdb\x74\x76\x2a\x31\x8b\xeb\x5f\x9a\xb4\xf4\x4a\x7c\x39\x7f\x06\x76\x23\x68\xc2\xbc\xef\xed\xd4\x6a\xb1\x39\xdd\x83\x2f\x5c\x7d\x67\x36\x6a\x4d\xe3\xc8\x27\x77\x71\x87\xcc\x90\xbb\x26\xaa\x1e\x70\x92\x24\x33\xaf\x28\x7d\x8d\x5b\x69\xf5\x25\x69\x48\xa3\x7b\xed\xe2\x9a\xa5\x20\x73\xc2\xb8\x03\xc2\x7a\xd7\x2b\xc1\x8a\x94\xb9\x63\x40\x51\x66\x7a\x52\x99\x52\xb8\x3e\xb9\xe1\x01\xc1\x07\x19\x5c\xc6\x13\x0f\x27\x74\x34\xf0\xbe\xa5\x84\xaf\x87\x81\x53\x8b\xd3\x27\xdc\x74\x1d\x9f\xb6\x4a\x45\x9d\x44\xdb\x92\xd6\x49\xd1\xc5\xd9\x07\x97\xd0\x8b\x54\xdc\x25\x3f\x6f\xa2\xaf\xc0\xd6\x4c\x08\x4b\xda\x42\xbb\xb2\x0b\x74\xcf\x80\x1e\xed\x06\x5e\xd3\x44\xbf\x86\xd7\xdf\x69\x0f\x27\xbe\xac\x58\x3d\xf8\x58\x45\xc8\x69\xff\xf1\x56\x48\x31\x8f\x7e\x60\x97\x69\xfe\xe0\x7b\x70\x88\x86\x8a\x31\x2e\x6a\x6e\x44\x01\xcf\xad\xa3\x06\xf6\x23\x30\x36\xc0\xbc\x52\xef\x9c\xd8\x73\x45\x01\xbe\xef\xd1\xf7\x06\x60\xbc\x6c\xca\x09\xf9\xf0\xa1\xee\x7b\xd1\xe7\xa8\x7c\x93\xbf\x2d\xd5\x35\x28\x73\x1a\x5b\x6b\xc1\x4f\x22\xb3\x2a\xd8\xb2\xe1\xcc\xda\xc2\x86\x50\x5b\x62\x15\x4b\xfd\x90\xed\xda\x05\xca\xc8\x78\x83\xd7\x5d\xed\xe4\x89\x92\x40\xda\x44\xe5\x03\x12\x66\x8b\x68\x42\x54\x01\x51\x2c\xbd\x7a\x46\x6c\x86\x97\x95\x90\xe0\x8c\x49\x0c\x22\xf4\x6e\x74\xd3\x28\x89\x58\x83\x7a\x0e\x22\x12\x7b\xb8\xcd\x35\x4a\x69\x1c\x42\x43\x0e\xa6\x7b\xbd\xf5\x52\xea\x20\xc6\x38\xd7\x5d\x88\x5d\xcf\xf3\xc3\xea\xa6\x1c\x40\xf8\x14\x86\xee\x02\x52\xfe\xb0\x6e\xcb\xee\x61\x87\x32\x7b\xfb\x7d\xd9\x3b\xe3\xd1\xd0\xea\x8e\xa8\xe6\xb1\x1c\x70\xc3\x75\x7c\x6e\x8d\xeb\x54\x99\xd4\xb6\x04\x1d\x08\xd6\x82\xa8\x09\x27\x96\x4d\x5b\x0b\x6d\xde\x04\x79\x22\xb6\x7e\xdb\x87\xfd\x41\xd2\x33\xea\xfd\x83\x6a\x98\x77\x2d\xff\x16\xb7\xf2\xc7\x70\xa4\xe4\xf5\x23\x6f\xd7\x0a\xaf\x90\x9c\x06\x71\x23\x5b\x9d\x46\xf8\x9c\xfc\x39\xa6\x2c\xf0\x8f\xda\xb0\xc1\xd4\xbc\x30\xd3\xb8\x5c\xf7\x18\x53\x8f\xb3\x5e\x58\x94\x0d\xb9\x4e\x40\xd9\x39\xb3\xd4\x46\x94\x63\x3c\xdd\xad\x81\xd4\x7b\x55\x6e\xc2\xa8\x2a\xdb\xf7\x89\x72\x6d\x7c\x95\xd3\x06\x58\xd9\x19\x61\xde\x05\xea\x7d\xe7\x1b\x9c\x03\x86\x76\x3e\xdc\xca\xda\xe0\x9b\xb1\x15\xc5\x1b\x3f\x70\x0d\xc4\x94\x4d\x47\xe1\xd3\x83\x1e\x0c\xb7\xb7\x0d\x7a\xa5\xad\xc4\x70\xb4\x22\xce\x9c\xba\xa3\x1a\x8f\xaa\xe1\x00\x05\x37\x09\x47\xe4\x86\x0d\xb8\x54\xab\xb5\x60\x8e\x36\x7a\x63\x9e\x6e\xd2\x8c\x60\x80\x7e\x27\x92\x00\xe8\x3f\xb1\x00\xb3\xc1\x57\xdd\xab\x1d\xac\xda\x02\x5b\x84\xd4\x12\x97\x78\x6c\x90\x15\xc9\x7b\x8b\xc7\x0a\x5c\xc6\xba\x78\xc4\x63\x69\x66\x1b\x89\xb6\x13\xe5\xc9\x4a\x8f\x63\xfc\x3d\x4e\x92\xce\xfd\x30\x3c\x20\x6d\x35\x69\x71\x47\xec\x38\x2a\xeb\x2d\xa8\xdb\x20\xa0\x4f\xf1\xc5\x22\xb8\x43\xc3\xed\x81\x4f\x41\x34\x36\xb8\x9f\xa2\x62\xce\xea\x6d\xf5\xa9\x04\x22\x42\x7a\x1a\x44\xea\xc4\xaf\xd7\x7d\x70\x16\x77\x91\x26\x35\xc9\x6c\x70\x8d\xb1\xdf\x92\x3a\x72\x54\x89\x64\x05\xf0\x1f\xf4\x93\xc1\x30\x1f\xbf\x82\xdf\xf6\xee\x17\x61\xd4\xe0\xdc\x06\x1c\xc6\x89\xc6\xb9\x8d\xa6\xde\x05\xb9\xf3\xee\x55\xba\x01\x99\x68\x02\xb0\x4e\xf8\x41\x99\x58\x06\xda\xe4\x08\x81\xe0\x45\x51\xd7\x0e\x85\x1d\xe8\x6a\x27\x73\x61\x76\x1c\x40\xd6\x64\x98\x2e\x00\xa0\xdb\x9f\xc3\x03\x5c\x86\x76\x8c\x8f\x72\x89\xe4\x32\x82\xa1\x4e\xea\x36\xe5\xb1\x35\x12\x2a\x7b\x18\x44\x43\xe0\x60\x88\xc6\xe9\xe2\xb6\x08\x71\xd1\x93\x58\x10\x66\x3c\x88\xba\x7d\x32\xbb\xfe\xf3\xc0\xfe\xb5\xc8\x41\xa4\x94\xe6\xf6\x68\x3f\x49\xb4\x07\xae\x3d\xcc\x08\x09\x1e\xa9\x7f\x68\xf5\xfd\x03\xb9\x8d\x6d\x09\xb4\x7d\xa4\xaf\xd3\xd1\x40\x3b\x58\xeb\xf9\x28\xfa\xa2\x30\x4f\x49\xc9\x99\xa4\x73\xd1\xb8\xf0\x9d\x49\xbe\x7d\x98\x8c\x46\x3d\x34\x3d\x2c\x46\xb6\xa8\x20\x1e\x7a\x91\x4a\xc3\xa9\xa7\x1e\x3e\x84\x27\x1d\x6c\x4e\x1e\x08\x92\xf1\xb9\x77\xba\xe5\xf0\x53\x52\xbe\xd7\x26\x72\x80\xf1\x15\xa3\xdb\x4b\x9b\x34\xaf\xe1\xe4\xcc\x5e\xba\x2e\x6a\xe6\x2a\x4b\xc8\xce\x55\xc4\xc7\xf9\x3b\x57\x59\x59\xe7\x9e\x96\x9b\xc2\x57\x5a\xf1\x3d\xc6\x8b\x36\xc9\xbd\x15\xaa\x75\xcd\x7c\xe5\x4b\x96\x7a\x4a\x31\xf3\xa8\x9f\xf6\x6a\xed\x2a\xdc\x51\xd2\x91\xa4\xa5\x8b\x4a\x4c\xa2\xbe\xa2\xb6\x0e\xb2\x97\x41\xf7\xd8\x4b\x38\x99\xf6\x02\xe8\x1a\x07\x22\x20\xdf\x5e\x04\xc4\xb7\x25\x96\xee\x74\x42\x74\x96\xc9\xae\x74\x11\x29\x3b\xd2\xd1\x56\x76\xa3\xbd\x54\x74\xa2\xbd\x4c\x75\xa1\xa3\x25\x5e\x84\x1c\x61\x96\xf4\xae\x73\x63\x8a\x6c\x11\xc9\xa6\xee\x9c\x32\xed\xd2\xaf\xf4\x8e\xab\xfc\xf3\x81\x8a\x87\x2d\x5f\x3d\xcc\x73\x71\x89\x34\x58\x87\x6d\x9d\xe3\x40\x29\x5a\xf2\x0f\xe0\x1a\x7d\x56\x0b\x33\xa1\x25\x5a\x45\x08\xdb\x8d\xcf\x2d\xa3\x22\x0c\x4c\xdd\xab\x35\x63\x87\x1d\x7c\x20\x46\xbe\xcb\xc8\x46\xcd\x0b\xc8\x42\x4f\xd1\xf8\xe9\xb5\xac\xab\xd8\xd6\x29\x4e\x5e\x05\xbf\x87\xef\x1c\x07\x63\xf0\x33\xba\x93\x06\x88\x1f\xe8\xac\xb7\xe7\x4f\x0e\xdc\x61\x1e\xde\x82\x3b\xce\x6c\x68\xba\x95\x9c\x3c\x7f\x2e\x2d\x56\x6e\xeb\xfc\x30\xff\x29\xfa\x5f\xff\xff\x17\x5f\x9a\x2c\x9e\x46\x9f\x7e\xf6\xeb\x83\xcf\x36\x0f\x3e\x4b\xce\x3f\xfb\xfe\xf4\xb3\x57\xa7\x9f\xcd\x4f\x3e\x7b\xf9\x4f\xab\xf5\xd0\xe7\x23\x2d\x0b\x77\x7f\x98\x74\xca\x0c\x8b\xa1\xae\xa9\xde\x40\x43\xb2\x45\x0e\xc8\xc6\x0e\x4e\xe8\x92\x70\x39\x46\x49\xb1\x21\xdc\x2a\x03\x13\x88\xf5\x57\x20\x01\x10\xcd\x93\x34\x7e\x27\xf2\x5b\xc3\xa7\xe6\xa9\x0c\x6e\x5f\xf1\xad\x62\x99\xae\x6a\x26\x2d\x9f\x76\x54\xf7\x25\x61\x5b\x4d\x8e\xd4\x8b\x4f\x20\x0d\xfc\x14\xea\x94\xba\x59\x3e\xd5\x78\x08\xe2\x92\xaf\x18\x83\x8c\xbe\x0f\x53\xe4\x70\x9f\x30\x55\x38\xf9\x1c\xf1\x53\xb4\x49\x30\xba\x50\x7c\x34\x1f\x22\x86\xbf\x76\x2e\x78\x0d\x69\x8c\x5c\x37\x30\x71\x89\xc8\xa6\xa7\xc2\xce\x7a\xda\x51\x6d\xe1\x67\x99\x15\x4a\x79\x57\xd5\xf0\x15\x84\x5e\x45\x26\xde\xac\x1a\xae\x18\xd3\x34\x0b\x02\x28\xde\xe8\xb6\x6c\xa4\xc5\x72\x89\x69\x7b\x35\x18\x42\x36\x1d\x8b\xa2\x0f\x91\x77\xdb\x99\x4d\x81\xf2\x89\xad\x9d\xd4\x5e\xc1\xd9\x0e\x9a\x30\xd3\x03\xc4\xd5\x75\xf2\x3c\x58\x68\x33\x74\x73\xf9\x02\x8f\x45\x3d\x17\x05\x3e\x05\xbd\x57\x03\x41\xba\x1f\x2a\xc6\x89\x36\xaf\x20\x17\x4e\xd6\x62\x6d\x2a\x1a\x7e\x75\xa8\x87\x03\x1f\x3e\x98\x0f\x04\x85\x60\xda\xa6\x34\x00\x0f\xaf\x05\x58\x5e\xa7\x74\x0a\x0e\x3e\x9b\xe3\x10\x2c\x58\x0f\xf0\x3c\x87\x0f\x53\x30\x55\x8c\x86\x20\x82\x6a\xc2\x4e\xa5\x56\x34\x0b\x3e\x71\x32\xac\xf1\x1d\x7e\xb2\xd5\x89\xd7\x05\x4b\xa0\xca\x13\xf8\x60\xad\x91\xd5\x10\xf0\x8d\x75\xc4\x47\x5b\xad\x35\x57\x21\x08\x8b\xd7\x18\xb0\xf3\xbd\xfa\x62\xaf\x59\x56\xc5\x8a\x91\x8d\xa8\x29\xbf\xd8\x6a\x6e\xe5\xa8\x78\xed\x18\x14\x7c\x1e\x54\xcd\xd5\x89\xd7\xea\x8b\xad\x26\x48\x0a\xc2\xe9\xa4\xb0\x5e\x91\xad\x59\xcb\x37\x55\xb5\x51\x69\x5e\xee\x3d\xff\x76\xc6\xfb\x89\xe2\xc3\x59\x4d\x4e\x15\x7d\x25\x3d\x37\x9f\xc1\x97\x71\x52\x7a\x46\x9a\xa4\x75\x1c\x09\x03\xdb\x39\x0d\xc4\x02\x35\x53\xeb\x54\xa3\xb1\x39\x1b\x5c\xcd\xb4\xe4\x2f\x76\x67\xd0\x00\xca\xdd\xde\x10\xf8\x1f\x66\x9c\x5c\x79\x91\x4c\x42\xd8\x7d\xd1\x3a\xce\x76\x1d\x68\x32\x16\xcc\x0a\xce\xbb\xa0\x36\xb3\x20\x24\x9b\x6b\x29\x53\xf8\xca\xf3\x18\x00\x25\x2e\x57\x40\x6e\xe3\x74\x81\x57\x24\xe0\xa0\xa9\x6c\x2e\x15\x89\xf9\x68\x4d\xaa\xa7\xdd\x83\x51\xc7\x17\xde\xe5\xae\xe8\x07\xd0\xdb\x08\xd5\x88\x35\x88\xd4\x5f\x21\xf2\x51\x1b\xaa\x59\xf9\x02\x5c\xc3\xcf\xfe\x3e\x8c\x30\x5d\x6c\x8c\x08\xd8\x75\x2d\x98\x83\x4f\x55\xf5\x07\x4e\x4b\xf6\x3a\xcd\x12\x46\xf3\x36\x7d\x55\xc8\x50\x50\xad\x26\x0c\x87\x40\x84\x2e\x71\x1d\xf5\x16\x9e\xf1\x1d\x3d\x96\x79\x17\x2d\xad\x14\xfa\x6b\xe1\xe4\xbe\x7a\x53\xab\x6b\x89\x61\xbb\x29\x0e\xd0\x19\x3c\x05\x77\x1a\xbd\x60\x64\xbb\x86\x38\x86\x23\xed\xb3\xb9\x92\x5b\x86\x87\xcf\x9c\x45\xf8\xc7\xe2\x66\x17\xde\x94\x2f\x4a\x95\xe0\x40\xe4\xbe\x93\x15\x9a\x07\x3f\xb4\x24\x5b\x2a\x0f\x1b\xa3\xdc\x28\x2e\x69\x5e\xa9\x69\x03\x4f\xb6\xc9\x60\x06\xb8\x2b\x27\xaf\x78\x81\x38\xdb\xe3\xa5\x5e\x1c\x87\xc1\x38\xc2\x98\x21\xf6\x0e\xb7\x8a\xf7\x97\xbc\x7c\x98\xf7\x1f\x96\x2a\x43\x9e\xbc\x88\xd5\x88\x00\x93\xf6\x39\xcf\xbd\xe5\x45\x3f\xb8\x2d\xae\xb5\x5f\x50\x3c\x74\xe0\xda\x50\xba\x5a\x2f\x44\x26\x35\xa4\xf0\xa4\x8f\x08\x2e\x9c\x6b\xc8\xf4\xcc\x7e\xed\x9d\xb1\xa6\x41\xd0\x02\xdd\x54\x9f\x32\x2f\x03\x71\x5a\xf0\xc2\x0f\x4e\x4c\xa2\x75\x04\x5e\x35\x6c\x07\xe4\x3e\x0b\xf3\xde\xd2\x0f\x62\x40\x97\x5e\x18\x27\x07\x5d\x92\xc9\x05\x49\x33\x88\x60\x55\x9b\x0c\x44\x8b\x7b\x7b\x1b\xef\x15\x8d\xee\xe7\x61\x3c\x2e\x01\x1d\xd9\x1e\x36\xf2\x63\x9d\xef\x8f\x55\xb0\xa9\x10\x5f\x93\xc8\x31\x36\x67\x48\xe0\x50\x69\xbe\xaf\xd0\xed\x98\x5c\xcc\x1f\x46\xe4\xe3\x70\x4e\x11\xb8\x4f\xc1\x6d\xcc\x56\xd3\x61\x60\x5c\x12\xea\xd9\x20\x8f\x59\xfc\x94\x96\x31\x4b\xb7\x5c\x39\xb2\xda\x23\xd6\x13\xd9\x23\x5d\xe1\xef\x9d\xab\xba\xd6\x20\xab\xb9\xe0\x68\xed\xb6\xc5\xcd\xb8\x5c\x87\xc6\x3c\x5e\x77\x1d\xa3\x26\x06\xd2\x06\x3e\xb5\xc7\xf9\xca\x11\x38\x6c\x5c\x53\xe9\x8a\x4a\xb4\x1a\x42\xa8\xd7\x9d\x05\x91\xd8\x69\x91\x84\xb3\x66\x69\x67\x1a\x7b\x23\xa5\x43\xf3\xe4\xa3\x95\xcd\x35\x8b\x66\x4b\xee\x45\x63\x11\x8d\x6f\x09\xec\xac\x64\x86\xd8\xda\x58\x7b\xf3\x48\x59\x46\x87\xb8\xa7\xad\x4d\xd2\xed\xc0\xb5\x95\x76\x56\xb4\x30\xda\x1b\xc5\xc7\xa0\x3b\x4d\xce\x3c\x38\x1c\x65\x10\x8c\x73\xe6\xf0\x0e\xbb\xda\x6c\x77\x8e\x02\xd8\xa8\x1c\x45\x97\xa0\x01\x56\x8e\x42\x17\x22\x27\x9e\x7a\xe1\xe3\xa9\xed\x11\x47\x05\xd5\x25\x8e\x62\x1c\x00\x8e\x32\x7c\x9c\xec\xcc\x91\x98\x56\x99\x9f\x67\x1e\x63\xef\xdf\x21\x95\x84\x09\xa6\xd7\x30\x86\x22\xdd\x56\x6b\x0b\x85\x83\xc3\x06\x4c\x30\x33\x3c\x46\x3e\xe1\xe7\x40\xa5\x9e\xfb\xb3\x14\x07\x0d\x52\xf4\x5d\x9b\x23\xd5\xd3\x79\x63\xc7\xc2\xf8\x51\xea\xed\x42\xe7\x38\x0d\x12\xad\x8d\xd9\x9e\x7c\xb1\xd2\x80\x90\x8d\x3a\x3e\xe4\xda\xe1\x80\x25\xc7\xaa\xf3\xe8\xc0\x65\xac\xf8\x35\xdc\xd9\x66\xd7\xd3\x46\x9d\x28\x8c\x6d\x0a\xdc\x03\x4f\x53\xb8\x1a\x19\x8f\xdf\xaa\x44\x81\xb6\x57\x39\xb1\x62\xf5\x71\xba\xe3\x18\x0e\xe6\x15\x9f\x9a\xab\x6a\x7d\xda\x29\xf9\x18\xb9\x59\xb2\x54\x04\x8d\x7f\xf4\x9c\x90\x6c\xbb\xee\xe5\x4b\xfd\x38\x48\x87\x87\x1f\x56\x1f\xe9\x74\xb0\xe4\x38\xfc\x61\x89\xf7\x87\x61\x8a\x1b\xae\xbb\xc6\xc6\xdf\x90\xab\x74\x03\x59\x41\x55\x3d\x4c\x7e\x86\xf9\xbd\x4c\x68\x42\x38\xe2\x1c\x54\xc4\xd6\x43\x4a\x34\x0e\xee\xc4\x44\x64\x77\xdd\x99\xf0\x74\xaf\x9a\x22\x43\xe2\x50\xc0\x54\xa6\x31\x19\xc6\x51\x8a\xb4\x5f\xcb\x34\x4f\xab\x5d\x2f\xf3\xe2\x1c\x31\x62\x8a\x36\x12\x61\x1d\x6a\xc2\x8b\xd2\xcd\x96\x71\x0e\x05\xef\x5b\xbe\x66\xc3\x51\x3d\xb2\xbd\xb4\x91\xa7\x9f\x0d\x63\x54\x08\x6f\x9d\xd4\xc8\x7e\xb4\x29\xb8\x04\x30\xdc\x85\x2f\xc1\x89\xac\xf4\xc8\x84\xa2\x30\x3f\x50\x0f\x1f\xf4\xa5\x48\x51\x54\x7a\xaa\x48\xf3\x9a\x00\xde\x4f\xf9\x5d\x39\xf7\x30\xb8\x25\xae\xcb\xaa\xd8\x44\x2b\x46\x2e\x2c\xb2\x30\x4f\x23\x00\xe5\xe4\xc5\x3e\x69\x1a\xde\xe8\xf8\xe6\xfd\xd1\x4f\xc3\x3c\x48\xfc\x8d\x4d\xcd\xce\x77\xd9\x4d\x1f\x29\xf5\x78\x92\xe0\xa2\xbd\xab\x6d\x59\xb5\x14\xc2\x5e\x0a\x08\x66\x5d\x93\x08\x5f\xf7\x8b\x83\x8c\x80\xcd\xb1\xab\xb5\x39\x08\xfa\xd1\x38\x16\x99\x40\x10\xda\x35\x5e\xa5\x8e\xd1\xb2\xde\xf8\x43\x46\xf8\x24\xde\x7a\x2b\x40\x18\x9a\xb7\x42\x91\xbb\xaf\x02\xe9\x07\xef\x4e\x00\x09\x23\x2b\x27\x06\xef\x6d\x05\x2d\xfa\xc4\xd4\x75\x33\xa3\xc3\xdb\x63\x27\x61\x60\x85\x46\xa1\x69\xe1\x2b\x06\x8a\x0d\xe1\xfc\x5e\x0d\xe9\xcc\x76\xad\x59\x36\x6d\x2b\xf9\x02\x65\xde\x1b\xb6\x60\x92\x60\x74\xd6\xc8\x99\xdc\xb4\x6b\xa6\x5f\x20\x42\xf0\x91\xbe\x60\x45\xbd\x75\xce\x40\x38\x8c\x51\x31\x17\x8b\x30\x67\x6e\xc7\x5b\x3a\xd0\x7c\x1c\xa9\xf3\x7a\xb1\xfa\x78\xa8\xc5\xaa\xb7\x9f\x54\x8c\xe6\x2a\x67\xbe\x93\x5b\x21\xf4\x99\xef\x58\xc0\x3b\xcf\xf4\x10\xb0\x9e\xc9\xec\xf1\xd2\x4f\x3c\xd2\xec\x09\x2a\xe8\x34\xd1\x13\xa8\x66\x0a\xcc\x1d\x7f\xd1\x3d\x00\xe9\xbe\x94\xe0\x74\x01\x09\x9a\xcd\x78\x06\x5f\xfb\x31\xe4\x8e\x8e\x51\x98\x72\xb6\xef\x3f\xfd\xde\xab\x33\x27\x1d\x0d\x07\x4b\x67\xa2\x6f\xa4\xe7\x19\x09\x46\xe8\x3f\x3b\x13\x59\x32\x03\x25\xa3\x1e\xc1\x76\x37\x0a\x25\xcc\x37\x7b\x8d\xc0\xcc\x5b\x3b\x7f\xbd\x01\xa4\xb7\x71\x06\x8f\x20\xf8\x83\xcc\xe1\x0f\x3d\x32\x47\xf0\xcf\xc4\x1b\x62\x16\x09\x38\x81\x78\x95\xcb\xb4\x4d\x6d\x6a\x7d\xb7\x0f\x7e\x2c\x47\x35\xf0\x93\x38\xfe\xbe\x1b\xe7\x47\x36\x82\x98\xc7\x1e\xcf\x73\x0e\xc6\x75\x9f\x96\x68\xcb\x19\xba\xa7\x9b\x78\xfd\xfa\xfd\xc8\x6b\x5f\x87\x89\xfb\x12\x83\xc4\xb8\x6d\x48\xeb\x14\x93\x60\x03\x01\x0c\xc5\x8a\xeb\x20\x43\xdb\x74\xd9\x5c\xa4\xb9\x5b\xc1\x93\x90\x89\xeb\xe5\x4c\x0f\x9f\x02\x6e\x30\x84\x20\x46\x05\x4c\x6d\xf6\x8d\x69\x30\x56\x30\x4b\x7c\x9a\x38\x8f\x9d\x5e\x09\xeb\x89\x0c\x16\x6a\x4d\xdb\x7b\xf8\x81\xa8\xbd\xa1\x30\xae\x80\xfc\xdb\xb3\x85\xb9\x2e\x2d\xdc\xc6\xdd\x2b\x8c\xd6\x3b\xb9\x71\x85\xb1\x7e\x28\xcd\x32\x0c\xdb\xe1\x5c\x07\xc3\xf8\xfc\xb3\xac\x73\xa5\xe6\x7e\xaa\xdd\x4f\xb5\xbb\x34\xd5\x86\x2e\x13\x35\xb7\xc4\x6e\xed\xc0\x77\xdc\x65\xeb\x0b\xf5\x76\x8c\xfd\x60\x72\xef\xe4\xf0\x0f\xe6\xfe\x50\x33\x20\x18\xe1\xe1\xf6\x9b\x60\x94\xf2\x52\xf7\x58\x7d\x52\x36\xd3\x73\x3a\x85\x0a\x15\xce\x47\x26\x68\xb0\xaa\xdd\x04\x94\x1b\x1c\x0d\x76\x84\xce\xfc\xc1\xa2\x91\x96\x02\x2b\x00\x99\x79\xcd\xfb\x49\x91\xc9\x14\xa2\xdd\x5b\xde\xf8\x77\xdf\x25\x6f\xb3\x02\xc2\xeb\x85\xff\xa7\x79\xcc\x20\x91\x1b\x9f\x75\xab\x75\x95\x73\x2b\x13\x6e\x2f\x95\xc5\x06\x53\xb3\x17\x39\x5c\x4f\x22\x99\xcc\x10\x16\xcd\x56\x64\xb3\x21\x47\x5d\x18\xdd\x63\xe7\x05\x03\x40\x94\xcd\xde\xe9\x66\x31\x12\xf3\x68\x80\x96\x84\x1e\x98\x96\x84\xb0\x77\x93\x28\x89\x8b\xfc\x82\x32\xf1\x5e\x57\x8c\x72\x84\x97\x2a\x65\x4f\x9e\xf8\x50\x56\x85\xc8\xd7\x6a\x1b\x17\xde\x0c\x0f\x2f\xbe\x13\x1d\xa6\xdc\x1f\x61\xdd\x27\xde\xd5\x4d\x24\x91\xf1\x9a\xe4\x39\xcd\xbc\x04\x32\xfb\x1a\x60\x07\xbd\x62\x70\x73\x28\x1c\xf8\x6a\x0c\xf0\x05\x24\xfc\x0f\x87\xbd\x08\x85\xad\x3a\x0f\x2f\xd2\x71\xb9\x42\xdf\x7d\x3f\x7f\xe9\x05\xbe\x2e\x33\xbc\xc1\x3e\x7f\x69\x8c\x0f\xaf\xab\x48\xd6\x1e\xd9\x67\xeb\xda\x7b\xa1\x66\x1d\xca\x27\xe6\x91\x22\x83\xd7\xdf\x42\xc1\x35\x93\xce\x07\x2d\x9b\xd4\x09\x5c\x50\xd0\x09\xbc\x2f\xfc\x43\x73\xb5\x80\x4e\x50\x53\x21\xac\x13\x5e\x3e\x9e\x34\x71\x0e\xcb\x2d\x79\x90\xa4\x1b\x9a\x97\x03\x7d\x41\x42\xe1\x2d\xc2\xe0\x4d\x9b\x12\x5c\x62\xd7\xd6\x1b\xdf\x3f\xb9\xd1\x29\x11\xaf\x39\x83\xc4\x07\x2a\x0e\x9e\x0e\xf5\x26\xcd\x21\x00\xea\x1a\xa6\xc3\x93\x7d\xa7\x83\xf8\x5f\xa9\x08\xf3\x9f\x5f\x58\x14\x84\xf9\xc5\xca\xa7\x1e\x74\x8b\xed\x54\x8b\x44\x26\x32\x8f\x49\xb9\xdb\x2c\x8a\x4c\xbd\x63\x62\xa4\x35\x37\x17\x1d\xac\x8b\x49\x60\xf0\xd3\x90\x78\x3a\x88\xc8\x55\xf3\x90\xf2\x00\x1a\xa8\x89\x87\xdf\xfc\xf7\x38\x14\x2c\x0e\xc4\xc0\x62\x79\xba\x3e\x0a\x3e\x37\x61\x68\x18\x02\xa8\xe9\xd2\x2b\xb9\xa1\x63\x49\x59\xc5\x48\xc2\xb5\x20\x55\xfe\x06\xbf\xf9\x34\xd7\x41\x51\x50\x12\x2a\x0b\xea\x8c\xc4\x7b\xcc\xcb\x7c\xa4\x42\xf9\xde\xa4\x2e\x58\x5d\xae\xc3\x68\xc5\xaa\x98\x2c\x07\x3e\x8c\xea\x3b\x0c\xbb\x08\xc3\xd2\xcd\xb7\x33\x0a\x0b\x17\xc5\xaa\xc8\x49\xe0\x7c\x52\xb5\x5d\xe2\x7f\x2a\xcb\x7d\x5d\x60\xaf\x33\xd4\x01\x90\x13\xaf\xc9\x5c\x50\x36\xa9\xb6\xe5\x62\x00\x31\x68\xa5\x77\x11\x13\x15\x21\x7b\x77\x69\x7b\x4c\xcc\x9b\xa9\x47\xe0\xe8\x72\x2c\xa2\xde\x66\x2d\x58\x05\x35\xfa\x9f\x68\x36\xc3\x14\xf0\x43\x2f\x0d\xe2\x67\xdb\xba\x24\xdf\xa4\xd4\x6d\xef\x00\xa8\xf2\xa3\x13\xaa\x68\x7e\xa6\xb7\xd7\xed\x91\x31\x46\x02\x0e\xe6\xc1\x55\xfb\x29\x23\x97\x78\xa5\x9b\x1b\x06\xf8\x11\x5f\x07\x10\x93\xa7\x79\x9c\xd8\x7c\xa6\x42\xe6\x9f\xb1\x3e\xea\x60\xbe\x3c\x6f\x7f\x9f\x1d\x4e\x6a\x8f\xcc\x67\xdf\xec\x14\xf6\xee\x9c\x5f\x3d\x10\x19\xfc\x48\x59\x16\x71\x8a\x59\x22\x9b\x64\x7e\x48\xb8\x8f\x1e\x6b\x38\xa0\xe7\xea\xf9\x04\x8c\x16\xac\x28\x09\x98\x56\x5f\x9f\x88\x0c\x7f\xa3\xd2\x18\xce\xa7\x71\x8e\x8d\x2d\xe0\x64\xa2\xfa\x26\x61\x0b\xbe\x08\x06\x39\xdb\x00\x76\x10\x27\x32\xdd\x64\x97\x1b\xfb\xfa\x39\x3e\xa5\xc0\x5e\xdd\x6b\xf5\xf3\xdc\x77\xef\x2d\xea\x5e\x75\x9d\x43\x2c\x31\xa8\xf9\x7b\x93\xf3\x88\x1a\x7b\x64\x63\x71\x22\x72\xb1\x7f\x24\xcf\xea\x47\xf7\xdf\x64\x8c\xe6\xbb\xad\x53\x04\xfd\x24\x83\x94\xd7\x48\x87\xc0\x0c\x6f\xc6\xbe\x53\xd9\x82\x74\x92\xc4\xf3\x9a\xde\x8d\x38\x06\x60\xc1\x1a\x51\xf3\x92\x3b\xab\x29\x3c\x2b\x0f\xb7\x60\x8a\x1c\x1e\xbe\x59\xf6\x91\xab\x87\xda\xbd\x7d\xee\x7c\xff\xd3\x4e\x40\x6f\x90\x75\x9f\x3d\xe9\xec\x60\xf8\x10\x08\x6a\x06\x3e\x0a\x26\xe5\xff\x19\x8f\xd5\x82\x19\x7e\x3a\xe1\xfa\x47\x01\x0f\x76\x8c\x1e\xaa\xd7\x43\xea\xa8\x47\x46\x8e\xa3\x98\x6c\xf9\xc0\xa1\x67\xba\x8f\xdd\x3f\xf4\xbd\x19\x02\xc0\x12\xfc\x6b\x2f\xe5\xc3\xf1\xda\xdd\x49\xfb\xb1\x69\xd6\xd5\x05\x5d\xe9\x97\xe5\x5a\x62\x3b\x5d\x10\x4d\x44\x44\x56\xdf\x24\x35\xef\xd7\x14\x2c\x75\xac\x82\xde\x33\x05\xd1\x4c\x86\xdd\x36\xc3\x69\x18\x1d\xe6\x38\xf6\x30\x64\x3d\x86\x12\x2f\xff\xd5\xf2\x95\x2d\xb5\x96\x85\x21\x7b\x7d\xb0\x83\xa8\x30\x7c\x3f\xcb\x15\x77\x1c\x87\xe6\x3a\x6d\xc5\x65\xa2\x9a\xd7\x0b\x7c\xe4\x87\xf6\x5e\x4e\xed\x37\xc7\xfa\x83\x87\x80\x16\xca\xd2\x3c\x6f\x2f\x81\x1d\x43\xe2\x4d\xca\xce\xfc\x52\xe9\x7c\xc3\xf6\xe7\x53\xb1\xcb\x53\xd0\x60\x6c\x48\xde\x07\xc3\x06\x42\x15\xf9\x96\x67\x4d\x16\x7d\x5b\xf4\xe1\x99\xcd\xfe\xb3\x81\xcf\xd3\x58\x76\xa6\x5b\xc4\x03\xb9\x4c\x06\xed\xb2\x37\x5a\x2e\xbb\x2d\xe1\x4a\x20\x2c\xa7\xb6\xc7\x26\xcd\x86\xea\x91\x63\xa8\xde\x3c\x9c\x87\xdf\xec\xe6\x9a\x6a\x80\x22\x88\x7e\xda\xc2\x5a\x41\x32\xf1\xd5\x6b\xd8\x99\xeb\xbb\xcf\x4e\x85\x1f\x1c\x62\xe0\xd6\xa9\xdd\xc1\x96\x6e\x98\xde\x53\x78\x26\xa1\xb6\x7d\x61\xba\xe0\x3a\xd5\x8c\x94\x38\x03\x95\x1b\x9a\xa6\xb5\xf2\xde\xaf\xec\x01\x31\xd6\x0f\x9c\x28\xf7\x32\x1b\x25\xb3\xe1\xac\x5c\x53\x45\x66\x66\x5f\xb2\xb3\x63\xcf\xbb\xe4\xaf\x3b\x4a\x5e\xbd\x46\x7b\x89\x6b\x28\x4d\xd7\xbd\xb0\xb4\x9f\x98\xaf\x9f\x8c\xeb\x7f\xde\xc5\xaf\x1f\xa9\xe3\x3d\x92\x04\xef\xff\x1d\xda\x0d\xac\x17\x1d\x6c\xfb\x81\xd5\x8c\x93\x56\x9c\x74\x87\xc4\x45\xc1\xb8\x7a\x87\x8e\x70\xe9\xce\xf0\x9a\xad\xe3\x9c\x7b\xa1\x48\x2c\x88\x90\xe5\xe9\x93\xc3\x69\x9c\x8d\x22\xc9\x02\xc2\xe5\xfb\x99\x96\x9c\x59\xcf\x15\x60\x9f\x73\xf6\x43\x27\x6b\x43\xef\xbc\xb3\xc3\xf1\x8b\xa9\x2b\x27\x0c\xb9\x89\xe1\xbd\x17\x62\x7b\x88\xd5\x23\xac\x98\xb7\x69\x04\xa5\x20\x88\x18\xc1\xb0\x71\x00\x00\x4e\x7d\xbc\x84\x38\xc9\xf4\x81\xbf\x1b\x3d\xf0\xc7\xb9\x3d\x43\x91\xb8\x18\xbe\xae\x81\x1f\x4a\xd2\xdf\x7d\xe0\xef\xee\xea\xc0\x4f\x9b\x27\x28\xe1\x84\x09\x02\x22\xbd\xa3\xbe\xad\x3e\x2e\xa1\xb0\x05\xd7\xe8\x09\xa0\x9d\x23\x6e\x8b\x14\x3d\x1e\x6a\xdf\x97\xef\x8c\x49\x03\x72\x6c\xef\x06\xd3\xe5\xee\x58\x4d\x2e\xd8\xbf\x7d\xb1\x06\x71\xd9\x11\x6f\x30\xbf\x07\x19\x08\x31\xc1\xe1\x9d\x45\xe5\x16\xa3\x23\x2a\x11\xde\xe4\x0f\xa6\x14\x75\xc6\x8f\x04\x13\xd9\xe8\xb1\x30\x6d\xb5\x1b\x81\xd6\xdd\xd5\x92\x69\xec\xe6\x27\x06\xc0\x6e\xb7\x57\x96\x08\x31\x17\x4f\x8d\x28\xf7\x99\xdb\x4f\x0a\xd0\x95\xb3\xe8\x72\x4d\x39\xbb\x4c\x3d\x5a\x80\xd9\xbf\x12\xba\x4c\xe1\xed\x03\x78\x38\x4d\x3e\x05\x88\xa3\xca\xdb\xc1\xb2\xd1\xf8\x0e\xee\x6d\x02\xfc\xaf\x1c\x73\x2c\x08\x2c\x81\x42\x46\x6d\xf4\x1d\x6a\x3b\x74\x06\x99\xfb\x47\x48\x38\xdd\x18\x97\xe3\xa5\xdb\x3d\x84\x54\x5f\xec\xb7\x65\x36\x9d\x13\x26\x8a\xa1\x21\x35\x64\x31\x89\xf0\xa0\x7b\xbb\x29\xba\xb7\x9b\x3e\x56\xbb\xc9\x16\xe1\xe6\x6c\x3e\xa8\x44\x2a\x68\x77\xc8\x88\xb2\x86\x00\xde\x9b\x52\x5e\x92\x3e\x52\x53\xea\x7a\xe6\xc2\x38\x91\xdd\x66\xb3\xea\x10\x53\xe1\xa3\x33\xae\xee\x94\xe5\x74\xc0\x8e\xbc\x37\x8e\x3a\x6d\x6e\x87\x71\x34\xa9\x63\xff\x9e\x26\xd2\x84\xa0\xa5\xbb\x60\x0e\x69\x19\x98\x02\x07\x0c\x1b\x38\xf8\xb5\xdf\xbc\x0f\x3f\xf1\xf5\xee\xbc\xed\xa9\xec\xd8\x3d\xdb\x68\xe9\x7c\x10\x26\xec\x46\x0a\xf1\x1f\x4e\x6a\x32\x18\x7c\x00\xca\x3c\x92\xf4\x6b\x1e\x9e\xc7\x70\x46\x34\x44\xee\x83\x01\x84\xa5\xa8\x80\xfb\x31\x01\x2f\xdd\xe2\x55\x11\xb8\x42\xb2\x4d\x69\x4c\x2f\xd3\x52\x4c\x5e\xc2\x70\x7e\x1c\xc3\x53\x94\xf8\xde\xbd\x98\x2e\x90\x01\xdc\xbf\xb8\xdc\xdb\xaa\x7f\x4b\x5b\xd5\x7e\x5b\x6b\xbc\x66\x6e\x87\xf3\x71\x9a\xa7\x7d\x5e\xc6\x2a\x71\x57\x5f\xe8\x9c\xcd\x16\xa4\xa4\x30\x39\x8f\x02\x27\xc1\x17\xe3\x67\xc1\x58\x94\x2e\x51\x5c\xd7\x94\x98\x44\xdf\xdf\x7e\x7e\xb8\x64\x76\xa7\xe6\xca\x97\x1d\x26\xab\x62\x3b\x66\xaa\x7c\x39\x65\xaa\x8c\xc2\xe8\x12\xc4\xf5\xcd\x94\xf1\xe4\xfd\xed\x27\x8a\x43\x64\x77\x69\x9e\xdc\x3b\x3b\xef\x95\xa9\x50\x31\x1d\x60\xdc\x77\xc7\xfc\x0d\x0d\xf9\xbd\xd4\xa8\xdd\x04\x35\x6a\x24\x46\x97\x24\xae\x6d\x2e\xdc\x2b\x51\x07\x13\xd9\x5d\x99\x23\xfb\xa8\x4f\xbb\x09\xea\xd3\x38\x84\x2e\x39\x5c\xdb\x0c\xb9\x57\x9e\xf6\x93\xd8\x9d\x9b\x20\x1f\xdd\xc9\xd8\x7d\xd8\xa1\x2d\xec\x70\xff\x81\x70\x7f\xb2\xd6\x69\xe3\xee\xea\x0f\x75\xb2\x36\xa1\x4b\x6d\x67\x6a\xc6\x79\xd0\xad\x3b\x53\x1b\x3e\xaf\x9a\xb4\x3f\xfe\xfd\xce\xd8\x5c\x62\x18\x1a\x4a\x43\xa7\x2d\x81\xe1\x86\xf7\x67\x2e\xf7\x67\x2e\x01\x0c\x86\x69\x7b\x87\x8b\x89\xf2\x41\xfb\x78\xcf\x5f\x0e\x11\x4a\x73\x7f\x0a\xa3\xe8\xbb\x0b\xa7\x30\xb7\x63\xc6\x7c\x71\xc7\xa7\xcc\xfd\x61\x4c\x74\x47\x0e\x63\x6e\xc7\x7c\xf9\xf2\x6e\xcf\x97\xfb\x43\x99\x7b\x6d\x6b\x8a\xc8\xee\xe0\x4c\xb8\x3f\xab\x11\xe4\xdd\x81\xb3\x9a\xdb\x30\x5d\x0c\xf9\xdd\xc1\x09\x73\x7f\x70\x73\x37\x0e\x6e\x6e\xc7\x6c\xb9\xe3\x8a\xd6\x47\x77\x8a\x73\xa7\x8e\x68\x0e\xd8\x91\xf7\xa7\x30\x9d\x36\xee\xde\xfc\x90\xa7\x30\x07\xbb\xdf\x74\xf7\xcf\x62\xfe\xa6\x67\x2f\xc6\x59\xcb\xde\xf7\x9b\xc2\xef\x31\x79\xb7\x58\x67\x02\xcb\x90\x36\x53\xf6\xf4\xd1\xe9\x2c\x83\x64\x15\x90\x3d\xf5\x5e\x60\xfa\xd7\x80\xd4\xa9\xf7\x02\xd3\xbf\x7a\x2f\xda\x05\xdf\xa9\xf3\xab\xbb\x8e\x6c\x9f\x01\x4d\x26\x69\xd7\x23\x73\x7f\x06\x89\x69\x38\xbd\xec\xbd\xac\xd4\xcf\x50\x6e\xd9\x7b\x49\xe1\x47\x4f\xf0\x01\xbe\x15\x66\xbe\x6a\xd0\x7b\x62\x6a\x28\x24\xe0\x50\x1b\xad\xe5\xe5\xb2\x4e\x45\xa3\x0b\x2c\xd5\xaf\x6f\x32\xb9\x68\xb3\x8f\x8e\x61\xd2\x0e\x36\x76\x0f\x4d\x58\x59\xd4\x2c\x1e\xf9\xda\x84\xc4\x25\xb4\xb3\x21\x82\x1c\xf7\xca\x9d\x8d\xcd\x37\x0f\x08\x5b\x51\xe7\x53\x15\x37\x4b\x9f\x6f\xaa\xa9\x27\xef\xf6\x9e\x6d\x5b\x56\xfc\xae\x5e\x1d\xb1\x0b\xc1\x07\xb3\x1d\x0d\xd6\x27\x28\x00\x78\x07\x40\xa7\xc1\x91\xef\x75\xbf\x7e\x5b\xf7\xca\xe5\x01\x35\x6a\x38\x0e\x71\xea\x78\x1c\x85\xc5\x7d\x1e\x45\xff\x7a\xd8\x33\x5b\x39\xde\x9d\x09\x00\xe2\xab\x35\x6a\xb4\x4f\x63\x5f\xc1\xd4\x73\x0f\x0c\x12\x6e\x34\x32\xb3\x2e\x04\xb7\x0f\xe4\xbd\xf7\xac\x2c\xbc\x67\x23\x92\xe2\x19\x2f\xcb\xe2\x93\x66\x7f\xb9\xe7\x1d\x56\xf8\x0e\x5e\x72\xff\x6b\xd8\x9d\xc0\xe7\x5b\x1d\x83\xc7\x40\x46\xd5\xfd\x51\x93\xbc\x4a\xe1\x85\x9b\x0b\x2a\x9e\xe1\xf1\xfa\x0f\x44\x2b\xf5\x1c\x2a\x61\x96\x77\xda\x1e\x7a\xb0\xe6\x51\xa1\xbc\x2c\x83\xa8\x64\x4d\xc0\xf5\x93\xf8\x68\x45\x36\x89\x47\xf1\x2c\x1c\x89\x92\xb4\x8c\x19\xad\x28\x18\x3b\xdb\xba\xe2\xfb\x7c\xbe\xf2\x53\x25\x60\xfd\x49\x81\xac\xff\x96\x9f\xf7\x13\x82\x7c\xa2\x0e\x5e\x7e\x27\x15\x5d\x15\x2c\xe5\x7f\x15\x2f\xb5\xfb\x1f\xfb\x94\xd5\x77\x5f\x7e\x31\x24\xa3\xb1\xb4\x5c\xd2\xbc\xda\x59\xc8\x09\xa1\xe6\xab\x5b\x46\xcd\xe2\x76\x91\x13\x4f\x27\x47\x0d\xe7\x34\xa1\x30\x9c\x77\x01\x73\x48\x55\x05\xa4\x3f\xc8\xcf\x63\xb1\x3a\x67\x4f\x1e\x65\xc5\x8a\x30\xfe\x79\x93\xc6\x11\xbe\xfc\x05\xcf\x03\xf9\xd7\x8f\x62\x85\x8b\x47\xb1\x3a\x20\x19\xb0\x22\xe6\xc0\x1c\xef\x8b\x30\x32\xb6\xc5\x25\x90\xf1\xba\xb8\x3c\x00\x19\x1b\xb2\xdd\xe2\x33\x81\x85\x2c\xcd\x06\x5e\xe9\x55\xb5\xda\x35\x24\x1b\xbb\x86\x78\xd6\xb4\x92\x17\x31\x1a\xb1\xa2\xa8\x02\xa5\x51\xfe\xc1\x2a\x7c\x3d\x9c\xff\x1e\x4b\x47\xb5\x66\xb4\x5c\x17\x59\xb2\xef\xc2\xda\x00\x02\x4a\xce\xd5\x17\x83\x1c\x9f\xfa\x89\xb1\xe3\x69\x8c\x2d\xbe\x99\x7f\x6b\x6a\xa1\xed\x6b\x55\x36\x25\x3a\x29\x36\x24\xb5\xab\x9b\xe6\x9b\x65\x73\xcb\xde\x7f\x64\x7d\xf2\xac\xe7\xad\xe5\x32\xb8\x5e\x14\x29\xbe\x7b\xff\x0c\x1f\x8a\x3c\x9b\xed\x34\x76\xcd\x86\x71\xb1\xc5\x55\x61\x1e\x26\x5c\xa1\x84\xe0\x0b\x94\x49\x69\x88\x1a\xfe\xe7\xe2\x0e\xe9\x9c\xff\xd6\x46\x6d\xd3\x51\x76\xa8\x66\x07\xda\x4f\xbd\xc0\x99\x8f\x72\x15\xe7\xa7\x9c\x2d\xc6\x47\x0e\x5f\x0e\x12\x39\x23\xd5\xd1\x88\xe8\x60\xdb\x29\xab\x09\x56\xba\xf9\x05\xbc\xa7\xa2\xd9\xcf\xbd\xbb\x75\xe6\x35\x03\xf3\x4d\x35\x9b\x75\xeb\x66\x41\xa7\xce\xcd\x83\xc6\xe8\x08\x16\xde\x60\xab\x41\x0e\xc4\xd0\x99\xc8\x87\x3a\x81\xc1\x35\xe0\x1f\x65\x67\xd6\x1f\x47\xf0\x9c\x29\xcd\xc9\x22\x83\x55\xa9\x46\xb6\x46\xd0\x0f\xe7\x2c\xc1\xab\x08\xd6\x78\x03\x48\x4e\xcd\x69\x85\x2f\x86\x0f\x31\xb2\xea\x9e\xa4\x1a\xfc\xb4\x67\x82\x03\xb1\x23\x03\x67\xe3\xf2\xa9\x63\xed\x81\xcc\x1f\xda\x06\x96\xb9\xcf\xa7\x10\xc7\xb8\xf3\x34\xea\x2f\x1a\x83\x67\x8b\xb2\x47\x38\xb7\x7c\xb1\xc6\x8f\x71\x46\x36\xb8\x93\x15\xe2\xd9\x59\x8f\xd4\xed\x1d\x86\x00\xa2\x67\x26\x60\xaf\x66\x04\x4d\x5c\x32\x72\xa6\x7d\x9f\xc9\x66\x6d\x32\x74\x93\xfb\x21\xe6\x71\xcd\x69\xfb\x58\xcd\x40\x3e\xdb\xe0\x71\x42\x31\x4e\xe5\xe0\x37\x37\x73\x07\xef\xf0\x9c\x61\x9b\xb8\x5c\x34\x45\x49\xc2\x53\xa0\x00\x98\x5e\xf1\x6e\xcc\x76\xd1\x32\xd5\x27\xbd\x4f\x38\xf6\x77\x12\x83\x06\x31\xa3\x5b\xbe\x88\x88\xb7\x4b\x2f\xe4\xa2\x51\x46\x4b\x56\x6c\x64\x28\x04\xf4\xac\xa0\x60\x04\x7b\x8f\xb7\xac\xb8\x4a\x37\x10\xfd\x60\x47\xc0\xd9\x64\x98\x32\xde\xbf\xd7\x83\x48\x7a\xaf\x79\x5a\x76\x29\x3b\x6f\x24\x6a\x9e\xa1\xc4\xe7\x77\xf9\x30\xdb\x66\x64\x87\xab\x25\x87\x2c\x69\xb9\x0e\xae\x86\x98\x92\xaf\x64\x76\x38\x3b\x96\xd4\x9e\xe9\xef\x11\xe7\x1d\xdf\x82\xe9\x04\xf3\xed\xa4\xbd\x2d\xd4\xdc\x3f\xfb\x7b\x6c\xef\x2f\x43\xbb\xb5\x66\xdb\x0f\x43\xd7\x2a\x0f\xc1\xed\x98\x20\xf6\x7d\xbf\x53\xe5\x5e\x07\xf8\x88\x74\x80\xfb\x55\xe7\x36\xad\x3a\xfb\x2d\x32\x8d\x25\x38\x3c\xfd\x9b\xaa\x43\x93\x5f\x19\xdb\xc3\x20\x55\xcd\xc1\x65\x4a\x7a\x11\x02\xd6\x28\x59\x73\x08\xa2\xee\x98\xb1\xaf\x4f\x7a\x0d\x73\x79\xc2\xb9\xf9\x1a\xb3\x2c\x88\x08\x3f\xde\x91\xcd\xd5\x63\xf9\xd0\xb6\xbe\x91\xbb\xdd\x40\x08\xe9\x3b\xae\x37\x07\x00\x92\x8f\x55\xbf\x1e\x0d\x1f\xd5\xe4\xeb\x46\x02\xf0\x5d\xa7\x7d\x58\x41\x18\xab\x16\xf3\x76\x78\x13\xfc\xd3\xbe\x01\xea\x9b\xde\x9f\x61\x1b\x5e\xd7\xdf\x60\x07\xd8\xad\x33\x04\xb1\xe3\xd7\xf1\x51\x98\x51\xeb\x58\x6a\x3c\x49\x23\x25\x73\x9e\x6e\x7c\x38\x9b\x62\x97\x7f\xe4\xa9\x30\x26\x6c\xdd\xe5\xd8\x1d\x9e\xf6\x6c\x96\x01\x23\xac\xa1\xc1\x04\xff\x81\x6d\xa6\xe7\xa2\x06\xb8\x9b\xec\x14\x99\x6f\xd7\x82\xcd\xd1\xb7\x3c\x1c\x8d\x71\xb7\xb1\x32\x12\xb0\x03\x61\x3d\xe9\x2f\x02\xfa\x39\x8a\x93\x37\xc2\x98\x0e\x68\x6d\x79\x43\x7f\xda\x16\x01\x3f\x76\x1b\xc4\xc2\xb4\x79\xa0\xf5\x1d\x5d\x93\x8b\xb4\xa8\x19\xfe\xa1\x7b\xa6\x25\xcb\x98\xef\x58\xcb\x52\x07\x21\xbb\x4f\x7c\x4a\xbe\x47\x43\x44\x66\xc2\xc8\x2a\x5a\x74\xd0\x37\xb5\x8d\x70\x58\x5e\x13\x07\x16\xff\x1d\x7c\xb0\xa4\xd0\xfc\x59\x70\xb5\x26\x08\x0d\xd4\x04\x34\xff\xe4\xbf\xc3\xa6\x31\xd4\x1c\x64\xfc\xf1\x76\x9b\xa5\x54\x3c\xce\xa5\x13\xc3\x40\x75\x40\xd3\x76\x4b\xe3\x74\x99\xd2\x24\x2a\x69\x26\x4e\xd4\x8f\x0d\x18\x8c\xae\xd2\x92\x63\x45\x35\x06\x23\x5a\x21\x9a\x95\xb0\x5d\x44\xb9\xba\x59\x45\x19\x94\xf2\x05\x04\xd5\x91\xb2\xde\x02\x9d\x06\x88\x2d\xc9\x73\x68\x0e\x6e\x1e\x20\xa3\xef\xde\x31\xf4\xe4\x86\x98\xd3\xe8\xdf\x73\xf5\xf9\x1b\x3e\x90\xbf\xe5\x32\xba\x28\xd2\xc4\x78\x85\xc9\xf6\x2c\x99\xa0\xba\xc4\x53\x11\x41\xa1\xd0\x97\x62\x0a\x1a\x14\xd2\x1e\xa4\x8b\x55\xbb\x2d\x8d\x9e\xc1\xe9\x41\x94\x93\x8d\xb8\xd6\x51\x55\x24\x5e\xcb\xb7\x1a\x1a\xd8\xf6\xe6\x4d\x85\xe7\x4d\xc8\x71\x0b\xa0\x10\x74\xf8\x64\x01\x32\x98\x01\x0d\xca\x38\x3c\x6e\x40\x06\xa5\x65\x81\xdf\x62\x54\x0d\x5b\x19\x65\xe7\x8e\x40\xcd\x0d\x0c\xce\x34\x8e\x1b\x74\x81\xf8\xc8\xc4\x0a\x13\xee\x06\x48\x24\x03\xc8\x2c\x08\xe1\x67\x8f\xcb\x01\x23\xf0\x5a\xc0\xc8\xbe\x2d\x58\xba\xe2\x06\xd9\x3f\xc7\x11\x2d\x45\xd5\xac\x94\xdd\x39\x0f\x3f\xef\xf7\xeb\x2c\x3c\xd3\x91\xd7\x12\x2e\x28\x6c\x61\x5e\xfb\x40\xd6\xde\xa3\xf7\x42\xb0\xba\xa4\x71\x74\xea\x89\xc5\x09\xeb\xc4\x60\xf4\xee\x9e\x6c\x84\x10\x81\x26\x30\x9e\x0b\x4d\x88\x5a\x74\xcf\x21\x7a\x96\x64\x59\x71\x49\xd5\xe1\x19\xee\xf8\x83\xf3\x50\x68\xcc\xd3\xfb\x53\xe1\x44\xc1\xf6\x51\xba\x84\xb0\x47\x57\x22\x46\x74\x0a\xfb\x70\xba\xfb\x0f\x55\x59\x6e\x31\x4f\x23\x9c\x4a\x79\x1d\xb8\xeb\x7e\x79\x20\xf4\x6c\xbc\x63\xc2\x0d\x83\x3a\x4b\xf8\x06\x1c\x91\xe4\xf7\x9a\x2f\xe0\x09\xdc\x36\xc9\xd5\x7e\xe8\xeb\xd3\x09\xb9\xa1\x24\xea\xd0\x6e\xe3\x1a\x24\xd6\x3f\xb1\xa8\xa9\x6e\x64\x73\x93\xcf\x42\x67\x6f\x4c\xf7\x5d\xe1\x19\xce\x2f\x51\x38\xd1\x57\x26\xd1\x4d\x9f\xed\xd9\x69\xbf\x1e\xa8\xd3\x26\xa4\x98\xf8\xf5\x43\x76\xda\xaf\x7b\x77\xda\x0e\x3b\xed\xd7\x11\x9d\xb6\x73\x76\x9a\x5e\x2d\x34\x98\x14\x74\xf8\x21\x05\xf8\xd9\x15\x8d\x6b\xbe\xaa\xa3\xc2\xbf\xa1\xd5\xba\x48\xbc\x8a\xa7\x3a\xf9\xbf\xd7\x2e\xc3\xb5\x4b\x61\x1a\x4d\x54\x58\xa4\x0a\xe5\xbf\x22\xd7\x8b\xfb\x83\x36\xd3\xb7\xb7\x20\x9c\x16\xbc\xf0\xe3\x0c\xb0\xf6\xcf\xb6\x70\x94\x83\xda\xe6\xe3\x49\x64\x8b\xc6\x67\x4d\xf0\x69\xcf\x9c\xf5\x04\x9e\xbe\xa0\xc5\x8a\x91\xed\x7a\x87\x7f\xe8\xda\xe9\xbc\xcc\x67\xa2\x77\x8b\x6d\x72\xfa\x3c\x8a\x19\x15\x09\x1d\xc1\x64\x5e\x49\x5c\x69\x2c\x5e\x93\x5e\x89\x7c\x8f\x7e\x15\x16\x6a\x62\xb4\x16\xff\x3d\x64\xa4\x37\xd8\xe2\x94\xc5\x9c\x81\x06\x81\x3f\x92\x12\x2b\x03\x8e\x27\xf8\x69\x10\x4b\xb1\xd9\xc2\xba\x23\x6c\xec\x35\x15\x61\x80\x78\xa9\xb4\x58\x36\x47\x35\x4b\x4e\x4a\xcd\xfc\xf1\x0a\xd0\x66\x26\x2b\xaa\xde\x0b\x3b\x6e\xd1\x69\x00\x8d\xb6\xaa\x13\xfa\x20\x2b\xf2\x15\x7e\x8a\x16\x32\xd0\x82\x7f\xb8\xc2\xe3\x8a\x31\x54\x61\xe3\xd2\x4e\x17\xe4\x0d\x9e\x26\x9f\x98\xc2\x3d\xdc\x34\x19\x2b\x23\xd5\xce\x45\xcf\x18\x6a\x56\x30\x3e\x1e\x10\x16\xc3\xf1\x4d\x45\x72\x3e\x88\x17\xb4\xba\xa4\x9c\x94\xea\xb2\x10\x17\xa8\xfd\xc1\x7b\xaa\xdd\x8c\xb4\x14\x1c\x47\x8b\x8e\x7a\x19\xd6\x83\x7a\x2e\x81\x3e\x11\x5c\x69\x2e\xc0\xa9\x22\x48\xe6\x03\x25\x0e\x8d\x38\xf1\x51\x36\xab\x02\xee\x49\x0c\x0c\x36\x9a\xaf\xf8\xd4\xc5\x4e\xc4\x9b\xf2\x32\xc5\x74\x21\xae\xa7\xc3\x5c\xaa\x37\x4b\xca\xd7\x62\x2e\x5c\xac\xc5\xc9\xda\xad\x06\xf2\x0f\x08\xa8\x13\xa7\x82\x9a\xf4\xd0\x33\x09\x61\x89\x76\x83\x44\x1c\x3e\x12\x6e\x2e\x5c\x6a\x7f\xf5\x07\x87\x36\xd5\x66\xbc\xd5\x69\xf4\x86\x5c\xbe\x6e\xfe\x04\xeb\x50\xf3\xe5\x10\x84\x6d\xea\x4a\x44\x46\x4d\x21\xf0\x15\x6f\xcc\x17\x37\xa0\xf3\xb9\xf2\x77\xbb\xc9\x95\xb5\x87\xa8\x86\x5e\x7c\x9c\x41\xe0\x4b\x44\xff\xa8\x49\xf6\x40\xa4\xda\x2d\x72\x58\xb5\xc3\x28\x24\xd8\x7c\x36\x4a\x58\x04\x47\x59\x51\xa6\x55\x83\x5e\x97\x96\x1c\x5e\x6f\xf3\x14\xf4\xf4\x39\xe7\x64\x20\xca\x56\xd0\xf0\xb6\x24\xe3\xc8\x40\x7b\xf5\xcf\x94\x77\xcb\x9a\xaf\x59\x9a\x00\x42\x59\x57\x6d\x9f\x41\x53\xb8\xbd\xe8\x3a\xcd\x70\xd1\x04\x3f\xfd\x81\x37\x2e\xbe\xa9\xc7\x45\x2a\xd6\xad\x6a\x0a\x1b\xaa\xed\x4d\x31\x22\x86\x1e\xff\x1f\x0f\xe0\xb3\x50\x16\xb0\xd9\x13\xd5\x6a\x22\xf1\x33\xae\xac\x7c\xd9\x9e\x82\xf2\x6f\x5f\x69\xce\xbd\x83\x30\x36\xa1\x77\xb0\xe1\xfe\x3d\xf3\x61\x98\x53\x13\x68\x46\x4e\xde\x9d\x90\x13\x39\xb9\x8f\xc6\xf2\xba\xd7\x64\xba\x56\x4e\xa1\x03\xb9\x6d\xc8\x3b\x62\x55\x67\x84\x45\xb3\x2d\xee\xe9\x31\xe1\x06\xc9\xff\xfd\x3f\xc1\x8c\x1a\x60\x6e\x6a\xb6\xad\xf2\x62\x33\x66\xad\x57\xf5\x6f\x8a\xde\x56\xc1\x7c\x45\x59\x0c\x1b\x5c\x28\xe5\x1b\x59\xff\xe6\x17\x68\x6e\x56\xad\x5b\xcb\x28\x8c\x7a\xbd\xcd\xcd\x73\x00\xfe\x12\x3a\x96\x85\x4e\xa3\x9b\xe2\x01\x9d\xfb\x17\x7c\x45\xa2\xa3\x07\x50\xdb\xf4\xd5\x0d\x0e\x25\xbe\x40\x42\x60\x06\x57\xa0\xb8\x3d\xfe\x9f\xf3\x9f\x7e\x8c\x8a\x05\x00\x92\x61\x83\xb4\xd8\xd0\x8a\xed\x40\x4d\xa7\x64\xe0\x22\x10\x56\x99\x89\xe6\xa7\x0a\x9c\xee\x34\x9a\x63\x8d\xe6\x98\xd6\x4b\x98\x77\xd1\xe0\x46\x79\x1a\xd7\xc2\xe8\x7e\xa1\xbe\xec\x05\x90\xab\xda\x8f\x59\x2c\xe0\x89\xcf\x7b\x80\x63\x45\x45\x84\x05\x20\x3f\x74\xac\xa8\x37\xf2\x8f\x61\xae\x4c\xf0\x5b\x0c\xba\x49\xde\x60\xa4\x9f\x38\xcb\x47\xd7\x08\x78\xe7\x94\x69\xa5\x94\xdf\x8e\xcd\xec\x23\xbf\x63\x47\xb5\xee\x3d\x61\x54\x85\xbd\x79\x61\xdc\x84\x58\x8d\x9e\xdc\xfe\x5b\xfc\x76\x87\xda\x2a\x1c\x9b\x05\x23\x72\x3e\x30\xd9\xec\x78\x47\x70\xe9\xc2\xab\xb3\xdb\xb5\xbf\x7a\x6e\xab\xa1\x09\x6d\x88\x9e\x5b\xd2\x09\x65\x98\xc6\x8c\x5e\xf9\xd3\xbb\xc9\x3a\xe1\x02\x17\x01\xa6\x70\x89\x72\xfe\xf3\x0b\x31\xf0\xe4\x98\x4b\xf3\x8b\xe2\x1d\xb7\xb4\x30\x8b\x1a\xf5\xb9\x6b\x5c\x12\x71\x0c\x35\x37\x31\x25\x78\x91\xfb\x1c\x63\x60\x09\x33\xe7\x87\xdd\x75\xe8\xa2\xa5\x11\xcc\x13\xf1\x61\x52\xbf\x3c\x11\x5e\x10\x49\x84\xe8\x63\x48\xc0\xc7\x97\x1b\xaf\x29\x65\xf1\xf1\xf5\x9c\xcc\xc1\xd8\x94\x37\xcc\x3b\x0c\x1c\x1e\xb3\xe9\x58\x75\x77\xa2\x0f\xb3\xdd\x73\x18\x80\xd7\x1c\xf3\x98\x10\x07\x76\x30\x19\x66\x2d\xbc\x62\x6a\x00\xfa\x2d\x7f\xac\xea\xce\x5c\xe6\x9b\x09\x65\xe7\x28\x41\x50\x11\x3a\xd8\xc7\xc5\xaa\xb4\x83\x5d\xb0\x5a\x97\x5c\xcc\x1a\xbf\x18\x47\x8c\x43\xff\x55\x9d\x55\xe9\xeb\x0e\xfb\xfd\x00\x2f\x81\x3c\x88\xd4\x5e\x56\xa2\xfe\x4c\xb8\xcd\x64\xdb\xf6\x36\x7b\xea\x28\xdf\x0c\xf7\xe6\x8c\x92\xeb\x4e\x77\xe8\x2c\xe8\x2a\xcd\x5f\xcb\xb3\x88\xde\x88\xde\x14\x17\xf4\xbc\x98\x5d\xb5\x36\xe6\xae\x1b\xa4\xd9\xad\x0e\x8e\xd3\x11\xd5\x09\x57\x6c\x6c\x75\x8f\xa3\x6e\x67\x1e\x77\x12\x42\xa9\xbf\xb5\x99\x98\xdc\x18\xe2\xac\x28\xa9\x95\x3b\xaf\xa4\xc4\x29\x8b\x11\x4a\x7c\x72\x72\x42\xd8\x4a\xbb\xcf\x2c\x15\xc9\x47\x86\xfd\xe2\x3a\xe7\xf3\x87\x9a\xcc\x54\x43\x4d\x21\xb3\x1d\xdb\x74\xea\x9a\x34\x19\x89\x7a\x6c\xed\xbb\xbb\xc1\x61\x92\xfb\x0d\xe3\xd9\x32\x3e\x35\x5c\x99\x78\xbd\xb8\xb4\x96\x81\xf8\xbc\x17\xb6\x95\x4e\x6e\x76\xae\xab\x3b\x61\x44\x97\x5a\xa9\xd9\x75\x45\x5d\x41\x15\x67\x7b\xea\x8c\x6a\x9a\x79\xce\x9e\xb0\xdc\x0c\xf0\x11\x63\xce\x6e\x54\x74\xa5\xbd\x49\xf3\x82\xb9\xe3\xa9\xae\x13\x33\xf9\xfd\x86\x30\x73\x53\xce\x79\xe1\xf6\x3a\xc5\x3c\xbf\x01\xbc\x20\xe4\x1b\xc0\x7b\xd8\x49\x3c\x88\xd2\x3f\x8f\x85\x2d\x1c\x3a\x8d\x9b\xe3\x4d\x07\x95\x53\x92\xe7\xa9\x36\x42\x19\xb4\x5b\xe7\x5d\x01\x4e\x49\x81\xd7\xcd\xbf\x15\x82\xe5\xd0\xdd\xe4\xc7\xe8\x4f\x8f\x21\x1c\x37\x7f\x19\xd6\x9c\x7a\x6d\xa0\x74\x0f\x55\x3d\xbc\x27\x6c\xd3\xee\xb8\x9a\xcc\x71\x91\x91\xcd\x22\x21\x1d\x4f\x79\xef\x26\xa8\x49\x82\xb8\x18\x74\xe6\xd2\x66\xfa\x8d\xbc\xde\x12\x27\x69\x56\x71\x0c\x12\x85\xc6\x40\x40\x7d\x74\xf4\x0c\xec\xf0\xf6\x6b\x3a\x36\x0f\x91\xd3\x97\xf7\xa8\x67\xa8\x51\xa7\xd3\xd0\x83\x34\x2b\xe2\xc9\x48\x21\xde\x28\xcb\x68\x36\x90\xcf\xf4\xe0\x78\xbd\xa1\xe8\x03\x78\xfb\xbd\x18\x88\xd4\x79\x73\xc1\x3b\xbf\xcd\x20\xfe\xd0\xee\xcc\xd2\xed\x61\x72\x9e\x8e\x40\x78\x68\x25\x22\x74\x14\x1d\x74\xf1\x0c\xed\x4d\xe1\xa0\x56\xfe\xe8\x33\xcd\x21\x2d\x3e\x84\xad\x31\xa2\xae\x41\x37\x0e\x31\x87\x95\xf5\xa7\x7e\xf7\xad\xef\xfa\x06\xc5\x76\x0e\x86\xd7\xcc\x59\xfc\x4c\x5c\x83\xed\x17\xca\xe0\x18\x4f\x73\x59\xc3\x09\x01\x0f\xc0\x68\xbf\xcc\xbb\x07\xc8\x45\xab\xb9\x25\xfa\x98\x31\xb2\xc3\x3b\x58\xbd\x1d\xc1\x36\xe5\xfb\x1e\x70\xf8\x91\x37\x44\x03\x5b\x84\xed\x02\x32\x68\x65\xdc\x3e\x65\x1b\x4e\x96\xb8\x47\x3c\x18\xf9\x44\x23\xa0\x0d\x7b\xdc\x0c\xc4\x3d\x9a\xa3\xe7\xa2\x60\x45\x5e\xa4\xdf\x9c\x7f\x0b\x1d\xf1\x73\xf3\x6d\xc8\xef\xa5\x47\x56\xc9\x56\x5c\x07\x23\x2b\x08\x09\x55\x6e\xff\xd6\x5d\x12\x10\x9f\x26\x09\x99\x41\x4f\xa4\x31\x6c\x95\x3f\x8b\x4f\x62\x72\x8b\xb1\x34\x2e\xe2\xeb\x29\xcd\x48\x9d\x93\x1d\x5f\xc1\x53\x71\x38\xdd\x09\xc9\x19\x45\x5e\x22\x61\x35\xf4\x9d\x4d\x26\x50\xbb\x8e\xf9\x47\x4d\x12\x3e\xa7\xa9\x88\x74\x84\xc7\xc1\xf9\x68\x86\xe0\xb3\x00\x8a\x54\x5b\x99\x8d\x0f\x3f\xcb\x60\xaa\x61\x67\xa9\x71\x25\xb4\x43\x47\x57\x36\x93\x48\x12\x75\x4f\x85\x57\x0d\xa2\xf9\xae\xb4\x20\x86\x9d\xf6\xf9\xea\x2b\xed\xef\x7a\x68\x83\xe2\xe8\xf6\xb1\x72\x99\x26\xd5\xba\xa5\x7a\x4d\xd3\xd5\xba\x9a\x40\xb9\x7e\x72\x26\x12\x8c\x34\xf4\xa9\x31\x26\xb3\x12\x26\x49\x2a\xb3\x33\x89\xbb\x02\xa5\x8c\xa5\xa7\x5e\x67\xba\x5c\x7e\xfd\x13\x6a\x70\xb4\x62\x24\xa0\x92\xed\xba\xce\xb2\x28\x23\xbb\x82\x13\x2b\x92\x8a\x42\xfe\x17\xba\x24\x75\x56\x81\x87\xb5\xe2\xba\xbc\x5f\xac\x00\x01\x06\xec\xf7\xfc\xb7\x11\x9d\x8f\x45\x76\x62\x9b\xcf\x61\x8b\xb0\xac\x6e\xec\x11\xa2\x83\x86\x53\xf3\xe8\xfd\x82\xea\x8d\x4a\x2b\x26\x69\xf3\xb1\x87\xf5\xcf\xfa\x3a\x84\x3f\xbf\x08\xf6\x84\x41\xad\xe4\x61\x1c\xb9\x65\xba\xca\xe5\xc1\x8e\x20\x3a\x2d\xd5\x30\xf0\x52\x0d\x07\x3d\xc1\x51\xab\x0a\x21\x81\xa0\xdf\x07\x34\xa3\x1b\xbc\x9c\x87\x63\xb7\x49\x08\xa3\xae\x65\xeb\xb1\xd3\x3a\x39\x61\x81\xd3\x23\x82\xa5\x9f\x70\x8d\x52\x0a\xa1\x16\x51\x04\x12\x53\x44\x56\x24\x85\x97\xeb\x42\xa5\x01\xba\xe9\x4c\x02\x69\xe6\x89\x6d\xc6\x0c\xa4\xd1\xd0\x17\xe4\xf1\xb9\x00\x0e\xb4\x8c\xcd\x6e\xc1\x52\x7a\x07\x76\x83\x7d\x76\x81\x0e\x20\xeb\xa5\x49\x91\x30\x7e\xe0\x09\x31\xf1\x64\xa4\x78\x31\xd2\xcc\x0e\xdf\xdb\xfe\xbb\xb6\x48\xe7\x9b\xf5\x06\xe0\x07\xa5\xa0\x94\x69\xc8\xed\x53\x1b\x4b\xe1\xbf\x8e\x16\xee\x55\x70\x68\x93\x8a\xc7\x65\x35\xca\x1a\xaa\x17\x3b\x76\xa3\x13\x74\xc8\xfc\x1e\xce\x75\x91\x24\x6a\x2c\x8a\x93\x60\x79\x94\xa8\x06\xa6\x3f\x98\x39\x49\x94\x07\x01\x07\x9e\xd5\x8c\xba\xe0\x36\x69\x35\xe3\x86\x7f\xb6\x20\xf1\x3b\xe5\x47\x0c\x37\xa9\xc4\x51\xe7\x5f\xe6\x30\xb5\x6d\x06\xbb\x71\x3b\x5b\x6b\x4d\x04\xac\x7f\x63\xcc\x09\x88\x31\xf2\xcf\x57\x71\x47\xf0\x7c\x9c\x6a\xfe\xa4\x73\xe1\x86\x6c\xd7\x60\x01\xbf\x2b\x1b\x02\x0e\x40\x18\x02\xec\x50\xf7\x12\xd5\xa9\x93\x17\x80\xef\x25\x2f\x1d\x47\xa6\xb0\x6c\x32\x7a\x50\x22\x1b\xa0\x1d\x42\x5d\x73\x6b\xc2\x3d\xf0\xab\x43\xbc\x5a\x7f\xee\x7d\x61\x38\x90\xa2\xf9\x48\x8a\x2c\x20\xae\xf9\x5d\xe1\x73\x6f\xa8\x80\x6e\xb0\xef\xc3\xf2\x1e\xaf\x02\xab\x87\x80\xf7\x7a\x19\x58\xb6\x39\xb5\x73\xa6\xd7\x0d\xd8\xcd\x06\xde\xba\xbe\x75\x83\x2f\x94\xa2\x3b\x34\xf8\x76\x77\x61\xf0\xf9\xbd\xd8\x03\xb7\xbe\x79\x5b\xa9\x96\x8c\x7c\x71\xd8\xee\x13\x1f\xc8\x49\xe3\xc5\xe6\x96\xaf\x4c\x60\xd2\x48\x77\x2c\xd1\x56\x47\x7d\x98\x70\x85\x0a\x38\x56\xac\xd0\x6a\xb4\x3c\xc7\x4a\x13\x90\x1c\xe3\xb5\x17\x3e\xca\x68\x2e\x03\xd6\x35\xe1\x88\x68\x26\x8c\x80\x86\xcb\x92\xb3\x2f\x8e\xbf\x38\x1a\x25\x77\xc0\xd0\x48\x3d\x9c\xa7\x9e\xda\x3c\x2c\x6a\x9f\xfe\x06\x4e\x9a\x5e\xba\xc5\x50\x07\x0d\xfc\x5c\x8f\xb5\xd3\x6b\xf0\x21\x0c\x1c\x0f\x52\xe5\xa0\xe7\xa2\x4c\x68\x9c\xc1\x23\x26\x17\x84\x45\xc9\xd7\x98\x57\x04\x1e\xb8\x7a\xd4\x96\x48\x4f\xfd\xa7\xc9\xd7\x9f\x4a\x32\xa5\xd8\xff\x83\x37\x78\xc4\x61\xfc\xbf\x00\x00\x00\xff\xff\x4e\xc4\xb8\x78\x7a\xc5\x01\x00") + +func uiTsTypingsD3D3DTsBytes() ([]byte, error) { + return bindataRead( + _uiTsTypingsD3D3DTs, + "ui/ts/typings/d3/d3.d.ts", + ) +} + +func uiTsTypingsD3D3DTs() (*asset, error) { + bytes, err := uiTsTypingsD3D3DTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/typings/d3/d3.d.ts", size: 116090, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTypingsJqueryJqueryDTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\x6b\x73\xdc\xc6\xb1\x30\xfc\x5d\xbf\x02\xc5\x4a\x95\x96\x7e\x96\x54\x7c\xce\x79\xea\xe4\x50\x8e\xf5\xd0\x14\x6d\x33\x91\x44\x1d\x91\x8a\x9d\x72\xb9\xde\x02\x17\xb3\x24\x2c\x2c\xb0\x01\xb0\xa4\x18\xdb\xff\xfd\xed\xdb\xdc\x70\x5b\xec\x95\x5c\x59\xf9\x10\x53\x0b\x60\xa6\x6f\xd3\xd3\xdd\xd3\xd3\xfd\xec\x59\x70\x79\x3f\x55\x41\xa4\xc6\x71\x1a\x97\x71\x96\x16\xc1\x38\xcb\x83\x5f\xfe\x77\xa6\xf2\xfb\xe0\xcb\xc3\x2f\xff\x7c\xf8\x31\x78\x16\xfc\xc7\x21\xfc\xf7\x09\xbc\xfd\x36\xcf\x7e\x51\xa3\xf2\x28\xb8\x29\xcb\xe9\xd1\xb3\x67\xbf\xfc\x0b\x5f\x3c\x1c\x65\x93\x67\xf8\xf8\xa5\x33\xce\xd5\xfd\x51\xf0\x4d\x96\xc7\x45\xf0\xcf\x30\xfd\x90\xdd\x06\x5f\xe1\x37\x05\x7c\x74\x1d\x97\x37\xb3\x2b\xfa\xe8\x0a\x5f\xb8\xa7\xe7\xcf\xbe\x1e\x06\x27\x37\xf0\xcf\x32\x0e\xd3\xe0\xfb\x6c\x3c\x9e\x28\xf8\x87\xca\x1b\x3f\x1c\xdd\xd8\x17\xe0\xc3\x8b\x52\xdd\xaa\xe0\x5b\x95\x96\x59\xda\xf8\x3e\xbd\x70\xc0\x2f\xc0\xfb\x2f\xe3\x59\x92\xa8\x38\xf8\x2e\x9b\xa8\xa2\xf1\x03\x79\x03\xde\xbd\x0c\x8b\x22\x38\x4b\xe2\x6c\x9a\xcd\x92\xac\xf9\xed\x32\x2c\xb2\x38\xc1\xb7\xff\x06\x7f\xa5\xc1\xc5\x9d\x0a\xf3\x38\xbd\x56\xcd\xd0\xfc\x82\x2f\x15\x07\x69\x76\x1b\x26\x2a\x1c\x23\x02\x0a\x91\x8e\x93\xa4\xf1\xfd\x02\x9e\x16\x1f\x70\xf8\xef\x66\xb3\x02\xa0\xce\x8a\x42\xa5\xcd\xa0\xc0\x1b\xff\x86\x17\xff\xae\x92\xe4\x3e\xb8\x98\x4d\x26\x2a\x4f\xe2\x66\x30\x3e\x14\xfa\x31\x7c\xf0\x4d\x58\x84\x79\x58\x06\xc7\x49\x1c\x5c\xdc\xab\xa8\x99\x5f\xfc\x12\xbc\xfe\x26\x06\x16\x24\x61\x11\xfc\x90\x25\xb7\x2a\x2f\x5a\xe8\x9e\xde\xe9\xc7\x48\x75\x95\xab\x0f\xc1\x49\x3c\x52\x79\x96\xaa\xc6\xf7\x23\x7c\x65\x24\x6f\xc0\x27\xc7\x69\x94\xab\xbb\xe0\xbb\xb0\x98\x86\xcd\x92\xc0\x6f\xf0\x0b\x44\x7f\xe4\xe8\xf7\x61\x0e\x92\x04\x30\x7d\x1b\x17\x37\x2d\x22\xf4\x0b\xbe\x79\x33\xa6\x17\x88\x03\xf1\x07\xc0\x29\x0e\xfe\x9e\xa5\x51\xd6\xc2\x06\x7e\x05\xa9\xa5\x52\xf8\x1e\xe8\xfa\xb7\x70\xf4\x61\x12\x36\x23\x7f\x25\x2f\xfd\xc2\xef\xc0\x67\x6f\x41\x84\x82\x8b\x2c\x07\xe6\xb5\x88\x46\xf1\xe7\xff\xf9\xcf\xff\xf8\x9f\xff\x42\x4c\xb2\xe2\x06\x04\x3b\xcf\xae\x9a\x85\x02\x9f\xf3\x63\x7a\xf9\x26\x0d\xde\xa9\x18\x99\xde\x88\x2c\x3c\x4f\xef\x73\x7a\xe1\x19\x2d\x80\xd1\x87\xe0\x16\xe0\x8e\x00\x8e\x6f\x40\x54\x3f\xb4\xac\x82\xd1\x87\xdb\x88\x9e\x7f\x5d\x59\xe0\xac\x03\x3a\xd6\xb3\xbc\xab\x92\x7b\xd4\x31\xd1\x93\x27\xcf\xbe\x08\xbe\x58\xe7\xff\x9e\x9c\x64\xd3\xfb\x3c\xbe\xbe\x29\x83\xc1\x68\x3f\x78\x1d\x8f\xf2\xac\xc8\xc6\x65\x70\x92\xe5\xd3\x0c\xc4\x14\xc0\x3c\x04\x79\x4e\x02\x7a\xa9\x08\x72\x55\xa8\xfc\x56\x45\x87\x4f\x5e\x81\x84\x01\x0b\xa2\x60\x96\x82\xc4\x05\xe5\x8d\x0a\x8e\xa7\xe1\x08\xfe\x23\x4f\x86\xc1\x3f\x40\x6a\x61\x00\xd4\x7d\xc1\x00\x5f\xd8\x93\x47\x7b\xfb\xcf\x83\xfb\x6c\x16\x4c\xc2\xfb\x20\xcd\xca\x60\x56\xa8\x27\xe5\x0d\xe8\xb9\x71\x9c\xa8\x40\x7d\x1c\xa9\x69\x19\x80\x64\x00\x3d\xa6\x09\xe8\xb2\x91\x0a\xee\x80\x42\x34\x89\x0c\x71\x18\xfc\x53\x06\xc8\xae\xca\x10\xde\x0d\xe1\xed\x29\xfc\x6b\x8c\x6f\x69\xe8\x02\x58\x8d\xa2\x67\xef\xee\xee\x0e\x43\x02\xf0\x30\xcb\xaf\x9f\x25\xfc\x42\xf1\xec\xd5\xd9\xc9\xe9\x9b\x8b\xd3\x03\x00\xf2\xc9\x93\xcb\xef\xcf\x2e\x82\x93\xf3\x97\xa7\x01\xfc\xf7\xed\xbb\xf3\x7f\x9c\xbd\x3c\x7d\x19\x7c\x71\x7c\x01\xff\xfe\x22\xf8\xe6\xf8\xe2\xec\x62\x18\xfc\x70\x76\xf9\xfd\xf9\xfb\xcb\xe0\x87\xe3\x77\xef\x8e\xdf\x5c\x9e\x9d\x5e\x04\xe7\xef\xe0\xab\x37\x2f\xcf\x2e\xcf\xce\xdf\xc0\xbf\xbe\x0d\x8e\xdf\xfc\xf3\xc9\xdf\xcf\xde\xbc\x1c\x06\xa7\xf0\xf6\xe9\xbb\xe0\xf4\xc7\xb7\xef\x4e\x2f\xe8\xcd\xb3\xd7\x6f\x5f\x9d\x9d\xc2\xa3\xb3\x37\x27\xaf\xde\xbf\x3c\x7b\xf3\x9d\x19\xf2\xd5\xd9\xeb\xb3\xcb\x63\x1c\x05\x47\xd0\x6f\x3e\xe9\x9a\xe9\xf2\xec\xf2\xd5\xe9\x30\xf8\xf6\xec\xf2\x0d\x8e\xff\x2d\xbc\x70\x1c\xbc\x3d\x7e\x77\x79\x76\xf2\xfe\xd5\xf1\xbb\xe0\xed\xfb\x77\x6f\xcf\x2f\x4e\x87\x4f\x5e\x9f\xbe\x3b\xf9\x1e\x46\x39\xfe\xe6\xd5\xd9\xe5\x3f\x71\xa0\x37\xe7\x6f\x0e\xce\xde\x7c\xfb\x0e\x20\x38\x7d\x7d\xfa\xe6\xf2\xf0\xc9\x93\x0b\xa5\x5c\x56\xba\x1c\xd4\x24\xc5\xdd\xad\x98\xaa\x51\x3c\x8e\x47\x41\x12\xa6\xd7\xb3\xf0\x5a\x05\xd7\x19\xe8\xa8\x14\xf4\x75\x30\x55\xf9\x24\x2e\xf0\xb3\xe2\x49\x98\x46\x41\x12\x4f\xe2\x32\xe4\x1d\xcd\xca\x8a\x66\xe3\x93\xb5\xca\x73\xf0\xc5\xb3\x27\xb8\x4a\xbe\x78\x12\x7c\x11\x9c\xa5\xb0\xb3\x8d\xc3\x11\x83\x4c\x58\xfd\xed\xf8\xc7\xa0\x50\x65\x89\x70\x96\x37\x20\x1c\x77\xb8\x5f\x8c\xb2\x74\x1c\x5f\xcf\x72\x65\x5f\xca\x15\x6c\xcb\x45\xf9\x04\x07\x8c\xcd\x38\x7f\xa3\x4d\xfd\xf8\x97\xf0\xe3\x05\x0f\x52\x04\xbf\x3e\x09\xe0\x7f\x34\x23\xfe\xef\x8b\xe0\x12\x86\x80\x01\x4b\xd8\x27\x83\x12\x2d\x83\x02\xff\x02\x01\xc5\xb1\x65\xd8\xe0\x46\x85\x4c\x08\x00\x01\x96\x77\x52\xd0\x53\x5a\x5a\x79\x70\x87\xbf\x7e\x88\x81\x74\x20\xcc\xb0\xe0\xa6\x19\x92\x3d\x16\x60\xc3\x91\x5e\x1d\xb9\x2a\x67\x39\x2c\xcf\x33\x12\x79\x79\x50\x18\xfc\x52\xa5\xa2\x22\x98\x64\x11\x32\x8a\xe8\x3f\xc4\x41\x62\x5c\xc4\xb0\xb0\x26\x0a\x78\x11\x05\x65\x16\x80\xaa\x2e\xb2\x20\xc3\x55\x26\x60\xfe\xe9\x30\x64\x1c\x67\xd3\xc1\x7e\x30\x51\xe5\x4d\x06\x2b\x9e\x11\x7c\x46\xff\x95\xc9\x5e\x1c\x05\x61\x7a\xff\xbc\x4a\x83\x6f\xee\xd1\x1e\x0a\x67\x49\x39\x0c\x42\x54\x1e\x8c\x76\x11\x84\xb9\xd0\x23\x2c\xee\xd3\xd1\x0d\xec\x50\xd9\xac\x00\x7d\x3b\x88\x0f\x61\x45\x93\x0a\x88\x09\x03\x84\xab\xcc\x67\x0a\x6c\x20\x3d\xd4\x3e\x61\x8a\x6a\x03\x31\x0b\x9c\x01\xcc\xf8\x43\xfe\x14\x87\xc9\xa6\x88\x31\x0e\x33\x0e\x13\x54\x17\x27\xa0\xd9\x8a\x83\x28\x9b\x84\x44\x3a\x0d\x10\x50\x39\x0a\xcb\x10\xf5\xeb\x51\xb0\xf7\x0b\x6c\x78\xd3\x3d\xfb\x18\x48\x83\xfa\xa9\x98\x4d\x41\x1b\x96\xde\x9c\x19\xc8\xb9\xe8\xc7\x37\x59\xa9\x98\x97\x4d\x40\x91\x92\x2a\xd5\x04\xf5\x69\x1e\x03\xb2\x49\x06\x1b\x07\x92\xf9\x2a\xcf\xee\x80\xe7\xc3\x20\x8a\x8b\xf0\x2a\x41\xa6\x01\x35\x81\xb6\xbc\x58\xee\x6e\x50\x1b\xba\x62\x03\x78\xe1\xc3\x5b\x40\xe7\xb8\x40\xe9\x30\x56\xe6\x5f\x86\xf4\x22\x28\x52\xfc\x99\xa8\x7b\xc4\x98\xb3\xe6\xfc\xe5\x5f\x3f\x7e\xff\x2e\x18\xfc\xe9\x10\xb6\x14\x95\xe7\x2a\xda\xc7\xc1\x22\x35\x05\x59\x08\x4b\x15\x89\x3e\x9e\x15\xa4\x8c\x59\x1a\x67\xc0\xe3\xa2\x78\x06\xaf\x67\xf9\x33\x52\xc5\x0a\xf0\x1c\x01\x43\xaf\x60\x37\x16\x0a\x03\xc3\x52\xb0\x20\xc3\x48\x34\x2f\xc8\x7e\xce\x32\x1b\x21\x3e\x2c\x3b\x85\x7e\xc8\x60\x64\x57\x68\x01\xe3\x04\x37\x00\x2a\xff\x78\x18\x81\xb5\x02\xc2\x26\x2b\xd5\x42\x26\x8f\x05\x9a\xc1\x7e\x45\x0e\x11\x53\x90\xc2\xab\x2c\x03\x33\x30\xad\x49\xe2\x71\x00\xe3\x1c\x68\xfa\x19\xd8\xc7\xb3\x74\xc4\xf2\x81\x5c\x1b\xc1\x26\x7e\x45\xc4\xa3\xf5\x40\x4b\xe6\xde\x81\x77\x00\x12\x63\x28\xfd\x5f\x87\x1f\x87\xc1\x8f\xaf\x5f\x7d\x7f\x79\xf9\xf6\x1d\x8f\xbb\xaf\x31\xba\x52\xa0\x69\x94\xac\x32\x94\xf3\xc3\xe0\x3d\x51\x13\xfe\x09\x03\xa3\x70\x8e\x80\xc4\xd9\x44\x14\x00\x08\xac\x2a\x47\x87\xa4\x33\x78\x2a\x94\xc7\x42\xeb\x16\x1e\x95\x57\xcd\x14\x4c\x68\x00\x2f\xc4\x7f\x5d\xcf\x60\xf1\x96\x05\x7e\xc7\x0b\x06\xe0\x47\xa5\x14\x9c\xde\xd2\x9c\xef\x48\x31\x20\xf9\x59\x02\x64\x55\x33\x74\x17\xb0\xee\x2d\xfe\xac\xff\x70\x87\x4d\x5c\x49\xab\xc9\xd7\xff\x1d\x56\x87\x90\x05\x46\x03\x5c\xb1\x58\x00\x7c\xb9\xba\x0e\xf3\x28\x01\x4e\x69\x96\x93\x0e\x24\x45\xc6\x23\x7b\xec\xb3\xe3\xbd\x08\x06\x44\x81\x23\x51\xb2\xf0\xe7\xd0\x50\xe2\xa8\x41\xf3\xee\x37\xab\x1e\x50\x11\xa2\x3e\x08\xf7\xa1\xd1\x9b\x30\xd1\xc8\xe0\x07\x90\x4e\x61\xd7\x2a\x68\x75\xc3\xbb\x84\x00\x6c\x78\x11\xea\x1b\x67\x69\xf2\xda\x3e\x0a\x64\x52\x7e\xc9\x0c\xce\x03\x67\x29\xac\xe9\xbb\x2c\xff\xc0\xa2\x3f\x2a\xf1\x9f\xb8\xe6\xbe\x3f\x3d\x7e\x49\x0c\xfd\xee\xf4\xd2\x68\x03\x50\x62\x25\xbd\x8d\xee\x5d\x10\x4e\xa7\x8a\x17\xca\xde\xff\xf7\xd7\x5f\xcb\x18\xcc\xe9\x32\x9c\x4c\x7f\xdf\x23\xfd\x07\x53\xe1\xa7\x60\x95\x83\x9d\x0d\x7b\x50\xc1\x92\x62\xfe\x8d\xac\x47\x04\x50\x1f\x02\xe8\xb8\xcb\x65\x25\xda\xea\x48\xf3\xc2\x21\x3a\xca\x99\x31\xaa\xce\x4e\xff\x02\xaa\x45\xa1\xc5\x04\x86\xc1\x25\x0e\x32\x01\x61\xc4\x19\xc3\xe0\xfd\xbb\x57\xbc\x26\x6e\x50\xd2\x92\x1c\xc4\xf4\x1e\xa8\xa3\x52\x87\x72\x08\x37\x02\xe6\xb3\x92\x48\xd3\xb9\x12\xed\xa2\xcb\x1c\x89\x21\x50\x5c\x25\x87\x26\x2f\x38\x14\x45\x30\x08\xc7\x88\xa4\xac\x7c\xa2\x24\xe9\x22\xb3\x8c\x79\x65\xa8\x8f\x6a\x34\x03\xb8\xf6\x99\x3a\x66\x96\x6b\x05\x4b\x47\x96\x4d\x79\x97\xd9\x75\x73\xe4\xac\xb7\xde\x4b\x1b\x67\x0f\x83\xa2\xcc\x59\x0c\x4a\x75\x0d\x76\xfa\xbf\xd9\x8e\x00\x5d\x09\x06\xce\xcc\x88\xbc\xc6\x64\xb0\x27\xb0\xef\x0d\x83\x3d\x60\x14\xef\xc5\x2a\xc2\x7f\x12\x26\xf8\x07\x32\x3d\x9b\x95\xf8\x67\x08\xb6\x3f\xfe\x01\x28\xee\x01\x93\x41\xfe\xf8\xad\xfd\xb6\xe5\x68\x94\x72\x61\xe4\x33\xd5\x06\x02\xfe\x95\xe7\x21\x59\xc4\x9a\x26\x20\x40\xa7\xc0\xa6\xca\xf2\xb7\xbc\x40\x45\x41\x26\x45\xb3\x62\xf1\xf9\x2d\x73\x37\x2e\xdc\x52\x7d\x2c\x2f\x88\x26\x47\x42\xb3\x96\xe5\x7a\x9c\x6a\x02\x03\x98\xfc\xe6\x33\xd0\x21\xb3\x24\xcc\x0f\xd4\x47\xd0\xdd\x64\x48\x02\x1b\xe3\xbc\x60\xc1\x8c\x50\xf2\xc1\x23\x54\xc1\x4d\x76\xa7\x29\x42\x78\x10\xc9\x84\x01\x6c\x34\x0d\x83\x6b\xd8\x2c\x53\xd0\x01\x85\x67\x93\x1d\x06\x83\x5b\xb1\x6c\xc3\x08\x96\xce\x11\x92\x74\xbf\x82\x1e\xbd\x8e\x16\xce\xaf\xc1\x4f\x1f\xd4\xbd\x46\xe4\x67\x46\x24\xf8\x5d\x70\x79\x76\x3c\x82\x75\x4f\x6b\x18\xe4\x9a\xe1\x21\xf3\x09\x8c\xaa\x19\xaa\x9c\x51\x16\x01\x20\xf8\xcb\x53\x63\x96\xc0\x2e\x3e\x0b\xd1\xd1\x84\xff\x03\x45\xa3\x67\xa3\x48\x92\x6c\x14\xf0\x9f\x3d\xd2\x32\x7b\x32\xcf\x82\xce\xe2\x33\xb0\xc1\x41\x0a\x9f\xfd\xf7\x7f\xfd\x47\x95\xe8\x3f\xe0\x92\x2b\x44\xf1\xa0\xf5\xa3\xb5\x0d\x1b\xa0\x43\x31\x01\xe2\x2a\xd1\x5e\xb2\x21\x86\x82\xb1\x07\x9a\x2b\x11\xb3\xf2\xd9\xc7\x03\x70\xae\x0e\x40\xfd\x4c\x0e\x66\x79\xa2\x52\xc4\x18\x2c\x8a\xd1\x0d\x32\xa4\xfc\xeb\xfb\xcb\x6f\x0f\xfe\x02\x62\x0d\xf6\x0c\xc8\x1e\x79\x79\x29\xdb\xe4\x93\x8c\x36\x65\x70\xc3\x8c\x6d\x07\x4c\x87\x71\x63\x54\xa2\xb8\x76\x03\xf1\xec\x08\x8c\x83\x52\xe8\xc3\xf6\xe9\x60\x9f\x56\x41\x2a\xfb\x6d\x98\xdc\x85\xf7\xbc\xed\xfa\xf8\x04\x03\x45\x42\x30\x06\x65\xc9\xe8\xca\xee\x2c\x1a\xe3\x87\xff\x3c\xa1\x55\x0f\xe4\x95\x55\x6f\xfc\x1b\xc2\x0f\xcc\xb3\x11\xc8\xb2\x12\x01\xa4\x85\xc7\xa8\x39\xd3\x12\x92\xcf\xe5\xc3\x7b\x36\xe5\x58\x19\xeb\x77\x49\x46\x51\x5d\xf3\x4e\xe4\xec\x32\x08\x2e\xbc\x95\x5e\xf3\xaf\x44\x40\x18\xa1\xba\xde\x8c\x88\xb4\x58\xdd\xb4\x68\x65\x35\xe9\x85\xcd\x9a\x5d\xbb\x24\x1f\x69\x99\xa1\x45\x8e\xab\x1a\xcc\xa2\x84\x2c\x2c\xa3\x4f\x0f\x3d\xcb\xdd\xfd\x8c\x75\x81\x0c\x4e\x64\xc8\xd1\x42\x43\x2a\xb2\xef\xc2\x12\xaf\x2d\x17\x32\xa5\xc4\xec\xc0\xd1\xd1\xf2\x0c\x5d\xb7\x69\xa2\xf2\x6b\x54\xfe\xda\xab\x37\x5f\x6a\x85\xad\x99\xbc\xdf\x40\x85\x8f\x65\x0b\x05\xac\x36\xc1\xf7\xc0\xd0\xd7\x02\x8e\x54\x3b\x28\xb3\x03\xfd\x37\x3e\x07\xc9\xe0\x3d\x95\x54\xa2\xf9\x01\x16\xe9\x6d\x98\x80\xe7\x81\x28\x57\x0c\x45\xf6\xb8\x18\xe1\x32\x0f\xd3\x02\x65\x1e\xa0\xe5\x0f\x8c\xf6\x67\xe5\xd3\x4f\xc9\x08\x14\x73\xd5\x8c\x67\xe1\xe0\x42\xb9\x83\x4d\x92\x2c\x11\x92\x26\x58\x23\xe8\xdf\xbc\xf4\xdc\x9b\x60\xa0\x4d\xec\xbf\x5d\x9c\xbf\x79\x0b\x7b\x19\x73\xa4\x00\xf3\x21\x60\x4f\x48\x7b\x4c\xca\xe2\xe0\x0e\x24\x5e\x98\x6c\x08\xac\xac\x86\xb4\x74\xd5\xc7\x10\xf5\xff\x50\xd6\xd8\x41\x11\x47\x88\x7a\x14\xa3\x05\x24\x9b\xbc\x5e\x01\x3c\x55\x1f\x7a\xd8\xa9\x3b\x2c\x89\x97\xa2\xb1\xae\x54\xc3\x62\x27\xfb\x8a\x35\x17\x91\x36\x62\xbb\x86\x82\xec\x42\xda\x21\xab\x82\xd2\xd8\x37\x7a\x5f\xc7\x6f\x81\xfd\x6c\x94\xf1\x97\xe4\x54\xe5\x64\x3d\xa2\xc9\x73\x60\xcd\x38\x8c\x94\x4c\xf3\x0c\xb7\x77\x02\xc8\x3a\x9c\xb0\x2e\x6e\x09\x2e\xa2\xd9\x0c\xcc\x7d\x50\x23\x23\xfd\x32\xcd\x73\xce\x52\x4a\xfe\x16\xa0\xf1\x77\x75\xff\xec\x1f\x44\x7f\xda\xe8\x48\x19\x5a\x21\x84\x3d\x18\x37\xf2\xa1\xde\xec\x00\xd1\x38\x4c\xe2\x7f\x83\x42\x9a\xc0\x42\x8d\x81\x0d\xfc\x76\xc1\xeb\x89\xd8\x0b\xa2\x14\x5c\x85\xb8\x94\x84\xe9\x9e\x8c\x82\xf0\x46\x14\x83\x0c\x13\x63\x3b\x0c\x22\x55\x8c\xf2\xf8\x0a\x2d\x3c\x05\x8c\xae\xac\x3c\x5c\x3a\x6d\xcb\xae\x6a\xda\x69\x4f\x0a\x74\x5a\xa4\x5d\xd8\xf0\xce\xc6\x32\x48\x09\x03\x28\xbe\xd6\x3d\x34\x56\x07\x39\x6d\xe3\x38\x81\x95\x41\x5e\x8c\x33\x7a\x11\x62\xf0\xf4\xdf\xaa\xb2\xd4\x30\x18\x58\xdc\x64\xb3\x24\x92\x45\x2a\x82\xce\x2f\xb3\x8f\x5f\xb1\x0f\x75\xbc\xa4\xc1\x36\x44\x60\x09\x46\x1e\x0b\x6d\xeb\x1c\x9c\x36\x67\x4b\x41\x73\x10\xff\xf9\x54\x6b\x94\xa7\xd6\x2c\xaf\xd3\xed\x5b\x42\x05\x2c\x25\xfc\x07\xd1\x10\xb4\xeb\x3d\xfd\xd1\x62\x17\x5d\x3a\x9e\x13\xef\xd0\xa8\x7f\x60\xdd\x3f\x25\x8b\x77\x8a\x8b\x0c\x28\xc3\xce\xac\x0f\x1b\x49\x4f\x8a\xa7\x03\xb8\xcd\xf1\x46\xa6\xa2\xa1\x67\x2a\x95\xf0\x07\x10\x33\x4e\xc7\xe8\x45\x94\xbe\xa4\xbc\x3e\x7b\x7d\x6a\x26\x77\xc9\x0c\x16\x79\x8a\x3c\x73\xde\xa0\xd1\xee\x63\x05\x74\x87\x07\x43\xd4\xf9\x60\x47\x93\xbe\x71\x9f\x85\xc1\xdf\xc2\xdb\xf0\x02\xc4\x0b\x2c\x53\x56\xd1\xe6\xdd\x82\x7f\xa5\xb7\xc5\x96\x67\x6c\xe8\xf7\x21\x5b\xde\xe9\x3d\xac\x26\x40\x58\x19\xb7\xeb\x4a\x59\xee\xa0\xaf\xa2\xed\xcc\xc3\xa0\x46\x7e\xd9\x33\xf9\x85\xde\x8e\x49\xec\x1b\xf3\xe3\x30\x4e\x8a\x8a\x08\x81\xae\x53\x60\x60\xe2\x86\x90\x83\x3a\x58\xc0\xc3\xb0\x52\xbf\x6f\xe8\x61\xdc\x0b\x59\x88\xda\xb9\xd0\xac\x60\xe7\x87\x04\x21\x1b\x8d\x66\x18\xc5\x11\xe2\x88\xf2\x09\x13\x71\xf3\x10\x36\x43\xe5\x71\x80\xb2\xa0\xbf\x38\x0c\xde\x82\x8e\x8d\xaf\xac\xce\xd0\xc1\xd1\x42\x81\xce\x8c\x0c\x12\xc1\xe0\x4a\xa1\x52\x07\x17\x73\x96\x24\xfb\xe4\x6a\xb9\xce\x8a\x71\x60\xb4\xd7\x82\xa0\x78\x6e\xcb\x21\x1b\x9a\x78\x2a\x07\x0e\x95\x80\x4f\x70\xa0\x3f\x8a\xff\xba\xbc\x01\x03\xc8\x23\xa3\x22\xd7\x01\x6c\xe3\x00\x03\x6e\x84\x07\xb3\x81\x86\x60\x37\x6b\x68\x22\x47\x7b\xe0\x9d\x07\xdf\x66\xb3\x34\xda\x23\xa7\x89\x22\xbe\x48\x86\x0b\x5e\xa5\xa7\x38\xc9\xe1\x5e\x8b\xf7\xc4\x00\xad\xdb\x75\xe2\x80\x01\xa9\x32\x56\x7f\xc6\x4d\x97\x37\x91\xde\x23\x37\x18\x29\x0b\x00\xe9\xe7\xfd\x4e\x9b\xb6\x13\x38\xe8\xe1\x94\x11\x4a\x3d\x3d\x32\x8f\x07\x73\xdc\x34\x60\x24\x07\x16\xd0\x1e\x88\xaf\xaf\xe1\xcf\xeb\x24\xbb\x0a\xd9\x90\x0c\x78\xbf\x13\x74\xb5\x44\xc5\x85\x8d\x26\x5d\x52\x48\xcf\x78\x0f\x6c\x53\x5c\x38\x71\x1a\x7f\xdf\x54\x7a\x74\x33\x64\x12\x7f\x60\x1b\x13\x70\xc8\x4b\x64\x36\xff\x23\x9b\xb2\xfa\xbb\x52\xb4\x5a\x18\x36\x94\x72\x22\x56\x25\xb0\x87\x46\x61\x9e\x25\x20\xf8\x79\x8c\x11\x5a\x4b\xc5\xc2\x27\x23\xcf\xde\x15\xcc\x70\xdd\x56\xb0\x66\xf4\x5e\x2a\x71\x7d\xd8\x7c\x9f\xdd\xda\xfd\x9c\x5d\x3a\x5c\x5b\x49\x06\x50\xd2\x26\x6d\xa2\xc3\xb3\x42\xaf\xf3\x8a\x0f\x42\x06\x26\xae\x02\x26\x9f\x0c\xfd\xe3\xc1\x3b\x1d\x88\x39\xf8\x01\x06\x3a\xaa\x7e\x66\x5d\x12\xb2\xb2\x86\xc1\xd5\xac\x24\x07\x58\xd3\xbf\xf2\x3e\xc3\x29\x94\x62\x2f\x24\x82\xc9\x72\x60\xd0\x3f\x58\x41\x88\x1d\x2f\x21\x4b\x7f\xc1\x24\x05\xa9\x4c\x3c\xfc\xb9\xcb\xe3\x12\x3c\x14\xe6\x07\xe2\xd8\x1e\x76\xec\x61\x0a\xca\x6c\x0b\xd8\xc5\xc7\x68\x9d\x7a\x2a\x5b\x6c\x44\x8e\xc1\x8c\x67\x12\xaa\x8b\x2b\x9b\x1a\x46\xba\x34\xde\xc0\x0b\x71\xcd\x92\xb0\x28\x5d\xf9\xe5\xa5\x87\x41\x6a\x8c\x7f\x8d\x6e\xd4\xe8\x83\xe6\xdb\x2b\x78\xf5\xe0\xb5\xc4\x76\x04\x70\xeb\x2c\x1b\x3b\x4e\xc7\x23\xaf\xd3\x2c\xd7\x9f\xea\x97\xcf\xdc\x3d\x42\xe2\xc5\x6a\x74\x93\xc6\x30\x3f\x13\x99\x66\x64\x0d\xf9\x54\x95\xe1\xf5\x53\xbb\xb5\xeb\x98\xa5\x98\x26\x28\xe8\x61\x09\xaa\x6a\x96\xea\x80\x13\x9b\x3f\x1e\x7d\xe3\xb1\x86\xb8\x4b\xcc\x0d\x49\x69\xf3\x80\xb5\xa9\xd2\xdb\x38\xcf\xd2\x89\xd8\xdd\xb4\x09\x8f\xb2\xeb\x94\x8c\x2c\xd4\xc8\x49\x06\x6a\x6e\xb8\x07\x3e\xf7\xe1\xf5\x21\x7d\x8a\x67\xba\xc5\x3d\x08\xec\x04\xfc\x75\xed\x89\x0b\xb6\x51\x26\x31\x58\x33\x0a\x5a\x23\x30\x0e\x69\x78\x7b\xf6\x23\xfb\x6e\x86\xf0\xd0\x19\x63\x9e\x95\xd9\x28\x4b\x38\x02\x28\xc0\x01\x6f\x7d\x60\x08\x96\x23\x02\x60\x18\x7c\x71\x00\x1a\x50\xa5\x05\x9d\x83\xa1\xae\xbd\x8b\xa3\x6b\x55\x9a\xe3\xb3\xb8\x78\x85\xaf\x6f\xec\xf8\xac\x49\xe4\x0f\xbf\xf4\x85\x5e\x60\xe8\xe0\xc8\x39\x0c\x92\xc7\xda\xa7\xaf\x1d\x67\xa4\x68\xfa\x53\xc8\x84\x4e\xb2\x2a\x02\xcc\xa2\xa8\x37\x2e\xf1\xd1\xcd\xe1\xcd\x53\x3d\xdc\x53\x8d\x87\xf9\xe5\xaf\x2f\xc8\xbc\x2d\xf5\x66\xec\x7a\x53\xfa\x65\xf0\x92\x40\xa5\x67\xc1\xaf\x34\xf3\xd1\xd3\x2c\xa5\xfd\xeb\x55\x16\x46\x4f\x7f\x0f\xee\xc4\x34\x2f\x68\x07\x48\x03\xf7\x31\x8f\xae\xdd\x7e\xd7\x90\xad\xef\xdb\xf6\xf0\x56\x09\x8a\x95\x83\x3e\xbd\x8b\x14\xfa\x33\x52\x47\xa8\xa2\xe5\xab\xbd\x17\x1a\xab\x3d\x8d\x81\xcc\x8a\xb1\x6f\xdc\x58\x4a\x3c\xac\x2b\xe5\x01\x86\xc2\xf6\xfe\xfa\x62\x8f\x37\x35\xed\xf3\xcb\xc1\xdf\x59\x2a\x61\xb2\x10\x57\xf6\xbd\xf5\x41\x68\xc9\x3a\xa1\x2c\xed\x64\x13\xc8\x27\x9a\x6d\x82\xcc\x21\x98\x30\x8e\x43\xfd\x2b\xbf\x75\xa4\x15\x86\xf7\xcd\x51\xb0\xa7\xc1\x7f\x03\xbc\xde\x0b\x7e\xf7\x04\x88\xde\x6d\xf1\xd2\x2e\x38\x34\xd5\x25\x39\x88\x63\xe8\xdb\x1d\xbd\x44\x87\x1d\xbc\x14\xec\x16\x1e\xc7\x38\xbd\x14\xe3\xbc\x56\x29\x1e\x95\xb2\xa2\x92\x00\xa9\x78\xe9\xc0\x2c\xf0\x40\x42\xb4\x46\x81\xd6\x09\x50\x49\xb8\xa6\xbf\x01\x70\x66\xac\x05\x79\x60\xd0\xc2\xe5\x53\x00\x62\x12\x7e\x20\x55\xa1\xc2\x22\x66\x9d\x37\x09\xd3\xf0\xda\x3b\x2e\xe5\x23\x03\x50\x15\xb7\xb8\x60\x9c\x43\x03\x73\x90\x40\xe6\x05\x71\x40\x27\x93\xdc\x85\xac\xd8\x8a\x26\x62\xd1\x51\x05\xc5\x5e\xe4\x2d\x95\x12\xe8\x57\xc0\x47\x00\x42\x47\xf3\xf0\x24\x04\xa5\x07\x08\xe3\x9f\xfc\xd4\xc5\x19\x07\x33\xfb\x28\x8a\x9a\x13\x71\x32\x56\x94\x88\x09\x39\x4c\x1c\x43\x45\x79\xf3\x9d\x7a\x5f\xb0\x9c\x33\xf4\x1b\xed\x26\xb9\x01\x00\xf0\x20\xcc\x56\x5c\x97\x1f\x3d\x4c\xab\xb7\x3f\x01\x2f\x20\xd0\xb1\xd8\xcc\xd5\x48\xe8\xf0\x98\xa7\xbd\x54\x1e\xbe\x3d\xcf\x3f\x43\xe5\x70\x97\xe5\x91\x1b\x5d\x20\x23\xaa\x6a\xfa\xa4\x76\x57\xa7\xf0\x13\x7b\x0d\xa1\x9c\x1f\xcd\x30\x58\x5c\xea\xa0\x6e\xe3\x79\xa4\x9e\xa9\x1d\x1a\x37\x40\x4a\x8e\xb9\x68\x2e\x09\x96\xdd\xe8\xe0\x86\xc4\xf9\xdd\xb0\xe9\x80\xb7\x74\x5a\x14\x43\xeb\xd2\xca\x91\xdd\x0d\x8a\x81\xb6\xc2\xcd\x4a\x93\xa0\x91\x78\x7a\x6e\xcc\x31\x4e\x1b\x02\x5b\xe3\xb8\x2c\x1d\x8d\xa6\x4d\x3e\x2f\x7e\x3e\x3f\x74\xbf\x67\xa2\xf1\x66\x39\x90\xf5\x1a\xbc\x3c\x7f\xfd\x32\x1b\x91\x7b\x48\xa7\x54\x0c\x7a\x9a\xa5\x07\x16\x4e\x44\xbf\x23\x0f\xc3\x27\xb7\x8d\x9f\x75\xed\x79\x68\xb5\x11\xd0\x18\xe1\xd2\xc7\x85\x7b\xec\x36\xed\x59\x3b\x19\xc5\x9e\x64\x83\x6c\x8f\xa1\xef\x4c\x19\x9d\x40\x82\xa3\x13\x3d\xd0\x69\xd4\xe3\x98\xd8\x30\x39\xb2\xb0\x72\xf7\x48\x8a\xf7\xc9\x51\x29\xbc\xb0\x3f\x6c\x11\xe0\x9f\x63\xa0\x42\x47\x54\xd9\x85\x03\xbb\xcc\x0b\x7d\x1b\x1d\xfa\xbe\x70\x4f\x3a\x71\x98\x70\x44\x67\x9b\x30\x98\x0c\x41\xc6\x0a\x9d\x4a\x6b\x7f\xd1\x84\x6a\x43\x9e\x9d\xdc\x78\x3d\xf0\x04\x73\x4e\x78\x5a\x9f\xa6\xfc\xdb\x09\x43\xda\xb1\xaa\x5c\x0f\x26\x05\x96\xe6\xf1\x88\x97\x0b\x8a\x00\x2b\x49\xe3\xfb\xb6\x9e\xd8\x3a\x26\x74\x3d\xf7\x03\x07\x3a\x0c\xc6\xd5\x0c\x16\x6b\x8f\x0f\xdd\xb3\x53\x7c\xdb\x9d\x11\x15\xbc\xa1\x80\x3d\x02\xd7\xc4\xd0\xa7\xc2\x5a\x39\x3f\x47\xab\x32\x2e\xc5\xc4\xe0\x73\xa3\x54\xd4\xfc\x00\xac\xfa\x64\x46\x30\xfd\xe7\xc7\x8f\x26\x4a\xcd\xc7\x47\xf7\x73\xa7\xf2\x0f\x9d\x7b\xf8\x2e\x8c\xd1\x09\x20\xb4\x88\xfb\xd2\x2f\x0c\x45\x78\x83\x65\xda\x75\xd8\xdd\x14\x8c\xea\x0c\x67\x52\x48\x7f\x82\x86\x4f\x84\xda\xd2\x1e\x67\x6a\x7d\x46\xeb\xc2\x50\xe6\x79\x6b\xa8\x8a\x31\x7f\x6e\xc2\xa3\x8b\x85\xc0\xda\x8e\xb9\x35\xaf\x1f\xe0\x94\x5b\xa6\xae\x84\x6e\x1b\x62\x29\xd5\x88\x4b\x4b\x20\x05\x63\x1e\x61\x20\x61\x34\x22\xcc\x04\x80\x8b\x39\xf6\x56\xec\x9b\x60\x9c\x6f\x7d\x71\x9e\x89\xde\x68\x31\x47\x4c\xe2\x23\x7a\x20\x3e\x5f\x04\xc5\xe6\xb9\x1e\x2c\x23\xfa\x9d\x29\x2c\xf1\x2c\x42\x16\xe5\x68\x1a\xb1\x7e\x99\x66\xb1\x44\x5c\xf8\x4b\x3e\xad\x93\x94\x10\x5a\x53\x05\x98\xd3\x39\x4c\xc5\xba\xde\xcb\xe4\x03\xe8\x41\x83\x5f\xe7\x3a\x3b\xc3\x3d\xd2\x44\x95\x90\x52\xc8\x25\x55\xb2\xa4\xc3\xdb\x30\x4e\xd0\x60\xd2\x8e\xd4\x54\x47\x22\xd9\xee\x74\xdc\x76\x84\x39\x40\xa0\x6d\x46\x95\x44\x28\x38\xab\xea\xcc\x17\x28\x9a\x9d\x0e\x2d\x86\x4d\x91\x94\xca\x99\x28\xab\x86\x38\x05\x83\x28\x26\x7a\x80\x26\xad\xac\x32\xca\xc4\x41\x00\x9e\x8b\xf5\xa0\x73\xf3\x64\xa8\x89\x9a\x5c\xa1\x86\xa0\xd4\x3e\x0c\xa0\x91\xb2\xd1\xb1\x57\x82\xef\x5b\xd0\x31\xe3\xec\x63\xf0\x9f\x87\x7f\xfe\x3f\x14\x78\x18\xba\x81\x3e\x3f\xb6\x87\xc8\xa1\xc6\x27\x19\xc5\x5c\xac\x44\xa7\xd9\x08\xf3\x9e\xbb\xbb\x0c\xe1\x91\xcf\x52\xe3\x4c\xa3\xcb\x0c\xa2\x81\x11\x54\x4e\x99\x29\x6b\x6c\xf7\xa5\x5a\x9e\x81\x76\x02\xcd\x0f\x88\x34\x8a\xa9\xce\x5a\xa3\x34\xcc\xd8\x3f\x74\xd4\x39\x82\xde\x39\x52\x79\x9f\x90\x7d\x49\x7a\xc2\x9c\x52\x85\x75\x2b\xd3\xf9\xaa\x63\xdb\xbf\xac\x27\x8f\xb1\x9d\x0f\xda\x7a\xb0\x87\xa9\x4b\xbc\x7f\xe3\x4e\x0d\xaa\xdc\x09\x2f\xd2\x4f\x3a\x12\x7b\x4e\x72\x4b\x3b\x9b\x1e\x45\x92\x12\x6d\x1c\xf9\xed\xfb\x4b\xe2\xca\xcb\xd3\x57\xa7\x97\xa7\x43\x2f\xb4\x45\xfb\x39\xc6\xc3\x38\x92\x46\x3b\x06\x0a\xbf\x93\x17\x2a\xcc\x42\xe9\x62\xe9\xaf\x84\x13\xcb\x39\xf6\xad\xce\x2a\xb2\x67\xd6\xda\x1d\x05\x7c\xd9\xe2\xaf\xee\xa1\x35\x45\x05\xd6\x5b\xd7\x14\x80\x45\x4e\x1e\xd4\xc6\x4d\x68\x3d\x53\x3b\x34\xc6\x4d\xe1\x48\xb8\x0a\xcb\x96\x08\xa8\xde\x15\x24\x94\x56\xe8\x1d\xe9\x98\x72\x60\x7f\x94\x43\x54\xce\x65\xd3\xba\x25\x18\x9c\x9d\xee\x37\x6b\x01\x14\x04\x10\x60\xb0\x49\x6c\x14\x25\x33\xfe\x21\x88\x37\x18\xb4\x77\xb0\xa0\xd0\x0d\xc7\x9d\x33\x34\x6e\x58\x75\x24\xf0\xd6\xd3\x1b\x5c\xa8\x13\xce\x7f\x60\xb0\xc6\x60\xd3\x65\xe0\xdb\x7a\xe4\xf8\x78\x93\xcf\x4d\x56\xc0\xbd\x0b\x8f\xc9\xd0\xa3\x3f\xa0\xbf\xfe\x51\x0d\x1e\x1b\x33\x31\x0d\x11\xf7\xc0\xa6\xd1\x56\xa2\x07\xda\xa3\x9c\x71\xca\xb8\x7c\x8c\xac\x3e\x01\xbb\x07\x99\x17\x26\x76\x59\xd7\xce\x22\x8c\x46\xc2\x23\x72\x4a\x2b\xf4\x95\xad\xec\xc8\xd5\xf1\x80\x88\xa0\x67\x4a\xf4\x9f\xd9\x76\xc5\x1f\xc2\xeb\xb0\xb4\x31\x1d\x07\x70\xde\x2b\xc0\xe6\x3b\x39\x7f\x77\x61\xa7\xc4\x3f\x62\x0e\x29\x95\x12\x30\xa2\x60\xa9\xe4\x22\x8d\x93\x50\x42\x25\x72\xb6\x80\x37\xc0\x86\xc1\x9d\xb2\x01\x39\x09\xa6\x5b\x68\x0f\xbf\xfc\x3f\x3a\x24\x83\x84\xe1\x19\x58\x75\x49\xaa\x74\x5c\xf6\x72\x53\x81\x8d\xdf\x22\x63\x3a\x03\xd2\xbf\x77\x5c\x3d\x70\x33\x9f\x1b\x6f\x15\xe0\x63\x8a\x50\x46\x45\x45\xde\x86\xf2\xc6\x5b\x30\xda\x40\x7c\xbf\x82\xe9\xbe\x6e\xbe\x77\x70\xa8\x6d\x84\xd7\xe2\x55\x9b\xf0\x23\xed\x54\x36\x72\x53\x09\xcc\xc3\x6b\xb5\x88\x50\x25\xcd\xc3\xcf\x8b\x36\x3a\xc2\xf3\x2c\x75\x34\xbb\x6a\xc5\x1d\x7e\x39\xac\xd1\x40\xa2\xda\xac\xf2\xc4\xbf\x69\x05\x7e\x80\x02\x11\x3a\x16\x44\x50\xb3\x28\xe1\xe9\x1d\xec\x9b\xac\xa4\xf1\x5d\x37\xe3\x1e\xdd\xa5\x5b\x46\xdc\x42\x55\x3d\x29\xae\x4d\xaf\x43\x13\x73\xce\xc6\x4e\x1a\xb2\xa7\xe5\x99\x7e\xe5\xff\xc9\x96\x48\x36\xe3\x25\xe6\x53\x19\xa5\x6f\xf3\xba\xf5\xe1\x27\x5b\x96\x4e\x96\xaf\x16\x21\x3a\x7c\xb0\x6e\x88\x77\xc0\x40\x71\x41\x84\x03\xbc\x77\x0f\x2b\x3a\x9d\x1d\xd8\x99\x5f\x38\xd8\xdc\x66\x71\x54\x4f\x2f\x4a\x47\x72\xf7\x4b\x0e\x64\xb5\x40\xc0\x66\x5e\xea\xfb\x55\x81\x4e\xd7\xc7\xa5\x7c\x88\x47\xe3\x86\x59\xc5\x90\xf3\x84\x28\xa5\x24\xac\xdc\x52\xd8\xe7\xa5\x87\xb7\x80\x12\x4a\x92\x13\x99\x96\x6d\x69\x12\xa6\xf1\x74\x46\x49\x69\x98\xc5\x3e\xe6\xc8\x5e\x24\x57\x16\x0e\x71\xf3\x19\xb0\x8d\x5c\x51\xd2\x91\x2a\xe9\x78\xde\xdf\x76\xf1\x75\x84\xd3\x06\x4f\x17\xb6\xe2\x83\xbf\x7e\x4d\x64\x1a\xd2\xf9\xbf\x13\x19\x5b\xe6\x88\x15\xd3\x3d\xf4\x80\xfb\x47\x0d\xab\xba\xc6\x8c\xb7\x5a\xaf\x56\x6c\x03\x3a\x66\x8f\x9c\xcb\x41\x95\x33\xad\x13\x59\x96\xe4\xb7\x81\xb2\xc4\x70\x87\x47\x1b\xfd\x26\xda\xa1\x7a\x7f\xea\x52\x5f\x0c\xab\x91\xbe\x46\x0d\x66\xf6\xf5\x9a\x6e\x3a\x8e\x30\x7a\x64\x6f\x8e\xe4\x94\xd3\x09\x56\xee\x48\x1f\xf1\xdb\xe8\x2c\x45\xb5\xcc\xab\xe0\x1a\x19\xfb\x22\xa8\x2c\x27\xfb\xcd\xb1\xa3\xb5\x70\xf0\x9a\x47\x38\xe4\xa0\x27\xda\x6d\x2c\x69\xa4\xe9\xf5\xd6\xd4\x38\x9b\x2c\x9f\x28\x1a\x98\x79\x8e\x82\x6f\x65\x40\xc3\x3d\x8d\x73\x7d\x77\xff\xd4\x50\xfe\xe9\xe7\x06\xa4\x6b\xa9\x79\x74\x91\x49\x55\xd1\xe1\x78\x43\x94\x89\x17\xc5\x71\xcf\x09\x6c\x3e\x95\x54\x29\xfe\x7a\xd0\x67\x22\x93\x05\x2e\xa2\x6f\x29\x43\x13\xa2\xfb\x49\xd7\x16\x64\xcc\xa8\x71\xa6\x08\xa7\x32\xfe\x47\x75\x8e\x77\xb4\x6b\x90\x5d\x9f\x55\x27\xe1\x53\xa5\x06\xea\xe1\xd1\xd1\x7d\x1f\x0c\xf0\x49\xf3\xd8\x26\x29\x96\x93\xd7\x4d\x20\xa7\x45\x26\xcc\x73\x32\x01\x4c\xfa\x0e\x08\x05\x51\x02\x13\x14\xcc\x1b\x68\xef\x62\x56\x35\x71\x66\xbe\x28\x8c\xc1\x58\x1a\x1c\x1e\x1e\x3a\xb1\x24\x60\x5f\x3f\x49\x68\x67\xd0\x4d\x48\x54\x75\xee\x96\x48\x60\x06\xc4\x15\x38\x81\x30\xc3\x4e\x56\x87\xa4\x9b\x5b\x86\x9e\x76\x22\x3a\x08\x25\x22\x54\x48\xaa\xb3\x9a\x43\x27\xdf\xa9\x68\x5d\x73\xf2\xf2\x71\x40\x87\x55\x8a\x32\x04\x84\x74\x3a\x3b\x3a\x75\xdc\x34\x6f\x7e\x8a\xec\x22\x04\x62\x85\x5e\x29\x46\xe5\xb0\x95\x89\xc7\x96\xe3\xfe\xca\x36\xaf\x0c\x0d\x1b\x2b\x1c\xf4\x66\xac\xd3\x0f\xd3\x45\x06\x5e\x02\xf5\x30\x60\xe6\x2e\xc5\xd7\x3b\xc9\x09\x0a\xc9\x0d\x4e\x62\x27\x91\x1c\xb7\x1c\x43\xfc\x39\xaa\x8c\x2f\xcc\xea\x7f\x90\xbf\x12\xe6\x18\xbd\xcb\x2a\x89\x94\xb0\xa4\x8d\x5e\xf2\x34\x71\xab\x48\xbc\xc2\x8b\x96\x55\x55\x14\xcb\x75\x10\x49\x68\xa0\xf0\x8f\x3f\x11\xde\xcf\x5c\xab\x0e\xc2\x01\xab\x1a\x88\x7f\xeb\xa5\x7f\x7a\xee\x22\xa2\x92\x36\xbe\x8f\x68\x63\xda\xc4\x90\x3b\x14\x08\xbf\xbb\xdc\x0e\xfa\x49\xa3\xdf\xb8\xd6\xac\x01\x76\xcc\xd7\x82\xc4\x70\x16\x13\xb1\xe0\x94\x5d\x10\xba\x6c\xca\x1a\x0d\x4f\xde\xe4\x9d\xa9\xbc\xd3\x68\x99\x7d\x87\xa7\xe9\xf1\x48\x9b\x9a\x97\x0d\xee\x23\xda\x2b\x26\xdb\xae\xf9\xb8\x47\x5f\x1d\xd6\x1e\x1c\x39\xe1\x05\x16\x27\x01\xf3\x38\x57\xf8\x1b\xfe\x85\x39\x95\x25\x86\x28\x9d\xf0\x70\x1b\x23\xd0\x3a\xe7\xe4\x68\xef\xfc\x03\x29\x1e\x17\xed\x00\x38\x33\x57\x15\x29\x9a\xe9\x7a\x44\x27\x2f\x76\xc1\xb1\x19\x97\xba\x3b\xf1\xd5\xfb\xaf\x07\x16\x66\xf0\x02\xc8\xf9\x02\x65\x7a\x49\xaa\x94\x33\x6a\xb5\x32\x45\x53\xff\xfd\x6f\xbe\x95\xff\xfe\xeb\xa1\x03\x22\xfa\x11\xf0\x19\x87\x32\xbc\xef\x48\x39\x6b\xea\x79\x2f\xeb\x1f\x01\x99\xca\x07\x35\x97\xe2\xfd\xd7\x75\xa5\xf2\x99\xcf\x7d\xf8\xbc\x18\x93\xad\x83\xb8\x15\xb6\xe2\x74\x5f\xf7\x72\xd7\x44\x29\x3c\xd3\x1e\xb4\x55\x7c\x8d\x6a\x42\x26\xd0\x0a\xc9\xea\x89\x0a\x05\x7c\x8b\x81\xa3\x08\x00\x4d\xcb\x70\xe7\x54\x28\x21\xcb\xbf\x82\x8f\xdf\x9b\x11\x35\x24\x5f\x1e\xb5\x4e\xfe\x5b\xdb\x83\x9f\x7e\x26\x30\x0c\x32\x6f\x8e\xf8\x86\xcc\x57\xcd\x1f\xa0\x67\xdd\x32\x16\x3e\xfa\xe9\xe7\xaf\x1b\x57\x4e\x7f\xfa\x0e\x4d\x72\x5c\x2f\xfa\x22\x5d\x75\xa4\xaf\xb7\x7e\xb6\xc6\x86\x9b\x8e\xc9\x87\x57\x68\x1c\x56\x57\x6d\xe5\x18\x13\xdf\x43\x63\xa3\xed\x80\x60\x29\xad\xa0\x62\x39\x13\xe4\x25\x8a\x1a\xa1\xba\xa4\x6a\xce\x0a\xa5\x26\x6b\xfa\x17\x5f\xf6\xde\x80\x7b\xaa\x89\x46\x18\x9a\xe7\xfe\x8f\xe0\x5c\x6b\x0d\x27\x83\xdb\x99\x57\x83\x53\xb4\x19\x04\xcb\x02\x24\x7e\x36\x81\x33\xf0\xa1\xfa\xf2\x45\xdb\x7a\x98\x2b\xc5\xbc\x34\x7d\x1c\xd7\xbf\x32\x2e\xeb\x41\xaa\xd5\xb6\x94\xae\x2d\x63\x09\x39\xe9\xcb\x97\xaa\x70\x78\xd3\x6d\x47\x34\x2a\x21\x09\x0c\xa8\xba\x50\xb4\x8b\xc2\x7c\xd5\xe8\x8e\x33\x47\x06\x3a\x07\xdb\x28\xff\xbb\x35\x85\x1b\x6f\x5d\x2b\xff\x9b\x95\x83\x37\xdd\xa6\xf9\xdf\xa4\x0e\x28\x88\xee\x42\xb1\xaa\x2a\xf0\x30\x7a\xac\x8a\x40\xe7\xf9\x16\x36\x93\x24\xcd\x4a\x93\x72\xdf\x6a\x50\xea\xb7\x4f\x16\xf2\xe4\xba\x41\xea\x0b\x8b\xc9\x5d\xa4\x77\x06\x55\x50\x56\xe5\x5b\x75\xbc\xcd\xb0\x8e\x79\x87\xe5\x08\x4d\xa1\xa5\x03\x89\x8e\xa5\x19\x66\x2c\xe0\x6d\x7c\x46\x34\x9e\x2a\xc7\x1e\x46\x7b\xf5\xa3\x3d\xcb\x20\x8b\xd6\x37\x7d\xab\x4f\xeb\xf6\xae\xff\x46\xcb\x51\x48\x0f\xfb\x4b\xdb\xb5\x7d\x0d\x30\xcd\xea\xcf\x16\xd8\x67\x0b\x6c\xe7\x2c\x30\x47\x78\x3f\x9b\x60\x7f\x44\x13\x6c\x13\x02\xf0\xd9\x06\xdb\x45\x1b\x6c\xcd\x92\xf0\xd9\x08\xdb\xa2\x11\xe6\xf1\xae\xf1\x10\x93\x12\x3c\x6a\xa4\xc5\xf4\xb4\x1a\xe7\xea\x47\xc5\xad\xcc\xc2\x67\xce\x92\xb2\x47\xc2\x7a\xb9\xf8\x57\x30\x6b\x00\xf8\x84\x27\x9e\xdc\x9b\xb8\x60\xd7\x59\xe2\x26\x11\xae\x1c\xe4\xce\x3d\xc3\x3d\x91\xff\xce\xc1\xd5\xa4\x63\xd9\x8a\x5a\x0d\x07\xb6\x6b\x27\xa7\x7b\x40\x2b\x34\x5d\x99\xc0\xef\x14\x67\xdb\xd5\x28\x49\xe5\x26\x90\xfa\x98\xd6\xee\xe9\xa9\x0d\x4a\x95\x37\x4f\xf5\xac\x0c\xc1\x5a\x5c\xa2\xd6\x8f\xef\x7a\x84\xca\x9f\xa2\xa7\x40\xb9\x47\x19\xf5\x83\xff\xa5\xa9\xba\x19\xc1\x22\x13\x6a\x1e\xa5\x3d\xa3\x6e\x11\xc9\xe2\xeb\xaa\xdf\xc6\x79\x51\xda\xa4\x16\x8b\xb7\x37\x6e\xf7\xe2\x2c\x66\x57\x05\x26\x66\xa6\xe5\x7c\x52\x36\x0e\x6b\x52\xe6\x10\xe1\xce\xb3\x90\x2d\xd1\x6d\x3d\x12\xea\x4f\xb1\x51\x09\x9d\x4f\xd6\x0e\x11\x5d\x9a\xd0\x74\xed\xd9\xd2\xf9\x69\x61\xd2\x4d\x2b\x08\x56\x10\x2d\x61\x2e\x55\xea\x22\x6d\x59\xea\xdd\xc2\x90\x33\x1f\x53\xd9\x9a\xb2\x99\x24\xc3\xae\x2c\xa9\x88\x70\xd5\x44\xc1\xf7\x07\x3c\xe8\x8b\xa3\xc6\x88\xc7\xee\x46\x64\x24\x7b\x4d\x02\x32\xa6\xc4\x86\xfe\x1d\x6b\x6b\x72\x55\x9f\xc6\xd4\xf7\x6f\xc2\x42\xf1\xa7\x74\xf7\x4e\x28\xae\x43\x33\xf4\x9b\x04\x62\x4c\xe2\x2e\x6b\xfc\x48\x25\x0a\xaf\x17\x5c\x12\x55\x8f\x82\x53\xce\x06\xe6\x87\x71\x21\xb9\xd1\x6f\xb9\x16\x44\x25\xcf\x86\x5f\x39\x9b\x4c\x54\x14\xc3\x10\x6f\xe5\xaa\x02\x40\x8d\xf5\x84\xa6\x8d\x6f\xf7\x78\x09\x2f\xbd\x14\x53\xc0\xca\x8f\xf1\x64\x79\x7c\x1d\xc3\x6a\x21\x64\x8e\x18\xa7\xe7\x22\x19\x04\x9d\xc0\x3a\x70\xd3\xcb\xa5\x32\x67\x23\x76\x7c\xc3\xd5\x79\xb9\x00\x80\x9a\xb0\x19\x78\x29\xde\xf8\x56\xeb\xc3\xb2\x69\x22\xbc\x8b\xfc\xa3\x7f\x45\x0c\x7f\xfa\xa7\xff\x13\xad\x0c\xff\x27\x58\x1a\xe1\xdf\xf1\x86\x84\xa1\x4f\xc3\xe9\xf0\x59\x3a\x9d\x95\x4d\x5c\x6f\x96\x89\x5f\x25\x62\x53\xfa\x03\xe3\x8f\xa3\x32\x4f\xea\xbf\xd6\x81\x20\x2a\xdc\xc4\xe3\x72\x2e\x6c\xaf\xb3\x59\xa1\x9a\x60\x6b\x01\x9d\x81\xbb\x9a\x95\x25\x9e\xde\xbb\xa4\x18\x25\x31\xbc\xf6\x63\xd3\x8f\x15\x3a\x66\xe3\x71\xa1\xaa\x6f\xf2\x8f\xff\xac\x33\x61\x3e\x5f\x8a\x51\xae\x54\xfa\x63\xd3\x8f\xce\x9b\x0d\xc8\x03\x75\x16\x46\x1d\x6f\xb4\x3b\x12\x89\xff\xc4\xeb\xcf\xfe\xe4\x74\x69\xc6\xbc\x03\xff\xf2\x5f\x69\x00\xa5\xb7\x78\x0c\x5b\xc0\x1b\xb6\x30\x74\xd8\x88\xeb\xaf\xac\xe1\x08\xbc\x13\x2f\xcd\x4c\xee\x37\xc5\xca\xd4\xf8\xd6\xf1\x5f\xb9\xf1\xf7\x04\x1b\x8f\x54\xc1\xbf\x90\xb6\x11\x22\xbb\xbf\x84\x1f\xab\xd7\x1d\xaf\xb2\x8f\xaf\x81\x08\xb5\x6b\x90\x5c\x8f\xea\x9b\xd9\xd5\x55\xa2\x8a\xfa\x43\x35\xfa\x70\x92\x80\xfe\x6f\x7c\x72\x5e\xab\x9d\x3a\xca\xf2\xfa\x20\xa0\xfd\x93\x2c\x2c\xab\xbf\xdf\xe4\x6a\xfc\x06\x2f\x83\x63\x81\xd1\x5a\x6d\xa8\x9b\x72\x92\x5c\xe8\xf2\xa3\xd5\x87\xf0\x17\xde\x1b\xff\xe1\x26\x2e\x59\x11\x56\x5f\x48\x33\x82\xfa\x04\xa1\xac\x8f\x2d\x4f\x89\x1f\xd5\x67\xa0\xb6\x46\x71\x79\x5f\xff\xb9\x94\x8c\xf3\xda\x68\xf0\xe8\x42\x25\x14\xe3\xa9\x3e\xe2\x6b\xb4\xa7\x60\x5e\xbc\x08\x6a\x5a\x9c\x6e\xb1\xd6\xbe\x98\x5d\x4d\xe2\xb2\x85\x1d\xe5\x55\x16\x79\x90\x35\xa5\xc2\x90\x5d\x51\x3b\x52\x38\xc1\xcb\x8f\x68\x0a\x9a\x92\xae\x91\xad\xab\x1c\x6a\xe1\xb3\x77\xdc\x73\x53\xd5\xb1\x98\xc5\x65\xa8\xaf\x4e\xcf\x0a\x29\xfa\x84\x57\x46\xff\xe5\xd6\x66\x82\x87\x74\xb3\xbd\x72\x53\xb3\x6a\xf0\xc0\xa8\x9c\x77\xec\xcd\xc2\xc9\xb8\x02\x98\x6f\xb4\x0d\xe0\x0d\x6d\xc9\xe8\xcd\xee\x13\x40\xce\x18\x80\xce\xb5\xe6\xe3\xe0\x1b\x66\x2c\x40\x11\x51\x14\x0a\x4b\xf8\xd9\x7a\x88\xa0\x17\xb0\x78\x02\xde\xd5\x76\xbe\xda\x2b\x6e\x42\xcc\xe1\xdc\xeb\xba\x07\x6d\xa8\x38\x74\xbf\x35\x92\xe4\xd0\xd6\x5a\x5e\x98\x2d\x6d\xa5\xcb\xa9\x6c\x08\xaf\xce\x46\xa6\x7e\x92\xd4\xc0\x1a\x48\x51\x00\x5a\x54\xfb\x52\x75\x09\x87\xa1\x76\x85\x58\xf0\x4e\x21\xc6\x58\x34\xde\xad\xe7\x14\xa7\x09\xa5\x35\xa7\x5a\x91\x95\x54\xc1\x18\xef\xa9\x20\x52\x38\x80\xdc\x96\xd3\x17\x92\x0c\x00\x74\x65\xd6\x16\x5e\xc0\x72\xc4\xba\x57\x14\x23\x43\xd3\xe7\xa6\x43\x89\x79\xea\x5a\x89\xe8\x22\x34\x1c\xdf\x11\x16\x27\x7a\x26\x60\xa5\xe4\x92\xa1\xe5\xe5\x5c\xb9\xc2\xb7\xde\x1a\x85\x5d\xb1\xb8\x1d\x75\x2f\x6a\x47\xdd\xad\x30\xc2\x3c\xc6\xe8\x3a\x52\xa3\x8c\x8a\x6a\x60\x60\xb3\x19\xb7\x13\xfb\x82\xa0\x95\xa8\x71\xe9\x6f\xa0\x60\xc1\x79\xdb\xa5\xcc\x2c\x46\x9b\xc9\xfe\x67\x49\x37\xb5\x3e\xae\x9c\x8a\xd1\x14\xc3\x1c\xec\x37\x42\x70\xe1\xbd\x24\x83\x0a\x2c\x2e\x7d\x18\x16\xb9\x75\xe8\x08\x68\xad\x4d\x56\x1a\x73\x9d\xb4\x73\x69\x14\xf4\x6b\x50\x8b\x55\x3b\x4b\x99\xf1\x32\xed\x1d\xf0\x57\x6c\xf0\x40\x15\x33\x09\x2b\x3d\x9c\xa9\x7f\x50\x39\xbc\x99\x71\x3b\x26\xb9\xcd\xd6\x3e\x97\xb7\x8c\xd1\xab\xc3\x1a\x62\x95\x2a\xd3\xb3\xc2\x9e\x35\x53\x7d\xa1\xb8\xbe\x7a\xf9\x33\x7b\xcd\xbd\x61\x46\x77\x48\xf2\xec\x33\x5d\x5e\xd2\x62\x43\xb5\xca\xb9\x95\x46\x4b\x83\x0d\x9b\x35\x3e\x6f\x0e\x1b\x58\xa7\xbb\xbb\x58\x04\x85\x27\x52\x91\xbd\xa2\x8d\x95\x84\xbd\x27\x8a\x59\x2d\xb5\x46\xcc\x78\x72\x31\x9e\x2b\x58\x91\x21\x33\x4b\xf1\x06\xa8\x7f\x13\xf8\xf2\x0e\x6f\x38\x58\x9d\xea\xf4\x31\xf0\x2a\x8e\x9b\xe9\x2b\x3d\x92\x6a\xc7\xe4\x0a\xeb\xd7\x0d\xd2\xec\x4e\x8b\x3a\x28\x47\x9c\xc3\x73\x50\xfb\x13\x82\x0b\x62\x10\xc2\x38\xb6\x06\xc7\xd0\x7f\xc8\x45\x41\x89\x31\x53\x2a\xec\xed\x53\xa5\xa1\xa3\x91\x48\x2a\x6d\x5e\x3e\x71\x63\x6c\x64\x51\xbf\x4d\xfe\x97\xfd\x6a\x44\x80\xbc\x6f\xc4\xd3\xc0\xd1\xe4\x71\x5b\x47\xdd\xd2\x22\x57\x13\xbe\x07\xfa\xda\xfc\xd8\x97\x28\x24\x81\xe6\xc4\xc5\x4a\xe0\x95\x02\x07\xb5\x0f\xe0\x54\x3a\x66\x2e\xd4\x8b\xf3\xa8\x01\x26\x2d\xfc\x05\xde\xfd\xae\xc6\x6d\xdc\x13\xdc\xfd\x1e\x70\x47\x6c\x2a\xcf\x23\xf6\x2f\xb3\x09\xf8\xf5\x97\xd9\x69\x1a\xd9\x3d\x78\x1d\xc8\x50\xe9\x70\xde\xa6\xa5\x5f\x4f\x2b\x52\x7c\x2a\xd9\x07\x29\x1c\xf4\x21\x91\xb2\x1c\xa2\x8b\x00\xd9\x94\xa3\x94\x58\x72\x46\x1e\xd1\x0d\xf0\x66\x44\x3b\xf2\x56\xfa\xe0\xce\x39\x16\x1b\xc0\x7e\x8e\xa9\x97\x84\x75\xf5\xcd\x74\x51\xe3\x31\xb5\x6a\x03\x4b\x14\x4b\x5b\x9f\x8d\x75\xf5\xce\x86\xad\x8b\xd6\x5b\x10\xeb\x88\x4d\x72\x5f\xab\x98\xf0\xdf\xfc\x1d\x0d\xa6\x2b\xe8\x99\x9a\x34\xba\xf2\x95\xed\x66\x51\x2b\x0b\xe9\xed\x2e\xde\xbd\x5f\x1e\xd2\x98\xe1\x4a\x8a\x07\x63\xeb\x42\x69\x81\xc1\x35\xdb\x75\x9f\x3a\x7e\x9f\xcb\xca\x4a\x75\x3d\x7f\x02\x53\xc1\xd7\xaf\xf9\x49\xaa\xc2\x69\x2a\x48\xba\xe7\x30\x52\x34\xde\x60\x8f\xfe\x83\xa3\xee\xed\x93\x95\x44\x45\xbd\xe3\xca\x5e\x40\x2f\xb5\x6f\xe7\x93\x90\xb4\x39\x55\xc5\xcb\xe9\x36\xb1\x56\xd0\x27\x17\x17\xae\xc7\xae\x6d\x5d\x29\x93\xec\x3c\x31\xe7\x0a\x52\xbd\x2a\xce\x2b\x25\xec\x2a\xa6\x41\xa3\x92\xfc\xaf\x8a\x92\x44\x8b\x2f\x4c\x4e\xb5\x75\x50\xb7\x14\xc5\x9a\xd6\x35\xa4\x2c\xe3\x07\xb0\x7c\x0a\xaa\xf1\xf7\x27\x82\x48\x7e\x06\xc0\x26\x85\x82\x75\x52\xb4\x18\x6e\x3c\xde\xaf\x35\x0f\xec\xad\x76\x4d\x52\xaf\xdf\x26\x97\xf4\x19\xa0\xef\xb4\x5f\x75\x9e\x2a\x8e\x90\x69\xcb\x73\xcc\x35\x68\xc6\xf5\xd2\xe6\xd4\x40\xd1\x6f\xa0\xea\x3a\x65\xd4\x3c\xd8\x0c\x83\x27\x03\xfa\xf8\x00\x1e\xd9\x02\x95\xba\xb8\x57\xc9\xb5\xc0\xb0\xd2\xd6\xd4\xba\x10\x7e\x55\x33\x5f\x15\x60\x23\xa8\x39\x7d\x02\x4d\x8d\x86\x7a\x7d\x85\x95\x29\x84\xcd\x61\x56\xad\xe0\xb4\x63\xd4\x06\x94\xad\xaf\xa4\x27\x7b\x31\x9f\xf6\x55\xe2\x7f\xcf\xdd\x61\x44\xd3\x10\x1e\xba\xa7\x28\x2d\x68\xb2\x31\xd5\x47\x6c\x67\x8f\x2e\x82\x3c\x12\xfb\x91\x2c\xba\x0a\x3d\xa5\x0c\xdc\x98\x4b\x06\x49\x9d\x2e\x5b\x99\x14\xd6\xbf\x6e\x1c\xd6\xc2\x4c\x5d\xea\xd0\x3f\xe6\xaa\x33\xd7\xd5\x39\x14\xe9\x3a\xd0\x7e\xb4\xed\x26\x5b\x54\xc6\xd6\xcd\x20\x8e\xcd\x5f\x52\x9b\x29\x72\xeb\xb8\x70\xf3\x84\xf1\xac\x44\xf6\xba\xac\x2d\xea\x8c\x78\x9b\x2b\xee\x91\x33\x30\x73\x5a\xbe\xc8\x24\xb0\x45\x02\x1e\x85\x44\x19\xf4\x59\xc4\x39\xfd\x54\xe7\x57\x4b\x01\x14\xf6\x7e\x1b\xab\xc5\x3c\x3e\x1e\x6e\x92\xce\x9b\x22\xaa\x99\xea\xa2\x43\x91\xc9\x6b\x96\xfa\x01\xd7\xe9\xeb\x8b\x57\x70\x46\xdd\x26\x4c\x79\x59\xa7\x8c\xfd\xa1\x1e\xd0\x0c\xac\x63\x67\xc2\xb0\x45\x14\x92\x86\xa7\xae\x98\xf4\x68\x9e\x5e\xd2\x53\x3e\x73\x89\x00\x9a\x47\x5e\x6e\x51\x2b\x0e\xdd\xbc\x0b\xff\x21\x2f\xc0\x5a\xbf\x26\x2e\x0c\x16\xb2\x62\x77\xaa\x72\x6f\x43\xab\x4b\xf5\xd2\xe3\xb6\xf6\xc3\x68\x0f\x4b\x0f\xd3\xd6\x6a\xaf\x2d\x8a\xaa\xde\x27\x8a\x7b\x43\xd5\x4b\xbc\x9a\x7a\x51\x47\x74\x78\x9b\x24\xf1\x35\xae\xb6\xef\x66\x08\xda\xe0\xe3\x24\xe1\x42\xf3\x43\xd3\x76\x09\xcb\xa3\x97\x93\xa4\xb2\x01\x5c\xab\xb2\xa2\xff\xa5\x40\xea\x92\xb5\x95\xe8\xed\x5a\x8f\xa6\xce\x3d\xfb\x51\x32\x99\xe0\x39\x46\x0f\x21\xb6\x65\xfd\x72\xd3\x60\x40\xd8\xdc\xd0\x9b\xd2\x64\x76\x54\xa3\xd8\x7f\x08\xe9\x91\xa6\x72\x6c\x23\xff\xf6\xc0\x32\x85\xb5\xb0\x0e\xa4\x04\x7a\xb7\x80\xa1\x6c\xb9\x15\x45\x77\x4c\x8b\x18\x66\x20\xc6\xeb\x5e\xce\x3b\x4e\xe7\x9d\x58\xc8\x1d\x0c\xdc\xd4\x8a\x9a\xcf\x56\xaf\xc7\x1f\xf6\xdc\xe9\xcd\x56\x69\xe3\xab\x9b\xff\xc5\x3b\xbb\x9e\x18\xf9\xd6\x15\xc5\xca\xd1\x3e\x5a\x9e\xfe\x55\x06\x3c\xd4\x59\xab\xee\x9a\x01\x14\x3d\x72\x8f\xba\x97\x36\xcd\xa8\x23\xfd\x8e\x69\xd5\xe0\x1d\x97\x95\xa5\x37\xcc\xde\x4a\xdd\x6d\xe8\x04\x45\x7a\xb0\x89\xd7\x8d\xdd\x14\x39\x6a\x18\x72\xef\xeb\x07\xd8\x9d\x51\xf0\x86\x4d\x1b\xf4\x34\x2b\x76\xc5\xbe\xdb\xb2\xa4\x3c\xee\x7d\xe1\x93\x16\xc1\x07\x33\x12\x1b\x62\xce\xd8\x6f\xf9\x60\x3a\xcb\xa7\x18\xa8\x35\x97\x8d\xa5\xd2\xa2\xd3\x1d\xdd\x1e\x9e\x02\x42\x77\x2a\xc7\xee\x83\x77\xe1\xbd\xd3\xa8\xca\x70\x1b\xbf\x2d\x5a\x24\x18\x6b\x5e\xfb\xc1\x28\x5d\xd3\xb1\x1a\x76\xe2\x37\x99\xa3\x7c\x04\x7b\xa3\x5b\xf7\xb9\x13\x01\xfb\x31\x61\xb9\xb2\x75\x99\xd4\xec\x01\x0d\x53\x27\x87\x7e\xa1\x21\x88\x97\x25\x51\xc1\xe7\x37\x58\xbb\x51\x6a\x06\xb3\xc0\xca\xb6\xc3\x61\xec\xa7\x54\xb2\x3b\x92\xd4\x94\xb6\xe0\x0d\x8c\x06\x02\x44\x87\x2f\xdc\xec\x87\xcf\x5e\x48\xe6\xf1\x63\x7a\x21\x2e\xa4\xdf\x67\xae\x5b\x61\x3a\x00\xf8\xd9\xd7\xf8\xfe\x3b\xfc\x72\x80\x7f\xb9\xa9\x35\xcd\x11\x84\x63\x69\x0a\x1d\x36\xa8\x8d\x90\x0e\x16\x0a\xca\x2a\x83\xf9\x58\x75\xc4\x05\x1b\x2f\x3a\xe1\x63\x42\xad\x17\x43\x1d\x2f\x91\x53\xe4\x36\xfe\x9a\xc1\x9a\xd4\x54\x68\x1f\xc3\xb2\x93\xe2\x50\x95\x01\x6c\x71\xca\x97\xe7\xaf\x75\x26\xc8\x30\xf0\xba\x34\xe9\x63\x04\xe9\x30\x56\xe8\x8f\x3c\x42\x0d\xf4\x5c\x76\xdd\xd8\x52\x91\x32\xae\xdc\x70\x33\x52\xf1\xe0\xe4\xd3\x67\xf4\x8c\xbd\xfe\x17\xaa\xf5\x3c\x9c\x4a\x1f\x44\x46\xbe\xe9\x4a\xfe\x40\x3e\x30\xf8\x3d\x3a\xc4\x28\x13\xc7\x26\xaf\x55\x64\x83\x06\x72\x10\x2f\x16\xc6\x9c\xc6\x37\xe8\x3b\x17\x2b\xea\x04\xf8\x26\xc6\xe4\xdb\xb0\x7a\x3e\x6c\x76\x26\x7b\x93\x13\x00\xc2\xca\x97\x63\x00\xb4\xb8\x81\x27\x49\x46\x69\xa1\x2d\x98\x1a\xed\xe4\x1f\x3d\x6b\x5f\xc0\xf6\x33\xc1\x71\x63\xd1\x21\x15\x6c\xf4\x18\x58\x95\x9b\x83\x85\x49\x1c\xda\x13\x09\x3e\x1f\xab\x19\xd2\x0f\xce\x64\xd9\x2f\x2a\x46\x45\x6f\x1e\xf2\x8f\x47\xc1\xaf\xbf\x3f\x3e\x94\x52\x1b\xf3\xf7\x50\xa0\x24\x08\xcc\xf2\x6d\xc1\x65\xae\x82\xd1\x4d\x2c\xc3\x46\x69\xf1\x84\x90\x72\x99\xf0\x2c\x1a\x05\xb0\x7a\xd3\x7b\xd0\x31\x07\x3b\x53\x85\xbf\xb4\xa4\xfd\xc6\x38\xb9\xb7\xa6\x8f\x36\xae\x8c\x93\x34\x0e\xf2\xf0\x0e\xcc\xd3\xd7\xaf\xda\xf6\x37\xb0\x77\x9c\xac\xb7\x31\xbd\x4b\x44\x61\x07\xce\xce\xc2\xed\x6b\x78\x43\xa7\x3b\x59\x54\xf2\xbd\xa0\x0f\x86\x14\xbf\xff\xd1\xce\x62\xc8\x7f\x97\xaa\x5c\xeb\x7e\x3c\xf0\xd3\x7f\x7a\x05\x8a\x31\xe3\xd1\xe0\x65\x7a\x63\x11\x00\x55\x2a\x21\xbc\x76\x43\xf0\x86\x87\xe5\xa5\xff\x7c\x0c\xb4\xa4\x43\x7e\xd1\x8c\xf0\x1f\x6c\x59\x51\x94\x61\x1a\x61\xcb\x6d\xf8\x9b\xe8\xac\x37\x08\xee\x4d\xfc\x55\x14\xdf\x3e\xfb\x1a\x37\x48\xfc\xeb\xeb\xaf\x9e\xe1\xff\xef\xd7\x2e\xbd\xe9\x56\x7f\x45\xa5\xe9\xb7\xf9\x5d\xf2\x45\x0b\xee\x2a\xac\xaf\x85\xd9\x8c\x3f\x4d\xf3\xe4\xfe\x40\x88\x6c\x32\xee\xba\x88\x6d\x27\xd0\xa6\x6f\x07\x99\xdf\xa9\x24\x4e\xc1\x03\x28\x6e\xac\xb5\xa5\xbb\x9d\x4b\x52\xc4\x9f\xa8\xed\x39\xba\xfa\x2d\xf4\xe4\x62\xb5\x78\x4e\x33\x2f\x0f\x26\xb7\x85\xd1\x65\x75\xeb\xa1\x0b\xcb\x50\xe9\x50\x56\x8c\xb2\xa9\x72\x3b\xf0\xc9\x17\x71\x09\x8a\x67\xbc\x5f\xbd\x06\x7d\x92\xa5\xe3\x24\x1e\x95\x03\x03\xcd\x0b\xd7\x68\xd3\xc9\x14\x55\xfc\xdf\x5a\x73\x5b\xac\x6c\xad\x12\x6a\x4e\x15\x16\x3f\x47\xdd\x86\xb6\xa9\x9b\x3a\xc2\x89\xc7\x43\x50\x7c\x33\xca\x60\xa9\xdc\xce\x14\xdb\xda\x04\x55\xfc\x7c\x01\x75\xdb\xa1\x14\x75\x95\xa2\x22\x38\x77\x26\xac\x8e\x4f\xa6\x1a\xef\x04\x4e\x1c\xcd\xe6\x43\x3b\x64\x42\x35\xf7\xd5\xe5\xd7\x58\x36\xd4\x8c\xad\xeb\x13\x5c\xfe\x56\xbd\x59\xf8\xec\x0b\xb4\xf9\xea\x05\x90\xbe\x78\xd6\x55\x19\xca\xb5\xf0\xb3\x0f\x01\x77\x4c\xa4\x2c\x71\x20\xae\xb5\x28\x4d\x53\x3a\xf4\x36\xb0\x08\x53\x3c\x9a\x25\x61\x5e\x4d\xc1\xc1\x13\xbf\x5c\x81\x40\x2b\xc9\xf6\x82\xed\x04\xb5\x98\xdc\x33\x71\x5f\xbf\xc7\x6c\x23\x56\x37\xb9\x56\x8b\x72\xbc\xec\x64\x59\x7a\xf4\x18\x15\x05\x02\x59\xcc\x69\xb6\x08\xaf\xbd\xa1\x84\x49\xb9\x85\x54\xdb\x5b\x4a\xe4\x4b\x98\x5f\xc5\x65\x1e\x62\x75\x29\x74\x78\xc3\xa2\xc8\x46\x31\xad\x5a\xe3\xc9\xdb\xce\xeb\x26\x75\x96\x2f\x9b\x16\x4e\xde\x2b\x89\x0b\x36\xa2\x71\x72\x5c\x5b\xcc\xd7\x4b\xd9\xb1\x1c\x03\xd6\x4c\x6b\x67\x75\x7b\xb8\xeb\x11\x00\x59\xab\x02\x99\x6e\xac\x4d\x63\x35\xb2\x4e\x3b\x1f\x80\x57\xbf\x65\x30\x2f\x65\x43\xa0\x17\xe9\xa7\x4a\x5a\x35\xfc\x8e\xb2\x56\xb5\x95\x87\x81\x43\xe8\xa1\x4e\x07\xbf\x04\x89\xba\x6c\xb8\x93\xcf\xc4\xe1\x19\x81\x2c\x98\xf9\x25\x31\x9e\x82\x88\xae\x73\xad\x95\x1e\x9c\xe9\xe6\x34\x8c\xc6\x97\x07\xe6\x31\x0e\x20\x93\xee\x93\xa0\xd0\x7e\x82\x61\x8d\xf6\x41\x1f\x15\x13\x2c\x71\xbb\x29\xdb\xd2\x73\xe8\x13\xa5\x68\x07\x55\xf6\x5b\x16\xed\xa9\xe8\x79\xde\x64\x3f\xda\xc6\xd6\x7a\xe7\xe5\x0c\x46\x0d\x39\x99\xb3\xf5\x1d\xb8\x97\x5f\x49\x5b\x9b\x98\x51\x76\x13\xc4\x66\xe2\xda\x59\xe1\xc9\xa2\x5a\x73\x6d\x3d\x2e\x3d\xc6\x2e\x6f\xad\x61\x49\xca\xb4\xb4\x5d\xf6\x31\x97\xd4\xed\x7e\x37\xfe\x68\x7a\xe6\x82\x69\x93\x47\x95\xbc\x53\x9f\x8c\x92\x6c\x59\x97\x2f\x03\x46\xbd\x19\x54\x95\xbc\x0d\xed\x1e\x52\x43\x90\x1b\x6a\x6f\xad\x05\xaa\x59\x5f\xb6\x1e\xe6\xb4\xfa\xee\x68\x8c\xf2\x0d\x41\xe2\x5a\x5d\x3e\x60\xda\x97\x2d\x22\xd2\xda\x4b\xe1\x42\x47\xc3\x24\xa7\x76\x5c\x6b\x6e\x6c\x3c\x59\x91\x9b\x55\x24\x85\xea\xf4\xe3\x2e\xa1\x13\xec\x4c\x69\x00\x9f\x51\x0f\x22\x17\x0b\x49\x05\xd5\x5b\xa8\xa9\x9f\xd7\xa6\x4f\xd7\xf6\x68\x7a\x87\x3d\x38\x39\xf9\x58\x97\x9d\xa8\xac\x36\xee\xe5\x2b\x84\x7e\x20\x12\xeb\xe9\x60\x4b\xfd\x5f\xa2\xca\x71\x53\x83\x62\xd6\x1f\x36\x9d\x5c\x5f\x26\x66\x42\x4a\x4f\xbd\x62\x41\xb6\xd9\xcd\x58\x4f\xde\xd8\x6e\xe2\x51\x30\x33\x4b\xad\x22\x0d\xa9\x53\xd6\xe3\xd0\x9c\x8d\xcd\x69\xd0\x3c\x72\xa3\x0d\x08\xb0\x9b\x4e\xbf\x34\x9f\x6c\xdc\xaa\xd6\x15\xa5\xa3\x1b\x0c\x96\x8d\x88\xc1\xe9\x00\x7f\x92\x76\xe5\xc8\x37\x34\x56\xdf\xd2\x9a\x6c\x9c\xd4\x23\x7d\x97\x91\xc3\x83\x54\x6b\xbc\xe0\x6f\x8d\x4a\x9b\x2d\x8f\xfa\x89\x43\xd3\xe9\xcb\xc8\xb9\xfa\xe9\x9f\x91\xe5\x62\x0f\x85\x78\xf8\x11\xa7\x74\xa0\x3d\x2b\x63\xee\x58\xe8\x54\x0e\x73\xbc\xf3\x5c\x5d\xc7\x05\x06\x17\xe9\x4c\x67\x9a\xf8\x6d\x94\xc4\x7d\x27\x19\x20\xce\x15\x78\xcf\xe2\x36\xfb\xa0\xea\xbf\xa3\x09\x80\x05\x3b\xf8\x7a\x81\x3e\xcf\x43\x18\xc3\x38\xc1\xac\x48\x5b\x23\x16\x36\x4b\xd7\x6d\xc4\xbd\xc1\xfd\x77\x55\xfa\x2b\x4c\x90\x86\x9d\x74\x59\xa2\xbd\x8d\xc6\x2f\xb3\xa2\x74\x32\x68\x3d\xaa\x09\x9d\x7c\xee\x38\x4e\xe1\xc0\x99\x82\x4e\xd6\xe4\x51\x43\xc1\x9d\x5a\x3c\xb5\xb3\x18\xcf\x29\xaf\x36\x6f\xde\xf1\xc7\x23\xb9\x5e\x8a\xff\x03\xcf\x11\x03\xb8\xa6\xa1\xc6\x73\xf3\xc4\x26\xbc\xd2\x50\xb8\x24\xf1\xcc\xab\xa1\x7b\x3a\x7a\x5c\x24\xcc\xe6\x7e\x4a\x41\x9d\xaf\x0e\x9d\xef\x9f\x99\xbf\xe9\x1e\xc5\x2d\x5e\xb8\x76\x2f\xd9\xe2\xff\x0a\xba\x69\xdb\x04\x0b\x6c\xea\xe4\x6c\xff\x1a\x14\x89\xbd\xa2\xf8\x1c\x58\x5d\xd8\xcb\xba\xda\xe1\x6c\x00\xfe\x3b\x8a\x8a\x80\x1f\x1d\xe9\x4e\x79\x54\xef\x49\x43\xdb\x0c\x68\x36\x1e\x57\x6a\x0e\x30\x90\x6a\xea\x78\x07\xbf\xd7\x89\x7e\x19\x7e\x50\x5e\xcc\x9e\x25\x55\x2f\x15\xd4\x6b\x59\xaa\x3d\xd5\x98\xda\xa7\xe1\xbd\x2a\x69\xd0\xe6\xba\xf3\x72\x14\xd4\x76\x4a\x29\xc3\x5f\xde\x28\xe7\xee\x37\xdd\x65\xd1\xe7\x53\x26\xcc\x48\x67\x93\xb5\xdd\x59\xbf\x86\x23\x38\x71\x70\xdb\x53\x4d\x9e\x0f\x30\x14\xba\xaf\xd5\xbc\x99\xcb\x36\x57\x6b\xf0\x73\x6d\xf5\xd0\x63\xa7\xc9\xda\xbd\x7b\x8d\xd3\xed\x8f\x77\x55\xab\xae\xa6\x67\x31\xed\xdf\x4c\x07\x5d\x4b\x58\x19\xa1\x72\x94\x9d\x67\x1f\xef\x07\x42\x1d\x6e\xf3\xe2\x56\xb1\x32\xc7\xd0\xa6\xec\x95\x2e\x4e\x82\x2f\xd6\xa1\xb6\xd5\xaf\x9a\x5c\xc2\x6d\x31\x7b\x93\xac\xa2\x5d\xe6\xb2\xb2\x99\xf7\x93\xa8\x60\x60\x47\x0e\xbd\xcb\xce\x2e\x50\x0c\x70\x3d\xc8\xbb\x2e\x11\x61\x37\x3c\x4e\xad\x45\xd2\x25\x19\x35\xbe\xfb\x65\x08\x7a\x49\x01\x0d\x27\xb5\xa5\x9a\xab\x24\xb4\xeb\x05\xd9\xcd\xf9\xf2\x1b\xd6\xb1\x21\xe7\xee\x23\x9e\x18\xf1\x0d\x4f\x63\x60\xb5\x7a\x71\x13\xd8\xea\x30\x9b\x01\x99\xa6\xff\xa6\x48\x07\x8c\x99\xcd\xaa\xbd\x31\xb1\x19\xee\x40\x5e\x3b\x6a\x3a\x8c\xc3\x73\x6e\x47\xbc\xc7\xa9\x44\xf0\x82\x67\xcf\x2e\xcf\x5f\x9e\x1f\xc1\x5e\x35\xd2\xd1\xc6\x3b\xf0\x49\x43\x49\xb7\xc1\x14\x15\x94\x37\x1e\x25\x2e\xe8\xc8\xbf\xe6\x0e\x3e\x0b\x6c\x51\x07\xfa\x45\xfa\xf7\x1f\xf9\xf5\x7a\x1a\x4e\x31\xd0\x1f\x65\xbc\xa8\xd9\x5f\xe8\x19\x51\xe8\x75\x80\xb7\x5d\x8c\x00\x69\x04\x88\x36\x7a\xea\x36\xef\xbe\xd6\x55\xa3\x0f\xa8\x0c\x2f\xd7\xe2\x25\xb8\x54\x27\xf6\xdc\x97\x84\x8a\xc7\xad\x8e\x59\x19\x2b\x6a\x1f\xeb\x4a\x39\x6f\x5d\xdd\x07\x83\x0a\xe8\xfb\xed\xb3\xe8\xb2\x04\xdc\xb2\x7b\x60\x00\x77\x6c\x39\x33\x74\x2f\xa7\xfc\x98\xab\xfd\xc6\x23\x90\x2f\xee\x11\xe5\x94\x0f\xd6\x57\x5a\x53\xd3\xb6\x9c\x7b\x43\x4e\xf0\x2a\x3e\x06\xa2\xe9\x13\xee\x1a\x0e\x53\x80\x71\xa7\x03\xf5\x5c\x15\x11\x2b\x43\x1f\x72\x50\xdc\xf9\xe9\x20\x89\x3f\x98\x60\x3f\xdb\x84\x61\x90\xa8\xf4\x1a\xfe\x30\x4a\x63\x00\x36\xdc\x0d\x06\xcc\xac\x36\x7d\x5a\x38\x2a\x40\xb4\x08\x45\xb5\x05\x0c\xa2\x25\xa8\x0b\xc6\x26\x8d\x14\xb8\x1b\x64\x5c\xff\x19\xc1\xe6\x09\x0e\xbe\x3c\x0c\xce\x89\xb0\x06\x52\x77\x80\xdb\x38\x44\xda\xc7\xb9\x68\x91\x7a\xb4\xbb\x2e\x3a\xa6\x46\x95\xa3\x8d\x4d\xdd\x65\x8c\x42\x38\x44\xea\xf4\x71\x7c\x63\x52\xeb\x56\xd7\xe5\x53\xb7\x6d\x27\xd1\x78\x8d\x0b\x6d\x47\x63\x99\x58\xb8\x8e\x82\xcb\x9f\x7e\x1e\xda\x07\xf6\xa0\x9e\x68\x74\x96\x4a\x06\x82\xae\x6e\x40\xf1\xc7\xf3\xf1\xa9\x76\x12\x2e\xf5\x26\x69\x86\x68\x8b\x03\x7e\x96\xa5\x4f\x46\x96\x9a\x05\x09\x2d\xa5\xf9\x82\x64\x0b\x87\x3a\x52\xe4\x14\x0e\x99\x2b\x47\xaf\x55\x7e\xad\xac\xcd\x40\x2c\x02\x1b\xe2\x2e\xab\x9e\x14\x02\x49\xae\x39\x22\x4a\xde\x22\x99\x01\x54\xac\xd6\x47\xab\x42\x28\x29\x2d\x6a\x8f\x92\x2d\x8d\x72\x70\xa4\xe3\x5b\x65\x8e\xe8\x9d\xe3\x33\xdc\x72\x6c\x0d\x7c\x97\xe3\x62\x87\x60\xfa\x48\xee\x8c\xc5\xc5\xf2\x68\x28\x09\xce\x9a\xea\x94\x38\x18\x17\x5f\x21\x6f\x35\x4b\xea\x36\x8a\x9f\xcd\xf1\xa5\x03\xad\x9b\x3d\x62\x01\x72\x20\xc5\x8c\x11\xa2\x60\x5c\x0b\xe1\xf0\x10\x6f\xb0\x40\x7d\x15\x13\x67\xd8\xee\xb1\x44\x48\x08\xbb\x81\x2e\x5a\xc9\xb7\x30\x19\x56\xa7\xa2\xb1\xcc\xd7\x6d\x35\x6f\x98\xdd\x91\x52\x53\x2c\x06\x01\xa6\x98\xd4\x82\x60\x8c\xae\xf0\xee\xa5\xc2\x6c\xa6\xd1\x2c\x2f\x90\xeb\x83\xf0\x43\x78\xc8\xef\x8f\xb2\xe9\x7d\xcd\x44\x15\xc1\xf1\xad\x6e\x26\x04\x95\xf5\x9a\x23\x42\x3b\xc6\x5a\xa4\x83\x31\x1c\x86\xc1\x52\x9c\xae\x85\x20\xe4\x94\xa6\x00\xca\xbb\x47\xec\x78\x0f\x49\xb2\x15\x92\xfb\x56\xa7\x27\x62\x1b\xb7\xfa\x9d\xcd\x34\xa8\x5c\x06\xa1\xf1\xb0\xc6\xe0\x60\x44\x55\x2e\xfd\xe3\xbc\x2a\x6c\xdf\x52\x76\x9d\x73\xb4\x56\x78\xf7\x35\x78\xff\x2a\xc2\x32\x2e\x38\xf7\x89\x1b\x9f\x9a\x70\x11\x8b\x85\xdc\x43\x96\x6f\xe4\x96\x6f\x48\x81\x17\xeb\x71\x57\x3d\x1f\x7a\xf7\xd2\x44\xd5\x6d\xff\x6d\xf4\x08\x66\xd7\x37\x55\x56\xe3\x9c\x15\x2d\x9f\xe9\xfb\xd9\x7c\xa1\x1b\xf6\x09\x18\xf7\x1a\x6d\xc4\x92\x21\x1b\xfb\x45\xbc\xab\x4e\x93\xa8\x22\xfc\x6e\xa8\x2b\x71\x04\x1c\xd3\xb1\x1f\xe9\x97\x50\xdb\x1f\xfa\x00\x88\xe3\x97\xeb\x7a\xcf\x3a\x79\x85\x4f\xb3\x03\x4e\x9f\xd2\xdb\x90\x93\x9a\x72\x07\x83\x81\x1f\xd1\x5c\xec\x3a\x4e\x61\x8f\x2a\x71\xed\xee\xf1\x9f\x7b\x94\x50\xc6\x45\x5d\xb0\x5c\x59\x56\x3a\xc9\xf5\xa5\x4e\x3c\x73\x82\x05\xe2\x79\x3b\xc9\x9b\x85\xbe\x06\x3f\xa6\xb0\x8f\x61\xf5\xd8\x64\xdf\xed\xe9\x8d\x6d\xcf\x0c\x80\xaa\xe3\xb0\x0a\x87\xd1\x27\x9b\x9a\x95\x10\xad\x88\x74\xae\xa6\x68\xe6\x85\xbc\xd3\xa2\x61\x47\x13\x1f\x99\x74\xd2\xf3\xb1\xec\xc2\x97\xc3\xa0\xc9\xbe\xa3\x4d\xd8\x2c\x6a\x46\xc7\x4b\xef\xb9\xc4\xb3\xa6\xea\xda\xb8\x30\xfd\xe0\xd1\x65\x35\xa9\x17\x7c\xf4\x8d\x56\x17\x66\x4a\x6a\x7c\x6d\xd0\x83\xba\xbc\x13\x14\xc1\x00\x3e\x3d\xf8\x12\x37\x3e\xe4\xda\x38\x9b\xa5\x51\x5b\xf5\x00\x9b\x14\x21\x59\x1c\x4d\xfd\xe8\xfd\xc5\x63\x4e\x78\x64\xc5\xd8\x78\x3a\x7f\x59\x5b\x41\x60\xca\x9d\x11\x5c\x5a\x9e\x4d\x51\x32\x46\xa1\xb4\x23\x70\xa9\x20\x5e\x0f\x34\x16\x81\xa6\x6f\xd8\x83\x20\xfc\x59\x1b\xb7\x24\xdf\x66\xe9\xe2\x71\x2d\xef\xec\x30\xa2\xcf\xc6\x38\x95\x44\xa1\xaf\x07\x3a\x69\x63\x18\x78\x3c\xd5\xf0\xbd\x30\x7c\xb3\x11\xd2\x2a\x73\xea\xe7\xc3\x8c\x88\x5d\xb5\x9a\x35\xed\x19\xa3\xba\xd0\x3a\xea\x05\xbc\xd5\xa2\x47\x92\x55\x16\x37\x0e\x23\xc8\x14\x5c\xd1\xd0\x29\x47\xea\xc5\x49\xbb\x7c\xf8\xd4\xad\x47\x35\x99\xa2\xad\xae\x7d\x5b\x2c\xb8\xae\xc8\x02\xa7\x18\xad\xdd\xb8\xda\xc4\x06\xb1\x70\xb7\x66\xd7\xf0\xd5\x87\xd9\x76\xea\xb8\x7c\x2a\x53\x56\xb1\x39\xc5\x1f\x99\x1c\x7d\x70\xb2\xd4\x8f\xc7\x3e\xe1\xb5\x5d\x58\xc8\xb5\xcc\x42\xae\x65\x9a\xe4\x88\x2e\xab\xa5\x37\x4f\x6a\x07\x16\x1a\x0f\x7d\x9e\xb5\x10\x12\xf6\xbe\x47\x5c\x16\xbe\x0c\x89\xfc\xcd\xa1\xbe\x59\xb2\xa8\xe7\xe9\x5e\x48\x15\xae\x37\xec\x55\x69\xc9\x5f\x41\x62\x42\x3f\x6b\x7b\xa0\x53\x3b\xf9\x8e\xda\xde\xaf\xbf\xef\x21\xad\xf6\xd0\x0a\x63\x52\xee\xad\x51\x76\xfc\xc9\xab\x48\xbe\xc5\x67\xcb\x08\x51\xeb\x12\x96\xad\x72\x65\x71\xf1\x87\xd1\xf0\xfe\x40\xbf\x2e\xb5\x86\x29\xc6\x95\xa2\x21\x16\x17\xce\x5e\xf0\xe3\xeb\x57\x36\xf7\x19\xb5\x3f\x2b\x10\xf7\xe7\x36\x6e\xd0\x60\x12\x3c\xa3\xbf\xfb\xf0\xa3\x3e\x6b\x15\x47\x78\xf6\x32\x1b\x0d\x52\xb2\x05\xdf\xc0\xff\x77\xc5\xc5\x4e\x32\x36\x3e\xb4\xce\x73\x03\x0d\xec\x7e\x84\x64\x01\xb8\xd6\xa8\xa7\x1c\x9b\x4b\x20\xbb\x49\xf8\xbc\x43\xf2\x50\x29\xd8\x95\xe0\x34\x1c\xd7\xd5\xeb\x24\xfc\xa0\x6a\x0a\x56\x52\x42\x6a\x41\x65\x2c\x93\x4a\x59\x04\x68\x65\xa0\x31\xa7\xe9\xd2\x50\x79\x19\x97\x85\x49\x8b\xa0\x77\xdb\x40\xb7\x06\xea\xb1\x36\x50\x4b\x3d\x53\xcf\x28\xc4\x9a\xec\x53\x31\xab\xc9\x4a\x9d\x67\xa1\x12\xe6\x06\x72\x33\x12\x46\xa0\xb4\x99\x9a\xde\x6b\x03\xf5\x07\x96\x5b\x77\xce\x21\x1b\xad\x74\xe2\x54\x68\x80\xc4\x6c\x1d\xf0\x2a\xda\x6f\x5c\xfd\x93\x70\xca\x7d\xf6\x3d\x33\xcd\x09\x97\x2c\x62\xaa\xbd\x07\x6e\xbf\x6f\x48\xff\xd9\x24\xab\xcf\x73\x51\x25\x96\xe5\x30\x9c\xa3\x5e\x1e\x86\xf9\xc4\xaa\xe7\xf3\xf9\x0e\xb0\x62\x3a\xa8\x67\xd0\x59\x72\xe8\xa8\xe0\xe1\x7c\xb1\xa8\x24\x9a\xf0\xf2\x0e\x8e\x6d\x59\x67\xf1\x0c\x45\x31\x8d\x81\x24\xe0\x39\x53\x28\x48\x3e\xe1\x3e\x21\xe4\xcf\xf3\xc7\x6b\x96\xb3\x81\xc7\x2f\xf1\xc6\x1d\x49\xb3\x7b\xac\x88\xd8\x79\xfe\x77\xe9\x00\xe1\xe4\x0e\x2c\x18\x84\x93\x8e\x8f\x6d\xc1\x98\x4e\x2d\xc8\xaf\x5c\xfa\x2f\x9b\x50\xc4\xb0\xe6\x7e\x6b\x46\x47\x51\xfd\xc0\x5a\x9e\x5d\xba\xf2\xe0\x8e\x56\x01\x6c\x18\xcc\xc0\x33\x87\x7d\xb6\x6a\x92\xd0\xcb\x68\x8b\xd3\x6b\xb2\x5c\x79\x44\xfa\x47\x9b\x53\x84\x37\xac\xc8\x66\x6d\xb6\xc0\xd2\x2c\x9b\x0e\xda\xa8\x6b\x1a\x23\xc9\xf1\xa6\xb9\xd3\xa0\x73\x7a\x74\x3a\x5a\x19\x4f\x54\x75\xdc\xbb\x41\x87\x37\xa0\x0f\x16\xef\x54\x92\x1c\x60\x61\x45\xc5\xd5\x5e\xdc\x93\xc6\xdc\xc9\x94\xb7\x22\x5a\xbb\xf2\xd0\xc6\x44\xbc\x45\xce\x91\x18\x67\x5c\x5c\xe5\x78\x3d\xaa\x72\xc8\x8a\x3f\x51\x85\x14\xfc\x68\x5e\x08\xe6\x2d\xdf\xaf\x0a\x6d\x99\x70\x5c\x81\xcd\xbb\x7a\x35\xca\x47\x89\xaf\x1e\xd6\xf8\x95\x05\x8e\x0e\x8c\xf3\xea\xdd\x64\xfa\x09\x5e\x94\xfb\xeb\x06\x3c\xb6\x15\x66\xdc\x88\xa7\xce\x3c\xca\xd1\x62\x17\x4f\x37\xda\xb0\xb7\x6e\xc8\x61\x4c\x35\xad\xe9\x14\x76\x6c\x70\x6a\xa3\x29\x3c\x5d\xcb\xb8\x8c\x16\xfc\x34\x19\xc0\x03\x07\xa3\xb6\x16\x11\x7e\x4b\x6d\xca\xc7\xc1\x00\x96\x23\x0c\x3f\xfd\x74\x92\x80\x2b\xf3\xf3\xcf\x12\x0f\xeb\x16\x0e\xdf\x12\xc5\x78\x69\x9f\x71\x2b\xe0\xdf\x4f\x55\x9f\xf6\x16\x17\x59\x5e\x3a\x81\x96\xca\x55\x5c\xaa\xca\x4b\x09\x9e\x43\x27\xd5\x7d\x36\x4d\xe4\x66\x3b\x67\xc4\x45\xb5\x5b\x7e\x54\x8c\xfc\x2e\xcb\xa5\xff\xa5\xe9\x6f\xeb\x8f\x8d\x36\xb5\x74\x53\xb0\xa5\xf3\x7b\x9b\x50\x95\xe1\x7c\xf4\x67\x69\xfc\xaf\x99\xd2\xd6\x83\x7b\x33\xd8\xfc\xdd\x7f\xed\x78\xa4\x41\xdb\xb7\xf5\x8a\x14\xae\x20\xba\xa3\xd7\xbe\x68\xaa\x09\x28\x95\x84\x6b\xaa\x43\xa1\xbb\xd8\xe9\x77\xbc\x7b\x8f\x34\xfe\x38\x0f\xaf\x39\x9f\xd8\xbf\xf8\x58\x99\xe4\x83\x52\x53\x16\x95\x62\xee\x75\x38\xbe\xdb\xa6\xa4\xb4\x45\xe1\x9c\xc9\x98\x59\x19\xab\xfa\xea\xc7\x87\xde\xf2\x77\x6f\xdd\xe3\x43\xe7\x4e\x88\x01\xc8\x0b\x99\xb5\x58\xe3\x9f\x39\xb2\x09\x8e\xd8\xb2\x0a\x73\xd8\xe1\xb7\x05\xd1\x57\x1e\x53\x4c\x3e\x1e\x29\x5d\xf9\xb9\xb1\x98\x73\xbd\x49\xd0\x3b\x9d\xa8\x1a\xba\x15\x4d\x2b\xb5\xd9\xbd\x52\x9f\xb6\xa1\x04\xb7\x74\x60\xef\x17\x5f\x39\xed\xaa\xbd\x21\x83\x57\xed\xe7\x2b\x25\x99\xaf\xd5\xee\xf9\x30\xde\x89\x4c\xe4\x54\x46\x55\xb5\x5c\x24\x9d\xdd\x04\xfb\xda\xf7\x65\x39\x7d\xc7\x50\x1e\x55\xfe\x3d\xa4\x01\xcf\x75\xd5\xcf\xa6\x6e\x84\x0d\xd7\xa0\x96\x26\x8d\x9c\xd7\xa7\x9c\x94\x54\x23\x54\xb0\x6e\x4a\x9d\x52\xee\x53\x1f\x32\x55\xcb\xd5\x0c\xe7\x56\x86\x1d\x72\xfa\x56\x4a\x73\xf4\x24\xdd\x31\xdd\x93\xe8\x28\xe8\x20\x19\xc4\xa1\x4f\x40\x53\x1e\x69\xe3\x04\xbb\xc0\x73\xc0\xe5\xe9\x75\xde\x51\x3e\x76\x3d\x72\x65\xbd\x0e\x8f\x40\xba\x9b\xc6\xc6\xe9\x83\x39\xda\x0e\x81\xd6\x84\x15\x7a\xf4\xfe\x8a\xa1\x04\x51\xbd\x6c\xa2\x6d\x20\x06\xbe\xcb\x22\x78\xcd\x15\x65\x44\x0c\x53\x4e\x6a\xc2\x6c\x7b\x58\x48\xd6\x3e\x15\x8c\xd8\x02\x8a\x3c\xdb\xfa\xb5\x66\x2f\x61\xaf\xd2\xaf\xbd\xe0\x1a\xda\xfa\xf6\x96\x92\x09\x3d\xd0\x06\x6a\x1c\xdc\x7e\xf7\x80\x76\xa2\x16\x9b\xd9\x1c\x7a\x15\x63\x33\x5a\xa0\x26\x4e\x3e\xc7\xb1\xfe\x48\x63\x45\x33\xfe\xe7\x6f\x9a\xd3\x4e\xc3\xa7\x01\xf7\xa0\x28\xd4\x25\xe5\x07\x77\x15\x8c\xec\x96\x8f\x1e\xec\x3f\xa5\x4a\xac\xb6\xc4\x0b\x35\x44\x30\x71\x90\xd0\x31\x22\xf1\x08\x96\x5a\x21\x52\x25\x2a\x1f\x49\x53\x78\x72\xb0\xef\x37\x0a\x5b\x68\x26\xc7\x40\xa5\x84\x25\x92\x40\x2e\x6c\xde\x32\x9d\x74\x34\x3b\xea\x6a\x62\xd6\x18\x40\x89\x24\xe1\xc2\x9e\x28\x8f\xd0\x23\x1c\xa8\x82\x5a\x92\x50\xb4\x50\xc2\x78\x02\x6e\x45\xd0\xdb\x2c\x67\x1a\x86\xae\xaa\x9d\x77\xb4\x09\xa0\xb7\x94\x4e\x27\xf7\x7a\xb4\xd0\x23\x5b\xff\xc3\x34\xec\x6a\x59\x68\xa2\x56\xa2\x88\x3c\xda\x81\x99\xbe\xe1\x4a\xd5\xd6\x68\x60\x16\xcd\x71\x35\x37\x21\x9e\xd3\x3e\x81\x91\x67\xe6\x37\xd0\xc6\x94\x15\xb2\xef\x0d\x8a\x7d\xac\xbf\x40\x99\x4f\x6e\x28\x76\x9a\x71\xd7\x36\x8d\x81\x49\xd7\x4e\x0d\x42\x3a\xd9\xa4\x79\x54\x92\x48\x9d\xa8\xd9\x3f\x7c\xaa\xa3\x67\xf5\xf9\x5a\x38\x26\x49\x14\x04\xb5\x4d\x85\xad\xf3\x11\x97\xf2\xfc\x5b\x72\x11\xa3\xa4\x6f\x09\x56\x0b\x37\xe9\xdb\x9b\xe0\x8a\xf0\x51\x9a\x0b\x32\x55\xe5\xd0\xa5\x06\xb1\x3a\x4f\xcc\x31\x4b\x4c\x48\xb5\xd5\xe8\x6a\x68\x7c\x03\x43\x99\xfa\x71\x7d\xae\xf2\x7d\x27\x91\x19\xd3\x21\x8e\x6f\x48\x8b\xbc\xeb\xbb\xfa\x6c\x5c\x35\xb0\xad\xbf\x1c\x9a\x41\xdf\x34\xdd\x2c\xb1\x53\x72\xb4\xa8\x82\x18\x3c\x1d\x78\x03\x34\x44\xb4\x2a\x88\x61\x3f\x06\x57\xba\x9d\xea\x41\x1a\xab\x8d\x21\xd0\x5a\xe2\xe3\xd8\xcd\x65\x29\x0d\x20\xe6\xe3\xbe\x68\x0f\xfd\xa6\x8f\xbf\x99\xe4\x90\x16\xf5\xf2\xc8\x88\x41\x99\x6b\x8d\xfa\xa8\xf4\xd3\x7d\xc0\xb9\x29\xc5\x00\x6c\x58\xcf\xab\xea\x1a\x2c\x60\x69\x41\x95\x02\x1e\xae\xa2\xe9\xcd\x8d\x66\xbd\x81\x2f\x37\xa8\x8c\x07\xe4\x56\x5b\xe5\xac\x03\xaf\x91\x48\x43\x79\x14\x1f\xf9\xa6\x3a\x58\xf8\x56\x7b\x50\xd9\x96\xac\x30\x27\x72\x55\xd8\x29\x89\x1a\x14\x6d\x7c\x9d\x4a\x6b\xb3\x6b\x60\x6d\xca\xda\x77\xee\x06\x7f\x69\x76\x6b\x12\xc4\xc6\x64\x31\x53\xb3\xa2\x7d\x7b\x6e\x4d\x04\xd0\x7a\x92\x0c\x6e\xef\x28\x6c\x49\xf5\x28\xc0\x94\x93\xa4\xc3\x4c\xbb\x68\x9b\x95\xec\x81\x95\xf4\x31\xf5\x0f\x67\x63\xb2\xa9\x0a\x1e\xad\x93\xc2\x3d\xf8\xeb\x67\xfc\x10\x42\x76\xec\xf9\x96\xcf\x06\x51\xec\x56\x33\xee\x84\x46\xdb\xac\xae\x50\x68\xd8\x06\x5d\x62\xda\x41\x4f\xa6\x9c\x77\xed\x0c\x25\x01\x1e\x74\x74\x34\x74\x63\xd3\x67\x76\x26\x9d\x04\x61\x70\xaa\xb3\xe7\x9e\x8f\x9b\x7b\xb0\xbe\xa1\x21\x58\xad\xdf\x50\x22\xee\x36\x2b\x3b\x01\xaf\xdb\x44\xfa\xcc\xfb\xdd\xe4\xfd\x7c\xab\xd1\x5e\xb3\x5a\xa3\xcd\xa8\xc7\x6c\x34\x32\xcc\x84\x4d\x16\x23\x3e\x1c\xb8\x9f\xcf\xa9\xe2\x55\xdd\x72\x9d\x0b\x12\xcb\x6d\xb9\xbd\x41\x5f\xd4\x56\x34\x89\x2b\xfd\xf0\x6d\xb6\x14\x7f\xb3\xc7\x24\x3d\x6d\x90\x75\x11\x24\xae\xda\x20\x1a\xe8\xb9\x26\x88\x8b\x62\xdc\x6a\x82\x3c\x56\x9e\x2e\x62\xf2\xae\xae\x88\x0c\x30\x4d\xca\xa8\x45\x31\x28\x4c\x97\xba\xcb\xf2\xa8\x87\x92\xe8\x2d\x7c\xad\x7b\x85\x5c\xff\xbe\xff\x87\x4d\xff\x9d\x1f\x1f\xd3\x85\x77\x3c\x17\x15\x03\xa5\xab\xef\x17\xbe\x43\x73\x9c\xfa\x3e\x0c\xe7\x08\x3c\x47\x42\xc2\x90\xba\xef\x2c\x75\x07\x8e\x4d\x2f\x87\xb0\x16\x41\xd1\x1d\x02\xac\xe1\xec\x13\x4e\x2a\xab\x76\x79\xb7\x73\x6b\x10\x71\x89\x5d\xb6\x7d\x87\x4e\x05\x1d\x0e\x6a\xd1\x05\x19\x3c\x48\xd0\x41\xae\x35\x91\x6b\x99\xc8\x9a\x24\x5a\xd8\xd0\xf6\x52\xd1\x35\x1e\xa5\x62\xc1\x37\x45\x3a\x1e\x17\xc1\xd6\x19\x86\x33\x19\x2b\xab\x2b\x0a\x1e\x7c\x9e\xeb\xeb\xd2\x7c\xad\x21\x32\xa7\x92\x56\xc5\x7a\xd8\x90\x66\x6e\x2f\x89\xf5\xb6\xc3\x62\xe8\x8a\xf0\x51\x29\x27\xc2\xc2\x65\xe2\xb2\xd2\x33\x0c\x22\x35\x55\xdc\xf1\x1a\x6f\x67\x73\x73\x76\xb3\x58\x9e\x62\x1b\x19\x4c\x10\x1c\x29\x5d\x18\xd4\x98\x60\x34\xea\x5d\x4c\x35\xe2\x2b\xb7\x88\x7b\x2d\x5e\x57\xce\x06\x56\xfc\xae\xee\x59\x22\x39\x0e\x8d\xd7\x39\xb2\xeb\xeb\x44\x2a\x42\x36\x61\xa6\x51\x6a\xd8\x04\x8b\x3b\x84\xce\xa6\x8c\x0c\x30\x7b\x8a\x8a\x64\x95\xf9\xac\xbc\xb9\x7f\x86\x77\xdd\x60\x23\x30\xdb\x61\xd4\x78\x21\x82\x21\x75\x8a\xcc\x50\x58\xda\x30\xa2\x72\xca\xc7\xf0\xb6\xb8\xfc\x43\x86\xc9\x4b\x1c\x69\x0f\xd1\xef\x22\xb3\x35\xcd\xaf\xdc\xab\x98\x9b\xa0\xed\xa7\x4e\xc8\xaa\x05\xe7\x55\xbb\xab\x2b\x69\xbd\x4c\x04\xf2\xb6\xbd\xae\x63\xf1\x2c\xa7\xde\x87\x4d\xba\xdd\xb9\xcc\x2b\xb8\x36\xe8\xfa\xad\x4b\x4c\xcf\xad\x44\xd6\xa8\x95\x2c\xbb\xb5\x74\x2d\xdf\x36\x9f\x55\x9b\xb2\x9e\x08\x2c\x1f\xc1\xc3\x7b\xe5\x1d\x4e\xa5\x27\x6c\xab\x9b\x11\xda\x35\xb4\x01\x3b\x2e\xa6\x95\x7b\x07\xb6\x3a\x21\x75\x94\xe5\x7c\x7a\x1d\x49\xda\x60\x1d\x9a\xca\xbc\x4e\xe8\x8f\x4f\x91\x54\xf4\x4c\x6e\x5a\xd5\xd1\xf6\x3d\x4b\xfe\x4f\x57\x79\xd3\x0d\xd0\xe3\x11\x9d\x24\xcc\x33\xa2\x90\x62\xcd\x12\xef\xd1\xb1\xc5\x70\x9a\x1b\x81\x29\xca\xfb\xa4\xd1\xc7\x5d\x77\x1c\xe6\xd8\x6b\x11\xe0\xe3\x38\x82\x55\xdd\x62\x43\xf5\x3c\xa6\xab\x74\x2b\x58\x83\x39\x78\x5c\x6b\x69\x50\xbb\xb0\xb4\x44\xc0\xa5\x0d\xd3\x55\x4f\xe6\x1e\x14\xff\x5d\x58\x46\x73\x09\xdf\x77\x75\x3d\x28\x6b\x96\x0f\x83\x39\xf8\x37\x47\xc1\xe6\xed\x7b\x98\xdb\x44\x49\x53\x37\x2a\xbe\xbe\x29\x57\xd2\x13\x72\x2a\x40\x03\xb9\xb7\x91\x5a\x14\x3f\x52\x50\x66\x45\xed\x4f\xa5\xa7\xfa\xe5\xac\x89\x84\xd2\x45\x59\x75\xdd\x74\x53\xca\x16\x88\x9c\xc6\x1f\x55\x22\x8e\xbc\xfd\x40\x27\x19\x9b\xf6\x8d\xb3\x34\x66\xdc\x54\x58\x60\x69\xe0\x70\x8a\x26\x24\x96\xaf\x74\x12\xad\xf6\x1b\x31\x15\x91\x92\x58\x6a\xdf\x53\x8e\xe5\xb1\xef\xde\xe5\x64\xcc\xf5\x45\x0f\x65\xc0\xcd\xe6\xdc\x08\x29\x9b\x77\x44\x7e\xe8\xdd\x80\x6d\x23\xf6\x36\xc4\x7d\x18\xd8\xa6\x49\x53\x2c\xc9\x04\xff\xc5\x26\xae\xe8\xbe\x5e\x65\x79\xa4\xf2\x6a\x61\x8f\x54\xe5\xdf\xd7\x56\x45\x83\x60\x68\x2e\x61\xd1\x49\x2d\x1b\xa9\x3d\x12\x5f\x17\x58\x6b\x5f\x4d\xd8\xcb\xeb\x7a\x3d\x6b\xca\x25\x96\xcf\xf7\xe6\x95\xd5\x9b\xe1\x77\x71\x54\xde\x6c\x8f\xdf\x3f\xe0\x74\x0b\xb0\x9b\xc1\xfb\x43\x72\x9b\x49\x45\x04\x58\x95\xd7\x80\x78\x9c\xd2\x3d\xbe\x25\x3c\xb9\x21\x15\x8b\xa7\x92\x0b\xa2\xbd\x9a\x8b\x46\x64\xe3\x31\x8c\x60\x53\x5b\x4f\xec\xb4\xf5\xe8\x46\x53\x19\x37\xc7\x8e\xe4\x9a\x6b\x53\x52\xb8\x89\x1a\x97\xba\x6a\x10\x15\x8d\x64\x7a\x17\xee\x5d\x2a\xe2\x8f\xba\xf3\xbe\xf1\xf0\xae\x74\x02\x6a\x8d\xd8\x3b\x9f\x3c\x1a\x18\x3d\xf2\x3a\x1f\x34\x10\xba\x23\x9e\xf4\x58\xb0\x99\x17\x30\xca\x74\x69\x01\x12\x61\x67\xc0\x8e\xad\xbb\x79\xc7\x76\x4a\x84\x4a\x92\x4e\xa5\x76\x82\xde\xce\x9b\x16\x8a\x7c\x51\x29\x9e\xd0\x5d\xc9\x2d\xf5\x7a\x37\x34\x52\xa8\xad\x25\x9c\x70\xb7\x25\xd8\x83\x70\x35\xb2\x1b\xf7\xfc\x2e\x21\x78\xa0\x7d\x7f\x28\xba\x96\x23\x6a\x4e\x82\xee\x04\x08\x19\xa7\xb6\xfd\x9c\xa3\x3e\x07\x48\xb4\x0c\x54\xf5\xde\xf4\xe3\xde\xbe\x55\xbf\xa1\x6b\x93\x89\x23\x9f\x4b\x4b\xf8\xb1\xbe\x0a\x44\xe5\xe3\xa5\xc2\x40\xbf\xce\xaf\x72\xe5\xf2\x35\x01\xd4\xfb\x82\xa6\x23\x65\x4f\x0b\xc1\xc6\x88\x5b\x98\x60\x3d\xfa\x7a\x71\x03\x40\xca\xec\xdd\xde\xb4\x5e\x44\x6e\xee\x86\x48\xc3\xac\xc7\xfe\x41\xae\xec\xce\x6e\xe8\xd2\x6f\x9e\xed\xf3\x40\x76\xcf\x5c\x82\x6e\x5b\xdc\xd8\x78\x58\x59\xda\xd6\x61\x7e\xed\xa0\xb0\xf5\x32\xbd\xb6\x6e\x76\xf1\x1e\x81\xd7\xbe\xeb\xc9\x25\xe2\xbb\xb6\x58\x5f\xf3\x40\xbd\xc9\xf2\xf8\xdf\x68\x16\x24\x35\x2f\xb8\x18\xe5\x19\x5e\x73\x0f\xf3\xa5\x16\x8b\xf4\x4e\x65\x17\xbc\xf7\x2c\x9d\x6e\xbf\x5c\xa8\xa2\x2f\x5e\xc1\x9e\xda\x23\xa4\xb2\x38\x9e\xcb\x5f\x25\xaa\x49\x73\x83\xd1\x64\x26\x97\x28\x6a\x05\x80\x32\x6b\xc5\xd5\x0b\xaa\x2c\x72\x8e\x83\x46\xc7\x68\xb3\xfc\xed\x3b\x47\x6f\xee\x5e\x72\x51\xa0\x9e\xcc\xed\x3d\xfd\xe3\x63\x2d\x22\xba\x2c\x67\xd7\xb0\xa3\xf9\x20\xdd\x55\x5d\xf4\x16\xba\x63\xa4\x4e\xf6\x87\x35\x1e\xda\x3d\x8e\x5d\x80\x69\xb0\x7c\x04\x73\x8d\x74\xe9\x0e\x6b\xf2\x44\xeb\x8b\x6a\xf2\x78\x9b\x0d\x6a\x32\x71\x9b\x5d\x1d\x6f\xcf\x5d\x28\xa4\x29\x59\x52\x26\x6f\x8e\xfb\x42\xda\x82\x7f\x94\x89\x40\xb5\x01\x30\x16\x74\x8f\xad\x85\x95\x02\x72\xce\xda\xba\xd7\x6d\xb5\xc9\xe9\x08\xec\xb2\x9c\x9a\x60\x0e\x1a\xfb\x9a\xb6\x61\xdd\xbb\x07\x78\x4f\x69\xdb\x44\x83\xee\xe7\x6e\xfa\x67\x7a\xef\xd6\xf7\xa5\x46\x48\xd6\x64\xac\xd4\x4f\xf4\x49\x44\x6d\x96\x9b\x9a\x78\x77\x16\x5b\x58\x37\x81\xb8\x34\xa9\x73\x26\x05\x10\x79\xc7\x51\x0e\x8d\x66\xd3\x28\xac\x5e\x57\x24\x2c\xa8\x5c\x57\x4b\xef\xf7\xae\xe4\x4c\x13\x17\x31\x7d\xb4\xb5\x18\x36\xf6\xd2\x6e\xdc\x03\xe4\x96\x85\x0d\x8e\xb8\xad\xb6\x09\x3a\xb7\xb5\x36\x32\x03\x2f\xd3\xa6\x74\x6d\xe3\xff\xd2\x0b\x07\x5f\xd4\xef\x62\x36\x88\xd1\x1b\x67\x75\x58\xe0\xa2\x6e\xa6\x76\xf6\x0f\x7f\x9c\xa8\x3b\x88\x6c\xa6\xe9\x77\x9b\x28\x6e\x55\x41\xe9\xee\xdc\x0b\x69\xa7\x15\x7b\xc0\xf6\x6f\xe2\x1a\x29\x2a\x83\x81\xc6\x68\x25\x31\xb8\xe5\xe3\xa2\xfe\x75\x53\xbe\xeb\x4b\x2d\x14\x0b\xa4\x4e\x2f\x87\x2b\x65\xc1\x1f\x37\xa4\x27\xad\x02\x39\x0e\xaa\x21\xf7\x72\x8e\x5a\xd6\x57\x88\x0d\xe7\x26\x71\xe1\xf6\x6c\xc9\xae\xb8\x2e\x9a\xa9\xb6\x13\x4a\x97\x65\xba\xd0\x34\x02\xa3\x9b\x5a\xbd\xa1\x22\xbf\xc2\x4e\x05\xc6\x1a\x70\x56\x99\x34\x4b\xe6\xea\xda\x43\xde\x85\xc7\x20\xa6\xc5\x4d\x6b\xa3\x0f\x1a\x10\xf7\x12\xfa\x23\x93\xe6\xd9\xbc\x8b\xa7\xd8\xd3\x54\x32\x08\x05\xbc\xe8\x90\x9a\xbf\xa2\x68\x1f\x81\x5c\xef\x57\x47\xe3\x6e\x34\x52\x6b\x31\x4b\xbd\xea\x2d\x53\xc1\x59\x37\xdb\x25\xf0\xa4\x96\x83\x74\xe7\xf6\x9d\x6d\x7e\x7f\x80\x90\xbd\x70\x8a\x9d\xd0\x1c\x2f\x6a\xc9\x06\x42\xd2\xaf\x40\x33\x34\x34\x9a\x7d\xab\x72\x2a\x2b\x02\xa4\x9c\x81\xb8\xc0\x1f\xba\xb9\x2a\x13\x58\x8c\x45\x3f\xad\x62\xc1\xb4\x89\x4a\x4e\x86\xad\x51\x12\x48\x21\x47\xe5\xcc\x4a\x55\xed\xb8\xb6\x66\x76\x07\x4a\xa1\x56\xcc\x66\x96\x87\x92\xa3\xaf\xf3\xeb\x74\x45\x47\x93\xfb\x88\xbf\x62\xcb\x43\x32\xc8\x1b\x86\x77\x8c\xae\x86\x52\x36\xee\x59\x00\xc6\x77\x81\x5f\x72\x7f\xcf\x0e\x13\x3b\x45\xe3\x3c\xe6\xf0\x2b\xaa\x21\xfb\x63\x68\x40\x7f\x51\x49\x3c\xf2\x4a\xd9\x34\xb4\xb6\xfe\xcc\xb2\x46\x96\x81\x3f\xe5\x5d\x8c\xf6\x62\x99\xb8\xb8\xe4\x05\x97\x9f\x78\x57\x53\x6f\x73\x54\x1a\x3b\xe6\x86\x40\x76\xf1\x16\x77\xa8\x66\x1f\x95\x74\x30\x1e\x2f\xdc\x0a\x8b\x9f\xb2\xb8\xb0\xe7\x8c\x55\x2b\x27\xe1\x94\x60\x74\xda\x64\xc9\x33\xaa\x60\x5c\x18\xd7\x8f\x55\x67\x7f\x5a\x67\x95\x02\x60\x1a\x36\x29\x0c\xd6\xe5\xf0\xa0\xc3\x4a\x95\x9e\x73\xd9\x00\x61\xbb\xe4\x12\x57\x42\xd1\x62\x06\x5b\x02\xec\x16\x68\xf7\xe9\x52\xef\xd6\x00\x6a\xa6\xab\x5d\x21\xed\xc1\x1d\x13\x7d\x70\x7b\x78\xb7\xc0\x60\x0c\x3d\xaa\xdf\xde\x04\xc0\x03\x19\x71\x00\xe9\x40\x23\x6b\xbd\xee\x85\x8c\xba\x97\x71\x31\xd5\xcd\xe3\x6b\xe1\x40\x30\x98\xc7\x61\x24\xa0\x4f\xc8\x7e\x98\x86\xff\xea\x41\xf7\x47\xb9\x99\x00\x2a\xea\x2c\x1d\x38\x9a\xc1\x8b\x46\x2c\xa8\x08\x76\x80\x70\x6b\x54\xe9\x0f\xc5\x92\xd5\x94\xf5\x3a\x79\xb4\x26\x3d\x2a\x18\x2f\xaf\x32\xbf\x8f\xe5\x28\xb1\x07\x42\xc4\x40\xff\x84\x69\xf7\x96\xec\xf9\xac\x5c\xd7\x9a\xdd\x09\xda\xed\xc6\xaa\xed\xe6\xca\x6a\xcb\x76\xbd\x6c\x5a\xe3\xc2\x45\xa4\x97\x5f\xb9\xc7\x11\xdf\xfb\xc4\xe0\xfc\x34\x1c\xc5\x65\x6b\x5d\xa8\xed\x0a\x9c\x06\xe6\x58\x8f\x75\xa5\xca\x3b\x8c\xa6\xff\x99\x4c\xcf\x2f\x61\x6c\x70\xf4\xb5\x01\x23\xce\xb7\x7c\xb4\x49\x11\xbb\xcc\x1c\xe3\xa6\x62\xc4\xcb\xf4\x6e\x56\xd5\x02\x02\xf6\x47\xe0\xc4\x6e\xa8\x91\x85\x78\xbc\xa0\x56\x69\xb3\x06\x00\xc1\x9b\x2e\x0d\x23\xa0\x33\x95\xe3\xbc\x4a\xe0\xdd\xdb\x41\x2f\xe9\x02\xea\xba\x0d\xdf\x9d\x20\xe3\xae\xac\x82\x39\x0c\x5a\x8f\x19\xbc\x5e\x8e\xad\x71\x5f\x15\xfc\x57\x88\x23\x60\x5a\xae\x73\x6a\x9d\xdc\x1f\x80\x30\x48\xc7\x20\x19\x65\xa8\xaf\xdf\x23\x87\x24\x86\x6d\x1e\x16\x9c\xdc\x6a\x98\x4a\xa1\x71\xf3\x70\xa9\xb3\x9c\x5a\x51\x0e\xfe\xd5\xb6\x20\xc9\xf0\x94\x6b\xea\x4c\x53\x21\x0c\x85\xd4\xf9\x88\xa6\x8f\x27\xdf\x6a\x35\xed\xa6\xe2\x42\x49\xdd\xb8\xdd\xff\x59\x19\x2d\x44\xf4\x0d\x99\xf5\x9b\x55\x30\x84\xd3\xf2\xaa\xa5\x2b\x86\xb0\x9b\x2b\xab\x80\x79\xb7\x11\x05\xfb\xbc\xb8\x16\xa2\xfb\xe6\x42\x5d\x9b\x5d\x5f\x84\xd6\x66\xd6\x97\xa4\xff\x05\x45\x12\x93\xd3\x3f\xc9\x5c\xfe\xec\xd8\xaa\x03\x1c\xd4\xcb\xec\x6e\x3b\x01\xe8\x47\x40\xb8\x1d\x58\x90\x3d\x58\xb2\xc1\x00\xf4\x22\x3c\x5a\xd7\x5a\x35\x18\xaf\xbe\x60\x3b\xbd\x89\x47\x20\x7f\x6b\x95\x92\x07\x70\xa1\x1f\x01\x09\x77\x64\x09\x3f\x06\xf7\xf9\xa1\x16\xf3\xca\xae\x73\x7b\xb0\xfd\x11\x08\xe0\x5a\xc5\xe4\xfd\x74\xf3\xe7\x48\x8f\x80\x66\x3b\xb2\x68\x3b\xb9\xb1\xa9\xf3\xa3\x87\x5a\xa5\x80\xec\x66\x83\x5b\x3a\xf5\xb8\xa7\xe9\x6f\x2f\x28\xcc\xbd\xbd\x2a\x41\xb3\x6a\xc0\x0c\x73\xad\xb1\xe5\x78\x25\x7d\x25\x4c\x8a\x5a\x52\xcc\x2f\xb3\xc9\xf4\x32\x3b\x4d\xa3\xb9\x73\x19\x01\x73\xb0\x75\x05\x6a\x32\x51\x11\x26\xfa\x63\x97\xc4\xd6\x69\x85\xec\xd8\xc7\xd1\xa2\x69\xaf\xcb\x0e\x2d\x3c\x7d\x2a\x77\x6e\x80\xf8\x2b\x46\x07\xff\x60\x3c\xf4\xe3\x9f\xc3\x60\x19\x9e\x2e\xb3\xa3\xef\xe6\x46\x57\x6e\xdd\x4e\xfd\xbc\xb9\x2d\xc8\x81\xcd\x1b\xa3\x9b\xdd\xd0\xca\x45\x2d\xce\xf5\x61\x80\xa1\xa6\xf3\x9c\xb6\xf7\x79\x6a\x08\x5f\xf5\xa6\x68\xbe\x1e\x2b\xc8\xd8\x81\xfb\xa8\x0f\xd3\xf2\xd7\x69\x64\x8c\x05\x4b\xb0\x71\x6e\x6b\xa5\x9c\xa0\x2a\xc9\xf8\xf6\x25\x5e\x87\x68\x4a\x15\x75\x8b\x30\x52\x63\x7b\x1a\x1b\xef\x28\x14\x43\x6c\x17\x4c\xb7\x3a\xf7\x46\x49\x3c\xfa\xb0\x87\x2f\xee\x51\x67\xd4\x72\x48\xff\x90\xcc\x64\xfe\x86\x0a\x34\xd7\x96\x11\x3e\x7a\x49\x8d\x6c\x9b\x2a\x09\xf1\x85\x14\xcc\x35\xd6\x5d\xf1\xa5\x87\xbd\x88\x05\x8f\x2c\xd8\x57\xc7\xd6\x44\xf1\xd7\x91\xf4\xad\xe5\x2b\xb4\x98\xf0\xeb\x0c\x84\x95\x35\xf3\xf8\xfa\x5a\xd5\x2e\x94\x5d\x01\x73\x07\x86\x52\x76\xc9\x18\xf8\xe9\x8a\xd6\x30\xa8\xb4\x32\xe6\xc4\xe4\x86\x86\xc6\x0b\xb4\x73\xde\x59\xde\x6e\x83\xfe\x9f\xe9\xbd\x9d\xb5\x84\xb7\xcf\xe0\xf1\x37\xb3\xab\xab\x44\x61\xb6\xbc\x4d\xfe\xb9\x89\xf3\xc8\x6b\x8e\x45\x06\x14\x4f\x12\xd6\x7b\x92\x23\x00\x32\x1a\x5f\x28\x97\x2b\x1a\x72\x01\x8c\x6f\x5a\x67\x23\x34\xd8\xd8\xb6\x8d\xc8\xfc\x2a\x1c\x18\xe9\x95\x2b\x04\x05\xde\xe0\xda\x59\x7a\x10\x92\xa0\x6a\x7e\x7a\xdf\xc5\xeb\x21\xd9\xa7\x98\xfe\xce\x8b\xcc\x27\xc9\xd6\x87\x63\x63\x4b\x75\xbf\x0e\x26\x12\x21\x34\x15\x0b\x57\x3f\xca\xc4\x93\x36\x9c\x8b\xea\x0d\xf5\x2a\x5a\x97\xac\x49\x09\xfa\xbd\xab\x64\x96\xef\xc9\xc4\x19\x57\x35\x63\x84\xfc\xd1\xe1\xad\x41\x3b\xa1\xbe\x89\xb1\x66\x5d\xea\x6b\x0a\xad\x3e\x64\x0a\xbc\x85\x7f\xc1\xb7\xf0\xe9\xb5\x66\xfb\x69\xad\x5b\x03\x02\xbd\xbe\x7d\x60\x7d\x48\xee\x8c\x6d\x83\x04\x34\xc0\xbe\xf0\x2d\x99\x17\xcb\x90\xb4\x53\x14\x47\x30\xf2\xb5\x6a\x14\x46\x1f\x2e\x7e\x71\x69\x79\xd4\xf3\x6c\x5f\x22\x05\xf0\x6d\xc9\xe4\x62\x88\xee\x8a\x54\x0a\x11\xb7\x28\x97\xbc\x89\xce\x17\x4b\x7c\x6f\x79\xa9\xe4\x59\x1e\x8e\x57\x2e\x12\x5b\x93\xd0\x87\x46\x7a\x23\x02\x4a\x24\xdc\x9e\x7c\x46\x57\x49\x5f\x11\xd5\xaf\x2e\x2d\xa5\x76\xae\xed\x6b\x4f\x03\xfc\xb6\xa4\x73\x51\x64\x77\x45\x40\x0d\x21\xd7\x2f\xa3\x58\x20\xe4\x1a\x6f\x61\x73\xa3\xa2\x2c\x97\x81\xd7\xef\xa1\x2f\x30\xd3\x1a\x63\x31\x9d\x0b\x71\x9c\x81\x63\xd5\x63\x15\xd2\x7b\x4b\x2f\x41\x99\x65\xfb\xeb\x8f\xc1\xde\xd6\xe2\x5b\x08\xcd\x5d\x59\x79\x4c\xc2\x8d\x6e\x0d\x3d\xa8\x1a\xa7\x0f\x26\x3e\x71\xba\x5d\x01\xea\x8f\xea\x4e\x89\x10\x90\xd1\x51\x6a\xba\xca\xc5\x1a\xf5\x5a\x0f\xd2\x66\xb3\xf2\xc1\xc4\x08\xe6\xde\xae\x1c\x2d\x80\xec\x4e\x09\x12\x12\x72\x0b\x92\x54\xde\x65\x7a\x4c\x7b\x72\x57\x2b\x40\xcd\x35\xb0\x04\x9b\x88\x2b\x80\xd1\x9b\x19\x1e\x90\x4e\x33\xac\x94\x92\x07\x0a\xff\x9f\xe3\x63\x89\x0a\x75\xf5\xd1\x39\xe7\x72\x32\xf9\x59\xda\x42\xba\xee\xb9\x9c\x09\x5a\x38\x72\x3e\x2b\x17\x1b\xb9\x0e\x7a\xe5\x4e\x48\x76\xab\x4c\xf4\xea\x2c\xed\xcd\x89\xa1\x03\xd1\xda\x96\x86\x6e\xcf\x5d\x59\x1a\x2b\x72\x30\x6b\xa2\xc2\x5c\x06\x2e\x4c\xe9\xae\xd9\x3a\x69\xbe\x24\x05\x3b\x4d\xc4\x0f\xea\x3e\xca\xee\xd2\x1e\x46\xa2\xbc\xb9\xb4\x99\x68\x66\xda\xbe\x8a\xd6\xa0\x77\x6a\x91\xbf\xab\x75\x2a\xe9\x05\xb1\xdd\x15\x1d\xad\x29\xb9\xa0\xc5\x38\x97\xb6\xf3\x64\x14\x2b\x61\xf7\xf1\x64\xf4\xab\xab\x48\xa9\xcc\xf5\x20\x62\xca\xc0\x6f\x57\x4e\x17\xc2\x77\x87\x04\x95\x69\xb9\x6d\x49\x9d\x4d\xfb\x89\xe9\x6c\xba\x8a\x8c\xe2\x2c\x0f\x22\xa0\x00\xf6\x76\xa5\xb3\x3f\xa6\x3b\x24\x9a\x40\xc5\x4d\xcb\x65\x37\x61\x93\x2c\x8c\xea\x74\xed\x36\x75\xe6\x59\x39\xf3\xf0\xc6\x39\xb7\xe6\x24\x2d\x84\xe0\xc3\x49\xce\x62\xc4\xdb\x5e\x08\x9f\x2c\xd6\x9e\x86\xa1\x79\x77\x69\x85\xe6\xcc\xb6\x5d\x91\xb4\xa0\x77\xca\xe5\x6b\x7c\x6d\x8d\xc2\xb9\x38\xbe\x3b\x20\xa1\x96\x96\x8b\xfa\xef\x3d\xc8\x3b\x5f\x58\xc9\xab\xea\x2b\xad\xf4\xf2\x32\xe2\x7a\x45\x95\xf5\xeb\x9e\xa4\x89\x01\xcc\xe9\xd1\xbc\x4e\x5a\x33\x12\xdb\x12\xdc\x55\x31\xdf\x15\x09\x66\xaa\x3e\x88\x08\x53\x38\xa0\xaf\x08\xd3\xcb\xeb\x14\x61\x09\x46\x6c\x55\x84\x19\x89\x87\x16\xe1\xbe\x98\xef\x8a\x08\x33\x55\x1f\x44\x84\xf1\xd2\x54\x5f\x09\xc6\x77\x57\x33\x19\x78\xb6\x07\x30\x19\x08\xf4\xed\x9b\x0c\x0b\xe1\xbb\x2b\xd2\x4a\xb4\x7c\x10\x61\xa5\x33\x94\x7e\xb2\x8a\xc7\x12\x2b\xb1\xae\xf1\xbc\x66\x0b\x92\x3a\xf7\x60\x6a\x23\x82\xba\x08\xb6\xbb\x22\xa7\xcb\x9c\x4c\xad\x47\x4c\x6f\xfb\x1b\xb6\x74\x60\xb0\x1a\xeb\x68\xb6\x87\x90\xd4\xdb\x2d\x5a\xb3\x4b\xe2\xbb\x33\xb2\x7a\xfb\x50\x36\x6c\xaf\xf0\xa7\xbc\xb9\x9a\xa0\x36\x05\x06\xb7\x20\xa6\xf3\x02\xa0\x1b\x11\xd2\x05\x70\xdd\x15\x11\x75\x43\xa0\x9b\x13\x50\xdd\x94\x2c\x6d\x46\x4c\x5a\x5e\x8f\xc7\x1d\xa2\x38\x67\x88\x26\xf2\x17\xc1\xb9\x73\x91\xa6\xda\x91\x8d\x87\xb1\x97\x6a\x4c\xa3\x56\xba\xf8\x84\x2f\x73\x67\x57\x2a\xb8\xed\xfe\x56\xb9\x45\x35\x34\xa7\x8c\x87\x93\xfb\xb7\xc9\xec\x3a\x4e\xf7\xe8\xc3\x3d\xfb\xef\x2a\x07\x75\x6e\x22\x5e\xe1\xd2\x7f\xf2\x2d\xf0\xe2\x26\x9b\x25\x11\x1f\xa1\x13\x17\xf9\x2e\x50\x0c\xa3\x84\x49\x72\xef\x88\xc9\x21\xb6\xd9\x96\x76\x68\x74\x21\x09\xe5\xca\xa3\x4d\xc7\x05\x4b\xfd\x97\x11\x20\xdb\x2d\xce\x34\x1b\xb3\x57\x99\x70\xd0\x41\xb1\x4f\x58\xe1\x0f\xc5\x54\x8d\x62\xa0\x14\xf7\x40\x6c\xa8\x7f\x80\xac\x64\x16\xd8\x6c\x4b\x8d\xe8\x8b\x5a\xaa\xe7\x52\x71\xd3\x4f\x59\x3c\x1e\x94\x4f\xeb\x3b\x1a\x58\x8a\x27\x56\x5d\x82\x68\xe7\x7c\x94\x23\xd7\x1c\x81\x8e\x85\x6d\xc7\xec\xdd\x92\x5b\x8a\x7b\xa1\x34\x1c\x96\x16\x55\x76\xe4\x2a\xd5\x8b\x5e\x64\x7f\xe0\x45\x5e\xe7\x68\x4b\x67\xd7\x86\xa5\xd8\xa3\x64\x40\x75\x63\x34\x12\x89\x64\x70\x59\x21\x7c\x94\x8d\x8c\xa7\x9a\x5f\x20\x61\x5d\x2b\xb2\xe9\x8a\x6b\x6d\xfd\xad\x6f\x43\xa5\x4b\xa7\xce\xf2\xc2\xa7\xf0\xdf\x0c\xcb\x70\x67\x77\x58\xb2\x86\x7a\x7b\xdf\x64\x79\x89\x93\x10\xb1\xaa\xb7\x60\x8b\x78\x32\x05\xa6\x47\x19\xc9\x20\x35\xc0\xe4\xa5\x0a\x0b\x08\x74\x0b\x81\x88\x75\x47\xf0\x72\x6d\x81\x13\x10\xc5\x35\xf2\xe6\x71\xe1\x88\xcd\x2f\xc4\xcc\x43\x81\x73\xb0\x7f\x18\xbc\xc9\x4a\xe9\x5a\x89\x98\x84\xa3\x72\xe6\x7f\x9b\xa5\x75\xbb\xc3\xc2\x39\x41\x25\x77\x85\x99\x5d\xf9\x07\x46\xca\xcc\x3f\x78\x11\x14\xf7\x60\xd7\x7c\xac\xb4\x2e\xcf\xd2\xa5\x35\xcb\x30\x38\x3c\x3c\x44\x64\x49\x62\x7f\xfa\xb9\xff\x5d\xfc\x4f\x59\x48\xc9\x64\x7c\x29\x0d\x57\x6b\x06\xa3\xc6\x38\x16\x12\x1c\xd2\xeb\xac\x38\xd2\x0e\x53\xf0\x91\x2f\x81\x27\xdd\x12\x45\x48\x2e\x78\x7b\xe3\xb3\x74\xf5\xb5\x48\x65\xdb\xc5\xab\xfc\x71\x52\x8a\x7f\x19\xa9\x62\xa4\xd2\x28\x44\x50\xa5\x00\x58\x0d\x41\x51\x34\x8e\x57\xca\x32\x19\x9c\xb9\x1f\xc0\x0c\x20\x2a\xe9\x0c\xcb\x14\x01\xfd\x26\x71\x09\x63\x0c\x7d\x31\x0b\x93\xbb\xf0\xde\x91\x36\x96\xc4\xb8\x04\x29\xc1\x4d\xb8\x68\x9c\x7f\x97\x64\xbb\x43\xb8\xed\x05\xa6\xa5\x14\xa8\xe3\xd6\x7d\x96\xf3\x3f\x84\x9c\xff\x71\x77\x88\x85\x56\x51\xb4\xf8\x8d\xbf\x9d\x58\x50\xd6\x73\xb2\xb5\x18\x1f\xc0\x79\x0a\xeb\x68\xb2\x38\x62\x41\xba\x25\xdd\xa6\x15\x57\x28\xc5\xd8\xa8\x1e\x9e\xb3\x10\xfa\xaf\x52\xb3\x72\xcc\x3a\x15\x54\x1e\x66\x91\x52\x51\x9c\xaa\xdb\x97\x2e\xe1\xf5\xf1\x52\x78\x51\xad\x0b\xf3\x59\x88\x57\x17\xe2\x87\xe3\x72\x23\x4b\xdb\x78\xea\x86\xb9\xdb\x2b\x18\x91\xfe\x76\x16\x81\xb9\xc7\x03\x4b\x6b\x92\x15\x25\x57\x99\x9c\xe2\x9d\x1a\xfe\x84\xff\x36\x0c\x98\xc3\xf1\x39\x55\xac\xaa\x01\xf7\x6d\xd5\x9b\x13\x57\xb9\x77\x3e\x31\xc0\xbc\xc1\x58\xda\x67\x8e\x99\x65\xb5\xed\x03\x95\x75\x08\x42\xb4\xa9\x6b\x94\x8f\x49\x2e\x3e\x5b\xf4\x7f\x4c\xcf\xb5\x2e\xee\xcb\xbb\xae\xbb\xa5\x09\x3f\x4b\xfc\x67\x1f\xf6\x61\xd6\xd3\x12\x4e\xec\x8e\xed\x26\x9f\x88\x27\xf0\xd9\x9d\x5d\xca\xd1\x51\xeb\xf3\x67\x3f\x0b\xf9\xce\xba\xbb\x3d\xa4\xa0\x99\xe5\x55\x9e\x5f\x60\x26\xc4\xf8\xde\x53\xc9\x0d\x8a\x1f\x8b\xed\xe2\x01\xeb\x0c\x4f\xe1\xf1\xae\x9f\xdd\x42\x16\x73\x19\xc6\x7a\x55\xcb\x88\xb0\xa4\xa2\x7b\x1f\x3b\xfa\xc9\x49\x62\xe3\x33\xdb\xe3\x24\x0e\x8b\x17\x1a\x93\x8b\x32\x2c\xe3\xd1\xa2\x19\x80\xc0\xd4\xf8\xdf\x7d\xf2\xff\xf9\xc5\xa5\xf3\xff\xf4\x3c\x6b\x49\xff\x5b\xec\xf2\xae\x40\xbe\xad\x6b\xac\x0b\x62\x6a\x22\xc5\x8f\xfc\x0a\xb4\x50\xd1\x09\x6c\x6f\xc0\x43\xf5\x44\xb3\x18\xe5\x59\x92\xf4\x10\x4d\x7e\x71\x69\xd1\xd4\xf3\x3c\x80\x68\x0a\xe4\xdb\x12\xcd\x05\x31\xdd\x15\xd1\x14\x2a\x6e\x53\x34\xc9\x9c\xe8\x23\x9a\xf4\xe2\xf2\xa2\x29\xf3\x3c\x84\x68\x32\xe4\x5b\x13\xcd\xc5\x30\xdd\x19\xd1\x64\x2a\x6e\x53\x34\x29\x48\xda\x47\x34\xe9\xc5\xe5\x45\x53\xe6\xd9\x7e\x49\x13\x01\x7c\x6b\x92\xb9\x10\xa2\x3b\x23\x98\x4c\x44\x03\xee\x26\xca\x53\x9c\x6a\x0b\x17\x30\xd5\x19\xa8\xe4\x57\x5c\xa9\x9b\xf0\x36\xce\xf0\x5f\x3a\x41\xb6\xa5\x1c\x9c\xf1\x26\xae\x63\x98\xba\xc1\x55\x5a\xac\xe3\x49\xd8\x7c\xde\x60\x63\x6b\x14\x5a\x43\xc7\x89\xe9\x53\xe5\x80\xfa\x58\xe6\xe1\x5b\x9b\x09\x79\x6c\x7b\x8b\x39\xf9\x91\xa5\xb4\x17\x0b\xb9\xe5\xdb\xdc\x7a\xe9\x3a\xf5\xd2\xc0\xee\x94\x1d\xf6\x27\x7c\x21\xe9\x04\xbf\x09\x0f\x5a\x45\xfa\xc1\x48\x0f\x64\x97\x84\xd2\x53\x56\x40\x04\xe8\x03\xd0\xb1\x31\x33\xa3\x37\x39\xfb\xd1\xd3\xa1\xa0\xd5\xb2\x1c\xce\x4b\xfd\xed\xeb\x81\xc5\x14\x76\x81\x3c\xc7\x6e\x74\x5e\x3b\xbc\xd5\x49\xfd\x3d\x3f\x6b\x92\x5c\x4c\x82\xf1\xc1\xd0\xa9\x30\x7a\x0f\x6c\xbf\xfa\xe3\xa4\xd0\x1f\x18\x22\xfb\xda\x99\xfa\xf9\x78\xc1\x97\x07\xa1\xb4\x06\x07\x03\x3f\x7e\x00\x37\x2e\x24\xbe\x91\x66\xd4\xfa\x11\x03\x3d\x12\x0e\xf2\x49\x39\x4b\xfd\x5e\x43\x9b\xbd\xf3\xb2\x3b\xa4\x1d\x27\x45\xf0\x9e\x68\xc3\xd1\xc5\x51\x96\x83\x0f\x3a\xcd\x52\x6a\x6a\xfc\xd4\x0d\x8a\x3f\xad\xd0\xfe\x0e\x46\xbf\xca\x66\xa0\xee\x66\xd4\x27\xf3\x90\x28\x6c\xe1\x1d\x4a\x5c\x7e\xbf\x9b\x13\x96\x11\x00\x4b\x8f\x5e\x4f\x9b\xa1\x31\xaa\xd4\x1a\x25\xc5\xb2\x08\xdd\x44\xfe\xee\x1b\x73\x06\xb9\x72\x5e\xcc\xd3\xa0\x51\x07\xd6\x84\x3d\x51\x0f\x9a\x8d\x82\x63\x91\xf6\x86\x8a\xee\x87\xab\x83\xae\xc3\xe0\x2a\x44\x18\x67\x53\x34\x47\xf9\xa6\xd1\x38\x1e\xc1\xf3\x12\x35\x52\x9e\x65\x65\x4b\xe3\x4a\x60\xa1\x2e\xd1\xdf\x83\xec\x0f\x09\x6f\x95\x6f\xed\x17\x7a\xb4\xe1\x37\x13\xb6\x39\x61\x7d\x86\x17\xa4\x1c\xdb\x05\xd7\x94\xfa\x6a\xab\xad\xe1\xd4\x70\x6f\xb1\x38\xe5\x82\xa9\x0d\x0e\xef\xea\x47\x52\x0d\x6b\x6c\x13\xca\xee\x0f\x20\x11\xee\xb9\x00\x80\x52\x4b\xae\x73\xe2\xfc\xce\xc5\x34\xd6\x8e\x5e\x6f\x38\x56\x10\x86\x54\x93\x45\xb9\x59\xe8\x7d\x7d\xc7\xf8\x62\x0e\x3d\x5a\xd6\x95\x7d\x6e\x89\x44\x40\x32\xf5\x11\x85\x56\x52\x99\x6f\x7b\x5c\x9e\xeb\xf6\x42\x67\x69\x4b\x79\xc4\x60\xf0\xf2\xf4\xed\xbb\xd3\x93\xe3\xcb\xd3\x97\x4c\xcf\xdb\x2f\x0f\xff\xb2\xdf\x82\xec\x9a\xae\x83\x33\x34\x5b\x73\xc1\xd7\x84\xbc\xe3\x9b\x07\xd3\x04\x18\xec\xac\x9b\xc7\x70\xc9\x5e\xa8\xba\x51\x9f\xfc\x52\xce\x99\xd2\x2c\x52\x24\xe7\x60\xa4\x37\x5f\x27\x65\x37\x6e\xb0\xff\x3c\x88\xc7\xf0\x3a\xe8\x95\x3b\xc7\xdc\x40\x9c\xf4\xe7\x44\xb1\x24\xfe\xa0\x50\xb1\xf0\xe6\x10\x65\x23\xea\xed\xd9\xcc\xa1\x2f\xff\xbc\xef\x21\x2e\x03\x1d\x05\xa7\xbc\x56\x05\xec\x5f\xfe\x85\x10\xe8\xa5\xb3\xe8\x8a\x51\x79\x9e\x35\x95\x09\x79\x90\x05\x43\xc0\x6c\x6d\xbd\xac\x07\xf5\xc7\xbe\x5c\x98\xa6\x4e\x68\x75\xed\x19\x2e\x11\xf6\x2d\x18\x65\x09\x6e\x36\x08\x25\x20\x4e\x2d\x56\xf5\xf6\x04\x62\xcb\xe8\xf2\x5a\x01\x41\x0d\x47\x1f\x5a\x2d\x79\xfd\x95\xeb\x8d\xdb\x64\x0d\x70\xc0\x67\xc5\x8d\x1d\x92\xc6\xa2\x6d\x7b\x12\x7e\x50\x41\x8c\xbf\xc3\x66\xa4\xee\xf4\x64\x7e\x64\x85\x49\x82\x43\x5c\xe0\x87\x03\x3d\xb0\x75\xba\xdb\x52\xe4\x76\x08\x49\x77\xcb\x26\x4d\x46\x7f\x60\x50\x43\xbf\xcf\xad\xfc\x59\x32\xaf\x55\xaa\x38\xe1\x01\xa7\xaa\x41\x53\x1d\x54\xb7\x23\x2e\x68\x64\xfb\x2f\x96\x72\x2c\x2f\x20\x22\x1e\xa7\x81\x4f\x11\x99\x74\x80\xe6\x4b\xa1\xf2\x38\x4c\xe2\x7f\x87\x48\xcb\xfd\x9e\xdc\x19\x12\x22\xd6\x9e\x32\x93\xd7\xb9\x57\x65\xdf\x59\x0a\x33\x72\x88\x19\x3e\x18\x6a\x13\x08\xc0\xbc\xba\x27\x18\x4d\x90\x67\x28\x99\x06\x14\x27\xd6\xb1\xaa\x38\x95\xcc\x1d\x5a\xd5\xd5\x10\x60\x8d\xcb\x4c\x29\x99\xec\xcb\xe0\xfb\xcb\xd7\xaf\x0c\xd0\x8e\xd0\x0c\xeb\xd4\xe6\xfa\x17\x2e\x53\x91\x88\x31\x43\xbf\x3c\x60\x1e\x40\xff\xe1\xe5\x58\x3a\x81\x2e\x57\x9e\x05\xb6\xc2\x07\xce\xc1\xa4\x01\xd4\x62\x1d\xb0\xb2\x0c\xd0\xe7\x03\x4d\x41\xcd\xd7\xdf\x38\x0c\x29\xdb\xdf\x6f\x97\xb0\x19\xfe\xe6\x04\xd2\x34\x7e\x73\x17\xf3\x43\x48\x03\xea\x70\x4f\x95\xe3\x7a\xe1\xe8\x0c\x15\xe8\x6c\x13\x12\x5d\x7c\x64\x7d\x42\x01\xfe\xc5\x48\xc5\xba\x3d\x0b\xec\x90\xea\x63\x30\xcd\x8a\x58\xab\x35\x27\xde\xe2\x0e\x15\x12\x98\x7a\xcd\x1d\x06\x3f\xc4\xe5\x8d\x3c\xd6\x48\x61\x32\x1c\x65\xe6\x8c\x9d\xe6\x43\xda\x19\xa9\x0f\xd9\xc4\x72\x1c\x0a\x36\x25\x82\xea\x28\x48\x67\x93\x2b\x64\xc2\x4d\x39\x49\x8c\x6f\x80\x3b\x12\xff\x69\x24\x81\xf9\xbc\xa6\xf5\xaf\xf7\x66\x4c\xf9\x1a\xaf\x53\x0f\xcc\x5b\xfa\x9e\x08\x74\xb1\xbc\x5c\x15\xc0\x07\xd0\x07\xab\xc2\x2c\x42\x32\x9d\xc2\x10\x8f\x42\x31\xac\x5b\x4c\x36\xa6\x20\x96\xa6\xfc\xb2\x8a\x42\x52\x22\xb3\x24\x62\xa0\x39\xc7\xbb\xf2\x01\xaa\x13\xbd\x7f\x6f\x40\x99\xb0\x9c\x6c\x56\x9b\x80\xe5\x0c\x04\xef\x47\xcc\x8a\xb8\x50\x88\x10\xf0\x57\xad\x47\x5f\xfc\xd4\x89\x82\x0d\xad\xee\xf0\x44\xa1\x87\x0d\xf1\xdc\x3b\xb9\x14\x08\x6d\xf4\x48\x5c\x13\x96\x17\x4e\xc3\xad\x80\x6a\x45\xad\xba\x24\xe2\xc2\xae\x89\x26\x16\x5c\x66\x03\xc6\xa4\x65\xa9\xce\x8d\xf7\x2c\xb2\x24\xaf\xd4\x98\x02\x7a\x8f\xcf\x74\x5b\x01\xb2\xed\xeb\xea\xe5\x81\x65\xce\xf3\xf7\x8f\x42\x49\xaf\x4d\x22\x36\xa5\x9d\x97\x00\xf0\x91\xda\x6f\xc2\xf5\x0d\xa9\xdc\x93\x5c\x85\x78\xba\x12\x44\x4a\x4d\x81\xf7\xd3\x7b\x7b\xa3\x63\x11\x3e\xde\x01\xd6\x18\x06\x39\x4e\xa3\x53\x39\x17\x08\xbe\xe1\x13\x4b\x24\x65\x3c\x02\x8f\x34\xbd\xc6\xe8\x0a\x8c\x9d\xfb\x01\x1a\x3e\x1e\xa0\x98\x8e\x94\x9b\xc3\x74\xfe\x6c\x8a\xa2\xc7\x19\x01\x38\xba\x7f\x5e\x49\x5e\x72\xa4\xc6\xe1\x2c\x29\x65\x23\xc4\x6c\x78\xf7\x8e\x92\x40\x86\x88\xfd\xb0\x1e\xe8\xf4\x01\xc1\xe8\x26\x4e\x22\x60\x9e\x26\xd5\x08\x80\xb4\x24\xaa\x21\x71\x18\x7c\x73\x6f\x60\x8d\x61\x72\x86\x97\x29\xcb\xd2\x36\x8e\xf3\xa2\x34\x42\xf4\x54\xbf\x32\xe0\x13\x08\xf9\x96\x44\x87\x50\xac\x78\xf6\x34\xff\xa0\xc6\x82\x17\xe6\xd0\x78\xd8\x4c\x85\x17\x4d\xa7\xca\x2d\xa7\x26\x5d\x7b\xb0\x39\x47\x81\x05\xda\x22\x1f\x4d\xc7\x4f\xea\x23\x35\x5c\x33\xcb\x9e\x0f\x9e\x8a\x79\xdb\x3d\xd0\x35\x27\x98\xaa\x3d\xe1\x15\x9e\x75\x0f\x16\xa9\x18\xa8\x4f\x84\x34\x4f\x29\x2e\x5d\xcc\x59\x01\x8d\xe8\x4a\x4c\x70\x32\x2d\xef\x07\x6b\xb6\x70\xec\x0d\x8d\x16\xcb\x66\xbe\x61\xb3\xa8\x53\xb4\xa8\x61\x63\x20\x5c\xc6\xa0\xe1\x61\x8e\xc9\x4d\xed\xb4\x69\x9c\x9d\x6d\xcd\x24\x96\xdd\xe2\x31\xd3\xd8\x01\x71\x79\x22\x7f\xc3\x7b\xc9\xfa\xa8\xbc\x88\x47\x77\xa5\xae\xe3\x94\x2b\x30\x3c\x66\xf7\x7f\x65\x30\x1f\x2c\x08\xb0\x2a\xe4\x12\x26\xce\xd5\x63\x8b\x05\xac\x59\x72\x36\x1c\x11\x58\x1a\xda\x1d\x8e\x0b\x68\xa1\x79\x7c\x81\x01\x8f\x1b\xbb\x10\x1e\xa8\x01\xbc\x8c\xba\x17\x7e\xac\x1c\x25\x58\xd5\xf8\xeb\x48\x3e\x5a\xb3\xf5\xc7\x3f\x2e\x68\xfd\x4d\x13\x4c\xac\xe1\xab\x0b\xcc\x78\x2d\x5c\xc6\xe3\xe8\xab\x5a\xda\xe4\xc7\x08\x8c\x27\x1a\x95\xa0\x07\xfa\x15\xb5\xe3\x4a\xcf\x31\x89\xad\x1a\x41\x41\x00\x42\xe4\x0c\x7d\x95\x0a\xf4\xe3\x71\x92\xac\xcc\x78\x87\x36\x3d\x57\x9c\xa1\xd9\x34\xcf\x6e\xe3\x08\x1e\xe1\x51\xaa\x28\x7a\x52\x53\x92\x35\xeb\x0c\x62\x59\xab\x33\x67\x2b\xdc\xad\xe8\x6e\x18\xf1\x44\x06\x44\x0f\x50\x0f\x6e\x94\xf0\x61\xf0\x3a\xa4\x34\x90\x0e\x3d\xee\x2c\x5e\x7f\x17\xae\x2e\xe0\x46\xda\xa2\xea\x1c\x58\x30\x16\xb2\xa2\x76\x84\xc8\x9d\x1b\xa4\x9e\x8a\x00\x91\x3a\x00\x46\x1a\xfb\x9b\x19\x2e\x35\x65\xd7\xa0\xad\xa1\xf7\x9e\xf0\x9d\x62\x7d\x39\xca\x26\x57\x31\xba\xdf\x94\x0c\x24\xd0\x15\x0b\xee\xbd\x43\x78\x3e\x4a\x66\x94\xdb\x0d\xaf\xc5\xb9\x5b\xe3\xa2\x72\xf7\x00\xa6\x41\x17\x4f\xa7\x05\x55\xc0\xba\x30\x60\x31\x99\x16\x83\xc3\x94\x22\x34\x8a\x1e\xa7\x6b\x55\x36\x88\x31\x2e\x03\xfa\x03\x3e\x95\x78\x54\xd3\xfc\x95\x99\xc0\x04\xc0\x44\x97\x37\xb4\x43\xa3\xe0\x9b\x70\x48\x11\x14\xb3\xe9\x34\x89\xb1\x06\x47\x6c\x13\x6c\x60\xbc\x5b\xde\xa7\x28\x49\xe2\x82\x53\x15\x4d\x5d\x06\x4a\x38\x68\x20\x14\x27\x56\xc9\x7e\xcf\xf6\xc0\x6f\x73\x33\xd9\xb7\x49\xc3\xaa\xac\xb3\x98\x8b\x1c\x78\x32\x25\x04\x5e\x87\x99\x46\xc3\xb2\x99\xe6\xd9\x65\x75\xfa\x35\x1b\x54\x2e\x55\x1d\x83\xaa\x53\x9f\xc3\x1b\x4a\x62\x1d\x6e\x24\x4d\x67\x9b\x4a\x66\x89\x4d\x2b\x01\x98\x87\x26\xb8\x09\xea\xb2\x02\x5c\x76\x8c\x3f\xe2\x42\x20\xc5\xd7\x69\x3a\x00\xa5\x95\x57\x2b\x66\xbe\x25\x31\xa4\x1e\x9b\x9a\x0d\xb5\x57\x19\x54\x58\xa6\x0d\x7b\xe0\x2c\xbd\xcb\xc3\x69\x57\x14\xe6\x07\x78\xee\x6e\x10\xb3\x11\xf0\x1c\x93\x6e\x28\x2d\x79\x15\x07\x43\x84\x0a\x01\x98\x02\xf0\xa2\xcc\x7a\x98\x93\x35\xb7\x82\xa5\xf7\x5e\x53\xc0\x42\x09\x52\x78\x47\xf0\x33\xb4\x4d\xe4\xf1\xe9\x41\xd4\xa8\x40\x64\x76\xad\x56\x83\x60\xdb\x24\x93\x75\x88\x55\x5c\xae\x30\x2b\xab\x65\x41\xd2\xfc\x46\x2f\x34\xf8\x62\x73\x69\xf3\x48\xc3\xfc\xc4\xa5\xa6\xd5\xee\x3a\x4c\x73\x37\xc5\x6e\x36\x79\xc9\xed\x9f\x88\x64\xa3\xa9\xbb\x94\x70\xeb\x8f\xe7\xd0\x7c\x69\x62\x2f\xbf\x81\xf5\xa6\xbd\x9e\x3a\x8d\xa7\x53\xd4\xd6\x0d\xbe\x55\xcd\xef\x80\xa7\x8e\xd1\xbb\x10\x33\x1c\x6c\xfa\xf1\xe6\x2c\x4d\x55\xbe\x61\xd5\xb3\x7e\x32\xb7\x6a\x22\x36\x76\x75\x5e\x27\x15\xd1\x5b\x85\x5c\x8f\x58\x11\x31\xe3\x96\x5f\x19\x67\x25\x91\x28\xc0\xae\x92\x36\x3b\x36\x33\xd7\xa0\x31\xd5\x9a\xaf\xb7\x78\xa5\xb9\x1b\x0d\xd5\x9e\x76\x9b\x93\xc2\x3d\x6f\x28\x39\xab\xc1\xc3\xa2\x66\xf3\x0a\xdf\x37\xb7\x01\x7a\xf5\x0c\x14\xe3\x8a\xae\x3f\x8d\x7d\xfb\x4a\x03\x21\xd1\xcd\xe6\xcc\xe2\x0a\x72\x2c\x0c\xc7\xc1\xbf\x55\x9e\x1d\xf0\x1d\xa3\x18\x84\xe9\x9a\x2a\x93\x35\x47\x05\xd8\x09\x63\x38\x7c\x44\xaf\x55\x59\xe1\xe1\x11\xad\x25\xc1\xaf\xc1\x2b\x15\x6c\x16\x46\xc3\xce\xd7\x6e\x16\x5e\xa8\x30\x07\xa8\xb9\xe8\xa4\xdc\xed\x17\x0c\xc8\xfe\x0b\x27\x59\x8b\xd1\x57\x3d\xd0\x00\x8c\x70\x1e\xc6\xa9\xc1\x87\x58\x75\x9e\x3e\x41\x2c\xe3\xff\xb0\x34\x0b\x55\x9c\x74\x76\x5b\x2b\x0f\xef\x61\x67\x1f\xcc\xf5\xfc\x26\x91\x64\x9c\xaa\x17\xdc\x7e\xf3\xf5\xa5\x83\x72\x15\x67\x74\x05\x53\xf1\xe8\xc6\xb5\x9d\xbe\x83\x65\x89\x4a\xaf\xcb\x9b\x56\x5a\xb6\x21\x6c\x7e\xad\x5f\xdb\x19\xe2\xb5\x1d\xba\x11\x41\x17\x2a\x46\x98\x66\xa0\x37\x19\x7d\xdf\xc7\xd5\x3d\x01\x68\x0a\x8a\x05\x46\x38\xc1\x08\xf3\xe6\x8f\x82\x2f\x0f\xff\x7b\xa8\x43\x15\xf8\xaf\xff\xf1\x80\xae\xd2\x89\xc1\xfe\x49\x44\xdd\xab\xbe\xe7\x3d\x61\x24\x7f\xae\x2c\x82\x1a\xce\x51\x83\x47\xb9\xd8\x46\xe2\x0a\x4c\xc5\x5d\x66\x71\x69\x8c\x85\xe2\x05\x4c\xb4\xd5\xec\x51\x91\x0b\x06\xfc\xdc\x17\x9a\xff\xe7\x1c\x44\x49\x9c\x60\x9a\xc5\x56\xf3\xeb\x4b\x52\x18\x78\x76\xea\x39\x9a\xb8\xa5\xce\x62\x00\x5e\xf1\x24\x48\x63\xac\x0c\x1b\x27\xa1\xb9\xec\xa3\x47\xd7\xfb\x91\x56\x7f\x7f\x1a\x58\xbb\x50\xde\xd9\x97\x9b\x0a\x95\x74\xb6\x28\x6a\xb8\xd2\x29\x9f\xbc\xb0\x5a\xb8\xf3\x06\xc9\x8a\x8c\x32\x9f\xbb\x67\x75\xcb\x51\xdd\x22\x85\x15\x28\xe4\xa1\xc1\x62\xde\x4d\x98\x15\xf1\xc0\x73\x16\x63\x15\x8e\xf3\xf0\x5a\x6f\x0c\xcb\xc0\xef\x1d\xda\x6c\x12\x6a\x50\x48\x08\xb4\xfa\x18\x17\xb4\x2e\x6a\x2e\xdd\x32\xd0\xc3\xd7\x1a\xe6\x3e\x31\x44\x27\xa1\x67\xa1\xa8\xa1\xae\x5d\x9a\xdc\xcb\xf9\x05\xef\x90\x76\x69\xf7\xd7\x0d\xde\xad\xdf\x16\xcd\xc0\x57\x91\x0d\xbd\xc3\x6b\xf8\xa0\xa8\xe8\x72\x8d\xcb\x42\x47\x21\xdf\x66\xad\x77\x1d\x86\xb8\xa1\xb3\x79\x49\x49\x4a\xc6\xde\xc0\xa0\xb0\x9b\xc3\x64\x60\x46\x13\x41\x15\x46\xdd\x9b\x21\x4b\x78\x63\xcc\x71\xb0\x3c\x24\x7d\x0f\x6f\xcc\xa6\xf0\x12\x18\xcd\xd7\x37\x94\x1a\x15\xa6\x23\xf8\x14\x0b\x04\xc5\xb6\xce\x69\x99\xab\xd6\xb2\x3f\x1b\x24\x64\x92\x15\x00\x4b\x4d\x3b\xb5\x2f\x86\xcf\x54\x74\xa9\x58\xdd\x80\x8e\x3d\xc7\xf3\x8e\xdd\x16\xde\x78\x42\xb3\xc1\x98\xe7\x13\x3e\xc6\x19\xa3\x3b\x45\x05\xa3\xd3\xcc\x8c\x14\x17\xee\x65\x38\x7d\x61\xd3\x5c\x27\x1e\x57\xc2\x98\x7e\x85\x03\x04\x51\x85\x51\x3f\x5e\x2f\xb4\x13\xed\x2e\xfb\x49\x05\xd7\x15\xef\x22\xab\xa4\x59\xe1\x7e\x32\x14\x52\x36\xe6\xe2\x38\x5c\x8b\x10\x48\xe9\xf0\x47\x5d\x8e\x9a\xb6\xa5\xd0\x2d\x9a\x55\x8d\xd9\x23\x72\x9a\x0e\xd6\x35\x93\xe9\x1b\xbd\x7d\x07\xff\x45\xf4\x81\x7b\x93\x36\x5f\x5d\x35\x04\x83\x11\xe2\x85\xcd\x08\xf0\x88\xd6\x97\xb8\x5a\xa9\xee\x5d\x54\x1c\x85\xdc\x03\x6f\x52\x1b\x2d\x1e\xf1\xca\x46\x88\x73\x74\x49\xa6\x38\x08\xc7\x28\x9b\xd0\xa7\x94\xcf\x5a\x81\x58\x4e\x48\xbb\x0e\x48\x4e\x75\xf8\x15\xab\xc6\x83\x3b\x46\x5e\x33\xd9\x37\x94\x97\x32\xc5\xe8\x8e\x78\xb7\xae\xb0\x8d\x6e\xf0\x9a\x7e\xf3\x19\x74\xd3\x29\x1d\xae\x44\x5d\x15\x06\x2f\x63\x97\x95\xc8\x05\x66\x14\x75\x86\x5d\xa2\x59\xf7\x91\xb3\x36\x1b\x31\x2e\x23\xe9\x35\xf6\x54\x90\xdc\xc1\x39\x11\x98\xb4\x29\xee\x82\xc3\xfc\x59\xc2\x32\x2d\x01\xbb\xc3\xe0\xfc\x5d\xc7\xd7\x2d\x5f\xa1\xd8\xcc\xd8\x39\xc4\xc8\xe3\x5d\x98\x47\xce\xa9\x58\x12\x16\x5d\xd1\xbb\x20\xf0\x69\xf7\xaf\x5a\xd0\x67\x55\x3a\x82\xa4\x3b\xea\xd8\x57\xc6\x12\x04\xf0\xc2\x90\x4f\x0b\x52\xd0\x9b\xb0\x39\x5c\xa9\xab\x26\x39\x34\x6a\x61\x96\xde\x05\x6c\xb9\x07\x22\x4a\x35\xac\x49\x9a\x87\x1a\xb6\xe0\x57\x36\xb4\xd9\x20\x07\x1c\xf4\x8d\x0b\x8f\x38\x8e\xe6\x6c\x24\x48\x7b\x00\xd4\xdb\xab\x7a\xd4\xbc\x7a\x10\x72\x75\x6d\xcb\xcb\xca\x48\xc7\x46\xfd\x38\x90\x9e\xeb\x30\xaf\x86\xff\x62\xae\x73\xa5\x17\x4c\x93\x70\x56\x80\xa8\x6f\x60\xcd\xae\x73\xd3\xd1\xd5\x9c\x43\x81\xcd\x39\x83\x18\x93\x5b\x40\x7b\x3c\x4a\xea\x2c\x6f\xc3\x12\xf6\xfd\xd7\xc5\xa3\xc4\x7e\x05\x1f\x87\xd0\xef\xb7\x2c\xfa\xdb\x24\xec\xe6\xb4\x9d\xc2\xd1\xd3\x75\x18\x3f\x46\xf7\xdc\x84\xb7\x7c\xcf\x4f\xf3\xa4\xc3\xb5\xf2\x0f\x89\xb7\xbf\xda\x6e\xc2\x62\x93\x5b\xf5\xfa\x49\x61\x93\xa8\x7c\x67\x65\x01\x7c\xcd\x10\x7d\x3c\xc4\x93\x1b\x35\xfa\xe0\x2d\xa0\xb6\x34\x73\xed\x79\x85\x4d\x89\x1a\xb5\xdc\x0c\xd7\x76\xcf\xf1\x4e\xe5\x18\xed\xe6\x44\x85\x45\xe9\x1c\x6e\x16\xb5\x73\x41\x26\x1a\x1f\xb3\xd5\xd2\xd9\xb6\x27\x37\x71\xa3\xd8\x48\xbe\x61\x4d\x6e\x76\x9a\x88\x3d\x0c\x45\x67\x41\x98\x40\x79\x70\x06\xf0\x8d\x46\x6a\x4a\xa5\xb5\x6c\xa1\xa9\x21\x7b\x3c\x43\xf1\xab\xc5\x8a\x94\xcf\x9e\x16\xe2\x0f\xf9\x27\x89\xf6\x98\xf3\x70\xd1\x24\x84\x56\xb3\x14\x38\xb8\x80\x49\x6a\x33\x49\x3f\x49\x1e\x6f\xca\xd0\x03\x22\xfb\xbb\xd9\x27\x49\x3d\x35\xef\x54\x6f\x79\xea\x29\x73\xb0\xc7\x4e\x91\xa1\xdf\x2a\xe6\x00\x1e\xf5\x22\xf2\x6d\x26\x01\xfa\xff\x5d\x16\xc1\x5b\x74\x23\xba\x6c\x2c\x97\x77\x3a\x18\x18\x3a\xeb\x75\x9a\x67\x00\x2d\x2b\xe1\x5a\x11\x3c\x57\x47\xe3\xa0\xc2\x3e\xee\xcf\xd7\xba\x2d\xea\x1c\x2a\x47\x51\x69\xe9\x75\xab\x37\xc6\xe9\x6d\xf6\x41\x45\xad\xee\xad\xc3\x1f\x9f\x26\x93\x70\x3a\xd0\x93\xd4\x75\x46\x94\x4d\x4e\xe7\x7b\xb2\x6d\xd6\x6b\x3c\x99\xa8\x28\x0e\x4b\xac\x2b\x3a\xce\xb0\x77\x2a\xe5\x3c\xc4\x57\xc9\x32\x77\xfb\xce\xc6\xee\xd6\x86\x81\x48\xb9\xbf\x31\xe4\x3e\x96\x9c\x73\xc3\x02\x9e\x62\x18\xcf\x4c\x94\xc2\xfc\xb0\x40\x62\xd7\x40\x09\xcb\x07\x3c\x61\x44\xf0\x16\x3a\x5d\xa4\x78\x36\x70\xba\x46\xc5\xc5\xaf\x69\x3c\xc2\x03\x57\x24\x07\x26\x92\x6e\x88\x22\x18\xb9\xcf\x82\xab\x19\x06\x73\x4b\xff\x9a\x8a\x13\xf3\xf6\x92\xb3\xac\x0a\xd6\xb5\x76\x1b\x74\x30\x07\xc2\xd7\x4b\x2e\x09\x73\x52\x15\x55\x4e\x8a\x2c\xca\x6c\x6a\x63\xf4\xf5\x65\xa4\xaa\xc9\x01\xda\xbc\xe1\x22\xe4\x1b\x61\xd6\xfb\xb4\x8c\x1b\xd8\xa5\x7d\xcd\x26\xfe\xed\x1a\xfb\x8c\xab\x6f\xab\x2d\xd7\x46\xf0\x0b\x9f\x3c\x76\x76\xc9\x7b\xf6\x40\xe5\x53\x62\x17\xc7\x26\x3e\x15\x56\x01\xd0\xa6\x2d\x6c\x17\x97\xea\xc6\x12\xdd\x18\x32\xd3\x98\x93\x8f\x95\xf3\xee\xd6\x86\x63\xb6\x48\x3a\xc8\xba\xf0\xd9\xda\x99\x00\xa2\xb7\x94\xf7\xb5\x61\x02\x34\x5a\xf2\x5e\x95\x68\x4a\x7e\xa6\xc9\xcc\x1c\x8e\xb5\x5b\xc7\x72\xd1\xe4\xbc\x75\x61\xb2\x29\x8f\x0e\x71\x5a\x30\xe5\x8d\x0f\xae\x4d\x26\x84\x9f\x70\x81\xf6\xa9\x9c\x51\x56\x2f\xda\x67\xe3\x31\x80\xf4\x96\xae\xf4\x75\xb9\x23\x7a\x22\xbe\xfc\xb7\x74\xfc\xf7\x11\x1a\x7c\x8c\xd1\xc2\xf6\x1e\xa2\x6b\xf3\x4e\x3e\x39\x7a\x14\x0f\x44\x90\x0d\xed\xd8\xdb\x35\x8c\xab\xab\x70\x6b\xbb\xb6\xf0\x6e\x3d\x26\xf1\x4e\x32\x74\x3d\xa6\xf2\xe3\x60\xe0\xaa\x46\xf2\x4e\x32\x70\x75\xe3\xf9\x71\x30\x6f\x59\xb3\xb9\x29\x5e\x85\x77\x68\x54\xb4\x7c\xbc\xea\x71\xee\x33\xb9\xba\x5d\x2a\xca\x52\xa3\xc6\x27\x11\x77\x42\x72\x2c\x1b\x77\xea\x41\x91\x4f\x62\x5f\xad\xaf\x83\xad\x2f\x71\xe0\xd2\xfa\x02\x4e\x8f\x8f\x6f\xeb\xd9\x3e\x1f\x13\x9f\xd6\x11\x69\x7a\x7c\x7c\x5a\x7d\x97\x7c\x4c\x3c\x5a\x75\xaf\xfc\x94\xf6\x01\x8d\xcb\x82\xb5\xef\xfa\x1c\x4c\x86\xd8\x1c\x19\x9f\x7b\x85\x07\xc3\x20\x0f\xd3\x6b\x3a\xa5\x25\xa9\x69\x3f\xff\x2b\xca\x30\x2f\x17\xc9\xa2\xf6\xae\xa2\x1a\x48\xf8\x0e\x2a\x17\xff\x63\x24\x95\xa4\xf6\x63\x9f\xcb\xf8\x56\xd1\x19\x9a\xde\x0b\xa8\x3e\x02\x47\x29\x9c\x0e\x9f\xb6\xe9\x82\x9b\x33\xad\x95\x18\x3c\x5d\x19\x4a\x5a\x2d\x57\x8a\x16\xc8\x5a\x80\xc4\x8f\xb3\x49\x5c\x96\x78\x48\x48\x67\xae\x44\x76\x94\x9b\x38\x9d\xc1\x10\x98\x2b\x9e\x74\xa0\x27\xf2\x91\x00\x8b\x06\xc4\x0a\x27\xa0\x97\x46\x2f\x7a\xa4\x86\x5f\xdc\x64\x77\x34\xea\xbf\x66\x8a\x6b\x8a\x7a\x4d\x5b\x81\x1f\xba\xab\x78\x90\xa5\x5e\xd8\x6d\x5e\x24\x8c\x06\x7c\x83\x0d\xd4\x9a\x16\x04\x9d\x82\x4a\x77\x35\x33\xfd\x61\xf0\xd2\x2d\x84\xfe\x91\x89\x02\x88\xa5\x51\x98\xc3\x8c\xe3\xb1\xc2\xba\xb8\xfc\xae\x47\x02\xfa\x69\x60\xa6\x74\x17\x88\x5c\xca\xa8\xe0\xfd\x3a\x4c\xe3\xe9\x2c\x41\xcb\xa2\x17\xf6\xa0\x18\xc0\x87\x58\xb8\x88\x45\xaa\xee\xfe\x97\x86\x76\xfb\xd5\x79\x73\xb8\x75\xf5\xb4\xe3\xc5\xd0\xe8\x7b\x1c\x4d\x98\xea\x71\x8f\x82\x6f\x65\xb0\xae\xe0\xe6\x96\x90\x35\xc9\x00\x97\x74\xc4\x7d\xe7\xd5\xee\x70\xee\xf8\xd2\xfc\x43\xae\x2f\x18\x7a\x2f\x8d\xf8\x22\x94\x4e\x1c\x88\x14\x83\x6a\x8e\xcc\xe3\xb2\xda\x37\x98\xc9\x61\x33\x04\x34\x39\x1e\x9c\x18\x5b\x12\xff\x4d\x0b\x9a\x41\xc3\xda\xb4\x8f\x52\xf6\xb6\x4c\xee\x87\x13\xf5\x06\x86\x74\x4a\xff\xef\x4f\x22\x35\x4a\xc2\x1c\xef\x7a\x45\xb3\x44\x05\x7b\xdc\xf6\x76\x2f\xf8\x95\x46\x05\x73\x24\x83\x2d\xfc\xaf\xc1\x9f\xdc\x77\x6f\x43\x6d\x3e\xea\x91\x2e\xb0\x02\xe4\xe8\xb9\xf7\xc6\x9f\xaa\x0f\xff\xff\x00\x00\x00\xff\xff\xa3\x3d\x8d\x7a\x4a\x45\x02\x00") + +func uiTsTypingsJqueryJqueryDTsBytes() ([]byte, error) { + return bindataRead( + _uiTsTypingsJqueryJqueryDTs, + "ui/ts/typings/jquery/jquery.d.ts", + ) +} + +func uiTsTypingsJqueryJqueryDTs() (*asset, error) { + bytes, err := uiTsTypingsJqueryJqueryDTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/typings/jquery/jquery.d.ts", size: 148810, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _uiTsTypingsMithriljsMithrilDTs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x58\x5b\x4f\xdb\xc8\x17\x7f\x0e\x9f\x62\xd4\x27\x47\x8a\x42\xf5\x7f\x74\xda\x44\x55\xa1\xe2\xbf\x2a\xd0\x25\x09\x5b\x09\xa1\xd5\xc4\x3e\x49\xbc\xd8\x1e\xef\xcc\x38\x21\x5b\xf8\xee\x7b\xe6\xe6\x4b\x6c\x07\xc2\x0a\x04\xd8\x9e\x99\x73\xbf\xfd\xec\xd3\xd3\xcb\x48\xae\x79\x14\x93\x8f\xc3\xff\x0d\x3f\x12\xb9\xcb\x80\x84\xb0\x8c\xd2\x48\x46\x2c\x15\x64\xc9\x38\x99\xe1\xa2\x08\x78\x94\xc9\x93\x10\x82\x98\x72\x20\x09\x0b\xf3\x18\xc8\x9f\x89\xa5\xfe\x75\xd2\x8b\x52\x09\x7c\x49\x03\x20\x96\xe5\x54\x52\x19\x05\xb8\x75\xd2\xeb\x7d\x9a\x11\x78\x94\x90\x86\xc2\xed\x7e\x65\xa9\xe4\x2c\x8e\x81\x8f\x3d\x01\x31\x04\x92\x71\x9f\x08\xc9\xa3\x74\x35\x20\x54\xe2\xcd\x22\x97\x20\x7c\x47\xf0\xa5\x58\x1a\x90\xe1\x70\x18\xac\xa3\x38\xe4\x90\xfa\xe4\x0b\xe7\x74\xf7\xc9\x50\x3e\xd9\xc3\xb7\x11\x97\x39\x8d\xcf\x63\x48\x20\x95\x4f\x85\xcc\x24\x63\x29\x2e\x7c\x9a\x8d\xc7\xfd\x82\x73\xfd\xf0\xe8\x0d\xea\xbe\xaf\x3e\xa8\x50\xc6\x59\x86\x87\x3c\xbc\x26\x91\x80\xe2\xe8\x0f\xf3\x8c\x5b\x7d\xb2\xbf\x88\x97\x0c\xb8\xdc\xe1\xe6\xa8\xc2\x62\x43\xe3\x1c\x19\xcc\xfa\xd5\xf3\xfb\x07\xbd\x96\xdd\xeb\xc5\x5f\x68\xf6\x78\x44\x4e\x4f\x49\x12\xad\xd6\x92\x2c\x80\xc8\x35\x95\xf8\x2f\x12\x44\xac\x59\x1e\x87\x6a\xad\xa0\xa0\xe9\x6e\xac\xb4\xdf\x22\x27\x15\x3e\xa5\xbe\xde\x29\x3d\x17\xd0\x38\x5e\xd0\xe0\xc1\x27\x4e\x31\x24\xea\x93\xcf\x63\xb2\x61\x51\x88\x5a\x78\xa5\xb1\xe7\x1b\x74\x87\xde\xc3\x33\xda\x2d\x26\x0d\x0f\x47\x8b\x33\x26\xad\x2b\x7d\x72\xc5\x42\x40\xa1\xce\xef\x3e\x69\x89\x04\x0a\x9d\x8d\xde\xca\xbc\x24\xce\x15\xb3\x77\x52\xec\x78\xde\x86\x16\x89\x83\x92\x61\x37\x83\x01\x99\x51\xbe\x1a\x7b\x15\x7d\x7e\x50\x4e\x13\xc0\x12\x8f\xfe\x81\xb0\xa9\x9c\xa5\x18\x90\xc7\x89\xaf\xee\xfa\xad\x16\xa0\x7c\xfc\x95\x3c\x17\xd2\x5b\xcb\x24\x76\x79\xd0\x77\x37\x5a\x45\xac\xa2\x10\x78\xdd\x06\x57\x39\x17\xb3\xcb\xef\x67\x2c\xc8\xd5\x03\x52\xa9\x24\x19\x1d\x41\x82\x2e\x2e\xea\xb4\xb5\xda\x06\xaa\xe3\x05\x70\x03\x01\x07\xaa\x5a\xe0\xc4\x27\x0b\xc6\x62\xa0\xe9\x7b\x88\xbb\xbb\x7f\x8d\x40\x2d\x31\xe4\x74\xeb\xab\x46\xdb\xeb\x79\x9a\xa4\x55\xb3\x1e\xfa\x91\x4a\x58\xed\x9a\xf5\x6b\x3c\xac\x4b\xfc\x59\xb3\x64\xd8\x4c\x2d\xc7\x23\xb2\xa9\x6e\x1f\xce\x0a\x9a\xc7\xf2\xc6\xf0\x72\x55\xad\x59\x97\xad\x5b\xef\x0a\x93\xc1\x85\xa2\x47\x88\x2c\x62\xf3\x46\x69\xda\x67\xd0\xe0\x16\x89\xff\xab\x31\x47\x63\x95\xd2\x85\x33\x55\x15\xe2\x28\x7b\xc4\x93\xa6\xe3\x0d\xc8\x26\x64\x89\x7b\xaa\x9a\xe0\x65\x54\xae\x4b\x3d\x32\x55\x22\x62\xa2\x5b\xd8\xc0\xf6\xc3\x1b\xc8\x62\x9c\x89\x17\x91\xc0\x81\xb1\x6b\x0f\x99\x57\x4f\xff\x9e\xe6\xe3\x3d\xc0\xae\xa5\x3c\x7a\xba\x2f\x41\x6d\x61\x91\x63\x8e\xfd\x9e\x03\xdf\x4d\xf5\xa2\x17\x52\x49\x2b\xfa\x9a\x55\xcb\x59\x40\xf3\xe4\xd4\x49\x31\x24\x45\x82\xc0\xdf\x39\x08\x55\xb7\x1e\xcb\x34\x1c\x28\x7c\xfc\xf3\xe2\xe6\xda\x2c\xf5\x5b\x66\x91\x36\x03\x63\x05\x9c\x2b\xc7\xea\x0c\xc3\x16\xc0\x39\xe3\xaa\x9d\x9f\xab\x9b\x7a\x2a\x8c\x2b\x03\xe7\xcc\x12\xda\x71\xa4\x55\x11\xbb\x34\xa8\xcc\x3f\xd1\x22\xf4\xee\xbe\x45\x95\xbb\x7b\xa3\x8c\x90\x94\x4b\xd5\x89\x72\xa9\x8b\xcc\xab\x88\xc7\x14\x6c\xdd\xc1\x2d\x9c\x74\xdf\x10\x00\x61\x3a\x49\x22\xf2\x48\x82\xb6\x2b\x13\xae\x0e\x13\x16\x3c\xfc\x11\xa5\x21\xc3\xca\x34\xd7\xbe\xbb\xd1\x86\x21\x1c\x52\x61\x77\x8e\x75\xe6\xa8\xbf\x06\x5c\xaa\x37\x06\x2d\x00\x53\x00\x33\x26\xcd\x93\x05\x70\x45\x2b\xe9\x6a\x52\x8d\xbc\x42\x49\x2a\xdf\x1a\x08\x49\x6d\xba\xce\x63\xf2\xf1\xee\x7e\x64\xe4\xa2\x49\x58\x67\xcb\x68\x95\x73\x6d\x2f\x59\xe6\x69\x60\x6e\xd0\x52\x9a\x12\x5b\x27\x2d\x1a\x5a\xd5\x0c\xb9\x56\xf0\xf8\xa2\x72\xd5\xa1\x4a\x6a\xd2\xd1\x14\xcb\xd8\x58\x85\x4b\xc3\x08\xea\x49\xc9\xc6\x1c\x3f\xa0\x6a\x85\x42\xe9\x29\x23\x19\x43\xcd\x75\x08\x63\x85\xb8\xc2\x89\xd6\x5c\xad\xaf\x68\x63\x4b\x4d\x6b\x3e\x28\x35\x3c\x53\x90\x19\x85\xc9\x35\x60\xa2\x2c\x04\x48\xc2\x96\x44\x03\x16\x03\x91\x1c\xcc\x4e\x01\x42\xd1\xe6\xdb\x8d\x0b\x7a\x90\x63\xf2\xa7\x52\x0d\x51\x28\x1d\x3b\xea\xc8\x9a\xb2\x67\x6a\x62\x96\xe6\x69\xcc\x68\x38\xf1\x60\xa3\x88\x37\xc6\x9d\x1a\x2f\xbd\xc4\xe0\x9b\x4b\x84\xce\xb6\x6c\x62\x7e\x98\xdf\x6d\x04\xdb\x83\xad\xdd\x30\x09\x24\x8f\x0d\x08\x3d\x04\x94\xbb\x95\x7e\x05\x88\x31\x92\x82\xe2\xd9\xef\x36\xf9\xe9\x17\x06\x66\xab\x2c\x9b\x91\x67\x15\xf6\x0d\x5a\xe1\xd7\x4d\x1a\x37\x94\x79\x01\x12\xbd\x08\xaf\x50\x3f\x62\x7f\xaa\x5a\x7a\x0e\x42\x7d\x1e\xcf\x5e\xab\x4a\x13\xc9\x17\xb1\xd2\x90\xb1\x8a\xfa\xf5\x82\x64\xbf\x4d\xaf\xaf\xdc\x7e\x17\xb3\xbd\xd7\x88\x7d\x8b\xca\xe6\xfb\xdf\xa5\xb9\xa9\xfd\x52\x3c\xef\x2a\x73\xf1\xbe\x15\x64\x1a\x09\x2d\x22\x2a\x83\x45\xb3\xe2\x20\x58\xbc\x01\xa3\xed\xc4\xa8\x5b\x22\x3c\xd5\xb0\x8b\x2d\xf5\x52\x52\x6e\x76\xbf\x85\x75\x59\x37\xcd\x83\x00\x84\xf8\x6a\xdf\x76\x14\x5e\x9e\x5b\xa7\x55\x7c\x35\xdf\x77\xde\x1e\xff\x79\x27\x7f\x3d\x52\x0b\xee\x7b\xac\xdd\xbc\xad\xb1\x2f\x90\xc5\xfc\x85\xf8\xbf\x22\xba\x6b\x48\x51\xa6\x27\x8c\x91\xe5\xab\xdc\x4c\xbf\xac\xcd\x3b\x0c\x79\x2f\xba\x06\xcd\x41\x3e\xb7\x25\x1f\x15\xde\x01\xd1\x30\xa5\xe4\x69\x9c\xa7\xf8\xde\xb6\x43\x1d\xa7\xcf\xe0\xb6\xdb\x92\xe3\xb8\xce\x5f\xc7\xb5\x41\xf5\x06\x29\xcf\x2d\x71\x2f\xb1\x9d\x8e\x3b\x76\xb8\x35\x0b\x6b\x43\x31\xe7\x71\xed\x51\x00\xaf\xed\x67\x38\x45\xb7\x8c\xd7\x89\x14\xd4\x9c\xb8\xd1\xd1\x53\x79\xba\x42\xe0\x9e\x86\x25\x26\xd6\xbc\xd2\x2d\xa7\x99\x2d\x97\x89\xc5\xa7\xa6\xfa\x2c\xa5\x39\xa1\x4d\x6b\xdd\x47\x65\x0c\xfa\x30\xbb\x33\x36\x75\x0b\xee\x60\x45\x27\x68\x9c\x3e\x2b\x97\x2a\x45\x62\x79\x63\x6f\xe2\x08\xe9\x26\xde\xe3\x1a\xdd\xfc\xf3\xf2\xfb\x85\x94\xd9\x8d\x81\xc9\x03\x72\x10\x24\x97\x42\xd5\x37\xb6\xc9\x3e\x46\x77\xad\xc5\xe2\x8d\x37\x08\xa8\x1f\x76\x1e\x57\xdf\xee\xaa\x61\x78\x3e\xc1\x5a\x77\x5f\xf1\x36\x94\x3b\x56\x7e\xf1\x2d\x6f\x58\xfb\x7c\x37\xaa\x1d\x4e\xba\x8f\xed\x7f\x1a\xfc\x60\xcf\x7d\xb0\x53\x0e\x1e\x33\xc6\x25\xf9\x4c\x92\x11\xaa\xf0\x6f\x00\x00\x00\xff\xff\x3a\xb5\x30\x94\x78\x14\x00\x00") + +func uiTsTypingsMithriljsMithrilDTsBytes() ([]byte, error) { + return bindataRead( + _uiTsTypingsMithriljsMithrilDTs, + "ui/ts/typings/mithriljs/mithril.d.ts", + ) +} + +func uiTsTypingsMithriljsMithrilDTs() (*asset, error) { + bytes, err := uiTsTypingsMithriljsMithrilDTsBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "ui/ts/typings/mithriljs/mithril.d.ts", size: 5240, mode: os.FileMode(420), modTime: time.Unix(1400000000, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +// Asset loads and returns the asset for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func Asset(name string) ([]byte, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) + } + return a.bytes, nil + } + return nil, fmt.Errorf("Asset %s not found", name) +} + +// MustAsset is like Asset but panics when Asset would return an error. +// It simplifies safe initialization of global variables. +func MustAsset(name string) []byte { + a, err := Asset(name) + if err != nil { + panic("asset: Asset(" + name + "): " + err.Error()) + } + + return a +} + +// AssetInfo loads and returns the asset info for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func AssetInfo(name string) (os.FileInfo, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) + } + return a.info, nil + } + return nil, fmt.Errorf("AssetInfo %s not found", name) +} + +// AssetNames returns the names of the assets. +func AssetNames() []string { + names := make([]string, 0, len(_bindata)) + for name := range _bindata { + names = append(names, name) + } + return names +} + +// _bindata is a table, holding each asset generator, mapped to its name. +var _bindata = map[string]func() (*asset, error){ + "ui/css/app.css": uiCssAppCss, + "ui/css/graph.css": uiCssGraphCss, + "ui/css/libs/nvd3/1.7.1/nv.d3.min.css": uiCssLibsNvd3171NvD3MinCss, + "ui/css/rest_explorer.css": uiCssRest_explorerCss, + "ui/index.html": uiIndexHtml, + "ui/js/app.js": uiJsAppJs, + "ui/js/libs/d3/3.3.5/d3.min.js": uiJsLibsD3335D3MinJs, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js": uiJsLibsMithriljs020MithrilMinJs, + "ui/js/libs/mithriljs/0.2.0/mithril.min.js.map": uiJsLibsMithriljs020MithrilMinJsMap, + "ui/js/libs/nvd3/1.7.1/nv.d3.min.js": uiJsLibsNvd3171NvD3MinJs, + "ui/ts/app.ts": uiTsAppTs, + "ui/ts/components/metrics.ts": uiTsComponentsMetricsTs, + "ui/ts/header.ts": uiTsHeaderTs, + "ui/ts/models/node_status.ts": uiTsModelsNode_statusTs, + "ui/ts/models/stats.ts": uiTsModelsStatsTs, + "ui/ts/models/store_status.ts": uiTsModelsStore_statusTs, + "ui/ts/models/timeseries.ts": uiTsModelsTimeseriesTs, + "ui/ts/pages/graph.ts": uiTsPagesGraphTs, + "ui/ts/pages/monitor.ts": uiTsPagesMonitorTs, + "ui/ts/pages/nodes.ts": uiTsPagesNodesTs, + "ui/ts/pages/rest_explorer.ts": uiTsPagesRest_explorerTs, + "ui/ts/pages/stores.ts": uiTsPagesStoresTs, + "ui/ts/tsconfig.json": uiTsTsconfigJson, + "ui/ts/typings/d3/d3.d.ts": uiTsTypingsD3D3DTs, + "ui/ts/typings/jquery/jquery.d.ts": uiTsTypingsJqueryJqueryDTs, + "ui/ts/typings/mithriljs/mithril.d.ts": uiTsTypingsMithriljsMithrilDTs, +} + +// AssetDir returns the file names below a certain +// directory embedded in the file by go-bindata. +// For example if you run go-bindata on data/... and data contains the +// following hierarchy: +// data/ +// foo.txt +// img/ +// a.png +// b.png +// then AssetDir("data") would return []string{"foo.txt", "img"} +// AssetDir("data/img") would return []string{"a.png", "b.png"} +// AssetDir("foo.txt") and AssetDir("notexist") would return an error +// AssetDir("") will return []string{"data"}. +func AssetDir(name string) ([]string, error) { + node := _bintree + if len(name) != 0 { + cannonicalName := strings.Replace(name, "\\", "/", -1) + pathList := strings.Split(cannonicalName, "/") + for _, p := range pathList { + node = node.Children[p] + if node == nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + } + } + if node.Func != nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + rv := make([]string, 0, len(node.Children)) + for childName := range node.Children { + rv = append(rv, childName) + } + return rv, nil +} + +type bintree struct { + Func func() (*asset, error) + Children map[string]*bintree +} + +var _bintree = &bintree{nil, map[string]*bintree{ + "ui": {nil, map[string]*bintree{ + "css": {nil, map[string]*bintree{ + "app.css": {uiCssAppCss, map[string]*bintree{}}, + "graph.css": {uiCssGraphCss, map[string]*bintree{}}, + "libs": {nil, map[string]*bintree{ + "nvd3": {nil, map[string]*bintree{ + "1.7.1": {nil, map[string]*bintree{ + "nv.d3.min.css": {uiCssLibsNvd3171NvD3MinCss, map[string]*bintree{}}, + }}, + }}, + }}, + "rest_explorer.css": {uiCssRest_explorerCss, map[string]*bintree{}}, + }}, + "index.html": {uiIndexHtml, map[string]*bintree{}}, + "js": {nil, map[string]*bintree{ + "app.js": {uiJsAppJs, map[string]*bintree{}}, + "libs": {nil, map[string]*bintree{ + "d3": {nil, map[string]*bintree{ + "3.3.5": {nil, map[string]*bintree{ + "d3.min.js": {uiJsLibsD3335D3MinJs, map[string]*bintree{}}, + }}, + }}, + "mithriljs": {nil, map[string]*bintree{ + "0.2.0": {nil, map[string]*bintree{ + "mithril.min.js": {uiJsLibsMithriljs020MithrilMinJs, map[string]*bintree{}}, + "mithril.min.js.map": {uiJsLibsMithriljs020MithrilMinJsMap, map[string]*bintree{}}, + }}, + }}, + "nvd3": {nil, map[string]*bintree{ + "1.7.1": {nil, map[string]*bintree{ + "nv.d3.min.js": {uiJsLibsNvd3171NvD3MinJs, map[string]*bintree{}}, + }}, + }}, + }}, + }}, + "ts": {nil, map[string]*bintree{ + "app.ts": {uiTsAppTs, map[string]*bintree{}}, + "components": {nil, map[string]*bintree{ + "metrics.ts": {uiTsComponentsMetricsTs, map[string]*bintree{}}, + }}, + "header.ts": {uiTsHeaderTs, map[string]*bintree{}}, + "models": {nil, map[string]*bintree{ + "node_status.ts": {uiTsModelsNode_statusTs, map[string]*bintree{}}, + "stats.ts": {uiTsModelsStatsTs, map[string]*bintree{}}, + "store_status.ts": {uiTsModelsStore_statusTs, map[string]*bintree{}}, + "timeseries.ts": {uiTsModelsTimeseriesTs, map[string]*bintree{}}, + }}, + "pages": {nil, map[string]*bintree{ + "graph.ts": {uiTsPagesGraphTs, map[string]*bintree{}}, + "monitor.ts": {uiTsPagesMonitorTs, map[string]*bintree{}}, + "nodes.ts": {uiTsPagesNodesTs, map[string]*bintree{}}, + "rest_explorer.ts": {uiTsPagesRest_explorerTs, map[string]*bintree{}}, + "stores.ts": {uiTsPagesStoresTs, map[string]*bintree{}}, + }}, + "tsconfig.json": {uiTsTsconfigJson, map[string]*bintree{}}, + "typings": {nil, map[string]*bintree{ + "d3": {nil, map[string]*bintree{ + "d3.d.ts": {uiTsTypingsD3D3DTs, map[string]*bintree{}}, + }}, + "jquery": {nil, map[string]*bintree{ + "jquery.d.ts": {uiTsTypingsJqueryJqueryDTs, map[string]*bintree{}}, + }}, + "mithriljs": {nil, map[string]*bintree{ + "mithril.d.ts": {uiTsTypingsMithriljsMithrilDTs, map[string]*bintree{}}, + }}, + }}, + }}, + }}, +}} + +// RestoreAsset restores an asset under the given directory +func RestoreAsset(dir, name string) error { + data, err := Asset(name) + if err != nil { + return err + } + info, err := AssetInfo(name) + if err != nil { + return err + } + err = os.MkdirAll(_filePath(dir, path.Dir(name)), os.FileMode(0755)) + if err != nil { + return err + } + err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) + if err != nil { + return err + } + err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) + if err != nil { + return err + } + return nil +} + +// RestoreAssets restores an asset under the given directory recursively +func RestoreAssets(dir, name string) error { + children, err := AssetDir(name) + // File + if err != nil { + return RestoreAsset(dir, name) + } + // Dir + for _, child := range children { + err = RestoreAssets(dir, path.Join(name, child)) + if err != nil { + return err + } + } + return nil +} + +func _filePath(dir, name string) string { + cannonicalName := strings.Replace(name, "\\", "/", -1) + return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) +} diff --git a/samples/Go/gen-go-linguist-thrift.go b/samples/Go/gen-go-linguist-thrift.go new file mode 100644 index 00000000..3f972e99 --- /dev/null +++ b/samples/Go/gen-go-linguist-thrift.go @@ -0,0 +1,18 @@ +// Autogenerated by Thrift Compiler (1.0.0-dev) +// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + +package linguist + +import ( + "bytes" + "fmt" + "git.apache.org/thrift.git/lib/go/thrift" +) + +// (needed to ensure safety because of naive import list construction.) +var _ = thrift.ZERO +var _ = fmt.Printf +var _ = bytes.Equal + +func init() { +} diff --git a/samples/Groff/Tcl.n b/samples/Groff/Tcl.n new file mode 100644 index 00000000..c7fa9f6f --- /dev/null +++ b/samples/Groff/Tcl.n @@ -0,0 +1,275 @@ +'\" +'\" Copyright (c) 1993 The Regents of the University of California. +'\" Copyright (c) 1994-1996 Sun Microsystems, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +.TH Tcl n "8.6" Tcl "Tcl Built-In Commands" +.so man.macros +.BS +.SH NAME +Tcl \- Tool Command Language +.SH SYNOPSIS +Summary of Tcl language syntax. +.BE +.SH DESCRIPTION +.PP +The following rules define the syntax and semantics of the Tcl language: +.IP "[1] \fBCommands.\fR" +A Tcl script is a string containing one or more commands. +Semi-colons and newlines are command separators unless quoted as +described below. +Close brackets are command terminators during command substitution +(see below) unless quoted. +.IP "[2] \fBEvaluation.\fR" +A command is evaluated in two steps. +First, the Tcl interpreter breaks the command into \fIwords\fR +and performs substitutions as described below. +These substitutions are performed in the same way for all +commands. +Secondly, the first word is used to locate a command procedure to +carry out the command, then all of the words of the command are +passed to the command procedure. +The command procedure is free to interpret each of its words +in any way it likes, such as an integer, variable name, list, +or Tcl script. +Different commands interpret their words differently. +.IP "[3] \fBWords.\fR" +Words of a command are separated by white space (except for +newlines, which are command separators). +.IP "[4] \fBDouble quotes.\fR" +If the first character of a word is double-quote +.PQ \N'34' +then the word is terminated by the next double-quote character. +If semi-colons, close brackets, or white space characters +(including newlines) appear between the quotes then they are treated +as ordinary characters and included in the word. +Command substitution, variable substitution, and backslash substitution +are performed on the characters between the quotes as described below. +The double-quotes are not retained as part of the word. +.IP "[5] \fBArgument expansion.\fR" +If a word starts with the string +.QW {*} +followed by a non-whitespace character, then the leading +.QW {*} +is removed and the rest of the word is parsed and substituted as any other +word. After substitution, the word is parsed as a list (without command or +variable substitutions; backslash substitutions are performed as is normal for +a list and individual internal words may be surrounded by either braces or +double-quote characters), and its words are added to the command being +substituted. For instance, +.QW "cmd a {*}{b [c]} d {*}{$e f {g h}}" +is equivalent to +.QW "cmd a b {[c]} d {$e} f {g h}" . +.IP "[6] \fBBraces.\fR" +If the first character of a word is an open brace +.PQ { +and rule [5] does not apply, then +the word is terminated by the matching close brace +.PQ } "" . +Braces nest within the word: for each additional open +brace there must be an additional close brace (however, +if an open brace or close brace within the word is +quoted with a backslash then it is not counted in locating the +matching close brace). +No substitutions are performed on the characters between the +braces except for backslash-newline substitutions described +below, nor do semi-colons, newlines, close brackets, +or white space receive any special interpretation. +The word will consist of exactly the characters between the +outer braces, not including the braces themselves. +.IP "[7] \fBCommand substitution.\fR" +If a word contains an open bracket +.PQ [ +then Tcl performs \fIcommand substitution\fR. +To do this it invokes the Tcl interpreter recursively to process +the characters following the open bracket as a Tcl script. +The script may contain any number of commands and must be terminated +by a close bracket +.PQ ] "" . +The result of the script (i.e. the result of its last command) is +substituted into the word in place of the brackets and all of the +characters between them. +There may be any number of command substitutions in a single word. +Command substitution is not performed on words enclosed in braces. +.IP "[8] \fBVariable substitution.\fR" +If a word contains a dollar-sign +.PQ $ +followed by one of the forms +described below, then Tcl performs \fIvariable +substitution\fR: the dollar-sign and the following characters are +replaced in the word by the value of a variable. +Variable substitution may take any of the following forms: +.RS +.TP 15 +\fB$\fIname\fR +. +\fIName\fR is the name of a scalar variable; the name is a sequence +of one or more characters that are a letter, digit, underscore, +or namespace separators (two or more colons). +Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR, +\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR). +.TP 15 +\fB$\fIname\fB(\fIindex\fB)\fR +. +\fIName\fR gives the name of an array variable and \fIindex\fR gives +the name of an element within that array. +\fIName\fR must contain only letters, digits, underscores, and +namespace separators, and may be an empty string. +Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR, +\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR). +Command substitutions, variable substitutions, and backslash +substitutions are performed on the characters of \fIindex\fR. +.TP 15 +\fB${\fIname\fB}\fR +. +\fIName\fR is the name of a scalar variable or array element. It may contain +any characters whatsoever except for close braces. It indicates an array +element if \fIname\fR is in the form +.QW \fIarrayName\fB(\fIindex\fB)\fR +where \fIarrayName\fR does not contain any open parenthesis characters, +.QW \fB(\fR , +or close brace characters, +.QW \fB}\fR , +and \fIindex\fR can be any sequence of characters except for close brace +characters. No further +substitutions are performed during the parsing of \fIname\fR. +.PP +There may be any number of variable substitutions in a single word. +Variable substitution is not performed on words enclosed in braces. +.PP +Note that variables may contain character sequences other than those listed +above, but in that case other mechanisms must be used to access them (e.g., +via the \fBset\fR command's single-argument form). +.RE +.IP "[9] \fBBackslash substitution.\fR" +If a backslash +.PQ \e +appears within a word then \fIbackslash substitution\fR occurs. +In all cases but those described below the backslash is dropped and +the following character is treated as an ordinary +character and included in the word. +This allows characters such as double quotes, close brackets, +and dollar signs to be included in words without triggering +special processing. +The following table lists the backslash sequences that are +handled specially, along with the value that replaces each sequence. +.RS +.TP 7 +\e\fBa\fR +Audible alert (bell) (Unicode U+000007). +.TP 7 +\e\fBb\fR +Backspace (Unicode U+000008). +.TP 7 +\e\fBf\fR +Form feed (Unicode U+00000C). +.TP 7 +\e\fBn\fR +Newline (Unicode U+00000A). +.TP 7 +\e\fBr\fR +Carriage-return (Unicode U+00000D). +.TP 7 +\e\fBt\fR +Tab (Unicode U+000009). +.TP 7 +\e\fBv\fR +Vertical tab (Unicode U+00000B). +.TP 7 +\e\fB\fIwhiteSpace\fR +. +A single space character replaces the backslash, newline, and all spaces +and tabs after the newline. This backslash sequence is unique in that it +is replaced in a separate pre-pass before the command is actually parsed. +This means that it will be replaced even when it occurs between braces, +and the resulting space will be treated as a word separator if it is not +in braces or quotes. +.TP 7 +\e\e +Backslash +.PQ \e "" . +.TP 7 +\e\fIooo\fR +. +The digits \fIooo\fR (one, two, or three of them) give a eight-bit octal +value for the Unicode character that will be inserted, in the range +\fI000\fR\(en\fI377\fR (i.e., the range U+000000\(enU+0000FF). +The parser will stop just before this range overflows, or when +the maximum of three digits is reached. The upper bits of the Unicode +character will be 0. +.TP 7 +\e\fBx\fIhh\fR +. +The hexadecimal digits \fIhh\fR (one or two of them) give an eight-bit +hexadecimal value for the Unicode character that will be inserted. The upper +bits of the Unicode character will be 0 (i.e., the character will be in the +range U+000000\(enU+0000FF). +.TP 7 +\e\fBu\fIhhhh\fR +. +The hexadecimal digits \fIhhhh\fR (one, two, three, or four of them) give a +sixteen-bit hexadecimal value for the Unicode character that will be +inserted. The upper bits of the Unicode character will be 0 (i.e., the +character will be in the range U+000000\(enU+00FFFF). +.TP 7 +\e\fBU\fIhhhhhhhh\fR +. +The hexadecimal digits \fIhhhhhhhh\fR (one up to eight of them) give a +twenty-one-bit hexadecimal value for the Unicode character that will be +inserted, in the range U+000000\(enU+10FFFF. The parser will stop just +before this range overflows, or when the maximum of eight digits +is reached. The upper bits of the Unicode character will be 0. +.RS +.PP +The range U+010000\(enU+10FFFD is reserved for the future. +.RE +.PP +Backslash substitution is not performed on words enclosed in braces, +except for backslash-newline as described above. +.RE +.IP "[10] \fBComments.\fR" +If a hash character +.PQ # +appears at a point where Tcl is +expecting the first character of the first word of a command, +then the hash character and the characters that follow it, up +through the next newline, are treated as a comment and ignored. +The comment character only has significance when it appears +at the beginning of a command. +.IP "[11] \fBOrder of substitution.\fR" +Each character is processed exactly once by the Tcl interpreter +as part of creating the words of a command. +For example, if variable substitution occurs then no further +substitutions are performed on the value of the variable; the +value is inserted into the word verbatim. +If command substitution occurs then the nested command is +processed entirely by the recursive call to the Tcl interpreter; +no substitutions are performed before making the recursive +call and no additional substitutions are performed on the result +of the nested script. +.RS +.PP +Substitutions take place from left to right, and each substitution is +evaluated completely before attempting to evaluate the next. Thus, a +sequence like +.PP +.CS +set y [set x 0][incr x][incr x] +.CE +.PP +will always set the variable \fIy\fR to the value, \fI012\fR. +.RE +.IP "[12] \fBSubstitution and word boundaries.\fR" +Substitutions do not affect the word boundaries of a command, +except for argument expansion as specified in rule [5]. +For example, during variable substitution the entire value of +the variable becomes part of a single word, even if the variable's +value contains spaces. +.SH KEYWORDS +backslash, command, comment, script, substitution, variable +'\" Local Variables: +'\" mode: nroff +'\" fill-column: 78 +'\" End: diff --git a/samples/Groff/create_view.l b/samples/Groff/create_view.l new file mode 100644 index 00000000..ad083c2d --- /dev/null +++ b/samples/Groff/create_view.l @@ -0,0 +1,135 @@ +.\\" auto-generated by docbook2man-spec $Revision: 1.1.1.1 $ +.TH "CREATE VIEW" "" "2005-11-05" "SQL - Language Statements" "SQL Commands" +.SH NAME +CREATE VIEW \- define a new view + +.SH SYNOPSIS +.sp +.nf +CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW \fIname\fR [ ( \fIcolumn_name\fR [, ...] ) ] + AS \fIquery\fR +.sp +.fi +.SH "DESCRIPTION" +.PP +\fBCREATE VIEW\fR defines a view of a query. The view +is not physically materialized. Instead, the query is run every time +the view is referenced in a query. +.PP +\fBCREATE OR REPLACE VIEW\fR is similar, but if a view +of the same name already exists, it is replaced. You can only replace +a view with a new query that generates the identical set of columns +(i.e., same column names and data types). +.PP +If a schema name is given (for example, CREATE VIEW +myschema.myview ...) then the view is created in the specified +schema. Otherwise it is created in the current schema. Temporary +views exist in a special schema, so a schema name may not be given +when creating a temporary view. The name of the view must be +distinct from the name of any other view, table, sequence, or index +in the same schema. +.SH "PARAMETERS" +.TP +\fBTEMPORARY or TEMP\fR +If specified, the view is created as a temporary view. +Temporary views are automatically dropped at the end of the +current session. Existing +permanent relations with the same name are not visible to the +current session while the temporary view exists, unless they are +referenced with schema-qualified names. + +If any of the tables referenced by the view are temporary, +the view is created as a temporary view (whether +TEMPORARY is specified or not). +.TP +\fB\fIname\fB\fR +The name (optionally schema-qualified) of a view to be created. +.TP +\fB\fIcolumn_name\fB\fR +An optional list of names to be used for columns of the view. +If not given, the column names are deduced from the query. +.TP +\fB\fIquery\fB\fR +A query (that is, a \fBSELECT\fR statement) which will +provide the columns and rows of the view. + +Refer to SELECT [\fBselect\fR(l)] +for more information about valid queries. +.SH "NOTES" +.PP +Currently, views are read only: the system will not allow an insert, +update, or delete on a view. You can get the effect of an updatable +view by creating rules that rewrite inserts, etc. on the view into +appropriate actions on other tables. For more information see +CREATE RULE [\fBcreate_rule\fR(l)]. +.PP +Use the DROP VIEW [\fBdrop_view\fR(l)] +statement to drop views. +.PP +Be careful that the names and types of the view's columns will be +assigned the way you want. For example, +.sp +.nf +CREATE VIEW vista AS SELECT 'Hello World'; +.sp +.fi +is bad form in two ways: the column name defaults to ?column?, +and the column data type defaults to \fBunknown\fR. If you want a +string literal in a view's result, use something like +.sp +.nf +CREATE VIEW vista AS SELECT text 'Hello World' AS hello; +.sp +.fi +.PP +Access to tables referenced in the view is determined by permissions of +the view owner. However, functions called in the view are treated the +same as if they had been called directly from the query using the view. +Therefore the user of a view must have permissions to call all functions +used by the view. +.SH "EXAMPLES" +.PP +Create a view consisting of all comedy films: +.sp +.nf +CREATE VIEW comedies AS + SELECT * + FROM films + WHERE kind = 'Comedy'; +.sp +.fi +.SH "COMPATIBILITY" +.PP +The SQL standard specifies some additional capabilities for the +\fBCREATE VIEW\fR statement: +.sp +.nf +CREATE VIEW \fIname\fR [ ( \fIcolumn_name\fR [, ...] ) ] + AS \fIquery\fR + [ WITH [ CASCADED | LOCAL ] CHECK OPTION ] +.sp +.fi +.PP +The optional clauses for the full SQL command are: +.TP +\fBCHECK OPTION\fR +This option has to do with updatable views. All +\fBINSERT\fR and \fBUPDATE\fR commands on the view +will be checked to ensure data satisfy the view-defining +condition (that is, the new data would be visible through the +view). If they do not, the update will be rejected. +.TP +\fBLOCAL\fR +Check for integrity on this view. +.TP +\fBCASCADED\fR +Check for integrity on this view and on any dependent +view. CASCADED is assumed if neither +CASCADED nor LOCAL is specified. +.PP +.PP +\fBCREATE OR REPLACE VIEW\fR is a +PostgreSQL language extension. +So is the concept of a temporary view. +.SH "SEE ALSO" +DROP VIEW [\fBdrop_view\fR(l)] diff --git a/samples/Groff/fsinterface.ms b/samples/Groff/fsinterface.ms new file mode 100644 index 00000000..1b35e732 --- /dev/null +++ b/samples/Groff/fsinterface.ms @@ -0,0 +1,1174 @@ +.\" $NetBSD: fsinterface.ms,v 1.4 2003/08/07 10:30:42 agc Exp $ +.\" +.\" Copyright (c) 1986 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)fsinterface.ms 1.4 (Berkeley) 4/16/91 +.\" +.if \nv .rm CM +.de UX +.ie \\n(UX \s-1UNIX\s0\\$1 +.el \{\ +\s-1UNIX\s0\\$1\(dg +.FS +\(dg \s-1UNIX\s0 is a registered trademark of AT&T. +.FE +.nr UX 1 +.\} +.. +.TL +Toward a Compatible Filesystem Interface +.AU +Michael J. Karels +Marshall Kirk McKusick +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.AB +.LP +As network or remote filesystems have been implemented for +.UX , +several stylized interfaces between the filesystem implementation +and the rest of the kernel have been developed. +.FS +This is an update of a paper originally presented +at the September 1986 conference of the European +.UX +Users' Group. +Last modified April 16, 1991. +.FE +Notable among these are Sun Microsystems' Virtual Filesystem interface (VFS) +using vnodes, Digital Equipment's Generic File System (GFS) architecture, +and AT&T's File System Switch (FSS). +Each design attempts to isolate filesystem-dependent details +below a generic interface and to provide a framework within which +new filesystems may be incorporated. +However, each of these interfaces is different from +and incompatible with the others. +Each of them addresses somewhat different design goals. +Each was based on a different starting version of +.UX , +targetted a different set of filesystems with varying characteristics, +and uses a different set of primitive operations provided by the filesystem. +The current study compares the various filesystem interfaces. +Criteria for comparison include generality, completeness, robustness, +efficiency and esthetics. +Several of the underlying design issues are examined in detail. +As a result of this comparison, a proposal for a new filesystem interface +is advanced that includes the best features of the existing implementations. +The proposal adopts the calling convention for name lookup introduced +in 4.3BSD, but is otherwise closely related to Sun's VFS. +A prototype implementation is now being developed at Berkeley. +This proposal and the rationale underlying its development +have been presented to major software vendors +as an early step toward convergence on a compatible filesystem interface. +.AE +.SH +Introduction +.PP +As network communications and workstation environments +became common elements in +.UX +systems, several vendors of +.UX +systems have designed and built network file systems +that allow client process on one +.UX +machine to access files on a server machine. +Examples include Sun's Network File System, NFS [Sandberg85], +AT&T's recently-announced Remote File Sharing, RFS [Rifkin86], +the LOCUS distributed filesystem [Walker85], +and Masscomp's extended filesystem [Cole85]. +Other remote filesystems have been implemented in research or university groups +for internal use, notably the network filesystem in the Eighth Edition +.UX +system [Weinberger84] and two different filesystems used at Carnegie-Mellon +University [Satyanarayanan85]. +Numerous other remote file access methods have been devised for use +within individual +.UX +processes, +many of them by modifications to the C I/O library +similar to those in the Newcastle Connection [Brownbridge82]. +.PP +Multiple network filesystems may frequently +be found in use within a single organization. +These circumstances make it highly desirable to be able to transport filesystem +implementations from one system to another. +Such portability is considerably enhanced by the use of a stylized interface +with carefully-defined entry points to separate the filesystem from the rest +of the operating system. +This interface should be similar to the interface between device drivers +and the kernel. +Although varying somewhat among the common versions of +.UX , +the device driver interfaces are sufficiently similar that device drivers +may be moved from one system to another without major problems. +A clean, well-defined interface to the filesystem also allows a single +system to support multiple local filesystem types. +.PP +For reasons such as these, several filesystem interfaces have been used +when integrating new filesystems into the system. +The best-known of these are Sun Microsystems' Virtual File System interface, +VFS [Kleiman86], and AT&T's File System Switch, FSS. +Another interface, known as the Generic File System, GFS, +has been implemented for the ULTRIX\(dd +.FS +\(dd ULTRIX is a trademark of Digital Equipment Corp. +.FE +system by Digital [Rodriguez86]. +There are numerous differences among these designs. +The differences may be understood from the varying philosophies +and design goals of the groups involved, from the systems under which +the implementations were done, and from the filesystems originally targetted +by the designs. +These differences are summarized in the following sections +within the limitations of the published specifications. +.SH +Design goals +.PP +There are several design goals which, in varying degrees, +have driven the various designs. +Each attempts to divide the filesystem into a filesystem-type-independent +layer and individual filesystem implementations. +The division between these layers occurs at somewhat different places +in these systems, reflecting different views of the diversity and types +of the filesystems that may be accommodated. +Compatibility with existing local filesystems has varying importance; +at the user-process level, each attempts to be completely transparent +except for a few filesystem-related system management programs. +The AT&T interface also makes a major effort to retain familiar internal +system interfaces, and even to retain object-file-level binary compatibility +with operating system modules such as device drivers. +Both Sun and DEC were willing to change internal data structures and interfaces +so that other operating system modules might require recompilation +or source-code modification. +.PP +AT&T's interface both allows and requires filesystems to support the full +and exact semantics of their previous filesystem, +including interruptions of system calls on slow operations. +System calls that deal with remote files are encapsulated +with their environment and sent to a server where execution continues. +The system call may be aborted by either client or server, returning +control to the client. +Most system calls that descend into the file-system dependent layer +of a filesystem other than the standard local filesystem do not return +to the higher-level kernel calling routines. +Instead, the filesystem-dependent code completes the requested +operation and then executes a non-local goto (\fIlongjmp\fP) to exit the +system call. +These efforts to avoid modification of main-line kernel code +indicate a far greater emphasis on internal compatibility than on modularity, +clean design, or efficiency. +.PP +In contrast, the Sun VFS interface makes major modifications to the internal +interfaces in the kernel, with a very clear separation +of filesystem-independent and -dependent data structures and operations. +The semantics of the filesystem are largely retained for local operations, +although this is achieved at some expense where it does not fit the internal +structuring well. +The filesystem implementations are not required to support the same +semantics as local +.UX +filesystems. +Several historical features of +.UX +filesystem behavior are difficult to achieve using the VFS interface, +including the atomicity of file and link creation and the use of open files +whose names have been removed. +.PP +A major design objective of Sun's network filesystem, +statelessness, +permeates the VFS interface. +No locking may be done in the filesystem-independent layer, +and locking in the filesystem-dependent layer may occur only during +a single call into that layer. +.PP +A final design goal of most implementors is performance. +For remote filesystems, +this goal tends to be in conflict with the goals of complete semantic +consistency, compatibility and modularity. +Sun has chosen performance over modularity in some areas, +but has emphasized clean separation of the layers within the filesystem +at the expense of performance. +Although the performance of RFS is yet to be seen, +AT&T seems to have considered compatibility far more important than modularity +or performance. +.SH +Differences among filesystem interfaces +.PP +The existing filesystem interfaces may be characterized +in several ways. +Each system is centered around a few data structures or objects, +along with a set of primitives for performing operations upon these objects. +In the original +.UX +filesystem [Ritchie74], +the basic object used by the filesystem is the inode, or index node. +The inode contains all of the information about a file except its name: +its type, identification, ownership, permissions, timestamps and location. +Inodes are identified by the filesystem device number and the index within +the filesystem. +The major entry points to the filesystem are \fInamei\fP, +which translates a filesystem pathname into the underlying inode, +and \fIiget\fP, which locates an inode by number and installs it in the in-core +inode table. +\fINamei\fP performs name translation by iterative lookup +of each component name in its directory to find its inumber, +then using \fIiget\fP to return the actual inode. +If the last component has been reached, this inode is returned; +otherwise, the inode describes the next directory to be searched. +The inode returned may be used in various ways by the caller; +it may be examined, the file may be read or written, +types and access may be checked, and fields may be modified. +Modified inodes are automatically written back the filesystem +on disk when the last reference is released with \fIiput\fP. +Although the details are considerably different, +the same general scheme is used in the faster filesystem in 4.2BSD +.UX +[Mckusick85]. +.PP +Both the AT&T interface and, to a lesser extent, the DEC interface +attempt to preserve the inode-oriented interface. +Each modify the inode to allow different varieties of the structure +for different filesystem types by separating the filesystem-dependent +parts of the inode into a separate structure or one arm of a union. +Both interfaces allow operations +equivalent to the \fInamei\fP and \fIiget\fP operations +of the old filesystem to be performed in the filesystem-independent +layer, with entry points to the individual filesystem implementations to support +the type-specific parts of these operations. Implicit in this interface +is that files may be conveniently be named by and located using a single +index within a filesystem. +The GFS provides specific entry points to the filesystems +to change most file properties rather than allowing arbitrary changes +to be made to the generic part of the inode. +.PP +In contrast, the Sun VFS interface replaces the inode as the primary object +with the vnode. +The vnode contains no filesystem-dependent fields except the pointer +to the set of operations implemented by the filesystem. +Properties of a vnode that might be transient, such as the ownership, +permissions, size and timestamps, are maintained by the lower layer. +These properties may be presented in a generic format upon request; +callers are expected not to hold this information for any length of time, +as they may not be up-to-date later on. +The vnode operations do not include a corollary for \fIiget\fP; +the only external interface for obtaining vnodes for specific files +is the name lookup operation. +(Separate procedures are provided outside of this interface +that obtain a ``file handle'' for a vnode which may be given +to a client by a server, such that the vnode may be retrieved +upon later presentation of the file handle.) +.SH +Name translation issues +.PP +Each of the systems described include a mechanism for performing +pathname-to-internal-representation translation. +The style of the name translation function is very different in all +three systems. +As described above, the AT&T and DEC systems retain the \fInamei\fP function. +The two are quite different, however, as the ULTRIX interface uses +the \fInamei\fP calling convention introduced in 4.3BSD. +The parameters and context for the name lookup operation +are collected in a \fInameidata\fP structure which is passed to \fInamei\fP +for operation. +Intent to create or delete the named file is declared in advance, +so that the final directory scan in \fInamei\fP may retain information +such as the offset in the directory at which the modification will be made. +Filesystems that use such mechanisms to avoid redundant work +must therefore lock the directory to be modified so that it may not +be modified by another process before completion. +In the System V filesystem, as in previous versions of +.UX , +this information is stored in the per-process \fIuser\fP structure +by \fInamei\fP for use by a low-level routine called after performing +the actual creation or deletion of the file itself. +In 4.3BSD and in the GFS interface, these side effects of \fInamei\fP +are stored in the \fInameidata\fP structure given as argument to \fInamei\fP, +which is also presented to the routine implementing file creation or deletion. +.PP +The ULTRIX \fInamei\fP routine is responsible for the generic +parts of the name translation process, such as copying the name into +an internal buffer, validating it, interpolating +the contents of symbolic links, and indirecting at mount points. +As in 4.3BSD, the name is copied into the buffer in a single call, +according to the location of the name. +After determining the type of the filesystem at the start of translation +(the current directory or root directory), it calls the filesystem's +\fInamei\fP entry with the same structure it received from its caller. +The filesystem-specific routine translates the name, component by component, +as long as no mount points are reached. +It may return after any number of components have been processed. +\fINamei\fP performs any processing at mount points, then calls +the correct translation routine for the next filesystem. +Network filesystems may pass the remaining pathname to a server for translation, +or they may look up the pathname components one at a time. +The former strategy would be more efficient, +but the latter scheme allows mount points within a remote filesystem +without server knowledge of all client mounts. +.PP +The AT&T \fInamei\fP interface is presumably the same as that in previous +.UX +systems, accepting the name of a routine to fetch pathname characters +and an operation (one of: lookup, lookup for creation, or lookup for deletion). +It translates, component by component, as before. +If it detects that a mount point crosses to a remote filesystem, +it passes the remainder of the pathname to the remote server. +A pathname-oriented request other than open may be completed +within the \fInamei\fP call, +avoiding return to the (unmodified) system call handler +that called \fInamei\fP. +.PP +In contrast to the first two systems, Sun's VFS interface has replaced +\fInamei\fP with \fIlookupname\fP. +This routine simply calls a new pathname-handling module to allocate +a pathname buffer and copy in the pathname (copying a character per call), +then calls \fIlookuppn\fP. +\fILookuppn\fP performs the iteration over the directories leading +to the destination file; it copies each pathname component to a local buffer, +then calls the filesystem \fIlookup\fP entry to locate the vnode +for that file in the current directory. +Per-filesystem \fIlookup\fP routines may translate only one component +per call. +For creation and deletion of new files, the lookup operation is unmodified; +the lookup of the final component only serves to check for the existence +of the file. +The subsequent creation or deletion call, if any, must repeat the final +name translation and associated directory scan. +For new file creation in particular, this is rather inefficient, +as file creation requires two complete scans of the directory. +.PP +Several of the important performance improvements in 4.3BSD +were related to the name translation process [McKusick85][Leffler84]. +The following changes were made: +.IP 1. 4 +A system-wide cache of recent translations is maintained. +The cache is separate from the inode cache, so that multiple names +for a file may be present in the cache. +The cache does not hold ``hard'' references to the inodes, +so that the normal reference pattern is not disturbed. +.IP 2. +A per-process cache is kept of the directory and offset +at which the last successful name lookup was done. +This allows sequential lookups of all the entries in a directory to be done +in linear time. +.IP 3. +The entire pathname is copied into a kernel buffer in a single operation, +rather than using two subroutine calls per character. +.IP 4. +A pool of pathname buffers are held by \fInamei\fP, avoiding allocation +overhead. +.LP +All of these performance improvements from 4.3BSD are well worth using +within a more generalized filesystem framework. +The generalization of the structure may otherwise make an already-expensive +function even more costly. +Most of these improvements are present in the GFS system, as it derives +from the beta-test version of 4.3BSD. +The Sun system uses a name-translation cache generally like that in 4.3BSD. +The name cache is a filesystem-independent facility provided for the use +of the filesystem-specific lookup routines. +The Sun cache, like that first used at Berkeley but unlike that in 4.3, +holds a ``hard'' reference to the vnode (increments the reference count). +The ``soft'' reference scheme in 4.3BSD cannot be used with the current +NFS implementation, as NFS allocates vnodes dynamically and frees them +when the reference count returns to zero rather than caching them. +As a result, fewer names may be held in the cache +than (local filesystem) vnodes, and the cache distorts the normal reference +patterns otherwise seen by the LRU cache. +As the name cache references overflow the local filesystem inode table, +the name cache must be purged to make room in the inode table. +Also, to determine whether a vnode is in use (for example, +before mounting upon it), the cache must be flushed to free any +cache reference. +These problems should be corrected +by the use of the soft cache reference scheme. +.PP +A final observation on the efficiency of name translation in the current +Sun VFS architecture is that the number of subroutine calls used +by a multi-component name lookup is dramatically larger +than in the other systems. +The name lookup scheme in GFS suffers from this problem much less, +at no expense in violation of layering. +.PP +A final problem to be considered is synchronization and consistency. +As the filesystem operations are more stylized and broken into separate +entry points for parts of operations, it is more difficult to guarantee +consistency throughout an operation and/or to synchronize with other +processes using the same filesystem objects. +The Sun interface suffers most severely from this, +as it forbids the filesystems from locking objects across calls +to the filesystem. +It is possible that a file may be created between the time that a lookup +is performed and a subsequent creation is requested. +Perhaps more strangely, after a lookup fails to find the target +of a creation attempt, the actual creation might find that the target +now exists and is a symbolic link. +The call will either fail unexpectedly, as the target is of the wrong type, +or the generic creation routine will have to note the error +and restart the operation from the lookup. +This problem will always exist in a stateless filesystem, +but the VFS interface forces all filesystems to share the problem. +This restriction against locking between calls also +forces duplication of work during file creation and deletion. +This is considered unacceptable. +.SH +Support facilities and other interactions +.PP +Several support facilities are used by the current +.UX +filesystem and require generalization for use by other filesystem types. +For filesystem implementations to be portable, +it is desirable that these modified support facilities +should also have a uniform interface and +behave in a consistent manner in target systems. +A prominent example is the filesystem buffer cache. +The buffer cache in a standard (System V or 4.3BSD) +.UX +system contains physical disk blocks with no reference to the files containing +them. +This works well for the local filesystem, but has obvious problems +for remote filesystems. +Sun has modified the buffer cache routines to describe buffers by vnode +rather than by device. +For remote files, the vnode used is that of the file, and the block +numbers are virtual data blocks. +For local filesystems, a vnode for the block device is used for cache reference, +and the block numbers are filesystem physical blocks. +Use of per-file cache description does not easily accommodate +caching of indirect blocks, inode blocks, superblocks or cylinder group blocks. +However, the vnode describing the block device for the cache +is one created internally, +rather than the vnode for the device looked up when mounting, +and it is located by searching a private list of vnodes +rather than by holding it in the mount structure. +Although the Sun modification makes it possible to use the buffer +cache for data blocks of remote files, a better generalization +of the buffer cache is needed. +.PP +The RFS filesystem used by AT&T does not currently cache data blocks +on client systems, thus the buffer cache is probably unmodified. +The form of the buffer cache in ULTRIX is unknown to us. +.PP +Another subsystem that has a large interaction with the filesystem +is the virtual memory system. +The virtual memory system must read data from the filesystem +to satisfy fill-on-demand page faults. +For efficiency, this read call is arranged to place the data directly +into the physical pages assigned to the process (a ``raw'' read) to avoid +copying the data. +Although the read operation normally bypasses the filesystem buffer cache, +consistency must be maintained by checking the buffer cache and copying +or flushing modified data not yet stored on disk. +The 4.2BSD virtual memory system, like that of Sun and ULTRIX, +maintains its own cache of reusable text pages. +This creates additional complications. +As the virtual memory systems are redesigned, these problems should be +resolved by reading through the buffer cache, then mapping the cached +data into the user address space. +If the buffer cache or the process pages are changed while the other reference +remains, the data would have to be copied (``copy-on-write''). +.PP +In the meantime, the current virtual memory systems must be used +with the new filesystem framework. +Both the Sun and AT&T filesystem interfaces +provide entry points to the filesystem for optimization of the virtual +memory system by performing logical-to-physical block number translation +when setting up a fill-on-demand image for a process. +The VFS provides a vnode operation analogous to the \fIbmap\fP function of the +.UX +filesystem. +Given a vnode and logical block number, it returns a vnode and block number +which may be read to obtain the data. +If the filesystem is local, it returns the private vnode for the block device +and the physical block number. +As the \fIbmap\fP operations are all performed at one time, during process +startup, any indirect blocks for the file will remain in the cache +after they are once read. +In addition, the interface provides a \fIstrategy\fP entry that may be used +for ``raw'' reads from a filesystem device, +used to read data blocks into an address space without copying. +This entry uses a buffer header (\fIbuf\fP structure) +to describe the I/O operation +instead of a \fIuio\fP structure. +The buffer-style interface is the same as that used by disk drivers internally. +This difference allows the current \fIuio\fP primitives to be avoided, +as they copy all data to/from the current user process address space. +Instead, for local filesystems these operations could be done internally +with the standard raw disk read routines, +which use a \fIuio\fP interface. +When loading from a remote filesystems, +the data will be received in a network buffer. +If network buffers are suitably aligned, +the data may be mapped into the process address space by a page swap +without copying. +In either case, it should be possible to use the standard filesystem +read entry from the virtual memory system. +.PP +Other issues that must be considered in devising a portable +filesystem implementation include kernel memory allocation, +the implicit use of user-structure global context, +which may create problems with reentrancy, +the style of the system call interface, +and the conventions for synchronization +(sleep/wakeup, handling of interrupted system calls, semaphores). +.SH +The Berkeley Proposal +.PP +The Sun VFS interface has been most widely used of the three described here. +It is also the most general of the three, in that filesystem-specific +data and operations are best separated from the generic layer. +Although it has several disadvantages which were described above, +most of them may be corrected with minor changes to the interface +(and, in a few areas, philosophical changes). +The DEC GFS has other advantages, in particular the use of the 4.3BSD +\fInamei\fP interface and optimizations. +It allows single or multiple components of a pathname +to be translated in a single call to the specific filesystem +and thus accommodates filesystems with either preference. +The FSS is least well understood, as there is little public information +about the interface. +However, the design goals are the least consistent with those of the Berkeley +research groups. +Accordingly, a new filesystem interface has been devised to avoid +some of the problems in the other systems. +The proposed interface derives directly from Sun's VFS, +but, like GFS, uses a 4.3BSD-style name lookup interface. +Additional context information has been moved from the \fIuser\fP structure +to the \fInameidata\fP structure so that name translation may be independent +of the global context of a user process. +This is especially desired in any system where kernel-mode servers +operate as light-weight or interrupt-level processes, +or where a server may store or cache context for several clients. +This calling interface has the additional advantage +that the call parameters need not all be pushed onto the stack for each call +through the filesystem interface, +and they may be accessed using short offsets from a base pointer +(unlike global variables in the \fIuser\fP structure). +.PP +The proposed filesystem interface is described very tersely here. +For the most part, data structures and procedures are analogous +to those used by VFS, and only the changes will be be treated here. +See [Kleiman86] for complete descriptions of the vfs and vnode operations +in Sun's interface. +.PP +The central data structure for name translation is the \fInameidata\fP +structure. +The same structure is used to pass parameters to \fInamei\fP, +to pass these same parameters to filesystem-specific lookup routines, +to communicate completion status from the lookup routines back to \fInamei\fP, +and to return completion status to the calling routine. +For creation or deletion requests, the parameters to the filesystem operation +to complete the request are also passed in this same structure. +The form of the \fInameidata\fP structure is: +.br +.ne 2i +.ID +.nf +.ta .5i +\w'caddr_t\0\0\0'u +\w'struct\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Encapsulation of namei parameters. + * One of these is located in the u. area to + * minimize space allocated on the kernel stack + * and to retain per-process context. + */ +struct nameidata { + /* arguments to namei and related context: */ + caddr_t ni_dirp; /* pathname pointer */ + enum uio_seg ni_seg; /* location of pathname */ + short ni_nameiop; /* see below */ + struct vnode *ni_cdir; /* current directory */ + struct vnode *ni_rdir; /* root directory, if not normal root */ + struct ucred *ni_cred; /* credentials */ + + /* shared between namei, lookup routines and commit routines: */ + caddr_t ni_pnbuf; /* pathname buffer */ + char *ni_ptr; /* current location in pathname */ + int ni_pathlen; /* remaining chars in path */ + short ni_more; /* more left to translate in pathname */ + short ni_loopcnt; /* count of symlinks encountered */ + + /* results: */ + struct vnode *ni_vp; /* vnode of result */ + struct vnode *ni_dvp; /* vnode of intermediate directory */ + +/* BEGIN UFS SPECIFIC */ + struct diroffcache { /* last successful directory search */ + struct vnode *nc_prevdir; /* terminal directory */ + long nc_id; /* directory's unique id */ + off_t nc_prevoffset; /* where last entry found */ + } ni_nc; +/* END UFS SPECIFIC */ +}; +.DE +.DS +.ta \w'#define\0\0'u +\w'WANTPARENT\0\0'u +\w'0x40\0\0\0\0\0\0\0'u +/* + * namei operations and modifiers + */ +#define LOOKUP 0 /* perform name lookup only */ +#define CREATE 1 /* setup for file creation */ +#define DELETE 2 /* setup for file deletion */ +#define WANTPARENT 0x10 /* return parent directory vnode also */ +#define NOCACHE 0x20 /* name must not be left in cache */ +#define FOLLOW 0x40 /* follow symbolic links */ +#define NOFOLLOW 0x0 /* don't follow symbolic links (pseudo) */ +.DE +As in current systems other than Sun's VFS, \fInamei\fP is called +with an operation request, one of LOOKUP, CREATE or DELETE. +For a LOOKUP, the operation is exactly like the lookup in VFS. +CREATE and DELETE allow the filesystem to ensure consistency +by locking the parent inode (private to the filesystem), +and (for the local filesystem) to avoid duplicate directory scans +by storing the new directory entry and its offset in the directory +in the \fIndirinfo\fP structure. +This is intended to be opaque to the filesystem-independent levels. +Not all lookups for creation or deletion are actually followed +by the intended operation; permission may be denied, the filesystem +may be read-only, etc. +Therefore, an entry point to the filesystem is provided +to abort a creation or deletion operation +and allow release of any locked internal data. +After a \fInamei\fP with a CREATE or DELETE flag, the pathname pointer +is set to point to the last filename component. +Filesystems that choose to implement creation or deletion entirely +within the subsequent call to a create or delete entry +are thus free to do so. +.PP +The \fInameidata\fP is used to store context used during name translation. +The current and root directories for the translation are stored here. +For the local filesystem, the per-process directory offset cache +is also kept here. +A file server could leave the directory offset cache empty, +could use a single cache for all clients, +or could hold caches for several recent clients. +.PP +Several other data structures are used in the filesystem operations. +One is the \fIucred\fP structure which describes a client's credentials +to the filesystem. +This is modified slightly from the Sun structure; +the ``accounting'' group ID has been merged into the groups array. +The actual number of groups in the array is given explicitly +to avoid use of a reserved group ID as a terminator. +Also, typedefs introduced in 4.3BSD for user and group ID's have been used. +The \fIucred\fP structure is thus: +.DS +.ta .5i +\w'caddr_t\0\0\0'u +\w'struct\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Credentials. + */ +struct ucred { + u_short cr_ref; /* reference count */ + uid_t cr_uid; /* effective user id */ + short cr_ngroups; /* number of groups */ + gid_t cr_groups[NGROUPS]; /* groups */ + /* + * The following either should not be here, + * or should be treated as opaque. + */ + uid_t cr_ruid; /* real user id */ + gid_t cr_svgid; /* saved set-group id */ +}; +.DE +.PP +A final structure used by the filesystem interface is the \fIuio\fP +structure mentioned earlier. +This structure describes the source or destination of an I/O +operation, with provision for scatter/gather I/O. +It is used in the read and write entries to the filesystem. +The \fIuio\fP structure presented here is modified from the one +used in 4.2BSD to specify the location of each vector of the operation +(user or kernel space) +and to allow an alternate function to be used to implement the data movement. +The alternate function might perform page remapping rather than a copy, +for example. +.DS +.ta .5i +\w'caddr_t\0\0\0'u +\w'struct\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Description of an I/O operation which potentially + * involves scatter-gather, with individual sections + * described by iovec, below. uio_resid is initially + * set to the total size of the operation, and is + * decremented as the operation proceeds. uio_offset + * is incremented by the amount of each operation. + * uio_iov is incremented and uio_iovcnt is decremented + * after each vector is processed. + */ +struct uio { + struct iovec *uio_iov; + int uio_iovcnt; + off_t uio_offset; + int uio_resid; + enum uio_rw uio_rw; +}; + +enum uio_rw { UIO_READ, UIO_WRITE }; +.DE +.DS +.ta .5i +\w'caddr_t\0\0\0'u +\w'vnode *nc_prevdir;\0\0\0\0\0'u +/* + * Description of a contiguous section of an I/O operation. + * If iov_op is non-null, it is called to implement the copy + * operation, possibly by remapping, with the call + * (*iov_op)(from, to, count); + * where from and to are caddr_t and count is int. + * Otherwise, the copy is done in the normal way, + * treating base as a user or kernel virtual address + * according to iov_segflg. + */ +struct iovec { + caddr_t iov_base; + int iov_len; + enum uio_seg iov_segflg; + int (*iov_op)(); +}; +.DE +.DS +.ta .5i +\w'UIO_USERISPACE\0\0\0\0\0'u +/* + * Segment flag values. + */ +enum uio_seg { + UIO_USERSPACE, /* from user data space */ + UIO_SYSSPACE, /* from system space */ + UIO_USERISPACE /* from user I space */ +}; +.DE +.SH +File and filesystem operations +.PP +With the introduction of the data structures used by the filesystem +operations, the complete list of filesystem entry points may be listed. +As noted, they derive mostly from the Sun VFS interface. +Lines marked with \fB+\fP are additions to the Sun definitions; +lines marked with \fB!\fP are modified from VFS. +.PP +The structure describing the externally-visible features of a mounted +filesystem, \fIvfs\fP, is: +.DS +.ta .5i +\w'struct vfsops\0\0\0'u +\w'*vfs_vnodecovered;\0\0\0\0\0'u +/* + * Structure per mounted file system. + * Each mounted file system has an array of + * operations and an instance record. + * The file systems are put on a doubly linked list. + */ +struct vfs { + struct vfs *vfs_next; /* next vfs in vfs list */ +\fB+\fP struct vfs *vfs_prev; /* prev vfs in vfs list */ + struct vfsops *vfs_op; /* operations on vfs */ + struct vnode *vfs_vnodecovered; /* vnode we mounted on */ + int vfs_flag; /* flags */ +\fB!\fP int vfs_fsize; /* fundamental block size */ +\fB+\fP int vfs_bsize; /* optimal transfer size */ +\fB!\fP uid_t vfs_exroot; /* exported fs uid 0 mapping */ + short vfs_exflags; /* exported fs flags */ + caddr_t vfs_data; /* private data */ +}; +.DE +.DS +.ta \w'\fB+\fP 'u +\w'#define\0\0'u +\w'VFS_EXPORTED\0\0'u +\w'0x40\0\0\0\0\0'u + /* + * vfs flags. + * VFS_MLOCK lock the vfs so that name lookup cannot proceed past the vfs. + * This keeps the subtree stable during mounts and unmounts. + */ + #define VFS_RDONLY 0x01 /* read only vfs */ +\fB+\fP #define VFS_NOEXEC 0x02 /* can't exec from filesystem */ + #define VFS_MLOCK 0x04 /* lock vfs so that subtree is stable */ + #define VFS_MWAIT 0x08 /* someone is waiting for lock */ + #define VFS_NOSUID 0x10 /* don't honor setuid bits on vfs */ + #define VFS_EXPORTED 0x20 /* file system is exported (NFS) */ + + /* + * exported vfs flags. + */ + #define EX_RDONLY 0x01 /* exported read only */ +.DE +.LP +The operations supported by the filesystem-specific layer +on an individual filesystem are: +.DS +.ta .5i +\w'struct vfsops\0\0\0'u +\w'*vfs_vnodecovered;\0\0\0\0\0'u +/* + * Operations supported on virtual file system. + */ +struct vfsops { +\fB!\fP int (*vfs_mount)( /* vfs, path, data, datalen */ ); +\fB!\fP int (*vfs_unmount)( /* vfs, forcibly */ ); +\fB+\fP int (*vfs_mountroot)(); + int (*vfs_root)( /* vfs, vpp */ ); +\fB!\fP int (*vfs_statfs)( /* vfs, vp, sbp */ ); +\fB!\fP int (*vfs_sync)( /* vfs, waitfor */ ); +\fB+\fP int (*vfs_fhtovp)( /* vfs, fhp, vpp */ ); +\fB+\fP int (*vfs_vptofh)( /* vp, fhp */ ); +}; +.DE +.LP +The \fIvfs_statfs\fP entry returns a structure of the form: +.DS +.ta .5i +\w'struct vfsops\0\0\0'u +\w'*vfs_vnodecovered;\0\0\0\0\0'u +/* + * file system statistics + */ +struct statfs { +\fB!\fP short f_type; /* type of filesystem */ +\fB+\fP short f_flags; /* copy of vfs (mount) flags */ +\fB!\fP long f_fsize; /* fundamental file system block size */ +\fB+\fP long f_bsize; /* optimal transfer block size */ + long f_blocks; /* total data blocks in file system */ + long f_bfree; /* free blocks in fs */ + long f_bavail; /* free blocks avail to non-superuser */ + long f_files; /* total file nodes in file system */ + long f_ffree; /* free file nodes in fs */ + fsid_t f_fsid; /* file system id */ +\fB+\fP char *f_mntonname; /* directory on which mounted */ +\fB+\fP char *f_mntfromname; /* mounted filesystem */ + long f_spare[7]; /* spare for later */ +}; + +typedef long fsid_t[2]; /* file system id type */ +.DE +.LP +The modifications to Sun's interface at this level are minor. +Additional arguments are present for the \fIvfs_mount\fP and \fIvfs_umount\fP +entries. +\fIvfs_statfs\fP accepts a vnode as well as filesystem identifier, +as the information may not be uniform throughout a filesystem. +For example, +if a client may mount a file tree that spans multiple physical +filesystems on a server, different sections may have different amounts +of free space. +(NFS does not allow remotely-mounted file trees to span physical filesystems +on the server.) +The final additions are the entries that support file handles. +\fIvfs_vptofh\fP is provided for the use of file servers, +which need to obtain an opaque +file handle to represent the current vnode for transmission to clients. +This file handle may later be used to relocate the vnode using \fIvfs_fhtovp\fP +without requiring the vnode to remain in memory. +.PP +Finally, the external form of a filesystem object, the \fIvnode\fP, is: +.DS +.ta .5i +\w'struct vnodeops\0\0'u +\w'*v_vfsmountedhere;\0\0\0'u +/* + * vnode types. VNON means no type. + */ +enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK }; + +struct vnode { + u_short v_flag; /* vnode flags (see below) */ + u_short v_count; /* reference count */ + u_short v_shlockc; /* count of shared locks */ + u_short v_exlockc; /* count of exclusive locks */ + struct vfs *v_vfsmountedhere; /* ptr to vfs mounted here */ + struct vfs *v_vfsp; /* ptr to vfs we are in */ + struct vnodeops *v_op; /* vnode operations */ +\fB+\fP struct text *v_text; /* text/mapped region */ + enum vtype v_type; /* vnode type */ + caddr_t v_data; /* private data for fs */ +}; +.DE +.DS +.ta \w'#define\0\0'u +\w'NOFOLLOW\0\0'u +\w'0x40\0\0\0\0\0\0\0'u +/* + * vnode flags. + */ +#define VROOT 0x01 /* root of its file system */ +#define VTEXT 0x02 /* vnode is a pure text prototype */ +#define VEXLOCK 0x10 /* exclusive lock */ +#define VSHLOCK 0x20 /* shared lock */ +#define VLWAIT 0x40 /* proc is waiting on shared or excl. lock */ +.DE +.LP +The operations supported by the filesystems on individual \fIvnode\fP\^s +are: +.DS +.ta .5i +\w'int\0\0\0\0\0'u +\w'(*vn_getattr)(\0\0\0\0\0'u +/* + * Operations on vnodes. + */ +struct vnodeops { +\fB!\fP int (*vn_lookup)( /* ndp */ ); +\fB!\fP int (*vn_create)( /* ndp, vap, fflags */ ); +\fB+\fP int (*vn_mknod)( /* ndp, vap, fflags */ ); +\fB!\fP int (*vn_open)( /* vp, fflags, cred */ ); + int (*vn_close)( /* vp, fflags, cred */ ); + int (*vn_access)( /* vp, fflags, cred */ ); + int (*vn_getattr)( /* vp, vap, cred */ ); + int (*vn_setattr)( /* vp, vap, cred */ ); + +\fB+\fP int (*vn_read)( /* vp, uiop, offp, ioflag, cred */ ); +\fB+\fP int (*vn_write)( /* vp, uiop, offp, ioflag, cred */ ); +\fB!\fP int (*vn_ioctl)( /* vp, com, data, fflag, cred */ ); + int (*vn_select)( /* vp, which, cred */ ); +\fB+\fP int (*vn_mmap)( /* vp, ..., cred */ ); + int (*vn_fsync)( /* vp, cred */ ); +\fB+\fP int (*vn_seek)( /* vp, offp, off, whence */ ); + +\fB!\fP int (*vn_remove)( /* ndp */ ); +\fB!\fP int (*vn_link)( /* vp, ndp */ ); +\fB!\fP int (*vn_rename)( /* src ndp, target ndp */ ); +\fB!\fP int (*vn_mkdir)( /* ndp, vap */ ); +\fB!\fP int (*vn_rmdir)( /* ndp */ ); +\fB!\fP int (*vn_symlink)( /* ndp, vap, nm */ ); + int (*vn_readdir)( /* vp, uiop, offp, ioflag, cred */ ); + int (*vn_readlink)( /* vp, uiop, ioflag, cred */ ); + +\fB+\fP int (*vn_abortop)( /* ndp */ ); +\fB+\fP int (*vn_lock)( /* vp */ ); +\fB+\fP int (*vn_unlock)( /* vp */ ); +\fB!\fP int (*vn_inactive)( /* vp */ ); +}; +.DE +.DS +.ta \w'#define\0\0'u +\w'NOFOLLOW\0\0'u +\w'0x40\0\0\0\0\0'u +/* + * flags for ioflag + */ +#define IO_UNIT 0x01 /* do io as atomic unit for VOP_RDWR */ +#define IO_APPEND 0x02 /* append write for VOP_RDWR */ +#define IO_SYNC 0x04 /* sync io for VOP_RDWR */ +.DE +.LP +The argument types listed in the comments following each operation are: +.sp +.IP ndp 10 +A pointer to a \fInameidata\fP structure. +.IP vap +A pointer to a \fIvattr\fP structure (vnode attributes; see below). +.IP fflags +File open flags, possibly including O_APPEND, O_CREAT, O_TRUNC and O_EXCL. +.IP vp +A pointer to a \fIvnode\fP previously obtained with \fIvn_lookup\fP. +.IP cred +A pointer to a \fIucred\fP credentials structure. +.IP uiop +A pointer to a \fIuio\fP structure. +.IP ioflag +Any of the IO flags defined above. +.IP com +An \fIioctl\fP command, with type \fIunsigned long\fP. +.IP data +A pointer to a character buffer used to pass data to or from an \fIioctl\fP. +.IP which +One of FREAD, FWRITE or 0 (select for exceptional conditions). +.IP off +A file offset of type \fIoff_t\fP. +.IP offp +A pointer to file offset of type \fIoff_t\fP. +.IP whence +One of L_SET, L_INCR, or L_XTND. +.IP fhp +A pointer to a file handle buffer. +.sp +.PP +Several changes have been made to Sun's set of vnode operations. +Most obviously, the \fIvn_lookup\fP receives a \fInameidata\fP structure +containing its arguments and context as described. +The same structure is also passed to one of the creation or deletion +entries if the lookup operation is for CREATE or DELETE to complete +an operation, or to the \fIvn_abortop\fP entry if no operation +is undertaken. +For filesystems that perform no locking between lookup for creation +or deletion and the call to implement that action, +the final pathname component may be left untranslated by the lookup +routine. +In any case, the pathname pointer points at the final name component, +and the \fInameidata\fP contains a reference to the vnode of the parent +directory. +The interface is thus flexible enough to accommodate filesystems +that are fully stateful or fully stateless, while avoiding redundant +operations whenever possible. +One operation remains problematical, the \fIvn_rename\fP call. +It is tempting to look up the source of the rename for deletion +and the target for creation. +However, filesystems that lock directories during such lookups must avoid +deadlock if the two paths cross. +For that reason, the source is translated for LOOKUP only, +with the WANTPARENT flag set; +the target is then translated with an operation of CREATE. +.PP +In addition to the changes concerned with the \fInameidata\fP interface, +several other changes were made in the vnode operations. +The \fIvn_rdrw\fP entry was split into \fIvn_read\fP and \fIvn_write\fP; +frequently, the read/write entry amounts to a routine that checks +the direction flag, then calls either a read routine or a write routine. +The two entries may be identical for any given filesystem; +the direction flag is contained in the \fIuio\fP given as an argument. +.PP +All of the read and write operations use a \fIuio\fP to describe +the file offset and buffer locations. +All of these fields must be updated before return. +In particular, the \fIvn_readdir\fP entry uses this +to return a new file offset token for its current location. +.PP +Several new operations have been added. +The first, \fIvn_seek\fP, is a concession to record-oriented files +such as directories. +It allows the filesystem to verify that a seek leaves a file at a sensible +offset, or to return a new offset token relative to an earlier one. +For most filesystems and files, this operation amounts to performing +simple arithmetic. +Another new entry point is \fIvn_mmap\fP, for use in mapping device memory +into a user process address space. +Its semantics are not yet decided. +The final additions are the \fIvn_lock\fP and \fIvn_unlock\fP entries. +These are used to request that the underlying file be locked against +changes for short periods of time if the filesystem implementation allows it. +They are used to maintain consistency +during internal operations such as \fIexec\fP, +and may not be used to construct atomic operations from other filesystem +operations. +.PP +The attributes of a vnode are not stored in the vnode, +as they might change with time and may need to be read from a remote +source. +Attributes have the form: +.DS +.ta .5i +\w'struct vnodeops\0\0'u +\w'*v_vfsmountedhere;\0\0\0'u +/* + * Vnode attributes. A field value of -1 + * represents a field whose value is unavailable + * (getattr) or which is not to be changed (setattr). + */ +struct vattr { + enum vtype va_type; /* vnode type (for create) */ + u_short va_mode; /* files access mode and type */ +\fB!\fP uid_t va_uid; /* owner user id */ +\fB!\fP gid_t va_gid; /* owner group id */ + long va_fsid; /* file system id (dev for now) */ +\fB!\fP long va_fileid; /* file id */ + short va_nlink; /* number of references to file */ + u_long va_size; /* file size in bytes (quad?) */ +\fB+\fP u_long va_size1; /* reserved if not quad */ + long va_blocksize; /* blocksize preferred for i/o */ + struct timeval va_atime; /* time of last access */ + struct timeval va_mtime; /* time of last modification */ + struct timeval va_ctime; /* time file changed */ + dev_t va_rdev; /* device the file represents */ + u_long va_bytes; /* bytes of disk space held by file */ +\fB+\fP u_long va_bytes1; /* reserved if va_bytes not a quad */ +}; +.DE +.SH +Conclusions +.PP +The Sun VFS filesystem interface is the most widely used generic +filesystem interface. +Of the interfaces examined, it creates the cleanest separation +between the filesystem-independent and -dependent layers and data structures. +It has several flaws, but it is felt that certain changes in the interface +can ameliorate most of them. +The interface proposed here includes those changes. +The proposed interface is now being implemented by the Computer Systems +Research Group at Berkeley. +If the design succeeds in improving the flexibility and performance +of the filesystem layering, it will be advanced as a model interface. +.SH +Acknowledgements +.PP +The filesystem interface described here is derived from Sun's VFS interface. +It also includes features similar to those of DEC's GFS interface. +We are indebted to members of the Sun and DEC system groups +for long discussions of the issues involved. +.br +.ne 2i +.SH +References + +.IP Brownbridge82 \w'Satyanarayanan85\0\0'u +Brownbridge, D.R., L.F. Marshall, B. Randell, +``The Newcastle Connection, or UNIXes of the World Unite!,'' +\fISoftware\- Practice and Experience\fP, Vol. 12, pp. 1147-1162, 1982. + +.IP Cole85 +Cole, C.T., P.B. Flinn, A.B. Atlas, +``An Implementation of an Extended File System for UNIX,'' +\fIUsenix Conference Proceedings\fP, +pp. 131-150, June, 1985. + +.IP Kleiman86 +``Vnodes: An Architecture for Multiple File System Types in Sun UNIX,'' +\fIUsenix Conference Proceedings\fP, +pp. 238-247, June, 1986. + +.IP Leffler84 +Leffler, S., M.K. McKusick, M. Karels, +``Measuring and Improving the Performance of 4.2BSD,'' +\fIUsenix Conference Proceedings\fP, pp. 237-252, June, 1984. + +.IP McKusick84 +McKusick, M.K., W.N. Joy, S.J. Leffler, R.S. Fabry, +``A Fast File System for UNIX,'' \fITransactions on Computer Systems\fP, +Vol. 2, pp. 181-197, +ACM, August, 1984. + +.IP McKusick85 +McKusick, M.K., M. Karels, S. Leffler, +``Performance Improvements and Functional Enhancements in 4.3BSD,'' +\fIUsenix Conference Proceedings\fP, pp. 519-531, June, 1985. + +.IP Rifkin86 +Rifkin, A.P., M.P. Forbes, R.L. Hamilton, M. Sabrio, S. Shah, and K. Yueh, +``RFS Architectural Overview,'' \fIUsenix Conference Proceedings\fP, +pp. 248-259, June, 1986. + +.IP Ritchie74 +Ritchie, D.M. and K. Thompson, ``The Unix Time-Sharing System,'' +\fICommunications of the ACM\fP, Vol. 17, pp. 365-375, July, 1974. + +.IP Rodriguez86 +Rodriguez, R., M. Koehler, R. Hyde, +``The Generic File System,'' \fIUsenix Conference Proceedings\fP, +pp. 260-269, June, 1986. + +.IP Sandberg85 +Sandberg, R., D. Goldberg, S. Kleiman, D. Walsh, B. Lyon, +``Design and Implementation of the Sun Network Filesystem,'' +\fIUsenix Conference Proceedings\fP, +pp. 119-130, June, 1985. + +.IP Satyanarayanan85 +Satyanarayanan, M., \fIet al.\fP, +``The ITC Distributed File System: Principles and Design,'' +\fIProc. 10th Symposium on Operating Systems Principles\fP, pp. 35-50, +ACM, December, 1985. + +.IP Walker85 +Walker, B.J. and S.H. Kiser, ``The LOCUS Distributed Filesystem,'' +\fIThe LOCUS Distributed System Architecture\fP, +G.J. Popek and B.J. Walker, ed., The MIT Press, Cambridge, MA, 1985. + +.IP Weinberger84 +Weinberger, P.J., ``The Version 8 Network File System,'' +\fIUsenix Conference presentation\fP, +June, 1984. diff --git a/samples/Groovy/build.script! b/samples/Groovy/build.gvy similarity index 100% rename from samples/Groovy/build.script! rename to samples/Groovy/build.gvy diff --git a/samples/Groovy/groovy.script! b/samples/Groovy/groovy similarity index 100% rename from samples/Groovy/groovy.script! rename to samples/Groovy/groovy diff --git a/samples/HTML/rpanel.inc b/samples/HTML/rpanel.inc new file mode 100644 index 00000000..95ceb913 --- /dev/null +++ b/samples/HTML/rpanel.inc @@ -0,0 +1,31 @@ + + + + + + + +
+

Поддержка:

+
+ + + + + + + + + + + +
+

Москва:

+
+

+7-902-7-800-807

+
+

Регионы:

+
+

+7-902-7-800-807

+
+ diff --git a/samples/HTML/tailDel.inc b/samples/HTML/tailDel.inc new file mode 100644 index 00000000..9ee2aa05 --- /dev/null +++ b/samples/HTML/tailDel.inc @@ -0,0 +1,5 @@ + +

Supported Targets

+ + + diff --git a/samples/Haskell/HsColour.hs b/samples/Haskell/HsColour.hs new file mode 100644 index 00000000..64588a6d --- /dev/null +++ b/samples/Haskell/HsColour.hs @@ -0,0 +1,114 @@ +-- | This is a library which colourises Haskell code. +-- It currently has six output formats: +-- +-- * ANSI terminal codes +-- +-- * LaTeX macros +-- +-- * HTML 3.2 with font tags +-- +-- * HTML 4.01 with external CSS. +-- +-- * XHTML 1.0 with internal CSS. +-- +-- * mIRC chat client colour codes. +-- +module Language.Haskell.HsColour (Output(..), ColourPrefs(..), + hscolour) where + +import Language.Haskell.HsColour.Colourise (ColourPrefs(..)) +import qualified Language.Haskell.HsColour.TTY as TTY +import qualified Language.Haskell.HsColour.HTML as HTML +import qualified Language.Haskell.HsColour.CSS as CSS +import qualified Language.Haskell.HsColour.ACSS as ACSS +import qualified Language.Haskell.HsColour.InlineCSS as ICSS +import qualified Language.Haskell.HsColour.LaTeX as LaTeX +import qualified Language.Haskell.HsColour.MIRC as MIRC +import Data.List(mapAccumL, isPrefixOf) +import Data.Maybe +import Language.Haskell.HsColour.Output +--import Debug.Trace + +-- | Colourise Haskell source code with the given output format. +hscolour :: Output -- ^ Output format. + -> ColourPrefs -- ^ Colour preferences (for formats that support them). + -> Bool -- ^ Whether to include anchors. + -> Bool -- ^ Whether output document is partial or complete. + -> String -- ^ Title for output. + -> Bool -- ^ Whether input document is literate haskell or not + -> String -- ^ Haskell source code. + -> String -- ^ Coloured Haskell source code. +hscolour output pref anchor partial title False = + (if partial then id else top'n'tail output title) . + hscolour' output pref anchor +hscolour output pref anchor partial title True = + (if partial then id else top'n'tail output title) . + concatMap chunk . joinL . classify . inlines + where + chunk (Code c) = hscolour' output pref anchor c + chunk (Lit c) = c + +-- | The actual colourising worker, despatched on the chosen output format. +hscolour' :: Output -- ^ Output format. + -> ColourPrefs -- ^ Colour preferences (for formats that support them) + -> Bool -- ^ Whether to include anchors. + -> String -- ^ Haskell source code. + -> String -- ^ Coloured Haskell source code. +hscolour' TTY pref _ = TTY.hscolour pref +hscolour' (TTYg tt) pref _ = TTY.hscolourG tt pref +hscolour' MIRC pref _ = MIRC.hscolour pref +hscolour' LaTeX pref _ = LaTeX.hscolour pref +hscolour' HTML pref anchor = HTML.hscolour pref anchor +hscolour' CSS _ anchor = CSS.hscolour anchor +hscolour' ICSS pref anchor = ICSS.hscolour pref anchor +hscolour' ACSS _ anchor = ACSS.hscolour anchor + +-- | Choose the right headers\/footers, depending on the output format. +top'n'tail :: Output -- ^ Output format + -> String -- ^ Title for output + -> (String->String) -- ^ Output transformer +top'n'tail TTY _ = id +top'n'tail (TTYg _) _ = id +top'n'tail MIRC _ = id +top'n'tail LaTeX title = LaTeX.top'n'tail title +top'n'tail HTML title = HTML.top'n'tail title +top'n'tail CSS title = CSS.top'n'tail title +top'n'tail ICSS title = ICSS.top'n'tail title +top'n'tail ACSS title = CSS.top'n'tail title + +-- | Separating literate files into code\/comment chunks. +data Lit = Code {unL :: String} | Lit {unL :: String} deriving (Show) + +-- Re-implementation of 'lines', for better efficiency (but decreased laziness). +-- Also, importantly, accepts non-standard DOS and Mac line ending characters. +-- And retains the trailing '\n' character in each resultant string. +inlines :: String -> [String] +inlines s = lines' s id + where + lines' [] acc = [acc []] + lines' ('\^M':'\n':s) acc = acc ['\n'] : lines' s id -- DOS +--lines' ('\^M':s) acc = acc ['\n'] : lines' s id -- MacOS + lines' ('\n':s) acc = acc ['\n'] : lines' s id -- Unix + lines' (c:s) acc = lines' s (acc . (c:)) + + +-- | The code for classify is largely stolen from Language.Preprocessor.Unlit. +classify :: [String] -> [Lit] +classify [] = [] +classify (x:xs) | "\\begin{code}"`isPrefixOf`x + = Lit x: allProg xs + where allProg [] = [] -- Should give an error message, + -- but I have no good position information. + allProg (x:xs) | "\\end{code}"`isPrefixOf`x + = Lit x: classify xs + allProg (x:xs) = Code x: allProg xs +classify (('>':x):xs) = Code ('>':x) : classify xs +classify (x:xs) = Lit x: classify xs + +-- | Join up chunks of code\/comment that are next to each other. +joinL :: [Lit] -> [Lit] +joinL [] = [] +joinL (Code c:Code c2:xs) = joinL (Code (c++c2):xs) +joinL (Lit c :Lit c2 :xs) = joinL (Lit (c++c2):xs) +joinL (any:xs) = any: joinL xs + diff --git a/samples/HyPhy/AAModelComparison.bf b/samples/HyPhy/AAModelComparison.bf new file mode 100644 index 00000000..602a9e56 --- /dev/null +++ b/samples/HyPhy/AAModelComparison.bf @@ -0,0 +1,252 @@ +if (Rows (modelMatrixList) == 0) +{ + modelMatrixList = + { + {"Equal Input", "EIAA.mdl", "19"} + {"Dayhoff","Dayhoff.mdl","0"} + {"Dayhoff+F","Dayhoff_F.mdl","19"} + {"JTT", "Jones.mdl", "0"} + {"JTT+F", "Jones_F.mdl", "19"} + {"WAG", "WAG.mdl", "0"} + {"WAG+F", "WAG_F.mdl", "19"} + {"rtREV", "rtREV.mdl", "0"} + {"rtREV+F", "rtREV_F.mdl", "19"} + {"mtMAM", "mtMAM.mdl", "0"} + {"mtMAM+F", "mtMAM_F.mdl", "19"} + {"mtREV 24", "mtREV_24.mdl", "0"} + {"mtREV 24+F", "mtREV_24_F.mdl", "19"} + {"HIV within", "HIVwithin.mdl", "0"} + {"HIV within+F", "HIVwithin+F.mdl", "19"} + {"HIV between", "HIVbetween.mdl", "0"} + {"HIV between+F", "HIVbetween+F.mdl", "19"} + {"REV-1 step", "reducedREV.mdl", "19"} + {"REV", "mtREV.mdl", "19"} + }; +} + +/*___________________________________________________________________________________________________________*/ + +function runAModel (modelID, fileName, xtraP, midx) +{ + ExecuteCommands ("#include \"TemplateModels/"+fileName+"\";"); + Tree givenTree = treeString; + LikelihoodFunction lf = (filteredData,givenTree); + + GetString (lf_info, lf, -1); + locals = lf_info["Local Independent"]; + + if (Columns (branchLengthStash)) + { + USE_LAST_RESULTS = 1; + for (_iv = 0; _iv < Columns (locals); _iv = _iv+1) + { + ExecuteCommands (locals[_iv] + "=1;\n"); + } + currentBL = BranchLength (givenTree,0); + currentBN = BranchName (givenTree,-1); + for (_iv = 0; _iv < Columns (currentBN); _iv = _iv+1) + { + ExecuteCommands ("givenTree."+currentBN[_iv]+".t="+branchLengthStash[_iv]/currentBL+";"); + + } + } + else + { + for (_iv = 0; _iv < Columns (locals); _iv = _iv+1) + { + ExecuteCommands (locals[_iv] + "=0.1;\n"); + } + USE_LAST_RESULTS = 1; + } + + Optimize (res,lf); + + fprintf (stdout, "| ", modelID); + for (k=0; k1) + { + cAIC = 2(-res[1][0]+params*(filteredData.sites/(filteredData.sites-params-1))); + } + else + { + cAIC = 0; + } + + branchLengths = BranchLength (givenTree,-1); + TL = 0; + for (k=Rows(branchLengths)*Columns(branchLengths)-1; k>=0; k=k-1) + { + TL = TL + branchLengths[k]; + } + + fprintf (stdout, "| ", Format (res[1][0],14,3), " | ", Format (params,5,0), " | ", + Format (AIC, 9,3), " | ",); + + if (cAIC > 0) + { + fprintf (stdout, Format (cAIC,11,3), " | "); + } + else + { + fprintf (stdout, " N/A | "); + } + + fprintf (stdout, Format (TL,11,3), " |\n", sepString); + + resultMatrix[midx][0] = res[1][0]; + resultMatrix[midx][1] = params; + resultMatrix[midx][2] = AIC; + resultMatrix[midx][3] = cAIC; + resultMatrix[midx][4] = TL; + + if (AIC < bestAIC) + { + bestAIC = AIC; + bestAICidx = midx; + branchLengthStash = BranchLength (givenTree,-1); + } + + if (cAIC > 0) + { + if (bestCAIC > cAIC) + { + bestCAIC = cAIC; + bestCAICidx = midx; + + } + } + + return 0; +} + + +/*___________________________________________________________________________________________________________*/ + + + +maxModelWidth = 7; +skipCodeSelectionStep = 0; + +ChoiceList (doREV, "Include REV?", 1, SKIP_NONE, "Yes", "Include REV and reduced REV models. CAUTION: these models take a long time to fit.", + "No", "Only use empirical models"); + +if (doREV < 0) +{ + return 0; +} + +if (doREV == 0) +{ + #include "TemplateModels/chooseGeneticCode.def"; + skipCodeSelectionStep = 1; +} + +modelCount = Rows (modelMatrixList) - 2*doREV; + +for (k=0; k=0) +{ + fprintf (stdout, "\n\nBest c-AIC model:\n\t", modelMatrixList[bestCAICidx][0], " with the score of ", bestCAIC); +} + +labelMatrix = {{"Log-likelihood","Parameters","AIC","c-AIC","Total tree length",""}}; + +aaString = "Model"; + +for (fC = 0; fC < modelCount; fC = fC+1) +{ + aaString = aaString + ";" + modelMatrixList[fC][0]; +} + +USE_LAST_RESULTS = 0; + +labelMatrix[5] = aaString; +skipCodeSelectionStep = 0; +OpenWindow (CHARTWINDOW,{{"Model Fits"} + {"labelMatrix"}, + {"resultMatrix"}, + {"Bar Chart"}, + {"Index"}, + {"c-AIC"}, + {"Model Index"}, + {""}, + {"AIC"} + }, + "SCREEN_WIDTH-60;SCREEN_HEIGHT-60;30;30"); diff --git a/samples/HyPhy/CodonModelCompare.bf b/samples/HyPhy/CodonModelCompare.bf new file mode 100644 index 00000000..e24b730d --- /dev/null +++ b/samples/HyPhy/CodonModelCompare.bf @@ -0,0 +1,1046 @@ +/* + This file takes a nucleotide data set and a tree (either from the data file or from a separate file) and computes maximum likelihood estimates for every possible 4x4 reversible model on that data and tree. + + We use the string (v1,v2,v3,v4,v5,v6), where and v1..6 = 0..5 + to encode a 4x4 symmetric transition matrix with entries + [* v1 v2 v3] + [- * v4 v5] + [- - * v6] + [- - - * ] + + For instance: (010010) encodes HKY85. + + For each model the following information is reported: + - Model string. (e.g. (012345) for the GRM) + - Number of model parameters + - Max ln-likelihood for the model + - Likelihood ratio statistic (as a sub-model of the GRM) + - AIC + - P-Value for the Likelihood Ratio Test. + + + Sergei L. Kosakovsky Pond, Summer 2002. + +*/ + +function ReceiveJobs (sendOrNot) +{ + if (MPI_NODE_COUNT>1) + { + MPIReceive (-1, fromNode, result_String); + jobModelNum = MPINodeState[fromNode-1][1]; + vv1 = MPINodeState[fromNode-1][2]; + vv2 = MPINodeState[fromNode-1][3]; + vv3 = MPINodeState[fromNode-1][4]; + vv4 = MPINodeState[fromNode-1][5]; + vv5 = MPINodeState[fromNode-1][6]; + vv6 = MPINodeState[fromNode-1][7]; + if (sendOrNot) + { + MPISend (fromNode,lf); + MPINodeState[fromNode-1][1] = modelNum; + MPINodeState[fromNode-1][2] = v1; + MPINodeState[fromNode-1][3] = v2; + MPINodeState[fromNode-1][4] = v3; + MPINodeState[fromNode-1][5] = v4; + MPINodeState[fromNode-1][6] = v5; + MPINodeState[fromNode-1][7] = v6; + } + else + { + MPINodeState[fromNode-1][0] = 0; + MPINodeState[fromNode-1][1] = -1; + } + + ExecuteCommands (result_String); + } + else + { + jobModelNum = modelNum; + } + + if (jobModelNum == 0) + { + stdl = lf_MLES[1][0]; + fullnp = lf_MLES[1][1]+addOn; + fprintf(stdout,"\n(012345) Full Model ln-lik = ",stdl,". Parameter Count=",Format(fullnp,0,0)," AIC = ", 2*(fullnp-stdl),"\n\n"); + + + resultCache [0][0] = 1; + resultCache [0][1] = 2; + resultCache [0][2] = 3; + resultCache [0][3] = 4; + resultCache [0][4] = 5; + resultCache [0][5] = lf_MLES[1][0]; + resultCache [0][6] = lf_MLES[1][1]+addOn; + resultCache [0][7] = 0; + resultCache [0][8] = 0; + + fprintf (stdout,"\n# | Model | # prm | lnL | LRT | AIC | P-Value |"); + fprintf (stdout,"\n----|----------|-------|-----------|----------------|------------|------------------|"); + + if (MPI_NODE_COUNT>1) + { + for (h=1; h<203; h=h+1) + { + lnL = resultCache[h][5]; + + if (lnL<0) + { + np = resultCache[h][6]; + LRT = -2*(lnL-stdl); + if (LRT<0) + { + LRT = 0; + } + AIC = -2*lnL+2*np; + PRINT_DIGITS = 3; + fprintf (stdout,"\n",h); + PRINT_DIGITS = 1; + fprintf (stdout," | (",0, resultCache[h][0], resultCache[h][1], resultCache[h][2], resultCache[h][3], resultCache[h][4],") | "); + fprintf (stdout,Format (np,5,0)); + PRINT_DIGITS = 8; + fprintf (stdout, " | ",lnL," | ",Format(LRT,14,3), " | ", AIC, " | ", ); + + PRINT_DIGITS = 15; + if (LRT==0) + { + pValue = 1; + } + else + { + pValue = 1-CChi2(LRT,fullnp-np); + } + fprintf (stdout,pValue," |"); + resultCache [jobModelNum][7] = pValue; + if (pValue1)&&(resultCache[0][5]>=0)) + { + resultCache [jobModelNum][0] = vv2; + resultCache [jobModelNum][1] = vv3; + resultCache [jobModelNum][2] = vv4; + resultCache [jobModelNum][3] = vv5; + resultCache [jobModelNum][4] = vv6; + resultCache [jobModelNum][5] = lf_MLES[1][0]; + resultCache [jobModelNum][6] = lf_MLES[1][1]+addOn; + return fromNode - 1; + } + } + + np = lf_MLES[1][1]+addOn; + lnL = lf_MLES[1][0]; + LRT = -2*(lnL-stdl); + if (LRT<0) + { + LRT = 0; + } + AIC = -2*lnL+2*np; + PRINT_DIGITS = 3; + fprintf (stdout,"\n",jobModelNum); + PRINT_DIGITS = 1; + fprintf (stdout," | (",vv1,vv2,vv3,vv4,vv5,vv6,") | "); + fprintf (stdout,Format (np,5,0)); + PRINT_DIGITS = 8; + fprintf (stdout, " | ",lnL," | ",Format(LRT,14,3), " | ", AIC, " | ", ); + + + PRINT_DIGITS = 15; + if (LRT==0) + { + pValue = 1; + } + else + { + pValue = 1-CChi2(LRT,fullnp-np); + } + fprintf (stdout,pValue," |"); + + resultCache [jobModelNum][0] = vv2; + resultCache [jobModelNum][1] = vv3; + resultCache [jobModelNum][2] = vv4; + resultCache [jobModelNum][3] = vv5; + resultCache [jobModelNum][4] = vv6; + resultCache [jobModelNum][5] = lf_MLES[1][0]; + resultCache [jobModelNum][6] = lf_MLES[1][1]+addOn; + resultCache [jobModelNum][7] = pValue; + if (pValue 0) +{ + #include "TemplateModels/defineGamma.mdl"; +} + +ChoiceList (branchLengths,"Estimate Branch Lengths",1,SKIP_NONE, + "Every Time","Branch lengths are reestimated for every model.", + "Once","Branch lenghts obtained from the nucleotide GTR model and reused for subsequent models." + ); + +if (branchLengths<0) +{ + return; +} + +rejectAt = 0; + +while ((rejectAt<=0)||(rejectAt>=1)) +{ + fprintf (stdout, "\nModel rejection level (e.g. 0.05):"); + fscanf (stdin,"Number", rejectAt); +} + +SetDialogPrompt ("Save results to:"); + +fprintf (PROMPT_FOR_FILE, CLEAR_FILE); +BASE_PATH = LAST_FILE_PATH; + +KEEP_OPTIMAL_ORDER = 1; +MESSAGE_LOGGING = 0; + +global AC=1; +global AT=1; +global CG=1; +global CT=1; +global GT=1; +global R=1; + + +r = setElement (0,2,1); +r = setElement (0,3,2); +r = setElement (1,2,3); +r = setElement (1,3,4); +r = setElement (2,3,5); + +MG94custom = 0; +MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq); +vectorOfFrequencies = BuildCodonFrequencies (observedFreq); +Model MG94customModel = (MG94custom,vectorOfFrequencies,0); + +USE_POSITION_SPECIFIC_FREQS = 1; +Tree tr = treeString; + +addOn = 0; + +if (branchLengths) +{ + global TreeScaler = 1; + GTRMatrix = {{*,AC*nt,nt,AT*nt}{AC*nt,*,CG*nt,CT*nt}{nt,CG*nt,*,GT*nt}{AT*nt,CT*nt,GT*nt,*}}; + DataSetFilter nucFilter = CreateFilter (filteredData,1); + HarvestFrequencies (nucFreq,nucFilter,1,1,1); + Model GTRModel = (GTRMatrix,nucFreq,1); + givenTreeString = Format (tr,0,0); + Tree nucTree = givenTreeString; + LikelihoodFunction lfn = (nucFilter, nucTree); + Optimize (nres,lfn); + ReplicateConstraint ("this1.?.synRate:=this2.?.nt__/TreeScaler",tr,nucTree); + addOn = nres[1][1]-nres[1][2]-1; +} + +LikelihoodFunction lf = (filteredData, tr); + +resultCache = {203,9}; + +modelNum = 0; +rejectCount = 0; + +if (MPI_NODE_COUNT>1) +{ + MPINodeState = {MPI_NODE_COUNT-1,8}; + OPTIMIZE_SUMMATION_ORDER = 0; + MPISend (1,lf); + MPINodeState[0][0] = 1; + MPINodeState[0][1] = modelNum; +} +else +{ + Optimize (lf_MLES,lf); + vv1 = 0; + vv2 = 0; + vv3 = 0; + vv4 = 0; + vv5 = 0; + vv6 = 0; + dummy = ReceiveJobs (0); +} + +rateBiasTerms = {{"AC","1","AT","CG","CT","GT"}}; + +for (v2=0; v2<=1; v2=v2+1) +{ + for (v3=0; v3<=v2+1; v3=v3+1) + { + if (v3>v2) + { + ub4 = v3; + } + else + { + ub4 = v2; + } + for (v4=0; v4<=ub4+1; v4=v4+1) + { + if (v4>=ub4) + { + ub5 = v4; + } + else + { + ub5 = ub4; + } + for (v5=0; v5<=ub5+1; v5=v5+1) + { + if (v5>ub5) + { + ub6 = v5; + } + else + { + ub6 = ub5; + } + for (v6=0; v6<=ub6+1; v6=v6+1) + { + if (v6==5) + { + break; + } + + R = 1; + + paramCount = 0; + + modelDesc = "0"+Format(v2,1,0); + modelDesc = modelDesc+Format(v3,1,0); + modelDesc = modelDesc+Format(v4,1,0); + modelDesc = modelDesc+Format(v5,1,0); + modelDesc = modelDesc+Format(v6,1,0); + + modelConstraintString = ""; + + AC = 1; + AT = 1; + CG = 1; + CT = 1; + GT = 1; + + for (customLoopCounter2=1; customLoopCounter2<6; customLoopCounter2=customLoopCounter2+1) + { + for (customLoopCounter=0; customLoopCounter1) + { + for (mpiNode = 0; mpiNode < MPI_NODE_COUNT-1; mpiNode = mpiNode+1) + { + if (MPINodeState[mpiNode][0]==0) + { + break; + } + } + + if (mpiNode==MPI_NODE_COUNT-1) + /* all nodes busy */ + { + mpiNode = ReceiveJobs (1); + } + else + { + MPISend (mpiNode+1,lf); + MPINodeState[mpiNode][0] = 1; + MPINodeState[mpiNode][1] = modelNum; + MPINodeState[mpiNode][2] = v1; + MPINodeState[mpiNode][3] = v2; + MPINodeState[mpiNode][4] = v3; + MPINodeState[mpiNode][5] = v4; + MPINodeState[mpiNode][6] = v5; + MPINodeState[mpiNode][7] = v6; + } + } + else + { + Optimize (lf_MLES,lf); + vv1 = v1; + vv2 = v2; + vv3 = v3; + vv4 = v4; + vv5 = v5; + vv6 = v6; + dummy = ReceiveJobs (0); + } + } + } + } + } + +} + +if (MPI_NODE_COUNT>1) +{ + while (1) + { + for (nodeCounter = 0; nodeCounter < MPI_NODE_COUNT-1; nodeCounter = nodeCounter+1) + { + if (MPINodeState[nodeCounter][0]==1) + { + fromNode = ReceiveJobs (0); + break; + } + } + if (nodeCounter == MPI_NODE_COUNT-1) + { + break; + } + } + OPTIMIZE_SUMMATION_ORDER = 1; +} + +function checkEmbedding (_m1, _m2) +{ + for (r=0; r<6; r=r+1) + { + if (_m2[r]<_m1[r]) + { + /*fprintf (stdout,_m1," ", _m2, " Reject 1 at position ",r,"\n");*/ + return 0; + } + if (_m2[r]>_m1[r]) + { + for (r2 = 0; r2 < 6; r2 = r2+1) + { + if ((_m2[r2]==_m2[r])&&(_m1[r2]!=_m1[r])) + { + /*fprintf (stdout,_m1," ", _m2, " Reject 2 at positions ",r,r2,"\n");*/ + return 0; + } + } + } + } + return 1; +} + +PRINT_DIGITS = 0; + +fprintf (stdout, "\n\n--------------------------\n (*) => p-Value < ", rejectAt, "\nRejected ", rejectCount, " models.\n"); + + +if (rejectCount<202) +{ + + fprintf (stdout, "\nPerforming nested tests on the remaining models...\n"); + + done = 0; + while (!done) + { + done = 1; + for (v2=1; v2<203; v2=v2+1) + { + if (resultCache[v2][8]) + { + modelString = "0"; + for (v3 = 0; v3<5; v3=v3+1) + { + modelString = modelString + resultCache [v2][v3]; + } + for (v3 = v2+1; v3<203; v3 = v3+1) + { + if (resultCache[v3][8]) + { + modelString2 = "0"; + for (v4 = 0; v4<5; v4=v4+1) + { + modelString2 = modelString2 + resultCache [v3][v4]; + } + if (checkEmbedding (modelString, modelString2)) + { + fprintf (stdout,"H: (", modelString,") A: (", modelString2, "). "); + done = 0; + LRT = 2*(resultCache[v3][5]-resultCache[v2][5]); + npd = resultCache[v3][6]-resultCache[v2][6]; + if (LRT<0) + { + pValue = 1; + } + else + { + pValue = 1-CChi2(LRT,npd); + } + fprintf (stdout," P-Value=", Format (pValue,10,3)); + if (pValue1)", + "0 & 2 (Normal>1)", + "3 Normal", + "RE: Lognormal", + "RE: Gamma", + "RE: Discrete"}}; + +ParameterCount = {{0, + 1, + 3, + 4, + 2, + 4, + 2, + 4, + 5, + 5, + 5, + 5, + 6, + 1, + 2, + 4 + }}; + +MAXIMUM_ITERATIONS_PER_VARIABLE = 2000; +OPTIMIZATION_PRECISION = 0.001; + +function SetWDistribution (resp) +{ + if (rateType == 0) + { + global P = .5; + P:<1; + categFreqMatrix = {{P,1-P}}; + categRateMatrix = {{0,1}}; + category c = (2, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 1) + { + global P1 = 1/3; + global P2 = 0; + + P1:<1; + P2:<1; + + global W = 1; + categFreqMatrix = {{P1,(1-P1)*P2, (1-P1)*(1-P2)}} ; + categRateMatrix = {{0,1,W}}; + category c = (3, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 2) + { + global P1 = 1/3; + global P2 = .5; + P1:<1; + P2:<1; + global W1 = .25; + global R1 = 4; + global R2 = 3; + R1:>1; + R2:>1; + categFreqMatrix = {{P1,(1-P1)*P2, (1-P1)*(1-P2)}} ; + categRateMatrix = {{W1,W1*R1,W1*R1*R2}}; + category c = (3, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 3) + { + global P1 = 1/5; + global P2 = 1/4; + global P3 = 1/3; + global P4 = 1/2; + + P1:<1; + P2:<1; + P3:<1; + P4:<1; + + categFreqMatrix = {{P1, + (1-P1)P2, + (1-P1)(1-P2)*P3, + (1-P1)(1-P2)(1-P3)P4, + (1-P1)(1-P2)(1-P3)(1-P4)}} ; + categRateMatrix = {{0,1/3,2/3,1,3}}; + category c = (5, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25); + } + else + { + if (rateType == 4) + { + global alpha = .5; + global beta = 1; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + category c = (resp, EQUAL, MEAN, GammaDist(_x_,alpha,beta), CGammaDist(_x_,alpha,beta), 0 , + 1e25,CGammaDist(_x_,alpha+1,beta)*alpha/beta); + } + else + { + if (rateType == 5) + { + global alpha = .5; + global beta = 1; + global alpha2= .75; + global P = .5; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + P:<1; + alpha2:>0.01;alpha2:<100; + category c = (resp, EQUAL, MEAN, P*GammaDist(_x_,alpha,beta) + (1-P)*GammaDist(_x_,alpha2,alpha2) + , P*CGammaDist(_x_,alpha,beta) + (1-P)*CGammaDist(_x_,alpha2,alpha2), + 0 , 1e25, + P*CGammaDist(_x_,alpha+1,beta)*alpha/beta + (1-P)*CGammaDist(_x_,alpha2+1,alpha2)); + } + else + { + if (rateType == 6) + { + global betaP = 1; + global betaQ = 1; + betaP:>0.05;betaP:<85; + betaQ:>0.05;betaQ:<85; + category c = (resp, EQUAL, MEAN, _x_^(betaP-1)*(1-_x_)^(betaQ-1)/Beta(betaP,betaQ), IBeta(_x_,betaP,betaQ), 0 , + 1,IBeta(_x_,betaP+1,betaQ)*betaP/(betaP+betaQ)); + } + else + { + if (rateType == 7) + { + global W = 2; + /*W:>1;*/ + global P = 1-1/(resp+1); + global betaP = 1; + global betaQ = 2; + betaP:>0.05; + betaQ:>0.05; + betaP:<85; + betaQ:<85; + P:>0.0000001; + P:<0.9999999; + categFreqMatrix = {resp+1,1}; + for (k=0; k=W), + 0,1e25, + P*IBeta(Min(_x_,1),betaP+1,betaQ)*betaP/(betaP+betaQ)+(1-P)*W*(_x_>=W)); + } + else + { + if (rateType == 8) + { + global P = .5; + global betaP = 1; + global betaQ = 2; + betaP:>0.05;betaP:<85; + betaQ:>0.05;betaQ:<85; + global alpha = .5; + global beta = 1; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + P:<1; + category c = (resp, EQUAL, MEAN, + P*_x_^(betaP-1)*(1-Min(_x_,1))^(betaQ-1)/Beta(betaP,betaQ)+(1-P)*GammaDist(_x_,alpha,beta), + P*IBeta(Min(_x_,1),betaP,betaQ)+(1-P)*CGammaDist(_x_,alpha,beta), + 0,1e25, + P*betaP/(betaP+betaQ)*IBeta(Min(_x_,1),betaP+1,betaQ)+(1-P)*alpha/beta*CGammaDist(_x_,alpha+1,beta)); + } + else + { + if (rateType == 9) + { + global P = .5; + P:<1; + global betaP = 1; + betaP:>0.05;betaP:<85; + global betaQ = 2; + betaQ:>0.05;betaQ:<85; + global alpha = .5; + alpha:>0.01;alpha:<100; + global beta = 1; + beta:>0.01;beta:<500; + category c = (resp, EQUAL, MEAN, + P*_x_^(betaP-1)*(1-Min(_x_,1))^(betaQ-1)/Beta(betaP,betaQ)+(1-P)*(_x_>1)*GammaDist(Max(1e-20,_x_-1),alpha,beta), + P*IBeta(Min(_x_,1),betaP,betaQ)+(1-P)*CGammaDist(Max(_x_-1,0),alpha,beta), + 0,1e25, + P*betaP/(betaP+betaQ)*IBeta(Min(_x_,1),betaP+1,betaQ)+ + (1-P)*(alpha/beta*CGammaDist(Max(0,_x_-1),alpha+1,beta)+CGammaDist(Max(0,_x_-1),alpha,beta))); + } + else + { + if (rateType == 10) + { + global P = .5; + global betaP = 1; + global betaQ = 2; + betaP:>0.05; + betaQ:>0.05; + betaP:<85; + betaQ:<85; + global mu = 3; + global sigma = .01; + sigma:>0.0001; + sqrt2pi = Sqrt(8*Arctan(1)); + P:<1; + + category c = (resp, EQUAL, MEAN, + P*_x_^(betaP-1)*(1-Min(_x_,1))^(betaQ-1)/Beta(betaP,betaQ)+ + (1-P)*(_x_>=1)*Exp(-(_x_-mu)(_x_-mu)/(2*sigma*sigma))/(sqrt2pi__*sigma)/ZCDF((mu-1)/sigma), + P*IBeta(Min(_x_,1),betaP,betaQ)+(1-P)*(_x_>=1)*(1-ZCDF((mu-_x_)/sigma)/ZCDF((mu-1)/sigma)), + 0,1e25, + P*betaP/(betaP+betaQ)*IBeta(Min(_x_,1),betaP+1,betaQ)+ + (1-P)*(_x_>=1)*(mu*(1-ZCDF((1-mu)/sigma)-ZCDF((mu-_x_)/sigma))+ + sigma*(Exp((mu-1)(1-mu)/(2*sigma*sigma))-Exp((_x_-mu)(mu-_x_)/(2*sigma*sigma)))/sqrt2pi__)/ZCDF((mu-1)/sigma)); + } + else + { + if (rateType == 11) + { + global P = 1/3; + global P1 = .5; + + global mu = 3; + global sigma = .5; + sigma:>0.0001; + global sigma1 = 1; + sigma1:>0.0001; + + sqrt2pi = Sqrt(8*Arctan(1)); + P:<1; + P1:<1; + + categFreqMatrix = {resp+1,1}; + for (k=1; k<=resp; k=k+1) + { + categFreqMatrix[k]:=(1-P)/resp__; + } + categFreqMatrix[0]:=P; + + category c = (resp+1, categFreqMatrix, MEAN, + (1-P)((1-P1)*Exp(-(_x_-mu)(_x_-mu)/(2*sigma1*sigma1))/(sqrt2pi__*sigma1)/ZCDF(mu/sigma1)+ + P1*Exp(-(_x_-1)(_x_-1)/(2*sigma*sigma))/(sqrt2pi__*sigma)/ZCDF(1/sigma)), + P+(1-P)(_x_>1e-20)((1-P1)(1-ZCDF((mu-_x_)/sigma1)/ZCDF(mu/sigma1))+ + P1*(1-ZCDF((1-_x_)/sigma)/ZCDF(1/sigma))), + 0,1e25, + (1-P)((1-P1)(mu*(1-ZCDF(-mu/sigma1)-ZCDF((mu-_x_)/sigma1))+ + sigma1*(Exp(-mu*mu/(2*sigma1*sigma1))-Exp((_x_-mu)(mu-_x_)/(2*sigma1*sigma1)))/sqrt2pi__)/ZCDF(mu/sigma1)+ + P(1-ZCDF(-1/sigma)-ZCDF((1-_x_)/sigma)+ + sigma*(Exp(-1/(2*sigma*sigma))-Exp((_x_-1)(1-_x_)/(2*sigma*sigma)))/sqrt2pi__)/ZCDF(1/sigma)) + ); + } + else + { + if (rateType == 12) + { + global P = 1/3; + global P1 = .5; + + global mu = 3; + global sigma = .25; + global sigma1 = .5; + global sigma2 = 1; + sigma:>0.0001; + sigma1:>0.0001; + sigma2:>0.0001; + + sqrt2pi = Sqrt(8*Arctan(1)); + P:<1; + P1:<1; + + category c = (resp, EQUAL , MEAN, + 2*P*Exp(-_x_^2/(2*sigma*sigma))+ + (1-P)((1-P1)*Exp((_x_-mu)(mu-_x_)/(2*sigma2*sigma2))/(sqrt2pi__*sigma2)/ZCDF(mu/sigma2)+ + P1*Exp((1-_x_)(_x_-1)/(2*sigma1*sigma1))/(sqrt2pi__*sigma1)/ZCDF(1/sigma1)), + P*(1-2*ZCDF(-_x_/sigma))+ + (1-P)((1-P1)(1-ZCDF((mu-_x_)/sigma2)/ZCDF(mu/sigma2))+ + P1*(1-ZCDF((1-_x_)/sigma1)/ZCDF(1/sigma1))), + 0,1e25, + 2*P*sigma*(1-Exp(-_x_*_x_/(2*sigma*sigma)))/sqrt2pi__+ + (1-P)((1-P1)(mu*(1-ZCDF(-mu/sigma2)-ZCDF((mu-_x_)/sigma2))+ + sigma2*(Exp(-mu*mu/(2*sigma2*sigma2))-Exp((_x_-mu)(mu-_x_)/(2*sigma2*sigma2)))/sqrt2pi__)/ZCDF(mu/sigma2)+ + P1(1-ZCDF(-1/sigma1)-ZCDF((1-_x_)/sigma1)+ + sigma1*(Exp(-1/(2*sigma1*sigma1))-Exp((_x_-1)(1-_x_)/(2*sigma1*sigma1)))/sqrt2pi__)/ZCDF(mu/sigma1)) + ); + } + else + { + if (rateType == 13) + { + global sigma = .1; + sigma:>0.0001;sigma:<10; + sqrt2pi = Sqrt(8*Arctan(1)); + global _x_:<1e200; + category c = (resp, EQUAL, MEAN, + Exp (-Log(_x_)*Log(_x_) / (2*sigma*sigma)) / (_x_*sigma*sqrt2pi__), /*density*/ + ZCDF (Log(_x_)/sigma), /*CDF*/ + 1e-200, /*left bound*/ + 1e200, /*right bound*/ + Exp (.5*sigma^2)*ZCDF (Log(_x_)/sigma-sigma), + CONSTANT_ON_PARTITION + ); + } + else + { + if (rateType == 14) + { + global alpha = .5; + global beta = 1; + alpha:>0.01;alpha:<100; + beta:>0.01; + beta:<200; + category c = (resp, EQUAL, MEAN, GammaDist(_x_,alpha,beta), CGammaDist(_x_,alpha,beta), 0 , + 1e25,CGammaDist(_x_,alpha+1,beta)*alpha/beta,CONSTANT_ON_PARTITION); + } + else + { + global P1 = 1/3; + global P2 = .5; + P1:<1; + P2:<1; + global W1 = .25; + global R1 = 4; + global R2 = 3; + R1:>1; + R2:>1; + categFreqMatrix = {{P1,(1-P1)*P2, (1-P1)*(1-P2)}} ; + categRateMatrix = {{W1,W1*R1,W1*R1*R2}}; + category c = (3, categFreqMatrix , MEAN, ,categRateMatrix, 0, 1e25, ,CONSTANT_ON_PARTITION); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return 0; +} + +/* ____________________________________________________________________________________________________________________*/ + +function FrameText (frameChar,vertChar,parOff,theText) +{ + h = Abs (theText)+4; + fprintf (stdout,"\n"); + for (k=0; k1) break; + } + if (k 1 */ + { + ConstructCategoryMatrix(marginals,lf,COMPLETE); + + CC = Columns (marginals); + if (rateType>=13) + /* subset rate variation */ + { + CC = CC/numberOfSubsets; + + subsetMarginals = {D,numberOfSubsets}; + for (v=0; v1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v=sigLevel) + { + fprintf (LAST_FILE_PATH,Format (v+1,0,0)," (",positiveProb,")\n"); + } + } + fprintf (LAST_FILE_PATH,"\n\n------------------------------------------------\n\n Subsets with dN/dS<=1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v=sigLevel) + { + fprintf (LAST_FILE_PATH,Format (v+1,0,0)," (",positiveProb,")\n"); + } + } + fprintf (LAST_FILE_PATH,"\n\n------------------------------------------------\n\n Sites with dN/dS<=1 (Posterior cutoff = ",sigLevel,")\n\n"); + for (v=0; v1."); + } + fprintf (LAST_FILE_PATH,"\n\n------------------------------------------------\n\n"); + return E; +} + +/* ____________________________________________________________________________________________________________________*/ + +function PopulateModelMatrix (ModelMatrixName&, EFV) +{ + ModelMatrixName = {ModelMatrixDimension,ModelMatrixDimension}; + + hshift = 0; + + if (modelType==0) + { + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + } + else + { + transition = v%16$4; + transition2= h%16$4; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + ModelMatrixName[h-hshift][v-vshift] := t*EFV__[transition__]; + ModelMatrixName[v-vshift][h-hshift] := t*EFV__[transition2__]; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t*EFV__[transition__]; + ModelMatrixName[v-vshift][h-hshift] := c*t*EFV__[transition2__]; + } + } + } + } + } + else + { + if (modelType==1) + { + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + nucPosInCodon = 2; + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + nucPosInCodon = 0; + } + else + { + transition = v%16$4; + transition2= h%16$4; + nucPosInCodon = 1; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + ModelMatrixName[h-hshift][v-vshift] := t*EFV__[transition__][nucPosInCodon__]; + ModelMatrixName[v-vshift][h-hshift] := t*EFV__[transition2__][nucPosInCodon__]; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t*EFV__[transition__][nucPosInCodon__]; + ModelMatrixName[v-vshift][h-hshift] := c*t*EFV__[transition2__][nucPosInCodon__]; + } + } + } + } + } + else + { + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + } + else + { + transition = v%16$4; + transition2= h%16$4; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + if (Abs(transition-transition2)%2) + { + ModelMatrixName[h-hshift][v-vshift] := kappa*t; + ModelMatrixName[v-vshift][h-hshift] := kappa*t; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := t; + ModelMatrixName[v-vshift][h-hshift] := t; + } + + } + else + { + if (Abs(transition-transition2)%2) + { + ModelMatrixName[h-hshift][v-vshift] := kappa*c*t; + ModelMatrixName[v-vshift][h-hshift] := kappa*c*t; + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t; + ModelMatrixName[v-vshift][h-hshift] := c*t; + } + } + } + } + } + } + } + return (modelType>1); +} + +/* ____________________________________________________________________________________________________________________*/ + +function PopulateModelMatrix2 (ModelMatrixName&, EFV) +{ + ModelMatrixName = {ModelMatrixDimension,ModelMatrixDimension}; + + hshift = 0; + + for (h=0; h<64; h=h+1) + { + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + continue; + } + vshift = hshift; + for (v = h+1; v<64; v=v+1) + { + diff = v-h; + if (_Genetic_Code[v]==10) + { + vshift = vshift+1; + continue; + } + if ((h$4==v$4)||((diff%4==0)&&(h$16==v$16))||(diff%16==0)) + { + if (h$4==v$4) + { + transition = v%4; + transition2= h%4; + } + else + { + if(diff%16==0) + { + transition = v$16; + transition2= h$16; + } + else + { + transition = v%16$4; + transition2= h%16$4; + } + } + if (_Genetic_Code[0][h]==_Genetic_Code[0][v]) + { + if (Abs(transition-transition2)%2) + { + ExecuteCommands ("ModelMatrixName[h-hshift][v-vshift] := kappa"+l+"*t;ModelMatrixName[v-vshift][h-hshift] := kappa"+l+"*t;"); + } + else + { + ModelMatrixName[h-hshift][v-vshift] := t; + ModelMatrixName[v-vshift][h-hshift] := t; + } + + } + else + { + if (Abs(transition-transition2)%2) + { + ExecuteCommands ("ModelMatrixName[h-hshift][v-vshift] := c*kappa"+l+"*t;ModelMatrixName[v-vshift][h-hshift] := c*kappa"+l+"*t;"); + } + else + { + ModelMatrixName[h-hshift][v-vshift] := c*t; + ModelMatrixName[v-vshift][h-hshift] := c*t; + } + } + } + } + } + return 1; +} +/* ____________________________________________________________________________________________________________________*/ + +function spawnLikelihood (kappaSharedOrNot) +{ + if (kappaSharedOrNot) + { + for (l=0; l=lowerSeqBound)&&(speciesIndex1)","Beta & (Normal>1)", + "0 & 2 (Normal>1)","0 & 2 (Normal>1)", + "3 Normal","3 Normal", + "RE:Log normal","Random Effects: Log normal", + "RE:Gamma","Random Effects: Gamma", + "RE:Discrete","Random Effects: 3 bin Discrete"); + + if (modelTypes[0]<0) + { + return; + } + for (rateType = 0; rateType < Rows(modelTypes)*Columns(modelTypes); rateType = rateType + 1) + { + modelType = modelTypes[rateType]; + chosenModelList[modelType] = 1; + } +} + +ChoiceList (shareType,"Choose parameter sharing mode",1,SKIP_NONE, + "All","Share dN/dS, transversion/transition ratio (if applicable) and base frequencies for all subsets.", + "dN/dS Only","Share only dN/dS. Transversion/transition ratio (if applicable) and base frequencies are separate for each subset." +); + +if (shareType<0) +{ + return; +} + +ChoiceList (modelType,"Choose a model",1,SKIP_NONE, + "MG94 1x4","Muse-Gaut 94 model with 4(-1) nucleotide frequency parameters (intra-codon position independent).", + "MG94 3x4","Muse-Gaut 94 model with 12(-3) nucleotide frequency parameters (intra-codon position specific).", + "GY94 1x4","Goldman-Yang 94 model with 4(-1) nucleotide frequency parameters (intra-codon position independent).", + "GY94 3x4","Goldman-Yang 94 model with 12(-3) nucleotide frequency parameters (intra-codon position specific)." +); + +if (modelType<0) +{ + return; +} + +if ((modelType==0)||(modelType==2)) +{ + if (shareType==0) + { + HarvestFrequencies (observedFreq,filteredData,1,1,0); + vectorOfFrequencies = BuildCodonFrequencies4 (observedFreq); + } + else + { + for (v=0; v1) +{ + global kappa = 2.; +} + +fprintf (stdout, "\n\n\nChoose the cutoff (0 to 1) for posterior of dN/dS>1 for a site to be considered under selective pressure:"); +fscanf (stdin, "Number",psigLevel); +if ((psigLevel <= 0)||(psigLevel>1)) +{ + psigLevel = .95; +} +fprintf (stdout, "\n>Using ", psigLevel , " cutoff\n"); + +fprintf (stdout, "\nChoose the number of categories in discretized distributions:"); +fscanf (stdin, "Number",categCount); +categCount = categCount$1; +if (categCount<=0) +{ + categCount = 8; +} + +fprintf (stdout, "\n>Using ", Format (categCount,0,0), " categories.\n"); + +SetDialogPrompt ("Write detailed results to:"); + +fprintf (PROMPT_FOR_FILE,CLEAR_FILE); + +global c = 1.; + +dummyVar = FrameText ("-","|",2,"SUMMARY TABLE"); +tableSeparator = "+-------------------------+----------------+---------------+-----+\n"; +fprintf (stdout, "\n\"p\" is the number of parameters in addition to the branch lengths.\nDetailed results including sites with dN/dS>1 will be written to\n",LAST_FILE_PATH,"\n\n"); +fprintf (stdout, tableSeparator, + "| MODEL (Number & Desc) | Log likelihood | dN/dS | p |\n", + tableSeparator); + +cachedBranchLengths = {{-1,-1}}; + +if (chosenModelList[0]>0) +{ + timer = Time(1); + fprintf (LAST_FILE_PATH,"\n*** RUNNING SINGLE RATE MODEL ***\n#################################\n"); + dummy = spawnLikelihood (shareType); + Optimize (res,lf); + fprintf (LAST_FILE_PATH,"\n>Done in ", Time(1)-timer, " seconds \n\n"); + fprintf (LAST_FILE_PATH,lf,"\n\n-----------------------------------\n\ndN/dS = ",c,"\n\n"); + + fprintf (stdout, "| 0. Single Rate Model | ",Format (res[1][0],14,6)," | ",Format (c,13,8)," | 0 |\n", + tableSeparator); + + timer = res[1][1]-res[1][2]; + cachedBranchLengths = {timer,1}; + + for (rateType = timer; rateType < Columns(cachedBranchLengths); rateType = rateType+1) + { + cachedBranchLengths[rateType-timer][0] = res [0][rateType]; + } +} + +for (rateType = 0; rateType < 16; rateType = rateType + 1) +{ + if (chosenModelList[rateType+1]==0) + { + continue; + } + timer = Time(1); + dummy = SetWDistribution (categCount); + dummy = spawnLikelihood (shareType); + + fprintf (LAST_FILE_PATH,"\n*** RUNNING MODEL ", Format(rateType+1,0,0), " (",ModelNames[rateType],") ***\n######################################\n"); + /*if (cachedBranchLengths[0][0]>=0.0) + { + v = ParameterCount[rateType]; + if (modelType>1) + { + v=v+1; + } + for (h=0; hDone in ",Time(1)-timer, " seconds \n\n", lf); + fprintf (stdout, "| "); + if (rateType<9) + { + fprintf (stdout," "); + } + fprintf (stdout, Format (rateType+1,0,0), ". ", ModelNames[rateType]); + for (dummy = Abs(ModelNames[rateType])+5; dummy<25; dummy = dummy+1) + { + fprintf (stdout," "); + } + dummy = GetDistributionParameters(psigLevel); + fprintf (stdout,"| ",Format (res[1][0],14,6)," | ",Format (dummy,13,8)," | ", + Format(ParameterCount[rateType],0,0)," |\n",tableSeparator); + + if (modelType>1) + { + kappa = 2.; + } +} diff --git a/samples/HyPhy/MatrixIndexing.bf b/samples/HyPhy/MatrixIndexing.bf new file mode 100755 index 00000000..aa1344d4 --- /dev/null +++ b/samples/HyPhy/MatrixIndexing.bf @@ -0,0 +1 @@ +fprintf (stdout, "\n1). Spawning a zero-populated 5x6 matrix and setting it's values to random numbers in [0,1].\n"); aMatrix = {5,6}; aMatrix = aMatrix ["Random(0,1)"]; fprintf (stdout, aMatrix, "\n"); fprintf (stdout, "\n2). Accessing a second-row third-column element and a random element.\n\n"); r = Random (0, Rows(aMatrix))$1; c = Random (0, Columns(aMatrix))$1; fprintf (stdout, "matrix[1][2]=", aMatrix[1][2], "\nmatrix[", r , "][" , c, "]=", aMatrix[r][c], "\n"); fprintf (stdout, "\n3). Accessing the fourth row.\n\n"); fprintf (stdout, "matrix[3][-1]=\n", aMatrix[3][-1],"\n"); fprintf (stdout, "\n4). Accessing the first column.\n\n"); fprintf (stdout, "matrix[-1][0]=\n", aMatrix[-1][0],"\n"); fprintf (stdout, "\n5). Populating a matrix template (below the diagonal).\n\n"); template={5,6}; template=template["_MATRIX_ELEMENT_ROW_>_MATRIX_ELEMENT_COLUMN_"]; fprintf (stdout, template ,"\n"); fprintf (stdout, "\n6). Extracting (by row) matrix elements using the template.\n\n"); fprintf (stdout, aMatrix[template] ,"\n"); fprintf (stdout, "\n7). Extracting a submatrix: top left corner at (1,1) - bottom right corner at (3,2).\n\n"); fprintf (stdout, "matrix[{{1,1}}][{{3,2}}]=\n", aMatrix[{{1,1}}][{{3,2}}],"\n"); fprintf (stdout, "\n8). Returning a matrix in which all elements are squared and above diagonal elements are further increased by 1.\n\n"); fprintf (stdout, "\n", aMatrix["_MATRIX_ELEMENT_VALUE_^2+(_MATRIX_ELEMENT_ROW_<_MATRIX_ELEMENT_COLUMN_)"],"\n"); \ No newline at end of file diff --git a/samples/HyPhy/MolecularClock.bf b/samples/HyPhy/MolecularClock.bf new file mode 100644 index 00000000..92606d2d --- /dev/null +++ b/samples/HyPhy/MolecularClock.bf @@ -0,0 +1,147 @@ +#include "molclockBootstrap.bf"; + +RESTORE_GLOBALS = 1; +_DO_TREE_REBALANCE_ = 0; +VERBOSITY_LEVEL = -1; + +function RestoreGlobalValues (lfIndex) +{ + if (lfIndex==0) + { + for (i=0;i1) +{ + ChoiceList (parameter2Constrain, "Parameter(s) to constrain:",1,SKIP_NONE,LAST_MODEL_PARAMETER_LIST); + + if (parameter2Constrain<0) + { + return; + } + if (parameter2Constrain==0) + { + parameter2ConstrainString = ""; + for (parameter2Constrain=Rows("LAST_MODEL_PARAMETER_LIST")-1; parameter2Constrain; parameter2Constrain = parameter2Constrain-1) + { + GetString (funnyString,LAST_MODEL_PARAMETER_LIST,parameter2Constrain); + parameter2ConstrainString = parameter2ConstrainString + funnyString + ","; + } + GetString (funnyString,LAST_MODEL_PARAMETER_LIST,0); + parameter2ConstrainString = parameter2ConstrainString + funnyString; + } + else + { + GetString (parameter2ConstrainString,LAST_MODEL_PARAMETER_LIST,parameter2Constrain-1); + } +} +else +{ + GetString (parameter2ConstrainString,LAST_MODEL_PARAMETER_LIST,0); +} + +timer = Time(0); + +LikelihoodFunction lf = (filteredData,givenTree); + +Optimize (res,lf); + +separator = "*-----------------------------------------------------------*"; + +fprintf (stdout, "\n", separator, "\nRESULTS WITHOUT THE CLOCK:\n",lf); + +fullModelLik = res[1][0]; + +fullVars = res[1][1]; + +/* now specify the constraint */ + +Tree clockTree = treeString; + +ExecuteCommands ("MolecularClock (clockTree,"+parameter2ConstrainString+");"); + +LikelihoodFunction lfConstrained = (filteredData, clockTree); + +USE_LAST_RESULTS = 1; +Optimize (res1,lfConstrained); +USE_LAST_RESULTS = 0; + +SAVE_GLOBALS = res1[1][2]; + +if (SAVE_GLOBALS) +{ + globalSpoolMatrix = {1,SAVE_GLOBALS}; + + for (i=0;idS in the data sets? + - Do the sites under positive selection share the same dN/dS? + - Two previous tests combined +*/ + +RequireVersion ("0.9920061001"); + +/*---------------------------------------------------------------------------------------------------------------------------------------------------*/ + +function BuildCodonFrequencies (obsF) +{ + PIStop = 1.0; + result = {ModelMatrixDimension,1}; + hshift = 0; + + for (h=0; h<64; h=h+1) + { + first = h$16; + second = h%16$4; + third = h%4; + if (_Genetic_Code[h]==10) + { + hshift = hshift+1; + PIStop = PIStop-obsF[first][0]*obsF[second][1]*obsF[third][2]; + continue; + } + result[h-hshift][0]=obsF[first][0]*obsF[second][1]*obsF[third][2]; + } + return result*(1.0/PIStop); +} + +/*---------------------------------------------------------------------------------------------------------------------------------------------------*/ + +function ReportDistributionString (rc,freqStrMx,infix, skip0) +{ + distroString = ""; + distroString * 1024; + + reportMx = {rc,4}; + + distroString * (" dN/dS dS dN Prob\n"); + for (mi=0; mi 0) + { + distroString * (Format(reportMx[mi][2],8,3)+Format(reportMx[mi][0],8,3)+Format(reportMx[mi][1],8,3)+Format(reportMx[mi][3],10,3)+"\n"); + } + } + + distroString * 0; + return distroString; +} + +/*---------------------------------------------------------------------------------------------------------------------------------------------------*/ + +function DefineNucleotideBiases (dummy) +{ + ModelTitle = "MG94x"+modelDesc[0]; + modelConstraintString = ""; + + for (customLoopCounter2=0; customLoopCounter2<6; customLoopCounter2=customLoopCounter2+1) + { + if (rateBiasTerms[customLoopCounter2] != "1") + { + ExecuteCommands ("global " + rateBiasTerms[customLoopCounter2] + "=1;"); + } + } + + for (customLoopCounter2=1; customLoopCounter2<6; customLoopCounter2=customLoopCounter2+1) + { + for (customLoopCounter=0; customLoopCounter0.0000001;global NS_"+infix+"0 = 0.1;"); + + for (mi=1; mi0.0000001;\nglobal NS_"+infix+mi+";\n"); + if (randomizeInitValues) + { + categDef1*("global P_"+infix+mi+" = Random(0.05,0.95);\nP_"+infix+mi+":<1;\n"); + categDef1*("global S_"+infix+mi+" = Random(0.05,1);"); + } + else + { + categDef1*("global P_"+infix+mi+" = 1/"+(resp+1-mi)+";\nP_"+infix+mi+":<1;\n"); + } + } + + freqStrMx = {resp,1}; + if (resp>1) + { + freqStrMx[0] = "P_"+infix+"1"; + + for (mi=1; mi1;R_"+infix+mi+"="+Random(1.05,10)+";"); + } + } + else + { + for (mi=respN+respP; mi1;R_"+infix+mi+"=2+"+mi+";"); + } + } + } + else + { + if (randomizeInitValues) + { + for (mi=0; mi 1) + { + lfParts = lfParts + ",filteredData_" + fileID + "," + treeID; + } + } +} + +lfParts * 0; +ExecuteCommands (lfParts + "," + lfDef1 + ");"); + +sumPath = resToPath + ".summary"; + +treeBranchParameters = 0; +for (fileID = 1; fileID <= fileCount; fileID = fileID + 1) +{ + ExecuteCommands ("treeBranchParameters = treeBranchParameters + BranchCount(tree_" + fileID + "_0) + TipCount(tree_" + fileID + "_0);"); +} + +/*-------------- INDEPENDENT DISTRIBUTIONS ------------------*/ + +sop = Max(OPTIMIZATION_PRECISION,0.001); + +fprintf (stdout, "Running simpler distribution approximations to ensure good convergence...\n"); + +OPTIMIZATION_PRECISION = 0.1; + +P_1_1 := 0;P_1_2 := 0;P_1_3 := 0; +P_2_1 := 0;P_2_2 := 0;P_2_3 := 0; + +S_1_0 := 1;S_1_1 := 1;S_1_2 := 1;S_1_3 := 1; +S_2_0 := 1;S_2_1 := 1;S_2_2 := 1;S_2_3 := 1; +R_1_0 := 1;R_1_1 := 1;R_1_2 := 1; +R_2_0 := 1;R_2_1 := 1;R_2_2 := 1; + +Optimize (res,lf); +USE_LAST_RESULTS = 1; +SKIP_CONJUGATE_GRADIENT = 1; + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",1); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",1); + +fprintf (stdout, "\n*** Done with pass 1. Log(L) = ", Format(res[1][0],10,3), " *** \n"); +fprintf (stdout, "Approximate rates for data set 1:\n", d1); +fprintf (stdout, "Approximate rates for data set 2:\n", d2); + +codonFactor_1 := codonFactor_1__; +codonFactor_2 := codonFactor_2__; + +AC_1 := AC_1__; AT_1 := AT_1__; CG_1 := CG_1__; CT_1 := CT_1__; GT_1 := GT_1__; +AC_2 := AC_2__; AT_2 := AT_2__; CG_2 := CG_2__; CT_2 := CT_2__; GT_2 := GT_2__; + + + +fprintf (stdout, "\nGateaux sampling positively selected directions\n"); + +P_1_1 = 2/filteredData_1.sites; +S_1_3 = 1; + +baseLineLL = res[1][0]; +LFCompute (lf,LF_START_COMPUTE); +bestDiff = -1e100; +bestAlpha = 1; +bestBeta = 1; +bestLL = -1e100; + +step = 0.1; +step2 = 0.25; +v1 = 0.05; + +for (v1c = 0; v1c < 10; v1c = v1c + 1) +{ + v2 = v1+step; + for (v2c = 0; v2c < 20; v2c = v2c+1) + { + checkASample ("1_0"); + v2 = v2 + step2; + } + v1 = v1+step; +} + +S_1_0 = bestAlpha; +R_1_0 = bestBeta; +bestAlpha = 1; +bestBeta = 1; + +if (bestDiff <= 0) +{ + P_1_1 = 0; +} +saveBD = bestDiff; + +P_2_1 = 1/filteredData_2.sites; +S_2_3 = 1; + +v1 = 0.05; +for (v1c = 0; v1c < 10; v1c = v1c + 1) +{ + v2 = v1+step; + for (v2c = 0; v2c < 20; v2c = v2c+1) + { + checkASample ("2_0"); + v2 = v2 + step2; + } + v1 = v1+step; +} + +LFCompute (lf,LF_DONE_COMPUTE); + +S_2_0 = bestAlpha; +R_2_0 = bestBeta; + +if (bestDiff <= saveBD) +{ + P_2_1 = 0; +} + +if (bestDiff > 0) +{ + fprintf (stdout, "\nFound a likelihood improvement in the direction (", S_1_0, ",", S_1_0*R_1_0, "), (", S_2_0, ",", S_2_0*R_2_0, "), ",bestDiff," likelihood points\n"); +} + + +Optimize (res,lf); + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",1); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",1); + +fprintf (stdout, "\n*** Done with pass 2. Log(L) = ", Format(res[1][0],10,3), " *** \n"); +fprintf (stdout, "Approximate rates for data set 1:\n", d1); +fprintf (stdout, "Approximate rates for data set 2:\n", d2); + + +fprintf (stdout, "\nGateaux sampling neutral directions\n"); + +baseLineLL = res[1][0]; +LFCompute (lf,LF_START_COMPUTE); + +P_1_2 = 1/(filteredData_1.sites*(1-P_1_1)); +bestDiff = -1e100; +bestAlpha = 1; +step = 0.02; +v1 = 0; +for (v1c = 0; v1c < 50; v1c = v1c + 1) +{ + v1 = v1 + step; + v2 = v1; + + checkASample ("1_1"); +} + + +S_1_1 = bestAlpha; +bestAlpha = 1; + +if (bestDiff <= 0) +{ + P_1_2 = 0; +} +saveBD = bestDiff; +R_1_1 := 1; + +P_2_2 = 1/(filteredData_2.sites*(1-P_2_1)); + +v1 = 0; +for (v1c = 0; v1c < 50; v1c = v1c + 1) +{ + v1 = v1 + step; + v2 = v1; + + checkASample ("2_1"); +} + + +LFCompute (lf,LF_DONE_COMPUTE); + +S_2_1 = bestAlpha; +R_2_1 := 1; + +if (bestDiff <= saveBD) +{ + P_2_2 = 0; +} + +if (bestDiff > 0) +{ + fprintf (stdout, "\nFound a likelihood improvement in the direction (", S_1_1, ",", S_1_1, "), (", S_2_1, ",", S_2_1, "), ",bestDiff," likelihood points\n"); +} + +Optimize (res,lf); +d1 = ReportDistributionString(4,freqStrMx_1,"1_",1); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",1); + +fprintf (stdout, "\n*** Done with pass 3. Log(L) = ", Format(res[1][0],10,3), " *** \n"); +fprintf (stdout, "Approximate rates for data set 1:\n", d1); +fprintf (stdout, "Approximate rates for data set 2:\n", d2); + +fprintf (stdout, "\nGateaux sampling negative selected directions\n"); + + +baseLineLL = res[1][0]; +LFCompute (lf,LF_START_COMPUTE); +bestDiff = -1e100; +bestAlpha = 1; +bestBeta = 1; + + +step = 1/16; +v1 = 0; +P_1_3 = 2/(filteredData_1.sites*(1-P_1_1)*(1-P_1_2)); +S_1_2 = 1; +for (v1c = 0; v1c < 15; v1c = v1c + 1) +{ + v1 = v1+step; + v2 = step/2; + for (v2c = 0; v2c < v1c; v2c = v2c+1) + { + checkASample ("1_2"); + v2 = v2 + step; + } +} + + +S_1_2 = bestAlpha; +R_1_2 = bestBeta; +bestAlpha = 1; +bestBeta = 1; + +if (bestDiff <= 0) +{ + P_1_3 = 0; +} +saveBD = bestDiff; + + +v1 = 0; +P_2_3 = 2/(filteredData_2.sites*(1-P_2_1)*(1-P_2_2)); +S_2_2 = 1; +for (v1c = 0; v1c < 15; v1c = v1c + 1) +{ + v1 = v1+step; + v2 = step/2; + for (v2c = 0; v2c < v1c; v2c = v2c+1) + { + checkASample ("2_2"); + v2 = v2 + step; + } +} + +LFCompute (lf,LF_DONE_COMPUTE); + +S_2_2 = bestAlpha; +R_2_2 = bestBeta; + +if (bestDiff <= saveBD) +{ + P_2_2 = 0; +} + +if (bestDiff > 0) +{ + fprintf (stdout, "\nFound a likelihood improvement in the direction (", S_1_2, ",", S_1_2*R_1_2, "), (", S_2_2, ",", S_2_2*R_2_2, "), ",bestDiff," likelihood points\n"); +} + +AC_1 = AC_1; AT_1 = AT_1; CG_1 = CG_1; CT_1 = CT_1; GT_1 = GT_1; +AC_2 = AC_2; AT_2 = AT_2; CG_2 = CG_2; CT_2 = CT_2; GT_2 = GT_2; + +if (Abs(modelConstraintString_1)) +{ + ExecuteCommands (modelConstraintString_1); +} +if (Abs(modelConstraintString_2)) +{ + ExecuteCommands (modelConstraintString_2); +} + +codonFactor_1 = codonFactor_1; +codonFactor_2 = codonFactor_2; + + +GetString (paramList, lf, -1); +degF = Columns(paramList["Global Independent"]) + 14 - 2*branchLengths + treeBranchParameters; + +OPTIMIZATION_PRECISION = sop; +fprintf (stdout, "Running an independent distributions model fit (", degF, " parameters)...\n"); +Optimize (res,lf); +LogL = res[1][0]; + +AIC = 2*(degF-LogL); +AICc = 2*(degF*totalCodonCount/(totalCodonCount-degF-1) - LogL); + +fprintf (stdout, "\n\nIndependent distributions model fit summary\n", + "\nLog likelihood:", Format (LogL, 15, 5), + "\nParameters :", Format (degF, 15, 0), + "\nAIC :", Format (AIC, 15, 5), + "\nc-AIC :", Format (AICc, 15, 5),"\n" +); + +fprintf (sumPath,CLEAR_FILE,"Independent distributions model fit summary\n", + "\nLog likelihood:", Format (LogL, 15, 5), + "\nParameters :", Format (degF, 15, 0), + "\nAIC :", Format (AIC, 15, 5), + "\nc-AIC :", Format (AICc, 15, 5),"\n"); + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",0); +d2 = ReportDistributionString(4,freqStrMx_2,"2_",0); + +fprintf (stdout, "Inferred rates for data set 1:\n", d1); +fprintf (sumPath, "Inferred rates for data set 1:\n", d1); +fprintf (stdout, "Inferred rates for data set 2:\n", d2); +fprintf (sumPath, "Inferred rates for data set 2:\n", d2); + +LIKELIHOOD_FUNCTION_OUTPUT = 6; +fprintf (resToPath,CLEAR_FILE,lf); + + +/*-------------- SHARED POSITIVE SELECTION STRENGTHS ------------------*/ + +for (k=0; k=respP+respN) + { + ExecuteCommands ("R_1_"+k+"=0.5(R_1_"+k+"+R_2_"+k+");"); + } + ExecuteCommands ("S_2_"+k+":=S_1_"+k+";R_2_"+k+":=R_1_"+k+";"); +} +for (k=1; k<=resp; k=k+1) +{ + ExecuteCommands ("P_1_"+k+"=0.5(P_1_"+k+"+P_2_"+k+");"); + ExecuteCommands ("P_2_"+k+":=P_1_"+k+";"); +} + +GetString (paramList, lf, -1); +degFJ = Columns(paramList["Global Independent"]) + 14 - 2*branchLengths + treeBranchParameters; +fprintf (stdout, "\nRunning a shared distributions model fit (", degFJ, " parameters)...\n"); + +Optimize (res_J,lf); +LogLJ = res_J[1][0]; + +AICJ = 2*(degFJ-LogLJ); +AICcJ = 2*(degFJ*totalCodonCount/(totalCodonCount-degFJ-1) - LogLJ); + +fprintf (stdout, "\n\nShared distributions model fit summary\n", + "\nLog likelihood:", Format (LogLJ, 15, 5), + "\nParameters :", Format (degFJ, 15, 0), + "\nAIC :", Format (AICJ, 15, 5), + "\nc-AIC :", Format (AICcJ, 15, 5),"\n" +); + +fprintf (sumPath, "\n\nShared distributions model fit summary\n", + "\nLog likelihood:", Format (LogLJ, 15, 5), + "\nParameters :", Format (degFJ, 15, 0), + "\nAIC :", Format (AICJ, 15, 5), + "\nc-AIC :", Format (AICcJ, 15, 5),"\n" +); + +d1 = ReportDistributionString(4,freqStrMx_1,"1_",0); + +fprintf (stdout, "Inferred joint rates:\n", d1); +fprintf (sumPath, "Inferred joint rates:\n", d1); + +fpath = resToPath + ".JointAll"; +LIKELIHOOD_FUNCTION_OUTPUT = 6; +fprintf (fpath,CLEAR_FILE,lf); + +USE_LAST_RESULTS = 0; +SKIP_CONJUGATE_GRADIENT = 0; +LIKELIHOOD_FUNCTION_OUTPUT = 2; + +fprintf (stdout, "\nDistribution comparison tests\n", + "\n\tAre the distributions different?", + "\n\t\tLR = ", Format (2*(LogL-LogLJ),10,3), + " DF = ", degF-degFJ, + " p = ", Format(1-CChi2(2*(LogL-LogLJ), degF-degFJ),8,3), "\n"); + +fprintf (stdout, "\n\tAre selective regimes (dN/dS and proportions) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSH),10,3), + " DF = ", degF-degFPSH, + " p = ", Format(1-CChi2(2*(LogL-LogLPSH), degF-degFPSH),8,3), "\n"); + +fprintf (stdout, "\n\tAre selection strengths (dN/dS) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSS),10,3), + " DF = ", degF-degFPSS, + " p = ", Format(1-CChi2(2*(LogL-LogLPSS), degF-degFPSH),8,3), "\n"); + +fprintf (stdout, "\n\tAre the proportions of codons under selection different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSP),10,3), + " DF = ", degF-degFPSP, + " p = ", Format(1-CChi2(2*(LogL-LogLPSP), degF-degFPSP),8,3), "\n"); + +fprintf (sumPath, "\n\nDistribution comparison tests\n", + "\n\tAre the distributions different?", + "\n\t\tLR = ", Format (2*(LogL-LogLJ),10,3), + " DF = ", degF-degFJ, + " p = ", Format(1-CChi2(2*(LogL-LogLJ), degF-degFJ),8,3), "\n"); + +fprintf (sumPath, "\n\tAre selective regimes (dN/dS and proportions) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSH),10,3), + " DF = ", degF-degFPSH, + " p = ", Format(1-CChi2(2*(LogL-LogLPSH), degF-degFPSH),8,3), "\n"); + +fprintf (sumPath, "\n\tAre selection strengths (dN/dS) different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSS),10,3), + " DF = ", degF-degFPSS, + " p = ", Format(1-CChi2(2*(LogL-LogLPSS), degF-degFPSH),8,3), "\n"); + +fprintf (sumPath, "\n\tAre the proportions of codons under selection different?", + "\n\t\tLR = ", Format (2*(LogL-LogLPSP),10,3), + " DF = ", degF-degFPSP, + " p = ", Format(1-CChi2(2*(LogL-LogLPSP), degF-degFPSP),8,3), "\n"); +/*------------------------------------------------------------------------------------------------------------*/ + +function checkASample (whichRate) +{ + ExecuteCommands ("S_"+whichRate+"=v1;R_"+whichRate+"=v2/v1;"); + LFCompute (lf,res_n); + localDiff = res_n-baseLineLL; + if (localDiff > bestDiff) + { + bestDiff = localDiff; + bestAlpha = v1; + bestBeta = v2/v1; + } + return 0; +} diff --git a/samples/HyPhy/hyphy_cmds.bf b/samples/HyPhy/hyphy_cmds.bf new file mode 100644 index 00000000..7a2189f9 --- /dev/null +++ b/samples/HyPhy/hyphy_cmds.bf @@ -0,0 +1,11003 @@ +INTEGRATION_PRECISION_FACTOR = 5.0e-6; +END_OF_FILE = 0; +LIKELIHOOD_FUNCTION_OUTPUT = 5; +ACCEPT_BRANCH_LENGTHS = 1; +#include "/home/oashenbe/.local/lib/python2.7/site-packages/phyloExpCM/data//NTsCodonsAAs.ibf"; +fprintf(stdout, "Running HYPHY script hyphy_cmds.bf...\n"); +DataSet data = ReadDataFile("_codenames_Aligned_NPs_Swine.fasta"); +assert(data.sites % 3 == 0, "Sequence lengths not multiples of 3"); +totalcodons = data.sites $ 3; +fprintf(stdout, "Read from _codenames_Aligned_NPs_Swine.fasta a set of ", data.species, " sequences consisting of ", data.sites, " nucleotides corresponding to ", totalcodons, " codons each.\n"); +fprintf(stdout, "The analysis will include the following 498 codon positions (sequential numbering starting with 1):\n1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498\n"); +assert(totalcodons >= 498, "Largest included site exceeds sequence length"); +DataSetFilter codonfilter = CreateFilter(data, 3, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493", "", "TAA,TAG,TGA"); +assert(data.species == codonfilter.species, "species number mismatch"); +assert(codonfilter.sites == 498, "Codon filtered data does not contain the right number of sites"); +fprintf(stdout, "Created a codon filter of ", codonfilter.sites, " sites.\n"); +assert(totalcodons - (totalcodons - 498) - 0 == codonfilter.sites, "Codon filtered data is not the expected length. Do sequences contain stop codons?"); +CheckCodonFilter("codonfilter"); +fprintf(stdout, "Reading tree string from _codenames_codonphyml_Swine_tree.newick.\n"); +fscanf("_codenames_codonphyml_Swine_tree.newick", String, treestring); +fprintf(stdout, "Using the Goldman Yang 1994 (GY94) codon model...\n"); +#include "/home/oashenbe/.local/lib/python2.7/site-packages/phyloExpCM/data//CF3x4.ibf"; +#include "/home/oashenbe/.local/lib/python2.7/site-packages/phyloExpCM/data//GY94.ibf"; +CreateGY94Model("CF3x4", "global", "global", 4, 4, 1); +UseModel(model); +ExecuteCommands("Tree tree = treestring;") +assert(codonfilter.species == TipCount(tree), "Number of species and number of tips differ"); +LikelihoodFunction likelihood = (codonfilter, tree); +fprintf(stdout, "\nNow optimizing the likelihood function...\n"); +Optimize(mlestimates, likelihood) +fprintf(stdout, "Completed likelihood optimization. Optimized ", mlestimates[1][1], " indpendent parameters and ", mlestimates[1][2], " shared parameters to obtain a log likelihood of ", mlestimates[1][0], ".\n"); +fprintf(stdout, "Writing the results to hyphy_output.txt.\n"); +fprintf("hyphy_output.txt", "Log likelihood: ", mlestimates[1][0], "\nindependent parameters (includes branch lengths): ", mlestimates[1][1], "\nshared parameters: ", mlestimates[1][2], "\nnumber of branch lengths: ", TipCount(tree) + BranchCount(tree), "\nnumber of tip nodes: ", TipCount(tree), "\nnumber of internal branches: ", BranchCount(tree), "\n",likelihood); +fprintf(stdout, "\nNow computing per-site likelihoods.\n"); +fprintf(stdout, "\nFirst fixing all global variables to the maximum-likelihood values estimated on the entire tree.\n"); +GetString(associativearray, likelihood, -1); +globalindependentvariables = associativearray["Global Independent"]; +for (ivariable=0; ivariable * + * All rights reserved. * + * * + * License: BSD * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +package jflex; + +import java_cup.runtime.Symbol; +import java.io.*; +import java.util.Stack; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.HashMap; +import jflex.unicode.UnicodeProperties; + +%% + +%final +%public +%class LexScan +%implements sym, java_cup.runtime.Scanner +%function next_token + +%type Symbol +%unicode + +%column +%line + +%eofclose + +%state COMMENT, STATELIST, MACROS, REGEXPSTART +%state REGEXP, JAVA_CODE, STATES, STRING_CONTENT +%state CHARCLASS, COPY, REPEATEXP, EATWSPNL +%state CTOR_ARG, REGEXP_CODEPOINT_SEQUENCE +%state STRING_CODEPOINT_SEQUENCE, CHARCLASS_CODEPOINT + +%inputstreamctor false + +%cupdebug + +%{ + int balance = 0; + int commentbalance = 0; + int action_line = 0; + int bufferSize = 16384; + + File file; + Stack files = new Stack(); + + StringBuilder userCode = new StringBuilder(); + + String classCode; + String initCode; + String initThrow; + String eofCode; + String eofThrow; + String lexThrow; + String eofVal; + String scanErrorException; + String cupSymbol = "sym"; + + StringBuilder actionText = new StringBuilder(); + StringBuilder string = new StringBuilder(); + + private UnicodeProperties unicodeProperties; + + boolean charCount; + boolean lineCount; + boolean columnCount; + boolean cupCompatible; + boolean cup2Compatible; + boolean cupDebug; + boolean isInteger; + boolean isIntWrap; + boolean isYYEOF; + boolean notUnix; + boolean isPublic; + boolean isFinal; + boolean isAbstract; + boolean bolUsed; + boolean standalone; + boolean debugOption; + boolean caseless; + boolean inclusive_states; + boolean eofclose; + boolean isASCII; + // TODO: In the version of JFlex after 1.6, the InputStream ctor + // TODO: will never be emitted, and this option will cease to exist. + boolean emitInputStreamCtor = Options.emitInputStreamCtor; + + String isImplementing; + String isExtending; + String className = "Yylex"; + String functionName; + String tokenType; + String visibility = "public"; + + List ctorArgs = new ArrayList(); + List ctorTypes = new ArrayList(); + + LexicalStates states = new LexicalStates(); + + List actions = new ArrayList(); + + private int nextState; + + boolean macroDefinition; + + Timer t = new Timer(); + + // CharClasses.init() is delayed until UnicodeProperties.init() has been called, + // since the max char code won't be known until then. + private CharClasses charClasses = new CharClasses(); + + public CharClasses getCharClasses() { + return charClasses; + } + + public int currentLine() { + return yyline; + } + + public void setFile(File file) { + this.file = file; + } + + private Symbol symbol(int type, Object value) { + return new Symbol(type, yyline, yycolumn, value); + } + + private Symbol symbol(int type) { + return new Symbol(type, yyline, yycolumn); + } + + // updates line and column count to the beginning of the first + // non whitespace character in yytext, but leaves yyline+yycolumn + // untouched + private Symbol symbol_countUpdate(int type, Object value) { + int lc = yyline; + int cc = yycolumn; + String text = yytext(); + + for (int i=0; i < text.length(); i++) { + char c = text.charAt(i); + + if (c != '\n' && c != '\r' && c != ' ' && c != '\t' ) + return new Symbol(type, lc, cc, value); + + if (c == '\n') { + lc++; + cc = 0; + } + else + cc++; + } + + return new Symbol(type, yyline, yycolumn, value); + } + + private String makeMacroIdent() { + String matched = yytext().trim(); + return matched.substring(1, matched.length()-1).trim(); + } + + public static String conc(Object a, Object b) { + if (a == null && b == null) return null; + if (a == null) return b.toString(); + if (b == null) return a.toString(); + + return a.toString()+b.toString(); + } + + public static String concExc(Object a, Object b) { + if (a == null && b == null) return null; + if (a == null) return b.toString(); + if (b == null) return a.toString(); + + return a.toString()+", "+b.toString(); + } + + public UnicodeProperties getUnicodeProperties() { + return unicodeProperties; + } + + private void populateDefaultVersionUnicodeProperties() { + try { + unicodeProperties = new UnicodeProperties(); + } catch (UnicodeProperties.UnsupportedUnicodeVersionException e) { + throw new ScannerException + (file, ErrorMessages.UNSUPPORTED_UNICODE_VERSION, yyline); + } + charClasses.init + (Options.jlex ? 127 : unicodeProperties.getMaximumCodePoint(), this); + } + + private void includeFile(String filePath) { + File f = new File(file.getParentFile(), filePath); + if ( !f.canRead() ) + throw new ScannerException(file,ErrorMessages.NOT_READABLE, yyline); + // check for cycle + if (files.search(f) > 0) + throw new ScannerException(file,ErrorMessages.FILE_CYCLE, yyline); + try { + yypushStream( new FileReader(f) ); + files.push(file); + file = f; + Out.println("Including \""+file+"\""); + } + catch (FileNotFoundException e) { + throw new ScannerException(file,ErrorMessages.NOT_READABLE, yyline); + } + } +%} + +%init{ + states.insert("YYINITIAL", true); +%init} + + +Digit = [0-9] +HexDigit = [0-9a-fA-F] +OctDigit = [0-7] + +Number = {Digit}+ +HexNumber = \\ x {HexDigit} {2} +OctNumber = \\ [0-3]? {OctDigit} {1, 2} + +// Unicode4 can encode chars only in the BMP with the 16 bits provided by its +// 4 hex digits. +Unicode4 = \\ u {HexDigit} {4} + +// Unicode6 can encode all Unicode chars, both in the BMP and in the +// supplementary planes -- only 21 bits are required as of Unicode 5.0, +// but its six hex digits provide 24 bits. +Unicode6 = \\ U {HexDigit} {6} + +// see http://www.unicode.org/unicode/reports/tr18/ +WSP = [ \t\b] +WSPNL = [\u2028\u2029\u000A\u000B\u000C\u000D\u0085\t\b\ ] +NWSPNL = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\t\b\ ] +NL = [\u2028\u2029\u000A\u000B\u000C\u000D\u0085] | \u000D\u000A +NNL = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085] + +Ident = {IdentStart} {IdentPart}* +QualIdent = {Ident} ( {WSP}* "." {WSP}* {Ident} )* +QUIL = {QualIdent} ( {WSP}* "," {WSP}* {QualIdent} )* +Array = "[" {WSP}* "]" +ParamPart = {IdentStart}|{IdentPart}|"<"|">"|","|{WSP}|"&"|"?"|"." +GenParam = "<" {ParamPart}+ ">" +ClassT = {Ident} ({WSP}* {GenParam})? +QClassT = {QualIdent} ({WSP}* {GenParam})? +ArrType = ({GenParam} {WSP}*)? {QClassT} ({WSP}* {Array})* + +IdentStart = [:jletter:] +IdentPart = [:jletterdigit:] + +JFlexCommentChar = [^*/]|"/"+[^*/]|"*"+[^*/] +JFlexComment = {JFlexCommentChar}+ + +/* Java comments */ +JavaComment = {TraditionalComment}|{EndOfLineComment} +TraditionalComment = "/*"{CommentContent}\*+"/" +EndOfLineComment = "//".*{NL} + +CommentContent = ([^*]|\*+[^*/])* + +StringCharacter = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\"\\] + +CharLiteral = \'([^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\'\\]|{EscapeSequence})\' +StringLiteral = \"({StringCharacter}|{EscapeSequence})*\" + +EscapeSequence = \\[^\u2028\u2029\u000A\u000B\u000C\u000D\u0085]|\\+u{HexDigit}{4}|\\[0-3]?{OctDigit}{1,2} + +/* \\(b|t|n|f|r|\"|\'|\\|[0-3]?{OctDigit}{1,2}|u{HexDigit}{4}) */ + +JavaRest = [^\{\}\"\'/]|"/"[^*/] +JavaCode = ({JavaRest}|{StringLiteral}|{CharLiteral}|{JavaComment})+ + +DottedVersion = [1-9][0-9]*(\.[0-9]+){0,2} + +%% + + { + "%%".*{NL}? { + t.start(); + yybegin(MACROS); + macroDefinition = true; + return symbol(USERCODE,userCode); + } + .*{NL} | .+ { userCode.append(yytext()); } + <> { return symbol(EOF); } +} + + ("%{"|"%init{"|"%initthrow{"|"%eof{"|"%eofthrow{"|"%yylexthrow{"|"%eofval{").*{NL} + { string.setLength(0); yybegin(COPY); } + { + "%}".*{NL} { classCode = conc(classCode,string); yybegin(MACROS); } + "%init}".*{NL} { initCode = conc(initCode,string); yybegin(MACROS); } + "%initthrow}".*{NL} { initThrow = concExc(initThrow,string); yybegin(MACROS); } + "%eof}".*{NL} { eofCode = conc(eofCode,string); yybegin(MACROS); } + "%eofthrow}".*{NL} { eofThrow = concExc(eofThrow,string); yybegin(MACROS); } + "%yylexthrow}".*{NL} { lexThrow = concExc(lexThrow,string); yybegin(MACROS); } + "%eofval}".*{NL} { eofVal = string.toString(); yybegin(MACROS); } + + .*{NL} { string.append(yytext()); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); } +} + + + ^"%s" ("tate" "s"?)? {WSP}+ { inclusive_states = true; yybegin(STATELIST); } + ^"%x" ("state" "s"?)? {WSP}+ { inclusive_states = false; yybegin(STATELIST); } + { + {Ident} { states.insert(yytext(),inclusive_states); } + ([\ \t]*","[\ \t]*)|([\ \t]+) { } + {NL} { yybegin(MACROS); } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); } +} + + { + "%char" { charCount = true; } + "%line" { lineCount = true; } + "%column" { columnCount = true; } + "%byaccj" { isInteger = true; + if (eofVal == null) + eofVal = "return 0;"; + eofclose = true; + } + "%cup2" { cup2Compatible = true; + isImplementing = concExc(isImplementing, "Scanner"); + lineCount = true; + columnCount = true; + if (functionName == null) + functionName = "readNextTerminal"; + if (tokenType == null) + tokenType = "ScannerToken"; + if (eofVal == null) + eofVal = "return token(SpecialTerminals.EndOfInputStream);"; + if (!Options.jlex) eofclose = true; + return symbol(UNICODE); // %unicode + } + "%cup" { cupCompatible = true; + isImplementing = concExc(isImplementing, "java_cup.runtime.Scanner"); + if (functionName == null) + functionName = "next_token"; + if (tokenType == null) + tokenType = "java_cup.runtime.Symbol"; + if (eofVal == null) + eofVal = "return new java_cup.runtime.Symbol("+cupSymbol+".EOF);"; + if (!Options.jlex) eofclose = true; + } + "%cupsym"{WSP}+{QualIdent} {WSP}* { cupSymbol = yytext().substring(8).trim(); + if (cupCompatible) Out.warning(ErrorMessages.CUPSYM_AFTER_CUP, yyline); } + "%cupsym"{WSP}+{NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_CUPSYM, yyline); } + "%cupdebug" { cupDebug = true; } + "%eofclose"({WSP}+"true")? { eofclose = true; } + "%eofclose"({WSP}+"false") { eofclose = false; } + "%class"{WSP}+{ClassT} {WSP}* { className = yytext().substring(7).trim(); } + "%ctorarg"{WSP}+{ArrType}{WSP}+ { yybegin(CTOR_ARG); ctorTypes.add(yytext().substring(8).trim()); } + "%function"{WSP}+{Ident} {WSP}* { functionName = yytext().substring(10).trim(); } + "%type"{WSP}+{ArrType} {WSP}* { tokenType = yytext().substring(6).trim(); } + "%integer"|"%int" { isInteger = true; } + "%intwrap" { isIntWrap = true; } + "%yyeof" { isYYEOF = true; } + "%notunix" { notUnix = true; } + "%7bit" { isASCII = true; return symbol(ASCII); } + "%full"|"%8bit" { return symbol(FULL); } + "%16bit" { populateDefaultVersionUnicodeProperties(); + return symbol(UNICODE); + } + "%unicode"({WSP}+{DottedVersion})? { String v = yytext().substring(8).trim(); + if (v.length() == 0) { + populateDefaultVersionUnicodeProperties(); + } else { + try { + unicodeProperties = new UnicodeProperties(v); + } catch (UnicodeProperties.UnsupportedUnicodeVersionException e) { + throw new ScannerException + (file, ErrorMessages.UNSUPPORTED_UNICODE_VERSION, yyline); + } + charClasses.init + (Options.jlex ? 127 : unicodeProperties.getMaximumCodePoint(), this); + } + return symbol(UNICODE); + } + + "%caseless"|"%ignorecase" { caseless = true; } + "%implements"{WSP}+.* { isImplementing = concExc(isImplementing, yytext().substring(12).trim()); } + "%extends"{WSP}+{QClassT}{WSP}* { isExtending = yytext().substring(9).trim(); } + "%public" { isPublic = true; } + "%apiprivate" { visibility = "private"; Skeleton.makePrivate(); } + "%final" { isFinal = true; } + "%abstract" { isAbstract = true; } + "%debug" { debugOption = true; } + "%standalone" { standalone = true; isInteger = true; } + "%pack" { /* no-op - this is the only generation method */ } + "%include" {WSP}+ .* { includeFile(yytext().substring(9).trim()); } + "%buffer" {WSP}+ {Number} {WSP}* { bufferSize = Integer.parseInt(yytext().substring(8).trim()); } + "%buffer" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.NO_BUFFER_SIZE, yyline); } + "%initthrow" {WSP}+ {QUIL} {WSP}* { initThrow = concExc(initThrow,yytext().substring(11).trim()); } + "%initthrow" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_INITTHROW, yyline); } + "%eofthrow" {WSP}+ {QUIL} {WSP}* { eofThrow = concExc(eofThrow,yytext().substring(10).trim()); } + "%eofthrow" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_EOFTHROW, yyline); } + "%yylexthrow"{WSP}+ {QUIL} {WSP}* { lexThrow = concExc(lexThrow,yytext().substring(12).trim()); } + "%throws" {WSP}+ {QUIL} {WSP}* { lexThrow = concExc(lexThrow,yytext().substring(8).trim()); } + "%yylexthrow"{WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_YYLEXTHROW, yyline); } + "%throws" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_THROW, yyline); } + "%scanerror" {WSP}+ {QualIdent} {WSP}* { scanErrorException = yytext().substring(11).trim(); } + "%scanerror" {WSP}+ {NNL}* { throw new ScannerException(file,ErrorMessages.QUIL_SCANERROR, yyline); } +// TODO: In the version of JFlex after 1.6, the %inputstreamctor directive will become a no-op: the InputStream ctor will never be emitted. + "%inputstreamctor"({WSP}+"true")? { emitInputStreamCtor = true; } + "%inputstreamctor"{WSP}+"false" { emitInputStreamCtor = false; } + + {Ident} { return symbol(IDENT, yytext()); } + "="{WSP}* { if (null == unicodeProperties && ! isASCII) { + populateDefaultVersionUnicodeProperties(); + } + yybegin(REGEXP); + return symbol(EQUALS); + } + + "/*" { nextState = MACROS; yybegin(COMMENT); } + + {EndOfLineComment} { } + + ^"%%" {NNL}* { if (null == unicodeProperties && ! isASCII) { + populateDefaultVersionUnicodeProperties(); + } + macroDefinition = false; + yybegin(REGEXPSTART); + return symbol(DELIMITER); + } + "%"{Ident} { throw new ScannerException(file,ErrorMessages.UNKNOWN_OPTION, yyline, yycolumn); } + "%" { throw new ScannerException(file,ErrorMessages.UNKNOWN_OPTION, yyline, yycolumn); } + ^{WSP}+"%" { Out.warning(ErrorMessages.NOT_AT_BOL, yyline); yypushback(1); } + + {WSP}+ { } + {NL}+ { } + <> { if ( yymoreStreams() ) { + file = (File) files.pop(); + yypopStream(); + } + else + throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); + } +} + + { + {Ident} {WSP}* { yybegin(MACROS); ctorArgs.add(yytext().trim()); } + [^] { throw new ScannerException(file,ErrorMessages.CTOR_ARG,yyline,yycolumn); } +} + + { + ^ {WSP}* "%include" {WSP}+ .* { includeFile(yytext().trim().substring(9).trim()); } + {WSP}* "/*" { nextState = REGEXPSTART; yybegin(COMMENT); } + {WSP}* "<" { yybegin(STATES); return symbol_countUpdate(LESSTHAN, null); } + {WSP}* "}" { return symbol_countUpdate(RBRACE, null); } + {WSP}* "//" {NNL}* { } + {WSP}* "<>" {WSPNL}* "{" { actionText.setLength(0); yybegin(JAVA_CODE); + Symbol s = symbol_countUpdate(EOFRULE, null); + action_line = s.left+1; + return s; + } + ^ {WSP}* {NWSPNL} { yypushback(yylength()); yybegin(REGEXP); } + {WSP} | {NL} { } +} + + { + {Ident} { return symbol(IDENT, yytext()); } + "," { return symbol(COMMA); } + {WSPNL}+ { } + + // "{" will be caught in REGEXP + ">"{WSPNL}* { yybegin(REGEXP); return symbol(MORETHAN); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_STATES); } +} + + + { + "<>" {WSPNL}+ "{" { actionText.setLength(0); yybegin(JAVA_CODE); action_line = yyline+1; return symbol(EOFRULE); } + "<>" { throw new ScannerException(file,ErrorMessages.EOF_WO_ACTION); } + + {WSPNL}*"|"{WSP}*$ { if (macroDefinition) { + yybegin(EATWSPNL); + return symbol(BAR); + } + else { + yybegin(REGEXPSTART); + return symbol(NOACTION); + } + } + + // stategroup + "{" { yybegin(REGEXPSTART); return symbol(LBRACE); } + + {WSPNL}*"|" { return symbol(BAR); } + + {WSPNL}*\" { string.setLength(0); nextState = REGEXP; yybegin(STRING_CONTENT); } + {WSPNL}*"\\u{" { string.setLength(0); yybegin(REGEXP_CODEPOINT_SEQUENCE); } + {WSPNL}*"!" { return symbol(BANG); } + {WSPNL}*"~" { return symbol(TILDE); } + {WSPNL}*"(" { return symbol(OPENBRACKET); } + {WSPNL}*")" { return symbol(CLOSEBRACKET); } + {WSPNL}*"*" { return symbol(STAR); } + {WSPNL}*"+" { return symbol(PLUS); } + {WSPNL}*"?" { return symbol(QUESTION); } + {WSPNL}*"$" { return symbol(DOLLAR); } + {WSPNL}*"^" { bolUsed = true; return symbol(HAT); } + {WSPNL}*"." { return symbol(POINT); } + {WSPNL}*"\\R" { return symbol(NEWLINE); } + {WSPNL}*"[" { yybegin(CHARCLASS); return symbol(OPENCLASS); } + {WSPNL}*"/" { return symbol(LOOKAHEAD); } + + {WSPNL}* "{" {WSP}* {Ident} {WSP}* "}" { return symbol_countUpdate(MACROUSE, makeMacroIdent()); } + {WSPNL}* "{" {WSP}* {Number} { yybegin(REPEATEXP); + return symbol(REPEAT, + new Integer(yytext().trim().substring(1).trim())); + } + + {WSPNL}+ "{" { actionText.setLength(0); yybegin(JAVA_CODE); action_line = yyline+1; return symbol(REGEXPEND); } + {NL} { if (macroDefinition) { yybegin(MACROS); } return symbol(REGEXPEND); } + + {WSPNL}*"/*" { nextState = REGEXP; yybegin(COMMENT); } + + {WSPNL}*"//"{NNL}* { } + + {WSP}+ { } + + { + {WSPNL}*"[:jletter:]" { return symbol(JLETTERCLASS); } + {WSPNL}*"[:jletterdigit:]" { return symbol(JLETTERDIGITCLASS); } + {WSPNL}*"[:letter:]" { return symbol(LETTERCLASS); } + {WSPNL}*"[:uppercase:]" { return symbol(UPPERCLASS); } + {WSPNL}*"[:lowercase:]" { return symbol(LOWERCLASS); } + {WSPNL}*"[:digit:]" { return symbol(DIGITCLASS); } + {WSPNL}*"\\d" { return symbol(DIGITCLASS); } + {WSPNL}*"\\D" { return symbol(DIGITCLASSNOT); } + {WSPNL}*"\\s" { return symbol(WHITESPACECLASS); } + {WSPNL}*"\\S" { return symbol(WHITESPACECLASSNOT); } + {WSPNL}*"\\w" { return symbol(WORDCLASS); } + {WSPNL}*"\\W" { return symbol(WORDCLASSNOT); } + {WSPNL}*"\\p{"[^}]*"}" { String trimmedText = yytext().trim(); + String propertyValue = trimmedText.substring(3,trimmedText.length()-1); + IntCharSet set = unicodeProperties.getIntCharSet(propertyValue); + if (null == set) { + throw new ScannerException(file,ErrorMessages.INVALID_UNICODE_PROPERTY, yyline, yycolumn + 3); + } + return symbol(UNIPROPCCLASS, set); + } + {WSPNL}*"\\P{"[^}]*"}" { String trimmedText = yytext().trim(); + String propertyValue = trimmedText.substring(3,trimmedText.length()-1); + IntCharSet set = unicodeProperties.getIntCharSet(propertyValue); + if (null == set) { + throw new ScannerException(file,ErrorMessages.INVALID_UNICODE_PROPERTY, yyline, yycolumn + 3); + } + return symbol(UNIPROPCCLASSNOT, set); + } + } + + . { return symbol(CHAR, yytext().codePointAt(0)); } +} + + {WSPNL}+ { yybegin(REGEXP); } + + + { + "}" { yybegin(REGEXP); return symbol(RBRACE); } + "," {WSP}* {Number} { return symbol(REPEAT, new Integer(yytext().substring(1).trim())); } + {WSP}+ { } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + + { + "{"{Ident}"}" { return symbol(MACROUSE, yytext().substring(1,yylength()-1)); } + "[" { balance++; return symbol(OPENCLASS); } + "]" { if (balance > 0) balance--; else yybegin(REGEXP); return symbol(CLOSECLASS); } + "^" { return symbol(HAT); } + "-" { return symbol(DASH); } + "--" { return symbol(DIFFERENCE); } + "&&" { return symbol(INTERSECTION); } + "||" { /* union is the default operation - '||' can be ignored */ } + "~~" { return symbol(SYMMETRICDIFFERENCE); } + "\\u{" { yybegin(CHARCLASS_CODEPOINT); } + + // this is a hack to keep JLex compatibilty with char class + // expressions like [+-] + "-]" { yypushback(1); yycolumn--; return symbol(CHAR, (int)'-'); } + + \" { string.setLength(0); nextState = CHARCLASS; yybegin(STRING_CONTENT); } + + . { return symbol(CHAR, yytext().codePointAt(0)); } + + \n { throw new ScannerException(file,ErrorMessages.EOL_IN_CHARCLASS,yyline,yycolumn); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + + { + \" { yybegin(nextState); return symbol(STRING, string.toString()); } + \\\" { string.append('\"'); } + [^\"\\\u2028\u2029\u000A\u000B\u000C\u000D\u0085]+ { string.append(yytext()); } + + {NL} { throw new ScannerException(file,ErrorMessages.UNTERMINATED_STR, yyline, yycolumn); } + + {HexNumber} { string.append( (char) Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {OctNumber} { string.append( (char) Integer.parseInt(yytext().substring(1,yylength()), 8)); } + {Unicode4} { string.append( (char) Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {Unicode6} { int codePoint = Integer.parseInt(yytext().substring(2,yylength()), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + string.append(Character.toChars(codePoint)); + } else { + throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn+2); + } + } + + "\\u{" { yybegin(STRING_CODEPOINT_SEQUENCE); } + + \\b { string.append('\b'); } + \\n { string.append('\n'); } + \\t { string.append('\t'); } + \\f { string.append('\f'); } + \\r { string.append('\r'); } + + \\. { string.append(yytext().substring(1, yytext().offsetByCodePoints(1, 1))); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_STRING); } +} + + + { + {HexNumber} { return symbol(CHAR, Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {OctNumber} { return symbol(CHAR, Integer.parseInt(yytext().substring(1,yylength()), 8)); } + {Unicode4} { return symbol(CHAR, Integer.parseInt(yytext().substring(2,yylength()), 16)); } + {Unicode6} { int codePoint = Integer.parseInt(yytext().substring(2,yylength()), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + return symbol(CHAR, codePoint); + } else { + throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn+2); + } + } + + \\b { return symbol(CHAR, (int)'\b'); } + \\n { return symbol(CHAR, (int)'\n'); } + \\t { return symbol(CHAR, (int)'\t'); } + \\f { return symbol(CHAR, (int)'\f'); } + \\r { return symbol(CHAR, (int)'\r'); } + + \\. { return symbol(CHAR, yytext().codePointAt(1)); } +} + + + { + "{" { balance++; actionText.append('{'); } + "}" { if (balance > 0) { + balance--; + actionText.append('}'); + } + else { + yybegin(REGEXPSTART); + Action a = new Action(actionText.toString(), action_line); + actions.add(a); + return symbol(ACTION, a); + } + } + + {JavaCode} { actionText.append(yytext()); } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_ACTION, action_line-1); } +} + + { + + "/"+ "*" { commentbalance++; } + "*"+ "/" { if (commentbalance > 0) + commentbalance--; + else + yybegin(nextState); + } + + {JFlexComment} { /* ignore */ } + + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_COMMENT); } +} + + { + "}" { yybegin(REGEXP); return symbol(STRING, string.toString()); } + {HexDigit}{1,6} { int codePoint = Integer.parseInt(yytext(), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + string.append(Character.toChars(codePoint)); + } else { + throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); + } + } + {WSPNL}+ { } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + + { // Specialized form: newlines disallowed, and doesn't return a symbol + "}" { yybegin(STRING_CONTENT); } + {HexDigit}{1,6} { int codePoint = Integer.parseInt(yytext(), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + string.append(Character.toChars(codePoint)); + } else { + throw new ScannerException(file, ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); + } + } + {NL} { throw new ScannerException(file,ErrorMessages.UNTERMINATED_STR, yyline, yycolumn); } + {WSP}+ { } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_STRING); } +} + + { // Specialized form: only one codepoint allowed, no whitespace allowed + {HexDigit}{1,6} "}" { int codePoint = Integer.parseInt(yytext().substring(0, yylength() - 1), 16); + if (codePoint <= unicodeProperties.getMaximumCodePoint()) { + yybegin(CHARCLASS); + return symbol(CHAR, codePoint); + } else { + throw new ScannerException(file, ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); + } + } + <> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } +} + +. { throw new ScannerException(file,ErrorMessages.UNEXPECTED_CHAR, yyline, yycolumn); } +\R { throw new ScannerException(file,ErrorMessages.UNEXPECTED_NL, yyline, yycolumn); } + +<> { if ( yymoreStreams() ) { + file = (File) files.pop(); + yypopStream(); + } + else { + return symbol(EOF); + } + } diff --git a/samples/JFlex/java.jflex b/samples/JFlex/java.jflex new file mode 100644 index 00000000..b12f15d2 --- /dev/null +++ b/samples/JFlex/java.jflex @@ -0,0 +1,305 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright (C) 1998-2015 Gerwin Klein * + * All rights reserved. * + * * + * License: BSD * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Java 1.2 language lexer specification */ + +/* Use together with unicode.flex for Unicode preprocesssing */ +/* and java12.cup for a Java 1.2 parser */ + +/* Note that this lexer specification is not tuned for speed. + It is in fact quite slow on integer and floating point literals, + because the input is read twice and the methods used to parse + the numbers are not very fast. + For a production quality application (e.g. a Java compiler) + this could be optimized */ + + +import java_cup.runtime.*; + +%% + +%public +%class Scanner +%implements sym + +%unicode + +%line +%column + +%cup +%cupdebug + +%{ + StringBuilder string = new StringBuilder(); + + private Symbol symbol(int type) { + return new JavaSymbol(type, yyline+1, yycolumn+1); + } + + private Symbol symbol(int type, Object value) { + return new JavaSymbol(type, yyline+1, yycolumn+1, value); + } + + /** + * assumes correct representation of a long value for + * specified radix in scanner buffer from start + * to end + */ + private long parseLong(int start, int end, int radix) { + long result = 0; + long digit; + + for (int i = start; i < end; i++) { + digit = Character.digit(yycharat(i),radix); + result*= radix; + result+= digit; + } + + return result; + } +%} + +/* main character classes */ +LineTerminator = \r|\n|\r\n +InputCharacter = [^\r\n] + +WhiteSpace = {LineTerminator} | [ \t\f] + +/* comments */ +Comment = {TraditionalComment} | {EndOfLineComment} | + {DocumentationComment} + +TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "/" +EndOfLineComment = "//" {InputCharacter}* {LineTerminator}? +DocumentationComment = "/*" "*"+ [^/*] ~"*/" + +/* identifiers */ +Identifier = [:jletter:][:jletterdigit:]* + +/* integer literals */ +DecIntegerLiteral = 0 | [1-9][0-9]* +DecLongLiteral = {DecIntegerLiteral} [lL] + +HexIntegerLiteral = 0 [xX] 0* {HexDigit} {1,8} +HexLongLiteral = 0 [xX] 0* {HexDigit} {1,16} [lL] +HexDigit = [0-9a-fA-F] + +OctIntegerLiteral = 0+ [1-3]? {OctDigit} {1,15} +OctLongLiteral = 0+ 1? {OctDigit} {1,21} [lL] +OctDigit = [0-7] + +/* floating point literals */ +FloatLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? [fF] +DoubleLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? + +FLit1 = [0-9]+ \. [0-9]* +FLit2 = \. [0-9]+ +FLit3 = [0-9]+ +Exponent = [eE] [+-]? [0-9]+ + +/* string and character literals */ +StringCharacter = [^\r\n\"\\] +SingleCharacter = [^\r\n\'\\] + +%state STRING, CHARLITERAL + +%% + + { + + /* keywords */ + "abstract" { return symbol(ABSTRACT); } + "boolean" { return symbol(BOOLEAN); } + "break" { return symbol(BREAK); } + "byte" { return symbol(BYTE); } + "case" { return symbol(CASE); } + "catch" { return symbol(CATCH); } + "char" { return symbol(CHAR); } + "class" { return symbol(CLASS); } + "const" { return symbol(CONST); } + "continue" { return symbol(CONTINUE); } + "do" { return symbol(DO); } + "double" { return symbol(DOUBLE); } + "else" { return symbol(ELSE); } + "extends" { return symbol(EXTENDS); } + "final" { return symbol(FINAL); } + "finally" { return symbol(FINALLY); } + "float" { return symbol(FLOAT); } + "for" { return symbol(FOR); } + "default" { return symbol(DEFAULT); } + "implements" { return symbol(IMPLEMENTS); } + "import" { return symbol(IMPORT); } + "instanceof" { return symbol(INSTANCEOF); } + "int" { return symbol(INT); } + "interface" { return symbol(INTERFACE); } + "long" { return symbol(LONG); } + "native" { return symbol(NATIVE); } + "new" { return symbol(NEW); } + "goto" { return symbol(GOTO); } + "if" { return symbol(IF); } + "public" { return symbol(PUBLIC); } + "short" { return symbol(SHORT); } + "super" { return symbol(SUPER); } + "switch" { return symbol(SWITCH); } + "synchronized" { return symbol(SYNCHRONIZED); } + "package" { return symbol(PACKAGE); } + "private" { return symbol(PRIVATE); } + "protected" { return symbol(PROTECTED); } + "transient" { return symbol(TRANSIENT); } + "return" { return symbol(RETURN); } + "void" { return symbol(VOID); } + "static" { return symbol(STATIC); } + "while" { return symbol(WHILE); } + "this" { return symbol(THIS); } + "throw" { return symbol(THROW); } + "throws" { return symbol(THROWS); } + "try" { return symbol(TRY); } + "volatile" { return symbol(VOLATILE); } + "strictfp" { return symbol(STRICTFP); } + + /* boolean literals */ + "true" { return symbol(BOOLEAN_LITERAL, true); } + "false" { return symbol(BOOLEAN_LITERAL, false); } + + /* null literal */ + "null" { return symbol(NULL_LITERAL); } + + + /* separators */ + "(" { return symbol(LPAREN); } + ")" { return symbol(RPAREN); } + "{" { return symbol(LBRACE); } + "}" { return symbol(RBRACE); } + "[" { return symbol(LBRACK); } + "]" { return symbol(RBRACK); } + ";" { return symbol(SEMICOLON); } + "," { return symbol(COMMA); } + "." { return symbol(DOT); } + + /* operators */ + "=" { return symbol(EQ); } + ">" { return symbol(GT); } + "<" { return symbol(LT); } + "!" { return symbol(NOT); } + "~" { return symbol(COMP); } + "?" { return symbol(QUESTION); } + ":" { return symbol(COLON); } + "==" { return symbol(EQEQ); } + "<=" { return symbol(LTEQ); } + ">=" { return symbol(GTEQ); } + "!=" { return symbol(NOTEQ); } + "&&" { return symbol(ANDAND); } + "||" { return symbol(OROR); } + "++" { return symbol(PLUSPLUS); } + "--" { return symbol(MINUSMINUS); } + "+" { return symbol(PLUS); } + "-" { return symbol(MINUS); } + "*" { return symbol(MULT); } + "/" { return symbol(DIV); } + "&" { return symbol(AND); } + "|" { return symbol(OR); } + "^" { return symbol(XOR); } + "%" { return symbol(MOD); } + "<<" { return symbol(LSHIFT); } + ">>" { return symbol(RSHIFT); } + ">>>" { return symbol(URSHIFT); } + "+=" { return symbol(PLUSEQ); } + "-=" { return symbol(MINUSEQ); } + "*=" { return symbol(MULTEQ); } + "/=" { return symbol(DIVEQ); } + "&=" { return symbol(ANDEQ); } + "|=" { return symbol(OREQ); } + "^=" { return symbol(XOREQ); } + "%=" { return symbol(MODEQ); } + "<<=" { return symbol(LSHIFTEQ); } + ">>=" { return symbol(RSHIFTEQ); } + ">>>=" { return symbol(URSHIFTEQ); } + + /* string literal */ + \" { yybegin(STRING); string.setLength(0); } + + /* character literal */ + \' { yybegin(CHARLITERAL); } + + /* numeric literals */ + + /* This is matched together with the minus, because the number is too big to + be represented by a positive integer. */ + "-2147483648" { return symbol(INTEGER_LITERAL, new Integer(Integer.MIN_VALUE)); } + + {DecIntegerLiteral} { return symbol(INTEGER_LITERAL, new Integer(yytext())); } + {DecLongLiteral} { return symbol(INTEGER_LITERAL, new Long(yytext().substring(0,yylength()-1))); } + + {HexIntegerLiteral} { return symbol(INTEGER_LITERAL, new Integer((int) parseLong(2, yylength(), 16))); } + {HexLongLiteral} { return symbol(INTEGER_LITERAL, new Long(parseLong(2, yylength()-1, 16))); } + + {OctIntegerLiteral} { return symbol(INTEGER_LITERAL, new Integer((int) parseLong(0, yylength(), 8))); } + {OctLongLiteral} { return symbol(INTEGER_LITERAL, new Long(parseLong(0, yylength()-1, 8))); } + + {FloatLiteral} { return symbol(FLOATING_POINT_LITERAL, new Float(yytext().substring(0,yylength()-1))); } + {DoubleLiteral} { return symbol(FLOATING_POINT_LITERAL, new Double(yytext())); } + {DoubleLiteral}[dD] { return symbol(FLOATING_POINT_LITERAL, new Double(yytext().substring(0,yylength()-1))); } + + /* comments */ + {Comment} { /* ignore */ } + + /* whitespace */ + {WhiteSpace} { /* ignore */ } + + /* identifiers */ + {Identifier} { return symbol(IDENTIFIER, yytext()); } +} + + { + \" { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } + + {StringCharacter}+ { string.append( yytext() ); } + + /* escape sequences */ + "\\b" { string.append( '\b' ); } + "\\t" { string.append( '\t' ); } + "\\n" { string.append( '\n' ); } + "\\f" { string.append( '\f' ); } + "\\r" { string.append( '\r' ); } + "\\\"" { string.append( '\"' ); } + "\\'" { string.append( '\'' ); } + "\\\\" { string.append( '\\' ); } + \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1),8); + string.append( val ); } + + /* error cases */ + \\. { throw new RuntimeException("Illegal escape sequence \""+yytext()+"\""); } + {LineTerminator} { throw new RuntimeException("Unterminated string at end of line"); } +} + + { + {SingleCharacter}\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } + + /* escape sequences */ + "\\b"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\b');} + "\\t"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\t');} + "\\n"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\n');} + "\\f"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\f');} + "\\r"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\r');} + "\\\""\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\"');} + "\\'"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\'');} + "\\\\"\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\\'); } + \\[0-3]?{OctDigit}?{OctDigit}\' { yybegin(YYINITIAL); + int val = Integer.parseInt(yytext().substring(1,yylength()-1),8); + return symbol(CHARACTER_LITERAL, (char)val); } + + /* error cases */ + \\. { throw new RuntimeException("Illegal escape sequence \""+yytext()+"\""); } + {LineTerminator} { throw new RuntimeException("Unterminated character literal at end of line"); } +} + +/* error fallback */ +[^] { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); } +<> { return symbol(EOF); } \ No newline at end of file diff --git a/samples/Java/gen-java-linguist-thrift.java b/samples/Java/gen-java-linguist-thrift.java new file mode 100644 index 00000000..4e2a5b1a --- /dev/null +++ b/samples/Java/gen-java-linguist-thrift.java @@ -0,0 +1,396 @@ +/** + * Autogenerated by Thrift Compiler (1.0.0-dev) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.async.AsyncMethodCallback; +import org.apache.thrift.server.AbstractNonblockingServer.*; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import javax.annotation.Generated; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2015-5-12") +public class PullRequest implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PullRequest"); + + private static final org.apache.thrift.protocol.TField TITLE_FIELD_DESC = new org.apache.thrift.protocol.TField("title", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new PullRequestStandardSchemeFactory()); + schemes.put(TupleScheme.class, new PullRequestTupleSchemeFactory()); + } + + public String title; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + TITLE((short)1, "title"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // TITLE + return TITLE; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.TITLE, new org.apache.thrift.meta_data.FieldMetaData("title", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PullRequest.class, metaDataMap); + } + + public PullRequest() { + } + + public PullRequest( + String title) + { + this(); + this.title = title; + } + + /** + * Performs a deep copy on other. + */ + public PullRequest(PullRequest other) { + if (other.isSetTitle()) { + this.title = other.title; + } + } + + public PullRequest deepCopy() { + return new PullRequest(this); + } + + @Override + public void clear() { + this.title = null; + } + + public String getTitle() { + return this.title; + } + + public PullRequest setTitle(String title) { + this.title = title; + return this; + } + + public void unsetTitle() { + this.title = null; + } + + /** Returns true if field title is set (has been assigned a value) and false otherwise */ + public boolean isSetTitle() { + return this.title != null; + } + + public void setTitleIsSet(boolean value) { + if (!value) { + this.title = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TITLE: + if (value == null) { + unsetTitle(); + } else { + setTitle((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TITLE: + return getTitle(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case TITLE: + return isSetTitle(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof PullRequest) + return this.equals((PullRequest)that); + return false; + } + + public boolean equals(PullRequest that) { + if (that == null) + return false; + + boolean this_present_title = true && this.isSetTitle(); + boolean that_present_title = true && that.isSetTitle(); + if (this_present_title || that_present_title) { + if (!(this_present_title && that_present_title)) + return false; + if (!this.title.equals(that.title)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_title = true && (isSetTitle()); + list.add(present_title); + if (present_title) + list.add(title); + + return list.hashCode(); + } + + @Override + public int compareTo(PullRequest other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetTitle()).compareTo(other.isSetTitle()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTitle()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.title, other.title); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("PullRequest("); + boolean first = true; + + sb.append("title:"); + if (this.title == null) { + sb.append("null"); + } else { + sb.append(this.title); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class PullRequestStandardSchemeFactory implements SchemeFactory { + public PullRequestStandardScheme getScheme() { + return new PullRequestStandardScheme(); + } + } + + private static class PullRequestStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, PullRequest struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // TITLE + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.title = iprot.readString(); + struct.setTitleIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, PullRequest struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.title != null) { + oprot.writeFieldBegin(TITLE_FIELD_DESC); + oprot.writeString(struct.title); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class PullRequestTupleSchemeFactory implements SchemeFactory { + public PullRequestTupleScheme getScheme() { + return new PullRequestTupleScheme(); + } + } + + private static class PullRequestTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, PullRequest struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetTitle()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetTitle()) { + oprot.writeString(struct.title); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, PullRequest struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.title = iprot.readString(); + struct.setTitleIsSet(true); + } + } + } + +} + diff --git a/samples/JavaScript/gen-js-linguist-thrift.js b/samples/JavaScript/gen-js-linguist-thrift.js new file mode 100644 index 00000000..d6a429f2 --- /dev/null +++ b/samples/JavaScript/gen-js-linguist-thrift.js @@ -0,0 +1,60 @@ +// +// Autogenerated by Thrift Compiler (1.0.0-dev) +// +// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +// + + +PullRequest = function(args) { + this.title = null; + if (args) { + if (args.title !== undefined) { + this.title = args.title; + } + } +}; +PullRequest.prototype = {}; +PullRequest.prototype.read = function(input) { + input.readStructBegin(); + while (true) + { + var ret = input.readFieldBegin(); + var fname = ret.fname; + var ftype = ret.ftype; + var fid = ret.fid; + if (ftype == Thrift.Type.STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == Thrift.Type.STRING) { + this.title = input.readString().value; + } else { + input.skip(ftype); + } + break; + case 0: + input.skip(ftype); + break; + default: + input.skip(ftype); + } + input.readFieldEnd(); + } + input.readStructEnd(); + return; +}; + +PullRequest.prototype.write = function(output) { + output.writeStructBegin('PullRequest'); + if (this.title !== null && this.title !== undefined) { + output.writeFieldBegin('title', Thrift.Type.STRING, 1); + output.writeString(this.title); + output.writeFieldEnd(); + } + output.writeFieldStop(); + output.writeStructEnd(); + return; +}; + diff --git a/samples/JavaScript/js.script! b/samples/JavaScript/js similarity index 100% rename from samples/JavaScript/js.script! rename to samples/JavaScript/js diff --git a/samples/JavaScript/js2.script! b/samples/JavaScript/js2 similarity index 100% rename from samples/JavaScript/js2.script! rename to samples/JavaScript/js2 diff --git a/samples/KiCad/Volume.sch b/samples/KiCad/Volume.sch new file mode 100644 index 00000000..2141db90 --- /dev/null +++ b/samples/KiCad/Volume.sch @@ -0,0 +1,714 @@ +EESchema Schematic File Version 2 +LIBS:mfk_alps +LIBS:mfk_connector +LIBS:mfk_interface +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:special +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:Volume-AlpsRK16814MG-cache +EELAYER 27 0 +EELAYER END +$Descr A 11000 8500 +encoding utf-8 +Sheet 1 1 +Title "ALPS RK16816MG with H-bridge" +Date "4 apr 2015" +Rev "" +Comp "Mithat Konar" +Comment1 "Copyright (C) 2015 Mithat Konar" +Comment2 "CERN Open Hardware Licence v1.2" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L SN754410 U1 +U 1 1 550CA683 +P 7600 4650 +F 0 "U1" H 7600 5350 60 0000 C CNN +F 1 "SN754410" H 7600 4000 60 0000 C CNN +F 2 "mfk-DIP-16_AriesC84_e" H 7600 4650 60 0001 C CNN +F 3 "~" H 7600 4650 60 0000 C CNN + 1 7600 4650 + 1 0 0 -1 +$EndComp +$Comp +L DGND #PWR01 +U 1 1 550CA83D +P 8450 5500 +F 0 "#PWR01" H 8450 5500 40 0001 C CNN +F 1 "DGND" H 8450 5430 40 0000 C CNN +F 2 "" H 8450 5500 60 0000 C CNN +F 3 "" H 8450 5500 60 0000 C CNN + 1 8450 5500 + 1 0 0 -1 +$EndComp +$Comp +L DGND #PWR02 +U 1 1 550CA86E +P 6600 5300 +F 0 "#PWR02" H 6600 5300 40 0001 C CNN +F 1 "DGND" H 6600 5230 40 0000 C CNN +F 2 "" H 6600 5300 60 0000 C CNN +F 3 "" H 6600 5300 60 0000 C CNN + 1 6600 5300 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6900 4550 6600 4550 +Wire Wire Line + 6600 4550 6600 5300 +Wire Wire Line + 6900 4700 6600 4700 +Connection ~ 6600 4700 +Wire Wire Line + 8300 4550 8450 4550 +Wire Wire Line + 8450 4250 8450 5500 +Wire Wire Line + 8300 4700 8450 4700 +Connection ~ 8450 4700 +Wire Wire Line + 3900 4450 4600 4450 +Wire Wire Line + 4400 4450 4400 4400 +Wire Wire Line + 4600 4450 4600 4400 +Wire Wire Line + 4400 5250 4400 5500 +Wire Wire Line + 4600 5400 4600 5250 +Wire Wire Line + 5700 4200 5700 4150 +Wire Wire Line + 5700 4150 6150 4150 +Wire Wire Line + 6150 4400 6900 4400 +Wire Wire Line + 5700 4850 6900 4850 +Wire Wire Line + 5700 4800 5700 4850 +Wire Wire Line + 8300 4250 8450 4250 +Connection ~ 8450 4550 +Wire Wire Line + 6400 4250 6900 4250 +Wire Wire Line + 6400 3250 6400 4250 +Wire Wire Line + 6750 3750 8450 3750 +Wire Wire Line + 8300 5000 8450 5000 +Wire Wire Line + 8300 4100 8700 4100 +Wire Wire Line + 6750 5150 6900 5150 +$Comp +L C C1 +U 1 1 550CAD46 +P 8700 4350 +F 0 "C1" H 8700 4450 40 0000 L CNN +F 1 "100n" H 8706 4265 40 0000 L CNN +F 2 "mfk-C_4.0_2.5_2.5_0.5" H 8738 4200 30 0001 C CNN +F 3 "~" H 8700 4350 60 0000 C CNN + 1 8700 4350 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8700 4100 8700 4150 +$Comp +L DGND #PWR03 +U 1 1 550CADFB +P 8700 4700 +F 0 "#PWR03" H 8700 4700 40 0001 C CNN +F 1 "DGND" H 8700 4630 40 0000 C CNN +F 2 "" H 8700 4700 60 0000 C CNN +F 3 "" H 8700 4700 60 0000 C CNN + 1 8700 4700 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8700 4700 8700 4550 +Text Label 6400 3250 3 50 ~ 0 +VOL_UP +Text Label 6400 6150 1 50 ~ 0 +VOL_DOWN +$Comp +L DGND #PWR04 +U 1 1 550CB0E4 +P 3150 2100 +F 0 "#PWR04" H 3150 2100 40 0001 C CNN +F 1 "DGND" H 3150 2030 40 0000 C CNN +F 2 "" H 3150 2100 60 0000 C CNN +F 3 "" H 3150 2100 60 0000 C CNN + 1 3150 2100 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3650 1350 3650 1800 +Wire Wire Line + 3100 2450 3850 2450 +Text Label 3850 2450 2 50 ~ 0 +VOL_UP +Wire Wire Line + 3100 2650 3850 2650 +Text Label 3850 2650 2 50 ~ 0 +VOL_DOWN +$Comp +L PWR_FLAG #FLG05 +U 1 1 550CB3B3 +P 3400 2000 +F 0 "#FLG05" H 3400 2095 30 0001 C CNN +F 1 "PWR_FLAG" H 3400 2180 30 0000 C CNN +F 2 "" H 3400 2000 60 0000 C CNN +F 3 "" H 3400 2000 60 0000 C CNN + 1 3400 2000 + -1 0 0 1 +$EndComp +$Comp +L PWR_FLAG #FLG06 +U 1 1 550CB3CC +P 3900 1650 +F 0 "#FLG06" H 3900 1745 30 0001 C CNN +F 1 "PWR_FLAG" H 3900 1830 30 0000 C CNN +F 2 "" H 3900 1650 60 0000 C CNN +F 3 "" H 3900 1650 60 0000 C CNN + 1 3900 1650 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3150 1900 3100 1900 +Wire Wire Line + 3150 1900 3150 2100 +Wire Wire Line + 3900 1650 3650 1650 +Connection ~ 3650 1650 +Wire Wire Line + 3400 2000 3150 2000 +Connection ~ 3150 2000 +$Comp +L CONN_2 P4 +U 1 1 550CCCA8 +P 2750 2550 +F 0 "P4" V 2700 2550 50 0000 C CNN +F 1 "CTRL" V 2800 2550 50 0000 C CNN +F 2 "mfk-TE_282834-2" H 2750 2550 60 0001 C CNN +F 3 "" H 2750 2550 60 0000 C CNN + 1 2750 2550 + -1 0 0 -1 +$EndComp +Wire Wire Line + 4150 3250 4150 3850 +$Comp +L CONN_5 P1 +U 1 1 550CCE69 +P 2750 3450 +F 0 "P1" V 2700 3450 50 0000 C CNN +F 1 "AB I/O" V 2800 3450 50 0000 C CNN +F 2 "mfk-TE_282834-5" H 2750 3450 60 0001 C CNN +F 3 "" H 2750 3450 60 0000 C CNN + 1 2750 3450 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3150 3250 4150 3250 +Wire Wire Line + 4300 4100 4350 4100 +Wire Wire Line + 4350 4100 4350 3350 +Wire Wire Line + 4350 3350 3150 3350 +Text Label 3150 3250 0 50 ~ 0 +A_TOP +Text Label 3150 3350 0 50 ~ 0 +A_WIPER +Text Label 3150 3550 0 50 ~ 0 +B_TOP +Text Label 3150 3650 0 50 ~ 0 +B_WIPER +$Comp +L CONN_5 P2 +U 1 1 550CCF9F +P 2800 4800 +F 0 "P2" V 2750 4800 50 0000 C CNN +F 1 "CD I/O" V 2850 4800 50 0000 C CNN +F 2 "mfk-TE_282834-5" H 2800 4800 60 0001 C CNN +F 3 "" H 2800 4800 60 0000 C CNN + 1 2800 4800 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3200 4600 4150 4600 +Wire Wire Line + 3200 4700 3900 4700 +Wire Wire Line + 3200 4900 3700 4900 +Wire Wire Line + 5100 4950 5100 5700 +Wire Wire Line + 5100 4950 4950 4950 +Wire Wire Line + 3200 4800 3800 4800 +Wire Wire Line + 5000 4600 5000 5600 +Wire Wire Line + 5000 4600 4800 4600 +Wire Wire Line + 4800 4600 4800 4700 +Wire Wire Line + 4300 5400 4300 4950 +Text Label 3200 4600 0 50 ~ 0 +C_TOP +Wire Wire Line + 3900 5400 4300 5400 +Wire Wire Line + 4400 5400 4600 5400 +Wire Wire Line + 3900 4700 3900 5400 +$Comp +L RK16814MG RV1 +U 1 1 550CA765 +P 4500 4500 +F 0 "RV1" H 5850 5250 50 0000 C CNN +F 1 "RK16814MG" H 5700 3600 50 0000 C CNN +F 2 "mfk-ALPS_RK16814MG" V 4800 4900 60 0001 C CNN +F 3 "~" V 4800 4900 60 0000 C CNN + 1 4500 4500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4150 4600 4150 4700 +Text Label 3200 4700 0 50 ~ 0 +C_WIPER +Text Label 3200 4900 0 50 ~ 0 +D_TOP +Text Label 3200 5000 0 50 ~ 0 +D_WIPER +Wire Wire Line + 3900 3450 3900 4450 +Connection ~ 4400 4450 +Connection ~ 4400 5400 +Text Label 3150 3450 0 50 ~ 0 +AB_COMMON +Wire Wire Line + 3600 5000 3200 5000 +Text Label 3200 4800 0 50 ~ 0 +CD_COMMON +$Comp +L +5VD #PWR07 +U 1 1 550CE6FC +P 7600 3650 +F 0 "#PWR07" H 7600 3600 20 0001 C CNN +F 1 "+5VD" H 7600 3750 50 0000 C CNN +F 2 "" H 7600 3650 60 0000 C CNN +F 3 "" H 7600 3650 60 0000 C CNN + 1 7600 3650 + 1 0 0 -1 +$EndComp +$Comp +L +5VD #PWR08 +U 1 1 550CE733 +P 3650 1350 +F 0 "#PWR08" H 3650 1300 20 0001 C CNN +F 1 "+5VD" H 3650 1450 50 0000 C CNN +F 2 "" H 3650 1350 60 0000 C CNN +F 3 "" H 3650 1350 60 0000 C CNN + 1 3650 1350 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3900 3450 3150 3450 +Wire Wire Line + 4800 3850 4800 3550 +Wire Wire Line + 4800 3550 3150 3550 +Wire Wire Line + 4950 4100 5000 4100 +Wire Wire Line + 5000 4100 5000 3650 +Wire Wire Line + 5000 3650 3150 3650 +Wire Wire Line + 3600 5000 3600 5700 +Wire Wire Line + 3700 4900 3700 5600 +Wire Wire Line + 3800 4800 3800 5500 +Wire Wire Line + 3800 5500 4400 5500 +Wire Wire Line + 3700 5600 5000 5600 +Wire Wire Line + 3600 5700 5100 5700 +$Bitmap +Pos 10300 6850 +Scale 1.000000 +Data +89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 5F 00 00 00 64 08 06 00 00 00 E0 F1 EC +9B 00 00 00 04 73 42 49 54 08 08 08 08 7C 08 64 88 00 00 00 09 70 48 59 73 00 00 07 6C 00 00 07 +6C 01 9C F3 D5 25 00 00 13 B3 49 44 41 54 78 9C ED 9D 7B 7C 54 D5 B5 C7 BF EB CC 04 C2 43 1E 5A +45 D0 2A F6 FA 82 52 A0 6A D5 D6 5A B1 3E 69 21 27 40 A3 F6 E1 55 51 4E 78 5C B5 B4 DA 56 3F 7E +8A 69 BD D4 6A 6F 6F AB AD 90 13 90 48 3F B7 B6 E6 16 66 22 8A F6 65 44 AD AD A2 45 B4 A5 D6 17 +88 12 15 5A 0C F2 CA 64 E6 AC FB C7 3E 93 49 86 10 66 92 7D 48 E8 E5 F7 F9 E4 33 AF BD D7 59 FB +77 76 F6 D9 7B ED B5 D6 16 55 E5 40 80 F8 C9 7B 80 59 05 14 5D A0 9E 3B 3B 6A 7D 6C C0 E9 69 05 +8A C0 85 96 CB F5 38 E4 40 E8 F9 E2 27 0F 01 9A 00 29 A0 B8 02 83 D5 73 3F 88 56 AB EE E3 40 E9 +F9 63 29 8C 78 C2 72 63 23 D4 C5 1A 0E 14 F2 C7 45 5C BE 47 70 A0 90 3F 3E E2 F2 3D 82 83 E4 F7 +20 22 27 5F FC E4 67 C5 4F 5E DE 8D FA 31 60 4C 91 D5 C6 84 F5 BA 7A CD CB C5 4F 7E B6 AB F5 0B +45 A4 E4 8B 9F 2C 03 56 02 4B C5 4F AE 14 3F 39 A2 0B 62 4E 04 FA 15 59 A7 5F 58 AF 28 88 9F 1C +21 7E 72 25 B0 14 58 19 EA 1F 19 22 23 3F 54 BC 0E E8 13 7E 75 31 F0 92 F8 C9 CB 8A 14 75 4A 17 +55 38 B5 98 C2 A1 5E 2F 61 F4 04 A3 77 5D 94 37 20 92 79 7E 07 C4 E7 E3 01 60 B6 7A EE 3F 3A 91 +31 00 B8 0C A8 02 8E EA 82 1A 8D C0 AD C0 CF D5 73 B7 77 72 9D C3 80 7B 80 4B F6 52 24 05 54 A8 +E7 D6 77 41 87 4E 61 9D FC 02 88 CF A2 11 98 A1 9E FB 50 5E FD 31 40 25 70 39 30 D8 82 4A 1F 00 +3F 03 16 AA E7 BE 98 77 AD CF 03 35 C0 F0 7D C8 88 E4 06 58 25 BF 08 E2 DB 62 11 70 3B F0 49 60 +26 70 96 35 85 F6 C4 53 C0 42 E0 69 E0 5B C0 35 45 D4 B5 7E 03 AC 91 DF 45 E2 0F 34 58 BD 01 36 +1F B8 35 FC 6B 13 0F A6 7D 35 B6 84 D9 24 FF 4E 8B B2 7A 33 AC B5 D3 26 F9 3F 04 9E B4 28 AF 37 +E2 49 4C 3B AD C0 F6 03 F7 23 C0 0B C0 40 6B 42 7B 0F B6 03 E3 D4 73 5F B7 25 D0 EA 22 2B 54 EC +06 9B 32 7B 11 6E B0 49 3C 44 B7 C8 5A 49 6E A5 F8 AF 80 47 D4 73 27 DA 16 1A 95 79 E1 6A 60 6B +44 B2 F7 37 B6 62 DA 63 1D 91 90 AF 9E BB 09 98 13 85 EC 1E C0 9C B0 3D D6 11 E9 1E AE F8 C9 06 +E0 9C C8 2E 10 3D 1E 57 CF 9D 10 95 F0 A8 ED F9 F1 88 E5 47 8D 48 F5 8F AC E7 8B 9F 1C 07 AC 89 +44 F8 FE C5 78 F5 DC 17 A2 10 1C 65 CF BF 2E 42 D9 FB 13 91 B5 23 AA A9 E6 61 C0 5B 40 A9 75 E1 +39 BC 05 BC 0C 9C 04 1C 1D E1 75 76 03 47 77 B6 F7 D0 55 44 35 A6 CD C0 3E F1 29 E0 2E E0 31 E0 +39 F5 DC 77 B3 3F 88 9F 1C 86 D9 B9 3A 17 D3 53 6D 1A F8 4A 31 ED B9 DD A2 4C 20 9A CD 94 18 F0 +06 F0 61 8B 62 D7 00 57 A8 E7 AE 2D E0 FA 63 81 FB B0 EB C1 B0 11 38 4E 3D 37 63 51 66 24 63 FE +97 B1 4B FC 7C E0 F4 42 88 07 08 CB 9D 1E D6 B3 85 0F 63 DA 65 15 DD EA F9 E2 27 FB 03 1F C3 F4 +B2 F1 18 4F B1 D3 81 2E BB 6D E4 A1 4E 3D 77 6F 7B AB FB 84 F8 C9 07 80 0A 4B BA 64 80 67 30 86 +C3 35 E1 DF 8B EA B9 3B BB 2A B0 60 F2 C5 4F 96 00 E7 63 08 CE 92 7D 02 D1 CD 98 36 03 1F 55 CF +DD DC 55 01 E2 27 0F 07 FE 02 1C 6E 4D AB F6 08 80 57 C8 DD 8C 17 80 DF AA E7 B6 14 52 B9 98 07 +EE 95 80 5F AC 76 DD C0 9C EE 10 0F A0 9E BB 59 FC E4 1C 8C B7 44 14 70 30 B3 AD 93 80 4B C3 EF +3C 0A DC ED 2A A6 D7 0E 28 4E AF 6E A1 51 3D B7 CE 86 A0 50 4E A3 0D 59 05 A2 60 9E 7A AB AF E6 +EA 5E 2E CF 0A 7A 2B F9 CF F5 72 79 56 D0 5B C9 3F D8 F3 7B 10 7B 75 EF EB 25 F2 AC A0 B7 92 7F +5C 2F 97 67 05 BD 95 FC 13 7A B9 3C 2B E8 AD E4 5F 22 7E B2 D0 00 B8 4E 11 CA E9 F2 2A 39 4A 14 +43 FE FE 0C AD 3C 1E B3 9A B6 81 F3 43 79 FB 0B 05 F3 54 CC 0A B7 16 78 8D 9C 0D 67 1C 30 1A E8 +5B 8C 66 45 60 BE F8 C9 86 42 97 EA 1D 21 34 89 D8 34 B0 E5 A3 19 F8 2B C6 AC 90 B5 F9 3C 51 68 +E5 82 C9 0F CD A9 0D E1 1F 00 E2 27 E3 C0 C9 E4 6E C6 29 C0 79 85 CA DC 07 4E C3 10 77 63 37 64 +CC 0F E5 D8 C2 EF 80 E7 C9 91 FD 37 F5 DC 74 57 85 45 61 CF FF 09 F6 DC 46 14 F8 86 7A EE 0F BA +A0 C7 0D C0 1D 14 1E 3C BD 2F FC 54 3D F7 3F 2C C9 02 A2 21 7F 14 E6 5F D1 26 EE C5 84 11 35 17 +70 FD BE 98 30 9F E9 96 75 18 AD 9E BB CE A6 C0 A8 F6 70 57 01 67 5B 16 FB 22 50 DE 99 BF 64 E8 +A8 9B C0 EC 31 D8 C4 13 EA B9 9F B1 2C 33 B2 A9 66 14 A6 E7 8F 01 1F DD 47 99 8F 62 9F 78 88 C8 +94 1E 15 F9 FF 8B 7D 5F CD B7 31 31 BD 9D 61 65 58 CE 26 B6 62 DA 63 1D 51 F9 6A EE C6 04 12 DB +84 BF AF 99 45 F8 BB ED 5E BA 34 6C 8F 75 44 B9 C2 B5 16 BB 04 A4 8B 90 57 13 96 B7 05 9B ED 68 +87 C8 C8 57 CF FD 0B F6 86 9E 84 7A 6E 41 BB 51 61 B9 84 A5 EB 6E 0D DB 11 09 A2 0C FF BF 1C 18 +6A 49 DC 3D 11 97 DF 1B 86 76 27 69 C7 BE 10 D5 54 F3 68 4C 1E 03 1B 11 E4 7F 53 CF 1D D5 05 1D +D6 61 56 DF DD 45 13 30 46 3D F7 2D 0B B2 DA C1 7A CF 0F AD 88 4B B0 43 3C C0 82 FD 5C 2F 1F 83 +81 25 B6 AC AC 6D 11 C5 B0 33 1B 7B 16 C9 1D 18 D7 BF AE E0 BE B0 BE 0D 9C 8F 69 97 55 58 25 5F +FC E4 09 18 7B 8A 2D FC 5C 3D B7 A9 2B 15 C3 7A 3F B7 A8 CB 1D 61 FB AC C1 1A F9 A1 83 EC 52 A0 +BF 2D 99 74 FF C1 69 EB C1 0B A6 5D 4B BB 93 C1 2A 1F 36 7B FE 37 80 33 2D CA FB A3 7A 6E B7 22 +5B C2 FA 7F B4 A4 0F 98 F6 7D C3 96 30 9B E4 7F D5 A2 2C B0 D7 6B 6D F6 7E B0 D8 4E 9B E4 5F 81 +D9 D9 B1 81 2D D8 F3 AF 7C 20 94 67 03 CD 98 76 5A 81 35 F2 D5 73 1F 01 CA 29 EE 06 28 F0 3F C0 +43 79 DF DF 5B 88 ED BE 40 BD 9A 31 FB 01 6D F1 50 78 DD 62 16 39 CD 18 93 F6 23 36 F4 02 FB B9 +17 8A B9 01 6F 02 E7 A9 E7 7E 45 3D 77 12 26 C3 D4 2A 8C DB 75 B5 4D BD 42 79 41 28 FF 2C F5 DC +49 EA B9 5F C1 6C 79 BE 59 40 7D EB C4 43 74 2B DC 8B 31 F6 95 BD 6D AE D7 02 D7 AB E7 6E EB A0 +EE D1 51 AC 26 F7 26 57 FC E4 20 E0 C7 18 17 F8 8E 10 09 F1 10 6D 1C 6E 47 37 E0 3D C0 53 CF 4D +46 72 D1 6E 40 FC A4 8B 31 47 1F D1 E6 EB C8 88 87 68 AD 9A F9 43 50 02 63 23 E9 75 C4 03 84 7A +8D 21 67 11 8D 94 78 D8 0F F9 F3 C5 4F 7E 1A 18 6E 2B D8 61 7F 40 FC 64 05 26 40 23 D2 CC 59 07 +C4 E1 05 FF AA E8 AD BE 9A FF 2F 70 90 FC 1E C4 41 F2 7B 10 07 C9 EF 41 1C 24 BF 07 71 90 FC 1E +44 1C 40 FC 15 FD 91 CC 6C 94 B3 50 FA 01 7F 42 32 0B D5 9B DA 08 20 8B 96 1D 4D 26 B6 08 61 23 +E2 FC 08 74 2E AA 27 80 AE 25 16 FC 40 AF 9E BA 21 2B 50 40 A8 4E 4C C7 61 32 EA 0C 41 83 35 68 +FC 4E 9D 39 A9 D5 93 4C AA 93 8F 20 A4 08 62 B3 88 65 6E 41 39 09 E1 61 E2 A9 FB F4 AA 8A 4E A3 +CE A5 BA FE 34 24 98 08 72 2E E8 56 90 75 A4 A9 D6 D9 EE C6 D6 32 FE 8A 0F 41 7A 16 22 67 A2 64 +10 79 9A DD 25 3F D5 6B 27 6E 33 ED A9 1F 4B 46 EF 40 58 AD 9E 7B 4B 6B BD 9A E5 E7 10 38 37 21 +34 A8 E7 DE DE AE DD 8E DC 8D EA D7 51 8E 02 EA 29 49 DD AF 57 55 6C 96 EA E5 E3 10 67 16 30 0A +65 23 8E 3C CE A6 41 4B 74 DE 84 34 80 DC 5B 7F 08 69 FD 26 AA 9F 44 64 17 C8 E3 34 97 DC A5 D7 +4E 6C 16 EE 7A 78 10 7D 53 7F 04 F2 3D 04 DE 45 63 67 6B E5 A4 57 C4 5F 71 32 64 D6 61 F6 44 1D +DA 1F A3 F1 0E 64 4E 69 BD 51 7E F2 7E CC A1 03 6D B1 0D 71 CE D7 19 93 9F 0D CB 28 C6 D0 B5 85 +F6 CB F9 9D 88 73 BA CE 98 DC A1 AF 8C F8 89 AF 83 74 E4 2E BE 03 63 A4 FB 93 2C 4C 8C C4 91 A7 +80 FC 23 42 5E 25 96 3A 43 AF AE F8 A7 2C 4C 4C C0 91 C7 50 1E D5 4A B7 35 FF A7 D4 D4 5F 86 EA +FD C0 2F D5 73 2F 6B D3 EE ED 61 BB C3 5D 3A D9 4C 26 7D 26 F1 F8 79 A8 2E 20 3F D1 87 EA EF E9 +CB 34 00 52 F2 67 60 64 9E 2E 6B E9 D7 EF 53 0E A5 A9 9B 31 C4 6F 04 AE 47 F5 4B 18 8F E0 61 38 +E9 FC A4 CD 03 80 DF A3 72 0E A2 97 62 6C 35 47 42 7C 96 51 3E 31 11 43 FC 1B 88 7C 11 62 A7 A2 +F2 00 30 08 0D F2 DD 07 1D 60 13 C8 25 28 D3 41 5E 07 FA A3 C1 BC 0E C8 CD D2 73 63 D8 B8 EB 88 +65 46 12 E8 19 20 FF 85 92 C0 73 9F 31 52 E5 76 0C F1 EB 40 AE 44 65 16 B0 1E 38 9E 74 C9 B7 F7 +2E BB 53 0C 04 9E 04 BD 08 F8 1A 9A 71 D1 58 0B AA 3F 0C DB 51 8F 52 16 72 F2 32 48 23 A9 F7 76 +90 92 2A 60 24 CA A3 08 67 A1 94 61 B8 1D CB AE 5D F3 E2 A8 5C 0C 0A AA DF D4 CA F2 FB 01 A4 7A +F9 5F 11 67 8D F9 2D 0F E9 92 6B 74 F6 E7 DE 01 90 9A E4 31 28 77 82 8E 36 A4 38 E5 A1 AC FF 56 +CF FD 05 80 D4 26 2A 49 89 0B 9C 2C 0B 13 23 75 66 F9 FA 36 64 7E 4D BD B2 C7 CC 35 93 20 DC 0B +D2 E1 59 27 52 57 17 83 3E 31 20 4D 89 F3 2B 9D 5E BE 09 D8 80 49 C3 D2 16 46 67 0D AE D6 CA 29 +4F 1B D9 0F 36 22 41 02 E9 A0 3D 85 41 09 B4 32 D4 FD D7 A6 ED F5 D7 A3 3A 10 58 AD 9E EB B6 EA +79 4F DD C3 CC AE D8 A1 A0 E2 27 CB 01 08 32 B3 B5 72 EA EB 21 67 71 94 65 C0 E7 E2 A0 E6 3C 12 +47 73 21 F2 87 A6 5F 62 6B 9F 9D 40 7F F9 E9 F2 C3 28 29 C9 FE B2 2D 4B 7C 88 D7 C2 D7 21 A1 8E +C6 49 49 E4 02 F1 13 6D 49 FC 00 E8 4B 4C 8E C7 F4 42 80 16 1A FF FC 38 84 E7 C1 C4 32 BF 21 88 +01 DA 61 E2 08 AD A8 C8 88 9F 5C 02 DC 48 5A D7 8B 9F 5C 0B F2 1E 12 AC 03 7E A6 33 CA D7 C8 CF +7E 3D 00 E3 67 93 61 67 3A B7 FF 2B 2D CF 84 23 43 57 CE 5E 01 F4 D5 F6 9D 06 50 0D 87 69 6D B7 +11 A4 B3 2B B6 43 F8 1C 35 49 92 76 10 73 BE 2D 7E 68 AF 13 A7 4F B8 87 73 72 9C 6C C6 6F 4D B7 +E6 2C 0B 1B BA 19 38 96 52 1D 48 2E B9 55 7B 37 0E 71 9A D0 00 90 AC D9 F8 D0 F0 75 72 87 D1 38 +81 B4 8D 01 0B 74 DE BC A0 F5 53 AA 34 4D 7C 1F B1 6F 2D C1 F7 29 71 52 98 A8 93 53 CD 7F 99 4C +04 E6 C8 E2 FA 31 68 6B 24 E0 07 3A B7 62 57 AE E2 96 2D 30 2C 0D F4 97 AA 2A 87 61 C5 9E DE 27 +C1 9E 5F 71 98 E1 D0 79 A3 C3 2A 01 43 71 10 60 00 48 6E EB 31 67 4B 8B C5 31 E9 50 8E 43 E2 E3 +81 C7 01 4C 6F 77 8E 05 60 67 BF 77 E8 9B C9 46 70 1F 25 BE 5F A2 9E D7 12 0A 1A 19 4A 0C 6F 8A +FE 1D 64 0C 4A 99 56 BA 0F 16 D9 C2 7D 42 E7 4C F9 07 70 8B 54 55 7D 9B C3 3F 71 04 B1 F4 D1 88 +7E 0B 98 46 9A CB 78 E7 CF F3 19 3E 3E 03 0C 91 C5 CB 8E 6D 9D 85 39 47 8C 25 20 0E 34 EA BC 79 +81 D4 2C 57 54 40 F2 D2 91 69 11 E9 C9 94 97 C3 37 17 D2 91 63 D7 CC 49 9B F0 93 3B 00 A5 5F BF +23 F5 F2 0B F7 70 E0 72 00 13 66 A3 CE 54 F1 FD 12 01 A1 24 F6 C5 F0 F7 B7 F5 DA 89 CD ED CB 1F +99 3B 6F 56 35 FB FE 9F E1 6B F6 34 9E AB A4 AA CA 01 90 BB 57 0E 92 9A FA 2F 4B 5D 5D B7 32 FE +49 5D 5D 4C FC E4 0F C5 AF 3F 57 E7 CD 0B 74 F6 E7 DE D1 CA B2 D5 48 E8 1A 22 3A 3E FC 4F 5A 0F +40 10 AB 90 AA 2A 47 AA 1A E2 04 8E 09 82 96 B0 AD 69 CD 4E 4B 47 8B BF FC D3 90 1D 26 F4 2B 85 +2B D4 9A C9 E4 62 59 58 FF F1 D6 AF 6B 12 57 4A F5 F2 71 6A C6 96 97 80 81 EC DA D9 9A 9F 4D 16 +D7 1F 2F 7E FD E7 01 E2 A8 7E 0F 91 F3 80 EB 60 D8 17 F0 93 4D E4 A6 9D DF DB F3 AA FA 2B F1 93 +7F 00 8E 6C 2D A7 84 B6 FA F8 4F 20 98 8D E8 14 86 8F 7F 53 AA EB 9F A2 AF 4E 44 39 84 F7 4B AE +10 B8 48 8B DB B4 CE 61 6B 89 07 CC 05 FD AA F8 C9 E7 50 5E 02 86 23 61 AE 66 D5 95 E1 EB F7 10 +59 84 72 27 C3 C7 57 42 53 1F E0 18 F3 9B 98 F6 CC 9A FA 06 7E F2 AF C0 68 70 56 89 9F CC 4E B5 +87 14 AC CF 0C 37 41 75 F2 09 84 B3 71 F4 79 F1 13 CF 83 F4 03 19 85 C8 56 59 52 77 12 D2 67 1E +CA 23 20 D5 E2 27 2A C1 79 37 9C 31 39 E2 27 6E 70 B4 B2 FC 77 66 AA C7 36 CC 14 6D 14 D0 02 F2 +5D 1A D7 E4 3B 9B 6E 40 B9 1F 93 BF 32 7B 83 6E CF 0E 31 EA 4D DA 82 F2 05 4C B2 D1 A3 10 BD 04 +38 04 78 0D 8D 7F AB CB C4 03 EA 95 2F 08 A7 72 1B 81 D3 10 AE 44 B8 08 78 15 B8 49 2B CB 17 03 +50 59 7E 2F 22 37 63 76 A2 8E C7 10 BF 13 74 B6 7A 65 0F 81 79 52 40 6C 1A C8 4A F3 91 4F 82 B4 +80 14 1C D5 A2 A0 48 E6 52 44 C3 9D 39 39 25 E4 64 13 2A 97 EA 55 15 9B 75 86 FB 28 AA D7 01 4D +E6 77 9D 08 38 A8 AC 20 D6 B2 A4 75 33 45 AA 1A E2 1C B9 6D 3C 4E 66 00 DB D3 CF B4 7D 60 B5 59 +6C BC AC 9E 7B B2 F8 2B 8E 41 83 D1 68 E6 79 9D 39 E5 BD 7C C5 A4 AA 21 CE 51 EF 8F 23 23 23 70 +82 97 99 31 E5 95 B6 C4 CB A2 07 CF 24 9D 09 74 66 F9 33 B9 6B F8 25 38 C3 4F 25 90 94 7A 93 9E +EF AC E1 66 E5 19 1F 43 09 6B 75 7A 59 87 E9 D5 E5 EE 95 7D 29 69 39 8D B8 64 08 1A 9F 6B 7D 4E +E5 97 5B 98 18 49 4C 8F A5 74 C0 6A B6 ED 28 A5 6F FC 04 44 B7 E8 D5 65 AF 4A 6D 43 29 E9 0F C6 +93 49 EF D2 CA 29 7B CD A7 6C 64 30 8A 40 36 68 A5 BB 47 18 AC F8 75 83 71 FA 8C 25 23 03 C8 C4 +D7 B4 4E D5 0B D9 C9 CA 27 7F 9F 15 22 80 D4 26 86 90 6A 51 F5 2A BA E4 38 DB 1B 71 40 A4 58 97 +DA 86 52 52 B2 15 FA 34 13 6D 7E E6 FD 8A 83 56 CD 1E C4 41 F2 7B 10 5D 22 5F AA AA 1C 59 52 D7 +69 96 56 A9 4D 0C 91 BB 57 0E EA F0 37 DF 2F 91 DA 86 D2 D6 B5 C0 E2 BA 43 F3 D7 01 02 22 F7 3C +7C 64 87 F5 EF 5E D9 57 6A 1B 4A 25 6F 19 2D BE 5F D2 D1 7A 42 6A 1B 4A A5 B6 A1 B4 7D D9 BA C1 +E2 D7 75 18 BA D4 AA 5F 5D 5D 0C 40 16 3C 34 54 EE 5E B9 87 F7 9D DC 53 37 50 16 D5 0F EB 48 46 +21 28 F6 81 FB 77 4C 00 C4 CD 40 7F 84 06 54 7F AC 5E 79 22 57 36 F9 25 CC FA E0 18 4C FE E1 35 +C0 2A 88 CD 57 6F D2 96 B0 CC 2F 80 4B 41 6F 00 F9 22 26 FD FA 3F 81 85 78 EE 2D F8 89 5B 40 E6 +62 A2 19 DF 46 E4 86 D0 D4 DB AC 9E 5B 2A 7E 72 35 70 2A 2A 17 6A 65 D9 6F DA 5C FB 15 60 10 8D +6B 86 67 4D 17 C6 FE AF CF 02 6F E1 B9 C7 50 9D 9C 86 70 27 C6 CC 1B 00 2F A0 BA 8A 4C 9F DB 5B +67 21 7E A2 D6 98 04 E4 D6 70 7A 78 06 F0 3E 48 AD 7A 65 73 A5 66 F9 89 E0 54 A3 9C 83 E9 00 9B +40 6E 56 AF AC A8 10 A6 62 7B FE 89 C0 6D 21 A9 01 CA 04 90 5F 49 75 FD 67 20 34 4B A0 B7 62 0E +13 58 0B FA 3C 66 EE 3B 17 49 77 10 A2 23 3F C0 E4 E8 69 02 06 A3 D2 80 9F 98 09 F2 1D 0C F1 DB +81 41 21 F1 6D B1 DC BC B4 AE B0 91 EA E5 E3 30 F3 FA 23 18 31 36 97 74 C3 E1 82 B0 6C 02 BF 6E +10 C2 77 30 1D E3 45 E0 59 E0 44 44 AE 27 D6 D2 81 4B BA DE 8A 21 BE C9 E8 21 0D E2 AF E8 8F 3A +BF 35 6D 67 1B C6 B8 38 02 B4 56 6A EA 8B CA 74 52 FC B0 23 7A 1B 3B 52 C3 08 F4 DF 30 C9 42 1D +24 B8 02 B2 B6 97 96 4F A0 72 AE 7A EE 38 F5 CA 4F 87 D8 28 20 85 CA 67 43 AB 63 5B AC 27 93 39 +1E DE 3D 1C 47 4E 09 7B F1 55 E1 85 16 30 34 35 84 C6 C1 87 62 CE CC 6D A3 75 B0 CC 14 E1 A2 9C +5E B1 69 6D 0A B4 79 9F BD 41 CE 32 F5 2A 9A 48 A7 4E 07 39 5F 3D 77 AC 7A EE 99 94 A4 8E 03 76 +21 9C 2D B5 89 FC 15 EE 26 34 76 22 8D 83 3F 84 06 A7 68 E5 E4 24 9A B9 16 63 AD 4C 40 6C 04 9E +7B 02 E6 1C 5F 50 BD 23 7F 28 EC 0C C5 92 BF 8B 98 73 87 CE AD D8 A5 33 CB D7 87 BB 38 80 B4 CE +FD D5 AB 68 D2 CA B2 55 B9 CF 93 DE C4 1C 66 10 63 FB EE FC E3 35 6A 74 D6 D4 D7 D5 F3 5A F4 9A +B2 30 3F BE 7C C8 68 26 4B B5 A2 22 A3 F3 26 A4 D1 A0 9D 7F BD 5E 33 65 1D F0 37 E0 63 E2 2F 0B +4F 71 D6 69 98 5E F8 07 94 29 02 62 7A 29 9F 02 FE C1 D0 E6 55 60 4C BE D9 3D 04 00 B3 6D 29 7F +07 A0 59 8F CD D3 6F A9 56 4E 7A 45 E7 4D 48 B7 59 64 9D 11 D6 5C A0 DE A4 9D 66 F1 F8 EE BD 98 +5D B9 C3 A8 5E 51 70 3E B7 62 E7 F9 6F EA F4 B2 5C 02 B7 58 EC 2F 04 01 B4 D9 46 93 EA FA 99 88 +7A 98 21 2A 2B DF 3C 04 63 4E 5E AF D0 0E 92 22 C9 40 50 48 A7 73 79 75 94 D7 F6 E8 4F AA CB 11 +B9 09 8D 5D 20 FE 8A 67 80 D1 20 3F 42 78 0F D5 F9 2C 7A F0 0C 24 33 14 95 3E 40 BD 56 54 64 00 +A4 A6 7E 3A 1A CC 01 39 11 C8 6E 54 18 FD 1C 69 7F 15 D1 97 F7 54 2F 1B 58 2D F5 E2 67 7D 7E 87 +B5 91 D1 32 02 93 D6 7D 9F B0 BA C8 92 85 F5 67 E1 E8 02 60 37 CA B3 38 6A AC 9D 2A E7 51 F0 49 +A1 6A 6C E7 71 CD CD 5A E2 DA 87 3D 2C EA CE 32 D0 9B CC D0 93 31 A6 60 47 1E 24 9D 7E 0F C7 99 +4F 26 98 86 88 E9 14 62 86 29 59 94 38 15 95 C5 20 CD 08 AB 41 B7 84 FA 9D 0B 74 38 33 EB A0 95 +A9 D0 52 F2 24 A2 7B 66 AA CD 50 F0 C1 36 76 57 B8 4E 30 03 04 54 2E 6A 3B F4 88 9F DC 44 E1 C7 +B4 6E 07 86 41 EC 38 CC 89 40 90 89 7F 04 69 3F 2B D3 CA B2 D5 E2 27 37 62 02 94 47 03 EF F3 F6 +21 AB 74 DE 84 B4 F8 C9 0D 88 4C 05 DD 0D 6C 67 77 A9 99 11 05 32 23 AC 5D A6 33 CA 7F DD 46 BF +37 28 98 7C 5D 07 8C 43 F5 7E F5 42 63 5E 17 61 79 91 E5 1C 11 4A FD B8 D4 D5 F5 11 90 70 53 7D +78 11 42 8C 8B 49 C0 8D E2 AF 38 46 16 2F 3B 16 D1 9B C2 DF F2 E7 C5 CB 31 DE 0F E3 81 47 B2 EE +1A C0 0A D0 8F 00 A3 51 79 B8 75 4F 42 B3 9E 12 72 5A 76 9D 20 7E FD B9 EC E9 5D D0 09 E4 29 F3 +22 D7 C9 A2 07 CF 94 AA 86 B8 D4 D4 5F 26 7E B2 5E 16 D4 9F 54 44 3B 2D 93 AF 7A 5F F8 FA 23 B6 +F6 79 1F 3F B9 1D 95 87 8B 93 21 3F 0E DF 4D 86 CC 06 32 B1 F5 E4 D2 09 B4 1F 93 03 5D DE E6 53 +6E E7 4C 65 45 EB 7B 87 5C 19 D1 AC 07 C5 7F 92 6A DA 8A 9F FC 00 F4 F7 45 E9 37 B4 79 01 E8 B3 +C0 58 82 E0 69 86 37 6D 0B A7 C2 93 89 E9 5D C5 88 2A 90 FC 74 0B B0 01 D5 F6 29 B4 D2 DA 8C F1 +20 68 04 D0 4A F7 97 88 FE 3B B0 16 D3 4B DF 45 F4 36 CC D9 56 1B 42 39 80 6E 0E EB ED 71 D8 8B +56 96 2D 0B ED F6 7F C2 CC A3 57 85 CF 8C 0D E1 5F 0E 87 B5 3C 11 5E EB 0D 32 F1 5C 0A B0 54 C9 +63 98 05 E1 6B C4 72 91 8E EA 95 27 8C 4B 0B 6B 30 6B 95 2D 08 DF 47 79 14 D8 40 20 A9 90 96 2D +E1 E7 3D C6 74 F3 E0 6E B9 00 E4 0E CC EC 2A 00 9E 03 F9 2E 43 53 93 3B E7 B1 3D FE 0F E4 2C B5 +B8 3A B8 3B 5D 00 00 00 00 49 45 4E 44 AE 42 60 82 AC $EndBitmap +EndData +$EndBitmap +Wire Wire Line + 5350 4600 5250 4600 +Wire Wire Line + 5350 4400 5250 4400 +$Comp +L GND #PWR09 +U 1 1 550CF9FF +P 5350 4700 +F 0 "#PWR09" H 5350 4700 30 0001 C CNN +F 1 "GND" H 5350 4630 30 0001 C CNN +F 2 "" H 5350 4700 60 0000 C CNN +F 3 "" H 5350 4700 60 0000 C CNN + 1 5350 4700 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5350 4400 5350 4700 +Connection ~ 5350 4600 +Text Notes 5050 4800 0 40 ~ 0 +chassis ground +$Comp +L GND #PWR010 +U 1 1 550CFBE5 +P 5350 6250 +F 0 "#PWR010" H 5350 6250 30 0001 C CNN +F 1 "GND" H 5350 6180 30 0001 C CNN +F 2 "" H 5350 6250 60 0000 C CNN +F 3 "" H 5350 6250 60 0000 C CNN + 1 5350 6250 + 1 0 0 -1 +$EndComp +Text Notes 5150 6400 0 40 ~ 0 +chassis ground +$Comp +L PWR_FLAG #FLG011 +U 1 1 550CFBF4 +P 5350 6150 +F 0 "#FLG011" H 5350 6245 30 0001 C CNN +F 1 "PWR_FLAG" H 5350 6330 30 0000 C CNN +F 2 "" H 5350 6150 60 0000 C CNN +F 3 "" H 5350 6150 60 0000 C CNN + 1 5350 6150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5350 6150 5350 6250 +$Comp +L CONN_1 P5 +U 1 1 550D1AD1 +P 5000 6150 +F 0 "P5" H 5080 6150 40 0000 L CNN +F 1 "GND" H 5000 6205 30 0001 C CNN +F 2 "mfk-AVA-20ga" H 5000 6150 60 0001 C CNN +F 3 "" H 5000 6150 60 0000 C CNN + 1 5000 6150 + -1 0 0 1 +$EndComp +Wire Wire Line + 5150 6150 5350 6150 +$Comp +L C C2 +U 1 1 550D2A54 +P 6900 5500 +F 0 "C2" H 6900 5600 40 0000 L CNN +F 1 "1u" H 6906 5415 40 0000 L CNN +F 2 "mfk-C_4.0_2.5_2.5_0.5" H 6938 5350 30 0001 C CNN +F 3 "TDK FK18X5R1A105K" H 6900 5500 60 0001 C CNN + 1 6900 5500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6900 5150 6900 5300 +$Comp +L DGND #PWR012 +U 1 1 550D2ACA +P 6900 5800 +F 0 "#PWR012" H 6900 5800 40 0001 C CNN +F 1 "DGND" H 6900 5730 40 0000 C CNN +F 2 "" H 6900 5800 60 0000 C CNN +F 3 "" H 6900 5800 60 0000 C CNN + 1 6900 5800 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6900 5800 6900 5700 +NoConn ~ 8300 4400 +NoConn ~ 8300 4850 +Connection ~ 8450 5000 +Wire Wire Line + 8450 3750 8450 4100 +Wire Wire Line + 7600 3650 7600 3750 +Connection ~ 7600 3750 +Wire Wire Line + 6900 4100 6750 4100 +Wire Wire Line + 6150 4150 6150 4400 +Connection ~ 8450 4100 +Wire Wire Line + 8300 5150 8450 5150 +Connection ~ 8450 5150 +Wire Wire Line + 6900 5000 6400 5000 +Wire Wire Line + 6400 5000 6400 6150 +$Comp +L CONN_3 P3 +U 1 1 551F2247 +P 2750 1800 +F 0 "P3" V 2700 1800 50 0000 C CNN +F 1 "PWR" V 2800 1800 40 0000 C CNN +F 2 "mfk-TE_282834-3" H 2750 1800 60 0001 C CNN +F 3 "" H 2750 1800 60 0000 C CNN + 1 2750 1800 + -1 0 0 -1 +$EndComp +Wire Wire Line + 3650 1800 3100 1800 +Wire Wire Line + 3100 1700 3350 1700 +Wire Wire Line + 3150 1250 3150 1700 +Text Label 3150 1250 3 60 ~ 0 +V_MOT +Wire Wire Line + 6750 4100 6750 3750 +Wire Wire Line + 6750 5150 6750 6150 +Text Label 6750 6150 1 60 ~ 0 +V_MOT +$Comp +L PWR_FLAG #FLG013 +U 1 1 551F243F +P 3350 1650 +F 0 "#FLG013" H 3350 1745 30 0001 C CNN +F 1 "PWR_FLAG" H 3350 1830 30 0000 C CNN +F 2 "" H 3350 1650 60 0000 C CNN +F 3 "" H 3350 1650 60 0000 C CNN + 1 3350 1650 + -1 0 0 -1 +$EndComp +Connection ~ 3150 1700 +Wire Wire Line + 3350 1700 3350 1650 +$Comp +L JUMPER J1 +U 1 1 552023B1 +P 4750 1800 +F 0 "J1" H 4750 1950 60 0000 C CNN +F 1 "PWR_BR" H 4750 1720 40 0000 C CNN +F 2 "mfk-SIL-2" H 4750 1800 60 0001 C CNN +F 3 "~" H 4750 1800 60 0000 C CNN + 1 4750 1800 + 1 0 0 -1 +$EndComp +$Comp +L +5VD #PWR014 +U 1 1 552023F3 +P 4400 1450 +F 0 "#PWR014" H 4400 1400 20 0001 C CNN +F 1 "+5VD" H 4400 1550 50 0000 C CNN +F 2 "" H 4400 1450 60 0000 C CNN +F 3 "" H 4400 1450 60 0000 C CNN + 1 4400 1450 + -1 0 0 -1 +$EndComp +Wire Wire Line + 4450 1800 4400 1800 +Wire Wire Line + 4400 1800 4400 1450 +Text Label 5100 1350 3 60 ~ 0 +V_MOT +Wire Wire Line + 5050 1800 5100 1800 +Wire Wire Line + 5100 1800 5100 1350 +Text Notes 4000 2000 0 60 ~ 0 +Use jumper to power motor from +5VD. +$EndSCHEMATC diff --git a/samples/KiCad/nrf-bga.kicad_pcb b/samples/KiCad/nrf-bga.kicad_pcb new file mode 100644 index 00000000..ddd092ce --- /dev/null +++ b/samples/KiCad/nrf-bga.kicad_pcb @@ -0,0 +1,928 @@ +(kicad_pcb (version 4) (host pcbnew "(2014-08-05 BZR 5054)-product") + + (general + (links 36) + (no_connects 0) + (area 146.9984 92.8984 164.465656 112.3572) + (thickness 1.6) + (drawings 0) + (tracks 108) + (zones 0) + (modules 12) + (nets 54) + ) + + (page A4) + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user) + (33 F.Adhes user) + (34 B.Paste user) + (35 F.Paste user) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user) + (41 Cmts.User user) + (42 Eco1.User user) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user) + (46 B.CrtYd user) + (47 F.CrtYd user) + (48 B.Fab user) + (49 F.Fab user) + ) + + (setup + (last_trace_width 0.1016) + (trace_clearance 0.1016) + (zone_clearance 0.2032) + (zone_45_only no) + (trace_min 0.1016) + (segment_width 0.2) + (edge_width 0.1) + (via_size 0.889) + (via_drill 0.635) + (via_min_size 0.889) + (via_min_drill 0.508) + (uvia_size 0.508) + (uvia_drill 0.127) + (uvias_allowed no) + (uvia_min_size 0.508) + (uvia_min_drill 0.127) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.15) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 0.2 0.2) + (pad_drill 0) + (pad_to_mask_clearance 0) + (aux_axis_origin 0 0) + (visible_elements FFFCFF7F) + (pcbplotparams + (layerselection 0x00000_00000001) + (usegerberextensions false) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15) + (hpglpenoverlay 2) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 5) + (mirror true) + (drillshape 0) + (scaleselection 1) + (outputdirectory pdfs/)) + ) + + (net 0 "") + (net 1 "Net-(C1-Pad1)") + (net 2 GND) + (net 3 "Net-(C2-Pad1)") + (net 4 "Net-(C3-Pad1)") + (net 5 "Net-(C4-Pad2)") + (net 6 "Net-(D1-Pad1)") + (net 7 +BATT) + (net 8 SWDIO) + (net 9 SWCLK) + (net 10 LED) + (net 11 "Net-(U1-PadC1)") + (net 12 "Net-(U1-PadD1)") + (net 13 "Net-(U1-PadG1)") + (net 14 "Net-(U1-PadE2)") + (net 15 "Net-(U1-PadF2)") + (net 16 "Net-(U1-PadG2)") + (net 17 "Net-(U1-PadE3)") + (net 18 "Net-(U1-PadF3)") + (net 19 "Net-(U1-PadG3)") + (net 20 "Net-(U1-PadH4)") + (net 21 "Net-(U1-PadA5)") + (net 22 "Net-(U1-PadB5)") + (net 23 "Net-(U1-PadC5)") + (net 24 "Net-(U1-PadH5)") + (net 25 "Net-(U1-PadA6)") + (net 26 "Net-(U1-PadB6)") + (net 27 "Net-(U1-PadC6)") + (net 28 "Net-(U1-PadH6)") + (net 29 "Net-(U1-PadA7)") + (net 30 "Net-(U1-PadB7)") + (net 31 "Net-(U1-PadC7)") + (net 32 "Net-(U1-PadE7)") + (net 33 "Net-(U1-PadF7)") + (net 34 "Net-(U1-PadG7)") + (net 35 "Net-(U1-PadH7)") + (net 36 "Net-(U1-PadA8)") + (net 37 "Net-(U1-PadD8)") + (net 38 "Net-(U1-PadE8)") + (net 39 "Net-(U1-PadF8)") + (net 40 "Net-(U1-PadG8)") + (net 41 "Net-(U1-PadH8)") + (net 42 "Net-(U1-PadE9)") + (net 43 "Net-(U1-PadF9)") + (net 44 "Net-(U1-PadH1)") + (net 45 "Net-(U1-PadJ3)") + (net 46 "Net-(U1-PadJ4)") + (net 47 "Net-(U1-PadJ5)") + (net 48 "Net-(U1-PadJ6)") + (net 49 "Net-(U1-PadJ7)") + (net 50 "Net-(U1-PadJ8)") + (net 51 "Net-(U1-PadH9)") + (net 52 "Net-(C5-Pad1)") + (net 53 "Net-(ANT1-Pad2)") + + (net_class Default "This is the default net class." + (clearance 0.1016) + (trace_width 0.1016) + (via_dia 0.889) + (via_drill 0.635) + (uvia_dia 0.508) + (uvia_drill 0.127) + (add_net +BATT) + (add_net LED) + (add_net "Net-(C1-Pad1)") + (add_net "Net-(C2-Pad1)") + (add_net "Net-(C3-Pad1)") + (add_net "Net-(C4-Pad2)") + (add_net "Net-(C5-Pad1)") + (add_net "Net-(D1-Pad1)") + (add_net "Net-(U1-PadA5)") + (add_net "Net-(U1-PadA6)") + (add_net "Net-(U1-PadA7)") + (add_net "Net-(U1-PadA8)") + (add_net "Net-(U1-PadB5)") + (add_net "Net-(U1-PadB6)") + (add_net "Net-(U1-PadB7)") + (add_net "Net-(U1-PadC1)") + (add_net "Net-(U1-PadC5)") + (add_net "Net-(U1-PadC6)") + (add_net "Net-(U1-PadC7)") + (add_net "Net-(U1-PadD1)") + (add_net "Net-(U1-PadD8)") + (add_net "Net-(U1-PadE2)") + (add_net "Net-(U1-PadE3)") + (add_net "Net-(U1-PadE7)") + (add_net "Net-(U1-PadE8)") + (add_net "Net-(U1-PadE9)") + (add_net "Net-(U1-PadF2)") + (add_net "Net-(U1-PadF3)") + (add_net "Net-(U1-PadF7)") + (add_net "Net-(U1-PadF8)") + (add_net "Net-(U1-PadF9)") + (add_net "Net-(U1-PadG1)") + (add_net "Net-(U1-PadG2)") + (add_net "Net-(U1-PadG3)") + (add_net "Net-(U1-PadG7)") + (add_net "Net-(U1-PadG8)") + (add_net "Net-(U1-PadH1)") + (add_net "Net-(U1-PadH4)") + (add_net "Net-(U1-PadH5)") + (add_net "Net-(U1-PadH6)") + (add_net "Net-(U1-PadH7)") + (add_net "Net-(U1-PadH8)") + (add_net "Net-(U1-PadH9)") + (add_net "Net-(U1-PadJ3)") + (add_net "Net-(U1-PadJ4)") + (add_net "Net-(U1-PadJ5)") + (add_net "Net-(U1-PadJ6)") + (add_net "Net-(U1-PadJ7)") + (add_net "Net-(U1-PadJ8)") + (add_net SWCLK) + (add_net SWDIO) + ) + + (net_class ANT "" + (clearance 0.1016) + (trace_width 0.254) + (via_dia 0.889) + (via_drill 0.635) + (uvia_dia 0.508) + (uvia_drill 0.127) + (add_net GND) + (add_net "Net-(ANT1-Pad2)") + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B59067) + (at 153.75 102.5 270) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B59137) + (attr smd) + (fp_text reference C1 (at 0 -1.7 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 12p (at 0 1.7 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 1 "Net-(C1-Pad1)")) + (pad 2 smd rect (at 0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B58E0D) + (at 159.004 100.711) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B591B6) + (attr smd) + (fp_text reference C2 (at 0 -1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 12p (at 0 1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 3 "Net-(C2-Pad1)")) + (pad 2 smd rect (at 0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B59E9D) + (at 159.004 102.1588) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B58D67) + (attr smd) + (fp_text reference C3 (at 0 -1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 100n (at 0 1.7) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 4 "Net-(C3-Pad1)")) + (pad 2 smd rect (at 0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B58E25) + (at 154.15 106.55 90) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /54B58DD5) + (attr smd) + (fp_text reference C4 (at 0 -1.7 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 100n (at 0 1.7 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0 90) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 2 smd rect (at 0.55 0 90) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 5 "Net-(C4-Pad2)")) + (model Capacitors_SMD/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module SMD_Packages:SMD-0805 (layer F.Cu) (tedit 54B58D88) (tstamp 54B58E32) + (at 162.0266 104.9782 90) + (path /54B599BA) + (attr smd) + (fp_text reference D1 (at 0 -0.3175 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value LED (at 0 0.381 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center -1.651 0.762) (end -1.651 0.635) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.508 0.762) (end -1.524 0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.524 0.762) (end -1.524 -0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.524 -0.762) (end -0.508 -0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start 0.508 -0.762) (end 1.524 -0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.524 -0.762) (end 1.524 0.762) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) + (net 6 "Net-(D1-Pad1)")) + (pad 2 smd rect (at 0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model SMD_Packages/SMD-0805.wrl + (at (xyz 0 0 0)) + (scale (xyz 0.1000000014901161 0.1000000014901161 0.1000000014901161)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Pin_Headers:Pin_Header_Straight_1x04 (layer F.Cu) (tedit 54B58D8A) (tstamp 54B58E41) + (at 156.7942 109.1946 180) + (descr "Through hole pin header") + (tags "pin header") + (path /54B593BB) + (fp_text reference P1 (at 0 -2.286 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value CONN_01X04 (at 0 0 180) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.54 1.27) (end 5.08 1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.54 -1.27) (end 5.08 -1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.08 -1.27) (end -2.54 -1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.08 1.27) (end 5.08 -1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.54 -1.27) (end -2.54 1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.08 -1.27) (end -5.08 1.27) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.08 1.27) (end -2.54 1.27) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole rect (at -3.81 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 2 thru_hole oval (at -1.27 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 7 +BATT)) + (pad 3 thru_hole oval (at 1.27 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 8 SWDIO)) + (pad 4 thru_hole oval (at 3.81 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 9 SWCLK)) + (model Pin_Headers/Pin_Header_Straight_1x04.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603 (layer F.Cu) (tedit 5415CC62) (tstamp 54B59E20) + (at 160.0454 105.0544 270) + (descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)") + (tags "resistor 0603") + (path /54B59A45) + (attr smd) + (fp_text reference R1 (at 0 -1.9 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R (at 0 1.9 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.3 0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.3 -0.8) (end -1.3 0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 0.675) (end -0.5 0.675) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 -0.675) (end 0.5 -0.675) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) + (net 10 LED)) + (pad 2 smd rect (at 0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) + (net 6 "Net-(D1-Pad1)")) + (model Resistors_SMD/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Crystals_Oscillators_SMD:CX2520DB (layer F.Cu) (tedit 544FEDED) (tstamp 54B58E9A) + (at 156.1084 101.3714) + (path /54B5903E) + (fp_text reference X1 (at 0 -2.25) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value CRYSTAL (at 0 2.5) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.25 1) (end 1.25 1) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.25 1) (end 1.25 -1) (layer F.SilkS) (width 0.15)) + (fp_line (start 1.25 -1) (end -1.25 -1) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.25 -1) (end -1.25 1) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.9 0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask) + (net 1 "Net-(C1-Pad1)")) + (pad 2 smd rect (at 0.9 -0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask) + (net 3 "Net-(C2-Pad1)")) + (pad 3 smd rect (at 0.9 0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask)) + (pad 4 smd rect (at -0.9 -0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask)) + ) + + (module NRF51:WLCSP62 (layer F.Cu) (tedit 54B59368) (tstamp 54B59DAD) + (at 156.9212 105.1306) + (path /54B58C30) + (fp_text reference U1 (at 0 3.2) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_text value nRF51x22-CEAA (at 0 -3.2) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_line (start -1.6 -2) (end -2 -1.6) (layer F.SilkS) (width 0.2)) + (fp_line (start -2 -1.6) (end -2 2) (layer F.SilkS) (width 0.2)) + (fp_line (start -2 2) (end 2 2) (layer F.SilkS) (width 0.2)) + (fp_line (start 2 2) (end 2 -2) (layer F.SilkS) (width 0.2)) + (fp_line (start 2 -2) (end -1.6 -2) (layer F.SilkS) (width 0.2)) + (pad A1 smd circle (at -1.6 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 7 +BATT)) + (pad B1 smd circle (at -1.6 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad C1 smd circle (at -1.6 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(U1-PadC1)")) + (pad D1 smd circle (at -1.6 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(U1-PadD1)")) + (pad E1 smd circle (at -1.6 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 52 "Net-(C5-Pad1)")) + (pad F1 smd circle (at -1.6 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 5 "Net-(C4-Pad2)")) + (pad G1 smd circle (at -1.6 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(U1-PadG1)")) + (pad H1 smd circle (at -1.6 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 44 "Net-(U1-PadH1)")) + (pad A2 smd circle (at -1.2 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 1 "Net-(C1-Pad1)")) + (pad E2 smd circle (at -1.2 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(U1-PadE2)")) + (pad F2 smd circle (at -1.2 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 15 "Net-(U1-PadF2)")) + (pad G2 smd circle (at -1.2 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 16 "Net-(U1-PadG2)")) + (pad H2 smd circle (at -1.2 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 9 SWCLK)) + (pad J2 smd circle (at -1.2 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 8 SWDIO)) + (pad A3 smd circle (at -0.8 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 3 "Net-(C2-Pad1)")) + (pad E3 smd circle (at -0.8 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 17 "Net-(U1-PadE3)")) + (pad F3 smd circle (at -0.8 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 18 "Net-(U1-PadF3)")) + (pad G3 smd circle (at -0.8 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(U1-PadG3)")) + (pad H3 smd circle (at -0.8 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad J3 smd circle (at -0.8 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 45 "Net-(U1-PadJ3)")) + (pad A4 smd circle (at -0.4 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 4 "Net-(C3-Pad1)")) + (pad B4 smd circle (at -0.4 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad G4 smd circle (at -0.4 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H4 smd circle (at -0.4 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 20 "Net-(U1-PadH4)")) + (pad J4 smd circle (at -0.4 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 46 "Net-(U1-PadJ4)")) + (pad A5 smd circle (at 0 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 21 "Net-(U1-PadA5)")) + (pad B5 smd circle (at 0 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 22 "Net-(U1-PadB5)")) + (pad C5 smd circle (at 0 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 23 "Net-(U1-PadC5)")) + (pad G5 smd circle (at 0 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H5 smd circle (at 0 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 24 "Net-(U1-PadH5)")) + (pad J5 smd circle (at 0 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 47 "Net-(U1-PadJ5)")) + (pad A6 smd circle (at 0.4 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 25 "Net-(U1-PadA6)")) + (pad B6 smd circle (at 0.4 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 26 "Net-(U1-PadB6)")) + (pad C6 smd circle (at 0.4 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 27 "Net-(U1-PadC6)")) + (pad G6 smd circle (at 0.4 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H6 smd circle (at 0.4 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 28 "Net-(U1-PadH6)")) + (pad J6 smd circle (at 0.4 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 48 "Net-(U1-PadJ6)")) + (pad A7 smd circle (at 0.8 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(U1-PadA7)")) + (pad B7 smd circle (at 0.8 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 30 "Net-(U1-PadB7)")) + (pad C7 smd circle (at 0.8 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 31 "Net-(U1-PadC7)")) + (pad D7 smd circle (at 0.8 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad E7 smd circle (at 0.8 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 32 "Net-(U1-PadE7)")) + (pad F7 smd circle (at 0.8 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 33 "Net-(U1-PadF7)")) + (pad G7 smd circle (at 0.8 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 34 "Net-(U1-PadG7)")) + (pad H7 smd circle (at 0.8 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 35 "Net-(U1-PadH7)")) + (pad J7 smd circle (at 0.8 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 49 "Net-(U1-PadJ7)")) + (pad A8 smd circle (at 1.2 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 36 "Net-(U1-PadA8)")) + (pad B8 smd circle (at 1.2 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 7 +BATT)) + (pad C8 smd circle (at 1.2 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad D8 smd circle (at 1.2 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 37 "Net-(U1-PadD8)")) + (pad E8 smd circle (at 1.2 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 38 "Net-(U1-PadE8)")) + (pad F8 smd circle (at 1.2 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 39 "Net-(U1-PadF8)")) + (pad G8 smd circle (at 1.2 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 40 "Net-(U1-PadG8)")) + (pad H8 smd circle (at 1.2 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 41 "Net-(U1-PadH8)")) + (pad J8 smd circle (at 1.2 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 50 "Net-(U1-PadJ8)")) + (pad A9 smd circle (at 1.6 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)) + (pad B9 smd circle (at 1.6 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 7 +BATT)) + (pad C9 smd circle (at 1.6 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad D9 smd circle (at 1.6 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 10 LED)) + (pad E9 smd circle (at 1.6 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 42 "Net-(U1-PadE9)")) + (pad F9 smd circle (at 1.6 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 43 "Net-(U1-PadF9)")) + (pad G9 smd circle (at 1.6 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad H9 smd circle (at 1.6 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 51 "Net-(U1-PadH9)")) + ) + + (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 55048D3E) + (at 153 106.55 270) + (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)") + (tags "capacitor 0402") + (path /550483E1) + (attr smd) + (fp_text reference C5 (at 0 -1.7 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 2n2 (at 0 1.7 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 52 "Net-(C5-Pad1)")) + (pad 2 smd rect (at 0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0402.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module ANT:ANT-2.4GHz (layer F.Cu) (tedit 54517711) (tstamp 55049531) + (at 149.35 106.95 90) + (path /55047C3D) + (fp_text reference ANT1 (at -2.5 1.5 90) (layer F.SilkS) + (effects (font (size 0.4 0.4) (thickness 0.04))) + ) + (fp_text value ANT-2.4GHz (at -2 2 90) (layer F.SilkS) + (effects (font (size 0.4 0.4) (thickness 0.04))) + ) + (pad 1 smd rect (at 0 0 90) (size 0.9 4.9) (layers F.Cu) + (net 2 GND)) + (pad 3 smd rect (at 2.05 -2.7 90) (size 5 0.5) (layers F.Cu)) + (pad 2 smd rect (at 2.1 0 90) (size 0.5 4.9) (layers F.Cu) + (net 53 "Net-(ANT1-Pad2)")) + (pad 3 smd rect (at 4.3 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 6.8 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 5.55 -0.06 90) (size 2 0.5) (layers F.Cu)) + (pad 3 smd rect (at 7.9 -2.7 90) (size 2.7 0.5) (layers F.Cu)) + (pad 3 smd rect (at 12.6 -2.7 90) (size 2.7 0.5) (layers F.Cu)) + (pad 3 smd rect (at 9 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 11.5 -1.13 90) (size 0.5 2.64) (layers F.Cu)) + (pad 3 smd rect (at 10.25 -0.06 90) (size 2 0.5) (layers F.Cu)) + (pad 3 smd rect (at 13.7 -0.48 90) (size 0.5 3.94) (layers F.Cu)) + ) + + (module NRF51:BAL-NRF02D3 (layer F.Cu) (tedit 550C7CF1) (tstamp 55048D47) + (at 153.65 104.55 180) + (path /550480A2) + (fp_text reference U2 (at 0 1.95 180) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_text value BAL-NRF02D3 (at 0 -1.95 180) (layer F.SilkS) + (effects (font (size 1.2 1.2) (thickness 0.2))) + ) + (fp_circle (center 0.75 -1.25) (end 1 -1.25) (layer F.SilkS) (width 0.15)) + (fp_line (start -1 -0.75) (end -1 0.75) (layer F.SilkS) (width 0.2)) + (fp_line (start -1 0.75) (end 1 0.75) (layer F.SilkS) (width 0.2)) + (fp_line (start 1 0.75) (end 1 -0.75) (layer F.SilkS) (width 0.2)) + (fp_line (start 1 -0.75) (end -1 -0.75) (layer F.SilkS) (width 0.2)) + (pad A3 smd circle (at -0.5 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(U1-PadD1)")) + (pad B3 smd circle (at -0.5 0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(U1-PadC1)")) + (pad A2 smd circle (at 0 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 52 "Net-(C5-Pad1)")) + (pad A1 smd circle (at 0.5 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 53 "Net-(ANT1-Pad2)")) + (pad B1 smd circle (at 0.5 0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + ) + + (segment (start 155.7212 102.5342) (end 155.2084 102.0214) (width 0.1016) (layer F.Cu) (net 1)) + (segment (start 155.7212 103.5306) (end 155.7212 102.5342) (width 0.1016) (layer F.Cu) (net 1)) + (segment (start 155.137 101.95) (end 155.2084 102.0214) (width 0.1016) (layer F.Cu) (net 1) (tstamp 55048FFD)) + (segment (start 153.75 101.95) (end 155.137 101.95) (width 0.1016) (layer F.Cu) (net 1)) + (segment (start 156.947646 104.7306) (end 156.7306 104.7306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.7306 104.7306) (end 156.5212 104.5212) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 104.5212) (end 156.5212 104.072021) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 104.072021) (end 156.5212 103.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.1212 106.3306) (end 156.5212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 105.9306) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 157.3212 105.9306) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 157.7212 104.7306) (end 156.947646 104.7306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.5212 103.9306) (end 155.3212 103.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.9212 104.757046) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 156.947646 104.7306) (end 156.9212 104.757046) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 157.7212 104.7306) (end 158.1212 104.3306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 158.1212 104.3306) (end 158.5212 104.3306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 161.2265 103.4796) (end 161.7726 104.0257) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.3722 103.4796) (end 161.2265 103.4796) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 161.7726 104.0257) (end 162.0266 104.0257) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 101.0626) (end 159.554 102.1588) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 100.711) (end 159.554 101.0626) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.3722 102.6922) (end 159.3722 103.4796) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 102.5104) (end 159.3722 102.6922) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.554 102.1588) (end 159.554 102.5104) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 159.3722 103.621021) (end 159.3722 103.4796) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 158.5212 104.3306) (end 158.662621 104.3306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 158.662621 104.3306) (end 159.3722 103.621021) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 155.0306 103.9306) (end 154.15 103.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55048FDD)) + (segment (start 154.15 103.05) (end 153.75 103.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55048FEF)) + (segment (start 155.3212 103.9306) (end 155.0306 103.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 154.15 107.1) (end 153 107.1) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 160.6042 108.3542) (end 160.6042 109.1946) (width 0.1016) (layer F.Cu) (net 2) (tstamp 5504935E)) + (segment (start 158.5212 105.9306) (end 159.05 105.9306) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 160.85 105.05) (end 159.4 105.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049373)) + (segment (start 159.4 105.05) (end 159.05 105.4) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049377)) + (segment (start 159.05 105.4) (end 159.05 105.9306) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049378)) + (segment (start 161.8743 104.0257) (end 160.85 105.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049366)) + (segment (start 162.0266 104.0257) (end 161.8743 104.0257) (width 0.1016) (layer F.Cu) (net 2)) + (segment (start 149.5 107.1) (end 149.35 106.95) (width 0.1016) (layer F.Cu) (net 2) (tstamp 5504964A) (status 30)) + (segment (start 149.5 107.1) (end 149.35 106.95) (width 0.254) (layer F.Cu) (net 2) (tstamp 5504967F) (status 30)) + (segment (start 153 107.1) (end 149.5 107.1) (width 0.254) (layer F.Cu) (net 2) (status 20)) + (segment (start 158.4436 100.7214) (end 158.454 100.711) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 157.0084 100.7214) (end 158.4436 100.7214) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.6786 100.7214) (end 157.0084 100.7214) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.1084 101.2916) (end 156.6786 100.7214) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.1084 103.5178) (end 156.1084 101.2916) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.1212 103.5306) (end 156.1084 103.5178) (width 0.1016) (layer F.Cu) (net 3)) + (segment (start 156.5212 103.389179) (end 157.014979 102.8954) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 156.5212 103.5306) (end 156.5212 103.389179) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 157.6674 102.8954) (end 158.404 102.1588) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 158.404 102.1588) (end 158.454 102.1588) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 157.014979 102.8954) (end 157.6674 102.8954) (width 0.1016) (layer F.Cu) (net 4)) + (segment (start 154.45 106) (end 154.9194 105.5306) (width 0.1016) (layer F.Cu) (net 5) (tstamp 5504901F)) + (segment (start 154.9194 105.5306) (end 155.3212 105.5306) (width 0.1016) (layer F.Cu) (net 5) (tstamp 55049021)) + (segment (start 154.15 106) (end 154.45 106) (width 0.1016) (layer F.Cu) (net 5)) + (segment (start 160.1717 105.9307) (end 160.0454 105.8044) (width 0.1016) (layer F.Cu) (net 6)) + (segment (start 162.0266 105.9307) (end 160.1717 105.9307) (width 0.1016) (layer F.Cu) (net 6)) + (segment (start 159 99.9) (end 159.05 99.9) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159.35 99.6) (end 161.2 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.25 111.15) (end 158.0642 110.9642) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159.05 99.9) (end 159.35 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 161.2 99.6) (end 163.35 101.75) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 163.35 101.75) (end 163.35 110.35) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 163.35 110.35) (end 162.55 111.15) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.0642 110.9642) (end 158.0642 109.1946) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 162.55 111.15) (end 158.25 111.15) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.5212 103.9306) (end 158.1212 103.9306) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.0642 109.347) (end 158.0642 109.1946) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159 99.9) (end 159 103.593221) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.662621 103.9306) (end 158.5212 103.9306) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 154.1 99.6) (end 158.7 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 153 102.3) (end 153 100.7) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 153.2 102.5) (end 153 102.3) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 158.7 99.6) (end 159 99.9) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 154.2906 102.5) (end 153.2 102.5) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 159 103.593221) (end 158.662621 103.9306) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 153 100.7) (end 154.1 99.6) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 155.3212 103.5306) (end 154.2906 102.5) (width 0.1016) (layer F.Cu) (net 7)) + (segment (start 155.7212 108.9976) (end 155.5242 109.1946) (width 0.1016) (layer F.Cu) (net 8)) + (segment (start 155.7212 106.7306) (end 155.7212 108.9976) (width 0.1016) (layer F.Cu) (net 8)) + (segment (start 152.9842 109.0676) (end 152.9842 109.1946) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 152.9842 109.1946) (end 152.9842 109.0422) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 155.2018 106.85) (end 155.7212 106.3306) (width 0.1016) (layer F.Cu) (net 9) (tstamp 55049280)) + (segment (start 155.1 106.95) (end 155.2 106.85) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 155.1 107.35) (end 155.1 106.95) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 154.55 107.9) (end 155.1 107.35) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 154.1264 107.9) (end 154.55 107.9) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 152.9842 109.0422) (end 154.1264 107.9) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 155.2 106.85) (end 155.2018 106.85) (width 0.1016) (layer F.Cu) (net 9)) + (segment (start 160.0454 104.3044) (end 159.4938 104.3044) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 158.662621 104.7306) (end 158.5212 104.7306) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 159.0676 104.7306) (end 158.662621 104.7306) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 159.4938 104.3044) (end 159.0676 104.7306) (width 0.1016) (layer F.Cu) (net 10)) + (segment (start 154.1806 104.3306) (end 154.15 104.3) (width 0.1016) (layer F.Cu) (net 11) (tstamp 5504938B)) + (segment (start 155.3212 104.3306) (end 154.1806 104.3306) (width 0.1016) (layer F.Cu) (net 11)) + (segment (start 154.2194 104.7306) (end 154.15 104.8) (width 0.1016) (layer F.Cu) (net 12) (tstamp 55049388)) + (segment (start 155.3212 104.7306) (end 154.2194 104.7306) (width 0.1016) (layer F.Cu) (net 12)) + (segment (start 155.3212 105.1306) (end 154.7194 105.1306) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 154.7194 105.1306) (end 154.6 105.25) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 154.6 105.25) (end 153.65 105.25) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 153.65 105.25) (end 153.65 104.8) (width 0.1016) (layer F.Cu) (net 52) (tstamp 5504901A)) + (segment (start 153.6 105.3) (end 153.65 105.25) (width 0.1016) (layer F.Cu) (net 52) (tstamp 55049386)) + (segment (start 153 105.9) (end 153.6 105.3) (width 0.1016) (layer F.Cu) (net 52) (tstamp 55049018)) + (segment (start 153 106) (end 153 105.9) (width 0.1016) (layer F.Cu) (net 52)) + (segment (start 149.4 104.8) (end 149.35 104.85) (width 0.1016) (layer F.Cu) (net 53) (tstamp 55049543) (status 30)) + (segment (start 153.1 104.85) (end 153.15 104.8) (width 0.254) (layer F.Cu) (net 53) (tstamp 550495A4)) + (segment (start 149.35 104.85) (end 153.1 104.85) (width 0.254) (layer F.Cu) (net 53) (status 10)) + + (zone (net 2) (net_name GND) (layer F.Cu) (tstamp 550C7F83) (hatch edge 0.508) + (connect_pads (clearance 0.2032)) + (min_thickness 0.1524) + (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5)) + (polygon + (pts + (xy 164 111.85) (xy 151.5 111.85) (xy 151.5 97.15) (xy 164 97.15) + ) + ) + (filled_polygon + (pts + (xy 163.9238 111.318437) (xy 163.468437 111.7738) (xy 152.031563 111.7738) (xy 151.5762 111.318437) (xy 151.5762 107.6794) + (xy 151.744424 107.6794) (xy 151.855576 107.6794) (xy 151.958267 107.636864) (xy 152.036864 107.558267) (xy 152.0794 107.455576) + (xy 152.0794 107.02112) (xy 152.00955 106.95127) (xy 151.5762 106.95127) (xy 151.5762 106.94873) (xy 152.00955 106.94873) + (xy 152.0794 106.87888) (xy 152.0794 106.444424) (xy 152.036864 106.341733) (xy 151.958267 106.263136) (xy 151.855576 106.2206) + (xy 151.744424 106.2206) (xy 151.5762 106.2206) (xy 151.5762 105.3794) (xy 151.855576 105.3794) (xy 151.958267 105.336864) + (xy 152.036864 105.258267) (xy 152.037637 105.2564) (xy 153.1 105.2564) (xy 153.195652 105.237373) (xy 153.012426 105.4206) + (xy 152.694424 105.4206) (xy 152.591733 105.463136) (xy 152.513136 105.541733) (xy 152.4706 105.644424) (xy 152.4706 105.755576) + (xy 152.4706 106.355576) (xy 152.513136 106.458267) (xy 152.591733 106.536864) (xy 152.623446 106.55) (xy 152.591733 106.563136) + (xy 152.513136 106.641733) (xy 152.4706 106.744424) (xy 152.4706 107.02888) (xy 152.54045 107.09873) (xy 152.99873 107.09873) + (xy 152.99873 107.07873) (xy 153.00127 107.07873) (xy 153.00127 107.09873) (xy 153.45955 107.09873) (xy 153.5294 107.02888) + (xy 153.5294 106.744424) (xy 153.486864 106.641733) (xy 153.408267 106.563136) (xy 153.376553 106.55) (xy 153.408267 106.536864) + (xy 153.486864 106.458267) (xy 153.5294 106.355576) (xy 153.5294 106.244424) (xy 153.5294 105.837574) (xy 153.6206 105.746374) + (xy 153.6206 105.755576) (xy 153.6206 106.355576) (xy 153.663136 106.458267) (xy 153.741733 106.536864) (xy 153.773446 106.55) + (xy 153.741733 106.563136) (xy 153.663136 106.641733) (xy 153.6206 106.744424) (xy 153.6206 107.02888) (xy 153.69045 107.09873) + (xy 154.14873 107.09873) (xy 154.14873 107.07873) (xy 154.15127 107.07873) (xy 154.15127 107.09873) (xy 154.60955 107.09873) + (xy 154.6794 107.02888) (xy 154.6794 106.744424) (xy 154.636864 106.641733) (xy 154.558267 106.563136) (xy 154.526553 106.55) + (xy 154.558267 106.536864) (xy 154.636864 106.458267) (xy 154.6794 106.355576) (xy 154.6794 106.244424) (xy 154.6794 106.236217) + (xy 154.683487 106.233487) (xy 154.7968 106.120174) (xy 154.7968 106.634168) (xy 154.872829 106.710197) (xy 154.866513 106.716513) + (xy 154.794935 106.823638) (xy 154.7698 106.95) (xy 154.7698 107.213226) (xy 154.6794 107.303626) (xy 154.6794 107.17112) + (xy 154.60955 107.10127) (xy 154.15127 107.10127) (xy 154.15127 107.12127) (xy 154.14873 107.12127) (xy 154.14873 107.10127) + (xy 153.69045 107.10127) (xy 153.6206 107.17112) (xy 153.6206 107.455576) (xy 153.663136 107.558267) (xy 153.741733 107.636864) + (xy 153.844424 107.6794) (xy 153.880026 107.6794) (xy 153.5294 108.030025) (xy 153.5294 107.455576) (xy 153.5294 107.17112) + (xy 153.45955 107.10127) (xy 153.00127 107.10127) (xy 153.00127 107.60955) (xy 153.07112 107.6794) (xy 153.194424 107.6794) + (xy 153.305576 107.6794) (xy 153.408267 107.636864) (xy 153.486864 107.558267) (xy 153.5294 107.455576) (xy 153.5294 108.030025) + (xy 153.527705 108.03172) (xy 153.421607 107.960828) (xy 152.99873 107.876712) (xy 152.99873 107.60955) (xy 152.99873 107.10127) + (xy 152.54045 107.10127) (xy 152.4706 107.17112) (xy 152.4706 107.455576) (xy 152.513136 107.558267) (xy 152.591733 107.636864) + (xy 152.694424 107.6794) (xy 152.805576 107.6794) (xy 152.92888 107.6794) (xy 152.99873 107.60955) (xy 152.99873 107.876712) + (xy 152.9842 107.873822) (xy 152.546793 107.960828) (xy 152.175977 108.208599) (xy 151.928206 108.579415) (xy 151.8412 109.016822) + (xy 151.8412 109.372378) (xy 151.928206 109.809785) (xy 152.175977 110.180601) (xy 152.546793 110.428372) (xy 152.9842 110.515378) + (xy 153.421607 110.428372) (xy 153.792423 110.180601) (xy 154.040194 109.809785) (xy 154.1272 109.372378) (xy 154.1272 109.016822) + (xy 154.040194 108.579415) (xy 153.989631 108.503742) (xy 154.263173 108.2302) (xy 154.55 108.2302) (xy 154.676362 108.205065) + (xy 154.783487 108.133487) (xy 155.333483 107.583489) (xy 155.333486 107.583487) (xy 155.333487 107.583487) (xy 155.391 107.497411) + (xy 155.391 107.900317) (xy 155.086793 107.960828) (xy 154.715977 108.208599) (xy 154.468206 108.579415) (xy 154.3812 109.016822) + (xy 154.3812 109.372378) (xy 154.468206 109.809785) (xy 154.715977 110.180601) (xy 155.086793 110.428372) (xy 155.5242 110.515378) + (xy 155.961607 110.428372) (xy 156.332423 110.180601) (xy 156.580194 109.809785) (xy 156.6672 109.372378) (xy 156.6672 109.016822) + (xy 156.580194 108.579415) (xy 156.332423 108.208599) (xy 156.0514 108.020825) (xy 156.0514 107.2532) (xy 158.434168 107.2532) + (xy 159.0532 106.634168) (xy 159.0532 105.0608) (xy 159.0676 105.0608) (xy 159.193962 105.035665) (xy 159.301087 104.964087) + (xy 159.463138 104.802035) (xy 159.539824 104.8338) (xy 159.650976 104.8338) (xy 160.550976 104.8338) (xy 160.653667 104.791264) + (xy 160.732264 104.712667) (xy 160.7748 104.609976) (xy 160.7748 104.498824) (xy 160.7748 103.998824) (xy 160.732264 103.896133) + (xy 160.653667 103.817536) (xy 160.550976 103.775) (xy 160.439824 103.775) (xy 160.1334 103.775) (xy 160.1334 102.464376) + (xy 160.1334 102.353224) (xy 160.1334 102.22992) (xy 160.1334 102.08768) (xy 160.1334 101.964376) (xy 160.1334 101.853224) + (xy 160.1334 101.016576) (xy 160.1334 100.905424) (xy 160.1334 100.78212) (xy 160.1334 100.63988) (xy 160.1334 100.516576) + (xy 160.1334 100.405424) (xy 160.090864 100.302733) (xy 160.012267 100.224136) (xy 159.909576 100.1816) (xy 159.62512 100.1816) + (xy 159.55527 100.25145) (xy 159.55527 100.70973) (xy 160.06355 100.70973) (xy 160.1334 100.63988) (xy 160.1334 100.78212) + (xy 160.06355 100.71227) (xy 159.55527 100.71227) (xy 159.55527 101.17055) (xy 159.62512 101.2404) (xy 159.909576 101.2404) + (xy 160.012267 101.197864) (xy 160.090864 101.119267) (xy 160.1334 101.016576) (xy 160.1334 101.853224) (xy 160.090864 101.750533) + (xy 160.012267 101.671936) (xy 159.909576 101.6294) (xy 159.62512 101.6294) (xy 159.55527 101.69925) (xy 159.55527 102.15753) + (xy 160.06355 102.15753) (xy 160.1334 102.08768) (xy 160.1334 102.22992) (xy 160.06355 102.16007) (xy 159.55527 102.16007) + (xy 159.55527 102.61835) (xy 159.62512 102.6882) (xy 159.909576 102.6882) (xy 160.012267 102.645664) (xy 160.090864 102.567067) + (xy 160.1334 102.464376) (xy 160.1334 103.775) (xy 159.539824 103.775) (xy 159.437133 103.817536) (xy 159.358536 103.896133) + (xy 159.316 103.998824) (xy 159.316 104.033704) (xy 159.260313 104.070913) (xy 159.0532 104.278026) (xy 159.0532 104.006995) + (xy 159.233487 103.826708) (xy 159.305065 103.719583) (xy 159.3302 103.593221) (xy 159.330201 103.593221) (xy 159.3302 103.593215) + (xy 159.3302 102.6882) (xy 159.48288 102.6882) (xy 159.55273 102.61835) (xy 159.55273 102.16007) (xy 159.53273 102.16007) + (xy 159.53273 102.15753) (xy 159.55273 102.15753) (xy 159.55273 101.69925) (xy 159.48288 101.6294) (xy 159.3302 101.6294) + (xy 159.3302 101.2404) (xy 159.48288 101.2404) (xy 159.55273 101.17055) (xy 159.55273 100.71227) (xy 159.53273 100.71227) + (xy 159.53273 100.70973) (xy 159.55273 100.70973) (xy 159.55273 100.25145) (xy 159.48288 100.1816) (xy 159.3302 100.1816) + (xy 159.3302 100.086774) (xy 159.486774 99.9302) (xy 161.063226 99.9302) (xy 163.0198 101.886774) (xy 163.0198 110.213226) + (xy 163.0045 110.228526) (xy 163.0045 106.430776) (xy 163.0045 106.319624) (xy 163.0045 105.430624) (xy 163.0045 104.525776) + (xy 163.0045 104.09682) (xy 163.0045 103.95458) (xy 163.0045 103.525624) (xy 162.961964 103.422933) (xy 162.883367 103.344336) + (xy 162.780676 103.3018) (xy 162.669524 103.3018) (xy 162.09772 103.3018) (xy 162.02787 103.37165) (xy 162.02787 104.02443) + (xy 162.93465 104.02443) (xy 163.0045 103.95458) (xy 163.0045 104.09682) (xy 162.93465 104.02697) (xy 162.02787 104.02697) + (xy 162.02787 104.67975) (xy 162.09772 104.7496) (xy 162.669524 104.7496) (xy 162.780676 104.7496) (xy 162.883367 104.707064) + (xy 162.961964 104.628467) (xy 163.0045 104.525776) (xy 163.0045 105.430624) (xy 162.961964 105.327933) (xy 162.883367 105.249336) + (xy 162.780676 105.2068) (xy 162.669524 105.2068) (xy 162.02533 105.2068) (xy 162.02533 104.67975) (xy 162.02533 104.02697) + (xy 162.02533 104.02443) (xy 162.02533 103.37165) (xy 161.95548 103.3018) (xy 161.383676 103.3018) (xy 161.272524 103.3018) + (xy 161.169833 103.344336) (xy 161.091236 103.422933) (xy 161.0487 103.525624) (xy 161.0487 103.95458) (xy 161.11855 104.02443) + (xy 162.02533 104.02443) (xy 162.02533 104.02697) (xy 161.11855 104.02697) (xy 161.0487 104.09682) (xy 161.0487 104.525776) + (xy 161.091236 104.628467) (xy 161.169833 104.707064) (xy 161.272524 104.7496) (xy 161.383676 104.7496) (xy 161.95548 104.7496) + (xy 162.02533 104.67975) (xy 162.02533 105.2068) (xy 161.272524 105.2068) (xy 161.169833 105.249336) (xy 161.091236 105.327933) + (xy 161.0487 105.430624) (xy 161.0487 105.541776) (xy 161.0487 105.6005) (xy 160.7748 105.6005) (xy 160.7748 105.498824) + (xy 160.732264 105.396133) (xy 160.653667 105.317536) (xy 160.550976 105.275) (xy 160.439824 105.275) (xy 159.539824 105.275) + (xy 159.437133 105.317536) (xy 159.358536 105.396133) (xy 159.316 105.498824) (xy 159.316 105.609976) (xy 159.316 106.109976) + (xy 159.358536 106.212667) (xy 159.437133 106.291264) (xy 159.539824 106.3338) (xy 159.650976 106.3338) (xy 160.550976 106.3338) + (xy 160.653667 106.291264) (xy 160.684031 106.2609) (xy 161.0487 106.2609) (xy 161.0487 106.430776) (xy 161.091236 106.533467) + (xy 161.169833 106.612064) (xy 161.272524 106.6546) (xy 161.383676 106.6546) (xy 162.780676 106.6546) (xy 162.883367 106.612064) + (xy 162.961964 106.533467) (xy 163.0045 106.430776) (xy 163.0045 110.228526) (xy 162.413226 110.8198) (xy 161.7472 110.8198) + (xy 161.7472 110.266176) (xy 161.7472 110.155024) (xy 161.7472 109.26572) (xy 161.7472 109.12348) (xy 161.7472 108.234176) + (xy 161.7472 108.123024) (xy 161.704664 108.020333) (xy 161.626067 107.941736) (xy 161.523376 107.8992) (xy 160.67532 107.8992) + (xy 160.60547 107.96905) (xy 160.60547 109.19333) (xy 161.67735 109.19333) (xy 161.7472 109.12348) (xy 161.7472 109.26572) + (xy 161.67735 109.19587) (xy 160.60547 109.19587) (xy 160.60547 110.42015) (xy 160.67532 110.49) (xy 161.523376 110.49) + (xy 161.626067 110.447464) (xy 161.704664 110.368867) (xy 161.7472 110.266176) (xy 161.7472 110.8198) (xy 160.60293 110.8198) + (xy 160.60293 110.42015) (xy 160.60293 109.19587) (xy 160.60293 109.19333) (xy 160.60293 107.96905) (xy 160.53308 107.8992) + (xy 159.685024 107.8992) (xy 159.582333 107.941736) (xy 159.503736 108.020333) (xy 159.4612 108.123024) (xy 159.4612 108.234176) + (xy 159.4612 109.12348) (xy 159.53105 109.19333) (xy 160.60293 109.19333) (xy 160.60293 109.19587) (xy 159.53105 109.19587) + (xy 159.4612 109.26572) (xy 159.4612 110.155024) (xy 159.4612 110.266176) (xy 159.503736 110.368867) (xy 159.582333 110.447464) + (xy 159.685024 110.49) (xy 160.53308 110.49) (xy 160.60293 110.42015) (xy 160.60293 110.8198) (xy 158.3944 110.8198) + (xy 158.3944 110.449696) (xy 158.501607 110.428372) (xy 158.872423 110.180601) (xy 159.120194 109.809785) (xy 159.2072 109.372378) + (xy 159.2072 109.016822) (xy 159.120194 108.579415) (xy 158.872423 108.208599) (xy 158.501607 107.960828) (xy 158.0642 107.873822) + (xy 157.626793 107.960828) (xy 157.255977 108.208599) (xy 157.008206 108.579415) (xy 156.9212 109.016822) (xy 156.9212 109.372378) + (xy 157.008206 109.809785) (xy 157.255977 110.180601) (xy 157.626793 110.428372) (xy 157.734 110.449696) (xy 157.734 110.9642) + (xy 157.759135 111.090562) (xy 157.830713 111.197687) (xy 158.016513 111.383487) (xy 158.123638 111.455065) (xy 158.25 111.480201) + (xy 158.25 111.4802) (xy 158.250005 111.4802) (xy 162.55 111.4802) (xy 162.676362 111.455065) (xy 162.783487 111.383487) + (xy 163.583487 110.583487) (xy 163.655065 110.476362) (xy 163.6802 110.35) (xy 163.680201 110.35) (xy 163.6802 110.349994) + (xy 163.6802 101.75) (xy 163.655065 101.623638) (xy 163.583487 101.516513) (xy 161.433487 99.366513) (xy 161.326362 99.294935) + (xy 161.2 99.2698) (xy 159.35 99.2698) (xy 159.223638 99.294935) (xy 159.116513 99.366513) (xy 159.025 99.458026) + (xy 158.933487 99.366513) (xy 158.826362 99.294935) (xy 158.7 99.2698) (xy 154.100005 99.2698) (xy 154.1 99.269799) + (xy 153.973638 99.294935) (xy 153.866513 99.366513) (xy 152.766513 100.466513) (xy 152.694935 100.573638) (xy 152.6698 100.7) + (xy 152.6698 102.3) (xy 152.694935 102.426362) (xy 152.766513 102.533487) (xy 152.96651 102.733483) (xy 152.966513 102.733487) + (xy 152.966514 102.733487) (xy 153.073638 102.805065) (xy 153.2 102.830201) (xy 153.2 102.8302) (xy 153.200005 102.8302) + (xy 153.2206 102.8302) (xy 153.2206 102.97888) (xy 153.29045 103.04873) (xy 153.74873 103.04873) (xy 153.74873 103.02873) + (xy 153.75127 103.02873) (xy 153.75127 103.04873) (xy 154.20955 103.04873) (xy 154.2794 102.97888) (xy 154.2794 102.955773) + (xy 154.868129 103.544502) (xy 154.7968 103.615832) (xy 154.7968 104.0004) (xy 154.387007 104.0004) (xy 154.365194 103.978548) + (xy 154.2794 103.942923) (xy 154.2794 103.405576) (xy 154.2794 103.12112) (xy 154.20955 103.05127) (xy 153.75127 103.05127) + (xy 153.75127 103.55955) (xy 153.82112 103.6294) (xy 153.944424 103.6294) (xy 154.055576 103.6294) (xy 154.158267 103.586864) + (xy 154.236864 103.508267) (xy 154.2794 103.405576) (xy 154.2794 103.942923) (xy 154.225798 103.920666) (xy 154.074864 103.920534) + (xy 153.935368 103.978173) (xy 153.887912 104.025544) (xy 153.74873 103.886362) (xy 153.74873 103.55955) (xy 153.74873 103.05127) + (xy 153.29045 103.05127) (xy 153.2206 103.12112) (xy 153.2206 103.405576) (xy 153.263136 103.508267) (xy 153.341733 103.586864) + (xy 153.444424 103.6294) (xy 153.555576 103.6294) (xy 153.67888 103.6294) (xy 153.74873 103.55955) (xy 153.74873 103.886362) + (xy 153.675 103.812632) (xy 153.412173 104.075458) (xy 153.376346 104.076713) (xy 153.376346 103.986301) (xy 153.239069 103.92356) + (xy 153.088231 103.91813) (xy 152.946798 103.970835) (xy 152.923654 103.986301) (xy 152.926759 104.074963) (xy 153.15 104.298204) + (xy 153.373241 104.074963) (xy 153.376346 103.986301) (xy 153.376346 104.076713) (xy 153.375037 104.076759) (xy 153.151796 104.3) + (xy 153.165938 104.314142) (xy 153.164142 104.315938) (xy 153.15 104.301796) (xy 153.135857 104.315938) (xy 153.134061 104.314142) + (xy 153.148204 104.3) (xy 152.924963 104.076759) (xy 152.836301 104.073654) (xy 152.77356 104.210931) (xy 152.76813 104.361769) + (xy 152.798624 104.4436) (xy 152.037637 104.4436) (xy 152.036864 104.441733) (xy 151.958267 104.363136) (xy 151.855576 104.3206) + (xy 151.744424 104.3206) (xy 151.5762 104.3206) (xy 151.5762 97.681563) (xy 152.031563 97.2262) (xy 163.468437 97.2262) + (xy 163.9238 97.681563) (xy 163.9238 111.318437) + ) + ) + ) + (zone (net 0) (net_name "") (layer F.Cu) (tstamp 550C7E3B) (hatch edge 0.508) + (connect_pads (clearance 0.2032)) + (min_thickness 0.1524) + (keepout (tracks allowed) (vias allowed) (copperpour not_allowed)) + (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5)) + (polygon + (pts + (xy 153.9 104.55) (xy 153.45 104.55) (xy 153.45 104.1) (xy 153.9 104.1) + ) + ) + ) + (zone (net 0) (net_name "") (layer F.Cu) (tstamp 550C7E43) (hatch edge 0.508) + (connect_pads (clearance 0.2032)) + (min_thickness 0.1524) + (keepout (tracks allowed) (vias allowed) (copperpour not_allowed)) + (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5)) + (polygon + (pts + (xy 158.85 107.05) (xy 155 107.05) (xy 155 103.2) (xy 158.85 103.2) + ) + ) + ) +) diff --git a/samples/KiCad/ultimate-temp-controller.sch b/samples/KiCad/ultimate-temp-controller.sch new file mode 100644 index 00000000..8cac6465 --- /dev/null +++ b/samples/KiCad/ultimate-temp-controller.sch @@ -0,0 +1,69 @@ +EESchema Schematic File Version 2 +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:special +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:relays +LIBS:w_relay +LIBS:ultimate-temp-controller-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 2 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Sheet +S 1400 2100 2150 2000 +U 54E5B803 +F0 "controller" 60 +F1 "controller.sch" 60 +F2 "TC+" I L 1400 2300 60 +F3 "TC-" I L 1400 2400 60 +F4 "VCC" I L 1400 3750 60 +F5 "GND" I L 1400 3900 60 +F6 "RS485A" I R 3550 3700 60 +F7 "RS485B" I R 3550 3800 60 +F8 "DRAIN" O R 3550 3300 60 +F9 "+5V" O R 3550 2250 60 +F10 "SDA" B R 3550 2350 60 +F11 "SCL" B R 3550 2450 60 +F12 "GND" O R 3550 2550 60 +F13 "RELAY_NO" I R 3550 2850 60 +F14 "RELAY_COM" I R 3550 3050 60 +F15 "RELAY_NC" I R 3550 2950 60 +$EndSheet +$EndSCHEMATC diff --git a/samples/Lean/binary.lean b/samples/Lean/binary.lean new file mode 100644 index 00000000..060a8cb0 --- /dev/null +++ b/samples/Lean/binary.lean @@ -0,0 +1,75 @@ +/- +Copyright (c) 2014 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. + +Module: algebra.binary +Authors: Leonardo de Moura, Jeremy Avigad + +General properties of binary operations. +-/ + +import logic.eq +open eq.ops + +namespace binary + section + variable {A : Type} + variables (op₁ : A → A → A) (inv : A → A) (one : A) + + local notation a * b := op₁ a b + local notation a ⁻¹ := inv a + local notation 1 := one + + definition commutative := ∀a b, a * b = b * a + definition associative := ∀a b c, (a * b) * c = a * (b * c) + definition left_identity := ∀a, 1 * a = a + definition right_identity := ∀a, a * 1 = a + definition left_inverse := ∀a, a⁻¹ * a = 1 + definition right_inverse := ∀a, a * a⁻¹ = 1 + definition left_cancelative := ∀a b c, a * b = a * c → b = c + definition right_cancelative := ∀a b c, a * b = c * b → a = c + + definition inv_op_cancel_left := ∀a b, a⁻¹ * (a * b) = b + definition op_inv_cancel_left := ∀a b, a * (a⁻¹ * b) = b + definition inv_op_cancel_right := ∀a b, a * b⁻¹ * b = a + definition op_inv_cancel_right := ∀a b, a * b * b⁻¹ = a + + variable (op₂ : A → A → A) + + local notation a + b := op₂ a b + + definition left_distributive := ∀a b c, a * (b + c) = a * b + a * c + definition right_distributive := ∀a b c, (a + b) * c = a * c + b * c + end + + context + variable {A : Type} + variable {f : A → A → A} + variable H_comm : commutative f + variable H_assoc : associative f + infixl `*` := f + theorem left_comm : ∀a b c, a*(b*c) = b*(a*c) := + take a b c, calc + a*(b*c) = (a*b)*c : H_assoc + ... = (b*a)*c : H_comm + ... = b*(a*c) : H_assoc + + theorem right_comm : ∀a b c, (a*b)*c = (a*c)*b := + take a b c, calc + (a*b)*c = a*(b*c) : H_assoc + ... = a*(c*b) : H_comm + ... = (a*c)*b : H_assoc + end + + context + variable {A : Type} + variable {f : A → A → A} + variable H_assoc : associative f + infixl `*` := f + theorem assoc4helper (a b c d) : (a*b)*(c*d) = a*((b*c)*d) := + calc + (a*b)*(c*d) = a*(b*(c*d)) : H_assoc + ... = a*((b*c)*d) : H_assoc + end + +end binary diff --git a/samples/Lean/set.hlean b/samples/Lean/set.hlean new file mode 100644 index 00000000..761cd67d --- /dev/null +++ b/samples/Lean/set.hlean @@ -0,0 +1,70 @@ +-- Copyright (c) 2015 Jakob von Raumer. All rights reserved. +-- Released under Apache 2.0 license as described in the file LICENSE. +-- Authors: Jakob von Raumer +-- Category of sets + +import .basic types.pi trunc + +open truncation sigma sigma.ops pi function eq morphism precategory +open equiv + +namespace precategory + + universe variable l + + definition set_precategory : precategory.{l+1 l} (Σ (A : Type.{l}), is_hset A) := + begin + fapply precategory.mk.{l+1 l}, + intros, apply (a.1 → a_1.1), + intros, apply trunc_pi, intros, apply b.2, + intros, intro x, exact (a_1 (a_2 x)), + intros, exact (λ (x : a.1), x), + intros, apply funext.path_pi, intro x, apply idp, + intros, apply funext.path_pi, intro x, apply idp, + intros, apply funext.path_pi, intro x, apply idp, + end + +end precategory + +namespace category + + universe variable l + local attribute precategory.set_precategory.{l+1 l} [instance] + + definition set_category_equiv_iso (a b : (Σ (A : Type.{l}), is_hset A)) + : (a ≅ b) = (a.1 ≃ b.1) := + /-begin + apply ua, fapply equiv.mk, + intro H, + apply (isomorphic.rec_on H), intros (H1, H2), + apply (is_iso.rec_on H2), intros (H3, H4, H5), + fapply equiv.mk, + apply (isomorphic.rec_on H), intros (H1, H2), + exact H1, + fapply is_equiv.adjointify, exact H3, + exact sorry, + exact sorry, + end-/ sorry + + definition set_category : category.{l+1 l} (Σ (A : Type.{l}), is_hset A) := + /-begin + assert (C : precategory.{l+1 l} (Σ (A : Type.{l}), is_hset A)), + apply precategory.set_precategory, + apply category.mk, + assert (p : (λ A B p, (set_category_equiv_iso A B) ▹ iso_of_path p) = (λ A B p, @equiv_path A.1 B.1 p)), + apply is_equiv.adjointify, + intros, + apply (isomorphic.rec_on a_1), intros (iso', is_iso'), + apply (is_iso.rec_on is_iso'), intros (f', f'sect, f'retr), + fapply sigma.path, + apply ua, fapply equiv.mk, exact iso', + fapply is_equiv.adjointify, + exact f', + intros, apply (f'retr ▹ _), + intros, apply (f'sect ▹ _), + apply (@is_hprop.elim), + apply is_trunc_is_hprop, + intros, + end -/ sorry + +end category diff --git a/samples/Lex/zend_ini_scanner.l b/samples/Lex/zend_ini_scanner.l new file mode 100644 index 00000000..8aeb076e --- /dev/null +++ b/samples/Lex/zend_ini_scanner.l @@ -0,0 +1,601 @@ +/* + +----------------------------------------------------------------------+ + | Zend Engine | + +----------------------------------------------------------------------+ + | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.00 of the Zend license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.zend.com/license/2_00.txt. | + | If you did not receive a copy of the Zend license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@zend.com so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Zeev Suraski | + | Jani Taskinen | + | Marcus Boerger | + | Nuno Lopes | + | Scott MacVicar | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#include +#include "zend.h" +#include "zend_globals.h" +#include +#include "zend_ini_scanner.h" + +#if 0 +# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) +#else +# define YYDEBUG(s, c) +#endif + +#include "zend_ini_scanner_defs.h" + +#define YYCTYPE unsigned char +/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD) + * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */ +#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; } +#define YYCURSOR SCNG(yy_cursor) +#define YYLIMIT SCNG(yy_limit) +#define YYMARKER SCNG(yy_marker) + +#define YYGETCONDITION() SCNG(yy_state) +#define YYSETCONDITION(s) SCNG(yy_state) = s + +#define STATE(name) yyc##name + +/* emulate flex constructs */ +#define BEGIN(state) YYSETCONDITION(STATE(state)) +#define YYSTATE YYGETCONDITION() +#define yytext ((char*)SCNG(yy_text)) +#define yyleng SCNG(yy_leng) +#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ + yyleng = (unsigned int)x; } while(0) + +/* #define yymore() goto yymore_restart */ + +/* perform sanity check. If this message is triggered you should + increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */ +/*!max:re2c */ +#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1) +# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL +#endif + + +/* How it works (for the core ini directives): + * =========================================== + * + * 1. Scanner scans file for tokens and passes them to parser. + * 2. Parser parses the tokens and passes the name/value pairs to the callback + * function which stores them in the configuration hash table. + * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual + * registering of ini entries and uses zend_get_configuration_directive() + * to fetch the previously stored name/value pair from configuration hash table + * and registers the static ini entries which match the name to the value + * into EG(ini_directives) hash table. + * 4. PATH section entries are used per-request from down to top, each overriding + * previous if one exists. zend_alter_ini_entry() is called for each entry. + * Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the + * php_admin_* directives used within Apache httpd.conf when PHP is compiled as + * module for Apache. + * 5. User defined ini files (like .htaccess for apache) are parsed for each request and + * stored in separate hash defined by SAPI. + */ + +/* TODO: (ordered by importance :-) + * =============================================================================== + * + * - Separate constant lookup totally from plain strings (using CONSTANT pattern) + * - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators + * - Add #include "some.ini" + * - Allow variables to refer to options also when using parse_ini_file() + * + */ + +/* Globals Macros */ +#define SCNG INI_SCNG +#ifdef ZTS +ZEND_API ts_rsrc_id ini_scanner_globals_id; +#else +ZEND_API zend_ini_scanner_globals ini_scanner_globals; +#endif + +/* Eat leading whitespace */ +#define EAT_LEADING_WHITESPACE() \ + while (yytext[0]) { \ + if (yytext[0] == ' ' || yytext[0] == '\t') { \ + SCNG(yy_text)++; \ + yyleng--; \ + } else { \ + break; \ + } \ + } + +/* Eat trailing whitespace + extra char */ +#define EAT_TRAILING_WHITESPACE_EX(ch) \ + while (yyleng > 0 && ( \ + (ch != 'X' && yytext[yyleng - 1] == ch) || \ + yytext[yyleng - 1] == '\n' || \ + yytext[yyleng - 1] == '\r' || \ + yytext[yyleng - 1] == '\t' || \ + yytext[yyleng - 1] == ' ') \ + ) { \ + yyleng--; \ + } + +/* Eat trailing whitespace */ +#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X') + +#define zend_ini_copy_value(retval, str, len) { \ + Z_STRVAL_P(retval) = zend_strndup(str, len); \ + Z_STRLEN_P(retval) = len; \ + Z_TYPE_P(retval) = IS_STRING; \ +} + +#define RETURN_TOKEN(type, str, len) { \ + zend_ini_copy_value(ini_lval, str, len); \ + return type; \ +} + +static void _yy_push_state(int new_state TSRMLS_DC) +{ + zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int)); + YYSETCONDITION(new_state); +} + +#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm) + +static void yy_pop_state(TSRMLS_D) +{ + int *stack_state; + zend_stack_top(&SCNG(state_stack), (void **) &stack_state); + YYSETCONDITION(*stack_state); + zend_stack_del_top(&SCNG(state_stack)); +} + +static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) +{ + YYCURSOR = (YYCTYPE*)str; + SCNG(yy_start) = YYCURSOR; + YYLIMIT = YYCURSOR + len; +} + +#define ini_filename SCNG(filename) + +/* {{{ init_ini_scanner() +*/ +static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) +{ + /* Sanity check */ + if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) { + zend_error(E_WARNING, "Invalid scanner mode"); + return FAILURE; + } + + SCNG(lineno) = 1; + SCNG(scanner_mode) = scanner_mode; + SCNG(yy_in) = fh; + + if (fh != NULL) { + ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + } else { + ini_filename = NULL; + } + + zend_stack_init(&SCNG(state_stack)); + BEGIN(INITIAL); + + return SUCCESS; +} +/* }}} */ + +/* {{{ shutdown_ini_scanner() +*/ +void shutdown_ini_scanner(TSRMLS_D) +{ + zend_stack_destroy(&SCNG(state_stack)); + if (ini_filename) { + free(ini_filename); + } +} +/* }}} */ + +/* {{{ zend_ini_scanner_get_lineno() +*/ +int zend_ini_scanner_get_lineno(TSRMLS_D) +{ + return SCNG(lineno); +} +/* }}} */ + +/* {{{ zend_ini_scanner_get_filename() +*/ +char *zend_ini_scanner_get_filename(TSRMLS_D) +{ + return ini_filename ? ini_filename : "Unknown"; +} +/* }}} */ + +/* {{{ zend_ini_open_file_for_scanning() +*/ +int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC) +{ + char *buf; + size_t size; + + if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) { + zend_file_handle_dtor(fh TSRMLS_CC); + return FAILURE; + } + + yy_scan_buffer(buf, size TSRMLS_CC); + + return SUCCESS; +} +/* }}} */ + +/* {{{ zend_ini_prepare_string_for_scanning() +*/ +int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC) +{ + int len = strlen(str); + + if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + yy_scan_buffer(str, len TSRMLS_CC); + + return SUCCESS; +} +/* }}} */ + +/* {{{ zend_ini_escape_string() + */ +static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC) +{ + register char *s, *t; + char *end; + + zend_ini_copy_value(lval, str, len); + + /* convert escape sequences */ + s = t = Z_STRVAL_P(lval); + end = s + Z_STRLEN_P(lval); + + while (s < end) { + if (*s == '\\') { + s++; + if (s >= end) { + *t++ = '\\'; + continue; + } + switch (*s) { + case '"': + if (*s != quote_type) { + *t++ = '\\'; + *t++ = *s; + break; + } + case '\\': + case '$': + *t++ = *s; + Z_STRLEN_P(lval)--; + break; + default: + *t++ = '\\'; + *t++ = *s; + break; + } + } else { + *t++ = *s; + } + if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { + SCNG(lineno)++; + } + s++; + } + *t = 0; +} +/* }}} */ + +int ini_lex(zval *ini_lval TSRMLS_DC) +{ +restart: + SCNG(yy_text) = YYCURSOR; + +/* yymore_restart: */ + /* detect EOF */ + if (YYCURSOR >= YYLIMIT) { + if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) { + BEGIN(INITIAL); + return END_OF_LINE; + } + return 0; + } + + /* Eat any UTF-8 BOM we find in the first 3 bytes */ + if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) { + if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) { + YYCURSOR += 3; + goto restart; + } + } +/*!re2c +re2c:yyfill:check = 0; +LNUM [0-9]+ +DNUM ([0-9]*[\.][0-9]+)|([0-9]+[\.][0-9]*) +NUMBER [-]?{LNUM}|{DNUM} +ANY_CHAR (.|[\n\t]) +NEWLINE ("\r"|"\n"|"\r\n") +TABS_AND_SPACES [ \t] +WHITESPACE [ \t]+ +CONSTANT [a-zA-Z_][a-zA-Z0-9_]* +LABEL [^=\n\r\t;|&$~(){}!"\[]+ +TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}] +OPERATORS [&|~()!] +DOLLAR_CURLY "${" + +SECTION_RAW_CHARS [^\]\n\r] +SINGLE_QUOTED_CHARS [^'] +RAW_VALUE_CHARS [^"\n\r;\000] + +LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR}))) +VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR}) +SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) + + := yyleng = YYCURSOR - SCNG(yy_text); + +"[" { /* Section start */ + /* Enter section data lookup state */ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { + yy_push_state(ST_SECTION_RAW TSRMLS_CC); + } else { + yy_push_state(ST_SECTION_VALUE TSRMLS_CC); + } + return TC_SECTION; +} + +"'"{SINGLE_QUOTED_CHARS}+"'" { /* Raw string */ + /* Eat leading and trailing single quotes */ + if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { + SCNG(yy_text)++; + yyleng = yyleng - 2; + } + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +"]"{TABS_AND_SPACES}*{NEWLINE}? { /* End of section */ + BEGIN(INITIAL); + SCNG(lineno)++; + return ']'; +} + +{LABEL}"["{TABS_AND_SPACES}* { /* Start of option with offset */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace and [ */ + EAT_TRAILING_WHITESPACE_EX('['); + + /* Enter offset lookup state */ + yy_push_state(ST_OFFSET TSRMLS_CC); + + RETURN_TOKEN(TC_OFFSET, yytext, yyleng); +} + +{TABS_AND_SPACES}*"]" { /* End of section or an option offset */ + BEGIN(INITIAL); + return ']'; +} + +{DOLLAR_CURLY} { /* Variable start */ + yy_push_state(ST_VARNAME TSRMLS_CC); + return TC_DOLLAR_CURLY; +} + +{LABEL} { /* Variable name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + + RETURN_TOKEN(TC_VARNAME, yytext, yyleng); +} + +"}" { /* Variable end */ + yy_pop_state(TSRMLS_C); + return '}'; +} + +("true"|"on"|"yes"){TABS_AND_SPACES}* { /* TRUE value (when used outside option value/offset this causes parse error!) */ + RETURN_TOKEN(BOOL_TRUE, "1", 1); +} + +("false"|"off"|"no"|"none"|"null"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/ + RETURN_TOKEN(BOOL_FALSE, "", 0); +} + +{LABEL} { /* Get option name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + + RETURN_TOKEN(TC_LABEL, yytext, yyleng); +} + +{TABS_AND_SPACES}*[=]{TABS_AND_SPACES}* { /* Start option value */ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { + yy_push_state(ST_RAW TSRMLS_CC); + } else { + yy_push_state(ST_VALUE TSRMLS_CC); + } + return '='; +} + +["] { + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '\n': + SCNG(lineno)++; + break; + case '\r': + if (*YYCURSOR != '\n') { + SCNG(lineno)++; + } + break; + case '"': + yyleng = YYCURSOR - SCNG(yy_text) - 2; + SCNG(yy_text)++; + RETURN_TOKEN(TC_RAW, yytext, yyleng); + case '\\': + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + break; + } + } + yyleng = YYCURSOR - SCNG(yy_text); + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +{RAW_VALUE_CHARS}+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +{SECTION_RAW_CHARS}+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} + +{TABS_AND_SPACES}*{NEWLINE} { /* End of option value */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} + +{CONSTANT} { /* Get constant option value */ + RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); +} + +{NUMBER} { /* Get number option value as string */ + RETURN_TOKEN(TC_NUMBER, yytext, yyleng); +} + +{TOKENS} { /* Disallow these chars outside option values */ + return yytext[0]; +} + +{OPERATORS}{TABS_AND_SPACES}* { /* Boolean operators */ + return yytext[0]; +} + +[=] { /* Make = used in option value to trigger error */ + yyless(0); + BEGIN(INITIAL); + return END_OF_LINE; +} + +{VALUE_CHARS}+ { /* Get everything else as option/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} + +{SECTION_VALUE_CHARS}+ { /* Get rest as section/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} + +{TABS_AND_SPACES}*["] { /* Double quoted '"' string start */ + yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); + return '"'; +} + +["]{TABS_AND_SPACES}* { /* Double quoted '"' string ends */ + yy_pop_state(TSRMLS_C); + return '"'; +} + +[^] { /* Escape double quoted string contents */ + if (YYCURSOR > YYLIMIT) { + return 0; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') { + continue; + } + break; + case '$': + if (*YYCURSOR == '{') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; + } + + yyleng = YYCURSOR - SCNG(yy_text); + + zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); + return TC_QUOTED_STRING; +} + +{WHITESPACE} { + RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); +} + +{TABS_AND_SPACES}+ { + /* eat whitespace */ + goto restart; +} + +{TABS_AND_SPACES}*{NEWLINE} { + SCNG(lineno)++; + return END_OF_LINE; +} + +{TABS_AND_SPACES}*[;][^\r\n]*{NEWLINE} { /* Comment */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} + +{TABS_AND_SPACES}*[#][^\r\n]*{NEWLINE} { /* #Comment */ + zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} + +[^] { /* End of option value (if EOF is reached before EOL */ + BEGIN(INITIAL); + return END_OF_LINE; +} + +<*>[^] { + return 0; +} + +*/ +} diff --git a/samples/Limbo/cat.b b/samples/Limbo/cat.b new file mode 100644 index 00000000..5b9e3b5b --- /dev/null +++ b/samples/Limbo/cat.b @@ -0,0 +1,48 @@ +implement Cat; + +include "sys.m"; + sys: Sys; + +include "draw.m"; + +Cat: module +{ + init: fn(ctxt: ref Draw->Context, argv: list of string); +}; + +stdout: ref Sys->FD; + +init(nil: ref Draw->Context, args: list of string) +{ + sys = load Sys Sys->PATH; + stdout = sys->fildes(1); + args = tl args; + if(args == nil) + args = "-" :: nil; + for(; args != nil; args = tl args){ + file := hd args; + if(file != "-"){ + fd := sys->open(file, Sys->OREAD); + if(fd == nil){ + sys->fprint(sys->fildes(2), "cat: cannot open %s: %r\n", file); + raise "fail:bad open"; + } + cat(fd, file); + }else + cat(sys->fildes(0), ""); + } +} + +cat(fd: ref Sys->FD, file: string) +{ + buf := array[Sys->ATOMICIO] of byte; + while((n := sys->read(fd, buf, len buf)) > 0) + if(sys->write(stdout, buf, n) < n) { + sys->fprint(sys->fildes(2), "cat: write error: %r\n"); + raise "fail:write error"; + } + if(n < 0) { + sys->fprint(sys->fildes(2), "cat: error reading %s: %r\n", file); + raise "fail:read error"; + } +} diff --git a/samples/Limbo/lock.b b/samples/Limbo/lock.b new file mode 100644 index 00000000..8b51e4f9 --- /dev/null +++ b/samples/Limbo/lock.b @@ -0,0 +1,26 @@ +implement Lock; + +include "sys.m"; + sys: Sys; +include "lock.m"; + +Semaphore.obtain(l: self ref Semaphore) +{ + l.c <-= 0; +} + +Semaphore.release(l: self ref Semaphore) +{ + <-l.c; +} + +Semaphore.new(): ref Semaphore +{ + l := ref Semaphore; + l.c = chan[1] of int; + return l; +} + +init() +{ +} diff --git a/samples/Limbo/lock.m b/samples/Limbo/lock.m new file mode 100644 index 00000000..ffd818c5 --- /dev/null +++ b/samples/Limbo/lock.m @@ -0,0 +1,13 @@ +Lock: module +{ + PATH: con "/dis/lib/lock.dis"; + + Semaphore: adt { + c: chan of int; + obtain: fn(nil: self ref Semaphore); + release: fn(nil: self ref Semaphore); + new: fn(): ref Semaphore; + }; + + init: fn(); +}; diff --git a/samples/Linker Script/filenames/ld.script b/samples/Linker Script/filenames/ld.script new file mode 100644 index 00000000..8e6b07ca --- /dev/null +++ b/samples/Linker Script/filenames/ld.script @@ -0,0 +1,50 @@ +/* + * ld.script for compressed kernel support of MIPS + * + * Copyright (C) 2009 Lemote Inc. + * Author: Wu Zhangjin + * Copyright (C) 2010 "Wu Zhangjin" + */ + +OUTPUT_ARCH(mips) +ENTRY(start) +SECTIONS +{ + /* Text and read-only data */ + /* . = VMLINUZ_LOAD_ADDRESS; */ + .text : { + *(.text) + *(.rodata) + } + /* End of text section */ + + /* Writable data */ + .data : { + *(.data) + /* Put the compressed image here */ + __image_begin = .; + *(.image) + __image_end = .; + CONSTRUCTORS + } + . = ALIGN(16); + _edata = .; + /* End of data section */ + + /* BSS */ + .bss : { + *(.bss) + } + . = ALIGN(16); + _end = .; + + /* Sections to be discarded */ + /DISCARD/ : { + *(.MIPS.options) + *(.options) + *(.pdr) + *(.reginfo) + *(.comment) + *(.note) + } +} diff --git a/samples/Linker Script/link.ld b/samples/Linker Script/link.ld new file mode 100644 index 00000000..833fe462 --- /dev/null +++ b/samples/Linker Script/link.ld @@ -0,0 +1,12 @@ +/* +* link.ld +*/ +OUTPUT_FORMAT(elf32-i386) +ENTRY(start) +SECTIONS + { + . = 0x100000; + .text : { *(.text) } + .data : { *(.data) } + .bss : { *(.bss) } + } \ No newline at end of file diff --git a/samples/Linker Script/vmlinux.lds b/samples/Linker Script/vmlinux.lds new file mode 100644 index 00000000..00bf300f --- /dev/null +++ b/samples/Linker Script/vmlinux.lds @@ -0,0 +1,373 @@ +/* + * ld script for the x86 kernel + * + * Historic 32-bit version written by Martin Mares + * + * Modernisation, unification and other changes and fixes: + * Copyright (C) 2007-2009 Sam Ravnborg + * + * + * Don't define absolute symbols until and unless you know that symbol + * value is should remain constant even if kernel image is relocated + * at run time. Absolute symbols are not relocated. If symbol value should + * change if kernel is relocated, make the symbol section relative and + * put it inside the section definition. + */ + +#ifdef CONFIG_X86_32 +#define LOAD_OFFSET __PAGE_OFFSET +#else +#define LOAD_OFFSET __START_KERNEL_map +#endif + +#include +#include +#include +#include +#include +#include + +#undef i386 /* in case the preprocessor is a 32bit one */ + +OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) + +#ifdef CONFIG_X86_32 +OUTPUT_ARCH(i386) +ENTRY(phys_startup_32) +jiffies = jiffies_64; +#else +OUTPUT_ARCH(i386:x86-64) +ENTRY(phys_startup_64) +jiffies_64 = jiffies; +#endif + +#if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) +/* + * On 64-bit, align RODATA to 2MB so that even with CONFIG_DEBUG_RODATA + * we retain large page mappings for boundaries spanning kernel text, rodata + * and data sections. + * + * However, kernel identity mappings will have different RWX permissions + * to the pages mapping to text and to the pages padding (which are freed) the + * text section. Hence kernel identity mappings will be broken to smaller + * pages. For 64-bit, kernel text and kernel identity mappings are different, + * so we can enable protection checks that come with CONFIG_DEBUG_RODATA, + * as well as retain 2MB large page mappings for kernel text. + */ +#define X64_ALIGN_DEBUG_RODATA_BEGIN . = ALIGN(HPAGE_SIZE); + +#define X64_ALIGN_DEBUG_RODATA_END \ + . = ALIGN(HPAGE_SIZE); \ + __end_rodata_hpage_align = .; + +#else + +#define X64_ALIGN_DEBUG_RODATA_BEGIN +#define X64_ALIGN_DEBUG_RODATA_END + +#endif + +PHDRS { + text PT_LOAD FLAGS(5); /* R_E */ + data PT_LOAD FLAGS(6); /* RW_ */ +#ifdef CONFIG_X86_64 +#ifdef CONFIG_SMP + percpu PT_LOAD FLAGS(6); /* RW_ */ +#endif + init PT_LOAD FLAGS(7); /* RWE */ +#endif + note PT_NOTE FLAGS(0); /* ___ */ +} + +SECTIONS +{ +#ifdef CONFIG_X86_32 + . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; + phys_startup_32 = startup_32 - LOAD_OFFSET; +#else + . = __START_KERNEL; + phys_startup_64 = startup_64 - LOAD_OFFSET; +#endif + + /* Text and read-only data */ + .text : AT(ADDR(.text) - LOAD_OFFSET) { + _text = .; + /* bootstrapping code */ + HEAD_TEXT + . = ALIGN(8); + _stext = .; + TEXT_TEXT + SCHED_TEXT + LOCK_TEXT + KPROBES_TEXT + ENTRY_TEXT + IRQENTRY_TEXT + *(.fixup) + *(.gnu.warning) + /* End of text section */ + _etext = .; + } :text = 0x9090 + + NOTES :text :note + + EXCEPTION_TABLE(16) :text = 0x9090 + +#if defined(CONFIG_DEBUG_RODATA) + /* .text should occupy whole number of pages */ + . = ALIGN(PAGE_SIZE); +#endif + X64_ALIGN_DEBUG_RODATA_BEGIN + RO_DATA(PAGE_SIZE) + X64_ALIGN_DEBUG_RODATA_END + + /* Data */ + .data : AT(ADDR(.data) - LOAD_OFFSET) { + /* Start of data section */ + _sdata = .; + + /* init_task */ + INIT_TASK_DATA(THREAD_SIZE) + +#ifdef CONFIG_X86_32 + /* 32 bit has nosave before _edata */ + NOSAVE_DATA +#endif + + PAGE_ALIGNED_DATA(PAGE_SIZE) + + CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) + + DATA_DATA + CONSTRUCTORS + + /* rarely changed data like cpu maps */ + READ_MOSTLY_DATA(INTERNODE_CACHE_BYTES) + + /* End of data section */ + _edata = .; + } :data + + + . = ALIGN(PAGE_SIZE); + __vvar_page = .; + + .vvar : AT(ADDR(.vvar) - LOAD_OFFSET) { + /* work around gold bug 13023 */ + __vvar_beginning_hack = .; + + /* Place all vvars at the offsets in asm/vvar.h. */ +#define EMIT_VVAR(name, offset) \ + . = __vvar_beginning_hack + offset; \ + *(.vvar_ ## name) +#define __VVAR_KERNEL_LDS +#include +#undef __VVAR_KERNEL_LDS +#undef EMIT_VVAR + + /* + * Pad the rest of the page with zeros. Otherwise the loader + * can leave garbage here. + */ + . = __vvar_beginning_hack + PAGE_SIZE; + } :data + + . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE); + + /* Init code and data - will be freed after init */ + . = ALIGN(PAGE_SIZE); + .init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) { + __init_begin = .; /* paired with __init_end */ + } + +#if defined(CONFIG_X86_64) && defined(CONFIG_SMP) + /* + * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the + * output PHDR, so the next output section - .init.text - should + * start another segment - init. + */ + PERCPU_VADDR(INTERNODE_CACHE_BYTES, 0, :percpu) + ASSERT(SIZEOF(.data..percpu) < CONFIG_PHYSICAL_START, + "per-CPU data too large - increase CONFIG_PHYSICAL_START") +#endif + + INIT_TEXT_SECTION(PAGE_SIZE) +#ifdef CONFIG_X86_64 + :init +#endif + + INIT_DATA_SECTION(16) + + .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { + __x86_cpu_dev_start = .; + *(.x86_cpu_dev.init) + __x86_cpu_dev_end = .; + } + +#ifdef CONFIG_X86_INTEL_MID + .x86_intel_mid_dev.init : AT(ADDR(.x86_intel_mid_dev.init) - \ + LOAD_OFFSET) { + __x86_intel_mid_dev_start = .; + *(.x86_intel_mid_dev.init) + __x86_intel_mid_dev_end = .; + } +#endif + + /* + * start address and size of operations which during runtime + * can be patched with virtualization friendly instructions or + * baremetal native ones. Think page table operations. + * Details in paravirt_types.h + */ + . = ALIGN(8); + .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { + __parainstructions = .; + *(.parainstructions) + __parainstructions_end = .; + } + + /* + * struct alt_inst entries. From the header (alternative.h): + * "Alternative instructions for different CPU types or capabilities" + * Think locking instructions on spinlocks. + */ + . = ALIGN(8); + .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { + __alt_instructions = .; + *(.altinstructions) + __alt_instructions_end = .; + } + + /* + * And here are the replacement instructions. The linker sticks + * them as binary blobs. The .altinstructions has enough data to + * get the address and the length of them to patch the kernel safely. + */ + .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { + *(.altinstr_replacement) + } + + /* + * struct iommu_table_entry entries are injected in this section. + * It is an array of IOMMUs which during run time gets sorted depending + * on its dependency order. After rootfs_initcall is complete + * this section can be safely removed. + */ + .iommu_table : AT(ADDR(.iommu_table) - LOAD_OFFSET) { + __iommu_table = .; + *(.iommu_table) + __iommu_table_end = .; + } + + . = ALIGN(8); + .apicdrivers : AT(ADDR(.apicdrivers) - LOAD_OFFSET) { + __apicdrivers = .; + *(.apicdrivers); + __apicdrivers_end = .; + } + + . = ALIGN(8); + /* + * .exit.text is discard at runtime, not link time, to deal with + * references from .altinstructions and .eh_frame + */ + .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { + EXIT_TEXT + } + + .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { + EXIT_DATA + } + +#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP) + PERCPU_SECTION(INTERNODE_CACHE_BYTES) +#endif + + . = ALIGN(PAGE_SIZE); + + /* freed after init ends here */ + .init.end : AT(ADDR(.init.end) - LOAD_OFFSET) { + __init_end = .; + } + + /* + * smp_locks might be freed after init + * start/end must be page aligned + */ + . = ALIGN(PAGE_SIZE); + .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { + __smp_locks = .; + *(.smp_locks) + . = ALIGN(PAGE_SIZE); + __smp_locks_end = .; + } + +#ifdef CONFIG_X86_64 + .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { + NOSAVE_DATA + } +#endif + + /* BSS */ + . = ALIGN(PAGE_SIZE); + .bss : AT(ADDR(.bss) - LOAD_OFFSET) { + __bss_start = .; + *(.bss..page_aligned) + *(.bss) + . = ALIGN(PAGE_SIZE); + __bss_stop = .; + } + + . = ALIGN(PAGE_SIZE); + .brk : AT(ADDR(.brk) - LOAD_OFFSET) { + __brk_base = .; + . += 64 * 1024; /* 64k alignment slop space */ + *(.brk_reservation) /* areas brk users have reserved */ + __brk_limit = .; + } + + _end = .; + + STABS_DEBUG + DWARF_DEBUG + + /* Sections to be discarded */ + DISCARDS + /DISCARD/ : { *(.eh_frame) } +} + + +#ifdef CONFIG_X86_32 +/* + * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility: + */ +. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), + "kernel image bigger than KERNEL_IMAGE_SIZE"); +#else +/* + * Per-cpu symbols which need to be offset from __per_cpu_load + * for the boot processor. + */ +#define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load +INIT_PER_CPU(gdt_page); +INIT_PER_CPU(irq_stack_union); + +/* + * Build-time check on the image size: + */ +. = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), + "kernel image bigger than KERNEL_IMAGE_SIZE"); + +#ifdef CONFIG_SMP +. = ASSERT((irq_stack_union == 0), + "irq_stack_union is not at start of per-cpu area"); +#endif + +#endif /* CONFIG_X86_32 */ + +#ifdef CONFIG_KEXEC +#include + +. = ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE, + "kexec control code size is too big"); +#endif + diff --git a/samples/Linux Kernel Module/bcm4334x.mod b/samples/Linux Kernel Module/bcm4334x.mod new file mode 100644 index 00000000..8b35ba24 --- /dev/null +++ b/samples/Linux Kernel Module/bcm4334x.mod @@ -0,0 +1,2 @@ +/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcm4334x.ko +/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_pno.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_ip.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_custom_gpio.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_sched.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_wq.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/aiutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmevent.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmwifi_channels.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/hndpmu.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/linux_osl.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/sbutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/siutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_android.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfgp2p.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg_btcoex.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wldev_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_linux_mon.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_platdev.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cdc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_wlfc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_sdio.o diff --git a/samples/Linux Kernel Module/mbcache.mod b/samples/Linux Kernel Module/mbcache.mod new file mode 100644 index 00000000..1478b3a1 --- /dev/null +++ b/samples/Linux Kernel Module/mbcache.mod @@ -0,0 +1,2 @@ +fs/mbcache.ko +fs/mbcache.o diff --git a/samples/Linux Kernel Module/md5.mod b/samples/Linux Kernel Module/md5.mod new file mode 100644 index 00000000..85778eb0 --- /dev/null +++ b/samples/Linux Kernel Module/md5.mod @@ -0,0 +1,2 @@ +crypto/md5.ko +crypto/md5.o diff --git a/samples/MUF/39.m b/samples/MUF/39.m new file mode 100644 index 00000000..16dd9970 --- /dev/null +++ b/samples/MUF/39.m @@ -0,0 +1,278 @@ +$include $lib/strings +$include $lib/match +lvar check-obj-addr + +: check-next-loop (d -- ) + dup not if pop exit then + dup exit? over thing? or + me @ 3 pick .controls and if + dup check-obj-addr @ execute + then + next check-next-loop +; + +: check-contents (d -- ) + contents check-next-loop +; + +: check-exits (d -- ) + exits check-next-loop +; + +: exec-err (d mtypestr warnstr -- ) + "On " 4 rotate unparseobj strcat + ", in it's " strcat rot strcat + ", " strcat swap strcat .tell +; + +: can-linkto? (player object -- i) + dup "link_ok" flag? if pop pop 1 exit then + .controls +; + +: check-exec (d mtype execstr -- ) + dup "@" 1 strncmp if pop pop pop exit then + 1 strcut swap pop + " " .split pop + dup "$" 1 strncmp not if + dup match ok? not if + " is not a known registered program." strcat + exec-err exit + then + dup match program? not if + " is not a program." strcat + exec-err exit + then + 3 pick owner over match can-linkto? not if + " is not Link_OK." strcat + exec-err exit + then + else + dup number? not if + " is not a program dbref." strcat + "@" swap strcat exec-err exit + then + dup atoi dbref ok? not if + " is not a valid program reference." strcat + "@" swap strcat exec-err exit + then + dup atoi dbref program? not if + " is not a valid program reference." strcat + "@" swap strcat exec-err exit + then + 3 pick owner over atoi dbref can-linkto? not if + " is not Link_OK." strcat + "@" swap strcat exec-err exit + then + then + pop pop pop +; + + +: missing-err ( d s -- ) + swap unparseobj + " is missing an " + strcat swap strcat + " message." strcat .tell +; + +: colon-err ( d s -- ) + swap unparseobj + " has an unnecesary ':' at the start of its " + strcat swap strcat + " message." strcat .tell +; + +: check-desc (d -- ) + dup desc not if + "@description" missing-err + else + "@description" over + desc check-exec + then +; + +: check-succ (d -- ) + dup succ not if + "@success" missing-err + else + "@success" over + succ check-exec + then +; + +: check-fail (d -- ) + dup fail not if + "@fail" missing-err + else + "@fail" over + fail check-exec + then +; + +: check-drop (d -- ) + dup drop not if + "@drop" missing-err + else + "@drop" over + drop check-exec + then +; + +: check-osucc (d -- ) + dup osucc not if + "@osuccess" missing-err + else + dup osucc ":" 1 strncmp not if + "@osuccess" colon-err + else pop + then + then +; + +: check-ofail (d -- ) + dup ofail not if + "@ofail" missing-err + else + dup ofail ":" 1 strncmp not if + "@ofail" colon-err + else pop + then + then +; + +: check-odrop (d -- ) + dup odrop not if + "@odrop" missing-err + else + dup odrop ":" 1 strncmp not if + "@odrop" colon-err + else pop + then + then +; + + +$define islocked? (d -- i) getlockstr "*UNLOCKED*" stringcmp $enddef + +: islocked_always? (d -- i) + getlockstr dup "#0" stringcmp not if pop 1 exit then + dup "#" STRsplit swap pop atoi + "#" swap intostr strcat + (lockstr "#dbref") + dup "&!" over strcat strcat + 3 pick stringcmp not if pop pop 1 exit then + "&" over strcat strcat "!" swap strcat + stringcmp not if 1 exit then + 0 +; + +: check-link ( d -- ) + dup getlink not if + dup unparseobj " is unlinked." strcat .tell + else + dup getlink over location dbcmp if + dup islocked? not if + dup unparseobj + " is linked to it's location, but is unlocked." + strcat .tell + then + else (is not linked to it's location) + dup getlink program? if + dup dup owner swap getlink can-linkto? not if + dup unparseobj + " is linked to a program which is not Link_OK." + strcat .tell + then + then + then + then + pop +; + +: check-room (d -- ) + dup check-desc + dup islocked? if + dup islocked_always? not if + dup check-succ + then + dup check-fail + then + dup getlink if + dup check-drop + dup check-odrop + then + dup check-contents + check-exits +; + +: check-exit ( d -- ) + dup check-link + dup check-desc + dup getlink dup ok? if + program? not if + dup islocked_always? not if + dup check-succ + dup check-osucc + dup check-odrop + then + dup islocked? if + dup check-fail + dup check-ofail + then + then + else pop + then + pop +; + +: check-thing ( d -- ) + dup check-desc + dup islocked_always? not if + dup check-succ + dup check-osucc + then + dup islocked? if + dup check-fail + dup check-ofail + then + dup check-drop + dup check-odrop + check-exits +; + +: check-player ( d -- ) + dup check-desc + dup islocked_always? not if + dup check-succ + dup check-osucc + then + dup islocked? if + dup check-fail + dup check-ofail + then + dup check-contents + check-exits +; + +: check-program ( d -- ) + check-desc +; + +: check-obj (d -- ) + dup room? if check-room exit then + dup exit? if check-exit exit then + dup thing? if check-thing exit then + dup player? if check-player exit then + check-program +; + +: main + 'check-obj check-obj-addr ! + .strip dup not if pop "here" then + .match_controlled + dup #-3 dbcmp if pop me @ getlink then + dup ok? not if pop exit then + check-obj + me @ "Check done." notify +; diff --git a/samples/MUF/cmd-say.muf b/samples/MUF/cmd-say.muf new file mode 100644 index 00000000..6d27c65e --- /dev/null +++ b/samples/MUF/cmd-say.muf @@ -0,0 +1,275 @@ +@program cmd-say.muf +1 1000 d +i +( cmd-say.muf by Natasha@HLM + + Copyright 2002-2004 Natasha Snunkmeox. Copyright 2002-2004 Here Lie Monsters. + "@view $box/mit" for license information. +) +$author Natasha Snunkmeox +$note Say for Fuzzball 6. +$version 1.0 + +$include $lib/ignore +$include $lib/strings +$include $lib/match + +$def str_program "saypose" +$def prop_third "_prefs/say/third" +$def prop_quotes "_say/def/quotes" +$def prop_overb "_say/def/osay" +$def prop_verb "_say/def/say" +$def prop_split "_prefs/say/split" +$def prop_color "_prefs/say/color" +$def prop_meow "_prefs/say/meow" + +lvar randomWord + +lvar verb +lvar overb +lvar lquo +lvar rquo +lvar splitsay + +: rtn-getThirdVerb[ var:overb -- ] + ( Get the third-person verb. ) + me @ prop_overb getpropstr dup if ( str strOverb ) + strip dup dup "," instr not and if "," strcat then + else pop "says," then ( str strOverb ) + me @ "%D %s" fmtstring overb @ ! ( str ) +; + +: rtn-getFirstVerb[ var:verb var:overb -- ] + me @ prop_third getpropstr .yes? not if ( str ) + ( Get the first-person verb. ) + me @ prop_verb getpropstr dup if ( str strVerb ) + strip dup dup "," instr not and if "," strcat then + else pop "say," then ( str strVerb ) + splitsay @ if "you %s" else "You %s" then fmtstring ( str strVerb ) + else overb @ @ then verb @ ! ( str ) +; + +: rtn-getQuotes[ var:lquo var:rquo -- ] + me @ prop_quotes getpropstr dup "%m" instr if ( strQuotes ) + "%m" split ( strLquo strRquo ) + else pop "\"" dup then ( strLquo strRquo ) + rquo @ ! lquo @ ! ( ) +; + +: do-say ( str -- ) + "" randomWord ! + + var who + var exclude + + ( Ignoring? Get 'em outta here. ) + loc @ contents_array ( str arrHere ) + dup me @ str_program array_get_ignorers ( str arrHere arrIgnorers ) + dup exclude ! + swap array_diff who ! + + + ( Anyone #meowing this player? Go ahead and notify before special formatting. ) + who @ prop_meow me @ owner "*{%d}*" fmtstring array_filter_prop ( str arrMeow ) + dup if ( str arrMeow ) + dup who @ array_diff who ! ( str arrMeow ) + dup exclude @ array_union exclude ! ( str arrMeow ) + + over ansi_strip ( str arrMeow str ) + "\\b[A-Z0-9_]+\\b" "MEOW" REG_ALL regsub ( str arrMeow str' ) + "\\b[A-Z0-9_][A-Za-z0-9_]*[a-z][A-Za-z0-9_]*\\b" "Meow" REG_ALL regsub ( str arrMeow str' ) + "\\b[a-z_][A-Za-z0-9_]*\\b" "meow" REG_ALL regsub ( str arrMeow str' ) + me @ "%D meows, \"%s\"" fmtstring ( str arrMeow str" ) + 1 array_make swap array_notify ( str ) + else pop then ( str ) + + + var msg + + dup ",," instr ( str boolCommas ) + me @ prop_split getpropstr .no? not ( str boolCommas boolSplitOK ) + and if ( str ) + ",," split ( str- -str ) + + ( User-supplied verb? ) + dup ",," instr if + ",," split ( str- strVerb -str ) + swap dup if ( str- -str strVerb ) + strip ( str- -str strVerb ) + dup me @ name instr over tolower "%n" instr or if ( str- -str strVerb ) + "%n" "%N" subst me @ name "%n" subst ( str- -str strVerb ) + else + me @ swap "%s %D," fmtstring ( str- -str -str- ) + then ( str- -str -str- ) + dup "*[-!.,:;]" smatch not if "," strcat then ( str- -str -str- ) + dup verb ! overb ! ( str- -str ) + else pop then ( str- -str ) + then ( str- -str ) + + 2 array_make ( arrMsg ) + 1 + else 0 then splitsay ! msg ! + + + verb @ string? not if + overb rtn-getThirdVerb + verb overb rtn-getFirstVerb + then + lquo rquo rtn-getQuotes ( str ) + + + ( Say. ) + msg @ string? if + rquo @ msg @ lquo @ ( strRquo strMsg strLquo ) + "%s %s%s%s" ( strRquo strMsg strLquo strFormat ) + + 4 dupn + verb @ swap fmtstring .tell ( strRquo strMsg strLquo strFormat ) + overb @ swap fmtstring ( strOsay ) + else + rquo @ msg @ array_vals pop ( strRquo strMsg strMsg2 ) + swap dup "*[-!.,:;]" smatch not if "," strcat then swap ( strRquo strMsg strMsg2 ) + ( Only handle strMsg if there's no strMsg2. ) + dup if ( strRquo strMsg strMsg2 ) + swap ( strRquo strMsg2 strMsg ) + lquo @ swap rquo @ swap lquo @ ( strRquo strMsg2 strLquo strRquo strMsg' strLquo ) + "%s%s%s %s %s%s%s" ( strRquo strMsg2 strLquo strRquo strMsg' strLquo strFormat ) + + 7 + else ( strRquo strMsg strMsg2 ) + pop lquo @ ( strRquo strMsg' strLquo ) + "%s%s%s %s" ( strRquo strMsg' strLquo strFormat ) + + verb @ ",$" "." 0 regsub verb ! + overb @ ",$" "." 0 regsub overb ! + + 4 + then ( ... strRquo strMsg strLquo strFormat intDepth ) + + dupn + verb @ -5 rotate fmtstring .tell ( ... strRquo strMsg strLquo strFormat ) + overb @ -5 rotate fmtstring ( strOsay ) + then ( strOsay ) + + + ( Is there color to avoid? ) + dup "\[[" instr if + who @ prop_color "{n*|0}" array_filter_prop ( strOsay arrGreyed ) + dup if ( strOsay arrGreyed ) + over ansi_strip 1 array_make ( strOsay arrGreyed arrMsg ) + over array_notify ( strOsay arrGreyed ) + + exclude @ array_union exclude ! ( strOsay ) + else pop then ( strOsay ) + then ( strOsay ) + + loc @ ( strOsay db ) + exclude @ array_vals ( strOsay db dbExcludeN..dbExclude1 intN ) + me @ swap ++ ( strOsay db dbGreyedN..dbGreyed1' intN' ) + dup 3 + rotate ( db dbGreyedN..dbGreyed1 intN strOsay ) + notify_exclude ( ) +; + +: do-help pop pop .showhelp ; +: do-ignore pop str_program cmd-ignore-add ; +: do-unignore pop str_program cmd-ignore-del ; + +: do-third ( strY strZ -- ) + pop pop ( ) + me @ prop_third "yes" setprop + me @ "You will see your own says in the third person (\"%D says\")." fmtstring .tellgood +; +: do-unthird ( strY strZ -- ) + pop pop ( ) + me @ prop_third remove_prop + "You will see your own says in the second person (\"You say\")." .tellgood +; + +: do-grey ( strY strZ -- ) + pop pop ( ) + me @ prop_color "no" setprop + me @ "You will not see color in any says. Note you will see color in your own says." fmtstring .tellgood +; +: do-ungrey ( strY strZ -- ) + pop pop ( ) + me @ prop_color remove_prop + "You will see color in says." .tellgood +; + +: do-meow ( strY strZ -- ) + pop ( strY ) + dup if + .noisy_pmatch dup ok? not if pop exit then ( db ) + me @ prop_meow 3 pick reflist_find if ( db ) + "%D is already in your #meow list." fmtstring .tellbad exit ( ) + then ( db ) + me @ prop_meow 3 pick reflist_add ( db ) + "%D added." fmtstring .tellgood + else + me @ prop_meow array_get_reflist ( arr ) + "" swap foreach swap pop "%D %s" fmtstring repeat + "Your meowlist: " swap strcat .tellgood + then +; +: do-unmeow ( strY strZ -- ) + pop ( strY ) + .noisy_pmatch dup ok? not if pop exit then ( db ) + me @ prop_meow 3 pick reflist_find not if ( db ) + "%D is not in your #meow list." fmtstring .tellbad exit ( ) + then ( db ) + me @ prop_meow 3 pick reflist_del ( db ) + "%D removed." fmtstring .tellgood +; + +$define dict_commands { + "help" 'do-help + "ignore" 'do-ignore + "!ignore" 'do-unignore + "meow" 'do-meow + "!meow" 'do-unmeow + "third" 'do-third + "!third" 'do-unthird + "grey" 'do-grey + "gray" 'do-grey + "!grey" 'do-ungrey + "!gray" 'do-ungrey +}dict $enddef + +: main ( str -- ) + dup STRparse ( str strX strY strZ ) + 3 pick string? if 3 pick "#" stringpfx if ( str strX strY strZ ) + pop pop pop ( str ) + "#" split strcat ( str' ) + do-say exit ( ) + then then + 3 pick int? if pop pop pop do-say exit then + 4 rotate pop ( strX strY strZ ) + + rot dict_commands over array_getitem ( strY strZ strX ? ) + dup address? if ( strY strZ strX adr ) + swap pop ( strY strZ adr ) + execute ( ) + else pop ( strY strZ strX ) + "I don't recognize the command '#%s'. Try 'say #help' for help, or using '##' to say something starting with '#'." fmtstring .tellbad ( strY strZ ) + pop pop ( ) + then ( ) +; +. +c +q + +lsedit #257=_help +.del 1 $ +say +." +say #[!]ignore +say #[!]third +say #[!]grey +say #[!]meow + +Speaks to the room. Use #ignore to not see 's says, poses, and spoofs; use #meow to see 's says with all the words replaced with "meow." Use #third to see your own says in the third person (that is, "Puck says" instead of the normal "You say"). Use #grey to turn off color in others' says and poses. + +Say supports a "split" say if you put two consecutive commas in your message. For example, if CobaltBlue typed '"Hello,,how are you?' everyone would see '"Hello," says CobaltBlue, "how are you?"' You can also specify an "ad-hoc" verb by putting a message with your name or '%N' between pairs of commas: '"Hello,,%N welcomes Weiran,,how are you?' would display '"Hello," CobaltBlue welcomes Weiran, "how are you?"' +.format 10=78 +.format 8=78 +.end diff --git a/samples/Makefile/filenames/Kbuild b/samples/Makefile/filenames/Kbuild new file mode 100644 index 00000000..dd295335 --- /dev/null +++ b/samples/Makefile/filenames/Kbuild @@ -0,0 +1,23 @@ +# Fail on warnings - also for files referenced in subdirs +# -Werror can be disabled for specific files using: +# CFLAGS_ := -Wno-error +subdir-ccflags-y := -Werror + +# platform specific definitions +include arch/mips/Kbuild.platforms +obj-y := $(platform-y) + +# make clean traverses $(obj-) without having included .config, so +# everything ends up here +obj- := $(platform-) + +# mips object files +# The object files are linked as core-y files would be linked + +obj-y += kernel/ +obj-y += mm/ +obj-y += net/ + +ifdef CONFIG_KVM +obj-y += kvm/ +endif diff --git a/samples/Makefile/filenames/Makefile.boot b/samples/Makefile/filenames/Makefile.boot new file mode 100644 index 00000000..07c25c11 --- /dev/null +++ b/samples/Makefile/filenames/Makefile.boot @@ -0,0 +1,159 @@ +# $NetBSD$ + +S= ${.CURDIR}/../../../../.. + +NOMAN= +PROG?= boot +NEWVERSWHAT?= "BIOS Boot" +VERSIONFILE?= ${.CURDIR}/../version + +AFLAGS.biosboot.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:} + +SOURCES?= biosboot.S boot2.c conf.c devopen.c exec.c +SRCS= ${SOURCES} +.if !make(depend) +SRCS+= vers.c +.endif + +PIE_CFLAGS= +PIE_AFLAGS= +PIE_LDFLAGS= + +.include + +STRIPFLAG= # nothing + +LIBCRT0= # nothing +LIBCRTI= # nothing +LIBCRTBEGIN= # nothing +LIBCRTEND= # nothing +LIBC= # nothing + +BINDIR=/usr/mdec +BINMODE=444 + +.PATH: ${.CURDIR}/.. ${.CURDIR}/../../lib + +LDFLAGS+= -nostdlib -Wl,-N -Wl,-e,boot_start +CPPFLAGS+= -I ${.CURDIR}/.. -I ${.CURDIR}/../../lib -I ${S}/lib/libsa +CPPFLAGS+= -I ${.OBJDIR} +# Make sure we override any optimization options specified by the user +COPTS= -Os + +.if ${MACHINE_ARCH} == "x86_64" +LDFLAGS+= -Wl,-m,elf_i386 +AFLAGS+= -m32 +CPUFLAGS= -m32 +LIBKERN_ARCH=i386 +KERNMISCMAKEFLAGS="LIBKERN_ARCH=i386" +.else +CPUFLAGS= -march=i386 -mtune=i386 +.endif + +CFLAGS+= -mno-sse -mno-sse2 -mno-sse3 + +COPTS+= -ffreestanding +CFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes +CPPFLAGS+= -nostdinc -D_STANDALONE +CPPFLAGS+= -I$S + +CPPFLAGS+= -DSUPPORT_PS2 +CPPFLAGS+= -DDIRECT_SERIAL +CPPFLAGS+= -DSUPPORT_SERIAL=boot_params.bp_consdev + +CPPFLAGS+= -DCONSPEED=boot_params.bp_conspeed +CPPFLAGS+= -DCONSADDR=boot_params.bp_consaddr +CPPFLAGS+= -DCONSOLE_KEYMAP=boot_params.bp_keymap + +CPPFLAGS+= -DSUPPORT_CD9660 +CPPFLAGS+= -DSUPPORT_USTARFS +CPPFLAGS+= -DSUPPORT_DOSFS +CPPFLAGS+= -DSUPPORT_EXT2FS +#CPPFLAGS+= -DSUPPORT_MINIXFS3 +CPPFLAGS+= -DPASS_BIOSGEOM +CPPFLAGS+= -DPASS_MEMMAP +#CPPFLAGS+= -DBOOTPASSWD +CPPFLAGS+= -DEPIA_HACK +#CPPFLAGS+= -DDEBUG_MEMSIZE +#CPPFLAGS+= -DBOOT_MSG_COM0 +CPPFLAGS+= -DLIBSA_ENABLE_LS_OP + +# The biosboot code is linked to 'virtual' address of zero and is +# loaded at physical address 0x10000. +# XXX The heap values should be determined from _end. +SAMISCCPPFLAGS+= -DHEAP_START=0x40000 -DHEAP_LIMIT=0x70000 +SAMISCCPPFLAGS+= -DLIBSA_PRINTF_LONGLONG_SUPPORT +SAMISCMAKEFLAGS+= SA_USE_CREAD=yes # Read compressed kernels +SAMISCMAKEFLAGS+= SA_INCLUDE_NET=no # Netboot via TFTP, NFS + +CPPFLAGS+= -Wno-pointer-sign + +# CPPFLAGS+= -DBOOTXX_RAID1_SUPPORT + +I386_STAND_DIR?= $S/arch/i386/stand + +### find out what to use for libi386 +I386DIR= ${I386_STAND_DIR}/lib +.include "${I386DIR}/Makefile.inc" +LIBI386= ${I386LIB} + +### find out what to use for libsa +SA_AS= library +SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" +SAMISCMAKEFLAGS+="SA_ENABLE_LS_OP=yes" +.include "${S}/lib/libsa/Makefile.inc" +LIBSA= ${SALIB} + +### find out what to use for libkern +KERN_AS= library +.include "${S}/lib/libkern/Makefile.inc" +LIBKERN= ${KERNLIB} + +### find out what to use for libz +Z_AS= library +.include "${S}/lib/libz/Makefile.inc" +LIBZ= ${ZLIB} + +LDSCRIPT ?= $S/arch/i386/conf/stand.ldscript + +cleandir distclean: .WAIT cleanlibdir + +cleanlibdir: + -rm -rf lib + +LIBLIST= ${LIBI386} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} ${LIBSA} +# LIBLIST= ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA} ${LIBZ} ${LIBKERN} + +CLEANFILES+= ${PROG}.tmp ${PROG}.map ${PROG}.sym vers.c + +vers.c: ${VERSIONFILE} ${SOURCES} ${LIBLIST} ${.CURDIR}/../Makefile.boot + ${HOST_SH} ${S}/conf/newvers_stand.sh ${VERSIONFILE} x86 ${NEWVERSWHAT} + +# Anything that calls 'real_to_prot' must have a %pc < 0x10000. +# We link the program, find the callers (all in libi386), then +# explicitly pull in the required objects before any other library code. +${PROG}: ${OBJS} ${LIBLIST} ${.CURDIR}/../Makefile.boot + ${_MKTARGET_LINK} + bb="$$( ${CC} -o ${PROG}.sym ${LDFLAGS} -Wl,-Ttext,0 -Wl,-cref \ + ${OBJS} ${LIBLIST} | ( \ + while read symbol file; do \ + [ -z "$$file" ] && continue; \ + [ "$$symbol" = real_to_prot ] && break; \ + done; \ + while \ + oifs="$$IFS"; \ + IFS='()'; \ + set -- $$file; \ + IFS="$$oifs"; \ + [ -n "$$2" ] && echo "${I386DST}/$$2"; \ + read file rest && [ -z "$$rest" ]; \ + do :; \ + done; \ + ) )"; \ + ${CC} -o ${PROG}.sym ${LDFLAGS} -Wl,-Ttext,0 -T ${LDSCRIPT} \ + -Wl,-Map,${PROG}.map -Wl,-cref ${OBJS} $$bb ${LIBLIST} + ${OBJCOPY} -O binary ${PROG}.sym ${PROG} + +.include +KLINK_MACHINE= i386 +.include diff --git a/samples/Makefile/foo.o.d b/samples/Makefile/foo.o.d new file mode 100644 index 00000000..cf0ba55c --- /dev/null +++ b/samples/Makefile/foo.o.d @@ -0,0 +1,5 @@ +bar/foo.o: \ + bar/foo.c \ + bar/baz.h + +bar/baz.h: diff --git a/samples/Makefile/makefile.script! b/samples/Makefile/makefile similarity index 100% rename from samples/Makefile/makefile.script! rename to samples/Makefile/makefile diff --git a/samples/Mathematica/Predicates.wl b/samples/Mathematica/Predicates.wl new file mode 100644 index 00000000..3c569691 --- /dev/null +++ b/samples/Mathematica/Predicates.wl @@ -0,0 +1,150 @@ +(* ::Package:: *) + +BeginPackage["Predicates`"]; + + +(* ::Title:: *) +(*Predicates*) + + +(* ::Section::Closed:: *) +(*Fuzzy Logic*) + + +(* ::Subsection:: *) +(*Documentation*) + + +PossiblyTrueQ::usage="Returns True if the argument is not definitely False."; +PossiblyFalseQ::usage="Returns True if the argument is not definitely True."; +PossiblyNonzeroQ::usage="Returns True if and only if its argument is not definitely zero."; + + +(* ::Subsection:: *) +(*Implimentation*) + + +Begin["`Private`"]; + + +PossiblyTrueQ[expr_]:=\[Not]TrueQ[\[Not]expr] + + +PossiblyFalseQ[expr_]:=\[Not]TrueQ[expr] + + +End[]; + + +(* ::Section::Closed:: *) +(*Numbers and Lists*) + + +(* ::Subsection:: *) +(*Documentation*) + + +AnyQ::usage="Given a predicate and a list, retuns True if and only if that predicate is True for at least one element of the list."; +AnyElementQ::usage="Returns True if cond matches any element of L."; +AllQ::usage="Given a predicate and a list, retuns True if and only if that predicate is True for all elements of the list."; +AllElementQ::usage="Returns True if cond matches any element of L."; + + +AnyNonzeroQ::usage="Returns True if L is a list such that at least one element is definitely not zero."; +AnyPossiblyNonzeroQ::usage="Returns True if expr is a list such that at least one element is not definitely zero."; + + +RealQ::usage="Returns True if and only if the argument is a real number"; +PositiveQ::usage="Returns True if and only if the argument is a positive real number"; +NonnegativeQ::usage="Returns True if and only if the argument is a non-negative real number"; +PositiveIntegerQ::usage="Returns True if and only if the argument is a positive integer"; +NonnegativeIntegerQ::usage="Returns True if and only if the argument is a non-negative integer"; + + +IntegerListQ::usage="Returns True if and only if the input is a list of integers."; +PositiveIntegerListQ::usage="Returns True if and only if the input is a list of positive integers."; +NonnegativeIntegerListQ::usage="Returns True if and only if the input is a list of non-negative integers."; +IntegerOrListQ::usage="Returns True if and only if the input is a list of integers or an integer."; +PositiveIntegerOrListQ::usage="Returns True if and only if the input is a list of positive integers or a positive integer."; +NonnegativeIntegerOrListQ::usage="Returns True if and only if the input is a list of positive integers or a positive integer."; + + +SymbolQ::usage="Returns True if argument is an unassigned symbol."; +SymbolOrNumberQ::usage="Returns True if argument is a number of has head 'Symbol'"; + + +(* ::Subsection:: *) +(*Implimentation*) + + +Begin["`Private`"]; + + +AnyQ[cond_, L_] := Fold[Or, False, cond /@ L] + + +AnyElementQ[cond_,L_]:=AnyQ[cond,Flatten[L]] + + +AllQ[cond_, L_] := Fold[And, True, cond /@ L] + + +AllElementQ[cond_, L_] := Fold[And, True, cond /@ L] + + +AnyNonzeroQ[L_]:=AnyElementQ[#!=0&,L] + + +PossiblyNonzeroQ[expr_]:=PossiblyTrueQ[expr!=0] + + +AnyPossiblyNonzeroQ[expr_]:=AnyElementQ[PossiblyNonzeroQ,expr] + + +RealQ[n_]:=TrueQ[Im[n]==0]; + + +PositiveQ[n_]:=Positive[n]; + + +PositiveIntegerQ[n_]:=PositiveQ[n]\[And]IntegerQ[n]; + + +NonnegativeQ[n_]:=TrueQ[RealQ[n]&&n>=0]; + + +NonnegativeIntegerQ[n_]:=NonnegativeQ[n]\[And]IntegerQ[n]; + + +IntegerListQ[input_]:=ListQ[input]&&Not[MemberQ[IntegerQ/@input,False]]; + + +IntegerOrListQ[input_]:=IntegerListQ[input]||IntegerQ[input]; + + +PositiveIntegerListQ[input_]:=IntegerListQ[input]&&Not[MemberQ[Positive[input],False]]; + + +PositiveIntegerOrListQ[input_]:=PositiveIntegerListQ[input]||PositiveIntegerQ[input]; + + +NonnegativeIntegerListQ[input_]:=IntegerListQ[input]&&Not[MemberQ[NonnegativeIntegerQ[input],False]]; + + +NonnegativeIntegerOrListQ[input_]:=NonnegativeIntegerListQ[input]||NonnegativeIntegerQ[input]; + + +SymbolQ[a_]:=Head[a]===Symbol; + + +SymbolOrNumberQ[a_]:=NumericQ[a]||Head[a]===Symbol; + + +End[]; + + +(* ::Section:: *) +(*Epilogue*) + + +EndPackage[]; diff --git a/samples/Mathematica/UnitTest.wlt b/samples/Mathematica/UnitTest.wlt new file mode 100644 index 00000000..21e67951 --- /dev/null +++ b/samples/Mathematica/UnitTest.wlt @@ -0,0 +1,17 @@ +BeginTestSection["Untitled-5"] + +VerificationTest[(* 1 *) + RotationMatrix[phi] + , + List[List[Cos[phi], Times[-1, Sin[phi]]], List[Sin[phi], Cos[phi]]] +] + +VerificationTest[(* 2 *) + Times[1, Power[Plus[a, Times[-1, a]], -1]] + , + ComplexInfinity + , + {Power::infy} +] + +EndTestSection[] diff --git a/samples/Modelica/NestedPackages.mo b/samples/Modelica/NestedPackages.mo new file mode 100644 index 00000000..d57e1134 --- /dev/null +++ b/samples/Modelica/NestedPackages.mo @@ -0,0 +1,26 @@ +within ModelicaByExample.PackageExamples; +package NestedPackages + "An example of how packages can be used to organize things" + package Types + type Rabbits = Real(quantity="Rabbits", min=0); + type Wolves = Real(quantity="Wolves", min=0); + type RabbitReproduction = Real(quantity="Rabbit Reproduction", min=0); + type RabbitFatalities = Real(quantity="Rabbit Fatalities", min=0); + type WolfReproduction = Real(quantity="Wolf Reproduction", min=0); + type WolfFatalities = Real(quantity="Wolf Fatalities", min=0); + end Types; + + model LotkaVolterra "Lotka-Volterra with types" + parameter Types.RabbitReproduction alpha=0.1; + parameter Types.RabbitFatalities beta=0.02; + parameter Types.WolfReproduction gamma=0.4; + parameter Types.WolfFatalities delta=0.02; + parameter Types.Rabbits x0=10; + parameter Types.Wolves y0=10; + Types.Rabbits x(start=x0); + Types.Wolves y(start=y0); + equation + der(x) = x*(alpha-beta*y); + der(y) = -y*(gamma-delta*x); + end LotkaVolterra; +end NestedPackages; diff --git a/samples/Modelica/NewtonCooling.mo b/samples/Modelica/NewtonCooling.mo new file mode 100644 index 00000000..5a24b99f --- /dev/null +++ b/samples/Modelica/NewtonCooling.mo @@ -0,0 +1,24 @@ +within ModelicaByExample.PackageExamples; +model NewtonCooling + "Cooling example importing physical types from the Modelica Standard Library" + import Modelica.SIunits.Temperature; + import Modelica.SIunits.Mass; + import Modelica.SIunits.Area; + import ConvectionCoefficient = Modelica.SIunits.CoefficientOfHeatTransfer; + import SpecificHeat = Modelica.SIunits.SpecificHeatCapacity; + + // Parameters + parameter Temperature T_inf=300.0 "Ambient temperature"; + parameter Temperature T0=280.0 "Initial temperature"; + parameter ConvectionCoefficient h=0.7 "Convective cooling coefficient"; + parameter Area A=1.0 "Surface area"; + parameter Mass m=0.1 "Mass of thermal capacitance"; + parameter SpecificHeat c_p=1.2 "Specific heat"; + + // Variables + Temperature T "Temperature"; +initial equation + T = T0 "Specify initial value for T"; +equation + m*c_p*der(T) = h*A*(T_inf-T) "Newton's law of cooling"; +end NewtonCooling; diff --git a/samples/Modelica/Pendulum.mo b/samples/Modelica/Pendulum.mo new file mode 100644 index 00000000..919cfb5f --- /dev/null +++ b/samples/Modelica/Pendulum.mo @@ -0,0 +1,47 @@ +within ModelicaByExample.Subsystems.Pendula; +model Pendulum "A single individual pendulum" + import Modelica.Mechanics.MultiBody.Parts; + import Modelica.Mechanics.MultiBody.Joints; + + parameter Modelica.SIunits.Position x; + parameter Modelica.SIunits.Mass m "Mass of mass point"; + parameter Modelica.SIunits.Angle phi "Initial angle"; + parameter Modelica.SIunits.Length L "String length"; + parameter Modelica.SIunits.Diameter d=0.01; + + Parts.Fixed ground(r={0,0,x}, animation=false) + annotation (Placement( + transformation( + extent={{-10,-10},{10,10}}, + rotation=270, origin={0,60}))); + Parts.PointMass ball(m=m, sphereDiameter=5*d) + annotation (Placement(transformation(extent={{-10,-90},{10,-70}}))); + Parts.BodyCylinder string(density=0, r={0,L,0}, diameter=d) + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=90, + origin={0,-30}))); + Joints.Revolute revolute(phi(fixed=true, start=phi), + cylinderDiameter=d/2, animation=false) + annotation (Placement( + transformation( + extent={{-10,-10},{10,10}}, + rotation=90, + origin={0,20}))); +equation + connect(string.frame_a, ball.frame_a) annotation (Line( + points={{0,-40},{0,-40},{0,-80}}, + color={95,95,95}, + thickness=0.5, + smooth=Smooth.None)); + connect(revolute.frame_b, ground.frame_b) annotation (Line( + points={{0,30},{0,40},{0,40},{0,50}}, + color={95,95,95}, + thickness=0.5, + smooth=Smooth.None)); + connect(revolute.frame_a, string.frame_b) annotation (Line( + points={{0,10},{0,10},{0,-20},{0,-20}}, + color={95,95,95}, + thickness=0.5, + smooth=Smooth.None)); +end Pendulum; diff --git a/samples/Modelica/RLC.mo b/samples/Modelica/RLC.mo new file mode 100644 index 00000000..fb84728d --- /dev/null +++ b/samples/Modelica/RLC.mo @@ -0,0 +1,16 @@ +within ModelicaByExample.PackageExamples; +model RLC "An RLC circuit referencing types from the Modelica Standard Library" + parameter Modelica.SIunits.Voltage Vb=24 "Battery voltage"; + parameter Modelica.SIunits.Inductance L = 1; + parameter Modelica.SIunits.Resistance R = 100; + parameter Modelica.SIunits.Capacitance C = 1e-3; + Modelica.SIunits.Voltage V; + Modelica.SIunits.Current i_L; + Modelica.SIunits.Current i_R; + Modelica.SIunits.Current i_C; +equation + i_R = V/R; + i_C = C*der(V); + i_L=i_R+i_C; + L*der(i_L) = (Vb-V); +end RLC; diff --git a/samples/Modelica/SecondOrderSystem.mo b/samples/Modelica/SecondOrderSystem.mo new file mode 100644 index 00000000..29d412ec --- /dev/null +++ b/samples/Modelica/SecondOrderSystem.mo @@ -0,0 +1,29 @@ +within ModelicaByExample.PackageExamples; +model SecondOrderSystem + "A second order rotational system importing types from Modelica Standard Library" + import Modelica.SIunits.*; + parameter Angle phi1_init = 0; + parameter Angle phi2_init = 1; + parameter AngularVelocity omega1_init = 0; + parameter AngularVelocity omega2_init = 0; + parameter Inertia J1=0.4; + parameter Inertia J2=1.0; + parameter RotationalSpringConstant k1=11; + parameter RotationalSpringConstant k2=5; + parameter RotationalDampingConstant d1=0.2; + parameter RotationalDampingConstant d2=1.0; + Angle phi1; + Angle phi2; + AngularVelocity omega1; + AngularVelocity omega2; +initial equation + phi1 = phi1_init; + phi2 = phi2_init; + omega1 = omega1_init; + omega2 = omega2_init; +equation + omega1 = der(phi1); + omega2 = der(phi2); + J1*der(omega1) = k1*(phi2-phi1)+d1*der(phi2-phi1); + J2*der(omega2) = k1*(phi1-phi2)+d1*der(phi1-phi2)-k2*phi2-d2*der(phi2); +end SecondOrderSystem; diff --git a/samples/Modelica/System.mo b/samples/Modelica/System.mo new file mode 100644 index 00000000..82d762a5 --- /dev/null +++ b/samples/Modelica/System.mo @@ -0,0 +1,19 @@ +within ModelicaByExample.Subsystems.Pendula; +model System "A system of pendula" + import Modelica.Constants.g_n; + import Modelica.Constants.pi; + + parameter Integer n=15 "Number of pendula"; + parameter Modelica.SIunits.Position x[n] = linspace(0,(n-1)*0.05,n); + parameter Modelica.SIunits.Time T = 54; + parameter Modelica.SIunits.Time X = 30; + parameter Modelica.SIunits.Length lengths[n] = { g_n*(T/(2*pi*(X+(n-i))))^2 for i in 1:n}; + parameter Modelica.SIunits.Angle phi0 = 0.5; + + Pendulum pendulum[n](x=x, each m=1, each phi=phi0, L=lengths) + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + inner Modelica.Mechanics.MultiBody.World world + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); + annotation (experiment(StopTime=54, + Interval=9e-3, Tolerance=1e-008)); +end System; diff --git a/samples/Modelica/package.mo b/samples/Modelica/package.mo new file mode 100644 index 00000000..09cdd4db --- /dev/null +++ b/samples/Modelica/package.mo @@ -0,0 +1,4 @@ +within ; +package ModelicaByExample +annotation (uses(Modelica(version="3.2.1"))); +end ModelicaByExample; diff --git a/samples/Modelica/package2.mo b/samples/Modelica/package2.mo new file mode 100644 index 00000000..98c31810 --- /dev/null +++ b/samples/Modelica/package2.mo @@ -0,0 +1,3 @@ +within ModelicaByExample; +package PackageExamples "Examples of using packages" +end PackageExamples; diff --git a/samples/Modelica/package3.mo b/samples/Modelica/package3.mo new file mode 100644 index 00000000..53cb202e --- /dev/null +++ b/samples/Modelica/package3.mo @@ -0,0 +1,3 @@ +within ModelicaByExample.Subsystems; +package GearSubsystemModel "Build a subsystem model representing a gear with backlash" +end GearSubsystemModel; diff --git a/samples/Modelica/package4.mo b/samples/Modelica/package4.mo new file mode 100644 index 00000000..c0630497 --- /dev/null +++ b/samples/Modelica/package4.mo @@ -0,0 +1,3 @@ +within ModelicaByExample.Subsystems; +package Pendula "Example of using arrays of subsystems to build complete systems" +end Pendula; diff --git a/samples/Modula-2/HuffChan.mod b/samples/Modula-2/HuffChan.mod new file mode 100644 index 00000000..14073609 --- /dev/null +++ b/samples/Modula-2/HuffChan.mod @@ -0,0 +1,329 @@ +IMPLEMENTATION MODULE HuffChan; + +(* + This module shows how to redefine standard IO file functions. It provides + functions for reading and writing packed files opened in Raw mode. +*) + +IMPORT IOChan, IOLink, ChanConsts, IOConsts, SYSTEM, Strings; +FROM Storage IMPORT ALLOCATE, DEALLOCATE; + +CONST + rbldFrq = 512; (* means: every 512 bytes rebuild table *) + +TYPE + charTap = POINTER TO ARRAY [0..MAX(INTEGER)-1] OF CHAR; + smbTp = POINTER TO smbT; + + smbT = RECORD (* Huffman's tree *) + ch : CHAR; + n : CARDINAL; (* frequncy of char ch *) + left,right,next : smbTp; + END; + + tblT = RECORD (* bit sequence for code *) + vl : CARDINAL; (* bit sequence *) + cnt : INTEGER; (* it length *) + END; + + lclDataT = RECORD (* channel's local data *) + tRoot : smbTp; + htbl : ARRAY [0..255] OF tblT; (* code -> bit sequence table *) + ftbl : ARRAY [0..255] OF CARDINAL; (* frequncey table *) + wBf,rb1,rb2 : CARDINAL; + wbc,rbc,smc : INTEGER; + chid : IOChan.ChanId; + END; + lclDataTp = POINTER TO lclDataT; + charp = POINTER TO CHAR; + +VAR + did : IOLink.DeviceId; + ldt : lclDataTp; + + +PROCEDURE Shf(a:CARDINAL; b : INTEGER) : CARDINAL; (* shl a,b (or shr) *) +BEGIN + RETURN SYSTEM.CAST(CARDINAL,SYSTEM.SHIFT(SYSTEM.CAST(BITSET,a),b)); +END Shf; + +PROCEDURE wrDword(a:CARDINAL); (* write 4 bytes to file *) +BEGIN + IOChan.RawWrite(ldt^.chid,SYSTEM.ADR(a),4); +END wrDword; + +PROCEDURE rdDword() : CARDINAL; (* read 4 bytes from file *) +VAR + a,z : CARDINAL; +BEGIN + a:=0; + IOChan.RawRead(ldt^.chid,SYSTEM.ADR(a),4,z); + RETURN a; +END rdDword; + +PROCEDURE wrSmb(ch : CHAR); (* write bit sequence for code ch *) +VAR + v,h : CARDINAL; + b,c : INTEGER; +BEGIN + WITH ldt^ DO + v:=htbl[ORD(ch)].vl; + c:=htbl[ORD(ch)].cnt; + IF c+wbc<=32 THEN + wBf:=Shf(wBf,c); + wBf:=wBf+v; + wbc:=wbc+c; + IF wbc=32 THEN + wrDword(wBf); + wBf:=0; wbc:=0; + END; + RETURN; + END; + b:=c+wbc-32; + h:=Shf(v,-b); + wBf:=Shf(wBf,32-wbc)+h; + wrDword(wBf); + wBf:=v-Shf(h,b); + wbc:=b; + END; +END wrSmb; + +PROCEDURE flush(); (* write data in buffer *) +BEGIN + WITH ldt^ DO + wBf:=Shf(wBf,32-wbc); + wrDword(wBf); + END; +END flush; + +PROCEDURE getSym() : CHAR; (* find code for first bit sequence in buffer *) +VAR + t,i : CARDINAL; + b : INTEGER; +BEGIN + WITH ldt^ DO + IF rbc<=32 THEN + rb2:=rdDword(); + t:=Shf(rb2,-rbc); + IF rbc=32 THEN t:=0; END; + rb1:=rb1+t; + rb2:=Shf(rb2,32-rbc); + IF rbc=0 THEN rb2:=0; END; + rbc:=rbc+32; + END; + FOR i:=0 TO 255 DO + t:=Shf(rb1,htbl[i].cnt-32); + IF t=htbl[i].vl THEN + rb1:=Shf(rb1,htbl[i].cnt); + b:=32-htbl[i].cnt; + t:=Shf(rb2,-b); + rb1:=rb1+t; + rb2:=Shf(rb2,32-b); + rbc:=rbc+b-32; + RETURN CHR(i); + END; + END; + END; +END getSym; + +PROCEDURE Insert(s : smbTp); (* insert new character in Huffman's tree *) +VAR + cr : smbTp; +BEGIN + WITH ldt^ DO + IF tRoot=NIL THEN + cr:=tRoot; + tRoot:=s; + s^.next:=cr; + RETURN; + ELSIF tRoot^.n<=s^.n THEN + cr:=tRoot; + tRoot:=s; + s^.next:=cr; + RETURN; + END; + cr:=tRoot; + WHILE (cr^.next<>NIL) & (cr^.next^.n>s^.n) DO + cr:=cr^.next; + END; + s^.next:=cr^.next; + cr^.next:=s; + END; +END Insert; + +PROCEDURE BuildTree(); (* build Huffman's tree *) +VAR + cr,ocr,ncr : smbTp; +BEGIN + WITH ldt^ DO + LOOP + ocr:=NIL; cr:=tRoot; + WHILE cr^.next^.next<>NIL DO + ocr:=cr; cr:=cr^.next; + END; + NEW(ncr); + ncr^.n:=cr^.n+cr^.next^.n; + ncr^.left:=cr; + ncr^.right:=cr^.next; + IF ocr<>NIL THEN + ocr^.next:=NIL; + Insert(ncr); + ELSE + tRoot:=NIL; + Insert(ncr); + EXIT; + END; + END; + END; +END BuildTree; + +PROCEDURE BuildTable(cr: smbTp; vl,n: CARDINAL); (* build table: code -> bit sequence *) +BEGIN + WITH ldt^ DO + IF cr^.left=NIL THEN + htbl[ORD(cr^.ch)].vl:=vl; + htbl[ORD(cr^.ch)].cnt:=n; + DISPOSE(cr); + RETURN; + END; + vl:=vl*2; + BuildTable(cr^.left,vl,n+1); + BuildTable(cr^.right,vl+1,n+1); + DISPOSE(cr); + END; +END BuildTable; + +PROCEDURE clcTab(); (* build code/bitseq. table from frequency table *) +VAR + i : CARDINAL; + s : smbTp; +BEGIN + WITH ldt^ DO + tRoot:=NIL; + FOR i:=0 TO 255 DO + NEW(s); + s^.ch:=CHR(i); + s^.n:=ftbl[i]; + s^.left:=NIL; s^.right:=NIL; s^.next:=NIL; + Insert(s); + END; + BuildTree(); + BuildTable(tRoot,0,0); + END; +END clcTab; + +PROCEDURE iniHuf(); +VAR + i : CARDINAL; +BEGIN + WITH ldt^ DO + FOR i:=0 TO 255 DO + ftbl[i]:=1; + END; + wBf:=0; wbc:=0; rb1:=0; rb2:=0; rbc:=0; + smc:=0; + clcTab(); + END; +END iniHuf; + + +PROCEDURE RawWrite(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS; + len: CARDINAL); +VAR + i : CARDINAL; + ch : CHAR; + cht : charTap; +BEGIN + IF len = 0 THEN RETURN; END; + ldt:=SYSTEM.CAST(lclDataTp,x^.cd); + cht:=SYSTEM.CAST(charTap,buf); + WITH ldt^ DO + FOR i:=0 TO len-1 DO + ch:=cht^[i]; + wrSmb(ch); + IF ch = 377C THEN wrSmb(ch); END; + ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1; + IF smc=rbldFrq THEN + clcTab(); + smc:=0; + END; + END; + END; + x^.result:=IOChan.ReadResult(ldt^.chid); +END RawWrite; + +PROCEDURE RawRead(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS; + blen: CARDINAL; VAR len: CARDINAL); +VAR + i : CARDINAL; + cht : charTap; + ch : CHAR; +BEGIN + ldt:=SYSTEM.CAST(lclDataTp,x^.cd); + cht:=SYSTEM.CAST(charTap,buf); + IF (blen=0) OR (x^.result<>IOConsts.allRight) THEN len:=0; RETURN; END; + WITH ldt^ DO + FOR i:=0 TO blen-1 DO + ch:=getSym(); + IF ch = 377C THEN + ch:=getSym(); + IF ch = 0C THEN + x^.result:=IOConsts.endOfInput; + len:=i; cht^[i]:=0C; + RETURN; + END; + END; + cht^[i]:=ch; + ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1; + IF smc=rbldFrq THEN + clcTab(); + smc:=0; + END; + END; + len:=blen; + END; +END RawRead; + +PROCEDURE CreateAlias(VAR cid: ChanId; io: ChanId; VAR res: OpenResults); +VAR + x : IOLink.DeviceTablePtr; +BEGIN + IOLink.MakeChan(did,cid); + IF cid = IOChan.InvalidChan() THEN + res:=ChanConsts.outOfChans + ELSE + NEW(ldt); + IF ldt=NIL THEN + IOLink.UnMakeChan(did,cid); + res:=ChanConsts.outOfChans; + RETURN; + END; + x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,""); + ldt^.chid:=io; + x^.cd:=ldt; + x^.doRawWrite:=RawWrite; + x^.doRawRead:=RawRead; + res:=ChanConsts.opened; + iniHuf(); + x^.result:=IOConsts.allRight; + END; +END CreateAlias; + +PROCEDURE DeleteAlias(VAR cid: ChanId); +VAR + x : IOLink.DeviceTablePtr; +BEGIN + x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,""); + ldt:=x^.cd; + IF ldt^.rbc=0 THEN + wrSmb(377C); + wrSmb(0C); + flush(); + END; + DISPOSE(ldt); + IOLink.UnMakeChan(did,cid); +END DeleteAlias; + +BEGIN + IOLink.AllocateDeviceId(did); +END HuffChan. diff --git a/samples/Module Management System/descrip.mms b/samples/Module Management System/descrip.mms new file mode 100644 index 00000000..f6530a56 --- /dev/null +++ b/samples/Module Management System/descrip.mms @@ -0,0 +1,1204 @@ +# DESCRIP.MMS +# Written By: Robert Alan Byer / byer@mail.ourservers.net +# Modified By: Mark Pizzolato / mark@infocomm.com +# Norman Lastovica / norman.lastovica@oracle.com +# +# This MMS/MMK build script is used to compile the various simulators in +# the SIMH package for OpenVMS using DEC C v6.0-001(AXP), v6.5-001(AXP), +# HP C V7.2-001 (IA64) and v6.4-005(VAX). +# +# Notes: On VAX, the PDP-10 and Eclipse simulators will not be built +# due to the fact that INT64 is required for that simulator. +# +# This build script will accept the following build options. +# +# ALL Just Build "Everything". +# ALTAIR Just Build The MITS Altair. +# ALTAIRZ80 Just Build The MITS Altair Z80. +# ECLIPSE Just Build The Data General Eclipse. +# GRI Just Build The GRI Corporation GRI-909. +# LGP Just Build The Royal-McBee LGP-30. +# H316 Just Build The Honewell 316/516. +# HP2100 Just Build The Hewlett-Packard HP-2100. +# I1401 Just Build The IBM 1401. +# I1620 Just Build The IBM 1620. +# IBM1130 Just Build The IBM 1130. +# ID16 Just Build The Interdata 16-bit CPU. +# ID32 Just Build The Interdata 32-bit CPU. +# NOVA Just Build The Data General Nova. +# PDP1 Just Build The DEC PDP-1. +# PDP4 Just Build The DEC PDP-4. +# PDP7 Just Build The DEC PDP-7. +# PDP8 Just Build The DEC PDP-8. +# PDP9 Just Build The DEC PDP-9. +# PDP10 Just Build The DEC PDP-10. +# PDP11 Just Build The DEC PDP-11. +# PDP15 Just Build The DEC PDP-15. +# S3 Just Build The IBM System 3. +# SDS Just Build The SDS 940. +# VAX Just Build The DEC VAX. +# VAX780 Just Build The DEC VAX780. +# CLEAN Will Clean Files Back To Base Kit. +# +# To build with debugging enabled (which will also enable traceback +# information) use.. +# +# MMK/MACRO=(DEBUG=1) +# +# This will produce an executable named {Simulator}-{I64|VAX|AXP}-DBG.EXE +# + +# Let's See If We Are Going To Build With DEBUG Enabled. Always compile +# /DEBUG so that the traceback and debug information is always available +# in the object files. + +CC_DEBUG = /DEBUG + +.IFDEF DEBUG +LINK_DEBUG = /DEBUG/TRACEBACK +CC_OPTIMIZE = /NOOPTIMIZE + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = AXP-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = I64-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX-DBG +CC_DEFS = "__VAX" +.ENDIF + +.ELSE +LINK_DEBUG = /NODEBUG/NOTRACEBACK + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5)/ARCH=HOST +CC_FLAGS = /PREF=ALL +ARCH = AXP +CC_DEFS = "_LARGEFILE" +LINK_SECTION_BINDING = /SECTION_BINDING +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5) +CC_FLAGS = /PREF=ALL +ARCH = I64 +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_OPTIMIZE = /OPTIMIZE +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX +CC_DEFS = "__VAX" +.ENDIF + +.ENDIF + +# Define Our Compiler Flags & Define The Compile Command +OUR_CC_FLAGS = $(CC_FLAGS)$(CC_DEBUG)$(CC_OPTIMIZE) \ + /NEST=PRIMARY/NAME=(AS_IS,SHORT) +CC = CC/DECC$(OUR_CC_FLAGS) + +# Define The BIN Directory Where The Executables Will Go. +# Define Our Library Directory. +# Define The platform specific Build Directory Where The Objects Will Go. +# +BIN_DIR = SYS$DISK:[.BIN] +LIB_DIR = SYS$DISK:[.LIB] +BLD_DIR = SYS$DISK:[.LIB.BLD-$(ARCH)] + +# Check To Make Sure We Have SYS$DISK:[.BIN] & SYS$DISK:[.LIB] Directory. +# +.FIRST + @ IF (F$SEARCH("SYS$DISK:[]BIN.DIR").EQS."") THEN CREATE/DIRECTORY $(BIN_DIR) + @ IF (F$SEARCH("SYS$DISK:[]LIB.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) + @ IF (F$SEARCH("SYS$DISK:[.LIB]BLD-$(ARCH).DIR").EQS."") THEN CREATE/DIRECTORY $(BLD_DIR) + @ IF (F$SEARCH("$(BLD_DIR)*.*").NES."") THEN DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.*;* + @ IF "".NES."''CC'" THEN DELETE/SYMBOL/GLOBAL CC + +# Core SIMH File Definitions. +# +SIMH_DIR = SYS$DISK:[] +SIMH_LIB = $(LIB_DIR)SIMH-$(ARCH).OLB +SIMH_SOURCE = $(SIMH_DIR)SIM_CONSOLE.C,$(SIMH_DIR)SIM_SOCK.C,\ + $(SIMH_DIR)SIM_TMXR.C,$(SIMH_DIR)SIM_ETHER.C,\ + $(SIMH_DIR)SIM_TAPE.C,$(SIMH_DIR)SIM_FIO.C,\ + $(SIMH_DIR)SIM_TIMER.C + +# VMS PCAP File Definitions. +# +PCAP_DIR = SYS$DISK:[.PCAP-VMS.PCAP-VCI] +PCAP_LIB = $(LIB_DIR)PCAP-$(ARCH).OLB +PCAP_SOURCE = \ + $(PCAP_DIR)PCAPVCI.C,$(PCAP_DIR)VCMUTIL.C,\ + $(PCAP_DIR)BPF_DUMP.C,$(PCAP_DIR)BPF_FILTER.C,\ + $(PCAP_DIR)BPF_IMAGE.C,$(PCAP_DIR)ETHERENT.C,\ + $(PCAP_DIR)FAD-GIFC.C,$(PCAP_DIR)GENCODE.C,\ + $(PCAP_DIR)GRAMMAR.C,$(PCAP_DIR)INET.C,\ + $(PCAP_DIR)NAMETOADDR.C,$(PCAP_DIR)OPTIMIZE.C,\ + $(PCAP_DIR)PCAP.C,$(PCAP_DIR)SAVEFILE.C,\ + $(PCAP_DIR)SCANNER.C,$(PCAP_DIR)SNPRINTF.C,\ + $(PCAP_DIR)PCAP-VMS.C +PCAP_VCMDIR = SYS$DISK:[.PCAP-VMS.PCAPVCM] +PCAP_VCM_SOURCES = $(PCAP_VCMDIR)PCAPVCM.C,$(PCAP_VCMDIR)PCAPVCM_INIT.MAR,\ + $(PCAP_VCMDIR)VCI_JACKET.MAR,$(PCAP_VCMDIR)VCMUTIL.C +PCAP_VCI = SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +# PCAP is not available on OpenVMS VAX or IA64 right now +# +.IFDEF MMSALPHA +PCAP_EXECLET = $(PCAP_VCI) +PCAP_INC = ,$(PCAP_DIR) +PCAP_LIBD = $(PCAP_LIB) +PCAP_LIBR = ,$(PCAP_LIB)/LIB/SYSEXE +PCAP_DEFS = ,"USE_NETWORK=1" +PCAP_SIMH_INC = /INCL=($(PCAP_DIR)) +.ENDIF + +# MITS Altair Simulator Definitions. +# +ALTAIR_DIR = SYS$DISK:[.ALTAIR] +ALTAIR_LIB = $(LIB_DIR)ALTAIR-$(ARCH).OLB +ALTAIR_SOURCE = $(ALTAIR_DIR)ALTAIR_SIO.C,$(ALTAIR_DIR)ALTAIR_CPU.C,\ + $(ALTAIR_DIR)ALTAIR_DSK.C,$(ALTAIR_DIR)ALTAIR_SYS.C +ALTAIR_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIR_DIR))/DEF=($(CC_DEFS)) + +# +# MITS Altair Z80 Simulator Definitions. +# +ALTAIRZ80_DIR = SYS$DISK:[.ALTAIRZ80] +ALTAIRZ80_LIB = $(LIB_DIR)ALTAIRZ80-$(ARCH).OLB +ALTAIRZ80_SOURCE = $(ALTAIRZ80_DIR)/ALTAIRZ80_CPU.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_CPU_NOMMU.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_DSK.C,$(ALTAIRZ80_DIR)/DISASM.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_SIO.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_SYS.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_HDSK.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_NET.C,\ + $(ALTAIRZ80_DIR)/FLASHWRITER2.C,$(ALTAIRZ80_DIR)/I86_DECODE.C,\ + $(ALTAIRZ80_DIR)/I86_OPS.C,$(ALTAIRZ80_DIR)/I86_PRIM_OPS.C,\ + $(ALTAIRZ80_DIR)/I8272.C,$(ALTAIRZ80_DIR)/INSNSA.C,$(ALTAIRZ80_DIR)/INSNSD.C,\ + $(ALTAIRZ80_DIR)/MFDC.C,$(ALTAIRZ80_DIR)/N8VEM.C,$(ALTAIRZ80_DIR)/VFDHD.C,\ + $(ALTAIRZ80_DIR)/S100_DISK1A.C,$(ALTAIRZ80_DIR)/S100_DISK2.C,\ + $(ALTAIRZ80_DIR)/S100_FIF.C,$(ALTAIRZ80_DIR)/S100_MDRIVEH.C,\ + $(ALTAIRZ80_DIR)/S100_MDSAD.C,$(ALTAIRZ80_DIR)/S100_SELCHAN.C,\ + $(ALTAIRZ80_DIR)/S100_SS1.C,$(ALTAIRZ80_DIR)/S100_64FDC.C,\ + $(ALTAIRZ80_DIR)/S100_SCP300F.C,$(ALTAIRZ80_DIR)/SIM_IMD.C,\ + $(ALTAIRZ80_DIR)/WD179X.C +ALTAIRZ80_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIRZ80_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Nova Simulator Definitions. +# +NOVA_DIR = SYS$DISK:[.NOVA] +NOVA_LIB = $(LIB_DIR)NOVA-$(ARCH).OLB +NOVA_SOURCE = $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_CPU.C,\ + $(NOVA_DIR)NOVA_DKP.C,$(NOVA_DIR)NOVA_DSK.C,\ + $(NOVA_DIR)NOVA_LP.C,$(NOVA_DIR)NOVA_MTA.C,\ + $(NOVA_DIR)NOVA_PLT.C,$(NOVA_DIR)NOVA_PT.C,\ + $(NOVA_DIR)NOVA_CLK.C,$(NOVA_DIR)NOVA_TT.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +NOVA_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Eclipse Simulator Definitions. +# +ECLIPSE_LIB = $(LIB_DIR)ECLIPSE-$(ARCH).OLB +ECLIPSE_SOURCE = $(NOVA_DIR)ECLIPSE_CPU.C,$(NOVA_DIR)ECLIPSE_TT.C,\ + $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_DKP.C,\ + $(NOVA_DIR)NOVA_DSK.C,$(NOVA_DIR)NOVA_LP.C,\ + $(NOVA_DIR)NOVA_MTA.C,$(NOVA_DIR)NOVA_PLT.C,\ + $(NOVA_DIR)NOVA_PT.C,$(NOVA_DIR)NOVA_CLK.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +ECLIPSE_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","ECLIPSE=1") + +# +# GRI Corporation GRI-909 Simulator Definitions. +# +GRI_DIR = SYS$DISK:[.GRI] +GRI_LIB = $(LIB_DIR)GRI-$(ARCH).OLB +GRI_SOURCE = $(GRI_DIR)GRI_CPU.C,$(GRI_DIR)GRI_STDDEV.C,$(GRI_DIR)GRI_SYS.C +GRI_OPTIONS = /INCL=($(SIMH_DIR),$(GRI_DIR))/DEF=($(CC_DEFS)) + +# +# Royal-McBee LGP-30 Simulator Definitions. +# +LGP_DIR = SYS$DISK:[.LGP] +LGP_LIB = $(LIB_DIR)LGP-$(ARCH).OLB +LGP_SOURCE = $(LGP_DIR)LGP_CPU.C,$(LGP_DIR)LGP_STDDEV.C,$(LGP_DIR)LGP_SYS.C +LGP_OPTIONS = /INCL=($(SIMH_DIR),$(LGP_DIR))/DEF=($(CC_DEFS)) + +# +# Honeywell 316/516 Simulator Definitions. +# +H316_DIR = SYS$DISK:[.H316] +H316_LIB = $(LIB_DIR)H316-$(ARCH).OLB +H316_SOURCE = $(H316_DIR)H316_STDDEV.C,$(H316_DIR)H316_LP.C,\ + $(H316_DIR)H316_CPU.C,$(H316_DIR)H316_SYS.C,\ + $(H316_DIR)H316_FHD.C,$(H316_DIR)H316_MT.C,\ + $(H316_DIR)H316_DP.C +H316_OPTIONS = /INCL=($(SIMH_DIR),$(H316_DIR))/DEF=($(CC_DEFS)) + +# +# Hewlett-Packard HP-2100 Simulator Definitions. +# +HP2100_DIR = SYS$DISK:[.HP2100] +HP2100_LIB = $(LIB_DIR)HP2100-$(ARCH).OLB +HP2100_SOURCE = $(HP2100_DIR)HP2100_STDDEV.C,$(HP2100_DIR)HP2100_DP.C,\ + $(HP2100_DIR)HP2100_DQ.C,$(HP2100_DIR)HP2100_DR.C,\ + $(HP2100_DIR)HP2100_LPS.C,$(HP2100_DIR)HP2100_MS.C,\ + $(HP2100_DIR)HP2100_MT.C,$(HP2100_DIR)HP2100_MUX.C,\ + $(HP2100_DIR)HP2100_CPU.C,$(HP2100_DIR)HP2100_FP.C,\ + $(HP2100_DIR)HP2100_SYS.C,$(HP2100_DIR)HP2100_LPT.C,\ + $(HP2100_DIR)HP2100_IPL.C,$(HP2100_DIR)HP2100_DS.C,\ + $(HP2100_DIR)HP2100_CPU0.C,$(HP2100_DIR)HP2100_CPU1.C,\ + $(HP2100_DIR)HP2100_CPU2.C,$(HP2100_DIR)HP2100_CPU3.C,\ + $(HP2100_DIR)HP2100_CPU4.C,$(HP2100_DIR)HP2100_CPU5.C,\ + $(HP2100_DIR)HP2100_CPU6.C,$(HP2100_DIR)HP2100_CPU7.C,\ + $(HP2100_DIR)HP2100_FP1.C,$(HP2100_DIR)HP2100_BACI.C,\ + $(HP2100_DIR)HP2100_MPX.C,$(HP2100_DIR)HP2100_PIF.C +.IF ALPHA_OR_IA64 +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))\ + /DEF=($(CC_DEFS),"HAVE_INT64=1") +.ELSE +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))/DEF=($(CC_DEFS)) +.ENDIF + +# +# Interdata 16-bit CPU. +# +ID16_DIR = SYS$DISK:[.INTERDATA] +ID16_LIB = $(LIB_DIR)ID16-$(ARCH).OLB +ID16_SOURCE = $(ID16_DIR)ID16_CPU.C,$(ID16_DIR)ID16_SYS.C,$(ID16_DIR)ID_DP.C,\ + $(ID16_DIR)ID_FD.C,$(ID16_DIR)ID_FP.C,$(ID16_DIR)ID_IDC.C,\ + $(ID16_DIR)ID_IO.C,$(ID16_DIR)ID_LP.C,$(ID16_DIR)ID_MT.C,\ + $(ID16_DIR)ID_PAS.C,$(ID16_DIR)ID_PT.C,$(ID16_DIR)ID_TT.C,\ + $(ID16_DIR)ID_UVC.C,$(ID16_DIR)ID16_DBOOT.C,$(ID16_DIR)ID_TTP.C +ID16_OPTIONS = /INCL=($(SIMH_DIR),$(ID16_DIR))/DEF=($(CC_DEFS)) + +# +# Interdata 32-bit CPU. +# +ID32_DIR = SYS$DISK:[.INTERDATA] +ID32_LIB = $(LIB_DIR)ID32-$(ARCH).OLB +ID32_SOURCE = $(ID32_DIR)ID32_CPU.C,$(ID32_DIR)ID32_SYS.C,$(ID32_DIR)ID_DP.C,\ + $(ID32_DIR)ID_FD.C,$(ID32_DIR)ID_FP.C,$(ID32_DIR)ID_IDC.C,\ + $(ID32_DIR)ID_IO.C,$(ID32_DIR)ID_LP.C,$(ID32_DIR)ID_MT.C,\ + $(ID32_DIR)ID_PAS.C,$(ID32_DIR)ID_PT.C,$(ID32_DIR)ID_TT.C,\ + $(ID32_DIR)ID_UVC.C,$(ID32_DIR)ID32_DBOOT.C,$(ID32_DIR)ID_TTP.C +ID32_OPTIONS = /INCL=($(SIMH_DIR),$(ID32_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1130 Simulator Definitions. +# +IBM1130_DIR = SYS$DISK:[.IBM1130] +IBM1130_LIB = $(LIB_DIR)IBM1130-$(ARCH).OLB +IBM1130_SOURCE = $(IBM1130_DIR)IBM1130_CPU.C,$(IBM1130_DIR)IBM1130_CR.C,\ + $(IBM1130_DIR)IBM1130_DISK.C,$(IBM1130_DIR)IBM1130_STDDEV.C,\ + $(IBM1130_DIR)IBM1130_SYS.C,$(IBM1130_DIR)IBM1130_GDU.C,\ + $(IBM1130_DIR)IBM1130_GUI.C,$(IBM1130_DIR)IBM1130_PRT.C,\ + $(IBM1130_DIR)IBM1130_FMT.C,$(IBM1130_DIR)IBM1130_PTRP.C,\ + $(IBM1130_DIR)IBM1130_PLOT.C,$(IBM1130_DIR)IBM1130_SCA.C,\ + $(IBM1130_DIR)IBM1130_T2741.C +IBM1130_OPTIONS = /INCL=($(SIMH_DIR),$(IBM1130_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1401 Simulator Definitions. +# +I1401_DIR = SYS$DISK:[.I1401] +I1401_LIB = $(LIB_DIR)I1401-$(ARCH).OLB +I1401_SOURCE = $(I1401_DIR)I1401_LP.C,$(I1401_DIR)I1401_CPU.C,\ + $(I1401_DIR)I1401_IQ.C,$(I1401_DIR)I1401_CD.C,\ + $(I1401_DIR)I1401_MT.C,$(I1401_DIR)I1401_DP.C,\ + $(I1401_DIR)I1401_SYS.C +I1401_OPTIONS = /INCL=($(SIMH_DIR),$(I1401_DIR))/DEF=($(CC_DEFS)) + + +# +# IBM 1620 Simulators Definitions. +# +I1620_DIR = SYS$DISK:[.I1620] +I1620_LIB = $(LIB_DIR)I1620-$(ARCH).OLB +I1620_SOURCE = $(I1620_DIR)I1620_CD.C,$(I1620_DIR)I1620_DP.C,\ + $(I1620_DIR)I1620_PT.C,$(I1620_DIR)I1620_TTY.C,\ + $(I1620_DIR)I1620_CPU.C,$(I1620_DIR)I1620_LP.C,\ + $(I1620_DIR)I1620_FP.C,$(I1620_DIR)I1620_SYS.C +I1620_OPTIONS = /INCL=($(SIMH_DIR),$(I1620_DIR))/DEF=($(CC_DEFS)) + +# +# PDP-1 Simulator Definitions. +# +PDP1_DIR = SYS$DISK:[.PDP1] +PDP1_LIB = $(LIB_DIR)PDP1-$(ARCH).OLB +PDP1_SOURCE = $(PDP1_DIR)PDP1_LP.C,$(PDP1_DIR)PDP1_CPU.C,\ + $(PDP1_DIR)PDP1_STDDEV.C,$(PDP1_DIR)PDP1_SYS.C,\ + $(PDP1_DIR)PDP1_DT.C,$(PDP1_DIR)PDP1_DRM.C,\ + $(PDP1_DIR)PDP1_CLK.C,$(PDP1_DIR)PDP1_DCS.C +PDP1_OPTIONS = /INCL=($(SIMH_DIR),$(PDP1_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-8 Simulator Definitions. +# +PDP8_DIR = SYS$DISK:[.PDP8] +PDP8_LIB = $(LIB_DIR)PDP8-$(ARCH).OLB +PDP8_SOURCE = $(PDP8_DIR)PDP8_CPU.C,$(PDP8_DIR)PDP8_CLK.C,\ + $(PDP8_DIR)PDP8_DF.C,$(PDP8_DIR)PDP8_DT.C,\ + $(PDP8_DIR)PDP8_LP.C,$(PDP8_DIR)PDP8_MT.C,\ + $(PDP8_DIR)PDP8_PT.C,$(PDP8_DIR)PDP8_RF.C,\ + $(PDP8_DIR)PDP8_RK.C,$(PDP8_DIR)PDP8_RX.C,\ + $(PDP8_DIR)PDP8_SYS.C,$(PDP8_DIR)PDP8_TT.C,\ + $(PDP8_DIR)PDP8_TTX.C,$(PDP8_DIR)PDP8_RL.C,\ + $(PDP8_DIR)PDP8_TSC.C,$(PDP8_DIR)PDP8_TD.C,\ + $(PDP8_DIR)PDP8_CT.C +PDP8_OPTIONS = /INCL=($(SIMH_DIR),$(PDP8_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-4, PDP-7, PDP-9 And PDP-15 Simulator Definitions. +# +PDP18B_DIR = SYS$DISK:[.PDP18B] +PDP4_LIB = $(LIB_DIR)PDP4-$(ARCH).OLB +PDP7_LIB = $(LIB_DIR)PDP7-$(ARCH).OLB +PDP9_LIB = $(LIB_DIR)PDP9-$(ARCH).OLB +PDP15_LIB = $(LIB_DIR)PDP15-$(ARCH).OLB +PDP18B_SOURCE = $(PDP18B_DIR)PDP18B_DT.C,$(PDP18B_DIR)PDP18B_DRM.C,\ + $(PDP18B_DIR)PDP18B_CPU.C,$(PDP18B_DIR)PDP18B_LP.C,\ + $(PDP18B_DIR)PDP18B_MT.C,$(PDP18B_DIR)PDP18B_RF.C,\ + $(PDP18B_DIR)PDP18B_RP.C,$(PDP18B_DIR)PDP18B_STDDEV.C,\ + $(PDP18B_DIR)PDP18B_SYS.C,$(PDP18B_DIR)PDP18B_TT1.C,\ + $(PDP18B_DIR)PDP18B_RB.C,$(PDP18B_DIR)PDP18B_FPP.C +PDP4_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP4=1") +PDP7_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP7=1") +PDP9_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP9=1") +PDP15_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP15=1") + +# +# Digital Equipment PDP-11 Simulator Definitions. +# +PDP11_DIR = SYS$DISK:[.PDP11] +PDP11_LIB1 = $(LIB_DIR)PDP11L1-$(ARCH).OLB +PDP11_SOURCE1 = $(PDP11_DIR)PDP11_FP.C,$(PDP11_DIR)PDP11_CPU.C,\ + $(PDP11_DIR)PDP11_DZ.C,$(PDP11_DIR)PDP11_CIS.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_RK.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_RX.C,$(PDP11_DIR)PDP11_STDDEV.C,\ + $(PDP11_DIR)PDP11_SYS.C,$(PDP11_DIR)PDP11_TC.C, \ + $(PDP11_DIR)PDP11_CPUMOD.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_TA.C,$(PDP11_DIR)PDP11_IO_LIB.C +PDP11_LIB2 = $(LIB_DIR)PDP11L2-$(ARCH).OLB +PDP11_SOURCE2 = $(PDP11_DIR)PDP11_TM.C,$(PDP11_DIR)PDP11_TS.C,\ + $(PDP11_DIR)PDP11_IO.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TQ.C,$(PDP11_DIR)PDP11_PCLK.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_PT.C,\ + $(PDP11_DIR)PDP11_HK.C,$(PDP11_DIR)PDP11_XQ.C,\ + $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_RH.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_TU.C,\ + $(PDP11_DIR)PDP11_DL.C,$(PDP11_DIR)PDP11_RF.C, \ + $(PDP11_DIR)PDP11_RC.C,$(PDP11_DIR)PDP11_KG.C,\ + $(PDP11_DIR)PDP11_KE.C,$(PDP11_DIR)PDP11_DC.C +PDP11_OPTIONS = /INCL=($(SIMH_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_PDP11=1"$(PCAP_DEFS)) + +# +# Digital Equipment PDP-10 Simulator Definitions. +# +PDP10_DIR = SYS$DISK:[.PDP10] +PDP10_LIB = $(LIB_DIR)PDP10-$(ARCH).OLB +PDP10_SOURCE = $(PDP10_DIR)PDP10_FE.C,\ + $(PDP10_DIR)PDP10_CPU.C,$(PDP10_DIR)PDP10_KSIO.C,\ + $(PDP10_DIR)PDP10_LP20.C,$(PDP10_DIR)PDP10_MDFP.C,\ + $(PDP10_DIR)PDP10_PAG.C,$(PDP10_DIR)PDP10_XTND.C,\ + $(PDP10_DIR)PDP10_RP.C,$(PDP10_DIR)PDP10_SYS.C,\ + $(PDP10_DIR)PDP10_TIM.C,$(PDP10_DIR)PDP10_TU.C,\ + $(PDP11_DIR)PDP11_PT.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_XU.C,\ + $(PDP11_DIR)PDP11_CR.C +PDP10_OPTIONS = /INCL=($(SIMH_DIR),$(PDP10_DIR),$(PDP11_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","VM_PDP10=1"$(PCAP_DEFS)) + +# +# IBM System 3 Simulator Definitions. +# +S3_DIR = SYS$DISK:[.S3] +S3_LIB = $(LIB_DIR)S3-$(ARCH).OLB +S3_SOURCE = $(S3_DIR)S3_CD.C,$(S3_DIR)S3_CPU.C,$(S3_DIR)S3_DISK.C,\ + $(S3_DIR)S3_LP.C,$(S3_DIR)S3_PKB.C,$(S3_DIR)S3_SYS.C +S3_OPTIONS = /INCL=($(SIMH_DIR),$(S3_DIR))/DEF=($(CC_DEFS)) + +# +# SDS 940 +# +SDS_DIR = SYS$DISK:[.SDS] +SDS_LIB = $(LIB_DIR)SDS-$(ARCH).OLB +SDS_SOURCE = $(SDS_DIR)SDS_CPU.C,$(SDS_DIR)SDS_DRM.C,$(SDS_DIR)SDS_DSK.C,\ + $(SDS_DIR)SDS_IO.C,$(SDS_DIR)SDS_LP.C,$(SDS_DIR)SDS_MT.C,\ + $(SDS_DIR)SDS_MUX.C,$(SDS_DIR)SDS_RAD.C,$(SDS_DIR)SDS_STDDEV.C,\ + $(SDS_DIR)SDS_SYS.C +SDS_OPTIONS = /INCL=($(SIMH_DIR),$(SDS_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment VAX Simulator Definitions. +# +VAX_DIR = SYS$DISK:[.VAX] +VAX_LIB = $(LIB_DIR)VAX-$(ARCH).OLB +VAX_SOURCE = $(VAX_DIR)VAX_CIS.C,$(VAX_DIR)VAX_CMODE.C,\ + $(VAX_DIR)VAX_CPU.C,$(VAX_DIR)VAX_CPU1.C,\ + $(VAX_DIR)VAX_FPA.C,$(VAX_DIR)VAX_MMU.C,\ + $(VAX_DIR)VAX_OCTA.C,$(VAX_DIR)VAX_SYS.C,\ + $(VAX_DIR)VAX_SYSCM.C,$(VAX_DIR)VAX_SYSDEV.C,\ + $(VAX_DIR)VAX_SYSLIST.C,$(VAX_DIR)VAX_IO.C,\ + $(VAX_DIR)VAX_STDDEV.C,$(PDP11_DIR)PDP11_IO_LIB.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XQ.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C +VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS)) + +# Digital Equipment VAX780 Simulator Definitions. +# +VAX780_DIR = SYS$DISK:[.VAX] +VAX780_LIB1 = $(LIB_DIR)VAX780L1-$(ARCH).OLB +VAX780_SOURCE1 = $(VAX780_DIR)VAX_CPU.C,$(VAX780_DIR)VAX_CPU1.C,\ + $(VAX780_DIR)VAX_FPA.C,$(VAX780_DIR)VAX_CIS.C,\ + $(VAX780_DIR)VAX_OCTA.C,$(VAX780_DIR)VAX_CMODE.C,\ + $(VAX780_DIR)VAX_MMU.C,$(VAX780_DIR)VAX_SYS.C,\ + $(VAX780_DIR)VAX_SYSCM.C,$(VAX780_DIR)VAX780_STDDEV.C,\ + $(VAX780_DIR)VAX780_SBI.C,$(VAX780_DIR)VAX780_MEM.C,\ + $(VAX780_DIR)VAX780_UBA.C,$(VAX780_DIR)VAX780_MBA.C,\ + $(VAX780_DIR)VAX780_FLOAD.C,$(VAX780_DIR)VAX780_SYSLIST.C +VAX780_LIB2 = $(LIB_DIR)VAX780L2-$(ARCH).OLB +VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\ + $(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\ + $(PDP11_DIR)PDP11_IO_LIB.C +VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_780=1") + +# IBM 7094 Simulator Definitions. +# +I7094_DIR = SYS$DISK:[.I7094] +I7094_LIB = $(LIB_DIR)I7094-$(ARCH).OLB +I7094_SOURCE = $(I7094_DIR)I7094_CPU.C,$(I7094_DIR)I7094_CPU1.C,\ + $(I7094_DIR)I7094_IO.C,$(I7094_DIR)I7094_CD.C,\ + $(I7094_DIR)I7094_CLK.C,$(I7094_DIR)I7094_COM.C,\ + $(I7094_DIR)I7094_DRM.C,$(I7094_DIR)I7094_DSK.C,\ + $(I7094_DIR)I7094_SYS.C,$(I7094_DIR)I7094_LP.C,\ + $(I7094_DIR)I7094_MT.C,$(I7094_DIR)I7094_BINLOADER.C +I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS)) + +# If we're not a VAX, Build Everything +# +.IF ALPHA_OR_IA64 +ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ + ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 VAX VAX780 SDS \ + I7094 + @CONTINUE +.ELSE +# +# Else We Are On VAX And Build Everything EXCEPT the 64b simulators +# +ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ + NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 VAX VAX780 SDS + @CONTINUE +.ENDIF + +CLEAN : + $! + $! Clean out all targets and building Remnants + $! + $ IF (F$SEARCH("$(BIN_DIR)*.EXE;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(BIN_DIR)*.EXE;* + $ IF (F$SEARCH("$(LIB_DIR)*.OLB;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(LIB_DIR)*.OLB;* + $ IF (F$SEARCH("SYS$DISK:[...]*.OBJ;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.OBJ;* + $ IF (F$SEARCH("SYS$DISK:[...]*.LIS;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.LIS;* + $ IF (F$SEARCH("SYS$DISK:[...]*.MAP;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.MAP;* + +# +# Build The Libraries. +# +$(SIMH_LIB) : $(SIMH_SOURCE) + $! + $! Building The $(SIMH_LIB) Library. + $! + $ $(CC)/DEF=($(CC_DEFS)$(PCAP_DEFS))$(PCAP_SIMH_INC) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIR_LIB) : $(ALTAIR_SOURCE) + $! + $! Building The $(ALTAIR_LIB) Library. + $! + $ $(CC)$(ALTAIR_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIRZ80_LIB) : $(ALTAIRZ80_SOURCE) + $! + $! Building The $(ALTAIRZ80_LIB) Library. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The Eclipse Library. +# +.IF ALPHA_OR_IA64 +$(ECLIPSE_LIB) : $(ECLIPSE_SOURCE) + $! + $! Building The $(ECLIPSE_LIB) Library. + $! + $ $(CC)$(ECLIPSE_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(ECLIPSE_LIB) : + $! + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)ECLIPSE-$(ARCH).OLB Library On VAX. + $! +.ENDIF + +$(GRI_LIB) : $(GRI_SOURCE) + $! + $! Building The $(GRI_LIB) Library. + $! + $ $(CC)$(GRI_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(LGP_LIB) : $(LGP_SOURCE) + $! + $! Building The $(LGP_LIB) Library. + $! + $ $(CC)$(LGP_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(H316_LIB) : $(H316_SOURCE) + $! + $! Building The $(H316_LIB) Library. + $! + $ $(CC)$(H316_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(HP2100_LIB) : $(HP2100_SOURCE) + $! + $! Building The $(HP2100_LIB) Library. + $! + $ $(CC)$(HP2100_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1401_LIB) : $(I1401_SOURCE) + $! + $! Building The $(I1401_LIB) Library. + $! + $ $(CC)$(I1401_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1620_LIB) : $(I1620_SOURCE) + $! + $! Building The $(I1620_LIB) Library. + $! + $ $(CC)$(I1620_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(IBM1130_LIB) : $(IBM1130_SOURCE) + $! + $! Building The $(IBM1130_LIB) Library. + $! + $ $(CC)$(IBM1130_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID16_LIB) : $(ID16_SOURCE) + $! + $! Building The $(ID16_LIB) Library. + $! + $ $(CC)$(ID16_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID32_LIB) : $(ID32_SOURCE) + $! + $! Building The $(ID32_LIB) Library. + $! + $ $(CC)$(ID32_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(NOVA_LIB) : $(NOVA_SOURCE) + $! + $! Building The $(NOVA_LIB) Library. + $! + $ $(CC)$(NOVA_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP1_LIB) : $(PDP1_SOURCE) + $! + $! Building The $(PDP1_LIB) Library. + $! + $ $(CC)$(PDP1_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP4_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP4_LIB) Library. + $! + $ $(CC)$(PDP4_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP7_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP7_LIB) Library. + $! + $ $(CC)$(PDP7_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP8_LIB) : $(PDP8_SOURCE) + $! + $! Building The $(PDP8_LIB) Library. + $! + $ $(CC)$(PDP8_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP9_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP9_LIB) Library. + $! + $ $(CC)$(PDP9_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Library. +# +.IF ALPHA_OR_IA64 +$(PDP10_LIB) : $(PDP10_SOURCE) + $! + $! Building The $(PDP10_LIB) Library. + $! + $ $(CC)$(PDP10_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(PDP10_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)PDP10-$(ARCH).OLB Library On VAX. +.ENDIF + +$(PDP11_LIB1) : $(PDP11_SOURCE1) + $! + $! Building The $(PDP11_LIB1) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP11_LIB2) : $(PDP11_SOURCE2) + $! + $! Building The $(PDP11_LIB2) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP15_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP15_LIB) Library. + $! + $ $(CC)$(PDP15_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(S3_LIB) : $(S3_SOURCE) + $! + $! Building The $(S3_LIB) Library. + $! + $ $(CC)$(S3_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(SDS_LIB) : $(SDS_SOURCE) + $! + $! Building The $(SDS_LIB) Library. + $! + $ $(CC)$(SDS_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX_LIB) : $(VAX_SOURCE) + $! + $! Building The $(VAX_LIB) Library. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(VAX_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB1) : $(VAX780_SOURCE1) + $! + $! Building The $(VAX780_LIB1) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB2) : $(VAX780_SOURCE2) + $! + $! Building The $(VAX780_LIB2) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PCAP_LIB) : $(PCAP_SOURCE) + $! + $! Building The $(PCAP_LIB) Library. + $! + $ SET DEFAULT $(PCAP_DIR) + $ @VMS_PCAP $(DEBUG) + $ SET DEFAULT [--] + $ IF (F$SEARCH("$(PCAP_LIB)").NES."") THEN - + DELETE $(PCAP_LIB); + $ COPY $(PCAP_DIR)PCAP.OLB $(PCAP_LIB) + $ DELETE/NOLOG/NOCONFIRM $(PCAP_DIR)*.OBJ;*,$(PCAP_DIR)*.OLB;* + +# +# If Not On VAX, Build The IBM 7094 Library. +# +.IF ALPHA_OR_IA64 +$(I7094_LIB) : $(I7094_SOURCE) + $! + $! Building The $(I7094_LIB) Library. + $! + $ $(CC)$(I7094_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(I7094_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)I7094-$(ARCH).OLB Library On VAX. +.ENDIF + +# +# Individual Simulator Builds. +# +ALTAIR : $(SIMH_LIB) $(ALTAIR_LIB) + $! + $! Building The $(BIN_DIR)ALTAIR-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIR_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIR-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIR_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ALTAIRZ80 : $(SIMH_LIB) $(ALTAIRZ80_LIB) + $! + $! Building The $(BIN_DIR)ALTAIRZ80-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIRZ80-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIRZ80_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +ECLIPSE : $(SIMH_LIB) $(ECLIPSE_LIB) + $! + $! Building The $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ECLIPSE_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ECLIPSE-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ECLIPSE_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +ECLIPSE : + $! Sorry, Can't Build $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +GRI : $(SIMH_LIB) $(GRI_LIB) + $! + $! Building The $(BIN_DIR)GRI-$(ARCH).EXE Simulator. + $! + $ $(CC)$(GRI_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)GRI-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(GRI_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +LGP : $(SIMH_LIB) $(LGP_LIB) + $! + $! Building The $(BIN_DIR)LGP-$(ARCH).EXE Simulator. + $! + $ $(CC)$(LGP_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)LGP-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(LGP_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +H316 : $(SIMH_LIB) $(H316_LIB) + $! + $! Building The $(BIN_DIR)H316-$(ARCH).EXE Simulator. + $! + $ $(CC)$(H316_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)H316-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(H316_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +HP2100 : $(SIMH_LIB) $(HP2100_LIB) + $! + $! Building The $(BIN_DIR)HP2100-$(ARCH).EXE Simulator. + $! + $ $(CC)$(HP2100_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)HP2100-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(HP2100_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1401 : $(SIMH_LIB) $(I1401_LIB) + $! + $! Building The $(BIN_DIR)I1401-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1401_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1401-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1401_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1620 : $(SIMH_LIB) $(I1620_LIB) + $! + $! Building The $(BIN_DIR)I1620-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1620_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1620-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1620_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +IBM1130 : $(SIMH_LIB) $(IBM1130_LIB) + $! + $! Building The $(BIN_DIR)IBM1130-$(ARCH).EXE Simulator. + $! + $ $(CC)$(IBM1130_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)IBM1130-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(IBM1130_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID16 : $(SIMH_LIB) $(ID16_LIB) + $! + $! Building The $(BIN_DIR)ID16-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID16_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID16-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID16_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID32 : $(SIMH_LIB) $(ID32_LIB) + $! + $! Building The $(BIN_DIR)ID32-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID32_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID32-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID32_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +NOVA : $(SIMH_LIB) $(NOVA_LIB) + $! + $! Building The $(BIN_DIR)NOVA-$(ARCH).EXE Simulator. + $! + $ $(CC)$(NOVA_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)NOVA-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(NOVA_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP1 : $(SIMH_LIB) $(PDP1_LIB) + $! + $! Building The $(BIN_DIR)PDP1-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP1_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP1-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP1_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP4 : $(SIMH_LIB) $(PDP4_LIB) + $! + $! Building The $(BIN_DIR)PDP4-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP4_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP4-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP4_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP7 : $(SIMH_LIB) $(PDP7_LIB) + $! + $! Building The $(BIN_DIR)PDP7-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP7_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP7-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP7_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP8 : $(SIMH_LIB) $(PDP8_LIB) + $! + $! Building The $(BIN_DIR)PDP8-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP8_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP8-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP8_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP9 : $(SIMH_LIB) $(PDP9_LIB) + $! + $! Building The $(BIN_DIR)PDP9-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP9_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP9-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP9_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +PDP10 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP10_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP10-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP10_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP10-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP10_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +PDP10 : + $! Sorry, Can't Build $(BIN_DIR)PDP10-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +PDP11 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP11-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP11_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP11-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP11_LIB1)/LIBRARY,$(PDP11_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP15 : $(SIMH_LIB) $(PDP15_LIB) + $! + $! Building The $(BIN_DIR)PDP15-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP15_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP15-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP15_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +S3 : $(SIMH_LIB) $(S3_LIB) + $! + $! Building The $(BIN_DIR)S3-$(ARCH).EXE Simulator. + $! + $ $(CC)$(S3_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)S3-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(S3_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +SDS : $(SIMH_LIB) $(SDS_LIB) + $! + $! Building The $(BIN_DIR)SDS-$(ARCH).EXE Simulator. + $! + $ $(CC)$(SDS_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)SDS-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX : $(SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(VAX_LIB)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX780 : $(SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX780-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX780-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,- + $(VAX780_LIB1)/LIBRARY,$(VAX780_LIB2)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The IBM 7094 Simulator. +# +.IF ALPHA_OR_IA64 +I7094 : $(SIMH_LIB) $(I7094_LIB) + $! + $! Building The $(BIN_DIR)I7094-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I7094_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I7094-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I7094_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +I7094 : + $! Sorry, Can't Build $(BIN_DIR)I7094-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +# +# PCAP VCI Components +# +$(PCAP_VCI) : $(PCAP_VCMDIR)PCAPVCM.EXE + $! + $! Installing the PCAP VCI Execlet in SYS$LOADABLE_IMAGES + $! + $ COPY $(PCAP_VCMDIR)PCAPVCM.EXE SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +$(PCAP_VCMDIR)PCAPVCM.EXE : $(PCAP_VCM_SOURCES) + $! + $! Building The PCAP VCI Execlet + $! + $ @SYS$DISK:[.PCAP-VMS.PCAPVCM]BUILD_PCAPVCM + $ DELETE/NOLOG/NOCONFIRM $(PCAP_VCMDIR)*.OBJ;*,$(PCAP_VCMDIR)*.MAP;* diff --git a/samples/Module Management System/openvms.mmk b/samples/Module Management System/openvms.mmk new file mode 100644 index 00000000..4a48d3c1 --- /dev/null +++ b/samples/Module Management System/openvms.mmk @@ -0,0 +1,563 @@ +# Copyright (C) 1997, 2000 Aladdin Enterprises. All rights reserved. +# +# This software is provided AS-IS with no warranty, either express or +# implied. +# +# This software is distributed under license and may not be copied, +# modified or distributed except as expressly authorized under the terms +# of the license contained in the file LICENSE in this distribution. +# +# For more information about licensing, please refer to +# http://www.ghostscript.com/licensing/. For information on +# commercial licensing, go to http://www.artifex.com/licensing/ or +# contact Artifex Software, Inc., 101 Lucas Valley Road #110, +# San Rafael, CA 94903, U.S.A., +1(415)492-9861. + +# $Id: openvms.mmk,v 1.31 2004/12/10 23:48:48 giles Exp $ +# makefile for OpenVMS VAX and Alpha using MMK +# +# Please contact Jim Dunham (dunham@omtool.com) if you have questions. +# Addapted for MMK by Jouk Jansen (joukj@hrem.stm.tudelft.nl) +# Support for VAX C on OpenVMS was removed in release 6.01 by Aladdin: +# DEC C is now used on both VAX and Alpha platforms. +# +# ------------------------------- Options ------------------------------- # + +###### This section is the only part of the file you should need to edit. + +# on the make command line specify: +# mmk/descrip=[.src]openvms.mmk/macro=("DECWINDOWS1_2={0,1}") + +# Define the directory for the final executable, and the +# source, generated intermediate file, and object directories +# for the graphics library (GL) and the PostScript/PDF interpreter (PS). + +BINDIR=[.bin] +GLSRCDIR=[.src] +GLGENDIR=[.obj] +GLOBJDIR=[.obj] +PSSRCDIR=[.src] +PSGENDIR=[.obj] +PSOBJDIR=[.obj] +PSLIBDIR=[.lib] +# Because of OpenVMS syntactic problems, the following redundant definitions +# are necessary. If you are using more than one GENDIR and/or OBJDIR, +# you will have to edit the code below that creates these directories. +BIN_DIR=BIN.DIR +OBJ_DIR=OBJ.DIR + +# create directories +.first + if f$search("$(BIN_DIR)") .eqs. "" then create/directory/log $(BINDIR) + if f$search("$(OBJ_DIR)") .eqs. "" then create/directory/log $(GLOBJDIR) + +# Do not edit the next group of lines. + +#.include $(COMMONDIR)vmscdefs.mak +#.include $(COMMONDIR)vmsdefs.mak +#.include $(COMMONDIR)generic.mak +.include $(GLSRCDIR)version.mak +DD=$(GLGENDIR) +GLD=$(GLGENDIR) +PSD=$(PSGENDIR) + +# ------ Generic options ------ # + +# Define the directory that will hold documentation at runtime. + +GS_DOCDIR=GS_DOC +#GS_DOCDIR=SYS$COMMON:[GS] + +# Define the default directory/ies for the runtime +# initialization and font files. Separate multiple directories with ,. + +GS_LIB_DEFAULT=GS_LIB +#GS_LIB_DEFAULT=SYS$COMMON:[GS],SYS$COMMON:[GS.FONT] + +# Define whether or not searching for initialization files should always +# look in the current directory first. This leads to well-known security +# and confusion problems, but users insist on it. +# NOTE: this also affects searching for files named on the command line: +# see the "File searching" section of Use.htm for full details. +# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended. + +SEARCH_HERE_FIRST=1 + +# Define the name of the interpreter initialization file. +# (There is no reason to change this.) + +GS_INIT=GS_INIT.PS + +# Choose generic configuration options. + +# Setting DEBUG=1 includes debugging features in the code + +DEBUG=0 + +# Setting TDEBUG=1 includes symbol table information for the debugger, +# and also enables stack tracing on failure. + +TDEBUG= + +# Setting CDEBUG=1 enables 'C' compiler debugging and turns off optimization +# Code is substantially slower and larger. + +CDEBUG= + +# Define the name of the executable file. + +GS=GS + +# Define the name of a pre-built executable that can be invoked at build +# time. Currently, this is only needed for compiled fonts. The usual +# alternatives are: +# - the standard name of Ghostscript on your system (typically `gs'): +BUILD_TIME_GS=GS +# - the name of the executable you are building now. If you choose this +# option, then you must build the executable first without compiled fonts, +# and then again with compiled fonts. +#BUILD_TIME_GS=$(BINDIR)$(GS) -I$(PSLIBDIR) + +# Define the directory where the IJG JPEG library sources are stored, +# and the major version of the library that is stored there. +# You may need to change this if the IJG library version changes. +# See jpeg.mak for more information. + +.ifdef SYSLIB +JSRCDIR=sys$library: +.else +JSRCDIR=[--.jpeg-6b] +.endif +JVERSION=6 + +# Define the directory where the PNG library sources are stored, +# and the version of the library that is stored there. +# You may need to change this if the libpng version changes. +# See libpng.mak for more information. + +.ifdef SYSLIB +PSRCDIR=sys$library: +.else +PSRCDIR=[--.libpng-1_2_8] +.endif +PVERSION=10208 + +# Define the directory where the zlib sources are stored. +# See zlib.mak for more information. + +.ifdef SYSLIB +ZSRCDIR=sys$library: +.else +ZSRCDIR=[--.zlib-1_2_1] +.endif + +# Define the directory where the jbig2dec library sources are stored. +# See jbig2.mak for more information +.ifdef SYSLIB +JBIG2SRCDIR=sys$library: +.else +JBIG2SRCDIR=[--.jbig2dec-0_7] +.endif + +# Define the directory where the icclib source are stored. +# See icclib.mak for more information + +ICCSRCDIR=[.icclib] + +# IJS has not been ported to OpenVMS. If you do the port, +# you'll need to set these values. You'll also need to +# include the ijs.mak makefile (right after icclib.mak). +# +# Define the directory where the ijs source is stored, +# and the process forking method to use for the server. +# See ijs.mak for more information. + +#IJSSRCDIR=[.ijs] +#IJSEXECTYPE=unix + +# Note that built-in third-party libraries aren't available. + +SHARE_JPEG=0 +SHARE_LIBPNG=0 +SHARE_ZLIB=0 +SHARE_JBIG2=0 + +# Define the path to X11 include files + +X_INCLUDE=DECW$INCLUDE + +# ------ Platform-specific options ------ # + +# Define the drive, directory, and compiler name for the 'C' compiler. +# COMP is the full compiler path name. + +.ifdef DEBUG +SW_DEBUG=/DEBUG/NOOPTIMIZE +.else +# This should include /OPTIMIZE, but some OpenVMS compilers have an +# optimizer bug that causes them to generate incorrect code for gdevpsfx.c, +# so we must disable optimization. (Eventually we will check for the bug +# in genarch and enable optimization if it is safe.) +#SW_DEBUG=/NODEBUG/OPTIMIZE +SW_DEBUG=/NODEBUG/NOOPTIMIZE +.endif + +SW_PLATFORM=/DECC/PREFIX=ALL/NESTED_INCLUDE=PRIMARY/name=(as_is,short)/nowarn + +# Define any other compilation flags. +# Including defines for A4 paper size + +.ifdef A4_PAPER +SW_PAPER=/DEFINE=("A4","HAVE_MKSTEMP") +.else +SW_PAPER=/DEFINE=("HAVE_MKSTEMP") +.endif + +.ifdef IEEE +SW_IEEE=/float=ieee +.else +SW_IEEE= +.endif + +COMP=CC$(SW_DEBUG)$(SW_PLATFORM)$(SW_PAPER)$(SW_IEEE) + +# LINK is the full linker path name + +.ifdef TDEBUG +LINKER=LINK/DEBUG/TRACEBACK +.else +LINKER=LINK/NODEBUG/NOTRACEBACK +.endif + +# INCDIR contains the include files +INCDIR= + +# LIBDIR contains the library files +LIBDIR= + +# Define the .dev module that implements thread and synchronization +# primitives for this platform. Don't change this unless you really know +# what you're doing. + +SYNC=posync + +# ------ Devices and features ------ # + +# Choose the device(s) to include. See devs.mak for details, +# devs.mak and contrib.mak for the list of available devices. + +DEVICE_DEVS=$(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev +DEVICE_DEVS1= +DEVICE_DEVS2= +DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev $(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev +DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev $(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev +DEVICE_DEVS5=$(DD)uniprint.dev +DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev +DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev +DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev +DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev +DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev +DEVICE_DEVS11=$(DD)tiff12nc.dev $(DD)tiff24nc.dev +DEVICE_DEVS12=$(DD)psmono.dev $(DD)psgray.dev $(DD)psrgb.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev +DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev +DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev +DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev +DEVICE_DEVS16=$(DD)bbox.dev +# Overflow from DEVS9 +DEVICE_DEVS17=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)pkm.dev $(DD)pkmraw.dev $(DD)pksm.dev $(DD)pksmraw.dev +DEVICE_DEVS18= +DEVICE_DEVS19= +DEVICE_DEVS20= +DEVICE_DEVS21= +DEVICE_DEVS21= + +# Choose the language feature(s) to include. See gs.mak for details. + +FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)fapi.dev $(PSD)jbig2.dev + +# Choose whether to compile the .ps initialization files into the executable. +# See gs.mak for details. + +COMPILE_INITS=0 + +# Choose whether to store band lists on files or in memory. +# The choices are 'file' or 'memory'. + +BAND_LIST_STORAGE=file + +# Choose which compression method to use when storing band lists in memory. +# The choices are 'lzw' or 'zlib'. + +BAND_LIST_COMPRESSOR=zlib + +# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'. +# See gs.mak and sfxfd.c for more details. + +FILE_IMPLEMENTATION=stdio + +# Choose the implementation of stdio: '' for file I/O and 'c' for callouts +# See gs.mak and ziodevs.c/ziodevsc.c for more details. + +STDIO_IMPLEMENTATION=c + +# Define the name table capacity size of 2^(16+n). + +EXTEND_NAMES=0 + +# Define whether the system constants are writable. + +SYSTEM_CONSTANTS_ARE_WRITABLE=0 + +# Define the platform name. + +PLATFORM=openvms_ + +# Define the name of the makefile -- used in dependencies. + +MAKEFILE=$(GLSRCDIR)openvms.mmk +TOP_MAKEFILES=$(MAKEFILE) + +# Define the platform options + +PLATOPT= + +# Patch a couple of PC-specific things that aren't relevant to OpenVMS builds, +# but that cause `make' to produce warnings. + +PCFBASM= + +# It is very unlikely that anyone would want to edit the remaining +# symbols, but we describe them here for completeness: + +# Define the suffix for command files (e.g., null or .bat). + +CMD= + +# Define the directory separator character (\ for MS-DOS, / for Unix, +# nothing for OpenVMS). + +D= + +# Define the brackets for passing preprocessor definitions to the C compiler. +NULL= + +D_=/DEFINE=" +_D_=$(NULL)= +_D=" + +# Define the syntax of search paths for the C compiler. +# The OpenVMS compilers uses /INCLUDE=(dir1, dir2, ...dirn), +# and only a single /INCLUDE switch is allowed in the command line. + +I_=/INCLUDE=( +II=, +_I=) + +# Define the string for specifying the output file from the C compiler. + +O_=/OBJECT= + +# Define the quoting string for mixed-case arguments. +# (OpenVMS is the only platform where this isn't an empty string.) + +Q=" + +# Define the extension for executable files (e.g., null or .exe). + +XE=.exe + +# Define the extension for executable files for the auxiliary programs +# (e.g., null or .exe). + +XEAUX=.exe + +# Define the list of files that `make clean' removes. + +BEGINFILES=$(GLSRCDIR)OPENVMS.OPT $(GLSRCDIR)OPENVMS.COM + +# Define the C invocation for auxiliary programs (echogs, genarch). +# We don't need to define this separately. + +CCAUX= + +# Define the C invocation for normal compilation. + +CC=$(COMP) + +# Define the Link invocation. + +LINK=$(LINKER)/EXE=$@ $+,$(GLSRCDIR)OPENVMS.OPT/OPTION + +# Define the auxiliary program dependency. We don't need this. + +AK= + +# Define the syntax for command, object, and executable files. + +OBJ=obj + +# Define the prefix for image invocations. + +EXP=MCR $(NULL) + +# Define the prefix for shell invocations. + +SH= + +# Define generic commands. + +CP_=@$(GLSRCDIR)COPY_ONE + +# Define the command for deleting (a) file(s) (including wild cards) + +RM_=@$(GLSRCDIR)RM_ONE + +# Define the command for deleting multiple files / patterns. + +RMN_=@$(GLSRCDIR)RM_ALL + +# Define the arguments for genconf. + +CONFILES=-p %s +CONFLDTR=-o + +# Define the generic compilation rules. + +.suffixes : .c .obj .exe + +.obj.exe : + $(LINK) + +# ---------------------------- End of options ---------------------------- # + +# Define various incantations of the 'c' compiler. + +CC_=$(COMP) +CC_INT=$(CC_) +CC_NO_WARN=$(CC_) + +# ------------------- Include the generic makefiles ---------------------- # + +all : macro [.lib]Fontmap. $(GS_XE) + +#.include $(COMMONDIR)/ansidefs.mak +#.include $(COMMONDIR)/vmsdefs.mak +#.include $(COMMONDIR)/generic.mak +.include $(GLSRCDIR)gs.mak +.include $(GLSRCDIR)lib.mak +.include $(PSSRCDIR)int.mak +.include $(PSSRCDIR)cfonts.mak +.include $(GLSRCDIR)jpeg.mak +# zlib.mak must precede libpng.mak +.include $(GLSRCDIR)zlib.mak +.include $(GLSRCDIR)libpng.mak +JBIG2_EXTRA_OBJS=$(JBIG2OBJDIR)$(D)snprintf.$(OBJ) +.include $(GLSRCDIR)jbig2.mak +.include $(GLSRCDIR)icclib.mak +.include $(GLSRCDIR)devs.mak +.include $(GLSRCDIR)contrib.mak + + +# ----------------------------- Main program ------------------------------ + +macro : +.ifdef A4_PAPER + @ a4p = 1 +.else + @ a4p = 0 +.endif +.ifdef IEEE + @ i3e = 1 +.else + @ i3e = 0 +.endif +.ifdef SYSLIB + @ dsl = 1 +.else + @ dsl = 0 +.endif + @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes."" + @ decw12 = f$search("SYS$SHARE:DECW$XTLIBSHRR5.EXE").nes."" + @ macro = "" + @ if dsl.or.a4p.or.decc.or.decw12 then macro = "/MACRO=(" + @ if decw12 then macro = macro + "DECWINDOWS1_2=1," + @ if a4p then macro = macro + "A4_PAPER=1," + @ if dsl then macro = macro + "SYSLIB=1," + @ if i3e then macro = macro + "IEEE=1," + @ if macro.nes."" then macro = f$extract(0,f$length(macro)-1,macro)+ ")" + $(MMS)$(MMSQUALIFIERS)'macro' $(GS_XE) + +$(GS_XE) : openvms $(GLGEN)arch.h $(GLOBJDIR)gs.$(OBJ) $(INT_ALL) $(LIB_ALL) + $(LINKER)/EXE=$@ $(GLOBJDIR)gs.$(OBJ),$(ld_tr)/OPTIONS,$(GLSRCDIR)OPENVMS.OPT/OPTION + @ Write Sys$Output "Build of GhostScript is complete!" + +# OpenVMS.dev + +openvms__=$(GLOBJ)gp_getnv.$(OBJ) $(GLOBJ)gp_vms.$(OBJ) $(GLOBJ)gp_stdia.$(OBJ) +$(GLGEN)openvms_.dev : $(openvms__) $(GLGEN)nosync.dev + $(SETMOD) $(GLGEN)openvms_ $(openvms__) -include $(GLGEN)nosync + +$(ECHOGS_XE) : $(GLOBJDIR)echogs.$(OBJ) +$(GENARCH_XE) : $(GLOBJDIR)genarch.$(OBJ) +$(GENCONF_XE) : $(GLOBJDIR)genconf.$(OBJ) +$(GENDEV_XE) : $(GLOBJDIR)gendev.$(OBJ) +$(GENHT_XE) : $(GLOBJDIR)genht.$(OBJ) +$(GENINIT_XE) : $(GLOBJDIR)geninit.$(OBJ) + +$(GLOBJDIR)echogs.$(OBJ) : $(GLSRCDIR)echogs.c +$(GLOBJDIR)genarch.$(OBJ) : $(GLSRCDIR)genarch.c $(GENARCH_DEPS) +$(GLOBJDIR)genconf.$(OBJ) : $(GLSRCDIR)genconf.c $(GENCONF_DEPS) +$(GLOBJDIR)gendev.$(OBJ) : $(GLSRCDIR)gendev.c $(GENDEV_DEPS) +# ****** NEED TO ADD $(GENHT_CFLAGS) HERE ****** +$(GLOBJDIR)genht.$(OBJ) : $(GLSRCDIR)genht.c $(GENHT_DEPS) +$(GLOBJDIR)geninit.$(OBJ) : $(GLSRCDIR)geninit.c $(GENINIT_DEPS) + +$(GLOBJ)gp_vms.$(OBJ) : $(GLSRC)gp_vms.c $(string__h) $(memory__h) $(gx_h) $(gp_h) $(gpmisc_h) $(gsstruct_h) + $(CC_)/include=($(GLGENDIR),$(GLSRCDIR))/obj=$(GLOBJ)gp_vms.$(OBJ) $(GLSRC)gp_vms.c + +$(GLOBJ)gp_stdia.$(OBJ) : $(GLSRC)gp_stdia.c $(AK) $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h) + $(CC_)/incl=$(GLOBJ)/obj=$(GLOBJ)gp_stdia.$(OBJ) $(GLSRC)gp_stdia.c + +# Preliminary definitions + +openvms : $(GLSRCDIR)openvms.com $(GLSRCDIR)openvms.opt + @$(GLSRCDIR)OPENVMS + +$(GLSRCDIR)openvms.com : $(GLSRCDIR)append_l.com + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB X11 $(X_INCLUDE)" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB GS_LIB ''F$ENVIRONMENT(""DEFAULT"")'" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB GS_DOC ''F$ENVIRONMENT(""DEFAULT"")'" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB DECC$USER_INCLUDE ''F$ENVIRONMENT(""DEFAULT"")', DECW$INCLUDE, DECC$LIBRARY_INCLUDE, SYS$LIBRARY" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB DECC$SYSTEM_INCLUDE ''F$ENVIRONMENT(""DEFAULT"")', DECW$INCLUDE, DECC$LIBRARY_INCLUDE, SYS$LIBRARY" + @$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB SYS "DECC$LIBRARY_INCLUDE,SYS$LIBRARY" + +$(GLSRCDIR)openvms.opt : +.ifdef DECWINDOWS1_2 + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XMLIBSHR12.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XTLIBSHRR5.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" +.else + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XMLIBSHR.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XTSHR.EXE/SHARE" + @$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" +.endif + @$(GLSRCDIR)APPEND_L $@ ""Ident="""""GS $(GS_DOT_VERSION)""""" + +# The platform-specific makefiles must also include rules for creating +# certain dynamically generated files: +# gconfig_.h - this indicates the presence or absence of +# certain system header files that are located in different +# places on different systems. (It could be generated by +# the GNU `configure' program.) +# gconfigv.h - this indicates the status of certain machine- +# and configuration-specific features derived from definitions +# in the platform-specific makefile. + +$(gconfig__h) : $(TOP_MAKEFILES) $(ECHOGS_XE) + $(EXP)$(ECHOGS_XE) -w $(gconfig__h) -x 23 define "HAVE_SYS_TIME_H" + +$(gconfigv_h) : $(TOP_MAKEFILES) $(ECHOGS_XE) + $(EXP)$(ECHOGS_XE) -w $(gconfigv_h) -x 23 define "USE_ASM" 0 + $(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "USE_FPU" 1 + $(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "EXTEND_NAMES" 0$(EXTEND_NAMES) + $(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "SYSTEM_CONSTANTS_ARE_WRITABLE" 0$(SYSTEM_CONSTANTS_ARE_WRITABLE) diff --git a/samples/Module Management System/simh_descrip.mms b/samples/Module Management System/simh_descrip.mms new file mode 100755 index 00000000..f6530a56 --- /dev/null +++ b/samples/Module Management System/simh_descrip.mms @@ -0,0 +1,1204 @@ +# DESCRIP.MMS +# Written By: Robert Alan Byer / byer@mail.ourservers.net +# Modified By: Mark Pizzolato / mark@infocomm.com +# Norman Lastovica / norman.lastovica@oracle.com +# +# This MMS/MMK build script is used to compile the various simulators in +# the SIMH package for OpenVMS using DEC C v6.0-001(AXP), v6.5-001(AXP), +# HP C V7.2-001 (IA64) and v6.4-005(VAX). +# +# Notes: On VAX, the PDP-10 and Eclipse simulators will not be built +# due to the fact that INT64 is required for that simulator. +# +# This build script will accept the following build options. +# +# ALL Just Build "Everything". +# ALTAIR Just Build The MITS Altair. +# ALTAIRZ80 Just Build The MITS Altair Z80. +# ECLIPSE Just Build The Data General Eclipse. +# GRI Just Build The GRI Corporation GRI-909. +# LGP Just Build The Royal-McBee LGP-30. +# H316 Just Build The Honewell 316/516. +# HP2100 Just Build The Hewlett-Packard HP-2100. +# I1401 Just Build The IBM 1401. +# I1620 Just Build The IBM 1620. +# IBM1130 Just Build The IBM 1130. +# ID16 Just Build The Interdata 16-bit CPU. +# ID32 Just Build The Interdata 32-bit CPU. +# NOVA Just Build The Data General Nova. +# PDP1 Just Build The DEC PDP-1. +# PDP4 Just Build The DEC PDP-4. +# PDP7 Just Build The DEC PDP-7. +# PDP8 Just Build The DEC PDP-8. +# PDP9 Just Build The DEC PDP-9. +# PDP10 Just Build The DEC PDP-10. +# PDP11 Just Build The DEC PDP-11. +# PDP15 Just Build The DEC PDP-15. +# S3 Just Build The IBM System 3. +# SDS Just Build The SDS 940. +# VAX Just Build The DEC VAX. +# VAX780 Just Build The DEC VAX780. +# CLEAN Will Clean Files Back To Base Kit. +# +# To build with debugging enabled (which will also enable traceback +# information) use.. +# +# MMK/MACRO=(DEBUG=1) +# +# This will produce an executable named {Simulator}-{I64|VAX|AXP}-DBG.EXE +# + +# Let's See If We Are Going To Build With DEBUG Enabled. Always compile +# /DEBUG so that the traceback and debug information is always available +# in the object files. + +CC_DEBUG = /DEBUG + +.IFDEF DEBUG +LINK_DEBUG = /DEBUG/TRACEBACK +CC_OPTIMIZE = /NOOPTIMIZE + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = AXP-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_FLAGS = /PREF=ALL +ARCH = I64-DBG +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX-DBG +CC_DEFS = "__VAX" +.ENDIF + +.ELSE +LINK_DEBUG = /NODEBUG/NOTRACEBACK + +.IFDEF MMSALPHA +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5)/ARCH=HOST +CC_FLAGS = /PREF=ALL +ARCH = AXP +CC_DEFS = "_LARGEFILE" +LINK_SECTION_BINDING = /SECTION_BINDING +.ENDIF + +.IFDEF MMSIA64 +ALPHA_OR_IA64 = 1 +CC_OPTIMIZE = /OPT=(LEV=5) +CC_FLAGS = /PREF=ALL +ARCH = I64 +CC_DEFS = "_LARGEFILE" +.ENDIF + +.IFDEF MMSVAX +ALPHA_OR_IA64 = 0 +CC_OPTIMIZE = /OPTIMIZE +CC_FLAGS = $(CC_FLAGS) +ARCH = VAX +CC_DEFS = "__VAX" +.ENDIF + +.ENDIF + +# Define Our Compiler Flags & Define The Compile Command +OUR_CC_FLAGS = $(CC_FLAGS)$(CC_DEBUG)$(CC_OPTIMIZE) \ + /NEST=PRIMARY/NAME=(AS_IS,SHORT) +CC = CC/DECC$(OUR_CC_FLAGS) + +# Define The BIN Directory Where The Executables Will Go. +# Define Our Library Directory. +# Define The platform specific Build Directory Where The Objects Will Go. +# +BIN_DIR = SYS$DISK:[.BIN] +LIB_DIR = SYS$DISK:[.LIB] +BLD_DIR = SYS$DISK:[.LIB.BLD-$(ARCH)] + +# Check To Make Sure We Have SYS$DISK:[.BIN] & SYS$DISK:[.LIB] Directory. +# +.FIRST + @ IF (F$SEARCH("SYS$DISK:[]BIN.DIR").EQS."") THEN CREATE/DIRECTORY $(BIN_DIR) + @ IF (F$SEARCH("SYS$DISK:[]LIB.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) + @ IF (F$SEARCH("SYS$DISK:[.LIB]BLD-$(ARCH).DIR").EQS."") THEN CREATE/DIRECTORY $(BLD_DIR) + @ IF (F$SEARCH("$(BLD_DIR)*.*").NES."") THEN DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.*;* + @ IF "".NES."''CC'" THEN DELETE/SYMBOL/GLOBAL CC + +# Core SIMH File Definitions. +# +SIMH_DIR = SYS$DISK:[] +SIMH_LIB = $(LIB_DIR)SIMH-$(ARCH).OLB +SIMH_SOURCE = $(SIMH_DIR)SIM_CONSOLE.C,$(SIMH_DIR)SIM_SOCK.C,\ + $(SIMH_DIR)SIM_TMXR.C,$(SIMH_DIR)SIM_ETHER.C,\ + $(SIMH_DIR)SIM_TAPE.C,$(SIMH_DIR)SIM_FIO.C,\ + $(SIMH_DIR)SIM_TIMER.C + +# VMS PCAP File Definitions. +# +PCAP_DIR = SYS$DISK:[.PCAP-VMS.PCAP-VCI] +PCAP_LIB = $(LIB_DIR)PCAP-$(ARCH).OLB +PCAP_SOURCE = \ + $(PCAP_DIR)PCAPVCI.C,$(PCAP_DIR)VCMUTIL.C,\ + $(PCAP_DIR)BPF_DUMP.C,$(PCAP_DIR)BPF_FILTER.C,\ + $(PCAP_DIR)BPF_IMAGE.C,$(PCAP_DIR)ETHERENT.C,\ + $(PCAP_DIR)FAD-GIFC.C,$(PCAP_DIR)GENCODE.C,\ + $(PCAP_DIR)GRAMMAR.C,$(PCAP_DIR)INET.C,\ + $(PCAP_DIR)NAMETOADDR.C,$(PCAP_DIR)OPTIMIZE.C,\ + $(PCAP_DIR)PCAP.C,$(PCAP_DIR)SAVEFILE.C,\ + $(PCAP_DIR)SCANNER.C,$(PCAP_DIR)SNPRINTF.C,\ + $(PCAP_DIR)PCAP-VMS.C +PCAP_VCMDIR = SYS$DISK:[.PCAP-VMS.PCAPVCM] +PCAP_VCM_SOURCES = $(PCAP_VCMDIR)PCAPVCM.C,$(PCAP_VCMDIR)PCAPVCM_INIT.MAR,\ + $(PCAP_VCMDIR)VCI_JACKET.MAR,$(PCAP_VCMDIR)VCMUTIL.C +PCAP_VCI = SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +# PCAP is not available on OpenVMS VAX or IA64 right now +# +.IFDEF MMSALPHA +PCAP_EXECLET = $(PCAP_VCI) +PCAP_INC = ,$(PCAP_DIR) +PCAP_LIBD = $(PCAP_LIB) +PCAP_LIBR = ,$(PCAP_LIB)/LIB/SYSEXE +PCAP_DEFS = ,"USE_NETWORK=1" +PCAP_SIMH_INC = /INCL=($(PCAP_DIR)) +.ENDIF + +# MITS Altair Simulator Definitions. +# +ALTAIR_DIR = SYS$DISK:[.ALTAIR] +ALTAIR_LIB = $(LIB_DIR)ALTAIR-$(ARCH).OLB +ALTAIR_SOURCE = $(ALTAIR_DIR)ALTAIR_SIO.C,$(ALTAIR_DIR)ALTAIR_CPU.C,\ + $(ALTAIR_DIR)ALTAIR_DSK.C,$(ALTAIR_DIR)ALTAIR_SYS.C +ALTAIR_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIR_DIR))/DEF=($(CC_DEFS)) + +# +# MITS Altair Z80 Simulator Definitions. +# +ALTAIRZ80_DIR = SYS$DISK:[.ALTAIRZ80] +ALTAIRZ80_LIB = $(LIB_DIR)ALTAIRZ80-$(ARCH).OLB +ALTAIRZ80_SOURCE = $(ALTAIRZ80_DIR)/ALTAIRZ80_CPU.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_CPU_NOMMU.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_DSK.C,$(ALTAIRZ80_DIR)/DISASM.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_SIO.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_SYS.C,\ + $(ALTAIRZ80_DIR)/ALTAIRZ80_HDSK.C,$(ALTAIRZ80_DIR)/ALTAIRZ80_NET.C,\ + $(ALTAIRZ80_DIR)/FLASHWRITER2.C,$(ALTAIRZ80_DIR)/I86_DECODE.C,\ + $(ALTAIRZ80_DIR)/I86_OPS.C,$(ALTAIRZ80_DIR)/I86_PRIM_OPS.C,\ + $(ALTAIRZ80_DIR)/I8272.C,$(ALTAIRZ80_DIR)/INSNSA.C,$(ALTAIRZ80_DIR)/INSNSD.C,\ + $(ALTAIRZ80_DIR)/MFDC.C,$(ALTAIRZ80_DIR)/N8VEM.C,$(ALTAIRZ80_DIR)/VFDHD.C,\ + $(ALTAIRZ80_DIR)/S100_DISK1A.C,$(ALTAIRZ80_DIR)/S100_DISK2.C,\ + $(ALTAIRZ80_DIR)/S100_FIF.C,$(ALTAIRZ80_DIR)/S100_MDRIVEH.C,\ + $(ALTAIRZ80_DIR)/S100_MDSAD.C,$(ALTAIRZ80_DIR)/S100_SELCHAN.C,\ + $(ALTAIRZ80_DIR)/S100_SS1.C,$(ALTAIRZ80_DIR)/S100_64FDC.C,\ + $(ALTAIRZ80_DIR)/S100_SCP300F.C,$(ALTAIRZ80_DIR)/SIM_IMD.C,\ + $(ALTAIRZ80_DIR)/WD179X.C +ALTAIRZ80_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIRZ80_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Nova Simulator Definitions. +# +NOVA_DIR = SYS$DISK:[.NOVA] +NOVA_LIB = $(LIB_DIR)NOVA-$(ARCH).OLB +NOVA_SOURCE = $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_CPU.C,\ + $(NOVA_DIR)NOVA_DKP.C,$(NOVA_DIR)NOVA_DSK.C,\ + $(NOVA_DIR)NOVA_LP.C,$(NOVA_DIR)NOVA_MTA.C,\ + $(NOVA_DIR)NOVA_PLT.C,$(NOVA_DIR)NOVA_PT.C,\ + $(NOVA_DIR)NOVA_CLK.C,$(NOVA_DIR)NOVA_TT.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +NOVA_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))/DEF=($(CC_DEFS)) + +# +# Data General Eclipse Simulator Definitions. +# +ECLIPSE_LIB = $(LIB_DIR)ECLIPSE-$(ARCH).OLB +ECLIPSE_SOURCE = $(NOVA_DIR)ECLIPSE_CPU.C,$(NOVA_DIR)ECLIPSE_TT.C,\ + $(NOVA_DIR)NOVA_SYS.C,$(NOVA_DIR)NOVA_DKP.C,\ + $(NOVA_DIR)NOVA_DSK.C,$(NOVA_DIR)NOVA_LP.C,\ + $(NOVA_DIR)NOVA_MTA.C,$(NOVA_DIR)NOVA_PLT.C,\ + $(NOVA_DIR)NOVA_PT.C,$(NOVA_DIR)NOVA_CLK.C,\ + $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C +ECLIPSE_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","ECLIPSE=1") + +# +# GRI Corporation GRI-909 Simulator Definitions. +# +GRI_DIR = SYS$DISK:[.GRI] +GRI_LIB = $(LIB_DIR)GRI-$(ARCH).OLB +GRI_SOURCE = $(GRI_DIR)GRI_CPU.C,$(GRI_DIR)GRI_STDDEV.C,$(GRI_DIR)GRI_SYS.C +GRI_OPTIONS = /INCL=($(SIMH_DIR),$(GRI_DIR))/DEF=($(CC_DEFS)) + +# +# Royal-McBee LGP-30 Simulator Definitions. +# +LGP_DIR = SYS$DISK:[.LGP] +LGP_LIB = $(LIB_DIR)LGP-$(ARCH).OLB +LGP_SOURCE = $(LGP_DIR)LGP_CPU.C,$(LGP_DIR)LGP_STDDEV.C,$(LGP_DIR)LGP_SYS.C +LGP_OPTIONS = /INCL=($(SIMH_DIR),$(LGP_DIR))/DEF=($(CC_DEFS)) + +# +# Honeywell 316/516 Simulator Definitions. +# +H316_DIR = SYS$DISK:[.H316] +H316_LIB = $(LIB_DIR)H316-$(ARCH).OLB +H316_SOURCE = $(H316_DIR)H316_STDDEV.C,$(H316_DIR)H316_LP.C,\ + $(H316_DIR)H316_CPU.C,$(H316_DIR)H316_SYS.C,\ + $(H316_DIR)H316_FHD.C,$(H316_DIR)H316_MT.C,\ + $(H316_DIR)H316_DP.C +H316_OPTIONS = /INCL=($(SIMH_DIR),$(H316_DIR))/DEF=($(CC_DEFS)) + +# +# Hewlett-Packard HP-2100 Simulator Definitions. +# +HP2100_DIR = SYS$DISK:[.HP2100] +HP2100_LIB = $(LIB_DIR)HP2100-$(ARCH).OLB +HP2100_SOURCE = $(HP2100_DIR)HP2100_STDDEV.C,$(HP2100_DIR)HP2100_DP.C,\ + $(HP2100_DIR)HP2100_DQ.C,$(HP2100_DIR)HP2100_DR.C,\ + $(HP2100_DIR)HP2100_LPS.C,$(HP2100_DIR)HP2100_MS.C,\ + $(HP2100_DIR)HP2100_MT.C,$(HP2100_DIR)HP2100_MUX.C,\ + $(HP2100_DIR)HP2100_CPU.C,$(HP2100_DIR)HP2100_FP.C,\ + $(HP2100_DIR)HP2100_SYS.C,$(HP2100_DIR)HP2100_LPT.C,\ + $(HP2100_DIR)HP2100_IPL.C,$(HP2100_DIR)HP2100_DS.C,\ + $(HP2100_DIR)HP2100_CPU0.C,$(HP2100_DIR)HP2100_CPU1.C,\ + $(HP2100_DIR)HP2100_CPU2.C,$(HP2100_DIR)HP2100_CPU3.C,\ + $(HP2100_DIR)HP2100_CPU4.C,$(HP2100_DIR)HP2100_CPU5.C,\ + $(HP2100_DIR)HP2100_CPU6.C,$(HP2100_DIR)HP2100_CPU7.C,\ + $(HP2100_DIR)HP2100_FP1.C,$(HP2100_DIR)HP2100_BACI.C,\ + $(HP2100_DIR)HP2100_MPX.C,$(HP2100_DIR)HP2100_PIF.C +.IF ALPHA_OR_IA64 +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))\ + /DEF=($(CC_DEFS),"HAVE_INT64=1") +.ELSE +HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))/DEF=($(CC_DEFS)) +.ENDIF + +# +# Interdata 16-bit CPU. +# +ID16_DIR = SYS$DISK:[.INTERDATA] +ID16_LIB = $(LIB_DIR)ID16-$(ARCH).OLB +ID16_SOURCE = $(ID16_DIR)ID16_CPU.C,$(ID16_DIR)ID16_SYS.C,$(ID16_DIR)ID_DP.C,\ + $(ID16_DIR)ID_FD.C,$(ID16_DIR)ID_FP.C,$(ID16_DIR)ID_IDC.C,\ + $(ID16_DIR)ID_IO.C,$(ID16_DIR)ID_LP.C,$(ID16_DIR)ID_MT.C,\ + $(ID16_DIR)ID_PAS.C,$(ID16_DIR)ID_PT.C,$(ID16_DIR)ID_TT.C,\ + $(ID16_DIR)ID_UVC.C,$(ID16_DIR)ID16_DBOOT.C,$(ID16_DIR)ID_TTP.C +ID16_OPTIONS = /INCL=($(SIMH_DIR),$(ID16_DIR))/DEF=($(CC_DEFS)) + +# +# Interdata 32-bit CPU. +# +ID32_DIR = SYS$DISK:[.INTERDATA] +ID32_LIB = $(LIB_DIR)ID32-$(ARCH).OLB +ID32_SOURCE = $(ID32_DIR)ID32_CPU.C,$(ID32_DIR)ID32_SYS.C,$(ID32_DIR)ID_DP.C,\ + $(ID32_DIR)ID_FD.C,$(ID32_DIR)ID_FP.C,$(ID32_DIR)ID_IDC.C,\ + $(ID32_DIR)ID_IO.C,$(ID32_DIR)ID_LP.C,$(ID32_DIR)ID_MT.C,\ + $(ID32_DIR)ID_PAS.C,$(ID32_DIR)ID_PT.C,$(ID32_DIR)ID_TT.C,\ + $(ID32_DIR)ID_UVC.C,$(ID32_DIR)ID32_DBOOT.C,$(ID32_DIR)ID_TTP.C +ID32_OPTIONS = /INCL=($(SIMH_DIR),$(ID32_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1130 Simulator Definitions. +# +IBM1130_DIR = SYS$DISK:[.IBM1130] +IBM1130_LIB = $(LIB_DIR)IBM1130-$(ARCH).OLB +IBM1130_SOURCE = $(IBM1130_DIR)IBM1130_CPU.C,$(IBM1130_DIR)IBM1130_CR.C,\ + $(IBM1130_DIR)IBM1130_DISK.C,$(IBM1130_DIR)IBM1130_STDDEV.C,\ + $(IBM1130_DIR)IBM1130_SYS.C,$(IBM1130_DIR)IBM1130_GDU.C,\ + $(IBM1130_DIR)IBM1130_GUI.C,$(IBM1130_DIR)IBM1130_PRT.C,\ + $(IBM1130_DIR)IBM1130_FMT.C,$(IBM1130_DIR)IBM1130_PTRP.C,\ + $(IBM1130_DIR)IBM1130_PLOT.C,$(IBM1130_DIR)IBM1130_SCA.C,\ + $(IBM1130_DIR)IBM1130_T2741.C +IBM1130_OPTIONS = /INCL=($(SIMH_DIR),$(IBM1130_DIR))/DEF=($(CC_DEFS)) + +# +# IBM 1401 Simulator Definitions. +# +I1401_DIR = SYS$DISK:[.I1401] +I1401_LIB = $(LIB_DIR)I1401-$(ARCH).OLB +I1401_SOURCE = $(I1401_DIR)I1401_LP.C,$(I1401_DIR)I1401_CPU.C,\ + $(I1401_DIR)I1401_IQ.C,$(I1401_DIR)I1401_CD.C,\ + $(I1401_DIR)I1401_MT.C,$(I1401_DIR)I1401_DP.C,\ + $(I1401_DIR)I1401_SYS.C +I1401_OPTIONS = /INCL=($(SIMH_DIR),$(I1401_DIR))/DEF=($(CC_DEFS)) + + +# +# IBM 1620 Simulators Definitions. +# +I1620_DIR = SYS$DISK:[.I1620] +I1620_LIB = $(LIB_DIR)I1620-$(ARCH).OLB +I1620_SOURCE = $(I1620_DIR)I1620_CD.C,$(I1620_DIR)I1620_DP.C,\ + $(I1620_DIR)I1620_PT.C,$(I1620_DIR)I1620_TTY.C,\ + $(I1620_DIR)I1620_CPU.C,$(I1620_DIR)I1620_LP.C,\ + $(I1620_DIR)I1620_FP.C,$(I1620_DIR)I1620_SYS.C +I1620_OPTIONS = /INCL=($(SIMH_DIR),$(I1620_DIR))/DEF=($(CC_DEFS)) + +# +# PDP-1 Simulator Definitions. +# +PDP1_DIR = SYS$DISK:[.PDP1] +PDP1_LIB = $(LIB_DIR)PDP1-$(ARCH).OLB +PDP1_SOURCE = $(PDP1_DIR)PDP1_LP.C,$(PDP1_DIR)PDP1_CPU.C,\ + $(PDP1_DIR)PDP1_STDDEV.C,$(PDP1_DIR)PDP1_SYS.C,\ + $(PDP1_DIR)PDP1_DT.C,$(PDP1_DIR)PDP1_DRM.C,\ + $(PDP1_DIR)PDP1_CLK.C,$(PDP1_DIR)PDP1_DCS.C +PDP1_OPTIONS = /INCL=($(SIMH_DIR),$(PDP1_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-8 Simulator Definitions. +# +PDP8_DIR = SYS$DISK:[.PDP8] +PDP8_LIB = $(LIB_DIR)PDP8-$(ARCH).OLB +PDP8_SOURCE = $(PDP8_DIR)PDP8_CPU.C,$(PDP8_DIR)PDP8_CLK.C,\ + $(PDP8_DIR)PDP8_DF.C,$(PDP8_DIR)PDP8_DT.C,\ + $(PDP8_DIR)PDP8_LP.C,$(PDP8_DIR)PDP8_MT.C,\ + $(PDP8_DIR)PDP8_PT.C,$(PDP8_DIR)PDP8_RF.C,\ + $(PDP8_DIR)PDP8_RK.C,$(PDP8_DIR)PDP8_RX.C,\ + $(PDP8_DIR)PDP8_SYS.C,$(PDP8_DIR)PDP8_TT.C,\ + $(PDP8_DIR)PDP8_TTX.C,$(PDP8_DIR)PDP8_RL.C,\ + $(PDP8_DIR)PDP8_TSC.C,$(PDP8_DIR)PDP8_TD.C,\ + $(PDP8_DIR)PDP8_CT.C +PDP8_OPTIONS = /INCL=($(SIMH_DIR),$(PDP8_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment PDP-4, PDP-7, PDP-9 And PDP-15 Simulator Definitions. +# +PDP18B_DIR = SYS$DISK:[.PDP18B] +PDP4_LIB = $(LIB_DIR)PDP4-$(ARCH).OLB +PDP7_LIB = $(LIB_DIR)PDP7-$(ARCH).OLB +PDP9_LIB = $(LIB_DIR)PDP9-$(ARCH).OLB +PDP15_LIB = $(LIB_DIR)PDP15-$(ARCH).OLB +PDP18B_SOURCE = $(PDP18B_DIR)PDP18B_DT.C,$(PDP18B_DIR)PDP18B_DRM.C,\ + $(PDP18B_DIR)PDP18B_CPU.C,$(PDP18B_DIR)PDP18B_LP.C,\ + $(PDP18B_DIR)PDP18B_MT.C,$(PDP18B_DIR)PDP18B_RF.C,\ + $(PDP18B_DIR)PDP18B_RP.C,$(PDP18B_DIR)PDP18B_STDDEV.C,\ + $(PDP18B_DIR)PDP18B_SYS.C,$(PDP18B_DIR)PDP18B_TT1.C,\ + $(PDP18B_DIR)PDP18B_RB.C,$(PDP18B_DIR)PDP18B_FPP.C +PDP4_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP4=1") +PDP7_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP7=1") +PDP9_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP9=1") +PDP15_OPTIONS = /INCL=($(SIMH_DIR),$(PDP18B_DIR))/DEF=($(CC_DEFS),"PDP15=1") + +# +# Digital Equipment PDP-11 Simulator Definitions. +# +PDP11_DIR = SYS$DISK:[.PDP11] +PDP11_LIB1 = $(LIB_DIR)PDP11L1-$(ARCH).OLB +PDP11_SOURCE1 = $(PDP11_DIR)PDP11_FP.C,$(PDP11_DIR)PDP11_CPU.C,\ + $(PDP11_DIR)PDP11_DZ.C,$(PDP11_DIR)PDP11_CIS.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_RK.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_RX.C,$(PDP11_DIR)PDP11_STDDEV.C,\ + $(PDP11_DIR)PDP11_SYS.C,$(PDP11_DIR)PDP11_TC.C, \ + $(PDP11_DIR)PDP11_CPUMOD.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_TA.C,$(PDP11_DIR)PDP11_IO_LIB.C +PDP11_LIB2 = $(LIB_DIR)PDP11L2-$(ARCH).OLB +PDP11_SOURCE2 = $(PDP11_DIR)PDP11_TM.C,$(PDP11_DIR)PDP11_TS.C,\ + $(PDP11_DIR)PDP11_IO.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TQ.C,$(PDP11_DIR)PDP11_PCLK.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_PT.C,\ + $(PDP11_DIR)PDP11_HK.C,$(PDP11_DIR)PDP11_XQ.C,\ + $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_RH.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_TU.C,\ + $(PDP11_DIR)PDP11_DL.C,$(PDP11_DIR)PDP11_RF.C, \ + $(PDP11_DIR)PDP11_RC.C,$(PDP11_DIR)PDP11_KG.C,\ + $(PDP11_DIR)PDP11_KE.C,$(PDP11_DIR)PDP11_DC.C +PDP11_OPTIONS = /INCL=($(SIMH_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_PDP11=1"$(PCAP_DEFS)) + +# +# Digital Equipment PDP-10 Simulator Definitions. +# +PDP10_DIR = SYS$DISK:[.PDP10] +PDP10_LIB = $(LIB_DIR)PDP10-$(ARCH).OLB +PDP10_SOURCE = $(PDP10_DIR)PDP10_FE.C,\ + $(PDP10_DIR)PDP10_CPU.C,$(PDP10_DIR)PDP10_KSIO.C,\ + $(PDP10_DIR)PDP10_LP20.C,$(PDP10_DIR)PDP10_MDFP.C,\ + $(PDP10_DIR)PDP10_PAG.C,$(PDP10_DIR)PDP10_XTND.C,\ + $(PDP10_DIR)PDP10_RP.C,$(PDP10_DIR)PDP10_SYS.C,\ + $(PDP10_DIR)PDP10_TIM.C,$(PDP10_DIR)PDP10_TU.C,\ + $(PDP11_DIR)PDP11_PT.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_XU.C,\ + $(PDP11_DIR)PDP11_CR.C +PDP10_OPTIONS = /INCL=($(SIMH_DIR),$(PDP10_DIR),$(PDP11_DIR))\ + /DEF=($(CC_DEFS),"USE_INT64=1","VM_PDP10=1"$(PCAP_DEFS)) + +# +# IBM System 3 Simulator Definitions. +# +S3_DIR = SYS$DISK:[.S3] +S3_LIB = $(LIB_DIR)S3-$(ARCH).OLB +S3_SOURCE = $(S3_DIR)S3_CD.C,$(S3_DIR)S3_CPU.C,$(S3_DIR)S3_DISK.C,\ + $(S3_DIR)S3_LP.C,$(S3_DIR)S3_PKB.C,$(S3_DIR)S3_SYS.C +S3_OPTIONS = /INCL=($(SIMH_DIR),$(S3_DIR))/DEF=($(CC_DEFS)) + +# +# SDS 940 +# +SDS_DIR = SYS$DISK:[.SDS] +SDS_LIB = $(LIB_DIR)SDS-$(ARCH).OLB +SDS_SOURCE = $(SDS_DIR)SDS_CPU.C,$(SDS_DIR)SDS_DRM.C,$(SDS_DIR)SDS_DSK.C,\ + $(SDS_DIR)SDS_IO.C,$(SDS_DIR)SDS_LP.C,$(SDS_DIR)SDS_MT.C,\ + $(SDS_DIR)SDS_MUX.C,$(SDS_DIR)SDS_RAD.C,$(SDS_DIR)SDS_STDDEV.C,\ + $(SDS_DIR)SDS_SYS.C +SDS_OPTIONS = /INCL=($(SIMH_DIR),$(SDS_DIR))/DEF=($(CC_DEFS)) + +# +# Digital Equipment VAX Simulator Definitions. +# +VAX_DIR = SYS$DISK:[.VAX] +VAX_LIB = $(LIB_DIR)VAX-$(ARCH).OLB +VAX_SOURCE = $(VAX_DIR)VAX_CIS.C,$(VAX_DIR)VAX_CMODE.C,\ + $(VAX_DIR)VAX_CPU.C,$(VAX_DIR)VAX_CPU1.C,\ + $(VAX_DIR)VAX_FPA.C,$(VAX_DIR)VAX_MMU.C,\ + $(VAX_DIR)VAX_OCTA.C,$(VAX_DIR)VAX_SYS.C,\ + $(VAX_DIR)VAX_SYSCM.C,$(VAX_DIR)VAX_SYSDEV.C,\ + $(VAX_DIR)VAX_SYSLIST.C,$(VAX_DIR)VAX_IO.C,\ + $(VAX_DIR)VAX_STDDEV.C,$(PDP11_DIR)PDP11_IO_LIB.C,\ + $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XQ.C,$(PDP11_DIR)PDP11_CR.C,\ + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C +VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS)) + +# Digital Equipment VAX780 Simulator Definitions. +# +VAX780_DIR = SYS$DISK:[.VAX] +VAX780_LIB1 = $(LIB_DIR)VAX780L1-$(ARCH).OLB +VAX780_SOURCE1 = $(VAX780_DIR)VAX_CPU.C,$(VAX780_DIR)VAX_CPU1.C,\ + $(VAX780_DIR)VAX_FPA.C,$(VAX780_DIR)VAX_CIS.C,\ + $(VAX780_DIR)VAX_OCTA.C,$(VAX780_DIR)VAX_CMODE.C,\ + $(VAX780_DIR)VAX_MMU.C,$(VAX780_DIR)VAX_SYS.C,\ + $(VAX780_DIR)VAX_SYSCM.C,$(VAX780_DIR)VAX780_STDDEV.C,\ + $(VAX780_DIR)VAX780_SBI.C,$(VAX780_DIR)VAX780_MEM.C,\ + $(VAX780_DIR)VAX780_UBA.C,$(VAX780_DIR)VAX780_MBA.C,\ + $(VAX780_DIR)VAX780_FLOAD.C,$(VAX780_DIR)VAX780_SYSLIST.C +VAX780_LIB2 = $(LIB_DIR)VAX780L2-$(ARCH).OLB +VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ + $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ + $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ + $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\ + $(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\ + $(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\ + $(PDP11_DIR)PDP11_IO_LIB.C +VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_780=1") + +# IBM 7094 Simulator Definitions. +# +I7094_DIR = SYS$DISK:[.I7094] +I7094_LIB = $(LIB_DIR)I7094-$(ARCH).OLB +I7094_SOURCE = $(I7094_DIR)I7094_CPU.C,$(I7094_DIR)I7094_CPU1.C,\ + $(I7094_DIR)I7094_IO.C,$(I7094_DIR)I7094_CD.C,\ + $(I7094_DIR)I7094_CLK.C,$(I7094_DIR)I7094_COM.C,\ + $(I7094_DIR)I7094_DRM.C,$(I7094_DIR)I7094_DSK.C,\ + $(I7094_DIR)I7094_SYS.C,$(I7094_DIR)I7094_LP.C,\ + $(I7094_DIR)I7094_MT.C,$(I7094_DIR)I7094_BINLOADER.C +I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS)) + +# If we're not a VAX, Build Everything +# +.IF ALPHA_OR_IA64 +ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ + ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 VAX VAX780 SDS \ + I7094 + @CONTINUE +.ELSE +# +# Else We Are On VAX And Build Everything EXCEPT the 64b simulators +# +ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ + NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 VAX VAX780 SDS + @CONTINUE +.ENDIF + +CLEAN : + $! + $! Clean out all targets and building Remnants + $! + $ IF (F$SEARCH("$(BIN_DIR)*.EXE;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(BIN_DIR)*.EXE;* + $ IF (F$SEARCH("$(LIB_DIR)*.OLB;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM $(LIB_DIR)*.OLB;* + $ IF (F$SEARCH("SYS$DISK:[...]*.OBJ;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.OBJ;* + $ IF (F$SEARCH("SYS$DISK:[...]*.LIS;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.LIS;* + $ IF (F$SEARCH("SYS$DISK:[...]*.MAP;*").NES."") THEN - + DELETE/NOLOG/NOCONFIRM SYS$DISK:[...]*.MAP;* + +# +# Build The Libraries. +# +$(SIMH_LIB) : $(SIMH_SOURCE) + $! + $! Building The $(SIMH_LIB) Library. + $! + $ $(CC)/DEF=($(CC_DEFS)$(PCAP_DEFS))$(PCAP_SIMH_INC) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIR_LIB) : $(ALTAIR_SOURCE) + $! + $! Building The $(ALTAIR_LIB) Library. + $! + $ $(CC)$(ALTAIR_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ALTAIRZ80_LIB) : $(ALTAIRZ80_SOURCE) + $! + $! Building The $(ALTAIRZ80_LIB) Library. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The Eclipse Library. +# +.IF ALPHA_OR_IA64 +$(ECLIPSE_LIB) : $(ECLIPSE_SOURCE) + $! + $! Building The $(ECLIPSE_LIB) Library. + $! + $ $(CC)$(ECLIPSE_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(ECLIPSE_LIB) : + $! + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)ECLIPSE-$(ARCH).OLB Library On VAX. + $! +.ENDIF + +$(GRI_LIB) : $(GRI_SOURCE) + $! + $! Building The $(GRI_LIB) Library. + $! + $ $(CC)$(GRI_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(LGP_LIB) : $(LGP_SOURCE) + $! + $! Building The $(LGP_LIB) Library. + $! + $ $(CC)$(LGP_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(H316_LIB) : $(H316_SOURCE) + $! + $! Building The $(H316_LIB) Library. + $! + $ $(CC)$(H316_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(HP2100_LIB) : $(HP2100_SOURCE) + $! + $! Building The $(HP2100_LIB) Library. + $! + $ $(CC)$(HP2100_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1401_LIB) : $(I1401_SOURCE) + $! + $! Building The $(I1401_LIB) Library. + $! + $ $(CC)$(I1401_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(I1620_LIB) : $(I1620_SOURCE) + $! + $! Building The $(I1620_LIB) Library. + $! + $ $(CC)$(I1620_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(IBM1130_LIB) : $(IBM1130_SOURCE) + $! + $! Building The $(IBM1130_LIB) Library. + $! + $ $(CC)$(IBM1130_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID16_LIB) : $(ID16_SOURCE) + $! + $! Building The $(ID16_LIB) Library. + $! + $ $(CC)$(ID16_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(ID32_LIB) : $(ID32_SOURCE) + $! + $! Building The $(ID32_LIB) Library. + $! + $ $(CC)$(ID32_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(NOVA_LIB) : $(NOVA_SOURCE) + $! + $! Building The $(NOVA_LIB) Library. + $! + $ $(CC)$(NOVA_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP1_LIB) : $(PDP1_SOURCE) + $! + $! Building The $(PDP1_LIB) Library. + $! + $ $(CC)$(PDP1_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP4_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP4_LIB) Library. + $! + $ $(CC)$(PDP4_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP7_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP7_LIB) Library. + $! + $ $(CC)$(PDP7_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP8_LIB) : $(PDP8_SOURCE) + $! + $! Building The $(PDP8_LIB) Library. + $! + $ $(CC)$(PDP8_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP9_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP9_LIB) Library. + $! + $ $(CC)$(PDP9_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Library. +# +.IF ALPHA_OR_IA64 +$(PDP10_LIB) : $(PDP10_SOURCE) + $! + $! Building The $(PDP10_LIB) Library. + $! + $ $(CC)$(PDP10_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(PDP10_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)PDP10-$(ARCH).OLB Library On VAX. +.ENDIF + +$(PDP11_LIB1) : $(PDP11_SOURCE1) + $! + $! Building The $(PDP11_LIB1) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP11_LIB2) : $(PDP11_SOURCE2) + $! + $! Building The $(PDP11_LIB2) Library. + $! + $(CC)$(PDP11_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PDP15_LIB) : $(PDP18B_SOURCE) + $! + $! Building The $(PDP15_LIB) Library. + $! + $ $(CC)$(PDP15_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(S3_LIB) : $(S3_SOURCE) + $! + $! Building The $(S3_LIB) Library. + $! + $ $(CC)$(S3_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(SDS_LIB) : $(SDS_SOURCE) + $! + $! Building The $(SDS_LIB) Library. + $! + $ $(CC)$(SDS_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX_LIB) : $(VAX_SOURCE) + $! + $! Building The $(VAX_LIB) Library. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(VAX_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB1) : $(VAX780_SOURCE1) + $! + $! Building The $(VAX780_LIB1) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(VAX780_LIB2) : $(VAX780_SOURCE2) + $! + $! Building The $(VAX780_LIB2) Library. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(VAX780_DIR) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +$(PCAP_LIB) : $(PCAP_SOURCE) + $! + $! Building The $(PCAP_LIB) Library. + $! + $ SET DEFAULT $(PCAP_DIR) + $ @VMS_PCAP $(DEBUG) + $ SET DEFAULT [--] + $ IF (F$SEARCH("$(PCAP_LIB)").NES."") THEN - + DELETE $(PCAP_LIB); + $ COPY $(PCAP_DIR)PCAP.OLB $(PCAP_LIB) + $ DELETE/NOLOG/NOCONFIRM $(PCAP_DIR)*.OBJ;*,$(PCAP_DIR)*.OLB;* + +# +# If Not On VAX, Build The IBM 7094 Library. +# +.IF ALPHA_OR_IA64 +$(I7094_LIB) : $(I7094_SOURCE) + $! + $! Building The $(I7094_LIB) Library. + $! + $ $(CC)$(I7094_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# We Are On VAX And Due To The Use of INT64 We Can't Build It. +# +$(I7094_LIB) : + $! Due To The Use Of INT64 We Can't Build The + $! $(LIB_DIR)I7094-$(ARCH).OLB Library On VAX. +.ENDIF + +# +# Individual Simulator Builds. +# +ALTAIR : $(SIMH_LIB) $(ALTAIR_LIB) + $! + $! Building The $(BIN_DIR)ALTAIR-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIR_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIR-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIR_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ALTAIRZ80 : $(SIMH_LIB) $(ALTAIRZ80_LIB) + $! + $! Building The $(BIN_DIR)ALTAIRZ80-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ALTAIRZ80_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ALTAIRZ80-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ALTAIRZ80_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +ECLIPSE : $(SIMH_LIB) $(ECLIPSE_LIB) + $! + $! Building The $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ECLIPSE_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ECLIPSE-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ECLIPSE_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +ECLIPSE : + $! Sorry, Can't Build $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +GRI : $(SIMH_LIB) $(GRI_LIB) + $! + $! Building The $(BIN_DIR)GRI-$(ARCH).EXE Simulator. + $! + $ $(CC)$(GRI_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)GRI-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(GRI_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +LGP : $(SIMH_LIB) $(LGP_LIB) + $! + $! Building The $(BIN_DIR)LGP-$(ARCH).EXE Simulator. + $! + $ $(CC)$(LGP_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)LGP-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(LGP_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +H316 : $(SIMH_LIB) $(H316_LIB) + $! + $! Building The $(BIN_DIR)H316-$(ARCH).EXE Simulator. + $! + $ $(CC)$(H316_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)H316-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(H316_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +HP2100 : $(SIMH_LIB) $(HP2100_LIB) + $! + $! Building The $(BIN_DIR)HP2100-$(ARCH).EXE Simulator. + $! + $ $(CC)$(HP2100_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)HP2100-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(HP2100_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1401 : $(SIMH_LIB) $(I1401_LIB) + $! + $! Building The $(BIN_DIR)I1401-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1401_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1401-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1401_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +I1620 : $(SIMH_LIB) $(I1620_LIB) + $! + $! Building The $(BIN_DIR)I1620-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I1620_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I1620-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I1620_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +IBM1130 : $(SIMH_LIB) $(IBM1130_LIB) + $! + $! Building The $(BIN_DIR)IBM1130-$(ARCH).EXE Simulator. + $! + $ $(CC)$(IBM1130_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)IBM1130-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(IBM1130_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID16 : $(SIMH_LIB) $(ID16_LIB) + $! + $! Building The $(BIN_DIR)ID16-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID16_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID16-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID16_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +ID32 : $(SIMH_LIB) $(ID32_LIB) + $! + $! Building The $(BIN_DIR)ID32-$(ARCH).EXE Simulator. + $! + $ $(CC)$(ID32_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ID32-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(ID32_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +NOVA : $(SIMH_LIB) $(NOVA_LIB) + $! + $! Building The $(BIN_DIR)NOVA-$(ARCH).EXE Simulator. + $! + $ $(CC)$(NOVA_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)NOVA-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(NOVA_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP1 : $(SIMH_LIB) $(PDP1_LIB) + $! + $! Building The $(BIN_DIR)PDP1-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP1_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP1-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP1_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP4 : $(SIMH_LIB) $(PDP4_LIB) + $! + $! Building The $(BIN_DIR)PDP4-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP4_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP4-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP4_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP7 : $(SIMH_LIB) $(PDP7_LIB) + $! + $! Building The $(BIN_DIR)PDP7-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP7_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP7-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP7_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP8 : $(SIMH_LIB) $(PDP8_LIB) + $! + $! Building The $(BIN_DIR)PDP8-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP8_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP8-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP8_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP9 : $(SIMH_LIB) $(PDP9_LIB) + $! + $! Building The $(BIN_DIR)PDP9-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP9_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP9-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP9_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The PDP-10 Simulator. +# +.IF ALPHA_OR_IA64 +PDP10 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP10_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP10-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP10_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP10-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP10_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +PDP10 : + $! Sorry, Can't Build $(BIN_DIR)PDP10-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +PDP11 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)PDP11-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP11_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP11-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP11_LIB1)/LIBRARY,$(PDP11_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +PDP15 : $(SIMH_LIB) $(PDP15_LIB) + $! + $! Building The $(BIN_DIR)PDP15-$(ARCH).EXE Simulator. + $! + $ $(CC)$(PDP15_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)PDP15-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(PDP15_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +S3 : $(SIMH_LIB) $(S3_LIB) + $! + $! Building The $(BIN_DIR)S3-$(ARCH).EXE Simulator. + $! + $ $(CC)$(S3_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)S3-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(S3_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +SDS : $(SIMH_LIB) $(SDS_LIB) + $! + $! Building The $(BIN_DIR)SDS-$(ARCH).EXE Simulator. + $! + $ $(CC)$(SDS_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)SDS-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX : $(SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(VAX_LIB)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX780 : $(SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) + $! + $! Building The $(BIN_DIR)VAX780-$(ARCH).EXE Simulator. + $! + $ $(CC)$(VAX780_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- + /EXE=$(BIN_DIR)VAX780-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,- + $(VAX780_LIB1)/LIBRARY,$(VAX780_LIB2)/LIBRARY,- + $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +# +# If Not On VAX, Build The IBM 7094 Simulator. +# +.IF ALPHA_OR_IA64 +I7094 : $(SIMH_LIB) $(I7094_LIB) + $! + $! Building The $(BIN_DIR)I7094-$(ARCH).EXE Simulator. + $! + $ $(CC)$(I7094_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)I7094-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(I7094_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ELSE +# +# Else We Are On VAX And Tell The User We Can't Build On VAX +# Due To The Use Of INT64. +# +I7094 : + $! Sorry, Can't Build $(BIN_DIR)I7094-$(ARCH).EXE Simulator + $! Because It Requires The Use Of INT64. +.ENDIF + +# +# PCAP VCI Components +# +$(PCAP_VCI) : $(PCAP_VCMDIR)PCAPVCM.EXE + $! + $! Installing the PCAP VCI Execlet in SYS$LOADABLE_IMAGES + $! + $ COPY $(PCAP_VCMDIR)PCAPVCM.EXE SYS$COMMON:[SYS$LDR]PCAPVCM.EXE + +$(PCAP_VCMDIR)PCAPVCM.EXE : $(PCAP_VCM_SOURCES) + $! + $! Building The PCAP VCI Execlet + $! + $ @SYS$DISK:[.PCAP-VMS.PCAPVCM]BUILD_PCAPVCM + $ DELETE/NOLOG/NOCONFIRM $(PCAP_VCMDIR)*.OBJ;*,$(PCAP_VCMDIR)*.MAP;* diff --git a/samples/Module Management System/spline_descrip.mms b/samples/Module Management System/spline_descrip.mms new file mode 100644 index 00000000..2f81cdb0 --- /dev/null +++ b/samples/Module Management System/spline_descrip.mms @@ -0,0 +1,31 @@ +! +! $Id: descrip.mms 35 2008-01-08 21:37:42Z tmr $ +! +! Project: LISP -- The LISP Interpreter +! Created: 22-DEC-2008 18:35 +! Author: tmr + +cc = cc +cflags = /define="_VMS_=1" - +/WARN=DISABLE=(ZERODIV,FLOATOVERFL,NOMAINUFLO) - +/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE +core = LISP_CORE +main = LISP_MAIN +exec = [.bin]LISP +clib = SYS$LIBRARY:VAXCRTL +head = LISP_CORE +objs = $(core).obj, $(main).obj + +$(exec) : $(objs) + DEFINE/NOLOG LNK$LIBRARY $(clib) + LINK/EXEC=$(exec) $(objs) + DEASSIGN LNK$LIBRARY + +$(core).obj : $(core).c, $(head).h + +$(main).obj : $(main).c, $(head).h + +clean : + del *.obj;* + del *.exe;* + diff --git a/samples/Module Management System/xv_makefile.mms b/samples/Module Management System/xv_makefile.mms new file mode 100644 index 00000000..b419dd80 --- /dev/null +++ b/samples/Module Management System/xv_makefile.mms @@ -0,0 +1,271 @@ +# MMS Description file for xv +# Written by Rick Dyson (dyson@iowasp.physics.uiowa.edu) +# Last Modified: 30-APR-1992 for v2.21 +# 5-OCT-1992 for v2.21 (export.lcs.mit.edu version +# of xv-2.21 seemed to change about +# 25-Sep-1992 without version number +# changing. +# 8-FEB-1993 for v2.21b +# ALPHA support is in ALPHA.MMS +# 2-MAR-1993 for v3.00 +# 15-APR-1993 for v3.00 (DEC C changes) +# 25-MAY-1993 merged ALPHA.MMS and MAKEFILE.MMS +# 27-APR-1994 for v3.01 +# 23-DEC-1994 for v3.10 +# +# Modeled after the original Unix Makefile for xv +# Most of the Unix comments have been left intact to help debug any +# problems. + + +# BE SURE TO SET THIS TO YOUR SITE'S DESTINATION DIRECTORY...!!! +BINDIR = Sys$Disk:[] + +# your C compiler (and options) of choice +# Remember: if you change the C compiler (to gcc, or whatever), be sure to +# do the same thing to the Makefile in the 'jpeg' and 'tiff' subdirectories +# +# For ALPHA/DEC C users, you must add a MACRO qualifier to the +# command line, i.e., +# MMS /Description = Makefile.mms /Macro = ("ALPHA=1") +# +# For VAX/DEC C users, you must add a MACRO qualifier to the +# command line, i.e., +# MMS /Description = Makefile.mms /Macro = ("DECC=1") +# +# Users still using the non-MOTIF DECWindows (i.e., XUI) should also +# add another macro of "DEC_XUI=1" + +CC = cc + + +################ CONFIGURATION OPTIONS ################# + +# if, for whatever reason, you're unable to get the JPEG library to compile +# on your machine, *COMMENT OUT* the following lines. +# +# Also, comment out the JPEGLIB dependancy below. +# +# VMS MMS USERS!!! +# +# if you don't use the JPEG package as supplied with XV, you +# will need fill in the complete directory specifications for JPEGDIR. +# +JPEG = ,HAVE_JPEG +JPEGDIR = [.JPEG] +JPEGLIB = $(JPEGDIR)LIBJPEG.OLB +JPEGINCLUDE = ,$(JPEGDIR) + + +# if, for whatever reason, you're unable to get the TIFF library to compile +# on your machine, *COMMENT OUT* the following lines +# +# Also, comment out the LIBTIFF dependancy at the end of this Makefile +# +# if you don't use the TIFF package as supplied with XV, you +# will need to fill in the complete directory specifications for TIFFDIR. +# +TIFF = ,HAVE_TIFF +TIFFDIR = [.TIFF] +TIFFLIB = $(TIFFDIR)LIBTIFF.OLB +TIFFINCLUDE = ,$(TIFFDIR) + + +# if, for whatever reason, you're unable to get the PDS/VICAR support +# to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, +# and also remove 'vdcomp' from the 'all:' dependancy +PDS = ,HAVE_PDS + + +# If you are still using the DECWindows XUI interface, uncomment the +# next line. This will help stop the "window creep" problem with this +# window mananager +.ifdef DEC_XUI +XUI = ,HAVE_XUI +.endif + +DEFS = /Define = (VMS$(JPEG)$(PDS)$(TIFF)$(TIMERS)$(XUI)) +INCS = /Include = ([]$(JPEGINCLUDE)$(TIFFINCLUDE)) + +.ifdef ALPHA +OPTIMIZE = /Optimize /Standard = VAXC +OPTS = Sys$Disk:[]DECC_OPTIONS.OPT +.else +.ifdef DECC +OPTIMIZE = /Optimize /Standard = VAXC /Warnings = NoInformationals +OPTS = Sys$Disk:[]DECC_OPTIONS.OPT +.else +OPTIMIZE = /Optimize +OPTS = Sys$Disk:[]VAXC_OPTIONS.OPT +.endif +.endif +DEBUG = /NoDebug + +CFLAGS = $(CFLAGS) $(DEFS) $(INCS) $(DEBUG) $(OPTIMIZE) +LINKFLAGS = $(LINKFLAGS) $(DEBUG) + +XVLIB = LIBXV.OLB + +OBJS = xv.obj,xvevent.obj,xvroot.obj,xvmisc.obj,xvimage.obj,xvcolor.obj, \ + xvsmooth.obj,xv24to8.obj,xvgif.obj,xvpm.obj,xvinfo.obj,xvctrl.obj, \ + xvscrl.obj,xvalg.obj,xvgifwr.obj,xvdir.obj,xvbutt.obj,xvpbm.obj, \ + xvxbm.obj,xvgam.obj,xvbmp.obj,xvdial.obj,xvgraf.obj,xvsunras.obj, \ + xvjpeg.obj,xvps.obj,xvpopup.obj,xvdflt.obj,xvtiff.obj,xvtiffwr.obj, \ + xvpds.obj,xvrle.obj,xviris.obj,xvgrab.obj,xvbrowse.obj,xviff.obj, \ + xvtext.obj,xvpcx.obj,xvtarga.obj,xvxpm.obj,xvcut.obj,xvxwd.obj, \ + xvfits.obj,vms.obj + + +BITS = [.Bits]annot.h + +MISC = readme. changelog. ideas. + +.first +.ifdef ALPHA + @- Define /NoLog Sys DECC$Library_Include +.else +.ifdef DECC + @- Define /NoLog Sys DECC$Library_Include +.else + @- Define /NoLog Sys Sys$Library +.endif + @- Define /NoLog X11 DECW$Include + @- XVDIR = F$Environment ("Default") +.endif + +all : $(BITS) $(OPTS) lib xv bggen decompress xcmap xvpictoppm help + ! All Finished with the VMS build of XV (v3.10) + +lib : $(JPEGLIB) $(TIFFLIB) $(XVLIB) + @ Continue + +xv : xv.exe + @ Continue + +bggen : bggen.exe + @ Continue + +xcmap : xcmap.exe + @ Continue + +xvpictoppm : xvpictoppm.exe + @ Continue + +help : xv.hlb + @ Continue + +decompress : decompress.exe vdcomp.exe + @ Continue + +bggen.exe : bggen.obj $(XVLIB) $(OPTS) + $(LINK) $(LINKFLAGS) bggen.obj,$(XVLIB)/Library,$(OPTS)/Option + +xcmap.exe : xcmap.obj + $(LINK) $(LINKFLAGS) xcmap.obj,$(XVLIB)/Library,$(OPTS)/Option + +xvpictoppm.exe : xvpictoppm.obj + $(LINK) $(LINKFLAGS) xvpictoppm.obj,$(XVLIB)/Library,$(OPTS)/Option + +xv.exe : xv.obj $(XVLIB) $(JPEGLIB) $(TIFFLIB) $(OPTS) + $(LINK) $(LINKFLAGS) xv.obj,$(XVLIB)/Library,$(JPEGLIB)/Library,$(TIFFLIB)/Library,$(OPTS)/Option + +$(JPEGLIB) : + Set Default $(JPEGDIR) +.ifdef ALPHA + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBJPEG.OLB +.else + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBJPEG.OLB +.endif + Set Default 'XVDIR' + +$(TIFFLIB) : + Set Default $(TIFFDIR) +.ifdef ALPHA + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB +.else +.ifdef DECC + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB +.else + $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBTIFF.OLB +.endif +.endif + Set Default 'XVDIR' + +$(XVLIB) : $(OBJS) + If "''F$Search ("$(XVLIB)")'" .eqs. "" Then Library /Create $(XVLIB) + Library /Replace $(XVLIB) $(OBJS) + +decompress.exe : decompress.obj + $(LINK) $(LINKFLAGS) decompress.obj,$(OPTS)/Option + +vdcomp.exe : vdcomp.obj + $(LINK) $(LINKFLAGS) vdcomp.obj,$(OPTS)/Option + +[.Bits]annot.h : + Set Default [.Bits] + Set Protection = Owner:RWED *. + Rename *. *.H + Set Protection = Owner:RWE *.H + Set Default [-] + +# various dependencies +$(OBJS) : xv.h config.h +xv.hlb : xv.hlp +vms.obj : includes.h dirent.h + +# +# Build the linker options file for OpenVMS VAX and VAX C. +# +Sys$Disk:[]VAXC_Options.opt : + @ Open /Write TMP VAXC_Options.opt + @ Write TMP "! XV (v3.10) Linker Options list for VMS VAX C" + @ Write TMP "!" + @ Write TMP "Sys$Disk:[]LibXV.OLB /Library" + @ Write TMP "Sys$Disk:[.JPEG]LibJPEG.OLB /Library" + @ Write TMP "Sys$Disk:[.TIFF]LibTIFF.OLB /Library" +.ifdef DEC_XUI + @ Write TMP "!" + @ Write TMP "! These were appropriate for VAX C and XUI in the past." + @ Write TMP "Sys$Library:DECW$DWTLibShr.exe /Share + @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share + @ Write TMP "!You may need the next line for VAX C (v3.2-044)" + @ Write TMP "!But you don't for DEC C (v4.0-000)" + @ Write TMP "Sys$Library:VAXCRTL.EXE /Share" +.else + @ Write TMP "!" + @ Write TMP "! Some of the following libraries may not be available on" + @ Write TMP "! older systems, namely XUI or Motif v1.0/1.1" + @ Write TMP "! I know they are available for OpenVMS v6.1/Motif v1.2." + @ Write TMP "! If you get a report that they can't be found," + @ Write TMP "! comment them out and try again..." + @ Write TMP "Sys$Library:DECW$DXMLibShr12.exe /Share + @ Write TMP "Sys$Library:DECW$XMLibShr12.exe /Share + @ Write TMP "Sys$Library:DECW$XTLibShrR5.exe /Share" + @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share +.endif + @ Close TMP + +Sys$Disk:[]DECC_Options.opt : + @ Open /Write TMP DECC_Options.opt + @ Write TMP "! XV (v3.10) Linker Options list for VMS DEC C" + @ Write TMP "!" + @ Write TMP "Sys$Disk:[]LibXV.olb /Library" + @ Write TMP "Sys$Disk:[.JPEG]LibJPEG.olb /Library" + @ Write TMP "Sys$Disk:[.TIFF]LibTIFF.olb /Library" + @ Write TMP "Sys$Library:DECW$XTShr.exe /Share" + @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share" + @ Close TMP + +install : xv.exe vdcomp.exe bggen.exe decompress.exe + Copy *.exe $(BINDIR) + +clean : + @- Set Protection = Owner:RWED *.obj,*.*;-1 + - Delete /NoConfirm /NoLog *.obj;*,*.exe;*,*.log;*,*.olb;*,*.hlb;* + - Purge /NoConfirm /NoLog + Set Default [.JPEG] + $(MMS) /Description = MAKEFILE.MMS clean + - Delete /NoConfirm /NoLog *.olb;* + Set Default [-.TIFF] + $(MMS) /Description = MAKEFILE.MMS clean + Set Default [-] diff --git a/samples/NCL/PrnOscPat_driver.ncl b/samples/NCL/PrnOscPat_driver.ncl new file mode 100644 index 00000000..9a4ba134 --- /dev/null +++ b/samples/NCL/PrnOscPat_driver.ncl @@ -0,0 +1,109 @@ +undef("PrnOscPat_driver") +function PrnOscPat_driver(eof[*][*][*]:numeric, eof_ts[*][*]:numeric, kPOP[1]:integer) +; ================================================================= +; compute Principal Oscillation Patterns (POPs) +; ================================================================= +local dim_ts, dim_eof, neof, ntim, nlat, mlon, dnam_ts, dnam_eof, neof, j \ + , cov0, cov1, cov0_inverse, A, z, Z, pr, pi, zr, zi, mean, stdev \ + , evlr, eigi, eigr +begin + + dim_ts = dimsizes(eof_ts) ; (neof,ntim) + dim_eof = dimsizes(eof) ; (neof,nlat,mlon) + + ntim = dim_ts(1) + neof = dim_eof(0) + nlat = dim_eof(1) + mlon = dim_eof(2) + + dnam_ts = getvardims(eof_ts) ; dimension names + dnam_eof= getvardims(eof) ; used at end for meta data + +; ================================================================= +; lag-0 and lag-1 matrices +; ================================================================= + + if (get_ncl_version().eq."6.1.2") then ; bug in 6.1.2 + cov0 = covcorm(eof_ts,(/1,0/)) ; lag-0 covariance matrix + else + cov0 = covcorm(eof_ts,(/0,1/)) ; lag-0 covariance matrix (n x n) + end if + ; either + cov1 = covcorm_xy(eof_ts, eof_ts, (/0,1,0/)) ; lag-1 + ;cov1 = covcorm_xy(eof_ts(:,0:ntim-2) \ ; alternative, brute force + ; ,eof_ts(:,1:ntim-1), (/0,0,0/)) + ;printVarSummary(cov1) + +; ================================================================= +; matrix A contains information for evolution of the POP system. +; POPs are eigenvectors of A. +; ================================================================= + + cov0_inverse = inverse_matrix(cov0) + A = cov1#inverse_matrix(cov0) ; [*][*] => neof x neof + +; ================================================================= +; NCL 6.1.1 of dgeevx: evlr(2,2,N,N) ; (left(0)/right(1), real(0)/imag(1),:,:) +; Eigenvalues are returned as attributes: eigi = evlr@eigi ; eigr = evlr@eigr +; ================================================================= + + evlr = dgeevx_lapack(A, "B", "V", "V", "B", False) + +; ================================================================= +; POP time series from eigenvalues and right eigenvectors +; ================================================================= + ;PR = (/ evlr(1,0,:,:) /) ; right ev (1), real part (0) + ;PI = (/ evlr(1,1,:,:) /) ; right ev (1), imag part (1) + ; kPOP is what we want; use righteigenvector + pr = (/ evlr(1,0,kPOP-1,:) /) ; right ev (1), real part (0), row 'kPOP-1' + pi = (/ evlr(1,1,kPOP-1,:) /) ; right ev (1), imag part (1), row 'kPOP-1' + + z = inverse_matrix( (/ (/sum(pr*pr), sum(pr*pi)/) \ + , (/sum(pr*pi), sum(pi*pi)/) /))#(/pr,pi/)#eof_ts + + ; complex conjugate + z = (/z(0,:), -z(1,:)/) ; real & imag series + z = dim_rmvmean_n(z,1) + mean = dim_avg_n(z,1) ; calculate mean + stdev= dim_stddev_n(z,1) ; calculate stdev + z = dim_standardize_n(z,1,1) ; standardize time series + + z!0 = "nPOP" ; add meta data + z!1 = dnam_ts(1) + z&nPOP = (/0,1/) + z&$dnam_ts(1)$ = eof_ts&$dnam_ts(1)$ + z@stdev = stdev + z@mean = mean + z@long_name = "POP timeseries" + ;printVarSummary(z) + +; ================================================================= +; POP spatial patterns +; ================================================================= + + zr = pr(0)*eof(0,:,:) ; construct POP spatial domain + zi = pi(0)*eof(0,:,:) + do j=1,neof-1 + zr = zr + pr(j)*eof(j,:,:) + zi = zi + pi(j)*eof(j,:,:) + end do + + Z = (/zr*stdev(0), -zi*stdev(1)/) ; scale patterns by time series stdev + + Z!0 = "nPOP" ; add meta data + Z!1 = dnam_eof(1) + Z!2 = dnam_eof(2) + + Z&nPOP = (/0,1/) + Z&$dnam_eof(1)$ = eof&$dnam_eof(1)$ + Z&$dnam_eof(2)$ = eof&$dnam_eof(2)$ + Z@long_name = "POP pattern" + ;printVarSummary(Z) + +; ================================================================= +; return POP time series and POP spatial patterns as a +; variable of type 'list' which contains 2 variables +; ================================================================= + + return( [/z, Z/] ) ; this is type "list" +end diff --git a/samples/NCL/WRF_static_2.ncl b/samples/NCL/WRF_static_2.ncl new file mode 100644 index 00000000..3f2eefd6 --- /dev/null +++ b/samples/NCL/WRF_static_2.ncl @@ -0,0 +1,115 @@ +;************************************************* +; WRF static: panel different variables +;************************************************ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRF_contributed.ncl" +begin +;************************************************ +; open file and read in data +;************************************************ + f = addfile("static.wrfsi.nc", "r") +;************************************************ +; Read variables +;************************************************ + use = f->use(0,0,:,:) ; land use dominant category + stl = f->stl(0,0,:,:) ; top layer (0-30cm) dom cat soiltype + sbl = f->sbl(0,0,:,:) ; bottom layer (30-90cm) dom cat soiltype + lat2d = f->lat(0,0,:,:) + lon2d = f->lon(0,0,:,:) + lsMask= f->lnd(0,0,:,:) ; land (1) water (0) mas + +;************************************************ +; Use mask function to set all ocean areas to _FillValue +;************************************************ + use = mask(use,lsMask,1) + stl = mask(stl,lsMask,1) + sbl = mask(sbl,lsMask,1) + +;************************************************ +; Associate 2D coordinates with variables for plotting +;************************************************ + use@lat2d = lat2d + use@lon2d = lon2d + stl@lat2d = lat2d + stl@lon2d = lon2d + sbl@lat2d = lat2d + sbl@lon2d = lon2d + +;************************************************ +; The file should be examined via: ncdump -v grid_type static.wrsi +; This will print the print type. then enter below. +;************************************************ + projection = "mercator" + +;************************************************ +; create plots +;************************************************ + wks = gsn_open_wks("ps" ,"WRF_static") ; ps,pdf,x11,ncgm,eps + gsn_define_colormap(wks ,"BlAqGrYeOrReVi200"); choose colormap + + res = True ; plot mods desired + res@gsnSpreadColors = True ; use full range of colormap + res@cnFillOn = True ; color plot desired + res@cnLinesOn = False ; turn off contour lines + res@cnLineLabelsOn = False ; turn off contour labels + res@cnLevelSpacingF = 1 ; manually specify interval + res@cnFillMode = "RasterFill" ; activate raster mode + res@lbLabelAutoStride = True ; let NCL figure lb stride + +;************************************************ +; Turn on lat / lon labeling +;************************************************ +;;res@pmTickMarkDisplayMode = "Always" ; turn on tickmarks + + dimll = dimsizes(lat2d) + nlat = dimll(0) + mlon = dimll(1) + + res@mpProjection = projection + res@mpLimitMode = "Corners" + res@mpLeftCornerLatF = lat2d(0,0) + res@mpLeftCornerLonF = lon2d(0,0) + res@mpRightCornerLatF = lat2d(nlat-1,mlon-1) + res@mpRightCornerLonF = lon2d(nlat-1,mlon-1) + + res@mpCenterLonF = f->LoV ; set center logitude + + if (projection.eq."LambertConformal") then + res@mpLambertParallel1F = f->Latin1 + res@mpLambertParallel2F = f->Latin2 + res@mpLambertMeridianF = f->LoV + end if + + res@mpFillOn = False ; turn off map fill + res@mpOutlineDrawOrder = "PostDraw" ; draw continental outline last + res@mpOutlineBoundarySets = "GeophysicalAndUSStates" ; state boundaries + +;;res@tfDoNDCOverlay = True ; True only for 'native' grid + res@gsnAddCyclic = False ; data are not cyclic + +;************************************************ +; allocate array for 3 plots +;************************************************ + plts = new (3,"graphic") + +;************************************************ +; Tell NCL not to draw or advance frame for individual plots +;************************************************ + res@gsnDraw = False ; (a) do not draw + res@gsnFrame = False ; (b) do not advance 'frame' + + plts(0) = gsn_csm_contour_map(wks,use,res) + plts(1) = gsn_csm_contour_map(wks,stl,res) + plts(2) = gsn_csm_contour_map(wks,sbl,res) +;************************************************ +; create panel: panel plots have their own set of resources +;************************************************ + resP = True ; modify the panel plot + resP@txString = "Land Use and Soil Type" + resP@gsnMaximize = True ; maximize panel area + resP@gsnPanelRowSpec = True ; specify 1 top, 2 lower level + gsn_panel(wks,plts,(/1,2/),resP) ; now draw as one plot + +end + diff --git a/samples/NCL/WRF_track_1.ncl b/samples/NCL/WRF_track_1.ncl new file mode 100644 index 00000000..9d818519 --- /dev/null +++ b/samples/NCL/WRF_track_1.ncl @@ -0,0 +1,160 @@ +;******************************************************** +; Plot storm stracks from wrfout files. +;******************************************************** +; +; JUN-18-2005 +; So-Young Ha (MMM/NCAR) +; SEP-01-2006 +; Slightly modified by Mary Haley to add some extra comments. +; =========================================== + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRF_contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" + + +begin + +; DATES + date = (/1512,1600,1612,1700,1712,1800,1812,1900/) + ndate = dimsizes(date) + + sdate = sprinti("%4.0i",date) + +; Experiment name (for legend) + EXP = (/"EXP_I"/) ; (/"EXP_I","EXP_II","EXP_III"/) + nexp = dimsizes(EXP) + +; To get lat/lon info. + + a = addfile("wrfout_d01_2003-07-15_00:00:00.nc","r") + + lat2d = a->XLAT(0,:,:) + lon2d = a->XLONG(0,:,:) + dimll = dimsizes(lat2d) + nlat = dimll(0) + mlon = dimll(1) + +; Sea Level Pressure + slp = wrf_user_getvar(a,"slp",0) + dims = dimsizes(slp) + +; Array for track + time = new(ndate,string) + imin = new(ndate,integer) + jmin = new(ndate,integer) + smin = new(ndate,integer) + +; ======= +; ndate +; ======= + fs = systemfunc("ls wrfout*00") + nfs= dimsizes(fs) + if(nfs .ne. ndate) then + print("Check input data:"+nfs+" .ne. "+ndate) + end if + + do ifs=0,nfs-1 + f = addfile(fs(ifs)+".nc","r") + time(ifs) = wrf_user_list_times(f) +; print(time(ifs)) + slp2d = wrf_user_getvar(f,"slp",0) + +; We need to convert 2-D array to 1-D array to find the minima. + slp1d = ndtooned(slp2d) + smin(ifs) = minind(slp1d) + +; Convert the index for 1-D array back to the indeces for 2-D array. + minij = ind_resolve(ind(slp1d.eq.min(slp2d)),dims) + imin(ifs) = minij(0,0) + jmin(ifs) = minij(0,1) + +; print(time(ifs)+" : "+min(slp2d)+" ("+imin(ifs)+","+jmin(ifs)+")") + end do +; + +; Graphics section + + wks=gsn_open_wks("ps","track") ; Open PS file. + gsn_define_colormap(wks,"BlGrYeOrReVi200") ; Change color map. + + res = True + res@gsnDraw = False ; Turn off draw. + res@gsnFrame = False ; Turn off frame advance. + res@gsnMaximize = True ; Maximize plot in frame. + + res@tiMainString = "Hurricane Isabel" ; Main title + + WRF_map_c(a,res,0) ; Set up map resources + ; (plot options) + plot = gsn_csm_map(wks,res) ; Create a map. + +; Set up resources for polymarkers. + gsres = True + gsres@gsMarkerIndex = 16 ; filled dot + ;gsres@gsMarkerSizeF = 0.005 ; default - 0.007 + cols = (/5,160,40/) + +; Set up resources for polylines. + res_lines = True + res_lines@gsLineThicknessF = 3. ; 3x as thick + + dot = new(ndate,graphic) ; Make sure each gsn_add_polyxxx call + line = new(ndate,graphic) ; is assigned to a unique variable. + +; Loop through each date and add polylines to the plot. + do i = 0,ndate-2 + res_lines@gsLineColor = cols(0) + xx=(/lon2d(imin(i),jmin(i)),lon2d(imin(i+1),jmin(i+1))/) + yy=(/lat2d(imin(i),jmin(i)),lat2d(imin(i+1),jmin(i+1))/) + line(i) = gsn_add_polyline(wks,plot,xx,yy,res_lines) + end do + + lon1d = ndtooned(lon2d) + lat1d = ndtooned(lat2d) + +; Loop through each date and add polymarkers to the plot. + do i = 0,ndate-1 + print("dot:"+lon1d(smin(i))+","+lat1d(smin(i))) + gsres@gsMarkerColor = cols(0) + dot(i)=gsn_add_polymarker(wks,plot,lon1d(smin(i)),lat1d(smin(i)),gsres) + end do + +; Date (Legend) + txres = True + txres@txFontHeightF = 0.015 + txres@txFontColor = cols(0) + + txid1 = new(ndate,graphic) +; Loop through each date and draw a text string on the plot. + do i = 0, ndate-1 + txres@txJust = "CenterRight" + ix = smin(i) - 4 + print("Eye:"+ix) + if(i.eq.1) then + txres@txJust = "CenterLeft" + ix = ix + 8 + end if + txid1(i) = gsn_add_text(wks,plot,sdate(i),lon1d(ix),lat1d(ix),txres) + end do + +; Add marker and text for legend. (Or you can just use "pmLegend" instead.) + txres@txJust = "CenterLeft" + + txid2 = new(nexp,graphic) + pmid2 = new(nexp,graphic) + do i = 0,nexp-1 + gsres@gsMarkerColor = cols(i) + txres@txFontColor = cols(i) + ii = ((/129,119,109/)) ; ilat + jj = ((/110,110,110/)) ; jlon + ji = ii*mlon+jj ; col x row + pmid2(i) = gsn_add_polymarker(wks,plot,lon1d(ji(i)),lat1d(ji(i)),gsres) + txid2(i) = gsn_add_text(wks,plot,EXP(i),lon1d(ji(i)+5),lat1d(ji(i)),txres) + end do + + draw(plot) + frame(wks) +end diff --git a/samples/NCL/cru_8.ncl b/samples/NCL/cru_8.ncl new file mode 100644 index 00000000..465a9f85 --- /dev/null +++ b/samples/NCL/cru_8.ncl @@ -0,0 +1,129 @@ +;***************************************************** +; cru_8.ncl +; +; Concepts illustrated: +; - Plotting CRU (Climate Research Unit)/ BADC data +; - Selecting a sub-period +; - calculating a climatology +; - Drawing raster contours; very basic graphics +; +;***************************************************** + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" ; not needed 6.20 onward +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + +; create references (pointers) to the files + + diri = "./" + fcld = addfile(diri+"cru_ts3.21.1901.2012.cld.dat.nc", "r") + fdtr = addfile(diri+"cru_ts3.21.1901.2012.dtr.dat.nc", "r") + ffrs = addfile(diri+"cru_ts3.21.1901.2012.frs.dat.nc", "r") + fpet = addfile(diri+"cru_ts3.21.1901.2012.pet.dat.nc", "r") + fpre = addfile(diri+"cru_ts3.21.1901.2012.pre.dat.nc", "r") + ftmn = addfile(diri+"cru_ts3.21.1901.2012.tmn.dat.nc", "r") + ftmp = addfile(diri+"cru_ts3.21.1901.2012.tmp.dat.nc", "r") + ftmx = addfile(diri+"cru_ts3.21.1901.2012.tmx.dat.nc", "r") + fvap = addfile(diri+"cru_ts3.21.1901.2012.vap.dat.nc", "r") + fwet = addfile(diri+"cru_ts3.21.1901.2012.wet.dat.nc", "r") + +; specify start & last dates (arbitrary) + + ymStrt = 199101 + ymLast = 200012 + +; get index values of start/lat dates + + time = fcld->time + yyyymm = cd_calendar(time, -1) + + ntStrt = ind(yyyymm.eq.ymStrt) ; index values + ntLast = ind(yyyymm.eq.ymLast) + +; read time segment + + cld = fcld->cld(ntStrt:ntLast,:,:) + dtr = fdtr->dtr(ntStrt:ntLast,:,:) + frs = ffrs->frs(ntStrt:ntLast,:,:) + pet = fpet->pet(ntStrt:ntLast,:,:) + pre = fpre->pre(ntStrt:ntLast,:,:) + tmn = ftmn->tmn(ntStrt:ntLast,:,:) + tmp = ftmp->tmp(ntStrt:ntLast,:,:) + tmx = ftmx->tmx(ntStrt:ntLast,:,:) + vap = fvap->vap(ntStrt:ntLast,:,:) + wet = fwet->wet(ntStrt:ntLast,:,:) + + printVarSummary(cld) ; [time | 120] x [lat | 360] x [lon | 720] + +; calculate monthly climatologies + + cldclm = clmMonTLL(cld) + dtrclm = clmMonTLL(dtr) + frsclm = clmMonTLL(frs) + petclm = clmMonTLL(pet) + preclm = clmMonTLL(pre) + tmnclm = clmMonTLL(tmn) + tmpclm = clmMonTLL(tmp) + tmxclm = clmMonTLL(tmx) + vapclm = clmMonTLL(vap) + wetclm = clmMonTLL(wet) + + + printVarSummary(cldclm) ; [month | 12] x [lat | 360] x [lon | 720] + +;************************************ +; create plots ... very simple +;************************************ + + nt = 6 + month = "July" + yrStrt = ymStrt/100 + yrLast = ymLast/100 + title = month+": "+yrStrt+"-"+yrLast + + wks = gsn_open_wks("ps","cru") ; open a ps file + gsn_define_colormap(wks,"ncl_default") ; choose colormap; not needed 6.20 onward + plot = new(2,graphic) ; create graphic array + + res = True + res@cnFillOn = True ; turn on color fill; not needed 6.20 onward + res@cnFillMode = "RasterFill" ; Raster Mode + res@cnLinesOn = False ; Turn off contour lines + + res@gsnDraw = False ; do not draw picture + res@gsnFrame = False ; do not advance frame + res@lbOrientation = "Vertical" ; vertical label bar + + resp = True + resp@gsnMaximize = True ; make ps, eps, pdf large + + resp@txString = title+": CLD, FRS" + plot(0)=gsn_csm_contour_map_ce(wks,cldclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,frsclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": PET, VAP" + plot(0)=gsn_csm_contour_map_ce(wks,petclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,vapclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": TMN, TMX" + plot(0)=gsn_csm_contour_map_ce(wks,tmnclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,tmxclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": TMP, DTR" + plot(0)=gsn_csm_contour_map_ce(wks,tmpclm(nt,:,:),res) + plot(1)=gsn_csm_contour_map_ce(wks,dtrclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) + + resp@txString = title+": WET, PRE" + plot(0)=gsn_csm_contour_map_ce(wks,wetclm(nt,:,:),res) + + ;colors = (/ ... /) + ;res@cnFillPalette = colors ; optional: distinct colors for categories + res@cnLevelSelectionMode = "ExplicitLevels" ; use unequal spacing + res@cnLevels = (/2.0,10,25,37.5,50,75,100,125,150,175,200,300,400,500,750/) + + plot(1)=gsn_csm_contour_map_ce(wks,preclm(nt,:,:),res) + gsn_panel(wks,plot,(/2,1/),resp) diff --git a/samples/NCL/gsn_csm_xy2_time_series_inputs.ncl b/samples/NCL/gsn_csm_xy2_time_series_inputs.ncl new file mode 100644 index 00000000..4efe39ab --- /dev/null +++ b/samples/NCL/gsn_csm_xy2_time_series_inputs.ncl @@ -0,0 +1,20 @@ +;******************** Inputs Regarding Input and Output Data ************************************* + +;netCDFFilePath = "NULL-MYD04_L2.051-MIL2ASAE.0022-AERONET_AOD_L2.2-20112106165049.nc" +;outputFilePath = "plot-output" + +;******************* Inputs Regarding Data Structure *********************************************** + +;lPlotVariablesList = "mean_AERONET_AOD_L2_2_AOD0558intrp_Ames,mean_MIL2ASAE_0022_AOD0866b_Ames" +;rPlotVariablesList = "medn_MYD04_L2_051_AOD0550dpbl_l_Ames" + +;xDimName = "time" +;xDimSize = 365 + +;******************* Inputs Regarding the View Annotations **************************************** + +;title = "MAPSS Time Series" +;yLAxisLabel = "Mean AOD" +;yRAxisLabel = "Median AOD" + +;*******************END INPUTS ******************************************************************** \ No newline at end of file diff --git a/samples/NCL/hdf4sds_7.ncl b/samples/NCL/hdf4sds_7.ncl new file mode 100644 index 00000000..f3aeff77 --- /dev/null +++ b/samples/NCL/hdf4sds_7.ncl @@ -0,0 +1,128 @@ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +;************************************************************** +; User Input +;*************************************************************** + ; INPUT + diri = "./" ; input directory + fili = "wv_LV3_MET08_20050102_12345678_L00013712E00013712.hdf" + + pltDir = "./" ; directory for plot output + sfx = get_file_suffix(fili,1) + ;pltName = sfx@fBase ; output graphic name + pltName = "hdf4sds" + pltType = "ps" + +;*************************************************************** +; End User Input +;*************************************************************** + +;*************************************************************** +; Open SEVIRI L3 'wv' HDF file +;*************************************************************** +; Note the rather unusual data format: flag *prepended* to data value +;*************************************************************** +; integer twc_lv3 ( fakeDim0, fakeDim1 ) +; long_name : total water vapour column + flag +; units : fmmmm +; format : I4 +; valid_range : ( 10000, 38000 ) +; _FillValue : -99 +; legend_01 : f = flag +; legend_02 : f = 1 averaged level 2 values +; legend_03 : f = 2 interpolated from averaged level 2 values +; legend_04 : f = 3 gaps filled with NVAP climatology +; legend_05 : mmmm = water vapour column in mm * 100. as integer +; legend_06 : Example: 11025 means: flag = 1, 10.25 mm water vapour column +; min_lat : -74.75 +; max_lat : 61.75 +; min_lon : -75.25 +; max_lon : 75.25 +; dlat : 0.5 +; dlon : 0.5 +;--------------------------------------------------------------- + + f = addfile (diri+fili, "r") + ifx = f->twc_lv3 ; fmmmm (integer) + printVarSummary(ifx) + + flag = ifx/10000 ; extract flag + ix = ifx - flag*10000 ; extract mmmm + x = ix*0.01 ; scale + +; create meta data for 'x' + + dimx = dimsizes(x) + nlat = dimx(0) ; grid size x(nlat,mlon) + mlon = dimx(1) + + lat = fspan(ifx@min_lat, ifx@max_lat, nlat) + lat@units = "degrees_north" + lon = fspan(ifx@min_lon, ifx@max_lon, mlon) + lon@units = "degrees_east" + + x!0 = "lat" + x!1 = "lon" + x&lat = lat + x&lon = lon + x@long_name = "SEVIRI: Total Water Vapor" + x@units = "mm" + + delete( [/ifx, ix/] ) ; no longer needed + +;*************************************************************** +; Create plot +;*************************************************************** + wks = gsn_open_wks(pltType, pltDir+pltName) + + plot = new (2, "graphic") + + res = True ; plot mods desired + res@gsnAddCyclic = False ; data noty global + res@gsnDraw = False + res@gsnFrame = False + + res@cnFillOn = True ; turn on color fill + res@cnLinesOn = False ; turn of contour lines + res@cnFillMode = "RasterFill" ; Raster Mode + res@cnLinesOn = False ; Turn off contour lines + res@cnLineLabelsOn = False ; Turn off contour lines + res@cnMissingValFillColor= "background" ; "foreground" + + res@mpCenterLonF = 0.5*(min(x&lon) + max(x&lon)) + res@mpMinLatF = min(x&lat) + res@mpMaxLatF = max(x&lat) + res@mpMinLonF = min(x&lon) + res@mpMaxLonF = max(x&lon) + + ;res@lbOrientation = "Vertical" + + plot(0) = gsn_csm_contour_map_ce(wks,x, res) + +; plot flag + + copy_VarCoords(x, flag) + flag@long_name = "Flag" + flag@units = "1=avg(L2), 2=int(L2), 3=NVAP" + print(flag&lat+" "+flag(:,{30})) + + res@cnLevelSelectionMode = "ManualLevels" ; set manual contour levels + res@cnMinLevelValF = 2 ; set min contour level + res@cnMaxLevelValF = 3 ; one less than max + res@cnLevelSpacingF = 1 ; set contour spacing + + res@lbLabelStrings = ispan(1,3,1) ; 1, 2, 3 + res@lbLabelPosition = "Center" ; label position + res@lbLabelAlignment = "BoxCenters" + + res@gsnLeftString = "" + res@gsnRightString = "" + res@gsnCenterString = "flag: 1=avg(L2), 2=int(L2), 3=NVAP" + + plot(1) = gsn_csm_contour_map_ce(wks,flag, res) + + resP = True ; modify the panel plot + resP@txString = fili + resP@gsnMaximize = True + gsn_panel(wks,plot,(/1,2/),resP) ; now draw as one plot diff --git a/samples/NCL/mask_12.ncl b/samples/NCL/mask_12.ncl new file mode 100644 index 00000000..30027c80 --- /dev/null +++ b/samples/NCL/mask_12.ncl @@ -0,0 +1,125 @@ +;---------------------------------------------------------------------- +; mask_12.ncl +; +; Concepts illustrated: +; - Using a worldwide shapefile to create a land/ocean mask +; - Masking a data array based on a geographical area +; - Attaching shapefile polylines to a map plot +; - Attaching lat/lon points to a map using gsn_coordinates +;---------------------------------------------------------------------- +; Downloaded GSHHS shapefiles from: +; +; http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/ +; +; Used the "coarsest" one: "GSHHS_shp/c/GSHHS_c_L1.shp". +;---------------------------------------------------------------------- + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "./shapefile_mask_data.ncl" + +;---------------------------------------------------------------------- +; Main code +;---------------------------------------------------------------------- +begin + WRITE_MASK = True + DEBUG = False + +;---Read data to plot and mask + dir = "$NCARG_ROOT/lib/ncarg/data/cdf/" + cdf_prefix = "uv300" + cdf_file = dir + cdf_prefix + ".nc" + fin = addfile(cdf_file,"r") + u = fin->U(1,:,:) +; +; Create a mask array the same size as "u", using +; lat/lon data read off a shapefile. +; + shpfile = "GSHHS_shp/c/GSHHS_c_L1.shp" + opt = True + opt@return_mask = True + + land_mask = shapefile_mask_data(u,shpfile,opt) + +;---Mask "u" against land and ocean. + u_land_mask = where(land_mask.eq.1,u,u@_FillValue) + u_ocean_mask = where(land_mask.eq.0,u,u@_FillValue) + copy_VarMeta(u,u_land_mask) + copy_VarMeta(u,u_ocean_mask) + +;---Start the graphics + wks = gsn_open_wks("ps","mask") + + res = True + + res@gsnMaximize = True ; maximize plot in frame + res@gsnDraw = False ; don't draw plot yet + res@gsnFrame = False ; don't advance frame yet + + res@cnFillOn = True + res@cnLineLabelsOn = False + res@cnLinesOn = False + +;---Make sure both plots have same contour levels + mnmxint = nice_mnmxintvl(min(u),max(u),25,False) + res@cnLevelSelectionMode = "ManualLevels" + res@cnMinLevelValF = mnmxint(0) + res@cnMaxLevelValF = mnmxint(1) + res@cnLevelSpacingF = mnmxint(2) + + res@lbLabelBarOn = False + res@gsnAddCyclic = False + + res@mpFillOn = False + res@mpOutlineOn = False + + res@gsnRightString = "" + res@gsnLeftString = "" + +;---Create plot of original data and attach shapefile outlines + res@tiMainString = "Original data with shapefile outlines" + map_data = gsn_csm_contour_map(wks,u,res) + dum1 = gsn_add_shapefile_polylines(wks,map_data,shpfile,False) + +;---Create plots of masked data + res@tiMainString = "Original data masked against land" + map_land_mask = gsn_csm_contour_map(wks,u_land_mask,res) + res@tiMainString = "Original data masked against ocean" + map_ocean_mask = gsn_csm_contour_map(wks,u_ocean_mask,res) + + if(DEBUG) then + mkres = True +; mkres@gsMarkerSizeF = 0.007 + mkres@gsnCoordsAttach = True + gsn_coordinates(wks,map_data,u,mkres) + mkres@gsnCoordsNonMissingColor = "yellow" + mkres@gsnCoordsMissingColor = "black" + gsn_coordinates(wks,map_land_mask,u_land_mask,mkres) + gsn_coordinates(wks,map_ocean_mask,u_ocean_mask,mkres) + end if + +;---Add shapefile outlines + dum2 = gsn_add_shapefile_polylines(wks,map_land_mask,shpfile,False) + dum3 = gsn_add_shapefile_polylines(wks,map_ocean_mask,shpfile,False) + +;---Draw all three plots on one page + pres = True + pres@gsnMaximize = True + pres@gsnPanelLabelBar = True + gsn_panel(wks,(/map_data,map_land_mask,map_ocean_mask/),(/3,1/),pres) + + if(WRITE_MASK) then + delete(fin) ; Close file before we open again. +; +; Make copy of file so we don't overwrite original. +; This is not necessary, but it's safer. +; + new_cdf_file = cdf_prefix + "_with_mask.nc" + system("/bin/cp " + cdf_file + " " + new_cdf_file) + finout = addfile(new_cdf_file,"w") + filevardef(finout, "land_mask", typeof(land_mask), (/ "lat", "lon" /) ) + finout->land_mask = (/land_mask/) + end if +end + diff --git a/samples/NCL/mcsst_1.ncl b/samples/NCL/mcsst_1.ncl new file mode 100644 index 00000000..338fe26f --- /dev/null +++ b/samples/NCL/mcsst_1.ncl @@ -0,0 +1,115 @@ +;***************************************************** +; mcsst_1.ncl +; +; Concepts illustrated: +; - Plotting NAVO MCSST data +; - Using fbindirread to read in fortran binary data +; - Converting "byte" data to "float" +; - Adding meta data (attributes and coordinates) to a variable +; - Adding gray to an existing color map +; - Spanning all but the last two colors in a color map for contour fill +; - Drawing raster contours +; +;***************************************************** +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +;*************************************** +; type of data available on file +;*************************************** +; ipar=0 Weekly Binned Sea Surface Temperature +; ipar=1 Number of Points in Bin +; ipar=2 Weekly Binned Sea Surface Temperature Anomaly +; ipar=3 Interpolated Sea Surface Temperature +; ipar=4 Interpolated Sea Surface Temperature Anomaly +;*************************************** +begin + ipar = 3 + fname = "2001311d18N16.dat" + tmp = fbindirread(fname,ipar,(/1024,2048/),"byte") +;*************************************** +; convert to float and then change to true SST +;*************************************** + xslope = 0.15 + if(ipar.eq.4.or.ipar.eq.2)then ; anom has different intercept + yint = -20.0 + end if + if(ipar.eq.3.or.ipar.eq.0)then + yint = -3.0 + end if + sst = new((/1024,2048/),"float") ; create float var + sst = tmp*xslope+yint ; convert to float + delete(tmp) ; delete unecessary array +;*************************************** +; assign missing values. The original missing value was zero, but since it was +; not assigned in NCL, it was not recognized. The new missing values are +; listed below. These will be changed later. +;*************************************** + if(ipar.eq.4)then + sst@_FillValue = -20 + end if + if(ipar.eq.3.or.ipar.eq.0)then + sst@_FillValue = -3 + end if +;*************************************** +; create coordinate variables +;*************************************** + nlat = 1024 + dy = 180./nlat + lat = (90. -(ispan(0,1023,1)*dy))-dy/2 + lat!0 = "lat" + lat&lat = lat + lat@units = "degrees_north" + + nlon = 2048 + dx = 360./nlon + lon = (ispan(0,2047,1)*dx)+dx/2-180. ; note -180. added by sjm to align + lon!0 = "lon" + lon&lon = lon + lon@units = "degrees_east" +;*************************************** +; fill out the netCDF data model +;*************************************** + sst!0 = "lat" ; name dimensions + sst!1 = "lon" ; ditto + sst = sst(::-1,:) ; reverse lat orientation + sst@long_name = "NAVO MCSST" ; assign long_name + sst@units = "deg C" ; assign units + sst&lat = lat ; assign lat cv + sst&lon = lon ; assign lon cv + sst@_FillValue = -999. ; assign missing value +;*************************************** +; get year and day from filename +;*************************************** + res = True ; plot mods desired + title = stringtochar(fname) ; parse file name to get date + year = title(0:3) + jday = title(4:6) + res@gsnCenterString = year+" "+jday ; create center string +;*************************************** +; create plot +;*************************************** + wks = gsn_open_wks("ps","mcsst") ; open workstation (plot destination) + gsn_define_colormap(wks,"BlGrYeOrReVi200") ; choose colormap +; +; This will not be necessary in V6.1.0 and later. Named colors can +; be used without having to first add them to the color map. +; + d = NhlNewColor(wks,0.8,0.8,0.8) ; add gray to colormap + + + res@cnFillOn = True ; turn on color + res@gsnSpreadColors = True ; use full range of colormap + res@gsnSpreadColorStart = 2 ; start at color 2 + res@gsnSpreadColorEnd = -3 ; don't use added gray + res@cnLinesOn = False ; no contour lines + res@cnFillDrawOrder = "PreDraw" ; draw contours before continents + res@gsnMaximize = True ; maximize plot + + +; For a grid this size, it is better to use raster mode. It will be +; significantly faster, and will not go over NCL's 16mb default plot size. + res@cnFillMode = "RasterFill" ; turn on raster mode + + plot = gsn_csm_contour_map_ce(wks,sst,res) ; contour the variable + +end diff --git a/samples/NCL/primero.ncl b/samples/NCL/primero.ncl new file mode 100644 index 00000000..7860ab8d --- /dev/null +++ b/samples/NCL/primero.ncl @@ -0,0 +1,3 @@ +val=102 +a=val/4. +print(a) diff --git a/samples/NCL/topo_9.ncl b/samples/NCL/topo_9.ncl new file mode 100644 index 00000000..e9bd62bf --- /dev/null +++ b/samples/NCL/topo_9.ncl @@ -0,0 +1,172 @@ +;---------------------------------------------------------------------- +; topo_9.ncl +; +; Concepts illustrated: +; - Recreating a jpeg topographic image as an NCL map object +; - Zooming in on a jpeg image +; - Drawing a box around an area of interest on a map +; - Attaching polylines to a map +; - Using "overlay" to overlay multiple contour plots +; - Using more than 256 colors per frame +; - Using functions for cleaner code +;---------------------------------------------------------------------- +; NOTE: This example will only work with NCL V6.1.0 and later. +; +; This script recreates a JPEG image that was converted to a NetCDF +; file with color separated bands using the open source tool +; "gdal_translate": +; +; gdal_translate -ot Int16 -of netCDF EarthMap_2500x1250.jpg \ +; EarthMap_2500x1250.nc +;---------------------------------------------------------------------- +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" + +;---------------------------------------------------------------------- +; This function imports a JPEG image that's on the whole globe, +; and recreates it as an NCL map object that is zoomed in on the +; southern tip of Africa. +;---------------------------------------------------------------------- +undef("recreate_jpeg_image") +function recreate_jpeg_image(wks,minlat,maxlat,minlon,maxlon) +begin + orig_jpg_filename = "EarthMap_2500x1250.jpg" + nc_filename = "EarthMap_2500x1250.nc" + +;--You could use a system call to do the NetCDF conversion +; cmd = "gdal_translate -ot Int16 -of netCDF " + jpeg_filename + \ +; " " + nc_filename) +; system(cmd) + +;---Read the three bands of data + f = addfile(nc_filename,"r") + Band1 = where(f->Band1.gt.255, 255, f->Band1) ; red channel + Band2 = where(f->Band2.gt.255, 255, f->Band2) ; green channel + Band3 = where(f->Band3.gt.255, 255, f->Band3) ; blue channel + + band_dims = dimsizes(Band3) + nlat = band_dims(0) + nlon = band_dims(1) + print("dimensions of image = " + nlat + " x " + nlon) + +; +; Add lat/lon data so we can overlay on a map, and/or +; overlay contours. We know the image is global, +; cylindrical equidistant, and centered about lon=0. +; + lat = fspan( -90, 90,nlat) + lon = fspan(-180,180,nlon) + lat@units = "degrees_north" + lon@units = "degrees_east" + + Band1!0 = "lat" + Band1!1 = "lon" + Band2!0 = "lat" + Band2!1 = "lon" + Band3!0 = "lat" + Band3!1 = "lon" + Band1&lat = lat + Band1&lon = lon + Band2&lat = lat + Band2&lon = lon + Band3&lat = lat + Band3&lon = lon + + res = True + + res@gsnMaximize = True + + res@gsnFrame = False ; Don't draw or advance + res@gsnDraw = False ; frame yet. + + res@cnFillOn = True + res@cnFillMode = "RasterFill" ; Raster fill can be faster + + res@cnLevelSelectionMode = "EqualSpacedLevels" + res@cnMaxLevelCount = 254 + res@cnFillBackgroundColor = (/ 1., 1., 1., 1./) + + res@cnLinesOn = False ; Turn off contour lines . + res@cnLineLabelsOn = False ; Turn off contour labels + res@cnInfoLabelOn = False ; Turn off info label + res@lbLabelBarOn = False ; Turn off labelbar + res@gsnRightString = "" ; Turn off subtitles + res@gsnLeftString = "" + res@pmTickMarkDisplayMode = "Always" + +;---Construct RGBA colormaps... + ramp = fspan(0., 1., 255) + reds = new((/255, 4/), float) + greens = new((/255, 4/), float) + blues = new((/255, 4/), float) + + reds = 0 + greens = 0 + blues = 0 + + reds(:,0) = ramp + greens(:,1) = ramp + blues(:,2) = ramp + + ; The red contour map is plotted fully opaque; the green and blue + ; are plotted completely transparent. When overlain, the colors + ; combine (rather magically). + reds(:,3) = 1. + greens(:,3) = 0 + blues(:,3) = 0 + + res@cnFillColors = greens + greenMap = gsn_csm_contour(wks, Band2, res) + + res@cnFillColors = blues + blueMap = gsn_csm_contour(wks, Band3, res) + +;---This will be our base, so make it a map plot. + res@cnFillColors = reds + res@gsnAddCyclic = False + + res@mpFillOn = False + +;---Zoom in on area of interest + res@mpMinLatF = minlat + res@mpMaxLatF = maxlat + res@mpMinLonF = minlon + res@mpMaxLonF = maxlon + + redMap = gsn_csm_contour_map(wks, Band1, res) + +;---Overlay everything to create the topo map + overlay(redMap, greenMap) + overlay(redMap, blueMap) + + return(redMap) +end + +;---------------------------------------------------------------------- +; Main code +;---------------------------------------------------------------------- +begin +;---Recreating jpeg images only works for X11 and PNG. + wks = gsn_open_wks("png","topo") + +;---Southern part of Africa + minlat = -40 + maxlat = 5 + minlon = 10 + maxlon = 40 + + map = recreate_jpeg_image(wks,minlat,maxlat,minlon,maxlon) + +;---Overlay a red box + lonbox = (/ 15, 35, 35, 15, 15/) + latbox = (/-30,-30,-10,-10,-30/) + + lnres = True + lnres@gsLineColor = "red" ; red box + lnres@gsLineThicknessF = 4.0 ; make box thicker + box = gsn_add_polyline(wks,map,lonbox,latbox,lnres) + + draw(map) ; Drawing the map will draw the red box + frame(wks) + +end diff --git a/samples/NCL/traj_3.ncl b/samples/NCL/traj_3.ncl new file mode 100644 index 00000000..f01304b4 --- /dev/null +++ b/samples/NCL/traj_3.ncl @@ -0,0 +1,120 @@ +;************************************************* +; traj_3.ncl +;************************************************* +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +external TRAJ "./particle.so" +;************************************************* +begin + + path = "./data.asc" + data = asciiread(path,(/500,6/),"float") +;************************************************* +; some parameters +;************************************************* + np = 1 + nq = 500 + ncor= 8 + xrot = new((/np,nq/),float) + yrot = new((/np,nq/),float) + xaxis = new(ncor,float) + yaxis = new(ncor,float) +;************************************************** +; convert data into rotated format +;************************************************** + TRAJ::particle(path,xrot,yrot,nq,np,xaxis,yaxis,ncor) +;************************************************** +; create plot +;************************************************** + wks = gsn_open_wks("ps","traj") ; Open an ps file + + xyres = True + xyres@gsnFrame = False ; don't advance the frame + xyres@gsnDraw = False ; don't draw indivdual plots + xyres@tmXTBorderOn = False ; don't draw top axis + xyres@tmXBBorderOn = False ; don't draw bottom axis + xyres@tmYRBorderOn = False ; don't draw right axis + xyres@tmYLBorderOn = False ; don't draw left axis + xyres@tmXTOn = False ; don't draw top-axis tick marks + xyres@tmXBOn = False ; don't draw bottom-axis tick marks + xyres@tmYROn = False ; don't draw right-axis tick marks + xyres@tmYLOn = False ; don't draw left-axis tick marks + + xyres@xyLineColors = (/"red"/) ; set the line color to red + xyres@xyLineThicknessF = 4.0 ; 4 times the line thickness + + xyres@trXMaxF = 15000 ; choose range of axis even though + xyres@trXMinF = -10000 ; we don't see them + xyres@trYMaxF = 1000 + xyres@trYMinF = -1000 + + plot = gsn_xy(wks,xrot,yrot,xyres) ; Draw trajectory +;********************************************** +; create arrays needed for the bounding box +;********************************************** + a1 = new(5,float) + b1 = new(5,float) + a2 = new(5,float) + b2 = new(5,float) + a3 = new(2,float) + b3 = new(2,float) + a4 = new(2,float) + b4 = new(2,float) + a5 = new(2,float) + b5 = new(2,float) + a6 = new(2,float) + b6 = new(2,float) + a0 = new(2,float) + b0 = new(2,float) +;********************************************** +; determine values of each bounding line from information +; returned from particle.f +;********************************************** + a1(0:3) = xaxis(:3) + b1(0:3) = yaxis(:3) + a1(4) = xaxis(0) + b1(4) = yaxis(0) + + a2(0:3) = xaxis(4:) + b2(0:3) = yaxis(4:) + a2(4) = xaxis(4) + b2(4) = yaxis(4) + + a3 = xaxis(0:4:4) + b3 = yaxis(0:4:4) + a4 = xaxis(1:5:4) + b4 = yaxis(1:5:4) + + a5 = xaxis(2:6:4) + b5 = yaxis(2:6:4) + a6 = xaxis(3:7:4) + b6 = yaxis(3:7:4) + + a0(0) = xaxis(3) + b0(0) = yaxis(3) + a0(1) = xrot(0,0) + b0(1) = yrot(0,0) +;*************************************************************** +; create bounding box by drawing multiple xy plots on top of +; each other. each with their individual axis turned off. +;*************************************************************** + xyres@xyLineColors = (/"black"/) ; line color + xyres@xyLineThicknessF = 1.0 ; regular line thickness + + bottom = gsn_xy(wks,a1,b1,xyres) ; Draw the bottom bounding box. + top = gsn_xy(wks,a2,b2,xyres) ; Draw the top bounding box. + side1 = gsn_xy(wks,a3,b3,xyres) ; Draw a side line. + side2 = gsn_xy(wks,a4,b4,xyres) ; Draw a side line. + side3 = gsn_xy(wks,a5,b5,xyres) ; Draw a side line. + side4 = gsn_xy(wks,a6,b6,xyres) ; Draw a side line. +;*************************************************************** +; now draw a large brown line to represent the chimney +;*************************************************************** + xyres@xyLineColors = (/"brown"/) ; chimney color + xyres@xyLineThicknessF = 9.0 ; thick line + xyres@tiMainString = "Pollutant Trajectory in a 3D Volume" + chimney = gsn_xy(wks,a0,b0,xyres) ; Draw the chimney. + + draw(wks) + frame(wks) + +end diff --git a/samples/NCL/tsdiagram_1.ncl b/samples/NCL/tsdiagram_1.ncl new file mode 100644 index 00000000..be9b2f6f --- /dev/null +++ b/samples/NCL/tsdiagram_1.ncl @@ -0,0 +1,167 @@ +; Read potential temp (TEMP), salinity (SALT) +; Compute potential density (PD) for specified range PD(t,s) +; (use ncl function based on Yeager's algorithm for rho computation) +; Assumes annual and zonally avgeraged input data set (i.e, one time slice) +; Used K.Lindsay's "za" for zonal avg -- already binned into basins +; Plots temp vs salt (scatter plot), pd overlay + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" + +begin +; ================================> ; PARAMETERS + case = "PHC2_gx1v3" + ocnfile = "za_PHC2_T_S_gx1v3.nc" + + depth_min = 14895.82 ; in cm, depth of first layer to be included + depth_max = 537499.9 +; +; plot limits +; + smincn = 32.5 + smaxcn = 37.0 + tmincn = -2. + tmaxcn = 22. +; +; Choose basin index +; +; 0 = global 1 = southern ocean 2 = pacific 3 = indian 6 = atlantic +; 8 = labrador 9 = GIN 10 = arctic +; + bi = 2 + +;=====> basin check + + if(bi.lt.0.or.bi.gt.10) then + print("basin index "+ bi + " not supported") + exit + end if + + if(bi.eq.0) then + basin = "Global" + blab = "global" + end if + if(bi.eq.1) then + basin = "Southern Ocean" + blab = "so" + end if + if(bi.eq.2) then + basin = "Pacific Ocean" + blab = "pacific" + end if + if(bi.eq.3) then + basin = "Indian Ocean" + blab = "indian" + end if + if(bi.eq.6) then + basin = "Atlantic Ocean" + blab = "atlanticn" + end if + if(bi.eq.8) then + basin = "Labrador Sea" + blab = "lab" + end if + if(bi.eq.9) then + basin = "GIN Sea" + blab = "gin" + end if + if(bi.eq.10) then + basin = "Arctic Ocean" + blab = "arctic" + end if + +;=====> initial resource settings + + wks = gsn_open_wks("ps","tsdiagram") ; Open a Postscript file + +;===== data + focn = addfile(ocnfile, "r") + salt = focn->SALT(0,:,{depth_min:depth_max},:) ;(basins, z_t, lat_t) + temp = focn->TEMP(0,:,{depth_min:depth_max},:) + +;====section out choice basin + temp_ba = temp(bi,:,:) + salt_ba = salt(bi,:,:) + +;===== put into scatter array format + tdata_ba = ndtooned(temp_ba) + sdata_ba = ndtooned(salt_ba) + + ydata = tdata_ba + xdata = sdata_ba + +;============== compute potenial density (PD), using rho_mwjf +; +; for potential density, depth = 0. (i.e. density as if brought to surface) +; +;=========================================================================== +; WARNING: T-S diagrams use POTENTIAL DENSITY... if set depth to something +; other then 0, then you will be plotting density contours computed for the +; specified depth layer. +;=========================================================================== + + depth = 0. ;in meters + tspan = fspan(tmincn,tmaxcn,51) + sspan = fspan(smincn,smaxcn,51) + + ; the more points the better... using Yeager's numbers + + t_range = conform_dims((/51,51/),tspan,0) + s_range = conform_dims((/51,51/),sspan,1) + + pd = rho_mwjf(t_range,s_range,depth) + + pd!0 = "temp" + pd!1 = "salt" + pd&temp = tspan + pd&salt = sspan + pd = 1000.*(pd-1.) ; Put into kg/m3 pot den units + +; printVarSummary(pd) +; printVarInfo(pd,"rho_mwjf") + +;=================Graphics + +;--- scatter plot + res = True + res@gsnMaximize = True + res@gsnDraw = False + res@gsnFrame = False + + res@xyMarkLineModes = "Markers" + res@xyMarkers = 16 + res@xyMarkerColors = "black" + res@pmLegendDisplayMode = "Never" + res@txFontHeightF = 0.01 + res@tiMainString = case + " ANN AVG: T-S Diagram" + res@tiXAxisString = salt@units + res@tiXAxisFontHeightF = 0.02 + res@tiYAxisString = temp@units + res@tiYAxisFontHeightF = 0.02 + res@trXMinF = smincn + res@trXMaxF = smaxcn + res@trYMinF = tmincn + res@trYMaxF = tmaxcn + res@gsnRightString = depth_min/100. + "-"+depth_max/100. +"m" + res@gsnLeftString = basin + + plot = gsn_csm_xy(wks,xdata,ydata,res) + +;----- pd overlay + resov = True + resov@gsnDraw = False + resov@gsnFrame = False + resov@cnLevelSelectionMode = "AutomaticLevels" + resov@cnInfoLabelOn = "False" + resov@cnLineLabelPlacementMode = "Constant" + resov@cnLineLabelFontHeightF = ".02" + + plotpd = gsn_csm_contour(wks,pd,resov) + overlay(plot,plotpd) + + draw(plot) + frame(wks) + +end diff --git a/samples/NCL/unique_9.ncl b/samples/NCL/unique_9.ncl new file mode 100644 index 00000000..edcf8285 --- /dev/null +++ b/samples/NCL/unique_9.ncl @@ -0,0 +1,141 @@ +;************************************ +; unique_9.ncl +; +; Concepts illustrated: +; - Drawing raster contours over a map +; - Creating a topography plot using raster contours +; - Reading data from binary files +; - Manually creating lat/lon coordinate arrays +; - Customizing a labelbar for a contour plot +;************************************ +; This example generates a topo map over +; the area of Trinidad, Colorado. +;************************************ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" + +begin + + wks = gsn_open_wks("ps","unique") + +;----------------- read the west binary data ------------------------- + binfile = "trinidad-w.bin" + + quad_name = fbinrecread(binfile,0,60,"character") + + map_cornersW = fbinrecread(binfile,1,4,"double") + + lonW = fbinrecread(binfile,2,(/1201/),"double") + + latW = fbinrecread(binfile,3,(/1201/),"double") + + minmax_elevW = fbinrecread(binfile,4,2,"double") + + tmpW = fbinrecread(binfile,5,(/1201,1201/),"integer") + +;----------------- read the east binary data ------------------------- + binfile = "trinidad-e.bin" + + quad_name = fbinrecread(binfile,0,60,"character") + + map_cornersE = fbinrecread(binfile,1,4,"double") + + lonE = fbinrecread(binfile,2,(/1201/),"double") + + latE = fbinrecread(binfile,3,(/1201/),"double") + + minmax_elevE = fbinrecread(binfile,4,2,"double") + + tmpE = fbinrecread(binfile,5,(/1201,1201/),"integer") + +;---------------------------------------------------------------------- + min_elev = min((/minmax_elevW(0),minmax_elevE(0)/))*3.28 + max_elev = max((/minmax_elevW(1),minmax_elevE(1)/))*3.28 + + lat = new(1201,"double") + lat = latW + lat!0 = "lat" + lat&lat = latW ; same as latE + lat@long_name = "latitude" + lat@units = "degrees_north" + + lon = new(2401,"double") + lon(0:1200) = lonW + lon(1201:2400) = lonE(1:1200) + lon!0 = "lon" + lon&lon = lon + lon@long_name = "longitude" + lon@units = "degrees_east" + + data = new((/1201,2401/),"float") ; (lat,lon) + data!0 = "lat" + data&lat = lat + data!1 = "lon" + data&lon = lon + data(:,0:1200) = (/tmpW*3.28/) ; convert to feet + data(:,1201:2400) = (/tmpE(:,1:1200)*3.28/) ; convert to feet +;------------------------------------------------------------- + +; +; Define colormap. +; + cmap = (/(/1.00, 1.00, 1.00/),(/0.00, 0.00, 0.00/), \ + (/0.51, 0.13, 0.94/),(/0.00, 0.00, 0.59/), \ + (/0.00, 0.00, 0.80/),(/0.25, 0.41, 0.88/), \ + (/0.12, 0.56, 1.00/),(/0.00, 0.75, 1.00/), \ + (/0.63, 0.82, 1.00/),(/0.82, 0.96, 1.00/), \ + (/1.00, 1.00, 0.78/),(/1.00, 0.88, 0.20/), \ + (/1.00, 0.67, 0.00/),(/1.00, 0.43, 0.00/), \ + (/1.00, 0.00, 0.00/),(/0.78, 0.00, 0.00/), \ + (/0.63, 0.14, 0.14/),(/1.00, 0.41, 0.70/)/) + + gsn_define_colormap(wks,cmap) + + res = True + res@gsnMaximize = True + res@gsnAddCyclic = False + +; map plot resources + res@mpFillOn = False + res@mpLimitMode = "Corners" + res@mpDataBaseVersion = "Ncarg4_1" + res@mpOutlineBoundarySets = "AllBoundaries" + res@mpLeftCornerLonF = map_cornersW(0) + res@mpLeftCornerLatF = map_cornersW(1) + res@mpRightCornerLonF = map_cornersE(2) + res@mpRightCornerLatF = map_cornersE(3) + +; contour resources + res@cnFillOn = True + res@cnLinesOn = False + res@cnFillMode = "RasterFill" + res@cnLevelSelectionMode = "ExplicitLevels" + res@cnLevels = (/ 5000., 6000., 7000., 8000., 8500., 9000., \ + 9500.,10000.,10500.,11000.,11500.,12000., \ + 12500.,13000.,13500./) + +; tickmark resources + res@pmTickMarkDisplayMode = "Always" + res@tmXBLabelFontHeightF = 0.010 + +; labelbar resources + res@pmLabelBarWidthF = 0.60 + res@txFontHeightF = 0.012 + res@lbTitleString = "elevation above mean sea level (feet)" + res@lbTitleFontHeightF = 0.012 + res@lbLabelFontHeightF = 0.008 + res@lbTitleOffsetF = -0.27 + res@lbBoxMinorExtentF = 0.15 + res@pmLabelBarOrthogonalPosF = -.05 + +; title resources + res@tiMainString = "USGS DEM TRINIDAD (1 x 2 degrees)" + res@tiMainOffsetYF = -0.02 ; Move title down towards graphic. + res@tiMainFontHeightF = 0.015 + res@gsnLeftString = "Min Elevation: "+min_elev + res@gsnRightString = "Max Elevation: "+max_elev + res@gsnCenterString = "Scale 1:250,000" + + plot = gsn_csm_contour_map(wks,data,res) + +end diff --git a/samples/NCL/viewport_4.ncl b/samples/NCL/viewport_4.ncl new file mode 100644 index 00000000..3635a2fa --- /dev/null +++ b/samples/NCL/viewport_4.ncl @@ -0,0 +1,131 @@ +; *********************************************** +; viewport_4.ncl +; +; Concepts illustrated: +; - Drawing an XY plot with multiple curves +; - Using drawNDCGrid to draw a nicely labeled NDC grid +; - Changing the size/shape of an XY plot using viewport resources +; - Drawing two XY plots on the same page using viewport resources +; - Drawing polylines, polymarkers, and text in NDC space +; - Using "getvalues" to retrieve resource values +; - Maximizing plots after they've been created +; *********************************************** +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" + +;******************************************************************** +; Draw a box around the viewport of the given object.. +;******************************************************************** +procedure draw_vp_box(wks,plot) +local vpx, vpy, vpw, vph, xbox, ybox, lnres, mkres, txres +begin + +; Retrieve the viewport values of the drawable object. + getvalues plot + "vpXF" : vpx + "vpYF" : vpy + "vpWidthF" : vpw + "vpHeightF" : vph + end getvalues + +; Set up some marker resources. + mkres = True + mkres@gsMarkerIndex = 16 ; filled dot + mkres@gsMarkerSizeF = 0.02 ; larger than default + mkres@gsMarkerColor = "Red" + +; Draw a single marker at the vpXF/vpYF location. + gsn_polymarker_ndc(wks,vpx,vpy,mkres) + + +; Set up some text resources. + txres = True + txres@txJust = "BottomLeft" + txres@txFontHeightF = 0.018 + txres@txFontColor = "Blue" + txres@txBackgroundFillColor = "white" + + gsn_text_ndc(wks,"(vpXF="+vpx+", vpYF="+vpy+")",vpx,vpy+0.02,txres) +; Set up some line resources. + lnres = True + lnres@gsLineColor = "Red" ; line color + lnres@gsLineThicknessF = 2.0 ; 3.5 times as thick + +; Draw lines indicating the width and height + xline = (/vpx, vpx+vpw/) + yline = (/vpy-0.05,vpy-0.05/) + gsn_polyline_ndc(wks,xline,yline,lnres) + + xline = (/vpx+0.05,vpx+0.05/) + yline = (/vpy,vpy-vph/) + gsn_polyline_ndc(wks,xline,yline,lnres) + + txres@txJust = "CenterCenter" + gsn_text_ndc(wks,"vpWidthF = " + vpw,vpx+vpw/2.,vpy-0.05,txres) + + txres@txAngleF = 90. + gsn_text_ndc(wks,"vpHeightF = " + vph,vpx+0.05,vpy-vph/2.,txres) +end + +;******************************************************************** +; Main code +;******************************************************************** +begin +;************************************************ +; read in data +;************************************************ + f = addfile ("$NCARG_ROOT/lib/ncarg/data/cdf/uv300.nc","r") + u = f->U ; get u data +;************************************************ +; plotting parameters +;************************************************ + wks = gsn_open_wks ("ps","viewport") ; open workstation + + res = True ; plot mods desired + + res@gsnFrame = False ; don't advance frame yet + + res@vpWidthF = 0.8 ; set width and height + res@vpHeightF = 0.3 + +; First plot + res@tiMainString = "Plot 1" + + res@vpXF = 0.15 + res@vpYF = 0.9 ; Higher on the page + + plot1 = gsn_csm_xy (wks,u&lat,u(0,:,{82}),res) ; create plot + +; Second plot + res@tiMainString = "Plot 2" + + res@vpXF = 0.15 ; Same X location as first plot + res@vpYF = 0.4 ; Lower on the page + + plot2 = gsn_csm_xy (wks,u&lat,u(0,:,{3}),res) ; create plot + +; Advance the frame + frame(wks) + +; Now draw the two plots with illustrations. + + drawNDCGrid(wks) ; Draw helpful grid lines showing NDC square. + + draw(plot1) ; Draw the two plots + draw(plot2) + + draw_vp_box(wks,plot1) ; Draw boxes around the two viewports. + draw_vp_box(wks,plot2) + + frame(wks) ; Advance the frame. + + +; +; Uncomment the next two lines if you want to maximize these plots for +; PS or PDF output. +; +; psres = True +; maximize_output(wks,psres) ; calls draw and frame for you +end diff --git a/samples/NCL/weather_sym_6.ncl b/samples/NCL/weather_sym_6.ncl new file mode 100644 index 00000000..49ed16d1 --- /dev/null +++ b/samples/NCL/weather_sym_6.ncl @@ -0,0 +1,120 @@ +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" + +begin +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Example of plotting station model data over a map +; illustrating how the wind barb directions are adjusted +; for the map projection. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; City names. +; + cities = (/ "NCAR", "Seattle", "San Francisco", \ + "Los Angeles", "Billings", "El Paso", \ + "Houston", "Kansas City", "Minneapolis", \ + "Chicago", "Detroit", "Atlanta", \ + "Miami", "New York", "Eugene", \ + "Boise", "Salt Lake", "Phoenix", \ + "Albuquerque", "Bismarck", "Tulsa", \ + "Dallas", "Little Rock", "Lexington", \ + "Charlotte", "Norfolk", "Bangor" \ + /) + city_lats = (/ 40.0, 47.6, 37.8, \ + 34.1, 45.8, 31.8, \ + 29.8, 39.1, 45.0, \ + 41.9, 42.3, 33.8, \ + 25.8, 40.8, 44.1, \ + 43.6, 40.7, 33.5, \ + 35.1, 46.7, 36.0, \ + 32.8, 34.7, 38.1, \ + 35.2, 36.8, 44.8 \ + /) + city_lons = (/ -105.0, -122.3, -122.4, \ + -118.3, -108.5, -106.5, \ + -095.3, -094.1, -093.8, \ + -087.6, -083.1, -084.4, \ + -080.2, -074.0, -123.1, \ + -116.2, -111.9, -112.1, \ + -106.6, -100.8, -096.0, \ + -096.8, -092.3, -084.1, \ + -080.8, -076.3, -068.8 \ + /) +; +; Station model data for the 27 cities. +; + imdat = (/"11000000751126021360300004955054054600007757087712", \ + "11103100011104021080300004959055050600517043080369", \ + "11206200031102021040300004963056046601517084081470", \ + "11309300061000021020300004967057042602017125082581", \ + "11412400091002021010300004971058038602517166083592", \ + "11515500121004020000300004975050034603017207084703", \ + "11618600151006020030300004979051030603507248085814", \ + "11721700181008020050300004983052026604007289086925", \ + "11824800211009020070300004987053022604507323087036", \ + "11927900241011020110300004991054018605017364088147", \ + "11030000271013020130300004995055014605517405089258", \ + "11133100301015020170300004999056010606017446080369", \ + "11236200331017020200300004000057006606517487081470", \ + "11339300361019020230300004004058002607017528082581", \ + "11442400391021020250300004008050000607517569083692", \ + "11545500421023020270300004012051040608017603084703", \ + "11648600451025020290300004017052008608517644085814", \ + "11751700481027020310300004021053012609017685086925", \ + "11854800511029020330300004025054016609507726087036", \ + "11958900541031020360300004029055018610007767088147", \ + "11060000571033020380300004033056030610507808089258", \ + "11163100601035020410300004037057034611007849080369", \ + "11266200631037020430300004041058043611507883081470", \ + "11369300661039020470300004045050041612007924082581", \ + "11472400691041020500300004048051025612507965083692", \ + "11575500721043020530300004051052022613507996084703", \ + "11678600751048021580300004055053013614007337085814" \ + /) + +; +; Define a color map and open a workstation. +; + cmap = (/ \ + (/ 1., 1., 1. /), \ ; color index 0 - white + (/ 0., 0., 0. /) \ ; color index 1 - black + /) + wks = gsn_open_wks("ps","weather_sym") + gsn_define_colormap(wks,cmap) + +; +; Draw a world map. +; + mpres = True + mpres@gsnFrame = False + mpres@mpSatelliteDistF = 1.3 + mpres@mpOutlineBoundarySets = "USStates" + mpres@mpCenterLatF = 40. + mpres@mpCenterLonF = -97. + mpres@mpCenterRotF = 35. + map = gsn_map(wks,"Satellite",mpres) + +; +; Scale the station model plot (all aspects of the station +; model plots are scaled as per the size of the wind barb). +; + wmsetp("wbs",0.018) +; +; In the middle of Nebraska, draw a wind barb for a north wind +; with a magnitude of 15 knots. +; + wmbarbmap(wks,42.,-99.,0.,-15.) + +; +; Draw the station model data at the selected cities. The call +; to wmsetp informs wmstnm that the wind barbs will be drawn over +; a map. To illustrate the adjustment for plotting the model +; data over a map, all winds are from the north. +; + wmsetp("ezf",1) + wmstnm(wks,city_lats,city_lons,imdat) + + frame(wks) + +end diff --git a/samples/NCL/xy_29.ncl b/samples/NCL/xy_29.ncl new file mode 100644 index 00000000..ae231f75 --- /dev/null +++ b/samples/NCL/xy_29.ncl @@ -0,0 +1,151 @@ +; xy_29.ncl +; +; Concepts illustrated: +; - Reading data from an ASCII file with headers +; - Creating a separate procedure to create a specific plot +; - Attaching polymarkers to an XY plot +; +; This script was originally from Dr. Birgit Hassler (NOAA) +;**************************************************** + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + +;************************************************ +; Plot Procedure +;************************************************ +procedure plotTCOPolym(pltName[1]:string, pltType[1]:string, filName[1]:string \ + ,xTitle[1]:string , yTitle[1]:string \ + ,year[*]:numeric, y[*]:numeric) +local wks, res, ntim, gsres, MarkerCol, OldYear, i, xmarker, ymarker + +begin + wks = gsn_open_wks(pltType,pltName) + gsn_define_colormap(wks,"default") + + res = True + res@gsnMaximize = True ; make "ps", "eps", "pdf" large + + res@vpHeightF = 0.5 ; change aspect ratio of plot + res@vpWidthF = 0.75 + res@vpXF = 0.15 ; start plot at x ndc coord + res@tiXAxisString = xTitle + res@tiYAxisString = yTitle + res@tiMainString = filName + + ntim = dimsizes(year) + res@trXMinF = year(0)-1 + res@trXMaxF = year(ntim-1)+1 + + res@gsnDraw = False + res@gsnFrame = False + res@xyMarkLineMode = "markers" + res@xyMarker = 16 + res@xyMarkerColor = "Background" + plot = gsn_csm_xy (wks,year,y,res) ; create plot frame ork + + ; add different color polymarkers for each year + gsres = True + MarkerCol = 2 + OldYear = year(0) + + do i=0,ntim-1 + xmarker = year(i) + ymarker = y(i) + + if (i.gt.0) then + if (year(i).gt.OldYear) then + MarkerCol = MarkerCol+1 + end if + OldYear = year(i) + end if + + gsres@gsMarkerColor = MarkerCol + gsres@gsMarkerIndex = 16 + ;gsres@gsMarkerSizeF = 15.0 + ; add (attach) polymarkers to existing plot object + plot@$unique_string("dum")$ = gsn_add_polymarker(wks,plot,xmarker,ymarker,gsres) + end do + + draw(plot) + frame(wks) +end + +;*********************************************************** +; MAIN +;*********************************************************** + pltType = "ps" ; "ps", "eps", "png", "x11" + + ; read multiple ascii file names + ;;fili = "Southpole_TCOTimeSeries_11.dat" + + diri = "./" + fili = systemfunc("cd "+diri+" ; ls *TCOT*dat") + print(fili) + + nfil = dimsizes(fili) + + nhead= 4 ; number of header lines on ascii file(s) + ncol = 4 ; year, month, day, O3 + + do nf=0,nfil-1 + sfx = get_file_suffix(fili(nf), 0) ; sfx = ".dat" + filx = sfx@fBase ; filx= "Southpole_TCOTimeSeries_11" + ; read ascii files + data = readAsciiTable(diri+fili(nf), ncol, "float", nhead) + dimd = dimsizes(data) + ntim = dimd(0) ; # rows + + year = toint( data(:,0) ) ; user decision ... convert to integer + mon = toint( data(:,1) ) + day = toint( data(:,2) ) + + hour = new (ntim, "integer", "No_FillValue") + mn = new (ntim, "integer", "No_FillValue") + sec = new (ntim, "double" , "No_FillValue") + hour = 0 + mn = 0 + sec = 0d0 + ; create COARDS/udunits time variable + ;;tunits = "days since 1900-01-01 00:00:0.0" + tunits = "days since "+year(0)+"-"+mon(0)+"-"+day(0)+" 00:00:0.0" + time = cd_inv_calendar(year,mon,day,hour,mn,sec,tunits, 0) + time!0 = "time" + time&time = time + ;printVarSummary(time) + + ; create a Gregorin 'date' variable + date = year*10000 + mon*100 + day + date!0 = "time" + date@units = "yyyymmdd" + date&time = time + ;printVarSummary(date) + + O3 = data(:,3) + O3@long_name = "total column ozone" + O3@units = "DU" + + O3!0 = "time" + O3&time = time + ;printVarSummary(O3) + ;print(" ") + ;print(date+" "+time+" "+O3) + + ; plot + yTitle = O3@long_name + year@long_name = "YEAR" + + plotTCOPolym (filx, pltType, fili(nf), year@long_name, yTitle, year, O3) + + delete(time) ; delete ... size (# rows) may change in the next file + delete(date) + delete(year) + delete(mon ) + delete(day ) + delete(mn ) + delete(sec ) + delete(O3 ) + delete(data) + end do + diff --git a/samples/NL/assign0.nl b/samples/NL/assign0.nl new file mode 100644 index 00000000..9f1c58cf --- /dev/null +++ b/samples/NL/assign0.nl @@ -0,0 +1,84 @@ +g3 0 1 0 # problem assign0 + 9 6 1 0 6 # vars, constraints, objectives, ranges, eqns + 0 0 # nonlinear constraints, objectives + 0 0 # network constraints: nonlinear, linear + 0 0 0 # nonlinear vars in constraints, objectives, both + 0 0 0 1 # linear network variables; functions; arith, flags + 9 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o) + 18 9 # nonzeros in Jacobian, gradients + 0 0 # max name lengths: constraints, variables + 0 0 0 0 0 # common exprs: b,c,o,c1,o1 +C0 +n0 +C1 +n0 +C2 +n0 +C3 +n0 +C4 +n0 +C5 +n0 +O0 0 +n0 +r +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +b +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +k8 +2 +4 +6 +8 +10 +12 +14 +16 +J0 3 +0 1 +1 1 +2 1 +J1 3 +3 1 +4 1 +5 1 +J2 3 +6 1 +7 1 +8 1 +J3 3 +0 1 +3 1 +6 1 +J4 3 +1 1 +4 1 +7 1 +J5 3 +2 1 +5 1 +8 1 +G0 9 +0 1 +1 3 +2 3 +3 2 +4 3 +5 3 +6 3 +7 3 +8 2 diff --git a/samples/NL/balassign0.nl b/samples/NL/balassign0.nl new file mode 100644 index 00000000..59d5690b --- /dev/null +++ b/samples/NL/balassign0.nl @@ -0,0 +1,2284 @@ +g3 2 1 0 # problem balassign0 + 160 121 1 0 26 # vars, constraints, objectives, ranges, eqns + 0 0 # nonlinear constraints, objectives + 0 0 # network constraints: nonlinear, linear + 0 0 0 # nonlinear vars in constraints, objectives, both + 0 0 0 1 # linear network variables; functions; arith, flags + 130 30 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o) + 1435 30 # nonzeros in Jacobian, gradients + 0 0 # max name lengths: constraints, variables + 0 0 0 0 0 # common exprs: b,c,o,c1,o1 +C0 +n0 +C1 +n0 +C2 +n0 +C3 +n0 +C4 +n0 +C5 +n0 +C6 +n0 +C7 +n0 +C8 +n0 +C9 +n0 +C10 +n0 +C11 +n0 +C12 +n0 +C13 +n0 +C14 +n0 +C15 +n0 +C16 +n0 +C17 +n0 +C18 +n0 +C19 +n0 +C20 +n0 +C21 +n0 +C22 +n0 +C23 +n0 +C24 +n0 +C25 +n0 +C26 +n0 +C27 +n0 +C28 +n0 +C29 +n0 +C30 +n0 +C31 +n0 +C32 +n0 +C33 +n0 +C34 +n0 +C35 +n0 +C36 +n0 +C37 +n0 +C38 +n0 +C39 +n0 +C40 +n0 +C41 +n0 +C42 +n0 +C43 +n0 +C44 +n0 +C45 +n0 +C46 +n0 +C47 +n0 +C48 +n0 +C49 +n0 +C50 +n0 +C51 +n0 +C52 +n0 +C53 +n0 +C54 +n0 +C55 +n0 +C56 +n0 +C57 +n0 +C58 +n0 +C59 +n0 +C60 +n0 +C61 +n0 +C62 +n0 +C63 +n0 +C64 +n0 +C65 +n0 +C66 +n0 +C67 +n0 +C68 +n0 +C69 +n0 +C70 +n0 +C71 +n0 +C72 +n0 +C73 +n0 +C74 +n0 +C75 +n0 +C76 +n0 +C77 +n0 +C78 +n0 +C79 +n0 +C80 +n0 +C81 +n0 +C82 +n0 +C83 +n0 +C84 +n0 +C85 +n0 +C86 +n0 +C87 +n0 +C88 +n0 +C89 +n0 +C90 +n0 +C91 +n0 +C92 +n0 +C93 +n0 +C94 +n0 +C95 +n0 +C96 +n0 +C97 +n0 +C98 +n0 +C99 +n0 +C100 +n0 +C101 +n0 +C102 +n0 +C103 +n0 +C104 +n0 +C105 +n0 +C106 +n0 +C107 +n0 +C108 +n0 +C109 +n0 +C110 +n0 +C111 +n0 +C112 +n0 +C113 +n0 +C114 +n0 +C115 +n0 +C116 +n0 +C117 +n0 +C118 +n0 +C119 +n0 +C120 +n0 +O0 0 +n0 +r +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +4 1 +1 0 +1 0 +1 0 +1 0 +1 0 +2 0 +2 0 +2 0 +2 0 +2 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +1 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +2 0 +b +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +0 0 1 +1 5 +2 6 +1 4 +1 0 +1 0 +1 0 +1 1 +1 0 +1 2 +1 0 +1 0 +1 4 +1 0 +1 2 +1 2 +1 0 +2 4 +2 1 +2 1 +2 1 +2 2 +2 1 +2 3 +2 1 +2 1 +2 5 +2 1 +2 3 +2 3 +2 1 +k159 +11 +22 +33 +44 +55 +64 +73 +82 +91 +100 +111 +122 +133 +144 +155 +166 +177 +188 +199 +210 +220 +230 +240 +250 +260 +270 +280 +290 +300 +310 +321 +332 +343 +354 +365 +375 +385 +395 +405 +415 +425 +435 +445 +455 +465 +476 +487 +498 +509 +520 +531 +542 +553 +564 +575 +586 +597 +608 +619 +630 +641 +652 +663 +674 +685 +696 +707 +718 +729 +740 +749 +758 +767 +776 +785 +796 +807 +818 +829 +840 +850 +860 +870 +880 +890 +899 +908 +917 +926 +935 +945 +955 +965 +975 +985 +995 +1005 +1015 +1025 +1035 +1046 +1057 +1068 +1079 +1090 +1099 +1108 +1117 +1126 +1135 +1146 +1157 +1168 +1179 +1190 +1201 +1212 +1223 +1234 +1245 +1255 +1265 +1275 +1285 +1295 +1304 +1313 +1322 +1331 +1340 +1345 +1350 +1355 +1355 +1355 +1355 +1360 +1360 +1365 +1365 +1365 +1370 +1370 +1375 +1380 +1380 +1385 +1390 +1390 +1395 +1400 +1400 +1405 +1410 +1410 +1415 +1420 +1425 +1430 +J0 5 +0 1 +1 1 +2 1 +3 1 +4 1 +J1 5 +5 1 +6 1 +7 1 +8 1 +9 1 +J2 5 +10 1 +11 1 +12 1 +13 1 +14 1 +J3 5 +15 1 +16 1 +17 1 +18 1 +19 1 +J4 5 +20 1 +21 1 +22 1 +23 1 +24 1 +J5 5 +25 1 +26 1 +27 1 +28 1 +29 1 +J6 5 +30 1 +31 1 +32 1 +33 1 +34 1 +J7 5 +35 1 +36 1 +37 1 +38 1 +39 1 +J8 5 +40 1 +41 1 +42 1 +43 1 +44 1 +J9 5 +45 1 +46 1 +47 1 +48 1 +49 1 +J10 5 +50 1 +51 1 +52 1 +53 1 +54 1 +J11 5 +55 1 +56 1 +57 1 +58 1 +59 1 +J12 5 +60 1 +61 1 +62 1 +63 1 +64 1 +J13 5 +65 1 +66 1 +67 1 +68 1 +69 1 +J14 5 +70 1 +71 1 +72 1 +73 1 +74 1 +J15 5 +75 1 +76 1 +77 1 +78 1 +79 1 +J16 5 +80 1 +81 1 +82 1 +83 1 +84 1 +J17 5 +85 1 +86 1 +87 1 +88 1 +89 1 +J18 5 +90 1 +91 1 +92 1 +93 1 +94 1 +J19 5 +95 1 +96 1 +97 1 +98 1 +99 1 +J20 5 +100 1 +101 1 +102 1 +103 1 +104 1 +J21 5 +105 1 +106 1 +107 1 +108 1 +109 1 +J22 5 +110 1 +111 1 +112 1 +113 1 +114 1 +J23 5 +115 1 +116 1 +117 1 +118 1 +119 1 +J24 5 +120 1 +121 1 +122 1 +123 1 +124 1 +J25 5 +125 1 +126 1 +127 1 +128 1 +129 1 +J26 27 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +130 1 +J27 27 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +130 1 +J28 27 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +130 1 +J29 27 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +130 1 +J30 27 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +130 1 +J31 27 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +131 1 +J32 27 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +131 1 +J33 27 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +131 1 +J34 27 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +131 1 +J35 27 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +131 1 +J36 21 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +75 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +132 1 +J37 9 +0 -1 +10 -1 +45 -1 +70 -1 +75 -1 +90 -1 +95 -1 +100 -1 +136 1 +J38 15 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +110 -1 +115 -1 +120 -1 +138 1 +J39 25 +0 -1 +5 -1 +10 -1 +15 -1 +25 -1 +30 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +141 1 +J40 13 +0 -1 +10 -1 +20 -1 +30 -1 +35 -1 +40 -1 +45 -1 +70 -1 +75 -1 +85 -1 +100 -1 +125 -1 +143 1 +J41 12 +5 -1 +15 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +90 -1 +95 -1 +110 -1 +115 -1 +144 1 +J42 21 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +76 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +132 1 +J43 9 +1 -1 +11 -1 +46 -1 +71 -1 +76 -1 +91 -1 +96 -1 +101 -1 +136 1 +J44 15 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +111 -1 +116 -1 +121 -1 +138 1 +J45 25 +1 -1 +6 -1 +11 -1 +16 -1 +26 -1 +31 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +141 1 +J46 13 +1 -1 +11 -1 +21 -1 +31 -1 +36 -1 +41 -1 +46 -1 +71 -1 +76 -1 +86 -1 +101 -1 +126 -1 +143 1 +J47 12 +6 -1 +16 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +91 -1 +96 -1 +111 -1 +116 -1 +144 1 +J48 21 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +77 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +132 1 +J49 9 +2 -1 +12 -1 +47 -1 +72 -1 +77 -1 +92 -1 +97 -1 +102 -1 +136 1 +J50 15 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +112 -1 +117 -1 +122 -1 +138 1 +J51 25 +2 -1 +7 -1 +12 -1 +17 -1 +27 -1 +32 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +141 1 +J52 13 +2 -1 +12 -1 +22 -1 +32 -1 +37 -1 +42 -1 +47 -1 +72 -1 +77 -1 +87 -1 +102 -1 +127 -1 +143 1 +J53 12 +7 -1 +17 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +92 -1 +97 -1 +112 -1 +117 -1 +144 1 +J54 21 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +78 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +132 1 +J55 9 +3 -1 +13 -1 +48 -1 +73 -1 +78 -1 +93 -1 +98 -1 +103 -1 +136 1 +J56 15 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +113 -1 +118 -1 +123 -1 +138 1 +J57 25 +3 -1 +8 -1 +13 -1 +18 -1 +28 -1 +33 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +141 1 +J58 13 +3 -1 +13 -1 +23 -1 +33 -1 +38 -1 +43 -1 +48 -1 +73 -1 +78 -1 +88 -1 +103 -1 +128 -1 +143 1 +J59 12 +8 -1 +18 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +93 -1 +98 -1 +113 -1 +118 -1 +144 1 +J60 21 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +79 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +132 1 +J61 9 +4 -1 +14 -1 +49 -1 +74 -1 +79 -1 +94 -1 +99 -1 +104 -1 +136 1 +J62 15 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +114 -1 +119 -1 +124 -1 +138 1 +J63 25 +4 -1 +9 -1 +14 -1 +19 -1 +29 -1 +34 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +141 1 +J64 13 +4 -1 +14 -1 +24 -1 +34 -1 +39 -1 +44 -1 +49 -1 +74 -1 +79 -1 +89 -1 +104 -1 +129 -1 +143 1 +J65 12 +9 -1 +19 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +94 -1 +99 -1 +114 -1 +119 -1 +144 1 +J66 21 +0 -1 +5 -1 +10 -1 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +75 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +146 1 +J67 4 +40 -1 +85 -1 +90 -1 +147 1 +J68 3 +80 -1 +95 -1 +149 1 +J69 9 +0 -1 +10 -1 +45 -1 +70 -1 +75 -1 +90 -1 +95 -1 +100 -1 +150 1 +J70 15 +15 -1 +20 -1 +25 -1 +30 -1 +35 -1 +40 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +110 -1 +115 -1 +120 -1 +152 1 +J71 3 +85 -1 +105 -1 +153 1 +J72 25 +0 -1 +5 -1 +10 -1 +15 -1 +25 -1 +30 -1 +40 -1 +45 -1 +50 -1 +55 -1 +60 -1 +65 -1 +70 -1 +75 -1 +80 -1 +85 -1 +90 -1 +95 -1 +100 -1 +105 -1 +110 -1 +115 -1 +120 -1 +125 -1 +155 1 +J73 3 +20 -1 +35 -1 +156 1 +J74 13 +0 -1 +10 -1 +20 -1 +30 -1 +35 -1 +40 -1 +45 -1 +70 -1 +75 -1 +85 -1 +100 -1 +125 -1 +157 1 +J75 12 +5 -1 +15 -1 +50 -1 +55 -1 +60 -1 +65 -1 +80 -1 +90 -1 +95 -1 +110 -1 +115 -1 +158 1 +J76 4 +25 -1 +105 -1 +120 -1 +159 1 +J77 21 +1 -1 +6 -1 +11 -1 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +76 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +146 1 +J78 4 +41 -1 +86 -1 +91 -1 +147 1 +J79 3 +81 -1 +96 -1 +149 1 +J80 9 +1 -1 +11 -1 +46 -1 +71 -1 +76 -1 +91 -1 +96 -1 +101 -1 +150 1 +J81 15 +16 -1 +21 -1 +26 -1 +31 -1 +36 -1 +41 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +111 -1 +116 -1 +121 -1 +152 1 +J82 3 +86 -1 +106 -1 +153 1 +J83 25 +1 -1 +6 -1 +11 -1 +16 -1 +26 -1 +31 -1 +41 -1 +46 -1 +51 -1 +56 -1 +61 -1 +66 -1 +71 -1 +76 -1 +81 -1 +86 -1 +91 -1 +96 -1 +101 -1 +106 -1 +111 -1 +116 -1 +121 -1 +126 -1 +155 1 +J84 3 +21 -1 +36 -1 +156 1 +J85 13 +1 -1 +11 -1 +21 -1 +31 -1 +36 -1 +41 -1 +46 -1 +71 -1 +76 -1 +86 -1 +101 -1 +126 -1 +157 1 +J86 12 +6 -1 +16 -1 +51 -1 +56 -1 +61 -1 +66 -1 +81 -1 +91 -1 +96 -1 +111 -1 +116 -1 +158 1 +J87 4 +26 -1 +106 -1 +121 -1 +159 1 +J88 21 +2 -1 +7 -1 +12 -1 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +77 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +146 1 +J89 4 +42 -1 +87 -1 +92 -1 +147 1 +J90 3 +82 -1 +97 -1 +149 1 +J91 9 +2 -1 +12 -1 +47 -1 +72 -1 +77 -1 +92 -1 +97 -1 +102 -1 +150 1 +J92 15 +17 -1 +22 -1 +27 -1 +32 -1 +37 -1 +42 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +112 -1 +117 -1 +122 -1 +152 1 +J93 3 +87 -1 +107 -1 +153 1 +J94 25 +2 -1 +7 -1 +12 -1 +17 -1 +27 -1 +32 -1 +42 -1 +47 -1 +52 -1 +57 -1 +62 -1 +67 -1 +72 -1 +77 -1 +82 -1 +87 -1 +92 -1 +97 -1 +102 -1 +107 -1 +112 -1 +117 -1 +122 -1 +127 -1 +155 1 +J95 3 +22 -1 +37 -1 +156 1 +J96 13 +2 -1 +12 -1 +22 -1 +32 -1 +37 -1 +42 -1 +47 -1 +72 -1 +77 -1 +87 -1 +102 -1 +127 -1 +157 1 +J97 12 +7 -1 +17 -1 +52 -1 +57 -1 +62 -1 +67 -1 +82 -1 +92 -1 +97 -1 +112 -1 +117 -1 +158 1 +J98 4 +27 -1 +107 -1 +122 -1 +159 1 +J99 21 +3 -1 +8 -1 +13 -1 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +78 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +146 1 +J100 4 +43 -1 +88 -1 +93 -1 +147 1 +J101 3 +83 -1 +98 -1 +149 1 +J102 9 +3 -1 +13 -1 +48 -1 +73 -1 +78 -1 +93 -1 +98 -1 +103 -1 +150 1 +J103 15 +18 -1 +23 -1 +28 -1 +33 -1 +38 -1 +43 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +113 -1 +118 -1 +123 -1 +152 1 +J104 3 +88 -1 +108 -1 +153 1 +J105 25 +3 -1 +8 -1 +13 -1 +18 -1 +28 -1 +33 -1 +43 -1 +48 -1 +53 -1 +58 -1 +63 -1 +68 -1 +73 -1 +78 -1 +83 -1 +88 -1 +93 -1 +98 -1 +103 -1 +108 -1 +113 -1 +118 -1 +123 -1 +128 -1 +155 1 +J106 3 +23 -1 +38 -1 +156 1 +J107 13 +3 -1 +13 -1 +23 -1 +33 -1 +38 -1 +43 -1 +48 -1 +73 -1 +78 -1 +88 -1 +103 -1 +128 -1 +157 1 +J108 12 +8 -1 +18 -1 +53 -1 +58 -1 +63 -1 +68 -1 +83 -1 +93 -1 +98 -1 +113 -1 +118 -1 +158 1 +J109 4 +28 -1 +108 -1 +123 -1 +159 1 +J110 21 +4 -1 +9 -1 +14 -1 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +79 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +146 1 +J111 4 +44 -1 +89 -1 +94 -1 +147 1 +J112 3 +84 -1 +99 -1 +149 1 +J113 9 +4 -1 +14 -1 +49 -1 +74 -1 +79 -1 +94 -1 +99 -1 +104 -1 +150 1 +J114 15 +19 -1 +24 -1 +29 -1 +34 -1 +39 -1 +44 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +114 -1 +119 -1 +124 -1 +152 1 +J115 3 +89 -1 +109 -1 +153 1 +J116 25 +4 -1 +9 -1 +14 -1 +19 -1 +29 -1 +34 -1 +44 -1 +49 -1 +54 -1 +59 -1 +64 -1 +69 -1 +74 -1 +79 -1 +84 -1 +89 -1 +94 -1 +99 -1 +104 -1 +109 -1 +114 -1 +119 -1 +124 -1 +129 -1 +155 1 +J117 3 +24 -1 +39 -1 +156 1 +J118 13 +4 -1 +14 -1 +24 -1 +34 -1 +39 -1 +44 -1 +49 -1 +74 -1 +79 -1 +89 -1 +104 -1 +129 -1 +157 1 +J119 12 +9 -1 +19 -1 +54 -1 +59 -1 +64 -1 +69 -1 +84 -1 +94 -1 +99 -1 +114 -1 +119 -1 +158 1 +J120 4 +29 -1 +109 -1 +124 -1 +159 1 +G0 30 +130 -1 +131 1 +132 -1 +133 -1 +134 -1 +135 -1 +136 -1 +137 -1 +138 -1 +139 -1 +140 -1 +141 -1 +142 -1 +143 -1 +144 -1 +145 -1 +146 1 +147 1 +148 1 +149 1 +150 1 +151 1 +152 1 +153 1 +154 1 +155 1 +156 1 +157 1 +158 1 +159 1 diff --git a/samples/NetLinx+ERB/sample.axi.erb b/samples/NetLinx+ERB/sample.axi.erb new file mode 100644 index 00000000..92fa9b03 --- /dev/null +++ b/samples/NetLinx+ERB/sample.axi.erb @@ -0,0 +1,78 @@ +(*********************************************************** + Sample File + + For testing syntax highlighting +************************************************************) + +#if_not_defined Sample +#define Sample 1 +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +<% global_constant_justify = 20 -%> +// Video Source Select Buttons +<%= + video_sources = { + BTN_VID_FOH_PC: { btn: 11, input: :VID_SRC_FOH_PC }, + BTN_VID_STAGE_PC: { btn: 12, input: :VID_SRC_STAGE_PC }, + BTN_VID_BLURAY: { btn: 13, input: :VID_SRC_BLURAY }, + } + + print_constant_hash video_sources.remap(:btn), + justify: global_constant_justify +%> + +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +// Video Source Select +<%= + justify group(video_sources.remap :input) { |name, input| + "[#{@dvTP}, #{name}] = (outputs[VID_DEST_PROJECTOR].input == #{input});" + } +%> + +(***********************************************************) +(* THE MAINLINE GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) +#end_if diff --git a/samples/NetLinx+ERB/sample.axs.erb b/samples/NetLinx+ERB/sample.axs.erb new file mode 100644 index 00000000..92fa9b03 --- /dev/null +++ b/samples/NetLinx+ERB/sample.axs.erb @@ -0,0 +1,78 @@ +(*********************************************************** + Sample File + + For testing syntax highlighting +************************************************************) + +#if_not_defined Sample +#define Sample 1 +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +<% global_constant_justify = 20 -%> +// Video Source Select Buttons +<%= + video_sources = { + BTN_VID_FOH_PC: { btn: 11, input: :VID_SRC_FOH_PC }, + BTN_VID_STAGE_PC: { btn: 12, input: :VID_SRC_STAGE_PC }, + BTN_VID_BLURAY: { btn: 13, input: :VID_SRC_BLURAY }, + } + + print_constant_hash video_sources.remap(:btn), + justify: global_constant_justify +%> + +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +// Video Source Select +<%= + justify group(video_sources.remap :input) { |name, input| + "[#{@dvTP}, #{name}] = (outputs[VID_DEST_PROJECTOR].input == #{input});" + } +%> + +(***********************************************************) +(* THE MAINLINE GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) +#end_if diff --git a/samples/NetLinx/projector.axi b/samples/NetLinx/projector.axi new file mode 100644 index 00000000..f4b53e20 --- /dev/null +++ b/samples/NetLinx/projector.axi @@ -0,0 +1,132 @@ +(*********************************************************** + Mock Projector + + For testing syntax highlighting +************************************************************) + +#if_not_defined MOCK_PROJECTOR +#define MOCK_PROJECTOR 1 +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +dvPROJECTOR = 5001:1:0; + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +// Power States +POWER_STATE_ON = 0; +POWER_STATE_OFF = 1; +POWER_STATE_WARMING = 2; +POWER_STATE_COOLING = 3; + +// Inputs +INPUT_HDMI = 0; +INPUT_VGA = 1; +INPUT_COMPOSITE = 2; +INPUT_SVIDEO = 3; + +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +#include 'amx-lib-log' + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +struct projector_t +{ + integer power_state; + integer input; + integer lamp_hours; +} + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +volatile projector_t proj_1; + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) + +define_function initialize(projector_t self) +{ + self.power_state = POWER_STATE_OFF; + self.input = INPUT_HDMI; + self.lamp_hours = 0; +} + +define_function switch_input(projector_t self, integer input) +{ + self.input = input; + print(LOG_LEVEL_INFO, "'Projector set to input: ', itoa(input)"); +} + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +initialize(proj_1); + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +data_event[dvPROJECTOR] +{ + string: + { + parse_message(data.text); + } + + command: {} + online: {} + offline: {} +} + +button_event[dvTP, BTN_HDMI] +button_event[dvTP, BTN_VGA] +button_event[dvTP, BTN_COMPOSITE] +button_event[dvTP, BTN_SVIDEO] +{ + push: + { + switch (button.input.channel) + { + case BTN_HDMI: switch_input(proj_1, INPUT_HDMI); + case BTN_VGA: switch_input(proj_1, INPUT_VGA); + case BTN_COMPOSITE: switch_input(proj_1, INPUT_COMPOSITE); + case BTN_SVIDEO: switch_input(proj_1, INPUT_SVIDEO); + } + } + + release: {} +} + +(***********************************************************) +(* THE MAINLINE GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +[dvTP, BTN_POWER_ON] = (proj_1.power_state == POWER_STATE_ON); +[dvTP, BTN_POWER_OFF] = (proj_1.power_state == POWER_STATE_OFF); + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) +#end_if diff --git a/samples/NetLinx/volume-array.axs b/samples/NetLinx/volume-array.axs new file mode 100644 index 00000000..902b86ac --- /dev/null +++ b/samples/NetLinx/volume-array.axs @@ -0,0 +1,158 @@ +(*********************************************************** + AMX VOLUME CONTROL + VOLUME ARRAY EXAMPLE + + Website: https://sourceforge.net/projects/amx-lib-volume/ + + + This application demonstrates the use of volume control + arrays using the amx-lib-volume library. + + Volume control operation can be viewed by watching the + master's internal diagnostic output. + + I/O PORT CONNECTIONS: + Ch 1: Volume Up Button + Ch 2: Volume Down Button +************************************************************ +Copyright 2011, 2012, 2014 Alex McLain + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +************************************************************) + +PROGRAM_NAME='volume array' +(***********************************************************) +(***********************************************************) +(* System Type : NetLinx *) +(***********************************************************) +(* REV HISTORY: *) +(***********************************************************) +(* + $History: See version control repository. +*) +(***********************************************************) +(* INCLUDES GO BELOW *) +(***********************************************************) + +// Include the volume control library. +#include 'amx-lib-volume' + +(***********************************************************) +(* DEVICE NUMBER DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_DEVICE + +dvDebug = 0:0:0; // For debug output. + +dvIO = 36000:1:0; // Volume up/down button connections. + +(***********************************************************) +(* CONSTANT DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_CONSTANT + +// Volume control indexes. +MIC1 = 1; // Microphone 1. +MIC2 = 2; // Microphone 2. +MIC3 = 3; // Microphone 3. +MIC4 = 4; // Microphone 4. +WLS1 = 5; // Wireless mic 1. +WLS2 = 6; // Wireless mic 2. +IPOD = 7; // iPod input. +CD = 8; // CD player input. + +(***********************************************************) +(* DATA TYPE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_TYPE + +(***********************************************************) +(* VARIABLE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_VARIABLE + +// Define a volume control array for the input devices. +volume inputs[8]; + +(***********************************************************) +(* LATCHING DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_LATCHING + +(***********************************************************) +(* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *) +(***********************************************************) +DEFINE_MUTUALLY_EXCLUSIVE + +(***********************************************************) +(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) +(***********************************************************) +(* EXAMPLE: DEFINE_FUNCTION () *) +(* EXAMPLE: DEFINE_CALL '' () *) + +(***********************************************************) +(* STARTUP CODE GOES BELOW *) +(***********************************************************) +DEFINE_START + +// Initialize the array of volume controls. +volArrayInit(inputs, 0, VOL_UNMUTED, 10000, 20000, 5); + +(***********************************************************) +(* THE EVENTS GO BELOW *) +(***********************************************************) +DEFINE_EVENT + +// Volume Up +button_event[dvIO, 1] +{ + PUSH: + { + volArrayIncrement(inputs); // Increment the volume up a step. + send_string dvDebug, "'Volume Up MIC1: ', itoa(volGetLevel(inputs[MIC1]))"; + send_string dvDebug, "'Volume Up MIC2: ', itoa(volGetLevel(inputs[MIC2]))"; + send_string dvDebug, "'Volume Up MIC3: ', itoa(volGetLevel(inputs[MIC3]))"; + send_string dvDebug, "'Volume Up MIC4: ', itoa(volGetLevel(inputs[MIC4]))"; + send_string dvDebug, "'Volume Up WLS1: ', itoa(volGetLevel(inputs[WLS1]))"; + send_string dvDebug, "'Volume Up WLS2: ', itoa(volGetLevel(inputs[WLS2]))"; + send_string dvDebug, "'Volume Up IPOD: ', itoa(volGetLevel(inputs[IPOD]))"; + send_string dvDebug, "'Volume Up CD: ', itoa(volGetLevel(inputs[CD]))"; + } +} + +// Volume Down +button_event[dvIO, 2] +{ + PUSH: + { + volArrayDecrement(inputs); // Decrement the volume down a step. + send_string dvDebug, "'Volume Dn MIC1: ', itoa(volGetLevel(inputs[MIC1]))"; + send_string dvDebug, "'Volume Dn MIC2: ', itoa(volGetLevel(inputs[MIC2]))"; + send_string dvDebug, "'Volume Dn MIC3: ', itoa(volGetLevel(inputs[MIC3]))"; + send_string dvDebug, "'Volume Dn MIC4: ', itoa(volGetLevel(inputs[MIC4]))"; + send_string dvDebug, "'Volume Dn WLS1: ', itoa(volGetLevel(inputs[WLS1]))"; + send_string dvDebug, "'Volume Dn WLS2: ', itoa(volGetLevel(inputs[WLS2]))"; + send_string dvDebug, "'Volume Dn IPOD: ', itoa(volGetLevel(inputs[IPOD]))"; + send_string dvDebug, "'Volume Dn CD: ', itoa(volGetLevel(inputs[CD]))"; + } +} + +(***********************************************************) +(* THE ACTUAL PROGRAM GOES BELOW *) +(***********************************************************) +DEFINE_PROGRAM + +(***********************************************************) +(* END OF PROGRAM *) +(* DO NOT PUT ANY CODE BELOW THIS COMMENT *) +(***********************************************************) diff --git a/samples/NewLisp/queens.nl b/samples/NewLisp/queens.nl new file mode 100644 index 00000000..61c04992 --- /dev/null +++ b/samples/NewLisp/queens.nl @@ -0,0 +1,49 @@ +#!/usr/bin/env newlisp + +(constant 'NUM 8) + +(define (intersects? q1 q2) + (or + (= (q1 0) (q2 0)) + (= (q1 1) (q2 1)) + (= (abs (- (q1 0) (q2 0))) (abs (- (q1 1) (q2 1)))))) + +(define (variant? alist) + (set 'logic nil) + (cond + ((= (length alist) 1) true) + ((> (length alist) 1) + (while (> (length alist) 1) + (set 'q (pop alist -1)) + (dolist (el alist) + (push + (intersects? + (list q (inc (length alist))) + (list el (+ 1 $idx))) + logic -1))) + (not (apply or logic))))) + +(define (fork-by-line alist) + (let (res '()) + (dolist (i (sequence 1 NUM)) + (set 'tmp alist) + (push i tmp -1) + (setf res (push tmp res -1))) + res)) + +(define (find-variants num) + (let (res '()) + (cond + ((< num 1) + (begin (println "num < 1") (exit))) + ((= num 1) + (dolist (i (sequence 1 NUM)) (push (list i) res -1))) + ((> num 1) + (dolist (v (find-variants (dec num))) + (set 'passed (filter variant? (fork-by-line v))) + (if (not (empty? passed)) (extend res passed))))) + res)) + +(set 'solutions (find-variants NUM)) +(println (length solutions)) +;;(exit) \ No newline at end of file diff --git a/samples/Nginx/example.com.vhost b/samples/Nginx/example.com.vhost new file mode 100644 index 00000000..ed0c40d9 --- /dev/null +++ b/samples/Nginx/example.com.vhost @@ -0,0 +1,242 @@ +# Move the www people to no-www +server { + listen 80; + server_name www.example.com; + return 301 $scheme://example.com$request_uri; +} + +server { + listen 80; + listen 443 ssl; + server_name example.com; + + # Certs sent to the client in SERVER HELLO are concatenated in ssl_certificate + ssl_certificate /srv/www/example.com/ssl/example.com.crt; + ssl_certificate_key /srv/www/example.com/ssl/example.com.key; + + # Allow multiple connections to use the same key data + ssl_session_timeout 5m; + ssl_session_cache shared:SSL:50m; + + # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits + ssl_dhparam /etc/ssl/certs/dhparam.pem; + + # Intermediate configuration. tweak to your needs + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + include snippets/ssl_ciphers_intermediate.conf; + ssl_prefer_server_ciphers on; + + # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) + #add_header Strict-Transport-Security max-age=15768000; + + # OCSP Stapling - fetch OCSP records from URL in ssl_certificate and cache them + ssl_stapling on; + ssl_stapling_verify on; + + # Verify chain of trust of OCSP response using Root CA and Intermediate certs + ssl_trusted_certificate /srv/www/example.com/ssl/unified-ssl.crt; + resolver 8.8.8.8 8.8.4.4; + resolver_timeout 10s; + + root /srv/www/example.com/htdocs; + index index.php index.html index.htm; + charset UTF-8; + autoindex off; + + # Deny access based on HTTP method (set in HTTP level) + if ($bad_method = 1) { + return 444; + } + + # Show "Not Found" 404 errors in place of "Forbidden" 403 errors, because + # forbidden errors allow attackers potential insight into your server's + # layout and contents + error_page 403 = 404; + + # It's always good to set logs, note however you cannot turn off the error log + # setting error_log off; will simply create a file called 'off'. + access_log /var/log/nginx/example.com.access.log; + error_log /var/log/nginx/example.com.error.log; + + # Add trailing slash to */wp-admin requests. + rewrite /wp-admin$ $scheme://$host$uri/ permanent; + + location / { + # This try_files directive is used to enable pretty, SEO-friendly URLs + # and permalinks for Wordpress. Leave it *off* to start with, and then + # turn it on once you've gotten Wordpress configured! + try_files $uri $uri/ /index.php?$args; + } + + # Option to create password protected directory + # http://www.howtoforge.com/basic-http-authentication-with-nginx + # location /admin { + # auth_basic "Administrator Login"; + # auth_basic_user_file /var/www/domain.com/admin/.htpasswd; + # } + + # Do not log access to these to keep the logs cleaner + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /apple-touch-icon.png { + log_not_found off; + access_log off; + } + + location = /apple-touch-icon-precomposed.png { + log_not_found off; + access_log off; + } + + # This block will catch static file requests, such as images, css, js + # The ?: prefix is a 'non-capturing' mark, meaning we do not require + # the pattern to be captured into $1 which should help improve performance + location ~* \.(?:3gp|gif|jpg|jpe?g|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt|js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff)$ { + # Some basic cache-control for static files to be sent to the browser + expires max; + add_header Pragma public; + add_header Cache-Control "public, must-revalidate, proxy-revalidate"; + } + + # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). + # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) + location ~ /\. { + access_log off; + log_not_found off; + deny all; + } + + location ~ ~$ { + access_log off; + log_not_found off; + deny all; + } + + # Common deny or internal locations, to help prevent access to areas of + # the site that should not be public + location ~* wp-admin/includes { + deny all; + } + + location ~* wp-includes/theme-compat/ { + deny all; + } + + location ~* wp-includes/js/tinymce/langs/.*\.php { + deny all; + } + + location /wp-content/ { + internal; + } + + # Deny access to any files with a .php extension in the uploads directory + # Works in sub-directory installs and also in multisite network + # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) + location ~* /(?:uploads|files)/.*\.php$ { + deny all; + } + + # Make sure these get through, esp with dynamic WP sitmap plugin + location = /robots.txt { + try_files $uri /index.php; + } + + location = /sitemap.xml { + try_files $uri /index.php; + } + + location = /sitemap.xml.gz { + try_files $uri /index.php; + } + + # Fix for Firefox issue with cross site font icons + location ~* \.(eot|otf|ttf|woff)$ { + add_header Access-Control-Allow-Origin *; + } + + # Redirect server error pages to the static page /50x.html + # Make sure 50x.html exists at that location + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + # Cache everything by default + set $skip_cache 0; + + # POST requests and urls with a query string should always go to PHP + if ($request_method = POST) { + set $skip_cache 1; + } + if ($query_string != "") { + set $skip_cache 1; + } + + # Don't cache uris containing the following segments + if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") { + set $skip_cache 1; + } + + # Don't use the cache for logged in users or recent commenters + if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { + set $skip_cache 1; + } + + # Pass all .php files onto a php-fpm/php-fcgi server. + location ~ [^/]\.php(/|$) { + # regex to split $uri to $fastcgi_script_name and $fastcgi_path + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + # Check that the PHP script exists before passing it + try_files $fastcgi_script_name =404; + + # Bypass the fact that try_files resets $fastcgi_path_info + # see: http://trac.nginx.org/nginx/ticket/321 + set $path_info $fastcgi_path_info; + fastcgi_param PATH_INFO $path_info; + + fastcgi_pass unix:/var/run/example.com.sock; + fastcgi_index index.php; + # Uncomment if site is HTTPS + #fastcgi_param HTTPS on; + include fastcgi.conf; + + fastcgi_cache_bypass $skip_cache; + fastcgi_no_cache $skip_cache; + + fastcgi_cache WORDPRESS; + fastcgi_cache_valid 60m; + } + + location ~ /purge(/.*) { + fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; + } + + # Use this block if PHPMyAdmin is enabled for this domain + location /phpmyadmin { + root /usr/share/; + index index.php index.html index.htm; + + location ~ ^/phpmyadmin/(.+\.php)$ { + try_files $uri =404; + root /usr/share/; + fastcgi_pass unix:/var/run/example.com.sock; + fastcgi_index index.php; + include fastcgi.conf; + } + + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } + } + + location /phpMyAdmin { + rewrite ^/* /phpmyadmin last; + } + # End PHPMyAdmin block + +} # End of server block. diff --git a/samples/Nu/nu.script! b/samples/Nu/nu similarity index 100% rename from samples/Nu/nu.script! rename to samples/Nu/nu diff --git a/samples/OCaml/cmdliner.ml b/samples/OCaml/cmdliner.ml new file mode 100644 index 00000000..71e49e85 --- /dev/null +++ b/samples/OCaml/cmdliner.ml @@ -0,0 +1,1344 @@ +(*--------------------------------------------------------------------------- + Copyright (c) 2011 Daniel C. Bünzli. All rights reserved. + Distributed under a BSD3 license, see license at the end of the file. + %%NAME%% release %%VERSION%% + ---------------------------------------------------------------------------*) + +(* Invalid_arg strings *) + +let err_argv = "argv array must have at least one element" +let err_not_opt = "Option argument without name" +let err_not_pos = "Positional argument with a name" +let err_help s = "term error, help requested for unknown command " ^ s +let err_empty_list = "empty list" + +(* A few useful definitions. *) + +let rev_compare n n' = compare n' n +let str = Printf.sprintf +let pr = Format.fprintf +let pr_str = Format.pp_print_string +let pr_char = Format.pp_print_char +let str_of_pp pp v = pp Format.str_formatter v; Format.flush_str_formatter () +let quote s = str "`%s'" s +let alts_str ?(quoted = true) alts = + let quote = if quoted then quote else (fun s -> s) in + match alts with + | [] -> invalid_arg err_empty_list + | [a] -> (quote a) + | [a; b] -> str "either %s or %s" (quote a) (quote b) + | alts -> + let rev_alts = List.rev alts in + str "one of %s or %s" + (String.concat ", " (List.rev_map quote (List.tl rev_alts))) + (quote (List.hd rev_alts)) + +let pr_white_str spaces ppf s = (* spaces and new lines with Format's funs *) + let left = ref 0 and right = ref 0 and len = String.length s in + let flush () = + Format.pp_print_string ppf (String.sub s !left (!right - !left)); + incr right; left := !right; + in + while (!right <> len) do + if s.[!right] = '\n' then (flush (); Format.pp_force_newline ppf ()) else + if spaces && s.[!right] = ' ' then (flush (); Format.pp_print_space ppf ()) + else incr right; + done; + if !left <> len then flush () + +let pr_text = pr_white_str true +let pr_lines = pr_white_str false +let pr_to_temp_file pr v = try + let exec = Filename.basename Sys.argv.(0) in + let file, oc = Filename.open_temp_file exec "out" in + let ppf = Format.formatter_of_out_channel oc in + pr ppf v; Format.pp_print_flush ppf (); close_out oc; + at_exit (fun () -> try Sys.remove file with Sys_error e -> ()); + Some file +with Sys_error _ -> None + +(* Levenshtein distance, for making spelling suggestions in case of error. *) + +let levenshtein_distance s t = + (* As found here http://rosettacode.org/wiki/Levenshtein_distance#OCaml *) + let minimum a b c = min a (min b c) in + let m = String.length s in + let n = String.length t in + (* for all i and j, d.(i).(j) will hold the Levenshtein distance between + the first i characters of s and the first j characters of t *) + let d = Array.make_matrix (m+1) (n+1) 0 in + for i = 0 to m do d.(i).(0) <- i done; + for j = 0 to n do d.(0).(j) <- j done; + for j = 1 to n do + for i = 1 to m do + if s.[i-1] = t.[j-1] then + d.(i).(j) <- d.(i-1).(j-1) (* no operation required *) + else + d.(i).(j) <- minimum + (d.(i-1).(j) + 1) (* a deletion *) + (d.(i).(j-1) + 1) (* an insertion *) + (d.(i-1).(j-1) + 1) (* a substitution *) + done; + done; + d.(m).(n) + +let suggest s candidates = + let add (min, acc) name = + let d = levenshtein_distance s name in + if d = min then min, (name :: acc) else + if d < min then d, [name] else + min, acc + in + let dist, suggs = List.fold_left add (max_int, []) candidates in + if dist < 3 (* suggest only if not too far *) then suggs else [] + +(* Tries. This implementation also maps any non ambiguous prefix of a + key to its value. *) + +module Trie : sig + type 'a t + val empty : 'a t + val is_empty : 'a t -> bool + val add : 'a t -> string -> 'a -> 'a t + val find : 'a t -> string -> [ `Ok of 'a | `Ambiguous | `Not_found ] + val ambiguities : 'a t -> string -> string list + val of_list : (string * 'a) list -> 'a t +end = struct + module Cmap = Map.Make (Char) (* character maps. *) + type 'a value = (* type for holding a bound value. *) + | Pre of 'a (* value is bound by the prefix of a key. *) + | Key of 'a (* value is bound by an entire key. *) + | Amb (* no value bound because of ambiguous prefix. *) + | Nil (* not bound (only for the empty trie). *) + + type 'a t = { v : 'a value; succs : 'a t Cmap.t } + let empty = { v = Nil; succs = Cmap.empty } + let is_empty t = t = empty + + (* N.B. If we replace a non-ambiguous key, it becomes ambiguous but it's + not important for our use. Also the following is not tail recursive but + the stack is bounded by key length. *) + let add t k d = + let rec aux t k len i d pre_d = + if i = len then { v = Key d; succs = t.succs } else + let v = match t.v with + | Amb | Pre _ -> Amb | Key _ as v -> v | Nil -> pre_d + in + let succs = + let t' = try Cmap.find k.[i] t.succs with Not_found -> empty in + Cmap.add k.[i] (aux t' k len (i + 1) d pre_d) t.succs + in + { v; succs } + in + aux t k (String.length k) 0 d (Pre d (* allocate less *)) + + let find_node t k = + let rec aux t k len i = + if i = len then t else + aux (Cmap.find k.[i] t.succs) k len (i + 1) + in + aux t k (String.length k) 0 + + let find t k = + try match (find_node t k).v with + | Key v | Pre v -> `Ok v | Amb -> `Ambiguous | Nil -> `Not_found + with Not_found -> `Not_found + + let ambiguities t p = (* ambiguities of [p] in [t]. *) + try + let t = find_node t p in + match t.v with + | Key _ | Pre _ | Nil -> [] + | Amb -> + let add_char s c = s ^ (String.make 1 c) in + let rem_char s = String.sub s 0 ((String.length s) - 1) in + let to_list m = Cmap.fold (fun k t acc -> (k,t) :: acc) m [] in + let rec aux acc p = function + | ((c, t) :: succs) :: rest -> + let p' = add_char p c in + let acc' = match t.v with + | Pre _ | Amb -> acc + | Key _ -> (p' :: acc) + | Nil -> assert false + in + aux acc' p' ((to_list t.succs) :: succs :: rest) + | [] :: [] -> acc + | [] :: rest -> aux acc (rem_char p) rest + | [] -> assert false + in + aux [] p (to_list t.succs :: []) + with Not_found -> [] + + let of_list l = List.fold_left (fun t (s, v) -> add t s v) empty l +end + +(* The following types keep untyped information about arguments and + terms. This data is used to parse the command line, report errors + and format man page information. *) + +type absence = (* what happens if the argument is absent from the cl. *) + | Error (* an error is reported. *) + | Val of string Lazy.t (* if <> "", takes the given default value. *) + +type opt_kind = (* kinds of optional arguments. *) + | Flag (* just a flag, without value. *) + | Opt (* value is required. *) + | Opt_vopt of string (* option value is optional, takes given default. *) + +type pos_kind = (* kinds of positional arguments. *) + | All (* all positional arguments. *) + | Nth of bool * int (* specific position. *) + | Left of bool * int (* all args on the left of a position. *) + | Right of bool * int (* all args on the right of a position. *) + +type arg_info = (* information about a command line argument. *) + { id : int; (* unique id for the argument. *) + absent : absence; (* behaviour if absent. *) + doc : string; (* help. *) + docv : string; (* variable name for the argument in help. *) + docs : string; (* title of help section where listed. *) + p_kind : pos_kind; (* positional arg kind. *) + o_kind : opt_kind; (* optional arg kind. *) + o_names : string list; (* names (for opt args). *) + o_all : bool; } (* repeatable (for opt args). *) + +let arg_id = (* thread-safe UIDs, Oo.id (object end) was used before. *) + let c = ref 0 in + fun () -> + let id = !c in + incr c; if id > !c then assert false (* too many ids *) else id + +let is_opt a = a.o_names <> [] +let is_pos a = a.o_names = [] + +module Amap = Map.Make (* arg info maps. *) + (struct type t = arg_info let compare a a' = compare a.id a'.id end) + +type arg = (* unconverted argument data as found on the command line. *) + | O of (int * string * (string option)) list (* (pos, name, value) of opt. *) + | P of string list + +type cmdline = arg Amap.t (* command line, maps arg_infos to arg value. *) + +type man_block = [ (* block of manpage text. *) + | `S of string | `P of string | `I of string * string | `Noblank ] + +type term_info = + { name : string; (* name of the term. *) + version : string option; (* version (for --version). *) + tdoc : string; (* one line description of term. *) + tdocs : string; (* title of man section where listed (commands). *) + sdocs : string; (* standard options, title of section where listed. *) + man : man_block list; } (* man page text. *) + +type eval_info = (* information about the evaluation context. *) + { term : term_info * arg_info list; (* term being evaluated. *) + main : term_info * arg_info list; (* main term. *) + choices : (term_info * arg_info list) list} (* all term choices. *) + +let eval_kind ei = (* evaluation with multiple terms ? *) + if ei.choices = [] then `Simple else + if (fst ei.term) == (fst ei.main) then `M_main else `M_choice + +module Manpage = struct + type title = string * int * string * string * string + type block = man_block + type t = title * block list + + let p_indent = 7 (* paragraph indentation. *) + let l_indent = 4 (* label indentation. *) + let escape subst esc buf s = + let subst s = + let len = String.length s in + if not (len > 1 && s.[1] = ',') then (subst s) else + if len = 2 then "" else + esc s.[0] (String.sub s 2 (len - 2)) + in + Buffer.clear buf; Buffer.add_substitute buf subst s; + let s = Buffer.contents buf in (* twice for $(i,$(mname)). *) + Buffer.clear buf; Buffer.add_substitute buf subst s; + Buffer.contents buf + + let pr_tokens ?(groff = false) ppf s = + let is_space = function ' ' | '\n' | '\r' | '\t' -> true | _ -> false in + let len = String.length s in + let i = ref 0 in + try while (true) do + while (!i < len && is_space s.[!i]) do incr i done; + let start = !i in + if start = len then raise Exit; + while (!i < len && not (is_space s.[!i]) && not (s.[!i] = '-')) do + incr i + done; + pr_str ppf (String.sub s start (!i - start)); + if !i = len then raise Exit; + if s.[!i] = '-' then + (incr i; if groff then pr_str ppf "\\-" else pr_char ppf '-'); + if (!i < len && is_space s.[!i]) then + (if groff then pr_char ppf ' ' else Format.pp_print_space ppf ()) + done with Exit -> () + + (* Plain text output *) + + let plain_esc c s = match c with 'g' -> "" (* groff specific *) | _ -> s + let pr_indent ppf c = for i = 1 to c do pr_char ppf ' ' done + let pr_plain_blocks subst ppf ts = + let buf = Buffer.create 1024 in + let escape t = escape subst plain_esc buf t in + let pr_tokens ppf t = pr_tokens ppf (escape t) in + let rec aux = function + | [] -> () + | t :: ts -> + begin match t with + | `Noblank -> () + | `P s -> pr ppf "%a@[%a@]@," pr_indent p_indent pr_tokens s + | `S s -> pr ppf "@[%a@]" pr_tokens s + | `I (label, s) -> + let label = escape label in + let ll = String.length label in + pr ppf "@[%a@[%a@]" pr_indent p_indent pr_tokens label; + if s = "" then () else + if ll < l_indent then + pr ppf "%a@[%a@]@]@," pr_indent (l_indent - ll) pr_tokens s + else + pr ppf "@\n%a@[%a@]@]@," + pr_indent (p_indent + l_indent) pr_tokens s + end; + begin match ts with + | `Noblank :: ts -> aux ts + | ts -> Format.pp_print_cut ppf (); aux ts + end + in + aux ts + + let pr_plain_page subst ppf (_, text) = + pr ppf "@[%a@]" (pr_plain_blocks subst) text + + (* Groff output *) + + let groff_esc c s = match c with + | 'i' -> (str "\\fI%s\\fR" s) + | 'b' -> (str "\\fB%s\\fR" s) + | 'p' -> "" (* plain text specific *) + | _ -> s + + let pr_groff_blocks subst ppf text = + let buf = Buffer.create 1024 in + let escape t = escape subst groff_esc buf t in + let pr_tokens ppf t = pr_tokens ~groff:true ppf (escape t) in + let pr_block = function + | `P s -> pr ppf "@\n.P@\n%a" pr_tokens s + | `S s -> pr ppf "@\n.SH %a" pr_tokens s + | `Noblank -> pr ppf "@\n.sp -1" + | `I (l, s) -> pr ppf "@\n.TP 4@\n%a@\n%a" pr_tokens l pr_tokens s + in + List.iter pr_block text + + let pr_groff_page subst ppf ((n, s, a1, a2, a3), t) = + pr ppf ".\\\" Pipe this output to groff -man -Tutf8 | less@\n\ + .\\\"@\n\ + .TH \"%s\" %d \"%s\" \"%s\" \"%s\"@\n\ + .\\\" Disable hyphenantion and ragged-right@\n\ + .nh@\n\ + .ad l\ + %a@?" + n s a1 a2 a3 (pr_groff_blocks subst) t + + (* Printing to a pager *) + + let find_cmd cmds = + let test, null = match Sys.os_type with + | "Win32" -> "where", " NUL" + | _ -> "type", "/dev/null" + in + let cmd c = Sys.command (str "%s %s 1>%s 2>%s" test c null null) = 0 in + try Some (List.find cmd cmds) with Not_found -> None + + let pr_to_pager print ppf v = + let pager = + let cmds = ["less"; "more"] in + let cmds = try (Sys.getenv "PAGER") :: cmds with Not_found -> cmds in + let cmds = try (Sys.getenv "MANPAGER") :: cmds with Not_found -> cmds in + find_cmd cmds + in + match pager with + | None -> print `Plain ppf v + | Some pager -> + let cmd = match (find_cmd ["groff"; "nroff"]) with + | None -> + begin match pr_to_temp_file (print `Plain) v with + | None -> None + | Some f -> Some (str "%s < %s" pager f) + end + | Some c -> + begin match pr_to_temp_file (print `Groff) v with + | None -> None + | Some f -> + (* TODO use -Tutf8, but annoyingly maps U+002D to U+2212. *) + let xroff = if c = "groff" then c ^ " -Tascii -P-c" else c in + Some (str "%s -man < %s | %s" xroff f pager) + end + in + match cmd with + | None -> print `Plain ppf v + | Some cmd -> if (Sys.command cmd) <> 0 then print `Plain ppf v + + let rec print ?(subst = fun x -> x) fmt ppf page = match fmt with + | `Pager -> pr_to_pager (print ~subst) ppf page + | `Plain -> pr_plain_page subst ppf page + | `Groff -> pr_groff_page subst ppf page +end + +module Help = struct + let invocation ?(sep = ' ') ei = match eval_kind ei with + | `Simple | `M_main -> (fst ei.main).name + | `M_choice -> str "%s%c%s" (fst ei.main).name sep (fst ei.term).name + + let title ei = + let prog = String.capitalize (fst ei.main).name in + let name = String.uppercase (invocation ~sep:'-' ei) in + let left_footer = prog ^ match (fst ei.main).version with + | None -> "" | Some v -> str " %s" v + in + let center_header = str "%s Manual" prog in + name, 1, "", left_footer, center_header + + let name_section ei = + let tdoc d = if d = "" then "" else (str " - %s" d) in + [`S "NAME"; `P (str "%s%s" (invocation ~sep:'-' ei) + (tdoc (fst ei.term).tdoc)); ] + + let synopsis ei = match eval_kind ei with + | `M_main -> str "$(b,%s) $(i,COMMAND) ..." (invocation ei) + | `Simple | `M_choice -> + let rev_cmp (p, _) (p', _) = match p', p with (* best effort. *) + | p, All -> -1 | All, p -> 1 + | Left _, Right _ -> -1 | Right _, Left _ -> 1 + | Left (false, k), Nth (false, k') + | Nth (false, k), Nth (false, k') + | Nth (false, k), Right (false, k') -> if k <= k' then -1 else 1 + | Nth (false, k), Left (false, k') + | Right (false, k), Nth (false, k') -> if k >= k' then 1 else -1 + | Left (true, k), Nth (true, k') + | Nth (true, k), Nth (true, k') + | Nth (true, k), Right (true, k') -> if k >= k' then -1 else 1 + | Nth (true, k), Left (true, k') + | Right (true, k), Nth (true, k') -> if k <= k' then 1 else -1 + | p, p' -> compare p p' + in + let rec format_pos acc = function + | a :: al -> + if is_opt a then format_pos acc al else + let v = if a.docv = "" then "$(i,ARG)" else str "$(i,%s)" a.docv in + let v = if a.absent = Error then str "%s" v else str "[%s]" v in + let v = v ^ match a.p_kind with Nth _ -> "" | _ -> "..." in + format_pos ((a.p_kind, v) :: acc) al + | [] -> acc + in + let args = List.sort rev_cmp (format_pos [] (snd ei.term)) in + let args = String.concat " " (List.rev_map snd args) in + str "$(b,%s) [$(i,OPTION)]... %s" (invocation ei) args + + let get_synopsis_section ei = + let rec extract_synopsis syn = function + | `S _ :: _ as man -> List.rev syn, man + | block :: rest -> extract_synopsis (block :: syn) rest + | [] -> List.rev syn, [] + in + match (fst ei.term).man with + | `S "SYNOPSIS" as s :: rest -> extract_synopsis [s] rest (* user-defined *) + | man -> [ `S "SYNOPSIS"; `P (synopsis ei); ], man (* automatic *) + + let make_arg_label a = + if is_pos a then str "$(i,%s)" a.docv else + let fmt_name var = match a.o_kind with + | Flag -> fun n -> str "$(b,%s)" n + | Opt -> + fun n -> + if String.length n > 2 then str "$(b,%s)=$(i,%s)" n var else + str "$(b,%s) $(i,%s)" n var + | Opt_vopt _ -> + fun n -> + if String.length n > 2 then str "$(b,%s)[=$(i,%s)]" n var else + str "$(b,%s) [$(i,%s)]" n var + in + let var = if a.docv = "" then "VAL" else a.docv in + let names = List.sort compare a.o_names in + let s = String.concat ", " (List.rev_map (fmt_name var) names) in + s + + let make_arg_items ei = + let buf = Buffer.create 200 in + let subst_docv docv d = + let subst = function "docv" -> str "$(i,%s)" docv | s -> str "$(%s)" s in + Buffer.clear buf; Buffer.add_substitute buf subst d; Buffer.contents buf + in + let rev_cmp a' a = + let c = compare a.docs a'.docs in + if c <> 0 then c else + match is_opt a, is_opt a' with + | true, true -> + let key names = + let k = String.lowercase (List.hd (List.sort rev_compare names)) in + if k.[1] = '-' then String.sub k 1 (String.length k - 1) else k + in + compare (key a.o_names) (key a'.o_names) + | false, false -> + compare (String.lowercase a.docv) (String.lowercase a'.docv) + | true, false -> -1 + | false, true -> 1 + in + let format a = + let absent = match a.absent with + | Error -> "" + | Val v -> match Lazy.force v with "" -> "" | v -> str "absent=%s" v + in + let optvopt = match a.o_kind with + | Opt_vopt v -> str "default=%s" v + | _ -> "" + in + let argvdoc = match absent, optvopt with + | "", "" -> "" + | s, "" | "", s -> str " (%s)" s + | s, s' -> str " (%s, %s)" s s' + in + (a.docs, `I (make_arg_label a ^ argvdoc, (subst_docv a.docv a.doc))) + in + let is_arg_item a = not (is_pos a && (a.docv = "" || a.doc = "")) in + let l = List.sort rev_cmp (List.filter is_arg_item (snd ei.term)) in + List.rev_map format l + + let make_cmd_items ei = match eval_kind ei with + | `Simple | `M_choice -> [] + | `M_main -> + let add_cmd acc (ti, _) = + (ti.tdocs, `I ((str "$(b,%s)" ti.name), ti.tdoc)) :: acc + in + List.sort rev_compare (List.fold_left add_cmd [] ei.choices) + + let text ei = (* man that code is particulary unreadable. *) + let rec merge_items acc to_insert mark il = function + | `S s as sec :: ts -> + let acc = List.rev_append to_insert acc in + let acc = if mark then sec :: `Orphan_mark :: acc else sec :: acc in + let to_insert, il = List.partition (fun (n, _) -> n = s) il in + let to_insert = List.rev_map (fun (_, i) -> i) to_insert in + let to_insert = (to_insert :> [ `Orphan_mark | Manpage.block] list) in + merge_items acc to_insert (s = "DESCRIPTION") il ts + | t :: ts -> + let t = (t :> [`Orphan_mark | Manpage.block]) in + merge_items (t :: acc) to_insert mark il ts + | [] -> + let acc = List.rev_append to_insert acc in + (if mark then `Orphan_mark :: acc else acc), il + in + let rec merge_orphans acc orphans = function + | `Orphan_mark :: ts -> + let rec merge acc s = function + | [] -> (`S s) :: acc + | (s', i) :: ss -> + let i = (i :> Manpage.block) in + if s = s' then merge (i :: acc) s ss else + merge (i :: (`S s) :: acc) s' ss + in + let acc = match orphans with + | [] -> acc | (s, _) :: _ -> merge acc s orphans + in + merge_orphans acc [] ts + | (#Manpage.block as e) :: ts -> merge_orphans (e :: acc) orphans ts + | [] -> acc + in + let cmds = make_cmd_items ei in + let args = make_arg_items ei in + let cmp (s, _) (s', _) = compare s s' in + let items = List.rev (List.stable_sort cmp (List.rev_append cmds args)) in + let synopsis, man = get_synopsis_section ei in + let rev_text, orphans = + merge_items [`Orphan_mark] [] false items man + in + synopsis @ merge_orphans [] orphans rev_text + + let ei_subst ei = function + | "tname" -> (fst ei.term).name + | "mname" -> (fst ei.main).name + | s -> s + + let man ei = + title ei, (name_section ei) @ (text ei) + + let print fmt ppf ei = Manpage.print ~subst:(ei_subst ei) fmt ppf (man ei) + let pr_synopsis ppf ei = + pr ppf "@[%s@]" + (Manpage.escape (ei_subst ei) + Manpage.plain_esc (Buffer.create 100) (synopsis ei)) + + let pr_version ppf ei = match (fst ei.main).version with + | None -> assert false + | Some v -> pr ppf "@[%a@]@." pr_text v +end + +(* Errors for the command line user *) + +module Err = struct + let invalid kind s exp = str "invalid %s %s, %s" kind (quote s) exp + let invalid_val = invalid "value" + let no kind s = str "no %s %s" (quote s) kind + let not_dir s = str "%s is not a directory" (quote s) + let is_dir s = str "%s is a directory" (quote s) + let element kind s exp = str "invalid element in %s (`%s'): %s" kind s exp + let sep_miss sep s = invalid_val s (str "missing a `%c' separator" sep) + let unknown kind ?(hints = []) v = + let did_you_mean s = str ", did you mean %s ?" s in + let hints = match hints with [] -> "." | hs -> did_you_mean (alts_str hs) in + str "unknown %s %s%s" kind (quote v) hints + + let ambiguous kind s ambs = + str "%s %s ambiguous and could be %s" kind (quote s) (alts_str ambs) + + let pos_excess excess = + str "too many arguments, don't know what to do with %s" + (String.concat ", " (List.map quote excess)) + + let flag_value f v = + str "option %s is a flag, it cannot take the argument %s" + (quote f) (quote v) + + let opt_value_missing f = str "option %s needs an argument" (quote f) + let opt_parse_value f e = str "option %s: %s" (quote f) e + let opt_repeated f f' = + if f = f' then str "option %s cannot be repeated" (quote f) else + str "options %s and %s cannot be present at the same time" (quote f) + (quote f') + + let pos_parse_value a e = + if a.docv = "" then e else match a.p_kind with + | Nth _ -> str "%s argument: %s" a.docv e + | _ -> str "%s... arguments: %s" a.docv e + + let arg_missing a = + if is_opt a then + let rec long_name = function + | n :: l -> if (String.length n) > 2 || l = [] then n else long_name l + | [] -> assert false + in + str "required option %s is missing" (long_name a.o_names) + else + if a.docv = "" then str "a required argument is missing" else + str "required argument %s is missing" a.docv + + (* Error printers *) + + let print ppf ei e = pr ppf "%s: @[%a@]@." (fst ei.main).name pr_text e + let pr_backtrace err ei e bt = + let bt = + let len = String.length bt in + if len > 0 then String.sub bt 0 (len - 1) (* remove final '\n' *) else bt + in + pr err + "%s: @[internal error, uncaught exception:@\n%a@]@." + (fst ei.main).name pr_lines (str "%s\n%s" (Printexc.to_string e) bt) + + let pr_try_help ppf ei = + let exec = Help.invocation ei in + let main = (fst ei.main).name in + if exec = main then + pr ppf "@[<2>Try `%s --help' for more information.@]" exec + else + pr ppf "@[<2>Try `%s --help' or `%s --help' for more information.@]" + exec main + + let pr_usage ppf ei e = + pr ppf "@[%s: @[%a@]@,@[Usage: @[%a@]@]@,%a@]@." + (fst ei.main).name pr_text e Help.pr_synopsis ei pr_try_help ei +end + +(* Command lines. A command line stores pre-parsed information about + the command line's arguments in a more structured way. Given the + [arg_info] values mentionned in a term and Sys.argv (whithout exec + name) we parse the command line into a map of [arg_info] values to + [arg] values. This map is used by the term's closures to retrieve + and convert command line arguments (see the Arg module). *) + +module Cmdline :sig + exception Error of string + val choose_term : term_info -> (term_info * 'a) list -> string list -> + term_info * string list + val create : ?peek_opts:bool -> arg_info list -> string list -> cmdline + val opt_arg : cmdline -> arg_info -> (int * string * (string option)) list + val pos_arg : cmdline -> arg_info -> string list +end = struct + exception Error of string + + let opt_arg cl a = match try Amap.find a cl with Not_found -> assert false + with O l -> l | _ -> assert false + + let pos_arg cl a = match try Amap.find a cl with Not_found -> assert false + with P l -> l | _ -> assert false + + let choose_term ti choices = function + | [] -> ti, [] + | maybe :: args' as args -> + if String.length maybe > 1 && maybe.[0] = '-' then ti, args else + let index = + let add acc (choice, _) = Trie.add acc choice.name choice in + List.fold_left add Trie.empty choices + in + match Trie.find index maybe with + | `Ok choice -> choice, args' + | `Not_found -> + let all = Trie.ambiguities index "" in + let hints = suggest maybe all in + raise (Error (Err.unknown "command" ~hints maybe)) + | `Ambiguous -> + let ambs = List.sort compare (Trie.ambiguities index maybe) in + raise (Error (Err.ambiguous "command" maybe ambs)) + + let arg_info_indexes al = + (* from [al] returns a trie mapping the names of optional arguments to + their arg_info, a list with all arg_info for positional arguments and + a cmdline mapping each arg_info to an empty [arg]. *) + let rec aux opti posi cl = function + | a :: l -> + if is_pos a then aux opti (a :: posi) (Amap.add a (P []) cl) l else + let add t name = Trie.add t name a in + aux (List.fold_left add opti a.o_names) posi (Amap.add a (O []) cl) l + | [] -> opti, posi, cl + in + aux Trie.empty [] Amap.empty al + + let parse_opt_arg s = (* (name,value) of opt arg, assert len > 1. *) + let l = String.length s in + if s.[1] <> '-' then + if l = 2 then s, None else + String.sub s 0 2, Some (String.sub s 2 (l - 2)) + else try + let i = String.index s '=' in + String.sub s 0 i, Some (String.sub s (i + 1) (l - i - 1)) + with Not_found -> s, None + + let parse_args ~peek_opts opti cl args = + (* returns an updated [cl] cmdline according to the options found in [args] + with the trie index [opti]. Positional arguments are returned in order + in a list. *) + let rec aux k opti cl pargs = function + | [] -> cl, (List.rev pargs) + | "--" :: args -> cl, (List.rev_append pargs args) + | s :: args -> + let is_opt s = String.length s > 1 && s.[0] = '-' in + let is_short_opt s = String.length s = 2 && s.[0] = '-' in + if not (is_opt s) then aux (k+1) opti cl (s :: pargs) args else + let name, value = parse_opt_arg s in + match Trie.find opti name with + | `Ok a -> + let value, args = match value, a.o_kind with + | Some v, Flag when is_short_opt name -> None, ("-" ^ v) :: args + | Some v, _ -> value, args + | None, Flag -> value, args + | None, _ -> + match args with + | v :: rest -> if is_opt v then None, args else Some v, rest + | [] -> None, args + in + let arg = O ((k, name, value) :: opt_arg cl a) in + aux (k+1) opti (Amap.add a arg cl) pargs args + | `Not_found when peek_opts -> aux (k+1) opti cl pargs args (* skip *) + | `Not_found -> + let hints = + if String.length s <= 2 then [] else + let short_opt, long_opt = + if s.[1] <> '-' + then s, Printf.sprintf "-%s" s + else String.sub s 1 (String.length s - 1), s + in + let short_opt, _ = parse_opt_arg short_opt in + let long_opt, _ = parse_opt_arg long_opt in + let all = Trie.ambiguities opti "-" in + match List.mem short_opt all, suggest long_opt all with + | false, [] -> [] + | false, l -> l + | true, [] -> [short_opt] + | true, l -> if List.mem short_opt l then l else short_opt :: l + in + raise (Error (Err.unknown "option" ~hints name)) + | `Ambiguous -> + let ambs = List.sort compare (Trie.ambiguities opti name) in + raise (Error (Err.ambiguous "option" name ambs)) + in + aux 0 opti cl [] args + + let process_pos_args posi cl pargs = + (* returns an updated [cl] cmdline in which each positional arg mentionned + in the list index posi, is given a value according the list + of positional arguments values [pargs]. *) + if pargs = [] then cl else + let rec take n acc l = + if n = 0 then List.rev acc else + take (n - 1) (List.hd l :: acc) (List.tl l) + in + let rec aux pargs last cl max_spec = function + | a :: al -> + let arg, max_spec = match a.p_kind with + | All -> P pargs, last + | Nth (rev, k) -> + let k = if rev then last - k else k in + let max_spec = max k max_spec in + if k < 0 || k > last then P [], max_spec else + P ([List.nth pargs k]), max_spec + | Left (rev, k) -> + let k = if rev then last - k else k in + let max_spec = max k max_spec in + if k <= 0 || k > last then P [], max_spec else + P (take k [] pargs), max_spec + | Right (rev, k) -> + let k = if rev then last - k else k in + if k < 0 || k >= last then P [], last else + P (List.rev (take (last - k) [] (List.rev pargs))), last + in + aux pargs last (Amap.add a arg cl) max_spec al + | [] -> cl, max_spec + in + let last = List.length pargs - 1 in + let cl, max_spec = aux pargs last cl (-1) posi in + if last <= max_spec then cl else + let excess = List.rev (take (last - max_spec) [] (List.rev pargs)) in + raise (Error (Err.pos_excess excess)) + + let create ?(peek_opts = false) al args = + let opti, posi, cl = arg_info_indexes al in + let cl, pargs = parse_args ~peek_opts opti cl args in + if peek_opts then cl (* skip positional arguments *) else + process_pos_args posi cl pargs +end + +module Arg = struct + type 'a parser = string -> [ `Ok of 'a | `Error of string ] + type 'a printer = Format.formatter -> 'a -> unit + type 'a converter = 'a parser * 'a printer + type 'a arg_converter = (eval_info -> cmdline -> 'a) + type 'a t = arg_info list * 'a arg_converter + type info = arg_info + + let ( & ) f x = f x + let parse_error e = raise (Cmdline.Error e) + let some ?(none = "") (parse, print) = + (fun s -> match parse s with `Ok v -> `Ok (Some v) | `Error _ as e -> e), + (fun ppf v -> match v with None -> pr_str ppf none| Some v -> print ppf v) + + let info ?docs ?(docv = "") ?(doc = "") names = + let dash n = if String.length n = 1 then "-" ^ n else "--" ^ n in + let docs = match docs with + | None -> if names = [] then "ARGUMENTS" else "OPTIONS" + | Some s -> s + in + { id = arg_id (); absent = Val (Lazy.from_val ""); + doc = doc; docv = docv; docs = docs; + p_kind = All; o_kind = Flag; o_names = List.rev_map dash names; + o_all = false; } + + let flag a = + if is_pos a then invalid_arg err_not_opt else + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> false + | [_, _, None] -> true + | [_, f, Some v] -> parse_error (Err.flag_value f v) + | (_, f, _) :: (_ ,g, _) :: _ -> parse_error (Err.opt_repeated f g) + in + [a], convert + + let flag_all a = + if is_pos a then invalid_arg err_not_opt else + let a = { a with o_all = true } in + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> [] + | l -> + let truth (_, f, v) = match v with + | None -> true | Some v -> parse_error (Err.flag_value f v) + in + List.rev_map truth l + in + [a], convert + + let vflag v l = + let convert _ cl = + let rec aux fv = function + | (v, a) :: rest -> + begin match Cmdline.opt_arg cl a with + | [] -> aux fv rest + | [_, f, None] -> + begin match fv with + | None -> aux (Some (f, v)) rest + | Some (g, _) -> parse_error (Err.opt_repeated g f) + end + | [_, f, Some v] -> parse_error (Err.flag_value f v) + | (_, f, _) :: (_, g, _) :: _ -> parse_error (Err.opt_repeated g f) + end + | [] -> match fv with None -> v | Some (_, v) -> v + in + aux None l + in + let flag (_, a) = if is_pos a then invalid_arg err_not_opt else a in + List.rev_map flag l, convert + + let vflag_all v l = + let convert _ cl = + let rec aux acc = function + | (fv, a) :: rest -> + begin match Cmdline.opt_arg cl a with + | [] -> aux acc rest + | l -> + let fval (k, f, v) = match v with + | None -> (k, fv) | Some v -> parse_error (Err.flag_value f v) + in + aux (List.rev_append (List.rev_map fval l) acc) rest + end + | [] -> + if acc = [] then v else List.rev_map snd (List.sort rev_compare acc) + in + aux [] l + in + let flag (_, a) = + if is_pos a then invalid_arg err_not_opt else { a with o_all = true } + in + List.rev_map flag l, convert + + let parse_opt_value parse f v = match parse v with + | `Ok v -> v | `Error e -> parse_error (Err.opt_parse_value f e) + + let opt ?vopt (parse, print) v a = + if is_pos a then invalid_arg err_not_opt else + let a = { a with absent = Val (lazy (str_of_pp print v)); + o_kind = match vopt with + | None -> Opt | Some dv -> Opt_vopt (str_of_pp print dv) } + in + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> v + | [_, f, Some v] -> parse_opt_value parse f v + | [_, f, None] -> + begin match vopt with + | None -> parse_error (Err.opt_value_missing f) + | Some optv -> optv + end + | (_, f, _) :: (_, g, _) :: _ -> parse_error (Err.opt_repeated g f) + in + [a], convert + + let opt_all ?vopt (parse, print) v a = + if is_pos a then invalid_arg err_not_opt else + let a = { a with absent = Val (Lazy.from_val ""); o_all = true; + o_kind = match vopt with + | None -> Opt | Some dv -> Opt_vopt (str_of_pp print dv) } + in + let convert _ cl = match Cmdline.opt_arg cl a with + | [] -> v + | l -> + let parse (k, f, v) = match v with + | Some v -> (k, parse_opt_value parse f v) + | None -> match vopt with + | None -> parse_error (Err.opt_value_missing f) + | Some dv -> (k, dv) + in + List.rev_map snd (List.sort rev_compare (List.rev_map parse l)) + in + [a], convert + + (* Positional arguments *) + + let parse_pos_value parse a v = match parse v with + | `Ok v -> v | `Error e -> parse_error (Err.pos_parse_value a e) + + let pos ?(rev = false) k (parse, print) v a = + if is_opt a then invalid_arg err_not_pos else + let a = { a with p_kind = Nth (rev, k); + absent = Val (Lazy.from_val (str_of_pp print v)) } + in + let convert _ cl = match Cmdline.pos_arg cl a with + | [] -> v + | [v] -> parse_pos_value parse a v + | _ -> assert false + in + [a], convert + + let pos_list kind (parse, _) v a = + if is_opt a then invalid_arg err_not_pos else + let a = { a with p_kind = kind } in + let convert _ cl = match Cmdline.pos_arg cl a with + | [] -> v + | l -> List.rev (List.rev_map (parse_pos_value parse a) l) + in + [a], convert + + let pos_all c v a = pos_list All c v a + let pos_left ?(rev = false) k = pos_list (Left (rev, k)) + let pos_right ?(rev = false) k = pos_list (Right (rev, k)) + + (* Arguments as terms *) + + let absent_error al = List.rev_map (fun a -> { a with absent = Error }) al + let value a = a + let required (al, convert) = + let al = absent_error al in + let convert ei cl = match convert ei cl with + | Some v -> v + | None -> parse_error (Err.arg_missing (List.hd al)) + in + al, convert + + let non_empty (al, convert) = + let al = absent_error al in + let convert ei cl = match convert ei cl with + | [] -> parse_error (Err.arg_missing (List.hd al)) + | l -> l + in + al, convert + + let last (al, convert) = + let convert ei cl = match convert ei cl with + | [] -> parse_error (Err.arg_missing (List.hd al)) + | l -> List.hd (List.rev l) + in + al, convert + + (* Predefined converters. *) + + let bool = + (fun s -> try `Ok (bool_of_string s) with Invalid_argument _ -> + `Error (Err.invalid_val s (alts_str ["true"; "false"]))), + Format.pp_print_bool + + let char = + (fun s -> if String.length s = 1 then `Ok s.[0] else + `Error (Err.invalid_val s "expected a character")), + pr_char + + let parse_with t_of_str exp s = + try `Ok (t_of_str s) with Failure _ -> `Error (Err.invalid_val s exp) + + let int = + parse_with int_of_string "expected an integer", Format.pp_print_int + + let int32 = + parse_with Int32.of_string "expected a 32-bit integer", + (fun ppf -> pr ppf "%ld") + + let int64 = + parse_with Int64.of_string "expected a 64-bit integer", + (fun ppf -> pr ppf "%Ld") + + let nativeint = + parse_with Nativeint.of_string "expected a processor-native integer", + (fun ppf -> pr ppf "%nd") + + let float = + parse_with float_of_string "expected a floating point number", + Format.pp_print_float + + let string = (fun s -> `Ok s), pr_str + let enum sl = + if sl = [] then invalid_arg err_empty_list else + let sl_inv = List.rev_map (fun (s,v) -> (v,s)) sl in + let print ppf v = pr_str ppf (List.assoc v sl_inv) in + let t = Trie.of_list sl in + let parse s = match Trie.find t s with + | `Ok _ as r -> r + | `Ambiguous -> + let ambs = List.sort compare (Trie.ambiguities t s) in + `Error (Err.ambiguous "enum value" s ambs) + | `Not_found -> + let alts = List.rev (List.rev_map (fun (s, _) -> s) sl) in + `Error (Err.invalid_val s ("expected " ^ (alts_str alts))) + in + parse, print + + let file = + (fun s -> if Sys.file_exists s then `Ok s else + `Error (Err.no "file or directory" s)), + pr_str + + let dir = + (fun s -> + if Sys.file_exists s then + if Sys.is_directory s then `Ok s else `Error (Err.not_dir s) + else + `Error (Err.no "directory" s)), + pr_str + + let non_dir_file = + (fun s -> + if Sys.file_exists s then + if not (Sys.is_directory s) then `Ok s else `Error (Err.is_dir s) + else + `Error (Err.no "file" s)), + pr_str + + let split_and_parse sep parse s = + let parse sub = match parse sub with + | `Error e -> failwith e | `Ok v -> v in + let rec split accum j = + let i = try String.rindex_from s j sep with Not_found -> -1 in + if (i = -1) then + let p = String.sub s 0 (j + 1) in + if p <> "" then parse p :: accum else accum + else + let p = String.sub s (i + 1) (j - i) in + let accum' = if p <> "" then parse p :: accum else accum in + split accum' (i - 1) + in + split [] (String.length s - 1) + + let list ?(sep = ',') (parse, pr_e) = + let parse s = try `Ok (split_and_parse sep parse s) with + | Failure e -> `Error (Err.element "list" s e) + in + let rec print ppf = function + | v :: l -> pr_e ppf v; if (l <> []) then (pr_char ppf sep; print ppf l) + | [] -> () + in + parse, print + + let array ?(sep = ',') (parse, pr_e) = + let parse s = try `Ok (Array.of_list (split_and_parse sep parse s)) with + | Failure e -> `Error (Err.element "array" s e) + in + let print ppf v = + let max = Array.length v - 1 in + for i = 0 to max do pr_e ppf v.(i); if i <> max then pr_char ppf sep done + in + parse, print + + let split_left sep s = + try + let i = String.index s sep in + let len = String.length s in + Some ((String.sub s 0 i), (String.sub s (i + 1) (len - i - 1))) + with Not_found -> None + + let pair ?(sep = ',') (pa0, pr0) (pa1, pr1) = + let parser s = match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v0, v1) -> + match pa0 v0, pa1 v1 with + | `Ok v0, `Ok v1 -> `Ok (v0, v1) + | `Error e, _ | _, `Error e -> `Error (Err.element "pair" s e) + in + let printer ppf (v0, v1) = pr ppf "%a%c%a" pr0 v0 sep pr1 v1 in + parser, printer + + let t2 = pair + let t3 ?(sep = ',') (pa0, pr0) (pa1, pr1) (pa2, pr2) = + let parse s = match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v0, s) -> + match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v1, v2) -> + match pa0 v0, pa1 v1, pa2 v2 with + | `Ok v0, `Ok v1, `Ok v2 -> `Ok (v0, v1, v2) + | `Error e, _, _ | _, `Error e, _ | _, _, `Error e -> + `Error (Err.element "triple" s e) + in + let print ppf (v0, v1, v2) = + pr ppf "%a%c%a%c%a" pr0 v0 sep pr1 v1 sep pr2 v2 + in + parse, print + + let t4 ?(sep = ',') (pa0, pr0) (pa1, pr1) (pa2, pr2) (pa3, pr3) = + let parse s = match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some(v0, s) -> + match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v1, s) -> + match split_left sep s with + | None -> `Error (Err.sep_miss sep s) + | Some (v2, v3) -> + match pa0 v0, pa1 v1, pa2 v2, pa3 v3 with + | `Ok v1, `Ok v2, `Ok v3, `Ok v4 -> `Ok (v1, v2, v3, v4) + | `Error e, _, _, _ | _, `Error e, _, _ | _, _, `Error e, _ + | _, _, _, `Error e -> `Error (Err.element "quadruple" s e) + in + let print ppf (v0, v1, v2, v3) = + pr ppf "%a%c%a%c%a%c%a" pr0 v0 sep pr1 v1 sep pr2 v2 sep pr3 v3 + in + parse, print + + (* Documentation formatting helpers *) + + let doc_quote = quote + let doc_alts = alts_str + let doc_alts_enum ?quoted enum = alts_str ?quoted (List.map fst enum) +end + +module Term = struct + type info = term_info + type +'a t = arg_info list * (eval_info -> cmdline -> 'a) + type 'a result = [ + | `Ok of 'a | `Error of [`Parse | `Term | `Exn ] | `Version | `Help ] + + exception Term of + [ `Help of [`Pager | `Plain | `Groff] * string option + | `Error of bool * string ] + + let info ?(sdocs = "OPTIONS") ?(man = []) ?(docs = "COMMANDS") ?(doc = "") + ?version name = + { name = name; version = version; tdoc = doc; tdocs = docs; sdocs = sdocs; + man = man } + + let name ti = ti.name + let pure v = [], (fun _ _ -> v) + let app (al, f) (al', v) = + List.rev_append al al', + fun ei cl -> (f ei cl) (v ei cl) + + let ( $ ) = app + + type 'a ret = + [ `Help of [`Pager | `Plain | `Groff] * string option + | `Error of (bool * string) + | `Ok of 'a ] + + let ret (al, v) = + al, fun ei cl -> match v ei cl with + | `Ok v -> v + | `Error (u,e) -> raise (Term (`Error (u,e))) + | `Help h -> raise (Term (`Help h)) + + let main_name = [], (fun ei _ -> (fst ei.main).name) + let choice_names = + [], fun ei _ -> List.rev_map (fun e -> (fst e).name) ei.choices + + let man_format = + let fmts = ["pager", `Pager; "groff", `Groff; "plain", `Plain] in + let doc = "Show output in format $(docv) (pager, plain or groff)."in + Arg.(value & opt (enum fmts) `Pager & info ["man-format"] ~docv:"FMT" ~doc) + + (* Evaluation *) + + let remove_exec argv = + try List.tl (Array.to_list argv) with Failure _ -> invalid_arg err_argv + + let add_std_opts ei = + let docs = (fst ei.term).sdocs in + let args, v_lookup = + if (fst ei.main).version = None then [], None else + let (a, lookup) = + Arg.flag (Arg.info ["version"] ~docs ~doc:"Show version information.") + in + a, Some lookup + in + let args, h_lookup = + let (a, lookup) = + let fmt = Arg.enum ["pager",`Pager; "groff",`Groff; "plain",`Plain] in + let doc = "Show this help in format $(docv) (pager, plain or groff)."in + let a = Arg.info ["help"] ~docv:"FMT" ~docs ~doc in + Arg.opt ~vopt:(Some `Pager) (Arg.some fmt) None a + in + List.rev_append a args, lookup + in + h_lookup, v_lookup, + { ei with term = (fst ei.term), List.rev_append args (snd ei.term) } + + let eval_term help err ei f args = + let help_arg, vers_arg, ei = add_std_opts ei in + try + let cl = Cmdline.create (snd ei.term) args in + match help_arg ei cl, vers_arg with + | Some fmt, _ -> Help.print fmt help ei; `Help + | None, Some v_arg when v_arg ei cl -> Help.pr_version help ei; `Version + | _ -> `Ok (f ei cl) + with + | Cmdline.Error e -> Err.pr_usage err ei e; `Error `Parse + | Term (`Error (usage, e)) -> + if usage then Err.pr_usage err ei e else Err.print err ei e; + `Error `Term + | Term (`Help (fmt, cmd)) -> + let ei = match cmd with + | Some cmd -> + let cmd = + try List.find (fun (i, _) -> i.name = cmd) ei.choices + with Not_found -> invalid_arg (err_help cmd) + in + {ei with term = cmd } + | None -> { ei with term = ei.main } + in + let _, _, ei = add_std_opts ei in + Help.print fmt help ei; `Help + + let eval ?(help = Format.std_formatter) ?(err = Format.err_formatter) + ?(catch = true) ?(argv = Sys.argv) ((al, f), ti) = + let term = ti, al in + let ei = { term = term; main = term; choices = [] } in + try eval_term help err ei f (remove_exec argv) with + | e when catch -> + Err.pr_backtrace err ei e (Printexc.get_backtrace ()); `Error `Exn + + let eval_choice ?(help = Format.std_formatter) ?(err = Format.err_formatter) + ?(catch = true) ?(argv = Sys.argv) (((al, f) as t), ti) choices = + let ei_choices = List.rev_map (fun ((al, _), ti) -> ti, al) choices in + let main = (ti, al) in + let ei = { term = main; main = main; choices = ei_choices } in + try + let chosen, args = Cmdline.choose_term ti ei_choices (remove_exec argv) in + let find_chosen (_, ti) = ti = chosen in + let (al, f), _ = List.find find_chosen ((t, ti) :: choices) in + let ei = { ei with term = (chosen, al) } in + eval_term help err ei f args + with + | Cmdline.Error e -> (* may be raised by choose_term. *) + Err.pr_usage err ei e; `Error `Parse + | e when catch -> + Err.pr_backtrace err ei e (Printexc.get_backtrace ()); `Error `Exn + + let eval_peek_opts ?(version_opt = false) ?(argv = Sys.argv) (al, f) = + let args = remove_exec argv in + let version = if version_opt then Some "dummy" else None in + let term = info ?version "dummy", al in + let ei = { term = term; main = term; choices = [] } in + let help_arg, vers_arg, ei = add_std_opts ei in + try + let cl = Cmdline.create ~peek_opts:true (snd ei.term) args in + match help_arg ei cl, vers_arg with + | Some fmt, _ -> + (try (Some (f ei cl), `Help) with e -> None, `Help) + | None, Some v_arg when v_arg ei cl -> + (try (Some (f ei cl), `Version) with e -> None, `Version) + | _ -> + let v = f ei cl in + Some v, `Ok v + with + | Cmdline.Error _ -> None, (`Error `Parse) + | Term _ -> None, (`Error `Term) + | e -> None, (`Error `Exn) +end + +(*--------------------------------------------------------------------------- + Copyright (c) 2011 Daniel C. Bünzli + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. Neither the name of Daniel C. Bünzli nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*) diff --git a/samples/OCaml/common.ml b/samples/OCaml/common.ml new file mode 100644 index 00000000..8f3a9260 --- /dev/null +++ b/samples/OCaml/common.ml @@ -0,0 +1,14 @@ +(* + * Copyright (c) 2013 Jeremy Yallop. + * + * This file is distributed under the terms of the MIT License. + * See the file LICENSE for details. + *) + +let string_of format v = + let buf = Buffer.create 100 in + let fmt = Format.formatter_of_buffer buf in begin + format fmt v; + Format.pp_print_flush fmt (); + Buffer.contents buf + end diff --git a/samples/OCaml/date.ml b/samples/OCaml/date.ml new file mode 100644 index 00000000..70f46d3c --- /dev/null +++ b/samples/OCaml/date.ml @@ -0,0 +1,40 @@ +(* + * Copyright (c) 2013 Jeremy Yallop. + * + * This file is distributed under the terms of the MIT License. + * See the file LICENSE for details. + *) + +open Ctypes +open PosixTypes +open Foreign + +type tm +let tm = structure "tm" +let (-:) ty label = field tm label ty +let tm_sec = int -: "tm_sec" (* seconds *) +let tm_min = int -: "tm_min" (* minutes *) +let tm_hour = int -: "tm_hour" (* hours *) +let tm_mday = int -: "tm_mday" (* day of the month *) +let tm_mon = int -: "tm_mon" (* month *) +let tm_year = int -: "tm_year" (* year *) +let tm_wday = int -: "tm_wday" (* day of the week *) +let tm_yday = int -: "tm_yday" (* day in the year *) +let tm_isdst = int -: "tm_isdst" (* daylight saving time *) +let () = seal (tm : tm structure typ) + +let time = foreign "time" ~check_errno:true (ptr time_t @-> returning time_t) + +let asctime = foreign "asctime" (ptr tm @-> returning string) + +let localtime = foreign "localtime" (ptr time_t @-> returning (ptr tm)) + +let () = begin + let timep = allocate_n ~count:1 time_t in + let time = time timep in + assert (time = !@timep); + let tm = localtime timep in + Printf.printf "tm.tm_mon = %d\n" (getf !@tm tm_mon); + Printf.printf "tm.tm_year = %d\n" (getf !@tm tm_year); + print_endline (asctime tm) +end diff --git a/samples/OCaml/map.ml b/samples/OCaml/map.ml new file mode 100644 index 00000000..7d65bc6b --- /dev/null +++ b/samples/OCaml/map.ml @@ -0,0 +1,337 @@ +(***********************************************************************) +(* *) +(* OCaml *) +(* *) +(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 1996 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the GNU Library General Public License, with *) +(* the special exception on linking described in file ../LICENSE. *) +(* *) +(***********************************************************************) + +module type OrderedType = + sig + type t + val compare: t -> t -> int + end + +module type S = + sig + type key + type +'a t + val empty: 'a t + val is_empty: 'a t -> bool + val mem: key -> 'a t -> bool + val add: key -> 'a -> 'a t -> 'a t + val singleton: key -> 'a -> 'a t + val remove: key -> 'a t -> 'a t + val merge: + (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t + val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int + val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool + val iter: (key -> 'a -> unit) -> 'a t -> unit + val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val for_all: (key -> 'a -> bool) -> 'a t -> bool + val exists: (key -> 'a -> bool) -> 'a t -> bool + val filter: (key -> 'a -> bool) -> 'a t -> 'a t + val partition: (key -> 'a -> bool) -> 'a t -> 'a t * 'a t + val cardinal: 'a t -> int + val bindings: 'a t -> (key * 'a) list + val min_binding: 'a t -> (key * 'a) + val max_binding: 'a t -> (key * 'a) + val choose: 'a t -> (key * 'a) + val split: key -> 'a t -> 'a t * 'a option * 'a t + val find: key -> 'a t -> 'a + val map: ('a -> 'b) -> 'a t -> 'b t + val mapi: (key -> 'a -> 'b) -> 'a t -> 'b t + end + +module Make(Ord: OrderedType) = struct + + type key = Ord.t + + type 'a t = + Empty + | Node of 'a t * key * 'a * 'a t * int + + let height = function + Empty -> 0 + | Node(_,_,_,_,h) -> h + + let create l x d r = + let hl = height l and hr = height r in + Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1)) + + let singleton x d = Node(Empty, x, d, Empty, 1) + + let bal l x d r = + let hl = match l with Empty -> 0 | Node(_,_,_,_,h) -> h in + let hr = match r with Empty -> 0 | Node(_,_,_,_,h) -> h in + if hl > hr + 2 then begin + match l with + Empty -> invalid_arg "Map.bal" + | Node(ll, lv, ld, lr, _) -> + if height ll >= height lr then + create ll lv ld (create lr x d r) + else begin + match lr with + Empty -> invalid_arg "Map.bal" + | Node(lrl, lrv, lrd, lrr, _)-> + create (create ll lv ld lrl) lrv lrd (create lrr x d r) + end + end else if hr > hl + 2 then begin + match r with + Empty -> invalid_arg "Map.bal" + | Node(rl, rv, rd, rr, _) -> + if height rr >= height rl then + create (create l x d rl) rv rd rr + else begin + match rl with + Empty -> invalid_arg "Map.bal" + | Node(rll, rlv, rld, rlr, _) -> + create (create l x d rll) rlv rld (create rlr rv rd rr) + end + end else + Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1)) + + let empty = Empty + + let is_empty = function Empty -> true | _ -> false + + let rec add x data = function + Empty -> + Node(Empty, x, data, Empty, 1) + | Node(l, v, d, r, h) -> + let c = Ord.compare x v in + if c = 0 then + Node(l, x, data, r, h) + else if c < 0 then + bal (add x data l) v d r + else + bal l v d (add x data r) + + let rec find x = function + Empty -> + raise Not_found + | Node(l, v, d, r, _) -> + let c = Ord.compare x v in + if c = 0 then d + else find x (if c < 0 then l else r) + + let rec mem x = function + Empty -> + false + | Node(l, v, d, r, _) -> + let c = Ord.compare x v in + c = 0 || mem x (if c < 0 then l else r) + + let rec min_binding = function + Empty -> raise Not_found + | Node(Empty, x, d, r, _) -> (x, d) + | Node(l, x, d, r, _) -> min_binding l + + let rec max_binding = function + Empty -> raise Not_found + | Node(l, x, d, Empty, _) -> (x, d) + | Node(l, x, d, r, _) -> max_binding r + + let rec remove_min_binding = function + Empty -> invalid_arg "Map.remove_min_elt" + | Node(Empty, x, d, r, _) -> r + | Node(l, x, d, r, _) -> bal (remove_min_binding l) x d r + + let merge t1 t2 = + match (t1, t2) with + (Empty, t) -> t + | (t, Empty) -> t + | (_, _) -> + let (x, d) = min_binding t2 in + bal t1 x d (remove_min_binding t2) + + let rec remove x = function + Empty -> + Empty + | Node(l, v, d, r, h) -> + let c = Ord.compare x v in + if c = 0 then + merge l r + else if c < 0 then + bal (remove x l) v d r + else + bal l v d (remove x r) + + let rec iter f = function + Empty -> () + | Node(l, v, d, r, _) -> + iter f l; f v d; iter f r + + let rec map f = function + Empty -> + Empty + | Node(l, v, d, r, h) -> + let l' = map f l in + let d' = f d in + let r' = map f r in + Node(l', v, d', r', h) + + let rec mapi f = function + Empty -> + Empty + | Node(l, v, d, r, h) -> + let l' = mapi f l in + let d' = f v d in + let r' = mapi f r in + Node(l', v, d', r', h) + + let rec fold f m accu = + match m with + Empty -> accu + | Node(l, v, d, r, _) -> + fold f r (f v d (fold f l accu)) + + let rec for_all p = function + Empty -> true + | Node(l, v, d, r, _) -> p v d && for_all p l && for_all p r + + let rec exists p = function + Empty -> false + | Node(l, v, d, r, _) -> p v d || exists p l || exists p r + + (* Beware: those two functions assume that the added k is *strictly* + smaller (or bigger) than all the present keys in the tree; it + does not test for equality with the current min (or max) key. + + Indeed, they are only used during the "join" operation which + respects this precondition. + *) + + let rec add_min_binding k v = function + | Empty -> singleton k v + | Node (l, x, d, r, h) -> + bal (add_min_binding k v l) x d r + + let rec add_max_binding k v = function + | Empty -> singleton k v + | Node (l, x, d, r, h) -> + bal l x d (add_max_binding k v r) + + (* Same as create and bal, but no assumptions are made on the + relative heights of l and r. *) + + let rec join l v d r = + match (l, r) with + (Empty, _) -> add_min_binding v d r + | (_, Empty) -> add_max_binding v d l + | (Node(ll, lv, ld, lr, lh), Node(rl, rv, rd, rr, rh)) -> + if lh > rh + 2 then bal ll lv ld (join lr v d r) else + if rh > lh + 2 then bal (join l v d rl) rv rd rr else + create l v d r + + (* Merge two trees l and r into one. + All elements of l must precede the elements of r. + No assumption on the heights of l and r. *) + + let concat t1 t2 = + match (t1, t2) with + (Empty, t) -> t + | (t, Empty) -> t + | (_, _) -> + let (x, d) = min_binding t2 in + join t1 x d (remove_min_binding t2) + + let concat_or_join t1 v d t2 = + match d with + | Some d -> join t1 v d t2 + | None -> concat t1 t2 + + let rec split x = function + Empty -> + (Empty, None, Empty) + | Node(l, v, d, r, _) -> + let c = Ord.compare x v in + if c = 0 then (l, Some d, r) + else if c < 0 then + let (ll, pres, rl) = split x l in (ll, pres, join rl v d r) + else + let (lr, pres, rr) = split x r in (join l v d lr, pres, rr) + + let rec merge f s1 s2 = + match (s1, s2) with + (Empty, Empty) -> Empty + | (Node (l1, v1, d1, r1, h1), _) when h1 >= height s2 -> + let (l2, d2, r2) = split v1 s2 in + concat_or_join (merge f l1 l2) v1 (f v1 (Some d1) d2) (merge f r1 r2) + | (_, Node (l2, v2, d2, r2, h2)) -> + let (l1, d1, r1) = split v2 s1 in + concat_or_join (merge f l1 l2) v2 (f v2 d1 (Some d2)) (merge f r1 r2) + | _ -> + assert false + + let rec filter p = function + Empty -> Empty + | Node(l, v, d, r, _) -> + (* call [p] in the expected left-to-right order *) + let l' = filter p l in + let pvd = p v d in + let r' = filter p r in + if pvd then join l' v d r' else concat l' r' + + let rec partition p = function + Empty -> (Empty, Empty) + | Node(l, v, d, r, _) -> + (* call [p] in the expected left-to-right order *) + let (lt, lf) = partition p l in + let pvd = p v d in + let (rt, rf) = partition p r in + if pvd + then (join lt v d rt, concat lf rf) + else (concat lt rt, join lf v d rf) + + type 'a enumeration = End | More of key * 'a * 'a t * 'a enumeration + + let rec cons_enum m e = + match m with + Empty -> e + | Node(l, v, d, r, _) -> cons_enum l (More(v, d, r, e)) + + let compare cmp m1 m2 = + let rec compare_aux e1 e2 = + match (e1, e2) with + (End, End) -> 0 + | (End, _) -> -1 + | (_, End) -> 1 + | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) -> + let c = Ord.compare v1 v2 in + if c <> 0 then c else + let c = cmp d1 d2 in + if c <> 0 then c else + compare_aux (cons_enum r1 e1) (cons_enum r2 e2) + in compare_aux (cons_enum m1 End) (cons_enum m2 End) + + let equal cmp m1 m2 = + let rec equal_aux e1 e2 = + match (e1, e2) with + (End, End) -> true + | (End, _) -> false + | (_, End) -> false + | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) -> + Ord.compare v1 v2 = 0 && cmp d1 d2 && + equal_aux (cons_enum r1 e1) (cons_enum r2 e2) + in equal_aux (cons_enum m1 End) (cons_enum m2 End) + + let rec cardinal = function + Empty -> 0 + | Node(l, _, _, r, _) -> cardinal l + 1 + cardinal r + + let rec bindings_aux accu = function + Empty -> accu + | Node(l, v, d, r, _) -> bindings_aux ((v, d) :: bindings_aux accu r) l + + let bindings s = + bindings_aux [] s + + let choose = min_binding + +end diff --git a/samples/OCaml/mirage.ml b/samples/OCaml/mirage.ml new file mode 100644 index 00000000..4878abed --- /dev/null +++ b/samples/OCaml/mirage.ml @@ -0,0 +1,2503 @@ +(* + * Copyright (c) 2013 Thomas Gazagnaire + * Copyright (c) 2013 Anil Madhavapeddy + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + *) + +open Mirage_misc + +module StringSet = struct + + include Set.Make(String) + + let of_list l = + let s = ref empty in + List.iter (fun e -> s := add e !s) l; + !s + +end + +let main_ml = ref None + +let append_main fmt = + match !main_ml with + | None -> failwith "main_ml" + | Some oc -> append oc fmt + +let newline_main () = + match !main_ml with + | None -> failwith "main_ml" + | Some oc -> newline oc + +let set_main_ml file = + let oc = open_out file in + main_ml := Some oc + +type mode = [ + | `Unix + | `Xen + | `MacOSX +] + +let string_of_mode = + function + | `Unix -> "Unix" + | `Xen -> "Xen" + | `MacOSX -> "MacOS X" + +let mode : mode ref = ref `Unix + +let set_mode m = + mode := m + +let get_mode () = + !mode + +type _ typ = + | Type: 'a -> 'a typ + | Function: 'a typ * 'b typ -> ('a -> 'b) typ + +let (@->) f t = + Function (f, t) + +module type CONFIGURABLE = sig + type t + val name: t -> string + val module_name: t -> string + val packages: t -> string list + val libraries: t -> string list + val configure: t -> unit + val clean: t -> unit + val update_path: t -> string -> t +end + + +module TODO (N: sig val name: string end) = struct + + let todo str = + failwith (Printf.sprintf "TODO: %s.%s" N.name str) + + let name _ = + todo "name" + + let module_name _ = + todo "module_name" + + let packages _ = + todo "packages" + + let libraries _ = + todo "libraries" + + let configure _ = + todo "configure" + + let clean _ = + todo "clean" + + let update_path _ = + todo "update_path" + +end + +type ('a, 'b) base = { + typ: 'a typ; + t: 'b; + m: (module CONFIGURABLE with type t = 'b); +} + +type 'a foreign = { + name: string; + ty: 'a typ; + libraries: string list; + packages: string list; +} + +type _ impl = + | Impl: ('a, 'b) base -> 'a impl (* base implementation *) + | App: ('a, 'b) app -> 'b impl (* functor application *) + | Foreign: 'a foreign -> 'a impl (* foreign functor implementation *) + +and ('a, 'b) app = { + f: ('a -> 'b) impl; (* functor *) + x: 'a impl; (* parameter *) +} + +let rec string_of_impl: type a. a impl -> string = function + | Impl { t; m = (module M) } -> Printf.sprintf "Impl (%s)" (M.module_name t) + | Foreign { name } -> Printf.sprintf "Foreign (%s)" name + | App { f; x } -> Printf.sprintf "App (%s, %s)" (string_of_impl f) (string_of_impl x) + +type 'a folder = { + fn: 'b. 'a -> 'b impl -> 'a +} + +let rec fold: type a. 'b folder -> a impl -> 'b -> 'b = + fun fn t acc -> + match t with + | Impl _ + | Foreign _ -> fn.fn acc t + | App {f; x} -> fold fn f (fn.fn acc x) + +type iterator = { + i: 'b. 'b impl -> unit +} + +let rec iter: type a. iterator -> a impl -> unit = + fun fn t -> + match t with + | Impl _ + | Foreign _ -> fn.i t + | App {f; x} -> iter fn f; iter fn x; fn.i x + +let driver_initialisation_error name = + Printf.sprintf "fail (Failure %S)" name + +module Name = struct + + let ids = Hashtbl.create 1024 + + let names = Hashtbl.create 1024 + + let create name = + let n = + try 1 + Hashtbl.find ids name + with Not_found -> 1 in + Hashtbl.replace ids name n; + Printf.sprintf "%s%d" name n + + let of_key key ~base = + find_or_create names key (fun () -> create base) + +end + +module Impl = struct + + (* get the left-most module name (ie. the name of the functor). *) + let rec functor_name: type a. a impl -> string = function + | Impl { t; m = (module M) } -> M.module_name t + | Foreign { name } -> name + | App { f } -> functor_name f + + (* return a unique variable name holding the state of the given + module construction. *) + let rec name: type a. a impl -> string = function + | Impl { t; m = (module M) } -> M.name t + | Foreign { name } -> Name.of_key ("f" ^ name) ~base:"f" + | App _ as t -> Name.of_key (module_name t) ~base:"t" + + (* return a unique module name holding the implementation of the + given module construction. *) + and module_name: type a. a impl -> string = function + | Impl { t; m = (module M) } -> M.module_name t + | Foreign { name } -> name + | App { f; x } -> + let name = match module_names f @ [module_name x] with + | [] -> assert false + | [m] -> m + | h::t -> h ^ String.concat "" (List.map (Printf.sprintf "(%s)") t) + in + Name.of_key name ~base:"M" + + and module_names: type a. a impl -> string list = + function t -> + let fn = { + fn = fun acc t -> module_name t :: acc + } in + fold fn t [] + + let rec names: type a. a impl -> string list = function + | Foreign _ -> [] + | Impl _ as t -> [name t] + | App {f=Foreign f; x} -> names x + | App {f; x} -> (names f) @ [name x] + + let configured = Hashtbl.create 31 + + let rec configure: type a. a impl -> unit = + fun t -> + let name = name t in + if not (Hashtbl.mem configured name) then ( + Hashtbl.add configured name true; + match t with + | Impl { t; m = (module M) } -> M.configure t + | Foreign _ -> () + | App {f; x} as app -> + configure_app f; + configure_app x; + iter { i=configure } app; + let name = module_name app in + let body = cofind Name.names name in + append_main "module %s = %s" name body; + newline_main (); + ) + + and configure_app: type a. a impl -> unit = function + | Impl _ + | Foreign _ -> () + | App _ as t -> + let name = name t in + configure t; + begin match names t with + | [n] -> append_main "let %s = %s" name n + | names -> + append_main "let %s () =" name; + List.iter (fun n -> + append_main " %s () >>= function" n; + append_main " | `Error e -> %s" (driver_initialisation_error n); + append_main " | `Ok %s ->" n; + ) names; + append_main " return (`Ok (%s))" (String.concat ", " names) + end; + newline_main () + + let rec packages: type a. a impl -> string list = function + | Impl { t; m = (module M) } -> M.packages t + | Foreign { packages } -> packages + | App {f; x} -> packages f @ packages x + + let rec libraries: type a. a impl -> string list = function + | Impl { t; m = (module M) } -> M.libraries t + | Foreign { libraries } -> libraries + | App {f; x} -> libraries f @ libraries x + + let rec clean: type a. a impl -> unit = function + | Impl { t; m = (module M) } -> M.clean t + | Foreign _ -> () + | App {f; x} -> clean f; clean x + + let rec update_path: type a. a impl -> string -> a impl = + fun t root -> match t with + | Impl b -> + let module M = (val b.m) in Impl { b with t = M.update_path b.t root } + | Foreign _ -> t + | App {f; x} -> App { f = update_path f root; x = update_path x root } + +end + +let impl typ t m = + Impl { typ; t; m } + +let implementation typ t m = + let typ = Type typ in + Impl { typ; t; m } + +let ($) f x = + App { f; x } + +let foreign name ?(libraries=[]) ?(packages=[]) ty = + Foreign { name; ty; libraries; packages } + +let rec typ: type a. a impl -> a typ = function + | Impl { typ } -> typ + | Foreign { ty } -> ty + | App { f } -> match typ f with Function (_, b) -> b | _ -> assert false + + +module Io_page = struct + + (** Memory allocation interface. *) + + type t = unit + + let name () = + "io_page" + + let module_name () = + "Io_page" + + let packages () = [ + "io-page" + ] + + let libraries () = + match !mode with + | `Xen -> ["io-page"] + | `Unix | `MacOSX -> ["io-page"; "io-page.unix"] + + let configure () = () + + let clean () = () + + let update_path () _ = () + +end + +type io_page = IO_PAGE + +let io_page = Type IO_PAGE + +let default_io_page: io_page impl = + impl io_page () (module Io_page) + +module Time = struct + + (** OS Timer. *) + + type t = unit + + let name () = + "time" + + let module_name () = + "OS.Time" + + let packages () = [] + + let libraries () = [] + + let configure () = () + + let clean () = () + + let update_path () _ = () + +end + +type time = TIME + +let time = Type TIME + +let default_time: time impl = + impl time () (module Time) + +module Clock = struct + + (** Clock operations. *) + + type t = unit + + let name () = + "clock" + + let module_name () = + "Clock" + + let packages () = [ + match !mode with + | `Unix | `MacOSX -> "mirage-clock-unix" + | `Xen -> "mirage-clock-xen" + ] + + let libraries () = packages () + + let configure () = + append_main "let clock () = return (`Ok ())"; + newline_main () + + let clean () = () + + let update_path () _ = () + +end + +type clock = CLOCK + +let clock = Type CLOCK + +let default_clock: clock impl = + impl clock () (module Clock) + +module Random = struct + + type t = unit + + let name () = + "random" + + let module_name () = + "Random" + + let packages () = [] + + let libraries () = [] + + let configure () = + append_main "let random () = return (`Ok ())"; + newline_main () + + let clean () = () + + let update_path () _ = () + +end + +type random = RANDOM + +let random = Type RANDOM + +let default_random: random impl = + impl random () (module Random) + +module Entropy = struct + + type t = unit + + let name _ = + "entropy" + + let module_name () = "Entropy" + + let construction () = + match !mode with + | `Unix | `MacOSX -> "Entropy_unix.Make (OS.Time)" + | `Xen -> "Entropy_xen" + + let packages () = + match !mode with + | `Unix | `MacOSX -> [ "mirage-entropy-unix" ] + | `Xen -> [ "mirage-entropy-xen" ] + + let libraries = packages + + let configure t = + append_main "module %s = %s" (module_name t) (construction t) ; + newline_main () ; + append_main "let %s () =" (name t); + append_main " %s.connect ()" (module_name t); + newline_main () + + let clean () = () + + let update_path t _ = t + +end + +type entropy = ENTROPY + +let entropy = Type ENTROPY + +let default_entropy: entropy impl = + impl entropy () (module Entropy) + +module Console = struct + + type t = string + + let name t = + Name.of_key ("console" ^ t) ~base:"console" + + let module_name t = + "Console" + + let construction () = + match !mode with + | `Unix | `MacOSX -> "Console_unix" + | `Xen -> "Console_xen" + + let packages _ = + match !mode with + | `Unix | `MacOSX -> ["mirage-console"; "mirage-unix"] + | `Xen -> ["mirage-console"; "xenstore"; "mirage-xen"; "xen-gnt"; "xen-evtchn"] + + let libraries _ = + match !mode with + | `Unix | `MacOSX -> ["mirage-console.unix"] + | `Xen -> ["mirage-console.xen"] + + let configure t = + append_main "module %s = %s" (module_name t) (construction ()); + newline_main (); + append_main "let %s () =" (name t); + append_main " %s.connect %S" (module_name t) t; + newline_main () + + let clean _ = + () + + let update_path t _ = + t + +end + +type console = CONSOLE + +let console = Type CONSOLE + +let default_console: console impl = + impl console "0" (module Console) + +let custom_console: string -> console impl = + fun str -> + impl console str (module Console) + +module Crunch = struct + + type t = string + + let name t = + Name.of_key ("static" ^ t) ~base:"static" + + let module_name t = + String.capitalize (name t) + + let packages _ = [ + "mirage-types"; + "lwt"; + "cstruct"; + "crunch"; + ] @ Io_page.packages () + + let libraries _ = [ + "mirage-types"; + "lwt"; + "cstruct"; + ] @ Io_page.libraries () + + let ml t = + Printf.sprintf "%s.ml" (name t) + + let mli t = + Printf.sprintf "%s.mli" (name t) + + let configure t = + if not (command_exists "ocaml-crunch") then + error "ocaml-crunch not found, stopping."; + let file = ml t in + if Sys.file_exists t then ( + info "%s %s" (blue_s "Generating:") (Sys.getcwd () / file); + command "ocaml-crunch -o %s %s" file t + ) else + error "The directory %s does not exist." t; + append_main "let %s () =" (name t); + append_main " %s.connect ()" (module_name t); + newline_main () + + let clean t = + remove (ml t); + remove (mli t) + + let update_path t root = + if Sys.file_exists (root / t) then + root / t + else + t + +end + +type kv_ro = KV_RO + +let kv_ro = Type KV_RO + +let crunch dirname = + impl kv_ro dirname (module Crunch) + +module Direct_kv_ro = struct + + include Crunch + + let module_name t = + match !mode with + | `Xen -> Crunch.module_name t + | `Unix | `MacOSX -> "Kvro_fs_unix" + + let packages t = + match !mode with + | `Xen -> Crunch.packages t + | `Unix | `MacOSX -> "mirage-fs-unix" :: Crunch.packages t + + let libraries t = + match !mode with + | `Xen -> Crunch.libraries t + | `Unix | `MacOSX -> "mirage-fs-unix" :: Crunch.libraries t + + let configure t = + match !mode with + | `Xen -> Crunch.configure t + | `Unix | `MacOSX -> + append_main "let %s () =" (name t); + append_main " Kvro_fs_unix.connect %S" t + +end + +let direct_kv_ro dirname = + impl kv_ro dirname (module Direct_kv_ro) + +module Block = struct + + type t = string + + let name t = + Name.of_key ("block" ^ t) ~base:"block" + + let module_name _ = + "Block" + + let packages _ = [ + match !mode with + | `Unix | `MacOSX -> "mirage-block-unix" + | `Xen -> "mirage-block-xen" + ] + + let libraries _ = [ + match !mode with + | `Unix | `MacOSX -> "mirage-block-unix" + | `Xen -> "mirage-block-xen.front" + ] + + let configure t = + append_main "let %s () =" (name t); + append_main " %s.connect %S" (module_name t) t; + newline_main () + + let clean t = + () + + let update_path t root = + if Sys.file_exists (root / t) then + root / t + else + t + +end + +type block = BLOCK + +let block = Type BLOCK + +let block_of_file filename = + impl block filename (module Block) + +module Fat = struct + + type t = { + io_page: io_page impl; + block : block impl; + } + + let name t = + let key = "fat" ^ Impl.name t.io_page ^ Impl.name t.block in + Name.of_key key ~base:"fat" + + let module_name t = + String.capitalize (name t) + + let packages t = + "fat-filesystem" + :: Impl.packages t.io_page + @ Impl.packages t.block + + let libraries t = + "fat-filesystem" + :: Impl.libraries t.io_page + @ Impl.libraries t.block + + let configure t = + Impl.configure t.io_page; + Impl.configure t.block; + append_main "module %s = Fat.Fs.Make(%s)(%s)" + (module_name t) + (Impl.module_name t.block) + (Impl.module_name t.io_page); + newline_main (); + let name = name t in + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.block); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok dev -> %s.connect dev" (module_name t); + newline_main () + + let clean t = + Impl.clean t.block; + Impl.clean t.io_page + + let update_path t root = + { io_page = Impl.update_path t.io_page root; + block = Impl.update_path t.block root; + } + +end + +type fs = FS + +let fs = Type FS + +let fat ?(io_page=default_io_page) block: fs impl = + let t = { Fat.block; io_page } in + impl fs t (module Fat) + +(* This would deserve to be in its own lib. *) +let kv_ro_of_fs x: kv_ro impl = + let dummy_fat = fat (block_of_file "xx") in + let libraries = Impl.libraries dummy_fat in + let packages = Impl.packages dummy_fat in + let fn = foreign "Fat.KV_RO.Make" ~libraries ~packages (fs @-> kv_ro) in + fn $ x + +module Fat_of_files = struct + + type t = { + dir : string option; + regexp: string; + } + + let name t = + Name.of_key + ("fat" ^ (match t.dir with None -> "." | Some d -> d) ^ ":" ^ t.regexp) + ~base:"fat" + + let module_name t = + String.capitalize (name t) + + let block_file t = + name t ^ ".img" + + let block t = + block_of_file (block_file t) + + let packages t = + Impl.packages (fat (block t)) + + let libraries t = + Impl.libraries (fat (block t)) + + let configure t = + let fat = fat (block t) in + Impl.configure fat; + append_main "module %s = %s" (module_name t) (Impl.module_name fat); + append_main "let %s = %s" (name t) (Impl.name fat); + newline_main (); + let file = Printf.sprintf "make-%s-image.sh" (name t) in + let oc = open_out file in + append oc "#!/bin/sh"; + append oc ""; + append oc "echo This uses the 'fat' command-line tool to build a simple FAT"; + append oc "echo filesystem image."; + append oc ""; + append oc "FAT=$(which fat)"; + append oc "if [ ! -x \"${FAT}\" ]; then"; + append oc " echo I couldn\\'t find the 'fat' command-line tool."; + append oc " echo Try running 'opam install fat-filesystem'"; + append oc " exit 1"; + append oc "fi"; + append oc ""; + append oc "IMG=$(pwd)/%s" (block_file t); + append oc "rm -f ${IMG}"; + (match t.dir with None -> () | Some d -> append oc "cd %s/" d); + append oc "SIZE=$(du -s . | cut -f 1)"; + append oc "${FAT} create ${IMG} ${SIZE}KiB"; + append oc "${FAT} add ${IMG} %s" t.regexp; + append oc "echo Created '%s'" (block_file t); + + close_out oc; + Unix.chmod file 0o755; + command "./make-%s-image.sh" (name t) + + let clean t = + command "rm -f make-%s-image.sh %s" (name t) (block_file t); + Impl.clean (block t) + + let update_path t root = + match t.dir with + | None -> t + | Some d -> { t with dir = Some (root / d) } + +end + +let fat_of_files: ?dir:string -> ?regexp:string -> unit -> fs impl = + fun ?dir ?regexp () -> + let regexp = match regexp with + | None -> "*" + | Some r -> r in + impl fs { Fat_of_files.dir; regexp } (module Fat_of_files) + +type network_config = Tap0 | Custom of string + +module Network = struct + + type t = network_config + + let name t = + "net_" ^ match t with + | Tap0 -> "tap0" + | Custom s -> s + + let module_name _ = + "Netif" + + let packages t = + match !mode with + | `Unix -> ["mirage-net-unix"] + | `MacOSX -> ["mirage-net-macosx"] + | `Xen -> ["mirage-net-xen"] + + let libraries t = + packages t + + let configure t = + append_main "let %s () =" (name t); + append_main " %s.connect %S" + (module_name t) + (match t with Tap0 -> "tap0" | Custom s -> s); + newline_main () + + let clean _ = + () + + let update_path t _ = + t + +end + +type network = NETWORK + +let network = Type NETWORK + +let tap0 = + impl network Tap0 (module Network) + +let netif dev = + impl network (Custom dev) (module Network) + +module Ethif = struct + + type t = network impl + + let name t = + Name.of_key ("ethif" ^ Impl.name t) ~base:"ethif" + + let module_name t = + String.capitalize (name t) + + let packages t = + Impl.packages t @ ["tcpip"] + + let libraries t = + Impl.libraries t @ + match !mode with + | `Unix | `MacOSX -> [ "tcpip.ethif-unix" ] + | `Xen -> [ "tcpip.ethif" ] + + let configure t = + let name = name t in + Impl.configure t; + append_main "module %s = Ethif.Make(%s)" (module_name t) (Impl.module_name t); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok eth -> %s.connect eth" (module_name t); + newline_main () + + let clean t = + Impl.clean t + + let update_path t root = + Impl.update_path t root + +end + +type ethernet = ETHERNET + +let ethernet = Type ETHERNET + +let etif network = + impl ethernet network (module Ethif) + +type ('ipaddr, 'prefix) ip_config = { + address: 'ipaddr; + netmask: 'prefix; + gateways: 'ipaddr list; +} + +type ipv4_config = (Ipaddr.V4.t, Ipaddr.V4.t) ip_config + +let meta_ipv4_config t = + Printf.sprintf "(Ipaddr.V4.of_string_exn %S, Ipaddr.V4.of_string_exn %S, [%s])" + (Ipaddr.V4.to_string t.address) + (Ipaddr.V4.to_string t.netmask) + (String.concat "; " + (List.map (Printf.sprintf "Ipaddr.V4.of_string_exn %S") + (List.map Ipaddr.V4.to_string t.gateways))) + +module IPV4 = struct + + type t = { + ethernet: ethernet impl; + config : ipv4_config; + } + (* XXX: should the type if ipv4.id be ipv4.t ? + N.connect ethif |> N.set_ip up *) + + let name t = + let key = "ipv4" ^ Impl.name t.ethernet ^ meta_ipv4_config t.config in + Name.of_key key ~base:"ipv4" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" :: Impl.packages t.ethernet + + let libraries t = + (match !mode with + | `Unix | `MacOSX -> [ "tcpip.ipv4-unix" ] + | `Xen -> [ "tcpip.ipv4" ]) + @ Impl.libraries t.ethernet + + let configure t = + let name = name t in + let mname = module_name t in + Impl.configure t.ethernet; + append_main "module %s = Ipv4.Make(%s)" + (module_name t) (Impl.module_name t.ethernet); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.ethernet); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok eth ->"; + append_main " %s.connect eth >>= function" mname; + append_main " | `Error _ -> %s" (driver_initialisation_error "IPV4"); + append_main " | `Ok ip ->"; + append_main " let i = Ipaddr.V4.of_string_exn in"; + append_main " %s.set_ip ip (i %S) >>= fun () ->" + mname (Ipaddr.V4.to_string t.config.address); + append_main " %s.set_ip_netmask ip (i %S) >>= fun () ->" + mname (Ipaddr.V4.to_string t.config.netmask); + append_main " %s.set_ip_gateways ip [%s] >>= fun () ->" + mname + (String.concat "; " + (List.map + (fun n -> Printf.sprintf "(i %S)" (Ipaddr.V4.to_string n)) + t.config.gateways)); + append_main " return (`Ok ip)"; + newline_main () + + let clean t = + Impl.clean t.ethernet + + let update_path t root = + { t with ethernet = Impl.update_path t.ethernet root } + +end + +type ipv6_config = (Ipaddr.V6.t, Ipaddr.V6.Prefix.t list) ip_config + +let meta_ipv6_config t = + Printf.sprintf "(Ipaddr.V6.of_string_exn %S, [%s], [%s])" + (Ipaddr.V6.to_string t.address) + (String.concat "; " + (List.map (Printf.sprintf "Ipaddr.V6.Prefix.of_string_exn %S") + (List.map Ipaddr.V6.Prefix.to_string t.netmask))) + (String.concat "; " + (List.map (Printf.sprintf "Ipaddr.V6.of_string_exn %S") + (List.map Ipaddr.V6.to_string t.gateways))) + +module IPV6 = struct + + type t = { + time : time impl; + clock : clock impl; + ethernet: ethernet impl; + config : ipv6_config; + } + (* XXX: should the type if ipv4.id be ipv4.t ? + N.connect ethif |> N.set_ip up *) + + let name t = + let key = "ipv6" ^ Impl.name t.time ^ Impl.name t.clock ^ Impl.name t.ethernet ^ meta_ipv6_config t.config in + Name.of_key key ~base:"ipv6" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" :: Impl.packages t.time @ Impl.packages t.clock @ Impl.packages t.ethernet + + let libraries t = + (match !mode with + | `Unix | `MacOSX -> [ "tcpip.ipv6-unix" ] + | `Xen -> [ "tcpip.ipv6" ]) + @ Impl.libraries t.time @ Impl.libraries t.clock @ Impl.libraries t.ethernet + + let configure t = + let name = name t in + let mname = module_name t in + Impl.configure t.ethernet; + append_main "module %s = Ipv6.Make(%s)(%s)(%s)" + (module_name t) (Impl.module_name t.ethernet) (Impl.module_name t.time) (Impl.module_name t.clock); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.ethernet); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok eth ->"; + append_main " %s.connect eth >>= function" mname; + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok ip ->"; + append_main " let i = Ipaddr.V6.of_string_exn in"; + append_main " %s.set_ip ip (i %S) >>= fun () ->" + mname (Ipaddr.V6.to_string t.config.address); + List.iter begin fun netmask -> + append_main " %s.set_ip_netmask ip (i %S) >>= fun () ->" + mname (Ipaddr.V6.Prefix.to_string netmask) + end t.config.netmask; + append_main " %s.set_ip_gateways ip [%s] >>= fun () ->" + mname + (String.concat "; " + (List.map + (fun n -> Printf.sprintf "(i %S)" (Ipaddr.V6.to_string n)) + t.config.gateways)); + append_main " return (`Ok ip)"; + newline_main () + + let clean t = + Impl.clean t.time; + Impl.clean t.clock; + Impl.clean t.ethernet + + let update_path t root = + { t with + time = Impl.update_path t.time root; + clock = Impl.update_path t.clock root; + ethernet = Impl.update_path t.ethernet root } + +end + +type v4 +type v6 + +type 'a ip = IP + +let ip = Type IP + +type ipv4 = v4 ip +type ipv6 = v6 ip + +let ipv4 : ipv4 typ = ip +let ipv6 : ipv6 typ = ip + +let create_ipv4 net config = + let etif = etif net in + let t = { + IPV4.ethernet = etif; + config } in + impl ipv4 t (module IPV4) + +let default_ipv4_conf = + let i = Ipaddr.V4.of_string_exn in + { + address = i "10.0.0.2"; + netmask = i "255.255.255.0"; + gateways = [i "10.0.0.1"]; + } + +let default_ipv4 net = + create_ipv4 net default_ipv4_conf + +let create_ipv6 + ?(time = default_time) + ?(clock = default_clock) + net config = + let etif = etif net in + let t = { + IPV6.ethernet = etif; + time; clock; + config + } in + impl ipv6 t (module IPV6) + +module UDP_direct (V : sig type t end) = struct + + type t = V.t ip impl + + let name t = + Name.of_key ("udp" ^ Impl.name t) ~base:"udp" + + let module_name t = + String.capitalize (name t) + + let packages t = + Impl.packages t @ [ "tcpip" ] + + let libraries t = + Impl.libraries t @ [ "tcpip.udp" ] + + let configure t = + let name = name t in + Impl.configure t; + append_main "module %s = Udp.Make(%s)" (module_name t) (Impl.module_name t); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t); + append_main " | `Error _ -> %s" (driver_initialisation_error name); + append_main " | `Ok ip -> %s.connect ip" (module_name t); + newline_main () + + let clean t = + Impl.clean t + + let update_path t root = + Impl.update_path t root + +end + +module UDPV4_socket = struct + + type t = Ipaddr.V4.t option + + let name _ = "udpv4_socket" + + let module_name _ = "Udpv4_socket" + + let packages t = [ "tcpip" ] + + let libraries t = + match !mode with + | `Unix | `MacOSX -> [ "tcpip.udpv4-socket" ] + | `Xen -> failwith "No socket implementation available for Xen" + + let configure t = + append_main "let %s () =" (name t); + let ip = match t with + | None -> "None" + | Some ip -> + Printf.sprintf "Some (Ipaddr.V4.of_string_exn %s)" (Ipaddr.V4.to_string ip) + in + append_main " %s.connect %S" (module_name t) ip; + newline_main () + + let clean t = + () + + let update_path t root = + t + +end + +type 'a udp = UDP + +type udpv4 = v4 udp +type udpv6 = v6 udp + +let udp = Type UDP +let udpv4 : udpv4 typ = udp +let udpv6 : udpv6 typ = udp + +let direct_udp (type v) (ip : v ip impl) = + impl udp ip (module UDP_direct (struct type t = v end)) + +let socket_udpv4 ip = + impl udpv4 ip (module UDPV4_socket) + +module TCP_direct (V : sig type t end) = struct + + type t = { + clock : clock impl; + time : time impl; + ip : V.t ip impl; + random: random impl; + } + + let name t = + let key = "tcp" + ^ Impl.name t.clock + ^ Impl.name t.time + ^ Impl.name t.ip in + Name.of_key key ~base:"tcp" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" + :: Impl.packages t.clock + @ Impl.packages t.time + @ Impl.packages t.ip + @ Impl.packages t.random + + let libraries t = + "tcpip.tcp" + :: Impl.libraries t.clock + @ Impl.libraries t.time + @ Impl.libraries t.ip + @ Impl.libraries t.random + + let configure t = + let name = name t in + Impl.configure t.clock; + Impl.configure t.time; + Impl.configure t.ip; + Impl.configure t.random; + append_main "module %s = Tcp.Flow.Make(%s)(%s)(%s)(%s)" + (module_name t) + (Impl.module_name t.ip) + (Impl.module_name t.time) + (Impl.module_name t.clock) + (Impl.module_name t.random); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.ip); + append_main " | `Error _ -> %s" (driver_initialisation_error (Impl.name t.ip)); + append_main " | `Ok ip -> %s.connect ip" (module_name t); + newline_main () + + let clean t = + Impl.clean t.clock; + Impl.clean t.time; + Impl.clean t.ip; + Impl.clean t.random + + let update_path t root = + { clock = Impl.update_path t.clock root; + ip = Impl.update_path t.ip root; + time = Impl.update_path t.time root; + random = Impl.update_path t.random root; + } + +end + +module TCPV4_socket = struct + + type t = Ipaddr.V4.t option + + let name _ = "tcpv4_socket" + + let module_name _ = "Tcpv4_socket" + + let packages t = [ "tcpip" ] + + let libraries t = + match !mode with + | `Unix | `MacOSX -> [ "tcpip.tcpv4-socket" ] + | `Xen -> failwith "No socket implementation available for Xen" + + let configure t = + append_main "let %s () =" (name t); + let ip = match t with + | None -> "None" + | Some ip -> + Printf.sprintf "Some (Ipaddr.V4.of_string_exn %s)" (Ipaddr.V4.to_string ip) + in + append_main " %s.connect %S" (module_name t) ip; + newline_main () + + let clean t = + () + + let update_path t root = + t + +end + +type 'a tcp = TCP + +type tcpv4 = v4 tcp +type tcpv6 = v6 tcp + +let tcp = Type TCP +let tcpv4 : tcpv4 typ = tcp +let tcpv6 : tcpv6 typ = tcp + +let direct_tcp (type v) + ?(clock=default_clock) ?(random=default_random) ?(time=default_time) (ip : v ip impl) = + let module TCP_direct = TCP_direct (struct type t = v end) in + let t = { TCP_direct.clock; random; time; ip } in + impl tcp t (module TCP_direct) + +let socket_tcpv4 ip = + impl tcpv4 ip (module TCPV4_socket) + +module STACKV4_direct = struct + + type t = { + clock : clock impl; + time : time impl; + console: console impl; + network: network impl; + random : random impl; + config : [`DHCP | `IPV4 of ipv4_config]; + } + + let name t = + let key = "stackv4" + ^ Impl.name t.clock + ^ Impl.name t.time + ^ Impl.name t.console + ^ Impl.name t.network + ^ Impl.name t.random + ^ match t.config with + | `DHCP -> "dhcp" + | `IPV4 i -> meta_ipv4_config i in + Name.of_key key ~base:"stackv4" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" + :: Impl.packages t.clock + @ Impl.packages t.time + @ Impl.packages t.console + @ Impl.packages t.network + @ Impl.packages t.random + + let libraries t = + "tcpip.stack-direct" + :: "mirage.runtime" + :: Impl.libraries t.clock + @ Impl.libraries t.time + @ Impl.libraries t.console + @ Impl.libraries t.network + @ Impl.libraries t.random + + let configure t = + let name = name t in + Impl.configure t.clock; + Impl.configure t.time; + Impl.configure t.console; + Impl.configure t.network; + Impl.configure t.random; + append_main "module %s = struct" (module_name t); + append_main " module E = Ethif.Make(%s)" (Impl.module_name t.network); + append_main " module I = Ipv4.Make(E)"; + append_main " module U = Udp.Make(I)"; + append_main " module T = Tcp.Flow.Make(I)(%s)(%s)(%s)" + (Impl.module_name t.time) + (Impl.module_name t.clock) + (Impl.module_name t.random); + append_main " module S = Tcpip_stack_direct.Make(%s)(%s)(%s)(%s)(E)(I)(U)(T)" + (Impl.module_name t.console) + (Impl.module_name t.time) + (Impl.module_name t.random) + (Impl.module_name t.network); + append_main " include S"; + append_main "end"; + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.console); + append_main " | `Error _ -> %s" + (driver_initialisation_error (Impl.name t.console)); + append_main " | `Ok console ->"; + append_main " %s () >>= function" (Impl.name t.network); + append_main " | `Error e ->"; + let net_init_error_msg_fn = "Mirage_runtime.string_of_network_init_error" in + append_main " fail (Failure (%s %S e))" + net_init_error_msg_fn (Impl.name t.network); + append_main " | `Ok interface ->"; + append_main " let config = {"; + append_main " V1_LWT.name = %S;" name; + append_main " console; interface;"; + begin match t.config with + | `DHCP -> append_main " mode = `DHCP;" + | `IPV4 i -> append_main " mode = `IPv4 %s;" (meta_ipv4_config i); + end; + append_main " } in"; + append_main " %s.connect config" (module_name t); + newline_main () + + let clean t = + Impl.clean t.clock; + Impl.clean t.time; + Impl.clean t.console; + Impl.clean t.network; + Impl.clean t.random + + let update_path t root = + { t with + clock = Impl.update_path t.clock root; + time = Impl.update_path t.time root; + console = Impl.update_path t.console root; + network = Impl.update_path t.network root; + random = Impl.update_path t.random root; + } + +end + +module STACKV4_socket = struct + + type t = { + console: console impl; + ipv4s : Ipaddr.V4.t list; + } + + let meta_ips ips = + String.concat "; " + (List.map (fun x -> + Printf.sprintf "Ipaddr.V4.of_string_exn %S" (Ipaddr.V4.to_string x) + ) ips) + + let name t = + let key = "stackv4" ^ Impl.name t.console ^ meta_ips t.ipv4s in + Name.of_key key ~base:"stackv4" + + let module_name t = + String.capitalize (name t) + + let packages t = + "tcpip" :: Impl.packages t.console + + let libraries t = + "tcpip.stack-socket" :: Impl.libraries t.console + + let configure t = + let name = name t in + Impl.configure t.console; + append_main "module %s = Tcpip_stack_socket.Make(%s)" + (module_name t) (Impl.module_name t.console); + newline_main (); + append_main "let %s () =" name; + append_main " %s () >>= function" (Impl.name t.console); + append_main " | `Error _ -> %s" + (driver_initialisation_error (Impl.name t.console)); + append_main " | `Ok console ->"; + append_main " let config = {"; + append_main " V1_LWT.name = %S;" name; + append_main " console; interface = [%s];" (meta_ips t.ipv4s); + append_main " mode = ();"; + append_main " } in"; + append_main " %s.connect config" (module_name t); + newline_main () + + let clean t = + Impl.clean t.console + + let update_path t root = + { t with console = Impl.update_path t.console root } + +end + +type stackv4 = STACKV4 + +let stackv4 = Type STACKV4 + +let direct_stackv4_with_dhcp + ?(clock=default_clock) + ?(random=default_random) + ?(time=default_time) + console network = + let t = { + STACKV4_direct.console; network; time; clock; random; + config = `DHCP } in + impl stackv4 t (module STACKV4_direct) + +let direct_stackv4_with_default_ipv4 + ?(clock=default_clock) + ?(random=default_random) + ?(time=default_time) + console network = + let t = { + STACKV4_direct.console; network; clock; time; random; + config = `IPV4 default_ipv4_conf; + } in + impl stackv4 t (module STACKV4_direct) + +let direct_stackv4_with_static_ipv4 + ?(clock=default_clock) + ?(random=default_random) + ?(time=default_time) + console network ipv4 = + let t = { + STACKV4_direct.console; network; clock; time; random; + config = `IPV4 ipv4; + } in + impl stackv4 t (module STACKV4_direct) + +let socket_stackv4 console ipv4s = + impl stackv4 { STACKV4_socket.console; ipv4s } (module STACKV4_socket) + +module Channel_over_TCP (V : sig type t end) = struct + + type t = V.t tcp impl + + let name t = + let key = "channel" ^ Impl.name t in + Name.of_key key ~base:"channel" + + let module_name t = + String.capitalize (name t) + + let packages _ = + [ "mirage-tcpip" ] + + let libraries _ = + [ "tcpip.channel" ] + + let configure t = + Impl.configure t; + append_main "module %s = Channel.Make(%s)" (module_name t) (Impl.module_name t); + newline_main (); + append_main "let %s () =" (name t); + append_main " %s () >>= function" (Impl.name t); + append_main " | `Error _ -> %s" (driver_initialisation_error (Impl.name t)); + append_main " | `Ok console ->"; + append_main " let flow = %s.create config in" (module_name t); + append_main " return (`Ok flow)"; + newline_main () + + let clean t = + Impl.clean t + + let update_path t root = + Impl.update_path t root + +end + +type channel = CHANNEL + +let channel = Type CHANNEL + +let channel_over_tcp (type v) (flow : v tcp impl) = + impl channel flow (module Channel_over_TCP (struct type t = v end)) + +module VCHAN_localhost = struct + + type uuid = string + type t = uuid + + let name t = + let key = "in_memory" in + Name.of_key key ~base:"vchan" + + let module_name t = + String.capitalize (name t) + + let packages t = + [ "mirage-conduit" ] + + let libraries t = + [ "conduit.mirage" ] + + let configure t = + append_main "module %s = Conduit_localhost" (module_name t); + newline_main (); + append_main "let %s = %s.register %S" (name t) (module_name t) t; + newline_main () + + let clean t = () + + let update_path t root = t + +end + +module VCHAN_xenstore = struct + + type uuid = string + type t = string + + let name t = + let key = "xen" in + Name.of_key key ~base:"vchan" + + let module_name t = + String.capitalize (name t) + + let packages t = + match !mode with + |`Xen -> [ "vchan"; "mirage-xen"; "xen-evtchn"; "xen-gnt" ] + |`Unix | `MacOSX -> [ "vchan"; "xen-evtchn"; "xen-gnt"] + (* TODO: emit a failure on MacOSX? *) + + let libraries t = + match !mode with + |`Xen -> [ "conduit.mirage-xen" ] + |`Unix | `MacOSX-> [ "vchan" ] + + let configure t = + let m = + match !mode with + |`Xen -> "Conduit_xenstore" + |`Unix | `MacOSX -> "Vchan_lwt_unix.M" + in + append_main "module %s = %s" (module_name t) m; + newline_main (); + append_main "let %s = %s.register %S" (name t) (module_name t) t; + newline_main () + + let clean t = () + + let update_path t root = t + +end + +type vchan = STACK4 + +let vchan = Type STACK4 + +let vchan_localhost ?(uuid="localhost") () = + impl vchan uuid (module VCHAN_localhost) + +let vchan_xen ?(uuid="localhost") () = + impl vchan uuid (module VCHAN_xenstore) + +let vchan_default ?uuid () = + match !mode with + | `Xen -> vchan_xen ?uuid () + | `Unix | `MacOSX -> vchan_localhost ?uuid () + +module Conduit = struct + type t = + [ `Stack of stackv4 impl * vchan impl ] + + let name t = + let key = "conduit" ^ match t with + | `Stack (s,v) -> + Printf.sprintf "%s_%s" (Impl.name s) (Impl.name v) in + Name.of_key key ~base:"conduit" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + module_name_core t + + let packages t = + [ "conduit"; "mirage-types"; "vchan" ] @ + match t with + | `Stack (s,v) -> Impl.packages s @ (Impl.packages v) + + let libraries t = + [ "conduit.mirage" ] @ + match t with + | `Stack (s,v) -> Impl.libraries s @ (Impl.libraries v) + + let configure t = + begin match t with + | `Stack (s,v) -> + Impl.configure s; + Impl.configure v; + append_main "module %s = Conduit_mirage.Make(%s)(%s)" + (module_name_core t) (Impl.module_name s) (Impl.module_name v); + end; + newline_main (); + append_main "let %s () =" (name t); + let (stack_subname, vchan_subname) = match t with + | `Stack (s,v) -> Impl.name s, Impl.name v in + + append_main " %s () >>= function" stack_subname; + append_main " | `Error _ -> %s" (driver_initialisation_error stack_subname); + append_main " | `Ok %s ->" stack_subname; + append_main " %s >>= fun %s ->" vchan_subname vchan_subname; + append_main " %s.init ~peer:%s ~stack:%s () >>= fun %s ->" + (module_name_core t) vchan_subname stack_subname (name t); + append_main " return (`Ok %s)" (name t); + newline_main () + + let clean = function + | `Stack (s,v) -> Impl.clean s; Impl.clean v + + let update_path t root = + match t with + | `Stack (s,v) -> + `Stack ((Impl.update_path s root), (Impl.update_path v root)) + +end + +type conduit = Conduit + +let conduit = Type Conduit + +let conduit_direct ?(vchan=vchan_localhost ()) stack = + impl conduit (`Stack (stack,vchan)) (module Conduit) + +type conduit_client = [ + | `TCP of Ipaddr.t * int + | `Vchan of string list +] + +type conduit_server = [ + | `TCP of [ `Port of int ] + | `Vchan of string list +] + +module Resolver_unix = struct + type t = unit + + let name t = + let key = "resolver_unix" in + Name.of_key key ~base:"resolver" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + module_name_core t + + let packages t = + match !mode with + |`Unix | `MacOSX -> [ "mirage-conduit" ] + |`Xen -> failwith "Resolver_unix not supported on Xen" + + let libraries t = + [ "conduit.mirage"; "conduit.lwt-unix" ] + + let configure t = + append_main "module %s = Resolver_lwt" (module_name t); + append_main "let %s () =" (name t); + append_main " return (`Ok Resolver_lwt_unix.system)"; + newline_main () + + let clean t = () + + let update_path t root = t + +end + +module Resolver_direct = struct + type t = + [ `DNS of stackv4 impl * Ipaddr.V4.t option * int option ] + + let name t = + let key = "resolver" ^ match t with + | `DNS (s,_,_) -> Impl.name s in + Name.of_key key ~base:"resolver" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + (module_name_core t) ^ "_res" + + let packages t = + [ "dns"; "tcpip" ] @ + match t with + | `DNS (s,_,_) -> Impl.packages s + + let libraries t = + [ "dns.mirage" ] @ + match t with + | `DNS (s,_,_) -> Impl.libraries s + + let configure t = + begin match t with + | `DNS (s,_,_) -> + Impl.configure s; + append_main "module %s = Resolver_lwt" (module_name t); + append_main "module %s_dns = Dns_resolver_mirage.Make(OS.Time)(%s)" + (module_name_core t) (Impl.module_name s); + append_main "module %s = Resolver_mirage.Make(%s_dns)" + (module_name_core t) (module_name_core t); + end; + newline_main (); + append_main "let %s () =" (name t); + let subname = match t with + | `DNS (s,_,_) -> Impl.name s in + append_main " %s () >>= function" subname; + append_main " | `Error _ -> %s" (driver_initialisation_error subname); + append_main " | `Ok %s ->" subname; + let res_ns = match t with + | `DNS (_,None,_) -> "None" + | `DNS (_,Some ns,_) -> + Printf.sprintf "Ipaddr.V4.of_string %S" (Ipaddr.V4.to_string ns) in + append_main " let ns = %s in" res_ns; + let res_ns_port = match t with + | `DNS (_,_,None) -> "None" + | `DNS (_,_,Some ns_port) -> Printf.sprintf "Some %d" ns_port in + append_main " let ns_port = %s in" res_ns_port; + append_main " let res = %s.init ?ns ?ns_port ~stack:%s () in" (module_name_core t) subname; + append_main " return (`Ok res)"; + newline_main () + + let clean = function + | `DNS (s,_,_) -> Impl.clean s + + let update_path t root = + match t with + | `DNS (s,a,b) -> `DNS (Impl.update_path s root, a, b) + +end + +type resolver = Resolver + +let resolver = Type Resolver + +let resolver_dns ?ns ?ns_port stack = + impl resolver (`DNS (stack, ns, ns_port)) (module Resolver_direct) + +let resolver_unix_system = + impl resolver () (module Resolver_unix) + +module HTTP = struct + + type t = + [ `Channel of channel impl + | `Stack of conduit_server * conduit impl ] + + let name t = + let key = "http" ^ match t with + | `Channel c -> Impl.name c + | `Stack (_, c) -> Impl.name c in + Name.of_key key ~base:"http" + + let module_name_core t = + String.capitalize (name t) + + let module_name t = + module_name_core t ^ ".Server" + + let packages t = + [ "mirage-http" ] @ + match t with + | `Channel c -> Impl.packages c + | `Stack (_, c) -> Impl.packages c + + let libraries t = + [ "mirage-http" ] @ + match t with + | `Channel c -> Impl.libraries c + | `Stack (_, c) -> Impl.libraries c + + let configure t = + begin match t with + | `Channel c -> + Impl.configure c; + append_main "module %s = HTTP.Make(%s)" (module_name_core t) (Impl.module_name c) + | `Stack (_, c) -> + Impl.configure c; + append_main "module %s = HTTP.Make(%s)" (module_name_core t) (Impl.module_name c) + end; + newline_main (); + let subname = match t with + | `Channel c -> Impl.name c + | `Stack (_,c) -> Impl.name c in + append_main "let %s () =" (name t); + append_main " %s () >>= function" subname; + append_main " | `Error _ -> %s" (driver_initialisation_error subname); + append_main " | `Ok %s ->" subname; + begin match t with + | `Channel c -> failwith "TODO" + | `Stack (m,c) -> + append_main " let listen spec ="; + append_main " let ctx = %s in" (Impl.name c); + append_main " let mode = %s in" + (match m with + |`TCP (`Port port) -> Printf.sprintf "`TCP (`Port %d)" port + |`Vchan l -> failwith "Vchan not supported yet in server" + ); + append_main " %s.serve ~ctx ~mode (%s.Server.listen spec)" (Impl.module_name c) (module_name_core t); + append_main " in"; + append_main " return (`Ok listen)"; + end; + newline_main () + + let clean = function + | `Channel c -> Impl.clean c + | `Stack (_,c) -> Impl.clean c + + let update_path t root = + match t with + | `Channel c -> `Channel (Impl.update_path c root) + | `Stack (m, c) -> `Stack (m, Impl.update_path c root) + +end + +type http = HTTP + +let http = Type HTTP + +let http_server_of_channel chan = + impl http (`Channel chan) (module HTTP) + +let http_server mode conduit = + impl http (`Stack (mode, conduit)) (module HTTP) + +type job = JOB + +let job = Type JOB + +module Job = struct + + type t = { + name: string; + impl: job impl; + } + + let create impl = + let name = Name.create "job" in + { name; impl } + + let name t = + t.name + + let module_name t = + "Job_" ^ t.name + + let packages t = + Impl.packages t.impl + + let libraries t = + Impl.libraries t.impl + + let configure t = + Impl.configure t.impl; + newline_main () + + let clean t = + Impl.clean t.impl + + let update_path t root = + { t with impl = Impl.update_path t.impl root } + +end + +module Tracing = struct + type t = { + size : int; + } + + let unix_trace_file = "trace.ctf" + + let packages _ = StringSet.singleton "mirage-profile" + + let libraries _ = + match !mode with + | `Unix | `MacOSX -> StringSet.singleton "mirage-profile.unix" + | `Xen -> StringSet.singleton "mirage-profile.xen" + + let configure t = + if Sys.command "ocamlfind query lwt.tracing 2>/dev/null" <> 0 then ( + flush stdout; + error "lwt.tracing module not found. Hint:\n\ + opam pin add lwt 'https://github.com/mirage/lwt.git#tracing'" + ); + + append_main "let () = "; + begin match !mode with + | `Unix | `MacOSX -> + append_main " let buffer = MProf_unix.mmap_buffer ~size:%d %S in" t.size unix_trace_file; + append_main " let trace_config = MProf.Trace.Control.make buffer MProf_unix.timestamper in"; + append_main " MProf.Trace.Control.start trace_config"; + | `Xen -> + append_main " let trace_pages = MProf_xen.make_shared_buffer ~size:%d in" t.size; + append_main " let buffer = trace_pages |> Io_page.to_cstruct |> Cstruct.to_bigarray in"; + append_main " let trace_config = MProf.Trace.Control.make buffer MProf_xen.timestamper in"; + append_main " MProf.Trace.Control.start trace_config;"; + append_main " MProf_xen.share_with (module Gnt.Gntshr) (module OS.Xs) ~domid:0 trace_pages"; + append_main " |> OS.Main.run"; + end; + newline_main () +end + +type tracing = Tracing.t + +let mprof_trace ~size () = + { Tracing.size } + +type t = { + name: string; + root: string; + jobs: job impl list; + tracing: tracing option; +} + +let t = ref None + +let config_file = ref None + +let reset () = + config_file := None; + t := None + +let set_config_file f = + config_file := Some f + +let get_config_file () = + match !config_file with + | None -> Sys.getcwd () / "config.ml" + | Some f -> f + +let update_path t root = + { t with jobs = List.map (fun j -> Impl.update_path j root) t.jobs } + +let register ?tracing name jobs = + let root = match !config_file with + | None -> failwith "no config file" + | Some f -> Filename.dirname f in + t := Some { name; jobs; root; tracing } + +let registered () = + match !t with + | None -> { name = "empty"; jobs = []; root = Sys.getcwd (); tracing = None } + | Some t -> t + +let ps = ref StringSet.empty + +let add_to_opam_packages p = + ps := StringSet.union (StringSet.of_list p) !ps + +let packages t = + let m = match !mode with + | `Unix | `MacOSX -> "mirage-unix" + | `Xen -> "mirage-xen" in + let ps = StringSet.add m !ps in + let ps = match t.tracing with + | None -> ps + | Some tracing -> StringSet.union (Tracing.packages tracing) ps in + let ps = List.fold_left (fun set j -> + let ps = StringSet.of_list (Impl.packages j) in + StringSet.union ps set + ) ps t.jobs in + StringSet.elements ps + +let ls = ref StringSet.empty + +let add_to_ocamlfind_libraries l = + ls := StringSet.union !ls (StringSet.of_list l) + +let libraries t = + let m = match !mode with + | `Unix | `MacOSX -> "mirage-types.lwt" + | `Xen -> "mirage-types.lwt" in + let ls = StringSet.add m !ls in + let ls = match t.tracing with + | None -> ls + | Some tracing -> StringSet.union (Tracing.libraries tracing) ls in + let ls = List.fold_left (fun set j -> + let ls = StringSet.of_list (Impl.libraries j) in + StringSet.union ls set + ) ls t.jobs in + StringSet.elements ls + +let configure_myocamlbuild_ml t = + let minor, major = ocaml_version () in + if minor < 4 || major < 1 then ( + (* Previous ocamlbuild versions weren't able to understand the + --output-obj rules *) + let file = t.root / "myocamlbuild.ml" in + let oc = open_out file in + append oc "(* %s *)" generated_by_mirage; + newline oc; + append oc + "open Ocamlbuild_pack;;\n\ + open Ocamlbuild_plugin;;\n\ + open Ocaml_compiler;;\n\ + \n\ + let native_link_gen linker =\n\ + \ link_gen \"cmx\" \"cmxa\" !Options.ext_lib [!Options.ext_obj; \"cmi\"] linker;;\n\ + \n\ + let native_output_obj x = native_link_gen ocamlopt_link_prog\n\ + \ (fun tags -> tags++\"ocaml\"++\"link\"++\"native\"++\"output_obj\") x;;\n\ + \n\ + rule \"ocaml: cmx* & o* -> native.o\"\n\ + \ ~tags:[\"ocaml\"; \"native\"; \"output_obj\" ]\n\ + \ ~prod:\"%%.native.o\" ~deps:[\"%%.cmx\"; \"%%.o\"]\n\ + \ (native_output_obj \"%%.cmx\" \"%%.native.o\");;\n\ + \n\ + \n\ + let byte_link_gen = link_gen \"cmo\" \"cma\" \"cma\" [\"cmo\"; \"cmi\"];;\n\ + let byte_output_obj = byte_link_gen ocamlc_link_prog\n\ + \ (fun tags -> tags++\"ocaml\"++\"link\"++\"byte\"++\"output_obj\");;\n\ + \n\ + rule \"ocaml: cmo* -> byte.o\"\n\ + \ ~tags:[\"ocaml\"; \"byte\"; \"link\"; \"output_obj\" ]\n\ + ~prod:\"%%.byte.o\" ~dep:\"%%.cmo\"\n\ + \ (byte_output_obj \"%%.cmo\" \"%%.byte.o\");;"; + close_out oc + ) + +let clean_myocamlbuild_ml t = + remove (t.root / "myocamlbuild.ml") + +let configure_main_libvirt_xml t = + let file = t.root / t.name ^ "_libvirt.xml" in + let oc = open_out file in + append oc "" generated_by_mirage; + append oc ""; + append oc " %s" t.name; + append oc " 262144"; + append oc " 262144"; + append oc " 1"; + append oc " "; + append oc " linux"; + append oc " %s/mir-%s.xen" t.root t.name; + append oc " "; (* the libxl driver currently needs an empty cmdline to be able to start the domain on arm - due to this? http://lists.xen.org/archives/html/xen-devel/2014-02/msg02375.html *) + append oc " "; + append oc " "; + append oc " preserve"; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc " "; + append oc ""; + close_out oc + +let clean_main_libvirt_xml t = + remove (t.root / t.name ^ "_libvirt.xml") + +let configure_main_xl t = + let file = t.root / t.name ^ ".xl" in + let oc = open_out file in + append oc "# %s" generated_by_mirage; + newline oc; + append oc "name = '%s'" t.name; + append oc "kernel = '%s/mir-%s.xen'" t.root t.name; + append oc "builder = 'linux'"; + append oc "memory = 256"; + append oc "on_crash = 'preserve'"; + newline oc; + append oc "# You must define the network and block interfaces manually."; + newline oc; + append oc "# The disk configuration is defined here:"; + append oc "# http://xenbits.xen.org/docs/4.3-testing/misc/xl-disk-configuration.txt"; + append oc "# An example would look like:"; + append oc "# disk = [ '/dev/loop0,,xvda' ]"; + newline oc; + append oc "# The network configuration is defined here:"; + append oc "# http://xenbits.xen.org/docs/4.3-testing/misc/xl-network-configuration.html"; + append oc "# An example would look like:"; + append oc "# vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]"; + close_out oc + +let clean_main_xl t = + remove (t.root / t.name ^ ".xl") + +let configure_main_xe t = + let file = t.root / t.name ^ ".xe" in + let oc = open_out file in + append oc "#!/bin/sh"; + append oc "# %s" generated_by_mirage; + newline oc; + append oc "set -e"; + newline oc; + append oc "# Dependency: xe"; + append oc "command -v xe >/dev/null 2>&1 || { echo >&2 \"I require xe but it's not installed. Aborting.\"; exit 1; }"; + append oc "# Dependency: xe-unikernel-upload"; + append oc "command -v xe-unikernel-upload >/dev/null 2>&1 || { echo >&2 \"I require xe-unikernel-upload but it's not installed. Aborting.\"; exit 1; }"; + append oc "# Dependency: a $HOME/.xe"; + append oc "if [ ! -e $HOME/.xe ]; then"; + append oc " echo Please create a config file for xe in $HOME/.xe which contains:"; + append oc " echo server=''"; + append oc " echo username=root"; + append oc " echo password=password"; + append oc " exit 1"; + append oc "fi"; + newline oc; + append oc "echo Uploading VDI containing unikernel"; + append oc "VDI=$(xe-unikernel-upload --path %s/mir-%s.xen)" t.root t.name; + append oc "echo VDI=$VDI"; + append oc "echo Creating VM metadata"; + append oc "VM=$(xe vm-create name-label=%s)" t.name; + append oc "echo VM=$VM"; + append oc "xe vm-param-set uuid=$VM PV-bootloader=pygrub"; + append oc "echo Adding network interface connected to xenbr0"; + append oc "ETH0=$(xe network-list bridge=xenbr0 params=uuid --minimal)"; + append oc "VIF=$(xe vif-create vm-uuid=$VM network-uuid=$ETH0 device=0)"; + append oc "echo Atting block device and making it bootable"; + append oc "VBD=$(xe vbd-create vm-uuid=$VM vdi-uuid=$VDI device=0)"; + append oc "xe vbd-param-set uuid=$VBD bootable=true"; + append oc "xe vbd-param-set uuid=$VBD other-config:owner=true"; + append oc "echo Starting VM"; + append oc "xe vm-start vm=%s" t.name; + close_out oc; + Unix.chmod file 0o755 + +let clean_main_xe t = + remove (t.root / t.name ^ ".xe") + +(* Get the linker flags for any extra C objects we depend on. + * This is needed when building a Xen image as we do the link manually. *) +let get_extra_ld_flags ~filter pkgs = + let output = read_command + "ocamlfind query -r -format '%%d\t%%(xen_linkopts)' -predicates native %s" + (String.concat " " pkgs) in + split output '\n' + |> List.fold_left (fun acc line -> + match cut_at line '\t' with + | None -> acc + | Some (dir, ldflags) -> Printf.sprintf "-L%s %s" dir ldflags :: acc + ) [] + +let configure_makefile t = + let file = t.root / "Makefile" in + let pkgs = "lwt.syntax" :: libraries t in + let libraries_str = + match pkgs with + | [] -> "" + | ls -> "-pkgs " ^ String.concat "," ls in + let packages = String.concat " " (packages t) in + let oc = open_out file in + append oc "# %s" generated_by_mirage; + newline oc; + append oc "LIBS = %s" libraries_str; + append oc "PKGS = %s" packages; + begin match !mode with + | `Xen -> + append oc "SYNTAX = -tags \"syntax(camlp4o),annot,bin_annot,strict_sequence,principal\"\n"; + append oc "SYNTAX += -tag-line \": -syntax(camlp4o)\"\n"; + append oc "FLAGS = -cflag -g -lflags -g,-linkpkg,-dontlink,unix\n"; + append oc "XENLIB = $(shell ocamlfind query mirage-xen)\n" + | `Unix -> + append oc "SYNTAX = -tags \"syntax(camlp4o),annot,bin_annot,strict_sequence,principal\"\n"; + append oc "SYNTAX += -tag-line \": -syntax(camlp4o)\"\n"; + append oc "FLAGS = -cflag -g -lflags -g,-linkpkg\n" + | `MacOSX -> + append oc "SYNTAX = -tags \"syntax(camlp4o),annot,bin_annot,strict_sequence,principal,thread\"\n"; + append oc "SYNTAX += -tag-line \": -syntax(camlp4o)\"\n"; + append oc "FLAGS = -cflag -g -lflags -g,-linkpkg\n" + end; + append oc "BUILD = ocamlbuild -use-ocamlfind $(LIBS) $(SYNTAX) $(FLAGS)\n\ + OPAM = opam\n\n\ + export PKG_CONFIG_PATH=$(shell opam config var prefix)/lib/pkgconfig\n\n\ + export OPAMVERBOSE=1\n\ + export OPAMYES=1"; + newline oc; + append oc ".PHONY: all depend clean build main.native\n\ + all: build\n\ + \n\ + depend:\n\ + \t$(OPAM) install $(PKGS) --verbose\n\ + \n\ + main.native:\n\ + \t$(BUILD) main.native\n\ + \n\ + main.native.o:\n\ + \t$(BUILD) main.native.o"; + newline oc; + + (* On ARM, we must convert the ELF image to an ARM boot executable zImage, + * while on x86 we leave it as it is. *) + let generate_image = + let need_zImage = + match uname_m () with + | Some machine -> String.length machine > 2 && String.sub machine 0 3 = "arm" + | None -> failwith "uname -m failed; can't determine target machine type!" in + if need_zImage then ( + Printf.sprintf "\t -o mir-%s.elf\n\ + \tobjcopy -O binary mir-%s.elf mir-%s.xen" + t.name t.name t.name + ) else ( + Printf.sprintf "\t -o mir-%s.xen" t.name + ) in + + begin match !mode with + | `Xen -> + let filter = function + | "unix" | "bigarray" |"shared_memory_ring_stubs" -> false (* Provided by mirage-xen instead. *) + | _ -> true in + let extra_c_archives = + get_extra_ld_flags ~filter pkgs + |> String.concat " \\\n\t " in + + append oc "build: main.native.o"; + let pkg_config_deps = "mirage-xen" in + append oc "\tpkg-config --print-errors --exists %s" pkg_config_deps; + append oc "\tld -d -static -nostdlib \\\n\ + \t _build/main.native.o \\\n\ + \t %s \\\n\ + \t $$(pkg-config --static --libs %s) \\\n\ + \t $(shell gcc -print-libgcc-file-name) \\\n\ + %s" + extra_c_archives pkg_config_deps generate_image; + | `Unix | `MacOSX -> + append oc "build: main.native"; + append oc "\tln -nfs _build/main.native mir-%s" t.name; + end; + newline oc; + append oc "run: build"; + begin match !mode with + | `Xen -> + append oc "\t@echo %s.xl has been created. Edit it to add VIFs or VBDs" t.name; + append oc "\t@echo Then do something similar to: xl create -c %s.xl\n" t.name + | `Unix | `MacOSX -> + append oc "\t$(SUDO) ./mir-%s\n" t.name + end; + append oc "clean:\n\ + \tocamlbuild -clean"; + close_out oc + +let clean_makefile t = + remove (t.root / "Makefile") + +let no_opam_version_check_ = ref false +let no_opam_version_check b = no_opam_version_check_ := b + +let configure_opam t = + info "Installing OPAM packages."; + match packages t with + | [] -> () + | ps -> + if command_exists "opam" then + if !no_opam_version_check_ then () + else ( + let opam_version = read_command "opam --version" in + let version_error () = + error "Your version of opam: %s is not up-to-date. \ + Please update to (at least) 1.2." opam_version + in + match split opam_version '.' with + | major::minor::_ -> + let major = try int_of_string major with Failure _ -> 0 in + let minor = try int_of_string minor with Failure _ -> 0 in + if (major, minor) >= (1, 2) then opam "install" ps else version_error () + | _ -> version_error () + ) + else error "OPAM is not installed." + +let clean_opam t = + () +(* This is a bit too agressive, disabling for now on. + let (++) = StringSet.union in + let set mode = StringSet.of_list (packages t mode) in + let packages = + set (`Unix `Socket) ++ set (`Unix `Direct) ++ set `Xen in + match StringSet.elements packages with + | [] -> () + | ps -> + if cmd_exists "opam" then opam "remove" ps + else error "OPAM is not installed." +*) + +let manage_opam_packages_ = ref true +let manage_opam_packages b = manage_opam_packages_ := b + +let configure_job j = + let name = Impl.name j in + let module_name = Impl.module_name j in + let param_names = Impl.names j in + append_main "let %s () =" name; + List.iter (fun p -> + append_main " %s () >>= function" p; + append_main " | `Error e -> %s" (driver_initialisation_error p); + append_main " | `Ok %s ->" p; + ) (dedup param_names); + append_main " %s.start %s" module_name (String.concat " " param_names); + newline_main () + +let configure_main t = + info "%s main.ml" (blue_s "Generating:"); + set_main_ml (t.root / "main.ml"); + append_main "(* %s *)" generated_by_mirage; + newline_main (); + append_main "open Lwt"; + newline_main (); + append_main "let _ = Printexc.record_backtrace true"; + newline_main (); + begin match t.tracing with + | None -> () + | Some tracing -> Tracing.configure tracing end; + List.iter (fun j -> Impl.configure j) t.jobs; + List.iter configure_job t.jobs; + let names = List.map (fun j -> Printf.sprintf "%s ()" (Impl.name j)) t.jobs in + append_main "let () ="; + append_main " OS.Main.run (join [%s])" (String.concat "; " names) + +let clean_main t = + List.iter Impl.clean t.jobs; + remove (t.root / "main.ml") + +let configure t = + info "%s %s" (blue_s "Using configuration:") (get_config_file ()); + info "%d job%s [%s]" + (List.length t.jobs) + (if List.length t.jobs = 1 then "" else "s") + (String.concat ", " (List.map Impl.functor_name t.jobs)); + in_dir t.root (fun () -> + if !manage_opam_packages_ then configure_opam t; + configure_myocamlbuild_ml t; + configure_makefile t; + configure_main_xl t; + configure_main_xe t; + configure_main_libvirt_xml t; + configure_main t + ) + +let make () = + match uname_s () with + | Some ("FreeBSD" | "OpenBSD" | "NetBSD" | "DragonFly") -> "gmake" + | _ -> "make" + +let build t = + info "Build: %s" (blue_s (get_config_file ())); + in_dir t.root (fun () -> + command "%s build" (make ()) + ) + +let run t = + info "Run: %s" (blue_s (get_config_file ())); + in_dir t.root (fun () -> + command "%s run" (make ()) + ) + +let clean t = + info "Clean: %s" (blue_s (get_config_file ())); + in_dir t.root (fun () -> + if !manage_opam_packages_ then clean_opam t; + clean_myocamlbuild_ml t; + clean_makefile t; + clean_main_xl t; + clean_main_xe t; + clean_main_libvirt_xml t; + clean_main t; + command "rm -rf %s/_build" t.root; + command "rm -rf log %s/main.native.o %s/main.native %s/mir-%s %s/*~" + t.root t.root t.root t.name t.root; + ) + +(* Compile the configuration file and attempt to dynlink it. + * It is responsible for registering an application via + * [Mirage_config.register] in order to have an observable + * side effect to this command. *) +let compile_and_dynlink file = + info "%s %s" (blue_s "Processing:") file; + let root = Filename.dirname file in + let file = Filename.basename file in + let file = Dynlink.adapt_filename file in + command "rm -rf %s/_build/%s.*" root (Filename.chop_extension file); + command "cd %s && ocamlbuild -use-ocamlfind -tags annot,bin_annot -pkg mirage %s" root file; + try Dynlink.loadfile (String.concat "/" [root; "_build"; file]) + with Dynlink.Error err -> error "Error loading config: %s" (Dynlink.error_message err) + +(* If a configuration file is specified, then use that. + * If not, then scan the curdir for a `config.ml` file. + * If there is more than one, then error out. *) +let scan_conf = function + | Some f -> + info "%s %s" (blue_s "Using specified config file:") f; + if not (Sys.file_exists f) then error "%s does not exist, stopping." f; + realpath f + | None -> + let files = Array.to_list (Sys.readdir ".") in + match List.filter ((=) "config.ml") files with + | [] -> error "No configuration file config.ml found.\n\ + You'll need to create one to let Mirage know what to do." + | [f] -> + info "%s %s" (blue_s "Using scanned config file:") f; + realpath f + | _ -> error "There is more than one config.ml in the current working directory.\n\ + Please specify one explictly on the command-line." + +let load file = + reset (); + let file = scan_conf file in + let root = realpath (Filename.dirname file) in + let file = root / Filename.basename file in + info "%s %s" (blue_s "Compiling for target:") (string_of_mode !mode); + set_config_file file; + compile_and_dynlink file; + let t = registered () in + set_section t.name; + update_path t root diff --git a/samples/OCaml/reload.ml b/samples/OCaml/reload.ml new file mode 100644 index 00000000..510f201f --- /dev/null +++ b/samples/OCaml/reload.ml @@ -0,0 +1,125 @@ +(***********************************************************************) +(* *) +(* OCaml *) +(* *) +(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 2000 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the Q Public License version 1.0. *) +(* *) +(***********************************************************************) + +open Cmm +open Arch +open Reg +open Mach + +(* Reloading for the AMD64 *) + +(* Summary of instruction set constraints: + "S" means either stack or register, "R" means register only. + Operation Res Arg1 Arg2 + Imove R S + or S R + Iconst_int S if 32-bit signed, R otherwise + Iconst_float R + Iconst_symbol (not PIC) S + Iconst_symbol (PIC) R + Icall_ind R + Itailcall_ind R + Iload R R R + Istore R R + Iintop(Icomp) R R S + or S S R + Iintop(Imul|Idiv|mod) R R S + Iintop(shift) S S R + Iintop(others) R R S + or S S R + Iintop_imm(Iadd, n)/lea R R + Iintop_imm(others) S S + Inegf...Idivf R R S + Ifloatofint R S + Iintoffloat R S + Ispecific(Ilea) R R R + Ispecific(Ifloatarithmem) R R R + + Conditional branches: + Iinttest S R + or R S + Ifloattest R S (or S R if swapped test) + other tests S +*) + +let stackp r = + match r.loc with + Stack _ -> true + | _ -> false + +class reload = object (self) + +inherit Reloadgen.reload_generic as super + +method! reload_operation op arg res = + match op with + | Iintop(Iadd|Isub|Iand|Ior|Ixor|Icomp _|Icheckbound) -> + (* One of the two arguments can reside in the stack, but not both *) + if stackp arg.(0) && stackp arg.(1) + then ([|arg.(0); self#makereg arg.(1)|], res) + else (arg, res) + | Iintop_imm(Iadd, _) when arg.(0).loc <> res.(0).loc -> + (* This add will be turned into a lea; args and results must be + in registers *) + super#reload_operation op arg res + | Iintop(Idiv | Imod | Ilsl | Ilsr | Iasr) + | Iintop_imm(_, _) -> + (* The argument(s) and results can be either in register or on stack *) + (* Note: Idiv, Imod: arg(0) and res(0) already forced in regs + Ilsl, Ilsr, Iasr: arg(1) already forced in regs *) + (arg, res) + | Iintop(Imul) | Iaddf | Isubf | Imulf | Idivf -> + (* First argument (= result) must be in register, second arg + can reside in the stack *) + if stackp arg.(0) + then (let r = self#makereg arg.(0) in ([|r; arg.(1)|], [|r|])) + else (arg, res) + | Ifloatofint | Iintoffloat -> + (* Result must be in register, but argument can be on stack *) + (arg, (if stackp res.(0) then [| self#makereg res.(0) |] else res)) + | Iconst_int n -> + if n <= 0x7FFFFFFFn && n >= -0x80000000n + then (arg, res) + else super#reload_operation op arg res + | Iconst_symbol _ -> + if !pic_code || !Clflags.dlcode + then super#reload_operation op arg res + else (arg, res) + | _ -> (* Other operations: all args and results in registers *) + super#reload_operation op arg res + +method! reload_test tst arg = + match tst with + Iinttest cmp -> + (* One of the two arguments can reside on stack *) + if stackp arg.(0) && stackp arg.(1) + then [| self#makereg arg.(0); arg.(1) |] + else arg + | Ifloattest((Clt|Cle), _) -> + (* Cf. emit.mlp: we swap arguments in this case *) + (* First argument can be on stack, second must be in register *) + if stackp arg.(1) + then [| arg.(0); self#makereg arg.(1) |] + else arg + | Ifloattest((Ceq|Cne|Cgt|Cge), _) -> + (* Second argument can be on stack, first must be in register *) + if stackp arg.(0) + then [| self#makereg arg.(0); arg.(1) |] + else arg + | _ -> + (* The argument(s) can be either in register or on stack *) + arg + +end + +let fundecl f = + (new reload)#fundecl f diff --git a/samples/OCaml/sigset.ml b/samples/OCaml/sigset.ml new file mode 100644 index 00000000..ba5e1092 --- /dev/null +++ b/samples/OCaml/sigset.ml @@ -0,0 +1,70 @@ +(* + * Copyright (c) 2013 Jeremy Yallop. + * + * This file is distributed under the terms of the MIT License. + * See the file LICENSE for details. + *) + +open PosixTypes +open Ctypes +open Foreign + +type t = sigset_t ptr + +let t = ptr sigset_t + +(* This function initializes the signal set set to exclude all of the defined + signals. It always returns 0. *) +let sigemptyset = foreign "sigemptyset" (ptr sigset_t @-> returning int) + +let empty () = + let setp = allocate_n ~count:1 sigset_t in begin + ignore (sigemptyset setp); + setp + end + +(* This function initializes the signal set set to include all of the defined + signals. Again, the return value is 0. *) +let sigfillset = foreign "sigfillset" (ptr sigset_t @-> returning int) + +let full () = + let setp = allocate_n ~count:1 sigset_t in begin + ignore (sigfillset setp); + setp + end + +(* This function adds the signal signum to the signal set set. All sigaddset + does is modify set; it does not block or unblock any signals. + + The return value is 0 on success and -1 on failure. The following errno + error condition is defined for this function: + + EINVAL The signum argument doesn't specify a valid signal. +*) +let sigaddset = foreign "sigaddset" ~check_errno:true + (ptr sigset_t @-> int @-> returning int) + +let add set signal = ignore (sigaddset set signal) + +(* This function removes the signal signum from the signal set set. All + sigdelset does is modify set; it does not block or unblock any signals. + + The return value and error conditions are the same as for + sigaddset. *) +let sigdelset = foreign "sigdelset" ~check_errno:true + (ptr sigset_t @-> int @-> returning int) + +let del set signal = ignore (sigdelset set signal) + +(* The sigismember function tests whether the signal signum is a member of the + signal set set. It returns 1 if the signal is in the set, 0 if not, and -1 if + there is an error. + + The following errno error condition is defined for this function: + + EINVAL The signum argument doesn't specify a valid signal. +*) +let sigismember = foreign "sigismember" ~check_errno:true + (ptr sigset_t @-> int @-> returning int) + +let mem set signal = sigismember set signal <> 0 diff --git a/samples/OCaml/uutf.ml b/samples/OCaml/uutf.ml new file mode 100644 index 00000000..ff12d954 --- /dev/null +++ b/samples/OCaml/uutf.ml @@ -0,0 +1,810 @@ +(*--------------------------------------------------------------------------- + Copyright 2012 Daniel C. Bünzli. All rights reserved. + Distributed under the BSD3 license, see license at the end of the file. + %%NAME%% release %%VERSION%% + ---------------------------------------------------------------------------*) + +let io_buffer_size = 65536 (* IO_BUFFER_SIZE 4.0.0 *) + +let pp = Format.fprintf +let invalid_encode () = invalid_arg "expected `Await encode" +let invalid_bounds j l = + invalid_arg (Printf.sprintf "invalid bounds (index %d, length %d)" j l) + +(* Unsafe string byte manipulations. If you don't believe the author's + invariants, replacing with safe versions makes everything safe in + the module. He won't be upset. *) + +let unsafe_chr = Char.unsafe_chr +let unsafe_blit = String.unsafe_blit +let unsafe_array_get = Array.unsafe_get +let unsafe_byte s j = Char.code (String.unsafe_get s j) +let unsafe_set_byte s j byte = String.unsafe_set s j (Char.unsafe_chr byte) + +(* Unicode characters *) + +type uchar = int +let u_bom = 0xFEFF (* BOM. *) +let u_rep = 0xFFFD (* replacement character. *) +let is_uchar cp = + (0x0000 <= cp && cp <= 0xD7FF) || (0xE000 <= cp && cp <= 0x10FFFF) + +let pp_cp ppf cp = + if cp < 0 || cp > 0x10FFFF then pp ppf "U+Invalid(%X)" cp else + if cp <= 0xFFFF then pp ppf "U+%04X" cp else + pp ppf "U+%X" cp + +let cp_to_string cp = (* NOT thread safe. *) + pp Format.str_formatter "%a" pp_cp cp; Format.flush_str_formatter () + +(* Unicode encoding schemes *) + +type encoding = [ `UTF_8 | `UTF_16 | `UTF_16BE | `UTF_16LE ] +type decoder_encoding = [ encoding | `US_ASCII | `ISO_8859_1 ] + +let encoding_of_string s = match String.uppercase s with (* IANA names. *) +| "UTF-8" -> Some `UTF_8 +| "UTF-16" -> Some `UTF_16 +| "UTF-16LE" -> Some `UTF_16LE +| "UTF-16BE" -> Some `UTF_16BE +| "ANSI_X3.4-1968" | "ISO-IR-6" | "ANSI_X3.4-1986" | "ISO_646.IRV:1991" +| "ASCII" | "ISO646-US" | "US-ASCII" | "US" | "IBM367" | "CP367" | "CSASCII" -> + Some `US_ASCII +| "ISO_8859-1:1987" | "ISO-IR-100" | "ISO_8859-1" | "ISO-8859-1" +| "LATIN1" | "L1" | "IBM819" | "CP819" | "CSISOLATIN1" -> + Some `ISO_8859_1 +| _ -> None + +let encoding_to_string = function +| `UTF_8 -> "UTF-8" | `UTF_16 -> "UTF-16" | `UTF_16BE -> "UTF-16BE" +| `UTF_16LE -> "UTF-16LE" | `US_ASCII -> "US-ASCII" +| `ISO_8859_1 -> "ISO-8859-1" + +(* Base character decoders. They assume enough data. *) + +let malformed s j l = `Malformed (String.sub s j l) +let malformed_pair be hi s j l = (* missing or half low surrogate at eoi. *) + let bs1 = String.sub s j l in + let bs0 = String.create 2 in + let j0, j1 = if be then (0, 1) else (1, 0) in + unsafe_set_byte bs0 j0 (hi lsr 8); + unsafe_set_byte bs0 j1 (hi land 0xFF); + `Malformed (bs0 ^ bs1) + +let r_us_ascii s j = + (* assert (0 <= j && j < String.length s); *) + let b0 = unsafe_byte s j in + if b0 <= 127 then `Uchar b0 else malformed s j 1 + +let r_iso_8859_1 s j = + (* assert (0 <= j && j < String.length s); *) + `Uchar (unsafe_byte s j) + +let utf_8_len = [| (* uchar byte length according to first UTF-8 byte. *) + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; + 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; + 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; + 0; 0; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; + 2; 2; 2; 2; 2; 2; 2; 2; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; + 4; 4; 4; 4; 4; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0 |] + +let r_utf_8 s j l = + (* assert (0 <= j && 0 <= l && j + l <= String.length s); *) + match l with + | 1 -> `Uchar (unsafe_byte s j) + | 2 -> + let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in + if b1 lsr 6 != 0b10 then malformed s j l else + `Uchar (((b0 land 0x1F) lsl 6) lor (b1 land 0x3F)) + | 3 -> + let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in + let b2 = unsafe_byte s (j + 2) in + let c = `Uchar (((b0 land 0x0F) lsl 12) lor + ((b1 land 0x3F) lsl 6) lor + (b2 land 0x3F)) + in + if b2 lsr 6 != 0b10 then malformed s j l else + begin match b0 with + | 0xE0 -> if b1 < 0xA0 || 0xBF < b1 then malformed s j l else c + | 0xED -> if b1 < 0x80 || 0x9F < b1 then malformed s j l else c + | _ -> if b1 lsr 6 != 0b10 then malformed s j l else c + end + | 4 -> + let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in + let b2 = unsafe_byte s (j + 2) in let b3 = unsafe_byte s (j + 3) in + let c = `Uchar (((b0 land 0x07) lsl 18) lor + ((b1 land 0x3F) lsl 12) lor + ((b2 land 0x3F) lsl 6) lor + (b3 land 0x3F)) + in + if b3 lsr 6 != 0b10 || b2 lsr 6 != 0b10 then malformed s j l else + begin match b0 with + | 0xF0 -> if b1 < 0x90 || 0xBF < b1 then malformed s j l else c + | 0xF4 -> if b1 < 0x80 || 0x8F < b1 then malformed s j l else c + | _ -> if b1 lsr 6 != 0b10 then malformed s j l else c + end + | _ -> assert false + +let r_utf_16 s j0 j1 = (* May return a high surrogate. *) + (* assert (0 <= j0 && 0 <= j1 && max j0 j1 < String.length s); *) + let b0 = unsafe_byte s j0 in let b1 = unsafe_byte s j1 in + let u = (b0 lsl 8) lor b1 in + if u < 0xD800 || u > 0xDFFF then `Uchar u else + if u > 0xDBFF then malformed s (min j0 j1) 2 else `Hi u + +let r_utf_16_lo hi s j0 j1 = (* Combines [hi] with a low surrogate. *) + (* assert (0 <= j0 && 0 <= j1 && max j0 j1 < String.length s); *) + let b0 = unsafe_byte s j0 in + let b1 = unsafe_byte s j1 in + let lo = (b0 lsl 8) lor b1 in + if lo < 0xDC00 || lo > 0xDFFF + then malformed_pair (j0 < j1 (* true => be *)) hi s (min j0 j1) 2 + else `Uchar ((((hi land 0x3FF) lsl 10) lor (lo land 0x3FF)) + 0x10000) + +let r_encoding s j l = (* guess encoding with max. 3 bytes. *) + (* assert (0 <= j && 0 <= l && j + l <= String.length s) *) + let some i = if i < l then Some (unsafe_byte s (j + i)) else None in + match (some 0), (some 1), (some 2) with + | Some 0xEF, Some 0xBB, Some 0xBF -> `UTF_8 `BOM + | Some 0xFE, Some 0xFF, _ -> `UTF_16BE `BOM + | Some 0xFF, Some 0xFE, _ -> `UTF_16LE `BOM + | Some 0x00, Some p, _ when p > 0 -> `UTF_16BE (`ASCII p) + | Some p, Some 0x00, _ when p > 0 -> `UTF_16LE (`ASCII p) + | Some u, _, _ when utf_8_len.(u) <> 0 -> `UTF_8 `Decode + | Some _, Some _, _ -> `UTF_16BE `Decode + | Some _, None , None -> `UTF_8 `Decode + | None , None , None -> `UTF_8 `End + | None , Some _, _ -> assert false + | Some _, None , Some _ -> assert false + | None , None , Some _ -> assert false + +(* Decode *) + +type src = [ `Channel of in_channel | `String of string | `Manual ] +type nln = [ `ASCII of uchar | `NLF of uchar | `Readline of uchar ] +type decode = [ `Await | `End | `Malformed of string | `Uchar of uchar] + +let pp_decode ppf = function +| `Uchar u -> pp ppf "@[`Uchar %a@]" pp_cp u +| `End -> pp ppf "`End" +| `Await -> pp ppf "`Await" +| `Malformed bs -> + let l = String.length bs in + pp ppf "@[`Malformed ("; + if l > 0 then pp ppf "%02X" (Char.code (bs.[0])); + for i = 1 to l - 1 do pp ppf " %02X" (Char.code (bs.[i])) done; + pp ppf ")@]" + +type decoder = + { src : src; (* input source. *) + mutable encoding : decoder_encoding; (* decoded encoding. *) + nln : nln option; (* newline normalization (if any). *) + nl : int; (* newline normalization character. *) + mutable i : string; (* current input chunk. *) + mutable i_pos : int; (* input current position. *) + mutable i_max : int; (* input maximal position. *) + t : string; (* four bytes temporary buffer for overlapping reads. *) + mutable t_len : int; (* current byte length of [t]. *) + mutable t_need : int; (* number of bytes needed in [t]. *) + mutable removed_bom : bool; (* [true] if an initial BOM was removed. *) + mutable last_cr : bool; (* [true] if last char was CR. *) + mutable line : int; (* line number. *) + mutable col : int; (* column number. *) + mutable byte_count : int; (* byte count. *) + mutable count : int; (* char count. *) + mutable pp : (* decoder post-processor for BOM, position and nln. *) + decoder -> [ `Malformed of string | `Uchar of uchar ] -> decode; + mutable k : decoder -> decode } (* decoder continuation. *) + +(* On decodes that overlap two (or more) [d.i] buffers, we use [t_fill] to copy + the input data to [d.t] and decode from there. If the [d.i] buffers are not + too small this is faster than continuation based byte per byte writes. + + End of input (eoi) is signalled by [d.i_pos = 0] and [d.i_max = min_int] + which implies that [i_rem d < 0] is [true]. *) + +let i_rem d = d.i_max - d.i_pos + 1 (* remaining bytes to read in [d.i]. *) +let eoi d = d.i <- ""; d.i_pos <- 0; d.i_max <- min_int (* set eoi in [d]. *) +let src d s j l = (* set [d.i] with [s]. *) + if (j < 0 || l < 0 || j + l > String.length s) then invalid_bounds j l else + if (l = 0) then eoi d else + (d.i <- s; d.i_pos <- j; d.i_max <- j + l - 1) + +let refill k d = match d.src with (* get new input in [d.i] and [k]ontinue. *) +| `Manual -> d.k <- k; `Await +| `String _ -> eoi d; k d +| `Channel ic -> + let rc = input ic d.i 0 (String.length d.i) in + (src d d.i 0 rc; k d) + +let t_need d need = d.t_len <- 0; d.t_need <- need +let rec t_fill k d = (* get [d.t_need] bytes (or less if eoi) in [i.t]. *) + let blit d l = + unsafe_blit d.i d.i_pos d.t d.t_len (* write pos. *) l; + d.i_pos <- d.i_pos + l; d.t_len <- d.t_len + l; + in + let rem = i_rem d in + if rem < 0 (* eoi *) then k d else + let need = d.t_need - d.t_len in + if rem < need then (blit d rem; refill (t_fill k) d) else (blit d need; k d) + +let ret k v byte_count d = (* return post-processed [v]. *) + d.k <- k; d.byte_count <- d.byte_count + byte_count; d.pp d v + +(* Decoders. *) + +let rec decode_us_ascii d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_us_ascii d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 1; ret decode_us_ascii (r_us_ascii d.i j) 1 d + +let rec decode_iso_8859_1 d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_iso_8859_1 d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 1; ret decode_iso_8859_1 (r_iso_8859_1 d.i j) 1 d + +(* UTF-8 decoder *) + +let rec t_decode_utf_8 d = (* decode from [d.t]. *) + if d.t_len < d.t_need + then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d + else ret decode_utf_8 (r_utf_8 d.t 0 d.t_len) d.t_len d + +and decode_utf_8 d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_utf_8 d) else + let need = unsafe_array_get utf_8_len (unsafe_byte d.i d.i_pos) in + if rem < need then (t_need d need; t_fill t_decode_utf_8 d) else + let j = d.i_pos in + if need = 0 + then (d.i_pos <- d.i_pos + 1; ret decode_utf_8 (malformed d.i j 1) 1 d) + else (d.i_pos <- d.i_pos + need; ret decode_utf_8 (r_utf_8 d.i j need) need d) + +(* UTF-16BE decoder *) + +let rec t_decode_utf_16be_lo hi d = (* decode from [d.t]. *) + let bcount = d.t_len + 2 (* hi count *) in + if d.t_len < d.t_need + then ret decode_utf_16be (malformed_pair true hi d.t 0 d.t_len) bcount d + else ret decode_utf_16be (r_utf_16_lo hi d.t 0 1) bcount d + +and t_decode_utf_16be d = (* decode from [d.t]. *) + if d.t_len < d.t_need + then ret decode_utf_16be (malformed d.t 0 d.t_len) d.t_len d + else decode_utf_16be_lo (r_utf_16 d.t 0 1) d + +and decode_utf_16be_lo v d = match v with +| `Uchar _ | `Malformed _ as v -> ret decode_utf_16be v 2 d +| `Hi hi -> + let rem = i_rem d in + if rem < 2 then (t_need d 2; t_fill (t_decode_utf_16be_lo hi) d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; + ret decode_utf_16be (r_utf_16_lo hi d.i j (j + 1)) 4 d + +and decode_utf_16be d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_utf_16be d) else + if rem < 2 then (t_need d 2; t_fill t_decode_utf_16be d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; decode_utf_16be_lo (r_utf_16 d.i j (j + 1)) d + +(* UTF-16LE decoder, same as UTF-16BE with byte swapped. *) + +let rec t_decode_utf_16le_lo hi d = (* decode from [d.t]. *) + let bcount = d.t_len + 2 (* hi count *) in + if d.t_len < d.t_need + then ret decode_utf_16le (malformed_pair false hi d.t 0 d.t_len) bcount d + else ret decode_utf_16le (r_utf_16_lo hi d.t 1 0) bcount d + +and t_decode_utf_16le d = (* decode from [d.t]. *) + if d.t_len < d.t_need + then ret decode_utf_16le (malformed d.t 0 d.t_len) d.t_len d + else decode_utf_16le_lo (r_utf_16 d.t 1 0) d + +and decode_utf_16le_lo v d = match v with +| `Uchar _ | `Malformed _ as v -> ret decode_utf_16le v 2 d +| `Hi hi -> + let rem = i_rem d in + if rem < 2 then (t_need d 2; t_fill (t_decode_utf_16le_lo hi) d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; + ret decode_utf_16le (r_utf_16_lo hi d.i (j + 1) j) 4 d + +and decode_utf_16le d = + let rem = i_rem d in + if rem <= 0 then (if rem < 0 then `End else refill decode_utf_16le d) else + if rem < 2 then (t_need d 2; t_fill t_decode_utf_16le d) else + let j = d.i_pos in + d.i_pos <- d.i_pos + 2; decode_utf_16le_lo (r_utf_16 d.i (j + 1) j) d + +(* Encoding guessing. The guess is simple but starting the decoder + after is tedious, uutf's decoders are not designed to put bytes + back in the stream. *) + +let guessed_utf_8 d = (* start decoder after `UTF_8 guess. *) + let b3 d = (* handles the third read byte. *) + let b3 = unsafe_byte d.t 2 in + match utf_8_len.(b3) with + | 0 -> ret decode_utf_8 (malformed d.t 2 1) 1 d + | n -> + d.t_need <- n; d.t_len <- 1; unsafe_set_byte d.t 0 b3; + t_fill t_decode_utf_8 d + in + let b2 d = (* handle second read byte. *) + let b2 = unsafe_byte d.t 1 in + let b3 = if d.t_len > 2 then b3 else decode_utf_8 (* decodes `End *) in + match utf_8_len.(b2) with + | 0 -> ret b3 (malformed d.t 1 1) 1 d + | 1 -> ret b3 (r_utf_8 d.t 1 1) 1 d + | n -> (* copy d.t.(1-2) to d.t.(0-1) and decode *) + d.t_need <- n; + unsafe_set_byte d.t 0 b2; + if (d.t_len < 3) then d.t_len <- 1 else + (d.t_len <- 2; unsafe_set_byte d.t 1 (unsafe_byte d.t 2); ); + t_fill t_decode_utf_8 d + in + let b1 = unsafe_byte d.t 0 in (* handle first read byte. *) + let b2 = if d.t_len > 1 then b2 else decode_utf_8 (* decodes `End *) in + match utf_8_len.(b1) with + | 0 -> ret b2 (malformed d.t 0 1) 1 d + | 1 -> ret b2 (r_utf_8 d.t 0 1) 1 d + | 2 -> + if d.t_len < 2 then ret decode_utf_8 (malformed d.t 0 1) 1 d else + if d.t_len < 3 then ret decode_utf_8 (r_utf_8 d.t 0 2) 2 d else + ret b3 (r_utf_8 d.t 0 2) 2 d + | 3 -> + if d.t_len < 3 + then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d + else ret decode_utf_8 (r_utf_8 d.t 0 3) 3 d + | 4 -> + if d.t_len < 3 + then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d + else (d.t_need <- 4; t_fill t_decode_utf_8 d) + | n -> assert false + +let guessed_utf_16 d be v = (* start decoder after `UTF_16{BE,LE} guess. *) + let decode_utf_16, t_decode_utf_16, t_decode_utf_16_lo, j0, j1 = + if be then decode_utf_16be, t_decode_utf_16be, t_decode_utf_16be_lo, 0, 1 + else decode_utf_16le, t_decode_utf_16le, t_decode_utf_16le_lo, 1, 0 + in + let b3 k d = + if d.t_len < 3 then decode_utf_16 d (* decodes `End *) else + begin (* copy d.t.(2) to d.t.(0) and decode. *) + d.t_need <- 2; d.t_len <- 1; + unsafe_set_byte d.t 0 (unsafe_byte d.t 2); + t_fill k d + end + in + match v with + | `BOM -> ret (b3 t_decode_utf_16) (`Uchar u_bom) 2 d + | `ASCII u -> ret (b3 t_decode_utf_16) (`Uchar u) 2 d + | `Decode -> + match r_utf_16 d.t j0 j1 with + | `Malformed _ | `Uchar _ as v -> ret (b3 t_decode_utf_16) v 2 d + | `Hi hi -> + if d.t_len < 3 + then ret decode_utf_16 (malformed_pair be hi "" 0 0) d.t_len d + else (b3 (t_decode_utf_16_lo hi)) d + +let guess_encoding d = (* guess encoding and start decoder. *) + let setup d = match r_encoding d.t 0 d.t_len with + | `UTF_8 r -> + d.encoding <- `UTF_8; d.k <- decode_utf_8; + begin match r with + | `BOM -> ret decode_utf_8 (`Uchar u_bom) 3 d + | `Decode -> guessed_utf_8 d + | `End -> `End + end + | `UTF_16BE r -> + d.encoding <- `UTF_16BE; d.k <- decode_utf_16be; guessed_utf_16 d true r + | `UTF_16LE r -> + d.encoding <- `UTF_16LE; d.k <- decode_utf_16le; guessed_utf_16 d false r + + in + (t_need d 3; t_fill setup d) + +(* Character post-processors. Used for BOM handling, newline + normalization and position tracking. The [pp_remove_bom] is only + used for the first character to remove a possible initial BOM and + handle UTF-16 endianness recognition. *) + +let nline d = d.col <- 0; d.line <- d.line + 1 (* inlined. *) +let ncol d = d.col <- d.col + 1 (* inlined. *) +let ncount d = d.count <- d.count + 1 (* inlined. *) +let cr d b = d.last_cr <- b (* inlined. *) + +let pp_remove_bom utf16 pp d = function(* removes init. BOM, handles UTF-16. *) +| `Uchar 0xFEFF (* BOM *) -> + if utf16 then (d.encoding <- `UTF_16BE; d.k <- decode_utf_16be); + d.removed_bom <- true; d.pp <- pp; d.k d +| `Uchar 0xFFFE (* BOM reversed from decode_utf_16be *) when utf16 -> + d.encoding <- `UTF_16LE; d.k <- decode_utf_16le; + d.removed_bom <- true; d.pp <- pp; d.k d +| `Malformed _ | `Uchar _ as v -> + d.removed_bom <- false; d.pp <- pp; d.pp d v + +let pp_nln_none d = function +| `Uchar 0x000A (* LF *) as v -> + let last_cr = d.last_cr in + cr d false; ncount d; if last_cr then v else (nline d; v) +| `Uchar 0x000D (* CR *) as v -> cr d true; ncount d; nline d; v +| `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) (* NEL | FF | LS | PS *) as v -> + cr d false; ncount d; nline d; v +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let pp_nln_readline d = function +| `Uchar 0x000A (* LF *) -> + let last_cr = d.last_cr in + cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) +| `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl +| `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) (* NEL | FF | LS | PS *) -> + cr d false; ncount d; nline d; `Uchar d.nl +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let pp_nln_nlf d = function +| `Uchar 0x000A (* LF *) -> + let last_cr = d.last_cr in + cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) +| `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl +| `Uchar 0x0085 (* NEL *) -> cr d false; ncount d; nline d; `Uchar d.nl +| `Uchar (0x000C | 0x2028 | 0x2029) as v (* FF | LS | PS *) -> + cr d false; ncount d; nline d; v +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let pp_nln_ascii d = function +| `Uchar 0x000A (* LF *) -> + let last_cr = d.last_cr in + cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) +| `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl +| `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) as v (* NEL | FF | LS | PS *) -> + cr d false; ncount d; nline d; v +| `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v + +let decode_fun = function +| `UTF_8 -> decode_utf_8 +| `UTF_16 -> decode_utf_16be (* see [pp_remove_bom]. *) +| `UTF_16BE -> decode_utf_16be +| `UTF_16LE -> decode_utf_16le +| `US_ASCII -> decode_us_ascii +| `ISO_8859_1 -> decode_iso_8859_1 + +let decoder ?nln ?encoding src = + let pp, nl = match nln with + | None -> pp_nln_none, 0x000A (* not used. *) + | Some (`ASCII nl) -> pp_nln_ascii, nl + | Some (`NLF nl) -> pp_nln_nlf, nl + | Some (`Readline nl) -> pp_nln_readline, nl + in + let encoding, k = match encoding with + | None -> `UTF_8, guess_encoding + | Some e -> (e :> decoder_encoding), decode_fun e + in + let i, i_pos, i_max = match src with + | `Manual -> "", 1, 0 (* implies src_rem d = 0. *) + | `Channel _ -> String.create io_buffer_size, 1, 0 (* idem. *) + | `String s -> s, 0, String.length s - 1 + in + { src = (src :> src); encoding; nln = (nln :> nln option); nl; + i; i_pos; i_max; t = String.create 4; t_len = 0; t_need = 0; + removed_bom = false; last_cr = false; line = 1; col = 0; + byte_count = 0; count = 0; + pp = pp_remove_bom (encoding = `UTF_16) pp; k } + +let decode d = d.k d +let decoder_line d = d.line +let decoder_col d = d.col +let decoder_byte_count d = d.byte_count +let decoder_count d = d.count +let decoder_removed_bom d = d.removed_bom +let decoder_src d = d.src +let decoder_nln d = d.nln +let decoder_encoding d = d.encoding +let set_decoder_encoding d e = + d.encoding <- (e :> decoder_encoding); d.k <- decode_fun e + +(* Encode *) + +type dst = [ `Channel of out_channel | `Buffer of Buffer.t | `Manual ] +type encode = [ `Await | `End | `Uchar of uchar ] +type encoder = + { dst : dst; (* output destination. *) + encoding : encoding; (* encoded encoding. *) + mutable o : string; (* current output chunk. *) + mutable o_pos : int; (* next output position to write. *) + mutable o_max : int; (* maximal output position to write. *) + t : string; (* four bytes buffer for overlapping writes. *) + mutable t_pos : int; (* next position to read in [t]. *) + mutable t_max : int; (* maximal position to read in [t]. *) + mutable k : (* encoder continuation. *) + encoder -> encode -> [ `Ok | `Partial ] } + +(* On encodes that overlap two (or more) [e.o] buffers, we encode the + character to the temporary buffer [o.t] and continue with + [tmp_flush] to write this data on the different [e.o] buffers. If + the [e.o] buffers are not too small this is faster than + continuation based byte per byte writes. *) + +let o_rem e = e.o_max - e.o_pos + 1 (* remaining bytes to write in [e.o]. *) +let dst e s j l = (* set [e.o] with [s]. *) + if (j < 0 || l < 0 || j + l > String.length s) then invalid_bounds j l; + e.o <- s; e.o_pos <- j; e.o_max <- j + l - 1 + +let partial k e = function `Await -> k e | `Uchar _ | `End -> invalid_encode () +let flush k e = match e.dst with(* get free storage in [d.o] and [k]ontinue. *) +| `Manual -> e.k <- partial k; `Partial +| `Buffer b -> Buffer.add_substring b e.o 0 e.o_pos; e.o_pos <- 0; k e +| `Channel oc -> output oc e.o 0 e.o_pos; e.o_pos <- 0; k e + +let t_range e max = e.t_pos <- 0; e.t_max <- max +let rec t_flush k e = (* flush [d.t] up to [d.t_max] in [d.i]. *) + let blit e l = + unsafe_blit e.t e.t_pos e.o e.o_pos l; + e.o_pos <- e.o_pos + l; e.t_pos <- e.t_pos + l + in + let rem = o_rem e in + let len = e.t_max - e.t_pos + 1 in + if rem < len then (blit e rem; flush (t_flush k) e) else (blit e len; k e) + +(* Encoders. *) + +let rec encode_utf_8 e v = + let k e = e.k <- encode_utf_8; `Ok in + match v with + | `Await -> k e + | `End -> flush k e + | `Uchar u as v -> + let rem = o_rem e in + if u <= 0x007F then + if rem < 1 then flush (fun e -> encode_utf_8 e v) e else + (unsafe_set_byte e.o e.o_pos u; e.o_pos <- e.o_pos + 1; k e) + else if u <= 0x07FF then + begin + let s, j, k = + if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) + in + unsafe_set_byte s j (0xC0 lor (u lsr 6)); + unsafe_set_byte s (j + 1) (0x80 lor (u land 0x3F)); + k e + end + else if u <= 0xFFFF then + begin + let s, j, k = + if rem < 3 then (t_range e 2; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 3; e.o, j, k) + in + unsafe_set_byte s j (0xE0 lor (u lsr 12)); + unsafe_set_byte s (j + 1) (0x80 lor ((u lsr 6) land 0x3F)); + unsafe_set_byte s (j + 2) (0x80 lor (u land 0x3F)); + k e + end + else + begin + let s, j, k = + if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) + in + unsafe_set_byte s j (0xF0 lor (u lsr 18)); + unsafe_set_byte s (j + 1) (0x80 lor ((u lsr 12) land 0x3F)); + unsafe_set_byte s (j + 2) (0x80 lor ((u lsr 6) land 0x3F)); + unsafe_set_byte s (j + 3) (0x80 lor (u land 0x3F)); + k e + end + +let rec encode_utf_16be e v = + let k e = e.k <- encode_utf_16be; `Ok in + match v with + | `Await -> k e + | `End -> flush k e + | `Uchar u -> + let rem = o_rem e in + if u < 0x10000 then + begin + let s, j, k = + if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) + in + unsafe_set_byte s j (u lsr 8); + unsafe_set_byte s (j + 1) (u land 0xFF); + k e + end else begin + let s, j, k = + if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) + in + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + unsafe_set_byte s j (hi lsr 8); + unsafe_set_byte s (j + 1) (hi land 0xFF); + unsafe_set_byte s (j + 2) (lo lsr 8); + unsafe_set_byte s (j + 3) (lo land 0xFF); + k e + end + +let rec encode_utf_16le e v = (* encode_uft_16be with bytes swapped. *) + let k e = e.k <- encode_utf_16le; `Ok in + match v with + | `Await -> k e + | `End -> flush k e + | `Uchar u -> + let rem = o_rem e in + if u < 0x10000 then + begin + let s, j, k = + if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) + in + unsafe_set_byte s j (u land 0xFF); + unsafe_set_byte s (j + 1) (u lsr 8); + k e + end + else + begin + let s, j, k = + if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else + let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) + in + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + unsafe_set_byte s j (hi land 0xFF); + unsafe_set_byte s (j + 1) (hi lsr 8); + unsafe_set_byte s (j + 2) (lo land 0xFF); + unsafe_set_byte s (j + 3) (lo lsr 8); + k e + end + +let encode_fun = function +| `UTF_8 -> encode_utf_8 +| `UTF_16 -> encode_utf_16be +| `UTF_16BE -> encode_utf_16be +| `UTF_16LE -> encode_utf_16le + +let encoder encoding dst = + let o, o_pos, o_max = match dst with + | `Manual -> "", 1, 0 (* implies o_rem e = 0. *) + | `Buffer _ + | `Channel _ -> String.create io_buffer_size, 0, io_buffer_size - 1 + in + { dst = (dst :> dst); encoding = (encoding :> encoding); o; o_pos; o_max; + t = String.create 4; t_pos = 1; t_max = 0; k = encode_fun encoding} + +let encode e v = e.k e (v :> encode) +let encoder_encoding e = e.encoding +let encoder_dst e = e.dst + +(* Manual sources and destinations. *) + +module Manual = struct + let src = src + let dst = dst + let dst_rem = o_rem +end + +(* Strings folders and Buffer encoders *) + +module String = struct + let encoding_guess s = match r_encoding s 0 (max (String.length s) 3) with + | `UTF_8 d -> `UTF_8, (d = `BOM) + | `UTF_16BE d -> `UTF_16BE, (d = `BOM) + | `UTF_16LE d -> `UTF_16LE, (d = `BOM) + + type 'a folder = + 'a -> int -> [ `Uchar of uchar | `Malformed of string ] -> 'a + + let fold_utf_8 f acc s = + let rec loop acc f s i l = + if i = l then acc else + let need = unsafe_array_get utf_8_len (unsafe_byte s i) in + if need = 0 then loop (f acc i (malformed s i 1)) f s (i + 1) l else + let rem = l - i in + if rem < need then f acc i (malformed s i rem) else + loop (f acc i (r_utf_8 s i need)) f s (i + need) l + in + loop acc f s 0 (String.length s) + + let fold_utf_16be f acc s = + let rec loop acc f s i l = + if i = l then acc else + let rem = l - i in + if rem < 2 then f acc i (malformed s i 1) else + match r_utf_16 s i (i + 1) with + | `Uchar _ | `Malformed _ as v -> loop (f acc i v) f s (i + 2) l + | `Hi hi -> + if rem < 4 then f acc i (malformed s i rem) else + loop (f acc i (r_utf_16_lo hi s (i + 2) (i + 3))) f s (i + 4) l + in + loop acc f s 0 (String.length s) + + let fold_utf_16le f acc s = (* [fold_utf_16be], bytes swapped. *) + let rec loop acc f s i l = + if i = l then acc else + let rem = l - i in + if rem < 2 then f acc i (malformed s i 1) else + match r_utf_16 s (i + 1) i with + | `Uchar _ | `Malformed _ as v -> loop (f acc i v) f s (i + 2) l + | `Hi hi -> + if rem < 4 then f acc i (malformed s i rem) else + loop (f acc i (r_utf_16_lo hi s (i + 3) (i + 2))) f s (i + 4) l + in + loop acc f s 0 (String.length s) +end + +module Buffer = struct + let add_utf_8 b u = + let w byte = Buffer.add_char b (unsafe_chr byte) in (* inlined. *) + if u <= 0x007F then + (w u) + else if u <= 0x07FF then + (w (0xC0 lor (u lsr 6)); + w (0x80 lor (u land 0x3F))) + else if u <= 0xFFFF then + (w (0xE0 lor (u lsr 12)); + w (0x80 lor ((u lsr 6) land 0x3F)); + w (0x80 lor (u land 0x3F))) + else + (w (0xF0 lor (u lsr 18)); + w (0x80 lor ((u lsr 12) land 0x3F)); + w (0x80 lor ((u lsr 6) land 0x3F)); + w (0x80 lor (u land 0x3F))) + + let add_utf_16be b u = + let w byte = Buffer.add_char b (unsafe_chr byte) in (* inlined. *) + if u < 0x10000 then (w (u lsr 8); w (u land 0xFF)) else + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + w (hi lsr 8); w (hi land 0xFF); + w (lo lsr 8); w (lo land 0xFF) + + let add_utf_16le b u = (* swapped add_utf_16be. *) + let w byte = Buffer.add_char b (unsafe_chr byte) in (* inlined. *) + if u < 0x10000 then (w (u land 0xFF); w (u lsr 8)) else + let u' = u - 0x10000 in + let hi = (0xD800 lor (u' lsr 10)) in + let lo = (0xDC00 lor (u' land 0x3FF)) in + w (hi land 0xFF); w (hi lsr 8); + w (lo land 0xFF); w (lo lsr 8) +end + +(*--------------------------------------------------------------------------- + Copyright 2012 Daniel C. Bünzli + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. Neither the name of Daniel C. Bünzli nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*) diff --git a/samples/Objective-C/gen-cocoa-linguist-thrift.m b/samples/Objective-C/gen-cocoa-linguist-thrift.m new file mode 100644 index 00000000..670a85f7 --- /dev/null +++ b/samples/Objective-C/gen-cocoa-linguist-thrift.m @@ -0,0 +1,176 @@ +/** + * Autogenerated by Thrift Compiler (1.0.0-dev) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ + +#import + +#import "TProtocol.h" +#import "TApplicationException.h" +#import "TProtocolException.h" +#import "TProtocolUtil.h" +#import "TProcessor.h" +#import "TObjective-C.h" +#import "TBase.h" + + +#import "linguist.h" + +@implementation PullRequest + +- (id) init +{ + self = [super init]; +#if TARGET_OS_IPHONE || (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) +#endif + return self; +} + +- (id) initWithTitle: (NSString *) title +{ + self = [super init]; + __title = [title retain_stub]; + __title_isset = YES; + return self; +} + +- (id) initWithCoder: (NSCoder *) decoder +{ + self = [super init]; + if ([decoder containsValueForKey: @"title"]) + { + __title = [[decoder decodeObjectForKey: @"title"] retain_stub]; + __title_isset = YES; + } + return self; +} + +- (void) encodeWithCoder: (NSCoder *) encoder +{ + if (__title_isset) + { + [encoder encodeObject: __title forKey: @"title"]; + } +} + +- (NSUInteger) hash +{ + NSUInteger hash = 17; + hash = (hash * 31) ^ __title_isset ? 2654435761 : 0; + if (__title_isset) + { + hash = (hash * 31) ^ [__title hash]; + } + return hash; +} + +- (BOOL) isEqual: (id) anObject +{ + if (self == anObject) { + return YES; + } + if (![anObject isKindOfClass:[PullRequest class]]) { + return NO; + } + PullRequest *other = (PullRequest *)anObject; + if ((__title_isset != other->__title_isset) || + (__title_isset && ((__title || other->__title) && ![__title isEqual:other->__title]))) { + return NO; + } + return YES; +} + +- (void) dealloc +{ + [__title release_stub]; + [super dealloc_stub]; +} + +- (NSString *) title { + return [[__title retain_stub] autorelease_stub]; +} + +- (void) setTitle: (NSString *) title { + [title retain_stub]; + [__title release_stub]; + __title = title; + __title_isset = YES; +} + +- (BOOL) titleIsSet { + return __title_isset; +} + +- (void) unsetTitle { + [__title release_stub]; + __title = nil; + __title_isset = NO; +} + +- (void) read: (id ) inProtocol +{ + NSString * fieldName; + int fieldType; + int fieldID; + + [inProtocol readStructBeginReturningName: NULL]; + while (true) + { + [inProtocol readFieldBeginReturningName: &fieldName type: &fieldType fieldID: &fieldID]; + if (fieldType == TType_STOP) { + break; + } + switch (fieldID) + { + case 1: + if (fieldType == TType_STRING) { + NSString * fieldValue = [inProtocol readString]; + [self setTitle: fieldValue]; + } else { + [TProtocolUtil skipType: fieldType onProtocol: inProtocol]; + } + break; + default: + [TProtocolUtil skipType: fieldType onProtocol: inProtocol]; + break; + } + [inProtocol readFieldEnd]; + } + [inProtocol readStructEnd]; +} + +- (void) write: (id ) outProtocol { + [outProtocol writeStructBeginWithName: @"PullRequest"]; + if (__title_isset) { + if (__title != nil) { + [outProtocol writeFieldBeginWithName: @"title" type: TType_STRING fieldID: 1]; + [outProtocol writeString: __title]; + [outProtocol writeFieldEnd]; + } + } + [outProtocol writeFieldStop]; + [outProtocol writeStructEnd]; +} + +- (void) validate { + // check for required fields +} + +- (NSString *) description { + NSMutableString * ms = [NSMutableString stringWithString: @"PullRequest("]; + [ms appendString: @"title:"]; + [ms appendFormat: @"\"%@\"", __title]; + [ms appendString: @")"]; + return [NSString stringWithString: ms]; +} + +@end + + +@implementation linguistConstants ++ (void) initialize { +} +@end + diff --git a/samples/PHP/drupal.script! b/samples/PHP/drupal.php similarity index 100% rename from samples/PHP/drupal.script! rename to samples/PHP/drupal.php diff --git a/samples/PHP/file_display.inc b/samples/PHP/file_display.inc new file mode 100644 index 00000000..8133a3b9 --- /dev/null +++ b/samples/PHP/file_display.inc @@ -0,0 +1,142 @@ + TRUE, + 'title' => t('File display'), + 'description' => t('Displays the file with a configurable style.'), + 'required context' => new ctools_context_required(t('File'), 'entity:file'), + 'category' => t('File'), + 'defaults' => array( + 'displays' => array(), + ), +); + +/** + * Render the node content. + */ +function file_entity_file_display_content_type_render($subtype, $conf, $panel_args, $context) { + if (!empty($context) && empty($context->data)) { + return; + } + $file = isset($context->data) ? clone($context->data) : NULL; + $block = new stdClass(); + $block->module = 'file_entity'; + $block->delta = $file->fid; + + if (empty($file)) { + $block->delta = 'placeholder'; + $block->title = t('File display'); + $block->content = t('File display goes here.'); + } + else { + if (!empty($conf['identifier'])) { + $file->ctools_template_identifier = $conf['identifier']; + } + + $block->title = $file->filename; + $block->content = file_view_file($file, $conf['displays']); + } + + if (!empty($conf['link']) && $file) { + $block->title_link = entity_uri('file', $file); + } + + return $block; +} + +/** + * Edit form for this plugin. + */ +function file_entity_file_display_content_type_edit_form($form, &$form_state) { + $conf = $form_state['conf']; + $form['#tree'] = TRUE; + $form['#attached']['js'][] = drupal_get_path('module', 'file_entity') . '/file_entity.admin.js'; + + // Retrieve available formatters for this file. We can load all file types + // since we don't know which type the file is at this point. + $formatters = file_info_formatter_types(); + + // Formatter status. + $form['displays']['status'] = array( + '#type' => 'item', + '#title' => t('Enabled displays'), + '#prefix' => '
', + '#suffix' => '
', + ); + $i=0; + foreach ($formatters as $name => $formatter) { + $form['displays']['status'][$name] = array( + '#type' => 'checkbox', + '#title' => check_plain($formatter['label']), + '#default_value' => !empty($conf['displays'][$name]['status']), + '#description' => isset($formatter['description']) ? filter_xss($formatter['description']) : NULL, + '#parents' => array('displays', $name, 'status'), + '#weight' => (isset($formatter['weight']) ? $formatter['weight'] : 0) + ($i / 1000), + ); + $i++; + } + // Formatter order (tabledrag). + $form['displays']['order'] = array( + '#type' => 'item', + '#title' => t('Display precedence order'), + '#theme' => 'file_entity_file_display_order', + ); + foreach ($formatters as $name => $formatter) { + $form['displays']['order'][$name]['label'] = array( + '#markup' => check_plain($formatter['label']), + ); + $form['displays']['order'][$name]['weight'] = array( + '#type' => 'weight', + '#title' => t('Weight for @title', array('@title' => $formatter['label'])), + '#title_display' => 'invisible', + '#delta' => 50, + '#default_value' => isset($conf['displays'][$name]['weight']) ? $conf['displays'][$name]['weight'] : 0, + '#parents' => array('displays', $name, 'weight'), + ); + $form['displays']['order'][$name]['#weight'] = $form['displays']['order'][$name]['weight']['#default_value']; + } + + // Formatter settings. + $form['display_settings_title'] = array( + '#type' => 'item', + '#title' => t('Display settings'), + ); + $form['display_settings'] = array( + '#type' => 'vertical_tabs', + ); + $i=0; + foreach ($formatters as $name => $formatter) { + if (isset($formatter['settings callback']) && ($function = $formatter['settings callback']) && function_exists($function)) { + $defaults = !empty($formatter['default settings']) ? $formatter['default settings'] : array(); + $settings = !empty($conf['displays'][$name]['settings']) ? $conf['displays'][$name]['settings'] : array(); + $settings += $defaults; + $settings_form = $function($form, $form_state, $settings, $name, $file_type, $view_mode); + if (!empty($settings_form)) { + $form['displays']['settings'][$name] = array( + '#type' => 'fieldset', + '#title' => check_plain($formatter['label']), + '#parents' => array('displays', $name, 'settings'), + '#group' => 'display_settings', + '#weight' => (isset($formatter['weight']) ? $formatter['weight'] : 0) + ($i / 1000), + ) + $settings_form; + } + } + $i++; + } + return $form; +} + +function file_entity_file_display_content_type_edit_form_submit($form, &$form_state) { + // Copy everything from our defaults. + foreach (array_keys($form_state['plugin']['defaults']) as $key) { + $form_state['conf'][$key] = $form_state['values'][$key]; + } +} + +function file_entity_file_display_content_type_admin_title($subtype, $conf, $context) { + return t('"@s" content', array('@s' => $context->identifier)); +} diff --git a/samples/PHP/php.script! b/samples/PHP/php similarity index 100% rename from samples/PHP/php.script! rename to samples/PHP/php diff --git a/samples/PHP/php-script.script! b/samples/PHP/php-script similarity index 100% rename from samples/PHP/php-script.script! rename to samples/PHP/php-script diff --git a/samples/PHP/php2.script! b/samples/PHP/php2 similarity index 100% rename from samples/PHP/php2.script! rename to samples/PHP/php2 diff --git a/samples/PHP/root.php b/samples/PHP/root.php new file mode 100644 index 00000000..8f8be563 --- /dev/null +++ b/samples/PHP/root.php @@ -0,0 +1,6 @@ + diff --git a/samples/PLSQL/myobject.sql b/samples/PLSQL/myobject.sql new file mode 100644 index 00000000..dd2a68aa --- /dev/null +++ b/samples/PLSQL/myobject.sql @@ -0,0 +1,15 @@ +create or replace type myobject +AUTHID DEFINER +AS OBJECT +( + m_name varchar2(200), + member function toString RETURN VARCHAR2, + map member function Compare return varchar2 + +) +not instantiable not final; +/ + +prompt create type myarray +create or replace type myarray as table of myobject; +/ diff --git a/samples/PLSQL/packagebody.pkb b/samples/PLSQL/packagebody.pkb new file mode 100644 index 00000000..e5e80d99 --- /dev/null +++ b/samples/PLSQL/packagebody.pkb @@ -0,0 +1,58 @@ +CREATE OR REPLACE PACKAGE BODY linguistpackage +AS + /* + * Package: linguist pacakage body + * Purpose: a sample PLSQL file for linguist to work with + * + * Date: 03/03/2014 + * Author: david pyke le brun + * Comments: initial version + */ + +PROCEDURE proc_1 +IS +BEGIN +NULL; +END; + +-- functions with 1 arg +FUNCTION function1( param1 VARCHAR2 ) RETURN VARCHAR2 +IS +CURSOR c IS +select * from dual; +v c%ROWTYPE; +BEGIN + open c; + fetch c into v; + close c; + + return v; +end; + +FUNCTION function2( param1 NUMBER ) RETURN DATE +IS +BEGIN + return SYSDATE; +end; + +--a few more to use all basic SQL types +FUNCTION function3( param1 TIMESTAMP ) RETURN CHAR +IS +BEGIN +IF 1 = 2 THEN +return 'Y'; +ELSE +return 'N'; +END IF; +return NULL; +END; + + +FUNCTION function4( param1 CLOB ) RETURN BLOB +IS +BEGIN + return null; +END; + +END linguistpackage; +/ diff --git a/samples/PLSQL/packageheader.pks b/samples/PLSQL/packageheader.pks new file mode 100644 index 00000000..408cdca3 --- /dev/null +++ b/samples/PLSQL/packageheader.pks @@ -0,0 +1,28 @@ +CREATE OR REPLACE PACKAGE linguistpackage +AUTHID DEFINER +AS + /* + * Package: linguist pacakage + * Purpose: a sample PLSQL file for linguist to work with + * + * Date: 03/03/2014 + * Author: david pyke le brun + * Comments: initial version + */ + +k_constant CONSTANT NUMBER(10,2) := 3.14; + +--basic procedure +PROCEDURE proc_1; + +-- functions with 1 arg +FUNCTION function1( param1 VARCHAR2 ) RETURN VARCHAR2; +FUNCTION function2( param1 NUMBER ) RETURN DATE; + +--a few more to use all basic SQL types +FUNCTION function3( param1 TIMESTAMP ) RETURN CHAR; +FUNCTION function4( param1 CLOB ) RETURN BLOB; + +END linguistpackage; +/ + diff --git a/samples/PLSQL/prime#.plsql b/samples/PLSQL/prime#.plsql new file mode 100644 index 00000000..1a4785a1 --- /dev/null +++ b/samples/PLSQL/prime#.plsql @@ -0,0 +1,93 @@ +create or replace package prime# +is + invalid_argument_error exception; + + function nth ( + i_num pls_integer + ) return number; +end prime#; +/ + +create or replace package body prime# +is + type t_primes is table of number index by pls_integer; + b_primes t_primes; + + function is_prime( + i_candidate number + ) return boolean + is + l_num number := 1; + l_prime number; + l_result number; + begin + if i_candidate < 2 then + return false; + end if; + + loop + l_prime := nth(l_num); + if l_prime = i_candidate then + return true; + end if; + + l_result := i_candidate / l_prime; + if l_result = ceil(l_result) then + return false; + end if; + + l_num := l_num + 1; + exit when l_result <= l_prime; + end loop; + + return true; + end is_prime; + + function next ( + i_prime pls_integer + ) return number + is + l_next number; + begin + l_next := i_prime + case mod(i_prime, 2) when 0 then 1 else 2 end; + + while not is_prime(l_next) loop + l_next := l_next + 2; + end loop; + return l_next; + end next; + + function nth ( + i_num pls_integer + ) return number + is + l_index number := 2; + l_prime number := 3; + begin + if i_num < 1 + or ceil(i_num) != i_num + then + raise invalid_argument_error; + end if; + + case i_num + when 1 then return 2; + else + if b_primes.exists(i_num) then + return b_primes(i_num); + end if; + while l_index < i_num loop + l_index := l_index + 1; + if b_primes.exists(l_index) then + l_prime := b_primes(l_index); + else + l_prime := next(l_prime); + b_primes(l_index) := l_prime; + end if; + end loop; + return l_prime; + end case; + end nth; + +end prime#; +/ \ No newline at end of file diff --git a/samples/PLSQL/who_called_me.sql b/samples/PLSQL/who_called_me.sql new file mode 100644 index 00000000..fee4ed9b --- /dev/null +++ b/samples/PLSQL/who_called_me.sql @@ -0,0 +1,65 @@ +CREATE OR REPLACE PROCEDURE who_called_me +( owner OUT VARCHAR2, + name OUT VARCHAR2, + lineno OUT NUMBER, + caller_t OUT VARCHAR2 , + depth NUMBER DEFAULT 1 +) +AUTHID DEFINER +AS +--depth based version of who_called_me from asktom + call_stack VARCHAR2(4096) default dbms_utility.format_call_stack; + n NUMBER; + found_stack BOOLEAN DEFAULT FALSE; + line VARCHAR2(255); + cnt NUMBER := 0; +BEGIN + LOOP + n := instr( call_stack, chr(10) ); + exit when ( n is NULL or n = 0 ); +-- + line := substr( call_stack, 1, n-1 ); + call_stack := substr( call_stack, n+1 ); +-- + if ( NOT found_stack ) then + if ( line like '%handle%number%name%' ) then + found_stack := TRUE; + end if; + else + cnt := cnt + 1; + -- cnt = 1 is ME + -- cnt = 2 is MY Caller + -- cnt = 3 is Their Caller + if ( cnt = (2+depth) ) then + lineno := to_number(substr( line, 13, 8 )); + line := substr( line, 23 ); --set to rest of line .. change from 21 to 23 + if ( line like 'pr%' ) then + n := length( 'procedure ' ); + elsif ( line like 'fun%' ) then + n := length( 'function ' ); + elsif ( line like 'package body%' ) then + n := length( 'package body ' ); + elsif ( line like 'pack%' ) then + n := length( 'package ' ); + elsif ( line like 'anonymous%' ) then + n := length( 'anonymous block ' ); + else + n := null; + end if; + if ( n is not null ) then + caller_t := ltrim(rtrim(upper(substr( line, 1, n-1 )))); + else + caller_t := 'TRIGGER'; + end if; + + line := substr( line, nvl(n,1) ); + n := instr( line, '.' ); + owner := ltrim(rtrim(substr( line, 1, n-1 ))); + name := LTRIM(RTRIM(SUBSTR( LINE, N+1 ))); + exit; + END IF; + END IF; + END LOOP; +END; +/ + diff --git a/samples/PLpgSQL/plpgsql_lint-8.4.sql b/samples/PLpgSQL/plpgsql_lint-8.4.sql new file mode 100644 index 00000000..72c84469 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-8.4.sql @@ -0,0 +1,165 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type diagnostic_info_type as ( + status text, + message text, + detail text, + row_count int); + +create or replace function f1() +returns void as $$ +declare + dg record; +begin + dg := NULL::diagnostic_info_type; + if false then + dg.status := '00000'; + dg.mistake := 'hello'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/PLpgSQL/plpgsql_lint-9.0.sql b/samples/PLpgSQL/plpgsql_lint-9.0.sql new file mode 100644 index 00000000..72c84469 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.0.sql @@ -0,0 +1,165 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type diagnostic_info_type as ( + status text, + message text, + detail text, + row_count int); + +create or replace function f1() +returns void as $$ +declare + dg record; +begin + dg := NULL::diagnostic_info_type; + if false then + dg.status := '00000'; + dg.mistake := 'hello'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/PLpgSQL/plpgsql_lint-9.1.sql b/samples/PLpgSQL/plpgsql_lint-9.1.sql new file mode 100644 index 00000000..2cc532a1 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.1.sql @@ -0,0 +1,179 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type diagnostic_info_type as ( + status text, + message text, + detail text, + row_count int); + +create or replace function f1() +returns void as $$ +declare dg record; +begin + dg := NULL::diagnostic_info_type; + if false then + dg.status := '00000'; + dg.mistake := 'hello'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare dg record; +begin + if false then + dg := 10,20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + diff --git a/samples/PLpgSQL/plpgsql_lint-9.2.sql b/samples/PLpgSQL/plpgsql_lint-9.2.sql new file mode 100644 index 00000000..73da6e67 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.2.sql @@ -0,0 +1,166 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type _exception_type as ( + state text, + message text, + detail text); + +create or replace function f1() +returns void as $$ +declare + _exception record; +begin + _exception := NULL::_exception_type; +exception when others then + get stacked diagnostics + _exception.state = RETURNED_SQLSTATE, + _exception.message = MESSAGE_TEXT, + _exception.detail = PG_EXCEPTION_DETAIL, + _exception.hint = PG_EXCEPTION_HINT; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/PLpgSQL/plpgsql_lint-9.3.sql b/samples/PLpgSQL/plpgsql_lint-9.3.sql new file mode 100644 index 00000000..73da6e67 --- /dev/null +++ b/samples/PLpgSQL/plpgsql_lint-9.3.sql @@ -0,0 +1,166 @@ +load 'plpgsql'; +load 'plpgsql_lint'; + +create table t1(a int, b int); + +create function f1() +returns void as $$ +begin + if false then + update t1 set c = 30; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create function g1(out a int, out b int) +as $$ + select 10,20; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + r := g1(); + if false then + raise notice '%', r.c; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function g1(out a int, out b int) +returns setof record as $$ +select * from t1; +$$ language sql; + +create function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + raise notice '%', r.c; + end loop; +end; +$$ language plpgsql; + +select f1(); + +create or replace function f1() +returns void as $$ +declare r record; +begin + for r in select * from g1() + loop + r.c := 20; + end loop; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); +drop function g1(); + +create function f1() +returns int as $$ +declare r int; +begin + if false then + r := a + b; + end if; + return r; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '%', 1, 2; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +begin + if false then + raise notice '% %'; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create or replace function f1() +returns void as $$ +declare r int[]; +begin + if false then + r[c+10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + + +create or replace function f1() +returns void as $$ +declare r int; +begin + if false then + r[10] := 20; + end if; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); + +create type _exception_type as ( + state text, + message text, + detail text); + +create or replace function f1() +returns void as $$ +declare + _exception record; +begin + _exception := NULL::_exception_type; +exception when others then + get stacked diagnostics + _exception.state = RETURNED_SQLSTATE, + _exception.message = MESSAGE_TEXT, + _exception.detail = PG_EXCEPTION_DETAIL, + _exception.hint = PG_EXCEPTION_HINT; +end; +$$ language plpgsql; + +select f1(); + +drop function f1(); diff --git a/samples/Pascal/image_url.inc b/samples/Pascal/image_url.inc new file mode 100644 index 00000000..9f7090fa --- /dev/null +++ b/samples/Pascal/image_url.inc @@ -0,0 +1,37 @@ + function GetUnixMangaImageURL: Boolean; + var + i: Integer; + l: TStringList; + s: String; + begin + l := TStringList.Create; + s := manager.container.PageContainerLinks[workCounter]; + Result := GetPage(TObject(l), s , manager.container.Manager.retryConnect); + + if Self.Terminated then + begin + l.Free; + parse.Free; + Exit; + end; + + parse := TStringList.Create; + Parser := THTMLParser.Create(PChar(l.Text)); + Parser.OnFoundTag := OnTag; + Parser.OnFoundText := OnText; + Parser.Exec; + Parser.Free; + l.Free; + if parse.Count > 0 then + begin + for i := 0 to parse.Count - 1 do + begin + if (Pos('STYLE="border', parse[i]) > 0) and (Pos(' 0) then + begin + manager.container.PageLinks[workCounter] := Trim(GetVal(parse[i], 'SRC')); + Break; + end; + end; + end; + parse.Free; + end; diff --git a/samples/Pascal/libc.inc b/samples/Pascal/libc.inc new file mode 100644 index 00000000..15ced61e --- /dev/null +++ b/samples/Pascal/libc.inc @@ -0,0 +1,56 @@ +{ + This file is part of the Free Component Library (FCL) + Copyright (c) 1999-2002 by the Free Pascal development team + + BIOS functions unit for Nintendo DS + Copyright (c) 2006 by Francesco Lombardi + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program 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. + + *****************************************************************************} + +function __errno: plongint; cdecl; export; +begin + +end; + + +function S_ISBLK(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFBLK; +end; + +function S_ISCHR(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFCHR; +end; + +function S_ISDIR(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFDIR; +end; + +function S_ISFIFO(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFIFO; +end; + +function S_ISREG(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFREG; +end; + +function S_ISLNK(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFLNK; +end; + +function S_ISSOCK(m: longint): boolean; inline; +begin + result := (m and _IFMT) = _IFSOCK; +end; diff --git a/samples/Pascal/vmops_impl.inc b/samples/Pascal/vmops_impl.inc new file mode 100644 index 00000000..71ab8727 --- /dev/null +++ b/samples/Pascal/vmops_impl.inc @@ -0,0 +1,502 @@ +operator+(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] + b[i mod bn]; +end; + +operator+(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] + b; +end; + +operator+(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a + b[i]; +end; + +operator-(a: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := -a[i]; +end; + +operator-(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] - b[i mod bn]; +end; + +operator-(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] - b; +end; + +operator-(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a - b[i]; +end; + +operator*(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] * b[i mod bn]; +end; + +operator*(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] * b; +end; + +operator*(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a * b[i]; +end; + +operator/(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] / b[i mod bn]; +end; + +operator/(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] / b; +end; + +operator/(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a / b[i]; +end; + +operator**(a, b: Double)res: Double; +begin + if IsNan(a) or IsNan(b) then res := NaN + else if b = Infinity then begin + if a = NegInfinity then res := NaN + else case sign(a) of + 1: res := Infinity; + 0: res := 0; + -1: res := NegInfinity; + end; + end else if b = NegInfinity then begin + if a = NegInfinity then res := NaN + else case sign(a) of + 1: res := 0; + 0: res := Infinity; + -1: res := 0; + end; + end else res := power(a, b); +end; + +operator**(a, b: TVector)res: TVector; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + rn := math.max(an, bn); + SetLength(res, rn); + for i := 0 to rn - 1 do res[i] := a[i mod an] ** b[i mod bn]; +end; + +operator**(a: TVector; b: Double)res: TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] ** b; +end; + +operator**(a: Double; b: TVector)res: TVector; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a ** b[i]; +end; + +operator><(a: TVector; b: TVector)res: TMatrix; +var + i, an, bn, rn: Integer; +begin + an := Length(a); + bn := Length(b); + if an * bn = 0 then Exit(nil); + rn := math.max(an, bn); + SetLength(res, 1); + SetLength(res[0], 1); + res[0][0] := 0; + for i := 0 to rn - 1 do res[0][0] := res[0][0] + a[i mod an] * b[i mod bn]; +end; + +operator+(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] + b[i]; +end; + +operator+(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] + b; +end; + +operator+(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a + b[i]; +end; + +operator+(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a + matrix(b, Length(a), Length(a[0])); +end; + +operator+(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b + matrix(a, Length(b), Length(b[0])); +end; + +operator-(a: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := -a[i]; +end; + +operator-(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] - b[i]; +end; + +operator-(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] - b; +end; + +operator-(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a - b[i]; +end; + +operator-(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a - matrix(b, Length(a), Length(a[0])); +end; + +operator-(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b - matrix(a, Length(b), Length(b[0])); +end; + +operator*(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] * b[i]; +end; + +operator*(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] * b; +end; + +operator*(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a * b[i]; +end; + +operator*(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a * matrix(b, Length(a), Length(a[0])); +end; + +operator*(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b * matrix(a, Length(b), Length(b[0])); +end; + +operator/(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] / b[i]; +end; + +operator/(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] / b; +end; + +operator/(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a / b[i]; +end; + +operator/(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a / matrix(b, Length(a), Length(a[0])); +end; + +operator/(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b / matrix(a, Length(b), Length(b[0])); +end; + +operator**(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, an: Integer; +begin + an := Length(a); + SetLength(res, an); + for i := 0 to an - 1 do res[i] := a[i] ** b[i]; +end; + +operator**(a: TMatrix; b: Double)res: TMatrix; +var + i, n: Integer; +begin + n := Length(a); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a[i] ** b; +end; + +operator**(a: Double; b: TMatrix)res: TMatrix; +var + i, n: Integer; +begin + n := Length(b); + SetLength(res, n); + for i := 0 to n - 1 do res[i] := a ** b[i]; +end; + +operator**(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a ** matrix(b, Length(a), Length(a[0])); +end; + +operator**(a: TVector; b: TMatrix)res: TMatrix; +begin + res := b ** matrix(a, Length(b), Length(b[0])); +end; + +operator><(a: TMatrix; b: TMatrix)res: TMatrix; +var + i, j, n, m: Integer; +begin + n := Length(a); + m := Length(b); + if (n = 1) and (m = 1) then Exit(vector(a) >< vector(b)); + SetLength(res, n); + for i := 0 to n - 1 do begin + j := 0; + res[i] := a[i][j] * b[j]; + for j := 1 to m - 1 do res[i] := res[i] + a[i][j] * b[j]; + end; +end; + +operator><(a: TMatrix; b: TVector)res: TMatrix; +begin + res := a >< matrix(b, 1, Length(b)); +end; + +operator><(a: TVector; b: TMatrix)res: TMatrix; +begin + res := matrix(a, 1, Length(a)) >< b; +end; + +function vector(a: array of const): TVector; +var + i, n: Integer; +begin + n := Length(a); + SetLength(Result, n); + for i := 0 to n - 1 do case a[i].VType of + vtInteger: Result[i] := a[i].VInteger; + vtExtended: Result[i] := a[i].VExtended^; + vtCurrency: Result[i] := a[i].VCurrency^; + vtInt64: Result[i] := a[i].VInt64^; + end; +end; + +function vector(a: TMatrix): TVector; inline; +var + i, j, n, m : Integer; +begin + n := Length(a); + if n = 0 then Exit(nil); + m := Length(a[0]); + if m = 0 then Exit(nil); + SetLength(Result, m * n); + for i := 0 to m - 1 do + for j := 0 to n - 1 do + Result[i * n + j] := a[j][i]; +end; + +function matrix(data: TVector; nrow, ncol: Integer; byrow: Boolean): TMatrix; +var + i, j, n, c: Integer; +begin + n := Length(data); + if n = 0 then Exit(nil); + if (nrow = 0) and (ncol = 0) then ncol := 1; + if nrow = 0 then nrow := (n div ncol) + sign(n mod ncol); + if ncol = 0 then ncol := (n div nrow) + sign(n mod nrow); + SetLength(Result, nrow); + for i := 0 to nrow - 1 do begin + SetLength(Result[i], ncol); + for j := 0 to ncol - 1 do begin + if byrow then c := i * ncol + j else c := j * nrow + i; + Result[i][j] := data[c mod n]; + end; + end; +end; + +function matrix(data: TMatrix; nrow, ncol: Integer; byrow: Boolean): TMatrix; +begin + Result := matrix(vector(data), nrow, ncol, byrow); +end; + +function rep(data: TVector; times: TVector): TVector; +var + i, j, n, m, s, c: Integer; +begin + Result := nil; + n := Length(data); + m := Length(times); + if n * m = 0 then Exit; + s := 0; + for i := 0 to n - 1 do begin + c := trunc(times[i mod m]); + if c > 0 then s += c; + end; + SetLength(Result, s); + c := 0; + for i := 0 to n - 1 do begin + s := trunc(times[i mod m]); + for j := 1 to s do begin + Result[c] := data[i]; + Inc(c); + end; + end; +end; + +function rep(data: TVector; len: Integer): TVector; +var + i, j, n: Integer; +begin + n := Length(data); + SetLength(Result, n * len); + if n = 0 then Exit; + for i := 0 to len - 1 do + for j := 0 to n - 1 do + Result[i * n + j] := data[j]; +end; + +function rep(data: Double; len: Integer): TVector; +var + i: Integer; +begin + SetLength(Result, len); + for i := 0 to len - 1 do Result[i] := data; +end; diff --git a/samples/Perl/exception_handler.pl b/samples/Perl/exception_handler.pl new file mode 100644 index 00000000..14807ced --- /dev/null +++ b/samples/Perl/exception_handler.pl @@ -0,0 +1,117 @@ +package exception_handler; +use sigtrap qw(die normal-signals); +use IO::Handle; +use Carp; +use File::Spec; +use File::Basename; +use Data::Dumper; + +use sigtrap 'handler', \&tm_die; + +$Carp::CarpLevel = 1; # How many extra package levels to skip on carp. + +BEGIN { + *CORE::GLOBAL::die = \&tm_die; + $main::SIG{__DIE__} = \&tm_die; + my $error_fd = $ENV{"TM_ERROR_FD"}; + open (TM_ERROR_FD, ">&=$error_fd"); + TM_ERROR_FD->autoflush(1); +} + +sub realwarn { CORE::warn(@_); } +sub realdie { CORE::die(@_); } + +sub longmess { + my ($arg, @rest) = shift; + { + local $@; + # XXX fix require to not clear $@? + # don't use require unless we need to (for Safe compartments) + require Carp::Heavy unless $INC{"Carp/Heavy.pm"}; + } + # Icky backwards compatibility wrapper. :-( + my $call_pack = caller(); + if ($Internal{$call_pack} or $Carp::CarpInternal{$call_pack}) { + return longmess_heavy($arg, @rest); + } + else { + local $Carp::CarpLevel = $Carp::CarpLevel + 1; + return longmess_heavy($arg, @rest); + } +} + +sub longmess_heavy { + return @_ if ref($_[0]); # don't break references as exceptions + my $i = Carp::long_error_loc(); + my ($arg, @rest) = @_; + return ret_backtrace($i, $arg, @rest); +} + +sub quote { + my $str = shift; + $str =~ s/([^A-Za-z0-9\/_.-])/sprintf("%%%02X", ord($1))/seg; + return $str; +} + +sub url_and_display_name { + my $file = shift; + my $url = ""; + my $display_name = ""; + $display_name = basename($file); + $url = 'url=file://' . quote($file); + return ($url, $display_name); +} + +# Returns a full stack backtrace starting from where it is +# told. +sub ret_backtrace { + my ($i, $arg, @rest) = @_; + my $mess; + $i++; + + my $tid_msg = ''; + if (defined &Thread::tid) { + my $tid = Thread->self->tid; + $tid_msg = " thread $tid" if $tid; + } + + my %i = Carp::caller_info($i); + $arg =~ s/\n/\/g; + $i{sub} =~ s/tm_die/die/g; + $mess .= "
\n"; + $mess .= "

$arg

\n"; + $mess .= "
\n"; + my ($url, $display_name) = url_and_display_name($i{file}); + $mess .= "\n"; + while (my %i = Carp::caller_info(++$i)) { + ($url, $display_name) = url_and_display_name($i{file}); + $mess .= "\n"; + } + $mess .= "
$i{sub} in $display_name at line $i{line}$tid_msg
$i{sub} in $display_name at line $i{line}$tid_msg
"; + return $mess; +} + +sub ineval { + (exists $ENV{MOD_PERL} ? 0 : $^S) || Carp::longmess() =~ /eval [\{\']/m +} + +sub htmlize { + my $l = shift; + $l =~ s/&/&/g; + $l =~ s//>/g; + return $l; +} + +sub tm_die { + my ($arg,@rest) = @_; + if (ineval()) { + realdie ($arg,@rest) if ineval(); + } + if (!ref($arg)) { + print TM_ERROR_FD longmess($arg,@rest); + } + exit($!); +} + +1; diff --git a/samples/Perl/getchar.al b/samples/Perl/getchar.al new file mode 100644 index 00000000..ecd06589 --- /dev/null +++ b/samples/Perl/getchar.al @@ -0,0 +1,13 @@ +# NOTE: Derived from ../../lib/POSIX.pm. +# Changes made here will be lost when autosplit is run again. +# See AutoSplit.pm. +package POSIX; + +#line 318 "../../lib/POSIX.pm (autosplit into ../../lib/auto/POSIX/getchar.al)" +sub getchar { + usage "getchar()" if @_ != 0; + CORE::getc(STDIN); +} + +# end of POSIX::getchar +1; diff --git a/samples/Perl/perl.script! b/samples/Perl/perl similarity index 100% rename from samples/Perl/perl.script! rename to samples/Perl/perl diff --git a/samples/Perl/strict.t b/samples/Perl/strict.t index 04cea2f8..a9d4ec8c 100644 --- a/samples/Perl/strict.t +++ b/samples/Perl/strict.t @@ -1,4 +1,5 @@ use Test::Base; +use Test::More; __DATA__ === Strict Test diff --git a/samples/Perl6/test.p6 b/samples/Perl6/test.p6 index 3d12b56c..65073eb9 100644 --- a/samples/Perl6/test.p6 +++ b/samples/Perl6/test.p6 @@ -73,26 +73,6 @@ Here's some POD! Wooo say('this is not!'); -=table - Of role things - -say('not in your table'); -#= A single line declarator "block" (with a keyword like role) -#| Another single line declarator "block" (with a keyword like role) -#={ - A declarator block (with a keyword like role) - } -#|{ - Another declarator block (with a keyword like role) - } -#= { A single line declarator "block" with a brace (with a keyword like role) -#=« - More declarator blocks! (with a keyword like role) - » -#|« - More declarator blocks! (with a keyword like role) - » - say 'Moar code!'; my $don't = 16; diff --git a/samples/PicoLisp/simul.l b/samples/PicoLisp/simul.l new file mode 100644 index 00000000..df4c219c --- /dev/null +++ b/samples/PicoLisp/simul.l @@ -0,0 +1,165 @@ +# 11dec13abu +# (c) Software Lab. Alexander Burger + +(de permute (Lst) + (ifn (cdr Lst) + (cons Lst) + (mapcan + '((X) + (mapcar + '((Y) (cons X Y)) + (permute (delete X Lst)) ) ) + Lst ) ) ) + +(de subsets (N Lst) + (cond + ((=0 N) '(NIL)) + ((not Lst)) + (T + (conc + (mapcar + '((X) (cons (car Lst) X)) + (subsets (dec N) (cdr Lst)) ) + (subsets N (cdr Lst)) ) ) ) ) + +(de shuffle (Lst) + (by '(NIL (rand)) sort Lst) ) + +(de samples (Cnt Lst) + (make + (until (=0 Cnt) + (when (>= Cnt (rand 1 (length Lst))) + (link (car Lst)) + (dec 'Cnt) ) + (pop 'Lst) ) ) ) + + +# Genetic Algorithm +(de gen ("Pop" "Cond" "Re" "Mu" "Se") + (until ("Cond" "Pop") + (for ("P" "Pop" "P" (cdr "P")) + (set "P" + (maxi "Se" # Selection + (make + (for ("P" "Pop" "P") + (rot "P" (rand 1 (length "P"))) + (link # Recombination + Mutation + ("Mu" ("Re" (pop '"P") (pop '"P"))) ) ) ) ) ) ) ) + (maxi "Se" "Pop") ) + + +# Alpha-Beta tree search +(de game ("Flg" "Cnt" "Moves" "Move" "Cost") + (let ("Alpha" '(1000000) "Beta" -1000000) + (recur ("Flg" "Cnt" "Alpha" "Beta") + (let? "Lst" ("Moves" "Flg") + (if (=0 (dec '"Cnt")) + (loop + ("Move" (caar "Lst")) + (setq "*Val" (list ("Cost" "Flg") (car "Lst"))) + ("Move" (cdar "Lst")) + (T (>= "Beta" (car "*Val")) + (cons "Beta" (car "Lst") (cdr "Alpha")) ) + (when (> (car "Alpha") (car "*Val")) + (setq "Alpha" "*Val") ) + (NIL (setq "Lst" (cdr "Lst")) "Alpha") ) + (setq "Lst" + (sort + (mapcar + '(("Mov") + (prog2 + ("Move" (car "Mov")) + (cons ("Cost" "Flg") "Mov") + ("Move" (cdr "Mov")) ) ) + "Lst" ) ) ) + (loop + ("Move" (cadar "Lst")) + (setq "*Val" + (if (recurse (not "Flg") "Cnt" (cons (- "Beta")) (- (car "Alpha"))) + (cons (- (car @)) (cdar "Lst") (cdr @)) + (list (caar "Lst") (cdar "Lst")) ) ) + ("Move" (cddar "Lst")) + (T (>= "Beta" (car "*Val")) + (cons "Beta" (cdar "Lst") (cdr "Alpha")) ) + (when (> (car "Alpha") (car "*Val")) + (setq "Alpha" "*Val") ) + (NIL (setq "Lst" (cdr "Lst")) "Alpha") ) ) ) ) ) ) + + +### Grids ### +(de grid (DX DY FX FY) + (let Grid + (make + (for X DX + (link + (make + (for Y DY + (set + (link + (if (> DX 26) + (box) + (intern (pack (char (+ X 96)) Y)) ) ) + (cons (cons) (cons)) ) ) ) ) ) ) + (let West (and FX (last Grid)) + (for (Lst Grid Lst) + (let + (Col (pop 'Lst) + East (or (car Lst) (and FX (car Grid))) + South (and FY (last Col)) ) + (for (L Col L) + (with (pop 'L) + (set (: 0 1) (pop 'West)) # west + (con (: 0 1) (pop 'East)) # east + (set (: 0 -1) South) # south + (con (: 0 -1) # north + (or (car L) (and FY (car Col))) ) + (setq South This) ) ) + (setq West Col) ) ) ) + Grid ) ) + +(de west (This) + (: 0 1 1) ) + +(de east (This) + (: 0 1 -1) ) + +(de south (This) + (: 0 -1 1) ) + +(de north (This) + (: 0 -1 -1) ) + +(de disp ("Grid" "How" "Fun" "X" "Y" "DX" "DY") + (setq "Grid" + (if "X" + (mapcar + '((L) (flip (head "DY" (nth L "Y")))) + (head "DX" (nth "Grid" "X")) ) + (mapcar reverse "Grid") ) ) + (let (N (+ (length (cdar "Grid")) (or "Y" 1)) Sp (length N)) + ("border" north) + (while (caar "Grid") + (prin " " (align Sp N) " " + (and "How" (if (and (nT "How") (west (caar "Grid"))) " " '|)) ) + (for L "Grid" + (prin + ("Fun" (car L)) + (and "How" (if (and (nT "How") (east (car L))) " " '|)) ) ) + (prinl) + ("border" south) + (map pop "Grid") + (dec 'N) ) + (unless (> (default "X" 1) 26) + (space (inc Sp)) + (for @ "Grid" + (prin " " (and "How" " ") (char (+ 96 "X"))) + (T (> (inc '"X") 26)) ) + (prinl) ) ) ) + +(de "border" (Dir) + (when "How" + (space Sp) + (prin " +") + (for L "Grid" + (prin (if (and (nT "How") (Dir (car L))) " +" "---+")) ) + (prinl) ) ) diff --git a/samples/Prolog/dleak-report.script! b/samples/Prolog/dleak-report similarity index 100% rename from samples/Prolog/dleak-report.script! rename to samples/Prolog/dleak-report diff --git a/samples/Public Key/id_dsa.asc b/samples/Public Key/id_dsa.asc new file mode 100644 index 00000000..dc568f9d --- /dev/null +++ b/samples/Public Key/id_dsa.asc @@ -0,0 +1 @@ +ssh-dss AAAAB3NzaC1kc3MAAACBAIXi8hv+I7/bYzbve0Wg/Gv9yeZX0H/qON6rwJTPFICTncfK2t/Kc2Ec7+GYSkEIj7ok5wzHgv51SFTM6dvK/8hrjFE8frNztRK2TwZCvgYkbcBoprUstE86ZHBA1pAVPfHAOcF708Yk+KsxDONxkzu7FWw4HWqycqPtaavdcgsZAAAAFQC0uvetk3WY9sFNU71a32JKjkmTnwAAAIBlm1eGuATcZJvlk2jerZnTO54MlO/htWQrI4pZGLdhukOPgF1lsTUSwmCN8k8xxkyRL5Yl/8GUcdUfC4gbZvsbZGtvq5gFZSVTfkKJrlwykpZcaijWXtDiWSpqszs0MfexLMdpZSkNsWp7TEoWcqNLN8X7ohlsLAhcdrAbGqFblAAAAIBgW12r208h9AA3rH3t+6HKLXuPO1BQPuE+fKQg1Aet40c1gxUkCF/J+xdAITE1v7kmssZxBvDqUPgpvYCm+ZfA0j712pvt4JmQcfPn9Go003kq6/cgI4tCOy1dgQDLr0E5Jd7YqIglkr25fkDtKRFBRue3FmCGOdaM4NAAdYU48Q== lars@junk diff --git a/samples/Public Key/id_rsa.asc b/samples/Public Key/id_rsa.asc new file mode 100644 index 00000000..4c936646 --- /dev/null +++ b/samples/Public Key/id_rsa.asc @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw3QQtYgRViVH8ZpkQ2A7BuCeyPYC4hB9kKNhxwUfJ2hFgW8soGMBhsLN+vOeAJ2IXDMsezJO2/qhoZFQMvHoWpWTRTLPeNtBsKD+nhOZX28A4D+QRzVZ6hdWoh9W+mIP69MIT3aX35oLb86IycbNdRJlEK4FAUt7tjezNkU7boQ== root@use1-2.nitrousbox.com diff --git a/samples/Public Key/sshkey1.asc b/samples/Public Key/sshkey1.asc new file mode 100644 index 00000000..ce491bc3 --- /dev/null +++ b/samples/Public Key/sshkey1.asc @@ -0,0 +1,7 @@ +---- BEGIN SSH2 PUBLIC KEY ---- +Subject: galb +Comment: 1024-bit rsa, created by galb@shimi Mon Jan 15 08:31:24 2001 +AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt459 +6k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6 +NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0= +---- END SSH2 PUBLIC KEY ---- diff --git a/samples/Puppet/apacheinit.pp b/samples/Puppet/apacheinit.pp new file mode 100644 index 00000000..37d866ad --- /dev/null +++ b/samples/Puppet/apacheinit.pp @@ -0,0 +1,378 @@ +# Class: apache +# +# This class installs Apache +# +# Parameters: +# +# Actions: +# - Install Apache +# - Manage Apache service +# +# Requires: +# +# Sample Usage: +# +class apache ( + $apache_name = $::apache::params::apache_name, + $service_name = $::apache::params::service_name, + $default_mods = true, + $default_vhost = true, + $default_charset = undef, + $default_confd_files = true, + $default_ssl_vhost = false, + $default_ssl_cert = $::apache::params::default_ssl_cert, + $default_ssl_key = $::apache::params::default_ssl_key, + $default_ssl_chain = undef, + $default_ssl_ca = undef, + $default_ssl_crl_path = undef, + $default_ssl_crl = undef, + $default_ssl_crl_check = undef, + $default_type = 'none', + $ip = undef, + $service_enable = true, + $service_manage = true, + $service_ensure = 'running', + $purge_configs = true, + $purge_vhost_dir = undef, + $purge_vdir = false, + $serveradmin = 'root@localhost', + $sendfile = 'On', + $error_documents = false, + $timeout = '120', + $httpd_dir = $::apache::params::httpd_dir, + $server_root = $::apache::params::server_root, + $conf_dir = $::apache::params::conf_dir, + $confd_dir = $::apache::params::confd_dir, + $vhost_dir = $::apache::params::vhost_dir, + $vhost_enable_dir = $::apache::params::vhost_enable_dir, + $mod_dir = $::apache::params::mod_dir, + $mod_enable_dir = $::apache::params::mod_enable_dir, + $mpm_module = $::apache::params::mpm_module, + $lib_path = $::apache::params::lib_path, + $conf_template = $::apache::params::conf_template, + $servername = $::apache::params::servername, + $manage_user = true, + $manage_group = true, + $user = $::apache::params::user, + $group = $::apache::params::group, + $keepalive = $::apache::params::keepalive, + $keepalive_timeout = $::apache::params::keepalive_timeout, + $max_keepalive_requests = $::apache::params::max_keepalive_requests, + $logroot = $::apache::params::logroot, + $logroot_mode = $::apache::params::logroot_mode, + $log_level = $::apache::params::log_level, + $log_formats = {}, + $ports_file = $::apache::params::ports_file, + $docroot = $::apache::params::docroot, + $apache_version = $::apache::version::default, + $server_tokens = 'OS', + $server_signature = 'On', + $trace_enable = 'On', + $allow_encoded_slashes = undef, + $package_ensure = 'installed', + $use_optional_includes = $::apache::params::use_optional_includes, +) inherits ::apache::params { + validate_bool($default_vhost) + validate_bool($default_ssl_vhost) + validate_bool($default_confd_files) + # true/false is sufficient for both ensure and enable + validate_bool($service_enable) + validate_bool($service_manage) + validate_bool($use_optional_includes) + + $valid_mpms_re = $apache_version ? { + '2.4' => '(event|itk|peruser|prefork|worker)', + default => '(event|itk|prefork|worker)' + } + + if $mpm_module { + validate_re($mpm_module, $valid_mpms_re) + } + + if $allow_encoded_slashes { + validate_re($allow_encoded_slashes, '(^on$|^off$|^nodecode$)', "${allow_encoded_slashes} is not permitted for allow_encoded_slashes. Allowed values are 'on', 'off' or 'nodecode'.") + } + + # NOTE: on FreeBSD it's mpm module's responsibility to install httpd package. + # NOTE: the same strategy may be introduced for other OSes. For this, you + # should delete the 'if' block below and modify all MPM modules' manifests + # such that they include apache::package class (currently event.pp, itk.pp, + # peruser.pp, prefork.pp, worker.pp). + if $::osfamily != 'FreeBSD' { + package { 'httpd': + ensure => $package_ensure, + name => $apache_name, + notify => Class['Apache::Service'], + } + } + validate_re($sendfile, [ '^[oO]n$' , '^[oO]ff$' ]) + + # declare the web server user and group + # Note: requiring the package means the package ought to create them and not puppet + validate_bool($manage_user) + if $manage_user { + user { $user: + ensure => present, + gid => $group, + require => Package['httpd'], + } + } + validate_bool($manage_group) + if $manage_group { + group { $group: + ensure => present, + require => Package['httpd'] + } + } + + validate_apache_log_level($log_level) + + class { '::apache::service': + service_name => $service_name, + service_enable => $service_enable, + service_manage => $service_manage, + service_ensure => $service_ensure, + } + + # Deprecated backwards-compatibility + if $purge_vdir { + warning('Class[\'apache\'] parameter purge_vdir is deprecated in favor of purge_configs') + $purge_confd = $purge_vdir + } else { + $purge_confd = $purge_configs + } + + # Set purge vhostd appropriately + if $purge_vhost_dir == undef { + $purge_vhostd = $purge_confd + } else { + $purge_vhostd = $purge_vhost_dir + } + + Exec { + path => '/bin:/sbin:/usr/bin:/usr/sbin', + } + + exec { "mkdir ${confd_dir}": + creates => $confd_dir, + require => Package['httpd'], + } + file { $confd_dir: + ensure => directory, + recurse => true, + purge => $purge_confd, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + + if ! defined(File[$mod_dir]) { + exec { "mkdir ${mod_dir}": + creates => $mod_dir, + require => Package['httpd'], + } + # Don't purge available modules if an enable dir is used + $purge_mod_dir = $purge_configs and !$mod_enable_dir + file { $mod_dir: + ensure => directory, + recurse => true, + purge => $purge_mod_dir, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } + + if $mod_enable_dir and ! defined(File[$mod_enable_dir]) { + $mod_load_dir = $mod_enable_dir + exec { "mkdir ${mod_enable_dir}": + creates => $mod_enable_dir, + require => Package['httpd'], + } + file { $mod_enable_dir: + ensure => directory, + recurse => true, + purge => $purge_configs, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } else { + $mod_load_dir = $mod_dir + } + + if ! defined(File[$vhost_dir]) { + exec { "mkdir ${vhost_dir}": + creates => $vhost_dir, + require => Package['httpd'], + } + file { $vhost_dir: + ensure => directory, + recurse => true, + purge => $purge_vhostd, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } + + if $vhost_enable_dir and ! defined(File[$vhost_enable_dir]) { + $vhost_load_dir = $vhost_enable_dir + exec { "mkdir ${vhost_load_dir}": + creates => $vhost_load_dir, + require => Package['httpd'], + } + file { $vhost_enable_dir: + ensure => directory, + recurse => true, + purge => $purge_vhostd, + notify => Class['Apache::Service'], + require => Package['httpd'], + } + } else { + $vhost_load_dir = $vhost_dir + } + + concat { $ports_file: + owner => 'root', + group => $::apache::params::root_group, + mode => '0644', + notify => Class['Apache::Service'], + require => Package['httpd'], + } + concat::fragment { 'Apache ports header': + ensure => present, + target => $ports_file, + content => template('apache/ports_header.erb') + } + + if $::apache::conf_dir and $::apache::params::conf_file { + case $::osfamily { + 'debian': { + $pidfile = "\${APACHE_PID_FILE}" + $error_log = 'error.log' + $scriptalias = '/usr/lib/cgi-bin' + $access_log_file = 'access.log' + } + 'redhat': { + $pidfile = 'run/httpd.pid' + $error_log = 'error_log' + $scriptalias = '/var/www/cgi-bin' + $access_log_file = 'access_log' + } + 'freebsd': { + $pidfile = '/var/run/httpd.pid' + $error_log = 'httpd-error.log' + $scriptalias = '/usr/local/www/apache24/cgi-bin' + $access_log_file = 'httpd-access.log' + } 'gentoo': { + $pidfile = '/run/apache2.pid' + $error_log = 'error.log' + $error_documents_path = '/usr/share/apache2/error' + $scriptalias = '/var/www/localhost/cgi-bin' + $access_log_file = 'access.log' + + ::portage::makeconf { 'apache2_modules': + content => $default_mods, + } + file { [ + '/etc/apache2/modules.d/.keep_www-servers_apache-2', + '/etc/apache2/vhosts.d/.keep_www-servers_apache-2' + ]: + ensure => absent, + require => Package['httpd'], + } + } + default: { + fail("Unsupported osfamily ${::osfamily}") + } + } + + $apxs_workaround = $::osfamily ? { + 'freebsd' => true, + default => false + } + + # Template uses: + # - $pidfile + # - $user + # - $group + # - $logroot + # - $error_log + # - $sendfile + # - $mod_dir + # - $ports_file + # - $confd_dir + # - $vhost_dir + # - $error_documents + # - $error_documents_path + # - $apxs_workaround + # - $keepalive + # - $keepalive_timeout + # - $max_keepalive_requests + # - $server_root + # - $server_tokens + # - $server_signature + # - $trace_enable + file { "${::apache::conf_dir}/${::apache::params::conf_file}": + ensure => file, + content => template($conf_template), + notify => Class['Apache::Service'], + require => Package['httpd'], + } + + # preserve back-wards compatibility to the times when default_mods was + # only a boolean value. Now it can be an array (too) + if is_array($default_mods) { + class { '::apache::default_mods': + all => false, + mods => $default_mods, + } + } else { + class { '::apache::default_mods': + all => $default_mods, + } + } + class { '::apache::default_confd_files': + all => $default_confd_files + } + if $mpm_module { + class { "::apache::mod::${mpm_module}": } + } + + $default_vhost_ensure = $default_vhost ? { + true => 'present', + false => 'absent' + } + $default_ssl_vhost_ensure = $default_ssl_vhost ? { + true => 'present', + false => 'absent' + } + + ::apache::vhost { 'default': + ensure => $default_vhost_ensure, + port => 80, + docroot => $docroot, + scriptalias => $scriptalias, + serveradmin => $serveradmin, + access_log_file => $access_log_file, + priority => '15', + ip => $ip, + logroot_mode => $logroot_mode, + manage_docroot => $default_vhost, + } + $ssl_access_log_file = $::osfamily ? { + 'freebsd' => $access_log_file, + default => "ssl_${access_log_file}", + } + ::apache::vhost { 'default-ssl': + ensure => $default_ssl_vhost_ensure, + port => 443, + ssl => true, + docroot => $docroot, + scriptalias => $scriptalias, + serveradmin => $serveradmin, + access_log_file => $ssl_access_log_file, + priority => '15', + ip => $ip, + logroot_mode => $logroot_mode, + manage_docroot => $default_ssl_vhost, + } + } +} diff --git a/samples/Python/gen-py-linguist-thrift.py b/samples/Python/gen-py-linguist-thrift.py new file mode 100644 index 00000000..3ae25bb9 --- /dev/null +++ b/samples/Python/gen-py-linguist-thrift.py @@ -0,0 +1,83 @@ +# +# Autogenerated by Thrift Compiler (1.0.0-dev) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py +# + +from thrift.Thrift import TType, TMessageType, TException, TApplicationException + +from thrift.transport import TTransport +from thrift.protocol import TBinaryProtocol, TProtocol +try: + from thrift.protocol import fastbinary +except: + fastbinary = None + + + +class PullRequest: + """ + Attributes: + - title + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'title', None, None, ), # 1 + ) + + def __init__(self, title=None,): + self.title = title + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + self.title = iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return + oprot.writeStructBegin('PullRequest') + if self.title is not None: + oprot.writeFieldBegin('title', TType.STRING, 1) + oprot.writeString(self.title) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + + def __hash__(self): + value = 17 + value = (value * 31) ^ hash(self.title) + return value + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) diff --git a/samples/Python/python.script! b/samples/Python/python similarity index 100% rename from samples/Python/python.script! rename to samples/Python/python diff --git a/samples/Python/python2.script! b/samples/Python/python2 similarity index 100% rename from samples/Python/python2.script! rename to samples/Python/python2 diff --git a/samples/Python/python3.script! b/samples/Python/python3 similarity index 100% rename from samples/Python/python3.script! rename to samples/Python/python3 diff --git a/samples/QML/common.qbs b/samples/QML/common.qbs new file mode 100644 index 00000000..ebf60a0b --- /dev/null +++ b/samples/QML/common.qbs @@ -0,0 +1,155 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** This file is part of the Qt Build Suite. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import qbs 1.0 +import qbs.FileInfo +import qbs.ModUtils + +Module { + property string buildVariant: "debug" + property bool enableDebugCode: buildVariant == "debug" + property bool debugInformation: (buildVariant == "debug") + property string optimization: (buildVariant == "debug" ? "none" : "fast") + readonly property stringList hostOS: undefined // set internally + property string hostOSVersion: { + if (hostOS && hostOS.contains("osx")) { + return getNativeSetting("/System/Library/CoreServices/ServerVersion.plist", "ProductVersion") || + getNativeSetting("/System/Library/CoreServices/SystemVersion.plist", "ProductVersion"); + } else if (hostOS && hostOS.contains("windows")) { + var version = getNativeSetting("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion", "CurrentVersion"); + return version + "." + hostOSBuildVersion; + } + } + + property string hostOSBuildVersion: { + if (hostOS.contains("osx")) { + return getNativeSetting("/System/Library/CoreServices/ServerVersion.plist", "ProductBuildVersion") || + getNativeSetting("/System/Library/CoreServices/SystemVersion.plist", "ProductBuildVersion"); + } else if (hostOS.contains("windows")) { + return getNativeSetting("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion", "CurrentBuildNumber"); + } + } + + readonly property var hostOSVersionParts: hostOSVersion ? hostOSVersion.split('.').map(function(item) { return parseInt(item, 10); }) : [] + readonly property int hostOSVersionMajor: hostOSVersionParts[0] || 0 + readonly property int hostOSVersionMinor: hostOSVersionParts[1] || 0 + readonly property int hostOSVersionPatch: hostOSVersionParts[2] || 0 + + property stringList targetOS: hostOS + property string pathListSeparator: hostOS.contains("windows") ? ";" : ":" + property string pathSeparator: hostOS.contains("windows") ? "\\" : "/" + property string profile + property stringList toolchain + property string architecture + property bool install: false + property string installSourceBase + readonly property string installRoot: undefined + property string installDir + property string installPrefix: "" + property path sysroot + + PropertyOptions { + name: "buildVariant" + allowedValues: ['debug', 'release'] + description: "name of the build variant" + } + + PropertyOptions { + name: "optimization" + allowedValues: ['none', 'fast', 'small'] + description: "optimization level" + } + + validate: { + var validator = new ModUtils.PropertyValidator("qbs"); + validator.setRequiredProperty("architecture", architecture, + "you might want to re-run 'qbs-setup-toolchains'"); + validator.setRequiredProperty("hostOS", hostOS); + validator.setRequiredProperty("targetOS", targetOS); + if (hostOS && (hostOS.contains("windows") || hostOS.contains("osx"))) { + validator.setRequiredProperty("hostOSVersion", hostOSVersion, + "could not detect host operating system version; " + + "verify that system files and registry keys have not " + + "been modified."); + if (hostOSVersion) + validator.addVersionValidator("hostOSVersion", hostOSVersion, 2, 4); + + validator.setRequiredProperty("hostOSBuildVersion", hostOSBuildVersion, + "could not detect host operating system build version; " + + "verify that system files or registry have not been " + + "tampered with."); + } + + validator.addCustomValidator("architecture", architecture, function (value) { + return architecture === canonicalArchitecture(architecture); + }, "'" + architecture + "' is invalid. You must use the canonical name '" + + canonicalArchitecture(architecture) + "'"); + + validator.validate(); + } + + // private properties + property var commonRunEnvironment: { + var env = {}; + if (targetOS.contains("windows")) { + env["PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix) + ]; + } else if (hostOS.contains("darwin") && targetOS.contains("darwin")) { + env["DYLD_FRAMEWORK_PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix, "Library", "Frameworks"), + FileInfo.joinPaths(installRoot, installPrefix, "lib"), + FileInfo.joinPaths(installRoot, installPrefix) + ].join(pathListSeparator); + + env["DYLD_LIBRARY_PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix, "lib"), + FileInfo.joinPaths(installRoot, installPrefix, "Library", "Frameworks"), + FileInfo.joinPaths(installRoot, installPrefix) + ].join(pathListSeparator); + + if (targetOS.contains("ios-simulator") && sysroot) { + env["DYLD_ROOT_PATH"] = [sysroot]; + } + } else if (hostOS.contains("unix") && targetOS.contains("unix")) { + env["LD_LIBRARY_PATH"] = [ + FileInfo.joinPaths(installRoot, installPrefix, "lib") + ]; + } + + return env; + } + + // internal properties + readonly property string version: [versionMajor, versionMinor, versionPatch].join(".") + readonly property int versionMajor: undefined // set internally + readonly property int versionMinor: undefined // set internally + readonly property int versionPatch: undefined // set internally +} diff --git a/samples/QMake/qmake.script! b/samples/QMake/qmake similarity index 100% rename from samples/QMake/qmake.script! rename to samples/QMake/qmake diff --git a/samples/R/git-punchcard.script! b/samples/R/git-punchcard similarity index 100% rename from samples/R/git-punchcard.script! rename to samples/R/git-punchcard diff --git a/samples/RenderScript/convolve3x3.rs b/samples/RenderScript/convolve3x3.rs new file mode 100644 index 00000000..2acffab0 --- /dev/null +++ b/samples/RenderScript/convolve3x3.rs @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma version(1) +#pragma rs java_package_name(com.android.gallery3d.filtershow.filters) +#pragma rs_fp_relaxed + +int32_t gWidth; +int32_t gHeight; +const uchar4 *gPixels; +rs_allocation gIn; + +float gCoeffs[9]; + +void root(const uchar4 *in, uchar4 *out, const void *usrData, uint32_t x, uint32_t y) { + uint32_t x1 = min((int32_t)x+1, gWidth-1); + uint32_t x2 = max((int32_t)x-1, 0); + uint32_t y1 = min((int32_t)y+1, gHeight-1); + uint32_t y2 = max((int32_t)y-1, 0); + + float4 p00 = rsUnpackColor8888(gPixels[x1 + gWidth * y1]); + float4 p01 = rsUnpackColor8888(gPixels[x + gWidth * y1]); + float4 p02 = rsUnpackColor8888(gPixels[x2 + gWidth * y1]); + float4 p10 = rsUnpackColor8888(gPixels[x1 + gWidth * y]); + float4 p11 = rsUnpackColor8888(gPixels[x + gWidth * y]); + float4 p12 = rsUnpackColor8888(gPixels[x2 + gWidth * y]); + float4 p20 = rsUnpackColor8888(gPixels[x1 + gWidth * y2]); + float4 p21 = rsUnpackColor8888(gPixels[x + gWidth * y2]); + float4 p22 = rsUnpackColor8888(gPixels[x2 + gWidth * y2]); + + p00 *= gCoeffs[0]; + p01 *= gCoeffs[1]; + p02 *= gCoeffs[2]; + p10 *= gCoeffs[3]; + p11 *= gCoeffs[4]; + p12 *= gCoeffs[5]; + p20 *= gCoeffs[6]; + p21 *= gCoeffs[7]; + p22 *= gCoeffs[8]; + + p00 += p01; + p02 += p10; + p11 += p12; + p20 += p21; + + p22 += p00; + p02 += p11; + + p20 += p22; + p20 += p02; + + p20 = clamp(p20, 0.f, 1.f); + *out = rsPackColorTo8888(p20.r, p20.g, p20.b); +} diff --git a/samples/RenderScript/scenegraph_objects.rsh b/samples/RenderScript/scenegraph_objects.rsh new file mode 100644 index 00000000..bdca3ab1 --- /dev/null +++ b/samples/RenderScript/scenegraph_objects.rsh @@ -0,0 +1,323 @@ +// Copyright (C) 2011-2012 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma version(1) + +#pragma rs java_package_name(com.android.scenegraph) + +#ifndef _TRANSFORM_DEF_ +#define _TRANSFORM_DEF_ + +#include "rs_graphics.rsh" + +#define TRANSFORM_NONE 0 +#define TRANSFORM_TRANSLATE 1 +#define TRANSFORM_ROTATE 2 +#define TRANSFORM_SCALE 3 + +#define CULL_FRUSTUM 0 +#define CULL_ALWAYS 2 + +#define LIGHT_POINT 0 +#define LIGHT_DIRECTIONAL 1 + +// Shader params that involve only data +#define SHADER_PARAM_DATA_ONLY 10000 +#define SHADER_PARAM_FLOAT4_DATA 10001 +#define SHADER_PARAM_TRANSFORM_DATA 10002 +#define SHADER_PARAM_TRANSFORM_MODEL 10003 + +// Shader params that involve camera +#define SHADER_PARAM_CAMERA 1000 +#define SHADER_PARAM_FLOAT4_CAMERA_POS 1001 +#define SHADER_PARAM_FLOAT4_CAMERA_DIR 1002 +#define SHADER_PARAM_TRANSFORM_VIEW 1003 +#define SHADER_PARAM_TRANSFORM_PROJ 1004 +#define SHADER_PARAM_TRANSFORM_VIEW_PROJ 1005 +#define SHADER_PARAM_TRANSFORM_MODEL_VIEW 1006 +#define SHADER_PARAM_TRANSFORM_MODEL_VIEW_PROJ 1007 + +// Shader Params that only involve lights +#define SHADER_PARAM_LIGHT 100 +#define SHADER_PARAM_FLOAT4_LIGHT_COLOR 103 +#define SHADER_PARAM_FLOAT4_LIGHT_POS 104 +#define SHADER_PARAM_FLOAT4_LIGHT_DIR 105 + +#define SHADER_PARAM_TEXTURE 10 + +#define TEXTURE_NONE 0 +#define TEXTURE_2D 1 +#define TEXTURE_CUBE 2 +#define TEXTURE_RENDER_TARGET 3 + +typedef struct TransformComponent_s { + float4 value; + int type; + rs_allocation name; +} SgTransformComponent; + +typedef struct __attribute__((packed, aligned(4))) SgTransform { + rs_matrix4x4 globalMat; + rs_matrix4x4 localMat; + + rs_allocation components; + int isDirty; + + rs_allocation children; + rs_allocation name; + + // Used to check whether transform params need to be updated + uint32_t timestamp; +} SgTransform; + +typedef struct VertexShader_s { + rs_program_vertex program; + // Buffer with vertex constant data + rs_allocation shaderConst; + // ShaderParam's that populate data + rs_allocation shaderConstParams; + // location of the per object constants on the buffer + int objectConstIndex; +} SgVertexShader; + +typedef struct FragmentShader_s { + rs_program_fragment program; + // Buffer with vertex constant data + rs_allocation shaderConst; + // ShaderParam's that populate data + rs_allocation shaderConstParams; + // ShaderParam's that set textures + rs_allocation shaderTextureParams; + // location of the per object constants on the buffer + int objectConstIndex; +} SgFragmentShader; + +typedef struct RenderState_s { + rs_allocation pv; // VertexShader struct + rs_allocation pf; // FragmentShader struct + rs_program_store ps; + rs_program_raster pr; +} SgRenderState; + +typedef struct Renderable_s { + rs_allocation render_state; + // Buffer with vertex constant data + rs_allocation pv_const; + // ShaderParam's that populate data + rs_allocation pv_constParams; + // Buffer with fragment constant data + rs_allocation pf_const; + // ShaderParam's that populate data + rs_allocation pf_constParams; + rs_allocation pf_textures[8]; + int pf_num_textures; + rs_mesh mesh; + int meshIndex; + rs_allocation transformMatrix; + rs_allocation name; + float4 boundingSphere; + float4 worldBoundingSphere; + int bVolInitialized; + int cullType; // specifies whether to frustum cull + int isVisible; +} SgRenderable; + +typedef struct RenderPass_s { + rs_allocation color_target; + rs_allocation depth_target; + rs_allocation camera; + rs_allocation objects; + + float4 clear_color; + float clear_depth; + bool should_clear_color; + bool should_clear_depth; +} SgRenderPass; + +typedef struct Camera_s { + rs_matrix4x4 proj; + rs_matrix4x4 view; + rs_matrix4x4 viewProj; + float4 position; + float near; + float far; + float horizontalFOV; + float aspect; + rs_allocation name; + rs_allocation transformMatrix; + float4 frustumPlanes[6]; + + int isDirty; + // Timestamp of the camera itself to signal params if anything changes + uint32_t timestamp; + // Timestamp of our transform + uint32_t transformTimestamp; +} SgCamera; + +typedef struct Light_s { + float4 position; + float4 color; + float intensity; + int type; + rs_allocation name; + rs_allocation transformMatrix; +} SgLight; + +// This represents the shader parameter data needed to set a float or transform data +typedef struct ShaderParamData_s { + int type; + float4 float_value; + uint32_t timestamp; + rs_allocation paramName; + rs_allocation camera; + rs_allocation light; + rs_allocation transform; + rs_allocation texture; +} SgShaderParamData; + +// This represents a shader parameter that knows how to update itself for a given +// renderable or shader and contains a timestamp for the last time this buffer was updated +typedef struct ShaderParam_s { + // Used to check whether transform params need to be updated + uint32_t transformTimestamp; + // Used to check whether data params need to be updated + // These are used when somebody set the matrix of float value directly in java + uint32_t dataTimestamp; + // Specifies where in the constant buffer data gets written to + int bufferOffset; + // An instance of SgShaderParamData that could be shared by multiple objects + rs_allocation data; + // How many components of the vector we need to write + int float_vecSize; +} SgShaderParam; + +// This represents a texture object +typedef struct Texture_s { + uint32_t type; + rs_allocation texture; +} SgTexture; + +static void printName(rs_allocation name) { + if (!rsIsObject(name)) { + rsDebug("no name", 0); + return; + } + + rsDebug((const char*)rsGetElementAt(name, 0), 0); +} + +static void printCameraInfo(const SgCamera *cam) { + rsDebug("***** Camera information. ptr:", cam); + printName(cam->name); + const SgTransform *camTransform = (const SgTransform *)rsGetElementAt(cam->transformMatrix, 0); + rsDebug("Transform name:", camTransform); + printName(camTransform->name); + + rsDebug("Aspect: ", cam->aspect); + rsDebug("Near: ", cam->near); + rsDebug("Far: ", cam->far); + rsDebug("Fov: ", cam->horizontalFOV); + rsDebug("Position: ", cam->position); + rsDebug("Proj: ", &cam->proj); + rsDebug("View: ", &cam->view); +} + +static void printLightInfo(const SgLight *light) { + rsDebug("***** Light information. ptr:", light); + printName(light->name); + const SgTransform *lTransform = (const SgTransform *)rsGetElementAt(light->transformMatrix, 0); + rsDebug("Transform name:", lTransform); + printName(lTransform->name); + + rsDebug("Position: ", light->position); + rsDebug("Color : ", light->color); + rsDebug("Intensity: ", light->intensity); + rsDebug("Type: ", light->type); +} + +static void getCameraRay(const SgCamera *cam, int screenX, int screenY, float3 *pnt, float3 *vec) { + rsDebug("=================================", screenX); + rsDebug("Point X", screenX); + rsDebug("Point Y", screenY); + + rs_matrix4x4 mvpInv; + rsMatrixLoad(&mvpInv, &cam->viewProj); + rsMatrixInverse(&mvpInv); + + float width = (float)rsgGetWidth(); + float height = (float)rsgGetHeight(); + + float4 pos = {(float)screenX, height - (float)screenY, 0.0f, 1.0f}; + + pos.x /= width; + pos.y /= height; + + rsDebug("Pre Norm X", pos.x); + rsDebug("Pre Norm Y", pos.y); + + pos.xy = pos.xy * 2.0f - 1.0f; + + rsDebug("Norm X", pos.x); + rsDebug("Norm Y", pos.y); + + pos = rsMatrixMultiply(&mvpInv, pos); + float oneOverW = 1.0f / pos.w; + pos.xyz *= oneOverW; + + rsDebug("World X", pos.x); + rsDebug("World Y", pos.y); + rsDebug("World Z", pos.z); + + rsDebug("Cam X", cam->position.x); + rsDebug("Cam Y", cam->position.y); + rsDebug("Cam Z", cam->position.z); + + *vec = normalize(pos.xyz - cam->position.xyz); + rsDebug("Vec X", vec->x); + rsDebug("Vec Y", vec->y); + rsDebug("Vec Z", vec->z); + *pnt = cam->position.xyz; +} + +static bool intersect(const SgRenderable *obj, float3 pnt, float3 vec) { + // Solving for t^2 + Bt + C = 0 + float3 originMinusCenter = pnt - obj->worldBoundingSphere.xyz; + float B = dot(originMinusCenter, vec) * 2.0f; + float C = dot(originMinusCenter, originMinusCenter) - + obj->worldBoundingSphere.w * obj->worldBoundingSphere.w; + + float discriminant = B * B - 4.0f * C; + if (discriminant < 0.0f) { + return false; + } + discriminant = sqrt(discriminant); + + float t0 = (-B - discriminant) * 0.5f; + float t1 = (-B + discriminant) * 0.5f; + + if (t0 > t1) { + float temp = t0; + t0 = t1; + t1 = temp; + } + + // The sphere is behind us + if (t1 < 0.0f) { + return false; + } + return true; +} + + +#endif // _TRANSFORM_DEF_ diff --git a/samples/Ruby/filenames/Deliverfile b/samples/Ruby/filenames/Deliverfile new file mode 100644 index 00000000..bd8b463d --- /dev/null +++ b/samples/Ruby/filenames/Deliverfile @@ -0,0 +1,50 @@ +require 'open-uri' + +framework_version = JSON.parse(open(url).read) + +# The URL below is password protected +apps = JSON.parse(open(url).read) + +app_id = Dir.pwd.split("/")[-2].to_i +app = apps[app_id.to_s] + +# The app identifier is required +app_identifier "net.sunapps.#{app_id}" + +version framework_version['version_number'] + +title( + 'de-DE' => app["fullName"] +) + +description( + 'de-DE' => app["description"]["de"] +) + +changelog( + 'de-DE' => framework_version["public_description"]["de"] +) + +keywords( + 'de-DE' => app["keywords"]["de"].split(",") +) + +app_icon "../Submission/AppIconFull.png" + +price_tier 0 # free app + +primary_category "Reference" + +secondary_category "Business" + +automatic_release true + +ratings_config_path "./ratings_config.json" + +app_review_information({ + first_name: "Felix", + phone_number: "My Phone Number", + demo_user: "", + demo_password: "", + notes: "" +}) \ No newline at end of file diff --git a/samples/Ruby/filenames/Fastfile b/samples/Ruby/filenames/Fastfile new file mode 100644 index 00000000..aed95f6f --- /dev/null +++ b/samples/Ruby/filenames/Fastfile @@ -0,0 +1,115 @@ +# Customise this file, documentation can be found here: +# https://github.com/KrauseFx/fastlane/tree/master/docs + +$:.unshift File.dirname(__FILE__) +require 'lib/utils.rb' + +fastlane_version "1.0.0" + +default_platform :ios + +platform :ios do + before_all do + ENV['DELIVER_WHAT_TO_TEST'] = git_commit_log + ensure_git_status_clean + end + + desc "Runs linting (and eventually static analysis)" + lane :analyze do + return if test_disabled? + make 'lint' + end + + desc "Runs all the unit tests." + lane :test do + return if test_disabled? + # TODO: lint & test JS code + xctest( + scheme: 'Wikipedia', + destination: "platform=iOS Simulator,name=iPhone 6,OS=8.3", + reports: [ + { + report: "html", + output: "build/reports/unit-tests.html" + }, + { + report: "junit", + output: "build/reports/unit-tests.xml" + } + ], + clean: nil + ) + end + + desc "Bump the version, and submit a new **Wikipedia Alpha** Build to Apple TestFlight" + lane :alpha do + # snapshot + sigh + increment_build_number + + # uncomment when CI is able to push tags + if ENV['WMF_BUMP'] + commit_version_bump + plist_version = get_version_short_string File.expand_path(File.join(ENV['PWD'], 'Wikipedia/Wikipedia-Info.plist')) + # tag must be added after the version bump is committed + add_git_tag(tag: "#{plist_version}.#{Actions.lane_context[Actions::SharedValues::BUILD_NUMBER]}") + end + + ipa( + configuration: "Alpha", + scheme: "Wikipedia Alpha", + ) + hockey( + notes: '', + notify: '0', # Means do not notify + status: '1', # Means do not make available for download + ) + deliver skip_deploy: true, beta: true + + # uncomment when CI is able to push tags + if ENV['WMF_BUMP'] + # only push after everything else has succeeded + push_to_git_remote + end + end + + desc "Submit a new **Wikipedia Beta** build to Apple TestFlight" + lane :beta do + # snapshot + sigh + ipa( + configuration: "Beta", + scheme: "Wikipedia Beta", + ) + hockey( + notes: '', + notify: '0', # Means do not notify + status: '1', # Means do not make available for download + ) + deliver skip_deploy: true, beta: true + end + + desc "Deploy a new version to the App Store" + lane :store do + # snapshot + sigh + ipa( + configuration: "Wikipedia", + scheme: "Wikipedia", + ) + hockey( + notes: '', + notify: '0', # Means do not notify + status: '1', # Means do not make available for download + ) + deliver skip_deploy: true, force: true + end + + after_all do |lane| + + end + + error do |lane, exception| + + end +end \ No newline at end of file diff --git a/samples/Ruby/filenames/Podfile b/samples/Ruby/filenames/Podfile new file mode 100644 index 00000000..2a03e4ae --- /dev/null +++ b/samples/Ruby/filenames/Podfile @@ -0,0 +1,18 @@ +source 'https://github.com/CocoaPods/Specs.git' + +platform :ios, :deployment_target => '6.0' + +inhibit_all_warnings! + +xcodeproj 'Wikipedia' + +pod 'AFNetworking/NSURLConnection', '~> 2.5' +pod 'hpple', '~> 0.2' +pod 'blockskit/Core', '~> 2.2' +pod 'Masonry', '~> 0.6' +pod 'HockeySDK', '3.6.2' + +target 'WikipediaUnitTests', :exclusive => false do + pod 'OCMockito', '~> 1.4' + pod 'OCHamcrest', '~> 4.1' +end diff --git a/samples/Ruby/filenames/Snapfile b/samples/Ruby/filenames/Snapfile new file mode 100644 index 00000000..182c7d1f --- /dev/null +++ b/samples/Ruby/filenames/Snapfile @@ -0,0 +1,26 @@ + +# Download the latest screenshot information from the CMS +app_id = Dir.pwd.split("/")[-2].to_i +File.write("./screenshots.json", open("https://...amazonaws.com/1.0/#{app_id}/....json").read) rescue nil + + +# A list of devices you want to take the screenshots from +devices([ + "iPhone 6", + "iPhone 6 Plus", + "iPhone 5", + "iPhone 4s" +]) + +languages([ + 'de-DE' +]) + +# Where should the resulting screenshots be stored? +screenshots_path "./screenshots" + +# JavaScript UIAutomation file +js_file './snapshot.js' + +# The name of the project's scheme +scheme 'Release' \ No newline at end of file diff --git a/samples/Ruby/gen-rb-linguist-thrift.rb b/samples/Ruby/gen-rb-linguist-thrift.rb new file mode 100644 index 00000000..931cf393 --- /dev/null +++ b/samples/Ruby/gen-rb-linguist-thrift.rb @@ -0,0 +1,9 @@ +# +# Autogenerated by Thrift Compiler (1.0.0-dev) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# + +require 'thrift' +require 'linguist_types' + diff --git a/samples/Ruby/index.json.jbuilder b/samples/Ruby/index.json.jbuilder new file mode 100644 index 00000000..26c7bc67 --- /dev/null +++ b/samples/Ruby/index.json.jbuilder @@ -0,0 +1,4 @@ +json.array!(@courts) do |court| + json.extract! court, :id, :name_r, :region, :region_r, :email, :website + json.url court_url(court, format: :json) +end diff --git a/samples/Ruby/macruby.script! b/samples/Ruby/macruby similarity index 100% rename from samples/Ruby/macruby.script! rename to samples/Ruby/macruby diff --git a/samples/Ruby/rexpl b/samples/Ruby/rexpl new file mode 100755 index 00000000..e55b1cd5 --- /dev/null +++ b/samples/Ruby/rexpl @@ -0,0 +1,4 @@ +#!/usr/bin/env rbx +$: << 'lib' +require 'rexpl' +Rexpl::Environment.run diff --git a/samples/Ruby/ruby.script! b/samples/Ruby/ruby similarity index 100% rename from samples/Ruby/ruby.script! rename to samples/Ruby/ruby diff --git a/samples/Ruby/ruby2.script! b/samples/Ruby/ruby2 similarity index 100% rename from samples/Ruby/ruby2.script! rename to samples/Ruby/ruby2 diff --git a/samples/Ruby/shoes-swt b/samples/Ruby/shoes-swt new file mode 100755 index 00000000..df746edd --- /dev/null +++ b/samples/Ruby/shoes-swt @@ -0,0 +1,11 @@ +#!/usr/bin/env jruby +lib_directory = File.expand_path('../../lib', __FILE__) +$LOAD_PATH << lib_directory + +if File.exist?("Gemfile") + require "bundler/setup" + Bundler.require +end + +require 'shoes/ui/cli' +Shoes::CLI.new("swt").run ARGV diff --git a/samples/SMT/bignum_lia1.smt2 b/samples/SMT/bignum_lia1.smt2 new file mode 100644 index 00000000..e8eb354a --- /dev/null +++ b/samples/SMT/bignum_lia1.smt2 @@ -0,0 +1,20 @@ +(set-logic QF_LIA) +(set-info :source | SMT-COMP'06 organizers |) +(set-info :smt-lib-version 2.0) +(set-info :category "check") +(set-info :status unsat) +(set-info :notes |This benchmark is designed to check if the DP supports bignumbers.|) +(declare-fun x1 () Int) +(declare-fun x2 () Int) +(declare-fun x3 () Int) +(declare-fun x4 () Int) +(declare-fun x5 () Int) +(declare-fun x6 () Int) +(assert (and (or (>= x1 1000) (>= x1 1002)) + (or (>= x2 (* 1230 x1)) (>= x2 (* 1003 x1))) + (or (>= x3 (* 1310 x2)) (>= x3 (* 1999 x2))) + (or (>= x4 (* 4000 x3)) (>= x4 (* 8000 x3))) + (or (<= x5 (* (- 4000) x4)) (<= x5 (* (- 8000) x4))) + (or (>= x6 (* (- 3) x5)) (>= x6 (* (- 2) x5))) (< x6 0))) +(check-sat) +(exit) diff --git a/samples/SMT/list4.smt2 b/samples/SMT/list4.smt2 new file mode 100644 index 00000000..f2c8e539 --- /dev/null +++ b/samples/SMT/list4.smt2 @@ -0,0 +1,20 @@ +(set-logic AUFLIRA) +(set-info :source | Buggy list theorem |) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status sat) +(declare-sort List 0) +(declare-fun cons (Real List) List) +(declare-fun nil () List) +(declare-fun car (List) Real) +(declare-fun cdr (List) List) +(declare-fun len (List) Int) +(assert (forall ((?x Real) (?y List)) (= (car (cons ?x ?y)) ?x))) +(assert (forall ((?x Real) (?y List)) (= (cdr (cons ?x ?y)) ?y))) +(assert (= (len nil) 0)) +(assert (forall ((?x Real) (?y List)) (= (len (cons ?x ?y)) (+ (len ?y) 1)))) +(declare-fun append (List List) List) +(assert (forall ((?x Real) (?y1 List) (?y2 List)) (= (append (cons ?x ?y1) ?y2) (cons ?x (append ?y1 ?y2))))) +(assert (not (forall ((?x Real) (?y List)) (= (append (cons ?x nil) ?y) (cons ?x ?y))))) +(check-sat) +(exit) diff --git a/samples/SMT/queen10-1.smt2 b/samples/SMT/queen10-1.smt2 new file mode 100644 index 00000000..25c8bd82 --- /dev/null +++ b/samples/SMT/queen10-1.smt2 @@ -0,0 +1,123 @@ +(set-logic QF_IDL) +(set-info :source | +Queens benchmarks generated by Hyondeuk Kim in SMT-LIB format. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status sat) +(declare-fun x0 () Int) +(declare-fun x1 () Int) +(declare-fun x2 () Int) +(declare-fun x3 () Int) +(declare-fun x4 () Int) +(declare-fun x5 () Int) +(declare-fun x6 () Int) +(declare-fun x7 () Int) +(declare-fun x8 () Int) +(declare-fun x9 () Int) +(declare-fun x10 () Int) +(assert + (let + ((?v_0 (- x0 x10)) + (?v_1 (- x1 x10)) + (?v_2 (- x2 x10)) + (?v_3 (- x3 x10)) + (?v_4 (- x4 x10)) + (?v_5 (- x5 x10)) + (?v_6 (- x6 x10)) + (?v_7 (- x7 x10)) + (?v_8 (- x8 x10)) + (?v_9 (- x9 x10)) + (?v_10 (- x0 x1)) + (?v_11 (- x0 x2)) + (?v_12 (- x0 x3)) + (?v_13 (- x0 x4)) + (?v_14 (- x0 x5)) + (?v_15 (- x0 x6)) + (?v_16 (- x0 x7)) + (?v_17 (- x0 x8)) + (?v_18 (- x0 x9)) + (?v_19 (- x1 x2)) + (?v_20 (- x1 x3)) + (?v_21 (- x1 x4)) + (?v_22 (- x1 x5)) + (?v_23 (- x1 x6)) + (?v_24 (- x1 x7)) + (?v_25 (- x1 x8)) + (?v_26 (- x1 x9)) + (?v_27 (- x2 x3)) + (?v_28 (- x2 x4)) + (?v_29 (- x2 x5)) + (?v_30 (- x2 x6)) + (?v_31 (- x2 x7)) + (?v_32 (- x2 x8)) + (?v_33 (- x2 x9)) + (?v_34 (- x3 x4)) + (?v_35 (- x3 x5)) + (?v_36 (- x3 x6)) + (?v_37 (- x3 x7)) + (?v_38 (- x3 x8)) + (?v_39 (- x3 x9)) + (?v_40 (- x4 x5)) + (?v_41 (- x4 x6)) + (?v_42 (- x4 x7)) + (?v_43 (- x4 x8)) + (?v_44 (- x4 x9)) + (?v_45 (- x5 x6)) + (?v_46 (- x5 x7)) + (?v_47 (- x5 x8)) + (?v_48 (- x5 x9)) + (?v_49 (- x6 x7)) + (?v_50 (- x6 x8)) + (?v_51 (- x6 x9)) + (?v_52 (- x7 x8)) + (?v_53 (- x7 x9)) + (?v_54 (- x8 x9))) + (and (<= ?v_0 9) (>= ?v_0 0) (<= ?v_1 9) (>= ?v_1 0) (<= ?v_2 9) (>= ?v_2 0) + (<= ?v_3 9) (>= ?v_3 0) (<= ?v_4 9) (>= ?v_4 0) (<= ?v_5 9) (>= ?v_5 0) + (<= ?v_6 9) (>= ?v_6 0) (<= ?v_7 9) (>= ?v_7 0) (<= ?v_8 9) (>= ?v_8 0) + (<= ?v_9 9) (>= ?v_9 0) + (not (= x0 x1)) (not (= x0 x2)) (not (= x0 x3)) (not (= x0 x4)) + (not (= x0 x5)) (not (= x0 x6)) (not (= x0 x7)) (not (= x0 x8)) + (not (= x0 x9)) (not (= x1 x2)) (not (= x1 x3)) (not (= x1 x4)) + (not (= x1 x5)) (not (= x1 x6)) (not (= x1 x7)) (not (= x1 x8)) + (not (= x1 x9)) (not (= x2 x3)) (not (= x2 x4)) (not (= x2 x5)) + (not (= x2 x6)) (not (= x2 x7)) (not (= x2 x8)) (not (= x2 x9)) + (not (= x3 x4)) (not (= x3 x5)) (not (= x3 x6)) (not (= x3 x7)) + (not (= x3 x8)) (not (= x3 x9)) (not (= x4 x5)) (not (= x4 x6)) + (not (= x4 x7)) (not (= x4 x8)) (not (= x4 x9)) (not (= x5 x6)) + (not (= x5 x7)) (not (= x5 x8)) (not (= x5 x9)) (not (= x6 x7)) + (not (= x6 x8)) (not (= x6 x9)) (not (= x7 x8)) (not (= x7 x9)) + (not (= x8 x9)) + (not (= ?v_10 1)) (not (= ?v_10 (- 1))) (not (= ?v_11 2)) + (not (= ?v_11 (- 2))) (not (= ?v_12 3)) (not (= ?v_12 (- 3))) + (not (= ?v_13 4)) (not (= ?v_13 (- 4))) (not (= ?v_14 5)) + (not (= ?v_14 (- 5))) (not (= ?v_15 6)) (not (= ?v_15 (- 6))) + (not (= ?v_16 7)) (not (= ?v_16 (- 7))) (not (= ?v_17 8)) + (not (= ?v_17 (- 8))) (not (= ?v_18 9)) (not (= ?v_18 (- 9))) + (not (= ?v_19 1)) (not (= ?v_19 (- 1))) (not (= ?v_20 2)) + (not (= ?v_20 (- 2))) (not (= ?v_21 3)) (not (= ?v_21 (- 3))) + (not (= ?v_22 4)) (not (= ?v_22 (- 4))) (not (= ?v_23 5)) + (not (= ?v_23 (- 5))) (not (= ?v_24 6)) (not (= ?v_24 (- 6))) + (not (= ?v_25 7)) (not (= ?v_25 (- 7))) (not (= ?v_26 8)) + (not (= ?v_26 (- 8))) (not (= ?v_27 1)) (not (= ?v_27 (- 1))) + (not (= ?v_28 2)) (not (= ?v_28 (- 2))) (not (= ?v_29 3)) + (not (= ?v_29 (- 3))) (not (= ?v_30 4)) (not (= ?v_30 (- 4))) + (not (= ?v_31 5)) (not (= ?v_31 (- 5))) (not (= ?v_32 6)) + (not (= ?v_32 (- 6))) (not (= ?v_33 7)) (not (= ?v_33 (- 7))) + (not (= ?v_34 1)) (not (= ?v_34 (- 1))) (not (= ?v_35 2)) + (not (= ?v_35 (- 2))) (not (= ?v_36 3)) (not (= ?v_36 (- 3))) + (not (= ?v_37 4)) (not (= ?v_37 (- 4))) (not (= ?v_38 5)) + (not (= ?v_38 (- 5))) (not (= ?v_39 6)) (not (= ?v_39 (- 6))) + (not (= ?v_40 1)) (not (= ?v_40 (- 1))) (not (= ?v_41 2)) + (not (= ?v_41 (- 2))) (not (= ?v_42 3)) (not (= ?v_42 (- 3))) + (not (= ?v_43 4)) (not (= ?v_43 (- 4))) (not (= ?v_44 5)) + (not (= ?v_44 (- 5))) (not (= ?v_45 1)) (not (= ?v_45 (- 1))) + (not (= ?v_46 2)) (not (= ?v_46 (- 2))) (not (= ?v_47 3)) + (not (= ?v_47 (- 3))) (not (= ?v_48 4)) (not (= ?v_48 (- 4))) + (not (= ?v_49 1)) (not (= ?v_49 (- 1))) (not (= ?v_50 2)) + (not (= ?v_50 (- 2))) (not (= ?v_51 3)) (not (= ?v_51 (- 3))) + (not (= ?v_52 1)) (not (= ?v_52 (- 1))) (not (= ?v_53 2)) + (not (= ?v_53 (- 2))) (not (= ?v_54 1)) (not (= ?v_54 (- 1)))))) +(check-sat) +(exit) diff --git a/samples/SMT/shufflevector.smt b/samples/SMT/shufflevector.smt new file mode 100644 index 00000000..6bc79d3a --- /dev/null +++ b/samples/SMT/shufflevector.smt @@ -0,0 +1,2104 @@ +(set-logic QF_ABV) +(define-sort Address () (_ BitVec 64)) +(define-sort Byte () (_ BitVec 8)) +(define-sort Mem () (Array Address Byte)) + +(define-sort I8 () (_ BitVec 8)) +(define-sort I16 () (_ BitVec 16)) +(define-sort I32 () (_ BitVec 32)) +(define-sort I64 () (_ BitVec 64)) +(define-sort I128 () (_ BitVec 128)) + + +;; +;;constants +;; +(define-fun zero () Address (_ bv0 64)) +(define-fun one () Address (_ bv1 64)) +(define-fun two () Address (_ bv2 64)) +(define-fun three () Address (_ bv3 64)) +(define-fun four () Address (_ bv4 64)) +(define-fun five () Address (_ bv5 64)) +(define-fun six () Address (_ bv6 64)) +(define-fun seven () Address (_ bv7 64)) +(define-fun eight () Address (_ bv8 64)) + + +;; +;; Write a little endian 1 bit value (8 bit aligned) at address x in mem +;; +(define-fun write1 ((mem Mem) (x Address) (v Bool)) Mem + (store mem x (ite v #x01 #x00))) + +;; +;; Write a little endian 8bit value at address x in mem +;; +(define-fun write8 ((mem Mem) (x Address) (v I8)) Mem + (store mem x v)) + +;; +;; Write a little endian 16bit value at address x in mem +;; +(define-fun write16 ((mem Mem) (x Address) (v I16)) Mem + (let ((b0 ((_ extract 7 0) v)) + (b1 ((_ extract 15 8) v))) + (store (store mem x b0) (bvadd x one) b1))) + +;; +;; Write a little endian 32bit value at address x in mem +;; +(define-fun write32 ((mem Mem) (x Address) (v I32)) Mem + (let ((b0 ((_ extract 7 0) v)) + (b1 ((_ extract 15 8) v)) + (b2 ((_ extract 23 16) v)) + (b3 ((_ extract 31 24) v))) + (store (store (store (store mem x b0) (bvadd x one) b1) (bvadd x two) b2) (bvadd x three) b3))) + +;; +;; Write a little endian 64bit value at address x in mem +;; +(define-fun write64 ((mem Mem) (x Address) (v I64)) Mem + (let ((b0 ((_ extract 31 0) v)) + (b1 ((_ extract 63 32) v))) + (write32 (write32 mem x b0) (bvadd x four) b1))) + +;; +;; Write a little endian 128bit value at address x in mem +;; +(define-fun write128 ((mem Mem) (x Address) (v I128)) Mem + (let ((b0 ((_ extract 63 0) v)) + (b1 ((_ extract 127 64) v))) + (write64 (write64 mem x b0) (bvadd x eight) b1))) + + +;; +;; Read a little endian 1 bit value (8 bit aligned) at address x in mem +;; - returns a Boolean: true if what's stored at address x is non-zero +;; +(define-fun read1 ((mem Mem) (x Address)) Bool + (not (= (select mem x) #x00))) + +;; +;; Read a little endian 8bit value at address x in mem +;; +(define-fun read8 ((mem Mem) (x Address)) I8 + (select mem x)) + +;; +;; Read a little endian 16bit value at address x in mem +;; +(define-fun read16 ((mem Mem) (x Address)) I16 + (let ((b0 (select mem x)) + (b1 (select mem (bvadd x one)))) + (concat b1 b0))) + +;; +;; Read a little endian 32bit value at address x in mem +;; +(define-fun read32 ((mem Mem) (x Address)) I32 + (let ((b0 (select mem x)) + (b1 (select mem (bvadd x one))) + (b2 (select mem (bvadd x two))) + (b3 (select mem (bvadd x three)))) + (concat b3 (concat b2 (concat b1 b0))))) + +;; +;; Read a little endian 64bit value at address x in mem +;; +(define-fun read64 ((mem Mem) (x Address)) I64 + (let ((b0 (read32 mem x)) + (b1 (read32 mem (bvadd x four)))) + (concat b1 b0))) + +;; +;; Read a little endian 128bit value at address x in mem +;; +(define-fun read128 ((mem Mem) (x Address)) I128 + (let ((b0 (read64 mem x)) + (b1 (read64 mem (bvadd x eight)))) + (concat b1 b0))) + + +;; +;; Vectors of (2^1) int4 elements +;; +(define-sort vector_1_4 () (Array (_ BitVec 1) (_ BitVec 4))) + +(declare-fun vundef_1_4 () vector_1_4) + + +;; +;; Vectors of (2^1) int8 elements +;; +(define-sort vector_1_8 () (Array (_ BitVec 1) (_ BitVec 8))) + +(declare-fun vundef_1_8 () vector_1_8) + + +;; +;; Vectors of (2^1) int16 elements +;; +(define-sort vector_1_16 () (Array (_ BitVec 1) (_ BitVec 16))) + +(declare-fun vundef_1_16 () vector_1_16) + + +;; +;; Vectors of (2^1) int32 elements +;; +(define-sort vector_1_32 () (Array (_ BitVec 1) (_ BitVec 32))) + +(declare-fun vundef_1_32 () vector_1_32) + + +;; +;; Vectors of (2^1) int64 elements +;; +(define-sort vector_1_64 () (Array (_ BitVec 1) (_ BitVec 64))) + +(declare-fun vundef_1_64 () vector_1_64) + + +;; +;; Vectors of (2^2) int4 elements +;; +(define-sort vector_2_4 () (Array (_ BitVec 2) (_ BitVec 4))) + +(declare-fun vundef_2_4 () vector_2_4) + + +;; +;; Vectors of (2^2) int8 elements +;; +(define-sort vector_2_8 () (Array (_ BitVec 2) (_ BitVec 8))) + +(declare-fun vundef_2_8 () vector_2_8) + + +;; +;; Vectors of (2^2) int16 elements +;; +(define-sort vector_2_16 () (Array (_ BitVec 2) (_ BitVec 16))) + +(declare-fun vundef_2_16 () vector_2_16) + + +;; +;; Vectors of (2^2) int32 elements +;; +(define-sort vector_2_32 () (Array (_ BitVec 2) (_ BitVec 32))) + +(declare-fun vundef_2_32 () vector_2_32) + + +;; +;; Vectors of (2^2) int64 elements +;; +(define-sort vector_2_64 () (Array (_ BitVec 2) (_ BitVec 64))) + +(declare-fun vundef_2_64 () vector_2_64) + + +;; +;; Vectors of (2^3) int4 elements +;; +(define-sort vector_3_4 () (Array (_ BitVec 3) (_ BitVec 4))) + +(declare-fun vundef_3_4 () vector_3_4) + + +;; +;; Vectors of (2^3) int8 elements +;; +(define-sort vector_3_8 () (Array (_ BitVec 3) (_ BitVec 8))) + +(declare-fun vundef_3_8 () vector_3_8) + + +;; +;; Vectors of (2^3) int16 elements +;; +(define-sort vector_3_16 () (Array (_ BitVec 3) (_ BitVec 16))) + +(declare-fun vundef_3_16 () vector_3_16) + + +;; +;; Vectors of (2^3) int32 elements +;; +(define-sort vector_3_32 () (Array (_ BitVec 3) (_ BitVec 32))) + +(declare-fun vundef_3_32 () vector_3_32) + + +;; +;; Vectors of (2^3) int64 elements +;; +(define-sort vector_3_64 () (Array (_ BitVec 3) (_ BitVec 64))) + +(declare-fun vundef_3_64 () vector_3_64) + +;; Special case where we use Bool rather than bitvectors of size 1 + +(define-sort vector_1_1 () (Array (_ BitVec 1) Bool)) + +(declare-fun vundef_1_1 () vector_1_1) + +(define-fun vmake_1_1 ((x0 Bool) (x1 Bool)) vector_1_1 + (store (store vundef_1_1 #b0 x0) #b1 x1)) + +(define-sort vector_2_1 () (Array (_ BitVec 2) Bool)) + +(declare-fun vundef_2_1 () vector_2_1) + +(define-fun vmake_2_1 + ((x0 Bool) (x1 Bool) (x2 Bool) (x3 Bool)) vector_2_1 + (store (store (store (store vundef_2_1 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +(define-sort vector_3_1 () (Array (_ BitVec 3) Bool)) + +(declare-fun vundef_3_1 () vector_3_1) + +(define-fun vmake_3_1 + ((x0 Bool) (x1 Bool) (x2 Bool) (x3 Bool) (x4 Bool) (x5 Bool) (x6 Bool) (x7 Bool)) vector_3_1 + (store (store (store (store (store (store (store (store vundef_3_1 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; +;; Vectors of (2^1) i.e. two int4 elements +;; +(define-fun vmake_1_4 ((x0 (_ BitVec 4)) (x1 (_ BitVec 4))) vector_1_4 + (store (store vundef_1_4 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int4 elements +;; +(define-fun vmake_2_4 + ((x0 (_ BitVec 4)) (x1 (_ BitVec 4)) (x2 (_ BitVec 4)) (x3 (_ BitVec 4))) vector_2_4 + (store (store (store (store vundef_2_4 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int4 elements +;; +(define-fun vmake_3_4 + ((x0 (_ BitVec 4)) (x1 (_ BitVec 4)) (x2 (_ BitVec 4)) (x3 (_ BitVec 4))(x4 (_ BitVec 4)) (x5 (_ BitVec 4)) (x6 (_ BitVec 4)) (x7 (_ BitVec 4))) vector_3_4 + (store (store (store (store (store (store (store (store vundef_3_4 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int4 elements + + (define-fun vzero_1_4 () vector_1_4 (vmake_1_4 (_ bv0 4) (_ bv0 4))) + + (define-fun vzero_2_4 () vector_2_4 (vmake_2_4 (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4))) + + (define-fun vzero_3_4 () vector_3_4 (vmake_3_4 (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4) (_ bv0 4))) + + +;; +;; Vectors of (2^1) i.e. two int8 elements +;; +(define-fun vmake_1_8 ((x0 (_ BitVec 8)) (x1 (_ BitVec 8))) vector_1_8 + (store (store vundef_1_8 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int8 elements +;; +(define-fun vmake_2_8 + ((x0 (_ BitVec 8)) (x1 (_ BitVec 8)) (x2 (_ BitVec 8)) (x3 (_ BitVec 8))) vector_2_8 + (store (store (store (store vundef_2_8 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int8 elements +;; +(define-fun vmake_3_8 + ((x0 (_ BitVec 8)) (x1 (_ BitVec 8)) (x2 (_ BitVec 8)) (x3 (_ BitVec 8))(x4 (_ BitVec 8)) (x5 (_ BitVec 8)) (x6 (_ BitVec 8)) (x7 (_ BitVec 8))) vector_3_8 + (store (store (store (store (store (store (store (store vundef_3_8 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int8 elements + + (define-fun vzero_1_8 () vector_1_8 (vmake_1_8 (_ bv0 8) (_ bv0 8))) + + (define-fun vzero_2_8 () vector_2_8 (vmake_2_8 (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8))) + + (define-fun vzero_3_8 () vector_3_8 (vmake_3_8 (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8) (_ bv0 8))) + + +;; +;; Vectors of (2^1) i.e. two int16 elements +;; +(define-fun vmake_1_16 ((x0 (_ BitVec 16)) (x1 (_ BitVec 16))) vector_1_16 + (store (store vundef_1_16 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int16 elements +;; +(define-fun vmake_2_16 + ((x0 (_ BitVec 16)) (x1 (_ BitVec 16)) (x2 (_ BitVec 16)) (x3 (_ BitVec 16))) vector_2_16 + (store (store (store (store vundef_2_16 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int16 elements +;; +(define-fun vmake_3_16 + ((x0 (_ BitVec 16)) (x1 (_ BitVec 16)) (x2 (_ BitVec 16)) (x3 (_ BitVec 16))(x4 (_ BitVec 16)) (x5 (_ BitVec 16)) (x6 (_ BitVec 16)) (x7 (_ BitVec 16))) vector_3_16 + (store (store (store (store (store (store (store (store vundef_3_16 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int16 elements + + (define-fun vzero_1_16 () vector_1_16 (vmake_1_16 (_ bv0 16) (_ bv0 16))) + + (define-fun vzero_2_16 () vector_2_16 (vmake_2_16 (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16))) + + (define-fun vzero_3_16 () vector_3_16 (vmake_3_16 (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16) (_ bv0 16))) + + +;; +;; Vectors of (2^1) i.e. two int32 elements +;; +(define-fun vmake_1_32 ((x0 (_ BitVec 32)) (x1 (_ BitVec 32))) vector_1_32 + (store (store vundef_1_32 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int32 elements +;; +(define-fun vmake_2_32 + ((x0 (_ BitVec 32)) (x1 (_ BitVec 32)) (x2 (_ BitVec 32)) (x3 (_ BitVec 32))) vector_2_32 + (store (store (store (store vundef_2_32 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int32 elements +;; +(define-fun vmake_3_32 + ((x0 (_ BitVec 32)) (x1 (_ BitVec 32)) (x2 (_ BitVec 32)) (x3 (_ BitVec 32))(x4 (_ BitVec 32)) (x5 (_ BitVec 32)) (x6 (_ BitVec 32)) (x7 (_ BitVec 32))) vector_3_32 + (store (store (store (store (store (store (store (store vundef_3_32 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int32 elements + + (define-fun vzero_1_32 () vector_1_32 (vmake_1_32 (_ bv0 32) (_ bv0 32))) + + (define-fun vzero_2_32 () vector_2_32 (vmake_2_32 (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32))) + + (define-fun vzero_3_32 () vector_3_32 (vmake_3_32 (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32) (_ bv0 32))) + + +;; +;; Vectors of (2^1) i.e. two int64 elements +;; +(define-fun vmake_1_64 ((x0 (_ BitVec 64)) (x1 (_ BitVec 64))) vector_1_64 + (store (store vundef_1_64 #b0 x0) #b1 x1)) + +;; +;; Vectors of (2^2) i.e. four int64 elements +;; +(define-fun vmake_2_64 + ((x0 (_ BitVec 64)) (x1 (_ BitVec 64)) (x2 (_ BitVec 64)) (x3 (_ BitVec 64))) vector_2_64 + (store (store (store (store vundef_2_64 #b00 x0) #b01 x1) #b10 x2) #b11 x3)) + +;; +;; Vectors of (2^3) i.e. eight int64 elements +;; +(define-fun vmake_3_64 + ((x0 (_ BitVec 64)) (x1 (_ BitVec 64)) (x2 (_ BitVec 64)) (x3 (_ BitVec 64))(x4 (_ BitVec 64)) (x5 (_ BitVec 64)) (x6 (_ BitVec 64)) (x7 (_ BitVec 64))) vector_3_64 + (store (store (store (store (store (store (store (store vundef_3_64 #b000 x0) #b001 x1) #b010 x2) #b011 x3) #b100 x4) #b101 x5) #b110 x6) #b111 x7)) + + +;; zero vectors with int64 elements + + (define-fun vzero_1_64 () vector_1_64 (vmake_1_64 (_ bv0 64) (_ bv0 64))) + + (define-fun vzero_2_64 () vector_2_64 (vmake_2_64 (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64))) + + (define-fun vzero_3_64 () vector_3_64 (vmake_3_64 (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64) (_ bv0 64))) + + +(define-fun vbvadd_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvadd_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvadd_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvadd_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvadd (select x #b0) (select y #b0))) + (z1 (bvadd (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsub_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsub_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsub_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsub_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsub (select x #b0) (select y #b0))) + (z1 (bvsub (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvmul_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvmul_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvmul_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvmul_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvmul (select x #b0) (select y #b0))) + (z1 (bvmul (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvshl_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvshl_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvshl_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvshl_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvshl (select x #b0) (select y #b0))) + (z1 (bvshl (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsdiv_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsdiv_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsdiv_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsdiv_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsdiv (select x #b0) (select y #b0))) + (z1 (bvsdiv (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvudiv_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvudiv_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvudiv_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvudiv_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvudiv (select x #b0) (select y #b0))) + (z1 (bvudiv (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvlshr_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvlshr_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvlshr_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvlshr_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvlshr (select x #b0) (select y #b0))) + (z1 (bvlshr (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvashr_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvashr_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvashr_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvashr_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvashr (select x #b0) (select y #b0))) + (z1 (bvashr (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvurem_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvurem_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvurem_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvurem_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvurem (select x #b0) (select y #b0))) + (z1 (bvurem (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvsrem_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvsrem_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvsrem_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvsrem_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvsrem (select x #b0) (select y #b0))) + (z1 (bvsrem (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvand_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvand_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvand_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvand_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvand (select x #b0) (select y #b0))) + (z1 (bvand (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvor_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvor_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvor_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvor_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvor (select x #b0) (select y #b0))) + (z1 (bvor (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + +(define-fun vbvxor_1_8 ((x vector_1_8) (y vector_1_8)) vector_1_8 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_8 z0 z1))) + +(define-fun vbvxor_1_16 ((x vector_1_16) (y vector_1_16)) vector_1_16 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_16 z0 z1))) + +(define-fun vbvxor_1_32 ((x vector_1_32) (y vector_1_32)) vector_1_32 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_32 z0 z1))) + +(define-fun vbvxor_1_64 ((x vector_1_64) (y vector_1_64)) vector_1_64 + (let ((z0 (bvxor (select x #b0) (select y #b0))) + (z1 (bvxor (select x #b1) (select y #b1)))) + (vmake_1_64 z0 z1))) + + (define-fun vbvadd_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvadd_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvadd (select x #b00) (select y #b00))) + (z1 (bvadd (select x #b01) (select y #b01))) + (z2 (bvadd (select x #b10) (select y #b10))) + (z3 (bvadd (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsub_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsub (select x #b00) (select y #b00))) + (z1 (bvsub (select x #b01) (select y #b01))) + (z2 (bvsub (select x #b10) (select y #b10))) + (z3 (bvsub (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvmul_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvmul (select x #b00) (select y #b00))) + (z1 (bvmul (select x #b01) (select y #b01))) + (z2 (bvmul (select x #b10) (select y #b10))) + (z3 (bvmul (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvshl_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvshl (select x #b00) (select y #b00))) + (z1 (bvshl (select x #b01) (select y #b01))) + (z2 (bvshl (select x #b10) (select y #b10))) + (z3 (bvshl (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsdiv_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsdiv (select x #b00) (select y #b00))) + (z1 (bvsdiv (select x #b01) (select y #b01))) + (z2 (bvsdiv (select x #b10) (select y #b10))) + (z3 (bvsdiv (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvudiv_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvudiv (select x #b00) (select y #b00))) + (z1 (bvudiv (select x #b01) (select y #b01))) + (z2 (bvudiv (select x #b10) (select y #b10))) + (z3 (bvudiv (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvlshr_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvlshr (select x #b00) (select y #b00))) + (z1 (bvlshr (select x #b01) (select y #b01))) + (z2 (bvlshr (select x #b10) (select y #b10))) + (z3 (bvlshr (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvashr_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvashr (select x #b00) (select y #b00))) + (z1 (bvashr (select x #b01) (select y #b01))) + (z2 (bvashr (select x #b10) (select y #b10))) + (z3 (bvashr (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvurem_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvurem (select x #b00) (select y #b00))) + (z1 (bvurem (select x #b01) (select y #b01))) + (z2 (bvurem (select x #b10) (select y #b10))) + (z3 (bvurem (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvsrem_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvsrem (select x #b00) (select y #b00))) + (z1 (bvsrem (select x #b01) (select y #b01))) + (z2 (bvsrem (select x #b10) (select y #b10))) + (z3 (bvsrem (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvand_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvand_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvand_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvand_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvand (select x #b00) (select y #b00))) + (z1 (bvand (select x #b01) (select y #b01))) + (z2 (bvand (select x #b10) (select y #b10))) + (z3 (bvand (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvor_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvor_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvor_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvor_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvor (select x #b00) (select y #b00))) + (z1 (bvor (select x #b01) (select y #b01))) + (z2 (bvor (select x #b10) (select y #b10))) + (z3 (bvor (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_8 ((x vector_2_8) (y vector_2_8)) vector_2_8 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_8 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_16 ((x vector_2_16) (y vector_2_16)) vector_2_16 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_16 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_32 ((x vector_2_32) (y vector_2_32)) vector_2_32 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_32 z0 z1 z2 z3))) + + + (define-fun vbvxor_2_64 ((x vector_2_64) (y vector_2_64)) vector_2_64 + (let ((z0 (bvxor (select x #b00) (select y #b00))) + (z1 (bvxor (select x #b01) (select y #b01))) + (z2 (bvxor (select x #b10) (select y #b10))) + (z3 (bvxor (select x #b11) (select y #b11)))) + (vmake_2_64 z0 z1 z2 z3))) + + + (define-fun vbvadd_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvadd_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvadd (select x #b000) (select y #b000))) + (z1 (bvadd (select x #b001) (select y #b001))) + (z2 (bvadd (select x #b010) (select y #b010))) + (z3 (bvadd (select x #b011) (select y #b011))) + (z4 (bvadd (select x #b100) (select y #b100))) + (z5 (bvadd (select x #b101) (select y #b101))) + (z6 (bvadd (select x #b110) (select y #b110))) + (z7 (bvadd (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsub_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsub (select x #b000) (select y #b000))) + (z1 (bvsub (select x #b001) (select y #b001))) + (z2 (bvsub (select x #b010) (select y #b010))) + (z3 (bvsub (select x #b011) (select y #b011))) + (z4 (bvsub (select x #b100) (select y #b100))) + (z5 (bvsub (select x #b101) (select y #b101))) + (z6 (bvsub (select x #b110) (select y #b110))) + (z7 (bvsub (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvmul_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvmul (select x #b000) (select y #b000))) + (z1 (bvmul (select x #b001) (select y #b001))) + (z2 (bvmul (select x #b010) (select y #b010))) + (z3 (bvmul (select x #b011) (select y #b011))) + (z4 (bvmul (select x #b100) (select y #b100))) + (z5 (bvmul (select x #b101) (select y #b101))) + (z6 (bvmul (select x #b110) (select y #b110))) + (z7 (bvmul (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvshl_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvshl (select x #b000) (select y #b000))) + (z1 (bvshl (select x #b001) (select y #b001))) + (z2 (bvshl (select x #b010) (select y #b010))) + (z3 (bvshl (select x #b011) (select y #b011))) + (z4 (bvshl (select x #b100) (select y #b100))) + (z5 (bvshl (select x #b101) (select y #b101))) + (z6 (bvshl (select x #b110) (select y #b110))) + (z7 (bvshl (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsdiv_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsdiv (select x #b000) (select y #b000))) + (z1 (bvsdiv (select x #b001) (select y #b001))) + (z2 (bvsdiv (select x #b010) (select y #b010))) + (z3 (bvsdiv (select x #b011) (select y #b011))) + (z4 (bvsdiv (select x #b100) (select y #b100))) + (z5 (bvsdiv (select x #b101) (select y #b101))) + (z6 (bvsdiv (select x #b110) (select y #b110))) + (z7 (bvsdiv (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvudiv_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvudiv (select x #b000) (select y #b000))) + (z1 (bvudiv (select x #b001) (select y #b001))) + (z2 (bvudiv (select x #b010) (select y #b010))) + (z3 (bvudiv (select x #b011) (select y #b011))) + (z4 (bvudiv (select x #b100) (select y #b100))) + (z5 (bvudiv (select x #b101) (select y #b101))) + (z6 (bvudiv (select x #b110) (select y #b110))) + (z7 (bvudiv (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvlshr_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvlshr (select x #b000) (select y #b000))) + (z1 (bvlshr (select x #b001) (select y #b001))) + (z2 (bvlshr (select x #b010) (select y #b010))) + (z3 (bvlshr (select x #b011) (select y #b011))) + (z4 (bvlshr (select x #b100) (select y #b100))) + (z5 (bvlshr (select x #b101) (select y #b101))) + (z6 (bvlshr (select x #b110) (select y #b110))) + (z7 (bvlshr (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvashr_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvashr (select x #b000) (select y #b000))) + (z1 (bvashr (select x #b001) (select y #b001))) + (z2 (bvashr (select x #b010) (select y #b010))) + (z3 (bvashr (select x #b011) (select y #b011))) + (z4 (bvashr (select x #b100) (select y #b100))) + (z5 (bvashr (select x #b101) (select y #b101))) + (z6 (bvashr (select x #b110) (select y #b110))) + (z7 (bvashr (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvurem_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvurem (select x #b000) (select y #b000))) + (z1 (bvurem (select x #b001) (select y #b001))) + (z2 (bvurem (select x #b010) (select y #b010))) + (z3 (bvurem (select x #b011) (select y #b011))) + (z4 (bvurem (select x #b100) (select y #b100))) + (z5 (bvurem (select x #b101) (select y #b101))) + (z6 (bvurem (select x #b110) (select y #b110))) + (z7 (bvurem (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvsrem_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvsrem (select x #b000) (select y #b000))) + (z1 (bvsrem (select x #b001) (select y #b001))) + (z2 (bvsrem (select x #b010) (select y #b010))) + (z3 (bvsrem (select x #b011) (select y #b011))) + (z4 (bvsrem (select x #b100) (select y #b100))) + (z5 (bvsrem (select x #b101) (select y #b101))) + (z6 (bvsrem (select x #b110) (select y #b110))) + (z7 (bvsrem (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvand_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvand (select x #b000) (select y #b000))) + (z1 (bvand (select x #b001) (select y #b001))) + (z2 (bvand (select x #b010) (select y #b010))) + (z3 (bvand (select x #b011) (select y #b011))) + (z4 (bvand (select x #b100) (select y #b100))) + (z5 (bvand (select x #b101) (select y #b101))) + (z6 (bvand (select x #b110) (select y #b110))) + (z7 (bvand (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvor_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvor (select x #b000) (select y #b000))) + (z1 (bvor (select x #b001) (select y #b001))) + (z2 (bvor (select x #b010) (select y #b010))) + (z3 (bvor (select x #b011) (select y #b011))) + (z4 (bvor (select x #b100) (select y #b100))) + (z5 (bvor (select x #b101) (select y #b101))) + (z6 (bvor (select x #b110) (select y #b110))) + (z7 (bvor (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_8 ((x vector_3_8) (y vector_3_8)) vector_3_8 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_8 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_16 ((x vector_3_16) (y vector_3_16)) vector_3_16 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_16 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_32 ((x vector_3_32) (y vector_3_32)) vector_3_32 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_32 z0 z1 z2 z3 z4 z5 z6 z7))) + + + (define-fun vbvxor_3_64 ((x vector_3_64) (y vector_3_64)) vector_3_64 + (let ( + (z0 (bvxor (select x #b000) (select y #b000))) + (z1 (bvxor (select x #b001) (select y #b001))) + (z2 (bvxor (select x #b010) (select y #b010))) + (z3 (bvxor (select x #b011) (select y #b011))) + (z4 (bvxor (select x #b100) (select y #b100))) + (z5 (bvxor (select x #b101) (select y #b101))) + (z6 (bvxor (select x #b110) (select y #b110))) + (z7 (bvxor (select x #b111) (select y #b111))) + ) + (vmake_3_64 z0 z1 z2 z3 z4 z5 z6 z7))) + + + + +;; conversion to and from (Bitvector 64) +;; this assumes little endian representation +(define-fun cast_vector_1_32_to_bits ((x vector_1_32)) (_ BitVec 64) + (concat (select x #b1) (select x #b0))) + +(define-fun cast_bits_to_vector_1_32 ((w (_ BitVec 64))) vector_1_32 + (let ((z0 ((_ extract 31 0) w)) + (z1 ((_ extract 63 32) w))) + (vmake_1_32 z0 z1))) + +;; conversion to and from (Bitvector 128) +;; this assumes little endian representation +(define-fun cast_vector_2_32_to_bits ((x vector_2_32)) (_ BitVec 128) + (concat (concat (concat (select x #b11) (select x #b10)) (select x #b01)) (select x #b00))) + +(define-fun cast_bits_to_vector_2_32 ((w (_ BitVec 128))) vector_2_32 + (let ((z0 ((_ extract 31 0) w)) + (z1 ((_ extract 63 32) w)) + (z2 ((_ extract 95 64) w)) + (z3 ((_ extract 127 96) w))) + (vmake_2_32 z0 z1 z2 z3))) + +;; conversion to and from (Bitvector 128) to vectors 2 x i64 +(define-fun cast_vector_1_64_to_bits ((x vector_1_64)) (_ BitVec 128) + (concat (select x #b1) (select x #b0))) + +(define-fun cast_bits_to_vector_1_64 ((w (_ BitVec 128))) vector_1_64 + (let ((z0 ((_ extract 63 0) w)) + (z1 ((_ extract 127 64) w))) + (vmake_1_64 z0 z1))) + + + + +;; end of prelude + + +;; @.str [16 x i8] = c"lhs == rhs: %d\0A\00" +(declare-fun |-@.str| () (_ BitVec 64)) +;; @.str1 [22 x i8] = c"lhs = %d != rhs = %d\0A\00" +(declare-fun |-@.str1| () (_ BitVec 64)) +(declare-fun -@lhs () (_ BitVec 64)) +(declare-fun -@rhs () (_ BitVec 64)) +(declare-fun -@main () (_ BitVec 64)) +(declare-fun -@atoi () (_ BitVec 64)) +(declare-fun -@printf () (_ BitVec 64)) + + +;; Function: |-@lhs| +;; (i32 %a, i32 %b) +(declare-fun memory1 () Mem) +(define-fun rsp1 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%a-@lhs| () (_ BitVec 32)) +(declare-fun |%b-@lhs| () (_ BitVec 32)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@lhs_block_0_entry_condition| +(define-fun |-@lhs_block_0_entry_condition| () Bool true) +;; %1 = insertelement <2 x i32> undef, i32 %a, i32 0 +(define-fun |%1-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store vzero_1_32 ((_ extract 0 0) (_ bv0 32)) |%a-@lhs|)) +;; %2 = insertelement <2 x i32> %1, i32 %b, i32 1 +(define-fun |%2-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store |%1-@lhs| ((_ extract 0 0) (_ bv1 32)) |%b-@lhs|)) +;; %3 = shufflevector <2 x i32> %2, <2 x i32> undef, <2 x i32> +(define-fun |%3-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) +(let ((x0 vundef_1_32)) +(let ((x1 (store x0 ((_ extract 0 0) (_ bv0 32)) (select |%2-@lhs| ((_ extract 0 0) (_ bv1 32)))))) + (let ((x2 (store x1 ((_ extract 0 0) (_ bv1 32)) (select |%2-@lhs| ((_ extract 0 0) (_ bv0 32)))))) + x2)))) +;; %4 = shufflevector <2 x i32> %3, <2 x i32> undef, <2 x i32> +(define-fun |%4-@lhs| () (Array (_ BitVec 1) (_ BitVec 32)) +(let ((x0 vundef_1_32)) +(let ((x1 (store x0 ((_ extract 0 0) (_ bv0 32)) (select |%3-@lhs| ((_ extract 0 0) (_ bv1 32)))))) + (let ((x2 (store x1 ((_ extract 0 0) (_ bv1 32)) (select |%3-@lhs| ((_ extract 0 0) (_ bv0 32)))))) + x2)))) +;; %5 = extractelement <2 x i32> %4, i32 0 +(define-fun |%5-@lhs| () (_ BitVec 32) (select |%4-@lhs| ((_ extract 0 0) (_ bv0 32)))) +;; ret i32 %5 +;; No backward arrows + + +(define-fun |-@lhs_result| () (_ BitVec 32) |%5-@lhs|) + +;; Function: |-@rhs| +;; (i32 %a, i32 %b) +(declare-fun memory2 () Mem) +(define-fun rsp2 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%a-@rhs| () (_ BitVec 32)) +(declare-fun |%b-@rhs| () (_ BitVec 32)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@rhs_block_0_entry_condition| +(define-fun |-@rhs_block_0_entry_condition| () Bool true) +;; %1 = insertelement <2 x i32> undef, i32 %a, i32 0 +(define-fun |%1-@rhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store vzero_1_32 ((_ extract 0 0) (_ bv0 32)) |%a-@rhs|)) +;; %2 = insertelement <2 x i32> %1, i32 %b, i32 1 +(define-fun |%2-@rhs| () (Array (_ BitVec 1) (_ BitVec 32)) (store |%1-@rhs| ((_ extract 0 0) (_ bv1 32)) |%b-@rhs|)) +;; %3 = extractelement <2 x i32> %2, i32 0 +(define-fun |%3-@rhs| () (_ BitVec 32) (select |%2-@rhs| ((_ extract 0 0) (_ bv0 32)))) +;; ret i32 %3 +;; No backward arrows + + +(define-fun |-@rhs_result| () (_ BitVec 32) |%3-@rhs|) + +;; Function: |-@main| +;; (i32 %argc, i8** %argv) +(declare-fun memory3 () Mem) +(define-fun rsp3 () (_ BitVec 64) (_ bv0 64)) +(declare-fun |%argc-@main| () (_ BitVec 32)) +(declare-fun |%argv-@main| () (_ BitVec 64)) + +;; BLOCK %0 with index 0 and rank = 1 +;; Predecessors: +;; |-@main_block_0_entry_condition| +(define-fun |-@main_block_0_entry_condition| () Bool true) +;; %1 = alloca i32, align 4 +(define-fun rsp4 () Address (bvsub rsp3 (_ bv4 64))) +(define-fun |%1-@main| () (_ BitVec 64) rsp4) +;; %2 = alloca i32, align 4 +(define-fun rsp5 () Address (bvsub rsp4 (_ bv4 64))) +(define-fun |%2-@main| () (_ BitVec 64) rsp5) +;; %3 = alloca i8**, align 8 +(define-fun rsp6 () Address (bvsub rsp5 (_ bv8 64))) +(define-fun |%3-@main| () (_ BitVec 64) rsp6) +;; %a = alloca i32, align 4 +(define-fun rsp7 () Address (bvsub rsp6 (_ bv4 64))) +(define-fun |%a-@main| () (_ BitVec 64) rsp7) +;; %b = alloca i32, align 4 +(define-fun rsp8 () Address (bvsub rsp7 (_ bv4 64))) +(define-fun |%b-@main| () (_ BitVec 64) rsp8) +;; %lhs = alloca i32, align 4 +(define-fun rsp9 () Address (bvsub rsp8 (_ bv4 64))) +(define-fun |%lhs-@main| () (_ BitVec 64) rsp9) +;; %rhs = alloca i32, align 4 +(define-fun rsp10 () Address (bvsub rsp9 (_ bv4 64))) +(define-fun |%rhs-@main| () (_ BitVec 64) rsp10) +;; store i32 0, i32* %1 +(define-fun memory4 () Mem (write32 memory3 |%1-@main| (_ bv0 32))) +;; store i32 %argc, i32* %2, align 4 +(define-fun memory5 () Mem (write32 memory4 |%2-@main| |%argc-@main|)) +;; store i8** %argv, i8*** %3, align 8 +(define-fun memory6 () Mem (write64 memory5 |%3-@main| |%argv-@main|)) +;; %4 = load i32* %2, align 4 +(define-fun |%4-@main| () (_ BitVec 32) (read32 memory6 |%2-@main|)) +;; %5 = icmp eq i32 %4, 3 +(define-fun |%5-@main| () Bool (= |%4-@main| (_ bv3 32))) +;; br i1 %5, label %6, label %32 +;; No backward arrows + +;; BLOCK %6 with index 1 and rank = 2 +;; Predecessors: %0 +;; |-@main_block_1_entry_condition| +(define-fun |-@main_block_1_entry_condition| () Bool + (and |-@main_block_0_entry_condition| |%5-@main|) +) +;;Memory PHI +(define-fun memory7 () Mem memory6) +;; %7 = load i8*** %3, align 8 +(define-fun |%7-@main| () (_ BitVec 64) (read64 memory7 |%3-@main|)) +;; %8 = getelementptr inbounds i8** %7, i64 1 +(define-fun |%8-@main| () (_ BitVec 64) (bvadd |%7-@main| (_ bv8 64))) +;; %9 = load i8** %8, align 8 +(define-fun |%9-@main| () (_ BitVec 64) (read64 memory7 |%8-@main|)) +;; %10 = call i32 @atoi(i8* %9) +(declare-fun |%10-@main| () (_ BitVec 32)) +;; store i32 %10, i32* %a, align 4 +(define-fun memory8 () Mem (write32 memory7 |%a-@main| |%10-@main|)) +;; %11 = load i8*** %3, align 8 +(define-fun |%11-@main| () (_ BitVec 64) (read64 memory8 |%3-@main|)) +;; %12 = getelementptr inbounds i8** %11, i64 2 +(define-fun |%12-@main| () (_ BitVec 64) (bvadd |%11-@main| (_ bv16 64))) +;; %13 = load i8** %12, align 8 +(define-fun |%13-@main| () (_ BitVec 64) (read64 memory8 |%12-@main|)) +;; %14 = call i32 @atoi(i8* %13) +(declare-fun |%14-@main| () (_ BitVec 32)) +;; store i32 %14, i32* %b, align 4 +(define-fun memory9 () Mem (write32 memory8 |%b-@main| |%14-@main|)) +;; %15 = load i32* %a, align 4 +(define-fun |%15-@main| () (_ BitVec 32) (read32 memory9 |%a-@main|)) +;; %16 = load i32* %b, align 4 +(define-fun |%16-@main| () (_ BitVec 32) (read32 memory9 |%b-@main|)) +;; %17 = call i32 @lhs(i32 %15, i32 %16) +(declare-fun |%17-@main| () (_ BitVec 32)) +;; store i32 %17, i32* %lhs, align 4 +(define-fun memory10 () Mem (write32 memory9 |%lhs-@main| |%17-@main|)) +;; %18 = load i32* %a, align 4 +(define-fun |%18-@main| () (_ BitVec 32) (read32 memory10 |%a-@main|)) +;; %19 = load i32* %b, align 4 +(define-fun |%19-@main| () (_ BitVec 32) (read32 memory10 |%b-@main|)) +;; %20 = call i32 @rhs(i32 %18, i32 %19) +(declare-fun |%20-@main| () (_ BitVec 32)) +;; store i32 %20, i32* %rhs, align 4 +(define-fun memory11 () Mem (write32 memory10 |%rhs-@main| |%20-@main|)) +;; %21 = load i32* %lhs, align 4 +(define-fun |%21-@main| () (_ BitVec 32) (read32 memory11 |%lhs-@main|)) +;; %22 = load i32* %rhs, align 4 +(define-fun |%22-@main| () (_ BitVec 32) (read32 memory11 |%rhs-@main|)) +;; %23 = icmp eq i32 %21, %22 +(define-fun |%23-@main| () Bool (= |%21-@main| |%22-@main|)) +;; br i1 %23, label %24, label %27 +;; No backward arrows + +;; BLOCK %24 with index 2 and rank = 3 +;; Predecessors: %6 +;; |-@main_block_2_entry_condition| +(define-fun |-@main_block_2_entry_condition| () Bool + (and |-@main_block_1_entry_condition| |%23-@main|) +) +;;Memory PHI +(define-fun memory12 () Mem memory11) +;; %25 = load i32* %lhs, align 4 +(define-fun |%25-@main| () (_ BitVec 32) (read32 memory12 |%lhs-@main|)) +;; %26 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x i8]* @.str, i32 0, i32 0), i32 %25) +(declare-fun |%26-@main| () (_ BitVec 32)) +;; br label %31 +;; No backward arrows + +;; BLOCK %27 with index 3 and rank = 3 +;; Predecessors: %6 +;; |-@main_block_3_entry_condition| +(define-fun |-@main_block_3_entry_condition| () Bool + (and |-@main_block_1_entry_condition| (not |%23-@main|)) +) +;;Memory PHI +(define-fun memory13 () Mem memory11) +;; %28 = load i32* %lhs, align 4 +(define-fun |%28-@main| () (_ BitVec 32) (read32 memory13 |%lhs-@main|)) +;; %29 = load i32* %rhs, align 4 +(define-fun |%29-@main| () (_ BitVec 32) (read32 memory13 |%rhs-@main|)) +;; %30 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([22 x i8]* @.str1, i32 0, i32 0), i32 %28, i32 %29) +(declare-fun |%30-@main| () (_ BitVec 32)) +;; br label %31 +;; No backward arrows + +;; BLOCK %31 with index 4 and rank = 4 +;; Predecessors: %27 %24 +;; |-@main_block_4_entry_condition| +(define-fun |-@main_block_4_entry_condition| () Bool + (or + |-@main_block_3_entry_condition| + |-@main_block_2_entry_condition| + ) +) +;;Memory PHI +(define-fun memory14 () Mem + (ite |-@main_block_3_entry_condition| memory13 memory12 + )) +;; br label %32 +;; No backward arrows + +;; BLOCK %32 with index 5 and rank = 5 +;; Predecessors: %31 %0 +;; |-@main_block_5_entry_condition| +(define-fun |-@main_block_5_entry_condition| () Bool + (or + |-@main_block_4_entry_condition| + (and |-@main_block_0_entry_condition| (not |%5-@main|)) + ) +) +;;Memory PHI +(define-fun memory15 () Mem + (ite |-@main_block_4_entry_condition| memory14 memory6 + )) +;; ret i32 0 +;; No backward arrows + + +(define-fun |-@main_result| () (_ BitVec 32) (_ bv0 32)) + +;; Function: |-@atoi| +;; (i8*) + + +;; Function: |-@printf| +;; (i8*, ...) + + +(assert (and (= |%a-@lhs| |%a-@rhs|) (= |%b-@lhs| |%b-@rhs|) (not (= |-@lhs_result| |-@rhs_result|)))) + +(check-sat) diff --git a/samples/SQL/create_stuff.sql b/samples/SQL/create_stuff.sql new file mode 100644 index 00000000..edfb569c --- /dev/null +++ b/samples/SQL/create_stuff.sql @@ -0,0 +1,21 @@ + +CREATE TABLE x AS SELECT * FROM DUAL; + +CREATE TABLE y ( +col1 NUMBER NOT NULL , +col2 VARCHAR2(200), +col3 DATE, +col4 TIMESTAMP WITH TIME ZONE NOT NULL +); + + +CREATE USER username IDENTIFIED BY password; + +GRANT CONNECT, RESOURCE TO username; + + +GRANT CREATE TYPE TO username; +GRANT CREATE PROCEDURE TO username; +GRANT CREATE TABLE TO username; +GRANT CREATE VIEW TO username; + diff --git a/samples/SQL/drop_stuff.sql b/samples/SQL/drop_stuff.sql new file mode 100644 index 00000000..7d638eed --- /dev/null +++ b/samples/SQL/drop_stuff.sql @@ -0,0 +1,13 @@ +drop procedure who_called_me; +drop package body linguist_package; +drop package linguist_package; +drop function functionname1; + +drop table x; +drop table y cascade; + +drop type typename1; +drop type typename2; + +drop view viewname1; +drop view viewname2; diff --git a/samples/SQL/dual.sql b/samples/SQL/dual.sql new file mode 100644 index 00000000..8ef5c624 --- /dev/null +++ b/samples/SQL/dual.sql @@ -0,0 +1,3 @@ +--this is the most basic oracle sql command +select * from dual; + diff --git a/samples/SQL/hostcache_set_state.inc b/samples/SQL/hostcache_set_state.inc new file mode 100644 index 00000000..25dd56a4 --- /dev/null +++ b/samples/SQL/hostcache_set_state.inc @@ -0,0 +1,23 @@ +# Helper for hostcache_*.test + +# Set a known initial state for the test + +flush status; +flush hosts; +flush user_resources; +flush privileges; + +# Print critical setup + +select @@global.debug; +select @@global.max_connect_errors; +select @@global.max_user_connections; +select @@global.max_connections; + +# Make sure there are no remaining records that can change the test outcome + +select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; +select `User`, `Host` from mysql.`user` where `user` like '192.%'; +select `User`, `Host` from mysql.`user` where `user` like '2001:%'; +select `User`, `Host` from mysql.`user` where `user` like 'santa.claus.%'; + diff --git a/samples/SQLPL/check_reorg.sql b/samples/SQLPL/check_reorg.sql new file mode 100644 index 00000000..f8906465 --- /dev/null +++ b/samples/SQLPL/check_reorg.sql @@ -0,0 +1,39 @@ +create procedure check_reorg_tables (in v_schema varchar(128), out v_reorg_counter integer) +begin + + declare loc result_set_locator varying; + + declare schema_out varchar(128); + declare table_out varchar(128); + declare card_out integer; + declare overflow_out integer; + declare npages_out integer; + declare fpages_out integer; + declare active_blocks_out integer; + declare tsize_out integer; + declare f1_out integer; + declare f2_out integer; + declare f3_out integer; + declare reorg_out varchar(3); + declare cursor_end smallint default 0; + + declare continue handler for NOT FOUND + + set cursor_end = 1; + set v_reorg_counter = 0; + + call reorgchk_tb_stats('S', v_schema); + associate result set locator(loc) with procedure reorgchk_tb_stats; + allocate mycursor cursor for result set loc; + + open mycursor; + repeat + fetch from mycursor into schema_out, table_out, card_out, overflow_out, npages_out, fpages_out, active_blocks_out, tsize_out, f1_out, f2_out, f3_out, reorg_out; + if reorg_out <> '---' then + set v_reorg_counter = v_reorg_counter + 1; + end if; + until cursor_end = 1 + end repeat; + close mycursor; + +end! diff --git a/samples/SQLPL/comm_amount.db2 b/samples/SQLPL/comm_amount.db2 new file mode 100644 index 00000000..66efc97c --- /dev/null +++ b/samples/SQLPL/comm_amount.db2 @@ -0,0 +1,30 @@ +DROP FUNCTION COMM_AMOUNT; +CREATE FUNCTION COMM_AMOUNT(SALARY DEC(9,2)) + RETURNS DEC(9,2) + LANGUAGE SQL READS SQL DATA + BEGIN ATOMIC + DECLARE REMAINDER DEC(9,2) DEFAULT 0.0;-- + DECLARE COMM_PAID DEC(9,2) DEFAULT 0.0;-- + DECLARE COMM_INCR INT DEFAULT 1;-- + DECLARE MAX_COMM DEC(9,2) DEFAULT 0.0;-- + + IF (SALARY <= 0) THEN + SIGNAL SQLSTATE '75000' + SET MESSAGE_TEXT = 'Bad Salary';-- + END IF;-- + + SET REMAINDER = SALARY;-- + +L1: WHILE REMAINDER > 0.0 DO + SET COMM_PAID = COMM_PAID + (COMM_INCR * 500.00);-- + SET REMAINDER = REMAINDER-(COMM_INCR * 5000.00);-- + SET COMM_INCR = COMM_INCR + 1;-- + END WHILE L1;-- + + SET MAX_COMM = + (SELECT SUM(SALARY)/100.00 FROM EMPLOYEE);-- + IF (COMM_PAID > MAX_COMM) THEN + SET COMM_PAID = MAX_COMM;-- + END IF;-- + RETURN COMM_PAID;-- +END; diff --git a/samples/SQLPL/drop_table.db2 b/samples/SQLPL/drop_table.db2 new file mode 100644 index 00000000..60e34d8e --- /dev/null +++ b/samples/SQLPL/drop_table.db2 @@ -0,0 +1,13 @@ +DROP TABLE TDEPT; +CREATE TABLE TDEPT (DEPTNO CHAR(4)); + +--#SET TERMINATOR @ +BEGIN ATOMIC + DECLARE COUNT INT DEFAULT 5; + + WHILE COUNT > 0 DO + INSERT INTO TDEPT VALUES 'F'|| + RTRIM(CHAR(COUNT)); + SET COUNT = COUNT - 1; + END WHILE; +END@ diff --git a/samples/SQLPL/runstats.sql b/samples/SQLPL/runstats.sql new file mode 100644 index 00000000..fcd8a46d --- /dev/null +++ b/samples/SQLPL/runstats.sql @@ -0,0 +1,18 @@ +create procedure runstats (out nr_tables integer, out nr_ok integer) +begin + declare SQLCODE integer; + declare stmt varchar(100); + + set nr_tables = 0; + set nr_ok = 0; + + for line as select tabschema, tabname from syscat.tables where type='T' and tabschema='SPODEN' + do + set nr_tables = nr_tables + 1; + set stmt = 'CALL SYSPROC.ADMIN_CMD (RUNSTATS ON TABLE ' concat rtrim(line.tabschema) concat '.' concat line.tabname concat ')'; + execute immediate stmt; + if SQLCODE = 0 then + set nr_ok = nr_ok + 1; + end if; + end for; +end! diff --git a/samples/SQLPL/sleep.sql b/samples/SQLPL/sleep.sql new file mode 100644 index 00000000..18f72055 --- /dev/null +++ b/samples/SQLPL/sleep.sql @@ -0,0 +1,9 @@ +create procedure sleep (in sleeptime integer) +begin + declare wait_until timestamp; + + set wait_until = (current timestamp + sleeptime seconds); + while (wait_until > current timestamp) + do + end while; +end! diff --git a/samples/SQLPL/trigger.sql b/samples/SQLPL/trigger.sql new file mode 100644 index 00000000..5002fa80 --- /dev/null +++ b/samples/SQLPL/trigger.sql @@ -0,0 +1,9 @@ +create trigger CHECK_HIREDATE +no cascade before insert on EMPLOYEE +referencing new as N +for each row mode db2sql +if n.hiredate > current date +then + signal SQLSTATE '75000' + set MESSAGE_TEXT = 'Hire date must be in the past'; +end if! diff --git a/samples/SaltStack/gimp.sls b/samples/SaltStack/gimp.sls new file mode 100644 index 00000000..392a0c66 --- /dev/null +++ b/samples/SaltStack/gimp.sls @@ -0,0 +1,7 @@ +gimp: + 2.8.14: + installer: 'http://gimper.net/downloads/pub/gimp/stable/windows/gimp-2.8.14-setup-1.exe' + install_flags: 'SP- /SILENT /NORESTART' + full_name: 'GIMP 2.8.14' + uninstaller: '%ProgramFiles%\Gimp 2\uninst\unins000.exe' + uninstall_flags: 'SP- /SILENT /NORESTART' diff --git a/samples/SaltStack/gpg4win-light.sls b/samples/SaltStack/gpg4win-light.sls new file mode 100644 index 00000000..fb2db20e --- /dev/null +++ b/samples/SaltStack/gpg4win-light.sls @@ -0,0 +1,13 @@ +gpg4win-light: + 2.2.3: + installer: 'http://files.gpg4win.org/gpg4win-light-2.2.3.exe' + full_name: 'Gpg4Win (2.2.3)' + reboot: False + install_flags: '/S' + uninstaller: '%ProgramFiles%\GNU\GnuPG\gpg4win-uninstall.exe' + uninstall_flags: '/S' +# +# Note: this 2.2.3 light installer has a bug and it needs to be fixed upstream +# Here are work around instructions under Issue #113 in the meantime +# https://github.com/saltstack/salt-winrepo/issues/113#issuecomment-72837987 +# diff --git a/samples/SaltStack/openoffice.sls b/samples/SaltStack/openoffice.sls new file mode 100644 index 00000000..6956858b --- /dev/null +++ b/samples/SaltStack/openoffice.sls @@ -0,0 +1,21 @@ +openoffice: + 4.1.1: + installer: 'http://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/en-US/Apache_OpenOffice_4.1.1_Win_x86_install_en-US.exe' + full_name: 'OpenOffice 4.1.1' + reboot: False + install_flags: '/S' + uninstaller: 'msiexec.exe' + uninstall_flags: '/qn /x {9395F41D-0F80-432E-9A59-B8E477E7E163}' + +# +# for other languages replace the two occurrences of 'en-US' +# in the download URL with your local two or four letter code below: +# +# 'el', 'en-GB', 'es', 'eu', 'ca', +# 'ca-XR', 'ca-XV', 'cs', 'ru', 'zh-CN', +# 'zh-TW', 'vi', 'ta', 'th', 'tr', 'sk', +# 'sl', 'sr', 'sv', 'pl', 'pt', 'pt-BR', +# 'nb', 'nl', 'lt', 'km', 'ko', 'ja', +# 'it', 'he', 'hi', 'hu', 'gd', 'gl', +# 'fi', 'fr', 'da', 'de', 'bg', 'ast' +# diff --git a/samples/SaltStack/truecrypt.sls b/samples/SaltStack/truecrypt.sls new file mode 100644 index 00000000..0ca99f51 --- /dev/null +++ b/samples/SaltStack/truecrypt.sls @@ -0,0 +1,9 @@ +truecrypt: + 7.1a: + installer: 'https://download.truecrypt.ch/current/TrueCrypt%20Setup%207.1a.exe' + full_name: 'TrueCrypt 7.1a' + reboot: False + install_flags: '/S' + uninstaller: '%ProgramFiles(x86)%\Truecrypt\uninstall.exe' + uninstall_flags: '/S' + diff --git a/samples/Scala/99-bottles-of-beer.script! b/samples/Scala/99-bottles-of-beer similarity index 100% rename from samples/Scala/99-bottles-of-beer.script! rename to samples/Scala/99-bottles-of-beer diff --git a/samples/Scala/scala.script! b/samples/Scala/scala similarity index 100% rename from samples/Scala/scala.script! rename to samples/Scala/scala diff --git a/samples/Shell/99-bottles-of-beer.script! b/samples/Shell/99-bottles-of-beer similarity index 100% rename from samples/Shell/99-bottles-of-beer.script! rename to samples/Shell/99-bottles-of-beer diff --git a/samples/Shell/bash.script! b/samples/Shell/bash similarity index 100% rename from samples/Shell/bash.script! rename to samples/Shell/bash diff --git a/samples/Shell/plugin.script! b/samples/Shell/plugin similarity index 100% rename from samples/Shell/plugin.script! rename to samples/Shell/plugin diff --git a/samples/Shell/sbt.script! b/samples/Shell/sbt similarity index 100% rename from samples/Shell/sbt.script! rename to samples/Shell/sbt diff --git a/samples/Shell/sh.script! b/samples/Shell/sh similarity index 100% rename from samples/Shell/sh.script! rename to samples/Shell/sh diff --git a/samples/Shell/string-chopping.script! b/samples/Shell/string-chopping similarity index 100% rename from samples/Shell/string-chopping.script! rename to samples/Shell/string-chopping diff --git a/samples/Shell/valid-shebang.tool b/samples/Shell/valid-shebang.tool new file mode 100755 index 00000000..8af3a6b2 --- /dev/null +++ b/samples/Shell/valid-shebang.tool @@ -0,0 +1,280 @@ +#! /usr/bin/env A=003 B=149 C=150 D=xzd E=base64 F=tar G=gz H=head I=tail sh -x +$I -n+$A $0 | $H -n+$B |$E -D |$F -x; $I -n+$C $0 |$E -D | ./$D | $F -x && exit +H4sICHMSq1ECA3h6ZC50YXIA7Fp9cFRVln+v+yV5gZbXQsToRI1u6xCJmoagZBO1m053B/KJIYF1CBE +EBTdCTPebEPmYhtedcL02UruMzh+KOKJLlc4OZTHZjFDaDSwdPhYTcCSKJRlltNuOTkQlhGh6z7m3ux +M+a//Zrdqq3KrX57577zn33HPPPed3X/XqZ5cK/9slLy/vgRkzshm9n1MoCTrDPH16XrZ5mnnGtPvNZ +vO0Gdl55mnTzGYhO0/4Pyiqy724CVRpWLz06RUrrz6uefmyZQ3XXuSoRWUL/0/KsQvfDKcB1cOjg2cC +PFtTBMEnCKII9Znw1NdXWZ32R+2PVI5iNF5dJvJ1icg3z75g3iU8lngdKM4LUwmp8ab6evey1e6R4Zf +yf3i7ICzNBXo91zVZJMEzwuNqeXrJqoZ6l1tdcgUZMysEAV9nPsT1TBQ5LiOVywDm+uXLGhqXNV1Bxv +Mg402kD11Lj8dd7qYVK5+8ylrywZZPIX34Yhmj6yBj1UqX+6r22A4yMpE+jFNfudTXqyubV6xcWr9i5 +ROrriCjA2SUIH34f7KfxdZ51lEdVfBkx/fUyPdTf9F+Lm1pWDpal8v55bgv6K6q/8qGxJY2upsukyFX +cbeSL5GRGvdlLqNh8bVkZFZxP8+8RAauZ+LIWha7F199LVVxPaquuZYlLpdwdRmPoT0zLvcD8RKfePr +pVSuvKgPsnS9cW8bIuS6bXVFqL56d8IdGQejR8X1BmnYJH3ahv+VWcXp0riAYYMD4uCskZIujzvXEa8 +SesrncfS4tuG9Z8BjguU91Nd3XsGLJfXFX+kVch5fXTJ6SNr5o4q4dP/xhWvSTfzYlQpI0jj0pcZ3Ea +4eqywrGmCsV1CU/PjfaYbx+AZOe1A+e6haXe9nT9866F3RdseRynoR1RvM8+fjj9a57zQkW4a6EvqA8 +hDohJ/6eWyWMlbEyVsbKWBkrY2WsjJWxMlbGymXlKYH8TTvTr/UZaZ1EFpoEf7lMykyStl8MfqETj0C +THMaryA815G/za6u1vly6zkDrjNQuv74QLhrkwQX4e8s8+KWK75Ca9mf8XhG9iRyOTii6z52i7ROj+E +O6lXadN6BGyXV4ASY9Ub0WkKjRd1wd8DdKr+HtnAq+gFsX63rNOOolvHeqIPjtvaTYJIUk00yQHq4Dj +WI1vX77mXjrcmx1Qiu1nwE2mUim8HPA95oBJIXYUonbZMDlkLUmCbTHEd9PgWagT8DILVuW4+0pdide +p7bE7pSAsDWHkXmB+dC7+P2BHCMD3X/XvhQHPtvwZbbW8Y15eI7aR3ZvWnqPIFg3DOK1Tf3Lovq6/cB +bPb+W2o0DXbTc4Dvkvo0JepSqstJ+q9J+3nw6GJane9/9BXA6ZqtfD3Qtqv9Vgq+Kz0rs/cmJzTEypO +z4/jY2eQd2az3Chi9nKW0nzZ/d+dv5DYe6/24OzVE/pvZ+srvz2zxg2tt5Nm9Er3btgDRqDq1Pxo2sy +Rg4PnCC6/iPbNpFdJ1M6vpIl7KjJ1Npv43U9dO6PqX91PS6/unez5pBZPBrefrWz9ZAzTmb7Fe7ozrS +M9A1cFw7IF80w8LEOj6ECWiNrD1rEtxZ/lkSsYf9szKJvcu/8Xe4PPunVBfpg1qIXX8PzpoihGaxL1W +hWVmcZHJSzImFkzJOSjiZx0kVJws5WcDJUk4e46SBk+WcuDlp5GQtJ6sZ2eiNH5XQRk+y9nyytilZ25 +qsbUnWfhf/HJBcZHzNbP3mAG2RyLpd9BkjUd8mzxr9TQuI2uFvshC1z/8OyiNqr/+dN1llp/+d37PKU +f+/vIyVmh7/bImU99PyD/3ECR5MyndHUyicX1E7n660rU+F01D+IfVuuHW8IIidsV7oozWGcDZoZD7l +DSjeFTjELofYxwZq342Hidp74EiEik0yfpMJq3BE9uAXEl9A8RWw8Ufj/WyJwIEbFr7u51iMufaLO+B +Vad/8BpDgX+V0OPYv4gqCnxvTD0P7v7H2zPTuPfjNqKBT8X0B4vekMg2OemYKiu94CmoOsja8jgu1Zm +vnFaVtLw7DuYokpe2PKThJ4M+TcLLXg4q2jfEYqFUynyq0yorXH29IV9oNIsSlTH+JSGv6yTi0kNXYg +RNGjg3HYn7Jj37GmovIBtyo0IbkZoo63oeG+2pcwnB5KFz9lKZqgZ9I6sVmQ7bw8BCYYwKcI6V9t/Iy +s8hW5RVmBjn9LDZuw5cvjekfYc+rrCcz/WxBl+I7BuqE2rbGvwQ91/YKY+86t+8hxfcW9J3bZ1GNIWd +eDErImYskeg8GbQpBUjKRQVrTE3bBnmvnRcXnAY6zitEpn1Wud+Zyad5Aywzaxlyy+GK2ogTb7NFs+Z +wtOiHknMlnzUdiEje17YBxahqIoEJ0CSO0/FOanhPUBnXKxp/0YKcXtsMYf5VIXtrKVuJNezk+MzGYw +uZ/gPp+3ynFdwoHr5PpCzjMbxUJs4FnL7MfuMUfsR+Fk8M5+7QLIH6HfpRgz14m93bF18qadclm1B2W +tAqaC7jbKd6VKEyV6eaXQTktoCetceUmj1ZuwsSEcg/heAhSoEEvTQfOgqDrZv9ckbzIJ5nAlCTd7q8 +iaTA01JrwIGrvC1l4IOMeZTFwws9Pqp6N6ae4dOI0UtVAHUbizPC8j6YV1AzahipC9pIwVTnBB6NZvI +1bFnrkhL67b0F9CcSEfmqe2myklcX6ZgtptmjdEB72kspiOj+D1JyhlWXUYszpIvZOOr9E3EdqAmR+C +Rt0gFSWFTbnKi8FaPnewso8Mqy8dMCt29QLfu+brkNlA4WOfNZ/oLBipvJSEHo7vQEW4M/QdXCiDTjM +AcdWUu/SzzVQtYum0goJfNQAmrIMTDJMYXUwFiO1EkmN3gU+p96eGDp6zJ/Ow5jUkINZUBuCbdwtcjd +x5lLQbt/th7ULMTeksb7puulzpPSg4vPjiPlltLmEOvNp5UwSuv0DLRZTU0k/6Y5ebz5oPpx+lvuB7w +kRA2cnrZNpdTF1ZRP1DHUV6V0W7bigdy2YVL2QroPcdUZp36sgTBAHyJoF0Eego3qp3vYYsT02qaaTV +C+ltuWoOLV38EAg4ef58I8DoL9tOS2torZ5WlAkpVVal0Bs80J6iXsHFXbq3aW0vI/OliDK0CaJPiLD +HplPFahnFO9/4mFYD6HLQJ6V6ESmtqdoGqj+FlokAD19RIdbN0faqSfDaohF9JR42LKyXUgHiIQJM2p +ghoY3/JiOMc2bih7TIcat690LexKdB3kDjoKIC6blYZoOzn4bematRH8tg2Ifuc2z6Lp+cqOVrgsTpS +DY9DW1h7mDM1kRN8oZZmE9msKUBm20FhNM+rb7Pt8pajeod1B1F0gpfEDNLKwyqpM8LVOEg9YpovLbg +NLeE/xCH50Br0IUh5cb3BNAQdKzB8W7s6IKhHoM9Dg2oAXSQBZ5RiJzjeD/PdqBhQyG4Jka1r71wGzU +SC0yD3f9LNyFq9jSmU+loMc4G7TzOncuWqiFtmGypy9g8tc75UmVBsLqhLWHnA0YmqO/oW2b2LDnRw1 +7ng1j7W1beCyRSf6IR3zxI3gE66GVq6lzrRaMkcrVWleMONdG7/IF1BzqlClIqlxLnKunV86b7qxiBk +yHk/UfkLBgUaAAS9nO1eOdaxXfLRiT05iR7TK1NOLxT2c85DCEqqm1RnHfuX16dx7seOEcSI7PAre/R +USPmuYpmiCQQfdfIr8C2ZgFDOEouGakDF+/w9dPMcr0a2EPN1/cv2W2mhpwJDYT4oObUDv0PoxtCSfj +uTNLShr7+5/5KE8CHYWE9JGBG/WJJHsExnHPse98YsPMf3pU8XVwlOFv3S4w5D4ahjC40vpDLAaAg2f +cza+MwiDbRmGQVxMYBOHH0p+RZfN2xtL6Gnb1ymDr9s2/Z8OMEFLaW19n7ZnpnbSikda6lbe7deZg8G +sdyPPdARI87+3gWeoGVLEG8v5zbyQOA1tE4Zxspbgncu4ntGqYsFVGwvC2pQ3GPAn+FIAnG87tzTC8G +Z4WWNpTYJkf4blzHLuNMOMyfGwBfBxPKxaOjy0cH1s4PrZwfGzh+NjC8bGF42MLx8cWjo8tHB9bOD62 +cHxs4fjYwvGxheNjC8fHFo6PLRwfe5L42JPEx54kPvYk8bEnCak8SXyc9ICRC4MB3GYnrCt8DlPZQXP +Ad07x3stDPllv8sWUrXjgMRV+dDNLdtswCUKK9g4zVzGwXFhkCv8AZiOtmCfBNb0fs2TLTOcA0/F8En +Jw0zm46RzcdA5uOgc3nYObzsFN5+Cmc3DTObjpHNx0Dm46Bzedg5vOwU3n4KZzcNM5uOlak6ZrTZquN +Wm61qTpklgi1Jo0XWvCdKQ/OpFkmcLvwlIgzITfAWoOaAcMiXtYbRWcGN85912UGQMtdxRMQ1u3x988 +wIE3w7rIrxO1ke0gJ8kx6pTofDlnnz6NbkZV6DacPOdIwSfKrE/YlRpM7vcyCMQwCogR6yX9NnaFYb9 +5gULGpBpGVrNLxMg9omh8Qkhnx4jaTyE2zZLZNalgXdhdTRdlAYSgjkz/fJHClbtWUv7QcyJ6LojHit +7fgWdsZtZDVO1Xf6kFZVIhFQKiP9kUuHSTpWSSunzuY4C96Ho3nSPlBOmiRvEIWdSonRTIerdeR2szy +TwT+zqCi8zqh4PsyIxLv8IywgRSeovki6kTQlaO+awsWGmhNAzTmYV1Btcj/spByJxKe0Ymqem34XeJ +TNKl9f7GfE554+CJXlgeIAPF3v8uiy72feOfMaRbZcxhzxh2etyTSYsE8tjqtZhDfSt6qzkQvdkbUMf +F29LA5NbL17xly5aErrmJO3ovoCC/Fl6JN9Ww35ZF7H3RtJCNHQdabeHXKzpbhqip7UJZF+Tmr6jaS7 +e+WAtHSzwb+5xdsgwAReg4vHexKX2HFG8U4ppn8HRzumcQMsAxeHsiZKsSRG1NkaBO5qCX1hoAiVZn0 +tqMHKC510bO3kMKyQc5pFPrvS3YayS2ElAV5/MMBpSNxdB10DZXCNmwJkSKIEXCsbiQpvjq8fK2zkCd +GVMBb5eWwHJsQVqaTatzyUc5x8RgwUEAvY7DpHQKLS1DzLNeptoZZpZ+yM8GCEqHINnBXFEd6cw5qZ8 +MjgHYrd///CRmPYMJoPVne+7GU3KiYL/i7CkYUpyn2ce0u2+C2TejNL80vtBRpt7r96YyLsnE/lmT05 +nTg5gBcxq7S0rI0YocYk/0Fu18RvMNhL1CsBMXSOR7cjAyWUQsGCWODPAm4jCEHOyfAZBp9LAzm4LMG +cBk3iV4b3iPCRuitcaCT8j3Sls5NpaW5XST0jLSlXPBdXdOiOxhK15rkv1ePdOPJf8w+n5DJl6eDBHM +mUD1gOFrpRAzEfOV9TI5n9Olnb+hqYYM0AeIy0Cqjf65NxR0uQDZyFowGtXrKyVSmkE+Di9JuUjBIF6 +0qmFfyshHU5ulgmNK279DU853qNswYbuRc1KLZTTfWfCB4hyE6wLoKHaNUi90I2jL1BfXS9SWBXtLPs +gJoa+5pxSW5qrg1OzPJLTCoK8w6m2ZKCJxhyI3ojGywfuITCuM4iCpMFJbSc558DC1iJ+qNWWQ6W/UY +2051K5jNQlqerz76dkd2cZd1yYz//vTT+h/hRUZivc03o4gPFXIiu8NaKYUVS0sLVO0F+E18j70X3SO +JBEQicj8G2FnpBFGXTIA3NhfLIv8EOCVMlJ6+SCQQmxlMAA1i9x9JSllXEoZtRUTmyWSimjl9KhRz2W +JzAKeoV6lbbIOoTBLcObjnqF7SHeTwerZf8IzlNs8QCrd7+FpPPFlBWl2h5wsAZJhz1B6k2GWZ/+AZ0 +iGQbWNSvsR8ODSBrFbG5SUtn3As6mbxY0TvSXE1ggeckpEO1rYJyJwgvIzfBMGU5SN/4rIoFr2HXdb5 +yDIb5QQ5dv7IWmo/YrXjbe707Re8jtECF8Ewle60p5vDn4hp39P6iUyRKrlOXCBJAfVo9R+RgsMcQvh +BJGT+BGnusx3XPGeuwDXGRlnKAHfhgkK4MpoID2K9l+o1WojbcwoGFC09/EAD08t7y/4TrEdw1ulK5u +uyc0ZKBhUHIMFJxXnhZwLpLpM78oEkK6XmeNhRoHMbbwBJNmyRXC07AKbyaUnNhOLjylwxqL3FNpygY +747gTqMOgdRj3cq9eOpKUjGUwIJA0iiuuN+vUSgTPAF2GGRUTwAw7fwkFd8/y4t0CUxKAamXwBvdR3H +BRXCyPihcTQNXMFdSoMSmV825WN3+DV/eMw/pss8tfB5LAqQfE+DlzagVyeZRzQvBlmwG83H8LzIzw3 +gfu9Cc+30HdjCsO1IStHUlaOsqwcSVk5yrIyeNVRJGDSkKyCZHmw6QGAEmdDIjtoPLtBck1JIMnaKkC +RU1ZB7Nw1CVEkoJ8Hce8AEFQUEUe+NqhTjUlAgP9vE6K3aoOiehOacC3yODIh0o/DbVkMr+ZzcP9JAK +PaKvbxUGkvN2iDv2xeCfCKHNY+F7XDuu6IFhx/4nNSm0crinyH3PkdqFthbX5zCanNxWnvKKid6boFY +AzOlDoJv5PkYTUtManblISOFg5Xq8RQayK0IrJDNeJad+DmRftAKfyYb5e11RDixlMLk75zIqZ7uS7y +6kRmZJ7syTE/TG7/73aONiaqKzt35s044NT3bKeILa1Y0TCtXYXS1SnogjoD/WBcU0C0ypSFGaHlQ+d +DpCms+kC5Pl+6abrZZtNNs9km22Sb0mZdtcZYRwz40bgIREfqWlxJO+OQFiEpqCuz59z3wEGb1GT/7I ++5yXvvzH333XveOeeer3vfXJZKUiVHuvWM9wmxuUrjmyOXVEn2InhOKrwcug7SMNmAFz+CX/KegUQ0g +EHZXkVtffKeyxg927qlMiG7zMzv3QltFpT4wInBVE9l4Kqe3JBfWbdjBebevPNQ9RikZk5+ldAStPTg +8TwW+M6YcBHEM6KDO/RE4PpM/tBcvr3XcpEX76C2SDqMkaQlGAjpSdBNidScKudHwaPS6eyLJUcaLRz +O6AEyz5AcydAhAZdt/m3JXgnui+So6b122MjsaVug9zrpB8eS5Q7EppCB34s+T7VtCDcekmG5pXRwFj +PvkkFBeJGCMFgbh0DH5G2ENghSA2BtmkUnMId7BiwR4A2WLxAIz5SahvlDv+Lb/2k5432UzvqCoX0zE +NaTm0dwzMgjllPUgLmucXgXS1dGjxsibduwmxrJ1wm94ijZdRuT8PzuKpDo8PMAggdhANpQfHlLh5vO +lZKArrtusVymaCMslUyTgHKYLxyVtxLqFSQvoMgZ6BUkbRc8Hp6HChL4etMSeNHa1aDTORYfxpEyer5 +UiDGsAfKVIPkSadOgbFpOesB3nX+CFg+Q89XFCoVG5P0vMQoVDqNB3zXBiPRU4FsjXSat56S1gryBUK +cgOZFEMxUCrUcCrefoDSTQZiDQ43z7WSCQGcz4rCOMRP2B63rS/zmJPGo5R5cx804vAdksZ5eedtN+I +Kubzmk5rTi/a048By5q8SDp4Q9eiiEaKPjiEL97JVBOsqeCsaIOkNzkthQCImwtQUVakga0E2/q+L27 +yVTAFu5AR7CZ4w994BjHfroDoZl8e4elixdn4m/DdPFrYa3E5koD/weMQeU1uTOovVKyb6L21yV7KbV +vQkrbS9UM0w2puDtUgEsm9ipx3CAXTLDpyq8+BZHBEWXJZSgwMAPl79dBnSJ/K3dFGW3TgIN0pVTGuH +sDubtNkLYx7qLx6qAbuIgebtMbII/fz4Qh+UMavn3YMuqdQzPouS8Z6l2BH/Ski4k9kHiMWuEx2hn4X +m8ZpucyvnbTLiaEwPOEfnGEiLdy+d1bgI7yquPiuK6hhtqLwiKoMPDHk2KFUSHYNIlc8KASeYfZ7gR+ +7xakZuAOdVSGrUp26BoRz2ppWRENgCIdf4jf+yE0eZEWhnqvQa3iHXeTILUNZpxmBARCosaxgdwKU6R +bpJDOzoF/C2h4ptAwJwEaA8aEbmpH0bQD599zBDGGGGVE5NtHLMPep+hzCt+7ke/dwPeXsQ249zAzro +BhjYA5p9l0NYcCo7eccNP3lBaFQ6rfQlYXYTRQ9DChV/KyC0E4X8VpbdVNyZugjZU37xv3yxq2AALbK +wMDeoIJfXl/QSnUTdL7vQeldx0j8y0kc4/2p1ipjnSXlY0P2vWr0PAIWl3LGXDDi4dXqGrhru7EJGMz +hNSoFvhpevN8iBoAlzF6ITAxT95URuZ3kgu0gQMlUIbUW+X/NHCNA1hldUSXB2OA/jk/TUPDm4xIHkE +uI3SjIG2EcbKeQ/yg3ynLcgYoXnIU7dUNFH6g+ahlzDuPZtxD83XYBph8DqgdscAUIRBd3yUUu81uTr +LZXoQ8Rr3SshmqwhtRBTVzCmPRlCFvK+7lLYlVIZoEUCFg8VnSPJlMCUj6dAFZdr+ApLMwojT8heZ+p +s4FAoY/0fwUt9Oncxvo+ACcZnREtHKno/X4/WjlMrQ2RebdPzS7BUrS8fpdhQmzl+lM6iiaplmNQBZq +Zko0GNKpRow5J1JxX+glTCmdbjnus4KKzy5J53f7xoD0hs/JCmCBpkEVQUUFjKEKUM23OUlRAPkcfzA +w6aVObYdAXbLNtPS4VGy0XuD37MIF6nXJ29+WGo3SBgG3REBYW4A4Z1puW0f51VfoiKU/u8kI5o0+As +Y1zyyvjz5TPDR2wTrC54/Y6Whktj17m1k1YCPQER2WZmOOq3Mfl9kGhuKW/BaImXEf6P6moTZuzmr/O +Wmd8TNiXWcCw7XOxHJk0zdVmCEEkkjMZCNSIwcIyt4pK5H1pDIJGpF1IMQdgQhIZCbffsXyjTeLzlW4 +NoxcA/2v7cqr0iqrB4EBTi7ScnIeB9aoyzbAwoLPUZKCynTAZyydbppJL0Ajyaoq3YXQHPWuVdrASXk +CrsquEyREn9PGGCzwPOGVAz8AMnYt3z5uue1dQq2KM3ACnQHQpiWITuJddA4YODTaCi6RRRA/zUYzhs +0toJ7t2By/HdnViVsRoB1zCkbAi2EujjRblfTFKOmzca11qcJNafOQ/BqhGwRpgwmzbOi5fGtMOEeXA +qasmS3EH+J20F6kXnvQcgWjtkE69xjDF+0o6VSM62OWfmnzIH0ElANY30sqcmhhO6ETN83aQaIJ34hj +hI4/YxtQjCzJqxJPmqdxNgWXpJsEsTlV4wPZp7dClDCnHyr4Vj+ZTOI1c4RvwaVL2Z5KbUNSWRq4YLi +02205Ze3wGHHF+h/MPg5L+WzXk1ySjinJojSOnMLg4C/ML0kj+YKyH8qEldcjmNPkxHHiM+N6DscG39 +lshMHHkZTrTRI8gNle1cUJvTIdpx62rCVAAEwdadAW3N58QZdvAgwnE8VqkuYpA2sJSMs5MyFcvwjvz +e9+F6fceV5sZatbJmo3U0eylG+m9hTZng5+PYVKp9CVb8b8VgzqSxTUoUcc2GGma03gA1IYwJFC15rh +lRqs8L4KAkOqexYKySrmfgPeBGIizR/VTNLcrxc7OckgnkyZziYlKw7urtnSgW/nSLVe4lddYoR2pKO +VUsPxHD2mwgVLWSr0D1OIYWCU1zyZfncpMvSEHgO16UPkoo4o7MZE8VLq/yojKlo5vvU8YZtaLDdY8q +MDf0EIViocxkAY2gT+QwtP8S172Hw5wLKHam43JNthRp+U7TpqOy7btdR2VLYTajusPiqblu0zJe68O +rHzZohvteIMgpChyzbMMtY3dQ05L/ZeE6/NgJB2DttzE/Q+KUF/3HIJ/JuD++f+qMdQax+nBa3M5UT9 +CfKmx0kYY3y6eVheswxGH0BlgLvzcqJ8K8ubFB6WTVZaeBmmXqKyulZ4lNUEWc1VY0JAAnS55RBy8gd +TQJMICWeP3QaMLRPw5s9sNZFRmHKtp/16qXgosgYiGJZNbzEiOoEB3ZFkZgS/wJSJJcD0Qe93ayNcxm +0y2naeBntDgO5ITtT3vQSPFg/hyqntcluKVrIF23K0aLwEyd/XxmXuuoZKhAbHgglQmSz5B6CSnqXj8 +m85yf9VJAGYKW+CFuP52U2n+N1/m4hGIzNULiAtkYgGICLdfACZVniAFgiMvWSCgqbpJjtM4sncSSEA +a4SbHZGDQ1pcwvIZ9hUa2wqMGNFjA5aD2Nlk4vy/YKuCHEuNc9MS5YJySVUuaUoC4a6M5TDheA1mkNh +k1L79hJTLydJnGIio0vs7rbJ4podr6IcL0Wio7GI0qiamcdsl2/qVNwhTz9aHDd9AlSRSgWUKumyX2c +CgkDWs2ozVg122kFI9hDhnHD+GSwm6v6/AH6cjBrTwtgFrwJ8piVgH88Skdqmu93LKei/yMoQpRhAsd +SjZFlSmVR9ivwNwxQAntAIf8a9Q+hOPl6pdmn+6ywY4Z4MQtf6JYRlSqNYa5VvKQe7EqNa/HHNJUzty +MFjHvaWyeEw31SOJ3Ru3EH3DNPQN2VuKnaVsLyoqghgslNFvatjo/gWYeupj6+r+OWKU+B9W3+rpQUz +RhT9k9pHVJA/iejpgFEPJSeTe1/wccm1TLQL3t0DfPuSeXDuKPHsPCQ/d/wRbhc9SM1U5TJqjC/Gr2e +jCFHZOZec0dk5n58XsvJSds9h5OTvnsHMuO69h5wJ2fgXOVdhl+KU+cPY0VdhxeKUCY/fhTAXGQcKLF +BiHCj+mwDhgeJYC47BhrQLj4OEfexmMKISvKzAiEr6iwIhOuEeBEalwpwIjauEjCowIhj9lsPo9cGNN +pbO2/E2Xs9JVU97ogh/1lf4al7O6rtpXXV5T/ZbL46wor6nxxravr3T6XJ5ap9tfV+HVbNioubPsrdK +Nmmefxa/NNQVwmp+oeSFVs8q/ZX4i+56V44xGoyAIqampubm5GqLV6qAQ9RtZzT1XZD9+H5+lfntqXa +ncQ1jHVpeJRoj9qlcYeMcIx717yPEb9/fh+AiOz+A4CscpOPrgGIBjCI5xOLi10AUcKXCkr43vvY+Xe +ImXeImXeImXeImXeImXeImXePl/LH0Lnv43MRlyllf+pi/pX+Sidvm2t1/+hLQ9tLbs92TBBw9/TPp1 +f9VVtHLzV2pwxQU3bK2ylesxWcgnChr8XNykwvjRuFmF8XPwVMw5EIH9gVWWWo+flLNFLvWvxV6Pgd0 +xcFMM3BoD74+B342B/xgD/zkG/jgG/jQGPhgDn46Bz8fAl2LgqzHw9Rh4JAbGNBl+9IL/h4Y0eUij/J +cZr1H+wwvXs/DbVqQRLkckwYF599lwYK4Hl8Jm/A/9YHE6SvM8WyrU63aN0+nc6qnfUlde6wK4tsrp2 +uGq8PtczipXeaXLo3G66rZXe+rrsOGbrsbaLR5nZUO5x53p9Li2VHt9Lo/T66rwVdfXebGJ147/QOer +8sDTLNHl9NT7fdV10Hm5z7Wj2gcdejx19XBhP9wVNfVeuOne6vdBB258jl2wrsFT7YNrbXlF1T191Zb +X1NTDS9S6aitqtyrXrY3sWlu/3cUArwv69/o82MBTXul5YcmS53+ZkfV8VmZ8VsdLvMRLvPx8+S8PzQ +WAAFoAAA== +/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4Fn/HkJdADweiKUCtAHJSsuY4Z2yMys5o8xm6NANjJaLd9Je +uzPe3CPGyeEsOOn0n54/ntu5saYNSd2BLMsLKUTYclNJ7tTrqjHRTkSQbw0cPQqf1yF/3PuH3olaHnJt +bIAuDJfFDGih2/s3duWBbHAsVpnhC/AtTvipjEHx+dTsX9dtgAy6QHwYNVP++d6vrnnxPX/q+gUugFwR +SC017rBvquqlXlAw65oSGjKcLD8j+Q0IJzrhiGuGfwUO2xyfCjKjARYpoVYbN3yF9BanN/IvQxxpSfwj +MlWFHgRkIz3CjInOUxv9dN4RTC7fcoxWa5GAjKCGjUtEIIYFsekq1bs1Ab1Ens/nWw/fpb/2IhO5fPu3 +QV6p6mDC0Y6sumRXhcPA5IwDHlwiP6EjtojePYQ26FDeSbRKiQ3vgMeIEHiYlCvzKf1H7DRE6YF4UB7v +Rpnt4KdQQ+tlbgSp5qd+Sp/MzBaYsY0ChBl2Wnssg0a65yP8/25/hRHaWEezzw3ZGN+fosVcH1Dfso6E +YYDdRS8Qzwhm7y6VjViJngFIfUtArBLFY3hlSMcfq/1Pyjf5qCiU0+NA1SMflfiy5BtveMkMQvdrK0qX +3dnsL00I21gi6CcmLzieFKf53e8YBOmBdhkq6cIt0cNtjrGlYf2zj13M1aLBKdSGNVpHqPwdbR3nWGNb +znHNXbTE934PP6tgQeeAsurSlT6a0yayqiWeY476ge+tRFjlyLrzK5S+b8E5pTfBNjIKvi4i4K+YEB5V +cA0pFRJX3mOZQxM3Cx25sffavAZPB+SB2fyrah44svqNWFz8tLECcOYOoDpvxlCEnbxtrt44H1dFmRhw +o4aF1kuZi9Xulz+2qnjxI1ovlI+3UhhnhHL9eUIx1DBe2nc4Iefv4CiaxvCincy7qqpqX3H7eY5d/Jkr +7K5uLourbB3yzvdImA6sU4vg0mFiCvL9qv2B+qeOWFpc/FQFgzUepdYD8/bjtOcWm4HJ36FGNZ4fmuOd +eYlg349iAKUEqpeaN+89XeYCGI/RxbZ3wp+pEegVd6bqRwxqK4B19U0FWqgSWMgAY6eQyFXnfE5vbt1Y +cCWWMcwiUy3uXKpyzGejc9xtcM6fluSDSPCiLHxnril1L8irRPRO8axKYbGRP3JvddjbV2YyY04obtgl ++ZcKioc17QuNLjkEQlSaJfAul81NUFjCIqRhGU08AGYxFjJr11cljAmU5oVtadMvayTQZ/CEfXc/iXQJ +okC0v8GNYkJeOxzvqayhqL+i4wBEgvhGcn4NBeaPxfsK/KNGfZz5HaEg2mFIzPFCWb6+VQgUT9PZjbcY +7v7+s24QKFNFGI/2RW4BDDxau3Tcv+MprCdZKnxPep3Mq8vF3VqHLwxmZ39b0Z5f+NPgDOxuLqSdQ7Z1 +L/febGOpRO/QKUyEduPb90aqxlNTVhGeepfYGJ6j8XgJuBax0m2lZgPDQ3/Iu8n1AswW7PCNE0vzu7Ox +5QEGVovRp5IeVwFM6nKoir0fUCL7j8FcUuGkeNWmrbU1IxpL/aAZGXwVuaB//1w6umxysxkJxfLGpmbp +1MpDrJoMMnkOj0q71WuslegiREhKuplHVWcZjitZ/F3kczhcfAensNUuiLAl5rp0yATDyCs69acgsR+3 +BQEXW4r6a2rOpvWs78gadAlPOxEqCgTBVE6BUsMzLXIZH0ybKHckMYySx5amVzNRJwER7/kduASSb0JC +YF6FubHGY/q4jnGHA03wziA9ObjXTvVRu0R8aXSLzgbtyNKVKd84xeo9zca5EuWttPcRuEAxOubvzj2B +r/XvFt8CHYiPem0nu1DB6bzbjycsKfKHTRQwaF2wAzVhjztfQH1LkI2++iYXoF3HCR6rSv+00G4mmm5D +jCfunzxZYpg56I3Nwocnsxbt/pCxZK5YTxCMO+HkvjJLES2lP6kkX1cNIRgK6piZ2117iTXvjnxMtTgi +pnunM4Ye4bXXtZprO6W71LySIr4m0ZQxID5nLfBMGu9Bj3VIlAX3xmkdFwO8rPRVLlj24UxaWuevgEPh +ygSF13muUlkwB64YSq/bHJAhdf51IkDO+b3YuJBvUBsguFuV+ZhQ9D5bWKmVvUd1HZwqWAgd3C3L4Mrr +TMDRC3c8EgwougkKTm2CjtWRGlvuz2zjnAsTWpmbl49XgXj4CR7tOnED+JAja8QttBH1MfToQ04Ezfez +8mNq+5uykr8y7vGvV/w4YNYa41IFvUJgxuDn9aOXvv/qh68JfTS+TnRf8T0tDOgS+Imr/gi7q4l/PrAI +0RDAYIQl6GzjBJQ2LoqgJUQVaLF6qQij1+O5O2ITw2B2Vq0w+FTUjJny2+j1gKvsYreYlj6Gu7IrsrMe +sB1B/MIA65ISmgKNvPcCXI0MYMMvceMEPLrpvx3/qoVc6EqP01zKtAMH7AcOdeHj3ghvVaJcCDSfZXoj +Xrs1p5sll2vcxyrs1e6Ne0OhTjo+E9wf2ivLApfU5ZoJ+yWu7VLTLAggv6VgHo/gnsqWhUAC/x3nenAA +kjVOdoyUrjOkaP0rJlVB71jhKu7heaAKlBmT7hVw6PC5Jd3WwcumHK0mqTSekL2kMDjCs9GcHAZvT+Ec +WkzXYTMr9ej6C3GOa+AmHFK3YZaRvVA46Bhw0J8XTMLqI38Y+yytaWb2SDppzBF9WM4UsEeAu1iXkjkh +Wp60VEcSwy004DW4+sQr4/DmKjAW0j6twTYYfiEpesSn788iTRgFuI1jPfEqK8Oqv1gWD1zTggEIsdr2 +eoni1X1LqzAasgPBrvWJtn9YHPVnV3lMp5mqSPLyDZm1uKwledV3o3QAI/PjyORym+9S4dt6ncNk/uI0 +cy3gy6zZnKokeDtCcWJnoeyf1Yy8od3k9Zhqjp2g6JuhRcBEfXXSNlzPIcTzg7dUL0cF4K57R7d+RYqC +yWCvs+wuD+cG3WUGdLEz32Tc2gtHwcAeeMuCURFNnZDN0mPkHNWzSXOI/dtOzRTYM/G9aTnRu7J5Y4uv +y3EJwaa0PTJJ2I2GgQ6JBUeZJv25Zenb1TYMLk10UBr2Kuy9ez74h20yX9tkVXfSc9g/vTLUFMCXFGCf +/HrlJ6f4XBQNa9tpJUe5yvyI7De+K6/73KqKfW08wPPJkoinlCNOyyWvRLw94JwGS9YA5JiFVbqXgpmi +5RdwpSQ8zRFVTm6lzPiR3yTVpyqz2oJWqLKrGddPxz4HK3jeG6D6PWH2mDaCqSceEMz/SKJ5DGrO45Pv +kFC26lOrko4UiFDvfjsnGDD7OuYUcACdtcPeIfrNdiqz/wT9KQ/yNZR2VYIPWOxcsRCSyTQVUj3wTuPO +Nooh4gAXlgVJSvV5efTXe/mUFbFisxet/fAQYdHQmH0QS6GdzWamXkyY4gDYsG6JZZ/G2Yjusqbj/1UB +uZW616MQ5oLxTPG6dJrzfOUkukDI//SSduKpINv4ZTMFdx9qdcc3+V9f9cD5Ycb63fkJbJ8XTUIfl30M +cHOcx+2YIKGtsyYpRMl3+4V7/Gc6S/de14RV8R/HkiMq+10a51JNupa8jHVye66Ga0W19EY/md6Z3rqz +ZZgAJLgl+/KinLCSvjRNBVzMUv8JGSAMcFCxkAb1oQNhz3A2G6gpaU6pRKqvLb+zJc+CNgUDc2017UV2 +X39LnMiP+GqnC+ucgZlb3HM5k3l1xX9VpfKr5TFLNA7gZT38GePtlaMDQ/9GEKBPndM1Xm1KeWB0TYTP +659NVAkOLDiDi0dGtmzELZiGVYYUS2p+mtk77VprwgmRPvqHzr76Mk+U6T1+YXIp3OvfuG/ue2JHeNIn +6LLYcVhpByaWHowUxmg3vbW7Fu1jv7Ink6wpSbdLRLCixP7+upKbLj/sRWnz4QU9Hr2SVoqK/guvXQ+b +7FJFfHQZL87p77gaduYI0BaxPVrf+hOYk/+GTZnQXtd3aLEbifrm4jklxzRwzCHYuiZKJMZy0P4BzqCb +K0tnXscSRN4V7QNinm+O+62cwzT8zvReuPR9hZ4g2j8J70NFhsR/g7krnibrt8OY4YL2QjbY5Y6Atscj +nmrWvHrxd7b9+fxMTgT89eftXQmQXynnOGtNPHBKW+DQSu/hsxZC1TAE6fBjadbwMRe+U8As1clN73rO +svWHhQa3xFii69Y8m7+1BnN3wsGw+8y97n2/HzX52NfyQMR5coRCTIFoiEhtJW6pqYJXCSuuVJCSGpR+ +WlI2s9oSUr8wbcVL2ujSBGknIvgF+sRYzH3+Pcpxq5Ty8jbwEDIh9lt5qh2/kj6uSc23gxFOBAIdrY47 +8y7t/ewXGFDf/MsHbuj2sez9CT/WG6clYltBOtpPnmBbbcIF1oFx9gKQUujW4I37T6GUL517x+bvN9dF +LBgbVSluPTrqqShkOwEUIQ7ufYze09/X6B+lqhYXXA3ptXGfbQIuBozZeUz/2ew9gj7QQQ5IRSAZOAE0 +In/qjrMO6Mopj0EagscUiByVN3wOVtn7zH17tPBHUJt2ilTy+vriHa9cxzZ/w4DzutDCuxU0cgUtwP6b +6Mm0ZGniGE3PMbjgAMTZQqKrgFzKzm3aIE7hI03OUwc+HR6TtYy72zLgI5S829Fky0/+lc98VChKnOjo +Rb33Fq3fWRHCR4XpvM00mKgeoUqx38kRqYfuvo1ZtFt+u3gFR5MMKqgfiXSh8gMbn59vKoTf8jmELEWV +7AFoxyZJjLuj5HObwpJ4nN2zwevglUxtXTellcCExpaKXv6Ym+cXtycdLd96w1x3Q/+W03NeuNXugCjI ++0E1aBG/Dwc1/3B67lxjk6aY88RgxkfgnHgiwr3OdOeUlcogbDR+N84nOmeOi8TVRerS+z0Pcs5Hve81 +2NskZqi0QVLdW28GiQHtodfLG+RnR+t3PyRNIYZ5wHzd4TgR/sEE40sCHb9LpemKpRG2wifooev/1eR0 +Pq5areOWJzCaP7Kj0zEEGVuOXo6Pk6JBsA5dYic/TR1kBtw8WSO7rFxVfZHdbr/tcCHnb0U7MbuaZN/Z +gZd/NlzQvktLk3TThcDiCQYaa8rL5JwJspATXEPFy87H93w//8ZYjEgvXdsT2QntlaMa1ATz+Q6XBHFu +AsBgs90jYQtFndXBToD2aduSn3Cm2OfvNKQaCuohNIxIuA5L3pkhbK77TM72WS6407J2wgn98ipvLYU6 +5NhwcIXqONCI9lI8MdpaEhCWevIj5otQGsYX6YUqBvd91na0HoWrKv0UCZ5TGhZhuQqir3ISdId/INxb +a4byXG0CuVNXnGptNSgEcqkfYvzzJcrq2VSZyFcxH4hvT22+iajMmr9TFl95X3peYJdF5UuHKXmCL2LA +fZJQJcuRc1Fs3shTPQ1Icbz84B0LP0S7WfQN87ph5o/U0Ov+tTcviIwpdwmonpSwY3C9wDTAq1bjZhBY +hqcUbuI4pvmxxUMhvQfIGY7rtECqzmdq5RbkUT8C0rx7JMG/WFqL1Pk9faRDRHvjXsZwDOb1v01x3mUG +7jGrCg0A8zxT8KnvqjFuTBr5XyC3wgeCLSeBLG8WpGRgHCRRjo+WBA4VvBiC4qgLLHYROhflteDmKKVn +qUAgL+TYfxv22cNeEruRVcuz5mrhIKdGsyMuI7wPlhgp69/s0kwBZ+KkukPUXa92qQbzmiKvfvur/BLx +bh+L25H2DsrwiYafzPgga0ivDF7Qe9IPZo6nTBrXyz0dmAgzT0HLIHI7FnUd0mlX7fkfkXlSebtQzOJz +5bcKbVL8ZZSuh42aerAn1BLmi7GiKHpDq/xuhXM7yeCBqPutYp8slghgU0ahh9jwiUVx3JXGUH6DTWnm +8vJbXhtf/Ybjq3ibElDQwtAvkQpL/IuT5pnVos3c3B7ray9CW6PqAg2obBcjreNoshlDjVL2Osnmm5wv +cf/B+9TfV+qCXqM/r3XblImKcB0a/4hvq7LMwV+OxyMOUTnYPp0yeU7kwBT42gBKimHCLNYIVbRSEKnN +yLpCVumw8TrpOE6O4gETzIkSSLoDLwEldveND5Vg93RByhF94Z+TEh+nnKEnSN2fwnJBxK4nR+nvCyun +CYlQwM4MNCIXLf7x0XBEkBa4og+B9EdOdIiF8yCkcKJEWiVfO7ftpOyTkboo4g8DYuOZBZIEodzHsrDw +TvLzfJxiEQdSvXmjiBK0GDE4JOtq3Hfkdmiknb3/RyBXI1ZgwULu8Ic+NLMIeYjuMOvN1lsNLmGNfekl +NtaDB7y1iYVfCMtD7iKOJgi9MHAp0YdYacrh8bejLQXtltlP6CoKKzqqHxVBs6s4W7Tzf19n4xp9RPuo +xAgfNToz+pZAG/tPWglviGHd/jKNKmNz2cWLiFnVYYkeoX48W8e6c3Kp6yAudU9wAeC+NF4J3WpXeOUG +5//LVgGf/suzAzqkJt4P4oVBH1eXKtcfcWFlVKbmGYDrjGnXfGum7TgX1d83HYq1q1m3ZMUMk7o5InnV +4BdfFdmh2Cs69Yb0Bbl+Uwg542kN9kLhRBSVAuKdjTS+UbkEtk/Y/uKoX91LhOp4A6SSIVORcM/EZxyR ++L0BctAazUoUTPvPmdPwhtEDQ4OlbTpiBZVmmCB8dE5i+P9gctAqV1q9gXdTH/zy36xoD2UVq5NyTAlv +Wm7sWqrLVUdKewCWsZ6G2RNef+g07qoLlun5mWucvu9KDRkJ0zQsdQ7+HNcwQoeYU3Ns33T8IGLy9CX8 +liIPE2NkItiHgYGO9afNkmt3Bb4mWj1937LAk6UOjyU9K3SQFBHRCDUf5BocztwT2YJPSKYO1ZS/2Ow1 +W7mj2LyZ/mObyoidqEH5rrX2kh7ATB1GscaUBi9qXJiM/ePDYwPcq15P16Zwo1lVPF/X0k3+XKQOeRbu +W7VGGzPv1OQ+j0wASbUq3S9/3j4B1g4s08f0cAvnm5by6keBPODX/htHuWASARtQvcJlFa6NyDewiogE +t2JGvi6+AzDJ071ES2gcbtVjCEFV0FROII1ahnkVYgybH2CrLEM1zJRG0tYebd4Kjd568fTMaEDwlPKP +oG8xond+bCi2BWwGS29LK0zt1Y3U/JOyrWKjy06B+adWx3vDRI5PERg8bdBBYBJgdTp16cnre2Ui/PNm +zVS0+41AIjZxXeciFHOXQvsGWdNDpp3b7T1r0xxK3qCQfl5vxK24hftpk4neCPVN0oP8fsncr8MAq0M4 +zZqClAGYr7XEBCyqd7an+AT5TTaXdfxs4oKJFVFpPTLyEoB7AVlJa44E+F7ojNY3iThtSKOyusrzbM5I +6KMivoNJ/JIxy6MZ6E17ulIn4oTl64dU4f4O50B+K3SjkQGNvkq/Xu9L+E9nNO9nw/UgmVGFZDxujrbk +gECnVqaamiOldHqWxA2im+2JB1oXhJmIH+ksook0hebaq1SfmkCFtMNlMx7qxhuNssfirqXrkLJAyPW9 +9WocVqx9OPtp1MB4wxIDS7bCUccssqyusXAwTySQSyekZyWNZmhgna9wDJ5MQNZKMKDG+LTLUBG1g6+R +u2EyRsB6NZTTcQtxBK5wcG2JSEKZlu367G+9CevvvKLJNI1MMAdFeeSJAw9OcvXSxBGjsq1XIUGYqs+M +4VZQOaURbCVXj+tP2fWQdzSru7gauYFf5ZWfmj5YMO6Pxpw18aI3ci5509VCA/uERcvzYPQEGcyBbPAq +jLrj2jZdktuOZkYwC0rctHO2kJ1GXXyJnoNhQk2FWwmYA8pYjaN2HRRg7nYZG63BkpwnYlZxvBqGGv3+ +cZlv7vhOUMmqAnZ5HkvjYioBQYHkfnwYSiJ7Zt1zQj6JdlDmckFeUl1R8zTh5L9jK8fpcletmxUKcC8A +RLtk3AVXz7BSYlfXmfqZnZ/lCZK7kNNi/1hV0Aavlyf5TCKuoAXkvpG2siQ2bMe6c9g+JnH1QLTjBAUl +kLzuBLrzkQmSsIfHOdxtNsIvz8fDfWunRn0u5oKs8/55msDzUugWLkoo8gYeDST0Q7byiefmwKixcfEy +igUU10dy6xQG8gw6cMtg6DY8cQz1ux0rdMFuvfp10kfVebZDkAbFXpew7EZaGVi02LtXC29I2BisSSeX +BM9MH2hgi4CA8qyU5wi4fNz35Y5giVI1drg+o9VtzHs3q8UafsgiF/uNyCUcYv4MRn1zw/bhfp44U+Js +bTFdshisX2m1Ld0EL5Ev1Z679qOyvJrEoflj7JGCuAf/k2bQpipn3uyoQcUHIDBvr6jrXcLTdQBnfO/F +VTZdpIn3jfpuX5taIOCG9c1EEwHbSrQPtxLlx85V+/ShZrj8FL07cB1x6vzaNVCD/Y9sIHKdi6ZgHhwB +B9oWC9/hV59TREfiLuNzaO4ljOUz9gpxM06fTlP71qETRkiIV30aKiWDppD5P9MxU0zXgSReFP3T2ylO +tMwgfO/CgWgkGXkd4+XAd3KxNRkU38ol2A+VTW3Kgwy4eAttFwTztgJ1+yv+CghdZC03rjlJdP5O3/aH +N/baMSwUuJ0kOEWLh5ouQwziM0kMDJGJaHetO68lznzaTTi683VNMT/P2QU/vug8JaSM5AAmD2CR0pFL +jAWtIvB/n+j2fAGPjqrm6C23buiLa5/QK69C8R9McxhKqWIwY4o+ZIWnmGnmIYo+ccxwW4iYtvqqEyhr +OnF/7jFtP/DfdvImYazIHl2kopJfsCUxYipKrMgdCNM4F5rzr/6UIz33n73Hx8Qyl2k84jDpw5XxiB0Z +aFvDEkgyVNrHt4DdOe+4g6a/+yHtG/ONcEQVQa+vq5e79YbP7Hj4UEycMyYcfMVWwoKfubI160mRg7Zw +ZqEOdYuObmLeqBfgNIb3IIUc1pFAMpbZhvfGO19MhjOA5RDkRbcHxGjPifJruygA668UTQGs/0osaVR2 +8OyFruT+Hh9xe0jyqLTGq93xx28ecwT10p71+CFVxfwcGoE7bsPCVB3C5DOxZ69c+5X1owpQqI2tL4vc +ABDLgFvC3FvR2o2Fnp+TXnwa3aT8TkrYL6U3Z2/lnJ+lKPZbfqsmGpPiAN0ekB/V0Rws5wjPnwLp6MoZ +vekRCGiLdMRfB4Qh8eNULX9SFypF48XqbUpcRSR2iMkqbiprjoxvKMMqgnt552bONmEKZm/ZGpHSTuJM +hfyii8gPt+IQynHn/p3h9hpCIARXsiJ/HVZi8FHiQypOoqwANP6yFiJAKj9jthlOdm+Rs9xnP9gpY0Zp +4QArvTPAzKDot+JwFQpoF87ns4BEBIaaIeV6yCjiZHKx9H5iTXOxatQo46+eEfaOQ5vUZA88xr6qjNAV +k3SMIZMwuH6WdYfmPxj+6z8+0PQ+aCe3a4+FlqXVhh8hJXg/ylr5NtYvFQiG7+cX9oHSneya0vjPYQO3 +vSTfyJgjVS1zTaBRrPo9lVFJ+yI/8e3To3OyrboOk23L8qMFyUP6mCK8rt90wViBIwQ5x4rDfRXMhZSS +FShEBmy+c3y4eS4IuyDUf2USaUnGg9TAStl7+/7Pvzw/5d/Q8JKLgKksj/MVgCZcGPhLoFFGzrHIYVVl +Iew5sRlPgvdfAFtLIveNievHwSVrdj3Tdt8YcXxz/S1iRLk1MQHqJyjw0kGXhZy2It83ctSvevDf/6w6 +szETjtHhwYNv9l6KZQxIfwwwO/iDI8af6SauWLEMco8L3tloBApM3jUIwdXelXGiw2TnYlW4t1QIsfO1 +49ass28OFuyRTZeTgtIzgggiqrqv04Af7i60e7HJWSIc6onHzvAJhJ57UBTUkxjyShVbMbe2ZOkW7TEB +1tn8awzy2VzQfnMcq11XOqJVcAisOU5O0y6EkQffzQYoQNjHnbK3JM8HFvcgBEDZoqyNfSfcCEEyxaai +fxMFEBEP9LNI0Y6j/l7Dj3vrLPZ5ZlJGXMmiMw2tmrLFfs0rjvWPkvIpXBKBqMd+dzt78o4V19QzFCfm +3K0xK9ZCxHljbiqwR2abHvan2Fku9R/ULKXB4dw5o3umQs9pMbLBR+DNfvYP0S0MQLC3Ec/hAiE6AXRB +httMQi5OYn6yZ3YnR1fjNZeN2ga9QDziM9DyCd2+gEvzDLftJlSSp1tAkAE+b8LIYFKEHxGrvfNx+NPW +2G9H6c2q1ZbGidQ6YhIrpgBbgk/BFlXRUrDs0g1YJJN57p2k7V0Q1bgQVCeBNlUHqLPfFyYr7llOhxib +hFmjs5tqJpS/4YWsXJgKgZSnSI4wdFhGnI+3zMEcTgV09R9DrqrN55zbbOyHoUBA95f8d+IQ5+PqG269 +B9vAUObvi9KRQjwFpLKnQE0m75Kd46+DaNv1Z126ugnE/+R+bZS4QhG/NAjqJoIQntOKRgHO/eS7kdVr +UUiNCfgpHvbOhdt/cQl5I5N6ooZU0fVM36OX1ugK5oWUOGRYAAAAAAs+rk4I5fZyAAHePIC0AQCzLaW5 +scRn+wIAAAAABFla diff --git a/samples/Shell/zsh.script! b/samples/Shell/zsh similarity index 100% rename from samples/Shell/zsh.script! rename to samples/Shell/zsh diff --git a/samples/Smali/ActionBarDrawerToggle.smali b/samples/Smali/ActionBarDrawerToggle.smali new file mode 100644 index 00000000..c22484e6 --- /dev/null +++ b/samples/Smali/ActionBarDrawerToggle.smali @@ -0,0 +1,551 @@ +.class public Landroid/support/v4/app/ActionBarDrawerToggle; +.super Ljava/lang/Object; +.source "ActionBarDrawerToggle.java" + +# interfaces +.implements Landroid/support/v4/widget/DrawerLayout$DrawerListener; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/app/ActionBarDrawerToggle$1;, + Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + } +.end annotation + + +# static fields +.field private static final ID_HOME:I = 0x102002c + +.field private static final IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + +# instance fields +.field private final mActivity:Landroid/app/Activity; + +.field private final mCloseDrawerContentDescRes:I + +.field private mDrawerImage:Landroid/graphics/drawable/Drawable; + +.field private final mDrawerImageResource:I + +.field private mDrawerIndicatorEnabled:Z + +.field private final mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + +.field private final mOpenDrawerContentDescRes:I + +.field private mSetIndicatorInfo:Ljava/lang/Object; + +.field private mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + +.field private mThemeImage:Landroid/graphics/drawable/Drawable; + + +# direct methods +.method static constructor ()V + .registers 3 + + .prologue + const/4 v2, 0x0 + + .line 108 + sget v0, Landroid/os/Build$VERSION;->SDK_INT:I + + .line 109 + .local v0, "version":I + const/16 v1, 0xb + + if-lt v0, v1, :cond_f + + .line 110 + new-instance v1, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC; + + invoke-direct {v1, v2}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC;->(Landroid/support/v4/app/ActionBarDrawerToggle$1;)V + + sput-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + .line 114 + :goto_e + return-void + + .line 112 + :cond_f + new-instance v1, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase; + + invoke-direct {v1, v2}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase;->(Landroid/support/v4/app/ActionBarDrawerToggle$1;)V + + sput-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + goto :goto_e +.end method + +.method public constructor (Landroid/app/Activity;Landroid/support/v4/widget/DrawerLayout;III)V + .registers 8 + .param p1, "activity" # Landroid/app/Activity; + .param p2, "drawerLayout" # Landroid/support/v4/widget/DrawerLayout; + .param p3, "drawerImageRes" # I + .param p4, "openDrawerContentDescRes" # I + .param p5, "closeDrawerContentDescRes" # I + + .prologue + .line 152 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 121 + const/4 v0, 0x1 + + iput-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + .line 153 + iput-object p1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + .line 154 + iput-object p2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + .line 155 + iput p3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImageResource:I + + .line 156 + iput p4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + .line 157 + iput p5, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + .line 159 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + invoke-interface {v0, p1}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->getThemeUpIndicator(Landroid/app/Activity;)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + .line 160 + invoke-virtual {p1}, Landroid/app/Activity;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + invoke-virtual {v0, p3}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + .line 161 + new-instance v0, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + invoke-direct {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->(Landroid/graphics/drawable/Drawable;)V + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + .line 162 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const v1, 0x3eaaaaab + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffsetBy(F)V + + .line 163 + return-void +.end method + + +# virtual methods +.method public isDrawerIndicatorEnabled()Z + .registers 2 + + .prologue + .line 217 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + return v0 +.end method + +.method public onConfigurationChanged(Landroid/content/res/Configuration;)V + .registers 4 + .param p1, "newConfig" # Landroid/content/res/Configuration; + + .prologue + .line 229 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + invoke-interface {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->getThemeUpIndicator(Landroid/app/Activity;)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + .line 230 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + invoke-virtual {v0}, Landroid/app/Activity;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + iget v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImageResource:I + + invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + .line 231 + invoke-virtual {p0}, Landroid/support/v4/app/ActionBarDrawerToggle;->syncState()V + + .line 232 + return-void +.end method + +.method public onDrawerClosed(Landroid/view/View;)V + .registers 6 + .param p1, "drawerView" # Landroid/view/View; + + .prologue + .line 298 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 299 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_18 + + .line 300 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + invoke-interface {v0, v1, v2, v3}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarDescription(Ljava/lang/Object;Landroid/app/Activity;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 303 + :cond_18 + return-void +.end method + +.method public onDrawerOpened(Landroid/view/View;)V + .registers 6 + .param p1, "drawerView" # Landroid/view/View; + + .prologue + .line 282 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/high16 v1, 0x3f800000 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 283 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_19 + + .line 284 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + invoke-interface {v0, v1, v2, v3}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarDescription(Ljava/lang/Object;Landroid/app/Activity;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 287 + :cond_19 + return-void +.end method + +.method public onDrawerSlide(Landroid/view/View;F)V + .registers 7 + .param p1, "drawerView" # Landroid/view/View; + .param p2, "slideOffset" # F + + .prologue + const/high16 v3, 0x40000000 + + const/high16 v2, 0x3f000000 + + .line 264 + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + invoke-virtual {v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->getOffset()F + + move-result v0 + + .line 265 + .local v0, "glyphOffset":F + cmpl-float v1, p2, v2 + + if-lez v1, :cond_20 + + .line 266 + const/4 v1, 0x0 + + sub-float v2, p2, v2 + + invoke-static {v1, v2}, Ljava/lang/Math;->max(FF)F + + move-result v1 + + mul-float/2addr v1, v3 + + invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F + + move-result v0 + + .line 270 + :goto_1a + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + invoke-virtual {v1, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 271 + return-void + + .line 268 + :cond_20 + mul-float v1, p2, v3 + + invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F + + move-result v0 + + goto :goto_1a +.end method + +.method public onDrawerStateChanged(I)V + .registers 2 + .param p1, "newState" # I + + .prologue + .line 314 + return-void +.end method + +.method public onOptionsItemSelected(Landroid/view/MenuItem;)Z + .registers 5 + .param p1, "item" # Landroid/view/MenuItem; + + .prologue + const v2, 0x800003 + + .line 244 + if-eqz p1, :cond_1f + + invoke-interface {p1}, Landroid/view/MenuItem;->getItemId()I + + move-result v0 + + const v1, 0x102002c + + if-ne v0, v1, :cond_1f + + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_1f + + .line 245 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->isDrawerVisible(I)Z + + move-result v0 + + if-eqz v0, :cond_21 + + .line 246 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->closeDrawer(I)V + + .line 251 + :cond_1f + :goto_1f + const/4 v0, 0x0 + + return v0 + + .line 248 + :cond_21 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->openDrawer(I)V + + goto :goto_1f +.end method + +.method public setDrawerIndicatorEnabled(Z)V + .registers 8 + .param p1, "enable" # Z + + .prologue + .line 199 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eq p1, v0, :cond_23 + + .line 200 + if-eqz p1, :cond_27 + + .line 201 + sget-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + const v5, 0x800003 + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_24 + + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + :goto_1b + invoke-interface {v1, v2, v3, v4, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 208 + :goto_21 + iput-boolean p1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + .line 210 + :cond_23 + return-void + + .line 201 + :cond_24 + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + goto :goto_1b + + .line 205 + :cond_27 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + const/4 v4, 0x0 + + invoke-interface {v0, v1, v2, v3, v4}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + goto :goto_21 +.end method + +.method public syncState()V + .registers 7 + + .prologue + const v5, 0x800003 + + .line 175 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_2f + + .line 176 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/high16 v1, 0x3f800000 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 181 + :goto_12 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_2e + + .line 182 + sget-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_36 + + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + :goto_28 + invoke-interface {v1, v2, v3, v4, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 186 + :cond_2e + return-void + + .line 178 + :cond_2f + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + goto :goto_12 + + .line 182 + :cond_36 + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + goto :goto_28 +.end method diff --git a/samples/Smali/DoodleMobileAnaylise.smali b/samples/Smali/DoodleMobileAnaylise.smali new file mode 100644 index 00000000..9f08c551 --- /dev/null +++ b/samples/Smali/DoodleMobileAnaylise.smali @@ -0,0 +1,4235 @@ +.class public Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; +.super Ljava/lang/Object; +.source "DoodleMobileAnaylise.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$Sync;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$MobclixHttpClient;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent; + } +.end annotation + + +# static fields +.field static final DEBUG:Z = false + +.field public static final LOG_LEVEL_DEBUG:I = 0x1 + +.field public static final LOG_LEVEL_ERROR:I = 0x8 + +.field public static final LOG_LEVEL_FATAL:I = 0x10 + +.field public static final LOG_LEVEL_INFO:I = 0x2 + +.field public static final LOG_LEVEL_WARN:I = 0x4 + +.field private static MC_ANALYTICS_DIRECTORY:Ljava/lang/String; = null + +.field private static MC_DIRECTORY:Ljava/lang/String; = null + +.field private static MC_MAX_ANALYTICS_FILES:I = 0x0 + +.field private static MC_MAX_EVENTS_PER_FILE:I = 0x0 + +.field static final PREFS_CONFIG:Ljava/lang/String; = ".DMConfig" + +.field public static final PUSH_MESSAGE_INTERVAL:I = 0xf0 + +.field static final PUSH_MESSAGE_TO_SERVER:I = 0x186a1 + +.field private static SYNC_ERROR:I + +.field private static SYNC_READY:I + +.field private static SYNC_RUNNING:I + +.field private static applicationInfo:Landroid/content/pm/ApplicationInfo; + +.field private static final controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + +.field private static currentFile:Ljava/io/File; + +.field private static fileCreated:Z + +.field private static isInitialized:Z + +.field private static loggingEvent:Z + +.field static mSyncHandler:Landroid/os/Handler; + +.field private static numLinesWritten:I + +.field private static packageName:Ljava/lang/String; + +.field private static syncContents:Ljava/lang/String; + +.field private static syncStatus:I + + +# instance fields +.field private analyticsServer:Ljava/lang/String; + +.field private androidId:Ljava/lang/String; + +.field private androidVersion:Ljava/lang/String; + +.field private applicationId:Ljava/lang/String; + +.field private applicationVersion:Ljava/lang/String; + +.field private autoplay:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + +.field private configServer:Ljava/lang/String; + +.field private connectionType:Ljava/lang/String; + +.field private context:Landroid/content/Context; + +.field private deviceHardwareModel:Ljava/lang/String; + +.field private deviceId:Ljava/lang/String; + +.field private deviceModel:Ljava/lang/String; + +.field private enabled:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + +.field private haveLocationPermission:Z + +.field private haveNetworkStatePermission:Z + +.field private idleTimeout:I + +.field private isInSession:Z + +.field private isNewUser:Z + +.field private isOfflineSession:Z + +.field private isTopTask:Z + +.field private language:Ljava/lang/String; + +.field private latitude:Ljava/lang/String; + +.field private locale:Ljava/lang/String; + +.field location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + +.field private locationCriteria:Landroid/location/Criteria; + +.field private locationHandler:Landroid/os/Handler; + +.field private logLevel:I + +.field private longitude:Ljava/lang/String; + +.field private mcc:Ljava/lang/String; + +.field private mnc:Ljava/lang/String; + +.field private pollTime:I + +.field private previousDeviceId:Ljava/lang/String; + +.field private refreshTime:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Long;", + ">;" + } + .end annotation +.end field + +.field private remoteConfigSet:I + +.field private session:Lorg/json/JSONObject; + +.field private sessionEndTime:J + +.field private sessionPollingTimer:Ljava/util/Timer; + +.field private sessionStartTime:J + +.field private sharedPrefs:Landroid/content/SharedPreferences; + +.field private totalIdleTime:J + +.field private userAgent:Ljava/lang/String; + + +# direct methods +.method static constructor ()V + .locals 3 + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 70 + const-string v0, "doodlemobile" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + .line 72 + const-string v0, "analytics" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + .line 74 + const/16 v0, 0x64 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + .line 76 + const/4 v0, 0x5 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_EVENTS_PER_FILE:I + + .line 104 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + .line 106 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + .line 108 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + .line 110 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + .line 112 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + .line 114 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + .line 116 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + .line 118 + const/4 v0, 0x1 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_RUNNING:I + + .line 120 + const/4 v0, -0x1 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_ERROR:I + + .line 184 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->()V + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + .line 186 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + .line 188 + const-string v0, "" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + .line 190 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + .line 771 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$3; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$3;->()V + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + return-void +.end method + +.method public constructor ()V + .locals 7 + + .prologue + const/4 v5, 0x0 + + const-wide/16 v3, 0x0 + + const/4 v2, 0x0 + + const-string v6, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + const-string v1, "null" + + .line 56 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 78 + iput-object v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + .line 80 + new-instance v0, Lorg/json/JSONObject; + + invoke-direct {v0}, Lorg/json/JSONObject;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + .line 88 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->enabled:Ljava/util/HashMap; + + .line 90 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->refreshTime:Ljava/util/HashMap; + + .line 92 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->autoplay:Ljava/util/HashMap; + + .line 94 + const-string v0, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->configServer:Ljava/lang/String; + + .line 96 + const-string v0, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + .line 98 + const/16 v0, 0x7530 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + .line 100 + const v0, 0x1d4c0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + .line 102 + iput v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + .line 122 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isOfflineSession:Z + + .line 124 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 126 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 128 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 130 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 132 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 134 + new-instance v0, Ljava/util/Timer; + + invoke-direct {v0}, Ljava/util/Timer;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionPollingTimer:Ljava/util/Timer; + + .line 144 + iput-object v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->previousDeviceId:Ljava/lang/String; + + .line 150 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 154 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + .line 156 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + .line 158 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + .line 160 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 162 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 164 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mcc:Ljava/lang/String; + + .line 166 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mnc:Ljava/lang/String; + + .line 168 + const-string v0, "" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 170 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 172 + const/16 v0, 0x10 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + .line 174 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + .line 178 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + .line 180 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isNewUser:Z + + .line 1045 + return-void +.end method + +.method private OpenAnalyticsFile()Z + .locals 7 + + .prologue + const/4 v6, 0x1 + + const/4 v5, 0x0 + + const-string v0, "DoodleMobileAnaylise" + + const-string v0, "/" + + const-string v0, "UTF-8" + + .line 720 + sput v6, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + .line 721 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateSession()V + + .line 724 + :try_start_0 + new-instance v0, Lorg/json/JSONObject; + + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const/4 v2, 0x3 + + new-array v2, v2, [Ljava/lang/String; + + const/4 v3, 0x0 + + const-string v4, "ll" + + aput-object v4, v2, v3 + + const/4 v3, 0x1 + + const-string v4, "g" + + aput-object v4, v2, v3 + + const/4 v3, 0x2 + + const-string v4, "id" + + aput-object v4, v2, v3 + + invoke-direct {v0, v1, v2}, Lorg/json/JSONObject;->(Lorg/json/JSONObject;[Ljava/lang/String;)V + + .line 726 + const-string v1, "a" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getApplicationId()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 727 + const-string v1, "p" + + const-string v2, "android" + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 728 + const-string v1, "m" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getMobclixVersion()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 729 + const-string v1, "v" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getApplicationVersion()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 730 + const-string v1, "d" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceId()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 731 + const-string v1, "dm" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceModel()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 732 + const-string v1, "dv" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getAndroidVersion()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 733 + const-string v1, "hwdm" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceHardwareModel()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 735 + const-string v1, "m" + + const-string v2, "2.3" + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 736 + const-string v1, "lg" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLanguage()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 737 + const-string v1, "lo" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLocale()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 738 + const-string v1, "pn" + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 740 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + const/4 v3, 0x0 + + invoke-virtual {v1, v2, v3}, Landroid/content/Context;->getDir(Ljava/lang/String;I)Ljava/io/File; + + move-result-object v1 + + .line 741 + new-instance v2, Ljava/io/File; + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v3, "/" + + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v2, v1}, Ljava/io/File;->(Ljava/lang/String;)V + + .line 743 + invoke-virtual {v2}, Ljava/io/File;->mkdir()Z + + .line 744 + const-string v1, "DoodleMobileAnaylise" + + const-string v3, "mkdir" + + invoke-static {v1, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 745 + invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File; + + move-result-object v1 + + array-length v1, v1 + + sget v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + if-lt v1, v3, :cond_0 + + .line 746 + const-string v0, "DoodleMobileAnaylise" + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File; + + move-result-object v2 + + array-length v2, v2 + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v2, " " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + sget v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + move v0, v5 + + .line 768 + :goto_0 + return v0 + + .line 751 + :cond_0 + new-instance v1, Ljava/io/File; + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File; + + move-result-object v2 + + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v2 + + const-string v3, "/" + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v3 + + invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + move-result-object v2 + + const-string v3, ".log" + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-direct {v1, v2}, Ljava/io/File;->(Ljava/lang/String;)V + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + .line 754 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + invoke-virtual {v1}, Ljava/io/File;->createNewFile()Z + + .line 756 + new-instance v1, Ljava/io/FileOutputStream; + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + invoke-direct {v1, v2}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V + + .line 758 + const-string v2, "[{\"hb\":" + + invoke-virtual {v2}, Ljava/lang/String;->getBytes()[B + + move-result-object v2 + + invoke-virtual {v1, v2}, Ljava/io/FileOutputStream;->write([B)V + + .line 759 + invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B + + move-result-object v0 + + invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V + + .line 760 + const-string v0, ",\"ev\":[" + + invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B + + move-result-object v0 + + invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V + + .line 761 + invoke-virtual {v1}, Ljava/io/FileOutputStream;->close()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 767 + sput-boolean v6, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + move v0, v6 + + .line 768 + goto :goto_0 + + .line 763 + :catch_0 + move-exception v0 + + .line 764 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V + + move v0, v5 + + .line 765 + goto :goto_0 +.end method + +.method static synthetic access$002(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1000()Ljava/io/File; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + return-object v0 +.end method + +.method static synthetic access$102(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1100()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return v0 +.end method + +.method static synthetic access$1102(I)I + .locals 0 + + .prologue + .line 56 + sput p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return p0 +.end method + +.method static synthetic access$1112(I)I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + add-int/2addr v0, p0 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return v0 +.end method + +.method static synthetic access$1200()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_EVENTS_PER_FILE:I + + return v0 +.end method + +.method static synthetic access$1400(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Landroid/content/Context; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + return-object v0 +.end method + +.method static synthetic access$1500(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$1502(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1600(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Landroid/location/Criteria; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + return-object v0 +.end method + +.method static synthetic access$1602(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Landroid/location/Criteria;)Landroid/location/Criteria; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + return-object p1 +.end method + +.method static synthetic access$1702(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)Z + .locals 0 + + .prologue + .line 56 + iput-boolean p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + return p1 +.end method + +.method static synthetic access$1802(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)Z + .locals 0 + + .prologue + .line 56 + iput-boolean p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + return p1 +.end method + +.method static synthetic access$1900(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)V + .locals 0 + + .prologue + .line 56 + invoke-direct {p0, p1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + + return-void +.end method + +.method static synthetic access$200(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + .locals 0 + + .prologue + .line 56 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateLocation()V + + return-void +.end method + +.method static synthetic access$2000()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_RUNNING:I + + return v0 +.end method + +.method static synthetic access$2100()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2200()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2300()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2302(Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + sput-object p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + return-object p0 +.end method + +.method static synthetic access$2400(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2500()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_ERROR:I + + return v0 +.end method + +.method static synthetic access$400()Z + .locals 1 + + .prologue + .line 56 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + return v0 +.end method + +.method static synthetic access$402(Z)Z + .locals 0 + + .prologue + .line 56 + sput-boolean p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + return p0 +.end method + +.method static synthetic access$500()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + return v0 +.end method + +.method static synthetic access$502(I)I + .locals 0 + + .prologue + .line 56 + sput p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + return p0 +.end method + +.method static synthetic access$600()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + return v0 +.end method + +.method static synthetic access$700()Z + .locals 1 + + .prologue + .line 56 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + return v0 +.end method + +.method static synthetic access$702(Z)Z + .locals 0 + + .prologue + .line 56 + sput-boolean p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + return p0 +.end method + +.method static synthetic access$800(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Z + .locals 1 + + .prologue + .line 56 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->OpenAnalyticsFile()Z + + move-result v0 + + return v0 +.end method + +.method static synthetic access$900()Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + return-object v0 +.end method + +.method static addPref(Ljava/lang/String;Ljava/lang/String;)V + .locals 1 + + .prologue + .line 333 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 334 + invoke-interface {v0, p0, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + .line 335 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 338 + :goto_0 + return-void + + .line 336 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method static addPref(Ljava/util/Map;)V + .locals 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/Map", + "<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;)V" + } + .end annotation + + .prologue + .line 342 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v1 + + .line 343 + invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set; + + move-result-object v0 + + invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 344 + :goto_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 345 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/util/Map$Entry; + + .line 346 + invoke-interface {p0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/String; + + invoke-interface {p0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/String; + + invoke-interface {v1, v0, p0}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + goto :goto_0 + + .line 349 + :catch_0 + move-exception v0 + + .line 351 + :goto_1 + return-void + + .line 348 + :cond_0 + invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_1 +.end method + +.method static clearPref()V + .locals 1 + + .prologue + .line 364 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 365 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->clear()Landroid/content/SharedPreferences$Editor; + + .line 366 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 369 + :goto_0 + return-void + + .line 367 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method private createNewSession()V + .locals 7 + + .prologue + const-wide/16 v5, 0x0 + + const/4 v4, 0x1 + + .line 804 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v0 + + .line 805 + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + iget-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sha1(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + .line 807 + iput-boolean v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 808 + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 809 + iput-wide v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 810 + iput-wide v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 811 + iput-boolean v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 813 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "id" + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 817 + :goto_0 + const/4 v0, 0x0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + .line 818 + new-instance v0, Ljava/lang/Thread; + + new-instance v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig; + + const/4 v2, 0x0 + + invoke-direct {v1, p0, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;)V + + invoke-direct {v0, v1}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V + + .line 819 + invoke-virtual {v0}, Ljava/lang/Thread;->start()V + + .line 820 + return-void + + .line 814 + :catch_0 + move-exception v0 + + .line 815 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync 2" + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + goto :goto_0 +.end method + +.method private endSession()V + .locals 6 + + .prologue + const-string v0, "totalSessionTime" + + const-string v0, "totalIdleTime" + + const-string v0, "offlineSessions" + + .line 852 + :try_start_0 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-nez v0, :cond_0 + + .line 893 + :goto_0 + return-void + + .line 854 + :cond_0 + iget-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + sub-long/2addr v0, v2 + + .line 856 + const-string v2, "totalSessionTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v2 + + if-eqz v2, :cond_1 + + .line 858 + :try_start_1 + const-string v2, "totalSessionTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_3 + + move-result-wide v2 + + add-long/2addr v0, v2 + + .line 861 + :cond_1 + :goto_1 + :try_start_2 + const-string v2, "totalIdleTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_2 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 + + move-result v2 + + if-eqz v2, :cond_2 + + .line 863 + :try_start_3 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + const-string v4, "totalIdleTime" + + invoke-static {v4}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v4 + + invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + + move-result-wide v4 + + add-long/2addr v2, v4 + + iput-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + :try_end_3 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_2 + + .line 867 + :cond_2 + :goto_2 + :try_start_4 + new-instance v2, Ljava/util/HashMap; + + invoke-direct {v2}, Ljava/util/HashMap;->()V + + .line 868 + const-string v3, "totalSessionTime" + + invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v3, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 869 + const-string v0, "totalIdleTime" + + iget-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + invoke-static {v3, v4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v2, v0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 872 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isOfflineSession:Z + + if-eqz v0, :cond_4 + + .line 873 + const/4 v0, 0x1 + + .line 874 + const-string v1, "offlineSessions" + + invoke-static {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_4 + .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_0 + + move-result v1 + + if-eqz v1, :cond_3 + + .line 876 + :try_start_5 + const-string v1, "offlineSessions" + + invoke-static {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I + :try_end_5 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_1 + + move-result v1 + + add-int/2addr v0, v1 + + .line 880 + :cond_3 + :goto_3 + :try_start_6 + const-string v1, "offlineSessions" + + int-to-long v3, v0 + + invoke-static {v3, v4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 884 + :cond_4 + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->addPref(Ljava/util/Map;)V + + .line 886 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 887 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 888 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 889 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 890 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + :try_end_6 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_0 + + goto :goto_0 + + .line 891 + :catch_0 + move-exception v0 + + goto/16 :goto_0 + + .line 878 + :catch_1 + move-exception v1 + + goto :goto_3 + + .line 865 + :catch_2 + move-exception v2 + + goto :goto_2 + + .line 859 + :catch_3 + move-exception v2 + + goto :goto_1 +.end method + +.method static getAllPref()Ljava/util/HashMap; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;" + } + .end annotation + + .prologue + .line 309 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->getAll()Ljava/util/Map; + + move-result-object v0 + + check-cast v0, Ljava/util/HashMap; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 312 + :goto_0 + return-object v0 + + .line 310 + :catch_0 + move-exception v0 + + .line 312 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + goto :goto_0 +.end method + +.method static getCookieStringFromCookieManager(Ljava/lang/String;)Ljava/lang/String; + .locals 1 + + .prologue + .line 901 + :try_start_0 + invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; + + move-result-object v0 + + .line 902 + invoke-virtual {v0, p0}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 905 + :goto_0 + return-object v0 + + .line 903 + :catch_0 + move-exception v0 + + .line 905 + const-string v0, "" + + goto :goto_0 +.end method + +.method public static getInstance()Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + .locals 1 + + .prologue + .line 515 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + return-object v0 +.end method + +.method static getPref(Ljava/lang/String;)Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "" + + .line 317 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + const-string v1, "" + + invoke-interface {v0, p0, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 320 + :goto_0 + return-object v0 + + .line 318 + :catch_0 + move-exception v0 + + .line 320 + const-string v0, "" + + move-object v0, v2 + + goto :goto_0 +.end method + +.method private declared-synchronized handleSessionStatus(Z)V + .locals 6 + + .prologue + .line 824 + monitor-enter p0 + + :try_start_0 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v0 + + .line 825 + if-eqz p1, :cond_3 + + .line 826 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + if-eqz v2, :cond_1 + + .line 848 + :cond_0 + :goto_0 + monitor-exit p0 + + return-void + + .line 829 + :cond_1 + :try_start_1 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-nez v2, :cond_2 + + .line 830 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->createNewSession()V + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + .catchall {:try_start_1 .. :try_end_1} :catchall_0 + + goto :goto_0 + + .line 845 + :catch_0 + move-exception v0 + + .line 846 + :try_start_2 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync 3" + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + :try_end_2 + .catchall {:try_start_2 .. :try_end_2} :catchall_0 + + goto :goto_0 + + .line 824 + :catchall_0 + move-exception v0 + + monitor-exit p0 + + throw v0 + + .line 832 + :cond_2 + :try_start_3 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + iget-wide v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + sub-long/2addr v0, v4 + + add-long/2addr v0, v2 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 833 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + goto :goto_0 + + .line 836 + :cond_3 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + if-nez v2, :cond_4 + + .line 837 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + sub-long/2addr v0, v2 + + iget v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + int-to-long v2, v2 + + cmp-long v0, v0, v2 + + if-lez v0, :cond_0 + + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-eqz v0, :cond_0 + + .line 839 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->endSession()V + + goto :goto_0 + + .line 841 + :cond_4 + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 842 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 843 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + invoke-virtual {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->stopLocation()V + :try_end_3 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0 + .catchall {:try_start_3 .. :try_end_3} :catchall_0 + + goto :goto_0 +.end method + +.method static hasPref(Ljava/lang/String;)Z + .locals 1 + + .prologue + .line 325 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0, p0}, Landroid/content/SharedPreferences;->contains(Ljava/lang/String;)Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v0 + + .line 328 + :goto_0 + return v0 + + .line 326 + :catch_0 + move-exception v0 + + .line 328 + const/4 v0, 0x0 + + goto :goto_0 +.end method + +.method private initialize(Landroid/app/Activity;Ljava/lang/String;I)V + .locals 7 + + .prologue + const/4 v6, 0x0 + + const/4 v5, 0x0 + + const-string v4, "" + + const-string v3, "null" + + .line 455 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + .line 456 + iput-object p2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 457 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 458 + :cond_0 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 459 + :cond_1 + sget-object v0, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + .line 460 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + if-eqz v0, :cond_2 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_3 + + .line 461 + :cond_2 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + .line 465 + :cond_3 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "phone" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/telephony/TelephonyManager; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 469 + :goto_0 + invoke-virtual {p1}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; + + move-result-object v1 + + const-string v2, "android_id" + + invoke-static {v1, v2}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + .line 471 + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + if-eqz v1, :cond_4 + + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + const-string v2, "" + + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_5 + + .line 472 + :cond_4 + const-string v1, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + .line 474 + :cond_5 + invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + .line 475 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + if-eqz v0, :cond_6 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_7 + + .line 476 + :cond_6 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + .line 478 + :cond_7 + sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + .line 479 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + if-eqz v0, :cond_8 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_9 + + .line 480 + :cond_8 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + .line 482 + :cond_9 + sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + .line 483 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + if-eqz v0, :cond_a + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_b + + .line 485 + :cond_a + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + .line 488 + :cond_b + iput p3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + .line 490 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + .line 491 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + .line 492 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + .line 493 + iput-boolean v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + .line 494 + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + .line 495 + iput-boolean v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + .line 496 + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 497 + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 499 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + invoke-static {v0}, Landroid/webkit/CookieSyncManager;->createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager; + + .line 501 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$2; + + invoke-direct {v0, p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$2;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationHandler:Landroid/os/Handler; + + .line 506 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p1}, Landroid/app/Activity;->getPackageName()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, ".MCConfig" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {p1, v0, v5}, Landroid/app/Activity;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + .line 509 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + iget v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I + + move-result v0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + .line 510 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionPollingTimer:Ljava/util/Timer; + + new-instance v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling; + + invoke-direct {v1, p0, v6}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;)V + + const-wide/16 v2, 0x0 + + iget v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + int-to-long v4, v4 + + invoke-virtual/range {v0 .. v5}, Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V + + .line 512 + return-void + + .line 467 + :catch_0 + move-exception v0 + + move-object v0, v6 + + goto/16 :goto_0 +.end method + +.method public static final logEvent(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V + .locals 5 + + .prologue + const-string v0, "UTF-8" + + const-string v2, "DoodleMobile" + + .line 672 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + if-nez v0, :cond_1 + + .line 673 + const-string v0, "mobclix-controller" + + const-string v1, "logEvent failed - You must initialize DoodleMobileAnaylise by calling DoodleMobileAnaylise.onCreate(this)." + + invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I + + .line 717 + :cond_0 + :goto_0 + return-void + + .line 678 + :cond_1 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + if-lt p0, v0, :cond_0 + + .line 682 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, ", " + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, ": " + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + .line 684 + sparse-switch p0, :sswitch_data_0 + + .line 702 + :goto_1 + :try_start_0 + new-instance v0, Lorg/json/JSONObject; + + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const/4 v2, 0x4 + + new-array v2, v2, [Ljava/lang/String; + + const/4 v3, 0x0 + + const-string v4, "ts" + + aput-object v4, v2, v3 + + const/4 v3, 0x1 + + const-string v4, "ll" + + aput-object v4, v2, v3 + + const/4 v3, 0x2 + + const-string v4, "g" + + aput-object v4, v2, v3 + + const/4 v3, 0x3 + + const-string v4, "id" + + aput-object v4, v2, v3 + + invoke-direct {v0, v1, v2}, Lorg/json/JSONObject;->(Lorg/json/JSONObject;[Ljava/lang/String;)V + + .line 704 + const-string v1, "el" + + invoke-static {p0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 705 + const-string v1, "ep" + + const-string v2, "UTF-8" + + invoke-static {p1, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 706 + const-string v1, "en" + + const-string v2, "UTF-8" + + invoke-static {p2, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 707 + const-string v1, "ed" + + const-string v2, "UTF-8" + + invoke-static {p3, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 708 + const-string v1, "et" + + invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/Thread;->getId()J + + move-result-wide v2 + + invoke-static {v2, v3}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 709 + const-string v1, "es" + + if-eqz p4, :cond_2 + + const-string v2, "1" + + :goto_2 + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 710 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + .line 711 + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + .line 712 + new-instance v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent; + + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + invoke-direct {v2, v1, v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lorg/json/JSONObject;)V + + .line 713 + new-instance v0, Ljava/lang/Thread; + + invoke-direct {v0, v2}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V + + .line 714 + invoke-virtual {v0}, Ljava/lang/Thread;->start()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto/16 :goto_0 + + .line 715 + :catch_0 + move-exception v0 + + goto/16 :goto_0 + + .line 686 + :sswitch_0 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 689 + :sswitch_1 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 692 + :sswitch_2 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 695 + :sswitch_3 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 698 + :sswitch_4 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 709 + :cond_2 + :try_start_1 + const-string v2, "0" + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_2 + + .line 684 + :sswitch_data_0 + .sparse-switch + 0x1 -> :sswitch_0 + 0x2 -> :sswitch_1 + 0x4 -> :sswitch_2 + 0x8 -> :sswitch_3 + 0x10 -> :sswitch_4 + .end sparse-switch +.end method + +.method public static final declared-synchronized onCreate(Landroid/app/Activity;)V + .locals 7 + + .prologue + const/4 v5, 0x0 + + const-string v0, "ssc" + + const-string v0, "DoodleMobileAnaylise" + + const-string v0, "doodle_mobile_appid" + + .line 520 + const-class v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + monitor-enter v0 + + if-eqz p0, :cond_0 + + .line 521 + :try_start_0 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {p0}, Landroid/app/Activity;->getApplicationContext()Landroid/content/Context; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_8 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + .line 525 + :cond_0 + :goto_0 + :try_start_1 + sget-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + :try_end_1 + .catchall {:try_start_1 .. :try_end_1} :catchall_0 + + if-nez v1, :cond_4 + + .line 528 + :try_start_2 + invoke-virtual {p0}, Landroid/app/Activity;->getPackageName()Ljava/lang/String; + + move-result-object v1 + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + :try_end_2 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_7 + .catchall {:try_start_2 .. :try_end_2} :catchall_0 + + .line 531 + :goto_1 + const/4 v1, 0x0 + + :try_start_3 + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + :try_end_3 + .catchall {:try_start_3 .. :try_end_3} :catchall_0 + + .line 533 + :try_start_4 + invoke-virtual {p0}, Landroid/app/Activity;->getPackageManager()Landroid/content/pm/PackageManager; + + move-result-object v1 + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + const/16 v3, 0x80 + + invoke-virtual {v1, v2, v3}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; + + move-result-object v1 + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + :try_end_4 + .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_4 .. :try_end_4} :catch_0 + .catchall {:try_start_4 .. :try_end_4} :catchall_0 + + .line 541 + :goto_2 + :try_start_5 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v2, "doodle_mobile_appid" + + invoke-virtual {v1, v2}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; + :try_end_5 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_1 + .catchall {:try_start_5 .. :try_end_5} :catchall_0 + + move-result-object v1 + + .line 543 + :try_start_6 + const-string v2, "ssc" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "applicationID 1 is " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v3 + + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + :try_end_6 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_6 + .catchall {:try_start_6 .. :try_end_6} :catchall_0 + + .line 554 + :goto_3 + if-nez v1, :cond_1 + + .line 556 + :try_start_7 + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v2, v2, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v3, "doodle_mobile_appid" + + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I + + move-result v2 + + invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + :try_end_7 + .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_3 + .catchall {:try_start_7 .. :try_end_7} :catchall_0 + + move-result-object v1 + + .line 562 + :cond_1 + :goto_4 + if-nez v1, :cond_2 + + .line 565 + :try_start_8 + new-instance v1, Landroid/content/res/Resources$NotFoundException; + + const-string v2, "doodle_mobile_appid not found in the Android Manifest xml." + + invoke-direct {v1, v2}, Landroid/content/res/Resources$NotFoundException;->(Ljava/lang/String;)V + + throw v1 + :try_end_8 + .catchall {:try_start_8 .. :try_end_8} :catchall_0 + + .line 520 + :catchall_0 + move-exception v1 + + monitor-exit v0 + + throw v1 + + .line 535 + :catch_0 + move-exception v1 + + .line 536 + :try_start_9 + const-string v1, "mobclix-controller" + + const-string v2, "Application Key Started" + + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto :goto_2 + + .line 544 + :catch_1 + move-exception v1 + + move-object v2, v5 + + .line 545 + :goto_5 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V + :try_end_9 + .catchall {:try_start_9 .. :try_end_9} :catchall_0 + + .line 547 + :try_start_a + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v3, "doodle_mobile_appid" + + invoke-virtual {v1, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I + + move-result v1 + + invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + :try_end_a + .catch Ljava/lang/Exception; {:try_start_a .. :try_end_a} :catch_2 + .catchall {:try_start_a .. :try_end_a} :catchall_0 + + move-result-object v1 + + goto :goto_3 + + .line 549 + :catch_2 + move-exception v1 + + .line 550 + :try_start_b + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V + + move-object v1, v2 + + goto :goto_3 + + .line 558 + :catch_3 + move-exception v2 + + .line 559 + invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V + + goto :goto_4 + + .line 568 + :cond_2 + const-string v2, "DoodleMobileAnaylise" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "applicationId = " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v2, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + :try_end_b + .catchall {:try_start_b .. :try_end_b} :catchall_0 + + .line 571 + :try_start_c + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v2, "doodle_mobile_loglevel" + + invoke-virtual {v1, v2}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; + :try_end_c + .catch Ljava/lang/Exception; {:try_start_c .. :try_end_c} :catch_4 + .catchall {:try_start_c .. :try_end_c} :catchall_0 + + move-result-object v1 + + .line 577 + :goto_6 + if-eqz v1, :cond_3 + + .line 578 + :try_start_d + const-string v2, "debug" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + :try_end_d + .catchall {:try_start_d .. :try_end_d} :catchall_0 + + move-result v2 + + if-eqz v2, :cond_5 + + .line 593 + :cond_3 + :goto_7 + :try_start_e + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateSession()V + + .line 595 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/Locale;->getCountry()Ljava/lang/String; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 596 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 597 + const-string v1, "ssc" + + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + const-string v3, "doolemobilea 585 " + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v3, v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v3, v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 599 + sget v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + .line 601 + const/4 v1, 0x1 + + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + :try_end_e + .catch Ljava/lang/Exception; {:try_start_e .. :try_end_e} :catch_5 + .catchall {:try_start_e .. :try_end_e} :catchall_0 + + .line 606 + :cond_4 + :goto_8 + :try_start_f + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + const/4 v2, 0x1 + + invoke-direct {v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + :try_end_f + .catchall {:try_start_f .. :try_end_f} :catchall_0 + + .line 607 + monitor-exit v0 + + return-void + + .line 573 + :catch_4 + move-exception v1 + + move-object v1, v5 + + goto :goto_6 + + .line 580 + :cond_5 + :try_start_10 + const-string v2, "info" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 582 + const-string v2, "warn" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 584 + const-string v2, "error" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 586 + const-string v2, "fatal" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v1 + + if-eqz v1, :cond_3 + + goto :goto_7 + + .line 602 + :catch_5 + move-exception v1 + + .line 603 + const-string v1, "DoodleMobileAnaylise" + + const-string v2, "has exception" + + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + :try_end_10 + .catchall {:try_start_10 .. :try_end_10} :catchall_0 + + goto :goto_8 + + .line 544 + :catch_6 + move-exception v2 + + move-object v6, v2 + + move-object v2, v1 + + move-object v1, v6 + + goto/16 :goto_5 + + .line 529 + :catch_7 + move-exception v1 + + goto/16 :goto_1 + + .line 522 + :catch_8 + move-exception v1 + + goto/16 :goto_0 +.end method + +.method public static final declared-synchronized onStop(Landroid/app/Activity;)V + .locals 3 + + .prologue + .line 610 + const-class v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + monitor-enter v0 + + :try_start_0 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + const/4 v2, 0x0 + + invoke-direct {v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + :try_end_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + .line 612 + monitor-exit v0 + + return-void + + .line 610 + :catchall_0 + move-exception v1 + + monitor-exit v0 + + throw v1 +.end method + +.method static removePref(Ljava/lang/String;)V + .locals 1 + + .prologue + .line 355 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 356 + invoke-interface {v0, p0}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + .line 357 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 360 + :goto_0 + return-void + + .line 358 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method private static sha1(Ljava/lang/String;)Ljava/lang/String; + .locals 4 + + .prologue + const/4 v3, 0x0 + + .line 372 + const/16 v0, 0x28 + + new-array v0, v0, [B + + .line 375 + :try_start_0 + const-string v0, "SHA-1" + + invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; + :try_end_0 + .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 380 + invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B + + move-result-object v1 + + invoke-virtual {p0}, Ljava/lang/String;->length()I + + move-result v2 + + invoke-virtual {v0, v1, v3, v2}, Ljava/security/MessageDigest;->update([BII)V + + .line 381 + invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B + + move-result-object v0 + + .line 382 + new-instance v1, Ljava/lang/StringBuffer; + + invoke-direct {v1}, Ljava/lang/StringBuffer;->()V + + move v2, v3 + + .line 383 + :goto_0 + array-length v3, v0 + + if-ge v2, v3, :cond_0 + + .line 384 + aget-byte v3, v0, v2 + + and-int/lit16 v3, v3, 0xff + + invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; + + move-result-object v3 + + invoke-virtual {v1, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 383 + add-int/lit8 v2, v2, 0x1 + + goto :goto_0 + + .line 376 + :catch_0 + move-exception v0 + + .line 377 + new-instance v1, Ljava/lang/RuntimeException; + + invoke-direct {v1, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V + + throw v1 + + .line 386 + :cond_0 + invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method + +.method public static final sync()V + .locals 3 + + .prologue + const v2, 0x186a1 + + .line 792 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + if-nez v0, :cond_0 + + .line 793 + const-string v0, "mobclix-controller" + + const-string v1, "sync failed - You must initialize DoodleMobileAnaylise by calling DoodleMobileAnaylise.onCreate(this)." + + invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I + + .line 801 + :goto_0 + return-void + + .line 798 + :cond_0 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 799 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + invoke-virtual {v0, v2}, Landroid/os/Handler;->removeMessages(I)V + + .line 800 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + invoke-virtual {v0, v2}, Landroid/os/Handler;->sendEmptyMessage(I)Z + + goto :goto_0 +.end method + +.method static syncCookiesToCookieManager(Lorg/apache/http/client/CookieStore;Ljava/lang/String;)V + .locals 7 + + .prologue + const-string v0, "DoodleMobileAnaylise" + + .line 911 + :try_start_0 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "syncCookieManager " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 912 + invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; + + move-result-object v0 + + .line 913 + invoke-interface {p0}, Lorg/apache/http/client/CookieStore;->getCookies()Ljava/util/List; + + move-result-object v1 + + .line 914 + new-instance v2, Ljava/lang/StringBuffer; + + invoke-direct {v2}, Ljava/lang/StringBuffer;->()V + + .line 915 + invoke-interface {v1}, Ljava/util/List;->isEmpty()Z + + move-result v3 + + if-nez v3, :cond_4 + + .line 916 + const/4 v3, 0x0 + + :goto_0 + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v4 + + if-ge v3, v4, :cond_3 + + .line 917 + invoke-interface {v1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Lorg/apache/http/cookie/Cookie; + + .line 918 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getName()Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + const-string v5, "=" + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getValue()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 921 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getExpiryDate()Ljava/util/Date; + + move-result-object v4 + + if-eqz v4, :cond_0 + + .line 922 + new-instance v4, Ljava/text/SimpleDateFormat; + + const-string v5, "E, dd-MMM-yyyy HH:mm:ss" + + invoke-direct {v4, v5}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V + + .line 924 + const-string v5, "; expires=" + + invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v5 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getExpiryDate()Ljava/util/Date; + + move-result-object v6 + + invoke-virtual {v4, v6}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v5, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + const-string v5, " GMT" + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 928 + :cond_0 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getPath()Ljava/lang/String; + + move-result-object v4 + + if-eqz v4, :cond_1 + + .line 929 + const-string v4, "; path=" + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getPath()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 931 + :cond_1 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getDomain()Ljava/lang/String; + + move-result-object v4 + + if-eqz v4, :cond_2 + + .line 932 + const-string v4, "; domain=" + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getDomain()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 935 + :cond_2 + invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; + + move-result-object v4 + + .line 937 + invoke-virtual {v0, p1, v4}, Landroid/webkit/CookieManager;->setCookie(Ljava/lang/String;Ljava/lang/String;)V + + .line 916 + add-int/lit8 v3, v3, 0x1 + + goto :goto_0 + + .line 939 + :cond_3 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "before syn " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 940 + invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/webkit/CookieSyncManager;->sync()V + + .line 941 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "after syn " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 943 + invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/webkit/CookieSyncManager;->stopSync()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 947 + :cond_4 + :goto_1 + return-void + + .line 945 + :catch_0 + move-exception v0 + + goto :goto_1 +.end method + +.method private updateConnectivity()V + .locals 4 + + .prologue + const-string v3, "null" + + .line 425 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "connectivity" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/net/ConnectivityManager; + + .line 427 + const-string v1, "u" + + .line 429 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + if-eqz v2, :cond_4 + + .line 430 + invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo; + + move-result-object v0 + + .line 432 + if-eqz v0, :cond_4 + + .line 433 + invoke-virtual {v0}, Landroid/net/NetworkInfo;->getTypeName()Ljava/lang/String; + + move-result-object v0 + + .line 436 + :goto_0 + const-string v1, "WI_FI" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_0 + + const-string v1, "WIFI" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_2 + + .line 437 + :cond_0 + const-string v0, "wifi" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 446 + :goto_1 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + if-nez v0, :cond_1 + + .line 447 + const-string v0, "null" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 451 + :cond_1 + :goto_2 + return-void + + .line 438 + :cond_2 + const-string v1, "MOBILE" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_3 + + .line 439 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "phone" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/telephony/TelephonyManager; + + .line 441 + invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getNetworkType()I + + move-result v0 + + .line 442 + invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_1 + + .line 448 + :catch_0 + move-exception v0 + + .line 449 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + goto :goto_2 + + .line 444 + :cond_3 + :try_start_1 + const-string v0, "null" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_1 + + :cond_4 + move-object v0, v1 + + goto :goto_0 +.end method + +.method private updateLocation()V + .locals 3 + + .prologue + .line 409 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + new-instance v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1; + + invoke-direct {v2, p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + + invoke-virtual {v0, v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->getLocation(Landroid/content/Context;Lcom/doodlemobile/gamecenter/DoodleMobileLocation$LocationResult;)Z + + .line 421 + return-void +.end method + + +# virtual methods +.method protected finalize()V + .locals 0 + + .prologue + .line 896 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->endSession()V + + .line 897 + return-void +.end method + +.method getAnalyticsServer()Ljava/lang/String; + .locals 1 + + .prologue + .line 289 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + return-object v0 +.end method + +.method getAndroidId()Ljava/lang/String; + .locals 1 + + .prologue + .line 218 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getAndroidVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 205 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getApplicationId()Ljava/lang/String; + .locals 1 + + .prologue + .line 201 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getApplicationVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 209 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getConfigServer()Ljava/lang/String; + .locals 1 + + .prologue + .line 285 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->configServer:Ljava/lang/String; + + return-object v0 +.end method + +.method getConnectionType()Ljava/lang/String; + .locals 1 + + .prologue + .line 231 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getContext()Landroid/content/Context; + .locals 1 + + .prologue + .line 197 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + return-object v0 +.end method + +.method getDeviceHardwareModel()Ljava/lang/String; + .locals 1 + + .prologue + .line 226 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getDeviceId()Ljava/lang/String; + .locals 1 + + .prologue + .line 214 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getDeviceModel()Ljava/lang/String; + .locals 1 + + .prologue + .line 222 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getGPS()Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "null" + + .line 243 + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLatitude()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "null" + + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_0 + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLongitude()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "null" + + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 244 + :cond_0 + const-string v0, "null" + + move-object v0, v2 + + .line 245 + :goto_0 + return-object v0 + + :cond_1 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLatitude()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, "," + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLongitude()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + goto :goto_0 +.end method + +.method getLanguage()Ljava/lang/String; + .locals 1 + + .prologue + .line 249 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLatitude()Ljava/lang/String; + .locals 1 + + .prologue + .line 235 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLocale()Ljava/lang/String; + .locals 1 + + .prologue + .line 253 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLogLevel()I + .locals 1 + + .prologue + .line 261 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + return v0 +.end method + +.method getLongitude()Ljava/lang/String; + .locals 1 + + .prologue + .line 239 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getMobclixVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 257 + const-string v0, "2.3" + + return-object v0 +.end method + +.method getRefreshTime(Ljava/lang/String;)J + .locals 2 + + .prologue + .line 278 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->refreshTime:Ljava/util/HashMap; + + invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/Long; + + invoke-virtual {p0}, Ljava/lang/Long;->longValue()J + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-wide v0 + + .line 281 + :goto_0 + return-wide v0 + + .line 279 + :catch_0 + move-exception v0 + + .line 281 + const-wide/16 v0, -0x1 + + goto :goto_0 +.end method + +.method getUserAgent()Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "UserAgent" + + .line 297 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + const-string v0, "UserAgent" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 298 + const-string v0, "UserAgent" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 299 + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + return-object v0 +.end method + +.method isEnabled(Ljava/lang/String;)Z + .locals 1 + + .prologue + .line 270 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->enabled:Ljava/util/HashMap; + + invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/Boolean; + + invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v0 + + .line 273 + :goto_0 + return v0 + + .line 271 + :catch_0 + move-exception v0 + + .line 273 + const/4 v0, 0x1 + + goto :goto_0 +.end method + +.method isRemoteConfigSet()I + .locals 1 + + .prologue + .line 293 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + return v0 +.end method + +.method isTopTask()Z + .locals 1 + + .prologue + .line 265 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + return v0 +.end method + +.method setContext(Landroid/app/Activity;)V + .locals 0 + + .prologue + .line 193 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + .line 194 + return-void +.end method + +.method setUserAgent(Ljava/lang/String;)V + .locals 1 + + .prologue + .line 303 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 304 + const-string v0, "UserAgent" + + invoke-static {v0, p1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->addPref(Ljava/lang/String;Ljava/lang/String;)V + + .line 305 + return-void +.end method + +.method updateSession()V + .locals 4 + + .prologue + const-string v0, "ll" + + .line 391 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateConnectivity()V + + .line 393 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + if-eqz v0, :cond_0 + + .line 394 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationHandler:Landroid/os/Handler; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z + + .line 397 + :cond_0 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "ts" + + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v2 + + invoke-virtual {v0, v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; + + .line 398 + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getGPS()Ljava/lang/String; + + move-result-object v0 + + .line 399 + const-string v1, "null" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_1 + + .line 400 + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v2, "ll" + + invoke-virtual {v1, v2, v0}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 403 + :goto_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "g" + + iget-object v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 406 + :goto_1 + return-void + + .line 402 + :cond_1 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "ll" + + invoke-virtual {v0, v1}, Lorg/json/JSONObject;->remove(Ljava/lang/String;)Ljava/lang/Object; + :try_end_0 + .catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_0 + + .line 404 + :catch_0 + move-exception v0 + + goto :goto_1 +.end method diff --git a/samples/Smali/ModernAsyncTask.smali b/samples/Smali/ModernAsyncTask.smali new file mode 100644 index 00000000..6803b9d6 --- /dev/null +++ b/samples/Smali/ModernAsyncTask.smali @@ -0,0 +1,700 @@ +.class abstract Landroid/support/v4/content/ModernAsyncTask; +.super Ljava/lang/Object; +.source "ModernAsyncTask.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/content/ModernAsyncTask$4;, + Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;, + Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;, + Landroid/support/v4/content/ModernAsyncTask$InternalHandler;, + Landroid/support/v4/content/ModernAsyncTask$Status; + } +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "", + "Ljava/lang/Object;" + } +.end annotation + + +# static fields +.field private static final CORE_POOL_SIZE:I = 0x5 + +.field private static final KEEP_ALIVE:I = 0x1 + +.field private static final LOG_TAG:Ljava/lang/String; = "AsyncTask" + +.field private static final MAXIMUM_POOL_SIZE:I = 0x80 + +.field private static final MESSAGE_POST_PROGRESS:I = 0x2 + +.field private static final MESSAGE_POST_RESULT:I = 0x1 + +.field public static final THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + +.field private static volatile sDefaultExecutor:Ljava/util/concurrent/Executor; + +.field private static final sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + +.field private static final sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/BlockingQueue", + "<", + "Ljava/lang/Runnable;", + ">;" + } + .end annotation +.end field + +.field private static final sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + +# instance fields +.field private final mFuture:Ljava/util/concurrent/FutureTask; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/FutureTask", + ";" + } + .end annotation +.end field + +.field private volatile mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + +.field private final mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + +.field private final mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + .annotation system Ldalvik/annotation/Signature; + value = { + "Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable", + ";" + } + .end annotation +.end field + + +# direct methods +.method static constructor ()V + .registers 8 + + .prologue + .line 54 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$1; + + invoke-direct {v0}, Landroid/support/v4/content/ModernAsyncTask$1;->()V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + .line 62 + new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue; + + const/16 v1, 0xa + + invoke-direct {v0, v1}, Ljava/util/concurrent/LinkedBlockingQueue;->(I)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + + .line 68 + new-instance v0, Ljava/util/concurrent/ThreadPoolExecutor; + + const/4 v1, 0x5 + + const/16 v2, 0x80 + + const-wide/16 v3, 0x1 + + sget-object v5, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; + + sget-object v6, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + + sget-object v7, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + invoke-direct/range {v0 .. v7}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + + .line 75 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + const/4 v1, 0x0 + + invoke-direct {v0, v1}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->(Landroid/support/v4/content/ModernAsyncTask$1;)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + .line 77 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + return-void +.end method + +.method public constructor ()V + .registers 3 + + .prologue + .line 117 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 81 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 83 + new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; + + invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->()V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + .line 118 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$2; + + invoke-direct {v0, p0}, Landroid/support/v4/content/ModernAsyncTask$2;->(Landroid/support/v4/content/ModernAsyncTask;)V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + .line 127 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$3; + + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + invoke-direct {v0, p0, v1}, Landroid/support/v4/content/ModernAsyncTask$3;->(Landroid/support/v4/content/ModernAsyncTask;Ljava/util/concurrent/Callable;)V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + .line 147 + return-void +.end method + +.method static synthetic access$200(Landroid/support/v4/content/ModernAsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean; + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + + .prologue + .line 47 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + return-object v0 +.end method + +.method static synthetic access$300(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)Ljava/lang/Object; + .registers 3 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method static synthetic access$400(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V + + return-void +.end method + +.method static synthetic access$500(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->finish(Ljava/lang/Object;)V + + return-void +.end method + +.method public static execute(Ljava/lang/Runnable;)V + .registers 2 + .param p0, "runnable" # Ljava/lang/Runnable; + + .prologue + .line 433 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + invoke-interface {v0, p0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V + + .line 434 + return-void +.end method + +.method private finish(Ljava/lang/Object;)V + .registers 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 458 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z + + move-result v0 + + if-eqz v0, :cond_e + + .line 459 + invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled(Ljava/lang/Object;)V + + .line 463 + :goto_9 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->FINISHED:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 464 + return-void + + .line 461 + :cond_e + invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onPostExecute(Ljava/lang/Object;)V + + goto :goto_9 +.end method + +.method public static init()V + .registers 1 + + .prologue + .line 106 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + invoke-virtual {v0}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->getLooper()Landroid/os/Looper; + + .line 107 + return-void +.end method + +.method private postResult(Ljava/lang/Object;)Ljava/lang/Object; + .registers 8 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)TResult;" + } + .end annotation + + .prologue + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + const/4 v5, 0x1 + + .line 157 + sget-object v1, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult; + + new-array v3, v5, [Ljava/lang/Object; + + const/4 v4, 0x0 + + aput-object p1, v3, v4 + + invoke-direct {v2, p0, v3}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;->(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V + + invoke-virtual {v1, v5, v2}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; + + move-result-object v0 + + .line 159 + .local v0, "message":Landroid/os/Message; + invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V + + .line 160 + return-object p1 +.end method + +.method private postResultIfNotInvoked(Ljava/lang/Object;)V + .registers 4 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 150 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z + + move-result v0 + + .line 151 + .local v0, "wasTaskInvoked":Z + if-nez v0, :cond_b + + .line 152 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; + + .line 154 + :cond_b + return-void +.end method + +.method public static setDefaultExecutor(Ljava/util/concurrent/Executor;)V + .registers 1 + .param p0, "exec" # Ljava/util/concurrent/Executor; + + .prologue + .line 111 + sput-object p0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + .line 112 + return-void +.end method + + +# virtual methods +.method public final cancel(Z)Z + .registers 3 + .param p1, "mayInterruptIfRunning" # Z + + .prologue + .line 306 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0, p1}, Ljava/util/concurrent/FutureTask;->cancel(Z)Z + + move-result v0 + + return v0 +.end method + +.method protected varargs abstract doInBackground([Ljava/lang/Object;)Ljava/lang/Object; + .annotation system Ldalvik/annotation/Signature; + value = { + "([TParams;)TResult;" + } + .end annotation +.end method + +.method public final varargs execute([Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + .registers 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TParams;)", + "Landroid/support/v4/content/ModernAsyncTask", + ";" + } + .end annotation + + .prologue + .line 371 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "params":[Ljava/lang/Object;, "[TParams;" + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + invoke-virtual {p0, v0, p1}, Landroid/support/v4/content/ModernAsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + + move-result-object v0 + + return-object v0 +.end method + +.method public final varargs executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + .registers 5 + .param p1, "exec" # Ljava/util/concurrent/Executor; + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/concurrent/Executor;", + "[TParams;)", + "Landroid/support/v4/content/ModernAsyncTask", + ";" + } + .end annotation + + .prologue + .line 406 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p2, "params":[Ljava/lang/Object;, "[TParams;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + sget-object v1, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status; + + if-eq v0, v1, :cond_13 + + .line 407 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$4;->$SwitchMap$android$support$v4$content$ModernAsyncTask$Status:[I + + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + invoke-virtual {v1}, Landroid/support/v4/content/ModernAsyncTask$Status;->ordinal()I + + move-result v1 + + aget v0, v0, v1 + + packed-switch v0, :pswitch_data_34 + + .line 418 + :cond_13 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->RUNNING:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 420 + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onPreExecute()V + + .line 422 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + iput-object p2, v0, Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;->mParams:[Ljava/lang/Object; + + .line 423 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-interface {p1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V + + .line 425 + return-object p0 + + .line 409 + :pswitch_24 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot execute task: the task is already running." + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 412 + :pswitch_2c + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot execute task: the task has already been executed (a task can be executed only once)" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 407 + :pswitch_data_34 + .packed-switch 0x1 + :pswitch_24 + :pswitch_2c + .end packed-switch +.end method + +.method public final get()Ljava/lang/Object; + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "()TResult;" + } + .end annotation + + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/InterruptedException;, + Ljava/util/concurrent/ExecutionException; + } + .end annotation + + .prologue + .line 321 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->get()Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public final get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; + .registers 5 + .param p1, "timeout" # J + .param p3, "unit" # Ljava/util/concurrent/TimeUnit; + .annotation system Ldalvik/annotation/Signature; + value = { + "(J", + "Ljava/util/concurrent/TimeUnit;", + ")TResult;" + } + .end annotation + + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/InterruptedException;, + Ljava/util/concurrent/ExecutionException;, + Ljava/util/concurrent/TimeoutException; + } + .end annotation + + .prologue + .line 341 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0, p1, p2, p3}, Ljava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public final getStatus()Landroid/support/v4/content/ModernAsyncTask$Status; + .registers 2 + + .prologue + .line 169 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + return-object v0 +.end method + +.method public final isCancelled()Z + .registers 2 + + .prologue + .line 273 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->isCancelled()Z + + move-result v0 + + return v0 +.end method + +.method protected onCancelled()V + .registers 1 + + .prologue + .line 260 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + return-void +.end method + +.method protected onCancelled(Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 244 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled()V + + .line 245 + return-void +.end method + +.method protected onPostExecute(Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 213 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + return-void +.end method + +.method protected onPreExecute()V + .registers 1 + + .prologue + .line 197 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + return-void +.end method + +.method protected varargs onProgressUpdate([Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TProgress;)V" + } + .end annotation + + .prologue + .line 226 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "values":[Ljava/lang/Object;, "[TProgress;" + return-void +.end method + +.method protected final varargs publishProgress([Ljava/lang/Object;)V + .registers 5 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TProgress;)V" + } + .end annotation + + .prologue + .line 451 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "values":[Ljava/lang/Object;, "[TProgress;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z + + move-result v0 + + if-nez v0, :cond_15 + + .line 452 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + const/4 v1, 0x2 + + new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult; + + invoke-direct {v2, p0, p1}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;->(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V + + .line 455 + :cond_15 + return-void +.end method diff --git a/samples/Smali/PenguinSprite.smali b/samples/Smali/PenguinSprite.smali new file mode 100644 index 00000000..a02c7913 --- /dev/null +++ b/samples/Smali/PenguinSprite.smali @@ -0,0 +1,781 @@ +.class public Lcom/tdq/game/shootbubble/sprite/PenguinSprite; +.super Lcom/tdq/game/shootbubble/sprite/Sprite; +.source "PenguinSprite.java" + + +# static fields +.field public static final LOST_SEQUENCE:[[I + +.field public static final STATE_FIRE:I = 0x2 + +.field public static final STATE_GAME_LOST:I = 0x5 + +.field public static final STATE_GAME_WON:I = 0x4 + +.field public static final STATE_TURN_LEFT:I = 0x0 + +.field public static final STATE_TURN_RIGHT:I = 0x1 + +.field public static final STATE_VOID:I = 0x3 + +.field public static final WON_SEQUENCE:[[I + + +# instance fields +.field private count:I + +.field private currentPenguin:I + +.field private finalState:I + +.field private nextPosition:I + +.field private rand:Ljava/util/Random; + +.field private spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + +# direct methods +.method static constructor ()V + .locals 8 + + .prologue + const/4 v7, 0x4 + + const/4 v6, 0x3 + + const/4 v5, 0x1 + + const/4 v4, 0x0 + + const/4 v3, 0x2 + + .line 67 + const/16 v0, 0x8 + + new-array v0, v0, [[I + + new-array v1, v3, [I + + fill-array-data v1, :array_0 + + aput-object v1, v0, v4 + + new-array v1, v3, [I + + fill-array-data v1, :array_1 + + aput-object v1, v0, v5 + + new-array v1, v3, [I + + fill-array-data v1, :array_2 + + aput-object v1, v0, v3 + + new-array v1, v3, [I + + fill-array-data v1, :array_3 + + aput-object v1, v0, v6 + + new-array v1, v3, [I + + fill-array-data v1, :array_4 + + aput-object v1, v0, v7 + + const/4 v1, 0x5 + + new-array v2, v3, [I + + fill-array-data v2, :array_5 + + aput-object v2, v0, v1 + + const/4 v1, 0x6 + + new-array v2, v3, [I + + fill-array-data v2, :array_6 + + aput-object v2, v0, v1 + + const/4 v1, 0x7 + + new-array v2, v3, [I + + fill-array-data v2, :array_7 + + aput-object v2, v0, v1 + + sput-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + .line 69 + const/16 v0, 0x8 + + new-array v0, v0, [[I + + new-array v1, v3, [I + + fill-array-data v1, :array_8 + + aput-object v1, v0, v4 + + new-array v1, v3, [I + + fill-array-data v1, :array_9 + + aput-object v1, v0, v5 + + new-array v1, v3, [I + + fill-array-data v1, :array_a + + aput-object v1, v0, v3 + + new-array v1, v3, [I + + fill-array-data v1, :array_b + + aput-object v1, v0, v6 + + new-array v1, v3, [I + + fill-array-data v1, :array_c + + aput-object v1, v0, v7 + + const/4 v1, 0x5 + + new-array v2, v3, [I + + fill-array-data v2, :array_d + + aput-object v2, v0, v1 + + const/4 v1, 0x6 + + new-array v2, v3, [I + + fill-array-data v2, :array_e + + aput-object v2, v0, v1 + + const/4 v1, 0x7 + + new-array v2, v3, [I + + fill-array-data v2, :array_f + + aput-object v2, v0, v1 + + sput-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + return-void + + .line 67 + :array_0 + .array-data 4 + 0x1 + 0x0 + .end array-data + + :array_1 + .array-data 4 + 0x2 + 0x8 + .end array-data + + :array_2 + .array-data 4 + 0x3 + 0x9 + .end array-data + + :array_3 + .array-data 4 + 0x4 + 0xa + .end array-data + + :array_4 + .array-data 4 + 0x5 + 0xb + .end array-data + + :array_5 + .array-data 4 + 0x6 + 0xc + .end array-data + + :array_6 + .array-data 4 + 0x7 + 0xd + .end array-data + + :array_7 + .array-data 4 + 0x5 + 0xe + .end array-data + + .line 69 + :array_8 + .array-data 4 + 0x1 + 0x0 + .end array-data + + :array_9 + .array-data 4 + 0x2 + 0x7 + .end array-data + + :array_a + .array-data 4 + 0x3 + 0x6 + .end array-data + + :array_b + .array-data 4 + 0x4 + 0xf + .end array-data + + :array_c + .array-data 4 + 0x5 + 0x10 + .end array-data + + :array_d + .array-data 4 + 0x6 + 0x11 + .end array-data + + :array_e + .array-data 4 + 0x7 + 0x12 + .end array-data + + :array_f + .array-data 4 + 0x4 + 0x13 + .end array-data +.end method + +.method public constructor (Lcom/tdq/game/shootbubble/sprite/BmpWrap;Ljava/util/Random;)V + .locals 6 + .param p1, "sprites" # Lcom/tdq/game/shootbubble/sprite/BmpWrap; + .param p2, "rand" # Ljava/util/Random; + + .prologue + const/4 v5, 0x0 + + .line 85 + new-instance v0, Landroid/graphics/Rect; + + const/16 v1, 0x169 + + const/16 v2, 0x1b4 + + const/16 v3, 0x1a0 + + const/16 v4, 0x1df + + invoke-direct {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->(IIII)V + + invoke-direct {p0, v0}, Lcom/tdq/game/shootbubble/sprite/Sprite;->(Landroid/graphics/Rect;)V + + .line 87 + iput-object p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + .line 88 + iput-object p2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + .line 90 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 92 + const/4 v0, 0x3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 93 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 94 + return-void +.end method + +.method public constructor (Lcom/tdq/game/shootbubble/sprite/BmpWrap;Ljava/util/Random;IIII)V + .locals 5 + .param p1, "sprites" # Lcom/tdq/game/shootbubble/sprite/BmpWrap; + .param p2, "rand" # Ljava/util/Random; + .param p3, "currentPenguin" # I + .param p4, "count" # I + .param p5, "finalState" # I + .param p6, "nextPosition" # I + + .prologue + .line 100 + new-instance v0, Landroid/graphics/Rect; + + const/16 v1, 0x169 + + const/16 v2, 0x1b4 + + const/16 v3, 0x1a0 + + const/16 v4, 0x1df + + invoke-direct {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->(IIII)V + + invoke-direct {p0, v0}, Lcom/tdq/game/shootbubble/sprite/Sprite;->(Landroid/graphics/Rect;)V + + .line 102 + iput-object p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + .line 103 + iput-object p2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + .line 104 + iput p3, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 105 + iput p4, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 106 + iput p5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 107 + iput p6, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 108 + return-void +.end method + + +# virtual methods +.method public getTypeId()I + .locals 1 + + .prologue + .line 124 + sget v0, Lcom/tdq/game/shootbubble/sprite/Sprite;->TYPE_PENGUIN:I + + return v0 +.end method + +.method public paint(Landroid/graphics/Canvas;DII)V + .locals 9 + .param p1, "c" # Landroid/graphics/Canvas; + .param p2, "scale" # D + .param p4, "dx" # I + .param p5, "dy" # I + + .prologue + .line 183 + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSpriteArea()Landroid/graphics/Rect; + + move-result-object v3 + + .line 184 + .local v3, "r":Landroid/graphics/Rect; + iget-object v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + const/16 v1, 0x168 + + iget v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + rem-int/lit8 v2, v2, 0x4 + + mul-int/lit8 v2, v2, 0x39 + + sub-int/2addr v1, v2 + + const/16 v2, 0x1b3 + + iget v4, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + div-int/lit8 v4, v4, 0x4 + + mul-int/lit8 v4, v4, 0x2d + + sub-int/2addr v2, v4 + + move-object v4, p1 + + move-wide v5, p2 + + move v7, p4 + + move v8, p5 + + invoke-static/range {v0 .. v8}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->drawImageClipped(Lcom/tdq/game/shootbubble/sprite/BmpWrap;IILandroid/graphics/Rect;Landroid/graphics/Canvas;DII)V + + .line 188 + return-void +.end method + +.method public saveState(Landroid/os/Bundle;Ljava/util/Vector;)V + .locals 5 + .param p1, "map" # Landroid/os/Bundle; + .param p2, "saved_sprites" # Ljava/util/Vector; + + .prologue + const/4 v4, 0x1 + + const/4 v3, 0x0 + + .line 111 + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v0 + + const/4 v1, -0x1 + + if-eq v0, v1, :cond_0 + + .line 120 + :goto_0 + return-void + + .line 114 + :cond_0 + invoke-super {p0, p1, p2}, Lcom/tdq/game/shootbubble/sprite/Sprite;->saveState(Landroid/os/Bundle;Ljava/util/Vector;)V + + .line 115 + const-string v0, "%d-currentPenguin" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 117 + const-string v0, "%d-count" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 118 + const-string v0, "%d-finalState" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 119 + const-string v0, "%d-nextPosition" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + goto :goto_0 +.end method + +.method public updateState(I)V + .locals 6 + .param p1, "state" # I + + .prologue + const/4 v5, 0x7 + + const/4 v1, 0x3 + + const/4 v4, 0x4 + + const/4 v3, 0x1 + + const/4 v2, 0x0 + + .line 129 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + if-eq v0, v1, :cond_2 + + .line 130 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 132 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + rem-int/lit8 v0, v0, 0x6 + + if-nez v0, :cond_0 + + .line 133 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + const/4 v1, 0x5 + + if-ne v0, v1, :cond_1 + + .line 134 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 135 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 179 + :cond_0 + :goto_0 + return-void + + .line 136 + :cond_1 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + if-ne v0, v4, :cond_0 + + .line 137 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 138 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + goto :goto_0 + + .line 142 + :cond_2 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 144 + packed-switch p1, :pswitch_data_0 + + .line 170 + :cond_3 + :goto_1 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + const/16 v1, 0x64 + + if-le v0, v1, :cond_5 + + .line 171 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 146 + :pswitch_0 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 147 + iput v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 150 + :pswitch_1 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 151 + const/4 v0, 0x2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 154 + :pswitch_2 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 155 + iput v3, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 158 + :pswitch_3 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-lt v0, v4, :cond_4 + + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-le v0, v5, :cond_3 + + .line 159 + :cond_4 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 164 + :pswitch_4 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 165 + iput p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 166 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 172 + :cond_5 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + rem-int/lit8 v0, v0, 0xf + + if-nez v0, :cond_0 + + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + const/16 v1, 0x19 + + if-le v0, v1, :cond_0 + + .line 173 + iget-object v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + invoke-virtual {v0}, Ljava/util/Random;->nextInt()I + + move-result v0 + + rem-int/lit8 v0, v0, 0x3 + + add-int/lit8 v0, v0, 0x4 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 174 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-ge v0, v4, :cond_0 + + .line 175 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 144 + nop + + :pswitch_data_0 + .packed-switch 0x0 + :pswitch_0 + :pswitch_1 + :pswitch_2 + :pswitch_3 + :pswitch_4 + :pswitch_4 + .end packed-switch +.end method diff --git a/samples/Smali/Subject.smali b/samples/Smali/Subject.smali new file mode 100644 index 00000000..4140157c --- /dev/null +++ b/samples/Smali/Subject.smali @@ -0,0 +1,1179 @@ +.class public final Lorg/apache/harmony/javax/security/auth/Subject; +.super Ljava/lang/Object; +.source "Subject.java" + +# interfaces +.implements Ljava/io/Serializable; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + } +.end annotation + + +# static fields +.field private static final _AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final serialVersionUID:J = -0x734dcd6cffcc0598L + + +# instance fields +.field private final principals:Ljava/util/Set; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/Set", + "<", + "Ljava/security/Principal;", + ">;" + } + .end annotation +.end field + +.field private transient privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + .annotation system Ldalvik/annotation/Signature; + value = { + "Lorg/apache/harmony/javax/security/auth/Subject$SecureSet", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation +.end field + +.field private transient publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + .annotation system Ldalvik/annotation/Signature; + value = { + "Lorg/apache/harmony/javax/security/auth/Subject$SecureSet", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation +.end field + +.field private readOnly:Z + + +# direct methods +.method static constructor ()V + .locals 2 + + .prologue + .line 59 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + const-string v1, "doAs" + + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 61 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 62 + const-string v1, "doAsPrivileged" + + .line 61 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 64 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 65 + const-string v1, "getSubject" + + .line 64 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 67 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 68 + const-string v1, "modifyPrincipals" + + .line 67 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 70 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 71 + const-string v1, "modifyPrivateCredentials" + + .line 70 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 73 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 74 + const-string v1, "modifyPublicCredentials" + + .line 73 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 76 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 77 + const-string v1, "setReadOnly" + + .line 76 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 55 + return-void +.end method + +.method public constructor ()V + .locals 2 + + .prologue + .line 94 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 95 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + .line 96 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 97 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 99 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 100 + return-void +.end method + +.method public constructor (ZLjava/util/Set;Ljava/util/Set;Ljava/util/Set;)V + .locals 2 + .param p1, "readOnly" # Z + .annotation system Ldalvik/annotation/Signature; + value = { + "(Z", + "Ljava/util/Set", + "<+", + "Ljava/security/Principal;", + ">;", + "Ljava/util/Set", + "<*>;", + "Ljava/util/Set", + "<*>;)V" + } + .end annotation + + .prologue + .line 119 + .local p2, "subjPrincipals":Ljava/util/Set;, "Ljava/util/Set<+Ljava/security/Principal;>;" + .local p3, "pubCredentials":Ljava/util/Set;, "Ljava/util/Set<*>;" + .local p4, "privCredentials":Ljava/util/Set;, "Ljava/util/Set<*>;" + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 122 + if-eqz p2, :cond_0 + + if-eqz p3, :cond_0 + + if-nez p4, :cond_1 + + .line 123 + :cond_0 + new-instance v0, Ljava/lang/NullPointerException; + + invoke-direct {v0}, Ljava/lang/NullPointerException;->()V + + throw v0 + + .line 126 + :cond_1 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p2}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + .line 127 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p3}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 128 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 130 + iput-boolean p1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 131 + return-void +.end method + +.method static synthetic access$0(Lorg/apache/harmony/javax/security/auth/Subject;)V + .locals 0 + + .prologue + .line 514 + invoke-direct {p0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkState()V + + return-void +.end method + +.method static synthetic access$1(Ljava/security/Permission;)V + .locals 0 + + .prologue + .line 506 + invoke-static {p0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + return-void +.end method + +.method static synthetic access$2()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 67 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method static synthetic access$3()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 70 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method static synthetic access$4(Lorg/apache/harmony/javax/security/auth/Subject;)Ljava/util/Set; + .locals 1 + + .prologue + .line 79 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + return-object v0 +.end method + +.method static synthetic access$5()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 73 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method private static checkPermission(Ljava/security/Permission;)V + .locals 1 + .param p0, "p" # Ljava/security/Permission; + + .prologue + .line 507 + invoke-static {}, Ljava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager; + + move-result-object v0 + + .line 508 + .local v0, "sm":Ljava/lang/SecurityManager; + if-eqz v0, :cond_0 + + .line 509 + invoke-virtual {v0, p0}, Ljava/lang/SecurityManager;->checkPermission(Ljava/security/Permission;)V + + .line 511 + :cond_0 + return-void +.end method + +.method private checkState()V + .locals 2 + + .prologue + .line 515 + iget-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + if-eqz v0, :cond_0 + + .line 516 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "auth.0A" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 518 + :cond_0 + return-void +.end method + +.method public static doAs(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object; + .locals 1 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + + .prologue + .line 146 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 148 + invoke-static {}, Ljava/security/AccessController;->getContext()Ljava/security/AccessControlContext; + + move-result-object v0 + + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public static doAs(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object; + .locals 1 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 223 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 225 + invoke-static {}, Ljava/security/AccessController;->getContext()Ljava/security/AccessControlContext; + + move-result-object v0 + + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public static doAsPrivileged(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 2 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + .param p2, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 170 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 172 + if-nez p2, :cond_0 + + .line 173 + new-instance v0, Ljava/security/AccessControlContext; + + .line 174 + const/4 v1, 0x0 + + new-array v1, v1, [Ljava/security/ProtectionDomain; + + invoke-direct {v0, v1}, Ljava/security/AccessControlContext;->([Ljava/security/ProtectionDomain;)V + + .line 173 + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + .line 176 + :goto_0 + return-object v0 + + :cond_0 + invoke-static {p0, p1, p2}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + goto :goto_0 +.end method + +.method public static doAsPrivileged(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 2 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .param p2, "context" # Ljava/security/AccessControlContext; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 250 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 252 + if-nez p2, :cond_0 + + .line 254 + new-instance v0, Ljava/security/AccessControlContext; + + const/4 v1, 0x0 + + new-array v1, v1, [Ljava/security/ProtectionDomain; + + invoke-direct {v0, v1}, Ljava/security/AccessControlContext;->([Ljava/security/ProtectionDomain;)V + + .line 253 + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + .line 256 + :goto_0 + return-object v0 + + :cond_0 + invoke-static {p0, p1, p2}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + goto :goto_0 +.end method + +.method private static doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 4 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + .param p2, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 187 + if-nez p0, :cond_0 + + .line 190 + const/4 v0, 0x0 + + .line 195 + .local v0, "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + :goto_0 + new-instance v1, Lorg/apache/harmony/javax/security/auth/Subject$1; + + invoke-direct {v1, p2, v0}, Lorg/apache/harmony/javax/security/auth/Subject$1;->(Ljava/security/AccessControlContext;Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;)V + + .line 202 + .local v1, "dccAction":Ljava/security/PrivilegedAction; + invoke-static {v1}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/security/AccessControlContext; + + .line 204 + .local v2, "newContext":Ljava/security/AccessControlContext; + invoke-static {p1, v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v3 + + return-object v3 + + .line 192 + .end local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + .end local v1 # "dccAction":Ljava/security/PrivilegedAction; + .end local v2 # "newContext":Ljava/security/AccessControlContext; + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->(Lorg/apache/harmony/javax/security/auth/Subject;)V + + .restart local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + goto :goto_0 +.end method + +.method private static doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 4 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .param p2, "context" # Ljava/security/AccessControlContext; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 268 + if-nez p0, :cond_0 + + .line 271 + const/4 v0, 0x0 + + .line 276 + .local v0, "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + :goto_0 + new-instance v1, Lorg/apache/harmony/javax/security/auth/Subject$2; + + invoke-direct {v1, p2, v0}, Lorg/apache/harmony/javax/security/auth/Subject$2;->(Ljava/security/AccessControlContext;Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;)V + + .line 282 + .local v1, "dccAction":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + invoke-static {v1}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/security/AccessControlContext; + + .line 284 + .local v2, "newContext":Ljava/security/AccessControlContext; + invoke-static {p1, v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v3 + + return-object v3 + + .line 273 + .end local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + .end local v1 # "dccAction":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + .end local v2 # "newContext":Ljava/security/AccessControlContext; + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->(Lorg/apache/harmony/javax/security/auth/Subject;)V + + .restart local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + goto :goto_0 +.end method + +.method public static getSubject(Ljava/security/AccessControlContext;)Lorg/apache/harmony/javax/security/auth/Subject; + .locals 4 + .param p0, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 488 + sget-object v2, Lorg/apache/harmony/javax/security/auth/Subject;->_SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v2}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 489 + if-nez p0, :cond_0 + + .line 490 + new-instance v2, Ljava/lang/NullPointerException; + + const-string v3, "auth.09" + + invoke-direct {v2, v3}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V + + throw v2 + + .line 492 + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$3; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/Subject$3;->(Ljava/security/AccessControlContext;)V + + .line 497 + .local v0, "action":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + invoke-static {v0}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/security/DomainCombiner; + + .line 499 + .local v1, "combiner":Ljava/security/DomainCombiner; + if-eqz v1, :cond_1 + + instance-of v2, v1, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + if-nez v2, :cond_2 + + .line 500 + :cond_1 + const/4 v2, 0x0 + + .line 502 + .end local v1 # "combiner":Ljava/security/DomainCombiner; + :goto_0 + return-object v2 + + .restart local v1 # "combiner":Ljava/security/DomainCombiner; + :cond_2 + check-cast v1, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + .end local v1 # "combiner":Ljava/security/DomainCombiner; + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->getSubject()Lorg/apache/harmony/javax/security/auth/Subject; + + move-result-object v2 + + goto :goto_0 +.end method + +.method private readObject(Ljava/io/ObjectInputStream;)V + .locals 2 + .param p1, "in" # Ljava/io/ObjectInputStream; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException;, + Ljava/lang/ClassNotFoundException; + } + .end annotation + + .prologue + .line 467 + invoke-virtual {p1}, Ljava/io/ObjectInputStream;->defaultReadObject()V + + .line 469 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 470 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 471 + return-void +.end method + +.method private writeObject(Ljava/io/ObjectOutputStream;)V + .locals 0 + .param p1, "out" # Ljava/io/ObjectOutputStream; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 474 + invoke-virtual {p1}, Ljava/io/ObjectOutputStream;->defaultWriteObject()V + + .line 475 + return-void +.end method + + +# virtual methods +.method public equals(Ljava/lang/Object;)Z + .locals 5 + .param p1, "obj" # Ljava/lang/Object; + + .prologue + const/4 v1, 0x1 + + const/4 v2, 0x0 + + .line 301 + if-ne p0, p1, :cond_1 + + .line 316 + :cond_0 + :goto_0 + return v1 + + .line 305 + :cond_1 + if-eqz p1, :cond_2 + + invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object v3 + + invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object v4 + + if-eq v3, v4, :cond_3 + + :cond_2 + move v1, v2 + + .line 306 + goto :goto_0 + + :cond_3 + move-object v0, p1 + + .line 309 + check-cast v0, Lorg/apache/harmony/javax/security/auth/Subject; + + .line 311 + .local v0, "that":Lorg/apache/harmony/javax/security/auth/Subject; + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v3, v4}, Ljava/util/Set;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-eqz v3, :cond_4 + + .line 312 + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v3, v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-eqz v3, :cond_4 + + .line 313 + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v3, v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-nez v3, :cond_0 + + :cond_4 + move v1, v2 + + .line 316 + goto :goto_0 +.end method + +.method public getPrincipals()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/security/Principal;", + ">;" + } + .end annotation + + .prologue + .line 325 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + return-object v0 +.end method + +.method public getPrincipals(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 341 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + check-cast v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public getPrivateCredentials()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation + + .prologue + .line 350 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + return-object v0 +.end method + +.method public getPrivateCredentials(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 365 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public getPublicCredentials()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation + + .prologue + .line 374 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + return-object v0 +.end method + +.method public getPublicCredentials(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 390 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public hashCode()I + .locals 2 + + .prologue + .line 400 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v0}, Ljava/util/Set;->hashCode()I + + move-result v0 + + iget-object v1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->hashCode()I + + move-result v1 + + add-int/2addr v0, v1 + + .line 401 + iget-object v1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->hashCode()I + + move-result v1 + + .line 400 + add-int/2addr v0, v1 + + return v0 +.end method + +.method public isReadOnly()Z + .locals 1 + + .prologue + .line 422 + iget-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + return v0 +.end method + +.method public setReadOnly()V + .locals 1 + + .prologue + .line 411 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 413 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 414 + return-void +.end method + +.method public toString()Ljava/lang/String; + .locals 6 + + .prologue + const/16 v5, 0xa + + .line 433 + new-instance v0, Ljava/lang/StringBuilder; + + const-string v4, "Subject:\n" + + invoke-direct {v0, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + .line 435 + .local v0, "buf":Ljava/lang/StringBuilder; + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 436 + .local v2, "it":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" + :goto_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-nez v4, :cond_0 + + .line 442 + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 443 + :goto_1 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-nez v4, :cond_1 + + .line 449 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I + + move-result v4 + + add-int/lit8 v3, v4, -0x1 + + .line 450 + .local v3, "offset":I + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 452 + :goto_2 + :try_start_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + :try_end_0 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v4 + + if-nez v4, :cond_2 + + .line 461 + :goto_3 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v4 + + return-object v4 + + .line 437 + .end local v3 # "offset":I + :cond_0 + const-string v4, "\tPrincipal: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 438 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 439 + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + goto :goto_0 + + .line 444 + :cond_1 + const-string v4, "\tPublic Credential: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 445 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 446 + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + goto :goto_1 + + .line 453 + .restart local v3 # "offset":I + :cond_2 + :try_start_1 + const-string v4, "\tPrivate Credential: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 454 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 455 + const/16 v4, 0xa + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + :try_end_1 + .catch Ljava/lang/SecurityException; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_2 + + .line 457 + :catch_0 + move-exception v1 + + .line 458 + .local v1, "e":Ljava/lang/SecurityException; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I + + move-result v4 + + invoke-virtual {v0, v3, v4}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; + + .line 459 + const-string v4, "\tPrivate Credentials: no accessible information\n" + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + goto :goto_3 +.end method diff --git a/samples/Smali/ViewDragHelper.smali b/samples/Smali/ViewDragHelper.smali new file mode 100644 index 00000000..18760567 --- /dev/null +++ b/samples/Smali/ViewDragHelper.smali @@ -0,0 +1,4382 @@ +.class public Landroid/support/v4/widget/ViewDragHelper; +.super Ljava/lang/Object; +.source "ViewDragHelper.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/widget/ViewDragHelper$Callback; + } +.end annotation + + +# static fields +.field private static final BASE_SETTLE_DURATION:I = 0x100 + +.field public static final DIRECTION_ALL:I = 0x3 + +.field public static final DIRECTION_HORIZONTAL:I = 0x1 + +.field public static final DIRECTION_VERTICAL:I = 0x2 + +.field public static final EDGE_ALL:I = 0xf + +.field public static final EDGE_BOTTOM:I = 0x8 + +.field public static final EDGE_LEFT:I = 0x1 + +.field public static final EDGE_RIGHT:I = 0x2 + +.field private static final EDGE_SIZE:I = 0x14 + +.field public static final EDGE_TOP:I = 0x4 + +.field public static final INVALID_POINTER:I = -0x1 + +.field private static final MAX_SETTLE_DURATION:I = 0x258 + +.field public static final STATE_DRAGGING:I = 0x1 + +.field public static final STATE_IDLE:I = 0x0 + +.field public static final STATE_SETTLING:I = 0x2 + +.field private static final TAG:Ljava/lang/String; = "ViewDragHelper" + +.field private static final sInterpolator:Landroid/view/animation/Interpolator; + + +# instance fields +.field private mActivePointerId:I + +.field private final mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + +.field private mCapturedView:Landroid/view/View; + +.field private mDragState:I + +.field private mEdgeDragsInProgress:[I + +.field private mEdgeDragsLocked:[I + +.field private mEdgeSize:I + +.field private mInitialEdgesTouched:[I + +.field private mInitialMotionX:[F + +.field private mInitialMotionY:[F + +.field private mLastMotionX:[F + +.field private mLastMotionY:[F + +.field private mMaxVelocity:F + +.field private mMinVelocity:F + +.field private final mParentView:Landroid/view/ViewGroup; + +.field private mPointersDown:I + +.field private mReleaseInProgress:Z + +.field private mScroller:Landroid/support/v4/widget/ScrollerCompat; + +.field private final mSetIdleRunnable:Ljava/lang/Runnable; + +.field private mTouchSlop:I + +.field private mTrackingEdges:I + +.field private mVelocityTracker:Landroid/view/VelocityTracker; + + +# direct methods +.method static constructor ()V + .registers 1 + + .prologue + .line 326 + new-instance v0, Landroid/support/v4/widget/ViewDragHelper$1; + + invoke-direct {v0}, Landroid/support/v4/widget/ViewDragHelper$1;->()V + + sput-object v0, Landroid/support/v4/widget/ViewDragHelper;->sInterpolator:Landroid/view/animation/Interpolator; + + return-void +.end method + +.method private constructor (Landroid/content/Context;Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)V + .registers 8 + .param p1, "context" # Landroid/content/Context; + .param p2, "forParent" # Landroid/view/ViewGroup; + .param p3, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 373 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 115 + const/4 v2, -0x1 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 333 + new-instance v2, Landroid/support/v4/widget/ViewDragHelper$2; + + invoke-direct {v2, p0}, Landroid/support/v4/widget/ViewDragHelper$2;->(Landroid/support/v4/widget/ViewDragHelper;)V + + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mSetIdleRunnable:Ljava/lang/Runnable; + + .line 374 + if-nez p2, :cond_17 + + .line 375 + new-instance v2, Ljava/lang/IllegalArgumentException; + + const-string v3, "Parent view may not be null" + + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v2 + + .line 377 + :cond_17 + if-nez p3, :cond_21 + + .line 378 + new-instance v2, Ljava/lang/IllegalArgumentException; + + const-string v3, "Callback may not be null" + + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v2 + + .line 381 + :cond_21 + iput-object p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + .line 382 + iput-object p3, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + .line 384 + invoke-static {p1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; + + move-result-object v1 + + .line 385 + .local v1, "vc":Landroid/view/ViewConfiguration; + invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; + + move-result-object v2 + + invoke-virtual {v2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; + + move-result-object v2 + + iget v0, v2, Landroid/util/DisplayMetrics;->density:F + + .line 386 + .local v0, "density":F + const/high16 v2, 0x41a00000 + + mul-float/2addr v2, v0 + + const/high16 v3, 0x3f000000 + + add-float/2addr v2, v3 + + float-to-int v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + .line 388 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I + + move-result v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + .line 389 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I + + move-result v2 + + int-to-float v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + .line 390 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I + + move-result v2 + + int-to-float v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + .line 391 + sget-object v2, Landroid/support/v4/widget/ViewDragHelper;->sInterpolator:Landroid/view/animation/Interpolator; + + invoke-static {p1, v2}, Landroid/support/v4/widget/ScrollerCompat;->create(Landroid/content/Context;Landroid/view/animation/Interpolator;)Landroid/support/v4/widget/ScrollerCompat; + + move-result-object v2 + + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + .line 392 + return-void +.end method + +.method private checkNewEdgeDrag(FFII)Z + .registers 10 + .param p1, "delta" # F + .param p2, "odelta" # F + .param p3, "pointerId" # I + .param p4, "edge" # I + + .prologue + const/4 v2, 0x0 + + .line 1218 + invoke-static {p1}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + .line 1219 + .local v0, "absDelta":F + invoke-static {p2}, Ljava/lang/Math;->abs(F)F + + move-result v1 + + .line 1221 + .local v1, "absODelta":F + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-ne v3, p4, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v3, p4 + + if-eqz v3, :cond_31 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-eq v3, p4, :cond_31 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-eq v3, p4, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpg-float v3, v0, v3 + + if-gtz v3, :cond_32 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpg-float v3, v1, v3 + + if-gtz v3, :cond_32 + + .line 1231 + :cond_31 + :goto_31 + return v2 + + .line 1227 + :cond_32 + const/high16 v3, 0x3f000000 + + mul-float/2addr v3, v1 + + cmpg-float v3, v0, v3 + + if-gez v3, :cond_49 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v3, p4}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeLock(I)Z + + move-result v3 + + if-eqz v3, :cond_49 + + .line 1228 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aget v4, v3, p3 + + or-int/2addr v4, p4 + + aput v4, v3, p3 + + goto :goto_31 + + .line 1231 + :cond_49 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-nez v3, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpl-float v3, v0, v3 + + if-lez v3, :cond_31 + + const/4 v2, 0x1 + + goto :goto_31 +.end method + +.method private checkTouchSlop(Landroid/view/View;FF)Z + .registers 11 + .param p1, "child" # Landroid/view/View; + .param p2, "dx" # F + .param p3, "dy" # F + + .prologue + const/4 v2, 0x1 + + const/4 v3, 0x0 + + .line 1245 + if-nez p1, :cond_6 + + move v2, v3 + + .line 1258 + :cond_5 + :goto_5 + return v2 + + .line 1248 + :cond_6 + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewHorizontalDragRange(Landroid/view/View;)I + + move-result v4 + + if-lez v4, :cond_2d + + move v0, v2 + + .line 1249 + .local v0, "checkHorizontal":Z + :goto_f + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewVerticalDragRange(Landroid/view/View;)I + + move-result v4 + + if-lez v4, :cond_2f + + move v1, v2 + + .line 1251 + .local v1, "checkVertical":Z + :goto_18 + if-eqz v0, :cond_31 + + if-eqz v1, :cond_31 + + .line 1252 + mul-float v4, p2, p2 + + mul-float v5, p3, p3 + + add-float/2addr v4, v5 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + iget v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + mul-int/2addr v5, v6 + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + .end local v0 # "checkHorizontal":Z + .end local v1 # "checkVertical":Z + :cond_2d + move v0, v3 + + .line 1248 + goto :goto_f + + .restart local v0 # "checkHorizontal":Z + :cond_2f + move v1, v3 + + .line 1249 + goto :goto_18 + + .line 1253 + .restart local v1 # "checkVertical":Z + :cond_31 + if-eqz v0, :cond_40 + + .line 1254 + invoke-static {p2}, Ljava/lang/Math;->abs(F)F + + move-result v4 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + .line 1255 + :cond_40 + if-eqz v1, :cond_4f + + .line 1256 + invoke-static {p3}, Ljava/lang/Math;->abs(F)F + + move-result v4 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + :cond_4f + move v2, v3 + + .line 1258 + goto :goto_5 +.end method + +.method private clampMag(FFF)F + .registers 7 + .param p1, "value" # F + .param p2, "absMin" # F + .param p3, "absMax" # F + + .prologue + const/4 v1, 0x0 + + .line 667 + invoke-static {p1}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + .line 668 + .local v0, "absValue":F + cmpg-float v2, v0, p2 + + if-gez v2, :cond_b + + move p3, v1 + + .line 670 + .end local p3 # "absMax":F + :cond_a + :goto_a + return p3 + + .line 669 + .restart local p3 # "absMax":F + :cond_b + cmpl-float v2, v0, p3 + + if-lez v2, :cond_15 + + cmpl-float v1, p1, v1 + + if-gtz v1, :cond_a + + neg-float p3, p3 + + goto :goto_a + + :cond_15 + move p3, p1 + + .line 670 + goto :goto_a +.end method + +.method private clampMag(III)I + .registers 5 + .param p1, "value" # I + .param p2, "absMin" # I + .param p3, "absMax" # I + + .prologue + .line 650 + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v0 + + .line 651 + .local v0, "absValue":I + if-ge v0, p2, :cond_8 + + const/4 p3, 0x0 + + .line 653 + .end local p3 # "absMax":I + :cond_7 + :goto_7 + return p3 + + .line 652 + .restart local p3 # "absMax":I + :cond_8 + if-le v0, p3, :cond_e + + if-gtz p1, :cond_7 + + neg-int p3, p3 + + goto :goto_7 + + :cond_e + move p3, p1 + + .line 653 + goto :goto_7 +.end method + +.method private clearMotionHistory()V + .registers 4 + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 770 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-nez v0, :cond_7 + + .line 781 + :goto_6 + return-void + + .line 773 + :cond_7 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 774 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 775 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 776 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 777 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 778 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 779 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 780 + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + goto :goto_6 +.end method + +.method private clearMotionHistory(I)V + .registers 5 + .param p1, "pointerId" # I + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 784 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-nez v0, :cond_7 + + .line 795 + :goto_6 + return-void + + .line 787 + :cond_7 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aput v1, v0, p1 + + .line 788 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aput v1, v0, p1 + + .line 789 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput v1, v0, p1 + + .line 790 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput v1, v0, p1 + + .line 791 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aput v2, v0, p1 + + .line 792 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aput v2, v0, p1 + + .line 793 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aput v2, v0, p1 + + .line 794 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + const/4 v1, 0x1 + + shl-int/2addr v1, p1 + + xor-int/lit8 v1, v1, -0x1 + + and-int/2addr v0, v1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + goto :goto_6 +.end method + +.method private computeAxisDuration(III)I + .registers 14 + .param p1, "delta" # I + .param p2, "velocity" # I + .param p3, "motionRange" # I + + .prologue + const/high16 v9, 0x3f800000 + + .line 618 + if-nez p1, :cond_6 + + .line 619 + const/4 v6, 0x0 + + .line 636 + :goto_5 + return v6 + + .line 622 + :cond_6 + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v6}, Landroid/view/ViewGroup;->getWidth()I + + move-result v5 + + .line 623 + .local v5, "width":I + div-int/lit8 v3, v5, 0x2 + + .line 624 + .local v3, "halfWidth":I + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v6 + + int-to-float v6, v6 + + int-to-float v7, v5 + + div-float/2addr v6, v7 + + invoke-static {v9, v6}, Ljava/lang/Math;->min(FF)F + + move-result v1 + + .line 625 + .local v1, "distanceRatio":F + int-to-float v6, v3 + + int-to-float v7, v3 + + invoke-direct {p0, v1}, Landroid/support/v4/widget/ViewDragHelper;->distanceInfluenceForSnapDuration(F)F + + move-result v8 + + mul-float/2addr v7, v8 + + add-float v0, v6, v7 + + .line 629 + .local v0, "distance":F + invoke-static {p2}, Ljava/lang/Math;->abs(I)I + + move-result p2 + + .line 630 + if-lez p2, :cond_3f + + .line 631 + const/high16 v6, 0x447a0000 + + int-to-float v7, p2 + + div-float v7, v0, v7 + + invoke-static {v7}, Ljava/lang/Math;->abs(F)F + + move-result v7 + + mul-float/2addr v6, v7 + + invoke-static {v6}, Ljava/lang/Math;->round(F)I + + move-result v6 + + mul-int/lit8 v2, v6, 0x4 + + .line 636 + .local v2, "duration":I + :goto_38 + const/16 v6, 0x258 + + invoke-static {v2, v6}, Ljava/lang/Math;->min(II)I + + move-result v6 + + goto :goto_5 + + .line 633 + .end local v2 # "duration":I + :cond_3f + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v6 + + int-to-float v6, v6 + + int-to-float v7, p3 + + div-float v4, v6, v7 + + .line 634 + .local v4, "range":F + add-float v6, v4, v9 + + const/high16 v7, 0x43800000 + + mul-float/2addr v6, v7 + + float-to-int v2, v6 + + .restart local v2 # "duration":I + goto :goto_38 +.end method + +.method private computeSettleDuration(Landroid/view/View;IIII)I + .registers 20 + .param p1, "child" # Landroid/view/View; + .param p2, "dx" # I + .param p3, "dy" # I + .param p4, "xvel" # I + .param p5, "yvel" # I + + .prologue + .line 597 + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + float-to-int v12, v12 + + iget v13, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + float-to-int v13, v13 + + move/from16 v0, p4 + + invoke-direct {p0, v0, v12, v13}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(III)I + + move-result p4 + + .line 598 + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + float-to-int v12, v12 + + iget v13, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + float-to-int v13, v13 + + move/from16 v0, p5 + + invoke-direct {p0, v0, v12, v13}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(III)I + + move-result p5 + + .line 599 + invoke-static/range {p2 .. p2}, Ljava/lang/Math;->abs(I)I + + move-result v2 + + .line 600 + .local v2, "absDx":I + invoke-static/range {p3 .. p3}, Ljava/lang/Math;->abs(I)I + + move-result v3 + + .line 601 + .local v3, "absDy":I + invoke-static/range {p4 .. p4}, Ljava/lang/Math;->abs(I)I + + move-result v4 + + .line 602 + .local v4, "absXVel":I + invoke-static/range {p5 .. p5}, Ljava/lang/Math;->abs(I)I + + move-result v5 + + .line 603 + .local v5, "absYVel":I + add-int v7, v4, v5 + + .line 604 + .local v7, "addedVel":I + add-int v6, v2, v3 + + .line 606 + .local v6, "addedDistance":I + if-eqz p4, :cond_5b + + int-to-float v12, v4 + + int-to-float v13, v7 + + div-float v9, v12, v13 + + .line 608 + .local v9, "xweight":F + :goto_32 + if-eqz p5, :cond_60 + + int-to-float v12, v5 + + int-to-float v13, v7 + + div-float v11, v12, v13 + + .line 611 + .local v11, "yweight":F + :goto_38 + iget-object v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v12, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewHorizontalDragRange(Landroid/view/View;)I + + move-result v12 + + move/from16 v0, p2 + + move/from16 v1, p4 + + invoke-direct {p0, v0, v1, v12}, Landroid/support/v4/widget/ViewDragHelper;->computeAxisDuration(III)I + + move-result v8 + + .line 612 + .local v8, "xduration":I + iget-object v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v12, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewVerticalDragRange(Landroid/view/View;)I + + move-result v12 + + move/from16 v0, p3 + + move/from16 v1, p5 + + invoke-direct {p0, v0, v1, v12}, Landroid/support/v4/widget/ViewDragHelper;->computeAxisDuration(III)I + + move-result v10 + + .line 614 + .local v10, "yduration":I + int-to-float v12, v8 + + mul-float/2addr v12, v9 + + int-to-float v13, v10 + + mul-float/2addr v13, v11 + + add-float/2addr v12, v13 + + float-to-int v12, v12 + + return v12 + + .line 606 + .end local v8 # "xduration":I + .end local v9 # "xweight":F + .end local v10 # "yduration":I + .end local v11 # "yweight":F + :cond_5b + int-to-float v12, v2 + + int-to-float v13, v6 + + div-float v9, v12, v13 + + goto :goto_32 + + .line 608 + .restart local v9 # "xweight":F + :cond_60 + int-to-float v12, v3 + + int-to-float v13, v6 + + div-float v11, v12, v13 + + goto :goto_38 +.end method + +.method public static create(Landroid/view/ViewGroup;FLandroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + .registers 6 + .param p0, "forParent" # Landroid/view/ViewGroup; + .param p1, "sensitivity" # F + .param p2, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 360 + invoke-static {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->create(Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + + move-result-object v0 + + .line 361 + .local v0, "helper":Landroid/support/v4/widget/ViewDragHelper; + iget v1, v0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v1, v1 + + const/high16 v2, 0x3f800000 + + div-float/2addr v2, p1 + + mul-float/2addr v1, v2 + + float-to-int v1, v1 + + iput v1, v0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + .line 362 + return-object v0 +.end method + +.method public static create(Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + .registers 4 + .param p0, "forParent" # Landroid/view/ViewGroup; + .param p1, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 347 + new-instance v0, Landroid/support/v4/widget/ViewDragHelper; + + invoke-virtual {p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; + + move-result-object v1 + + invoke-direct {v0, v1, p0, p1}, Landroid/support/v4/widget/ViewDragHelper;->(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)V + + return-object v0 +.end method + +.method private dispatchViewReleased(FF)V + .registers 7 + .param p1, "xvel" # F + .param p2, "yvel" # F + + .prologue + const/4 v3, 0x1 + + const/4 v2, 0x0 + + .line 759 + iput-boolean v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + .line 760 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewReleased(Landroid/view/View;FF)V + + .line 761 + iput-boolean v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + .line 763 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v3, :cond_14 + + .line 765 + invoke-virtual {p0, v2}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 767 + :cond_14 + return-void +.end method + +.method private distanceInfluenceForSnapDuration(F)F + .registers 6 + .param p1, "f" # F + + .prologue + .line 674 + const/high16 v0, 0x3f000000 + + sub-float/2addr p1, v0 + + .line 675 + float-to-double v0, p1 + + const-wide v2, 0x3fde28c7460698c7L + + mul-double/2addr v0, v2 + + double-to-float p1, v0 + + .line 676 + float-to-double v0, p1 + + invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D + + move-result-wide v0 + + double-to-float v0, v0 + + return v0 +.end method + +.method private dragTo(IIII)V + .registers 13 + .param p1, "left" # I + .param p2, "top" # I + .param p3, "dx" # I + .param p4, "dy" # I + + .prologue + .line 1366 + move v2, p1 + + .line 1367 + .local v2, "clampedX":I + move v3, p2 + + .line 1368 + .local v3, "clampedY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v6 + + .line 1369 + .local v6, "oldLeft":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v7 + + .line 1370 + .local v7, "oldTop":I + if-eqz p3, :cond_1f + + .line 1371 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p1, p3}, Landroid/support/v4/widget/ViewDragHelper$Callback;->clampViewPositionHorizontal(Landroid/view/View;II)I + + move-result v2 + + .line 1372 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v1, v2, v6 + + invoke-virtual {v0, v1}, Landroid/view/View;->offsetLeftAndRight(I)V + + .line 1374 + :cond_1f + if-eqz p4, :cond_30 + + .line 1375 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p2, p4}, Landroid/support/v4/widget/ViewDragHelper$Callback;->clampViewPositionVertical(Landroid/view/View;II)I + + move-result v3 + + .line 1376 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v1, v3, v7 + + invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V + + .line 1379 + :cond_30 + if-nez p3, :cond_34 + + if-eqz p4, :cond_3f + + .line 1380 + :cond_34 + sub-int v4, v2, v6 + + .line 1381 + .local v4, "clampedDx":I + sub-int v5, v3, v7 + + .line 1382 + .local v5, "clampedDy":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 1385 + .end local v4 # "clampedDx":I + .end local v5 # "clampedDy":I + :cond_3f + return-void +.end method + +.method private ensureMotionHistorySizeForId(I)V + .registers 12 + .param p1, "pointerId" # I + + .prologue + const/4 v9, 0x0 + + .line 798 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-eqz v7, :cond_a + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v7, v7 + + if-gt v7, p1, :cond_70 + + .line 799 + :cond_a + add-int/lit8 v7, p1, 0x1 + + new-array v3, v7, [F + + .line 800 + .local v3, "imx":[F + add-int/lit8 v7, p1, 0x1 + + new-array v4, v7, [F + + .line 801 + .local v4, "imy":[F + add-int/lit8 v7, p1, 0x1 + + new-array v5, v7, [F + + .line 802 + .local v5, "lmx":[F + add-int/lit8 v7, p1, 0x1 + + new-array v6, v7, [F + + .line 803 + .local v6, "lmy":[F + add-int/lit8 v7, p1, 0x1 + + new-array v2, v7, [I + + .line 804 + .local v2, "iit":[I + add-int/lit8 v7, p1, 0x1 + + new-array v0, v7, [I + + .line 805 + .local v0, "edip":[I + add-int/lit8 v7, p1, 0x1 + + new-array v1, v7, [I + + .line 807 + .local v1, "edl":[I + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-eqz v7, :cond_62 + + .line 808 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v8, v8 + + invoke-static {v7, v9, v3, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 809 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + array-length v8, v8 + + invoke-static {v7, v9, v4, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 810 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + array-length v8, v8 + + invoke-static {v7, v9, v5, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 811 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + array-length v8, v8 + + invoke-static {v7, v9, v6, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 812 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + array-length v8, v8 + + invoke-static {v7, v9, v2, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 813 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + array-length v8, v8 + + invoke-static {v7, v9, v0, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 814 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + array-length v8, v8 + + invoke-static {v7, v9, v1, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 817 + :cond_62 + iput-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + .line 818 + iput-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + .line 819 + iput-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + .line 820 + iput-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + .line 821 + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + .line 822 + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + .line 823 + iput-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + .line 825 + .end local v0 # "edip":[I + .end local v1 # "edl":[I + .end local v2 # "iit":[I + .end local v3 # "imx":[F + .end local v4 # "imy":[F + .end local v5 # "lmx":[F + .end local v6 # "lmy":[F + :cond_70 + return-void +.end method + +.method private forceSettleCapturedViewAt(IIII)Z + .registers 16 + .param p1, "finalLeft" # I + .param p2, "finalTop" # I + .param p3, "xvel" # I + .param p4, "yvel" # I + + .prologue + const/4 v0, 0x0 + + .line 577 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getLeft()I + + move-result v10 + + .line 578 + .local v10, "startLeft":I + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getTop()I + + move-result v6 + + .line 579 + .local v6, "startTop":I + sub-int v2, p1, v10 + + .line 580 + .local v2, "dx":I + sub-int v3, p2, v6 + + .line 582 + .local v3, "dy":I + if-nez v2, :cond_1e + + if-nez v3, :cond_1e + + .line 584 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 585 + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 593 + :goto_1d + return v0 + + .line 589 + :cond_1e + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object v0, p0 + + move v4, p3 + + move v5, p4 + + invoke-direct/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper;->computeSettleDuration(Landroid/view/View;IIII)I + + move-result v9 + + .line 590 + .local v9, "duration":I + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + move v5, v10 + + move v7, v2 + + move v8, v3 + + invoke-virtual/range {v4 .. v9}, Landroid/support/v4/widget/ScrollerCompat;->startScroll(IIIII)V + + .line 592 + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 593 + const/4 v0, 0x1 + + goto :goto_1d +.end method + +.method private getEdgesTouched(II)I + .registers 6 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1440 + const/4 v0, 0x0 + + .line 1442 + .local v0, "result":I + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getLeft()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + add-int/2addr v1, v2 + + if-ge p1, v1, :cond_e + + or-int/lit8 v0, v0, 0x1 + + .line 1443 + :cond_e + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getTop()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + add-int/2addr v1, v2 + + if-ge p2, v1, :cond_1b + + or-int/lit8 v0, v0, 0x4 + + .line 1444 + :cond_1b + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getRight()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + sub-int/2addr v1, v2 + + if-le p1, v1, :cond_28 + + or-int/lit8 v0, v0, 0x2 + + .line 1445 + :cond_28 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getBottom()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + sub-int/2addr v1, v2 + + if-le p2, v1, :cond_35 + + or-int/lit8 v0, v0, 0x8 + + .line 1447 + :cond_35 + return v0 +.end method + +.method private releaseViewForPointerUp()V + .registers 6 + + .prologue + .line 1355 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + const/16 v3, 0x3e8 + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-virtual {v2, v3, v4}, Landroid/view/VelocityTracker;->computeCurrentVelocity(IF)V + + .line 1356 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v2, v3}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v2 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-direct {p0, v2, v3, v4}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(FFF)F + + move-result v0 + + .line 1359 + .local v0, "xvel":F + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v2, v3}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v2 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-direct {p0, v2, v3, v4}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(FFF)F + + move-result v1 + + .line 1362 + .local v1, "yvel":F + invoke-direct {p0, v0, v1}, Landroid/support/v4/widget/ViewDragHelper;->dispatchViewReleased(FF)V + + .line 1363 + return-void +.end method + +.method private reportNewEdgeDrags(FFI)V + .registers 7 + .param p1, "dx" # F + .param p2, "dy" # F + .param p3, "pointerId" # I + + .prologue + .line 1197 + const/4 v0, 0x0 + + .line 1198 + .local v0, "dragsStarted":I + const/4 v1, 0x1 + + invoke-direct {p0, p1, p2, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_a + + .line 1199 + or-int/lit8 v0, v0, 0x1 + + .line 1201 + :cond_a + const/4 v1, 0x4 + + invoke-direct {p0, p2, p1, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_13 + + .line 1202 + or-int/lit8 v0, v0, 0x4 + + .line 1204 + :cond_13 + const/4 v1, 0x2 + + invoke-direct {p0, p1, p2, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_1c + + .line 1205 + or-int/lit8 v0, v0, 0x2 + + .line 1207 + :cond_1c + const/16 v1, 0x8 + + invoke-direct {p0, p2, p1, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_26 + + .line 1208 + or-int/lit8 v0, v0, 0x8 + + .line 1211 + :cond_26 + if-eqz v0, :cond_34 + + .line 1212 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v2, v1, p3 + + or-int/2addr v2, v0 + + aput v2, v1, p3 + + .line 1213 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v1, v0, p3}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeDragStarted(II)V + + .line 1215 + :cond_34 + return-void +.end method + +.method private saveInitialMotion(FFI)V + .registers 7 + .param p1, "x" # F + .param p2, "y" # F + .param p3, "pointerId" # I + + .prologue + .line 828 + invoke-direct {p0, p3}, Landroid/support/v4/widget/ViewDragHelper;->ensureMotionHistorySizeForId(I)V + + .line 829 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput p1, v1, p3 + + aput p1, v0, p3 + + .line 830 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput p2, v1, p3 + + aput p2, v0, p3 + + .line 831 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + float-to-int v1, p1 + + float-to-int v2, p2 + + invoke-direct {p0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->getEdgesTouched(II)I + + move-result v1 + + aput v1, v0, p3 + + .line 832 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + const/4 v1, 0x1 + + shl-int/2addr v1, p3 + + or-int/2addr v0, v1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + .line 833 + return-void +.end method + +.method private saveLastMotion(Landroid/view/MotionEvent;)V + .registers 8 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 836 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v1 + + .line 837 + .local v1, "pointerCount":I + const/4 v0, 0x0 + + .local v0, "i":I + :goto_5 + if-ge v0, v1, :cond_1e + + .line 838 + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v2 + + .line 839 + .local v2, "pointerId":I + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v3 + + .line 840 + .local v3, "x":F + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v4 + + .line 841 + .local v4, "y":F + iget-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput v3, v5, v2 + + .line 842 + iget-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput v4, v5, v2 + + .line 837 + add-int/lit8 v0, v0, 0x1 + + goto :goto_5 + + .line 844 + .end local v2 # "pointerId":I + .end local v3 # "x":F + .end local v4 # "y":F + :cond_1e + return-void +.end method + + +# virtual methods +.method public abort()V + .registers 9 + + .prologue + .line 512 + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 513 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v1, 0x2 + + if-ne v0, v1, :cond_30 + + .line 514 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v6 + + .line 515 + .local v6, "oldX":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v7 + + .line 516 + .local v7, "oldY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 517 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v2 + + .line 518 + .local v2, "newX":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v3 + + .line 519 + .local v3, "newY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v4, v2, v6 + + sub-int v5, v3, v7 + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 521 + .end local v2 # "newX":I + .end local v3 # "newY":I + .end local v6 # "oldX":I + .end local v7 # "oldY":I + :cond_30 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 522 + return-void +.end method + +.method protected canScroll(Landroid/view/View;ZIIII)Z + .registers 20 + .param p1, "v" # Landroid/view/View; + .param p2, "checkV" # Z + .param p3, "dx" # I + .param p4, "dy" # I + .param p5, "x" # I + .param p6, "y" # I + + .prologue + .line 908 + instance-of v1, p1, Landroid/view/ViewGroup; + + if-eqz v1, :cond_5c + + move-object v9, p1 + + .line 909 + check-cast v9, Landroid/view/ViewGroup; + + .line 910 + .local v9, "group":Landroid/view/ViewGroup; + invoke-virtual {p1}, Landroid/view/View;->getScrollX()I + + move-result v11 + + .line 911 + .local v11, "scrollX":I + invoke-virtual {p1}, Landroid/view/View;->getScrollY()I + + move-result v12 + + .line 912 + .local v12, "scrollY":I + invoke-virtual {v9}, Landroid/view/ViewGroup;->getChildCount()I + + move-result v8 + + .line 914 + .local v8, "count":I + add-int/lit8 v10, v8, -0x1 + + .local v10, "i":I + :goto_15 + if-ltz v10, :cond_5c + + .line 917 + invoke-virtual {v9, v10}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; + + move-result-object v2 + + .line 918 + .local v2, "child":Landroid/view/View; + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getLeft()I + + move-result v3 + + if-lt v1, v3, :cond_59 + + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getRight()I + + move-result v3 + + if-ge v1, v3, :cond_59 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v3 + + if-lt v1, v3, :cond_59 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getBottom()I + + move-result v3 + + if-ge v1, v3, :cond_59 + + const/4 v3, 0x1 + + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getLeft()I + + move-result v4 + + sub-int v6, v1, v4 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v4 + + sub-int v7, v1, v4 + + move-object v1, p0 + + move/from16 v4, p3 + + move/from16 v5, p4 + + invoke-virtual/range {v1 .. v7}, Landroid/support/v4/widget/ViewDragHelper;->canScroll(Landroid/view/View;ZIIII)Z + + move-result v1 + + if-eqz v1, :cond_59 + + .line 922 + const/4 v1, 0x1 + + .line 927 + .end local v2 # "child":Landroid/view/View; + .end local v8 # "count":I + .end local v9 # "group":Landroid/view/ViewGroup; + .end local v10 # "i":I + .end local v11 # "scrollX":I + .end local v12 # "scrollY":I + :goto_58 + return v1 + + .line 914 + .restart local v2 # "child":Landroid/view/View; + .restart local v8 # "count":I + .restart local v9 # "group":Landroid/view/ViewGroup; + .restart local v10 # "i":I + .restart local v11 # "scrollX":I + .restart local v12 # "scrollY":I + :cond_59 + add-int/lit8 v10, v10, -0x1 + + goto :goto_15 + + .line 927 + .end local v2 # "child":Landroid/view/View; + .end local v8 # "count":I + .end local v9 # "group":Landroid/view/ViewGroup; + .end local v10 # "i":I + .end local v11 # "scrollX":I + .end local v12 # "scrollY":I + :cond_5c + if-eqz p2, :cond_72 + + move/from16 v0, p3 + + neg-int v1, v0 + + invoke-static {p1, v1}, Landroid/support/v4/view/ViewCompat;->canScrollHorizontally(Landroid/view/View;I)Z + + move-result v1 + + if-nez v1, :cond_70 + + move/from16 v0, p4 + + neg-int v1, v0 + + invoke-static {p1, v1}, Landroid/support/v4/view/ViewCompat;->canScrollVertically(Landroid/view/View;I)Z + + move-result v1 + + if-eqz v1, :cond_72 + + :cond_70 + const/4 v1, 0x1 + + goto :goto_58 + + :cond_72 + const/4 v1, 0x0 + + goto :goto_58 +.end method + +.method public cancel()V + .registers 2 + + .prologue + .line 498 + const/4 v0, -0x1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 499 + invoke-direct {p0}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory()V + + .line 501 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + if-eqz v0, :cond_12 + + .line 502 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + invoke-virtual {v0}, Landroid/view/VelocityTracker;->recycle()V + + .line 503 + const/4 v0, 0x0 + + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 505 + :cond_12 + return-void +.end method + +.method public captureChildView(Landroid/view/View;I)V + .registers 6 + .param p1, "childView" # Landroid/view/View; + .param p2, "activePointerId" # I + + .prologue + .line 460 + invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object v0 + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + if-eq v0, v1, :cond_29 + + .line 461 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "captureChildView: parameter must be a descendant of the ViewDragHelper\'s tracked parent view (" + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v2, ")" + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 + + .line 465 + :cond_29 + iput-object p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 466 + iput p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 467 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewCaptured(Landroid/view/View;I)V + + .line 468 + const/4 v0, 0x1 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 469 + return-void +.end method + +.method public checkTouchSlop(I)Z + .registers 5 + .param p1, "directions" # I + + .prologue + .line 1276 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v0, v2 + + .line 1277 + .local v0, "count":I + const/4 v1, 0x0 + + .local v1, "i":I + :goto_4 + if-ge v1, v0, :cond_11 + + .line 1278 + invoke-virtual {p0, p1, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(II)Z + + move-result v2 + + if-eqz v2, :cond_e + + .line 1279 + const/4 v2, 0x1 + + .line 1282 + :goto_d + return v2 + + .line 1277 + :cond_e + add-int/lit8 v1, v1, 0x1 + + goto :goto_4 + + .line 1282 + :cond_11 + const/4 v2, 0x0 + + goto :goto_d +.end method + +.method public checkTouchSlop(II)Z + .registers 12 + .param p1, "directions" # I + .param p2, "pointerId" # I + + .prologue + const/4 v4, 0x1 + + const/4 v5, 0x0 + + .line 1301 + invoke-virtual {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->isPointerDown(I)Z + + move-result v6 + + if-nez v6, :cond_a + + move v4, v5 + + .line 1318 + :cond_9 + :goto_9 + return v4 + + .line 1305 + :cond_a + and-int/lit8 v6, p1, 0x1 + + if-ne v6, v4, :cond_3e + + move v0, v4 + + .line 1306 + .local v0, "checkHorizontal":Z + :goto_f + and-int/lit8 v6, p1, 0x2 + + const/4 v7, 0x2 + + if-ne v6, v7, :cond_40 + + move v1, v4 + + .line 1308 + .local v1, "checkVertical":Z + :goto_15 + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aget v6, v6, p2 + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aget v7, v7, p2 + + sub-float v2, v6, v7 + + .line 1309 + .local v2, "dx":F + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aget v6, v6, p2 + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aget v7, v7, p2 + + sub-float v3, v6, v7 + + .line 1311 + .local v3, "dy":F + if-eqz v0, :cond_42 + + if-eqz v1, :cond_42 + + .line 1312 + mul-float v6, v2, v2 + + mul-float v7, v3, v3 + + add-float/2addr v6, v7 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + iget v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + mul-int/2addr v7, v8 + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + .end local v0 # "checkHorizontal":Z + .end local v1 # "checkVertical":Z + .end local v2 # "dx":F + .end local v3 # "dy":F + :cond_3e + move v0, v5 + + .line 1305 + goto :goto_f + + .restart local v0 # "checkHorizontal":Z + :cond_40 + move v1, v5 + + .line 1306 + goto :goto_15 + + .line 1313 + .restart local v1 # "checkVertical":Z + .restart local v2 # "dx":F + .restart local v3 # "dy":F + :cond_42 + if-eqz v0, :cond_51 + + .line 1314 + invoke-static {v2}, Ljava/lang/Math;->abs(F)F + + move-result v6 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + .line 1315 + :cond_51 + if-eqz v1, :cond_60 + + .line 1316 + invoke-static {v3}, Ljava/lang/Math;->abs(F)F + + move-result v6 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + :cond_60 + move v4, v5 + + .line 1318 + goto :goto_9 +.end method + +.method public continueSettling(Z)Z + .registers 11 + .param p1, "deferCallbacks" # Z + + .prologue + const/4 v8, 0x2 + + const/4 v7, 0x0 + + .line 715 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v8, :cond_69 + + .line 716 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->computeScrollOffset()Z + + move-result v6 + + .line 717 + .local v6, "keepGoing":Z + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v2 + + .line 718 + .local v2, "x":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v3 + + .line 719 + .local v3, "y":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v0 + + sub-int v4, v2, v0 + + .line 720 + .local v4, "dx":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v0 + + sub-int v5, v3, v0 + + .line 722 + .local v5, "dy":I + if-eqz v4, :cond_2f + + .line 723 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v4}, Landroid/view/View;->offsetLeftAndRight(I)V + + .line 725 + :cond_2f + if-eqz v5, :cond_36 + + .line 726 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v5}, Landroid/view/View;->offsetTopAndBottom(I)V + + .line 729 + :cond_36 + if-nez v4, :cond_3a + + if-eqz v5, :cond_41 + + .line 730 + :cond_3a + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 733 + :cond_41 + if-eqz v6, :cond_5e + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getFinalX()I + + move-result v0 + + if-ne v2, v0, :cond_5e + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getFinalY()I + + move-result v0 + + if-ne v3, v0, :cond_5e + + .line 736 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 737 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->isFinished()Z + + move-result v6 + + .line 740 + :cond_5e + if-nez v6, :cond_69 + + .line 741 + if-eqz p1, :cond_6f + + .line 742 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mSetIdleRunnable:Ljava/lang/Runnable; + + invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->post(Ljava/lang/Runnable;)Z + + .line 749 + .end local v2 # "x":I + .end local v3 # "y":I + .end local v4 # "dx":I + .end local v5 # "dy":I + .end local v6 # "keepGoing":Z + :cond_69 + :goto_69 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v8, :cond_73 + + const/4 v0, 0x1 + + :goto_6e + return v0 + + .line 744 + .restart local v2 # "x":I + .restart local v3 # "y":I + .restart local v4 # "dx":I + .restart local v5 # "dy":I + .restart local v6 # "keepGoing":Z + :cond_6f + invoke-virtual {p0, v7}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + goto :goto_69 + + .end local v2 # "x":I + .end local v3 # "y":I + .end local v4 # "dx":I + .end local v5 # "dy":I + .end local v6 # "keepGoing":Z + :cond_73 + move v0, v7 + + .line 749 + goto :goto_6e +.end method + +.method public findTopChildUnder(II)Landroid/view/View; + .registers 8 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1428 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v3}, Landroid/view/ViewGroup;->getChildCount()I + + move-result v1 + + .line 1429 + .local v1, "childCount":I + add-int/lit8 v2, v1, -0x1 + + .local v2, "i":I + :goto_8 + if-ltz v2, :cond_32 + + .line 1430 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, v2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getOrderedChildIndex(I)I + + move-result v4 + + invoke-virtual {v3, v4}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; + + move-result-object v0 + + .line 1431 + .local v0, "child":Landroid/view/View; + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v3 + + if-lt p1, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getRight()I + + move-result v3 + + if-ge p1, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v3 + + if-lt p2, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getBottom()I + + move-result v3 + + if-ge p2, v3, :cond_2f + + .line 1436 + .end local v0 # "child":Landroid/view/View; + :goto_2e + return-object v0 + + .line 1429 + .restart local v0 # "child":Landroid/view/View; + :cond_2f + add-int/lit8 v2, v2, -0x1 + + goto :goto_8 + + .line 1436 + .end local v0 # "child":Landroid/view/View; + :cond_32 + const/4 v0, 0x0 + + goto :goto_2e +.end method + +.method public flingCapturedView(IIII)V + .registers 14 + .param p1, "minLeft" # I + .param p2, "minTop" # I + .param p3, "maxLeft" # I + .param p4, "maxTop" # I + + .prologue + .line 690 + iget-boolean v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + if-nez v0, :cond_c + + .line 691 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot flingCapturedView outside of a call to Callback#onViewReleased" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 695 + :cond_c + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getLeft()I + + move-result v1 + + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v2 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v3, v4}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v3 + + float-to-int v3, v3 + + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v4, v5}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v4 + + float-to-int v4, v4 + + move v5, p1 + + move v6, p3 + + move v7, p2 + + move v8, p4 + + invoke-virtual/range {v0 .. v8}, Landroid/support/v4/widget/ScrollerCompat;->fling(IIIIIIII)V + + .line 700 + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 701 + return-void +.end method + +.method public getActivePointerId()I + .registers 2 + + .prologue + .line 483 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + return v0 +.end method + +.method public getCapturedView()Landroid/view/View; + .registers 2 + + .prologue + .line 475 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + return-object v0 +.end method + +.method public getEdgeSize()I + .registers 2 + + .prologue + .line 448 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + return v0 +.end method + +.method public getMinVelocity()F + .registers 2 + + .prologue + .line 412 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + return v0 +.end method + +.method public getTouchSlop()I + .registers 2 + + .prologue + .line 490 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + return v0 +.end method + +.method public getViewDragState()I + .registers 2 + + .prologue + .line 421 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + return v0 +.end method + +.method public isCapturedViewUnder(II)Z + .registers 4 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1397 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {p0, v0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper;->isViewUnder(Landroid/view/View;II)Z + + move-result v0 + + return v0 +.end method + +.method public isEdgeTouched(I)Z + .registers 5 + .param p1, "edges" # I + + .prologue + .line 1331 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + array-length v0, v2 + + .line 1332 + .local v0, "count":I + const/4 v1, 0x0 + + .local v1, "i":I + :goto_4 + if-ge v1, v0, :cond_11 + + .line 1333 + invoke-virtual {p0, p1, v1}, Landroid/support/v4/widget/ViewDragHelper;->isEdgeTouched(II)Z + + move-result v2 + + if-eqz v2, :cond_e + + .line 1334 + const/4 v2, 0x1 + + .line 1337 + :goto_d + return v2 + + .line 1332 + :cond_e + add-int/lit8 v1, v1, 0x1 + + goto :goto_4 + + .line 1337 + :cond_11 + const/4 v2, 0x0 + + goto :goto_d +.end method + +.method public isEdgeTouched(II)Z + .registers 4 + .param p1, "edges" # I + .param p2, "pointerId" # I + + .prologue + .line 1351 + invoke-virtual {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->isPointerDown(I)Z + + move-result v0 + + if-eqz v0, :cond_f + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v0, v0, p2 + + and-int/2addr v0, p1 + + if-eqz v0, :cond_f + + const/4 v0, 0x1 + + :goto_e + return v0 + + :cond_f + const/4 v0, 0x0 + + goto :goto_e +.end method + +.method public isPointerDown(I)Z + .registers 5 + .param p1, "pointerId" # I + + .prologue + const/4 v0, 0x1 + + .line 860 + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + shl-int v2, v0, p1 + + and-int/2addr v1, v2 + + if-eqz v1, :cond_9 + + :goto_8 + return v0 + + :cond_9 + const/4 v0, 0x0 + + goto :goto_8 +.end method + +.method public isViewUnder(Landroid/view/View;II)Z + .registers 6 + .param p1, "view" # Landroid/view/View; + .param p2, "x" # I + .param p3, "y" # I + + .prologue + const/4 v0, 0x0 + + .line 1410 + if-nez p1, :cond_4 + + .line 1413 + :cond_3 + :goto_3 + return v0 + + :cond_4 + invoke-virtual {p1}, Landroid/view/View;->getLeft()I + + move-result v1 + + if-lt p2, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getRight()I + + move-result v1 + + if-ge p2, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getTop()I + + move-result v1 + + if-lt p3, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getBottom()I + + move-result v1 + + if-ge p3, v1, :cond_3 + + const/4 v0, 0x1 + + goto :goto_3 +.end method + +.method public processTouchEvent(Landroid/view/MotionEvent;)V + .registers 23 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 1046 + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I + + move-result v3 + + .line 1047 + .local v3, "action":I + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getActionIndex(Landroid/view/MotionEvent;)I + + move-result v4 + + .line 1049 + .local v4, "actionIndex":I + if-nez v3, :cond_d + + .line 1052 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 1055 + :cond_d + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + move-object/from16 v19, v0 + + if-nez v19, :cond_1f + + .line 1056 + invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; + + move-result-object v19 + + move-object/from16 v0, v19 + + move-object/from16 v1, p0 + + iput-object v0, v1, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 1058 + :cond_1f + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + move-object/from16 v19, v0 + + move-object/from16 v0, v19 + + move-object/from16 v1, p1 + + invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V + + .line 1060 + packed-switch v3, :pswitch_data_2be + + .line 1194 + :cond_2f + :goto_2f + :pswitch_2f + return-void + + .line 1062 + :pswitch_30 + invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getX()F + + move-result v17 + + .line 1063 + .local v17, "x":F + invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getY()F + + move-result v18 + + .line 1064 + .local v18, "y":F + const/16 v19, 0x0 + + move-object/from16 v0, p1 + + move/from16 v1, v19 + + invoke-static {v0, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1065 + .local v15, "pointerId":I + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1067 + .local v16, "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move/from16 v1, v17 + + move/from16 v2, v18 + + invoke-direct {v0, v1, v2, v15}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 1072 + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 1074 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + move-object/from16 v19, v0 + + aget v7, v19, v15 + + .line 1075 + .local v7, "edgesTouched":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v19, v0 + + and-int v19, v19, v7 + + if-eqz v19, :cond_2f + + .line 1076 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v20, v0 + + and-int v20, v20, v7 + + move-object/from16 v0, v19 + + move/from16 v1, v20 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_2f + + .line 1082 + .end local v7 # "edgesTouched":I + .end local v15 # "pointerId":I + .end local v16 # "toCapture":Landroid/view/View; + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_8e + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1083 + .restart local v15 # "pointerId":I + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1084 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1086 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + move/from16 v1, v17 + + move/from16 v2, v18 + + invoke-direct {v0, v1, v2, v15}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 1089 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + if-nez v19, :cond_f5 + + .line 1092 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1093 + .restart local v16 # "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 1095 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + move-object/from16 v19, v0 + + aget v7, v19, v15 + + .line 1096 + .restart local v7 # "edgesTouched":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v19, v0 + + and-int v19, v19, v7 + + if-eqz v19, :cond_2f + + .line 1097 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v20, v0 + + and-int v20, v20, v7 + + move-object/from16 v0, v19 + + move/from16 v1, v20 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto/16 :goto_2f + + .line 1099 + .end local v7 # "edgesTouched":I + .end local v16 # "toCapture":Landroid/view/View; + :cond_f5 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->isCapturedViewUnder(II)Z + + move-result v19 + + if-eqz v19, :cond_2f + + .line 1104 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + move-object/from16 v1, v19 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + goto/16 :goto_2f + + .line 1110 + .end local v15 # "pointerId":I + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_11a + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_18e + + .line 1111 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move-object/from16 v0, p1 + + move/from16 v1, v19 + + invoke-static {v0, v1}, Landroid/support/v4/view/MotionEventCompat;->findPointerIndex(Landroid/view/MotionEvent;I)I + + move-result v12 + + .line 1112 + .local v12, "index":I + move-object/from16 v0, p1 + + invoke-static {v0, v12}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1113 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v12}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1114 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v20, v0 + + aget v19, v19, v20 + + sub-float v19, v17, v19 + + move/from16 v0, v19 + + float-to-int v10, v0 + + .line 1115 + .local v10, "idx":I + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v20, v0 + + aget v19, v19, v20 + + sub-float v19, v18, v19 + + move/from16 v0, v19 + + float-to-int v11, v0 + + .line 1117 + .local v11, "idy":I + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + invoke-virtual/range {v19 .. v19}, Landroid/view/View;->getLeft()I + + move-result v19 + + add-int v19, v19, v10 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v20, v0 + + invoke-virtual/range {v20 .. v20}, Landroid/view/View;->getTop()I + + move-result v20 + + add-int v20, v20, v11 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-direct {v0, v1, v2, v10, v11}, Landroid/support/v4/widget/ViewDragHelper;->dragTo(IIII)V + + .line 1119 + invoke-direct/range {p0 .. p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_2f + + .line 1122 + .end local v10 # "idx":I + .end local v11 # "idy":I + .end local v12 # "index":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_18e + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v14 + + .line 1123 + .local v14, "pointerCount":I + const/4 v8, 0x0 + + .local v8, "i":I + :goto_193 + if-ge v8, v14, :cond_1ce + + .line 1124 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1125 + .restart local v15 # "pointerId":I + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1126 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1127 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + move-object/from16 v19, v0 + + aget v19, v19, v15 + + sub-float v5, v17, v19 + + .line 1128 + .local v5, "dx":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + move-object/from16 v19, v0 + + aget v19, v19, v15 + + sub-float v6, v18, v19 + + .line 1130 + .local v6, "dy":F + move-object/from16 v0, p0 + + invoke-direct {v0, v5, v6, v15}, Landroid/support/v4/widget/ViewDragHelper;->reportNewEdgeDrags(FFI)V + + .line 1131 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_1d3 + + .line 1142 + .end local v5 # "dx":F + .end local v6 # "dy":F + .end local v15 # "pointerId":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_1ce + invoke-direct/range {p0 .. p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_2f + + .line 1136 + .restart local v5 # "dx":F + .restart local v6 # "dy":F + .restart local v15 # "pointerId":I + .restart local v17 # "x":F + .restart local v18 # "y":F + :cond_1d3 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1137 + .restart local v16 # "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-direct {v0, v1, v5, v6}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(Landroid/view/View;FF)Z + + move-result v19 + + if-eqz v19, :cond_1fb + + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v19 + + if-nez v19, :cond_1ce + + .line 1123 + :cond_1fb + add-int/lit8 v8, v8, 0x1 + + goto :goto_193 + + .line 1148 + .end local v5 # "dx":F + .end local v6 # "dy":F + .end local v8 # "i":I + .end local v14 # "pointerCount":I + .end local v15 # "pointerId":I + .end local v16 # "toCapture":Landroid/view/View; + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_1fe + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1149 + .restart local v15 # "pointerId":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_280 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move/from16 v0, v19 + + if-ne v15, v0, :cond_280 + + .line 1151 + const/4 v13, -0x1 + + .line 1152 + .local v13, "newActivePointer":I + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v14 + + .line 1153 + .restart local v14 # "pointerCount":I + const/4 v8, 0x0 + + .restart local v8 # "i":I + :goto_222 + if-ge v8, v14, :cond_277 + + .line 1154 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v9 + + .line 1155 + .local v9, "id":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move/from16 v0, v19 + + if-ne v9, v0, :cond_237 + + .line 1153 + :cond_234 + add-int/lit8 v8, v8, 0x1 + + goto :goto_222 + + .line 1160 + :cond_237 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1161 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1162 + .restart local v18 # "y":F + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v19 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v20, v0 + + move-object/from16 v0, v19 + + move-object/from16 v1, v20 + + if-ne v0, v1, :cond_234 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + move-object/from16 v1, v19 + + invoke-virtual {v0, v1, v9}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v19 + + if-eqz v19, :cond_234 + + .line 1164 + move-object/from16 v0, p0 + + iget v13, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 1169 + .end local v9 # "id":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_277 + const/16 v19, -0x1 + + move/from16 v0, v19 + + if-ne v13, v0, :cond_280 + + .line 1171 + invoke-direct/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->releaseViewForPointerUp()V + + .line 1174 + .end local v8 # "i":I + .end local v13 # "newActivePointer":I + .end local v14 # "pointerCount":I + :cond_280 + move-object/from16 v0, p0 + + invoke-direct {v0, v15}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory(I)V + + goto/16 :goto_2f + + .line 1179 + .end local v15 # "pointerId":I + :pswitch_287 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_298 + + .line 1180 + invoke-direct/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->releaseViewForPointerUp()V + + .line 1182 + :cond_298 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_2f + + .line 1187 + :pswitch_29d + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_2b8 + + .line 1188 + const/16 v19, 0x0 + + const/16 v20, 0x0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-direct {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->dispatchViewReleased(FF)V + + .line 1190 + :cond_2b8 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_2f + + .line 1060 + nop + + :pswitch_data_2be + .packed-switch 0x0 + :pswitch_30 + :pswitch_287 + :pswitch_11a + :pswitch_29d + :pswitch_2f + :pswitch_8e + :pswitch_1fe + .end packed-switch +.end method + +.method setDragState(I)V + .registers 3 + .param p1, "state" # I + + .prologue + .line 864 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-eq v0, p1, :cond_10 + + .line 865 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + .line 866 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v0, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewDragStateChanged(I)V + + .line 867 + if-nez p1, :cond_10 + + .line 868 + const/4 v0, 0x0 + + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 871 + :cond_10 + return-void +.end method + +.method public setEdgeTrackingEnabled(I)V + .registers 2 + .param p1, "edgeFlags" # I + + .prologue + .line 437 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + .line 438 + return-void +.end method + +.method public setMinVelocity(F)V + .registers 2 + .param p1, "minVel" # F + + .prologue + .line 401 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + .line 402 + return-void +.end method + +.method public settleCapturedViewAt(II)Z + .registers 6 + .param p1, "finalLeft" # I + .param p2, "finalTop" # I + + .prologue + .line 557 + iget-boolean v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + if-nez v0, :cond_c + + .line 558 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot settleCapturedViewAt outside of a call to Callback#onViewReleased" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 562 + :cond_c + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v0, v1}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v0 + + float-to-int v0, v0 + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v1, v2}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v1 + + float-to-int v1, v1 + + invoke-direct {p0, p1, p2, v0, v1}, Landroid/support/v4/widget/ViewDragHelper;->forceSettleCapturedViewAt(IIII)Z + + move-result v0 + + return v0 +.end method + +.method public shouldInterceptTouchEvent(Landroid/view/MotionEvent;)Z + .registers 15 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 939 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I + + move-result v0 + + .line 940 + .local v0, "action":I + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionIndex(Landroid/view/MotionEvent;)I + + move-result v1 + + .line 942 + .local v1, "actionIndex":I + if-nez v0, :cond_d + + .line 945 + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 948 + :cond_d + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + if-nez v11, :cond_17 + + .line 949 + invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; + + move-result-object v11 + + iput-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 951 + :cond_17 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + invoke-virtual {v11, p1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V + + .line 953 + packed-switch v0, :pswitch_data_e6 + + .line 1036 + :cond_1f + :goto_1f + :pswitch_1f + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x1 + + if-ne v11, v12, :cond_e3 + + const/4 v11, 0x1 + + :goto_25 + return v11 + + .line 955 + :pswitch_26 + invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F + + move-result v9 + + .line 956 + .local v9, "x":F + invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F + + move-result v10 + + .line 957 + .local v10, "y":F + const/4 v11, 0x0 + + invoke-static {p1, v11}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 958 + .local v7, "pointerId":I + invoke-direct {p0, v9, v10, v7}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 960 + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 963 + .local v8, "toCapture":Landroid/view/View; + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne v8, v11, :cond_48 + + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x2 + + if-ne v11, v12, :cond_48 + + .line 964 + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 967 + :cond_48 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v4, v11, v7 + + .line 968 + .local v4, "edgesTouched":I + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v11, v4 + + if-eqz v11, :cond_1f + + .line 969 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v12, v4 + + invoke-virtual {v11, v12, v7}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_1f + + .line 975 + .end local v4 # "edgesTouched":I + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_5a + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 976 + .restart local v7 # "pointerId":I + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v9 + + .line 977 + .restart local v9 # "x":F + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v10 + + .line 979 + .restart local v10 # "y":F + invoke-direct {p0, v9, v10, v7}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 982 + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-nez v11, :cond_7f + + .line 983 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v4, v11, v7 + + .line 984 + .restart local v4 # "edgesTouched":I + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v11, v4 + + if-eqz v11, :cond_1f + + .line 985 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v12, v4 + + invoke-virtual {v11, v12, v7}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_1f + + .line 987 + .end local v4 # "edgesTouched":I + :cond_7f + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x2 + + if-ne v11, v12, :cond_1f + + .line 989 + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 990 + .restart local v8 # "toCapture":Landroid/view/View; + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne v8, v11, :cond_1f + + .line 991 + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + goto :goto_1f + + .line 999 + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_92 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v6 + + .line 1000 + .local v6, "pointerCount":I + const/4 v5, 0x0 + + .local v5, "i":I + :goto_97 + if-ge v5, v6, :cond_b9 + + .line 1001 + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 1002 + .restart local v7 # "pointerId":I + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v9 + + .line 1003 + .restart local v9 # "x":F + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v10 + + .line 1004 + .restart local v10 # "y":F + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aget v11, v11, v7 + + sub-float v2, v9, v11 + + .line 1005 + .local v2, "dx":F + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aget v11, v11, v7 + + sub-float v3, v10, v11 + + .line 1007 + .local v3, "dy":F + invoke-direct {p0, v2, v3, v7}, Landroid/support/v4/widget/ViewDragHelper;->reportNewEdgeDrags(FFI)V + + .line 1008 + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x1 + + if-ne v11, v12, :cond_be + + .line 1019 + .end local v2 # "dx":F + .end local v3 # "dy":F + .end local v7 # "pointerId":I + .end local v9 # "x":F + .end local v10 # "y":F + :cond_b9 + invoke-direct {p0, p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_1f + + .line 1013 + .restart local v2 # "dx":F + .restart local v3 # "dy":F + .restart local v7 # "pointerId":I + .restart local v9 # "x":F + .restart local v10 # "y":F + :cond_be + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 1014 + .restart local v8 # "toCapture":Landroid/view/View; + if-eqz v8, :cond_d2 + + invoke-direct {p0, v8, v2, v3}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(Landroid/view/View;FF)Z + + move-result v11 + + if-eqz v11, :cond_d2 + + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v11 + + if-nez v11, :cond_b9 + + .line 1000 + :cond_d2 + add-int/lit8 v5, v5, 0x1 + + goto :goto_97 + + .line 1024 + .end local v2 # "dx":F + .end local v3 # "dy":F + .end local v5 # "i":I + .end local v6 # "pointerCount":I + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_d5 + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 1025 + .restart local v7 # "pointerId":I + invoke-direct {p0, v7}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory(I)V + + goto/16 :goto_1f + + .line 1031 + .end local v7 # "pointerId":I + :pswitch_de + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_1f + + .line 1036 + :cond_e3 + const/4 v11, 0x0 + + goto/16 :goto_25 + + .line 953 + :pswitch_data_e6 + .packed-switch 0x0 + :pswitch_26 + :pswitch_de + :pswitch_92 + :pswitch_de + :pswitch_1f + :pswitch_5a + :pswitch_d5 + .end packed-switch +.end method + +.method public smoothSlideViewTo(Landroid/view/View;II)Z + .registers 6 + .param p1, "child" # Landroid/view/View; + .param p2, "finalLeft" # I + .param p3, "finalTop" # I + + .prologue + const/4 v1, 0x0 + + .line 539 + iput-object p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 540 + const/4 v0, -0x1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 542 + invoke-direct {p0, p2, p3, v1, v1}, Landroid/support/v4/widget/ViewDragHelper;->forceSettleCapturedViewAt(IIII)Z + + move-result v0 + + return v0 +.end method + +.method tryCaptureViewForDrag(Landroid/view/View;I)Z + .registers 5 + .param p1, "toCapture" # Landroid/view/View; + .param p2, "pointerId" # I + + .prologue + const/4 v0, 0x1 + + .line 883 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne p1, v1, :cond_a + + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + if-ne v1, p2, :cond_a + + .line 892 + :goto_9 + return v0 + + .line 887 + :cond_a + if-eqz p1, :cond_1a + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v1, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->tryCaptureView(Landroid/view/View;I)Z + + move-result v1 + + if-eqz v1, :cond_1a + + .line 888 + iput p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 889 + invoke-virtual {p0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper;->captureChildView(Landroid/view/View;I)V + + goto :goto_9 + + .line 892 + :cond_1a + const/4 v0, 0x0 + + goto :goto_9 +.end method diff --git a/samples/Smali/WbxmlSerializer.smali b/samples/Smali/WbxmlSerializer.smali new file mode 100644 index 00000000..2d870d8c --- /dev/null +++ b/samples/Smali/WbxmlSerializer.smali @@ -0,0 +1,1863 @@ +.class public Lorg/kxml2/wap/WbxmlSerializer; +.super Ljava/lang/Object; +.source "WbxmlSerializer.java" + +# interfaces +.implements Lorg/xmlpull/v1/XmlSerializer; + + +# instance fields +.field private attrPage:I + +.field attrStartTable:Ljava/util/Hashtable; + +.field attrValueTable:Ljava/util/Hashtable; + +.field attributes:Ljava/util/Vector; + +.field buf:Ljava/io/ByteArrayOutputStream; + +.field depth:I + +.field private encoding:Ljava/lang/String; + +.field private headerSent:Z + +.field name:Ljava/lang/String; + +.field namespace:Ljava/lang/String; + +.field out:Ljava/io/OutputStream; + +.field pending:Ljava/lang/String; + +.field stringTable:Ljava/util/Hashtable; + +.field stringTableBuf:Ljava/io/ByteArrayOutputStream; + +.field private tagPage:I + +.field tagTable:Ljava/util/Hashtable; + + +# direct methods +.method public constructor ()V + .locals 1 + + .prologue + .line 35 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 38 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + .line 42 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + .line 43 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + .line 49 + new-instance v0, Ljava/util/Vector; + + invoke-direct {v0}, Ljava/util/Vector;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + .line 51 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + .line 52 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + .line 53 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + .line 60 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + return-void +.end method + +.method static writeInt(Ljava/io/OutputStream;I)V + .locals 4 + .param p0, "out" # Ljava/io/OutputStream; + .param p1, "i" # I + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 447 + const/4 v3, 0x5 + + new-array v0, v3, [B + + .line 448 + .local v0, "buf":[B + const/4 v1, 0x0 + + .line 451 + .local v1, "idx":I + :goto_0 + add-int/lit8 v2, v1, 0x1 + + .end local v1 # "idx":I + .local v2, "idx":I + and-int/lit8 v3, p1, 0x7f + + int-to-byte v3, v3 + + aput-byte v3, v0, v1 + + .line 452 + shr-int/lit8 p1, p1, 0x7 + + .line 454 + if-nez p1, :cond_1 + + move v1, v2 + + .line 456 + .end local v2 # "idx":I + .restart local v1 # "idx":I + :goto_1 + const/4 v3, 0x1 + + if-le v1, v3, :cond_0 + + .line 457 + add-int/lit8 v1, v1, -0x1 + + aget-byte v3, v0, v1 + + or-int/lit16 v3, v3, 0x80 + + invoke-virtual {p0, v3}, Ljava/io/OutputStream;->write(I)V + + goto :goto_1 + + .line 459 + :cond_0 + const/4 v3, 0x0 + + aget-byte v3, v0, v3 + + invoke-virtual {p0, v3}, Ljava/io/OutputStream;->write(I)V + + .line 460 + return-void + + .end local v1 # "idx":I + .restart local v2 # "idx":I + :cond_1 + move v1, v2 + + .end local v2 # "idx":I + .restart local v1 # "idx":I + goto :goto_0 +.end method + +.method private writeStr(Ljava/lang/String;)V + .locals 10 + .param p1, "text" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/16 v9, 0x41 + + const/16 v8, 0x20 + + const/4 v7, 0x0 + + const/16 v6, 0x83 + + .line 349 + const/4 v2, 0x0 + + .line 350 + .local v2, "p0":I + const/4 v0, 0x0 + + .line 351 + .local v0, "lastCut":I + invoke-virtual {p1}, Ljava/lang/String;->length()I + + move-result v1 + + .line 353 + .local v1, "len":I + iget-boolean v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-eqz v4, :cond_3 + + .line 354 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {p0, v4, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + .line 394 + :cond_0 + :goto_0 + return-void + + .line 367 + .local v3, "p1":I + :cond_1 + sub-int v4, v3, v2 + + const/16 v5, 0xa + + if-le v4, v5, :cond_2 + + .line 368 + if-le v2, v0, :cond_5 + + add-int/lit8 v4, v2, -0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ne v4, v8, :cond_5 + + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v4 + + if-nez v4, :cond_5 + + .line 370 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 371 + invoke-virtual {p1, v0, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 385 + :goto_1 + move v0, v3 + + .line 387 + :cond_2 + move v2, v3 + + .line 358 + .end local v3 # "p1":I + :cond_3 + if-ge v2, v1, :cond_8 + + .line 359 + :goto_2 + if-ge v2, v1, :cond_4 + + invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ge v4, v9, :cond_4 + + .line 360 + add-int/lit8 v2, v2, 0x1 + + goto :goto_2 + + .line 362 + :cond_4 + move v3, v2 + + .line 363 + .restart local v3 # "p1":I + :goto_3 + if-ge v3, v1, :cond_1 + + invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-lt v4, v9, :cond_1 + + .line 364 + add-int/lit8 v3, v3, 0x1 + + goto :goto_3 + + .line 374 + :cond_5 + if-le v2, v0, :cond_6 + + add-int/lit8 v4, v2, -0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ne v4, v8, :cond_6 + + .line 375 + add-int/lit8 v2, v2, -0x1 + + .line 378 + :cond_6 + if-le v2, v0, :cond_7 + + .line 379 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 380 + invoke-virtual {p1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 382 + :cond_7 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 383 + invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + const/4 v5, 0x1 + + invoke-direct {p0, v4, v5}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_1 + + .line 390 + .end local v3 # "p1":I + :cond_8 + if-ge v0, v1, :cond_0 + + .line 391 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 392 + invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_0 +.end method + +.method private final writeStrT(Ljava/lang/String;Z)V + .locals 3 + .param p1, "s" # Ljava/lang/String; + .param p2, "mayPrependSpace" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 470 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {v1, p1}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/Integer; + + .line 471 + .local v0, "idx":Ljava/lang/Integer; + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v0, :cond_0 + + invoke-virtual {p0, p1, p2}, Lorg/kxml2/wap/WbxmlSerializer;->addToStringTable(Ljava/lang/String;Z)I + + move-result v1 + + :goto_0 + invoke-static {v2, v1}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 474 + return-void + + .line 471 + :cond_0 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I + + move-result v1 + + goto :goto_0 +.end method + + +# virtual methods +.method public addToStringTable(Ljava/lang/String;Z)I + .locals 9 + .param p1, "s" # Ljava/lang/String; + .param p2, "mayPrependSpace" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v8, 0x1 + + const/4 v5, 0x0 + + const/16 v7, 0x20 + + .line 485 + iget-boolean v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-eqz v3, :cond_0 + + .line 486 + new-instance v3, Ljava/io/IOException; + + const-string v4, "stringtable sent" + + invoke-direct {v3, v4}, Ljava/io/IOException;->(Ljava/lang/String;)V + + throw v3 + + .line 489 + :cond_0 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->size()I + + move-result v0 + + .line 490 + .local v0, "i":I + move v2, v0 + + .line 491 + .local v2, "offset":I + invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C + + move-result v3 + + const/16 v4, 0x30 + + if-lt v3, v4, :cond_1 + + if-eqz p2, :cond_1 + + .line 492 + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p1 + + .line 493 + add-int/lit8 v2, v2, 0x1 + + .line 496 + :cond_1 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + new-instance v4, Ljava/lang/Integer; + + invoke-direct {v4, v0}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, p1, v4}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 497 + invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C + + move-result v3 + + if-ne v3, v7, :cond_2 + + .line 498 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int/lit8 v6, v0, 0x1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 500 + :cond_2 + invoke-virtual {p1, v7}, Ljava/lang/String;->lastIndexOf(I)I + + move-result v1 + + .line 501 + .local v1, "j":I + if-le v1, v8, :cond_3 + + .line 502 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int v6, v0, v1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 503 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + add-int/lit8 v4, v1, 0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int v6, v0, v1 + + add-int/lit8 v6, v6, 0x1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 506 + :cond_3 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {p0, v3, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + .line 507 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->flush()V + + .line 508 + return v2 +.end method + +.method public attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .param p3, "value" # Ljava/lang/String; + + .prologue + .line 69 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v0, p2}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V + + .line 70 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v0, p3}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V + + .line 71 + return-object p0 +.end method + +.method public cdsect(Ljava/lang/String;)V + .locals 0 + .param p1, "cdsect" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 76 + invoke-virtual {p0, p1}, Lorg/kxml2/wap/WbxmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + + .line 77 + return-void +.end method + +.method public checkPending(Z)V + .locals 8 + .param p1, "degenerated" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v4, 0x4 + + const/4 v7, 0x1 + + const/4 v6, 0x0 + + .line 180 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + if-nez v3, :cond_0 + + .line 240 + :goto_0 + return-void + + .line 183 + :cond_0 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3}, Ljava/util/Vector;->size()I + + move-result v2 + + .line 185 + .local v2, "len":I + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 188 + .local v1, "idx":[I + if-nez v1, :cond_4 + + .line 189 + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v2, :cond_2 + + if-eqz p1, :cond_1 + + move v3, v4 + + :goto_1 + invoke-virtual {v5, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 193 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + invoke-direct {p0, v3, v6}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 205 + :goto_2 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_3 + if-ge v0, v2, :cond_d + + .line 206 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v5, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v5 + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 208 + if-nez v1, :cond_9 + + .line 209 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v4}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 210 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Ljava/lang/String; + + invoke-direct {p0, v3, v6}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 220 + :goto_4 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + add-int/lit8 v0, v0, 0x1 + + invoke-virtual {v5, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v5 + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 221 + if-nez v1, :cond_b + + .line 222 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Ljava/lang/String; + + invoke-direct {p0, v3}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 232 + :goto_5 + add-int/lit8 v0, v0, 0x1 + + goto :goto_3 + + .line 189 + .end local v0 # "i":I + :cond_1 + const/16 v3, 0x44 + + goto :goto_1 + + :cond_2 + if-eqz p1, :cond_3 + + const/16 v3, 0x84 + + goto :goto_1 + + :cond_3 + const/16 v3, 0xc4 + + goto :goto_1 + + .line 195 + :cond_4 + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + if-eq v3, v5, :cond_5 + + .line 196 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + .line 197 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 198 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 200 + :cond_5 + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v2, :cond_7 + + if-eqz p1, :cond_6 + + aget v3, v1, v7 + + :goto_6 + invoke-virtual {v5, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_2 + + :cond_6 + aget v3, v1, v7 + + or-int/lit8 v3, v3, 0x40 + + goto :goto_6 + + :cond_7 + if-eqz p1, :cond_8 + + aget v3, v1, v7 + + or-int/lit16 v3, v3, 0x80 + + goto :goto_6 + + :cond_8 + aget v3, v1, v7 + + or-int/lit16 v3, v3, 0xc0 + + goto :goto_6 + + .line 213 + .restart local v0 # "i":I + :cond_9 + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + if-eq v3, v5, :cond_a + + .line 214 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + .line 215 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 216 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 218 + :cond_a + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + aget v5, v1, v7 + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_4 + + .line 225 + :cond_b + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + if-eq v3, v5, :cond_c + + .line 226 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + .line 227 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 228 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 230 + :cond_c + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + aget v5, v1, v7 + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_5 + + .line 235 + :cond_d + if-lez v2, :cond_e + + .line 236 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v7}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 238 + :cond_e + const/4 v3, 0x0 + + iput-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + .line 239 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3}, Ljava/util/Vector;->removeAllElements()V + + goto/16 :goto_0 +.end method + +.method public comment(Ljava/lang/String;)V + .locals 0 + .param p1, "comment" # Ljava/lang/String; + + .prologue + .line 84 + return-void +.end method + +.method public docdecl(Ljava/lang/String;)V + .locals 2 + .param p1, "docdecl" # Ljava/lang/String; + + .prologue + .line 90 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "Cannot write docdecl for WBXML" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public endDocument()V + .locals 0 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 158 + invoke-virtual {p0}, Lorg/kxml2/wap/WbxmlSerializer;->flush()V + + .line 159 + return-void +.end method + +.method public endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 2 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v1, 0x1 + + .line 400 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + if-eqz v0, :cond_0 + + .line 401 + invoke-virtual {p0, v1}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 405 + :goto_0 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + add-int/lit8 v0, v0, -0x1 + + iput v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + .line 406 + return-object p0 + + .line 403 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_0 +.end method + +.method public entityRef(Ljava/lang/String;)V + .locals 2 + .param p1, "er" # Ljava/lang/String; + + .prologue + .line 97 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "EntityReference not supported for WBXML" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public flush()V + .locals 2 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 167 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 169 + iget-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-nez v0, :cond_0 + + .line 170 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->size()I + + move-result v1 + + invoke-static {v0, v1}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 171 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write([B)V + + .line 172 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + .line 175 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write([B)V + + .line 176 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V + + .line 177 + return-void +.end method + +.method public getDepth()I + .locals 1 + + .prologue + .line 104 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + return v0 +.end method + +.method public getFeature(Ljava/lang/String;)Z + .locals 1 + .param p1, "name" # Ljava/lang/String; + + .prologue + .line 111 + const/4 v0, 0x0 + + return v0 +.end method + +.method public getName()Ljava/lang/String; + .locals 1 + + .prologue + .line 129 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + return-object v0 +.end method + +.method public getNamespace()Ljava/lang/String; + .locals 1 + + .prologue + .line 120 + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public getPrefix(Ljava/lang/String;Z)Ljava/lang/String; + .locals 2 + .param p1, "nsp" # Ljava/lang/String; + .param p2, "create" # Z + + .prologue + .line 136 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public getProperty(Ljava/lang/String;)Ljava/lang/Object; + .locals 1 + .param p1, "name" # Ljava/lang/String; + + .prologue + .line 145 + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public ignorableWhitespace(Ljava/lang/String;)V + .locals 0 + .param p1, "sp" # Ljava/lang/String; + + .prologue + .line 149 + return-void +.end method + +.method public processingInstruction(Ljava/lang/String;)V + .locals 2 + .param p1, "pi" # Ljava/lang/String; + + .prologue + .line 246 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "PI NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setAttrStartTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "attrStartTable" # [Ljava/lang/String; + + .prologue + .line 536 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 537 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 538 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit8 v3, v0, 0x5 + + aput v3, v1, v2 + + .line 539 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 536 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 542 + :cond_1 + return-void +.end method + +.method public setAttrValueTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "attrValueTable" # [Ljava/lang/String; + + .prologue + .line 552 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 553 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 554 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit16 v3, v0, 0x85 + + aput v3, v1, v2 + + .line 555 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 552 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 558 + :cond_1 + return-void +.end method + +.method public setFeature(Ljava/lang/String;Z)V + .locals 3 + .param p1, "name" # Ljava/lang/String; + .param p2, "value" # Z + + .prologue + .line 253 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "unknown feature " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V + .locals 1 + .param p1, "out" # Ljava/io/OutputStream; + .param p2, "encoding" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 268 + if-nez p2, :cond_0 + + const-string p2, "UTF-8" + + .end local p2 # "encoding":Ljava/lang/String; + :cond_0 + iput-object p2, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + .line 269 + iput-object p1, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + .line 271 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + .line 272 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + .line 273 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + .line 276 + return-void +.end method + +.method public setOutput(Ljava/io/Writer;)V + .locals 2 + .param p1, "writer" # Ljava/io/Writer; + + .prologue + .line 260 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "Wbxml requires an OutputStream!" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setPrefix(Ljava/lang/String;Ljava/lang/String;)V + .locals 2 + .param p1, "prefix" # Ljava/lang/String; + .param p2, "nsp" # Ljava/lang/String; + + .prologue + .line 282 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setProperty(Ljava/lang/String;Ljava/lang/Object;)V + .locals 3 + .param p1, "property" # Ljava/lang/String; + .param p2, "value" # Ljava/lang/Object; + + .prologue + .line 289 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "unknown property " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setTagTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "tagTable" # [Ljava/lang/String; + + .prologue + .line 518 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 519 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 520 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit8 v3, v0, 0x5 + + aput v3, v1, v2 + + .line 521 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 518 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 524 + :cond_1 + return-void +.end method + +.method public startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V + .locals 2 + .param p1, "encoding" # Ljava/lang/String; + .param p2, "standalone" # Ljava/lang/Boolean; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 299 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x3 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 301 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 305 + if-eqz p1, :cond_0 + + .line 306 + iput-object p1, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + .line 309 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "UTF-8" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 310 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/16 v1, 0x6a + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 316 + :goto_0 + return-void + + .line 311 + :cond_1 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "ISO-8859-1" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_2 + + .line 312 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x4 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + goto :goto_0 + + .line 314 + :cond_2 + new-instance v0, Ljava/io/UnsupportedEncodingException; + + invoke-direct {v0, p1}, Ljava/io/UnsupportedEncodingException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 2 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 321 + if-eqz p1, :cond_0 + + const-string v0, "" + + invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_0 + + .line 322 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NSP NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 + + .line 326 + :cond_0 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 327 + iput-object p2, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + .line 328 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + .line 330 + return-object p0 +.end method + +.method public text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "text" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 340 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 341 + invoke-direct {p0, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 342 + return-object p0 +.end method + +.method public text([CII)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "chars" # [C + .param p2, "start" # I + .param p3, "len" # I + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 334 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 335 + new-instance v0, Ljava/lang/String; + + invoke-direct {v0, p1, p2, p3}, Ljava/lang/String;->([CII)V + + invoke-direct {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 336 + return-object p0 +.end method + +.method writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + .locals 2 + .param p1, "out" # Ljava/io/OutputStream; + .param p2, "s" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 463 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {p2, v1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B + + move-result-object v0 + + .line 464 + .local v0, "data":[B + invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write([B)V + + .line 465 + const/4 v1, 0x0 + + invoke-virtual {p1, v1}, Ljava/io/OutputStream;->write(I)V + + .line 466 + return-void +.end method + +.method public writeWapExtension(ILjava/lang/Object;)V + .locals 3 + .param p1, "type" # I + .param p2, "data" # Ljava/lang/Object; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v2, 0x0 + + .line 413 + invoke-virtual {p0, v2}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 414 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1, p1}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 415 + sparse-switch p1, :sswitch_data_0 + + .line 440 + new-instance v1, Ljava/lang/IllegalArgumentException; + + invoke-direct {v1}, Ljava/lang/IllegalArgumentException;->()V + + throw v1 + + .line 422 + :sswitch_0 + check-cast p2, [B + + .end local p2 # "data":Ljava/lang/Object; + move-object v0, p2 + + check-cast v0, [B + + .line 423 + .local v0, "bytes":[B + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + array-length v2, v0 + + invoke-static {v1, v2}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 424 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1, v0}, Ljava/io/ByteArrayOutputStream;->write([B)V + + .line 442 + .end local v0 # "bytes":[B + :goto_0 + :sswitch_1 + return-void + + .line 430 + .restart local p2 # "data":Ljava/lang/Object; + :sswitch_2 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + check-cast p2, Ljava/lang/String; + + .end local p2 # "data":Ljava/lang/Object; + invoke-virtual {p0, v1, p2}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + goto :goto_0 + + .line 436 + .restart local p2 # "data":Ljava/lang/Object; + :sswitch_3 + check-cast p2, Ljava/lang/String; + + .end local p2 # "data":Ljava/lang/Object; + invoke-direct {p0, p2, v2}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_0 + + .line 415 + nop + + :sswitch_data_0 + .sparse-switch + 0x40 -> :sswitch_2 + 0x41 -> :sswitch_2 + 0x42 -> :sswitch_2 + 0x80 -> :sswitch_3 + 0x81 -> :sswitch_3 + 0x82 -> :sswitch_3 + 0xc0 -> :sswitch_1 + 0xc1 -> :sswitch_1 + 0xc2 -> :sswitch_1 + 0xc3 -> :sswitch_0 + .end sparse-switch +.end method diff --git a/samples/SourcePawn/Check.inc b/samples/SourcePawn/Check.inc new file mode 100644 index 00000000..518ed70d --- /dev/null +++ b/samples/SourcePawn/Check.inc @@ -0,0 +1,246 @@ +// Checkpoint Manager +// (c) João Pedro Lopes, All right's reserved +// +// Feel free to change any line above, as long as you post the 'fix' / 'patch' at the forum +// and send a copy to jplopes@live.com.pt + +/* natives + native CreateCheckpoint(ownerid, chpid, Float:posX, Float:posY, Float:posZ, Float:size); // Creates a checkpoint + native SetCheckpointInterior(chpid, interiorid); // Changes the checkpoint interior + native SetCheckpointVirtualWorld(chpid, VirtualWorldID); // Changes the Checkpoint vWorld + native ToggleCheckpointActive(chpid, bool:active); // Deactivates / Activates the checkpoint + native ChangeCheckpointOwner(chpid, owner); // Change the checkpoint owner + native RemoveCheckpoint(chpid); // Removes the specified checkpoint + native StartCheckpointSeeking(); // Starts seeking for each individual + native StopCheckpointSeeking(); // Stops the system + native VerifyCheckpoint(playerid); // Place this at OnPlayerEnterCheckpoint +*/ + +// Function Forwards +forward public OnCheckpointEnter(playerid, checkpointid); + +#if defined _CHECKPOINT_MANAGER_INCLUDED + #endinput +#endif + +#define _CHECKPOINT_MANAGER_INCLUDED +#pragma library CheckpointManager + +#include + +#define MAX_CHECKPOINTS 200 +#define CHECKPOINT_SEEKER_DELAY 300 + +#define GLOBAL_OWNER_ID -1 + + +// CHECKPOINT ENUMERATION +enum _checkpointEnum{ + _chp_populated, // Is this slot of the memory populated? + + _chp_id, // The ID of the checkpoint + _chp_owner, // The ID of the player who this checkpoint is visible too + + Float:_chp_posX, // The X position of this checkpoint + Float:_chp_posY, // The Y position of this checkpoint + Float:_chp_posZ, // The Z position of this checkpoint + Float:_chp_size, // The checkpoint size + Float:_chp_viewDistance, // The checkpoint view distance + + bool:_chp_active, // Is this checkpoint active? + + _chp_interior_id, // The interior id of this checkpoint + _chp_world_id // The world id of this checkpoint +}; + +// DATA ARRAYS +new _checkpoints[MAX_CHECKPOINTS][_checkpointEnum]; +new _p_VisibleCheckpoint[MAX_PLAYERS]; +new _chp_manager_timer_id; + +// DATA VARIABLES +new _totalCheckpoints; + +// -------------------------------------------------------------------------------------------------------- +// Creates a new checkpoint with some initial data +stock CreateCheckpoint(__ownerid, __chpid, Float:__posX, Float:__posY, Float:__posZ, Float:__size){ + // Max checkpoint reached? + if(_totalCheckpoints == MAX_CHECKPOINTS) return 0; + + // First checkpoint? Setting everything to unpopulated + if(!_totalCheckpoints){ + for(new i; i < MAX_PLAYERS; i++) _p_VisibleCheckpoint[i] = -1; + for(new i; i < MAX_CHECKPOINTS; i++){ + _checkpoints[i][_chp_populated] = false; + } + + // Sending the Initialization Info + printf("[Checkpoint Manager : Version 0.1.1b] System Initialized...", __chpid); + } + + // Getting the first open slot + new _slot; + for(new i = 0; i < MAX_CHECKPOINTS; i++){ + if(!_checkpoints[i][_chp_populated]){ + _slot = i; + break; + } + } + + // Adding the new checkpoint + _checkpoints[_slot][_chp_populated] = true; + _checkpoints[_slot][_chp_id] = __chpid; + _checkpoints[_slot][_chp_owner] = __ownerid; + _checkpoints[_slot][_chp_posX] = __posX; + _checkpoints[_slot][_chp_posY] = __posY; + _checkpoints[_slot][_chp_posZ] = __posZ; + _checkpoints[_slot][_chp_size] = __size; + _checkpoints[_slot][_chp_viewDistance] = 50.0; + _checkpoints[_slot][_chp_active] = true; + _checkpoints[_slot][_chp_interior_id] = 0; + _checkpoints[_slot][_chp_world_id] = 0; + + printf("[Checkpoint Manager] Checkpoint created (%d) at slot %d", __chpid, _slot); + printf("Checkpoint Position: { %f, %f, %f }", _checkpoints[_slot][_chp_posX], _checkpoints[_slot][_chp_posY], _checkpoints[_slot][_chp_posZ]); + + _totalCheckpoints++; + return 1; +} + +//--------------------------------------------------------------------------------------------- +stock SetCheckpointInterior(__chpid, __interiorid){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + // Valid slot? + _checkpoints[_slot][_chp_interior_id] = __interiorid; + return 1; + } + return 0; +} + +//--------------------------------------------------------------------------------------------- +stock SetCheckpointVirtualWorld(__chpid, __virtual_world_id){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + _checkpoints[_slot][_chp_world_id] = __virtual_world_id; + return 1; + } + return 0; +} + +stock ToggleCheckpointActive(__chpid, bool:__active){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + _checkpoints[_slot][_chp_active] = __active; + return 1; + } + return 0; +} + +stock ChangeCheckpointOwner(__chpid, __owner){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + _checkpoints[_slot][_chp_owner] = __owner; + return 1; + } + return 0; +} + +stock RemoveCheckpoint(__chpid){ + new _slot = __ChpSlotByID(__chpid); + if(_slot > -1){ + // Deleting the checkpoint + _checkpoints[_slot][_chp_populated] = false; + _checkpoints[_slot][_chp_id] = -1; + _checkpoints[_slot][_chp_owner] = 255; + _checkpoints[_slot][_chp_posX] = -1; + _checkpoints[_slot][_chp_posY] = -1; + _checkpoints[_slot][_chp_posZ] = -1; + _checkpoints[_slot][_chp_size] = -1; + _checkpoints[_slot][_chp_viewDistance] = -1; + _checkpoints[_slot][_chp_active] = false; + _checkpoints[_slot][_chp_interior_id] = -1; + _checkpoints[_slot][_chp_world_id] = -1; + _totalCheckpoints--; + printf("\n[Checkpoint Manager] Checkpoint removed (ID: %d)", __chpid); + return 1; + } + return 0; +} + +//--------------------------------------------------------------------------------------------- +// Gets the checkpoint slot by id +stock __ChpSlotByID(__chpid){ + for(new i; i < MAX_CHECKPOINTS; i++){ + if(_checkpoints[i][_chp_id] == __chpid) return i; + } + return -1; +} + + +forward CheckpointSeeker(); +stock StartCheckpointSeeking(){ + _chp_manager_timer_id = SetTimer("CheckpointSeeker", CHECKPOINT_SEEKER_DELAY, 1); + return 1; +} + +stock StopCheckpointSeeking(){ + KillTimer(_chp_manager_timer_id); + return 1; +} + +public CheckpointSeeker(){ + new Float:__posX, Float:__posY, Float:__posZ; + new __interior; + new __virtualWorld; + for(new i; i < MAX_PLAYERS; i++) + { + if(!IsPlayerConnected(i)) continue; + + GetPlayerPos(i, Float:__posX, Float:__posY, Float:__posZ); + // Is the player near a checkpoint? + if(_p_VisibleCheckpoint[i] > -1) + { + // If the player is no longer near that point + if(__posX < (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posX] - _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance]) + || __posX > (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posX] + _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance]) + || __posY < (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posY] - _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance]) + || __posY > (_checkpoints[_p_VisibleCheckpoint[i]][_chp_posY] + _checkpoints[_p_VisibleCheckpoint[i]][_chp_viewDistance])){ + DisablePlayerCheckpoint(i); + _p_VisibleCheckpoint[i] = -1; + } + } + else + { + // Getting the player Interior and virtual world + __interior = GetPlayerInterior(i); + __virtualWorld = GetPlayerVirtualWorld(i); + + // Looking for a new checkpoint + for(new j = 0; j < MAX_CHECKPOINTS; j++){ + if(!_checkpoints[j][_chp_populated]) continue; + if((_checkpoints[j][_chp_owner] != i) && (_checkpoints[j][_chp_owner] != -1)) continue; + if(_checkpoints[j][_chp_interior_id] != __interior) continue; + if(_checkpoints[j][_chp_world_id] != __virtualWorld) continue; + + if(__posX > (_checkpoints[j][_chp_posX] - _checkpoints[j][_chp_viewDistance]) + && __posX < (_checkpoints[j][_chp_posX] + _checkpoints[j][_chp_viewDistance]) + && __posY > (_checkpoints[j][_chp_posY] - _checkpoints[j][_chp_viewDistance]) + && __posY < (_checkpoints[j][_chp_posY] + _checkpoints[j][_chp_viewDistance])){ + SetPlayerCheckpoint(i, _checkpoints[j][_chp_posX], _checkpoints[j][_chp_posY], _checkpoints[j][_chp_posZ], _checkpoints[j][_chp_size]); + _p_VisibleCheckpoint[i] = j; + break; + } + } + } + } + return 1; +} + +stock VerifyCheckpoint(__playerid){ + if(_p_VisibleCheckpoint[__playerid] >= 0){ + OnCheckpointEnter(__playerid, _checkpoints[_p_VisibleCheckpoint[__playerid]][_chp_id]); + return 1; + } + return 0; +} \ No newline at end of file diff --git a/samples/SourcePawn/fixed.inc b/samples/SourcePawn/fixed.inc new file mode 100644 index 00000000..b7573dc7 --- /dev/null +++ b/samples/SourcePawn/fixed.inc @@ -0,0 +1,91 @@ +/* Fixed point arithmetic + * + * (c) Copyright 1998-2011, ITB CompuPhase + * This file is provided as is (no warranties). + */ +#pragma library Fixed + +const fround_method: { + fround_round = 0, + fround_floor, + fround_ceil, + fround_tozero, + fround_unbiased +} + +native Fixed:fixed(value); +native Fixed:strfixed(const string[]); +native Fixed:fmul(Fixed:oper1, Fixed:oper2); +native Fixed:fdiv(Fixed:dividend, Fixed:divisor); +native Fixed:ffract(Fixed:value); +native fround(Fixed:value, fround_method:method=fround_round); +native Fixed:fpower(Fixed:value, exponent); +native Fixed:fsqroot(Fixed:value); +native Fixed:fabs(Fixed:value); + +#pragma rational Fixed(3) + +/* user defined operators */ +native Fixed:operator*(Fixed:oper1, Fixed:oper2) = fmul; +native Fixed:operator/(Fixed:oper1, Fixed:oper2) = fdiv; +native Fixed:operator=(oper) = fixed; + +stock Fixed:operator++(Fixed:oper) + return oper + fixed(1); + +stock Fixed:operator--(Fixed:oper) + return oper - fixed(1); + +stock Fixed:operator*(Fixed:oper1, oper2) + return Fixed: (_:oper1 * oper2); /* "*" is commutative */ + +stock Fixed:operator/(Fixed:oper1, oper2) + return oper1 / fixed(oper2); + +stock Fixed:operator/(oper1, Fixed:oper2) + return fdiv(fixed(oper1), oper2); + +stock Fixed:operator+(Fixed:oper1, oper2) + return oper1 + fixed(oper2); /* "+" is commutative */ + +stock Fixed:operator-(Fixed:oper1, oper2) + return oper1 - fixed(oper2); + +stock Fixed:operator-(oper1, Fixed:oper2) + return fixed(oper1) - oper2; + +stock bool:operator>(Fixed:oper1, oper2) + return oper1 > fixed(oper2); + +stock bool:operator>(oper1, Fixed:oper2) + return fixed(oper1) > oper2; + +stock bool:operator>=(Fixed:oper1, oper2) + return oper1 >= fixed(oper2); + +stock bool:operator>=(oper1, Fixed:oper2) + return fixed(oper1) >= oper2; + +stock bool:operator<(Fixed:oper1, oper2) + return oper1 < fixed(oper2); + +stock bool:operator<(oper1, Fixed:oper2) + return fixed(oper1) < oper2; + +stock bool:operator<=(Fixed:oper1, oper2) + return oper1 <= fixed(oper2); + +stock bool:operator<=(oper1, Fixed:oper2) + return fixed(oper1) <= oper2; + +stock bool:operator==(Fixed:oper1, oper2) /* "==" is commutative */ + return oper1 == fixed(oper2); + +stock bool:operator!=(Fixed:oper1, oper2) /* "!=" is commutative */ + return oper1 != fixed(oper2); + +/* forbidden operations */ +forward operator%(Fixed:oper1, Fixed:oper2); +forward operator%(Fixed:oper1, oper2); +forward operator%(oper1, Fixed:oper2); + diff --git a/samples/SourcePawn/foo.sma b/samples/SourcePawn/foo.sma new file mode 100644 index 00000000..e03b77a2 --- /dev/null +++ b/samples/SourcePawn/foo.sma @@ -0,0 +1,272 @@ +// vim: set ts=4 sw=4 tw=99 noet: +// +// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO"). +// Copyright (C) The AMX Mod X Development Team. +// +// This software is licensed under the GNU General Public License, version 3 or higher. +// Additional exceptions apply. For full license details, see LICENSE.txt or visit: +// https://alliedmods.net/amxmodx-license + +// +// TimeLeft Plugin +// + +#include + +const TASK_TIMEREMAIN_SHORT = 8648458 // 0.8s repeat task +const TASK_TIMEREMAIN_LARGE = 34543 // 1.0s repeat task + +// time display flags +const TD_BOTTOM_WHITE_TEXT = 1 // a - display white text on bottom +const TD_USE_VOICE = 2 // b - use voice +const TD_NO_REMAINING_VOICE = 4 // c - don't add "remaining" (only in voice) +const TD_NO_HOURS_MINS_SECS_VOICE = 8 // d - don't add "hours/minutes/seconds" (only in voice) +const TD_SHOW_SPEAK_VALUES_BELOW = 16 // e - show/speak if current time is less than this set in parameter + +new g_TimeSet[32][2] +new g_LastTime +new g_CountDown +new g_Switch + +// pcvars +new g_amx_time_voice, g_amx_timeleft +new g_mp_timelimit + +public plugin_init() +{ + register_plugin("TimeLeft", AMXX_VERSION_STR, "AMXX Dev Team") + register_dictionary("timeleft.txt") + g_amx_time_voice = register_cvar("amx_time_voice", "1") + register_srvcmd("amx_time_display", "setDisplaying") + g_amx_timeleft = register_cvar("amx_timeleft", "00:00", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY) + register_clcmd("say timeleft", "sayTimeLeft", 0, "- displays timeleft") + register_clcmd("say thetime", "sayTheTime", 0, "- displays current time") + + set_task(0.8, "timeRemain", TASK_TIMEREMAIN_SHORT, "", 0, "b") + + g_mp_timelimit = get_cvar_pointer("mp_timelimit") +} + +public sayTheTime(id) +{ + if (get_pcvar_num(g_amx_time_voice)) + { + new mhours[6], mmins[6], whours[32], wmins[32], wpm[6] + + get_time("%H", mhours, charsmax(mhours)) + get_time("%M", mmins, charsmax(mmins)) + + new mins = str_to_num(mmins) + new hrs = str_to_num(mhours) + + if (mins) + num_to_word(mins, wmins, charsmax(wmins)) + else + wmins[0] = EOS + + if (hrs < 12) + wpm = "am " + else + { + if (hrs > 12) hrs -= 12 + wpm = "pm " + } + + if (hrs) + num_to_word(hrs, whours, charsmax(whours)) + else + whours = "twelve " + + client_cmd(id, "spk ^"fvox/time_is_now %s_period %s%s^"", whours, wmins, wpm) + } + + new ctime[64] + + get_time("%m/%d/%Y - %H:%M:%S", ctime, charsmax(ctime)) + client_print(0, print_chat, "%L: %s", LANG_PLAYER, "THE_TIME", ctime) + + return PLUGIN_CONTINUE +} + +public sayTimeLeft(id) +{ + if (get_pcvar_float(g_mp_timelimit)) + { + new a = get_timeleft() + + if (get_pcvar_num(g_amx_time_voice)) + { + new svoice[128] + setTimeVoice(svoice, charsmax(svoice), 0, a) + client_cmd(id, "%s", svoice) + } + client_print(0, print_chat, "%L: %d:%02d", LANG_PLAYER, "TIME_LEFT", (a / 60), (a % 60)) + } + else + client_print(0, print_chat, "%L", LANG_PLAYER, "NO_T_LIMIT") + + return PLUGIN_CONTINUE +} + +setTimeText(text[], len, tmlf, id) +{ + new secs = tmlf % 60 + new mins = tmlf / 60 + + if (secs == 0) + formatex(text, len, "%d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE") + else if (mins == 0) + formatex(text, len, "%d %L", secs, id, (secs > 1) ? "SECONDS" : "SECOND") + else + formatex(text, len, "%d %L %d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE", secs, id, (secs > 1) ? "SECONDS" : "SECOND") +} + +setTimeVoice(text[], len, flags, tmlf) +{ + new temp[7][32] + new secs = tmlf % 60 + new mins = tmlf / 60 + + // for (new a = 0;a < 7;++a) // we just created it, already null + // temp[a][0] = 0 + + if (secs > 0) + { + num_to_word(secs, temp[4], charsmax(temp[])) + + if ( ~flags & TD_NO_HOURS_MINS_SECS_VOICE ) + temp[5] = "seconds " /* there is no "second" in default hl */ + } + + if (mins > 59) + { + new hours = mins / 60 + + num_to_word(hours, temp[0], charsmax(temp[])) + + if ( ~flags & TD_NO_HOURS_MINS_SECS_VOICE ) + temp[1] = "hours " + + mins = mins % 60 + } + + if (mins > 0) + { + num_to_word(mins, temp[2], charsmax(temp[])) + + if ( ~flags & TD_NO_HOURS_MINS_SECS_VOICE ) + temp[3] = "minutes " + } + + if ( ~flags & TD_NO_REMAINING_VOICE ) + temp[6] = "remaining " + + return formatex(text, len, "spk ^"vox/%s%s%s%s%s%s%s^"", temp[0], temp[1], temp[2], temp[3], temp[4], temp[5], temp[6]) +} + +findDispFormat(_time) +{ + // it is important to check i _time) + { + if (!g_Switch) + { + g_CountDown = g_Switch = _time + remove_task(TASK_TIMEREMAIN_SHORT) + set_task(1.0, "timeRemain", TASK_TIMEREMAIN_LARGE, "", 0, "b") + } + + return i + } + } + else if (g_TimeSet[i][0] == _time) + { + return i + } + } + + return -1 +} + +public setDisplaying() +{ + new arg[32], flags[32], num[32] + new argc = read_argc() - 1 + new i = 0 + + while (i < argc && i < sizeof(g_TimeSet)) + { + read_argv(i + 1, arg, charsmax(arg)) + parse(arg, flags, charsmax(flags), num, charsmax(num)) + + g_TimeSet[i][0] = str_to_num(num) + g_TimeSet[i][1] = read_flags(flags) + + i++ + } + + if( i < sizeof(g_TimeSet) ) + g_TimeSet[i][0] = 0 // has to be zeroed in case command is sent twice + + return PLUGIN_HANDLED +} + +public timeRemain(param[]) +{ + new gmtm = get_timeleft() + new tmlf = g_Switch ? --g_CountDown : gmtm + new stimel[12] + + formatex(stimel, charsmax(stimel), "%02d:%02d", gmtm / 60, gmtm % 60) + set_pcvar_string(g_amx_timeleft, stimel) + + if (g_Switch && gmtm > g_Switch) + { + remove_task(TASK_TIMEREMAIN_LARGE) + g_Switch = 0 + set_task(0.8, "timeRemain", TASK_TIMEREMAIN_SHORT, "", 0, "b") + + return + } + + if (tmlf > 0 && g_LastTime != tmlf) + { + g_LastTime = tmlf + new tm_set = findDispFormat(tmlf) + + if (tm_set != -1) + { + new flags = g_TimeSet[tm_set][1] + new arg[128] + + if (flags & TD_BOTTOM_WHITE_TEXT) + { + new players[MAX_PLAYERS], pnum, plr + + get_players(players, pnum, "c") + + if (flags & TD_SHOW_SPEAK_VALUES_BELOW) // yes this is correct flag, just because message should be shorter if it is shown every seconds + set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, -1) + else + set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, -1) + + for (new i = 0; i < pnum; i++) + { + plr = players[i] + setTimeText(arg, charsmax(arg), tmlf, plr) + show_hudmessage(plr, "%s", arg) + } + } + + if (flags & TD_USE_VOICE) + { + setTimeVoice(arg, charsmax(arg), flags, tmlf) + client_cmd(0, "%s", arg) + } + } + } +} diff --git a/samples/SourcePawn/mfile.inc b/samples/SourcePawn/mfile.inc new file mode 100644 index 00000000..70fd47e0 --- /dev/null +++ b/samples/SourcePawn/mfile.inc @@ -0,0 +1,289 @@ +/* mFile 1.1 by Minokon + * + * (c) Copyright by Minokon 2010 + * (c) y_files Copyright by Y_Less 2010 + * + */ + +#if defined _mfile_included + #endinput +#endif +#define _mfile_included + +//Defines +#define MAX_LINE_SIZE 80 //Max lenght of one line in file +#define MAX_KEY_SIZE 50 //Max lenght of key in line (to =) +#define MAX_VALUE_SIZE 50 //Max lenght of value in line (past =) +#define TMP_FILE "tmpfile.txt" + +//Natives +/* +native mCreateFile(const file[]); +native mRemoveFile(const file[]); +native mClearFile(const file[]); +native bool:mFileExist(const file[]); +native mRenameFile(const file[], const newname[]); +native mFindFile(const name[], dest[], &index, sizename=sizeof dest); +native mCreateDir(const name[]); +native mRenameDir(const dir[], const newname[]); +native mFindDir(const name[], dest[], &index, sizename=sizeof dest); +native mHowLines(const file[]); +native mRemoveNewLine(string[]); //removes "\n" from string +native mGetString(const file[], const key[], bool:ignorecase=false); +native mGetInt(const file[], const key[], bool:ignorecase=false); +native mGetFloat(const file[], const key[], &Float:value); +native mSetString(const file[], const key[], const new_value[]); +native mSetInt(const file[], const key[], new_value); +native mSetFloat(const file[], const key[], Float:new_value); +native mIsSet(const file[], const key[], bool:ignorecase=false); +native mUnSet(const file[], const key[]); +native mIsFileEmpty(const file[]); +native y_files +*/ +//y_files by Y_Less Functions +native ffind(const pattern[], filename[], len, &idx); +native frename(const oldname[], const newname[]); +native dfind(const pattern[], filename[], len, &idx); +native dcreate(const name[]); +native drename(const oldname[], const newname[]); + +//Forwards +forward OnFileCreated(file[]); +forward OnFileRemoved(file[]); +forward OnFileCleared(file[]); +forward OnFileRenamed(oldname[], newname[]); +forward OnDirCreated(dir[]); +forward OnDirRenamed(oldname[], newname[]); + +stock mCreateFile(const file[]) +{ + if(fexist(file)) fremove(file); + new File:mfile = fopen(file, io_write); + fclose(mfile); + CallLocalFunction("OnFileCreated", "s", file); + return 1; +} + +stock mRemoveFile(const file[]) +{ + CallLocalFunction("OnFileRemoved", "s", file); + return fremove(file); +} + +stock mClearFile(const file[]) +{ + if(!fremove(file)) return 0; + new File:mfile = fopen(file, io_write); + fclose(mfile); + CallLocalFunction("OnFileCleared", "s", file); + return 1; +} + +stock bool:mFileExist(const file[]) + if(fexist(file)) return true; //dla ciekawych: fexist nie zwraca booleanu + else return false; + +stock mRenameFile(const file[], const newname[]) +{ + CallLocalFunction("OnFileRenamed", "ss", file, newname); + return frename(file, newname); +} + +stock mFindFile(const name[], dest[], &index, sizename=sizeof dest) + return ffind(name, dest, sizename, index); + +stock mCreateDir(const name[]) +{ + CallLocalFunction("OnDirCreated", "s", name); + return dcreate(name); +} + +stock mRenameDir(const dir[], const newname[]) +{ + CallLocalFunction("OnDirRenamed", "ss", dir, newname); + return drename(dir, newname); +} + +stock mFindDir(const name[], dest[], &index, sizename=sizeof dest) + return dfind(name, dest, sizename, index); + +stock mHowLines(const file[]) +{ + new lines, str[MAX_LINE_SIZE]; + new File:mfile = fopen(file, io_read); + while(fread(mfile, str)) lines++; + fclose(mfile); + return lines; +} + +stock mRemoveNewLine(string[]) +{ + new pos = strfind(string, "\n"); + if(pos != -1) + { + strdel(string, pos, pos+2); + return 1; + } + return 0; +} + +stock mGetString(const file[], const key[], bool:ignorecase=false) +{ + //Create file if not exists + if(!fexist(file)) + { + new File:created = fopen(file, io_write); + fclose(created); + } + new //Variables + File:mfile = fopen(file, io_read), //Open file + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE], + str3[MAX_VALUE_SIZE], + pos; + //Find key in file + while(fread(mfile, str)) + { + pos = strfind(str, "=", ignorecase); + strmid(str2, str, 0, pos); + if(!strcmp(str2, key, ignorecase, strlen(key)+1)) + { + strmid(str3, str, pos+1, strlen(str)); + mRemoveNewLine(str3); + break; + } + } + fclose(mfile); + return str3; +} + +stock mGetInt(const file[], const key[], bool:ignorecase=false) + return strval(mGetString(file, key, ignorecase)); + +stock mGetFloat(const file[], const key[], &Float:value, bool:ignorecase=false) + value = floatstr(mGetString(file, key, ignorecase)); + +stock mSetString(const file[], const key[], const new_value[]) +{ + //Create file if not exists + if(!fexist(file)) + { + new File:created = fopen(file, io_write); + fclose(created); + } + new //Variables + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE], + str3[MAX_LINE_SIZE], + bool:lFinded = false; + //Open file + new File:mfile = fopen(file, io_read); + //Create cache file + new File:tmpfile = fopen(TMP_FILE, io_write); + fclose(tmpfile); + //Open cache file + tmpfile = fopen(TMP_FILE, io_append); + format(str3, sizeof str3, "%s=%s\n", key, new_value); + while(fread(mfile, str)) + { + strmid(str2, str, 0, strfind(str, "=")); + if(!strcmp(str2, key)) + { + fwrite(tmpfile, str3); + lFinded = true; + } + else + fwrite(tmpfile, str); + } + if(!lFinded) //if line not found + fwrite(tmpfile, str3); + //Close and remove old file + fclose(mfile); + fremove(file); + //Close cache file and rename it + fclose(tmpfile); + frename(TMP_FILE, file); + return 1; +} + +stock mSetInt(const file[], const key[], new_value) +{ + new str[MAX_VALUE_SIZE]; + valstr(str, new_value); + mSetString(file, key, str); + return 1; +} + +stock mSetFloat(const file[], const key[], Float:new_value) +{ + new str[MAX_VALUE_SIZE]; + format(str, sizeof str, "%f", new_value); + return mSetString(file, key, str); +} + +stock bool:mIsSet(const file[], const key[], bool:ignorecase=false) +{ + //If fexists return false + if(!fexist(file)) return false; + new //Variables + File:mfile = fopen(file, io_read), //Open file + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE], + bool:finded = false; + //Find key in file + while(fread(mfile, str)) + { + strmid(str2, str, 0, strfind(str, "=")); + if(!strcmp(str2, key, ignorecase, strlen(key)+1)) + { + finded = true; + break; + } + } + fclose(mfile); + return finded; +} + +stock mUnSet(const file[], const key[]) +{ + if(!fexist(file)) return 0; + new //Variables + str[MAX_LINE_SIZE], + str2[MAX_KEY_SIZE]; + //Open file + new File:mfile = fopen(file, io_read); + //Create cache file + new File:tmpfile = fopen(TMP_FILE, io_write); + fclose(tmpfile); + //Open cache file + tmpfile = fopen(TMP_FILE, io_append); + while(fread(mfile, str)) + { + strmid(str2, str, 0, strfind(str, "=")); + if(strcmp(str2, key) != 0) + fwrite(tmpfile, str); + } + //Close and remove old file + fclose(mfile); + fremove(file); + //Close cache file and rename it + fclose(tmpfile); + frename(TMP_FILE, file); + return 1; +} + +stock bool:mIsFileEmpty(const file[]) +{ + if(!fexist(file)) return true; + new File:mfile = fopen(file, io_read); + if(flength(mfile) <= 1) + { + fclose(mfile); + return true; + } + else + { + fclose(mfile); + return false; + } +} diff --git a/samples/SourcePawn/y_testing.inc b/samples/SourcePawn/y_testing.inc new file mode 100644 index 00000000..95b49c0c --- /dev/null +++ b/samples/SourcePawn/y_testing.inc @@ -0,0 +1,633 @@ +/**--------------------------------------------------------------------------**\ + ==================================== + y_testing - Run unit tests easilly + ==================================== +Description: + Runs any functions named as tests when the Testing_Run function is called. +Legal: + Version: MPL 1.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the + License. + + The Original Code is the YSI testing include. + + The Initial Developer of the Original Code is Alex "Y_Less" Cole. + Portions created by the Initial Developer are Copyright (C) 2011 + the Initial Developer. All Rights Reserved. + + Contributors: + ZeeX, koolk, JoeBullet/Google63, g_aSlice/Slice + + Thanks: + JoeBullet/Google63 - Handy arbitrary ASM jump code using SCTRL. + ZeeX - Very productive conversations. + koolk - IsPlayerinAreaEx code. + TheAlpha - Danish translation. + breadfish - German translation. + Fireburn - Dutch translation. + yom - French translation. + 50p - Polish translation. + Zamaroht - Spanish translation. + Dracoblue, sintax, mabako, Xtreme, other coders - Producing other modes + for me to strive to better. + Pixels^ - Running XScripters where the idea was born. + Matite - Pestering me to release it and using it. + + Very special thanks to: + Thiadmer - PAWN, whose limits continue to amaze me! + Kye/Kalcor - SA:MP. + SA:MP Team past, present and future - SA:MP. + +Version: + 1.0 +Changelog: + 16/02/12: + Added better error reporting (less verbose passes). + Removed "Tests:". + Added player requiring tests. + 25/10/10: + Integrated in to YSI. + 06/08/10: + First version + +\**--------------------------------------------------------------------------**/ + +/*#if defined _inc_a_samp || defined _samp_included || defined _inc_y_version + #error y_testing must be the VERY FIRST include in your mode if being used. +#endif + +// Now we redefined "native" to do something clever! +// "IsPlayerAttachedObjectSlotUsed" is an issue for us... + +// "y_renative" allows native functions to be declared without constantly trying +// to redefine it. +#include "internal\y_renative" + +#define native%0(%1); _YSI_NO_TAG_NATIVE:_YSI_RE_NATIVE<%0@|||%1|||%0>_YSI_RE_STOCK<%0|||%1|||_:%0@> + +//stock%0(%1){printf(_:_YSI_NO_SQUARE:"native "#%0" called");return _:%0@(%1);} + +#define _YSI_RE_STOCK<%0|||%1|||%2> stock%0(%1){print(_:_YSI_NO_SQUARE:"native "#%0" called");return %2(%1);} + +#define _YSI_NO_SQUARE:%0);%1(%2[%3]%4);} _YSI_NO_SQUARE:%0);%1(%2%4);} + +//#define _YSI_NO_TAG_NATIVE:_YSI_RE_NATIVE<%0:%1|||%2|||%3:%4>%5{%6;%7:%8:%9} _YSI_RE_NATIVE<%1|||%2|||%4>%5{%6;return%8:%9} +#define _YSI_NO_TAG_NATIVE:_YSI_RE_NATIVE<%0:%1|||%2|||%3:%4>_YSI_RE_STOCK<%5:%6|||%7|||_:%8:%9> _YSI_RE_NATIVE<%1|||%2|||%4>_YSI_RE_STOCK<%5:%6|||%7|||%8:%9>*/ + +#include + +#if defined YSI_TESTS + #if defined INCLUDE_TESTS + #error Incompatible testing options (YSI_TESTS + INCLUDE_TESTS) + #endif + #if !defined RUN_TESTS + #define RUN_TESTS + #endif +#endif + +#if defined INCLUDE_TESTS + #define RUN_TESTS + #define Debug_PrintT va_printf +#elseif defined RUN_TESTS + #define _AUTO_RUN_TESTS + #define Debug_PrintT va_printf +#else + #if _DEBUG > 0 || defined _YSI_SPECIAL_DEBUG + #define RUN_TESTS + #define _AUTO_RUN_TESTS + //#if defined _YSI_SPECIAL_DEBUG + // #define TP printf + // //#define TC(%0); %0 + #define Debug_PrintT va_printf + //#else + // //#define TP P:0 + // //#define TC C:0 + //#endif + #else + #define Debug_PrintT(%0); + // #define Tests:%1() stock bool:Tests_@%1() + // #define Test:%1() stock bool:Test_@%1() + // #define TestInit:%1() stock Init_@%1() + // #define TestClose:%1() stock Shut_@%1() + #endif +#endif + +#define Y_TESTING_DIALOG_ID (0x7974) // "yt" + +#define TEST_TRUE(%0) Testing_Test(!!%0) +#define TEST_FALSE(%0) Testing_Test(!%0) +#define TEST_NULL(%0) Testing_Test(0 == %0) +#define TEST_NOT_NULL(%0) Testing_Test(0 != %0) +#define TEST_N(%0,%1) Testing_Test(%1 == %0) + +#define TEST_TRUE_EX(%0,%2) Testing_Test(bool:(%0), (%2)) +#define TEST_FALSE_EX(%0,%2) Testing_Test(!(%0), (%2)) +#define TEST_NULL_EX(%0,%2) Testing_Test((%0) == 0, (%2)) +#define TEST_N_EX(%0,%1,%2) Testing_Test((%0) == (%1), (%2)) + +#define TEST_MSG "\2\2\2\2\2" +#define TEST_FAILED "FAIL:" +#define TEST_PASSED "PASS!" +//#define TEST_FAILED "*** Test Failed:" +//#define TEST_PASSED "*** Test Passed:" + +#define _Y_TESTEQ(%0) "\"%0\"") +#define _Y_TESTDQ:_Y_TESTEQ(%0"%1"%2) _Y_TESTDQ:_Y_TESTEQ(%0\x22;%1\x22;%2) +//#define _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0)%1) _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0\x29;%1) +#define _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0)%1) _Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0\x29;%1) +#define _Y_TESTOB:_Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0(%1) _Y_TESTOB:_Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0\x28;%1) + +#define ASSERT(%0) Testing_Test(%0,TEST_MSG" %s", _Y_TESTOB:_Y_TESTCB:_Y_TESTDQ:_Y_TESTEQ(%0) +#define ASSERT_TRUE(%0) ASSERT(!!%0) //Testing_Test(!!%0,__name) +#define ASSERT_FALSE(%0) ASSERT(!%0) //Testing_Test(!%0,__name) +#define ASSERT_NULL(%0) ASSERT(0 == %0) //Testing_Test(0==%0,__name) +#define ASSERT_N:%1(%0) ASSERT(%1 == %0) //Testing_Test(%1==%0,__name) + +#define ASK(%0) Testing_Ask(playerid,%0) + +static stock + YSI_g_sFailMessage[512], + YSI_g_sPlayer = cellmax, + bool:YSI_g_sAsked, + YSI_g_sTests, + YSI_g_sFails; + +#if defined RUN_TESTS + #define Test:%1() forward bool:Tezt_@%1(); public bool:Tezt_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define TestInit:%1() forward Init_@%1(); public Init_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define TestClose:%1() forward Shut_@%1(); public Shut_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + + #define PTest:%1(%2) forward bool:Tezp_@%1(%2); public bool:Tezp_@%1(%2) for(new string:__name[]=#%1,bool:__once=(printf("*** Player Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define PTestInit:%1(%2) forward Inip_@%1(%2); public Inip_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define PTestClose:%1(%2) forward Shup_@%1(%2); public Shup_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) +#else + #define Test:%1() stock bool:Test_@%1() + #define TestInit:%1() stock Init_@%1() + #define TestClose:%1() stock Shut_@%1() + + #define PTest:%1(%2) stock bool:Test_@%1(%2) + #define PTestInit:%1(%2) stock Init_@%1(%2) + #define PTestClose:%1(%2) stock Shut_@%1(%2) +#endif + +// These all need to come AFTER the types are defined in case the have tests. +#include "internal\y_version" + +#include "y_amx" +#include "internal\y_shortfunc" +#include "y_debug" + +#include "internal\y_natives" + +#include "y_va" + +/**--------------------------------------------------------------------------**\ +Testing_Ask +Player to ask a question to. +What to ask. +Additional data. + + - + + + Calls a dialog to ask the player if the given test actually passed. + +\**--------------------------------------------------------------------------**/ + +stock Testing_Ask(playerid, str[] = "", va_args<>) +{ + va_format(YSI_g_sFailMessage, sizeof (YSI_g_sFailMessage), str, va_start<2>); + ShowPlayerDialog(playerid, Y_TESTING_DIALOG_ID, DIALOG_STYLE_MSGBOX, "Did the test pass?", YSI_g_sFailMessage, "Yes", "No"); + YSI_g_sAsked = true; +} + +stock Testing_Test(bool:x, str[] = "", va_args<>) +{ + P:3("Testing_Test called: %i, \"%s\"", x, str); + ++YSI_g_sTests; + if (!x) + { + ++YSI_g_sFails; + if (numargs() == 2) + { + P:T(TEST_FAILED " %s", va_start<1>); + //printf("*** Test failed: %s", str); + } + else + { + if (str[0] == '\2') + { + strunpack(str, !TEST_FAILED, 6); + str[5] = ' '; + } + P:T(str, va_start<2>); + } + } + #if defined TEST_SHOW_PASSES + else /*if (numargs() == 2) + { + P:T(TEST_PASSED " %s", va_start<1>); + } + else + { + P:T(str, va_start<2>); + if (str[0] == '\2') + { + strunpack(str, !TEST_PASSED, 17); + str[16] = ' '; + } + printf(str); + P:T(str, va_start<2>);*/ + { + P:T(TEST_PASSED, va_start<2>); + } + #endif +} + +/**--------------------------------------------------------------------------**\ +Testing_Run +Number of tests run. +Number of tests which failed. +The name of the first test which failed. + + Wether all tests were sucessful or not. + + + - + +native Testing_Run(&tests, &fails, buffer[33] = ""); + + +\**--------------------------------------------------------------------------**/ + +stock bool:Testing_Run(&tests, &fails, lastfail[33] = "", bool:p = false) +{ + P:3("bool:Testing_Run called: %i, %i, \"%s\", %i", tests, fails, lastfail, p); + #pragma unused p, lastfail + #if defined RUN_TESTS + P:2("Testing_Run() called"); + new + idx, + buffer[32]; + while ((idx = AMX_GetPublicName(idx, buffer, "Tezt_@"))) + { + strunpack(buffer, buffer); + //++YSI_g_sTests; + // Call the setup function if there is one. + buffer[0] = 'I'; + buffer[1] = 'n'; + buffer[2] = 'i'; + buffer[3] = 't'; + CallLocalFunction(buffer, ""); + // Call the test. + buffer[0] = 'T'; + buffer[1] = 'e'; + buffer[2] = 'z'; + buffer[3] = 't'; + fails = YSI_g_sFails; + P:5("Testing_Run(): Calling %s", buffer[6]); + CallLocalFunction(buffer, ""); + #if !defined TEST_SHOW_PASSES + if (YSI_g_sFails == fails) + { + printf(TEST_PASSED); + printf(" "); + } + #endif + /*if (YSI_g_sFails != fails) + { + if (YSI_g_sFails) + { + ++YSI_g_sFails; + } + else + { + fails = 0; + // Copy the string over. + while ((lastfail[fails] = buffer[fails + 6])) ++fails; + YSI_g_sFails = 1; + } + //C:1(if (p) printf("*** Test failed: %s", buffer[fails + 6]);); + }*/ + // Call the shutdown function if there is one. + buffer[0] = 'S'; + buffer[1] = 'h'; + buffer[2] = 'u'; + buffer[3] = 't'; + CallLocalFunction(buffer, ""); + } + tests = YSI_g_sTests; + fails = YSI_g_sFails; + return fails == 0; + #else + #pragma unused tests, fails, lastfail + return true; + #endif +} + +/**--------------------------------------------------------------------------**\ +Testing_Player +Player to test on. +Next test to run. +Number of tests run. +Number of tests which failed. +The name of the first test which failed. + + Wether all tests were sucessful or not. + + + - + +native Testing_Run(&tests, &fails, buffer[33] = ""); + + +\**--------------------------------------------------------------------------**/ + +stock bool:Testing_Player(playerid, &idx, &tests, &fails, lastfail[33] = "", bool:p = false) +{ + P:3("bool:Testing_Player called: %i, %i, %i, %i, \"%s\", %i", playerid, idx, tests, fails, lastfail, p); + #pragma unused p + #if defined RUN_TESTS + P:2("Testing_Player() called"); + new + //idx, + buffer[32]; + //while ((idx = AMX_GetPublicName(idx, buffer, "Tezt_@"))) + if ((idx = AMX_GetPublicName(idx, buffer, "Tezp_@"))) + { + strunpack(buffer, buffer); + //++YSI_g_sTests; + // Call the setup function if there is one. + buffer[0] = 'I'; + buffer[1] = 'n'; + buffer[2] = 'i'; + buffer[3] = 'p'; + CallLocalFunction(buffer, ""); + // Call the test. + buffer[0] = 'T'; + buffer[1] = 'e'; + buffer[2] = 'z'; + buffer[3] = 'p'; + fails = YSI_g_sFails; + P:5("Testing_Player(): Calling %s", buffer[6]); + CallLocalFunction(buffer, ""); + #if !defined TEST_SHOW_PASSES + if (YSI_g_sFails == fails) + { + printf(TEST_PASSED); + printf(" "); + } + #endif + /*if (YSI_g_sFails != fails) + { + if (YSI_g_sFails) + { + ++YSI_g_sFails; + } + else + { + fails = 0; + // Copy the string over. + while ((lastfail[fails] = buffer[fails + 6])) ++fails; + YSI_g_sFails = 1; + } + //C:1(if (p) printf("*** Test failed: %s", buffer[fails + 6]);); + }*/ + // Call the shutdown function if there is one. + //buffer[0] = 'S'; + //buffer[1] = 'h'; + //buffer[2] = 'u'; + //buffer[3] = 'p'; + //CallLocalFunction(buffer, ""); + } + tests = YSI_g_sTests; + fails = YSI_g_sFails; + return fails == 0; + #else + #pragma unused tests, fails, lastfail + return true; + #endif +} + +#if defined RUN_TESTS + /*#define Test:%1() forward bool:Tezt_@%1(); public bool:Tezt_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define TestInit:%1() forward Init_@%1(); public Init_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define TestClose:%1() forward Shut_@%1(); public Shut_@%1() for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + + #define PTest:%1(%2) forward bool:Tezp_@%1(%2); public bool:Tezp_@%1(%2) for(new string:__name[]=#%1,bool:__once=(printf("*** Player Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + //#define Tests:%1() forward bool:Test_@%1(); public bool:Test_@%1() for(new string:__name[]=#%1,bool:__once=(printf("*** Test %s start", __name) || TRUE);__once;__once=(printf(" ") && FALSE)) + #define PTestInit:%1(%2) forward Inip_@%1(%2); public Inip_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE)) + #define PTestClose:%1(%2) forward Shup_@%1(%2); public Shup_@%1(%2) for(new string:__name[]=#%1,bool:__once=TRUE;__once;__once=(printf(" ", __name) && FALSE))*/ + + #if defined _AUTO_RUN_TESTS + #if !defined FILTERSCRIPT + // Hook main in gamemodes. + main() + { + // Disable error messages (as we're likely to generate them). + state ysi_debug : off; + CallLocalFunction("Testing_main", ""); + new + tests, + fails; + printf(" "); + printf(" ||===================|| "); + printf(" || STARTING TESTS... || "); + printf(" ||===================|| "); + printf(" "); + Testing_Run(tests, fails, _, true); + printf("*** Tests: %d, Fails: %d", tests, fails); + if (!fails) + { + printf(" "); + printf(" ||===================|| "); + printf(" || ALL TESTS PASSED! || "); + printf(" ||===================|| "); + printf(" "); + } + state ysi_debug : on; + } + + #define main forward Testing_main(); public Testing_main + + Testing_Next(playerid) + { + new + buffer[32]; + for ( ; ; ) + { + new + fails = YSI_g_sFails; + // Get the last test (nicely fails for cellmax). + if ((YSI_g_sPlayer = AMX_GetPublicName(YSI_g_sPlayer, buffer, "Tezp_@"))) + { + strunpack(buffer, buffer); + // Call the shutdown function if there is one. + buffer[0] = 'S'; + buffer[1] = 'h'; + buffer[2] = 'u'; + buffer[3] = 'p'; + CallLocalFunction(buffer, "i", playerid); + } + // Get the new test, but don't store the index. + if (AMX_GetPublicName(YSI_g_sPlayer, buffer, "Tezp_@")) + { + YSI_g_sAsked = false; + //++YSI_g_sTests; + strunpack(buffer, buffer); + // Call the setup function if there is one. + buffer[0] = 'I'; + buffer[1] = 'n'; + buffer[2] = 'i'; + buffer[3] = 'p'; + CallLocalFunction(buffer, "i", playerid); + // Call the test. + buffer[0] = 'T'; + buffer[1] = 'e'; + buffer[2] = 'z'; + buffer[3] = 'p'; + P:5("Testing_Next(): Calling %s", buffer[6]); + CallLocalFunction(buffer, "i", playerid); + } + else + { + YSI_g_sAsked = true; + // No more tests. + printf("*** Tests: %d, Fails: %d", YSI_g_sTests, YSI_g_sFails); + if (!YSI_g_sFails) + { + printf(" "); + printf(" ||==========================|| "); + printf(" || ALL PLAYER TESTS PASSED! || "); + printf(" ||==========================|| "); + printf(" "); + } + } + // If the test needs a player but doesn't ask them anything + // then we can't wait for "OnDialogResponse" to run the next + // one. + if (YSI_g_sAsked) + { + break; + } + else if (fails == YSI_g_sFails) + { + printf(TEST_PASSED); + } + } + //while (!YSI_g_sAsked); + } + + public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) + { + if (dialogid == Y_TESTING_DIALOG_ID) + { + ++YSI_g_sTests; + if (response) + { + // Pass. + printf(TEST_PASSED); + } + else + { + // Fail. + printf(TEST_FAILED " %s", YSI_g_sFailMessage); + ++YSI_g_sFails; + } + Testing_Next(playerid); + return 1; + } + #if defined Testing_OnDialogResponse + return Testing_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); + #else + return 1; + #endif + } + + #if defined _ALS_OnDialogResponse + #undef OnDialogResponse + #else + #define _ALS_OnDialogResponse + #endif + #define OnDialogResponse Testing_OnDialogResponse + #if defined Testing_OnDialogResponse + forward Testing_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]); + #endif + + public OnPlayerSpawn(playerid) + { + if (YSI_g_sPlayer == cellmax && !IsPlayerNPC(playerid)) + { + printf(" "); + printf(" ||==========================|| "); + printf(" || STARTING PLAYER TESTS... || "); + printf(" ||==========================|| "); + printf(" "); + YSI_g_sTests = 0; + YSI_g_sFails = 0; + Testing_Next(playerid); + } + #if defined Testing_OnPlayerSpawn + return Testing_OnPlayerSpawn(playerid); + #else + return 1; + #endif + } + + #if defined _ALS_OnPlayerSpawn + #undef OnPlayerSpawn + #else + #define _ALS_OnPlayerSpawn + #endif + #define OnPlayerSpawn Testing_OnPlayerSpawn + #if defined Testing_OnPlayerSpawn + forward Testing_OnPlayerSpawn(playerid); + #endif + #endif + #else + Testing_RunAll() + { + // Disable error messages (as we're likely to generate them). + state ysi_debug : off; + new + tests, + fails; + printf(" "); + printf(" ||===================|| "); + printf(" || STARTING TESTS... || "); + printf(" ||===================|| "); + printf(" "); + Testing_Run(tests, fails, _, true); + printf("*** Tests: %d, Fails: %d", tests, fails); + if (!fails) + { + printf(" "); + printf(" ||===================|| "); + printf(" || ALL TESTS PASSED! || "); + printf(" ||===================|| "); + printf(" "); + } + state ysi_debug : on; + } + #endif +#else + //#define Tests:%1() stock bool:Tests_@%1() + /*#define Test:%1() stock bool:Test_@%1() + #define TestInit:%1() stock Init_@%1() + #define TestClose:%1() stock Shut_@%1() + + #define PTest:%1(%2) stock bool:Test_@%1(%2) + #define PTestInit:%1(%2) stock Init_@%1(%2) + #define PTestClose:%1(%2) stock Shut_@%1(%2)*/ +#endif diff --git a/samples/Text/01_top.ncl b/samples/Text/01_top.ncl new file mode 100644 index 00000000..92f12f77 --- /dev/null +++ b/samples/Text/01_top.ncl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/samples/Text/LIDARLite.ncl b/samples/Text/LIDARLite.ncl new file mode 100644 index 00000000..f93f95f7 --- /dev/null +++ b/samples/Text/LIDARLite.ncl @@ -0,0 +1,34 @@ +G04 DipTrace 2.4.0.2* +%INLIDARLite.ncl*% +%MOIN*% +%ADD11C,0.0394*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNBoardOutline*% +%LPD*% +X0Y23622D2* +D11* +X27953D1* +Y0D1* +X0D1* +Y23622D1* +X591Y23110D2* +X13819D1* +X591Y591D2* +Y11614D1* +Y12087D2* +Y23110D1* +X14291D2* +X27520D1* +X591Y591D2* +X13819D1* +X14291D2* +X27520D1* +Y11614D1* +Y12087D2* +Y23110D1* +M02* diff --git a/samples/Text/Site.local.ncl b/samples/Text/Site.local.ncl new file mode 100644 index 00000000..695dfa24 --- /dev/null +++ b/samples/Text/Site.local.ncl @@ -0,0 +1,22 @@ +#define YmakeRoot $(DESTDIR)@prefix@ +#define ManRoot $(DESTDIR)@mandir@ +#define LibRoot $(DESTDIR)@libdir@/ncarg +#define SharePath $(DESTDIR)@datadir@ + +#define BuildWithF90 TRUE +#define IncSearch -I/usr/include/netcdf -I/usr/include/udunits2 -I/usr/include/freetype2 -I/usr/include/gdal +#define LibSearch -L@libdir@/hdf + +#define BuildNetCDF4 1 +#define NetCDF4lib -lnetcdf +#define BuildCAIRO 1 +#define CAIROlib -lcairo -lfreetype +#define BuildGDAL 1 +#define GDALlib -lgdal +#define BuildHDFEOS 0 +#define BuildHDFEOS5 0 +#define BuildTRIANGLE 0 +#define HDFlib -lmfhdf -ldf -ljpeg -lz +#define HDF5lib -lhdf5_hl -lhdf5 +#define BuildUdunits 1 +#define UdUnitslib -ludunits2 diff --git a/samples/Text/main.ncl b/samples/Text/main.ncl new file mode 100644 index 00000000..61bee15d --- /dev/null +++ b/samples/Text/main.ncl @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/Text/min-help.ncl b/samples/Text/min-help.ncl new file mode 100644 index 00000000..9fd20117 --- /dev/null +++ b/samples/Text/min-help.ncl @@ -0,0 +1,45 @@ +THE_URL:file://localhost/Users/hubery/Public/ucar/Document/Functions/Built-in/min.shtml +THE_TITLE:min + NCL Home > Documentation > Functions > General applied math + +min + + Computes the minimum value of a multi-dimensional array. + +Prototype + + function min ( + value : numeric + ) + + return_val [1] : numeric + +Arguments + + value + + An array of one or more numeric values of any dimension. + +Return value + + Returns a scalar of the same type as value. + +Description + + This function returns the minimum value for an array of any dimensionality. Missing values are ignored; a missing value + is returned only if all values are missing. + +See Also + + max, minind, maxind, dim_min, dim_max, dim_min_n, dim_max_n + +Examples + + Example 1 + + f = (/2.1, 3.2, 4.3, 5.4, 6.5, 7.6, 8.7, 9.8/) + min_f = min(f) + print(min_f) ; Should be 2.1 + + + ©2015 UCAR | Privacy Policy | Terms of Use | Contact the Webmaster | Sponsored by NSF diff --git a/samples/Text/receiver.ncl b/samples/Text/receiver.ncl new file mode 100644 index 00000000..83996d66 --- /dev/null +++ b/samples/Text/receiver.ncl @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/Text/rmMonAnnCycLLT-help.ncl b/samples/Text/rmMonAnnCycLLT-help.ncl new file mode 100644 index 00000000..9467861a --- /dev/null +++ b/samples/Text/rmMonAnnCycLLT-help.ncl @@ -0,0 +1,40 @@ +THE_URL:file://localhost/Users/hubery/Public/ucar/Document/Functions/Contributed/rmMonAnnCycLLT.shtml +THE_TITLE:rmMonAnnCycLLT + NCL Home > Documentation > Functions > Climatology + +rmMonAnnCycLLT + + Removes the annual cycle from "monthly" data. + +Prototype + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + + function rmMonAnnCycLLT ( + x [*][*][*] : numeric + ) + + return_val [dimsizes(x)] : typeof(x) + +Arguments + + x + + A three-dimensional array of monthly values, dimensioned lat x lon x time. The time dimension must be a multiple of 12. + +Return value + + The results are returned in an array of the same type and dimensionality as x. If the input data contains metadata, these + will be retained. + +Description + + This function removes the annual cycle from month (number of months = 12) data and subtracts the long term means from + each month. + +See Also + + rmMonAnnCycLLT, rmMonAnnCycTLL, rmMonAnnCycLLLT + + + ©2015 UCAR | Privacy Policy | Terms of Use | Contact the Webmaster | Sponsored by NSF diff --git a/samples/Text/zonalAve-help.ncl b/samples/Text/zonalAve-help.ncl new file mode 100644 index 00000000..20abf5de --- /dev/null +++ b/samples/Text/zonalAve-help.ncl @@ -0,0 +1,35 @@ +THE_URL:file://localhost/Users/hubery/Public/ucar/Document/Functions/Contributed/zonalAve.shtml +THE_TITLE:zonalAve + NCL Home > Documentation > Functions > General applied math + +zonalAve + + Computes a zonal average of the input array. + +Prototype + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" + + function zonalAve ( + x : numeric + ) + + return_val : typeof(x) + +Arguments + + x + + An array of any size and type. + +Return value + + The results are returned in an array of the same type and one dimension smaller than x. Metadata are preserved. + +Description + + This function computes a zonal average of the input array x. If the input array has a "long_name" or "short_name" + attribute, it will be updated. + + + ©2015 UCAR | Privacy Policy | Terms of Use | Contact the Webmaster | Sponsored by NSF diff --git a/samples/Thrift/linguist.thrift b/samples/Thrift/linguist.thrift new file mode 100644 index 00000000..8d701b88 --- /dev/null +++ b/samples/Thrift/linguist.thrift @@ -0,0 +1,5 @@ +struct PullRequest { + 1: string title +} + + diff --git a/samples/Unity3D Asset/GapTile.mat b/samples/Unity3D Asset/GapTile.mat new file mode 100644 index 00000000..07078927 --- /dev/null +++ b/samples/Unity3D Asset/GapTile.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GapTile + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e503f0c932121ce4881ab1605349488b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/samples/Unity3D Asset/Hover.anim b/samples/Unity3D Asset/Hover.anim new file mode 100644 index 00000000..c2c5cfab --- /dev/null +++ b/samples/Unity3D Asset/Hover.anim @@ -0,0 +1,157 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Hover + serializedVersion: 4 + m_AnimationType: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: {x: .25, y: .25, z: .25} + inSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + outSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + tangentMode: 823140368 + - time: .649999976 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + outSlope: {x: 1.15384614, y: 1.15384614, z: 1.15384614} + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + path: Radius + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + - time: .649999976 + value: 0 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_Color.a + path: Radius + classID: 212 + script: {fileID: 0} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_StartTime: 0 + m_StopTime: .649999976 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .25 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + - time: .649999976 + value: 1 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_LocalScale.x + path: Radius + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .25 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + - time: .649999976 + value: 1 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_LocalScale.y + path: Radius + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .25 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + - time: .649999976 + value: 1 + inSlope: 1.15384614 + outSlope: 1.15384614 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_LocalScale.z + path: Radius + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + - time: .649999976 + value: 0 + inSlope: -1.53846157 + outSlope: -1.53846157 + tangentMode: 10 + m_PreInfinity: 2 + m_PostInfinity: 2 + attribute: m_Color.a + path: Radius + classID: 212 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_Events: [] diff --git a/samples/Unity3D Asset/Tiles.meta b/samples/Unity3D Asset/Tiles.meta new file mode 100644 index 00000000..61ec47d5 --- /dev/null +++ b/samples/Unity3D Asset/Tiles.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9e5c401e9d1d5415fbf2854b29c004c4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/samples/Unity3D Asset/TimeManager.asset b/samples/Unity3D Asset/TimeManager.asset new file mode 100644 index 00000000..f0e494b6 --- /dev/null +++ b/samples/Unity3D Asset/TimeManager.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: .0199999996 + Maximum Allowed Timestep: .333333343 + m_TimeScale: 1 diff --git a/samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab b/samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab new file mode 100644 index 00000000..0664d47e --- /dev/null +++ b/samples/Unity3D Asset/canvas_Fullscreen_Fader.prefab @@ -0,0 +1,157 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400000} + - 222: {fileID: 22200000} + - 114: {fileID: 11400004} + - 114: {fileID: 11400002} + - 114: {fileID: 11400000} + m_Layer: 5 + m_Name: Fader_Tint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400002} + - 223: {fileID: 22300000} + m_Layer: 5 + m_Name: canvas_Fullscreen_Fader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0e5786b8fa0564f23a168e1c45671759, type: 3} + m_Name: + m_EditorClassIdentifier: + fadeOut: 1 + alwaysUseClearAsStartColor: 0 + _fadeOnStart: 1 + _startFaded: 0 + _fadeOnStartDelay: 1 + _fadeTime: .800000012 +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6d2a81ac2fb947e8a9aa86b4133fafd, type: 3} + m_Name: + m_EditorClassIdentifier: + _toDeactivate: [] +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .996078432, g: .949019611, b: .862745106, a: 1} + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 1 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400002 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22400000} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/samples/VimL/filenames/.nvimrc b/samples/VimL/filenames/.nvimrc new file mode 100644 index 00000000..53a65ade --- /dev/null +++ b/samples/VimL/filenames/.nvimrc @@ -0,0 +1,10 @@ +set nocompatible +set ignorecase +set smartcase +set showmatch +set showcmd + +syntax on + +set hlsearch " Highlight searches +set incsearch " Do incremental searching diff --git a/samples/VimL/solarized.vim b/samples/VimL/solarized.vim new file mode 100644 index 00000000..70f52238 --- /dev/null +++ b/samples/VimL/solarized.vim @@ -0,0 +1,1117 @@ +" Name: Solarized vim colorscheme +" Author: Ethan Schoonover +" URL: http://ethanschoonover.com/solarized +" (see this url for latest release & screenshots) +" License: OSI approved MIT license (see end of this file) +" Created: In the middle of the night +" Modified: 2011 May 05 +" +" Usage "{{{ +" +" --------------------------------------------------------------------- +" ABOUT: +" --------------------------------------------------------------------- +" Solarized is a carefully designed selective contrast colorscheme with dual +" light and dark modes that runs in both GUI, 256 and 16 color modes. +" +" See the homepage above for screenshots and details. +" +" --------------------------------------------------------------------- +" OPTIONS: +" --------------------------------------------------------------------- +" See the "solarized.txt" help file included with this colorscheme (in the +" "doc" subdirectory) for information on options, usage, the Toggle Background +" function and more. If you have already installed Solarized, this is available +" from the Solarized menu and command line as ":help solarized" +" +" --------------------------------------------------------------------- +" INSTALLATION: +" --------------------------------------------------------------------- +" Two options for installation: manual or pathogen +" +" MANUAL INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download the solarized distribution (available on the homepage above) +" and unarchive the file. +" 2. Move `solarized.vim` to your `.vim/colors` directory. +" 3. Move each of the files in each subdirectories to the corresponding .vim +" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload +" directory as .vim/autoload/togglebg.vim). +" +" RECOMMENDED PATHOGEN INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download and install Tim Pope's Pathogen from: +" https://github.com/tpope/vim-pathogen +" +" 2. Next, move or clone the `vim-colors-solarized` directory so that it is +" a subdirectory of the `.vim/bundle` directory. +" +" a. **clone with git:** +" +" $ cd ~/.vim/bundle +" $ git clone git://github.com/altercation/vim-colors-solarized.git +" +" b. **or move manually into the pathogen bundle directory:** +" In the parent directory of vim-colors-solarized: +" +" $ mv vim-colors-solarized ~/.vim/bundle/ +" +" MODIFY VIMRC: +" +" After either Option 1 or Option 2 above, put the following two lines in your +" .vimrc: +" +" syntax enable +" set background=dark +" colorscheme solarized +" +" or, for the light background mode of Solarized: +" +" syntax enable +" set background=light +" colorscheme solarized +" +" I like to have a different background in GUI and terminal modes, so I can use +" the following if-then. However, I find vim's background autodetection to be +" pretty good and, at least with MacVim, I can leave this background value +" assignment out entirely and get the same results. +" +" if has('gui_running') +" set background=light +" else +" set background=dark +" endif +" +" See the Solarized homepage at http://ethanschoonover.com/solarized for +" screenshots which will help you select either the light or dark background. +" +" --------------------------------------------------------------------- +" COLOR VALUES +" --------------------------------------------------------------------- +" Download palettes and files from: http://ethanschoonover.com/solarized +" +" L\*a\*b values are canonical (White D65, Reference D50), other values are +" matched in sRGB space. +" +" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB +" --------- ------- ---- ------- ----------- ---------- ----------- ----------- +" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 +" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 +" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 +" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 +" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 +" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 +" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 +" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 +" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 +" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 +" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 +" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 +" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 +" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 +" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 +" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 +" +" --------------------------------------------------------------------- +" COLORSCHEME HACKING +" --------------------------------------------------------------------- +" +" Useful commands for testing colorschemes: +" :source $VIMRUNTIME/syntax/hitest.vim +" :help highlight-groups +" :help cterm-colors +" :help group-name +" +" Useful links for developing colorschemes: +" http://www.vim.org/scripts/script.php?script_id=2937 +" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ +" http://www.frexx.de/xterm-256-notes/" +" +" }}} +" Environment Specific Overrides "{{{ +" Allow or disallow certain features based on current terminal emulator or +" environment. + +" Terminals that support italics +let s:terms_italic=[ + \"rxvt", + \"gnome-terminal" + \] +" For reference only, terminals are known to be incomptible. +" Terminals that are in neither list need to be tested. +let s:terms_noitalic=[ + \"iTerm.app", + \"Apple_Terminal" + \] +if has("gui_running") + let s:terminal_italic=1 " TODO: could refactor to not require this at all +else + let s:terminal_italic=0 " terminals will be guilty until proven compatible + for term in s:terms_italic + if $TERM_PROGRAM =~ term + let s:terminal_italic=1 + endif + endfor +endif + +" }}} +" Default option values"{{{ +" --------------------------------------------------------------------- +" s:options_list is used to autogenerate a list of all non-default options +" using "call SolarizedOptions()" or with the "Generate .vimrc commands" +" Solarized menu option. See the "Menus" section below for the function itself. +let s:options_list=[ + \'" this block of commands has been autogenerated by solarized.vim and', + \'" includes the current, non-default Solarized option values.', + \'" To use, place these commands in your .vimrc file (replacing any', + \'" existing colorscheme commands). See also ":help solarized"', + \'', + \'" ------------------------------------------------------------------', + \'" Solarized Colorscheme Config', + \'" ------------------------------------------------------------------', + \] +let s:colorscheme_list=[ + \'syntax enable', + \'set background='.&background, + \'colorscheme solarized', + \] +let s:defaults_list=[ + \'" ------------------------------------------------------------------', + \'', + \'" The following items are available options, but do not need to be', + \'" included in your .vimrc as they are currently set to their defaults.', + \'' + \] +let s:lazycat_list=[ + \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', + \'" ------------------------------------------------------------------', + \] + +function! s:SetOption(name,default) + if type(a:default) == type(0) + let l:wrap='' + let l:ewrap='' + else + let l:wrap='"' + let l:ewrap='\"' + endif + if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default + exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' + exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' + else + exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' + endif +endfunction + +if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) + let s:solarized_termtrans_default = 1 +else + let s:solarized_termtrans_default = 0 +endif +call s:SetOption("termtrans",s:solarized_termtrans_default) +call s:SetOption("degrade",0) +call s:SetOption("bold",1) +call s:SetOption("underline",1) +call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support +call s:SetOption("termcolors",16) +call s:SetOption("contrast","normal") +call s:SetOption("visibility","normal") +call s:SetOption("diffmode","normal") +call s:SetOption("hitrail",0) +call s:SetOption("menu",1) + +"}}} +" Colorscheme initialization "{{{ +" --------------------------------------------------------------------- +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "solarized" + +"}}} +" GUI & CSApprox hexadecimal palettes"{{{ +" --------------------------------------------------------------------- +" +" Set both gui and terminal color values in separate conditional statements +" Due to possibility that CSApprox is running (though I suppose we could just +" leave the hex values out entirely in that case and include only cterm colors) +" We also check to see if user has set solarized (force use of the +" neutral gray monotone palette component) +if (has("gui_running") && g:solarized_degrade == 0) + let s:vmode = "gui" + let s:base03 = "#002b36" + let s:base02 = "#073642" + let s:base01 = "#586e75" + let s:base00 = "#657b83" + let s:base0 = "#839496" + let s:base1 = "#93a1a1" + let s:base2 = "#eee8d5" + let s:base3 = "#fdf6e3" + let s:yellow = "#b58900" + let s:orange = "#cb4b16" + let s:red = "#dc322f" + let s:magenta = "#d33682" + let s:violet = "#6c71c4" + let s:blue = "#268bd2" + let s:cyan = "#2aa198" + "let s:green = "#859900" "original + let s:green = "#719e07" "experimental +elseif (has("gui_running") && g:solarized_degrade == 1) + " These colors are identical to the 256 color mode. They may be viewed + " while in gui mode via "let g:solarized_degrade=1", though this is not + " recommened and is for testing only. + let s:vmode = "gui" + let s:base03 = "#1c1c1c" + let s:base02 = "#262626" + let s:base01 = "#4e4e4e" + let s:base00 = "#585858" + let s:base0 = "#808080" + let s:base1 = "#8a8a8a" + let s:base2 = "#d7d7af" + let s:base3 = "#ffffd7" + let s:yellow = "#af8700" + let s:orange = "#d75f00" + let s:red = "#af0000" + let s:magenta = "#af005f" + let s:violet = "#5f5faf" + let s:blue = "#0087ff" + let s:cyan = "#00afaf" + let s:green = "#5f8700" +elseif g:solarized_termcolors != 256 && &t_Co >= 16 + let s:vmode = "cterm" + let s:base03 = "8" + let s:base02 = "0" + let s:base01 = "10" + let s:base00 = "11" + let s:base0 = "12" + let s:base1 = "14" + let s:base2 = "7" + let s:base3 = "15" + let s:yellow = "3" + let s:orange = "9" + let s:red = "1" + let s:magenta = "5" + let s:violet = "13" + let s:blue = "4" + let s:cyan = "6" + let s:green = "2" +elseif g:solarized_termcolors == 256 + let s:vmode = "cterm" + let s:base03 = "234" + let s:base02 = "235" + let s:base01 = "239" + let s:base00 = "240" + let s:base0 = "244" + let s:base1 = "245" + let s:base2 = "187" + let s:base3 = "230" + let s:yellow = "136" + let s:orange = "166" + let s:red = "124" + let s:magenta = "125" + let s:violet = "61" + let s:blue = "33" + let s:cyan = "37" + let s:green = "64" +else + let s:vmode = "cterm" + let s:bright = "* term=bold cterm=bold" +" let s:base03 = "0".s:bright +" let s:base02 = "0" +" let s:base01 = "2".s:bright +" let s:base00 = "3".s:bright +" let s:base0 = "4".s:bright +" let s:base1 = "6".s:bright +" let s:base2 = "7" +" let s:base3 = "7".s:bright +" let s:yellow = "3" +" let s:orange = "1".s:bright +" let s:red = "1" +" let s:magenta = "5" +" let s:violet = "5".s:bright +" let s:blue = "4" +" let s:cyan = "6" +" let s:green = "2" + let s:base03 = "DarkGray" " 0* + let s:base02 = "Black" " 0 + let s:base01 = "LightGreen" " 2* + let s:base00 = "LightYellow" " 3* + let s:base0 = "LightBlue" " 4* + let s:base1 = "LightCyan" " 6* + let s:base2 = "LightGray" " 7 + let s:base3 = "White" " 7* + let s:yellow = "DarkYellow" " 3 + let s:orange = "LightRed" " 1* + let s:red = "DarkRed" " 1 + let s:magenta = "DarkMagenta" " 5 + let s:violet = "LightMagenta" " 5* + let s:blue = "DarkBlue" " 4 + let s:cyan = "DarkCyan" " 6 + let s:green = "DarkGreen" " 2 + +endif +"}}} +" Formatting options and null values for passthrough effect "{{{ +" --------------------------------------------------------------------- + let s:none = "NONE" + let s:none = "NONE" + let s:t_none = "NONE" + let s:n = "NONE" + let s:c = ",undercurl" + let s:r = ",reverse" + let s:s = ",standout" + let s:ou = "" + let s:ob = "" +"}}} +" Background value based on termtrans setting "{{{ +" --------------------------------------------------------------------- +if (has("gui_running") || g:solarized_termtrans == 0) + let s:back = s:base03 +else + let s:back = "NONE" +endif +"}}} +" Alternate light scheme "{{{ +" --------------------------------------------------------------------- +if &background == "light" + let s:temp03 = s:base03 + let s:temp02 = s:base02 + let s:temp01 = s:base01 + let s:temp00 = s:base00 + let s:base03 = s:base3 + let s:base02 = s:base2 + let s:base01 = s:base1 + let s:base00 = s:base0 + let s:base0 = s:temp00 + let s:base1 = s:temp01 + let s:base2 = s:temp02 + let s:base3 = s:temp03 + if (s:back != "NONE") + let s:back = s:base03 + endif +endif +"}}} +" Optional contrast schemes "{{{ +" --------------------------------------------------------------------- +if g:solarized_contrast == "high" + let s:base01 = s:base00 + let s:base00 = s:base0 + let s:base0 = s:base1 + let s:base1 = s:base2 + let s:base2 = s:base3 + let s:back = s:back +endif +if g:solarized_contrast == "low" + let s:back = s:base02 + let s:ou = ",underline" +endif +"}}} +" Overrides dependent on user specified values and environment "{{{ +" --------------------------------------------------------------------- +if (g:solarized_bold == 0 || &t_Co == 8 ) + let s:b = "" + let s:bb = ",bold" +else + let s:b = ",bold" + let s:bb = "" +endif + +if g:solarized_underline == 0 + let s:u = "" +else + let s:u = ",underline" +endif + +if g:solarized_italic == 0 || s:terminal_italic == 0 + let s:i = "" +else + let s:i = ",italic" +endif +"}}} +" Highlighting primitives"{{{ +" --------------------------------------------------------------------- + +exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" +exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" +exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" +exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" +exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" +exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" +exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" +exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" +exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" +exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" +exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" +exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" +exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" +exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" +exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" +exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" +exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" +exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" + +exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" +exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" +exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" +exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" +exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" +exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" +exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" +exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" +exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" +exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" +exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" +exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" +exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" +exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" +exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" +exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" +exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" +exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" + +exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" +exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'" +exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" +exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" +exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'" +exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" +exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" +exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" +" revbb (reverse bold for bright colors) is only set to actual bold in low +" color terminals (t_co=8, such as OS X Terminal.app) and should only be used +" with colors 8-15. +exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" +exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" + +if has("gui_running") + exe "let s:sp_none = ' guisp=".s:none ."'" + exe "let s:sp_back = ' guisp=".s:back ."'" + exe "let s:sp_base03 = ' guisp=".s:base03 ."'" + exe "let s:sp_base02 = ' guisp=".s:base02 ."'" + exe "let s:sp_base01 = ' guisp=".s:base01 ."'" + exe "let s:sp_base00 = ' guisp=".s:base00 ."'" + exe "let s:sp_base0 = ' guisp=".s:base0 ."'" + exe "let s:sp_base1 = ' guisp=".s:base1 ."'" + exe "let s:sp_base2 = ' guisp=".s:base2 ."'" + exe "let s:sp_base3 = ' guisp=".s:base3 ."'" + exe "let s:sp_green = ' guisp=".s:green ."'" + exe "let s:sp_yellow = ' guisp=".s:yellow ."'" + exe "let s:sp_orange = ' guisp=".s:orange ."'" + exe "let s:sp_red = ' guisp=".s:red ."'" + exe "let s:sp_magenta = ' guisp=".s:magenta."'" + exe "let s:sp_violet = ' guisp=".s:violet ."'" + exe "let s:sp_blue = ' guisp=".s:blue ."'" + exe "let s:sp_cyan = ' guisp=".s:cyan ."'" +else + let s:sp_none = "" + let s:sp_back = "" + let s:sp_base03 = "" + let s:sp_base02 = "" + let s:sp_base01 = "" + let s:sp_base00 = "" + let s:sp_base0 = "" + let s:sp_base1 = "" + let s:sp_base2 = "" + let s:sp_base3 = "" + let s:sp_green = "" + let s:sp_yellow = "" + let s:sp_orange = "" + let s:sp_red = "" + let s:sp_magenta = "" + let s:sp_violet = "" + let s:sp_blue = "" + let s:sp_cyan = "" +endif + +"}}} +" Basic highlighting"{{{ +" --------------------------------------------------------------------- +" note that link syntax to avoid duplicate configuration doesn't work with the +" exe compiled formats + +exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back + +exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none +" *Comment any comment + +exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none +" *Constant any constant +" String a string constant: "this is a string" +" Character a character constant: 'c', '\n' +" Number a number constant: 234, 0xff +" Boolean a boolean constant: TRUE, false +" Float a floating point constant: 2.3e10 + +exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none +" *Identifier any variable name +" Function function name (also: methods for classes) +" +exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none +" *Statement any statement +" Conditional if, then, else, endif, switch, etc. +" Repeat for, do, while, etc. +" Label case, default, etc. +" Operator "sizeof", "+", "*", etc. +" Keyword any other keyword +" Exception try, catch, throw + +exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none +" *PreProc generic Preprocessor +" Include preprocessor #include +" Define preprocessor #define +" Macro same as Define +" PreCondit preprocessor #if, #else, #endif, etc. + +exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none +" *Type int, long, char, etc. +" StorageClass static, register, volatile, etc. +" Structure struct, union, enum, etc. +" Typedef A typedef + +exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none +" *Special any special symbol +" SpecialChar special character in a constant +" Tag you can use CTRL-] on this +" Delimiter character that needs attention +" SpecialComment special things inside a comment +" Debug debugging statements + +exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none +" *Underlined text that stands out, HTML links + +exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none +" *Ignore left blank, hidden |hl-Ignore| + +exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none +" *Error any erroneous construct + +exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none +" *Todo anything that needs extra attention; mostly the +" keywords TODO FIXME and XXX +" +"}}} +" Extended highlighting "{{{ +" --------------------------------------------------------------------- +if (g:solarized_visibility=="high") + exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none +elseif (g:solarized_visibility=="low") + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none +else + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 + exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none +endif +exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb +exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb +exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb +exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none +exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 +exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none +if ( has("gui_running") || &t_Co > 8 ) + exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 +else + exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 +endif +exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none +exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb +exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb +exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 +exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 +if (g:solarized_diffmode=="high") +exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none +exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none +elseif (g:solarized_diffmode=="low") +exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green +exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue +else " normal + if has("gui_running") +exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue + else +exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue + endif +endif +exe "hi! SignColumn" .s:fmt_none .s:fg_base0 +exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red +exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet +exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan +exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow +exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb +exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb +exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb +exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb +exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu +exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 +exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 +hi! link lCursor Cursor +exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 + +"}}} +" vim syntax highlighting "{{{ +" --------------------------------------------------------------------- +"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital +"hi! link vimComment Comment +"hi! link vimLineComment Comment +hi! link vimVar Identifier +hi! link vimFunc Function +hi! link vimUserFunc Function +hi! link helpSpecial Special +hi! link vimSet Normal +hi! link vimSetEqual Normal +exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none +exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none +exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none +exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none +exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none +"}}} +" diff highlighting "{{{ +" --------------------------------------------------------------------- +hi! link diffAdded Statement +hi! link diffLine Identifier +"}}} +" git & gitcommit highlighting "{{{ +"git +"exe "hi! gitDateHeader" +"exe "hi! gitIdentityHeader" +"exe "hi! gitIdentityKeyword" +"exe "hi! gitNotesHeader" +"exe "hi! gitReflogHeader" +"exe "hi! gitKeyword" +"exe "hi! gitIdentity" +"exe "hi! gitEmailDelimiter" +"exe "hi! gitEmail" +"exe "hi! gitDate" +"exe "hi! gitMode" +"exe "hi! gitHashAbbrev" +"exe "hi! gitHash" +"exe "hi! gitReflogMiddle" +"exe "hi! gitReference" +"exe "hi! gitStage" +"exe "hi! gitType" +"exe "hi! gitDiffAdded" +"exe "hi! gitDiffRemoved" +"gitcommit +"exe "hi! gitcommitSummary" +exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none +hi! link gitcommitUntracked gitcommitComment +hi! link gitcommitDiscarded gitcommitComment +hi! link gitcommitSelected gitcommitComment +exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none +exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none +hi! link gitcommitNoBranch gitcommitBranch +exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none +"exe "hi! gitcommitUnmergedType" +"exe "hi! gitcommitType" +"exe "hi! gitcommitNoChanges" +"exe "hi! gitcommitHeader" +exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none +exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none +exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none +hi! link gitcommitDiscardedArrow gitcommitDiscardedFile +hi! link gitcommitSelectedArrow gitcommitSelectedFile +hi! link gitcommitUnmergedArrow gitcommitUnmergedFile +"exe "hi! gitcommitArrow" +"exe "hi! gitcommitOverflow" +"exe "hi! gitcommitBlank" +" }}} +" html highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none +exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none +exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none +"}}} +" perl highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none +exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none + +"}}} +" tex highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none +exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none +"}}} +" ruby highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold +"rubyInclude +"rubySharpBang +"rubyAccess +"rubyPredefinedVariable +"rubyBoolean +"rubyClassVariable +"rubyBeginEnd +"rubyRepeatModifier +"hi! link rubyArrayDelimiter Special " [ , , ] +"rubyCurlyBlock { , , } + +"hi! link rubyClass Keyword +"hi! link rubyModule Keyword +"hi! link rubyKeyword Keyword +"hi! link rubyOperator Operator +"hi! link rubyIdentifier Identifier +"hi! link rubyInstanceVariable Identifier +"hi! link rubyGlobalVariable Identifier +"hi! link rubyClassVariable Identifier +"hi! link rubyConstant Type +"}}} +" haskell syntax highlighting"{{{ +" --------------------------------------------------------------------- +" For use with syntax/haskell.vim : Haskell Syntax File +" http://www.vim.org/scripts/script.php?script_id=3034 +" See also Steffen Siering's github repository: +" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim +" --------------------------------------------------------------------- +" +" Treat True and False specially, see the plugin referenced above +let hs_highlight_boolean=1 +" highlight delims, see the plugin referenced above +let hs_highlight_delimiters=1 + +exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none + +exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none + +exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none +exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none +exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr +exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none +hi! link hsImportParams Delimiter +hi! link hsDelimTypeExport Delimiter +hi! link hsModuleStartLabel hsStructure +hi! link hsModuleWhereLabel hsModuleStartLabel + +" following is for the haskell-conceal plugin +" the first two items don't have an impact, but better safe +exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none + +"}}} +" pandoc markdown syntax highlighting "{{{ +" --------------------------------------------------------------------- + +"PandocHiLink pandocNormalBlock +exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital +exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none +hi! link pandocVerbatimBlockDeep pandocVerbatimBlock +hi! link pandocCodeBlock pandocVerbatimBlock +hi! link pandocCodeBlockDelim pandocVerbatimBlock +exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr + +" Definitions +" --------------------------------------------------------------------- +let s:fg_pdef = s:fg_violet +exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd +exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none + +" Tables +" --------------------------------------------------------------------- +let s:fg_ptable = s:fg_blue +exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none +hi! link pandocTableStructureTop pandocTableStructre +hi! link pandocTableStructureEnd pandocTableStructre +exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none +exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none +exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none + +" Headings +" --------------------------------------------------------------------- +let s:fg_phead = s:fg_orange +exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold +exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr +exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold + +" Links +" --------------------------------------------------------------------- +exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr +exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb +exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr +exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi +exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 +exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 +exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb +exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr +exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold +exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb +exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none + +" Main Styles +" --------------------------------------------------------------------- +exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none +exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none + +exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr +hi! link pandocEscapedCharacter pandocEscapePair +hi! link pandocLineBreak pandocEscapePair + +" Embedded Code +" --------------------------------------------------------------------- +exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold +hi! link pandocMetadataTitle pandocMetadata + +"}}} +" Utility autocommand "{{{ +" --------------------------------------------------------------------- +" In cases where Solarized is initialized inside a terminal vim session and +" then transferred to a gui session via the command `:gui`, the gui vim process +" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` +" related code that sets gui specific values isn't executed. +" +" Currently, Solarized sets only the cterm or gui values for the colorscheme +" depending on gui or terminal mode. It's possible that, if the following +" autocommand method is deemed excessively poor form, that approach will be +" used again and the autocommand below will be dropped. +" +" However it seems relatively benign in this case to include the autocommand +" here. It fires only in cases where vim is transferring from terminal to gui +" mode (detected with the script scope s:vmode variable). It also allows for +" other potential terminal customizations that might make gui mode suboptimal. +" +autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif +"}}} +" Highlight Trailing Space {{{ +" Experimental: Different highlight when on cursorline +function! s:SolarizedHiTrail() + if g:solarized_hitrail==0 + hi! clear solarizedTrailingSpace + else + syn match solarizedTrailingSpace "\s*$" + exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red + endif +endfunction +augroup SolarizedHiTrail + autocmd! + if g:solarized_hitrail==1 + autocmd! Syntax * call s:SolarizedHiTrail() + autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif + endif +augroup END +" }}} +" Menus "{{{ +" --------------------------------------------------------------------- +" Turn off Solarized menu by including the following assignment in your .vimrc: +" +" let g:solarized_menu=0 + +function! s:SolarizedOptions() + new "new buffer + setf vim "vim filetype + let failed = append(0, s:defaults_list) + let failed = append(0, s:colorscheme_list) + let failed = append(0, s:options_list) + let failed = append(0, s:lazycat_list) + 0 "jump back to the top +endfunction +if !exists(":SolarizedOptions") + command SolarizedOptions :call s:SolarizedOptions() +endif + +function! SolarizedMenu() + if exists("g:loaded_solarized_menu") + try + silent! aunmenu Solarized + endtry + endif + let g:loaded_solarized_menu = 1 + + if g:colors_name == "solarized" && g:solarized_menu != 0 + + amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized + amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized + amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized + an &Solarized.&Contrast.-sep- + amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' + + amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized + amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized + amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized + an &Solarized.&Visibility.-sep- + amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' + + amenu &Solarized.&Background.&Toggle\ Background :ToggleBG + amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized + amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized + an &Solarized.&Background.-sep- + amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg + + if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" + if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" + if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" + + amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized + + if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif + exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" + an &Solarized.&Experimental.-sep- + amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' + + an &Solarized.-sep1- + + amenu &Solarized.&Autogenerate\ options :SolarizedOptions + + an &Solarized.-sep2- + + amenu &Solarized.&Help.&Solarized\ Help :help solarized + amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg + amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu + + an 9999.77 &Help.&Solarized\ Colorscheme :help solarized + an 9999.78 &Help.&Toggle\ Background :help togglebg + an 9999.79 &Help.-sep3- + + endif +endfunction + +autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif + +"}}} +" License "{{{ +" --------------------------------------------------------------------- +" +" Copyright (c) 2011 Ethan Schoonover +" +" Permission is hereby granted, free of charge, to any person obtaining a copy +" of this software and associated documentation files (the "Software"), to deal +" in the Software without restriction, including without limitation the rights +" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +" copies of the Software, and to permit persons to whom the Software is +" furnished to do so, subject to the following conditions: +" +" The above copyright notice and this permission notice shall be included in +" all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. +" +" vim:foldmethod=marker:foldlevel=0 +"}}} diff --git a/samples/WebIDL/AnimationEvent.webidl b/samples/WebIDL/AnimationEvent.webidl index e48ed571..5dbc2752 100644 --- a/samples/WebIDL/AnimationEvent.webidl +++ b/samples/WebIDL/AnimationEvent.webidl @@ -1,4 +1,4 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: linguist-disable-strategy-modeline-IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/samples/WebIDL/Fetch.webidl b/samples/WebIDL/Fetch.webidl index fb022126..87a4e957 100644 --- a/samples/WebIDL/Fetch.webidl +++ b/samples/WebIDL/Fetch.webidl @@ -1,4 +1,4 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* -*- Mode: linguist-disable-strategy-modeline-IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/samples/XML/Application.xib b/samples/XML/Application.xib new file mode 100644 index 00000000..6c2e5f4d --- /dev/null +++ b/samples/XML/Application.xib @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/samples/XML/Example.mdpolicy b/samples/XML/Example.mdpolicy new file mode 100644 index 00000000..6c9ff048 --- /dev/null +++ b/samples/XML/Example.mdpolicy @@ -0,0 +1,12 @@ + + + + 120 + False + True + + + None + FileFormatDefault + + \ No newline at end of file diff --git a/samples/XML/Storyboard.storyboard b/samples/XML/Storyboard.storyboard new file mode 100644 index 00000000..673e0f7e --- /dev/null +++ b/samples/XML/Storyboard.storyboard @@ -0,0 +1,7 @@ + + + + + + + diff --git a/samples/XML/intellij.iml b/samples/XML/intellij.iml new file mode 100644 index 00000000..74bdc4de --- /dev/null +++ b/samples/XML/intellij.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/XML/point-3.1.gml b/samples/XML/point-3.1.gml new file mode 100644 index 00000000..233654d0 --- /dev/null +++ b/samples/XML/point-3.1.gml @@ -0,0 +1,4 @@ + + + 52.56 13.29 + diff --git a/samples/XML/point-3.2.gml b/samples/XML/point-3.2.gml new file mode 100644 index 00000000..af9dce90 --- /dev/null +++ b/samples/XML/point-3.2.gml @@ -0,0 +1,4 @@ + + + 52.56 13.29 + diff --git a/samples/XML/tei-odd-sample.odd b/samples/XML/tei-odd-sample.odd new file mode 100644 index 00000000..a6a736c4 --- /dev/null +++ b/samples/XML/tei-odd-sample.odd @@ -0,0 +1,1304 @@ + + + + + + + TEI Simple + + + TEI Consortium + + Distributed under a + Creative Commons Attribution-ShareAlike 3.0 Unported License + +

Copyright 2014 TEI Consortium.

+

All rights reserved.

+

Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met:

+ + Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +

This software is provided by the copyright holders and contributors "as is" and + any express or implied warranties, including, but not limited to, the implied + warranties of merchantability and fitness for a particular purpose are + disclaimed. In no event shall the copyright holder or contributors be liable + for any direct, indirect, incidental, special, exemplary, or consequential + damages (including, but not limited to, procurement of substitute goods or + services; loss of use, data, or profits; or business interruption) however + caused and on any theory of liability, whether in contract, strict liability, + or tort (including negligence or otherwise) arising in any way out of the use + of this software, even if advised of the possibility of such damage.

+
+

TEI material can be licensed differently depending on the use you intend to make + of it. Hence it is made available under both the CC+BY and BSD-2 licences. The + CC+BY licence is generally appropriate for usages which treat TEI content as data + or documentation. The BSD-2 licence is generally appropriate for usage of TEI + content in a software environment. For further information or clarification, + please contact the TEI Consortium.

+
+
+ +

created ab initio during a meeting in Oxford

+
+
+
+ + + + + TEI Simple + + Sebastian Rahtz + Brian Pytlik Zillig + Martin Mueller + Version 0.1: 30th November 2014 + + + +
+ Summary +

The TEI Simple project aims to define a highly-constrained and prescriptive subset of the Text Encoding Initiative (TEI) Guidelines + suited to the representation of early modern and modern books, a formally-defined set of + processing rules which permit modern web applications to easily present and analyze the + encoded texts, mapping to other ontologies, and processes to describe the encoding status + and richness of a TEI digital text. This document describes + the constrained subset

+
+
+ + Background +

The Text Encoding Initiative (TEI) has developed over 20 years into a key technology in + text-centric humanities disciplines, with an extremely wide range of applications, from + diplomatic editions to dictionaries, from prosopography to speech transcription and + linguistic analysis. It has been able to achieve its range of use by adopting a descriptive rather than prescriptive approach + , by recommending customization to suit particular projects, and by + eschewing any attempt to dictate how the digital texts should be rendered or exchanged. + However, this flexibility has come at the cost of relatively limited success in + interoperability. In our view there is a distinct set of uses (primarily in the area of + digitized ‘European’-style books) that would benefit from a prescriptive recipe for digital text; this will sit alongside other + domain-specific, constrained TEI customizations, such as the very successful Epidoc in the epigraphic community. TEI-Simple may become a prototype + for a new family of constrained customizations. For instance, a TEI Simple MS for + manuscript based work could be built on top of the ENRICH project, drawing on many of the + lessons and some of the code for TEI Simple.

+

The TEI has long maintained an introductory subset (TEI Lite), and a constrained + customization for use in outsourcing production to commercial vendors (TEI Tite), but both + of these permit enormous variation, and have nothing to say about processing. The present + project can be viewed in some ways as a revision of TEI Lite, re-examining the basis of + the choices therein, focusing it for a more specific area, and adding a "cradle to grave" + processing model that associates the TEI Simple schema with explicit and standardized + options for displaying and querying texts. This means being able to specify what a + programmer should do with particular TEI elements when they are encountered, allowing + programmers to build stylesheets that work for everybody and to query a corpus of + documents reliably.

+

This project, TEI Simple, focuses on interoperability, machine generation, and + low-cost integration. The TEI architecture facilitates customizations of many kinds; TEI + Simple aims to produce a complete 'out of the box' customization which meets the needs of + the many users for whom the task of creating a customization is daunting or seems + irrelevant. TEI Simple in no way intends to constrain the expressive liberty of encoders + who do not think that it is either possible or desirable to follow this path. It does, + however, promise to make life easier for those who think there is some virtue in + travelling that path as far as it will take you, which for quite a few projects will be + far enough. Some users will never feel the need to move beyond it, others will outgrow it, + and when they do they will have learned enough to do so.

+

A major driver for this project is the texts created by phase 1 of the EEBO-TCP project, + which were placed in the public domain on 1 January 2015. Another 45,000 texts will + join over the following five years, creating by 2020 an archive of 70,000 consistently + encoded books published in England from 1475 to 1700, including works of literature, + philosophy, politics, religion, geography, science and all other areas of human endeavor. + When we compare the query potential of the EEBO TCP texts in their current and quite + simple encoding with flat file versions of those text, it is clear that the difference in + query potential is very high, especially if you add to that coarse encoding simple forms + of linguistic annotation or named entity tagging that can be added in a largely + algorithmic fashion. During 2012 and 2013 extensive work has been undertaken at + Northwestern, Michigan and Oxford to enrich these texts and bring them into line with the + current TEI Guidelines (where necessary working with the TEI to modify the Guidelines). + TEI Simple uses this corpus as a point of departure and will provide its users with a + friendlier environment for manipulating EEBO texts in various projects. But TEI Simple + should not be understood as an EEBO specific project. We believe that, given the + extraordinary degree of internal diversity in the EEBO source files, a project that starts + from them can, with appropriate modifications, accommodate a wide range of printed texts + differing in language, genre, or time and place of origin.

+
+
+ The TEI Simple schema + + + + + + + + + + + + +
+ The TEI infrastructure + + + +
+
+ The header +

The default set of elements for the header are loaded using the + header module. In addition, elements from other modules are + loaded, if they are tagged in the classification as being needed for the header + only.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Elements which are only intended to be used in the header are banned from the + text, using a Schematron rule.

+ + + +
+
+
+ Transcription +

In order to support the sourcedoc and facsimile elements, the + basic transcriptional elements are loaded, and two attribute classes.

+ + + + + + + + + + + + + + + + + + + + + +
+
+ Attribute classes + +

The tei module brings with it a default set of attribute classes. + We need some more specialist ones from other modules, and to delete some + default ones which we don't plan to use.

+ + + + + + + +

Some uncommon attributes are removed from global linking.

+ + + + + + + + +

URLs have a constraint that a local pointer must have a corresponding ID.

+ + + + + + + + Error: Every + local pointer in "" must point to + an ID in this document () + + + + + + +

Constrained value lists are added to attribute classes where possible.

+ + + + + + + above the line + + + below the line + + + + at the top of the page + + + at the top right of the page + + + at the top left of the page + + + at the top center of the page + + + + at the bottom right of the page + + + + at the bottom left of the page + + + + at the bottom center of the page + + + + at the foot of the page + + + underneath a table + + + + + + + + in the outer margin + + + + in the left margin + + + + in the right margin + + + on the opposite, i.e. facing, page. + + + on the other side of the leaf. + + + at the end of the volume. + + + at the end the current division. + + + at the end the current paragraph. + + + + within the body of the text. + + + in a predefined space, for example left by an earlier + scribe. + + + formatted like a quotation + + + + + + + + + + + characters + + + + + lines + + + + pages + + + + words + + + + centimetres + + + millimetre + + + inches + + + + + + + + + + + Error: Each of + the rendition values in "" + must point to a local ID or to a token in the Simple scheme + () + + + + + + + + Error: Every + local pointer in "" must point to + an ID in this document () + + + + + + + + + + + + all capitals + + + + + + + black letter or gothic typeface + + + + + + + bold typeface + + + marked with a brace under the bottom of the text + + + + border around the text + + + + centred + + + cursive typeface + + + block display + + + strikethrough with double line + + + underlined with double line + + + + initial letter larger or decorated + + + floated out of main flow + + + with a hyphen here (eg in line break) + + + inline rendering + + + + + + + + italic typeface + + + + larger type + + + + aligned to the left or left-justified + + + + marked with a brace on the left side of the text + + + + letter-spaced + + + upright shape and default weight of typeface + + + + normal typeface weight + + + + aligned to the right or right-justified + + + marked with a brace to the right of the text + + + + rotated to the left + + + + rotated to the right + + + + + small caps + + + + smaller type + + + strike through + + + + subscript + + + + + superscript + + + marked with a brace above the text + + + fixed-width typeface, like typewriter + + + + underlined with single line + + + underlined with wavy line + + + + + +
+
+
+ Model classes + +

A set of unused model classes are removed.

+ + + + + + + + + + + + + +
+
+
+ Elements +

The main part of Simple is the set of selected elements.

+ + + + + + + + + + + + + + + color: green; text-decoration: underline; + + + + + margin-top: 2em; margin-left: 2em; margin-right: 2em; margin-bottom: + 2em; + + + + + white-space: nowrap; + + + + + + + + + + + + + + margin-bottom: 0.5em; + + + + + + + + + + + + + + Element "" may not be empty. + + + + + + + + + + + + + + + + + + + + Insert list. + + + + + Insert item, rendered as described in parent list rendition. + + + + + list-style: ordered; + + + + + + + + Insert table cell. + + + + + + + Element "" must have at least two child + elements. + + + + + + Element "" must have corresponding corr/sic, expand/abbr, reg/orig + + + + + + + + + + + + Insert cit. + + + + + margin-top: 1em; margin-left: 1em; margin-left: 1em; + + + + + Omit, if handled in parent choice. + + + content: '['; + content: ']'; + + + + + + + + + + + + + + text-decoration: line-through; + + + + + + + + border: 1px solid black; padding: 5px; + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + + + + Omit if located in teiHeader. + + + font-size: large; + + + + + + + + + + + + + + + content: '[..'; + content: '..]'; + color: grey;font-style:italic; + + + + + + +display: block; +border-top: solid 1pt blue; +border-bottom: solid 1pt blue; + + + + + + + margin: 6pt; + border: solid black 1pt; + + + + + + font-style:italic; + + + + + + + + + + + + + + + + + + + + color: grey; + + + content: '[..'; + content: '..]'; + color: grey; + + + content: '[...]'; + + + + + + + + + + + + + + font-style: italic; + + + font-style: italic; + + + font-style: italic; + + + font-weight: bold; + + + + + + + font-style: italic; + + + font-style: italic; + + + + + + + + + + + + margin-left: 1em; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + margin-left: 10px;margin-right: 10px; font-size:smaller; + + + content:" ["; + content:"] "; + font-size:small; + + + + + + + + + + + Omit, if handled in parent choice. + + + + + + text-align: justify; + + + + + + please make sure pb elements are not at the start or end of mixed content + + + + + display: block; + color: grey; + float: right; + + content: '[Page '; + content: ']'; + + + + + + + + + + + Omit if located in teiHeader. + + + + + Omit if located in teiHeader. + + + + + margin-left: 10px; margin-right: 10px; + + + + content: '‘'; + content: '’'; + + + margin-left: 10px; margin-right: 10px; + + + + + + If it is inside a paragraph then it is inline, otherwise it is block level + content: '‘'; + content: '’'; + + + If it is inside a paragraph then it is inline, otherwise it is block level + margin-left: 10px; margin-right: 10px; + + + + + + + + + + + + Omit, if handled in parent choice. + + + + + + + + + + + + + + + font-weight: bold; + + + Insert table row. + + + + + + + + + + + + + + + + + + + content: '{'; + content: '}'; + + + + + + text-align: right; + + + + + font-style: italic; + + + + + + + + + + + + font-style:italic; + + + + + + + + font-style: italic; + + + + + + + + + content:"<"; + content:">"; + + + content:"["; + content:"]"; + + + content:"("; + content:")"; + + + content:"{"; + content:"}"; + + + + + + font-size: smaller; + background-color: #F0F0F0; + + + + + + + + + + + + + + + + + + + + + + + + + max-width: 80%; + margin: auto; + font-family: Verdana, Tahoma, Geneva, Arial, Helvetica, sans-serif; + + + + + + + + + + + color: red; font-size: 2em; + + + + + + font-style: italic; + + + + + + font-style: italic; + + + + + + font-style: italic; + + + + + font-style: italic; + + + + + text-align: center; + + + + + + + + color: green; + + + + + content: ' [?] '; + + + + + + + +

A small number of elements have constrained value lists added.

+ + + + + + Using TeX or LaTeX notation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + data cell + + + label cell + + + + row or column sum data + + + table total data + + + + + + + + + + + data cell + + + label cell + + + row or column sum data + + + table total data + + + + + +
+ + text-transform: uppercase; + font-family: fantasy; + font-weight: bold; + padding-bottom: 2pt; border-bottom: dashed gray 2pt; + padding: 2pt; border: solid black 1pt; + text-align: center; + font-family: cursive; + text-decoration: line-through; color: red; + text-decoration: underline; color: red; + font-size : 6em; + font-family: cursive; + font-weight : bold; + vertical-align: top; + height: 1em; + line-height: 1em; + float : left; + width : 1em; + color : #c00; + margin: 0em; + padding: 0px; + float:right; display: block; + font-size: smaller; + clear: right; + padding: 4pt; + width: 15%; + + + display:inline; + display:block; + font-style: italic; + font-size: larger; + text-align: left; + padding-left: 2pt; border-left: dotted gray 2pt; + letter-spacing: 0.5em; + font-style:roman; + font-weight:normal; + text-align: right; + padding-right: 2pt; border-right: dotted gray 2pt; + -webkit-transform: rotate(90deg); transform: rotate(90deg); + -webkit-transform: rotate(-90deg); transform: rotate(-90deg); + font-variant: small-caps; + font-size: smaller; + text-decoration: line-through; + vertical-align: bottom; font-size: smaller; + vertical-align: super; font-size: smaller; + padding-top: 2pt; border-top: dotted gray 2pt; + font-family:monospace; + text-decoration: underline; + text-decoration: underline; text-decoration-style: wavy; + +
+
+ +
+
diff --git a/samples/XML/xhtml-struct-1.mod b/samples/XML/xhtml-struct-1.mod new file mode 100644 index 00000000..08c8b1d7 --- /dev/null +++ b/samples/XML/xhtml-struct-1.mod @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + +]]> + + + +]]> + + + + + + + +]]> + + + + + + +]]> + + + + + + + +]]> + + + +]]> + + + + + + + +]]> + + + + + + + +]]> + + diff --git a/samples/XPages/navbar.xsp-config b/samples/XPages/navbar.xsp-config new file mode 100755 index 00000000..d32555bb --- /dev/null +++ b/samples/XPages/navbar.xsp-config @@ -0,0 +1,17 @@ + + + + http://www.ibm.com/xsp/custom + xc + + + navbar + navbar + /navbar.xsp + + + true + + + + diff --git a/samples/XPages/navbar.xsp.metadata b/samples/XPages/navbar.xsp.metadata new file mode 100755 index 00000000..120b7002 --- /dev/null +++ b/samples/XPages/navbar.xsp.metadata @@ -0,0 +1,22 @@ + + +20131221T175632,71-05 +20150305T194407,22-08 +20150305T194407,21-08 +20150305T194407,22-08 +20150305T162153,30-08 +CN=Eric McCormick/O=Eric McCormick +CN=Eric McCormick/O=Eric McCormick +gC~4; +navbar.xsp + + + + + +navbar.xsp +8.5.3 + + + + \ No newline at end of file diff --git a/samples/XS/CommonMark.xs b/samples/XS/CommonMark.xs new file mode 100644 index 00000000..6a0e321e --- /dev/null +++ b/samples/XS/CommonMark.xs @@ -0,0 +1,466 @@ +/* + * This software is copyright (C) by Nick Wellnhofer . + * + * This is free software; you can redistribute it and/or modify it under + * the same terms as the Perl 5 programming language system itself. + * + * Terms of the Perl programming language system itself + * + * a) the GNU General Public License as published by the Free + * Software Foundation; either version 1, or (at your option) any + * later version, or + * b) the "Artistic License" + */ + +/* + * Notes on memory management + * + * - A pointer to the Perl SV representing a node is stored in the + * user data slot of `struct cmark_node`, so there's a 1:1 mapping + * between Perl and C objects. + * - Every node SV keeps a reference to the parent SV. This is done + * indirectly by looking up the parent SV and increasing its refcount. + * - This makes sure that a document isn't freed if the last reference + * from Perl to the root node is dropped, as references to child nodes + * might still exist. + * - As a consequence, as long as a node is referenced from Perl, all its + * ancestor nodes will also be associated with a Perl object. + */ + +#define PERL_NO_GET_CONTEXT + +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + +#include +#include + +#if CMARK_VERSION < 0x001000 + #error libcmark 0.16.0 is required. +#endif + +/* Fix prefixes of render functions. */ +#define cmark_node_render_html cmark_render_html +#define cmark_node_render_xml cmark_render_xml +#define cmark_node_render_man cmark_render_man + +static SV* +S_create_or_incref_node_sv(pTHX_ cmark_node *node) { + SV *new_obj = NULL; + + while (node) { + SV *obj; + HV *stash; + + /* Look for existing object. */ + obj = (SV*)cmark_node_get_user_data(node); + + if (obj) { + /* Incref if found. */ + SvREFCNT_inc_simple_void_NN(obj); + if (!new_obj) { + new_obj = obj; + } + break; + } + + /* Create a new SV. */ + obj = newSViv(PTR2IV(node)); + cmark_node_set_user_data(node, obj); + if (!new_obj) { + new_obj = obj; + } + + /* + * Unfortunately, Perl doesn't offer an API function to bless an SV + * without a reference. The following code is mostly copied from + * sv_bless. + */ + SvOBJECT_on(obj); +#if (PERL_VERSION <= 16) + PL_sv_objcount++; +#endif + SvUPGRADE(obj, SVt_PVMG); + stash = gv_stashpvn("CommonMark::Node", 16, GV_ADD); + SvSTASH_set(obj, (HV*)SvREFCNT_inc(stash)); + + /* Recurse into parent. */ + node = cmark_node_parent(node); + } + + return new_obj; +} + +static void +S_decref_node_sv(pTHX_ cmark_node *node) { + SV *obj; + + if (!node) { + return; + } + + obj = (SV*)cmark_node_get_user_data(node); + if (!obj) { + /* Should never happen. */ + croak("Internal error: node SV not found"); + } + + SvREFCNT_dec_NN(obj); +} + +/* Find or create an SV for a cmark_node. */ +static SV* +S_node2sv(pTHX_ cmark_node *node) { + SV *obj; + + if (!node) { + return &PL_sv_undef; + } + + obj = S_create_or_incref_node_sv(aTHX_ node); + + return newRV_noinc(obj); +} + +/* Transfer refcount from a node to another. */ +static void +S_transfer_refcount(pTHX_ cmark_node *from, cmark_node *to) { + if (from != to) { + S_create_or_incref_node_sv(aTHX_ to); + S_decref_node_sv(aTHX_ from); + } +} + +/* Get C struct pointer from an SV argument. */ +static void* +S_sv2c(pTHX_ SV *sv, const char *class_name, STRLEN len, CV *cv, + const char *var_name) { + if (!SvROK(sv) || !sv_derived_from_pvn(sv, class_name, len, 0)) { + const char *sub_name = GvNAME(CvGV(cv)); + croak("%s: %s is not of type %s", sub_name, var_name, class_name); + } + return INT2PTR(void*, SvIV(SvRV(sv))); +} + + +MODULE = CommonMark PACKAGE = CommonMark PREFIX = cmark_ + +PROTOTYPES: DISABLE + +BOOT: + if (cmark_version != CMARK_VERSION) { + warn("Compiled against libcmark %s, but runtime version is %s", + CMARK_VERSION_STRING, cmark_version_string); + } + +char* +cmark_markdown_to_html(package, string) + SV *package = NO_INIT + SV *string +PREINIT: + STRLEN len; + const char *buffer; +CODE: + (void)package; + buffer = SvPVutf8(string, len); + RETVAL = cmark_markdown_to_html(buffer, len); +OUTPUT: + RETVAL + +cmark_node* +cmark_parse_document(package, string) + SV *package = NO_INIT + SV *string +PREINIT: + STRLEN len; + const char *buffer; +CODE: + (void)package; + buffer = SvPVutf8(string, len); + RETVAL = cmark_parse_document(buffer, len); +OUTPUT: + RETVAL + +cmark_node* +cmark_parse_file(package, file) + SV *package = NO_INIT + SV *file +PREINIT: + PerlIO *perl_io; + FILE *stream = NULL; +CODE: + (void)package; + perl_io = IoIFP(sv_2io(file)); + if (perl_io) { + stream = PerlIO_findFILE(perl_io); + } + if (!stream) { + croak("parse_file: file is not a file handle"); + } + RETVAL = cmark_parse_file(stream); +OUTPUT: + RETVAL + +int +cmark_version(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = cmark_version; +OUTPUT: + RETVAL + +const char* +cmark_version_string(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = cmark_version_string; +OUTPUT: + RETVAL + +int +cmark_compile_time_version(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = CMARK_VERSION; +OUTPUT: + RETVAL + +const char* +cmark_compile_time_version_string(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = CMARK_VERSION_STRING; +OUTPUT: + RETVAL + + +MODULE = CommonMark PACKAGE = CommonMark::Node PREFIX = cmark_node_ + +cmark_node* +new(package, type) + SV *package = NO_INIT + cmark_node_type type +CODE: + (void)package; + RETVAL = cmark_node_new(type); +OUTPUT: + RETVAL + +void +DESTROY(cmark_node *node) +CODE: + cmark_node *parent = cmark_node_parent(node); + if (parent) { + cmark_node_set_user_data(node, NULL); + S_decref_node_sv(aTHX_ parent); + } + else { + cmark_node_free(node); + } + +cmark_iter* +iterator(cmark_node *node) +CODE: + S_create_or_incref_node_sv(aTHX_ node); + RETVAL = cmark_iter_new(node); +OUTPUT: + RETVAL + +cmark_node* +interface_get_node(cmark_node *node) +INTERFACE: + cmark_node_next + cmark_node_previous + cmark_node_parent + cmark_node_first_child + cmark_node_last_child + +int +interface_get_int(cmark_node *node) +INTERFACE: + cmark_node_get_type + cmark_node_get_header_level + cmark_node_get_list_type + cmark_node_get_list_delim + cmark_node_get_list_start + cmark_node_get_list_tight + cmark_node_get_start_line + cmark_node_get_start_column + cmark_node_get_end_line + cmark_node_get_end_column + +NO_OUTPUT int +interface_set_int(cmark_node *node, int value) +INTERFACE: + cmark_node_set_header_level + cmark_node_set_list_type + cmark_node_set_list_delim + cmark_node_set_list_start + cmark_node_set_list_tight +POSTCALL: + if (!RETVAL) { + croak("%s: invalid operation", GvNAME(CvGV(cv))); + } + +const char* +interface_get_utf8(cmark_node *node) +INTERFACE: + cmark_node_get_type_string + cmark_node_get_literal + cmark_node_get_title + cmark_node_get_url + cmark_node_get_fence_info + +NO_OUTPUT int +interface_set_utf8(cmark_node *node, const char *value) +INTERFACE: + cmark_node_set_literal + cmark_node_set_title + cmark_node_set_url + cmark_node_set_fence_info +POSTCALL: + if (!RETVAL) { + croak("%s: invalid operation", GvNAME(CvGV(cv))); + } + +void +cmark_node_unlink(cmark_node *node) +PREINIT: + cmark_node *old_parent; +INIT: + old_parent = cmark_node_parent(node); +POSTCALL: + S_decref_node_sv(aTHX_ old_parent); + +NO_OUTPUT int +interface_move_node(cmark_node *node, cmark_node *other) +PREINIT: + cmark_node *old_parent; + cmark_node *new_parent; +INIT: + old_parent = cmark_node_parent(other); +INTERFACE: + cmark_node_insert_before + cmark_node_insert_after + cmark_node_prepend_child + cmark_node_append_child +POSTCALL: + if (!RETVAL) { + croak("%s: invalid operation", GvNAME(CvGV(cv))); + } + new_parent = cmark_node_parent(other); + S_transfer_refcount(aTHX_ old_parent, new_parent); + +char* +interface_render(cmark_node *root, long options = 0) +INTERFACE: + cmark_node_render_html + cmark_node_render_xml + cmark_node_render_man + + +MODULE = CommonMark PACKAGE = CommonMark::Iterator PREFIX = cmark_iter_ + +void +DESTROY(cmark_iter *iter) +CODE: + S_decref_node_sv(aTHX_ cmark_iter_get_node(iter)); + S_decref_node_sv(aTHX_ cmark_iter_get_root(iter)); + cmark_iter_free(iter); + +void +cmark_iter_next(cmark_iter *iter) +PREINIT: + I32 gimme; + cmark_node *old_node; + cmark_event_type ev_type; +PPCODE: + gimme = GIMME_V; + old_node = cmark_iter_get_node(iter); + ev_type = cmark_iter_next(iter); + + if (ev_type != CMARK_EVENT_DONE) { + cmark_node *node = cmark_iter_get_node(iter); + + ST(0) = sv_2mortal(newSViv((IV)ev_type)); + + if (gimme == G_ARRAY) { + SV *obj = S_create_or_incref_node_sv(aTHX_ node); + + /* A bit more efficient than S_transfer_refcount. */ + if (old_node != node) { + S_decref_node_sv(aTHX_ old_node); + SvREFCNT_inc_simple_void_NN(obj); + } + + ST(1) = sv_2mortal(newRV_noinc(obj)); + XSRETURN(2); + } + else { + S_transfer_refcount(aTHX_ old_node, node); + XSRETURN(1); + } + } + else { + S_decref_node_sv(aTHX_ old_node); + + if (gimme == G_ARRAY) { + XSRETURN_EMPTY; + } + else { + ST(0) = sv_2mortal(newSViv((IV)ev_type)); + XSRETURN(1); + } + } + +cmark_node* +cmark_iter_get_node(cmark_iter *iter) + +cmark_event_type +cmark_iter_get_event_type(cmark_iter *iter) + +void +cmark_iter_reset(iter, node, event_type) + cmark_iter *iter + cmark_node *node + cmark_event_type event_type +PREINIT: + cmark_node *old_node; +INIT: + old_node = cmark_iter_get_node(iter); + S_transfer_refcount(aTHX_ old_node, node); + + +MODULE = CommonMark PACKAGE = CommonMark::Parser PREFIX = cmark_parser_ + +cmark_parser* +cmark_parser_new(package) + SV *package = NO_INIT +CODE: + (void)package; + RETVAL = cmark_parser_new(); +OUTPUT: + RETVAL + +void +DESTROY(cmark_parser *parser) +CODE: + cmark_parser_free(parser); + +void +cmark_parser_feed(cmark_parser *parser, SV *string) +PREINIT: + STRLEN len; + const char *buffer; +CODE: + buffer = SvPVutf8(string, len); + cmark_parser_feed(parser, buffer, len); + +cmark_node* +cmark_parser_finish(cmark_parser *parser) + diff --git a/samples/wisp/intro.wisp b/samples/wisp/intro.wisp index 6b817dac..b222b6e2 100644 --- a/samples/wisp/intro.wisp +++ b/samples/wisp/intro.wisp @@ -258,7 +258,7 @@ My name is wisp!" ;; evaluating the reference to the value of the corresponding variable. foo -;; If you wish to refer to the literal symbol, rather then reference you +;; If you wish to refer to the literal symbol, rather than reference you ;; could use (quote foo) ;; or more usually diff --git a/samples/xBase/sample.ch b/samples/xBase/sample.ch new file mode 100644 index 00000000..308f1e1c --- /dev/null +++ b/samples/xBase/sample.ch @@ -0,0 +1,30 @@ +#ifndef __HARBOUR__ + #ifndef __XPP__ + #ifndef __CLIP__ + #ifndef FlagShip + #define __CLIPPER__ + #endif + #endif + #endif +#endif + +/* File create flags */ +#define FC_NORMAL 0 /* No file attributes are set */ +#define FC_READONLY 1 +#define FC_HIDDEN 2 +#define FC_SYSTEM 4 + +// New-style comment +#command SET DELETED => Set( _SET_DELETED, <(x)> ) +#command SET DELETED () => Set( _SET_DELETED, ) +#command @ , SAY [PICTURE ] [COLOR ] => ; + DevPos( , ) ; DevOutPict( , [, ] ) + +#command ENDIF <*x*> => endif + +#ifdef __CLIPPER__ + #xtranslate hb_MemoWrit( [] ) => MemoWrit( ) + #xtranslate hb_dbExists( ) => File( ) + #xtranslate hb_dbPack() => __dbPack() + #xtranslate hb_default( @, ) => iif( StrTran( ValType( ), "M", "C" ) == StrTran( ValType( ), "M", "C" ),, := , ) +#endif diff --git a/samples/xBase/sample.prg b/samples/xBase/sample.prg new file mode 100644 index 00000000..33d7a1e6 --- /dev/null +++ b/samples/xBase/sample.prg @@ -0,0 +1,167 @@ +#require "hbtest" + +#pragma linenumber=on + +#include "hbclass.ch" + +#stdout "stdout" +#warning "warning" + +#define MYCONST 100 +#undef MYCONST + +#ifdef __HARBOUR__ +#else +#endif + +#if defined( __HARBOUR__ ) .OR. .T. +#elif defined( __HARBOUR__ ) +#endif + +THREAD STATIC t_var := "thread" + +REQUEST AllTrim +ANNOUNCE my_module + +PROCEDURE Main() + + MEMVAR p_var, m_var + FIELD fld + + STATIC s_test := "static" + LOCAL o := TTest():New( "one", "two" ), tmp + LOCAL oError + LOCAL bBlock := {| tmp | QOut( tmp ) } + LOCAL hHash := { "name" => "value", "name2" => "value2", 2 => 1 } + PUBLIC p_var := "public" + PRIVATE m_var := "private" + PARAMETERS p1 + + Set( _SET_DATEFORMAT, "yyyy-mm-dd" ) + + CLS + @ 10, 10 SAY "Hello world!" + + ? hb_ValToExp( o ) + ? m->p1 + ? hHash[ "name" ], hHash[ 2 ] + + FOR tmp := 1 TO 10 STEP 2 + ? tmp + NEXT + + FOR EACH tmp IN { "a", "b" } DESCEND + ? tmp + NEXT + + ? 10.01 + 2 - 3 / 4 * 5 ^ 6 ** 1 + ? 2 < 1, 2 > 1, 2 >= 1, 2 <= 1, 2 == 1, 2 = 1, 2 != 1, 2 <> 1, 2 # 1 + ? -( 1 + 2 ), "a" $ "ab", 10 % 2 + + tmp := 0 + DO WHILE tmp < 2 + ? tmp++ + ENDDO + + tmp := 0 + WHILE tmp < 2 + ? ++tmp + IF tmp >= 0xFF + LOOP + ENDIF + EXIT + ENDDO + + --tmp + tmp-- + + IF tmp < -10.0 + ? NIL + ELSEIF .F. + ? 0d19800101 + ELSE + ? "string" + ENDIF + + DO CASE + CASE tmp == 1 + ? "A" + OTHERWISE + ? "B" + ENDCASE + + SWITCH tmp + CASE 1 + ? "A" + EXIT + OTHERWISE + ? "B" + ENDSWITCH + + BEGIN SEQUENCE WITH __BreakBlock() + BREAK + RECOVER USING oError + END /* SEQUENCE */ + + local_func( @hHash ) + + RETURN + +INIT PROCEDURE init_proc() + RETURN + +EXIT PROCEDURE exit_proc() + RETURN + +PROCEDURE returning_nothing() + RETURN + +FUNCTION pub_func() + RETURN .T. + +STATIC FUNCTION local_func() + RETURN .F. + +CREATE CLASS TTest INHERIT TParent + VAR One, Two + METHOD New( One ) + METHOD Test() INLINE QOut( "Hello" ) + METHOD MethProc() +ENDCLASS + +METHOD PROCEDURE MethProc() + RETURN + +METHOD New( One ) CLASS TTest + + ::super:New() + ::One := One + + RETURN Self + +CREATE CLASS TParent + VAR One + METHOD New() +ENDCLASS + +METHOD New() CLASS TParent + ? "TParent:New()" + RETURN Self + +// This is a comment +/* This is a comment */ +/* This is +a comment */ +* This is a comment +&& This is a comment +NOTE This is a comment +note This is a comment +NOTE + +FUNCTION pub_func2() + ? "hello world!" + ? 'hello world!' + ? "hello\world!" + ? "\" + ? "hello world!" + RETURN .T. diff --git a/script/convert-grammars b/script/convert-grammars index 7c45a7c8..ec3287db 100755 --- a/script/convert-grammars +++ b/script/convert-grammars @@ -188,14 +188,16 @@ def load_grammars(tmp_dir, source, all_scopes) scope = grammar['scopeName'] if all_scopes.key?(scope) - $stderr.puts "WARN: Duplicated scope #{scope}\n" + - " Current package: #{p.url}\n" + - " Previous package: #{all_scopes[scope]}" + unless all_scopes[scope] == p.url + $stderr.puts "WARN: Duplicated scope #{scope}\n" + + " Current package: #{p.url}\n" + + " Previous package: #{all_scopes[scope]}" + end next end all_scopes[scope] = p.url grammar - end + end.compact end def install_grammars(grammars, path) diff --git a/script/travis/before_install b/script/travis/before_install index 442f6718..516ec956 100755 --- a/script/travis/before_install +++ b/script/travis/before_install @@ -5,6 +5,8 @@ set -ex # Fetch all commits/refs needed to run our tests. git fetch origin master:master v2.0.0:v2.0.0 test/attributes:test/attributes test/master:test/master +sudo apt-get update + script/vendor-deb libicu48 libicu-dev if ruby -e 'exit RUBY_VERSION >= "2.0" && RUBY_VERSION < "2.1"'; then # Workaround for https://bugs.ruby-lang.org/issues/8074. We can't use this @@ -15,6 +17,9 @@ else bundle config build.charlock_holmes --with-icu-dir=$(pwd)/vendor/debs fi +# Replace SSH links to submodules by HTTPS links. +sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules + git submodule init git submodule sync --quiet script/fast-submodule-update diff --git a/test/fixtures/Data/Modelines/fundamentalEmacs.c b/test/fixtures/Data/Modelines/fundamentalEmacs.c new file mode 100644 index 00000000..b384bc79 --- /dev/null +++ b/test/fixtures/Data/Modelines/fundamentalEmacs.c @@ -0,0 +1,6 @@ +// -*- fundamental -*- + +int main(int argc, char * argc[]) +{ + this should not be syntax highlighted, even though it looks like c. +} diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs1 b/test/fixtures/Data/Modelines/seeplusplusEmacs1 new file mode 100644 index 00000000..6c1b6e80 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs1 @@ -0,0 +1,2 @@ +// -*-c++-*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs2 b/test/fixtures/Data/Modelines/seeplusplusEmacs2 new file mode 100644 index 00000000..3756149c --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs2 @@ -0,0 +1,2 @@ +// -*- c++ -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs3 b/test/fixtures/Data/Modelines/seeplusplusEmacs3 new file mode 100644 index 00000000..7a871e6a --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs3 @@ -0,0 +1,2 @@ +// -*- mode:C++ -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs4 b/test/fixtures/Data/Modelines/seeplusplusEmacs4 new file mode 100644 index 00000000..f020eb5a --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs4 @@ -0,0 +1,2 @@ +// -*- font:bar;mode:c++ -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs5 b/test/fixtures/Data/Modelines/seeplusplusEmacs5 new file mode 100644 index 00000000..49e9a7d6 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs5 @@ -0,0 +1,2 @@ +// -*-foo:bar;mode:c++;bar:foo-*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs6 b/test/fixtures/Data/Modelines/seeplusplusEmacs6 new file mode 100644 index 00000000..305f7f77 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs6 @@ -0,0 +1,2 @@ +// -*- foo : bar ; mode : c++ ; bar : foo -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs7 b/test/fixtures/Data/Modelines/seeplusplusEmacs7 new file mode 100644 index 00000000..236c3b8e --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs7 @@ -0,0 +1,2 @@ +// -*- mode : c++ ; bar : foo -*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs8 b/test/fixtures/Data/Modelines/seeplusplusEmacs8 new file mode 100644 index 00000000..f502058a --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs8 @@ -0,0 +1,2 @@ +// -*- font:x;foo : bar ; mode : C++ ; bar : foo ; foooooo:baaaaar;fo:ba-*- +template class { X i; }; diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs9 b/test/fixtures/Data/Modelines/seeplusplusEmacs9 new file mode 100644 index 00000000..953ca220 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs9 @@ -0,0 +1,2 @@ +// -*-foo:bar;mode:c++;bar:foo;tyrell:corp-*- +template class { X i; }; diff --git a/test/fixtures/Data/sourcemap.v1.map b/test/fixtures/Data/sourcemap.v1.map new file mode 100644 index 00000000..35c9b29f --- /dev/null +++ b/test/fixtures/Data/sourcemap.v1.map @@ -0,0 +1,12 @@ +/** Begin line maps. **/{ “file”:”out.js”, "count": 2 } +[0,0,0,0,0,0,1,1,1,1,2] +[2,2,2,2,2,2,3,4,4,4,4,4] +/** Begin file information. **/ +[“a.js”, “b.js”] +[“b.js”, “c.js”, “d.js”] +/** Begin mapping definitions. **/ +["a.js", 1, 34] +["a.js", 5, 2] +["b.js", 1, 3, "event"] +["c.js", 1, 4] +["d.js", 3, 78, "foo"] diff --git a/test/fixtures/Data/sourcemap.v3.map b/test/fixtures/Data/sourcemap.v3.map new file mode 100644 index 00000000..7acd1b9d --- /dev/null +++ b/test/fixtures/Data/sourcemap.v3.map @@ -0,0 +1 @@ +{"version":3,"file":"out.js","sourceRoot":"","sources":["foo.js","bar.js"],"sourcesContent":[null,null],"names":["src","maps","are","fun"],"mappings":"A,AAAB;;ABCDE;"} diff --git a/test/fixtures/Generated/ABM8G.mod b/test/fixtures/Generated/ABM8G.mod new file mode 100644 index 00000000..15887130 --- /dev/null +++ b/test/fixtures/Generated/ABM8G.mod @@ -0,0 +1,50 @@ +PCBNEW-LibModule-V1 Wed 10 Aug 2011 05:57:27 PM COT +# encoding utf-8 +$INDEX +ABM8G +$EndINDEX +$MODULE ABM8G +Po 0 0 0 15 4E430CBD 4E430CC5 ~~ +Li ABM8G +Sc 4E430CC5 +AR +Op 0 0 0 +T0 591 -1378 354 354 0 39 N V 21 N "ABM8G" +T1 0 787 354 354 0 39 N V 21 N "VAL**" +DS -591 394 1299 394 79 21 +DS 1299 394 1299 -1063 79 21 +DS 1299 -1063 -472 -1063 79 21 +DS -472 -1063 -472 472 79 21 +DS -472 472 -472 551 79 21 +DS -472 551 -591 551 79 21 +DS -591 551 -591 433 79 21 +$PAD +Sh "1" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 0 0 +$EndPAD +$PAD +Sh "2" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 866 0 +$EndPAD +$PAD +Sh "3" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 866 -669 +$EndPAD +$PAD +Sh "4" R 551 472 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 0 "" +Po 0 -669 +$EndPAD +$EndMODULE ABM8G +$EndLIBRARY diff --git a/test/fixtures/Generated/ms2.mod b/test/fixtures/Generated/ms2.mod new file mode 100644 index 00000000..1866c8d6 --- /dev/null +++ b/test/fixtures/Generated/ms2.mod @@ -0,0 +1,19 @@ +GFORTRAN module version '0' created from ms2.f90 on Thu Sep 5 10:09:19 2013 +MD5:8a80cd5db1bc612a28603959302dbf37 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +(2 'ms2' 'ms2' 'ms2' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +) + +('ms2' 0 2) diff --git a/test/fixtures/SVG/alg_schema.link.svg b/test/fixtures/SVG/alg_schema.link.svg new file mode 120000 index 00000000..2f2cb2e4 --- /dev/null +++ b/test/fixtures/SVG/alg_schema.link.svg @@ -0,0 +1 @@ +alg_schema.svg \ No newline at end of file diff --git a/test/fixtures/SVG/alg_schema.svg b/test/fixtures/SVG/alg_schema.svg new file mode 100644 index 00000000..cd709914 --- /dev/null +++ b/test/fixtures/SVG/alg_schema.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Sequence KEY256 bits + + + + + Salt96 bits Counter32 bits + + + + + AES Cipher + + + + + + + Secure random data128 bits + + + Division by alphabet lengthrepeated passcode-length times. + + + + Passcode2-16 characters + + + + diff --git a/test/fixtures/Shell/_bashrc b/test/fixtures/Shell/_bashrc new file mode 100644 index 00000000..eaf623bc --- /dev/null +++ b/test/fixtures/Shell/_bashrc @@ -0,0 +1,175 @@ +# vim: set ft=sh: + +# encoding +export LC_CTYPE='en_US.UTF-8' +# terminal color +export TERM=xterm-256color +# prompt setup +current_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/' +} +parse_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' +} +PS1='${debian_chroot:+($debian_chroot)}\[\e[00;32m\]\u@\h:\[\e[01;34m\]\W\[\033[01;35m\]$(parse_branch)\[\e[01;35m\]\[\e[0m\] $ ' + +google () { + search="" + echo "Googling: $@" + for term in $@; do + search="$search%20$term" + done + xdg-open "http://www.google.com/search?q=$search" +} + +# alias +alias emacs='emacs -nw' +alias eshell='emacs --execute "(term \"`which zsh`\")"' + - () { + cd - +} +alias ..='cd ..' +alias ...='cd ../..' +alias _=sudo +alias afind='ack-grep -il' +alias c=clear +alias cd..='cd ..' +alias cd...='cd ../..' +alias cd....='cd ../../..' +alias cd.....='cd ../../../..' +alias d='dirs -v | head -10' +alias emacs='emacs -nw' +alias g=git +alias ga='git add' +alias gap='git add --patch' +alias gb='git branch' +alias gba='git branch -a' +alias gbr='git branch --remote' +alias gc='git commit -v' +alias 'gc!'='git commit -v --amend' +alias gca='git commit -v -a' +alias 'gca!'='git commit -v -a --amend' +alias gcl='git config --list' +alias gclean='git reset --hard && git clean -dfx' +alias gcln='git clone' +alias gcm='git checkout master' +alias gcmsg='git commit -m' +alias gco='git checkout' +alias gcount='git shortlog -sn' +alias gcp='git cherry-pick' +alias gcs='git commit -S' +alias gd='git diff' +alias gdc='git diff --cached' +alias gdt='git difftool' +alias gg='git gui citool' +alias gga='git gui citool --amend' +alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' +alias ggpull='git pull origin $(current_branch)' +alias ggpur='git pull --rebase origin $(current_branch)' +alias ggpush='git push origin $(current_branch)' +alias gmpush='git push wkentaro $(current_branch)' +alias gignore='git update-index --assume-unchanged' +alias gignored='git ls-files -v | grep "^[[:lower:]]"' +alias git=hub +alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' +alias gk='gitk --all --branches' +alias gl='git pull' +alias glg='git log --stat --max-count=10' +alias glgg='git log --graph --max-count=10' +alias glgga='git log --graph --decorate --all' +alias glo='git log --oneline --decorate --color' +alias globurl='noglob urlglobber ' +alias glog='git log --oneline --decorate --color --graph' +alias glp=_git_log_prettily +alias gm='git merge' +alias gmt='git mergetool --no-prompt' +alias gp='git push' +alias gpoat='git push origin --all && git push origin --tags' +alias gr='git remote' +alias grba='git rebase --abort' +alias grbc='git rebase --continue' +alias grbi='git rebase -i' +alias grh='git reset HEAD' +alias grhh='git reset HEAD --hard' +alias grmv='git remote rename' +alias grrm='git remote remove' +alias grset='git remote set-url' +alias grt='cd $(git rev-parse --show-toplevel || echo ".")' +alias grup='git remote update' +alias grv='git remote -v' +alias gsd='git svn dcommit' +alias gsps='git show --pretty=short --show-signature' +alias gsr='git svn rebase' +alias gss='git status -s' +alias gst='git status' +alias gsta='git stash' +alias gstd='git stash drop' +alias gstp='git stash pop' +alias gsts='git stash show --text' +alias gts='git tag -s' +alias gunignore='git update-index --no-assume-unchanged' +alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1' +alias gup='git pull --rebase' +alias gvt='git verify-tag' +alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' +alias gwip='git add -A; git ls-files --deleted -z | xargs -r0 git rm; git commit -m "--wip--"' +alias h=history +alias history='fc -l 1' +alias ipy=ipython +alias sl='ls' +alias l='ls -lah' +alias la='ls -lAh' +alias ll='ls -lh' +alias lsa='ls -lah' +alias md='mkdir -p' +alias py=python +alias please=sudo +alias po=popd +alias pu=pushd +alias pyfind='find . -name "*.py"' +alias pygrep='grep --include="*.py"' +alias rd=rmdir +alias v=vim +alias vi=vim +alias which-command=whence +# hub +if which hub >/dev/null 2>&1; then + eval "$(hub alias -s)" +fi +# open +if which open >/dev/null 2>&1; then + alias o='open' + alias o.='open .' +elif which gnome-open >/dev/null 2>&1; then + alias open='gnome-open' + alias o='gnome-open' + alias o.='gnome-open .' +fi +# ls +if which dircolors >/dev/null 2>&1; then + eval `dircolors $HOME/.colorrc` + alias ls='ls --color=auto' +fi + [[ -s $HOME/.tmuxinator/scripts/tmuxinator ]] && source $HOME/.tmuxinator/scripts/tmuxinator + +cd () { + if [[ "x$*" = "x..." ]] + then + cd ../.. + elif [[ "x$*" = "x...." ]] + then + cd ../../.. + elif [[ "x$*" = "x....." ]] + then + cd ../../../.. + elif [[ "x$*" = "x......" ]] + then + cd ../../../../.. + elif [ -d ~/.autoenv ] + then + source ~/.autoenv/activate.sh + autoenv_cd "$@" + else + builtin cd "$@" + fi +} diff --git a/test/helper.rb b/test/helper.rb index a6a03672..ab3cc8fa 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -2,6 +2,7 @@ require "bundler/setup" require "minitest/autorun" require "mocha/setup" require "linguist" +require 'color-proximity' def fixtures_path File.expand_path("../fixtures", __FILE__) diff --git a/test/test_blob.rb b/test/test_blob.rb index d59e6794..976c83ff 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -216,6 +216,16 @@ class TestBlob < Minitest::Test assert sample_blob("C++/protocol-buffer.pb.cc").generated? assert sample_blob("Java/ProtocolBuffer.java").generated? assert sample_blob("Python/protocol_buffer_pb2.py").generated? + assert sample_blob("Go/api.pb.go").generated? + assert sample_blob("Go/embedded.go").generated? + + # Apache Thrift generated code + assert sample_blob("Python/gen-py-linguist-thrift.py").generated? + assert sample_blob("Go/gen-go-linguist-thrift.go").generated? + assert sample_blob("Java/gen-java-linguist-thrift.java").generated? + assert sample_blob("JavaScript/gen-js-linguist-thrift.js").generated? + assert sample_blob("Ruby/gen-rb-linguist-thrift.rb").generated? + assert sample_blob("Objective-C/gen-cocoa-linguist-thrift.m").generated? # Generated JNI assert sample_blob("C/jni_layer.h").generated? @@ -233,12 +243,18 @@ class TestBlob < Minitest::Test assert sample_blob("Zephir/filenames/exception.zep.php").generated? assert !sample_blob("Zephir/Router.zep").generated? - - assert Linguist::Generated.generated?("node_modules/grunt/lib/grunt.js", nil) + assert sample_blob("node_modules/grunt/lib/grunt.js").generated? # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? + + # Cython-generated C/C++ + assert sample_blob("C/sgd_fast.c").generated? + assert sample_blob("C++/wrapper_inner.cpp").generated? + + # Unity3D-generated metadata + assert sample_blob("Unity3D Asset/Tiles.meta").generated? end def test_vendored @@ -263,6 +279,9 @@ class TestBlob < Minitest::Test # Rails vendor/ assert sample_blob("vendor/plugins/will_paginate/lib/will_paginate.rb").vendored? + # Vendor/ + assert sample_blob("Vendor/my_great_file.h").vendored? + # 'thirdparty' directory assert sample_blob("thirdparty/lib/main.c").vendored? @@ -274,6 +293,8 @@ class TestBlob < Minitest::Test assert sample_blob("deps/http_parser/http_parser.c").vendored? assert sample_blob("deps/v8/src/v8.h").vendored? + assert sample_blob("tools/something/else.c").vendored? + # Chart.js assert sample_blob("some/vendored/path/Chart.js").vendored? assert !sample_blob("some/vendored/path/chart.js").vendored? @@ -284,6 +305,9 @@ class TestBlob < Minitest::Test # Debian packaging assert sample_blob("debian/cron.d").vendored? + # Erlang + assert sample_blob("rebar").vendored? + # Minified JavaScript and CSS assert sample_blob("foo.min.js").vendored? assert sample_blob("foo.min.css").vendored? @@ -292,6 +316,9 @@ class TestBlob < Minitest::Test assert !sample_blob("foomin.css").vendored? assert !sample_blob("foo.min.txt").vendored? + #.osx + assert sample_blob(".osx").vendored? + # Prototype assert !sample_blob("public/javascripts/application.js").vendored? assert sample_blob("public/javascripts/prototype.js").vendored? @@ -299,6 +326,9 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/controls.js").vendored? assert sample_blob("public/javascripts/dragdrop.js").vendored? + # Samples + assert sample_blob("Samples/Ruby/foo.rb").vendored? + # jQuery assert sample_blob("jquery.js").vendored? assert sample_blob("public/javascripts/jquery.js").vendored? @@ -396,6 +426,9 @@ class TestBlob < Minitest::Test # Normalize assert sample_blob("some/asset/path/normalize.css").vendored? + # Carthage + assert sample_blob('Carthage/blah').vendored? + # Cocoapods assert sample_blob('Pods/blah').vendored? @@ -406,6 +439,7 @@ class TestBlob < Minitest::Test # Test fixtures assert sample_blob("test/fixtures/random.rkt").vendored? assert sample_blob("Test/fixtures/random.rkt").vendored? + assert sample_blob("tests/fixtures/random.rkt").vendored? # Cordova/PhoneGap assert sample_blob("cordova.js").vendored? @@ -439,6 +473,22 @@ class TestBlob < Minitest::Test assert sample_blob("activator.bat").vendored? assert sample_blob("subproject/activator").vendored? assert sample_blob("subproject/activator.bat").vendored? + + assert_predicate fixture_blob(".google_apis/bar.jar"), :vendored? + assert_predicate fixture_blob("foo/.google_apis/bar.jar"), :vendored? + + # Sphinx docs + assert sample_blob("docs/_build/asset.doc").vendored? + assert sample_blob("docs/theme/file.css").vendored? + + # Vagrant + assert sample_blob("puphpet/file.pp").vendored? + + # Fabric.io + assert sample_blob("Fabric.framework/Fabric.h").vendored? + + # Crashlytics + assert sample_blob("Crashlytics.framework/Crashlytics.h").vendored? end def test_documentation @@ -448,13 +498,36 @@ class TestBlob < Minitest::Test refute_predicate fixture_blob("project/docs/foo.html"), :documentation? assert_predicate fixture_blob("Documentation/foo.md"), :documentation? - refute_predicate fixture_blob("project/Documentation/foo.md"), :documentation? + assert_predicate fixture_blob("documentation/foo.md"), :documentation? + assert_predicate fixture_blob("project/Documentation/foo.md"), :documentation? + assert_predicate fixture_blob("project/documentation/foo.md"), :documentation? + + assert_predicate fixture_blob("javadoc/foo.html"), :documentation? + assert_predicate fixture_blob("project/javadoc/foo.html"), :documentation? + + assert_predicate fixture_blob("man/foo.html"), :documentation? + refute_predicate fixture_blob("project/man/foo.html"), :documentation? assert_predicate fixture_blob("README"), :documentation? assert_predicate fixture_blob("README.md"), :documentation? assert_predicate fixture_blob("README.txt"), :documentation? assert_predicate fixture_blob("foo/README"), :documentation? + assert_predicate fixture_blob("CHANGE"), :documentation? + assert_predicate fixture_blob("CHANGE.md"), :documentation? + assert_predicate fixture_blob("CHANGE.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGE"), :documentation? + + assert_predicate fixture_blob("CHANGELOG"), :documentation? + assert_predicate fixture_blob("CHANGELOG.md"), :documentation? + assert_predicate fixture_blob("CHANGELOG.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGELOG"), :documentation? + + assert_predicate fixture_blob("CHANGES"), :documentation? + assert_predicate fixture_blob("CHANGES.md"), :documentation? + assert_predicate fixture_blob("CHANGES.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGES"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING"), :documentation? assert_predicate fixture_blob("CONTRIBUTING.md"), :documentation? assert_predicate fixture_blob("CONTRIBUTING.txt"), :documentation? @@ -502,6 +575,8 @@ class TestBlob < Minitest::Test blob = fixture_blob(filepath) if language == 'Data' assert blob.language.nil?, "A language was found for #{filepath}" + elsif language == 'Generated' + assert blob.generated?, "#{filepath} is not a generated file" else assert blob.language, "No language for #{filepath}" assert_equal language, blob.language.name, blob.name diff --git a/test/test_color_proximity.rb b/test/test_color_proximity.rb new file mode 100644 index 00000000..2356e74a --- /dev/null +++ b/test/test_color_proximity.rb @@ -0,0 +1,23 @@ +require_relative "./helper" + +class TestColorProximity < Minitest::Test + include Linguist + + def cut_hash(color) + color[1..-1] if color.start_with?('#') + end + + def test_color_proximity + langs_with_colors = Language.all.reject { |language| language.color.nil? } + cp = ColorProximity.new(0.05, langs_with_colors.map { |lang| cut_hash(lang.color) }) + failing_threshold = langs_with_colors.map do |lang| + state = cp.past_threshold?(cut_hash(lang.color)) + if !state.first && lang.color != "##{state.last.first}" + "- #{lang} (#{lang.color}) is too close to #{state.last}" + end + end.compact + message = "The following #{failing_threshold.length} languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}" + + assert failing_threshold.empty?, message + end +end diff --git a/test/test_generated.rb b/test/test_generated.rb index b714e19e..164e1fc2 100644 --- a/test/test_generated.rb +++ b/test/test_generated.rb @@ -5,47 +5,69 @@ class TestGenerated < Minitest::Test class DataLoadedError < StandardError; end - def generated_without_loading_data(name) - blob = File.join(samples_path, name) + def generated_without_loading_data(blob) begin - assert Generated.generated?(blob, lambda { raise DataLoadedError.new }), "#{name} was not recognized as a generated file" + assert Generated.generated?(blob, lambda { raise DataLoadedError.new }), "#{blob} was not recognized as a generated file" rescue DataLoadedError - assert false, "Data was loaded when calling generated? on #{name}" + assert false, "Data was loaded when calling generated? on #{blob}" end end - def generated_loading_data(name) - blob = File.join(samples_path, name) - assert_raises(DataLoadedError, "Data wasn't loaded when calling generated? on #{name}") do + def generated_loading_data(blob) + assert_raises(DataLoadedError, "Data wasn't loaded when calling generated? on #{blob}") do Generated.generated?(blob, lambda { raise DataLoadedError.new }) end end - def test_check_generated_without_loading_data + def generated_fixture_without_loading_data(name) + generated_without_loading_data(File.join(fixtures_path, name)) + end + + def generated_fixture_loading_data(name) + generated_loading_data(File.join(fixtures_path, name)) + end + + def generated_sample_without_loading_data(name) + generated_without_loading_data(File.join(samples_path, name)) + end + + def generated_sample_loading_data(name) + generated_loading_data(File.join(samples_path, name)) + end + + def test_check_generated # Xcode project files - generated_without_loading_data("Binary/MainMenu.nib") - generated_without_loading_data("Dummy/foo.xcworkspacedata") - generated_without_loading_data("Dummy/foo.xcuserstate") + generated_sample_without_loading_data("Binary/MainMenu.nib") + generated_sample_without_loading_data("Dummy/foo.xcworkspacedata") + generated_sample_without_loading_data("Dummy/foo.xcuserstate") # .NET designer file - generated_without_loading_data("Dummu/foo.designer.cs") + generated_sample_without_loading_data("Dummu/foo.designer.cs") # Composer generated composer.lock file - generated_without_loading_data("JSON/composer.lock") + generated_sample_without_loading_data("JSON/composer.lock") # Node modules - generated_without_loading_data("Dummy/node_modules/foo.js") + generated_sample_without_loading_data("Dummy/node_modules/foo.js") # Godep saved dependencies - generated_without_loading_data("Godeps/Godeps.json") - generated_without_loading_data("Godeps/_workspace/src/github.com/kr/s3/sign.go") + generated_sample_without_loading_data("Godeps/Godeps.json") + generated_sample_without_loading_data("Godeps/_workspace/src/github.com/kr/s3/sign.go") # Generated by Zephir - generated_without_loading_data("C/exception.zep.c") - generated_without_loading_data("C/exception.zep.h") - generated_without_loading_data("PHP/exception.zep.php") + generated_sample_without_loading_data("C/exception.zep.c") + generated_sample_without_loading_data("C/exception.zep.h") + generated_sample_without_loading_data("PHP/exception.zep.php") # Minified files - generated_loading_data("JavaScript/jquery-1.6.1.min.js") + generated_sample_loading_data("JavaScript/jquery-1.6.1.min.js") + + # Source Map + generated_fixture_without_loading_data("Data/bootstrap.css.map") + generated_fixture_loading_data("Data/sourcemap.v3.map") + generated_fixture_loading_data("Data/sourcemap.v1.map") + + # Specflow + generated_fixture_without_loading_data("Features/BindingCulture.feature.cs") end end diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 18cbce28..88624ae8 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -13,8 +13,7 @@ class TestGrammars < Minitest::Test # These grammars have no license but have been grandfathered in. New grammars # must have a license that allows redistribution. "vendor/grammars/Sublime-Lasso", - "vendor/grammars/Sublime-REBOL", - "vendor/grammars/x86-assembly-textmate-bundle", + "vendor/grammars/x86-assembly-textmate-bundle" ].freeze def setup diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index cadb35f6..8914e4c2 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -22,6 +22,17 @@ class TestHeuristcs < Minitest::Test assert_equal [], results end + def assert_heuristics(hash) + candidates = hash.keys.map { |l| Language[l] } + + hash.each do |language, blobs| + Array(blobs).each do |blob| + result = Heuristics.call(file_blob(blob), candidates) + assert_equal [Language[language]], result, "Failed for #{blob}" + end + end + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues @@ -47,8 +58,9 @@ class TestHeuristcs < Minitest::Test # Candidate languages = ["Perl", "Prolog"] def test_pl_prolog_perl_by_heuristics assert_heuristics({ - "Prolog" => "Prolog/turing.pl", - "Perl" => ["Perl/perl-test.t", "Perl/use5.pl"] + "Prolog" => all_fixtures("Prolog/*.pl"), + "Perl" => all_fixtures("Perl/*.pl") + ["Perl/perl-test.t"], + "Perl6" => all_fixtures("Perl6/*.pl") }) end @@ -60,11 +72,13 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["IDL", "Prolog"] - def test_pro_prolog_idl_by_heuristics + # Candidate languages = ["IDL", "Prolog", "QMake", "INI"] + def test_pro_by_heuristics assert_heuristics({ - "Prolog" => "Prolog/logic-problem.pro", - "IDL" => "IDL/mg_acosh.pro" + "Prolog" => all_fixtures("Prolog", "*.pro"), + "IDL" => all_fixtures("IDL", "*.pro"), + "INI" => all_fixtures("INI", "*.pro"), + "QMake" => all_fixtures("QMake", "*.pro") }) end @@ -73,7 +87,7 @@ class TestHeuristcs < Minitest::Test assert_heuristics({ "AsciiDoc" => "AsciiDoc/list.asc", "AGS Script" => "AGS Script/GlobalScript.asc", - "Public Key" => "Public Key/sunCert.asc" + "Public Key" => all_fixtures("Public Key", "*.asc") }) end @@ -119,7 +133,7 @@ class TestHeuristcs < Minitest::Test assert_heuristics({ "Frege" => all_fixtures("Frege"), "Forth" => all_fixtures("Forth"), - "Text" => all_fixtures("Text") + "Text" => all_fixtures("Text", "*.fr") }) end @@ -144,17 +158,6 @@ class TestHeuristcs < Minitest::Test }) end - def assert_heuristics(hash) - candidates = hash.keys.map { |l| Language[l] } - - hash.each do |language, blobs| - Array(blobs).each do |blob| - result = Heuristics.call(file_blob(blob), candidates) - assert_equal [Language[language]], result, "Failed for #{blob}" - end - end - end - def test_ls_by_heuristics assert_heuristics({ "LiveScript" => "LiveScript/hello.ls", @@ -168,4 +171,10 @@ class TestHeuristcs < Minitest::Test "XML" => all_fixtures("XML", "*.ts") }) end + + def test_ch_by_heuristics + assert_heuristics({ + "xBase" => all_fixtures("xBase") + }) + end end diff --git a/test/test_instrumentation.rb b/test/test_instrumentation.rb new file mode 100644 index 00000000..ab0615e5 --- /dev/null +++ b/test/test_instrumentation.rb @@ -0,0 +1,50 @@ +require_relative "./helper" + +class TestInstrumentation < Minitest::Test + include Linguist + + class LocalInstrumenter + Event = Struct.new(:name, :args) + + attr_reader :events + + def initialize + @events = [] + end + + def instrument(name, *args) + @events << Event.new(name, args) + yield if block_given? + end + end + + def setup + Linguist.instrumenter = LocalInstrumenter.new + end + + def teardown + Linguist.instrumenter = nil + end + + def test_detection_instrumentation_with_binary_blob + binary_blob = fixture_blob("Binary/octocat.ai") + Language.detect(binary_blob) + + # Shouldn't instrument this (as it's binary) + assert_equal 0, Linguist.instrumenter.events.size + end + + def test_modeline_instrumentation + blob = fixture_blob("Data/Modelines/ruby") + Language.detect(blob) + + detect_event = Linguist.instrumenter.events.last + detect_event_payload = detect_event[:args].first + + assert_equal 3, Linguist.instrumenter.events.size + assert_equal "linguist.detected", detect_event.name + assert_equal Language['Ruby'], detect_event_payload[:language] + assert_equal blob, detect_event_payload[:blob] + assert_equal Linguist::Strategy::Modeline, detect_event_payload[:strategy] + end +end diff --git a/test/test_language.rb b/test/test_language.rb index 1a39744e..3c204c0a 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -79,7 +79,6 @@ class TestLanguage < Minitest::Test assert_equal Language['Java'], Language['Java Server Pages'].group assert_equal Language['Python'], Language['Cython'].group assert_equal Language['Python'], Language['NumPy'].group - assert_equal Language['Shell'], Language['Batchfile'].group assert_equal Language['Shell'], Language['Gentoo Ebuild'].group assert_equal Language['Shell'], Language['Gentoo Eclass'].group assert_equal Language['Shell'], Language['Tcsh'].group @@ -155,10 +154,6 @@ class TestLanguage < Minitest::Test assert_equal :prose, Language['Org'].type end - def test_other - assert_nil Language['Brainfuck'].type - end - def test_searchable assert Language['Ruby'].searchable? assert !Language['Gettext Catalog'].searchable? @@ -192,7 +187,7 @@ class TestLanguage < Minitest::Test assert_equal [], Language.find_by_extension('foo.rb') assert_equal [Language['Ruby']], Language.find_by_extension('rb') assert_equal [Language['Ruby']], Language.find_by_extension('.rb') - assert_equal [Language['M'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') + assert_equal [Language['Limbo'], Language['M'], Language['MUF'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') end def test_find_all_by_extension @@ -290,9 +285,9 @@ class TestLanguage < Minitest::Test def test_color assert_equal '#701516', Language['Ruby'].color - assert_equal '#3581ba', Language['Python'].color + assert_equal '#3572A5', Language['Python'].color assert_equal '#f1e05a', Language['JavaScript'].color - assert_equal '#31859c', Language['TypeScript'].color + assert_equal '#2b7489', Language['TypeScript'].color assert_equal '#3d9970', Language['LSL'].color end @@ -358,6 +353,15 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_all_languages_have_type + missing = Language.all.select { |language| language.type.nil? } + message = "The following languages do not have a type listed in grammars.yml. Please add types for all new languages.\n" + + width = missing.map { |language| language.name.length }.max + message << missing.map { |language| sprintf("%-#{width}s", language.name) }.sort.join("\n") + assert missing.empty?, message + end + def test_all_languages_have_a_valid_ace_mode ace_fixture_path = File.join('test', 'fixtures', 'ace_modes.json') skip("No ace_modes.json file") unless File.exist?(ace_fixture_path) diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 6c68cc87..a2be5d3b 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -10,6 +10,16 @@ class TestModelines < Minitest::Test def test_modeline_strategy assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs3") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs4") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs5") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs6") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9") + assert_modeline Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c") assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl") assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md") assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc") @@ -18,6 +28,16 @@ class TestModelines < Minitest::Test def test_modeline_languages assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplus").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs3").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs4").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs5").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs6").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9").language + assert_equal Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c").language assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language diff --git a/test/test_pedantic.rb b/test/test_pedantic.rb index 0861b8d8..29b673ab 100644 --- a/test/test_pedantic.rb +++ b/test/test_pedantic.rb @@ -12,7 +12,7 @@ class TestPedantic < Minitest::Test def test_extensions_are_sorted LANGUAGES.each do |name, language| extensions = language['extensions'] - assert_sorted extensions[1..-1] if extensions && extensions.size > 1 + assert_sorted extensions[1..-1].map(&:downcase) if extensions && extensions.size > 1 end end diff --git a/test/test_samples.rb b/test/test_samples.rb index 0b0722dc..dc3524c2 100644 --- a/test/test_samples.rb +++ b/test/test_samples.rb @@ -34,6 +34,14 @@ class TestSamples < Minitest::Test assert !data["interpreters"].empty? end + def test_ext_or_shebang + Samples.each do |sample| + if sample[:extname].to_s.empty? && !sample[:filename] + assert sample[:interpreter], "#{sample[:path]} should have a file extension or a shebang, maybe it belongs in filenames/ subdir" + end + end + end + # Check that there aren't samples with extensions or interpreters that # aren't explicitly defined in languages.yml languages_yml = File.expand_path("../../lib/linguist/languages.yml", __FILE__) @@ -42,16 +50,15 @@ class TestSamples < Minitest::Test options['extensions'] ||= [] if extnames = Samples.cache['extnames'][name] extnames.each do |extname| - next if extname == '.script!' - assert options['extensions'].index { |x| x.end_with? extname }, "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" + assert options['extensions'].index { |x| x.downcase.end_with? extname.downcase }, "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" end end options['interpreters'] ||= [] if interpreters = Samples.cache['interpreters'][name] interpreters.each do |interpreter| - # next if extname == '.script!' - assert options['interpreters'].include?(interpreter), "#{name} has a sample with an interpreter (#{interpreter}) that isn't explicitly defined in languages.yml" + assert options['interpreters'].include?(interpreter), + "#{name} has a sample with an interpreter (#{interpreter}) that isn't explicitly defined in languages.yml" end end end @@ -67,7 +74,7 @@ class TestSamples < Minitest::Test if language_matches.length > 1 language_matches.each do |match| samples = "samples/#{match.name}/*#{extension}" - assert Dir.glob(samples).any?, "Missing samples in #{samples.inspect}. See https://github.com/github/linguist/blob/master/CONTRIBUTING.md" + assert Dir.glob(samples, File::FNM_CASEFOLD).any?, "Missing samples in #{samples.inspect}. See https://github.com/github/linguist/blob/master/CONTRIBUTING.md" end end end diff --git a/test/test_shebang.rb b/test/test_shebang.rb index a2d25117..de3344ec 100644 --- a/test/test_shebang.rb +++ b/test/test_shebang.rb @@ -38,6 +38,7 @@ class TestShebang < Minitest::Test assert_interpreter "perl", "#! perl" assert_interpreter "ruby", "#!/bin/sh\n\n\nexec ruby $0 $@" - end + assert_interpreter "sh", "#! /usr/bin/env A=003 B=149 C=150 D=xzd E=base64 F=tar G=gz H=head I=tail sh" + end end diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index 140e03b5..b8b486cb 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -35,6 +35,8 @@ class TestTokenizer < Minitest::Test assert_equal %w(foo), tokenize("foo\n# Comment") assert_equal %w(foo bar), tokenize("foo\n# Comment\nbar") assert_equal %w(foo), tokenize("foo\n// Comment") + assert_equal %w(foo), tokenize("foo\n-- Comment") + assert_equal %w(foo), tokenize("foo\n\" Comment") assert_equal %w(foo), tokenize("foo /* Comment */") assert_equal %w(foo), tokenize("foo /* \nComment\n */") assert_equal %w(foo), tokenize("foo ") @@ -86,16 +88,16 @@ class TestTokenizer < Minitest::Test end def test_shebang - assert_equal "SHEBANG#!sh", tokenize(:"Shell/sh.script!")[0] - assert_equal "SHEBANG#!bash", tokenize(:"Shell/bash.script!")[0] - assert_equal "SHEBANG#!zsh", tokenize(:"Shell/zsh.script!")[0] - assert_equal "SHEBANG#!perl", tokenize(:"Perl/perl.script!")[0] - assert_equal "SHEBANG#!python", tokenize(:"Python/python.script!")[0] - assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby.script!")[0] - assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2.script!")[0] - assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js.script!")[0] - assert_equal "SHEBANG#!php", tokenize(:"PHP/php.script!")[0] - assert_equal "SHEBANG#!escript", tokenize(:"Erlang/factorial.script!")[0] + assert_equal "SHEBANG#!sh", tokenize(:"Shell/sh")[0] + assert_equal "SHEBANG#!bash", tokenize(:"Shell/bash")[0] + assert_equal "SHEBANG#!zsh", tokenize(:"Shell/zsh")[0] + assert_equal "SHEBANG#!perl", tokenize(:"Perl/perl")[0] + assert_equal "SHEBANG#!python", tokenize(:"Python/python")[0] + assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby")[0] + assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2")[0] + assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js")[0] + assert_equal "SHEBANG#!php", tokenize(:"PHP/php")[0] + assert_equal "SHEBANG#!escript", tokenize(:"Erlang/factorial")[0] assert_equal "echo", tokenize(:"Shell/invalid-shebang.sh")[0] end diff --git a/vendor/grammars/AutoHotkey b/vendor/grammars/AutoHotkey index 9b42c86e..8a9bb555 160000 --- a/vendor/grammars/AutoHotkey +++ b/vendor/grammars/AutoHotkey @@ -1 +1 @@ -Subproject commit 9b42c86e75a78e0f3c37d87476c1d943803fa76e +Subproject commit 8a9bb5559786af2373261999d14b8909fe6d0c97 diff --git a/vendor/grammars/CLIPS-sublime b/vendor/grammars/CLIPS-sublime index f6904baa..6a11bc51 160000 --- a/vendor/grammars/CLIPS-sublime +++ b/vendor/grammars/CLIPS-sublime @@ -1 +1 @@ -Subproject commit f6904baa78b8b918a7815f4f467fe0ab51c38972 +Subproject commit 6a11bc512e3f22ae9636e64bc101e79334501089 diff --git a/vendor/grammars/ColdFusion b/vendor/grammars/ColdFusion index ee54c805..3e7e68b1 160000 --- a/vendor/grammars/ColdFusion +++ b/vendor/grammars/ColdFusion @@ -1 +1 @@ -Subproject commit ee54c80589c1618c5a8c55afdc83f770d7bdf44b +Subproject commit 3e7e68b14dc3f55082e4d449666d3fde3f024a02 diff --git a/vendor/grammars/Docker.tmbundle b/vendor/grammars/Docker.tmbundle index 8f28cd87..8ff6e62c 160000 --- a/vendor/grammars/Docker.tmbundle +++ b/vendor/grammars/Docker.tmbundle @@ -1 +1 @@ -Subproject commit 8f28cd8714072c1a6d3478e700948ee20143c561 +Subproject commit 8ff6e62c89c625829e86d9094c0dab873120408c diff --git a/vendor/grammars/Elm.tmLanguage b/vendor/grammars/Elm.tmLanguage index 1d2e0963..8137f5a4 160000 --- a/vendor/grammars/Elm.tmLanguage +++ b/vendor/grammars/Elm.tmLanguage @@ -1 +1 @@ -Subproject commit 1d2e0963012d4959d5517c3dd0dcf486b1ded74b +Subproject commit 8137f5a48c76c4303394d7da6f3a19bf61056cc6 diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 7bbedb02..85c88773 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 7bbedb02585912c6e89bec59621aaf2950c28a09 +Subproject commit 85c88773e83e437187bc9c924257f8e41caa63cf diff --git a/vendor/grammars/IDL-Syntax b/vendor/grammars/IDL-Syntax index 3baeaeaf..ee1bded3 160000 --- a/vendor/grammars/IDL-Syntax +++ b/vendor/grammars/IDL-Syntax @@ -1 +1 @@ -Subproject commit 3baeaeafac9e30e8a4b0789105641e0b59da32a9 +Subproject commit ee1bded38ba22716c3fb916795ca6d18f766f014 diff --git a/vendor/grammars/InnoSetup b/vendor/grammars/InnoSetup index 875ba96c..e7ca1ee0 160000 --- a/vendor/grammars/InnoSetup +++ b/vendor/grammars/InnoSetup @@ -1 +1 @@ -Subproject commit 875ba96c32df269f5be92bd366d20260f811d844 +Subproject commit e7ca1ee0dd99a022dd0bd679f9bdad7cd610432e diff --git a/vendor/grammars/Julia.tmbundle b/vendor/grammars/Julia.tmbundle index 6541d86c..e2918776 160000 --- a/vendor/grammars/Julia.tmbundle +++ b/vendor/grammars/Julia.tmbundle @@ -1 +1 @@ -Subproject commit 6541d86c1f6f19a3a0a26917e9dd81b043b37bc3 +Subproject commit e2918776e14506e0bc100c2501c56188acfc2bd3 diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle new file mode 160000 index 00000000..dc33b945 --- /dev/null +++ b/vendor/grammars/Lean.tmbundle @@ -0,0 +1 @@ +Subproject commit dc33b9450f71cb1cfb5b9b1ad53d5afd6f62fbef diff --git a/vendor/grammars/Modelica b/vendor/grammars/Modelica index e1fd8532..10c5dc64 160000 --- a/vendor/grammars/Modelica +++ b/vendor/grammars/Modelica @@ -1 +1 @@ -Subproject commit e1fd853290e4a560f20383103c786334da505772 +Subproject commit 10c5dc6484b6d851a109025af64a83ae0e6a6c73 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index fac6b182..4acce8b6 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit fac6b182e8a92a65c9e144c578948d7b51048f26 +Subproject commit 4acce8b67be537df6e23e9aab92c0427c37437a5 diff --git a/vendor/grammars/PHP-Twig.tmbundle b/vendor/grammars/PHP-Twig.tmbundle index ad0f5147..f4f7529a 160000 --- a/vendor/grammars/PHP-Twig.tmbundle +++ b/vendor/grammars/PHP-Twig.tmbundle @@ -1 +1 @@ -Subproject commit ad0f5147e6d7ae70469084659cffcfd22575869e +Subproject commit f4f7529ac2a07527caa7c9154b87c96d17e18aa1 diff --git a/vendor/grammars/SMT.tmbundle b/vendor/grammars/SMT.tmbundle new file mode 160000 index 00000000..5b8231f5 --- /dev/null +++ b/vendor/grammars/SMT.tmbundle @@ -0,0 +1 @@ +Subproject commit 5b8231f5165f0a2147445783705e99f468be7a84 diff --git a/vendor/grammars/Stylus b/vendor/grammars/Stylus index b9214d1f..8b1c77d0 160000 --- a/vendor/grammars/Stylus +++ b/vendor/grammars/Stylus @@ -1 +1 @@ -Subproject commit b9214d1ffd5031b60d77d07a6f315a934d4a473e +Subproject commit 8b1c77d0543d12984ebb872180d942629edc31ac diff --git a/vendor/grammars/Sublime-Coq b/vendor/grammars/Sublime-Coq index 964eb8f9..0909903a 160000 --- a/vendor/grammars/Sublime-Coq +++ b/vendor/grammars/Sublime-Coq @@ -1 +1 @@ -Subproject commit 964eb8f914cd65f107f55eef8e51372fdf77bd53 +Subproject commit 0909903a9ac9bb4771d78dc6e0a306196d0fe068 diff --git a/vendor/grammars/Sublime-Logos b/vendor/grammars/Sublime-Logos index 9a7aa2fb..5375dc53 160000 --- a/vendor/grammars/Sublime-Logos +++ b/vendor/grammars/Sublime-Logos @@ -1 +1 @@ -Subproject commit 9a7aa2fb92b52f0e422f50b60fd5608d935ef69b +Subproject commit 5375dc5394d72c36088d6eb1304f632bea232d83 diff --git a/vendor/grammars/Sublime-Modula-2 b/vendor/grammars/Sublime-Modula-2 new file mode 160000 index 00000000..9bd5077f --- /dev/null +++ b/vendor/grammars/Sublime-Modula-2 @@ -0,0 +1 @@ +Subproject commit 9bd5077f925ac7a3edc87d45d1f872593ff7377e diff --git a/vendor/grammars/Sublime-REBOL b/vendor/grammars/Sublime-REBOL index 977ba9bb..102402f7 160000 --- a/vendor/grammars/Sublime-REBOL +++ b/vendor/grammars/Sublime-REBOL @@ -1 +1 @@ -Subproject commit 977ba9bb5881e4eec0f144f9f8dc23b0137cae00 +Subproject commit 102402f71aa3a7770b0c06c0183eff1be78e7280 diff --git a/vendor/grammars/Sublime-Red b/vendor/grammars/Sublime-Red new file mode 160000 index 00000000..def7baed --- /dev/null +++ b/vendor/grammars/Sublime-Red @@ -0,0 +1 @@ +Subproject commit def7baed855873ab6730502baf07ce014b922ad9 diff --git a/vendor/grammars/Sublime-SQF-Language b/vendor/grammars/Sublime-SQF-Language index 0313fbe6..6d0f3f6c 160000 --- a/vendor/grammars/Sublime-SQF-Language +++ b/vendor/grammars/Sublime-SQF-Language @@ -1 +1 @@ -Subproject commit 0313fbe6fb962a21c337a327dcb72235af913536 +Subproject commit 6d0f3f6cee23a79f59af9ab263841c1533cd54f1 diff --git a/vendor/grammars/Sublime-Text-2-OpenEdge-ABL b/vendor/grammars/Sublime-Text-2-OpenEdge-ABL index 6e8231cc..dd14b342 160000 --- a/vendor/grammars/Sublime-Text-2-OpenEdge-ABL +++ b/vendor/grammars/Sublime-Text-2-OpenEdge-ABL @@ -1 +1 @@ -Subproject commit 6e8231cca124750b413ee50e8a4ee20e36636a03 +Subproject commit dd14b342cb436cde41752df6a014588110b9c1c0 diff --git a/vendor/grammars/Sublime-VimL b/vendor/grammars/Sublime-VimL index 366fdc64..4b23352c 160000 --- a/vendor/grammars/Sublime-VimL +++ b/vendor/grammars/Sublime-VimL @@ -1 +1 @@ -Subproject commit 366fdc64e3655207a0b2672f630d7167e6aac2c3 +Subproject commit 4b23352ce5e48a191d55d61883a9478211df91fd diff --git a/vendor/grammars/SublimeClarion b/vendor/grammars/SublimeClarion new file mode 160000 index 00000000..f070aadd --- /dev/null +++ b/vendor/grammars/SublimeClarion @@ -0,0 +1 @@ +Subproject commit f070aadd26c5376be522bd0c9a135ff85bb76f13 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 27313007..db148999 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 27313007d94fd4ae802702e5ca6b454e8a5e9468 +Subproject commit db1489994863ca9adda545bf7c728d9e4fb7382c diff --git a/vendor/grammars/abap.tmbundle b/vendor/grammars/abap.tmbundle index 5d8acce1..5973e78c 160000 --- a/vendor/grammars/abap.tmbundle +++ b/vendor/grammars/abap.tmbundle @@ -1 +1 @@ -Subproject commit 5d8acce13c54650b62556c0b307d9f30ea7ff538 +Subproject commit 5973e78c60d3d7f11fb264b5581bbe492486e771 diff --git a/vendor/grammars/ada.tmbundle b/vendor/grammars/ada.tmbundle index c45eed4d..59bfc502 160000 --- a/vendor/grammars/ada.tmbundle +++ b/vendor/grammars/ada.tmbundle @@ -1 +1 @@ -Subproject commit c45eed4d5f98fe3bcbbffbb9e436601ab5bbde4b +Subproject commit 59bfc50221b2dcdbdb8a98117f44e66e1c35ffcf diff --git a/vendor/grammars/ampl b/vendor/grammars/ampl new file mode 160000 index 00000000..2e399ebf --- /dev/null +++ b/vendor/grammars/ampl @@ -0,0 +1 @@ +Subproject commit 2e399ebf4aec6b5b81f01d4cbee965f77852ce86 diff --git a/vendor/grammars/api-blueprint-sublime-plugin b/vendor/grammars/api-blueprint-sublime-plugin new file mode 160000 index 00000000..e5289f42 --- /dev/null +++ b/vendor/grammars/api-blueprint-sublime-plugin @@ -0,0 +1 @@ +Subproject commit e5289f429be68c1ab5df4ca099578eaa84e41dc8 diff --git a/vendor/grammars/asciidoc.tmbundle b/vendor/grammars/asciidoc.tmbundle index 28063ea4..2d3f7a4f 160000 --- a/vendor/grammars/asciidoc.tmbundle +++ b/vendor/grammars/asciidoc.tmbundle @@ -1 +1 @@ -Subproject commit 28063ea46c1b47d7aec7da39801679763ab00825 +Subproject commit 2d3f7a4f58bf626ca7c47112cdf346128851e0d3 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp new file mode 160000 index 00000000..2a531a5f --- /dev/null +++ b/vendor/grammars/atom-fsharp @@ -0,0 +1 @@ +Subproject commit 2a531a5f7aeb8d7f6ccc99e4cbd6f564a47a7322 diff --git a/vendor/grammars/atom-language-purescript b/vendor/grammars/atom-language-purescript new file mode 160000 index 00000000..5fd5b646 --- /dev/null +++ b/vendor/grammars/atom-language-purescript @@ -0,0 +1 @@ +Subproject commit 5fd5b6460e906045625fb5bbe7644425c73a3798 diff --git a/vendor/grammars/ats.sublime b/vendor/grammars/ats.sublime index 2565468f..d6317b23 160000 --- a/vendor/grammars/ats.sublime +++ b/vendor/grammars/ats.sublime @@ -1 +1 @@ -Subproject commit 2565468fd437fbe436bc21509a72ba8bad35fc7c +Subproject commit d6317b2309055954d4f024479a6b6b6115acf3ba diff --git a/vendor/grammars/bro-sublime b/vendor/grammars/bro-sublime index 7a8983d9..8219f5ee 160000 --- a/vendor/grammars/bro-sublime +++ b/vendor/grammars/bro-sublime @@ -1 +1 @@ -Subproject commit 7a8983d93ecdb2535b00348b2ed15a964fe6884f +Subproject commit 8219f5ee09cff98756641dde8a93456ff77b9e92 diff --git a/vendor/grammars/carto-atom b/vendor/grammars/carto-atom index c00fb6c4..98959093 160000 --- a/vendor/grammars/carto-atom +++ b/vendor/grammars/carto-atom @@ -1 +1 @@ -Subproject commit c00fb6c461e17de53e9efaf5b495e5b7d877b9d6 +Subproject commit 989590932359d32462c4904c5a71180aeda409d2 diff --git a/vendor/grammars/ceylon-sublimetext b/vendor/grammars/ceylon-sublimetext index 07029801..67ae76cf 160000 --- a/vendor/grammars/ceylon-sublimetext +++ b/vendor/grammars/ceylon-sublimetext @@ -1 +1 @@ -Subproject commit 070298013e732cc7233c5169181a4a65c0ad6ef9 +Subproject commit 67ae76cfb1d992f4718ac121008f5d974b370cc2 diff --git a/vendor/grammars/chapel-tmbundle b/vendor/grammars/chapel-tmbundle index d52e9b14..03c5d256 160000 --- a/vendor/grammars/chapel-tmbundle +++ b/vendor/grammars/chapel-tmbundle @@ -1 +1 @@ -Subproject commit d52e9b1417a5aa41e417876e121adb880d6a1ff7 +Subproject commit 03c5d25641aef5809d0ce8ce28790c96afe174b5 diff --git a/vendor/grammars/css.tmbundle b/vendor/grammars/css.tmbundle index bef87ff9..94f7111c 160000 --- a/vendor/grammars/css.tmbundle +++ b/vendor/grammars/css.tmbundle @@ -1 +1 @@ -Subproject commit bef87ff98730f62cee3bb470f63bd2eb3fb2e4f9 +Subproject commit 94f7111c2953ac7b4cc42d313d9ad9b8701b8468 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index a6931961..f7953e41 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit a6931961dafe68349ca0c388d225987bcf2ce049 +Subproject commit f7953e41fdf40e49113852b07146478783f08139 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index d55b1d42..8fe7c037 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit d55b1d427845aa4c2f2fe5947121616b7f1160fa +Subproject commit 8fe7c0370b9d901d24b01cabc47ba7079c0cd5bd diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index 9c63ff09..56efe611 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit 9c63ff09bd411d3e5c5a737145fc33d288804c9c +Subproject commit 56efe6116ff92a6979ba94ff2722486e3f440583 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index ec896cd5..a5fbd7e3 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit ec896cd5ad05d4ae9b837fa5a64cd9431d2a14d6 +Subproject commit a5fbd7e3f89b1f09bd03312aababefb440db99a6 diff --git a/vendor/grammars/fsharpbinding b/vendor/grammars/fsharpbinding deleted file mode 160000 index 0cd6439b..00000000 --- a/vendor/grammars/fsharpbinding +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0cd6439b513631c469d69b0e02a26804b068674b diff --git a/vendor/grammars/gap-tmbundle b/vendor/grammars/gap-tmbundle index 291a0469..ce4ff698 160000 --- a/vendor/grammars/gap-tmbundle +++ b/vendor/grammars/gap-tmbundle @@ -1 +1 @@ -Subproject commit 291a0469dd4eb7082b08e828edc8bf0cfbb9b599 +Subproject commit ce4ff698ebb4a692f0b9a3ab5e30853b87fd2b34 diff --git a/vendor/grammars/grace-tmbundle b/vendor/grammars/grace-tmbundle index acbf9a24..9e8bb893 160000 --- a/vendor/grammars/grace-tmbundle +++ b/vendor/grammars/grace-tmbundle @@ -1 +1 @@ -Subproject commit acbf9a247c6fae57d0e51c712669933b93ca4251 +Subproject commit 9e8bb893f0fa118db2335c2c1edd4147d7ea9d78 diff --git a/vendor/grammars/graphviz.tmbundle b/vendor/grammars/graphviz.tmbundle index 2760230b..d1d489f8 160000 --- a/vendor/grammars/graphviz.tmbundle +++ b/vendor/grammars/graphviz.tmbundle @@ -1 +1 @@ -Subproject commit 2760230b50dbec25906db1504604b37885a53fef +Subproject commit d1d489f893a0e6ef5d9021bf7dc1ffd08b3f9b90 diff --git a/vendor/grammars/haskell.tmbundle b/vendor/grammars/haskell.tmbundle index 30fa1e28..c3137ccc 160000 --- a/vendor/grammars/haskell.tmbundle +++ b/vendor/grammars/haskell.tmbundle @@ -1 +1 @@ -Subproject commit 30fa1e283244960e520694d8db6189d9b2bde9f5 +Subproject commit c3137ccc287c096f6436a80d71b32348df1102cc diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 50c5aa0e..ece380e5 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 50c5aa0e10f277f83dfe3d0e269a1043271be4df +Subproject commit ece380e599b075255285ee7be0ec4b1a787fd6f8 diff --git a/vendor/grammars/html.tmbundle b/vendor/grammars/html.tmbundle index 4831b07b..e87e8de6 160000 --- a/vendor/grammars/html.tmbundle +++ b/vendor/grammars/html.tmbundle @@ -1 +1 @@ -Subproject commit 4831b07b7211d34ab5570bbf877690cf4fefc9ef +Subproject commit e87e8de6486a509bf304bba264a9fd2370f4ca64 diff --git a/vendor/grammars/idl.tmbundle b/vendor/grammars/idl.tmbundle index 95f17ac4..91baae91 160000 --- a/vendor/grammars/idl.tmbundle +++ b/vendor/grammars/idl.tmbundle @@ -1 +1 @@ -Subproject commit 95f17ac40b99ace47a26e7751c7b5de45b13b1c0 +Subproject commit 91baae9134c2de3b6f48f902c5fb64ed8b384894 diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index b061f52f..9ad91309 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit b061f52fb369cc0b483cc1ddc4cd0fc088615754 +Subproject commit 9ad91309a4e5bbe87fdc0e1e660a82aa94be1794 diff --git a/vendor/grammars/java.tmbundle b/vendor/grammars/java.tmbundle index ccdebdf8..bed5760a 160000 --- a/vendor/grammars/java.tmbundle +++ b/vendor/grammars/java.tmbundle @@ -1 +1 @@ -Subproject commit ccdebdf888400c492ea55884e03a8f9d1b61de8b +Subproject commit bed5760ae0ca4784fc153e0323978a096ea656dc diff --git a/vendor/grammars/javadoc.tmbundle b/vendor/grammars/javadoc.tmbundle deleted file mode 160000 index 5276d7a9..00000000 --- a/vendor/grammars/javadoc.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5276d7a93f0cf53b7d425c39c6968b09ea9f2d40 diff --git a/vendor/grammars/jflex.tmbundle b/vendor/grammars/jflex.tmbundle new file mode 160000 index 00000000..12a7a88b --- /dev/null +++ b/vendor/grammars/jflex.tmbundle @@ -0,0 +1 @@ +Subproject commit 12a7a88b7a34bb9490b6077ad743332acf66a456 diff --git a/vendor/grammars/jquery-tmbundle b/vendor/grammars/jquery-tmbundle deleted file mode 160000 index ff14cd28..00000000 --- a/vendor/grammars/jquery-tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ff14cd28e36772d13de16606903b36a091ffeb33 diff --git a/vendor/grammars/kotlin-sublime-package b/vendor/grammars/kotlin-sublime-package index e8e18955..3ddc52e8 160000 --- a/vendor/grammars/kotlin-sublime-package +++ b/vendor/grammars/kotlin-sublime-package @@ -1 +1 @@ -Subproject commit e8e18955d7f18d42574dc55a37e6f31339036800 +Subproject commit 3ddc52e8dbc8bef1f1a534b94bd0f688bc2a4422 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index bae6eee8..04e308ae 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit bae6eee8557c2158592ac485a7168ccd10fc6dfb +Subproject commit 04e308ae4c70d00eb38cb4d4211b5c27ae5bdce5 diff --git a/vendor/grammars/language-coffee-script b/vendor/grammars/language-coffee-script index d86c8963..99f29d25 160000 --- a/vendor/grammars/language-coffee-script +++ b/vendor/grammars/language-coffee-script @@ -1 +1 @@ -Subproject commit d86c8963dcee0ab811da05a175b2218045d0c124 +Subproject commit 99f29d259f8c51c3a56b0798d3e5c95cca370421 diff --git a/vendor/grammars/language-crystal b/vendor/grammars/language-crystal new file mode 160000 index 00000000..75462302 --- /dev/null +++ b/vendor/grammars/language-crystal @@ -0,0 +1 @@ +Subproject commit 754623023bd556b2bcb927dd8c1fd1ae4153e386 diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index d07ba8f1..8745f4e5 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit d07ba8f16818d95ff663929f8104f7c101cc3ae6 +Subproject commit 8745f4e5452d987baf3f84a5628b4e4c3a2b8efe diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 5f5df306..6202c4e3 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 5f5df3064c9dccbfd8dac8d260b0d4a843ac88a5 +Subproject commit 6202c4e34d23fd288b639dce598f61e728224077 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index d58edec6..6e9fb364 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit d58edec65539e014fa13579461df6bebc24250c0 +Subproject commit 6e9fb364cbc0d1558ce6af404c3de114ee07e1d4 diff --git a/vendor/grammars/language-jsoniq b/vendor/grammars/language-jsoniq new file mode 160000 index 00000000..7a971acf --- /dev/null +++ b/vendor/grammars/language-jsoniq @@ -0,0 +1 @@ +Subproject commit 7a971acf1c2001e6b2e9afc7b69b6ff8a2ae39ce diff --git a/vendor/grammars/language-ncl b/vendor/grammars/language-ncl new file mode 160000 index 00000000..ae46014e --- /dev/null +++ b/vendor/grammars/language-ncl @@ -0,0 +1 @@ +Subproject commit ae46014e687be08bc4a47012fe3f21a31c081b61 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 8daa1008..7271315c 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 8daa10089a14bacf2346bb16f31d1189489696e0 +Subproject commit 7271315c858451ad302ebce2c5db2eee528013cc diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index 98397197..c09554aa 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit 9839719721e3fb67c2df8461b2b296e6ff027e7f +Subproject commit c09554aa3c0917db42f90192501b17bad6d71073 diff --git a/vendor/grammars/language-xbase b/vendor/grammars/language-xbase new file mode 160000 index 00000000..86f0c6c3 --- /dev/null +++ b/vendor/grammars/language-xbase @@ -0,0 +1 @@ +Subproject commit 86f0c6c370c56c95d1b1ac9f3dbdca3b31d482bb diff --git a/vendor/grammars/language-yaml b/vendor/grammars/language-yaml index ce8b4414..ee5ab88f 160000 --- a/vendor/grammars/language-yaml +++ b/vendor/grammars/language-yaml @@ -1 +1 @@ -Subproject commit ce8b441467852f766a34d22ba6661099496e22e4 +Subproject commit ee5ab88f5907d9102524a70534e1f06f2f41ddfe diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 669040b8..2cae8202 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 669040b8936375e54fb208dfb56e2ed4a3945d76 +Subproject commit 2cae820272e4b88141fe3f06adfab620951952fb diff --git a/vendor/grammars/lisp.tmbundle b/vendor/grammars/lisp.tmbundle index 0c1d1baa..6d116d77 160000 --- a/vendor/grammars/lisp.tmbundle +++ b/vendor/grammars/lisp.tmbundle @@ -1 +1 @@ -Subproject commit 0c1d1baa16db1889aa7081bcda8ce9e5b4be85cd +Subproject commit 6d116d77b6e3d6b04d863c558527008db482b48a diff --git a/vendor/grammars/mercury-tmlanguage b/vendor/grammars/mercury-tmlanguage index 1cb8e949..cb57d42d 160000 --- a/vendor/grammars/mercury-tmlanguage +++ b/vendor/grammars/mercury-tmlanguage @@ -1 +1 @@ -Subproject commit 1cb8e94922803658040bc29aa732c1671e2afe5b +Subproject commit cb57d42dbe343d3809c3dd7946f28f6354a2687e diff --git a/vendor/grammars/ocaml.tmbundle b/vendor/grammars/ocaml.tmbundle index 903fc455..81589400 160000 --- a/vendor/grammars/ocaml.tmbundle +++ b/vendor/grammars/ocaml.tmbundle @@ -1 +1 @@ -Subproject commit 903fc455163c90d38db77c47ca636392550967f0 +Subproject commit 8158940052861bcf90c28f343dff2c50ab440b3f diff --git a/vendor/grammars/openscad.tmbundle b/vendor/grammars/openscad.tmbundle new file mode 160000 index 00000000..4b2bc0a8 --- /dev/null +++ b/vendor/grammars/openscad.tmbundle @@ -0,0 +1 @@ +Subproject commit 4b2bc0a8e100d8f0350fd74f6c40dd956c118355 diff --git a/vendor/grammars/oracle.tmbundle b/vendor/grammars/oracle.tmbundle new file mode 160000 index 00000000..1da31563 --- /dev/null +++ b/vendor/grammars/oracle.tmbundle @@ -0,0 +1 @@ +Subproject commit 1da315635f75d1af57056c5c13221d4a95264e6f diff --git a/vendor/grammars/perl.tmbundle b/vendor/grammars/perl.tmbundle index 3396190b..fd81fe58 160000 --- a/vendor/grammars/perl.tmbundle +++ b/vendor/grammars/perl.tmbundle @@ -1 +1 @@ -Subproject commit 3396190be167310600d00da6ff9af7807cea4b12 +Subproject commit fd81fe586b928b4c2852b43472b37bdc45a6d074 diff --git a/vendor/grammars/php-smarty.tmbundle b/vendor/grammars/php-smarty.tmbundle index cbcdb59c..3e673e19 160000 --- a/vendor/grammars/php-smarty.tmbundle +++ b/vendor/grammars/php-smarty.tmbundle @@ -1 +1 @@ -Subproject commit cbcdb59cb3590417d63efd8f30f07ac9eaa8143d +Subproject commit 3e673e1980437e2fa394a3628258a61bf02d8ab7 diff --git a/vendor/grammars/php.tmbundle b/vendor/grammars/php.tmbundle index 7178a102..1cba1ac4 160000 --- a/vendor/grammars/php.tmbundle +++ b/vendor/grammars/php.tmbundle @@ -1 +1 @@ -Subproject commit 7178a102ce62352d3512301f62ddec8157cd0d8a +Subproject commit 1cba1ac4a9ffa301b1d92b735c298fcb60cc3e3a diff --git a/vendor/grammars/powershell b/vendor/grammars/powershell index 84fd9726..18c9f0e5 160000 --- a/vendor/grammars/powershell +++ b/vendor/grammars/powershell @@ -1 +1 @@ -Subproject commit 84fd97265c93abcd52de5915b4cf1179cc508373 +Subproject commit 18c9f0e553f68053713503b8dcca2c4712381ad6 diff --git a/vendor/grammars/r.tmbundle b/vendor/grammars/r.tmbundle index d602893b..44691a07 160000 --- a/vendor/grammars/r.tmbundle +++ b/vendor/grammars/r.tmbundle @@ -1 +1 @@ -Subproject commit d602893b72cb79611363b10efaeed8480a3e96d6 +Subproject commit 44691a07734715b11a130a4af409508f53f83aa1 diff --git a/vendor/grammars/restructuredtext.tmbundle b/vendor/grammars/restructuredtext.tmbundle index 43fc7b1f..608d8bcd 160000 --- a/vendor/grammars/restructuredtext.tmbundle +++ b/vendor/grammars/restructuredtext.tmbundle @@ -1 +1 @@ -Subproject commit 43fc7b1ff351d6733f7ce136aafe3091e77b4347 +Subproject commit 608d8bcdea179d4bf3def6244e0d9cf7705f2fea diff --git a/vendor/grammars/ruby-on-rails-tmbundle b/vendor/grammars/ruby-on-rails-tmbundle deleted file mode 160000 index 0981c4c2..00000000 --- a/vendor/grammars/ruby-on-rails-tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0981c4c2edac25b4451b396380d6bf48e0ef8bd0 diff --git a/vendor/grammars/sas.tmbundle b/vendor/grammars/sas.tmbundle index aefac510..43a05b10 160000 --- a/vendor/grammars/sas.tmbundle +++ b/vendor/grammars/sas.tmbundle @@ -1 +1 @@ -Subproject commit aefac51088df579fec4df0e3d8459f31b461d60f +Subproject commit 43a05b10fc76b34946a1188fd2a9c2171dbf3fe4 diff --git a/vendor/grammars/sass-textmate-bundle b/vendor/grammars/sass-textmate-bundle index 8444f979..95e492c5 160000 --- a/vendor/grammars/sass-textmate-bundle +++ b/vendor/grammars/sass-textmate-bundle @@ -1 +1 @@ -Subproject commit 8444f9796e7610f7f930e9ed7cae3093d5ce7805 +Subproject commit 95e492c5e85454ba005658cdb475710a2e96c63f diff --git a/vendor/grammars/smali-sublime b/vendor/grammars/smali-sublime new file mode 160000 index 00000000..b9eba913 --- /dev/null +++ b/vendor/grammars/smali-sublime @@ -0,0 +1 @@ +Subproject commit b9eba913977b95ac2880909d0c647003f1908172 diff --git a/vendor/grammars/sublime-better-typescript b/vendor/grammars/sublime-better-typescript index b956adec..8c0bd800 160000 --- a/vendor/grammars/sublime-better-typescript +++ b/vendor/grammars/sublime-better-typescript @@ -1 +1 @@ -Subproject commit b956adec0a0a48c6e637935bbb87fbe6155d46a8 +Subproject commit 8c0bd800d91a1c032f81d17055150482262085b5 diff --git a/vendor/grammars/sublime-idris b/vendor/grammars/sublime-idris index 5e936d1c..77166c0a 160000 --- a/vendor/grammars/sublime-idris +++ b/vendor/grammars/sublime-idris @@ -1 +1 @@ -Subproject commit 5e936d1c924c0edaead59a82bd9e9c1456eef61b +Subproject commit 77166c0ac40fbb9744b467976efa4969d9a7a65c diff --git a/vendor/grammars/sublime-mask b/vendor/grammars/sublime-mask index 6f12d284..819f743e 160000 --- a/vendor/grammars/sublime-mask +++ b/vendor/grammars/sublime-mask @@ -1 +1 @@ -Subproject commit 6f12d2841d008fb02eee912485cebcad7151d4f0 +Subproject commit 819f743efdcfa0d90a5b935cfaad799bd4ca7e6a diff --git a/vendor/grammars/sublime-netlinx b/vendor/grammars/sublime-netlinx new file mode 160000 index 00000000..a1093189 --- /dev/null +++ b/vendor/grammars/sublime-netlinx @@ -0,0 +1 @@ +Subproject commit a109318915751ff318de4b4d3bfc34ee57cec921 diff --git a/vendor/grammars/sublime-nginx b/vendor/grammars/sublime-nginx index eee371d7..ba28d29d 160000 --- a/vendor/grammars/sublime-nginx +++ b/vendor/grammars/sublime-nginx @@ -1 +1 @@ -Subproject commit eee371d7f4d688c6ccac0322c63506080e873131 +Subproject commit ba28d29de729f01d39a29fa214a6818112b48803 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index 40df3591..386d8fcd 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit 40df35916158b680eb3d9acb9080a03f7799144c +Subproject commit 386d8fcdc522d469c0d451f383f5b4aaaec7369f diff --git a/vendor/grammars/sublime-tea b/vendor/grammars/sublime-tea index b5f1025e..62b508c9 160000 --- a/vendor/grammars/sublime-tea +++ b/vendor/grammars/sublime-tea @@ -1 +1 @@ -Subproject commit b5f1025e074a29d3d1e133fc0e1b59b1adec986c +Subproject commit 62b508c948bd7c500a80a898a8fa05bdc311c9d1 diff --git a/vendor/grammars/sublime-text-ox b/vendor/grammars/sublime-text-ox index 10ca8836..ed96fb6a 160000 --- a/vendor/grammars/sublime-text-ox +++ b/vendor/grammars/sublime-text-ox @@ -1 +1 @@ -Subproject commit 10ca88362c6e4853744fc6b17ed06cc45dc033fa +Subproject commit ed96fb6afc0321c7d3ce219d69b56c591f0938a0 diff --git a/vendor/grammars/sublime-varnish b/vendor/grammars/sublime-varnish new file mode 160000 index 00000000..4915dcb3 --- /dev/null +++ b/vendor/grammars/sublime-varnish @@ -0,0 +1 @@ +Subproject commit 4915dcb3f130b0aedb96badffd963294194f1efe diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index 4be198de..e7ec606b 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit 4be198de811d856e3f67ea04d7626ce82aff3dcb +Subproject commit e7ec606b51ddd69517f51fd40adb7eb15d1df961 diff --git a/vendor/grammars/text.tmbundle b/vendor/grammars/text.tmbundle deleted file mode 160000 index 961652ad..00000000 --- a/vendor/grammars/text.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 961652ad957678e75b533406de1be5bd7f489063 diff --git a/vendor/grammars/textile.tmbundle b/vendor/grammars/textile.tmbundle deleted file mode 160000 index 6951fec2..00000000 --- a/vendor/grammars/textile.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6951fec27ccefe4245b76fda33987e746b91758a diff --git a/vendor/grammars/textmate.tmbundle b/vendor/grammars/textmate.tmbundle deleted file mode 160000 index 49270318..00000000 --- a/vendor/grammars/textmate.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 49270318d53923faba4fa81d56f121b5618239f0 diff --git a/vendor/grammars/toml.tmbundle b/vendor/grammars/toml.tmbundle index cda2b74d..d261ef63 160000 --- a/vendor/grammars/toml.tmbundle +++ b/vendor/grammars/toml.tmbundle @@ -1 +1 @@ -Subproject commit cda2b74d0d40c841c573eae9c5e9edd7621d8d90 +Subproject commit d261ef630a6025c6ee518762715086bc22209c41 diff --git a/vendor/grammars/xc.tmbundle b/vendor/grammars/xc.tmbundle new file mode 160000 index 00000000..309d1f66 --- /dev/null +++ b/vendor/grammars/xc.tmbundle @@ -0,0 +1 @@ +Subproject commit 309d1f662ca32513d3eed19f44ce4ef1d6f5f611 From 4c66582f877c1846bdab00496543c3a038e867c6 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 29 Jul 2015 14:27:35 +0100 Subject: [PATCH 582/875] Grammars update --- vendor/grammars/Handlebars | 2 +- vendor/grammars/LiveScript.tmbundle | 2 +- vendor/grammars/SMT.tmbundle | 2 +- vendor/grammars/api-blueprint-sublime-plugin | 2 +- vendor/grammars/asciidoc.tmbundle | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/atom-salt | 2 +- vendor/grammars/chapel-tmbundle | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/html.tmbundle | 2 +- vendor/grammars/jade-tmbundle | 2 +- vendor/grammars/java.tmbundle | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/language-xbase | 2 +- vendor/grammars/language-yaml | 2 +- vendor/grammars/llvm.tmbundle | 2 +- vendor/grammars/moonscript-tmbundle | 2 +- vendor/grammars/sublime-cirru | 2 +- vendor/grammars/sublime_cobol | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 85c88773..64f29314 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 85c88773e83e437187bc9c924257f8e41caa63cf +Subproject commit 64f293140c16666bc1fc7b91d14388d5c3f66d8c diff --git a/vendor/grammars/LiveScript.tmbundle b/vendor/grammars/LiveScript.tmbundle index 801cfac6..92d0a7c4 160000 --- a/vendor/grammars/LiveScript.tmbundle +++ b/vendor/grammars/LiveScript.tmbundle @@ -1 +1 @@ -Subproject commit 801cfac6023c43b03354bd6b0fb79aeb02ebd779 +Subproject commit 92d0a7c47cd7913fce9b81627adfce6594de1a92 diff --git a/vendor/grammars/SMT.tmbundle b/vendor/grammars/SMT.tmbundle index 5b8231f5..b72f1aef 160000 --- a/vendor/grammars/SMT.tmbundle +++ b/vendor/grammars/SMT.tmbundle @@ -1 +1 @@ -Subproject commit 5b8231f5165f0a2147445783705e99f468be7a84 +Subproject commit b72f1aef2c841ac2f9ff444e98a139011bd910b3 diff --git a/vendor/grammars/api-blueprint-sublime-plugin b/vendor/grammars/api-blueprint-sublime-plugin index e5289f42..550417b9 160000 --- a/vendor/grammars/api-blueprint-sublime-plugin +++ b/vendor/grammars/api-blueprint-sublime-plugin @@ -1 +1 @@ -Subproject commit e5289f429be68c1ab5df4ca099578eaa84e41dc8 +Subproject commit 550417b9bbbd833b57b5917b48ca0fef9ed52190 diff --git a/vendor/grammars/asciidoc.tmbundle b/vendor/grammars/asciidoc.tmbundle index 2d3f7a4f..0c93369d 160000 --- a/vendor/grammars/asciidoc.tmbundle +++ b/vendor/grammars/asciidoc.tmbundle @@ -1 +1 @@ -Subproject commit 2d3f7a4f58bf626ca7c47112cdf346128851e0d3 +Subproject commit 0c93369ddd920629bc97bf10e7270d8ec0d0463b diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index 2a531a5f..74270382 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit 2a531a5f7aeb8d7f6ccc99e4cbd6f564a47a7322 +Subproject commit 74270382c47d3f0729ec52c3fdb875c1565e51d1 diff --git a/vendor/grammars/atom-salt b/vendor/grammars/atom-salt index 6d6bdc1b..77257d25 160000 --- a/vendor/grammars/atom-salt +++ b/vendor/grammars/atom-salt @@ -1 +1 @@ -Subproject commit 6d6bdc1be1a43201b5f78a4f89ea9bfc7416df11 +Subproject commit 77257d25b4aa8d99851b987c44bbd0e53f21f69d diff --git a/vendor/grammars/chapel-tmbundle b/vendor/grammars/chapel-tmbundle index 03c5d256..4c9bc68a 160000 --- a/vendor/grammars/chapel-tmbundle +++ b/vendor/grammars/chapel-tmbundle @@ -1 +1 @@ -Subproject commit 03c5d25641aef5809d0ce8ce28790c96afe174b5 +Subproject commit 4c9bc68a518330e6930ed7b9edfa04e6b5f7b149 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index f7953e41..e6551b27 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit f7953e41fdf40e49113852b07146478783f08139 +Subproject commit e6551b27e30960a272758afb7da323aa402d70e6 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 8fe7c037..3e3ac8cc 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 8fe7c0370b9d901d24b01cabc47ba7079c0cd5bd +Subproject commit 3e3ac8cc0366048a617a6056d7f6e2f1c8ccf4fe diff --git a/vendor/grammars/factor b/vendor/grammars/factor index a5fbd7e3..fba2eb9a 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit a5fbd7e3f89b1f09bd03312aababefb440db99a6 +Subproject commit fba2eb9ace79bb49386bb5969ab8902adee07aef diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index ece380e5..8f2c0e6d 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit ece380e599b075255285ee7be0ec4b1a787fd6f8 +Subproject commit 8f2c0e6d5e134cf5180ae95621c7d0f1765e4619 diff --git a/vendor/grammars/html.tmbundle b/vendor/grammars/html.tmbundle index e87e8de6..181a15de 160000 --- a/vendor/grammars/html.tmbundle +++ b/vendor/grammars/html.tmbundle @@ -1 +1 @@ -Subproject commit e87e8de6486a509bf304bba264a9fd2370f4ca64 +Subproject commit 181a15de244eb30f3d4df645dc1de38a7a420279 diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index 9ad91309..ad13ddaa 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit 9ad91309a4e5bbe87fdc0e1e660a82aa94be1794 +Subproject commit ad13ddaad0a8e41abc3d188cff43feb6b7147cf9 diff --git a/vendor/grammars/java.tmbundle b/vendor/grammars/java.tmbundle index bed5760a..5f420457 160000 --- a/vendor/grammars/java.tmbundle +++ b/vendor/grammars/java.tmbundle @@ -1 +1 @@ -Subproject commit bed5760ae0ca4784fc153e0323978a096ea656dc +Subproject commit 5f4204576e13a73c9dfce525d8ced41a39d004c3 diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 6202c4e3..13ca167d 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 6202c4e34d23fd288b639dce598f61e728224077 +Subproject commit 13ca167d14b5fc56a1404d214d22d113142b2399 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 6e9fb364..c2cb28f5 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 6e9fb364cbc0d1558ce6af404c3de114ee07e1d4 +Subproject commit c2cb28f520a1351f36387f3da4c5077e71c48d38 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 7271315c..80b45a83 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 7271315c858451ad302ebce2c5db2eee528013cc +Subproject commit 80b45a839ea86cacbec178d4e41b84a9b505012a diff --git a/vendor/grammars/language-xbase b/vendor/grammars/language-xbase index 86f0c6c3..3f77776e 160000 --- a/vendor/grammars/language-xbase +++ b/vendor/grammars/language-xbase @@ -1 +1 @@ -Subproject commit 86f0c6c370c56c95d1b1ac9f3dbdca3b31d482bb +Subproject commit 3f77776e98054b5ae53f13b14b4da1656497ce41 diff --git a/vendor/grammars/language-yaml b/vendor/grammars/language-yaml index ee5ab88f..3275f63c 160000 --- a/vendor/grammars/language-yaml +++ b/vendor/grammars/language-yaml @@ -1 +1 @@ -Subproject commit ee5ab88f5907d9102524a70534e1f06f2f41ddfe +Subproject commit 3275f63cb58ab37f925d9d3b64bfcdffc905e184 diff --git a/vendor/grammars/llvm.tmbundle b/vendor/grammars/llvm.tmbundle index 9f56fc54..9e3705a6 160000 --- a/vendor/grammars/llvm.tmbundle +++ b/vendor/grammars/llvm.tmbundle @@ -1 +1 @@ -Subproject commit 9f56fc54d3bc5c5cc8c202d9279e4bc61231086f +Subproject commit 9e3705a6e2bd51ae01d3963dd08bc42fc05d647f diff --git a/vendor/grammars/moonscript-tmbundle b/vendor/grammars/moonscript-tmbundle index 6f25231c..cf69300f 160000 --- a/vendor/grammars/moonscript-tmbundle +++ b/vendor/grammars/moonscript-tmbundle @@ -1 +1 @@ -Subproject commit 6f25231cfd1369293ea9c74db21c072bcb8ab2ce +Subproject commit cf69300f2a38d4c585bef4c5ad8543f5e258de8d diff --git a/vendor/grammars/sublime-cirru b/vendor/grammars/sublime-cirru index 4f34b670..c27a9604 160000 --- a/vendor/grammars/sublime-cirru +++ b/vendor/grammars/sublime-cirru @@ -1 +1 @@ -Subproject commit 4f34b67097262785277887151d04f9d67d3deb07 +Subproject commit c27a9604db7d3ddde6d91b16497532319058f7e0 diff --git a/vendor/grammars/sublime_cobol b/vendor/grammars/sublime_cobol index e7ec606b..bc8c0ff0 160000 --- a/vendor/grammars/sublime_cobol +++ b/vendor/grammars/sublime_cobol @@ -1 +1 @@ -Subproject commit e7ec606b51ddd69517f51fd40adb7eb15d1df961 +Subproject commit bc8c0ff073a91383aaa65024c105ad5e0755bcbf From 4b2abb2064787b7ff0321c43835014b33d5804bd Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 29 Jul 2015 14:50:11 +0100 Subject: [PATCH 583/875] Bumping to v4.5.10 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index ef3f734c..42be58e7 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.9" + VERSION = "4.5.10" end From 1c73db499fc11a20d780770524be7d2d383e722a Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Thu, 30 Jul 2015 11:31:06 +0100 Subject: [PATCH 584/875] Parse HCL as Ruby, not JavaScript --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 02170a79..b92dd6a0 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1273,8 +1273,8 @@ HCL: extensions: - .hcl - .tf - ace_mode: javascript - tm_scope: source.json + ace_mode: ruby + tm_scope: source.ruby HTML: type: markup From 208ec3906ff1ad60fd869713a51adcf5ddc54407 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 4 Aug 2015 12:06:41 +0100 Subject: [PATCH 585/875] Fixing up some new heuristics --- lib/linguist/heuristics.rb | 6 +++--- test/test_heuristics.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index d3cbc167..66980945 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -329,7 +329,7 @@ module Linguist end end - disambiguate "Groff", "Nemerle" do |data| + disambiguate ".n" do |data| if /^[.']/.match(data) Language["Groff"] elsif /^(module|namespace|using)\s/.match(data) @@ -337,7 +337,7 @@ module Linguist end end - disambiguate "GAS", "Groff" do |data| + disambiguate ".ms" do |data| if /^[.'][a-z][a-z](\s|$)/i.match(data) Language["Groff"] elsif /((^|\s)move?[. ])|\.(include|globa?l)\s/.match(data) @@ -345,7 +345,7 @@ module Linguist end end - disambiguate "xBase", "Charity" do |data| + disambiguate ".ch" do |data| if /^\s*#\s*(if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b/i.match(data) Language["xBase"] end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 33bdf161..94418b3b 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -176,7 +176,7 @@ class TestHeuristcs < Minitest::Test def test_ch_by_heuristics assert_heuristics({ - "xBase" => all_fixtures("xBase") + "xBase" => all_fixtures("xBase", ".ch") }) end end From 6b283068a9171524bcbbe4a99b22d926ae269c4c Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 4 Aug 2015 12:20:15 +0100 Subject: [PATCH 586/875] Adding back R/Rebol heuristics --- lib/linguist/heuristics.rb | 8 ++++++++ test/test_heuristics.rb | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 66980945..a6346005 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -350,5 +350,13 @@ module Linguist Language["xBase"] end end + + disambiguate ".r", ".R" do |data| + if /\bRebol\b/i.match(data) + Language["Rebol"] + elsif data.include?("<-") + Language["R"] + end + end end end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 94418b3b..59041e7b 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -179,4 +179,11 @@ class TestHeuristcs < Minitest::Test "xBase" => all_fixtures("xBase", ".ch") }) end + + def test_r_by_heuristics + assert_heuristics({ + "R" => all_fixtures("R", "*.r") + all_fixtures("R", "*.R"), + "Rebol" => all_fixtures("Rebol", "*.r") + }) + end end From cf8521a629bdb1cbf08e82c68aa8c4dedb49930a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 4 Aug 2015 13:18:27 +0100 Subject: [PATCH 587/875] Grammar updates --- vendor/grammars/IDL-Syntax | 2 +- vendor/grammars/Lean.tmbundle | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/Vala-TMBundle | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-coffee-script | 2 +- vendor/grammars/language-csharp | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/language-yaml | 2 +- vendor/grammars/swift.tmbundle | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/vendor/grammars/IDL-Syntax b/vendor/grammars/IDL-Syntax index ee1bded3..bb21604f 160000 --- a/vendor/grammars/IDL-Syntax +++ b/vendor/grammars/IDL-Syntax @@ -1 +1 @@ -Subproject commit ee1bded38ba22716c3fb916795ca6d18f766f014 +Subproject commit bb21604f07b5ad322757f04f7292df4f50442ad0 diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle index dc33b945..fb115154 160000 --- a/vendor/grammars/Lean.tmbundle +++ b/vendor/grammars/Lean.tmbundle @@ -1 +1 @@ -Subproject commit dc33b9450f71cb1cfb5b9b1ad53d5afd6f62fbef +Subproject commit fb1151547aebacdb474c2e14ad74d2aa6548e2f0 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index 4acce8b6..b0c92d3f 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit 4acce8b67be537df6e23e9aab92c0427c37437a5 +Subproject commit b0c92d3faedeefcfe76c560f28980450811e2f5b diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index db148999..51807687 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit db1489994863ca9adda545bf7c728d9e4fb7382c +Subproject commit 51807687119bab674996669a6f589bf94b911522 diff --git a/vendor/grammars/Vala-TMBundle b/vendor/grammars/Vala-TMBundle index bb84dccd..1c5ebb62 160000 --- a/vendor/grammars/Vala-TMBundle +++ b/vendor/grammars/Vala-TMBundle @@ -1 +1 @@ -Subproject commit bb84dccd11ef7edd01882367e241bdcbfcf164bc +Subproject commit 1c5ebb62d11e01d145b414355de72d4de8758ed8 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index 74270382..121ff71b 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit 74270382c47d3f0729ec52c3fdb875c1565e51d1 +Subproject commit 121ff71b30b4d78978fb52b331ef05600575c019 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index fba2eb9a..abb8bd74 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit fba2eb9ace79bb49386bb5969ab8902adee07aef +Subproject commit abb8bd74b97d7ed84ca0cd7bf03f8280f27682af diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 8f2c0e6d..c1ef469b 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 8f2c0e6d5e134cf5180ae95621c7d0f1765e4619 +Subproject commit c1ef469bf3b1166180f64343f47d6cee73ddd4fa diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index 04e308ae..19522d6a 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit 04e308ae4c70d00eb38cb4d4211b5c27ae5bdce5 +Subproject commit 19522d6acbb40d231a209338755bab71e4500fa0 diff --git a/vendor/grammars/language-coffee-script b/vendor/grammars/language-coffee-script index 99f29d25..e9f47f0f 160000 --- a/vendor/grammars/language-coffee-script +++ b/vendor/grammars/language-coffee-script @@ -1 +1 @@ -Subproject commit 99f29d259f8c51c3a56b0798d3e5c95cca370421 +Subproject commit e9f47f0f5517b77ebb1a3cb9bdbd4fdf97ff5caa diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index 8745f4e5..79fe8b57 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit 8745f4e5452d987baf3f84a5628b4e4c3a2b8efe +Subproject commit 79fe8b57647c0e565af89a051b6b62137b094bbd diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 13ca167d..c8158a6d 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 13ca167d14b5fc56a1404d214d22d113142b2399 +Subproject commit c8158a6d4b779842b5f3d95d023f96748904d551 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index c2cb28f5..2766ff30 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit c2cb28f520a1351f36387f3da4c5077e71c48d38 +Subproject commit 2766ff3052615016e53298ee715e221cd740b5a3 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 80b45a83..7d38baf8 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 80b45a839ea86cacbec178d4e41b84a9b505012a +Subproject commit 7d38baf80b89c1dc58e77f8a12763c5d18d5e1e5 diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index c09554aa..cb582fd0 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit c09554aa3c0917db42f90192501b17bad6d71073 +Subproject commit cb582fd056f91f19d265a3d0db0e161da52031ed diff --git a/vendor/grammars/language-yaml b/vendor/grammars/language-yaml index 3275f63c..1f5a5b2d 160000 --- a/vendor/grammars/language-yaml +++ b/vendor/grammars/language-yaml @@ -1 +1 @@ -Subproject commit 3275f63cb58ab37f925d9d3b64bfcdffc905e184 +Subproject commit 1f5a5b2db026450d46c56c7263835634a4c886cc diff --git a/vendor/grammars/swift.tmbundle b/vendor/grammars/swift.tmbundle index 4b3af145..75a3dea1 160000 --- a/vendor/grammars/swift.tmbundle +++ b/vendor/grammars/swift.tmbundle @@ -1 +1 @@ -Subproject commit 4b3af145fedd1df488e28e6ae6249530d6a4389c +Subproject commit 75a3dea1841cd153c71101fa30841a269ab3c6a7 From 0a6165c4d94d451adaf6041ecf96c8748823ce1d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 4 Aug 2015 13:27:21 +0100 Subject: [PATCH 588/875] Updating csharp scopes --- grammars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/grammars.yml b/grammars.yml index a1bd7069..c64f08a9 100644 --- a/grammars.yml +++ b/grammars.yml @@ -320,6 +320,7 @@ vendor/grammars/language-coffee-script: vendor/grammars/language-crystal: - source.crystal vendor/grammars/language-csharp: +- source.cake - source.cs - source.csx - source.nant-build From 8ae32e1d479c72debd5dd28eadfb1c97d9b6d884 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 4 Aug 2015 13:29:52 +0100 Subject: [PATCH 589/875] Bumping version to v4.5.11 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 42be58e7..0265e2b0 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.10" + VERSION = "4.5.11" end From eb0bf16cce4b41c1ada6c031c37414c41deb9ceb Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 4 Aug 2015 17:28:52 +0200 Subject: [PATCH 590/875] Case-insensitive extension match for heuristic rules --- lib/linguist/heuristics.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index a6346005..fc8699c5 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -56,7 +56,7 @@ module Linguist # Internal: Check if this heuristic matches the candidate languages. def matches?(filename) - @extensions.any? { |ext| filename.end_with?(ext) } + @extensions.any? { |ext| filename.downcase.end_with?(ext) } end # Internal: Perform the heuristic @@ -351,7 +351,7 @@ module Linguist end end - disambiguate ".r", ".R" do |data| + disambiguate ".r" do |data| if /\bRebol\b/i.match(data) Language["Rebol"] elsif data.include?("<-") From d2297f55169b5f354ab9b6e06e622ee4be46966e Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 4 Aug 2015 21:56:11 +0100 Subject: [PATCH 591/875] Adding Slim tm_scope --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 04460e3b..a75a12fe 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3181,6 +3181,7 @@ Slim: color: "#ff8f77" extensions: - .slim + tm_scope: text.slim ace_mode: text Smali: From d94f427e125040493d82aff3c74afe4e3933d5c9 Mon Sep 17 00:00:00 2001 From: Arthur Helfstein Fragoso Date: Wed, 5 Aug 2015 05:06:11 -0300 Subject: [PATCH 592/875] xBase: Add aliases and extension .prw xBase: Add aliases: * advpl * clipper * foxpro And the extension .prw --- lib/linguist/languages.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a75a12fe..1b31c0bb 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3822,8 +3822,13 @@ wisp: xBase: type: programming color: "#403a40" + aliases: + - advpl + - clipper + - foxpro extensions: - .prg + - .prw - .ch tm_scope: source.harbour ace_mode: text From 18eaf22cb912ea91dd3641cb4ba6e2d5065fd22a Mon Sep 17 00:00:00 2001 From: Arthur Helfstein Fragoso Date: Wed, 5 Aug 2015 05:19:41 -0300 Subject: [PATCH 593/875] Added xBase/AdvPL sample file --- samples/xBase/sample.prw | 512 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 512 insertions(+) create mode 100755 samples/xBase/sample.prw diff --git a/samples/xBase/sample.prw b/samples/xBase/sample.prw new file mode 100755 index 00000000..996e0218 --- /dev/null +++ b/samples/xBase/sample.prw @@ -0,0 +1,512 @@ + +/** + * This is a sample file for Linguist. + * It's written in AdvPL, a xBase Language. + * + * Author: Arthur Helfstein Fragoso + * + * This script has the specific use of integrating between a financial institution + * and other two companies in the process of creating Installment Bills for + * customers. + * + * The functions are called from the ERP Protheus TOTVS. + * + **/ + + + +#Include "TOPCONN.ch" +#include "tbiconn.ch" +#Include "Protheus.ch" +#Include "rwmake.ch" +#Include "FileIO.ch" +#Include "json.ch" +#Include "utils.ch" + + +//////////////////////// +// Faturando (Reparcelando) +// FA280 +// FA280_01 +// + +User Function FA280() + + //Executado uma vez para cada parcela + + If cEmpAnt == '06' + + SE5->(dbSelectArea("SE5")) + + cSet3Filter := "SE5->E5_FATURA == SE1->E1_NUM" + + SE5->(dbSetFilter( {|| &cSet3Filter }, cSet3Filter )) + SE5->(dbGoTOP()) + + aOrig06Tit := {} // = Todos os Titulos que ser�o reparcelados + nTotal := 0 + + While SE5->(!EOF()) + AADD(aOrig06Tit, {SE5->E5_PREFIXO, SE5->E5_NUMERO, SE5->E5_VALOR}) + nTotal += SE5->E5_VALOR + SE5->(dbSkip()) + End + + aNovoTitulo:= {;//{"E1_FILIAL" ,SE1ORIG->E1_FILIAL ,Nil},; + ;//{"E1_PREFIXO" ,SE1->E1_PREFIXO ,Nil},; + {"E1_NUM" ,SE1->E1_NUM ,Nil},; + {"E1_TIPO" ,SE1->E1_TIPO ,Nil},; + {"E1_PARCELA" ,SE1->E1_PARCELA ,Nil},; + {"E1_NATUREZ" ,SE1->E1_NATUREZ ,Nil},; + {"E1_CLIENTE" ,SE1->E1_CLIENTE ,Nil},; + {"E1_LOJA" ,SE1->E1_LOJA ,Nil},; + {"E1_NRDOC" ,SE1->E1_NRDOC ,Nil},; + ;//{"E1_X_COD" ,SE1->E1_NATUREZ ,Nil},; + {"E1_EMISSAO" ,SE1->E1_EMISSAO ,Nil},; + {"E1_VENCTO" ,SE1->E1_VENCTO ,Nil},; + {"E1_VENCREA" ,SE1->E1_VENCREA ,Nil},; + ;//{"E1_VALOR" ,SE1->E1_VALOR ,Nil},; + ;//{"E1_SALDO" ,SE1->E1_SALDO ,Nil},; + ;//{"E1_VLCRUZ" ,SE1->E1_VLCRUZ ,Nil},; + {"E1_PORTADO" ,SE1->E1_PORTADO ,Nil},; + {"E1_FATURA" ,SE1->E1_FATURA ,Nil},; + {"E1_X_DTPAV" ,SE1->E1_X_DTPAV ,Nil},; + {"E1_X_DTSAV" ,SE1->E1_X_DTSAV ,Nil},; + {"E1_X_DTTAV" ,SE1->E1_X_DTTAV ,Nil},; + {"E1_X_DTSPC" ,SE1->E1_X_DTSPC ,Nil},; + {"E1_X_DTPRO" ,SE1->E1_X_DTPRO ,Nil},; + {"E1_NUMBCO" ,SE1->E1_NUMBCO ,Nil},; + {"E1_X_DUDME" ,SE1->E1_X_DUDME ,Nil},; + {"E1_X_TIPOP" ,SE1->E1_X_TIPOP ,Nil},; + {"E1_X_DTCAN" ,SE1->E1_X_DTCAN ,Nil},; + {"E1_X_MOTIV" ,SE1->E1_X_MOTIV ,Nil},; + {"E1_X_DESPC" ,SE1->E1_X_DESPC ,Nil},; + {"E1_NUMNOTA" ,SE1->E1_NUMNOTA ,Nil},; + {"E1_SERIE" ,SE1->E1_SERIE ,Nil},; + {"E1_X_DEPRO" ,SE1->E1_X_DEPRO ,Nil},; + {"E1_X_TPPAI" ,SE1->E1_X_TPPAI ,Nil},; + {"E1_X_CGC" ,SE1->E1_X_CGC ,Nil},; + {"E1_XTPEMP" ,SE1->E1_XTPEMP ,Nil},; + {"E1_X_CTRIM" ,SE1->E1_X_CTRIM ,Nil}} + + StartJob("U_FA280_01",getenvserver(),.T., SE1->E1_PREFIXO ,SE1->E1_NUM, SE1->E1_TIPO, SE1->E1_VALOR, aOrig06Tit, nTotal, SE1->E1_PARCELA, aNovoTitulo) + + SE5->(dbClearFilter()) + + EndIf + +Return nil + + +User Function FA280_01(cE1PREFIXO, cE1NUM, cE1TIPO, nE1Valor, aOrig06Tit, nTotal, cE1PARCELA, aNovoTitulo) + Local nValPar := nil + Local aTit05 := {} + + RpcSetType(3) // Nao consome licensa + + //Prepare Environment Empresa "01" Filial '0102' + // Muda de empresa + While !RpcSetEnv('01', '0102',,,,GetEnvServer(),{}) + Sleep(400) + End + + nFileLog := u_OpenLog("\Logs\FA280_"+dToS(dDataBase)+".log") + + fWrite(nFileLog,"----- FA280 -----"+CRLF) + + fWrite(nFileLog,cE1NUM+CRLF) + + nParcelas := round(nTotal/nE1Valor, 0) + + cUltima := '0'+ chr(64+nParcelas) + + fWrite(nFileLog,"valor das parcelas: "+ cvaltochar(nE1Valor) +CRLF) + fWrite(nFileLog,"parcelas: "+ cvaltochar(nParcelas) +CRLF) + fWrite(nFileLog,"parcela atual: "+ cE1PARCELA +CRLF) + fWrite(nFileLog,"ultima parcela: "+ cUltima +CRLF) + + n0102total := 0 + n0105total := 0 + + //Loop entre todos os Titulos que serão Reparcelados + + For nI := 1 To len(aOrig06Tit) + + fWrite(nFileLog,"E5_NUMERO: "+aOrig06Tit[nI][2] +CRLF) + + cQuery := "select * from SE1010 where E1_PREFIXO = '"+ aOrig06Tit[nI][1] +"' and E1_NUM = '"+ aOrig06Tit[nI][2] +"' and E1_TIPO = 'FAT' and D_E_L_E_T_ <> '*'" + + fWrite(nFileLog,cQuery +CRLF) + + If select("SE1ORIG") > 0 + SE1ORIG->(DbCloseArea()) + endif + TcQuery cQuery New Alias 'SE1ORIG' + dbSelectArea("SE1ORIG") + SE1ORIG->(DBGOTOP()) + + While SE1ORIG->(!EOF()) //Loop entre as duas filiais: 0102, 0105 + fWrite(nFileLog,"SE1ORIG loop: "+SE1ORIG->E1_FILIAL +CRLF) + cFilAnt := SE1ORIG->E1_FILIAL + + //Faz a baixa + if alltrim(SE1ORIG->E1_STATUS) == 'A' + fWrite(nFileLog, SE1ORIG->E1_FILIAL+" : Fazendo baixa" +CRLF) + + aBaixa := {{"E1_FILIAL" ,SE1ORIG->E1_FILIAL ,Nil},; + {"E1_PREFIXO" ,SE1ORIG->E1_PREFIXO ,Nil},; + {"E1_NUM" ,SE1ORIG->E1_NUM ,Nil},; + {"E1_TIPO" ,SE1ORIG->E1_TIPO ,Nil},; + {"E1_PARCELA" ,SE1ORIG->E1_PARCELA ,Nil},; + {"E1_DESCONT" ,SE1ORIG->E1_DESCONT ,Nil},; + {"E1_JUROS" ,SE1ORIG->E1_JUROS ,Nil},; + {"E1_MULTA" ,SE1ORIG->E1_MULTA ,Nil},; + {"E1_VLRREAL" ,SE1ORIG->E1_VLRREAL ,Nil},; + {"AUTMOTBX" ,"FAT" ,Nil},; + {"AUTDTBAIXA" ,date() ,Nil},; + {"AUTDTCREDITO",date() ,Nil},; + {"AUTHIST" ,"Bx.Emis.Fat."+cE1NUM,Nil},; + {"AUTVALREC" ,SE1ORIG->E1_VALOR ,Nil}} + + + lMsErroAuto:=.F. //reseta lMsErroAuto + MSExecAuto ({|x,y| FINA070(x,y)},aBaixa, 3) + + If lMsErroAuto + + fWrite(nFileLog,SE1ORIG->E1_FILIAL+" : Não foi efetuada a baixa do titulo : "+CRLF+ MSErroString()+ CRLF + tojson(aBaixa) + CRLF) + return + else + + RECLOCK('SE5',.F.) + E5_FATURA := cE1NUM + E5_FATPREF:= cE1PREFIXO + //E5_LA = S + //E5_MOEDA = '' + //E5_TXMOEDA = 1 + MSUNLOCK() + RECLOCK('SE1',.F.) + E1_FATURA := cE1NUM + E1_FATPREF:= cE1PREFIXO + E1_TIPOFAT:= cE1TIPO + E1_FLAGFAT:= 'S' + E1_DTFATUR:= dDataBase + MSUNLOCK() + + fWrite(nFileLog,SE1ORIG->E1_FILIAL+" : baixa feita" +CRLF) + endif + + endif + + //calcula valor total de cada filial para poder calcular a Fatura + + if SE1ORIG->E1_FILIAL == '0102' + n0102total += SE1ORIG->E1_VALOR + elseif SE1ORIG->E1_FILIAL == '0105' + n0105total += SE1ORIG->E1_VALOR + else + fWrite(nFileLog,"Programa nao preparado para a filial "+SE1ORIG->E1_FILIAL +CRLF) + endif + + SE1ORIG->(dbskip()) + + End + + Next nI + + cFilAnt := '0102' + + fWrite(nFileLog,"Total 0102: "+cvaltochar(n0102total) +CRLF) + fWrite(nFileLog,"Total 0105: "+cvaltochar(n0105total) +CRLF) + + n0102val := round(nE1Valor * n0102total/nTotal, 2) + n0105val := nE1Valor - n0102val + + aFili := {} + + if n0102total > 0 + AADD(aFili,'0102') + endif + + if n0105total > 0 + AADD(aFili,'0105') + endif + + For nI := 1 To len(aFili) + + cQuery := "select COUNT(*) as QUANT, SUM(E1_VALOR) as TOTALINC from SE1010 where E1_NUM = '"+ cE1NUM +"' and E1_FILIAL='"+ aFili[nI] +"' and E1_PREFIXO = '"+ cE1PREFIXO +"' and D_E_L_E_T_ <> '*'" + + If select("PARC") > 0 + PARC->(DbCloseArea()) + endif + TcQuery cQuery New Alias 'PARC' + dbSelectArea("PARC") + + //verificamos se estamos na ultima parcela + if PARC->QUANT == nParcelas -1 //QUANT = quantidade de parcelas incluida + fWrite(nFileLog,"Ultima Parcela"+CRLF) + //o valor desta será o valor que resta + nValPar := SE1ORIG->E1_VALOR - PARC->TOTALINC + + if aFili[nI] == '0102' + n0102val := n0102total - PARC->TOTALINC + elseif aFili[nI] == '0105' + n0105val := n0105total - PARC->TOTALINC + endif + endif + + Next nI + + fWrite(nFileLog,"Total 0102: "+cvaltochar(n0102total) + " -> Parcela de: "+cvaltochar(n0102val) +CRLF) + fWrite(nFileLog,"Total 0105: "+cvaltochar(n0105total) + " -> Parcela de: "+cvaltochar(n0105val) +CRLF) + + ///////////////// + + For nI := 1 To len(aFili) + + if aFili[nI] == '0102' + nValPar := n0102val + elseif aFili[nI] == '0105' + nValPar := n0105val + endif + + aTitulo := ACLONE(aNovoTitulo) + + AADD(aTitulo, {"E1_PREFIXO" ,cE1PREFIXO ,Nil}) + AADD(aTitulo, {"E1_FILIAL" ,aFili[nI] ,Nil}) + AADD(aTitulo, {"E1_VALOR" ,nValPar ,Nil}) + AADD(aTitulo, {"E1_SALDO" ,nValPar ,Nil}) + AADD(aTitulo, {"E1_VLCRUZ" ,nValPar ,Nil}) + + lMsErroAuto := .F. + + if aFili[nI] == '0102' + + MSExecAuto({|x,y| FINA040(x,y)},aTitulo,3) //Inclusao + + If lMsErroAuto + fWrite(nFileLog,"Erro " + CRLF) + fWrite(nFileLog,"Erro ao incluir titulo: "+CRLF+ MSErroString()+ CRLF + tojson(aTitulo) + CRLF) + return + else + fWrite(nFileLog,"Sucesso "+ CRLF) + fWrite(nFileLog,"Titulo incluido: "+ aFili[nI] +" : " + cValToChar(nValPar) +CRLF) + endif + + elseif aFili[nI] == '0105' + fWrite(nFileLog,"Salvando titulos 05 para o final "+aFili[nI]+CRLF) + //StartJob("U_JOBF040",getenvserver(),.T., SE1ORIG->E1_FILIAL, aTitulo) + AADD(aTit05, aTitulo) + //fWrite(nFileLog,"passou pela thread "+CRLF) + else + fWrite(nFileLog,"Erro, filial nao tratada "+aFili[nI]+CRLF) + endif + + Next nI + + + Reset Environment + + While !RpcSetEnv('01', '0105',,,,GetEnvServer(),{}) + Sleep(400) + End + + For nI := 1 To len(aTit05) + + lMsErroAuto := .F. + + MSExecAuto({|x,y| FINA040(x,y)},aTit05[nI],3) //Inclusao + + If lMsErroAuto + fWrite(nFileLog,"Erro " + CRLF) + fWrite(nFileLog,"Erro ao incluir titulo: "+CRLF+ MSErroString()+ CRLF + tojson(aTit05[nI]) + CRLF) + return + else + fWrite(nFileLog,"Sucesso "+ CRLF) + fWrite(nFileLog,"Titulo incluido: "+CRLF) + endif + + Next nI + + Reset Environment + + fClose(nFileLog) + +Return + + + + +//////////////////////// +// Cancelamento da Fatura (Cancelamento do Reparcelamento) +// F280PCAN +// JOBF280C +// + +User Function F280PCAN() + + /** + * cFatCan - numero da fatura + * cPrefCan - prefixo + * cTipoCan - tipo + **/ + + If cEmpAnt == '06' + + StartJob("U_JOBF280C",getenvserver(),.T., cPrefCan, cFatCan, cTipoCan) + + EndIf + +Return .T. + + +User Function JOBF280C(cPrefCan, cFatCan, cTipoCan) + + RpcSetType(3) // Nao consome licensa + + While !RpcSetEnv('01', '0102',,,,GetEnvServer(),{}) + Sleep(400) + End + + nFileLog := u_OpenLog("\Logs\F280PCAN_"+dToS(dDataBase)+".log") + + fWrite(nFileLog,"----- F280PCAN -----"+CRLF) + + fWrite(nFileLog,"E1_PREFIXO = '"+ cPrefCan +"' and E1_NUM = '"+ cFatCan +"' and E1_TIPO = '"+ cTipoCan +"'"+CRLF) + + cQuery := "select * from SE1010 where E1_PREFIXO = '"+ cPrefCan +"' and E1_NUM = '"+ cFatCan +"' and E1_TIPO = '"+ cTipoCan +"' and D_E_L_E_T_ <> '*'" + + If select("SE1ORIG") > 0 + SE1ORIG->(DbCloseArea()) + endif + TcQuery cQuery New Alias 'SE1ORIG' + dbSelectArea("SE1ORIG") + SE1ORIG->(DBGOTOP()) + + While SE1ORIG->(!EOF()) //Loop entre todas as parcelas e filiais + + SE1->(dbselectarea("SE1")) + SE1->(dbSetOrder(1)) + + + fWrite(nFileLog,"dbseek" + CRLF) + if ! SE1->(dbSeek(SE1ORIG->E1_FILIAL+ SE1ORIG->E1_PREFIXO+ SE1ORIG->E1_NUM+ SE1ORIG->E1_PARCELA+ SE1ORIG->E1_TIPO)) + fWrite(nFileLog,"Erro dbseek" + CRLF) + Alert("Erro. Verificar F280PCAN() - dbseek") + fWrite(nFileLog,"Erro dbseek("+SE1ORIG->E1_FILIAL+ SE1ORIG->E1_PREFIXO+ SE1ORIG->E1_NUM+ SE1ORIG->E1_PARCELA+ SE1ORIG->E1_TIPO+")" + CRLF) + return .F. + endif + + cFilAnt := SE1ORIG->E1_FILIAL + + aFatura:= {{"E1_FILIAL" ,SE1ORIG->E1_FILIAL ,Nil},; + {"E1_PREFIXO" ,SE1ORIG->E1_PREFIXO ,Nil},; + {"E1_NUM" ,SE1ORIG->E1_NUM ,Nil},; + {"E1_PARCELA" ,SE1ORIG->E1_PARCELA ,Nil},; + {"E1_TIPO" ,SE1ORIG->E1_TIPO ,Nil}} + + lMsErroAuto := .F. + + MSExecAuto({|x,y| FINA040(x,y)},aFatura,5) //Exclus�o + + If lMsErroAuto + fWrite(nFileLog,"Erro " + CRLF) + fWrite(nFileLog,"Erro ao remover o titulo: "+CRLF+ MSErroString()+ CRLF + tojson(aFatura) + CRLF) + Alert("Erro ao remover o titulo. Verificar F280PCAN()") + return .F. + else + fWrite(nFileLog,"Sucesso "+ CRLF) + fWrite(nFileLog,"Titulo removido" +CRLF) + endif + + SE1ORIG->(dbskip()) + + end + + + ///////////////////////////////////////////// + /////// Cancela as baixas + /// + + fWrite(nFileLog,"- cancela baixas" + CRLF) + + cQuery := "select * from SE1060 where E1_FATURA = '"+ cFatCan +"' and D_E_L_E_T_ <> '*'" + + If select("SE1ORIG") > 0 + SE1ORIG->(DbCloseArea()) + endif + TcQuery cQuery New Alias 'SE1ORIG' + dbSelectArea("SE1ORIG") + SE1ORIG->(DBGOTOP()) + + aFili := {"0102", "0105"} + + While SE1ORIG->(!EOF()) //Loop entre todas as parcelas e filiais + + SE1->(dbselectarea("SE1")) + SE1->(dbSetOrder(1)) + + For nI := 1 To len(aFili) + + cFilAnt := aFili[nI] + + fWrite(nFileLog,"dbseek" + CRLF) + if ! SE1->(dbSeek(aFili[nI]+ SE1ORIG->E1_PREFIXO+ SE1ORIG->E1_NUM+ SE1ORIG->E1_PARCELA+ SE1ORIG->E1_TIPO)) + fWrite(nFileLog,"dbseek nao encontrou titulo para filial "+aFili[nI] + CRLF) + fWrite(nFileLog,"dbseek('"+aFili[nI]+ SE1ORIG->E1_PREFIXO+ SE1ORIG->E1_NUM+ SE1ORIG->E1_PARCELA+ SE1ORIG->E1_TIPO+"')" + CRLF) + LOOP + endif + + nSE5Recno := u_RetSQLOne("select R_E_C_N_O_ from SE5010 where E5_FILIAL = '"+SE1->E1_FILIAL+"' and E5_PREFIXO = '"+SE1->E1_PREFIXO+"' and E5_TIPO = '"+SE1->E1_TIPO+"' and E5_NUMERO = '"+SE1->E1_NUM+"' "+; + " and E5_FATURA = '"+SE1->E1_FATURA+"' and E5_FATPREF='"+SE1->E1_FATPREF+"' and D_E_L_E_T_ <> '*' ", "R_E_C_N_O_") + + //Removemos os Flags de Fatura para conseguirmos cancelar a baixa pelo FINA070 + RECLOCK('SE1',.F.) + E1_FATURA := '' + E1_FATPREF:= '' + E1_TIPOFAT:= '' + E1_FLAGFAT:= '' + E1_DTFATUR:= StoD('') + MSUNLOCK() + + SE5->(DbGoTo(nSE5Recno)) + RECLOCK('SE5',.F.) + E5_MOTBX := 'NOR' + //E5_FATURA := '' + //E5_FATPREF:= '' + MSUNLOCK() + + aBaixa := {{"E1_FILIAL" ,SE1->E1_FILIAL ,Nil},; + {"E1_PREFIXO" ,SE1->E1_PREFIXO ,Nil},; + {"E1_NUM" ,SE1->E1_NUM ,Nil},; + {"E1_TIPO" ,SE1->E1_TIPO ,Nil},; + {"E1_PARCELA" ,SE1->E1_PARCELA ,Nil},; + {"E1_DESCONT" ,SE1->E1_DESCONT ,Nil},; + {"E1_JUROS" ,SE1->E1_JUROS ,Nil},; + {"E1_MULTA" ,SE1->E1_MULTA ,Nil},; + {"E1_VLRREAL" ,SE1->E1_VLRREAL ,Nil},; + {"AUTMOTBX" ,"NOR" ,Nil},; + {"AUTDTBAIXA" ,date() ,Nil},; + {"AUTDTCREDITO",date() ,Nil},; + {"AUTHIST" ,"" ,Nil},; + {"AUTVALREC" ,SE1->E1_VALOR ,Nil}} + + + lMsErroAuto:=.F. //reseta lMsErroAuto + MSExecAuto ({|x,y| FINA070(x,y)},aBaixa, 5) + + If lMsErroAuto + fWrite(nFileLog,SE1->E1_FILIAL+" : Não foi efetuada o cancelamento de baixa : "+CRLF+ MSErroString()+ CRLF + tojson(aBaixa) + CRLF) + return + else + fWrite(nFileLog,SE1->E1_FILIAL+" : cancelamento de baixa feito" +CRLF) + endif + + Next nI + + SE1ORIG->(dbskip()) + end + + Reset Environment + +Return From f42afef6e09d3b431f1fbf092ed183abe7c25150 Mon Sep 17 00:00:00 2001 From: Arthur Helfstein Fragoso Date: Wed, 5 Aug 2015 05:58:02 -0300 Subject: [PATCH 594/875] order - .prw should come after .ch 1) Failure: TestPedantic#test_extensions_are_sorted [/home/arthur/Projects/linguist/test/test_pedantic.rb:15]: .prw should come after .ch --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 1b31c0bb..774fd3dd 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3828,7 +3828,7 @@ xBase: - foxpro extensions: - .prg - - .prw - .ch + - .prw tm_scope: source.harbour ace_mode: text From bc747844ea2a594ce533eeeb18676cfea230936c Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Wed, 5 Aug 2015 12:22:21 -0700 Subject: [PATCH 595/875] Add codemirror's demo directory This accounts for about ~150 html files throwing off the statistics of one of my projects --- lib/linguist/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index e9af74e6..e432af3c 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -122,7 +122,7 @@ - (^|/)Chart\.js$ # Codemirror -- (^|/)[Cc]ode[Mm]irror/(lib|mode|theme|addon|keymap) +- (^|/)[Cc]ode[Mm]irror/(lib|mode|theme|addon|keymap|demo) # SyntaxHighlighter - http://alexgorbatchev.com/ - (^|/)shBrush([^.]*)\.js$ From 3441a001c7ed6cb86c5158d795d234a6eb1a705d Mon Sep 17 00:00:00 2001 From: Roger Ignazio Date: Wed, 5 Aug 2015 14:00:08 -0700 Subject: [PATCH 596/875] Modify Puppet color based on style guide Prior to this commit, the Puppet language was colored to #332A77. The Puppet Labs style guide (https://puppetlabs.com/styleguide/brand) specifies Puppet Dark Purple to be #302B6D. Alternately, Puppet Purple, a lighter variant, may be used: #7C6AAB. Keeping with the dark purple theme, this commit modifies the Puppet language to use Puppet Dark Purple, hex #302B6D. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 774fd3dd..33efb842 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2653,7 +2653,7 @@ Public Key: Puppet: type: programming - color: "#332A77" + color: "#302B6D" extensions: - .pp filenames: From f072cd96e3e9b4ffe45a3ed9f2ce37eef6e2a0eb Mon Sep 17 00:00:00 2001 From: Roger Ignazio Date: Wed, 5 Aug 2015 14:02:09 -0700 Subject: [PATCH 597/875] Add hiera_include() sample for the Puppet language Prior to this commit, some Puppet files were being incorrectly identified as Pascal when they contained only the following content: hiera_include('classes') This commit adds a hiera_include() sample to for the Puppet language to correct this behavior. --- samples/Puppet/hiera_include.pp | 1 + 1 file changed, 1 insertion(+) create mode 100644 samples/Puppet/hiera_include.pp diff --git a/samples/Puppet/hiera_include.pp b/samples/Puppet/hiera_include.pp new file mode 100644 index 00000000..7959e7b1 --- /dev/null +++ b/samples/Puppet/hiera_include.pp @@ -0,0 +1 @@ +hiera_include('classes') From dc0ddc82d66964354ab81272f478c2d4ba2b75e0 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Thu, 6 Aug 2015 10:08:30 +0200 Subject: [PATCH 598/875] Filename Makefile.inc for Makefile --- lib/linguist/languages.yml | 1 + samples/Makefile/filenames/Makefile.inc | 31 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 samples/Makefile/filenames/Makefile.inc diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 774fd3dd..952aa6b2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1933,6 +1933,7 @@ Makefile: - GNUmakefile - Kbuild - Makefile + - Makefile.inc - makefile interpreters: - make diff --git a/samples/Makefile/filenames/Makefile.inc b/samples/Makefile/filenames/Makefile.inc new file mode 100644 index 00000000..cc927063 --- /dev/null +++ b/samples/Makefile/filenames/Makefile.inc @@ -0,0 +1,31 @@ +# $OpenBSD: Makefile.inc,v 1.2 2003/11/14 20:09:20 drahn Exp $ +# $NetBSD: Makefile.inc,v 1.1 1996/09/30 16:34:59 ws Exp $ + +.if !defined(__stand_makefile_inc) +__stand_makefile_inc=1 + +KERN_AS= library + +S=$(.CURDIR)/../../../$(R) + +.if !make(libdep) && !make(sadep) && !make(salibdir) && !make(kernlibdir) && !make(obj) && !defined(NOMACHINE) +.BEGIN: + @([ -h machine ] || ln -s $(S)/arch/$(MACHINE)/include machine) +.endif + +# +EXTRACFLAGS= -msoft-float +REAL_VIRT?= -v +ENTRY?= _start + +INCLUDES+= -I. -I$(.OBJDIR) -I$(.CURDIR)/.. -I$(S)/arch -I$(S) +INCLUDES+= -I$(S)/lib/libsa +DEFS+= -DSTANDALONE +CFLAGS+= $(INCLUDES) $(DEFS) $(EXTRACFLAGS) +CFLAGS+= -fno-stack-protector +LDFLAGS?= -X -N -Ttext $(RELOC) -e $(ENTRY) + +cleandir: + rm -rf lib machine + +.endif From fd570d906a17c05e43bc110ca830737af7a769d0 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 7 Aug 2015 10:35:18 +0100 Subject: [PATCH 599/875] Adding examples path to documentation.yml --- lib/linguist/documentation.yml | 1 + test/test_blob.rb | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index f95a547d..cd6d2074 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -13,6 +13,7 @@ - (^|/)[Dd]ocumentation/ - (^|/)javadoc/ - ^man/ +- ^[Ee]xamples/ ## Documentation files ## diff --git a/test/test_blob.rb b/test/test_blob.rb index 976c83ff..691b2149 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -517,7 +517,7 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("CHANGE.md"), :documentation? assert_predicate fixture_blob("CHANGE.txt"), :documentation? assert_predicate fixture_blob("foo/CHANGE"), :documentation? - + assert_predicate fixture_blob("CHANGELOG"), :documentation? assert_predicate fixture_blob("CHANGELOG.md"), :documentation? assert_predicate fixture_blob("CHANGELOG.txt"), :documentation? @@ -526,13 +526,16 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("CHANGES"), :documentation? assert_predicate fixture_blob("CHANGES.md"), :documentation? assert_predicate fixture_blob("CHANGES.txt"), :documentation? - assert_predicate fixture_blob("foo/CHANGES"), :documentation? - + assert_predicate fixture_blob("foo/CHANGES"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING"), :documentation? assert_predicate fixture_blob("CONTRIBUTING.md"), :documentation? assert_predicate fixture_blob("CONTRIBUTING.txt"), :documentation? assert_predicate fixture_blob("foo/CONTRIBUTING"), :documentation? + assert_predicate fixture_blob("examples/some-file.pl"), :documentation? + assert_predicate fixture_blob("Examples/some-example-file.rb"), :documentation? + assert_predicate fixture_blob("LICENSE"), :documentation? assert_predicate fixture_blob("LICENCE.md"), :documentation? assert_predicate fixture_blob("LICENSE.txt"), :documentation? From 5d5550c48bac3a64ff0a729548f2a7b18f30e2e6 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Fri, 7 Aug 2015 10:42:31 +0100 Subject: [PATCH 600/875] Moving vendored definitions to documentation --- lib/linguist/documentation.yml | 3 +++ lib/linguist/vendor.yml | 17 ++++------------- test/test_blob.rb | 14 +++++++++++--- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index cd6d2074..04649b5b 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -23,3 +23,6 @@ - (^|/)INSTALL(\.|$) - (^|/)LICEN[CS]E(\.|$) - (^|/)README(\.|$) + +# Samples folders +- ^[Ss]amples/ diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index e432af3c..ed89eda8 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -179,6 +179,10 @@ # Fabric - Fabric.framework/ +# git config files +- gitattributes$ +- gitignore$ +- gitmodules$ ## Groovy ## @@ -224,19 +228,6 @@ # Html5shiv - (^|/)html5shiv\.js$ -# Samples folders -- ^[Ss]amples/ - -# LICENSE, README, git config files -- ^COPYING$ -- LICENSE$ -- License$ -- gitattributes$ -- gitignore$ -- gitmodules$ -- ^README$ -- ^readme$ - # Test fixtures - ^[Tt]ests?/fixtures/ diff --git a/test/test_blob.rb b/test/test_blob.rb index 691b2149..6c705379 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -308,6 +308,12 @@ class TestBlob < Minitest::Test # Erlang assert sample_blob("rebar").vendored? + # git config files + + assert_predicate fixture_blob("some/path/.gitattributes"), :vendored? + assert_predicate fixture_blob(".gitignore"), :vendored? + assert_predicate fixture_blob("special/path/.gitmodules"), :vendored? + # Minified JavaScript and CSS assert sample_blob("foo.min.js").vendored? assert sample_blob("foo.min.css").vendored? @@ -326,9 +332,6 @@ class TestBlob < Minitest::Test assert sample_blob("public/javascripts/controls.js").vendored? assert sample_blob("public/javascripts/dragdrop.js").vendored? - # Samples - assert sample_blob("Samples/Ruby/foo.rb").vendored? - # jQuery assert sample_blob("jquery.js").vendored? assert sample_blob("public/javascripts/jquery.js").vendored? @@ -552,6 +555,11 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("foo/INSTALL"), :documentation? refute_predicate fixture_blob("foo.md"), :documentation? + + # Samples + assert sample_blob("Samples/Ruby/foo.rb").documentation? + + assert_predicate fixture_blob("INSTALL.txt"), :documentation? end def test_language From 11f158cbb31e911e41a405e01042a9ab594a93c7 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 7 Aug 2015 11:12:30 -0700 Subject: [PATCH 601/875] Highlight Brewfile as Ruby --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e05e13a1..d4d4f477 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2934,6 +2934,7 @@ Ruby: - .pryrc - Appraisals - Berksfile + - Brewfile - Buildfile - Deliverfile - Fastfile From 7a811e39e045faf08fc880f02bc3eee523385e26 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 7 Aug 2015 14:01:08 -0700 Subject: [PATCH 602/875] Add sample Brewfile --- samples/Ruby/filenames/Brewfile | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 samples/Ruby/filenames/Brewfile diff --git a/samples/Ruby/filenames/Brewfile b/samples/Ruby/filenames/Brewfile new file mode 100644 index 00000000..d8448e68 --- /dev/null +++ b/samples/Ruby/filenames/Brewfile @@ -0,0 +1,9 @@ +tap 'caskroom/cask' +tap 'telemachus/brew', 'https://telemachus@bitbucket.org/telemachus/brew.git' +brew 'emacs', args: ['with-cocoa', 'with-gnutls'] +brew 'redis', restart_service: true +brew 'mongodb' +brew 'sphinx' +brew 'imagemagick' +brew 'mysql' +cask 'google-chrome' From 54a2a47bc06af4bc45270e7be6a76eeb8bf8130d Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 9 Aug 2015 14:11:01 +0200 Subject: [PATCH 603/875] YAML-tmLanguage extension for YAML --- lib/linguist/languages.yml | 1 + samples/YAML/Ansible.YAML-tmLanguage | 38 ++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 samples/YAML/Ansible.YAML-tmLanguage diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 952aa6b2..db92065d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3719,6 +3719,7 @@ YAML: - .reek - .rviz - .yaml + - .yaml-tmlanguage ace_mode: yaml Yacc: diff --git a/samples/YAML/Ansible.YAML-tmLanguage b/samples/YAML/Ansible.YAML-tmLanguage new file mode 100644 index 00000000..307696b3 --- /dev/null +++ b/samples/YAML/Ansible.YAML-tmLanguage @@ -0,0 +1,38 @@ +# [PackageDev] target_format: plist, ext: tmLanguage +--- +name: Ansible +scopeName: source.ansible +fileTypes: [] +uuid: 787ae642-b4ae-48b1-94e9-f935bec43a8f + +patterns: +- name: comment.line.number-sign.ansible + match: (?:^ *|\G *)((#).*) + captures: + '1': {name: comment.line.number-sign.ansible} + '2': {name: punctuation.definition.comment.line.ansible} + +- name: storage.type.ansible + match: (\{\{ *[^\{\}]+ *\}\})|(\$\{[^\{\}]+\}) + +- name: keyword.other.ansible + match: \- (name\:|include\:) (.*)|(^(- |\s*)\w+\:) + captures: + '2': {name: string.quoted.double.ansible} + +- name: variable.complex.ansible + contentName: string.other.ansible + begin: (\w+)(=)\"? + beginCaptures: + '1': {name: entity.other.attribute-name.ansible} + '2': {name: text} + end: \"?\s + patterns: + - include: $self + - name: constant.other.ansible + match: . + +- name: string.quoted.double.ansible + match: ^(\[[0-9a-zA-Z_-]+(((\:)children)*)\]) + captures: + '2': {name: variable.parameter.ansible} From 88b14ed455b98ef08eedd107b5d6a757d1c70523 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 9 Aug 2015 14:13:48 +0200 Subject: [PATCH 604/875] .syntax extension for YAML --- lib/linguist/languages.yml | 1 + samples/YAML/source.r-console.syntax | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 samples/YAML/source.r-console.syntax diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index db92065d..812b6f04 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3718,6 +3718,7 @@ YAML: - .yml - .reek - .rviz + - .syntax - .yaml - .yaml-tmlanguage ace_mode: yaml diff --git a/samples/YAML/source.r-console.syntax b/samples/YAML/source.r-console.syntax new file mode 100644 index 00000000..5c3eec39 --- /dev/null +++ b/samples/YAML/source.r-console.syntax @@ -0,0 +1,16 @@ +--- +name: R Console +fileTypes: [] + +scopeName: source.r-console +uuid: F629C7F3-823B-4A4C-8EEE-9971490C5710 +patterns: +- name: source.r.embedded.r-console + begin: "^> " + beginCaptures: + "0": + name: punctuation.section.embedded.r-console + end: \n|\z + patterns: + - include: source.r +keyEquivalent: ^~R From 4650368bc224804de85a451e0a3b0db3c432f829 Mon Sep 17 00:00:00 2001 From: Ammar Askar Date: Mon, 10 Aug 2015 00:38:24 -0500 Subject: [PATCH 605/875] Make regex for vim modeline more lenient This change allows the filetype/language to be retrieved from more complex vim modelines. The current regex strictly allows a set line which contains only the filetype/ft parameter and nothing else --- lib/linguist/strategy/modeline.rb | 2 +- test/fixtures/Data/Modelines/ruby2 | 3 +++ test/fixtures/Data/Modelines/ruby3 | 3 +++ test/test_modelines.rb | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/Data/Modelines/ruby2 create mode 100644 test/fixtures/Data/Modelines/ruby3 diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 44155fc3..f995d940 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -2,7 +2,7 @@ module Linguist module Strategy class Modeline EmacsModeline = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i - VimModeline = /vim:\s*set\s*(?:ft|filetype)=(\w+):/i + VimModeline = /vim:\s*set.*\s(?:ft|filetype)=(\w+)\s?.*:/i # Public: Detects language based on Vim and Emacs modelines # diff --git a/test/fixtures/Data/Modelines/ruby2 b/test/fixtures/Data/Modelines/ruby2 new file mode 100644 index 00000000..75177db1 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby2 @@ -0,0 +1,3 @@ +/* vim: set ts=8 sw=4 filetype=ruby tw=0: */ + +# Please help how do I into setting vim modlines diff --git a/test/fixtures/Data/Modelines/ruby3 b/test/fixtures/Data/Modelines/ruby3 new file mode 100644 index 00000000..003f71fe --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby3 @@ -0,0 +1,3 @@ +/* vim: set ft=ruby ts=8 sw=4 tw=0: */ + +# I am not good at humor diff --git a/test/test_modelines.rb b/test/test_modelines.rb index a2be5d3b..fd259782 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -9,6 +9,8 @@ class TestModelines < Minitest::Test def test_modeline_strategy assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby2") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby3") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2") @@ -27,6 +29,8 @@ class TestModelines < Minitest::Test def test_modeline_languages assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby").language + assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby2").language + assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby3").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplus").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2").language From 18ffdbaa65342c6d935a2a885539db29d0ef0bfb Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 10 Aug 2015 15:07:27 +0100 Subject: [PATCH 606/875] Grammar updates --- vendor/grammars/Elm.tmLanguage | 2 +- vendor/grammars/InnoSetup | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/llvm.tmbundle | 2 +- vendor/grammars/php.tmbundle | 2 +- vendor/grammars/sublime-better-typescript | 2 +- vendor/grammars/vue-syntax-highlight | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/vendor/grammars/Elm.tmLanguage b/vendor/grammars/Elm.tmLanguage index 8137f5a4..e9fda7c7 160000 --- a/vendor/grammars/Elm.tmLanguage +++ b/vendor/grammars/Elm.tmLanguage @@ -1 +1 @@ -Subproject commit 8137f5a48c76c4303394d7da6f3a19bf61056cc6 +Subproject commit e9fda7c70f1bb8da8275b108420d8c492114b342 diff --git a/vendor/grammars/InnoSetup b/vendor/grammars/InnoSetup index e7ca1ee0..3906a8d2 160000 --- a/vendor/grammars/InnoSetup +++ b/vendor/grammars/InnoSetup @@ -1 +1 @@ -Subproject commit e7ca1ee0dd99a022dd0bd679f9bdad7cd610432e +Subproject commit 3906a8d2fbc2fd197373113536d8deb28d05ee4c diff --git a/vendor/grammars/factor b/vendor/grammars/factor index abb8bd74..49621511 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit abb8bd74b97d7ed84ca0cd7bf03f8280f27682af +Subproject commit 496215111189a942cd5310635d71d00d1dc1d2c9 diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index c1ef469b..102acf66 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit c1ef469bf3b1166180f64343f47d6cee73ddd4fa +Subproject commit 102acf66b921526401ce76f0a74c7f94edaca678 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 2766ff30..1aaf2ff8 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 2766ff3052615016e53298ee715e221cd740b5a3 +Subproject commit 1aaf2ff8eff25073dad9e81dde48ed05537f2a97 diff --git a/vendor/grammars/llvm.tmbundle b/vendor/grammars/llvm.tmbundle index 9e3705a6..203c955a 160000 --- a/vendor/grammars/llvm.tmbundle +++ b/vendor/grammars/llvm.tmbundle @@ -1 +1 @@ -Subproject commit 9e3705a6e2bd51ae01d3963dd08bc42fc05d647f +Subproject commit 203c955af9c8c48c2bb3808a9ebb547ce3cead1c diff --git a/vendor/grammars/php.tmbundle b/vendor/grammars/php.tmbundle index 1cba1ac4..baad8758 160000 --- a/vendor/grammars/php.tmbundle +++ b/vendor/grammars/php.tmbundle @@ -1 +1 @@ -Subproject commit 1cba1ac4a9ffa301b1d92b735c298fcb60cc3e3a +Subproject commit baad875878c402b7b404a63616531644e538bf0c diff --git a/vendor/grammars/sublime-better-typescript b/vendor/grammars/sublime-better-typescript index 8c0bd800..8266c06a 160000 --- a/vendor/grammars/sublime-better-typescript +++ b/vendor/grammars/sublime-better-typescript @@ -1 +1 @@ -Subproject commit 8c0bd800d91a1c032f81d17055150482262085b5 +Subproject commit 8266c06aabe5e473766bd9bb62dfeb106fe296a2 diff --git a/vendor/grammars/vue-syntax-highlight b/vendor/grammars/vue-syntax-highlight index b98484e7..7d35a53e 160000 --- a/vendor/grammars/vue-syntax-highlight +++ b/vendor/grammars/vue-syntax-highlight @@ -1 +1 @@ -Subproject commit b98484e787c8658c91832674dbd36c3c23277234 +Subproject commit 7d35a53e7e4380f01340ca5f508e9a8f8bc69ef0 From 851c93a1f7024dbede688829cafcf981f0a87213 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 10 Aug 2015 22:07:28 +0100 Subject: [PATCH 607/875] Don't blow up if empty string/nil passed to alias methods --- lib/linguist/language.rb | 2 ++ test/test_language.rb | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 05c5f802..bc65a053 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -150,6 +150,7 @@ module Linguist # # Returns the Language or nil if none was found. def self.find_by_name(name) + return nil if name.to_s.empty? name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase]) end @@ -164,6 +165,7 @@ module Linguist # # Returns the Language or nil if none was found. def self.find_by_alias(name) + return nil if name.to_s.empty? name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase]) end diff --git a/test/test_language.rb b/test/test_language.rb index 3d1fd66c..176abac4 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -275,6 +275,11 @@ class TestLanguage < Minitest::Test assert_equal Language['Rust'], Language.find_by_alias('rust,no_run') end + def test_doesnt_blow_up_with_blank_lookup + assert_equal nil, Language.find_by_alias('') + assert_equal nil, Language.find_by_name(nil) + end + def test_name assert_equal 'Perl', Language['Perl'].name assert_equal 'Python', Language['Python'].name From 997c0fca10801af01f5de613ba1c2dbda82ef6fb Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 11 Aug 2015 06:48:54 +0100 Subject: [PATCH 608/875] Catching one more edge case --- lib/linguist/language.rb | 1 + test/test_language.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index bc65a053..07585bb0 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -242,6 +242,7 @@ module Linguist # # Returns the Language or nil if none was found. def self.[](name) + return nil if name.to_s.empty? name && (@index[name.downcase] || @index[name.split(',').first.downcase]) end diff --git a/test/test_language.rb b/test/test_language.rb index 176abac4..5da3b8c7 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -278,6 +278,7 @@ class TestLanguage < Minitest::Test def test_doesnt_blow_up_with_blank_lookup assert_equal nil, Language.find_by_alias('') assert_equal nil, Language.find_by_name(nil) + assert_equal nil, Language[""] end def test_name From d9509a1750cc87ce5a3b1e72028294bf5dbfa784 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 11 Aug 2015 07:01:05 +0100 Subject: [PATCH 609/875] Bumping version to v4.5.13 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 0265e2b0..f46a86f2 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.11" + VERSION = "4.5.13" end From 8d20c1fb593fc57b485a8641c618ddc161196683 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 11 Aug 2015 09:39:41 +0100 Subject: [PATCH 610/875] More inclusive documentation matches for License and Readme files --- lib/linguist/documentation.yml | 2 ++ test/test_blob.rb | 3 +++ 2 files changed, 5 insertions(+) diff --git a/lib/linguist/documentation.yml b/lib/linguist/documentation.yml index 04649b5b..230cd423 100644 --- a/lib/linguist/documentation.yml +++ b/lib/linguist/documentation.yml @@ -22,7 +22,9 @@ - (^|/)COPYING(\.|$) - (^|/)INSTALL(\.|$) - (^|/)LICEN[CS]E(\.|$) +- (^|/)[Ll]icen[cs]e(\.|$) - (^|/)README(\.|$) +- (^|/)[Rr]eadme(\.|$) # Samples folders - ^[Ss]amples/ diff --git a/test/test_blob.rb b/test/test_blob.rb index 6c705379..0a1cefe9 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -514,6 +514,8 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("README"), :documentation? assert_predicate fixture_blob("README.md"), :documentation? assert_predicate fixture_blob("README.txt"), :documentation? + assert_predicate fixture_blob("Readme"), :documentation? + assert_predicate fixture_blob("readme"), :documentation? assert_predicate fixture_blob("foo/README"), :documentation? assert_predicate fixture_blob("CHANGE"), :documentation? @@ -541,6 +543,7 @@ class TestBlob < Minitest::Test assert_predicate fixture_blob("LICENSE"), :documentation? assert_predicate fixture_blob("LICENCE.md"), :documentation? + assert_predicate fixture_blob("License.txt"), :documentation? assert_predicate fixture_blob("LICENSE.txt"), :documentation? assert_predicate fixture_blob("foo/LICENSE"), :documentation? From bea90b256ec84a6f92d07d0b4b026f9fbcedf86c Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Tue, 11 Aug 2015 14:01:45 -0500 Subject: [PATCH 611/875] use st2-zonefile (MIT licensed) instead of Bind.tmbundle (unlicensed) --- .gitmodules | 6 +++--- grammars.yml | 2 +- st2-zonefile | 1 + vendor/grammars/st2-zonefile | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) create mode 160000 st2-zonefile create mode 160000 vendor/grammars/st2-zonefile diff --git a/.gitmodules b/.gitmodules index cfaf6c66..0931bc8c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -657,6 +657,6 @@ [submodule "vendor/grammars/jflex.tmbundle"] path = vendor/grammars/jflex.tmbundle url = https://github.com/jflex-de/jflex.tmbundle.git -[submodule "vendor/grammars/Bind.tmbundle"] - path = vendor/grammars/Bind.tmbundle - url = https://github.com/norm/Bind.tmbundle.git +[submodule "vendor/grammars/st2-zonefile"] + path = vendor/grammars/st2-zonefile + url = https://github.com/sixty4k/st2-zonefile diff --git a/grammars.yml b/grammars.yml index 13b63cf6..4f9f7f35 100644 --- a/grammars.yml +++ b/grammars.yml @@ -26,7 +26,7 @@ vendor/grammars/Alloy.tmbundle: - source.alloy vendor/grammars/AutoHotkey/: - source.ahk -vendor/grammars/Bind.tmbundle: +vendor/grammars/st2-zonefile: - source.untitled - text.zone vendor/grammars/BrightScript.tmbundle/: diff --git a/st2-zonefile b/st2-zonefile new file mode 160000 index 00000000..0d943fef --- /dev/null +++ b/st2-zonefile @@ -0,0 +1 @@ +Subproject commit 0d943fefb815262804f0ae309b08221f34eda054 diff --git a/vendor/grammars/st2-zonefile b/vendor/grammars/st2-zonefile new file mode 160000 index 00000000..0d943fef --- /dev/null +++ b/vendor/grammars/st2-zonefile @@ -0,0 +1 @@ +Subproject commit 0d943fefb815262804f0ae309b08221f34eda054 From 4f5825818642044970456fb2a87434659ca8fa69 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 12 Aug 2015 17:05:57 +0100 Subject: [PATCH 612/875] Removing erroneous submodule --- st2-zonefile | 1 - 1 file changed, 1 deletion(-) delete mode 160000 st2-zonefile diff --git a/st2-zonefile b/st2-zonefile deleted file mode 160000 index 0d943fef..00000000 --- a/st2-zonefile +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0d943fefb815262804f0ae309b08221f34eda054 From 60e90bab23a030b30345d47e2ee8d5a0436b4d84 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 12 Aug 2015 17:06:39 +0100 Subject: [PATCH 613/875] Removing un-used Bind bundle --- vendor/grammars/Bind.tmbundle | 1 - 1 file changed, 1 deletion(-) delete mode 160000 vendor/grammars/Bind.tmbundle diff --git a/vendor/grammars/Bind.tmbundle b/vendor/grammars/Bind.tmbundle deleted file mode 160000 index ccc1e271..00000000 --- a/vendor/grammars/Bind.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ccc1e2711a1238378b62d4045edae3f60679b703 From 7cf140940e5fcbbce8fe4706debd90acbf20cab4 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 12 Aug 2015 17:20:29 +0100 Subject: [PATCH 614/875] Fixing up the build --- grammars.yml | 5 ++--- lib/linguist/languages.yml | 14 +++++++------- samples/{zone => DNS Zone}/sneaky.net.zone | 0 3 files changed, 9 insertions(+), 10 deletions(-) rename samples/{zone => DNS Zone}/sneaky.net.zone (100%) diff --git a/grammars.yml b/grammars.yml index 5b2d376c..4da6c0e2 100644 --- a/grammars.yml +++ b/grammars.yml @@ -26,9 +26,6 @@ vendor/grammars/Alloy.tmbundle: - source.alloy vendor/grammars/AutoHotkey/: - source.ahk -vendor/grammars/st2-zonefile: -- source.untitled -- text.zone vendor/grammars/BrightScript.tmbundle/: - source.brightauthorproject - source.brightscript @@ -473,6 +470,8 @@ vendor/grammars/smalltalk-tmbundle: - source.smalltalk vendor/grammars/sql.tmbundle: - source.sql +vendor/grammars/st2-zonefile: +- text.zone_file vendor/grammars/standard-ml.tmbundle: - source.cm - source.ml diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 71ffe7d8..99a8a19d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -750,6 +750,13 @@ DM: tm_scope: source.c++ ace_mode: c_cpp +DNS Zone: + type: data + extensions: + - .zone + tm_scope: text.zone_file + ace_mode: text + DTrace: type: programming aliases: @@ -790,13 +797,6 @@ Diff: tm_scope: source.diff ace_mode: diff -DNS zone: - type: data - extensions: - - .zone - tm_scope: text.zone - ace_mode: text - Dockerfile: type: data tm_scope: source.dockerfile diff --git a/samples/zone/sneaky.net.zone b/samples/DNS Zone/sneaky.net.zone similarity index 100% rename from samples/zone/sneaky.net.zone rename to samples/DNS Zone/sneaky.net.zone From 6a565a849be92a4e641dd5aca0668f6f32d53c60 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 13 Aug 2015 07:38:17 +0200 Subject: [PATCH 615/875] Add .arpa to DNS Zone. sample.arpa by Freeswitch project; Mozilla Public License 1.1. --- lib/linguist/languages.yml | 1 + samples/DNS Zone/sample.arpa | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 samples/DNS Zone/sample.arpa diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 99a8a19d..3ff88a03 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -754,6 +754,7 @@ DNS Zone: type: data extensions: - .zone + - .arpa tm_scope: text.zone_file ace_mode: text diff --git a/samples/DNS Zone/sample.arpa b/samples/DNS Zone/sample.arpa new file mode 100644 index 00000000..e48ecffe --- /dev/null +++ b/samples/DNS Zone/sample.arpa @@ -0,0 +1,13 @@ +$ORIGIN 0.0.0.c.2.1.0.3.0.0.2.1.e.f.f.3.ip6.arpa. +$TTL 60 +@ IN SOA ns root ( + 2002042901 ; SERIAL + 7200 ; REFRESH + 600 ; RETRY + 36000000 ; EXPIRE + 120 ; MINIMUM + ) + + NS ns.example.com. + +c.a.7.e.d.7.e.f.f.f.0.2.8.0.a.0 PTR sip01.example.com. From 7f5bb25542db166cc8b9232fe0cf18484efd709f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Thu, 13 Aug 2015 16:56:21 +0200 Subject: [PATCH 616/875] Remove grammar for Prolog from TextMate bundle --- .gitmodules | 3 --- grammars.yml | 2 -- vendor/grammars/prolog.tmbundle | 1 - 3 files changed, 6 deletions(-) delete mode 160000 vendor/grammars/prolog.tmbundle diff --git a/.gitmodules b/.gitmodules index f4238e8b..aff647b7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -397,9 +397,6 @@ [submodule "vendor/grammars/processing.tmbundle"] path = vendor/grammars/processing.tmbundle url = https://github.com/textmate/processing.tmbundle -[submodule "vendor/grammars/prolog.tmbundle"] - path = vendor/grammars/prolog.tmbundle - url = https://github.com/textmate/prolog.tmbundle [submodule "vendor/grammars/python-django.tmbundle"] path = vendor/grammars/python-django.tmbundle url = https://github.com/textmate/python-django.tmbundle diff --git a/grammars.yml b/grammars.yml index 4da6c0e2..33880871 100644 --- a/grammars.yml +++ b/grammars.yml @@ -431,8 +431,6 @@ vendor/grammars/powershell: - source.powershell vendor/grammars/processing.tmbundle: - source.processing -vendor/grammars/prolog.tmbundle: -- source.prolog vendor/grammars/protobuf-tmbundle: - source.protobuf vendor/grammars/puppet-textmate-bundle: diff --git a/vendor/grammars/prolog.tmbundle b/vendor/grammars/prolog.tmbundle deleted file mode 160000 index d955aca3..00000000 --- a/vendor/grammars/prolog.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d955aca38b7aadce76e6815eb09487a370206742 From 8d216f0c43a21e6f5d3d4ac1a45aec40fc19b959 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Thu, 13 Aug 2015 17:15:04 +0200 Subject: [PATCH 617/875] Grammar for Prolog from Sublime Text package MPLv2 License is currently unrecognized --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 1 + vendor/grammars/sublimeprolog | 1 + 4 files changed, 8 insertions(+) create mode 160000 vendor/grammars/sublimeprolog diff --git a/.gitmodules b/.gitmodules index aff647b7..566254e5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -668,3 +668,6 @@ [submodule "vendor/grammars/st2-zonefile"] path = vendor/grammars/st2-zonefile url = https://github.com/sixty4k/st2-zonefile +[submodule "vendor/grammars/sublimeprolog"] + path = vendor/grammars/sublimeprolog + url = https://github.com/alnkpa/sublimeprolog diff --git a/grammars.yml b/grammars.yml index 33880871..0de7915f 100644 --- a/grammars.yml +++ b/grammars.yml @@ -529,6 +529,9 @@ vendor/grammars/sublime_cobol: vendor/grammars/sublime_man_page_support: - source.man - text.groff +vendor/grammars/sublimeprolog/: +- source.prolog +- source.prolog.eclipse vendor/grammars/sublimetext-cuda-cpp: - source.cuda-c++ vendor/grammars/swift.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 3ff88a03..54b8ab65 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2632,6 +2632,7 @@ Prolog: - .prolog interpreters: - swipl + tm_scope: source.prolog ace_mode: prolog Propeller Spin: diff --git a/vendor/grammars/sublimeprolog b/vendor/grammars/sublimeprolog new file mode 160000 index 00000000..465efc54 --- /dev/null +++ b/vendor/grammars/sublimeprolog @@ -0,0 +1 @@ +Subproject commit 465efc540e0e87787226a8563d65b15959e5a065 From 6226a46988523123e3ec2437a4ae668b7820a202 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Thu, 13 Aug 2015 17:35:01 +0200 Subject: [PATCH 618/875] Recognize the Mozilla Public License for grammars --- test/test_grammars.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 88624ae8..dc64c6e6 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -132,6 +132,12 @@ class TestGrammars < Minitest::Test "BSD" elsif content.include?("Permission is hereby granted") || content =~ /\bMIT\b/ "MIT" + elsif content.include?("Mozilla Public License") + if content.include?("version 2.0") + "MPLv2.0" + elsif content.include?("version 1.1") + "MPLv1.1" + end elsif content.include?("unlicense.org") "unlicense" elsif content.include?("http://www.wtfpl.net/txt/copying/") From 55aafa416dfd75b47083d6a0400ce6136338ba02 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 14 Aug 2015 13:56:28 +0200 Subject: [PATCH 619/875] Highlight LabVIEW files as XML --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 3ff88a03..352542b0 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1718,8 +1718,8 @@ LabVIEW: type: programming extensions: - .lvproj - tm_scope: none - ace_mode: text + tm_scope: source.xml + ace_mode: xml Lasso: type: programming From 06997f0da240a482f5f2f70912f36c6446b02b2c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 14 Aug 2015 14:17:32 +0200 Subject: [PATCH 620/875] Fix scope of grammar for LabVIEW --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 352542b0..a0ede441 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1718,7 +1718,7 @@ LabVIEW: type: programming extensions: - .lvproj - tm_scope: source.xml + tm_scope: text.xml ace_mode: xml Lasso: From 82410e07b272661149415eefc28cd72166fa35c1 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 14 Aug 2015 13:02:55 +0200 Subject: [PATCH 621/875] Add .sexp to Common Lisp. config.sexp by Jeremie Dimino; Apache License 2.0. rss.sexp by Dan Lentz; LGPL 2.1. --- lib/linguist/languages.yml | 1 + samples/Common Lisp/config.sexp | 2 + samples/Common Lisp/rss.sexp | 103 ++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 samples/Common Lisp/config.sexp create mode 100644 samples/Common Lisp/rss.sexp diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a0ede441..ed414121 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -616,6 +616,7 @@ Common Lisp: - .lsp - .ny - .podsl + - .sexp interpreters: - lisp - sbcl diff --git a/samples/Common Lisp/config.sexp b/samples/Common Lisp/config.sexp new file mode 100644 index 00000000..125892e5 --- /dev/null +++ b/samples/Common Lisp/config.sexp @@ -0,0 +1,2 @@ +((exe_name hello) + (link_order (world hello))) diff --git a/samples/Common Lisp/rss.sexp b/samples/Common Lisp/rss.sexp new file mode 100644 index 00000000..4898fb55 --- /dev/null +++ b/samples/Common Lisp/rss.sexp @@ -0,0 +1,103 @@ + +(:TURTLE + + (:@PREFIX "rdf:" "") + (:@PREFIX "owl:" "") + (:@PREFIX "dc:" "") + (:@PREFIX "xsd:" "") + (:@PREFIX "rdfs:" "") + + (:TRIPLES (:URIREF "") + + (:PREDICATE-OBJECT-LIST + (:URIREF #1="") + (:OBJECTS + (:QNAME "rdfs:Class"))) + + (:PREDICATE-OBJECT-LIST + (:QNAME "rdfs:comment") + (:OBJECTS + (:STRING "An RSS information channel."))) + + (:PREDICATE-OBJECT-LIST + (:QNAME "rdfs:isDefinedBy") + (:OBJECTS + (:URIREF ""))) + + (:PREDICATE-OBJECT-LIST + (:QNAME "rdfs:label") + (:OBJECTS + (:STRING "Channel")))) + + (:TRIPLES (:URIREF "") + + (:PREDICATE-OBJECT-LIST + (:URIREF #1#) + (:OBJECTS + (:QNAME "rdf:Property"))) + + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") + (:OBJECTS (:STRING "A short text description of the subject."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Description"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:subPropertyOf") (:OBJECTS (:QNAME "dc:description")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdfs:Class"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") (:OBJECTS (:STRING "An RSS image."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Image")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdfs:Class"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") (:OBJECTS (:STRING "An RSS item."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Item")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdf:Property"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") + (:OBJECTS + (:STRING "Points to a list of rss:item elements that are members of the subject channel."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Items")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdf:Property"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") + (:OBJECTS (:STRING "The URL to which an HTML rendering of the subject will link."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Link"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:subPropertyOf") (:OBJECTS (:QNAME "dc:identifier")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdf:Property"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") + (:OBJECTS (:STRING "The text input field's (variable) name."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Name")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdfs:Class"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") (:OBJECTS (:STRING "An RSS text input."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Text Input")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdf:Property"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") + (:OBJECTS (:STRING "A descriptive title for the channel."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "Title"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:subPropertyOf") (:OBJECTS (:QNAME "dc:title")))) + (:TRIPLES (:URIREF "") + (:PREDICATE-OBJECT-LIST (:URIREF #1#) (:OBJECTS (:QNAME "rdf:Property"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:comment") + (:OBJECTS + (:STRING + "The URL of the image to used in the 'src' attribute of the channel's image tag when rendered as HTML."))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:isDefinedBy") + (:OBJECTS (:URIREF ""))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:label") (:OBJECTS (:STRING "URL"))) + (:PREDICATE-OBJECT-LIST (:QNAME "rdfs:subPropertyOf") (:OBJECTS (:QNAME "dc:identifier"))))) From 152d49513f74ab4bd0b5368bb36a38effcfd6fe4 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 00:11:34 +0200 Subject: [PATCH 622/875] Grammar for AspectJ from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 2 ++ lib/linguist/languages.yml | 2 +- vendor/grammars/sublime-aspectj | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 vendor/grammars/sublime-aspectj diff --git a/.gitmodules b/.gitmodules index f4238e8b..47cf934f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -671,3 +671,6 @@ [submodule "vendor/grammars/st2-zonefile"] path = vendor/grammars/st2-zonefile url = https://github.com/sixty4k/st2-zonefile +[submodule "vendor/grammars/sublime-aspectj"] + path = vendor/grammars/sublime-aspectj + url = https://github.com/pchaigno/sublime-aspectj diff --git a/grammars.yml b/grammars.yml index 4da6c0e2..449030af 100644 --- a/grammars.yml +++ b/grammars.yml @@ -479,6 +479,8 @@ vendor/grammars/sublime-MuPAD: - source.mupad vendor/grammars/sublime-apl/: - source.apl +vendor/grammars/sublime-aspectj/: +- source.aspectj vendor/grammars/sublime-befunge: - source.befunge vendor/grammars/sublime-better-typescript: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ed414121..ef3b0968 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -214,7 +214,7 @@ AspectJ: color: "#a957b0" extensions: - .aj - tm_scope: none + tm_scope: source.aspectj ace_mode: text Assembly: diff --git a/vendor/grammars/sublime-aspectj b/vendor/grammars/sublime-aspectj new file mode 160000 index 00000000..888fefdd --- /dev/null +++ b/vendor/grammars/sublime-aspectj @@ -0,0 +1 @@ +Subproject commit 888fefdd2f8db57628d7bd36e2388f1f534c00a7 From 102f14d0e9cf26ace4e076396a21bdd3fe967e2a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 19 Aug 2015 06:59:39 +0100 Subject: [PATCH 623/875] Grammars update --- grammars.yml | 1 + vendor/grammars/Elm.tmLanguage | 2 +- vendor/grammars/Lean.tmbundle | 2 +- vendor/grammars/NimLime | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/abap.tmbundle | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/language-crystal | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-xbase | 2 +- vendor/grammars/latex.tmbundle | 2 +- 13 files changed, 13 insertions(+), 12 deletions(-) diff --git a/grammars.yml b/grammars.yml index 449030af..88d21d39 100644 --- a/grammars.yml +++ b/grammars.yml @@ -331,6 +331,7 @@ vendor/grammars/language-hy: vendor/grammars/language-javascript: - source.js - source.js.regexp +- source.js.regexp.replacement vendor/grammars/language-jsoniq/: - source.jq - source.xq diff --git a/vendor/grammars/Elm.tmLanguage b/vendor/grammars/Elm.tmLanguage index e9fda7c7..f17b1914 160000 --- a/vendor/grammars/Elm.tmLanguage +++ b/vendor/grammars/Elm.tmLanguage @@ -1 +1 @@ -Subproject commit e9fda7c70f1bb8da8275b108420d8c492114b342 +Subproject commit f17b1914dd6447bb5f3168080d3aa8e95d051efb diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle index fb115154..dd3e30f0 160000 --- a/vendor/grammars/Lean.tmbundle +++ b/vendor/grammars/Lean.tmbundle @@ -1 +1 @@ -Subproject commit fb1151547aebacdb474c2e14ad74d2aa6548e2f0 +Subproject commit dd3e30f0581b14b8a4830d6b46eaa86bf62058e8 diff --git a/vendor/grammars/NimLime b/vendor/grammars/NimLime index b0c92d3f..50d7344f 160000 --- a/vendor/grammars/NimLime +++ b/vendor/grammars/NimLime @@ -1 +1 @@ -Subproject commit b0c92d3faedeefcfe76c560f28980450811e2f5b +Subproject commit 50d7344f9b4f50823ac64d14c162982edf8b8056 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 51807687..2451bac8 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 51807687119bab674996669a6f589bf94b911522 +Subproject commit 2451bac8ef1c06b8d4c514d5a417dd6fd295dda4 diff --git a/vendor/grammars/abap.tmbundle b/vendor/grammars/abap.tmbundle index 5973e78c..08d6db92 160000 --- a/vendor/grammars/abap.tmbundle +++ b/vendor/grammars/abap.tmbundle @@ -1 +1 @@ -Subproject commit 5973e78c60d3d7f11fb264b5581bbe492486e771 +Subproject commit 08d6db92d0fddbf7a854584d1f568ca069e7d594 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index 121ff71b..e7a4159f 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit 121ff71b30b4d78978fb52b331ef05600575c019 +Subproject commit e7a4159fbf680ba4cafa9115ea7264a9cdba0fd0 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index 49621511..ac5da311 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit 496215111189a942cd5310635d71d00d1dc1d2c9 +Subproject commit ac5da311f73401db4adc28936c6aaae587a713ee diff --git a/vendor/grammars/language-crystal b/vendor/grammars/language-crystal index 75462302..93264691 160000 --- a/vendor/grammars/language-crystal +++ b/vendor/grammars/language-crystal @@ -1 +1 @@ -Subproject commit 754623023bd556b2bcb927dd8c1fd1ae4153e386 +Subproject commit 932646913b9ceabe96dd0c6dc5f3ef9a894902c2 diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index c8158a6d..9b95c2ad 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit c8158a6d4b779842b5f3d95d023f96748904d551 +Subproject commit 9b95c2ad7c3c1261e54b11919f71ec3ad473aad9 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 1aaf2ff8..39fd6989 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 1aaf2ff8eff25073dad9e81dde48ed05537f2a97 +Subproject commit 39fd6989f78e1be265dc6ce9ba7a0ac450525864 diff --git a/vendor/grammars/language-xbase b/vendor/grammars/language-xbase index 3f77776e..ae860b3b 160000 --- a/vendor/grammars/language-xbase +++ b/vendor/grammars/language-xbase @@ -1 +1 @@ -Subproject commit 3f77776e98054b5ae53f13b14b4da1656497ce41 +Subproject commit ae860b3b02d08bd65827c0a5f0029e65e4df30b4 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 2cae8202..23e62234 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 2cae820272e4b88141fe3f06adfab620951952fb +Subproject commit 23e622349857b2e2181201e510c84fcec8e909d6 From 6995fc28b65d543342991d3ca5fd11c330f0f283 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 19 Aug 2015 07:01:07 +0100 Subject: [PATCH 624/875] v4.5.14 version bump --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index f46a86f2..1ba6a51b 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.13" + VERSION = "4.5.14" end From eca10056a87b6d82d1292aee746d3dfdee0c5b23 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 17:29:35 +0200 Subject: [PATCH 625/875] Rename MemoryBlob to Blob --- lib/linguist/{memory_blob.rb => blob.rb} | 2 +- lib/linguist/file_blob.rb | 4 ++-- test/helper.rb | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) rename lib/linguist/{memory_blob.rb => blob.rb} (98%) diff --git a/lib/linguist/memory_blob.rb b/lib/linguist/blob.rb similarity index 98% rename from lib/linguist/memory_blob.rb rename to lib/linguist/blob.rb index c17cf3e2..8131d9b8 100644 --- a/lib/linguist/memory_blob.rb +++ b/lib/linguist/blob.rb @@ -4,7 +4,7 @@ module Linguist # A MemoryBlob is a wrapper around the content of a file to make it quack # like a Grit::Blob. It provides the basic interface: `name`, # `data`, `path` and `size`. - class MemoryBlob + class Blob include BlobHelper # Public: Initialize a new MemoryBlob. diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 98ef3825..5f8bc373 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -1,11 +1,11 @@ require 'linguist/blob_helper' -require 'linguist/memory_blob' +require 'linguist/blob' module Linguist # A FileBlob is a wrapper around a File object to make it quack # like a Grit::Blob. It provides the basic interface: `name`, # `data`, `path` and `size`. - class FileBlob < MemoryBlob + class FileBlob < Blob include BlobHelper # Public: Initialize a new FileBlob from a path diff --git a/test/helper.rb b/test/helper.rb index 71594416..bac2a62c 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -3,7 +3,7 @@ require "minitest/autorun" require "mocha/setup" require "linguist" require 'color-proximity' -require "linguist/memory_blob" +require "linguist/blob" def fixtures_path File.expand_path("../fixtures", __FILE__) @@ -17,7 +17,7 @@ end def fixture_blob_memory(name) filepath = (name =~ /^\//)? name : File.join(fixtures_path, name) content = File.read(filepath) - Linguist::MemoryBlob.new(name, content) + Linguist::Blob.new(name, content) end def samples_path @@ -32,5 +32,5 @@ end def sample_blob_memory(name) filepath = (name =~ /^\//)? name : File.join(samples_path, name) content = File.read(filepath) - Linguist::MemoryBlob.new(name, content) + Linguist::Blob.new(name, content) end From 2c2b37bec3a78e30ee090894047b9d6f1302d57c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 18:07:42 +0200 Subject: [PATCH 626/875] Reorganize tests Rename test_memory_blob.rb to test_blob.rb for consistence with last commit --- test/test_blob.rb | 565 +++++++--------------------------- test/test_file_blob.rb | 638 ++++++++++++++++++++++++++++++++++++++- test/test_memory_blob.rb | 290 ------------------ 3 files changed, 745 insertions(+), 748 deletions(-) delete mode 100644 test/test_memory_blob.rb diff --git a/test/test_blob.rb b/test/test_blob.rb index 0a1cefe9..1ba856de 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -15,50 +15,47 @@ class TestBlob < Minitest::Test end def script_blob(name) - blob = sample_blob(name) + blob = sample_blob_memory(name) blob.instance_variable_set(:@name, 'script') blob end def test_name - assert_equal "foo.rb", sample_blob("foo.rb").name + assert_equal "foo.rb", sample_blob_memory("Ruby/foo.rb").name end def test_mime_type - assert_equal "application/postscript", fixture_blob("Binary/octocat.ai").mime_type - assert_equal "application/x-ruby", sample_blob("Ruby/grit.rb").mime_type - assert_equal "application/x-sh", sample_blob("Shell/script.sh").mime_type - assert_equal "application/xml", sample_blob("XML/bar.xml").mime_type - assert_equal "audio/ogg", fixture_blob("Binary/foo.ogg").mime_type - assert_equal "text/plain", fixture_blob("Data/README").mime_type + assert_equal "application/postscript", fixture_blob_memory("Binary/octocat.ai").mime_type + assert_equal "application/x-ruby", sample_blob_memory("Ruby/grit.rb").mime_type + assert_equal "application/x-sh", sample_blob_memory("Shell/script.sh").mime_type + assert_equal "text/plain", fixture_blob_memory("Data/README").mime_type end def test_content_type - assert_equal "application/pdf", fixture_blob("Binary/foo.pdf").content_type - assert_equal "audio/ogg", fixture_blob("Binary/foo.ogg").content_type - assert_equal "image/png", fixture_blob("Binary/foo.png").content_type - assert_equal "text/plain; charset=iso-8859-2", fixture_blob("Data/README").content_type + assert_equal "application/pdf", fixture_blob_memory("Binary/foo.pdf").content_type + assert_equal "image/png", fixture_blob_memory("Binary/foo.png").content_type + assert_equal "text/plain; charset=iso-8859-2", fixture_blob_memory("Data/README").content_type end def test_disposition - assert_equal "attachment; filename=foo+bar.jar", fixture_blob("Binary/foo bar.jar").disposition - assert_equal "attachment; filename=foo.bin", fixture_blob("Binary/foo.bin").disposition - assert_equal "attachment; filename=linguist.gem", fixture_blob("Binary/linguist.gem").disposition - assert_equal "attachment; filename=octocat.ai", fixture_blob("Binary/octocat.ai").disposition - assert_equal "inline", fixture_blob("Data/README").disposition - assert_equal "inline", sample_blob("Text/foo.txt").disposition - assert_equal "inline", sample_blob("Ruby/grit.rb").disposition - assert_equal "inline", fixture_blob("Binary/octocat.png").disposition + assert_equal "attachment; filename=foo+bar.jar", fixture_blob_memory("Binary/foo bar.jar").disposition + assert_equal "attachment; filename=foo.bin", fixture_blob_memory("Binary/foo.bin").disposition + assert_equal "attachment; filename=linguist.gem", fixture_blob_memory("Binary/linguist.gem").disposition + assert_equal "attachment; filename=octocat.ai", fixture_blob_memory("Binary/octocat.ai").disposition + assert_equal "inline", fixture_blob_memory("Data/README").disposition + assert_equal "inline", sample_blob_memory("Text/foo.txt").disposition + assert_equal "inline", sample_blob_memory("Ruby/grit.rb").disposition + assert_equal "inline", fixture_blob_memory("Binary/octocat.png").disposition end def test_data - assert_equal "module Foo\nend\n", sample_blob("Ruby/foo.rb").data + assert_equal "module Foo\nend\n", sample_blob_memory("Ruby/foo.rb").data end def test_lines - assert_equal ["module Foo", "end", ""], sample_blob("Ruby/foo.rb").lines - assert_equal ["line 1", "line 2", ""], sample_blob("Text/mac.txt").lines - assert_equal 475, sample_blob("Emacs Lisp/ess-julia.el").lines.length + assert_equal ["module Foo", "end", ""], sample_blob_memory("Ruby/foo.rb").lines + assert_equal ["line 1", "line 2", ""], sample_blob_memory("Text/mac.txt").lines + assert_equal 475, sample_blob_memory("Emacs Lisp/ess-julia.el").lines.length end def test_lines_maintains_original_encoding @@ -66,508 +63,170 @@ class TestBlob < Minitest::Test # earlier versions of the gem made implicit guarantees that the encoding of # each `line` is in the same encoding as the file was originally read (in # practice, UTF-8 or ASCII-8BIT) - assert_equal Encoding.default_external, fixture_blob("Data/utf16le").lines.first.encoding + assert_equal Encoding.default_external, fixture_blob_memory("Data/utf16le").lines.first.encoding end def test_size - assert_equal 15, sample_blob("Ruby/foo.rb").size + assert_equal 15, sample_blob_memory("Ruby/foo.rb").size end def test_loc - assert_equal 3, sample_blob("Ruby/foo.rb").loc + assert_equal 3, sample_blob_memory("Ruby/foo.rb").loc end def test_sloc - assert_equal 2, sample_blob("Ruby/foo.rb").sloc - assert_equal 3, fixture_blob("Data/utf16le-windows").sloc - assert_equal 1, fixture_blob("Data/iso8859-8-i").sloc + assert_equal 2, sample_blob_memory("Ruby/foo.rb").sloc + assert_equal 3, fixture_blob_memory("Data/utf16le-windows").sloc + assert_equal 1, fixture_blob_memory("Data/iso8859-8-i").sloc end def test_encoding - assert_equal "ISO-8859-2", fixture_blob("Data/README").encoding - assert_equal "ISO-8859-2", fixture_blob("Data/README").ruby_encoding - assert_equal "UTF-8", sample_blob("Text/foo.txt").encoding - assert_equal "UTF-8", sample_blob("Text/foo.txt").ruby_encoding - assert_equal "UTF-16LE", fixture_blob("Data/utf16le").encoding - assert_equal "UTF-16LE", fixture_blob("Data/utf16le").ruby_encoding - assert_equal "UTF-16LE", fixture_blob("Data/utf16le-windows").encoding - assert_equal "UTF-16LE", fixture_blob("Data/utf16le-windows").ruby_encoding - assert_equal "ISO-2022-KR", sample_blob("Text/ISO-2022-KR.txt").encoding - assert_equal "binary", sample_blob("Text/ISO-2022-KR.txt").ruby_encoding - assert_nil fixture_blob("Binary/dog.o").encoding + assert_equal "ISO-8859-2", fixture_blob_memory("Data/README").encoding + assert_equal "ISO-8859-2", fixture_blob_memory("Data/README").ruby_encoding + assert_equal "UTF-8", sample_blob_memory("Text/foo.txt").encoding + assert_equal "UTF-8", sample_blob_memory("Text/foo.txt").ruby_encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le").encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le").ruby_encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le-windows").encoding + assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le-windows").ruby_encoding + assert_equal "ISO-2022-KR", sample_blob_memory("Text/ISO-2022-KR.txt").encoding + assert_equal "binary", sample_blob_memory("Text/ISO-2022-KR.txt").ruby_encoding + assert_nil fixture_blob_memory("Binary/dog.o").encoding end def test_binary - # Large blobs aren't loaded - large_blob = sample_blob("git.exe") - large_blob.instance_eval do - def data; end - end - assert large_blob.binary? - - assert fixture_blob("Binary/git.deb").binary? - assert fixture_blob("Binary/git.exe").binary? - assert fixture_blob("Binary/hello.pbc").binary? - assert fixture_blob("Binary/linguist.gem").binary? - assert fixture_blob("Binary/octocat.ai").binary? - assert fixture_blob("Binary/octocat.png").binary? - assert fixture_blob("Binary/zip").binary? - assert !fixture_blob("Data/README").binary? - assert !sample_blob("Ruby/foo.rb").binary? - assert !sample_blob("Perl/script.pl").binary? + assert fixture_blob_memory("Binary/git.deb").binary? + assert fixture_blob_memory("Binary/hello.pbc").binary? + assert fixture_blob_memory("Binary/linguist.gem").binary? + assert fixture_blob_memory("Binary/octocat.ai").binary? + assert fixture_blob_memory("Binary/octocat.png").binary? + assert fixture_blob_memory("Binary/zip").binary? + assert !fixture_blob_memory("Data/README").binary? + assert !sample_blob_memory("Ruby/foo.rb").binary? + assert !sample_blob_memory("Perl/script.pl").binary? end def test_all_binary Samples.each do |sample| - blob = sample_blob(sample[:path]) + blob = sample_blob_memory(sample[:path]) assert ! (blob.likely_binary? || blob.binary?), "#{sample[:path]} is a binary file" end end def test_text - assert fixture_blob("Data/README").text? - assert fixture_blob("Data/md").text? - assert sample_blob("Shell/script.sh").text? - assert fixture_blob("Data/txt").text? + assert fixture_blob_memory("Data/README").text? + assert fixture_blob_memory("Data/md").text? + assert sample_blob_memory("Shell/script.sh").text? + assert fixture_blob_memory("Data/txt").text? end def test_image - assert fixture_blob("Binary/octocat.gif").image? - assert fixture_blob("Binary/octocat.jpeg").image? - assert fixture_blob("Binary/octocat.jpg").image? - assert fixture_blob("Binary/octocat.png").image? - assert !fixture_blob("Binary/octocat.ai").image? - assert !fixture_blob("Binary/octocat.psd").image? + assert fixture_blob_memory("Binary/octocat.png").image? + assert !fixture_blob_memory("Binary/octocat.ai").image? + assert !fixture_blob_memory("Binary/octocat.psd").image? end def test_solid - assert fixture_blob("Binary/cube.stl").solid? - assert fixture_blob("Data/cube.stl").solid? + assert fixture_blob_memory("Binary/cube.stl").solid? + assert fixture_blob_memory("Data/cube.stl").solid? end def test_csv - assert fixture_blob("Data/cars.csv").csv? + assert fixture_blob_memory("Data/cars.csv").csv? end def test_pdf - assert fixture_blob("Binary/foo.pdf").pdf? + assert fixture_blob_memory("Binary/foo.pdf").pdf? end def test_viewable - assert fixture_blob("Data/README").viewable? - assert sample_blob("Ruby/foo.rb").viewable? - assert sample_blob("Perl/script.pl").viewable? - assert !fixture_blob("Binary/linguist.gem").viewable? - assert !fixture_blob("Binary/octocat.ai").viewable? - assert !fixture_blob("Binary/octocat.png").viewable? + assert fixture_blob_memory("Data/README").viewable? + assert sample_blob_memory("Ruby/foo.rb").viewable? + assert sample_blob_memory("Perl/script.pl").viewable? + assert !fixture_blob_memory("Binary/linguist.gem").viewable? + assert !fixture_blob_memory("Binary/octocat.ai").viewable? + assert !fixture_blob_memory("Binary/octocat.png").viewable? end def test_generated - assert !fixture_blob("Data/README").generated? - - # Xcode project files - assert !sample_blob("XML/MainMenu.xib").generated? - assert fixture_blob("Binary/MainMenu.nib").generated? - assert !sample_blob("XML/project.pbxproj").generated? - - # Gemfile.lock is NOT generated - assert !sample_blob("Gemfile.lock").generated? + assert !fixture_blob_memory("Data/README").generated? # Generated .NET Docfiles - assert sample_blob("XML/net_docfile.xml").generated? + assert sample_blob_memory("XML/net_docfile.xml").generated? # Long line - assert !sample_blob("JavaScript/uglify.js").generated? + assert !sample_blob_memory("JavaScript/uglify.js").generated? # Inlined JS, but mostly code - assert !sample_blob("JavaScript/json2_backbone.js").generated? + assert !sample_blob_memory("JavaScript/json2_backbone.js").generated? # Minified JS - assert !sample_blob("JavaScript/jquery-1.6.1.js").generated? - assert sample_blob("JavaScript/jquery-1.6.1.min.js").generated? - assert sample_blob("JavaScript/jquery-1.4.2.min.js").generated? - - # CoffeeScript-generated JS - # TODO - - # TypeScript-generated JS - # TODO + assert !sample_blob_memory("JavaScript/jquery-1.6.1.js").generated? + assert sample_blob_memory("JavaScript/jquery-1.6.1.min.js").generated? + assert sample_blob_memory("JavaScript/jquery-1.4.2.min.js").generated? # Composer generated composer.lock file - assert sample_blob("JSON/composer.lock").generated? + assert sample_blob_memory("JSON/composer.lock").generated? # PEG.js-generated parsers - assert sample_blob("JavaScript/parser.js").generated? + assert sample_blob_memory("JavaScript/parser.js").generated? # Generated PostScript - assert !sample_blob("PostScript/sierpinski.ps").generated? + assert !sample_blob_memory("PostScript/sierpinski.ps").generated? # These examples are too basic to tell - assert !sample_blob("JavaScript/hello.js").generated? + assert !sample_blob_memory("JavaScript/hello.js").generated? - assert sample_blob("JavaScript/intro-old.js").generated? - assert sample_blob("JavaScript/classes-old.js").generated? + assert sample_blob_memory("JavaScript/intro-old.js").generated? + assert sample_blob_memory("JavaScript/classes-old.js").generated? - assert sample_blob("JavaScript/intro.js").generated? - assert sample_blob("JavaScript/classes.js").generated? + assert sample_blob_memory("JavaScript/intro.js").generated? + assert sample_blob_memory("JavaScript/classes.js").generated? # Protocol Buffer generated code - assert sample_blob("C++/protocol-buffer.pb.h").generated? - assert sample_blob("C++/protocol-buffer.pb.cc").generated? - assert sample_blob("Java/ProtocolBuffer.java").generated? - assert sample_blob("Python/protocol_buffer_pb2.py").generated? - assert sample_blob("Go/api.pb.go").generated? - assert sample_blob("Go/embedded.go").generated? + assert sample_blob_memory("C++/protocol-buffer.pb.h").generated? + assert sample_blob_memory("C++/protocol-buffer.pb.cc").generated? + assert sample_blob_memory("Java/ProtocolBuffer.java").generated? + assert sample_blob_memory("Python/protocol_buffer_pb2.py").generated? + assert sample_blob_memory("Go/api.pb.go").generated? + assert sample_blob_memory("Go/embedded.go").generated? # Apache Thrift generated code - assert sample_blob("Python/gen-py-linguist-thrift.py").generated? - assert sample_blob("Go/gen-go-linguist-thrift.go").generated? - assert sample_blob("Java/gen-java-linguist-thrift.java").generated? - assert sample_blob("JavaScript/gen-js-linguist-thrift.js").generated? - assert sample_blob("Ruby/gen-rb-linguist-thrift.rb").generated? - assert sample_blob("Objective-C/gen-cocoa-linguist-thrift.m").generated? + assert sample_blob_memory("Python/gen-py-linguist-thrift.py").generated? + assert sample_blob_memory("Go/gen-go-linguist-thrift.go").generated? + assert sample_blob_memory("Java/gen-java-linguist-thrift.java").generated? + assert sample_blob_memory("JavaScript/gen-js-linguist-thrift.js").generated? + assert sample_blob_memory("Ruby/gen-rb-linguist-thrift.rb").generated? + assert sample_blob_memory("Objective-C/gen-cocoa-linguist-thrift.m").generated? # Generated JNI - assert sample_blob("C/jni_layer.h").generated? + assert sample_blob_memory("C/jni_layer.h").generated? # Minified CSS - assert !sample_blob("CSS/bootstrap.css").generated? - assert sample_blob("CSS/bootstrap.min.css").generated? + assert !sample_blob_memory("CSS/bootstrap.css").generated? + assert sample_blob_memory("CSS/bootstrap.min.css").generated? # Generated VCR - assert sample_blob("YAML/vcr_cassette.yml").generated? + assert sample_blob_memory("YAML/vcr_cassette.yml").generated? # Generated by Zephir - assert sample_blob("Zephir/filenames/exception.zep.c").generated? - assert sample_blob("Zephir/filenames/exception.zep.h").generated? - assert sample_blob("Zephir/filenames/exception.zep.php").generated? - assert !sample_blob("Zephir/Router.zep").generated? - - assert sample_blob("node_modules/grunt/lib/grunt.js").generated? - - # Godep saved dependencies - assert sample_blob("Godeps/Godeps.json").generated? - assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? + assert !sample_blob_memory("Zephir/Router.zep").generated? # Cython-generated C/C++ - assert sample_blob("C/sgd_fast.c").generated? - assert sample_blob("C++/wrapper_inner.cpp").generated? + assert sample_blob_memory("C/sgd_fast.c").generated? + assert sample_blob_memory("C++/wrapper_inner.cpp").generated? # Unity3D-generated metadata - assert sample_blob("Unity3D Asset/Tiles.meta").generated? + assert sample_blob_memory("Unity3D Asset/Tiles.meta").generated? end def test_vendored - assert !fixture_blob("Data/README").vendored? - assert !sample_blob("ext/extconf.rb").vendored? - - # Dependencies - assert sample_blob("dependencies/windows/headers/GL/glext.h").vendored? - - # Node dependencies - assert sample_blob("node_modules/coffee-script/lib/coffee-script.js").vendored? - - # Bower Components - assert sample_blob("bower_components/custom/custom.js").vendored? - assert sample_blob("app/bower_components/custom/custom.js").vendored? - assert sample_blob("vendor/assets/bower_components/custom/custom.js").vendored? - - # Go dependencies - assert !sample_blob("Godeps/Godeps.json").vendored? - assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").vendored? - - # Rails vendor/ - assert sample_blob("vendor/plugins/will_paginate/lib/will_paginate.rb").vendored? - - # Vendor/ - assert sample_blob("Vendor/my_great_file.h").vendored? - - # 'thirdparty' directory - assert sample_blob("thirdparty/lib/main.c").vendored? - - # 'extern(al)' directory - assert sample_blob("extern/util/__init__.py").vendored? - assert sample_blob("external/jquery.min.js").vendored? - - # C deps - assert sample_blob("deps/http_parser/http_parser.c").vendored? - assert sample_blob("deps/v8/src/v8.h").vendored? - - assert sample_blob("tools/something/else.c").vendored? - - # Chart.js - assert sample_blob("some/vendored/path/Chart.js").vendored? - assert !sample_blob("some/vendored/path/chart.js").vendored? - - # Codemirror deps - assert sample_blob("codemirror/mode/blah.js").vendored? - - # Debian packaging - assert sample_blob("debian/cron.d").vendored? - - # Erlang - assert sample_blob("rebar").vendored? - - # git config files - - assert_predicate fixture_blob("some/path/.gitattributes"), :vendored? - assert_predicate fixture_blob(".gitignore"), :vendored? - assert_predicate fixture_blob("special/path/.gitmodules"), :vendored? - - # Minified JavaScript and CSS - assert sample_blob("foo.min.js").vendored? - assert sample_blob("foo.min.css").vendored? - assert sample_blob("foo-min.js").vendored? - assert sample_blob("foo-min.css").vendored? - assert !sample_blob("foomin.css").vendored? - assert !sample_blob("foo.min.txt").vendored? - - #.osx - assert sample_blob(".osx").vendored? - - # Prototype - assert !sample_blob("public/javascripts/application.js").vendored? - assert sample_blob("public/javascripts/prototype.js").vendored? - assert sample_blob("public/javascripts/effects.js").vendored? - assert sample_blob("public/javascripts/controls.js").vendored? - assert sample_blob("public/javascripts/dragdrop.js").vendored? - - # jQuery - assert sample_blob("jquery.js").vendored? - assert sample_blob("public/javascripts/jquery.js").vendored? - assert sample_blob("public/javascripts/jquery.min.js").vendored? - assert sample_blob("public/javascripts/jquery-1.7.js").vendored? - assert sample_blob("public/javascripts/jquery-1.7.min.js").vendored? - assert sample_blob("public/javascripts/jquery-1.5.2.js").vendored? - assert sample_blob("public/javascripts/jquery-1.6.1.js").vendored? - assert sample_blob("public/javascripts/jquery-1.6.1.min.js").vendored? - assert sample_blob("public/javascripts/jquery-1.10.1.js").vendored? - assert sample_blob("public/javascripts/jquery-1.10.1.min.js").vendored? - assert !sample_blob("public/javascripts/jquery.github.menu.js").vendored? - - # jQuery UI - assert sample_blob("themes/ui-lightness/jquery-ui.css").vendored? - assert sample_blob("themes/ui-lightness/jquery-ui-1.8.22.custom.css").vendored? - assert sample_blob("themes/ui-lightness/jquery.ui.accordion.css").vendored? - assert sample_blob("ui/i18n/jquery.ui.datepicker-ar.js").vendored? - assert sample_blob("ui/i18n/jquery-ui-i18n.js").vendored? - assert sample_blob("ui/jquery.effects.blind.js").vendored? - assert sample_blob("ui/jquery-ui-1.8.22.custom.js").vendored? - assert sample_blob("ui/jquery-ui-1.8.22.custom.min.js").vendored? - assert sample_blob("ui/jquery-ui-1.8.22.js").vendored? - assert sample_blob("ui/jquery-ui-1.8.js").vendored? - assert sample_blob("ui/jquery-ui.min.js").vendored? - assert sample_blob("ui/jquery.ui.accordion.js").vendored? - assert sample_blob("ui/minified/jquery.effects.blind.min.js").vendored? - assert sample_blob("ui/minified/jquery.ui.accordion.min.js").vendored? - - # MooTools - assert sample_blob("public/javascripts/mootools-core-1.3.2-full-compat.js").vendored? - assert sample_blob("public/javascripts/mootools-core-1.3.2-full-compat-yc.js").vendored? - - # Dojo - assert sample_blob("public/javascripts/dojo.js").vendored? - - # MochiKit - assert sample_blob("public/javascripts/MochiKit.js").vendored? - - # YUI - assert sample_blob("public/javascripts/yahoo-dom-event.js").vendored? - assert sample_blob("public/javascripts/yahoo-min.js").vendored? - assert sample_blob("public/javascripts/yuiloader-dom-event.js").vendored? - - # WYS editors - assert sample_blob("public/javascripts/ckeditor.js").vendored? - assert sample_blob("public/javascripts/tiny_mce.js").vendored? - assert sample_blob("public/javascripts/tiny_mce_popup.js").vendored? - assert sample_blob("public/javascripts/tiny_mce_src.js").vendored? - - # AngularJS - assert sample_blob("public/javascripts/angular.js").vendored? - assert sample_blob("public/javascripts/angular.min.js").vendored? - - # D3.js - assert sample_blob("public/javascripts/d3.v3.js").vendored? - assert sample_blob("public/javascripts/d3.v3.min.js").vendored? - - # Modernizr - assert sample_blob("public/javascripts/modernizr-2.7.1.js").vendored? - assert sample_blob("public/javascripts/modernizr.custom.01009.js").vendored? - - # Fabric - assert sample_blob("fabfile.py").vendored? - - # WAF - assert sample_blob("waf").vendored? - - # Visual Studio IntelliSense - assert sample_blob("Scripts/jquery-1.7-vsdoc.js").vendored? - - # Microsoft Ajax - assert sample_blob("Scripts/MicrosoftAjax.debug.js").vendored? - assert sample_blob("Scripts/MicrosoftAjax.js").vendored? - assert sample_blob("Scripts/MicrosoftMvcAjax.debug.js").vendored? - assert sample_blob("Scripts/MicrosoftMvcAjax.js").vendored? - assert sample_blob("Scripts/MicrosoftMvcValidation.debug.js").vendored? - assert sample_blob("Scripts/MicrosoftMvcValidation.js").vendored? - - # jQuery validation plugin (MS bundles this with asp.net mvc) - assert sample_blob("Scripts/jquery.validate.js").vendored? - assert sample_blob("Scripts/jquery.validate.min.js").vendored? - assert sample_blob("Scripts/jquery.validate.unobtrusive.js").vendored? - assert sample_blob("Scripts/jquery.validate.unobtrusive.min.js").vendored? - assert sample_blob("Scripts/jquery.unobtrusive-ajax.js").vendored? - assert sample_blob("Scripts/jquery.unobtrusive-ajax.min.js").vendored? - - # NuGet Packages - assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js").vendored? - - # Font Awesome - assert sample_blob("some/asset/path/font-awesome.min.css").vendored? - assert sample_blob("some/asset/path/font-awesome.css").vendored? - - # Normalize - assert sample_blob("some/asset/path/normalize.css").vendored? - - # Carthage - assert sample_blob('Carthage/blah').vendored? - - # Cocoapods - assert sample_blob('Pods/blah').vendored? - - # Html5shiv - assert sample_blob("Scripts/html5shiv.js").vendored? - assert sample_blob("Scripts/html5shiv.min.js").vendored? - - # Test fixtures - assert sample_blob("test/fixtures/random.rkt").vendored? - assert sample_blob("Test/fixtures/random.rkt").vendored? - assert sample_blob("tests/fixtures/random.rkt").vendored? - - # Cordova/PhoneGap - assert sample_blob("cordova.js").vendored? - assert sample_blob("cordova.min.js").vendored? - assert sample_blob("cordova-2.1.0.js").vendored? - assert sample_blob("cordova-2.1.0.min.js").vendored? - - # Foundation js - assert sample_blob("foundation.js").vendored? - assert sample_blob("foundation.min.js").vendored? - assert sample_blob("foundation.abide.js").vendored? - - # Vagrant - assert sample_blob("Vagrantfile").vendored? - - # Gradle - assert sample_blob("gradlew").vendored? - assert sample_blob("gradlew.bat").vendored? - assert sample_blob("gradle/wrapper/gradle-wrapper.properties").vendored? - assert sample_blob("subproject/gradlew").vendored? - assert sample_blob("subproject/gradlew.bat").vendored? - assert sample_blob("subproject/gradle/wrapper/gradle-wrapper.properties").vendored? - - # Octicons - assert sample_blob("octicons.css").vendored? - assert sample_blob("public/octicons.min.css").vendored? - assert sample_blob("public/octicons/sprockets-octicons.scss").vendored? - - # Typesafe Activator - assert sample_blob("activator").vendored? - assert sample_blob("activator.bat").vendored? - assert sample_blob("subproject/activator").vendored? - assert sample_blob("subproject/activator.bat").vendored? - - assert_predicate fixture_blob(".google_apis/bar.jar"), :vendored? - assert_predicate fixture_blob("foo/.google_apis/bar.jar"), :vendored? - - # Sphinx docs - assert sample_blob("docs/_build/asset.doc").vendored? - assert sample_blob("docs/theme/file.css").vendored? - - # Vagrant - assert sample_blob("puphpet/file.pp").vendored? - - # Fabric.io - assert sample_blob("Fabric.framework/Fabric.h").vendored? - - # Crashlytics - assert sample_blob("Crashlytics.framework/Crashlytics.h").vendored? - end - - def test_documentation - assert_predicate fixture_blob("doc/foo.html"), :documentation? - assert_predicate fixture_blob("docs/foo.html"), :documentation? - refute_predicate fixture_blob("project/doc/foo.html"), :documentation? - refute_predicate fixture_blob("project/docs/foo.html"), :documentation? - - assert_predicate fixture_blob("Documentation/foo.md"), :documentation? - assert_predicate fixture_blob("documentation/foo.md"), :documentation? - assert_predicate fixture_blob("project/Documentation/foo.md"), :documentation? - assert_predicate fixture_blob("project/documentation/foo.md"), :documentation? - - assert_predicate fixture_blob("javadoc/foo.html"), :documentation? - assert_predicate fixture_blob("project/javadoc/foo.html"), :documentation? - - assert_predicate fixture_blob("man/foo.html"), :documentation? - refute_predicate fixture_blob("project/man/foo.html"), :documentation? - - assert_predicate fixture_blob("README"), :documentation? - assert_predicate fixture_blob("README.md"), :documentation? - assert_predicate fixture_blob("README.txt"), :documentation? - assert_predicate fixture_blob("Readme"), :documentation? - assert_predicate fixture_blob("readme"), :documentation? - assert_predicate fixture_blob("foo/README"), :documentation? - - assert_predicate fixture_blob("CHANGE"), :documentation? - assert_predicate fixture_blob("CHANGE.md"), :documentation? - assert_predicate fixture_blob("CHANGE.txt"), :documentation? - assert_predicate fixture_blob("foo/CHANGE"), :documentation? - - assert_predicate fixture_blob("CHANGELOG"), :documentation? - assert_predicate fixture_blob("CHANGELOG.md"), :documentation? - assert_predicate fixture_blob("CHANGELOG.txt"), :documentation? - assert_predicate fixture_blob("foo/CHANGELOG"), :documentation? - - assert_predicate fixture_blob("CHANGES"), :documentation? - assert_predicate fixture_blob("CHANGES.md"), :documentation? - assert_predicate fixture_blob("CHANGES.txt"), :documentation? - assert_predicate fixture_blob("foo/CHANGES"), :documentation? - - assert_predicate fixture_blob("CONTRIBUTING"), :documentation? - assert_predicate fixture_blob("CONTRIBUTING.md"), :documentation? - assert_predicate fixture_blob("CONTRIBUTING.txt"), :documentation? - assert_predicate fixture_blob("foo/CONTRIBUTING"), :documentation? - - assert_predicate fixture_blob("examples/some-file.pl"), :documentation? - assert_predicate fixture_blob("Examples/some-example-file.rb"), :documentation? - - assert_predicate fixture_blob("LICENSE"), :documentation? - assert_predicate fixture_blob("LICENCE.md"), :documentation? - assert_predicate fixture_blob("License.txt"), :documentation? - assert_predicate fixture_blob("LICENSE.txt"), :documentation? - assert_predicate fixture_blob("foo/LICENSE"), :documentation? - - assert_predicate fixture_blob("COPYING"), :documentation? - assert_predicate fixture_blob("COPYING.md"), :documentation? - assert_predicate fixture_blob("COPYING.txt"), :documentation? - assert_predicate fixture_blob("foo/COPYING"), :documentation? - - assert_predicate fixture_blob("INSTALL"), :documentation? - assert_predicate fixture_blob("INSTALL.md"), :documentation? - assert_predicate fixture_blob("INSTALL.txt"), :documentation? - assert_predicate fixture_blob("foo/INSTALL"), :documentation? - - refute_predicate fixture_blob("foo.md"), :documentation? - - # Samples - assert sample_blob("Samples/Ruby/foo.rb").documentation? - - assert_predicate fixture_blob("INSTALL.txt"), :documentation? + assert !fixture_blob_memory("Data/README").vendored? end def test_language Samples.each do |sample| - blob = sample_blob(sample[:path]) + blob = sample_blob_memory(sample[:path]) assert blob.language, "No language for #{sample[:path]}" assert_equal sample[:language], blob.language.name, blob.name end @@ -586,7 +245,7 @@ class TestBlob < Minitest::Test filepath = File.join(dirname, filename) next unless File.file?(filepath) - blob = fixture_blob(filepath) + blob = fixture_blob_memory(filepath) if language == 'Data' assert blob.language.nil?, "A language was found for #{filepath}" elsif language == 'Generated' @@ -600,7 +259,7 @@ class TestBlob < Minitest::Test end def test_minified_files_not_safe_to_highlight - assert !sample_blob("JavaScript/jquery-1.6.1.min.js").safe_to_colorize? + assert !sample_blob_memory("JavaScript/jquery-1.6.1.min.js").safe_to_colorize? end def test_empty @@ -613,27 +272,19 @@ class TestBlob < Minitest::Test end def test_include_in_language_stats - vendored = sample_blob("bower_components/custom/custom.js") - assert_predicate vendored, :vendored? - refute_predicate vendored, :include_in_language_stats? - - documentation = fixture_blob("README") - assert_predicate documentation, :documentation? - refute_predicate documentation, :include_in_language_stats? - - generated = sample_blob("CSS/bootstrap.min.css") + generated = sample_blob_memory("CSS/bootstrap.min.css") assert_predicate generated, :generated? refute_predicate generated, :include_in_language_stats? - data = sample_blob("Ant Build System/filenames/ant.xml") + data = sample_blob_memory("Ant Build System/filenames/ant.xml") assert_equal :data, data.language.type refute_predicate data, :include_in_language_stats? - prose = sample_blob("Markdown/tender.md") + prose = sample_blob_memory("Markdown/tender.md") assert_equal :prose, prose.language.type refute_predicate prose, :include_in_language_stats? - included = sample_blob("HTML/pages.html") + included = sample_blob_memory("HTML/pages.html") assert_predicate included, :include_in_language_stats? end end diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index 30d483fe..0ed58807 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -1,9 +1,645 @@ require_relative "./helper" -class TestFileBlob < Minitest::Test +class TestBlob < Minitest::Test + include Linguist + + def setup + # git blobs are normally loaded as ASCII-8BIT since they may contain data + # with arbitrary encoding not known ahead of time + @original_external = Encoding.default_external + Encoding.default_external = Encoding.find("ASCII-8BIT") + end + + def teardown + Encoding.default_external = @original_external + end + + def script_blob(name) + blob = sample_blob(name) + blob.instance_variable_set(:@name, 'script') + blob + end + def test_extensions assert_equal [".gitignore"], Linguist::FileBlob.new(".gitignore").extensions assert_equal [".xml"], Linguist::FileBlob.new("build.xml").extensions assert_equal [".html.erb", ".erb"], Linguist::FileBlob.new("dotted.dir/index.html.erb").extensions end + + def test_name + assert_equal "foo.rb", sample_blob("foo.rb").name + end + + def test_mime_type + assert_equal "application/postscript", fixture_blob("Binary/octocat.ai").mime_type + assert_equal "application/x-ruby", sample_blob("Ruby/grit.rb").mime_type + assert_equal "application/x-sh", sample_blob("Shell/script.sh").mime_type + assert_equal "application/xml", sample_blob("XML/bar.xml").mime_type + assert_equal "audio/ogg", fixture_blob("Binary/foo.ogg").mime_type + assert_equal "text/plain", fixture_blob("Data/README").mime_type + end + + def test_content_type + assert_equal "application/pdf", fixture_blob("Binary/foo.pdf").content_type + assert_equal "audio/ogg", fixture_blob("Binary/foo.ogg").content_type + assert_equal "image/png", fixture_blob("Binary/foo.png").content_type + assert_equal "text/plain; charset=iso-8859-2", fixture_blob("Data/README").content_type + end + + def test_disposition + assert_equal "attachment; filename=foo+bar.jar", fixture_blob("Binary/foo bar.jar").disposition + assert_equal "attachment; filename=foo.bin", fixture_blob("Binary/foo.bin").disposition + assert_equal "attachment; filename=linguist.gem", fixture_blob("Binary/linguist.gem").disposition + assert_equal "attachment; filename=octocat.ai", fixture_blob("Binary/octocat.ai").disposition + assert_equal "inline", fixture_blob("Data/README").disposition + assert_equal "inline", sample_blob("Text/foo.txt").disposition + assert_equal "inline", sample_blob("Ruby/grit.rb").disposition + assert_equal "inline", fixture_blob("Binary/octocat.png").disposition + end + + def test_data + assert_equal "module Foo\nend\n", sample_blob("Ruby/foo.rb").data + end + + def test_lines + assert_equal ["module Foo", "end", ""], sample_blob("Ruby/foo.rb").lines + assert_equal ["line 1", "line 2", ""], sample_blob("Text/mac.txt").lines + assert_equal 475, sample_blob("Emacs Lisp/ess-julia.el").lines.length + end + + def test_lines_maintains_original_encoding + # Even if the file's encoding is detected as something like UTF-16LE, + # earlier versions of the gem made implicit guarantees that the encoding of + # each `line` is in the same encoding as the file was originally read (in + # practice, UTF-8 or ASCII-8BIT) + assert_equal Encoding.default_external, fixture_blob("Data/utf16le").lines.first.encoding + end + + def test_size + assert_equal 15, sample_blob("Ruby/foo.rb").size + end + + def test_loc + assert_equal 3, sample_blob("Ruby/foo.rb").loc + end + + def test_sloc + assert_equal 2, sample_blob("Ruby/foo.rb").sloc + assert_equal 3, fixture_blob("Data/utf16le-windows").sloc + assert_equal 1, fixture_blob("Data/iso8859-8-i").sloc + end + + def test_encoding + assert_equal "ISO-8859-2", fixture_blob("Data/README").encoding + assert_equal "ISO-8859-2", fixture_blob("Data/README").ruby_encoding + assert_equal "UTF-8", sample_blob("Text/foo.txt").encoding + assert_equal "UTF-8", sample_blob("Text/foo.txt").ruby_encoding + assert_equal "UTF-16LE", fixture_blob("Data/utf16le").encoding + assert_equal "UTF-16LE", fixture_blob("Data/utf16le").ruby_encoding + assert_equal "UTF-16LE", fixture_blob("Data/utf16le-windows").encoding + assert_equal "UTF-16LE", fixture_blob("Data/utf16le-windows").ruby_encoding + assert_equal "ISO-2022-KR", sample_blob("Text/ISO-2022-KR.txt").encoding + assert_equal "binary", sample_blob("Text/ISO-2022-KR.txt").ruby_encoding + assert_nil fixture_blob("Binary/dog.o").encoding + end + + def test_binary + # Large blobs aren't loaded + large_blob = sample_blob("git.exe") + large_blob.instance_eval do + def data; end + end + assert large_blob.binary? + + assert fixture_blob("Binary/git.deb").binary? + assert fixture_blob("Binary/git.exe").binary? + assert fixture_blob("Binary/hello.pbc").binary? + assert fixture_blob("Binary/linguist.gem").binary? + assert fixture_blob("Binary/octocat.ai").binary? + assert fixture_blob("Binary/octocat.png").binary? + assert fixture_blob("Binary/zip").binary? + assert !fixture_blob("Data/README").binary? + assert !sample_blob("Ruby/foo.rb").binary? + assert !sample_blob("Perl/script.pl").binary? + end + + def test_all_binary + Samples.each do |sample| + blob = sample_blob(sample[:path]) + assert ! (blob.likely_binary? || blob.binary?), "#{sample[:path]} is a binary file" + end + end + + def test_text + assert fixture_blob("Data/README").text? + assert fixture_blob("Data/md").text? + assert sample_blob("Shell/script.sh").text? + assert fixture_blob("Data/txt").text? + end + + def test_image + assert fixture_blob("Binary/octocat.gif").image? + assert fixture_blob("Binary/octocat.jpeg").image? + assert fixture_blob("Binary/octocat.jpg").image? + assert fixture_blob("Binary/octocat.png").image? + assert !fixture_blob("Binary/octocat.ai").image? + assert !fixture_blob("Binary/octocat.psd").image? + end + + def test_solid + assert fixture_blob("Binary/cube.stl").solid? + assert fixture_blob("Data/cube.stl").solid? + end + + def test_csv + assert fixture_blob("Data/cars.csv").csv? + end + + def test_pdf + assert fixture_blob("Binary/foo.pdf").pdf? + end + + def test_viewable + assert fixture_blob("Data/README").viewable? + assert sample_blob("Ruby/foo.rb").viewable? + assert sample_blob("Perl/script.pl").viewable? + assert !fixture_blob("Binary/linguist.gem").viewable? + assert !fixture_blob("Binary/octocat.ai").viewable? + assert !fixture_blob("Binary/octocat.png").viewable? + end + + def test_generated + assert !fixture_blob("Data/README").generated? + + # Xcode project files + assert !sample_blob("XML/MainMenu.xib").generated? + assert fixture_blob("Binary/MainMenu.nib").generated? + assert !sample_blob("XML/project.pbxproj").generated? + + # Gemfile.lock is NOT generated + assert !sample_blob("Gemfile.lock").generated? + + # Generated .NET Docfiles + assert sample_blob("XML/net_docfile.xml").generated? + + # Long line + assert !sample_blob("JavaScript/uglify.js").generated? + + # Inlined JS, but mostly code + assert !sample_blob("JavaScript/json2_backbone.js").generated? + + # Minified JS + assert !sample_blob("JavaScript/jquery-1.6.1.js").generated? + assert sample_blob("JavaScript/jquery-1.6.1.min.js").generated? + assert sample_blob("JavaScript/jquery-1.4.2.min.js").generated? + + # CoffeeScript-generated JS + # TODO + + # TypeScript-generated JS + # TODO + + # Composer generated composer.lock file + assert sample_blob("JSON/composer.lock").generated? + + # PEG.js-generated parsers + assert sample_blob("JavaScript/parser.js").generated? + + # Generated PostScript + assert !sample_blob("PostScript/sierpinski.ps").generated? + + # These examples are too basic to tell + assert !sample_blob("JavaScript/hello.js").generated? + + assert sample_blob("JavaScript/intro-old.js").generated? + assert sample_blob("JavaScript/classes-old.js").generated? + + assert sample_blob("JavaScript/intro.js").generated? + assert sample_blob("JavaScript/classes.js").generated? + + # Protocol Buffer generated code + assert sample_blob("C++/protocol-buffer.pb.h").generated? + assert sample_blob("C++/protocol-buffer.pb.cc").generated? + assert sample_blob("Java/ProtocolBuffer.java").generated? + assert sample_blob("Python/protocol_buffer_pb2.py").generated? + assert sample_blob("Go/api.pb.go").generated? + assert sample_blob("Go/embedded.go").generated? + + # Apache Thrift generated code + assert sample_blob("Python/gen-py-linguist-thrift.py").generated? + assert sample_blob("Go/gen-go-linguist-thrift.go").generated? + assert sample_blob("Java/gen-java-linguist-thrift.java").generated? + assert sample_blob("JavaScript/gen-js-linguist-thrift.js").generated? + assert sample_blob("Ruby/gen-rb-linguist-thrift.rb").generated? + assert sample_blob("Objective-C/gen-cocoa-linguist-thrift.m").generated? + + # Generated JNI + assert sample_blob("C/jni_layer.h").generated? + + # Minified CSS + assert !sample_blob("CSS/bootstrap.css").generated? + assert sample_blob("CSS/bootstrap.min.css").generated? + + # Generated VCR + assert sample_blob("YAML/vcr_cassette.yml").generated? + + # Generated by Zephir + assert sample_blob("Zephir/filenames/exception.zep.c").generated? + assert sample_blob("Zephir/filenames/exception.zep.h").generated? + assert sample_blob("Zephir/filenames/exception.zep.php").generated? + assert !sample_blob("Zephir/Router.zep").generated? + + assert sample_blob("node_modules/grunt/lib/grunt.js").generated? + + # Godep saved dependencies + assert sample_blob("Godeps/Godeps.json").generated? + assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? + + # Cython-generated C/C++ + assert sample_blob("C/sgd_fast.c").generated? + assert sample_blob("C++/wrapper_inner.cpp").generated? + + # Unity3D-generated metadata + assert sample_blob("Unity3D Asset/Tiles.meta").generated? + end + + def test_vendored + assert !fixture_blob("Data/README").vendored? + assert !sample_blob("ext/extconf.rb").vendored? + + # Dependencies + assert sample_blob("dependencies/windows/headers/GL/glext.h").vendored? + + # Node dependencies + assert sample_blob("node_modules/coffee-script/lib/coffee-script.js").vendored? + + # Bower Components + assert sample_blob("bower_components/custom/custom.js").vendored? + assert sample_blob("app/bower_components/custom/custom.js").vendored? + assert sample_blob("vendor/assets/bower_components/custom/custom.js").vendored? + + # Go dependencies + assert !sample_blob("Godeps/Godeps.json").vendored? + assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").vendored? + + # Rails vendor/ + assert sample_blob("vendor/plugins/will_paginate/lib/will_paginate.rb").vendored? + + # Vendor/ + assert sample_blob("Vendor/my_great_file.h").vendored? + + # 'thirdparty' directory + assert sample_blob("thirdparty/lib/main.c").vendored? + + # 'extern(al)' directory + assert sample_blob("extern/util/__init__.py").vendored? + assert sample_blob("external/jquery.min.js").vendored? + + # C deps + assert sample_blob("deps/http_parser/http_parser.c").vendored? + assert sample_blob("deps/v8/src/v8.h").vendored? + + assert sample_blob("tools/something/else.c").vendored? + + # Chart.js + assert sample_blob("some/vendored/path/Chart.js").vendored? + assert !sample_blob("some/vendored/path/chart.js").vendored? + + # Codemirror deps + assert sample_blob("codemirror/mode/blah.js").vendored? + + # Debian packaging + assert sample_blob("debian/cron.d").vendored? + + # Erlang + assert sample_blob("rebar").vendored? + + # git config files + + assert_predicate fixture_blob("some/path/.gitattributes"), :vendored? + assert_predicate fixture_blob(".gitignore"), :vendored? + assert_predicate fixture_blob("special/path/.gitmodules"), :vendored? + + # Minified JavaScript and CSS + assert sample_blob("foo.min.js").vendored? + assert sample_blob("foo.min.css").vendored? + assert sample_blob("foo-min.js").vendored? + assert sample_blob("foo-min.css").vendored? + assert !sample_blob("foomin.css").vendored? + assert !sample_blob("foo.min.txt").vendored? + + #.osx + assert sample_blob(".osx").vendored? + + # Prototype + assert !sample_blob("public/javascripts/application.js").vendored? + assert sample_blob("public/javascripts/prototype.js").vendored? + assert sample_blob("public/javascripts/effects.js").vendored? + assert sample_blob("public/javascripts/controls.js").vendored? + assert sample_blob("public/javascripts/dragdrop.js").vendored? + + # jQuery + assert sample_blob("jquery.js").vendored? + assert sample_blob("public/javascripts/jquery.js").vendored? + assert sample_blob("public/javascripts/jquery.min.js").vendored? + assert sample_blob("public/javascripts/jquery-1.7.js").vendored? + assert sample_blob("public/javascripts/jquery-1.7.min.js").vendored? + assert sample_blob("public/javascripts/jquery-1.5.2.js").vendored? + assert sample_blob("public/javascripts/jquery-1.6.1.js").vendored? + assert sample_blob("public/javascripts/jquery-1.6.1.min.js").vendored? + assert sample_blob("public/javascripts/jquery-1.10.1.js").vendored? + assert sample_blob("public/javascripts/jquery-1.10.1.min.js").vendored? + assert !sample_blob("public/javascripts/jquery.github.menu.js").vendored? + + # jQuery UI + assert sample_blob("themes/ui-lightness/jquery-ui.css").vendored? + assert sample_blob("themes/ui-lightness/jquery-ui-1.8.22.custom.css").vendored? + assert sample_blob("themes/ui-lightness/jquery.ui.accordion.css").vendored? + assert sample_blob("ui/i18n/jquery.ui.datepicker-ar.js").vendored? + assert sample_blob("ui/i18n/jquery-ui-i18n.js").vendored? + assert sample_blob("ui/jquery.effects.blind.js").vendored? + assert sample_blob("ui/jquery-ui-1.8.22.custom.js").vendored? + assert sample_blob("ui/jquery-ui-1.8.22.custom.min.js").vendored? + assert sample_blob("ui/jquery-ui-1.8.22.js").vendored? + assert sample_blob("ui/jquery-ui-1.8.js").vendored? + assert sample_blob("ui/jquery-ui.min.js").vendored? + assert sample_blob("ui/jquery.ui.accordion.js").vendored? + assert sample_blob("ui/minified/jquery.effects.blind.min.js").vendored? + assert sample_blob("ui/minified/jquery.ui.accordion.min.js").vendored? + + # MooTools + assert sample_blob("public/javascripts/mootools-core-1.3.2-full-compat.js").vendored? + assert sample_blob("public/javascripts/mootools-core-1.3.2-full-compat-yc.js").vendored? + + # Dojo + assert sample_blob("public/javascripts/dojo.js").vendored? + + # MochiKit + assert sample_blob("public/javascripts/MochiKit.js").vendored? + + # YUI + assert sample_blob("public/javascripts/yahoo-dom-event.js").vendored? + assert sample_blob("public/javascripts/yahoo-min.js").vendored? + assert sample_blob("public/javascripts/yuiloader-dom-event.js").vendored? + + # WYS editors + assert sample_blob("public/javascripts/ckeditor.js").vendored? + assert sample_blob("public/javascripts/tiny_mce.js").vendored? + assert sample_blob("public/javascripts/tiny_mce_popup.js").vendored? + assert sample_blob("public/javascripts/tiny_mce_src.js").vendored? + + # AngularJS + assert sample_blob("public/javascripts/angular.js").vendored? + assert sample_blob("public/javascripts/angular.min.js").vendored? + + # D3.js + assert sample_blob("public/javascripts/d3.v3.js").vendored? + assert sample_blob("public/javascripts/d3.v3.min.js").vendored? + + # Modernizr + assert sample_blob("public/javascripts/modernizr-2.7.1.js").vendored? + assert sample_blob("public/javascripts/modernizr.custom.01009.js").vendored? + + # Fabric + assert sample_blob("fabfile.py").vendored? + + # WAF + assert sample_blob("waf").vendored? + + # Visual Studio IntelliSense + assert sample_blob("Scripts/jquery-1.7-vsdoc.js").vendored? + + # Microsoft Ajax + assert sample_blob("Scripts/MicrosoftAjax.debug.js").vendored? + assert sample_blob("Scripts/MicrosoftAjax.js").vendored? + assert sample_blob("Scripts/MicrosoftMvcAjax.debug.js").vendored? + assert sample_blob("Scripts/MicrosoftMvcAjax.js").vendored? + assert sample_blob("Scripts/MicrosoftMvcValidation.debug.js").vendored? + assert sample_blob("Scripts/MicrosoftMvcValidation.js").vendored? + + # jQuery validation plugin (MS bundles this with asp.net mvc) + assert sample_blob("Scripts/jquery.validate.js").vendored? + assert sample_blob("Scripts/jquery.validate.min.js").vendored? + assert sample_blob("Scripts/jquery.validate.unobtrusive.js").vendored? + assert sample_blob("Scripts/jquery.validate.unobtrusive.min.js").vendored? + assert sample_blob("Scripts/jquery.unobtrusive-ajax.js").vendored? + assert sample_blob("Scripts/jquery.unobtrusive-ajax.min.js").vendored? + + # NuGet Packages + assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js").vendored? + + # Font Awesome + assert sample_blob("some/asset/path/font-awesome.min.css").vendored? + assert sample_blob("some/asset/path/font-awesome.css").vendored? + + # Normalize + assert sample_blob("some/asset/path/normalize.css").vendored? + + # Carthage + assert sample_blob('Carthage/blah').vendored? + + # Cocoapods + assert sample_blob('Pods/blah').vendored? + + # Html5shiv + assert sample_blob("Scripts/html5shiv.js").vendored? + assert sample_blob("Scripts/html5shiv.min.js").vendored? + + # Test fixtures + assert sample_blob("test/fixtures/random.rkt").vendored? + assert sample_blob("Test/fixtures/random.rkt").vendored? + assert sample_blob("tests/fixtures/random.rkt").vendored? + + # Cordova/PhoneGap + assert sample_blob("cordova.js").vendored? + assert sample_blob("cordova.min.js").vendored? + assert sample_blob("cordova-2.1.0.js").vendored? + assert sample_blob("cordova-2.1.0.min.js").vendored? + + # Foundation js + assert sample_blob("foundation.js").vendored? + assert sample_blob("foundation.min.js").vendored? + assert sample_blob("foundation.abide.js").vendored? + + # Vagrant + assert sample_blob("Vagrantfile").vendored? + + # Gradle + assert sample_blob("gradlew").vendored? + assert sample_blob("gradlew.bat").vendored? + assert sample_blob("gradle/wrapper/gradle-wrapper.properties").vendored? + assert sample_blob("subproject/gradlew").vendored? + assert sample_blob("subproject/gradlew.bat").vendored? + assert sample_blob("subproject/gradle/wrapper/gradle-wrapper.properties").vendored? + + # Octicons + assert sample_blob("octicons.css").vendored? + assert sample_blob("public/octicons.min.css").vendored? + assert sample_blob("public/octicons/sprockets-octicons.scss").vendored? + + # Typesafe Activator + assert sample_blob("activator").vendored? + assert sample_blob("activator.bat").vendored? + assert sample_blob("subproject/activator").vendored? + assert sample_blob("subproject/activator.bat").vendored? + + assert_predicate fixture_blob(".google_apis/bar.jar"), :vendored? + assert_predicate fixture_blob("foo/.google_apis/bar.jar"), :vendored? + + # Sphinx docs + assert sample_blob("docs/_build/asset.doc").vendored? + assert sample_blob("docs/theme/file.css").vendored? + + # Vagrant + assert sample_blob("puphpet/file.pp").vendored? + + # Fabric.io + assert sample_blob("Fabric.framework/Fabric.h").vendored? + + # Crashlytics + assert sample_blob("Crashlytics.framework/Crashlytics.h").vendored? + end + + def test_documentation + assert_predicate fixture_blob("doc/foo.html"), :documentation? + assert_predicate fixture_blob("docs/foo.html"), :documentation? + refute_predicate fixture_blob("project/doc/foo.html"), :documentation? + refute_predicate fixture_blob("project/docs/foo.html"), :documentation? + + assert_predicate fixture_blob("Documentation/foo.md"), :documentation? + assert_predicate fixture_blob("documentation/foo.md"), :documentation? + assert_predicate fixture_blob("project/Documentation/foo.md"), :documentation? + assert_predicate fixture_blob("project/documentation/foo.md"), :documentation? + + assert_predicate fixture_blob("javadoc/foo.html"), :documentation? + assert_predicate fixture_blob("project/javadoc/foo.html"), :documentation? + + assert_predicate fixture_blob("man/foo.html"), :documentation? + refute_predicate fixture_blob("project/man/foo.html"), :documentation? + + assert_predicate fixture_blob("README"), :documentation? + assert_predicate fixture_blob("README.md"), :documentation? + assert_predicate fixture_blob("README.txt"), :documentation? + assert_predicate fixture_blob("Readme"), :documentation? + assert_predicate fixture_blob("readme"), :documentation? + assert_predicate fixture_blob("foo/README"), :documentation? + + assert_predicate fixture_blob("CHANGE"), :documentation? + assert_predicate fixture_blob("CHANGE.md"), :documentation? + assert_predicate fixture_blob("CHANGE.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGE"), :documentation? + + assert_predicate fixture_blob("CHANGELOG"), :documentation? + assert_predicate fixture_blob("CHANGELOG.md"), :documentation? + assert_predicate fixture_blob("CHANGELOG.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGELOG"), :documentation? + + assert_predicate fixture_blob("CHANGES"), :documentation? + assert_predicate fixture_blob("CHANGES.md"), :documentation? + assert_predicate fixture_blob("CHANGES.txt"), :documentation? + assert_predicate fixture_blob("foo/CHANGES"), :documentation? + + assert_predicate fixture_blob("CONTRIBUTING"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING.md"), :documentation? + assert_predicate fixture_blob("CONTRIBUTING.txt"), :documentation? + assert_predicate fixture_blob("foo/CONTRIBUTING"), :documentation? + + assert_predicate fixture_blob("examples/some-file.pl"), :documentation? + assert_predicate fixture_blob("Examples/some-example-file.rb"), :documentation? + + assert_predicate fixture_blob("LICENSE"), :documentation? + assert_predicate fixture_blob("LICENCE.md"), :documentation? + assert_predicate fixture_blob("License.txt"), :documentation? + assert_predicate fixture_blob("LICENSE.txt"), :documentation? + assert_predicate fixture_blob("foo/LICENSE"), :documentation? + + assert_predicate fixture_blob("COPYING"), :documentation? + assert_predicate fixture_blob("COPYING.md"), :documentation? + assert_predicate fixture_blob("COPYING.txt"), :documentation? + assert_predicate fixture_blob("foo/COPYING"), :documentation? + + assert_predicate fixture_blob("INSTALL"), :documentation? + assert_predicate fixture_blob("INSTALL.md"), :documentation? + assert_predicate fixture_blob("INSTALL.txt"), :documentation? + assert_predicate fixture_blob("foo/INSTALL"), :documentation? + + refute_predicate fixture_blob("foo.md"), :documentation? + + # Samples + assert sample_blob("Samples/Ruby/foo.rb").documentation? + + assert_predicate fixture_blob("INSTALL.txt"), :documentation? + end + + def test_language + Samples.each do |sample| + blob = sample_blob(sample[:path]) + assert blob.language, "No language for #{sample[:path]}" + assert_equal sample[:language], blob.language.name, blob.name + end + + # Test language detection for files which shouldn't be used as samples + root = File.expand_path('../fixtures', __FILE__) + Dir.entries(root).each do |language| + next if language == '.' || language == '..' || language == 'Binary' || + File.basename(language) == 'ace_modes.json' + + # Each directory contains test files of a language + dirname = File.join(root, language) + Dir.entries(dirname).each do |filename| + # By default blob search the file in the samples; + # thus, we need to give it the absolute path + filepath = File.join(dirname, filename) + next unless File.file?(filepath) + + blob = fixture_blob(filepath) + if language == 'Data' + assert blob.language.nil?, "A language was found for #{filepath}" + elsif language == 'Generated' + assert blob.generated?, "#{filepath} is not a generated file" + else + assert blob.language, "No language for #{filepath}" + assert_equal language, blob.language.name, blob.name + end + end + end + end + + def test_minified_files_not_safe_to_highlight + assert !sample_blob("JavaScript/jquery-1.6.1.min.js").safe_to_colorize? + end + + def test_empty + blob = Struct.new(:data) { include Linguist::BlobHelper } + + assert blob.new("").empty? + assert blob.new(nil).empty? + refute blob.new(" ").empty? + refute blob.new("nope").empty? + end + + def test_include_in_language_stats + vendored = sample_blob("bower_components/custom/custom.js") + assert_predicate vendored, :vendored? + refute_predicate vendored, :include_in_language_stats? + + documentation = fixture_blob("README") + assert_predicate documentation, :documentation? + refute_predicate documentation, :include_in_language_stats? + + generated = sample_blob("CSS/bootstrap.min.css") + assert_predicate generated, :generated? + refute_predicate generated, :include_in_language_stats? + + data = sample_blob("Ant Build System/filenames/ant.xml") + assert_equal :data, data.language.type + refute_predicate data, :include_in_language_stats? + + prose = sample_blob("Markdown/tender.md") + assert_equal :prose, prose.language.type + refute_predicate prose, :include_in_language_stats? + + included = sample_blob("HTML/pages.html") + assert_predicate included, :include_in_language_stats? + end end diff --git a/test/test_memory_blob.rb b/test/test_memory_blob.rb deleted file mode 100644 index 1ba856de..00000000 --- a/test/test_memory_blob.rb +++ /dev/null @@ -1,290 +0,0 @@ -require_relative "./helper" - -class TestBlob < Minitest::Test - include Linguist - - def setup - # git blobs are normally loaded as ASCII-8BIT since they may contain data - # with arbitrary encoding not known ahead of time - @original_external = Encoding.default_external - Encoding.default_external = Encoding.find("ASCII-8BIT") - end - - def teardown - Encoding.default_external = @original_external - end - - def script_blob(name) - blob = sample_blob_memory(name) - blob.instance_variable_set(:@name, 'script') - blob - end - - def test_name - assert_equal "foo.rb", sample_blob_memory("Ruby/foo.rb").name - end - - def test_mime_type - assert_equal "application/postscript", fixture_blob_memory("Binary/octocat.ai").mime_type - assert_equal "application/x-ruby", sample_blob_memory("Ruby/grit.rb").mime_type - assert_equal "application/x-sh", sample_blob_memory("Shell/script.sh").mime_type - assert_equal "text/plain", fixture_blob_memory("Data/README").mime_type - end - - def test_content_type - assert_equal "application/pdf", fixture_blob_memory("Binary/foo.pdf").content_type - assert_equal "image/png", fixture_blob_memory("Binary/foo.png").content_type - assert_equal "text/plain; charset=iso-8859-2", fixture_blob_memory("Data/README").content_type - end - - def test_disposition - assert_equal "attachment; filename=foo+bar.jar", fixture_blob_memory("Binary/foo bar.jar").disposition - assert_equal "attachment; filename=foo.bin", fixture_blob_memory("Binary/foo.bin").disposition - assert_equal "attachment; filename=linguist.gem", fixture_blob_memory("Binary/linguist.gem").disposition - assert_equal "attachment; filename=octocat.ai", fixture_blob_memory("Binary/octocat.ai").disposition - assert_equal "inline", fixture_blob_memory("Data/README").disposition - assert_equal "inline", sample_blob_memory("Text/foo.txt").disposition - assert_equal "inline", sample_blob_memory("Ruby/grit.rb").disposition - assert_equal "inline", fixture_blob_memory("Binary/octocat.png").disposition - end - - def test_data - assert_equal "module Foo\nend\n", sample_blob_memory("Ruby/foo.rb").data - end - - def test_lines - assert_equal ["module Foo", "end", ""], sample_blob_memory("Ruby/foo.rb").lines - assert_equal ["line 1", "line 2", ""], sample_blob_memory("Text/mac.txt").lines - assert_equal 475, sample_blob_memory("Emacs Lisp/ess-julia.el").lines.length - end - - def test_lines_maintains_original_encoding - # Even if the file's encoding is detected as something like UTF-16LE, - # earlier versions of the gem made implicit guarantees that the encoding of - # each `line` is in the same encoding as the file was originally read (in - # practice, UTF-8 or ASCII-8BIT) - assert_equal Encoding.default_external, fixture_blob_memory("Data/utf16le").lines.first.encoding - end - - def test_size - assert_equal 15, sample_blob_memory("Ruby/foo.rb").size - end - - def test_loc - assert_equal 3, sample_blob_memory("Ruby/foo.rb").loc - end - - def test_sloc - assert_equal 2, sample_blob_memory("Ruby/foo.rb").sloc - assert_equal 3, fixture_blob_memory("Data/utf16le-windows").sloc - assert_equal 1, fixture_blob_memory("Data/iso8859-8-i").sloc - end - - def test_encoding - assert_equal "ISO-8859-2", fixture_blob_memory("Data/README").encoding - assert_equal "ISO-8859-2", fixture_blob_memory("Data/README").ruby_encoding - assert_equal "UTF-8", sample_blob_memory("Text/foo.txt").encoding - assert_equal "UTF-8", sample_blob_memory("Text/foo.txt").ruby_encoding - assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le").encoding - assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le").ruby_encoding - assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le-windows").encoding - assert_equal "UTF-16LE", fixture_blob_memory("Data/utf16le-windows").ruby_encoding - assert_equal "ISO-2022-KR", sample_blob_memory("Text/ISO-2022-KR.txt").encoding - assert_equal "binary", sample_blob_memory("Text/ISO-2022-KR.txt").ruby_encoding - assert_nil fixture_blob_memory("Binary/dog.o").encoding - end - - def test_binary - assert fixture_blob_memory("Binary/git.deb").binary? - assert fixture_blob_memory("Binary/hello.pbc").binary? - assert fixture_blob_memory("Binary/linguist.gem").binary? - assert fixture_blob_memory("Binary/octocat.ai").binary? - assert fixture_blob_memory("Binary/octocat.png").binary? - assert fixture_blob_memory("Binary/zip").binary? - assert !fixture_blob_memory("Data/README").binary? - assert !sample_blob_memory("Ruby/foo.rb").binary? - assert !sample_blob_memory("Perl/script.pl").binary? - end - - def test_all_binary - Samples.each do |sample| - blob = sample_blob_memory(sample[:path]) - assert ! (blob.likely_binary? || blob.binary?), "#{sample[:path]} is a binary file" - end - end - - def test_text - assert fixture_blob_memory("Data/README").text? - assert fixture_blob_memory("Data/md").text? - assert sample_blob_memory("Shell/script.sh").text? - assert fixture_blob_memory("Data/txt").text? - end - - def test_image - assert fixture_blob_memory("Binary/octocat.png").image? - assert !fixture_blob_memory("Binary/octocat.ai").image? - assert !fixture_blob_memory("Binary/octocat.psd").image? - end - - def test_solid - assert fixture_blob_memory("Binary/cube.stl").solid? - assert fixture_blob_memory("Data/cube.stl").solid? - end - - def test_csv - assert fixture_blob_memory("Data/cars.csv").csv? - end - - def test_pdf - assert fixture_blob_memory("Binary/foo.pdf").pdf? - end - - def test_viewable - assert fixture_blob_memory("Data/README").viewable? - assert sample_blob_memory("Ruby/foo.rb").viewable? - assert sample_blob_memory("Perl/script.pl").viewable? - assert !fixture_blob_memory("Binary/linguist.gem").viewable? - assert !fixture_blob_memory("Binary/octocat.ai").viewable? - assert !fixture_blob_memory("Binary/octocat.png").viewable? - end - - def test_generated - assert !fixture_blob_memory("Data/README").generated? - - # Generated .NET Docfiles - assert sample_blob_memory("XML/net_docfile.xml").generated? - - # Long line - assert !sample_blob_memory("JavaScript/uglify.js").generated? - - # Inlined JS, but mostly code - assert !sample_blob_memory("JavaScript/json2_backbone.js").generated? - - # Minified JS - assert !sample_blob_memory("JavaScript/jquery-1.6.1.js").generated? - assert sample_blob_memory("JavaScript/jquery-1.6.1.min.js").generated? - assert sample_blob_memory("JavaScript/jquery-1.4.2.min.js").generated? - - # Composer generated composer.lock file - assert sample_blob_memory("JSON/composer.lock").generated? - - # PEG.js-generated parsers - assert sample_blob_memory("JavaScript/parser.js").generated? - - # Generated PostScript - assert !sample_blob_memory("PostScript/sierpinski.ps").generated? - - # These examples are too basic to tell - assert !sample_blob_memory("JavaScript/hello.js").generated? - - assert sample_blob_memory("JavaScript/intro-old.js").generated? - assert sample_blob_memory("JavaScript/classes-old.js").generated? - - assert sample_blob_memory("JavaScript/intro.js").generated? - assert sample_blob_memory("JavaScript/classes.js").generated? - - # Protocol Buffer generated code - assert sample_blob_memory("C++/protocol-buffer.pb.h").generated? - assert sample_blob_memory("C++/protocol-buffer.pb.cc").generated? - assert sample_blob_memory("Java/ProtocolBuffer.java").generated? - assert sample_blob_memory("Python/protocol_buffer_pb2.py").generated? - assert sample_blob_memory("Go/api.pb.go").generated? - assert sample_blob_memory("Go/embedded.go").generated? - - # Apache Thrift generated code - assert sample_blob_memory("Python/gen-py-linguist-thrift.py").generated? - assert sample_blob_memory("Go/gen-go-linguist-thrift.go").generated? - assert sample_blob_memory("Java/gen-java-linguist-thrift.java").generated? - assert sample_blob_memory("JavaScript/gen-js-linguist-thrift.js").generated? - assert sample_blob_memory("Ruby/gen-rb-linguist-thrift.rb").generated? - assert sample_blob_memory("Objective-C/gen-cocoa-linguist-thrift.m").generated? - - # Generated JNI - assert sample_blob_memory("C/jni_layer.h").generated? - - # Minified CSS - assert !sample_blob_memory("CSS/bootstrap.css").generated? - assert sample_blob_memory("CSS/bootstrap.min.css").generated? - - # Generated VCR - assert sample_blob_memory("YAML/vcr_cassette.yml").generated? - - # Generated by Zephir - assert !sample_blob_memory("Zephir/Router.zep").generated? - - # Cython-generated C/C++ - assert sample_blob_memory("C/sgd_fast.c").generated? - assert sample_blob_memory("C++/wrapper_inner.cpp").generated? - - # Unity3D-generated metadata - assert sample_blob_memory("Unity3D Asset/Tiles.meta").generated? - end - - def test_vendored - assert !fixture_blob_memory("Data/README").vendored? - end - - def test_language - Samples.each do |sample| - blob = sample_blob_memory(sample[:path]) - assert blob.language, "No language for #{sample[:path]}" - assert_equal sample[:language], blob.language.name, blob.name - end - - # Test language detection for files which shouldn't be used as samples - root = File.expand_path('../fixtures', __FILE__) - Dir.entries(root).each do |language| - next if language == '.' || language == '..' || language == 'Binary' || - File.basename(language) == 'ace_modes.json' - - # Each directory contains test files of a language - dirname = File.join(root, language) - Dir.entries(dirname).each do |filename| - # By default blob search the file in the samples; - # thus, we need to give it the absolute path - filepath = File.join(dirname, filename) - next unless File.file?(filepath) - - blob = fixture_blob_memory(filepath) - if language == 'Data' - assert blob.language.nil?, "A language was found for #{filepath}" - elsif language == 'Generated' - assert blob.generated?, "#{filepath} is not a generated file" - else - assert blob.language, "No language for #{filepath}" - assert_equal language, blob.language.name, blob.name - end - end - end - end - - def test_minified_files_not_safe_to_highlight - assert !sample_blob_memory("JavaScript/jquery-1.6.1.min.js").safe_to_colorize? - end - - def test_empty - blob = Struct.new(:data) { include Linguist::BlobHelper } - - assert blob.new("").empty? - assert blob.new(nil).empty? - refute blob.new(" ").empty? - refute blob.new("nope").empty? - end - - def test_include_in_language_stats - generated = sample_blob_memory("CSS/bootstrap.min.css") - assert_predicate generated, :generated? - refute_predicate generated, :include_in_language_stats? - - data = sample_blob_memory("Ant Build System/filenames/ant.xml") - assert_equal :data, data.language.type - refute_predicate data, :include_in_language_stats? - - prose = sample_blob_memory("Markdown/tender.md") - assert_equal :prose, prose.language.type - refute_predicate prose, :include_in_language_stats? - - included = sample_blob_memory("HTML/pages.html") - assert_predicate included, :include_in_language_stats? - end -end From fd9ce2d1cf1e738058be7f39505431a55a4ed9e6 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Wed, 19 Aug 2015 12:54:21 -0400 Subject: [PATCH 627/875] use licensee to classify submodule licenses --- github-linguist.gemspec | 2 + test/helper.rb | 1 + test/test_grammars.rb | 126 ++++++++++++++++++++++++++-------------- 3 files changed, 84 insertions(+), 45 deletions(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index ce2303bf..548812a3 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -24,4 +24,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'rake' s.add_development_dependency 'yajl-ruby' s.add_development_dependency 'color-proximity', '~> 0.2.1' + s.add_development_dependency 'licensee', '~> 4.7.3' + end diff --git a/test/helper.rb b/test/helper.rb index ab3cc8fa..80060c29 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -3,6 +3,7 @@ require "minitest/autorun" require "mocha/setup" require "linguist" require 'color-proximity' +require 'licensee' def fixtures_path File.expand_path("../fixtures", __FILE__) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 88624ae8..a510585c 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -3,12 +3,13 @@ require_relative "./helper" class TestGrammars < Minitest::Test ROOT = File.expand_path("../..", __FILE__) - LICENSE_WHITELIST = [ + PROJECT_WHITELIST = [ # This grammar's MIT license is inside a subdirectory. "vendor/grammars/SublimePapyrus", # This grammar has a nonstandard but acceptable license. "vendor/grammars/gap-tmbundle", + "vendor/grammars/factor", # These grammars have no license but have been grandfathered in. New grammars # must have a license that allows redistribution. @@ -16,6 +17,22 @@ class TestGrammars < Minitest::Test "vendor/grammars/x86-assembly-textmate-bundle" ].freeze + # List of allowed SPDX license names + LICENSE_WHITELIST = %w[ + apache-2.0 + bsd-2-clause + bsd-3-clause + cc-by-sa-3.0 + gpl-2.0 + gpl-3.0 + lgpl-3.0 + mit + textmate + unlicense + wtfpl + zlib + ].freeze + def setup @grammars = YAML.load(File.read(File.join(ROOT, "grammars.yml"))) end @@ -63,47 +80,35 @@ class TestGrammars < Minitest::Test end def test_submodules_have_licenses - categories = submodule_paths.group_by do |submodule| - files = Dir[File.join(ROOT, submodule, "*")] - license = files.find { |path| File.basename(path) =~ /\b(un)?licen[cs]e\b/i } || files.find { |path| File.basename(path) =~ /\bcopying\b/i } - if license.nil? - if readme = files.find { |path| File.basename(path) =~ /\Areadme\b/i } - license = readme if File.read(readme) =~ /\blicen[cs]e\b/i - end - end - if license.nil? - :unlicensed - elsif classify_license(license) - :licensed + submodule_licenses.each do |submodule, license| + next if PROJECT_WHITELIST.include?(submodule) + + license_file = Licensee::Project.new(submodule).license_file + submodule_name = submodule.split("/").last + + if license_file + assert license, "Submodule #{submodule_name} contains an unrecognized license. Please update #{__FILE__} to recognize the license" else - :unrecognized + assert license, "Submodule #{submodule_name} is unlicensed. All grammars must have a license that permits redistribution" end + + assert LICENSE_WHITELIST.include?(license), "Submodule #{submodule_name} is licensed under the #{license} license" end - unlicensed = categories[:unlicensed] || [] - unrecognized = categories[:unrecognized] || [] - disallowed_unlicensed = unlicensed - LICENSE_WHITELIST - disallowed_unrecognized = unrecognized - LICENSE_WHITELIST - extra_whitelist_entries = LICENSE_WHITELIST - (unlicensed | unrecognized) + unlicensed = submodule_licenses.select { |k,v| v.nil? } + unrecognized = submodule_licenses.select { |k,v| v.nil? && Licensee::Project.new(k).license_file} + licensed = submodule_licenses.reject { |k,v| v.nil? } + unapproved = licensed.reject { |k,v| LICENSE_WHITELIST.include?(v) } + extra_whitelist_entries = PROJECT_WHITELIST - unlicensed.keys - unrecognized.keys + assert unapproved.empty? - message = "" - if disallowed_unlicensed.any? - message << "The following grammar submodules don't seem to have a license. All grammars must have a license that permits redistribution.\n" - message << disallowed_unlicensed.sort.join("\n") - end - if disallowed_unrecognized.any? - message << "\n\n" unless message.empty? - message << "The following grammar submodules have an unrecognized license. Please update #{__FILE__} to recognize the license.\n" - message << disallowed_unrecognized.sort.join("\n") - end - if extra_whitelist_entries.any? - message << "\n\n" unless message.empty? - message << "The following grammar submodules are listed in LICENSE_WHITELIST but either have a license (yay!)\n" - message << "or have been removed from the repository. Please remove them from the whitelist.\n" - message << extra_whitelist_entries.sort.join("\n") - end + extra_whitelist_entries.each do |submodule| + license = submodule_licenses[submodule] + submodule_name = submodule.split("/").last - assert disallowed_unlicensed.empty? && disallowed_unrecognized.empty? && extra_whitelist_entries.empty?, message + assert_equal nil, license, "Submodule #{submodule_name} is listed in PROJECT_WHITELIST but has a license" + assert Dir.exists?(submodule), "Submodule #{submodule_name} is listed in PROJECT_WHITELIST but doesn't appear to be part of the project" + end end private @@ -112,30 +117,61 @@ class TestGrammars < Minitest::Test @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last } end + # Returns a hash of submodules in the form of submodule_path => license + def submodule_licenses + @submodule_licenses = begin + submodules = {} + submodule_paths.each { |submodule| submodules[submodule] = submodule_license(submodule) } + submodules + end + end + + # Given the path to a submodule, return its SPDX-compliant license key + def submodule_license(submodule) + # Prefer Licensee to detect a submodule's license + project = Licensee::Project.new(submodule) + return project.license.key if project.license + + # We know a license file exists, but Licensee wasn't able to detect the license, + # Let's try our own more permissive regex method + if project.license_file + path = File.expand_path project.license_file.path, submodule + license = classify_license(path) + return license if license + end + + # Neither Licensee nor our own regex was able to detect the license, lets check the readme + files = Dir[File.join(ROOT, submodule, "*")] + if readme = files.find { |path| File.basename(path) =~ /\Areadme\b/i } + classify_license(readme) + end + end + def classify_license(path) content = File.read(path) + return unless content =~ /\blicen[cs]e\b/i if content.include?("Apache License") && content.include?("2.0") - "Apache 2.0" + "apache-2.0" elsif content.include?("GNU") && content =~ /general/i && content =~ /public/i if content =~ /version 2/i - "GPLv2" + "gpl-2.0" elsif content =~ /version 3/i - "GPLv3" + "gpl-3.0" end elsif content.include?("GPL") && content.include?("http://www.gnu.org/licenses/gpl.html") - "GPLv3" - elsif content.include?("Creative Commons") - "CC" + "gpl-3.0" + elsif content.include?("Creative Commons Attribution-Share Alike 3.0") + "cc-by-sa-3.0" elsif content.include?("tidy-license.txt") || content.include?("If not otherwise specified (see below)") "textmate" elsif content =~ /^\s*[*-]\s+Redistribution/ || content.include?("Redistributions of source code") - "BSD" + "bsd" elsif content.include?("Permission is hereby granted") || content =~ /\bMIT\b/ - "MIT" + "mit" elsif content.include?("unlicense.org") "unlicense" elsif content.include?("http://www.wtfpl.net/txt/copying/") - "WTFPL" + "wtfpl" elsif content.include?("zlib") && content.include?("license") && content.include?("2. Altered source versions must be plainly marked as such") "zlib" end From 8a7ceaa84530cc9522a4b6d597522a95574fced0 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Wed, 19 Aug 2015 13:22:31 -0400 Subject: [PATCH 628/875] bump licensee to support ruby 1.9.3 --- github-linguist.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 548812a3..87bbc8bf 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -24,6 +24,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'rake' s.add_development_dependency 'yajl-ruby' s.add_development_dependency 'color-proximity', '~> 0.2.1' - s.add_development_dependency 'licensee', '~> 4.7.3' + s.add_development_dependency 'licensee', '~> 4.7.4' end From 0d7a264981d1bf43a7d13c7e577fd418f1d27aa7 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 20:43:16 +0200 Subject: [PATCH 629/875] Update submodule for Prolog grammar --- vendor/grammars/sublimeprolog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/sublimeprolog b/vendor/grammars/sublimeprolog index 465efc54..9fd46df4 160000 --- a/vendor/grammars/sublimeprolog +++ b/vendor/grammars/sublimeprolog @@ -1 +1 @@ -Subproject commit 465efc540e0e87787226a8563d65b15959e5a065 +Subproject commit 9fd46df4b63479a8672d184cd47374a044a11b11 From 7d91e4959a5efeaedfce4ad9b0c4a42c867327a9 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 20:56:14 +0200 Subject: [PATCH 630/875] Dissociate ECLiPSe from Prolog ECLiPSe syntax is slightly different from Prolog syntax ECLiPSe is in the Prolog group so it will only be highlighted differently --- lib/linguist/heuristics.rb | 2 +- lib/linguist/languages.yml | 9 ++++++++- samples/{Prolog => ECLiPSe}/or-constraint.ecl | 0 test/test_heuristics.rb | 6 +++--- 4 files changed, 12 insertions(+), 5 deletions(-) rename samples/{Prolog => ECLiPSe}/or-constraint.ecl (100%) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index fc8699c5..12104ee6 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -112,7 +112,7 @@ module Linguist disambiguate ".ecl" do |data| if /^[^#]+:-/.match(data) - Language["Prolog"] + Language["ECLiPSe"] elsif data.include?(":=") Language["ECL"] end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 6ff194c9..fe37aacb 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -843,6 +843,14 @@ ECL: tm_scope: none ace_mode: text +ECLiPSe: + type: programming + group: prolog + extensions: + - .ecl + tm_scope: source.prolog.eclipse + ace_mode: prolog + Eagle: type: markup color: "#814C05" @@ -2628,7 +2636,6 @@ Prolog: color: "#74283c" extensions: - .pl - - .ecl - .pro - .prolog interpreters: diff --git a/samples/Prolog/or-constraint.ecl b/samples/ECLiPSe/or-constraint.ecl similarity index 100% rename from samples/Prolog/or-constraint.ecl rename to samples/ECLiPSe/or-constraint.ecl diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 59041e7b..3448235b 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -66,11 +66,11 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["ECL", "Prolog"] - def test_ecl_prolog_by_heuristics + # Candidate languages = ["ECL", "ECLiPSe"] + def test_ecl_by_heuristics assert_heuristics({ "ECL" => all_fixtures("ECL", "*.ecl"), - "Prolog" => all_fixtures("Prolog", "*.ecl") + "ECLiPSe" => all_fixtures("ECLiPSe", "*.ecl") }) end From 5c2cfbc334a0a5efc3896cd69dc81e858308df75 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 21:27:40 +0200 Subject: [PATCH 631/875] Remove Typescript grammar --- .gitmodules | 3 --- grammars.yml | 2 -- vendor/grammars/sublime-better-typescript | 1 - 3 files changed, 6 deletions(-) delete mode 160000 vendor/grammars/sublime-better-typescript diff --git a/.gitmodules b/.gitmodules index 47cf934f..dea29f0b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -169,9 +169,6 @@ [submodule "vendor/grammars/sublime-idris"] path = vendor/grammars/sublime-idris url = https://github.com/laughedelic/sublime-idris -[submodule "vendor/grammars/sublime-better-typescript"] - path = vendor/grammars/sublime-better-typescript - url = https://github.com/lavrton/sublime-better-typescript [submodule "vendor/grammars/moonscript-tmbundle"] path = vendor/grammars/moonscript-tmbundle url = https://github.com/leafo/moonscript-tmbundle diff --git a/grammars.yml b/grammars.yml index 88d21d39..4230142b 100644 --- a/grammars.yml +++ b/grammars.yml @@ -484,8 +484,6 @@ vendor/grammars/sublime-aspectj/: - source.aspectj vendor/grammars/sublime-befunge: - source.befunge -vendor/grammars/sublime-better-typescript: -- source.ts vendor/grammars/sublime-bsv: - source.bsv vendor/grammars/sublime-cirru: diff --git a/vendor/grammars/sublime-better-typescript b/vendor/grammars/sublime-better-typescript deleted file mode 160000 index 8266c06a..00000000 --- a/vendor/grammars/sublime-better-typescript +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8266c06aabe5e473766bd9bb62dfeb106fe296a2 From 519b169df0cafc8fcb14bb6b1d9dcab4b2bff51b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 21:30:24 +0200 Subject: [PATCH 632/875] New grammar for Typescript from Sublime Text package --- .gitmodules | 3 +++ grammars.yml | 3 +++ vendor/grammars/sublime-typescript | 1 + 3 files changed, 7 insertions(+) create mode 160000 vendor/grammars/sublime-typescript diff --git a/.gitmodules b/.gitmodules index dea29f0b..429acb57 100644 --- a/.gitmodules +++ b/.gitmodules @@ -671,3 +671,6 @@ [submodule "vendor/grammars/sublime-aspectj"] path = vendor/grammars/sublime-aspectj url = https://github.com/pchaigno/sublime-aspectj +[submodule "vendor/grammars/sublime-typescript"] + path = vendor/grammars/sublime-typescript + url = https://github.com/Microsoft/TypeScript-Sublime-Plugin diff --git a/grammars.yml b/grammars.yml index 4230142b..df137f86 100644 --- a/grammars.yml +++ b/grammars.yml @@ -522,6 +522,9 @@ vendor/grammars/sublime-text-ox/: - source.ox vendor/grammars/sublime-text-pig-latin/: - source.pig_latin +vendor/grammars/sublime-typescript/: +- source.ts +- source.tsx vendor/grammars/sublime-varnish: - source.varnish.vcl vendor/grammars/sublime_cobol: diff --git a/vendor/grammars/sublime-typescript b/vendor/grammars/sublime-typescript new file mode 160000 index 00000000..0d519e5a --- /dev/null +++ b/vendor/grammars/sublime-typescript @@ -0,0 +1 @@ +Subproject commit 0d519e5a5592bd4152523fe359d1a0ebbe9cc493 From 80e2d112b22281a965f31ec162e2a4d1c5c728ca Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 19 Aug 2015 22:07:23 +0200 Subject: [PATCH 633/875] tm_scope for RMarkdown --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ef3b0968..6308fb34 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2813,7 +2813,7 @@ RMarkdown: ace_mode: markdown extensions: - .rmd - tm_scope: none + tm_scope: source.gfm Racket: type: programming From e214a52de5aed5baf2f6580d35a8a1641797e007 Mon Sep 17 00:00:00 2001 From: Alejandro Oviedo Date: Wed, 19 Aug 2015 19:15:05 -0300 Subject: [PATCH 634/875] relativize link in readme ...so it could link properly in other branches and forks. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 374851fb..4ca08af1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ See [Troubleshooting](#troubleshooting) and [`CONTRIBUTING.md`](/CONTRIBUTING.md The Language stats bar is built by aggregating the languages of each file in that repository. If it is reporting a language that you don't expect: 0. Click on the name of the language in the stats bar to see a list of the files that are identified as that language. -0. If you see files that you didn't write, consider moving the files into one of the [paths for vendored code](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml), or use the [manual overrides](#overrides) feature to ignore them. +0. If you see files that you didn't write, consider moving the files into one of the [paths for vendored code](/lib/linguist/vendor.yml), or use the [manual overrides](#overrides) feature to ignore them. 0. If the files are being misclassified, search for [open issues][issues] to see if anyone else has already reported the issue. Any information you an add, especially links to public repositories, is helpful. 0. If there are no reported issues of this misclassification, [open an issue][new-issue] and include a link to the repository or a sample of the code that is being misclassified. From a74f3b3e460f42549a48b529d4c2657779fc15d0 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 20 Aug 2015 10:16:52 +0100 Subject: [PATCH 635/875] Adding Perl/Perl6 heuristic for '.t' --- lib/linguist/heuristics.rb | 4 ++-- test/test_heuristics.rb | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 12104ee6..7c523fa8 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -33,7 +33,7 @@ module Linguist # # Examples # - # disambiguate "Perl", "Prolog" do |data| + # disambiguate ".pm" do |data| # if data.include?("use strict") # Language["Perl"] # elsif /^[^#]+:-/.match(data) @@ -102,7 +102,7 @@ module Linguist end end - disambiguate ".pm" do |data| + disambiguate ".pm", ".t" do |data| if /^(use v6|(my )?class|module)/.match(data) Language["Perl6"] elsif /use strict|use\s+v?5\./.match(data) diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 3448235b..cca48675 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -66,6 +66,16 @@ class TestHeuristcs < Minitest::Test }) end + # Candidate languages = ["Perl", "Perl6"] + def test_t_perl_by_heuristics + assert_heuristics({ + "Perl" => all_fixtures("Perl", "*.t"), + "Perl6" => ["Perl6/01-dash-uppercase-i.t", "Perl6/01-parse.t", "Perl6/advent2009-day16.t", + "Perl6/basic-open.t", "Perl6/calendar.t", "Perl6/for.t", "Perl6/hash.t", + "Perl6/listquote-whitespace.t"] + }) + end + # Candidate languages = ["ECL", "ECLiPSe"] def test_ecl_by_heuristics assert_heuristics({ From fbb3ab22920e2ffb305aa3e1806e8348b950e76b Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Thu, 20 Aug 2015 11:38:31 -0400 Subject: [PATCH 636/875] batch license test output --- test/test_grammars.rb | 52 ++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index a510585c..12b22bd6 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -79,36 +79,32 @@ class TestGrammars < Minitest::Test end end + def test_submodules_have_recognized_licenses + unrecognized = submodule_licenses.select { |k,v| v.nil? && Licensee::Project.new(k).license_file } + unrecognized.reject! { |k,v| PROJECT_WHITELIST.include?(k) } + assert_equal Hash.new, unrecognized, "The following submodules have unrecognized licenses:\n* #{unrecognized.keys.join("\n* ")}" + end + def test_submodules_have_licenses - submodule_licenses.each do |submodule, license| - next if PROJECT_WHITELIST.include?(submodule) + unlicensed = submodule_licenses.select { |k,v| v.nil? }.reject { |k,v| PROJECT_WHITELIST.include?(k) } + assert_equal Hash.new, unlicensed, "The following submodules don't have licenses:\n* #{unlicensed.keys.join("\n* ")}" + end - license_file = Licensee::Project.new(submodule).license_file - submodule_name = submodule.split("/").last + def test_submodules_have_approved_licenses + unapproved = submodule_licenses.reject { |k,v| LICENSE_WHITELIST.include?(v) || PROJECT_WHITELIST.include?(k) }.map { |k,v| "#{k}: #{v}"} + assert_equal [], unapproved, "The following submodules have unapproved licenses:\n* #{unapproved.join("\n* ")}" + end - if license_file - assert license, "Submodule #{submodule_name} contains an unrecognized license. Please update #{__FILE__} to recognize the license" - else - assert license, "Submodule #{submodule_name} is unlicensed. All grammars must have a license that permits redistribution" - end + def test_submodules_whitelist_has_no_extra_entries + extra_whitelist_entries = PROJECT_WHITELIST - submodule_licenses.select { |k,v| v.nil? }.keys + not_present = extra_whitelist_entries.reject { |k,v| Dir.exists?(k) } + licensed = extra_whitelist_entries.select { |k,v| submodule_licenses[k] } - assert LICENSE_WHITELIST.include?(license), "Submodule #{submodule_name} is licensed under the #{license} license" - end + msg = "The following whitelisted submodules don't appear to be part of the project:\n* #{not_present.join("\n* ")}" + assert_equal [], not_present, msg - unlicensed = submodule_licenses.select { |k,v| v.nil? } - unrecognized = submodule_licenses.select { |k,v| v.nil? && Licensee::Project.new(k).license_file} - licensed = submodule_licenses.reject { |k,v| v.nil? } - unapproved = licensed.reject { |k,v| LICENSE_WHITELIST.include?(v) } - extra_whitelist_entries = PROJECT_WHITELIST - unlicensed.keys - unrecognized.keys - assert unapproved.empty? - - extra_whitelist_entries.each do |submodule| - license = submodule_licenses[submodule] - submodule_name = submodule.split("/").last - - assert_equal nil, license, "Submodule #{submodule_name} is listed in PROJECT_WHITELIST but has a license" - assert Dir.exists?(submodule), "Submodule #{submodule_name} is listed in PROJECT_WHITELIST but doesn't appear to be part of the project" - end + msg = "The following whitelisted submodules actually have licenses and don't need to be whitelisted:\n* #{licensed.join("\n* ")}" + assert_equal [], licensed, msg end private @@ -119,7 +115,7 @@ class TestGrammars < Minitest::Test # Returns a hash of submodules in the form of submodule_path => license def submodule_licenses - @submodule_licenses = begin + @@submodule_licenses ||= begin submodules = {} submodule_paths.each { |submodule| submodules[submodule] = submodule_license(submodule) } submodules @@ -164,12 +160,8 @@ class TestGrammars < Minitest::Test "cc-by-sa-3.0" elsif content.include?("tidy-license.txt") || content.include?("If not otherwise specified (see below)") "textmate" - elsif content =~ /^\s*[*-]\s+Redistribution/ || content.include?("Redistributions of source code") - "bsd" elsif content.include?("Permission is hereby granted") || content =~ /\bMIT\b/ "mit" - elsif content.include?("unlicense.org") - "unlicense" elsif content.include?("http://www.wtfpl.net/txt/copying/") "wtfpl" elsif content.include?("zlib") && content.include?("license") && content.include?("2. Altered source versions must be plainly marked as such") From 62a0faa729593936cfd80b3996284f12da71dbf5 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Thu, 20 Aug 2015 12:23:52 -0400 Subject: [PATCH 637/875] let us --- test/test_grammars.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 12b22bd6..6aab2935 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -136,7 +136,7 @@ class TestGrammars < Minitest::Test return license if license end - # Neither Licensee nor our own regex was able to detect the license, lets check the readme + # Neither Licensee nor our own regex was able to detect the license, let's check the readme files = Dir[File.join(ROOT, submodule, "*")] if readme = files.find { |path| File.basename(path) =~ /\Areadme\b/i } classify_license(readme) From 16e65fe18953a0231ff6721939ded1a8e4677245 Mon Sep 17 00:00:00 2001 From: Blake Embrey Date: Thu, 20 Aug 2015 10:07:44 -0700 Subject: [PATCH 638/875] Make RAML a markup language RAML was originally merged as a data language, but this seems like an incorrect definition. I changed it to be markup instead, which will also result in RAML appearing in repo statistics. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8936b0f4..5b31ed4f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2778,7 +2778,7 @@ R: ace_mode: r RAML: - type: data + type: markup ace_mode: yaml tm_scope: source.yaml color: "#77d9fb" From cb550a36623b0516262701b9cb7c4e2c1e5756aa Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Thu, 20 Aug 2015 15:30:51 -0400 Subject: [PATCH 639/875] remove some random submodules --- vendor/grammars/prolog.tmbundle | 1 - vendor/grammars/sublime-better-typescript | 1 - 2 files changed, 2 deletions(-) delete mode 160000 vendor/grammars/prolog.tmbundle delete mode 160000 vendor/grammars/sublime-better-typescript diff --git a/vendor/grammars/prolog.tmbundle b/vendor/grammars/prolog.tmbundle deleted file mode 160000 index d955aca3..00000000 --- a/vendor/grammars/prolog.tmbundle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d955aca38b7aadce76e6815eb09487a370206742 diff --git a/vendor/grammars/sublime-better-typescript b/vendor/grammars/sublime-better-typescript deleted file mode 160000 index 8266c06a..00000000 --- a/vendor/grammars/sublime-better-typescript +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8266c06aabe5e473766bd9bb62dfeb106fe296a2 From 96518d2d0f5bdfb01f6a0598193876d4bf942fad Mon Sep 17 00:00:00 2001 From: LeonaMorro Date: Fri, 21 Aug 2015 11:17:12 +0200 Subject: [PATCH 640/875] added *.lslp as LSL(Linden Scripting Language) --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5b31ed4f..0d552ac7 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1719,6 +1719,7 @@ LSL: ace_mode: lsl extensions: - .lsl + - .lslp interpreters: - lsl color: '#3d9970' From e922b7c2cae45c1b93f35035c4dc6383fadddcfb Mon Sep 17 00:00:00 2001 From: LeonaMorro Date: Fri, 21 Aug 2015 11:44:23 +0200 Subject: [PATCH 641/875] added *.lslp to samples/LSL folder --- samples/LSL/LSL.lslp | 74 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 samples/LSL/LSL.lslp diff --git a/samples/LSL/LSL.lslp b/samples/LSL/LSL.lslp new file mode 100644 index 00000000..5d281b95 --- /dev/null +++ b/samples/LSL/LSL.lslp @@ -0,0 +1,74 @@ +/* + Testing syntax highlighting + for the Linden Scripting Language +*/ + +integer someIntNormal = 3672; +integer someIntHex = 0x00000000; +integer someIntMath = PI_BY_TWO; + +integer event = 5673;// 'event' is invalid.illegal + +key someKeyTexture = TEXTURE_DEFAULT; +string someStringSpecial = EOF; + +some_user_defined_function_without_return_type(string inputAsString) +{ + llSay(PUBLIC_CHANNEL, inputAsString); +} + +string user_defined_function_returning_a_string(key inputAsKey) +{ + return (string)inputAsKey; +} + +default +{ + state_entry() + { + key someKey = NULL_KEY; + someKey = llGetOwner(); + + string someString = user_defined_function_returning_a_string(someKey); + + some_user_defined_function_without_return_type(someString); + } + + touch_start(integer num_detected) + { + list agentsInRegion = llGetAgentList(AGENT_LIST_REGION, []); + integer numOfAgents = llGetListLength(agentsInRegion); + + integer index; // defaults to 0 + for (; index <= numOfAgents - 1; index++) // for each agent in region + { + llRegionSayTo(llList2Key(agentsInRegion, index), PUBLIC_CHANNEL, "Hello, Avatar!"); + } + } + + touch_end(integer num_detected) + { + someIntNormal = 3672; + someIntHex = 0x00000000; + someIntMath = PI_BY_TWO; + + event = 5673;// 'event' is invalid.illegal + + someKeyTexture = TEXTURE_DEFAULT; + someStringSpecial = EOF; + + llSetInventoryPermMask("some item", MASK_NEXT, PERM_ALL);// 'llSetInventoryPermMask' is reserved.godmode + + llWhisper(PUBLIC_CHANNEL, "Leaving \"default\" now..."); + state other; + } +} + +state other +{ + state_entry() + { + llWhisper(PUBLIC_CHANNEL, "Entered \"state other\", returning to \"default\" again..."); + state default; + } +} From 7025cbe760f191e00c30c4847ae0e4dd467e1fc8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 21 Aug 2015 12:12:52 +0200 Subject: [PATCH 642/875] Fix CodeMirror regex for vendored files --- lib/linguist/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index ed89eda8..314fe956 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -122,7 +122,7 @@ - (^|/)Chart\.js$ # Codemirror -- (^|/)[Cc]ode[Mm]irror/(lib|mode|theme|addon|keymap|demo) +- (^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo) # SyntaxHighlighter - http://alexgorbatchev.com/ - (^|/)shBrush([^.]*)\.js$ From 1d9faff4c60e33fbdd0de8907ad2758279b19dd8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 21 Aug 2015 12:13:42 +0200 Subject: [PATCH 643/875] New JS vendored files --- lib/linguist/vendor.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 314fe956..73b1071e 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -78,6 +78,9 @@ # Haxelib projects often contain a neko bytecode file named run.n - run.n$ +# Bootstrap Datepicker +- bootstrap-datepicker/ + ## Commonly Bundled JavaScript frameworks ## # jQuery @@ -88,6 +91,30 @@ - (^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?\.(js|css)$ - (^|/)jquery\.(ui|effects)\.([^.]*)\.(js|css)$ +# jQuery Gantt +- jquery.fn.gantt.js + +# jQuery fancyBox +- jquery.fancybox.js + +# Fuel UX +- fuelux.js + +# jQuery File Upload +- (^|/)jquery\.fileupload(-\w+)?\.js$ + +# Slick +- (^|/)slick\.(core|dataview|editors|formatters|grid|groupitemmetadataprovider|remotemodel)\.js$ + +# Leaflet plugins +- (^|/)Leaflet\.Coordinates-\d+\.\d+\.\d+\.src\.js$ +- leaflet.draw-src.js +- leaflet.draw.css +- Control.FullScreen.css +- Control.FullScreen.js +- leaflet.spin.js +- wicket-leaflet.js + # Prototype - (^|/)prototype(.*)\.js$ - (^|/)effects\.js$ From 4e6e69833d9b9c46395dbaecde66de1fe5916f0e Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 21 Aug 2015 12:15:17 +0200 Subject: [PATCH 644/875] Test for new CodeMirror regexp --- test/test_blob.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/test/test_blob.rb b/test/test_blob.rb index 0a1cefe9..46869987 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -301,6 +301,7 @@ class TestBlob < Minitest::Test # Codemirror deps assert sample_blob("codemirror/mode/blah.js").vendored? + assert sample_blob("codemirror/5.0/mode/blah.js").vendored? # Debian packaging assert sample_blob("debian/cron.d").vendored? From e6b4428614664c5d72d7b799eb73d885e39f3cbc Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 21 Aug 2015 12:24:04 +0200 Subject: [PATCH 645/875] Tests for new vendored files --- test/test_blob.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/test_blob.rb b/test/test_blob.rb index 46869987..ca9640c4 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -362,6 +362,26 @@ class TestBlob < Minitest::Test assert sample_blob("ui/minified/jquery.effects.blind.min.js").vendored? assert sample_blob("ui/minified/jquery.ui.accordion.min.js").vendored? + # jQuery Gantt + assert sample_blob("web-app/jquery-gantt/js/jquery.fn.gantt.js").vendored? + + # jQuery fancyBox + assert sample_blob("web-app/fancybox/jquery.fancybox.js").vendored? + + # Fuel UX + assert sample_blob("web-app/fuelux/js/fuelux.js").vendored? + + # jQuery File Upload + assert sample_blob("fileupload-9.0.0/jquery.fileupload-process.js").vendored? + + # Slick + assert sample_blob("web-app/slickgrid/controls/slick.columnpicker.js").vendored? + + # Leaflet plugins + assert sample_blob("leaflet-plugins/Leaflet.Coordinates-0.5.0.src.js").vendored? + assert sample_blob("leaflet-plugins/leaflet.draw-src.js").vendored? + assert sample_blob("leaflet-plugins/leaflet.spin.js").vendored? + # MooTools assert sample_blob("public/javascripts/mootools-core-1.3.2-full-compat.js").vendored? assert sample_blob("public/javascripts/mootools-core-1.3.2-full-compat-yc.js").vendored? From c0fff6c8a8e560188004b801d8cfe60da49e89e7 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 21 Aug 2015 12:30:01 +0200 Subject: [PATCH 646/875] Make Slick regexp more general --- lib/linguist/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 73b1071e..cf312d89 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -104,7 +104,7 @@ - (^|/)jquery\.fileupload(-\w+)?\.js$ # Slick -- (^|/)slick\.(core|dataview|editors|formatters|grid|groupitemmetadataprovider|remotemodel)\.js$ +- (^|/)slick\.\w+.js$ # Leaflet plugins - (^|/)Leaflet\.Coordinates-\d+\.\d+\.\d+\.src\.js$ From 0d8e0a29702d94ae83f1e2003ca23bc8fc4468c0 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 24 Aug 2015 12:32:26 +0200 Subject: [PATCH 647/875] Sublime Text workspace files as vendored --- lib/linguist/vendor.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index cf312d89..d5965bb2 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -115,6 +115,10 @@ - leaflet.spin.js - wicket-leaflet.js +# Sublime Text workspace files +- .sublime-project +- .sublime-workspace + # Prototype - (^|/)prototype(.*)\.js$ - (^|/)effects\.js$ From 25a1af3775fade12c9b3c024ac5137ac063a513c Mon Sep 17 00:00:00 2001 From: Louis Mandel Date: Mon, 24 Aug 2015 13:26:43 -0400 Subject: [PATCH 648/875] Add the X10 language (http://x10-lang.org/). --- .gitmodules | 3 + grammars.yml | 2 + lib/linguist/languages.yml | 10 ++ samples/X10/ArraySum.x10 | 72 ++++++++++++ samples/X10/Cancellation.x10 | 50 +++++++++ samples/X10/Fibonacci.x10 | 52 +++++++++ samples/X10/HeatTransfer_v0.x10 | 86 ++++++++++++++ samples/X10/HeatTransfer_v1.x10 | 114 +++++++++++++++++++ samples/X10/HelloWholeWorld.x10 | 44 ++++++++ samples/X10/HelloWorld.x10 | 23 ++++ samples/X10/Histogram.x10 | 45 ++++++++ samples/X10/Integrate.x10 | 55 +++++++++ samples/X10/KMeans.x10 | 151 +++++++++++++++++++++++++ samples/X10/KMeansDist.x10 | 147 ++++++++++++++++++++++++ samples/X10/KMeansDistPlh.x10 | 144 ++++++++++++++++++++++++ samples/X10/KMeansSPMD.x10 | 192 ++++++++++++++++++++++++++++++++ samples/X10/MontyPi.x10 | 42 +++++++ samples/X10/NQueensDist.x10 | 123 ++++++++++++++++++++ samples/X10/NQueensPar.x10 | 117 +++++++++++++++++++ samples/X10/QSort.x10 | 73 ++++++++++++ samples/X10/StructSpheres.x10 | 123 ++++++++++++++++++++ vendor/grammars/X10 | 1 + 22 files changed, 1669 insertions(+) create mode 100644 samples/X10/ArraySum.x10 create mode 100644 samples/X10/Cancellation.x10 create mode 100644 samples/X10/Fibonacci.x10 create mode 100644 samples/X10/HeatTransfer_v0.x10 create mode 100644 samples/X10/HeatTransfer_v1.x10 create mode 100644 samples/X10/HelloWholeWorld.x10 create mode 100644 samples/X10/HelloWorld.x10 create mode 100644 samples/X10/Histogram.x10 create mode 100644 samples/X10/Integrate.x10 create mode 100644 samples/X10/KMeans.x10 create mode 100644 samples/X10/KMeansDist.x10 create mode 100644 samples/X10/KMeansDistPlh.x10 create mode 100644 samples/X10/KMeansSPMD.x10 create mode 100644 samples/X10/MontyPi.x10 create mode 100644 samples/X10/NQueensDist.x10 create mode 100644 samples/X10/NQueensPar.x10 create mode 100644 samples/X10/QSort.x10 create mode 100644 samples/X10/StructSpheres.x10 create mode 160000 vendor/grammars/X10 diff --git a/.gitmodules b/.gitmodules index 35cc9de8..5f07d011 100644 --- a/.gitmodules +++ b/.gitmodules @@ -674,3 +674,6 @@ [submodule "vendor/grammars/sublime-typescript"] path = vendor/grammars/sublime-typescript url = https://github.com/Microsoft/TypeScript-Sublime-Plugin +[submodule "vendor/grammars/X10"] + path = vendor/grammars/X10 + url = git@github.com:x10-lang/x10-highlighting.git diff --git a/grammars.yml b/grammars.yml index ae9ff92c..42be3967 100644 --- a/grammars.yml +++ b/grammars.yml @@ -144,6 +144,8 @@ vendor/grammars/VBDotNetSyntax: - source.vbnet vendor/grammars/Vala-TMBundle: - source.vala +vendor/grammars/X10: +- source.x10 vendor/grammars/abap.tmbundle: - source.abap vendor/grammars/actionscript3-tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5b31ed4f..311c8d79 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3567,6 +3567,16 @@ WebIDL: tm_scope: source.webidl ace_mode: text +X10: + type: programming + aliases: + - xten + ace_mode: text + extensions: + - .x10 + color: "#4B6BEF" + tm_scope: source.x10 + XC: type: programming color: "#99DA07" diff --git a/samples/X10/ArraySum.x10 b/samples/X10/ArraySum.x10 new file mode 100644 index 00000000..389d0e87 --- /dev/null +++ b/samples/X10/ArraySum.x10 @@ -0,0 +1,72 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; + +/** + * A simple illustration of loop parallelization within a single place. + */ +public class ArraySum { + + var sum:Long; + val data:Rail[Long]; + + public def this(n:Long) { + // Create a Rail with n elements (0..(n-1)), all initialized to 1. + data = new Rail[Long](n, 1); + sum = 0; + } + + def sum(a:Rail[Long], start:Long, last:Long) { + var mySum: Long = 0; + for (i in start..(last-1)) { + mySum += a(i); + } + return mySum; + } + + def sum(numThreads:Long) { + val mySize = data.size/numThreads; + finish for (p in 0..(numThreads-1)) async { + val mySum = sum(data, p*mySize, (p+1)*mySize); + // Multiple activities will simultaneously update + // this location -- so use an atomic operation. + atomic sum += mySum; + } + } + + public static def main(args:Rail[String]) { + var size:Long = 5*1000*1000; + if (args.size >=1) + size = Long.parse(args(0)); + + Console.OUT.println("Initializing."); + val a = new ArraySum(size); + val P = [1,2,4]; + + //warmup loop + Console.OUT.println("Warming up."); + for (numThreads in P) + a.sum(numThreads); + + for (numThreads in P) { + Console.OUT.println("Starting with " + numThreads + " threads."); + a.sum=0; + var time: long = - System.nanoTime(); + a.sum(numThreads); + time += System.nanoTime(); + Console.OUT.println("For p=" + numThreads + + " result: " + a.sum + + ((size==a.sum)? " ok" : " bad") + + " (time=" + (time/(1000*1000)) + " ms)"); + } + } +} diff --git a/samples/X10/Cancellation.x10 b/samples/X10/Cancellation.x10 new file mode 100644 index 00000000..1e13bea1 --- /dev/null +++ b/samples/X10/Cancellation.x10 @@ -0,0 +1,50 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.xrx.Runtime; + +/** + * Demonstrate how to instantiate the X10 runtime as an executor service + * submit jobs to the runtime, wait jobs to complete and cancel all jobs + * + * Compile with: x10c -O -EXECUTOR_MODE=true Cancellation.x10 + * Run with: X10_CANCELLABLE=true X10_NPLACES=4 x10 -DX10RT_IMPL=JavaSockets Cancellation + */ +class Cancellation { + static def job(id:Long, iterations:Long) = ()=>{ + at (Place.places().next(here)) async { + for (i in 1..iterations) { + finish for (p in Place.places()) { + at (p) async Console.OUT.println(here+" says hello (job " + id + ", iteration " + i + ")"); + } + Console.ERR.println(); + System.sleep(200); + } + } + }; + + public static def main(args:Rail[String]):void { + val w1 = Runtime.submit(job(1, 5)); + w1.await(); Console.ERR.println("Job 1 completed\n"); + val w2 = Runtime.submit(job(2, 1000)); + System.threadSleep(1000); + val c1 = Runtime.cancelAll(); + try { w2.await(); } catch (e:Exception) { Console.ERR.println("Job 2 aborted with exception " + e +"\n"); } + c1.await(); // waiting for cancellation to be processed + System.threadSleep(1000); + Runtime.submit(job(3, 1000)); + Runtime.submit(job(4, 1000)); + System.threadSleep(1000); + val c2 = Runtime.cancelAll(); + c2.await(); + Console.ERR.println("Goodbye\n"); + } +} diff --git a/samples/X10/Fibonacci.x10 b/samples/X10/Fibonacci.x10 new file mode 100644 index 00000000..fc1466f1 --- /dev/null +++ b/samples/X10/Fibonacci.x10 @@ -0,0 +1,52 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; + +/** + * This is a small program to illustrate the use of + * async and finish in a + * prototypical recursive divide-and-conquer algorithm. + * It is obviously not intended to show a efficient way to + * compute Fibonacci numbers in X10.

+ * + * The heart of the example is the run method, + * which directly embodies the recursive definition of + *

+ *   fib(n) = fib(n-1)+fib(n-2);
+ * 
+ * by using an async to compute fib(n-1) while + * the current activity computes fib(n-2). A finish + * is used to ensure that both computations are complete before + * their results are added together to compute fib(n) + */ +public class Fibonacci { + + public static def fib(n:long) { + if (n<=2) return 1; + + val f1:long; + val f2:long; + finish { + async { f1 = fib(n-1); } + f2 = fib(n-2); + } + return f1 + f2; + } + + public static def main(args:Rail[String]) { + val n = (args.size > 0) ? Long.parse(args(0)) : 10; + Console.OUT.println("Computing fib("+n+")"); + val f = fib(n); + Console.OUT.println("fib("+n+") = "+f); + } +} + diff --git a/samples/X10/HeatTransfer_v0.x10 b/samples/X10/HeatTransfer_v0.x10 new file mode 100644 index 00000000..5546fae8 --- /dev/null +++ b/samples/X10/HeatTransfer_v0.x10 @@ -0,0 +1,86 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.array.*; +import x10.compiler.Foreach; +import x10.compiler.Inline; + + +/** + * This is a sample program illustrating how to use + * X10's array classes. It also illustrates the use + * of foreach to acheive intra-place parallelism. + * + * The program solves a set of 2D partial differential + * equations by iteratively applying a 5-point stencil + * operation until convergence is reached. + */ +public class HeatTransfer_v0 { + static val EPSILON = 1.0e-5; + + val N:Long; + val A:Array_2[Double]{self!=null}; + val Tmp:Array_2[Double]{self!=null}; + + public def this(size:Long) { + N = size; + A = new Array_2[Double](N+2, N+2); // zero-initialized N+2 * N+2 array of doubles + for (j in 1..N) A(0, j) = 1; // set one border row to 1 + Tmp = new Array_2[Double](A); + } + + final @Inline def stencil(x:Long, y:Long):Double { + return (A(x-1,y) + A(x+1,y) + A(x,y-1) + A(x,y+1)) / 4; + } + + def run() { + val is = new DenseIterationSpace_2(1,1,N,N); + var delta:Double; + do { + // Compute new values, storing in tmp + delta = Foreach.blockReduce(is, + (i:Long, j:Long)=>{ + Tmp(i,j) = stencil(i,j); + // Reduce max element-wise delta (A now holds previous values) + return Math.abs(Tmp(i,j) - A(i,j)); + }, + (a:Double, b:Double)=>Math.max(a,b), 0.0 + ); + + // swap backing data of A and Tmp + Array.swap(A, Tmp); + } while (delta > EPSILON); + } + + def prettyPrintResult() { + for (i in 1..N) { + for (j in 1..N) { + Console.OUT.printf("%1.4f ",A(i,j)); + } + Console.OUT.println(); + } + } + + public static def main(args:Rail[String]) { + val n = args.size > 0 ? Long.parse(args(0)) : 8; + Console.OUT.println("HeatTransfer example with N="+n+" and epsilon="+EPSILON); + Console.OUT.println("Initializing data structures"); + val ht = new HeatTransfer_v0(n); + Console.OUT.println("Beginning computation..."); + val start = System.nanoTime(); + ht.run(); + val stop = System.nanoTime(); + Console.OUT.printf("...completed in %1.3f seconds.\n", ((stop-start) as double)/1e9); + if (n <= 10) { + ht.prettyPrintResult(); + } + } +} diff --git a/samples/X10/HeatTransfer_v1.x10 b/samples/X10/HeatTransfer_v1.x10 new file mode 100644 index 00000000..feeeebe6 --- /dev/null +++ b/samples/X10/HeatTransfer_v1.x10 @@ -0,0 +1,114 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.array.*; +import x10.compiler.Foreach; +import x10.util.Team; + +/** + * This is a sample program illustrating how to use + * X10's distributed array classes. It also illustrates the use + * of foreach to achieve intra-place parallelism and the mixture + * of APGAS finish/async/at with Team collective operations. + * + * This version of the program uses a vanilla DistArray without + * ghost regions. As a result, the stencil function does + * inefficient fine-grained neighbor communication to get individual values. + * Compare this to HeatTransfer_v2 which utilizes ghost regions and + * bulk ghost-region exchange functions. + * + * The program solves a set of 2D partial differential + * equations by iteratively applying a 5-point stencil + * operation until convergence is reached. + */ +public class HeatTransfer_v1 { + static val EPSILON = 1.0e-5; + + val N:Long; + val A:DistArray_BlockBlock_2[Double]{self!=null}; + val Tmp:DistArray_BlockBlock_2[Double]{self!=null}; + + public def this(size:Long) { + N = size; + val init = (i:Long, j:Long)=>i==0 ? 1.0 : 0.0; + A = new DistArray_BlockBlock_2[Double](N+2, N+2, init); + Tmp = new DistArray_BlockBlock_2[Double](N+2, N+2, init); + } + + final def stencil(x:Long, y:Long):Double { + val cls = (dx:Long, dy:Long)=>{ + val p = A.place(x+dx, y+dy); + p == here ? A(x+dx,y+dy) : at (p) A(x+dx,y+dy) + }; + val tmp = cls(-1,0) + cls(1,0) + cls(0,-1) + cls(0,1); + return tmp / 4; + } + + def run() { + val myTeam = new Team(A.placeGroup()); + finish for (p in A.placeGroup()) at (p) async { + // Compute the subset of the local indices on which + // we want to apply the stencil (the interior points of the N+2 x N+2 grid) + val li = A.localIndices(); + val interior = new DenseIterationSpace_2(li.min(0) == 0 ? 1 : li.min(0), + li.min(1) == 0 ? 1 : li.min(1), + li.max(0) == N+1 ? N : li.max(0), + li.max(1) == N+1 ? N : li.max(1)); + var delta:Double; + do { + // Compute new values, storing in tmp + val myDelta = Foreach.blockReduce(interior, + (i:Long, j:Long)=>{ + Tmp(i,j) = stencil(i,j); + // Reduce max element-wise delta (A now holds previous values) + return Math.abs(Tmp(i,j) - A(i,j)); + }, + (a:Double, b:Double)=>Math.max(a,b), 0.0 + ); + + myTeam.barrier(); + + // Unlike Array, DistArray doesn't provide an optimized swap. + // So, until it does, we have to copy the data elements. + Foreach.block(interior, (i:Long, j:Long)=>{ + A(i,j) = Tmp(i,j); + }); + + delta = myTeam.allreduce(myDelta, Team.MAX); + } while (delta > EPSILON); + } + } + + def prettyPrintResult() { + for (i in 1..N) { + for (j in 1..N) { + val x = at (A.place(i,j)) A(i,j); + Console.OUT.printf("%1.4f ", x); + } + Console.OUT.println(); + } + } + + public static def main(args:Rail[String]) { + val n = args.size > 0 ? Long.parse(args(0)) : 8; + Console.OUT.println("HeatTransfer example with N="+n+" and epsilon="+EPSILON); + Console.OUT.println("Initializing data structures"); + val ht = new HeatTransfer_v1(n); + Console.OUT.println("Beginning computation..."); + val start = System.nanoTime(); + ht.run(); + val stop = System.nanoTime(); + Console.OUT.printf("...completed in %1.3f seconds.\n", ((stop-start) as double)/1e9); + if (n <= 10) { + ht.prettyPrintResult(); + } + } +} diff --git a/samples/X10/HelloWholeWorld.x10 b/samples/X10/HelloWholeWorld.x10 new file mode 100644 index 00000000..4017ef9d --- /dev/null +++ b/samples/X10/HelloWholeWorld.x10 @@ -0,0 +1,44 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; + +/** + * The classic hello world program, with a twist - prints a message + * from the command line at every Place. + * The messages from each Place may appear in any order, but the + * finish ensures that the last message printed will be "Goodbye" + *
+ * Typical output:
+ * [dgrove@linchen samples]$ ./HelloWholeWorld 'best wishes'
+ * Place(1) says hello and best wishes
+ * Place(2) says hello and best wishes
+ * Place(3) says hello and best wishes
+ * Place(0) says hello and best wishes
+ * Goodbye 
+ * [dgrove@linchen samples]$
+ * 
+ */ +class HelloWholeWorld { + public static def main(args:Rail[String]):void { + if (args.size < 1) { + Console.OUT.println("Usage: HelloWholeWorld message"); + return; + } + + finish for (p in Place.places()) { + at (p) async Console.OUT.println(here+" says hello and "+args(0)); + } + Console.OUT.println("Goodbye"); + } +} + + diff --git a/samples/X10/HelloWorld.x10 b/samples/X10/HelloWorld.x10 new file mode 100644 index 00000000..06743b4c --- /dev/null +++ b/samples/X10/HelloWorld.x10 @@ -0,0 +1,23 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; + +/** + * The classic hello world program, shows how to output to the console. + */ +class HelloWorld { + public static def main(Rail[String]) { + Console.OUT.println("Hello World!" ); + } +} + + diff --git a/samples/X10/Histogram.x10 b/samples/X10/Histogram.x10 new file mode 100644 index 00000000..bf6ad2b1 --- /dev/null +++ b/samples/X10/Histogram.x10 @@ -0,0 +1,45 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +public class Histogram { + public static def compute(data:Rail[Int], numBins:Int) { + val bins = new Rail[Int](numBins); + finish for (i in data.range) async { + val b = data(i) % numBins; + atomic bins(b)++; + } + return bins; + } + + public static def run(N:Int, S:Int):Boolean { + val a = new Rail[Int](N, (i:long)=> i as int); + val b = compute(a, S); + val v = b(0); + var ok:Boolean = true; + for (x in b.range) ok &= (b(x)==v); + return ok; + } + + public static def main(args:Rail[String]) { + if (args.size != 2L) { + Console.OUT.println("Usage: Histogram SizeOfArray NumberOfBins"); + return; + } + val N = Int.parse(args(0)); + val S = Int.parse(args(1)); + val ok = run(N,S); + if (ok) { + Console.OUT.println("Test ok."); + } else { + Console.OUT.println("Test failed."); + } + } +} diff --git a/samples/X10/Integrate.x10 b/samples/X10/Integrate.x10 new file mode 100644 index 00000000..accf31b9 --- /dev/null +++ b/samples/X10/Integrate.x10 @@ -0,0 +1,55 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +/** + * This is a slightly more realistic example of the + * basic computational pattern of using async/finish + * to express recursive divide-and-conquer algorithms. + * The program does integration via Guassian Quadrature. + *

+ * It also can serve as an example of using a closure. + */ +public class Integrate { + static val epsilon = 1.0e-9; + + val fun:(double)=>double; + + public def this(f:(double)=>double) { fun = f; } + + public def computeArea(left:double, right:double) { + return recEval(left, fun(left), right, fun(right), 0); + } + + private def recEval(l:double, fl:double, r:double, fr:double, a:double) { + val h = (r - l) / 2; + val hh = h / 2; + val c = l + h; + val fc = fun(c); + val al = (fl + fc) * hh; + val ar = (fr + fc) * hh; + val alr = al + ar; + if (Math.abs(alr - a) < epsilon) return alr; + val expr1:double; + val expr2:double; + finish { + async { expr1 = recEval(c, fc, r, fr, ar); }; + expr2 = recEval(l, fl, c, fc, al); + } + return expr1 + expr2; + } + + public static def main(args:Rail[String]) { + val obj = new Integrate((x:double)=>(x*x + 1.0) * x); + val xMax = args.size > 0 ? Long.parse(args(0)) : 10; + val area = obj.computeArea(0, xMax); + Console.OUT.println("The area of (x*x +1) * x from 0 to "+xMax+" is "+area); + } +} diff --git a/samples/X10/KMeans.x10 b/samples/X10/KMeans.x10 new file mode 100644 index 00000000..475732b7 --- /dev/null +++ b/samples/X10/KMeans.x10 @@ -0,0 +1,151 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; +import x10.util.Random; + +/** + * A KMeans object o can compute K means of a given set of + * points of dimension o.myDim. + *

+ * This class implements a sequential program, that is readily parallelizable. + * + * For a scalable, high-performance version of this benchmark see + * KMeans.x10 in the X10 Benchmarks (separate download from x10-lang.org) + */ +public class KMeans(myDim:Long) { + + static val DIM=2; + static val K=4; + static val POINTS=2000; + static val ITERATIONS=50; + static val EPS=0.01F; + + static type ValVector(k:Long) = Rail[Float]{self.size==k}; + static type ValVector = ValVector(DIM); + + static type Vector(k:Long) = Rail[Float]{self.size==k}; + static type Vector = Vector(DIM); + + static type SumVector(d:Long) = V{self.dim==d}; + static type SumVector = SumVector(DIM); + + /** + * V represents the sum of 'count' number of vectors of dimension 'dim'. + */ + static class V(dim:Long) implements (Long)=>Float { + var vec: Vector(dim); + var count:Int; + def this(dim:Long, init:(Long)=>Float): SumVector(dim) { + property(dim); + vec = new Rail[Float](this.dim, init); + count = 0n; + } + public operator this(i:Long) = vec(i); + def makeZero() { + for (i in 0..(dim-1)) + vec(i) =0.0F; + count=0n; + } + def addIn(a:ValVector(dim)) { + for (i in 0..(dim-1)) + vec(i) += a(i); + count++; + } + def div(f:Int) { + for (i in 0..(dim-1)) + vec(i) /= f; + } + def dist(a:ValVector(dim)):Float { + var dist:Float=0.0F; + for (i in 0..(dim-1)) { + val tmp = vec(i)-a(i); + dist += tmp*tmp; + } + return dist; + } + def dist(a:SumVector(dim)):Float { + var dist:Float=0.0F; + for (i in 0..(dim-1)) { + val tmp = vec(i)-a(i); + dist += tmp*tmp; + } + return dist; + } + def print() { + Console.OUT.println(); + for (i in 0..(dim-1)) { + Console.OUT.print((i>0? " " : "") + vec(i)); + } + } + def normalize() { div(count);} + def count() = count; + } + + + def this(myDim:Long):KMeans{self.myDim==myDim} { + property(myDim); + } + static type KMeansData(myK:Long, myDim:Long)= Rail[SumVector(myDim)]{self.size==myK}; + + /** + * Compute myK means for the given set of points of dimension myDim. + */ + def computeMeans(myK:Long, points:Rail[ValVector(myDim)]):KMeansData(myK, myDim) { + var redCluster : KMeansData(myK, myDim) = + new Rail[SumVector(myDim)](myK, (i:long)=> new V(myDim, (j:long)=>points(i)(j))); + var blackCluster: KMeansData(myK, myDim) = + new Rail[SumVector(myDim)](myK, (i:long)=> new V(myDim, (j:long)=>0.0F)); + for (i in 1..ITERATIONS) { + val tmp = redCluster; + redCluster = blackCluster; + blackCluster=tmp; + for (p in 0..(POINTS-1)) { + var closest:Long = -1; + var closestDist:Float = Float.MAX_VALUE; + val point = points(p); + for (k in 0..(myK-1)) { // compute closest mean in cluster. + val dist = blackCluster(k).dist(point); + if (dist < closestDist) { + closestDist = dist; + closest = k; + } + } + redCluster(closest).addIn(point); + } + for (k in 0..(myK-1)) + redCluster(k).normalize(); + + var b:Boolean = true; + for (k in 0..(myK-1)) { + if (redCluster(k).dist(blackCluster(k)) > EPS) { + b=false; + break; + } + } + if (b) + break; + for (k in 0..(myK-1)) + blackCluster(k).makeZero(); + } + return redCluster; + } + + public static def main (Rail[String]) { + val rnd = new Random(0); + val points = new Rail[ValVector](POINTS, + (long)=>new Rail[Float](DIM, (long)=>rnd.nextFloat())); + val result = new KMeans(DIM).computeMeans(K, points); + for (k in 0..(K-1)) result(k).print(); + } +} + +// vim: shiftwidth=4:tabstop=4:expandtab diff --git a/samples/X10/KMeansDist.x10 b/samples/X10/KMeansDist.x10 new file mode 100644 index 00000000..069cc374 --- /dev/null +++ b/samples/X10/KMeansDist.x10 @@ -0,0 +1,147 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.array.*; +import x10.io.Console; +import x10.util.Random; + +/** + * A low performance formulation of distributed KMeans using fine-grained asyncs. + * + * For a highly optimized and scalable, version of this benchmark see + * KMeans.x10 in the X10 Benchmarks (separate download from x10-lang.org) + */ +public class KMeansDist { + + static val DIM=2; + static val CLUSTERS=4; + static val POINTS=2000; + static val ITERATIONS=50; + + public static def main (Rail[String]) { + val world = Place.places(); + val local_curr_clusters = + PlaceLocalHandle.make[Array_2[Float]](world, () => new Array_2[Float](CLUSTERS, DIM)); + val local_new_clusters = + PlaceLocalHandle.make[Array_2[Float]](world, () => new Array_2[Float](CLUSTERS, DIM)); + val local_cluster_counts = + PlaceLocalHandle.make[Rail[Int]](world, ()=> new Rail[Int](CLUSTERS)); + + val rnd = PlaceLocalHandle.make[Random](world, () => new Random(0)); + val points = new DistArray_Block_2[Float](POINTS, DIM, world, (Long,Long)=>rnd().nextFloat()); + + val central_clusters = new Array_2[Float](CLUSTERS, DIM, (i:Long, j:Long) => { + at (points.place(i,j)) points(i,j) + }); + + val old_central_clusters = new Array_2[Float](CLUSTERS, DIM); + + val central_cluster_counts = new Rail[Int](CLUSTERS); + + for (iter in 1..ITERATIONS) { + + Console.OUT.println("Iteration: "+iter); + + finish { + // reset state + for (d in world) at (d) async { + for ([i,j] in central_clusters.indices()) { + local_curr_clusters()(i, j) = central_clusters(i, j); + local_new_clusters()(i, j) = 0f; + } + + local_cluster_counts().clear(); + } + } + + finish { + // compute new clusters and counters + for (p in 0..(POINTS-1)) { + at (points.place(p,0)) async { + var closest:Long = -1; + var closest_dist:Float = Float.MAX_VALUE; + for (k in 0..(CLUSTERS-1)) { + var dist : Float = 0; + for (d in 0..(DIM-1)) { + val tmp = points(p,d) - local_curr_clusters()(k, d); + dist += tmp * tmp; + } + if (dist < closest_dist) { + closest_dist = dist; + closest = k; + } + } + atomic { + for (d in 0..(DIM-1)) { + local_new_clusters()(closest,d) += points(p,d); + } + local_cluster_counts()(closest)++; + } + } + } + } + + for ([i,j] in old_central_clusters.indices()) { + old_central_clusters(i, j) = central_clusters(i, j); + central_clusters(i, j) = 0f; + } + + central_cluster_counts.clear(); + + finish { + val central_clusters_gr = GlobalRef(central_clusters); + val central_cluster_counts_gr = GlobalRef(central_cluster_counts); + val there = here; + for (d in world) at (d) async { + // access PlaceLocalHandles 'here' and then data will be captured by at and transfered to 'there' for accumulation + val tmp_new_clusters = local_new_clusters(); + val tmp_cluster_counts = local_cluster_counts(); + at (there) atomic { + for ([i,j] in tmp_new_clusters.indices()) { + central_clusters_gr()(i,j) += tmp_new_clusters(i,j); + } + for (j in 0..(CLUSTERS-1)) { + central_cluster_counts_gr()(j) += tmp_cluster_counts(j); + } + } + } + } + + for (k in 0..(CLUSTERS-1)) { + for (d in 0..(DIM-1)) { + central_clusters(k, d) /= central_cluster_counts(k); + } + } + + // TEST FOR CONVERGENCE + var b:Boolean = true; + for ([i,j] in old_central_clusters.indices()) { + if (Math.abs(old_central_clusters(i, j)-central_clusters(i, j))>0.0001) { + b = false; + break; + } + } + if (b) break; + + } + + for (d in 0..(DIM-1)) { + for (k in 0..(CLUSTERS-1)) { + if (k>0) + Console.OUT.print(" "); + Console.OUT.print(central_clusters(k,d)); + } + Console.OUT.println(); + } + } +} + +// vim: shiftwidth=4:tabstop=4:expandtab diff --git a/samples/X10/KMeansDistPlh.x10 b/samples/X10/KMeansDistPlh.x10 new file mode 100644 index 00000000..ca16aa59 --- /dev/null +++ b/samples/X10/KMeansDistPlh.x10 @@ -0,0 +1,144 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2015. + */ + +import x10.array.Array; +import x10.array.Array_2; +import x10.compiler.Foreach; +import x10.util.Random; + +/** + * A better formulation of distributed KMeans using coarse-grained asyncs to + * implement an allreduce pattern for cluster centers and counts. + * + * For a highly optimized and scalable, version of this benchmark see + * KMeans.x10 in the X10 Benchmarks (separate download from x10-lang.org) + */ +public class KMeansDistPlh { + + static val DIM=2; + static val CLUSTERS=4; + + static class ClusterState { + val clusters = new Array_2[Float](CLUSTERS, DIM); + val clusterCounts = new Rail[Int](CLUSTERS); + } + + public static def main(args:Rail[String]) { + val numPoints = args.size > 0 ? Long.parse(args(0)) : 2000; + val iterations = args.size > 1 ? Long.parse(args(1)) : 50; + val world = Place.places(); + + val clusterStatePlh = PlaceLocalHandle.make[ClusterState](world, () => new ClusterState()); + val currentClustersPlh = PlaceLocalHandle.make[Array_2[Float]](world, () => new Array_2[Float](CLUSTERS, DIM)); + val pointsPlh = PlaceLocalHandle.make[Array_2[Float]](world, () => { + val rand = new Random(here.id); + return new Array_2[Float](numPoints/world.size(), DIM, (Long,Long)=>rand.nextFloat()); + }); + + val centralCurrentClusters = new Array_2[Float](CLUSTERS, DIM); + val centralNewClusters = new Array_2[Float](CLUSTERS, DIM); + val centralClusterCounts = new Rail[Int](CLUSTERS); + + // arbitrarily initialize central clusters to first few points + for ([i,j] in centralCurrentClusters.indices()) { + centralCurrentClusters(i,j) = pointsPlh()(i,j); + } + + for (iter in 1..iterations) { + Console.OUT.println("Iteration: "+iter); + + finish { + for (place in world) async { + val placeClusters = at(place) { + val currentClusters = currentClustersPlh(); + Array.copy(centralCurrentClusters, currentClusters); + + val clusterState = clusterStatePlh(); + val newClusters = clusterState.clusters; + newClusters.clear(); + val clusterCounts = clusterState.clusterCounts; + clusterCounts.clear(); + + // compute new clusters and counters + val points = pointsPlh(); + + for (p in 0..(points.numElems_1-1)) { + var closest:Long = -1; + var closestDist:Float = Float.MAX_VALUE; + for (k in 0..(CLUSTERS-1)) { + var dist : Float = 0; + for (d in 0..(DIM-1)) { + val tmp = points(p,d) - currentClusters(k, d); + dist += tmp * tmp; + } + if (dist < closestDist) { + closestDist = dist; + closest = k; + } + } + + atomic { + for (d in 0..(DIM-1)) { + newClusters(closest,d) += points(p,d); + } + clusterCounts(closest)++; + } + } + clusterState + }; + + // combine place clusters to central + atomic { + for ([i,j] in centralNewClusters.indices()) { + centralNewClusters(i,j) += placeClusters.clusters(i,j); + } + for (j in 0..(CLUSTERS-1)) { + centralClusterCounts(j) += placeClusters.clusterCounts(j); + } + } + } + } + + for (k in 0..(CLUSTERS-1)) { + for (d in 0..(DIM-1)) { + centralNewClusters(k, d) /= centralClusterCounts(k); + } + } + + // TEST FOR CONVERGENCE + var b:Boolean = true; + for ([i,j] in centralCurrentClusters.indices()) { + if (Math.abs(centralCurrentClusters(i, j)-centralNewClusters(i, j)) > 0.0001) { + b = false; + break; + } + } + + Array.copy(centralNewClusters, centralCurrentClusters); + + if (b) break; + + centralNewClusters.clear(); + centralClusterCounts.clear(); + } + + for (d in 0..(DIM-1)) { + for (k in 0..(CLUSTERS-1)) { + if (k > 0) + Console.OUT.print(" "); + Console.OUT.print(centralCurrentClusters(k,d)); + } + Console.OUT.println(); + } + } +} + +// vim: shiftwidth=4:tabstop=4:expandtab diff --git a/samples/X10/KMeansSPMD.x10 b/samples/X10/KMeansSPMD.x10 new file mode 100644 index 00000000..f6530f24 --- /dev/null +++ b/samples/X10/KMeansSPMD.x10 @@ -0,0 +1,192 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; +import x10.io.File; +import x10.io.Marshal; +import x10.io.IOException; +import x10.util.OptionsParser; +import x10.util.Option; +import x10.util.Team; + +/** + * An SPMD formulation of KMeans. + * + * For a highly optimized and scalable version of this benchmark see + * KMeans.x10 in the X10 Benchmarks (separate download from x10-lang.org) + */ +public class KMeansSPMD { + + public static def printClusters (clusters:Rail[Float], dims:long) { + for (d in 0..(dims-1)) { + for (k in 0..(clusters.size/dims-1)) { + if (k>0) + Console.OUT.print(" "); + Console.OUT.print(clusters(k*dims+d).toString()); + } + Console.OUT.println(); + } + } + + public static def main (args:Rail[String]) {here == Place.FIRST_PLACE } { + + val opts = new OptionsParser(args, [ + Option("q","quiet","just print time taken"), + Option("v","verbose","print out each iteration"), + Option("h","help","this information") + ], [ + Option("p","points","location of data file"), + Option("i","iterations","quit after this many iterations"), + Option("c","clusters","number of clusters to find"), + Option("d","dim","number of dimensions"), + Option("s","slices","factor by which to oversubscribe computational resources"), + Option("n","num","quantity of points") + ]); + if (opts.filteredArgs().size!=0L) { + Console.ERR.println("Unexpected arguments: "+opts.filteredArgs()); + Console.ERR.println("Use -h or --help."); + System.setExitCode(1n); + return; + } + if (opts("-h")) { + Console.OUT.println(opts.usage("")); + return; + } + + val fname = opts("-p", "points.dat"); + val num_clusters=opts("-c",4); + val num_slices=opts("-s",1); + val num_global_points=opts("-n", 2000); + val iterations=opts("-i",50); + val dim=opts("-d", 4); + val verbose = opts("-v"); + val quiet = opts("-q"); + + if (!quiet) + Console.OUT.println("points: "+num_global_points+" clusters: "+num_clusters+" dim: "+dim); + + // file is dimension-major + val file = new File(fname); + val fr = file.openRead(); + val init_points = (long) => Float.fromIntBits(Marshal.INT.read(fr).reverseBytes()); + val num_file_points = (file.size() / dim / 4) as Int; + val file_points = new Rail[Float](num_file_points*dim, init_points); + + val team = Team.WORLD; + + val num_slice_points = num_global_points / num_slices / Place.numPlaces(); + + finish { + for (h in Place.places()) at(h) async { + var compute_time:Long = 0; + var comm_time:Long = 0; + var barrier_time:Long = 0; + + val host_clusters = new Rail[Float](num_clusters*dim, (i:long)=>file_points(i)); + val host_cluster_counts = new Rail[Int](num_clusters); + + for (slice in 0..(num_slices-1)) { + // carve out local portion of points (point-major) + val offset = (slice*Place.numPlaces() + here.id) * num_slice_points; + if (verbose) + Console.OUT.println(h.toString()+" gets "+offset+" len "+num_slice_points); + val init = (i:long) => { + val p=i%num_slice_points; + val d=i/num_slice_points; + return file_points(offset+p+d*num_file_points); + }; + + // these are pretty big so allocate up front + val host_points = new Rail[Float](num_slice_points*dim, init); + val host_nearest = new Rail[Float](num_slice_points); + + val start_time = System.currentTimeMillis(); + + barrier_time -= System.nanoTime(); + team.barrier(); + barrier_time += System.nanoTime(); + + main_loop: for (iter in 0..(iterations-1)) { + + //if (offset==0) Console.OUT.println("Iteration: "+iter); + + val old_clusters = new Rail[Float](host_clusters.size); + Rail.copy(host_clusters, 0L, old_clusters, 0L, host_clusters.size); + + host_clusters.clear(); + host_cluster_counts.clear(); + + compute_time -= System.nanoTime(); + for (p in 0..(num_slice_points-1)) { + var closest:Long = -1; + var closest_dist:Float = Float.MAX_VALUE; + for (k in 0..(num_clusters-1)) { + var dist : Float = 0; + for (d in 0..(dim-1)) { + val tmp = host_points(p+d*num_slice_points) - old_clusters(k*dim+d); + dist += tmp * tmp; + } + if (dist < closest_dist) { + closest_dist = dist; + closest = k; + } + } + for (d in 0..(dim-1)) { + host_clusters(closest*dim+d) += host_points(p+d*num_slice_points); + } + host_cluster_counts(closest)++; + } + compute_time += System.nanoTime(); + + comm_time -= System.nanoTime(); + team.allreduce(host_clusters, 0L, host_clusters, 0L, host_clusters.size, Team.ADD); + team.allreduce(host_cluster_counts, 0L, host_cluster_counts, 0L, host_cluster_counts.size, Team.ADD); + comm_time += System.nanoTime(); + + for (k in 0..(num_clusters-1)) { + for (d in 0..(dim-1)) host_clusters(k*dim+d) /= host_cluster_counts(k); + } + + if (offset==0 && verbose) { + Console.OUT.println("Iteration: "+iter); + printClusters(host_clusters,dim); + } + + // TEST FOR CONVERGENCE + for (j in 0..(num_clusters*dim-1)) { + if (true/*||Math.abs(clusters_old(j)-host_clusters(j))>0.0001*/) continue main_loop; + } + + break; + + } // main_loop + + } // slice + + Console.OUT.printf("%d: computation %.3f s communication %.3f s (barrier %.3f s)\n", + here.id, compute_time/1E9, comm_time/1E9, barrier_time/1E9); + + team.barrier(); + + if (here.id == 0) { + Console.OUT.println("\nFinal results:"); + printClusters(host_clusters,dim); + } + + } // async + + } // finish + + } + +} + +// vim: shiftwidth=4:tabstop=4:expandtab diff --git a/samples/X10/MontyPi.x10 b/samples/X10/MontyPi.x10 new file mode 100644 index 00000000..951161ee --- /dev/null +++ b/samples/X10/MontyPi.x10 @@ -0,0 +1,42 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.array.DistArray_Unique; +import x10.io.Console; +import x10.util.Random; + +/** + * Calculation of an approximation to pi by using a Monte Carlo simulation + * (throwing darts into the unit square and determining the fraction that land + * in the unit circle). + */ +public class MontyPi { + public static def main(args:Rail[String]) { + if (args.size != 1L) { + Console.OUT.println("Usage: MontyPi "); + return; + } + val N = Long.parse(args(0)); + val initializer = () => { + val r = new Random(); + var result:Long = 0; + for(c in 1..N) { + val x = r.nextDouble(); + val y = r.nextDouble(); + if (x*x +y*y <= 1.0) result++; + } + result + }; + val result = new DistArray_Unique[Long](Place.places(), initializer); + val pi = (4.0*result.reduce((x:Long,y:Long) => x+y, 0) as Double)/(N*Place.numPlaces()); + Console.OUT.println("The value of pi is " + pi); + } +} diff --git a/samples/X10/NQueensDist.x10 b/samples/X10/NQueensDist.x10 new file mode 100644 index 00000000..1279d3ff --- /dev/null +++ b/samples/X10/NQueensDist.x10 @@ -0,0 +1,123 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + * (C) Copyright Australian National University 2011. + */ + +import x10.array.DistArray_Unique; + +/** + * A distributed version of NQueens. Runs over NUM_PLACES. + * Identical to NQueensPar, except that work is distributed + * over multiple places rather than shared between threads. + */ +public class NQueensDist { + public static val EXPECTED_SOLUTIONS = + [0, 1, 0, 0, 2, 10, 4, 40, 92, 352, 724, 2680, 14200, 73712, 365596, 2279184, 14772512]; + + val N:Long; + val P:Long; + val results:DistArray_Unique[Long]; + val R:LongRange; + + def this(N:Long, P:Long) { + this.N=N; + this.P=P; + this.results = new DistArray_Unique[Long](); + this.R = 0..(N-1); + } + def start() { + new Board().distSearch(); + } + def run():Long { + finish start(); + val result = results.reduce(((x:Long,y:Long) => x+y),0); + return result; + } + + class Board { + val q: Rail[Long]; + /** The number of low-rank positions that are fixed in this board for the purposes of search. */ + var fixed:Long; + def this() { + q = new Rail[Long](N); + fixed = 0; + } + + /** + * @return true if it is safe to put a queen in file j + * on the next rank after the last fixed position. + */ + def safe(j:Long) { + for (k in 0..(fixed-1)) { + if (j == q(k) || Math.abs(fixed-k) == Math.abs(j-q(k))) + return false; + } + return true; + } + + /** Search all positions for the current board. */ + def search() { + for (k in R) searchOne(k); + } + + /** + * Modify the current board by adding a new queen + * in file k on rank fixed, + * and search for all safe positions with this prefix. + */ + def searchOne(k:Long) { + if (safe(k)) { + if (fixed==(N-1)) { + // all ranks safely filled + atomic NQueensDist.this.results(here.id)++; + } else { + q(fixed++) = k; + search(); + fixed--; + } + } + } + + /** + * Search this board, dividing the work between all places + * using a block distribution of the current free rank. + */ + def distSearch() { + val work = R.split(Place.numPlaces()); + finish for (p in Place.places()) { + val myPiece = work(p.id); + at (p) async { + // implicit copy of 'this' made across the at divide + for (k in myPiece) { + searchOne(k); + } + } + } + } + } + + public static def main(args:Rail[String]) { + val n = args.size > 0 ? Long.parse(args(0)) : 8; + Console.OUT.println("N=" + n); + //warmup + //finish new NQueensPar(12, 1).start(); + val P = Place.numPlaces(); + val nq = new NQueensDist(n,P); + var start:Long = -System.nanoTime(); + val answer = nq.run(); + val result = answer==EXPECTED_SOLUTIONS(n); + start += System.nanoTime(); + start /= 1000000; + Console.OUT.println("NQueensDist " + nq.N + "(P=" + P + + ") has " + answer + " solutions" + + (result? " (ok)." : " (wrong).") + + "time=" + start + "ms"); + } +} diff --git a/samples/X10/NQueensPar.x10 b/samples/X10/NQueensPar.x10 new file mode 100644 index 00000000..bb841e13 --- /dev/null +++ b/samples/X10/NQueensPar.x10 @@ -0,0 +1,117 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + * (C) Copyright Australian National University 2011. + */ + +/** + * Compute the number of solutions to the N queens problem. + */ +public class NQueensPar { + public static val EXPECTED_SOLUTIONS = + [0, 1, 0, 0, 2, 10, 4, 40, 92, 352, 724, 2680, 14200, 73712, 365596, 2279184, 14772512]; + + val N:Int; + val P:Int; + var nSolutions:Int = 0n; + val R:IntRange; + + def this(N:Int, P:Int) { + this.N=N; + this.P=P; + this.R = 0n..(N-1n); + } + + def start() { + new Board().parSearch(); + } + + class Board { + val q: Rail[Int]; + /** The number of low-rank positions that are fixed in this board for the purposes of search. */ + var fixed:Int; + def this() { + q = new Rail[Int](N); + fixed = 0n; + } + + def this(b:Board) { + this.q = new Rail[Int](b.q); + this.fixed = b.fixed; + } + + /** + * @return true if it is safe to put a queen in file j + * on the next rank after the last fixed position. + */ + def safe(j:Int) { + for (k in 0n..(fixed-1n)) { + if (j == q(k) || Math.abs(fixed-k) == Math.abs(j-q(k))) + return false; + } + return true; + } + + /** Search all positions for the current board. */ + def search() { + for (k in R) searchOne(k); + } + + /** + * Modify the current board by adding a new queen + * in file k on rank fixed, + * and search for all safe positions with this prefix. + */ + def searchOne(k:Int) { + if (safe(k)) { + if (fixed==(N-1n)) { + // all ranks safely filled + atomic NQueensPar.this.nSolutions++; + } else { + q(fixed++) = k; + search(); + fixed--; + } + } + } + + /** + * Search this board, dividing the work between threads + * using a block distribution of the current free rank. + */ + def parSearch() { + for (work in R.split(P)) async { + val board = new Board(this); + for (w in work) { + board.searchOne(w); + } + } + } + } + + public static def main(args:Rail[String]) { + val n = args.size > 0 ? Int.parse(args(0)) : 8n; + Console.OUT.println("N=" + n); + //warmup + //finish new NQueensPar(12, 1).start(); + val ps = [1n,2n,4n]; + for (numTasks in ps) { + Console.OUT.println("starting " + numTasks + " tasks"); + val nq = new NQueensPar(n,numTasks); + var start:Long = -System.nanoTime(); + finish nq.start(); + val result = (nq.nSolutions as Long)==EXPECTED_SOLUTIONS(nq.N); + start += System.nanoTime(); + start /= 1000000; + Console.OUT.println("NQueensPar " + nq.N + "(P=" + numTasks + + ") has " + nq.nSolutions + " solutions" + + (result? " (ok)." : " (wrong).") + "time=" + start + "ms"); + } + } +} diff --git a/samples/X10/QSort.x10 b/samples/X10/QSort.x10 new file mode 100644 index 00000000..d96983b6 --- /dev/null +++ b/samples/X10/QSort.x10 @@ -0,0 +1,73 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + + +/** + * Straightforward quicksort implementation using + * naive partition-in-the-middle and not bothering with + * well-known optimizations such as using insertion sort + * once the partitions get small. This is only intended + * as a simple example of an array-based program that + * combines a recirsive divide and conquer algorithm + * with async and finish, not as a highly efficient + * sorting procedure.. + */ +public class QSort { + + private static def partition(data:Rail[int], left:long, right:long) { + var i:long = left; + var j:long = right; + var tmp:int; + var pivot:long = data((left + right) / 2); + + while (i <= j) { + while (data(i) < pivot) i++; + while (data(j) > pivot) j--; + if (i <= j) { + tmp = data(i); + data(i) = data(j); + data(j) = tmp; + i++; + j--; + } + } + + return i; + } + + public static def qsort(data:Rail[int], left:long, right:long) { + index:long = partition(data, left, right); + finish { + if (left < index - 1) + async qsort(data, left, index - 1); + + if (index < right) + qsort(data, index, right); + } + } + + public static def main(args:Rail[String]) { + val N = args.size>0 ? Long.parse(args(0)) : 100; + val r = new x10.util.Random(); + val data = new Rail[int](N, (long)=>r.nextInt(9999n)); + qsort(data, 0, N-1); + for (i in 0..(N-1)) { + Console.OUT.print(data(i)); + if (i%10 == 9) { + Console.OUT.println(); + } else { + Console.OUT.print(", "); + } + } + Console.OUT.println(); + } +} + diff --git a/samples/X10/StructSpheres.x10 b/samples/X10/StructSpheres.x10 new file mode 100644 index 00000000..6d833633 --- /dev/null +++ b/samples/X10/StructSpheres.x10 @@ -0,0 +1,123 @@ +/* + * This file is part of the X10 project (http://x10-lang.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.opensource.org/licenses/eclipse-1.0.php + * + * (C) Copyright IBM Corporation 2006-2014. + */ + +import x10.io.Console; +import x10.util.Random; + +/** + * This class represents a real-world problem in graphics engines -- + * determining which objects in a large sprawling world are close enough to the + * camera to be considered for rendering. + * + * It illustrates the usage of X10 structs to define new primitive types. + * In Native X10, structs are allocated within their containing object/stack frame + * and thus using structs instead of classes for Vector3 and WorldObject greatly + * improves the memory efficiency of the computation. + * + * @Author Dave Cunningham + * @Author Vijay Saraswat + */ +class StructSpheres { + static type Real = Float; + + static struct Vector3(x:Real, y:Real, z:Real) { + public def getX () = x; + public def getY () = y; + public def getZ () = z; + + public def add (other:Vector3) + = Vector3(this.x+other.x, this.y+other.y, this.z+other.z); + + public def neg () = Vector3(-this.x, -this.y, -this.z); + + public def sub (other:Vector3) = add(other.neg()); + + public def length () = Math.sqrtf(length2()); + + public def length2 () = x*x + y*y + z*z; + } + + + static struct WorldObject { + + def this (x:Real, y:Real, z:Real, r:Real) { + pos = Vector3(x,y,z); + renderingDistance = r; + } + + public def intersects (home:Vector3) + = home.sub(pos).length2() < renderingDistance*renderingDistance; + + protected val pos:Vector3; + protected val renderingDistance:Real; + } + + + public static def compute():boolean { + + val reps = 7500; + + // The following correspond to a modern out-door computer game: + val num_objects = 50000; + val world_size = 6000; + val obj_max_size = 400; + + val ran = new Random(0); + + // the array can go on the heap + // but the elements ought to be /*inlined*/ in the array + val spheres = + new Rail[WorldObject](num_objects, (i:long) => { + val x = (ran.nextDouble()*world_size) as Real; + val y = (ran.nextDouble()*world_size) as Real; + val z = (ran.nextDouble()*world_size) as Real; + val r = (ran.nextDouble()*obj_max_size) as Real; + return WorldObject(x,y,z,r); + }); + + val time_start = System.nanoTime(); + + var counter : Long = 0; + + // HOT LOOP BEGINS + for (c in 1..reps) { + + val x = (ran.nextDouble()*world_size) as Real; + val y = (ran.nextDouble()*world_size) as Real; + val z = (ran.nextDouble()*world_size) as Real; + + val pos = Vector3(x,y,z); + + for (i in spheres.range()) { + if (spheres(i).intersects(pos)) { + counter++; + } + } + } + // HOT LOOP ENDS + + val time_taken = System.nanoTime() - time_start; + Console.OUT.println("Total time: "+time_taken/1E9); + + val expected = 109702; + val ok = counter == expected; + if (!ok) { + Console.ERR.println("number of intersections: "+counter + +" (expected "+expected+")"); + } + return ok; + } + + public static def main (Rail[String]) { + compute(); + } + +} diff --git a/vendor/grammars/X10 b/vendor/grammars/X10 new file mode 160000 index 00000000..05fc5c81 --- /dev/null +++ b/vendor/grammars/X10 @@ -0,0 +1 @@ +Subproject commit 05fc5c81cc9491f5785e896c9a5f43a61fac9073 From aa701c6766e269194cefd1b0888883b15213dabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Tue, 25 Aug 2015 01:09:42 +0200 Subject: [PATCH 649/875] Update languages.yml --- lib/linguist/languages.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5b31ed4f..ab094d63 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1917,6 +1917,15 @@ M: - .m tm_scope: source.lisp ace_mode: lisp + +M4: + type: programming + extensions: + - .m4 + filenames: + - configure.ac + tm_scope: none + ace_mode: text MTML: type: markup From a2ca88651082e7f2a65fa10be8c0c143d24e2d48 Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Tue, 25 Aug 2015 23:19:09 -0700 Subject: [PATCH 650/875] Vendored definitions for Xcode-related files --- lib/linguist/vendor.yml | 5 +++++ test/test_blob.rb | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index ed89eda8..a984f520 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -164,6 +164,11 @@ ## Obj-C ## +# Xcode + +- \.xctemplate/ +- \.imageset/ + # Carthage - ^Carthage/ diff --git a/test/test_blob.rb b/test/test_blob.rb index 0a1cefe9..abce9934 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -492,6 +492,11 @@ class TestBlob < Minitest::Test # Crashlytics assert sample_blob("Crashlytics.framework/Crashlytics.h").vendored? + + # Xcode + assert sample_blob("myapp/My Template.xctemplate/___FILEBASENAME___.h").vendored? + assert sample_blob("myapp/My Images.xcassets/some/stuff.imageset/Contents.json").vendored? + assert !sample_blob("myapp/MyData.json").vendored? end def test_documentation From 0e9ded45dcd81498377566c0a505a389cedf0a86 Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Wed, 26 Aug 2015 00:34:00 -0700 Subject: [PATCH 651/875] Fix typo in Obj-C heuristic keyword MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `synchronised` → `synchronized` --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 7c523fa8..4d468bf0 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -65,7 +65,7 @@ module Linguist end # Common heuristics - ObjectiveCRegex = /^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/ + ObjectiveCRegex = /^[ \t]*@(interface|class|protocol|property|end|synchronized|selector|implementation)\b/ disambiguate ".bb" do |data| if /^\s*; /.match(data) || data.include?("End Function") From c9e43804d6723bddc01f5d914e6c328eac5cd03f Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Wed, 26 Aug 2015 09:26:04 -0400 Subject: [PATCH 652/875] add some help text to license test --- test/test_grammars.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 65a7e6de..82086db9 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -83,12 +83,16 @@ class TestGrammars < Minitest::Test def test_submodules_have_recognized_licenses unrecognized = submodule_licenses.select { |k,v| v.nil? && Licensee::Project.new(k).license_file } unrecognized.reject! { |k,v| PROJECT_WHITELIST.include?(k) } - assert_equal Hash.new, unrecognized, "The following submodules have unrecognized licenses:\n* #{unrecognized.keys.join("\n* ")}" + message = "The following submodules have unrecognized licenses:\n* #{unrecognized.keys.join("\n* ")}\n" + message << "Please ensure that the project's LICENSE file contains the full text of the license." + assert_equal Hash.new, unrecognized, message end def test_submodules_have_licenses unlicensed = submodule_licenses.select { |k,v| v.nil? }.reject { |k,v| PROJECT_WHITELIST.include?(k) } - assert_equal Hash.new, unlicensed, "The following submodules don't have licenses:\n* #{unlicensed.keys.join("\n* ")}" + message = "The following submodules don't have licenses:\n* #{unlicensed.keys.join("\n* ")}\n" + message << "Please ensure that the project has a LICENSE file, and that the LICENSE file contains the full text of the license." + assert_equal Hash.new, unlicensed, message end def test_submodules_have_approved_licenses From 13695a716c743ac9e9aa12c879889666ae084d8a Mon Sep 17 00:00:00 2001 From: Louis Mandel Date: Wed, 26 Aug 2015 09:46:02 -0400 Subject: [PATCH 653/875] Update X10 grammar license. --- vendor/grammars/X10 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/X10 b/vendor/grammars/X10 index 05fc5c81..a96e3f0a 160000 --- a/vendor/grammars/X10 +++ b/vendor/grammars/X10 @@ -1 +1 @@ -Subproject commit 05fc5c81cc9491f5785e896c9a5f43a61fac9073 +Subproject commit a96e3f0a352af9074a1086f092e8490022cb356c From 7c3e2650333f3d2ac10a48f8d41262281782e588 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Wed, 26 Aug 2015 12:31:29 -0400 Subject: [PATCH 654/875] also add help for unapproved licenses --- test/test_grammars.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 82086db9..569da5c9 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -97,7 +97,9 @@ class TestGrammars < Minitest::Test def test_submodules_have_approved_licenses unapproved = submodule_licenses.reject { |k,v| LICENSE_WHITELIST.include?(v) || PROJECT_WHITELIST.include?(k) }.map { |k,v| "#{k}: #{v}"} - assert_equal [], unapproved, "The following submodules have unapproved licenses:\n* #{unapproved.join("\n* ")}" + message = "The following submodules have unapproved licenses:\n* #{unapproved.join("\n* ")}\n" + message << "The license must be added to the LICENSE_WHITELIST in /test/test_grammars.rb once approved." + assert_equal [], unapproved, message end def test_submodules_whitelist_has_no_extra_entries From b1c6b330e9164116cc15273c7ace0452abbe3bef Mon Sep 17 00:00:00 2001 From: Louis Mandel Date: Wed, 26 Aug 2015 14:26:30 -0400 Subject: [PATCH 655/875] Switch to Apache License. --- vendor/grammars/X10 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/X10 b/vendor/grammars/X10 index a96e3f0a..2bae6e77 160000 --- a/vendor/grammars/X10 +++ b/vendor/grammars/X10 @@ -1 +1 @@ -Subproject commit a96e3f0a352af9074a1086f092e8490022cb356c +Subproject commit 2bae6e77fabcdceff753823477390c37305ca76c From 16e22b3b777ccb2ac123b0a79384af6003d2b3b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Thu, 27 Aug 2015 15:37:32 +0200 Subject: [PATCH 656/875] Added M4 samples --- samples/M4/ax_ruby_devel.m4 | 172 ++++++++++++++++++++++++++++++++++++ samples/M4/configure.ac | 143 ++++++++++++++++++++++++++++++ samples/M4/list.m4 | 46 ++++++++++ 3 files changed, 361 insertions(+) create mode 100644 samples/M4/ax_ruby_devel.m4 create mode 100644 samples/M4/configure.ac create mode 100644 samples/M4/list.m4 diff --git a/samples/M4/ax_ruby_devel.m4 b/samples/M4/ax_ruby_devel.m4 new file mode 100644 index 00000000..3f68c119 --- /dev/null +++ b/samples/M4/ax_ruby_devel.m4 @@ -0,0 +1,172 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_ruby_devel.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_RUBY_DEVEL([version]) +# +# DESCRIPTION +# +# This macro checks for Ruby and tries to get the include path to +# 'ruby.h'. It provides the $(RUBY_CPPFLAGS) and $(RUBY_LDFLAGS) output +# variables. It also exports $(RUBY_EXTRA_LIBS) for embedding Ruby in your +# code. +# +# You can search for some particular version of Ruby by passing a +# parameter to this macro, for example "1.8.6". +# +# LICENSE +# +# Copyright (c) 2008 Rafal Rzepecki +# Copyright (c) 2008 Sebastian Huber +# Copyright (c) 2008 Alan W. Irwin +# Copyright (c) 2008 Rafael Laboissiere +# Copyright (c) 2008 Andrew Collier +# Copyright (c) 2008 Matteo Settenvini +# Copyright (c) 2008 Horst Knorr +# +# This program 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, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 11 + +AC_DEFUN([AX_RUBY_DEVEL],[ + AC_REQUIRE([AX_WITH_RUBY]) + AS_IF([test -n "$1"], [AX_PROG_RUBY_VERSION([$1])]) + + # + # Check if you have mkmf, else fail + # + AC_MSG_CHECKING([for the mkmf Ruby package]) + ac_mkmf_result=`$RUBY -rmkmf -e ";" 2>&1` + if test -z "$ac_mkmf_result"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot import Ruby module "mkmf". +Please check your Ruby installation. The error was: +$ac_mkmf_result]) + fi + + # + # Check for Ruby include path + # + AC_MSG_CHECKING([for Ruby include path]) + if test -z "$RUBY_CPPFLAGS"; then + ruby_path=`$RUBY -rmkmf -e 'print Config::CONFIG[["archdir"]]'` + if test -n "${ruby_path}"; then + ruby_path="-I$ruby_path" + fi + RUBY_CPPFLAGS=$ruby_path + fi + AC_MSG_RESULT([$RUBY_CPPFLAGS]) + AC_SUBST([RUBY_CPPFLAGS]) + + # + # Check for Ruby library path + # + AC_MSG_CHECKING([for Ruby library path]) + if test -z "$RUBY_LDFLAGS"; then + RUBY_LDFLAGS=`$RUBY -rmkmf -e 'print Config::CONFIG[["LIBRUBYARG_SHARED"]]'` + fi + AC_MSG_RESULT([$RUBY_LDFLAGS]) + AC_SUBST([RUBY_LDFLAGS]) + + # + # Check for site packages + # + AC_MSG_CHECKING([for Ruby site-packages path]) + if test -z "$RUBY_SITE_PKG"; then + RUBY_SITE_PKG=`$RUBY -rmkmf -e 'print Config::CONFIG[["sitearchdir"]]'` + fi + AC_MSG_RESULT([$RUBY_SITE_PKG]) + AC_SUBST([RUBY_SITE_PKG]) + + # + # libraries which must be linked in when embedding + # + AC_MSG_CHECKING(ruby extra libraries) + if test -z "$RUBY_EXTRA_LIBS"; then + RUBY_EXTRA_LIBS=`$RUBY -rmkmf -e 'print Config::CONFIG[["SOLIBS"]]'` + fi + AC_MSG_RESULT([$RUBY_EXTRA_LIBS]) + AC_SUBST(RUBY_EXTRA_LIBS) + + # + # linking flags needed when embedding + # (is it even needed for Ruby?) + # + # AC_MSG_CHECKING(ruby extra linking flags) + # if test -z "$RUBY_EXTRA_LDFLAGS"; then + # RUBY_EXTRA_LDFLAGS=`$RUBY -rmkmf -e 'print Config::CONFIG[["LINKFORSHARED"]]'` + # fi + # AC_MSG_RESULT([$RUBY_EXTRA_LDFLAGS]) + # AC_SUBST(RUBY_EXTRA_LDFLAGS) + + # this flags breaks ruby.h, and is sometimes defined by KDE m4 macros + CFLAGS="`echo "$CFLAGS" | sed -e 's/-std=iso9899:1990//g;'`" + # + # final check to see if everything compiles alright + # + AC_MSG_CHECKING([consistency of all components of ruby development environment]) + AC_LANG_PUSH([C]) + # save current global flags + ac_save_LIBS="$LIBS" + LIBS="$ac_save_LIBS $RUBY_LDFLAGS" + ac_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$ac_save_CPPFLAGS $RUBY_CPPFLAGS" + AC_TRY_LINK([ + #include + ],[ + ruby_init(); + ],[rubyexists=yes],[rubyexists=no]) + + AC_MSG_RESULT([$rubyexists]) + + if test ! "$rubyexists" = "yes"; then + AC_MSG_ERROR([ + Could not link test program to Ruby. Maybe the main Ruby library has been + installed in some non-standard library path. If so, pass it to configure, + via the LDFLAGS environment variable. + Example: ./configure LDFLAGS="-L/usr/non-standard-path/ruby/lib" + ============================================================================ + ERROR! + You probably have to install the development version of the Ruby package + for your distribution. The exact name of this package varies among them. + ============================================================================ + ]) + RUBY_VERSION="" + fi + AC_LANG_POP + # turn back to default flags + CPPFLAGS="$ac_save_CPPFLAGS" + LIBS="$ac_save_LIBS" + + # + # all done! + # +]) diff --git a/samples/M4/configure.ac b/samples/M4/configure.ac new file mode 100644 index 00000000..e65c54b6 --- /dev/null +++ b/samples/M4/configure.ac @@ -0,0 +1,143 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.68) +AC_INIT([GARDEN], + [1.0.9], + [bubla@users.sourceforge.net]) +AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([-Wall]) +AC_CONFIG_SRCDIR([src/input.h]) +AC_CONFIG_HEADERS([src/configure.h]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], + [Builds the debug version of the library [[default = no]]]) ], + [], + [enable_debug="no"]) + +AS_IF([test "x$enable_debug" = "xyes"], + [CFLAGS="${CFLAGS} -g -O0"]) + +# Checks for programs. +AC_PROG_CC +AC_PROG_LIBTOOL +LT_PROG_RC + +AC_CANONICAL_HOST + +dnl +dnl Check whether it makes sense to install a garden.desktop file +dnl +AC_CHECK_PROG([have_freedesktop], + [update-desktop-database], + [yes]) + +AM_CONDITIONAL([HAVE_FREEDESKTOP], + [test "x$have_freedesktop" = "xyes"]) + +AM_CONDITIONAL([WANT_FREEDESKTOP], + [test "x$enable_desktop_install" = "xyes"]) + +AC_ARG_ENABLE([desktop-install], + [AS_HELP_STRING([--enable-desktop-install], + [Whether you want to install the garden.desktop file if applicable. !!! DO NOT USE if you are a PACKAGER!!!])] + ) + +AS_CASE([$host], + [*mingw* | *cygwin*], + [AC_DEFINE([WINDOWS_VERSION], + [1], + [Define when building for Windows]) + windows_version="yes"]) + +AM_CONDITIONAL([WINDOWS_VERSION], + [test "x$windows_version" = "xyes" ]) + +dnl now the datadir specification, that is useful if one does want to play without installing +AC_ARG_ENABLE([datadir], + [AS_HELP_STRING([--enable-datadir=path-to-your-garden-datafiles], + [Normally you dont have to use this, but it is handy when you want to play the game without installing it or if you want to use already installed data. In the first case, use for instance --enable-datadir=`pwd`/data (if it makes sense)])], + [DATADIR_NAME="$enableval"], + [DATADIR_NAME='$(datadir)/'garden]) + +# Sets the data subdirectory +AC_SUBST([DATADIR_NAME]) + +# Checks for libraries. +AC_CHECK_HEADER([allegro.h], + [], + [have_allegro="no" + AC_MSG_ERROR([You don't even have Allegro headers... Get Allegro first!]) ]) + +AC_CHECK_LIB([m], [sin]) + +test "x$host_os" != "x$build_os" && CROSS_COMPILING="yes" + +try_link_allegro () +{ + LIBS_SAVE=$LIBS + LIBS="$LIBS $1" + AC_MSG_CHECKING([for Allegro using $1]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT + [ #include ]], + [allegro_init();])END_OF_MAIN() ], + [have_allegro="yes"], + [have_allegro="no"]) + AC_MSG_RESULT([$have_allegro]) + LIBS=$LIBS_SAVE + AS_IF([test "x$have_allegro" == "xyes"], + [return 0], + [return 1]) +} +# first check for 'official allegro' +# The official allegro does not support cross-compiling, though... +AM_PATH_ALLEGRO([4.2.0]) + +try_link_allegro "$allegro_LIBS" +AS_IF([test "x$?" == "x0"], + [[LIBS="$LIBS $allegro_LIBS" + ALLEGRO_LIB=`echo $allegro_LIBS | sed -e 's/.*-l\([^[:blank:]]*\).*/\1/'` + have_allegro="yes"]]) + +ALLEGRO_RELEASE_LIBS="alleg alleg42 alleg44" +ALLEGRO_DEBUG_LIBS="alld42 alleg44-debug" +AS_IF([test "x$enable_debug" = "xyes"], + [ALLEGRO_LIBS="$ALLEGRO_DEBUG_LIBS $ALLEGRO_RELEASE_LIBS"], + [ALLEGRO_LIBS="$ALLEGRO_RELEASE_LIBS $ALLEGRO_DEBUG_LIBS"]) + +for lib in $ALLEGRO_LIBS +do + ldflag="-l$lib" + AS_IF([test "x$have_allegro" == "xyes"], + [break]) + try_link_allegro $ldflag + AS_IF([test "x$?" == "x0"], + [LIBS="$LIBS $ldflag" + ALLEGRO_LIB="$lib" + have_allegro="yes"]) +done + +AS_IF([test "x$have_allegro" != "xyes"], + [AC_MSG_ERROR([Unable to find Allegro game programming library 4.2, check out www.allegro.cc (or your distro repositories if you use a unix-like system)]) ]) + +# Checks for header files. +AC_CHECK_HEADERS([string.h sys/stat.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_INLINE +AC_HEADER_STDBOOL + +# Checks for library functions. + +AC_SUBST([ALLEGRO_LIB]) + +AC_CONFIG_FILES([Makefile + src/Makefile + data/Makefile + resources/Makefile + docs/garden.doxyfile + pkgs/w32/winstaller.nsi]) + +AC_OUTPUT diff --git a/samples/M4/list.m4 b/samples/M4/list.m4 new file mode 100644 index 00000000..397bd8ff --- /dev/null +++ b/samples/M4/list.m4 @@ -0,0 +1,46 @@ +m4_define([m4_list_declare], [m4_do( + [m4_define([$1_GET], [m4_expand([m4_list_nth([$1], $][1)])])], + [m4_define([$1_FOREACH], [m4_foreach([item], [m4_dquote_elt(m4_list_contents([$1]))], m4_quote($][1))])], +)]) + +m4_define([m4_list_add], [m4_do( + [m4_pushdef([_LIST_NAME], [[_LIST_$1]])], + [m4_ifndef(_LIST_NAME, + [m4_define(_LIST_NAME, m4_dquote(m4_escape([$2])))], + [m4_define(_LIST_NAME, m4_dquote(m4_list_contents([$1]), m4_escape([$2])))], + )], + [m4_popdef([_LIST_NAME])], +)]) + +m4_define([m4_list_contents], [m4_do( + [m4_pushdef([_LIST_NAME], [[_LIST_$1]])], + [m4_ifndef(_LIST_NAME, [], m4_quote(_LIST_NAME))], + [m4_popdef([_LIST_NAME])], +)]) + +m4_define([m4_list_nth], [m4_argn([$2], m4_list_contents([$1]))]) + +m4_define([m4_list_pop_front], [m4_do( + [m4_pushdef([_LIST_NAME], [[_LIST_$1]])], + [m4_car(m4_unquote(_LIST_NAME))], + [m4_define(_LIST_NAME, m4_cdr(m4_unquote(_LIST_NAME)))], + [m4_popdef([_LIST_NAME])], +)]) + +m4_define([m4_list_pop_back], [m4_do( + [m4_pushdef([_LIST_NAME], [[_LIST_$1]])], + [m4_define(_LIST_NAME, m4_dquote(m4_reverse(m4_unquote(_LIST_NAME))))], + [m4_list_pop_front([$1])], + [m4_define(_LIST_NAME, m4_dquote(m4_reverse(m4_unquote(_LIST_NAME))))], + [m4_popdef([_LIST_NAME])], +)]) + +dnl +dnl $1: List name +dnl $2: What +dnl $3: If contains +dnl $4: If not +m4_define([m4_list_contains], [m4_do( + [m4_foreach([item], m4_list_contents([$1]), m4_if(item, [$2], [[$3]], [[$4]]))] +)]) + From 59fb481138b1007aae0d842b815b42fbff8d8fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Thu, 27 Aug 2015 15:40:10 +0200 Subject: [PATCH 657/875] Added pure m4 example --- samples/M4/htmlgen.m4 | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 samples/M4/htmlgen.m4 diff --git a/samples/M4/htmlgen.m4 b/samples/M4/htmlgen.m4 new file mode 100644 index 00000000..9b7671fc --- /dev/null +++ b/samples/M4/htmlgen.m4 @@ -0,0 +1,38 @@ +dnl Took from https://en.wikipedia.org/wiki/M4_(computer_language) +divert(-1) + +M4 has multiple output queues that can be manipulated with the +`divert' macro. Valid queues range from 0 to 10, inclusive, with +the default queue being 0. + +Calling the `divert' macro with an invalid queue causes text to be +discarded until another call. Note that even while output is being +discarded, quotes around `divert' and other macros are needed to +prevent expansion. + +# Macros aren't expanded within comments, meaning that keywords such +# as divert and other built-ins may be used without consequence. + +# HTML utility macro: + +define(`H2_COUNT', 0) + +# The H2_COUNT macro is redefined every time the H2 macro is used: + +define(`H2', + `define(`H2_COUNT', incr(H2_COUNT))

H2_COUNT. $1

') + +divert(1)dnl +dnl +dnl The dnl macro causes m4 to discard the rest of the line, thus +dnl preventing unwanted blank lines from appearing in the output. +dnl +H2(First Section) +H2(Second Section) +H2(Conclusion) +dnl +divert(0)dnl +dnl + +undivert(1)dnl One of the queues is being pushed to output. + From cf5268a7d49301eefaf96c97f08ece68d928b24a Mon Sep 17 00:00:00 2001 From: Michael Fellinger Date: Fri, 28 Aug 2015 14:04:10 -0400 Subject: [PATCH 658/875] add Pony language --- .gitmodules | 3 + grammars.yml | 2 + lib/linguist/languages.yml | 7 + samples/Pony/circle.pony | 30 ++++ samples/Pony/counter.pony | 32 +++++ samples/Pony/gups-opt.pony | 261 ++++++++++++++++++++++++++++++++++ samples/Pony/hello-world.pony | 3 + samples/Pony/mandelbrot.pony | 188 ++++++++++++++++++++++++ samples/Pony/mixed.pony | 130 +++++++++++++++++ vendor/grammars/sublime-pony | 1 + 10 files changed, 657 insertions(+) create mode 100644 samples/Pony/circle.pony create mode 100644 samples/Pony/counter.pony create mode 100644 samples/Pony/gups-opt.pony create mode 100644 samples/Pony/hello-world.pony create mode 100644 samples/Pony/mandelbrot.pony create mode 100644 samples/Pony/mixed.pony create mode 160000 vendor/grammars/sublime-pony diff --git a/.gitmodules b/.gitmodules index 35cc9de8..582a9f9e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -674,3 +674,6 @@ [submodule "vendor/grammars/sublime-typescript"] path = vendor/grammars/sublime-typescript url = https://github.com/Microsoft/TypeScript-Sublime-Plugin +[submodule "vendor/grammars/sublime-pony"] + path = vendor/grammars/sublime-pony + url = https://github.com/CausalityLtd/sublime-pony diff --git a/grammars.yml b/grammars.yml index ae9ff92c..0fcdf052 100644 --- a/grammars.yml +++ b/grammars.yml @@ -505,6 +505,8 @@ vendor/grammars/sublime-nix: vendor/grammars/sublime-opal/: - source.opal - source.opalsysdefs +vendor/grammars/sublime-pony: +- source.pony vendor/grammars/sublime-robot-plugin: - text.robot vendor/grammars/sublime-rust: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5b31ed4f..7ef4cebc 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2604,6 +2604,13 @@ PogoScript: tm_scope: source.pogoscript ace_mode: text +Pony: + type: programming + extensions: + - .pony + tm_scope: source.pony + ace_mode: text + PostScript: type: markup extensions: diff --git a/samples/Pony/circle.pony b/samples/Pony/circle.pony new file mode 100644 index 00000000..06d734d7 --- /dev/null +++ b/samples/Pony/circle.pony @@ -0,0 +1,30 @@ +use "collections" + +class Circle + var _radius: F32 + + new create(radius': F32) => + _radius = radius' + + fun ref get_radius(): F32 => + _radius + + fun ref get_area(): F32 => + F32.pi() * _radius.pow(2) + + fun ref get_circumference(): F32 => + 2 * _radius * F32.pi() + +actor Main + new create(env: Env) => + + for i in Range[F32](1.0, 101.0) do + let c = Circle(i) + + var str = + "Radius: " + c.get_radius().string() + "\n" + + "Circumference: " + c.get_circumference().string() + "\n" + + "Area: " + c.get_area().string() + "\n" + + env.out.print(str) + end diff --git a/samples/Pony/counter.pony b/samples/Pony/counter.pony new file mode 100644 index 00000000..cbb583bd --- /dev/null +++ b/samples/Pony/counter.pony @@ -0,0 +1,32 @@ +use "collections" + +actor Counter + var _count: U32 + + new create() => + _count = 0 + + be increment() => + _count = _count + 1 + + be get_and_reset(main: Main) => + main.display(_count) + _count = 0 + +actor Main + var _env: Env + + new create(env: Env) => + _env = env + + var count: U32 = try env.args(1).u32() else 10 end + var counter = Counter + + for i in Range[U32](0, count) do + counter.increment() + end + + counter.get_and_reset(this) + + be display(result: U32) => + _env.out.print(result.string()) diff --git a/samples/Pony/gups-opt.pony b/samples/Pony/gups-opt.pony new file mode 100644 index 00000000..52fad32f --- /dev/null +++ b/samples/Pony/gups-opt.pony @@ -0,0 +1,261 @@ +use "options" +use "time" +use "collections" + +class Config + var logtable: U64 = 20 + var iterate: U64 = 10000 + var logchunk: U64 = 10 + var logactors: U64 = 2 + + fun ref apply(env: Env): Bool => + var options = Options(env) + + options + .add("logtable", "l", I64Argument) + .add("iterate", "i", I64Argument) + .add("chunk", "c", I64Argument) + .add("actors", "a", I64Argument) + + for option in options do + match option + | ("table", var arg: I64) => logtable = arg.u64() + | ("iterate", var arg: I64) => iterate = arg.u64() + | ("chunk", var arg: I64) => logchunk = arg.u64() + | ("actors", var arg: I64) => logactors = arg.u64() + | let err: ParseError => + err.report(env.out) + env.out.print( + """ + gups_opt [OPTIONS] + --table N log2 of the total table size. Defaults to 20. + --iterate N number of iterations. Defaults to 10000. + --chunk N log2 of the chunk size. Defaults to 10. + --actors N log2 of the actor count. Defaults to 2. + """ + ) + return false + end + end + + env.out.print( + "logtable: " + logtable.string() + + "\niterate: " + iterate.string() + + "\nlogchunk: " + logchunk.string() + + "\nlogactors: " + logactors.string() + ) + true + +actor Main + let _env: Env + let _config: Config = Config + + var _updates: U64 = 0 + var _confirm: U64 = 0 + let _start: U64 + var _actors: Array[Updater] val + + new create(env: Env) => + _env = env + + if _config(env) then + let actor_count = 1 << _config.logactors + let loglocal = _config.logtable - _config.logactors + let chunk_size = 1 << _config.logchunk + let chunk_iterate = chunk_size * _config.iterate + + _updates = chunk_iterate * actor_count + _confirm = actor_count + + var updaters = recover Array[Updater](actor_count) end + + for i in Range[U64](0, actor_count) do + updaters.push(Updater(this, actor_count, i, loglocal, chunk_size, + chunk_iterate * i)) + end + + _actors = consume updaters + _start = Time.nanos() + + for a in _actors.values() do + a.start(_actors, _config.iterate) + end + else + _start = 0 + _actors = recover Array[Updater] end + end + + be done() => + if (_confirm = _confirm - 1) == 1 then + for a in _actors.values() do + a.done() + end + end + + be confirm() => + _confirm = _confirm + 1 + + if _confirm == _actors.size() then + let elapsed = (Time.nanos() - _start).f64() + let gups = _updates.f64() / elapsed + + _env.out.print( + "Time: " + (elapsed / 1e9).string() + + "\nGUPS: " + gups.string() + ) + end + +actor Updater + let _main: Main + let _index: U64 + let _updaters: U64 + let _chunk: U64 + let _mask: U64 + let _loglocal: U64 + + let _output: Array[Array[U64] iso] + let _reuse: List[Array[U64] iso] = List[Array[U64] iso] + var _others: (Array[Updater] val | None) = None + var _table: Array[U64] + var _rand: U64 + + new create(main:Main, updaters: U64, index: U64, loglocal: U64, chunk: U64, + seed: U64) + => + _main = main + _index = index + _updaters = updaters + _chunk = chunk + _mask = updaters - 1 + _loglocal = loglocal + + _rand = PolyRand.seed(seed) + _output = _output.create(updaters) + + let size = 1 << loglocal + _table = Array[U64].undefined(size) + + var offset = index * size + + try + for i in Range[U64](0, size) do + _table(i) = i + offset + end + end + + be start(others: Array[Updater] val, iterate: U64) => + _others = others + iteration(iterate) + + be apply(iterate: U64) => + iteration(iterate) + + fun ref iteration(iterate: U64) => + let chk = _chunk + + for i in Range(0, _updaters) do + _output.push( + try + _reuse.pop() + else + recover Array[U64](chk) end + end + ) + end + + for i in Range(0, _chunk) do + var datum = _rand = PolyRand(_rand) + var updater = (datum >> _loglocal) and _mask + + try + if updater == _index then + _table(i) = _table(i) xor datum + else + _output(updater).push(datum) + end + end + end + + try + let to = _others as Array[Updater] val + + repeat + let data = _output.pop() + + if data.size() > 0 then + to(_output.size()).receive(consume data) + else + _reuse.push(consume data) + end + until _output.size() == 0 end + end + + if iterate > 1 then + apply(iterate - 1) + else + _main.done() + end + + be receive(data: Array[U64] iso) => + try + for i in Range(0, data.size()) do + let datum = data(i) + var j = (datum >> _loglocal) and _mask + _table(j) = _table(j) xor datum + end + + data.clear() + _reuse.push(consume data) + end + + be done() => + _main.confirm() + +primitive PolyRand + fun apply(prev: U64): U64 => + (prev << 1) xor if prev.i64() < 0 then _poly() else 0 end + + fun seed(from: U64): U64 => + var n = from % _period() + + if n == 0 then + return 1 + end + + var m2 = Array[U64].undefined(64) + var temp = U64(1) + + try + for i in Range(0, 64) do + m2(i) = temp + temp = this(temp) + temp = this(temp) + end + end + + var i: U64 = 64 - n.clz() + var r = U64(2) + + try + while i > 0 do + temp = 0 + + for j in Range(0, 64) do + if ((r >> j) and 1) != 0 then + temp = temp xor m2(j) + end + end + + r = temp + i = i - 1 + + if ((n >> i) and 1) != 0 then + r = this(r) + end + end + end + r + + fun _poly(): U64 => 7 + + fun _period(): U64 => 1317624576693539401 diff --git a/samples/Pony/hello-world.pony b/samples/Pony/hello-world.pony new file mode 100644 index 00000000..9f7258e2 --- /dev/null +++ b/samples/Pony/hello-world.pony @@ -0,0 +1,3 @@ +actor Main + new create(env: Env) => + env.out.print("Hello, world.") diff --git a/samples/Pony/mandelbrot.pony b/samples/Pony/mandelbrot.pony new file mode 100644 index 00000000..cae7ea1d --- /dev/null +++ b/samples/Pony/mandelbrot.pony @@ -0,0 +1,188 @@ +use "files" +use "options" +use "collections" + +actor Worker + new mandelbrot(main: Main, x: U64, y: U64, width: U64, iterations: U64, + limit: F32, real: Array[F32] val, imaginary: Array[F32] val) + => + var view: Array[U8] iso = + recover + Array[U8]((y - x) * (width >> 3)) + end + + let group_r = Array[F32].undefined(8) + let group_i = Array[F32].undefined(8) + + var row = x + + try + while row < y do + let prefetch_i = imaginary(row) + + var col: U64 = 0 + + while col < width do + var j: U64 = 0 + + while j < 8 do + group_r.update(j, real(col + j)) + group_i.update(j, prefetch_i) + j = j + 1 + end + + var bitmap: U8 = 0xFF + var n = iterations + + repeat + var mask: U8 = 0x80 + var k: U64 = 0 + + while k < 8 do + let r = group_r(k) + let i = group_i(k) + + group_r.update(k, ((r * r) - (i * i)) + real(col + k)) + group_i.update(k, (2.0 * r * i) + prefetch_i) + + if ((r * r) + (i * i)) > limit then + bitmap = bitmap and not mask + end + + mask = mask >> 1 + k = k + 1 + end + until (bitmap == 0) or ((n = n - 1) == 1) end + + view.push(bitmap) + + col = col + 8 + end + row = row + 1 + end + + main.draw(x * (width >> 3), consume view) + end + +actor Main + var iterations: U64 = 50 + var limit: F32 = 4.0 + var chunks: U64 = 16 + var width: U64 = 16000 + var actors: U64 = 0 + var header: U64 = 0 + var real: Array[F32] val = recover Array[F32] end + var imaginary: Array[F32] val = recover Array[F32] end + var outfile: (File | None) = None + + new create(env: Env) => + try + arguments(env) + + let length = width + let recip_width = 2.0 / width.f32() + + var r = recover Array[F32](length) end + var i = recover Array[F32](length) end + + for j in Range(0, width) do + r.push((recip_width * j.f32()) - 1.5) + i.push((recip_width * j.f32()) - 1.0) + end + + real = consume r + imaginary = consume i + + spawn_actors() + create_outfile() + end + + be draw(offset: U64, pixels: Array[U8] val) => + match outfile + | var out: File => + out.seek_start(header + offset) + out.write(pixels) + if (actors = actors - 1) == 1 then + out.dispose() + end + end + + fun ref create_outfile() => + match outfile + | var f: File => + f.print("P4\n " + width.string() + " " + width.string() + "\n") + header = f.size() + f.set_length((width * (width >> 3)) + header) + end + + fun ref spawn_actors() => + actors = ((width + (chunks - 1)) / chunks) + + var rest = width % chunks + + if rest == 0 then rest = chunks end + + var x: U64 = 0 + var y: U64 = 0 + + for i in Range(0, actors - 1) do + x = i * chunks + y = x + chunks + Worker.mandelbrot(this, x, y, width, iterations, limit, real, imaginary) + end + + Worker.mandelbrot(this, y, y + rest, width, iterations, limit, real, + imaginary) + + fun ref arguments(env: Env) ? => + let options = Options(env) + + options + .add("iterations", "i", I64Argument) + .add("limit", "l", F64Argument) + .add("chunks", "c", I64Argument) + .add("width", "w", I64Argument) + .add("output", "o", StringArgument) + + for option in options do + match option + | ("iterations", var arg: I64) => iterations = arg.u64() + | ("limit", var arg: F64) => limit = arg.f32() + | ("chunks", var arg: I64) => chunks = arg.u64() + | ("width", var arg: I64) => width = arg.u64() + | ("output", var arg: String) => + outfile = try File(FilePath(env.root, arg)) end + | let err: ParseError => err.report(env.out) ; usage(env) ; error + end + end + + fun tag usage(env: Env) => + env.out.print( + """ + mandelbrot [OPTIONS] + + The binary output can be converted to a BMP with the following command + (ImageMagick Tools required): + + convert JPEG:.jpg + + Available options: + + --iterations, -i Maximum amount of iterations to be done for each pixel. + Defaults to 50. + + --limit, -l Square of the limit that pixels need to exceed in order + to escape from the Mandelbrot set. + Defaults to 4.0. + + --chunks, -c Maximum line count of chunks the image should be + divided into for divide & conquer processing. + Defaults to 16. + + --width, -w Lateral length of the resulting mandelbrot image. + Defaults to 16000. + + --output, -o File to write the output to. + + """ + ) diff --git a/samples/Pony/mixed.pony b/samples/Pony/mixed.pony new file mode 100644 index 00000000..d55a161c --- /dev/null +++ b/samples/Pony/mixed.pony @@ -0,0 +1,130 @@ +use "collections" + +actor Worker + var _env: Env + + new create(env: Env) => + _env = env + + var a: U64 = 86028157 + var b: U64 = 329545133 + + var result = factorize(a*b) + + var correct = + try + (result.size() == 2) and + (result(0) == 86028157) and + (result(1) == 329545133) + else + false + end + + fun ref factorize(bigint: U64) : Array[U64] => + var factors = Array[U64](2) + + if bigint <= 3 then + factors.push(bigint) + else + var d: U64 = 2 + var i: U64 = 0 + var n = bigint + + while d < n do + if (n % d) == 0 then + i = i + 1 + factors.push(d) + n = n / d + else + d = if d == 2 then 3 else (d + 2) end + end + end + + factors.push(d) + end + + factors + +actor Ring + var _env: Env + var _size: U32 + var _pass: U32 + var _repetitions: U32 + var _next: Ring + + new create(env: Env, size: U32, pass: U32, repetitions: U32) => + _env = env + _size = size + _pass = pass + _repetitions = repetitions + _next = spawn_ring(_env, _size, _pass) + run() + + new neighbor(env: Env, next: Ring) => + _env = env + _next = next + _size = 0 + _pass = 0 + _repetitions = 0 + + be apply(i: U32) => + if i > 0 then + _next(i - 1) + else + run() + end + + fun ref run() => + if _repetitions > 0 then + _repetitions = _repetitions - 1 + _next(_pass * _size) + Worker(_env) + end + + fun tag spawn_ring(env: Env, size: U32, pass': U32) : Ring => + var next: Ring = this + + for i in Range[U32](0, size) do + next = Ring.neighbor(env, next) + end + + next + +actor Main + var _size: U32 = 50 + var _count: U32 = 20 + var _pass: U32 = 10000 + var _repetitions: U32 = 5 + var _env: Env + + new create(env: Env) => + _env = env + + try + arguments() + start_benchmark() + else + usage() + end + + fun ref arguments() ? => + _count = _env.args(1).u32() + _size = _env.args(2).u32() + _pass = _env.args(3).u32() + _repetitions = _env.args(4).u32() + + fun ref start_benchmark() => + for i in Range[U32](0, _count) do + Ring(_env, _size, _pass, _repetitions) + end + + fun ref usage() => + _env.out.print( + """ + mixed OPTIONS + N number of actors in each ring" + N number of rings" + N number of messages to pass around each ring" + N number of times to repeat" + """ + ) diff --git a/vendor/grammars/sublime-pony b/vendor/grammars/sublime-pony new file mode 160000 index 00000000..6197c402 --- /dev/null +++ b/vendor/grammars/sublime-pony @@ -0,0 +1 @@ +Subproject commit 6197c4028eb04dcb1c443160047e4c84c80d863e From 1d86f40fcda7ef0b302a55f6d94d8e99e7f3329e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Sun, 30 Aug 2015 15:03:55 +0200 Subject: [PATCH 659/875] Added m4sugar language, moved samples to right locations. --- lib/linguist/languages.yml | 16 +++++++++++++++- samples/{M4 => M4Sugar}/ax_ruby_devel.m4 | 0 samples/{M4 => M4Sugar/filenames}/configure.ac | 0 samples/{M4 => M4Sugar}/list.m4 | 0 4 files changed, 15 insertions(+), 1 deletion(-) rename samples/{M4 => M4Sugar}/ax_ruby_devel.m4 (100%) rename samples/{M4 => M4Sugar/filenames}/configure.ac (100%) rename samples/{M4 => M4Sugar}/list.m4 (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ab094d63..0b882393 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1917,9 +1917,23 @@ M: - .m tm_scope: source.lisp ace_mode: lisp - + M4: type: programming + aliases: + - autoconf + extensions: + - .m4 + filenames: + - configure.ac + tm_scope: none + ace_mode: text + +M4Sugar: + type: programming + group: M4 + aliases: + - autoconf extensions: - .m4 filenames: diff --git a/samples/M4/ax_ruby_devel.m4 b/samples/M4Sugar/ax_ruby_devel.m4 similarity index 100% rename from samples/M4/ax_ruby_devel.m4 rename to samples/M4Sugar/ax_ruby_devel.m4 diff --git a/samples/M4/configure.ac b/samples/M4Sugar/filenames/configure.ac similarity index 100% rename from samples/M4/configure.ac rename to samples/M4Sugar/filenames/configure.ac diff --git a/samples/M4/list.m4 b/samples/M4Sugar/list.m4 similarity index 100% rename from samples/M4/list.m4 rename to samples/M4Sugar/list.m4 From 73b1737dc7fbf77629f3514a2e9a8fc82ec0467c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Sun, 30 Aug 2015 15:09:45 +0200 Subject: [PATCH 660/875] Removed a typo --- lib/linguist/languages.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0b882393..efa1dfb1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1920,8 +1920,6 @@ M: M4: type: programming - aliases: - - autoconf extensions: - .m4 filenames: From 1068cfb4b5d791e522071d876044356e7eb4ecaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Sun, 30 Aug 2015 15:25:42 +0200 Subject: [PATCH 661/875] Removed stray M4 attribute --- lib/linguist/languages.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index efa1dfb1..01065eb2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1922,8 +1922,6 @@ M4: type: programming extensions: - .m4 - filenames: - - configure.ac tm_scope: none ace_mode: text From dd8eaf2893030d808fdf10553f79ac75ae5f596c Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Sun, 30 Aug 2015 12:32:33 +0200 Subject: [PATCH 662/875] Alphabetise heuristics. --- lib/linguist/heuristics.rb | 372 ++++++++++++++++++------------------- test/test_heuristics.rb | 208 ++++++++++----------- 2 files changed, 290 insertions(+), 290 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 4d468bf0..dd1f8ee6 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -67,6 +67,16 @@ module Linguist # Common heuristics ObjectiveCRegex = /^[ \t]*@(interface|class|protocol|property|end|synchronized|selector|implementation)\b/ + disambiguate ".asc" do |data| + if /^(----[- ]BEGIN|ssh-(rsa|dss)) /.match(data) + Language["Public Key"] + elsif /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) + Language["AsciiDoc"] + elsif /^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])/.match(data) + Language["AGS Script"] + end + end + disambiguate ".bb" do |data| if /^\s*; /.match(data) || data.include?("End Function") Language["BlitzBasic"] @@ -75,67 +85,9 @@ module Linguist end end - disambiguate ".cs" do |data| - if /![\w\s]+methodsFor: /.match(data) - Language["Smalltalk"] - elsif /^\s*namespace\s*[\w\.]+\s*{/.match(data) || /^\s*\/\//.match(data) - Language["C#"] - end - end - - disambiguate ".h" do |data| - if ObjectiveCRegex.match(data) - Language["Objective-C"] - elsif (/^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>/.match(data) || - /^\s*template\s* ")) - Language["GAP"] - # Heads up - we don't usually write heuristics like this (with no regex match) - else - Language["Scilab"] + disambiguate ".ch" do |data| + if /^\s*#\s*(if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b/i.match(data) + Language["xBase"] end end @@ -149,29 +101,29 @@ module Linguist end end - disambiguate ".php" do |data| - if data.include?("/.match(data) || + /^\s*template\s*)/.match(data) + Language["Lex"] + elsif /^\.[a-z][a-z](\s|$)/i.match(data) + Language["Groff"] + elsif /^\((de|class|rel|code|data|must)\s/.match(data) + Language["PicoLisp"] + end + end + + disambiguate ".ls" do |data| + if /^\s*package\s*[\w\.\/\*\s]*\s*{/.match(data) + Language["LoomScript"] + else + Language["LiveScript"] + end + end + + disambiguate ".lsp", ".lisp" do |data| + if /^\s*\((defun|in-package|defpackage) /i.match(data) + Language["Common Lisp"] + elsif /^\s*\(define /.match(data) + Language["NewLisp"] + end + end + disambiguate ".m" do |data| if ObjectiveCRegex.match(data) Language["Objective-C"] @@ -213,41 +216,113 @@ module Linguist end end - disambiguate ".gs" do |data| - Language["Gosu"] if /^uses java\./.match(data) - end - - disambiguate ".ls" do |data| - if /^\s*package\s*[\w\.\/\*\s]*\s*{/.match(data) - Language["LoomScript"] - else - Language["LiveScript"] + disambiguate ".ml" do |data| + if /(^\s*module)|let rec |match\s+(\S+\s)+with/.match(data) + Language["OCaml"] + elsif /=> |case\s+(\S+\s)+of/.match(data) + Language["Standard ML"] end end - disambiguate ".lsp", ".lisp" do |data| - if /^\s*\((defun|in-package|defpackage) /i.match(data) - Language["Common Lisp"] - elsif /^\s*\(define /.match(data) + disambiguate ".mod" do |data| + if data.include?(' |case\s+(\S+\s)+of/.match(data) - Language["Standard ML"] - end - end - - disambiguate ".mod" do |data| - if data.include?(' ")) + Language["GAP"] + # Heads up - we don't usually write heuristics like this (with no regex match) else - Language["NewLisp"] - end - end - - disambiguate ".rs" do |data| - if /^(use |fn |mod |pub |macro_rules|impl|#!?\[)/.match(data) - Language["Rust"] - elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) - Language["RenderScript"] - end - end - - disambiguate ".l" do |data| - if /\(def(un|macro)\s/.match(data) - Language["Common Lisp"] - elsif /^(%[%{}]xs|<.*>)/.match(data) - Language["Lex"] - elsif /^\.[a-z][a-z](\s|$)/i.match(data) - Language["Groff"] - elsif /^\((de|class|rel|code|data|must)\s/.match(data) - Language["PicoLisp"] - end - end - - disambiguate ".n" do |data| - if /^[.']/.match(data) - Language["Groff"] - elsif /^(module|namespace|using)\s/.match(data) - Language["Nemerle"] - end - end - - disambiguate ".ms" do |data| - if /^[.'][a-z][a-z](\s|$)/i.match(data) - Language["Groff"] - elsif /((^|\s)move?[. ])|\.(include|globa?l)\s/.match(data) - Language["GAS"] - end - end - - disambiguate ".ch" do |data| - if /^\s*#\s*(if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b/i.match(data) - Language["xBase"] - end - end - - disambiguate ".r" do |data| - if /\bRebol\b/i.match(data) - Language["Rebol"] - elsif data.include?("<-") - Language["R"] + Language["Scilab"] end end end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index cca48675..524a522a 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -33,6 +33,101 @@ class TestHeuristcs < Minitest::Test end end + def test_detect_still_works_if_nothing_matches + blob = Linguist::FileBlob.new(File.join(samples_path, "Objective-C/hello.m")) + match = Language.detect(blob) + assert_equal Language["Objective-C"], match + end + + # Candidate languages = ["AGS Script", "AsciiDoc", "Public Key"] + def test_asc_by_heuristics + assert_heuristics({ + "AsciiDoc" => all_fixtures("AsciiDoc", "*.asc"), + "AGS Script" => all_fixtures("AGS Script", "*.asc"), + "Public Key" => all_fixtures("Public Key", "*.asc") + }) + end + + def test_bb_by_heuristics + assert_heuristics({ + "BitBake" => all_fixtures("BitBake", "*.bb"), + "BlitzBasic" => all_fixtures("BlitzBasic", "*.bb") + }) + end + + def test_ch_by_heuristics + assert_heuristics({ + "xBase" => all_fixtures("xBase", ".ch") + }) + end + + def test_cl_by_heuristics + assert_heuristics({ + "Common Lisp" => all_fixtures("Common Lisp", "*.cl"), + "OpenCL" => all_fixtures("OpenCL", "*.cl") + }) + end + + def test_cs_by_heuristics + assert_heuristics({ + "C#" => all_fixtures("C#", "*.cs"), + "Smalltalk" => all_fixtures("Smalltalk", "*.cs") + }) + end + + # Candidate languages = ["ECL", "ECLiPSe"] + def test_ecl_by_heuristics + assert_heuristics({ + "ECL" => all_fixtures("ECL", "*.ecl"), + "ECLiPSe" => all_fixtures("ECLiPSe", "*.ecl") + }) + end + + def test_f_by_heuristics + assert_heuristics({ + "FORTRAN" => all_fixtures("FORTRAN", "*.f") + all_fixtures("FORTRAN", "*.for"), + "Forth" => all_fixtures("Forth", "*.f") + all_fixtures("Forth", "*.for") + }) + end + + def test_fr_by_heuristics + assert_heuristics({ + "Frege" => all_fixtures("Frege", "*.fr"), + "Forth" => all_fixtures("Forth", "*.fr"), + "Text" => all_fixtures("Text", "*.fr") + }) + end + + def test_fs_by_heuristics + assert_heuristics({ + "F#" => all_fixtures("F#", "*.fs"), + "Forth" => all_fixtures("Forth", "*.fs"), + "GLSL" => all_fixtures("GLSL", "*.fs") + }) + end + + # Candidate languages = ["Hack", "PHP"] + def test_hack_by_heuristics + assert_heuristics({ + "Hack" => all_fixtures("Hack", "*.php"), + "PHP" => all_fixtures("PHP", "*.php") + }) + end + + def test_ls_by_heuristics + assert_heuristics({ + "LiveScript" => all_fixtures("LiveScript", "*.ls"), + "LoomScript" => all_fixtures("LoomScript", "*.ls") + }) + end + + def test_lsp_by_heuristics + assert_heuristics({ + "Common Lisp" => all_fixtures("Common Lisp", "*.lsp") + all_fixtures("Common Lisp", "*.lisp"), + "NewLisp" => all_fixtures("NewLisp", "*.lsp") + all_fixtures("NewLisp", "*.lisp") + }) + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues @@ -43,12 +138,6 @@ class TestHeuristcs < Minitest::Test }) end - def test_detect_still_works_if_nothing_matches - blob = Linguist::FileBlob.new(File.join(samples_path, "Objective-C/hello.m")) - match = Language.detect(blob) - assert_equal Language["Objective-C"], match - end - # Candidate languages = ["Perl", "Perl6", "Prolog"] def test_pl_prolog_perl_by_heuristics assert_heuristics({ @@ -66,24 +155,6 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["Perl", "Perl6"] - def test_t_perl_by_heuristics - assert_heuristics({ - "Perl" => all_fixtures("Perl", "*.t"), - "Perl6" => ["Perl6/01-dash-uppercase-i.t", "Perl6/01-parse.t", "Perl6/advent2009-day16.t", - "Perl6/basic-open.t", "Perl6/calendar.t", "Perl6/for.t", "Perl6/hash.t", - "Perl6/listquote-whitespace.t"] - }) - end - - # Candidate languages = ["ECL", "ECLiPSe"] - def test_ecl_by_heuristics - assert_heuristics({ - "ECL" => all_fixtures("ECL", "*.ecl"), - "ECLiPSe" => all_fixtures("ECLiPSe", "*.ecl") - }) - end - # Candidate languages = ["IDL", "Prolog", "QMake", "INI"] def test_pro_by_heuristics assert_heuristics({ @@ -94,34 +165,10 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["AGS Script", "AsciiDoc", "Public Key"] - def test_asc_by_heuristics + def test_r_by_heuristics assert_heuristics({ - "AsciiDoc" => all_fixtures("AsciiDoc", "*.asc"), - "AGS Script" => all_fixtures("AGS Script", "*.asc"), - "Public Key" => all_fixtures("Public Key", "*.asc") - }) - end - - def test_cl_by_heuristics - assert_heuristics({ - "Common Lisp" => all_fixtures("Common Lisp", "*.cl"), - "OpenCL" => all_fixtures("OpenCL", "*.cl") - }) - end - - def test_f_by_heuristics - assert_heuristics({ - "FORTRAN" => all_fixtures("FORTRAN", "*.f") + all_fixtures("FORTRAN", "*.for"), - "Forth" => all_fixtures("Forth", "*.f") + all_fixtures("Forth", "*.for") - }) - end - - # Candidate languages = ["Hack", "PHP"] - def test_hack_by_heuristics - assert_heuristics({ - "Hack" => all_fixtures("Hack", "*.php"), - "PHP" => all_fixtures("PHP", "*.php") + "R" => all_fixtures("R", "*.r") + all_fixtures("R", "*.R"), + "Rebol" => all_fixtures("Rebol", "*.r") }) end @@ -133,47 +180,13 @@ class TestHeuristcs < Minitest::Test }) end - def test_fs_by_heuristics + # Candidate languages = ["Perl", "Perl6"] + def test_t_perl_by_heuristics assert_heuristics({ - "F#" => all_fixtures("F#", "*.fs"), - "Forth" => all_fixtures("Forth", "*.fs"), - "GLSL" => all_fixtures("GLSL", "*.fs") - }) - end - - def test_fr_by_heuristics - assert_heuristics({ - "Frege" => all_fixtures("Frege", "*.fr"), - "Forth" => all_fixtures("Forth", "*.fr"), - "Text" => all_fixtures("Text", "*.fr") - }) - end - - def test_bb_by_heuristics - assert_heuristics({ - "BitBake" => all_fixtures("BitBake", "*.bb"), - "BlitzBasic" => all_fixtures("BlitzBasic", "*.bb") - }) - end - - def test_lsp_by_heuristics - assert_heuristics({ - "Common Lisp" => all_fixtures("Common Lisp", "*.lsp") + all_fixtures("Common Lisp", "*.lisp"), - "NewLisp" => all_fixtures("NewLisp", "*.lsp") + all_fixtures("NewLisp", "*.lisp") - }) - end - - def test_cs_by_heuristics - assert_heuristics({ - "C#" => all_fixtures("C#", "*.cs"), - "Smalltalk" => all_fixtures("Smalltalk", "*.cs") - }) - end - - def test_ls_by_heuristics - assert_heuristics({ - "LiveScript" => all_fixtures("LiveScript", "*.ls"), - "LoomScript" => all_fixtures("LoomScript", "*.ls") + "Perl" => all_fixtures("Perl", "*.t"), + "Perl6" => ["Perl6/01-dash-uppercase-i.t", "Perl6/01-parse.t", "Perl6/advent2009-day16.t", + "Perl6/basic-open.t", "Perl6/calendar.t", "Perl6/for.t", "Perl6/hash.t", + "Perl6/listquote-whitespace.t"] }) end @@ -183,17 +196,4 @@ class TestHeuristcs < Minitest::Test "XML" => all_fixtures("XML", "*.ts") }) end - - def test_ch_by_heuristics - assert_heuristics({ - "xBase" => all_fixtures("xBase", ".ch") - }) - end - - def test_r_by_heuristics - assert_heuristics({ - "R" => all_fixtures("R", "*.r") + all_fixtures("R", "*.R"), - "Rebol" => all_fixtures("Rebol", "*.r") - }) - end end From 6e05edc3506800ab7139b169c16cb18eb6d6d405 Mon Sep 17 00:00:00 2001 From: James Kyle Date: Mon, 31 Aug 2015 10:26:29 -0700 Subject: [PATCH 663/875] Add .jsproj extension --- lib/linguist/languages.yml | 1 + samples/JSProj/JSBrowser.jsproj | 96 +++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 samples/JSProj/JSBrowser.jsproj diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8a0bc395..02f73444 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3615,6 +3615,7 @@ XML: - .iml - .ivy - .jelly + - .jsproj - .kml - .launch - .mdpolicy diff --git a/samples/JSProj/JSBrowser.jsproj b/samples/JSProj/JSBrowser.jsproj new file mode 100644 index 00000000..78d2cb4d --- /dev/null +++ b/samples/JSProj/JSBrowser.jsproj @@ -0,0 +1,96 @@ + + + + + Debug + AnyCPU + + + Debug + ARM + + + Debug + x64 + + + Debug + x86 + + + Release + AnyCPU + + + Release + ARM + true + + + Release + x64 + true + + + Release + x86 + true + + + + 42fc11d8-64c6-4967-a15a-dfd787f68766 + + + + 14.0 + + + + + true + UAP + 10.0.10240.0 + 10.0.10240.0 + $(VersionNumberMajor).$(VersionNumberMinor) + en-US + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + From 9b8bf9068f2ec2ea2de37a29b3c8ad40c922215f Mon Sep 17 00:00:00 2001 From: James Kyle Date: Mon, 31 Aug 2015 11:35:01 -0700 Subject: [PATCH 664/875] Move jsproj example to xml directory --- samples/{JSProj => XML}/JSBrowser.jsproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename samples/{JSProj => XML}/JSBrowser.jsproj (100%) diff --git a/samples/JSProj/JSBrowser.jsproj b/samples/XML/JSBrowser.jsproj similarity index 100% rename from samples/JSProj/JSBrowser.jsproj rename to samples/XML/JSBrowser.jsproj From e62d0e19a52d93cd72b3c47e5ace405a4fcf044b Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 1 Sep 2015 07:12:18 +1000 Subject: [PATCH 665/875] Add ".geojson" as a JSON extension --- lib/linguist/languages.yml | 1 + samples/JSON/geo.geojson | 82 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 samples/JSON/geo.geojson diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8a0bc395..19cd8ca9 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1546,6 +1546,7 @@ JSON: extensions: - .json - .lock + - .geojson filenames: - .jshintrc - composer.lock diff --git a/samples/JSON/geo.geojson b/samples/JSON/geo.geojson new file mode 100644 index 00000000..1c77693e --- /dev/null +++ b/samples/JSON/geo.geojson @@ -0,0 +1,82 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "Australia Post - North Ryde BC", + "geo": [-33.787792, 151.13288], + "streetAddress": "11 Waterloo Road", + "addressLocality": "Macquarie Park", + "addressRegion": "New South Wales", + "addressCountry": "Australia", + "postalCode": "2113" + }, + "geometry": { + "type": "Point", + "coordinates": [151.13288, -33.787792, 0] + } + }, + + + { + "type": "Feature", + "properties": { + "name": "George Weston Foods Limited", + "geo": [-37.8263884, 144.9105381], + "streetAddress": "Level 3, 187 Todd Road", + "addressLocality": "Port Melbourne", + "addressRegion": "Victoria", + "addressCountry": "Australia", + "postalCode": "3207" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [144.9097088901841, -37.82622654171794, 0], + [144.9099724266943, -37.82679388891783, 0], + [144.9110127325916, -37.82651526396403, 0], + [144.9112227645738, -37.82655667152123, 0], + [144.9113739439796, -37.82618552508767, 0], + [144.9112740633105, -37.82615750100924, 0], + [144.9111355846674, -37.82584493693527, 0], + [144.9097088901841, -37.82622654171794, 0] + ] + ] + } + }, + + + { + "type": "Feature", + "properties": { + "name": "George Weston Foods Limited", + "geo": [-37.05202791502396, 144.2085614999388], + "streetAddress": "67 Richards Road", + "addressLocality": "Castlemaine", + "addressRegion": "Victoria", + "addressCountry": "Australia", + "postalCode": "3450" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [144.2052428913937, -37.04906391287216, 0], + [144.205540392692, -37.05049727485623, 0], + [144.2059800881858, -37.05066835966983, 0], + [144.206490656024, -37.05279538900776, 0], + [144.2064525845008, -37.05366195881602, 0], + [144.2084322301922, -37.0538920493147, 0], + [144.2084811895712, -37.05266519735124, 0], + [144.2079784002005, -37.05041270555773, 0], + [144.2074017905817, -37.04817406993293, 0], + [144.2061363939852, -37.04834972871226, 0], + [144.2052428913937, -37.04906391287216, 0] + ] + ] + } + } + ] +} From b428bce1265a5b99454f2effaceaf29b1d9b381f Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 1 Sep 2015 07:19:06 +1000 Subject: [PATCH 666/875] Quote NCL language's colour value Without double-quotes, the hex colour is interpreted as a YAML comment. Originally added in 2d39258. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 19cd8ca9..6f59cc19 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2128,7 +2128,7 @@ Myghty: NCL: type: programming - color: #28431f + color: "#28431f" extensions: - .ncl tm_scope: source.ncl From a167f852dd6a202cb2d28a8c1ed4bf83150c415b Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 1 Sep 2015 07:32:21 +1000 Subject: [PATCH 667/875] Alphabetise JSON extensions --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 6f59cc19..446c81c2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1545,8 +1545,8 @@ JSON: searchable: false extensions: - .json - - .lock - .geojson + - .lock filenames: - .jshintrc - composer.lock From e4f5c0066a90a5e12a845d495196c051ad7bd038 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 31 Aug 2015 08:53:40 +0200 Subject: [PATCH 668/875] Add checks to keep heuristics alphabetised. --- test/test_pedantic.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/test_pedantic.rb b/test/test_pedantic.rb index 29b673ab..2d0372cc 100644 --- a/test/test_pedantic.rb +++ b/test/test_pedantic.rb @@ -32,6 +32,18 @@ class TestPedantic < Minitest::Test end end + def test_heuristics_are_sorted + file = File.expand_path("../../lib/linguist/heuristics.rb", __FILE__) + heuristics = open(file).each.grep(/^ *disambiguate/) + assert_sorted heuristics + end + + def test_heuristics_tests_are_sorted + file = File.expand_path("../test_heuristics.rb", __FILE__) + tests = open(file).each.grep(/^ *def test_[a-z_]+_by_heuristics/) + assert_sorted tests + end + def assert_sorted(list) list.each_cons(2) do |previous, item| flunk "#{previous} should come after #{item}" if previous > item From 5afdd2c533ccb6669eef2a9d848bcb6231380370 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Tue, 1 Sep 2015 14:23:59 +0300 Subject: [PATCH 669/875] Add color for the PL/SQL language. I have added color to the PL/SQL language: #dad8d8. I take this color from a window background which evokes the interface of the language. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8a0bc395..f01f2c26 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2443,6 +2443,7 @@ PLSQL: type: programming ace_mode: sql tm_scope: source.plsql.oracle + color: "#dad8d8" extensions: - .pls - .pkb From 81ebef2e2906ebabbc70292e2901f6658503c801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Tue, 1 Sep 2015 17:49:01 +0200 Subject: [PATCH 670/875] Added autoconf output, removed configure.ac --- lib/linguist/vendor.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index ed89eda8..7b7b75f8 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -20,10 +20,16 @@ - ^deps/ - ^tools/ - (^|/)configure$ -- (^|/)configure.ac$ - (^|/)config.guess$ - (^|/)config.sub$ +# stuff autogenerated by autoconf - still C deps +- (^|/)libtool.m4 +- (^|/)ltoptions.m4 +- (^|/)ltsugar.m4 +- (^|/)ltversion.m4 +- (^|/)lt~obsolete.m4 + # Linters - cpplint.py From 26a35ea43dec04872f18c70b7733026abffd00f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Tue, 1 Sep 2015 17:51:18 +0200 Subject: [PATCH 671/875] added aclocal to the generated files list --- lib/linguist/vendor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 7b7b75f8..1d58f467 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -24,6 +24,7 @@ - (^|/)config.sub$ # stuff autogenerated by autoconf - still C deps +- (^|/)aclocal.m4 - (^|/)libtool.m4 - (^|/)ltoptions.m4 - (^|/)ltsugar.m4 From f0242f6f97a2c439e868a3e4c3277bd7d56117bb Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 1 Sep 2015 19:12:27 +0100 Subject: [PATCH 672/875] Updating grammars --- vendor/grammars/Handlebars | 2 +- vendor/grammars/Lean.tmbundle | 2 +- vendor/grammars/Sublime-Nit | 2 +- vendor/grammars/Sublime-SQF-Language | 2 +- vendor/grammars/SublimePapyrus | 2 +- vendor/grammars/atom-fsharp | 2 +- vendor/grammars/dart-sublime-bundle | 2 +- vendor/grammars/factor | 2 +- vendor/grammars/haxe-sublime-bundle | 2 +- vendor/grammars/java.tmbundle | 2 +- vendor/grammars/language-gfm | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/powershell | 2 +- vendor/grammars/sublime-aspectj | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/sublime-typescript | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/vendor/grammars/Handlebars b/vendor/grammars/Handlebars index 64f29314..88a0836a 160000 --- a/vendor/grammars/Handlebars +++ b/vendor/grammars/Handlebars @@ -1 +1 @@ -Subproject commit 64f293140c16666bc1fc7b91d14388d5c3f66d8c +Subproject commit 88a0836abe8de6bf4a4f0ac878bcd3087f0fef95 diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle index dd3e30f0..943ac84b 160000 --- a/vendor/grammars/Lean.tmbundle +++ b/vendor/grammars/Lean.tmbundle @@ -1 +1 @@ -Subproject commit dd3e30f0581b14b8a4830d6b46eaa86bf62058e8 +Subproject commit 943ac84bf69bfbcab54eeeebba6d66c90ed700ff diff --git a/vendor/grammars/Sublime-Nit b/vendor/grammars/Sublime-Nit index 7d8b3503..e1e5463c 160000 --- a/vendor/grammars/Sublime-Nit +++ b/vendor/grammars/Sublime-Nit @@ -1 +1 @@ -Subproject commit 7d8b3503923edb3dd0fa0f8e0684dd33e7897446 +Subproject commit e1e5463c9cc83d61e48617dbe370307e358162b2 diff --git a/vendor/grammars/Sublime-SQF-Language b/vendor/grammars/Sublime-SQF-Language index 6d0f3f6c..81c5be35 160000 --- a/vendor/grammars/Sublime-SQF-Language +++ b/vendor/grammars/Sublime-SQF-Language @@ -1 +1 @@ -Subproject commit 6d0f3f6cee23a79f59af9ab263841c1533cd54f1 +Subproject commit 81c5be35bff3d1f8d77d8abeb8ca1c2d7c124899 diff --git a/vendor/grammars/SublimePapyrus b/vendor/grammars/SublimePapyrus index 2451bac8..a9d818f0 160000 --- a/vendor/grammars/SublimePapyrus +++ b/vendor/grammars/SublimePapyrus @@ -1 +1 @@ -Subproject commit 2451bac8ef1c06b8d4c514d5a417dd6fd295dda4 +Subproject commit a9d818f0ac24d8576db3bf703b78c7c675705439 diff --git a/vendor/grammars/atom-fsharp b/vendor/grammars/atom-fsharp index e7a4159f..2cbcaca9 160000 --- a/vendor/grammars/atom-fsharp +++ b/vendor/grammars/atom-fsharp @@ -1 +1 @@ -Subproject commit e7a4159fbf680ba4cafa9115ea7264a9cdba0fd0 +Subproject commit 2cbcaca93cbb94319f249a35653e3f3a24571a32 diff --git a/vendor/grammars/dart-sublime-bundle b/vendor/grammars/dart-sublime-bundle index 3e3ac8cc..d61e6efc 160000 --- a/vendor/grammars/dart-sublime-bundle +++ b/vendor/grammars/dart-sublime-bundle @@ -1 +1 @@ -Subproject commit 3e3ac8cc0366048a617a6056d7f6e2f1c8ccf4fe +Subproject commit d61e6efcbdec3c7c4a47e5355ce31b57020b24c9 diff --git a/vendor/grammars/factor b/vendor/grammars/factor index ac5da311..b2a51dfe 160000 --- a/vendor/grammars/factor +++ b/vendor/grammars/factor @@ -1 +1 @@ -Subproject commit ac5da311f73401db4adc28936c6aaae587a713ee +Subproject commit b2a51dfeb2bc721c0c908d3f0fa56ddf9202d06c diff --git a/vendor/grammars/haxe-sublime-bundle b/vendor/grammars/haxe-sublime-bundle index 102acf66..c3b96f1c 160000 --- a/vendor/grammars/haxe-sublime-bundle +++ b/vendor/grammars/haxe-sublime-bundle @@ -1 +1 @@ -Subproject commit 102acf66b921526401ce76f0a74c7f94edaca678 +Subproject commit c3b96f1c754ebc91bacc2926412042567fabbb5a diff --git a/vendor/grammars/java.tmbundle b/vendor/grammars/java.tmbundle index 5f420457..64294ae0 160000 --- a/vendor/grammars/java.tmbundle +++ b/vendor/grammars/java.tmbundle @@ -1 +1 @@ -Subproject commit 5f4204576e13a73c9dfce525d8ced41a39d004c3 +Subproject commit 64294ae0b62b64b1183c401e3803679eaddb4946 diff --git a/vendor/grammars/language-gfm b/vendor/grammars/language-gfm index 9b95c2ad..597d382a 160000 --- a/vendor/grammars/language-gfm +++ b/vendor/grammars/language-gfm @@ -1 +1 @@ -Subproject commit 9b95c2ad7c3c1261e54b11919f71ec3ad473aad9 +Subproject commit 597d382a8c5a23a3f358f6edb81e3f0ff6e17a30 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 39fd6989..c5c381e3 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 39fd6989f78e1be265dc6ce9ba7a0ac450525864 +Subproject commit c5c381e37812219db84cb5916094ca3b8dce62db diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index 7d38baf8..8933c523 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit 7d38baf80b89c1dc58e77f8a12763c5d18d5e1e5 +Subproject commit 8933c5239ab946c4d8f3417b04f6dfc2e3448968 diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index cb582fd0..a6823795 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit cb582fd056f91f19d265a3d0db0e161da52031ed +Subproject commit a6823795885801b62c7fceca41adaa4bf4de7a69 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index 23e62234..6358337b 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit 23e622349857b2e2181201e510c84fcec8e909d6 +Subproject commit 6358337b629fd9c17ac8c92f00e88859e6577d4f diff --git a/vendor/grammars/powershell b/vendor/grammars/powershell index 18c9f0e5..982ae21d 160000 --- a/vendor/grammars/powershell +++ b/vendor/grammars/powershell @@ -1 +1 @@ -Subproject commit 18c9f0e553f68053713503b8dcca2c4712381ad6 +Subproject commit 982ae21d54b3affc498131515ebbfca6b186ac16 diff --git a/vendor/grammars/sublime-aspectj b/vendor/grammars/sublime-aspectj index 888fefdd..72b35f79 160000 --- a/vendor/grammars/sublime-aspectj +++ b/vendor/grammars/sublime-aspectj @@ -1 +1 @@ -Subproject commit 888fefdd2f8db57628d7bd36e2388f1f534c00a7 +Subproject commit 72b35f795c2d7800ea65eb91b32d7594748dc561 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index 386d8fcd..cff9c9c1 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit 386d8fcdc522d469c0d451f383f5b4aaaec7369f +Subproject commit cff9c9c1c60f2bb4dc720931ceb37bcc12598334 diff --git a/vendor/grammars/sublime-typescript b/vendor/grammars/sublime-typescript index 0d519e5a..cf0fe35e 160000 --- a/vendor/grammars/sublime-typescript +++ b/vendor/grammars/sublime-typescript @@ -1 +1 @@ -Subproject commit 0d519e5a5592bd4152523fe359d1a0ebbe9cc493 +Subproject commit cf0fe35e3653d1de1605ac1d20ecba43dbd29709 From 13702451abaa0c6d5d20c4902534399240334184 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 1 Sep 2015 19:13:02 +0100 Subject: [PATCH 673/875] Bumping to v4.5.15 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 1ba6a51b..dbdb7d7f 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.14" + VERSION = "4.5.15" end From 1b327e29baf00b63c34a00f4118141fb30827d8c Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Tue, 1 Sep 2015 21:51:48 +0300 Subject: [PATCH 674/875] Add colors for some languages. These are effected languages and the reason behind the proposed colors: - Ant Build System: The color of logo (http://ant.apache.org/images/project-logo.gif). - AppleScript: AppleScript editor logo (https://en.wikipedia.org/wiki/AppleScript#/media/File:AppleScript_Editor_Logo.png). - Batchfile: Batch file icon in Windows (https://en.wikipedia.org/wiki/Batch_file#/media/File:Batch_file_icon_in_Windows_Vista.png). - Bison: A color taken from a bison (https://en.wikipedia.org/wiki/Bison#/media/File:Americanbison.jpg). - Cucumber: Official logo color (https://cucumber.io/images/cucumber-logo.svg). - Cuda: Nvidia(creator of CUDA) logo color (http://www.nvidia.com/content/includes/redesign2010/images/redesign10/nvidia_logo.png). - Gradle: Official Gradle logo color (https://gradle.org/wp-content/uploads/2015/03/GradleLogoReg.png). - Hack: Hack logo color (http://hacklang.org/wp-content/themes/hack/hack.png). - Haml: Haml logo color (http://haml.info/images/haml.png). - LLVM: Eye color of the dragon logo of LLVM (http://llvm.org/img/DragonMedium.png). - Less: Less logo color (http://lesscss.org/public/img/logo.png). - Markdown: The Daring Fireball logo color (http://daringfireball.net/graphics/logos/). - Maven POM: The maven logo color (https://en.wikipedia.org/wiki/Apache_Maven#/media/File:Maven_logo.svg). - Nginx: The nginx logo color (http://nginx.org/nginx.png). - NumPy: The NumPy logo color (http://www.numpy.org/_static/numpy_logo.png). - RDoc: I couldn'd find any logo, so have used the color of the name of RDoc in the official site (http://docs.seattlerb.org/rdoc/). - SCSS: The Sass logo color (http://sass-lang.com/assets/img/logos/logo-b6e1ef6e.svg). - Sass: The Sass logo color (http://sass-lang.com/assets/img/logos/logo-b6e1ef6e.svg). - XML: A random color. - XSLT: A random color. - YAML: The color of the name of YAML in the official site (http://yaml.org/). - Yacc: A random color. - reStructuredText: The official logo color (http://docutils.sourceforge.net/rst.png). --- lib/linguist/languages.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4d83e963..ae0584a1 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -153,6 +153,7 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml + color: "#A82C7C" ApacheConf: type: markup @@ -182,6 +183,7 @@ AppleScript: interpreters: - osascript ace_mode: applescript + color: "#F2F1F1" Arc: type: programming @@ -289,6 +291,7 @@ Batchfile: - .cmd tm_scope: source.dosbatch ace_mode: batchfile + color: "#92C2FF" Befunge: type: programming @@ -303,6 +306,7 @@ Bison: extensions: - .bison ace_mode: text + color: "#6A463F" BitBake: type: programming @@ -690,6 +694,7 @@ Cucumber: aliases: - gherkin ace_mode: text + color: "#00A818" Cuda: type: programming @@ -698,6 +703,7 @@ Cuda: - .cuh tm_scope: source.cuda-c++ ace_mode: c_cpp + color: "#76B900" Cycript: type: programming @@ -1204,6 +1210,7 @@ Gradle: - .gradle tm_scope: source.groovy.gradle ace_mode: text + color: "#84BA40" Grammatical Framework: type: programming @@ -1355,6 +1362,7 @@ Hack: - .hh - .php tm_scope: text.html.php + color: "#878787" Haml: group: HTML @@ -1363,6 +1371,7 @@ Haml: - .haml - .haml.deface ace_mode: haml + color: "#ECE2A9" Handlebars: type: markup @@ -1705,6 +1714,7 @@ LLVM: extensions: - .ll ace_mode: text + color: "#689DD7" LOLCODE: type: programming @@ -1768,6 +1778,7 @@ Less: - .less tm_scope: source.css.less ace_mode: less + color: "#2A4D82" Lex: type: programming @@ -1977,6 +1988,7 @@ Markdown: - .mkdown - .ron tm_scope: source.gfm + color: "#DDDDDD" Mask: type: markup @@ -2015,6 +2027,7 @@ Maven POM: filenames: - pom.xml ace_mode: xml + color: "#FF6804" Max: type: programming @@ -2204,6 +2217,7 @@ Nginx: aliases: - nginx configuration file ace_mode: text + color: "#009900" Nimrod: type: programming @@ -2262,6 +2276,7 @@ NumPy: - .numsc tm_scope: none ace_mode: text + color: "#378EC8" OCaml: type: programming @@ -2794,6 +2809,7 @@ RDoc: extensions: - .rdoc tm_scope: text.rdoc + color: "#333333" REALbasic: type: programming @@ -2991,6 +3007,7 @@ SCSS: ace_mode: scss extensions: - .scss + color: "#CF649A" SMT: type: programming @@ -3093,6 +3110,7 @@ Sass: extensions: - .sass ace_mode: sass + color: "#CF649A" Scala: type: programming @@ -3676,6 +3694,7 @@ XML: - Web.Release.config - Web.config - packages.config + color: "#25AAE2" XPages: type: programming @@ -3721,6 +3740,7 @@ XSLT: - .xsl tm_scope: text.xml.xsl ace_mode: xml + color: "#0E76BD" Xojo: type: programming @@ -3753,6 +3773,7 @@ YAML: - .yaml - .yaml-tmlanguage ace_mode: yaml + color: "#FF0000" Yacc: type: programming @@ -3762,6 +3783,7 @@ Yacc: - .yy tm_scope: source.bison ace_mode: text + color: "#92278F" Zephir: type: programming @@ -3844,6 +3866,7 @@ reStructuredText: - .rst - .rest ace_mode: text + color: "#000000" wisp: type: programming From 114a331106d8da31041657345277a160bc8f99c4 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 2 Sep 2015 07:04:51 +1000 Subject: [PATCH 675/875] Add ".topojson" as a JSON extension --- lib/linguist/languages.yml | 1 + samples/JSON/switzerland.topojson | 1 + 2 files changed, 2 insertions(+) create mode 100644 samples/JSON/switzerland.topojson diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 446c81c2..cc8a94ac 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1547,6 +1547,7 @@ JSON: - .json - .geojson - .lock + - .topojson filenames: - .jshintrc - composer.lock diff --git a/samples/JSON/switzerland.topojson b/samples/JSON/switzerland.topojson new file mode 100644 index 00000000..18ded47d --- /dev/null +++ b/samples/JSON/switzerland.topojson @@ -0,0 +1 @@ +{"type":"Topology","transform":{"scale":[0.00045364536453645373,0.00019901990199019923],"translate":[5.956,45.818]},"objects":{"cantons":{"type":"GeometryCollection","geometries":[{"type":"Polygon","arcs":[[0,1,2,3,4,5,6,7,8,9]],"id":"ZH","properties":{"name":"Zürich"}},{"type":"MultiPolygon","arcs":[[[10,11,12,13,14,15,16,17,18,19,20,21,22],[23],[24]],[[25,26]],[[27]],[[28,29]]],"id":"BE","properties":{"name":"Bern/Berne"}},{"type":"Polygon","arcs":[[-12,30,31,32,33,34]],"id":"LU","properties":{"name":"Luzern"}},{"type":"Polygon","arcs":[[35,36,37,38,-16,39,40,41]],"id":"UR","properties":{"name":"Uri"}},{"type":"Polygon","arcs":[[42,-33,43,-1,44,45,46,-42]],"id":"SZ","properties":{"name":"Schwyz"}},{"type":"MultiPolygon","arcs":[[[-13,-35,47]],[[-15,48,-40]]],"id":"OW","properties":{"name":"Obwalden"}},{"type":"Polygon","arcs":[[-34,-43,-41,-49,-14,-48]],"id":"NW","properties":{"name":"Nidwalden"}},{"type":"Polygon","arcs":[[49,-36,-47,50,51]],"id":"GL","properties":{"name":"Glarus"}},{"type":"Polygon","arcs":[[-32,52,-2,-44]],"id":"ZG","properties":{"name":"Zug"}},{"type":"MultiPolygon","arcs":[[[53,54,55,-27,56,-19],[57]],[[58]],[[59,60]],[[61]],[[62]]],"id":"FR","properties":{"name":"Fribourg"}},{"type":"MultiPolygon","arcs":[[[-30,63,64,65,-23]],[[66]],[[67,68,69]],[[70,71]]],"id":"SO","properties":{"name":"Solothurn"}},{"type":"Polygon","arcs":[[72,73]],"id":"BS","properties":{"name":"Basel-Stadt"}},{"type":"MultiPolygon","arcs":[[[74,-70,75,-71,76,-73,77,78,-65]],[[79,80,-68]]],"id":"BL","properties":{"name":"Basel-Landschaft"}},{"type":"MultiPolygon","arcs":[[[-7,81,82,83]],[[84,85]],[[-5,86]]],"id":"SH","properties":{"name":"Schaffhausen"}},{"type":"Polygon","arcs":[[87,88,89,90,91,92]],"id":"AR","properties":{"name":"Appenzell Ausserrhoden"}},{"type":"MultiPolygon","arcs":[[[93,-92]],[[94,-90]],[[-88,95]]],"id":"AI","properties":{"name":"Appenzell Innerrhoden"}},{"type":"MultiPolygon","arcs":[[[-51,-45,-10,96,97,98,-52],[99],[-94,-91,-95,-89,-96,-93]],[[100]]],"id":"SG","properties":{"name":"St. Gallen"}},{"type":"Polygon","arcs":[[101,-37,-50,-99,102]],"id":"GR","properties":{"name":"Graubünden/Grigioni"}},{"type":"Polygon","arcs":[[-53,-31,-11,-66,-79,103,-3]],"id":"AG","properties":{"name":"Aargau"}},{"type":"MultiPolygon","arcs":[[[-9,104,-83,105,-85,106,-97],[-101]],[[107]]],"id":"TG","properties":{"name":"Thurgau"}},{"type":"Polygon","arcs":[[108,-38,-102,109],[110]],"id":"TI","properties":{"name":"Ticino"}},{"type":"MultiPolygon","arcs":[[[111,112,113,114,115,-61,116,-54,-18,117,118],[-62],[119],[120]],[[-26,-56,121,-20,-57]]],"id":"VD","properties":{"name":"Vaud"}},{"type":"Polygon","arcs":[[-118,-17,-39,-109,122]],"id":"VS","properties":{"name":"Valais/Wallis"}},{"type":"Polygon","arcs":[[-122,-55,-117,-60,-116,123,124,-21]],"id":"NE","properties":{"name":"Neuchâtel"}},{"type":"MultiPolygon","arcs":[[[-114,125]],[[126]],[[127]]],"id":"GE","properties":{"name":"Genève"}},{"type":"Polygon","arcs":[[-64,-29,-22,-125,128,-80,-75]],"id":"JU","properties":{"name":"Jura"}}]}},"arcs":[[[6286,7049],[-33,10],[-114,-55],[-60,-45],[-9,-15],[-13,10],[-2,-5],[0,-5],[0,-5],[0,-6],[-2,0],[-5,-5],[-4,0],[-5,0],[-2,0],[-2,0],[0,-5],[-20,-45],[-6,-10],[-3,-5],[-2,-25],[2,-10],[3,-15],[8,-10],[9,-10],[5,-15],[0,-15]],[[6031,6763],[-9,-5],[-9,0],[-13,-10],[-7,-10],[-20,5],[-8,5],[-3,25],[0,25],[-2,0],[-2,0],[-2,0],[-5,-5],[-2,0],[-2,0],[-2,5],[-3,0],[-4,-5],[-9,0],[-2,0],[-2,-5],[-2,0],[-5,0],[-2,5],[0,5],[-2,5],[-7,0],[-2,0],[-4,0],[-3,0],[-4,0],[-2,0],[-2,0],[-5,0],[-2,5],[-2,0],[0,10],[2,5],[0,5],[2,0],[2,5],[3,5],[0,5],[-5,5],[0,5],[-2,10],[-4,10],[-5,5],[0,5],[0,5],[0,5],[0,5],[-4,5],[-2,0],[0,5],[0,5],[0,5],[-3,5],[0,5],[-2,11],[-2,5],[-2,5],[-3,5],[-2,0],[-2,5],[-2,0],[0,5],[-5,5],[-4,0],[-2,0],[-2,-5],[-3,-5],[-2,0],[-2,-5],[-2,0],[-2,0],[-3,5],[-2,5],[0,5],[2,5],[-2,5],[2,5],[0,5],[-4,5],[0,5],[-2,5],[-2,0],[-3,0],[-2,0],[-2,0],[-4,5],[-3,0],[-2,-5],[-2,-5],[-2,0],[-2,0],[-3,0],[-2,10],[0,5],[0,5],[2,10],[0,5],[-2,0],[-2,0],[-2,0],[-5,0],[0,5],[-2,0],[0,-5],[-6,-5],[-3,5],[-26,10],[-7,5],[-9,10],[-2,-5],[-15,-5],[-7,5],[-9,5],[-6,-10],[-9,5],[-2,-20],[-2,0],[-7,5],[-7,0],[-2,0],[-2,5],[-2,0],[-3,-5],[-15,0],[-2,-20],[-5,5],[-4,-10],[-7,5],[3,-5],[-9,-10],[-9,0],[-2,0],[-16,-5],[-13,-15],[-9,5],[-8,5],[-7,-5],[2,10],[-7,5],[0,5],[-6,0],[-2,5],[-14,0],[-8,25],[-9,-5],[-2,10],[-5,0],[-4,0],[0,5],[-2,5],[-3,5],[-4,0],[-7,10],[-8,-5],[-18,5],[-16,-10],[0,5],[0,5],[-2,5],[-2,0],[-2,0],[0,5],[0,5],[-2,10],[0,15],[0,5],[-3,10],[0,5],[0,5],[-2,0],[-2,5],[0,6],[4,0],[0,5],[-2,5],[-2,5],[-2,5],[-2,15],[-3,5],[-2,0]],[[5411,7185],[-2,5],[-4,10],[-11,15],[0,5],[0,5],[0,5],[0,5],[2,0],[0,5],[2,0],[0,5],[-2,5],[0,5],[-2,5],[-3,0],[-2,5],[0,5],[-2,0],[2,5],[0,5],[0,5],[2,5],[3,10],[0,5],[-3,5],[0,5],[-11,10],[-2,5],[-2,5],[0,5],[-2,0],[0,5],[-2,21],[-3,10],[-4,10],[-2,10],[6,5],[11,-15],[16,15],[0,5],[24,5],[9,10],[6,15],[16,15],[-2,0],[6,25],[-2,0],[-2,5],[7,5],[0,20],[8,10],[0,5],[11,5],[0,10],[11,10],[7,16],[2,15],[-2,0],[9,15],[-2,0],[6,25],[-2,5],[-2,-10],[-5,5],[-2,-20],[-13,-5],[-4,-10],[-11,0],[-5,-10],[-4,5],[-9,5],[-29,-15],[-2,10],[-4,5],[0,10],[8,25],[-2,10],[0,5],[-2,0],[-2,5],[-5,5],[-4,5],[-7,10],[0,10],[-6,15],[6,25],[5,15],[-5,5],[3,20],[-7,21],[7,15],[-3,15],[-15,5],[2,15],[-2,5],[-7,5],[0,5],[-2,0],[2,5],[0,5],[0,5],[-2,0],[-4,5],[0,5],[2,10],[0,15],[0,15],[0,5],[2,5],[2,0],[0,10],[-2,0],[-2,-5],[0,5],[-7,10],[-4,-5],[-2,0],[-11,0],[-3,-5],[-6,30],[-5,0],[-8,-5],[-18,0],[-7,10],[-2,6],[9,0],[2,-6],[5,11],[15,10],[2,-5],[2,-5],[3,-5],[6,10],[7,10],[-7,10],[-2,15],[9,15],[-7,10],[5,10],[6,-10],[11,20],[0,10],[-2,10],[-2,5],[-4,10],[0,5],[-7,0],[-2,0],[-5,5],[-6,0],[-5,0],[-4,5],[0,5],[0,5],[4,10],[5,-5],[2,0],[6,0],[3,10],[2,10],[-2,15],[-5,5],[-2,31],[2,0],[0,5],[5,5],[6,0],[-9,35],[-6,0],[-2,15],[-14,0],[-8,30],[-7,5],[0,5],[4,5],[0,5],[-4,5],[4,0],[9,0],[7,5],[-2,20],[-3,30],[-19,0],[-5,26],[2,25],[-4,25],[-7,5],[9,10],[2,10],[-8,0],[-3,5],[3,10],[0,10],[6,10],[-2,10],[4,5],[5,0],[2,0],[2,5],[2,-5],[0,5],[-2,0],[5,0],[4,-5],[2,5],[5,-5],[2,5],[4,0],[7,15],[-2,5],[2,0],[2,46],[7,15],[6,5],[7,-10],[-2,-5],[6,-5],[3,5],[6,10],[-2,15],[2,5],[16,5],[2,10],[-7,25],[7,-10],[4,10],[-2,10],[4,0],[3,10],[6,10],[16,0],[-7,10],[4,10],[-4,10],[-2,10],[9,20],[0,15],[-3,0],[3,15],[17,21]],[[5444,8793],[2,-5],[3,0],[2,0],[2,0],[5,0],[2,0],[6,0],[3,0],[2,0],[2,0],[2,5],[2,0],[5,5],[4,0],[2,5],[3,0],[8,5],[5,5],[2,0],[2,0],[2,0],[3,0],[4,0],[4,0],[3,0],[2,0],[2,0],[2,0],[2,5],[3,0],[2,0],[2,5],[2,0],[2,5],[3,0],[0,5],[4,0],[0,5],[2,0],[3,0],[0,5],[2,0],[2,0],[2,0],[2,0],[3,0],[2,-5],[2,0],[2,0],[2,0],[3,0],[2,5],[2,0],[2,5],[2,5],[5,0],[0,5],[2,0],[4,0],[-2,10],[-11,25],[-4,-5],[-9,0],[-2,0],[0,-5],[-2,-5],[-3,0],[-2,0],[-2,0],[-2,0],[-5,0],[-2,0],[-2,-5],[-2,5],[-3,0],[-2,0],[0,-5],[-2,0],[-2,0],[-2,0],[-5,20],[-4,0],[-7,0],[2,15],[0,10],[-4,15],[-4,5],[-3,15],[3,10],[6,0],[7,0],[6,5],[5,5],[0,6],[4,0],[2,10],[-2,5],[9,0],[2,0],[7,15],[0,5],[2,5],[-2,5],[2,5],[2,0],[3,-5],[4,0],[2,0],[2,5],[3,0],[0,-5],[2,0],[2,5],[2,0],[2,0],[5,0],[2,0],[0,-5],[2,0],[0,5],[2,0],[3,0],[2,0],[2,5],[2,0],[7,5],[2,0],[2,0],[5,0],[4,5],[-2,0],[2,0],[0,20],[-2,10],[9,-5],[4,0],[4,0],[0,10],[-4,0],[0,5],[0,5],[2,-5],[2,5],[0,5],[3,0],[-3,5],[0,10],[3,5],[0,10],[2,0],[9,0],[11,-10],[9,0],[4,0],[4,-5],[5,0],[4,0],[2,0],[0,-15],[0,-10],[9,5],[2,-10],[7,5],[4,-5],[5,0],[4,0],[9,0],[2,-5],[2,-5],[0,-5],[5,-5],[0,-5],[2,-5],[0,-5],[2,-5],[11,0],[3,0],[2,-5],[0,-5],[0,-5],[2,0],[0,-5],[0,-5],[7,0],[-3,-5],[-6,0],[-9,-5],[0,-15],[0,-10],[-5,-11],[-6,-10],[4,-5],[0,-5]],[[5746,8948],[-13,-10],[-2,-5],[0,-10],[-13,-10],[-5,5],[-6,-5],[-16,-20],[-6,-5],[4,-20],[-7,0],[0,-10],[5,0],[0,-10],[9,-5],[-5,0],[-6,-15],[11,-5],[11,5],[2,-5],[0,-15],[-9,-5],[2,-5],[5,-5],[6,-15],[2,-6],[3,-10],[0,-10],[2,-5],[0,-5],[0,-5],[4,-10],[5,-10],[2,-5],[4,0],[2,5],[3,0],[2,5],[2,10],[4,10],[0,5],[3,5],[2,5],[2,5],[2,5],[0,5],[3,6],[0,5],[2,5],[0,5],[0,15],[0,5],[4,10],[0,5],[2,0],[3,5],[4,0],[2,0],[5,0],[2,0],[0,5],[2,5],[-2,0],[0,5],[-2,10],[-5,15],[0,5],[0,10],[2,5],[0,5],[3,5],[4,5],[2,5],[2,5],[5,5],[4,0],[5,5],[4,0],[4,5],[3,0],[2,5],[0,5],[-2,10],[0,10],[2,0],[0,10],[2,11]],[[5819,8984],[0,5],[2,0],[2,0],[3,5],[2,0],[0,5],[2,0],[2,5],[2,5],[3,5],[0,5],[2,0],[0,5],[0,5],[0,5],[0,5],[-2,0],[0,5],[-3,5],[-2,5],[0,5],[-2,0],[0,5],[-2,5],[0,5],[-2,5],[0,5],[-3,5],[-2,10],[0,5],[0,5],[0,5],[0,5],[0,15],[-2,5],[0,5],[0,5],[-2,0],[0,5],[0,5],[0,5],[0,5],[2,0],[0,5],[2,0],[7,5],[2,0],[0,6],[2,0],[0,5],[2,0],[0,5],[0,5],[0,5],[3,5],[2,5],[2,0],[2,5],[0,-5],[2,0],[3,0],[2,-5],[2,0],[2,-5],[2,-5],[0,-5],[3,0],[0,-5],[0,-5],[0,-6],[0,-5],[-3,-5],[-2,0],[0,-5],[-2,0],[-2,0],[-2,0],[-3,0],[-2,0],[-2,0],[-2,0],[-2,0],[0,-5],[-3,0],[0,-5],[0,-5],[3,-5],[2,0],[0,-5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[2,0],[3,5],[2,0],[2,0],[2,0],[3,0],[2,5],[2,0],[2,0],[2,5],[3,5],[2,0],[0,5],[2,5],[0,5],[2,0],[0,5],[2,6],[0,5],[3,5],[0,5],[2,0],[0,5],[0,5],[0,5],[0,5],[-2,0],[-3,5],[-4,10],[-2,0],[-2,5],[-3,5],[-2,5],[-4,0],[-2,5],[-3,0],[-2,5],[-4,5],[-3,-5],[-4,5],[-2,5],[-2,0],[0,5],[-3,0],[0,5],[-2,5],[0,5],[-2,10]],[[5841,9300],[2,0],[2,15],[5,0],[0,5],[2,10],[0,5],[4,5],[3,0],[0,5],[2,0],[4,-5],[0,-5],[3,0],[0,-5],[2,0],[4,0],[7,5],[2,0],[2,5],[2,5],[0,5],[0,5],[0,10],[-2,15],[-2,11],[-2,5],[0,15],[2,0],[0,5],[2,0],[5,0],[4,5],[2,0],[2,0],[5,0],[6,0],[3,0],[4,5],[7,5],[2,0],[2,-5],[2,0],[2,-5],[5,-5],[4,0],[2,-5],[9,-15],[5,-5],[6,-6],[5,0]],[[5967,9385],[2,0],[2,-5],[2,5],[3,-5],[2,0],[2,0],[2,0]],[[5982,9380],[-4,-35],[0,-10],[4,-5],[16,-15],[2,-15],[2,-10],[-2,-5],[0,-10],[4,-20],[2,-15],[9,-10],[5,-15],[4,-15],[11,-5],[13,-5],[7,-11],[13,-15],[5,10],[6,0],[2,-5],[3,0],[2,-5],[6,-5],[5,0],[9,10],[13,-5],[4,0],[9,0],[11,5],[2,-15],[7,-5],[4,10],[20,10],[5,16],[4,0],[7,15],[8,5],[9,0],[5,-5],[2,0],[4,10],[9,5],[9,15],[0,15],[2,15],[4,20],[9,0],[14,0],[8,0],[5,0],[-2,-5],[0,-15],[2,-5],[-2,-25],[2,-15],[11,0],[11,-10],[15,-5],[9,-10],[0,-16],[2,-10],[2,-10],[-6,-15],[-2,-15],[2,0],[-7,-10],[-4,-15],[-5,5],[0,-10],[-4,5],[-2,-5],[-5,-5],[3,-10],[-5,-10],[7,-10],[-7,-10],[5,-10],[-11,-10],[0,-5],[-9,0],[-2,-30],[-5,-26],[2,-5],[0,-5],[-4,5],[-7,0],[-6,0],[-14,5],[0,21],[3,5],[-5,10],[-20,15],[-6,0],[-2,10],[-11,0],[-18,15],[-9,0],[-2,-5],[-13,15],[-5,5],[-2,10],[-4,-5],[0,-45],[-5,0],[-4,-5],[-5,0],[-2,-20],[7,-5],[4,-21],[5,-15],[6,0],[-6,-15],[2,-5],[2,-20],[2,0],[5,5],[6,0],[3,0],[4,0],[9,0],[2,0],[4,0],[9,-5],[2,0],[3,0],[6,-5],[7,-5],[4,0],[0,-5],[2,0],[3,0],[2,0],[4,-5],[5,0],[19,-10],[9,-5],[18,-10],[0,-5],[-9,5],[-2,-10],[11,-5],[-2,-25],[6,-5],[-2,-10],[7,-5],[15,-5],[2,10],[5,-5],[0,5],[4,0],[0,5],[18,-10],[0,10],[2,5],[18,-15],[-3,-10],[3,0],[0,-20],[13,5],[-2,-16],[15,5],[0,-15],[-13,0],[-7,-5],[-6,-15],[-22,5],[2,-10],[-5,0],[5,-15],[2,-5],[-2,0],[2,-10],[2,-5],[0,-5],[5,-25],[4,0],[11,-30],[0,-20],[18,-10],[11,5],[4,-5],[13,0],[14,-5],[6,0],[7,-5],[6,-5],[7,-5],[0,5],[7,5],[6,-5],[5,0],[4,-5],[13,-5],[7,-10],[-4,-16],[-5,-10],[5,-5],[-3,-25],[5,-10],[-2,-30],[-5,-10],[-4,-10],[0,-30],[0,-5],[0,-5],[0,-5],[0,-20],[9,0],[0,-15],[-14,-11],[-13,-5],[0,-25],[-9,-10],[7,-5],[0,-20],[15,-5],[0,-5],[3,-10],[2,-5],[-2,0],[0,-5],[2,0],[6,-5],[0,-10],[0,-5],[0,-5],[5,-5],[4,-20],[9,-5],[11,-25],[-13,-20],[9,-26],[8,-10],[16,-5],[9,-5],[8,0],[3,0],[13,5],[0,-10],[-5,-10],[-8,-5],[-11,10],[-7,0],[-2,-5],[-2,5],[-9,-5],[-2,10],[-3,0],[-6,-15],[0,-5],[2,0],[9,-10],[0,-5],[-2,-5],[0,-5],[-3,-10],[9,-20],[-4,-10],[-2,-10],[2,-10],[-18,-40],[-2,-15],[2,0],[2,-6],[5,0],[4,6],[2,0],[3,-6],[2,0],[2,0],[4,-5],[5,0],[4,0],[5,-5],[4,-5],[2,-5],[2,0],[3,-5],[2,-5],[2,-5],[4,-10],[3,-5],[4,0],[5,-5],[4,-5],[9,-10],[2,-5],[2,-5],[0,-5],[-2,-5],[-4,-10],[-3,-5],[3,-5],[2,-5],[4,-10]],[[6586,7828],[2,-5],[5,0],[2,0],[0,-5],[2,-5],[2,0],[3,-5],[2,-5],[0,-15],[2,-5],[4,-10],[0,-10],[5,-11],[2,-10],[2,-5],[2,-5],[3,-5],[-3,-5],[0,-5],[3,0],[2,0],[2,0],[2,0],[5,0],[2,0],[6,-10],[5,0],[4,-20],[-2,-40],[13,-10],[-4,-30],[0,-25],[18,-41],[-23,-60],[-11,-5],[-6,0],[-7,0],[-15,-5],[-9,-30],[-2,-5],[0,-5],[-7,-15],[0,-10],[-4,0],[-2,-5],[-3,0],[-2,0],[-2,5],[-2,-5],[-2,0],[0,-5],[-5,0],[-2,-5],[-2,5],[-2,-5],[-3,0],[-2,0],[0,-5],[16,-20],[2,-10],[-2,-11],[6,0],[5,11],[4,0],[0,-16],[0,-5],[0,-10],[-2,-5],[-5,-5],[-2,-5],[-2,0],[-2,0],[-2,-5],[6,-15],[-2,-10],[-7,0],[3,-5],[-7,-10],[-4,-15],[-5,-5],[-2,-5],[-9,5],[-2,-5],[-35,-20],[-9,-5],[0,15],[-7,-10],[-13,0],[-4,-5],[-27,-5],[-26,-5],[2,-20],[-9,-5],[0,-10],[-7,-5],[-2,5],[-11,-10],[-2,5],[-2,0],[-2,0],[-3,5],[-2,0],[0,-5],[-2,5],[-2,0],[0,5],[-2,5],[0,5],[0,5],[-3,0],[0,10],[-15,-10],[0,-10],[-16,0],[-4,10],[-7,5],[-6,0],[-2,0],[-3,0],[-4,5],[-37,-15],[-14,-5],[-2,-10],[-6,-10],[0,-5],[-5,0],[-2,-16],[26,-90]],[[4119,7275],[0,-5],[7,-5],[-2,-5],[2,0],[-2,-5],[0,-5],[4,0],[2,-5],[-4,-5],[2,-15],[-2,-5],[2,0],[-2,-5],[-4,-5],[-3,-5],[5,-5],[2,0],[-2,-5],[-2,-5],[0,-5],[0,-5],[0,-5],[2,-5],[2,0],[0,-5],[0,-5],[4,0],[0,-5],[3,-5],[2,-5],[2,0],[2,-11],[5,-5],[6,-15]],[[4150,7114],[-4,-5],[0,-5],[0,-10],[-2,0],[2,-5],[0,-10],[0,-5],[0,-10],[7,-5],[2,-5],[4,-10],[2,-10],[3,0],[2,-5],[2,0],[0,-5],[0,-5],[0,-5],[2,-5],[2,-10],[0,-5],[3,-5],[2,-5],[2,-5],[2,-5],[2,-5],[-2,-5],[2,-5],[3,-5],[2,-5],[2,-5],[7,-5],[-3,-6],[3,-15],[0,-5],[-3,-5],[3,-5],[4,0],[2,0],[0,-10],[5,0],[0,-5],[0,-5],[4,0],[4,-10],[14,-10],[2,-5],[0,-5],[4,-10],[2,-5],[3,-5],[-3,-5],[3,-5],[0,-5],[4,-5],[2,-5],[-2,-5],[-4,-10],[-3,0],[-2,-10],[-2,-5],[-2,-5],[-2,-20],[2,-10],[0,-16],[2,-10],[0,-10],[2,-10],[5,-10],[2,-10],[4,0],[9,-15],[7,-15],[0,-10],[0,-20],[-5,-5],[5,-10],[-9,0],[0,-15],[0,-5],[-7,0],[-22,-15],[2,-10],[-6,-5],[-5,-5],[-2,-5],[0,-10],[0,-6],[7,0],[-5,-25],[14,-10],[-5,-25],[0,-10],[5,5],[2,-10],[-5,-20],[11,-10],[3,-10],[-5,-5],[5,-10],[2,-5],[2,-5],[-2,-15],[-5,-20],[5,0],[-5,-10],[-4,0],[4,-5],[-2,-26],[-4,-5],[2,-10],[-9,-25],[-4,-10],[0,-5],[2,0],[2,0],[2,-5],[-2,-5],[-2,-5],[-7,-10],[-2,-10],[-4,-15],[4,-5],[-2,-10],[2,-5],[0,-5],[2,-5],[-2,0],[7,-5],[2,-5],[7,-20],[4,0],[7,-5],[4,5],[5,-20],[-3,-11],[5,-10],[15,-15],[5,-10],[-3,-15],[5,-15],[11,-20],[0,-5],[-5,-15],[-2,-5],[5,-20],[6,-15],[7,5],[6,0],[5,5],[9,5],[4,0],[9,10],[6,0],[5,-5],[7,-20],[4,-5],[7,-5],[15,5],[2,0],[9,0],[7,5],[8,0],[9,-15],[-4,-5],[-5,-25],[-8,-16],[4,-35],[4,-30],[-17,-20],[2,-35],[2,-5],[-13,-20],[-9,-5],[-9,-10],[0,-56],[-6,-15],[-7,0],[-9,-5],[-2,-25],[-13,-35],[-7,-10],[-9,0],[-22,10],[-6,-5],[-5,-5],[-4,-5],[-2,0],[-5,-5],[-4,-5],[-11,-5],[0,-5],[-7,0],[-4,-5],[-2,-5],[-3,0],[-2,-5],[0,-5],[-2,0],[-2,-10],[-2,-10],[0,-5],[0,-5],[-3,0],[-2,-5],[0,-5],[-2,0],[0,-5],[0,-6],[2,0],[11,-5],[2,-5],[0,-5],[3,0],[2,0],[4,0],[2,0],[3,0],[4,-15],[2,0],[0,-5],[0,-15],[-6,-15],[0,-5],[4,0],[-9,-5],[-6,-15],[-5,-20],[0,-10],[-6,-5],[-5,-10],[-20,-10],[-6,-20],[4,-30],[0,-11],[-2,-10],[15,-10],[3,-15],[11,-10],[-7,-25],[2,-20],[-2,-20],[7,-20],[0,-15],[15,-35],[42,-31],[57,-55],[55,-75],[9,-25],[2,-10],[5,-10],[0,-5],[-2,-5],[2,-11],[4,-5],[2,-5],[3,0],[4,-5],[2,0],[2,-5],[3,-5],[2,0],[2,0],[2,-5],[2,0],[3,-5],[2,0],[0,-5],[0,-5],[2,-5],[2,-5],[7,-15],[13,-5],[9,-10],[20,20],[11,15],[15,10],[36,25],[22,5],[17,-10],[18,-5],[4,5]],[[4613,4873],[5,0],[8,0],[5,0],[6,-10],[20,15],[14,-10],[8,0],[7,0],[18,5],[2,-20],[13,-25],[7,-5],[4,-20],[7,-5],[20,0],[11,-10],[6,-5],[53,-75],[29,20],[20,35],[8,-10],[40,30],[13,-10],[27,5],[9,-15],[15,-15],[7,-10],[26,5],[11,40],[44,-30],[11,-20],[11,-30],[16,5],[15,-10],[18,25],[11,5],[4,15],[9,0],[31,40],[13,20],[24,35],[60,10],[9,5],[0,10],[11,10]],[[5319,4873],[4,0],[13,-10],[7,-15],[15,-25],[11,0],[7,-30]],[[5376,4793],[2,-35],[11,10],[16,15],[13,20],[9,0],[6,-5],[5,-10],[8,0],[0,5],[12,0],[11,0],[13,-10],[9,0],[0,-5],[-3,-10],[5,-10],[2,0]],[[5495,4758],[-7,-40],[-4,-15],[-7,5],[-4,-10],[7,-16],[2,-15],[-5,-20],[0,-30],[20,-35],[-6,-15],[2,-45],[-2,-15],[4,-15],[11,-6],[0,-15],[-4,-20],[6,-25],[0,-5],[-4,-20],[-2,-25],[-14,-10],[-11,-5],[-17,5],[-11,-5],[-18,5],[-4,0],[-7,0],[0,10],[-7,10],[-8,-5],[-18,15],[-2,-15],[2,-10],[-7,-20],[5,-20],[-2,-25],[0,-5],[6,-5],[2,-21],[14,-10],[4,-70]],[[5409,4195],[-24,5],[-9,-40],[-9,-10],[-24,-50],[-13,-5],[-3,0],[-8,-21],[-3,-20],[0,-25],[7,-5],[0,-25],[-7,-25],[-6,-25],[-7,-15],[-2,-15],[7,-30],[-7,-31],[9,-15],[-9,-25],[-20,-30],[-4,-15],[-16,-25],[-13,-15],[-44,-10],[-9,-25],[0,-10],[-22,-31],[-20,-5],[-15,-10],[-9,-25],[-9,-5],[-11,-5],[-11,-5],[-11,-10],[-13,-20],[-13,0],[-25,-10],[-8,0],[-14,0],[-11,0],[-15,-5],[-18,-5],[-13,-5],[-11,0],[-18,-5],[-15,-10],[-9,0],[-4,10],[-9,5],[-4,15],[4,15],[-2,5],[-11,0],[-13,5],[-9,-5],[-9,0],[-11,5],[-35,20],[-18,5],[-9,20],[-9,10],[-8,20],[-20,5],[-9,0],[-11,5],[-5,11],[-19,5],[-14,10],[-6,10],[-11,-10],[-18,-5],[-4,-10],[-16,25],[-24,5],[-18,15],[-2,10],[-9,0],[-11,0],[-20,5],[-33,-25],[-8,0],[-9,-10],[0,-10],[-16,-31],[-11,0],[-2,0],[-4,-5],[-5,0],[-13,-10],[-4,-20],[-11,-10],[0,-10],[4,-10],[4,-15],[-2,-5],[7,-10],[0,-10],[9,-15],[-7,-15],[2,-20],[-6,-20],[-7,0],[-24,-26],[-7,6],[-20,-6],[-15,-25],[-4,-25],[-11,-5],[-9,-10],[2,-10],[-5,-5],[-17,-5],[-9,-20],[-11,0],[-2,-5],[-9,-5],[-7,-10],[-6,-5],[-9,5],[-9,-10],[-22,-10],[-18,-5],[-13,0],[-28,0],[-7,5],[-9,-5],[-35,-40],[-7,-16],[-26,-20],[-7,-5],[-6,-5],[-18,-15],[-11,-20],[-11,-10],[-7,-15],[-11,-10],[-4,-20],[-13,-5],[-9,-10],[-5,0],[-11,-20],[-11,-5],[-2,-10],[-24,-25],[-5,-11],[-13,-10],[-9,-10],[-17,-5],[-9,-5],[-9,-25],[-9,-5],[-6,0],[-9,10],[-4,10],[-11,10],[-12,25],[-6,0],[-27,21],[-33,20],[-50,35],[-31,25],[-5,-10],[-2,-15],[-4,-10],[-9,0],[-15,-5],[-3,-10],[0,-15],[3,-15],[-9,-26],[-7,-5],[-7,0],[-4,-10],[4,-20],[0,-10],[-6,-5],[-7,-15],[-17,15],[-7,15],[-13,0],[-11,-10],[-13,-5],[-7,-5],[-2,-5],[-5,10],[-11,0],[-13,-10],[-20,0],[-13,-10],[-2,-15],[-9,-35],[26,-25],[14,-5],[17,-25],[-31,-26],[-6,-35],[-27,-15],[-42,10],[-11,-30],[-6,0],[-11,10],[-9,-10],[-7,5],[-4,5],[2,15],[-4,35],[-11,15],[-11,-5],[-2,-15],[-7,-15],[-13,0],[-5,-10],[-6,15],[0,5],[-5,10],[-31,5],[-11,15],[-8,-5],[-14,-20],[-24,-5],[-4,-5],[-25,-15],[-4,-10],[-4,15],[-16,-20],[-11,-20],[-4,0],[-9,-20],[-2,-5],[-7,5],[-9,-20],[-13,-15],[-11,-5],[-9,-20],[-11,-15],[-13,5],[-24,-20],[-29,-16],[-20,0],[-9,21],[-6,20],[0,10],[4,10],[-4,10],[2,5],[2,5],[5,15],[2,35],[-7,25],[-24,-40],[-9,-5],[-9,5],[-15,-10],[-49,-35],[0,-15],[0,-35],[-4,-21],[4,-30],[-4,-5],[-9,-20],[-6,-10],[-7,-5],[-7,-5],[-6,-5],[-22,-5],[-29,10]],[[2788,2567],[4,101],[-8,40],[2,0],[2,5],[4,5],[3,0],[2,0],[2,0],[2,0],[0,5],[2,5],[5,5],[-5,0],[-4,15],[-15,-15],[-7,0],[-13,40],[0,5],[-2,5],[-5,10],[0,5],[0,10],[0,5],[2,0],[0,5],[-4,0],[-9,0],[-17,0],[2,25],[6,26],[3,10],[4,10],[4,20],[5,15],[6,15],[-2,25],[7,40],[-7,25],[-9,10],[-6,10],[-2,21],[-14,25],[5,35],[15,0],[7,-10],[17,5],[22,10],[5,10],[2,10],[0,20],[0,10],[13,10],[-11,15],[7,15],[-2,5],[4,25],[-9,31],[0,10],[-4,15],[-2,50],[6,-5],[2,0],[5,5],[13,5],[0,25],[-7,10],[3,0],[2,0],[2,0],[2,5],[2,0],[3,0],[2,0],[2,5],[0,5],[2,5],[3,5],[2,0],[0,5],[0,5],[0,5],[0,5],[0,5],[2,0],[2,5],[2,5],[-2,0],[0,5],[0,6],[2,0],[0,5],[3,5],[0,5],[-3,5],[0,5],[0,5],[3,5],[2,10],[0,20],[-2,0],[0,5],[0,5],[0,10],[0,5],[-3,5],[0,5],[0,5],[0,5],[-2,0],[0,5],[-2,0],[0,5],[0,5],[2,10],[0,5],[0,5],[-2,5],[-2,5],[-2,5],[-3,5],[-6,15],[-5,5],[0,41]],[[2823,3698],[7,0],[13,10],[11,15],[9,5],[11,15],[18,55],[11,20],[8,15],[3,5],[6,5],[2,10],[9,-15],[9,-5],[5,0],[4,-5],[2,0],[2,0],[0,-5],[3,0],[4,0],[20,10],[11,40],[17,16],[-13,40],[7,80],[0,15],[-13,15],[2,76],[20,0],[8,10],[9,15],[-4,20],[-16,45],[3,0],[50,0],[11,-20],[-2,-10],[7,-10],[6,0],[3,-10],[-3,-15],[3,-15],[2,0],[4,25],[9,15],[7,10],[22,35],[-18,-5],[4,15],[3,20],[0,10],[2,15],[0,10],[9,31],[0,5],[-7,20],[11,20],[-4,20],[9,10],[-7,15],[-18,0],[-9,10],[-4,20],[-7,-5],[-33,5],[0,5],[0,5],[3,5],[2,5],[2,0],[0,10],[2,0],[0,5],[0,5],[2,5],[0,5],[-2,10],[0,6],[-2,5],[-4,0],[-3,0],[-2,0],[-4,5],[-7,0],[-2,0],[-4,0],[-7,5],[-2,0],[-2,0],[-3,5],[-4,0],[-2,5],[-3,0],[-2,0],[-4,0],[-2,0],[-5,0],[-2,0],[-2,0],[-9,0],[-7,5],[-2,0],[-2,0],[0,-5],[-2,0],[-5,5],[-2,0],[0,5],[-2,0],[0,5],[-4,5],[-3,5],[-2,0],[-4,5],[0,5],[0,5],[-2,10],[-3,10],[0,5],[0,5],[0,10],[0,20],[16,50],[2,15],[-2,5],[0,11],[0,5],[0,25],[0,5],[-5,5],[0,15],[-2,0],[-2,0],[-2,0],[2,5],[-2,5],[-7,0],[0,5],[-2,0],[0,5],[-2,5],[0,5],[0,5],[-2,5],[-3,0],[-2,0],[0,5],[5,5],[4,5],[2,5],[2,0],[0,5],[3,5],[2,0],[2,5],[4,5],[-2,0],[0,5],[2,5],[3,0],[2,5],[2,0],[0,5],[0,5],[-2,0],[-2,0],[0,5],[0,5],[0,5],[2,5],[0,5],[-2,5],[0,5],[0,6],[0,5],[2,5],[4,5],[2,0],[0,5],[0,5],[3,0],[0,5],[0,5],[2,5],[0,5],[2,5],[0,5],[0,5],[0,5],[2,5],[2,0],[0,10],[0,5],[3,0],[2,0],[2,5],[4,5],[0,5],[3,0],[2,5],[2,0],[2,5],[2,0],[0,5],[-4,5],[0,5],[4,5],[0,5],[0,10],[0,5],[-2,5],[0,5],[0,5],[2,0],[0,5],[5,5],[11,5],[2,0],[0,5],[5,10],[0,11],[-3,0],[0,5],[-15,30],[-33,30],[-5,15],[-8,10],[22,20],[0,15],[4,0],[-2,10],[2,0],[4,10],[5,-5],[-2,-5],[6,0],[9,0],[16,-15],[-7,-10],[-5,5],[-6,-10],[6,-15],[12,-5],[6,5],[2,-10],[5,5],[0,-5],[2,0],[0,5],[2,0],[2,0],[3,0],[2,5],[2,0],[2,0],[2,5],[3,0],[2,5],[2,0],[4,0],[3,0],[2,0],[0,5],[0,5],[2,5],[2,0],[0,5],[0,5],[2,5],[3,0],[4,5],[2,5],[0,5],[0,5],[-2,10],[0,5],[0,10],[0,5],[-2,0],[-2,5],[-3,0],[-2,5],[-2,5],[0,6],[-2,10],[0,5],[2,5],[0,10],[0,5],[0,5],[0,15],[2,5],[-2,5],[-2,5],[-7,5],[-17,10],[-7,0],[-7,5],[-2,0],[-2,0],[-2,5],[-5,0],[-4,5],[-2,0],[-3,0],[-2,0],[-4,0],[-2,0],[-3,0],[-4,-5],[-9,0],[-2,0],[-11,0],[-4,0],[-3,0],[-11,0],[-4,0],[-2,5],[-5,0],[-2,0],[-11,0],[-2,0],[-2,-5],[-2,0],[-3,0],[-4,-10],[-2,-5],[-5,0],[-2,0],[-4,0],[-3,5],[-4,0],[-2,5],[-5,5],[-2,0],[-2,0],[-2,0],[-2,0],[-3,5],[-2,0],[-6,10],[-3,5],[-2,0],[-2,5],[-4,0],[-3,0],[-2,0],[-4,5],[-2,0],[-3,0],[-2,0],[-4,0],[-2,0],[-5,5],[-2,0],[-2,0],[-2,-10],[-14,0],[-4,5],[-5,0],[-6,25],[-11,-5],[-5,0],[-4,-10],[-9,-15],[-11,20],[-9,5],[-17,-5],[-11,-15],[-16,5],[9,10],[2,5],[14,5],[19,25],[-4,20],[0,11],[2,5],[0,5],[0,10],[-2,5],[0,5],[-2,5],[2,0],[0,15],[11,0],[0,10],[4,5],[-2,15],[-4,0],[-2,10],[-14,20],[3,5],[-3,10],[16,15],[0,10],[0,5],[0,15],[-5,0],[0,10],[3,10],[0,5],[2,5],[2,6],[0,5],[-4,5],[-5,15],[-15,-5],[-7,5],[-4,5],[0,10],[4,0],[5,0],[17,0],[2,20],[14,-5],[2,20],[4,0],[0,10],[13,10],[-4,5],[13,15],[7,10],[4,10],[5,5],[4,5],[-2,10],[-13,15],[0,5],[-9,10],[-5,0],[3,5],[6,16],[-2,10],[-7,-5],[-2,20],[-11,25],[-4,-10],[-5,10],[-6,-15],[-11,10],[-11,-20],[-9,0],[2,-10],[-22,-15],[-18,-16],[-17,-15],[-22,-15],[-16,-10],[-15,-5],[-20,-10],[-97,-35],[-4,5],[-5,0],[-70,0],[-14,0]],[[2415,5823],[-26,15]],[[2389,5838],[-33,131],[2,0],[2,10],[5,10],[2,0],[4,15],[0,5],[5,15],[0,5],[0,10],[-2,20],[0,25],[0,10],[2,5],[6,15],[5,11],[26,30],[7,0],[2,5],[18,0],[6,5],[7,10],[2,5],[2,0],[3,5],[2,0],[2,5],[2,0],[5,5],[22,30],[4,10],[-4,10],[0,5],[-5,5],[-2,5],[-4,5],[0,5],[0,5],[-3,0],[-2,0],[0,10],[2,5],[0,10],[0,5],[-2,5],[-2,0],[-2,5],[-2,5],[22,31],[0,20],[-7,10],[-18,40],[-28,20],[-13,0],[-18,25],[-18,20],[-26,-25],[-13,40],[19,41],[18,20],[-4,15],[-18,0],[-9,-15],[-33,-5],[-7,5],[-24,-25],[-28,-11],[-27,-10],[-44,-10],[-9,-5],[-17,-15],[-3,5],[-6,-5],[-13,20],[-7,-20],[-20,-20],[-35,-35],[-35,-30],[-42,-35],[8,85],[23,30],[11,81],[6,35],[-62,176]],[[1994,6773],[5,10],[20,30],[11,-65],[4,-10],[2,-11],[-2,-5],[2,-10],[5,-5],[4,-15],[20,20],[29,15],[6,11],[16,20],[37,40],[11,20],[5,25],[2,25],[9,0],[15,10],[9,-15],[-7,-5],[7,-10],[11,5],[20,-5],[15,-30],[7,-5],[9,10],[6,10],[7,30],[11,15],[0,10],[2,20],[44,10],[16,5],[6,10],[9,21],[9,30],[2,10],[4,15],[16,45],[0,5],[6,20],[11,5],[16,15],[-7,30],[3,21],[2,5],[13,10],[9,0],[24,20],[2,-25],[11,10],[5,-5],[4,-10],[-7,-10],[5,-16],[17,0],[5,16],[9,15],[4,0],[5,0],[6,-5],[5,0],[4,0],[13,10],[22,5],[24,-10],[3,10],[11,0],[11,5],[4,5],[7,5],[-7,15],[-9,15],[7,5],[0,5],[-9,0],[-11,0],[0,20],[7,0],[2,5],[4,5],[0,5],[-4,0],[-2,10],[6,20],[5,5],[22,10],[17,15],[-2,31],[0,10],[5,0],[-3,15],[-8,0],[0,10],[8,15],[-13,10],[2,5],[11,5],[11,-5],[45,10],[26,0],[7,-5],[-7,-15],[9,-15],[6,5],[5,0],[20,-10],[17,0],[25,-15],[33,5],[0,5],[8,0],[7,0],[7,-5],[13,-10],[13,0],[13,5],[0,5],[14,0],[22,10],[11,0],[22,10],[13,30],[20,20],[11,25],[24,0],[4,0],[11,5],[22,15],[22,25],[7,5],[5,-5],[22,-5],[4,0],[31,0],[13,0],[2,-15],[16,-5],[2,-10],[11,5],[9,-5],[22,5],[4,5],[40,-10],[31,0],[4,0],[5,-10],[17,-15],[9,0],[15,5],[7,0],[2,5],[20,15],[27,35],[17,10],[42,20],[20,11]],[[3531,7557],[-22,-31],[0,-10],[-2,-40],[-18,-20],[2,-15],[-4,-10],[-13,-15],[-25,0],[-13,-5],[-44,-25],[0,-5],[-18,-15],[-4,0],[-15,-31],[-14,-40],[-9,-25],[-4,0],[-4,0],[-14,-5],[-13,-5],[-13,0],[-13,0],[-11,-15],[-18,-20],[-18,-5],[-6,-15],[2,-15],[2,-20],[7,-10],[-13,-15],[-7,5],[-7,-5],[-15,-26],[-9,-5],[-35,-25],[-11,-10],[-31,-35],[-4,0],[-5,0],[-2,0],[-2,5],[-5,0],[-33,-15],[11,-55],[5,0],[15,-76],[27,10],[4,-15],[15,-10],[7,-10],[7,-15],[24,-90],[-4,0],[-11,0],[-7,-5],[0,-5],[2,-15],[0,-5],[5,0],[4,0],[2,0],[2,0],[0,5],[3,0],[4,0],[2,-5],[2,5],[3,0],[8,10],[3,0],[2,0],[4,0],[5,0],[11,-5],[2,0],[4,5],[5,5],[2,5],[0,10],[2,10],[2,10],[2,0],[3,5],[2,0],[2,0],[5,5],[4,0],[4,5],[5,5],[4,5],[0,5],[0,5],[-2,15],[0,10],[2,5],[5,5],[4,0],[2,0],[2,0],[5,-15],[4,-5],[2,0],[7,0],[4,10],[5,5],[0,5],[-2,5],[-3,15],[3,0],[0,5],[2,0],[2,-5],[2,0],[5,0],[6,0],[5,0],[11,5],[13,5],[11,0],[4,-15],[-8,-10],[4,-15],[-9,-10],[7,-10],[2,0],[4,-10],[5,0],[4,-25],[11,10],[18,-15],[4,5],[2,-10],[-15,-20],[7,-15],[-11,-10],[-7,-5],[-7,-11],[-4,-15],[-2,-5],[-5,0],[-4,0],[-7,-10],[-9,-5],[-11,15],[-6,-5],[-2,10],[-9,5],[-11,0],[-22,-30],[2,-20],[-2,-10],[-7,0],[-6,0],[-7,-5],[-9,-10],[-2,-10],[-9,-15],[9,-25],[9,5],[2,-15],[9,10],[2,-10],[-2,-10],[-5,5],[0,-10],[16,-5],[0,-5],[-7,-5],[-4,5],[-11,0],[-2,0],[-3,0],[-13,-10],[-11,0],[-15,-10],[-9,-10],[-5,0],[-19,20],[-11,-10],[-3,10],[0,5],[-4,15],[-9,-15],[-4,0],[-5,5],[-9,-5],[-2,-5],[-6,5],[-3,-10],[5,-21],[-7,-5],[11,-20],[5,-20],[6,-10],[0,-5],[7,-30],[0,-15],[9,0],[6,-5],[3,-10],[13,0],[11,5],[9,5],[8,5],[7,5],[4,5],[14,10],[6,-10],[5,0],[17,10],[9,-30],[-4,0],[2,-10],[-4,-5],[0,-10],[-3,0],[5,-40],[4,-15],[7,-11],[2,-10],[4,0],[25,10],[0,-5],[4,0],[2,11],[2,0],[0,5],[3,0],[2,0],[4,5],[2,0],[5,0],[2,0],[4,0],[0,5],[5,10],[0,5],[2,5],[5,5],[2,5],[2,5],[0,5],[-2,5],[-2,0],[-5,10],[-9,25],[-11,35],[2,5],[-4,20],[31,20],[11,5],[26,20],[3,6],[11,15],[2,5],[2,0],[7,5],[2,0],[4,5],[5,5],[2,0],[2,5],[2,5],[2,5],[3,10],[2,5],[0,10],[0,5],[2,5],[2,5],[0,5],[3,5],[0,5],[2,0],[0,5],[4,5],[7,5],[0,5],[0,5],[0,5],[2,5],[0,5],[2,0],[2,5],[5,5],[2,0],[0,10],[-7,15],[-2,0],[-2,0],[-4,26],[-5,0],[0,5],[7,5],[9,0],[0,5],[11,5],[4,5],[2,-10],[9,5],[4,5],[9,-20],[9,10],[7,15],[15,15],[13,0],[-2,-10],[2,0],[0,-10],[3,0],[6,-5],[13,5],[11,-20],[3,0],[2,-5],[-2,-6],[2,0],[-2,-10],[4,0],[4,-35],[3,-5],[4,15],[2,0],[9,10],[11,-5],[15,5],[23,10],[2,5],[6,-10],[7,-5],[15,0],[5,5],[2,-5],[7,0],[2,-5],[2,5],[7,5],[2,-10],[9,-15],[2,5],[2,0],[7,0],[2,0],[0,5],[2,0],[2,5],[-2,20],[-2,0],[0,5],[4,21],[-2,5],[2,0],[16,30],[2,0],[9,5],[2,-5],[15,0],[0,20],[0,10],[7,10],[4,35],[-4,0],[0,5],[-7,0],[-2,0],[-2,5],[4,15],[3,5],[2,10],[-9,10],[2,10],[-6,-5],[0,10],[-7,0],[0,10],[-4,0],[-3,6],[-2,10],[-33,5],[9,25],[-5,15],[-2,5],[-4,20],[2,15],[2,5],[-17,15],[-3,10],[11,10],[-8,20],[-11,-15],[-3,10],[-6,-10],[-5,5],[-6,-10],[-7,20],[-4,-5],[-5,0],[-6,25],[-2,0],[-9,20],[-5,0],[0,11],[-6,-6],[-3,11],[-2,10],[-4,-5],[-7,15],[-4,0],[-2,5],[2,25],[2,15],[-9,50],[0,10],[-9,10],[-2,5],[-11,15],[-9,20],[60,20],[13,6],[31,5],[48,0],[7,5],[9,10],[9,10],[15,5],[5,5],[4,-5],[13,5],[18,25],[9,-20],[22,-20],[4,5],[11,-36],[2,6],[5,-11],[-2,-5],[6,-5],[-4,-5],[6,-10],[7,15],[22,-35],[0,-20],[18,-35],[11,5],[13,-15],[13,10],[16,-5],[11,25],[6,20],[20,0],[4,-30],[20,-25],[2,5],[12,15],[4,5],[11,25],[4,5],[3,5],[2,0],[2,0],[2,0],[2,0],[0,-5],[0,-5],[0,-5],[3,-5],[6,-5],[5,-5],[2,0],[2,0],[2,0],[5,0],[2,0],[2,0],[7,10],[4,5],[2,0],[0,5],[2,0]],[[3800,6758],[-5,-5],[0,-10],[-8,-26],[4,-5],[13,5],[18,-10],[9,31],[4,-6],[5,11],[4,5],[0,5],[-11,0],[-7,10],[-2,5],[-7,0],[3,10],[-9,-5],[0,-5],[-5,-5],[-4,-10],[-2,5]],[[2779,5577],[5,-20],[11,15],[2,-5],[9,10],[4,10],[9,-5],[0,20],[0,25],[-11,10],[-5,-5],[3,-10],[-27,-20],[5,-5],[-3,-5],[-2,5],[-2,-5],[2,-15]],[[2484,5416],[9,5],[0,10],[4,5],[-4,10],[8,5]],[[2501,5451],[5,-5],[4,5],[5,-15],[13,5],[2,-5],[-20,-20],[-9,-20],[-15,5],[-2,5],[0,10]],[[2601,5522],[0,-26],[6,-20],[-2,0],[-7,0],[-2,-5],[-13,-10],[-4,-10],[-5,-5],[-2,-10],[-7,5],[-2,5],[-2,15],[2,5],[-13,25],[2,10],[2,16],[22,15],[5,0],[-2,-5],[2,-5],[6,10],[11,0],[3,-10]],[[3531,7557],[-9,5],[-13,-5],[-35,-5],[-9,10],[13,50],[0,5],[35,35],[0,10],[5,10]],[[3518,7672],[11,-5],[0,-10],[6,0],[5,-5],[24,-60],[-4,-15],[-5,-10],[-15,-15],[-9,5]],[[4150,7114],[3,10],[4,0],[2,-10],[24,-10],[31,25],[58,26],[2,5],[33,5],[15,-20],[11,-11],[25,-10],[15,26],[13,10],[13,30],[5,5],[6,10],[9,10],[-4,10],[0,5],[0,5],[-2,0],[0,5],[-3,5],[-2,0],[-2,0],[0,5],[0,5],[0,5],[-2,5],[-2,5],[-3,5],[0,10],[-4,5],[0,5],[0,5],[-2,10],[4,0],[0,10],[11,10],[33,-5],[2,0],[3,-10],[4,5],[27,5],[17,31],[7,-11],[13,-25],[0,-10],[2,-10],[0,-10],[7,-10],[4,-10],[9,-15],[4,-10],[0,-5],[0,-5],[3,-5],[0,-5],[-3,-5],[0,-10],[0,-5],[0,-10],[0,-10],[-2,-15],[0,-5],[11,0],[5,-10],[9,0],[6,-5],[2,5],[44,15],[3,-5],[26,15],[-11,20],[-2,5],[0,10],[-2,10],[6,0],[0,5],[9,0],[7,-10],[2,0],[4,0],[9,0],[2,10],[7,5],[4,5],[-2,5],[9,5],[13,10],[24,-15],[16,-40],[0,-15],[6,-20],[25,-5],[11,-15],[11,10],[4,15],[9,5],[15,0],[16,5],[13,5],[5,0],[0,5],[4,-5],[33,20],[0,-5],[7,0],[4,-5],[2,-20],[-2,-5],[-4,-5],[-7,-25],[-9,0],[-2,10],[-4,-5],[-27,-11],[0,-5],[7,0],[6,-10],[0,-5],[-4,-5],[0,-5],[13,-20],[2,0],[5,-5],[6,0],[0,-5],[5,5],[-2,-15],[2,0],[4,-15],[22,5],[18,10],[-2,5],[4,0],[20,0],[2,0],[-2,20],[-2,0],[0,30],[4,0],[2,10],[-4,26],[9,25],[22,20],[2,0],[2,5],[18,100],[11,5],[4,-5],[16,-5],[-3,20],[5,0],[-2,15],[6,5],[0,6],[9,0],[0,15],[5,5],[0,5],[17,5],[7,-20],[20,0],[4,-10],[13,5],[0,-5],[18,-11],[15,-30],[9,-5],[5,-5],[0,-5],[-3,-5],[-2,0],[-2,0],[-2,-10],[-2,0],[0,-5],[0,-5],[0,-5],[2,-10],[0,-5],[0,-10],[2,0],[0,-5],[2,-5],[0,-5],[2,-5],[5,-15],[4,0],[2,0],[5,-5],[11,-30],[9,-25],[-3,-21],[3,-25],[8,-40],[5,-10],[-5,-25],[16,-5],[0,-5],[2,-15],[2,-25],[5,-10],[0,-10],[2,-26],[4,-15],[11,-25],[3,-20],[-3,-5],[0,-25],[7,-20],[0,-5],[7,-5],[4,-15],[0,-10],[7,-10],[-3,-5],[7,-10],[15,-31],[0,-20],[7,-5],[2,-30],[29,-15],[2,-20],[13,5],[2,0],[16,0],[7,-10],[6,5],[5,-5],[8,5],[7,-5],[7,5],[8,10]],[[5413,6647],[7,-25],[2,-15],[0,-10],[2,0],[-4,-20],[-2,-5],[2,-10],[7,-10],[0,5],[2,0],[2,0],[7,5],[2,-5],[2,5],[9,0],[2,-5],[9,10],[9,10],[9,10],[8,0],[5,5],[9,-81],[8,0],[7,5],[7,5],[4,0],[2,5],[2,0],[3,6],[0,5],[31,35],[28,-61],[-2,-70]],[[5592,6441],[-33,30],[-4,10],[0,5],[-3,10],[-2,5],[-7,0],[0,5],[-15,-10],[-9,5],[0,5],[-22,5],[-2,-15],[-4,0],[-3,0],[-4,5],[-4,-5],[-5,-5],[-2,0],[-2,0],[-2,-5],[0,-5],[0,-5],[0,-5],[-5,5],[-2,-5],[-4,0],[-9,-5],[-5,-5],[-4,0],[-2,-5],[-3,0],[-2,-5],[-17,-35],[-7,-5],[-2,-10],[2,-5],[0,-10],[4,-15],[-4,-15],[-9,-15],[-22,-36],[-15,-10],[0,-15],[4,-35],[20,-5],[7,5],[59,20],[2,0],[9,-5],[13,-5],[11,-15],[-4,-5],[4,-5],[14,-10],[22,-30],[4,-10],[15,-5],[9,-20],[5,-10],[13,-15],[13,-21],[7,-20],[11,-5],[9,-25],[13,5],[15,-15],[-2,-50],[-9,-40],[-9,0],[-8,-15],[-14,0],[-26,-20],[-20,-5],[-13,5]],[[5537,5924],[2,60],[-90,40],[-5,-70],[2,-20],[-2,-5],[-26,0],[-9,5],[-24,10],[-7,0],[-24,-15],[-5,15],[5,10],[-2,75],[-33,5],[-75,-151],[-36,56],[-11,-5],[-6,-5],[-13,0],[-7,5],[-4,-5],[-3,0],[-2,0],[-2,0],[-2,0],[-2,0],[-3,-10],[-6,0],[-5,-6],[-15,0],[-9,16],[-29,0],[-11,-10],[-11,-11],[-15,-35],[-9,-5],[-13,30],[-7,-5],[-13,5],[-2,-5],[-2,-5],[-5,-10],[-2,-10],[-2,0],[-2,-5],[-3,-10],[-4,-10],[-2,0],[11,-25],[13,-15]],[[5010,5803],[0,-15],[-7,-5],[-19,0],[-31,-10],[-36,25],[-11,-15],[-11,0],[-24,-15],[-9,-10],[-6,-15],[-9,-5],[0,-5],[-11,-5],[2,-26],[31,-70],[-18,-30],[-6,0],[-25,-30],[-11,-20],[-6,-5],[-20,-41],[-7,-25],[-13,-40],[-13,-40],[-7,10],[-4,15],[6,50],[-2,0],[-15,5],[-13,15],[-5,-10],[-9,-5],[-6,-15],[0,-10],[-7,-20],[-11,-15],[-11,0],[-6,-5],[0,-25],[-7,-15],[4,-30],[5,0],[0,-20],[2,-20],[-7,-16],[0,-10],[-6,-10],[2,-10],[0,-10],[-2,-15],[-9,-10],[-5,5],[-6,-5],[2,0],[0,-5],[-2,-5],[2,-5],[0,-5],[2,-5],[-6,-15],[-14,-25],[-8,-5],[-9,-35],[13,-26],[-2,-15],[9,-20],[28,-85],[0,-25],[-6,0],[0,-5],[-14,-15],[5,-15],[-2,-15],[-16,-26]],[[6566,5537],[18,-51],[2,-20],[11,-25],[9,0],[0,-15],[9,-50],[2,-35],[0,-5],[-4,-25],[-20,-11],[-11,-10],[-9,-15],[-11,-10],[-16,-10],[-8,-5],[-9,-10],[-9,0],[-11,5],[-9,-20],[-11,-15],[-6,-20],[-9,-10],[-9,-5],[-18,-10],[-6,-5],[-7,-5],[-9,-10],[7,-10],[0,-25],[15,-21],[2,-10],[-4,-45],[-9,-20],[0,-5],[2,-10]],[[6438,4999],[-6,-20],[-11,-10],[-20,-5],[-15,-30],[-11,-10],[0,-10],[0,-10],[-18,0],[-2,10],[-11,-5],[-5,-10],[-9,-6],[-2,-10],[0,-20],[5,-20],[-3,-15],[7,-25],[0,-15],[7,-20],[-7,-10],[-11,5],[-9,-10],[-9,-10],[0,-15],[-4,-10],[-2,-10],[-2,-10],[2,-11],[-5,-10],[-6,-25],[6,-35],[-19,-15],[-9,-15],[-9,5],[-5,0],[-13,-5],[-13,-15],[-2,15],[-9,5],[-9,40],[-6,5],[0,10],[0,5],[-9,5],[-20,-20],[-20,-25],[-9,-35],[11,-40],[-2,-15],[-11,-10],[-18,-10],[-13,-26],[-6,-5],[-18,-10],[-2,-15],[-18,-20],[-13,20],[-7,5],[-4,-5],[-7,0],[-4,-5],[-5,-5],[-4,-20],[-7,-15],[-4,5],[-4,0],[-9,0],[-5,-5],[-4,-10],[0,-20],[2,-15],[-4,-10],[-2,-5],[2,-5],[2,-5],[0,-15],[0,-30],[7,-16],[4,-20],[-29,-40],[-11,0],[-13,-30],[7,-15],[-5,-15],[5,-10],[-11,-15],[-5,-15],[13,-25],[3,-26],[13,-15],[4,-5],[5,-10],[6,0],[14,-5],[4,-15],[-2,-30],[4,-20],[-4,-10],[0,-30],[6,-15],[-2,-20],[5,-11],[-7,-30],[0,-20]],[[6002,3823],[-13,-5],[-13,-5],[-9,-15],[-7,-5],[-4,-10],[-9,-15],[-13,-10],[-11,-5],[-18,-5],[-9,10],[-4,25],[2,15],[-4,0],[-5,10],[-13,10],[-7,0],[-4,0],[-9,-15],[-22,-5],[-24,-5],[-13,20],[-7,0],[-9,25],[-9,10],[-17,-15],[-16,5],[-6,-5],[-16,5],[-20,25],[-6,-10],[-11,0],[-11,-20],[-2,-15],[-9,-5],[2,-10],[-5,-10],[3,-30],[-9,-15],[-5,-15],[-4,-10],[7,-20],[-5,-20],[9,-21],[4,-40],[-19,-10],[-9,-5],[-2,-5],[-9,0],[-7,-5],[-9,5],[-8,-10],[-18,-5],[-2,-10],[-9,-10]],[[5559,3567],[-11,5],[-18,35],[-15,-15],[-29,20],[-11,20],[-6,-5],[-5,0],[-4,15],[-9,0],[-5,20],[-4,21],[-4,20],[2,25],[-5,0],[-2,5],[-2,10],[0,15],[-7,25],[-15,30],[0,20],[-4,5],[0,10],[-5,10],[9,56],[-4,10],[0,10],[13,20],[6,30],[0,10],[7,15],[0,45],[4,10],[-2,5],[-4,41],[2,5],[2,45],[2,10],[-8,20],[-18,5]],[[5495,4758],[20,15],[11,5],[9,5],[6,-5],[7,-5],[22,10],[18,15],[-7,45],[-4,10],[-5,10],[-13,15],[9,26],[0,5],[-2,20],[-23,-15],[-6,10],[-7,0],[2,5],[-4,5],[18,-5],[22,20],[2,30],[-11,25],[4,5],[7,10],[2,15],[0,30],[7,25],[6,26],[31,25],[5,10],[-3,10],[5,0],[-11,15],[-9,30],[-9,-5],[-13,5],[-15,15],[-7,0],[-2,-10],[-11,0]],[[5546,5210],[-9,30],[6,35],[-2,15],[-6,21],[2,10],[9,5],[6,10],[9,15],[-4,25],[-9,15],[2,10],[-7,10],[-11,15],[-8,-5],[-7,10],[13,25],[7,5],[29,20],[6,15],[5,31],[11,5],[8,-5],[7,5],[11,-26],[29,21],[6,10],[2,15],[27,5],[26,20],[0,10],[7,10],[2,15],[-9,20],[11,0],[16,5],[0,-5],[6,5],[-6,5],[2,20],[-2,5],[2,10],[-2,15],[0,46],[-2,15],[11,15],[6,20],[-2,15],[13,10],[14,35],[0,10],[-11,30]],[[5760,5888],[28,15],[33,-15],[13,-15],[3,-25],[-7,-35],[7,-30],[0,-86],[33,0],[11,5],[9,-15],[6,0],[13,0],[7,0],[4,0],[0,-5],[7,0],[7,-5],[4,0],[9,-5],[2,0],[4,-5],[3,0],[2,0],[2,0],[7,0],[2,0],[4,-5],[3,0],[2,0],[2,-5],[2,0],[5,5],[2,0],[6,0],[3,5],[4,0],[4,0],[5,0],[4,0],[5,0],[6,5],[7,0],[9,-20],[6,-50],[-6,-20],[2,-15],[4,-15],[11,-10],[7,-20],[4,5],[7,5],[9,0],[4,5],[5,10],[4,10],[2,10],[11,10],[0,5],[5,0],[2,5],[6,-5],[5,20],[17,0],[-2,15],[2,0],[11,-10],[42,30],[5,5],[6,-5],[0,-10],[11,-25],[20,-15],[9,5],[13,30],[16,10],[13,10],[7,-10],[13,-10],[2,-5],[13,0],[0,-15],[7,-10],[-5,-30],[5,-5],[-5,-10],[0,-15],[18,-56],[13,5],[0,5],[3,5],[2,5],[4,0],[0,5],[2,0],[0,5],[3,0],[0,-5],[2,-5],[2,-10],[0,-5],[-2,-5],[0,-5],[-2,-5],[0,-10],[0,-10],[2,-5],[0,-25],[-2,-25],[11,-30],[2,5],[2,10],[4,5],[7,5],[2,10],[2,20],[7,-5],[15,0],[5,0],[17,15],[5,15],[6,5],[9,5],[9,0],[2,10],[5,0],[4,5],[2,10],[5,0],[4,0],[5,5],[6,0],[2,10],[11,0],[5,15],[6,0],[3,6],[6,0],[5,10],[8,5],[5,10],[4,0]],[[5760,5888],[-58,-50],[-53,0],[-48,-20],[-71,40],[7,66]],[[5592,6441],[62,-50],[4,0],[2,5],[3,0],[2,5],[4,0],[2,0],[3,0],[2,0],[4,0],[2,0],[5,0],[2,0],[2,0],[5,0],[4,10],[2,0],[2,0],[3,0],[4,0],[2,0],[5,0],[2,0],[2,0],[24,0],[0,-5],[5,-30],[-7,-20],[4,-5],[7,-5],[16,5],[8,15],[7,-5],[13,10],[7,0],[2,15],[9,10],[11,0],[6,0],[11,5],[3,15],[6,0],[49,-5],[6,-5],[18,15],[0,20],[9,15],[9,20],[15,20],[2,5],[-2,15],[24,5],[3,0],[0,5],[-3,6],[0,5],[3,0],[0,5],[2,5],[2,0],[2,0],[2,5],[3,0],[2,5],[-2,5],[2,0],[0,5],[2,0],[4,0],[3,0],[0,5],[0,10],[2,5],[4,5],[2,5],[-2,5],[-2,5],[4,10],[3,0],[0,5],[0,5],[-3,0],[-2,5],[-2,10],[0,5],[2,5],[2,5],[3,5],[2,5],[0,5],[4,5],[2,5],[3,0],[2,0],[2,5],[4,5],[3,0],[4,0],[2,5],[2,0],[-4,10],[0,10],[-2,10],[0,11],[-2,5],[-3,15],[-8,5]],[[6286,7049],[3,-10],[26,-35],[18,-15],[26,-5],[221,50],[11,0],[6,-5],[5,0],[4,0],[7,0],[6,0],[5,0],[6,5],[5,0],[2,0],[6,0],[3,-5],[2,0],[4,-20],[-11,-10],[-9,-66],[-15,6],[7,-61],[2,-15],[0,-10],[0,-10],[17,-5],[3,5],[4,0],[2,10],[9,0],[9,5],[11,-5],[11,-10],[7,-5],[6,-5],[-4,-5],[13,-15],[0,5],[4,-10]],[[6718,6808],[3,0],[-3,0]],[[6718,6808],[-26,-55],[-9,-21],[-26,-70],[-3,-5],[-2,-15],[-15,-15],[4,-15],[-2,0],[2,-20],[-9,-40],[5,-15],[11,-5],[4,-16],[-6,-15],[0,-10],[-5,-10],[5,-20],[-25,-20],[-8,-20],[-5,-10],[0,-15],[11,-5],[29,-15],[6,-5],[-4,-10],[-15,-10],[2,-10],[-5,-15],[-8,-6],[2,-5],[-2,-15],[-5,-10],[-2,-10],[-9,-10],[-6,-25],[-5,-30],[-2,-30],[-11,0],[-7,-10],[-2,-10],[-40,-35],[-11,5],[-4,5],[-26,-10],[-3,-11],[0,-20],[7,-25],[-20,-10],[0,-5],[-4,0],[0,-5],[2,-5],[2,-5],[2,0],[3,0],[2,0],[2,0],[4,0],[5,-5],[15,-15],[2,-25],[0,-15],[11,-10],[5,-25],[6,-10],[3,5],[15,-20],[7,-31],[6,-10],[3,0],[4,-10],[7,5],[0,-15],[-20,-15],[31,-75],[6,10],[16,-30],[26,-15],[7,-5],[-5,-5],[-4,0],[-7,-10],[-2,-6],[-2,-35],[-5,-5],[-11,-40],[3,-15],[4,-10],[2,-10],[5,0],[6,-15],[-2,-10],[-20,-5],[-2,-5],[-11,0],[-11,-15],[-7,0],[-11,-10]],[[5010,5803],[13,10],[13,-5],[9,0],[11,20],[7,10],[9,0],[9,0],[4,-10],[22,5],[20,-15],[17,5],[25,5],[13,-10],[0,-10],[7,-25],[-9,-65],[9,-21],[-25,-30],[-15,-30],[-9,-30],[16,-10],[13,-10],[2,-5],[7,-15],[2,0],[2,0],[2,0],[5,-5],[0,-5],[6,5],[5,-5],[4,5],[13,0],[33,20],[7,-15],[0,-25],[-7,-15],[9,-5],[2,-10],[-4,-31],[-9,-20],[-2,-10],[7,-30],[-3,-35],[-11,-20],[0,-25],[-11,-15],[5,-20],[-3,-11],[11,-20],[0,-15],[3,-20],[-9,-20],[0,-30],[-7,-25],[2,-20],[7,-10],[0,-30],[9,-6],[-2,-25],[-5,-10],[-15,-10],[-9,-20],[9,-25],[11,-10],[18,-35],[8,-10],[0,-10],[5,-10],[20,-25],[11,0],[6,-10],[16,-26]],[[5376,4793],[48,30],[20,-15],[0,10],[-2,25],[-11,25],[-2,10],[-20,5],[-9,10],[-9,16],[-11,0],[-17,35],[-9,10],[9,25],[-2,20],[-9,0],[-9,5],[-7,10],[-6,0],[2,5],[0,5],[2,0],[0,10],[2,10],[2,5],[0,5],[-2,5],[0,5],[0,5],[0,5],[-4,10],[0,5],[-2,0],[-3,10],[-2,6],[0,5],[-2,0],[0,5],[2,10],[0,5],[-4,15],[0,20],[-2,5],[0,10],[0,5],[0,5],[2,5],[2,0],[0,10],[0,5],[0,10],[-2,10],[-13,5],[-7,10],[7,25],[13,5],[0,15],[0,5],[6,16],[16,-5],[4,-11],[-4,-10],[11,-20],[-16,-20],[-6,-20],[0,-25],[-2,-15],[2,-10],[13,45],[7,-15],[9,15],[8,10],[16,30],[6,-5],[9,5],[7,20],[4,-5],[5,10],[4,-15],[7,-10],[4,-40],[-2,-10],[0,-10],[2,-5],[9,-5],[13,-5],[20,15],[11,5],[13,0],[11,0],[18,5],[6,5],[14,-5]],[[7258,5517],[-8,-11],[-5,-5],[-6,-25],[-11,0],[-18,-10],[-4,-20],[-16,-35],[-11,-15],[-4,-15],[-11,-10],[-5,-20],[-9,-10],[-19,-10],[-7,-15],[-11,10],[-13,5],[-53,5],[9,-30],[-9,-6],[-5,0],[-6,-5],[-2,-5],[-16,-45],[-13,-10],[-11,-5],[-4,-10],[-9,-10],[-7,0],[-13,-15],[-7,-10],[-13,15],[-2,35],[-20,40],[0,15],[-22,5],[-24,16],[-18,0],[-2,0],[-9,-5],[-7,-16],[-8,-20],[-14,0],[-4,0],[-2,-10],[-2,-45],[4,-30],[-13,-15],[-5,-10],[-8,-30],[0,-20],[-9,-11],[-7,-15],[-4,-20],[-9,-20],[-2,-25],[-9,-10],[-16,-20],[-13,-5],[-13,0],[-33,-10],[-11,0],[-24,-5],[-18,-15],[-7,5],[-4,0],[-4,-10],[-7,-5],[-11,0],[-4,-5],[-3,-10],[-13,-5],[-13,-10],[-7,10],[-15,0],[-7,5],[0,10],[0,15],[2,5],[-2,20],[0,10],[-17,-5],[-11,10],[-5,10],[-4,0],[-13,0],[-7,5],[-27,-10]],[[6718,6808],[3,0]],[[6721,6808],[0,5],[2,0],[6,-10],[51,-86],[40,-65],[9,-20],[28,-35],[5,-5],[6,0],[33,5],[16,5],[11,5],[6,0],[14,-10],[17,10],[44,-5],[27,-15],[92,-25],[-2,-36],[0,-25],[0,-10],[0,-5],[0,-5],[0,-5],[0,-5],[0,-5],[-2,-5],[0,-5],[-2,0],[0,-5],[0,-5],[-2,-5],[2,-10],[-2,0],[6,-30],[5,-5],[-5,-30],[7,-61],[-2,-5],[-14,-40],[-6,-30],[-16,-25],[-8,0],[-5,-15],[-18,-5],[-15,-10],[-15,-15],[-20,-25],[39,-46],[9,0],[9,-15],[9,0],[15,10],[3,-5],[11,-10],[46,45],[6,0],[7,5],[16,-15],[11,0],[4,0],[7,-15],[6,-10],[5,-10],[13,-10],[0,-10],[11,-25],[4,-10],[0,-40],[11,-35],[5,-26],[-7,0],[-4,-15],[4,-25],[-7,-25],[7,-15],[-2,-20],[0,-15],[-7,-30],[5,-15],[2,-25],[-2,-10],[-18,-6],[0,-40],[-2,-10],[6,-15],[3,-15],[17,-10],[5,-5],[6,-45],[-6,-15],[4,-10],[-7,-30]],[[5413,6647],[3,0],[2,5],[0,5],[2,15],[0,10],[-2,10],[-5,15],[0,5],[3,5],[2,10],[2,5],[0,6],[0,15],[0,5],[0,10],[0,5],[-2,10],[-2,10],[-3,15],[-2,5],[-2,5],[-2,5],[-7,0],[-4,0],[-2,5],[-3,0],[-2,15],[-2,10],[0,10],[0,15],[0,5],[2,0],[0,5],[2,10],[3,5],[2,0],[0,5],[2,0],[0,5],[2,5],[0,5],[-2,10],[-4,11],[-3,10],[0,15],[-2,5],[0,10],[-2,5],[0,5],[0,5],[2,5],[0,15],[0,5],[-2,5],[-2,5],[-2,5],[-5,5],[0,5],[0,5],[-2,5],[0,10],[0,5],[2,10],[2,10],[0,5],[3,0],[4,10],[4,5],[9,15],[2,5],[0,5],[0,11],[0,5],[3,5],[6,10],[0,10],[0,5]],[[2823,3698],[-17,-20],[-14,-11],[-4,-15],[-24,-55],[-7,-5],[-13,35],[0,10],[-20,25],[-20,-40],[-26,-30],[-27,-30],[-11,5],[-13,0],[-7,-5],[-2,-25],[-6,-10],[-3,-10],[-2,-10],[-4,-15],[-2,-26],[-7,-5],[-2,-10],[-7,-5],[-6,-5],[-3,-10],[-2,-10],[-13,-5],[-9,-10],[-9,-5],[-6,-15],[-5,-15],[-11,-10],[-4,10],[-20,-10],[-4,5],[-11,0],[-9,5],[-13,-15],[-14,15],[-11,-10],[-15,-20],[-7,-5],[-9,-20],[-15,-15],[-26,-41],[-3,-15],[-15,-25],[2,-5],[-6,-55],[-3,5],[-31,-25],[-22,-20],[-8,-5],[-11,0],[0,5],[2,5],[6,20],[9,25],[-4,20],[-18,30],[-4,0],[-2,25],[0,31],[-3,15],[5,10],[-7,10],[-2,5],[-2,5],[-2,5],[0,5],[-3,10],[0,5],[-2,0],[0,10],[2,0],[0,5],[-2,5],[0,5],[2,0],[0,5],[-2,0],[0,5],[-4,0],[-2,5],[-3,0],[-2,5],[-2,0],[-2,5],[-3,5],[-2,5],[-2,5],[-4,5],[-5,0],[-4,5],[0,5],[-5,5],[0,5],[-2,0],[-2,0],[-4,0],[-3,0],[-2,0],[-2,-5],[-4,0],[-3,0],[-2,5],[-2,0],[-4,-5],[-7,0],[-4,0],[-3,5],[-2,0],[0,5],[-4,5],[-2,0],[0,5],[-3,0],[-2,-5],[-2,5],[-2,0],[0,5],[0,5],[-2,0],[0,5],[-7,0],[-2,0],[-2,6],[-7,5],[-2,0],[-3,0],[-2,5],[-2,0],[0,5],[0,5],[-2,0],[-2,0],[-3,0],[0,-5],[-2,0],[-2,0],[-4,5],[-3,0],[-4,0],[-4,0],[0,-5],[-3,0],[0,-5],[-2,-5],[-2,-5],[-2,0],[0,-6],[-2,0],[0,-5],[-3,5],[0,6],[0,5],[3,5],[0,5],[0,5],[2,5],[0,5],[0,15],[0,5],[2,5],[-33,-35],[-2,0],[-20,-46],[-16,-15],[-6,-35],[-11,-5],[-22,5],[-7,15],[-6,0],[-11,15],[-3,10],[-6,15],[-2,15],[-5,21],[-13,0],[-13,25],[-7,25],[-9,15],[2,5],[3,5],[6,15],[2,5],[0,5],[3,5],[0,5],[0,5],[0,5],[2,5],[2,0],[2,5],[0,5],[5,10],[2,0],[2,5],[0,5],[5,0],[2,0],[-7,-20],[0,-5],[9,0],[2,0],[5,-5],[19,5],[22,15],[3,0],[2,0],[2,0],[2,0],[0,-5],[2,-5],[0,-5],[0,-5],[3,0],[2,-5],[2,0],[0,-5],[0,-5],[-2,-15],[2,0],[2,0],[2,0],[3,15],[0,5],[4,0],[0,10],[2,5],[-2,0],[2,10],[2,-5],[3,5],[2,5],[0,5],[2,5],[2,5],[5,5],[2,0],[2,5],[2,0],[0,10],[3,0],[2,0],[2,0],[2,11],[2,5],[5,10],[6,15],[3,0],[2,5],[2,5],[2,0],[2,-5],[3,0],[2,5],[0,5],[2,0],[2,5],[0,-5],[2,0],[3,5],[2,0],[2,0],[2,0],[2,0],[5,5],[-5,10],[-2,10],[2,5],[-2,5],[7,15],[-9,5],[-13,-15],[-9,0],[-4,-25],[-3,-5],[-13,25],[-11,-10],[-4,25],[-9,25],[-7,5],[2,5],[-4,5],[-15,10],[-9,10],[-5,-5],[-4,5],[0,5],[-2,0],[-2,0],[-3,0],[-2,0],[-2,-5],[-2,0],[-2,0],[-3,-10],[-2,0],[0,-5],[-2,0],[0,-5],[-2,0],[-2,0],[0,-5],[0,-5],[-3,0],[-2,-5],[-13,5],[0,5],[-7,5],[-4,-5],[-7,35],[-15,10],[0,-10],[-2,-5],[0,-5],[-3,-5],[0,-5],[3,-5],[0,-5],[-9,5],[-2,-5],[-7,0],[-2,-5],[-2,0],[0,-10],[-9,-5],[-9,5],[2,5],[0,5],[0,5],[0,5],[2,5],[3,0],[0,5],[2,5],[0,10],[0,5],[0,5],[2,10],[0,11],[0,5],[2,5],[-6,40],[8,5],[5,40],[-5,35],[3,0],[-3,15],[3,15],[-5,15],[2,15],[-2,0],[0,10],[-6,0],[-3,16],[5,35],[6,20],[3,0],[0,5],[2,5],[-11,10],[0,5],[6,0],[11,5],[9,0],[2,-5],[5,5],[2,-15],[7,5],[-3,5],[9,15],[16,40],[6,0],[5,10],[6,0],[5,5],[13,-10],[-4,-10],[13,-10],[13,-5],[7,5],[4,15],[9,-10],[4,0],[7,15],[0,10],[-9,10],[9,25],[9,16],[-9,10],[-7,5],[-4,25],[4,0],[0,10],[5,10],[4,5],[9,-15],[13,25],[5,10],[6,0],[9,20],[4,0],[7,30],[2,5],[-4,10],[13,25],[13,31],[2,0],[14,20],[8,5],[3,5],[2,-10],[7,20],[4,10],[26,40],[5,5],[0,25],[11,35],[-2,5],[-7,15],[-4,5],[-7,10],[0,6],[-2,0],[0,5],[-2,0],[-3,0],[-4,-5],[-7,-6],[-4,0],[0,-5],[-2,0],[-2,0],[-3,5],[-2,6],[-2,5],[-2,0],[-3,0],[0,-5],[-6,10],[-2,-10],[-5,10],[2,5],[-4,10],[13,25],[7,0],[0,-10],[7,-5],[19,35],[14,20],[-3,10],[-6,0],[4,10],[-2,0],[11,20],[4,15],[0,-5],[7,15],[9,5],[0,-5],[2,0],[0,-5],[2,0],[5,0],[4,10],[11,10],[0,15],[4,0],[-6,0],[0,16],[15,30],[9,20],[-9,10],[5,0],[-16,30],[2,5],[-4,15],[4,10],[7,5],[-9,10],[2,0],[5,15],[4,15],[7,10],[4,-5],[3,0],[2,-10],[2,0],[2,-5],[2,5],[3,-5],[2,0],[0,-5],[2,0],[2,0],[2,0],[16,-5],[4,15],[11,30],[0,10],[-13,11],[2,10],[-9,15],[3,5],[4,-5],[4,10],[-2,5],[5,5],[-3,0],[-4,5],[-4,10],[-3,-5],[-2,0],[-2,0],[-4,5],[2,5],[-7,10],[0,5],[2,5],[3,5],[-3,10],[7,15],[-9,15],[7,25],[4,10],[11,15],[-2,0],[7,10],[-7,16],[-7,20],[-11,20],[-4,5],[-4,10],[-9,0],[2,-10],[-11,-10],[-7,0],[-2,5],[-9,-15],[5,-15],[4,-5],[7,-15],[11,-36],[-11,-10],[-11,30],[-7,0],[-7,21],[-4,0],[-2,5],[2,0],[-2,10],[-2,5],[-3,0],[-6,20],[-9,5],[0,5],[0,5],[-2,0],[-2,5],[-3,0],[3,5],[-3,10],[-2,0],[-4,-5],[-7,15],[-9,5],[-6,0],[-5,5],[0,5],[3,5],[4,5],[2,5],[2,0],[0,5],[3,0],[0,5],[-3,0],[-2,5],[-2,0],[-2,5],[-7,10],[-2,5],[-57,101]],[[2072,5562],[72,140]],[[2144,5702],[71,-125],[9,-20],[9,-5],[6,-10],[2,5],[3,-5],[8,10],[5,-5],[13,-10],[4,-10],[-13,-21],[7,-10],[-9,-15],[4,0],[3,-5],[2,-5],[6,-15],[18,-30],[22,-35],[7,-10],[2,0],[-9,-15],[-2,0],[-11,-20],[-2,0],[-11,-15],[2,-5],[4,-5],[7,-15],[2,0],[2,0],[2,0],[3,0],[6,-6],[2,0],[3,6],[0,5],[2,0],[2,5],[0,-5],[2,5],[0,5],[3,0],[2,5],[2,-5],[2,0],[0,10],[0,5],[0,5],[13,-25],[7,10],[2,-5],[5,-5],[6,0],[5,0],[4,-10],[0,-6],[-4,-10],[0,-5],[-3,-5],[-2,-10],[0,-5],[-2,0],[22,-25],[-2,-10],[-13,-10],[2,-10],[-9,-10],[-2,-10],[6,-15],[3,5],[4,-10],[4,-5],[7,10],[7,-5],[8,25],[5,15],[2,0],[2,0],[2,5],[3,0],[2,0],[0,5],[2,0],[2,10],[0,5],[5,15],[4,5],[2,0],[3,10],[2,5],[2,0],[2,5],[5,5],[0,5],[2,5],[2,0],[4,16],[-4,10],[-4,10],[-3,-5],[-2,5],[5,5],[-3,10],[-8,-5],[0,20],[8,15],[11,5],[5,10],[-2,0],[17,20],[-2,5],[-7,-5],[-2,0],[0,10],[9,0],[9,0]],[[2501,5451],[5,20],[-7,5],[-13,25],[-53,121],[-4,10],[6,15],[0,35],[-2,15],[-9,15],[9,6],[-6,20],[4,0],[-2,10],[4,5],[-4,10],[6,5],[-2,15],[7,10],[0,5],[-2,0],[-3,5],[-2,0],[0,5],[-4,0],[-2,5],[-3,0],[-2,5],[-2,0],[-2,5],[-3,0]],[[2554,5517],[-2,-16],[-2,-10],[13,-25],[-2,-5],[2,-15],[2,-5],[7,-5],[2,10],[5,5],[4,10],[13,10],[2,5],[7,0],[2,0],[-6,20],[0,26],[-3,10],[-11,0],[-6,-10],[-2,5],[2,5],[-5,0],[-22,-15]],[[1897,4597],[-13,-25],[-4,-5],[-7,0],[-4,0],[-5,-5],[-4,5],[-9,-5],[-6,0],[-11,10],[0,5],[6,10],[0,10],[5,5],[2,10],[2,-5],[4,5],[3,-10],[13,15],[4,-10],[2,5],[3,0],[4,5],[2,0],[2,0],[5,0],[4,5],[2,5],[-4,10],[13,15],[2,15],[16,31],[2,5],[-4,0],[2,10],[18,25],[8,10],[7,10],[11,30],[-7,0],[7,20],[7,-5],[-3,-10],[7,0],[4,-10],[3,-10],[6,-10],[0,-10],[-4,-5],[2,-10],[2,0],[0,5],[2,0],[3,0],[4,5],[2,0],[7,-15],[9,-10],[11,-10],[-2,-10],[8,-11],[5,-10],[-9,-20],[-4,-10],[-23,-55],[0,-5],[3,-5],[-3,-10],[5,-5],[-7,-15],[-4,5],[-2,-5],[-7,5],[-4,0],[-11,0],[-14,10],[-17,25],[-11,10],[-7,0],[-4,0],[-25,-10]],[[1816,5200],[189,281]],[[2005,5481],[58,-110],[9,-20],[2,5],[2,-5],[2,0],[11,-20],[2,5],[5,-5],[9,10],[22,-51],[-22,-20],[-5,10],[-17,-15],[-7,5],[-13,-10],[9,-20],[17,15],[0,-5],[20,15],[7,-15],[4,0],[5,-15],[2,5],[2,-10],[4,0],[7,-20],[4,0],[3,-5],[2,-5],[-27,-30],[-17,-40],[-7,-20],[-11,-36],[4,-20],[7,-20],[2,-5],[-2,-5],[4,0],[-4,-10],[7,-15],[-14,-35],[5,-5],[9,-10],[11,20],[-3,5],[12,10],[4,-5],[2,0],[11,0],[0,-5],[2,-5],[3,0],[2,-5],[0,-5],[0,-5],[-2,-5],[-3,0],[-2,-5],[-2,-5],[0,-5],[-2,-5],[-2,0],[0,-5],[-3,0],[-4,-5],[-2,0],[0,-5],[0,-5],[-5,-10],[-2,-11],[0,-5],[-2,0],[0,-10],[-2,0],[2,-5],[0,-5],[0,-5],[-2,-5],[0,-5],[-3,0],[0,-5],[-4,0],[-2,-5],[-2,-5],[-7,10],[4,5],[-6,5],[-2,-5],[-3,-5],[-13,0],[2,-10],[-11,-5],[-2,-10],[-13,5],[-11,-5],[-7,-10],[-2,5],[-4,0],[-9,15],[-2,-5],[-5,5],[-4,0],[-9,10],[-4,10],[4,5],[-2,10],[-9,10],[-13,-15],[-2,5],[-7,-10],[4,-5],[-4,-10],[-4,0],[-9,-10],[-7,10],[-6,-25],[-9,-5],[-13,10],[-5,-20],[-13,25],[-2,0],[-3,0],[-4,0],[-2,5],[-2,-5],[0,5],[0,5],[-9,20],[-9,10],[-15,-15],[-14,20],[-19,31],[-5,0],[-9,-21],[-2,5],[2,10],[5,11],[17,30],[-6,15],[-11,-10],[-5,10],[-22,30],[-55,90],[84,131]],[[1829,4672],[0,-5],[-2,-5],[0,-40],[-4,-10],[2,-5],[-5,-15],[-11,-10],[-2,-15],[2,-5],[-13,-25],[-20,-20],[-6,25],[2,5],[-2,10],[-16,15],[-6,20],[4,10],[2,10],[2,5],[3,0],[11,0],[2,10],[17,25],[11,35],[7,-10],[4,5],[3,5],[15,-15]],[[2819,5602],[0,-20],[-9,5],[-4,-10],[-9,-10],[-2,5],[-11,-15],[-5,20],[-2,15],[2,5],[2,-5],[3,5],[-5,5],[27,20],[-3,10],[5,5],[11,-10],[0,-25]],[[3518,7672],[-18,15],[-9,-5],[-6,15],[8,30],[-2,20],[-13,0],[-4,16],[-11,0],[-11,10],[4,25],[2,5],[-2,5],[-11,0],[-42,0],[-13,-5],[-7,-5],[-9,0],[-17,5],[-7,0],[-15,-5],[-25,5],[-8,10],[-31,35],[-9,-10],[2,10]],[[3264,7848],[5,30],[11,15],[-3,30],[0,5],[-4,10],[2,10],[-2,5],[4,6],[3,0],[2,-6],[2,-5],[7,0],[2,5],[0,6],[0,5],[2,0],[4,5],[5,-5],[4,-5],[2,-6],[5,-5],[2,5],[2,0],[2,6],[3,0],[0,5],[2,0],[4,-5],[5,-6],[2,0],[4,-5],[5,5],[4,0],[2,0],[3,-5],[0,-20],[0,-10],[0,-5],[0,-5],[0,-5],[0,-5],[2,0],[2,-5],[9,0],[2,0],[0,-10],[13,-5],[2,-5],[9,0],[13,0],[9,10],[5,5],[2,5],[4,5],[14,-5],[4,-5],[22,65],[4,16],[0,5],[-11,20],[5,5],[-7,10],[2,0],[40,10],[24,0],[25,-5],[30,10],[-2,5],[0,5],[-2,5],[-2,0],[-5,5],[-2,0],[-2,0],[-2,0],[-2,0],[-5,10],[0,5],[-2,5],[0,5],[0,5],[0,10],[0,10],[2,5],[0,5],[0,20],[0,5],[16,5],[4,-10],[0,-15],[7,0],[-5,-10],[7,-5],[6,0],[16,20],[22,-10],[13,10],[9,0],[9,0],[0,10],[-2,15],[0,10],[4,10],[-2,16],[9,25],[0,15],[6,20],[-2,25],[4,0],[5,5],[-13,20],[-9,10],[-11,5],[-14,5],[7,20],[-4,5],[0,5],[0,5],[0,10],[4,10],[0,5],[0,6],[0,5],[-2,5],[0,5],[0,5],[-2,5],[13,-5],[4,5],[7,0],[26,-25],[14,0],[13,-6],[9,11],[6,-5],[16,15],[0,5],[-9,0],[9,10],[-9,5],[-5,5],[0,5],[5,10],[2,5],[2,0],[14,-5],[15,10],[0,-10],[-2,-15],[6,-25],[5,-10],[4,0],[5,0],[6,0],[16,-11],[13,-5],[13,0],[9,-5],[11,-25],[11,-35],[-4,0],[-3,-5],[-2,0],[-6,-20],[-3,-5],[-2,0],[-2,-5],[-2,-5],[0,-10],[0,-5],[0,-5],[0,-5],[-5,-5],[-6,0],[-3,0],[-2,-5],[-2,-5],[-2,-5],[-5,-5],[-4,-10],[-2,-5],[0,-5],[-2,-15],[-3,-11],[3,-5],[-3,-10],[7,-15],[0,-10],[-2,-15],[0,-15],[-9,-45],[-4,-5],[2,-5],[-9,-5],[-2,-5],[-27,-25],[-13,-5],[-53,5],[5,-46],[2,-45],[2,-30],[-9,-5],[0,-5],[0,-5],[7,-10],[13,0],[0,-15],[2,-10],[0,-15],[2,-30],[97,20],[27,5],[62,-15],[2,-10],[11,-46],[20,-40],[17,-30],[7,-5],[26,0],[7,-5],[0,-15],[29,5],[6,-5],[0,-10],[7,5],[13,5],[-2,5],[4,25],[0,5],[0,5],[0,15],[7,30],[9,25],[9,6],[35,5],[20,10],[6,10],[7,30],[7,5],[22,20],[19,10],[9,10],[11,-5],[18,20],[6,-5],[0,20],[-4,10],[-7,0],[-4,5],[-7,20],[14,15],[6,15],[5,6],[4,-6],[2,0],[0,26],[11,5],[29,-31],[7,6],[13,-21],[24,21],[7,0],[20,15],[8,15],[-4,20],[13,10],[9,5],[2,5],[5,0],[15,0],[2,5],[-4,0],[6,10],[11,15],[-4,10],[-22,40],[4,5],[-11,51],[3,10],[4,5],[7,15],[11,10],[-3,5],[3,10],[-3,5]],[[4410,8225],[5,0],[2,5],[0,5],[2,5],[2,10],[3,0],[2,0],[4,5],[0,5],[5,5],[13,-15],[7,-30],[-5,-10],[13,-15],[3,-15],[4,-15],[0,-16],[0,-15],[4,-20],[-2,-5],[5,-20],[-3,-25],[-4,0],[0,25],[-2,0],[-44,-30],[19,-15],[5,0],[7,-10],[11,-15],[6,0],[7,0],[4,0],[0,-5],[2,-10],[7,0],[11,-5],[9,-10],[4,0],[5,-5],[2,-15],[2,-10],[2,-11],[0,-20],[0,-5],[7,-5],[4,5],[5,0],[6,-5],[0,10],[16,0],[0,-15],[6,-30],[3,-15],[0,-5],[-3,0],[0,-10],[-2,-10],[2,-5],[-2,-5],[0,-5],[-2,-10],[0,-5],[-2,-10],[0,-10],[-2,-5],[0,5],[-5,-5],[2,0],[-2,-5],[0,-5],[-2,-5],[-7,-5],[-2,0],[-4,-10],[0,-6],[-3,0],[-4,-5],[-2,-5],[-2,-5],[-5,-5],[7,-15],[-2,-20],[-18,-25],[0,-5],[7,-25],[-5,-10],[-9,-10],[-13,-10],[-6,0],[-16,-25],[-2,10],[-20,-20],[2,-15],[-26,-10],[-16,-6],[-19,-10],[0,16],[-3,20],[5,25],[-2,15],[-20,-5],[-18,5],[-26,5],[-3,5],[-4,10],[-13,15],[2,5],[-2,5],[-7,0],[0,-10],[0,-5],[-2,0],[-2,-5],[-7,-15],[-2,-5],[-4,-15],[-3,-10],[-2,-5],[0,-5],[-2,-10],[0,-10],[2,-5],[0,-5],[5,-6],[-5,0],[-2,-5],[-2,-5],[-7,-10],[-2,0],[-2,-5],[-2,0],[-3,-10],[-2,-5],[-4,-5],[-2,0],[-7,0],[-9,5],[-7,0],[-6,-5],[-7,-10],[-6,-5],[-5,-5],[-2,0],[-4,-10],[-3,-15],[-4,-10],[-4,-15],[-9,-35],[-5,-5],[-2,-5],[-4,-15],[-5,-15],[0,-21],[-2,-5],[-4,-15],[-13,-20],[-5,-10],[-11,-5],[-7,-5]],[[3826,6763],[7,-10],[11,0],[0,-5],[-4,-5],[-5,-11],[-4,6],[-9,-31],[-18,10],[-13,-5],[-4,5],[8,26],[0,10],[5,5],[2,-5],[4,10],[5,5],[0,5],[9,5],[-3,-10],[7,0],[2,-5]],[[3130,8019],[6,35],[3,35],[6,10],[0,5],[-4,5]],[[3141,8109],[4,5],[7,-5],[15,15],[16,0],[6,5],[0,10],[9,10],[15,10],[14,16],[2,5]],[[3229,8180],[7,-10],[6,0],[24,10],[5,-15],[6,-11],[11,-15],[5,-15],[4,-20],[7,-10],[0,-5],[0,-10],[-7,-15],[-2,-15],[-2,-10],[-7,-15],[-20,-10],[-24,5],[-15,-15],[-14,0],[-57,15],[-13,-5],[-9,5],[-4,0]],[[3427,8466],[2,0],[0,-20],[5,0],[2,-5],[9,-5],[29,0],[0,-10],[2,-20],[6,0],[3,-30],[-9,-36],[-9,0],[-4,-20],[8,-65],[-30,0],[-7,0],[-5,-10],[-6,0],[-7,0],[-13,5],[-11,0],[-24,-15],[-9,-5],[-11,-5],[-16,-5],[-11,-15],[-17,-5],[-18,35],[-4,25]],[[3282,8260],[11,25],[11,15],[2,10],[0,5],[-2,0],[-11,10],[-5,-5],[-4,15],[-4,5],[-3,5],[-2,-5],[-11,10],[-11,5],[-6,5],[-7,-5],[-11,-5],[2,21],[9,20],[13,40],[7,10],[15,-15],[11,-10],[9,-15],[9,-5],[4,0],[11,0],[20,-46],[11,0],[27,10],[6,11],[7,20],[6,5],[11,5],[0,20],[20,15],[-4,25],[4,5]],[[3698,8757],[-2,0],[-9,5],[-4,-5],[-4,0],[-5,-5],[-2,0],[-7,-5],[-2,0],[0,-15],[0,-5],[0,-5],[7,-10],[2,-5],[0,-5],[0,-30],[-2,-10],[-2,-15],[-7,5],[-2,-5],[-5,0],[-2,-10],[0,-5],[-9,-5],[-6,-20],[0,-5],[-5,-5],[-4,-10],[-9,-15],[-11,-21],[-2,0],[-7,0],[0,5],[-2,16],[0,20],[0,5],[-4,0],[0,10],[-5,0],[-2,10],[7,25],[-3,10],[5,10],[-16,10],[-13,0],[-11,5],[-9,0],[-22,-5],[0,5],[7,40],[4,-5],[7,30],[-18,36]],[[3524,8778],[5,0],[4,20],[-7,10],[3,10],[17,15],[3,5],[19,-5],[9,5],[13,-5],[0,30],[9,40],[22,-15],[13,-10],[-2,-20],[2,-5],[0,-10],[3,0],[9,0],[6,0],[5,0],[6,0],[2,-5],[3,0],[2,5],[2,0],[7,5],[0,5],[2,0],[4,5],[13,25],[7,10],[7,10],[6,5],[-2,10],[0,5],[9,15],[6,-5],[5,0],[2,0],[9,-5],[4,0],[9,-5],[11,-10],[18,0],[2,5],[2,10],[9,10],[4,5],[5,5],[6,0],[9,5],[2,5],[3,0],[-9,-20],[-11,0],[-2,-5],[-9,-20],[-7,-5],[-11,-20],[0,-10],[20,-10],[0,-10],[2,-15],[5,-5],[0,-15],[4,-5],[7,-5],[2,-5],[-2,-5],[-3,-5],[-2,0],[0,-5],[-2,-5],[0,-5],[-7,10],[0,15],[-4,0],[-7,-10],[0,-5],[-6,-15],[4,0],[0,-6],[-2,-5],[-9,5],[0,11],[-4,0],[-11,-5],[-2,0],[-11,-6],[-5,-5],[-2,-5],[-2,0],[-16,-10],[-9,5],[-6,0],[-5,10],[-6,5],[-5,-15]],[[3264,7848],[-9,-5],[-42,5],[-4,5],[9,20],[-5,20],[3,25],[-5,0],[-9,5],[-2,0],[-4,0],[-9,10],[-2,0],[-5,0],[-6,31],[-16,0],[-11,45],[-11,5],[-6,5]],[[3229,8180],[7,15],[-3,10],[11,15],[0,15],[5,10],[9,0],[24,15]],[[3427,8466],[-4,35],[-13,20],[-9,10],[-2,25],[4,-5],[9,-25],[4,-5],[13,15],[12,0],[4,-10],[4,5],[3,-10],[2,0],[2,5],[0,20],[7,10],[2,5],[6,26],[0,5],[0,5],[-6,15],[-9,0],[-11,15],[-7,-10],[-13,-20],[-18,-5],[-2,10],[2,10],[-6,15],[-2,10],[2,15],[13,15],[7,10],[4,0],[0,-5],[20,10],[15,25],[-2,5],[16,10],[11,5],[4,10],[4,0],[14,25],[11,5],[6,11]],[[3698,8757],[5,-5],[2,0],[2,0],[0,-5],[2,0],[3,-5],[2,0],[0,-5],[2,0],[0,-5],[2,0],[5,-15],[2,-5],[2,-5],[2,-5],[0,-5],[2,0],[0,-5],[3,0],[2,-5],[2,0],[2,0],[0,-5],[3,0],[2,0],[6,0],[3,0],[2,0],[2,-5],[2,0],[0,-5],[2,-5],[0,-5],[0,-5],[3,0],[0,-5],[0,-5],[2,0],[0,-5],[2,-5],[2,0],[0,-5],[2,0],[3,0],[0,-5],[2,0],[2,0],[2,0],[5,-5],[2,0],[2,-5],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[2,0],[5,0],[2,-5],[2,0],[5,0],[2,0],[2,0],[2,0],[2,0],[5,5],[2,0],[2,0],[3,0],[2,0],[0,5],[2,0],[2,5],[5,5],[2,0],[4,0],[0,5],[2,0],[3,0],[6,10],[2,0],[3,0],[2,0]],[[3875,8647],[2,-15],[7,0],[4,0],[0,5],[0,-5],[2,0],[2,0],[0,-5],[5,5],[2,0],[0,-5],[2,-5],[2,-5],[3,0],[2,0],[2,0],[4,0],[3,-5],[2,-10],[6,-15],[7,0],[13,-10],[3,5],[6,-5],[2,0],[3,0],[0,5],[4,-5],[2,0],[5,0],[2,5],[2,-5],[4,0],[5,0],[4,-5],[2,0],[5,0],[13,-11],[2,0],[2,0],[7,-5],[2,0],[5,-5],[2,0],[2,0],[4,0],[3,0],[4,-5],[2,0],[0,-5],[0,-5],[0,-5],[-4,-5],[0,-5],[0,-5],[0,-5],[2,-5],[-2,-10],[2,-15],[2,-5],[7,-5],[-2,-5],[-2,-10],[4,0],[-7,-20],[-6,-15],[4,-5],[2,0],[11,15],[5,-5],[4,5],[-2,0],[-2,5],[0,5],[2,5],[2,0],[7,-10],[11,0],[17,40],[16,20],[4,0],[11,25],[7,5],[2,51],[0,25],[5,0],[2,10],[-5,0],[-2,10],[13,0],[14,-10],[4,5],[11,10],[11,-10],[13,-30],[0,-15],[2,-6],[0,-20],[11,0],[7,15],[7,5],[4,0],[-4,-25],[2,-25],[4,5],[14,-25],[17,-10],[5,-5],[2,-20],[6,-5],[5,-25],[11,-20],[-2,-25],[2,-5],[2,-5],[13,0],[13,-11],[11,-5],[9,5],[3,-5],[8,0],[3,-5],[19,16],[7,10],[4,-5],[3,-5],[-7,-6],[-2,-15],[2,-15],[-4,-40],[-7,-35],[20,10],[20,-25],[-3,-20]],[[3130,8019],[-29,5],[-13,0],[2,15],[-9,5],[-9,10],[-13,20],[0,5],[-6,5],[0,10],[-3,5],[-17,0],[-14,10],[0,5],[-2,5],[0,5],[2,5],[3,5],[0,5],[-3,10]],[[3019,8149],[9,5],[20,0],[11,-15],[2,-10],[5,-5],[20,-5],[28,0],[27,-10]],[[5841,9300],[0,5],[2,10],[-11,5],[-9,0],[-4,-20],[-2,0],[-2,-10],[-3,0],[-4,5],[-9,-10],[-2,0],[-2,-5],[-2,0],[-7,-10],[-2,0],[0,-5],[-2,0],[-3,0],[-2,0],[-2,0],[0,5],[-2,0],[-2,0],[-3,0],[-2,5],[-2,0],[0,5],[-4,-5],[-7,10],[-2,-5],[-5,15],[2,10],[-6,0],[-2,0],[-7,-5],[-4,0],[-7,0],[-7,-10],[-2,0],[-2,0],[0,5],[-11,-15],[-4,0],[0,-5],[-3,-5],[3,-10],[2,-10],[0,-5],[0,-5],[-2,5],[-11,5],[-3,5],[0,10],[-2,5],[-6,-10],[-7,-5],[2,-10],[2,0],[3,-5],[-3,-5],[0,-5],[3,-5],[2,-5],[0,-5],[2,0],[0,-5],[2,0],[0,-5],[2,0],[0,-5],[-2,-5],[0,-5],[-2,-5],[-2,0],[-2,0],[-3,0],[-2,0],[-2,-6],[-7,0],[-2,0],[-2,0],[-2,0],[-3,0],[0,6],[-2,0],[-2,0],[-2,0],[0,5],[-5,0],[-2,0],[-2,0],[-4,0],[-5,0],[-6,0],[-7,0],[-7,0],[-2,-5],[-9,5],[-4,0],[2,-11],[-2,-10],[2,-5],[-4,0],[0,5],[-5,-5],[-2,10],[-4,5],[-5,-5],[-4,0],[-4,11],[2,5],[-2,5],[0,5],[-11,5],[-5,0],[-2,-5],[0,-5],[2,-5],[5,0],[2,-5],[2,-6],[-9,-10],[-7,-5],[3,-5],[2,0],[4,0],[7,-5],[-9,-5],[0,-5],[-9,5],[-6,10],[-3,10],[-2,16],[-2,15],[4,20],[3,15],[-3,5],[-4,-5],[-4,-5],[-5,-5],[-6,-5],[-7,10],[-4,0],[-5,0],[-2,0],[-9,-5],[-9,10],[-4,5],[-4,0],[-5,15],[-4,5],[-14,20],[-4,5],[-2,5],[-13,-5],[-5,0],[-4,0],[-5,0],[-4,15],[-4,15],[-5,5],[0,10],[2,10],[5,10],[6,0],[9,5],[5,5],[0,10],[6,5],[-4,10],[-2,11],[-14,30],[-6,5],[-7,0],[-2,15],[-2,0],[2,5],[2,5],[5,10],[2,0],[0,5],[2,0],[2,5],[2,5],[7,10],[0,5],[2,0],[0,5],[2,5],[3,0],[2,0],[2,-5],[11,15],[2,-5],[11,15],[5,10],[4,5],[5,5],[2,0],[9,0],[-3,5],[-2,5],[7,10],[4,5],[5,0],[8,0],[9,-5],[0,5],[-2,5],[2,5],[0,11],[5,10],[0,5],[-3,0],[-6,0],[-5,15],[-2,25],[2,10],[3,5],[2,5],[6,5],[-2,5],[2,5],[0,5],[0,5],[0,5],[0,5],[3,0],[0,5],[2,0],[2,5],[2,0],[2,0],[3,0],[0,5],[2,0],[2,0],[2,5],[2,0],[0,5],[3,0],[0,5],[2,5],[0,5],[0,5],[2,5],[2,5],[0,5],[2,5],[3,5],[0,5],[2,0],[2,0],[0,5],[2,0],[3,5],[11,11],[2,0],[0,5],[2,0],[0,5],[2,0],[2,5],[3,5],[2,0],[4,5],[2,-5],[14,-5],[4,5],[9,10],[2,-5],[4,5],[9,0],[2,10],[14,-15],[6,-10],[2,-5],[0,5],[0,5],[3,0],[0,5],[2,0],[2,10],[0,5],[2,0],[3,5],[2,5],[2,0],[2,0],[2,0],[3,0],[2,0],[4,0],[7,10],[11,5],[6,0],[5,10],[6,0],[9,10],[9,-5],[4,-10],[7,-10],[2,0],[0,-10],[5,0],[2,0],[7,5],[6,5],[7,5],[4,5],[-2,5],[0,10],[-4,10],[2,15],[-7,0],[-9,5],[-9,5],[-2,0],[-2,5],[0,10],[0,10],[0,20],[4,20],[5,10],[4,6],[5,-11],[4,0],[2,0],[0,-5],[5,-5],[0,-10],[0,-10],[13,0],[15,15],[5,-10],[4,-10],[5,5],[8,10],[7,5],[13,-5],[9,0],[7,-5],[4,-10],[7,-5],[0,-5],[-2,-5],[4,-5],[4,0],[-4,-20],[0,-10],[-4,-10],[-5,0],[-2,-5],[0,-5],[0,-5],[0,-5],[2,0],[0,-5],[2,-5],[3,-5],[0,-5],[2,-5],[9,-5],[-5,-25],[-4,-10],[0,-16],[13,-15],[2,-10],[5,-15],[8,-5],[3,10],[8,10],[7,10],[2,0],[2,5],[7,-5],[0,5],[7,10],[-5,11],[7,5],[9,15],[-3,5],[-2,0],[-6,0],[0,10],[2,10],[2,15],[-2,15],[-2,5],[-7,10],[2,15],[2,15],[0,10],[5,0],[0,10],[0,5],[13,10],[4,0],[3,-10],[4,-10],[0,-10],[-2,-5],[-5,-5],[7,0],[5,0],[6,-10],[5,-10],[6,-5],[2,5],[7,-10],[4,0],[3,0],[2,5],[6,0],[-2,-10],[5,-5],[0,-5],[2,-15],[-2,-5],[2,-10],[4,-10],[2,0],[5,-5],[0,-5],[-5,-5],[-6,-5],[2,-5],[0,-5],[2,0],[0,-5],[2,-6],[0,-5],[3,-5],[0,-5],[0,-5],[0,-5],[2,0],[0,-5],[0,-5],[0,-5],[2,0],[2,-5],[2,-5],[5,-5],[4,0],[2,5],[5,0],[2,5],[0,10],[4,5],[3,-5],[11,20],[4,-5],[7,10],[4,0],[7,-5],[4,5],[5,-10],[2,5],[4,0],[-2,-5],[7,0],[4,-10],[7,-5],[-5,-10],[13,-15],[3,-5],[8,-5],[3,-5],[-3,-10],[3,-10],[-5,-10],[-11,5],[-6,-5],[-7,0],[-2,-5],[-7,5],[-4,-10],[-5,-15],[-13,-10],[2,-10],[-4,-10],[-2,-20],[-2,-5],[2,-5],[4,-5],[5,-16],[4,-15],[0,-5],[7,5],[4,-5],[4,0],[-2,-5],[11,-5],[2,0],[7,-5],[4,-5],[3,-5],[-3,-5],[-6,-20],[0,-5],[-5,-10],[3,0],[-5,-25],[-6,-30],[2,-10],[2,-10]],[[6110,9421],[-7,0],[-8,-5],[-7,-5]],[[6088,9411],[-2,5],[0,5],[0,10],[-5,0],[-8,5],[2,25],[-9,15],[0,20],[-2,10],[-2,-5],[-3,5],[3,0],[-3,10],[0,5],[-6,10],[-3,0],[-4,0],[-2,0],[-2,-5],[-16,-10],[0,-5],[0,-5],[0,-5],[-4,0],[-5,0],[-4,0],[-7,5],[-2,0],[0,5],[5,5],[-11,5],[-7,0],[-4,-10],[-3,0],[-4,0],[-4,10],[-7,0],[4,-25],[18,-15],[7,-35],[-3,-5],[-4,5],[0,-10],[-2,-5],[-2,0],[-5,-5],[-4,-5],[0,-5],[-7,0],[-15,-5],[4,0],[0,-10],[5,-5],[4,0],[0,-5],[-2,-6]],[[6434,9230],[-7,-5],[-11,10],[-4,0],[-4,-5],[-5,-5],[-6,-25],[-16,5],[-9,10],[-4,5],[11,20],[9,20],[-2,0],[-3,5],[-2,0],[-6,5],[-5,0],[-6,5],[-3,0],[-2,5],[-2,5],[0,5],[0,5],[-2,10],[-3,0],[-2,5],[-2,5],[-2,0],[-5,10],[-6,5],[-5,0],[-2,0],[-2,0],[-4,5],[-3,0],[-6,5],[-7,5],[-2,0],[-2,0],[-2,0],[-3,0],[-4,-5],[-2,0],[-2,0],[-3,0],[-4,5],[-2,0],[-2,0],[-5,0],[-6,-10],[-7,0]],[[6260,9335],[-7,15],[0,5],[5,20],[2,10],[2,11],[2,10],[5,10],[6,0],[7,0],[9,5],[-9,15],[-2,0],[-5,0],[-11,5],[3,10],[-3,15],[-2,5],[-7,5],[-2,0],[-2,5],[-2,0],[-2,0],[-7,0],[-9,0],[-6,5],[-11,0],[-7,5],[-7,0],[3,10],[2,5],[0,10],[4,5],[-4,10],[0,5],[-2,5],[0,5],[0,5],[4,-5],[7,5],[4,10],[-2,10],[11,-5],[2,5],[0,5],[2,0],[2,5],[0,5],[3,6],[2,-6],[4,11],[7,-5],[2,10],[16,-10],[0,10],[-7,30],[7,0],[0,5],[11,5],[2,5],[2,0],[2,-5],[0,-10],[2,-20],[9,-5],[-2,0],[2,-5],[-2,-5],[-7,-5],[-6,-6],[0,-10],[6,5],[7,-5],[4,0],[3,-5],[11,-25],[13,5],[2,-5],[-2,-5],[-5,-5],[-8,-10],[0,-5],[8,-5],[0,-5],[3,0],[6,5],[7,0],[2,5],[4,10],[3,-5],[2,0],[13,-5],[0,-5],[5,0],[6,-5],[0,-20],[7,-20],[9,10],[6,0],[5,-5],[6,0],[11,5],[5,0],[2,-5],[4,5],[5,-5],[-3,-5],[-4,-5],[2,-10],[7,-5],[4,-10],[-2,-15],[-7,0],[-11,0],[-4,-5],[-4,-5],[-3,5],[7,10],[2,5],[-6,15],[-3,-10],[-4,-5],[0,10],[-4,5],[-9,-10],[-7,5],[-2,-20],[4,0],[7,5],[4,-10],[-2,-20],[-6,-5],[0,-11],[-5,0],[-2,-5],[2,-10],[-2,-10],[2,0],[2,0],[3,0],[2,0],[2,0],[0,-5],[2,0],[2,0],[3,0],[4,5],[9,-10],[6,-15],[9,-20],[5,-10],[4,-35],[2,-10],[-2,-5],[0,-20],[0,-5]],[[5746,8948],[2,-5],[5,-5],[4,5],[3,0],[4,0],[9,-10],[4,5],[11,-5],[2,5],[5,10],[6,15],[5,-5],[2,5],[4,21],[7,0]],[[8072,8134],[-11,0],[-18,0],[-26,-15],[0,10],[-29,-5],[-2,-5],[-7,0],[-9,0],[-4,15],[-2,5],[0,5],[-2,0],[-3,-5],[-2,5],[-4,0],[2,-10],[-7,-5],[0,-5],[-6,-5],[0,-10],[2,-5],[2,0],[5,-10],[4,5],[9,-10],[4,5],[0,-10],[9,-5],[-4,-5],[2,-5],[-16,-10],[3,-5],[8,0],[3,0],[2,5],[2,0],[5,-5],[2,0],[4,-5],[2,0],[5,0],[-2,-25],[6,0],[2,-10],[-13,-10],[7,-5]],[[7995,7999],[0,-5],[-13,-10],[-7,-5],[4,-10],[-6,0],[-11,-10],[0,-6],[-3,0],[-2,0],[0,-5],[-2,-5],[-7,0],[-2,0],[-4,-5],[-2,-5],[-3,0],[-2,0],[-2,0]],[[7933,7933],[-2,5],[-5,5],[-2,0],[-2,5],[-2,5],[-2,11],[-3,5],[0,5],[-2,0],[-9,15],[14,10],[6,0],[5,-10],[8,0],[5,5],[6,0],[5,-5],[0,-5],[0,-5],[2,-5],[11,5],[9,5],[0,25],[-5,5],[12,10],[-16,10],[-9,-5],[-4,5],[-2,10],[-3,-5],[-2,0],[-4,0],[0,5],[-7,5],[0,15],[-4,0],[2,20],[-4,-5],[0,5],[-11,5],[-3,10],[-8,5],[-9,5],[0,-20],[-5,-10],[-4,-5],[-7,-5],[-4,0],[-9,-5],[-7,-10],[9,-30],[-4,0],[-5,-5],[11,-10],[-2,-10],[7,5],[7,0],[-16,-15],[-7,-10],[-15,0],[-11,-20],[2,-26],[-9,-5],[3,-5]],[[7832,7923],[-3,-10],[-4,-15],[-4,-10],[2,-5],[-2,-15],[-5,0],[5,-5],[-3,-20],[0,-20],[5,-5],[-13,-25],[4,-5],[-4,-20],[2,-10],[-2,0],[4,-6],[-2,-5],[0,-10],[4,-20],[2,-35]],[[7818,7682],[-15,10],[-20,5],[-18,-15],[-28,0],[-16,15],[-22,25],[-2,0],[-4,5],[-2,5],[-5,-5],[-6,5],[-5,-5],[-4,20],[-5,11],[-2,5],[-2,5],[-2,10],[-3,0],[0,5],[0,5],[0,5],[3,5],[0,5],[-20,-15],[-7,10],[-15,-5],[-13,20],[-3,0],[-2,0],[-4,5],[-2,5],[2,0],[0,5],[2,0],[-2,0],[0,5],[-2,0],[0,5],[-3,0],[-2,-5],[-2,5],[0,5],[-2,0],[-2,0],[-3,5],[-2,0],[-2,0],[-2,0],[-3,-5],[-2,-5],[-2,0],[-2,0],[-2,0],[-3,-5],[-2,0],[0,5],[0,5],[-4,5],[-5,0],[-4,0],[-2,5],[0,5],[0,5],[2,0],[0,5],[0,5],[0,5],[-2,0],[-2,0],[-3,5],[-2,0],[-2,-5],[-2,0],[0,-5],[-2,-5],[-3,0],[-4,5],[-2,0],[-2,0],[-5,0],[-2,-5],[-2,0],[-7,5],[-4,0],[-2,-5],[-3,0],[-4,0],[-9,-5],[2,-5],[5,0],[0,-5],[2,-5],[2,0],[7,-10],[0,-5],[2,0],[0,-5],[0,-10],[0,-5],[-4,-5],[0,-5],[2,0],[0,-5],[0,-5],[2,-5],[0,-5],[2,0],[2,0],[0,-5],[-2,-5],[0,-5],[2,-5],[3,0],[0,-11],[4,-5],[2,-5],[0,-5],[-2,0],[-18,-10],[-11,-5],[-15,-15],[-2,-10],[6,-25],[-6,0],[-9,-5],[-7,-10],[-4,-5],[-7,-25],[-4,-25],[-31,-20],[-9,-10],[-2,-10],[0,-10],[2,0],[7,0],[0,-6],[6,-20],[-4,-5],[2,-10],[5,-20],[-7,-15],[4,-20],[-2,0],[0,-5],[-2,-5],[-2,-10],[-2,-10],[0,-10],[0,-5],[0,-5],[2,-5],[2,-5],[2,-5],[2,0],[3,-5],[0,-5],[2,-5],[2,-5],[7,-10],[22,-66],[2,-35],[20,-70]],[[7466,7190],[-25,0],[-15,-10],[-4,0],[-11,5],[-9,20],[-11,10],[-5,10],[3,5],[2,5],[0,5],[-2,5],[-3,0],[-4,0],[-18,-15],[-11,20],[-4,-5],[-5,5],[0,5],[-2,5],[-6,15],[-3,-5],[-8,0],[-7,0],[-2,5],[11,5],[-9,5],[-4,10],[-7,-5],[-9,0],[-6,-10],[-3,-10],[-15,-10],[0,5],[-2,5],[-3,0],[-8,5],[-3,0],[-2,0],[-2,0],[-7,-5],[-6,0],[-9,0],[-4,5],[-5,0],[-2,0],[-2,5],[-5,0],[-2,0],[-2,5],[-9,5],[-6,5],[-3,5],[-4,0],[-2,0],[0,5],[-2,0],[-3,5],[-2,5],[-6,5],[-5,5],[-2,0],[-2,5],[4,15],[20,21],[11,30],[0,10],[7,5],[-3,0],[-2,5],[-2,5],[0,5],[-2,5],[-2,5],[-3,5],[-4,5],[0,5],[-2,5],[4,30],[-9,25],[3,10],[-5,15],[0,10],[-6,6],[2,5],[2,5],[4,0],[3,0],[0,5],[2,5],[2,0],[2,0],[2,5],[5,0],[6,5],[3,0],[2,5],[4,5],[2,0],[3,0],[4,5],[2,5],[0,5],[-17,50],[-7,5],[-7,-5],[-4,0],[-4,0],[-3,-5],[-2,0],[-2,0],[-2,0],[-5,-5],[-6,-5],[0,15],[-16,30],[18,40],[-5,10],[-2,-10],[-6,-5],[-11,-10],[-3,30],[-6,16],[15,-6],[20,6],[2,5],[9,10],[0,15],[9,10],[4,15],[5,0],[0,5],[0,5],[-2,0],[-3,5],[3,5],[2,5],[0,5],[0,5],[-2,0],[-3,10],[0,5],[0,5],[0,5],[3,0],[0,5],[4,5],[0,5],[2,-5],[2,0],[7,0],[2,0],[2,0],[3,0],[2,0],[0,5],[2,0],[0,10],[2,0],[0,5],[-2,5],[0,5],[0,5],[0,5],[0,5],[-4,5],[2,0],[2,5],[2,0],[0,-10],[2,0],[0,5],[3,0],[2,-5],[2,0],[2,0],[5,10],[4,0],[2,5],[2,0],[3,0],[2,0],[2,0],[2,0],[2,5],[5,5],[2,0],[4,0],[3,0],[2,0],[2,-5],[0,-5],[2,0],[16,10],[6,-10],[5,0],[4,10],[16,-5],[0,-10],[8,5],[25,-10],[2,-5],[6,0],[14,-5],[9,5],[13,5],[13,5],[7,5],[4,10],[2,-5],[0,5],[2,0],[3,0],[2,0],[2,0],[2,0],[2,-5],[3,0],[2,0],[2,0],[0,-5],[2,0],[5,5],[4,0],[4,0],[12,5],[6,6],[5,0],[4,10],[2,-5],[2,-5],[5,0],[6,10],[3,5],[4,0],[2,5],[2,0],[3,5],[6,0],[2,5],[5,-5],[2,0],[2,5],[2,-5],[3,0],[2,0],[2,0],[2,0],[2,-5],[3,0],[2,5],[2,-5],[4,0],[5,-5],[2,0],[2,-5],[0,-5],[0,-5],[2,0],[0,-6],[5,0],[4,0],[3,0],[2,0],[2,0],[9,0],[15,11],[9,10],[7,0],[22,10],[8,15],[-4,0],[2,15],[5,-10],[4,15],[-7,20],[7,5],[4,10],[0,25],[-6,20],[2,0],[2,10],[2,5],[0,5],[3,5],[4,0],[0,-5],[5,0],[0,-5],[2,0],[4,5],[2,0],[3,0],[2,0],[2,-5],[4,-5],[3,-5],[4,0],[2,5],[-2,0],[2,5],[2,0],[7,5],[4,0],[5,0],[4,5],[2,5],[5,5],[2,5],[2,0],[5,5],[2,0],[9,0],[6,5],[2,-5],[3,0],[2,0],[4,5],[2,0],[5,5],[13,5],[0,6],[13,5],[9,10],[11,10],[2,5],[7,5],[4,0],[3,0],[2,0],[4,5],[2,5],[3,0],[4,0],[2,0],[0,-5],[5,0],[2,5],[0,5],[2,5],[2,0],[2,0],[3,0],[2,0],[2,0],[-9,15],[-2,15],[0,10],[4,5],[5,10],[7,15],[22,5],[2,-10],[6,0],[0,-10],[-2,-5],[0,-5],[9,5],[7,5],[0,-5],[11,5],[8,-5],[0,-5],[11,0],[11,0],[12,0],[15,-5],[11,-15],[0,-5],[15,5],[3,-15],[15,-15],[11,-5],[4,-10],[22,-10],[3,-5],[17,-15],[3,-11],[-3,-10],[-8,-5],[-18,-10]],[[7818,7682],[0,-15],[0,-35],[-2,-35],[-4,-5],[2,0],[0,-5],[-2,-5],[-5,-41],[-11,-30],[7,-35],[-9,-10],[-6,-10],[2,-15],[-5,-20],[-2,-20],[2,-15],[-6,-20],[-9,-10],[-5,-11],[-6,-15],[-2,-10],[-5,-10],[-13,-20],[-4,-10],[-9,-15],[-7,-5],[-13,-15],[-13,-20],[-13,-15],[-5,-10],[-11,-5],[-15,-15],[-3,0],[-13,5],[-9,-10],[-28,-41],[-11,-5],[-11,0],[-22,-15],[-27,31],[-13,20],[-31,5],[-13,15],[-2,5]],[[7933,7933],[-4,-10],[0,-5],[-11,-5],[-7,10],[-4,0],[4,15],[-4,5],[0,5],[-20,-5],[-9,-5],[-22,-10],[-24,-5]],[[8072,8134],[-11,-15],[-9,0],[-4,-10],[-16,-15],[-26,-20],[2,-5],[2,-5],[-2,-10],[11,-5],[0,-5],[7,-5],[-3,-5],[9,0],[5,-5],[6,-10],[-11,-5],[-9,-10],[-13,5],[-15,-10]],[[6586,7828],[5,10],[8,10],[5,5],[2,0],[2,0],[2,5],[5,20],[9,-5],[6,5],[2,-5],[7,30],[9,0],[-2,10],[4,10],[0,10],[2,10],[2,0],[0,5],[-2,5],[2,6],[-4,10],[-2,0],[2,10],[2,0],[7,25],[11,5],[2,-5],[13,0],[5,15],[0,20],[2,10],[0,15],[-4,10],[2,5],[-2,15],[-5,5],[5,0],[8,0],[9,10],[0,10],[2,5],[9,-5],[16,5],[4,-10],[4,10],[11,10],[3,15],[4,10],[13,-25],[7,5],[7,10],[6,-10],[-6,-15],[8,10],[3,5],[-3,0],[-2,5],[0,5],[2,0],[0,5],[11,-5],[5,10],[0,-5],[2,5],[-2,6],[4,0],[0,5],[13,-5],[-2,5],[7,-5],[9,0],[-5,15],[5,0],[4,-5],[4,5],[-17,15],[-2,0],[0,5],[-5,5],[-6,5],[0,5],[-11,5],[-3,0],[-8,5],[-7,5],[-2,-5],[-11,10],[-7,5],[-2,10],[7,5],[2,5],[-2,15],[-3,5],[5,5],[-11,10],[-11,5],[-9,5],[-11,5],[-5,5],[7,10],[-7,5],[0,20],[-4,-5],[-2,10],[-5,0],[5,5],[2,5],[0,11],[2,-5],[7,5],[0,10],[-2,5],[4,5],[11,5],[7,-10],[13,10],[4,-5],[7,10],[9,5],[2,-5],[11,20],[-2,5],[4,0],[2,0],[0,-5],[11,-15],[5,0],[0,-10],[9,0],[4,-15],[9,10],[-2,5],[8,15],[5,-10],[4,0],[9,10],[7,0],[2,-5],[4,5],[7,10],[4,0],[7,-15],[-2,-5],[2,-5],[-2,-5],[4,-5],[9,-31],[18,11],[2,10],[2,-5],[9,-5],[20,0],[-3,-6],[5,0],[4,-15],[5,0],[9,0],[6,5],[-2,16],[4,0],[7,0],[18,10],[11,-10],[11,15],[13,0],[2,0],[4,5],[7,10],[9,35],[-5,15],[12,20],[2,0],[0,-10],[2,-5],[2,15],[7,-5],[-2,-5],[-5,-20],[9,-10],[2,-5],[2,0],[5,0],[4,5],[-2,5],[7,0],[4,-30],[13,10],[9,-10],[0,-10],[9,5],[4,-5],[25,0],[-7,-10],[2,-21],[-2,0],[7,-5],[-3,-10],[9,-5],[5,15],[6,11],[5,-6],[11,6],[6,-6],[2,6],[9,-6],[-2,-10],[11,0],[4,0],[5,-5],[9,0],[4,-20],[11,-5],[0,5],[13,-5],[11,0],[9,10],[11,5],[13,5],[3,10],[4,10],[4,0],[9,-5],[2,-10],[3,0],[0,-5],[17,0],[5,-10],[0,5],[9,5],[2,0],[2,5],[2,5],[2,0],[3,5],[0,5],[2,6],[13,10],[9,25],[4,0],[-2,5],[0,5],[-2,5],[0,5],[2,5],[0,5],[-2,5],[-2,5],[0,5],[-3,0],[-2,5],[-2,0],[-2,0],[0,-5],[-5,-5],[-2,-5],[-2,0],[-2,0],[-2,0],[0,5],[2,10],[-2,5],[-3,0],[5,20],[11,5],[2,-5],[4,15],[0,5],[-13,0],[-17,30],[-3,-10],[3,0],[0,-10],[-9,0],[-3,-15],[-6,5],[-7,-10],[0,-5],[-13,5],[0,-5],[-4,-5],[-3,0],[-2,0],[-2,0],[-11,10],[-9,0],[-6,20],[2,0],[4,0],[7,5],[6,-5],[0,-10],[5,0],[0,20],[6,0],[5,20],[-7,15],[2,0],[3,0],[2,0],[2,0],[4,5],[11,5],[3,0],[2,0],[2,6],[11,0],[5,10],[8,0],[11,-21],[3,0],[2,5],[0,11],[-5,15],[5,5],[6,0],[-4,5],[4,5],[5,0],[9,0],[2,-10],[11,-5],[2,10],[15,-5],[3,0],[4,15],[0,-25],[-4,-15],[4,0],[7,-21],[2,0],[2,0],[2,0],[3,0],[2,0],[4,0],[2,0],[3,0],[2,0],[4,0],[2,0],[0,-20],[-2,0],[-2,0],[-2,-5],[-2,0],[-3,0],[-2,-5],[-2,0],[-2,0],[-5,-10],[5,-5],[-11,-20],[-9,0],[-2,0],[-3,-20],[0,-10],[3,0],[2,10],[4,5],[11,-10],[14,-5],[8,-5],[0,10],[5,10],[13,-10],[9,-10],[2,5],[9,0],[2,-5],[0,-20],[-2,-10],[-9,0],[-2,-5],[-2,-5],[13,-10],[-5,-5],[-2,0],[-2,-10],[-4,-10],[13,5],[6,5],[7,0],[4,-5],[3,-5],[6,-16],[2,0],[5,0],[2,-5],[4,-10],[0,-15],[14,-5],[2,10],[2,5],[5,10],[2,10],[-5,5],[5,11],[-2,5],[6,5],[0,10],[5,10],[0,15],[8,0],[7,5],[0,10],[7,5],[11,-5],[2,5],[2,5],[4,15],[9,5],[2,5],[3,5],[2,5],[2,0],[2,0],[5,5],[147,201]],[[7818,8687],[27,-50],[37,-5],[42,5],[24,-161],[0,-5],[-2,-20],[0,-5],[5,-15],[2,-5],[4,-15],[11,-15],[11,-15],[7,-5],[2,-5],[16,-41],[6,-20],[0,-5],[2,-5],[5,-20],[2,-5],[2,-5],[0,-5],[7,0],[4,-5],[5,0],[2,0],[0,5],[4,0],[0,10],[2,5],[3,10],[0,10],[4,0],[2,0],[2,-5],[5,-10],[2,0],[4,-25],[3,-5],[4,-5],[2,-5],[5,-5],[6,-5],[9,0],[13,0],[9,-5],[11,0],[13,-5],[9,-5],[2,0],[3,-5],[2,0],[2,-5],[2,-5],[0,-5],[0,-5],[-4,-10],[-13,-20],[-11,-21],[-3,-5],[0,-5],[-2,-5],[0,-5],[2,-10],[0,-5],[3,-5],[6,-30],[2,-15],[0,-5],[0,-25],[3,-35],[0,-5],[0,-15],[6,-5],[5,-10],[2,-6],[0,-5],[2,0],[0,-5],[7,-10],[13,-10],[4,-5],[3,0],[4,-5],[4,-10],[0,-10],[0,-20],[0,-10],[-2,-10],[-6,-15],[-7,-15],[-9,-15],[-2,-5],[-9,-10],[-15,-5],[-3,0],[-6,0],[-7,0],[-2,0],[-4,0],[-16,-5],[-9,-5],[-4,0],[-2,0],[-2,-5],[-5,5],[-11,-15],[-13,-31],[-16,-25],[-8,-15],[-5,-15],[-2,-5],[-4,-25],[-3,-10],[-2,-20],[-6,-35],[-5,-25],[-4,-16],[0,-5],[-5,-15],[-6,-15],[-9,-10],[0,-5],[-18,-20],[-9,-5],[-2,-5],[-17,-25],[-3,0],[-2,-5],[-2,-5],[0,-5],[-2,-5],[0,-5],[-2,-20],[-3,-5],[-4,-25],[-2,-5],[-2,-5],[-3,-6],[-8,-10],[-9,-10],[-11,-10],[-7,-10],[-2,-5],[0,-10],[0,-25],[-2,-5],[-3,-15],[-17,-80],[-2,-10],[-20,-51],[-13,-35],[-3,-10],[-4,-15],[-2,-20],[0,-15],[-2,-10],[-7,-20],[-13,-46],[-2,-10],[-3,-30],[-4,-30],[0,-15],[0,-15],[9,-60],[4,-20],[7,-26],[9,-25],[11,-25],[6,-15],[5,-20],[8,-40],[5,-50],[4,-36],[7,-60],[0,-15],[-2,-15],[-7,-45],[-4,-5],[-5,-10],[-22,-25],[-24,-36],[-24,-20],[-11,-15],[-5,-10],[-2,-5],[0,-10],[9,-45]],[[7759,6200],[4,-15],[9,-25],[7,-20],[4,-10],[11,-21],[33,-80],[2,-5],[5,-30],[2,-5],[2,-10],[2,-5],[5,-10],[2,-5],[2,-10],[2,-5],[3,-5],[11,-20],[2,-6],[4,-10],[42,-80],[-11,-15],[-13,5],[-20,-10],[-4,0],[-9,-10],[-7,-15],[5,-15],[-3,-5],[0,-40],[-28,-11],[-5,-25],[-6,5],[-5,-25],[-4,-15],[0,-10],[-7,-5],[3,-5],[-16,-10],[-2,-30],[-13,-20],[-5,-25],[2,-25],[20,-21],[-13,-20],[-15,-10],[-9,-25],[-9,-5],[2,-15],[5,-30],[-7,-25],[-24,0],[-5,0],[0,-10],[5,-15],[-5,-20],[-2,-10],[-9,-11],[-17,31],[-7,5],[-11,25],[-11,5],[-7,10],[-8,5],[-5,0],[-2,5],[-4,0],[-11,10],[-9,0],[-7,0],[-9,0],[-2,5],[-2,0],[-4,0],[-9,10],[-11,10],[-11,5],[-31,0],[-16,-5],[-30,15],[-9,-10],[-9,20],[-20,0],[-18,-5],[-8,0],[-11,20],[-7,5],[-13,0],[-7,-5],[-18,10],[-4,0],[-11,-10],[-13,10],[-11,0],[-18,-15],[-24,20],[-5,25],[-11,16]],[[7699,8456],[-2,-15],[5,-5],[-5,-15],[5,-5],[0,-5],[8,0],[-2,-10],[7,0],[9,-5],[13,-5],[-5,-20],[0,5],[7,5],[4,5],[9,5],[2,5],[3,0],[2,0],[0,5],[-2,5],[-5,5],[-4,5],[-2,5],[-3,5],[-2,5],[-4,0],[-5,5],[-13,5],[-9,5],[-2,0],[-6,10],[-3,0]],[[7499,8491],[-7,5],[-2,5],[-2,5],[2,5],[7,0],[4,-5],[-2,-15]],[[7060,1768],[-13,0],[-31,45],[-7,5],[-8,21],[-3,20],[-26,60],[-18,25],[-48,35],[-2,5],[-9,40],[0,21],[-7,30],[-2,10],[-9,0],[-4,-5],[-7,20],[11,10],[5,110],[-14,41],[-17,25],[-3,15],[-11,30],[-8,50],[2,15],[11,10],[9,30],[8,21],[5,5],[4,5],[7,30],[-7,20],[-13,25],[-4,15],[4,10],[9,15],[-9,20],[9,25],[-2,15],[4,0],[24,21],[14,10],[2,15],[9,25],[2,30],[-2,20],[0,15],[4,10],[-4,20],[-5,35],[-9,26],[9,35],[11,20],[-9,15],[-4,20],[26,20],[-2,35],[-26,71],[-2,25],[2,0],[0,10],[-5,25],[9,20],[2,15],[3,20],[4,25],[-2,15],[-20,41],[0,20],[-13,15],[-11,10],[-29,-20],[-15,5],[-7,10],[-13,10],[6,15],[-4,15],[-2,5],[-11,10],[-2,10],[2,10],[-16,40],[-11,10],[-9,20],[-4,26],[2,30],[-4,25],[-2,20],[-7,5],[0,15],[11,10],[2,20],[-4,10],[-5,40],[14,36],[-5,15],[9,20],[0,20],[7,25],[6,15],[5,5],[0,15],[4,20],[16,5],[-5,10],[5,10],[-3,10],[-13,16],[-6,10],[0,30],[-14,-5],[-6,10],[-9,10],[-11,0],[-11,25],[-11,15],[-22,5],[-27,-15],[-24,-30],[-15,5],[-9,-5],[-5,40],[7,35],[-13,60],[-11,11],[-2,-11],[0,-30],[-20,-25],[-2,0],[-18,10],[-13,0],[-5,10],[-4,0],[-9,-15],[-15,-5],[-5,-10],[-6,-5],[-5,-20],[5,-30],[22,-45],[-5,-5],[2,-20],[-17,-26],[-11,-10],[-20,-15],[-13,-15],[-22,-10],[-5,-10],[-28,-10],[-9,-10],[-11,-5],[-24,-35],[-25,5],[-4,20],[0,15],[-64,-40],[-35,25],[-51,30],[-7,-5],[-8,5],[-9,10],[-11,-15],[-16,-5],[-24,25],[-7,-10],[-6,-10],[-7,0],[-2,-10],[-29,15],[-2,15],[-2,10],[-5,0],[-6,10],[-11,-5],[-16,0],[-11,-5],[-4,0]],[[7759,6200],[0,15],[13,5],[0,-15],[4,-15],[5,0],[2,10],[11,25],[7,-5],[6,-5],[3,0],[2,15],[9,-5],[17,0],[5,5],[6,15],[31,10],[20,10],[9,-5],[4,-10],[7,-5],[6,-10],[3,-10],[2,-30],[6,-10],[7,0],[11,10],[9,10],[9,0],[11,5],[6,-5],[16,10],[9,10],[4,0],[4,10],[5,0],[4,0],[7,15],[9,-5],[4,-5],[18,-30],[13,-5],[4,-5],[3,0],[0,-5],[2,0],[9,0],[13,5],[4,5],[5,5],[2,5],[4,20],[2,5],[3,0],[15,-5],[9,0],[2,-5],[2,0],[7,5],[4,5],[2,0],[12,-5],[4,0],[2,5],[7,5],[4,5],[2,0],[7,0],[0,-5],[0,-5],[0,-5],[13,-15],[0,-5],[2,0],[5,0],[4,-5],[2,-5],[9,-5],[5,0],[4,0],[4,5],[9,5],[0,-5],[2,-5],[-6,-10],[2,-10],[13,-10],[9,-5],[5,-5],[13,0],[2,0],[26,-10],[7,0],[0,5],[0,-5],[2,-5],[7,0],[0,-10],[4,-5],[7,-5],[4,0],[13,5],[9,0],[3,0],[13,5],[11,0],[13,0],[7,-5],[4,0],[0,-5],[4,-6],[3,0],[4,-5],[0,-5],[4,-10],[3,0],[4,-5],[4,-5],[11,-5],[9,-15],[0,-5],[3,0],[11,-15],[11,0],[15,-10],[2,-5],[13,-20],[5,0],[6,-10],[7,0],[2,5],[0,5],[2,0],[5,0],[6,5],[14,0],[4,5],[5,5],[2,5],[2,10],[2,10],[2,0],[3,0],[4,-5],[2,0],[9,0],[18,-5],[2,0],[2,0],[4,-15],[3,0],[-3,-5],[-6,-5],[-2,-5],[-3,-5],[-8,-5],[-3,0],[3,-5],[2,-10],[2,-10],[0,-10],[4,0],[14,-10],[2,-5],[15,-10],[0,-5],[0,-20],[0,-6],[2,-5],[3,-10],[0,-5],[2,-5],[-2,-10],[-7,-5],[-7,-10],[-4,-10],[4,-10],[-4,-5],[-9,-20],[-6,-10],[-3,-10],[3,-5],[0,-5],[0,-10],[-9,-15],[-2,-10],[13,-25],[4,-5],[-2,-21],[-2,-5],[-5,-10],[3,-10],[2,-35],[9,-5],[-5,-10],[-2,0],[0,-5],[-4,-10],[2,0],[6,0],[11,-10],[22,-5],[7,-10],[5,-10],[0,-5],[2,0],[2,0],[2,-5],[2,0],[9,0],[2,0],[7,0],[7,-5],[0,-5],[2,-10],[2,0],[15,-20],[29,-21],[7,0],[15,-5],[5,11],[4,0],[4,0],[14,5],[6,-11],[2,-10],[9,5],[11,5],[2,11],[9,-5],[5,0],[4,-21],[0,-25],[7,0],[6,0],[7,-15],[15,-5],[7,-5],[4,-5],[9,-5],[9,10],[11,0],[7,5],[0,-5],[2,-5],[4,-10],[2,-5],[5,0],[2,-5],[4,-5],[11,-35],[7,-5],[7,0],[4,-10],[2,-5],[5,-15],[4,-5],[5,0],[6,-10],[7,-10],[-5,-21],[-2,-5],[2,-5],[3,-30],[8,-10],[5,0],[0,-5],[4,0],[31,5],[22,-10],[7,5],[13,-10],[-2,-5],[0,-10],[0,-10],[0,-5],[0,-5],[13,-15],[9,-20],[6,-20],[14,5],[15,15],[2,5],[2,5],[5,5],[6,5],[12,-10],[11,0],[13,5],[2,5],[2,0],[5,15],[4,-5],[11,0],[4,0],[5,-10],[2,-5],[11,15],[13,0],[2,0],[7,15],[2,0],[5,0],[4,0],[7,10],[4,5],[2,10],[16,15],[9,20],[11,5],[11,-10],[33,10],[9,-5],[22,0],[-5,15],[2,15],[-2,21],[2,0],[0,5],[5,15],[0,25],[-2,5],[-5,10],[-2,5],[-7,5],[0,15],[-2,5],[0,15],[7,5],[2,5],[7,15],[6,55],[2,11],[0,5],[3,0],[4,10],[2,10],[0,10],[0,25],[0,5],[0,20],[38,-10],[8,0],[3,0],[9,-5],[24,-15],[26,-15],[7,-5],[2,0],[7,-10],[6,25],[5,0],[2,0],[13,5],[16,0],[2,20],[0,5],[-2,5],[-11,15],[-3,5],[-4,10],[-5,10],[0,10],[3,10],[2,15],[0,5],[0,5],[2,5],[2,0],[7,5],[7,5],[15,0],[9,10],[4,21],[0,25],[0,5],[2,5],[3,10],[4,10],[4,20],[11,25],[0,5],[0,15],[9,5],[7,30],[0,5],[4,5],[14,5],[11,0],[24,-5],[22,36],[2,5],[4,5],[5,5],[2,0],[4,0],[5,-5],[17,-15],[3,-11],[0,-10],[2,-5],[2,-10],[7,-10],[4,0],[2,-5],[5,-15],[2,-5],[7,-10],[6,0],[5,-5],[4,-5],[9,-10],[0,-5],[4,-5],[2,-5],[-2,-15],[0,-5],[0,-5],[-4,-10],[-2,-10],[0,-5],[-3,-10],[0,-5],[0,-5],[0,-5],[3,0],[4,-10],[2,0],[2,-5],[3,0],[2,0],[6,0],[3,-6],[2,0],[4,0],[2,0],[5,-5],[4,-5],[5,0],[4,0],[7,-5],[2,0],[7,0],[6,0],[2,-5],[3,-5],[2,0],[6,-5],[7,-5],[4,-5],[3,0],[4,-5],[2,-5],[2,-5],[3,-10],[11,-10],[2,-5],[4,0],[7,0],[9,-5],[-3,-10],[-2,0],[0,-5],[5,-5],[-5,-10],[0,-10],[2,-5],[3,-10],[0,-5],[0,-5],[0,-5],[-3,-10],[0,-5],[0,-5],[0,-5],[-2,-5],[0,-5],[0,-5],[0,-11],[-2,0],[-2,-10],[-2,0],[-3,0],[-2,-5],[-2,0],[-2,-5],[0,-5],[0,-5],[-2,-15],[0,-5],[0,-5],[-3,-5],[-2,-5],[0,-5],[0,-5],[0,-5],[0,-10],[0,-10],[-2,0],[0,-5],[-4,-10],[-3,-5],[-2,-5],[-2,-5],[-4,-5],[-5,-10],[-2,-5],[7,-10],[4,-10],[-2,-15],[4,-15],[0,-6],[0,-15],[-2,-15],[0,-5],[-2,-5],[-2,-15],[0,-5],[0,-5],[4,-25],[4,-30],[-6,-5],[-11,-35],[4,-10],[0,-15],[-6,-10],[-7,5],[-2,-16],[-5,-10],[7,-25],[-9,-15],[0,-20],[5,-5],[-7,-25],[-11,-40],[-4,-5],[0,-10],[-20,-15],[-9,-5],[-11,0],[-2,-10],[-5,-5],[2,-5],[-4,-21],[-7,0],[0,-5],[14,-10],[2,-10],[9,-10],[0,-10],[2,-5],[9,-20],[6,-15],[0,-25],[5,-25],[-3,-40],[-2,-11],[-15,6],[-29,-41],[-24,-20],[0,-10],[-24,-25],[6,-15],[11,-10],[5,-25],[9,-15],[8,-10],[-2,-20],[-2,-15],[-2,-16],[-16,-15],[-11,0],[-22,-80],[-11,-10],[-9,-5],[-4,-5],[2,-5],[5,-15],[8,-25],[5,-25],[-2,-21],[6,-35],[-4,-10],[2,-20],[4,0],[5,-10],[0,-20],[9,-15],[4,-25],[-4,-10],[4,-10],[16,-10],[24,15],[50,5],[7,10],[35,-40],[3,0],[46,-81],[11,-10],[7,0],[-3,-20],[-13,-30],[4,-35],[-6,-30],[2,-10],[7,-6],[-11,-40],[4,-20],[-9,-10],[-9,-20],[0,-15],[-4,-5],[-2,-20],[9,-30],[-16,-46],[0,-10],[2,-10],[-13,-10],[-15,-5],[0,-20],[-7,-10],[-9,-20],[-33,30],[-6,20],[-25,30],[-11,21],[-8,0],[-31,-31],[-7,-5],[-9,5],[-11,10],[-11,16],[-9,0],[-8,10],[-5,5],[-6,5],[-16,10],[-24,0],[-2,-15],[-3,-21],[-17,-25],[-9,-5],[-18,30],[-11,16],[-13,-21],[-6,0],[-11,-5],[-7,10],[-16,0],[-11,6],[-4,10],[2,15],[2,15],[-6,15],[-7,20],[-6,25],[-22,15],[-9,5],[-7,20],[-13,-5],[-22,-30],[-18,20],[-4,15],[-7,55],[0,11],[2,10],[7,20],[7,20],[8,10],[9,25],[7,10],[-5,10],[-26,50],[-11,25],[-2,26],[2,15],[-2,5],[-5,-5],[-4,-5],[0,-5],[-7,0],[-6,-5],[-5,-11],[-4,0],[-4,-5],[-3,-5],[-2,-5],[0,-5],[-4,-5],[0,-10],[0,-5],[-5,-15],[-4,-10],[-20,20],[-29,10],[-2,5],[0,5],[2,5],[-22,-10],[-42,-40],[-8,0],[-5,0],[-13,-5],[-18,-20],[-15,0],[-2,-15],[-5,0],[-13,-15],[-33,10],[-13,20],[-11,0],[-7,-30],[0,-10],[5,-10],[-7,-15],[-2,-20],[9,-26],[4,-15],[-11,-25],[-4,-20],[-38,-10],[2,-20],[11,-20],[-6,-20],[-9,-10],[-13,-10],[-5,-20],[-4,-25],[-9,-6],[-4,-15],[-33,-10],[-5,-20],[0,-5],[5,-15],[15,-20],[-7,-15],[7,-30],[-7,-50],[-8,-10],[-11,-5],[4,-31],[11,-20],[-7,-20],[-2,-10],[0,-20],[7,-10],[-11,-30],[0,-20],[4,-5],[13,-25],[3,-31],[4,-5],[-4,-25],[-11,-15],[0,-5],[-7,-5],[-4,-15],[0,-15],[-7,-10],[7,-20],[19,-10],[3,-5],[8,5],[5,-15],[0,-30],[4,-20],[9,-11],[15,11],[7,5],[7,-5],[6,-16],[-2,-10],[5,-10],[24,10],[11,-10],[9,0],[4,20],[7,0],[6,16],[18,-11],[4,16],[18,10],[4,5],[5,-5],[4,-10],[22,-5],[0,-6],[9,-20],[2,-35],[0,-10],[5,-5],[11,10],[4,5],[7,0],[15,-45],[-9,-10],[-2,-10],[4,-60],[-4,-20],[-13,-11],[-16,5],[-4,0],[-9,0],[-17,-20],[-16,-20],[0,-15],[-4,-25],[6,-30],[3,-15],[-14,-5],[-11,-15],[-11,-20],[-11,0],[0,-5],[0,-36],[-6,-15],[-3,-25],[0,-20],[18,-50],[9,-45],[15,-10],[20,-30],[13,-6],[-2,-20],[18,-30],[15,-5],[2,-5],[7,-20],[-7,-20],[18,-15],[-2,-25],[2,-10],[2,0],[0,-20],[11,-5],[9,-15],[9,-46],[-2,-15],[-53,-75],[-11,-50],[-31,-25],[-7,5],[-13,-11],[-9,6],[-22,5],[-13,10],[-9,0],[-9,5],[-13,-5],[-9,-10],[-8,-5],[-23,-41],[-6,5],[-5,10],[-6,0],[-9,26],[-7,0],[-8,15],[-7,-5],[0,5],[-11,10],[2,5],[9,10],[11,15],[0,30],[7,10],[0,15],[8,5],[-4,40],[-7,5],[5,5],[-9,46],[-22,15],[-11,15],[-7,5],[-17,20],[-42,15],[-29,20],[-9,55],[3,5],[6,0],[5,20],[6,0],[0,15],[-2,5],[-4,0],[-5,11],[9,15],[0,15],[-11,5],[-11,20],[-11,15],[-11,10],[6,25],[7,30],[9,20],[2,10],[11,10],[-2,15],[2,6],[-4,0],[4,25],[-4,5],[-20,0],[-2,5],[-14,20],[-8,5],[-7,15],[-15,15],[-18,50],[7,20],[-14,5],[-42,-20],[-4,-5],[-4,-10],[2,-15],[0,-5],[-13,-10],[-5,25],[-6,5],[-7,-10],[-20,55],[-17,-15],[-9,-5],[-20,-20],[-7,0],[0,-10],[-9,-15],[-26,-25],[-7,10],[-4,-5],[-2,0],[-11,0],[-7,-5],[-11,10],[-7,-15],[-8,0],[-5,0],[-4,-5],[-11,0],[-2,0],[-3,-15],[-8,-15],[-20,-25],[-7,0],[-13,-10],[-16,-21],[-19,-5],[-11,-10],[-7,0],[-15,-30],[-18,5],[-18,15],[-15,36],[-18,10],[-9,20],[-8,-10],[-5,5],[-31,-51],[11,-40],[-11,-10],[0,-10],[-8,-10],[-5,-15],[2,-10],[11,-5],[7,-5],[0,-35],[-2,-10],[-16,-25],[-6,-41],[0,-15],[-2,-10],[-27,-10],[-18,15],[-11,-5],[-15,20],[-2,15],[-11,15],[-11,-15],[-5,-20],[-11,5],[-9,-5],[-6,-5],[-5,-10],[-8,0],[-3,-5],[0,-10],[-11,-5],[-6,-10],[-13,-5],[-27,10],[-4,0],[-7,-5],[-20,40],[-6,-5],[-18,10],[-13,-10],[-7,5],[-15,-5],[-2,5],[-11,5],[-9,15],[-5,0],[-9,10],[-6,0],[-5,15],[-4,11],[-7,0],[-4,0],[-11,-21],[-26,36],[-5,10],[-4,5],[-7,15],[-2,5],[-5,10],[-4,5],[-4,15],[-14,25],[0,5],[0,5],[0,10],[-4,5],[-4,0],[-3,5],[0,10],[0,5],[-4,5],[-2,20],[0,15],[-2,5],[0,6],[-3,10],[0,10],[0,5],[-2,5],[-4,5],[-5,10],[-4,5],[-7,30],[-8,15],[-25,10],[-9,20],[-6,0],[-7,5],[-22,10],[-4,10],[4,20],[-4,15],[9,10],[6,26],[-4,10],[0,30],[-5,40],[-6,20],[-2,15],[-9,15],[-5,25],[9,56],[-2,25],[9,25],[-5,20],[3,25],[-3,30],[0,30],[11,15],[5,16],[-5,50],[-4,5],[-26,0],[-3,20],[27,5],[4,65],[-4,35],[4,15],[0,6],[-9,-6],[-8,-15],[-47,-35],[-11,-25],[-9,-20],[3,-15],[-5,-20],[0,-30],[-13,-15],[-11,-31],[-9,0],[-24,16],[-4,10],[-14,5],[-4,30],[-7,5],[0,10],[-6,0],[-5,10],[-4,0],[-9,25],[-7,0],[-4,35],[2,10],[7,5],[0,25],[-11,5],[-9,21],[-4,5],[-16,-31],[-9,5],[-26,-5],[-5,10],[-57,-10],[-13,-15],[-9,0],[-22,-20],[-18,0],[-8,-25],[0,-20],[-11,-20],[2,-10],[4,-15],[-2,-40],[-4,-5],[-3,-21],[5,-15],[6,-10],[-4,-10],[-9,-20],[-15,-20],[-7,-5],[-11,-5],[-13,0],[-5,-10],[-4,0],[4,-45],[-2,-25],[5,-10],[8,-15],[16,-21],[7,-15],[8,-5],[5,-10],[6,10],[5,0],[4,-25],[7,0],[2,-15],[0,-15],[4,-20],[-8,-10],[6,-5],[-4,-20],[-9,-15],[7,-30],[4,-10],[7,-6],[0,-10],[-7,-10],[-2,-15],[-5,0],[3,-10],[-3,-10],[-6,-5],[4,-10],[-2,-20],[4,-5],[11,-45],[16,-5],[13,-5],[4,-15],[-2,-15],[7,-31],[-16,-30],[-2,-10],[2,-20],[9,-20],[5,0],[-7,-20],[-2,-30],[-2,-5],[-20,-15],[-7,-25],[5,-15],[0,-41],[-27,-40],[-9,-40],[-19,-20],[0,-25],[-5,-20],[-15,-15],[4,0],[2,-21],[-9,-30],[5,-25],[-7,-20],[5,-15],[0,-25],[-5,-25],[-4,-10],[-16,0],[-8,5],[-22,-15],[-9,-5],[4,-26],[-6,-15],[-3,-35],[-11,-15],[-15,-5],[-11,-10],[-9,-45],[0,-15],[-7,-10],[0,-25],[7,-10],[-7,-15],[0,-26],[-17,-20],[-11,-25],[-20,5],[-11,5],[-16,-5],[-4,-5]],[[3875,8647],[0,5],[2,0],[2,0],[2,5],[3,0],[2,5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[5,0],[4,5],[2,0],[5,0],[22,5],[6,0],[3,0],[2,0],[4,0],[2,0],[0,5],[3,0],[2,0],[2,0],[0,5],[2,0],[2,5],[3,5],[2,0],[2,5],[4,0],[3,0],[4,5],[2,0],[2,0],[5,5],[2,0],[2,0],[2,5],[3,0],[2,0],[2,0],[2,0],[2,0],[7,5],[4,0],[3,0],[2,0],[2,0],[0,5],[2,0],[2,0],[3,0],[2,5],[2,0],[2,0],[3,5],[2,0],[4,5],[2,0],[3,0],[0,5],[2,0],[0,5],[0,5],[2,5],[2,0],[0,5],[0,5],[2,0],[3,0],[0,5],[2,0],[0,6],[2,0],[2,0],[0,5],[2,0],[3,5],[2,0],[2,0],[0,5],[2,0],[2,0],[0,5],[3,0],[0,5],[2,5],[2,5],[0,10],[0,5],[2,0],[0,5],[0,5],[0,5],[0,5],[2,5],[0,5],[3,5],[2,10],[0,5],[2,5],[0,5],[2,0],[2,0],[3,5],[2,0],[2,0],[2,0],[2,0],[3,0],[4,-5],[4,0],[3,0],[2,0],[2,0],[0,-5],[2,0],[3,-5],[2,-5],[2,-5],[2,0],[0,-5],[2,0],[3,0],[2,0],[2,0],[4,0],[3,0],[2,0],[2,0],[2,5],[2,0],[3,0],[2,0],[2,0],[2,5],[5,5],[2,0],[2,0],[0,5],[2,0],[2,5],[3,0],[2,5],[2,0],[2,0],[2,0],[5,0],[4,0],[2,5],[3,0],[2,0],[2,0],[4,0],[3,0],[2,-5],[2,0],[2,0],[2,0],[5,5],[4,0],[3,0],[2,0],[2,0],[2,0],[2,-5],[3,0],[2,0],[2,0],[2,0],[0,-5],[2,0],[3,0],[0,-5],[2,0],[4,-5],[2,-5],[3,-5],[2,-5],[2,0],[2,-5],[2,0],[0,-5],[3,0],[2,-5],[2,-10],[2,0],[2,-5],[3,-15],[2,-5],[2,-5],[0,-5],[0,-5],[2,0],[0,-5],[-2,-5],[0,-5],[0,-5],[-2,0],[-2,-11],[-3,-5],[0,-5],[-2,0],[0,-5],[0,-5],[2,0],[0,-5],[0,-5],[0,-5],[3,-5],[0,-5],[2,-5],[0,-5],[2,0],[0,-5],[2,0],[2,-5],[3,0],[0,-5],[2,0],[2,-5],[2,0],[2,0],[0,-5],[3,0],[2,0],[2,0],[4,0],[5,0],[2,0],[2,0],[5,0],[2,0],[2,0],[2,0],[3,0],[2,0],[0,-5],[4,0],[5,-5],[4,0],[0,-5],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[2,0],[0,5],[3,0],[2,5],[2,5],[0,5],[2,0],[0,5],[0,5],[2,5],[0,5],[0,5],[0,5],[0,5],[3,0],[0,5],[2,0],[2,5],[2,0],[0,5],[2,0],[3,0],[2,0],[2,0],[2,0],[2,0],[3,0],[4,-5],[4,-5],[3,0],[2,0],[2,0],[2,0],[2,0],[3,-5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[4,0],[5,0],[2,0],[2,0],[2,5],[3,0],[2,0],[2,0],[2,0],[2,0],[3,0],[6,0],[2,0],[5,0],[2,0],[2,0],[2,0],[3,0],[2,0],[6,-5],[3,0],[2,0],[2,-5],[4,-5],[3,0],[0,-5],[2,0],[2,0],[0,-5],[2,0],[2,0],[5,0],[2,-5],[2,0],[3,0],[2,5],[2,0],[2,0],[2,0],[0,5],[3,0],[2,0],[4,0],[2,0],[5,0],[2,0],[2,5],[2,0],[5,0],[2,0],[2,0],[2,5],[3,0],[2,0],[2,0],[7,5],[2,0],[0,5],[2,0],[2,5],[2,5],[3,0],[2,0],[2,5],[2,5],[2,0],[5,5],[0,5],[2,0],[0,5],[2,0],[2,5],[3,-5],[2,0],[2,0],[2,5],[3,0],[2,0],[2,0],[2,6],[2,0],[3,-6],[2,0],[2,0],[2,-5],[2,-5],[3,-5],[2,0],[2,-5],[2,0],[0,-5],[2,0],[3,0],[0,-5],[4,0],[2,0],[0,-5],[2,0],[3,0],[2,0],[2,0],[0,5],[2,0],[2,0],[3,0],[2,0],[2,0],[2,5],[2,0],[3,5],[2,0],[2,5],[2,5],[2,0],[0,5],[3,0],[0,5],[2,6],[0,5],[2,5],[0,10],[0,5],[0,5],[0,5],[0,5],[0,5],[2,5],[0,5],[0,5],[2,0],[0,5],[3,5],[2,5],[2,0],[0,5],[4,5],[3,0],[0,5],[2,0],[2,0],[2,5],[3,0],[2,0],[2,0],[2,0],[5,0],[8,-5],[3,0],[2,0],[2,0],[2,0],[2,5],[5,0],[4,0],[2,0],[3,0],[2,0],[2,0],[2,0],[0,5],[2,0],[0,5],[0,5],[0,5],[0,5],[0,5],[0,5],[3,0],[2,5],[2,0],[2,0],[2,0],[0,5],[3,0],[2,5],[2,0],[2,5],[2,0],[3,0],[2,0],[2,5],[2,0],[2,0],[3,0],[2,-5],[2,0],[2,0],[5,-5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[0,5],[2,0],[3,5],[2,0],[2,5],[0,5],[2,0],[0,5],[2,5],[3,0],[0,5],[2,5],[2,0],[2,0],[2,5],[3,0],[2,0],[6,5],[3,0],[2,0],[0,6],[2,0],[2,5],[2,5],[0,5],[3,5],[2,5],[2,5],[2,10],[0,5],[2,0],[0,5],[3,5],[2,0],[0,5],[2,0],[2,5],[2,5],[3,0],[2,0],[0,5],[2,0],[5,0],[0,5],[2,0],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[2,0],[3,-5],[2,0],[2,0],[2,0],[2,-5],[3,0],[2,-5],[2,0],[2,0],[0,-5],[2,0],[0,-5],[0,-5],[3,0],[0,-5],[0,-5],[2,-5],[0,-5],[0,-5],[0,-5],[2,-5],[0,-5],[0,-5],[2,0],[0,-5],[2,0],[3,0],[2,0],[2,0],[2,5],[2,5],[3,0],[0,5],[2,0],[2,10],[2,0],[0,5],[2,0],[0,5],[3,0],[2,5],[2,0],[2,0],[2,0],[0,-5],[3,0],[2,0],[2,0],[2,5],[2,0],[3,0],[2,0],[4,5],[5,0],[2,5],[2,0],[2,0],[5,0],[2,0],[2,0],[2,0],[3,-5],[0,-5],[2,-5],[0,-5],[2,0],[0,-5],[2,0],[2,-5],[3,0],[2,0],[2,5],[2,0],[2,0],[3,0],[2,0],[2,0],[4,5],[3,0],[2,0],[2,0],[2,5],[2,0],[3,0],[0,-5],[4,0],[2,0],[2,0],[3,0],[2,0],[2,-5],[2,0],[2,0],[3,-5],[2,0],[4,-5],[3,0],[2,-5],[2,-5],[2,0],[0,-5],[-2,-6],[0,-5],[0,-5],[-2,-10],[0,-5],[-2,-10],[0,-5],[0,-5],[0,-5],[0,-5],[2,-5],[2,-5],[0,-5],[2,-5],[2,-5],[3,-5],[2,0],[0,-5],[2,0],[2,0],[2,-5],[3,0],[4,0],[2,-5],[2,0],[3,0],[2,-5],[2,-5],[2,0],[2,-5],[3,0],[0,-5],[2,-5],[2,0],[2,-5],[0,-5],[2,-5],[3,0],[2,-5],[2,-5],[2,-5],[2,0],[3,-5],[2,0],[2,0],[2,-5],[2,0],[3,0],[2,0],[2,0],[4,0],[3,-5],[2,0],[2,0],[7,0],[2,0],[2,5],[2,0],[3,0],[2,0],[4,0],[5,0],[4,0],[7,-5],[2,0],[4,0],[2,0],[3,0],[2,0],[2,0],[2,-5],[2,0],[3,0],[2,0],[2,0],[2,0],[5,-5],[2,0],[2,0],[2,0],[5,0],[4,0],[2,-5],[2,0],[3,0],[2,0],[2,-5],[4,0],[0,-5],[3,0],[0,5],[2,0],[2,5],[0,5],[2,0],[0,5],[0,5],[3,5],[0,5],[2,0],[0,5],[2,0],[0,5],[2,0],[0,5],[2,0],[3,5],[2,0],[2,5],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[2,-5],[3,0],[2,0],[2,0],[0,-5],[2,0],[2,0],[5,-5],[4,-5],[2,-5],[3,0],[2,0],[2,-5],[2,0],[5,-5],[2,0],[6,-5],[5,-5],[2,0],[2,0]],[[5982,9380],[2,0],[3,0],[0,5],[2,0],[2,0],[2,6],[2,0],[3,0],[2,0],[0,5],[2,0],[2,5],[2,0],[0,5],[5,5],[2,0],[4,5],[0,5],[3,0],[0,5],[2,0],[0,5],[2,0],[2,0],[2,0],[3,0],[2,0],[4,-5],[5,0],[2,-5],[2,0],[2,-5],[5,0],[0,-5],[2,0],[2,0],[2,-5],[3,0],[2,0],[2,0],[2,0],[2,-5],[3,0],[0,5],[2,0],[2,0],[2,0],[2,0],[3,0],[2,0],[2,5]],[[6110,9421],[4,0],[3,0],[2,0],[2,0],[2,0],[2,0],[3,-5],[2,0],[4,0],[2,0],[0,-5],[3,0],[2,0],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[2,0],[5,0],[2,-5],[2,0],[2,0],[3,0],[2,0],[2,0],[0,-5],[2,0],[2,0],[3,-5],[4,0],[2,0],[0,-5],[2,0],[3,0],[2,-6],[2,0],[2,0],[0,-5],[2,0],[3,0],[0,-5],[2,0],[0,-5],[2,-5],[2,0],[0,-5],[2,0],[3,0],[2,-5],[4,0],[2,-5],[3,0],[2,-5],[4,-5],[2,0],[3,0],[2,-5],[2,0],[2,0],[2,-5],[3,0],[2,0],[2,0],[2,0],[2,0],[3,0],[2,5]],[[6434,9230],[4,0],[3,0],[2,0],[4,0],[2,0],[3,0],[0,-5],[2,0],[2,-5],[2,-5],[2,0],[5,-5],[2,-5],[5,-5],[2,0],[0,-5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[4,0],[5,5],[2,0],[2,0],[2,5],[5,0],[2,5],[2,0],[2,0],[5,0],[0,5],[4,0],[2,0],[3,0],[2,0],[4,5],[9,5],[11,5],[2,0],[2,5],[3,0],[11,0],[4,0],[2,0],[3,0],[0,5],[2,0],[2,0],[7,5],[2,5],[4,0],[7,10],[4,0],[2,5],[7,5],[4,0],[5,5],[2,5],[2,0],[2,0],[3,5],[2,0],[2,5],[4,5],[3,5],[2,0],[2,5],[4,5],[5,5],[2,5],[2,0],[2,5],[3,0],[2,5],[2,0],[5,5],[4,0],[11,10],[4,5],[3,5],[4,0],[2,0],[5,5],[2,0],[2,5],[4,0],[7,5],[7,5],[4,5],[4,0],[5,5],[2,0],[2,0],[5,0],[0,6],[2,0],[2,0],[2,0],[5,0],[2,0],[0,-6],[2,0],[2,0],[5,0],[11,-5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[7,0],[4,0],[2,0],[5,0],[2,0],[2,0],[4,0],[3,0],[2,0],[2,-5],[2,0],[2,0],[3,0],[2,0],[2,-5],[2,0],[2,0],[3,0],[2,-5],[2,0],[2,-5],[2,0],[3,0],[2,-5],[2,-5],[2,0],[3,0],[2,0],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[4,0],[7,0],[2,0],[2,0],[3,0],[2,0],[6,0],[5,0],[2,0],[2,0],[7,-5],[4,-5],[2,0],[3,0],[2,-5],[2,0],[2,-5],[2,0],[3,-5],[2,0],[2,-5],[2,-5],[2,-5],[3,0],[2,-5],[2,0],[0,-5],[7,-5],[4,0],[2,0],[0,-5],[3,0],[2,0],[2,0],[2,0],[2,0],[3,0],[2,0],[0,-5],[2,0],[2,0],[2,0],[3,0],[2,0],[2,0],[2,-5],[2,0],[3,0],[2,-5],[2,0],[2,0],[2,0],[3,0],[0,5],[2,0],[2,0],[0,5],[4,5],[3,0],[0,5],[2,0],[2,0],[2,0],[2,0],[0,-5],[3,0],[6,0],[5,-5],[2,0],[0,-5],[2,0],[0,-5],[2,0],[0,-5],[0,-5],[2,0],[3,-5],[2,-5],[4,-5],[3,-5],[4,-5],[2,-5],[2,-5],[5,0],[6,5],[3,-10],[13,10],[2,0],[9,5],[17,-5],[16,-5],[2,0],[68,10],[31,10],[18,0],[26,-15],[391,-307],[17,-25],[110,-216]],[[7759,8396],[-2,0],[-3,0],[-2,-5],[-9,-5],[-4,-5],[-7,-5],[0,-5],[5,20],[-13,5],[-9,5],[-7,0],[2,10],[-8,0],[0,5],[-5,5],[5,15],[-5,5],[2,15],[3,0],[6,-10],[2,0],[9,-5],[13,-5],[5,-5],[4,0],[2,-5],[3,-5],[2,-5],[4,-5],[5,-5],[2,-5],[0,-5]],[[5354,3185],[-7,40],[9,10],[-2,20],[15,11],[0,5],[-4,5],[-2,15],[-7,15],[2,10],[18,35],[-7,35],[0,15],[7,-5],[9,0],[4,-10],[22,5],[7,10],[13,-10],[27,20],[24,-10],[4,10],[16,55],[8,0],[9,16],[13,35],[9,10],[7,15],[11,10],[0,15]],[[7060,1768],[-4,-40],[-16,-5],[-13,-15],[-7,-15],[-13,-10],[-4,-15],[-13,-25],[-14,-51],[-9,0],[-8,0],[-18,-15],[-9,-15],[-2,-10],[-7,0],[-17,-10],[-9,-10],[-13,-10],[-16,-15],[5,-15],[13,-50],[20,-76],[0,-15],[-11,-40],[-5,-10],[-8,-10],[0,-35],[0,-15],[-9,-15],[-31,-6],[-11,6],[-11,0],[-11,-16],[-11,0],[-24,-30],[-16,0],[-4,-5],[-7,-10],[-2,-15],[4,-10],[-2,-10],[-18,-30],[-4,-35],[4,-15],[18,-31],[13,-25],[5,-75],[6,-35],[-11,-5],[-2,-15],[-7,-10],[-2,0],[-11,5],[-4,-5],[0,-25],[-5,-5],[-2,-5],[-9,-6],[-19,0],[2,-30],[-2,-10],[-7,5],[-2,-5],[-2,-5],[-3,10],[0,-15],[11,-20],[44,-25],[3,-50],[4,-10],[-11,-25],[7,-15],[11,-5],[4,-11],[-7,-50],[18,5],[7,-15],[15,0],[13,10],[7,-15],[7,-10],[2,-5],[-2,-5],[4,0],[7,0],[4,0],[7,0],[2,0],[-2,-20],[19,-20],[0,-10],[5,-5],[0,10],[7,5],[8,-10],[0,-10],[-4,-15],[4,-36],[22,16],[5,-5],[-5,-11],[5,-10],[-9,-5],[-7,-20],[-8,0],[-3,-5],[7,-10],[-7,-10],[3,-10],[-14,-15],[-13,-35],[-2,5],[-18,-5],[-4,-5],[0,-10],[-5,-10],[3,-10],[-5,-5],[-6,-20],[0,-20],[4,-16],[2,-10],[-9,-5],[7,-5],[-13,-10],[-2,-15],[-7,0],[-4,-15],[0,-5],[-7,-5],[0,-10],[4,-25],[-8,-15],[2,-5],[-5,-30],[-4,0],[9,-10],[-7,-10],[-6,0],[-16,5],[-7,-15],[-2,-5],[-31,10],[-13,15],[-9,-5],[-2,5],[5,10],[2,35],[4,0],[-2,15],[-7,-5],[-8,5],[2,5],[-9,15],[-11,-15],[-13,5],[-3,-5],[3,-5],[-7,-15],[-2,5],[-5,-5],[-6,15],[-13,5],[2,15],[-13,15],[0,5],[-7,0],[-9,5],[-4,-5],[-18,-10],[-11,-10],[-4,-10],[0,-5],[-7,-5],[0,-10],[-18,5],[-19,-15],[4,55],[40,96],[15,15],[13,15],[-4,10],[-2,5],[-11,-10],[-7,15],[2,5],[-6,65],[-11,35],[-7,0],[-2,20],[-2,0],[-3,5],[5,5],[4,16],[0,10],[-11,30],[-9,25],[-4,20],[-13,0],[-27,45],[-6,25],[0,25],[9,26],[0,65],[-7,20],[-27,-10],[-13,10],[-15,10],[-9,20],[-11,5],[-13,20],[-11,15],[-5,15],[-6,10],[0,10],[-2,6],[-3,5],[-2,0],[-2,5],[-11,10],[-7,15],[-17,0],[-9,0],[-5,0],[-8,15],[-5,-5],[-2,0],[-9,5],[-15,0],[-7,5],[-7,0],[-2,0],[0,-5],[-2,-5],[-4,-5],[-9,0],[15,95],[9,20],[20,51],[31,15],[17,45],[5,40],[6,-5],[5,15],[-16,15],[16,20],[20,-15],[24,71],[-7,70],[-11,0],[-11,20],[-20,15],[-15,35],[-2,-5],[-5,10],[-2,5],[0,5],[-2,5],[-7,0],[0,5],[-6,10],[-5,5],[-15,15],[-9,-20],[-4,-10],[-38,-5],[-13,15],[-7,10],[-13,10],[-2,0],[-7,0],[-6,0],[-5,5],[-6,16],[-31,85],[-40,-60],[-20,-66],[-37,20],[-9,5],[-7,0],[-4,0],[-2,0],[-5,0],[-2,11],[-2,5],[-2,0],[-2,5],[0,10],[-5,0],[2,5],[0,5],[-4,5],[-4,-5],[-5,0],[-4,0],[-5,-5],[-4,0],[-24,20],[-5,15],[-17,35],[-60,-5],[-20,0],[0,5],[-4,20],[0,30],[-11,10],[-5,15],[-15,26],[-7,0],[3,5],[-3,5],[3,10],[6,5],[7,5],[0,5],[0,15],[2,0],[7,5],[-3,10],[-6,0],[-11,0],[-7,5],[-4,0],[-2,0],[-3,0],[3,10],[-5,5],[2,5],[-4,10],[-4,0],[-5,0],[-6,-5],[-3,0],[-2,5],[-4,5],[-5,5],[-6,60],[-14,36],[-11,10],[-11,0],[3,5],[-5,25],[-26,30],[-11,30],[-7,70],[-24,20],[-11,-10],[-7,0],[-9,10],[-17,21],[-20,15],[-13,5],[-20,0],[-22,15],[-5,15],[-2,25],[-2,20],[-7,0],[-13,10],[-17,5],[-7,5],[-2,15],[-2,10],[4,5],[4,15],[5,0],[0,15],[17,15],[-13,51],[-35,70],[0,20],[-13,30],[4,15],[5,5],[19,10],[-4,16],[7,15],[-3,30],[7,15],[22,10],[4,30],[9,10],[11,25],[-2,15],[0,40],[-4,46],[4,10],[2,10],[11,20],[-6,30],[-3,60],[-11,36],[22,45],[-15,35],[-2,15],[11,30],[-11,30],[-11,10],[-2,15],[0,10],[6,31],[-4,5],[0,15],[2,10],[11,10],[4,20],[-2,10],[-9,5],[3,25],[-11,10],[-9,10],[-2,20],[-5,15],[-9,10],[-15,-5],[-2,5],[-16,-5],[-22,-10],[-9,-10],[-6,0],[-16,-5],[-11,-15],[-13,0],[-6,-15],[-9,5],[-9,-5]],[[6637,728],[4,-5],[16,0],[6,45],[-4,5],[-2,20],[4,36],[-2,0],[-22,5],[-20,-96],[20,-10]],[[628,2642],[-62,46],[-13,10],[-11,0],[-5,5],[-4,20],[-7,5],[-11,-5],[-4,0],[-2,5],[-7,10],[-9,10],[-13,-15],[4,-10],[-11,-10],[5,-15],[4,-5],[13,-5],[12,-20],[6,5],[2,-5],[5,-5],[2,5],[4,0],[-4,-26],[24,-25],[0,5],[7,-10],[55,-35]],[[608,2577],[-27,-95]],[[581,2482],[-46,-141],[-62,50],[-24,20],[-15,5],[-5,10],[-22,20],[-13,21],[-2,10],[-13,15],[2,5],[-7,5],[2,5],[-2,0]],[[374,2507],[-2,10],[4,10],[9,10],[0,10],[7,15],[2,0],[2,20],[5,5],[2,0],[0,10],[-5,5],[3,5],[2,5],[-2,0],[2,5],[2,0],[2,5],[7,5],[4,0],[0,5],[7,5],[7,16],[0,5],[4,5],[7,10],[2,5],[0,15],[2,20],[2,0],[2,10],[20,30],[0,5],[-11,25],[-6,10],[-5,25],[-2,5],[-4,-10],[-3,0],[-4,-5],[-9,0],[-31,56],[-48,60],[-2,-5],[4,-10],[-2,0],[-11,10],[-7,5],[-13,25],[-4,20],[-69,30],[-6,5],[13,45],[9,16],[2,20],[20,40],[2,5],[2,10],[-4,20],[-20,30],[4,20],[-9,15],[3,15],[-3,15],[9,11],[44,70],[36,141],[17,35],[38,70],[11,-15],[2,0],[20,45],[-9,10],[15,30],[-39,66],[-60,95],[24,35],[9,25],[29,41],[7,5],[15,20],[11,10],[15,30],[11,0],[20,20],[9,10],[2,20],[20,25],[5,0],[11,15],[0,10],[11,21],[-3,0],[9,10],[5,-5],[4,5],[11,25],[9,5],[0,5],[4,10],[2,0],[18,15],[13,35],[51,75],[24,31],[0,10],[5,5],[2,0],[-5,5],[0,15],[3,0],[17,20],[11,15],[29,20],[4,0],[20,25],[38,35],[9,0],[30,20],[16,21],[6,5],[5,15],[6,10],[7,15],[11,-5],[4,5],[12,5],[-3,25],[-6,0],[4,5],[11,5],[9,0],[11,0],[2,5],[9,15],[7,15],[-3,15],[-6,10],[15,25],[13,15],[7,-5],[4,0],[25,16],[15,5],[13,15],[3,0],[17,30],[-2,5],[2,10],[0,5],[22,30],[7,5],[0,25],[13,45],[-35,51],[-16,15],[0,5],[-8,50],[22,20],[-3,40],[7,40],[37,101]],[[1110,5195],[12,-5],[2,-15],[35,-5],[64,35],[9,5],[17,10],[11,10],[22,40],[18,10],[13,20],[16,6],[9,10],[15,15],[11,5],[26,20],[14,0],[11,0],[17,15],[7,0],[13,10],[13,0],[14,0],[6,15],[36,70],[2,25],[33,36],[13,10],[37,30],[80,50],[-2,-10],[2,-10],[4,-5],[-13,-75],[0,-51],[9,-5],[42,-50],[0,-15],[-5,-35],[0,-5],[3,0],[2,5],[0,-5],[-2,-25],[-14,-56],[16,20],[31,-5],[6,-10],[51,-80]],[[2005,5481],[67,81]],[[2788,2567],[-44,-80],[-27,-46],[0,-45],[18,-30],[-6,-5],[2,-10],[-11,-5],[-9,-10],[6,-50],[0,-10],[-11,-10],[-6,-5],[-2,5],[-5,-5],[-13,-26],[0,-10],[-7,-5],[-15,-30],[-15,-5],[-7,-20],[-2,-25],[-2,-5],[-12,-10],[-4,-5],[-7,-10],[-11,-5],[-11,0],[-8,0],[-3,0],[-2,-20],[-4,-20],[-2,-20],[4,-6],[-7,-5],[-8,-20],[-3,-10],[-15,-25],[-9,-10],[-18,-15],[-17,-25],[-18,-10],[-4,-5],[-5,5],[-11,5],[-15,-10],[-11,-15],[-13,-10],[-3,-5],[-6,-5],[-9,-5],[-9,-5],[-2,-5],[-13,-5],[-2,-5],[-3,5],[0,5],[0,5],[-2,0],[-2,5],[-2,10],[-7,10],[-2,10],[-4,15],[-5,0],[-2,10],[-2,0],[-5,5],[-2,5],[-2,0],[-4,5],[0,10],[0,5],[-5,10],[0,10],[0,10],[0,10],[-2,10],[0,5],[0,10],[-2,0],[-3,5],[-4,0],[-2,0],[-2,5],[-3,5],[0,11],[0,5],[0,5],[0,5],[-2,5],[0,5],[-2,5],[-9,15],[-2,0],[0,5],[-2,10],[-2,5],[-3,10],[-2,5],[0,5],[-4,5],[-2,0],[0,5],[0,5],[-3,20],[0,5],[-2,5],[-9,15],[-8,10],[-14,25],[-4,5],[-2,5],[-7,16],[-4,5],[-3,5],[0,10],[-2,30],[0,5],[-2,10],[-2,10],[-2,10],[-3,0],[-6,15],[-5,10],[-11,10],[-2,5],[-6,5],[-5,5],[-6,5],[-5,10],[-4,10],[0,5],[0,5],[0,10],[0,5],[-2,11],[-3,5],[0,10],[0,10],[-2,5],[0,5],[-2,10],[0,5],[0,15],[0,10],[0,5],[0,10],[0,5],[0,5],[-2,10],[-2,10],[-5,10],[-6,10],[-5,10],[-4,5],[-2,5],[-3,5],[-2,0],[-2,0],[0,5],[-5,0],[-4,-5],[-2,0],[-2,0],[-5,0],[-6,0],[-5,0],[-6,0],[-3,0],[-2,0],[-2,0],[-2,5],[-2,0],[-3,5],[-2,5],[-6,26],[-5,10],[-2,5],[-4,5],[-3,0],[-2,5],[-2,5],[-2,5],[0,5],[0,5],[0,5],[9,30],[0,5],[2,5],[0,15],[-2,10],[0,5],[0,10],[-3,10],[-2,5],[-2,10],[-2,0],[-2,5],[-5,5],[-4,5],[-2,0],[-3,0],[-2,5],[-4,5],[-5,10],[-2,5],[-4,11],[-9,15],[-2,0],[-3,10],[-4,5],[-84,165]],[[1906,3059],[-306,136],[-359,10],[-205,-201],[-201,-60],[-181,-221],[-26,-81]],[[1847,4612],[-2,-10],[-5,-5],[0,-10],[-6,-10],[0,-5],[11,-10],[6,0],[9,5],[4,-5],[5,5],[4,0],[7,0],[4,5],[13,25],[25,10],[4,0],[7,0],[11,-10],[17,-25],[14,-10],[11,0],[4,0],[7,-5],[2,5],[4,-5],[7,15],[-5,5],[3,10],[-3,5],[0,5],[23,55],[4,10],[9,20],[-5,10],[-8,11],[2,10],[-11,10],[-9,10],[-7,15],[-2,0],[-4,-5],[-3,0],[-2,0],[0,-5],[-2,0],[-2,10],[4,5],[0,10],[-6,10],[-3,10],[-4,10],[-7,0],[3,10],[-7,5],[-7,-20],[7,0],[-11,-30],[-7,-10],[-8,-10],[-18,-25],[-2,-10],[4,0],[-2,-5],[-16,-31],[-2,-15],[-13,-15],[4,-10],[-2,-5],[-4,-5],[-5,0],[-2,0],[-2,0],[-4,-5],[-3,0],[-2,-5],[-4,10],[-13,-15],[-3,10],[-4,-5],[-2,5]],[[471,2653],[-6,-16],[11,-10],[2,0],[0,5],[-2,5],[0,5],[2,5],[2,6],[2,5],[16,-16],[4,11],[-18,25],[-4,-10],[-2,0],[-7,-15]],[[2144,5702],[161,171],[84,-35]],[[5354,3185],[-9,-5],[-4,0],[-9,10],[-9,0],[-9,-5],[-22,-20],[-6,-10],[-7,-25],[-18,-20],[-4,-15],[-7,-10],[-11,-10],[-11,-16],[-4,-10],[-9,0],[-7,0],[-8,-10],[-9,0],[-7,15],[-9,-15],[-4,-10],[-4,-20],[-5,-15],[-11,-20],[-9,-5],[5,-10],[4,0],[5,-10],[8,0],[11,-10],[5,-5],[9,10],[2,-10],[11,-15],[2,-10],[0,-10],[-7,-15],[0,-15],[11,-16],[-8,-10],[-3,-20],[-2,-15],[-13,-10],[-11,5],[-13,-25],[-18,-20],[-11,-15],[-20,15],[-22,-15],[-6,-15],[8,-20],[-2,-5],[5,-20],[-14,-15],[7,-15],[-7,-6],[-15,6],[-9,-6],[0,-20],[-18,-5],[-4,0],[-7,5],[-8,-15],[-18,-20],[2,-5],[-6,-15],[2,-5],[0,-10],[4,-5],[-6,-15],[-16,-15],[0,-20],[-9,-15],[3,-15],[-16,-20],[-13,-21],[-11,5],[-16,-10],[-17,-15],[-9,0],[-31,-10],[-9,5],[-20,20],[-15,5],[-7,0],[-24,-35],[-4,-5],[-11,-10],[-5,-25],[-6,-15],[-5,-15],[-15,-5],[-20,-45],[-24,-20],[0,-26],[-5,-5],[-6,0],[2,-15],[13,-20],[27,-5],[4,-15],[18,0],[6,-55],[7,-15],[9,0],[9,-30],[19,-20],[14,0],[8,-71],[18,-45],[2,-30],[-2,-5],[4,-25],[9,-5],[18,-41],[0,-25],[-15,-15],[-3,-25],[-13,-20],[-2,-20],[0,-20],[6,-15],[0,-30],[5,0],[-11,-36],[-13,-20],[-11,-10],[-7,10],[-22,-10],[-26,-25],[2,-15],[-2,-15],[2,-10],[-2,-25],[-9,-10],[-3,-10],[-4,-10],[-18,0],[-4,-10],[-4,0],[-14,-10],[-8,0],[-11,-5],[-7,0],[-15,5],[-20,-15],[-7,-5],[-20,0],[-11,-11],[-22,0],[-2,-10],[2,-20],[-9,-25],[0,-15],[-2,-30],[-15,-30],[2,-15],[-2,-10],[4,-15],[0,-20],[9,-36],[9,-45],[4,-5],[2,-10],[-6,-10],[-16,-5],[-6,-10],[-22,-40],[4,-5],[9,-25],[-16,-31],[5,-15],[-2,-20],[-11,-5],[-14,5],[-2,-20],[-13,-30],[0,-10],[-11,-20],[-26,15],[-7,0],[-13,-5],[-11,0],[-7,-5],[-4,-5],[-20,10],[-18,-5],[-17,-5],[-7,5],[-7,0],[-17,-5],[-22,5],[-7,-10],[0,-10],[-4,-20],[-7,-5],[-13,-30],[-2,-16],[-36,-30],[0,-5],[5,-10],[2,-30],[-7,-10],[0,-10],[-6,-10],[6,-20],[-2,-25],[-13,-5],[-7,-56],[7,-15],[13,-35],[-9,-30],[-4,-5],[-11,0],[-5,-15],[-13,20],[-17,-5],[-20,10],[-9,0],[-11,15],[-22,10],[-7,0],[-11,-15],[-9,-5],[-13,-20],[-9,-10],[-13,15],[-4,20],[-11,15],[-22,15],[-18,35],[-40,16],[-6,5],[-11,-46],[-16,-20],[-2,-20],[-33,0],[-15,25],[-3,20],[-8,10],[4,66],[-7,15],[-11,10],[-11,10],[-17,0],[-16,10],[-9,20],[-2,20],[-6,10],[-14,35],[-8,10],[-11,5],[-7,0],[-4,-10],[-9,0],[-14,-15],[-15,-10],[-37,10],[-14,0],[-8,-15],[-36,10],[-15,0],[-13,20],[0,25],[-5,26],[-9,10],[-17,0],[-11,-5],[-27,0],[-4,-5],[-5,-5],[-4,-21],[-4,-20],[2,-25],[6,-45],[-6,-25],[-11,-10],[-7,10],[-15,0],[-11,5],[-11,25],[-5,-5],[-9,-15],[-8,0],[-9,5],[-11,15],[-7,-10],[0,-15],[-9,-10],[-8,0],[-22,-15],[-7,-10],[-7,-15],[5,-40],[2,-16],[-7,-15],[-6,0],[-9,5],[-13,5],[-7,-15],[-22,-5],[-9,-15],[-2,-5],[-15,-40],[-16,-25],[-11,0],[-2,-15],[-13,-5],[-9,-10],[-11,0],[-9,10],[-9,-15],[0,-15],[-15,-31],[-18,-10],[-15,21],[-5,5],[-17,10],[-11,-5],[-11,20],[0,20],[-11,5],[-16,15],[-26,-20],[-18,-5],[-13,10],[-5,25],[-22,5],[-8,-5],[-9,15],[-7,10],[-9,-10],[-4,-10],[-9,-15],[0,-10],[-9,-25],[-9,-35],[-13,-5],[-31,-61],[-8,0],[-3,20],[-6,5],[-20,-15],[-16,5],[-8,5],[-7,-10],[-7,0],[-11,-5],[-4,-10],[0,-15],[-11,-10],[-2,-5],[-9,-5],[-4,-15],[-9,-5],[-5,-30],[0,-15],[7,-20],[-9,-15],[-13,-5],[-16,5],[-11,15],[-8,0],[-29,40],[0,10],[7,5],[-3,10],[-6,10],[-7,5],[-9,0],[-15,-10],[-13,-10],[-3,-5],[-6,0],[-7,-10],[-2,-20],[-7,-5],[-6,-10],[-9,-5],[-11,-20],[-9,0],[-2,-5],[-11,0],[-11,5],[-5,0],[-6,10],[-5,30],[-2,10],[-6,10],[4,10],[0,10],[-20,35],[-11,10],[-9,25],[3,25],[-9,0],[-7,15],[-13,11],[0,10],[0,35],[-7,20],[-17,10],[-5,15],[-4,5],[-2,5],[-3,5],[-2,0],[-2,5],[-7,45],[-6,10],[-7,25],[2,16],[0,15],[5,5],[0,10],[-5,30],[3,5],[-3,5],[-4,5],[-26,10],[-11,10],[-3,5],[-17,40],[2,20],[2,0],[9,10],[13,5],[5,10],[0,5],[0,5],[-3,6],[-4,5],[0,10],[-9,15],[-9,0],[0,10],[0,15],[-4,15],[2,10],[-11,20],[-2,0],[-9,-10],[-2,0],[-9,5],[-11,15],[-2,0],[-9,5],[-2,5],[0,5],[0,10],[-9,50],[0,10],[-22,31],[-9,25],[-9,0],[-17,55],[-11,50],[-16,-5],[-9,10],[-4,10],[-2,0],[-2,5],[0,10],[4,10],[-2,11],[4,5],[0,5],[-2,5],[-9,10],[-2,-10],[-9,-5],[-9,5],[-13,-31],[-7,-10],[-2,-10],[-4,-5],[-2,0],[0,-10],[-5,-5],[-4,-5],[-27,-10],[-6,-15],[-2,-15],[-9,15],[-9,-5],[-15,20],[0,5],[-7,15],[0,20],[18,66],[6,10],[9,10],[7,5],[-7,25],[7,15],[2,15],[-7,10],[-2,10],[-11,25],[0,5],[7,10],[2,5],[2,10],[7,16],[6,20],[2,5],[-4,25],[7,25],[2,15],[6,10],[-2,5],[-2,0],[-7,0],[-11,5],[-17,-10],[-5,0],[-8,15],[-16,-5],[-20,5],[-20,5],[-17,10],[-2,15],[-7,5],[-44,-10],[-9,-10],[-4,15],[-5,0],[-2,5],[-4,15],[-3,5],[-13,-10],[-6,10],[-7,56],[-11,30],[7,30],[-3,15],[31,50],[2,25],[11,15],[0,5],[-11,71],[-6,35],[9,40],[4,5],[0,10],[7,5],[8,25],[7,5],[4,10],[-2,36],[0,10],[14,10],[8,0],[14,35],[2,20],[4,15],[9,5],[7,5],[11,10],[6,15],[0,20],[11,36],[-2,40],[13,30],[0,5],[-2,10],[0,5],[-9,15],[-2,5],[0,10],[0,5],[-2,0],[-9,5],[-4,0],[-3,-10],[-8,0],[-5,5],[-2,15],[-9,5],[-9,10],[-4,15],[-7,0],[-4,5],[-2,10],[4,16],[-11,30],[-9,5],[-4,10],[-7,5],[-9,10],[-8,10],[-3,5],[-8,-5],[-3,0],[-2,0],[-2,5],[-4,25],[-3,5],[5,10],[-5,10],[-2,10],[-17,-5],[-7,5],[-2,0],[0,15],[-7,25],[-4,15],[-9,16],[-7,15],[-4,25],[4,30],[9,15],[11,10],[24,5],[20,40],[7,10],[4,15],[0,15],[-4,5],[-5,16],[3,25],[4,10],[35,165]],[[1110,5195],[3,50],[4,71],[2,70],[-13,55],[-24,50],[-13,36],[-11,20],[-7,30],[26,25],[31,50],[7,20],[18,35],[4,11],[2,5],[18,35],[11,15],[11,20],[13,15],[18,-40],[2,0],[29,25],[41,15],[34,20],[22,5],[11,10],[11,5],[24,30],[17,15],[9,10],[29,-10],[18,5],[2,0],[35,31],[13,25],[9,20],[20,70],[11,25],[44,45],[20,11],[22,0],[4,10],[7,5],[9,20],[6,5],[7,15],[13,15],[2,0],[3,5],[-16,5],[-4,5],[-5,20],[-2,0],[-6,5],[-9,0],[-5,15],[-4,5],[-4,0],[-7,15],[4,15],[14,5],[6,15],[7,5],[0,5],[-2,5],[6,16],[-11,10],[2,5],[7,5],[15,15],[0,5],[5,5],[13,5],[9,15],[11,-10],[18,0],[8,10],[7,20],[0,15],[-11,25],[-2,25],[4,5],[5,0],[8,0],[9,25],[29,26],[11,5],[11,0],[9,10],[24,15],[4,5],[14,10],[4,0],[11,5],[4,5],[5,20],[13,0],[4,15],[7,10],[11,10],[2,10],[7,10],[4,0],[20,20],[0,15],[2,5],[3,0],[15,10],[2,0],[5,16],[15,30]],[[1990,6768],[4,5]],[[581,2482],[47,-36],[4,-5],[2,0],[11,-10],[-4,-10],[4,-10],[-2,-10],[5,0],[-5,-10],[7,-5],[0,-5],[2,0],[2,-10],[-4,-10],[-5,-5],[-6,-10],[-5,0],[-4,0],[-4,-15],[-5,0],[2,-10],[-2,-15],[0,-5],[11,-15],[13,-51],[3,-5],[24,-35],[-2,-15],[8,-5],[7,-15],[27,15],[0,10],[13,10],[-2,5],[4,5],[13,30],[7,11],[4,-6],[-6,-30],[2,-10],[2,0],[11,-5],[4,0],[9,5],[7,0],[-2,-5],[-7,-20],[7,-5],[0,-15],[2,-15],[-35,-95],[-5,-11],[-35,-40],[-16,-10],[-6,0],[-27,-20],[-11,-20],[-6,10],[-2,0],[0,-10],[-5,0],[-6,0],[-7,5],[-7,0],[-9,-10],[-4,-5],[-2,-5],[-5,0],[-2,-5],[-4,0],[0,-10],[-9,-5],[-9,-20],[-2,0],[-2,-5],[-11,-5],[-11,-25],[-7,-10],[-2,-5],[-4,0],[-11,-16],[-5,0],[-6,-15],[6,-60],[-31,-40],[-15,-5],[-35,-25],[-9,-15],[-2,-15],[-5,-5],[-6,10],[-3,-10],[-9,-10],[-2,-11],[-20,-5],[-13,16],[-26,0],[-11,5],[-11,0],[-16,40],[-35,-15],[-2,0],[-7,5],[-44,5],[-6,-20],[-5,-20],[5,-11],[-3,0],[-4,-5],[-7,5],[-15,-20],[0,-10],[-2,10],[-3,-5],[0,10],[-2,5],[-2,-5],[0,5],[-7,0],[-2,5],[-6,0],[-3,5],[-2,5],[-17,6],[-5,-6],[-2,0],[-7,6],[-11,-6],[-22,11],[-2,0],[-2,0],[-11,-5],[-5,0],[-4,-6],[-2,-25],[-5,-5],[-8,-15],[-7,-5],[-7,0],[-11,-10],[-8,0],[-9,-10],[-2,20],[22,25],[2,10],[-5,15],[0,16],[9,35],[9,20],[7,20],[11,35],[2,30],[4,5],[2,0],[5,-15],[2,0],[4,20],[5,10],[0,10],[6,20],[-8,21],[-14,10],[-6,10],[-40,30],[0,5],[5,5],[4,5],[11,15],[-9,20],[11,40],[9,10],[15,0],[18,-10],[2,15],[-6,20],[11,0],[8,-5],[0,-5],[5,5],[11,10],[0,21],[7,5],[0,5],[8,0],[-2,10],[5,0],[4,5],[4,0],[14,5],[19,25],[18,-25],[9,-10],[11,20],[4,20],[16,30],[2,0],[4,5],[11,-20],[5,-5],[4,5],[2,-5],[3,10],[13,15],[6,-5],[3,10],[4,-5],[4,5],[0,-5],[31,-40],[9,15],[2,0],[5,-5],[2,0],[31,55],[0,10],[-7,5],[5,10],[-3,15],[-4,10],[-4,15],[4,6],[-7,5],[-2,0],[-13,20],[7,10],[-20,30],[2,30],[-7,5],[20,30],[5,15],[2,5],[6,-5],[5,0],[2,5],[-2,0],[0,5],[4,5],[-2,5],[4,10],[-6,10],[4,26],[-4,5],[2,20],[9,20],[0,5],[4,0]],[[502,2653],[-4,-11],[-16,16],[-2,-5],[-2,-6],[-2,-5],[0,-5],[2,-5],[0,-5],[-2,0],[-11,10],[6,16],[7,15],[2,0],[4,10],[18,-25]],[[628,2642],[-20,-65],[-55,35],[-7,10],[0,-5],[-24,25],[4,26],[-4,0],[-2,-5],[-5,5],[-2,5],[-6,-5],[-12,20],[-13,5],[-4,5],[-5,15],[11,10],[-4,10],[13,15],[9,-10],[7,-10],[2,-5],[4,0],[11,5],[7,-5],[4,-20],[5,-5],[11,0],[13,-10],[62,-46]],[[1990,6768],[0,5],[-11,5],[-11,-5],[-9,0],[-6,10],[-3,15],[9,10],[18,15],[2,5],[2,0],[5,0],[17,15],[5,20],[2,5],[15,0],[-2,25],[2,5],[0,10],[5,5],[4,10],[5,21],[13,20],[4,0],[2,5],[9,10],[29,35],[9,20],[2,0],[6,5],[20,15],[5,10],[2,5],[2,15],[11,10],[16,5],[6,15],[0,5],[2,15],[9,5],[9,16],[7,5],[2,5],[-7,15],[-11,15],[-2,15],[0,5],[7,10],[4,20],[0,10],[-4,20],[4,15],[-13,50],[-2,11],[-9,25],[9,15],[4,10],[13,5],[20,-5],[13,5],[11,-5],[5,0],[2,10],[2,15],[16,-5],[11,10],[17,-5],[16,25],[6,0],[2,0],[5,10],[2,25],[7,10],[4,20],[-4,30],[-9,6],[0,15],[35,10],[18,10],[20,-10],[6,5],[25,35],[-3,5],[-6,0],[0,10],[4,5],[9,10],[7,20],[-14,10],[-13,5],[2,15],[5,10],[-7,45],[-2,6],[-13,10],[-20,0],[0,20],[-2,10],[-11,-5],[-14,5],[-4,0],[-4,5],[0,10],[-7,0],[-4,-10],[-3,10],[-2,0],[-11,-25],[-22,-25],[-13,0],[-16,0],[-19,-16],[-3,0],[-4,5],[-7,-10],[-6,0],[-3,5],[-6,-5],[-18,0],[-4,5],[-20,-10],[-15,0],[-5,0],[-17,-10],[-9,-5],[-5,5],[-6,5],[-22,10],[-9,0],[-2,0],[-5,-5],[-6,5],[-5,-15],[-20,-15],[-11,-5],[-2,25],[9,26],[4,25],[-2,30],[27,35],[-3,10],[20,0],[2,5],[16,15],[4,15],[-4,5],[-5,30],[11,5],[7,31],[-9,10],[7,0],[4,5],[5,-5],[9,5],[28,0],[2,0],[5,30],[2,20],[-2,70],[-5,20],[36,5],[6,-5],[13,10],[5,10],[9,46],[6,0],[18,10],[9,-5],[9,0],[2,0],[9,5],[2,0],[15,25],[-2,10],[-7,5],[0,15],[7,10],[-2,10],[0,15],[-18,-5],[-2,10],[4,15],[-8,10],[-5,15],[5,25],[-3,31],[-4,25],[-7,5],[0,5],[7,0],[7,5],[24,20],[2,5],[35,20],[16,0],[6,-15],[20,-10],[2,-10],[18,5],[13,-15],[20,0],[24,-15],[3,-10],[6,-10],[11,5],[27,30],[11,0],[6,-5],[27,5],[9,10],[26,35],[4,-5],[18,-5],[27,-25],[6,-5],[9,-20],[4,-5],[3,-5],[4,0],[15,-5],[5,0],[33,10],[22,15],[11,0],[2,-10],[-24,-20],[0,-10],[-9,-16],[-4,-25],[-16,-50],[2,-20],[0,-5],[0,-10],[-2,-5],[0,-10],[-11,-60],[-6,-15],[22,-6],[26,-15],[9,-20],[22,0],[44,25],[13,-5],[9,-10],[7,-15],[-3,-20],[3,-5],[0,-5],[9,0],[4,-5],[0,-5],[2,-15],[0,-15],[18,20],[35,15],[29,40],[6,0],[14,-10],[8,10],[9,5],[7,15],[20,-5],[28,5],[2,5]]]} \ No newline at end of file From 9e3d8ac4e919d1eff026e94cbb9c69a21a25f9d0 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 09:58:14 +0300 Subject: [PATCH 676/875] Update Batchfile color. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ae0584a1..157ba092 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -291,7 +291,7 @@ Batchfile: - .cmd tm_scope: source.dosbatch ace_mode: batchfile - color: "#92C2FF" + color: "#A3D300" Befunge: type: programming From 827ad80311fe24b4cabd76769c8ccff584a31557 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 10:16:37 +0300 Subject: [PATCH 677/875] Update colors to fix collision. Colors basically incremented. --- lib/linguist/languages.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 157ba092..be44415d 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -631,7 +631,7 @@ Common Lisp: Component Pascal: type: programming - color: "#b0ce4e" + color: "#c1df5f" extensions: - .cp - .cps @@ -703,7 +703,7 @@ Cuda: - .cuh tm_scope: source.cuda-c++ ace_mode: c_cpp - color: "#76B900" + color: "#87CA11" Cycript: type: programming @@ -1210,7 +1210,7 @@ Gradle: - .gradle tm_scope: source.groovy.gradle ace_mode: text - color: "#84BA40" + color: "#95CB51" Grammatical Framework: type: programming @@ -1714,7 +1714,7 @@ LLVM: extensions: - .ll ace_mode: text - color: "#689DD7" + color: "#79AEE8" LOLCODE: type: programming @@ -1778,7 +1778,7 @@ Less: - .less tm_scope: source.css.less ace_mode: less - color: "#2A4D82" + color: "#3B5E93" Lex: type: programming @@ -1988,7 +1988,7 @@ Markdown: - .mkdown - .ron tm_scope: source.gfm - color: "#DDDDDD" + color: "#EEEEEE" Mask: type: markup @@ -2027,7 +2027,7 @@ Maven POM: filenames: - pom.xml ace_mode: xml - color: "#FF6804" + color: "#007915" Max: type: programming @@ -2217,7 +2217,7 @@ Nginx: aliases: - nginx configuration file ace_mode: text - color: "#009900" + color: "#11AA11" Nimrod: type: programming @@ -2276,7 +2276,7 @@ NumPy: - .numsc tm_scope: none ace_mode: text - color: "#378EC8" + color: "#489FD9" OCaml: type: programming @@ -2779,7 +2779,7 @@ QMake: R: type: programming - color: "#198ce7" + color: "#2A9DF8" aliases: - R - Rscript @@ -3694,7 +3694,7 @@ XML: - Web.Release.config - Web.config - packages.config - color: "#25AAE2" + color: "#36BBF3" XPages: type: programming @@ -3740,7 +3740,7 @@ XSLT: - .xsl tm_scope: text.xml.xsl ace_mode: xml - color: "#0E76BD" + color: "#1F87CE" Xojo: type: programming @@ -3773,7 +3773,7 @@ YAML: - .yaml - .yaml-tmlanguage ace_mode: yaml - color: "#FF0000" + color: "#001111" Yacc: type: programming @@ -3783,7 +3783,7 @@ Yacc: - .yy tm_scope: source.bison ace_mode: text - color: "#92278F" + color: "#A33890" Zephir: type: programming @@ -3866,7 +3866,7 @@ reStructuredText: - .rst - .rest ace_mode: text - color: "#000000" + color: "#444444" wisp: type: programming From dc41dd888d4f6b3754fe6461d683360d2ed212d4 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 13:31:51 +0300 Subject: [PATCH 678/875] Update Cuda color to fix closeness. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index be44415d..3e0d1f8c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -703,7 +703,7 @@ Cuda: - .cuh tm_scope: source.cuda-c++ ace_mode: c_cpp - color: "#87CA11" + color: "#98DB22" Cycript: type: programming From 9a76cfc85f8a30a79bcedefcb66e4f676f8a7b5a Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 14:16:12 +0300 Subject: [PATCH 679/875] Update some colors to fix closeness. I have used syntactic color values with respect to the table below: A | B C | D | E | F G | H | I | J K | L M | N O | P Q | R S | T U | V W | X | Y Z 0 1 2 3 4 5 6 7 8 9 A B C D E F For example for Gradle the color should be 4B0283, for Cuda the color should be 1C201C(for six-letter CudaCu) and for reStructuredText the color should be B3BCBC(for six-letter reStru). --- lib/linguist/languages.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 3e0d1f8c..40ac5b40 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -703,7 +703,7 @@ Cuda: - .cuh tm_scope: source.cuda-c++ ace_mode: c_cpp - color: "#98DB22" + color: "#1C201C" Cycript: type: programming @@ -1210,7 +1210,7 @@ Gradle: - .gradle tm_scope: source.groovy.gradle ace_mode: text - color: "#95CB51" + color: "#4B0283" Grammatical Framework: type: programming @@ -1778,7 +1778,7 @@ Less: - .less tm_scope: source.css.less ace_mode: less - color: "#3B5E93" + color: "#83BB83" Lex: type: programming @@ -1988,7 +1988,7 @@ Markdown: - .mkdown - .ron tm_scope: source.gfm - color: "#EEEEEE" + color: "#80B729" Mask: type: markup @@ -2217,7 +2217,7 @@ Nginx: aliases: - nginx configuration file ace_mode: text - color: "#11AA11" + color: "#9469E9" Nimrod: type: programming @@ -2276,7 +2276,7 @@ NumPy: - .numsc tm_scope: none ace_mode: text - color: "#489FD9" + color: "#9C8AF9" OCaml: type: programming @@ -3694,7 +3694,7 @@ XML: - Web.Release.config - Web.config - packages.config - color: "#36BBF3" + color: "#E88E88" XPages: type: programming @@ -3740,7 +3740,7 @@ XSLT: - .xsl tm_scope: text.xml.xsl ace_mode: xml - color: "#1F87CE" + color: "#EB8CEB" Xojo: type: programming @@ -3783,7 +3783,7 @@ Yacc: - .yy tm_scope: source.bison ace_mode: text - color: "#A33890" + color: "#F011F0" Zephir: type: programming @@ -3866,7 +3866,7 @@ reStructuredText: - .rst - .rest ace_mode: text - color: "#444444" + color: "#B3BCBC" wisp: type: programming From 802de8112ccb3e9cd5696efe9dc5a2b8e6f9a3b9 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 14:39:19 +0300 Subject: [PATCH 680/875] Update some colors to fix closeness. --- lib/linguist/languages.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 40ac5b40..2ccff3d2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -153,7 +153,7 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml - color: "#A82C7C" + color: "#C64A9A" ApacheConf: type: markup @@ -183,7 +183,7 @@ AppleScript: interpreters: - osascript ace_mode: applescript - color: "#F2F1F1" + color: "#101F1F" Arc: type: programming @@ -291,7 +291,7 @@ Batchfile: - .cmd tm_scope: source.dosbatch ace_mode: batchfile - color: "#A3D300" + color: "#C1F12E" Befunge: type: programming @@ -631,7 +631,7 @@ Common Lisp: Component Pascal: type: programming - color: "#c1df5f" + color: "#EFFD7D" extensions: - .cp - .cps @@ -694,7 +694,7 @@ Cucumber: aliases: - gherkin ace_mode: text - color: "#00A818" + color: "#2EC636" Cuda: type: programming @@ -703,7 +703,7 @@ Cuda: - .cuh tm_scope: source.cuda-c++ ace_mode: c_cpp - color: "#1C201C" + color: "#3A4E3A" Cycript: type: programming @@ -1714,7 +1714,7 @@ LLVM: extensions: - .ll ace_mode: text - color: "#79AEE8" + color: "#97CC06" LOLCODE: type: programming @@ -1778,7 +1778,7 @@ Less: - .less tm_scope: source.css.less ace_mode: less - color: "#83BB83" + color: "#A1D9A1" Lex: type: programming @@ -1988,7 +1988,7 @@ Markdown: - .mkdown - .ron tm_scope: source.gfm - color: "#80B729" + color: "#AED547" Mask: type: markup @@ -2525,7 +2525,7 @@ Parrot Internal Representation: Pascal: type: programming - color: "#b0ce4e" + color: "#DEEC6C" extensions: - .pas - .dfm @@ -2779,7 +2779,7 @@ QMake: R: type: programming - color: "#2A9DF8" + color: "#198CE7" aliases: - R - Rscript @@ -2809,7 +2809,7 @@ RDoc: extensions: - .rdoc tm_scope: text.rdoc - color: "#333333" + color: "#515151" REALbasic: type: programming @@ -3783,7 +3783,7 @@ Yacc: - .yy tm_scope: source.bison ace_mode: text - color: "#F011F0" + color: "#1E3F1E" Zephir: type: programming From 35884d482cc6b4813d9e6a4787a8cfd21ffea84d Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 15:38:41 +0300 Subject: [PATCH 681/875] Update some colors to fix closeness. --- lib/linguist/languages.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2ccff3d2..49aa2c75 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -694,7 +694,7 @@ Cucumber: aliases: - gherkin ace_mode: text - color: "#2EC636" + color: "#2EF336" Cuda: type: programming @@ -1714,7 +1714,7 @@ LLVM: extensions: - .ll ace_mode: text - color: "#97CC06" + color: "#185619" LOLCODE: type: programming @@ -1988,7 +1988,7 @@ Markdown: - .mkdown - .ron tm_scope: source.gfm - color: "#AED547" + color: "#DB0274" Mask: type: markup @@ -2525,7 +2525,7 @@ Parrot Internal Representation: Pascal: type: programming - color: "#DEEC6C" + color: "#0B1999" extensions: - .pas - .dfm @@ -2809,7 +2809,7 @@ RDoc: extensions: - .rdoc tm_scope: text.rdoc - color: "#515151" + color: "#8E84BF" REALbasic: type: programming @@ -3773,7 +3773,7 @@ YAML: - .yaml - .yaml-tmlanguage ace_mode: yaml - color: "#001111" + color: "#56789A" Yacc: type: programming @@ -3783,7 +3783,7 @@ Yacc: - .yy tm_scope: source.bison ace_mode: text - color: "#1E3F1E" + color: "#4B6C4B" Zephir: type: programming From ee61466042069db8a649a3e13444c3d079f1a685 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 15:58:46 +0300 Subject: [PATCH 682/875] Update some colors to fix closeness. --- lib/linguist/languages.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 49aa2c75..4094b18e 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -694,7 +694,7 @@ Cucumber: aliases: - gherkin ace_mode: text - color: "#2EF336" + color: "#5B2063" Cuda: type: programming @@ -1988,7 +1988,7 @@ Markdown: - .mkdown - .ron tm_scope: source.gfm - color: "#DB0274" + color: "#083FA1" Mask: type: markup @@ -2525,7 +2525,7 @@ Parrot Internal Representation: Pascal: type: programming - color: "#0B1999" + color: "#3846C6" extensions: - .pas - .dfm From cf834e8a2176d4dfaaa5e7aaf4c706c6ac756c15 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 16:23:33 +0300 Subject: [PATCH 683/875] Update some colors to fix closeness. --- lib/linguist/languages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4094b18e..87059633 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -631,7 +631,7 @@ Common Lisp: Component Pascal: type: programming - color: "#EFFD7D" + color: "#B0CE4E" extensions: - .cp - .cps @@ -2525,7 +2525,7 @@ Parrot Internal Representation: Pascal: type: programming - color: "#3846C6" + color: "#C1DF5F" extensions: - .pas - .dfm From 7e76d1cc6bafbf3357eaf8025b1836ac8744fd06 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 17:01:38 +0300 Subject: [PATCH 684/875] Update Pascal color to fix the closeness issue. --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 87059633..ad9ac132 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2525,7 +2525,7 @@ Parrot Internal Representation: Pascal: type: programming - color: "#C1DF5F" + color: "#E3F171" extensions: - .pas - .dfm From fc5ae1cfbcad8efa8fce84b4592fadf6b65fbfb2 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 17:53:58 +0300 Subject: [PATCH 685/875] Revert colors of some languages. Revert colors of some languages which have 'type: data' attribute. --- lib/linguist/languages.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ad9ac132..496fbee3 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -153,7 +153,6 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml - color: "#C64A9A" ApacheConf: type: markup @@ -1210,7 +1209,6 @@ Gradle: - .gradle tm_scope: source.groovy.gradle ace_mode: text - color: "#4B0283" Grammatical Framework: type: programming @@ -2027,7 +2025,6 @@ Maven POM: filenames: - pom.xml ace_mode: xml - color: "#007915" Max: type: programming @@ -3694,7 +3691,6 @@ XML: - Web.Release.config - Web.config - packages.config - color: "#E88E88" XPages: type: programming @@ -3773,7 +3769,6 @@ YAML: - .yaml - .yaml-tmlanguage ace_mode: yaml - color: "#56789A" Yacc: type: programming From 4d2b38497dda3ad2258af363e5bf51647c004097 Mon Sep 17 00:00:00 2001 From: ismail-arilik Date: Wed, 2 Sep 2015 18:53:29 +0300 Subject: [PATCH 686/875] Remove color attributes of 'type: data's. --- lib/linguist/languages.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 496fbee3..3d639833 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -795,7 +795,6 @@ Dart: Diff: type: data - color: "#88dddd" extensions: - .diff - .patch @@ -3461,7 +3460,6 @@ Unified Parallel C: Unity3D Asset: type: data ace_mode: yaml - color: "#ab69a1" extensions: - .anim - .asset @@ -3818,7 +3816,6 @@ eC: edn: type: data ace_mode: clojure - color: "#db5855" extensions: - .edn tm_scope: source.clojure From e4ce5bfe39bb7b29d416db16241b33acb5df7e2a Mon Sep 17 00:00:00 2001 From: Scott Nelson Date: Wed, 2 Sep 2015 12:52:25 -0400 Subject: [PATCH 687/875] Ignore spec fixtures --- lib/linguist/vendor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 12473d85..ddbc6502 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -266,6 +266,7 @@ # Test fixtures - ^[Tt]ests?/fixtures/ +- ^[Ss]pecs?/fixtures/ # PhoneGap/Cordova - (^|/)cordova([^.]*)\.js$ From 580cfce7fbd1d7d3dbb06ab9a7fdea54c6527797 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 3 Sep 2015 14:39:27 +0100 Subject: [PATCH 688/875] Adding support for generated overrides --- lib/linguist/lazy_blob.rb | 30 +++++++++++++++++++++--------- test/test_repository.rb | 10 ++++++++++ 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 78f37b18..55c10309 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -4,7 +4,11 @@ require 'rugged' module Linguist class LazyBlob - GIT_ATTR = ['linguist-documentation', 'linguist-language', 'linguist-vendored'] + GIT_ATTR = ['linguist-documentation', + 'linguist-language', + 'linguist-vendored', + 'linguist-generated'] + GIT_ATTR_OPTS = { :priority => [:index], :skip_system => true } GIT_ATTR_FLAGS = Rugged::Repository::Attributes.parse_opts(GIT_ATTR_OPTS) @@ -31,14 +35,6 @@ module Linguist name, GIT_ATTR, GIT_ATTR_FLAGS) end - def vendored? - if attr = git_attributes['linguist-vendored'] - return boolean_attribute(attr) - else - return super - end - end - def documentation? if attr = git_attributes['linguist-documentation'] boolean_attribute(attr) @@ -47,6 +43,22 @@ module Linguist end end + def generated? + if attr = git_attributes['linguist-generated'] + boolean_attribute(attr) + else + super + end + end + + def vendored? + if attr = git_attributes['linguist-vendored'] + return boolean_attribute(attr) + else + super + end + end + def language return @language if defined?(@language) diff --git a/test/test_repository.rb b/test/test_repository.rb index fcdd4f0c..a1f9fc86 100644 --- a/test/test_repository.rb +++ b/test/test_repository.rb @@ -111,4 +111,14 @@ class TestRepository < Minitest::Test refute_predicate readme, :documentation? assert_predicate arduino, :documentation? end + + def test_linguist_override_generated? + attr_commit = "351c1cc8fd57340839bdb400d7812332af80e9bd" + repo = linguist_repo(attr_commit).read_index + + rakefile = Linguist::LazyBlob.new(rugged_repository, attr_commit, "Rakefile") + + # overridden .gitattributes + assert rakefile.generated? + end end From 4bfd65deb84c33b2e2deb60b6fadda4460985170 Mon Sep 17 00:00:00 2001 From: Paul Cantrell Date: Wed, 19 Aug 2015 11:42:21 -0500 Subject: [PATCH 689/875] #import "*.h" detection for Objective-C --- lib/linguist/heuristics.rb | 2 +- samples/Objective-C/Siesta.h | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 samples/Objective-C/Siesta.h diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index dd1f8ee6..1660d99f 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -65,7 +65,7 @@ module Linguist end # Common heuristics - ObjectiveCRegex = /^[ \t]*@(interface|class|protocol|property|end|synchronized|selector|implementation)\b/ + ObjectiveCRegex = /^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])/ disambiguate ".asc" do |data| if /^(----[- ]BEGIN|ssh-(rsa|dss)) /.match(data) diff --git a/samples/Objective-C/Siesta.h b/samples/Objective-C/Siesta.h new file mode 100644 index 00000000..a48984e3 --- /dev/null +++ b/samples/Objective-C/Siesta.h @@ -0,0 +1,16 @@ +// +// Siesta.h +// Siesta +// +// Created by Paul on 2015/6/14. +// Copyright © 2015 Bust Out Solutions. MIT license. +// + +#import + +//! Project version number for Siesta. +FOUNDATION_EXPORT double SiestaVersionNumber; + +//! Project version string for Siesta. +FOUNDATION_EXPORT const unsigned char SiestaVersionString[]; + From b1dcdf34186d3088e6e45ed9a78ffe9af26e96b7 Mon Sep 17 00:00:00 2001 From: miksen Date: Fri, 4 Sep 2015 11:49:10 +0200 Subject: [PATCH 690/875] Language bar clarification in README.md Clarified what the percentages in the Language bar are based on. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ca08af1..2a4d3c31 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ See [Troubleshooting](#troubleshooting) and [`CONTRIBUTING.md`](/CONTRIBUTING.md ![language stats bar](https://cloud.githubusercontent.com/assets/173/5562290/48e24654-8ddf-11e4-8fe7-735b0ce3a0d3.png) -The Language stats bar is built by aggregating the languages of each file in that repository. If it is reporting a language that you don't expect: +The Language stats bar displays languages percentages for the files in the repository. The percentages are calculated based on the bytes of code for each language as reported by the [List Languages](https://developer.github.com/v3/repos/#list-languages) API. If the bar is reporting a language that you don't expect: 0. Click on the name of the language in the stats bar to see a list of the files that are identified as that language. 0. If you see files that you didn't write, consider moving the files into one of the [paths for vendored code](/lib/linguist/vendor.yml), or use the [manual overrides](#overrides) feature to ignore them. From 1f46cfafa7ddf7e849f73e2472c558004b83f22c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 5 Sep 2015 13:31:17 +0200 Subject: [PATCH 691/875] New JSX language under JavaScript group A specific grammar is needed to highlight .jsx files Thus, there are now in a distinct language but still in the JavaScript group --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 9 ++++++++- samples/JSX/sample.jsx | 23 +++++++++++++++++++++++ vendor/grammars/language-babel | 1 + 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 samples/JSX/sample.jsx create mode 160000 vendor/grammars/language-babel diff --git a/.gitmodules b/.gitmodules index 5f07d011..87654b7e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -677,3 +677,6 @@ [submodule "vendor/grammars/X10"] path = vendor/grammars/X10 url = git@github.com:x10-lang/x10-highlighting.git +[submodule "vendor/grammars/language-babel"] + path = vendor/grammars/language-babel + url = https://github.com/gandm/language-babel diff --git a/grammars.yml b/grammars.yml index 42be3967..2a7a89e2 100644 --- a/grammars.yml +++ b/grammars.yml @@ -314,6 +314,9 @@ vendor/grammars/json.tmbundle: - source.json vendor/grammars/kotlin-sublime-package: - source.Kotlin +vendor/grammars/language-babel/: +- source.js.jsx +- source.regexp.babel vendor/grammars/language-clojure: - source.clojure vendor/grammars/language-coffee-script: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b2d75fa1..7be29046 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1575,6 +1575,14 @@ JSONiq: - .jq tm_scope: source.jq +JSX: + type: programming + group: JavaScript + extensions: + - .jsx + tm_scope: source.js.jsx + ace_mode: javascript + Jade: group: HTML type: markup @@ -1628,7 +1636,6 @@ JavaScript: - .jsfl - .jsm - .jss - - .jsx - .njs - .pac - .sjs diff --git a/samples/JSX/sample.jsx b/samples/JSX/sample.jsx new file mode 100644 index 00000000..2020618d --- /dev/null +++ b/samples/JSX/sample.jsx @@ -0,0 +1,23 @@ +'use strict'; + +const React = require('react') + +module.exports = React.createClass({ + render: function() { + let {feeds, log} = this.props; + + log.info(feeds); + return
+

News Feed's

+
    + {feeds.map(function(feed) { + return
  • + {feed.data && feed.data.length > 0 ? + {feed.name} ({feed.data.length}) + : 'feed.name' } +
  • + })} +
+
; + } +}); diff --git a/vendor/grammars/language-babel b/vendor/grammars/language-babel new file mode 160000 index 00000000..c79ac897 --- /dev/null +++ b/vendor/grammars/language-babel @@ -0,0 +1 @@ +Subproject commit c79ac8979cff724e7db8933044f00b975dc4f277 From b275b5d728fd0330f8df29513a8c935528e2bc36 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 4 Sep 2015 10:24:06 +0200 Subject: [PATCH 692/875] Soften memory pressure --- lib/linguist/generated.rb | 8 ++++++-- lib/linguist/heuristics.rb | 3 ++- lib/linguist/lazy_blob.rb | 4 ++++ lib/linguist/repository.rb | 7 +++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index f1fb2d19..d107e737 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -241,22 +241,26 @@ module Linguist return lines[0].include?("Code generated by") end + PROTOBUF_EXTENSIONS = ['.py', '.java', '.h', '.cc', '.cpp'] + # Internal: Is the blob a C++, Java or Python source file generated by the # Protocol Buffer compiler? # # Returns true of false. def generated_protocol_buffer? - return false unless ['.py', '.java', '.h', '.cc', '.cpp'].include?(extname) + return false unless PROTOBUF_EXTENSIONS.include?(extname) return false unless lines.count > 1 return lines[0].include?("Generated by the protocol buffer compiler. DO NOT EDIT!") end + APACHE_THRIFT_EXTENSIONS = ['.rb', '.py', '.go', '.js', '.m', '.java', '.h', '.cc', '.cpp'] + # Internal: Is the blob generated by Apache Thrift compiler? # # Returns true or false def generated_apache_thrift? - return false unless ['.rb', '.py', '.go', '.js', '.m', '.java', '.h', '.cc', '.cpp'].include?(extname) + return false unless APACHE_THRIFT_EXTENSIONS.include?(extname) return false unless lines.count > 1 return lines[0].include?("Autogenerated by Thrift Compiler") || lines[1].include?("Autogenerated by Thrift Compiler") diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 1660d99f..11f58b28 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -56,7 +56,8 @@ module Linguist # Internal: Check if this heuristic matches the candidate languages. def matches?(filename) - @extensions.any? { |ext| filename.downcase.end_with?(ext) } + filename = filename.downcase + @extensions.any? { |ext| filename.end_with?(ext) } end # Internal: Perform the heuristic diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 55c10309..28fb78f3 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -79,6 +79,10 @@ module Linguist @size end + def cleanup! + @data.clear if @data + end + protected # Returns true if the attribute is present and not the string "false". diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 181ddf0e..01e595da 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -157,8 +157,11 @@ module Linguist blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8)) - next unless blob.include_in_language_stats? - file_map[new] = [blob.language.group.name, blob.size] + if blob.include_in_language_stats? + file_map[new] = [blob.language.group.name, blob.size] + end + + blob.cleanup! end end From b1bcabd6e6896b00dc06f6be9ef482729d645807 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 8 Sep 2015 12:25:05 +0100 Subject: [PATCH 693/875] Adding Handlebars to the HTML group --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 7be29046..8409337b 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1367,6 +1367,7 @@ Haml: Handlebars: type: markup color: "#01a9d6" + group: HTML aliases: - hbs - htmlbars From 13d1f662d1ec2bf1ce3af6eef2459f520f9701fe Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 4 Sep 2015 15:11:29 +0200 Subject: [PATCH 694/875] Add the `git-linguist` helper --- bin/git-linguist | 141 ++++++++++++++++++++++++++++++++++++++++ github-linguist.gemspec | 2 +- lib/linguist/version.rb | 2 +- 3 files changed, 143 insertions(+), 2 deletions(-) create mode 100755 bin/git-linguist diff --git a/bin/git-linguist b/bin/git-linguist new file mode 100755 index 00000000..f761cfaf --- /dev/null +++ b/bin/git-linguist @@ -0,0 +1,141 @@ +#!/usr/bin/env ruby + +require 'linguist' +require 'rugged' +require 'optparse' +require 'json' +require 'tmpdir' +require 'zlib' + +class GitLinguist + attr_reader :repo_path + attr_reader :commit_oid + attr_reader :incremental + + def initialize(path, commit_oid, incremental = true) + @repo_path = path + @commit_oid = commit_oid || rugged.head.target_id + @incremental = incremental + end + + def linguist + repo = Linguist::Repository.new(rugged, commit_oid) + + if incremental && stats = load_language_stats + old_commit_oid, old_stats = stats + + # A cache with NULL oid means that we want to froze + # these language stats in place and stop computing + # them (for performance reasons) + return old_stats if old_commit_oid == NULL_OID + repo.load_existing_stats(old_commit_oid, old_stats) + end + + result = yield repo + + save_language_stats(commit_oid, repo.cache) + result + end + + def load_language_stats + version, commit_oid, stats = load_cache + if version == LANGUAGE_STATS_CACHE_VERSION && commit_oid && stats + [commit_oid, stats] + end + end + + def save_language_stats(commit_oid, stats) + cache = [LANGUAGE_STATS_CACHE_VERSION, commit_oid, stats] + write_cache(cache) + end + + def clear_language_stats + File.unlink(cache_file) + end + + def disable_language_stats + save_language_stats(NULL_OID, {}) + end + + protected + NULL_OID = ("0" * 40).freeze + + LANGUAGE_STATS_CACHE = 'language-stats.cache' + LANGUAGE_STATS_CACHE_VERSION = "v3:#{Linguist::VERSION}" + + def rugged + @rugged ||= Rugged::Repository.bare(repo_path) + end + + def cache_file + File.join(repo_path, LANGUAGE_STATS_CACHE) + end + + def write_cache(object) + tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil) + + File.open(tmp_path, "wb") do |f| + marshal = Marshal.dump(object) + f.write(Zlib::Deflate.deflate(marshal)) + end + + File.rename(tmp_path, cache_file) + tmp_path = nil + ensure + (File.unlink(tmp_path) rescue nil) if tmp_path + end + + def load_cache + marshal = File.open(cache_file, "rb") { |f| Zlib::Inflate.inflate(f.read) } + Marshal.load(marshal) + rescue SystemCallError, ::Zlib::DataError, ::Zlib::BufError, TypeError + nil + end +end + + +def git_linguist(args) + incremental = true + commit = nil + git_dir = nil + + parser = OptionParser.new do |opts| + opts.banner = "Usage: git-linguist [OPTIONS] stats|breakdown|dump-cache|clear|disable" + + opts.on("-f", "--force", "Force a full rescan") { incremental = false } + opts.on("--git-dir=DIR", "Path to the git repository") { |v| git_dir = v } + opts.on("--commit=COMMIT", "Commit to index") { |v| commit = v} + end + + parser.parse!(args) + + git_dir ||= begin + pwd = Dir.pwd + dotgit = File.join(pwd, ".git") + File.directory?(dotgit) ? dotgit : pwd + end + + wrapper = GitLinguist.new(git_dir, commit, incremental) + + case args.pop + when "stats" + wrapper.linguist do |linguist| + puts JSON.dump(linguist.languages) + end + when "breakdown" + wrapper.linguist do |linguist| + puts JSON.dump(linguist.breakdown_by_file) + end + when "dump-cache" + puts JSON.dump(wrapper.load_language_stats) + when "clear" + wrapper.clear_language_stats + when "disable" + wrapper.disable_language_stats + else + $stderr.print(parser.help) + exit 1 + end +end + +git_linguist(ARGV) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 87bbc8bf..8e043857 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |s| s.license = "MIT" s.files = Dir['lib/**/*'] - ['lib/linguist/grammars.rb'] - s.executables << 'linguist' + s.executables = ['linguist', 'git-linguist'] s.add_dependency 'charlock_holmes', '~> 0.7.3' s.add_dependency 'escape_utils', '~> 1.1.0' diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index dbdb7d7f..0ee8b185 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.5.15" + VERSION = "4.6.0.rc3" end From c2c068e9db1fdb900716dcc9373e37ff5d2a4ca2 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Mon, 14 Sep 2015 08:43:10 -0700 Subject: [PATCH 695/875] Bump version to 4.6.0 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 0ee8b185..a90a01fa 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.6.0.rc3" + VERSION = "4.6.0" end From 0145a0adb2633d99255c01239fab90fe93dd13d2 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Wed, 16 Sep 2015 05:40:55 -0700 Subject: [PATCH 696/875] git-linguist: Delay loading @commit_oid --- bin/git-linguist | 29 ++++++++++++++--------------- lib/linguist/version.rb | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/bin/git-linguist b/bin/git-linguist index f761cfaf..03408ee5 100755 --- a/bin/git-linguist +++ b/bin/git-linguist @@ -8,20 +8,19 @@ require 'tmpdir' require 'zlib' class GitLinguist - attr_reader :repo_path - attr_reader :commit_oid - attr_reader :incremental - def initialize(path, commit_oid, incremental = true) @repo_path = path - @commit_oid = commit_oid || rugged.head.target_id + @commit_oid = commit_oid @incremental = incremental end def linguist - repo = Linguist::Repository.new(rugged, commit_oid) + if @commit_oid.nil? + raise "git-linguist must be called with a specific commit OID to perform language computation" + end + repo = Linguist::Repository.new(rugged, @commit_oid) - if incremental && stats = load_language_stats + if @incremental && stats = load_language_stats old_commit_oid, old_stats = stats # A cache with NULL oid means that we want to froze @@ -33,19 +32,19 @@ class GitLinguist result = yield repo - save_language_stats(commit_oid, repo.cache) + save_language_stats(@commit_oid, repo.cache) result end def load_language_stats - version, commit_oid, stats = load_cache - if version == LANGUAGE_STATS_CACHE_VERSION && commit_oid && stats - [commit_oid, stats] + version, oid, stats = load_cache + if version == LANGUAGE_STATS_CACHE_VERSION && oid && stats + [oid, stats] end end - def save_language_stats(commit_oid, stats) - cache = [LANGUAGE_STATS_CACHE_VERSION, commit_oid, stats] + def save_language_stats(oid, stats) + cache = [LANGUAGE_STATS_CACHE_VERSION, oid, stats] write_cache(cache) end @@ -64,11 +63,11 @@ class GitLinguist LANGUAGE_STATS_CACHE_VERSION = "v3:#{Linguist::VERSION}" def rugged - @rugged ||= Rugged::Repository.bare(repo_path) + @rugged ||= Rugged::Repository.bare(@repo_path) end def cache_file - File.join(repo_path, LANGUAGE_STATS_CACHE) + File.join(@repo_path, LANGUAGE_STATS_CACHE) end def write_cache(object) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index a90a01fa..7f5e1750 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.6.0" + VERSION = "4.6.1" end From b54a9c7412d7659f0920a8bc5f9e8447be87b50e Mon Sep 17 00:00:00 2001 From: wizawu Date: Mon, 21 Sep 2015 13:48:30 +0800 Subject: [PATCH 697/875] Add new extension .tsx for TypeScript TypeScript 1.6 has introduced a new .tsx file extension. --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8409337b..ddb18e78 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3441,6 +3441,7 @@ TypeScript: - ts extensions: - .ts + - .tsx tm_scope: source.ts ace_mode: typescript From 6a2d33a4b345039661ff37167bbdceaaf8875306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Mon, 21 Sep 2015 19:04:30 +0200 Subject: [PATCH 698/875] Bump language-javascript for syntax highlighting fix This is primarily to pull https://github.com/atom/language-javascript/pull/227 Full changelog: https://github.com/atom/language-javascript/compare/c5c381e...7b14bbb#diff-46d5c1ca71eaebb92619d6c7abc9388d --- vendor/grammars/language-javascript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index c5c381e3..7b14bbb0 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit c5c381e37812219db84cb5916094ca3b8dce62db +Subproject commit 7b14bbb041abcb39522defceca509cd35b6a7449 From 090ea576b956bc812498f99da2604e95b2e3ee70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Mon, 21 Sep 2015 21:23:40 +0200 Subject: [PATCH 699/875] github-linguist-grammars 4.6.2 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 7f5e1750..60bc59e0 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.6.1" + VERSION = "4.6.2" end From a354eddf4bce62acbc5f4b140dd64da71750a751 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Tue, 22 Sep 2015 16:33:08 -0400 Subject: [PATCH 700/875] Update github-linguist.gemspec --- github-linguist.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 8e043857..bdba3e6b 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -10,7 +10,7 @@ Gem::Specification.new do |s| s.homepage = "https://github.com/github/linguist" s.license = "MIT" - s.files = Dir['lib/**/*'] - ['lib/linguist/grammars.rb'] + s.files = Dir['lib/**/*'] - ['lib/linguist/grammars.rb'] + ['LICENSE'] s.executables = ['linguist', 'git-linguist'] s.add_dependency 'charlock_holmes', '~> 0.7.3' From c624d686283df346ab8b24efdb2a81c98aaf16cf Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Wed, 23 Sep 2015 20:29:07 -0700 Subject: [PATCH 701/875] Added .pck PLSQL file extension --- lib/linguist/languages.yml | 1 + samples/PLSQL/plsqlguide.pck | 90 ++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 samples/PLSQL/plsqlguide.pck diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8409337b..abac6618 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2456,6 +2456,7 @@ PLSQL: color: "#dad8d8" extensions: - .pls + - .pck - .pkb - .pks - .plb diff --git a/samples/PLSQL/plsqlguide.pck b/samples/PLSQL/plsqlguide.pck new file mode 100644 index 00000000..d31830ba --- /dev/null +++ b/samples/PLSQL/plsqlguide.pck @@ -0,0 +1,90 @@ +create or replace package plsqlguide is + +-- Author : Jared Petersen +-- Created : 9/22/2015 12:26:22 AM +-- Purpose : Basic PLSQL template/guide + +/* Procedures */ +procedure p_main; + +end plsqlguide; +/ +create or replace package body plsqlguide is + +/* Main entry point (homepage) */ +procedure p_main + is +begin + +htp.prn(' + + + + + + + + PL/SQL Sample Application + + + + + + + + + + + +
+ + + + + + + + +'); + +-- Fill out the parts table +for row in (select * from parts) loop + htp.prn(' + + + + + + + + '); +end loop; + +htp.prn(' +
#NameDescriptionQuantityPrice
'||row.pid||''||row.name||''||row.description||''||row.quantity||''||row.price||'
+
+ + + + + + + +'); + +end p_main; + +begin + -- Initialization + null; +end plsqlguide; +/ From 01bb6c37abe56263225a4bcd533dbbd8d82710f7 Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Fri, 25 Sep 2015 18:48:01 +0200 Subject: [PATCH 702/875] Detect Pickle data dumps (.p, .pkl, .pickle) --- lib/linguist/languages.yml | 9 +++ samples/Pickle/data.p | 24 ++++++++ .../neural-network-ce-l2reg-784-10-30.p | 60 +++++++++++++++++++ samples/Pickle/random.p | 36 +++++++++++ samples/Pickle/save.p | 10 ++++ 5 files changed, 139 insertions(+) create mode 100644 samples/Pickle/data.p create mode 100644 samples/Pickle/neural-network-ce-l2reg-784-10-30.p create mode 100644 samples/Pickle/random.p create mode 100644 samples/Pickle/save.p diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8409337b..45c7e4c8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2572,6 +2572,15 @@ Perl6: tm_scope: source.perl.6 ace_mode: perl +Pickle: + type: data + extensions: + - .p + - .pickle + - .pkl + tm_scope: none + ace_mode: text + PicoLisp: type: programming extensions: diff --git a/samples/Pickle/data.p b/samples/Pickle/data.p new file mode 100644 index 00000000..cf451f4f --- /dev/null +++ b/samples/Pickle/data.p @@ -0,0 +1,24 @@ +(dp0 +S'a' +p1 +(lp2 +I1 +aF2.0 +aI3 +ac__builtin__ +complex +p3 +(F4.0 +F6.0 +tp4 +Rp5 +asS'c' +p6 +NsS'b' +p7 +(S'string' +p8 +VUnicode string +p9 +tp10 +s. \ No newline at end of file diff --git a/samples/Pickle/neural-network-ce-l2reg-784-10-30.p b/samples/Pickle/neural-network-ce-l2reg-784-10-30.p new file mode 100644 index 00000000..2ad7bad3 --- /dev/null +++ b/samples/Pickle/neural-network-ce-l2reg-784-10-30.p @@ -0,0 +1,60 @@ +(cnumpy.core.multiarray +_reconstruct +p1 +(cnumpy +ndarray +p2 +(I0 +tS'b' +tRp3 +(I1 +(I10 +I784 +tcnumpy +dtype +p4 +(S'f8' +I0 +I1 +tRp5 +(I3 +S'<' +NNNI-1 +I-1 +I0 +tbI00 +S'B\xf9\xc2tq0\xed?\xe7\xcd\xa1\x01\xe7\xb9\xca\xbf\x19X;&x8\xea?\xa9V\xc7\xf2\x81\xd3\xd8\xbf\xaa\xa8fs\x88\xaa\xe6?\x1bC\xde\xe8,!\xf0?\xf3\x10%y\x89\x83\xe9\xbf\xc5\x9dY\t{\x94\xf4\xbf:/\x18\x10l\xd7\xe2?[g\x8f\xa8O\x99\xc9\xbf\xeb\x11g\x06\xe9\xd2\xe0\xbf\xd7\xe6R\x0b\xd5\x19\xe8\xbfF\x90\xef\xfe\x05>\xd9\xbf_\x82u\x8d\xa2\xd3\xae\xbf/\x91\x97\x8b>I\xca?f\x9a\xb7\x15O!\xd0\xbf|\xff\xfe\x98#\x1f\xd2\xbf\x98J@kO\xa6\xe4\xbf\x90\x94@ \x82\xbf\xd9?=2\x1f\xc7\xcbi\xf1?\xbc\x07\x9cJj\x96\xed\xbf\xc0\xf2c\x8f\xb4\xc3\xca\xbf\xb8):\x0f\x8e\x00\xe1?\xc6\xfe\xae\n\xc0M\xce?\xf0hf:]#\xd1?\xd6f9_\xf0\t\xe4?\xbd1\x8b\xf3T7\xf3?\xcfCX\xbfQ\xf5\xec\xbf\xaaP^\xaf\x00\xe0\x8e\xbf\xa4\x122FP!\xd4?\xcf\xa5>\xa6\xee\xc0\xd9\xbf\xeb\xae\x90\xd2*\x05\xdf?\xb2nPzh\xa0\xf3?d\xf8\xa8P\xf9d\xb6?\x1e\x8b\x1b\xfe\x9e\xf2\xc6?\xb8\x92.\x1c\\1\xd3?`hs\xc7;T\xd2?MQ\x99+\xfc\x9c\xf0?;\\F\xf40=\xb9?Y\xbc\xd4\xb5\xf9\xe6\xa5\xbf?\x02\xf4\xa6\xc6\x9d\xe5\xbf\xe0\x94\xf0\xef#\x7f\xd2\xbf\xf2\xd7\\I\x8eh\xc8?\xf1\xd9S\xf1-\xef\xda\xbf\x1e\xe9\xbeZ\xbav\xff?n\xb7erb\xdf\xbe\xbf\xc8\xa9d\xe9\xb1\x81\xf1\xbf\x0f\x81\xa5E{\xfc\xd1?*\x8d\xb8s\x05T\xef\xbf\xf3.s\xf0\x1e\xe8\xdd?\xcab\x0cT\x1bZ\xe9?\xc4\xf3\rQ\xdd\x10\xd8\xbf\x1eHe\xc2\xca\xca\xda?\xbdq\xe9p\x96{\xdf\xbfD\x05\x0eI\xe6V\xc9\xbf\xcf\xf5\\v\xce8\xea\xbfbV\xd5;\xb5k\xf2\xbf}\x90\x1b|\xd4g\xe0?\xce\xac\xc0\xa9\xe0\x9d\x90?+\xf3W(\x01u\xdb\xbf\xac\xa19"D\x7f\xdd?\x1d\xf2\xfbmJ\xb8\xdd?fv\x8c\x0bt\x18\xf0\xbf\xff\x94hIJ&\xe8?\x87\xf4\xb3K\xdbC\xdc\xbf\x1a9G\xc1p\xa0\xc2\xbf%^ZX\xaa\xbd\xda\xbf4\xdf\x9f\xac\x10!\xe2\xbf\xc8:$\x03\xb3\xce\xc4\xbf\xa7,\x11\xf4\xf9\x14\xe5\xbf\x97\xb2\x8ez\xe4w\xdc?T0\xedSI\xdf\xd5?\xc5\xd8W0^\xce\xc4?\xee`\x867\xdb\xb4\xe7\xbf\xc1F\xf1\x00B\x10\x03\xc0\xf1\xcd\xdeM\xb7P\xf1\xbf\x07\xb7\x80KIn\xf6\xbf\xeb2\xc3O\x95\x9b\xb7\xbf\xa7s^\xa5x\x05\xe2?^\xd3\x1b\xbbA?\xf4\xbf\xfc+U\xb0M\xa8\xd5?\x1d gm$\xf4\xda?\xa7"c\xaf\xbf\x04\xe1\xbf\xb6U7\xde3v\xb9\xbf\x81"\x95\xe7G\x14\xc4?!^S,\xb60\x01\xc0i\x08&\xf3\x8d\r\xd0\xbf2\x05^w\xe7\xdf\xb7?w\x84}n\xd6\xcd\xe1?\xb3\x98\xfbN\xfb\xa2\xee?S\xab/\xef\x7f\x12\xf3\xbfWw\xf4\xfez\xae\xeb?a\xa5~\x19&\xec\xf3?\xb1\x08\xfe\xdd-\'\xd3\xbf\xbe\xe5i\r\xca\x90\xe9?\xf0\'T\xe3\xd1j\xe3?uH\xe3\xea8\xcb\xc0?X\xaf\x86\xa6\xe3\xb7\xf4?\xb7\xcc\xael6\x7f\xda\xbf\x06\x87a\xe2\x0e\xf0\xb4\xbfnWl6\x1b\x9e\xe9?\x97\xfb\x91X2\xf6\xb0\xbfT[\xea\xc0\xdfr\xe0?\xba\xd5\x00U\xc5B\xe3?n\xa4V\xa8\xa4z\xd0?\xf4#/,!\x92\xf2\xbf\x82\x83\xae\r\xa6\xec\xea\xbf\xa7t\xbbi\xdb\xf5\xb2\xbf\xd4Wr\xc2\xb0\x93\xcc?\xe2\x03gt\x0cr\xf0\xbfJ\x03\xf6_\xe4\r\xdf?\x8a\x83u#\xfe\x85\xe4\xbf/lf\xbe\xf3\xde\x94?\xbd\x99#\x10\x0c\x90\xf7?\xfd\x832\xfa([\xe5?R\xd9\xa6\xbf-$\x19\xfa7W\xd8?\xe6\xc8\xc6\x8d\x19u\xe4\xbf*\xedf\xd1\xab\x82\xe2\xbf\\7<\x97\x84\x84\xcf?\xc8\xce\xdc\xfb\x1f\xca\xee?\x98\xcbC\xb7\xf2\xac\xe6??\tKt\xbc\x8f\xf9\xbft\x98\x15\xc2\x84\xac\xfa\xbf\x93\'\xc6\xe6\xc5\xc3\xf7\xbfv\x9eLu\xdbq\xf6?H\x85\xf5e\xf0\x85\x8b\xbf>\xd9\xfas\x15%\xf2\xbf\xe4\xcf\x9e\xad\xf6\x96\xf4?_(\xfa\x94o\xbc\xe6?\n\xb0\x0cC!\x8e\xfd?1\x04lY])\x01@4_\x1bdyP\xe6?\xf8\xf1CG\xfe\x91\xe0\xbfD\x8c,\xdb\xcf\x14\xc2?\xe9N\xf1\x926\n\xdb?\x01\xed,\xba\x1dp\xe1\xbf\x87\xed\xd2\xcb\xe6\xc5\xde?(\xca\x9f\x02\xb7\xba\xcb\xbf\x179\xf7\x9c\xca\xa1\xe5?\x1d\x93P\xdbV\x1f\xf0?\xe0\xd2\xb41;\xf1\xfa\xbf+\x81M9\x88\xa0\xf5?\x9b\x01\xdb\x14g\x85\xc4\xbf\x82\\\xd7\xad-\xc6\xee\xbf\x85\xc9\xa2i\x95\x03\xe1\xbf\x04\xa0\xcb\xc1\xc7{\xde\xbf\x84()\xa4\xd8\xe9\xf3\xbf\x97NY\x85\xa3\x8e\xe0?\x0f\xf5\xaa\x1c\x1a\xe8\x00@4\xf9+\xce\xab\xdc\xf6\xbf\xf1\x98D\xa6\x07\xe3\xe1\xbfT\xa3A\xa7\x95\x17\x01@\xc8iPOe\xc2\xfc?\xdb(l\xd7o\xd3\xff\xbf}\xd1\x17\xee \x00\x02@\x95\xe0\x93X&\'\xcf\xbfgF\xd9(\x9f\x02\xe0?p\x9a\x9a\xc2\x12\x8c\xf9?\x9c\x7f\xed\x93\x11R\x00@\xcby\xd3\x94\xc7\x91\xea\xbf)\xea\x93\xfa\xc1+\xf2?\xe0\xd5\xd7\xd2\x99\xe7\xe2\xbf\x0b\xdf=`T\xbf\xca\xbf\x84\xed\x92\xef\x8d\x0b\xd9?\xc7\xa9XI\xfeH\xeb\xbf\xebJ#\xbd\xa3`\xf0?\xc5\x82\xb8\xf7\x12\xb4\x01\xc0\x0c\xaa\xdb\xe5\xe6\xff\xf5\xbfx\xceQ\x11]\xee\x01\xc0\xba*\n/\xa7\x15\xc7\xbf\x89\x1bC\x8e\xe7\xc9\xec\xbf\x1e\xcb\xeb\xc3\xcdb\xe6\xbf\xcf\x9c\x1f\x0e\x04\xe0\xf0\xbfvV\x05>\x8c\x12\xd8?\x08b\xc9S\xd5\xd3\xff?\x80S\xe4\xddP\xed\xfc\xbf\x99\xa0W\xf7O\xa3\xce\xbfj\xe2\xde\xb2\x1c\x1f\xf4?\x13\x00p\xb7\xe72\xa9?\xdf\xaal\xcfo1\x06\xc0\x024}C\xdd?;Cr\xff\xd8\x11\xe6?\x10\x02k\x80U/\xf9?\x14\xc8_~1\xf1\xa3?0\xa0\xb76\x05\xa0\xe5\xbf@\xf8F\xfa\xe1\x84\xb0\xbf\xa4\x04\xadTx\x80\xc2\xbfP\x82F\xc0\x1eW\xde\xbf\xc8\xbd2K\x1e\xd6\xd4\xbf^X\x81\x0f\x99#\xf8\xbf\x07]}\x11\xff\x95\xd0?;\xafZ\x0e\xc8\xb6\xd5?*I\x9d\xb0\x9fU\xcd?ct}\x1f\r1\xef?\x08\xaa\xc1\xbdQB\xfa\xbf\xf7\x10\xce\xe4\xc7-\xe9\xbf\xfb\xack`w\xd2\x0c\xc0c\xf4<\x13\x8a\xf8\xce?]\x0ei\xe2Fu\xca\xbft\xadq\xe0\xa7\x04\xe9\xbf\x06|\xb1\x0b\x8a}\xe4?\x0e\xefe86M\x05\xc0\xa9n\x87\x1d\xc0U\xe2?\xc0\xc1\xc4x\x95\xb4\xbd\xbfR\xfc\xf4\x0b\xb4Q\xd5?\xfc#\x86\x0c\x8d \xf1\xbf\x1c75\xe1C\x8a\xf0?\xca\x9e\xa2\xd2\xd7\xa4\x04@\x9fP\xd1S\x12\xa9\x10@\xaaw\x94\x97\x95\x18\x00@\x9a\xb7Fz\xbcZ\xf0?g\xa9\x95\xb0=|\x93?s\x13\x9f\xf0}1\xa5?\xac\x8c\x95\x95\xd0w\xff\xbfJ$Sk;\x00\xec\xbf\xd4\xc5\x0e\xb6\xbb\xe4\xf1\xbf\xa8E\xf3\xbe7\xcc\x04@\x92+\xf2\xc2s\t\xe8\xbfN\x12\xf9\xcf\x91\x0e\xba\xbf\xda\xe0\x06\xcc\xd5\x1f\xc1?\x88\x027\x94\xa6\xd5\xd4\xbf\xe6\x95\x0cs\xf5O\x0b\xc0M\xad\x11<\x04r\xd0?\x8ac\xb8\x05\xa18\xf2?_>\xf7w\x843\xd0?\x03\x08a7\xd4\\\xfd\xbf\x8d\xd3\xaf]\xe5\x9c\xb0\xbfqZ\xb6AK/\xa7?)\x8f\xf9z\x8a\x96\xc9?\xeaE\x8er\x8d>\xf9?\xf8w\xed\xde\r\xed\xe9\xbf8\xf5\xbbD\x0e\xdd\xe1\xbf4\x82\x0c:\x0e]\xe5?\xa8\xc4\xad\xa0e\xbe\x06@\xbf>\xc6(\x81\x00\xed\xbf\xc7\x921\xc1*\xb0\x06@\xb2\xb6k\xc7\xfe\xe7\x15@\xdf\xa7\xb9\xc7\x03~\x0b@\xceP\x1f\';A\xf7?\xbe\x8eAL<\xfd\xf3\xbf\xf5\xd7\x87\xbf\x15\x13\x9e?+\xcc\xb4\xce\xfd\xad\xb2?b\xe5\x1e\x88o\xe3\xef\xbfim9aR\xc4\xf3\xbf6\xaakxf\x80\x93?\xb9\xa8\xfd\xa2\xe6~\xf5?g\xae\x19=yW\xfe\xbf\xbe"m\xe3\x85<\n\xc09\xdf]\xb7\x83\xa1\xda?\n\xb1\x89\x90\x9e\x97\r\xc0\x96\xad\x05\xc4@7\xc6\xbf\xee\xa6\xf6~\x95/\x10\xc0<\xb2\xd6\xfd\xa2\x86\xd3\xbf\x940\xfe\x93\xd51\x03@FS\xb9;"\xa7\xd3?9\x1f\r\xaa<\xb9\x0c\xc0z\xc4\rq\xc4\x1f\x03\xc0\xa6\x8e\x15_\xd0\xeb\x06\xc0\xf3\x0eX\xfc\xdd\xd4\x05\xc0\n\xf7J\xa6L&\xea\xbf\xa6\x87\x96\x18\xe4p\t\xc0\xd7\xdbPz\x1aN\xfc\xbf\xf7.-\xef\x95\xdd\xec?\x03\xfa\t4xh\x10@c\xc7s\xb4\xd5\xe8\x10@]\xe7!?\xb0\xec\xee?b\x8e\xb2A0\xf6\x01@K\xb7\xf811\x07\xdc\xbfi\xfaE\xf7\xa8\x16\xfc?\xeav\x84gWW\xf7\xbf\xc1\x99x\x8f\xbf\x1f\xd7\xbf\xfa\x98\x9e\xed\xac\xaf\xc0?C\x90\xd7\xb2\x13\x96\x0f\xc0\xba\r\xbfT\x07\xc4\x98?#\x80\x19\xf8y\xc8\x05\xc0v\xf0s\x97c\xca\x02\xc0\x99\x89A\x85\xfd\xce\xc4\xbf\xa6\xbeV{y\xd5\xde\xbfq45\x8d\xffu\x02\xc0N\x0f\xddt\xeb\xdc\xff\xbf\x0f\xad,b\x96.\xdb\xbff\xcf\xcf\xe5\r5\x07@\x06Q=qm\xcc\n@\x84\xdf\xbe{\t1\xf2\xbf\xc4\x8a:\xae:\x1d\n\xc0\xb0T\x1e~\x844\xf7\xbf\xc1m\xc2\xbe\xc0Z\xff\xbft\x1b\xea\nFT\xe5\xbfz\xed\'\xce\xbdA\xe8\xbf\xd5\xfc\xe2\xd1$\x98\xf2\xbfrI2\xa3\xca\x0c\x01\xc0J6~\x8548\xfd?\x8eH|\xf7\xcbL\x10@\xfc\x02e4x)\x01@\x80\xeb\xdf\x14\xfa\x95\xe9?\xce9\xce\x8f0*\xe5?\xaba\xb6;Y[\xed\xbf8\x89\xe12\xc7\xb0\xd4\xbfc\xfc\xa8eE\xc4\xf1?P\xba\x1f>z\xbd\xb2\xbf\xa7\xfb\x05\x13\xd3\xe7\x11\xc05a\x87\xc4\xea\x88\x0b\xc0g\xc3)\xd6M\xf2\xf9\xbf\xec\x18a\x10^w\x02\xc0\x0b\xa4\x12\xd8\x92\xf5\xea?\x97\xe1\'\'\x99\xa7\xe4?\x02c\xcd~\x1f\x11\x00\xc0a\x82\x85Q^\x97\x01@\x8d\x97|\xfdz\x03\x07@&\xeedI\xcb\xd5\xfe?\x07\x17\x1e\xb7\xed6\xdb\xbfv\xa4\xa5y\xc0\xe2\xf6\xbf\x0f\xb2:\xeb\x1f\xd3\xd7\xbf\xa2\x14M$}\xb6\t\xc0\xdf;g\xd8\xa2~\xed?#r\xdcR\x94\xfb\xf6\xbfc\x1f\x82\x17\x0e\xdc\xf9\xbf\x80\xe7\x08\xe26\x15\x0b\xc0M\x91\x1e\xd3\x99\x98\xf2?\x9fn\x81\xd7b\xb5\r@X\x93\xeb<2\x85\x03@\xc9r\xea\x00\xce\xb7\xf2?\x8c\xc4It\xb5\x8f\xb2\xbf\x0e\xe6\xf5\x81\xbc\xed\xce?\xac\xf0r\x0b\xa8\x8e\xf5?7E\x19\xaa\x115\xee\xbf\x9a~j\x97\x95)\xf1\xbf\x8de\x11\x9d\xad\x8e\xcf\xbfU\x18\x87\x9e\xd5\x9d\x05\xc0\x96\xb0\xde\x17\xab\x8f\xc4?\x19i\x1f.\x07$\xf0?\xa6Kv\xbdFh\xe4\xbf\xc4V\x99cCh\xf6\xbfiT\xfaXw\x8c\xc5\xbf\x8f$\x84\x8d\xcf\xea\xea?\xe7\x8e\x13\xf0\x936\xf9\xbfcn>\xd9\xaf\xfb\x00@r\xe8\xe1\xd3\xdbu\xf1?\xab\x82\xef\xd2\xfb;\xf6\xbfJ\xd2\xc3j\x7f\xbb\xf5\xbf\x07\x04\xb0C\xfb\xb7\x00\xc0\x0c\x82\x0e\xcc\xd8\xf9\xe8\xbf<\xfbh\xb5wJ\x0f\xc0h^\x83\x93\xc5\xe5\x11\xc0\xa1\x95\xfe\rqi\xfe\xbf\x03\xcb\xbd\xb4\xf0)\xf4\xbf\xc5\x17q\x89\x0cd\x08\xc0\xaa>_=\x05\x9f\xfc?\x99\xb9W\x89\xc2\xee\xf2?Qt\'C\xdb\x0e\xf5?\xbe\xac\x9f\xc4\x1c\xad\xe7\xbfd\xac\xa4.\xc9\xac\xe3\xbf\x15W>m\xd0\x0c\x99\xbfv\xf6./\x82y\xd0?(o+L\x17O\xd6\xbf\xec\xfd\xd1P\xb9A\xe4?QAY$v\xf3\xf2\xbf\x90<\xc4\nG=\xe9?\x04\xa7eI\x14\xd4\xcf\xbf\x033\xf4\xfbB\xad\xe1?\x03^$d\xa1\x9f\xc4\xbf\xed\x1c\xdb&\xd1q\xf9?\xab\x1b\xce\x8a\xcc\x05\xf0?A\x060\x87&\xa7\x08\xc0U\x08\x14\x0ci=\x0c@\x88\xde\x8e:[_\xfd?\x1d\xe4Ju\xe5?\xef?\xa0E(|z\xec4\xfd\xbf\xb9\xe0\xe37\xa2=\xd2\xbfh\x9c\xc0\xf3\xfa\x9b\xfb\xbf\xeb\x0c\xddR\x8e\r\xfc\xbf\xb0u\xf1>\xb9\'\x10\xc0\xc9I\x14\x935\xe0\xe5?\xe7\xcb\xcc\x86\x86+\r@\xcf]\xe6\xa1\xa2\xa4\xef?\xfc\x8c\x82\xd9\xc2\x9c\xd1?V\xacJ\xef\x13\x05\xec?\xf0\x08G\'e]\xe4\xbf\xda\x165\xf88]\xd1?\x8crAl\xec\xba\xf1\xbfW\x1c\x07G\x12\xb4\xfa?\x88\x108^\xd5\xcb\r@Y\xc6\x00\xad\xc8&\xf2?\xc0a\xd5\xefs\xaf\xc6\xbf\xef\xeb\x98\x85\x19\x04\x02\xc0b\xd9d\xb4i\xaa\xe7\xbfI\xa0\x96\xbf\x8f\x93\xb8?\x0c~$\xd8\xc0\x94\xf4\xbf\xa0]:\x1b\xf0\x1d\xf0?X\xf4G\x8a}\xfa\x03@:\xdd*\x0b_A\xea?\xda\x1a\xe1*|\x85\x00\xc0\x02\x10j\x14\x88\x10\x07\xc0\xa5\x84\xd1"<\xbd\xf3\xbf\xf0e\xf3\x85\x10c\xfd\xbfM\xdd+8\xff\xad\xf7\xbfb\x00\x1f\xbe\x0c\xef\xf9\xbf\xd6\xa2\x8d\xb9\x86\x83\xfe\xbf-\xe0\x1cuo\xee\xbe\xbf+[\xc7jL\x0b\xf4?\x89M#c\x1b7\xc6?\xd4\\\xdd\x836\xe5\x01@\xab\xeb\xfeB\x16V\xe9?\xe8\xfe\x95)=C\xf3?\x1f\xfb\xc3\xf4t\xba\xbd\xbf\x84\x10a\x13\xba/\xb4\xbf\xe4r\xb5l\x08\xd8\xa4?\x0cT\xa4\x07\xcaJ\xda\xbf\xd8\xa8|Q\xbd\x1d\x06@/\xcb4y\x82Q\x03@\xe8\xb8\xad6\xc7\xa7\x08@\xc9\x01\\\xc6\x1dn\x00@\xd2\x1f\xa3\xc1e\x81\xf1\xbf\xaa\x1e\x1cY\x9c\x91\xeb\xbf\xff\xd2w\xba\xbe(\xd8\xbfs\x10.\xfd;\x9a\xf2?\x90F\xb8\x9a\x89r\xee\xbf\x8265f\x1aL\xe9?\xb0n\xf3\x00\xdb*\xfa\xbfL\xbf\x877q\xb2\xe6?D\x13rg{\x91\x03\xc0:\xe0\xe9\xd2\xef\\\xaa\xbfz<\xb6\xa7E\xf6\xd6\xbfw\xde\xe2\xba\xc6\x01\x07\xc0q.\xd2\xda\x7ff\x10@"`\x9b\xc5\x90G\xb8\xbf*0rV\xd8O\xb9?\xee\xbf}v\x08=\xef?IH\xb5TBx\xf5?\x1a\xa3rh\x1a\n\xfb?\xb8U\x9c+\x9c\x9e\xdc\xbf\xb7\xc1c\xe1\xdb\r\xef\xbf\xe0/\x82QgZ\xb3?\xa6\xe2\x17\xbc\x05]\xdd?\xa9l\xdf?\xb1\x9e\xda?\x8c\n\xee!gd\xe7\xbfK\xac9>\xf5!\xe9?\x07Q\x02s\xdb\xfb\xe4?\xa2z#\x19\n\xd7\xeb?\xa6kC_\x9b\x8a\xe2?0\xcf\x94\xadg\xf1\x02@\xdei1\xcf@I\xf7?o\x8b\xf2$Z\x83\xe6?\xeeb\xd0\xb3\x91H\xd8\xbf\xd1\xc0\x0ck^\x95\x01\xc0\x96\xf21)`\xb9\xeb?l\xed\x89\xdf\xee\x08\xf0?\xddZ\xb5m\xfcQ\xf5?4\x18w\xa0\xbe\xf9\xf6\xbf\x1b\xa7\xff\x1d\x08\n\xec\xbf\xaa\x08\x85\'R\xac\xc3?\xcd\x8es\x87!T\xfe?X\xbb\x8e[\x9e\x89\xed?\xdf\x8b\xf9T\xe0G\x03@}\xcer}TM\xeb\xbf\xe1\xf8V\xb9\xd8J\x0f@\xe1Zv\x02\xa1m\x12@p\xb4\x0be\xf7\xa7\x10@\xc4\xb7\xf9!m\xb9\xf7?\xf2\x93\x83\\\xe6W\xff?@s\xc2\x92\xd9b\xee\xbf\x03\xeb%\x8b\xf0\xed\xc6\xbf\xa1\xe2\xc9\xcf\xfa`\xdd?y\xddyAR\xc5\xd2\xbf)\x9cScA\xd6\xc9?\xfc\xc4=4\xd5\x8f\xc7?\xd9]\xbd\xef\x01)\xe0\xbf\t\x05`j\xa11\x0f@\x8c\xb7\xf2\xfb\xea\xd0\x04@\xc5\xee\xf2\x9e\\i\xf0?\x1c\xc8\x01y4\\\x13@\xca,\xf74\xf3C\xff?-f\xac\x07\xdb\xce\xf6??\xef\x9b\xd2\xaa\xa1\xd9\xbf\xbc\x1d\x9a&v\xef\xa0\xbfC\xde+k\xa9s\xea\xbf/\x1b"c|\xd7\xe5?d=zH\tJ\xea?\xd2?\xb1rKp\xf0?4@;<\xc5l\x03@-\xd3r\x1co\xab\xed?p\xcb\x9e\xca\x94\xb8\xf9?X\x112\x18\x02H\xde\xbf+!\xa8I\xba.\x10@\xd7\xa3\xc3\xaf\xd8\xe5\x13@\xdf\x8c\xe5\xb4\x0fH\t@}Z\xb3m\x14\x9e\xeb\xbfJ\x1e.\xde\xc2@\x00@\x05\xa8\xd6\xc8\x1b\xa1\xce?\x9d\x12\xdd\xa3\x1b\xe4\xe8?\xeb\x03\x91\xb7\x1d\xb5\xd6?I\xa2V\x8b5\x1d\xf0?6U\x96\xafH;\xf5?63\xb9\xf4\xc0.\xe5?\x92\xe8\x9a0\xda\xe7\xf6?\xf9\x01T\x87UV\x11@\x8a\xd9\xcb!\xc1W\x18@\x94\x1f\x1e\xb40\x9a\x14@\xc8\x8be>-&\x12@\xc6\x9bx\x86\x15i\x06@\x06^\xcer\xb0\x94\x03@\xa2\x1er\x8f\xd8r\xff?\xb5\x06\x17\x81\xf6\x17\xc7\xbf$\xcc\xb2\x14\x03\xb4\xef?QY\xfe\xe3b\xc9\x0e@\xe8|\x8e\xcc\t \x05@\x05\xb4\xa2\x9bQZ\x04@\xb8\'\xa7Vrh\xfc?n\x82\x9c\xd7\xe7\x03\x08@)\xdeo\x07\x93-\x10@\x8aO\xe5\x97\xb56\t@\xd3\xcd\x12X\x01m\x0b@\xb2\x16H\xeb"\xb7\x06@,6\x91n\xcc\xcd\xd5?\xe9\xc1X\xf9\xf6\xa0\xf1?\xc3\x06\x056\xc3\xf0\x94?\xb7m\xef\x99\xc5%\xf3?1)\xb6\x17*\xb1\xf8\xbf\xbf\x95\xce\xd5\n\xe5\xdc\xbf\xd2\xeb\xfe\xeb\xbd\xbe\xd8?\xeeo~\x0b\x0cV\xf5?|\xf5\xf1\x13\x08?\xef?d\x0f\xc3\xbaN\x83\x01@\xbe\xcc\x8c\x91\xab\x1a\x12@\x99\x9e\x83\xda"\xb9\x04@\x86\xaa\xdd\x96qB\xff?\xac\xf2\x18`\xf7?P\t\x97%80\xff?\x8f_\x11\x0cEZ\xef?\x91\x8aR\x17\x1e?\x10@\xe7)}4\xe8\x15\x06@\xe1\xcf\xdb\xa2\xfc\xc3\n@\xd5\xd7\x99v\xdf\x9c\xf8\xbf0\x7f-T\xfb\xf0\xd1\xbf\xcf\xa7\x02T#r\xe6\xbfi6r=\x9b\x1ew\xbfW`C\x03l\xad\xdf?\xc4H\t\x16b\x10\xcf?\x1aj\xb1\x10\x95[\xd0\xbf2\x94\x06N\x98\xa4\xea?\t|Ql\x14#\xfd?\t\x813 \x1c\x80\xc9?\x99\xc0\xf7,\xc4K\x9f\xbfT#\xa1\x1c3\xbb\xea\xbf\xb6\x19\xf6\x98\x89\xd9\xf7?\x83\xf6\x87L\xca\x95\x02@\x8c\xe6\xe0\x9c\xd6\x81\xf1\xbf\t\x8a\n\x94#\xe2\xbb?\xe1\xb7\n\xf3\xc5\xe3\x00@6\xe1=<\xad\xc1\xd2?\x96.\x1bh\xd4l\xea?\x06\xb0*\x19\xd49\x01@\xd4\x90\xd0;\x1ak\x10@j \x02\'[:\xe0?\xc8\x10\x8aOW\xc3\x02@\x96\x00\xdd\xe6\x13\xc4\xe9?\xbf\x95\xd0\x0f\xba\xf1\xe6?\xb7-3\xa8-\x89\xf7?0\xe5?\xc0Y\xfb\xfc?\x1a\xe5:\x177E\x07@\xb5Xn%\x7f\xbd\xe6?\xb3:\x99\x1a\x83*\xf3?NvfY\x01h\xe4?\xd6@;\xe0\xc1\xff\xe7?BOi )A\xdc?!5\x1aT\xf1\xec\xd1\xbf7g\xf4@1x\xf3?\xee\xf8\xab\x1a&\xee\xee?\xd9&\xa0\x9e\xef9\xe2\xbfB\xf3\x0bC\xbbi\x00\xc0\x02V#\x1d\x1az\xf7\xbf\xd9a\x84\xdc\x8a\'\xbe?\xf4\x8dMWH\xb0\xe5?s\xee\x00\x80Q\x89\x04@\x15o\x1f\x03\x1d>\xd8\xbfq\xbb\x85\xd5\xd1\xf2\xff?<\x13T\xd19\xb6\x04@N\x17\x1c\xde\x08m\xfb?p\xd9h7\x1d\r\x14@\xa8v\xd0Z\xe7c\xe8?A\xf5\'\xc2\xceP\t@2\xf9\x9aZ>\x92\xec?"\xca\xc4\xac>"\x06@\xe8\x1d\xa0\xbe8\xab\xff?\xf0\x1aS\x99\x0bk\xf1?u)\xaa\x01\xbao\xf6\xbf\xb0_\xc8\x1cF\x9b\x03@x\x01Q\x02\x12\xdb\xcf\xbf\xf1\xe9C\\\xf7Y\xd5?\x12\xa6\x84\xea\xe9W\xc3\xbf\xf90\xa95\x05.\xdb?\x85}\xcc5\xfb\xaa\xce?\x0f \x83\xc2AP\xeb?b\x05\xef\xcc\xeeP\xb2?B\xdb\xf9\xe1\xf5\x9d\xcb\xbf\x8b\xa2/`\x0c\xe2\xc6\xbf`\xdd\xa1\xb4\xc5\x92\xf9\xbf=2\x1fL\xfe\xd2\t\xc0[\xf1nPhY\xff\xbf\x17\xbb|B\x94\xbb\x00\xc0\x99\x1f\x1bk\xc7\xce\xf9\xbf\x94\x02\x83\x96\xe6\x1f\xd3?\xaf\x1a\xa3B1\x95\xfe?_\xd5\x89r3e\xe3?\x85\xdaW\x83\x9dZ\xea\xbf]\xacJ\x1a\xb8\x07\xd5?\x00\x01\x1e\xd8YT\xe0\xbfR\x80\xa1\x90\x9bj\xf1?\xe3\xcd\x99n\xeb\t\xf9?`\xb7E\xe7U\xc1\xe6\xbf\x02\x88\x0c\xbc\xdc-\xe0\xbfk\xb4F\x17\xf7\xf8\xe4\xbf\xb6\xdf\xdfu\xfbf\xe1\xbf\xbf\xc5\xd3\x97!{\xf8\xbf\xd7\x90P\x8e\xf4m\xc5\xbf\x93\x1a\\\xd8\xb7\x90\xe2?)k\xbe\xefFW\xa3?\xaa\xcep\xb6\xcc\xee\xf3?\x81\x11\xb1\xd9mk\xe2\xbf+\xd0P]\x00p\xd0\xbf\xbb\xd2\xaf\xf8P\xbd\xf4\xbf\xf22n\x01\x01\xbc\xc2\xbf@\xdf\xb1\xce\xe1i\xd3\xbf++\x00\xd7\xbfo\xda?\xf9L\x03\xca\\*\xd6?\xe5\xbdS\xd5\xbe8\xc0\xbf\x95\x99Ui\xdaZ\x00\xc0q\x8a\xd2\x96\xe6\xd5\xf9\xbfm\xb9\x01[\x95\x10\x00\xc0\xbc\x10\x05x\x9f-\x13\xc0\xbbd\xbc\xb9\x8e\xfe\x05\xc0Y\xc9\xd91\xdc:\xea\xbf\xce\xf7(\xf8\x94\xdb\xeb\xbf\xea\xb8\xc9\xce\xab\x87\xb3?e\xc1\xae\xe5\x86>\x04\xc0Ks\xd0\xfcp\x87\xc2?;9\x1b\x0f4\xb8\xd8\xbf3\x86\xf6\xa5\x80\xae\xfd\xbf\x9a\xb8\xb3\x1c\x87\x9a\xe9\xbf9E\xa7\xfaq\xd4\xf2\xbf\xda\xdc\x874\x94\x91\xe6?\xd1g\xb8\xa4x\xad\xe4\xbf^\xbf_\xcd\xbf\xb0\xc6?<\x85&6R\xa5\xe5\xbf\xaa"\xcbG-\x1a\xf5\xbf\x88\xd2\x11T\xb5\xe5\xe2\xbf\xec\x127\x1f\xc5\xc0\xd9?\xdaB\xc5\x07\n\xe3\xe5?3\x0e\xc7_\x92\xeb\xf0?\x19\xb3\x1f\xeeRY\xc3?\xfa\x01\x9d\xa3\x9bf\xf2?W\xb6\x10\xfee\xab2?5A)\x05\x15\x83\xe6\xbf\x05\xb7\x0cO\x81\xdf\xd6\xbf\x0bim\xfb\xbcX\xf8?7\x8c\xfd\xea\xadQ\xd1\xbf@\xb7K\x18\x10$\xea\xbf\xb3\x8b\x86\xed\n\x98\xa4\xbf\xe7\x10\xa9-@\x06\xe5?E7\xb0\x83\xfe\xe5\xe6\xbf\xa9\xd3\xbf\xd0a\x04\xed\xbf\x069\xc1\xb46\x1a\xe4\xbf\xc9-\xf2\xc3\xac\xe9\xe3\xbf\xd5\x7fA\x8d\x97\xca\xec\xbfs\xf8\x8c\xbe\'\xf4\xc8?\xbd\xef\x8aM\xa23\xf3?\xe0U\xc4\xc3!\xfb\xc5\xbf\x8d\x8f\xaaO\x0fp\xe9\xbf\x8e#\x19\xb5\x0bO\xe6\xbf\x88,dLk\xf2\xf2?\\s\xf7=\x05\x8e\xd6\xbf*\x04\x8b,N\xfa\xe6\xbf,\xf8\xb8\xe9I\xda\xd4?l\xd19\x1dqJ\xf7\xbf\xdd\xc1u\x17 \xcf\xe0?\x00\xc4\x8a\xbc \x12\xc7?@\x02\xe3\xec4\x1b\xe7?\xa3,yQ\x02\x07\xc3\xbf\xbf\xc0\xa5\xb7\xc6K\xe6?\x8d\xf4\x02 vC\xe5?m\xe9Lf\xc7\x90\xf2\xbf3\xfb\xec\x1am\x1es\xbfP\xe7fr@\xc5\xeb?8\x8eu\xea\xd9\xeb\xea\xbfI\xbd\x9d\xde\xb30\xda?\x19\x89\x82\xef\xc5\xd7\xf4\xbf\xef\xaa\x9d#\x88$\xf6?\x05W\xe8V\xe6\xa3\xcf\xbf\xa4\xa9\xe8.\xfeE\xc6\xbf\xec\xd9m\x97\xdcI\xe1\xbf]F\xb2\x16B\xe7\xe2?,WR\t\xe5\xaf\xe2?\tK\xe9\x87$(\xea??\x0bM\xd9R\xba\xb6\xbf\x88F\xe3\xb2\xc3v\xef\xbf7^\x89\xd8j#\xc4\xbfY8c6\xc6\xdb\xe8\xbf\xca\to\xbf\xec\xf0\xd9?w\xe0\x13\xad\xb9\xeb\xe9?\xaa\xe8\xb7\x92A\xe9\xf7?\xcc/\xcb\xae\xb1T\xd3?\xf97e\xa4a\xab\xf5?\xd6\x06:nh\xb0\xde?R\xd6{\x89\x90\r\xf0\xbf\xa7\xd1\x0cD\xff\\\xef?$\r\xc6\x91\x16\xf1\xfc?\x9c\xca\xe3\xda/\xbb\x03\xc0j-S\xa7\x98?\xfe\xbf\xd0\xe5\x9b\x92\x11\x82\xd2?K\x88&\xbf\xc8\xee\xf6\xbfhB\xa6\x02\xe3\xb3\xe0\xbfC\xee(b\xda\xe6\xeb?\xfb!\xef\x1d\x12\x86\xe9\xbf&o8x7\xd1\xf0\xbfp\x16\xcc\xd4W\xeb\xfb?Ua\xa1i\t\x1e\xb7\xbf\xdb\x10\xc6\xc1vQ\xd4?N\xdc\xd7\x0f\xf7\xda\xb2?\xf1k\x0cF\xf5T\xca\xbf\x8f(q\xdbU\\\xdc?\x8b\xde\x162\x92\xbd\xc0\xbf8\xb80"\x88\x86\xdd\xbf\xdaa\x8b\xb21\xa4\xb3\xbfD\xb2\'\x859\xca\xd3?nw-\x98\x03\xc5\xd7\xbfaj\xb3\xacn \xe1\xbfr]\xff>V\x90\xda\xbf\xfa\xec\x1at\xd0x\xd3?.\x0b\xe5\x1a-]\xd0?5,\xbc\x87R?\xf5\xbf{P\x1a\xdc\xbe\xbc\xf0?\xe9\x86\xceHq\xe4\xd6?\xbd\xb0\\^w\xd6\xf2?\xa5\xe0\xf0\xaf\xf8\x99\xc4?\x02\'/\x11qy\xf3\xbf[\xda\x8e\xfd\xa2\xee\xe7\xbf*Wa\x96\xb8\xb8\xd0\xbf\xef\xb6\xed\x8d\x03\xa0\xe0?\xd9\x045\x1cR\xac\xd5?\xd0!\x9b\x9c\xb5!\xea\xbf#SgZ\x9a\xa0\xe2\xbf\x19\xc7\xf9\xf26\xe7\xc4\xbf\xe2\xd7`\xbd\xc0\x97\xe2\xbf\x95\xa4j\xb5f\xac\xc9\xbf\xc9\xc2\xdb\xf6Ka\xf5?^\xdbE\xa4\xdfb\xf4\xbf\xc7\x95\xd6\x01X\xcf\xb9\xbfsk\n\x9e\x9a\xf2\n@\x8c\xd4\xb6\x919\xb6\xf2\xbf\x1c\xce\xa6\x8b\x88\xb2\xc0\xbf\x86\xb8i=J\x85\xc9?\x9e\xfc\x94\xfa\x8c\xbe\xc9\xbf,i\x03C\x99\x87\xef\xbf\xe3\x04\xa5\xdb\xcd\xb0\x95\xbf\xa76\x00t\xcbL\xf2\xbf\x1d\xac\x86\xc7\x8e\x9a\xdf\xbfo_U\xd4)h\xda\xbf<>\xd0\xe5z:\xf5\xbf\x88\xccQ8\x943\xd8\xbf\xeb\x0fJi\xbe\xaa\xd6?q7\x06\xda\xb5r\xe1?&\x07\xcb\r\xeb\x8b\xd3?\xa4h\r\xc4I\x89\xb5?\x1dI\x00\x01|H\xb5?i\xba\xf1\x04\x1b\x07\xba\xbf\x1f\xc0L?\x11U\xdc\xbf\xe7\xf6I\x17u\xa6\xde?`\x19\x19\x8f\xad\x86\xe9?\xe2\x8e\x0c\xb3ag\xe7\xbf\x8d4\xdc\xe1%\xe1\xd6\xbf\xa8f\xea\xbfH\xe3x\x8b\xb0>\xb4?\xa0eT\xc14\x16\xe9\xbf\xdc\xb0\x91\xa0\x04\x18\x00\xc0\xd5\x19\xd7v\x96\x1c\x05\xc0$\x17\xed*\xef\xf6\x04\xc0|\xe8\xea\x04%\x05\x15\xc0\xb2&\x1e\x16\x14\xa3\x00\xc0\x8b\xf7\x8d\x896\xdf\xf9\xbf\xdd\x9a\x0c\xed"\xe5\x01\xc0x\xf2\xb5\x15\xc2\xfd\xdf\xbf\xca7!\x8cWY\xc6\xbf\x18\xa6\x9es\x96\xca\xe8\xbf\xaf7\x11\x14\x9c)\x08\xc0KZ\xd5\x90\x98\xe6\xb2\xbf\x91\xd2C\x18\xdde\x06\xc0U\xfe[>[ \xee\xbf\x8e\x19\x03\x9aj\xa2\xd4\xbf\x84\xd1\x984\x1b\x15\xf4?\x9c\x16\x05G\x8dx\xeb?\xef\x15MA\xac\xa6\xec?\xd5\x8e\x12wG\x9a\xf3\xbfZ\xe0r}q[\xbb?A\x13\xb1\x85\xd9C\xe5\xbfL\xaf\x00_\x8b\xfe\xe3?\xdeG~\xa1B\xbbp\xbfuCo3\xbf\xe6\xd4?\xab@\xb7\x9e\xf7:\xd0\xbf\x1d\xdf\xe7\nfs\x00@\xb2+\xa7\xb9\n\xd3\xdc?\xa3\n\x9b\x04\x9cv\xf2?o7.\xb9-\x0c\xfc\xbf\x9bk\x88\xd7o/\xf2\xbf\x1aD\xa818\xbf\x07\xc0\xb6Q{\xee;4\xf6\xbf\x1a\xe3z\xe0[\x13\xdc\xbf\x8a\xcdDU\xd5\x14\xf8?\x10\x89Aj\xc2\xdc\xee\xbfE\x05\xb1\x8b\xb6\xe0\xec\xbflR\xcb\x03\x0bQ\xf6\xbf\x89\xd9\xd2U\x92\x16\xed\xbf\x91\xdd\xc1\xe9,%\xf7\xbf>\xc5\xe5\x03j{\xa0\xbf\xf3\x98\xb5\xf7\x98e\xf3\xbfzY\xd0\x1b\x0f\x01\xf2\xbfdfH6\xbfT\xfc\xbfd\x98@9ii\xd0?\xc2\xa77\xce\x13\x0b\xd8\xbf\xe8\x11t\xf9h&\xf0?\x97\x82\xf3}\xf07\xfc?{\xd4\xe5\xd7\xb9\xe6\x00@3\x17f\xc0Q\xce\xe7\xbf\xd1Zf\xf7\xa5%\xec\xbf\x15\xe8\xe5\x9d\xdf\xf7\xcc\xbf\xc7v\x05\xce\x8fc\xf5\xbf\xa4=\x05LRs\xd0\xbf\xc0+\xd4n\xf4\xa1\xf0?Y\xd8\xaf\xf5\xaa\x17\xc1\xbf\xaf\x19dY\t\xbc\xc3?\xd7\xb7\x0e\x98\xce\xcb\xea?\xed\x9d\xec9\x0f\xa5\xfd\xbf\xb9\xd8<\xbb\x0e;\x04@(\xd1\xd9\xb5\x87G\xfd\xbf\xec\xf8<\x9d\xc7\xb3\xe5?4\xaf\x16F\xfe!\xbd?lX^-\xa7\xc9\x00\xc0\xd3Yfn/\xed\xe0?;t\xb6}\xac\xd3\x01\xc0\x1a`\xbd\xb8\xb1\xa0\xcc?\xcds\xb2\xde\xca\xfe\xd0?hA`\xdbD\xea\xdf\xbfE\xa6w\x91\x03+u?\xe7\xcf\x8c\xd3\x84\xa5\x03@\x94\x1d3\x82\x9f\xeb\xe0\xbf\xad\xe8{\xd7B\x16\xf8?+\'\x0eN\xf9.\r@!f\xbfa\xc0\xea\xf4?\x07\x87NO\x15\xc5\xb3\xbf\xcc\xb4A\xee\x08\x14\xf3?e\xa2\x8e\x08R\xb0\xb8\xbfY\xd4H\x10\x9f\t\xd6?\xd9\xf4\xef\xa9\x15\x06\xc0\xbf\xda\x83|y\xa8\x1d\xe6\xbfW\xdfG$W5\xd3?\x9f\xc6\x1f"\xd0O\xed?/\xf9_\xb6\xc3\xef\xe7?\xbd\x0c\xc9\x02k\xcb\xf3?n\x8c\xd2+\xbdL\xf2?!\x17x>\xa1\xeb\xfd?\xfe:\xfe\xa8\xfb\xa8\xe8?h\x90\xc3Ad\xc2\xe5\xbf\x85\x9fr\x1d\xb7#4\xbf\x90\x881\n\x13\x0c\x06@\xd7\x06^\xbe(\xdc\xf0?\xdf\x06\xaf0Ta\xf6?\xf7>\x9d\xedCR\xeb?\x99d\xf2\x1a\x9d\'\xce?\x1d\xa9oq\xa3\xd6\xf6?\xcb?=\x93B=\x06@Pc~\xcd\x03:\xf9?\x8c\x06&I\x83i\xf6?\x18\x83F&S\x81\xef\xbf\xaa\xd8\xa8;`\x99\x01@\xc2\xee\x82[\x1a,\xca?\x1c\x04\xc4\xb0\x92\x11\xff?\t\x93]B\x15\xdb\xf6?\xf0\x1dT\xff\n\x9e\xef?h@\x14\xae\x1b\x91\xec\xbfL\xd2k\x1e\x88_\xdd\xbf[[Z\x11\xd2\x15\xea\xbfc\xde\x91\xfcF\xd2\xe8?U\xeb\xd9\x13NY\xf5?\xd4wD\xff+;\xa6?\xbc\xfc\x85EY\xfa\xfe?\xeb\xec\xa9\xd5\xe7\x0c\xf5?x\xe9&%\x9e\xa6\x03@m\xcd4\x8acS\xe8?#\xbb\xad\x04\x9a\x96\xf0?\x86o\xa7\x16Fm\xe7\xbf\xa1U\xd0*r\xc8\x0b\xc0\x870.\x8e\x87L\xeb?\xd1\xa4\xb2Sd\xea\xd0\xbfB\xff\xf1\xa0\x9c*\xef?\x9b\xbc6\xbag\x04\xf5?\x7f\xc1[S\x1b\n\xf3?\xe3\x8c*\xd2\'~\xfa?V\xb0r\xac\x17\x0b\xf2?\xab\x18\xf5\xccG\x87\xe5?.pe\x9b\x04l\xe0\xbf\x80\x04\xc7\x85N\x18\xd9\xbfm!\xd3\xac\xa6\xb0\xc9\xbf\x90\x85\xa7<)\x8a\xe6\xbf\xbf`\xc0\xf83\xdf\xfb?\xd5\xd5\xf2\xad\xb6\x85\xf1?\x87\xa5-r\xb2\xdb\xb7?DJR_\xe6\xe6\xd5?\xf6\xb8\xa8]\xce%\xf5\xbf\x0c\xc5\xb2\x99\x1d\x17\xf0?\x15\r\xaf\n\x8a\x02\xf4?\xa9\xa1\x85a4\xe5\xe3\xbf(\x13\x8b\x9d\xee\xcb\xe9?`\xff]\t\x83\x1e\xf7?\xfc1\n\x80\xb9\xe1\xe7?.\xb0o\xf1\xd2\xae\xff\xbf!\xd4\xac\x8a\xc5\xcb\xfa\xbf\xaej$\x13\x10E\xf2?Y\xcf\xba&a\x95\x02@!\x11\xe0\x17\x88\xdb\xb3\xbf\xdc\x0b\x13\xb8B\xf1\xd3\xbf\x06\x9d\xea\x81\xc5\x91\t@\xaba\xa0m\xb5D\t@\xb4\x8bQ\x8b5\xf7\x14@\x9b\n\xc5C\xdd\x9e\n@a\xca\x18\x85%W\x01@_\xc1v\xfa\xde\xbf\xf2?\xfb\xf6\x84\xf4\xad\xd2\xf9?\x07\xeda#=\xfd\xe5?u\xeat\x08h\x1f\xff?>\xe3\xed\xdcM\x92\x97\xbf\xf0\x7f\x92\x8d\xc8 \xd4\xbf\xab\xb2\n\xda\x19\xed\xe6?/\xb0\xc1{\x1cE\x04@\n\xa7\xecG\xbb\x13\xe3?y\x8bJCEO\xd7?\xf8F\r\x1d\xf2\x06\xc7\xbf\xcb\x8d\x92\x0c\xcb\xd5\xd0?3r\xfeca=\x02@\x01wUn)l\xf5?\xc4.(\x89J\x15\xd7?0\x03\xed\x06\x8f~\xe3\xbf\x01\x94\xd9\xb0w\xa6\xc4\xbf\x83\xfd\xcce\x17\xbe\xe9?xvCy\xbcu\x00\xc0q\x03y\x01<\xbd\xd6?\x0e\xbeZ\xf38\xd4\xe0\xbfR\xd8\xd2\xbf\xd0#\xf7\xbf\x17}\x8d\xbc\xff\xaa\xa3\xbf\x12\x16\xfe\xa2\xe0\x82\xde?K\x15@z\xc63\xfd?\x17\x10\xc1<\x07\t\x00@\x14\xfb$\xe3\xf9\x1c\xf5?\xf2\xd5\xa9&\xadG\xf6\xbf\xf1\xa1\x864\xd4\xc4\x01@\x80x\xffc\xf4\xe7\xf5?\xf9Q\xff\x89\xf2\x94\x01@\xa3S\xd1s\xd9\x17\xfb?n%{\x1cK\xa6\xbc\xbf0:\xe6\x1f\x05\xe3\xf2?R\xb3.=\r\x85\xd4?8m@\n\xba+\xf6?\xd9\xc9HXV\xd2\xe5?\xe2\x87D\xad?~\xec\xbf\xe5\x96\x19|\xce\x9b\xd0\xbf\x01\x97m\xfbd\xb9\xce\xbf,`\xaf\rG\xcc\t@\xf9\xe0\xbcF\x06\x9f\x02@_\xbb/x\xc0\x9e\x06@\x05\r6\xc1\x81}\xcc?\xcd\xba\x93\x93\x8fO\xe3\xbf5\x9b\xc8\xbdN\xc8\x11@\xd8\x90{3\x9f\x90\xf2?\x0e\xe5\x99q$\xc9\x00\xc0\xd7(\xc7\xd9\xf3\xaf\xfc\xbf\xf2q+f.\xe1\x03\xc0\x9b<\xa6\xc55{\xec\xbfrlTN\xac\x1d\x06\xc0\x1a\xa4\xfb\x8d\x1a\x19\xea\xbf\xde\x1a\xdf\x8b\xfd\xbe\xe2\xbf\xbb\x87\xc5\xb3D\\\xd6\xbf\x9e\xb3\xed-\xbe\xf9\xf2\xbf\x90\t\x8e/b\xcc\xf5\xbf\xe0BpS\x819\x0f\xc0N\xd4\x19\x85\xf0\xaf\x02\xc0\xcb\xfc9S6:\x02\xc0\xde\xf3\xe5?\x94\x90\x01\xc0o\xc2gz:\x11\x10\xc0\xb0\x804\x1f\xca\x01\x0e\xc0\xaa\xdcI\xc4\xe0y\xff\xbf\x03\xc77\xf9:\x8e\xf2\xbf\xa9\x92\xd5\x852I\xbe?\xb4r\x1c\xa9 \x8a\xd6?\x13\x9bJ\xbc\xa1\x1a\xbf\xbf\xcaD\x0f2\xc1\xad\x8b?\nr)\xb4^S\xb0?}\xa0\x8b\xc1\x06\x98\n@\x88\xdc^wA\xcb\xf5?\x9d\xf3I\xdf\x81D\x91?sb\xa2k\xf4\x8d\x00\xc0~\x84\xbc\x84\xf0s\xf0?\xd9\xdeZ\xdf\xb8\x16\xdd?q\xcda\xb3\x94$\xf3?\xaa\r\xfc\xa8\xc9G\x0b\xc0\x1fg\xb3\x1ebP\xc2\xbfJwV\xe0\xde#\x00\xc0\xcf\x977Q\x8e\x06\xe6\xbfxYN\xb4"\xce\xf7\xbf\xf5w\xe2Y\xe29\xc0?G0\xc8\xcc\tS\x00\xc0\xd4\x83\xc7C\xe8\xc4\x07\xc02-*\xffU\xdf\x06\xc0\xb4\xff\xf9\x11\xb3\xa5\xf4\xbf\xa9\xcf\xa0\xf8r\x85\x04\xc0:\xce\x8fC\xd9?\x13\xc0\xc6\xeb`\xb2r\xc6\x08\xc0\xbe\xef\xfd\xa6\xd0r\xf7\xbf\xeemq\x91\xceE\xd6\xbf-\xdd\x08\x17>\xe3\xc0\xbf%\xc5\x1b\xb3\x82\x1c\xe9\xbf\xb68\xeap\xac\xb1\xd5?\xacD_+\xdd7\xdc\xbf\xf5\xd6\xe3\xac\xd6j\xf8?\x84\xda\xec\x83\x93\xcc\xf5?\xdc\xba\xabz\xda\xb7\x00@\xa7\xff\xed;8<\n@\xfdB_.\x1c \xb7?K\xeda\t(\xfc\xe1\xbf\xe5N}\xa087\xeb?\xc9kN\xbd\x9a\xe6\xd4\xbf\x80\xf1\xec=,\x14\x04\xc0%\x19*\xfb\xf2b\n\xc0\xf9\xe8N\x00b\x9d\xeb\xbf\xa1\x12\x9c\xec\xd2E\x0b\xc0\xcf\x84F9\xdc\n\xe7\xbf{\x89\x8aQW7\xf4\xbfG\xba\xbb\xee\x7f9\xd0\xbf1[F\xc9\xc4\xd5\xf3\xbf\xf0\xf9\xc2\xf1\x98\xdb\x03@\xa3\x1cD\xea\x83$\xfa?PB\xeaSz\xad\xf6?\xce\x8c\xb1 \x80l\xf4\xbf\x16\xcb\x93\x08\xca\xd5\xee\xbf"R\xb2\n7\xe5\xbe?;\x94\\\\\x9d\xf1\x05\xc0\xd4\x81NV\x8aX\xd6?\xd3\x15c\xed\xf3t\xf2?\x9c\x90\x87\xb7\x91\x85\xc9\xbf\xf4\xfa\xe8u\xde\xf3\xf6?\x82 B\xdf\xe0K\xf1?J\xd3\xc3\xf7\xf8G\xf1?Z\x91\xaew\xc3\xa1\xe7?&\x03\xf5)\x10 \xfe\xbf\x87,\xdd\xf2.1\x0f\xc0|\xd5\xe1\xed\t.\xc9\xbf\xe2\xb8\x8d\xfbH/\xe6?V5l\x12+I\x05\xc0\x062\x979\xb6\xe1\x08\xc0\x8bQ\xe6#z\xa3\xf5\xbf$\xf4\xae\x9d\x94\xa9\x93\xbfH\x7f\x07\x08\xe2\xac\xef\xbf\xd0\xc7v\xeb\x0e%\xef\xbf\x82\x9a\xfa7\x9c\xb4\xd5\xbf\xf6\x15.\xa4\x1e\xf5\xf9\xbf\x0c\xb2"\xc4h\\\xee\xbf\xbb\xff\xc4\xecB}\xaa?\x7f\x01\xe9\xac\xad]\x03@\xed\xcbVT\x04\xb5\xd7\xbf]2\xb5\xd2s0\xdb?\x9eQ\xe3\x1d\xa52\xce\xbfk\xeb\x06\'\x00\xeb\xef\xbf\x83U\x89%64\x03\xc0\x03\xadAk\xc4y\xb1?\x1f\x0f\x1f\x91\xa2i\xf6\xbf\xd3\x8d\xa0z\x12\x84\xcd?\xber\xb2\xff\x03G\xe2?\x17t\xe8d\x9a\xfb\xd5?F \xf4\x8cE\'\xe7?k\x07%\xdc4[\xf0\xbf\xe6\x04\x9d\x8bx\xc0\xe0\xbf/\xa8\x0f\xc6\xa6\x97\x01\xc0\x1c\x80&\x02\xba\xed\xfb\xbf\xd9\x1c\xfb\xde\xaa>\xe1\xbf\r\xac\x0b\xf3\x82\x19\xf4\xbf*\x89\xdb\'\xaa \x0b\xc0\x91r\x99s\xe7J\xe6?\xbe\xad\x87\xbb\x99\xd5\x04\xc0`7\x8b\xe8&v\x80\xbf\x9d4\xc9\xab6u\xea\xbfL\xdc\xc3\'\xaa\x9f\xd4?\xc9\xc2\xff\xf8\xfe&\xf3\xbf\xcf\x1b\x00\xd3f\x9a\xd4?oY9W@\xba\xe0\xbf\xda\x88&8\xf1\xc0\xd6\xbf\xac_\xad6\x1d\xa8\xfb\xbfs%\xf7*q\xe5\xe4\xbf\x82\x93j\xd1)=\xdd?\xc1\xe0q|E\xfc\xec?\xa7\x12\x90\xaf\xd2Q\xf9\xbfu*\xfc\x9a\xeb\x06\x03\xc0\xd7\x9f=\xd5\x98@\xf5\xbf\x1c\x00C\xa3\xb6\xa3\xfa\xbfj.;\x96\xf9\x96\xe4\xbfh\xb5n\xcdI\xff\xe7?\x19\xd0\xd4\x0f\xa5D\xe1?\xe4\x7fd\x7f\xc0\xc9\xef?\xefC\x1eF\xf9\xb8\xe1?\x880\xc3\xec\x93S\xfc\xbf]\x0f\xbb\xf1\xef\xf7\xaa\xbf7^\x90x_\x02\xf2?h\xbej$\xc51\xf6\xbf\x02\x1e\x0c6\xf4\x9c\x07\xc03\x7f\x13\x14\x1e\xb8\xc0\xbf\xe6\x0cd\x9d(\xe9\xf5\xbfG\xce\xd7V\xe6W\xe3?\xe6\xc5\x9f\x9a\xfeC\x00\xc0\xe6\xff\xe0\xe5\xc5\xde\xc0\xbfi\xe4\x12\xf0#`\xf7?\xf3\xe0\xaad$\xe2\xdb?\r\x7f3JY3\xd7?yT\xed\x8d\xe5f\xe5\xbf\x0f\xd8\x1e}z\xe7\xba?\xa7|\xa6\x13G_\xce?[6\x07{\xc6\xdc\xe8\xbf\xac\x1f\x15?\x18}\xf3?\xa3d\xf6-\xd93\xf9\xbf\x17\xcb\xfa\x86S0\x00\xc0\x11\x15\x19j\xe7\xfc\xee\xbf\x9d\xcb\xf8\x05\xa1\xfb\xfb\xbf\xf8\x80\xda\xd1kS\xf8\xbfl\xbb\xb5\xc1\xdb\x87\xf3\xbf\x18\xa6\x8b\x84$A\xee?\n\x0be!\xba\xcf\xc2\xbf;(\x90m\xef\x14\xea?\xe5%` \x88C\xc9?oL\xe3\x08\xbc\xb8\xf4\xbfqlnh=\xd0\xf5\xbfc\xc7\xab\xa8\xfb[\xf7\xbf`\xa6\x1d\x8b\xdb\xc9\xf6\xbf\xcf/rE\x84$\xea\xbf\xf9b\xac\xc2w8\xe0\xbfd_1x\xfe.\xe2?\x9b:H\xef,\xfd\xfb\xbf]\xcb\x11r\xceG\xf0\xbf\x1d\xa32&\xf7U\xdf?\xd4$\xdbK@\x0c\t@\xec5\x88,\xe2z\xd2?\x87\xbbkh\xed\x14\xa0?\xf3K\x87*\xd9\xfe\xf4\xbf;\x10\xbc\r\x82x\xf0\xbf\x97\xf9p\xd9\\o\xd9\xbf\x8eq\x90#,\xf6\xd0\xbf\x17\x97\xc7cXe\xe5?\x112\xd3\x91\x17\xe7\x00\xc0\xbfi[\xdb\xbe\x99\x0f\xc0\xdc>\xa2\x83\xe8y\x08\xc0\xf1+\x97C\x97\xff\xfc\xbf\xb1\x87V>;\xcc\xd5?\xb80\x11gz\x11\xc8\xbf%\x9f\n\xa6\x9b\x1f\x96?\x89A\x8c\xda\x7f!\xb0\xbf\x8d\xb89\xcc\x15I\xc2?\xefT\xa5\xf3\xce\x1b\xfe?\x01\xea\xf3\x9c\xb6\xae\xfd\xbfU\xac\xc2W\x95\x0b\xe1\xbfj\xcf\x94\xf6\x82\xb7\t\xc0\x04\x7f8\xfe\xbcG\xfa\xbfKIFpE\xd3\xf7?\x84\x8ex\xf4\xb3\x9f\xf4\xbf\xfb\x92\x15\x9cI\xba\xd7?\xe7\xa6\xf4c\xf5\xa5\xe5?\x17\t\xa6\x1e\xa0\xb8\xdb?K\xec\x1a+\x932\xf2?j\x9d\xef\xd3\xf1\n\xd4?\xbd,\xaf\x16\x8a\xd4\xf7?}\x98l\xfc`\x07\x03\xc0\x16\xb0A\x9cj\x08\xe3\xbf\x1d\xc3\xc9i\x01\xc0c\x05\x11\x00\x83\xc4\xcf?-\xfe\xc0v\xde#\xe2\xbfJ$F\x94\xe0T\xef?B\xf2\t\xcd\xbf\xcf\xde\xbfc\xbc4\xf1~\xf4\xe1\xbf\x14\xb0\x81\xcb\xebP\xd9?\xbe\xf1\x00\xf2\xca\x0b\xce\xbf\x1d\x85\xc8?M\x8a\x03\xc0\xd4\x0b\xfd$\xc3\xbf\xdc\xbf&F\x9f\xed0\xe6\n@\x1a\x10\xb8I\x81\x93\xe8\xbf\xcdLH\x98\xb2=\xe6?,\x0f\x920K\xd0\xda\xbf\x1f\xf7\xb0\x9aM\x05\xdf?\x97\x05m\x93\x80\x0b\xe7\xbf\xc9\x84\xd8n\x83)\x03\xc0\xd8(\xea\x15\xc3"\xf1\xbf\x8c`\xe0\x8b\x80\xbe\xea\xbfp\xeb$b\x12%\xf9?nb\xaa\x10\xcb!\x00@^#=h\xad\x04\xb7\xbf\xc9\x03\n\x9c.\xfc\xc1?\x1b \x10\'\x05\xb4\xd8\xbf\x18\xa5\x80\x86s\t\xd2\xbf\x17\x00s\x10\xb8\x06\t\xc04\xd1R\xe1\xa4*\xf4\xbfg\x17\xd1+$\xb3\x03\xc0\x05m\xfd\x082\xcb\xf5\xbf3?c\xaf`\x00\xf1\xbf\x06J\'\x07\x05\x84\xe8\xbf\x1d#\xb8\x0b1|\xd0?j\xf0\xa0#Z\x1c\xc2?bJ\xe1\xf5i;\xa1\xbf\xbd\t\\\xa9Em\xce?\x9c\xc2bkn\xc7\xe1\xbf\x07\xfb\xads2\xa2\xfe\xbfk.]\x90\x8eY\xee\xbf\xbf\nn\x8fL\xed\x02@\x0b3\x9c\xed\xc2\xb7\xed?\x84\xef-]5\n\xe1\xbfy\xa7\x80\xaeC\x8e\xee\xbf\x99\xb0\xbc\x9a\xfa:\xe5?\xd4\x80+\x9f\x10\xa4\xe5?\xec\xaf\x0f\x9bCg\xf0\xbf}0\xeb&f\t\xee?\x14[\x89\x18\xd3\xfd\xc0?\xb55\x98VR\xf3\xfe\xbf\xf9\xd0\x91\x11`\xb4\xdd\xbf\xbf\xf9\xeew\xb9\xd4\x06@\xd3\x0e\xab\xde\x15=\xfc?U\xdf\xf9}\xa8~\xf2\xbf\x11\x17\x90\x99)\x8d\x10\xc0\xbb\xf9\x86"[\x1b\xee\xbf\xa1S\x1c~\x90\xf2\xf1\xbf\xa2[\x12&\x15\x19\x01\xc0\xb3\xc8\x9cdD)\x01\xc0\x07\xbc`\xd9+\xf2l?\x90\x1f\x01\xf7\x1f0\xc0?\x95;a^\xe6\x80\xe2?\x9fQt\x98\x9f\xc3\xe9?\x93z\xe9\xe9:\xc6\xd3\xbf\xe3gR \xfb\xb0\xd4?\x93~\x9eB\x91D\xf6\xbfs\xdcO\x17\x8d\xdf\xed\xbf\xe2\x99\x18\x1e_\xf6\x00\xc0~\xb0\x16\x08\x83^\xe7?\x95q\x16&\x14\xa7\xec\xbfKa\x05\x1a\xbcH\xdf?\xb1\x9f\xed\xe8\xf0&\xed\xbf*6\x19\xe5\xb6\xf0\xf3\xbf\xbep\x17s\xa2\xdc\xf9\xbf\xc7`Ja\x12a\xd2\xbf\xb6\xf0\x11\xcaS\xda\xfe\xbf?\xc5a\xea\x9b0\xc8?\xa8K6E"\xc3\xf9\xbf!8\xb51\x7f\x83\xe8\xbfYW\x95N\xef\xee\x0c\xc0=\xd1\xf7\xd6O\x1b\xe6\xbf\xa8\xcdeVS\xa9\xfc\xbf\xde9\xcb\xb7(c\xf8\xbfcx\x96\xb0!R\xf2\xbf\xae\xc2L\xbb\x1d\x95\xe0\xbf\x93}\xb7U\x88\xcb\x00\xc0\xd1\xf6]\x18\xd9\xa9\xea\xbf\xb6\xe1*Tm\xd7\xe4\xbf8\xe1,\xd5\xbf\xdb\xb4\xbf\xba\x1b\x83\x93k\xdb\xf9?<\xfd\xfedL\x00\xf8\xbf\xf3}K=\xe2\x10\xee?\xefl2\xado9\xe1\xbfo(\x94\xd4X\xc1\xd9\xbf\x0e\xa1|5\xd8#\xe1?\xdc\x86\xb8\xca_e\xde\xbftG\x1em\xcbC\xe8\xbf\xa0\xb7\xd0v\x0f\xee\xe0\xbf\x8f\xe7\x1ez\x0f\x15\xf3\xbf\xd3\xac\x10p\xdaX\xd5?\xe7^\xbb\x96,\xb2\xe3\xbf\xfb\x86\xbfQ\x05\x89\xd7?\xfd\xd8&[\xcf#\xdc\xbfI1O\x05Q\xe6\xe8?&\xb1\x1a\xbc\xeb\x03\xe4\xbf\x17\x10\n\x8aW\xa6\xc4\xbf\x9bb\x13\x1cF\xc3\xf8\xbf\x16\x0f\x10\xf4\x00\xc8\xfd\xbf\xe88`\xd9\xbf\xdd\xf6\xbf\xd7\x0eU\xc2\xfa\xc4\xd2\xbf\x9b8\xa4Q<\xc1\xb0?R\nw\x1a\x91*\xd2?PQ\xd5\x94\xb7\xfd\xda\xbf\x83\xc8Q\xe0G\x92\x97?<\xb6\n\xbb\t\xfc\xe3?\x11\x8d\x16/\xb4\xfd\xc5\xbf\x98@#\xc9\x95[\xd1\xbf 4\xa3\xdc.\xda\xc6?yf\xc5a\xde\xf2\xe3\xbf\xfb\x1f\xa1s+\x18\xb4\xbf\xc8a\xdf\t\x18\xf2\xda?|\x9cEY-\xe6\xf6\xbf\xa4\'\x89c\xc9\x95\xe6\xbfs0\xd3\xc0M!\xfe\xbf\xee\x86Y\xc9i\xc1\xdf\xbfr;\xfbK\xc7\xa0\xf5\xbf\xe9\xaf\xee\xc3\x85\xd5\x08\xc0\xcdV$x\x9e\xb7\xe3\xbf\xff\xa3\x07\x1ft\x96\xe4?\xc9\x06\xdf\xa4sE\xff\xbfL\xce\xed\xce\x8b\xd0\xf6\xbfP\xef\x81;\x85\xdc\xed\xbfP]\x0b\xec\xb9\xab\xed\xbfU+}\xd1\xa9\xb8\xc9?\\*A\x8c.$\xe8?w\xae\x91\r\xc5\xa3\xb1\xbf\xa4\xbc\xbf\xfb\x1a\xeb\xe0\xbf\x1c\x07 \xed\x1a\xbf\xce\xbf\x87\xcb\x7f\x9d\x0c\xbd\xcb?r4`2\xfeO\xed?\xdfb\x1c\xf5r\x1f\xe2?50\xfd{\xc6\x19\xf2?dl\x9a%\xda\x02\xca\xbf\x9d\xae\xdc\xb2\x9d\xf1\xdc\xbfv\xb9\x03*\x8a\xe9\xd4\xbf\xbc\x9cFo\xad0\xd0?\xcaw\x05\x97\x982\xe7\xbf\xcek\x8d\xd5\x87G\xac\xbf\'\xc0\xee\x0f\xb8K\xdc?n\x14\xc4p\x18\xfc\xed\xbfL1G^*F\xe2?\n\x06\xfb4,W\xf2?\xe9\xe4\x1c\xcf\x91\x91\xe1?\t\xf8\xe7\xadJ\xb8\xc6\xbfW\xa2Mz\xc8\x92\xf2\xbf\'\xe0\x91\xcb\xcc\xf4\xc8?\xe1\xf3;\x15\x08M\xf2?S\x1e\xb0\x0e}!\xd1?\xb5<\x87\xddh-\xe5\xbf\x0bY\x06\xabBr\xcb\xbf&ME\xea)&\xe5?G\x0cN\xd5\x7f\xef\xf0?s\xdf\x9c\xd7\x87?\xe9\xbf\xcb(\x178\x9d\x08\xf0\xbf\xab\x11\xbfE\'\x90\xdd?\x92\xd5Cv\xaa\xa4\xdc\xbf\x05\x1bGS\xf8\x13\xf0\xbf\x91u\xd7\xdbDN\xd9?\x15[\x84\x90\xb3\xa8\xea\xbfo\xd9\xdcnx\x14\xe6?\x86k\x87\x04\x81\xb5\xc7\xbfO\xef\x14\x14\xc4\xce\xb2\xbf\xa7U\x9a\x03;\x0f\xe4?\xe4\x0c\xb6>LM\xd9?\xbb\xc8\xdfxX\x99\xe6\xbf\xbc}\x8e\x0cZ\x99\xe7\xbf\xb8P(u]y\xd4?C\xb6&X1\x19\xdc\xbfT\'vn\x8e\xfc\xfc\xbf\x12+\xdeC2\x91\xfa\xbf\xa0!\x80\x01\xce\xb5\xd3\xbfB\x82\xcc8\xa4j\xc2?\xc8\xba\xa4\nl\xc8\xb1\xbfn\xe74\xe5h\xcb\xe7\xbf\xea\xdcV\xa6l+\xb8\xbfP\xc9\x0e\xccnh\xc8?@/\xf6)B\x0f\xe1?\x93\xac\xa5\x98dj\xf4\xbf\x13\xfe\xfaJ6\x08\xde?\xe1N2\xe8\x84\xa8\xbc?\xc8[u\x94\xf8\x02\xe2?1\x9f5\x87t5\xe3\xbf\x00U~\xd3PD\xd3\xbf\xb8\r\xe8\x86dB\xb0?7<\xadhq\x89\xe1?\x97\xf0\xbd9\xd8\x98\xe4\xbf\xd7\xa1;\x84\x94P\xe2?/\xc6\x96\x8b\xe3\x1e\xd3\xbf\xd0G\xf1j\xf9\xef\xef?#\x99A5\xfb5\xf0\xbfPk\xe3\x07{\xbc\xde?\xbc\x12\xd5\x7f\xbe\xc6\xd1\xbf\xe11\xffb\xbb\xdb\xde?|\xde\x9a]w\x1f\xd2\xbf\x9d\x0e\xe5c\x01\xcb\xd2?\xc9\xf9\xe5\xb1\x8d\xf1\xdb\xbf\x8b\xda\x11\x17@\xb7\xd6?\x849a\xd2\x8cT\xe7?\x9e\xd9\xcc\x8ac\x07\xef\xbf\xa5sIz\x16K\xeb?\xfc\xb2(\x81S\xd5\xf5\xbf\x9a\xeb\xc6\x83N\x1d\xb9\xbfyZ\x99\x14\x0bB\xe5?\x1b\xcbin\x11R\xd8?\xbc\t\xbd\xb6\xb2R\xf4\xbfh\xef\xe1BQ2\xca?\xbf\x18\x1cH-F\xf5?\x92\x80\x95\x7f\x82[\xb8\xbf\xf5\xd4[G\xdc\x8c\x87\xbf"\x01\xf9:\x06|\xdd\xbf\xab\x08\xbf\x84DN\xf1\xbf\x96f\xe8\x1f\xd0\x1b\xdd\xbf6\x9aD\xb9\xd1\x8e\xe0?\xe61`\x1b~\xc2\xe1?\x10-F\xaaBk\xe6\xbf\x9d\xc1\xf6\xbc \xbe\xb9?$vk\xc1\xed\x0e\xe6?\xfa\x06\x08W*\xf7\xda\xbfF>G_{M\xe8?p(\x9fS\xb3\x92\xe8\xbf\xf4\xdf\x88W]\xb1\xe1\xbfP\xd5\xaeZ\xb0J\xdb\xbf$\xe3\xb8\x06\xb0\t\xe5?\x00A\x1c#\xfcw\xe0\xbf\xc2\xf7\x1ahm\x04\xc8?\xa1\x02\xee\x1c&\xfe\xed\xbf\x82\x04J3\xb0\xa2\xb6\xbf}\xa2\x99{\xb7\x97\xe3\xbfr&\xf4\xa8\xaf|\xdc?\xafj\xb6\x00\xe3p\xf7\xbf\xdb\x03\xe4j`{\xb3\xbf\xbe!\xe3\x84hR\x00\xc0\t\xa9\x02(\x8f\xdd\xe3\xbfE\xcd\x18\x8dw\x90\x02\xc0\xbc:W\x8a3\xbb\xf8\xbf\xae\xcf]\xa8\xbb\x87\xee\xbf\x00J\xe2\x1e\xac\xa3\xfd\xbf0g,\xa4%k\xeb\xbf\xaa[\xa5\xf7*\xfd\xf2\xbf\xe2\xb6\xa1\x14\x9f9\xc6\xbfK`\xb6k8\x98\x00\xc0\xbeM\xdc-\xbd\xa5\xef\xbf\xd7\x05\xbe\xf6\xb4T\xa3\xbf\xd1j\xcf,i\xe0\xe2?=\x7f\x06\xb4\x8a\x8d\xca?\xd79\xa8\xd9\xefX\x95\xbfr"\xcd\xc7\xcd\x13\xe8?w\xa4\xc1\\\x8b\xf9\xf1?\x15_\xcczc\x9d\xbd?\t3\x99z)\xc9\xee?\xfc\x8f\xc6\x85<\x9d\xdb?\x1c\xc29>\xd2e\x97\xbf\xef\xf9\xff\xad\x9b\xb1\xf8\xbf\x82O\xd6\x08\x90v\xee\xbf\xd5\xc6fK\x9fg\xd1?\xb5\xd3\xaaP\x90\x08\xd2\xbfI\xd8\xe0!\x8a\xb9\xde?\xfc\xc5*,\xaf<\xc9\xbflOV}%\xbe\xf7\xbf>\xe3\xa0\xe8\xf4*\r\xc0?\xbd\x808U\x87\x0e\xc0X\xde~\xaeYu\x1e\xc0?\xa4\x9b\xbd\x1a\x13\x1d\xc0\xb0"\xf4s\x07\xf5\x1f\xc0\t\xc4\x93&\xa3e\x1a\xc0\x12\x8bR\'\t\x04"\xc0PK\x9d&(\xa7\x19\xc0\x151g\x04\xd4\xc3\x18\xc0\xdf\xcd\x85N\xff[\r\xc0\xb5\xa9\x7f\x18\xf3J\xfe\xbf\xe2\x1dL\x93po\xff\xbf\xcc\x95MO{\xef\xe6?\xc6\xe6\xcc\xd3\xf37\xf7\xbf\x88\x04\x05\xdd"\'\xf8\xbf\xaa\xe8\xb88\xaco\xd2?bW\xb5\xd0\xf0\xf6\xc9?\x03\xc4\x03\xa6@\xc3\xda?\x15dhHTA\xf1?\xc7\xa8\xbbZ\xae\x12\xd1\xbfO\x92\xf3K\xdc\xff\x9a?\xc6\x97\xfa\rd\xa7\xd2?\xa0\xf2\xa1\xd3\x00\x94\x8a?\xc2\x87\xd2\xf0\x12\'\xf9\xbf|\xcds\xeb\xc0\xbb\xe6\xbf\xacXK\xf0U\xea\xb8?\xb3\xea\x9e\xa2\x9b\xbe\x08\xc0\xc1\xa9y:?\x11\r\xc0\x96y\x9c\x97p\x1d\x03\xc0\x95\xbe\\\xbbq\xbd\xc6?C\x8e \xbe\xd2Z\xab\xbfI\xeaT3}\xdd\x10\xc0\xa16>T\xbe;\xd4?\x95\xa5\xc2e\xc4r\xe3\xbfe\x95\xea\xbaw\xf6\xc6?\xed\xdf\x02u\x85\x16\xd0\xbft\x15\x13\x18=K\xd7\xbf\xd6\x87)\xb7\xfah\xf6\xbf\xd0\xea\xc5I\xe1J\xf8\xbf\xc1\x9c\xf2\xfe0\x10\xff\xbf\x0cF\x94\xe51z\xd3\xbf\xcd\x90\x11d7D\xd0\xbf2\xea\xe8\xfd\xde\x07\xff?\xce\x91\x99to\xb7\xa0\xbf\xac\x94\xc6\xa9\xcf0\xeb\xbf\x96\xd5\x97\xd8\x13\x9c\xd9?\xcff\xc2\xc8\xc3\x19\xdc\xbf\r\xa7\x87\xcd\x88\xa5\xa9?\x03\x0e\x06\x849&\xd0\xbf\xcce\xcbm\xd6\xa7\xf1\xbf\xcd\x82\xd3\x8f\xca\xfb\xd7?\x95_\xcd\x06?\xce\t\xc0\xcf\xe6Hm\xb7D\xf7\xbf\xda\xac\xe0\xfaT9\x01\xc0l\x97!\xdf\xb9\xff\xf7\xbf\xff\xf4\x0c\x0b\x08\x1d\xcd?\x17gv\xd3\xc8\xa7\xf7\xbf\xfc\xc9\x0c5\x8a\x80\xdc?\x9a\xab\x8eJ+/\xf3?}R\x81\x104\x91\xe4\xbf\x90\xe5\xafVw1\xdf\xbfq\xdd\xa6\x90:F\xa9\xbf\x00\xa6f\xc6l\xfe\xd7?\x02\xdaD\xd0\xd2\x84\xd4\xbf\x86\xadL\xf4\x1e\r\xe8?\xc2\r\xed7u\xe2\xdb\xbf\xfa\xcd_ \xb2\xf7\xfa?\xe3*\xb3\x87\xb0 \xf0?Z\x00s\xaa\xe6+\x00@\xad\x16\xea\xda_\xd7\xcc?o.p\xa3a\x8a\xd9\xbfJ\x02>\xedoY\xe2?z}\x1b\xa1>}\xef?h\xd8\xb3o\xc8\xde\xe4?\xddY\xa2\x8c\x0b\x9d\xe7?rLLl\xcd)\xa8\xbfh\xf8>\x07\xb9\xae\xd3?_\x07\xb6\xc1\x10j\xea\xbf\xf9t\xa7\xdc\xa6\xa1\xf3\xbf(\x80qoU\x95\xf7\xbf\x95b%\xe5\x0b(\x05\xc0_<\xc8\xe2\x11\x03\xc9?\xfd\xbd\xfc&\xcc\x98\xf0\xbf~\x9d\xcbB\x9e\x02\x00\xc0\x9e\xf8gwR\xba\xd7?\x8b\xbc\x89\xf6\x01\x8b\xdb\xbf2\x1e\xb3 \xef\xa5\xe4\xbf&pry\x1b\x00\xc6\xbf\xb9)\xe9N)k\xec\xbf\x1eN}\x0c\xd5\xa9\xe8?\xdab{\x01E\x83\xd1?\n\xfd\x96\x15J[\xf1?K\xd6\x84\xa4C\xaf\xf5\xbfI^\xc2Xh\xf3\xfa?/\xb2\xe37L\x87\xdc?\x87X\xdf#\x18L\xdb?\xf7\xee\x18\xbc\xc89\xe6?Gw\xde%\x7f\xe8\xf9?\x1df\xdcI\xdc\x90\xee?\x8f\xba\xdb\xb0\x00\xe8\xd7\xbf\xc6\xdf\x92\xbc\x16\xa9\xe5?W\xbfb\xfb\x1c\x83\xa8?\xb0\xf7J\x8d\xae\xb5\xb8?\x1dEp\x9a~\xfa\xbe?Cw\x85~\xfd\xa5\xc5\xbf\x9f\'\xa41p%\xba\xbfe\xa0\x1cf9\x11\x00\xc06\xba\x06\xf1\x96\xe6\xff\xbf\x8e\xae\xf1\\\xc8\x8b\x07\xc0\xca\x98+mCe\x03\xc0\xd5\xe4N\no\xf2\xf2?\xee\x0e\x8b\xd3S}\xb2?s\x02z\xaa\x02\r\xe8\xbfx\x85\xd4q\xad\xa2\xf5\xbf\x9e\xaba\xcf\xce\xce\xf0?\x03\x84y\x96\x98P\xfb\xbf\xfe\xa1\x05\xdbP\x8f\xf6\xbf\xfa\xda3\xeajn\xcf\xbf\x8d\xc20\x9d\xacg\xed\xbf\xae\x1c\xa3\x92\x83\x02\xd8?\xad!\xf1Ja\xa9\xe5\xbf\x9c\xf8\xef\xc2_\xc0\xf2?\'\xceC\xb2\x87\xf8\xce\xbf\xd5\xc5\xf2\xc0W\xf7\xf7?\x99\xddS\x1d\x83\xb9\xf7?\xa5P^\t\x1f\xcf\xed?^\xdf\xa4\x1c\xb1\xd1\xf9?\\\x05\x19\xf4\x07\xa0\xe8?K\xcf\xb2k\xf8\x87\xdd\xbf\x9bFZ\xe9\xb4\xfe\xf5?\x10\x9a]\x89%\xf4\xe1?\xde\x05.\xb1p\xf9\xf1\xbf\x85z\x91\x85O\xcc\xd5\xbf!\xc1f\x82\xaa\x87\xfb\xbf\x0c\xa1+\x1e\x00\x0e\x05\xc0h\xe0\x17Q\xa8\xa0\xfb\xbf\x86\x1e%\x81\x81\x91\xe5?d\x8e\xde\xfb\xdc\x99\xf6\xbf\xa4\x08\xfaX\x8a\xe0\x91?\xa5\xf6\xb7\xd3\xc6S\xf4\xbf\x03\xdbe?Db\xe8?\x0cW\xf4(\xe8(\xcf\xbf0\x9a-B\xad\x01\xdb\xbf>\xd3I\xd4\xaf\xd5\xef\xbf\xddE\xf1\xd9/4\xef\xbf\xdd\x9bIIy\xa3\xab\xbf\xc6\xcd\xecK\xdbs\xcf?\xf1\x16\x84{\x91\x99\xe1\xbf\xb7\xf4vr;\x98\xff?C\xee\xd2x\xccL\xa9\xbf^\xff\x06\xbb\xdd\xb2\xd6?j\xe2&\x8e\xeb%\xdb\xbf\x82\xe9J\xba\x9b\t\xdd\xbf\x89\x0b\xec\xcd:G\x08@SS6\xdd/\xc8\x10@\x8f\xa1m\xaa\x90\xb6\r@\x10kbJ8m\xf5?\x936\xa6\x02\x07\xd9\xe3?\xa0\x1f\x9b\xee\x91\xfa\xdc?lH\\\x17\xcd\x08\xf0\xbf^\x84\xe4H0\xfa\xdc\xbf\xa0b\x19\xdd\x88G\x02\xc0\x18(\xe3\xb5\xdd\x18\x0f\xc05@\xbe\xfax\xd4\xe1?\x87\\C\xfa\xb1\xfa\xd4\xbfx;\xde\xf4\x17\xd8\xed\xbf\x87n\x8bF-_\xb7?\xc0\x9a\x1d\x94\x9fL\xc2\xbf\x82\x81o\xb3\x90\xdd\xfd\xbf2\xc0\xcdol\x8d\xf3?\xf2\xee\x1a9^\x01\xe4?\xb9q+\x0cg\x85\xe7?\xe8\x1d\xdb\x0c\xbf\xfd\x0c\xc0\x96\x89\x15\x14\xe7\x95\n\xc0s\xcc\xb5\x1e[\xd5\xe3\xbf\xc2E\x9c\x904\x91\xc0?\xce^d\x10\xe9\xc4\xfc\xbf\xb5z\x10d\xf7\x10\xf4\xbf\xb0\xdb\xef\xdc\xcei\xf2?n\x91\xb6\xbb\xf0\xd2\xed\xbf\x8e\xb1m\xb3t\xb2\xe5?6\xd3\xdd\xb5\xefu\x04@\xb3,w\xcd\x98P\x05@n<\xbbR\x06\xc9\x11@{5\xc2\xe6\xef\xf6\xf5?\x9bp\xb0~F\xec\xec\xbf\x1d\x07\xbbR\xa3g\xbb?\x03C\xc2\xc1\x82\xb8\xd4\xbfD5H=\x06e\xf1\xbfx\xf7\x85\xa3\xc6\xc6\xed\xbf\x17>wuB\x94\xb9\xbf\x90h\xaa\x95\xa8\xb7\xe9\xbf6\xb4\x92W\x07*\xc3\xbf\x1f\xd1\xb0|`A\x03@Y\x85\xa6\xd4\x12\xa1\xd4?N\x9a\xa1\xf5\x00h\x10@\x87\x93d\xda\x00\xf4\x13@W\x90_U^\x8e\x0b@\xae(\xb6\x1f\xa0\xf5\r@\x8d\xb4\x95\xe4\x00\x8a\x05@%\xbfyI<\x8a\x06@\xad\xe6U\xa5\x14\xa0\xfa\xbf\xa6\x18NL&0\x04\xc07\xe9\x16/\x08\xf7\x04\xc0\x81\xd5\xc4K\xc7\x1b\xee?s\x05\xbd\xddR\xd3\xee\xbf\x19\x1c?\x0e/\xed\xf6\xbf\x11\x8a\x8c\x16\xa3\xa5\x01@\xcdK\xdd_\x87\xf8\xef\xbf4\xc36\x85\xbc\x0f\xec\xbf\x80e\xddq\x95\xea\x08@L\x18\xad\xfc\xa8\xf6\x11@\xf7\x17.\xf2\xbd\xa7\x03@\xed\x9c\xa9\x90\x89\xef\xbe?\x90\x08\x12&k\xff\xde\xbfO\x91qU\x1b\xb1\xe0\xbfc:o\xb1$\xa5\xf6\xbf\xa2i\x17S,\xc5\xf1\xbfD\xe9\xba\xd1]\xb2\x05@(\xaa}i\xd7\xe1\x0e@;x\x1e\x9c\xcd\xcc\x15@\xb9\xe1\x16\xe9\x9e\xf7\x1a@\xbf49-\xdd\xca\x1f@\x8a\xf1kV\x9c\xc2\r@QQ\xe0\xc6"\x1d\xfd?\xe0\xea\xcf\xe8\xd4S\x03@[\r\xc4\xfb`\xd6\xf6?{\xd7\x0e*\x84\x1d\xfd?\xe5\xddO\xd5\xb2`\xf8?h\xa4\x97rM\xe5\xd1?\xb4\xec\xfe\xd35\xd4\xfa?\xae\x93\xc1\x9b\x06\xf7\xfc\xbfE\xcf\x99k\xabDJ\xbf\x1b\xa0|\xf69@\xc8\xbf\x97\x8b\xff\xda\xf1l\x08\xc0I\x84\x087\x915\xfa\xbf\x1d,n8\nZ\xec\xbf\xde\x16+\xf4\xc3\xc1\x08\xc0J\x1c\xa09\x01\x1b\x07@\xee\xf0\x89-w\x06\x15@\x0b\\\xef!\xf6\x0b\x03@<&\x0e9\xbe\xea\xdb?\xa8F\xecl2\xa9\xe0?\x1fVU\xc3\xaf\xfe\xd3\xbf\xbd-\'\xaa\xdf\xa8\xd7?\xe0\xa5\x0c\xc2Ih\xd0\xbf\xaft\x90\x05td\x17@\xd4r\xff\x84y\xdc\x17@\x10D\xf8\xb0X\xa6\x15@\xee]\xab\x12\n|\x12@\xe3\xa6t\xea\x1b\xaa\xee?\xe9\xad\x01\x1eH\xd3\xf9?\x8e\xdaF\xd4\xdf\xef\xf7?9\xc4\t\xbb\xf01\xd2?D\xa1\xf6\t\xcb\xc1\xf6\xbf\x92{\x171\x84t\xf4?\x0cI\x9e\xf8\xe6`\xe6?\x03\x11\xf57\x8c=\xfb?9n\xf2s\xa9\x86\xf1\xbf\x80O!]\x90F\xef?\xe5\x1c\xc7{\xbf\x0b\xc9\xbfq\x91\xd7_\xaf;\x05@\x9fL\xb3F^b\xe7\xbfl\x99\xabfP\x1b\xf6?\x07\xe2`j\xf9\x19\x0c\xc0x\x0eE1\x0b&\r\xc0\x87W\xad\xd6"\xd2\x00\xc0\x93Ii\xfd\xcac\xf7?\x19\xd8\x0e\x84@\xbd\xfe?\x88\xef\xdb\x7f\xb7\xa2\xd5\xbf\xee\xe6\xa6\x1b\xfdO\xe6?\xd2/\xf3\xab2\x8f\xe9\xbf\xdfR\xd6\xcdn\xa3\xf5?\x010\xdcXSk\xb0?\x0b\xcf\xf48"q\x0f@\x89\xb3\xacg>c\x06@1\xaa\x819\x1f"\xe2\xbf\xc5$\xa2\xc6)\xc1\xb2\xbfq\xcc8\x7f\n0\xf6\xbf\x89\xcd{\xb1\xe1<\xac\xbfs\x10\x94l]\xd3\xd3?%\r\'\xdd\xda\x0e\xd7?\xcc\xd8\x80iSR\xf9?n\xa9\'\xf04\xeb\xe4?\xb3(\x95\xd0l\xff\xc8?\'$\xd0_\xddu\xfc?t\x03l&\xddk\xeb?\x1aa\x8f\x01\xc9\x01\xe6?_{@\xf9s\xde\xe4?\xfa\r\xcf\x07\xb8\x15\xfa?[\xb9b\x85\x06q\xf0?rz%}I%\xf0\xbf\xd2^\x95(1\xcb\xe6\xbf+1lT\xdea\x0b\xc0$\xb1;I\xb80\x10\xc0\x1a\x8e\xf7J[\xbc\xf2?rW\xd6\x04\xc40\xeb?Vzo\xd0\x17Q\xf6?\xbb\xc6\xe6\xbc\xf3\x96\xeb?\x9b\x88Z\xff\xb6w\xc0?\x13\x8c\x1cM8\x15\xe0?\x158\xf0\xfc\xc1C\xf9?\xfd\xb3F\xd0\x9f\xb1\xf0?\x8d\xd6Ph\xfco\x05\xc0J\x0b\xf6\x9b\xc5s\xe8\xbf\x86\x15JV#>\x04\xc0#\xa1%\xd3\x00o\xa1? \xd6\xe6\x89\xe6\xab\xe6\xbf,7\x94\x151\x12\xe4\xbf@\xf8x\xae\xe0F\xf8\xbf\x031\xce\xe5\xe7\n\xef?w\xb0\xe1\xbc\xb7B\xf8?Y\x0b\x96\x87\x1a%\xe6\xbf\tK~\xef\xed\xdc\xfd??\xb1t:\x05K\xf2?\xdak\xe6x\xcb\xae\xda?\x93\x01\x000\xd4y\xc5?51\xd8\xc0~\x9b\xcc\xbf\xb8\x18\x80(\x97\xba\xe5\xbf\xa2u\x89J\xdb\xed\xe1\xbfb\xb3\x1b\x8b\x9as\xd8\xbfs\xaby\xbd\xa0}\x01\xc0:\xe4(q\xea|\xcf?\x96FI\x91\xc0P\xe7?;H\xb6\x15\xcd)\xf0\xbf\xa1\xc7ei\x86\xda\xf9\xbf\xd0a>W\xa2W\xf4\xbf\x86=\x7fb>?\xe5\xbf\xc2@B9\x03A\xee\xbfwP<[f\xc3\xee\xbf\xf5\x10x\x06\x9f\xd8\xf8\xbf\x0b\x15\xfa\x9e\xfe\xaa\n\xc0\xdc\xa4\'\x1ev\xa5\x0b\xc0G\x17g\xaf\x07"\xea\xbf\xd6\x12!`\x9f\x1f\xe9?\x83\xa7P\x9b\x00\xb2\xb5\xbf\x11\x8a\xac\x82\x92\x83\xea?C\xc8\x03\xb7jx\xe2?\x8b\xe1t&\xf7\x1b\xf6?\xd3J\x01\x15\xb3x\xe8\xbf\x03u\x0eC\xd5\x8a\x04@&}G\'\xc4l\xc6\xbfS\xad\xc5\xee\t_\xf4?&NoP\xe2\xb0\xed\xbf\xa6\xb1cw\xc3\xa0\xc6?(.\xcf\x15On\xba?\xf2\x0c\x04\x98\x99\x93\xe6\xbf=\x93\xbbt\x1d\xd6\xfb\xbfZ\xc0sw\x05\xa7\x03\xc0\xd3\x14\x15YJ\x07\xfe\xbf\xb4\xa3\xda1`\x14\xc2?\xd7[\xa6\x8f\xb2\xca\xbd?lM\x7f\xf2\xa6\x19\xe5?McA\xa8\xe0\xeb\xe4?\xd9\xf1J\xe4\x11\\\xdf?P\x82\xe7\x8d\x8b\x7f\xd3?=\x8aR\xf5\xd5\xe3\xee\xbf\xb9\x03$\xb9\xc41\x00@*\xcf\xc0o\xbd\x96\xfa\xbf\xbc\xa8G\xd6\xd7\xb7\x01\xc0\x18\xe8\xe3F\x14\xc9\xd9?\xcfN\x97k\xf5\x7f\x00\xc0G\x1c\xfc\xc7(\xa4\xb0\xbf\x06\x1a\x06\x85C\xf1\x04\xc0\xac6\xc2\x9d\x8bG\xff\xbf\x1dL\x10\xb6H_\xd7\xbf\x84f\xf1P\xe6\xfc\xc6?\xdfu~\x98\x14\x11\xd0?\xed\xbe\xefPV1\xcd?\xf7\xffa\x17\xa36\xf8?\xcc\xc8\xa2\xe4\x11\xdb\xe2?\xac\x0b\x1b\xe8S\x8e\xa4?\x82 /\xd8\x10X\xc2\xbf\x11Z\xab\xb4^\x10\xfe\xbf\x93\xce\x18\xce\x91r\x03\xc0\xc8D|\x85\x93\xe1\xec?:\xaex=\xa1<\x00\xc0\xce\x07\x94\x16DS\xf9?\x95\x92\xe6\x07\x92p\x01@f\xf2\x97\x8a\xe8!\xee?`\xec\\\x8d\x0c9\xef\xbf\xb5\x02\xe9c,D\xd1?\x02\xf4h\x82,\xe4\xd4?\x02\x05~\xa5)\x14\xf4\xbf\x10<\xb1\x8c\t\xef\x00\xc04k\x9d7vt\xe5?\x98%\x01\t9\xd8\xfb?\x0fL\xe7\xfb"\x9e\xf2?\x96\xc0\xe4\xad=\xcd\xf8?D\xed\x86\xab\xff\xa5\xe5\xbfJ\xcb1U\xd7\x9a\x05\xc0\xf4\x81\xd9_^n\x08@F\x86\x1b\xe2\xc5\xed\xe9\xbf\xbc`\xbd\x95\x94\x18\xf0?\xcb\xd0\xbb\x81\x05\x87\xf2?\x0b\xb4~\xb1\xc1\x0f\xf8?Y#\xe0\xd4n\xdf\xc2?\x01\xc5Z\xb1M\x08\x04@\x01\xe2P\x14-\xd0\xeb?\x1fH$>,\xa0\xd5\xbfSyM-8\xa4\xf9\xbf\xa4x\xd8\xcf\xc8;\xcc?\xb5\xb51]Kn\xe1\xbfi\x8e\x8dI\xae\r\xf4\xbf|\xeb\xb8Ny%\xfd\xbf\xc2\x14\x92\xd0|\x12\xfb?5|\xbf\x95X\xb5\xec?\x07\xb8i\xc6\x94\xb4\xf0\xbfBI\xcc\xfc\x85?\xe5?\xb2\x9bXs\xbd\xe8\xb0?\x90i\xc3qn\xfc\xe0\xbf\xb3\x95\x03\xde\x1c\x0b\xc4?\xeb\xeb\x9d?\xda\xb3\xd8\xbfM\x18\xb9M\xfc\xfa\xf8\xbf\xb8\xa5\xe9\xc9\x86\xd2\xd0\xbf:\xa3\x129\xf5\x8f\xf8\xbf\x03\x80W\xba\x83\n\xf8?\x06\x99\xca1\xa8\x9a\xd2\xbf\xfa\xbf\xdf\x1d.\x10\xf1\xbf\n!A\x1a\x01\xa1\xdd\xbf\x89G\xe4\xf6\x0c3\xe9\xbfb\x03\x94\x15\x08\x93\xfa?\xbd\xd6O\x18\xe3\xec\xd4\xbf\xd0{k\x10\xc1\xb6\xe1\xbfQ\xd1\xd1\xd5\x9a\xb5\x06@E\xe0\x8aF\xd7E\x07\xc0\xa7\x8d\xb7.\xb2\xd3\xf6\xbf\x1fKTy\xd9\x99\xfd\xbfD\xf0N\x12\xbfA\xf4\xbfv\xff\x13 c\x0c\xfe\xbf\xa1r\x0b\x8e\xa7T\xe0?\x87\xc6]\x12\x93A\x07\xc0\xebS\x08\x97O\xe7\xf1\xbf9\x8bD\xea\xd9\xe4\xe2\xbfv0t\xa0J\xcb\xe6?\r\xa5"k\'\xe6\xf0\xbf\x07\x8d\x99\xc5C\xa8\xc9?1\xec~\xb6\x7f\x9d\xac\xbfp\xde\xe2\xc5\xce0\xd6?\x02Y\xd3#yQ\x88?\x05\xb9\xde\xb8e\x8b\xe5?))\x81i\xce\xc4\x05\xc0:\xd0\xadx\xe9\x1b\xd9\xbf\xeb\xf3e\x05\x7f\xc1\xe7\xbf\xd5i\x00\xa0\x1b\xfc\xda\xbf\x17\x070t;0\xc1?9U/\x18\x1c\xe4\xe8?XlF@\xf5\x1bD?\xf8\x96\xddM\xdb\x98\xdd?\xad\xb5\xa4\rp\xab\xf7\xbf\xd5=\x9d\x9aVX\xf2\xbfo\xcb\xfaG\xe8\'\xec\xbf\x96\xb8\x84\x8fo:\xf4\xbf\xe0\xba\xae\x07c\xb1\xfa\xbfxG\xcb\xb4Q_\xd5\xbf\xd2\x94c\xa0\xc3\xa2\x05\xc0\xab\xa3j\tN\x17\xf0\xbf,\xf2z\xaf9\x8d\x01\xc0D\xe4Ss\xdf\xe2\xfe\xbf\xda\xaf\xebM\x1b\x86\xe7\xbf\x99\xbd\xaf\xca\xf32\xde?\xd8 \xe3VPg\xf5\xbf\xb8\\\xdd\x8b\xf7_\xec\xbf\x19\xe0NF\xe6\x9c\xe1\xbf\xd8m\x0b(\xa1\xb1\xe1?\xa4#T2l\xf0\xf2\xbf\x1a\x91\xe3\x8e\xed5\xbf\xbf\xb3\x85\xa6\xec\xec\x9d\xc9?u\xa7?l^Y\xe2\xbfQ\x945\x16(H\xec\xbfT\xc9\x0er\x97"\x01\xc0\xfa\xa3\xe9\xb1\xf1\x88\xf9?\x06sd\x19\xae\xc8\xe0?\x93\xa8\xe6b}<\xd0\xbf\x8eF$XX\xb5\xf8?\xb8\xdf\xdf\xe1\xb5[\xf9\xbf\xa7\x0f\xe3\x8e\x87\xa0\x00\xc0\xa3\x9f\x10\xc1ax\xb8\xbf\\\x13\xb4{\xcfc\x04\xc0\xa0c{f\xce\xce\xd3?\x1fz\xa7\x14\xbeY\xf7\xbfa\xe8m\xef4c\xc0\xbfo\xbe\x9f\x83,\x8d\xba\xbf\xec\xe5\x87\xdbt\xd0\xe2?\x8d$L\x98\xe5B\xe7\xbf\x04C\t\x8e\xec\x1d\xd2\xbf\xb4&?3\xdd\xd8\xe9\xbf]\xeb\x89\x90O+\xf0\xbf\x92E\x98I\x15\xa6\xe7?\xc3FB\xc5\xce\xef\xf0\xbfV\xbeT\xb17\xb7\xe5\xbf\x91\xccF\xf8\x1a!\xc7?\xae\xc6TKDG\xe0\xbfZ\x00\xe8xF\xc3\xe2?\xe7\xa1m\x01\x82\xfe\xdc\xbf\x9b\xbcOn\xc0"\xe3?7\xceA\xd8\x815\xd0\xbfpt\x99\xdcG\xd3\x01\xc0|yZ\xa1\xf0\x84\xe9\xbf6%\xcdg\xb9\x9a\xa4\xbf\x19\xb9\x0bd\x92}\xec\xbf!\xf1\x98:\xb0\xa0\xf3\xbf\x93e\xbc[\xab!\xf9\xbf\xc2#\x0e6\x98S\xaf?\x92\xb7\x90\x07\xe3\x12\x07\xc04x\xe8\xb2o\xe9\xdd\xbff\x84\xcf\x1a\x1dn\xee\xbf\xdab*\xb4\xdac\xf1\xbf\x80\x92\xbb\xf3?\xc9\xe7?\x1d\xf5\x99\x00P?\xdc?2\\\xc8\xad\x1b\x86\xed?\xd1\x9a\x02\x14\x195\xc5?\x16>C\xb7F\x0f\xe9\xbf\xa3\xdb\t\x15\x87\x04\xd6\xbf[\xe7\xd4\xae\xfa\xdc\x00@\x13\xd1\xd4\xf2\xcc\x95\x05@"\x12\xc6\xebC\xda\xe6\xbf\xf7}\xb3\xe3\x15\x99\xd2?\x1d<\xdf]\x919\xe2\xbf\x10\xfeU]\x9c\xc3\xf1\xbf\xfb\x85\xc6q\x883\xe9\xbf8\xb2\xfb\xad6>\xea\xbft\xa5\xa7j\xa6<\x94\xbf\xdb~\x979B\xe9\xed?\xacg\x83\x91\x043\xa7?bN\x06\xf9n\xc1\xe6?\xbbu\x15\x93\x92\x1c\x00\xc0\xf3\xf0s\x94\xc4P\x81\xbf\xda\xcam\xa9K\xc5\xc1\xbf\xec\x9a\xcb\xc6\xd7E\xe0\xbf\xa3\'p\x0eDA\xe0?\x95\xe3\t\x1f\n\\\xce?\xfes\xfb\xe6\x99a\xf4?2^ZFw\x0c\xf0?\xd2\x17\xce\xe0\x9fsu?\x8b\x0e:\xd5=\x04\xc1?u\xf8\xd7\xeb\x7f\xdc\xd5\xbfM(\x9f\x82\x1f\x1d\x04\xc0\xef\xb3[6\xf5H\xb5\xbfK\xb8\x95k\x12\'\xf8?\x10|;\x1d\tM\x11@5.\xe3U\xc7\xb1\xe0\xbfy\x87\x91]\x0e\xb8\xf7?\x7f/\x97\t=\x97\x0b@v\x95E\xa9\x08O\xc7?\xf4\xc7N&\xfa~\xe8?E\x8e\xfb\x17\xab\xdb\xe3\xbf)\x9a\x967\x84\xe3\xeb\xbf\x81\xc2#p\x0b\x89\xdb?\x84\xado\xa9&\xd7\xf1\xbf\xb5l\xb7s\xca\x8d\xf6?\xe5dV\xa1]\xb8\xc6\xbf^\x96N\xdd\xb8\xb6\xd2?\x01\xfe<\x8e\r\xec\xe0\xbf\xcacd\xfd\xdd\x0e\xf5\xbf\xd4?,\x98\x13K\x04\xc0p\xa5\xb1\x8e\x90\xb2\xf5\xbf~\x90f\xcc\x05\xaa\xf0\xbf\xed\nz\xcc}\xf8\xe0\xbf=nu\xfb&x\x00\xc0Se\xcao\xa7\xd0\xc4?\ts`\x00\xf1\xc3\xf2\xbf\xb2\x95\xdd\x86\x01\x97\xc2\xbf\xb0\xd1@*\x0fp\xc7\xbf\x85\xf9\xd7\\\xb2\xa4\xf3?j\xcc\t\xed=\xb2\xf4\xbf\x88.\x8a\x97\xbc\xec\xae\xbf\x89\xbd\xda\xe3\x8f\xbd\xbd?\xdcy"\x0f\x10\x0b\xf8\xbf\xa7j\x94E\xf4\xc6\xee?\x15*\xf3\xc7\x9d\x9b\xff?\xa3\xaa1\xde\xf3!\x00@\xd8V\xea\xe6\x0c\x9f\xe4?P\x0bdA\xe7\x1e\x00@f\xb2e\x84k\xd6\xea\xbf\xc12\xaf\xd8,\xdc\xe6\xbf\x9dz\x13\xb7.\xa1\xf2?\xac\x1b\x01\x8d\xf1E\xdc\xbfNPG@`*\xb0\xbf{\xf9.\xc8ho\xf0\xbf%\xca\xb2z\xf0\xa6\xf4?\x16\xeb\x9f# (\xd9\xbf\xfb[\xff\xf0\x9e\xdf\xfd\xbf\xe0\r\xc0\xd0w\x07\x01\xc0\xdar\x1cV\xc5T\x00\xc0GQ\x93\xf9\xf1\x1c\xf9\xbf\xa8\xe5V D\xc6\xb8?\xb0\xf8\xac\x8a\x9b\'\xf3?;A\xfe\x94m\x1c\xf7\xbfM\x14YC\xc4\x0b\xf4\xbf\x0c\xa6$\xdc\xb6\xd6\xb6?\xb6N:R\x172\xea\xbf\xe5X\xe2W\xcc\'\xf5\xbf\x1b\xdf\xc2\x16\xc4J\xc4?&\x19D+0\xef\xe8\xbf\xd9\xeci("\xf2\xe4\xbf\x0e\xa0\xe3*\x96\xec\xff?7\x19\xd6\xc9R]\x0e@\xeb\xa7\xbbx\xfdp\xfd?\x8d9\x15O\xd07\xf6?\t\x97x\xa9y\x82\xf0?\xfbM\x083\x8e\x1f\xf1?\xb9\xc2\x96\xfaG\xbe\xee\xbf\x8b\x0e\x82TD\xda\xea\xbfa\x12\t\x99\xc1\xbf\x16\x9d>u\xef\xe5\xcb?\x94\xa0\t\xc6\xcf!\xc9?\xc0_\xd82\xa8R\xf2?\x10\x9a\x14\x90\x16\x82\xf7?\xab\x04\x08\xcd\xbd\xef\x03\xc0\xdf\x96e\xd7\x8e\x01\xc8?Bo\xb9\t\x85\x19\xd9\xbf\x15\xdc\xdf.\xb7\xf3\xc1\xbf\x9a\x9c\xfc\xe9\xe1Y\xf3\xbf\x0f1\x1c\xf6S\xaf\xf1\xbf\xbf\xed\xa1\x9e\xb0\xce\xe7?\x83@\x06\xc6\x0fv\x08\xc0wH9\xf3\xa1\x05\xf1\xbf\xc1\x05\xdc\t\xf1|\x00\xc0\xb4\x14Hy\xa8\xd5\xcb?\xad_\n>s\xf4\xf5\xbf\xdc\xe6\xc6\xa7vz\x01@l\xcb>\xf6\x94\xfa\xd0?|\x8d*\x8c\xc2\x8e\xe6\xbf\x19\xc5\xd7?\xbe.\xe2\xbf|2s\'0\x1c\xc3\xbf\x94\n|W\x8b-\xff\xbf\x1aD_t\x7f\xcf\xee?\x1e\xbf\x9c\x9dr\xc0\xf3?\xf3EW\xb9j.\xf2\xbfL\xd2\xb9Z=\xdf\xcc\xbfX\xf6\xee\xabqH\xf2?M\xb5G\xe4\xe1\xe7\xfb\xbf\x83*\r\xdc\\.\xc4\xbf\xa65\xa9h\xbf\x86\xf5\xbf\x04(\xc8x\xb3\xdb\xf6?\xb4\'*\xcc\x12\xa4\xe8\xbf\x95T\xbdl\xdeE\xe1\xbf/\xb06\x0f\x00\xe6\xe3?J&\r\x85\x97\xd6\xfb\xbf>\r\xcb\xacQ\x04\xdd?\xbfW0N\xaf\xc8\xe2\xbfS\xf2\xf1\xa8\x85\x1a\x04@_\xee\x1d\x12w\xf1\xe7?\xdc\xa9:\x10\x99\xd1\xe7\xbfp\xb4\x92\xafn\xeaY\xbf\x00\xa0\xbf\xddZQ\xe7?\xfe\xde\xfe\xc0I\x96\xbf\xbf"\xae\x0c\xef\xd4B\xef?l7H\xf8\x126\xd4\xbf\x12\xaa\xfa\xafh\x07\xd9\xbf\xc4\xben\xed\x1a-\xf6?\t#\xc6\xc9Fn\xab?\xed!\xf0^\xc4\x18\xe1\xbf \xe3]\xe2\x8bL\xe4\xbf\xfa\x18\x1d\xf8\xd8\xf3\xec?\x0f\xb4\xed\xb1\x88h\xd6?u\xa9\x91\x19\x86\x9e\xda\xbf\xc5)&\xd2<\xe4\xed?,B~\xc0\x05\r\xeb?*\x8bI\xde\xdfc\xe1\xbf\x88\xdc(\x80ES\xfe?/\x13R\xc6\xdf\xfa\xec\xbf\x8d\x01\x9e\xcb\xf8\xa4\xb4?-\x95\x83\xb7e\xc6\xd5?\x84;\xebk\x89N\xcd\xbf\xb1yG\x9bTE\x87\xbf\xe5\xf8<\xf3\xfas\xff?\xf7D\x96\x8b\xf2\xbc\xbf\xbf\xe6\x9f\x8b\xe82\xde\xe5\xbf\x98Mo}\x8aZ\xd1\xbf\xd4\xee\xc3\xbb:s\xc6\xbf}\xf0\x11\xea\xf4\xd6\xec\xbf#\xc5\xf0\x8e \x97\xd9?\x04\xfd\x19>\xa0K\xc2\xbfph\xc0\xbd\xae\xdc\xeb?\xe4o\x9d\x89\xeb\xab\xf2\xbflac\xe6\x06\x84\xc0\xbf\x1c\xb8T\x89\xfd\xed\xfa\xbfg\xc6|N\xa9\t\xd3?\xba\x90\x08\x1f\x9aF\xc1\xbf\xfaFX\x91d\xfe\xe6\xbf\x8b\xbf\x89\xeeH\r\xc4?\x1c\r\xa2\x17\x88l\xed\xbfR\x9dJ\xfc\xf9 \xe7?\x94\x83\xb2\xb3\xaf\x90\xd6\xbf\x8a,\xad\x8d\x10\xcb\xf0\xbfw\x16\xc3\x15\x1d\xdd\xef?,\xedA]\xd3\xd5\xf4?+?\x1c[\xf1\xcd\xf1\xbf\x87H\x14\x0b\x11=\xf4\xbf\x86$\xc4\x84\xac\xb9\xc8?s6\xa5u\xfe\xb8\xf2\xbf_3v\xc8Tp\xc0\xbfU\x85\xe4Yz%\xdf\xbf\xcep\x8aQf(\xe3?\xd2\x92\xf4mQ\xd7\xf2\xbf-!/\xf8<\xde\xd8?x%\x01\x19\xc0~\xed?\x1c\xcf\x84X\xd4\x8e\xf3\xbf}n\x0eq\xe9\xc4\xe3?\'9\x80,\x10*\xc7\xbf\xdd\x8ay\xca\xf1\xed\xdb\xbf\xb6\xfc\x84\x197S\xe4?\xa2\xe2\xff\x96z]\xe1?N\xba\xe0\xf7\xa4\xa4\xd2?O\x87\x03\xb8\xfdF\xdd\xbf\xbd\xf6_\xd2!\xe0\xf0\xbf\x8e\xbb\x8b\x01\xe2\x12\xf1\xbfs\x03\x10+\xfb1\xc1\xbf\nD\xc5\xf5\x11c\xb7?y\x85\xd4/:;\xdb\xbf\x1fYB\x10\xc7\xec\xd9?\x8b\xec\x84Jl\x13\xcb?\xbb\xe3U\x1e/\x94\xf2\xbf\xeb\xf8\xf12!\xd6\xf0\xbfT\xdc\x1c\xa3\xeb\x15\xc1\xbf\xbb\x94\xc99\xa4\x04\xce\xbf\x06\x98\x12\xd2\x08\x90\xd4\xbf\x06\xd3O\x9d\xda9\xe8?H/Y\xd2\xde\xeb\xd4\xbf\xe1\x83#\xd1\xf0\x93\xcf?\xf5\xe6\xdfU\xaf\xe2\xe6\xbf~\xbfK\x9ch8\xd2\xbfz\xc6)\xfa\x96\xe2\xd1\xbfmu\xb8\x8e\x86p\xec\xbfE\xd2X\xe1\'\x9e\xd8?\x8e\xb6\xda\x9c,\xe1\x9d\xbf.\xbc\x81?m\x90\xf9\xbf\xfe\x90\xa2\x9eH\xa4\xe3?L\xb6hJ\x05\x8a\xe7\xbf\x95\xa0\xa1\xe9&\x8d\xf7\xbfy\xd9\n\x07\xeba\xf4\xbf\x83\x85\x91\xc6\x08\xaf\xb5\xbf>\xd8\x96\x86\xf8\xd2\xe9\xbf\x93y\x10\xcc{9\xf2\xbf\xe5\x07E%\xc1\xcd\xec?S\x7f\x04\x8e\xd4\x1b\xd4\xbf\xeb?\x94\xa4\xffe\xea?b5\xde \xab&\xe6\xbf\x18J\x90\'\xb6\x87\xc9?\x99\x0c\xc7my*\xf4\xbf\xc0,\x7f\xabt\x0f\xcc\xbfQ\x1dj\x04\x97\x9f\xd8?\xb6\xa6)\xfc\xf5\xe5\xe5?\xc8\xd10u%\x9a\xc8\xbf\xe7g\xce\xaevI\xd1\xbf3\x9b\xef\x11l\x16\x97\xbf\xd3\xf9aT\xa0\x83\xe7?\x99(\x90v\x01e\xb6\xbf\xd3S\xa2\xcf\\O\xd1?"\xe1\x84\x13\x83l\xf6\xbf\x14\xa8\x11\xe8\x83\x0f\x00\xc0\xa1$y%\xc7$\xd3\xbf\x0fZE\x91s\xcb\xe7\xbfL\x1c\x18k2~\x0e\xc0O\xa2>h\xc9\x14\x0c\xc0\x12\xf0\x99\xc2\xf5\xe9\xcc\xbf\xaa\xb41\xd5\x05I\xf6\xbf\xfe\x1b\xa4J\xd0\xc8\x04\xc0i:D{\xc72\xf1\xbf\rMa\x8eta\xe4\xbf\x96\xa3v\x84U\xd3\xea?\x84=\xc3\xe7\xd3\x1c\xe5?)\xad\x02\n\xc0\x02\xf0\xbf\x9e\xe7\x0f\xf9~c\xf1\xbf\x08\xc8\xfa\x8c\xb7;\xfe\xbf\x8af6yQ\xcf\xf8\xbf$\xb8\xb5K\r@\xc2?f\xcb\x87\x92eO\xdd\xbf\x91_\xca\xb2\xae[\xe2?\x83\x8a\xf8a8\xb2\xcb?\x84\x8a\x11\xa6w\xb0\xec?\xed\x08\x08\x17r\xa6\xcf\xbfT\xe8\x92C\xf1\r\xe6?\xaf\xfa\x0e\xe1\xe5$\xf9?\x8bKS\xae8\x8c\xe3\xbfeL\x84\xe0\xa6$\xe4?@=V\xe4\xe2h`?\xda\xeb\xae\x0b\xf6D\xe8\xbf\x89-\xe7%\xc08\xcb?&Y4E~\x9f\xf1\xbfP-\xcb0\x96\xb6\xd8\xbfso:W\xadM\xc4?e\xfd\xe9\xbb/\xa4\xec\xbf\xaa^\x8f9\xb9\x80\xff?l\xcf8#\x06-\x05@\xafA\xc6\xacL\xd6\xf7?\xf5\xd8\xfa\x95\xf8^\xd9?\xb3?\xba\',\xf8\xfc?;\x94\xde<\x8b\x12\xb5?\xb9\xc7\xfa\xb1\x13@\x00\xc0\xa9\xbbC\xee\xdc\xcb\x00\xc0o=v7\xe3\x98\xf6\xbf\x1fW\xb7q\xd5\xb3\x03\xc0\x0b\xa7GI\x95\x97\xee\xbf\xc5\x9a\x17\xa6\x02\x85\xec\xbf\xa44j\x9b\x90\x10\xdb\xbf\xa1\xbc\xfb\xb7A<\xf4?}\xb0\xeef.\xa9\xc0?\x94)\xfc\x86\xb7\x91\xf2\xbf\x163g\xea\x9f\x1d\xe2\xbf\xba\xd2\x10\xa0\xcfo\xd5?\x7f\xf8\xec]Ad\xd4\xbf\xa4\xcf\xcdpf\xeb\xbf\xbf\x08\xaa\'\x93\x97\x88\xa2\xbfJiD\xa8\x96\x19\xfd?x\xb0\x81.am\xd6\xbf\xdc)\xe3\x0eM\xc7\xd1?\xacb\xddR\x98\xe6\x00@\xa5\x9d\xc0\xf4\x98\xd9\x05@T\xbd\xc3\x9f D\x01@\x8e`u\xdbH\xfb\xf8?\xe79\xa2\xef\x90O\xff?T*\x9c\xf8\xa9\xd0\xe3?\xd1_\xa7bJ\xef\n@\x04\x97\xee]\x14\x9b\xfb?\x16K%\xcfV1\xdf\xbf\x0b\xaa\x19\x17\x17\x00\xd8\xbf\x02\xf8d$\xbb.\xfa?\x82\x12[\x96p\x04\xe6?\xfbh\xc3\xaf\x88\'\xcf\xbf\x95\xd2Wsj\x80\x06\xc0O\xe4x?\xbb\xe7\x05\xc0X%2\x8eYY\t\xc0\xb1\xb2\x7fU\x90G\x02\xc0\x13C\x16\xd41\xb1\xfb?\xca\xe9(\x1cx|\xeb?_\xea\xd4}\x9d\x0c\x88?\xde\xb8\xeci\xc5\xfb\xc4?m\x17O\xd6\xc5V\xea?q\xa3\x7fN~7\xc6\xbfq\xdc__\xe2\x9b\xc1\xbf\xbbo\xbf\xd3\x92g\x03@\xc6M\xf9\xcb\x15k\x12@\xda&;jw\x0b\x0c@\xbc\xe2{<\x86\x0e\x04@\rX\xec\xe6\x14i\x9e?\x86}\x18\rb\x1e\xf2?{\xdb\x0ej\xfbn\x03@\xbd4\x13G~\\\xf7?\xa4j\xc6\x88\xd7P\xdc?\xd8\x04\xcdx\xb3n\xf0?\x9bz\x86P\xb2\x17\xe9?n\xad\xee\xdfh\xa0\xf4?L\xfc\x87\x95\x08!\xfa?B!n\x83\x8cY\xf1\xbf\x9f!A\x92\x8d=\xed?\xa1B\x81\x8c?\x15\xca\xbf\xa3\xf6f\t\xcc\xad\xd8\xbf\x1d\x1d\x97\xee\xa05\xaf\xbf\x8e\x893\xe1?\x07i\xa5\xb2:p\x00@\xb9z\x9cw\x9fw\xfc?c\x1cvrr\x90\xfc?Oz\xebW\xdaj\xff\xbf+?\x9a\x92\xc9\xe8\x00@\x83\xe9\xb7D\x89\xb2\xf4\xbf\xa6\x91\x89\x80\xf7t\xc1?Ox\xd1\x1ea\x01\xef?L\xb2\x1d\x02\xe31\xe9\xbf\xb0\x88\x12\xa7\xdc\xaf\xf7\xbfR\xc39\xa2+\xae\xf2\xbf?]\xb0\xc7\xc0\xc0\x02\xc0\xbe\x91\xb8K\xc3w\xb1\xbf\xb1\xd6n\xd7}\x82\xf6\xbf\xcb\x18UC\xdf\x92\xd7\xbf:\x08\xfbM\xaa\xb4\xd1?\x18=t\xe5\xb0m\xe2?\x01%^\xe7q\xb1\xf9?\xf7\x18j\xe8\xd67\x06@O\xbe.$Sf\xf9?\x02\x1b\xdf\xa7\x1c\xd4\xeb?!\x8a@9|(\xf0\xbf\x99\x89\xb1\x14\xd8#\xe5\xbf\xb3\x1e\xb1\x97\xcc`\xb4?\xd0\xdc\x99\xbe\xed\xb8\xd0\xbfj\xab\xb7S_*\x0c@[\x86r]0\xf6\x00@=\xda]\xf4\xcd\x97\xe6?\xee_\xbd\xe1E]\xc9?\xa8p\x8b~\xe1=\xf7?N7\x100\\v\xb6?(\xfb\xa3`\xe7*\xf3\xbf\xe5|\x10\xeb\x1e\x08\xe7?\xd1\xf7C\xaa\xd5q\xe7?\x1aq\xb1H\xb8C\xe2\xbf-\xc27k\xe9d\xfb\xbf\x7f&\xfc7\x1cX\xe5?\x0e NO\xf0\xe5\x10\xc0\xdd\xdb\xf4\xee\x90\x9b\x18\xc0\xce\xe9\xa6\x8b\xf4\x07\xfc\xbf\x8b\xad\xe5\xc5\xc2\x8e\xc2\xbf\xb6\xeaa@\xc4S\xf2?\x86yA\x13(P\xda\xbf\xf3\xa9\x97\x84\xc3\x13\xff?a\x98\xa7>\xad\x92\xf3?\xaf\xcc\x1ce\xaf^\xc7?]\r\x9c\x83!~\n@\x10:c\x08\xeaW\xf4?z"\xf74\x8f\xc6\xe2?T\xff"\xc4\xadp\xf0?\xff\xd7\x8e\xb0\x1e\x18\xfa\xbf\xa6\xc1,EE\x9d\xdc\xbf\xe2xn\xa9\xfdU\x05\xc0\ng-\x19\xbd\xc0\xeb\xbf\x95\x89y\xc54\x10\x0b@\x94\x0f\x90~,c\x02@\xd8\xa30\xae!9\xf9?\xfd\xebf\xbf\xe0\xea\xf0?\xc8>\x16A,o\xe5\xbfC\ts?\x82d\x02@\x100\xdf+\x8a\xdb\xd4\xbf\xf7\x9a\xce\xec\x86H\xf3?\xbb\x81\xbd5U\xb0\xea?\xf1&\xc0C\x8d\x11\x00@\xca\xdb\xa3\xfc\x07\xc3\xe6?\xdd\xb9\xceo:h\x12\xc0\xc2*\xea;\xa2\xca#\xc0\xb4\xe7\x1aq\x9b\xc7\x04\xc0!,\xaa\xe4\xa9;\xf2\xbf\xb6\x0cW\x92\x1d\xe3\xc0\xbf(\xc9\xd6\x00]\x01\xdc?@r\x93\xb8\xbfA\xd0?,s\x8f0\x84\x96\xe3\xbf\xc5\xdfD\xf2\x90\xa4\xff?\x1a\xc0\xb2/q\xb1\x1d@\r\xdb\xdax\xcb\xc9\x0b@:\xfb\x92\xa7A\xae\xb0?\x83\x94\'V\x93C\xeb?U\x95g|\r7\xcc?\x92\x15\xe0\x98\x03\xf7\xe9\xbfK\xe7B\x00\x8b\x12\xdc\xbf\xd2\xf9\xca//Y\x06\xc0\x9f\xc3\xfe\x11\xa9\x13\xb7\xbf\x0c\xf0\x9b\x85\xee\xaf\xe1?\xde$O\x08\x03\xe8\x11@g\xec\xec-lU\x11@8\xb2\xf0\x8e\xa8>\xbf\xbf\xe6\xd0\x10<\xa4\x8f\x02@\xb9\x92K\x81\xae\xe7\xf5?\x91m^\x8e\x8c\x9a\xf3\xbf\xa0|\xf6\xee\xdc|\xe7?\x07\x02O\x98d\xbf\x00\xc0M\xc1F\xa3\xd2\x00\x06@\x1f\x9a\xc8\x890\xba\x05\xc0\x13\n ~\x136"\xc0g\xfd\xbc\x9b\xa3\xa5\x07\xc0\xbd\xbb9`\xe4\xe6\xc2?\xff\x9a\x0e\x93\x9ac\xf3?\xf6P)\xf9O\xd8\x8c?\x85\x19xL\x88\x83\xcc?\x87>\x94*\xac\x92\xc9?\x86\xca\xbc*2>\xf7?X\n\xe7\x18\x95I\x0c@AB\x82\x9fi\xc4\xf8\xbfX\x9e\x80\xf4\xbfx\x18\xb1\xbe\xef\x10\xe6?R\x86\xffW\xf0\xd8\xe8\xbf\xde\x83aT\xb9\xa2\xe4\xbfUl\xa8\xc8\xd5\xd9\xe9?:\x18n\xf8\xea\xfd\xf1?\xb2\xa1\tP\xf83\xfb\xbf4\xaa/\\\x92/\x14\xc05\x86O\x98M\xec\r\xc0\xf9\x12\xc6\x1eYe\xdd\xbf\x90K\xfd\xe7Y\xed\xe5\xbf\x94=\xdf\xe6\x10\xfe\xe4\xbf-i\x0b\xfe\xe1\xa4\xec\xbf\xc8\xb1\xe38\xad\x1d\x10\xc05\x8cZ30\xd2\x11\xc0\x18\x19\x95\xc3\xff\xdd\x06@\xf1\xac\xa4/9S\xe9?\xbe0\xdfA\xbad\x00@j\x9e\x1f\x8f\xcb\xe5\xd6\xbf\xbc7Y\xe3\xa8\xe1\xe8?\x07\xd4r<\xaa\xf3\xc3?>W\xf2Z\x85\xc3\xd7\xbf"?\x87\x0c\xea\xc5\xec\xbf\xf7\x91\xcc]\xdc\x0e\x0c\xc0W\xd3\xbdl\x9a\x97\x0b\xc0\xdczo\xe5\xec\xd1\xf4\xbf\x16\x96,\xb7\xb40\xf6?\x99|\xb0\xfdl\x01\xd5\xbf\x9e\x0c(\x1aQF\xcb?\xfb\x93\x15\x07\xb9G\xb9?\x10\xcb!\xc8\xf6\xe0\xdc?\xb5\xd3\xff0\xc7v\xe2\xbfw\x7fP\xd4?K\xf1?\x15\rQ\xc1)\xbf\xe6?mS\xed\xf4\'\xa4\x16\xc0\x9f\xddLg\x8b@\x13\xc0\x7f#JR7\x1a\x0f\xc0.\x93}\x9e6N\xca\xbf\xc7:\xba]\xab\\\xf7\xbf\xa6X\xf2\xee:\x92\xdf\xbf\xaddw\xbd\xfaa\x04\xc0\xa3\xa9k\xb5B\xe0\x06\xc0u\xfd\x85\xfa\x8d\x17\xe9\xbfUD\xf1d\xc2=\x02@\xe1\xc8I\xb5\xa0r\xf2?\x18Iuq\x07\x97\xf4?\xc3H\x943c5\xf8?\x96\x03H\xf1\xece\xe7?\xb9YD\xb4\x92\xa4\xd4?\x05=\xd3W\x96\x96\xf2?ME\x1a\n8?\xf2\xbf\xf6\x91[6k\x8b\x0c\xc0\x13\x0c\xfc~U\x04\x0e\xc0\x88\x04W\xc4At\xcc\xbf\xbc(c=\x87\x0c\t@\xf3\t\xba\x80@\xe5\xf7?q\x0e\xee\x8cw\xb2\xea?\xc8\xb5\xd2Wc\xf7\xf0\xbf\xaaj\xc2t\xb9o\xe3?\xa1\x94\xde\x82\xdd\xac\xe6?\xf51/\xe7d-\xfb?\x1c\xa6_\x01=\xb9\xcd?\x1b[|g\xaa\x82\x11\xc0[\xf5\x88\xba\xee\xb1\x13\xc0\xfb\xc5\xac{\xb2x\xe5\xbf\xa4\xe3\x17\x02\xc7\xc5\x08\xc0\xb8V\xa0j\x90\xd8\xf6\xbfb\xe8q\xafA&\x05\xc0c%\x8e\xc1\'\x1a\x08\xc0hI\n\xca\xbd\xf3\xd2?\x0f-P\x08\xa9\x17\xe1\xbf\xcc\xf9\xc4E\x8eE\x03@\x97\x91\xa1\xbc\x9f\x04\xf1\xbf\x9eH\xee,\xcfK\xfb?\xe1$}\xda\xf6\xd9\xe3\xbfOu\xba\x94\x13n\x01@\x8d\xb9WFO.\xdd?p\xd5yY\x95|\xf8\xbf-\xcfm\x85\xc6\xf6\xf1?\x84\xfah\x1a|9\xff\xbf\xc8\x97\xae\xa0N$\t\xc0\x99\xae\x92\x1aW\xce\xe7\xbf\xf3\xc1\x81\xfc*\xb3\xff?\x00\x9b\x81\xf8\xde\xf1\x06@\xd3\xc0Q\x93\xa0\xb1\xe0?~\x07V\xec|\xb3\xd0?P\x9d\xf3*,\xdf\xa9?\x02\xdf\xb2_\xf6\x8b\xe9?G\xed\x92\x80e\x19\n@2\xe5Ie\xa3\xca\x04@\xdd\xe0\xfd\x9b\x04\x15\xfe?\xbez\t\xba\xbe\x93\xe6\xbf\x07Q\xd6\xba\xf1\n\x08\xc0\xed#u>\x19\x82\xd2\xbfo\x9f!mmd\xe9\xbfqy\xc0C\xf4\x8f\xfc\xbf\x98\xb2\x1d\x84>\xf2\xbb\xbf\xee\xa3\x04\x07\x0c\xea\xf8\xbf\xe7\xae>\x92u\x0e\x05@\xe8\xc4\xd8\x89-\xd0\xe1?\xdb\x0cz\x8e\x95\x1a\xf4?,\x84j\xef>\xd0\x11@5\xe1\x91\xd1\x95\x10\x80?%:\xe8\xc0\xc1\x13\xc9\xbf\x80\x1c\xbd$\xe3\xd2\xe4?\xf1\r\x1ac6_\xed\xbf\xe2\x81\xce\x1c/)\xf2\xbf\x12$vs\x1c\x80\xde\xbf\x0fp\x87\xbf;+\xff\xbfd\x16\x8e\xf8\xce9\xc7\xbf\x182in\xc8\xba\x06@}\x85\x80\x16TM\x04@\x94u+@\xe5Z\xf2?\x96\xfc\xa0\x98s\xfc\xfc\xbf#\x8a\xb7\xdb\x01\x05\xe3?w\xba\xec:\xbc(\xe1?\xa4\xb5\xb9\xb0\xcc\x16\xf5?LK\x93\xa6\x95\xa3\x01@%\x8bq\xa7Nq\t@\xd1E\x9by\xa5\x16\x03@\xf7`\xd4\x14\x9b\xea\xe8\xbf\xd2\xc2\x080\xddK\t\xc0x\xf8^\x83\xf3i\xf0?F\xecr\xc0\xce\xa4\xe4?\x0f\xcd1\x80\xbcv\x02\xc0z\x92\xad\x0b\x12\xab\xc1?&\x99\x16\xf6\xe7\xdf\xed?\x1d\x13;\xce\x9e%\x05@I\xdb\x07\x8d\xde!\xf4\xbf3\x0e\x84\xfe\'\x85\x02@\x02\x103Xwb\xc6\xbf\x99\xee\x11m\x10\xd9\xf7?SV\x872\x8f\xfa\xe7\xbf\xc4\xee\xc0\x8fb8\xfa?.B\xe6kW\x9b\xe0?[\x14\x0f\xc2\\\xed\xca?0`\xd8:\xbew\xe7?\x13Fi\xe0\xf1A\xf4?,\x0c\xb0Nd\x88\x11@JP\x14\x92\x15)\x04@\xe7\x91\\\x07\x0c\xec\xda?\xe9\x85\xe4\xbf\xe2\xda\x8b?ex\x83[\xbf\xb3\xd2?zv<\xf0\xbc\x12\xf1?\xe1\x8f4\'\x91\xb2\xfe?WIJX\xd1\x06\xee?\'\x19\x80\xe81\xb2\xe1?\xbb\xb1\xfe\xd62B\xd8\xbf\x15gz\x0b)\x07\xfa?8\xce\x86<\xc5\x87\xc9\xbf\xdaBz\xc7\xdc\xac\x01\xc0\xd8\x98\xad\xddv\xf5\x10\xc03\xa4\tT\xe9\xab\x0c\xc0(O\x91\xc1)\x0e\xec?\xd5\xea\x94\xf4\xf1\x9a\xfc?\xbfT\xceOVK\xe0\xbf\xebl\x8e\xf1$\x98\xcf\xbf[\xd5r\x15V\xa0\xc4\xbfm\xf2\xc5\x11\x8e^\xd6\xbf(\xde.\x96\xb0+\xe3\xbfS\x91\x1e\t\xb7\xa3\xea?\xcf\xe4Z\xcd)\x10\x04\xc0Gi\x19AT;\xe8\xbf\x81\xdeX\x1e\xf9C\xed\xbf\x9cA\x10\x05\xb6\xf4\xd5?91\x9c\xbfP\x19\xd2\xbf\xf9\x933\xcb\x038\x10@\xbd#\xdc\xbfl\xd8\xf8?R\x82GU\x06\xf7\xbd\xbf\xcdp?I\x9cY\xc3?\xee\x99o\x8d\xa6\xe1\xdc\xbf\xf0&\xed\xdd~q\xaf?\xfd\xc2\xa7Q\xdbN\xfd?\x1e\x81>\xb5f\xb9\xf6?C\xa2\xc7\xfb\xf3\xd9\xf2?\xc5q\xce\x9b\x85\t\x00@\x84\xaen*H3\xe2\xbf\x16zG\xc8\x974\xd2\xbf]\x95\xc9\x90\xb5\xe9\xf5\xbf\xd1\xfdR\xbeW*\xb1\xbf\xd5o9\x0e\xae\xf5\xfb\xbf\xa7\xe0\x85\xaeS\xbf\x12\xc0\xdf\xc3d\x9a\x90P\xa5?\x0fu5V\xc3K\x06@\x1e=S\xfc\xf4\x81\xd2?\xa0J\xa2\xf9\xe7\xcb\xc5\xbf\x00\xe3\x02e8\xb4\xf1\xbf\x1a\x053\xc3\xb7\xfe\xe3?#\x1d\xaf\x19\xc3\xfa\xd2?\xe5B\x81&;\xf0\xc3?kJI\xb0\x85\xf5\x00@\xee\xe0~\xac\xc2\xe7\xf6?\xe4hM\x15<\x01\x12@qN\x8a..:\xfd?t:\xb3\x95\xffP\x08@\xeaQ;\x1c\x14\x19\x07@g\\*\xaa\xeb\xb6\xfe?\x00\xe4L\xb7\x10K\xbb\xbf\x8d\xfb\xb1\xb6M\xbd\xf0?|\xae\x9b\xf5\xe1\xf5\xac\xbfU\x03\x95\xa4\x05\xef\xd8?C\xec\x98{\xa3\xcf\xee?Wp\xc1\r\xad@\xe1\xbf?"\xecV\xc3\xfc\r\xc0\x16\x84\x01\xfb\xa0?\xeb?\x86Kw\xcb2\xfc\xfe\xbf]\xa6n\n\x0e\xc2\xf0\xbfug\xfa\xe2\x05\x1f\x07\xc03{\xeeI\x07\t\xf5\xbfm\xe4\xb7\xc5\x05\x16\xe8\xbfK^hI\xfb\xc9\xe0\xbfpmq\x06\x90+\x97?\xbf\xa4\xfdr{\xb5\x00@\xf9+\x17 S)\xe8\xbf\xef~\xb5\x07\xedu\x04@=\xaa\xff4\xb3\x83\xf9?\xa8\x17\xcd\x0f\xca\xa0\xe5?\xebp\xd5\xa5"\x1d\xeb?\xcfku\xb6\xa2\x95\xbb?\xed\xfa*\x89\xc3\xa9\xd4?\x96\x95E&\xbd\x17\xf9?\xbc\xd0\x00\xfc\'\x07\xf3\xbf\x8amP\xa7\xf1\x1c\x0b@9\xc5\xafJ\xe6l\xf2?\xf25*\xb0N\xe6\xc7?\xbc\xbb\x1b\x82/i\xff?RP\xd7\xa1\x13h\xf5?W\xdbg@W^\xbe?\xfed\xd7\x90\x9c\x96\xec\xbfY(fY\xea<\x12@\xf6v\x1fa\x9c\xd0\xff\xbff\xf0\xf7]\x0f\x0f\xf0?\xde\x7fzJ\xa8P\x0b@H\xc1\x02\x90#,\xd6?Ybr)\xa78\x04@3{\x02\xd4h\xbd\xe1?\\2\x94\n\xb0v\xe0?\x15R\x10\x83hC\x07\xc0\x9d%\x01S3\x0c\xf6\xbf\xa4i\xf4\x0e\xdd\xca\xec\xbf\xba\xec\x17\x90<\xe0\xe4\xbf\x90\x90&\xea\xb8\xc7\xf5?\x87\xee\xa0\x8d\x97\xd8\xf7\xbfPO\x92\x1bt\xf9\xf2?\xed8\xa9\xe1_\x0e\xfb?D_\xf5 \x85y\xff?}\xcc\xd7\xdaw\xf5\xdb\xbfc\xebK\x82m\xdf\xb7?8a\x81a\xa2C\xf0\xbf\xeaOP6\xbb\x86\x04@\xaf\xf2\x00\t\x93\x85\x00@^\x99\xf0\xdau@\xdd?\xe8\xe1\xd3\xa9\xd4T\xee\xbf7\xcf\xadx\xff\x1b\xe8\xbf\x97\xd7\xc6D>\x1f\xce\xbfps;\x86Q\x9c\xef\xbf\xed\xce\xdc\x04\xc0\x08\x9df@\xd7_\xe1\xbf\x92\x1c\'c\xb0"\xf2?\x8dH\nN*]\xeb\xbf\xf6\xf7\x030\xed\xff\x96?\xfcR\x95okD\xed?5\x8a\xea\xfd\xb8\xbe\xca\xbf\x92\x1b%c\x0b\xb4\xe3\xbf\x80\xb6M\x18\x8a\xc7\x9c?k\x19u\xf2qny\xbfR+\x83\xdfJ\xde\xe2\xbf%U\x9cR\x02\x1a\xff?r\x11\xe9\xf9%\xe6\xcc?\xaalD\x0f\xa9\xc3\xe7?0\xfb\xbe\xfc#m\xc0?\xc0\xa3\x1c\xe5\x82D\x00\xc0\x01\xbe\xf6^\xa5|\xf9\xbf\xabN\xa7\xe1\x17\xfa\xc3?\xaaO\xc2\x8bF\xf5\xf2\xbfAY\xff2\x11\x80\xfc\xbf\x1b\xf0Ds\x7f\xe2\xe3\xbf:n\xb2[[\x91\xfe\xbf\x94\x7fy\xabz6\x04\xc0v\xa9\xbf!wQ\xe8\xbf\xc4vm\'\x8bc\xf3\xbf\x90\xa4\x89\xeaPv\xfa?$\x84\xaa\x10\xd1\x8e\xee?4o.\x14\x06r\xf4?G\x92y\xd1!\xd8\xf3\xbf\xd0\xa5\x15\xe5\xc3\x1b\xc3\xbfel1I\xbc\x1a\xe0\xbf\xc7,\xc7|\xa5\xf9\xe1?fQ?D\xb8c\xf5\xbf\xff-\xd6a\xad\xd6\xef?/V\x88K\xedk\xd4?\x02\xd0\xee\x9a\r\x95\xd9\xbf\xbe>}\xa7*\n\xec?\x8e\xdf\x87x`\x0e\xe4?\xd2\xfb\x82\xdae\xae\xea\xbf\xe5\x11d\xb3\x1f\xa3\xc7\xbf\xe8\xccxL\xb3\xd8\xe8\xbf\xec\xf6\'\xce]\x04\xff?N\x84\xd55\x9a@\x06@S\xf8\x8eB\x08\x81\xdc?\x96D\x92e\x04W\xf0\xbf\xdf1\xeb|\x05\xac\xcf\xbfR\xd0\x04)m`\xc8\xbf\xaf\x05\xca\xebT\xa8\xb6\xbf\xb8x\x1c\xbf\xd7i\xd2\xbf\xaf\x96\xe8\x12\xb5\xbc\xb9?0\xf0\x9f\xf4\x94W\xd7\xbf\xfe\xf6\x8d;\x87\x9a\n\xc0\x8e\x96\xdd\x0c\xc5\xc7\xff?E\x08\xe1\x98&\x8f\xc2?\xafcn\x92\xa5\x14\xbd?\n\xdc\x8bg\x0c\xb8\xe7?\x8ap9E@\x87\xda?\x11\xd0\xe4q\xe0!\xf9\xaa\xb4\xbfE\x92\xa7\x12\xe0\xf2\xa9?=\xa1\xea\x82\xed0\xf0?C\xa5\xba\x8e2,\xec\xbf\xe6\xf2\xb2\xa3#\x0e\xdf?\xccR\xb7JJ\x01\xea?\xcd\xa1\xb6G\\b\xe7?\x12\x0f\xf0\xa4\xf7J\xf7\xbf\xb82zFPz\xc1\xbf\x00n\xf9\xa6\x15i\xeb\xbf\xe8\xa2\x16\xa7Y#\xd7\xbf\x08\xd5]\xa4\r\x16\xd8\xbflh\x8d\xcf\xfdV\x8d?\xe9\x8d+\xd2\xd8\x08\xe6?\xe1\xf3./RN\xd7\xbfT\xf2,\x1a\xa9\xe5\xde?\x1e\\\xc8\x00\xb6B\xd0?^\xc5<&\x1c\xad\xe0\xbf\xfb\xf7F\xf9\x8d$\xc4\xbf+ \xc9\xd9\xec\x17\xc0?%\xfaU5\x0c\x94\xa8?\x80\x8c\x96\xb9]F\xee\xbf\xf2X\x89\xa4F\x10\xf2?E\x05L[\x99K\xe0?\xda\xf7P\x12<\xb9\xf1?\x9f\xf0\xcc3}\x7f\xe9?\x19U\xb0\xb5\x9a\x97\xd6?\xd6xb\x02X\x1d\x9d?\xcb\x11.\xed\x0c\xab\xf3?\x93\xe3\xaa\xe9Wq\xca\xbf~)uD\xae\xb0\xd3?\xd39\x96\xe1;\xcc\xd7\xbf)1\x93\xb4\xbba\xf0?\xae\xb0C\xb9n\x15\xe0?\x900\x98\xd9\x88\x8f\xe5?\x9b\xe3r\xdeQp\xb3\xbf\xff\xbe\xe3H\x96\xeb\xe2?\x1c\x90\xe3\xc0n\xed\xe8\xbf@\nI\xe4,\xec\xd1\xbf\x17\x9d\xd5p\x1d\xe6\xfb?\xcb\xe8\xf9rU\xfc\xba\xbfE\xed\xd2~\xc2\x1f\xb2\xbf\xf8_\xde6\xe1\r\xf8?\x08\xb3\xc5k(\x0e\xd6\xbfr\x83\x93Xl#\xde?\xe4o\xde\x06&\x08\xd0?\xac\x08\x82\x11\xba\xbd\xd0\xbf5\xcfA"\x13y\xf7?\xb4P\xc0f\xf2\x1b\xf4\xbf\xb66\x9c \x05\xfa\xd0?i\xa2\xb2\xf9\x1d\xee\xee\xbfV>\xec\xd8#\xb9\xd0\xbfn\xca\'{\x94\xcd?\x0b3\x96J\x16\xc2\xfe?\x02\xb5\xd2\xb5_\xe1\xe0?\x97G\xf2\xc9\xfe\xa2\xe8?#\xf1|\x8dX\xc0\xf7?A\xeb[\xbd?\x9a\x06@WqQ\xc7\xda\xc0\xf5? Rh\x11\x12/\xf8?k\xa0\xb3G:\x1a\xf7?#P\xba\xa3\xef<\x05@\t\xfb\x14SEW\xf7?\xfaY\x08\x1a:\x1d\xf6?\xe3\x84\x9b\xf4\x1e_\xf0?`\x87MRB6\xea?W\xa3RZ\x90z\xe3\xbf\xcb3\xf5;\xa9\x90\xe6\xbf\x08\x85\xb0\x97\xce\x9e\xf7?)\x1f\x9f\xbdS\xa3\xe8?[e\x9a\x9b+j\xdd?\x99\xd9\xae\xe0\xd0\xcf\xe0\xbf\x90\x07\xcbNOG\xed?\xc9j\xb2?\xbcT\xd1?\xdb;\x0bD\x8a\xd1\xe2?\xdb\xb24\xf0U\xc7\xc3\xbf\xf3&\xd8b\xca:\xdd?w\xdcBF\xcc\x0b\xdb\xbflw\x99&\xa34\xd2\xbf\xeec\x12\xd14\xae\xd6?\xa3K\xab\xad\x7f\xf0\xe3\xbf6\xc8W\xc1\xe3\xa0\xf2?$]\x17FU\xbf\xfb?\x11\xf1\x06\xe2\x84\xb9\xe0?\x14\x9bB\xcf\x94,\x02@\x12?E\xf5\xf2\xfe\xe7?\x14$\xbb\xae}\xd2\t@\\\x0f\xe3\xcc\xb6\xa1\t@\xee&fO\xfe\x84\xfb\xbf\xd9\xafg\\\x0c[\xe6\xbfM\xc2t\x9d\xf1\xab\xf6?\x8b\xff\xf6\xed\xa8\x17\xfe\xbf9t\x07\x91\xe6\xd2\xf3\xbf\xad(\xe5\xbd\xba\xce\xe2?@\xbc.P\xa5\x03\xde\xbf\x9d\x02\x0e7\xaa\xb0\xdd\xbf\x18T\xb6\x8dI?\xe0?%\x89zX\xa5K\xf6\xbfQTt\x97\xe7@\xc9\xbfs\xd1*x^<\x9c\xbf\xa6\x1a\xb2\x87\xbb\xed\xbb?\xc9\xa8a\xe2\\3\xb1\xbf\x85 \x11\x85\x88.\xf0\xbf9\xe3\xfd\x83\x15\x91\xe2\xbfxj\xa8\xa3\xfb\xa3\xe7\xbf\t_E\xfaDh\xeb\xbfol\xc9*\x96O\xdd\xbf?\xb3\xe2\x10\x83O\xdd\xbf\x9b\xcb6\xf2T\x11\xaf\xbfq\x02`H\xe5\xa2\xdd?\xff\x0e\x9b\xcf\x93\xc9\xf1?8\xcb\xd7\xc6/\x7f\xf0?t}d\x97\xdb.\xe2\xbf\x14\xc8\xa6\xdf\xde\xa3\xf4\xbf\x1e\xc4>\xe2\xf0\xe0\xc0\xbfXL\x05{\xb7\xf8\xeb?+\x89D\x93\xd5\xeb\xec\xbfQ\xben\x97\x1ad\xef?\x16I\xccRAB\xea\xbf\xbb\x9cL\'q\x82\xc9\xbf\\\xc2\x0b\xa8\xd5K\xe9?\x01\x8a\x9a{\x05\x88\xd3?\x90\xaf\xe5Rc.\xb5\xbf<\xa9>\xef\xc6\xb9\xa7?\xff8m\x01\xaf\x96\x00@\xa8\xc3\xe6_%Z\xf7?\x99P\xb3X\xd4\xca\x06\xc0\xe9]Nk\xd1\xd2\xe8\xbf\xe1\xef\x18\xcc;\xb6\xc9?\xfb\xcc?h~A\xbf?\xf4V\x14\xfe{\xbe\xe6?\xd9\xd3a\x83:\xcb\xd6\xbf\xff\xdb\x11d\xa6[\xe6\xbfp\x00\xee\xf2c \xea\xbf\xb0\xd9\xba\xd8\xcfy\xfe\xbf@y1%Q\xbb\xfa\xbf\x90\xe5\x99\x82\x9c\x18\x94?\xd3\x06\xe5\xa2\x85\xf3\xea?\x08s!\x1a\xab\x8d\xf3\xbf\xcd\xf2\xdb\x9cR>\xf6?\xb3F\xd1O\xabD\xe3?|\x01i\xe9j\xa7\xe7?:9M/\xfe\xd6~\xbf\xd0{\xa2\x1b]`\xf3?O\x83\xf0T(\x12\xdb?g^Q\x063\xd7\xf1\xbf\x8fC\xfeZ\x88\x8a\xdd\xbf\xb4\r\xf66\x9b0\x00@\t\x1c\n\xe7\xa6\xae\xfc\xbfx\xff:\xc3VB\xec\xbf\x83\x9e\xa3\x1c\xd8\xd9\xe3?\xa7\x86n\x8f\xa4\xea\x05\xc0\x94\x02=\x07*\xe6\xf7\xbf\x7f\xdbm\xca\x7f|\x02\xc0\x9a\x85\x1e\x1f\x0c\x9ch\xa8\xf5\xbf\x92\x0b\x01vLz\xea\xbf#\xef\x92\tF\x9d\xb4\xbf\xd9\xd8g\x01.\x92\xea\xbfx_\x9fhK\x86\xe6?\xfbYrm\xfa\xc9\xb7?\t\x81\x08E\x9ac\xa4\xbf\xf2yL\xb4\x89\xdd\xfd\xbf=]<6\xd9\xef\xe5?E^\xde^n\x80\xf7\xbf\xa8\xe7|\xc1\x8fB\xf2?\xe7\xb0\x8f?\xa9\n\xd9\xbf\x8c\xacGI\xc3\xdf\xe6?\xc0\xbc\x08De\x89\xf5\xbf\xdeB&\xd3%]\xe2\xbf\xcd3\xf2,\x9ds\xf4?\x9f\xaeU\xfe\xf0X\xd8\xbf\x19\x96\xb9j\xb7^\xe9\xbf-\xe0\xc7\x8f\xc0J\xfd?\xd9\x05L7,\xe9\xee\xbf\xb8i\xc6\xd5Ab\x86\xbf\xad\xc9\xf2q"V\xed?\\h\xfb\xcf\xa3\xf2\xfb\xbfVLk \x9cF\xb2\xbf\x93\x01\xfe8.\x94\xe0?\xc7F1\xa7,$\xc1\xbfs\xe8@\x06\xba\x0e\n\xc0\x97\xf7\xd5\xb7k<\x17\xc0j\x9cO}"\xb0\x00\xc0\xac\xae\xc8\xb5\xce\xa2\xdc\xbf\xcdz\x076\xa3\x83\x94\xbf\x05\xc7\xcbe\xa9\xe3\xe3?\xa0Q2\xa2\xb50\xe6\xbfw.\x98y\x1d\x03\x02@}Y_e\x86K\xdd?\xf4\xc3\xa61$^\xe8?\x02s\xce/\x1bl\xf0\xbf\x13\x8bz\xce\xa9\xe0\xf7\xbf\n%o\xed,\n\x04@\xe7\xc7UiU\xca\xa1?\xf2\xef\xaf\xcf\x18Y\x00@\xd0{LH14\xe7\xbfG\x04\x8f\xf1?\xaf\xb6\t\x82_r\xb1\xbf\xa5V=\xe3\x82p\xf3\xbf\xebO;\x9e\xd2\xa1\xde\xbf<\x89\xf2\xa6\xf8\xa1\x14\xc0\xba\xdc\xdb\xcdJ\x1a\x15\xc0v%\x1dK\x14\xa7\xf6\xbf\x98\xd1\xac\xeb\x1b\xb4\xf7\xbf2\xb5\xc3\x14\xcd\xc7\x17?\x91\x9bZ\n>k\xc3\xbf\xd1\x90(\x05u\xc3\xe8?\xec\xe0=B]A\xe7?y\xfa\x8bp\x12\x1d\xef\xbfk\xcbv\x15[k\xf2\xbfJ\xb5\xed\x8a\xc0\xc4\xd6\xbf\x1b\xe1E\xca\x02\xf6\xee\xbf\xbe\xd8\xb0\x04\xdb\xfe\x05\xc0a,\xe2^\xe1>\xd5\xbf\xfbq\xa1\xf1H\xc7\xdb\xbf\x9e\x1c\x1fY\x81\xc7\x05\xc0\xfb\x04\xda\xa7-9\xf1\xbf~\xda\xd2F\x968\x14\xc02\x1b\x18\xdd\xd3\xa9\x19\xc0e\xb6\xc6\xd3\x1b\xed\x10\xc0\xb6\x02.\xe0\x96u\xd5\xbf\xb3i\xe5\x18\xaf\xa2\xfa\xbf\x95m8\xa84\x03\xe5\xbf\xa7o\xeeT\xbcK\x01@\xa3fz;m\xb3\xe6?\x06\x07\xbdeh\x0c\x04@\xb6\xcfy\xc5\xa8\xef\n@\xea\x82p:\xdb\xd8\xdd?\x88\x10\x95\xee\xcf<\xd7?`\xec\x99\x11\x16\x13\x00\xc0]\x93\xf4\x84\x1a/\xcd\xbfV\xd5q\xbb\xa4P\xfe?\xfd\xc8 \xc8\x89:\xd0?;\x92\xf1\xc3\t.\xdf?|\xd0\x01\x1a\xf1Q\xd1\xbf\xbf^f9\xb6e\xb7?\xb4q\xfdyRC\xf5\xbfQ\x16\x8fK\xc2\x93\xc1?\xf4\x00\x00\xf1\xa0\x93\xda\xbf#\x95\xb2\x13n\xfc\xe7\xbfi\xeb\xc5\xa3\xea\xf6\xf1?\x11\x07\xcb@\xfd\x8d\xe7\xbf\xe6\x8cR\xb9PM\xfb\xbfY\x9c`\x98\xdfN\xfc\xbf\xb1\x18g\xc2\xd9\n\x08\xc0\xf8\xf3y\x15\xefb\xf3\xbf\xd2\x90\'\xcfR\x8d\x15\xc0\xfdE\x8b^pB\x0b\xc0\xfd\xc8\xa8\x15\t\n\x06\xc0\x8f\xf5|v\xb3>\xdf\xbf\x9b\x1f\xbf\x89C\xd8\xfd\xbf\x0c\x0bL:\xf2\x041?\xe1\xad\xdf\xc4C\xc6\xf0\xbfd\x017\xae\xf8\xc4\xcf?\x91h\x04Zw\x99\xff?s\x0e\'\'\xb9\x8f\r@g\x87\x88 \x93n\x08@@\xdfIm\x86\xc4\xd1\xbfk\x15\xc3\x08\x04\xb3\xfd?\xcd\x94\xc0\x99\x12)\xeb?\xa5\xe2\xb4Me\xbd\xee\xbf\xf8\x08\x04\xba\x06\xb3\xf5\xbf\xdcq\x9d\x8c|g\xf2\xbf9\x06\xb1Ia\xc4\xbb\xbfD]\xe7 ]\xc0\xe0\xbf\x0c\xa2Z\xe6\xd6T\xc3?\xfd,\xd5\xf7\xfc"\xf6\xbf\xd6x\xdd\x8c^l\xed\xbfN`\x0f\x03z\xc9\x03\xc0J"\xae\xa9c\x02\xde?#\xaa\xbcc\xc5\xc3\xd0\xbf\xd4u\x9eV9x\xf0\xbfY\xcb\x9a\xac\x8c\x0b\x12\xc0\xc4\xd9\xea\x1b7o\x0e\xc0.\x8d\xfd\x9clE\xea\xbf?*\x8f\xcd\x86\xf2\x13\xc0R\x9c2\xf8\x9a\xf7\x06\xc0A\xe6\x1e\xaf\xa0\xd3\xfe\xbf\x89OP\xb5\x0fb\x06\xc0=\xf9\x8bBy\xa9\x00\xc0>?9\xa8\x1a\xe7\x06\xc0\xfa\xf7\xe0\xa8\x8e\xe1\t@\xc7\x02zH\xe2u\xb2\xbf\\\xd1+\x0cS\x1f\x08@4\xce\xb4D\xf6s\x13@\xad\x18\x8e\x15eM\x05@\xf5\xa3>w4\x97\xf7?\xf3I\xb6\x96?\x1f\xe2?\xdc#6_\xbc\xfb\xbb?h6\xc7\x8d\xd8\xec\xbf\xbf\x8f\xf4\xc4\xd2\xb4\xe7\xf7?\xfc\xaaq\xc8h\x84\xef?;O,\xa0\xf6;\x02@2\xb1 \xf6\xfe[\xf9?\xa0WC\x06\xdf\xf7\n@\xe6\x10\x11rv\xaa\xfe?j7;Q\xe6\xf2\xf6\xbf]\x80:8\x80\xbf\xeb?G\x1c\xdf8]\xa0\xd3\xbf\xac\x02l\xd6"\x83\xdd\xbfj\xd5@\x97\x8c\x7f\x00\xc0\xad_\xf4y\xd7\xd9\xec\xbf\xaa\x03D\xdb\'h\xe6\xbfo\x0eu\x9e\x96\xe9\x08\xc0\xef\xb4V\x041\x9f\xf9\xbf\x95!\xf5\xf8\xa7g\x07\xc0Z{\xc3kj3\xf1?:\x11\x812d\x9e\xea\xbfa\xdcM\xd2\xfd\xcf\xf6?\xf1\xc1\x92\x87\xb7\xfb\xd4\xbf\xfd\xfajZ\xb8N\xc3?R\x19U\x0fT\x01\xf0?\x19\xa1\xa2\x0f\x07\xde\x03@B\x05D\x9a\x1e\x1f\x04@\x08o\x94(c\x94\xf1?\xe0\xf3\xf8pP\x1e\xd6?r\xcb"\xab\xder\xdb\xbf\xd5M\x00<\xe7\x89\xec\xbf\x04\xbd7\x86\xbc\x96\xef\xbf\xbe\xa7|\xab%\x9f\xd2?\x8bJ\xf2`\xcf\xea\x03@\xc9C\x075]{\x0b@d\xb8,\xabP\xb3\x14@A\xdc7\x8bn\xc9\x13@\x92h\x92?K\x1a\x07@}@\xd13$\xd7\xe1?\x85\xc8\xf0us&\xeb\xbf\x0f\tO\xf7\xaa1\xff\xbf\xf5.q\xdd+\xa6\x04\xc0=N\xd2\xdf\xf6\xbb\xf9\xbf\xf0e\x12,\xdb\xe1\xf8\xbf\x95w\xc5\xb1z\xeb\xf6\xbf_\x9a\x95g\x06\xba\x02\xc0\xdd\x93\x1bD\x86\xba\xe8?\xd6\n\xb0M#\xd9\xf6\xbf\x8f\xfc\x1c\x9b\xcd\xef\xf3?\xd36\xc4\r\x10c\xbc\xbfrAw\x1a\xe0\xd0\xbc?6\x96\xb3\x8d\xadg\xfa\xbf\xf0\x1b\xb9\x8f\xe4\x07\xbe\xbf\xcb\xa4\xc9}\x9f\xa2\x0b@S\xc3:@:\xee\x06@\xc1\n\xb0\xce1I\xeb?\x85!t\xbfb\xb2\xf0?\x03\x8d\x8f\x8c\xdc\xac\xe4?\x8bM\x9fW\xbao\xc8\xbf0vv\xcc\x05$\xc2\xbfe\xe1w\x10SQ\xf7?\xa5\xae\x08\x94ij\x00@\xad-\x17\xc1=A\x00@\xa7,f\xc1T\x19\x03@)\'n\x9dI\xe1\x0c@\x00\xba<&\xaa\xc8\x14@\xef\xc5Vv\xd1v\x14@\x89\xc8\x12\x01wT\xca?\x92S\x97\x17:\\\x0b\xc0\xbc\x1ffn\xeb\xb4\xf8\xbftu\xb9=\xc9\xef\t\xc0\xee\x18\xea\x93\xb6\x05\x05\xc0\x98\xfbb\xa6\xfcn\xe4\xbf\x92\x84\x06\xfc)\xbd\xc7?d6\xddb0\xd8\xf3?b0?O}y\xd5?\xd5\\\x07C\x9f\xf7\xf8?\x84\r\x98\xcf\x8e+\xff\xbf\x11\xd8z\xcc\x12\xc0\xf1?q>\x1cmk?\xaf?-\x8d\xfe\xd3\x8a\xdc\xd0?#lIH\x12 \x12@\xfa\xeb`\xdd\x062\x1a@\x8e\x014\x9f\xa2R\x04@\\\xa5\xb2\x1c\xb7a\x02@\x835\xb9G\xfa\x12\xd9\xbf\xf6`\xc2Ch\x84\xb5?\xde=\x0e\xea\x89\xab\xfa?)\r\xd3\xaej\x08\xd8\xbf\xe6\x19\xf5\n\xabI\xcc\xbf\x12y}\x975Z\xf7\xbf\xd3`M$>%\xe4?\xf3\x17\x7f\x06*\xb8\xf6?\xba$A\xf7\xa9\xb2\x0b@\x1f;\xe7\x08\xfa\xe9\x17@\xdb\xa2\x9b\xee\xb0\xf9\x1b@7r,\'LL\x0c@5\xbf}\x9e;\x95\x04@\xdc\xff\xdd\xc1\'\x98\xbb\xbf\xfc"p<\xf3\xb7\xd8?%\xd6\xf3O\x9bK\x00@\x9b\x02r\xed**\xf7?vn\x90\x05\x89\x16\xd5\xbf\xacM\xadi{\x87\xe3?&\xbdc\x127}\xf1?0\xdb\x18bW\xf1\xf3\xbfi\x97c\xa3\xdd\x15\xdf\xbfs\x0b\xe5\xc0\x8e\xba\xcb\xbf\xd7\xbc`\x990\x8e\xf2\xbfV\x93\xb8\x7f\\\xbd\x15@$\x89\x07\xe7\xf9-\x14@J\xf7\xe5\xe83v\xf4?\xb6\xc7\x0f.\xe7\xb7\xf4?7R~\xb3g\xe4\xb5?\x05d\xd3\x1c6\xcf\xea\xbfd\x98\x04\xb6\x8a\xdc\xe3?\xff\xfdw\xdf\xf1\xc2\xf5\xbfk\xa9\x04\xf7\xc4!\xf4?(r\xf2\x16\x90Q\xf6?E\xd6/\xd3\x17&\xfd\xbfFc\x13\x1e\x9d[\xf6?\x02V(6\xb1R\x07\xc0u\xca\x10\xa5\x05,\xc2?\x15:\x8c\n\x00\xe3\x1e@\xf5\xb4\xb8\xa2\x0b\x88\x10@\xbd\xe7H\x8eRl\x0e@\xac\x18L\x0f^(\x05@`g\x7f(\xeeu\xe1\xbff\x15\xf0\xc5\x94\x8c\xe3\xbf\xc1\xdc\x0bcw\xc9\xea?\xfd\x15\xb7\x07\x04\xf2\xd9?\xc0\xfbk\xd2\xb6\x8d\xd8?\xf5\xbd\x9c\t_|\xe2\xbf\r\xb0loQ\xbb\xe0?\xc1\x10\xf4\x15\xbb\x0e\xd7\xbf\xfbe1g\x8d\xe1\xca?V\x1b\xccr\xee+\xdb?\x1b\xcd\xd5\xeb\xab[\r@\xda\x8aWZ\xb5(\x00@I\x04\x06\xef\xc9\x86\xed\xbf \x106\xaa\xba\x06\xca\xbf\xf0k\x0c\x10\xfc]\xd9\xbf0t{\xd9\xe3\xe2\xee\xbf\x07\xc0j\x87\x9c\x00\xd2\xbf_\xdcd\xba\xd9\x9c\xe0\xbf\x8b}9\xe3\xfa\x9f\xc9?\x89;6\xf3e\xc1\xf8\xbf\xd2\x92\x91\xfe\x9f\xdd\x00\xc0(Yj\xe1\xbb8\xf0?y\xc37/:N\x80?\x91P\xa5_\xa0\xf6\xd9?6Q+\xceO\xa8\xfb\xbfsu\x07\xc8\xbez\x03@\xfbir\xca;\xa7\x0f@\x1a\x1c\xcd\x97\t\xdf\xe3?\xf4\x94\x87\x8fW|\x02@\x00\xe9\xe3\x15-\x85\x01\xc0Q\x1f\xbc\xc0\x1ad\xf9?\xe0\x85\xc3x-\x87\xed\xbf\xe7\xe9\x8a\xc28\x84\xe9\xbf\xfe_\xfe\xbf\xb0\xc6\x02\xc0&\x99-\xe9\xc3\x81\xf2?\x01\x97\xb6\xbdM\x91\xe2?\'Y\x100\xd6K\x05@\xcf\x11A?\x1eS\xd2?X\xa0\xe0\x9d?P\xf8?\x03\xc4E\xb9\xae\xf7\xe2?\xf0+LPP\x95\xe6\xbf\x14\xabd/Ha\xee?\xcc\xb2&)D\x14\xf2\xbf>\x8ap\xc4\x03\xc2\xe4\xbfNlW~:\xa7\xde?\xf05\x11I\x072\xf1?\xeb\xe5\xa4\xe6\x8a\xcd\x90?\x81A\x8e!\xac\x1e\xfa?9\xaa\xc6=jD\xde\xbf\x03F\xa1\x1d$\xc1\xfa?\xfc\xfbx\xe4~p\xe0\xbf\xa6Q\xb6U\x8d\xc3\xe1\xbfZ\x98|\xaca\xa4\x96?H6\xb11\xe9\xba\xf3?\xdb\x944z\xa8\xd0\xf7?\xfb\xf1\x05h\xca\x07\t@\xaa\x1d\x1f\x7f\xc99\xe5\xbf\xe8h\xb2`\x8d\xa4\xe9?G\xce\xcc\x89\xbc\x19\x03@5\x13\xa6\xd185\xe5\xbfv\xc6\xe2\xda\x95\xd6\xc7\xbf\x86L\xe1\xec\xfa_\xda?2\xbf\x9b\x1f1\xcb\xd9?\xfey\x02ZQ\xe9\xe7?(\x13\x04\xb7\xe3\xe2\xd6?\xb8&\x91\xd6$t\xee?M\x14?Gg\x96\x03@>\xb4\x8by]R\xcb\xbf\x0ck\x16\xb7j\xd4\xee\xbf\xde\x9e\xdf\xf0&\xa5\xe6\xbfW\x05G&\xc4\x8f\xe6?\x02B\x88\xf0\xe2G\xc0?i0mE\xc1B\xef?\xf6\xfb\xcf\xdb6\xdc\xdb?i\xd5\xd2\xb1\xb2D\xe8\xbf\xf3x\xa4\xbd\xb0\x82\xe8?\x8d\xc5\x05[\x0c@\xf3\xbf\x0b7\x0f\xcb\xa4-\xe0?c\xfc\xda\x84=:\xf8\xbf6\x0c\x18G\xf0x\x06@\x8dZU\x16_\n\xb9\xbf\xd7\x91\xd6\x1a2\\\xe9?\x05\xce\x9bhT\xc4\x02@/\xfc\xe9\x81\xc4\xc9\xd5\xbf\x1d\xdb\xb4L\x92\x0e\xed\xbf\xce\'\x9e\xad\xea\xa7\xff\xbf\xb7E\xc1\xcd\xa6\xb2\xd2\xbf\xce&6\xd5\x1a1\x90?\xec(\xcb\xdfK\xb0\xa9\xbf0>+e\x8e\x8a\xf8?\xd9\xaa\xb6e\x8d\xba\xe2?\x88\x9a\xf8}\x02\xf4\xea\xbf\x9f\x96\xdb\x8e%\xf5\xf2?\x03M\xeb\xd8\xd2_\xfe?\x03\x0b.\xe0J\xcc\xff?\xf7\xbe\x82@BX\xec?\xae^\x0f\xf58\x93\xe2?\x12-\xa3R\xcc|\xea\xbfi;j\xe6\xf3\x98\xef\xbf7\xfcq\x93\x91\x99\xd7?\xdc\xee\x18\xf7\xc5\xa5\xf5?\xf1\x9b\'\x08\xf8\xb4\xe7\xbf\x8e"k\x93\xeb9\xf6\xbfU\x9e=?\xf9G\xfe??\xf3\xf0D\xd0\x91\xc7?#3Uz\x95D\xc4?8\x84\x9el\x13\x12\xf2?I\x16\x83b\x8a\xe0\x81?_\xb0GX\xfc\x07\xdb\xbf\xc9\\\x04\x05\xc8Y\xd6\xbf\x03#\xe2\xe5-c\xe1?\xfe\xffS&\x945\x05@\xbd\x9e\xb6\xdb\x8c\xd8\xf2?\xeb\x0b\xd0\xe5\xac\xbf\xf0\xbf\x98\x1462Nv\xc1\xbfz3\xf2\x96\xde\x88\xc0?]_#S8\x07\xf0?\x960\xad5\xf2u\xe7\xbfV\xbe\xf6\xd3\x17\xb7\x08@(\x08O\x8f\xfex\xce\xbfL\xc3\xfa\x84\t\xe2\xfe?;"\xe7\x92\x16\xfd\x02@+\x88ro\x7f\x9a\xf5?\x12\xc4\xc4l\xea\xd7\xf4?\xfbn\x19l\xde+\xef\xbf\x9d\xe5\xc9\xae\xac\x08\xe3\xbf\xa8\xca\xeb\x87\x11\xdc\xf3\xbf\xfb\xdfz8\x92\xa3\xd5?>\xcedm\xc1N\xda\xbf\x86\xbe\xc8\x12\x82\x89\xf0\xbf\x169\x7f>0m\xe6\xbf\'\x90\xd2\x9fk\xcd\xed\xbf}\x92\x1d\xd3\xd1\xde\xd4?\x1b\x85\x84\x96\x03H\x04@\xf0KE\xe6\xafz\xf2\xbf5\xf4W\x987\xf6\xf7?/\x8d\xcah{\x06\xf2?Vq\xf2w!\x90\xee?\x05\xfas!n\x07\xe3?\xec\x936\xc5\xa4%\xe4\xbff\xec\x11(\x1c\xbf\xb2\xbf\x10Vv\x0b\x0c\xa4\xf6\xbf\x95c\xf1x\xb1:\xe9?d\xa9\x08)\xa1*\x04\xc0"!yi#$\xdf\xbf\t\xad\x00\xe1\xeb\xfc\xf9?^\x9eP\x95\x00\xe9\xf8?\x83\x1d2l\xae\xb8\x06@\xce\xa3\xc6\xed\x01\xbb\x05@V\x11\xeays/\x02@\xcf\xf0,\t#;\xee?]\xaf\xcfO(;\xeb?V\x1c\xbe\x8a\xca\xb0\xfb\xbf\xb1\x8eSo\xcaa\xd1\xbf\xb8\xf11\xd4%\xbd\xdf\xbf\xb9|\x05\xd8f\xc4\xf0?"1\xfdu\xcam\xe3\xbf\xe1\x07VG\xea\x91\xf7\xbf\x98\xbb\x13E\xa9\xd2\xfb\xbf\xed\x00@\xe3^\x86\xf1\xbf\xcd\xe0\x8f\xca\xbf}\xf9\xbf\xc5\xf9,\xe0\xf2{\xd6\xbf\x82\xb1D\x12\t&\x00\xc0&\x12R}C\xa1\xe8\xbf=Y\x19\xb6P\x9c\x01\xc0e\x03&\x9e3!\xdb\xbf\x92\xf3\x87\x88\xc1\x15\xee?{\xe6g\x85\xb7A\xf8?\x88.8\x8c\x97\xa1\x00@2\xe5\xbc\xba\x10\xab\xd2\xbf\xde\xca\x00f\xb0)\x02\xc0@\xcc\xfc\xbf\xe9f\xfa\xbf\xc7*\x8c\xe6u\xf3\xf1?\xbeWl\xd1\x0b\x02\xf3\xbf\xd1zi\xfaE-\xf2\xbf\x17\xc9"\xf2\x16t\xc4\xbf?7\xb0\x11\xafC\x03@\xbav\xb7B\xb38\xf7\xbfr\xd5P\x0f>g\xd3\xbf\xd1\xa8Z\xc4\xc4U\xf0?\xb3\xe4I\xda2x\xeb?\xf2\x9d|Yh\xe4\xca?W\xe0/K\xca\xbe\xe2\xbfWzO[jV\xda?\xb0\xb8r\xe7\x1d\x95\xc4\xbf\xfd%\xa0\xf2\x9b\x91\xe6\xbff\\\xa4\xb1\xee\n\xf3\xbf\xe3\x05;\xc5\x11\x17\xea?\xcb\xc3\xba\xcb\x94k\xda?\x86\x07\xb9\xc0X\xac\xd3?T\xd5S:\xa7\x86\xe0\xbf6\x856T\x93g\xf7\xbf\xe8\xb8\xdek@\x8a\xc8\xbf\x9e\xd6\xadMR9\xc8?\x17\xbf\x992\xafL\xec\xbf\x01\xdf\xf1\x8fn\xac\xf3\xbf\x18\xd9_\xdab&\xe8\xbf\x08}\xa6M]&\x0b@\xd3\xd6G\x06\xc4J\x07@\xf5\x89\xda\xe6\x8d\xc3\xd6?\xec\xab\x9b\x88bW\xd7?\x80\x16^\xe1\xf4\xc9\xee\xbf\xcf\xf1aIa\x98\xe6?p\xdc/\xf8\xb8\x1a\xd8?Y&y\x9f$9\xe3\xbf\x10\x1e\x05$2B\xe6\xbf\xa1\x86\'6\x8e\\\x00\xc0\x89\xad\xcd\x8a\xdb\x81\xf2\xbf\xd8\xff\x94\x84\x9b\x85\xb7\xbfc\x01\x1f\x97\xe7\xcd\xe3\xbfE\xe0j\xd2\xe7?\xde\xbf\x10\xb2?\x89:\x95\xf3\xbf\xe1\xbclY\xc1\xd9\xd4\xbf?c\xbb\xb7\xa0\x8f\xdb?h\x1ea\xb3\x8b\xfa\xe6?\xba0\xf7\xd0a2\xd3?\xbai\xf6sJ\xd6\xf0?\xfe\x97\xa8\xb8\'o\xcb?\xde\xab\xb8X&\xb0\xe4\xbf\x02hSh8<\xe6?I#\xa8\xfe\xe0t\xfb?\xa5L\\Q\xd7\xe3\xed?\xb8C\xf3WH4\xf4?{c\x84\x14\x97U\x07@\xc8U\xc9\xadb_\x02@\xb3\x8a\xb2\x05];\x05@\xe1\xa7b\x08\xd9q\xf2?7E\xcd\x90*\x88\x00@\x94\xac\xfe\x9f\xb4\x13\xa1\xbf\x19\x05-\x90\xe4\x03\xee?w\x054\x91\xce\x98\x9e?\x8e>\xcf\xd7\xdc\xb0\xe0?1{\x80\x92\'\xb3\xc8?[Z\xf0\xf6\xa7W\xd3?\xd3[p\xae\xbc\xfd\xb2\xbf\xf6\x80\rJ\x8d{\xc5\xbfs\x1e\xe1\x16sK\xbb\xbfL!\x10\xf0\xb8r\xd5\xbf,Q\x86\xd2\xf4\xd5\xd4\xbf\x02\x08\xd4F\x84\xc1\xe8?\xcd.\xc6\xa8\xa5\x17\xd8\xbfa\x896\x81\xb4\xd1\xcb?"4\x98g*\x0c\xc0\xbf\xfd\xc3o\x84\x15(\xe8?Q\x04\x13Xa\x90\xf3\xbf[\x18\xc8\xf6U\xd1\xe5\xbf\xd6;yS\xf1\x86\xd9?\x04\x99\xac"/\x1c\xe1\xbf\xb1_qnc\x8d\xe3?\xdc\x11\xa4\xb3\xc4\xa4\xe2?\x81\xda\x8eG\xd2\xcf\xd0?\x83n+-\x86\xa4\xd6\xbfb\xaf\x880\x871\xd7?\x1d\x8f\xaa\xac\xa6\x1b\xe2\xbf1\xa5\xee-\xe1\xe2\xe7?\x05\xd4\n\x00\xad\xa6\xe1\xbf\xd8\xbeq\x92\x88*\xc4\xbf\x02o@\xaa\xcf\xd0\xc2\xbf4\na\x8e\x90=\xa6?d\x18\xb9\xfc\x10i\xed\xbf\xe8D\x17\xca\x04\x06\xe3\xbf\rJ\xc0\xc9\xff\x8c\xfb\xbfq\x95pV\x01\x8e\xdd?\xb7\xf2\xdd\xb6{5\x02@\xfc\x08}\x98#{\xe4\xbf\x0b.\xbc(\xe5X\xca?\x1a\x93\xc4\xdb9\xe3\xc2\xbf/g\x18\x92\xea\xa1\xff\xbf\xc89\xed\xb9\xf7\xbf\xd9?\xdc\xd9\xf2Z\x95\x87\xd8?\x06\x8c)\xe1\xb7\xe0\xe3\xbfI\xba\x1d\x0e\xcbI\xc4\xbf\xf2N\xa1iLF\xf2\xbf\xff\x04\xc6qq1\xf3\xbf\xe7b\x8d\x95\xee\xf3\xea?E\xb7\xf3\xb8\xc7\xc0\xce?ag\x1dQ{\xb4\xf8\xbf\xce\xbeB\xae\xd3E\xc0?_\xddq\x12l\xac\xc9?\xc5X\\*~\r\x85\xbf>\x8e\xda\xb0\xe1\x18\xa3?\r\x01\x8e\xd3\xd8U\xb8?\xa6\x97zO\x1aX\xe1?s\t\xec\xf5o\x12\xc6\xbfu\x99y\xf8\xd7\x13\xbf?DX\x82\xf2H\xb3\xf7?\xd8\xb2\xf3\x8c-\xe0\x94?\x9d\x0f\xffk\xf7\xcb\xda?\xd2\x8bWp\xc3\x05\xd4\xbf\xa0\'DL&\xb9\xcb\xbf$%@\xff\xce%\xf5?\xdc\xc9h\xbc\x920\xf0\xbf\xf5U\xeb\xbc\x11Q\xee\xbf\xc45\xdd\x91+a\xc6?\xb1\xd5s\x88\xa7\xbd\xc9\xbf2.\xf5\xd9hX\xa5\xbf\xa8\xf5 )\x01\xf8\xf0?\x8e\x0c1\x1f\x8e\x7f\xf4\xbf\x14\x9d\xaeG<\xcc\xa2\xbf\xa6$\xe4\xe8K\xad\xe0?b*X\x0bG\x08\xc3?\xfe/\xf5Z\xd9\xc1\xef\xbf+\xbe\x80\x15zC\xe2?\xebo\x00\xa0\xbex\xe6\xbfX=\xf5\x85\xc9 \xdb?v\x07\xddxv\xb2\xe0?\x89\x88w\xac8\xa0\xe6\xbfy\x8bK\x8aG\x1a\xf6\xbf7\xadp\x8b\xf0\xb2\xe2\xbfq1e\x05i\xad\xcb\xbfW\xa8\xd8\x03\x9c\x9b\xed\xbfY77\xecZ(\xe3?\x88`*\xd8\xf0\x8f\xd6?i\x91\xed^\xe6\xb7\xf1\xbf\xa3p\x10\xa6\xe6\xbe\xbf\xbf\x8f{\xad\x19\xf7C\xf4\xbf\xdf\xba\xc2\xf9MN\xdb\xbft\xbf~k\xe3f\xd6\xbf5<\x97(\x0cW\xd6\xbf\xee\x87\xf2\xb9`\xd2\xb7?.\xf1+t\x9fB\xb5\xbf\x0fbe.\xe1\xf9\xc0?\x1a$X.\xad\xbd\xd9\xbf9K\xcc]\xbe+\xd7?\xac\xda\x91\xde\xb2\xbe\xd6\xbfZ\x84\x90<\x80Y\xf7?\x10x}\xbb\xd7\xb2\xb2?\xd2|\n\x0b\xd3\xc2\xf0?\x90\xf1\xd2N-j\xe2\xbf$\xbd\t\xaaZ?\xd8?~\x9b\x8cE\xe9\x84\xca\xbfEA\xbc\xc2@\x01\xe4?\xdc(4\x08;F\xf3\xbf\xe2\xd3\xda\x02\xb1\xe1\xd5?\x1b\xf9\x07\xe92\x80\xf1?\x1a\t\x98A\x11\xac\xfd\xbf\xc6\r\xde\xfc\xd1\x14\xc0\xbf\xd0*\x89T\x0fy\xdd\xbf\x7f~n\x9d\x13\\\xe2?\xcf\x08\xc8!\xe0@\x9f\xbf\xec\x93\xf1N\xc1)\xfa\xbfGjSug\xf8\xb8?id\xc3\x0f\x19\xeb\xc2\xbfD\x1f\xcd\xc7\xe7\x1d\xb3\xbf\xec\xd2M[\xb9B\xc4\xbf\xcek\x0e\x94\xa1h\xbf\xbf%\xd1\xcd6\xdcD\xef\xbf\xa6!\x88d_\xdc\xbc?\x13\xf3t\xce\xba\x9eF\xbfT>\xd9l\xbdp\xf1?\x82\xf3 \xee\xcbc\xff\xbf\xd7H\xb0,&,\xb8?\x0c\xce.\xe9\xd4\n\x8f\xbf\xc0\xa5\xcd~\x1d\x07\xe3\xbf"yX\xa9\xa2\x17\xe8\xbf\\\xbf\x0f\x9a>|\xfb\xbf\x95\xb9\x87\t\x88\xad\xe4\xbfC\x9e4\xaf\xe8\x8e\xe0?u0{\n\xf6\xfd\xef\xbf\x03\x1f\xaaa%\xc4\xf6?~\x9f4\xec=\xf9\xb2?1\x89\x9dCA\xbd\xed?\x98\xe6\xc1\xca\xb1\xb1\xf1?0u\x96\x90\xd7v\xfc?\xaa\x1fx\xc5\x05z\xe3?6\xad\xa1\x1e;\xbe\xb7?\xf7HDW\x19-\xea?\x0e\xf3a\x92m\xd9\xff?\x14\x13]\x0e\x82>\xf1?\x81\xfb|[g\xf3\xa4?\tn>\x81\xb2!\xdf\xbfc\xc5\x81z\xec\xd9\xee\xbf\x93\xb0\x87\x144\xc3\xf8?\x06l\x04\xaf2-\xba?\xe9\xf4Y\xb3\x12\x06\xdc\xbfm\x95\xbf-2<\xfc\xbfh\x82\xe0M\xe7\x1e\xf6\xbf\xae\x1a\x957\x988\xba\xbf\xf9\x85\x7f\xfdjo\xca\xbf/<\x9a(w\xf3\xa9\xbf\xdd\xbb\xd3\xdb8=\xc1?\xca\x9eDF\x0e\x81\xcf\xbf\x0b@\xb8\xbe\x17\x7f\xc8?\xf5\x7f1\x91\x9c\x95\xb8\xbf\xd6\xf3K]~\xe5\xe1?i\x1b\x11\x8c~\x84\xe9\xbf\xca\xe3)\xc1\x87\x03\xf7?*\x02\xfe\xed\x886\xf7?\x15\xab\xe5\xbe5%\xfa?\x1d\x81\x00/\x80k\xd8\xbf\x91\xe1\x03\xf4)\x8f\x04@t\x13\xe8V\r\xe0\x00@\xcbp\x92$\xb0B\xf2?U\xc6\xd0/\xa9\xf6\xdc?\x81%\x8a5\xb7\x99\xf8?*\x1aL\xfap\x9e\xff?\xc3\x9dO\x0e\x06:\xe9?5L\xf3/g\xcb\xd3?Q\xafs\xe3\x89\xf0\xf5\xbf\xd4\xb8\x82\xec\x1c\xd3\xf7\xbf\xa7-\x8bg\x9f\xed\xca\xbf\x01_\xef\x82\xe2\r\xf6?\x96H\xee\x0f\xf3Q\xf1?s\xe8H\x820;\xd3\xbf\xfd\x1d\xe2\xd6\xfcw\xe0\xbf\x89\xd9\x1e\xc0\x7f\x03\xcc?[\x8d\x80\xdbaz\xeb\xbf\xe2\xaf\xbadZO\xe7?V\xa9\xfb\xdf\xf8\x87\xd8\xbf\xf3.\xf9\xe0\x83\xa6\xf2?\x06^ik\xa1<\xe8\xbf5\x01\xc6\xbc\xf0+a?h\xe1 \xb2Y\x7f\xf0\xbfP\xa3\x06TW9\xf1?\xd3\x12CP\x172\xea?\xc1\x13\x15-K\x88\xf0?\xb5\xb0\x8em\xc2\x8b\xc2?xw%o2\x98\xeb\xbf\xe6\x8e\xa1\xa3e\xa1\xf5?){^\x99\xdf\xd2\x18\xc0\x0f\x9e\xb9\x02f\t\xf5\xbf\xf4\r\xc9\xf9|\xfd\xec?\xb1\xdcR\t\xa8E\xef?\xb3\x08\xb6-+\xce\xf3?4\x11\x05;1\xcc\xe3?\xc9=C\xa8%\x86\xe3\xbf\x89\xdb\x82\xa7\x1f<\x07\xc0\xe5\x1c\x8b\xd9i\xeb\xd7?\x82:|\\\xb9\xb2\xe3?=5\xda\x98\xeb\xba\xce?\xf9\x95\xe9\xb9\xc5\xbe\xd6\xbf@?/\x92x\x0b\xcc\xbf\xcf\x99eS\xb6\x91\xd0?F\xc7\xd0\xca\xa0\x87\xeb\xbf\x06@\xac\xd4\x11Q\xf6\xbf\xd9&t{ao\xbb?\x96\xcd\x10\x9b\x15\x9b\xeb?\xe9d\x81\xf0\x15r\xe0\xbf]\x94\xe3\xf6G\xa6\xd3?\r\x08\xea\x96LS\xf6?\x16q\xc1\xf2\xa9\xef\xd9\xbf\xa4J\x8e\xdfK\xb5\x03@\xac\xcd\x9a\xb5B\x8f\xf4?\x87\xf8\x7f\xf3;F\x10\xc0a\xb2\r\x84\x1f\xc9\x0b\xc0\xb4U\xef\xcd\xadD\x07\xc0\xa4\x1e\x9c\x14\x97\xd5\xfd\xbfc:\x00\xdfD\xe6\x06\xc0\xc2H\xca\x93\xc0\xd8\x10\xc0\xbeO-l\x88/\x0f\xc0\xe3\xd1=L.\xec\x11\xc0\n\xa0\x14l&\xb1\x0b\xc0\xfb\x1e^Gy_\x12\xc0\xcb\xf1\xd8\xa4\xf1\x92\x04\xc0Y\xfa\x14\x9e`\xd1\xcf?\x89\xb1,\x13\xfe;\xf0\xbf\xba\xae\x84C\x8d\x93\xf0?\x85}\xf3\x93\xfb\xe8\x12@\x02\x86a6\xf8\x1e\xf7?|\\\x81\x19Z\xaf\xe7?\xbf&T6\xf8\xf9\xc3\xbf.\xb2z_\xd7\xe2\xf0\xbf\xe8FI\xcd?\x95\xe0\xbfa\xffY\xb1\xde\xef\xe2\xbf\xcac^\x9d\x863\xf6?\xb2\xb3R\x14\xf7:\xc8\xbfw\x11U\xec\xa5r\xf8\xbf,S\x0cem\x16\x03@(\xbf\xa9\xa4\x90:\xe6\xbf\x85L\x88\xf5br\xd2?\xdcF\xe7M%\xfd\xdc?Lzi\x9a\xb5k\xf9\xbf\xd6\xbf\xee?L\xee\x00\xc0l\x18\xe0\xc2\xea\xbb\xf8\xbf\xf6`\xc4y\xbe\xe7\x0e\xc0\xcc\x0e[\'\x05X\x0c\xc0\x07\xd3~\x12\x92\x15\x17\xc0\x8c\xe1\x1f\x8d\x0f\xd2\x0e\xc0\xca\xe0\xbaWh\xaf\x12\xc0G?@\x02E\xd0\xfa\xbfE\xb4\xc1\x96g\x88\x00\xc0b\x8b\xe6\x89\xfe2\xe4\xbft\xec\xea`\xcf_\x14\xc0P\xe6\xe9\x8e}]\xe3\xbf\x9a.X\x92L}\x9e?C\xd5\xf4~\xaa\x83\x8f?2\x93@W\x0e\xec\x01@\x9c]\xaa<\xa9\t\x06@Ccs\x88\xe1.\xf5?\xaa\x0c\xcc\xe8IQ\xf4?\x14Oe\xfb\xd7\x9f\xe1\xbf\'\xc3Ai\xf3r\xd6?\xd2\x9f\tJ]\xba\xdf?Ge\xcc\x10\x93m\xcf?\xae"\xb4\xa465\xe2\xbf\x93\x1d\xc2{\xca\xec\xf7?\xd4\xb5\xf1\x1f0g\xd6\xbf\xe8}t#\x84\xfe\xd2?\xc08\x89\x1cp\x89\xf6\xbf\xb0\xeb\xc3\xd6\xbdt\xda\xbf/\xe2\xb0\x04\xc52\xd0?q\rgNc\n\x04\xc0r\xf7\ti\x99S\xfa\xbfQ\x1f&\xb5\xf5\x84\xf5\xbf\xa74H\xf1@\xed\x13\xc0\xd8\x89cs\xc2\x81\xd3\xbf\xbc\x84\xea;\x16\x80\x18\xc01\xaa\x0b\x10\xe2n\xe9\xbf\xf4\x9c\xec\x99\xf1\r\x03\xc0F\xd4\x00[\\\xf6\xf6\xbf\x1c\xe8\xb0z\x80!\xf5\xbf\'\x11j\xa8\xe2l\xa0?R\x99\xc6\x11\x1d,\xb9\xbf\xa4\xf6\x94V\xa3q\xd3?\xd3\x11v\xbb\xc6Q\xf2?1\xfa\x92f\'z\x02@\xab\x14r\x7f\x90(\xea?\xd01\xbb\x1b\xd8\xc9\xe0\xbf\x83\xf6\xa3F\x92\xbd\xbc\xbf\xa1\xbf|\x87.\x9a\xd4\xbfn\x12a\xda\xb0\xad\xf4?m\x7f7\x88\xcc\xd7\xd9\xbf\xaa\xfe\xe97\xd1\xf9\xdb\xbf\x9fM\x1a\x7f\xff\xce\x01@!#\xbb1)n\xf8\xbf8\xf9\xe0\xbe>8\xda\xbf~\xfd\xde\x97\x1f\xe9\xf6\xbf\x01\xb9\xe9jX\xf8\xf1\xbf\x04o\x1f\xb2\x1a\xbd\x06\xc0\xde\x9e\xfeMCc\xfa\xbfl(\xfb\xae\x9c\x8f\x06\xc0\x9b\xd9\\\xab\x9e\x9e\x01\xc0\x122\xb9d\xces\x17\xc0\xdcK\xd6\x0e7e\x17\xc0\xc8\xb9$Hx\xfd\xec?!r!9\xac\xb0\xde\xbf\xdbmZA\x851\xb2?\x01\xfbA\xe5N\x07\xc4\xbf\x0b\xc9\'\x90\xa1\x00\xe7?;_\xa1\xf9\x1dA\x06@\xd8;\xb5\xb9H\xbf\xd1\xbf>C\xd8\xf8\xf6\xbd\xdc\xbfW@{\xe1\xe7\xcd\x8a?\xd2"\xbaF\xfcT\xc8?\x18\x8a\x90\xb4\x08\xf3\xd5\xbf\x97\xdb\x00\x85\x91\xc5\xd6?Z\x1d\x06t8\xe4\xe8\xbfm>c\xd1\xbb%\xf0\xbf\x87^\xe0\xf6\x8c\xcf\xd2\xbf\xf5H-\xdbHB\x06\xc0ln\xdc>\xb4\xf6\xda\xbf\x1f\xc8\xd3\x9e\xa99\xd8?l\x11QA\x11\x18\xdc\xbfcm\x80\xd7(1\xf6\xbf\xf0\x13[\x10\xa6R\xf1\xbf\xb06\xc2o\xff\xe7\xef?A{}\xa7\xf0\xbc\xf0\xbf\xba\xb6\x1d\xd8\xdfs\xe7\xbf\xfb}\xdd\xc4\x9b\xd8\xe1\xbfb\x8e\xaa\xf63\xc4\x07\xc0\xd6{\x9a\x15\xf8\xf1\x1b\xc0\xd8N\xaf\xd9\xc0\x04\xee?\\!\'\x12g\xd1\x08\xc0\xfa\x1b\xcdo\xd2\xb4\x00@)\xe2\xacmT\xf6\xe2?\xe0\x9e\x0eA\xc9&\xe2?\xc1R\xb5\'\xd6_\xe6\xbfU\x00\x8420\x9b\xfb\xbf\xb5fo+\xeaV\xc7\xbf.\xf4\xfa7\xa2\x89\xfc\xbf\xe5tC\xdan\xb8\xe3\xbfg\x12+\xce=7\xe2?\x14~%\xa7~\xd7\xf1?\xb2\xa1J\xba\x9e\xb2\xd7?:lR\xbc\x93^\xf2?\x04\x1c\x90\x87\x8b"\xbb\xbf\xb3u\t\xd2\xd5+\xdd\xbfK\x1eZ\x8f\xf1\xe5\xc9\xbf\\\xf5\xd9\xecSH\xea\xbfiM,\xbc\x10\xee\x01\xc0\x13z`\xf7\xeb\xe7\xeb\xbf\xcco\xf6aT\xae\xf2\xbf:a\xe3\xdf\xde \xee\xbf\xdd\xa5[\x15\x7f\xba\xf5?\x1c\x0bq\x13\xc4\x0b\xe6\xbfL\xa2\xebl\xfdG\xee\xbfZ\x02\xfb\xb0c\xca\xdc?0\xf9\xda\xa9\xcc\xf5\x1d\xc0mRi\x02$\x91\x03\xc0\x85Z\xd5\x83\x94/\xf0?\x86"\x86\x9fE\x17\xe4?\xddj\xc8\xda\xf3D\x01\xc0\xdb\xc8\x9fEb\xee\x05\xc0U\xad\x85\xfa\x8f\x90\xf4\xbfj\xe4\x95pV\xce\x01\xc0\'Y\x8f\xc45\x00\x06\xc0\xe5i\x18\xc2s^\x0f\xc0\xf8;\xd8h\x1bm\x05\xc0\x86\x83\x04\x80ZD\xe3\xbfD\x86<\xd1!\x8c\xc6\xbf\xd5\xa5u.\x9a\xed\xd2\xbf\xe1z\xe7\xcfIE\xfd\xbf\x9c\x98\xab\te\x9e\xb9\xbf\x88\xfd.\xba\x80\x1f\xe1\xbf\x12\x12\xb4=\xa8W\xb6?I\xbb\x19\xee\xef\xe7\xf2\xbf\xb0\xd1\xb5J\xdc\xd3\x06\xc0\n]mR:\xa0\x0e\xc0f\x8d~\xf5\xfc~\xf8\xbf\x97n\x9f)\xa6\xf4\x01\xc0\xc8\xe1\x83\x07\xa0\xe3\xe6?\x19\x92\x11r\xb2V\xec\xbf\x8c\xabk\x8f\xc95\x08@q\xdd\xfd\x10\x8cT\x07@|~N\xb6B\x9a\x13@\x99\x01<\xa9\xc2Z\x0c@w\x84\x8d\xf1s\xbc\xe3\xbf\x1eL\\Te\xb0\xe1\xbf\xba\xd9w\xbbg\x9c\xf9?\xeeAR\x8c\x03+\x03\xc0\xd2\x92[&a\x90\xf1\xbfl\xb7 d\x13-\xf3\xbf\xf2DF\xbc\xad\x12\xf9\xbf\xee+\xafa\xabG\x03\xc0?x\x1a9T\x82\xf4\xbf\x08\x94\x0b\xfc\xdf\xfc\x07\xc0\x14\xe7~[GZ\xf3\xbf\xf0M\x15\x1a\xc7\xeb\xea\xbf\xdbm\x96\x87\xef\x9f\xe2\xbf:3Gv\\\xbd\xcb?\x1ea\xed}P\x8b\xc7\xbf\x01\xce\xc36\x85\xb2\xdb?\xd4\x9a\xa3{\xcc\x94\xe8?!\x1c\xb0\xcd@#\xfb\xbf\x7f\xf3\x1a+\xd8>\xf2\xbf\x1c\tj\xa0\x00!\xe4\xbf\x965\xa0J\x9cP\xfd?\xfc\x0e\xb1\x8e*E\xfa?\x91V\xef\x06\xd7\xaa\xd5\xbf\x8e\xa2\x0c\xcdC\x06\x07@\xdbQ\x9d\xe5+\xae\x0b@%/\xa3\xf0\xd9\xfa\x0f@\x8c\x19\xde\xeaze\x1d@\x02?\xc8n\x9c\xf5\x9c?c\xaf\xcbN\xb8\xec\x11\xc0\x19\'3\x94\x97*\x0b@\x97\xdd\x05T0z\xe4\xbf}g n\xf0>\xf4?\xe4\xa4\xaa\xd6\xc5\x82\xc1\xbf\xcf\xa0eo\n\xb5\xd3?\xc1\xb8\xb9\xd4\x0e\x7f\xc9\xbfb\xaaJ\xe9\xd5J{\xbff\x00\x87\xbd\x83a\xea\xbf\x92\xa2\xc5\x07\xb7\xd8\xdb\xbfO\xe0\xabd=\xde\xe0?\x84\xc8CG\x921\xc0?~\xb0\x80\xa6\r\x17\xf3?x\xc1Y\x96\x03\xa7\xe9?/2.\xa7T,\x84?[V]\xff\x93\x84\xee?\x82\xaeb\xb7\xfa\x9e\xe3\xbf\x04\xe9\xf6\xb2\xae\xf7\xdc\xbf\xef\xff,\xb5WH\xd4?\xe0_\x83\x9c\x04E\n@W*\xfc\xd9\xc9<\xe2\xbf\xe8\xc2\xf8%\xe3\x92\x11@\x0f\x9d\x11;\x9f\xbd\xe1?$^y\xf0{]\t@\xc2b\xc4\xa7\x11.\xed?\'\xbcj\xca\x16*\x14@\xb2\xe0\x9b@\x8fJ\x13@#\x82\xde\xe4\x06\n\xfe\xbf\r\xaf\xd6\x83\xcb\xa5\xf7\xbfaC\xdd\x97\xbd\xa4\xf5?\xff>c_p\x02\xd4?\xf9\x0fX{+\xf2\xfd?m\x07ZR\xf04\xff?\xae\xfc\xb1) :\xeb?Ty\x8d?E\x97\xfd?\xa9\xcf\xdaV\x18j\xb9\xbfy\x92\xce\xa3\xba \xe9\xbf\xd4\xfd\xef-?\x19\xf3?v\x04o*\xd9K\x03@1\xc0\xad\xe2*o\xed?\xad\x07\xd3\x1e\xab\xc8\xf2?\x87\xb7FVp\xcb\xe7?\x12Ew\t\xa7\x86\xb7?n\xbc\xd7Jh)\xe8?\x94\xb68[J^\xed?JT\xeb\xa9\xaa\x03\xc7\xbfb\x0b\x0e\xc4\x07\x1c\xdd?\xbd\x15\x9az*H\xf3?\x8aq\xf4\xa0 \x18\xe9?c3e\xd4\x8d\xc5\xf0?\xab\n\xab\xee\xcc\x05\x08@\xeek\xe4@\x17t\x12@\xe4\xdf\xbe\xf4\x7f!\xe4?*\xc8`9J\x14\xd7?\xca\xec\x82\'\xc7\xa0\x12@\x80lp\xee\x1d\xe2\xc4\xbf\xab\xdd\xeb^\xcev\x01@3`5\xdd\xf7 \xe4\xbfsn\x00\xea\x19\xbb\x11@\xec\xd0aH\x89\xc6\xe7?\xcc\xc8w\x81CZ\xf5\xbf\n\xf6H\xb7Ti\x00@\xbf\xb3\xe4\xf6\x01\x9b\xdf\xbf,\x9eZFZ\x18\xb6?6\x16\xe0\xcb8\x94\xf3?\x81+\x05\x0eJ`\x07@\x04&\x9e$i\x7f\xfc?AZ\x12^=-\xeb?M\xd7\'`\xde\x93\xf7?\x15?\xbd\xb2p\xc4\xdf\xbf\xa4CK\x12\x0f?\xea\xbf\xac\x83\xebo\x1a\xed\x95\xbf\x0c/\x04\xd0\xa9\x04\xc8\xbf\x8b\xeby\xcb\xbaw\xf8?\x8e\x84\xf3r\xb3\xeb\xbf?\xb5&\xc6\x0f\xd9\x1f\xca?\x8b\xe3\x1b\xd0\xab\xfb\x9c?T\x85\xec\xd2\xd8\xb8\xf3?\xba\x04\x0c@\xddu\xf0?$b\xab%\x00\xf3\xd2\xbf\xc0~~\x0f\xc2r\xdd?\x96\x99\x82B\x863V? @\xa5\xe2\xd2\t\xe6?\x14\xbb*\xcf)\xb5\xd3?\xfeJ\x02\xcf\xda?\x11@\x99\xbdx\x95\x1d\x8d\x14@\xa3V&\xed\xc7+\x05@w\x8b&\x112\x0c\x07@\\\xd4\xe3a\x93\xd4\x0c@\xbe\xf3\xfej\xe3V\x15@=\xd0,\xf7\xf3\xf6\xf2?\x99\x9f\xd9."\xbc\x01@\xfb\x82\xbb\x8e_[\xf1?\x17\x12:\\\x9eB\xf6?\x981\xf5z\x11\xe2\x03@o-\x8d\xa6\xd4#\x05@#\x0c`~\xd6\xc1\xe8\xbf\xd74\\\xb1\x1f\xc1\xce?\xc2\xccH*X\x8f\xe2\xbfC;\r\x12nw\xcf?e\xa6\xe4\xfd\x07\xe1\xf7\xbf\xb6\xfc\xea \xa9\xb7\xca\xbf\xfdyJ\xa0\xc6\x01\xf5?\xd8+\x97\xde\x1b$\xf3?\'\xcd\xe3\x13\x00\xe6\x02@\xc2\x8b\xf5\xe8\x1f*\x03@\x80\x04\x84\r\x87\xb8\x00@K\xc4\x12\xcb$\x02\xf7?\xc6|{\xa5\x81\x11\x00\xc0\xcd\x9f\xc9}a\x91\x00@\\\xc8\xc7^\xed\xa56?\xa5O\xb0\xa1\xa2J\xe6?\x07\xbe\xf78\xbf\x11\n@\xb0\xc0\x80\xc64\x8d\x02@\xfc\xca\xdb4L\xf5\xfb?\xfdAV\x9eC\xcc\xeb?\x04\xc4\x0b0\x04\xd8\xfa?\x17\xcf\x8f\xef\xf6\x1a\x91?4\xa8)\xf8_\xf5\xfe? \xa8\x8f\xd1?\n\x0b@\xf6\xd7\x84\xcc\xd7\x91\x0b@`\xb0"C.\xbf\xf5?\x96\xee\x8dP\xcd\x7f\xf0?\xb7\xae\xa8\xc7L \xef?M\x00\xf5\xb2\x9cm\xe9?\xa8\xf7~\xa4\xc53\xec?T\xb3#\xbe\xd7\xce\xc0\xbf\x1f\xd8\xb5\xf9[\xb7\x91?N\xac\xff\xa9\x1b=\xec\xbf\x8fg\x01\x87H\x82\xf3?\x01t\xb1\xbbZ#\x0b@b\x02\x86\xec\x1c\x1a\x13@\xbd\xe3oxc\x19\x05@\x85\x81\x99\xc43m\xde?`z\x85\x11\xc0\xd0\xe8?\x11\xcay$W\xa9\xd7\xbf\xf8Z\xae\x80?\x16\x05\xc0\xe1-\xb7:\x0c\xe3\xf3?/,\xac\xde\x1d:\x04@.N=l\xf6\x1f\xce?.m<^x\\\xf5?\xbd\xe1\x1dF\x06\xb6\xec?\x12Y\x883\xa8E\xfc?\x1f\xdb\x0c\x0c\xbd\x95\xfe\xbf\x1b\xb9\xfa\x16\x9b0\xfb?\x0e\x0eDei}\xd3\xbf\xf0\x80\xd1db\x1c\xf3?Zv\xa8\xd9\x13\xb9\xf5?\xe3\x06<\x91"\xef\x02@\x03\x94\x14\x02\xb8\xbe\x01@\xf2\xc2\xf1Y\x7f\x8e\x03@wE\xad\xa2\xaa~\xde?\xa6\x1c%\x0b\xec7\xdd?4m\\\x12\xbe\xac\xa6\xbf\xfc\x83\x94S\x97\xaa\xef\xbf\xdag+\x8e\xca\x80\xea?\xf4\x9awx\xb9\xdf\xf0\xbf\x1d\xb0N6\xc8\x1f\xe2?\x06\xba9\xe4\xd5v\xfb?\x9e\x81|\x18\xc4\xbf\x10@V\xd0\xe0\xb0\x96\xa9\xee?cl\xcb\xbb7\xd4\xea\xbf\xf7\x99QG\x00}\xfe\xbf\xb8\x19\x0c\xfes\x98\xe8\xbfI\xfa\x1e\xceM\x1b\xf5\xbf\x80\x96\x06\xe4\xdd\x91\x08@\xc40\x85\xde\xb4\x07\xd7\xbf\xde^}\xf3\xe8[\x0e@\xfaR>\xc2$\xb2\xfa?b\x83\xeeQ\x8a\xd5\x07@\xdf\xddm\'OZ\x05@9q\xe2Gq\xeb\xf1?\xfe"\xef\x9cHr\xfe?ho\xc1\x1f\xce\x95\x05\xc0\x85\x911Yg\x12\xd6\xbf\x00*\xac~\x14\xb5\xbd?op\xc7\xe2)\x88\xea?\\\xbd\xc4n\xc7\xd6\xfa?\x0c\xb7\xbb\'\xf2X\xdb?r)\xb9\x94\xc8\xef\xe3?\xbbn\xe9\x80u\xdf\xf8?v\x83\xb0\xad\xd7\x80\xcb\xbf\x9cW\xeb\x0e\x95\xea\xc3?\xefs\x9a\'8\x15\xf1\xbf\xb9\xd8\xea\xf4\xb4@\xe2\xbfi\xd6\x83\x91\xbe\x93\xd2\xbf\xc1\xa8\xfe=\x05\xe3\x07@\x16B\xa0\xa8\xf0\r\x05@.X\xae\xfftQ\xde?#\xf4\xf8\xe0\x8b\xb9\xf4?\x7f\x18\x15\xc5\xd5\xf6\xe3?`\xc3\xca\x86Y\xb9\xcd\xbf\xf0=\xf8G\xcba\xf1\xbf\xfd\xa9Q?\xad\x85\x02@\nrd\xc4j=\xf4?X#z\xc6~3\xc5\xbf?\xa6\xcfsm~\xa1?\xf7B\xd3\xbf\xd2\xe0\xf7?D7\xf9\x080]\xf6?\'U\xb8\xd9Ve\xf7?\xfb\xd8\xf9\xc7$v\xcd?\xe1t@\n\x16\xd1\x10\xc0/y\xe1\xda\xf7"\xf7\xbfo\x8e\xbd\x82\xcc\xb6\xdb\xbf\x82\xe8\xe9e\x15\x06\xf1\xbf\xffxs2g\x8f\xa2\xbfoXf~\x1e[\xe9\xbf\x9d\xa5\x98L\xafL\xa5?\x13\x84y]\xf5\xfb\xe2\xbf\x8b\xe2\xc0\xde\xb3\x99\xe7?c\x05\xa9\xe8O\xa2\xdd?\x990#\xad\x14Y\xe9?\x89\xc7/\xf5\x12\xc0\xe1?\xd6\\w\xda\xb3\x17\xe3?s\xdc\xff\xbe\xd1z\xf1?\x03q\xf6h\xa1\xee\x01\xc0YL\x1a\xc8~\xfb\x04\xc0"\x04\x1d\xbd\x88\x15\xf0\xbf\xc3\x91\x96Z@~\xe5?=\x02wU\xa5\x19\xf9\xbf\x9c\xe2.\xdaw\xed\xf8\xbf1]\xc8t\\\t\xf4?\xea\xfe\xf5.\xce\x7f\xd7\xbf\x04o\x96\xa7\x89\xf3\xc1\xbf7\xba\xbd\x8b\xff\xa0\xe4?\x97\xd3\xa6\x15\x80-\x07\xc0Jp\xc5oc\x17\xfa\xbf=\xe8YN\x90\xac\xec\xbf\xd2\x9e\xb0\x19s%\xf3\xbfEy\x9c\xdf\xd7\xd9\x04\xc0\xa2\x1e\x7fs\x1c \xf7\xbf\xb1\x85\xfcwTi\xf3\xbf\x18&P\x82|:\x00\xc0\x9b6i\xe7\xba%\xda\xbf\xca\xb4\xc0\x89\xe3\x1e\xe5\xbfF\xef`\x8d\xdb\x1c\xec?\x19I5D$\xb2\xd0?n0\x9c\x0e\x89\x9f\xd4\xbf\xf7Dfg7F\xe3\xbfOFP\xc7\xb2\x0e\xdd?%\x82K\xc6\x8b\x02\xd1\xbf}1\xa5\x1e-\x85\xeb\xbf\xde\x85Y\xf9;\xe9\xb7\xbf\x14\x9c&\xa7\xca\x17\x08\xc0q\x1d\x10\x03\x17\x13\x07\xc0\x80\x97\xb1"Rh\x01\xc0\xd6h(ko0\x13\xc0\xac\xaal\xd8\xd9y\xe2\xbf\xdc\x16\x1cn\xb5_\xf6\xbf\xef_\x0e)\xbb\x06\x04\xc0J\x04~^\xfc-\x12\xc00\xf2a\x18\x97D\xff\xbf\x8a\x000\xb9\x94\xa9\x0b\xc0V7\xcb\x05V\xfb\xe7\xbfGryM\x8bE\xfa\xbfYQ\xbc\'\xd0:\x00\xc0\xe9\xadX\xe7\xc2)\xe5\xbf:$N3\xa1-\xe4?\xfa\xbd\xc0w:\x91\xe9?dU\xdc\x97\xb4Q\x01\xc0\xebM\x01\xecC`\xf8\xbf=N\x1f\xb2\t\x11\x03\xc0Y\xa6\xd3`J\xc1\xf7\xbfL\xa4u}{C\xe0?\xa9\x1a\x164\xf6?\xe6?\xa8\xa8,Z\x17\x9d\xf1?\xa7\xe4\xc4e\xbe\x92\xd4\xbf\xb1\xd3\x80\x0c\xe9A\xf5\xbf\xc5\x8a\nh\x996\xf6?Ch\x8a[_\x83\xe4\xbf\x02\xd8\xc7$\xbc{\xee\xbf\xf2f{/\xf8-\x08\xc0\xb5\xd8\x1a\xcd\x95\xaa\x0b\xc0&z\x8a\x01\x0c\x0b\x03\xc0\xd7\xa7/\xa9\xce.\x01\xc02\x8f\x1d\xc3[\xbc\xf5\xbfz;\xf0\x18\x96\xe9\xfa\xbf\xfb\xae+h\x89c\x00\xc0\xc6\xf8|\xbbo9\xe9\xbfn\xa8\xf5\xf5\x19\xac\x06\xc0,T\x8ei">\xfe\xbfK\xaf\xd1:S@\x07\xc00\xf4il\x0f`\xf9\xbf\xf3\xa2%cS@\xed\xbf\x9aI8N\'\x18\xea?\xe4A_J#\x05\x03\xc0\x04\xd3\xbe9#\xae\xff?\xafmk\x95\x89(\xe2\xbf\xcf\x1a\xeck\xf8\xee\xfe\xbf\x1f\x0c\x075\xa0I\x08\xc0\xd7]p/!\x89\x04\xc0P\xfd\xc5\xe3)\x86\xec?\xc9 ;BVZ\xa1\xbf\xe8\xf6$\x91%\xd7\xd8\xbf\x9eA\xf9ot\x9c\xe9?\xe0cmc\xecq\xee\xbf$|-/=\x85\xc2\xbf\xb0\xed\xc5\x85\x8a\x06\xe2?Q?\xf8x7\x0c\x97?\xb0[q\xa3\x1c$\xcd?\x18N\x89\xc5\x19%\xf9\xbf\xfe\xa1\xb9c\xe9M\x05\xc0\xe8\x03\xack:\xa5\x04\xc0\xbbb\x990H+\xdd\xbf\xf6b\x90:\x00\x14\xf1\xbf\xef\xcc\xd73\xe2\xe9\x94\xbf<\xe7\xca\x81\xac\xce\xec\xbfjA\xdc7u\xf7\xe7?rNX\x87\x88\x8d\xbd?v|\xc9\xd2O\x80\xfa?q\x98s\x90\x1c\x06\xd9\xbf\xb7\x0e\xad[q\x8b\xd1\xbfP*\xe5\x07}\xa4t\xbf\x10\x94\xc0O-\xfc\xff?\x06\xd5"\xc2\xd1\xb8\xe2?\xea\x82\xa3\xf9@\x90\xe7\xbf\x81\'g\x82"\x00\xfd\xbf\x86\xed?,\xe0\x9b\x02\xc0\x9b\x93@\xd9\xc6^\xe4\xbf\x96Ij\x9bc\x85\xd9?J%?\x89\x00P\xd3\xbf\xcc\x89\xdbj\x95_\xe3\xbfI\xc0\x80!?D\xdd?\xb2\xda\xad\x82\xb0I\xe3?\x99\x81gi\xf1\xc6\xed\xbfJw\x01\x05\x9f\x8f\xb1\xbf`fC$\xb3@\xf1\xbf@p\xa1c\xda8\xf4\xbfz\xf59j<\xea\xfd\xbfj\xc0\xb7K\xe2v\x10\xc0\xac\x7f\xafP\r\xd0\x0f\xc0z\x88\xf0@\xadC\x11\xc0\xf8\xe1?\x0b\xb9\xa5\x12\xc0$\xcc\xa1\xacx\xe3\x03\xc0":\xae]\x13\xac\x12\xc0W\xe6-\xdfz\r\x03\xc0\xd5/x\x1a\xf5\x82\r\xc0\x1f\xef(\xb3\xff\xc8\xfa\xbf6\x00n\xe51j\x04\xc0|\xc0\x84z\x94\xda\xfe\xbf\x98\xd3}\xd0*j\x0f\xc0\xde\xc7\xe1\x00\x17e\x00\xc0I\x89xj\x18\xd9\x07\xc0&{\xcc\x13N\xd2\x08\xc0\xdb\xd1C\xee\x80\xbc\x03\xc0E\x94c7B\x90\xf3\xbf\xbf<8~\xb3l\xe4?\xf1iq\xfc\xa4\xce\xe8?\x19\xb9\xa0S`~\xda?\x8f{\x9f\x9dC\x89\xb0?B\xf8\x13\xe2\x0e\xed\xe5\xbf\x9f\x1by\xe9&U\xec?\\\xb39\xcc0J\xa5?fx\x93\xd9\t\x05\xec?d\xd1\x06T\xc5O\xda?l\x80W\xfc\x95\x95\xff\xbf-\xf5G\xb9N#\x04\xc0\xef\xc2\xb3\xfd\xd5\xa6\xf4\xbf\xc2\xf5\x8d\xe2\xed\x95\x07\xc0l\x11\xb2@\xa1}\x0c\xc0E\xbb\xd9\x9c\xd7-\x12\xc0\xb4#\x97\x85\xa9\xf1\x0c\xc0m\xe5\xea\xff\xd1n\x12\xc0\xfc\xea^\xb1\xef\x9a\x14\xc0#\xa5@\x14\xe2\x96\x1b\xc0\x8a\xac\xf2\xf5\x01b\x13\xc0zz\xc4.l\xcf\x10\xc0Tt\x1e\xc1\x18\xd4\x0b\xc0H\xf5Q\xe3\x85\x1d\x0f\xc0\x9d\xa3\xafb\x0bp\x0e\xc0\xf4\xd5D\xc6y{\xf2\xbf\xc6\x14|\x18f]\x01\xc0\xfcG?\x19\x04\x02\xf9\xbf\xd3\x85\x84\x04\x9f\xd3\xf2?]15\x8e\x8c\x03\xbf\xbf\xdeOyq3\xd0\xc1\xbf\xba\x06f\xecdH\xe0\xbf\x05\x93\xd2}m>\xd2?\x19\xef\x1f\xdc}\xaf\xe0?\x0b\xbc\x88\xe3\x98\xe5\xda?\xd4\xdf\x9c\x9f\xa32\xdc\xbfx\xb8\xa0\xb0\x92\xc3\x9f\xbf\xbe\xb4\x94\xeb\x87C\xfa?0\xfe\x0e\xaef\xec\xf3?\xd6\xb1\xe2e\x9e\xc8\xf2\xbf\xd5o \xf8\xef\xc0\xe5\xbf\xf8*D\'\x9b\xbd\xe8?\xd4\x07L\x1a\xd8\x0c\xf0\xbf\x97nh\xcb\xfd#\x99\xbf\xaeP\x80\x06\x9b\xae\xd5\xbf\xac\xd1\x0f#\x01\xa2\xfd\xbf\xeb\xad\xc0\xfe) \xe7\xbf<\xba\xa4C4\x1a\xf1\xbf\xdfa\x19\xe3l0\xe2\xbf\xdd\xd2\xd0\x01\xb5i\xf2?\xe8u\xcc\x1e\x86\x8a\xac\xbf87\xd6\xf4\x84<\xe9\xbf\x9dMB\xb2\xd2\xa9\xf7\xbf\xc8\x04\xd9\xfd\x8d_\xb8\xbf\xc9\x87/\xd0\xbf&\xa6Hi\xc8\x1e\xde\xbf\xfd\x83\xc9\x94\xe6\xd6\xdb?\x04\x1a+S\xd2\xf9\xc0?-\xc9b\xcc\xaf^y?\x164#\x83\xc2g\xe8?\xecR\x8b\x16\x1fv\xf1?\x97I\xad\xa0\x87\xdb\xe6?\x1e\xc0\x8b}R&\xe6\xbf\xca\x1c\x85[\xde\xf0\xdc?\xfd\x83\x00\xae\x190\xe0\xbf1\x92\xf8\xc4\xc0?\xe6?\xe1+\x90\xc8\xdap\xd2?g,\x18\x01\xb9\xf7\xf1?\xc5@\x9b\xad0E\xd0?L`\x9b\x95\x18=\xda?\xaf\x8d&\x17\xa3B\xf2\xbftM\xd0\xed\xc9\xf2\x9a\xbf\xc6(\xe7\xd8\x17\x87\x95\xbf1t\xbbEe\xfe\xf1?\x14\x89\xfcP\x0c\xed\xf1?\xd5\xa3\xecJ 3\xdc?E\xae\x1bH\xbc\xe3\xc1\xbf\x01\x91\xce3*y\xc0?\xe5\xabR\xfb\xeeQ\xba\xbf\xd2o"\x1dk"\xe6\xbf\x9e\xd7\x16\xf48\x82\xb3\xbfd\xa14$\x11Q\xb3?\xef\xcc18\x8a\xb9\xe2?\x0c\x96\xba=\xe4\xbb\xc0\xbf\xcf\xfd\xfb\xa3S\'\x8d\xbf<\x14\xae\xe4\xd0\xbb\xf2?F\t\xa34@\xd8\xea\xbf\x10\x9b( \x10\xbf\xbb?F\\&\x04K\xfc\xd3\xbf\x8e\xee\x8c\x04Y:\x88\xbf.\xeekP\x1cg\xf5\xbf\x9f\xdf\x81U\xa4\xd6\xdc?\x1c\xfa\xebr\xd1r\xf0\xbf|\xff\x7f\xc8\x86\x99\xe1\xbf\x8d\xfb\xb4\x03\x0b=\xac\xbfk\xf2\x87\xbb\x87\xdc\xc0\xbf\xb3M\xc5oh|\xf3?g\xe9\x8b\xa2eA\xf1?\xf1\xfc\xd2,V\xd6\xd2\xbf\x9d\xcf\xb0D\x84R\xd7\xbf\x89\xf6*\xb9\xa2\xcd\xe5?\x81wt\xf2\xc7\x8c\xfa?\xf7\xe4*\x93\x93\xbb\xf2?\x9e\xc8|%h/\xb6?\x03]\xc5\xff\xc6\xed\xfc?\xd7\xeb`\xfcSN\xd0?g\x93\xc7n\x18\x9e\xe9\xbfK\xe7N\xbeh\xfc\xf1\xbf\x90\xaf\xf2\xcdi4\xea?\xdc\xef5A\x10\xce\xc8?\x1a\x0c\xac\xb4\xd7B\xde\xbf%\xb94\xc2N\xe8\xbd\xbf^\x9bKT\x0e\x15\xe2\xbfY\xc7O\xd3\xb8C\xdb\xbf\n3\x9a\xb4l\xda\xf1?\xdc\xa9\x1fh\xa1,\xcf?k\xee\xd7\x90g\xea\xf2?5O\xa8\x89\x05\x80\xf0?\xc9i\x1d\xbb\x08\x1e\xe3\xbf\x95v8J\x94|\xe1?)\'\xe7\xea \x9c\xfb?Qu\xe9\xb4\xe6\xa7\xe6\xbf@\x93\xf1e\xb4\xa4\xf3\xbf\xa8&4\xa7^L\xee?\x14;|\xbb\x1c\xba\xa5?b\x8c\x89O\x9e(\xfa\xbfu\x18u\x02\xaav\xda\xbf\x08js\xa4\x02u\xf6?\xae\x82\x82\x83\xfe\x85\xcf?\x84\xfeyF\xe9V\xc4\xbf\x1d`\xf1\x1f8\x93\x01@\xcc\xac\xad\xcbf$\xe1?%`\xddT\x86\x98\xa4\xbf\x82N\xe4\xd4hE\xd6?\xed=\xea\xb8\x18\x13\xd4?\xcbjN\x8b\xf4\xdf\xef?\xacR\xd0\xd4d\x9b\xd3?\xe8\xf3} *\xe7\xe5\xbf+-\xc4\x9c\xf0{\xda?\x11vs\x02\xc6\xfc\xc4\xbfL\x0f\xc8\xe4^\x8c\xc8?16(\xa0\x8c\xc0\xde\xbfEq&\xb9\x97\x1a\xbd?O\xae\x8di8/\xda\xbf\x83\xd7K\xa3\x89\xaf\xf6\xbf\x0e\x97m\xe1\'l\xd7?\x12\xf4kb2I\xab\xbf\x89\xfd\x0b\xeb6\xcb\xcc\xbf\xec\xcf\x0b\xad`\x95\xd2\xbf\x1c\x10\xd8\xbcKN\xf4?p#\xd3\xdcj\xa1\xec?Q\xd0MC\xb7\xac\xf1\xbfVDJ\x8d\xb7\x07\x04\xc0^\xf6\xeb\xc0\xcb\x14\xe7?\xae\x8e\xb6\xcd[\x85\xc0\xbf\xfcV\xc6E9W\xfb?\x17^\x16\xcc&w\xd0?\xb2\x8eJC\xf4C\xc1\xbf\xd6\xd1yj\x04\x06\xe8\xbf\xca\x1d43\xad#\xfe\xbf-k\x1b\xb7\xc0\xf8\xed?e>\xcf\x1a\xc1\x03\x08@PH{\xc8[\t\xfd?\xc0\xceiNY\x9a\xf2?\xac-\xa04\xf6\x7f\xe0?\x15\xa8\x8d\n\x1a_\xe2?\xbdQpz\x8av\xe6?\x8e\xad\xa4}f\x18\xd1\xbf8\xa0\xea\xc4\x92\xbd\xd2\xbf\x00\xbd6\xf7\xe0a\xc6?L\x9c\xa3\xea\xd5:\xc2?CE\x89\xabkE\xa4?\xce];\xdf\x90\x94\xf3?\xc0rs\x97}e\xaa?\x8edS\xc9N\xfd\xe5?\x81\xb0I\xf8\xf1t\xe2\xbf\xb17Z\xdb\x05\'\xdc?\xcf\x86\xfc\xfa\x0c\xe6\xd0?\x96\xdat\xa4\x83Y\xe5\xbfVX\x96\xc9\xef:\xfa\xbf\xc5\xd9\x9d\xfb\xbaL\x00\xc0\\OFx\xe8\x8b\xfa\xbf\xdbu\x08\xd9\xaa4\x06\xc0\x02\x88\xe4Z\xf3\x08\xe7\xbfC\x03\xf76X?\xf9\xbf\xf5\xd6\xcb\x85\xb5\x90\xff\xbf\xb3i\xba\xb1\x06\x07\xe0?\x9c\x965\xff\xb7H\xcb\xbfx\xb4\x9b\xfcl\xdd\xdf\xbf\xb8\xdb\x8d\x06_I\xe6?\x06\x11\xea\xf3\xa55\xfe?h\xad\xb4\x88\xb8w\xa6\xbfK\x96\x02\xd9\x93A\xf9?\x8e\xe7\xe9Bj\xa7\xf7?,\x15\xa0\xd8\xca\xcd\xe5?w\xc8\xda*\xc6\xda\xec\xbf\xd28\xe39\xaaK\xd6?\x18\xc7\xf8@\xaa:\xe0?\x98\xacQ4\x18\x19\xec?\xb0\x0e\x12\x8e\\k\xb3? \xef\x0eG\xbf\x0b\xcd\xbf\xf1\x865\xcb\xb6a\xc4\xbf\x81\xe9q\x85\xbf\x88\xd9\xbf\xaa\xf6N>\xb8D\xd4\xbf\xee\xe9\xaa\x85\x14\xab\xf5\xbfc\xdd(\xe5\x9f\x99\xe1?\xa7#l\xafR\xb5\x05\xc0\xb2\xf0DU~\xd7\xf9\xbf\x7f\x0el]\xf7N\xda\xbf\xf1\xb5\x9e\xd8\xcc\x8a\x05\xc0\x14\x14\xd5\xeb\xc6B\xf6\xbf~\xc1#\xdc\xd4h\x00\xc0\xc5\xa6\xa1*M\x1b\x11\xc0\xd1\xb5z\'[\\\xeb\xbf\x1a\xd6\x08\xd5:\xda\x06\xc0\x89\xb6\x17\xa0\x96!\x06\xc0J\xae\r\xca\xc4\x12\xda\xbf\xcaY#)\xee\xd2\xe6\xbf\xbaa\x19\xc5\xd6\xa1\xed?\xed3\xdb\xdf\xa8\xa2\x00@\xe1\xec\x99\xe96\x9c\x07@#\xfbD\x88\x0e\xb6\xe1?x`\x97\xd6{q\xd9?\x02\x15\xf2kK\xfd\xfb\xbf\xc9q\xdd\xbc\xa0\n\xcd?wj\xa5\xec\x96\x95\xdf?\x94a\xf4\xf3i]\xe7?M\xe3\x9fK\x02%\xdf\xbf\x17\x1dQ\xcc\xb6)\xcd\xbf]\x9f^Q\xa2\xbc\xe5\xbf\xe7i\x9f\\\x02\xcc\xac\xbf\xfa\x08m\x05\xfa\xd8\xd9?\xe6\xba\xb2>\xee\xeb\x00\xc09\x00I`\x81Y\x04\xc0\xb25\x98\x85\x0b\xbe\t\xc0\xb0\x7f\x1fa\x06\x0b\xfe\xbf\xc3|B\xfc\xb5&\x06\xc0\xf2)\x92\xfc\n\x16\x06\xc0#\xdf\xee<\xee\xb5\xe9\xbf\xe2\xe93\xe1b2\xd1?\x92\xc4v\xe0\xfc\xfe\x81\xbf\xf5D\\\xbff\xae\xf7\xbfx3z\x83\xed(\xe5\xbf\xdc\x02M\xd9\r\x9e\xf0\xbf\\\x83\x15Q7u\xcd?\x88\x00D\xb7\xd2\xc3\xf6\xbf\x194A\x8dj\xaa7?\xdf5\xf0\xf4\xf2z\xf5\xbfx\xfb!yF3\xe6\xbftH\x9a\xf2t\xaf\xe6?\xa0\xbd\xfa~<\x0f\xf7\xbf\x0e\xf8\xcb\x9a A\xd8\xbf\x94+g\xa5t\n\xe8?F\xb1\x0cJ\xa2\n\xee\xbf\xdf\x8eD/z\xb2\xf0\xbfm\xa9\xa1\x12\xd3\xff\xba\xbf\t1\x86\x9dl6\xe8\xbf\x1b\xdd\x11q\x07\xc0\xc0\xbfQB\xa7\xdf8\x82\xfa\xbf#\x9f\xa8\x9a K\n\xc0A\xfc\x90.\x90\x13\x08\xc0\xf0\x8eX\x0b?m\x02\xc0=\x8ac\xde\xa1\\\xf4\xbf6\xb8M\xc1m@\xfa\xbf\x85\xc0N\x00D\xd2\x03\xc0X\xce8\x95\xc5h\xee\xbf\xea:g\xcd\x82\x99\xef\xbf0\x15\xcbPh\x0f\xfb\xbf\xcf\xe4\xac+\x02\xfc\x02@\xd2nM\x19m\xc5\xec\xbf\x03\xb7E\xfd\x98\x9f\xca?\xa5\x1fR\xd3\x1e\xe0\xe0\xbfx\x8dwh\x16\xb0\xd0\xbf\xce\xca\xf5Z \xf2\xe8?\xb80\xe2^\xa15\xe6\xbf5o\xda\xd1\xc3a\xbb?\x16j\x8f\x17\xe5\xab\x00\xc0\x07\x1cmnUn\xf1?\xed\x04\xd8\x93$\x1c\xec?\xbb\xab6mmd\xa5\xbfq\xac$\xde\xc5\x1e\xfb\xbfk@\x14\xe7\x9e\x96\xde\xbf\x04\xb3\xc8\r\xf3V\xc8?\xb0\xd4\xd9\xe2\xf8B\xd1\xbf\xc0\xfc1\xdf\xee\xae\xd1\xbf\xda@=\xd4\xcd\\\xfc\xbf\xbb\xdb\x00^rP\x00\xc0U\xeb\xacL46\xfc\xbf\xd3+\x8b\xf2\xb4\x99\x04\xc0\xa9S=F\xed\xf2\x0b\xc0x`+\xe1\x93\xba\x01\xc0l\x90\x00\xb1\xae\xbb\xf5\xbf\xbeL\x06\xe4sf\xe6\xbfG\xcc\x1a\xe8\xb9\xe3\xfd\xbfZ%\xa6\x0b{K\x03\xc0\xb45\x93m\xfa\r\xed\xbfwXi\x11\xbaH\xe9?E\t-\xda\x03\xe2\xb9?Q\xc4y\xa9\xcf\xb1\xef\xbf\'+\x9byQl\xd4?m\xf3\xc7\x93\xfbp\xf0?\xfd\x1f\xb8#\x18/\xe6\xbf\xc3;9\x13\xed\xfd\xe8\xbf\xb5\xcbQ\xc3\xe7\x02\xf7\xbf\x89V\xc2\x91\xd1(\xfc\xbf\xf0\xc4\xd9\xc4\xf1\xec\xfc\xbfj\x1c\xfa\xe0\x9aZ\xf0\xbf6\xe8r7\x10\x17\xf1\xbf\x13\xff\x9f\xcd^h\xf9\xbf}q\xda\'\xd3z\xf2\xbf\x12_;\xc0W\x95\xe2\xbf2\xd3;\xed*M\xdf?P\xdav\xe5\x87\xa1\xd0?\xd2\'#\xf4\xa8\x8f\xf8\xbf\x9b\x02c~\xd5\x95\x14\xc0\xc7$\x9a\x80\xc0\x11\x12\xc0\xd1p\x1a-)\xa0\xc7\xbfFA\xf6\xe2q\xeb\xf6\xbf-\x10C\x88\xe7]q?8\xef\xe1\xc3K\x96\xf9\xbf\x95c?\xcdE\xba\x96\xbf?\x18\x8a\xc4\xf3\xcd\xc3?Qq\'\xb3\xa5L\xbd\xbf\x04N\xc5\x9fh\x0b\xe1?`\xf7\xec\xb6W\x18\x06\xc0`\xf1\xcc\x07\\\x14\xf2\xbf\xde\x04{\xb6^\x08\xe3\xbf.\'\xe7\xfc\xefX\xf3\xbf!\x16\xc1\xecTN\xfa\xbfE\xfa<"d~\x02\xc0\x95Yv\xb2\x97\xccy?\xd4\xb7\x80\xb9Bj\xfc\xbf\x9d\xb3d\x86\xca&\x01\xc0\xcb}\xd0\x19\xc6q\x15\xc0\x9e\xfa\x15\x00\x1b\x95\x0c\xc0\xc2\xb1\xc5\x1c\n"\xee\xbf9\xb7\x08\x9a\\\xb3\xe1\xbf\xfdMxQ\t\xf1\xe6?\x99\xedM\xa5\xf9\xbd\xf4?\x9dk\x8elB\x0f\xd5?*\xde\x0ez\xd2\x86\xf4\xbf\xb9\x95O\x9a\xf5\xc2\x04\xc0z\xa3\xe1\x93\xd1\x93\x02\xc0P\xf7?i\xe6\x96\xfc\xbf\xd9\xf1\xe9C\xb1\xcd\xca?\x15\x03t\x15\r\xa0\xd9\xbf\x1cvZ\xf3\xdc\x01\xe4\xbf\xd2 \x11!\xac\xc9\xf6\xbf\xf8\xd3\xedb\x9e%\xd8\xbf\xe6\xd6\x985p\xba\xff\xbf\xd3\x7f0\x9c\xd0L\xa7?\xa3\x19\x03\xb73\xd5\x0b\xc0\xc0\x89\xdaY\x11{\xde\xbf"\x88|\xeb\xf3F\xe7?\xb2+\xdc0\x08\xcc\x08\xc0\x8c\x07\xdch\xb5\xd4\x06\xc0Z\x14\x05\x95\x82\xae\xe5\xbf$\xa6\xc1\x8e3 \xda\xbf\x11M[\xb0\x0c\xb9\xff\xbf\xe3@B\xf8D\x9d\xf0\xbf\x1aI\xca*\xbd#\xef\xbf \xc9\xbdj\xc7\xf7\x0f\xc07\'X\xb2\x8am\n\xc0A\xde\xf4\x16\x01\xa0\xfa\xbf\x15W\x818\xf9\xc2\xe5\xbfR\n/\xd99^\xe7\xbfY\x99\x10\x0e,\xa9\x83?D\xe2\xec7\xdeq\xdb\xbf\x06[\x8a\x8aP\xce\xb9\xbf\x163\xc9Z\x98\x8d\xf3\xbf\x13vx\x83\xe2\x7f\x00\xc0Zd8\x98\rZ\xf5\xbf\xe6\x8bm\x8dl\xf1\xd0\xbf4\xc9\xcb+\xcd\x95\xf0\xbfPhy\x01Q\xd3\xcf?{K2\xce\x085\xfc\xbf\xdaw3p\xa5\xe1\xe8\xbfE\x16%%\xd4n\x03\xc0w\xbd\xc4\xa6\x1f\x8e\xca?\x19[\\\xeah\x1c\xdd\xbf\xe6\xccB\x02\xb9}\xd1?\xea&\xc0z\xee\xd0\xed?\x1a\x9d[\x04\'\x15\xc8?\x9fP\xe6&c\xef\xe7\xbfM\xe1\xdc\xb9\xbc\xb7\xf2\xbf\xc1jY\xfc?\xd9\xd5\xbf\xdfdy\x8b9\xb1\xfd\xbf\x99\xd4\x89\x85\x15\x10\xf3\xbf\x17Uu\xf74\xf5\x02@uIuG\xae<\xdf\xbf\xea\xec \xf2<\xab\xf7\xbf/C0+YC\xfe\xbf\xfd\x0f-\xbbHw\xe4\xbf^a\xc4\xdc\xb4\x11\xd1?\t{p\xee6\x9c\xe6?\xce\xc7\x01\xa0\xb7w\xe6\xbf\xf3Se\x8d\xc7s\xf2\xbf\x14\xc99\x95\x95F\xdb\xbfd,\xb9\xea\x08\xa7\xe2\xbf\xb3\xc8\xb8\x03ef\xa2\xbf&\x14\xf4[\xf4\x11\x0e@:\xab}\xe7?\x85\x01@\xa6\x8f\xc7\xf6!\xde\x04@!t"?\x8dI\t@\x9e\xe1\xf9\xfb\x18\xdc\xeb?\x8a\xed\x0c\x06\xdf\xb4\xa8?\xc8\xfc);=}\xf3?\xb6\x16P\xc4\x92@\xfa?I\xb1\x868\xf3\xac\x08@\x0c5\xfb\x13\xaeg\x04@6\x8d\x1c\xc2\xf1d\xcd\xbf\xdc\xe2|\x13\x8d\xc4\x02\xc0D\xa3o\xdbF$\xd0\xbf\xff~\x96\x08:W\xc8\xbf\t\xb2\xb2\xfc\xa4\x86\xd2?\xa91]\xe1\xcfk\xe7\xbf\xb1\xdb\xbb\xd9\xd6\xdb\xf3\xbf\xbf\xdf{\xd0\xe45\x00@|\xe0(0\x82D\x00\xc0R\xb7\xb4\xf1]G\xf5\xbfH\xce\xfc\xb5E\xebc\x84\xfe?\x85p}^*y\xd8\xbf\rr#-V \xb0\xbf\xed\x88\xcf\xee\xd7&\xfe\xbf-\xfa[2+\x83\x00\xc0z:\xba\x03T\x13\xca\xbf\xb1\xe6\x849(j\xf2?\x15z,\\\xe0}\xf0\xbf\x88\xdd\xb1\xc0\x06r\xcb\xbf\x8ds\x95\xa5\xe9\x0b\xd7\xbf\x8d]\x04i\x98\xe2\xed\xbf\x86`\xb3\xa8\xfd\xe8\xec?\xe4\xb8\xe6/\xce\x1a\x03@\xfa\xf9\xad#\xbbn\x84\xbf\xd5\x81=^!U\xf7?>\xdf\xd1\x08^\x1c\xe9\xbf\xf7\xcd\xdf\x83\x93\xcf\xcc\xbf\xf7\xa2f\x86\xc3\x1a\x05@\xc3\xb7,9\xb6Q\xf5\xbf7\xe7d\xb2\x16f\xff?NG\xf3h6^\xf9?i\x04\x82\x93\xde\xed\xce\xbf\x08\x15\x86G\x993\xc7?j\xb1KQ\xc0\xc5\xe1?d\xedI\xb4\xe9\xaa\xeb\xbf\xe2\xe0\xad\xd2\xce\xf9\xf9\xbf,C\xfc%\n\xb8\x00\xc0Y\xac\xf1i2\x15\xc9?~\xa0\xb4jqh\xfb?\x1b\x06w5E\xb7\t\xc06M\xf1\xa6\xf7\xc4\x10\xc0\xfc\x95\xd4A\x90G\x05\xc0\xa4\xf5\\\x18\xf6\x15\x00\xc0a\xcf\x8d\xfe\xed\x11\xe8\xbf+\x17\x93\xba\xf1\xab\xea\xbf\x92H\xc1\xbb\xecJ\xe6?\x96\x81\x92.1\x0b\xe1\xbf"\xcd\xbc\x15\x0b9\xeb\xbf\xd16l\xf0V\xaf\x04\xc0Q\x00%\x17\xc2\xc5\x0c\xc0\xe0chP*1\x04@\xba\x0b\x87\xa4\xe6)\x11@\x1a\xc9\xe1\x9c\x7f)\xe9?\xc8\xb3\x8c\xb3\xec:\xd4\xbf\x0f\xe4\xc6I\x8d\xd6\xfa?b\xca\x92\x93\x8cq\xfc?\x8f\xbb\x85j!\x04\xf4?\xa0~4\xda\xa0Z\xb0\xbf\x19\ru\x9d3D\xef?O\xb1\x9f\xce\xf77\xf4?&\xc9\xe2\x9aX\xc9\xe1\xbf^\x08\xb6\x04cL\xdf\xbf\xad\xa4\xdf\xcaT\xab\xdc?UU\x8e\rs\xdf\xec?\xc2\x96\xbc~K`\xd4\xbf\xa4A\x12\x93\\q\xb8\xbf\xd6m\xc1\x99-\x9c\xff\xbf\x1d\x9d\xff8,\x97\x06\xc0\xf9\x8293Y\x17\x11\xc0Q\xd6\x8d:\xc4\x0c\xf9\xbf\x8f\xe6[t\xd5V\xf8\xbf\xe0\x16\xe7\xf9\x16\xbf\xed?=\xbe\x0c6&\xa0\xe1\xbf\xd1\xd0\xf9i.\xf9\xf7\xbfV3\x9a^\xe3\x06\xc1?&\xfeA\xc4\x92,\xdd\xbf\xd8\xce\xb6\x00k3\x08\xc06\xd3m\x1e\xa2b\x0f\xc0\x8b\x97\x90~\x04\xc5\xfd\xbf\xa0\xcf\xb9\xa4s+\xf2?/\xd8\xbb\xb0Ff\x03@]K\xcf\xf9\xe0y\x0e@\xcf\xff\x162\x81\xc8\xee?O\xbf\x8ePp\x14\xd5?0( \x80No\x9d\xbf0\xc75\x9ev\x7f\xe5?a\xeb\xb7\x18?\xa8\xfd?\xb8\x18\x8f\xb8\xc1\xee\xa8?o.sZ\x94\xb4\x01@^>\xf2\xcd\xd20\x01\xc0Z.\xbck\x08v\x01@])\x82\xdf\x94\xe9\xca?\x19I\xc2\x82\xd0\xd3\xe6\xbf\x1a\xf6\xeb\xb9\xa7\xd8\x04@\xc5\xf4L\tW/\xf8\xbf\xe8\x0b\x98\x07?\x02\t\xc0\xf3U\xa8\xc0\x96\xd6\x00\xc0\xd8\xecX\x05+\x13\xa0\xbf\x85`A\xf2\xe7\xa3\xf7?i"/ir\x1c\xd7?\x80\xd6\x83\xed{0\xc5?\xae\xb3\xa4\xc8\x88\xbc\xed\xbfts\xd5\x95l~\xcd?j\xcb\x84k\xdcE\xed\xbf\xbc\x06\xfe\xb5\x92<\x12\xc0s\xba\x1d\xbd\x81\x13\x0f\xc0\xf6\xea\x99\xfb\xcb\x18\x15\xc0\xfdHN\x89\x96s\x00\xc0\'/\x10#\x8c\xe9\xe1\xbf\x11[\xfc *\xe2\xfe\xbf\xa8I\xc9\xd7\n\xd0\xf3\xbf1^^\xa2\x175\xea?\xa7cv\x1b\xf6y\xe0?\xe8\n!\x9c\x80\x9b\x00@\xdc\x1f\xa1~\xf4d\xd3\xbf\xfc;\xfe,-n\xd2?\x17\xed\xeb\xce/U\xe8?@8\xba\x00\x1fS\xff\xbfS\xed\x95G\x17Y\xcb?{eK{\x00J\xeb\xbf_IY\xf4\x01\x81\xe7?\xd1\x82\xc8\xb8\xc3\xa7\xd9\xbfa\xcde\xaf\xeb\xf6\xe5\xbfS1\xff\xf1\x8al\x04\xc0\xeb\x06\xb0\x11\xc1\x10\xf0\xbf\xed~=\x1b\x9e\xb3\xe8\xbf\x8a\x06c\xbc\xc4\xf4\xff\xbf\xb7\xebn\xa0\xf5\xcd\xed\xbf7\xc9\x18\xff\x91:\xe7?\xc1\xbf\xd3\xa5\x83P\xf3?|\xf6\xd6M\x18\x9d\xf1\xbfw\xe3\xf0\xf5]\xe4\xc9?\x8c8=\x9a\x15G\x06\xc0vB\x98;\xe3:\x07\xc0\x94\xbd\xbed&{\x11\xc0\xccb\x90;\xeb\x16\x14\xc0\x07\x12+j\x02~\x0f\xc0Q\x91;Xn\xc7\xf8\xbf\xe6R\xd6I\xdf6\xe9?\x89\x0f?S\x88\x84\x00@\x9e\xa4D\xec\xdc\xc4\xd7\xbf\xaa\x9a;\x8fYh\xeb\xbf?t\xbc\xa3\xfe\xb2\xda?/\xc8\xb6\xb0\x05\x82\xf2?\xc8\xfa\xc7A3c\xf4?$\x0c\xf5\x97\x1c5\x0c@\xf1\xdb\xd9W?\x06\xc7?\xf2\xe9\xd0{<2\xfb?\\\x01\xb54\xc6\xaf\xf1?\xbe-~\xfej\x18\x02\xc0{\x81\x86\x0e\xf0\xe6\xed\xbf\xcfR\xacy\xe9\x83\xf0\xbf\xec\x12\xdbN\x15\xd8\xfc\xbf^\x9cs\x86I\xc4\xd4\xbff\xa7$\xc7\x08\x14\xd6\xbf}\x0fJ\xe1)S\xe1\xbf#f\x90\x9fe\x13\xdc\xbf\xb1\xaa\x03\x10\xf8B\xf0\xbf\x03\xb9\x12QI5\xe8?M>1\x9b\x19\xd7\xe9\xbf\x13\xb7\xee\xa5\x19\xfc\x01\xc0e\xc1~%s\x12\x04\xc0\xcd\xff\xe9\xf1mK\t\xc0sP\xbf\x0e\xf5\x94\x07\xc0\x14\\\xe69\x9e\x80\xfd\xbfp\xc63\xf6\xe8t\xf6\xbfP;\xc1V\xc4a\xe5\xbf\x1e0v\xec \x81\xd1\xbf9\xbc\x89\x8dK\x8b\xe0?\x89j\x8a\xab\xe6\xc7\xf2\xbfMXE\x99\xfa\xb1\x00@\xd5\xea\xf4\xc7\x85\xbd\xf3\xbf\x84\t.\xfc\xd9\xf1\xbf9N\x04ug(\xec?hV\x089\xc4\xfe\xe9\xbfi\x1d\xb7?U\xbf\xf9?\x15\x82\x1a\x9ci\xc2\x06@L\xae\xfd;\x8f\xbe\xa3?U\xd1*V\xb5\xd1\xf2?\x96\xd8)\x9f\x9dU\xfd?r5>:`\xc7\xf2\xbf\x02\xda\x82\xb3\x98\x1e\xf1\xbf\x8d\xffY"f\xfa\xea?n\x7f\x86Z\xa2u\x05\xc0n\xd2\xf3\xea\x0ey\xf4\xbf;n\xea\xae\x02\xe8\xe3?}wP\xc1=\xae\xfb\xbfCk\x1d\x9c=\n\xda\xbf\xfc`\rC\x87*\xdc\xbfi/\xd0\x02\xde\xad\xda?e\xddA\xad\xean\x07@\xb4#\xbf\xd1\xba\t\xfe?\xe7\xdd\xa9]\xbd\x1d\xb4?\xc4\x06F\xc0t\xfa\xf5?\xf6\xeb\xdf\xf7\xbe\x10\xe1\xbf\xbe\x97\x9c\xad\xb3`\xa9?5j\xc0\x7f3\xd3\xd8\xbf\x04]p\xcd\xbe\xb6\xf0\xbfI\x00\x13\xed\xad\xd4\x99?y\x99\xda\xc1\x1c\xf5\xee\xbf\xa4\x0e\x8c\x93\xe2\xbb\xe7\xbfo\xfd\x85\x1ax\r\xe9?\x02\x9c.>\x8c\xbd\xd5?"\xd6\x1fI\x03\xb1\xda\xbf\xd0\xab\xaa\r\xef6\xe9?\t\xa0A\xcen\xee\xdd\xbf\xdb\xd0\x89\\\xf7\xcc\xbd?q\x11+\xd9\x98\xf2\xea\xbf\xa6\x9a\xb1\xbc\x17\x9c\xe2?\x98\xbf2H\xe9\x0c\xec\xbf\xae\xaa\xf46\xec>\xe9\xbf\xe0L\xa2\x7f\xc1\xac\xff\xbf0\xeb,\x05\xcf1\x00\xc0x\xa7\x0b|\xb5\x97\xff\xbf.\\\xed\x9aP\xee\xe9\xbfK\xb2\xbc}\x89\xf6\xba\xbf\xa4\xf7"\xae\x8c\x16\xf0\xbf\xbcqF!\x16m\xb5?\xa5f\x83ND\xbc\xf7?\x0c[\xab,\xfb\xd9\x01@\x8a)\xc6ahf\xfc?R,R\x87Ad\xf6?[\x86\xb3\xd7tM\xce?\x12D\x00s\xabZ\xd9\xbf\x16\'e\x1br\xfa\xf4?#\x85|\xdf\x8f{\xe8?\x81\xd2\x97gwc\xcd?\x0b\xfbuD\xaeW\xe7\xbf\xad\x98\x83wh\x8a\xfa?\x9e\xe8\x9c\xed8\xfb\xe8\xbf2Db\xe0e\x87\xd8?KrL\xdf+\xe9\xf9?\x9d?\x14\xf0\xb07\xcf\xbfG}AY\x18`\xb2?v\xa1\xedt\x84\x89\xed?N\xc7\x89\x0c@\x8f\xe5\xbf\xca\ty\x9f\xb6_\xd4?\x0c\xb6\xce\xf6\xd2\x0b\xe0?\xc1\x11\xfd\xa5\x07p\xf4\xbf\x8a\x8e\xe6\xbah1\xcb??\x8e]\xce1h\xf3?\x99\x82\xa6\x0c\x11\xab\xf6\xbf\x95s\x80L\xf47\xf5\xbfYe\x1a\xea\xc6\x1b\xdb\xbf\xb2mH\x8f(p\x05\xc0"\xe8@z\xc2\x81\x00\xc0c\x02E_0\x87\xfd?\xe6\x8aF\xc56\xc5\x01@\x9a\xf7\n$\xfd\xb1\xf1?R:\\2\x81\xfe\xd6?\xe6\x13\x95\x8f\x02e\xca?\x10\xf2\xf0}d\x8d\xc4\xbf{\xd9\x89\xb1\xc0Z\xf4?,\xca\xb2\x1b\xa9V\xc7\xbf\x8d\xdb\xd6\xe5{\xbd\xde\xbfYv\xcc0\x97\xc0\xd1?\x89\x93\'\xf4\xb6\xf2\x95?\xbf\x0bQ&\x93\xc1\xec?\xd9z\xbf\x85\rh\xd3?\xba\x19\x82\xc6\xbe\xb2\xdd?\xc0\xf4\x80\xb0\xde\xcd\xb9\xbf\x0f$\x9a\xc34\xc7\xd8?\xbe6_\xc6\xfe\x97\xf2\xbf\x9c\xef\xfe\x9e\x15\xf1p\xbfL\xecWb\xa5\n\xe6\xbfP\xcaK\\O\x96\xc5?\xdd?yW\x9f\xae\xf3?\xe1\xa86\xa7>v\xf8\xbf*V*\xea04\xe3\xbf\nE\xf33\xe6&\x04\xc0\xa2&\x80\x1c\xfav\x11\xc0\x98|\x9a\xf2\'\xde\xec\xbf\x97\xb98m\x13\xe4\xed\xbf\xbc\xd5\x15\xc8\xe6\xca\t\xc0g\x91\x0fWu\xcb\xf3?\xa2\xb3\x0c\xcfA\x11\xb8?\x83\xb4\xcaN6\x89\xa6?WzTh@\xf3\xe3\xbf\xe0-\xbdJ\x8fu\xe8?G\xe8\xae\x1f\x8e\'\xf5?\x9d\x89/-w\x19\xc3\xbf\xa1\xb2@\x18\xfd\xed\xc0\xbf\x80\x90\x1d\xe6\xb5\x96\xc9?\xb0\x05\xac\xd2\xd2\xab\xbf?\x8a\xa1s\xd9~\x17\xd7\xbf\t\xb6\xba"\x06\xe6\xf1?v\x83zE\xf5\x1d\xea\xbf\x91\xe0<\xd6\xe2\x1c\xca\xbfb[\xa0\x17\xba\x13\xd2\xbf9r\xe7\n|\xf0\xf3?\x19\x88\xe2\x89\x83\x05\xdc?\x8b?f\xa6\x04\xed\xd7?\x91\xa5V\x14k\xad\xd6\xbf\x91s(`\\\x88\xe4?h|u\x9el\xcd\xf8?\x89\xc4G\xb8\xcc\x8c\xe6\xbfwC\xbbPZ\xcf\xcf\xbf\xf2r\x99k\x04\\\xa3?\x10\x81\x7f\xdff\xf5\xf1?\x0cm\\\xe5hw\xcf\xbf]%\x85\xfcu\x8c\xe0\xbfI6\xc4\x15\x19n\xcc\xbfc\xbc8\x1b\xa2\xf4\xde?%-\x98c\x1b\xec\xd5?j\xbc?\x9d]\xc1\xe4?q\xc68\xd86\xbc\xe7\xbf1\xc5\xe0\xfa\xf4\x8d\xbf?\xf05\t\xf9Hd\xb9\xbf\xc00\xe8\x05\x86x\xde\xbf\xa9\xf4\xa3\t#J\xf3?8\x01\x1b\x05\xea\x10\xe2?\x03|o\x9a\xb9[\xe0?;\x82\xf7e\x81D\xf0\xbf\xa9P\xa8\x17\xe0T\xc5?<\xa6.\n\t\xfd\xe6?\xc0\xb7\xb7\xcb\\\xda\xe2?h\x07\x11\xf3\x18h\xbc?Z-\xb3[*\xe4\xd9\xbf\xe0\xa8\x12\x9b>(\xb0?\xd3w\xd3Xye\xf0?\xad\xb2\\J\xab!\xaa\xbf8g\xc3@j\x8e\xa6\xbf\xe3p}-yv\xf9\xbf|PT\x0c\xbc&\xba?\x8f\xe9\xc1AK\x05\xdf?\n$+\xec\xf2\x81\xd4?\xa3oU\x1d\x9d\xd8\xcd?D\x8d\xfc/\xb5\xcd\xf4\xbf[@\xe5\x0bk\x0b\xe7\xbf\xf1\x98L):\x01\xb8\xbfA\xcb\xdaU\x16T\xeb\xbf\xa9\xf8\xc3\x8b\xee\xf6\xae\xbf\xca\x91\x87\x11\xf3m\xed\xbf\xaa\xb3\xeb\x82\x8b\x15\xea?X\xbd\xce\x9dDu\xa1\xbf\x97P\x92\xc0\x90\x98\xf1?\x96v\x03\x108\xa0\xd9?:\xd4\x13\xf6[6\xc5\xbf\xa1\xcd\xee\x10\xe0k\xf7\xbf\xc0}\x83E\xf1\x9e\xdf?\xcc\x1e\x0fRl\xbe\xd1\xbfo\x7fD\x1eR\xfa\xc7\xbf\xd8l\x93\xd4\xfaX\xe0\xbf\x0eHt\x91\xb7\xe5\xdf\xbf\xe8\x7f$\xd9\xe5%\xe5\xbf\xf2\x80\x1a\xf1\xb9#\xd3?\x1c3+\x94\xf5\x96\xdb\xbf\xe3\xbb\x82\xd6\xe3\x17\xe8?X(\xb2\xea\xad\xcf\xf7?Y\xa66]\xd2\xac\xe6?\x90\xf0\x08\n`*\xb1?U\x93P\x94\x8e\xc2\x8c?\xe0\xbb_)\xef/\xf5?\x9d\xf6"\x06\x94:\xde?\x83\xd4\xf9(w\xc9\xe2?s\xa3\xd7\x1c\x1d\x9a\xed\xbf;\xb5\xffl\x81\x12\xd6?t\n\xc0!p<\xc6?\xc1\xc3\x83\x80\xf0\xb2\xe4\xbfW\xe61\x9e\x1af\xf0?\xeco\x82\xe1\xe4q\xd0?S\xac\r\xf1\xfaq\xec?\xbc4Wx\xbf\xec\xf6?=\x8cj=/Q\xe4?B\x0eL_\xde;\xf6\xbf\xba\x14\xa3\xbb.\x9f\xe9\xbftv\x98\x8eDm\xcc\xbf\xf6\xb2B\xf6\x05E\xe2?6%}t&\x82\xd1\xbfB\x8c\xda\xa9^\xf8\xcf\xbf-\xeb\x0cm\x88M\xd6\xbf\xab\xc8\x89\xdf%\xe9\xc2?{C\\u\x88\x00\xe7?\xea\xd0\xe0|\x1bf\xeb?\xc7G\xc6\xb2\x1da\xf5?\xff\xdd\xcbGo\x9c\xee?\xbf\xd0v\xdb\xbb\xd4\xe9?e\xf8\x88\xa9\xd3Y\xea?\xbb\x83V)\xa6\xdd\xec?\x98\x13\xc6\xbe\xf4y\xcf?.5\xd0\xb4\xff\xbb\xde\xbf.\x07\x81`\xbb\xef\xe0\xbfd\xdd?`rU\xd8\xbf\xd6SQ\xd59D\xe1\xbf\x86?5\xaaG\x9e\xdf?S%\x88\x9d\xe8\xe2\xd1\xbf\xf5&/\xea1\xda\xe6\xbf\xcc\xe9\xc4%^;\xe9\xbf\\\x8a\xef"\x9b(\xe0\xbf\xb6\x8f\xfc\x9f-\x8a\xe4?\x86q\xc34\xa8\x16\xa2?\xbb)a\xc1+o\xf1?\xac\xb8K\xff\xc1\x03\xf7?\x9cO.\x94N\xec\xed?G\xa6HI -\xfa\xbf|V\xdd\x14#$\xeb?\x7f\xa2\x8e\xdd\xc9\xb3\xfa?\xdc\xe4\x95\xd4\xb1?\x9e4\x8c\xb5\xfd\xca\xe0\xbf\x9d\x92t{j,\xbc\xbf\x84(\xa14/\xb0\xab?\x87\xff\x08\xe2\x9c\xce\xee?\xe2\xda\x00\x94g\xe7\xc7?3\xe7O\xebZ\xb3\xe7?\x02\xf1\x95\xb2\x1e\xe1\xc6?\xb5\xe9\xb1\xb7`"\xea?\x07\xdc\x10\x8aI\x1d\xea?\xd2\xf5\xbf\xc0\xb2\xe5\xde?k)h\x1f2w\xf5?\x93\xba\xc8x[\xc2\x10@\xa4%=\xa4\xa5<\xf6?\x1e\xef\x9cTLn\xfa?\xde\x06l\x046N\x06@\xc1 \r\x9a9\x96\xc3?\xcf\x14*\\E\xe3\xf8?X\xeb\x1f\xb0\x8c|\xf2?\xf2=\x1d\xcd\xac\x00\xfb? {,C{U\xf3?\xcd\xcbD\xe6OD\xe7?o\x0c\x11\xb8\rC\xc0?TT{\x16\xff\xe4\xb7\xbfi.\x98\xfa\xc8I\xe6?R\\\xf9+\xfb\x16\xdf?a\xeb\t0\xfb\xf7\xaa?\xfb\xaf\xee\xae\xb8U\xbf?\x94\x90\xdb\x05[\x97\xce?T\xd5\'\x1cD\x11\xb2\xbf\xdaj\xf3V\x9at\xf0?=Q\xf14\xd5\xba\xd5\xbf\xc0\xa9\xf3\x9c\x85\x1c\xc9\xbf\x02\x1b\xd4d\xae\xaf\xc5?=\xf2\xfa*\x8d\xee\xec?\x02!\t\xfa{|\xfa?\xc0\xe6"|2&\xd5\xbf\x04?z\xd85Z\xf4?+\xaf\xab\xc4\xb5\x12\xf7?\x8a\xe7B\xaf\xdd/\xe6?\x04=Q\x93\xbdY\xcb?{\xd8\xc7dv\xf9\x06@}\xbe\xdc\x05x{\xed\xbfxXY%b\xbc\xf1?\xbbb\r\xed]\xb8\xdc?n\xeb,,}\xc2\xf6?,T\xc6\xce\x11\x89\xe1?7\x05\x03Vk>\xf3?4a\x11:!\xca\xf8?\xea\xb1\xcc.\xa0W\xf5?\xe6\x02\xd5P\x85\xaf\xf8?\xa8\xcd\xacV\x056\xc1\xbfn"\x1cA\xf8\x19\xf0?\x0e\x19\xfb\xfav\xca\xe1?\xe3a\x91\x1f\x99J\xe9\xbf2\x8ea\x06\x8es\xd5\xbf(\x96\xd8\xa17\xc4\x85?\xc6M\x18\xc3\xf4\x16\xba\xbf\x0fJ/\xbbb\x03\xb1\xbf\xda\xb97\xdeov\xe9?\xc7\x9c\xb1\xff\x96\x8e\xa7\xbf\xad\xfa\xf8\xf7M\x0b\xf0?\xf3\x86\x00\xea\xcc]\xf8\xbf\xe7\x04g%J4\xec?S7\x9e~\xab=\xfa?\x81\xd6\x7f\xa4\xf3E\xdc?\xb1^\xbd\xd0{\x84\xb6?\x0e+\x19H\xf5v\xfb\xbf\xd5<\xa1*\xf8\xde\xf9\xbf\x1b~#\xba&\x06\xea\xbf\xa0\xbb\xc7\xb9\xebl\xe9?J\xef\x88\x00\xdc\xa6\xe8?Z\xb7|\x0f\x01\xf1\xe7?\'\'s\xc3\xf0Q\xff?\x04\xe2\xa6\xc5Q\xd1\xf3?\xdf\xc46\xd8\xc0$\xe9?\n\x93\x0f\xd4[\xa4\xec?\xd5\xde%\xa7\x94@\xec\xbf:\x02*\xd3Df\xc2?\xf4\x13\x16\x1eg\xa7\xf4\xbft\x8c\xb1\x99K\x8d\xd0?\x0fG\x1fL\xc6\x1a\xcb?\x86\xedK\xb9C\xf7\x9f?\x12\xe8\x1a\x9b\xb2_\xd4?\xf4\xc7vGE\xbc\xe8?\x1ck\xfd\x1a\x89\xc5\xa4?$:\x0e\x972{\xeb?\xb8\xbcrD\xbe\\\x01@M\xe3(d\x86\xb1\x02@\t\xf2\xaf\x17\rT\xc7?5*\x0b0.\xdd\xb6?\x04T\xee\xff\xbdW\xe7?\xa9\x18]Z\xe1\x1f\xdb\xbf\x04H$\x14B"\xe9\xbf\x0c\x8bp\xf6\xa0\x86\x9d?\xac#\xbf(\x83\x8d\xb5\xbf\xf4O\x8c\x17\'\x96\xc6\xbf\xdd\x89\x9c*\xf3\xcc\xda\xbf\xa6bc\x02\x7f\x82\xb2?\x8a=\xf0\xc15y\xb1?\x02\x14`\xc5\xdd\xe9\xbf\xbf\xd9^C*\x06\x19\xd7\xbf4*\xf2T\x83;\xb0??\xbf\xc4\x95\xec-\xe9\xbf\xe5\xdd\xf6\x87$3\x01@\x02\x00?*/H\xe6\xbf\xc6\xd3X)\xdd\x93\xf3\xbf\xb6d\xa4\xb4\xad.\xca?WG\xd35q[\xf8?\x1d1p\xc3\xec%\xdf?\xe2\x01z\x11\xeeI\xeb?\xde\r\xb0\xf1R\xdc\xdc?j\x10\xb6HhO\xf1\xbf<\xd5|\xa6ER\xd4?\x93\x87\xc2\xa7@\xc7\xa2?94\xdeL\x98\xa0\xf5?c\x90\xae\xc4\t\x82\xec?\xc0\x06\x98!\x7f\xdb\xe3\xbf\xfekw\xfd\xa8[\xfc?\x91\xe9\xc0\xfaSa\xd6?\xf2\xd4/\x9f\x97\xa3\xf4\xbf\x94\xa4\xba\xc3\r\xe5\xe1?,\x8cV\xc3\x19\x9c\xf3\xbf7\xf5\x18\x88.\x14\xe2\xbf\xa2\xbbO\xc1Gl\xc2?\xf8\xbc\xdb\x92\xa9\xfe\xd5\xbf^u\x86=\xa8\xb2\xf2?+\x9f\xef\xba\xcd@\xf4\xbfr!\xddK\xa5<\xf7\xbf\xf9\xb4a\x15p\xd5\xe3\xbf\x06\\;\xab\xb5[\xcc?\xffdi\x84\x04\xf6\xb9?\x0b\xa1m\xf1\xe5\xd2\xe7?\xc7\tsW\xa0~\xf1?\xe6)o\xeb=d\xf8\xbf\xff&\xcf\xb4\x9f\x85\xf9\xbf1\xf0\xca\xc2\xc7\xe6\xda\xbf\x84\x08h{YN\xb8?v\x9ac\xe8\x16h\xe9\xbf\xa1"a\x83\x83K\xd7\xbf\x0eV\xf7i\x80\x95\xf1?\xf3.\x85\xf9\x02\xe0\xf5?\xdf#!\xce\xe4\x0f\xf6?\xe7vCv\xdaf\xee\xbfR\xab\xfa]\xafk\xeb\xbfWP\xa3kT0\xbf?\xf91S\xc8\xbe\xf1\xf1\xbf\xd6\x1a\x8a\xd0yM\xc6\xbf\x083\xe4n\xeek\xd5\xbf\x11v[t\n\xac\xd1\xbf\xcb\xfe\x05\xdab<\xde?\xf4\x88k\x9c\xd1F\xd7?\x088\xae\xa5\xe5>\xe9?\x90\xb9\xdf\xe7\xfc\xa2\xf8\xbf\x02y\x03\x8d\x03\xfb\xed\xbf\xc0b\xb8\x9e\xd2)\xf1?\x98\xe2\x9d\xc2x\x88\xd0\xbf\x97m\xdb\xb1\x02S\xd4?=C\x7f\xa9\xca\xf6\xeb\xbf\x9b\xdf\xdf\xd7\xdaq\xaf\xbfbDA\xed_\xde\xe4?\xaa\xea\x15\x8bU3\xd9\xbf\x8c\xe5\x96\x87\xab;\xf6\xbf\xb7\xf5\xa1\xe0\x81\xac\xe2\xbfhq\xdc}\xac\x8d\xde\xbfI\xb04`C\xc4\xd4?\xd5(jR\xbb\x7f\xdb?\xa8Cd\x8a\x88\x95\xf4??\x7f\xac,\xc3\x9e\xe9\xbf;\xa4\x10\xb4\xa5\x96\xdf\xbf\xaa\x81\x1f \xb4+\xdd?\xa16e\xe9\xf3!\xf9?Dw\n\xc5.7\xfe\xbf\xb9\x1e\xf6\xf4W)\xc5\xbf\xadV\'x\x92\xda\xfe\xbf4\xb8\x11\xa5\xf1\xcd\xe8?R\xb7C9\x11\t\xc9\xbf\xbe\xca\xe7)V\xfb\xee\xbfF\xba\xed^\x14\xc4\xdb\xbf=\x85g\xe3\x9d\xc2\xd5\xbf\x90\x80\x1dz\x9e\t\xf5\xbfQ\xd4?\xac;=\xe9\xbf\xe1\xf8S\xdc=\xc6\xfd\xbfF\xcc\xc6)Q[\xf9\xbf\xe9\xe4[%j?\xe5\xbf\xa5N\x9c\xd4\xbf3\xd1\xa9\xa8\x86\xa3\xf0?}\x0c\xbb\xef\x9b\xe0\xd7?\xfcu\x81\xbd\xd5\xf9\xdd?x\xbej\x0c\xba\x88\xf6?\xa1\x93\x07\x9d\xc5\xbd\xd5?D\xf9}\xf5\t\x10\xf7?ht\xc0\xb42\xe0\xec?\xad\x0c\xb3\x0f\xc0U\xf1\xbf\x0c\xc4\x83N\x07o\xf4?R\xdf5\x02B&\xd2\xbfQ\x95+f\x84\x14\xde?-md,Bb\xe4\xbf\xb5\xe2\xecS9\xdf\xd0\xbf\xb3S\xea{:\xd2\xaa\xbf\x8a\xd5\xc8\x87Ln\xa2?\xf9l4\xeaF\xc1\xd8\xbf.\xca\xb9]I\x8d\xdc?\xc9\xccn\xea\xe3\x7f\xa7?/\xb2\xfdh\xf0<\xcd?\xdfQB\xb3Yd\xe1\xbfs]\xffs\xbd\x0b\xb1?G\xbb\xb0\xac\x83\xd3\xd0?\xc67\x7f\xdd~u\xfa\xbf\xa1c\x9c\xfb\x867\x00\xc0\xcd\\\x14<<\xd7\xed\xbf\x10\xc0\xddg\xcd\x84\xd3?\xa4{\xba5\x93>\xf2?\x86:\xe8Q\xab\xbc\xac?\xe1\xbblI\x016\xed\xbfn\xc8\x1ay)\xe2\xf1?\x9c\x12o\xdc\xaa\x88\xa7\xbf\xf8\xcc\xb6[~\xc0\xed?C\x0f\x1c\x90l\x1fd?\xb5My\x1d\xb4\x19\xf2?\xd9\x9e\x1af\xbe\xb4\xe1?/\xe3\xa2\xc3^\x17\x02\xc0\x03R\x134\xf1\xc7\xe6\xbf9\xf6\xdf\x9fjQ\xee\xbf,\xd7\xda\xfb7\xa7\xd1?W\x96\xeeH\'\xf9\xb1\xbfy\x06\x1dlN\x1f\xfd\xbf\xc4&\xd3:-\xe3\xd7?\xc4Wf\xb7\x1a\xd2\xf1?\x1c\xc6!V\x9dd\xe1?d\xf4\x8d\x00G\xc1\xcb\xbf=\xd4\x8b\xbf\x87E\xfc?\xc5\x08\x8d\xc6\xb8\x88\xd5?\x07\x8c\x88\xf26\x1e\xd4\xbfK7\xb6\x8d_\xdc\xf1?\x80\xb2\xed\x83\xcc\x01\xec\xbfl\x1b^F\xf9\x07\xb8?\x10\xd0h\x8b\xb5\xfb\xe6\xbfU"@\x7f9\x80\xe5?\x9dUh\xd8\xe8h\xc9?\x1b\\)W\xe5\xa5\xf2\xbfsN\xd8*\x03$\xf0?\x1d\xb0\x18#\x10\xfb\xc1\xbf 6\x0e{1\xa3\xff?W\xe2|DK\xf4\xc5\xbf/\xec\n\x953\xbb\xc7?\x86\xbd\x8d\xb1\x95\xcf\xd7\xbf\xc2\xf5$S\x08\xf0\xe8?\xd3\xa6\xcc\xde\xeef\xc1\xbf9[\xa8\x91\xeb\xa6\xee\xbf\xc2tC\x95\xa2W\x00\xc0\xf8\x05X\xa5\xfb7\xe4\xbf\xf6X\xd3@\x0c\xc7\xc1?*\x1b#j\x93\xb8\xdb?\xb5\xa1\xb2\xfbg\xa4\xe4?\xd1\xd6\x05\xe1\xa2\t\xeb?\xb8x\xf1Y\x0c\xe7\xc8\xbf\x8cvT\x97:x\xd7\xbf\x8f\xd2sB\x83\x8c\xff?\x8e\x87\x84u\x80\x1c\xec\xbf).\xa1rM\xc7\xc7\xbf\t\xcax\xd0h(\xf9\xbf\xc7\xae\x8eG\x16\x0e\xec\xbfB\x13\x1b\x9b\x18S\xd3\xbf\x85\xc2\xc3\x1bF\xda\xec\xbf\'\x1c?\x86\x8b\x92\xcb\xbfB\x04\xb5\xbe\x15\xb9\xe9?\xc3G\xe7\xba\xe5\x11\xe4\xbf\x0b\xdb\x9c\xd6\x05\x8e\xd1\xbf)\xcc\xe9\xab\xd5?\xc9?5\x85D\x8f\xae\x12\xe7?8b\xc9\x1b$\xdd\xe7\xbf2\xa2\x11^\x84\xe5\xd8\xbf\xa0^n+\xa8\r\xc0?S\x12\xe4\xd7\xd6X\xd2?\xdeE\xa5\xbd\x8b*\xee\xbfr\xe5\xf3\xe2\x16\x11\xcc?\xea\xbd\xd5\xe3g3\xf1?\x0e\x1cj\xf8F3\xbc\xbfJp\xfc\xba\xb1|\xda\xbf\x9f\xb1\x13\x0c\xd1\x8b\xeb?\xdbXb\xc1\x87\xfc\xdf\xbf\xf6\xcf\xc5\x90Z\xb8\xf0\xbf\x81\xfc%\x92\xcd(\xd8?\xc9\xd0\xbdb\x1d\xe4\xaa?\x03\x9c7\xfaE\xb6\xe4\xbf\x92<\x84M\x01\x8e\xbb\xbf\xc0\xb4\xcf\x9a\xbeH\xe5\xbf\xa4\x05\xb1\x01X\xfc\xd9\xbf\xae\xd2\xe5A\xae\xdd\xed?\xf4\x01tH\x11R\xf1?\x1a\xfe\x94=)%\xed\xbf\x95\x81\n\x83\xcb\xe1\x01@\xb2\xc2s\xd4E\x04\xf5?Zh\xe6\xdd\xb3@\xf6\xbf\x8b\xc5R}\x12\'\xf0\xbf\x86(\x02m\x91\xfd\xf5\xbfh\x1b\xf3P\x04\x8c\xfb\xbf[\x9dm\xeaT\xca\xc5?1\x00A-|\xc1\xcb?\xfaA_n\xd2D\xee?\xee7 s=r\xc4\xbf\xdfqk\xeaI1\xe2\xbf\xf3i\x93\xc6)S\xe2\xbf\xb8E\xf9\xe6Y\xf6\xe4?[f\xe3.\x1fp\xc4?+z\x9d#+\xef\xaf\xbf\xf6\r?\xc5-h\xa5?\xec\xc3i:\x02i\xea\xbf\xf0\xdc\xe3\xe4N\xdd\xe0?~I]se\xe8\xda?\x8cgV"\xf7r\xc5?T]\xd3\xb1s\xb3\xe0\xbf\xa5\xab\xda\xa0\xcd \xeb?\x9f\xd9\xac\xbb\xcfQ\xe7\xbfkM\xbe\x8bA\x06\xe7\xbf\x04\xab\x9c\x8c\x13\xb5\xec?\xee\xde\xa2M\xb0\xaa\xe0\xbfwj\x8d\xea>\x01\xd5\xbf\xfd\xe4\xe8e\x13\xcd\x97\xbf~\xafQ\\\xebi\xcb\xbf[ZD7\xcd$\xe2\xbf\x02\xfbk>/XW?/\xf3B,q\x94\xf8\xbfR\xaaC|qT\xd8\xbf3eR\x16u?\xd1\xbf^S\xd2\x94c\xa6\xd5\xbf\x89\xaa\xf4\xaf0;\xe6?(1\x8e\xeb\xc73\xec\xbf\x0f\x90\xa3f\x91\xd1\xdd?&\x1e\'\xab\x93\xe7\xf1\xbf\'$\x86j\x9eD\xfa?\x04<\x10\x8b\x1b<\xe2?\xed\x03C\xe3\xd0\x11\xf5?\\\xa0v\x85i\xba\xd8?\x0eD9\xf5\x98\x1f\xd4?E\x135l\x87\xc8\xc3?\xba\xaf\xe0\x18\xcc7\xc7?J\xdb\xa4\xac0\x1e\xe4\xbf\x83\x8a\xbd\x11g\xc7\xfb?\x13aOK x\xe9?\xc3\'\xfb\x0f\xa1\xec\xe6\xbf\x90\x8b}\xb9\x86\x9d\xb5\xbfW%\xf6\xaa\xf6\x9d\xd2\xbf\xa5S\xf8\xa3u\xdf\xdb\xbf\xb1\x83\xbb\xe9\xd49\xf8\xbf3\x17\xd5\x16\xb5B\xe1\xbfo\x9f2M\x1d\x0c\xeb\xbf\x1d\xa6\xea\xfc\xecy\xe6?/\x9f\x88\x9f\x107\xd1?\x9f\x9bp\xc0\xf8\xb7\xe5\xbf5B\xff\xe0\x0cd\x03\xc0\xfc\xf9a\xf4Ut\xd2\xbf\xe3v\xfalH\x18\xf1\xbf\xbf;3~\xf7\xb4\xb2\xbfsJ\xc5\x1fV\xda\xcb?\x8a\x9ew\xf3\xff7\x06@\xbd\xed\xa9\xce\xf3\x9c\xd6\xbf\xca:\x90B&\xbf\xfb\xbf\x88\x08AAL_\xf1\xbfJ\xf8\x14^di\xf7\xbf\xfdYz\x1e\xa6\xfd\xfb?A^\x81\xe9\x1b9\xce\xbf\x86\xcb\x0fE2L~?\x85\x84IO0&\xfa?\xf8\xdd\xb7\x9c{\x7f\xd7?\xc2\xb2D\x86\xa1\xaf\xe1?uB\x0fDA\x7f\xe7\xbf\xb1%\x18)\x91\x06\xd2?e\xf9\xbd8\xcd7\xe5?\xe6\x0c\x94\xbf\x04\xad\xf9?0\xc1\xa8\x07L\xd7\xf1\xbf\x1b\x81a\xa3\x7f*\xe6?\x8d\x90\xc2\x10\x00\xf6\xe0\xbfP\x92Q\xb4\xd9\x16\xba?\x95\xc6P\xe7\x12b\xbb?\x11O\xfbw\x86\xa7\xfb?\xfe\xd1\x1d\x9e4\xf7\xf0?f\xdc\x90_\x87t\xe6?\xfa|\xe4\x83)\xde\x98\xbfc\xce\xa4\x96\xba\x04\xf4?\xa4\xb5\x896\x97\xd3\xfa\xbfc\xe7\xe4e\xe5\xc5\x86\xbf\xee\x07(\x13\x191\xe0\xbf\xa3;@~:.\xe7?luY2b\x01\xe4?c\xc78\x9cnn\xf1\xbf\xdb\x98oA\\f\x03\xc0v\xafB\xc8\xfd\xa2\xe2\xbf\xfb\x05\xcb\xf5\x95\xeb\xe6?2V`r\xa4<\xce?t\xa6Y_yu\xe5?\xb7@\xc3u2\xab\xdf?\xb1/\x01\x16\xc5\xe6\xe5?RL\xdb\xe4\xa6\xe8\xee\xbf\x95\xaa\x86$\x16D\xd7?\xf9\xbd\xf1K\xed\x85\xac?\xa2\xdb\xcd\xc5a\xdf\xf2?\xfe\x0b\xbe\x89\xfb\xe6\xf0?p\x94\x8c\xcf@:\xf2?7R\xc84Y\xa1\xeb?,\xff\'\xb1v\xdc\xdf?\xf3\xa8\xc1\\\xcc\xdd\xe1?\xb6I\xf2V\x03\xb8\x00\xc06\x9f\xb2J\x16\xa9\xdc\xbf\xa1\xe8W$f9\xae\xbf)\x9e\x86\x8a\xbf\xd5\xeb?\xe0\x85\xef\xfd\x93T\xfc?W1\xfd\xee\xb2x\xe9?\xf0"E\xe4\xa5\xb8\x03@0\x05\xd2[\xfe\x96\xcf\xbf5\x08-\x08v\xc7\xa9?\x1e\x7fg\xed\x9d\xcd\xb8\xbf+ke\xb6\x0e\xf4\xf9\xbf\xe8\x1bs\x8d{\xca\xcc?\xe8G\x81\xfa{\xed\xd2?\x0b\xcd3\xdf\x8e\xf7\xee?\x19\x06\xe1PR\'\xd7?\x0c-\xdc\xcd(~\xf9?\xc0\x99\x07\xe1-\xca\xc5?b\xf7\x80E|N\xd4?\xdd\xc3t?<\x98\xb2?\xc1m\xb9\x0e\xce\xf4\xf6?^\x11B\xef\x10\xdd\xba\xbfL\x9f\xf9\x17#\x03\xd5\xbf\x82\xdbxnF\xf1\xdb\xbf\x02~e\xf6Q\x0c\xf1?\x7f\xca=ht\\\xf4?k$bFl\xae\xf2?d\x874\x14_\x1c\xea?9\xa4\xa7\x19`n\xd0?\xc7\x97V{^\x03\xef?\xdf\xd0\xc7\xc2\\N\xee?\x91\xe7\xd8\x1dh|\xed?`"\x86\xde\xb4\x97\xfc?:\xdd\x94hD%\x06@-\xcf\xdc\xa2<\x84\x00@\x1f89\x9c4\xa4\x05@t\xba\\&\xbf\xec\x02@{\xad\x99xq\xc9\xf0?J\xcb\xc6AF\xb3\xfa?\xa2\xcaL\xf9=\x88\xd0?\x1dK\xec-\xae\x81\xe0?\xca\xfe\xdf\x12\x8cH\xda\xbf\xb4\x1c\x90\xfeu\xfe\xe0?v\x8br\xd2\xda\xc7\xe4?~(\xd4\xe7|T\x94?P\x17XeB\xd0\x94?\xe9\xea\x90*\x01\x90\xe0\xbfn\x03g%\xffZ\xe7\xbf\x86\x01z1\xd3\xe8\xb1?Z\xc7\x15\xd1i$\xe5?y\xaf\xb5\'\x1dE\xec\xbf\xd1\xa8\xe5\x8dS`\xf4?,\xd6\xfb\x9d\xea-\xe6\xbfX\x1f\n&G\xd5\xf8?_\x9d\xc9\x1a\x9d\x83\xfd?\x0bz\x07a\xcc\xc0\xeb?\xd4i\xf5\x0cF\x10\xfd?\x131=\xdc\x0e\xcc\xdf?N\xf0=\x1a\x04\x11\xd5?\xe9\x97t\x03\xa6\x0e\xf6?\x92\xde\xf5,\xd6\xfe\x04@eW\xba\x90C\x86\xf5?\x16\x87\xd9\x87_\xfe\x03@\x99R\xe9\xfc\xc9\xad\x03@\x9f\xc0!\n\xcdt\x03@\xfd\x92\x0b\n6\xec\xf5?\xe5z"\xff\xe5\x7f\xef?M\xc3\xd3\xe6\xfb\xd6\xe9?\xcc\x96.\xcd\xbe$\xdb?\xe3z\x8dh\x04\xd1\xca\xbf\xbf\xed\x02P\t\x8b\xec\xbf\xc6\x84\xf6\xef6\x01\xd8?\x1a-\xeaG6\x18\xed\xbf(\xa5!l\x93s\xdb\xbf\x9b\x13G\x12\xe3\xdb\xf4\xbf\xcd\x03r\x0b\x03j\xf3\xbf\xe6\xb3\xdc\xc5\xc0>\xe3\xbf+\xabw\xc2z\xe3\xce\xbf\xef<\xf2j\x07>\xed\xbfB\x9b\x8a\x16\x8bX\xad?\x18z\x96\x96#P\xf2?v\xab\xba\xd94\\\xb9?\x97\x16GT\xd6X\xfd?\x95\xf9\xd6A\xeb\x9e\xff?\x15B\xb8\x02\xf9[\x05@C\x18m\x8b\x15!\xed?k&\x84MHP\x04@\xb5\t\xb3\x8cdE\xf4?\x8f4\xdb\x8c\xaf\xb1\xf1?\xd8\x82\xa9\xe73\x1f\xe6?\xb9\xc1tl\x02\x13\x9e\xbfU*F\xd2d3\xe1?\xdf\x1bYr\x86t\xdb?\xfd5$S\xf8\xfb\xf8?\xf1\x94\xc5A\x95\x98\xf9?\xfc\xbd\xc6\x07\x82\x94\xe1?)\xbd\x17\xd1;:\xda?\xca\x07R \xd7\x1a\xcb?\xe7\xdf\xde\xc7~\x94\xf1\xbfu\xc5\xbd\xb6\xd7A\xc6\xbf\x9d\xde\xde\xa1S\x1c\xee\xbf\x84\x9b\xa6\x895\xc6\xec\xbf\xecp\\\xcb\xa3\x16\xf2?VE\x0bY\xd9\xf4\xc9?\xd8f\x95\xf3^\x06\xd9\xbfj\x94\xfb\\\xee\x1f\xe8?^n&R\xb1`\xf2?\xcc\x03\xd7\xcd1E\xe0?\x07\x0b\x85\xa8 q\xd5?\rf\xad9\xd3\x9d\xf0?\xd9/\xd4\xf6?\xa9\xe8?>4\xb9\xfa\xf1,\xf1?\xc4"]\xfeT\xcc\xda?\x1a2\xdd\xe64D\xf8?qr\x86V\x8b\xb1\xf0?H\xaaVE\x1a%\xd3?&Z\xa5\xd7_&\xe0?a\x91\xb4As\xfe\xe9?\x91\xa9\xab\xf0\x9d\xf4\xf1?|\xbf\xfd\xc4R\x82\xba\xbf\t\xfc\xcb&\xaf"\xc7\xbf\xda\xaa\x17>\x84:\xf4?\x8crg\xf3 \x17\xd9?\xef\xce\x08\xa8\xdf\xf2\xf5?\xac\xde\xfd\x93hr\xfe?V\\\xea\x848\xbc\xee??\xd7\x954\xa3^\xd1\xbf\xb0\xc7\xf8\x06s\\\xd2?\xadf\xf0\x81\x81\xb2\xf0?M\xbd9\xaf|\xa9\xc1?W\xb4\x89\xe0ZK\xc5?UL\xcb\x06\xc1\xed\xea?Z\xc6\xd9\x80\xb88\xdc\xbf\r\xa1\xbd4\xe9m\xda\xbf\xab\xe2lL\xa8{\xdc\xbf\xa0v\xa3\xe6Tu\xce\xbf\xd03f\x1d\xb3\xb3\xea?\x93\xc2\xcd\xae<\x8f\xea?\x08N\x97\xa1\xb8)\xc0\xbf\x99\x9a\x9f\x97\xab\xba\xd3?&Nl#\x82\x1e\xd5?\x1c\x02\xf9XL|\xa4?S\x99b q{\xf0?\xbeK\xec\xa4\xf0q\xdb?\x0fe\xed\xc4\xc3\x17\xe7?\xfa\x97\xb8(\xcc\x81\xf0?\xe1\xf3\xb7\xf6H\xa7\xf2\xbf\x84\x18T\xa3\x86\x08\xd1\xbf\xaf4\xa6DQ\xe2\xde?\xb5\xec\x9f\xbc\xfb4\xe0?\xe2\xa2\xcdJ,\xa5\xee?b\xd2\xda\x03\x9d\x1c\xe2\xbf\xa6\x8c\x1c9\x8cC\xe2?\xe6vzZ\x1f\x83\xf1\xbf\x16\xce\xb8\x85\xf3\xde\xf0\xbf\xe7\x05tJ\xca\x04\xbc\xbf\xcc;\xdc\xec\xb2d\xaf?\x1b\x88Rc|2\xf3?\x97\xb2w\xdfl\x10\xdb?e\\\xfeN\xe0M\xde\xbf\t\xe7\x98\xf2\xd6\xe1\xde?\\\xef\xb2M\xc2/\xc8\xbf\x90\x16M\xb8\xbb\xc2\xca?@\x11l\x8a\x1f\xff\xc6\xbf$\x03\xad\x1dF\x96\xdc\xbf\x8d\x14\xc0\x89\x99b\xf2?)\xda\x9d\xb3\t\xdb\xd9?\xcd#\x1e\xd2k\xc4\xd2\xbf\x0e?h\xab\xd5\xd6\xe2\xbfj\x95"\x98\x01D\xca?\x83\x91X\xf8\x8a"\xcb\xbf\'\x95\xff\x8da5\xe5\xbf\x9f\x8a\xb0=\xce\x87\xf7\xbf\xf6Y\xa3\xe9\x9fe\xe8\xbf\xa0}\xad*\x8f{\xb8\xbf<\xec\x19\x92\xc2\xb5\xee?i\'\xb9p\xdd\xbc\xdd? T\xfdv\xd4\xff\xdd?q\x14C\xbe-\x88\xf2?\xf0T\xcc\x8c`\x95\xf5?%L\xf9xY\xfd\xd5?\xc5\x1am/\xb6R\xed\xbf\x9c>\xd2\xd1u\xf4\xd5?S&\x07\xbfK\'\xdd\xbf*w\x83\xef\x90\xd8\xcd?W\x8co_\x7f\r\xf4?\xb0v\xf8\xf9\x82h\xf1\xbf\r\x15|=\xfcL\xbb?\xe9Dd\xdd\x7f\x93\xe9?\xc0\xf7\xe80\xdf(\xe6?o\xd3\xaf\xf2\x1f\x9e\xe5?z3a\xb6\x0f\x90\xc8\xbf\x93\'\x98\xe6(\x16\xd4\xbfmD\x9dX\xf1\xf4\xd7?n\x9a\xef\xe0^\xc6\xd7\xbf\x8c\x1aE#\xdb8\xb1\xbf\xf4\'\x87\xd1\x1eM\xd9\xbfCFD\xc7\xee"\xc1?Y\x92\xe5\xc6i\x18\xf3?\xa6\xc6\x9b6\xd5\x1b\xd8\xbf\x95\xddP\xa0\xb8\xcb\xf5?-/d0N\x92\xda\xbf)SZFh\x90\xd2\xbf\x9ex\xb7\x85)\xf3\xf1?\x98\xd0\x12\xab\xb0S\xd4?\xf2lt\x15\xc7sl\xbfleX\xf3\xcb\xae\xb3\xbf\x1aO\xee\xe4\x1a4\xd7?H\xad\xd2y\xe9\x85\xea?i\xbb9\x8cq,\xf5\xbf\xba\xbc\x83[\xca\'\xf1\xbf\xc58\xaf7c\xa2\xc6\xbfr\xa58\xe0\xcb%\xf1\xbf\xbb\xe8\x07\xf83t\xdc?\xc6m\xc3#!Z\xe6\xbf\xd8\x11\n\x97:]\xd5\xbf\xb2\xc5u\x86\xeb\x8a\x02@a\xcf\x81T\xfe\xe7\xe9?1\xddZ\xda\xf5\\\xed?ff\x19\xfa\x81i\xe1\xbf\x0b\x163\xdaK\x8d\xe3\xbfr\x9f\x12\x81\x01\x84\xd8?\xe53\xa0\x97Uw\xd6\xbfn\xe7YAFO\xbe?\x13\x8cj\xc0|\xc6\xdc?y\xd4\xbc~\xed\x10\xee?8\x87Mj\xb0\xda\xe8\xbf9\xad\xe2\xb4L\x8b\xf3\xbf\x05{\xd8\x97\x16l\xbc?\xe5\xea\xba\x8ah\x89\xe3\xbf4n\xc2\x06\x94\xa0\xf4?\x0f\xa0/\xd5\xe0\xa9\xe3?\xa4\x85Os/R\xc7\xbf\x8f\x06r\xfa\xdc\xd1\xd5\xbf\x93O\x04?%.\xe6?\xa3\x91\xb9\\h\x83\xe6\xbf\x04\xe0\xf1\xd0\x98\x1b\xd8?\x89d\xe8?\xf8\xb6\x1b\xda\xba\x7f\xb5\xbf@\x82m\xbf\xe4\xc7\xea?k\xf5\xc2\x1b\x99\xcb\xd9?\r\xb3\x83\xf3\xe4T\xdf?(/.}\xad\x7f\xdc\xbf\x8a\xff-\xfc\x06\n\xf5\xbf\xea\xa7\x1f\nke\xf0\xbf\x15\x1bp\x91\xc7\x84\xc1\xbf\xa2^\x0f\x9b\xc4\x84\xf1?\xbcu\xc3T\x83~\xf5?\xc8\xed\xc3\xa2K\x81\t@\x00S\x99~O%\x15@N9_U\xb9v\x0e@\xd4iC\xf8b\xeb\x06@ur2D\x93^\x06@\x843?\xa7\x1a\x08\x07@\x16\x1a\xbcl,\xfe\xfe?\xcc\x11}\xef\xbfO\xef\xbfW\xd7k8F\xb6\x00@\x87\xbaU.\xfa\xa4\xa4?\xf6\xe2\x8e\x95?C\xf6\xbf\xbe\xeb\xf3<\x1a\x91\xb5\xbf0\x1e\xe69\x8b\x87\xcc\xbf>\x02]\xadq\xc0\xed\xbfa\xfc\xa0\xa9e`\xe4?\xae\xe5\xb4\xb9\xe8\xa5\xdf?\x8d\x91+\x876\x16\xa8\xbfw\xb88\x8c\xaet\xe8?\xac}Q\xec;\xb7\x00\xc0\xe9\xb4.\x98\x16\xa4\xee?\xeby \x00\xcd>\x9a?\x9f\xd3\xf1:\x10\\\xe7\xbf\x98u\x8dp~m\x90\xbf\xc7\x82\xef\xdc.\xb2\xe5?\x08fN?q\xb1\xf3?\xfe\xb8\x15\xd3\xd0\xb0\xda?\xdb\x8b\x91\x115}\xbe\xbf\xec.\x19\xe0\x98u\xeb?\x06\x07\xe7\xd3\x080\x03@\xf3w\xef\xc4\xa1W\xe6\xbf\xbe\xcb\x18\xc9\xbd\xef\xe5\xbf\x90\xfdf>\xad@\xf0?>6\xc2\xe5\x8d)\x00\xc0\x9cG\x98$\r\xa4\xfc\xbf\x99\x1c\xf6\xbc(\xd8\xf6\xbf\xb1~\r<\x84\xd5\xe0\xbf2\n\x8b\xce\x9e\x85\xea\xbf\xf0!\t\x80\xc7\x95\xfa\xbf\x83\xd3\xee\x8d{\xeb\xb3?lY\xa7\xfe&\xf3\xff\xbfp/\xb0m\x8a\x97\xe1\xbf\x88\x0cv\xe8\xdb\x19\xea?b6*\xd4\xb2\xd2\xe7\xbf\x01Si\xc7\x11\xd6\xd4?\x82\x98\xb2hU\x95\xfd?\xde\xce=\x0c!\xa2\xf0\xbf\xc5joN?\xb1\x01\xc0\xad;\xc13\xd0j\xd7?\xcf\x97\xac\xad\x93V\xd9?,\x13\xa1\xa3\'\xaf\xe7\xbf\xf3\x12\x8e\x15\x8d\xa8\xb8\xbf\xce\x96\xa9\xb8\xec\xfa\xe4\xbf\xce\xb1"x[\x1b\xdd\xbfxCm\xfel@\xf8\xbf\x98\x99\xf0\xb6x\x0e\xf5\xbfb\xed\xc7\x02\xcf\xb0\xfb\xbf/\x7f\'+\x93\x98\xed\xbf\x8b@\x1b\x7f\xc7\xa5\x03\x13\xb5?\xf5l\xd8\x96\xcax\xf0\xbf\xfe\n\xc0\xa6\xd9\x1f\xc8\xbfe\xfe\x97\x1d\x90\x12\xed?w\xca\xf6\xbaR\x12\xe0\xbf\x96\xfc;\xd0n\x9e\xc1?:J\x14\xb3\xbd\xa5\xcc\xbf\xc2\xa8\xf73\xdb+\xe7\xbf\x01 &+\xa4B\xfe\xbf\x1f\xda\x1c\xb3\xe9M\xfd\xbf\xb9\xc6]\x97\x00\xb4\xe6?\xf3\x03/\xdf\x87>\xfc\xbf\x84\x19=\xa8\xeb\x90\xf0\xbf1\x8a$]s\xba\xee?D\'\x1b\x92\xd9v\xc8?\xdbF).\x8b\x1b\x06\xc0\xf3QW2F\xbe\xd8\xbf\x98\x9be}\xf8\xc5\xfc\xbf\xa0\xae\xff\xd9\xce\xdc\xf3\xbf&"{\xbe`\xd4\xee\xbf\x0bx.\x1ft\xfe\xf1\xbfZ\x84\xe89\x8e6\x03\xc0\xa1O2\xa6;\x1b\x02\xc0\x86)\xbb\xeb{O\xea\xbf\xfe\x8c\x7f\x1bD\xe3\xea\xbf~\xb5\n\x9e\x14\xb4\xf8?2\x90E=\xae\xc9\xf2?\xc9\xe4\x93X\xfa\x12\x07@7v4\xba@@\xc9\xbf\xbb\xe8\xbe8$!\xb8\xbf\x8f\xb1\x17\xb9\xba\xdd\xea\xbf4\xb3\xa4\'\xf0\xe2\xc8\xbf\x01%(\x83\xde\x17\xe8\xbf\xb0\xf5\xd1\x89\xd0\x02\xd1\xbf\xda\x18U\x81\xd1\x87\xf0\xbf\xf7\x80|\xbe\xe8\x19\xfe\xbf\xab;\xb7\xdd\xbe>\xf8\xbf\x16\xca\xbe\x11\xe4\xfc\xb1?}\x11m\x08a\r\xc6\xbf\r\x84\x99\x1d\x18\xc1\x04\xc0\xe2\x17\xb5\xd1\t\xd1\xd7\xbf\x9bxXf\x9a\x93\xf2?a\xac\xb4\xfb\x19R\xd0?\xc1\xd0BO\x90b\xe0\xbf\xb3_I;\xa9\xec\x04\xc0].\xa9}\xb2o\xe2\xbf\xe565\xcc\xe4u\xd2\xbf\x88\xd3\x9br\xeb\x1f\xf0\xbf\xee\x01}\x89\x1c\x12\xf6\xbf\xef\xaf\x08L\xd9\xa4\xf5\xbf\xbd\xe1}\xf7\x0f\x95\xf2\xbf{\xacg\xcf\xd9b\xf9\xbf/\xbc2#\xd9\xda\xfe\xbf+\xa6\xe3\xc5\n\xde\xf1\xbf\x84\xb8qk\xc6\xbe\x0b\xc0s\xa3\xc2\xaf\xfaQ\xec\xbf\xf2\xb8\x93)\x878\xc4?p\xc5\x06\x0f\x9cY\xfc\xbf\x9e\xef\x86\xd1\xd63\xd9\xbfx\x93Q\xe1\xa0\x13\xb8?rX4\xa6Q\'\xbe\xbf\xf6\x81\xb1I&\'\xd8?\xcez\xc0\x89\xf3H\xf0\xbfW\xb2\xae\x06}\x84\x08\xc0\x86T\x05\xe9[J\xf8?:wv\xcf\x90\xb1\xf1?\x84\xcf\x03\x18,f\xe0?\xb0T\xcdsw\xb6\xdd?2\x84\xd4\xa7\xad\xd0\xbf\xbf\xe1,\xff\r\x8a\x8b\xf8\xbfa\xf28\x92#:\xfe?\x07\x11\x8d\xd6\xe90\xeb\xbf\xbf\x87\x88\xaeI\x80\xfb\xbfsw\xed\xc09\xea\xe0\xbf\xd3\xe2qP\x0fb\xb9?\xec<\xe62\xc4\xd6\x13\xc0\'\x93\xaf(\xc4R\xd8?\x10p^\xa1\xcd\x1e\x12\xc0`;7\xfe\xbb\x19\x13\xc0\xef\x05u\xa8\xf4y\x03\xc0m\x12\x9dc\x97\xc0\x07\xc0T\xc1\r\xea\xdc\x10\x03\xc0c\x88\x96\x9f\xd3q\x16\xc07W\x9b\x17\xd3\x16\x0f\xc0\xd1Y)tVv\xc1\xbf\xe1Z\xd3f\xb6g\xec\xbf\xe9\\Fj\xe5i\xfe\xbf\x02\r\xbf\xc4C\xf4\xe9\xbf\xc2\xc3q\xf0A\x0b\xf2\xbfr\x0cM\x83\xb6\xa5\xf3?Y\xf5\xe5\xa4\x80\xf9\xe0\xbf\x13|\xbb\x1b\x7f\xea\xe4\xbf\xbc\xc2S(oh\x01@\xfd\xb9\x83\x95\xe7\x8f\xeb\xbf\xb0V\x0f\xb7\xdf>\xc2?\x95\t\xa5}z\xf0\xf5\xbf%v\xdf N.\xe8\xbf\\\x0bOl\xee5\xcc\xbf\xfbXI1\xbd\x0f\xfb?(\x15\x0fY\x83\xa5\xf1?\x8e\x8f(=l\'\xb7\xbf3cKZ_n\x00\xc0\xbb \xa3\xfb\xe2\xc8\xfe\xbf\xc0~\x81\x10E\x15\xfa\xbf`\x10\x0co\x8d\x9c\x0b\xc0*\x8e^\xb7\xb5\xca\x0e\xc0\x07,\xf0\x7fo\t\t\xc0\t\x1dg\xb2\x9d\xc0\x06\xc0\xdf\xc8\xce\xfd\x11\n\x05\xc07\x13|$\xda\xe4\x02\xc0\xc2\x13\x9c\x9fl2\x10\xc0\xee\xbe\x1ap\x81\x80\x06\xc0\x02\xbf\x9f\x03&\xf4\xe3?\xb6f\xec\x9b\x02\x18\xb7?A1\xcd\xf92\xab\xe7?8Tv\xae\x12_\xf6\xbf\x19\x9cUS\xba"\xdc\xbf\xa9nGz\x1eK\xea?I^Q=\x1e\x06\xf2\xbf\x8ez\xde \x15k\xe4\xbfw|\x04\x00X&\xe9?\x0b\x0b\xbe\x04\xc3X\xef\xbfD@Y\xcb\xac=\xeb?\xcc`\x80\x1a\x81\x85\xc8?\xcfb\xa5mh(\xf3?v\xdf+Y\xe5\x10\xf5\xbf\xd9\xfbl\xee\xf31\xd3?H\x1d\xc1\xfe\xa1a\xee\xbf\x08\xe7P\xfa\xc6\x02\x85?\xcd\xd1OF\xa8\xdb\xee\xbf\xf1w[\xa7}\x08\xfb\xbf\xc5\xda\x17\xba\x9a\x01\xfb\xbfX\xf1\xd3\x0c\x83\xb0\x05\xc0\x9b\xc6\x19\xb5\xbaD\x04\xc0!\xdaK\x1f\xc3\xa2\x05\xc0\x14\xeb~\x12E\x0e\xef\xbfL\xcaQBc\x8c\x05\xc0\x91\x185\xfa\x88\x8a\x02\xc0\xbfx\xa9\xd6[\x9b\xf7?1\xa3x\x7f\xc9\xdc\x92\xbfzV\xcfN\x1e\xf9\xb4?y \x9eC\xd6\xeb\xbf,\x12\xe2\xc7\xe3N\xe2?X\n\xb4F\x82\x05\xe1?\xca\xe3\xa4\x8c\xc4\xd0\xc4?\xa1\xf2dX\x12F\xd7\xf4\xbf\xd2\xbf\x94\xd8\xd5\x86\xf3\xbfQ\xfb\xb6\xda\xae3\x00\xc0\'\x19f\x00\xd4\xf0\x00\xc0\xbb\x17\x84h\x0e\xc3\x04\xc0\xe21@\x0c\xf5*\x05\xc0\x8d\xd0e\x06n\xc7\xf1\xbfe\xc8\x80\xc1\xe2\xfa\t\xc0\x8f\xfa\xf0\xd4\xa6\xce\x01\xc0G7M<\x1b\xd4\xf2?\x1f\xc9jHD\x0f\xaf?(aZ\x1d\xee^\xa1?\x10\x12\xdc\xbb\x83\x03\xf5\xbf8\xfdg\xe9\xc2\xff\xba?\x1f\xef\x8d\xe7\x1c2\n\xc05\xeaK\x1d\xd5A\xd0?\xf0\xe6\xcd\xd0\xc7f\xc5?\x0f\xd4\xd4\xa7\xb6\x87\xb1\xbf\x9f\xd1\xa9\xb5\xbe\xf5\xfa\xbf9\x1a\xa9\x18\x9f\x13\xf5?\xeb\x12\xc5T\xd0o\xf0\xbf\xcf\x14\xe5md\x8b\xfb\xbf\xfd\xd2\xec\x84\xf3\xa8\x01@\rEi\xd57\xc9\xeb\xbf3\x8fU\xfe\xb9B\xe1\xbf\x8e\x8a\xea\xd8\x08\x8f\xea\xbf\xad\x9e&~\xcao\xe4?w\xd2\\[\x92\x01\x00\xc0w\xad\xd4\xf8\xcc~\x11\xc0\x9c#\x01>\xa3\t\xfc\xbfJ\xc5\x90\xec\xa3\r\xf7\xbfec\x8d\xf9\xf2V\n\xc0T!\x05Q5N\xff\xbf:G\x1e\xf2\x17B\x01\xc0]7\xf3y\xbb\xcd\xd9\xbfj\xf5}\xc9\xd7\x86\xe8\xbf\xb5\xbc\xd7{\xeb1\xeb?w\xb0\xfa\xa7iQ\xf9?\x85f\xb7$\xf3\xd8\x05\xc0:\xa04qp\x1a\xe0?i|\xbf\x02\x80?\xe3\xbf\xe1n\xc6\xbdy<\xb4\xbf\x060\x8e&\x06"\xe3?\xf3\\\xccK\xedN\x81?r"\x19\x80U$\xf5?Y\xf3\xbf\xa0\xc3\xb4\xd2?\xc5\xd5^\xb2\x03\xbd\xf5?\x9dp\xb6\x0eX3\x01@\xb5\x0c\x8e\x84d\x0f\xe6\xbf\x9b\x9b\x1f\xb5\x94\xea\xe2?+\x806#\x1b\x9f\xe5\xbf\xa11JZ`X\xe1\xbfsUB\xc5Z\\\xca?DK\x16\xb6ny\xfc?\xba\x99\xdd\xa3X\x9c\xfb?`]\xb7Y\\K\xfa\xbf\x16\xc8G\xf0W\x11\t\xc0e\xe0V\xd0\x0f\xf6\x07\xc0E\xdd"\xbc\\\x07\xeb\xbfx\x0bS\xab\xf1\x1f\xe6\xbf\x0e\nq\x04\x83+\xe0\xbfO\xd0\xf9\xdfc\xd0\xdd\xbf\xf8a\xc0\x06m\xe9\xf0?\x0c\xfe/C1g\xbf?\xfc\x0f\xcf\xd3\xd1\xcd\xe2\xbf\xa3smS\xa2\'\x02@\xd2\xf8\x08_\x16R\x9a?\xe8\xdan\xca\x1aY\xe2?\x91\xbe\xa4\x83{\x80\x01\xc0l\xa1\xdc="y\xe3\xbf\x1cj)\xba\x99z\xf4\xbf\xeefP\xfa\x88\xce\xf6\xbf_\x86\x14\x1d\xa2=\xfb?\xf8\xd2\xcf\xc0\xeaa\xde\xbf\x8f\xc7\x97\xa7UX\xcc?\xdc\xe0K\x1ek+\xf8\xbf\x83\xb0#\r\xdf&\xd3?\x03\xed`w\x83\xaf\xeb?&e\x1cA{\xdb\xd5\xbfu\xfa\xf8\xb1\xc5"\xf2\xbf\x93\xab\x8e\x07\xd2\xd1\xc9?;\x07,\xd5)\x88\xf2?\xc9tZ|\x05\xad\xd3\xbf\xc2\x928u\x16I\x0c\xc0q\xfc|\x1c\x7f\x06\x02\xc0\x83u=\xf7\x12%\xb1\xbf\x84z\\\x9a\xf2\xd1\xec?\xc0\xb2&H>\xf4\xcf?\x85P\x8a\x82\xe1\x1f\xd6?\xeaj\x8d\xaa`\xbd\xed\xbf.p\xad\xb4\xccE\xd3?\x05@\xbc3\xbf{\xfc?B|s%\xb4\xac\xfd?\xf7\xfa\xb0\xa1\xb3K\r@\x0e\xd15Ri\x8b\xf8\xbf\x94\x0ca\'j\xb6\xe8\xbftk\x82\x1d+:\xd3\xbf\xc3k\xed\x92\xc2O\xea\xbf\xc8/\x06\xd2s\x01\xc2\xbf"\xee\xf0\xb7V\x8b\xe1\xbf\xdbH\x95vpH\xc7\xbf,\xb8\x9b(?\x1b\xf4?\n\xfe\x8e\xe7\xd4\xf7\xef?\x83*\xd9\xa6\xaf\xb0\xd8\xbf\xb0.)+\x81 \xe7?\xd6\x7f\x86r"\x11\xde?\xbe\xe4c\x88\xfc\xf2\xc4?\xea\xa1;g\x9d\xa5\xb3\xbf\xf6\x1d\x1d\xf8\xa9\x1c\xfa\xbfLG}\'H+\xe6\xbfe\xbc\x15\x8e!+\xf8?50"4_]\xf8\xbf\xee&!\xdbZ\x92\xe0\xbf\xd7X\xa6\x9e\xc3\x13\xf3?\xc2~(_\xdb\xd6\x00\xc0\x0c\xd4\xcf\x98^\xc9\n\xc0V\x17\xa2\'\x07\xae\xf8?z\x87\xbc\xee\xff\xbc\xe1?\x19a\x1c\xa7\xc7@\xe0\xbf\xce\x00\xd4U\xc2\xcc\xdf\xbf\x0f26\x04\xaf\xe4\x0b@\x14\xffpO\xd4\x98\x00@\x8d\xb7q\x95\x15\xc5\x01@\xda\x19\xbbx~j\xe6?8)\x15lR\xfa\x00\xc0C\x9a.\x04\x0e;\xc3\xbf\xbb}\x12\xb9\x91x\xfc?\xbd\xa2$\x0bw\xf6\xf4?\x14o\x00\x18\xe9\xec\xf4\xbffM)U\xab\x7f\xde?}\xc6\x81\xe0\x84\xd8\xe8?\x08T&\xab\xa0\xa6\xd5\xbf)\xf3Vx\xf5\x9a\x0c@[\xb1\x06KC\xb3\xe3?\xd4\x9c\x143nX\xe9\xbf\x92Oq\xd5\x92\xd5\xc1?A\x82mK\x17\x8c\xd4?\x887\xb0\xe5i\xf0\xe1?\x80-\x7f\xfbu2\xe8?L\x91\x80\xbc\xe0\xb8\xc1?\x1e\xee/\x1d\x027\x03\xc0\x83\x07\xd6\x0b=,\xef?\xc7\xb9\xc1\x96\\\xe4\xf1?\x8f\x96N\xae\x16\xb8\xea?\xd9[\x8di\xac%\xcf?\x99!\xcb\x05\xea,\x06@Q\x96\xbd\xfa\x9a\x7f\xe5\xbf\xa9\xefD\xae\x15D\xd3\xbf\xe1J\xb19t\x08\xd5\xbfH\xba\xe9\x1d\x16\\\x00@\xb7\\\x81\x11\xf0\xc7\xf7?\x10\x9aI;\xef\xbb\xf9\xbf\xa1\x1c\t\xed>M\xd6\xbf\xed?\x86j\xcd\xef\xf4\xbf\xde\xeeh\x9a\xf8\xff\xd7?zUM\x8d\xc9W\xfb?h\x17\xaee\x90\x8e\xcb\xbfN6\xbe\xb7\xa3\x1e\xf4?\xe8d\xf5\'\xbd{\xb5\xbfeLZ3\xae\xcc?\x8bX\xbf\x96[\xd6\x01@3\xb7\xd4\xf2\x92\x07\xdb?\x0b\x81^\x1eJ\x82\xf7?\xf1\xf9\xbd\x88\xeaM\xeb\xbf\xdal\xf3\x85 {\x03@Z\xb8\xec\x0cO\x81\xf5?\x89\x1a\x0b\x80m\x98\xf3?|\xd8\xd6\xcb\x9c7\xfc?\xdc\x14\xab\xc3\xb5\xf0\x98?\x04e\xe2\xa2\xcc\xe1\x02@\xe8l+\xe4\xf9\x81\xf4?\xc0\xcb\x93\xc0+\xf6\xec?nP\xc4\x1c\xe1\xc1\xc7\xbf\x85\xcex\xfd\xc0\x9b\xea\xbf\xe0)\x99\x17\x9e\xc9\xf7?\x84\x86\xf4q\xc2\xda\xd3?\xa0;\xc9\x96d]\xfe?!\x06.j\xb2\x91\xfe?\xf7\xb8\xe4\xd3\x0b6\xdc\xbf\xf9\x9b\xad.&\x84\xfc?\x1d8e%\xa7E\xe6?\x95\x0b\x06\xf8LG\x98?\xb8\xb8d`\x0b \xe2?\xc1Y\x0f\xe7\x04\x1f\xf9\xbf\xd7p%!\xecI\xa5\xbf\x01\x1b\xf3\x17>\t\xf8?\xfc\xbdR\n7&\xf4?\xcc@(?\xcb[\xdb?\xda\x9a\xedD\xbb\xae\xfa\xbfP\xa6O(\n"\x0e@\xd9l\xb8\xd8\xe1\xb5\xe1?{f\x9f\xa52\xe3\x15@\x9a\xce\xc2\xf0eJ\x0b@\xba\xaf\x84%\x1eA\xf4?5`W\x83\xfa[\xe2\xbf\xd0\xb9\xad\xc5js\x0c@)*\x9fd\xb0\x81\xfe?#\x8e\xa2\xfc&\xc7\x01@\\}\xca\xf7\xa1\xe8\xab\xbfal{x\xd8\xe5\xfd?\x1e\x1f\xbf\xe1h\xf9\xf9?\xfe\t|\x92\xe56\xc9\xbf%\\\x9e\x98\xfe\x07\xf7\xbfxu:\x88\x9a\x97\xf2?\x07|\x18\xf4\xf9|\x00@\x0e\xeb\x00\x05j\xcf\xf6?o\xb2\x88-\x84\xad\xf6\xbf\xfa\x1c\xf5\xed\xe2Z\xe5\xbf\xb2\x80\x1ba\xdau\xd3?\xf6i;\xd0\xe6\xae\xe2\xbf\x13Fh\xe3\xbf\x1da\xbf\tv\\<\xfc\xa9\xc6\xbf\x9fe\xc9\x17O\xf9\x03@\xd7%k\x12\xf0_\x10@\xd8\xd5\x8cs\xbf\xc2\xf8?G\x197=\xe7\x85\x05@\x1e\x0c\x16U\x87\x9a\x0c@\x11u\xe6\x94~\xfb\x04@\xd4n \x95 \xb7\xe3?M}*\xbe,+\x0e@\xad\xe0\xea\x1c\xf8\xb9\xdf?\';\x1f\xb2ll\xf7?QG\xec<\x80P\xd5\xbf\x8c1#\xb9\xfd}\xd1\xbf3\xc2e\x055\xb9\xf8?w\x9a\x1f\xafv2\xd7?n/#WB$\xd6\xbfg\x1cE`\xe4}\xf6?W\xe2\xf6\xd9\xc6\xa2\x92\xbf?\xf6*\x925\x99\xe7?\x12\xac\x8d\xd4|\xf9\xfa?X\xad\x7f\xcc\xaf\x97\xfd?\xbd>\xa0\x80C\xf5\xee?\x81\xfb\xc1\x06\xfb\xe9\xf7?\xca\x81%\x80\x1av\xfe?\x92\xa8j\xcc\x1e\xd2\xe3\xbf\x11\xf5\xe8\x0bs;\xb8\xbf\x94?\x96\x10\x89\x04\xe2\xbf2\xc8\x1b\xfb\xad\x87\xf0\xbf]\xce\xf8!3\n\xef?\xf1<]W\x97B\xd0\xbfJ\xa8le\xc8\x97\xf0\xbfV\x11\x00\x82t\xe6\xce?\xcf\x00\x17e8\x07\xf3?\xd8\xfe6\xa6Cc\xf9?\xcd\xaa\xbf\xc0Y\xbd\xfe?\x9b\x95#i\xaf\x95\xfd?E\x18i\xe2?\xd5\xf1?\x08F@\\\xe3\xfa\xfc?8\xc3\xfa\xaa\xc4\xe7\x04@\xf3\x80V\x0cS\xbc\x03@\xc0\n\xf6\xf4\xc8<\xe3\xbf\x00\x1a]:\xb9\xbe\xc1\xbf\x08\xc9\xb5\xb0\xf0\x8d\x03@=F\xc6\xe9\x90\xb5\x03@\x83\xb9\x9d4eS\xf4?\xedV\xb5pwQ\xf2?\xa1\xc3\xde\xf0X7\xd0\xbf\xbd\x0e)\xe0eb\xfd?\xad[3\xce\xc6}\x04@\xd7\x95\xa2\xbc\xd2e\xe1?\xedc\xd0\xf1.\x06\xc3\xbf\xbb\x98\xf1q\x0f\xb4\xec?\xf0\x06\x99~\xf2Z\xe2\xbf\xfc\x9d^\x19e\xe4\xd7\xbf\x03\xa67\x8bsD\xf2?\xb6\x99\xb8\xbb\x06\xb0\xda?\xa0\xf8\x92\xb8\xef!\xe5\xbfEE4\xfb\x0e\xeb\x00@\xd9Y}3\x92\xa0\x11@\xb2\xe5\x1e\x16\xcb-\xe0\xbf\xafS@w\xa2@\xc6\xbf\xbb\xc0\xc0B\x96e\xf0\xbf\r\xa1^\xc1\xbcF\xf1?b\xbaP\xef\x03\xee\xf6?N;\xc4\xad\xb2\xd5\xe2?C\x12\xb5\x8a\tL\xf0?\t\x8b\x99\xe6\xffE\xd9?\xa0(P\xb4A|\xec?\x0bM\x07\x9a\x01m\xfa?\xb5UX\n3\xe5\xbc\xbf\xaeA\x18\xd2\xca\xb5\x05@\xa8T\xf2`\x92\xfb\xe4\xbf\xa3_\xa8V9\xab\xa8\xbf\x82\xf4c\x19\xc4\xd0\x0b@\x11\xc8\xfb\x1f\x15\x02\xed?\xe5\xe7\x0c\x17\x96\x06\xf3\xbfz\xe7\xbd\xa2\xd7\x15\xee?W\x0f4X\xdb^\xd7\xbf\xe0\\\x83\xae]\x83\xfd?\x18d\xe2\xa29\x02\xe0\xbf\x0e3\x07i{\xe7v\xbf\xaf\x16\x0c\x882\xc3\xb5?o7\xbb\x02\xd7\t\xe1\xbf:\x10\xbf\'\xecW\xed\xbf\xb8\xda\xec\xe4\xbc4\xd7\xbf\x0e_\xa7\xa6P\x10\x9b\xbf\xc4\x9b\xde\xc7\x96D\xf4?\xe6\xb5\x12\xd9\xb1\x95\xfd?\x9ed\xe4a\xf7~\xcf?!\xeb]\x87\x95\xc3\xe0\xbf\xf6\xddq\xe0r\xa9\xd8? \xa5\x07>S\t\xe0\xbfB$\xb1\xc1\xd9`\xf9\xbf\xf4\xb4\xa1\xb9\x80\xa5\xec\xbf\xc0S\x87\x97\x90\x87\xe8\xbf\'\xb1\xee=\x08p\xd4?r\xddsB[\xdb\xf3?\xa7yldQ\x9f\xf1\xbfc\t\x11,g\x98\r\xc0\x17\xd3\r\x81=J\xf7\xbf,\xc5\xbd+\xa2x\xc1?\xee\xd0\x10\xfd\x13\x05\xc5?\xad\xf5\n8ZK\xf9?\xd2S\xe9\xa7uQ\xd2\xbf\xf5\\\xdf\x8a\'\x1d\xd8\xbf\xebC\xb3\x06E\xd4\xd5\xbf\xf3\x9c\xe9\x87\x83\r\xe0?\xedb5a\x85\x16\xcb?2[\xf7\xb2\xb9\x14\xd0\xbf\xdc\xef\xe1\xf5\x15\xfe\xeb?\x83\xdd\x88\xc3\xed\x8c\xf1\xbf\x8d-\x1c\x00\x86\xff\xdc?\xb5\xe4\x7f\xeb\xde8\xde?\xcf\x0b\xd0\x06\x05l\xd6?\x99$\xb4\'\x11`\xee?\xd12~{r\xf8\x03@qp\xc2y\x92e\xd5?\xd4\xd2\xe2(\x9d=\xf8\xbf\x00\xf4\x98\xe0xz\xda\xbf\xad\xe4\x9d\t\xa9\xe7\xec?r\xb6\xe2Y\xf1\xd7\xfe\xbf,6i\xa8`\x80\xe5\xbf\xf7z\xd2\xea\xbb\xc3\x0c\xc0\xab\xda\xfc+\xc7O\x03\xc0\x1cp\xfb\x1d\xba\xdd\xdf\xbf\xc1PS\x8f\xc0_\xb4\xbf\x073\xa9\xceR-\x02\xc0&|hU\xb8K\xf4?\x9c@\\\x82\xe4Y\xee\xbf@\x9f8\xd4UF\xf0\xbf\xb6\xd1\xbdC\xf8\xdc\xf7?\xa5\xf9\xf8I~\xe9\xe0\xbf`R\xb5\xbe\xe6\x10\xe6?<\xdb\x87C\x99\x10\xf6?\xc9\xca~\xc5\x1e\x88\xb6\xbf\x12\x12\xcc\xfeIA\xc8?\xe9u\xfa\x9fr\xe1\xdd\xbf\x87\t[\xe4\xb8\x96\xd7?%\xff\x83\x0e}\x10\xed?a\xda;\tg;\xc3?\x0f\xa0X\x9a%\xf9\xeb?R9N\xfd\\\x11\xfb\xbf\xc1\xc5\xba{B\xcc\xf2?\x8e\xa7\xa1\x16\r\x91\xec\xbf{\xdcO\xf5)\xba\xf2\xbf\r\xff\xde\x8e\x1a\x8e\xf0\xbf\x9dib\x84m\xd8\xfb\xbf>\x0c\xd5\x0fay\xed\xbf\xaf\xb8*\xfc\xc7o\xf9\xbf\xfe\x8b\xcd\x98\xeb\xb7\xe9?T\xea{\xbd\x10q\x05\xc0\xachi\x15\x88.\xf6\xbf\xb5T\xff^\xb3\x9a\x07\xc0\xa2\x85\xbc\x13\xd7e\x03\xc0\xd7&S\x9c}\xd4\xf3\xbf\xa4\xb2\xae/^\x1a\x01\xc0\xe9\x08\x04\x9ez\xc6\x04\xc0!\xe1\xa4)\xf9\xd1\xe9\xbf;\x1f\xb2\xff\xcbO\xe3?|\x9f\x96\xc7\x0b\xcb\xa5?\x8a~\x93qjA\xdb?\xb16\xa4B=U\x03@\xb0z\xb4a>\x93\xab\xbfP\xfb\xa6y4M\xa8?\xd3\x05x\x9d\xbf\xb8\xf1?4\xca\x1f\xee\xea\n\xcd?>d\x0c\xbb#P\xb2?MEQ\'\x0ff\xe1\xbf\xf1\xf2\xabRW\x9d\x96?L\xa8\xe2\xfdT\xac\xe7\xbf\xeby%\xab\x99A\xc9?D1\xe6\xa8\xa8\x85\xd0?\xbbq\xef\xd7\xbf\x81\xce\xbf\xc2#\x83\xb9B\x00\xfc?\xc3\xd92\xd0\xf7~\xe6\xbfF\xd0\xd8~/v\xf1\xbf\x87\xbb\xc0\xce\xd1u\xc6?\x06\x80 \xb3k\xe1\xea\xbf\x93\x91\xb2\'\xe2%\xf1\xbfr\xdeA\x14\x97\xeb\xcb?\xac6\xd7\xfc|\xce\xf1?\xd5\x84\x9b{\xdc\x9c\xe4\xbfYP\x85\x86\xc8>\xd8\xbf7\x014yJ\x11\xdb\xbf\x98\x9a{\xd3\x91\xe0\xec\xbf5"r-Ik\x98\xbf\x82TC?\x7f@\xe5?\x98l\xb4\x98\x9a2\xf2\xbf\xcb\x10JoH)\xd5\xbf\xd2\x9a\xf8\x85\x11\xe5\xd1?\xde5\x1fW\xc4l\xd8\xbf\xf8\xc1\xd5\xb0\xa1o\xb2\xbf\xc4l\xc4h\xc7\xfa\xc3?\xe0\x1f>/o\xf7\xd6?Gr^\x17\x83\xd1\xd2?\xf3\xd7\xc4\xd8XL\xb3\xbf\xdc\x96\xdd[?\x03\xb4\xbf#\x11\x8d\x8a\x03\xdb\xe6?\xc9\xe2\xb6\xa7\x19\xcb\xdc\xbfE\x14lz\xcb\\\xe6?\xcarY\x9b\x91\xc8\xe4?\x03\xc5T\xd1\x82\r\xe2\xbfN\x99\xcc\t\xe0e\xf1\xbf\xe5Ar\xb0_\xcc\xe6?^\xc3\x8a\x91\xf8\xa9\xa7\xbf\x85,\x19i\x1es\xc8?i\x84\x92\xb8\n\xe7\xb0\xbf\x1aZ\xeb\xca\x08\xec\xce?qF\xd9\x15)\xc7\xac\xbf\xe6K\xb9\x13\t\xa1\xdb?%l0\x10\x1d\xdf\xcb\xbfDkyn\xe9\x92\xe1?\xa0\xc7\xb5\xd1\xd3$\xe2?\x9b\xf0\x04\x1db\xde\xd9?S \xb01u\x90\xe8?\x80\xb8\xc6\xb0\xe6O\xf2?\xcb1\x17\xa4L\x8b\xeb?2\xa2q\x15 \xad\xcc\xbf\x03p\xd6\xfa\xd3\xa0\xad\xbf\xc9\xe9\xdd\xf9$\x80\xda\xbf\xff\xebt\xde\x01\xb3X\xbf\x93%\xe9#\t\xc5\xe9\xbfv)\x95\n \x14\xe5?\xb1\x0b\xc6\xee\xb0$\xe3\xbf#``\xfe\x0cq\xb4\xbf\xa0<\xfa\xde}\xaa\xf5?o\xda\xc2\x01\r\xf9\xd6?\x0e\xab\x163\x14]\xd1\xbf\xb0q>\xff\x014\xe8\xbfX\xa1r\x98\x95s\xe0\xbf\xb8\x8a\xd6$\x051\xf5\xbf\x84p\xd7.\xb4\xb3\xf6?\x11\xa1K\x16\xa4X\xf3\xbf\x02~\xc2\x12A\x81\xbf\xbfW\xcc\xc9UQ\xdb\xe0?\xdf\xeb\xe4\xc2\xa5F\xf8\xbf\xa3$Iw\xf6\xe2\xe3?\x01\x19\x7f\xac\xd7\x97\xe2?\xec\xcfH5\xc4e\xf0?d\x84?\xb5O`\xe3\xbf;\x1d\x96xuo\xd0\xbf\x90\xab\'\x81\x1f\xc8\xef\xbf\xae~V\xf8\x08\xef\xeb?2\x04j<\xb9\x0f\xed?~c[\xb2\x11\xa6\xe0\xbf\xab\xe73\xe3\x9a\xef\xcb?\xe7\x1b\\\x06\x04\xcd\xde?N\xcf|\xd6\xafj\xd2\xbf\x14\xa7`\x94\x15n\xf1?k\x81\x01\x89\x86\x82\xf7\xbf\x9ds\xe4\xe9\x81\xa8\xfb?\x07:\x90R\x8a\x19\xa5\xbfTQ\x0fB\x8eI\x93\xbf\xb9(\x1fk\x8a1\xf2\xbfo21aZ\x8d\xf2\xbf\xb86\xaa\xe3ze\xd8?a\x14\x83\xe9s\x04\xe7?\xcd\xc9\x0cV\xe4\xde\xe4\xbf\xd3M\xde\xad\xd3\x05\xeb\xbf=\x1b\x0f\xf2\xdb\xce\xe9\xbf\xb6\x82u\xaa\xf5\xa4\xc9\xbf\xb5\x8f\x9c\x86R\x9f\xea?\xc0\xa73kh6\xd6?\xdf\x1e"\xca\xac\x8e\xc9?<\x1d\xd5\x18g\x18\xe7\xbf="\x81:N\xdd\xed\xbf\xfd)\x85\x96\xee\x05\xe8?n\x1b\x80J\x16\xd4\xdd\xbf\x97\x1a\xd4\x07\x19r\xce?3\x13\x0e\xe2h\xec\xd6\xbf\x95\xbdHVa\xc7\xd1\xbf\xe0\xe13\xd3I+\xd5\xbfa\x00\x03\xc9\xd9\xf4\xf3?A\x8a\x16\xfaS\x1f\xe3\xbf\x06\xdf\xee\xba\xc0\x0b\xc5\xbfV\xd0o|vz\xfa\xbfc\xc4\xdfw\xe1\xfd\xdb\xbf1\x01Na\xe7\xc5\xe0?+\xe2\xaf\xe8\xa0:\xbe\xbf^M\xeb\xafX\xcf\xcd?\xd4\xef\xb2<\xae\xb1\xea\xbf\x89L.\xf9a4\xf9\xbf\x0c\x9a\xd8\x94\x017\xd2?$Y\n\x95\xe62\xd2\xbf&\x1f\xf787\xff\xf9\xbf\xdby\x0e\x13\xb7)\xe0\xbfn\xa6\x12U8\xff\xb2\xbf\xb6\xf0\x0b]:\xdb\xe3\xbf\x1d\xa9,\x9dJ_\xf4\xbf\x90&w\x86\xf37\xd3?@\xca\xa5\x9b1=\xf7\xbf\\U\x8a\x0b\x8e\xe3\xd6\xbf1!^\xe3\x03\x1e\x01\xc0\x13\\gwA\x05\xf5\xbfg\xe7\xeb#\x12\xc6\xec\xbfk\x94X\xc8\xcc\x07\xfc\xbf\xac:\xe8y\x87\x1d\xe1\xbf\x93Gz\xa3W{\xe9\xbf\xc3\x05-\x88\xf6L\xf7\xbf\xa8\x1b\xa1\x1b\x04\xe6\xaa?\xa0aC\xa4\x18\xdc\xfb\xbf\xa3\x8c\xf5-t\x7f\xda?\x85\xd7\xae\xc0\x04v\xd9\xbf\xb77\xb88\xd8\x19\xf4\xbf\xf8\x9dW\xdcJ\xac\xf9\xbf\xfd\xca\xfe,S\'\xe9\xbf\xfe\x1dd\xecf?\xf2?\xab><4\xb5\xa7\xa2?\x06\xf4\xdb\xf2\xec\x8d\xe1?~9\x94\xe4\xf7\xc7\xd7?F\x18\x98\xc3|\xbf\xf3\xbfu\x88\xbc\xbf\xa1\xdc\xd4\xbf\xbboEO\xf9\xf4\xbd?R8uFs\xd6\xfd\xbf\xc1\xac\xe4\xfaY\xd4\xdd?\xb7\xd6\x85~\x8f\x0b\xd2\xbfp\xee&\xae\x8b\xa7\xef?\xbc\xf1\x97\x8e\xa5\x98\x02@\x01\xde\xd0"\x17\xf3\xec?\xa2\x08W\xb1|?\xc9\xbfDeEd$\x1e\xf4?2/\xb0\xf0\xadR\xd9\xbf&\x9b$\xf2\xb6[\xe2?\xf1\x9e\xd6\xfa\xa5\x1a\x01\xc0\xcbU\xb9[\x8c\xa4\xfa\xbfi)p\x88\x88\xe5\xd2?"8\xe5\xb4@B\xf5\xbf(\x1e\xbb\xb2Jr\xe4?b{I"xb\xf1?\x1e\x0b\xf3\x12^\xd1\xc1?\xeaR\x9f\x911\x83\xe7?:\xf7\x0c\xf5\x0b\xb8\xf3?\xf7\xd6\x99OL\x89\xc7\xbfn\xf32\xc6\xb4\x86\xd6\xbf9\xd7\xa3i\x8c\xb7\xd5\xbfX\xd2\xa7G\xe6\x8a\xc4\xbf\x85\xb3\x8f\xcf\xbd\xc4\xd7?s\x97\xb3\x06rB\xda\xbf:\x1fY\xfe\x05\xaa\xe5?8\x13\x19\xbfO\xe6\xf4\xbf\xb7\x081~7Q\x00@\xc7<\x01\xf1\x0c\x8c\xc0\xbf}\xe8=F\xc6\xa5\xdc?\x91.\xb5\x10\xb5*\xe1\xbf\x8e\xc8[\xf9\xa7\xc1\xec?\xef\xcd&)\x19g\xfa\xbf\xbb W?ed\xd6\xbf\t\xd4\xd2i/ \xc6?\xa4W\xba\xac\xd2\x81\xeb\xbf\xea\x9c\x91\xf7\xb6\xbd\xfc\xbf\xda3 \x9a\xca1\xca?FG\xa3\xe7O\t\x05@\xe6\xb77\xeb\x07P\xe1?\xd2\xeb\xfb\xddB\xd7\xf6\xbfs\xfddD\t\xa9\xee\xbfa\xc5,\xe8\xb9?\xda?\xa9wr\xcf\xaeH\xe4?h\x9dw(\x11A\xf4?\xa3\xe8(\xb9=s\xd5\xbf\'\xff\x18\x9b\x83\xf7\xbd?\xd3p\xda\xb3\x94(\xd6?\xe8\xf8\x19\xdb+\xd7\xe1\xbf\x00\xc5}\x0c\xbd\xbc\xf5?M\x91{\xb4\xe6\x96\xf4\xbf\xf7\x97\xaa\x18L2\xf6?7\x04A\x8f\xf4\xc6\xe7?G\xf1\x9b\xf9fU\xfc?\xd3\xc04F\xed\xe4\xba\xbf\x04\xe7\x84j\xcb_\x91?,\xd6\x11~\t\x81\xef?L[\xfc\xe9q&\xe4?x]\xbf5\xe2~\xf4?\x0c\x15I\xb9\x14$\xfb?\x0f\x11\xb3\x83\xf4?\xd0?3\xd5\xb7\x0c\xbf\x10\xe2?\xd7o\xf0\x89u\xd4\xf7\xbf\x90\x1b\x1c\xa2\xdc\xaf\xd2\xbf\xcd\x11\x05)mG\x00@\xdd\xc9\xa6yV_\xec\xbfY\xb9\xfde\xa9/\xea?\x03\xf5\x03l\xa6m\xcf\xbfk\xd3\\\x11\x15\xa7\x00@5XE\xbe/\x9b\xa7?g\x1148\x13\x16\x85\xbf\xda^Q\xa6\x0e\xce\x00@Q\x94\xfe\xddK%\x06@FA\x1d\xb5q\x92\xdd\xbf\xd3\x85\x8ae\xd3O\xf4?\xc2\x93\x92;\xa0\x8a\xc9?[\x14\xa5\x17\xc11\xe1?\xe1\xe5\x08\xcd\xeb\xfd\xc5?\x9e\x0f\xd0\xa9\xe2\x0e\xea?n\x99G\xcfp\xd4\xf1?\xd5)\xe9\x91u\xee\xc9?\x01f\xd8~\xc4]\xf1?\x8e\xf8\xad\xce\xab\t\xf4?^\x0b\xe2t\xd1:\xef\xbf\xbfa\xe5\xf5\xad\x10\xf4?1\xc4U+\x86F\xc4\xbf6\xe2i\xdb\xd8d\xee\xbf\xcc\xa6\x12\xad\xeeb\xf0\xbflw\x0f\x07\x07)\xf1\xbfm\xce\xef\xbe\x14w\x00@f\xa7\xafo\x8d\xe0\xfa?\xf6\x12\xa1\xf3{;\x02\xc0\xc9\x01\xe5\xc1\x95\xe2\xc4\xbf\xc8iw\x01\x91D\xe0?\x19\x10\xec06\xa7\xe4\xbf\xd6\xbd\xe4@\xf4\x86\xf6?\xff\xde\xa7(k\x85\xfe?\x0c\xf0Z\xe4\xf2\xaf\xf8?\xf4\xf5.`\xf4\x8c\xcc\xbf \x86z\x005B\xf1?&\xd3[\xab\x8be\x13@/\x158\x9eX\x91\xf9?s\xf7\x02\xd1R\xc9\xf5?#\xd9\x1fi\x8d\xd7\xcb\xbf\x1d\xc7\xa8\xdb\xba\xc5\xd2?3:\xdb\xa6\xc1\xb6\xc8\xbf\x9f\xcc\xe4\x01\x19\xb9\xea?\x99E\x881y9\xeb?\xbb\x9a\xbf\x94\x1fB\xb6\xbf\xdf\x90\x1f\xc9\x1e\x1b\xca?5\xa9+\x07\xf4\x1a\xf0?\x1c\x7f\x1d\xae\x04\r\xc2?\xf1\x8c\xa6v\xe8\xd9\xf4\xe4?\xe9\xb9\xe9\xf0\t\x98\xda?\xf2\xde\xf3U\x073\xe2?\x869\x15 \x92\xf3\x05@\xaf\x83\x96\xa4^\xe4\xc2\xbf\xd0\xd0\xe8\x07/w\xdb?\x1b\xb90\xc1\x07\x83\x04@a\x8b\xcf\xc4\x80\x98\xf9?\xac\xc5<\xd0,\x95\xf9?U\xee\x8ay=\x9e\xd7?\x9ec\xe9\xe7\xc7H\x06@\xb9\xdbC\xe9\xec\xb3\x14@\xcfg\xdb\xad\xc4\'\xfd?\xd9\xf8 \xbd\x89\xd4\xec?d\xe9L\xeb$1\xd2?\x9e\x05\x87\x03\x87\xfe\xf3\xbfP\xd6\x1f\xa7|p\xda\xbf\x99\x815m>a\xe7?\x0b\x16\xc9J\xed\xf8\x03@o\xe6\xb3\xb6L]\x02\xc0\x12\x7f\xe4\x94\xadE\xd7\xbf\xc0\x94\xfe\xb3\xdc*\xdb\xbf\x0fH\x1f\xe1\x88%\xf5?\x90G\x86\x90\xcf\x99\xfe\xbf\xa1\x04\xf8\xf3\x17\x18\xf2?sY\xdaC\xbf\x96\xd7\xbf|\xb3W!-,\xd5?\xca\xec/\xa5\xa26\xfe?e\xa3G\x1d\x92\xfd\xee?\xa7\xad\x0e\xb2JN\xfa\xbf;\x9d\xd4\xf1\xfe#\xe4?\x90\xaf?\x96\xdb\xde\xf5\xbf^=\x1bb\xb7]\xe8\xbf\xdbiX\xb9 )\xfd\xbf0\xd62e\xe4=\xf2\xbf\xc1\x86\xaa\x93\xd6_\xd6?p\x9c\xcc\x15\x9d\x0f\xf6?\xb5-\xacN\xd3\x98\xb6?\xad\xc8Do\xbf\xfb\x11@\x8c\x98\x8e:!W\x19@\xc6jt4\x03v\t@\xb3\x08\x063\xf8\xa1\xe0?\xbb\xdc\xd6?P\xb0\xe5?r\xf1\xfa\xbaC\x82\xce?\xce\x8fn&!\x01\xfc?\xb3\xdb`\xd4\x80G\xdb?\x17\xab5\xde\xf6\x88\xe8?\xcf\xb2\xe2;\x16\'\x10\xc0:\xd2-\x97\x8b\xa9\xe5?i\xdfa\xb7\xa2L\xfb\xbfo\x1e\xc6\xf7\xc37\xa1?\xba\xc5kED\xc5\x80?S\x0e\x08\xacc\xc3\xef\xbf\x80C\x7f\x0f\x0e\n\xfc?\x8d\xf1*\x87\x8f\xfd\x83?\xc4]Wd\xa77\xc9?\xec\x060iu\x06\x00\xc0m\x9b\xae\x17]M\x00\xc0\xa3>a\x13\\\x19\xfe\xbf$\xdc-5\xf8p\xf1\xbf\xaf\xeb\xb3\x03\xc1i\xf0?/\x03,\xb5\xe6 \xff\xbf\x0f}\xda\xe1\x9f\xf0\r\xc0\x19\xec\xcc\x11\xb6\x88\r\xc0\x18j%\xecA|\x01\xc0\x8a\xd8\xe7B\x827\xce\xbf\x9e\xfa\x18]\xae\xcd\xee?\x05\xf1\xd2\xcb\x9e\xe0\xf6?\xf4e9\x07\xf0-\xf9?\xa2\xff\x8a\xc8\x84|\xea?\xa94>u\xc2Tp?\x84\xbd=BDG\xf0?9a\x84;4\xb3\xe9?\x86\x7f\x81\xa9\x94C\xf4?Ur\x1a\xd8\xfa\xaa\xea?\xe5\x7f\x82\xb7\x95\xe4\x05\xc0\xb5\x11:/|\x8c\x02@\x16lCft\xf6\xfd\xbfm\x82|\xb2f\t\xd3?\xda\xdb\x7f\x01\xb8}\xed\xbf\xfe\xe5\xa7f\x171\x01@\x13o/\xb9cq\xf2?\x80\xdf\x958d\xeb\xfb\xbfx\x80\x88\xce3\xeb\xec\xbf>j.\xddR\xcb\x02\xc0L\xb6m\\\x83h\xf5\xbf\xab\x10\xef\x13\xc7\xc8\x01\xc0\xb7\xfc`~\xdd!\x01\xc0\xb9m\x98rts\xf7\xbf\xdf\x1e\xe6\x8a\xf0\xc9\x07\xc0\xd6L4?\xa9\xd7\xf2\xbfV\x9d:\xf7q\xc7\x11\xc0\x134%\x81\xc7(\x03\xc0\n\xb7G[PF\t\xc08}\x93\xf8D\xd4\xf0\xbfY*\xef\x8c\x1d\x10\xf0\xbf\xe2\x9d\x0b\xed\xc0\x9d\xd3\xbf\xf4\xa9\x88\xf8\xe5\xb0\xb1?\xbe\xc9\x94\xa0\x87Q\xf1?\xf1\x10#\xb6Y\xfe\xf6?\xe9R\xd9W\xd3I\xa7?_\xf9\xde\x18(n\xf7?\xc377gRU\xe5\xbf\xba8H\xacM\xe8\xd5?\xeb\x82l:\x8c\xba\xc5?\x02\xe6\xf4\x06\xec\xc8\xda\xbf\x0e\xd4\xb8\xd52\x18\xd9\xbfs\xf8\x91\xe2\xc2\xb1\xfd?\x81\xbf\xc0\x84\xbfB\xc9?\x8bQ\xe8n\xcc\xb5\xdd\xbfZ\xd6\x95\xa7\x8e\xd4\x01\xc0\x0c\x19Y]o\xd3\xe0\xbf\xf1\xa6]m\x8c\xf0\xf4\xbf\x91\xf8\xe1q\xd1\x1a\x14\xc0\xda\xe9K\x1a_Y\x04\xc0\x7f\xcdB\xc5f\x87\x01\xc0\n(\x9a\xb7\xea\xcd\xe4\xbf\x1b\xbf\x03\xf6\xa8d\x01\xc0\x05\xf7\xa5\xb7\xd5\x8f\t\xc0\xb5\xb5>\x15S|\xf5\xbf\x06\xd6\x90,\xe96\xf6\xbf\xd3\xd6\xef\xb8\x93\xe0\xf2\xbfv\x11\xe4[1|\xfc\xbfT\xb1\x165J\x10\xea?\x95\t`\xe0DJ\xe2\xbfH\xde;\xba\xf0B\x96\xbf\xb5\xe1\xc7\xc7\x8d\xc2\xde?\xee2o\x95\xf0\\\xeb\xbfm\xa4\xce~\xe5\xa0\xf0\xbfI\xb1\xcd!\x8d\xf5\xdd\xbfJ-\xb2\xdf>\x0e\xd4\xbf\xe8\xc9\'\xee$\xa9\xe7?\xf1YW\x92\x15\x0f\xfa?\xe8Aj\xab\x87g\x00@\x94ig1{D\x12@V\x8a\x9b\xb5\x9e\x03\xff?\xe4\xb4\x0cN\x81\x99\x00@Gu3\xd1\x98\xa3\x03\xc0X\xf8+0\xa4}\xf0\xbfq\xefOR\xe0\xff\x01\xc0\x0c\xfd\xf2\x93\xbc\x8e\t\xc0{Ua~x\x7f\xf7\xbf\xfa\t\xa9\xb6\xcd\xdc\n\xc0 \x90.\xb5\x19Z\xf5\xbf\x9dt\xd6#\x02\x1e\xdf?\xff\xcf\xb7\x8fV\xa0\x0b\xc0\x03\xa6Y\xa1\xaf$\xfa?\xeb\x95\xaa\xf2\x9fx\xf6?\x92bL\x88p\xc0\n@N\xc03\xf2\x9cb\xfd?+\xc5\x07\xbd\xc6R\xea?mJN\x97\xfa\xe3\x01\xc0.$\xba\xe8A\x9a\x8f\xbf\xe9!\xdc\xfe\x81G\xe6?\xcd\xf3"H~\xa0\xd0?\xf3\xee|\xe6jd\xeb\xbf\x10\xf4\tt\x98\xae\xf2\xbf\xd2\xf7\xd3\xff\xd0\x93\xee\xbf\xd02\xf7\xd8\x91\x1b\x04@\xdbO\xef\xe6\x1a\xa9\x0b@\xc6\xf0N~#\x16\x04@,Jum\rP\xfc\xbf\xd2\xd5n\x93\xca\x9e\xfa?\xe7h\xdd\x8b\xfb\xa9\xeb\xbf\xa0\x94\xcb\xf1\x8d\xc2\xe4?2\x018@\xd8\xd7\x0b\xc0\xd9\x14:^;`\xf7\xbfi\x94\xe5c\x0f[\xee\xbf\xf7j\x98\xe1O\xa4\x08\xc0R\xf4\x19\xba\xfd\x06\x0e\xc0\'\t\xd5\x9d\xed.\x04\xc0\xca\x95\xcf\x9a\xad\xaf\x0b\xc0>\x1fR\x15\x1c.\x07\xc0\xa8\x9e\xf2\xb3Di\x0b@\xd1\x92\xfa\xc8\xd0\\\x13@\x9e\x02\x1e\x01*\xcb\xca\xbf\x81\xa8|f\tI\xc8?\x10\x80\x94\xa9"g\x08@\xd8(}u\x14\x13\x02@%\x0f\x90\xc7\x85U\x04\xc0\xa7\xe6^<\xb7i\xec\xbff\xe9\xd6\xee\x95\xa3\xec\xbf\x13\xf7Z\xadx\xe2\xe5\xbf\x16]}\x07\x84\x1b\xf7?\xdb\xa24A\\\x15\xe4?#/(\x850\xed\xe5\xbf5w\xaf\xa0\x80r\x02@\x83AD\xcd/_\x04@\x08Q\x92\x14i\x06\xe9?\xe4\x0cn\x98\xe9j\x06\xc0\x08\x98}r\xdc\xdc\x05\xc00\x14S\xf4\xdc4\x0f\xc0\x99\x19\xe3~\xfaA\x03\xc0\xf2LD\xf5\x93\xfd\xf9\xbf4\xa2r\x17\x80\xb1\xfb\xbfM\xea\xe6\x1f\x89\xc0\x00\xc0\x9b\x89\x82\x8e9}\x13\xc0]\xd2\x97\xd4\x1bG\x06\xc0\xcd\x1e6\x90\xbc\x81\x04\xc0\xe5\xf41w\xe5"\xe5?\xff\xfb\xac\x86\x8a\xa6\x03@\xfb\x95\xdfmPl\x03@O\x94\xf3\xd2\xce\xfa\xf4?\x91\xbe\xbb\x18@A\x03@BS\x91J\xe6\x93\x0c@\x02\x84\xd8\xdf\xd8J\xc3\xbf\x8a}@\xeaR\x9c\x01@\xd3>\x19\xe3\xf0\x0f\x07\xc0\x9d\x8a#D\xac?\xe0\xbf\x9e\xa2\x1dTc:\xac?\xdarL\x0fo#\xde?)#\xbeR\xa8\x8e\xe4\xbf\x08\xb5f\xfd\x08\x99\xb7?\xb7c\x86\xc9g\xe1\xd6?\xee\xa2\x81\x8e\x14<\x02@v\xaeh\xedjG\x12@\xf2\x8dx\x0c3d\xd6?\xeaaO\x86\x03\xc9\x04\xc0\x1c\x9c3\xadi\t\x13\xc0\x8e\x19\x96\\b\x13\xfe\xbf\xd8\xb2\x92\xf4K\x01\x15\xc0-\x1e\',_:\x10\xc0\xf3T;\xdf-\xf2\x04\xc0\x14,=\x89d\xb8\x1f\xc0\x06wZ\xcd\xb7\xcd\x1c\xc0\xe9\x96@ \xb8!\x0e\xc0\x15\x91\xf9\xd3<\xa2\xc4?\x9b\x95\xdd\x84E5\x06@\x96\tE\xc0\xf2\xf8\x10@%\xe8~\x86\x88\xd7\xfa?@\xf7\r0H~\xf8?\xeb\x88\x1e)\xb53\xd6\xbf\x10\xfd$SH\x99\x01@=;\x8a\xb9\xa7\xd6\xcf?\t\x02\x98*\xa8\xbf\xe8\xbf<"T\x8a\xe00\xb2\xbf\xcb{\xe6\x15?\x9d\xd3\xf4?\xb8dE7\x14\xcb\xde?\xf45\x89gZl\x03@\xab#\x0559\xa0\xad\xbfj\'\xfd\xd5\x94^\x07@\xf26\xc0\xa2\xd6[\x00@\xa6\x9c\xeaT$\xc3\xf1?\xbd5\xee\xa7\xcb@\xea?\x18\xaa\x908B\xdd\xeb?\xfe\xc2r\xa2R\xaf\x9a\xbf\x081\xd1\x928\xfc\x04@\xcb\xaaD\xcd\xe9\xeb\xf9?(\x16;5_u\x03@m\xc9~\x8b\xe0\xc5\xf9\xbf\x90\x85\x1d\x9a\xdal\xce\xbf\xa1\xe8\xac\x07\xb0\x9e\xea?\xea*C\x97o8\xd1?\xb5l&\xe1\x99\xc8\x01@H\x84\xd5\x086J\xd7?=\x9e\xed\x08+\x95\xe1\xbf\xdao@\x94\x18U\xeb?\xcd\xd7\xc1\xd8(\x0e\xdb?P\x15|}f\xa2\xcf?\xce\xde(*B\xe6\xe9\xbf\xc6\x81\x86\x98\x86\x07\xeb\xbfU\x1b\xb3=\xdcn\xe6\xbf\xa9\xfc\xb2\xc0\x11L\xde?\xfb\xefFV\t\'\xf9?^!\xfe#\xc2\xdb\xe3\xbfL\x91\x05g\xb2y\x03@Ea\xba\xe4.\x10\xe7?"Ue\xd40c\xf4?\xa8\x80X\xe7r\xc9\xeb\xbfb-M\xec\xc0\t\xf2\xbf\xa1\xf3"\xa0\xee \xf3?\x07\x91O\x86\x9c\xa5\xd9?\xa0\x06\x92\xd7\x0fX\xfd?\x82\x16\x81R-J\x07@\xbb\xf3$B\xcc\x02\x02@\xe6:\xc5\x9a\xac\xfc\xeb\xbf.b\xab\xdd\x1b\xad\xe4\xbf\xfa\x98\xbc\xa0,|\xe6\xbf?\xd4?\xac&p\xe3?9\xe3:\xde;\xe9\xe3\xbf\x9b[\xc7\xf2\x9f\xa5\xb2\xbf\x02\xb5\x89\x11\xfe\xc2\xce?[\x1b\x9blo\x8a\xa1\xbf5\xa2\x89\xa9a"\xbc\xbfIDn\xd6\x1a\n\xd0\xbfLy\xa9z\xd1\xe9\xf4?\xa7{\xb5\x0b:}\xda?\xb1\x0e\xdf\x95{\x03\xfe?5\x8a\x0c\xa1\x0f\x9f\xfb?\x87\xc8\xb9\xa1p\x0b\xaa\xbf\xd3\xdb\x0b~\xbd\xbe\xe2?\x9d\xc8X\x07Y\xd6\xf0?v\x84\x9f\x1b\x05\xe8\xf9?\xc9.Px\xc9Z\x01@\xc3\x1c;\xe9\xce\xcf\xd5?\xd3\xe5L\xcc\x91\x13\xd6\xbf\x0e\xa5\xc63T2\xf6?K\x11\xe6\xba\xe6\x89\xf0?>\xc8|\xa6JG\xed\xbf|^\xc3\xeb\xe8\xe7\xbf\xbf\xb6\x9dO\x88\xfeu\x03\xc0V\xaf\xcb\xc3\xc5\xf3\x01\xc0\x99!J\xd6L\x1b\xab\xbf\xcc\xda\xbc\xa5=/\xfc\xbf5\x93f\xf1\r*\xdd\xbf\x8cK\xe7\xefm\xed\xac\xbf\x07\xe3Z\xc0\xad\xb5\xe2\xbf:\xae\xc9\xa9o\x0e\xe2\xbf4\xa9\xc2\x0eQ \\\xbf\xfe\xba\xca\xd6\x10"\xe1?\x0c\x03\x97X8`\xf3\xbf\xbd\x8ePaj\x9c\xf0?\x04hl.\x95\x00\xb4\xbfl\xc8zp\xe9\xb5\xcb?\xc4\xdb6\xb0\x13\xc3\xf9?q\xd8[{\xb3\xeb\xf3?\x1fu\xb6[\xd8\t\xf7?h\xac\x1b\x01\xf2\xaf\xeb\xbf\xf1\xf8;\xdch?\xe8?5\xbd\xa2\xcb\x14\xc2\x12@"\xd0\xe3\xd4\xbb\xe3\xf3?Xv\xd6\x19-P\xc0?sY%xml\xd3?*\xc6\xac\x19\x91\xe6\xe8\xbf\x1b\x7f\xf0G\x8e\xb9\xfd?\x81\xedK\xe7\x04a\xe1?\xd1\xd3\x05\x9e\xc94\xd4?\xe9\xd3v\xf9c\x8b\xec?\xd4,\xcfX\xf9\xb8\xe4?\x0f \x1a\x92\xd0\xbd\x05\xc0B\xf6\x82\xc7\xae\xe8\xe0?J)\n\xadG\x9e\xce\xbfFA\xb5_!\xfc\xca\xbfm$\xbd2\x85\xbe\xd6\xbf\xb0\x16\x10\t\x01N\xea?\xd9K\x98\xf7\xc5z\xf2?F\xfa\xa3\x1c\xafJ\xe3\xbf\x9c6m#%\xb7\xd9\xbfj,\xe1\x11\r\xa1\xeb?C\xa4\x0eJ\xc7v\xeb?\xdc9[\xfc\xcfP\xdb\xbf]`7F%\xc7\xf2?\xe6\x96z]\xd3\xfa\xe8?\xca\xe4\xe2\'\x0b\x93\xe3?\xf1\xd8\x9c\xed\x0f\xe8\x07@\xd161\xc7\xd8\xc8\xe5?_\xab~\x0e\xd8_\xef?=\x0e|\x83\x84\xfe\x00@F\xc1\xc1\x1e\x1f\x08\xed?\x83\xb2\xb1\xa5$\\\x00@\xe8f\x8d/\'\x15\xd0\xfc?\x9e}\x8c\x8b\xb9\x9a\xaa?\xd20\xc5\xc6\x99\xcd\xec\xbf\xffc\xd4[\xc0\xc4\xaf?C\\r\xa5\xcbZ\xc9\xbf\xdb\x01<\xcc\xe0P\xfd?\xba\xb1\x85\xe4\xdb$\x01@5u\x9e\xcc;\xb5\xe7?\x15R\x06>S\xbd\xf6?\x1a\xb3y\x86\r\xc7\xfd?\x13\xb6\xf4\xc0\x12\xee\t@\x07\x1a\xd3\xc0\xf6\xe8\x92\xbf\x1b\x90\xb9\x94\xfeB\xe5?\x7f\x08b\x97\xd8M\x02@\xb8\xef\xb2\xdc\'\x03\xe0?w\x84\x83->D\xd4?d\x96\xf3\xd7\xb5\t\xc2\xbf\xc10\x01w\xe4\x91\xef\xbf\x96\x88\x04j$l\xe5\xbf]\xc26\x03dG\xeb\xbf\x9a\xe1^\xa1\xff\x01\xf2\xbf\xa5\x0b6\x9c9\xb5\xc0?\xa4\xca\xc5\xa5\x14m\xe1?\xa1wf_U\xd5\xb6?_\xa3\x05\x86x\x9c\xd9?5\x8d\xc1]%v\xf4\xbfv\xf8_\n\xd2\x07\xde\xbf\xd8\xbf$L\x7f\xd9\xc1\xa0\x00\xc0\x96\xf0m\x8d0\xb6\x00@_7\xe3\x82\x87\x8f\t\xc0\xc23\xb9M+{\x04\xc0\xee\xb7\xdc1\xac\xb5\xff?\xa8\xeff\xa8\xa1X\xd1\xbfLC(8\xee\x97\xbd?\xc7m\xcb\xef\xbc\xf4\x1c@U\xfa_p\x8bV\x00@`\xa3\xb5\xa5u\xc9\x11@\xf42\xe2#\xc0t\x17\xc0\xaeM\x18WT\xea\xf8\xbf5\x98\xcb\x01\r* @\xb9\xe5\x85\xc7L*\x00@\xdc!\xa5a\xd4\xf9\r@d\x01*6\xa4\x8d\r\xc0\xac\x007\xfc\xa1\xfe\x0b\xc0zj\xc0l\xa55\xdb?\xb5\xd4\x9d\xde\x84\xd0b?s\xff:9\xf3j\x15\xc0\x96\x1c\x0b\xd2\'\x1c\xf2?F\x06w\xc6\x02\x98\x1a@F\x04u%8\x95\xfa?\xa1\xbd\xa3<\xea\xc2\x01\xc0K\x9a\x8d\xe2\x8c\x0f\t\xc0]G\x16\x9d\xb5\x14\x1b\xc0\xad@\xc1v\xa3\xec\xee?\xe1\xcb\x82[\x8f\xb0\xf8?h\x7f\xb0H\x12\xca\x0f@\xab\x08\x0b][\xbe\n@i\xaa\xd8\xce\xb6r\x16@"\t\x8a\xdfA\x91\xf9\xbf\xdd\x1f\xa8\xba\x9dM\x1b\xc0\xb1\x97\xb2W\xd1\xd3\x12@\\\xaf\xa6m\x99\x87\xfc\xbfO\x8c\xd2\xe3\xae#\xbf?\x81n\xeb\x04\xf7\xba\xe1?\xc6\xee\xd9\xb8\xc01\xf9\xbf\xd5\x1f\xe7\xa8\xfdY\t\xc0\x8f\x87\x04\x1bZ\x9b\xfb?\xe7\xf6\xf7\xa1]\xc7\xf8\xbf\x00\xffCh\xb0\x9f\xe7?\xf1\x87Q\xc9m\\\x17@\xe4C\x82\xe1\x80\t\x05\xc0\x7f\xde\x92z{{\x0b@W\xe6\xc2\xdby^\x03\xc0\xcc\xf0\n}\xdbx\x05\xc0=\xa6\xf3\xa9\xfdE\xfd\xbf4q\x85=.\xbe\x05\xc0\xc2\xa0\x19\x10\xdcl\x08@\x14\xaa4\xce\x14\x86\xfa\xbf\xaf\xcc5G\xf0\xd5\x1e\xc0P.$^\x94\x9d\x11\xc0\xc8\xaa\xca(\x8f{\x0f\xc0:q\xad\x1b\xf9Q\x01@}\xde\xf6\xa3\x1a\x1b\xea?\xeb\x19\xc0J\x11\xb2\xb8\xbf\x92\x8f8\xfb\xdf\xe6\x1b\xc0q*\x02e*\xa1\x06@\xd4\xa7\xc5F\\\x18\x02\xc0\xe96\x10\xe4\xb4D\x0f\xc0N\xfc\xc8\xfd:\xf6\xdb\xbf' +tbg1 +(g2 +(I0 +tS'b' +tRp7 +(I1 +(I10 +I1 +tg5 +I00 +S'\xad\xe6(\x12\xef\xd0\xaa\xbf\x7f\xbdB\xa0\x82\x8c\x1f@\xe6\xd7\xef\x00q\xbc\xf1?\x1d\xab\xfa\x9a;\xe9\xb0?E\x0b24\x10)\xf9?\xf9P\x86\xf7\x00\xd0\x10@\xde\x89\xf0\xf1\x8c\xa5\x0b@\x18\xeb\xf4N\xf1\xaa\xf3?\xd64\xd7\xc7\xf2F\x00\xc0N\n\xdf\x08\x14x)@' +tbg1 +(g2 +(I0 +tS'b' +tRp8 +(I1 +(I10 +I1 +tg5 +I00 +S'\xcd(\xef\xf6\xae`\x0c\xc0\xd83\x80\x90`\x9e0\xc0\xb9\xdc1\x80X^\x1a\xc0\xcc).\x98Y\xe0\x11\xc0myx\x94\xf6\xba&\xc0\xde3M%\xd2\x8f$\xc0\xacQx\x89\x06\xc1%\xc0\xfb\xaa \xec\x9en\xf3\xbf\x1b\x8b\xf0H/\xf0 \xc0\x90\xf7\x0c$\xc3\xa9\x94?' +tbt. \ No newline at end of file diff --git a/samples/Pickle/random.p b/samples/Pickle/random.p new file mode 100644 index 00000000..ff3ab064 --- /dev/null +++ b/samples/Pickle/random.p @@ -0,0 +1,36 @@ +cnumpy.core.multiarray +_reconstruct +p0 +(cnumpy +ndarray +p1 +(I0 +tp2 +S'b' +p3 +tp4 +Rp5 +(I1 +(I100 +tp6 +cnumpy +dtype +p7 +(S'f8' +p8 +I0 +I1 +tp9 +Rp10 +(I3 +S'<' +p11 +NNNI-1 +I-1 +I0 +tp12 +bI00 +S'\x1cc~\xc3\xa7r\xed?\xe5${\xec\xd6\xcd\xed?\x809-\x02%\xa9\xa2?F\x0f\x1d\xe8\xef\xa3\xdb?\xfe\xd1\x0c\xb7\x83\x13\xef?\xe0\xfcO\xe5?Y\x97\xcb"\xa7%\xe7?\x9b\x8d\x16\xda\x97\xe1\xeb?T\x14\xbd\xfe|\xf4\xd0?\x18\xdfH\xc56A\xba?\x90\xc5\xfb\xc63:\xe5?\xbf%\xad\xe5.\x86\xe9?\xc6\x0c\xa9\x8c\xd7\xd5\xe9?\xf8\xafc:\x84g\xd7?\xf8\x98\x879\x9a\x16\xee?\xba\xdf\x88\x8az\x06\xe2?~g-\xeb\xc8\xed\xee?\x08A\xcc\x8c\xe7>\xef?\xceD\xc4ar\n\xdc?\x92w\xbb\xa34\xb1\xd9?\x88\xb9\xc0{u\xa3\xdc?d\x1a\xad\xe8\xf3\x14\xdd?\x9c\x95\x13\x96o?\xe5?\x9cT[\xb8r\xa9\xe5?0\xf1\x01+(\x0f\xdf?W\xbdjqD&\xed?c\xcf1-W\xe6\xe1?\xce\xbc\xe1{zW\xd9?"d\xcf\xd7\x13\x93\xde?\xf2P\xf6\xc3\xd6\x87\xd5?\xc2\x0e\x92q\x89\xda\xd5?\xc0:B\x1bb\x00\x9e?Y\xafHmr\x80\xe3?\x1co\xa7\xba\xa5/\xe4?\xa2\xbc \x9c\xddB\xd0?\xd2L\x935\x17\'\xee?|\x8cM\xeb\x97=\xe8?\x0f0xN*V\xea?\x81p\xe3,!\xf2\xee?\xf5w\xed\x10\x9eu\xe0?\xc5\x16\\LR\xb5\xe1?\xbeh\x04\xa4g\xe5\xd6?\xea\xc0\xb9\xf0\xb2\xd8\xd9?\xac\x9c\xeep\x1a\xa9\xd8?@W9hp\x16\xb1?\xc4\xedS\xd6V\xa1\xed?\x93,!\xdc\xa1\x8b\xe9?\x80)\xb1\xa6[T\xc9?\xac\xbc\x8a\xd21\xdd\xc5?\x80\x9c.g\xf1\xf2\xc6?\tLu\xc3\xf7U\xe9?n\'\x9f?\xbe\xf9\xe9?\xa3\xe7K\x1c\xb3\xa9\xea?X\x98\x1a\xcb\xa0\xcd\xd3? \xb6O\x9c\x1bQ\xc2?"\x89[\xad1\x8e\xea?\xdd\x8f\xa0P\xc7\x0e\xe2?c\xa4j\xa3\r\xac\xef?\xba\xb6\x0f\x8emo\xef?\xe0\xed\xa0\xc5R9\xab?U\xf1\xcd\xcf\xbf\xcb\xea?\x89*#\x06\xb0|\xe8?d\xa3\xad\xcd\xe0]\xcc?\xb5\xe78\xa7w\x13\xe3?\xce\x99\x98\xefS%\xd7?\xb1\xf8\xd8\x8eI\x13\xef?\x91`]\x93\xd4 \xec?\xc0\rPz\xee\xbd\xe7?7\x92\xd4\x0fP\x8f\xe1?L\x0f\xaf\xa9\xc3\x19\xdd?\\}\x15X\x870\xc7? ~ t\xcat\xb1?@?\xec\x97u\x05\xe9?F\x8d:\xac4D\xdb?qY\xe1Qk|\xe2? \xaf\xeaj\xa5\x04\xab?J[\x1al;\x00\xd5?\x00^{n\xc2\xf1S?\xb0\x82dN\xda\xb5\xc7?\xe0 \x07\xe1?R\x92?\xc4\r\x08+\x99J\xe1?I|&U\x19\xc4\xe1?|*\xf9\xebq\x7f\xed?\xbc*\x93\x89k\xab\xe9?oiL\x90;\xe0\xef?\x96\xcd\x9b\xff\x18g\xdc?pt\xb4\xa5\x9c\xa2\xbc?Nu]w*\xb7\xd2?\x88k\xac\xd0\xfd\xbf\xd5?Q\x02$b\xfeH\xea?5\xf6\t\xb6K\x1a\xee?' +p13 +tp14 +b. \ No newline at end of file diff --git a/samples/Pickle/save.p b/samples/Pickle/save.p new file mode 100644 index 00000000..13889c0c --- /dev/null +++ b/samples/Pickle/save.p @@ -0,0 +1,10 @@ +(dp0 +S'lion' +p1 +S'yellow' +p2 +sS'kitty' +p3 +S'red' +p4 +s. \ No newline at end of file From 040af5dad204b01cd312ac0434e90b90bc753e77 Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Fri, 25 Sep 2015 19:14:40 +0200 Subject: [PATCH 703/875] Clarify that only nonprimary extensions should be sorted --- lib/linguist/languages.yml | 3 ++- test/test_pedantic.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 8409337b..0de559ee 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -8,7 +8,8 @@ # Use "text" if a mode does not exist. # wrap - Boolean wrap to enable line wrapping (default: false) # extensions - An Array of associated extensions (the first one is -# considered the primary extension) +# considered the primary extension, the others should be +# listed alphabetically) # interpreters - An Array of associated interpreters # searchable - Boolean flag to enable searching (defaults to true) # search_term - Deprecated: Some languages maybe indexed under a diff --git a/test/test_pedantic.rb b/test/test_pedantic.rb index 2d0372cc..d34f292e 100644 --- a/test/test_pedantic.rb +++ b/test/test_pedantic.rb @@ -9,7 +9,7 @@ class TestPedantic < Minitest::Test assert_sorted LANGUAGES.keys end - def test_extensions_are_sorted + def test_nonprimary_extensions_are_sorted LANGUAGES.each do |name, language| extensions = language['extensions'] assert_sorted extensions[1..-1].map(&:downcase) if extensions && extensions.size > 1 From 41911d6921d7277c6606b6054dcf12ed5a599cd9 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 25 Sep 2015 08:26:27 -0700 Subject: [PATCH 704/875] git-linguist: Properly handle $GIT_DIR from git --- bin/git-linguist | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/bin/git-linguist b/bin/git-linguist index 03408ee5..170406de 100755 --- a/bin/git-linguist +++ b/bin/git-linguist @@ -96,24 +96,18 @@ end def git_linguist(args) incremental = true commit = nil - git_dir = nil parser = OptionParser.new do |opts| opts.banner = "Usage: git-linguist [OPTIONS] stats|breakdown|dump-cache|clear|disable" opts.on("-f", "--force", "Force a full rescan") { incremental = false } - opts.on("--git-dir=DIR", "Path to the git repository") { |v| git_dir = v } opts.on("--commit=COMMIT", "Commit to index") { |v| commit = v} end parser.parse!(args) - git_dir ||= begin - pwd = Dir.pwd - dotgit = File.join(pwd, ".git") - File.directory?(dotgit) ? dotgit : pwd - end - + git_dir = `git rev-parse --git-dir`.strip + raise "git-linguist must be ran in a Git repository" unless $?.success? wrapper = GitLinguist.new(git_dir, commit, incremental) case args.pop From 41d438b47e8ee83a66705f6c04106662e6ea922f Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 25 Sep 2015 08:35:34 -0700 Subject: [PATCH 705/875] repository: Do not attempt to scan large repos --- lib/linguist/repository.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 01e595da..51040734 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -126,12 +126,13 @@ module Linguist end protected + MAX_TREE_SIZE = 100_000 def compute_stats(old_commit_oid, cache = nil) + return {} if current_tree.count_recursive(MAX_TREE_SIZE) >= MAX_TREE_SIZE + old_tree = old_commit_oid && Rugged::Commit.lookup(repository, old_commit_oid).tree - read_index - diff = Rugged::Tree.diff(repository, old_tree, current_tree) # Clear file map and fetch full diff if any .gitattributes files are changed From 7c759d4d293412d23de180e5fd54a4192ac4382f Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Mon, 28 Sep 2015 01:45:04 -0700 Subject: [PATCH 706/875] git-linguist: Do not write cache if repo is gone --- bin/git-linguist | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/bin/git-linguist b/bin/git-linguist index 170406de..9541cf82 100755 --- a/bin/git-linguist +++ b/bin/git-linguist @@ -71,17 +71,20 @@ class GitLinguist end def write_cache(object) - tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil) + return unless File.directory? @repo_path - File.open(tmp_path, "wb") do |f| - marshal = Marshal.dump(object) - f.write(Zlib::Deflate.deflate(marshal)) + begin + tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil) + File.open(tmp_path, "wb") do |f| + marshal = Marshal.dump(object) + f.write(Zlib::Deflate.deflate(marshal)) + end + + File.rename(tmp_path, cache_file) + rescue => e + (File.unlink(tmp_path) rescue nil) + raise e end - - File.rename(tmp_path, cache_file) - tmp_path = nil - ensure - (File.unlink(tmp_path) rescue nil) if tmp_path end def load_cache From d8e3bec499a16eefc0f191db463b291d10204c9c Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 25 Sep 2015 08:36:20 -0700 Subject: [PATCH 707/875] Bump version --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 60bc59e0..3de24f3d 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.6.2" + VERSION = "4.6.3" end From 3426165621a5ff0261b10f70947841117fe82dbf Mon Sep 17 00:00:00 2001 From: wizawu Date: Wed, 30 Sep 2015 13:45:38 +0800 Subject: [PATCH 708/875] Add a TypeScript sample with .tsx extension --- samples/TypeScript/app.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 samples/TypeScript/app.tsx diff --git a/samples/TypeScript/app.tsx b/samples/TypeScript/app.tsx new file mode 100644 index 00000000..43155ceb --- /dev/null +++ b/samples/TypeScript/app.tsx @@ -0,0 +1,9 @@ +import * as React from 'react'; + +export class App extends React.Component { + + render() { + return + + + + + + + + relativeNode + + + + + + + + RelativeTo="Size" + RelativeTo="ParentSize" + RelativeTo="Keyboard" + RelativeTo="PositionChange" + RelativeNode="relativeNode" + + + + + + + + + + + + + + + + + + + diff --git a/samples/XML/MyApp.ux b/samples/XML/MyApp.ux new file mode 100644 index 00000000..0e7b0088 --- /dev/null +++ b/samples/XML/MyApp.ux @@ -0,0 +1,11 @@ + + + + + + + This is an example of EdgeNavigator! + + + + From ab69fd01acfe0a5802a6a4b8d331d0ba6c7caed9 Mon Sep 17 00:00:00 2001 From: Eyal Dechter Date: Mon, 22 Feb 2016 15:03:26 -0500 Subject: [PATCH 860/875] Add .yap ext and yap interpreter for Prolog lang --- lib/linguist/languages.yml | 2 + samples/Prolog/queues.yap | 280 +++++++++++++++++++++++++++++++++++++ 2 files changed, 282 insertions(+) create mode 100644 samples/Prolog/queues.yap diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index b497d88b..aae87ce8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2751,8 +2751,10 @@ Prolog: - .pl - .pro - .prolog + - .yap interpreters: - swipl + - yap tm_scope: source.prolog ace_mode: prolog diff --git a/samples/Prolog/queues.yap b/samples/Prolog/queues.yap new file mode 100644 index 00000000..b464152e --- /dev/null +++ b/samples/Prolog/queues.yap @@ -0,0 +1,280 @@ +% This file has been included as an YAP library by Vitor Santos Costa, 1999 + +% File : QUEUES.PL +% Author : R.A.O'Keefe +% Updated: Friday November 18th, 1983, 8:09:31 pm +% Purpose: define queue operations +% Needs : lib(lists) for append/3. + +/** @defgroup Queues Queues +@ingroup library +@{ + +The following queue manipulation routines are available once +included with the `use_module(library(queues))` command. Queues are +implemented with difference lists. + +*/ + +/** + + @pred make_queue(+ _Queue_) + + +Creates a new empty queue. It should only be used to create a new queue. + + +*/ + + +/** @pred empty_queue(+ _Queue_) + + +Tests whether the queue is empty. + + +*/ +/** @pred head_queue(+ _Queue_, ? _Head_) + + +Unifies Head with the first element of the queue. + + +*/ +/** @pred join_queue(+ _Element_, + _OldQueue_, - _NewQueue_) + + +Adds the new element at the end of the queue. + + +*/ +/** @pred jump_queue(+ _Element_, + _OldQueue_, - _NewQueue_) + + +Adds the new element at the front of the list. + + +*/ +/** @pred length_queue(+ _Queue_, - _Length_) + + +Counts the number of elements currently in the queue. + + +*/ +/** @pred list_join_queue(+ _List_, + _OldQueue_, - _NewQueue_) + + +Ads the new elements at the end of the queue. + + +*/ +/** @pred list_jump_queue(+ _List_, + _OldQueue_, + _NewQueue_) + + +Adds all the elements of _List_ at the front of the queue. + + +*/ +/** @pred list_to_queue(+ _List_, - _Queue_) + + +Creates a new queue with the same elements as _List._ + + +*/ +/** @pred queue_to_list(+ _Queue_, - _List_) + + +Creates a new list with the same elements as _Queue_. + + + + + */ +/** @pred serve_queue(+ _OldQueue_, + _Head_, - _NewQueue_) + + +Removes the first element of the queue for service. + + +*/ +:- module(queues, [ + make_queue/1, % create empty queue + join_queue/3, % add element to end of queue + list_join_queue/3, % add many elements to end of queue + jump_queue/3, % add element to front of queue + list_jump_queue/3, % add many elements to front of queue + head_queue/2, % look at first element of queue + serve_queue/3, % remove first element of queue + length_queue/2, % count elements of queue + empty_queue/1, % test whether queue is empty + list_to_queue/2, % convert list to queue + queue_to_list/2 % convert queue to list + ]). + +:- use_module(library(lists), [append/3]). + +/* +:- mode + make_queue(-), + join_queue(+, +, -), + list_join_queue(+, +, -), + jump_queue(+, +, -), + list_jump_queue(+, +, -), + head_queue(+, ?), + serve_queue(+, ?, -), + length_queue(+, ?), + length_queue(+, +, +, -), + empty_queue(+), + list_to_queue(+, -), + queue_to_list(+, -), + queue_to_list(+, +, -). +*/ + +/* In this package, a queue is represented as a term Front-Back, where + Front is a list and Back is a tail of that list, and is normally a + variable. join_queue will only work when the Back is a variable, + the other routines will accept any tail. The elements of the queue + are the list difference, that is, all the elements starting at Front + and stopping at Back. Examples: + + [a,b,c,d,e|Z]-Z has elements a,b,c,d,e + [a,b,c,d,e]-[d,e] has elements a,b,c + Z-Z has no elements + [1,2,3]-[1,2,3] has no elements +*/ + +% make_queue(Queue) +% creates a new empty queue. It will also match empty queues, but +% because Prolog doesn't do the occurs check, it will also match +% other queues, creating circular lists. So this should ONLY be +% used to make new queues. + +make_queue(X-X). + + + +% join_queue(Element, OldQueue, NewQueue) +% adds the new element at the end of the queue. The old queue is +% side-effected, so you *can't* do +% join_queue(1, OldQ, NewQ1), +% join_queue(2, OldQ, NewQ2). +% There isn't any easy way of doing that, sensible though it might +% be. You *can* do +% join_queue(1, OldQ, MidQ), +% join_queue(2, MidQ, NewQ). +% See list_join_queue. + +join_queue(Element, Front-[Element|Back], Front-Back). + + + +% list_join_queue(List, OldQueue, NewQueue) +% adds the new elements at the end of the queue. The elements are +% added in the same order that they appear in the list, e.g. +% list_join_queue([y,z], [a,b,c|M]-M, [a,b,c,y,z|N]-N). + +list_join_queue(List, Front-OldBack, Front-NewBack) :- + append(List, OldBack, NewBack). + + + +% jump_queue(Element, OldQueue, NewQueue) +% adds the new element at the front of the list. Unlike join_queue, +% jump_queue(1, OldQ, NewQ1), +% jump_queue(2, OldQ, NewQ2) +% *does* work, though if you add things at the end of NewQ1 they +% will also show up in NewQ2. Note that +% jump_queue(1, OldQ, MidQ), +% jump_queue(2, MidQ, NewQ) +% makes NewQ start 2, 1, ... + +jump_queue(Element, Front-Back, [Element|Front]-Back). + + + +% list_jump_queue(List, OldQueue, NewQueue) +% adds all the elements of List at the front of the queue. There are +% two ways we might do this. We could add all the elements one at a +% time, so that they would appear at the beginning of the queue in the +% opposite order to the order they had in the list, or we could add +% them in one lump, so that they have the same order in the queue as +% in the list. As you can easily add the elements one at a time if +% that is what you want, I have chosen the latter. + +list_jump_queue(List, OldFront-Back, NewFront-Back) :- + append(List, OldFront, NewFront). +% reverse(List, OldFront, NewFront). % for the other definition + + + +% head_queue(Queue, Head) +% unifies Head with the first element of the queue. The tricky part +% is that we might be at the end of a queue: Back-Back, with Back a +% variable, and in that case this predicate should not succeed, as we +% don't know what that element is or whether it exists yet. + +head_queue(Front-Back, Head) :- + Front \== Back, % the queue is not empty + Front = [Head|_]. + + + +% serve_queue(OldQueue, Head, NewQueue) +% removes the first element of the queue for service. + +serve_queue(OldFront-Back, Head, NewFront-Back) :- + OldFront \== Back, + OldFront = [Head|NewFront]. + + + +% empty_queue(Queue) +% tests whether the queue is empty. If the back of a queue were +% guaranteed to be a variable, we could have +% empty_queue(Front-Back) :- var(Front). +% but I don't see why you shouldn't be able to treat difference +% lists as queues if you want to. + +empty_queue(Front-Back) :- + Front == Back. + + + +% length_queue(Queue, Length) +% counts the number of elements currently in the queue. Note that +% we have to be careful in checking for the end of the list, we +% can't test for [] the way length(List) does. + +length_queue(Front-Back, Length) :- + length_queue(Front, Back, 0, N), + Length = N. + +length_queue(Front, Back, N, N) :- + Front == Back, !. +length_queue([_|Front], Back, K, N) :- + L is K+1, + length_queue(Front, Back, L, N). + + + +% list_to_queue(List, Queue) +% creates a new queue with the same elements as List. + +list_to_queue(List, Front-Back) :- + append(List, Back, Front). + + + +% queue_to_list(Queue, List) +% creates a new list with the same elements as Queue. + +queue_to_list(Front-Back, List) :- + queue_to_list(Front, Back, List). + +queue_to_list(Front, Back, Ans) :- + Front == Back, !, Ans = []. +queue_to_list([Head|Front], Back, [Head|Tail]) :- + queue_to_list(Front, Back, Tail). + From bfa7eced4469926fe2fe967f32dedb0eeddb03fc Mon Sep 17 00:00:00 2001 From: William Claude Tumeo Date: Fri, 26 Feb 2016 00:31:58 -0300 Subject: [PATCH 861/875] Try fix "Ren'Py being detected as Python" - Remove Ren'Py from Python group - Add .rpy to Python + sample --- lib/linguist/heuristics.rb | 8 ++++++ lib/linguist/languages.yml | 2 +- samples/Python/simpleclient.rpy | 49 +++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 samples/Python/simpleclient.rpy diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 0806ce1f..af6c5e83 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -321,6 +321,14 @@ module Linguist end end + disambiguate ".rpy" do |data| + if /(^(import|from)[\s\S])/m.match(data) + Language["Python"] + else + Language["Ren'Py"] + end + end + disambiguate ".rs" do |data| if /^(use |fn |mod |pub |macro_rules|impl|#!?\[)/.match(data) Language["Rust"] diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e9c63ef1..4a348bc2 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2831,6 +2831,7 @@ Python: - .pyp - .pyt - .pyw + - .rpy - .tac - .wsgi - .xpy @@ -3004,7 +3005,6 @@ Redcode: Ren'Py: type: programming - group: Python aliases: - renpy color: "#ff7f7f" diff --git a/samples/Python/simpleclient.rpy b/samples/Python/simpleclient.rpy new file mode 100644 index 00000000..ceb5f991 --- /dev/null +++ b/samples/Python/simpleclient.rpy @@ -0,0 +1,49 @@ + +# Copyright (c) Twisted Matrix Laboratories. +# See LICENSE for details. + + +""" +An example client. Run simpleserv.py first before running this. +""" + +from twisted.internet import reactor, protocol + + +# a client protocol + +class EchoClient(protocol.Protocol): + """Once connected, send a message, then print the result.""" + + def connectionMade(self): + self.transport.write("hello, world!") + + def dataReceived(self, data): + "As soon as any data is received, write it back." + print "Server said:", data + self.transport.loseConnection() + + def connectionLost(self, reason): + print "connection lost" + +class EchoFactory(protocol.ClientFactory): + protocol = EchoClient + + def clientConnectionFailed(self, connector, reason): + print "Connection failed - goodbye!" + reactor.stop() + + def clientConnectionLost(self, connector, reason): + print "Connection lost - goodbye!" + reactor.stop() + + +# this connects the protocol to a server running on port 8000 +def main(): + f = EchoFactory() + reactor.connectTCP("localhost", 8000, f) + reactor.run() + +# this only runs if the module was *not* imported +if __name__ == '__main__': + main() From db994a119767f5f497a7f5fa674729b3d8c9d510 Mon Sep 17 00:00:00 2001 From: Farbod Salamat-Zadeh Date: Sat, 27 Feb 2016 00:42:03 +0000 Subject: [PATCH 862/875] Remove .txt extension for CSV format --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4fe4390e..4296c4df 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -481,7 +481,6 @@ CSV: tm_scope: none extensions: - .csv - - .txt Cap'n Proto: type: programming From 9bfbd0550c9d8761b434dec3864e13d1bbeb5f85 Mon Sep 17 00:00:00 2001 From: Farbod Salamat-Zadeh Date: Sat, 27 Feb 2016 14:32:50 +0000 Subject: [PATCH 863/875] Move cars.csv from test/fixtures/Data to samples/CSV --- {test/fixtures/Data => samples/CSV}/cars.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {test/fixtures/Data => samples/CSV}/cars.csv (63%) diff --git a/test/fixtures/Data/cars.csv b/samples/CSV/cars.csv similarity index 63% rename from test/fixtures/Data/cars.csv rename to samples/CSV/cars.csv index 73280e55..3c504cd2 100644 --- a/test/fixtures/Data/cars.csv +++ b/samples/CSV/cars.csv @@ -1,3 +1,3 @@ Year,Make,Model,Length 1997,Ford,E350,2.34 -2000,Mercury,Cougar,2.38 \ No newline at end of file +2000,Mercury,Cougar,2.38 From 3be007526cf43cc0a91504fe86d83af7db3e663a Mon Sep 17 00:00:00 2001 From: Farbod Salamat-Zadeh Date: Sat, 27 Feb 2016 15:30:22 +0000 Subject: [PATCH 864/875] Fix fixture_blob("Data/cars.csv") Changes `fixture_blob("Data/cars.csv")` to `sample_blob("CSV/cars.csv")` --- test/test_file_blob.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index 08e2e49b..ebb0b7fc 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -152,7 +152,7 @@ class TestBlob < Minitest::Test end def test_csv - assert fixture_blob("Data/cars.csv").csv? + assert sample_blob("CSV/cars.csv").csv? end def test_pdf From 40413dfcc709c847f2d0051c9f694b02d296c096 Mon Sep 17 00:00:00 2001 From: William Tumeo Date: Sat, 27 Feb 2016 23:55:53 -0300 Subject: [PATCH 865/875] Add `class` and `def` to regex --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index af6c5e83..895bfa20 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -322,7 +322,7 @@ module Linguist end disambiguate ".rpy" do |data| - if /(^(import|from)[\s\S])/m.match(data) + if /(^(import|from|class|def)[\s\S])/m.match(data) Language["Python"] else Language["Ren'Py"] From 6b60e5e786d5bda9b34084c4321ce4637bb57c9d Mon Sep 17 00:00:00 2001 From: William Tumeo Date: Sat, 27 Feb 2016 23:57:46 -0300 Subject: [PATCH 866/875] Remove wrong line in the sample --- samples/Ren'Py/example.rpy | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/samples/Ren'Py/example.rpy b/samples/Ren'Py/example.rpy index 90c3c286..71e34b97 100644 --- a/samples/Ren'Py/example.rpy +++ b/samples/Ren'Py/example.rpy @@ -1421,7 +1421,4 @@ init: # $ renpy.pause(1.0) # hide text with dissolve # -# return - - -Return to the tutorial. +# return \ No newline at end of file From 8fea8a0b47fc547b7a9c4fad10e91aa0da9d1322 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 29 Feb 2016 07:53:48 -0700 Subject: [PATCH 867/875] Grammar update --- vendor/grammars/Sublime-Inform/.gitignore | 2 + .../Inform7/book.sublime-snippet | 6 + .../Inform7/chapter.sublime-snippet | 6 + .../Inform7/door.sublime-snippet | 7 + .../Inform7/inform7.JSON-tmLanguage | 34 ++ .../Sublime-Inform/Inform7/inform7.tmLanguage | 74 +++ .../Inform7/object.sublime-snippet | 8 + .../Inform7/part.sublime-snippet | 6 + .../Inform7/room.sublime-snippet | 7 + .../Inform7/scene.sublime-snippet | 11 + .../Inform7/section.sublime-snippet | 6 + .../Inform7/volume.sublime-snippet | 6 + vendor/grammars/Sublime-Inform/LICENSE.txt | 21 + vendor/grammars/Sublime-Inform/README.md | 8 + .../Commands/Save to CSS.tmCommand | 47 ++ .../Commands/Save to Minified CSS.tmCommand | 47 ++ .../Insert inline Image.tmDragCommand | 38 ++ .../Preferences/Comment.tmPreferences | 36 ++ vendor/grammars/less.tmbundle/README.md | 25 + .../less.tmbundle/Syntaxes/LESS.tmLanguage | 434 ++++++++++++++++++ vendor/grammars/less.tmbundle/info.plist | 26 ++ 21 files changed, 855 insertions(+) create mode 100644 vendor/grammars/Sublime-Inform/.gitignore create mode 100644 vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage create mode 100755 vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage create mode 100644 vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet create mode 100644 vendor/grammars/Sublime-Inform/LICENSE.txt create mode 100644 vendor/grammars/Sublime-Inform/README.md create mode 100644 vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand create mode 100644 vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand create mode 100644 vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand create mode 100644 vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences create mode 100644 vendor/grammars/less.tmbundle/README.md create mode 100644 vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage create mode 100644 vendor/grammars/less.tmbundle/info.plist diff --git a/vendor/grammars/Sublime-Inform/.gitignore b/vendor/grammars/Sublime-Inform/.gitignore new file mode 100644 index 00000000..9bea4330 --- /dev/null +++ b/vendor/grammars/Sublime-Inform/.gitignore @@ -0,0 +1,2 @@ + +.DS_Store diff --git a/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet new file mode 100644 index 00000000..d00b609b --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet @@ -0,0 +1,6 @@ + + + book + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet new file mode 100644 index 00000000..344ae92d --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet @@ -0,0 +1,6 @@ + + + chapter + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet new file mode 100644 index 00000000..9504585b --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet @@ -0,0 +1,7 @@ + + + door + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage new file mode 100644 index 00000000..e5b6e92b --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage @@ -0,0 +1,34 @@ +{ "name": "Inform7", + "scopeName": "source.Inform7", + "fileTypes": ["i7x"], + "patterns": [ + { "name": "keyword.control.Inform7", + "match": "\\b(Include|Release)\\b" + }, + { "name" : "comment.block.Inform7", + "begin" : "\\[", + "end" : "\\]", + "comment" : "All comments in Inform7 are delimited this way." + }, + { "name" : "string.quoted.double.Inform7", + "begin" : "\"", + "end" : "\"", + "patterns": [ + { "name" : "keyword.operator.Inform7", + "begin" : "\\[", + "end" : "\\]", + "comment" : "For logic inside of strings." + } + ] + }, + { "name" : "storage.type.Inform7", + "match" : "(Volume|Book|Chapter|Part|Section|Table)\\s+\\d?\\s+-?\\s+((?:\\w|\\s|-)*)", + "comment": "Matches headings for major sections in Inform7" + }, + { "name": "constant.numeric.Inform7", + "match": "([0-9])+", + "comment":"Gotta call out the numbers!" + } + ], + "uuid": "0c4cbdee-beb7-4ea6-af56-27246d479373" +} \ No newline at end of file diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage new file mode 100755 index 00000000..5609885e --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage @@ -0,0 +1,74 @@ + + + + + fileTypes + + i7x + inform + ni + + name + Inform7 + patterns + + + match + \b(Include|Release)\b + name + keyword.control.Inform7 + + + begin + \[ + comment + All comments in Inform7 are delimited this way. + end + \] + name + comment.block.Inform7 + + + begin + " + end + " + name + string.quoted.double.Inform7 + patterns + + + begin + \[ + comment + For logic inside of strings. + end + \] + name + keyword.operator.Inform7 + + + + + comment + Matches headings for major sections in Inform7 + match + (Volume|Book|Chapter|Part|Section|Table)\s+\d?\s+-?\s+((?:\w|\s|-)*) + name + storage.type.Inform7 + + + comment + Gotta call out the numbers! + match + ([0-9])+ + name + constant.numeric.Inform7 + + + scopeName + source.Inform7 + uuid + 0c4cbdee-beb7-4ea6-af56-27246d479373 + + diff --git a/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet new file mode 100644 index 00000000..65f040af --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet @@ -0,0 +1,8 @@ + + + object + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet new file mode 100644 index 00000000..9e161cca --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet @@ -0,0 +1,6 @@ + + + part + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet new file mode 100644 index 00000000..b6abef45 --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet @@ -0,0 +1,7 @@ + + + room + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet new file mode 100644 index 00000000..fd4be030 --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet @@ -0,0 +1,11 @@ + + + scene + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet new file mode 100644 index 00000000..7ab043cb --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet @@ -0,0 +1,6 @@ + + + section + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet new file mode 100644 index 00000000..0721fcbf --- /dev/null +++ b/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet @@ -0,0 +1,6 @@ + + + volume + source.Inform7 + diff --git a/vendor/grammars/Sublime-Inform/LICENSE.txt b/vendor/grammars/Sublime-Inform/LICENSE.txt new file mode 100644 index 00000000..cda6f052 --- /dev/null +++ b/vendor/grammars/Sublime-Inform/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Nate Dickson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/grammars/Sublime-Inform/README.md b/vendor/grammars/Sublime-Inform/README.md new file mode 100644 index 00000000..3b907f1e --- /dev/null +++ b/vendor/grammars/Sublime-Inform/README.md @@ -0,0 +1,8 @@ +#Inform7 Package for Sublime Text 2 +This package has a lot of little files that make Inform7 easier to edit in Sublime Text 2. that's why it's called what it is, you see. +##Usage +Grab the zip file, unzip it, and put it in your ```Packages``` Directory. +That's pretty much it. Open an ```i7x``` file in Sublime Text 2 and it'll be all highlighted and there's a bunch of snippets you can use and all that. + +##Want to submit a pull request for this readme file? +Please, please do. \ No newline at end of file diff --git a/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand new file mode 100644 index 00000000..9f8e7561 --- /dev/null +++ b/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand @@ -0,0 +1,47 @@ + + + + + beforeRunningCommand + saveActiveFile + command + #!/usr/bin/env ruby18 + +file = ENV["TM_FILEPATH"] +target = file.sub(/\.less$/, ".css") +system("lessc \"#{file}\" \"#{target}\"") +puts "Compiled CSS to '#{target}'" + input + document + inputFormat + text + keyEquivalent + @b + name + Save to CSS + outputCaret + afterOutput + outputFormat + text + outputLocation + toolTip + requiredCommands + + + command + lessc + locations + + /opt/local/bin/lessc + /usr/local/bin/lessc + + + + scope + source.css.less + uuid + 78788223-5E5E-434E-98BE-17BCDF600611 + version + 2 + + diff --git a/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand new file mode 100644 index 00000000..fc8fe21f --- /dev/null +++ b/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand @@ -0,0 +1,47 @@ + + + + + beforeRunningCommand + saveActiveFile + command + #!/usr/bin/env ruby18 + +file = ENV["TM_FILEPATH"] +target = file.sub(/\.less$/, ".css") +system("lessc -x \"#{file}\" \"#{target}\"") +puts "Compiled Minified CSS to '#{target}'" + input + document + inputFormat + text + keyEquivalent + ~@b + name + Save to Minified CSS + outputCaret + afterOutput + outputFormat + text + outputLocation + toolTip + requiredCommands + + + command + lessc + locations + + /opt/local/bin/lessc + /usr/local/bin/lessc + + + + scope + source.css.less + uuid + 448D3A8D-260E-4949-BA33-654886ECDCAF + version + 2 + + diff --git a/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand b/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand new file mode 100644 index 00000000..21ce88f4 --- /dev/null +++ b/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand @@ -0,0 +1,38 @@ + + + + + beforeRunningCommand + nop + command + #!/usr/bin/env php +<?php +$path = getenv('TM_DROPPED_FILE'); +$path_parts = pathinfo($path); +$info = getimagesize($path); +list($width, $height) = $info; +$mime = $info['mime']; +$contents = base64_encode(file_get_contents($path)); + +echo "@gfx-{$path_parts['filename']}: \"data:{$mime};base64,{$contents}\";\n"; +echo "@gfx-{$path_parts['filename']}-width: {$width}px;\n"; +echo "@gfx-{$path_parts['filename']}-height: {$height}px;"; + draggedFileExtensions + + png + jpeg + jpg + gif + + input + selection + name + Insert inline Image + output + insertAsSnippet + scope + source.css.less + uuid + 7B0CA307-CC1C-4EE2-9F63-4825800ACDA7 + + diff --git a/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences b/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences new file mode 100644 index 00000000..1d8bf1fe --- /dev/null +++ b/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences @@ -0,0 +1,36 @@ + + + + + name + Comments + scope + source.css.less + settings + + shellVariables + + + name + TM_COMMENT_START + value + // + + + name + TM_COMMENT_START_2 + value + /* + + + name + TM_COMMENT_END_2 + value + */ + + + + uuid + D0CC551B-751D-4A7C-A738-2513E3C7F285 + + diff --git a/vendor/grammars/less.tmbundle/README.md b/vendor/grammars/less.tmbundle/README.md new file mode 100644 index 00000000..ed6ac672 --- /dev/null +++ b/vendor/grammars/less.tmbundle/README.md @@ -0,0 +1,25 @@ +# Installation + +You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. + +# License (MIT) + +Copyright (c) 2010 Scott Kyle and Rasmus Andersson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage b/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage new file mode 100644 index 00000000..ac6ff8ba --- /dev/null +++ b/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage @@ -0,0 +1,434 @@ + + + + + comment + LeSS + fileTypes + + less + + foldingStartMarker + /\*\*(?!\*)|\{\s*($|/\*(?!.*?\*/.*\S)) + foldingStopMarker + (?<!\*)\*\*/|^\s*\} + keyEquivalent + ^~L + name + LESS + patterns + + + match + \b(a|abbr|acronym|address|applet|article|area|audio|video|b|base|big|blockquote|body|br|button|caption|canvas|center|cite|code|col|colgroup|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figure|figcaption|form|frame|frameset|(h[1-6])|head|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|meta|menu|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|q|ruby|s|samp|script|select|small|span|strike|strong|style|sub|sup|summary|svg|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|header|section|footer|aside|hgroup|time)\b + name + keyword.control.html.elements + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.css + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.css + + + name + string.quoted.double.css + patterns + + + match + \\. + name + constant.character.escaped.css + + + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.css + + + end + ' + endCaptures + + 0 + + name + punctuation.definition.string.end.css + + + name + string.quoted.single.css + patterns + + + match + \\. + name + constant.character.escaped.css + + + + + captures + + 1 + + name + entity.other.attribute-name.class.css + + + match + (\.[a-zA-Z0-9_-]+) + + + begin + url\( + contentName + variable.parameter.url + end + \) + name + support.function.any-method.builtin.css + + + match + (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b + name + constant.other.rgb-value.css + + + captures + + 0 + + name + entity.other.attribute-name.id + + + match + #[a-zA-Z0-9_:\(\)-]+ + name + meta.selector.css + + + begin + /\* + beginCaptures + + 0 + + name + punctuation.definition.comment.begin.css + + + end + \*/ + endCaptures + + 0 + + name + punctuation.definition.comment.end.css + + + name + comment.block.css + + + match + (-|\+)?\s*[0-9]+(\.[0-9]+)? + name + constant.numeric.css + + + match + (?<=[\d])(px|pt|cm|mm|in|em|ex|pc)\b|% + name + keyword.other.unit.css + + + captures + + 1 + + name + entity.other.attribute-name.pseudo-element.css + + + match + (:+(after|before|not|last-child|nth-of-type|nth-child|first-child|first-letter|first-line|selection|root)) + + + captures + + 1 + + name + entity.other.attribute-name.pseudo-class.css + + + match + (:+(active|hover|link|visited|focus)) + + + captures + + 1 + + name + punctuation.definition.entity.css + + 2 + + name + entity.other.attribute-name.attribute.css + + 3 + + name + punctuation.separator.operator.css + + 4 + + name + string.unquoted.attribute-value.css + + 5 + + name + string.quoted.double.attribute-value.css + + 6 + + name + punctuation.definition.string.begin.css + + 7 + + name + punctuation.definition.string.end.css + + + match + (?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?>(['"])(?:[^\\]|\\.)*?(\6)))))?\s*(\]) + name + meta.attribute-selector.css + + + captures + + 1 + + name + keyword.control.at-rule.import.css + + 2 + + name + punctuation.definition.keyword.css + + + match + ^\s*((@)import\b) + name + meta.at-rule.import.css + + + captures + + 1 + + name + support.type.property-name.css.vendor + + + match + (-(?:webkit|moz|khtml|o|icab|ms)-(?:background-size|border-radius|box-shadow|opacity|border-image))\s*: + + + captures + + 1 + + name + support.type.property-name.css + + + match + \b(azimuth|background-attachment|background-color|background-clip|background-image|background-position|background-repeat|background-size|background|behavior|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border-radius|border|box-shadow|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|filter|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow(-[xy])?|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|pre-wrap|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|word-wrap|z-index|zoom) + + + match + \b(absolute|all-scroll|always|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|col-resize|collapse|crosshair|dashed|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|groove|hand|help|hidden|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|keep-all|left|lighter|line-edge|line-through|line|linear|list-item|loose|lower-alpha|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|padding-box)\b + name + support.constant.property-value.css + + + match + (\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\b) + name + support.constant.font-name.css + + + comment + http://www.w3.org/TR/CSS21/syndata.html#value-def-color + match + \b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\b + name + support.constant.color.w3c-standard-color-name.css + + + match + \b(saturate|desaturate|lighten|darken|grayscale)\b + name + support.function.any-method.builtin.less + + + match + \b(rgb|rgba|hsl|hsla|url)\b + name + support.function.any-method.builtin.css + + + captures + + 1 + + name + support.function.any-method.vendor.css + + + match + (-(?:webkit|moz|khtml|o|icab)-(?:gradient|linear-gradient)) + + + match + \b(color-stop|from|to)\b + name + support.function.any-method.webkit.gradient.css + + + captures + + 1 + + name + support.function.less + + + match + (\.[a-zA-Z0-9_-]+)\s*(;|\() + + + begin + (^[ \t]+)?(?=//) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.less + + + end + (?!\G) + patterns + + + begin + // + beginCaptures + + 0 + + name + punctuation.definition.comment.less + + + end + \n + name + comment.line.double-slash.less + + + + + match + @[a-zA-Z0-9_-][\w-]* + name + variable.other.less + + + match + \$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|\^=|\/\b + name + keyword.operator.less + + + captures + + 1 + + name + punctuation.section.property-list.begin.css + + 2 + + name + punctuation.section.property-list.end.css + + + comment + Match empty braces to give proper ↩ action + match + (\{)(\}) + name + meta.brace.curly.less + + + match + \{|\} + name + meta.brace.curly.less + + + match + \(|\) + name + meta.brace.round.less + + + match + \[|\] + name + meta.brace.square.less + + + scopeName + source.css.less + uuid + 9343D324-75A1-4733-A5C0-5D1D4B6182D0 + + diff --git a/vendor/grammars/less.tmbundle/info.plist b/vendor/grammars/less.tmbundle/info.plist new file mode 100644 index 00000000..e555f0ba --- /dev/null +++ b/vendor/grammars/less.tmbundle/info.plist @@ -0,0 +1,26 @@ + + + + + contactEmailRot13 + zfurrgf@juvgrsnyyf.bet + contactName + Michael Sheets + description + Extends CSS with dynamic behavior such as variables, mixins, operations and functions. + mainMenu + + items + + 78788223-5E5E-434E-98BE-17BCDF600611 + 448D3A8D-260E-4949-BA33-654886ECDCAF + + submenus + + + name + LESS + uuid + D1D51EE5-E89F-4B14-8AE4-FC364E540B47 + + From 54fab9eb4ed6a3a9bfa36d1c28aaff2aaeea51a8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 29 Feb 2016 07:55:43 -0700 Subject: [PATCH 868/875] Bumping to v4.7.6 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index bc1707a9..7bb4af7b 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.7.5" + VERSION = "4.7.6" end From ae27c71d5a9416a0c85f8ca96f0e772355d4133d Mon Sep 17 00:00:00 2001 From: Michael Zhou Date: Mon, 29 Feb 2016 20:35:57 -0500 Subject: [PATCH 869/875] Add BUCK filename to Python in languages.yml BUCK is the filename for the build files of the Facebook Buck build system. BUCK files are valid Python files. Eg.: https://github.com/GerritCodeReview/gerrit/blob/master/BUCK Also add a missing sample for Pants / Bazel BUILD files. They are also valid Python files. --- lib/linguist/languages.yml | 3 ++- samples/Python/filenames/BUCK | 31 +++++++++++++++++++++++ samples/Python/filenames/BUILD | 45 ++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 samples/Python/filenames/BUCK create mode 100644 samples/Python/filenames/BUILD diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 49194cbf..a4f4d3a6 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -474,7 +474,7 @@ CSS: color: "#563d7c" extensions: - .css - + CSV: type: data ace_mode: text @@ -2854,6 +2854,7 @@ Python: - .wsgi - .xpy filenames: + - BUCK - BUILD - SConscript - SConstruct diff --git a/samples/Python/filenames/BUCK b/samples/Python/filenames/BUCK new file mode 100644 index 00000000..9657ff3a --- /dev/null +++ b/samples/Python/filenames/BUCK @@ -0,0 +1,31 @@ +include_defs('//tools/build.defs') + +gerrit_war(name = 'gerrit') +gerrit_war(name = 'gwtgerrit', ui = 'ui_dbg') +gerrit_war(name = 'headless', ui = None) +gerrit_war(name = 'chrome', ui = 'ui_chrome') +gerrit_war(name = 'firefox', ui = 'ui_firefox') +gerrit_war(name = 'safari', ui = 'ui_safari') +gerrit_war(name = 'polygerrit', ui = 'polygerrit') +gerrit_war(name = 'withdocs', docs = True) +gerrit_war(name = 'release', ui = 'ui_optdbg_r', docs = True, context = ['//plugins:core'], visibility = ['//tools/maven:']) + +API_DEPS = [ + '//gerrit-acceptance-framework:acceptance-framework', + '//gerrit-acceptance-framework:acceptance-framework-src', + '//gerrit-acceptance-framework:acceptance-framework-javadoc', + '//gerrit-extension-api:extension-api', + '//gerrit-extension-api:extension-api-src', + '//gerrit-extension-api:extension-api-javadoc', + '//gerrit-plugin-api:plugin-api', + '//gerrit-plugin-api:plugin-api-src', + '//gerrit-plugin-api:plugin-api-javadoc', + '//gerrit-plugin-gwtui:gwtui-api', + '//gerrit-plugin-gwtui:gwtui-api-src', + '//gerrit-plugin-gwtui:gwtui-api-javadoc', +] + +zip_file( + name = 'api', + srcs = API_DEPS, +) diff --git a/samples/Python/filenames/BUILD b/samples/Python/filenames/BUILD new file mode 100644 index 00000000..92057751 --- /dev/null +++ b/samples/Python/filenames/BUILD @@ -0,0 +1,45 @@ +package(default_visibility = ["//scripts/release:__pkg__"]) + +filegroup( + name = "git", + srcs = glob([".git/**"]), +) + +filegroup( + name = "dummy", + visibility = ["//visibility:public"], +) + +filegroup( + name = "srcs", + srcs = glob( + ["**"], + exclude = [ + "bazel-*/**", + "output/**", + ".*/**", + ], + ) + [ + "//examples:srcs", + "//scripts:srcs", + "//site:srcs", + "//src:srcs", + "//tools:srcs", + "//third_party:srcs", + ], + visibility = ["//visibility:private"], +) + +load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar") + +pkg_tar( + name = "bazel-srcs", + files = [":srcs"], + strip_prefix = ".", + # Public but bazel-only visibility. + visibility = ["//:__subpackages__"], +) + +load("//tools/build_rules/go:def.bzl", "go_prefix") + +go_prefix("github.com/bazelbuild/bazel") From ca4ea03828b0444c046e6f5526b147a070a365ea Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 3 Mar 2016 19:15:09 -0500 Subject: [PATCH 870/875] Recognizing Jenkinsfile as Groovy source. --- lib/linguist/languages.yml | 2 ++ lib/linguist/vendor.yml | 3 ++ samples/Groovy/filenames/Jenkinsfile | 46 ++++++++++++++++++++++++++++ test/test_file_blob.rb | 3 ++ 4 files changed, 54 insertions(+) create mode 100644 samples/Groovy/filenames/Jenkinsfile diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 49194cbf..117f2f79 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1310,6 +1310,8 @@ Groovy: - .gvy interpreters: - groovy + filenames: + - Jenkinsfile Groovy Server Pages: type: programming diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 294f312b..15001e98 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -302,3 +302,6 @@ # Android Google APIs - (^|/)\.google_apis/ + +# Jenkins Pipeline +- ^Jenkinsfile$ diff --git a/samples/Groovy/filenames/Jenkinsfile b/samples/Groovy/filenames/Jenkinsfile new file mode 100644 index 00000000..582306c4 --- /dev/null +++ b/samples/Groovy/filenames/Jenkinsfile @@ -0,0 +1,46 @@ +jettyUrl = 'http://localhost:8081/' + +def servers + +stage 'Dev' +node { + checkout scm + servers = load 'servers.groovy' + mvn '-o clean package' + dir('target') {stash name: 'war', includes: 'x.war'} +} + +stage 'QA' +parallel(longerTests: { + runTests(servers, 30) +}, quickerTests: { + runTests(servers, 20) +}) + +stage name: 'Staging', concurrency: 1 +node { + servers.deploy 'staging' +} + +input message: "Does ${jettyUrl}staging/ look good?" + +stage name: 'Production', concurrency: 1 +node { + sh "wget -O - -S ${jettyUrl}staging/" + echo 'Production server looks to be alive' + servers.deploy 'production' + echo "Deployed to ${jettyUrl}production/" +} + +def mvn(args) { + sh "${tool 'Maven 3.x'}/bin/mvn ${args}" +} + +def runTests(servers, duration) { + node { + checkout scm + servers.runWithServer {id -> + mvn "-o -f sometests test -Durl=${jettyUrl}${id}/ -Dduration=${duration}" + } + } +} diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index ebb0b7fc..1b83a0fb 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -522,6 +522,9 @@ class TestBlob < Minitest::Test assert sample_blob("myapp/My Template.xctemplate/___FILEBASENAME___.h").vendored? assert sample_blob("myapp/My Images.xcassets/some/stuff.imageset/Contents.json").vendored? assert !sample_blob("myapp/MyData.json").vendored? + + # Jenkins + assert sample_blob("Jenkinsfile").vendored? end def test_documentation From b2e3ea233468a1a30ac1b67a3980fea67838948b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 8 Mar 2016 21:56:01 -0600 Subject: [PATCH 871/875] Adding ace_mode back for M4Sugar --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 27aaa75e..442117a0 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2024,6 +2024,7 @@ M4Sugar: filenames: - configure.ac tm_scope: none + ace_mode: text MAXScript: type: programming From 11a3b5b73cf0029e51e50b48a29bdb2ee3524ec7 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 9 Mar 2016 10:37:41 +0100 Subject: [PATCH 872/875] Support for Text extension .nb (Norwegian text) --- lib/linguist/languages.yml | 1 + samples/Text/aptitude-defaults.nb | 41 ++ samples/Text/tutor.nb | 973 ++++++++++++++++++++++++++++++ 3 files changed, 1015 insertions(+) create mode 100644 samples/Text/aptitude-defaults.nb create mode 100644 samples/Text/tutor.nb diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 442117a0..0171e1aa 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3572,6 +3572,7 @@ Text: extensions: - .txt - .fr + - .nb - .ncl tm_scope: none ace_mode: text diff --git a/samples/Text/aptitude-defaults.nb b/samples/Text/aptitude-defaults.nb new file mode 100644 index 00000000..67c37f59 --- /dev/null +++ b/samples/Text/aptitude-defaults.nb @@ -0,0 +1,41 @@ +Pakker uten en bestemt bolk\n Disse pakkene tilhører ingen bestemt bolk. Kanskje det er noe feil ved dem? +Virtuelle pakker\n Disse pakkene finnes ikke, de er navn som andre pakker bruker for å oppnå en eller annen egenskap. +Pakker som setter opp systemet ditt til å utføre en bestemt oppgave\n Pakkene i bolken «oppgaver» inneholder ingen filer, det kan hende de bare er avhengige av andre pakker. Disse pakkene gjør det mulig å installere pakker for en bestemt oppgave på en lett måte. +Administrative verktøy\n Pakkene i bolken «admin» gjør det mulig å utføre administrative oppgaver, som å installere programmer, opprette eller slette brukere, vise informasjon om systemet eller nettverkstrafikken osv. +Pakker som er laget av pakker i et annet format (rpm, tgz mm)\n Pakkene i bolken «alien» ble laget av programmet «alien» fra et annet format enn Debians eget pakkeformat, f.eks fra RPM-pakker +Debians grunnsystem\n Pakkene i bolken «grunnsystem» hører med til første del av Debian-installasjonen. +Programmer for faksmodem og andre kommunikasjonsenheter\n Pakkene i bolken «Kommunikasjon» brukes til å styre modemer og andre enheter på maskinen, deriblant programvare for styring av faksmodemer (for eksempel, PPP for oppringt internettforbindelse og programmer som opprinnelig er skrevet for dette, slik som zmodem og kermit), og programmer for å styre mobiltelefoner, snakke med FidoNet og kjøre et BBS. +Verktøy og programmer for programvareutvikling\n Pakker i seksjonen «utvikling» blir brukt til å skrive nye programmer og for å jobbe med videre med programmer som allerede er laget. Vanlige brukere som ikke kompilerer (setter sammen) sine egne programmer trenger neppe så mange programmer herfra.\n .\n Her finner du kompilatorer, avlusingsverktøy, skriveprogrammer som hjelper til med programmeringen, verktøy for håndtering av kildekode og andre ting som har med utvikling av programmer å gjøre. +Dokumentasjon og spesialiserte program for visning av dokumentasjon\n Pakker i «dok»-seksjonen dokumenterer deler av Debian-systemet eller viser fram dokumenter i forskjellige format. +Skriveprogram og tekstbehandlere\n Pakker i bolken «skriveprogram» lar deg redigere ren ASCII-tekst. Dette er nødvendigvis ikke tekstbehandlere, selv om du kan finne noen av dem her i denne bolken. +Program for å jobba med elektronikk og elektriske kretser\n Pakker i «elektronikk»-seksjonen inneholder verktøy for design av elektriske kretser, simulatorer og assemblere for mikrokontrollere og andre liknende programmer. +Programmer for innebygde systemer\nPakker i bolken «innebygd» er ment til å kjøre på innebygde systemer. Dette er spesialisert maskinvare med mye mindre datakraft enn en typisk skrivebordssystem, for eksempel en PDA, en mobiltelefon eller en Tivo. +Skrivebordssystemet GNOME\n GNOME er en samling programvare som danner et lettbrukt skrivbordsmiljø for Linux. Pakker i «gnome»-bolken er enten deler av GNOME-miljøet eller tett sammenvevd med det. +Spill, leketøy og andre programmer som bare er for gøy\n Pakker i «spill»-bolken er stort sett bare til for underholdningens skyld. +Verktøy for å lage, vise og redigere grafikkfiler\n Pakker i «grafikk»-bolken er programmer for visning av bildefiler, bildebehandlingsprogrammer, støtteprogrammer for forskjellig utstyr (som videokort, skanner og digitalt kamera) og programmeringsverktøy for å håndtere grafikk. +Programvare for radioamatører\n Pakker i «hamradio»-bolken er stort sett ment for radioamatører. +Programmer som kjører skriptspråk\n Pakker i «tolkeprogram»-bolken er programmer som kompilerer og kjører språk som Python, Perl og Ruby, og som sørger for standardbibliotek for disse språkene. +Skrivebordssystemet KDE\n KDE er en samling programvare som danner et lettbrukt skrivbordsmiljø for Linux. Pakker i «kde»-bolken er enten deler av KDE-miljøet eller tett sammenvevd med det. +Utviklingsfiler for biblioteker\n Pakker i «libdevel»-bolken inneholder filer som trengs for å lage programmer som bruker biblioteker i «libs»-bolken. Du trenger ikke pakker fra denne bolken hvis du ikke har tenkt å lage programmer selv. +Samling av programvarerutiner\n Pakker i «libs»-seksjonen sørger for nødvendige funksjoner som er felles for andre programmer på maskinen. Med svært få unntak skal det ikke værenødvendig å be om at slike pakker blir installert. Pakkesystemet sørger for å installere dem når de andre programmene trenger dem. +Perl-tolker og biblioteker\n Pakker i «perl»-bolken sørger for programmeringsspråket Perl og mange tredjeparts-biblioteker til Perl. Hvis du ikke er Perl-programmerer selv, så trenger du ikke uttrykkelig installere pakker fra denne bolken, pakkesystemet installerer dem selv hvis det er nødvendig. +Python-tolker og biblioteker\n Pakker i «python»-bolken sørger for programmeringsspråket Python og mange tredjeparts-biblioteker til det. Hvis du ikke er Python-programmerer selv, så trenger du ikke uttrykkelig installere pakker fra denne bolken, pakkesystemet installerer dem selv hvis det er nødvendig. +Program for å skrive, sende og omdirigere epostmeldinger\n Pakker i «epost»-bolken inneholder epostlesere, nisser som flytter eposten dit den skal, programvare for epostlister og filter for søppelpost. Det fins også diverse andre programmer som gjør noe med elektronisk post, men som ikke er så lette å plassere i grupper. +Numerisk analyse og andre matematikkrelaterte programmer\n Blant pakker i «matte»-bolken fins kalkulatorer, språk for matematiske utregninger, symbolsk algebra og programmer for å tegne ut matematiske objekter. +Ymse programvare\n Pakker i «ymse»-bolken er ofte vanskelige å klassifisere, men det betyr ikke at de ikke finnes. +Programmer for å koble til og tilby ulike tjenester i et nettverk\n Blant pakker i «nett»-bolken finner du klienter og tjenere for mange protokoller, verktøy for å manipulere og avluse lavnivå nettverksprotokoller, system for direkte meldingstjeneste og andre nettverksrelaterte programmer. +Klienter og tjenere for Usenet\n Pakker i bolken «nyheter» henger sammen med til det distribuerte nyhetssystemet Usenet. Seksjonen tjenere og leseprogrammer (klienter) for dette systemet. +Foreldede programbibliotek\n Pakker i bolken «gamle bibliotek» er foreldede og bør ikke brukes i ny programvare. De er tilgjengelige for at eldre programmer som er avhengige av programmene her fortsatt skal kunne virke.\n .\n Du skal normalt ikke behøve å be om å få installert pakker herfra. Pakkesystemet vil ta med disse pakkene når andre pakker krever det. +Programmer som etterlikner andre datasystemer og og programmer som hjelper deg med å lese fremmede filsystem\n Pakker i bolken «andreosfs» etterlikner maskinvare og operativsystem og tilbyr verktøy for å overføre data mellom ulike operativsystem og maskinvareplattformer. (For eksempel verktøy for å lese DOS-disketter, og verktøy til å kommunisere med håndholdte maskiner som Palm Pilot)\n .\n Programmer for å brenne CD-plater er også med i denne seksjonen. +Programvare for vitenskaplig arbeid\n Pakker i «vitenskap»-bolken er verktøy for astronomi, biologi og kjemi, pluss andre programmer man bruker i vitenskapelig arbeide. +Kommandoskall og alternative konsollmiljø\n Pakker i «skall» er programmer som tilbyr grensesnitt med kommandolinje. +Verktøy for å spille av og ta opp lyd\nI «lyd»-bolken finner du lydavspillere, opptakere, lydkomprimeringsprogram for mange format, miksere og lydstyring, program for MIDI-sekvenser og program for å lage noter. Her finner du også drivere for lydkort og programmer for lydprosessering. +TeX typografi-systemet\n Pakker i bolken «tex» er deler i et system for å produsere utskrifter og andre slags utdata med høy typografisk kvalitet. Det omfatter selve TeX, TeX-pakker, skriveprogrammer som hjelper deg med å lage dokumenter i TeX, verktøy for å gjøre om TeX og TeX utdatafiler til ulike andre format, TeX-skrifttyper og annen programvare knyttet TeX. +Tekstverktøy\n I bolken «tekst» finner du skriveprogrammer og tekstfiltere, stavekontroll, ordbøker og verktøy for å oversette mellom tegnkoding og tekst-filformater (for eksempel Unix og DOS) og programmer for å formatere, skrive ut og redigere som ren tekst. +Forskjellige systemverktøy\n Pakkene i bolken «verktøy» har oppgaver som faller utenfor de andre kategoriene. +Nettlesere, tjenere, mellomtjenere og andre verktøy\n I bolken «nett» finner du blant annet nettlesere, tjenere og mellomtjenere, programmer for å skrive CGI-skript eller nettbaserte programmer og andre programmer som har med verdensveven å gjøre. +Vindussystemet «X» og beslektede programmer\n Pakkene i bolken «X11» inneholder også grunnpakka for vindussystemet «X», vindusbehandlere, verktøy for X og andre programmer med en X-grensesnitt som ble plassert her fordi de ikke passet inn noen andre steder. +Debians hovedarkiv\n Selve Debian-distribusjonen består av pakker fra hovedbolken. Alle pakkene her er fri programvare.\n .\n For mer informasjon om hva Debian mener med «fri programvare», se http://www.debian.org/social_contract#guidelines + Programmer som avhenger av programvare utenfor Debian.\n Pakker i bolken«bidrag» er ikke med i Debian.\n\n Disse pakkene er fri programvare, men de avhenger av programmer som ikke er en del av Debian. Dette kan skyldes at de ikke er fri programvare og ligger i bolken «ufri» i pakkearkivet, og disse kan Debian slett ikke distribuere, eller - i noen sjeldne tilfeller - at ingen har laget en pakke av dette ennå.\n .\n For mer informasjon om hva Debian mener med «fri programvare», se http://www.debian.org/social_contract#guidelines +Programmer som ikke er fri programvare \n Pakkene i bolken «ufri» er ikke en del av Debian\n .\n Disse pakkene passet ikke med en eller flere av betingelsene i Debians retningslinjer for fri programvare (Debian Free Software Guidelines; se nedenfor). Du bør lese lisensen for programmene i denne bolken for å være sikker på at du har rett til å bruke dem slik du har tenkt.\n .\n For mer informasjon om hva Debian mener med «Fri programvare», se http://www.debian.org/social_contract#guidelines +Programmer som er lagret utenfor USA på grunn av eksportforbud.\n Det er stor sjanse for at pakkene i «utenfor USA» inneholder kryptografi, og noen få av dem inneholder patenterte algoritmer. På grunn av dette kan de ikke eksporteres ut av USA, og lagres derfor på en tjener i «den frie verden».\n .\n Merk: Debian-prosjektet er, etter samtale med eksperter på rettsvesenet om nye endringer i eksporteringsreglene, i ferd med å flette kryptografiske programmer inn i de USA-baserte arkivene. De fleste pakkene som før lå i denne bolken er derfor flyttet til «hoved». \ No newline at end of file diff --git a/samples/Text/tutor.nb b/samples/Text/tutor.nb new file mode 100644 index 00000000..242119c7 --- /dev/null +++ b/samples/Text/tutor.nb @@ -0,0 +1,973 @@ +=============================================================================== += V e l k o m m e n t i l i n n f ø r i n g e n i V i m -- Ver. 1.7 = +=============================================================================== + + Vim er en meget kraftig editor med mange kommandoer, alt for mange til å + kunne gå gjennom alle i en innføring som denne. Den er beregnet på å + sette deg inn i bruken av nok kommandoer så du vil være i stand til lett + å kunne bruke Vim som en editor til alle formål. + + Tiden som kreves for å gå gjennom denne innføringen tar ca. 25-30 + minutter, avhengig av hvor mye tid du bruker til eksperimentering. + + MERK: + Kommandoene i leksjonene vil modifisere teksten. Lag en kopi av denne + filen som du kan øve deg på (hvis du kjørte Ŧvimtutorŧ-kommandoen, er + dette allerede en kopi). + + Det er viktig å huske at denne innføringen er beregnet på læring gjennom + bruk. Det betyr at du må utføre kommandoene for å lære dem skikkelig. + Hvis du bare leser teksten, vil du glemme kommandoene! + + Først av alt, sjekk at ŦCaps Lockŧ IKKE er aktiv og trykk Ŧjŧ-tasten for + å flytte markøren helt til leksjon 1.1 fyller skjermen. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.1: FLYTTING AV MARKØREN + + + ** For å flytte markøren, trykk tastene h, j, k, l som vist. ** + ^ + k Tips: h-tasten er til venstre og flytter til venstre. + < h l > l-tasten er til høyre og flytter til høyre. + j j-tasten ser ut som en pil som peker nedover. + v + 1. Flytt markøren rundt på skjermen til du har fått det inn i fingrene. + + 2. Hold inne nedovertasten (j) til den repeterer. + Nå vet du hvordan du beveger deg til neste leksjon. + + 3. Gå til leksjon 1.2 ved hjelp av nedovertasten. + +Merk: Hvis du blir usikker på noe du har skrevet, trykk for å gå til + normalmodus. Skriv deretter kommandoen du ønsket på nytt. + +Merk: Piltastene skal også virke. Men ved å bruke hjkl vil du være i stand til + å bevege markøren mye raskere når du er blitt vant til det. Helt sant! + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.2: AVSLUTTE VIM + + + !! MERK: Før du utfører noen av punktene nedenfor, les hele leksjonen!! + + 1. Trykk -tasten (for å forsikre deg om at du er i normalmodus). + + 2. Skriv: :q! . + Dette avslutter editoren og FORKASTER alle forandringer som du har gjort. + + 3. Når du ser kommandolinjen i skallet, skriv kommandoen som startet denne + innføringen. Den er: vimtutor + + 4. Hvis du er sikker på at du husker dette, utfør punktene 1 til 3 for å + avslutte og starte editoren på nytt. + +MERK: :q! forkaster alle forandringer som du gjorde. I løpet av noen + få leksjoner vil du lære hvordan du lagrer forandringene til en fil. + + 5. Flytt markøren ned til leksjon 1.3. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.3: REDIGERING AV TEKST -- SLETTING + + + ** Trykk x for å slette tegnet under markøren. ** + + 1. Flytt markøren til den første linjen merket med --->. + + 2. For å ordne feilene på linjen, flytt markøren til den er oppå tegnet som + skal slettes. + + 3. Trykk tasten x for å slette det uønskede tegnet. + + 4. Repeter punkt 2 til 4 til setningen er lik den som er under. + +---> Hessstennnn brrråsnudddde ii gaaata. +---> Hesten bråsnudde i gata. + + 5. Nå som linjen er korrekt, gå til leksjon 1.4. + +MERK: Når du går gjennom innføringen, ikke bare prøv å huske kommandoene, men + bruk dem helt til de sitter. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.4: REDIGERING AV TEKST -- INNSETTING + + + ** Trykk i for å sette inn tekst. ** + + 1. Flytt markøren til den første linjen som er merket med --->. + + 2. For å gjøre den første linjen lik den andre, flytt markøren til den står + på tegnet ETTER posisjonen der teksten skal settes inn. + + 3. Trykk i og skriv inn teksten som mangler. + + 4. Etterhvert som hver feil er fikset, trykk for å returnere til + normalmodus. Repeter punkt 2 til 4 til setningen er korrekt. + +---> Det er tkst som mnglr . +---> Det er ganske mye tekst som mangler her. + + 5. Når du føler deg komfortabel med å sette inn tekst, gå til oppsummeringen + nedenfor. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.5: REDIGERING AV TEKST -- LEGGE TIL + + + ** Trykk A for å legge til tekst. ** + + 1. Flytt markøren til den første linjen nedenfor merket --->. + Det har ikke noe å si hvor markøren er plassert på den linjen. + + 2. Trykk A og skriv inn det som skal legges til. + + 3. Når teksten er lagt til, trykk for å returnere til normalmodusen. + + 4. Flytt markøren til den andre linjen markert med ---> og repeter steg 2 og + 3 for å reparere denne setningen. + +---> Det mangler noe tekst p + Det mangler noe tekst på denne linjen. +---> Det mangler også litt tek + Det mangler også litt tekst på denne linjen. + + 5. Når du føler at du behersker å legge til tekst, gå til leksjon 1.6. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.6: REDIGERE EN FIL + + + ** Bruk :wq for å lagre en fil og avslutte. ** + + !! MERK: Før du utfører noen av stegene nedenfor, les hele denne leksjonen!! + + 1. Avslutt denne innføringen som du gjorde i leksjon 1.2: :q! + + 2. Skriv denne kommandoen på kommandolinja: vim tutor + Ŧvimŧ er kommandoen for å starte Vim-editoren, Ŧtutorŧ er navnet på fila + som du vil redigere. Bruk en fil som kan forandres. + + 3. Sett inn og slett tekst som du lærte i de foregående leksjonene. + + 4. Lagre filen med forandringene og avslutt Vim med: :wq + + 5. Start innføringen på nytt og flytt ned til oppsummeringen som følger. + + 6. Etter å ha lest og forstått stegene ovenfor: Sett i gang. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 1 + + + 1. Markøren beveges ved hjelp av piltastene eller hjkl-tastene. + h (venstre) j (ned) k (opp) l (høyre) + + 2. For å starte Vim fra skall-kommandolinjen, skriv: vim FILNAVN + + 3. For å avslutte Vim, skriv: :q! for å forkaste endringer. + ELLER skriv: :wq for å lagre forandringene. + + 4. For å slette tegnet under markøren, trykk: x + + 5. For å sette inn eller legge til tekst, trykk: + i skriv innsatt tekst sett inn før markøren + A skriv tillagt tekst legg til på slutten av linjen + +MERK: Når du trykker går du til normalmodus eller du avbryter en uønsket + og delvis fullført kommando. + + Nå kan du gå videre til leksjon 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.1: SLETTEKOMMANDOER + + + ** Trykk dw for å slette et ord. ** + + 1. Trykk for å være sikker på at du er i normalmodus. + + 2. Flytt markøren til den første linjen nedenfor merket --->. + + 3. Flytt markøren til begynnelsen av ordet som skal slettes. + + 4. Trykk dw og ordet vil forsvinne. + +MERK: Bokstaven d vil komme til syne på den nederste linjen på skjermen når + du skriver den. Vim venter på at du skal skrive w . Hvis du ser et annet + tegn enn d har du skrevet noe feil; trykk og start på nytt. + +---> Det er agurk tre ord eple som ikke hører pære hjemme i denne setningen. +---> Det er tre ord som ikke hører hjemme i denne setningen. + + 5. Repeter punkt 3 og 4 til den første setningen er lik den andre. Gå + deretter til leksjon 2.2. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.2: FLERE SLETTEKOMMANDOER + + + ** Trykk d$ for å slette til slutten av linjen. ** + + 1. Trykk for å være sikker på at du er i normalmodus. + + 2. Flytt markøren til linjen nedenfor merket --->. + + 3. Flytt markøren til punktet der linjen skal kuttes (ETTER første punktum). + + 4. Trykk d$ for å slette alt til slutten av linjen. + +---> Noen skrev slutten på linjen en gang for mye. linjen en gang for mye. + + 5. Gå til leksjon 2.3 for å forstå hva som skjer. + + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.3: OM OPERATORER OG BEVEGELSER + + + Mange kommandoer som forandrer teksten er laget ut i fra en operator og en + bevegelse. Formatet for en slettekommando med sletteoperatoren d er: + + d bevegelse + + Der: + d - er sletteoperatoren. + bevegelse - er hva operatoren vil opere på (listet nedenfor). + + En kort liste med bevegelser: + w - til starten av det neste ordet, UNNTATT det første tegnet. + e - til slutten av det nåværende ordet, INKLUDERT det siste tegnet. + $ - til slutten av linjen, INKLUDERT det siste tegnet. + + Ved å skrive de vil altså alt fra markøren til slutten av ordet bli + slettet. + +MERK: Ved å skrive kun bevegelsen i normalmodusen uten en operator vil + markøren flyttes som spesifisert. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + LEKSJON 2.4: BRUK AV TELLER FOR EN BEVEGELSE + + + ** Ved å skrive et tall foran en bevegelse repeterer den så mange ganger. ** + + 1. Flytt markøren til starten av linjen markert ---> nedenfor. + + 2. Skriv 2w for å flytte markøren to ord framover. + + 3. Skriv 3e for å flytte markøren framover til slutten av det tredje + ordet. + + 4. Skriv 0 (null) for å flytte til starten av linjen. + + 5. Repeter steg 2 og 3 med forskjellige tall. + +---> Dette er en linje med noen ord som du kan bevege deg rundt på. + + 6. Gå videre til leksjon 2.5. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.5: BRUK AV ANTALL FOR Å SLETTE MER + + + ** Et tall sammen med en operator repeterer den så mange ganger. ** + + I kombinasjonen med sletteoperatoren og en bevegelse nevnt ovenfor setter du + inn antall før bevegelsen for å slette mer: + d nummer bevegelse + + 1. Flytt markøren til det første ordet med STORE BOKSTAVER på linjen markert + med --->. + + 2. Skriv 2dw for å slette de to ordene med store bokstaver. + + 3. Repeter steg 1 og 2 med forskjelling antall for å slette de etterfølgende + ordene som har store bokstaver. + +---> Denne ABC DE linjen FGHI JK LMN OP er nå Q RS TUV litt mer lesbar. + +MERK: Et antall mellom operatoren d og bevegelsen virker på samme måte som å + bruke bevegelsen uten en operator. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.6: OPERERE PÅ LINJER + + + ** Trykk dd for å slette en hel linje. ** + + På grunn av at sletting av linjer er mye brukt, fant utviklerne av Vi ut at + det vil være lettere å rett og slett trykke to d-er for å slette en linje. + + 1. Flytt markøren til den andre linjen i verset nedenfor. + 2. Trykk dd å slette linjen. + 3. Flytt deretter til den fjerde linjen. + 4. Trykk 2dd for å slette to linjer. + +---> 1) Roser er røde, +---> 2) Gjørme er gøy, +---> 3) Fioler er blå, +---> 4) Jeg har en bil, +---> 5) Klokker viser tiden, +---> 6) Druer er søte +---> 7) Og du er likeså. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.7: ANGRE-KOMMANDOEN + + + ** Trykk u for å angre siste kommando, U for å fikse en hel linje. ** + + 1. Flytt markøren til linjen nedenfor merket ---> og plasser den på den + første feilen. + 2. Trykk x for å slette det første uønskede tegnet. + 3. Trykk så u for å angre den siste utførte kommandoen. + 4. Deretter ordner du alle feilene på linjene ved å bruke kommandoen x . + 5. Trykk nå en stor U for å sette linjen tilbake til det den var + originalt. + 6. Trykk u noen ganger for å angre U og foregående kommandoer. + 7. Deretter trykker du CTRL-R (hold CTRL nede mens du trykker R) noen + ganger for å gjenopprette kommandoene (omgjøre angrekommandoene). + +---> RReparer feiilene påå denne linnnjen oog erssstatt dem meed angre. + + 8. Dette er meget nyttige kommandoer. Nå kan du gå til oppsummeringen av + leksjon 2. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 2 + + + 1. For å slette fra markøren fram til det neste ordet, trykk: dw + 2. For å slette fra markøren til slutten av en linje, trykk: d$ + 3. For å slette en hel linje, trykk: dd + + 4. For å repetere en bevegelse, sett et nummer foran: 2w + 5. Formatet for en forandringskommando er: + operator [nummer] bevegelse + der: + operator - hva som skal gjøres, f.eks. d for å slette + [nummer] - et valgfritt antall for å repetere bevegelsen + bevegelse - hva kommandoen skal operere på, eksempelvis w (ord), + $ (til slutten av linjen) og så videre. + + 6. For å gå til starten av en linje, bruk en null: 0 + + 7. For å angre tidligere endringer, skriv: u (liten u) + For å angre alle forandringer på en linje, skriv: U (stor U) + For å omgjøre angringen, trykk: CTRL-R + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.1: ŦLIM INNŧ-KOMMANDOEN + + + ** Trykk p for å lime inn tidligere slettet tekst etter markøren ** + + 1. Flytt markøren til den første linjen med ---> nedenfor. + + 2. Trykk dd for å slette linjen og lagre den i et Vim-register. + + 3. Flytt markøren til c)-linjen, OVER posisjonen linjen skal settes inn. + + 4. Trykk p for å legge linjen under markøren. + + 5. Repeter punkt 2 til 4 helt til linjene er i riktig rekkefølge. + +---> d) Kan du også lære? +---> b) Fioler er blå, +---> c) Intelligens må læres, +---> a) Roser er røde, + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.2: ŦERSTATTŧ-KOMMANDOEN + + + ** Trykk rx for å erstatte tegnet under markøren med x. ** + + 1. Flytt markøren til den første linjen nedenfor merket --->. + + 2. Flytt markøren så den står oppå den første feilen. + + 3. Trykk r og deretter tegnet som skal være der. + + 4. Repeter punkt 2 og 3 til den første linjen er lik den andre. + +---> Da dfnne lynjxn ble zkrevet, var det nøen som tjykket feite taster! +---> Da denne linjen ble skrevet, var det noen som trykket feile taster! + + 5. Gå videre til leksjon 3.2. + +MERK: Husk at du bør lære ved å BRUKE, ikke pugge. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.3: ŦFORANDREŧ-OPERATOREN + + + ** For å forandre til slutten av et ord, trykk ce . ** + + 1. Flytt markøren til den første linjen nedenfor som er merket --->. + + 2. Plasser markøren på u i Ŧlubjwrŧ. + + 3. Trykk ce og det korrekte ordet (i dette tilfellet, skriv Ŧinjenŧ). + + 4. Trykk og gå til det neste tegnet som skal forandres. + + 5. Repeter punkt 3 og 4 helt til den første setningen er lik den andre. + +---> Denne lubjwr har noen wgh som må forkwåp med Ŧforækzryasŧ-kommandoen. +---> Denne linjen har noen ord som må forandres med Ŧforandreŧ-kommandoen. + +Vær oppmerksom på at ce sletter ordet og går inn i innsettingsmodus. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.4: FLERE FORANDRINGER VED BRUK AV c + + + ** Forandringskommandoen blir brukt med de samme bevegelser som Ŧslettŧ. ** + + 1. Forandringsoperatoren fungerer på samme måte som Ŧslettŧ. Formatet er: + + c [nummer] bevegelse + + 2. Bevegelsene er de samme, som for eksempel w (ord) og $ (slutten av en + linje). + + 3. Gå til den første linjen nedenfor som er merket --->. + + 4. Flytt markøren til den første feilen. + + 5. Skriv c$ og skriv resten av linjen lik den andre og trykk . + +---> Slutten på denne linjen trenger litt hjelp for å gjøre den lik den neste. +---> Slutten på denne linjen trenger å bli rettet ved bruk av c$-kommandoen. + +MERK: Du kan bruke slettetasten for å rette feil mens du skriver. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 3 + + + 1. For å legge tilbake tekst som nettopp er blitt slettet, trykk p . Dette + limer inn den slettede teksten ETTER markøren (hvis en linje ble slettet + vil den bli limt inn på linjen under markøren). + + 2. For å erstatte et tegn under markøren, trykk r og deretter tegnet som + du vil ha der. + + 3. Forandringsoperatoren lar deg forandre fra markøren til dit bevegelsen + tar deg. Det vil si, skriv ce for å forandre fra markøren til slutten + av ordet, c$ for å forandre til slutten av linjen. + + 4. Formatet for Ŧforandreŧ er: + + c [nummer] bevegelse + +Nå kan du gå til neste leksjon. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.1: POSISJONERING AV MARKØREN OG FILSTATUS + + ** Trykk CTRL-G for å vise posisjonen i filen og filstatusen. + Trykk G for å gå til en spesifikk linje i filen. ** + + Merk: Les hele leksjonen før du utfører noen av punktene! + + 1. Hold nede Ctrl-tasten og trykk g . Vi kaller dette CTRL-G. En melding + vil komme til syne på bunnen av skjermen med filnavnet og posisjonen i + filen. Husk linjenummeret for bruk i steg 3. + +Merk: Du kan se markørposisjonen i nederste høyre hjørne av skjermen. Dette + skjer når Ŧrulerŧ-valget er satt (forklart i leksjon 6). + + 2. Trykk G for å gå til bunnen av filen. + Skriv gg for å gå til begynnelsen av filen. + + 3. Skriv inn linjenummeret du var på og deretter G . Dette vil føre deg + tilbake til linjen du var på da du først trykket CTRL-G. + + 4. Utfør steg 1 til 3 hvis du føler deg sikker på prosedyren. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.2: SØKEKOMMANDOEN + + ** Skriv / etterfulgt av en søkestreng som du vil lete etter. ** + + 1. Trykk / når du er i normalmodusen. Legg merke til at skråstreken og + markøren kommer til syne på bunnen av skjermen i likhet med + Ŧ:ŧ-kommandoene. + + 2. Skriv Ŧfeeeiilŧ og trykk . Dette er teksten du vil lete etter. + + 3. For å finne neste forekomst av søkestrengen, trykk n . + For å lete etter samme søketeksten i motsatt retning, trykk N . + + 4. For å lete etter en tekst bakover i filen, bruk ? istedenfor / . + + 5. For å gå tilbake til der du kom fra, trykk CTRL-O (Hold Ctrl nede mens + du trykker bokstaven o ). Repeter for å gå enda lengre tilbake. CTRL-I + går framover. + +---> Ŧfeeeiilŧ er ikke måten å skrive Ŧfeilŧ på, feeeiil er helt feil. +Merk: Når søkingen når slutten av filen, vil den fortsette fra starten unntatt + hvis Ŧwrapscanŧ-valget er resatt. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.3: FINN SAMSVARENDE PARENTESER + + + ** Trykk % for å finne en samsvarende ), ] eller } . ** + + 1. Plasser markøren på en (, [ eller { på linjen nedenfor merket --->. + + 2. Trykk % . + + 3. Markøren vil gå til den samsvarende parentesen eller hakeparentesen. + + 4. Trykk % for å flytte markøren til den andre samsvarende parentesen. + + 5. Flytt markøren til en annen (, ), [, ], { eller } og se hva % gjør. + +---> Dette ( er en testlinje med (, [ ] og { } i den )). + +Merk: Dette er veldig nyttig til feilsøking i programmer som har ubalansert + antall parenteser! + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.4: ERSTATT-KOMMANDOEN + + + ** Skriv :s/gammel/ny/g for å erstatte Ŧgammelŧ med Ŧnyŧ. ** + + 1. Flytt markøren til linjen nedenfor som er merket med --->. + + 2. Skriv :s/deen/den/ . Legg merke til at denne kommandoen bare + forandrer den første forekomsten av Ŧdeenŧ på linjen. + + 3. Skriv :s/deen/den/g . Når g-flagget legges til, betyr dette global + erstatning på linjen og erstatter alle forekomster av Ŧdeenŧ på linjen. + +---> deen som kan kaste deen tyngste steinen lengst er deen beste + + 4. For å erstatte alle forekomster av en tekststreng mellom to linjer, + skriv :#,#s/gammel/ny/g der #,# er linjenumrene på de to linjene for + linjeområdet erstatningen skal gjøres. + Skriv :%s/gammel/ny/g for å erstatte tekst i hele filen. + Skriv :%s/gammel/ny/gc for å finne alle forekomster i hele filen, og + deretter spørre om teksten skal erstattes eller + ikke. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 4 + + + 1. Ctrl-G viser nåværende posisjon i filen og filstatusen. + G går til slutten av filen. + nummer G går til det linjenummeret. + gg går til den første linjen. + + 2. Skriv / etterfulgt av en søketekst for å lete FRAMOVER etter teksten. + Skriv ? etterfulgt av en søketekst for å lete BAKOVER etter teksten. + Etter et søk kan du trykke n for å finne neste forekomst i den samme + retningen eller N for å lete i motsatt retning. + CTRL-O tar deg tilbake til gamle posisjoner, CTRL-I til nyere posisjoner. + + 3. Skriv % når markøren står på en (, ), [, ], { eller } for å finne den + som samsvarer. + + 4. Erstatte Ŧgammelŧ med første Ŧnyŧ på en linje: :s/gammel/ny + Erstatte alle Ŧgammelŧ med Ŧnyŧ på en linje: :s/gammel/ny/g + Erstatte tekst mellom to linjenumre: :#,#s/gammel/ny/g + Erstatte alle forekomster i en fil: :%s/gammel/ny/g + For å godkjenne hver erstatning, legg til Ŧcŧ: :%s/gammel/ny/gc +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.1: HVORDAN UTFØRE EN EKSTERN KOMMANDO + + + ** Skriv :! etterfulgt av en ekstern kommando for å utføre denne. ** + + 1. Skriv den velkjente kommandoen : for å plassere markøren på bunnen av + skjermen. Dette lar deg skrive en kommandolinjekommando. + + 2. Nå kan du skrive tegnet ! . Dette lar deg utføre en hvilken som helst + ekstern kommando. + + 3. Som et eksempel, skriv ls etter utropstegnet og trykk . Du vil + nå få en liste over filene i katalogen, akkurat som om du hadde kjørt + kommandoen direkte fra kommandolinjen i skallet. Eller bruk :!dir hvis + Ŧlsŧ ikke virker. + +MERK: Det er mulig å kjøre alle eksterne kommandoer på denne måten, også med + parametere. + +MERK: Alle Ŧ:ŧ-kommandoer må avsluttes med . Fra dette punktet er det + ikke alltid vi nevner det. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.2: MER OM LAGRING AV FILER + + + ** For å lagre endringene gjort i en tekst, skriv :w FILNAVN. ** + + 1. Skriv :!dir eller :!ls for å få en liste over filene i katalogen. Du + vet allerede at du må trykke etter dette. + + 2. Velg et filnavn på en fil som ikke finnes, som for eksempel TEST . + + 3. Skriv :w TEST (der TEST er filnavnet du velger). + + 4. Dette lagrer hele filen (denne innføringen) under navnet TEST . For å + sjekke dette, skriv :!dir eller :!ls igjen for å se innholdet av + katalogen. + +Merk: Hvis du nå hadde avsluttet Vim og startet på nytt igjen med Ŧvim TESTŧ, + ville filen vært en eksakt kopi av innføringen da du lagret den. + + 5. Fjern filen ved å skrive :!rm TEST hvis du er på et Unix-lignende + operativsystem, eller :!del TEST hvis du bruker MS-DOS. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.3: VELGE TEKST SOM SKAL LAGRES + + + ** For å lagre en del av en fil, skriv v bevegelse :w FILNAVN ** + + 1. Flytt markøren til denne linjen. + + 2. Trykk v og flytt markøren til det femte elementet nedenfor. Legg merke + til at teksten blir markert. + + 3. Trykk : (kolon). På bunnen av skjermen vil :'<,'> komme til syne. + + 4. Trykk w TEST , der TEST er et filnavn som ikke finnes enda. Kontroller + at du ser :'<,'>w TEST før du trykker Enter. + + 5. Vim vil skrive de valgte linjene til filen TEST. Bruk :!dir eller :!ls + for å se den. Ikke slett den enda! Vi vil bruke den i neste leksjon. + +MERK: Ved å trykke v startes visuelt valg. Du kan flytte markøren rundt for + å gjøre det valgte området større eller mindre. Deretter kan du bruke en + operator for å gjøre noe med teksten. For eksempel sletter d teksten. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.4: HENTING OG SAMMENSLÅING AV FILER + + + ** For å lese inn en annen fil inn i nåværende buffer, skriv :r FILNAVN ** + + 1. Plasser markøren like over denne linjen. + +MERK: Etter å ha utført steg 2 vil du se teksten fra leksjon 5.3. Gå deretter + NED for å se denne leksjonen igjen. + + 2. Hent TEST-filen ved å bruke kommandoen :r TEST der TEST er navnet på + filen du brukte. Filen du henter blir plassert nedenfor markørlinjen. + + 3. For å sjekke at filen ble hentet, gå tilbake og se at det er to kopier av + leksjon 5.3, originalen og denne versjonen. + +MERK: Du kan også lese utdataene av en ekstern kommando. For eksempel, :r !ls + leser utdataene av ls-kommandoen og legger dem nedenfor markøren. + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 5 + + + 1. :!kommando utfører en ekstern kommandio. + + Noen nyttige eksempler er: + (MS-DOS) (Unix) + :!dir :!ls - List filene i katalogen. + :!del FILNAVN :!rm FILNAVN - Slett filen FILNAVN. + + 2. :w FILNAVN skriver den nåværende Vim-filen disken med navnet FILNAVN . + + 3. v bevegelse :w FILNAVN lagrer de visuelt valgte linjene til filen + FILNAVN. + + 4. :r FILNAVN henter filen FILNAVN og legger den inn nedenfor markøren. + + 5. :r !dir leser utdataene fra Ŧdirŧ-kommandoen og legger dem nedenfor + markørposisjonen. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.1: ŦÅPNE LINJEŧ-KOMMANDOEN + + + ** Skriv o for å Ŧåpne oppŧ for en ny linje etter markøren og gå til + innsettingsmodus ** + + 1. Flytt markøren til linjen nedenfor merket --->. + + 2. Skriv o (liten o) for å åpne opp en linje NEDENFOR markøren og gå inn i + innsettingsmodus. + + 3. Skriv litt tekst og trykk for å gå ut av innsettingsmodusen. + +---> Etter at o er skrevet blir markøren plassert på den tomme linjen. + + 4. For å åpne en ny linje OVER markøren, trykk rett og slett en stor O + istedenfor en liten o . Prøv dette på linjen nedenfor. + +---> Lag ny linje over denne ved å trykke O mens markøren er på denne linjen. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.2: ŦLEGG TILŧ-KOMMANDOEN + + + ** Skriv a for å legge til tekst ETTER markøren. ** + + 1. Flytt markøren til starten av linjen merket ---> nedenfor. + + 2. Trykk e til markøren er på slutten av Ŧliŧ. + + 3. Trykk a (liten a) for å legge til tekst ETTER markøren. + + 4. Fullfør ordet sånn som på linjen nedenfor. Trykk for å gå ut av + innsettingsmodusen. + + 5. Bruk e for å gå til det neste ufullstendige ordet og repeter steg 3 og + 4. + +---> Denne li lar deg øve på å leg til tek på en linje. +---> Denne linjen lar deg øve på å legge til tekst på en linje. + +Merk: a, i og A går alle til den samme innsettingsmodusen, den eneste + forskjellen er hvor tegnene blir satt inn. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.3: EN ANNEN MÅTE Å ERSTATTE PÅ + + + ** Skriv en stor R for å erstatte mer enn ett tegn. ** + + 1. Flytt markøren til den første linjen nedenfor merket --->. Flytt markøren + til begynnelsen av den første Ŧxxxŧ-en. + + 2. Trykk R og skriv inn tallet som står nedenfor på den andre linjen så + det erstatter xxx. + + 3. Trykk for å gå ut av erstatningsmodusen. Legg merke til at resten + av linjen forblir uforandret. + + 4. Repeter stegene for å erstatte den gjenværende xxx. + +---> Ved å legge 123 til xxx får vi xxx. +---> Ved å legge 123 til 456 får vi 579. + +MERK: Erstatningsmodus er lik insettingsmodus, men hvert tegn som skrives + erstatter et eksisterende tegn. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.4: KOPIERE OG LIME INN TEKST + + + ** Bruk y-operatoren for å kopiere tekst og p for å lime den inn ** + + 1. Gå til linjen merket ---> nedenfor og plasser markøren etter Ŧa)ŧ. + + 2. Gå inn i visuell modus med v og flytt markøren til like før Ŧførsteŧ. + + 3. Trykk y for å kopiere (engelsk: Ŧyankŧ) den uthevede teksten. + + 4. Flytt markøren til slutten av den neste linjen: j$ + + 5. Trykk p for å lime inn teksten. Trykk deretter: a andre . + + 6. Bruk visuell modus for å velge Ŧ valget.ŧ, kopier det med y , gå til + slutten av den neste linjen med j$ og legg inn teksten der med p . + +---> a) Dette er det første valget. + b) + +Merk: Du kan også bruke y som en operator; yw kopierer ett ord. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.5: SETT VALG + + + ** Sett et valg så søk eller erstatning ignorerer store/små bokstaver. ** + + 1. Let etter Ŧignoreŧ ved å skrive: /ignore + Repeter flere ganger ved å trykke n . + + 2. Sett Ŧicŧ-valget (Ignore Case) ved å skrive: :set ic + + 3. Søk etter Ŧignoreŧ igjen ved å trykke n . + Legg merke til at både ŦIgnoreŧ og ŦIGNOREŧ blir funnet. + + 4. Sett Ŧhlsearchŧ- og Ŧincsearchŧ-valgene: :set hls is + + 5. Skriv søkekommandoen igjen og se hva som skjer: /ignore + + 6. For å slå av ignorering av store/små bokstaver, skriv: :set noic + +Merk: For å fjerne uthevingen av treff, skriv: :nohlsearch +Merk: Hvis du vil ignorere store/små bokstaver for kun en søkekommando, bruk + \c i uttrykket: /ignore\c +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 6 + + 1. Trykk o for å legge til en linje NEDENFOR markøren og gå inn i + innsettingsmodus. + Trykk O for å åpne en linje OVER markøren. + + 2. Skriv a for å sette inn tekst ETTER markøren. + Skriv A for å sette inn tekst etter slutten av linjen. + + 3. Kommandoen e går til slutten av et ord. + + 4. Operatoren y (Ŧyankŧ) kopierer tekst, p (Ŧpasteŧ) limer den inn. + + 5. Ved å trykke R går du inn i erstatningsmodus helt til trykkes. + + 6. Skriv Ŧ:set xxxŧ for å sette valget Ŧxxxŧ. Noen valg er: + Ŧicŧ Ŧignorecaseŧ ignorer store/små bokstaver under søk + Ŧisŧ Ŧincsearchŧ vis delvise treff for en søketekst + Ŧhlsŧ Ŧhlsearchŧ uthev alle søketreff + + 7. Legg til Ŧnoŧ foran valget for å slå det av: :set noic + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 7.1: FÅ HJELP + + + ** Bruk det innebygde hjelpesystemet. ** + + Vim har et omfattende innebygget hjelpesystem. For å starte det, prøv en av + disse måtene: + - Trykk Hjelp-tasten (hvis du har en) + - Trykk F1-tasten (hvis du har en) + - Skriv :help + + Les teksten i hjelpevinduet for å finne ut hvordan hjelpen virker. + Skriv CTRL-W CTRL-W for å hoppe fra et vindu til et annet + Skriv :q for å lukke hjelpevinduet. + + Du kan få hjelp for omtrent alle temaer om Vim ved å skrive et parameter til + Ŧ:helpŧ-kommandoen. Prøv disse (ikke glem å trykke ): + + :help w + :help c_CTRL-D + :help insert-index + :help user-manual +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 7.2: LAG ET OPPSTARTSSKRIPT + + + ** Slå på funksjoner i Vim ** + + Vim har mange flere funksjoner enn Vi, men flesteparten av dem er slått av + som standard. For å begynne å bruke flere funksjoner må du lage en + Ŧvimrcŧ-fil. + + 1. Start redigeringen av Ŧvimrcŧ-filen. Dette avhenger av systemet ditt: + :e ~/.vimrc for Unix + :e $VIM/_vimrc for MS Windows + + 2. Les inn eksempelfilen for Ŧvimrcŧ: + :r $VIMRUNTIME/vimrc_example.vim + + 3. Lagre filen med: + :w + + Neste gang du starter Vim vil den bruke syntaks-utheving. Du kan legge til + alle dine foretrukne oppsett i denne Ŧvimrcŧ-filen. + For mer informasjon, skriv :help vimrc-intro +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 7.3: FULLFØRING + + + ** Kommandolinjefullføring med CTRL-D og ** + + 1. Vær sikker på at Vim ikke er i Vi-kompatibel modus: :set nocp + + 2. Se hvilke filer som er i katalogen: :!ls eller :!dir + + 3. Skriv starten på en kommando: :e + + 4. Trykk CTRL-D og Vim vil vise en liste over kommandoer som starter med + Ŧeŧ. + + 5. Trykk og Vim vil fullføre kommandonavnet til Ŧ:editŧ. + + 6. Legg til et mellomrom og starten på et eksisterende filnavn: :edit FIL + + 7. Trykk . Vim vil fullføre navnet (hvis det er unikt). + +MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og + . Det er spesielt nyttig for bruk sammen med :help . +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 7 + + + 1. Skriv :help eller trykk eller for å åpne et hjelpevindu. + + 2. Skriv :help kommando for å få hjelp om kommando . + + 3. Trykk CTRL-W CTRL-W for å hoppe til et annet vindu. + + 4. Trykk :q for å lukke hjelpevinduet. + + 5. Opprett et vimrc-oppstartsskript for å lagre favorittvalgene dine. + + 6. Når du skriver en Ŧ:ŧ-kommando, trykk CTRL-D for å se mulige + fullføringer. Trykk for å bruke en fullføring. + + + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Her slutter innføringen i Vim. Den var ment som en rask oversikt over + editoren, akkurat nok til å la deg sette i gang med enkel bruk. Den er på + langt nær komplett, da Vim har mange flere kommandoer. Les bruksanvisningen + ved å skrive :help user-manual . + + For videre lesing og studier, kan denne boken anbefales: + ŦVim - Vi Improvedŧ av Steve Oualline + Utgiver: New Riders + Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for + nybegynnere. Inneholder mange eksempler og illustrasjoner. + Se http://iccf-holland.org/click5.html + + Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også: + ŦLearning the Vi Editorŧ av Linda Lamb + Utgiver: O'Reilly & Associates Inc. + Det er en god bok for å få vite omtrent hva som helst om Vi. + Den sjette utgaven inneholder også informasjon om Vim. + + Denne innføringen er skrevet av Michael C. Pierce og Robert K. Ware, + Colorado School of Mines med idéer av Charles Smith, Colorado State + University. E-mail: bware@mines.colorado.edu . + + Modifisert for Vim av Bram Moolenaar. + Oversatt av Øyvind A. Holm. E-mail: vimtutor _AT_ sunbase.org + Id: tutor.no 406 2007-03-18 22:48:36Z sunny + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +vim: set ts=8 : From eeedd53f323aa5bd49f087a5476079f150e59a73 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 9 Mar 2016 10:38:47 +0100 Subject: [PATCH 873/875] Support for Text extension .no (Norwegian text) --- lib/linguist/languages.yml | 1 + samples/Text/tutor.no | 973 +++++++++++++++++++++++++++++++++++++ 2 files changed, 974 insertions(+) create mode 100644 samples/Text/tutor.no diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0171e1aa..a78b40ae 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3574,6 +3574,7 @@ Text: - .fr - .nb - .ncl + - .no tm_scope: none ace_mode: text diff --git a/samples/Text/tutor.no b/samples/Text/tutor.no new file mode 100644 index 00000000..f9d49c2a --- /dev/null +++ b/samples/Text/tutor.no @@ -0,0 +1,973 @@ +=============================================================================== += V e l k o m m e n t i l i n n f ø r i n g e n i V i m -- Ver. 1.7 = +=============================================================================== + + Vim er en meget kraftig editor med mange kommandoer, alt for mange til å + kunne gå gjennom alle i en innføring som denne. Den er beregnet på å + sette deg inn i bruken av nok kommandoer så du vil være i stand til lett + å kunne bruke Vim som en editor til alle formål. + + Tiden som kreves for å gå gjennom denne innføringen tar ca. 25-30 + minutter, avhengig av hvor mye tid du bruker til eksperimentering. + + MERK: + Kommandoene i leksjonene vil modifisere teksten. Lag en kopi av denne + filen som du kan øve deg på (hvis du kjørte «vimtutor»-kommandoen, er + dette allerede en kopi). + + Det er viktig å huske at denne innføringen er beregnet på læring gjennom + bruk. Det betyr at du må utføre kommandoene for å lære dem skikkelig. + Hvis du bare leser teksten, vil du glemme kommandoene! + + Først av alt, sjekk at «Caps Lock» IKKE er aktiv og trykk «j»-tasten for + å flytte markøren helt til leksjon 1.1 fyller skjermen. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.1: FLYTTING AV MARKØREN + + + ** For å flytte markøren, trykk tastene h, j, k, l som vist. ** + ^ + k Tips: h-tasten er til venstre og flytter til venstre. + < h l > l-tasten er til høyre og flytter til høyre. + j j-tasten ser ut som en pil som peker nedover. + v + 1. Flytt markøren rundt på skjermen til du har fått det inn i fingrene. + + 2. Hold inne nedovertasten (j) til den repeterer. + Nå vet du hvordan du beveger deg til neste leksjon. + + 3. Gå til leksjon 1.2 ved hjelp av nedovertasten. + +Merk: Hvis du blir usikker på noe du har skrevet, trykk for å gå til + normalmodus. Skriv deretter kommandoen du ønsket på nytt. + +Merk: Piltastene skal også virke. Men ved å bruke hjkl vil du være i stand til + å bevege markøren mye raskere når du er blitt vant til det. Helt sant! + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.2: AVSLUTTE VIM + + + !! MERK: Før du utfører noen av punktene nedenfor, les hele leksjonen!! + + 1. Trykk -tasten (for å forsikre deg om at du er i normalmodus). + + 2. Skriv: :q! . + Dette avslutter editoren og FORKASTER alle forandringer som du har gjort. + + 3. Når du ser kommandolinjen i skallet, skriv kommandoen som startet denne + innføringen. Den er: vimtutor + + 4. Hvis du er sikker på at du husker dette, utfør punktene 1 til 3 for å + avslutte og starte editoren på nytt. + +MERK: :q! forkaster alle forandringer som du gjorde. I løpet av noen + få leksjoner vil du lære hvordan du lagrer forandringene til en fil. + + 5. Flytt markøren ned til leksjon 1.3. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.3: REDIGERING AV TEKST -- SLETTING + + + ** Trykk x for å slette tegnet under markøren. ** + + 1. Flytt markøren til den første linjen merket med --->. + + 2. For å ordne feilene på linjen, flytt markøren til den er oppå tegnet som + skal slettes. + + 3. Trykk tasten x for å slette det uønskede tegnet. + + 4. Repeter punkt 2 til 4 til setningen er lik den som er under. + +---> Hessstennnn brrråsnudddde ii gaaata. +---> Hesten bråsnudde i gata. + + 5. Nå som linjen er korrekt, gå til leksjon 1.4. + +MERK: Når du går gjennom innføringen, ikke bare prøv å huske kommandoene, men + bruk dem helt til de sitter. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.4: REDIGERING AV TEKST -- INNSETTING + + + ** Trykk i for å sette inn tekst. ** + + 1. Flytt markøren til den første linjen som er merket med --->. + + 2. For å gjøre den første linjen lik den andre, flytt markøren til den står + på tegnet ETTER posisjonen der teksten skal settes inn. + + 3. Trykk i og skriv inn teksten som mangler. + + 4. Etterhvert som hver feil er fikset, trykk for å returnere til + normalmodus. Repeter punkt 2 til 4 til setningen er korrekt. + +---> Det er tkst som mnglr . +---> Det er ganske mye tekst som mangler her. + + 5. Når du føler deg komfortabel med å sette inn tekst, gå til oppsummeringen + nedenfor. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.5: REDIGERING AV TEKST -- LEGGE TIL + + + ** Trykk A for å legge til tekst. ** + + 1. Flytt markøren til den første linjen nedenfor merket --->. + Det har ikke noe å si hvor markøren er plassert på den linjen. + + 2. Trykk A og skriv inn det som skal legges til. + + 3. Når teksten er lagt til, trykk for å returnere til normalmodusen. + + 4. Flytt markøren til den andre linjen markert med ---> og repeter steg 2 og + 3 for å reparere denne setningen. + +---> Det mangler noe tekst p + Det mangler noe tekst på denne linjen. +---> Det mangler også litt tek + Det mangler også litt tekst på denne linjen. + + 5. Når du føler at du behersker å legge til tekst, gå til leksjon 1.6. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 1.6: REDIGERE EN FIL + + + ** Bruk :wq for å lagre en fil og avslutte. ** + + !! MERK: Før du utfører noen av stegene nedenfor, les hele denne leksjonen!! + + 1. Avslutt denne innføringen som du gjorde i leksjon 1.2: :q! + + 2. Skriv denne kommandoen på kommandolinja: vim tutor + «vim» er kommandoen for å starte Vim-editoren, «tutor» er navnet på fila + som du vil redigere. Bruk en fil som kan forandres. + + 3. Sett inn og slett tekst som du lærte i de foregående leksjonene. + + 4. Lagre filen med forandringene og avslutt Vim med: :wq + + 5. Start innføringen på nytt og flytt ned til oppsummeringen som følger. + + 6. Etter å ha lest og forstått stegene ovenfor: Sett i gang. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 1 + + + 1. Markøren beveges ved hjelp av piltastene eller hjkl-tastene. + h (venstre) j (ned) k (opp) l (høyre) + + 2. For å starte Vim fra skall-kommandolinjen, skriv: vim FILNAVN + + 3. For å avslutte Vim, skriv: :q! for å forkaste endringer. + ELLER skriv: :wq for å lagre forandringene. + + 4. For å slette tegnet under markøren, trykk: x + + 5. For å sette inn eller legge til tekst, trykk: + i skriv innsatt tekst sett inn før markøren + A skriv tillagt tekst legg til på slutten av linjen + +MERK: Når du trykker går du til normalmodus eller du avbryter en uønsket + og delvis fullført kommando. + + Nå kan du gå videre til leksjon 2. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.1: SLETTEKOMMANDOER + + + ** Trykk dw for å slette et ord. ** + + 1. Trykk for å være sikker på at du er i normalmodus. + + 2. Flytt markøren til den første linjen nedenfor merket --->. + + 3. Flytt markøren til begynnelsen av ordet som skal slettes. + + 4. Trykk dw og ordet vil forsvinne. + +MERK: Bokstaven d vil komme til syne på den nederste linjen på skjermen når + du skriver den. Vim venter på at du skal skrive w . Hvis du ser et annet + tegn enn d har du skrevet noe feil; trykk og start på nytt. + +---> Det er agurk tre ord eple som ikke hører pære hjemme i denne setningen. +---> Det er tre ord som ikke hører hjemme i denne setningen. + + 5. Repeter punkt 3 og 4 til den første setningen er lik den andre. Gå + deretter til leksjon 2.2. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.2: FLERE SLETTEKOMMANDOER + + + ** Trykk d$ for å slette til slutten av linjen. ** + + 1. Trykk for å være sikker på at du er i normalmodus. + + 2. Flytt markøren til linjen nedenfor merket --->. + + 3. Flytt markøren til punktet der linjen skal kuttes (ETTER første punktum). + + 4. Trykk d$ for å slette alt til slutten av linjen. + +---> Noen skrev slutten på linjen en gang for mye. linjen en gang for mye. + + 5. Gå til leksjon 2.3 for å forstå hva som skjer. + + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.3: OM OPERATORER OG BEVEGELSER + + + Mange kommandoer som forandrer teksten er laget ut i fra en operator og en + bevegelse. Formatet for en slettekommando med sletteoperatoren d er: + + d bevegelse + + Der: + d - er sletteoperatoren. + bevegelse - er hva operatoren vil opere på (listet nedenfor). + + En kort liste med bevegelser: + w - til starten av det neste ordet, UNNTATT det første tegnet. + e - til slutten av det nåværende ordet, INKLUDERT det siste tegnet. + $ - til slutten av linjen, INKLUDERT det siste tegnet. + + Ved å skrive de vil altså alt fra markøren til slutten av ordet bli + slettet. + +MERK: Ved å skrive kun bevegelsen i normalmodusen uten en operator vil + markøren flyttes som spesifisert. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + LEKSJON 2.4: BRUK AV TELLER FOR EN BEVEGELSE + + + ** Ved å skrive et tall foran en bevegelse repeterer den så mange ganger. ** + + 1. Flytt markøren til starten av linjen markert ---> nedenfor. + + 2. Skriv 2w for å flytte markøren to ord framover. + + 3. Skriv 3e for å flytte markøren framover til slutten av det tredje + ordet. + + 4. Skriv 0 (null) for å flytte til starten av linjen. + + 5. Repeter steg 2 og 3 med forskjellige tall. + +---> Dette er en linje med noen ord som du kan bevege deg rundt på. + + 6. Gå videre til leksjon 2.5. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.5: BRUK AV ANTALL FOR Å SLETTE MER + + + ** Et tall sammen med en operator repeterer den så mange ganger. ** + + I kombinasjonen med sletteoperatoren og en bevegelse nevnt ovenfor setter du + inn antall før bevegelsen for å slette mer: + d nummer bevegelse + + 1. Flytt markøren til det første ordet med STORE BOKSTAVER på linjen markert + med --->. + + 2. Skriv 2dw for å slette de to ordene med store bokstaver. + + 3. Repeter steg 1 og 2 med forskjelling antall for å slette de etterfølgende + ordene som har store bokstaver. + +---> Denne ABC DE linjen FGHI JK LMN OP er nå Q RS TUV litt mer lesbar. + +MERK: Et antall mellom operatoren d og bevegelsen virker på samme måte som å + bruke bevegelsen uten en operator. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.6: OPERERE PÅ LINJER + + + ** Trykk dd for å slette en hel linje. ** + + På grunn av at sletting av linjer er mye brukt, fant utviklerne av Vi ut at + det vil være lettere å rett og slett trykke to d-er for å slette en linje. + + 1. Flytt markøren til den andre linjen i verset nedenfor. + 2. Trykk dd å slette linjen. + 3. Flytt deretter til den fjerde linjen. + 4. Trykk 2dd for å slette to linjer. + +---> 1) Roser er røde, +---> 2) Gjørme er gøy, +---> 3) Fioler er blå, +---> 4) Jeg har en bil, +---> 5) Klokker viser tiden, +---> 6) Druer er søte +---> 7) Og du er likeså. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 2.7: ANGRE-KOMMANDOEN + + + ** Trykk u for å angre siste kommando, U for å fikse en hel linje. ** + + 1. Flytt markøren til linjen nedenfor merket ---> og plasser den på den + første feilen. + 2. Trykk x for å slette det første uønskede tegnet. + 3. Trykk så u for å angre den siste utførte kommandoen. + 4. Deretter ordner du alle feilene på linjene ved å bruke kommandoen x . + 5. Trykk nå en stor U for å sette linjen tilbake til det den var + originalt. + 6. Trykk u noen ganger for å angre U og foregående kommandoer. + 7. Deretter trykker du CTRL-R (hold CTRL nede mens du trykker R) noen + ganger for å gjenopprette kommandoene (omgjøre angrekommandoene). + +---> RReparer feiilene påå denne linnnjen oog erssstatt dem meed angre. + + 8. Dette er meget nyttige kommandoer. Nå kan du gå til oppsummeringen av + leksjon 2. + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 2 + + + 1. For å slette fra markøren fram til det neste ordet, trykk: dw + 2. For å slette fra markøren til slutten av en linje, trykk: d$ + 3. For å slette en hel linje, trykk: dd + + 4. For å repetere en bevegelse, sett et nummer foran: 2w + 5. Formatet for en forandringskommando er: + operator [nummer] bevegelse + der: + operator - hva som skal gjøres, f.eks. d for å slette + [nummer] - et valgfritt antall for å repetere bevegelsen + bevegelse - hva kommandoen skal operere på, eksempelvis w (ord), + $ (til slutten av linjen) og så videre. + + 6. For å gå til starten av en linje, bruk en null: 0 + + 7. For å angre tidligere endringer, skriv: u (liten u) + For å angre alle forandringer på en linje, skriv: U (stor U) + For å omgjøre angringen, trykk: CTRL-R + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.1: «LIM INN»-KOMMANDOEN + + + ** Trykk p for å lime inn tidligere slettet tekst etter markøren ** + + 1. Flytt markøren til den første linjen med ---> nedenfor. + + 2. Trykk dd for å slette linjen og lagre den i et Vim-register. + + 3. Flytt markøren til c)-linjen, OVER posisjonen linjen skal settes inn. + + 4. Trykk p for å legge linjen under markøren. + + 5. Repeter punkt 2 til 4 helt til linjene er i riktig rekkefølge. + +---> d) Kan du også lære? +---> b) Fioler er blå, +---> c) Intelligens må læres, +---> a) Roser er røde, + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.2: «ERSTATT»-KOMMANDOEN + + + ** Trykk rx for å erstatte tegnet under markøren med x. ** + + 1. Flytt markøren til den første linjen nedenfor merket --->. + + 2. Flytt markøren så den står oppå den første feilen. + + 3. Trykk r og deretter tegnet som skal være der. + + 4. Repeter punkt 2 og 3 til den første linjen er lik den andre. + +---> Da dfnne lynjxn ble zkrevet, var det nøen som tjykket feite taster! +---> Da denne linjen ble skrevet, var det noen som trykket feile taster! + + 5. Gå videre til leksjon 3.2. + +MERK: Husk at du bør lære ved å BRUKE, ikke pugge. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.3: «FORANDRE»-OPERATOREN + + + ** For å forandre til slutten av et ord, trykk ce . ** + + 1. Flytt markøren til den første linjen nedenfor som er merket --->. + + 2. Plasser markøren på u i «lubjwr». + + 3. Trykk ce og det korrekte ordet (i dette tilfellet, skriv «injen»). + + 4. Trykk og gå til det neste tegnet som skal forandres. + + 5. Repeter punkt 3 og 4 helt til den første setningen er lik den andre. + +---> Denne lubjwr har noen wgh som må forkwåp med «forækzryas»-kommandoen. +---> Denne linjen har noen ord som må forandres med «forandre»-kommandoen. + +Vær oppmerksom på at ce sletter ordet og går inn i innsettingsmodus. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 3.4: FLERE FORANDRINGER VED BRUK AV c + + + ** Forandringskommandoen blir brukt med de samme bevegelser som «slett». ** + + 1. Forandringsoperatoren fungerer på samme måte som «slett». Formatet er: + + c [nummer] bevegelse + + 2. Bevegelsene er de samme, som for eksempel w (ord) og $ (slutten av en + linje). + + 3. Gå til den første linjen nedenfor som er merket --->. + + 4. Flytt markøren til den første feilen. + + 5. Skriv c$ og skriv resten av linjen lik den andre og trykk . + +---> Slutten på denne linjen trenger litt hjelp for å gjøre den lik den neste. +---> Slutten på denne linjen trenger å bli rettet ved bruk av c$-kommandoen. + +MERK: Du kan bruke slettetasten for å rette feil mens du skriver. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 3 + + + 1. For å legge tilbake tekst som nettopp er blitt slettet, trykk p . Dette + limer inn den slettede teksten ETTER markøren (hvis en linje ble slettet + vil den bli limt inn på linjen under markøren). + + 2. For å erstatte et tegn under markøren, trykk r og deretter tegnet som + du vil ha der. + + 3. Forandringsoperatoren lar deg forandre fra markøren til dit bevegelsen + tar deg. Det vil si, skriv ce for å forandre fra markøren til slutten + av ordet, c$ for å forandre til slutten av linjen. + + 4. Formatet for «forandre» er: + + c [nummer] bevegelse + +Nå kan du gå til neste leksjon. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.1: POSISJONERING AV MARKØREN OG FILSTATUS + + ** Trykk CTRL-G for å vise posisjonen i filen og filstatusen. + Trykk G for å gå til en spesifikk linje i filen. ** + + Merk: Les hele leksjonen før du utfører noen av punktene! + + 1. Hold nede Ctrl-tasten og trykk g . Vi kaller dette CTRL-G. En melding + vil komme til syne på bunnen av skjermen med filnavnet og posisjonen i + filen. Husk linjenummeret for bruk i steg 3. + +Merk: Du kan se markørposisjonen i nederste høyre hjørne av skjermen. Dette + skjer når «ruler»-valget er satt (forklart i leksjon 6). + + 2. Trykk G for å gå til bunnen av filen. + Skriv gg for å gå til begynnelsen av filen. + + 3. Skriv inn linjenummeret du var på og deretter G . Dette vil føre deg + tilbake til linjen du var på da du først trykket CTRL-G. + + 4. Utfør steg 1 til 3 hvis du føler deg sikker på prosedyren. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.2: SØKEKOMMANDOEN + + ** Skriv / etterfulgt av en søkestreng som du vil lete etter. ** + + 1. Trykk / når du er i normalmodusen. Legg merke til at skråstreken og + markøren kommer til syne på bunnen av skjermen i likhet med + «:»-kommandoene. + + 2. Skriv «feeeiil» og trykk . Dette er teksten du vil lete etter. + + 3. For å finne neste forekomst av søkestrengen, trykk n . + For å lete etter samme søketeksten i motsatt retning, trykk N . + + 4. For å lete etter en tekst bakover i filen, bruk ? istedenfor / . + + 5. For å gå tilbake til der du kom fra, trykk CTRL-O (Hold Ctrl nede mens + du trykker bokstaven o ). Repeter for å gå enda lengre tilbake. CTRL-I + går framover. + +---> «feeeiil» er ikke måten å skrive «feil» på, feeeiil er helt feil. +Merk: Når søkingen når slutten av filen, vil den fortsette fra starten unntatt + hvis «wrapscan»-valget er resatt. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.3: FINN SAMSVARENDE PARENTESER + + + ** Trykk % for å finne en samsvarende ), ] eller } . ** + + 1. Plasser markøren på en (, [ eller { på linjen nedenfor merket --->. + + 2. Trykk % . + + 3. Markøren vil gå til den samsvarende parentesen eller hakeparentesen. + + 4. Trykk % for å flytte markøren til den andre samsvarende parentesen. + + 5. Flytt markøren til en annen (, ), [, ], { eller } og se hva % gjør. + +---> Dette ( er en testlinje med (, [ ] og { } i den )). + +Merk: Dette er veldig nyttig til feilsøking i programmer som har ubalansert + antall parenteser! + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 4.4: ERSTATT-KOMMANDOEN + + + ** Skriv :s/gammel/ny/g for å erstatte «gammel» med «ny». ** + + 1. Flytt markøren til linjen nedenfor som er merket med --->. + + 2. Skriv :s/deen/den/ . Legg merke til at denne kommandoen bare + forandrer den første forekomsten av «deen» på linjen. + + 3. Skriv :s/deen/den/g . Når g-flagget legges til, betyr dette global + erstatning på linjen og erstatter alle forekomster av «deen» på linjen. + +---> deen som kan kaste deen tyngste steinen lengst er deen beste + + 4. For å erstatte alle forekomster av en tekststreng mellom to linjer, + skriv :#,#s/gammel/ny/g der #,# er linjenumrene på de to linjene for + linjeområdet erstatningen skal gjøres. + Skriv :%s/gammel/ny/g for å erstatte tekst i hele filen. + Skriv :%s/gammel/ny/gc for å finne alle forekomster i hele filen, og + deretter spørre om teksten skal erstattes eller + ikke. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 4 + + + 1. Ctrl-G viser nåværende posisjon i filen og filstatusen. + G går til slutten av filen. + nummer G går til det linjenummeret. + gg går til den første linjen. + + 2. Skriv / etterfulgt av en søketekst for å lete FRAMOVER etter teksten. + Skriv ? etterfulgt av en søketekst for å lete BAKOVER etter teksten. + Etter et søk kan du trykke n for å finne neste forekomst i den samme + retningen eller N for å lete i motsatt retning. + CTRL-O tar deg tilbake til gamle posisjoner, CTRL-I til nyere posisjoner. + + 3. Skriv % når markøren står på en (, ), [, ], { eller } for å finne den + som samsvarer. + + 4. Erstatte «gammel» med første «ny» på en linje: :s/gammel/ny + Erstatte alle «gammel» med «ny» på en linje: :s/gammel/ny/g + Erstatte tekst mellom to linjenumre: :#,#s/gammel/ny/g + Erstatte alle forekomster i en fil: :%s/gammel/ny/g + For å godkjenne hver erstatning, legg til «c»: :%s/gammel/ny/gc +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.1: HVORDAN UTFØRE EN EKSTERN KOMMANDO + + + ** Skriv :! etterfulgt av en ekstern kommando for å utføre denne. ** + + 1. Skriv den velkjente kommandoen : for å plassere markøren på bunnen av + skjermen. Dette lar deg skrive en kommandolinjekommando. + + 2. Nå kan du skrive tegnet ! . Dette lar deg utføre en hvilken som helst + ekstern kommando. + + 3. Som et eksempel, skriv ls etter utropstegnet og trykk . Du vil + nå få en liste over filene i katalogen, akkurat som om du hadde kjørt + kommandoen direkte fra kommandolinjen i skallet. Eller bruk :!dir hvis + «ls» ikke virker. + +MERK: Det er mulig å kjøre alle eksterne kommandoer på denne måten, også med + parametere. + +MERK: Alle «:»-kommandoer må avsluttes med . Fra dette punktet er det + ikke alltid vi nevner det. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.2: MER OM LAGRING AV FILER + + + ** For å lagre endringene gjort i en tekst, skriv :w FILNAVN. ** + + 1. Skriv :!dir eller :!ls for å få en liste over filene i katalogen. Du + vet allerede at du må trykke etter dette. + + 2. Velg et filnavn på en fil som ikke finnes, som for eksempel TEST . + + 3. Skriv :w TEST (der TEST er filnavnet du velger). + + 4. Dette lagrer hele filen (denne innføringen) under navnet TEST . For å + sjekke dette, skriv :!dir eller :!ls igjen for å se innholdet av + katalogen. + +Merk: Hvis du nå hadde avsluttet Vim og startet på nytt igjen med «vim TEST», + ville filen vært en eksakt kopi av innføringen da du lagret den. + + 5. Fjern filen ved å skrive :!rm TEST hvis du er på et Unix-lignende + operativsystem, eller :!del TEST hvis du bruker MS-DOS. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.3: VELGE TEKST SOM SKAL LAGRES + + + ** For å lagre en del av en fil, skriv v bevegelse :w FILNAVN ** + + 1. Flytt markøren til denne linjen. + + 2. Trykk v og flytt markøren til det femte elementet nedenfor. Legg merke + til at teksten blir markert. + + 3. Trykk : (kolon). På bunnen av skjermen vil :'<,'> komme til syne. + + 4. Trykk w TEST , der TEST er et filnavn som ikke finnes enda. Kontroller + at du ser :'<,'>w TEST før du trykker Enter. + + 5. Vim vil skrive de valgte linjene til filen TEST. Bruk :!dir eller :!ls + for å se den. Ikke slett den enda! Vi vil bruke den i neste leksjon. + +MERK: Ved å trykke v startes visuelt valg. Du kan flytte markøren rundt for + å gjøre det valgte området større eller mindre. Deretter kan du bruke en + operator for å gjøre noe med teksten. For eksempel sletter d teksten. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 5.4: HENTING OG SAMMENSLÅING AV FILER + + + ** For å lese inn en annen fil inn i nåværende buffer, skriv :r FILNAVN ** + + 1. Plasser markøren like over denne linjen. + +MERK: Etter å ha utført steg 2 vil du se teksten fra leksjon 5.3. Gå deretter + NED for å se denne leksjonen igjen. + + 2. Hent TEST-filen ved å bruke kommandoen :r TEST der TEST er navnet på + filen du brukte. Filen du henter blir plassert nedenfor markørlinjen. + + 3. For å sjekke at filen ble hentet, gå tilbake og se at det er to kopier av + leksjon 5.3, originalen og denne versjonen. + +MERK: Du kan også lese utdataene av en ekstern kommando. For eksempel, :r !ls + leser utdataene av ls-kommandoen og legger dem nedenfor markøren. + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 5 + + + 1. :!kommando utfører en ekstern kommandio. + + Noen nyttige eksempler er: + (MS-DOS) (Unix) + :!dir :!ls - List filene i katalogen. + :!del FILNAVN :!rm FILNAVN - Slett filen FILNAVN. + + 2. :w FILNAVN skriver den nåværende Vim-filen disken med navnet FILNAVN . + + 3. v bevegelse :w FILNAVN lagrer de visuelt valgte linjene til filen + FILNAVN. + + 4. :r FILNAVN henter filen FILNAVN og legger den inn nedenfor markøren. + + 5. :r !dir leser utdataene fra «dir»-kommandoen og legger dem nedenfor + markørposisjonen. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.1: «ÅPNE LINJE»-KOMMANDOEN + + + ** Skriv o for å «åpne opp» for en ny linje etter markøren og gå til + innsettingsmodus ** + + 1. Flytt markøren til linjen nedenfor merket --->. + + 2. Skriv o (liten o) for å åpne opp en linje NEDENFOR markøren og gå inn i + innsettingsmodus. + + 3. Skriv litt tekst og trykk for å gå ut av innsettingsmodusen. + +---> Etter at o er skrevet blir markøren plassert på den tomme linjen. + + 4. For å åpne en ny linje OVER markøren, trykk rett og slett en stor O + istedenfor en liten o . Prøv dette på linjen nedenfor. + +---> Lag ny linje over denne ved å trykke O mens markøren er på denne linjen. + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.2: «LEGG TIL»-KOMMANDOEN + + + ** Skriv a for å legge til tekst ETTER markøren. ** + + 1. Flytt markøren til starten av linjen merket ---> nedenfor. + + 2. Trykk e til markøren er på slutten av «li». + + 3. Trykk a (liten a) for å legge til tekst ETTER markøren. + + 4. Fullfør ordet sånn som på linjen nedenfor. Trykk for å gå ut av + innsettingsmodusen. + + 5. Bruk e for å gå til det neste ufullstendige ordet og repeter steg 3 og + 4. + +---> Denne li lar deg øve på å leg til tek på en linje. +---> Denne linjen lar deg øve på å legge til tekst på en linje. + +Merk: a, i og A går alle til den samme innsettingsmodusen, den eneste + forskjellen er hvor tegnene blir satt inn. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.3: EN ANNEN MÅTE Å ERSTATTE PÅ + + + ** Skriv en stor R for å erstatte mer enn ett tegn. ** + + 1. Flytt markøren til den første linjen nedenfor merket --->. Flytt markøren + til begynnelsen av den første «xxx»-en. + + 2. Trykk R og skriv inn tallet som står nedenfor på den andre linjen så + det erstatter xxx. + + 3. Trykk for å gå ut av erstatningsmodusen. Legg merke til at resten + av linjen forblir uforandret. + + 4. Repeter stegene for å erstatte den gjenværende xxx. + +---> Ved å legge 123 til xxx får vi xxx. +---> Ved å legge 123 til 456 får vi 579. + +MERK: Erstatningsmodus er lik insettingsmodus, men hvert tegn som skrives + erstatter et eksisterende tegn. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.4: KOPIERE OG LIME INN TEKST + + + ** Bruk y-operatoren for å kopiere tekst og p for å lime den inn ** + + 1. Gå til linjen merket ---> nedenfor og plasser markøren etter «a)». + + 2. Gå inn i visuell modus med v og flytt markøren til like før «første». + + 3. Trykk y for å kopiere (engelsk: «yank») den uthevede teksten. + + 4. Flytt markøren til slutten av den neste linjen: j$ + + 5. Trykk p for å lime inn teksten. Trykk deretter: a andre . + + 6. Bruk visuell modus for å velge « valget.», kopier det med y , gå til + slutten av den neste linjen med j$ og legg inn teksten der med p . + +---> a) Dette er det første valget. + b) + +Merk: Du kan også bruke y som en operator; yw kopierer ett ord. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 6.5: SETT VALG + + + ** Sett et valg så søk eller erstatning ignorerer store/små bokstaver. ** + + 1. Let etter «ignore» ved å skrive: /ignore + Repeter flere ganger ved å trykke n . + + 2. Sett «ic»-valget (Ignore Case) ved å skrive: :set ic + + 3. Søk etter «ignore» igjen ved å trykke n . + Legg merke til at både «Ignore» og «IGNORE» blir funnet. + + 4. Sett «hlsearch»- og «incsearch»-valgene: :set hls is + + 5. Skriv søkekommandoen igjen og se hva som skjer: /ignore + + 6. For å slå av ignorering av store/små bokstaver, skriv: :set noic + +Merk: For å fjerne uthevingen av treff, skriv: :nohlsearch +Merk: Hvis du vil ignorere store/små bokstaver for kun en søkekommando, bruk + \c i uttrykket: /ignore\c +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 6 + + 1. Trykk o for å legge til en linje NEDENFOR markøren og gå inn i + innsettingsmodus. + Trykk O for å åpne en linje OVER markøren. + + 2. Skriv a for å sette inn tekst ETTER markøren. + Skriv A for å sette inn tekst etter slutten av linjen. + + 3. Kommandoen e går til slutten av et ord. + + 4. Operatoren y («yank») kopierer tekst, p («paste») limer den inn. + + 5. Ved å trykke R går du inn i erstatningsmodus helt til trykkes. + + 6. Skriv «:set xxx» for å sette valget «xxx». Noen valg er: + «ic» «ignorecase» ignorer store/små bokstaver under søk + «is» «incsearch» vis delvise treff for en søketekst + «hls» «hlsearch» uthev alle søketreff + + 7. Legg til «no» foran valget for å slå det av: :set noic + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 7.1: FÅ HJELP + + + ** Bruk det innebygde hjelpesystemet. ** + + Vim har et omfattende innebygget hjelpesystem. For å starte det, prøv en av + disse måtene: + - Trykk Hjelp-tasten (hvis du har en) + - Trykk F1-tasten (hvis du har en) + - Skriv :help + + Les teksten i hjelpevinduet for å finne ut hvordan hjelpen virker. + Skriv CTRL-W CTRL-W for å hoppe fra et vindu til et annet + Skriv :q for å lukke hjelpevinduet. + + Du kan få hjelp for omtrent alle temaer om Vim ved å skrive et parameter til + «:help»-kommandoen. Prøv disse (ikke glem å trykke ): + + :help w + :help c_CTRL-D + :help insert-index + :help user-manual +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 7.2: LAG ET OPPSTARTSSKRIPT + + + ** Slå på funksjoner i Vim ** + + Vim har mange flere funksjoner enn Vi, men flesteparten av dem er slått av + som standard. For å begynne å bruke flere funksjoner må du lage en + «vimrc»-fil. + + 1. Start redigeringen av «vimrc»-filen. Dette avhenger av systemet ditt: + :e ~/.vimrc for Unix + :e $VIM/_vimrc for MS Windows + + 2. Les inn eksempelfilen for «vimrc»: + :r $VIMRUNTIME/vimrc_example.vim + + 3. Lagre filen med: + :w + + Neste gang du starter Vim vil den bruke syntaks-utheving. Du kan legge til + alle dine foretrukne oppsett i denne «vimrc»-filen. + For mer informasjon, skriv :help vimrc-intro +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leksjon 7.3: FULLFØRING + + + ** Kommandolinjefullføring med CTRL-D og ** + + 1. Vær sikker på at Vim ikke er i Vi-kompatibel modus: :set nocp + + 2. Se hvilke filer som er i katalogen: :!ls eller :!dir + + 3. Skriv starten på en kommando: :e + + 4. Trykk CTRL-D og Vim vil vise en liste over kommandoer som starter med + «e». + + 5. Trykk og Vim vil fullføre kommandonavnet til «:edit». + + 6. Legg til et mellomrom og starten på et eksisterende filnavn: :edit FIL + + 7. Trykk . Vim vil fullføre navnet (hvis det er unikt). + +MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og + . Det er spesielt nyttig for bruk sammen med :help . +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + OPPSUMMERING AV LEKSJON 7 + + + 1. Skriv :help eller trykk eller for å åpne et hjelpevindu. + + 2. Skriv :help kommando for å få hjelp om kommando . + + 3. Trykk CTRL-W CTRL-W for å hoppe til et annet vindu. + + 4. Trykk :q for å lukke hjelpevinduet. + + 5. Opprett et vimrc-oppstartsskript for å lagre favorittvalgene dine. + + 6. Når du skriver en «:»-kommando, trykk CTRL-D for å se mulige + fullføringer. Trykk for å bruke en fullføring. + + + + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Her slutter innføringen i Vim. Den var ment som en rask oversikt over + editoren, akkurat nok til å la deg sette i gang med enkel bruk. Den er på + langt nær komplett, da Vim har mange flere kommandoer. Les bruksanvisningen + ved å skrive :help user-manual . + + For videre lesing og studier, kan denne boken anbefales: + «Vim - Vi Improved» av Steve Oualline + Utgiver: New Riders + Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for + nybegynnere. Inneholder mange eksempler og illustrasjoner. + Se http://iccf-holland.org/click5.html + + Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også: + «Learning the Vi Editor» av Linda Lamb + Utgiver: O'Reilly & Associates Inc. + Det er en god bok for å få vite omtrent hva som helst om Vi. + Den sjette utgaven inneholder også informasjon om Vim. + + Denne innføringen er skrevet av Michael C. Pierce og Robert K. Ware, + Colorado School of Mines med idéer av Charles Smith, Colorado State + University. E-mail: bware@mines.colorado.edu . + + Modifisert for Vim av Bram Moolenaar. + Oversatt av Øyvind A. Holm. E-mail: vimtutor _AT_ sunbase.org + Id: tutor.no 406 2007-03-18 22:48:36Z sunny + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +vim: set ts=8 : From 3ccb548b6d3aa4353921ebacfa05b9b8aad586f8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 9 Mar 2016 11:29:25 +0100 Subject: [PATCH 874/875] Support for YAML .sublime-syntax extension --- lib/linguist/languages.yml | 1 + samples/YAML/HexInspect.sublime-syntax | 29 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 samples/YAML/HexInspect.sublime-syntax diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 442117a0..abe558a4 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3963,6 +3963,7 @@ YAML: - .yml - .reek - .rviz + - .sublime-syntax - .syntax - .yaml - .yaml-tmlanguage diff --git a/samples/YAML/HexInspect.sublime-syntax b/samples/YAML/HexInspect.sublime-syntax new file mode 100644 index 00000000..76f97bd1 --- /dev/null +++ b/samples/YAML/HexInspect.sublime-syntax @@ -0,0 +1,29 @@ +%YAML 1.2 +--- +# http://www.sublimetext.com/docs/3/syntax.html +name: Hex Inspect +file_extensions: [] +hidden: true +scope: source.inspect +contexts: + main: + - match: '([\w\-]+)\s*(:)\s*' + captures: + 1: support.function.key.inspect + 2: support.function.punctuation.inspect + push: + - meta_scope: item.inspect + - match: '([\d\-\w]+)' + captures: + 1: data.inspect + pop: true + - match: '^(\s*[\w\-\s]+)\s*(:)\s*' + captures: + 1: keyword.title.inspect + 2: keyword.title-punctuation.inspect + push: + - meta_scope: item.inspect + - match: $ + pop: true + - match: '[\w\s]+' + scope: title-info.inspect From 8cd80801e81072f3ccd085c596b6a1e702baad4f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 9 Mar 2016 06:15:41 -0600 Subject: [PATCH 875/875] Fixing indentation --- lib/linguist/heuristics.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 895bfa20..5c27ca03 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -322,9 +322,9 @@ module Linguist end disambiguate ".rpy" do |data| - if /(^(import|from|class|def)[\s\S])/m.match(data) + if /(^(import|from|class|def)[\s\S])/m.match(data) Language["Python"] - else + else Language["Ren'Py"] end end

": 23, - "Whenever": 1, - "we": 3, - "talk": 1, - "": 41, - "": 117, - "": 117, - "additive": 1, - "group": 2, - "acts": 1, - "via": 6, - "multiplication": 1, - "from": 5, - "such": 4, - "this": 15, - "action": 4, - "addition": 1, - "right": 2, - "distributive.": 1, - "accessed": 1, - "attribute": 2, - "Vector": 1, - "always": 1, - "Filt=": 4, - "synonyms.": 1, - "<#/GAPDoc>": 17, - "InstallTrueMethod": 4, - "IsGaussianSpace": 10, - "": 14, - "filter": 3, - "Sect=": 6, - "matrix": 5, - "say": 1, - "indicates": 3, - "matrices": 5, - "respectively": 1, - "contained": 4, - "In": 3, - "case": 2, - "called": 1, - "Gaussian": 19, - "Bases": 1, - "computed": 2, - "using": 2, - "elimination": 5, - "given": 4, - "generators.": 1, - "": 12, - "": 12, - "gap": 41, - "mats": 5, - "Rationals": 13, - "E": 2, - "element": 2, - "Field": 1, - "": 12, - "DeclareFilter": 1, - "IsFullMatrixModule": 1, - "IsFullRowModule": 1, - "nontrivial": 1, - "associative": 1, - "algebra": 2, - "multiplicative": 1, - "inverse": 1, - "each": 2, - "nonzero": 3, - "element.": 1, - "every": 1, - "possibly": 1, - "itself": 1, - "Note": 3, - "being": 2, - "thus": 1, - "property": 2, - "get": 1, - "usually": 1, - "represented": 1, - "stored": 1, - "DeclareSynonymAttr": 4, - "IsMagmaWithInversesIfNonzero": 1, - "IsNonTrivial": 1, - "IsAssociative": 1, - "IsEuclideanRing": 1, - "#A": 7, - "GeneratorsOfLeftVectorSpace": 1, - "GeneratorsOfVectorSpace": 2, - "": 7, - "For": 10, - "Attr=": 10, - "returns": 14, - "generate": 1, - "GeneratorsOfLeftOperatorAdditiveGroup": 2, - "CanonicalBasis": 3, - "If": 11, - "supports": 1, - "canonical": 6, - "otherwise": 2, - "": 3, - "": 3, - "returned.": 4, - "defining": 1, - "its": 2, - "uniquely": 1, - "determined": 1, - "exist": 1, - "same": 6, - "equality": 1, - "these": 5, - "decided": 1, - "comparing": 1, - "bases.": 1, - "exact": 1, - "meaning": 1, - "depends": 1, - "type": 2, - "Canonical": 1, - "defined": 3, - "example": 3, - "one": 11, - "designs": 1, - "new": 2, - "kind": 1, - "defines": 1, - "installs": 1, - "call": 1, - "On": 1, - "hand": 1, - "probably": 2, - "should": 2, - "install": 1, - "simply": 2, - "calls": 1, - "CANONICAL_BASIS_FLAGS": 1, - "": 9, - "vecs": 4, - "": 8, - "3": 5, - "DeclareAttribute": 4, - "IsRowSpace": 2, - "consists": 7, - "IsRowModule": 1, - "IsGaussianRowSpace": 1, - "scalars": 2, - "occur": 2, - "vectors.": 2, - "Thus": 3, - "calculations.": 2, - "Otherwise": 3, - "non": 4, - "Gaussian.": 2, - "will": 5, - "need": 3, - "flag": 2, - "write": 3, - "down": 2, - "delegate": 2, - "ones.": 2, - "IsNonGaussianRowSpace": 1, - "expresses": 2, - "so": 3, - "cannot": 2, - "handled": 3, - "nice": 4, - "way.": 2, - "Let": 4, - "K": 4, - "spanned": 4, - "Then": 1, - "cap": 1, - "v": 5, - "replacing": 1, - "entry": 2, - "forming": 1, - "concatenation.": 1, - "So": 2, - "DeclareHandlingByNiceBasis": 2, - "IsMatrixSpace": 2, - "IsMatrixModule": 1, - "IsGaussianMatrixSpace": 1, - "IsNonGaussianMatrixSpace": 1, - "irrelevant": 1, - "concatenation": 1, - "rows": 1, - "necessarily": 1, - "NormedRowVectors": 2, - "normed": 1, - "finite": 5, - "those": 1, - "first": 1, - "component.": 1, - "yields": 1, - "natural": 1, - "GF": 22, - "*Z": 5, - "Z": 6, - "Action": 1, - "GL": 1, - "OnLines": 1, - "TrivialSubspace": 2, - "zero": 4, - "triv": 2, - "0": 2, - "AsSet": 1, - "TrivialSubmodule": 1, - "optional": 3, - "argument": 1, - "specify": 3, - "empty.": 1, - "linearly": 3, - "independent": 3, - "particular": 1, - "immediately": 2, - "note": 2, - "formed": 1, - "argument.": 1, - "2": 1, - "DeclareGlobalFunction": 5, - "generated": 1, - "subset": 4, - "empty": 1, - "trivial": 1, - "parent": 3, - "returned": 3, - "does": 1, - "except": 1, - "omits": 1, - "both": 2, - "1": 3, - "Submodule": 1, - "SubmoduleNC": 1, - "#O": 2, - "": 2, - "domain.": 1, - "form": 2, - "Oper=": 6, - "smaller": 1, - "larger": 1, - "9": 1, - "collection.": 1, - "DeclareOperation": 2, - "takes": 1, - "arguments": 1, - "different": 2, - "let": 1, - "their": 1, - "intersection.": 1, - "AsStruct": 2, - "equal": 1, - "Substruct": 1, - "common": 1, - "Struct": 1, - "basis.": 1, - "handle": 1, - "intersections": 1, - "algebras": 2, - "ideals": 2, - "sided": 1, - "ideals.": 1, - "": 2, - "": 2, - "nonnegative": 2, - "integer": 2, - "length": 1, - "An": 2, - "alternative": 2, - "construct": 2, - "above": 2, - "FullRowModule": 2, - "FullMatrixSpace": 2, - "": 1, - "positive": 1, - "integers": 1, - "m": 8, - "fact": 1, - "FullMatrixModule": 3, - "fixed": 1, - "lies": 1, - "category": 1, - "DeclareCategory": 1, - "IsDomain": 1, - "Returns": 1, - "": 1, - "Called": 2, - "Special": 1, - "provided": 1, - "domains.": 1, - "OrthogonalSpaceInFullRowSpace": 1, - "complement": 1, - "#P": 1, - "": 1, - "mapping": 2, - "homomorphism": 1, - "linear": 1, - "source": 2, - "range": 1, - "hold": 1, - "DeclareProperty": 2, - "Magic.gi": 1, - "AutoDoc": 4, - "Max": 2, - "Horn": 2, - "JLU": 2, - "Giessen": 2, - "Sebastian": 2, - "Gutsche": 2, - "Kaiserslautern": 2, - "str": 8, - "suffix": 3, - "d": 16, - "IsDirectoryPath": 1, - "CreateDir": 2, - "currently": 1, - "undocumented": 1, - "LastSystemError": 1, - ".message": 1, - "pkg": 32, - "subdirs": 2, - "extensions": 1, - "d_rel": 6, - "files": 4, - "DirectoriesPackageLibrary": 2, - "continue": 3, - "Directory": 5, - "DirectoryContents": 1, - "Sort": 1, - "AUTODOC_GetSuffix": 2, - "IsReadableFile": 2, - "Make": 1, - "callable": 1, - "package_name": 1, - "AutoDocWorksheet.": 1, - "Which": 1, - "create": 1, - "worksheet": 1, - "package_info": 3, - "opt": 3, - "scaffold": 12, - "gapdoc": 7, - "maketest": 12, - "autodoc": 8, - "pkg_dir": 5, - "doc_dir": 18, - "doc_dir_rel": 3, - "title_page": 7, - "tree": 8, - "is_worksheet": 13, - "position_document_class": 7, - "gapdoc_latex_option_record": 4, - "LowercaseString": 3, - "DirectoryCurrent": 1, - "PackageInfo": 1, - "key": 3, - "val": 4, - "ValueOption": 1, - "opt.": 1, - "IsBound": 39, - "opt.dir": 4, - "IsString": 7, - "IsDirectory": 1, - "AUTODOC_CreateDirIfMissing": 1, - "opt.scaffold": 5, - "package_info.AutoDoc": 3, - "IsRecord": 7, - "IsBool": 4, - "AUTODOC_APPEND_RECORD_WRITEONCE": 3, - "AUTODOC_WriteOnce": 10, - "opt.autodoc": 5, - "package_info.Dependencies.NeededOtherPackages": 1, - "package_info.Dependencies.SuggestedOtherPackages": 1, - "ForAny": 1, - "autodoc.files": 7, - "autodoc.scan_dirs": 5, - "autodoc.level": 3, - "PushOptions": 1, - "level_value": 1, - "Append": 2, - "AUTODOC_FindMatchingFiles": 2, - "opt.gapdoc": 5, - "opt.maketest": 4, - "gapdoc.main": 8, - "package_info.PackageDoc": 3, - ".BookName": 2, - "gapdoc.bookname": 4, - "#Print": 1, - "gapdoc.files": 9, - "gapdoc.scan_dirs": 3, - "Set": 1, - "Number": 1, - "ListWithIdenticalEntries": 1, - "DocumentationTree": 1, - "autodoc.section_intros": 2, - "AUTODOC_PROCESS_INTRO_STRINGS": 1, - "Tree": 2, - "AutoDocScanFiles": 1, - "scaffold.TitlePage": 4, - "scaffold.TitlePage.Title": 2, - ".TitlePage.Title": 2, - "Position": 2, - "Remove": 2, - "JoinStringsWithSeparator": 1, - "ReplacedString": 2, - "Syntax": 1, - "scaffold.document_class": 7, - "PositionSublist": 5, - "GAPDoc2LaTeXProcs.Head": 14, - "scaffold.latex_header_file": 2, - "StringFile": 2, - "scaffold.gapdoc_latex_options": 4, - "RecNames": 1, - "scaffold.gapdoc_latex_options.": 5, - "IsList": 1, - "scaffold.includes": 4, - "scaffold.bib": 7, - "Unbind": 1, - "scaffold.main_xml_file": 2, - ".TitlePage": 1, - "ExtractTitleInfoFromPackageInfo": 1, - "CreateTitlePage": 1, - "scaffold.MainPage": 2, - "scaffold.dir": 1, - "scaffold.book_name": 1, - "CreateMainPage": 1, - "WriteDocumentation": 1, - "SetGapDocLaTeXOptions": 1, - "MakeGAPDocDoc": 1, - "CopyHTMLStyleFiles": 1, - "GAPDocManualLab": 1, - "maketest.folder": 3, - "maketest.scan_dir": 3, - "CreateMakeTest": 1, - "Magic.gd": 1, - "SHEBANG#!#! @Description": 1, - "SHEBANG#!#! This": 1, - "SHEBANG#!#! any": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! ": 5, - "SHEBANG#!#! It": 3, - "SHEBANG#!#! That": 1, - "SHEBANG#!#! of": 1, - "SHEBANG#!#! (with": 1, - "SHEBANG#!#! main": 1, - "SHEBANG#!#! XML": 1, - "SHEBANG#!#! other": 1, - "SHEBANG#!#! as": 1, - "SHEBANG#!#! to": 2, - "SHEBANG#!#! Secondly,": 1, - "SHEBANG#!#! page": 1, - "SHEBANG#!#! (name,": 1, - "SHEBANG#!#! on": 1, - "SHEBANG#!Item>": 25, - "SHEBANG#!#! tags": 1, - "SHEBANG#!#! This": 1, - "SHEBANG#!#! produce": 1, - "SHEBANG#!#! MathJaX": 1, - "SHEBANG#!#! generated": 1, - "SHEBANG#!#! this,": 1, - "SHEBANG#!#! supplementary": 1, - "SHEBANG#!#! (see": 1, - "SHEBANG#!Enum>": 1, - "SHEBANG#!#! For": 1, - "SHEBANG#!>": 11, - "SHEBANG#!#! The": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!Mark>": 22, - "SHEBANG#!#! The": 2, - "SHEBANG#!A>": 1, - "SHEBANG#!#! ": 1, - "SHEBANG#!#! ": 4, - "SHEBANG#!#! This": 4, - "SHEBANG#!#! Directory()": 1, - "SHEBANG#!#! (i.e.": 1, - "SHEBANG#!#! Default": 1, - "SHEBANG#!#! for": 1, - "SHEBANG#!#! The": 3, - "SHEBANG#!#! record.": 3, - "SHEBANG#!#! equivalent": 3, - "SHEBANG#!#! enabled.": 3, - "SHEBANG#!#! package's": 1, - "SHEBANG#!#! In": 3, - "SHEBANG#!K>),": 3, - "SHEBANG#!#! If": 3, - "####": 34, - "TODO": 3, - "mention": 1, - "merging": 1, - "PackageInfo.AutoDoc": 1, - "SHEBANG#!#! ": 3, - "SHEBANG#!#! ": 13, - "SHEBANG#!#! A": 6, - "SHEBANG#!#! If": 2, - "SHEBANG#!#! your": 1, - "SHEBANG#!#! you": 1, - "SHEBANG#!#! to": 4, - "SHEBANG#!#! is": 1, - "SHEBANG#!#! of": 2, - "SHEBANG#!#! This": 3, - "SHEBANG#!#! i.e.": 1, - "SHEBANG#!#! The": 2, - "SHEBANG#!#! then": 1, - "param": 1, - "bit": 2, - "strange.": 1, - "change": 1, - "general": 1, - "might": 1, - "want": 1, - "define": 2, - "entities...": 1, - "now": 1, - "document": 1, - "leave": 1, - "us": 1, - "choice": 1, - "revising": 1, - "how": 1, - "works.": 1, - "": 2, - "entities": 2, - "": 2, - "": 2, - "names": 1, - "corresponding": 1, - "XML": 4, - "entities.": 1, - "containing": 1, - "": 2, - "SomePackage": 3, - "": 2, - "added": 1, - "preamble": 1, - "